From b2a406ca2b9302beb69371971de710fb18cc099d Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Sun, 26 Apr 2026 04:20:06 +0200 Subject: [PATCH] add cellular automata generator --- addons/ca_level_generator/CaGenerator.cs | 131 +++++++ addons/ca_level_generator/CaGenerator.cs.uid | 1 + .../ca_level_generator/CaGeneratorSettings.cs | 23 ++ .../CaGeneratorSettings.cs.uid | 1 + .../CaGeneratorTestRunner.cs | 79 ++++ .../CaGeneratorTestRunner.cs.uid | 1 + .../CaLevelGeneratorDock.cs | 360 ++++++++++++++++++ .../CaLevelGeneratorDock.cs.uid | 1 + .../CaLevelGeneratorPlugin.cs | 33 ++ .../CaLevelGeneratorPlugin.cs.uid | 1 + addons/ca_level_generator/TilemapPainter.cs | 100 +++++ .../ca_level_generator/TilemapPainter.cs.uid | 1 + .../ca_generator_tests.tscn | 6 + addons/ca_level_generator/plugin.cfg | 6 + project.godot | 2 +- resources/tilesets/village/terain.tres | 73 ++++ scenes/level_forest_1.tscn | 119 ++++++ 17 files changed, 937 insertions(+), 1 deletion(-) create mode 100644 addons/ca_level_generator/CaGenerator.cs create mode 100644 addons/ca_level_generator/CaGenerator.cs.uid create mode 100644 addons/ca_level_generator/CaGeneratorSettings.cs create mode 100644 addons/ca_level_generator/CaGeneratorSettings.cs.uid create mode 100644 addons/ca_level_generator/CaGeneratorTestRunner.cs create mode 100644 addons/ca_level_generator/CaGeneratorTestRunner.cs.uid create mode 100644 addons/ca_level_generator/CaLevelGeneratorDock.cs create mode 100644 addons/ca_level_generator/CaLevelGeneratorDock.cs.uid create mode 100644 addons/ca_level_generator/CaLevelGeneratorPlugin.cs create mode 100644 addons/ca_level_generator/CaLevelGeneratorPlugin.cs.uid create mode 100644 addons/ca_level_generator/TilemapPainter.cs create mode 100644 addons/ca_level_generator/TilemapPainter.cs.uid create mode 100644 addons/ca_level_generator/ca_generator_tests.tscn create mode 100644 addons/ca_level_generator/plugin.cfg create mode 100644 scenes/level_forest_1.tscn diff --git a/addons/ca_level_generator/CaGenerator.cs b/addons/ca_level_generator/CaGenerator.cs new file mode 100644 index 0000000..015ec55 --- /dev/null +++ b/addons/ca_level_generator/CaGenerator.cs @@ -0,0 +1,131 @@ +using System; + +namespace Mr.BrickAdventures.Tools.CaLevelGenerator; + +public static class CaGenerator +{ + public static bool[,] Generate(CaGeneratorSettings s) + { + var rng = new Random(s.Seed); + return s.Mode switch + { + CaMode.Cave => GenerateCave(s, rng), + CaMode.Platform => GeneratePlatform(s, rng), + CaMode.Terrain => GenerateTerrain(s, rng), + _ => GenerateCave(s, rng), + }; + } + + public static bool[,] Smooth(bool[,] grid) => SmoothPass(grid, 5); + + // ── Cave ────────────────────────────────────────────────────────────── + private static bool[,] GenerateCave(CaGeneratorSettings s, Random rng) + { + var grid = RandomFill(s.Width, s.Height, s.FillDensity, rng); + if (s.BorderWalls) EnforceBorder(grid); + for (int i = 0; i < s.SmoothingPasses; i++) + { + grid = SmoothPass(grid, 5); + if (s.BorderWalls) EnforceBorder(grid); + } + return grid; + } + + // ── Platform ────────────────────────────────────────────────────────── + private static bool[,] GeneratePlatform(CaGeneratorSettings s, Random rng) + { + int w = s.Width, h = s.Height; + var grid = new bool[w, h]; + + for (int x = 0; x < w; x++) + { + grid[x, h - 1] = true; + grid[x, h - 2] = true; + + for (int y = 0; y < h - 2; y++) + { + // Density linearly increases from 10% at top to 60% at bottom, + // scaled by user's FillDensity relative to default 0.48. + float t = (float)y / (h - 3); + float rowDensity = (0.1f + t * 0.5f) * (s.FillDensity / 0.48f); + grid[x, y] = rng.NextDouble() < rowDensity; + } + } + + for (int i = 0; i < s.SmoothingPasses; i++) + { + // Threshold 4 (not 5): horizontal platform groups survive, isolated + // vertical pixels collapse into flat platforms. + grid = SmoothPass(grid, 4); + for (int x = 0; x < w; x++) { grid[x, h - 1] = true; grid[x, h - 2] = true; } + } + + return grid; + } + + // ── Terrain ─────────────────────────────────────────────────────────── + private static bool[,] GenerateTerrain(CaGeneratorSettings s, Random rng) + { + int w = s.Width, h = s.Height; + var grid = new bool[w, h]; + + // Start terrain surface at ~60% from bottom (40% from top) + int surfaceRow = (int)(h * 0.4f); + + for (int x = 0; x < w; x++) + { + int delta = rng.Next(-2, 3); + surfaceRow = Math.Clamp(surfaceRow + delta, h / 6, h - 2); + + for (int y = surfaceRow; y < h; y++) + grid[x, y] = true; + } + + for (int i = 0; i < s.SmoothingPasses; i++) + grid = SmoothPass(grid, 5); + + return grid; + } + + // ── Shared helpers ──────────────────────────────────────────────── + private static bool[,] RandomFill(int w, int h, float density, Random rng) + { + var grid = new bool[w, h]; + for (int x = 0; x < w; x++) + for (int y = 0; y < h; y++) + grid[x, y] = rng.NextDouble() < density; + return grid; + } + + private static bool[,] SmoothPass(bool[,] grid, int threshold) + { + int w = grid.GetLength(0), h = grid.GetLength(1); + var next = new bool[w, h]; + for (int x = 0; x < w; x++) + for (int y = 0; y < h; y++) + next[x, y] = CountSolidNeighbors(grid, x, y) >= threshold; + return next; + } + + private static int CountSolidNeighbors(bool[,] grid, int cx, int cy) + { + int w = grid.GetLength(0), h = grid.GetLength(1), count = 0; + for (int dx = -1; dx <= 1; dx++) + for (int dy = -1; dy <= 1; dy++) + { + if (dx == 0 && dy == 0) continue; + int nx = cx + dx, ny = cy + dy; + // Out-of-bounds counts as solid (closes cave edges naturally) + if (nx < 0 || nx >= w || ny < 0 || ny >= h) count++; + else if (grid[nx, ny]) count++; + } + return count; + } + + private static void EnforceBorder(bool[,] grid) + { + int w = grid.GetLength(0), h = grid.GetLength(1); + for (int x = 0; x < w; x++) { grid[x, 0] = true; grid[x, h - 1] = true; } + for (int y = 0; y < h; y++) { grid[0, y] = true; grid[w - 1, y] = true; } + } +} diff --git a/addons/ca_level_generator/CaGenerator.cs.uid b/addons/ca_level_generator/CaGenerator.cs.uid new file mode 100644 index 0000000..2e9b862 --- /dev/null +++ b/addons/ca_level_generator/CaGenerator.cs.uid @@ -0,0 +1 @@ +uid://exr10b7nmkgn diff --git a/addons/ca_level_generator/CaGeneratorSettings.cs b/addons/ca_level_generator/CaGeneratorSettings.cs new file mode 100644 index 0000000..338c413 --- /dev/null +++ b/addons/ca_level_generator/CaGeneratorSettings.cs @@ -0,0 +1,23 @@ +using Godot; + +namespace Mr.BrickAdventures.Tools.CaLevelGenerator; + +public enum CaMode { Cave, Platform, Terrain } + +public class CaGeneratorSettings +{ + public CaMode Mode { get; set; } = CaMode.Cave; + public int Width { get; set; } = 40; + public int Height { get; set; } = 22; + public Vector2I Offset { get; set; } = Vector2I.Zero; + public float FillDensity { get; set; } = 0.48f; + public int SmoothingPasses { get; set; } = 4; + public bool BorderWalls { get; set; } = true; + public int Seed { get; set; } = 12345; + // TerrainSet == -1 → raw tile mode + public int TerrainSet { get; set; } = 0; + public int Terrain { get; set; } = 0; + // Used only when TerrainSet == -1 + public int SourceId { get; set; } = 0; + public Vector2I AtlasCoords { get; set; } = Vector2I.Zero; +} diff --git a/addons/ca_level_generator/CaGeneratorSettings.cs.uid b/addons/ca_level_generator/CaGeneratorSettings.cs.uid new file mode 100644 index 0000000..0d42620 --- /dev/null +++ b/addons/ca_level_generator/CaGeneratorSettings.cs.uid @@ -0,0 +1 @@ +uid://isnscgr1thvc diff --git a/addons/ca_level_generator/CaGeneratorTestRunner.cs b/addons/ca_level_generator/CaGeneratorTestRunner.cs new file mode 100644 index 0000000..82304f9 --- /dev/null +++ b/addons/ca_level_generator/CaGeneratorTestRunner.cs @@ -0,0 +1,79 @@ +#if TOOLS +using Godot; + +namespace Mr.BrickAdventures.Tools.CaLevelGenerator; + +[Tool] +public partial class CaGeneratorTestRunner : Node +{ + public override void _Ready() + { + int pass = 0, fail = 0; + + void Assert(bool cond, string msg) + { + if (cond) { GD.Print($" PASS: {msg}"); pass++; } + else { GD.PrintErr($" FAIL: {msg}"); fail++; } + } + + GD.Print("=== CaGenerator Tests ==="); + + // Grid dimensions + var s = new CaGeneratorSettings { Width = 20, Height = 15, SmoothingPasses = 0, Seed = 42 }; + var g = CaGenerator.Generate(s); + Assert(g.GetLength(0) == 20, "Width == 20"); + Assert(g.GetLength(1) == 15, "Height == 15"); + + // Determinism + var g2 = CaGenerator.Generate(s); + bool det = true; + for (int x = 0; x < 20 && det; x++) + for (int y = 0; y < 15 && det; y++) + if (g[x, y] != g2[x, y]) det = false; + Assert(det, "Same seed → same output"); + + // Different seeds → different output + var s2 = new CaGeneratorSettings { Width = 20, Height = 15, SmoothingPasses = 0, Seed = 99 }; + var g3 = CaGenerator.Generate(s2); + bool diff = false; + for (int x = 0; x < 20 && !diff; x++) + for (int y = 0; y < 15 && !diff; y++) + if (g[x, y] != g3[x, y]) diff = true; + Assert(diff, "Different seeds → different output"); + + // Cave border walls + var sb = new CaGeneratorSettings { Width = 20, Height = 15, BorderWalls = true, SmoothingPasses = 0, Seed = 42 }; + var gb = CaGenerator.Generate(sb); + bool border = true; + for (int x = 0; x < 20; x++) if (!gb[x, 0] || !gb[x, 14]) { border = false; break; } + for (int y = 0; y < 15; y++) if (!gb[0, y] || !gb[19, y]) { border = false; break; } + Assert(border, "Cave: border cells all solid"); + + // Platform floor + var sp = new CaGeneratorSettings { Mode = CaMode.Platform, Width = 20, Height = 15, SmoothingPasses = 0, Seed = 42 }; + var gp = CaGenerator.Generate(sp); + bool floor = true; + for (int x = 0; x < 20; x++) if (!gp[x, 14] || !gp[x, 13]) { floor = false; break; } + Assert(floor, "Platform: bottom 2 rows solid"); + + // Platform: top row not all solid (mostly empty at top) + int topSolid = 0; + for (int x = 0; x < 20; x++) if (gp[x, 0]) topSolid++; + Assert(topSolid < 15, "Platform: top row mostly empty"); + + // Terrain: bottom always solid + var st = new CaGeneratorSettings { Mode = CaMode.Terrain, Width = 20, Height = 15, SmoothingPasses = 0, Seed = 42 }; + var gt = CaGenerator.Generate(st); + bool terrBottom = true; + for (int x = 0; x < 20; x++) if (!gt[x, 14]) { terrBottom = false; break; } + Assert(terrBottom, "Terrain: bottom row always solid"); + + // Smooth: output same dimensions + var smoothed = CaGenerator.Smooth(g); + Assert(smoothed.GetLength(0) == 20, "Smooth: width preserved"); + Assert(smoothed.GetLength(1) == 15, "Smooth: height preserved"); + + GD.Print($"=== Results: {pass} passed, {fail} failed ==="); + } +} +#endif diff --git a/addons/ca_level_generator/CaGeneratorTestRunner.cs.uid b/addons/ca_level_generator/CaGeneratorTestRunner.cs.uid new file mode 100644 index 0000000..0b99ef4 --- /dev/null +++ b/addons/ca_level_generator/CaGeneratorTestRunner.cs.uid @@ -0,0 +1 @@ +uid://6y4snwf31boh diff --git a/addons/ca_level_generator/CaLevelGeneratorDock.cs b/addons/ca_level_generator/CaLevelGeneratorDock.cs new file mode 100644 index 0000000..934e12a --- /dev/null +++ b/addons/ca_level_generator/CaLevelGeneratorDock.cs @@ -0,0 +1,360 @@ +#if TOOLS +using Godot; + +namespace Mr.BrickAdventures.Tools.CaLevelGenerator; + +[Tool] +public partial class CaLevelGeneratorDock : Control +{ + public CaLevelGeneratorPlugin Plugin { get; set; } + + // Controls referenced in Task 8 wiring + private OptionButton _layerDropdown; + private OptionButton _terrainDropdown; + private HBoxContainer _rawTileRow; + private SpinBox _sourceIdSpin; + private SpinBox _atlasXSpin; + private SpinBox _atlasYSpin; + private Button _caveBtn; + private Button _platformBtn; + private Button _terrainBtn; + private SpinBox _widthSpin; + private SpinBox _heightSpin; + private SpinBox _offsetXSpin; + private SpinBox _offsetYSpin; + private HSlider _densitySlider; + private Label _densityLabel; + private HSlider _smoothPassSlider; + private Label _smoothPassLabel; + private CheckBox _borderCheck; + private SpinBox _seedSpin; + private Button _genBtn; + private Button _smoothBtn; + private Button _clearBtn; + + private CaMode _mode = CaMode.Cave; + + private System.Collections.Generic.List _layers = new(); + private TileMapLayer _selectedLayer; + + public override void _Ready() + { + CustomMinimumSize = new Vector2(200, 0); + var scroll = new ScrollContainer(); + scroll.SetAnchorsAndOffsetsPreset(LayoutPreset.FullRect); + scroll.SizeFlagsVertical = SizeFlags.ExpandFill; + AddChild(scroll); + + var vbox = new VBoxContainer(); + vbox.SizeFlagsHorizontal = SizeFlags.ExpandFill; + scroll.AddChild(vbox); + + // Target Layer + vbox.AddChild(new Label { Text = "Target Layer" }); + _layerDropdown = new OptionButton(); + _layerDropdown.SizeFlagsHorizontal = SizeFlags.ExpandFill; + vbox.AddChild(_layerDropdown); + + // Terrain + vbox.AddChild(new Label { Text = "Terrain" }); + _terrainDropdown = new OptionButton(); + _terrainDropdown.SizeFlagsHorizontal = SizeFlags.ExpandFill; + vbox.AddChild(_terrainDropdown); + + // Raw tile row (hidden when terrain is available) + _rawTileRow = new HBoxContainer(); + _rawTileRow.Visible = false; + _rawTileRow.AddChild(new Label { Text = "Src" }); + _sourceIdSpin = new SpinBox { MinValue = 0, MaxValue = 99, Value = 0 }; + _rawTileRow.AddChild(_sourceIdSpin); + _rawTileRow.AddChild(new Label { Text = "X" }); + _atlasXSpin = new SpinBox { MinValue = 0, MaxValue = 99, Value = 0 }; + _rawTileRow.AddChild(_atlasXSpin); + _rawTileRow.AddChild(new Label { Text = "Y" }); + _atlasYSpin = new SpinBox { MinValue = 0, MaxValue = 99, Value = 0 }; + _rawTileRow.AddChild(_atlasYSpin); + vbox.AddChild(_rawTileRow); + + // Mode toggle + vbox.AddChild(new Label { Text = "Mode" }); + var modeRow = new HBoxContainer(); + modeRow.SizeFlagsHorizontal = SizeFlags.ExpandFill; + _caveBtn = MakeModeButton("Cave", () => SetMode(CaMode.Cave)); + _platformBtn = MakeModeButton("Platform", () => SetMode(CaMode.Platform)); + _terrainBtn = MakeModeButton("Terrain", () => SetMode(CaMode.Terrain)); + _caveBtn.ButtonPressed = true; + modeRow.AddChild(_caveBtn); + modeRow.AddChild(_platformBtn); + modeRow.AddChild(_terrainBtn); + vbox.AddChild(modeRow); + + vbox.AddChild(new HSeparator()); + + // Width / Height + var dimRow = new HBoxContainer(); + dimRow.AddChild(MakeSpinColumn("Width", out _widthSpin, 5, 500, 40)); + dimRow.AddChild(MakeSpinColumn("Height", out _heightSpin, 5, 500, 22)); + vbox.AddChild(dimRow); + + // Offset X / Y + var offRow = new HBoxContainer(); + offRow.AddChild(MakeSpinColumn("Offset X", out _offsetXSpin, -9999, 9999, 0)); + offRow.AddChild(MakeSpinColumn("Offset Y", out _offsetYSpin, -9999, 9999, 0)); + vbox.AddChild(offRow); + + // Fill Density + var densHeader = new HBoxContainer(); + densHeader.AddChild(new Label { Text = "Fill Density", SizeFlagsHorizontal = SizeFlags.ExpandFill }); + _densityLabel = new Label { Text = "48%" }; + densHeader.AddChild(_densityLabel); + vbox.AddChild(densHeader); + _densitySlider = new HSlider { MinValue = 0, MaxValue = 100, Value = 48, Step = 1 }; + _densitySlider.ValueChanged += v => _densityLabel.Text = $"{(int)v}%"; + vbox.AddChild(_densitySlider); + + // Smoothing Passes + var smoothHeader = new HBoxContainer(); + smoothHeader.AddChild(new Label { Text = "Smoothing Passes", SizeFlagsHorizontal = SizeFlags.ExpandFill }); + _smoothPassLabel = new Label { Text = "4" }; + smoothHeader.AddChild(_smoothPassLabel); + vbox.AddChild(smoothHeader); + _smoothPassSlider = new HSlider { MinValue = 0, MaxValue = 10, Value = 4, Step = 1 }; + _smoothPassSlider.ValueChanged += v => _smoothPassLabel.Text = $"{(int)v}"; + vbox.AddChild(_smoothPassSlider); + + // Border walls + _borderCheck = new CheckBox { Text = "Solid border walls", ButtonPressed = true }; + vbox.AddChild(_borderCheck); + + // Seed + vbox.AddChild(new Label { Text = "Seed" }); + var seedRow = new HBoxContainer(); + _seedSpin = new SpinBox { MinValue = 0, MaxValue = int.MaxValue, Value = 12345, + AllowGreater = true, SizeFlagsHorizontal = SizeFlags.ExpandFill }; + var randBtn = new Button { Text = "🎲" }; + randBtn.Pressed += () => _seedSpin.Value = GD.Randi(); + seedRow.AddChild(_seedSpin); + seedRow.AddChild(randBtn); + vbox.AddChild(seedRow); + + vbox.AddChild(new HSeparator()); + + // Action buttons + _genBtn = new Button { Text = "▶ Generate", SizeFlagsHorizontal = SizeFlags.ExpandFill }; + vbox.AddChild(_genBtn); + + var actionRow = new HBoxContainer(); + actionRow.SizeFlagsHorizontal = SizeFlags.ExpandFill; + _smoothBtn = new Button { Text = "✦ Smooth", SizeFlagsHorizontal = SizeFlags.ExpandFill }; + _clearBtn = new Button { Text = "✕ Clear", SizeFlagsHorizontal = SizeFlags.ExpandFill }; + actionRow.AddChild(_smoothBtn); + actionRow.AddChild(_clearBtn); + vbox.AddChild(actionRow); + + _layerDropdown.ItemSelected += OnLayerSelected; + _terrainDropdown.ItemSelected += _ => SaveSettings(); + _genBtn.Pressed += OnGenerate; + _smoothBtn.Pressed += OnSmooth; + _clearBtn.Pressed += OnClear; + + LoadSettings(); + } + + public void OnSceneChanged(Node sceneRoot) + { + ScanLayers(sceneRoot); + RestoreLastLayer(sceneRoot?.SceneFilePath ?? ""); + } + + private void SetMode(CaMode mode) + { + _mode = mode; + _caveBtn.ButtonPressed = mode == CaMode.Cave; + _platformBtn.ButtonPressed = mode == CaMode.Platform; + _terrainBtn.ButtonPressed = mode == CaMode.Terrain; + } + + private static Button MakeModeButton(string text, System.Action onPressed) + { + var btn = new Button { Text = text, ToggleMode = true, + SizeFlagsHorizontal = SizeFlags.ExpandFill }; + btn.Pressed += onPressed; + return btn; + } + + private static Control MakeSpinColumn(string label, out SpinBox spin, + double min, double max, double value) + { + var col = new VBoxContainer { SizeFlagsHorizontal = SizeFlags.ExpandFill }; + col.AddChild(new Label { Text = label }); + spin = new SpinBox { MinValue = min, MaxValue = max, Value = value, + SizeFlagsHorizontal = SizeFlags.ExpandFill }; + col.AddChild(spin); + return col; + } + + private void ScanLayers(Node root) + { + _layers.Clear(); + _layerDropdown.Clear(); + if (root == null) return; + CollectLayers(root); + foreach (var layer in _layers) + _layerDropdown.AddItem(layer.Name); + if (_layers.Count > 0) OnLayerSelected(0); + } + + private void CollectLayers(Node node) + { + if (node is TileMapLayer layer) _layers.Add(layer); + foreach (Node child in node.GetChildren()) CollectLayers(child); + } + + private void OnLayerSelected(long index) + { + if (index < 0 || index >= _layers.Count) return; + _selectedLayer = _layers[(int)index]; + PopulateTerrainDropdown(_selectedLayer); + + var sceneRoot = EditorInterface.Singleton.GetEditedSceneRoot(); + if (sceneRoot != null) + { + var key = $"ca_generator/last_layer_{sceneRoot.SceneFilePath}"; + EditorInterface.Singleton.GetEditorSettings() + .SetSetting(key, _selectedLayer.GetPath().ToString()); + } + SaveSettings(); + } + + private void RestoreLastLayer(string sceneFilePath) + { + if (string.IsNullOrEmpty(sceneFilePath) || _layers.Count == 0) return; + var key = $"ca_generator/last_layer_{sceneFilePath}"; + var es = EditorInterface.Singleton.GetEditorSettings(); + if (!es.HasSetting(key)) return; + var path = es.GetSetting(key).AsString(); + for (int i = 0; i < _layers.Count; i++) + { + if (_layers[i].GetPath().ToString() == path) + { + _layerDropdown.Select(i); + OnLayerSelected(i); + return; + } + } + } + + private void PopulateTerrainDropdown(TileMapLayer layer) + { + _terrainDropdown.Clear(); + var tileSet = layer.TileSet; + bool hasTerrains = false; + + if (tileSet != null) + { + for (int ts = 0; ts < tileSet.GetTerrainSetsCount(); ts++) + { + for (int t = 0; t < tileSet.GetTerrainsCount(ts); t++) + { + _terrainDropdown.AddItem(tileSet.GetTerrainName(ts, t)); + _terrainDropdown.SetItemMetadata( + _terrainDropdown.ItemCount - 1, + Variant.From((ts << 16) | t)); + hasTerrains = true; + } + } + } + + _terrainDropdown.Visible = hasTerrains; + _rawTileRow.Visible = !hasTerrains; + } + + private CaGeneratorSettings BuildSettings() + { + int terrainSet = -1, terrain = 0; + if (_terrainDropdown.Visible && _terrainDropdown.ItemCount > 0) + { + int packed = _terrainDropdown.GetSelectedMetadata().AsInt32(); + terrainSet = packed >> 16; + terrain = packed & 0xFFFF; + } + + return new CaGeneratorSettings + { + Mode = _mode, + Width = (int)_widthSpin.Value, + Height = (int)_heightSpin.Value, + Offset = new Vector2I((int)_offsetXSpin.Value, (int)_offsetYSpin.Value), + FillDensity = (float)_densitySlider.Value / 100f, + SmoothingPasses = (int)_smoothPassSlider.Value, + BorderWalls = _borderCheck.ButtonPressed, + Seed = (int)_seedSpin.Value, + TerrainSet = terrainSet, + Terrain = terrain, + SourceId = (int)_sourceIdSpin.Value, + AtlasCoords = new Vector2I((int)_atlasXSpin.Value, (int)_atlasYSpin.Value), + }; + } + + private void OnGenerate() + { + if (_selectedLayer == null) return; + var settings = BuildSettings(); + var grid = CaGenerator.Generate(settings); + TilemapPainter.Paint(_selectedLayer, grid, settings, Plugin.UndoRedo); + SaveSettings(); + } + + private void OnSmooth() + { + if (_selectedLayer == null) return; + TilemapPainter.Smooth(_selectedLayer, BuildSettings(), Plugin.UndoRedo); + } + + private void OnClear() + { + if (_selectedLayer == null) return; + TilemapPainter.Clear(_selectedLayer, BuildSettings(), Plugin.UndoRedo); + } + + private void SaveSettings() + { + var es = EditorInterface.Singleton.GetEditorSettings(); + es.SetSetting("ca_generator/mode", (int)_mode); + es.SetSetting("ca_generator/width", (int)_widthSpin.Value); + es.SetSetting("ca_generator/height", (int)_heightSpin.Value); + es.SetSetting("ca_generator/offset_x", (int)_offsetXSpin.Value); + es.SetSetting("ca_generator/offset_y", (int)_offsetYSpin.Value); + es.SetSetting("ca_generator/fill_density", _densitySlider.Value); + es.SetSetting("ca_generator/smoothing_passes", (int)_smoothPassSlider.Value); + es.SetSetting("ca_generator/border_walls", _borderCheck.ButtonPressed); + es.SetSetting("ca_generator/seed", (int)_seedSpin.Value); + es.SetSetting("ca_generator/source_id", (int)_sourceIdSpin.Value); + es.SetSetting("ca_generator/atlas_x", (int)_atlasXSpin.Value); + es.SetSetting("ca_generator/atlas_y", (int)_atlasYSpin.Value); + } + + private void LoadSettings() + { + var es = EditorInterface.Singleton.GetEditorSettings(); + if (es == null) return; + + SetMode((CaMode)(es.HasSetting("ca_generator/mode") ? es.GetSetting("ca_generator/mode").AsInt32() : 0)); + _widthSpin.Value = es.HasSetting("ca_generator/width") ? es.GetSetting("ca_generator/width").AsDouble() : 40.0; + _heightSpin.Value = es.HasSetting("ca_generator/height") ? es.GetSetting("ca_generator/height").AsDouble() : 22.0; + _offsetXSpin.Value = es.HasSetting("ca_generator/offset_x") ? es.GetSetting("ca_generator/offset_x").AsDouble() : 0.0; + _offsetYSpin.Value = es.HasSetting("ca_generator/offset_y") ? es.GetSetting("ca_generator/offset_y").AsDouble() : 0.0; + _densitySlider.Value = es.HasSetting("ca_generator/fill_density") ? es.GetSetting("ca_generator/fill_density").AsDouble() : 48.0; + _smoothPassSlider.Value = es.HasSetting("ca_generator/smoothing_passes") ? es.GetSetting("ca_generator/smoothing_passes").AsDouble() : 4.0; + _borderCheck.ButtonPressed = es.HasSetting("ca_generator/border_walls") ? es.GetSetting("ca_generator/border_walls").AsBool() : true; + _seedSpin.Value = es.HasSetting("ca_generator/seed") ? es.GetSetting("ca_generator/seed").AsDouble() : 12345.0; + + _sourceIdSpin.Value = es.HasSetting("ca_generator/source_id") ? es.GetSetting("ca_generator/source_id").AsDouble() : 0.0; + _atlasXSpin.Value = es.HasSetting("ca_generator/atlas_x") ? es.GetSetting("ca_generator/atlas_x").AsDouble() : 0.0; + _atlasYSpin.Value = es.HasSetting("ca_generator/atlas_y") ? es.GetSetting("ca_generator/atlas_y").AsDouble() : 0.0; + + _densityLabel.Text = $"{(int)_densitySlider.Value}%"; + _smoothPassLabel.Text = $"{(int)_smoothPassSlider.Value}"; + } +} +#endif diff --git a/addons/ca_level_generator/CaLevelGeneratorDock.cs.uid b/addons/ca_level_generator/CaLevelGeneratorDock.cs.uid new file mode 100644 index 0000000..9f3b92a --- /dev/null +++ b/addons/ca_level_generator/CaLevelGeneratorDock.cs.uid @@ -0,0 +1 @@ +uid://dnuvfv3rgyywd diff --git a/addons/ca_level_generator/CaLevelGeneratorPlugin.cs b/addons/ca_level_generator/CaLevelGeneratorPlugin.cs new file mode 100644 index 0000000..d8b6bed --- /dev/null +++ b/addons/ca_level_generator/CaLevelGeneratorPlugin.cs @@ -0,0 +1,33 @@ +#if TOOLS +using Godot; + +namespace Mr.BrickAdventures.Tools.CaLevelGenerator; + +[Tool] +public partial class CaLevelGeneratorPlugin : EditorPlugin +{ + private CaLevelGeneratorDock _dock; + + public override void _EnterTree() + { + _dock = new CaLevelGeneratorDock { Plugin = this }; + AddControlToDock(DockSlot.RightUl, _dock); + SceneChanged += OnSceneChanged; + } + + public override void _ExitTree() + { + SceneChanged -= OnSceneChanged; + RemoveControlFromDocks(_dock); + _dock.QueueFree(); + _dock = null; + } + + private void OnSceneChanged(Node sceneRoot) + { + _dock?.OnSceneChanged(sceneRoot); + } + + public EditorUndoRedoManager UndoRedo => GetUndoRedo(); +} +#endif diff --git a/addons/ca_level_generator/CaLevelGeneratorPlugin.cs.uid b/addons/ca_level_generator/CaLevelGeneratorPlugin.cs.uid new file mode 100644 index 0000000..f023bc5 --- /dev/null +++ b/addons/ca_level_generator/CaLevelGeneratorPlugin.cs.uid @@ -0,0 +1 @@ +uid://cojnhxpcgepi2 diff --git a/addons/ca_level_generator/TilemapPainter.cs b/addons/ca_level_generator/TilemapPainter.cs new file mode 100644 index 0000000..cd03887 --- /dev/null +++ b/addons/ca_level_generator/TilemapPainter.cs @@ -0,0 +1,100 @@ +#if TOOLS +using Godot; +using Godot.Collections; + +namespace Mr.BrickAdventures.Tools.CaLevelGenerator; + +public static class TilemapPainter +{ + public static void Paint( + TileMapLayer layer, + bool[,] grid, + CaGeneratorSettings settings, + EditorUndoRedoManager undoRedo) + { + var before = layer.TileMapData; + ApplyGrid(layer, grid, settings); + var after = layer.TileMapData; + RegisterUndo(layer, before, after, undoRedo, "CA Generate"); + } + + public static void Smooth( + TileMapLayer layer, + CaGeneratorSettings settings, + EditorUndoRedoManager undoRedo) + { + var grid = ReadGrid(layer, settings.Offset, new Vector2I(settings.Width, settings.Height)); + grid = CaGenerator.Smooth(grid); + var before = layer.TileMapData; + ApplyGrid(layer, grid, settings); + var after = layer.TileMapData; + RegisterUndo(layer, before, after, undoRedo, "CA Smooth"); + } + + public static void Clear( + TileMapLayer layer, + CaGeneratorSettings settings, + EditorUndoRedoManager undoRedo) + { + var before = layer.TileMapData; + for (int x = 0; x < settings.Width; x++) + for (int y = 0; y < settings.Height; y++) + layer.EraseCell(settings.Offset + new Vector2I(x, y)); + var after = layer.TileMapData; + RegisterUndo(layer, before, after, undoRedo, "CA Clear"); + } + + private static bool[,] ReadGrid(TileMapLayer layer, Vector2I offset, Vector2I size) + { + var grid = new bool[size.X, size.Y]; + for (int x = 0; x < size.X; x++) + for (int y = 0; y < size.Y; y++) + grid[x, y] = layer.GetCellSourceId(offset + new Vector2I(x, y)) != -1; + return grid; + } + + private static void ApplyGrid(TileMapLayer layer, bool[,] grid, CaGeneratorSettings settings) + { + int w = grid.GetLength(0), h = grid.GetLength(1); + + for (int x = 0; x < w; x++) + for (int y = 0; y < h; y++) + layer.EraseCell(settings.Offset + new Vector2I(x, y)); + + if (settings.TerrainSet >= 0) + { + var solidCells = new Array(); + for (int x = 0; x < w; x++) + for (int y = 0; y < h; y++) + if (grid[x, y]) + solidCells.Add(settings.Offset + new Vector2I(x, y)); + + if (solidCells.Count > 0) + layer.SetCellsTerrainConnect(solidCells, settings.TerrainSet, settings.Terrain); + } + else + { + for (int x = 0; x < w; x++) + for (int y = 0; y < h; y++) + if (grid[x, y]) + layer.SetCell( + settings.Offset + new Vector2I(x, y), + settings.SourceId, + settings.AtlasCoords); + } + } + + private static void RegisterUndo( + TileMapLayer layer, + byte[] before, + byte[] after, + EditorUndoRedoManager undoRedo, + string actionName) + { + undoRedo.CreateAction(actionName); + undoRedo.AddUndoProperty(layer, "tile_map_data", before); + undoRedo.AddDoProperty(layer, "tile_map_data", after); + undoRedo.CommitAction(false); + } +} +#endif diff --git a/addons/ca_level_generator/TilemapPainter.cs.uid b/addons/ca_level_generator/TilemapPainter.cs.uid new file mode 100644 index 0000000..e8f1110 --- /dev/null +++ b/addons/ca_level_generator/TilemapPainter.cs.uid @@ -0,0 +1 @@ +uid://y55l4iw35tih diff --git a/addons/ca_level_generator/ca_generator_tests.tscn b/addons/ca_level_generator/ca_generator_tests.tscn new file mode 100644 index 0000000..fb3fe26 --- /dev/null +++ b/addons/ca_level_generator/ca_generator_tests.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://test_ca_generator"] + +[ext_resource type="Script" path="res://addons/ca_level_generator/CaGeneratorTestRunner.cs" id="1_catest"] + +[node name="CaGeneratorTestRunner" type="Node"] +script = ExtResource("1_catest") diff --git a/addons/ca_level_generator/plugin.cfg b/addons/ca_level_generator/plugin.cfg new file mode 100644 index 0000000..99e428b --- /dev/null +++ b/addons/ca_level_generator/plugin.cfg @@ -0,0 +1,6 @@ +[plugin] +name="CA Level Generator" +description="Cellular automata level blockout generator" +author="Mr. Brick Adventures" +version="1.0" +script="CaLevelGeneratorPlugin.cs" diff --git a/project.godot b/project.godot index 5293142..14dc707 100644 --- a/project.godot +++ b/project.godot @@ -88,7 +88,7 @@ movie_writer/fps=24 [editor_plugins] -enabled=PackedStringArray("res://addons/dialogue_manager/plugin.cfg", "res://addons/limbo_console/plugin.cfg", "res://addons/phantom_camera/plugin.cfg") +enabled=PackedStringArray("res://addons/ca_level_generator/plugin.cfg", "res://addons/dialogue_manager/plugin.cfg", "res://addons/limbo_console/plugin.cfg", "res://addons/phantom_camera/plugin.cfg") [file_customization] diff --git a/resources/tilesets/village/terain.tres b/resources/tilesets/village/terain.tres index 1dd9273..fd0207b 100644 --- a/resources/tilesets/village/terain.tres +++ b/resources/tilesets/village/terain.tres @@ -54,12 +54,14 @@ texture = ExtResource("5_q7rhw") 18:0/0 = 0 18:0/0/terrain_set = 0 18:0/0/terrain = 2 +18:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 18:0/0/terrains_peering_bit/right_side = 2 18:0/0/terrains_peering_bit/bottom_right_corner = 2 18:0/0/terrains_peering_bit/bottom_side = 2 19:0/0 = 0 19:0/0/terrain_set = 0 19:0/0/terrain = 2 +19:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 19:0/0/terrains_peering_bit/right_side = 2 19:0/0/terrains_peering_bit/bottom_right_corner = 2 19:0/0/terrains_peering_bit/bottom_side = 2 @@ -68,22 +70,26 @@ texture = ExtResource("5_q7rhw") 20:0/0 = 0 20:0/0/terrain_set = 0 20:0/0/terrain = 2 +20:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 20:0/0/terrains_peering_bit/bottom_side = 2 20:0/0/terrains_peering_bit/bottom_left_corner = 2 20:0/0/terrains_peering_bit/left_side = 2 23:0/0 = 0 23:0/0/terrain_set = 0 23:0/0/terrain = 2 +23:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 23:0/0/terrains_peering_bit/right_side = 2 23:0/0/terrains_peering_bit/bottom_side = 2 24:0/0 = 0 24:0/0/terrain_set = 0 24:0/0/terrain = 2 +24:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 24:0/0/terrains_peering_bit/right_side = 2 24:0/0/terrains_peering_bit/left_side = 2 25:0/0 = 0 25:0/0/terrain_set = 0 25:0/0/terrain = 2 +25:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 25:0/0/terrains_peering_bit/bottom_side = 2 25:0/0/terrains_peering_bit/left_side = 2 30:0/0 = 0 @@ -181,12 +187,14 @@ texture = ExtResource("5_q7rhw") 17:1/0 = 0 17:1/0/terrain_set = 0 17:1/0/terrain = 2 +17:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 17:1/0/terrains_peering_bit/right_side = 2 17:1/0/terrains_peering_bit/bottom_right_corner = 2 17:1/0/terrains_peering_bit/bottom_side = 2 18:1/0 = 0 18:1/0/terrain_set = 0 18:1/0/terrain = 2 +18:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 18:1/0/terrains_peering_bit/right_side = 2 18:1/0/terrains_peering_bit/bottom_right_corner = 2 18:1/0/terrains_peering_bit/bottom_side = 2 @@ -195,9 +203,11 @@ texture = ExtResource("5_q7rhw") 18:1/0/terrains_peering_bit/top_side = 2 18:1/0/terrains_peering_bit/top_right_corner = 2 19:1/0 = 0 +19:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 20:1/0 = 0 20:1/0/terrain_set = 0 20:1/0/terrain = 2 +20:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 20:1/0/terrains_peering_bit/right_side = 2 20:1/0/terrains_peering_bit/bottom_right_corner = 2 20:1/0/terrains_peering_bit/bottom_side = 2 @@ -208,32 +218,38 @@ texture = ExtResource("5_q7rhw") 21:1/0 = 0 21:1/0/terrain_set = 0 21:1/0/terrain = 2 +21:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 21:1/0/terrains_peering_bit/bottom_side = 2 21:1/0/terrains_peering_bit/bottom_left_corner = 2 21:1/0/terrains_peering_bit/left_side = 2 22:1/0 = 0 22:1/0/terrain_set = 0 22:1/0/terrain = 2 +22:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 22:1/0/terrains_peering_bit/right_side = 2 22:1/0/terrains_peering_bit/bottom_side = 2 23:1/0 = 0 23:1/0/terrain_set = 0 23:1/0/terrain = 2 +23:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 23:1/0/terrains_peering_bit/left_side = 2 23:1/0/terrains_peering_bit/top_side = 2 25:1/0 = 0 25:1/0/terrain_set = 0 25:1/0/terrain = 2 +25:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 25:1/0/terrains_peering_bit/right_side = 2 25:1/0/terrains_peering_bit/top_side = 2 26:1/0 = 0 26:1/0/terrain_set = 0 26:1/0/terrain = 2 +26:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 26:1/0/terrains_peering_bit/bottom_side = 2 26:1/0/terrains_peering_bit/left_side = 2 28:1/0 = 0 28:1/0/terrain_set = 0 28:1/0/terrain = 2 +28:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 28:1/0/terrains_peering_bit/bottom_side = 2 30:1/0 = 0 31:1/0 = 0 @@ -335,15 +351,18 @@ texture = ExtResource("5_q7rhw") 17:2/0 = 0 17:2/0/terrain_set = 0 17:2/0/terrain = 2 +17:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 17:2/0/terrains_peering_bit/right_side = 2 17:2/0/terrains_peering_bit/bottom_right_corner = 2 17:2/0/terrains_peering_bit/bottom_side = 2 17:2/0/terrains_peering_bit/top_side = 2 17:2/0/terrains_peering_bit/top_right_corner = 2 18:2/0 = 0 +18:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 19:2/0 = 0 19:2/0/terrain_set = 0 19:2/0/terrain = 2 +19:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 19:2/0/terrains_peering_bit/right_side = 2 19:2/0/terrains_peering_bit/bottom_right_corner = 2 19:2/0/terrains_peering_bit/bottom_side = 2 @@ -353,9 +372,11 @@ texture = ExtResource("5_q7rhw") 19:2/0/terrains_peering_bit/top_side = 2 19:2/0/terrains_peering_bit/top_right_corner = 2 20:2/0 = 0 +20:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 21:2/0 = 0 21:2/0/terrain_set = 0 21:2/0/terrain = 2 +21:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 21:2/0/terrains_peering_bit/bottom_side = 2 21:2/0/terrains_peering_bit/bottom_left_corner = 2 21:2/0/terrains_peering_bit/left_side = 2 @@ -364,16 +385,19 @@ texture = ExtResource("5_q7rhw") 22:2/0 = 0 22:2/0/terrain_set = 0 22:2/0/terrain = 2 +22:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 22:2/0/terrains_peering_bit/bottom_side = 2 22:2/0/terrains_peering_bit/top_side = 2 26:2/0 = 0 26:2/0/terrain_set = 0 26:2/0/terrain = 2 +26:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 26:2/0/terrains_peering_bit/bottom_side = 2 26:2/0/terrains_peering_bit/top_side = 2 28:2/0 = 0 28:2/0/terrain_set = 0 28:2/0/terrain = 2 +28:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 28:2/0/terrains_peering_bit/bottom_side = 2 28:2/0/terrains_peering_bit/top_side = 2 33:2/0 = 0 @@ -471,12 +495,14 @@ texture = ExtResource("5_q7rhw") 17:3/0 = 0 17:3/0/terrain_set = 0 17:3/0/terrain = 2 +17:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 17:3/0/terrains_peering_bit/right_side = 2 17:3/0/terrains_peering_bit/top_side = 2 17:3/0/terrains_peering_bit/top_right_corner = 2 18:3/0 = 0 18:3/0/terrain_set = 0 18:3/0/terrain = 2 +18:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 18:3/0/terrains_peering_bit/right_side = 2 18:3/0/terrains_peering_bit/bottom_right_corner = 2 18:3/0/terrains_peering_bit/bottom_side = 2 @@ -485,9 +511,11 @@ texture = ExtResource("5_q7rhw") 18:3/0/terrains_peering_bit/top_side = 2 18:3/0/terrains_peering_bit/top_right_corner = 2 19:3/0 = 0 +19:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 20:3/0 = 0 20:3/0/terrain_set = 0 20:3/0/terrain = 2 +20:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 20:3/0/terrains_peering_bit/right_side = 2 20:3/0/terrains_peering_bit/bottom_side = 2 20:3/0/terrains_peering_bit/bottom_left_corner = 2 @@ -498,32 +526,38 @@ texture = ExtResource("5_q7rhw") 21:3/0 = 0 21:3/0/terrain_set = 0 21:3/0/terrain = 2 +21:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 21:3/0/terrains_peering_bit/left_side = 2 21:3/0/terrains_peering_bit/top_left_corner = 2 21:3/0/terrains_peering_bit/top_side = 2 22:3/0 = 0 22:3/0/terrain_set = 0 22:3/0/terrain = 2 +22:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 22:3/0/terrains_peering_bit/right_side = 2 22:3/0/terrains_peering_bit/top_side = 2 23:3/0 = 0 23:3/0/terrain_set = 0 23:3/0/terrain = 2 +23:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 23:3/0/terrains_peering_bit/bottom_side = 2 23:3/0/terrains_peering_bit/left_side = 2 25:3/0 = 0 25:3/0/terrain_set = 0 25:3/0/terrain = 2 +25:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 25:3/0/terrains_peering_bit/right_side = 2 25:3/0/terrains_peering_bit/bottom_side = 2 26:3/0 = 0 26:3/0/terrain_set = 0 26:3/0/terrain = 2 +26:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 26:3/0/terrains_peering_bit/left_side = 2 26:3/0/terrains_peering_bit/top_side = 2 28:3/0 = 0 28:3/0/terrain_set = 0 28:3/0/terrain = 2 +28:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 28:3/0/terrains_peering_bit/top_side = 2 30:3/0 = 0 31:3/0 = 0 @@ -603,12 +637,14 @@ texture = ExtResource("5_q7rhw") 18:4/0 = 0 18:4/0/terrain_set = 0 18:4/0/terrain = 2 +18:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 18:4/0/terrains_peering_bit/right_side = 2 18:4/0/terrains_peering_bit/top_side = 2 18:4/0/terrains_peering_bit/top_right_corner = 2 19:4/0 = 0 19:4/0/terrain_set = 0 19:4/0/terrain = 2 +19:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 19:4/0/terrains_peering_bit/right_side = 2 19:4/0/terrains_peering_bit/left_side = 2 19:4/0/terrains_peering_bit/top_left_corner = 2 @@ -617,22 +653,26 @@ texture = ExtResource("5_q7rhw") 20:4/0 = 0 20:4/0/terrain_set = 0 20:4/0/terrain = 2 +20:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 20:4/0/terrains_peering_bit/left_side = 2 20:4/0/terrains_peering_bit/top_left_corner = 2 20:4/0/terrains_peering_bit/top_side = 2 23:4/0 = 0 23:4/0/terrain_set = 0 23:4/0/terrain = 2 +23:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 23:4/0/terrains_peering_bit/right_side = 2 23:4/0/terrains_peering_bit/top_side = 2 24:4/0 = 0 24:4/0/terrain_set = 0 24:4/0/terrain = 2 +24:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 24:4/0/terrains_peering_bit/right_side = 2 24:4/0/terrains_peering_bit/left_side = 2 25:4/0 = 0 25:4/0/terrain_set = 0 25:4/0/terrain = 2 +25:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 25:4/0/terrains_peering_bit/left_side = 2 25:4/0/terrains_peering_bit/top_side = 2 30:4/0 = 0 @@ -682,6 +722,7 @@ texture = ExtResource("5_q7rhw") 28:5/0 = 0 28:5/0/terrain_set = 0 28:5/0/terrain = 2 +28:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 28:5/0/terrains_peering_bit/bottom_side = 2 30:5/0 = 0 31:5/0 = 0 @@ -717,30 +758,40 @@ texture = ExtResource("5_q7rhw") 15:6/0 = 0 16:6/0 = 0 17:6/0 = 0 +17:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 18:6/0 = 0 +18:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 19:6/0 = 0 +19:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 20:6/0 = 0 +20:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 21:6/0 = 0 +21:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 23:6/0 = 0 23:6/0/terrain_set = 0 23:6/0/terrain = 2 +23:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 23:6/0/terrains_peering_bit/right_side = 2 24:6/0 = 0 24:6/0/terrain_set = 0 24:6/0/terrain = 2 +24:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 24:6/0/terrains_peering_bit/right_side = 2 24:6/0/terrains_peering_bit/left_side = 2 25:6/0 = 0 25:6/0/terrain_set = 0 25:6/0/terrain = 2 +25:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 25:6/0/terrains_peering_bit/left_side = 2 27:6/0 = 0 27:6/0/terrain_set = 0 27:6/0/terrain = 2 +27:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 27:6/0/terrains_peering_bit/right_side = 2 28:6/0 = 0 28:6/0/terrain_set = 0 28:6/0/terrain = 2 +28:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 28:6/0/terrains_peering_bit/bottom_side = 2 28:6/0/terrains_peering_bit/left_side = 2 28:6/0/terrains_peering_bit/top_side = 2 @@ -786,12 +837,15 @@ texture = ExtResource("5_q7rhw") 15:7/0 = 0 16:7/0 = 0 17:7/0 = 0 +17:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 18:7/0 = 0 20:7/0 = 0 21:7/0 = 0 +21:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 28:7/0 = 0 28:7/0/terrain_set = 0 28:7/0/terrain = 2 +28:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 28:7/0/terrains_peering_bit/top_side = 2 30:7/0 = 0 31:7/0 = 0 @@ -825,6 +879,7 @@ texture = ExtResource("5_q7rhw") 24:8/0 = 0 24:8/0/terrain_set = 0 24:8/0/terrain = 2 +24:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 24:8/0/terrains_peering_bit/bottom_side = 2 30:8/0 = 0 31:8/0 = 0 @@ -855,26 +910,32 @@ texture = ExtResource("5_q7rhw") 15:9/0 = 0 16:9/0 = 0 17:9/0 = 0 +17:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 18:9/0 = 0 20:9/0 = 0 21:9/0 = 0 +21:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 23:9/0 = 0 23:9/0/terrain_set = 0 23:9/0/terrain = 2 +23:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 23:9/0/terrains_peering_bit/right_side = 2 24:9/0 = 0 24:9/0/terrain_set = 0 24:9/0/terrain = 2 +24:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 24:9/0/terrains_peering_bit/right_side = 2 24:9/0/terrains_peering_bit/left_side = 2 24:9/0/terrains_peering_bit/top_side = 2 25:9/0 = 0 25:9/0/terrain_set = 0 25:9/0/terrain = 2 +25:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 25:9/0/terrains_peering_bit/left_side = 2 27:9/0 = 0 27:9/0/terrain_set = 0 27:9/0/terrain = 2 +27:9/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 27:9/0/terrains_peering_bit/bottom_side = 2 29:9/0 = 0 30:9/0 = 0 @@ -914,19 +975,26 @@ texture = ExtResource("5_q7rhw") 15:10/0 = 0 16:10/0 = 0 17:10/0 = 0 +17:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 18:10/0 = 0 +18:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 19:10/0 = 0 +19:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 20:10/0 = 0 +20:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 21:10/0 = 0 +21:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 27:10/0 = 0 27:10/0/terrain_set = 0 27:10/0/terrain = 2 +27:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 27:10/0/terrains_peering_bit/right_side = 2 27:10/0/terrains_peering_bit/bottom_side = 2 27:10/0/terrains_peering_bit/top_side = 2 28:10/0 = 0 28:10/0/terrain_set = 0 28:10/0/terrain = 2 +28:10/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 28:10/0/terrains_peering_bit/left_side = 2 31:10/0 = 0 32:10/0 = 0 @@ -1021,20 +1089,24 @@ texture = ExtResource("5_q7rhw") 23:11/0 = 0 23:11/0/terrain_set = 0 23:11/0/terrain = 2 +23:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 23:11/0/terrains_peering_bit/right_side = 2 24:11/0 = 0 24:11/0/terrain_set = 0 24:11/0/terrain = 2 +24:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 24:11/0/terrains_peering_bit/right_side = 2 24:11/0/terrains_peering_bit/bottom_side = 2 24:11/0/terrains_peering_bit/left_side = 2 25:11/0 = 0 25:11/0/terrain_set = 0 25:11/0/terrain = 2 +25:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 25:11/0/terrains_peering_bit/left_side = 2 27:11/0 = 0 27:11/0/terrain_set = 0 27:11/0/terrain = 2 +27:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 27:11/0/terrains_peering_bit/top_side = 2 29:11/0 = 0 30:11/0 = 0 @@ -1137,6 +1209,7 @@ texture = ExtResource("5_q7rhw") 24:12/0 = 0 24:12/0/terrain_set = 0 24:12/0/terrain = 2 +24:12/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 24:12/0/terrains_peering_bit/top_side = 2 29:12/0 = 0 30:12/0 = 0 diff --git a/scenes/level_forest_1.tscn b/scenes/level_forest_1.tscn new file mode 100644 index 0000000..b19bd59 --- /dev/null +++ b/scenes/level_forest_1.tscn @@ -0,0 +1,119 @@ +[gd_scene format=4 uid="uid://cq4glvuewsno5"] + +[ext_resource type="PackedScene" uid="uid://bqi5s710xb1ju" path="res://objects/entities/brick_player.tscn" id="1_0l0mp"] +[ext_resource type="PackedScene" uid="uid://cawlpch2lk3a2" path="res://objects/level/world_environment.tscn" id="2_on1vs"] +[ext_resource type="PackedScene" uid="uid://6foggu31cu14" path="res://objects/level/ui_layer.tscn" id="3_itpuk"] +[ext_resource type="PackedScene" uid="uid://cywsu7yrtjdog" path="res://objects/level/global_light.tscn" id="4_338nk"] +[ext_resource type="PackedScene" uid="uid://cb0mnye1ki5a6" path="res://objects/level/camera_2d.tscn" id="5_8o8qm"] +[ext_resource type="Script" uid="uid://d23haq52m7ulv" path="res://addons/phantom_camera/scripts/phantom_camera/phantom_camera_2d.gd" id="6_uifqf"] +[ext_resource type="Script" uid="uid://ccfft4b8rwgbo" path="res://addons/phantom_camera/scripts/resources/tween_resource.gd" id="7_vcgst"] +[ext_resource type="TileSet" uid="uid://dua4ns4tdknd1" path="res://resources/tilesets/village/background_tileset.tres" id="8_4o0cd"] +[ext_resource type="TileSet" uid="uid://cu2sx7qigrqnv" path="res://resources/tilesets/village/terain.tres" id="9_8kroa"] +[ext_resource type="TileSet" uid="uid://bc5a20s6kuy8e" path="res://resources/tilesets/village/entities.tres" id="10_3v2vi"] +[ext_resource type="TileSet" uid="uid://bbppo0irxdmqy" path="res://resources/tilesets/village/foreground.tres" id="11_67jh0"] +[ext_resource type="PackedScene" uid="uid://bqom4cm7r18db" path="res://objects/entities/killzone.tscn" id="12_yio4o"] + +[sub_resource type="Resource" id="Resource_0nwt7"] +script = ExtResource("7_vcgst") +duration = 0.25 +transition = 3 + +[sub_resource type="Gradient" id="Gradient_qb72p"] +colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_f1fvy"] +gradient = SubResource("Gradient_qb72p") + +[sub_resource type="Curve" id="Curve_82d6e"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_7b7mt"] +curve = SubResource("Curve_82d6e") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_nh11v"] +resource_local_to_scene = true +lifetime_randomness = 1.0 +particle_flag_disable_z = true +emission_shape = 1 +emission_sphere_radius = 8.0 +direction = Vector3(0.1, -0.5, 0) +initial_velocity_min = 200.0 +initial_velocity_max = 400.0 +gravity = Vector3(0, 80, 0) +damping_min = 400.0 +damping_max = 800.0 +scale_max = 3.0 +scale_curve = SubResource("CurveTexture_7b7mt") +color = Color(0.764706, 0.443137, 0, 1) +color_ramp = SubResource("GradientTexture1D_f1fvy") + +[node name="World" type="Node2D" unique_id=935295318] + +[node name="WorldEnvironment" parent="." unique_id=701212823 instance=ExtResource("2_on1vs")] + +[node name="UI Layer" parent="." unique_id=589654346 instance=ExtResource("3_itpuk")] + +[node name="HUD" parent="UI Layer" index="0" node_paths=PackedStringArray("Health")] +Health = NodePath("../../Brick Player/HealthComponent") + +[node name="Marketplace" parent="UI Layer" index="3" node_paths=PackedStringArray("SkillUnlockerComponent", "ComponentsToDisable")] +SkillUnlockerComponent = NodePath("../../Brick Player/SkillUnlockerComponent") +ComponentsToDisable = [NodePath("../../Brick Player")] + +[node name="Global Light" parent="." unique_id=630872579 instance=ExtResource("4_338nk")] + +[node name="Camera2D" parent="." unique_id=1336070532 instance=ExtResource("5_8o8qm")] +physics_interpolation_mode = 1 +position = Vector2(100, 144) +process_callback = 0 +limit_left = -10000000 +limit_top = -10000000 +limit_right = 10000000 +limit_bottom = 10000000 + +[node name="PhantomCamera" type="Node2D" parent="." unique_id=1061051783 node_paths=PackedStringArray("follow_target")] +unique_name_in_owner = true +top_level = true +position = Vector2(100, 144) +script = ExtResource("6_uifqf") +follow_mode = 5 +follow_target = NodePath("../Brick Player") +snap_to_pixel = true +tween_resource = SubResource("Resource_0nwt7") +follow_offset = Vector2(32, -16) +follow_damping = true +follow_damping_value = Vector2(0.15, 0.1) +dead_zone_width = 0.18 +dead_zone_height = 0.15 +draw_limits = true +metadata/_custom_type_script = "uid://d23haq52m7ulv" + +[node name="Background Layer" type="TileMapLayer" parent="." unique_id=1050298178] +tile_set = ExtResource("8_4o0cd") + +[node name="Terrain Layer" type="TileMapLayer" parent="." unique_id=2053176798] +tile_map_data = PackedByteArray("AADvABcABQAEAAMAAADvABYABQAEAAIAAADvABUABQAEAAIAAADvABQABQAEAAIAAADvABMABQAEAAIAAADvABIABQAEAAIAAADvABEABQAEAAIAAADvABAABQAEAAIAAADvAA8ABQAEAAIAAADvAA4ABQAEAAIAAADvAA0ABQAEAAIAAADvAAwABQAEAAIAAADvAAsABQAEAAIAAADvAAoABQAEAAIAAADvAAkABQAEAAIAAADvAAgABQAEAAIAAADvAAcABQAEAAIAAADvAAYABQAEAAIAAADvAAUABQADAAAAAADvAAQABQAGAAMAAADvAAMABQAGAAIAAADvAAIABQAGAAIAAADvAAEABQAGAAIAAADvAAAABQAGAAIAAADvAP//BQAGAAIAAADvAP7/BQAGAAIAAADvAP3/BQAEAAMAAADvAPz/BQAEAAIAAADvAPv/BQAEAAIAAADvAPr/BQAEAAEAAADvAPn/BQAGAAMAAADvAPj/BQAGAAEAAADvAPL/BQAGAAMAAADvAPH/BQADAAQAAADvAPD/BQAEAAEAAADuABcABQACAAQAAADuABYABQABAAsAAADuABUABQACAAIAAADuABQABQACAAIAAADuABMABQACAAsAAADuABIABQACAAsAAADuABEABQACAAsAAADuABAABQACAAIAAADuAA8ABQACAAIAAADuAA4ABQACAAIAAADuAA0ABQABAAsAAADuAAwABQACAAsAAADuAAsABQACAAIAAADuAAoABQACAAIAAADuAAkABQABAAEAAADuAAgABQAAAAIAAADuAAcABQAAAAIAAADuAAYABQAAAAIAAADuAAUABQABAAAAAADuAP3/BQABAAQAAADuAPz/BQAAAAIAAADuAPv/BQAAAAIAAADuAPr/BQAAAAEAAADuAPD/BQACAAAAAADtABcABQACAAQAAADtABYABQACAAIAAADtABUABQACAAIAAADtABQABQAAAAsAAADtABMABQADAAsAAADtABIABQACAAIAAADtABEABQACAAIAAADtABAABQADAAsAAADtAA8ABQACAAIAAADtAA4ABQACAAIAAADtAA0ABQACAAsAAADtAAwABQACAAsAAADtAAsABQACAAIAAADtAAoABQABAAsAAADtAAkABQACAAAAAADtAPD/BQAJAAAAAADsABcABQACAAQAAADsABYABQACAAIAAADsABUABQACAAIAAADsABQABQACAAsAAADsABMABQACAAIAAADsABIABQABAAsAAADsABEABQACAAIAAADsABAABQACAAIAAADsAA8ABQABAAEAAADsAA4ABQAAAAIAAADsAA0ABQABAAMAAADsAAwABQADAAsAAADsAAsABQACAAIAAADsAAoABQADAAsAAADsAPD/BQAJAAAAAADrABcABQACAAQAAADrABYABQACAAsAAADrABUABQABAAsAAADrABQABQABAAsAAADrABMABQACAAsAAADrABIABQACAAsAAADrABEABQABAAEAAADrABAABQAAAAIAAADrAA0ABQACAAQAAADrAAwABQADAAsAAADrAAsABQABAAsAAADrAAoABQADAAsAAADrAAkABQACAAAAAADrAPD/BQAJAAAAAADqABcABQACAAQAAADqABYABQACAAIAAADqABUABQACAAIAAADqABQABQAAAAsAAADqABMABQACAAIAAADqABIABQABAAEAAADqABEABQABAAAAAADqAAwABQAAAAIAAADqAAsABQABAAMAAADqAAoABQACAAIAAADqAAkABQADAAEAAADqAAgABQAEAAIAAADqAAUABQAEAAIAAADqAAQABQAEAAEAAADqAPD/BQAJAAAAAADpABcABQACAAQAAADpABYABQABAAsAAADpABUABQACAAsAAADpABQABQACAAIAAADpABMABQACAAIAAADpABIABQACAAAAAADpAAsABQACAAQAAADpAAoABQACAAIAAADpAAkABQACAAIAAADpAAgABQACAAIAAADpAAcABQAAAAsAAADpAAYABQACAAIAAADpAAUABQACAAIAAADpAAQABQABAAEAAADpAPD/BQAJAAAAAADoABcABQACAAQAAADoABYABQACAAsAAADoABUABQACAAIAAADoABQABQABAAsAAADoABMABQACAAIAAADoABIABQABAAEAAADoAAsABQACAAQAAADoAAoABQACAAIAAADoAAkABQACAAIAAADoAAgABQAAAAsAAADoAAcABQACAAIAAADoAAUABQAAAAIAAADoAAQABQACAAAAAADoAAAABQAEAAMAAADoAP//BQAEAAIAAADoAP7/BQAEAAEAAADoAPD/BQAIAAAAAADnABcABQACAAQAAADnABYABQACAAIAAADnABUABQACAAIAAADnABQABQAAAAsAAADnABMABQACAAIAAADnABIABQACAAAAAADnAAsABQACAAQAAADnAAoABQACAAIAAADnAAkABQACAAIAAADnAAgABQACAAIAAADnAAcABQABAAsAAADnAAYABQACAAAAAADnAAEABQAGAAIAAADnAAAABQABAAEAAADnAP//BQAAAAIAAADnAP7/BQABAAAAAADmABcABQACAAQAAADmABYABQACAAIAAADmABUABQACAAsAAADmABQABQACAAIAAADmABMABQACAAIAAADmABIABQADAAEAAADmABEABQAEAAEAAADmAAsABQACAAQAAADmAAoABQACAAIAAADmAAkABQACAAIAAADmAAgABQAAAAsAAADmAAcABQABAAEAAADlABcABQACAAQAAADlABYABQAAAAsAAADlABUABQABAAsAAADlABQABQACAAIAAADlABMABQACAAIAAADlABIABQACAAsAAADlABEABQACAAAAAADlAAsABQACAAQAAADlAAoABQABAAsAAADlAAkABQACAAIAAADlAAgABQACAAIAAADlAAcABQACAAAAAADkABcABQACAAQAAADkABYABQACAAIAAADkABUABQABAAsAAADkABQABQACAAIAAADkABMABQAAAAsAAADkABIABQAAAAsAAADkABEABQADAAEAAADkABAABQADAAAAAADkAAsABQACAAQAAADkAAoABQACAAsAAADkAAkABQACAAIAAADkAAgABQABAAEAAADjABcABQACAAQAAADjABYABQACAAsAAADjABUABQABAAsAAADjABQABQACAAsAAADjABMABQADAAsAAADjABIABQAAAAsAAADjABEABQABAAsAAADjABAABQADAAEAAADjAA8ABQADAAAAAADjAAsABQACAAQAAADjAAoABQACAAIAAADjAAkABQACAAIAAADjAAgABQACAAAAAADiABcABQACAAQAAADiABYABQACAAIAAADiABUABQACAAIAAADiABQABQACAAIAAADiABMABQACAAIAAADiABIABQAAAAsAAADiABEABQACAAIAAADiABAABQACAAIAAADiAA8ABQADAAEAAADiAA4ABQAEAAIAAADiAAwABQAEAAIAAADiAAsABQADAAMAAADiAAoABQACAAIAAADiAAkABQABAAEAAADhABcABQACAAQAAADhABYABQACAAIAAADhABUABQABAAsAAADhABQABQABAAsAAADhABMABQACAAIAAADhABIABQACAAIAAADhABEABQABAAsAAADhABAABQACAAIAAADhAA8ABQACAAsAAADhAA4ABQADAAsAAADhAA0ABQACAAsAAADhAAwABQACAAIAAADhAAsABQACAAsAAADhAAoABQABAAEAAADhAAkABQABAAAAAADgABcABQACAAQAAADgABYABQACAAsAAADgABUABQACAAIAAADgABQABQACAAIAAADgABMABQACAAsAAADgABIABQACAAIAAADgABEABQACAAIAAADgABAABQAAAAsAAADgAA8ABQACAAIAAADgAA4ABQACAAIAAADgAA0ABQACAAIAAADgAAwABQAAAAsAAADgAAsABQADAAsAAADgAAoABQACAAAAAADfABcABQACAAQAAADfABYABQADAAsAAADfABUABQACAAIAAADfABQABQACAAIAAADfABMABQAAAAsAAADfABIABQAAAAsAAADfABEABQAAAAsAAADfABAABQACAAsAAADfAA8ABQACAAIAAADfAA4ABQAAAAsAAADfAA0ABQACAAIAAADfAAwABQAAAAsAAADfAAsABQACAAIAAADfAAoABQACAAAAAADeABcABQACAAQAAADeABYABQAAAAsAAADeABUABQAAAAsAAADeABQABQACAAIAAADeABMABQAAAAsAAADeABIABQACAAIAAADeABEABQAAAAsAAADeABAABQACAAIAAADeAA8ABQACAAsAAADeAA4ABQACAAIAAADeAA0ABQADAAsAAADeAAwABQABAAsAAADeAAsABQACAAIAAADeAAoABQACAAAAAADdABcABQACAAQAAADdABYABQACAAIAAADdABUABQAAAAsAAADdABQABQABAAsAAADdABMABQADAAsAAADdABIABQACAAIAAADdABEABQABAAsAAADdABAABQABAAsAAADdAA8ABQADAAsAAADdAA4ABQACAAIAAADdAA0ABQACAAIAAADdAAwABQACAAIAAADdAAsABQACAAIAAADdAAoABQACAAAAAADcABcABQACAAQAAADcABYABQABAAsAAADcABUABQACAAsAAADcABQABQABAAsAAADcABMABQAAAAsAAADcABIABQADAAsAAADcABEABQAAAAsAAADcABAABQACAAIAAADcAA8ABQADAAsAAADcAA4ABQACAAIAAADcAA0ABQACAAsAAADcAAwABQACAAIAAADcAAsABQACAAIAAADcAAoABQADAAEAAADcAAkABQADAAAAAADbABcABQACAAQAAADbABYABQACAAIAAADbABUABQACAAIAAADbABQABQACAAIAAADbABMABQABAAsAAADbABIABQACAAIAAADbABEABQACAAIAAADbABAABQABAAsAAADbAA8ABQACAAIAAADbAA4ABQADAAsAAADbAA0ABQACAAsAAADbAAwABQADAAsAAADbAAsABQADAAsAAADbAAoABQAAAAsAAADbAAkABQADAAEAAADbAAgABQADAAAAAADaABcABQACAAQAAADaABYABQACAAIAAADaABUABQACAAIAAADaABQABQABAAsAAADaABMABQACAAIAAADaABIABQACAAIAAADaABEABQACAAsAAADaABAABQABAAsAAADaAA8ABQABAAEAAADaAA4ABQAAAAIAAADaAA0ABQAAAAIAAADaAAwABQABAAMAAADaAAsABQACAAIAAADaAAoABQACAAIAAADaAAkABQACAAIAAADaAAgABQACAAAAAADaAPD/BQAKAAAAAADZABcABQACAAQAAADZABYABQACAAIAAADZABUABQADAAsAAADZABQABQABAAsAAADZABMABQACAAIAAADZABIABQACAAIAAADZABEABQAAAAsAAADZABAABQABAAEAAADZAA8ABQABAAAAAADZAAsABQABAAMAAADZAAoABQACAAsAAADZAAkABQADAAsAAADZAAgABQABAAEAAADZAPD/BQAJAAAAAADYABcABQACAAQAAADYABYABQADAAsAAADYABUABQACAAsAAADYABQABQACAAIAAADYABMABQABAAsAAADYABIABQACAAIAAADYABEABQADAAsAAADYABAABQACAAAAAADYAAsABQACAAQAAADYAAoABQACAAIAAADYAAkABQACAAIAAADYAAgABQACAAAAAADYAPD/BQAJAAAAAADXABcABQACAAQAAADXABYABQABAAsAAADXABUABQABAAsAAADXABQABQACAAsAAADXABMABQABAAsAAADXABIABQADAAsAAADXABEABQACAAsAAADXABAABQACAAAAAADXAAwABQADAAQAAADXAAsABQADAAMAAADXAAoABQACAAIAAADXAAkABQABAAEAAADXAPD/BQAJAAAAAADWABcABQACAAQAAADWABYABQABAAsAAADWABUABQAAAAsAAADWABQABQAAAAsAAADWABMABQAAAAsAAADWABIABQACAAIAAADWABEABQACAAIAAADWABAABQADAAEAAADWAA8ABQAEAAIAAADWAA0ABQAEAAIAAADWAAwABQADAAMAAADWAAsABQABAAsAAADWAAoABQAAAAsAAADWAAkABQACAAAAAADWAPD/BQAJAAAAAADVABcABQACAAQAAADVABYABQACAAIAAADVABUABQACAAIAAADVABQABQAAAAsAAADVABMABQADAAsAAADVABIABQACAAIAAADVABEABQADAAsAAADVABAABQACAAIAAADVAA8ABQABAAsAAADVAA4ABQACAAIAAADVAA0ABQACAAIAAADVAAwABQACAAIAAADVAAsABQACAAIAAADVAAoABQACAAIAAADVAAkABQADAAEAAADVAPD/BQAJAAAAAADUABcABQACAAQAAADUABYABQAAAAsAAADUABUABQADAAsAAADUABQABQACAAIAAADUABMABQADAAsAAADUABIABQABAAsAAADUABEABQACAAIAAADUABAABQABAAsAAADUAA8ABQADAAsAAADUAA4ABQACAAIAAADUAA0ABQACAAIAAADUAAwABQACAAIAAADUAAsABQADAAsAAADUAAoABQACAAIAAADUAAkABQACAAIAAADUAAgABQADAAEAAADUAAcABQAEAAIAAADUAPD/BQAJAAAAAADTABcABQACAAQAAADTABYABQADAAsAAADTABUABQACAAIAAADTABQABQACAAsAAADTABMABQAAAAsAAADTABIABQACAAIAAADTABEABQACAAIAAADTABAABQACAAIAAADTAA8ABQACAAIAAADTAA4ABQACAAIAAADTAA0ABQACAAIAAADTAAwABQACAAIAAADTAAsABQACAAIAAADTAAoABQABAAsAAADTAAkABQACAAIAAADTAAgABQABAAsAAADTAAcABQACAAIAAADTAAYABQACAAAAAADTAPD/BQAJAAAAAADSABcABQACAAQAAADSABYABQACAAIAAADSABUABQACAAIAAADSABQABQACAAIAAADSABMABQACAAsAAADSABIABQACAAsAAADSABEABQACAAIAAADSABAABQAAAAsAAADSAA8ABQACAAIAAADSAA4ABQACAAIAAADSAA0ABQABAAEAAADSAAwABQAAAAIAAADSAAsABQAAAAIAAADSAAoABQAAAAIAAADSAAkABQAAAAIAAADSAAgABQABAAMAAADSAAcABQAAAAsAAADSAAYABQACAAAAAADSAPD/BQAIAAAAAADRABcABQACAAQAAADRABYABQACAAIAAADRABUABQABAAsAAADRABQABQACAAsAAADRABMABQADAAsAAADRABIABQACAAIAAADRABEABQABAAsAAADRABAABQAAAAsAAADRAA8ABQACAAIAAADRAA4ABQACAAsAAADRAA0ABQACAAAAAADRAAIABQAGAAAAAADQABcABQACAAQAAADQABYABQACAAIAAADQABUABQACAAIAAADQABQABQABAAsAAADQABMABQACAAIAAADQABIABQACAAIAAADQABEABQAAAAsAAADQABAABQACAAIAAADQAA8ABQACAAIAAADQAA4ABQACAAIAAADPABcABQACAAQAAADPABYABQACAAsAAADPABUABQACAAsAAADPABQABQACAAIAAADPABMABQABAAsAAADPABIABQACAAIAAADPABEABQABAAsAAADPABAABQADAAsAAADPAA8ABQACAAIAAADPAA4ABQACAAIAAADOABcABQACAAQAAADOABYABQAAAAsAAADOABUABQABAAsAAADOABQABQABAAsAAADOABMABQACAAIAAADOABIABQACAAIAAADOABEABQACAAIAAADOABAABQACAAIAAADOAA8ABQACAAsAAADOAA4ABQACAAIAAADOAA0ABQADAAEAAADOAAwABQAEAAIAAADOAAsABQAEAAIAAADOAAoABQAEAAIAAADOAAkABQADAAAAAADNABcABQACAAQAAADNABYABQADAAsAAADNABUABQACAAIAAADNABQABQABAAsAAADNABMABQACAAIAAADNABIABQACAAIAAADNABEABQACAAIAAADNABAABQACAAIAAADNAA8ABQACAAsAAADNAA4ABQACAAIAAADNAA0ABQACAAIAAADNAAwABQACAAIAAADNAAsABQACAAIAAADNAAoABQACAAIAAADNAAkABQADAAEAAADNAAgABQAEAAIAAADMABcABQACAAQAAADMABYABQACAAsAAADMABUABQACAAIAAADMABQABQADAAsAAADMABMABQACAAIAAADMABIABQACAAIAAADMABEABQADAAsAAADMABAABQADAAsAAADMAA8ABQACAAIAAADMAA4ABQACAAIAAADMAA0ABQABAAsAAADMAAwABQACAAIAAADMAAsABQAAAAsAAADMAAoABQACAAIAAADMAAkABQAAAAsAAADMAAgABQACAAsAAADMAAcABQACAAAAAADLABcABQACAAQAAADLABYABQACAAIAAADLABUABQAAAAsAAADLABQABQACAAIAAADLABMABQACAAsAAADLABIABQACAAIAAADLABEABQACAAsAAADLABAABQADAAsAAADLAA8ABQACAAIAAADLAA4ABQADAAsAAADLAA0ABQACAAsAAADLAAwABQACAAIAAADLAAsABQAAAAsAAADLAAoABQACAAIAAADLAAkABQACAAIAAADLAAgABQABAAEAAADLAAcABQABAAAAAADKABcABQACAAQAAADKABYABQADAAsAAADKABUABQACAAsAAADKABQABQACAAIAAADKABMABQACAAIAAADKABIABQAAAAsAAADKABEABQABAAsAAADKABAABQACAAIAAADKAA8ABQACAAIAAADKAA4ABQAAAAsAAADKAA0ABQACAAIAAADKAAwABQAAAAsAAADKAAsABQADAAsAAADKAAoABQADAAsAAADKAAkABQABAAEAAADKAAgABQABAAAAAADJABcABQACAAQAAADJABYABQACAAIAAADJABUABQACAAIAAADJABQABQADAAsAAADJABMABQACAAIAAADJABIABQABAAsAAADJABEABQACAAsAAADJABAABQACAAIAAADJAA8ABQACAAIAAADJAA4ABQACAAIAAADJAA0ABQADAAsAAADJAAwABQADAAsAAADJAAsABQACAAIAAADJAAoABQABAAEAAADJAAkABQABAAAAAADIABcABQACAAQAAADIABYABQABAAsAAADIABUABQABAAsAAADIABQABQAAAAsAAADIABMABQACAAIAAADIABIABQAAAAsAAADIABEABQADAAsAAADIABAABQACAAsAAADIAA8ABQABAAsAAADIAA4ABQADAAsAAADIAA0ABQACAAIAAADIAAwABQABAAsAAADIAAsABQACAAIAAADIAAoABQACAAAAAADHABcABQACAAQAAADHABYABQACAAsAAADHABUABQACAAIAAADHABQABQACAAIAAADHABMABQABAAsAAADHABIABQACAAsAAADHABEABQACAAIAAADHABAABQABAAsAAADHAA8ABQACAAIAAADHAA4ABQACAAIAAADHAA0ABQACAAIAAADHAAwABQABAAsAAADHAAsABQACAAIAAADHAAoABQACAAAAAADGABcABQACAAQAAADGABYABQAAAAsAAADGABUABQADAAsAAADGABQABQACAAIAAADGABMABQACAAsAAADGABIABQACAAsAAADGABEABQAAAAsAAADGABAABQABAAsAAADGAA8ABQACAAIAAADGAA4ABQACAAsAAADGAA0ABQACAAsAAADGAAwABQABAAsAAADGAAsABQAAAAsAAADGAAoABQACAAAAAADGAAQABQAKAAAAAADFABcABQACAAQAAADFABYABQACAAIAAADFABUABQACAAsAAADFABQABQACAAIAAADFABMABQADAAsAAADFABIABQADAAsAAADFABEABQACAAIAAADFABAABQACAAIAAADFAA8ABQAAAAsAAADFAA4ABQACAAIAAADFAA0ABQACAAsAAADFAAwABQADAAsAAADFAAsABQADAAsAAADFAAoABQACAAAAAADFAAQABQAGAAEAAADEABcABQACAAQAAADEABYABQACAAsAAADEABUABQACAAIAAADEABQABQACAAIAAADEABMABQACAAIAAADEABIABQAAAAsAAADEABEABQABAAsAAADEABAABQACAAsAAADEAA8ABQABAAsAAADEAA4ABQADAAsAAADEAA0ABQACAAIAAADEAAwABQABAAsAAADEAAsABQADAAsAAADEAAoABQABAAEAAADDABcABQACAAQAAADDABYABQACAAIAAADDABUABQACAAIAAADDABQABQACAAIAAADDABMABQACAAIAAADDABIABQACAAsAAADDABEABQACAAIAAADDABAABQACAAIAAADDAA8ABQACAAIAAADDAA4ABQACAAIAAADDAA0ABQAAAAsAAADDAAwABQABAAsAAADDAAsABQACAAsAAADDAAoABQACAAAAAADCABcABQACAAQAAADCABYABQACAAIAAADCABUABQACAAIAAADCABQABQABAAsAAADCABMABQACAAIAAADCABIABQAAAAsAAADCABEABQACAAIAAADCABAABQACAAIAAADCAA8ABQACAAsAAADCAA4ABQACAAIAAADCAA0ABQABAAsAAADCAAwABQACAAIAAADCAAsABQACAAIAAADCAAoABQADAAEAAADCAAkABQAEAAIAAADBABcABQACAAQAAADBABYABQABAAsAAADBABUABQACAAIAAADBABQABQACAAsAAADBABMABQACAAIAAADBABIABQABAAsAAADBABEABQACAAIAAADBABAABQACAAIAAADBAA8ABQACAAIAAADBAA4ABQADAAsAAADBAA0ABQACAAsAAADBAAwABQACAAIAAADBAAsABQABAAsAAADBAAoABQABAAsAAADBAAkABQACAAIAAADBAAgABQADAAEAAADBAAcABQAEAAIAAADBAAYABQADAAAAAADAABcABQACAAQAAADAABYABQACAAsAAADAABUABQADAAsAAADAABQABQACAAsAAADAABMABQACAAIAAADAABIABQADAAsAAADAABEABQABAAsAAADAABAABQACAAIAAADAAA8ABQADAAsAAADAAA4ABQABAAsAAADAAA0ABQACAAIAAADAAAwABQACAAsAAADAAAsABQADAAsAAADAAAoABQACAAIAAADAAAkABQACAAsAAADAAAgABQABAAsAAADAAAcABQACAAsAAADAAAYABQACAAAAAAC/ABcABQACAAQAAAC/ABYABQADAAsAAAC/ABUABQAAAAsAAAC/ABQABQABAAsAAAC/ABMABQACAAIAAAC/ABIABQABAAsAAAC/ABEABQABAAsAAAC/ABAABQACAAIAAAC/AA8ABQACAAIAAAC/AA4ABQABAAsAAAC/AA0ABQADAAsAAAC/AAwABQABAAsAAAC/AAsABQACAAIAAAC/AAoABQABAAsAAAC/AAkABQACAAIAAAC/AAgABQABAAsAAAC/AAcABQAAAAsAAAC/AAYABQABAAEAAAC+ABcABQACAAQAAAC+ABYABQABAAsAAAC+ABUABQADAAsAAAC+ABQABQACAAIAAAC+ABMABQABAAsAAAC+ABIABQACAAIAAAC+ABEABQAAAAsAAAC+ABAABQACAAsAAAC+AA8ABQABAAsAAAC+AA4ABQACAAIAAAC+AA0ABQACAAsAAAC+AAwABQADAAsAAAC+AAsABQACAAIAAAC+AAoABQAAAAsAAAC+AAkABQACAAIAAAC+AAgABQADAAsAAAC+AAcABQACAAIAAAC+AAYABQACAAAAAAC+AAIABQAGAAAAAAC9ABcABQACAAQAAAC9ABYABQADAAsAAAC9ABUABQABAAsAAAC9ABQABQAAAAsAAAC9ABMABQACAAIAAAC9ABIABQABAAsAAAC9ABEABQACAAIAAAC9ABAABQACAAsAAAC9AA8ABQABAAsAAAC9AA4ABQABAAsAAAC9AA0ABQACAAIAAAC9AAwABQACAAIAAAC9AAsABQADAAsAAAC9AAoABQACAAIAAAC9AAkABQACAAsAAAC9AAgABQACAAsAAAC9AAcABQACAAsAAAC9AAYABQADAAEAAAC9AAUABQAEAAEAAAC8ABcABQACAAQAAAC8ABYABQACAAsAAAC8ABUABQACAAIAAAC8ABQABQACAAIAAAC8ABMABQACAAIAAAC8ABIABQACAAIAAAC8ABEABQACAAIAAAC8ABAABQADAAsAAAC8AA8ABQACAAIAAAC8AA4ABQADAAsAAAC8AA0ABQAAAAsAAAC8AAwABQADAAsAAAC8AAsABQACAAsAAAC8AAoABQACAAIAAAC8AAkABQACAAsAAAC8AAgABQACAAIAAAC8AAcABQACAAIAAAC8AAYABQABAAsAAAC8AAUABQACAAAAAAC8APD/BQAKAAAAAAC7ABcABQACAAQAAAC7ABYABQABAAsAAAC7ABUABQABAAsAAAC7ABQABQAAAAsAAAC7ABMABQAAAAsAAAC7ABIABQACAAIAAAC7ABEABQACAAIAAAC7ABAABQACAAIAAAC7AA8ABQABAAsAAAC7AA4ABQABAAsAAAC7AA0ABQAAAAsAAAC7AAwABQACAAIAAAC7AAsABQACAAsAAAC7AAoABQACAAIAAAC7AAkABQACAAsAAAC7AAgABQACAAIAAAC7AAcABQABAAEAAAC7AAYABQAAAAIAAAC7APD/BQAJAAAAAAC6ABcABQACAAQAAAC6ABYABQABAAsAAAC6ABUABQACAAIAAAC6ABQABQADAAsAAAC6ABMABQACAAIAAAC6ABIABQADAAsAAAC6ABEABQACAAIAAAC6ABAABQACAAIAAAC6AA8ABQAAAAsAAAC6AA4ABQADAAsAAAC6AA0ABQACAAsAAAC6AAwABQADAAsAAAC6AAsABQAAAAsAAAC6AAoABQADAAsAAAC6AAkABQACAAIAAAC6AAgABQABAAsAAAC6AAcABQACAAAAAAC6APD/BQAJAAAAAAC5ABcABQACAAQAAAC5ABYABQAAAAsAAAC5ABUABQADAAsAAAC5ABQABQABAAsAAAC5ABMABQACAAIAAAC5ABIABQACAAIAAAC5ABEABQACAAsAAAC5ABAABQADAAsAAAC5AA8ABQACAAIAAAC5AA4ABQACAAIAAAC5AA0ABQACAAIAAAC5AAwABQACAAIAAAC5AAsABQACAAIAAAC5AAoABQADAAsAAAC5AAkABQACAAsAAAC5AAgABQACAAIAAAC5AAcABQACAAAAAAC5APD/BQAJAAAAAAC4ABcABQACAAQAAAC4ABYABQAAAAsAAAC4ABUABQACAAIAAAC4ABQABQACAAIAAAC4ABMABQABAAsAAAC4ABIABQACAAIAAAC4ABEABQABAAEAAAC4AA4ABQABAAMAAAC4AA0ABQADAAsAAAC4AAwABQABAAsAAAC4AAsABQADAAsAAAC4AAoABQACAAIAAAC4AAkABQACAAIAAAC4AAgABQACAAsAAAC4AAcABQACAAAAAAC4APD/BQAJAAAAAAC3ABcABQACAAQAAAC3ABYABQABAAsAAAC3ABUABQAAAAsAAAC3ABQABQADAAsAAAC3ABMABQABAAsAAAC3ABIABQABAAsAAAC3ABEABQACAAAAAAC3AA4ABQACAAQAAAC3AA0ABQACAAIAAAC3AAwABQACAAIAAAC3AAsABQACAAIAAAC3AAoABQACAAIAAAC3AAkABQAAAAsAAAC3AAgABQABAAEAAAC3AAcABQABAAAAAAC3APD/BQAJAAAAAAC2ABcABQACAAQAAAC2ABYABQADAAsAAAC2ABUABQADAAsAAAC2ABQABQACAAsAAAC2ABMABQABAAsAAAC2ABIABQACAAIAAAC2ABEABQADAAEAAAC2AA8ABQAEAAIAAAC2AA4ABQADAAMAAAC2AA0ABQABAAsAAAC2AAwABQACAAsAAAC2AAsABQACAAsAAAC2AAoABQACAAIAAAC2AAkABQACAAIAAAC2AAgABQACAAAAAAC2APD/BQAJAAAAAAC1ABcABQACAAQAAAC1ABYABQAAAAsAAAC1ABUABQACAAIAAAC1ABQABQACAAIAAAC1ABMABQACAAIAAAC1ABIABQACAAIAAAC1ABEABQAAAAsAAAC1ABAABQACAAIAAAC1AA8ABQACAAIAAAC1AA4ABQABAAsAAAC1AA0ABQACAAIAAAC1AAwABQAAAAsAAAC1AAsABQAAAAsAAAC1AAoABQACAAIAAAC1AAkABQABAAEAAAC1AAgABQABAAAAAAC1APD/BQAJAAAAAAC0ABcABQACAAQAAAC0ABYABQACAAIAAAC0ABUABQABAAsAAAC0ABQABQACAAIAAAC0ABMABQACAAsAAAC0ABIABQACAAIAAAC0ABEABQAAAAsAAAC0ABAABQACAAsAAAC0AA8ABQACAAsAAAC0AA4ABQACAAIAAAC0AA0ABQACAAIAAAC0AAwABQACAAIAAAC0AAsABQAAAAsAAAC0AAoABQACAAIAAAC0AAkABQACAAAAAAC0APD/BQAJAAAAAACzABcABQACAAQAAACzABYABQAAAAsAAACzABUABQACAAIAAACzABQABQAAAAsAAACzABMABQADAAsAAACzABIABQADAAsAAACzABEABQACAAIAAACzABAABQAAAAsAAACzAA8ABQABAAsAAACzAA4ABQADAAsAAACzAA0ABQACAAIAAACzAAwABQAAAAsAAACzAAsABQAAAAsAAACzAAoABQAAAAsAAACzAP7/BQAEAAMAAACzAP3/BQADAAAAAACzAPD/BQAIAAAAAACyABcABQACAAQAAACyABYABQACAAsAAACyABUABQACAAsAAACyABQABQACAAsAAACyABMABQACAAsAAACyABIABQABAAsAAACyABEABQABAAsAAACyABAABQACAAIAAACyAA8ABQABAAsAAACyAA4ABQABAAEAAACyAA0ABQAAAAIAAACyAAwABQABAAMAAACyAAsABQACAAIAAACyAAoABQABAAsAAACyAAkABQACAAAAAACyAP7/BQAAAAMAAACyAP3/BQACAAAAAACxABcABQACAAQAAACxABYABQABAAsAAACxABUABQACAAIAAACxABQABQADAAsAAACxABMABQADAAsAAACxABIABQACAAsAAACxABEABQADAAsAAACxABAABQACAAIAAACxAA8ABQACAAsAAACxAAsABQAAAAIAAACxAAoABQABAAMAAACxAAkABQADAAEAAACxAAgABQAEAAIAAACxAAcABQAEAAEAAACxAP3/BQAJAAAAAACxAPz/BQAGAAMAAACwABcABQACAAQAAACwABYABQAAAAsAAACwABUABQABAAsAAACwABQABQACAAIAAACwABMABQACAAIAAACwABIABQACAAIAAACwABEABQADAAsAAACwABAABQABAAsAAACwAA8ABQABAAEAAACwAAoABQACAAQAAACwAAkABQACAAsAAACwAAgABQACAAIAAACwAAcABQADAAEAAACwAAYABQADAAAAAACwAP3/BQAIAAAAAACvABcABQACAAQAAACvABYABQACAAIAAACvABUABQACAAsAAACvABQABQADAAsAAACvABMABQACAAIAAACvABIABQABAAsAAACvABEABQAAAAsAAACvABAABQAAAAsAAACvAA8ABQACAAAAAACvAAoABQABAAQAAACvAAkABQABAAMAAACvAAgABQABAAsAAACvAAcABQACAAIAAACvAAYABQADAAEAAACvAAUABQAEAAEAAACuABcABQACAAQAAACuABYABQACAAIAAACuABUABQABAAsAAACuABQABQACAAIAAACuABMABQACAAIAAACuABIABQACAAsAAACuABEABQAAAAsAAACuABAABQACAAIAAACuAA8ABQACAAAAAACuAAkABQABAAQAAACuAAgABQABAAMAAACuAAcABQACAAIAAACuAAYABQACAAIAAACuAAUABQACAAAAAACtABcABQACAAQAAACtABYABQACAAsAAACtABUABQACAAIAAACtABQABQADAAsAAACtABEABQAAAAsAAACtABAABQACAAIAAACtAA8ABQACAAAAAACtAAgABQACAAQAAACtAAcABQACAAIAAACtAAYABQABAAEAAACtAAUABQAAAAEAAACsABcABQACAAQAAACsABYABQACAAsAAACsABUABQACAAIAAACsABQABQACAAIAAACsABMABQADAAsAAACsABIABQACAAsAAACsABEABQACAAIAAACsABAABQACAAIAAACsAA8ABQACAAAAAACsAAgABQACAAQAAACsAAcABQACAAsAAACsAAYABQACAAAAAACsAPD/BQAKAAAAAACrABcABQACAAQAAACrABYABQABAAsAAACrABUABQADAAsAAACrABQABQACAAIAAACrABMABQACAAIAAACrABIABQAAAAsAAACrABEABQACAAIAAACrABAABQADAAsAAACrAA8ABQACAAAAAACrAAgABQAAAAMAAACrAAcABQAAAAIAAACrAPD/BQAJAAAAAACqABcABQACAAQAAACqABYABQAAAAsAAACqABUABQACAAIAAACqABQABQACAAIAAACqABMABQADAAsAAACqABIABQACAAIAAACqABEABQACAAIAAACqABAABQACAAsAAACqAA8ABQADAAEAAACqAPD/BQAJAAAAAACpABcABQACAAQAAACpABYABQADAAsAAACpABUABQACAAIAAACpABQABQACAAIAAACpABMABQACAAsAAACpABIABQACAAsAAACpABEABQACAAIAAACpABAABQACAAIAAACpAA8ABQADAAsAAACpAA4ABQACAAAAAACpAPD/BQAJAAAAAACoABcABQACAAQAAACoABYABQACAAIAAACoABUABQACAAIAAACoABQABQACAAIAAACoABMABQABAAsAAACoABIABQACAAsAAACoABEABQACAAIAAACoABAABQADAAsAAACoAA8ABQABAAsAAACoAA4ABQADAAEAAACoAA0ABQAEAAIAAACoAAwABQAEAAIAAACoAAsABQAEAAIAAACoAAoABQAEAAEAAACoAPD/BQAJAAAAAACnABcABQACAAQAAACnABYABQAAAAsAAACnABUABQABAAsAAACnABQABQABAAsAAACnABMABQACAAIAAACnABIABQACAAsAAACnABEABQACAAsAAACnABAABQAAAAsAAACnAA8ABQACAAIAAACnAA4ABQACAAIAAACnAA0ABQACAAIAAACnAAwABQAAAAsAAACnAAsABQACAAsAAACnAAoABQABAAEAAACnAAkABQAGAAEAAACnAPD/BQAIAAAAAACmABcABQACAAQAAACmABYABQACAAIAAACmABUABQABAAsAAACmABQABQADAAsAAACmABMABQADAAsAAACmABIABQABAAsAAACmABEABQAAAAsAAACmABAABQACAAIAAACmAA8ABQACAAIAAACmAA4ABQAAAAsAAACmAA0ABQABAAsAAACmAAwABQADAAsAAACmAAsABQABAAsAAACmAAoABQACAAAAAAClABcABQACAAQAAAClABYABQACAAIAAAClABUABQAAAAsAAAClABQABQABAAsAAAClABMABQACAAIAAAClABIABQACAAIAAAClABEABQAAAAsAAAClABAABQABAAsAAAClAA8ABQABAAsAAAClAA4ABQACAAIAAAClAA0ABQABAAsAAAClAAwABQACAAIAAAClAAsABQABAAsAAAClAAoABQABAAEAAACkABcABQACAAQAAACkABYABQACAAIAAACkABUABQACAAIAAACkABQABQACAAIAAACkABMABQACAAIAAACkABIABQAAAAsAAACkABEABQABAAsAAACkABAABQACAAIAAACkAA8ABQADAAsAAACkAA4ABQAAAAsAAACkAA0ABQACAAIAAACkAAwABQACAAIAAACkAAsABQACAAsAAACkAAoABQACAAAAAACjABcABQACAAQAAACjABYABQACAAIAAACjABUABQACAAIAAACjABQABQACAAIAAACjABMABQACAAsAAACjABIABQABAAsAAACjABEABQADAAsAAACjABAABQACAAIAAACjAA8ABQACAAsAAACjAA4ABQABAAEAAACjAA0ABQAAAAIAAACjAAsABQABAAMAAACjAAoABQADAAEAAACjAAkABQAEAAIAAACiABcABQACAAQAAACiABYABQACAAIAAACiABUABQABAAsAAACiABQABQACAAsAAACiABMABQACAAIAAACiABIABQACAAsAAACiABEABQACAAIAAACiABAABQACAAIAAACiAA8ABQACAAsAAACiAA4ABQACAAAAAACiAAsABQACAAQAAACiAAoABQACAAIAAACiAAkABQADAAsAAACiAAgABQACAAAAAACiAPD/BQAKAAAAAAChABcABQACAAQAAAChABYABQACAAsAAAChABUABQADAAsAAAChABQABQACAAIAAAChABMABQACAAIAAAChABIABQABAAsAAAChABEABQABAAsAAAChABAABQADAAsAAAChAA8ABQACAAsAAAChAA4ABQACAAAAAAChAAsABQACAAQAAAChAAoABQABAAsAAAChAAkABQAAAAsAAAChAAgABQADAAEAAAChAAcABQAEAAIAAAChAPD/BQAJAAAAAACgABcABQACAAQAAACgABYABQABAAsAAACgABUABQACAAIAAACgABQABQACAAIAAACgABMABQABAAsAAACgABIABQABAAsAAACgABEABQACAAIAAACgABAABQACAAIAAACgAA8ABQACAAIAAACgAA4ABQADAAEAAACgAA0ABQAEAAIAAACgAAsABQADAAMAAACgAAoABQACAAIAAACgAAkABQACAAsAAACgAAgABQADAAsAAACgAAcABQACAAIAAACgAAYABQADAAEAAACgAAUABQAEAAIAAACgAAQABQADAAAAAACgAPD/BQAJAAAAAACfABcABQACAAQAAACfABYABQABAAsAAACfABUABQACAAIAAACfABQABQACAAIAAACfABMABQACAAsAAACfABIABQACAAsAAACfABEABQACAAIAAACfABAABQADAAsAAACfAA8ABQACAAIAAACfAA4ABQACAAIAAACfAA0ABQABAAsAAACfAAwABQACAAIAAACfAAsABQACAAIAAACfAAoABQABAAsAAACfAAkABQABAAsAAACfAAgABQACAAIAAACfAAcABQAAAAsAAACfAAYABQACAAIAAACfAAUABQAAAAsAAACfAAQABQACAAAAAACfAPD/BQAJAAAAAACeABcABQACAAQAAACeABYABQADAAsAAACeABUABQACAAIAAACeABQABQABAAsAAACeABMABQACAAsAAACeABIABQACAAsAAACeABEABQACAAIAAACeABAABQADAAsAAACeAA8ABQACAAIAAACeAA4ABQADAAsAAACeAA0ABQACAAIAAACeAAsABQAAAAsAAACeAAoABQACAAIAAACeAAkABQACAAIAAACeAAgABQACAAsAAACeAAcABQADAAsAAACeAAYABQACAAIAAACeAAUABQAAAAsAAACeAAQABQADAAEAAACeAAMABQAEAAEAAACeAPD/BQAJAAAAAACdABcABQACAAQAAACdABYABQACAAIAAACdABUABQACAAIAAACdABQABQACAAIAAACdABMABQACAAIAAACdABIABQACAAIAAACdABEABQABAAsAAACdABAABQAAAAsAAACdAA8ABQACAAIAAACdAA4ABQADAAsAAACdAA0ABQABAAEAAACdAAwABQAAAAIAAACdAAsABQABAAMAAACdAAoABQACAAIAAACdAAkABQADAAsAAACdAAgABQACAAsAAACdAAcABQADAAsAAACdAAYABQABAAsAAACdAAUABQAAAAsAAACdAAQABQABAAsAAACdAAMABQACAAAAAACdAPD/BQAJAAAAAACcABcABQACAAQAAACcABYABQACAAIAAACcABUABQACAAIAAACcABQABQACAAIAAACcABMABQACAAIAAACcABIABQACAAIAAACcABAABQAAAAIAAACcAA8ABQABAAEAAACcAA4ABQAAAAIAAACcAA0ABQABAAAAAACcAAoABQAAAAIAAACcAAkABQABAAMAAACcAAgABQACAAIAAACcAAcABQACAAIAAACcAAYABQACAAIAAACcAAUABQACAAsAAACcAAQABQACAAIAAACcAAMABQACAAAAAACcAPD/BQAJAAAAAACbABcABQACAAQAAACbABYABQACAAIAAACbABUABQABAAsAAACbABQABQADAAsAAACbABMABQACAAIAAACbABIABQABAAsAAACbAAkABQAAAAMAAACbAAgABQABAAMAAACbAAcABQACAAIAAACbAAYABQACAAIAAACbAAUABQACAAIAAACbAAQABQACAAIAAACbAAMABQACAAAAAACbAPD/BQAIAAAAAACaABcABQACAAQAAACaABYABQABAAsAAACaABUABQACAAIAAACaABQABQACAAsAAACaABMABQACAAIAAACaABIABQACAAIAAACaAAcABQABAAMAAACaAAYABQACAAIAAACaAAUABQACAAIAAACaAAQABQABAAEAAACaAAMABQABAAAAAACZABcABQACAAQAAACZABYABQACAAIAAACZABUABQACAAIAAACZABQABQABAAsAAACZABMABQACAAIAAACZABIABQACAAIAAACZABEABQADAAEAAACZAAcABQACAAQAAACZAAYABQAAAAsAAACZAAUABQACAAIAAACZAAQABQACAAAAAACYABcABQACAAQAAACYABYABQABAAsAAACYABUABQABAAsAAACYABQABQADAAsAAACYABMABQADAAsAAACYABIABQACAAIAAACYABEABQACAAIAAACYABAABQACAAAAAACYAAcABQACAAQAAACYAAYABQACAAsAAACYAAUABQACAAsAAACYAAQABQACAAAAAACXABcABQACAAQAAACXABYABQABAAsAAACXABUABQACAAIAAACXABQABQABAAsAAACXABMABQACAAsAAACXABIABQAAAAsAAACXABEABQADAAsAAACXABAABQADAAEAAACXAAcABQACAAQAAACXAAYABQACAAIAAACXAAUABQABAAsAAACXAAQABQACAAAAAACWABcABQACAAQAAACWABYABQABAAsAAACWABUABQABAAsAAACWABQABQAAAAsAAACWABMABQACAAsAAACWABIABQACAAIAAACWABEABQACAAIAAACWABAABQABAAsAAACWAA8ABQACAAAAAACWAAcABQABAAQAAACWAAYABQABAAMAAACWAAUABQADAAsAAACWAAQABQACAAAAAACVABcABQACAAQAAACVABYABQAAAAsAAACVABUABQACAAIAAACVABQABQAAAAsAAACVABMABQACAAIAAACVABIABQACAAsAAACVABEABQACAAsAAACVABAABQACAAIAAACVAA8ABQABAAEAAACVAAYABQABAAQAAACVAAUABQABAAMAAACVAAQABQADAAEAAACVAAMABQAEAAIAAACUABcABQACAAQAAACUABYABQACAAIAAACUABUABQACAAIAAACUABQABQAAAAsAAACUABMABQAAAAsAAACUABIABQACAAIAAACUABEABQACAAIAAACUABAABQACAAIAAACUAA8ABQACAAAAAACUAAUABQABAAQAAACUAAQABQABAAMAAACUAAMABQABAAsAAACUAAIABQADAAEAAACUAAEABQADAAAAAACTABcABQACAAQAAACTABYABQACAAIAAACTABUABQABAAsAAACTABQABQACAAIAAACTABMABQACAAsAAACTABIABQACAAsAAACTABEABQADAAsAAACTABAABQADAAsAAACTAAQABQACAAQAAACTAAMABQABAAsAAACTAAIABQABAAEAAACTAAEABQAAAAEAAACSABcABQACAAQAAACSABYABQACAAsAAACSABUABQACAAIAAACSABQABQABAAsAAACSABMABQACAAIAAACSABIABQACAAIAAACSABEABQACAAIAAACSABAABQACAAIAAACSAA8ABQACAAIAAACSAA4ABQACAAIAAACSAA0ABQADAAEAAACSAAwABQAEAAIAAACSAAsABQAEAAEAAACSAAQABQACAAQAAACSAAMABQABAAsAAACSAAIABQACAAAAAACRABcABQACAAQAAACRABYABQADAAsAAACRABUABQADAAsAAACRABQABQACAAsAAACRABMABQABAAsAAACRABIABQACAAIAAACRABEABQACAAIAAACRABAABQADAAsAAACRAA8ABQACAAIAAACRAA4ABQACAAIAAACRAA0ABQACAAIAAACRAAwABQACAAIAAACRAAsABQADAAEAAACRAAoABQAEAAEAAACRAAQABQACAAQAAACRAAMABQABAAsAAACRAAIABQACAAAAAACQABcABQACAAQAAACQABYABQACAAIAAACQABUABQACAAIAAACQABQABQACAAIAAACQABMABQABAAsAAACQABIABQACAAIAAACQABEABQACAAIAAACQABAABQADAAsAAACQAA8ABQABAAsAAACQAA4ABQACAAIAAACQAA0ABQABAAsAAACQAAwABQAAAAsAAACQAAsABQACAAIAAACQAAoABQADAAEAAACQAAkABQADAAAAAACQAAQABQADAAMAAACQAAMABQABAAEAAACQAAIABQABAAAAAACPABcABQACAAQAAACPABYABQAAAAsAAACPABUABQAAAAsAAACPABQABQAAAAsAAACPABMABQAAAAsAAACPABIABQADAAsAAACPABEABQACAAIAAACPABAABQACAAIAAACPAA8ABQADAAsAAACPAA4ABQACAAIAAACPAA0ABQADAAsAAACPAAwABQACAAsAAACPAAsABQACAAIAAACPAAoABQACAAsAAACPAAkABQADAAEAAACPAAgABQAEAAIAAACPAAcABQAEAAIAAACPAAYABQAEAAIAAACPAAUABQADAAMAAACPAAQABQACAAsAAACPAAMABQACAAAAAACOABcABQACAAQAAACOABYABQAAAAsAAACOABUABQACAAIAAACOABQABQACAAIAAACOABMABQABAAsAAACOABIABQACAAIAAACOABEABQACAAIAAACOABAABQACAAsAAACOAA8ABQAAAAsAAACOAA4ABQACAAIAAACOAA0ABQACAAIAAACOAAwABQAAAAsAAACOAAsABQACAAIAAACOAAoABQACAAIAAACOAAkABQADAAsAAACOAAgABQACAAIAAACOAAcABQACAAIAAACOAAYABQABAAEAAACOAAUABQAAAAIAAACOAAQABQABAAEAAACOAAMABQABAAAAAACNABcABQACAAQAAACNABYABQABAAsAAACNABUABQABAAsAAACNABQABQACAAIAAACNABMABQACAAsAAACNABIABQACAAIAAACNABEABQACAAIAAACNABAABQADAAsAAACNAA8ABQACAAsAAACNAA4ABQABAAEAAACNAA0ABQAAAAIAAACNAAwABQAAAAIAAACNAAsABQAAAAIAAACNAAoABQAAAAIAAACNAAkABQABAAEAAACNAAgABQAAAAIAAACNAAcABQAAAAIAAACNAAYABQABAAAAAACNAPD/BQAKAAAAAACMABcABQACAAQAAACMABYABQACAAsAAACMABUABQACAAIAAACMABQABQAAAAsAAACMABMABQAAAAsAAACMABIABQACAAsAAACMABEABQACAAIAAACMABAABQACAAsAAACMAA8ABQABAAEAAACMAA4ABQAAAAEAAACMAPD/BQAJAAAAAACLABcABQACAAQAAACLABYABQACAAIAAACLABUABQADAAsAAACLABQABQAAAAsAAACLABMABQABAAsAAACLABIABQACAAIAAACLABEABQACAAIAAACLABAABQABAAEAAACLAA8ABQABAAAAAACLAPD/BQAJAAAAAACKABcABQACAAQAAACKABYABQABAAsAAACKABUABQABAAsAAACKABQABQADAAsAAACKABMABQABAAsAAACKABIABQAAAAsAAACKABEABQACAAIAAACKABAABQACAAAAAACKAPD/BQAJAAAAAACJABcABQACAAQAAACJABYABQAAAAsAAACJABUABQABAAsAAACJABQABQAAAAsAAACJABMABQADAAsAAACJABIABQACAAIAAACJABEABQADAAsAAACJABAABQACAAAAAACJAPD/BQAJAAAAAACIABcABQACAAQAAACIABYABQACAAsAAACIABUABQADAAsAAACIABQABQACAAIAAACIABMABQACAAsAAACIABIABQACAAsAAACIABEABQADAAsAAACIABAABQADAAEAAACIAA8ABQAEAAEAAACIAPD/BQAJAAAAAACHABcABQACAAQAAACHABYABQACAAIAAACHABUABQACAAsAAACHABQABQACAAsAAACHABMABQACAAIAAACHABIABQAAAAsAAACHABEABQACAAIAAACHABAABQAAAAsAAACHAA8ABQADAAEAAACHAA4ABQAEAAEAAACHAPD/BQAIAAAAAACGABcABQACAAQAAACGABYABQABAAsAAACGABUABQACAAIAAACGABQABQACAAIAAACGABMABQACAAIAAACGABIABQACAAIAAACGABEABQACAAIAAACGABAABQABAAsAAACGAA8ABQACAAIAAACGAA4ABQADAAEAAACGAA0ABQAEAAIAAACFABcABQACAAQAAACFABYABQABAAsAAACFABUABQACAAsAAACFABQABQACAAIAAACFABMABQACAAIAAACFABIABQAAAAsAAACFABEABQACAAIAAACFABAABQAAAAsAAACFAA8ABQACAAIAAACFAA4ABQACAAIAAACFAA0ABQACAAIAAACFAAwABQACAAAAAACEABcABQACAAQAAACEABYABQACAAsAAACEABUABQACAAIAAACEABQABQACAAIAAACEABMABQACAAIAAACEABIABQADAAsAAACEABEABQAAAAsAAACEABAABQACAAIAAACEAA8ABQACAAsAAACEAA4ABQACAAIAAACEAA0ABQAAAAsAAACEAAwABQADAAEAAACEAAsABQAEAAEAAACDABcABQACAAQAAACDABYABQACAAIAAACDABUABQAAAAsAAACDABQABQABAAsAAACDABMABQAAAAsAAACDABIABQADAAsAAACDABEABQAAAAsAAACDABAABQACAAIAAACDAA8ABQACAAIAAACDAA4ABQACAAIAAACDAA0ABQAAAAsAAACDAAwABQAAAAsAAACDAAsABQADAAEAAACDAAoABQAEAAEAAACDAAAABQADAAQAAACDAP//BQAEAAIAAACDAP7/BQADAAAAAACCABcABQACAAQAAACCABYABQACAAIAAACCABUABQACAAsAAACCABQABQACAAIAAACCABMABQACAAIAAACCABIABQACAAIAAACCABEABQAAAAsAAACCABAABQACAAIAAACCAA8ABQADAAsAAACCAA4ABQABAAsAAACCAA0ABQACAAIAAACCAAwABQABAAsAAACCAAsABQACAAIAAACCAAoABQADAAEAAACCAAkABQADAAAAAACCAAAABQACAAQAAACCAP//BQADAAsAAACCAP7/BQABAAEAAACBABcABQACAAQAAACBABYABQABAAsAAACBABUABQACAAIAAACBABQABQACAAIAAACBABMABQACAAIAAACBABIABQACAAIAAACBABEABQACAAIAAACBABAABQACAAIAAACBAA8ABQACAAsAAACBAA4ABQACAAIAAACBAA0ABQACAAsAAACBAAwABQAAAAsAAACBAAsABQACAAIAAACBAAoABQACAAsAAACBAAkABQADAAEAAACBAAgABQAEAAEAAACBAAAABQACAAQAAACBAP//BQABAAsAAACBAP7/BQACAAAAAACAABcABQACAAQAAACAABYABQABAAsAAACAABUABQACAAIAAACAABQABQACAAIAAACAABMABQAAAAsAAACAABIABQADAAsAAACAABEABQACAAIAAACAABAABQACAAsAAACAAA8ABQACAAIAAACAAA4ABQACAAIAAACAAA0ABQACAAsAAACAAAwABQABAAsAAACAAAsABQAAAAsAAACAAAoABQACAAIAAACAAAkABQACAAIAAACAAAgABQACAAAAAACAAAEABQADAAQAAACAAAAABQADAAMAAACAAP//BQABAAEAAACAAP7/BQAAAAEAAAB/ABcABQACAAQAAAB/ABYABQACAAIAAAB/ABUABQABAAsAAAB/ABQABQACAAIAAAB/ABMABQAAAAsAAAB/ABIABQACAAIAAAB/ABEABQACAAsAAAB/ABAABQACAAIAAAB/AA8ABQACAAIAAAB/AA4ABQACAAIAAAB/AA0ABQACAAIAAAB/AAwABQACAAsAAAB/AAsABQACAAIAAAB/AAoABQABAAsAAAB/AAkABQABAAEAAAB/AAgABQABAAAAAAB/AAIABQAEAAMAAAB/AAEABQADAAMAAAB/AAAABQABAAEAAAB/AP//BQAAAAEAAAB/APD/BQAKAAAAAAB+ABcABQACAAQAAAB+ABYABQACAAIAAAB+ABUABQACAAsAAAB+ABQABQABAAsAAAB+ABMABQAAAAsAAAB+ABIABQACAAIAAAB+ABEABQACAAIAAAB+ABAABQACAAIAAAB+AA8ABQAAAAsAAAB+AA4ABQAAAAsAAAB+AA0ABQADAAsAAAB+AAwABQAAAAsAAAB+AAsABQACAAIAAAB+AAoABQACAAIAAAB+AAkABQACAAAAAAB+AAMABQAEAAMAAAB+AAIABQABAAEAAAB+AAEABQAAAAIAAAB+AAAABQABAAAAAAB+APD/BQAJAAAAAAB9ABcABQACAAQAAAB9ABYABQACAAIAAAB9ABUABQADAAsAAAB9ABQABQACAAsAAAB9ABMABQAAAAsAAAB9ABIABQACAAIAAAB9ABEABQABAAsAAAB9ABAABQACAAsAAAB9AA8ABQABAAsAAAB9AA4ABQACAAIAAAB9AA0ABQAAAAsAAAB9AAwABQACAAIAAAB9AAsABQACAAIAAAB9AAoABQACAAIAAAB9AAQABQAGAAMAAAB9AAMABQABAAQAAAB9AAIABQABAAAAAAB9APD/BQAJAAAAAAB8ABcABQACAAQAAAB8ABYABQACAAIAAAB8ABUABQABAAsAAAB8ABQABQACAAsAAAB8ABMABQACAAIAAAB8ABIABQACAAsAAAB8ABEABQACAAsAAAB8ABAABQACAAIAAAB8AA8ABQAAAAsAAAB8AA4ABQACAAIAAAB8AA0ABQACAAIAAAB8AAwABQADAAsAAAB8AAsABQAAAAsAAAB8AAoABQACAAIAAAB8AAkABQACAAAAAAB8APD/BQAJAAAAAAB7ABcABQACAAQAAAB7ABYABQACAAIAAAB7ABUABQACAAIAAAB7ABQABQACAAIAAAB7ABMABQACAAIAAAB7ABIABQACAAIAAAB7ABEABQACAAsAAAB7ABAABQACAAIAAAB7AA8ABQACAAIAAAB7AA4ABQACAAIAAAB7AA0ABQACAAIAAAB7AAwABQACAAIAAAB7AAsABQABAAsAAAB7AAoABQACAAIAAAB7AAkABQADAAEAAAB7AAgABQAEAAIAAAB7AAcABQAEAAIAAAB7AAYABQAEAAEAAAB7APD/BQAJAAAAAAB6ABcABQACAAQAAAB6ABYABQACAAIAAAB6ABUABQACAAsAAAB6ABQABQADAAsAAAB6ABMABQACAAIAAAB6ABIABQAAAAsAAAB6ABEABQACAAIAAAB6ABAABQACAAIAAAB6AA8ABQABAAsAAAB6AA4ABQABAAsAAAB6AA0ABQABAAsAAAB6AAwABQACAAIAAAB6AAsABQACAAIAAAB6AAoABQADAAsAAAB6AAkABQABAAEAAAB6AAgABQAAAAIAAAB6AAcABQABAAEAAAB6AAYABQAAAAEAAAB6APD/BQAJAAAAAAB5ABcABQACAAQAAAB5ABYABQACAAIAAAB5ABUABQABAAsAAAB5ABQABQACAAIAAAB5ABMABQAAAAsAAAB5ABIABQACAAIAAAB5ABEABQABAAsAAAB5ABAABQACAAIAAAB5AA8ABQACAAIAAAB5AA4ABQADAAsAAAB5AA0ABQACAAIAAAB5AAwABQABAAEAAAB5AAsABQAAAAIAAAB5AAoABQAAAAIAAAB5APD/BQAJAAAAAAB4ABcABQACAAQAAAB4ABYABQACAAIAAAB4ABUABQADAAsAAAB4ABQABQACAAIAAAB4ABMABQAAAAsAAAB4ABIABQAAAAsAAAB4ABEABQACAAIAAAB4ABAABQACAAIAAAB4AA8ABQACAAIAAAB4AA4ABQAAAAsAAAB4AA0ABQADAAsAAAB4AAwABQACAAAAAAB4APD/BQAJAAAAAAB3ABcABQACAAQAAAB3ABYABQACAAIAAAB3ABUABQACAAIAAAB3ABQABQAAAAsAAAB3ABMABQAAAAsAAAB3ABIABQADAAsAAAB3ABEABQACAAIAAAB3ABAABQACAAIAAAB3AA8ABQADAAsAAAB3AA4ABQACAAIAAAB3AA0ABQABAAEAAAB3AP//BQAEAAMAAAB3AP7/BQAEAAIAAAB3AP3/BQAEAAEAAAB3APD/BQAIAAAAAAB2ABcABQACAAQAAAB2ABYABQACAAIAAAB2ABUABQACAAsAAAB2ABQABQACAAIAAAB2ABMABQACAAsAAAB2ABIABQADAAsAAAB2ABEABQACAAIAAAB2ABAABQACAAIAAAB2AA8ABQACAAIAAAB2AA4ABQAAAAsAAAB2AA0ABQACAAAAAAB2AP//BQACAAQAAAB2AP7/BQACAAIAAAB2AP3/BQACAAAAAAB1ABcABQACAAQAAAB1ABYABQACAAIAAAB1ABUABQACAAsAAAB1ABQABQACAAIAAAB1ABMABQAAAAsAAAB1ABIABQACAAIAAAB1ABEABQACAAIAAAB1ABAABQABAAsAAAB1AA4ABQAAAAsAAAB1AP//BQABAAQAAAB1AP7/BQABAAMAAAB1AP3/BQABAAEAAAB1APz/BQAGAAEAAAB0ABcABQACAAQAAAB0ABYABQAAAAsAAAB0ABUABQAAAAsAAAB0ABQABQAAAAsAAAB0ABMABQACAAsAAAB0ABIABQABAAsAAAB0ABEABQABAAEAAAB0ABAABQAAAAIAAAB0AA8ABQABAAMAAAB0AA4ABQACAAIAAAB0AA0ABQACAAAAAAB0AP7/BQAAAAMAAAB0AP3/BQABAAAAAABzABcABQACAAQAAABzABYABQACAAsAAABzABUABQACAAsAAABzABQABQADAAsAAABzABMABQACAAIAAABzABIABQABAAsAAABzAA8ABQACAAQAAABzAA4ABQABAAsAAABzAA0ABQABAAEAAABzAAwABQAGAAEAAAByABcABQACAAQAAAByABYABQACAAIAAAByABUABQACAAsAAAByABQABQACAAIAAAByABMABQADAAsAAAByABIABQACAAIAAAByAA4ABQAAAAIAAAByAA0ABQACAAAAAABxABcABQACAAQAAABxABYABQADAAsAAABxABUABQABAAsAAABxABQABQACAAIAAABxABMABQACAAIAAABxABIABQABAAEAAABxAPD/BQAKAAAAAABwABcABQACAAQAAABwABYABQACAAIAAABwABUABQACAAsAAABwABQABQAAAAsAAABwABMABQACAAIAAABwABIABQACAAAAAABwAPD/BQAJAAAAAABvABcABQACAAQAAABvABYABQABAAsAAABvABUABQACAAsAAABvABQABQACAAIAAABvABMABQACAAIAAABvABIABQACAAAAAABvAA4ABQAEAAMAAABvAA0ABQAEAAIAAABvAAwABQAEAAEAAABvAPD/BQAJAAAAAABuABcABQACAAQAAABuABYABQABAAsAAABuABUABQACAAsAAABuABQABQACAAIAAABuABMABQACAAIAAABuABIABQACAAAAAABuAA8ABQADAAQAAABuAA4ABQADAAMAAABuAA0ABQACAAIAAABuAAwABQADAAEAAABuAAsABQAEAAIAAABuAAoABQAEAAIAAABuAAkABQAEAAIAAABuAAgABQAEAAEAAABuAPD/BQAJAAAAAABtABcABQACAAQAAABtABYABQADAAsAAABtABUABQACAAIAAABtABQABQACAAIAAABtABMABQACAAIAAABtABIABQADAAEAAABtAA8ABQADAAMAAABtAA4ABQACAAsAAABtAA0ABQADAAsAAABtAAwABQACAAIAAABtAAsABQACAAIAAABtAAoABQABAAsAAABtAAkABQACAAsAAABtAAgABQACAAAAAABtAPD/BQAIAAAAAABsABcABQACAAQAAABsABYABQACAAIAAABsABUABQACAAIAAABsABQABQACAAIAAABsABMABQACAAsAAABsABIABQACAAIAAABsABEABQACAAsAAABsABAABQACAAIAAABsAA8ABQACAAIAAABsAA4ABQACAAIAAABsAA0ABQACAAIAAABsAAwABQACAAsAAABsAAsABQACAAIAAABsAAoABQAAAAsAAABsAAkABQACAAsAAABsAAgABQADAAEAAABsAAcABQAEAAEAAABrABcABQACAAQAAABrABYABQACAAIAAABrABUABQACAAIAAABrABQABQACAAIAAABrABMABQAAAAsAAABrABIABQACAAIAAABrABEABQACAAIAAABrABAABQADAAsAAABrAA8ABQAAAAsAAABrAA4ABQACAAsAAABrAA0ABQABAAsAAABrAAwABQACAAIAAABrAAsABQACAAIAAABrAAoABQACAAIAAABrAAkABQADAAsAAABrAAgABQABAAsAAABrAAcABQACAAAAAABqABcABQACAAQAAABqABYABQACAAIAAABqABUABQADAAsAAABqABQABQADAAsAAABqABMABQAAAAsAAABqABIABQACAAsAAABqABEABQACAAIAAABqABAABQADAAsAAABqAA8ABQACAAIAAABqAA4ABQADAAsAAABqAA0ABQACAAIAAABqAAwABQACAAIAAABqAAsABQACAAIAAABqAAoABQAAAAsAAABqAAkABQABAAsAAABqAAgABQADAAsAAABqAAcABQADAAEAAABpABcABQACAAQAAABpABYABQABAAsAAABpABUABQAAAAsAAABpABQABQACAAIAAABpABMABQACAAIAAABpABIABQABAAEAAABpABEABQAAAAIAAABpABAABQAAAAIAAABpAA8ABQABAAMAAABpAA4ABQACAAIAAABpAA0ABQACAAIAAABpAAwABQAAAAsAAABpAAsABQACAAsAAABpAAoABQACAAsAAABpAAkABQACAAIAAABpAAgABQAAAAsAAABpAAcABQABAAsAAABpAAYABQACAAAAAABoABcABQACAAQAAABoABYABQAAAAsAAABoABUABQACAAIAAABoABQABQABAAsAAABoABMABQABAAEAAABoABIABQABAAAAAABoAA8ABQABAAQAAABoAA4ABQABAAMAAABoAA0ABQACAAIAAABoAAwABQACAAIAAABoAAsABQACAAIAAABoAAoABQABAAsAAABoAAkABQACAAIAAABoAAgABQACAAsAAABoAAcABQABAAsAAABoAAYABQACAAAAAABoAAAABQADAAQAAABoAP//BQAEAAIAAABoAP7/BQAEAAEAAABnABcABQACAAQAAABnABYABQABAAsAAABnABUABQACAAIAAABnABQABQACAAIAAABnABMABQACAAAAAABnAA4ABQABAAQAAABnAA0ABQABAAEAAABnAAwABQAAAAIAAABnAAsABQAAAAIAAABnAAoABQAAAAIAAABnAAkABQAAAAIAAABnAAgABQAAAAIAAABnAAcABQABAAMAAABnAAYABQADAAEAAABnAAUABQAEAAIAAABnAAIABQAEAAMAAABnAAEABQAEAAIAAABnAAAABQADAAMAAABnAP//BQADAAsAAABnAP7/BQACAAAAAABmABcABQACAAQAAABmABYABQAAAAsAAABmABUABQACAAsAAABmABQABQACAAIAAABmABMABQACAAAAAABmAA0ABQAIAAAAAABmAAYABQAAAAIAAABmAAUABQABAAMAAABmAAQABQADAAEAAABmAAMABQAEAAIAAABmAAIABQADAAMAAABmAAEABQACAAIAAABmAAAABQABAAEAAABmAP//BQAAAAIAAABmAP7/BQABAAAAAABlABcABQACAAQAAABlABYABQACAAsAAABlABUABQACAAIAAABlABQABQADAAsAAABlABMABQADAAEAAABlAAUABQACAAQAAABlAAQABQAAAAsAAABlAAMABQADAAsAAABlAAIABQABAAEAAABlAAEABQAAAAIAAABlAAAABQABAAAAAABlAPD/BQAKAAAAAABkABcABQACAAQAAABkABYABQADAAsAAABkABUABQABAAsAAABkABQABQACAAIAAABkABMABQACAAIAAABkABIABQADAAEAAABkABEABQADAAAAAABkAAQABQAAAAIAAABkAAMABQABAAEAAABkAAIABQABAAAAAABkAPD/BQAJAAAAAABjABcABQACAAQAAABjABYABQACAAsAAABjABUABQACAAIAAABjABQABQACAAsAAABjABMABQACAAIAAABjABIABQADAAsAAABjABEABQADAAEAAABjABAABQAEAAEAAABjAPD/BQAJAAAAAABiABcABQACAAQAAABiABYABQABAAsAAABiABUABQACAAIAAABiABQABQACAAIAAABiABMABQACAAIAAABiABIABQACAAIAAABiABEABQACAAsAAABiABAABQADAAEAAABiAA8ABQADAAAAAABiAPD/BQAJAAAAAABhABcABQACAAQAAABhABYABQACAAIAAABhABUABQADAAsAAABhABQABQAAAAsAAABhABMABQABAAsAAABhABIABQAAAAsAAABhABEABQAAAAsAAABhABAABQACAAsAAABhAA8ABQACAAAAAABhAAcABQAEAAMAAABhAAYABQAEAAIAAABhAPD/BQAJAAAAAABgABcABQACAAQAAABgABYABQACAAIAAABgABUABQACAAsAAABgABQABQAAAAsAAABgABMABQACAAIAAABgABIABQACAAIAAABgABEABQAAAAsAAABgABAABQABAAsAAABgAA8ABQADAAEAAABgAA4ABQADAAAAAABgAAgABQADAAQAAABgAAcABQADAAMAAABgAAYABQABAAsAAABgAAUABQACAAAAAABgAPD/BQAJAAAAAABfABcABQACAAQAAABfABYABQACAAsAAABfABUABQACAAsAAABfABQABQACAAIAAABfABMABQADAAsAAABfABIABQADAAsAAABfABEABQACAAIAAABfABAABQACAAsAAABfAA8ABQADAAsAAABfAA4ABQADAAEAAABfAA0ABQADAAAAAABfAAgABQACAAQAAABfAAcABQADAAsAAABfAAYABQACAAsAAABfAAUABQADAAEAAABfAAQABQAEAAEAAABfAPD/BQAJAAAAAABeABcABQACAAQAAABeABYABQAAAAsAAABeABUABQABAAsAAABeABQABQABAAsAAABeABMABQAAAAsAAABeABIABQAAAAsAAABeABEABQAAAAsAAABeABAABQACAAIAAABeAA8ABQAAAAsAAABeAA4ABQACAAsAAABeAA0ABQACAAAAAABeAAkABQAEAAMAAABeAAgABQADAAMAAABeAAcABQADAAsAAABeAAYABQACAAIAAABeAAUABQACAAsAAABeAAQABQACAAAAAABeAPD/BQAJAAAAAABdABcABQACAAQAAABdABYABQACAAIAAABdABUABQACAAIAAABdABQABQADAAsAAABdABMABQADAAsAAABdABIABQADAAsAAABdABEABQADAAsAAABdABAABQAAAAsAAABdAA8ABQABAAsAAABdAA4ABQADAAsAAABdAA0ABQADAAEAAABdAAwABQAEAAIAAABdAAgABQAAAAIAAABdAAcABQABAAEAAABdAAYABQAAAAIAAABdAAUABQABAAMAAABdAAQABQACAAAAAABdAPD/BQAJAAAAAABcABcABQACAAQAAABcABYABQACAAIAAABcABUABQACAAIAAABcABQABQACAAIAAABcABMABQACAAsAAABcABIABQACAAIAAABcABEABQACAAIAAABcABAABQABAAsAAABcAA8ABQACAAIAAABcAA4ABQABAAsAAABcAA0ABQACAAIAAABcAAwABQAAAAsAAABcAAsABQADAAEAAABcAAoABQAEAAIAAABcAAkABQADAAAAAABcAAUABQABAAQAAABcAAQABQAAAAIAAABcAPD/BQAJAAAAAABbABcABQACAAQAAABbABYABQACAAIAAABbABUABQACAAIAAABbABQABQACAAIAAABbABMABQABAAsAAABbABIABQAAAAsAAABbABEABQACAAsAAABbABAABQACAAsAAABbAA8ABQACAAsAAABbAA4ABQACAAIAAABbAA0ABQABAAsAAABbAAwABQACAAsAAABbAAsABQACAAIAAABbAAoABQADAAsAAABbAPD/BQAJAAAAAABaABcABQACAAQAAABaABYABQACAAIAAABaABUABQACAAIAAABaABQABQADAAsAAABaABMABQADAAsAAABaABIABQAAAAsAAABaABEABQABAAsAAABaABAABQACAAIAAABaAA8ABQACAAIAAABaAA4ABQACAAIAAABaAA0ABQACAAIAAABaAAwABQACAAIAAABaAAsABQACAAsAAABaAAoABQAAAAsAAABaAAkABQACAAAAAABaAAQABQAEAAIAAABaAAMABQAEAAIAAABaAAIABQAEAAEAAABaAPD/BQAJAAAAAABZABcABQACAAQAAABZABYABQACAAsAAABZABUABQAAAAsAAABZABQABQADAAsAAABZABMABQACAAIAAABZABIABQACAAIAAABZABEABQACAAIAAABZABAABQABAAsAAABZAA8ABQACAAIAAABZAA4ABQACAAIAAABZAA0ABQACAAIAAABZAAwABQABAAsAAABZAAsABQADAAsAAABZAAoABQADAAsAAABZAAkABQADAAEAAABZAAgABQAEAAIAAABZAAcABQAEAAIAAABZAAYABQAEAAIAAABZAAUABQADAAMAAABZAAQABQACAAsAAABZAAMABQABAAsAAABZAAIABQABAAEAAABZAPD/BQAJAAAAAABYABcABQACAAQAAABYABYABQAAAAsAAABYABUABQABAAsAAABYABQABQABAAsAAABYABMABQADAAsAAABYABIABQACAAIAAABYABEABQACAAsAAABYABAABQACAAIAAABYAA8ABQABAAsAAABYAA4ABQACAAIAAABYAA0ABQADAAsAAABYAAwABQABAAsAAABYAAsABQABAAsAAABYAAoABQADAAsAAABYAAkABQABAAsAAABYAAgABQACAAIAAABYAAcABQACAAIAAABYAAYABQACAAIAAABYAAUABQACAAIAAABYAAQABQACAAIAAABYAAMABQAAAAsAAABYAAIABQACAAAAAABYAPD/BQAJAAAAAABXABcABQACAAQAAABXABYABQABAAsAAABXABUABQACAAsAAABXABQABQAAAAsAAABXABMABQAAAAsAAABXABIABQADAAsAAABXABEABQACAAsAAABXABAABQABAAsAAABXAA8ABQACAAIAAABXAA4ABQAAAAsAAABXAA0ABQACAAIAAABXAAwABQACAAIAAABXAAsABQACAAIAAABXAAoABQACAAsAAABXAAkABQAAAAsAAABXAAgABQACAAsAAABXAAcABQADAAsAAABXAAYABQABAAsAAABXAAUABQACAAIAAABXAAQABQACAAIAAABXAAMABQABAAEAAABXAPD/BQAJAAAAAABWABcABQACAAQAAABWABYABQACAAIAAABWABUABQACAAIAAABWABQABQACAAIAAABWABMABQACAAIAAABWABIABQACAAsAAABWABEABQACAAIAAABWABAABQACAAIAAABWAA8ABQABAAEAAABWAA4ABQAAAAIAAABWAA0ABQABAAMAAABWAAwABQADAAsAAABWAAsABQACAAIAAABWAAoABQACAAIAAABWAAkABQACAAIAAABWAAgABQACAAIAAABWAAcABQACAAIAAABWAAYABQACAAsAAABWAAUABQACAAIAAABWAAQABQABAAEAAABWAAMABQABAAAAAABWAPD/BQAJAAAAAABVABcABQACAAQAAABVABYABQACAAIAAABVABUABQAAAAsAAABVABQABQACAAIAAABVABMABQADAAsAAABVABIABQABAAsAAABVABEABQACAAIAAABVABAABQACAAIAAABVAA8ABQACAAAAAABVAAwABQAAAAIAAABVAAsABQABAAMAAABVAAoABQACAAIAAABVAAkABQAAAAsAAABVAAgABQACAAIAAABVAAcABQABAAEAAABVAAYABQAAAAIAAABVAAUABQAAAAIAAABVAAQABQAAAAEAAABVAPD/BQAJAAAAAABUABcABQACAAQAAABUABYABQACAAIAAABUABUABQABAAsAAABUABQABQAAAAsAAABUABMABQAAAAsAAABUABIABQABAAsAAABUABEABQABAAEAAABUABAABQAAAAIAAABUAAsABQAAAAMAAABUAAoABQABAAMAAABUAAkABQABAAsAAABUAAgABQABAAEAAABUAPD/BQAJAAAAAABTABcABQACAAQAAABTABYABQACAAsAAABTABUABQAAAAsAAABTABQABQACAAIAAABTABMABQAAAAsAAABTABIABQACAAIAAABTABEABQACAAAAAABTAAoABQACAAQAAABTAAkABQABAAEAAABTAAgABQABAAAAAABTAPD/BQAJAAAAAABSABcABQACAAQAAABSABYABQACAAsAAABSABUABQAAAAsAAABSABQABQACAAIAAABSABMABQABAAsAAABSABIABQACAAIAAABSABEABQACAAAAAABSAAoABQAAAAMAAABSAAkABQACAAAAAABSAPD/BQAJAAAAAABRABcABQACAAQAAABRABYABQACAAIAAABRABUABQACAAIAAABRABQABQABAAsAAABRABMABQAAAAsAAABRABIABQADAAsAAABRABEABQADAAEAAABRAPD/BQAJAAAAAABQABcABQACAAQAAABQABYABQAAAAsAAABQABUABQABAAsAAABQABQABQACAAIAAABQABMABQACAAIAAABQABIABQACAAIAAABQABEABQACAAIAAABQABAABQADAAEAAABQAA8ABQAEAAIAAABQAA4ABQAEAAIAAABQAA0ABQAEAAIAAABQAAwABQAEAAIAAABQAAsABQAEAAEAAABQAAMABQADAAQAAABQAAIABQADAAAAAABQAPD/BQAIAAAAAABPABcABQACAAQAAABPABYABQAAAAsAAABPABUABQADAAsAAABPABQABQACAAIAAABPABMABQAAAAsAAABPABIABQABAAsAAABPABEABQACAAIAAABPABAABQACAAIAAABPAA8ABQACAAsAAABPAA4ABQAAAAsAAABPAA0ABQACAAIAAABPAAwABQACAAIAAABPAAsABQADAAEAAABPAAoABQAEAAEAAABPAAMABQACAAQAAABPAAIABQABAAEAAABOABcABQACAAQAAABOABYABQACAAIAAABOABUABQABAAsAAABOABQABQABAAsAAABOABMABQADAAsAAABOABIABQADAAsAAABOABEABQACAAIAAABOABAABQACAAIAAABOAA8ABQACAAsAAABOAA4ABQACAAIAAABOAA0ABQACAAIAAABOAAwABQAAAAsAAABOAAsABQACAAsAAABOAAoABQADAAEAAABOAAkABQADAAAAAABOAAQABQAEAAMAAABOAAMABQADAAMAAABOAAIABQACAAAAAABNABcABQACAAQAAABNABYABQACAAIAAABNABUABQACAAsAAABNABQABQAAAAsAAABNABMABQACAAIAAABNABIABQADAAsAAABNABEABQACAAIAAABNABAABQADAAsAAABNAA8ABQABAAsAAABNAA4ABQACAAIAAABNAA0ABQACAAIAAABNAAwABQACAAsAAABNAAsABQACAAIAAABNAAoABQACAAIAAABNAAkABQACAAAAAABNAAQABQABAAQAAABNAAMABQABAAEAAABNAAIABQABAAAAAABMABcABQACAAQAAABMABYABQACAAIAAABMABUABQACAAIAAABMABQABQACAAIAAABMABMABQACAAsAAABMABIABQABAAsAAABMABEABQACAAIAAABMABAABQACAAsAAABMAA8ABQACAAsAAABMAA4ABQACAAIAAABMAA0ABQACAAIAAABMAAwABQAAAAsAAABMAAsABQABAAsAAABMAAoABQABAAsAAABMAAkABQACAAAAAABMAAMABQAIAAAAAABMAPD/BQAKAAAAAABLABcABQACAAQAAABLABYABQACAAIAAABLABUABQACAAIAAABLABQABQADAAsAAABLABMABQACAAIAAABLABIABQADAAsAAABLABEABQACAAIAAABLABAABQACAAIAAABLAA8ABQACAAIAAABLAA4ABQACAAIAAABLAA0ABQACAAIAAABLAAwABQACAAIAAABLAAsABQACAAIAAABLAAoABQABAAEAAABLAAkABQABAAAAAABLAPD/BQAJAAAAAABKABcABQACAAQAAABKABYABQACAAsAAABKABUABQAAAAsAAABKABQABQACAAIAAABKABMABQABAAsAAABKABIABQACAAIAAABKABEABQACAAIAAABKABAABQACAAIAAABKAA8ABQACAAIAAABKAA4ABQABAAsAAABKAA0ABQADAAsAAABKAAwABQACAAIAAABKAAsABQACAAIAAABKAAoABQACAAAAAABKAPD/BQAJAAAAAABJABcABQACAAQAAABJABYABQABAAsAAABJABUABQACAAsAAABJABQABQABAAsAAABJABMABQACAAIAAABJABIABQACAAIAAABJABEABQADAAsAAABJABAABQADAAsAAABJAA8ABQACAAIAAABJAA4ABQACAAIAAABJAA0ABQACAAIAAABJAAwABQACAAIAAABJAAsABQABAAEAAABJAAoABQAAAAEAAABJAPD/BQAJAAAAAABIABcABQACAAQAAABIABYABQACAAIAAABIABUABQABAAsAAABIABQABQACAAIAAABIABMABQACAAIAAABIABIABQACAAIAAABIABEABQACAAsAAABIABAABQACAAIAAABIAA8ABQACAAIAAABIAA4ABQADAAsAAABIAA0ABQAAAAsAAABIAAwABQACAAsAAABIAAsABQACAAAAAABIAPD/BQAJAAAAAABHABcABQACAAQAAABHABYABQABAAsAAABHABUABQAAAAsAAABHABQABQADAAsAAABHABMABQACAAIAAABHABIABQACAAIAAABHABEABQACAAIAAABHABAABQACAAIAAABHAA8ABQADAAsAAABHAA4ABQACAAIAAABHAA0ABQACAAIAAABHAAwABQADAAsAAABHAAsABQABAAEAAABHAAAABQAGAAAAAABHAPD/BQAIAAAAAABGABcABQACAAQAAABGABYABQABAAsAAABGABUABQACAAIAAABGABQABQABAAsAAABGABMABQACAAIAAABGABIABQACAAIAAABGABEABQACAAsAAABGABAABQACAAIAAABGAA8ABQAAAAsAAABGAA4ABQAAAAsAAABGAA0ABQABAAsAAABGAAwABQACAAIAAABGAAsABQACAAAAAABFABcABQACAAQAAABFABYABQACAAIAAABFABUABQACAAIAAABFABQABQACAAIAAABFABMABQACAAsAAABFABIABQAAAAsAAABFABEABQABAAsAAABFABAABQACAAsAAABFAA8ABQADAAsAAABFAA4ABQACAAIAAABFAA0ABQACAAIAAABFAAwABQACAAIAAABFAAsABQABAAEAAABEABcABQACAAQAAABEABYABQAAAAsAAABEABUABQADAAsAAABEABQABQAAAAsAAABEABMABQABAAsAAABEABIABQACAAIAAABEABEABQABAAsAAABEABAABQACAAIAAABEAA8ABQABAAsAAABEAA4ABQABAAsAAABEAA0ABQACAAIAAABEAAwABQAAAAsAAABEAAsABQACAAAAAABDABcABQACAAQAAABDABYABQADAAsAAABDABUABQACAAIAAABDABQABQACAAIAAABDABMABQADAAsAAABDABIABQAAAAsAAABDABEABQACAAIAAABDABAABQACAAIAAABDAA8ABQACAAIAAABDAA4ABQAAAAsAAABDAA0ABQACAAIAAABDAAwABQAAAAsAAABDAAsABQACAAAAAABDAAUABQAKAAAAAABCABcABQACAAQAAABCABYABQAAAAsAAABCABUABQACAAsAAABCABQABQACAAIAAABCABMABQABAAsAAABCABIABQABAAsAAABCABEABQACAAIAAABCABAABQADAAsAAABCAA8ABQACAAIAAABCAA4ABQABAAsAAABCAA0ABQABAAsAAABCAAwABQACAAsAAABCAAsABQACAAAAAABCAAYABQAGAAMAAABCAAUABQAGAAIAAABCAAQABQAGAAEAAABBABcABQACAAQAAABBABYABQAAAAsAAABBABUABQACAAsAAABBABQABQADAAsAAABBABMABQACAAIAAABBABIABQADAAsAAABBABEABQAAAAsAAABBABAABQACAAsAAABBAA8ABQACAAIAAABBAA4ABQAAAAsAAABBAA0ABQADAAsAAABBAAwABQAAAAsAAABBAAsABQACAAAAAABBAAUABQAKAAAAAABAABcABQACAAQAAABAABYABQACAAIAAABAABUABQADAAsAAABAABQABQACAAIAAABAABMABQABAAsAAABAABIABQACAAIAAABAABEABQACAAIAAABAABAABQADAAsAAABAAA8ABQACAAsAAABAAA4ABQADAAsAAABAAA0ABQACAAIAAABAAAwABQACAAIAAABAAAsABQACAAAAAAA/ABcABQACAAQAAAA/ABYABQACAAIAAAA/ABUABQACAAIAAAA/ABQABQACAAsAAAA/ABMABQADAAsAAAA/ABIABQACAAIAAAA/ABEABQACAAIAAAA/ABAABQACAAIAAAA/AA8ABQACAAIAAAA/AA4ABQACAAIAAAA/AA0ABQABAAEAAAA/AAwABQAAAAIAAAA+ABcABQACAAQAAAA+ABYABQACAAIAAAA+ABUABQACAAIAAAA+ABQABQAAAAsAAAA+ABMABQABAAsAAAA+ABIABQACAAsAAAA+ABEABQADAAsAAAA+ABAABQACAAIAAAA+AA8ABQACAAIAAAA+AA4ABQABAAsAAAA+AA0ABQACAAAAAAA+AAUABQADAAQAAAA+AAQABQAEAAIAAAA9ABcABQACAAQAAAA9ABYABQACAAsAAAA9ABUABQACAAIAAAA9ABQABQACAAIAAAA9ABMABQACAAIAAAA9ABIABQACAAsAAAA9ABEABQACAAsAAAA9ABAABQAAAAsAAAA9AA8ABQAAAAsAAAA9AA4ABQACAAsAAAA9AA0ABQACAAAAAAA9AAYABQAEAAMAAAA9AAUABQADAAMAAAA9AAQABQACAAIAAAA9AAMABQACAAAAAAA8ABcABQACAAQAAAA8ABYABQADAAsAAAA8ABUABQADAAsAAAA8ABQABQACAAIAAAA8ABMABQADAAsAAAA8ABIABQAAAAsAAAA8ABEABQABAAsAAAA8ABAABQADAAsAAAA8AA8ABQACAAsAAAA8AA4ABQACAAIAAAA8AA0ABQACAAAAAAA8AAYABQACAAQAAAA8AAUABQACAAIAAAA8AAQABQACAAIAAAA8AAMABQACAAAAAAA7ABcABQACAAQAAAA7ABYABQADAAsAAAA7ABUABQACAAsAAAA7ABQABQABAAsAAAA7ABMABQACAAIAAAA7ABIABQAAAAsAAAA7ABEABQACAAIAAAA7ABAABQACAAsAAAA7AA8ABQACAAIAAAA7AA4ABQACAAIAAAA7AA0ABQADAAEAAAA7AAwABQAEAAEAAAA7AAYABQACAAQAAAA7AAUABQAAAAsAAAA7AAQABQABAAEAAAA7AAMABQABAAAAAAA6ABcABQACAAQAAAA6ABYABQACAAsAAAA6ABUABQADAAsAAAA6ABQABQACAAsAAAA6ABMABQACAAIAAAA6ABIABQACAAIAAAA6ABEABQACAAIAAAA6ABAABQACAAIAAAA6AA8ABQACAAIAAAA6AA4ABQABAAsAAAA6AA0ABQADAAsAAAA6AAwABQADAAEAAAA6AAsABQAEAAEAAAA6AAYABQACAAQAAAA6AAUABQACAAIAAAA6AAQABQACAAAAAAA5ABcABQACAAQAAAA5ABYABQADAAsAAAA5ABUABQACAAIAAAA5ABQABQACAAIAAAA5ABMABQACAAIAAAA5ABIABQAAAAsAAAA5ABEABQACAAIAAAA5ABAABQAAAAsAAAA5AA8ABQAAAAsAAAA5AA4ABQACAAIAAAA5AA0ABQACAAIAAAA5AAwABQABAAsAAAA5AAsABQADAAEAAAA5AAoABQAEAAEAAAA5AAYABQABAAQAAAA5AAUABQAAAAIAAAA4ABcABQACAAQAAAA4ABYABQAAAAsAAAA4ABUABQABAAsAAAA4ABQABQACAAIAAAA4ABMABQACAAIAAAA4ABIABQACAAIAAAA4ABEABQACAAIAAAA4ABAABQAAAAsAAAA4AA8ABQACAAIAAAA4AA4ABQAAAAsAAAA4AA0ABQABAAsAAAA4AAwABQACAAIAAAA4AAsABQABAAsAAAA4AAoABQACAAAAAAA3ABcABQACAAQAAAA3ABYABQACAAsAAAA3ABUABQACAAIAAAA3ABQABQADAAsAAAA3ABMABQACAAIAAAA3ABIABQACAAIAAAA3ABEABQACAAsAAAA3ABAABQACAAsAAAA3AA8ABQADAAsAAAA3AA4ABQACAAIAAAA3AA0ABQACAAIAAAA3AAwABQACAAIAAAA3AAsABQAAAAsAAAA3AAoABQABAAEAAAA3AAkABQAGAAEAAAA2ABcABQACAAQAAAA2ABYABQACAAsAAAA2ABUABQACAAIAAAA2ABQABQACAAIAAAA2ABMABQACAAsAAAA2ABIABQABAAsAAAA2ABEABQACAAIAAAA2ABAABQAAAAsAAAA2AA8ABQACAAIAAAA2AA4ABQACAAIAAAA2AA0ABQACAAsAAAA2AAwABQADAAsAAAA2AAsABQABAAEAAAA2AAoABQAAAAEAAAA1ABcABQACAAQAAAA1ABYABQACAAsAAAA1ABUABQACAAsAAAA1ABQABQACAAIAAAA1ABMABQADAAsAAAA1ABIABQACAAIAAAA1ABEABQAAAAsAAAA1ABAABQACAAIAAAA1AA8ABQAAAAsAAAA1AA4ABQAAAAsAAAA1AA0ABQAAAAsAAAA1AAwABQACAAIAAAA1AAsABQACAAAAAAA1APD/BQAKAAAAAAA0ABcABQACAAQAAAA0ABYABQAAAAsAAAA0ABUABQACAAsAAAA0ABQABQACAAIAAAA0ABMABQACAAIAAAA0ABIABQACAAIAAAA0ABEABQAAAAsAAAA0ABAABQACAAIAAAA0AA8ABQACAAsAAAA0AA4ABQACAAIAAAA0AA0ABQACAAIAAAA0AAwABQACAAIAAAA0APD/BQAIAAAAAAAzABcABQACAAQAAAAzABYABQAAAAsAAAAzABUABQAAAAsAAAAzABQABQACAAIAAAAzABMABQACAAIAAAAzABIABQABAAsAAAAzABEABQACAAsAAAAzABAABQACAAIAAAAzAA8ABQADAAsAAAAzAA4ABQACAAIAAAAzAA0ABQACAAIAAAAzAAwABQABAAsAAAAzAAsABQACAAAAAAAyABcABQACAAQAAAAyABYABQADAAsAAAAyABUABQACAAIAAAAyABQABQABAAsAAAAyABMABQACAAIAAAAyABIABQABAAsAAAAyABEABQACAAIAAAAyABAABQABAAsAAAAyAA8ABQAAAAsAAAAyAA4ABQACAAIAAAAyAA0ABQACAAIAAAAyAAwABQACAAIAAAAyAAsABQADAAEAAAAyAAoABQAEAAIAAAAyAAkABQAEAAIAAAAyAAgABQAEAAIAAAAyAAcABQAEAAIAAAAyAAYABQAEAAIAAAAyAAUABQADAAAAAAAxABcABQACAAQAAAAxABYABQACAAsAAAAxABUABQACAAIAAAAxABQABQAAAAsAAAAxABMABQACAAsAAAAxABIABQABAAsAAAAxABEABQACAAIAAAAxABAABQADAAsAAAAxAA8ABQACAAIAAAAxAA4ABQACAAIAAAAxAA0ABQACAAIAAAAxAAwABQACAAIAAAAxAAsABQACAAIAAAAxAAoABQACAAIAAAAxAAkABQABAAsAAAAxAAgABQADAAsAAAAxAAcABQAAAAsAAAAxAAYABQADAAsAAAAxAAUABQADAAEAAAAxAAQABQADAAAAAAAwABcABQACAAQAAAAwABYABQAAAAsAAAAwABUABQAAAAsAAAAwABQABQACAAsAAAAwABMABQACAAIAAAAwABIABQADAAsAAAAwABEABQADAAsAAAAwABAABQACAAIAAAAwAA8ABQACAAIAAAAwAA4ABQACAAIAAAAwAA0ABQAAAAsAAAAwAAwABQACAAIAAAAwAAsABQABAAsAAAAwAAoABQACAAsAAAAwAAkABQADAAsAAAAwAAgABQACAAIAAAAwAAcABQACAAsAAAAwAAYABQACAAIAAAAwAAUABQADAAsAAAAwAAQABQACAAAAAAAvABcABQACAAQAAAAvABYABQACAAIAAAAvABUABQADAAsAAAAvABQABQACAAIAAAAvABMABQACAAsAAAAvABIABQAAAAsAAAAvABAABQADAAsAAAAvAA8ABQACAAIAAAAvAA4ABQACAAIAAAAvAA0ABQACAAIAAAAvAAwABQACAAIAAAAvAAsABQABAAsAAAAvAAoABQABAAsAAAAvAAkABQADAAsAAAAvAAgABQACAAIAAAAvAAcABQACAAIAAAAvAAYABQABAAsAAAAvAAUABQABAAEAAAAvAAQABQAAAAEAAAAuABcABQACAAQAAAAuABYABQABAAsAAAAuABUABQACAAIAAAAuABQABQACAAIAAAAuABMABQACAAIAAAAuABIABQABAAsAAAAuAA8ABQAAAAsAAAAuAA4ABQADAAsAAAAuAA0ABQAAAAsAAAAuAAwABQABAAsAAAAuAAsABQACAAIAAAAuAAoABQADAAsAAAAuAAkABQACAAIAAAAuAAgABQACAAIAAAAuAAcABQACAAsAAAAuAAYABQAAAAsAAAAuAAUABQACAAAAAAAtABcABQACAAQAAAAtABYABQABAAsAAAAtABUABQADAAsAAAAtABQABQABAAsAAAAtABMABQACAAIAAAAtABIABQACAAIAAAAtABEABQACAAIAAAAtABAABQAAAAsAAAAtAA8ABQACAAIAAAAtAA4ABQADAAsAAAAtAA0ABQABAAsAAAAtAAwABQADAAsAAAAtAAsABQABAAsAAAAtAAoABQACAAIAAAAtAAkABQACAAsAAAAtAAgABQACAAIAAAAtAAcABQACAAsAAAAtAAYABQACAAsAAAAtAAUABQADAAEAAAAtAPz/BQAGAAMAAAAtAPv/BQAGAAEAAAAsABcABQACAAQAAAAsABYABQACAAsAAAAsABUABQACAAIAAAAsABQABQACAAIAAAAsABMABQACAAIAAAAsABIABQACAAIAAAAsABEABQABAAsAAAAsABAABQADAAsAAAAsAA8ABQACAAIAAAAsAA4ABQACAAIAAAAsAA0ABQADAAsAAAAsAAwABQACAAsAAAAsAAsABQACAAIAAAAsAAoABQACAAsAAAAsAAkABQACAAIAAAAsAAgABQACAAIAAAAsAAcABQACAAIAAAAsAAYABQACAAIAAAAsAAUABQACAAIAAAAsAAQABQADAAEAAAAsAAMABQADAAAAAAArABcABQACAAQAAAArABYABQACAAIAAAArABUABQACAAsAAAArABQABQACAAIAAAArABMABQACAAsAAAArABIABQACAAIAAAArABEABQACAAIAAAArABAABQAAAAsAAAArAA8ABQACAAIAAAArAA4ABQACAAIAAAArAA0ABQACAAIAAAArAAwABQACAAIAAAArAAsABQACAAIAAAArAAoABQACAAIAAAArAAkABQABAAsAAAArAAgABQACAAIAAAArAAcABQACAAIAAAArAAYABQACAAIAAAArAAUABQACAAIAAAArAAQABQACAAIAAAArAAMABQADAAEAAAArAAIABQAEAAIAAAArAAEABQAEAAEAAAAqABcABQACAAQAAAAqABYABQAAAAsAAAAqABUABQABAAsAAAAqABQABQACAAIAAAAqABMABQAAAAsAAAAqABIABQACAAIAAAAqABEABQACAAIAAAAqABAABQADAAsAAAAqAA8ABQACAAIAAAAqAA4ABQADAAsAAAAqAA0ABQADAAsAAAAqAAwABQADAAsAAAAqAAsABQACAAIAAAAqAAoABQABAAEAAAAqAAkABQAAAAIAAAAqAAcABQABAAMAAAAqAAYABQABAAsAAAAqAAUABQACAAIAAAAqAAQABQADAAsAAAAqAAMABQACAAIAAAAqAAIABQABAAEAAAAqAAEABQAAAAIAAAAqAAAABQAGAAEAAAApABcABQACAAQAAAApABYABQACAAsAAAApABUABQACAAIAAAApABQABQACAAIAAAApABMABQACAAIAAAApABIABQABAAsAAAApABEABQACAAIAAAApABAABQACAAIAAAApAA8ABQACAAIAAAApAA4ABQACAAIAAAApAA0ABQADAAsAAAApAAwABQACAAIAAAApAAsABQACAAIAAAApAAoABQACAAAAAAApAAcABQABAAQAAAApAAYABQABAAMAAAApAAUABQACAAsAAAApAAQABQACAAsAAAApAAMABQABAAEAAAAoABcABQACAAQAAAAoABYABQACAAIAAAAoABUABQADAAsAAAAoABQABQABAAsAAAAoABMABQABAAsAAAAoABIABQACAAIAAAAoABEABQABAAsAAAAoABAABQADAAsAAAAoAA8ABQAAAAsAAAAoAA4ABQACAAIAAAAoAA0ABQADAAsAAAAoAAwABQACAAIAAAAoAAsABQACAAIAAAAoAAYABQACAAQAAAAoAAUABQAAAAsAAAAoAAQABQAAAAsAAAAoAAMABQACAAAAAAAnABcABQACAAQAAAAnABYABQACAAIAAAAnABUABQACAAIAAAAnABQABQACAAIAAAAnABMABQACAAIAAAAnABIABQACAAsAAAAnABEABQADAAsAAAAnABAABQACAAIAAAAnAA8ABQACAAsAAAAnAA4ABQACAAsAAAAnAA0ABQACAAIAAAAnAAwABQACAAIAAAAnAAsABQACAAsAAAAnAAoABQACAAAAAAAnAAYABQADAAMAAAAnAAUABQADAAsAAAAnAAQABQACAAIAAAAnAAMABQACAAAAAAAnAPD/BQAKAAAAAAAmABcABQACAAQAAAAmABYABQACAAsAAAAmABUABQABAAsAAAAmABQABQACAAIAAAAmABMABQAAAAsAAAAmABIABQACAAIAAAAmABEABQABAAsAAAAmABAABQABAAsAAAAmAA8ABQACAAsAAAAmAA4ABQAAAAsAAAAmAA0ABQACAAsAAAAmAAwABQABAAsAAAAmAAsABQACAAIAAAAmAAoABQADAAEAAAAmAAkABQAEAAIAAAAmAAgABQAEAAIAAAAmAAcABQADAAMAAAAmAAYABQAAAAsAAAAmAAUABQABAAsAAAAmAAQABQAAAAsAAAAmAAMABQACAAAAAAAmAPD/BQAJAAAAAAAlABcABQACAAQAAAAlABYABQACAAIAAAAlABUABQACAAIAAAAlABQABQADAAsAAAAlABMABQAAAAsAAAAlABIABQACAAsAAAAlABEABQACAAIAAAAlABAABQACAAIAAAAlAA8ABQACAAIAAAAlAA4ABQADAAsAAAAlAA0ABQACAAIAAAAlAAwABQACAAIAAAAlAAsABQACAAsAAAAlAAoABQACAAIAAAAlAAkABQABAAsAAAAlAAgABQACAAIAAAAlAAcABQACAAIAAAAlAAYABQABAAsAAAAlAAUABQAAAAsAAAAlAAQABQACAAIAAAAlAAMABQACAAAAAAAlAPD/BQAJAAAAAAAkABcABQACAAQAAAAkABYABQAAAAsAAAAkABUABQACAAIAAAAkABQABQACAAsAAAAkABMABQACAAIAAAAkABIABQACAAIAAAAkABEABQACAAIAAAAkABAABQACAAIAAAAkAA8ABQABAAsAAAAkAA4ABQACAAIAAAAkAA0ABQACAAIAAAAkAAwABQABAAsAAAAkAAsABQACAAIAAAAkAAoABQACAAsAAAAkAAkABQACAAIAAAAkAAgABQACAAIAAAAkAAcABQACAAIAAAAkAAYABQACAAsAAAAkAAUABQAAAAsAAAAkAAQABQABAAEAAAAkAAMABQABAAAAAAAkAPD/BQAJAAAAAAAjABcABQACAAQAAAAjABYABQACAAIAAAAjABUABQACAAIAAAAjABQABQACAAIAAAAjABMABQACAAsAAAAjABIABQACAAsAAAAjABEABQABAAsAAAAjABAABQACAAsAAAAjAA8ABQABAAsAAAAjAA4ABQACAAIAAAAjAA0ABQACAAIAAAAjAAwABQACAAIAAAAjAAsABQADAAsAAAAjAAoABQADAAsAAAAjAAkABQACAAIAAAAjAAgABQACAAIAAAAjAAcABQACAAIAAAAjAAYABQACAAIAAAAjAAUABQADAAsAAAAjAAQABQACAAAAAAAjAPD/BQAJAAAAAAAiABcABQACAAQAAAAiABYABQACAAsAAAAiABUABQACAAsAAAAiABQABQACAAIAAAAiABMABQACAAIAAAAiABIABQACAAsAAAAiABEABQABAAsAAAAiABAABQACAAIAAAAiAA8ABQABAAsAAAAiAA4ABQADAAsAAAAiAA0ABQACAAsAAAAiAAwABQACAAIAAAAiAAsABQACAAIAAAAiAAoABQACAAIAAAAiAAkABQACAAIAAAAiAAgABQAAAAsAAAAiAAcABQABAAsAAAAiAAYABQABAAEAAAAiAAUABQAAAAIAAAAiAPD/BQAJAAAAAAAhABcABQACAAQAAAAhABYABQACAAIAAAAhABUABQACAAIAAAAhABQABQACAAIAAAAhABMABQACAAIAAAAhABIABQACAAIAAAAhABEABQACAAIAAAAhABAABQACAAIAAAAhAA8ABQACAAIAAAAhAA4ABQACAAIAAAAhAA0ABQABAAsAAAAhAAwABQACAAIAAAAhAAsABQABAAEAAAAhAAoABQAAAAIAAAAhAAgABQAAAAIAAAAhAAcABQABAAMAAAAhAAYABQACAAAAAAAhAPD/BQAIAAAAAAAgABcABQACAAQAAAAgABYABQACAAIAAAAgABUABQACAAIAAAAgABQABQADAAsAAAAgABMABQABAAsAAAAgABIABQAAAAsAAAAgABEABQACAAIAAAAgABAABQACAAsAAAAgAA8ABQABAAsAAAAgAA4ABQADAAsAAAAgAA0ABQACAAsAAAAgAAwABQACAAIAAAAgAAsABQACAAAAAAAgAAcABQAAAAMAAAAgAAYABQAAAAEAAAAfABcABQACAAQAAAAfABYABQAAAAsAAAAfABUABQACAAsAAAAfABQABQACAAIAAAAfABMABQACAAIAAAAfABIABQACAAIAAAAfABEABQACAAIAAAAfABAABQACAAIAAAAfAA8ABQACAAsAAAAfAA4ABQACAAIAAAAfAA0ABQACAAIAAAAfAAwABQACAAIAAAAfAAsABQACAAAAAAAfAAcABQAGAAEAAAAeABcABQACAAQAAAAeABYABQACAAIAAAAeABUABQAAAAsAAAAeABQABQACAAIAAAAeABMABQACAAIAAAAeABIABQADAAsAAAAeABEABQACAAsAAAAeABAABQABAAsAAAAeAA8ABQACAAIAAAAeAA4ABQACAAsAAAAeAA0ABQABAAsAAAAeAAwABQACAAIAAAAeAAsABQACAAAAAAAdABcABQACAAQAAAAdABYABQACAAIAAAAdABUABQACAAIAAAAdABQABQACAAIAAAAdABMABQACAAIAAAAdABIABQACAAIAAAAdABEABQACAAIAAAAdABAABQAAAAsAAAAdAA8ABQACAAIAAAAdAA4ABQAAAAsAAAAdAA0ABQACAAIAAAAdAAwABQACAAsAAAAdAAsABQACAAAAAAAcABcABQACAAQAAAAcABYABQACAAsAAAAcABUABQACAAIAAAAcABQABQACAAsAAAAcABMABQACAAIAAAAcABIABQAAAAsAAAAcABEABQAAAAsAAAAcABAABQACAAIAAAAcAA8ABQACAAsAAAAcAA4ABQACAAIAAAAcAA0ABQACAAIAAAAcAAwABQAAAAsAAAAcAAsABQACAAAAAAAbABcABQACAAQAAAAbABYABQACAAIAAAAbABUABQACAAsAAAAbABQABQACAAIAAAAbABMABQACAAIAAAAbABIABQAAAAsAAAAbABEABQACAAsAAAAbABAABQACAAIAAAAbAA8ABQACAAIAAAAbAA4ABQACAAIAAAAbAA0ABQABAAsAAAAbAAwABQABAAsAAAAbAAsABQADAAEAAAAbAAoABQADAAAAAAAaABcABQACAAQAAAAaABYABQABAAsAAAAaABUABQACAAIAAAAaABQABQABAAsAAAAaABMABQACAAIAAAAaABIABQACAAIAAAAaABEABQACAAIAAAAaABAABQACAAIAAAAaAA8ABQABAAsAAAAaAA4ABQACAAIAAAAaAA0ABQACAAIAAAAaAAwABQACAAIAAAAaAAsABQACAAIAAAAaAAoABQACAAAAAAAZABcABQACAAQAAAAZABYABQACAAIAAAAZABUABQACAAIAAAAZABQABQACAAIAAAAZABMABQADAAsAAAAZABIABQABAAsAAAAZABEABQACAAIAAAAZABAABQACAAsAAAAZAA8ABQACAAIAAAAZAA4ABQABAAsAAAAZAA0ABQACAAIAAAAZAAwABQADAAsAAAAZAAsABQACAAsAAAAZAAoABQADAAEAAAAZAAkABQAEAAEAAAAZAAIABQADAAQAAAAZAAEABQAEAAEAAAAYABcABQACAAQAAAAYABYABQADAAsAAAAYABUABQABAAsAAAAYABQABQADAAsAAAAYABMABQACAAIAAAAYABIABQACAAIAAAAYABEABQACAAIAAAAYABAABQACAAsAAAAYAA8ABQACAAIAAAAYAA4ABQACAAsAAAAYAA0ABQACAAIAAAAYAAwABQADAAsAAAAYAAsABQACAAIAAAAYAAoABQACAAIAAAAYAAkABQACAAAAAAAYAAIABQAAAAMAAAAYAAEABQAAAAEAAAAXABcABQACAAQAAAAXABYABQAAAAsAAAAXABUABQABAAsAAAAXABQABQABAAsAAAAXABMABQACAAIAAAAXABIABQAAAAsAAAAXABEABQADAAsAAAAXABAABQACAAIAAAAXAA8ABQACAAsAAAAXAA4ABQACAAsAAAAXAA0ABQACAAIAAAAXAAwABQACAAIAAAAXAAsABQACAAIAAAAXAAoABQADAAsAAAAXAAkABQADAAEAAAAXAPD/BQAKAAAAAAAWABcABQACAAQAAAAWABYABQABAAsAAAAWABUABQACAAsAAAAWABQABQABAAsAAAAWABMABQACAAIAAAAWABIABQACAAIAAAAWABEABQACAAIAAAAWABAABQACAAIAAAAWAA8ABQACAAIAAAAWAA4ABQADAAsAAAAWAA0ABQACAAsAAAAWAAwABQABAAsAAAAWAAsABQACAAIAAAAWAAoABQACAAIAAAAWAAkABQACAAsAAAAWAAgABQACAAAAAAAWAPD/BQAJAAAAAAAVABcABQACAAQAAAAVABYABQACAAIAAAAVABUABQACAAIAAAAVABQABQACAAIAAAAVABMABQABAAsAAAAVABIABQACAAIAAAAVABEABQACAAIAAAAVABAABQACAAIAAAAVAA8ABQAAAAsAAAAVAA4ABQACAAIAAAAVAA0ABQACAAIAAAAVAAwABQAAAAsAAAAVAAsABQACAAIAAAAVAAoABQADAAsAAAAVAAkABQACAAIAAAAVAAgABQADAAEAAAAVAAcABQADAAAAAAAVAPD/BQAJAAAAAAAUABcABQACAAQAAAAUABYABQABAAsAAAAUABUABQABAAsAAAAUABQABQAAAAsAAAAUABMABQAAAAsAAAAUABIABQADAAsAAAAUABEABQABAAsAAAAUABAABQABAAsAAAAUAA8ABQAAAAsAAAAUAA4ABQADAAsAAAAUAA0ABQACAAIAAAAUAAwABQAAAAsAAAAUAAsABQACAAIAAAAUAAoABQACAAIAAAAUAAkABQADAAsAAAAUAAgABQABAAsAAAAUAAcABQADAAEAAAAUAAYABQAEAAIAAAAUAPD/BQAJAAAAAAATABcABQACAAQAAAATABYABQABAAsAAAATABUABQACAAsAAAATABQABQACAAsAAAATABMABQABAAsAAAATABIABQACAAIAAAATABEABQACAAIAAAATABAABQACAAIAAAATAA8ABQADAAsAAAATAA4ABQACAAIAAAATAA0ABQACAAIAAAATAAwABQACAAIAAAATAAsABQACAAIAAAATAAoABQABAAsAAAATAAkABQACAAIAAAATAAgABQACAAIAAAATAAcABQADAAsAAAATAAYABQAAAAsAAAATAAUABQACAAAAAAATAPD/BQAJAAAAAAASABcABQACAAQAAAASABYABQACAAIAAAASABUABQACAAIAAAASABQABQACAAIAAAASABMABQACAAIAAAASABIABQACAAIAAAASABEABQACAAIAAAASABAABQAAAAsAAAASAA8ABQACAAIAAAASAA4ABQACAAsAAAASAA0ABQADAAsAAAASAAwABQACAAsAAAASAAsABQACAAIAAAASAAoABQACAAsAAAASAAkABQACAAIAAAASAAgABQACAAIAAAASAAcABQACAAIAAAASAAYABQACAAIAAAASAAUABQADAAEAAAASAAQABQAEAAIAAAASAAMABQAEAAEAAAASAPD/BQAIAAAAAAARABcABQACAAQAAAARABYABQADAAsAAAARABUABQACAAIAAAARABQABQACAAIAAAARABMABQADAAsAAAARABIABQACAAsAAAARABEABQACAAIAAAARABAABQACAAIAAAARAA8ABQACAAIAAAARAA4ABQADAAsAAAARAA0ABQADAAsAAAARAAwABQACAAIAAAARAAsABQACAAIAAAARAAoABQACAAIAAAARAAkABQACAAIAAAARAAgABQACAAIAAAARAAcABQACAAsAAAARAAYABQACAAIAAAARAAUABQACAAIAAAARAAQABQACAAIAAAARAAMABQADAAEAAAARAAIABQADAAAAAAAQABcABQACAAQAAAAQABYABQAAAAsAAAAQABUABQAAAAsAAAAQABQABQACAAIAAAAQABMABQACAAIAAAAQABIABQABAAsAAAAQABEABQABAAsAAAAQABAABQACAAIAAAAQAA8ABQAAAAsAAAAQAA4ABQACAAIAAAAQAA0ABQADAAsAAAAQAAwABQACAAIAAAAQAAsABQADAAsAAAAQAAoABQABAAsAAAAQAAkABQABAAsAAAAQAAgABQACAAIAAAAQAAcABQACAAIAAAAQAAYABQACAAIAAAAQAAUABQABAAEAAAAQAAQABQAAAAIAAAAQAAMABQABAAMAAAAQAAIABQADAAEAAAAQAAEABQADAAAAAAAPABcABQACAAQAAAAPABYABQACAAIAAAAPABUABQACAAIAAAAPABQABQACAAIAAAAPABMABQACAAIAAAAPABIABQACAAsAAAAPABEABQADAAsAAAAPABAABQACAAIAAAAPAA8ABQACAAsAAAAPAA4ABQABAAsAAAAPAA0ABQACAAIAAAAPAAwABQACAAIAAAAPAAsABQACAAIAAAAPAAoABQADAAsAAAAPAAkABQACAAsAAAAPAAgABQACAAIAAAAPAAcABQABAAEAAAAPAAYABQAAAAIAAAAPAAMABQAAAAMAAAAPAAIABQAAAAIAAAAPAAEABQACAAAAAAAOABcABQACAAQAAAAOABYABQADAAsAAAAOABUABQACAAIAAAAOABQABQADAAsAAAAOABMABQACAAIAAAAOABIABQACAAIAAAAOABEABQACAAIAAAAOABAABQABAAsAAAAOAA8ABQACAAIAAAAOAA4ABQACAAIAAAAOAA0ABQACAAIAAAAOAAwABQACAAIAAAAOAAsABQADAAsAAAAOAAoABQAAAAsAAAAOAAkABQACAAsAAAAOAAgABQADAAsAAAAOAAEABQAIAAAAAAANABcABQACAAQAAAANABYABQAAAAsAAAANABUABQABAAsAAAANABQABQACAAIAAAANABMABQABAAsAAAANABIABQACAAsAAAANABEABQAAAAsAAAANABAABQACAAIAAAANAA8ABQACAAIAAAANAA4ABQACAAIAAAANAA0ABQAAAAsAAAANAAwABQADAAsAAAANAAsABQAAAAsAAAANAAoABQACAAIAAAANAAkABQACAAsAAAANAAgABQADAAsAAAANAAcABQADAAEAAAANAAYABQAEAAIAAAAMABcABQACAAQAAAAMABYABQAAAAsAAAAMABUABQAAAAsAAAAMABQABQACAAsAAAAMABMABQADAAsAAAAMABIABQACAAIAAAAMABEABQADAAsAAAAMABAABQADAAsAAAAMAA8ABQACAAsAAAAMAA4ABQACAAIAAAAMAA0ABQACAAIAAAAMAAwABQABAAsAAAAMAAsABQACAAIAAAAMAAoABQACAAIAAAAMAAkABQADAAsAAAAMAAgABQACAAsAAAAMAAcABQAAAAsAAAAMAAYABQADAAsAAAAMAAUABQACAAAAAAALABcABQACAAQAAAALABYABQADAAsAAAALABUABQACAAIAAAALABQABQACAAIAAAALABMABQAAAAsAAAALABIABQABAAsAAAALABEABQACAAIAAAALABAABQADAAsAAAALAA8ABQADAAsAAAALAA4ABQACAAIAAAALAA0ABQADAAsAAAALAAwABQABAAEAAAALAAsABQAAAAIAAAALAAoABQABAAMAAAALAAkABQACAAIAAAALAAgABQADAAsAAAALAAcABQACAAIAAAALAAYABQADAAsAAAALAAUABQABAAEAAAALAPD/BQAKAAAAAAAKABcABQACAAQAAAAKABYABQABAAsAAAAKABUABQABAAsAAAAKABQABQACAAIAAAAKABMABQACAAIAAAAKABIABQACAAIAAAAKABEABQACAAsAAAAKABAABQACAAsAAAAKAA8ABQACAAIAAAAKAA4ABQAAAAsAAAAKAA0ABQABAAEAAAAKAAwABQAAAAEAAAAKAAkABQAAAAIAAAAKAAgABQABAAMAAAAKAAcABQACAAIAAAAKAAYABQACAAIAAAAKAAUABQACAAAAAAAKAPD/BQAJAAAAAAAJABcABQACAAQAAAAJABYABQACAAsAAAAJABUABQACAAIAAAAJABQABQACAAsAAAAJABMABQACAAIAAAAJABIABQADAAsAAAAJABEABQAAAAsAAAAJABAABQACAAIAAAAJAA8ABQAAAAsAAAAJAA4ABQABAAEAAAAJAA0ABQAAAAEAAAAJAAgABQACAAQAAAAJAAcABQACAAIAAAAJAAYABQABAAEAAAAJAAUABQABAAAAAAAJAPD/BQAJAAAAAAAIABcABQACAAQAAAAIABYABQACAAIAAAAIABUABQACAAIAAAAIABQABQACAAIAAAAIABMABQAAAAsAAAAIABIABQACAAIAAAAIABEABQACAAIAAAAIABAABQACAAIAAAAIAA8ABQACAAIAAAAIAA4ABQACAAAAAAAIAAgABQACAAQAAAAIAAcABQACAAIAAAAIAAYABQACAAAAAAAIAPv/BQAJAAAAAAAIAPD/BQAJAAAAAAAHABcABQACAAQAAAAHABYABQACAAIAAAAHABUABQACAAsAAAAHABQABQACAAIAAAAHABMABQACAAIAAAAHABIABQACAAIAAAAHABEABQADAAsAAAAHABAABQACAAIAAAAHAA8ABQACAAIAAAAHAA4ABQACAAAAAAAHAAgABQAAAAMAAAAHAAcABQAAAAIAAAAHAAYABQAAAAEAAAAHAP3/BQAEAAMAAAAHAPz/BQAEAAIAAAAHAPv/BQABAAEAAAAHAPD/BQAJAAAAAAAGABcABQACAAQAAAAGABYABQACAAsAAAAGABUABQACAAIAAAAGABQABQACAAIAAAAGABMABQACAAIAAAAGABIABQACAAIAAAAGABEABQACAAIAAAAGABAABQABAAsAAAAGAA8ABQACAAIAAAAGAA4ABQACAAAAAAAGAP//BQAEAAMAAAAGAP7/BQAEAAIAAAAGAP3/BQADAAMAAAAGAPz/BQACAAIAAAAGAPv/BQACAAAAAAAGAPD/BQAJAAAAAAAFABcABQACAAQAAAAFABYABQADAAsAAAAFABUABQADAAsAAAAFABQABQABAAsAAAAFABMABQACAAIAAAAFABIABQACAAIAAAAFABEABQABAAsAAAAFABAABQACAAIAAAAFAA8ABQABAAsAAAAFAA4ABQADAAEAAAAFAP//BQAAAAMAAAAFAP7/BQAAAAIAAAAFAP3/BQABAAEAAAAFAPz/BQAAAAIAAAAFAPv/BQABAAAAAAAFAPD/BQAJAAAAAAAEABcABQACAAQAAAAEABYABQACAAIAAAAEABUABQACAAIAAAAEABQABQACAAIAAAAEABMABQACAAIAAAAEABIABQABAAsAAAAEABEABQACAAIAAAAEABAABQACAAIAAAAEAA8ABQACAAIAAAAEAA4ABQACAAIAAAAEAA0ABQACAAAAAAAEAP3/BQAIAAAAAAAEAPD/BQAJAAAAAAADABcABQACAAQAAAADABYABQABAAsAAAADABUABQABAAsAAAADABQABQABAAsAAAADABMABQABAAsAAAADABIABQAAAAsAAAADABEABQACAAIAAAADABAABQACAAIAAAADAA8ABQACAAIAAAADAA4ABQACAAsAAAADAA0ABQADAAEAAAADAAwABQAEAAEAAAADAAMABQADAAQAAAADAAIABQAEAAEAAAADAPD/BQAJAAAAAAACABcABQACAAQAAAACABYABQACAAIAAAACABUABQABAAsAAAACABQABQACAAIAAAACABMABQACAAIAAAACABIABQADAAsAAAACABEABQADAAsAAAACABAABQAAAAsAAAACAA8ABQAAAAsAAAACAA4ABQACAAIAAAACAA0ABQACAAIAAAACAAwABQADAAEAAAACAAsABQAEAAIAAAACAAgABQADAAQAAAACAAcABQAEAAIAAAACAAYABQAEAAIAAAACAAUABQAEAAIAAAACAAQABQAEAAIAAAACAAMABQADAAMAAAACAAIABQADAAEAAAACAAEABQAEAAEAAAACAPH/BQAEAAMAAAACAPD/BQAEAAEAAAABABcABQACAAQAAAABABYABQACAAIAAAABABUABQACAAIAAAABABQABQADAAsAAAABABMABQABAAsAAAABABIABQACAAIAAAABABEABQADAAsAAAABABAABQACAAsAAAABAA8ABQACAAIAAAABAA4ABQACAAIAAAABAA0ABQACAAIAAAABAAwABQADAAsAAAABAAsABQACAAsAAAABAAoABQADAAEAAAABAAkABQAEAAIAAAABAAgABQADAAMAAAABAAcABQACAAIAAAABAAYABQACAAIAAAABAAUABQADAAsAAAABAAQABQACAAIAAAABAAMABQADAAsAAAABAAIABQACAAIAAAABAAEABQADAAEAAAABAAAABQAEAAIAAAABAP//BQAEAAIAAAABAP7/BQAEAAIAAAABAP3/BQAEAAIAAAABAPz/BQAEAAIAAAABAPv/BQAEAAIAAAABAPr/BQAEAAEAAAABAPL/BQAEAAMAAAABAPH/BQADAAMAAAABAPD/BQACAAAAAAAAABcABQAAAAMAAAAAABYABQAAAAIAAAAAABUABQAAAAIAAAAAABQABQAAAAIAAAAAABMABQAAAAIAAAAAABIABQAAAAIAAAAAABEABQAAAAIAAAAAABAABQAAAAIAAAAAAA8ABQAAAAIAAAAAAA4ABQAAAAIAAAAAAA0ABQAAAAIAAAAAAAwABQAAAAIAAAAAAAsABQAAAAIAAAAAAAoABQAAAAIAAAAAAAkABQAAAAIAAAAAAAgABQAAAAIAAAAAAAcABQAAAAIAAAAAAAYABQAAAAIAAAAAAAUABQAAAAIAAAAAAAQABQAAAAIAAAAAAAMABQAAAAIAAAAAAAIABQAAAAIAAAAAAAEABQAAAAIAAAAAAAAABQAAAAIAAAAAAP//BQAAAAIAAAAAAP7/BQAAAAIAAAAAAP3/BQAAAAIAAAAAAPz/BQAAAAIAAAAAAPv/BQAAAAIAAAAAAPr/BQAAAAIAAAAAAPn/BQAGAAIAAAAAAPj/BQAGAAEAAAAAAPT/BQAGAAMAAAAAAPP/BQAGAAIAAAAAAPL/BQABAAQAAAAAAPH/BQAAAAIAAAAAAPD/BQABAAAAAADvAPb/BQAGAAAAAADvAPT/BQAGAAAAAADuAPH/BQABAAQAAADsAAkABQACAAAAAADrAA8ABQABAAAAAADqAA0ABQABAAQAAADqAAcABQAEAAIAAADqAAYABQAEAAIAAADpAAMABQAGAAEAAADpAP7/BQAKAAAAAADoABEABQAGAAEAAADoAAYABQABAAEAAADnAAQABQAGAAMAAADnAAMABQAGAAIAAADnAAIABQAGAAIAAADmAAYABQAAAAIAAADmAAUABQAGAAEAAADmAAAABQAIAAAAAADkAAcABQAAAAEAAADiAA0ABQAEAAIAAADiAAgABQAAAAEAAADZAAwABQAAAAMAAADZAAcABQAGAAEAAADXAAgABQABAAAAAADWAA4ABQAEAAIAAADVAAgABQAEAAEAAADUAAYABQAEAAEAAADSAAQABQAKAAAAAADRAAgABQAAAAMAAADRAAcABQAAAAIAAADRAAYABQABAAAAAADRAAQABQAIAAAAAADQAA0ABQACAAAAAADPAA0ABQACAAAAAADPAAgABQAGAAAAAADNAAcABQAEAAEAAADFAAUABQAGAAMAAADEAAkABQAGAAEAAADDAAYABQAGAAMAAADDAAUABQAGAAEAAADCAAgABQAEAAEAAADBAAUABQAGAAAAAAC/AAUABQAGAAEAAAC9AAQABQAGAAAAAAC7AAUABQAAAAEAAAC4ABAABQAAAAIAAAC4AA8ABQAAAAIAAAC2ABAABQAEAAIAAAC0AP7/BQAKAAAAAACzAAkABQACAAAAAACxAA4ABQACAAAAAACxAAwABQAAAAMAAACxAPv/BQAGAAEAAACxAPn/BQAGAAAAAACwAA4ABQABAAAAAACtABMABQABAAsAAACtABIABQACAAIAAACrAAYABQABAAAAAACqAA4ABQAEAAEAAACpAAwABQAKAAAAAACpAAoABQAGAAMAAACpAAkABQAGAAIAAACpAAgABQAGAAEAAAClAAkABQAGAAEAAACjAAwABQAAAAIAAACjAAgABQAEAAEAAAChAAYABQAEAAEAAACgAAwABQAEAAIAAACeAAwABQACAAsAAACcABEABQABAAEAAACcAAsABQAAAAMAAACbABEABQACAAAAAACbAA8ABQAIAAAAAACaABEABQACAAAAAACaAAgABQAAAAMAAACZABAABQAEAAEAAACZAA8ABQAGAAAAAACYAAgABQAGAAMAAACXAA8ABQADAAAAAACXAA4ABQAGAAAAAACVAA4ABQAGAAEAAACVAAIABQAEAAEAAACTAA8ABQADAAEAAACTAA4ABQAEAAIAAACTAA0ABQAEAAEAAACRAPD/BQAGAAAAAACQAAUABQAEAAMAAACPAPD/BQAGAAAAAACNAAQABQAIAAAAAACMAAkABQAIAAAAAACGAAwABQADAAAAAACFAAIABQAGAAAAAACFAPD/BQAGAAAAAACEAAAABQAKAAAAAACDAPD/BQAGAAAAAACCAAEABQAGAAMAAACCAP3/BQAGAAEAAACBAPD/BQAGAAAAAAB9AAkABQACAAAAAAB8AAQABQAGAAAAAAB5AAkABQAAAAEAAAB5AAcABQAIAAAAAAB4AP//BQAKAAAAAAB3AAwABQABAAAAAAB1AA8ABQACAAIAAAB1AA0ABQACAAAAAABzABEABQACAAAAAAByABEABQACAAAAAAByAA8ABQAAAAMAAABxABEABQABAAAAAABxAA0ABQAIAAAAAABwAA8ABQAGAAMAAABwAA4ABQAKAAAAAABwAAgABQAGAAMAAABwAAcABQAGAAIAAABwAAYABQAGAAEAAABvAAoABQAKAAAAAABuAAcABQAGAAAAAABtABEABQAEAAIAAABtABAABQAEAAIAAABqAAYABQADAAAAAABnAAQABQADAAAAAABmAAcABQABAAQAAABlABIABQAEAAEAAABkAAUABQABAAQAAABjAAUABQAKAAAAAABjAAMABQAIAAAAAABiAAcABQAKAAAAAABiAAUABQAJAAAAAABhAAUABQAEAAEAAABgAAkABQAGAAMAAABdAAsABQAEAAEAAABdAAkABQAAAAMAAABcAAcABQAIAAAAAABcAAMABQAKAAAAAABbAAkABQACAAAAAABbAAUABQAKAAAAAABbAAMABQAJAAAAAABaAAUABQAEAAMAAABZAAEABQAGAAEAAABXAAIABQABAAAAAABVAA0ABQAAAAMAAABUAA8ABQAAAAEAAABUAAcABQABAAAAAABSAAsABQAGAAMAAABRABAABQAEAAEAAABRAA0ABQAKAAAAAABRAAsABQAKAAAAAABRAAkABQAIAAAAAABPAAEABQAGAAEAAABOAPD/BQAGAAAAAABHAAoABQAGAAEAAABFAAoABQAGAAEAAABAAAkABQAGAAAAAABAAAcABQAKAAAAAABAAAUABQAJAAAAAAA/AAsABQAAAAEAAAA/AAcABQAIAAAAAAA/AAUABQAJAAAAAAA+AAMABQAEAAEAAAA5AAQABQABAAAAAAA5APD/BQAGAAAAAAA4AAYABQAGAAAAAAA3APD/BQAGAAAAAAA0AAsABQACAAAAAAAzAAcABQAKAAAAAAAyAPD/BQAGAAAAAAAwAPD/BQAGAAAAAAAvABEABQACAAIAAAAuABEABQACAAIAAAAuABAABQADAAsAAAAtAAQABQAEAAEAAAAqAAgABQAAAAIAAAApAAIABQAAAAEAAAAoAAoABQACAAAAAAAnAAcABQADAAQAAAAiAAQABQAAAAEAAAAhAAkABQAAAAIAAAAfAAgABQAGAAMAAAAfAPD/BQAGAAAAAAAdAPD/BQAGAAAAAAAbAPD/BQAGAAAAAAAZAPD/BQAGAAAAAAAXAAgABQADAAAAAAAUAAUABQAEAAEAAAAPAAUABQAAAAEAAAAOAAcABQACAAAAAAANAAUABQAEAAEAAAALAAQABQAGAAEAAAAKAAoABQAAAAMAAAAJAPv/BQAKAAAAAAAIAAkABQAGAAMAAAAHAPr/BQAGAAEAAAAFAA0ABQAEAAEAAAAEAAMABQAKAAAAAAACAAoABQADAAAAAAAAAPb/BQAGAAAAAAA=") +tile_set = ExtResource("9_8kroa") + +[node name="Entities layer" type="TileMapLayer" parent="." unique_id=680229213] +tile_set = ExtResource("10_3v2vi") + +[node name="Foreground layer" type="TileMapLayer" parent="." unique_id=481064790] +tile_set = ExtResource("11_67jh0") + +[node name="Killzone" parent="." unique_id=319936093 instance=ExtResource("12_yio4o")] +position = Vector2(215, 324) + +[node name="Brick Player" parent="." unique_id=1304589431 instance=ExtResource("1_0l0mp")] +position = Vector2(68, 160) +metadata/_edit_group_ = true + +[node name="HitParticles" parent="Brick Player" index="23" unique_id=1322585720] +process_material = SubResource("ParticleProcessMaterial_nh11v") + +[connection signal="Death" from="Brick Player/HealthComponent" to="UI Layer/DeathScreen" method="OnPlayerDeath"] +[connection signal="Death" from="Brick Player/HealthComponent" to="UI Layer/GameOverScreen" method="OnPlayerDeath"] + +[editable path="UI Layer"] +[editable path="Brick Player"]