From f110a7efbc10f2ae9c741d54bb31dd9831a44eae Mon Sep 17 00:00:00 2001 From: jamesbrq Date: Sat, 11 Jul 2026 13:26:27 -0400 Subject: [PATCH] Gauntlet Legends: Implement New Game (#3499) * Update GauntletLegendsClient.py * Continuation of obelisk update * APPP Implementation Groundwork. * Continuation of APPP Implementation * Create Pain.asm * ROM verification modified since crc32 hash can no longer be calculated. * Initial upload of barrel/chest locations. * Finished adding and naming all chests/barrels. * Continued locations. * Added new yaml options * Work on mirror shards * Python 3.8 compatibility * Finalized location names. Fixed lambda bug. * v1.0 * Removed excess Docs and Changed item counts. * Update Archipelago Unittests.run.xml * Started working on Docs. * Updated item arrays for client * Fix client bugs * Flake8 fixes + Yaml fix * Update speed boots * v1.1 * Update GauntletLegendsClient.py * Update GauntletLegendsClient.py * Update GauntletLegendsClient.py * Update GauntletLegendsClient.py * v1.0.4 * Initial Ruff format * Formatting part-2 * More formatting + Doc changes * Updated Docs * Move client to root * Update Client Name * Make Imports Relative * Add new yaml options + rename obelisks * v1.1 Initial Upload * v1.1.0 + some additions * Client Update * Client Updates * pre-v1.1.1 * Update GauntletLegendsClient.py * pre-1.2 * 1.2.0 * v1.2.1 * Client fixes * v1.3.0 * v1.4.0 * v1.4.1 * Merged Changes * Experimental * pre-v1.5.0 * Changes * v1.5.0 * Update GauntletLegendsClient.py * Death Update * pre v1.5.1 * Obelisk rule changes * pre-v1.5.1 * Update GauntletLegendsClient.py * v1.5.1 * v1.5.1 * Update GauntletLegendsClient.py * Small fix * Update GauntletLegendsClient.py * v1.5.2 * pre-v1.6.0 * pre-v1.6.0 * v1.6.0 * Update * Update GauntletLegendsClient.py * Test * pre-v1.6.0 * Client Updtaes * Update GauntletLegendsClient.py * Update GauntletLegendsClient.py * Update GauntletLegendsClient.py * Update Rom.py * Update GauntletLegendsClient.py * Update Rom.py * Added Logging on stage enter * v1.6.2 * v1.6.2 * Update Rom.py * Update GauntletLegendsClient.py * v1.6.3 * Small Update * Update GauntletLegendsClient.py * Update GauntletLegendsClient.py * Update GauntletLegendsClient.py * Changes ready for review * Update Rom.py * Remove root client * Update inno_setup.iss * Update client * Initial Review Refactor * Update Arrays.py * Review refactor * Update __init__.py * Small tweaks after test generations * Update GauntletLegendsClient.py * Implement new check_locations() function * Add name for Skorn to level_names Dict * Fix for #4671 * Update __init__.py * Adjust item frequency + Place 50% of filler as local * Oops I modified the itempool after create_items teehee * Update __init__.py * Check MD5 hash before patching ROM * Update __init__.py * Fix get_filler_item_name() * Update MD5 check to built in method in FilePath * Update Rom.py * Update worlds/gl/Rom.py Co-authored-by: qwint * WIP Generation fixes * v1.7.1 * Update Archipelago Unittests.run.xml * 0.7.2 * Update GauntletLegendsClient.py * Review Edits * Update World description * Fuzz fixes * Update GauntletLegendsClient.py * Make static data immutable * Update option comparisons since no longer a Choice * Update worlds/gl/Rom.py Co-authored-by: Doug Hoskisson * Update __init__.py * Initial Update commit * Progress * Remove un-used import + Add manifest * Add missing docstring for client command * Progress * pre-v2.0.0-BETA * Updates * Progress * Working Generations * Working IN-Game * v2.0.0-BETA * Create archipelago.json * v2.0.1 * v2.0.1 FINAL * pre v2.0.2 * Delete report.json * Cleanup * pre v2.0.2 * v2.0.2 * PR Ready * Update Items.py * Delete fuzz.py * Update Items.py * Update GauntletLegendsClient.py * Fix scouting disabled locations * Client Updates * v2.0.3 * Increment World Version * Docstring + slot_data updates * Option name update + Remove redundant option * Code Cleanup * Trenches is level 24 * Frequencies * More cleanup and removal of stale code. MISSING BASEPATCH * v2.1.0 * Minor enemy changes * Small fix * Update Rom.py * v2.1.1 * Small fixes * Update basepatch.bsdiff4 * Update GauntletLegendsClient.py * Socket error clarity * Delete settings.local.json * Update GauntletLegendsClient.py * v2.1.2 fixes * Boss portal fix * Small client fix + Item Frequencies * Update archipelago.json * Fix for games playing with max difficulty lower than 4 not sending locations * Update archipelago.json * v2.1.5 * Fix for Chimera's lair mirror shard * Update archipelago.json * Mod Re-Base + Queue limits + Item Receiving fixes * Options cleanup and newlines for some files * Include v2.x features in docs * Make sure players has at least 1 item * v2.1.6 * Update archipelago.json * Review Edits + Client Tweaks --------- Co-authored-by: qwint Co-authored-by: Doug Hoskisson Co-authored-by: Fabian Dill Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> --- README.md | 1 + docs/CODEOWNERS | 3 + inno_setup.iss | 6 + worlds/gl/Data.py | 459 + worlds/gl/GauntletLegendsClient.py | 728 ++ worlds/gl/Items.py | 43 + worlds/gl/Locations.py | 43 + worlds/gl/Options.py | 247 + worlds/gl/Regions.py | 137 + worlds/gl/Rom.py | 613 ++ worlds/gl/Rules.py | 62 + worlds/gl/__init__.py | 346 + worlds/gl/archipelago.json | 6 + worlds/gl/data/basepatch.bsdiff4 | Bin 0 -> 336481 bytes worlds/gl/docs/en_Gauntlet Legends.md | 55 + worlds/gl/docs/setup_en.md | 58 + worlds/gl/json/items.json | 574 + worlds/gl/json/locations.json | 13745 ++++++++++++++++++++++++ 18 files changed, 17126 insertions(+) create mode 100644 worlds/gl/Data.py create mode 100644 worlds/gl/GauntletLegendsClient.py create mode 100644 worlds/gl/Items.py create mode 100644 worlds/gl/Locations.py create mode 100644 worlds/gl/Options.py create mode 100644 worlds/gl/Regions.py create mode 100644 worlds/gl/Rom.py create mode 100644 worlds/gl/Rules.py create mode 100644 worlds/gl/__init__.py create mode 100644 worlds/gl/archipelago.json create mode 100644 worlds/gl/data/basepatch.bsdiff4 create mode 100644 worlds/gl/docs/en_Gauntlet Legends.md create mode 100644 worlds/gl/docs/setup_en.md create mode 100644 worlds/gl/json/items.json create mode 100644 worlds/gl/json/locations.json diff --git a/README.md b/README.md index ffe9650358..dd5ad9ea7d 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,7 @@ Currently, the following games are supported: * Satisfactory * EarthBound * Mega Man 3 +* Gauntlet Legends For setup and instructions check out our [tutorials page](https://archipelago.gg/tutorial/). Downloads can be found at [Releases](https://github.com/ArchipelagoMW/Archipelago/releases), including compiled diff --git a/docs/CODEOWNERS b/docs/CODEOWNERS index 357c4c5a35..febe083502 100644 --- a/docs/CODEOWNERS +++ b/docs/CODEOWNERS @@ -80,6 +80,9 @@ # Final Fantasy Mystic Quest /worlds/ffmq/ @Alchav @wildham0 +# Gauntlet Legends +/worlds/gl/ @jamesbrq + # Heretic /worlds/heretic/ @Daivuk @KScl diff --git a/inno_setup.iss b/inno_setup.iss index 50c400550b..2a31d80d55 100644 --- a/inno_setup.iss +++ b/inno_setup.iss @@ -206,11 +206,17 @@ Root: HKCR; Subkey: "{#MyAppName}ebpatch"; ValueData: "Archi Root: HKCR; Subkey: "{#MyAppName}ebpatch\DefaultIcon"; ValueData: "{app}\ArchipelagoSNIClient.exe,0"; ValueType: string; ValueName: ""; Root: HKCR; Subkey: "{#MyAppName}ebpatch\shell\open\command"; ValueData: """{app}\ArchipelagoSNIClient.exe"" ""%1"""; ValueType: string; ValueName: ""; + Root: HKCR; Subkey: ".apmm3"; ValueData: "{#MyAppName}mm3patch"; Flags: uninsdeletevalue; ValueType: string; ValueName: ""; Root: HKCR; Subkey: "{#MyAppName}mm3patch"; ValueData: "Archipelago Mega Man 3 Patch"; Flags: uninsdeletekey; ValueType: string; ValueName: ""; Root: HKCR; Subkey: "{#MyAppName}mm3patch\DefaultIcon"; ValueData: "{app}\ArchipelagoBizHawkClient.exe,0"; ValueType: string; ValueName: ""; Root: HKCR; Subkey: "{#MyAppName}mm3patch\shell\open\command"; ValueData: """{app}\ArchipelagoBizHawkClient.exe"" ""%1"""; ValueType: string; ValueName: ""; +Root: HKCR; Subkey: ".apgl"; ValueData: "{#MyAppName}glpatch"; Flags: uninsdeletevalue; ValueType: string; ValueName: ""; +Root: HKCR; Subkey: "{#MyAppName}glpatch"; ValueData: "Archipelago Gauntlet Legends Patch"; Flags: uninsdeletekey; ValueType: string; ValueName: ""; +Root: HKCR; Subkey: "{#MyAppName}glpatch\DefaultIcon"; ValueData: "{app}\ArchipelagoLauncher.exe,0"; ValueType: string; ValueName: ""; +Root: HKCR; Subkey: "{#MyAppName}glpatch\shell\open\command"; ValueData: """{app}\ArchipelagoLauncher.exe"" ""%1"""; ValueType: string; ValueName: ""; + Root: HKCR; Subkey: ".archipelago"; ValueData: "{#MyAppName}multidata"; Flags: uninsdeletevalue; ValueType: string; ValueName: ""; Root: HKCR; Subkey: "{#MyAppName}multidata"; ValueData: "Archipelago Server Data"; Flags: uninsdeletekey; ValueType: string; ValueName: ""; Root: HKCR; Subkey: "{#MyAppName}multidata\DefaultIcon"; ValueData: "{app}\ArchipelagoServer.exe,0"; ValueType: string; ValueName: ""; diff --git a/worlds/gl/Data.py b/worlds/gl/Data.py new file mode 100644 index 0000000000..d0985e4484 --- /dev/null +++ b/worlds/gl/Data.py @@ -0,0 +1,459 @@ +from collections.abc import Mapping, Sequence +from types import MappingProxyType +from typing import Final + +from .Locations import LocationData, get_locations_by_tags + +# Item name to ram value conversion +item_ids: Final[Mapping[str, int]] = MappingProxyType({ + "Strength": 0x000002, + "Speed": 0x000003, + "Magic": 0x000004, + "Armour": 0x000005, + "Gold": 0x000006, + "Key": 0x000007, + "XP": 0x000009, + "Level": 0x00000A, + "Class": 0x00000B, + "Max": 0x00000D, + "Compass": 0x000270, + "Lightning Potion": 0x001008, + "Light Potion": 0x002008, + "Acid Potion": 0x003008, + "Fire Potion": 0x004008, + "Acid Breath": 0x800480, + "Lightning Breath": 0x8004F0, + "Fire Breath": 0x800460, + "Light Amulet": 0x400870, + "Acid Amulet": 0x400880, + "Lightning Amulet": 0x4008F0, + "Fire Amulet": 0x400860, + "Lightning Shield": 0x400CF0, + "Fire Shield": 0x400C60, + "Invisibility": 0x4000E0, + "Levitate": 0x400030, + "Speed Boots": 0x400173, + "3-Way Shot": 0x400020, + "5-Way Shot": 0x400160, + "Rapid Fire": 0x400050, + "Reflective Shot": 0x400840, + "Reflective Shield": 0x400C40, + "Super Shot": 0x8008B0, + "Timestop": 0x4000D0, + "Phoenix Familiar": 0x400110, + "Growth": 0x400120, + "Shrink": 0x400130, + "Thunder Hammer": 0x800940, + "Anti-Death Halo": 0x7000A0, + "Invulnerability": 0x7000C0, + "Health": 0x000001, + "Runestone": 0x008210, + "Mirror Shard": 0x008260, + "Ice Axe of Untar": 0x8201C0, + "Flame of Tarkana": 0x8201D0, + "Scimitar of Decapitation": 0x8201E0, + "Marker's Javelin": 0x8201F0, + "Soul Savior": 0x820200, + "Mountain": 0x00804A, + "Castle": 0x00801A, + "Hell": 0x00806A, + "Ice": 0x00807A, + "Town": 0x00808A, + "Temple": 0x00809A, + "Battlefield": 0x0080DA, + "Skorne": 0x0080EA, + "Secret": 0x0080FA, + "Obelisk": 0x00800C, + "Minotaur": 0x0001A1, + "Falconess": 0x0001A2, + "Jackal": 0x0001A3, + "Tigress": 0x0001A4, + "Sumner": 0x0001A5, + "Skorne's Mask": 0x840620, + "Skorne's Horns": 0x840630, + "Skorne's Right Gauntlet": 0x840A40, + "Skorne's Left Gauntlet": 0x840A50, + "Death": 0x0000F0, + "Crossbow Shooter": 0x0000F1, + "Bomb Thrower": 0x0000F2, + "Bomb Runner": 0x0000F3, + "Golem": 0x0000F4, +}) + +# Character names used for slot data +characters: Final[tuple[str, ...]] = ("Minotaur", "Falconess", "Tigress", "Jackal", "Sumner") + +# Base item charge count per pickup +# Some items are bitwise +base_count: Final[Mapping[str, int]] = MappingProxyType({ + "Key": 1, + "Lightning Potion": 1, + "Light Potion": 1, + "Acid Potion": 1, + "Fire Potion": 1, + "Acid Breath": 5, + "Lightning Breath": 5, + "Fire Breath": 5, + "Light Amulet": 30, + "Acid Amulet": 30, + "Lightning Amulet": 30, + "Fire Amulet": 30, + "Lightning Shield": 10, + "Fire Shield": 10, + "Invisibility": 30, + "Levitate": 30, + "Speed Boots": 30, + "3-Way Shot": 30, + "5-Way Shot": 30, + "Rapid Fire": 30, + "Reflective Shot": 30, + "Reflective Shield": 30, + "Super Shot": 3, + "Timestop": 15, + "Phoenix Familiar": 30, + "Growth": 30, + "Shrink": 30, + "Thunder Hammer": 3, + "Anti-Death Halo": 30, + "Invulnerability": 30, + "Fruit": 50, + "Meat": 100, + "Gold": 100, + "Runestone 1": 1, + "Runestone 2": 2, + "Runestone 3": 3, + "Runestone 4": 4, + "Runestone 5": 5, + "Runestone 6": 6, + "Runestone 7": 7, + "Runestone 8": 8, + "Runestone 9": 9, + "Runestone 10": 10, + "Runestone 11": 11, + "Runestone 12": 12, + "Runestone 13": 13, + "Dragon Mirror Shard": 1, + "Chimera Mirror Shard": 3, + "Plague Fiend Mirror Shard": 4, + "Yeti Mirror Shard": 2, + "Valley of Fire Obelisk": 1, + "Dagger Peak Obelisk": 2, + "Cliffs of Desolation Obelisk": 3, + "Poisoned Fields Obelisk": 4, + "Haunted Cemetery Obelisk": 5, + "Castle Courtyard Obelisk": 6, + "Dungeon of Torment Obelisk": 7, + "Ice Axe of Untar": 1, + "Flame of Tarkana": 1, + "Scimitar of Decapitation": 1, + "Marker's Javelin": 1, + "Soul Savior": 1, + "Minotaur": 1, + "Falconess": 1, + "Tigress": 1, + "Jackal": 1, + "Sumner": 1, + "Poison Fruit": -50, + "Skorne's Mask": 50, + "Skorne's Horns": 50, + "Skorne's Left Gauntlet": 100, + "Skorne's Right Gauntlet": 100, + "Portal to Dagger Peak": 1, + "Portal to Cliffs of Desolation": 2, + "Portal to Lost Cave": 3, + "Portal to Volcanic Caverns": 4, + "Portal to Dragon's Lair": 5, + "Portal to Dungeon of Torment": 1, + "Portal to Tower Armory": 2, + "Portal to Castle Treasury": 3, + "Portal to Chimera's Keep": 4, + "Portal to Haunted Cemetery": 1, + "Portal to Venomous Spire": 2, + "Portal to Toxic Air Ship": 3, + "Portal to Vat of the Plague Fiend": 4, + "Portal to Frozen Camp": 1, + "Portal to Crystal Mine": 2, + "Portal to Erupting Fissure": 3, + "Portal to Yeti's Cavern": 4, + "Portal to Fortified Towers": 1, + "Portal to Infernal Fortress": 2, + "Death": 1, + "Crossbow Shooter": 1, + "Bomb Thrower": 1, + "Bomb Runner": 1, + "Golem": 1 +}) + +# (zone_config << 4) + room_config -> location list +level_locations: Final[Mapping[int, Sequence[LocationData]]] = MappingProxyType({ + # Zone 0x00 - Castle + 0x00: get_locations_by_tags("castle_courtyard"), + 0x01: get_locations_by_tags("dungeon_of_torment"), + 0x02: get_locations_by_tags("tower_armory"), + 0x03: get_locations_by_tags("castle_treasury"), + 0x08: get_locations_by_tags("chimeras_keep"), + + # Zone 0x03 - Mountain + 0x30: get_locations_by_tags("valley_of_fire"), + 0x31: get_locations_by_tags("dagger_peak"), + 0x32: get_locations_by_tags("cliffs_of_desolation"), + 0x33: get_locations_by_tags("lost_cave"), + 0x34: get_locations_by_tags("volcanic_cavern"), + 0x38: get_locations_by_tags("dragons_lair"), + + # Zone 0x07 - Town + 0x70: get_locations_by_tags("poisoned_fields"), + 0x71: get_locations_by_tags("haunted_cemetery"), + 0x72: get_locations_by_tags("venomous_spire"), + 0x73: get_locations_by_tags("toxic_air_ship"), + 0x78: get_locations_by_tags("plague_fiend"), + + # Zone 0x05 - Underworld + 0x50: get_locations_by_tags("gates_of_the_underworld"), + + # Zone 0x06 - Ice + 0x60: get_locations_by_tags("arctic_docks"), + 0x61: get_locations_by_tags("frozen_camp"), + 0x62: get_locations_by_tags("crystal_mine"), + 0x63: get_locations_by_tags("erupting_fissure"), + 0x68: get_locations_by_tags("yeti"), + + # Zone 0x0D - Temple + 0xD0: get_locations_by_tags("desecrated_temple"), + 0xD8: get_locations_by_tags("altar_of_skorne"), + + # Zone 0x0C - Battlefield + 0xC0: get_locations_by_tags("battle_trenches"), + 0xC1: get_locations_by_tags("fortified_towers"), + 0xC2: get_locations_by_tags("infernal_fortress"), +}) + +# Compressed level size in ROM +level_size: Final[tuple[int, ...]] = ( + 0x9E0, + 0x5E0, + 0x740, + 0x8A0, + 0x90, + 0x3B0, + 0x5A0, + 0x890, + 0x670, + 0x7D0, + 0x90, + 0xCE0, + 0xA50, + 0xA30, + 0x8E0, + 0x20, + 0x760, + 0xE90, + 0xE40, + 0xE00, + 0xCD0, + 0x20, + 0x3F0, + 0x0, + 0xB00, + 0xA30, + 0xB30 +) + +# Level address in ROM +level_address: Final[tuple[int, ...]] = ( + 0xF939B0, + 0xF958B0, + 0xF945B0, + 0xF94EE0, + 0xF84CC0, + 0xF910B0, + 0xF915B0, + 0xF91D00, + 0xF92710, + 0xF92F40, + 0xF84B70, + 0xF84FA0, + 0xF85EB0, + 0xF86B60, + 0xF877C0, + 0xF880E0, + 0xF901C0, + 0xF884E0, + 0xF89370, + 0xF8A5F0, + 0xF8B760, + 0xF8C7C0, + 0xF90B50, + 0x0, + 0xF8D960, + 0xF8E6E0, + 0xF8F110 +) + +# Level header address in ROM +level_header: Final[tuple[int, ...]] = ( + 0xF9DD9C, + 0xF9E07C, + 0xF9DE54, + 0xF9DF0C, + 0xF9DFC4, + 0xF9E6E0, + 0xF9E798, + 0xF9E850, + 0xF9E908, + 0xF9E9C0, + 0xF9EA78, + 0xF9F004, + 0xF9F0BC, + 0xF9F174, + 0xF9F22C, + 0xF9F2E4, + 0xF9E1C0, + 0xF9E330, + 0xF9E3E4, + 0xF9E498, + 0xF9E54C, + 0xF9E600, + 0xF9DC2C, + 0x0, + 0xF9DA04, + 0xF9DABC, + 0xF9DB74 +) + +# Runestones required to access difficulties +# Used in Rules.py for access calculation +difficulty_lambda: Final[Mapping[int, Sequence[int]]] = MappingProxyType({ + 0x3: (0, 2, 3, 4), + 0x0: (0, 5, 6, 7), + 0x7: (0, 8, 9, 10), + 0x6: (0, 11, 12, 13), + 0xD: (0, 14, 15, 16), + 0xC: (0, 17, 18, 19), + 0x5: (0, 20, 21, 22) +}) + +# Runestones required to access difficulties +# Used in Rules.py for access calculation +difficulty_lambda_no_portal: Final[Mapping[int, Sequence[int]]] = MappingProxyType({ + 0x3: (0, 0, 1, 2), + 0x0: (0, 2, 3, 4), + 0x7: (0, 5, 6, 7), + 0x6: (0, 8, 9, 10), + 0xD: (0, 11, 12, 13), + 0xC: (0, 14, 15, 16), + 0x5: (0, 17, 18, 19) +}) + +# ID's for names said by announcer +sounds: Final[Mapping[int, int]] = MappingProxyType({ + 0: 0x9D, + 1: 0x9E, + 2: 0xA7, + 3: 0xA5, + 5: 0x9F, + 6: 0xA1, + 7: 0xA0, + 8: 0xA2, + 9: 0xA7 +}) + +# ID's for colors said by announcer +colors: Final[Mapping[int, int]] = MappingProxyType({ + 0: 0xA3, + 1: 0xA6, + 2: 0x9C, + 3: 0xA4 +}) + +obelisks: Final[tuple[str, ...]] = ( + "Valley of Fire Obelisk", + "Dagger Peak Obelisk", + "Cliffs of Desolation Obelisk", + "Poisoned Fields Obelisk", + "Haunted Cemetery Obelisk", + "Castle Courtyard Obelisk", + "Dungeon of Torment Obelisk" +) + +mirror_shards: Final[tuple[str, ...]] = ( + "Dragon Mirror Shard", + "Chimera Mirror Shard", + "Yeti Mirror Shard", + "Plague Fiend Mirror Shard" +) + +portals: Final[Mapping[str, str]] = MappingProxyType({ + "Portal to Dagger Peak": "Mountain", + "Portal to Cliffs of Desolation": "Mountain", + "Portal to Lost Cave": "Mountain", + "Portal to Volcanic Caverns": "Mountain", + "Portal to Dragon's Lair": "Mountain", + "Portal to Dungeon of Torment": "Castle", + "Portal to Tower Armory": "Castle", + "Portal to Castle Treasury": "Castle", + "Portal to Chimera's Keep": "Castle", + "Portal to Frozen Camp": "Ice", + "Portal to Crystal Mine": "Ice", + "Portal to Erupting Fissure": "Ice", + "Portal to Yeti's Cavern": "Ice", + "Portal to Haunted Cemetery": "Town", + "Portal to Venomous Spire": "Town", + "Portal to Toxic Air Ship": "Town", + "Portal to Vat of the Plague Fiend": "Town", + "Portal to Fortified Towers": "Battlefield", + "Portal to Infernal Fortress": "Battlefield" +}) + +excluded_portals: Final[Mapping[str, list[str]]] = MappingProxyType({ + "Castle" : ["Portal to Dungeon of Torment", "Portal to Tower Armory", "Portal to Castle Treasury", "Portal to Chimera's Keep"], + "Town" : ["Portal to Haunted Cemetery", "Portal to Venomous Spire", "Portal to Toxic Air Ship", "Portal to Vat of the Plague Fiend"], + "Ice" : ["Portal to Frozen Camp", "Portal to Crystal Mine", "Portal to Erupting Fissure", "Portal to Yeti's Cavern"], + "Battlefield" : ["Portal to Fortified Towers", "Portal to Infernal Fortress"] +}) + +excluded_levels: Final[Mapping[str, list[str]]] = MappingProxyType({ + "Mountain" : ["Valley of Fire", "Dagger Peak", "Cliffs of Desolation", "Lost Cave", "Volcanic Caverns", "Dragon's Lair"], + "Castle" : ["Castle Courtyard" ,"Dungeon of Torment", "Tower Armory", "Castle Treasury", "Chimera's Keep"], + "Ice" : ["Arctic Docks", "Frozen Camp", "Crystal Mine", "Erupting Fissure", "Yeti's Cavern"], + "Town" : ["Poisoned Fields", "Haunted Cemetery", "Venomous Spire", "Toxic Air Ship", "Vat of the Plague Fiend"], + "Battlefield" : ["Battle Trenches", "Fortified Towers", "Infernal Fortress"] +}) + +excluded_obelisks: Final[Mapping[str, list[str]]] = MappingProxyType({ + "Castle" : ["Valley of Fire Obelisk", "Dagger Peak Obelisk", "Cliffs of Desolation Obelisk"], + "Town" : ["Castle Courtyard Obelisk", "Dungeon of Torment Obelisk"], + "Ice" : ["Poisoned Fields Obelisk", "Haunted Cemetery Obelisk"], +}) + +# Map location names to offsets in decompressed boss.bin +boss_location_offsets: Final[Mapping[str, int]] = MappingProxyType({ + "Dragon's Lair - Dragon Mirror Shard": 0x9C08, + "Yeti's Cavern - Yeti Mirror Shard": 0x9C18, + "Chimera's Keep - Chimera Mirror Shard": 0x9C28, + "Vat of the Plague Fiend - Plague Fiend Mirror Shard": 0x9C38, + "Altar of Skorne - Skorne's Mask": 0x9C48, + "Altar of Skorne - Skorne's Horns": 0x9C58, + "Altar of Skorne - Skorne's Left Gauntlet": 0x9C68, + "Altar of Skorne - Skorne's Right Gauntlet": 0x9C78 +}) + +boss_regions: Final[tuple[str, ...]] = ( + "Dragon's Lair", + "Yeti's Cavern", + "Chimera's Keep", + "Vat of the Plague Fiend", + "Altar of Skorne", + "Gates of the Underworld", +) + + +# Item IDs for spawner traps (77780087-77780090) +spawner_trap_ids: Final[tuple[int, ...]] = (77780087, 77780088, 77780089, 77780090) + +player_compass_index: Final[Mapping[int, int]] = MappingProxyType({ + 1: 1, + 2: 0, + 3: 3, + 4: 2 +}) diff --git a/worlds/gl/GauntletLegendsClient.py b/worlds/gl/GauntletLegendsClient.py new file mode 100644 index 0000000000..0d2c66877f --- /dev/null +++ b/worlds/gl/GauntletLegendsClient.py @@ -0,0 +1,728 @@ +import asyncio +import Utils +import settings +import os +import re +import socket +import traceback +import subprocess +import Patch + +from typing import Optional +from BaseClasses import ItemClassification +from CommonClient import ClientCommandProcessor, CommonContext, get_base_parser, gui_enabled, logger, server_loop +from NetUtils import ClientStatus, NetworkItem + +from .Data import ( + base_count, + item_ids, + level_locations, + sounds, + colors, + portals, + spawner_trap_ids, + player_compass_index +) +from .Items import ItemData, items_by_id + +READ = "READ_CORE_RAM" +WRITE = "WRITE_CORE_RAM" +PLAYER_CLASS = 0xFD30F +PLAYER_COLOR = 0xFD30E +SOUND_ADDRESS = 0xAE740 +SOUND_START = 0xEEFC +PLAYER_KILL = 0xFD300 +PLAYER_MENU = 0x9D3C +BOSS_GOAL = 0x45D34 +BOSS_GOAL_BACKUP = 0x45D3C +LOCATIONS_BASE_ADDRESS = 0x64A68 +ZONE_ID = 0x6CA58 +LEVEL_ID = 0x6CA5C + +MOD_ITEM_ID = 0x3FC800 +MOD_QUANTITY = 0x3FC804 +MOD_PLAYER_ID = 0x3FC808 +MOD_OBELISK_QUANTITY = 0x3FC7E4 +MOD_BOSS_GOAL = 0x3FC7E5 +MOD_PLAYERS_LIST = 0x3FC7D0 +MOD_COMPASS_COUNT = 0x3FC7D4 + +GOAL_POLLS = 5 + + +class RetroSocket: + def __init__(self): + self.host = "localhost" + self.port = 55355 + self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + self.socket.setblocking(False) + + def send(self, message: str): + try: + self.socket.sendto(message.encode(), (self.host, self.port)) + except Exception as e: + raise Exception("An error occurred while sending a message.") + + async def read(self, message: str) -> Optional[bytes]: + self.send(message) + try: + response = await asyncio.wait_for(asyncio.get_event_loop().sock_recv(self.socket, 30000), 1.0) + data = response.decode().strip("\n").split(" ") + b = b"" + for s in data[2:]: + if "-1" in s: + raise Exception("Client tried to read from an invalid address or ROM is not open...") + b += bytes.fromhex(s) + return b + except asyncio.TimeoutError: + logger.error("Timeout while waiting for socket response...") + await asyncio.sleep(2) + return None + except ConnectionResetError: + logger.error("The connection was reset...") + await asyncio.sleep(2) + return None + except OSError as e: + logger.error(f"Socket error during read: {e}") + await asyncio.sleep(2) + return None + + async def status(self) -> str: + message = "GET_STATUS" + self.send(message) + try: + data = await asyncio.wait_for(asyncio.get_event_loop().sock_recv(self.socket, 4096), 1.0) + return data.decode() + except (asyncio.TimeoutError, ConnectionResetError, OSError): + pass + + +def message_format(arg: str, params: str) -> str: + return f"{arg} {params}" + + +def param_format(adr: int, arr: bytes) -> str: + return " ".join([hex(adr)] + [f"0x{byte:02X}" for byte in arr]) + + +class GauntletLegendsCommandProcessor(ClientCommandProcessor): + def __init__(self, ctx: CommonContext): + super().__init__(ctx) + + def _cmd_deathlink_toggle(self): + """Toggle Deathlink on or off""" + self.ctx.deathlink_enabled = not self.ctx.deathlink_enabled + self.ctx.update_death_link(self.ctx.deathlink_enabled) + logger.info(f"Deathlink {('Enabled.' if self.ctx.deathlink_enabled else 'Disabled.')}") + + +class GauntletLegendsContext(CommonContext): + command_processor = GauntletLegendsCommandProcessor + game = "Gauntlet Legends" + items_handling = 0b101 + + def __init__(self, server_address, password): + super().__init__(server_address, password) + self.useful: list[NetworkItem] = [] + self.deathlink_pending: bool = False + self.deathlink_enabled: bool = False + self.deathlink_triggered: bool = False + self.gl_sync_task = None + self.glslotdata = None + self.socket = RetroSocket() + self.rom_loaded: bool = False + self.locations_checked: list[int] = [] + self.retro_connected: bool = False + self.scouted: bool = False + self.obelisks: list[NetworkItem] = [] + self.item_locations: list[int] = [] + self.obelisk_locations: list[int] = [] + self.chest_locations: list[int] = [] + self.spawner_locations: list[int] = [] + self.item_address: int = 0 + self.chest_address: int = 0 + self.spawner_address: int = 0 + self.vanilla_spawner_count: int = 0 + self.zone: int = 0 + self.level: int = 0 + self.current_zone: int = -1 + self.current_level: int = -1 + self.level_id: int = 0 + self.location_scouts: list[NetworkItem] = [] + self.players: list[int] = [] + self.queued_traps: list[tuple[str, int, bool]] = [] + self.spawned_traps: int = 0 + self.item_ram_indices: dict[int, int] = {} + self.chest_ram_indices: dict[int, int] = {} + self.goal_streak: int = 0 + + def on_deathlink(self, data: dict): + super().on_deathlink(data) + self.deathlink_pending = True + + async def update_stage(self): + self.zone = await self._read_ram_int(ZONE_ID, 1) + self.level = await self._read_ram_int(LEVEL_ID, 1) + + async def check_goal(self) -> bool: + if self.glslotdata is None: + return False + if self.glslotdata["goal"] == 1: + goal = await self._read_ram_int(BOSS_GOAL, 4) + backup = await self._read_ram_int(BOSS_GOAL_BACKUP, 4) + return goal == 0xA or backup == 0xA + elif self.glslotdata["goal"] == 2: + goal = await self._read_ram_int(MOD_BOSS_GOAL, 1, True) + if goal >= self.glslotdata["boss_goal_count"]: + self.goal_streak += 1 + else: + self.goal_streak = 0 + return self.goal_streak >= GOAL_POLLS + + def _normalize_item_name(self, name: str) -> str: + if "Runestone" in name: + return "Runestone" + if "Fruit" in name or "Meat" in name: + return "Health" + if "Obelisk" in name: + return "Obelisk" + if "Mirror" in name: + return "Mirror Shard" + if portals.get(name, False): + return portals[name] + return name + + async def update_item(self, name: str, count: int, player: int = None, infinite_count: bool = False): + name = self._normalize_item_name(name) + await self._write_ram(MOD_ITEM_ID, + int.to_bytes((item_ids[name] if not infinite_count else item_ids[name] & 0xFFFF), 4, + "little")) + await self._write_ram(MOD_QUANTITY, int.to_bytes(count, 4, "little", signed=True)) + await self._write_ram(MOD_PLAYER_ID, int.to_bytes(player, 4, "little")) + + async def server_auth(self, password_requested: bool = False): + if password_requested and not self.password: + await super(GauntletLegendsContext, self).server_auth(password_requested) + await self.get_username() + await self.send_connect() + + def on_package(self, cmd: str, args: dict): + if cmd in {"Connected"}: + self.glslotdata = args["slot_data"] + self.deathlink_enabled = bool(self.glslotdata["death_link"]) + if self.deathlink_enabled: + Utils.async_start(self.update_death_link(self.deathlink_enabled)) + elif cmd == "LocationInfo": + self.location_scouts = args["locations"] + elif cmd == "RoomInfo": + self.seed_name = args["seed_name"] + + # Update inventory based on items received from server + # Also adds starting items based on a few yaml options + async def handle_items(self): + self.players = list(await self._read_ram(MOD_PLAYERS_LIST, 4)) + self.players = [player for player in self.players if player != 0] + if not self.players: + return + for player in self.players: + active = await self._read_ram_int(PLAYER_KILL + (0x1F0 * (player - 1)), 1) + if active != 0x4: + continue + compass = await self._read_ram_int(MOD_COMPASS_COUNT + (2 * player_compass_index[player]), 2) + if compass - 1 < len(self.items_received): + for index in range(compass - 1, len(self.items_received)): + active = await self._read_ram_int(PLAYER_KILL + (0x1F0 * (player - 1)), 1) + if active != 0x4: + break + item = self.items_received[index].item + if player != self.players[0] and item in spawner_trap_ids: + continue + item_name = items_by_id[item].item_name + if self.current_zone in (0x8, 0xE) and item in spawner_trap_ids: + if len([trap for trap in self.queued_traps if trap[1] == index]) < 1: + self.queued_traps.append((item_name, index, False)) + await self.give_item(item_name, player) + await self.update_item("Compass", 1, player) + + async def give_item(self, item_name: str, player: int): + await self.wait_for_mod_clear() + await asyncio.sleep(0.02) + await self.update_item(item_name, base_count[item_name], player) + await self.wait_for_mod_clear() + await asyncio.sleep(0.02) + + async def wait_for_mod_clear(self, poll_interval: float = 0.05): + while True: + mod_data = await self.socket.read(message_format(READ, f"0x{MOD_ITEM_ID:x} 12")) + if mod_data and all(byte == 0 for byte in mod_data): + return True + await asyncio.sleep(poll_interval) + + async def _read_ram(self, address: int, size: int) -> bytes: + return await self.socket.read(message_format(READ, f"0x{address:x} {size}")) + + async def _read_ram_int(self, address: int, size: int, signed: bool = False) -> int: + data = await self._read_ram(address, size) + return int.from_bytes(data, "little", signed=signed) if data else 0 + + async def _write_ram(self, address: int, data: bytes): + self.socket.send(message_format(WRITE, param_format(address, data))) + + async def dead(self) -> bool: + val = await self._read_ram_int(PLAYER_KILL + (0x1F0 * (self.players[0] - 1)), 1) + return (val & 0xF) == 0x8 + + async def dead_or_menu(self) -> bool: + val = await self._read_ram_int(PLAYER_KILL + (0x1F0 * (self.players[0] - 1)), 1) + return (val & 0xF) == 0x8 or (val & 0xF) == 0x1 + + async def get_seed_name(self) -> str: + seed_name = await self._read_ram(0x3FC7F0, 0x10) + return seed_name.decode("utf-8").strip() + + async def scout_locations(self, ctx: "GauntletLegendsContext") -> None: + try: + self.location_scouts = [] + self.obelisk_locations = [] + self.item_locations = [] + self.chest_locations = [] + self.spawner_locations = [] + self.useful = [] + self.obelisks = [] + self.vanilla_spawner_count = 0 + self.item_ram_indices = {} + self.chest_ram_indices = {} + + raw_locations = [location for location in level_locations.get(self.level_id, []) if + "Mirror" not in location.name and "Skorne" not in location.name] + scoutable_location_ids = [location.id for location in raw_locations if + location.id in ctx.checked_locations or location.id in self.missing_locations] + + # Scout locations if any exist + if raw_locations: + await ctx.send_msgs([{ + "cmd": "LocationScouts", + "locations": scoutable_location_ids, + "create_as_hint": 0, + }]) + while not self.location_scouts: + await asyncio.sleep(0.1) + + # Build lookup for scouted items by location + scouted_by_location = {item.location: item for item in self.location_scouts} + + item_slots: list[int] = [] + chest_slots: list[int] = [] + appended_items: list[int] = [] + + for loc in raw_locations: + is_obelisk_loc = "Obelisk" in loc.name + is_chest_loc = (not is_obelisk_loc) and ( + "Chest" in loc.name + or ("Barrel" in loc.name and "Barrel of Gold" not in loc.name) + ) + + scouted = scouted_by_location.get(loc.id) + + if not scouted: + if is_obelisk_loc: + pass + elif is_chest_loc: + chest_slots.append(loc.id) + else: + item_slots.append(loc.id) + continue + + item_id = scouted.item + item_player = scouted.player + item_data = items_by_id.get(item_id, ItemData()) + + if is_obelisk_loc: + if "Obelisk" in item_data.item_name and item_player == self.slot: + + pass + else: + + appended_items.append(loc.id) + continue + + if item_player == self.slot and item_id in spawner_trap_ids: + continue + + if item_player != self.slot: + + if is_chest_loc: + chest_slots.append(loc.id) + else: + item_slots.append(loc.id) + continue + + if "Obelisk" in item_data.item_name: + continue + + if (item_data.progression in (ItemClassification.useful, ItemClassification.progression) + and is_chest_loc): + appended_items.append(loc.id) + continue + + if is_chest_loc: + chest_slots.append(loc.id) + else: + item_slots.append(loc.id) + + final_item_order = item_slots + appended_items + + self.item_ram_indices = { + loc_id: idx for idx, loc_id in enumerate(final_item_order) + } + self.chest_ram_indices = { + loc_id: idx for idx, loc_id in enumerate(chest_slots) + } + + # Categorize scouted locations - mirror ROM's patch_items logic exactly + for loc in raw_locations: + scouted_item = scouted_by_location.get(loc.id) + if not scouted_item: + continue + + item_id = scouted_item.item + item_player = scouted_item.player + item_data = items_by_id.get(item_id, ItemData()) + is_chest = "Chest" in loc.name or ("Barrel" in loc.name and "Barrel of Gold" not in loc.name) + + # Check obelisk locations + if "Obelisk" in loc.name: + if "Obelisk" in item_data.item_name and item_player == self.slot: + self.obelisk_locations.append(loc.id) + self.obelisks.append(scouted_item) + else: + self.item_locations.append(loc.id) + continue + + # Check spawner (ROM: item[1] == player and item[0] in SPAWNER_TRAP_IDS) + if item_player == self.slot and item_id in spawner_trap_ids: + self.spawner_locations.append(loc.id) + continue + + # Check non-local player (ROM: item[1] != player) - stays as item/chest + if item_player != self.slot: + if is_chest: + self.chest_locations.append(loc.id) + else: + self.item_locations.append(loc.id) + continue + + # Check obelisk item at non-obelisk location (ROM: "Obelisk" in item_name) + if "Obelisk" in item_data.item_name: + self.obelisk_locations.append(loc.id) + self.obelisks.append(scouted_item) + continue + + # Check useful/progression chest -> item conversion + if item_data.progression in (ItemClassification.useful, ItemClassification.progression) and is_chest: + self.item_locations.append(loc.id) + self.useful.append(scouted_item) + continue + + # Regular item/chest + if is_chest: + self.chest_locations.append(loc.id) + else: + self.item_locations.append(loc.id) + + self.scouted = True + except Exception: + logger.error(traceback.format_exc()) + + async def location_loop(self) -> list[int]: + if self.current_zone == -1: + self.current_zone = self.zone + self.current_level = self.level + self.level_id = (self.current_zone << 4) + self.current_level + + zone_or_level_changed = self.zone != self.current_zone or self.level != self.current_level + if zone_or_level_changed: + if self.current_level & 0x8 == 0x8 and self.level_id != 0x58 and not await self.dead_or_menu(): + await self.check_locations([loc.id for loc in level_locations[self.level_id] + if "Mirror Shard" in loc.name or "Skorne" in loc.name]) + self.current_zone = self.zone + self.current_level = self.level + self.level_id = (self.current_zone << 4) + self.current_level + self.scouted = False + self.spawned_traps = 0 + self.goal_streak = 0 + await asyncio.sleep(2) + + if self.current_zone in (0x8, 0xE): + return [] + + if not self.scouted: + await self.scout_locations(self) + + active = await self._read_ram_int(PLAYER_KILL + (0x1F0 * (self.players[0] - 1)), 1) + if active != 0x4: + return [] + + if len(self.queued_traps) > 0 and self.spawned_traps == 0: + for i, trap in enumerate(self.queued_traps): + trap_name, index, given = trap + if not given: + self.spawned_traps += 1 + await self.give_item(trap_name, self.players[0]) + self.queued_traps[i] = (trap_name, index, True) + if self.spawned_traps >= 5: + break + + locations_address = await self._read_ram_int(LOCATIONS_BASE_ADDRESS, 4) & 0xFFFFFF + self.item_address = await self._read_ram_int(locations_address + 0x14, 4) + self.spawner_address = await self._read_ram_int(locations_address + 0x1C, 4) + self.chest_address = await self._read_ram_int(locations_address + 0x30, 4) + + # Read vanilla spawner count from level header (2 bytes at offset 0x28) + spawner_count_data = await self._read_ram(locations_address + 0x6, 2) + if spawner_count_data and not self.vanilla_spawner_count: + total_spawner_count = int.from_bytes(spawner_count_data, "little") + # Vanilla count is total minus the ones we added + self.vanilla_spawner_count = total_spawner_count - len(self.spawner_locations) + + if 0x7FFF0BAD in (self.item_address, self.chest_address, self.spawner_address): + return [] + + self.item_address &= 0xFFFFFF + self.spawner_address &= 0xFFFFFF + self.chest_address &= 0xFFFFFF + + acquired = [] + + max_item_idx = max((self.item_ram_indices[loc_id] for loc_id in self.item_locations), default=-1) + item_section = await self._read_ram(self.item_address, (max_item_idx + 1) * 0x18) if max_item_idx >= 0 else b"" + for loc_id in self.item_locations: + offset = self.item_ram_indices[loc_id] * 0x18 + active_byte, state = item_section[offset + 0x2], item_section[offset + 0x3] + if state < 0x7F and active_byte == 1 and state == 0: + acquired.append(loc_id) + + obelisk = await self._read_ram_int(MOD_OBELISK_QUANTITY, 1) + for j, loc_id in enumerate(self.obelisk_locations): + bit = base_count[items_by_id[self.obelisks[j].item].item_name] - 1 + if obelisk & (1 << bit): + acquired.append(loc_id) + + max_chest_idx = max((self.chest_ram_indices[loc_id] for loc_id in self.chest_locations), default=-1) + chest_section = await self._read_ram(self.chest_address, (max_chest_idx + 1) * 0x18) if max_chest_idx >= 0 else b"" + for loc_id in self.chest_locations: + offset = self.chest_ram_indices[loc_id] * 0x18 + active_byte, state = chest_section[offset + 0x2], chest_section[offset + 0x3] + if state < 0x7F and active_byte == 1 and state != 1: + acquired.append(loc_id) + + # Check spawner locations - these are added after vanilla spawners + # Read spawners starting after vanilla_spawner_count + if self.spawner_locations: + spawner_start = self.spawner_address + (self.vanilla_spawner_count * 0x1C) + spawner_section = await self._read_ram(spawner_start, len(self.spawner_locations) * 0x1C) + for i, loc_id in enumerate(self.spawner_locations): + offset = i * 0x1C + active_byte, hit = spawner_section[offset + 0x2], spawner_section[offset + 0x1A] + if active_byte == 1 and hit == 1: + acquired.append(loc_id) + + await self.update_stage() + if self.zone != self.current_zone or self.level != self.current_level: + return [] + return [loc_id for loc_id in acquired if loc_id not in self.checked_locations] + + async def die(self): + """Trigger deathlink death with character-specific death sound.""" + self.deathlink_triggered = True + for player in self.players: + char = await self._read_ram_int(PLAYER_CLASS + (0x1F0 * (player - 1)), 1) + color = await self._read_ram_int(PLAYER_COLOR + (0x1F0 * (player - 1)), 1) + + # Play death sound + sound_data = (int.to_bytes(colors[color], 4, "little") + + int.to_bytes(sounds[char], 4, "little") + + int.to_bytes(0xBB, 4, "little")) + await self._write_ram(SOUND_ADDRESS, sound_data) + await self._write_ram(SOUND_START, int.to_bytes(0xE00AE718, 4, "little")) + await asyncio.sleep(2) + + # Stop sound and kill player + await self._write_ram(SOUND_START, int.to_bytes(0x0, 4, "little")) + await self._write_ram(PLAYER_KILL + (0x1F0 * (player - 1)), int.to_bytes(0x7, 1, "little")) + + def make_gui(self): + ui = super().make_gui() + ui.base_title = "Archipelago Gauntlet Legends Client" + return ui + + +async def gl_sync_task(ctx: GauntletLegendsContext): + logger.info("Starting N64 connector...") + while not ctx.exit_event.is_set(): + try: + if not ctx.retro_connected: + logger.info("Attempting to connect to Retroarch...") + status = await ctx.socket.status() + ctx.retro_connected = True + ctx.rom_loaded = "CONTENTLESS" not in status + logger.info("Connected to Retroarch") + continue + + if not ctx.rom_loaded: + status = await ctx.socket.status() + if "CONTENTLESS" in status: + logger.info("No ROM loaded, waiting...") + await asyncio.sleep(3) + continue + logger.info("ROM Loaded") + ctx.rom_loaded = True + + if not ctx.auth: + await asyncio.sleep(1) + continue + + seed_name = await ctx.get_seed_name() + if seed_name != ctx.seed_name[0:16]: + logger.info(f"ROM seed does not match room seed ({seed_name} != {ctx.seed_name}), " + f"please load the correct ROM.") + await ctx.disconnect() + continue + + await ctx.update_stage() + if ctx.zone == 0x10: + continue + + await ctx.handle_items() + checking = await ctx.location_loop() + + menu = await ctx._read_ram_int(PLAYER_MENU, 4) + alive = False + if ctx.deathlink_pending and ctx.deathlink_enabled and menu == 1: + ctx.deathlink_pending = False + ctx.deathlink_triggered = True + await ctx.die() + elif len(ctx.players) > 0: + player_state = await ctx._read_ram_int(PLAYER_KILL + (0x1F0 * (ctx.players[0] - 1)), 1) + dead = (player_state & 0xF) == 0x8 + alive = (player_state & 0xF) == 0x4 + if dead and ctx.deathlink_enabled and not ctx.deathlink_triggered: + await ctx.send_death(f"{ctx.player_names[ctx.slot]} ran out of food.") + ctx.deathlink_triggered = True + + if alive: + ctx.deathlink_triggered = False + + if checking: + ctx.locations_checked += checking + await ctx.check_locations(checking) + + # Only trust the goal check when the player is alive + if alive: + goal = await ctx.check_goal() + if not ctx.finished_game and goal: + await ctx.send_msgs([{"cmd": "StatusUpdate", "status": ClientStatus.CLIENT_GOAL}]) + ctx.finished_game = True + else: + ctx.goal_streak = 0 + + except Exception as e: + logger.error(f"Error: {e}\n{traceback.format_exc()}") + ctx.socket = RetroSocket() + ctx.retro_connected = False + await asyncio.sleep(2) + + +_original_opt_content: dict[str, str | None] = {} + + +async def _patch_opt(): + """Create RetroArch core options override for CountPerOp=1.""" + retroarch_path = settings.get_settings().gl_options.retroarch_path + override_dir = os.path.join(retroarch_path, "config", "Mupen64Plus-Next") + os.makedirs(override_dir, exist_ok=True) + override_path = os.path.join(override_dir, "Mupen64Plus-Next.opt") + target_setting = 'mupen64plus-CountPerOp = "1"' + + if override_path not in _original_opt_content: + _original_opt_content[override_path] = open(override_path).read() if os.path.exists(override_path) else None + + content = _original_opt_content[override_path] or "" + if target_setting in content: + return + + if "mupen64plus-CountPerOp" in content: + content = re.sub(r'mupen64plus-CountPerOp\s*=\s*"[^"]*"', target_setting, content) + else: + content = content.rstrip("\n") + f"\n{target_setting}\n" if content else f"{target_setting}\n" + + with open(override_path, "w") as f: + f.write(content) + + +def _restore_opt_files(): + for path, original in _original_opt_content.items(): + try: + if original is None and os.path.exists(path): + os.remove(path) + elif original is not None: + with open(path, "w") as f: + f.write(original) + except Exception as e: + logger.error(f"Failed to restore {path}: {e}") + _original_opt_content.clear() + + +async def _launch_retroarch(rom_path: str): + retroarch_path = settings.get_settings().gl_options.retroarch_path + retroarch_exe = os.path.join(retroarch_path, "retroarch.exe") + core_path = os.path.join(retroarch_path, "cores", "mupen64plus_next_libretro.dll") + + if not os.path.exists(retroarch_exe): + logger.error(f"RetroArch not found at: {retroarch_exe}") + return + + if not os.path.exists(core_path): + logger.error(f"Mupen64Plus core not found at: {core_path}") + return + + subprocess.Popen([retroarch_exe, "-L", core_path, rom_path]) + logger.info(f"Launched RetroArch with ROM: {rom_path}") + + # Wait for RetroArch to start up + await asyncio.sleep(2) + + +async def _patch_and_launch_game(patch_file: str): + metadata, output_file = Patch.create_rom_file(patch_file) + await _patch_opt() + await _launch_retroarch(output_file) + + +def launch(*args): + async def main(args): + if args.patch_file: + await asyncio.create_task(_patch_and_launch_game(args.patch_file)) + ctx = GauntletLegendsContext(args.connect, args.password) + ctx.server_task = asyncio.create_task(server_loop(ctx), name="ServerLoop") + if gui_enabled: + ctx.run_gui() + ctx.run_cli() + ctx.gl_sync_task = asyncio.create_task(gl_sync_task(ctx), name="Gauntlet Legends Sync Task") + + await ctx.exit_event.wait() + ctx.server_address = None + + await ctx.shutdown() + + _restore_opt_files() + + parser = get_base_parser() + parser.add_argument("patch_file", default="", type=str, nargs="?", help="Path to an APGL file") + args = parser.parse_args(args) + + import colorama + + colorama.just_fix_windows_console() + asyncio.run(main(args)) + colorama.deinit() diff --git a/worlds/gl/Items.py b/worlds/gl/Items.py new file mode 100644 index 0000000000..0bfa14e815 --- /dev/null +++ b/worlds/gl/Items.py @@ -0,0 +1,43 @@ +from collections.abc import Mapping +from types import MappingProxyType +from typing import Final + +from BaseClasses import Item, ItemClassification +from .Data import portals, obelisks, mirror_shards + + +class ItemData: + id: int + item_name: str + progression: ItemClassification + rom_id: int + frequency: int + + def __init__(self, id: int | None = 0, item_name: str = "", progression: int = 0, rom_id: str = "0x0", frequency: int = 1): + self.id = id + self.item_name = item_name + self.progression = ItemClassification(progression) + self.rom_id = int(rom_id, 16) + self.frequency = frequency + + + +class GLItem(Item): + game: str = "Gauntlet Legends" + +def import_items() -> tuple[ItemData, ...]: + import orjson + import pkgutil + + return tuple(ItemData(**item) for item in orjson.loads(pkgutil.get_data(__name__, "json/items.json").decode("utf-8"))) + +item_list: Final[tuple[ItemData, ...]] = import_items() +item_table: Final[Mapping[str, ItemData]] = MappingProxyType({item.item_name: item for item in item_list}) +items_by_id: Final[Mapping[int, ItemData]] = MappingProxyType({item.id: item for item in item_list}) + +gauntlet_item_name_groups = { + "Runestone": [f"Runestone {i}" for i in range(1, 14)], + "Portal": portals.keys(), + "Obelisk": obelisks, + "Mirror Shard": mirror_shards +} diff --git a/worlds/gl/Locations.py b/worlds/gl/Locations.py new file mode 100644 index 0000000000..900f452b1a --- /dev/null +++ b/worlds/gl/Locations.py @@ -0,0 +1,43 @@ +from typing import Final, List, Dict + +from BaseClasses import Location + + +class LocationData: + name: str = "" + id: int = 0 + difficulty: int = 0 + tags: Final[tuple[str, ...]] + + def __init__(self, name, id, difficulty, tags=None): + if tags is None: + tags = [] + self.name = name + self.id = id + self.difficulty = difficulty + self.tags = tags + + +class GLLocation(Location): + game: str = "Gauntlet Legends" + +def import_locations() -> List[LocationData]: + import orjson + import pkgutil + + return [LocationData(**loc) for loc in orjson.loads(pkgutil.get_data(__name__, "json/locations.json").decode("utf-8"))] + + +def get_locations_by_tags(tags: str | List[str]) -> List[LocationData]: + if isinstance(tags, str): + tags = [tags] + return [loc for loc in all_locations if any(tag in loc.tags for tag in tags)] + + +all_locations: List[LocationData] = import_locations() + +location_table: Dict[str, int] = {locData.name: locData.id for locData in all_locations} + +location_id_to_name: Dict[int, str] = {locData.id: locData.name for locData in all_locations if locData.id is not None} + +locationName_to_data: Dict[str, LocationData] = {locData.name: locData for locData in all_locations} diff --git a/worlds/gl/Options.py b/worlds/gl/Options.py new file mode 100644 index 0000000000..a9f36b54f5 --- /dev/null +++ b/worlds/gl/Options.py @@ -0,0 +1,247 @@ +from dataclasses import dataclass + +from Options import Choice, PerGameCommonOptions, StartInventoryPool, Toggle, Range, DefaultOnToggle, \ + OptionSet, DeathLink + + +class IncludedAreas(OptionSet): + """ + Select which areas will have their locations included in the randomization pool. + Each selected area's stages and checks will be accessible in your world. + Unselected areas will not be included in the location pool. + Mountain is always available and cannot be excluded. + """ + display_name = "Included Areas" + valid_keys = ["Castle", "Town", "Ice", "Battlefield"] + default = ["Castle", "Town", "Ice", "Battlefield"] + + +class ChestBarrels(Choice): + """ + Choose how you want Chests and Barrels to be randomized. + None: Neither Chests nor Barrels will be added as locations. + All Chests: Chests will be added as locations, Barrels will not. + All Barrels: Barrels will be added as locations, Chests will not. + All Both: Both Chests and Barrels will be added as locations. + """ + display_name = "Chests and Barrels" + option_none = 0 + option_all_chests = 1 + option_all_barrels = 2 + option_all_both = 3 + default = 3 + + +class Obelisks(DefaultOnToggle): + """ + Obelisks will be added to the random pool as items. + Activating all the obelisks in an area will unlock access to the next. + Disabling this will lock obelisks in their original locations. + """ + + display_name = "Obelisks" + + +class MirrorShards(DefaultOnToggle): + """ + Mirror Shards will be added to the random pool as items. + Collecting all four mirror shards will unlock access to the Desecrated Temple. + Disabling this will lock mirror shards in their original locations. + """ + + display_name = "Mirror Shards" + + +class Portals(DefaultOnToggle): + """ + Level portals will be added to the random pool as items. + Getting a portal item will unlock access to that level. + Levels will no longer unlock in succession when clearing the previous level. + """ + display_name = "Portals" + + +class Goal(Choice): + """ + Choose your objective required to goal. + Defeat Skorne: Collect all 13 stones to unlock and defeat Skorne in the Underworld. + Defeat X Bosses: Defeat X number of bosses to goal. + """ + + display_name = "Goal" + option_defeat_skorne = 1 + option_defeat_x_bosses = 2 + default = 1 + + +class BossGoalCount(Range): + """ + Choose how many bosses you must defeat to goal if 'Defeat X Bosses' is selected as your goal. + This includes both Temple and Underworld Skorne. + """ + + display_name = "Boss Goal Count" + range_start = 1 + range_end = 6 + default = 4 + + +class MaxDifficulty(Range): + """ + Select the difficulty value you want to be the maximum. + This will affect the amount of checks in each level as well as enemy strength and number of spawners. + """ + + display_name = "Max Difficulty Value" + range_start = 1 + range_end = 4 + default = 4 + + +class InstantMaxDifficulty(DefaultOnToggle): + """ + All stages will load with their max difficulty on the first run through. + By default, stages increase in difficulty by 1 at a set interval that changes per zone. + The starting level for each zone increases gradually as you would progress in vanilla. + """ + + display_name = "Instant Max Difficulty" + + +class PermaSpeed(Toggle): + """ + You will be given speed boots with a permanent duration. + """ + + display_name = "Permanent Speed Boots" + + +class InfiniteKeys(Toggle): + """ + You will be given more keys than you could ever use. + """ + + display_name = "Infinite Keys" + + +class IncludedTraps(OptionSet): + """ + Choose what traps will be put in the item pool. + Valid Keys: Death, Poison Fruit, Crossbow Shooter, Bomb Thrower, Bomb Runner, Golem + """ + + display_name = "Included Traps" + valid_keys = ["Death", "Poison Fruit", "Crossbow Shooter", "Bomb Thrower", "Bomb Runner", "Golem"] + default = ["Death", "Poison Fruit", "Crossbow Shooter", "Bomb Thrower", "Bomb Runner", "Golem"] + + +class TrapsFrequency(Range): + """ + Choose the frequency of traps added into the item pool + This range is a percentage of all items in the pool that will be traps. + """ + + display_name = "Trap Frequency" + range_start = 0 + range_end = 90 + default = 10 + + +class LocalFillerFrequency(Range): + """ + Choose the frequency of filler items that will be placed locally in your world. + This range is a percentage of how many filler items will be locally placed before generation occurs. + """ + + display_name = "Local Filler Frequency" + range_start = 0 + range_end = 90 + default = 50 + + +class UnlockCharacterOne(Choice): + """ + Unlock a secret character for Player 1 from the start. + None: No secret characters will be unlocked. + Chosen Character: The selected character will be available from a new save. + """ + + option_none = 0 + option_minotaur = 1 + option_falconess = 2 + option_jackal = 3 + option_tigress = 4 + option_sumner = 5 + default = 0 + + +class UnlockCharacterTwo(Choice): + """ + Unlock a secret character for Player 2 from the start. + None: No secret characters will be unlocked. + Chosen Character: The selected character will be available from a new save. + """ + + option_none = 0 + option_minotaur = 1 + option_falconess = 2 + option_jackal = 3 + option_tigress = 4 + option_sumner = 5 + default = 0 + + +class UnlockCharacterThree(Choice): + """ + Unlock a secret character for Player 3 from the start. + None: No secret characters will be unlocked. + Chosen Character: The selected character will be available from a new save. + """ + + option_none = 0 + option_minotaur = 1 + option_falconess = 2 + option_jackal = 3 + option_tigress = 4 + option_sumner = 5 + default = 0 + + +class UnlockCharacterFour(Choice): + """ + Unlock a secret character for Player 4 from the start. + None: No secret characters will be unlocked. + Chosen Character: The selected character will be available from a new save. + """ + + option_none = 0 + option_minotaur = 1 + option_falconess = 2 + option_jackal = 3 + option_tigress = 4 + option_sumner = 5 + default = 0 + + +@dataclass +class GLOptions(PerGameCommonOptions): + death_link: DeathLink + start_inventory_from_pool: StartInventoryPool + included_areas: IncludedAreas + chests_barrels: ChestBarrels + obelisks: Obelisks + mirror_shards: MirrorShards + portals: Portals + goal: Goal + boss_goal_count: BossGoalCount + max_difficulty: MaxDifficulty + instant_max: InstantMaxDifficulty + infinite_keys: InfiniteKeys + permanent_speed: PermaSpeed + included_traps: IncludedTraps + traps_frequency: TrapsFrequency + local_filler_frequency: LocalFillerFrequency + unlock_character_one: UnlockCharacterOne + unlock_character_two: UnlockCharacterTwo + unlock_character_three: UnlockCharacterThree + unlock_character_four: UnlockCharacterFour diff --git a/worlds/gl/Regions.py b/worlds/gl/Regions.py new file mode 100644 index 0000000000..37adec1168 --- /dev/null +++ b/worlds/gl/Regions.py @@ -0,0 +1,137 @@ +import typing +from typing import Optional, Callable + +from BaseClasses import Region +from .Data import excluded_levels + +from .Locations import GLLocation, LocationData, get_locations_by_tags + +if typing.TYPE_CHECKING: + from . import GauntletLegendsWorld + + +def create_regions(world: "GauntletLegendsWorld"): + world.multiworld.regions.append(Region("Menu", world.player, world.multiworld)) + + regions_dict = get_regions_dict() + for name, locations in regions_dict.items(): + if name not in [level for region, levels in excluded_levels.items() if region in world.excluded_regions for level in levels]: + create_region(world, name, locations) + else: + world.disabled_locations.update([loc.name for loc in locations if loc.name not in world.disabled_locations]) + +def get_regions_dict() -> dict[str, list[LocationData]]: + """ + Returns a dictionary mapping region names to their corresponding location data lists. + """ + return { + "Valley of Fire": get_locations_by_tags("valley_of_fire"), + "Dagger Peak": get_locations_by_tags("dagger_peak"), + "Cliffs of Desolation": get_locations_by_tags("cliffs_of_desolation"), + "Lost Cave": get_locations_by_tags("lost_cave"), + "Volcanic Caverns": get_locations_by_tags("volcanic_cavern"), + "Dragon's Lair": get_locations_by_tags("dragons_lair"), + "Castle Courtyard": get_locations_by_tags("castle_courtyard"), + "Dungeon of Torment": get_locations_by_tags("dungeon_of_torment"), + "Tower Armory": get_locations_by_tags("tower_armory"), + "Castle Treasury": get_locations_by_tags("castle_treasury"), + "Chimera's Keep": get_locations_by_tags("chimeras_keep"), + "Poisoned Fields": get_locations_by_tags("poisoned_fields"), + "Haunted Cemetery": get_locations_by_tags("haunted_cemetery"), + "Venomous Spire": get_locations_by_tags("venomous_spire"), + "Toxic Air Ship": get_locations_by_tags("toxic_air_ship"), + "Vat of the Plague Fiend": get_locations_by_tags("plague_fiend"), + "Arctic Docks": get_locations_by_tags("arctic_docks"), + "Frozen Camp": get_locations_by_tags("frozen_camp"), + "Crystal Mine": get_locations_by_tags("crystal_mine"), + "Erupting Fissure": get_locations_by_tags("erupting_fissure"), + "Yeti's Cavern": get_locations_by_tags("yeti"), + "Desecrated Temple": get_locations_by_tags("desecrated_temple"), + "Altar of Skorne": get_locations_by_tags("altar_of_skorne"), + "Battle Trenches": get_locations_by_tags("battle_trenches"), + "Fortified Towers": get_locations_by_tags("fortified_towers"), + "Infernal Fortress": get_locations_by_tags("infernal_fortress"), + "Gates of the Underworld": get_locations_by_tags("gates_of_the_underworld") + } + + +def connect_regions(world: "GauntletLegendsWorld"): + names: dict[str, int] = {} + + connect(world, names, "Menu", "Valley of Fire") + connect(world, names, "Menu", "Dagger Peak", _portal_helper("Portal to Dagger Peak", world)) + connect(world, names, "Menu", "Cliffs of Desolation", _portal_helper("Portal to Cliffs of Desolation", world)) + connect(world, names, "Menu", "Lost Cave", _portal_helper("Portal to Lost Cave", world)) + connect(world, names, "Menu", "Volcanic Caverns", _portal_helper("Portal to Volcanic Caverns", world)) + connect(world, names, "Menu", "Dragon's Lair", _portal_helper("Portal to Dragon's Lair", world)) + connect(world, names, "Menu", "Castle Courtyard", + lambda state: state.has("Valley of Fire Obelisk", world.player) + and state.has("Dagger Peak Obelisk", world.player) + and state.has("Cliffs of Desolation Obelisk", world.player) + ) + connect(world, names, "Castle Courtyard", "Dungeon of Torment", _portal_helper("Portal to Dungeon of Torment", world)) + connect(world, names, "Castle Courtyard", "Tower Armory", _portal_helper("Portal to Tower Armory", world)) + connect(world, names, "Castle Courtyard", "Castle Treasury", _portal_helper("Portal to Castle Treasury", world)) + connect(world, names, "Castle Courtyard", "Chimera's Keep", _portal_helper("Portal to Chimera's Keep", world)) + connect(world, names, "Menu", "Poisoned Fields", + lambda state: state.has("Castle Courtyard Obelisk", world.player) + and state.has("Dungeon of Torment Obelisk", world.player) + ) + connect(world, names, "Poisoned Fields", "Haunted Cemetery", _portal_helper("Portal to Haunted Cemetery", world)) + connect(world, names, "Poisoned Fields", "Venomous Spire", _portal_helper("Portal to Venomous Spire", world)) + connect(world, names, "Poisoned Fields", "Toxic Air Ship", _portal_helper("Portal to Toxic Air Ship", world)) + connect(world, names, "Toxic Air Ship", "Vat of the Plague Fiend", _portal_helper("Portal to Vat of the Plague Fiend", world)) + connect(world, names, "Menu", "Arctic Docks", + lambda state: state.has("Poisoned Fields Obelisk", world.player) + and state.has("Haunted Cemetery Obelisk", world.player) + ) + connect(world, names, "Arctic Docks", "Frozen Camp", _portal_helper("Portal to Frozen Camp", world)) + connect(world, names, "Arctic Docks", "Crystal Mine", _portal_helper("Portal to Crystal Mine", world)) + connect(world, names, "Arctic Docks", "Erupting Fissure", _portal_helper("Portal to Erupting Fissure", world)) + connect(world, names, "Erupting Fissure", "Yeti's Cavern", _portal_helper("Portal to Yeti's Cavern", world)) + connect(world, names, "Menu", "Desecrated Temple", + lambda state: state.has("Dragon Mirror Shard", world.player) + and state.has("Chimera Mirror Shard", world.player) + and state.has("Plague Fiend Mirror Shard", world.player) + and state.has("Yeti Mirror Shard", world.player) + ) + connect(world, names, "Desecrated Temple", "Altar of Skorne") + connect(world, names, "Desecrated Temple", "Battle Trenches") + connect(world, names, "Desecrated Temple", "Fortified Towers", _portal_helper("Portal to Fortified Towers", world)) + connect(world, names, "Desecrated Temple", "Infernal Fortress", _portal_helper("Portal to Infernal Fortress", world)) + connect(world, names, "Menu", "Gates of the Underworld", + lambda state: state.has("stones", world.player, 13) + ) + +def _portal_helper(item: str, world: "GauntletLegendsWorld") -> Callable | None: + if world.options.portals.value: + return lambda state: state.has(item, world.player) + return None + + +def create_region(world: "GauntletLegendsWorld", name: str, locations: list[LocationData]): + reg = Region(name, world.player, world.multiworld) + reg.add_locations({loc.name: loc.id for loc in locations if loc.name not in world.disabled_locations}, GLLocation) + world.multiworld.regions.append(reg) + + +def connect(world: "GauntletLegendsWorld", + used_names: dict[str, int], + source: str, + target: str, + rule: Optional[Callable] = None, +): + excluded_levels_ = [level for region, levels in excluded_levels.items() if region in world.excluded_regions for level in levels] + if source in excluded_levels_ or target in excluded_levels_: + return + source_region = world.multiworld.get_region(source, world.player) + target_region = world.multiworld.get_region(target, world.player) + + if target not in used_names: + used_names[target] = 1 + name = target + else: + used_names[target] += 1 + name = target + (" " * used_names[target]) + + source_region.connect(target_region, name, rule) diff --git a/worlds/gl/Rom.py b/worlds/gl/Rom.py new file mode 100644 index 0000000000..2c997e1c2a --- /dev/null +++ b/worlds/gl/Rom.py @@ -0,0 +1,613 @@ +import io +import json +import os +import pkgutil +import traceback +import typing +import zlib +from random import Random + +import bsdiff4 + +import Utils +from BaseClasses import Location, ItemClassification + +from worlds.Files import APPatchExtension, APProcedurePatch, APTokenMixin + +from .Data import level_address, level_header, level_locations, level_size, boss_location_offsets, spawner_trap_ids +from .Items import ItemData, items_by_id +from .Locations import locationName_to_data, GLLocation + +if typing.TYPE_CHECKING: + from . import GauntletLegendsWorld + +TABLE_START_OFFSET = 0x12E0 +EXPANDED_GAME_ROM_OFFSET = 0x1000000 # 16MB mark + + +def create_spawner_from_item(item_data: bytearray, spawner_rom_id: int, difficulty: int) -> bytearray: + spawner = bytearray(16) + spawner[0:6] = item_data[0:6] + spawner[6:8] = (0).to_bytes(2, "big") + spawner[8:12] = spawner_rom_id.to_bytes(4, "big") + spawner[12:14] = (0x0003).to_bytes(2, "big") + spawner[14] = difficulty + spawner[15] = 0x00 + return spawner + + +def create_spawner_from_chest(chest_data: bytearray, spawner_rom_id: int, difficulty: int) -> bytearray: + spawner = bytearray(16) + spawner[0:6] = chest_data[0:6] + spawner[6:8] = chest_data[6:8] + spawner[8:12] = spawner_rom_id.to_bytes(4, "big") + spawner[12:14] = (0x0003).to_bytes(2, "big") + spawner[14] = difficulty + spawner[15] = 0x00 + return spawner + + +def be32(b: bytes) -> int: + return int.from_bytes(b, "big") + + +def write_be32(buf: bytearray, off: int, val: int): + buf[off:off + 4] = (val & 0xFFFFFFFF).to_bytes(4, "big") + + +def ensure_len(buf: bytearray, size: int, fill: int = 0): + if len(buf) < size: + buf.extend(bytes([fill]) * (size - len(buf))) + + +def n64_crc(rom: bytes, cic: int = 6102) -> tuple[int, int]: + """Calculate N64 CRC checksums.""" + if cic in (6101, 6102): + seed = 0xF8CA4DDC + elif cic == 6103: + seed = 0xA3886759 + elif cic == 6105: + seed = 0xDF26F436 + elif cic == 6106: + seed = 0x1FEA617A + else: + raise ValueError("Unsupported CIC") + + t1 = t2 = t3 = t4 = t5 = t6 = seed + + for i in range(0x1000, 0x101000, 4): + d = int.from_bytes(rom[i:i + 4], "big") + + if (t6 + d) & 0xFFFFFFFF < t6: + t4 = (t4 + 1) & 0xFFFFFFFF + + t6 = (t6 + d) & 0xFFFFFFFF + t3 ^= d + + r = ((d << (d & 31)) | (d >> (32 - (d & 31)))) & 0xFFFFFFFF + t5 = (t5 + r) & 0xFFFFFFFF + + if t2 > d: + t2 ^= r + else: + t2 ^= t6 ^ d + + if cic == 6105: + extra = int.from_bytes(rom[0x0750 + (i & 0xFF):0x0754 + (i & 0xFF)], "big") + t1 = (t1 + (extra ^ d)) & 0xFFFFFFFF + else: + t1 = (t1 + (t5 ^ d)) & 0xFFFFFFFF + + if cic == 6103: + crc1 = (t6 ^ t4) & 0xFFFFFFFF + crc2 = (t5 ^ t3) & 0xFFFFFFFF + elif cic == 6106: + crc1 = ((t6 * t4) + t3) & 0xFFFFFFFF + crc2 = ((t5 * t2) + t1) & 0xFFFFFFFF + else: + crc1 = (t6 ^ t4 ^ t3) & 0xFFFFFFFF + crc2 = (t5 ^ t2 ^ t1) & 0xFFFFFFFF + + return crc1, crc2 + + +def get_base_rom_as_bytes() -> bytes: + """ + Read the base ROM file and verify its MD5 hash. + Raises an exception if the ROM doesn't match the expected hash. + """ + try: + from . import GauntletLegendsWorld + GauntletLegendsWorld.settings.rom_file.validate(GauntletLegendsWorld.settings.rom_file) + with open(GauntletLegendsWorld.settings.rom_file, "rb") as infile: + base_rom_bytes = bytes(infile.read()) + except Exception: + traceback.print_exc() + raise Exception('Failed to read ROM file. Check file path and permissions.') + return base_rom_bytes + + +def get_base_rom_path(file_name: str = "") -> str: + if not os.path.exists(file_name): + file_name = Utils.user_path(file_name) + return file_name + + +# Contains header info and raw data for level item positions and rotations. +class LevelData: + stream: io.BytesIO + header: bytearray + item_addr: int + spawner_addr: int + obj_addr: int + chest_addr: int + end_addr: int + end_addr2: int + end_addr3: int + portal_addr: int + items: list[bytearray] + spawners: list[bytearray] + objects: list[bytearray] + chests: list[bytearray] + end: bytes + items_replaced_by_obelisks: int = 0 + chests_replaced_by_obelisks: int = 0 + chests_replaced_by_items: int = 0 + obelisks_replaced_by_items: int = 0 + obelisks_kept: int = 0 + items_replaced_by_spawners: int = 0 + chests_replaced_by_spawners: int = 0 + + def __init__(self): + self.items = [] + self.spawners = [] + self.objects = [] + self.chests = [] + self.end = b"" + + +class GLPatchExtension(APPatchExtension): + game = "Gauntlet Legends" + + # Patched ROM requires updated CRC values. + @staticmethod + def finalize_crc(caller: APProcedurePatch, rom: bytes) -> bytes: + options = json.loads(caller.get_file("options.json").decode("utf-8")) + rom = bytearray(rom) + + SEED_ROM_OFFSET = 0xFFFFF0 + SEED_LEN = 16 + + seed = options["seed_name"].encode("utf-8")[:SEED_LEN] + rom[SEED_ROM_OFFSET:SEED_ROM_OFFSET + SEED_LEN] = seed.ljust(SEED_LEN, b"\x00") + + rom = bytearray(rom) + crc1, crc2 = n64_crc(rom, cic=6102) + rom[0x10:0x14] = crc1.to_bytes(4, "big") + rom[0x14:0x18] = crc2.to_bytes(4, "big") + return bytes(rom) + + + @staticmethod + def apply_bsdiff4(caller: APProcedurePatch, rom: bytes, patch: str) -> bytes: + return bsdiff4.patch(rom, pkgutil.get_data(__name__, f"data/basepatch.bsdiff4")) + + # Decompress all levels, place all items in the levels. + @staticmethod + def patch_items(caller: APProcedurePatch, rom: bytes): + stream = io.BytesIO(rom) + options = json.loads(caller.get_file("options.json").decode("UTF-8")) + local_random = Random(options["seed"]) + player = options["player"] + + for i in range(len(level_locations)): + level: dict[str, tuple] = json.loads(caller.get_file(f"level_{i}.json").decode("utf-8")) + level_address_ = level_address[i] + if level_address_ == 0: + continue + stream.seek(level_address_, 0) + stream, data = get_level_data(stream, level_size[i], i) + + items_seen = 0 + items_deleted = 0 + chests_deleted = 0 + chests_seen = 0 + + for location_name, item in level.items(): + is_chest = chest_barrel(location_name) + if is_chest: + chest_index = chests_seen - chests_deleted + chests_seen += 1 + else: + item_index = items_seen - items_deleted + items_seen += 1 + + if item[0] == 0: + continue + if "Mirror" in location_name: + continue + + item_data = items_by_id.get(item[0], ItemData()) + rom_id = item_data.rom_id + if rom_id == 0x0302: + rom_id = local_random.choices( + [0x0300, 0x0301, 0x0302, 0x0303, 0x0304], + weights=[10, 20, 40, 20, 10] + )[0] + + # Handle obelisk locations + if "Obelisk" in location_name: + if "Obelisk" not in item_data.item_name: + # Non-obelisk item at obelisk location - convert obelisk to item + try: + index = next(idx for idx in range(len(data.objects)) if data.objects[idx][8] == 0x26) + data.items.append( + bytearray(data.objects[index][0:6]) + + (rom_id.to_bytes(2) if item[1] == player else bytes([0x27, 0x1C])) + + bytes([0x0, 0x0, 0x0, 0x0]) + ) + del data.objects[index] + data.obelisks_replaced_by_items += 1 + except (StopIteration, Exception): + pass + else: + # Obelisk item at obelisk location + try: + index = next(idx for idx in range(len(data.objects)) if data.objects[idx][8] == 0x26) + if item[1] == player: + data.objects[index][15] = item[0] - 77780054 + data.obelisks_kept += 1 + else: + data.items.append( + bytearray(data.objects[index][0:6]) + + bytes([0x27, 0x1C, 0x0, 0x0, 0x0, 0x0]) + ) + del data.objects[index] + data.obelisks_replaced_by_items += 1 + except (StopIteration, Exception): + pass + continue + + # Handle spawner trap items (local player only) + if item[1] == player and item[0] in spawner_trap_ids: + difficulty = locationName_to_data[location_name].difficulty + spawner_rom_id = items_by_id[item[0]].rom_id + if is_chest: + data.spawners.append(create_spawner_from_chest(data.chests[chest_index], spawner_rom_id, difficulty)) + del data.chests[chest_index] + chests_deleted += 1 + data.chests_replaced_by_spawners += 1 + else: + data.spawners.append(create_spawner_from_item(data.items[item_index], spawner_rom_id, difficulty)) + del data.items[item_index] + items_deleted += 1 + data.items_replaced_by_spawners += 1 + continue + + # Handle non-local player items + if item[1] != player: + if is_chest: + data.chests[chest_index][12:14] = [0x27, 0x1C] + if "Chest" in location_name: + data.chests[chest_index][9] = 0x1 + else: + data.items[item_index][6:8] = [0x27, 0x1C] + continue + + # Handle local player items + if "Obelisk" in items_by_id[item[0]].item_name: + # Convert item/chest to obelisk + if is_chest: + slice_ = bytearray(data.chests[chest_index][0:6]) + del data.chests[chest_index] + chests_deleted += 1 + data.chests_replaced_by_obelisks += 1 + else: + slice_ = bytearray(data.items[item_index][0:6]) + del data.items[item_index] + items_deleted += 1 + data.items_replaced_by_obelisks += 1 + data.objects.append( + slice_ + bytearray([ + 0x0, 0x0, 0x26, 0x1, 0x0, + locationName_to_data[location_name].difficulty, + 0x0, 0x0, 0x0, item[0] - 77780054, + 0x3F, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + ]) + ) + elif item_data.progression in (ItemClassification.useful, ItemClassification.progression) and is_chest: + # Convert chest to item for useful/progression items + chest = data.chests[chest_index] + data.items.append( + bytearray(chest[0:6]) + + rom_id.to_bytes(2) + + bytes([chest[11], 0x0, 0x0, 0x0]) + ) + del data.chests[chest_index] + chests_deleted += 1 + data.chests_replaced_by_items += 1 + else: + # Regular item placement + if is_chest: + data.chests[chest_index][12:14] = rom_id.to_bytes(2) + if "Chest" in location_name: + data.chests[chest_index][9] = 0x2 + else: + data.items[item_index][6:8] = item_data.rom_id.to_bytes(2) + + # Write level data + uncompressed = level_data_reformat(data) + compressed = zenc(uncompressed) + stream.seek(level_header[i] + 4, 0) + stream.write(len(compressed).to_bytes(4, byteorder="big")) + stream.write(len(uncompressed).to_bytes(4, byteorder="big")) + write_pos = 0xFA1000 + (0x1500 * i) + stream.write((write_pos - 0x636E0).to_bytes(4, byteorder="big")) + stream.seek(write_pos, 0) + stream.write(compressed) + + return stream.getvalue() + + @staticmethod + def patch_bins(caller: APProcedurePatch, rom: bytes) -> bytes: + boss_items_data = json.loads(caller.get_file("boss_items.json").decode("UTF-8")) + options = json.loads(caller.get_file("options.json").decode("UTF-8")) + local_random = Random(options["seed"]) + + boss_entry_offset = TABLE_START_OFFSET + (2 * 0x30) + + rom = bytearray(rom) + + boss_rom_offset = be32(rom[boss_entry_offset + 0x10:boss_entry_offset + 0x14]) + boss_comp_size = be32(rom[boss_entry_offset + 0x14:boss_entry_offset + 0x18]) + + boss_compressed = bytes(rom[boss_rom_offset:boss_rom_offset + boss_comp_size]) + boss_decompressed = bytearray(zdec(boss_compressed)) + + FILLER_ROM_ID = 0x271C + + for location_name, item_data in boss_items_data.items(): + if location_name not in boss_location_offsets: + continue + + item_code, item_player = item_data + if not item_code: + continue + + if item_player != options["player"]: + rom_id = FILLER_ROM_ID + else: + rom_id = items_by_id[item_code].rom_id + + if rom_id == 0x0302: + rom_id = local_random.choices([0x0300, 0x0301, 0x0302, 0x0303, 0x0304], weights=[10, 20, 40, 20, 10])[0] + + hi_byte = (rom_id >> 8) & 0xFF + lo_byte = rom_id & 0xFF + + offset = boss_location_offsets[location_name] + boss_decompressed[offset:offset + 2] = hi_byte.to_bytes(2, "big") + boss_decompressed[offset + 2:offset + 4] = lo_byte.to_bytes(2, "big") + + boss_recompressed = zenc(boss_decompressed) + new_boss_comp_size = len(boss_recompressed) + + if new_boss_comp_size > boss_comp_size: + new_boss_rom_offset = EXPANDED_GAME_ROM_OFFSET + 0x100000 + new_boss_end = new_boss_rom_offset + new_boss_comp_size + ensure_len(rom, new_boss_end, fill=0xFF) + rom[new_boss_rom_offset:new_boss_end] = boss_recompressed + write_be32(rom, boss_entry_offset + 0x10, new_boss_rom_offset) + write_be32(rom, boss_entry_offset + 0x14, new_boss_comp_size) + else: + rom[boss_rom_offset:boss_rom_offset + new_boss_comp_size] = boss_recompressed + write_be32(rom, boss_entry_offset + 0x14, new_boss_comp_size) + if new_boss_comp_size < boss_comp_size: + leftover_start = boss_rom_offset + new_boss_comp_size + leftover_end = boss_rom_offset + boss_comp_size + rom[leftover_start:leftover_end] = bytes(leftover_end - leftover_start) + + # Write portals option + rom[0xFFFFE0] = options["portals"] + rom[0xFFFFE1] = options["instant_max"] + rom[0xFFFFE2] = options["max"] + rom[0xFFFFE4] = options["keys"] + rom[0xFFFFE5] = options["speed"] + rom[0xFFFFE8:0xFFFFEC] = options["characters"] + return bytes(rom) + + +class GLProcedurePatch(APProcedurePatch, APTokenMixin): + game = "Gauntlet Legends" + hash = "9cb963e8b71f18568f78ec1af120362e" + patch_file_ending = ".apgl" + result_file_ending = ".z64" + + procedure = [ + ("apply_bsdiff4", ["basepatch.bsdiff4"]), + ("patch_bins", []), + ("patch_items", []), + ("finalize_crc", []) + ] + + @classmethod + def get_source_data(cls) -> bytes: + return get_base_rom_as_bytes() + + +# Write data on all placed items into json files. +# Also save options +def write_files(world: "GauntletLegendsWorld", patch: GLProcedurePatch) -> None: + options_dict = { + "seed": world.multiworld.seed, + "seed_name": world.multiworld.seed_name, + "player": world.player, + "portals": world.options.portals.value, + "instant_max": world.options.instant_max.value, + "max": world.options.max_difficulty.value, + "keys": world.options.infinite_keys.value, + "speed": world.options.permanent_speed.value, + "characters": [world.options.unlock_character_one.value, world.options.unlock_character_two.value, + world.options.unlock_character_three.value, world.options.unlock_character_four.value] + } + patch.write_file("options.json", json.dumps(options_dict).encode("UTF-8")) + + # Write level files + for i, level in enumerate(level_locations.values()): + locations: list[Location] = [] + for location in level: + if location.name in world.disabled_locations: + locations += [GLLocation(world.player, location.name, location.id)] + else: + locations += [world.get_location(location.name)] + patch.write_file(f"level_{i}.json", json.dumps(locations_to_dict(locations)).encode("UTF-8")) + + # Write boss items file + boss_location_names = [ + "Dragon's Lair - Dragon Mirror Shard", + "Yeti's Cavern - Yeti Mirror Shard", + "Chimera's Keep - Chimera Mirror Shard", + "Vat of the Plague Fiend - Plague Fiend Mirror Shard", + "Altar of Skorne - Skorne's Mask", + "Altar of Skorne - Skorne's Horns", + "Altar of Skorne - Skorne's Left Gauntlet", + "Altar of Skorne - Skorne's Right Gauntlet" + ] + + boss_locations: list[Location] = [] + for location_name in boss_location_names: + if location_name in world.disabled_locations: + # Get location ID from locationName_to_data + location_data = locationName_to_data.get(location_name) + if location_data: + boss_locations += [GLLocation(world.player, location_name, location_data.id)] + else: + boss_locations += [world.get_location(location_name)] + + patch.write_file("boss_items.json", json.dumps(locations_to_dict(boss_locations)).encode("UTF-8")) + + +def locations_to_dict(locations: list[Location]) -> dict[str, tuple]: + return {location.name: (location.item.code, location.item.player) if location.item is not None else (0, 0) for + location in locations} + + +def patch_docks(data: LevelData) -> LevelData: + data.stream.seek(0x19AC, 0) + data.stream.write(bytes([0x3, 0x20, 0x0, 0x18, 0x1, 0x7C])) + data.stream.seek(0x74, 0) + data.stream.write(bytes([0x3, 0x0, 0x0, 0x1A, 0x1, 0x8])) + return data + + +def patch_camp(data: LevelData) -> LevelData: + data.stream.seek(0x1B74, 0) + data.stream.write(bytes([0xFE, 0xE9, 0x0, 0x3B, 0xFF, 0xDC, 0x0, 0x10])) + data.stream.seek(0x1B64, 0) + data.stream.write(bytes([0xFE, 0x84, 0x0, 0x3D, 0xFF, 0xE0, 0xFF, 0xF0])) + return data + + +def patch_trenches(data: LevelData) -> LevelData: + data.stream.seek(0xD4, 0) + data.stream.write(bytes([0xFB, 0x68, 0x0, 0x82])) + return data + + +# Zlib decompression with wbits set to -15 +def zdec(data): + decomp = zlib.decompressobj(-zlib.MAX_WBITS) + output = bytearray() + for i in range(0, len(data), 256): + output.extend(decomp.decompress(data[i: i + 256])) + output.extend(decomp.flush()) + return output + + +# Zlib compression with compression set to max and wbits set to -15 +def zenc(data): + compress = zlib.compressobj(zlib.Z_BEST_COMPRESSION, zlib.DEFLATED, -zlib.MAX_WBITS) + output = bytearray() + for i in range(0, len(data), 256): + output.extend(compress.compress(data[i: i + 256])) + output.extend(compress.flush()) + return output + + +# Create a LevelData object from raw decompressed bytes of a level +def get_level_data(stream: io.BytesIO, size: int, level: int = 0) -> tuple[io.BytesIO, LevelData]: + data = LevelData() + data.stream = io.BytesIO(zdec(stream.read(size))) + if level == 17: + data = patch_docks(data) + if level == 18: + data = patch_camp(data) + if level == 24: + data = patch_trenches(data) + data.header = bytearray(data.stream.read(0x5C)) + data.stream.seek(0) + data.item_addr = int.from_bytes(data.stream.read(4), "big") + data.spawner_addr = int.from_bytes(data.stream.read(4), "big") + data.stream.seek(4, 1) + data.obj_addr = int.from_bytes(data.stream.read(4), "big") + data.end_addr = int.from_bytes(data.stream.read(4), "big") + data.portal_addr = int.from_bytes(data.stream.read(4), "big") + data.chest_addr = int.from_bytes(data.stream.read(4), "big") + data.end_addr2 = int.from_bytes(data.stream.read(4), "big") + data.end_addr3 = int.from_bytes(data.stream.read(4), "big") + data.stream.seek(data.item_addr) + for i in range(data.stream.tell(), data.spawner_addr, 12): + data.stream.seek(i) + data.items += [bytearray(data.stream.read(12))] + for i in range(data.stream.tell(), data.obj_addr, 16): + data.stream.seek(i) + data.spawners += [bytearray(data.stream.read(16))] + for i in range(data.stream.tell(), data.chest_addr, 24): + data.stream.seek(i) + data.objects += [bytearray(data.stream.read(24))] + for i in range(data.stream.tell(), data.end_addr, 16): + data.stream.seek(i) + data.chests += [bytearray(data.stream.read(16))] + data.end = data.stream.read() + return stream, data + + +# Format a LevelData object back into a bytes object +# Format is header, items, spawners, objects, barrels/chests, then traps. +def level_data_reformat(data: LevelData) -> bytes: + stream = io.BytesIO() + obelisk_offset = 24 * ( + data.items_replaced_by_obelisks + data.chests_replaced_by_obelisks - data.obelisks_replaced_by_items) + item_offset = 12 * ( + data.chests_replaced_by_items + data.obelisks_replaced_by_items - data.items_replaced_by_obelisks - data.items_replaced_by_spawners) + chest_offset = 16 * ( + data.chests_replaced_by_obelisks + data.chests_replaced_by_items + data.chests_replaced_by_spawners) + spawner_offset = 16 * (data.items_replaced_by_spawners + data.chests_replaced_by_spawners) + + stream.write(int.to_bytes(0x5C, 4, "big")) + stream.write(int.to_bytes(data.spawner_addr + item_offset, 4, "big")) + stream.write(int.to_bytes(data.spawner_addr + item_offset, 4, "big")) + stream.write(int.to_bytes(data.obj_addr + item_offset + spawner_offset, 4, "big")) + stream.write(int.to_bytes(data.end_addr + item_offset + spawner_offset + obelisk_offset - chest_offset, 4, "big")) + stream.write( + int.to_bytes(data.portal_addr + item_offset + spawner_offset + obelisk_offset - chest_offset, 4, "big")) + stream.write(int.to_bytes(data.chest_addr + item_offset + spawner_offset + obelisk_offset, 4, "big")) + stream.write(int.to_bytes(data.end_addr2 + item_offset + spawner_offset + obelisk_offset - chest_offset, 4, "big")) + stream.write(int.to_bytes(data.end_addr3 + item_offset + spawner_offset + obelisk_offset - chest_offset, 4, "big")) + # Counts are 2 bytes each, big-endian + stream.write(len(data.items).to_bytes(2, "big")) + stream.write(bytes([0x0, 0x0])) + stream.write(len(data.spawners).to_bytes(2, "big")) + stream.write(len(data.objects).to_bytes(2, "big")) + data.stream.seek(stream.tell()) + temp = bytearray(data.stream.read(48)) + temp[7] = len(data.chests) + stream.write(temp) + for item in data.items + data.spawners + data.objects + data.chests: + stream.write(bytes(item)) + stream.write(data.end) + return stream.getvalue() + + +def chest_barrel(name: str): + return "Chest" in name or ("Barrel" in name and "Barrel of Gold" not in name) diff --git a/worlds/gl/Rules.py b/worlds/gl/Rules.py new file mode 100644 index 0000000000..7c86dc7d30 --- /dev/null +++ b/worlds/gl/Rules.py @@ -0,0 +1,62 @@ +import typing + +from BaseClasses import CollectionRule +from worlds.generic.Rules import add_rule, forbid_item + +from .Data import difficulty_lambda, level_locations, obelisks, boss_regions, excluded_levels, spawner_trap_ids, \ + difficulty_lambda_no_portal +from .Items import items_by_id +from .Locations import get_locations_by_tags +from .Options import Goal + +if typing.TYPE_CHECKING: + from . import GauntletLegendsWorld + + +def set_rules(world: "GauntletLegendsWorld"): + for location in get_locations_by_tags("no_obelisks") + (get_locations_by_tags("obelisk") if world.options.obelisks else []): + for item in obelisks: + if location.name not in world.disabled_locations: + forbid_item(world.get_location(location.name), item, world.player) + + for location in get_locations_by_tags("no_spawner"): + for item in spawner_trap_ids: + if location.name not in world.disabled_locations: + forbid_item(world.get_location(location.name), items_by_id[item].item_name, world.player) + + if not world.options.instant_max: + for level_id, locations in level_locations.items(): + for location in locations: + if location.difficulty > 1: + if location.name not in world.disabled_locations: + if location.name not in world.disabled_locations: + level_id_ = level_id >> 4 + difficulty = location.difficulty - 1 + if world.options.portals: + expected_count = difficulty_lambda[level_id_][difficulty] - ( + len(world.excluded_regions) * 4) + else: + expected_count = difficulty_lambda_no_portal[level_id_][difficulty] - ( + len(world.excluded_regions) * 4) + expected_count = max(expected_count, 0) + add_rule( + world.get_location(location.name), + lambda state, expected_count_=expected_count: state.has("progression", world.player, + expected_count) + ) + + +def goal_conditions(world: "GauntletLegendsWorld") -> CollectionRule: + if world.options.goal == Goal.option_defeat_skorne: + return lambda state: state.can_reach("Gates of the Underworld", "Region", world.player) + + eligible_boss_regions = [ + boss for boss in boss_regions + if boss not in [ + level for region, levels in excluded_levels.items() + if region in world.excluded_regions for level in levels + ] + ] + needed_boss_count = world.options.boss_goal_count.value + + return lambda state: sum(state.can_reach_region(boss, world.player) for boss in eligible_boss_regions) >= needed_boss_count diff --git a/worlds/gl/__init__.py b/worlds/gl/__init__.py new file mode 100644 index 0000000000..951aac57e6 --- /dev/null +++ b/worlds/gl/__init__.py @@ -0,0 +1,346 @@ +import os + +import settings + +from BaseClasses import ItemClassification, Tutorial, Item, CollectionState +from Fill import fast_fill +from typing import ClassVar + +from worlds.AutoWorld import WebWorld, World + +from worlds.LauncherComponents import Component, SuffixIdentifier, Type, components, launch +from .Data import obelisks, mirror_shards, portals, excluded_portals, \ + excluded_obelisks, level_locations +from .Items import GLItem, item_table, item_list, gauntlet_item_name_groups +from .Locations import LocationData, all_locations, location_table, get_locations_by_tags, locationName_to_data +from .Options import GLOptions, IncludedAreas, IncludedTraps +from .Regions import connect_regions, create_regions +from .Rom import GLProcedurePatch, write_files +from .Rules import set_rules, goal_conditions + + +def launch_client(*args): + from .GauntletLegendsClient import launch as launch_glclient + launch(launch_glclient, name="GauntletLegendsClient", args=args) + + +components.append( + Component( + "Gauntlet Legends Client", + func=launch_client, + component_type=Type.CLIENT, + file_identifier=SuffixIdentifier(".apgl"), + ), +) + + +class GauntletLegendsWebWorld(WebWorld): + theme = "partyTime" + tutorials = [ + Tutorial( + tutorial_name="Setup Guide", + description="A guide to playing Gauntlet Legends", + language="English", + file_name="setup_en.md", + link="setup/en", + authors=["jamesbrq"], + ), + ] + + +class GLSettings(settings.Group): + class RetorarchPath(settings.UserFolderPath): + """The location of your Retroarch folder""" + description = "Retroarch Folder" + + class RomFile(settings.UserFilePath): + """File name of the GL US rom""" + copy_to = "Gauntlet Legends (U) [!].z64" + description = "Gauntlet Legends ROM File" + md5s = ["9cb963e8b71f18568f78ec1af120362e"] + + retroarch_path: RetorarchPath = RetorarchPath(None) + rom_file: RomFile = RomFile(RomFile.copy_to) + rom_start: bool = True + + +class GauntletLegendsWorld(World): + """ + Adventure through the 5 realms to collect 13 runestones + and defeat the evil skorne. Treasure, enemies, and death + awaits. + """ + + game = "Gauntlet Legends" + web = GauntletLegendsWebWorld() + options_dataclass = GLOptions + options: GLOptions + settings: ClassVar[GLSettings] + item_name_groups = gauntlet_item_name_groups + item_name_to_id = {name: data.id for name, data in item_table.items()} + location_name_to_id = {loc_data.name: loc_data.id for loc_data in all_locations} + excluded_regions: set + items: list[Item] + unlockable: set + + disabled_locations: set[str] + + def generate_early(self) -> None: + self.disabled_locations = set() + self.excluded_regions = set() + self.unlockable = set() + self.items = [] + + def create_regions(self) -> None: + if self.options.chests_barrels == "none": + self.disabled_locations.update([ + location.name + for location in all_locations + if "Chest" in location.name or ("Barrel" in location.name and "Barrel of Gold" not in location.name) + ]) + elif self.options.chests_barrels == "all_chests": + self.disabled_locations.update([ + location.name + for location in all_locations + if "Barrel" in location.name and "Barrel of Gold" not in location.name + ]) + elif self.options.chests_barrels == "all_barrels": + self.disabled_locations.update([location.name for location in all_locations if "Chest" in location.name]) + + self.disabled_locations.update([location.name for location in all_locations + if location.difficulty > self.options.max_difficulty]) + self.excluded_regions.update([region for region in IncludedAreas.valid_keys if region not in self.options.included_areas.value]) + self.options.boss_goal_count.value = min(self.options.boss_goal_count.value, + 6 - len([region for region in self.excluded_regions if region != "Battlefield"])) + + create_regions(self) + connect_regions(self) + if not self.options.infinite_keys: + self.lock_item("Valley of Fire - Key 1", "Key") + self.lock_item("Valley of Fire - Key 5", "Key") + + if not self.options.obelisks: + self.lock_item("Valley of Fire - Obelisk", "Valley of Fire Obelisk") + self.lock_item("Dagger Peak - Obelisk", "Dagger Peak Obelisk") + self.lock_item("Cliffs of Desolation - Obelisk", "Cliffs of Desolation Obelisk") + self.lock_item("Castle Courtyard - Obelisk", "Castle Courtyard Obelisk") + self.lock_item("Dungeon of Torment - Obelisk", "Dungeon of Torment Obelisk") + self.lock_item("Poisoned Fields - Obelisk", "Poisoned Fields Obelisk") + self.lock_item("Haunted Cemetery - Obelisk", "Haunted Cemetery Obelisk") + + if not self.options.mirror_shards: + self.lock_item("Dragon's Lair - Dragon Mirror Shard", "Dragon Mirror Shard") + self.lock_item("Chimera's Keep - Chimera Mirror Shard", "Chimera Mirror Shard") + self.lock_item("Vat of the Plague Fiend - Plague Fiend Mirror Shard", "Plague Fiend Mirror Shard") + self.lock_item("Yeti's Cavern - Yeti Mirror Shard", "Yeti Mirror Shard") + + def fill_slot_data(self) -> dict: + characters = [ + self.options.unlock_character_one.value, + self.options.unlock_character_two.value, + self.options.unlock_character_three.value, + self.options.unlock_character_four.value, + ] + chests_barrels = self.options.chests_barrels.value + return { + "chests": int(chests_barrels == 3 or chests_barrels == 1), + "barrels": int(chests_barrels == 3 or chests_barrels == 2), + "speed": self.options.permanent_speed.value, + "keys": self.options.infinite_keys.value, + "characters": characters, + "max": self.options.max_difficulty.value, + "instant_max": self.options.instant_max.value, + "death_link": self.options.death_link.value, + "portals": self.options.portals.value, + "included_areas": [area for area in IncludedAreas.valid_keys if area in self.options.included_areas.value], + "mirror_shards": self.options.mirror_shards.value, + "obelisks": self.options.obelisks.value, + "goal": self.options.goal.value, + "boss_goal_count": self.options.boss_goal_count.value, + } + + def create_items(self) -> None: + # First add in all progression and useful items + required_items = [] + precollected = [item for item in item_list if item.item_name in [item.name for item in self.multiworld.precollected_items[self.player]]] + skipped_items = set() + items_required_count = len(self.multiworld.get_unfilled_locations(self.player)) + if self.options.infinite_keys: + skipped_items.add("Key") + if self.options.permanent_speed: + skipped_items.add("Speed Boots") + skipped_items.update([item for item in IncludedTraps.valid_keys if item not in self.options.included_traps.value]) + if not self.options.obelisks: + skipped_items.update([obelisk for obelisk in obelisks if obelisk not in self.unlockable]) + if not self.options.mirror_shards: + skipped_items.update([shard for shard in mirror_shards if shard not in self.unlockable]) + if not self.options.portals: + skipped_items.update([item for item in portals.keys()]) + if len(self.excluded_regions) > 0: + for region in self.excluded_regions: + skipped_items.update(excluded_portals.get(region, [])) + skipped_items.update(excluded_obelisks.get(region, [])) + for item in [item_ for item_ in item_list + if (ItemClassification.progression in item_.progression + or ItemClassification.useful in item_.progression) + and item_.item_name not in precollected + and item_.item_name not in skipped_items]: + freq = item.frequency + required_items += [item.item_name for _ in range(freq)] + items_required_count -= freq + + self.multiworld.itempool += [self.create_item(item_name) for item_name in required_items] + + # Then, get a random amount of fillers until we have as many items as we have locations + filler_items = [] + for item in [item_ for item_ in item_list + if ItemClassification.progression not in item_.progression + and ItemClassification.useful not in item_.progression + and item_.item_name not in skipped_items]: + + freq = item.frequency + if item.item_name == "Anti-Death Halo" and "Death" not in skipped_items and self.options.traps_frequency.value >= 30: + freq *= 2 + + filler_items += [item.item_name for _ in range(freq)] + self.random.shuffle(filler_items) + + if len(self.options.included_traps.value) != 0: + traps_cap = items_required_count - len( + [location for location in self.multiworld.get_unfilled_locations(self.player) if + "no_spawner" in locationName_to_data[location.name].tags]) + traps_frequency = int(len(self.get_locations()) * (self.options.traps_frequency / 100)) // len(self.options.included_traps.value) + traps_frequency = min(traps_frequency, traps_cap // len(self.options.included_traps.value)) + for item in self.options.included_traps.value: + if items_required_count == 0: + break + self.multiworld.itempool += [self.create_item(item) for _ in range(min(traps_frequency, items_required_count))] + items_required_count = max(items_required_count - traps_frequency, 0) + + for i in range(items_required_count): + if i < int(items_required_count * (self.options.local_filler_frequency / 100)): + if self.multiworld.players > 1: + self.items.append(self.create_item(filler_items.pop())) + else: + self.multiworld.itempool.append(self.create_item(filler_items.pop())) + else: + self.multiworld.itempool.append(self.create_item(filler_items.pop())) + + + def set_rules(self) -> None: + set_rules(self) + self.multiworld.completion_condition[self.player] = goal_conditions(self) + + def pre_fill(self) -> None: + local_item_count = len(self.items) + unfilled_locations = self.multiworld.get_unfilled_locations(self.player) + unfilled_names = {loc.name for loc in unfilled_locations} + skipped = get_locations_by_tags("skipped_local") + no_obelisk_locs = get_locations_by_tags("no_obelisks") + + # Group available locations by level + level_locs = {} + for level_id, level in level_locations.items(): + if level_id & 0x8 == 0x8: + continue + available = [loc for loc in level if loc.name in unfilled_names and loc.name not in skipped] + if available: + level_locs[level_id] = sorted(available, key=lambda l: l.difficulty, reverse=True) + + all_available = [loc for locs in level_locs.values() for loc in locs] + + # Calculate target per level, ensuring we don't fill entire regions + target_per_level = (local_item_count // len(level_locs)) + 2 if level_locs else 0 + local_locations = [] + + for level_id, locs in level_locs.items(): + # Leave at least 1 location unfilled per region if possible + max_from_level = max(1, len(locs) - 1) if len(locs) > 1 else len(locs) + count = min(target_per_level, max_from_level) + + # Split into harder/easier halves + mid = len(locs) // 2 + harder, easier = locs[:mid], locs[mid:] + self.random.shuffle(harder) + self.random.shuffle(easier) + + # Take 60% from harder, 40% from easier + harder_count = int(count * 0.6) + easier_count = count - harder_count + local_locations.extend(self.get_location(l.name) for l in harder[:harder_count]) + local_locations.extend(self.get_location(l.name) for l in easier[:easier_count]) + + # If still need more, pull from levels with most remaining availability + if len(local_locations) < local_item_count: + used_names = {loc.name for loc in local_locations} + remaining = [] + for level_id, locs in level_locs.items(): + available = [l for l in locs if l.name not in used_names] + for loc in available: + remaining.append((loc, len(available))) + + remaining.sort(key=lambda x: x[1], reverse=True) + needed = local_item_count - len(local_locations) + local_locations.extend(self.get_location(loc.name) for loc, _ in remaining[:needed]) + + # Ensure obelisk accessibility + used_names = {loc.name for loc in local_locations} + remaining_unfilled = [loc.name for loc in all_available if loc.name not in used_names] + + if remaining_unfilled and all(name in no_obelisk_locs for name in remaining_unfilled): + chosen_no_obelisk = [loc for loc in local_locations if loc.name in no_obelisk_locs] + unchosen_obelisk_ok = [loc for loc in all_available + if loc.name not in used_names and loc.name not in no_obelisk_locs] + + swap_count = min(len(chosen_no_obelisk) // 2, len(unchosen_obelisk_ok)) + if swap_count > 0: + self.random.shuffle(chosen_no_obelisk) + self.random.shuffle(unchosen_obelisk_ok) + + for i in range(swap_count): + local_locations.remove(chosen_no_obelisk[i]) + local_locations.append(self.get_location(unchosen_obelisk_ok[i].name)) + + # Final shuffle and fill + local_locations = local_locations[:local_item_count] + self.random.shuffle(self.items) + self.random.shuffle(local_locations) + fast_fill(self.multiworld, self.items, local_locations) + + def create_item(self, name: str) -> GLItem: + item = item_table[name] + return GLItem(item.item_name, item.progression, item.id, self.player) + + def lock_item(self, location: str, item_name: str) -> None: + item = self.create_item(item_name) + if location in self.disabled_locations: + self.unlockable.update({item_name}) + return + self.get_location(location).place_locked_item(item) + + def collect(self, state: "CollectionState", item: "Item") -> bool: + change = super().collect(state, item) + if change and "Runestone" in item.name: + state.prog_items[item.player]["stones"] += 1 + if change and (ItemClassification.progression in item.classification): + state.prog_items[item.player]["progression"] += 1 + return change + + def remove(self, state: "CollectionState", item: "Item") -> bool: + change = super().remove(state, item) + if change and "Runestone" in item.name: + state.prog_items[item.player]["stones"] -= 1 + if change and (ItemClassification.progression in item.classification): + state.prog_items[item.player]["progression"] -= 1 + return change + + def get_filler_item_name(self) -> str: + return self.random.choice(list(filter(lambda item: item.progression == ItemClassification.filler, item_list))).item_name + + def generate_output(self, output_directory: str) -> None: + patch = GLProcedurePatch(player=self.player, player_name=self.player_name) + write_files(self, patch) + rom_path = os.path.join( + output_directory, f"{self.multiworld.get_out_file_name_base(self.player)}{patch.patch_file_ending}", + ) + patch.write(rom_path) diff --git a/worlds/gl/archipelago.json b/worlds/gl/archipelago.json new file mode 100644 index 0000000000..abee7fd162 --- /dev/null +++ b/worlds/gl/archipelago.json @@ -0,0 +1,6 @@ +{ + "game": "Gauntlet Legends", + "authors": [ "jamesbrq" ], + "minimum_ap_version": "0.6.6", + "world_version": "2.1.7" +} diff --git a/worlds/gl/data/basepatch.bsdiff4 b/worlds/gl/data/basepatch.bsdiff4 new file mode 100644 index 0000000000000000000000000000000000000000..de0caba0dd18f9e4515abe5431de7cf5d45c6e21 GIT binary patch literal 336481 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%0AJ-q8@HGBD> zRs8(?j;<@&V4pels1Vr~!a%m7d|w&$kK3dSDB?=^TE#(+%kiDvuX;%~sZx?yGLuazV!YAMMT`kipC)h*foBvOM$F`l zK1yNUKX~z%pbkKE+KdOjKnB#tQ%`vLI5<)_@uz%N(D*uBk`{?lYj65w3I1{1Vhy(V z=PL}JHfaF?s=0N;y++I%%F_itRhWJN{$HPSAL*EIYG8u|!)5@_%e4cquu?cKSRgN(7evDnAX z#0%t^WLWC8%ZD)Tyx1B+8&189jo0q);Vbr4@|5AU^%IQcuS{=(ZLCgh9!~>+av_07 z9HG{-V}2YvkAXv54&w9YC*p?h(FDF;Y>xWQp~&qHk;mH9?D^dYb|c8~NNN2Hqku<$ z8IM%Tz%}`2o-3O?xuYb!;ud}-CrnnlOs_nD*A3HA_4Zyy+r6prGK6&Wb7+3Y%zK&R z`z7|L3E8zW+KJV8=6DZW39qGqk&X4J$7-_&{VkxR+?wF)$ns3AJOpGcbC*VaceT;n zu_eH}>paVI=2VXNhR$m>|jNnD0Xzy@m4KK9+@DxHGpi5Afo zWZ}^%f4oZAgTvvpMDgq1`dxaL)Hg1Ovzr7W*BE^pxQ=9dK9~T~$lP&!8tY}p5zJ#h zP0FRXQE9-lhf@p)$9Q`mI_?-*${Q-XEnt+FHwQD8nJMvtQ&OPFd=g?Z?g+FS_d&ecgvNkZ3Bc9{px>;?2>MpHgG zpaRgOV7>}SGQeML)U<>Ju_68TRym7t1NjwEcg|4?^WP(MC;Z_xufN}&M5Da!Re+?U{V3e<)VnA&y-#hNQpDU-Ps`PJ%V z_2iCvtbuT?9qK*GVW3(4iKI({tmO##)4Fn(%8h`pfL~@>tw4)WH7e4gIs3|il>dTp z3%Gm<>Vdt@dkq+F=ErI97l;{Sl2E4h?TIp?YT?=YPamgHz^g7@5y;;Mc3Q;gigkLd z1r%STO*fS+jd-Si>IrJfs#v^8?n@Lh1H84R!Ve&LWkHaooI4EpQnRbVgfkrMRmXsG zfK^c2D$otnjhUwtxYOlD@1(6h2q*DtUrz%(lT)85v$d=bXq&KE=1O2=o)I#%S!CtWz zp~!o-S?MPLKnSIrg&hCu3Wu}2(KZh0`kliSjci**6tP~#YRb(y=u4O@S{s`x+v2sG zA8!Wi;}i`Od)OE#SYd!oTt1Pwx~buTiSck^URoyVBe2L#ri@Ur$mGUI5CBVP#76sS z>ab|V!&;(mIlstMU=EQeI&`}SmbDRXA@DSUYG*&^uF@A^pdXfYR4)7Zq@c8(5|0o% z{L8bn67X5nNf@{70|~1%(z3zp!}hT`%3lf9~iSu$A(>s9{>OXBW^K1LEue? zdo{h;QS2TBqC;cFPk{;_A(#LBp=+9Z*?ySi%Y3PV&krxjTb z$9CQaEQ7UDPriFV9l$7~cIP!%DPKW1CIta_z~fWh=20yVCe%VR#dwF@f4pH*u%I{% zt)>;4JsY0i7U5P44(eTtwuFgxUDgz54-0wo-_38A%vy`+^y1e>Txr zO2l*CP|$dA4OA9LRYZJJvLbqRWP%M}aT1w)I$m;r=2u}IUz zD)5j<@=X%Vq1(L;C*#7IC`=hKJj8IO9E|i3^tI_$y~9oBc(d2NP)nJ7Nowl@HRFq@ zD*Kew!4a!RflqtUiU1(>&c zRFx%Sr%GuJ*#Zc#_|j3rgIe)~P6Yf2LgG~s6%4YOk@1=wclgV2@I^kC3$=#KSdRX` zd8#5ay%$>hVF|r$5S#@hKeDblQW~4Aj8H0WV-&I^qLd^sQB{xrhll?#&}pxc{$PN9 zW&0Zy7f$IJTTADL1hU)`nj=V@vdZh1=%ik%V(O>55$X2N>3G0Z)B*GX8i4?b_s!ed zaq;2vN&UIR`xlIn3>aqql(v;c__}9~Vj3UxJqR|J%P!QsKUi0Jc^oyZhtCqW%aGZnT~Xx@ ztO();)R)vhir8iZ3kvLz^%WUV@6gD4mB)(mnNnKfH1P;%y@L z;C(K>Zj8ZGW)sdzX}cDL^Sf?5D;YEfMhXD0X%`U7k?_(Y$YChthXI%Kx}tY>qgGTO zqH5i2*~utWE18V7DUrM|l$-CRVb4iJ20Ljp$+xKH_|liecSU3KuVaLTdR5|f9-5Tf zh81+2sKeC@Q7rXG=(}D!aXxot2Ou%oRw$R#3)nU`UQcB`AzRpa%tIe%B2hZkhnFd{ zLBT?9bQBLP4A+XVnAXFgM_!;eWt4P>+4t6CVd!aj98MiaTqU^tcOgN_9TR|ilIR)jZ_y}Gu2 zp~yPiIVR4{R9893!p%Z*w986zDM=zUz_L)7+O7r85uv2t;GRUjqY2*ENPHPUh}U^6 ze~DnkJVg6p=YQPMRR@^XwkpnSlcHTe1h1nPav*?p^2x*O%`vR`5qajwWOD~ot3Z|6 zJ;O?rEe)5Gc_n@N(YUq%E_u%El#6tqzP&LAtt&(u9l2)8;pH?ictSm}%c zbY0E%kscA6PT?DWyApt^5(S!DZ6%mgs!Eo|yH?Yv?p{GFx2i&*k7jZrQ`D?x4?wF` zol`}X?)Q;Z)wZW1!vg#3lsHS^%tU}koZ-fH3*1yaED(C=^RH@CM%CJw19^gJ$zgwp z-js`zi-n1x=}WRv!A$1`;tqmBv`)_N7IeLRqc`1^45n$Hh=7Jd+i>!c)S&WQd>ZBI zL3;6YPu$ygnHbF)a4(kSdOd$y<2cc?_rliuk?(mQm@R0u3eKw9t8{Z`OS~HYA{-t( zHFyyQ^K=C8cQu_E@`Z(;?+#*l^TfN4b|zF+bJie!0^5fW_HQq^2P3;44z+Z=nu7Mo?cb9Z#*y3q7}HwlzMxnYLW?Z} zK3Z?l-#Y4fu>`VtnAJZq^=*iJ$@aA^sgz|o=og5K!28PsHkBa$37qpTqNCXo04wxq1HOKyk0fldF9iVw!hRdMu0vuG0mz>nk*>a17 z<|68!cnZxn40@SHM!jEV@&`CL$4y`tF@>T9U4d6cUh(66j5TA|#x!=sVbG7^2s+P) zjvY(hDlS2eSBRlprNy`AODK;q`yxY33Ua4&9=6NTYmflEPMd4d54na@IXIcS)~|jH zVx!@!6S@s=X8*ul8u2_(>V0;C#F$%hyX$+T1jm8WWw11>HNYGafEOVhY~O>=Q+gCv#}U;<8cr_NS0-a zA&anmzpPHl?(H^>tnzMf6Yv*Ej5g9sq~p)Ua>ORTqP?x=Uv9#!ZGpQsK7)^$6gKzJ zA0oGWJR#$DI<6-e%>WpD>S;~*7#yx{aXO#ZyIT_6NRvH93c(@VFU^_jSY-#Rs;dWh5@BDkm$O1)TK%FC%_dB1>ziS;+|b;Dq<-!U9}4u_@AB0VFd^I6&r6tmU_$`TG*K6Z}ppzbq`gjP&3W1&eOwY@$NM)S4#+uiB$7O{I(Bdbr7lJD6U4ee52Ki( zH+Wh~&{Q~bBUJ>#8w0))fFT;x+3%ngK?R&U!AZC3S%Q#TC)@{1^|mIbxPggmaDS(r zBH}VhmCb5c0PXC(*sp08+BpSd`2%TkVyQr7n6C{yLK^FlaOOFrm?Yg;s8&GqyT@p& zULCI{vTBC~gOTukx2f6aDi4^#P+nY=`ok0{$#d$k>f{$Pv|^VIXO%}2C>Z91L8OU% z`W4cdz(S4TT3ZURe*5rkks1UYk!o-_mf6UPhA$A4KdB2P;Z3!|%CL#O8B##7Ds(Xs zv%O5ey7uC5RM$LjSm>CoKm8Z_T>vlf{vRXH(`h5B2+Ghh$zp_*LH}#VV;4 zsx;atOkAO68Pj-1%BY4-2eX#N*~a`t?VN;4ocB@kiLCqH^*b9Xx_GLLSzyk|)P^XH zJH^u=GI=;4?;+Bj*nD&w-c@38#-gdpP_oM_WuvaB#~Iw2Lv{-Ma4(6-t-rx_%jb9O2yl)!KH8{Tg^5RrfiV9 zx!BsN&?26YxRak@#|~$OFQYseV9agU;8@PuLiN8iA*(e~*4HsmaZenJKnvpCf8 z(fcEVUIis|eYQ-}v{j9Ms2GFe3J{K|jn9M?k4#<%&ORsVrJkKTIb&@08>P2rGHMDt zNapzpNXbH~7?NQwv@XEGp-zmb=nyq-Fe0**kai4Z0O=l<+ZS<@OUq(3K}37CRpI5! zZREM8C&myD)}fv+8u2M2Af&>+XK)%v!o7wmp82CkevSwMBmM3*Iwda!7|!{Trm6)C z6l+mI%PdvFl$C2e%w6?TRGu7v@aP5J^ara54tsrPGgT2be z^rs2U#MumU1uG`8`q^szbnB)OFyJB#tk%9&Refn-R5Pz@>o=!kE5Y!UO@ zQIo080|4253gO*U8kUXJbC;oO@(Rc0LeeZclG* z;^Zv0EOy`ShN$NlPTY!k}!ihn-amW0VQn9QqA-69&g9-3$&BFDN0?THM9puj_F1$yg6JnA$5s{t_H2O}`6WbDSlNva6$t|FZ$3Y=u(o3KHfk1nS&OKU&!Mg4N^8aZSk;TOb5d}~kH?T~24`c{WsOVexye7&%qVa- zmBTY-nggks>kP1#jZC>7LN*0WOKZvTX%Brr`g*%4_nN9X>B;Rr@=kRj$Rk@6_mN37 zKk}$kUaEqPo{vlQN0swDAZIvEjTHl2guJQ~nfSd9wAMOA{fm9nI}&H*T+#~eT^B!x zy-dCgEMvXSl9nRAhFJBK-|U&c>q!I$2|*|T;A*8|)vMOcH$#QUL=+iUama<@0p!hk zO)&A>bG7XpW8hu0^dZu+Z>&;LVi4R@Mf>31VHOY!*_Z{1(;EVA-=Mc#ZuIEKG;6); zQ9Wv8a!2>dWXdtR%P^2yv$YA=x=r=`9+BTWq*f^B-iOf>bY~(z^L#HmDIo6VXy~%I z<%)q5bScXPah#TB8wQHHJiLxp9kPRmT4U74*6Bcb85c5=@B9);S@H%)Jzw8fYG#Aq z3#H5mjXc>z@~G&#{d1~AF<2YCk?JX>JWS`8Z3OWjJ}@KLz&QnRBG7wMpip5JV;Ehg#@DcF*x_w?b$HX^ih7u{(1Q3(=BvFS|btPV!GCnmM%?lE+OIZCpaUzibJFOA|B-d)4)cp?m$K4cW7?mYPj1Ca-^3)2#yAYTvq=I6Yzl zz65->PK|UU{_52sY1AnIW0R{Bc3FdL^ThgO&OU+}d=D>gMz!tE_y#(=H4DDx_Tce^ zjc+FJEdB9Sj9ba0h&xDbyJt`#_3PhY@X-@ao|I7tIN^S{P#h1yy_Z0zuK@7;<)*m< z*DynOovBwISssq%z_(bQIC+moiR{t0Dj2?Q3=z_NgOR#BpB374;s_a3Xo-7N|NR70 zdR}a^W2VlVcK=;es!ghv#X@itmr}BH@{|4T=p|}<1Q#&42ie@QGmUru00wclJT~Uw zmSVPHyf=$Ry2=dOzs8)V-7Nb*p{ zit)Kz9i^@VmHkjsNivY_#kxt2?s6GNK$O*baC0~cME&UWjdYmh!}xwm=2aEI-s4=o8wx@4A}nkty63EQelaN5_0zLZnd8c5w z!yob66-TEj&2VZ*)e=szn*$dHt(m)QBTFUka z(1DYI!aeXRGB4VMJGnR+{6oe{EO*}XJWKurs}F4=$i{l2N~)jSa5AzG#hmpwR;tE$ z2SFC<8uo4UsYRJ*M`AT8_ptx4Nlp=)w2R&myP_Oci^QOP>Ubze_zPabp#wGyB9ld`3u%5 ze}KDKmP*Nu!yMBgweh;;uGz0&GWzayU9F4w`Uuh6#HD$kcj}j@h_Dia=g69LbLK^2 zQr=#ATq2y#RNvp6lP0!*Z1r)(BZHvm}L>J!|u) zUvg%M%P;#r35G7oJQoqIGFKDQg84pYFo{=F3<4@;wHI8vGNg8tF_Nm5KZx?r%te7r z)oo$GCsE8hei~!)^S-XYf4~Om1z{0_ccxe{*D*Jzs65sutSe zdIErtw6)<%iH9k{K~A*I6d9QOKe&l;1(C+85TO< z9kmL=1-9=gF?m{}hd!atkrU2IN%njK`HMg~G!fPrzS zcq*i;DncUBOMnc%IH;8{3@^hIY_l}i!#Xx4tX z4ZEk8P+FIi^i*%w$|X85g`s|?b`j^yA9XwrT@PaVl!?_M(5 zfa2c+^{SRJ`A)_~IrD>k_X$N(x<{+qMjB#wQ8K=EP1(i}UKd+44p*>@>$NBpt@pRG;_fj3A2RXy zpyqD+@2-x`Mz#6}tR0B)(e?wPH{15#3{J`QdC#IztW|xn-LZo@kRgb2Xrpd~h>E3_ zlA;J-g0(pEl5{(g(EoFRQGoR>AV*=-_|`1Z$xa2bI7F znVG`;)dN`k6^awK#YtO$0wp4FDbR-z?WTq8pCXjCA|$N~W{btjiz=9~rx{XtLq-2E zX7)kniwxN1ki~ET5mMysP7@S(B#ETfqI1x-)(1-B_&!joH#A;?IAV!FrMnmCdo`^C zS_t;PQV(9j#!EkGIaWFWtt1g23J#@`D9q0bpt+KzAYIZG*)_J(KH^g_&v8ZEfbUFI zsN7+0!4mQw368C(H_UgAE?cKk#y23cfmN@T>&Z{PxJF$RZ9o4f^-#?&CCK`CV3s7d zTyTd$U?h|jNr1oY4lSM#M$&x$6I8EMCg?FmHC5*wm2=`1&CG8EA04lDN;lBhoI$Nr zu`xXiwDToEr>Xve;k`DZ8wc8j3$+jfgwGGQ`%25GfId2R@V_H@I*)jDVEu7}7#wDB zsF5w^F`k;3#(mtbI#N|;+6QlcERrQrSBgS`Exhg54jbFTCA|`daQ(ZXFsw%l^_cd}hDXw^i!* zh12ip7^xexyiJ}T9a|nlIkmbTE!qw?1>(}0U9Ibw_D(Tr6i4!Ews)n<$b`{}I0n;V z_m4r?01q=Y+Ez2aWVa+x5qYCt<}4boYoeRxmELsCx~!BB(G9d$wrxX0>qSNIb;&4<9Bv2;M^Qcp=k&Yy`mS`$xo}Xpt z=erWI`n>1j$eJX8zU^;pA6n>0M-mcct~KJK z4Gwv77BVA5+-D_bjZ=K#_{_OxV6RGiWNoFy-U>fHC_xFCR-1ojIh`WS<4h|%Stddb zs?@(*?PcM9*Ln$vi%mw+!{}u`t@Ml5q7$3J{B<1Z+C~q!{$!i~*GmX8W~V|60h4dx zS(Uwg=vXp<`*o()k5R-bk1B*~VJ{|Lf){OE)jIW;8O}!Xk`ujf0<;Zf_$=bK4nOuC zzjr6XnYmQd8!M87fy+KYe(y5TWSf>395t3_OH(*;|12h}?N+l9zBLyXqi+uqmy1h| zvDvukj$<63{m5|q4P4WrJU#CAT_25s&h@ktxaKaxD1<$!EDmPr%0yaBW$&AV_^bX z*eo)+yxv-=0Xr?y@wIK4;Iyp1)$L1O{H~|%u{Us9K#uyieXxuN?ZgANmzme9 zyk8cRl(!h<;}*N+Oe{cN$hY^xM2~QPRW~n-ldZ76e?e{(C9#tL?n( zThYgkUPK7}ry@edezgK3g88tR>To)I@s29_ctkPf1k?w5;<8tEr|d?5fFRzbCoZgA zOKQ$T@zQ2%y8;@!<}}fzMIW8XR?{=ymlUef4yw#>y9d=~T@0;ze3*Ia@2vKDc)BFp zN}J1G?*@IfWLB(+?;$wGrddn`!LBZ)1v}II6$W)9_)X9i2VWWc;LG6-S(j@T>PY?t%n*el{IReUSY2M zhZ;g@r{2?W#+2L}Ah5Z%v`_-07(U?eDS+q%n@|)wZNu8ELzF@WSivQiL~MCay5IUPw@K z(gnsIGGEzsPr7;!LPjkF2^q5Z`1`!p7XB-Z-VG&yKwWTX3^H#B`}CvGHI^Cou*K>w zk#AwGC8i;^`rB;C+*HC=ya!%TYvu8vT4$>VN9g#bdwODp^K)L?)^n%g^Djml5?6fdr72ficO1e0-V z0-ENm_*)W_m1_{-sHP$QVe!1lk>%6%Yvz>0u6F}EzGAjBhE_mhmbpo+w z;qOItF|AD&eG*QheW$EU-%uL_m{6#F03Y5=TwVsHB&wy)AHK`EV3OORB^ob6RQxE3 zc*tWNsI6DYeWt?bi5w1B?`_V-8JPb-MBhR%3G@9572o)5Txc&hDP{8%qSmVebb-j` z2r!!js@MM(WnBT&|xewJ8yIjGK;ylAp^w82jDXPgZK4};hVRg0fKsb^9n0Gr`cZ?cI6j} zOsCTq5Z~LH#S@3{jA9Nh+Qn-47Y#cRb`y86#AGd!?XUhzcHaMe$bBimbVvlGpFgR#K2$x0008LRBNb!Q@G}#6Q!X% zS3Ys^wDdUE717h`>}Q~4UhR#4(}D1{)_f{}h%97EKn7*@#FPUE74w2HlTN~|9}(S1 z8qI-k8f1C}miM)pJSe5j(LQ@r{{`I6an4aVYU>^y~mUboI#fr}|jDRZY zV{4P(0lR+uvipXLqLlw2BFm~scm12B#Hn}#Kb=nc9x!I&Bh&2l2V3!~w!8F3z$PbiwoV#{9S(y@jyfJ?zh_$E9T5mb?XljCQL z-i>FrNpVR`?=t7VWZPn!Rg2fT2k=D^U1yj-zj>ve`=ur|O~l!y`iDYFx&Zc~Sg$)+v)Pz_VDWAJww- zqF;Pf-$!PnADhk$=W~3!&j3d!F`j2t3pX#5zpP(*$kMIDE;}7}*y679E?Zq?qi_s} zrLT^}-u-c|E;x%+EJIAxTu$4FoXL=Aw*k~7VMW_0Rac@^RWV-8elq}GjemX25oDEU zG5WV70+Sz?7XslFj=+`Bg%as(I6Zp`6el7iIxwn5o ztscA7r<1^g#Wy`~2@s3q8H%ZUT;XA0frC9m5EZs zOZj$Iopw|C!k_0Yl+pgQiV}DOtkFebv-rig4UZHs32$sV)->CB@8biC?kn)vZwx}& z6Po$WedI3Ckye@-nN=AkQ(v7Ny&yWR2!%}AEXS}yZlEN4d^ImhhorO3?lNCqoAv-M z1^{I8pdY&|l!34+F*!T$%Ii|-v_^7{a^*(78Gm`)oPQjQpy)!bW_fBD<=-jpouhIS z*-yUm%zxvK`YAQmIuEhqi z4thR&5aFCp0U1bec$GbigD8?2#pz`g5Enqo0{13W073tz8p3Si=FYK>G_=s=(g}M9 z^?3WQw$!v0Es0u=qrd1k_th)TT&4mOZtUx+mY1790cD?uDK{Fp{4Jjyq zuS6-6g%Qf+-q4A&?(ls3vgFW+FBPCol#8RE+VY}O`$d|-@UX8VbQ%c{ z=|{q8Jy$AFe6W$_BH7}~22~vBMsV%4!yV<4nxgR%8$+np=dQ}-FWwNKOhB{T?JrA0 zY4B@ycOq-0Z1Aj#CM5xlIc60R%r^o;>x?P9bi%ZnlQ{e+GNYZ=bgT&Azp~0wo^OGA zGFR>3flXth(}vliHfK+0RMQd=26AS-Cg94JthSR`R5haJiGrcg^)DueF7bduT=L;p zF@i7}SiY!!!#8O$ru9LOkj;fMWqU$5YeVaGstc&ec*>l;EnE<%(^k8Z5qWJf%EyPI z)31?kB4en`4q)6#{rzoK(<`IRi?wKyjpo`2{l3E=>O1P&Tp(Hr1Thm7I4>5L__pC+ z)r~yR>FJi{%hv>ykn1!nAh?N^Mjk=qD;D3pyO}*Fi}x~ElxlQ8CiN@M^UanH90S66 z75-50BBc6Md9GKWSi`nfOvLPWylrBF{ODgPu|xkMK5e`E<}>^hY*LqzX4(%Grb} z$&Fe*W}EY|njiXgin-tmp%$DXKP5TB>)}h3)MATx8pNieY3u)ZJV~S{n3|lPs_f52 zo{u(pIf)J4-b|!q_dA*Z#{qG+wcmc3B_dUQ`Nt&RhHW3C&mo_K812U0=gESZJepTg zrDW7)6J5D?hN;sNBfMKamiG2l)`9v(O!W+k{b0Wgp^hE=- zKUc(aR4FBoEk)j1WSXharBshAzS1M_bkHbLL+b5S&1o-g;|4rPR`*kOFB9kQo9p;6EXt81mM9cf4(Pm%8ZPoWJP zcsu=Nw+w&w^;||0BZsl@~p(W+rvptrRklD49W{fc4-=;N5Nt zeAi6JSdGSxIdTd>Bon&oFemeQ_7i|1K*gR@M>rB~WXm6XP?mgINwzvJz6wO#_VKSH zb@UR`+FlQ7dR<-iZW#vZP;nCIlM$CP$@VxA2WyNgsoEnz8_9u2u_)xSEo)@Vvo_Haimd0y2%cirBGUzN%=X{)w5A+{AJxVqV@XMrk63%1(B zp(&sHQt4E=&yr?13SPTOBKJiZJ`xFt`#r>5b!zcA?T00N4{}b+p7REQ^ zN+O#Ut1?vY9wEhIYJK>`*zRe5ceU8z6dRp1Wo20sClExE6pCoUZ7=EF&Ys#=LCwK7 zG5b<0XMrO;>eKptVMdO`Z=-n8FuAxAMvs3$sUQ|py_bv9Mqrggr2%|LnC0AP?UIE_ zJCqoE~NJIYilMC$gEy>OtMtZcdbh0_qQ2p3Cx#|d#iG= z_+50*Zow=C3KRsPBDu_wk7Db38!cTmZ850Tn`1Xs{|xSWCN?m2A0}6$&iXk%r+U1r z4>z21-yz59VJG}N0(32jY(xMHjV(bG?FmdNU%zf`hc2f}n><70MV|6|713HL(GeAG zcN*wd6dS!XDnik;6oq9?FKR04+)AYN{X!Cn(`?-=6wXNs36I6wD7t1l5OGI)z~^u- zk}v(aRd}OiMO0_tg^RF)CT7LwU}?NBmI?-~mcT<5lgJOI zr%j_1lGU4Y!w0>D+NgVA%BEf@4tc}YKG(A61rygwj3u%L6S$0{R8SUx#D4=7>LBP> z&fbhELpSRF#emcOML(o8MU0!w zn2gGf;1YF^NAoO$BMhpd@om8rd&qLno2CpT1?mc)`+>IDcIE8l?8~QOF7i~y!GSEk z5)}m5vUY@0J``w9cFR6@fK2w($0^zp9)Ej-@%2E~RwTcT zzL0c0DUn6@muNpzt)|4+&J2_{J95?t%N#q>4$V<@Wv`7Qjew-3Zt;Pn?jM8$swgMJeq4pio$K&aB4FtNL=dIrB7PVVP=;PD-(`>{ zEc-nF$6JeUHMl;iz9MVZff$Th!HS7w$Zlj{^-+1Yr5uS$W=z3-=+Ao%I~GpdG<2s?&iGdQgAEIylim-y=m0_qghf50yA5Yc61mI`~VZy$*ZI&bdkwh z67;Mu+W8bM51H?ZzhQ0ST<6T6Zi{VlqmhIvLXdl)6fJ{Be*C};qlwlh2an@$+LkXN znIBkB#9Qmx1N9Nz>5AOshoRPNNn*0WiZhr7Dggv7Q}pq0d%z2?NpSSnVn#mh$|Qi) zwbI_Rl&3%WA_zitekfQ5(P}Y#hQM$%Rsiml$uTxK6idCBNwCd(K~~_aF2UPB{XP*FZF*;E$i@!9C2k-Aln&h=|+r@4Gep3;P4CoNd*5qSB zE&cVy81YmBUuu@{k~qz7;;u2Oo?&kokkiy@!urC$manO1Q zolxV7&QM&(=?#f*J1a7-%yCi^W!Kc}IcVm`(Mq~;`UwcmXPP6+r_$K(m{>B`z1wzR zmFGlV6sZ&NaXIAj+Nd0JRQo19OUog~{suFShI_N^k0mhwA-FR32zp zahh?6DlHkbXZs#5p)5@_-hxSs+0F+Cny_UqO(~GlsQa?K9?!$-yIr3azweSeosY1> z5{jDXJ#(tdcBq}&EOw;PDOq-v~8wp`IhJbi(ICJK-6~_ z%)f72yOt19tLdUn?227L9mU>iOd`*bYScP#qrlJ(gg>qdjaFtyBOC|@UIS?PSSWd{ zT^ZD{1|Jq3Bb>eU|G~uEi^OCfaR}jA7aIZN4q(_7x+LD`MjelMH6C?DmgIDI*mM>a zRnze|lDKhC6{i#pE9V^*aLk$GuQz?bxXXHAO`O36Rb&DwiH!SYY(|MTF>GJ+jZRVo zl`nRKO#_$CpKK=UwfWh*U;c+pPfIg$Q&-=dve4E=!^Do~){i9S@$R%Ug{FfCJj@kR z{`Cd3KkvfzGHZWdM{6r2eYrxNV|K!j;yVByH1myq8zI}ho`^O(p6Tej&&kHlC< zRUpXl6cULckCGKYoHr0n*bZ~Q=A;VE*#wU9SYd-8a`Yv$JZ%kr(}4PNXpbNP{{UpV z79OelDd4CT*Z*wTLsDr!Gx)jYz>@ha8_^dbxfh+$OFDFnY6Jco9}`-Q)J`SX*QUD# z9(3gq?#Pm5P58+c!?{!jYpVb^K*+xsBsc+?SL{u1>kYMYh8g(ELViq&V*{S;8{s~| zS)vf_P%S<}Xw+UW5m?0=ZlK*3>D${5AZYU{_@AnTMtVWc1LNob>S1lcVa|{sK1d1$ z4e%#QBcIT!{hagTh+z0o<>MUUcYf5w_MM_{-4pjD8VN@aFNk!|j#@50K(!!^SXqly znVy@{bHgvE;?cQXSg-KQA?waeTrH0K{*JCnE7;3#Za1pyhf?o_30|Es9yl-6_SC{6 z`ZX2C3)q4gR_RB1f|BA6kI?roxH1jz{Qc$)@MjCE31Pu!hkHXHSWSrpRc)#M`{I6I zsP~gqb5AN^7maSbow0UvNk@G?y{FnLL?6ntJje*gY-Iqm(l2L^3t>X z`XEv~9xoNH<*R&WvzfhJrv;Di`)RvOU^9B3e<|UdUEgV_t!cCnTDQ0^gnylN$W3$& zO5O{O>P&ZCcKngVVh0$IGBPSaIdGm|*B{xDcGjIB-o{8lq53b0$ySz!PGN-0fLVFX zJ01p2z@Cu5qIujd?m{b_;($AIYs$3U2rjy2dK%0%dhNQA-YFV9%JVg-;k}ck{{0H^ zwyL2Tk4&>`<#x87bSUKCkWNJr9b`G6H%-W`;QuFQ5_wt(%!b>p7 z*QazWVR^0LH^W+;^8O2UU=MveuR~vkhKkISO7s^*b@OK5Z^_Pw=t%K1D-y@oa_9@n z8ZwXexMg&@p((xS(9(2Zu-h*ZXJiDZ#{wRa8~tBc0U%hAhP+Ye$`!v)2(Y2B@j;77 z&n4qd8@!7qJkNIv2jNDiQ$@-!J^d$d@T{HQe~vC*I7H+Q?_~13s$#ixRb9>I(}{D zReETdZ8qZOGR0AP_>d><-t#YJ&l#T3O)<&_w=0hIEz?TFp*DY5nK|;rW1kVVf1@E3 zY=Z5%AZj4y1*@K8gGr5`hTt-B{6<527iRH8izQ&geM zNXcMPK6*NJ533t}*gX9k4EiF^>f6Y@#T<}7f=7S!H9GgpOD?YxzWvXgSP(JkM07g@=V@STcCxV>HqS=)76s z(<$sd8+?zFmr@4xaZIc@5bevxv%_etaQ-5s->M+%k=8r~*0wC3#g-hZqMEcG+Jf|E z7d%s>mbCsP;eugcf^RM!81Hop-o2l5xdkMWeqci7OVDh8B8c(jJ{bu&|3P1hF}&+aaX|%A3uY5v%MU^Mo1#ek8XS)+y?wmiSg_C z(bl8o5!3A(W@2tc;Ki=04vOTF#Bdp1a+Rv8a6xB?@%AR@ z$Db{^#E=O_`N4{Aa|^K$LHX|;k&HFFc9-xn|0n(IVmpWoB_vPk+1|?~?z?ky>s4B%^)E$^_ z3-%&m!le#EdMMwv;z3Wm(cXBEI^8ROjo*oQ7(081NBOBaKg7D~ygDV4bcn=;)i}7a zu9D8ba$fpyg~RqoA)%Ncg$>vy(c18fJ+OCAfQ*vvsfkXXJ*|Y!I_k?~FTO;K^ttp` zy{F0}T|o{-fq>>I=k1T#YnL*V4@1%SmN{NLERsqj3dK$C^lFfHvym6zZmU9s<%db# z1vmK88phF05BL z_P!1NGsk&(+ATJLGT0-*f6-;CPUf1YW`Bj2zcN46aNfdzv#Aoc15pxW>sr}R5AB4N zcWKXld6t@s(O`S3Ul!?>O7e8zU$Wm1iqS6(oyRa><=7&Fi#Bdxi{iF3fL5`;X^O!* zK18KeWoBWRD4(S;ZGKI?5pD2Kfer{^bLjyb-ZbjSWrGxSb37X~vec@@mG~9Ozw%dm zW{VJeg(1Tt5lCTmWzW}BNXr3v;gWF|*%r#fo|GCd(TtEyf6{6)tvaFc3zPQRud!{C z99%vtHf2qB&HkE9B!Nhb}2dAKuF<&hL=f5F!?Wy;As46ILmGMQ`8jF&YC9yq(D>#HB6ib>!M>t03*9&hXb^s zp98-(YlE3>=HPfmcghl=296;`v1xY|Xhm|I8%R@-1??4R3X@mNo3WzwHKC`4!goJG zY0&;|NezF$Wt5I9L@vu+|F=)_bB-W@j^Kyq$iG}GtaC~2$Djpx@#8Aw3(NhJmD zwGkI)bjj3fE>X5^1x~KtW58u(7vlFn@Lu28K3@;07misa0u2bfOmi~H$NDe@D#OJ` zE;>VE>+1Qmu9_Aa+~l2`FdQ4|&K3!#AZ07WhHZgU{duBHcKj*qlh-St+NCnj{6U*` zU7N^Or=X846m!Cc{@FUUNVjOJQBm_AxcDghziSnqhJEnvs9s(5)@R;_bxt^bZp)|O zV;8Q+SG{;hjepr+I;cTsAhj&Qc6E?s^TdwJ5IXu4_&uH& zvFt@V!hVwBWX*?c+1yuRE%Gpn0%SNMj}Uez4rmpga^<5pmFL9TO51~d*~nF1D7YZY zSG(uwUmf($Y5&H`YA;wvUvDIP)yY(4@}h7Z5D$^wv5^ zUkaQ~=L5F9ZB$#Ad!@FqBE?18f0ZXEum$&;8)V_@{LkQP$xabk-)jrA=`k_q&^NLgi8Uabz!8cXEN zp$iJ}ZiB_vv>=_j^(6OIgS!8Ly--GZPjcPWB@Vue+bE|XfM0(#k+E1p1P?0RW`#!q$t>0`7^ps~&`Vzb7*1Dpb}`BT{8?6%SVVa0 zV=3UE@b$1fxH}rN@vrGdO9_p1S4cgFaazfnUGd%k;WD(;H(?+a6Kbu5C}h+A0|QW4 zgqjcvT!5knbfN-4T!hLLMHEJ56MvE{EQ}OUWzs>KHxivziJ2A&pU)_!^lpAr`g6m|ivp z5VaAT&FrYDE<#5zS)HT}CXV{Y@TAF#lR;Bq?>P^N_JZ`0_T&ZF~+mCQ{BQgQC zJ-i|qLD-TxX1ul8KB_cTGb~7SSLA+3B0F?^(1xscNk?E=tOhf_;1$mc^kzba80K$YeaN>au7x!DTF!9gJtLb#Z}|Z1b|Zr4tppI z!Bx~*8LRqWTxx}tHpy+0X=;T1Et;w5yY*vdTEW{e8cZwv?xvwjaDS?MwR$wQ#Dle( zK~nx9bP1GFig4)!5?KYd$7(PbsI?!;7O$Q>J{Zok5WYM?h03q#z|Sxe>(T@A2|*Wk z$QN{i%E9 zo`fSuf~MS1FjMzhb4iM@kECdJ)sc^W>|@Rs>7I&(UyXNIj*<2VrKFsFA?gxpS%h5MOr1=aHz6f%k(>=8$ik&!6)9-S#A zOV-Nz`!lb@{sdg(UDm(c0Y-*kp?kD8HYiPvsbe~u-*Ns@bp~U_1a-~PK#rhZ@DTz= zb%bVEZ&Qi7hN~6DYP>m>uH}Dvw{xFec#)x0TU)v0Ka!-gLNTD8d!^-$IWCR=(5Vty zH{*e0)pnN#`oJE5EHY|gWL!;YTY@cr03~Oc4Wrq!=(H2f5d^HZPP%RY1!+wLe%p+l zZ=l2afJy6nq!1xdv7Pn&b@%teCxt=!ugQ01Hg5+4qACt3{kYKPOyrUF(q$~j0I)Bl zH!7McwP|=vSmnuXQOQCes%_M>11mKdr%!NSWmcd{BOY(ozx=o`Zd{|iY zQ#6=#;U9gIl%n>PnlT2VnCmbySJLX>x5VYwosBDCYGzDABc4(!?~meC%BeG+Ok`^kKJmy32;ubq&!b z4VB3J>3deXX%3fw>sMWzTJKK$mO<6=(7$tUoT#C9gL4Ow*m1WW^yo^W7^`T>CQo84Jf zJives#Y_ZE(!2+nr2bv8!Mw53yVUHz9YM8}=G*C8e%wVqyfLUmTvP|0?(?fq;>-#{ z-h9@-j{!jPHZ#LMkJ=MK;7S=&nik@b{My_79#N3q{UXXwA!xoE-_i$7aSK*>nTXa3 zn4CCT*4%)%W>6CT2u$8G=+qfdIh;W-^+{Z_fE6<{f0fm(pG^&OUjuMeLaD5OrQMr> zoP&GVMx3vwrl3*raTv_3!7~ysO2nc+8RoL3a6xpq)ILaO*m=pMsjGC8C9k!mLP z(h3Jdl~-Qzv|+|N(+bfYjojRR^lYCQMlPj;7Ed=q#jn6vWTb6Cz@SgsQ}pll-h(?E z!v46a_hNt&L3kvt+;=g3hr@NLm^hS`R0f5}8b({-Yhv2OYAg26=`Dih_9Ft&3_aBcq3UNjvnxb9?p%nle#h6=B1I!@R z$s$UaZUrGi+a2paj=cVuwu*tzjy2@ehCCy?7flZ=+nREe(W4qbWLOlZ8GBLK*!!w= zAVicQJ-e~*Ml=qL1H~=BEudC$+ER%z0VC)%0~cuy+6khp+*dy&m~BR*2;@X<{Tn2t z7Yrea@jNEqm805$uQ{1lO7P9?QXDdWxyvzjfF&4#3rwuafpoKCld>8zsEQV`QBP(4 zE8vHZHS1ET>%Crajm$Ke$f9Xi+$8R)T2pwCqf;r=P#k;8ZXG(;&UZ(Y64PzUF66U* zPSnV;hjqRlxHiC3bQot<3kp6}b8*tAN178_;7G`4rCK=4jmWT|DF@s0LNAo_3 zpkEEtf&(fOUjV|VEFa?D541qPQ*#HkW)N!a_MX$h!&X?6*T6ONgGXGbW>x;8h;d9T5d9Nl!UuYuI417lVP6uR?Ff%t|h69Zb)lWL_QG2kji_D zsB+lmCJe!@0^wo`_|RQ>DP3T!kHwL&99<3>&@07EY-}b@hd{?m{gV9*W8 zYbfEsmX^!Hfw1r^pGOPuA&fvag6Kv@WMdqDPl&B6_{w>93AIvHGicGVq^qeQNyDP-I!aqQ!Vn=Z+z?_2flU$GBkyc8aF%jXG+|sS6 zV-&L*g*COiO?&EXGN)0DXtO+Ym8qW&JyNXvvvHashRTE|TT&+Uve*3i2|^eGbZ9f8 zTWc=erXCqgNSCo72>O?%GL<;(0Z3=~>OJ;eQdZvCG4l%}%h797$JmJ)r?yHG3^o91 z8wSHTOYB-5#BkbZpC6%OwaxfY5scWGeE7m7&h1(^n#tgFvo5l2eLxB;_i96Q^DD}` z+Aur7FW?_qfHw1mfGvUXz%6en(pneztXbuhQYPR6PAD=h zab|F;g5@q$0hB_|wq9*~zSIx|Hz4i$-G;0a{I|?(uOZUcAq(y?oanON;?>J?kWSVD z^qWqWaOiDpXl;#T+q`XpUe#%2mg{A{0d9sgW1(fa(K6~C3qwiAL(pu`57~*6U9}Pz zn9e8xEu>ji>lr=H9HnrfYGJ_AT^M8U*8kvCLZ&L8;wRA zY+h>$N%&RhLlQQ!iMMOrccfeIs|$rKC)wT}M%`#Ee?2*5@G(4L-`gu@U18a&6uv~v znisgtT8dBOc{y4V-eCRFvP|!&cni{;@Qh64y2QOF^Fy1vHBTb?V!HR=4`&`y;ZI2k z&=%yGK9WE{p69BmX(iUM=A}F<-M9QH`74u%jWYyCw%h2pQ*=NA=ZLx#0%E}*^0G!& z#2e9^qm)Nsv?^|Q6P1Xr_R_8)z2QvDoJ_SisY`fQfSH_^8DAE@%o(d%Qzo)i$l? zcSBoIIgcvlU^L!Q2-tRs0=^`+(8HMjK&qmF^p%2Qn1SVbRmGov`%kD?P-RZbybccf zoE)#peS?puE`ap&76k3)$X9_g*C0Yc8BlX)r6ssewKVx3FS$61XbqF_6A-mwmGx&B z?*9wywz)b}{9rXrO!PUfE7*#RM>l3z?+=zsG`<#yKrEO~Nyo!stZVw4aw@E{#)9{G zN@!Xt9qvE8_X@jWQYg>#CT5Wqz4QIoiF_Sv5w|LmqlX3aTh4?G^kWTee+a$ooz>{% zq5Ww}IjpkQCgp9>P@nDOsTntZr?t{$dEH40VZjOWm{^2mr1SI_U3YU#~&+=sp}t<|Lv z^*~?v+npC1t4zfHVm%FdsqVIDE zPtwE)?4NIdDkoK0lSQ$%#=lA~G`@z0pJ9dKu>83s-qU^SxISt_kDi|EzUf5aJ7nK8 zO7AfxSHUopW_|m_3nK4`0HuDGhP9v{%&xP{>%_-4Bzvd3 z1cOB*p)3Z{_TVQGIXidL#(vS2N$@xGk@i#TdxCxe&fxCsnL8U z8sMn`FZoe}Ka5MZ>X3Jsu;CTM6pZCeE~7Lq$VidOlKM)S!hEHJBZuq1mJc5+fX?Bj zP*{D6r#L{~Z@^$*B?T|zguQ{JUNhsH+U89Clfc2&{-q)=IM=Rnh zzv_~X$Zki6F}aw4R=P8#&Ne>5E5wHp1g7Zp@>(u@HN3?J(Ya!P9ebr#X4U8MjP?g% zAb7#Dlx?`oaEu>u_g)c3HpGmthVE&YO;wDHP5P-%uPYfYXW%3W7H8%M^W=mr9NAn! zcDO{mb06SQ6mh*GU`&(rMrKny2ezk2>m*JDtUyfw+cx_X-ylAAr43c>!MKx0pu6F5+F>d(faj0Q zo6?`ztxi~eA&uRWu_P<7l*Silm3anP#0yT~I0F;`<-6@#6ZcETEPPLg6xTKBh8*dN(wgv-a?_;RF9w(q1h*|S;CEee zkY@PVK?@bp@bV42SCeu`nxh1{_0kxpTaq?!!u83k!PZG0_%!q;QJfe=FK3U!{oG`$ zKqg39m=W99QazNe;&r{}_$gJl_bRkEbZ^~&!z3jCA#kyJsAx;pKuatK?_@|Qo`e^D~AgxN268l-=b|?{|A; zVW3%)1nrDa;B)I&o_+c|?1_JHAMtD2<$>?n$2}@vNEc4z!J}ZKU|i=4;J|>f{W!n2 zuv7i)WbegCx}Wyj{4y>s9t`Q$BOW*%Yv{oqE!r*$q7`Ln8?{YGRzxkdRdv{m{D(m#qmO}AX_6>>q^CWP;tBj zk6O?~GPpaY`npS@unLKW;&TK)a#H@}N;~%6g_e{_qjs1@@J%?@Z)D8E z7b9(WS%r>yFI3qORlV5S>apJ8$*!cmr6Be5_uNlj8wMfJA9NqHeO(-vK)_CG;oOlZ z$&z?@Lzh4>JcJztxTRWOrM!>K8Ge^?0#G2f(gN?w5f?tlpy=5DqpXcH%JA&(lOWy( zoM}e|;fb?ICmGG*bdcjPO4_FmOjY>Q;TLS@u_ajWk9IlhFtKiy*%J+A(cGu0RrQ1G z90S@038kkM->Y9ZG5jaLd)rh^a#Yf;!q#6z`MXCycF~mfLP0K4O-scks;NS=HE_&9 z-ktZ7#Hl%q8hSEvy(`)>lN04x1J)d@#F?Tce(xU3kCDAueG0c3=lW`lJAxjycKM&M z9PnAco`HGOE#kY(put-}2m{S(DADs~gY%P6=hw&8Ox&NDqoLIi5^J8WcNsxfJ*s@n z{GH5=vdnSDzAS)>1k8ev)b^*ya=1k%+Ccln0%lqra|3bA9GR0YE-3+n@~-4nu|mtS z<7Ya<4*cQ+_YE8W5p$QY#laL9NHvuwe2wFBIGp%kg(-ISJJnanYW!HI5%JoLip?FP z3BQxEQ+oKN+rh*&H4(0WchY+(3`nXtX-dp3mC;sgX5kT6))|RNYUwzzy)>JUC7J}J ziBqj_TJb{C@1d;8@*2EL*6vw#-}XG=$*&fQnBXwh%^*|kH6M-8K0EjV{MV1ktuU?v zwQGF4>`U@hbfVzujzHRxPMhzF8(L}Pu&Rt@#}v8_3d3>@e9O+5}afEY1t6DPVDt@WzQgB#~{ zby0@gdsuZ(%2K-uywSxS);tVbqt`w;==XxtHQXT@Tv)ez>oIoMptT~$M=9<8lpkjWW)i-B84{WLqeNXgDdG;>XxBi8&Sz@fs2|~n#GyyfoJV(GR8t?4AIv^ z;z%duD;2_LO< zQWH?rvnF*DA_Lk$zW9z$VwF$OlBE&n-JIK7NfxK~kWMpP+CC5jRO47ih2g0Xb(&hn zBzn;<@u~2B#r?L~s*vnYAn;9;xho1?i^1$%8wt)Kj|P7JMNaC3hC_YEJYAsPuZ5*5 z2e=dmfmC0L8QgVN=y6qVStQ$1_(SaT)u5>XRESvl86g{O!A#BLZ1kI;~Q6PkF zh4VKOO-&cm^J9)7F!FeTg=#;MUgd|X=#cV;{e-j_7hN<9($ zzNL+Vb_wAXY``qppWWVnRH>seW$;}}%1%>8r@yq0mvDqJv46_=gc>7RZ-hAcS#ZHb zpLQa~QIR@g#1c<=B;k9RMqoF`3nm+a>PDI0pt1`G84V2>f(R!HSz&6F(U*?e%3hDp z8*2GslOFHluMRKJteA=&j&`4lkXmms`OoNbb`_)EAPOAOgTULt6DZ)Y2q%;xCS{A| z@oEQ^NhP%S*wQ(R08CjZtM{S~$>4hpc3OBg77tlivt@lg$bAUyD+LuzCs)W4uZa1U zkiQLyd>?Lv$!@q#xK{xM4-yE`_@zC)$96W8Hf;x#45`av=A8`kVYykqa55PydC}M_ z69`YEt{v9S5hMd`_Lc8sY^7h-?i;xVW;Q5x!{WBI1({u<2HVQnu2jY!dk6(5vZbpJ zE7Rpl_OfU8Yr5iuIc_Cvzc^J_(ami|UTBXy8DawnJ3rs9vi@3*eVDmKUz?tivD;#7D?%+Dzmw^P>=#M+7qgJRm{(yWeLjO->EMK9ipdbK1KmfGw zuh%CA?Iu;yF=-Opb($iIXyn&}gnp*!KdlP5&t z9smIk@{yuRvCALi_cfS|)XU}Edwm)- z9#4SpS$WQQ_R^1n9rJ^$oRH6S5%98x=lrRdf&$Nhm(6KA^n0?p=mq^ZSPPk-)0k)h zK8QyPqnQC}CIuk>VDvSCL8eNS z_7?!wZZW|^On?i$^2Tyex~e2wF+?GXCJ#4fJAma5gOiEsn@&skPPf{q;xBwWC#&-g zItLlFB*B{CB|#vlGb6}0SZWtC7=|`ws}Drw9!67x0hiezsAi z%|eVms(n#5yLEE2xRQ?2*KBcpNw?0QW}{9SmxouCK#GEvOz$=Szbl@W(D!|_w8sHt zXI))y@eLQ4ckBgaZ&Kv}_?NjRkTfGD$SDN>I=sz zXlk(2blBER`ASnGR397o5J+p+G^|4Yt-oA%EAF_8*)SvYw0Bmr$Wp=i8@VN%zf~Ig+|togO<0*bJ=IiBo?*HgXh~u;y%{UzI{o&AGu~R$8aAqMSn+ zEN^3OTRduB9iP4RLMKO@xv)@2C-cf$VXT%}hi;y_v5o0;9QUY{r{)$)xFXou|1mv@wIcx9S_ z-}f(H0!kAPI-S!Hk&EYo(5hP{UHk5KtbO?dRnMrLN}91T^?JyGF;G#j;t-&9*a@?R zxx%jvaTtzh(hL10nVmooybTc}t;CUku!z(*_DE{p?*ty!_k#9f{=n>~K8EN?60$v(IC3zii;Plhn>%1J6a8_%+!FHm>xN2 z*3QmNc1B_cYL8q>4ADc%OZjKyUTtIw@%CoUWzG@q{m0I-_>JpUHqi)>azt1l8SW_( zKUD6xT&mzRJ!b*34YC%vr7_zE$aIcL!$j)=p5%d*No>Cx$qJ&wF7yPiLVME_3|Aha z7OP2&A^c#Je#YUjk-JRE#qfL6pMQFe$3|MqP1y&zg8}kLZIrkvP? z-sV~RlFXzMo5eCd4T3Td6sZ5>MC8=p&%{2Itec?Lj# z#ld1|mYFNCr7-Bc^2_0s|BY{)JCB}a7E=;$V-tvL0)m1;EhG2vRHNWM zD$uE?u5#RIY9UsCWD*4IS@2YHJThRxIF|L#Leh{+@e&=y!!T(0wJJKH{dWBL1L2l# zNsFQzQ<1TFLqfKHbsxyfjAJxJL@JpRB#s^K8XB_g0>T5SBaSiwy9mN&;5!|k=Y`Sn z-3JfSNv#;h&?*P5at_ne7Z<549_8GBZ#<1)TO`WNDf1dgKMpvG`8Ho(^tGUQ=|4}= zON3arlEO7nhETzt$&v#G`(Xx+Xzn6 z)s$jXx3zRE9#GFb8jJ&~0V*arVj4O>8n{s#zM+d0#xAGPpd48r`SFxzpVv8z`+%n& z2|m)!X485YX#{f<;pdp+DJ9rZXJk32EH0{7g-i1jHJ7HRmtJ{S*QZ{RUMTcw%os4{ z@ZHBux?58{g|&QmWSZG$NmgiT?dLH_xu4lpbtKFi5N5HGg+eaXlOw%zeg_zD0((vB zkMsxKhcaJHPrw8SH-ycoZJH6Msf_P=^<27(mdh~^j-mDVq=qd9?CIV5(tR?}>15-^ z8ZgsoyNWm!98Eg7P3M6?2%Ix(@fIVtkmXTrXU2%NLow=Zs zm|eBW<*pclHbN+0-#IMah6R1`%PPr7U@#UMBksoW=s!@oV#PJ|ti4nFHj!-G;=@aJ z%S=T~^gctXupU({)N|W%;b|_3V^A^b0{n<9RyXhTM*F94J(?%Ft2!FRMw=}n%I!X9 zH`XTDhS*&ueF`7?r-q6sj0v%O^RNR6{$;L*X#b^nV}lF}VkcAT0Jm(=>UtiyUD>PN z7%KID_C>$xSu!7S5yM>N(W4H)HyNwkUH@>@mQGWKLVhdeCf`TKDNZ(638sq{TTQ+I zNF}!8jd4Y>`zJXo6{BN*52rs}D4I&mTF+DrRuN-_X8Zw}aEI3s9kS7SAPb>R8g^o| z?9?s#m&Ef0TM88s6tS~Y263<)fP)c*MPKECSR=)Wx0z74#hTuJoc_OO(~5!$swK-3TAD zdhT#O_-2TvF_I&b{DLW^z+Q^Me?Q#2a0!~n1?FEI;a zYt8Emgr|rW4m;T|85MlRRA=a^`R<-1T~`Sq zkn?IjH3|{1Blr~fc|7Ty&YK``ZGQzNYDI6-RgkVG8r3p>teA!fjF__NSmtmgB0KiG zu<7wDj%mn$@Bk1WW9?!nK7YEAgM!`fj`c+{iP4s`Q=48Rw$00mvYW zb+QY$l^*FeGkTsMnG|2yrLL2u`8;{ApFcoL|WKdhznfCk|*vm z!;6An^DdgM{v2{$Ss5-m-b-*Y{sb(p?S!cB_UvvpyYT@i+f%cS__wu!g5jYKi?Mb? z`iWmCjv1IInCMgnCRy0mPB<0DQawq)Cog6W)Rml(TS-2cPH494_M`b{r_4c*#!4K!s|3hn6;$WZmb z8fJW!Acv_d)>80my)j5tChgJ5l_9EdABvVb`@OA5bCD0xgwm`lLa>ZmJnxRalzYH9 z|1xQZPycOmjvngvO|@H~*U0_VsY?VF1$Wr?e2L0@_`#&hkH=@?&t3ZJ7 zzx!dYVXLL>eUee)yO!$bvas$tDJGZp&87L-6l__-7hdF0$gd@STB-?pLuLd_cIQO5 zhDo&zs&`g^xO8GWlhv&p3KjmfMvE~0#b`178?dEmp&uD;j}Nahor#2=vT~ON3flo` z*eV6fB6x`$IW`n#ru%9SVH!nZ<~N)Kzna4HP>Ctm)nCPKc(B!AqLU|HG!QycSuU4S zo@9(4x0^{>3z99*3i(WG`Yum>_v}rxxTy~KBuB>M>jkOgz081kE{?CeSYe&_(!B*! zRxzfhi)yRHG(F!k3UE){29~r6GF4)?6TMJwg2k=(Z=(GyOVm@e5^%WRKhj_m^EbhM z)MfXiTeKYTdWF2m2H(Ehw{je=dOerY*ROaEp{+JxJRm{vlF{Q7(Fx3t4MfO#=J`)lO^X1RJg9{a>hY|n-(h!IyTdb1H?;{1@ zA}pY|goehc0lQ5mm{@?19@90LNFcaC4*OXmhvfo%WBMb9rHj|S>;uta#RLQSce6-X zCUDICBqTlGn(l8Tk9O-?WE= zKX*=L=sO`R4i-UALO1%NTPXTim5H(`QcfFc*&^>uzqBbZx`oV%|4K^hbfcZ~k5&(m zx?9?i4CM5!ZZp47#rQJAJ*u(E(KeA8w36bz-4og`Co!Qgnb1$X!p9v zQ33rJcf8WD?&a&)YBuj=2T_m@~ z0VcC%UB=%StR{vG6b#TWi$VOSMx72ka8|^@_;aGC26fJlSwuxJ?!u8hj1)3|uqX7f z>-Q6gsw?5rc;C|{LKT6#3eC|?_V@%_t!(Zfd>jUcQY5!tcAnFN{G76#tr;L9x$L~n zOkqII%uwMzR{q(16O5}Y^CtS3G}UN1Z_(+NBhb3feO2EIl7V6IXsB?S9D%w9P&sR& z;gfq}!(lfZEt(KE+DmZ|#qQ}wWqB_(4Uk~IxJ5phWz5+eFm z9PhEUt{~`G#E$$Ebx8aeN&HFxs=0z9SxskP+U-3C^;k!=i{RX4#(RoKiW`;ju1gQa|7X@* zzMwi(AVOKHtPVsxyt5!CTmKo@sR?mDQZ11rG+i5%AcMUw>YmhJMgG`{IPZPl`UZ)- zqMq4RvTq2wKVAFnd+jVHCb?DGPoQ$PxJh_rzuoh3R(TrnRj0Mgo6=;)D`fpqpM}hB z8Jtunqdn1b8eaQF#^m4}!fQ-&QBjYca=O8mLK-9lB1MJH0$VLYe1a8$P0<1ea zpCB7fhIcG0&qIg2yVFYp@A!yk>j2SqWUAfSQ#dogfiq%AChjtN8UPc#?m7&1I!(9f zBfvy%I>1r`MFz+H_bQqb^~8ecBJX7A63^~%S=%|j4nTvHp0d=(T8sZVoG6$Y!F|9W&S}fM0wky2G|NR}nBBKsjQ!nzqe(DWh+_g!*5MMki zov&VTC(x}uc&#C47PRjQz{Q=iNvWXihawgEvkGQQt&KDE&pryLlJzJ-v2Kl+V&Mm& zMI+a!s-(0E|COsAS80VKNy=goNop-pEy&0qxZnr3BGHuBmS})*;Id5vP{JR?7LDBt z-jlwW3AI@cOq#wF3iw=kQc(MZXB?5a>s0VMOxl~t!STxg-zfg8>=e^svxq)c>P%&I z4cF&Nh;c8?_*z-85R>7uxu)STblfn4hxjij@@#r7s(rmWjf8)b-6J_jF7~ zBIO)bmrBIWd6~ir*CwJ<4Enj|f*6k>*!$v@D&Bc!D)7)$q2e-RT~-<*LnD8d0?R+C z3s490236L#{W*h07)6Z-?~}xrqb#K5ggosRiQ!EF>EeTz&eOjl?nuX0Fw=b@Q%+{i z%?V31!J_qBvSbiO;>D8DPuuL_;dr%`b1NR?6QK%~G^E_dFT&JjGCC)rsJR!GbCFts zNAUt1`*GZoZA>ZWv_DOq6rZuX6xcR#tR+#3dut?vBgK9OqL*>9nPuu3ugJUYCpBJx z%Ps=YzbtqNwCDOeyq+AXM5hINkR&8FBH<1X;-jA( z>^;l%IB)H-tTI|BnXi@%y!6OE)-T++HWnfZR_0lJpq+vQyof zOX!pZnQE;u?JFlZ8Hscq)FXb{9cZSUZ~G9w?5(TtNL7aAAlzOgYIWvsusNeVMv+I+ zqpC-x;5OTK;8=_gvbCB`A#b?5J4IW$BHDp`3wk||6h7}?Ak(Z zWAA@dy8aga5KVR~CEO8*%XfPq-$QMbWn8BDlZ0EaiwBP*Xe)2-O&^ZFqJ}MYlO?rl zrcoy!iQS~nit8z%2wOutQIkY=_WlgsT0t43Pgr8PG|T{i3xcC4aFX5bVdwW7+KG9e z)9ZnXwh>|5x$n*C`bIKmQ~bolX-%IM3T0At{wC3*LX4P|(2e|Ow2A>d8}9LR2iN&*K%Y=Sd&bY|J&7joHzZvv?m z`=v{&vI!54?!Zfmxe?3OT(8dcrAZrab9Iz6i8Jg_j3-? zVmD75jaC3Aa&&c6N2wvbFS3-FfJgU+(7TOvRQ$a6!}@E`ypE&RHNRQL5+vY{V>RyF z4r-59^I#{A(GYECDH3iZB80l*|xo#84Mm4w)N$aDUU)(dD>pGs1=?s2k+-<&*d0V~>`l zjY}=$->6pn+NwI}qp*FKKav4QwV<93)nILk>CA`h)<&`-NovsSae9~5ZIl`jC4rGt zJdu(}XNyZ$$YPPf9orq3SnB&0rOWG@ICpl{EdivIycYNSBJfHof0Rez;+CqZ>PrHyf|YErURm?4sEE6wrWmN5?T_RPWvhX= zNbCgriFU{8p2h*!GI!*4Q9%!qcb}#or%%k%Y)eLW#0s3EsoY4^N3_o$t5z0^jg57? zDz)N*x@zhXCTFLOo`IlVK{S_55i%)=uW~Rl`Tr6b%1gVg%qVOjfL|yETjr^y(NI(M zFr($>DT$%Yz~9)hrl0?K==E75oX4S`f3qt##ch=7}9DlS|2^v zzOi&2Tnd*}Lx7Rh%fFGx)p_@lK;bF0TcuN9GUCod(DqRexBiZ0_dsuYpR9!7o3)a7 zh(vedEZdQ7yv?N%BN0*`b|drlBmE7cqC)2lY%=ZI!+@^YU8@q!>WzO2!!7nPYyN4E z_dJe;{XEtQydCFVNia#$e)u8ICDAFL=S%roLqu=|#5&&W(y_2heGX zSny(mw=-S9`Zc!^Wu5L7@r<|hfnCVnsd<61Gr^6jF!tcn^l`i{qbX|k^88KOLL)T%^R{%(c)>h z7+Zcx*>0r6guxjF$ZZ_U$)KW8C;*7uV|;M-DpLkl#vUsT{U3LMt0+ll!-ZhZtQiVz z2&!q&sw`r&J+B^(pQyPGO1ST5!QU7ox47j_#^jN+TYJE{zXsHkwk@Hng?@@JhdpU@ z#GLU~&+X-k4Y;+8wB>BU@g{ah^XQiTik`pMIS}M7uTfc5(~M^NM_#1|Y*4OoaFWLH(v zmSv8o@NlRR{xj41aua-+KR7<)WcYyY^27$i4}zX!VdT$MVB96f^>*6upcKtZ%x0A+ z8>vOuRjt>h=5)(HGlcf!zn|G;&;AYw#2B+Q?oT!&s0}Yhtz!q<-y%Z3_@!2An@!pj z;_<9aFWaeZ{_*DX8eR&4k?Iat`Y$|FL!(0=%YZ!?wGX?vXX}S?dJF#} z9I4MGsc$41qHD~0)`=+=RAEe}=UrMVjjGuN4+Ei~Vp*57@(kgxCy(}8bM;gzzB1-t zMBk3}B;VA^+0edg*S44tu0?~h(tDYD)ze!@x=)-w6H9JC6K#6lgtY5?A+t{(%GyfQ zdtu+HU_1?Kt}E8fN(kVRT?;HuNl9ek2PeovuOfi6U}wl^U>4UOq)RF0eodt*^|doC z{nImj_mo&FzhVTiqP>#;&g3j<(b9$lfl4G)5V-<>EHvr{ihcCDIZdmv`IV=s8klmH zg5l?z8vcQwU9$1&X=V1_OTF`bbmv0MYp;pZjdT>}Wa6%KCJI{{SctaS#mw0BfkF{b z^M}H-@_(r<34;6S607OMc*q+7ogPh95kEY4v{gkazy5} z*aG6$GT){B4ik7A!RoZM^q7j{&+~6AH4u=V|LjaQY?ZrEjWcj3iGer}1N#Y~Y{2xd zZ1)CEKUB(Wm7C`%pmD)ARfoj$r$s!(8LY=Mjs+%(IWSb^&}=vOh%=KPs$f4YF$){FSd~Fe-_aLq@y3)2Crp^=+%IPOyPO%*pw5mqCkpt z2u+69VLq>~1x8n1(}Sw=Fkd1%T=Q9Zpl$j(woC{ovggDto2Q-TV_rNgi{MGhtQ;8g zI|c5DK1NArU}W;H{@n9#K)Z8{StOlr>-{`GAVj=+8m8-O5tLICAiR;K_z ze6;YHl|<^z?3wON$TlTk%{D04SI%qP_c3m{3DP6L`a@3bUFDo%((9~v)me;J^!$N) zv9vWudV2BwMlS;WbdsB2D#$gIC#_c=UFgTzTG{_MKQtH$I6$&U1(yWmW8hG!#4u;Y z)Gbtk@&zYJoGPQU4bdI7QXJhB_FN*L;+TWpx#pqJ%m^Z@I#4C>SJmea$Y){CVu123 zQT%r!(~~{9FUUpTYwkFiF^sNll%V=+!}ZJTnX{=AuQUERUDlVBSzcXz*z_I~ONC>@ zzH#)g zwF$#;53Rn5mT?7JoPgNG=vHir!)N-^3?Vht*kTB%c=VnoiP%!%({I(%+rA_2LCr1$ z31;s9T+{)@rF}@ac*i~7wJ=;&16~GIZm0&r?>Te$Egpk)zl&hdlPZ+|L|M7;8Geh4N(m4TzyN}3I_ zkf#MfR^>v3{3#lP=@I>iO0wrfa9;)#96NSB$r&DBavbrraOcj=VDP?Ea!E~?KQmk) zb;hCj^oxbO3;GCGGhO!gJ3UpK$O%!Mvf*pJU&04K$DyBgpyrmw%kxK(vTB}?VVLAMvB$n_pGA&iDD3y(q^t99(CJk?b6DkI&TC75e55_WV^;~s zdtz%XAUL^jvvFsZaraG~l*`r67mS-S$UsXY(@QfW+47|$Zw~UD(y~J@p205?cLw^S z`iE(+rj>$_9=uNNjJA#U4}oR*za+TkyZ8HPLyFat*sa+EM8OzrTkmapfrGg$ydXR5 zNFNeLH6YrpI@=YsVDRA~7xIi9xRyz>*Z)L#PcAnCHV{m^${YFRSO?w7vk+^0Yno{? z5U>N%V0`{z%Qus-f{utElc-~0DTG$L7t?e>SlckIul3EDbiS)9<<4o3u}=BAEoVaH z)Iw>0qRIe%29Bted0KCM`-eFK`N`nXe2PFbUK21Ge=YAP#XBal<5weieE!<~it@7l z8US}~6^$u?vTGOfy?Q(i_5pUwpqS(4XQNX+Ae-KzgFxdjz^{d4cZbyG4JJFRSmr@q zGM5GCe6m#LS3lO9ZyD*=vM|?k;f7&r={q5r-Oo1pOo}%7K#k=1wr!G0)e-l*3(nU$ z40Uu27*7>qk*T#sLoay!%XAov87{d52YT~)ys4bem28x`O{b33s!1Z&ppbj-7P$K& zzc~qTnfrw_Gf4Uf?%WjSCHv|qbzPMfP{CPGXpf?>1&d0cn0&<`&5+xAhbej9 zr}?`TZ(;~3418F;5oFM*OQU+Bn{zSHe*jK;2Olh%QG?o7Ti2N6N->tHvwO)<@jD=i zs5mN%IQ51=;{kLaH5J2sn}x)V5HmMKOCH-~>c^P!;fkjV;;0tJ;*N#eriiNP;2?}h z4dA^3OU0K@Cug1)c-c2j<_9$O=o-CSxBK@t~M&X0adMrk@R{TL9 z-;4<=XFt%YBr}j$vtxDQ-i+fEc(;||L=n3qWSGU?wq}DXTYR27t zFu~vJ6Vk*Mu|{~>!>Dcf4(F$Uovm zAft)9`I+jsEDF{{*gpR@;J@4?DiSdVV~S-W3RzMq0hX)b{v`fi?LUD0w?#?QxZ%C^ z4N3>Ryi~)lOGaQH#PSCA<<2oCQ>nj3p6yt6XpZf*>u8^Coixv(UeKAiMx!x=qC=TE zEFR`&EzuX+Ej##m;Rm}O52@c;zSKw|cI8B%s4Y|?a=UhGNs0O#LD2;AjaN@ZK~p=pzDgudNY|lqC%aZmT97+=P>C>I+iLw3GkU<&Eo#3jc_H zGogX|x;Gs-Z)?^|>P4PbvOlr%stXV_Scvi$qE+{Jo11b+lh!=~j-}a3TT+I-p_1ZH znPuSp+CXLIo({7{|A6+Q81*niES@kWF7})z-ps1vLP$;puaJCIL7E6zNMh5x3{#F) zt4@@=`=+k>#54qz#XP_>U-#a(G>)w3F*|uppkEoEd1FxJcfoB9ZfGp%7MZcWprk+A zX|C)B;JWq~&ugq}-j^uQMrHDuDMx-!!Vs!^Epir!P_GSItctN{vudw^q%dkO$CYBN za23lzln$V$UIU)HuU=*s$}}g^Abn`@r-K@7J(-HD2bT>FAd;1Rb#SbhOza5?L8HvF zh>CCgykVF@2oM1MJ1oA~rQ-l|Rm`;Cii#MvXEb9+Xydcol5mTM5~Isx#Vr3A@J+fx ztOzG;Kla_ebi*|;0KC7abY8&{Ezx~BO9Pa+i(AA$90jcVhAoCy5JB5nL_C3wJc_Hz z;Wnt-WZT>XW~oz~y(TUc<{d&dri5k+bReTpF}Jy@UZ8 zQmn@Mos!Vs1~^!SkBSqSUVHc5tH37wGY*NY9?C8)+0@C%YlEt9`2}O5+TMPBkUXn) zW+dc}D724jJ~+bK3|kojQ~1VaZ`qU_6x4_^jWjFfNKB6{N~R~RxWIihT`>UQ>{=}J zAy%7CLU^@ebeWjXjw4h~k^Yz2M^HNjAietHgam`c0HIGskWg6!oT|$dM~5EO>yFGE zV5(sS-^FObs&IXGc2c`{`0668g-yZ+?;&uQX}JQN9b<#?367=Mf~R{9(v_X*t$)q+ zA!D5NW*<{-K{WsuO6OumdZj!D3!*&AYM6Jy-IBK)MWpMYbKORLY=cI|M47~)H z1#9eLJ?8VrLQl0)jBe%T4cTWvA~hmUC2P~T9w0RQr5XZisP@`-RU2OsxG~Qd!f^l_ zod}Y9N@BUy0u&#yv3Dvw0`>VY#S9dIhTB#Jr%Mspp*+$M8Gf9ekakcH{q++czEjQJ zM1)m9S#Ojf<$}LVQ3^c?7Krz>X@nWHfb~T}bbZyJS#m-z8rJOB^i+8d$>eMK4^{A% zVAU}cz%#0{hBUuOz#^iIpS}laM^#D4a)a;&6`_D27`1dS$eggL1BlaPI$Btle_4Jr zqdv(>V^Qbp*0pBwowK>N=0(pKH(2rs8(&wnuLS+QJmD1_j@N^$`(srnUC6)MWUMBf zNLS!WH&B3|FX#$eO*J7k9@KBubW%Pi{};<8fj8}e0oQ;cHT63$uNH~^+lF+bmoCq? zhz<<;Y;?SwJks^}LFt>33zj|~5mIZqFcyM%<&w6fDzSi2&YH`xAZLi_(QhGFUK$8J zxtl$yCcT0tV5L2q-cpf@^a7d{mX3{YRbm9q!ZCk`tFOzB23ze@XGXa7U*1g$givsN zD;+1HXr?@>O!NcEyEGEy9msw^sT{^}R5B|{S7LL5l`KUT4z$dmccn2jpKmI0%Sy}e zP%A1+YFW?9aaIq3=EJErCNhAVqGypMjBGFwn|=WEqzI$QSJfJla2HbXi6y!v8Qt}S zxQ^PcAE|{G#bjx7D*?|>vtVniDZ5hl2V+GqfBL6Q$%;@AG8#-t_9*O|C##-*S-rst z*Fm~w^JbPtvF<|~Z&6MKZPh8OhJzz7varbUnq~&Nl@2|$iV;JkOS4B}>{)sde|q1u zLB3AuU1CdpT(CpJKslX6eAV5uReDcOu8?ETEaO*^cXX#^%Ba>NWTnS~s8vP*B*r>* z=8co0-gvlP{%_d{ReC32ii*QP4!4Az{66CKC1!;YX+z+?oh3FkB;;_ruR#{gk~-w^ zPy|Z1+H49Z?ojt@U|8(Q_e|?;d_l~9(Gd!Ai;lNC=J$+D_&u2|wFa)%#~8yqcwS_s zMqW7TBlVx$pg5FNi8H!_)HBI^l4GmM3i|Xd1S@0jZwS($UyhY~f#&LKrpyN%zApg8 z8l_Se3N)h#q_HBUu!D;!Ewnmz;wt|gqNHKSTVvrV)ha)@NmpO^05ALlTMN&Zep|+* zD4?*7VC*Kuj)y0>+_seMfPWqN-^4fst5(jetO9VT9?PI!X!As4PcZ@DK!Y{xb!`NR zEj9I?$wPtMLcKE@XlLQe(*_ArhYGuIhT>{Y*^S@{>s%Iko0c3EHwdwpNrFb`?D$)0 zODWV78Ku~aMq<#xQJ_zMFRz(a9mKn$R{gpWylWh71X~H6DU3+v%=0e$hc~@L>-RDpE4Fl2pu`^PK{Th6Bm?hxe;mS z*ZY_9K?UCKSFC^c)bM~q3MD4ER*b;Xj68=nz4Ybj^u9-bK{rgsi3%JwZv73hI1l^5 zu2@eMCe4z|V|(gmR0|9*7s*+Xw2^_>w#T@!r)^YScC45Rkln;QBSJg_B=!DAfeZ|S zOE_Lpum7+};K-~jY5cP0#33MvyeOH#zcKdLuyNWxG!6R7VtVIx&X(D2WD&U8<9j${ zF@F@)6TfOG$O4fYF-V77sC%RvH;40b>XO4ON%tbsnAxv9T@mcr$H7McUb}iQ-W#F% z`+1B~T6uhot!GS2Gojpl$|d3D`2-U~HCI_BF=}L?c>eoVZifnH1b2N(C3z)9I)`$b zKxc!lM>>FvF`BajOcJ&q+{P!61je0lLIMpveBNQ(=~YJ*g2<1Wxvy6b@c^lHmVyCv zN!T4(MsjdS2R)|d$cb|UG$o(}@kz?(yfiiQm0D$_J?hqqt-{qXnXk+*0RGM>KFII4 z>p5QIFc)_zy8tlH&Z!+}z0+vq7usAY38QmE*71-dmaPMLE{GI1-2NgGaMw^QZ5+b7 zVTv{A`=yedGfwKkV~$pAy^X8*!#kT8B5Gn}ln7hfTPKZbml(3veM2>^d)_Gtxx)&C zPV$Ev#-@dv>}>5(d~9wsQ%|Fveu}RX^3ng6GfQ4XO{crn?3*E*$;6riHrd#5TCL!b zT_t#s_Np}+Hx9!$0UhetaS$FOV)Oc1iTzUF`-!!5kJ)G{?T?;&q#$*p{yj2|P_Dc6 zyIN;mqlm-rtW5%m!>vTnli%M}FY=>lH02`FuBKNBG|x~{0+V7=^G%8Z-jDiSOS$fB z=z=#BC|`318I-s99br8!-)U%`cREiii{OZn^P`HKK!Z2aZ7N{*XBaRJ3bQyu4(e&M zL#45urI&r{2)=ak5wePqX{N;EeuE+f3VTX#a<<^Qm$8eWWOqxim`{C7CE$j-~xjF*D)n=8Ls$=aT!U4szSY!Jb@mn+1cexuA)?V4{!<{sI4g%zQ(D zoqW`TvW8^sMtoH=n2=CeT1dQay|;n?3N6g&TEORH4-YeH^u|Q3guTLJi~!X7Hwt-Q zBzo?l&>D!9a?sYP5@&{T(79?c5o>H($PnHC#6#u!VPZ@V5%Tn8?{?QGUl$tovj!2( zlrX(cFlKu%3%mZG9Or!gB?~;>hwf8thcL%+L;3aT5v*b134e2pEc%>-s~>XR$ZHmt zQP@x^$(Yj8sZS9x=RLOre&@zb0k_7WHOi(T!Bs89qRXc;_rsNs0yTxiuS}xFnOc>YOLgK`IT!G~d; z#>ilwLj$3d!N&iS@7OKe8%h;V6pgJMiE48EauX`8JDg;};lRx89&t>mQ|UdDwvi>1 z)g{zN->sm_1nR6tG%UzoHDF7~#)oD)UTJ{0=>jGY+YzwT)9@mNL)~9+3Um>KwjD`4 zEb9~reTkw{2jE@Z()BeZ58n+MM2H+b8%*uOg?I3gw4o$B)U!+1vtAtyH`>@?NyN1` zx85`l?z?)*qIopU5!j7hH^B`wO{AIPi6kfWKL^5FbRKXq!W(?GrUI?eCR_nj0f+B< zzS@)Z=MX6*gL$k6tS@f{xHGy6%n3N8O893IzA*|AE_TGvT(VQ;lT5ucWyPsd;f|Pc zKBY7Ll~%q)ka?IMruT30s?W&9h4KA%B3t*z$y|PEPV_~-76s!?^*0UaH9mEmO^4eKwD?sfL zNl+$lRHz~xYZmhjTxrg%15lUlhf;8gF&sVoAt5&xa-~7@SUFwe2N)~$rJj47{gvT* zb9E+_UIdY9!&s7vmc)7ZNG9G&NNgc}EF0cb6B)BnVi<{P=HI=?(Oiyc?o0qJo^cvh=+h`Rrty{b=$``28HU;9xAa?L{5P zl}1N$)s%Lm?d2p}l$u=l+aKI31QB4Cf-k~JatNe9c_g|a^!i0L0i@VAD_PS$nR))A z)K1>FfFZs0SFLHs7Dd-owp$kW0TD5q;}mj1JiC0g!!yGLn&>kXuy_#y6!!f`aKT9% zF<6lT%M(r;*-XvNgA4z6r3p3ULYgxiFdHYG6 z%Q7)k{*@kZW#_CL^m%Va7&I?BI^+~=Z-aJ|bU8#J1&EqRzE(YZUb8AS6gAH+Yo8Ww z7Eu2TcqRq@&BA62a)o)NT)o_c8$B}1S^VF-gSw7Ts0oz3Ec|;dVg+2=&qPq9CioX! zlQlsoDY~RGY1EgHSXJ$-Jg3ns)4K(?VN`6bILM>wm9d$!im>EL#|kxTeQ&R_Dtr^4 zc=$t--%;$nFBtSFwXX}~p>$;MX1+=sRMOnK#zN3;|6vK~eT1Gi8 zguD4e&JRRfNtSMdk8A9&;PYd?NvgdgxgdSY+z!rf1B7zF+?) znQnB%ILQa^g!!hM&VEBEEnh(9(3xQ^;a=AVZATZ6n<|)sMHPZaPlipre1v_ut1q|g zl%sl|_8n#=Dm!8RJz1Pm!RiU&jg~?@!QF?473F<@fj__(!<)? zYmkgDUnFYuh%db9ZVNzaI`#Tjw>t+}On3s;iwQ}F3z@AZD+r7go3~TJpH{=Lx%(E| zeb(p2e^TfeJN^r>~Y8nFA$U zv0*v9&Di=>D&Xb5U>LQmRXNL-o0K>nB+xJ}V}7Jg+pU>Z92-{`yXBVm?vrn}=1WQE zSMm0PO+Yyx){Vj&h09YHAVXJTwMqMZN0~n;G@+D7T^jQgr*1y9xg)!MOlpLU{R0*u z(NK;WQ^J{1yzmfhAu@AG|eYAP=gPtALM9#GwTNkRFmK726B& z_(H5@dX?Bl`@CP{ZW?a;O7m%?rFl}mHkSrDs(tyB(h z{_VZf(xstCUqf6(1*wudH|ztT{P{FJ{wQRlLFlWMp44++Xj{6cWP6$nqlS_XB)C=^ zyo;`wx{>;?va+UjBc?hH8P$mZKI}5jnb2$7>Ktwo#6G#naVYn(TA2(@0R; z$kvZ-luqw3pU@+i`N}18&$RjJ8{i4JxEj~s;$;)Rfsh*jM&jBHaoo;B(Vm!&h!soa zBJoe`Kk_ z{)s=k`Xs;B-{Pmc@{MpjXi#d zPo=!j-Ti*0gklooUR3yTwA(}qJHWjJBQPN=4Rfq14E)q7s5A`c?t-S6^hDFs+|tVb z+BX^~8Gun#4*t+L;fS{F4)+`~!~IOjKDR5yj6&P;%Pc^}r$^2w9LT=a?37>a5Z#}A zN8^J)nxtIxr?S#zewVQZt?)laZi8lalVVJRi8 zVizAw2ma4}itMjAZ2l8m-dgM5s8zQF;Ns>t*Rg1AHSM>qx!T&^EFZn18~F7={P&o5_ z&Tg(=d@mU-^5@-MP{K59;OfX2 zn__35d{ATliQrrgf~Z>9?D;ey(ii69PNjrzSe+u+%$FV{!LdrZ>3hclqUY{4=VvVh zVGx)yE+sGX69wEzecw%zmSch3V}6`L+wEDBezV~w$4-!7KZqT9IVFhSii$50_+dWB z?C1@FW<7=>3Nw8}fvdC*aWw;Zuj3rJNegcN;s$YS0?;;k1||Wq0T`XjF)zALO7ss{qaTLQMdF+1ochLImK4d6WIW{bxQxCpztaK) zLRF!ivdp^`;g=i=FKNXCVnleF_XKx-&dQ|xxd{Z+x7bDQQ;DzKj5O;OTv@ z1{00JSoh#E_Rt~6@zw<%X>I?Ufq}htb``RFurEX+D;>yH)gJ`(a^BIPO@Nn0-p$cqy^F| zYIwJfCRA_Q^s48P19rxW%}X$~C3Nc)tGySe&dWy+q}D-#pCHFYSfHg(gDf+aLEOff zG*saAnV>e7d3srfA+iagb3ZZzR#Lko)OLAmh8i5~eqLL9Jq}BpwWwDJtGb*me&aqv z$OCqtv=S&36Ry8Fd|Thv0VGsNOljx!dRT`=ipG`~)vNBtBCALigNK>`v7Zl$=<~44 zVl}Vl8Sjdb5co{=ls7QE7)2BIaXkz)ic52Y&9IGRCuc#KN9LlLH#QQ2yy$fBxnyF3 zU`HyopP_56l!bT40Lr-3Uw{fr?a_nX_n+b`mG7T~KlndSny-p2s7>JBv($qVDmDIm zT)Iv}l%-`|;~iZUbUVy3T-&LdsACeZ=}vazXp>YvvD$j9?Ew2ln-FZ8V{oY@af;tQ z%P`IZs)gD^3ZmR@fw`iKN-j{3=sM{v4N7qJEZExm?+8BZKYlkhc)i=Y)GMLWK0N*S zcY-YD&4smTBE|)iWU48AQi{{i3-hY1;&FNe8kXvj6oqwzlc3wnYAl#tJ3b6k?GG5b zlnJ6)gj|DYgQOaaIZn**yW9eL$wsyEX`x$PbC2Cf$XmET$Z9jCuwLexnCLK;K8fJ( zUwZnYnYfoMTeIZ8)?#mEB+fQ&?*$qflX9`1bf^hCoPemhB+>;oBW?CW3v9%>q zLt(Q{1e>1wG@#&D2BENnUF*M2fL@=I_=^VW05nh3KH~Fxd(J**V@*#YBQ8m%sPj;Ko{pJqpn3`H`n2K;5pBN97|v<)wD(KmL-j&vhiPi1CFWbVbHk z0HEn9m=>5j;C**vB06iS8-U-QAS}p!jUg~U17v@z^L;U>0zI{{7wRVu!})a;wldyS zo!+a=b8py%+5-PGT*r~%NP~{_kBn9k3 zIhns{H3>ogIw?$w`CFef%Ec`5pjS_Ix=xc4LfJ93QaH~7p~MUV&T>b?mr!uH z`E4iH;GX0Zl=ZKF?*Opl1dP8doqSB%ps_d^TPpEZg_z1`3Qyqwj3sNW@;KS?_5}uB z#@!UVV1_zVjR?ary%jIt_EV@F&nC%>B2W|3v*NEYya=5au5{L=8*8yD*NjNQjmv1% zX36`dYL(|W&|BkeR}We~H)0?MI$X_d;Z3gC7LG}tk%B+SU}90^WR24ZADr08YaxnI z>?LoQ`M$lbhEAHzJM@HRBQ4zM?l)so6P7xm7=;8KHX#xiI3HYrCRXz4%t>!za zrakS9Ex=cTN4)N(Wh9Y~HLO(nXRQjqV9JlGuI}7?;Cr1XHRW;*Xr zlXgI~DRWGskVadB9csbY_lxXlp?9SD!-jZ2XwSuQM{Tt_Ai;m|4!rATe{2ZuRRvj9@`&Q|T^a%JKcZ!Q6UVg^kHZPbW(`w_5A*9++PiUW7i4iN8fMUf-!sg!E26ZN${N&g zA(UdJlg>=Qbs@OyWKMpnV5_3Wd05H)q-S=Q3ugQbY_BwxP$`sJJZkM)orwpk*P{G} z(qUaQB7)!pxd*}w`vr%EksK#OpXXrdop43yQ3P8_YM)08!!jEW^vHCvTRa_hIjMoQQ57hZ6+rVOM_LIvQtJ+9a` z^@b_!rs??C)6e+u2mlMUhEPBeI=nh}pipYW^rb<<8sjswhWfwNO)_kHbk@@p=rVO& zPt`-7cv9U09H56mIr%#srrPH8|M~mvy}ws?tm&}ni@_)$5d;JRm!E^{!03DyOAQ{Q zOpf-!bet=FIeqhP8zH8%%GQ~n1X3cL7}MrFc~uaLoe8Q)NylpcKN_VQ1fmO&Q2mbb z=)`YY4MsC5AZ=JBDU5<>Zgw9{%uW39*82?*!*_hmOywpE|y!``bbdLcGA3 zd2_o`36&^>4iy1gkLzv!PJ+pS1+0SttHHD4VGER8&>;0mdmr#iGAa0j-TNi z3{4cJK(F3OIsSF@GE^mtEJ%b+p;C@0-*$vFMJ9eS1=nQ)FQCG27Yi^)(C&0m>IX%X zTNO3ffuba=K(7Wd7rp8tTGKfN956HY!ab@@m2M1|Ci!5@JULlvHIa_rg2^o02fM=K zZk0eGkt0IsKRF$A{HJ>&WNt0`DcSm2L!rZT_e>$g(7f~xOEZl3m|)lgdxF)}B6oU> zC8B#1sDJ+qMad13KnU%zETw$H79e&agH@gk9Z?58d?-{otYT+Cg%SQ14hY7Orevh-f9c_-e^j> zOO1gPNmk)})aJ7p^xnZdX({4y+Xv!NmH31W9t+PT*mqKNfLA3tSRA;r@@xbvIU@qtSlR6bgD zK+Y*5{PoXrx2H#_d4`8(ga*FzvS?rynggp*32_GVM<7mfZ%XId(IlaxaEtBJD}Q9W zxt@8sx*OWnWmLc}YRm=>#v9RE6UVxr+3BTMJ_b%#%Ffaq-i#!1z!U>`wgBi6@0v7G z#=-g)eLE7TgyyFQPQ-kF-5vdq&;vrK;%_lQ@$P$X(wP1*;`kITldn zn!I|d(}WIh85&z>(@W{-Z@iTnEd6L^ojr4%fpPF&q(LX~CWxr|p(W zDmOWHZD|8EE$6le)f~@yIkOY3#m}iX11>k44Tm?Zs7|vhpvr{ujNJqJk zaE)Q=NS8dKbDV2nfx1mk-L{And2H86nrm5Mm_HVD$Ya*pzDd&}-i~_Q%=zPFaG;y0 zHN^~9u-O#Yo&&-9$XLbth*@8 z&LF@<@V#vTb`_2EDhnBJ7}b=|d2qYmJECnK^KjM51A#P}^pif^xd~TuHm`kK23pU) zgB5NSBTnJP9g%O4g;L+ny(CfK=#Y;y+1moi`5R21-eyos+M6#$D4n%@0fkI%fZZeh z_1&o^^|fZ)ODrr}V2mnkAD+?L;o3Ifyk>UBLTB%d*1w~B5B?uaF4vw_n46jCC05Sa z(Fx4Lh}zn6pJIB-7&08USW7PdnH^6(jcGYE(Hmn%_VOLu43y_d@|uzve}cwTfukYdH$dq@Bu3-B3BBKwh zwNp^dK+B8^@`X0G4wPNKu=%)DGXK$?zE}7F5E3o$WKZY6(qi%bh!8qEZq2g$WF$bc zS89UfNgaOuPgLBE;#sX2Co63r^&5#z8i%Svpe{oV9#Nw*PMa_Ya)D4Zri4{r_Ixv$ zb@osRdY8#>6FUmc&dXLEJQ0>vuJuTZN~w}$y|7AIP830`b_A{M=JqJJU}Pj8cDIci zpCzC;Z(~TWq6gM0V8Lb6YvYLN5jB2!t}1V=WhJh|!|fTOH3-?A>?OwQk$eQ z6eQF*j3h5y{CcVb?JF`F`egx&b5+?L`HCJ0^`~%=Z@e9uk81*5L%=MYAENtugtU#& zXo`2U)ogIsdDn|!M950^Sb|8KiqRFYn1hnJuQrSlE0Qcl17_U>fC;kBnV4GD*ixiq zM0`$WxkLTotv>ey!Y8X%guIX0g=+Rxo>M`6%1Mz5#XJ!JDU99_0e5>T^H-1}J1=L9 zfvO)K()toCEdSaJ-0;@-7g2N8LCIYztKX^{>B$+14UX|4e=ydpF1tAi7@gPYbHp62 zk2(TR8Noeja%~Y8gP<-yuXSNSXhy2L8FfYAg+;j;t*yk;s4$i4l1mi<#}_oKSCkxe z&zOK*D}xtC8+$Wf$*OgUw8E3w0_;c^J`Hk?jQZ|rIS zZ9?g^`L6-wJy zB>Y$sI{3H#|G()z&lJ1HZTtfm(5tpCTP(Scz>$~mRYWW>nP>lj4`6W+GyYkRe|_*Z zl83WqjVibjR6FNY?VXJ5llp{nifRdcSl8|dG2m_KeowFJu;3dS&uS$KKL|;FPj~go z7(8pCG8f}@#NRtIr3QCkTq4}L&BHf{(ylR!R2+<%yi^G{kksYnF;qHYn=yH97p~g? zeOAQ85Qw_?G(}3y6xQmq6}E^TD3vD)XT*jWh*3OmVR6JJMSCR}W`uWMoxOK}hmG(> zSbLT-76%7UmmEaS$nO~qa#RyZy{v_uOTzQ16w=6jO)8YT^`X#^0>{q3k!mILSRKVU zTar-;(6Xs;_wvV79|LYeUu|pqZej;IMO_ zG?&n=bBT>`__FLsbZCAuasmg7AYDKDR#dxU~L(%0%&GLOb{^T{%A%0 zRD_9IwdWt?gxT6Rmc8kv2U%_>aULb=6_o>2NU+15B}|ss?@1Ilntm^tu4+Ml}$7ouoi4o zX9F8Sktf4P#Xw@i4A&XIamySjyH8|237!w9FU{YkvFvYotwhqKzafK?A+{5?Y;F<9 zq81TCwKaRjpkFU$yehd(n2WZ`_M3Rydu9+QW1n-KjCuv`VC9I^dr=#1Az`1oWaK3Z z9G!lPCX%&(U5N)-drhWpb(*Bvo}U_$t&FkV*0e9ordV_3!AYl9V8;(lX-V;hm?qA6 zMCaMW7!$bF_6cl3kK}$hA|+ta6?gmk27QJ61r6#TSS+L>tf%o`k=z=~NcXlC-CS+A zrF_C$;Qg%Xp84}VjXA{1FjWI|$8*P@x$+ANnQEtelU9k_E%*LH#xFrrD@-#Or||#d}nlIHa9%d8M@%cvymzNV27VkG3`4*mzvts`O&Fbl-e__7G zYj;&8DnjY>Orn9kC8=B058FKIWcQgSPQ^El$y*^-Rfh^lI*djk5xUY`UbP=g+Dj`U zHOZ;sf!H;4TuqW0e2&^Qc;v4S>zw@|=hFS!zJ;mMPb2}rO$6U(6l$oZ!Rq2*x(-kJ z4sTgbOy5d9sP|E1XgyL1>|*a_|+w8dO$y#yZ%7;TcExXcVxf{dU6ycoXt{AoeC{~^Htz*#D1bzM5K3cJ<3@YRiC%eUi(_4b zZ%R{B)2=x}s1Mp2Hb?n2Vb~n7Jcl9>x{Pt4f(j&BqrDs%e9aYcx;gx*9D-A-Q14MW zythmaec=5n%XtaKPDtDFAHcD1JoKXXIpRv%BfGIr+;w&Rtx+q}1}7tMaQMrV35YNS zFKjDGSE4g?XT{y_bmDqOZt9BAN*{_-$ji3kR{;s-_Nz>*H~r%E2j#j&LULG8APee) zy6b-*yNX8EDKjKn_l8|m7a2`6p>jof@1wBybuHNG>midyd^8_9bf*ixi+~jLLgZC2 zXHxGO0kk9Wj4bX5)vZ`*+6@6b)Qf+6YbAB2QHNCc9W#a^)jvF_h?uNrDl=D$>q?$s zLU)VdkAKlC7NA|;N2VAiMA1sG;PSI9x&N~$!EgwtG@ zIN5W&YIe4VMM4-K>c(e7LHXWY^Fy+{1R6fm|>n#VWdOWiB0lICmKR_R+6~B-|`u7w2~YBYTK_R zcR6D1xwy}HyIhhpi!%ym6O?Vrgr1Jte0>eXyWYyqFWc*x@8rC3?g+8#RE&lG4)O&8@0m#1_ zri$b?5V+Oi3y%6j|By6@Vo1NCZt2X4Tj?OOJtN#zH=^Eq_<;7juJt13>MJEPX_Oh0 z>}KVWGs6DrF?;G@e9rA74|Z=EkY~P6=?H+nX$$;L!GxrB&mk;A5`%^@Pu}^$J`bCb zw#NN>kJbm=RBi7bj0;Pr*ao8A|5x5A2J_^E2K6!Z^Bug~8>3xM-@`I!+Ex@Sc^KI8 zQ55~0MpMWGa6gk*Wp2zS5PMb-5IX?zfHoy{2$_Ou*iYbK$CQZb39AKom2Rha2lvaI z?@YI`-6MMz-_&AGb!k+4pw)6Gl48qXcdE>9ki_rCC2%~LXV3ctJx@xx(Rs}`eDEp@C1__e-d zT-uuZr=Lbu(GI*v@bgiipD;3~Vmo%=XZ)%kCpgK+%xR{1OY8#Yartk$pkL|fKq|RT zw)P&&=T+xro$R6Ll-|l?idhRGXRREJLg31 z+n!v)@0bNceF9kUzcoTZsCzc>R_}yZ4K_ z_m(;~!4lV&`#_c8Ql^*{1Sj&{rh8jV+9DlBpNyJIuUtz-cCg@f(v;TOp4cqHYOy42t(@axkX407)&=?2y~53U&r2|50c`9>RQA#Ga`Weoh$U` zCH~m4#kfkukMZJ^l)!zBk?FfN3s_cwVGS`3(#IPw?sdWxArTdTK;>e+PS-JJIsCjt z5riHou4RCn_VgU9+mbmbrO;G!~-BLYBO-=tlYJ6zuJ}N2A=VV~h zRkIbFpGROrLb*>x-FL4Xkn-v(cE0TALh#X`y`u9e*9T(JnL_g<>VrC49*55>UhDn--1|{9QK#n%MQe-gTGbpL;oL|21NlHp zzB={d#=CuV-lWfx{l%nzI)ws&Vnh{U^Ny2vOCPEqns-09`V-)01(tqW2AfOtZNGx4mh&&jkVBgXvm3_*y_}uUrNHev>ty=Y)Hl_H z#3G)mQaW&CR3+h^^7L0(px=gXkjFy<6Qr@9<<6Da-&Vo|zSj85z4lKf4Zai6bl+36 zsWKUYZk+b(ke zc(508q&;x?6rY(Lb!^ccNR~vw*nb6w?O5VYALZsB6D5M@LRWnb5IqY8(l_0f-p_s( zgTno~USwJ1Hj{8e0>6}gS@w)RaT@aNl5%^(FAd`n-t>ztd4@fZN?~V~Qg{x6Uox7R z5OJR!s^(wyykr(~Y(y@+rKM@_#0r;mhitm_SjoJXCfhq_^=(Xn-+OqBW1D+*Q(VUE zuOrNALBU%?XT*&ZvBGw}ybDSB*#7KCjjFQLZ0*rl4}c^E6q;~l1yR1h-BpocE&R0q z3NMGg*Ky{b*7;7Nn)MqHO3Y=1piAf+)%j^>1ozl#EdaZv2eWMdleRdc zaI{BA=UD!a3B|P-!?77LtE~H6jJz1w~zFf^zk8Q-U^tmk-gI#fMK$EQTcH51(}sxhb6)*X?5PJe;JMicufyc}v?VO-Ri z={+-32Ex3a?MJ|IytNj)4TEP`#671eWlsy^nrT#b#h?Q7`$rZea3_EummShNCre0; zpK)9iRPIeFe(XRMlH{_iFA3Ha-;Y=g5p637+=8 ze=Of8H1Mm@ak$!h(R~A-=M-7rtp--oTqtW3?Q&9-4lWzB**;@%U9I!n21g-eB%2{l zBFa4TumSU!YN%epL;LP?SKxsDznU!_yZ0Qj?I1eEYS>%_C3;^JM(lS@)RM8e?^DfM zyKP=|>yx`&kD3=L0-^ROPMbQrd66;goauIYFpC&(r>k-AWfmc=UQ3+KJa}@c1R&}>AX~!+RSk4HjMfBwqfII=j=P|?qEVXaabzGq zf0+OJ^j$%aLJT0!8OX=`^x591Zb0r(YTc42^QF6!j*|Q4e*-k_QLX0YUBZwElt()`a!Pa)C z#$T^G+jpE6oM)taYYYCf2GyCqwl+he{VuDVI_o2a+OKG2H_!g+iuUQ#(QhvmY-?_G6XF&Q<;J%6&BPyQu+HGYw9-#1#6DS!6d8X z$0zPEhj~-$<>b>*V1o9F#rf(UWenu%|7vmt*GI!%bBs+3iGQcqiTD|7ts;*d%?yGK z4Lc+XeP*4m!?M8Fjwah#JFN*so1tmM7SAY6#O>Lrq>XV;Mj@8IBjvDy&nD6ZY7Z|- z(>d4Vu}HC~HlC`_!ocds?pg`@mgN_VaSLD~P)V0`j|d}s96)f}vfipIY@S}a($*Xf zX#Y3)BN4V}!u+yBL@L^=7IU=z%sso;qSr+s`z~h#RPwH({~V4bMS?0GH|6v(U&-jUaU!&9-Wef(pXLa7H$S` zRVPZvGKxr05hFHc`|?Ti7xHg=WY0=ynvv4_0v8oo1X6#05OWL|Cxdpcl~D*TLq8qg zJe;qH=uY}Rf6b)xi75g>6TN|R5N#}ElKj0GTdp6VD=r1(65+MA9up3wJ#lmq;f)$Q z&`~kyJ5<`W0=vU{cah*)_X`)&rw@6&Ej}WlM2Su-zhjja;%-@hw%DtNKSF{o?dMV4 z!S8Av=9w$?bx+W7{#FT_CgNSTT802!xTi7M4evO?k0Prw%fp9V)eO4?@73HYwNO;0 z;MF~46IWGP`ne#=Oful3&zhFraPD3=5bnM{HP^{ZqRQOCd&!-xoc9UdSYd0qC+LV# z^PkMeWjdCuSWICfy0E7?;?2I2-Bkv9bcGD8rAnsEgI<3sNeP&k)i*Eg`EK$N0+wj7 z+*VDXYO_il5&kbL!Is$i-|rWy18?pm31;NMHKGZ1;5#7^7`6{?k&*DY7yCDfBBjLCrjJp~cbh zAe0ZtMx@RNGHjfNo~PH4tOl z>CmY&S+F8qr=Y;zajN``Yw@fs`0vmw9vJ&wRyjyFC4E*DbaJB5MFtF;VJWJj9Qxh@ z4sBt#3Y9QeF9korZec%WgsF<`+OnOx*dkAwcoD!=Ci^)D_e2h_`XClgs*6%s+95<| zw<*J8$rD{?Aeb#&`5&4Z)jYYwS-B1&8SH&}*q+*9;+YqebO9E)`QwEZX?YkB5Y3ek z#THfr1b#GD<|`r*Q4Xi=DtDbkyArE{MoF zrx3i9EFbz2g2~cbgTd%T1q%EJ94tSK8HkQhCn+2p0Cj%o zQB}LtFeV9%Nx@p;<>4|X`gPT54rB{1OHM;z-C2_wTgo?u+w;zhD#{>Heh&vx`vn!7wuU`(eqjrGy&C^CT zLF4Fbo`rb_w@alSrjzuVkHd(tF2kt^Q=^4Mn@9R2{+d=YLb@+*CcmSrO{SyT!TETE zSf644HM!i&R)Q;Q@7t<~CSvaY?8BKsWH?hJVfAOU4W#i;zO3n%32=qrtNAXM*>xti zl9&$4SfmeBdU4!o^P=#yfyov+2YU6#Bw$*JH2W%y_}el{g&*+rGa527Q+~{*0ciTu zMDSJ`iyVEE=&yKe&J^oA@yq9JMu{6E zPcSH_y&+fYO^RWb>j|gvX{q$HSxAQT>i03 z?@GpmeCLWIJaP>Bpu<@9*{%s+b$G2IDT~1wj+%E2{xX-$Sd&-vMpkoGQ@*;d;3v-|2$V8A);U1Kg8gAK!&Zn zq?0-qQS$4sH1F}X5aD$N!KliXFqN!f6ds<_|A5`Io4Da5|K}$Tw)*ytXW_Yde1CtJ z1i^Ja3{S5idNTG|5W>I7MgV~i2)DlBT-BWmb4bD{&4E-qX}jVAfb`?%%hzH#iqcP& zfaN;jjK5q25`4Xi3^;3suHv`$g=b=^+|Z|l_Tsx09{}Cq0C$j;Gsd^y;}p+J_&f+G ziOr`&L!BN~4e!jW&{$7j?j|R92(wEhyD%&>FgkIG#Umw^8*K{h_!VHX{Im5_GojO} z{|51kN0fiEV( z`+nEG;wWGPxR}m!n+lTz@SRCJ4-H*-xA~axW5_qrIU*c!&^a>UboH>q3S3pkPD(=R zczmZTm4HZboAd+2m-D~VPbn(!3_^UpM^hHQcFwQK4nIe@GUg=dJ8JN1zw<|u~bc#rz- za5q{a+%BYUws+pmPJ}lCbeP3=sb;g1PhI#ezx#lZOeF7qLN-txw}G8ud9KHY6xUMf=<%^i+%pa>NVUiA;cc);@pfhx#kwWZgKvILD{{rC=1px(KLjji^Y>d>t=E}(9oV@0BwdP$R1@w z4Ypc9@SqD#SB#-9i#kHoAvavL2CZTebtU1COE7VsSmoI$@?*{$@}q+fgM^2B%2`tk zYITrsh>jOY$g@@UpUzqLGFJ`=tjQugC0OI1$|vQCk1*mFyXBe|2QP0lz>*xiCi5Rb zodjXB4+Sw>44c2 z2y-5vEaC*e6Swy!Yuv#+ygx@H}D^oVi z%g>89p`_uuG74#%SVi9l;NL(dc|158Kcn{kaOE=%N`d8;`|>lvNNrjmJqm|)a`sXM z>F%p%WY>S&w@t>X&!;Lzd=xc3HDGYfF4d@%s;jNU<|NZi=!Z8QRY_w>@i$;y`J>yOA(J2*=nRJYuU}%u)$mlbrF~)7ak?} zU40`r^Gk^U90}6Ap(P=vmpytxtuGBC8+y{NL@v z%pg|OFzB3gG}BimIQ9s$LY@gWRN#BvQ-dC;XHkf0y1b>OH%W-#r-=R{O90zLH<-uy zdT(PTg_=C5kM^mZtP^av4~_9hJzP+@u@kR;+YEas5|5zuy+uEv8rUk7X2nQp>IXN5 zp7JGhXHh~Ia5j|0DqHGL^}(}v4Xf2?@0r{5h?r>cFxlKNY7u)NT)q%yvAIyzuzUms z4{a@O)1)Bm?MRW98ktvaejq#AKMPCN&1C%sDUQQ?es*CpNS}Mb1l=75Fj2b-id_a# z-=`9kMQ>FNdv*uHx*w`iT&P*hg}eZ;vz7PdxOEv1+Fw(ovb@nNUw^UchIkf}p#SWs z(UNf2*TyxS2h2km%4icuK1Ed?>2l5*`+MC}b^tkeR?_3bwm#@RmYqm1dU5dUcSV)R zU0occA8k?L`n&p~{Y>M*gR>m!yK=Idc8;QT+Q{=Pc4%!voYL%6gZ!u-|Cw>Sl%4R; zhtyv?ak}q-U-py!+>unsY^uFQ`{=rasZ#vI~eNSM?&s62JxIhG!z#&cV42`Kt}Tl@zmKf$^j6>t=# z+rSV4Le8h#Woq2x;nK;QFS$+^WHxt#rswubA1vuW>H34m1^<3bsTZpal0CFFIk;Ea zM6_oQX8~)<{`R7(iS9gjOe+m-W6T>LWY;0fi4N1C=+Y7CrUc1xc=rLS46N{DI#E-6%Cjs{8j^as$o|^m$tGVMvW*>KPDFRZ z+s0Dn7yR&cal12)3>JEhvIfN7Hx3dSGm5=JqhkW-31#%d=&|>5L7mBm&rqMhl;=Q_ z>u*`agtR#T%+7rjRL@eP$cQ z;F#5rliF4j#8Q0&Zjj9B%j+K8K>&rHn_#yS9W0_+v1629n1sx4pM=B+z2{GpklHqg_^Fhm$r zpXy>eF#<`a)_;xw4nKhQl$|pVRuw7be^ldwGfSJheOvBcnz-O_b!!haM4=m@o>$W3 zJl=~D2jBqS2{SS65EUOjGND5|FAvFQQSvs04cQ=Ov+lhLIpyJS2Liep7ggCn+5<@o zQr$+sGrdaej@>9ec#|Eu8JKwO{1Vvd#aX-%|JYuJ`PES-#3Y5UxTK;IarsP&oF^UR ztKl}@vxi7^qjqc~5myVq!ubk^%^p~C4z{?TXYBQ*rCc;=netp*JeD&Tn@ zjRS9kPKp$-Ss_5YcojO3ea2lRWPoBmhRAdLnsxxHw~M^Z;BJhw`BXNlN|%ten7 zK5JFjyH?CsbSTkwCM&m@qy$!D=*xY`ADl*4>O&UcYR*6MI`zBHq00pM@?q_@{yDt^ zH>Cp1fEH03z9u7Uh;&-^G>5ryI&pkTh)7$gd;12dX`Qy-TA20qxl9jM1{p71!(Ev3 zWa0TqoWP@V8eFZzb3?^>QK>=Uu}C8HI}VbiIVKy^1XlKu^q~nMci(--$sn7EP(qh- z+%P95${?GV(m3SoKKAI>n!OICh!*u8;qz4msE+a&jQ0hx9iv!4(-5EHBaHrTQF*?R6 zKSvYa5w#{=bCqS2AU#A}Ie!IVePk#`1->Hew(1-zOecFtwSeyV|3yyF*b5~1=?nH8 zEA%IKJ|uW9?~)~r2w*MWx*+HS4`9m(ymFMD*%Zuo>5&*~xJk#y4TTvR6P($k8MA16 z%gnRm{?KMFYDbf}rNb<@L3XJ1Q%Z!}iwB=No`hYwJc(HrjL%b^Mm`T$Z(S-oVc=R; zr&Af*YD%6T+MWFVu{%tgyEivbBfJN}ua4o#fh%(OUxA!*k(rp-`wN=uskGX>j)O+W zL}^^*lU7z41>_-5<=1mYM|nF~hEd82v3Y~LegQ!d;<_TTN=5|uZnJS0XeKo@=$`Z` z3$=`)#|4WztHkh2yf$iCUs3>TT92a$7n~?_akd|=)T2UmN#kn1%{pNoHK}?!6!)F*lr+pOYG07Q~rG^m(h_B{X5eloqpoxGl5flmo zK)mYMO^#ZHLnEwL#3lE1gd@6VW9#P>g(s322o7Zu@M0E`LpDEx-&D!X<}97(yDN88 z$I6t$VRWVNavdR@gJ7(t*d8KNrWF;*kWT{VR)zPnDrkhzj=`#}Z48|FRGwz|gNul5 zL0B$&K(d0SzHM~HD587{%*g`$=5`joDt0f%A$Uv~#{Xa@a`{0f@H1hgH$@VgW-G8_ z5Bs z@L4}DrT#&qqhl=PK$oEmOtXHR`3Q;VLgFG7uzh^1)!OMz-4J`FbK|exnHFX~hOktd zteDhC*c07zJOhofGPjE281o`%GRvX#ZjwQdu=CO0jFPj+()((Qp&8o}@F;VVRxwtc zMm8tuN3+VT?Mc4UbpF`o>JJy-r6FntL(Ab&yqTta;@kaXIFMv+j(wD~5eE_ei}d3A zQL}A-E-fYRrn#J^Q@IpC)&%uu+r&7*)ZAmhU{F@IxVi(dA@;sjU_mR+MkuFi}C2BXcdwLM{3gxT*Q6MAIJ5~KWJb9XI;;eZjzlq#F0T0 z$aVI;Lu+MW4sx$*W)Kxiv}&PZW^EmFPg{U@`ISt=cD|_K@I#;AJ_oVqA;UMjo|Jfu z7ppzM5Rfh-&Qmq~Z{LJWjky-=5E+i_?T~P&N*RGjr(QP>_a(1Ve8WmhXPdwN&RDwE zhd`#DKDB0MNWWH~7)ki5Lf4AQ3k^9mh2AOJc4o>G(;-wuoPavIf?5z1zW&JGNqu|-6#cGO5XnO8>YXA=i z1Ik}yfc^{C*uv)0?fd6hXm)ildKEfcNe_N!yJ)RdIA|r1{X#F4k5c;1l(3X%qT)uh ziz~2G(yy6@i4D9bz6XQ@0&FHgppBa(DZmd(MU~^Q?Uf}EhVAzLI=E4 zk0XNnC<^Imt^AyFz>{Xe<+Iz){!2#Go`z38#LWcC>eW!U8QS@<-K!GMA-T|u(ji7; z!|E{hHv3*DScOS9X~vOvH@Q|Y@E+zdHPx*dgyW{nlA|$TWhM246Y0fgk0y zv{15^smISqw;56kG%8YY?c7R<9H_S~QekY=V9IQ>< zJw{07R+v@D&m3~>+mu@`&_X^Mh`Zg{Z_CL5($xZQw8JppW~=^IOIsge2WH^W#@l!) zDKLFeh5RLE6x8CC5e0&|_w5@s>i}?gb{ylq>>FxMvQ(APj%`fHP9l1QoRi2O+bea< zv%i2&3VgN&yv$pVOO3!p`@%DcV$lgqWfCv*ArMOT`508X>yt?`w(yU2G)_H_LAgzV zfS9!j#H1VSkA*qT1jA6P_HwUy0~GV820r1N-o=_E%kH%(_j>InAQm-3U5^arK&5x) z;K$0alWhVPb8n`f$uumWX&DT?oBqP0Hpd zDE+g2z+Iy2%S3@8T-ESL`t&7E09dzWaVlt`CcP>XTYI3B|PhNy6w2S#mto z&u9!BeKtff==6Z^tcUmhrZO;L+VO1AF4aYOlksbqs=0>7$t(Sv(OSRwJ5p zAv5iuvN+?7QyC-{5clk-k+J(Q#|q({*y+Bohi&!PNubl? zOp*P_;`DfWuM~66S>WOew^h_2A)^y+R0m#`+6Zc7^>GMw8#`~U&zO_f^pWKS$>c1|#gM~uIWm|%Z#*eMT2 zhH0snvb77(&md-kVe;-In^)c##MsMyIJH0zWrlLUh2)h{3-E z@eXJJ0#*tHxAZ6*s$)ZhWaTC0&3AR2A$~?p9miLkx#g)dCX?qf{*A8%^9uZxs12aDP|-W5HpEj8XvEyJq7+zIyKz| z+8~%fyZKYbSYNS<`W`}UL+PDZffQ$8eRWb_TlwMNQzwTtr^=cXI^s7P#=i=ihc>bn6pr`mJ!V_6ab95ka-HWUs7@ z0#tyH97n)`o}B!vs;4#g^b@|y@;EgQW4(bt0~IVBOI(dS^F1Wvi}HP^Lf^#CP*C@t z(31A?sOw}$0{%$0Z+V(KXJGt0E}<{gyqyTggQU@?+~W>% zn8_W2s*Fe%pjsLJIiAhDBZSMJNa}Xzv=j=6q36-{wibCcvh^OrzG#0z;%J(Em~wXd z-g=w(G2)8y5g?s|3K7Z_eSj$psH;fTkQh#=MzW1<7nS?E`wZ}h#D@#+Z}0Fcj?Lh# zkM!0cd@tFJ{B^ayoONCjF4COE=>@p*8y)>8+FMn)@{Xov6`27Ulr zQ|51vFkx8Qry&E1i(&Z}l%=99<;fOX=lQv>`)y73_5y=^WJ`^0q8ilF4$I>NHA+x% z+To|HTAvl8sMh6YkH(|09@zQ^VY7|D^>t!&xNT^`jbjnp5ErQ#|iPN`PgZZ*5)<)8CjChjq^52{(e@zh@pE?JcS<ktL{GVz3IuyM(xH5zw)Lxl!JQD%R z0Rr9u?tyFBpzNWN>m1b)9_X~>XqwH%l)KN`Hf@~}gV;U2`=NzDgqwWa%QLP~>kH$u z+w)fSqIWw@aKV=)Ne19?U-XaTD&mj5qRbd6m|XLWvrI~w;#a&I#Su(%2UT=V_hJT( zo-X53U>lXCeOu>#hv3)$F)?g%x0*zpstvRtQy>cj2|JPjsDTcV4eb zGZCNFyMORSb`OZte&;3LSwW4p4oKdUE%-Wng>zg4XVB2Oa8VC8sIH6}dV(P?zio+JzAbPhKfgF1@%I67 z0hnE@vdmy|lFcRQEI0$sTpZf2cx+HOdwA&hXK;@HkrKMnX6h+BjtG3jKGcaA9u7-- zGU!e=04K}}DNvWJ|u^XoT+zk z`UOZ8b1Z0-(OY5;cxsKV!`k`t^^C$46;IkPJxfy8@a-WQT84gTRc+F!IZgzeHz|0ym=?kd3i$)~qejOs|ZV{XCqXV25SwTuEa{!=j$QJ!vc^rx-5z4 z@Zmte3C>E;3dx;~ktD)%dM(Jnn$b4(dF_8ApLRuMO`qV}(;&AJAeVfHyHrt_-s>rP zn7V6EAk|TQ%SR+bOtXz#@!3RPR}BHFtNO(|=rx<$>Q-KmvZ<_E`={&fOYE71q$^sk z=O}@9HfUN49-JW9T~(QGH{2TgUxt8}cmpDJwx0*Oy3^-|g^0?@m*t{@Mi>n^`Z9p5LnpypiCSoW?HW1%M}6T74)(;e^=c@1JMilcFKsn zIFm&7emsy?{AL^YJceFVI(6A|#6W17=aVF3`>J-=tz2y@CQ;FSJ?d&avYXgSu|{dckk`^3X?Ukps;C!m**zdp*{soAn%Rt)OUH zxYSJ2BAME}CU`!4&fz;>iRiL;TzWB7_4_OV-IJq&DfH>5b9@;_9Et#HZYSMyDU8K% zC6Up$iYSCF_@Y;K?i|G;{!o>!O^-rOq*d|e@Qkf|yZA@M>IF75+0aRl|F>0!@#6b1 zz=TkiT$zd#{Hd(1Vdlx_#}k4;11nbA8Te%)Y1%0&^r~DHPYZM-vc76AMwTggh1!Q4 z$zEC{=5tw<0Ny;LmGcTjX+^Jw-+bUR;7w>Fm%odOF^VFU;-On-=hij__f_cQJSn6X zZUO81Q>SYDgIItaKzMyGLx(`owm`<<0A;4c%||fRav1-@ZCHf^b#wSa-7jp$EzE%@ zuRg1gwD)zG*D__YlNf<^9iTZYljs3#tN^@fbcG;E8BzpfLboyMz$q{pO|W#piEs_h3UxneiOhUc z3f{Zd@fMylsB_AWs4N!i3f!{kwE|6HJlF5?hhPr8Y z@`AV`ZEZT4wcp^es_P7^l zc`Wi^adjf>uI_AFV3gZ&dV<*!^Q#Zrp>Fe7L~wsL_HtL8r2f*;4_!IFY~??ly&0aP z#ro}s$7E8rrY-bc&;OF`qRZ~HfsgjQoQ1#cFett?G3%Q_elh@>6Z#pV)oNnP z09GyC_*6pITYr$qBh%XW5)t5KNXCU=9v$zpXqt>dCN+X78Rv>?$mnCYc4(=I^!Z-X z(77qzORG1Nca160qhfb^@I`Y*m=DSohE-5vzNbvtr7axMm_@)%D!ZnP%voilcwT=d zhvyu$uB-Tycjs!@;tOvRh9%N$eu8{_Uk$x1s33UeyPVs`iO&``TBr^=CN6a^TT&aP zmil~RRP%?v=5Y`wU=q&9wy=`Yyrp{soYbRbT7|HqM&a*=bw?rWSfgfu0K3dpiL?f; zN76`bF`(%l6%;3Vf5H<|Rk<mL4sZ(rumi5UFG$%dJ%EYCjo66)WX(1!ooNJ@=fE zMCy`GLO{u~&=D%np#|1h|FfI!UK;E$%^ygPJIvjAz`3z~AL?Eju!)z#244=G0{#KX(^s z77$PchrP&IjD%)=$ZLJUdaAJ4?p0I-^lRqsh9 zW;45=GD*%%wE^HwH6a-`VKV?lZ>3!I$FPuP`9fFxWE3au)(?(atr<}#q?r>YV?*7+ z^}AZ1w?lTlN~DoIT=M60Nj{B;=B+e35JojyH=oWGWS=pRy~JAl#QK&AYin7iPKFv} zL&(i9^VSLu^WT&r1s_;6&no~_W4;#!dd-&f>1-a8%K8wL6*X?UwaV*5c8Z^KuAf| zx{r{I^VzsKMP)p#ZxlOKoq4VT5LWJS@z2R+Uy`J+3dhjX?$tcu7|R49cH>xWH3dmI zv)Y&20ySI3wZ%t!b9FF;Hs9WIYuA7`UZ25>b#%(33QU-eSo84bxHX zHWtXiLl-%CFI{})J1C?-hk2}o*=E!NgGxpwhd(>OOBN8Dld=91;O>Qr8PFI?B$>?h)_xeOYFn4B z)RM4LPVLNrIYW9<)Q-XZ@4|v)KM!2(!4?hQ?X-UyBr)uFZ&9zdCt#xvWp%Nu$ui_5>= z1u-HZ#i7d^GC|r|owKdpJBq+Cq$PMj(JBMJ+)FLA#S$i7|98)I$tJD6t&X_D8|h3B0R)!QUo+_MVynhHNP`m%M1bG*y&lI$H2ZZkuWuKc`O2 zJK)&!?giEFP|Tw%%NU^HkDh@RJMGx4gN)yo&naBJFyq9lV<{X{-6cCoAiItCmL}2W zIsdy8e?y7cB&EE#v~kd~^<^mh3urHZ!Ez;xIiksx6V^)>OJw8)ApohuAIKDt{jQ$& zSmiZL00B|cU*!qWKZ_`~2VOIj!KNBUwiCC1Y_UeZKNt?#?9M85EtsuT@U(n7-=itY zd7#X&t%B$O=r&FC`LJ5YpR)_*S$R7FUn(gw#{1Yw04cMUo@&5(lqwEqbtCF9pqLPW z$N?}cOlCxt$H8^+NWKA%knMg~65u6uTzB-ckK4jAsK>6g{p?YJArIc`c-g&XMZX-; z5u^k}$vjRG^hBX_==M7Z2giR)ETUJBp~V1cM+|j&eNw+Sha)|_H>Uj_C)Z3B=eMV4AJsKed+^I^>pfaE0nLwqz(rF052S6W} zGYO+~#XJO^-gZtdKw@qz{8o+B?&*2K#?L}-s9Oi>fVWFYr&+~O0Dv$1{vdVC=cG8O zQ{x9tz8P%ZK+kZtPR*7ha~kDXAtvln7_2qZ5%BBeB)0v1SXZ^ms`~Eh2oV!DP#^?= z2?&h&%Kz6^09RwmHTYKxA`^B$5+#7Ns?k+J2gnEsn^n1$y=egoc#v8GAM(KVjJjH> z=esrf65Xkw$bV3@=VA_2sSalIweYc+l;Yi^`}u66TMNt`8oij(bSw?uZAQXwitGJ- zWBhX7-FvS5b*qQA(v*I#FRcYy6UU3c=~ep6FjeK)QLV#{W41X(%gWiSDfhG88+4C8 zgnuCL02A!EIYgw@oO!FK(2rO8iKIZrwZ&pNm1$X90$`KaemhN-G%mXvCUy3T-f{%v zzdsW$_bra1>;w;~0z9r|bJdL$8Pp*|BHy*hBgVP8`;|lQrnf6AmF};JQqVq${GZvA z{php8F0Cv>F{=O$@WIojaq{;y=6F&jDMPlne7eifnwggIu{5<;+8IyY9becRM3{p_ zml~`8d*}*t5DEax=s*$PT-HIq=ilG0_YS?ug1vC(NSavdVt8~E?ZSnsjNZbZkrD!K z`?|A7rd1j4M{C+#^%kCyuR1I~Gz|iR6)gu{2|cdJQU1;8sRlHKw~_C@}+1k$R?6C?{4KwgfDKyNvZQ-eYB1sR3`u*=yL<6vyz8|7G+g#RicJwseg zPJ{l5P$x22g!;u?A;pcesfCsmuW-I~eb&6>DHq(v20^e5el|V%-f|kWX&|tc2PckHYjF`}b zvS!$70ZOW*`r5kEHFH zMO`^;ZsuNskoDav_0oMI!1ph`HwRsgkip7hYkoK{ zTD4|qfZx;KJ^6{$Qi=%!)ItlU(>q~!W?72!E{hU(Z!EW$&=8t31GtV}&8JH5?iKzr zB+Da>qKy{WLqY&QtyO5An9`W{IDFCzG+<8Q*K)ER|Pgu1_& z5nD`#-0+9oe`fjZl7zRLb?ur;+r4NmC8CvKY~wofkaE)xIgjtxngHg+T-hgjnlWzx ziu9E>j838mQ%E#{_c4(gUbN#?)@<_je1*-B9e`Obx3V3I%n_S71T;52pUqDnvo-qC{N*O+Wq-!X+tV#B^A}mX+Sof!h{=dNaq< z!*v}WJ&~aPHQfR>zf`pN0ReF?CemYs^-I;f-AgJzzoFB z$)9;v7i9b$IJWLd0#S3kHLM~8@PldkzG^kUetB&PHMND`drAvB9ajjY(4Ld$4{A4&Xm?n&$(6el?(LcP2&&d@7noD!O z(V#{pn$s(S99FcCT)?dUy@ep$BWJH)3B1CQpP=o}>N1qxT<` znCC-}@yY6PM}gu_+U0t9*Y)=lcS*SDx2vEu<)U1QTRn zdY!>#mHuKB5t!O|hRD2uxHRj^zlf%1S``0e2rxg@TY$j7m@JH?*Z?WZ zUy?!&kJ^k=sQWB6Co+~v2iu>MIb4z`8{)7vN5CUK5JLreAo_(LI63yOp1v*I>={!S zbyBCn(+|%Kh4-m&3j)lgghO{v6%fFYx%7qLX(Y`wt-N*R9KWm5m`~ETz@$gx5q|s# zW+@wnafNm^w|kRTclvFKj^U(n5H=h>4ULVgWogBsNbngSfkwhfqJDkC#d;&%RlUtD zS<`jbiJpg(vw;R6CRTgtRwDg-Wx4)r z6$R?9^ZO7gl0E!p5ek>40&0;cXb@jYj<*WVssBn@EX3D9#VQbJAkOzth=I&HeMY8$ z6|+6iPL>pVIE%jBsZttV9|QUyYU%6rXyr5psLf&u05~nciy_ybswnPDMDpKCDB{{7>Js zm_a(GTu(4E?D#s2;`V37==c-Srh_G4f@D-Y5>EC4Rr*G&7)7>TT$o1Bh4uOy<(Fr>q=v zJ+A+^YLPT_eD_z1yNF=+<_+rs>3>lo*hWaJvm%WodniV$Qvq$+jgRo*r@K5qb=-RF z<5$)lc+qEu`dlcpiybOY+wn;@-@oPTh?ODR&C}rn&L0e4BD=UFD|< zddQroeTd@`4{c~ZH4r?v9FNwO{e2eNU^9F{!;^WSr||u?f~%`zDy3u7q+kX$NGGLj z{6|B|E3|1IH)XPFKjf9AO2EYBsDkwIZf{rQC|v_){E%xQyV^rkHom3f1468i`i*^y z5(U=OvWJu+-lU4`(*zbmXkrag4ZjWt15r5K6C>X*QsDRSbE0=D%%U(W$yZ>0@HghT`nXPD}}U9GwIC>C+WqGF~a3AZvO(7W@+JS})>_BGlua8m5Y zirYYct^sk@N!qB_13uTGcPYl6UaDD#ZWwk0tK_M`pz4W{pz%zXG9P}Ao9qiL=5Ea9 zSyt6Dl}q`m`C6WR?b$T@NT-%a1-T}lc|gN@%%4Bq4I6~9|Hwbzdc|HW+_)XZPk~NeFjkkv(flUTyf-e~-U=N#x~VaXH(aFXfNL zPU-o5&*DOFi9fEZdtY92x-DHK3dur1CaCREoutuOJunC)Q&R;^Ck&0yZ;|9lx7yyHuG-(vEX#ZA-b7fQnQFVuS(zXCJ~ z@AY~b-mq~)!1{-IXTWWKn>9+9vY7s$(w(!x(x4{J z=2Yi2Tq28$0|L8l47V79iqn*$4$%QClL9*OTDTS=xU;ZEI!`r;OgYP$+!SdEVGi>FIL-Q(JY^piTK5z=1y{Wg;V=)<^f zO;YCGWFp*^Tttf8=Z1a_#`>%#dJa??5s&qE-X3|_t%VNK6H6#Vo*P3w@M;Y71ACWy z*HslR&El_|D3~~#)O7vA!Z1Hk1lZf#A3KC)KgM?=ab-hcaJ2;~0a8ATFm_q8L#!0> z6Z22czkQOu?G+M+Y0}cw6^LhmzXdnE>8d`6aoK2}bh-1Z+$rPlwz!!{cV)U8Z!HnN zpWy;1`BRtp;n#VEXHA?9MgrP-aE>g%I-6~+ojIZ4e&Dx%U#sc53p09wzXtdTyeavq z4(E<#Wn1t|o9R|&gwL!Bf25>GA^L86f#xv34q0-i>7@Z1=0<}{g=7M+qFU4;(~M|c(LI3+KE*U+qG1seT)O}QtL17#O=!B@ zwIl#<0cmL%8a#BCgeY{L5(Ug6rS|NpnyyEQB?rPqjSq{~s;t}BX4!%Tssxm@S){Br zRT?aiFR42xOv9MldEi@2o5jE#6@+uf{-;93r5foPKIP}VEJ>w7ag^}Gwg6Q~wF+3c)SQz31dADa^APn7JiysWJZ|MgpDq=a=6aPu*(Bxka7VEQ ziIx)dlVMROWYbTK@Cv&DKUF%KXEDhfje(CrdCbga%yrjK<6>W*8RCi8zrF9ClnKFH zo1}7&q17{dut4v6xXsmCLLf}#YTjsWkD2~WcIH9(vl`5;UAU>SACp9``x8HD%QN}) zsu^%`j3?&6P;kTmrTTv6ZEr9*F~Hi$1E6VwgtMW}m4f7|Ymo~d;feox3d(Vaa7uI` z&3;7}n2s@VXZEB8+6ufZe!U3&9M_eD5;SKHACsEpxN`e8RkwNsy5ko#(*?e#!H4y`suhcKq&?!-U?7T{!6|dZe`Zity1JPmf_fK!%mJyky z&ApC*L=uY}BarV5i5aJNOY-;68}^^OjBgdW5-{FSmK)vriGRY}APIWgN1m8qUd6;X5H4jK)%H6mg+N8fk+HwUy6?+yk#?XvZUu10l zHR$T6sOrSFS5f5MCQ{0zn%L`aaE)C=L_&(a>3@Ayxb%sP@^SF^PE3M)*-S~NNe#P! z?z;;JJXRsK%hT!K=D|htu*Jk=W(TMJX-bk#jpD2W+(m9FFJ(@%Pu@gV1iS2_w~DZM zncYINF*6LTX{#@X-BJ$|g&6ad+y3MW|()0*r!M!K4GAQ_CrU z&ATlr_Excrn@@Lj#_KHiot2cl6`fsBbaOEfV%QSx;-?@X=-0~#hlCrq)G)4tipIOk zuZ&~Q57t`uNf4RAGMl~WwWB^RWfr~^Nyf_kMG2HmL>VtVn03M-^?CTb32UJ7LZWJ=>b{|W+AK7Y`u?X3moH=OtZLNcxfrU<@~QV$KM6kDCp@RB$>=^| zhcmCzTWJ^(4+-%jS6UYAcWWZDI?>MTw@9y?j+*pLv-me8+GRze0X75-*~(2%qZ_ln zZ6asrIHgCos618O^yyZ~xW))|OEsCZp7ZJ2_iiy{R7kp;k)=lBISzp~=cKDvsxpPn zcFphNY`4}3d&s7CP>X^ubapPJD%z695{VL$_OVkc_|<3)?(`Btk&=QBSSOO@Uz4h3 zKj2b=yDj2m)8#?FIIw)+zn8hBnj|05<&pT!Uk#$lk|T)II={c!J_AsEl?=QWkc2@X zZ!8U(FEf)2y&QF}S*|AMH2)H18bLQp_)xwD=(gNKz1)J79 zLrrYZS(0f7mgxjiv_3v#faSOAi&(hNiyjp5Q#7nYqq@QT74-av-Cn%~*D{Ta6D)mc zeJVJ0kmEOktG^>2($!@@PEt;ujcGG~%`AHnYn|H(2CVTdmH#Ka1OD-`lpms}npRys zDb7Imir)Jbpf~Z9q(>)Tf|;r;E%)T~UImDYU{*XRfZ@M>NwQzd=*Tlo^4YzPzKTK| zwCs+Yljx_59Fd^{|itp~y~wT-JL>)0q)>yev(D55q0f zj{JFoQQZU54%QKiQjmm6weUiQzrUW>hSw~dT|Ce4w2y<$-cIovzs!+j*^zhhw^E9B zt!l%gnfg!M7MkSPGx>S|NHihTfVe(wF~_B0mp2Ms1Fh+CKG2G>ofGUPc65QPI-Rz! zm=u^@!&n$)d)FmyJh5(^YvOOiIFNf@nmLnq(uQ;EJ28Y7iPI)2kJI5nlefjl${t?( zfJPPt;3N|}uf!HLF{fhqspSyU;!Plhzfzx_*Nh0N*Ara;8WYn|>GUfGe*QJOPHh}O zxQvO=NOqzAyWrnkHMSb|@sE}~rHSqUqUqWwY8BD@+z5)SKy+e6_Yn`x%=*4iVCsT3sn~fGrq?FKhsa~CHBLtvnYg9YIe2#JVGA2iHvPj|y6OZmZ ze7sr~4|)U7_00R__|l~=n{keyH6R zNUXjnBjWUYJF<0S^fx`Y!#aTYy0@)T3<&OO``uLnlyMV&FJR9HI0{ zT~Oy}N;{l_3YEt1lZc7!xpQ1j^{(6}Y}u;_NCFf7!Yv0@hbs$+dRfN(9#A&&aI`v? zn!5AYU_GT-PiI*y*HvnZsrY)s1A%jIG2HG9`C7e1@YrEhn|lyfI^mekM6-&4+XU3* zn)oMxlE}}mHcdtnG+(o2WiC6ktADfyMY+4Yue(#(G8TjqAP4N@hq6OeZR9Crj zqDPeRajNZMup}dX+7uqyCnIKiH2<-zn2Ls}W~E|!Jh@Hg-BU!Tpck^OGrCMJCtC{~ z7LOl?Ps>-d&s)u_@yg!Xw=JRy6fxsIj}C_8PF8flIKgzWV0J zOL|`0e3Ono@V2}%7ibg1_LS4G5DA+iXq}Em225~MElY%h3V4E`47XgQ*9WR7ou_0{ z_%vB)Dvm_GI^2-GKt2eSove&x-I0JqyL*FU?!(hYED4-2-wz{I=ocK+@tasO+DKa! zl(7oy!}*^#RcKg#r?#JBv&q;+y7`S4FBM09+G-IcK>Rs$olM~&Gp{aTs~ixmIMvNs zOmt426i&D>&;aag4E(+cV;^JJ{IOBr$I*GFFAMv>HrdaQ>%ZM~GSAI7y2~}E&X@u@ zym^oH=W8Rm%QrP6o!MKuy(K|FNMJw*3O5Tsj`ZG4lb0TZk&&NkoXiNu#VRq8$Zb!xMe8D`KM99U`ZPe= z(crr4{dW#-IZ8b{<4lgNhy()S0aT{L z!%bjmqAeNzp972LG{@%esgVGOXOHD#h`#^h;T-VQ=q1?(w2XYiEpO!PRO#Jl zJK}_P>)p7p0WzcZ^ZSdPA`CDcAONn21Hb81w1MONSt6qwCt)3+>S_prDU7FVW3vH^ z+Ql9j^5Z9*XJ`IM8>YIsc-~6G1G4zfm3w0METIv=?H)J8D28e$+?o3}W3qR1!;d6I z-WPvFD80fbXWdU1HLZ*3qg>lK9@iNo>wC%8Y&KosE6%9ymOL6 zk(IbuWt*u!v?TlU1-<#`uSN2rrTz+MU)xO*l=p~tab%g$7Lg&uur5g3-Z?3mSI~Z% zWHa)B$zc@nroadymD(8C@b6z3(Sg}2OhZVfWMw!#>6Gt2V#PR$lH-fjc^lwK6^9(q3*P*AJS!-wtWI2j|^pWDVj4Zmgcs+M3~P=a@$9mF~E%<>60d ziltM3Qs=d7kNIA1?;a_i{<@z%@HxR8!1!=zAuv;K!a|o9&S60Ja+KE{0q^4IMpU;0 zE&Ck0OlkHNtl(%BAa#E80G>P&Wl=PM!h9wPK6YH|gAgTouU!m@_y{1OcXgK|6zHnn z*VjLk9+pFfb|Lql)_?J;kUGYUiKeLCYZ>uLnM@}*{LsYS~Nduad3!JQJjHzcRoI*({PNqUdZ`bN17}& zr0;FYSor$XKgp8;!Gh5f!c3yWa&^k!7WzFd!&bz=oNaV%=7JUvmq!1)64mi!f#~HKOgG&ltu6}e8Jqb6}m&D|gKgC-&jn?*AO|~m-VKp+I#-s@O zW=&ojy9<#55+kQChRXMVBWadvWr#k{vkC_X_gjLIoKffe*Yo#4?-<_|ouD@&2kW*C z^_Ll2m9%Li_ML$?lMi#tq@UQc0Xq38wK5>vbT=e&(jF2W z7HiL4lo;)W>r&o7$?48`(R*QwxEp87qCyvH?v>~O=v*^_B^ADy9eOJ)A7%Jp47HxK z*KC85&pBnbR~$b{#!=SMMqa6ON!G)UFU^)0)mjq54eDP(wEC5})M1r3%jR?hxsNse6oM-^q)u~=(a*rP7EIfItm7*^<-X+LbK*-BIDActzGv#QPkz(V-G?46;iAxW?@)(?^kcQn z395ex88`O@nq^&d{FT7fdj~;*Xtz%3IxktQ^_%$p0l9z@Vp>qys%Tyi zySqGLf4VJlmm-npFw&5HeMk3r(vJAsv{s z5f{T|2vN1Al}&8cTU9s;Ds9-=A`ppvk%(A-o{C-x@3hdKMC@)mbTdwfU&%mH zD0IddHXX6B4A1bmzgKM z&0jIatfX(pE_~sdIDurXK0(mOf;8I`(S5SPRUq#{q77@1Gs((Rk_sa}n%u0Ed!Jx( zvNH{Gu*&4|vi@JCww0sff?8m1cv@G@P@pXAK|p<{9o2)kN7w1UH~{t~R$ns!2W>Jw zt)%2~;5mOT9}iiwmhWnJgbje0(11L%G~bEfm+{*oq}&!pKW{2X+nD=vg(wl!I(ZsR zSvU30VHelUdPnkgx+uqdMxt(aE^H<`>uPUqR$LA%z~4fp1;dEcf!@;omX!}npg6h9Bh`WLZ}A!E>~gM)Fg zkGQ`1S(6o;`39n8-;#VDQp)M@ez()yvG_2QJEIa>W=?B*qwWwFtJnfknTbJV5?U@P zZF-mhF9!^lGaAieq}@na=BmHVY@Ff4w6H-I)YMu#m>odfaj>z!p0q5=yhNSD3Z(0~g0R^I)(FdzIe z2&O78`AiXwm1PL44E4#}6$-x%a@vt-IRF#mg=aE^0EtjF)Y&QnB#TQ@uy?#%s>jnv z5-rdj2*xoPLC-dt1#IWLcG@Mpg&Pm%&Ps@sllx?)kOrivD$u8S3v58m53b|K0pdbpdZtb;eoCxH#AHVm3%|hZIftDfOFa zP1r))8j(9CgQ9Wjp#Bf3Vt^!X$u_#3O@quPRXZ4H9$HQ}C+e_r|2I>z5-tr~(j^Rk zoSWNScgLWGeEIHZRK%CHk&mb?haV^QUBN$zViN!tQ<=@)$7lXmI z1p&7A*g}mow|A6O(bjc~^EkV3Y1o?`zd)~*b*fE(Su8gH25yI0a|;+}esx94=vIVC z=^E&}il+l9ETKF!E)dQZ=DsGCBvfQWFco>d$(s&#{aT;(5o3%JJL6DbIF=9n`eik; z$P-Rjb3rTyf%%C{nLPT)y~XK|7zx?)gs4QOoMI17=`R3C7y9Bg6ojML0?`)mO;sz@ z8WHc@<8>9m@E4p0RQver2Tt@tT%bYjNXqa%Bl)FxKXeSz*+=hFUGzh}%_f5~IjQ>TlY!xKFhxlRQ z0-yU7a^C!3kp1xebnDZrX4%qzkeb1{m{bH;Ffx1k4ej_prd^`gB^!7Z;8V2 zJm@y1`apt{oV2k!Y^PekS#E3oM*>&^F#=yM6B6xycpo+ageLO3;wPOvXx(91ZB?c& zAEd^;aHSd!_4w~}F_JnXjZAIfYjOQJY|CxNZ?#$XlDZ(CSIL_y9#CZ)?8H*F(Kfbnswk+~G_~n4 zRon=_+MaoR|GF@oYa9|qsrcGpZ|O8AXS@*E48KLn8JVRZe^AOCZ+VN}NO)wY+7HZg^z@QXcMc%ei@NW?6tM!OT}5 zq3!yFjF@IAO6Q^%_p=4UloZEDi2*8qsX=7^Yl{{FCo@yl z=HqF&6erwz2+1KVB}fA>Y!jV(X?NiN4bhlXb2$d@29KXGdVqQbQU%DI@7g8E^Ok^N zWWDMk_@S@B`fU!L#9 zzuMM%+5qywTnqQ^?%h*cvt87K2DoHgBJWf_$a^ws?95Q74plXf=j3cgw}3*x|AVKW z`Ol0v@*)X2#)zW#zGTq5p)pNlH19l5dO1uaPj;TofP7x%xhNn*OiYX-3oT$32LxGv z#|cQ;X3JyrAk;fyB^r(O^lJXSWhxvt$$a{NQYb?#Wr*0-z4Rd`FH(|9>!BZ14 zFk5^K6+6zUhxhQV>8P#WDVqx+mpWSPd$dHac zssG=^D^#|#bCM^JZ&{ff~KXG&>AyB1d|aVywy+aIztp03E5RX z3e_u+Ze0zQ(}?;`%LP=KII>3l;I=Cnmjm4JXR#yw1}HQe{z=SJ6DZUUc-+#>g8n($ zP<@}o^Huy*fGo_5Bhv{kdg&g;e{VX-=9#cCaPPi^**y?zf1^ZGxSukwb+7mLMe+)x zO%m|;@?l#fZEgV7J&L;IZ4}~9XygmC)H4ec8S?|!Inxt~T?(8k2@`%QL%;1i{d#5>1$VrG+=#=cmfNq~NZ z%Nmpl2LDwz6zJl8Pz>+XrhzcOX_XrKS%s>VH|9<+dad~nGQr%UWQD8YSH`luK{z|_ zx1=gBtIXazoT|@VJf%OUZ*=|*A=Zsg>2{_QIEG4#!I^M7RnQniI1RBRfP!06a-?p* zJfyo`*LA$ij*<>&na8E7@|E67j>;>Cm_%tWZn}ZA&*#pk}Y{kvu^DBSOW>RO0tSk+~$=JoGm z1ypLbb#oUOw}8=3hIfecrxuMdbf93VPQvDCW%7%}DqLfbZ6NbToL3u;QgC~f-&LzV zh1;Dg2bz*^vbjHbPT=FnMiH2tTix+v<`4~kq-Hu6x^Kt;K$*t?`|r-T!i1GEd#gQA zXKF?t#nOqxuQ%L+)Ax7I`5CweB=rXyq5iQc*^2==b3X*4cdL)R)M^Ie4pEu{YJKx0 zcZ*JSiBe#C$o~X{?v?|X%}+Tv^ns$VT4%&jGii=Xps4Oko9Ec5+3OY92$UpAB!0cI zthQ`WZ9MYwd-3NNv!M|Yvjk87GL7)*pC+cf>Vm>YzA7AeMrnho=5g7u)klDD2g`Xp zaPmi1eUibJz6?mx*rsT+X%5x=;f>f0xpkFgCtM211m0Jz{(lKuGO`yteh1Y_UGKz! zWPPZxq0ot35G4(GP=)ssm-=>EQO$ZXZp@u19SY)F!y-K^7+}>{6}gJLzZI8s*i%k| zFKDAePaT=4Bnmb+xl}PGdN|kH&@p-*X@J z3&{o@-rd98Pl>f)aI--hBYiv?yk5yn(c0eaACP*?MUuqZFNU2AUHk{R22o~kuWzSo`cRETJg5lxjT=~`T=q3DCK6k=sm z90IUFD_mHPRP7RMo-td?9Z-Fj@<#}NqZ~;;$6<$1U9o9kWH3|B1(w|v;)eLRfzO55?ffscf7{GBlHn?F;;rJT2hBui7sA>B5L)c*ZKZuEdosE3;-tEEJd})|o-nlt zvV;@;+C`nbpQcP4J73W0B&@Vhmpp~5sLVw z2B8|pqwz+RBaFZ@D#UJ#IcqQ#X4 zGj+O}z1zifc--wF?z8aQN08NAtw*rR8ANiv_}imy>LxUrUy z%RLYOecZQ_h2CNhBO{-kt!{jYa43$y#FeA-JISkOXdIeldw7lR7001_ik67rd>amZ zIGdO0=VQFuajD5HTL+TW;a)_AT6l(s$ZnTb7#{?EMTZT@JxmVjh52SSKb7cMuRvLj*`9CFFU)$Wr9O}!mAcI!dwOxZt< z+KCgXT1&L;zO@Xg|Zn=NNUopx&HAjKN8H-%* zOJ~cPS$G}kn-PXp2*<@~yXG2l~AG{Ch&WgjSz7(yv5W{sL+70}~)E zcypuge|vWoGZZXi1F)N`X*Wn3$oTluxlBdIHK=?tdE%nVgb{)e$vrpc%sL}Sgz>|} z2(M|)v0&7tf{Rs?vg*kpjjWNPPnKa)J2zQbk!Zx3nR0IPBIz>W&Vymms1s3`aT0t& zDdi@Eoe?E+cH8U^oWW=0gkL*k$6JpG6m~W&xCHg!*fVx=Ij?W3Uf;h;q6mfpvK~T{ zQko5*o+h=uNSju4cx3tnu1PQo&~~HDLn)w9T4=f@b?=UObo*0gSE=I8uFyNNVR3wv zQh^jD;@Pz}aYF`6JeOy3X^&G&m)yyGv|S8CuqkY^0s8m{GaN#G5)fLkIHnBLS`ned1$UUhh06^FwbyHY z*duz4&hS&7iMuIr7iRz3ja+ZI=pjyGhuZp<7KcSlGb2SL`glUMH(#TlnW)iQYM|2s z1!{lAEkc@Lla<XO>r!A(6cXqd_XY_Xi(<@VWECz0X3eT*!Ul>v}rqy%PMLGorKkat4~U6;Lw zY&jTg{zD|H>`sR#-LY$Ka=%DcZzoNj@%;U3wljt*Vmw>wCw#0< zx;us+&P%;c#9c_RhpkkGYwW@X+H=|UXyK7a`Y59h;MOh4lDYu3J(yl2 z+FjouFL}M`&w(>GaU|acN93DUpjkFxc*{x1oUit9@6DO&;PV~&M?t4jqV=lvsd6_SWDP}d?FHaj+N3a>(5H|WdP>f$2q^Btr5hcu z-i*a=R_dxJZ_NiZ*BLFFNci!0Pqf;|2GeZh0GzV@#J9%l=ppGv!`cdj;;Y%>tRzA+ z1ne{e6~-`9L#ywC$x^P9lMlP%RuN~nPq*ps!10Z7x?|6yJH|y7$Uj*;L+UDJ!X$n` z)S&#MW;|9q7=5PgEu5hiGjg>enOPnh?I0@&rAVs6`BnS7ZGtF<={re7Pq^DB)9}Fw z069R$zl|J!+`k)8*Gv^5rLeKSxO|6cDvw&gqZ4MXIIxi4g@eVx)o(OJ4T)}g!eB&4 zGeO1ei&eX5MKaiyA*=R21_-Iz)1Sw$eBSi>f_BmZUD6rJbz`Y92XWO}pkDM$!PBUQ zzT4-%x7h`KMBLhWP^e9~;qq84|C<=dC~Y9FL@znp!akaAr6v@>)5tObOO>*XIXBP( z;GSN%@YoONrx=7afeKWXRo{{##lf*<2E22M-=i7A1i)lgi5QPpz;-jqHgPPSym6Bh zwaN(D8!j3XPgD*>E&a!P$)A_js%-)}liAU&9yD^%c|;o6>oWwxyEp;O9Xx-B3u@`` zK%&mR+&7Jim}3@#W4oAtGYpd)+B=<6MOkHVnO&74T736n>$Qi?%YD_2$0(ZXUc?!m z8cQdE^#f$9J@~%qWJ5M*1?f~+NxESps_XLzD#*nApZ;PRI8<6*hnZYb47o>E@+TPD zVw@~}3gaI9LE1y-C(SHeAng{)Y|?25$Y`s961pllugKPuh=R4?GZz)2{S6{q7)w_k zQvYb0jRgbUXag0?YPM81CTa@pBGMbTvTaxl#h-!TH*`HG6WV2l;b<5vsz5n6eBj+s z+=C>pwYjnD0@7l7!2HOtyW)M?4NV}vVDLUof~E{iGxY3<4{$+I{TS>kjfxVijR7_f{bEkqsG?rN5-ii(sC~8g?~pru+oy z1MD#?%WFrs*h(3e2<~py-ihaqm{)hPIg3NM9fC;;Foes{8%%*hY;jwc>k(afmdVEA zfpD{~69t0}Ifq#YHlRkuF63ImllUoiIRK7MQfD*9~%sg;eCGiZ;=Rj#bWb7G#;+A~vrS zQA$(s4dVAZ`lY@?-)MUB6hM^T*f$4Kw`000lBKv>CKyZKH{c8jJbqq0As|Ly5f%D1 zz0;6Gbx+k()2}%N4R?M3Y-bO0Z+EUF?>XRcM71M0TKS1I%$Z;`To0pm?*~k(aP;;p z?t^oi2-uZc4gIEThbkgd88PH`+;|no;0SgjABvD*5PwDcUKNIAPZ1mk#5%>RbB23( z>qvX94B>;gp<(DCaYM4_$Yh$UpDtoi^ zB6-w@1kU=2ksb+>)D41JmS{1@;`6dWjVH2fEI?=z;7Jc1F8ws;Bo z#`W7BFiv{-NW?`)bI3@ONkwPQy1tdazN6NNtp?qw9hC9;Yxo8VO{~a5q}aw`Z}lC< zsl%qHeGciHP04NYGE>04t$z^`Ik58+t85E;@V;G0UDwGS>FOvNwKie)rHRn!QkTN(A7rbRzLn&|m^tm1BPEywjuwum(oLq|A;XppUH+Gzz< zU$lpwHTp%Y&3U^ZLgRrB!H9go-X2iK1p);J51D6^LMZoqNn| z8zQaNeHk6T-{Z>*$(AxvQY-9|L*VgL9@TB8QdS3hVT}?#u{B!gSn}w@frAY>e};9P zc^R?PkgN2n^ir|gj6k(T4cG$^Hh#lNAud)ifsmr*RTC~_>o7XOOGvR+f~Up_RAG;G zx?|=v%_ygfr5|1JMasKK>jwjxT{z`1IEN9kPGFRF18_&r_CCI&e~7e{6CNyXRJ)Ulep2mh?RJq04?oA4Hbi{5X8)( zj#DH^vzn=sT&|_;QXp$#AX$%)nglRx9JFy6EN(u&1GJDIu)kXcZ(e;e%!J`oCTYU< zP!3w2*4O75`R=Ih392E$Y>hD#-F@}wq(c@ondqmO8^${}-KepUA6(gEPui*{v9P%5 z#0IRS`^4cO*+)Wu$zAkG9}j|$=%H)2XyqTC%K+-<@EY83H050;TP3a~|HT_0s z`tMc2b28+r(%uVmq_g_0%pV1TYbrUOm&e+c0k~5fagoR%>U65>b!|sht_43)QlV?6;>L1m7hCW1lrWlkwB+O_>IbGHK8R15m;R;- z*P4w8K8(KH?lb!ZBLpO$^Dl7IFMf#=!2#xOn|R&d4ANLM3a-g>Y}IURGxYE3xK{Tl z-rKW-Jni`bE%d91BwY*6rWEx~?(}nY)daAIBM!s#3bG5ekdP~R4~f@av(^Ywra7rh;65`nCvxT-QrC(Psu_F zd;{U<=G>F%OJP2<;{T@_ zVa+~R8?fUNCiz)Rp=#snTUZVwKD4^ zGmkVh4UbTIyaFf2x~Y~N+f>wu!s$t92C)=hJleA^pw3Q~a;QmN6<*DNWjQFJK0hW& z>CGgQX5##?7_cxod>j%ZfF1c51M8eReW`p{LFw=TIJ{K$i$EIydQKuu(H9(yl!PNEFOGo{eN}Da%((^K88= z*1CbVS7P&*iCi9y{h7Hh1VIyIWLfz-;|P-Mb_vC+Vk*o5P543%hCjBZhCL^5u+#rL zSBOe;p`HF^_!X*6ozZ);)@pWV{H$^(A})F*_|A|SE3=)mBb@OJ_2?;JHUpT5<66X~ z9#z}XE14EOx+Qq=F}iBXyR@pcF<}p^3TruWt-}i!}2$DHc+JQi6JjM$0K;xui_0V1$Ru$}Ea*U0|}*C1WV0 zZYZ$=0ZItor2N(v|zDDJRQMWFzY2_TS^ zbpfezru<jO4m;%ET>y6(#W= zV8O0T^pMzOPF@B{F!hb{(4-s5iZyJJVa{OOaG37x`ypGJia zl0qD|uJmbrcvj$w8Z2D-{K8o1!kROw9=xg16;=il0z1+0IWNN~dK~UcOtSY!g5{50qbyYZzW^QD+r62Cb-zKBV*uw(J2fQ>m@_~ zM?kzxbgu-Ep>jcGFry0jV=MCg9<)Fy#8|_c9HRbk;P;~P7>-^5?cmYe*61FXV`T2 z*4x&VwUj7D20>Mfo|zFH8oq@SVIO6*kS%$GRsmI^)~dFTRK}qxfZZI3X(M{(?E_F` zY61?Y*wtV{ll0>(+00{ItnvtkI)FFHx^)nyES$WI6rxDfM8*qy#H>Yh?EOrohpS1% z^q!jnF#;NptZSIu*Wz(WNiG*&Z5j2cEPjgqs7O1`(XJa~)rgazGW9+z-lNe+>9V0D zoP3^ps&u!jM2+KzwJ^oi{%=UZ*EV{8AwEq6j{xKIk(7gz43dA=Td-%I-)t=fX@180 zxcYKvzoPmE(MmFvZ*tlg`Li6&35s7-e~`Gx_SpsZ^+rQo608?@)2t`~%DsEx7+0v_ zYl2NyQgEzlA4JKlrxH6*P7w%jJNEwh=FF50%|m^A&h_SM9a9Wbo^$WaNMm^N@FV2Z zjs#GlRTSn~f~YV*Uwo(Y@#-_S31aDz_LRiQ6K5@?a#SGiMU6b~0wJ4>cftMRB%V|@ z-}*g9QcQg}ZZ`<)DTjT{N|IwZyF+z!I|J8^R7_BLS&s2=m>$|)^1=iH3-hN~eXZsx zyJ-w9^U#t`T*nmsZxS#>ZM?E1&F)l{RBmWet#g8jtV^{auZp(9!-vDJ?;;TB{ekpc zGk(pb#5ag~_iPQ!U@dHDc*NCyyfa~sb@^u z1g`Fu7HXvL9D)6%d^X-!HZD^Y_NN+qSt#%s1Q}_acXWZ0N9cAupGbDP*7E+l##(zj zAjvqROjJTO*_$-Vc`Za>%K^tMBDFu{?LP0M6R`3{Zu6e#aNzk3UUkA0Hn|kb#ueiB z-~2_KZhSDPHWYN@x=2_!&68Dhgr4Uw5X>owm4>VFKo%~6iy(wDg8nySbvzcsX@M^%Pg|r&QhqM-ON0mfWfw^9dG%mGNy_Xd()+LBTV^8%rxr%oI|O zBJ!o6(*A?L;3SW_^XBDenpO=!Ai=$NSGnxah#owZkdlH91jY^lz20N{ndLjQFB1O8 zuw9lxp@QRQ&9T?YsgfmRIqHpMF1W;&I^dPxDnZ{kmS zg=fA-WS6fhRy;597P8+(yB7pq1werX3_@|t$6AGdt1+8T1f1FVBbOWJ3v4McpHhMz zP*Y|x^^9zw%j3rHOp%M8L$SQ-)=I1ZQdrpD``=!M@ZI>QTdniu5s-k5e6f7Tg%tj% zXmuZ|Rb(d0rHn=(;vX4#_H4&u>q$;))ce}|J@W4rwJ}Y~Q+rkHWtHH?^sXiO zr4HeA=AaWZA^8kQ#?{SyMDXJt@ZF0j{bUMiujJOerBiK&2Q~l1y~$ZQS#-41v$q$1 zv_9F&9jL)#<_frw!S?%0*wdseVtY!8P4itSxLqy)J;=3`4FBfU!06E?Ted?lEJ!0U z-aM&7aBAV(Ie7A}*8jPX7bfF?yDO<#L346d0;b+Y&WPelf+!P8VJV+}SZ@Xa4L?JV zpEGvm3jTlj8rqd{fh0m~pkv$CrRf)Kg%7{H=G6EI7dm&;m~PN_*AO?2zYOkD;vg4L zz9^1Gw`FZrPPrHLEk<_|Lxi@5*Ez44>dTzO#VZ&DGo{Kt5rBk&37}>z1sPm>faHCj z>pC^`TSJO#UHJ?xkBOsD3QE=C_1?elf=cvpwj24k;yla*-Qme|gU=ChzS2qpk>yGsq^D2p! z^9xJ@WsjYw+kA>0@I-ZOyz>->`#e7syp2?WlQa|3m+=HjWeXiWaUs}#TQIzx_VEV{ zs|0Eaa<%7hTD-JV9BO4X4_S^BZZumc3#zqChGe`(>~5+za-+I{vfbY*{}B0_wn^M{ zfUtj!ci=WTYf#Ak4t{RV!RU+yf4J3X&n#D__mzapEOX!Aw%s6RHp9tKbHhXCBdmH| z7bAh7<6AwPDs!cRyW7I}IahkjbqDzup3^tGTZ(y#Cy1c+kcmzxfMf_!LI_P|iAb;@ zfXPz$4Y`eJRQDARDEV=JvQ&`tqNc~W)R@Y|huyCCD79`hx6os3I zaVVcvu>+0F15R#fr#*P+DNXI}(Fkd$sLS>H-7#xm{&cV4PRX$;GpUm)p-L!>8_#0p zL+BA;uvr&63|Ny^dQ+!6M9!}NLw4ycxr~5k$o{Pe|6e_pv5NVdN<_W_fWM_LyQz|b z8<>WUW7atwp^R+<@TTrA2qU~e%pp0N^$})B_o4`aU&qswN9i#T8HU}|P>vt{X<(M!09x!Yot1_ zP%L3K*Y=o2pG;7@BEsC2x{xVti}(o@uDhf)`+p9FZ=w7mK#t<2*?TKI`}2pU4_2rG z|G(;jj{ikrNETv@feecfssi*>g<=RO3sH_)0_WRGfVxu2yvRcUo?%sfA0{3E#wljaGMTSiB z`hKsgB?I%kJGFb))@Zrc$ok`VlZ(cr+IBOqw02b8Tf;b*5-}5f$7D|~@w40< z1wM+s$$8~-I8=}_)5%R_0O2*(Tdy52|2c~pP`Y3pg!;pH{RZOX?ofeTU4aVxu)AXD z9*>B33~;*Va%Te^tKpAMuk+4|d;WU&WFAG;&hwl@kXN=rFbHFbxPixc;cXwC-YMzHwsK13k5jTGY}MGG>b-^@^=a*K}6 zpu3Dvg#q>3D$5BQ#Zz+xzpwli>9uY|u!WK5vW|u>L~RZTv&aI%Oh#bFmt)#O+}{YP zTZQ<%Ljm6-xStBZPV}3sR^ezX*BDfX=t0!tro1>66Kxm;>WH(i6cb_Rr+CNkB4a)4 z#Kx<_>%8!=0Ocw$)Q747~7V&q~ zc3Ai@1+wf;e!#@ilExadG`v<&A@yyu_b*tlP2l3F?Z>b#>xAw%?#8tK(CpoRPc>L% zCx!87xbVVnY>T3et|)A9!)qN)BMwTus^Tx0D$PTgx;O@X?(;y7-`JQO3*J^!AnJs{ z@=+XU$2PP-*P>X(?S<(xSBae}tpfW|v@>aWhiUZ4^@uEA(={Z;?fq<(U7qu?0v5FA zI&_P7`TjwtJTCoQMz!tL*eJGAA=x1pa*{iabuGtKX&UPi3xUB-dW39S@qEa5pTMJ)OtE7~%Se4XjP`sVV#v6!gQZj6G7R=zTLwyXK{2Y%R_y56uD@es zP^)P*ZWUjw_I8TssVEy9`Jd0G^O~X=t2tK6T7bsQa93dxh_S{uE(k6JRaW*S<>aWES z31RJJ`C!oJLa#f=@Z&Lh4>&N07RuuUATj?x32X>W`;^d}3sDsxoyz9$vTFiKACs}( zI#I~}5*}WzG=gcV3l-}Y`WD)^|A!e2K|^5}4jY@(3Na#C9rAIY^C-72ge-Bz zC`%gLQEy>OFK*aqd~XNpk2Ly(=l`L@5NBhn;SCZz4&UvTh`0l!fh9uc5*7joZspJxuAW=jS7kr(t(CdE zzE*LhFQTJHY*Acn_WT?&XV^~x5{-jW5x9GA2nx3x>~m~yl3f@GGmY11ZzBere#I(l z3p)YaIfG;izE&h3P_v_RhN%8}763x1qbFt{nu)A9Vdb&WpOdJO@Z|%I{@l+%m8X3A zM4p3qnSGkK+VDGzqikx2ChYd(pGgG`Us0W5esg>2SQOI?Ho|_bDkZksDJ7`6({EIW zWKB{QZ}Z?0dh15hFhP0_;8>U&_!;nsWXKHQ=2)l?GZqe1Up!r@W-R;<~21wkFjEDCZv)saRd`zmkvAQ~;=N33WxGk`P)+T|~!G`A$%SC)>VwyWjNd^Is zcY#VKm~q;5r04oak2D<1Z+)Q&z)E_7oTBcA&Q)o2zL8rQT?5O7C>#-+;6&IP@sUes zZdx`Cs&7qy?ljGrMSgS6ucSTU8uax)0#Iai=t=i6t18|KF9i! zMGC)|{ao7CQryVE0{aQOXN&JF1x)+FV4d5wYSHdgn6Dr5{9O{iu8dOVOU@fgJsciFRr$j6H z`?)0|8}Hv_Ni=KIDK(~}B~Mpb+_=Q2aE!cdM#G>*M2!m-Lxi6Mjj%4n3vasFOh+zz zAjo|IR(7TS?gZQr&p@i!2FLTILmh6bR2|?_0b~ek$E>EyW@tcq22|Lx);MX?Iu(4W z&SK_l6<(TM^~6^;pPi^<1kdO`=K_>k=GPWg+bMyXv#8VqIa9KUjdFHD;evU4PDydB z0Bh)c~R;^{bxY z#6W!nlgtsG%PpgEr^Z~0rp!3x)pysrB)TB5f-qggKb1m5Y&1%DuZBBU*Br5(J|<;^ z!+LjG<31Tqs(p-Ay;y#C4s{*vvT&zlL>A;(|Gd?6HH(XE?mLfyB%EobaC$}0V2@i%ZI z*M`_rZ9zuUC3aP2$(E@iLAWSf!1mSU*Dy)Q(6Y3CdG8?xmMxH)jb%Gw$m>q8nE5Gr zKq$0i=jlV3E>b1Y(Ua9OQN0@?CQfYbKz;s zOYJnBDRi>w&2%w?$r~u96~mOt1?5-#p!h(SO_#h=B$_??Taw&sSREJT14~DxF304l z8s^$ii0Dn{C65$WGPaKCMBUvuHmULN#LR5KE;KNWsGNfmjx$y-?i2~(Y_p3)d>NU7 z)q39N;hjhdpKWqw6F`^uR1C?*k>#%Gamcgo)wljsq~!Di6`{~gP~~Zm6ll3!o&3=% z9G)4s1=O@;jSm{*#**QoQgI?OeCqwZ`%2UPXiLzL0%sKS43V;;Xnk$bUSTbV&atZc z!nIuq(Zwgz7lEA5iAm-wh ze3-dob<{pK2$CRTmg=c&Rl^vlaN~SysBuHGrfT!$bR_jWWFj8=Hbi_m<}kz#^XNOO zNR}6d)kqvG;jYUB*(phIlm46C<_WR^n23r26tVk1Zh+iMNWEmi{l~qBZQ=`eytEa) zbI-8$Ex03Aq!~@tEUco%*B)Vm!q6p^XmHh5u@YCFNVY*gZu9vp*yFSYyC$K&Y;;gt>sevZ@MnTA^0da? z$rhJ;pFP%KZ12CSu&oboG-x15A6B0BQ6X7z26$p^5JaLDsS=v!Z!DqaLJzK}xc`E> zV-rdZs!ItZpwIC{S4;5VWNx`;UqwaZeCe`2j-~TO5hums|9+Ho<%$w00ronebvksL z@`~vKgj)mJ5@gu>GlY`B>OS1PDNC@rMw9B@*6Quwy=ytBc8*|IA_v?4A@V*$a0|t< zxS>M&aypk-VZUUrwS)Z4y(IV)I9A1v6m=ivQTnV+U9G3uRA1m$Uf5WdUn|cgRR|yL zSAhGH!0yQTF!I|N$CO*g85LL);XN_;O3zEACg+Badepn`22CR)sqZtIa~km}rWi;# zCZU9GQ7Qx}qC$gOGr~Cq&GiFm9{0eMkit`YZI&&n!v}F?E8y4GuAv5YhW=Pw`I%8? zM^nY1EWfS@=S#G0r4+YcRgM!s1a0r2V_SBb$@46;MA>Zi)7jywsFqqW*xqs@6N1|_1l@PIw!dS4P`o$2-$W;j)p9gJfrYeCG1{WEOCXsiXgJnT z7^eKN3jRK`nO=(&kE6vNVQ=V{3b18}AVqq5nX3a;*{9s)lDa9UXm!^sdvK`T`|VGL z*^KgAa^TKGRa2%ucs2l;9H4fcQ@I*rB(q`<{Un=*DnZ7B)OC^unSytDpZS~4k{R+E{e&GaK- zlh>;_7-?~Sq%RYLZ0ut^&ngXfGVG+xlJjQ~7k}KjIuPz214-q;+`J~cm>IWPRl%JW zMm|8uPK}Pz1I;{=cNIPNIe$&8E`)Kl80=_iIM9u@_a<17AYYLbC!(O?^`j4Jd$DLn z7uKc!DteFOJ!0Q-H#$PIHveS|Qsee9n?Zh(B$4iIJW0)^1O%UC^tREPdbYn@A7e2>{&)Z-zBw8sv0 zevp|;86)>rk3d}!?q-nDRhQ1t$FPL_MyW<F3UQ1Z%oE}LGR>X{aJ9=zEU^{X( zF0?&3g+2|Vkt)c~v3#Xl9dJqzcUT=NXS-|kX5#B%0BAAYT^=7VwuPLMWGwk?4$bm? zednnuUz|HO8;<%8UxLL*9*H@MTpJMj#b-(3T)c~7|LgTBqp_=gHYJng)foAPJm5bc zL>qWmi!B3dYhji>&STHyQeW@mO4oaZGje={oUS+6^5Or#@C1-2;Ksb*s+s|SeyAcAGV@_7xinIWhq_uUl1JV@r5qFkf@G$uD!+H(fsCFS}(TG^N$o2y0eBg zN?{S;1U3eA!!i)Ku_4&)0k{aKla9;6*iqN9k&*-8IiE@S%hH~_^ci%!wMAZW!Q}(! z=hSl+xZChKr58+uP)DJpbA72^7^Uah!khJ^91-HPs)p9v;d4PP-%rmN$Mj^> ze0&JrUViPU);tA$@WlOZLueVS3pH_P$RZJj3CCHsGeZqKATHC`&;P*A%*`2@A164d z>to}5qODI=B2PX*@# zfY6@;Yo>uZ6(`MJS4=Wg4tNV_o{Md5=5jOfLlwMTa$MXk-CPdgmfXG||0%`w$HRcyv}| zhkD~9?9Ipb*%|?m8Q-c$rn^Tb)Mv|#xFylb3v53~cQWNb#nRk5;3yFdRqh!x8g?Ks z@VIya>PUjr8&c%SVdWS~{p(@B4XnI3w~1a7RuQD?nNc_P<)ytN<-CB~d-8-Qk`Rz6 z+&cfO-4p8ix!Je6=y;he(87{spl{_43=y(mV5fPZRj3aI#-tFF1aKI;#E|0j@*9t8 zswpJVdv-!?NAP4_YO;y0wZELe>)4f&`u-Kw9HcO-jAw6ri}^rdm}%h>M3+O;K5lzZ zg*`ctCT$cze4;OL4tGLgOWj}bAykI((t-qNp=|*K)b|t}_wV`{j0fwR*X7hgUG!&{tau-35%L|j(t$Qp2X2-~FuX~iP9tNmHY*09<8qbfB zhW1+j%GOkZ*310`BOXYs%}ulwM1o7Oa|DHR5t`BU<+8#OXzxWUo^KQx5ux5ad~R%c zk-78_ZbC|*h^f5}0Ua41`MAM>)bi?T%!;E@5+0Qz|JZhjgU}4kQ=kZ{t6xz^f7^sV zPIH=D=poFf=`FZZFk#)nw+e0A(P^3tSO+Q_@B^=FVdBelfS!=uJLb-D=jmE~h z;?Mm*@yjK=T8+xQZ0<<@HbfxbEHd>?B5jxui7_qUVmSZ}h%rtcYq+9wtgsSrbA`TR z5<*v0k4Kyay)Ti!2i17Z;7d(mt0mG0ERPa|Q@)n3M(i=eoP0bz#gSKknu%X!uymWx z%g@x(F_I?^k2gk!^lyWgjF;SO4F;XpVuQN_GT+a`Y731@=5B?eiks2i>9-<&w$GmRG*_r%Z4JtsUo@+`lCic88-}9|6R9KK6ZAKby6dDq8KXg8G>a9B2dQC~!e?HSEI)xE1_==J-C@X$s>n^97C z9wKH>Uw3~(74Fa(srT1WUkpVqk~lgvYzvSCiojeL!r}6xJ&PSztL39CXZ6VX4?l&V z>-Ve2DI7_dBzw0Bmq)3Q(MQPBNL6>I*mS5J~g`zI#5tI{9nCvaX2wJPXEU?zXK+bRbtZ`01j|lW|7FBCJz}bY zt(uZ=zC83RZtCrb4j;4F!3+Uu6v`wpdlQi%)$a!7YFCN%T0iT<3(Zchoo5>a-bg(z z5nLfT(3?BUjqu8wfiNPVNnny_OFveD$KGQ%^@ji32WEeEKTDoy;O0HS`Pu6OZoy(# zy%yXxA&ToWI6FW z>!oeAERRtFNe?8V8u~6uJO{z0hTVXs-5OhX6-VW_v?G=Y1ZfJ1LYoVeE>A1^ z(N&#gsg3ELFi#vcb;|2_RqiXVB)u}(8?tTxtxM)L{!jg@dFE69y1Q*$&#_*cloxLA z@3C%fkE_}vR1F}PMuV2fodefYOm$<0=R0yg^9E9W>&)xLS0jx;McYQ==yW4xQ>*09 zJE`5xC8mFGfUZrjvK~!4IcAV#zceyNYPC9{|(&k{axdz_d z{a`W>B{)SA(Tu}e^xS`yn!hz;wZuO;VqAH!6C5n19-RG?%FHD}#E13N6tN0e>+P3qtuLVMq3C2Zcg_}-=4UCvtm5Y*ZQg4|3!|7B2~GkA zyuw=rt8i+dUmYL$LJRjDylg-S&_te>-CswB_6QmD01wc;kBe+~mHk!X)&|Un1BtZn z^*786oqfllDa@)&s{w9vzsA?Ak(TQ9kHH;n1Qy|IS>vJaz`TU+Pts(B!XvPTY(ZJ) zHPAzVO>h_)G69ZC0zp*Xu?@6LJjr)Wo*K$EkVh9J?7oECJ#N7{C8fs|ebrSFP0v zL1;DWuJC2a@tPkz5E>{z+*zdX@)`p((AHYIz~#cvdho9-KNfI@a4MZukq?@nfeT+G zK-PVzpnNjaxTq>=LS_4kUIF>ZNIEqa@)y5~N6tbN>#(tmJNO2oTQ(~(j0|;wTLM-@ zOJbeoiahbVF3MlM(Z2EMa0sjYOe@-a0_(1`jIrhIc(~C1B;ie=lU!oTq7oOw#D2be z*gvC2kpzCiU?Eb3+~UKqm(=uKTh_fyvqE#}&*)07Om3;WWX9h8bk}h<|ReMbQS$XacR+GGTtb_-o2C;N+FJGj3?OZHyF3M)X+?6jTleA7^T{jvvA<_o^Id_9x)VgXdFwNI zD-f{HH_$uJlK><`K4_b<`@4x9xc6T^2g3pxfQHeit7`V!hkZcR64A zwGw^W%Ff>(1Rl8)X98ZIChTKebKd2gKxo6tf1fw^IF z9TIrR++?#LW>nJQ&y8-)*xV>MzY< zxTNG?a3>V$-&E0>;0het2J#y;b}M$vbxXi-kXq#Hf+sWebiwvtd~*TqG)q!!5+<~B zb0?0N>btoKScvbN#omAtQI7Luvl#P%S+Sf*VGu}@!Oz%o;IbM+SS5LgM&?lHhIl*( zXEQiu)9`Vv`Wdg|r-#Lilyp~khIuIrY@*hmef`6?%7P&Jk1u4BdOSdu?2Lg!Ks z#2e{sn5<&qzoCw7YVBh$F8V*j!CL%y73OepAmNFDoqX+w~Jna|*+OoVxN@L~cuo-lnA|{0^3BbeOUc z_l)L{3f-Q0CYR|+)Z)94b*U8MeGZJ1=>pP{hc`lv9N!j)6}%?stv=ruzB9!#Z-oOh zY0O8JvKy(7=e~o{NO2iV%I3l=+}?6AQhd#W(O5C@N+d17rsoZA4EJ7_2-U1w`NZXYPq@IP7`n;p$l? z97d$H?bZFaahHE2*(pip-HVUOHENe&F5d~Y2|KRn{U(4Ox7@w$q%_7GWK>prV!f3b z2=FY|UsK7c(L~ylUljV8ED~$VwXapS00IRBzi5eF69~qjkxDXL3u`4I@5FHvJnuC# z@8hd@CP&L!h>JL=IJ4I?URyussE>5ihXl_>8=ApBIRRS0N`brzOhQtRv??~ynexJf z3FPt2Qv2PlTA)h}vYIL3un@g zXRri~yHGlH9rZ*~^3yhKyC?x?&zd?PKJZfdCJN^%cy}_dRl0=Np=qxv{Hy`hB=NTa zlyOT(vxAfMY)L}qCd+MPM0(zb;j+l_&vKyk(|vfOo@T@-`HJ{J?BJ^f8T62}X|9d7 zDBtokTy8{n@`t_C^k-{IT_3*Fv{G-B$7s+)FgM5F@*BeW=Kl1ZG0_T(N&yjKA4Gx7SkxtA>Ppiu7O;GVu>F>hN z1VNG(mEX&+*ma&cS-hPGYDo%z&m-)upLK?#bZsYnGKcRu_gxk^NMVi5d#89F-h+kW8EBL$}dS*{Hl1*FS?2Kk{zZTHkp) zbFWZEEcqCI5ru@Melb9tU$OLo{z>aG6oHxs_Kn9xjCn_MrPK?f57caw z1nIWTpC{Y0*8)V}@YOwSsi(?}s?SRCf$#ze286_J!wmW5;W9m<>Qlb%OApW9zVAJu zNd6O8f+?(;-3@*Bz1$Vd4%;}jMuNsWlq*#cPZI+cq~AmXHqU3(eSFuku8&%9M`C-M zjxQRpBDdOQX`J~9s< z^zrI?_w17{*D4dE@vze1tWG?J{S^;CnV@+QL!WUca7L=M;^!`#j3dRIok8fmve$aQb?#~XQ*oV4LW~#*IfkeMb~>vNCp4jiwJ^^Rbpi4 zA`_H{GuO|OoDZ&Y!H^l=v)4%MG}3zRcR0Wi02@^;3A2fF@(x>v4k*cH^CH#y&^OHUo|GS`5)0wf1LpVwZ;qed-OSq4xRrIh;|(Q7q$KOkRBq z5xs4X_DAVyaMRKm)TAqNYwjO*^juobrd+Xb#cGdwZ=VRX6VYu|C8fIjx)~E#%3OCr zVpRE+^!63_|38X-ln*T5WD{yR7e+jckP%a{-snJIA%C{1*O(7X2UqiWRO+I*9t5Q5 z?RWx<=QWA5RE-jiYfi2)UD1+tOMgBBWvgvC=Gxw-iV>7`TFDsL#7VDx4vws}M8d}` zm)~i_+Ws**g;!_HPLd|&F+eSoYtXf6p7g9RHv4g{+j?CU^EvC<-Ix!yk#R@F8Ty4YNN*VB#S9JyjGN+83I>dUP zNuzw#Tz~=(a#JB*An6x;Kd&L`v!E`b6mq5)vM=#Mrqyg^3!o(pe=>(INV8Y!9cL$7 za%lguC3z(4C7}&tnMG4)H~NI|0_&a-$*0OS5=XyyRW4MXu=#{O4T%7GqV6UAJK~wB zGcJFHApPNG|j__METP+|!aQ^>n&Q>O&Ejjc0 zU#F=RJC}-e?v)KW)QrPSclt0wg6@6_Txm1R2hN4~*|Z(V;3PCz5l?dNyEDu;%B>r* zQs3ITb9D&h354Ak30mTQ~gOEM{8QY2EZw!k>&40p+pmH& zOf7}Z1sksMx3HfLv*jT`g`CeVQU$U?Wf3#*pa?hjW#q}%og*K7(jqD-Gpefe`?e8V zZl(xpZD4$8C2G{HB_$ma22%8pZ+onh4br?!OhtLV72kmw?NsH4!*mtVFR79YdBJQp z0=AXj)G`NjG#q-N&zm0$DntRtc{fu$adL&HC2m!dFJNTrJY1cqho%k7HH#Oyy!p`$ zWPO=gu^NDcnHObqEDQiUK*YbDrtO!Eyqsbg+H|4~gW$Kj$>q6VRSi-BQt@9LM3NvE zPo!nbdLZ7(B4|g$5$8RpT%9}Gj0uy*cdIDo7R&G8G8Ho5;>0jcrp~BStwd2IrHP`E=8Y2UR@AVC$Uk>1-y2%1E-N8BJ2D zLAn7g3J#k6qJgGWXei6nmF zR2|}p`FULtUW1$XsB?~#m%pmsY!0SLXI#-v+knL&^8k7I*A4j`v^|oKGv?%@!gIoM zfTh><4?y6TEr(v{Yc`_J1d{Jmn>L8#>UKCvmn-UCimOcjF_yT9;Q~_QD^V;vgi@&z zAD%)K8K_7pIdVHQtc`-3WvhCyJu+~Tr83iFa@C?QI!N4sMUsrCPuPpOAeBYvT{8^j{tR}_P^@}UmlHFH)dvTQOG%O z?}8txBWQuJ?g)&i$?`alK&AdO2~Gje9}l%NA*37pwnA#s@7HEb$Ebs^yA*||NmsgT zF}z7M6=nLrMvVp*S5y=|%ki`=y)+!o`L+dRu^zW_XSM7!NJ#)hQ9*!TXug{9_EVx( zer)2j4s(Yv?jBm4XK%{lOL}`42LXqc)2>4_YkBfTWU;bV8t8GzIsF?A#8EeDIPVq# zobc3J5#p;sC#vg_xk*Pb(=)+z6umCZ7?<#aGILa1bMr^K&j`WCbCaBog2X{9! zTWR6dCJajd)^|W3K`eok~mkFRG zLNFx@VS%Xn1l1~R(s<4-D7-%ygUh|dC~s4kh5akwtU4j1YxRy)>HaZOh^PX0FJ|OR z5SS624flV^Mb2OZHf{%6sO-Pt_B&W4N@EO&a872-ucP0kOkBbOn{$V`(r1_mEi*X2Z__*HW>a96$(2 zN4v8EcH~V=0jINdti7=5$%KZ$!M93pcK0oX%6Ay!u(~~3D8L}0DYf8up7hmARtEXg zvgxDN=`!WAt4#GjNM=fKmL)>@ndDC5N)^huZO!JgAak7VZd3R<|>ohE^bbX4$m)vkZr;Y0*uK0@> zh}?yXRKadNlDRKRlUI2(D^p6=9sF5<9T52SL`X zFlAvmnL9^qS6+x|pWZM{*q!6$!x7}^X<$@z6o@VC9pk1a=?GQ2;FIMB9E9YhUh#$| z`oldd^m-4UuWM3b(uwZTjwu^}nxdNPl>G*m3NW^5&JeJ#mt%bU;DrpP!i3OeF~y*p zVAc?B04SqXw&CRu@O9Wx#a%d2@{TQBMZELS$mYV!Ihq6tk;{g1ZnGOKSAzpcq`Qp5 zA(%|N#?crA?}RFG;N*B^1k|S=RE<^%^wP$dax!0A+r>mqf}UBYkT>m}l+85~mW$0Y z3j3Hne-7~TmhPMW);L0WreqJ5mX>Df2C~i-fotp~)Yqso0Sb?Lt}-nPZK+!r*!Ux3 z5QUQKXCH+~oqv>uoD^;k8el`89_OypRM7!`dB$yFlEoM0TzEVxt}TP*$3aqCn)iN} zIGMPsrMm#}#T?18Rth zPg-J$TTA!PW@hix%p%~kak#3hy z>fYt=VwoF{_C=s}-40>xTxPZIa#e$O{F*LQH{pw5~ zj+u57$)qT>mt(246@cCaM49$T$@FsyX)t+R?TLO3DYxp)Yx9u3nm z2MeN&>s;iVRR&w$QNurbR9YKEL0*AZv|wweI_P?Hib3d5apJa&wACBWe8(#_ZjdE{ zYVzIK$o5Z(RERWjiu_F_^gf^F^IBfir9{Fyq%^!7q%j%#(6Y=rt}9dQLj{wb)S7Tq z>ssFw`MrM@94SzYZXB=xkK`&S9>-%_%`Ngptm~C93D*he!+k(nuByjPn&=+?%;go0 zf7KMIfI8xO6GXbn8dhv|y;#*9?YfeEo*QaT3I%Pe%1n-gCf)TTDv6g!Iz}s}V&0Yu zXjZ!)W_^@AE)`5wk&S13 zuR<6v4Z;1~DK~Nd+Cm|B*mD9iWl6ih-2||%X_L*~dudgex9mVPqFFVPqLH2es*Oh2 z;d>-G`zka*qf*W_J+p+?GT7ySAQQk_)+c?Uj17Qjf2aqxivWzm;B~?F{W_vv_LQC| z7CdkVfSb}Fcuc+NjJjI^8oeDEJstW7eG+FAi|ct zE%8$Nz$uzrgKwxYuA**@jy=>lQ^#iF&78(=uu1|ZPs;7{Te25ba5X~ZmGfnfPfk_V za;L|Max%c8IW<;P48{v=0_Fx!StWys^9pU6TDeYFT@tK+ijibl%X9h#iHCSF*~Bt4 zOTIIx=Sfbm!kvX1<=zYcn<=|Qov5Sr)WVddkvz^=t*Ujw28_LFg+g*47847Y&kI4h z1uBZ-0{_4p#BY$MykMOS70BSzxT|Kcw7bXE z@%9N`Q08mb!ve$V!L7fEX(I!QSK7}037R?)tL_+ zByqOXoUmLJ*0V!U6M73(Fx@zj>k*tcb>xsFEK~JnlqtwAftfXPb=CJ_W!xgF(TV*A zebD_0fdqE^s~6514hy84uA3dT!#l*&#%}<~w^3lS|0>pgp7#!pv85Z?{Ryj@yhtKJ z%G#9PrK+KcA5Ju4DG$Xdgl&Z5$JTBEKzoJj)p*wIx)N2tZ7#QR=H;)EnytK+SMbJ` zjnbRg;C0hxdy>#4LJoMf~qSVJZk5pLFcTxkzY(b6Yj#A;MvPqi0szWzjV!n-u<2 z?>|!I)uEQ!*LELZJh)v*U9g7?XN!79BwQQMb!FmlrEb+^q+5BPZq2C!{w4U-Ra%@r zb11;rrukdd`>i#IBN2h45xIV7f~#qq7m#}gCky95^0|CZv!69=&^!eATi>FOjd|PR z_HAHSRbaUn+;(k^ju4}z1@-L7aB z^5%}S_KKZ)-UJ`}lC3xWd0A zD*`Lg7HJ%k^nG-uVR)WhOW7*;NJ&BIF}6RxQK^VuR*Ki*jCpKX=ySP0Flc)_cMtCE zInY$+h6_>B&C?&Md@8&|Dl6Ka`Y`dt(bjq3pBSlU! z&-*w&Pal^;ydDj?5m@~x38mQfl}i>W$nAGoktL}m)Z(K}J6#WO#rPc;wkS1H8|J`U3dDxl;4pNRQKW>={>h-66sp4j#L;Qs} zerdEk;D|Nz4jR9{T#6Q0Fs*(Eya)2)oA5}NK94DzxJREN;l)2wu+Ed9``#E;X)?p~ zf1a7AQqQs3hXQh>`$IeH)j(k)6{nXd$5d4NJQL1z6(e#^1mHtheE~ZV@Zg94P6PMRUd7J+gRPZt*55Ge` z4LoWkqwJ*iCCdDj8cBLLDI9Jw)ICEfvCkYAq7=KRb=N3bm-oEWpiEO0JF9Co0n70J zNC;fUTGx=L{|6R*9JP)i>-aOIIcbD~^=A>Cw8QPf6m#8>-A_d-H0Ex5RFNj{A_}R` z01SN7%Z#>_J~d6mjFhera(m6V@y=D_#HD6wJ}cwEX`Rno*&V@58V`#`0% zE{BfdP}MS1_oc|#A0j3>-PwLB`i=VMxbWhFOh+*?tstA3-A?*a8%{NIQIjj-kBJS@ zlR?mzUJsnvb1Oe5KMEk$%3yA)G$=f!8A;ycinBKfzpp5K<>+(X%DNYK4|UR46xK^d zKV+9uGku900m9dcCisk-y+X4(3msuo5<=x~@o*5(47kR`YSnRwioqq(05Vo4Fv>Bi zp$6BUun=eLQ9_)?5jIkkgoj@J+bmEE?a3K&R}2lE3J;^9^wOL3p_)TBERWXxNS3nS zTM$xM2%M=oti5giJm0zsp&#yzZ4!Q=Yko?+_8H8|X*YMj(P@M96j@OvL79mD+2^xZ z?&!^S?~Uew0wb|OQqZD!2wOTp>R(!vU-cq;rbvXesN0+cZ$IR*y(eucRV*R>sUlEC z1gW+WEdTMf$7)s@z!3lO6wJY?VU=y}H0?%{>&q!Gi6*=Z}+IE9J?tdM{O z@T!<^A`@mlG}s5#9YWv{xZC1If5JVIWi3tI_mKm4smRUSjW1^=9ZT)=KW9Z%Idzbv zk=M0x!}B2>Rr}(s_~yEtxzQd$P`Z}a7qoIQo2N7v^LG)f*UmSE2N@6;K#LgcDCe4} znlHKE%qOO-OAppUXR_(+2bQFV*VM|+jCSb6V?{zR2*ev53Rut@|E=jl%OVWDhT1!| zME%mfILWhlLHgFPyo%1r2EnIoB;Y7!<9^;fE*Mk829Qe4c$+ZN6-1_}I3oAsTlps) zZ(?9i4&strqSDF-mwZw?mVOa|uPjHD59J6%IWc@U^8$ou@+#u(7Y=6A#YW|;wE^}^ z-V#yl_w;}hcd!dBA=VP%N7>Tltz&o!t*y17;L`cdyl+~YOzXGClIoBa;#8$_sm3yP zuk)Me`nhxs5iYA5UK=^WW%{?V0YDO?*CF-m!acuc0(nB={ZT`&l_0al*G)gWfszG+ z`Iifr$k_di>YsuO)^dC{RBysxln)XYJ_dpUI& zN&2C00%2Fo1a@e{UHN_($Lk^^e4==vcD2vOQ*~;Ch%Ed(z0GW*NZo`sA&9^XY0QXM z6}9jkgB#%mAZGD&m+^FWNk{>58b)WvoZMLeotjv!IAo;F-IcBfne>5uA)0nL1Ywe% zqdBZ&1q589%AH%0Ch}ms`yMqfRHOvJa(e0iEtlP^^qs^bFlV{OhcUII)mEt}L#Ni& zh?K)xf)n$V)9U94iZi>DXeDiB?8=dzPp0Cz4)5NDW(J7`{~C~K z7~DzRlKF#Am5YwNLWo%;#pg~F)!tqW6Z6m#wV(jt`Y|-yby4>7@8kfWxq{$T&-MEW zw>i4^Y)!qX;MzS-IDtI{7HXJ6U3K5gZkrz{jzf&4F4x2Xdx{tOafnC&kDdbc{MJ^c}uDUV{KZsER~b;P{M4X9}} z8J=SSL3mz4)Vo{GqU}fNQ+*o6?Cv4y$>%sUAu`ML2PQB#!R+a4r^D6$F%ySl)05hV zCyNTOiOt~mG*E(jVDdG&@->_`viJm|BxIW9uTL&0slgf|$p*|^cC5Re(HA;Z>BIoq z7?(7%RL$qHL6qHOO{*$JX1o4cHgZ~xRw4Z&dxaI1olnKBLVAw>2Rmu07;ob;ftTVL z*KOE$FpP5Jr!l~lBX^gb4Fy~@OIq>GYj`kr3TTC15`%5_QK=m=E8L2?{0~gYjgv@t z7ags=QqTK?SjqY}^t`=Uh28b|=h9cVy@MxN1~EEm*+p2PG={vmXcE~Be3HLBw(2w1 z$g*+jx}gDC<(topek8AjSr(WP=HfPv462J0^kmX>H|JgVEyG|PyC2^~j1?_hy~732 zfq9frZq9}}s5Ky1D~xifM9KgxFImtD!Z~Y>-#M@$vXehGbKp@9nhM`qD;EX7)jRNF zjTJw;LmV_ZupO@ug{`++ECo8ERP?TS*OpAx1+uT7%- zgQjLSWrQ*qN`6@gO<4ln_cW(M72KLn8i4_m21^T-%U{)9^c&XSi`FzKPKMw+Yw<;; z*dMFRUiI^U?(#+m6pT8ddPkm4B14@W?AlhSQrzD=V~UNQCOoOnG*9+RN# zqXiBzUkP_WI$nOb?Tk^azh76f@bxI~p=O|kaq5q`sneAj%D#Fr_!B1S7mZwOK55dK zi?(+vjsS*>;MB?EnOYIs@`v0kDGp@7KM^($qTvXE4aehV-D~KrADKMp z?-w<%Yw1y6H`UfvAtPWG`34W}<; zO1T4A)Y}f`;w#feA`co1Q}0Y5>*{n?ZB>~SH1jOX$4{)n&6@&z4ZUdZoKV0%tY*y7 zEw2y<6&V3>CBj8zJSu){5c_>-nJtNtsFihN(aVmXcF@@;z#M_fW0Kr&E@(p{7w_K{8OE5gH6CH zYqzG1Bx)l1ICi93cdg92)|O%Ke>0G@O|G76(rR&}}icci4M&X8xoh zdfuYYXkneF=@>8ayg=W1IMWxn74_&EM)uhiGOluR#ZDqkW-n|-sIR3o>hnT+!Rgt1 zFK)H2LO;inb<_o^CG$hzLuzr0F$O(tMDVHfo(8W1y=1YX9R{VM#HA(oUx&Y;wWrgm z(Pk8GH=nD>Z(Gzdb5I?xQoCtQ8gMh@nB#eBYeX^xGN|eOiaVDKY_IXkc0vf;d{Q*6 z>T$KHBJqxl{7;pwdeTr2qmONRV{f7sF4XT2QRuRfOc( zE|LiQoR6tr(eIx;iAeQXKQ9{RRFG}oqAgq#JE8J8{mHI4ljFnk-N0hzM!@J#%JCW$ z`~!)fj*s=GPjUOhew)B%XEyTych70QySJMzv|Hmpf{3w?cb&xvz`!~Std%}y+!Pou z^dOa@=Xvh+WyZ%k%%Xu0OOj=)NLvXiT)}i(;dRt*RMAR9Lw>xyFX;R`tQT=}xg*r5 zCLIuoP?Ct-iypR5k^raVA~(WQhkBdpOFH8o@yDaR-aST1Y~{)xaDFjW?Uo_K)!2}c z2c5VQvf%pqiF1mEuU@KL%s5qDJN;AAC%d1dg4rgstI_jtHA_I|uncAUc15Gq@ZJ5x zYP_(K>7B-N7XZ2SJ4RV#Ti?3j9QWxgA7?#9Pk0WbU5CoNp?gq=vI2y&Ks+(5s?ic@ zd3O*X{}k;*LsVuR-%q8urzHaX)#o;_-1RUaN8J;bF-$~V88N`bRb-wu8?-OlnbMF! z%?x~4zt2mcyw)#`%p}9ZdJF94MoOKLP$stL`}dp$)jG*|QT?yicuL_`YlS_zkn$|C z%QcNW++Cqyf`*!UIHa$lY130T=U?s8EO5)W5;_j%eYFnKqP!eV7N+hYTuukq3V=QK z-qM+Wr434h#*`wK0_q3{M%`)At2)2jw!7E7DETPr5#Phsxc>$SY9e%E(b7;pvRw2~ z{Lx!z>V)S>{b%e(KF~b2wCT3AS=UY^JCVG7q&C`x$Ze}fW_uo4T^Q%=w>fsb^*RvK z@P?Pcn%dCr6L0W-2v@frMJnA)4DpBCA9X2!NnTWf2y=Tg>J;xtr%DXdnNFIvgyv9$ z3@O9=&KMgG;H=AmjyJ@jOGAbBumYc|Aj?$YryRplzRK?ijb&=_%RMk^+EP9Jdg>l+ z_d5twvgJ^rI54Df43LU7qql!8C&X;I$G??|hPW#2=&f1!4ky`fJ22v+96NF9qvHbI z>@+Ex9i5YLGJYo+x<4o% zfpGXu6Xqlz!LF#;`%h!^L>ncXC=LSqb~gDPbg6cCE(uK~ZtE-MbaOm?Qh!<1wKnJF z)Mha_)G|v-M@AU3 zGgX99k@#Z8&Wcoi523L+6QJ^PEeZ)Z@1fa8R=gJa$RA4fv=ttUax+}O(d#?D!PsF+ zX16@Z#o5^z3(bL5JyghnOP{3>VOQkPwLJWzOcJkK=V3#;V?h;EMP(Ct!M^0m1|M9V zokU0kDZggJ3MOwLUt1r$o;f4w1`fE~3-}7`!A~dYcUXFSK5RZfs-HQ%!SxY4&Usf5 zZ^CxGq}!y^0}-1sRoh2{BhRrA(hI6!qrJtT6xI-BwLWmYO-M=+fES zWptTd2ft4wyP|M-k);t1^dO+5vBoC$hjH`%S;hWn48lew~hn>SMCS!M6uzNZ2fyrEQG7D=@4hPV%n=vFZY7429;GAT-Ye^eTRIu_<>L>4 z-1L)zK}dYF0qYe2R^9ozm&wo39kR8ViMcK4-@un+Ebn|gb)@uas#xF}rDM6O-He;~ z1VN^;tUle$I?k?lG_NdX9VV&*C@y%W+M0ubF)`*^*Huh}Ll$hpKth+<=G|lOHx;fu&Pzri!b_uG{r@pIjbQ zDijGe-G|}e67L9XfMpDuZ{pBo6SAG48hFwuuw<(LSyrs{4(j{AZ5u<;O{~)1-ewpg zHEYI+L0jzf#o(dlqi#bSo(e`aqa+$8#EUW>LOrNB*_(3i7`VE8h?vlF67wZzC46?$ zhQ;(KgFc_eEG28g6gtFNdgBY4twO5^zIpf{whV$K78xs*voPV@z9sa<&SfX8I5;bO zfZ6?pm89->MZSI09{NaNcvvj&@qj;iY+RUrTQduEF41>$r|!aII?>g_N`YG_6J19T z(vw;5Vy=-Y=kKZ%BJaUzX$e#mMx6Um_KU}E)8HuWzlXj^ev7FE&FBO8U8m4$7 z#<(jhI&Th75XCgX6b!e{`Jz4jJ>aF++~#;QDp+ZLWsKgD!>3!z%U(QnB~$52SVkwL(^*2Di?8s zA{*8)H&V{oc4M{`2jqg(j20#+n zSe5Prd-FF02cVlpMZ~evD=mDADKnC!mXEAu_71xqi2W|ij6Duga;l!yAC)JwkW&Ha zNupp*vDxbb3VBe{=HE(AqTR>xngxwUj0(DBrTZK&1$yzhN$TJ@M0vwQg%z<7c>5cj(>$Zn$oZO zBe{<;HgcK@r*q8nCJ>40hrebWdVcr`MAP1AU8OupCMANxYCnH3>W|wgo3IGNiM`p}5ZWAZ?Eq_^}E#!TGs zB*~H{azM|(J|$LVc<%`+#rb9NH8;?R)- zEo<5YX2uJWH4H#e}(f5vXpP6T7#M zEK#)=FF&tBC1&jfP+*_|UrFz3s_ueox=*cv9}`}g4O!JD$m?JI{@K7yp-M{9uBEo~ zzgGrP-~MM}SLnPM;F-b>S0X-#A|ycyGH8NHrJS{P|; z6|WO_BP;f65Nv^l3P$Xi8E27lHOAuZ+{>69t9>arEe7_8?P1=gbAWPYL{zC>;U z*P9BG_eT|tygAmz87fr@xpH5COKq?f25~YmD+8UGp5Z_ZM$wFUz74XyBh<*GKqa;@ zQjLR9+$O}8gk$~uI;PIiIUqO{Ow+4_ALX6Y?P zV>d(PCmQ5djbi3iJ0u_wEuQ*C+6#S1U$sa1au;kEtGqR1rJ35mS%@z9sgR0Cb~zJ& zQ1AS6G9((7lFKs5aW>dO>{zWaFq#_XE6`j(+&S~UiTlAGgdOFB()%Le8Ey3++Os0-`p zm+3NCjc)W@NhDmuSchLy;Z&`zFd`J~n1L9$1nMTAFU->BT5dDH@*yy}akm9nNVi8j zrdQztzLl4vZVit>XbnA_U;{uYHR*}8GV^SW8;&k4; z*{t3;$`>|&i@3-Z3XA(yievjVQCx%ANU+w7`|t<#>D)Gd!{6W#yTZR8YCe<=o(t0R z?wqm8uP!?0-(tI1z9^n;85m0Qj)H;2^KceeukQpt>gf786-j?X$5Fn!s-BuYJ-Ery zQ&GHI!-eX0bfD(C%6D0Gh7Wm(T`^KeyLhFy958^XkS{~v8DW#=YPa_47uE?!?eg(R zn@Y41`}oQME%yCbMOw8#GVKrny`E(0ep*LyOkz9uN72@d^3?<@%6jP9*1rfk$+JvX*lT%e_tLwT#9Z^1#h=pq&vPzXBl6vW{K zO(>kOF4{czEad96h*0AM!oJA53`^CPe=P66fvMbWq=Jw@)&1SkLmi21*i*wed_k5= zaN+$x^Va$dN<%<~zCOp~O}!Hv&pmu(#Kh0ot{0&Gf5(7#cEDU2k*IOP_w=}Uj`tYQ zq&_LcKCq1AeR|;oCmr4i*Glub^$+kKK%f@4Df)XydkzZ86xfDMKbTE;R;A~GDe(!* zhP>aIB^u==cPj{6@U ziG$flwz=y#_;`=ICDhrMSu9~HIWDcmgUHjkX*jtI1s}}NBBo&?QNa$0f0|H{0mOj9 z^p%l!26f0VbEVwe3kT6(SUk4fO7AevM7kbAnY-TOI6W@rgDg@(YPVurf$wt(E;gSP zzEQx?`T$O>4(8Q}ANgy`??Fm@cOZGyrc%0Sp^gVZSjE8Q)_f#K9zG!&vjQ(Oh4Cgd}PXGW;& zI3A(wXI@cN!e6ql_zlhMYN5No?Cdn5O87hvxcXr$3KlUlrqC@pqwL7Ka0f?mVI4Qi z*;>zMUh5jd*|;>YDVxDJv*>1_+!bFI-1sWiAb?eGW!`4#V>u^8d;zmn^v_4|Jj0y{ z2-Pq4gt^v+XFN?%lH@UZ%_lFwmy4Pq_AN&-!~U@M0(F-&ZD{sO*a2V`$-A7c zH=t={O=EgoJWP@Erz?*pr=eR@w*6tnDS(P7l30y%&IgYuw~4b!KgAmUXcyV+;6OVC5lV8F1~f#lV>AeT{fLO1bey3{_rPeQ&%`qs(OBypOdJ zn!uXMURa3jC&VBb3J8%`R8F8#h=?SnM$(MXX&C_lJtaMoL3I+qgJSKPe$ z9|ioahZzPhJ+w}tn3l<)uP8<*97|%yd3~}Q3(`n6-jH%E5P8(+k_e<|PeK<^!iGtL z^D>^*2dV1)=XgR;P#8KH`&&0kgCEAbMy3}x5eEWcM9h(jM8D9g1jLz^HTAjC8k)MfOx@4OoX+;x^OV=d*z@Q;b^rIv$W%ZjqA=IsaoZ4ic=f z-6g;syHGZX*&q!M$)kEtv9mRx^xm$F^jDkzys6F0o_83FUCTX6X}iZ2F-w5(rEC!qY$HL{N_=PqTcZxA-3ZfT zpV*4|UGfcttOl8w;)NCz2(UX=+p`Ks^CE76jd*B0!5BxkgQ9#9Y?( zn>iat=j!(VT+y^yFUAuM6353Deba!}e6F$3=ls8c#45##ADVD2_&Jn#RR!x-h#ZCR zM}242Cj+P51AqYr@J>Pw)~E~rHHs8r>n&Gn#LUx0Q8OELx)=Y+k&zmCTsV8kEazNf zqFfWJ17V5fkxVeiJSU7JVS9yuFkeFsCzHS-;>JXE8EgGDm@uB~EhaWkb6C)RoVi>) zR{q0p~$N9n5D_G_+xDI~W6dqxH1(Wm<$-`qVyz4!L-I^Oz*%6Eq zmO2dwtWfm`A+)jAakWfqR4-m1*->Z(%2#EFgxktOO!R2LdJ+_6z}!BEu_8A^R zluJaz%b!^gColu@yom4Rh&>Gn8?x(FB-+e)(IyXV9BI+oMCSA32#SRgYJ5|BTwPR+ zkT&$jwf4;CC`IL&l`xez<(z(oR>$Cfj_u$N(#D8H*t$fnY<=VLW08Cer6hi$0zYLm zRzaV0T}p4iB!a95F!IuYftSFsVJ!(=^x{c8@BY-jBb&*r&apnd%Oa!tTue&Oq+W{J z!&&^IGH#sXEy(O|Qv_P);eyMs9}_-vIb*xh=tw?xeRwOIE;Io$!2^yRmk5^DHX8<| z2+k2%9-PV7l6j$9uXO&VP>WC`7wDLdi<+nVI8gOtX&OQCZ=Gj<)wvnWp_v@?;HIBj zgB2vJJHMghzzZV>R&m9f1IaojJJ@Uf??akb32k$bLzx_c@_gaODWG5PPzM!ggvF{6 zKSCQinfqB_MOkYkh%jz7kq&e*#>6Gk;)Ej9kbsY4jim$1VFutWW2WzXfyg8-l|JJ6 z{*cQbPDkMp$e}`J%y>m{U|OIQk-e56QQpOMp(rXiGhr`qVf4iyKl9j@@g1#>r!S4B zjwoeF&&=-SyPqINB(O>`=dg%ZE3o+q#wSIpRBzRf4rC;w@&FWbXxcsX$|(%hpZo2#tSW+`O_aU(Q^o}i#nX=mQp!I(eCV2s)^C#PQ&(x2st zWO!wN!BMQ&(TAKul9AM}Spqy@ho0uC%l~A*twaIXQPMG*%_#kNgsuza zm96lotEZ2eCT`KXBo02=YbWY#L|}Wu{ksB*9vEFI3hK=hDngO4seYPh5B=5B;3kB0 zT(J>N;D**#^JXVIrm$WIe^cq8wcvE_7fN!SAdJadSUGod2Jvw=v0S2;^oGAia7kmH z3^#q%L%Liqc(rJ(xJ%Z)JW81Ue`+}3>Y<5X?QcnV6IgOy?q=VbzZ$Y01C-lA|>I3QiDGY zADag|^!4_Xiga*{!V{(S5pcx&)-tAmoqV!j6e*G;2h^qUE>Wzo} z5t5t)8=L<34@Mb z+y9TL{d{NHGilj3ICC!xo+pj&SE(qPI(f21r7*p%K6EGXt`r?;tN$ZfaQE==dVc_L zvY`tLz}Cq4e6LG3m)yR6XwJ<`vvLg{CQHW)Qw)v z^}}TJC%^^9;d9QqM8tnCm5hpc`<)drk7Me%r}XiB_DlOxKUa?3{8q!Q%U~Hp0e>2* zjjv$N>q1oy#_4#Cd99MP=^*!k_mGsiwB5@sU2o0wRxK54UVBDw$u>*AXVyK-)0_dP9J zBgi3V?v+GZZ3pZK+GCVDGLg#ei+&5l@9iyh&h^jzHKqIpJqA?3`W7AMIa!cyiytn) zp9ytFuH?Y<+#(iFrR?V4P|N6Ln&DD-t$2&l$e^be2KoLC6*c>ig#H3H`w1* z#RiK@F{&$OM$Rf+VMQTnd0$!)%CEJ^{{j?)ECOGv>Bb~fAsk4U4ze`P%YF6j_*nd+ zPlfFV4S6T~DMN z* zy6HhZOfYz`?*2xVn)?3cbLI0^KN&;7dh2Rll)usMZZFGtYaT9yAXKong6E**TMw?h zKII7%&(Jzo5P0M;TR!RI3mI^|HeeSo_aa`_16dz=7>LXuvAuHDbD4+n_U2M}BdRY# z>mfF6mBViJwjxB>hmgD)eWZqV(|I_Pag<-jP2SZ9AT+po<|8K^vPrB!XB6q=R4gcG z-P;_ip!*nmrTs0GTLFBP8hXpTy1DlT0Us-W`cNB~fA~Q&s5WF$73;n|Ol1 z5q~?~f^&EIj@;xzs2KrsgO(EnDx@Lnh4G2jz%4?dXYqIyg0PZAZFn(tgs7V8JkV0t zzpoGV{>rHjcJEdmM<3{LJkrMQx-M+nr$}Z4=!O}X!nj&@c2Uh}B*>7qK(EW4YX?wK4q*w&m%7W*!@<~X4z<>DE0+QeGgUN=k z4+CjQ5b^o4x9Os(1j1VvVEXc?=7$UtCWf-e;V zP6G6mc?zWCak;mC&e7@&OI=Vm z!%6k#Vsp-s|8!1=dzBKJqERNG@}`7l2!*^P+LT|vq&8FO@%pX~rmiw}B)3XFsx*LA z{S6m^C>mY`NIob=Sbv8Y=dHY9?#L4t1ZKa(-;rTnY{BsedyNN~Xn@$T^-Q9D$0+pm)ze=L5c;g`x5L-vil6bI4p{oW@^Y(rOejairad3jYDGkhdyM1x5zODhx ziLV@?gXuK}H!iM$3xj=7XjO?E5f#&$xjO1nu~h-1j?6!2re799%A`3TSZt1A<1E=` z^_&L;V!%n11C2CgX#-e3#ElOHwk8iILBN?+U$i}Tq3&O>(em6~xu2JIAgAZXpnI!U zwuV=xZ5b9af_wAli7RZPAG6|eTt=-@V1uCctaD7F@-Rwdv;t`F9&7JIWWuWBWf;Ud zE76}ix*$kJ{2!v`0gc77&9^VVoRX#N$MRj|_!1>io`})NIqpUakJ{q9wAfn*+95rK zCs7@(!7-k6_9}qlEUR|v{u=Mns<6fRZ;GE(gBrl@95c+o5Fc@;hD3(TpxZVBzrYje z2NP0R#Bwvqrkqimj>~h2*9aj*CYPQRLd>m1t^Afg?Z@QWS^RKCTB@cD+%3_Oml zIh^cqd`rfO_wx4L+;eFFMe&(bB+^iIdcjdcK@M9@H9+vYG#2SgIW&m|ovH(9PXHx= zks7lF`);YPc}Q?@Osneb8v#69Gdbow$i!g;+bUxa%MsINSL|?76yNb_K1Aw48cTKg zKDV<4ndZ9&Kv1!}w0R5+x7go&M!xG#<=z8|Jf8qNK*Yc4E`qoh*9WCYuz<>kPn7ZN zxg}k`iGB}1le&j6>!_QwCq3@15IRVqknz2XmlX@ zzlIjo5K&_A^bma0_&A4pY34n@nCKy65nHeG?Gk!T0Wtir7M4)%is*>*{isE@n*ktt zZ`90TbIuJtRP!KD`;@FdoeH)s=@3G}cx+7PbKh^nIR|^P z-&zBG6T%k>J>J;QZPY&+6!A5qwitxrA;g(hV_~o_;YX&=Ey*YLqeX-yv-{Nl+1lS{ ze8v9j8wwreOR>mH;umC~?(%qL+E(Qcwe&Ll9!`{YDN@AR!)fXZH5ad_WKLDD@r%bb zBq&u9*n=C!J_SAov*k@@vI43mRcb}*QVS{`Y1|8)kL?FLXqV){q5WwX!XzEH9@!@e zR=YV7t95sw!Qc#XXTBiAj};%AZYjHQd@v6rx0^noT|Sf2e#%n#4Hae1_Tpwli@Y(H z1)_jOr$*x6AnVP&1R3IknLVl-g=zan+LGZy>H@YEKSz+@py66=yoAflh=U?_hc~5AyjL~DPlSXa- z1s*`q*H+}|J>*w$eo${6lUP=I^E5YM#$UmF?2}BGS$};TY9La(y{1I6CRD$r@>Gb> zRPF{DpOB>W_|UELoHkbnXP?{G`9BVI$F%>Eh*vJ$6MhU<*}iJZ=!_N4r(#e**~lu{ zucb*OnTZOwgV@zsyHh;x2P{qMxdP2?(pZB)?7lq|+x~>aeOCu{M%=%C#~QIk=Y-XA zk6nB7oRpWA_jgqh!OP?z_~91ftpF8D{nhL`c_W#CTvU{LypvM9MHZUqt&;9GU@|ECel0z!_bLohkZcZ zFhS6zsSC$Sfosm~Zj!~#bwHr|1dJ7Iw1R?DQjF!NCGB1r@i56I0I(N62+Wi&2}-2c zTHvl{=kU}r-C$?j&arEK2gTToZl$qJ+#s)P3UE~usO~4udanQ`4&QNo-^59WC6nK5 zI|J_MiNWMN#|Sv+gYZS#r6x;Zd&+@coS_21$^{2BuSNlSFL<`M$*rcP$DgpG$~-%Z zAmS)}-_dA^T9yUIG?iG|HTnI`jxebN%7tqLRdr`DXxy|lUt^Rf)Xq^>;o~!_qZ!y~ zMS|sVU@|m${(Oo@G(Lj*NyZ_8yPp&WJX965%4sa~=~2cAG>=p-5sQ_a65)iaV)7ZU zA}yq=vE0E}fZ=x4(b`0F5+EnZ$?nIjPCW^RJUkaEWJhSR+0T4Oq7wjGehi<$^!{Aj z6ClYqHSaLN6va70u~T(|)>&?8pvHISu3l6-l8>Q%C%|d7(xlXryvsZRm#0%zIh)SB z$R_|2CEG&80Kp)Lx^qx#CN=&}xBNkG9TGM%xO7|NjH{<8m;eJ;u_{bv>Iz=Tek8Dt z8^v%LV0n20H{Htn8$0~z1c7M(-~b*xlo>aEFVh_~{GMo7j>jZ2&*9Toa2gAoMU zMK97*H>{Zrw=+#-3#VSJHT#+WCQ%eJ5!`tB{wrZ}GrYfilg%a>V^te+gBz{`gfhf$ zs2$w5^GCJvD9w3?{6@Wl6>ACn@h>qgz|^?Mn{XnR&$E5vtv}Ooy2f&NYBx-hnqNES zt_YolQBj9AB^5?dMf&G?cvZE|$hV-uL_B76Q^MGTH!Y9k1<=BTYBXyryMZ=gR(Y3N zhF=$gT_Uf&S6-M1YJpvPL#{XA$WgS2CJ*~b2!Vkh&Wti#nuiB#I((BQ`a;4gmTRAW znqoNuv#1o3{=1#6i6VcldTqR(~Cj_pp#IAu#V$-aBltfc)! z1bq?S!vjd(qa0`>$<)^7;1?J}G@bLc4Ui|oBku&`Tv|Jsn7It8=^rDoJhBFO%kpVR z<<}N3CxweO6t?D7RTPS%t)D-jI~ebrJVs(-DL}!ob6KeH@(had^@3;w-BldG`o|Z! zp6{1hcyYK=vJ(l&BbymwBi~-wSPz=|OtHkcD#_b=&XbC7b9eyTp@mGjPF0kZO1$y2 zy2iyabSxG+v}UpO&Cudxhw)*j@+Fs&fulE2DHkBj?lcbDbC z=l&Bi_)dQy@H8?!QOhd;?Ct5N0{mz2X_PIfZ0=@y^d#dszuz{HOvA>d>J*qd_9L#| z<{%nCfB;eX18MNr-tZj$e2Q>Ss6tS`$}Uz8-!n@+wKO!;Sm5t=Zbd z#Md7FPTtJK>ZKp^8wS61AZMP3@@)Vx1V0(|fG7>u;pU8b>{z<3Nek7_XRD1OVBb<( zz4lYCZ-f2j{zog+3e7m@wrYHnR7y+cnC|k5F9EUCp2a66ug$OI4An@ywiMw5+i|GD z*|k`@^?PHM6>E|ZTcrKn<&&`Q&(iT~7cg}Qmjl*kpIpB?bR5<1`iz(Yr&Xx5v@cQd zpQfp;7+8nyivC+7Dt^w{2vpofaok;kyhTag859|X-2wEnI6sFd`h+Vnk14(Io^{qf z8^y!FY`UkmZ1MpL*+Mh7NYU0(dZ^Yw^xY$<^!+1%7BI$f|4R%2bo=!t<~AW_EaJBQ z?m0dLJ?_K*3fJKQp{kqDCInQ?Z)1E^0 zT6rP$acW*v`FsC=r}yzX8t>m~b;|SY?`i$9sf9m|zkLq?mo`8H=ffGh&_8arY};oUF~pTltZy=^=ugk6?4IN0V%q0T9Z z?*=bcx^+wt6ir!KHlH(2BtVI`;tM>DhcfUJVbP_%SNNG7EtUIIfa5*ij`~_>CZ|yM zemAwc#dh(G#be9CBQENk`l)b1gH}kKS;l8{UdZNswpa#)^Vx+mVcfSXW6+P7SN(zN ziH4v;NeUj`2++pyDH7n|_Fod4OHK@`*TyT#QIvqkF-G3gqe_&J>C!WxuSSkit+5?& zh(Bk$h&=c*$$~P?)7K!Eb!7{MQQ)}ODOA6W(rpz;;acyWkY)#8pgbn#)sD0+glF@6 zKT)Ee+6X~H%Sm4|DSvN2P9GM>yRv#Kbw%IoC2KK`-^H#s($%D%lzYCgZ^2{D23qC0 zA5>j@oPAc}Nc5#jWk6T)3T_2#0e_PKd=YN`d!z-5pk@ZTZwCd_VF{V8F3U3lgoD#$xWju+Ac;JUmW4Bi z>?78_>Ni*zR*J$LsQUR;$=1Sn14Otde`q`QT@nO2Ts!x;$o(L>{Ii&{uAM4pc4cx6|)gv$%+?E-_gN(;WWQl_mJUN6}n5hMl`@-1OsvD_^k4DwZAslbb3LMOZH|N zk?2$3n}0B?Lj zPe-M|-t*G^+KcKt`6Z`tn90!k^+x^iLS%;v5}w4(k6;Qu&QagI(bSM;Y4$8>FEOB zg&1GDV^G82{^v$N9FRA3ara~@bx^t8@nl*HSh>tc@DO6(0<6QxJ%F6(*TB}+oGoOq z#pIx;io7=QbYuM?Dk?Tj){z61TTR*0WFI3jjNgj2t_iG$2PE|zAe<)%GG(G+N|MNm zh%4vM+uBy(1zTSh)rzgU^4W(TxTVpU`9;8Tx@VnXC16r>HTf!(H&8M#1d;A%a?d|? z-&87)rV^{6(4+0lyQEpK9d-pb=7Ylv1_isPtY{YeNo71Kh)=+0lnAy%A|x87$4b-) zN8s}+jupBB8ySsmeP9#Zld2@F%47{7dTg(W4(IRa(~6PDA6y$d37o{vR11CUo|a+YI#G=Sj?o zm2ph!9;3dC&edSdQI{npm5(BOgVR0^e_NSen0E4#RDy-Vk@cW%8sND$UFWWt)&40| zGu;hNSRp7W6GX{84MIcCbwr&nF+?Qu#uX2K6uin+9L>}R&Y&D)yoE{gyeZSt3x`+z zL!r@ay?aM^dOihchL+8PB6$k#>XO;*%!DB>zM_;laXxlUv6h+$!;b*3E6~i8ZRR4{ z4U0;5lLtJ58bdKMIN_H_Jz`!RCzmr3u$d90>8+=;XY8B1OJVSVW3O1+a{ABxuR9+q zc4qnA@>CoML}UqO-*%{44Jf2ikzgnPZjQ+w6SLj&=xC+gCvRyuhwE^AHVw_)!mI)> z!nzR$;Wkl|-_4~jn1pJcQ`C1c-W|nfoj1-DD+MyXa20;`AZ@vY`x!6F|C`>-P^3`a zkeFUPjm`v;j+# zzcj!6aZ_}xwvQU|!k_xRA_}N|U0v^&3t>C(3LqVqfZ8VUB6<(k0b$)T8LrMmhZ~5h z#kBd!hcOVqywo-bkcYJQ#+=dF*Y&s@Oxt(TWk1#!$B|%KoZy@H+59S{Wp*Ig=lVBm zP15n<<}+Hm%{b6J>{tnhq91fM5bTg z-CK+m5{CCdZ40ejQWl=I``KXYnh)5a`4XG998b2VBGoTZLe+JSIq-# zu$%ffy6A2-TgyGgvF=u->d{wjO6_`DCUBx)FTN)HZF;Lg!>jUVslKm<^-r5Qt%v6a zqV4|CY^bxufLm zfVL8hU$bMyzPv)$^I9ZzQrm~*fB}AiA`CFM$qTj_63RTQ`|+euli`LMp!EQJQ7=mF zwYf_j7g@ZC86g2abX$@X7bOLDI(jM3{3gywpajQ}Q(JqF0~y`2kxC>I=etZ+wr2>y zbh{@AkX_OA>M7aG0%3<-{fYAR`8TMj;np!+y@)^eOEYBM#vd(LToge&%0HsonywHq z@e*EzWlu9&>4PPqNE$UeCv_(7tYn;u$D9qzy((Ig7T&T7SLb zgQCBGZ3FxFahW4V;cd#>;OvDe+9L(|{Gsb8c-$4Y)TvYT{GmGGcNhsrfzYJ$d(I0;3|J)ug0rGap(mI-q|H4i2Me zx7Vz_I?kL*c%d;MUtayZdPyOjV5X+u5o#!znWUBMAoiwnZCfAXCmDbnWXu#9KzBgC zF7gaX=L;-hNZs$FW?7&kYe`GCU{BrR0YR&xH>${(UV)V+zMv(DrsCCi|B4JA zEN=?q9A-z81XT_u`;k?bmDNS(s^kn~=&XxU1`j-i2W0kFYM?>Xzc^D@i+$OI?kW&&@sCH@8EQB^7+D+Vhx=xY=` zMZvSXb9VHmn}PI#RhD>&2jrKfj(|#FYI`{`ae*Hyx;dA~SU2~GNyCXF8|;$XS-X=e zQMJ>IBg+hsHi<2H*e& z0`>wV8>m$qZBn*>=tE=p;YB5zT)z^er=LfkH^ECgIZK>_P0KrN-o;Yhc~*oQEG<8D zR8it9SELU==07_Ey)9pmy&t!{=A&qo!daLx!{lK6@qWZb_-Z)pmK}<7(gWv9req{T z=dFS#mi>^oJ%1BM^#WNuQBn-LPfEw8i-C(;x7DpwD?nnUiIRu>iRQaL(Ued8+_f>s zD-Yvm;vBOaZWQdz@3(!#sV0l%_a6tzpztMO!MCz*);86BZ!Th;on)6IzX7-5DmH8t zWsrEhla!W6=ut8>l8trbBAf;m%oh9_`>08YIXB*02gE7T-NlPGj9;ej3q>GBnY}KQ zgAU9?YK;1so1ZAzHjwCQ9Ng^IAg+?9ho3zI2IP=kJgd|Tx8R^GzFoaz< z>erTR_2Xo0VE4POJ&){cfJX?0MB3(?QjQ-&BY+j*3n)|!uS25b^;uuAnTa$f7o7no z8PU>avudNI>fNF9fZj_N!H5ob`NRm|B;IK4wH9-^dxF$orFf8mBS{XTgkUZk)avPFcB5|%eJ%cgqbZN;7J5sVa-A^>PD?4E^W zV&mU@9rD%Ssx%_9T=%CL_|@uC)-232V;@FB5@Orm^OK3}{a9;xSCmgmJnrPxkR&mS z#W98Ub2SeIwg-z{_J4Hp^ZRE@;DpaqlKe}<$_JGo$5dM_N+SXVC&}h0eyVg`H9Bp} zP45B$x`#eyy!w1nDaD&^W4Y zO5ae*b!ZI3)p{AjG>d8LCtfM>ZXrGL$L*le91S(W9RT)eNFabT{>ku%+NG+V4z!~+ zm6-Fp@?=Ft$VquaI)6kEiPN78Tj&NKP$JEjRiTbiUdq3`_D=M{bqwH+pnswf7`i$`S9QA zjpZXXMFiLb)^@yp(#`MS^*LQo32Zl1i=PplC{Gb#-Bbtu4fiba+3_HocMyYP1n35R zYg&UG!V#&D?yuv}4qT<)+B-C3tTPwIs5q(i; zp&LWID8JInAuGG-uJx%41CB3p(ndNRCZYXCgRS??k|x;(YH*VKA0PajJroIWIh>r@ zT7jzpG-FIOdTu15S*X$zKrU$TWjcwtbb1HjOHIGHXv7oa8}{7>m)mtGxZ}?cdoqjv z!P%-+!AC_NsY5zy2CStwbXT!-CPIiCZBS9Z%HN+5e!%= zJ}p!?5-H_YBq1Svt9uEUmm0$d5#)V(izXCg0qzs%<{{2*P!BakDE#Y`R#`rx5#lf` zSb;;tH$z~3h^5iWHB2DTj9P9X`{OrfmIwo4J*bLgLF!NS4r#5;O8J&KiLd}VgW?EY zoPoURjM^!a#5OKqxtOnPt;gr zA`>7&2MnG_l!dsV$qnzqpn-T0(YiD-MX_WlJJ1qZJT{FMk0J$lTDIPwxtC!!h&4-o zM0hhV8HnB^Bd4^j9c-@o9=xYog9Sa7?YhC_=0aw4d_q#FCgRbL>&pJBr!K)^&jeMV=OF4ECgju|Icu?~uw5tJ#B(=#;FzO>6D!o$t2 z0v|45?fOSD)0Ga|Xl1PEP_SUO^B?1<&i_)@<0QSmb| zdL*0MC*O|2k(;*MMi6@wPi5Ra3qgY^Dje;5QIo#v>wBMis-j(j=wWGZ3I)8A*TsBH z5@XS)vc{I+ap4)qYYWJ`0-$`depW?y;Xz$4Ir@6`86DqC?d8=uJ2C92EFyl38CvkO zu}Unuol_a~QJ;htg>p(uGI=^&oOQ`_`(i{Qxx`SOgsTu_5?cG`j4ivUi$kt!2Py%y zK^wxRqpw>S@x^E@B#aT;*gJz4ZhC)}oKT>t6H{ZFQP%wwghbj!E{N(YQw>a1hz@4Y zdiwpKCcpO>sTD4O1&IBAN?EqzwI=P#3Pi0_sd|Or>X&LjS(vw|{wv1?Qoh*_Ax*LR zsv=!UyR%eCJa>X#eecoSH=nyIK!)V^`_6>JA0f?!>IXIOJW)JQru~?K59t!_A`V-9 z^(+XISpi+azBBm5_7Zn%U$+_v&e@mxYwXLp^xxI3l6X9EEI?v>1VAWAyKp49ZuukY9=BLKv}(&l{>gkD!=hYh%LuNbX$KSXM)TS9@6W!HYjut0(hR7 zjFh4#VN8FiPUIUhJDl&7HV!k56vK2gHzh9DFq!ZHKIl;RYczv3j*(TE%uN8so`v~} zqH*wb)xkdy*Bxo$q7K7kjc_3EB30mEsjH%!S=OEvXkxxE+y5uyQlI1D?z3y z4<}LePdN>-Zcal)+{6Kqed9bOy_t_&UU6&+?5@&@qt;NsYE4Uh4ASq*a=n*(^AnJ? zksY>kj!f2PhrHf1Qj4IK5^?R~vEd#SOG*p)dnmZr27ON=Jct69z!W=^C!P%4!4P(U zo+qVq7z59j{c1~OzDW&oFu#dKYoeQi-Bn zuO3&I){b<6I&&`hhCF8mA!b{iE)xH!?%G2?u$NOSwJ2v z;KYobbQxtzrF-qb=Dnlg{@_|&$9)z3mRJ<~mM8bqkPJyk){@2^!%MOh)`NLQaRoBM z-%P#YiB&!CW)5AgX?rA)FbDppr^J~5MyR9lM4{-M&-=5%o?a&v-45C<+~kEopE6Kx zsF+6Xp*u-R>%>c#7(s+`=X%+nHz{a@wfzVXa#YgzV92N&ZOE*@L+>-T)1>+;zB}@H zA=x|f*;enEEAKl5*W%94ZtBD!&^E;cA$&3ol*-`&S2NKOSg)#tQvXr7Bo4|U)Os6U z54Ug6ub_(!5 z%l2OGM)Y^px0|RdBSVNJjc$xl&6&xcyeIJi0{Jkg)FOJc`EtJW6K6)9xB_4}>aqif zr4!kRI-yhLUGO*cq(Vr=DN}jIz?t01Tri;{x>K|A5A#RsqHIe#&7>b?Gon?go?Lgw zG|pNt52qXBS7r=e+On2lP=-&WcPX5FqoF@UId z9?h;GEm$$(hT>NUA$uboVTC~Q*_KRzbARxc)i7Znq%TihS#{5S5chriK`Dr!N9yc7-C@Zbo>>EKPf6>~t$d4uDYsk>qWb4v@jnmFrBW{y7E(5UVy;Ljh)U2QhB_*8Z4^2j{1f0^hv2Tac2`zeKNQgj z9dd|CK~JrZUzkbyO!%0VHZ5+;ZJuGhSjJe zo4^WZyy`K)3mz3dEcnu0>n{b0tHe9z0}KHh5ny_1ThT@V;N93m2J#*1f(c1@Ou05c zLHKfm1xPnMNH3WCi0rR`W!6XaoF7M?u8z>RG*IZepa$a}|M41fn7*Waf?;=bvGx6* z;5x*rt{M|5-xuU4dBKG>P8l9EzK!~C)5;uQ{{0tX$h%IAUHPqx3ws3`We5Yi% zm8Ue}S5lw}ze`voIM#6KVRjdF?vXZ^&p6tAEajjo4~nwRm5RGlLU1={Z{*X%f3+J|oKwPCVCKRpr!qOBptZ?CiXjKuJg0pZ;H8_)hP9q}Zy?UO7$1=?L^b2$RUTnZ zV1~frQ_QTE3FBP@-kSObQu^A*Tk{b?f|c-XtZK59WKtiX-QD`xiNC~h zYWY-vs14*u>@7@DR>K71f>jJLFx|~l_(K&Bfcl{Q<*w@Gi$fHk7cd51m2!M+%ImwJ zN66Adb>Hmmvv>;9RB|o=>lM>Ttch`yU8sSItTxV3Q=RiA5NpTFDSH9GDB`GQ6at&J z;kOQEQ(zhhBx6rT8FjyIX#qZO*cYRtZ8X@dZ+}YBZ9-RW1|K08%U|ux3p6`1WEyoo z&ueXRu7mL`>1%Hg0SF+FXK8jn(br$R`9BZ z{;5Z>j@iq|v`4{qu(1lq^}N{*26boZi7u{*%8{I^7SnAjfhXE56%I&!1Rg*Y_BP|r zP^ZlyXxSFyIUUEu{t<&-dsOW-D2}FQ%JGvKMplV_Rs3!|!SX7Shk7R4+eWWQq;FQ4 zNr_;Ic%E$T4{7VVs;FHL8hZ6M9)1vSlSQ~Pljn9# zQ>dg7_ZM9dM8A+uV&mCcxxsLz%7P&H3E{q6cxs&XX6H~>Q zsCr4!srwAaBw5ge3Vkc5HlApCE)=&RuNXu9g#aSfzA_4Y%`1<$>=#c#NVKvLiWA(< zFq@2pLu(b*Kwkhh0LdfYw$IZ{=ruAuV$Rw|Tzr$P;e@p+s+LYleX-dOsOwgtToKGGC}@Qg*|b4EpD;FB;)I=n;8KSkxEeZH&(u0n0cWtO7uXhJs1T|w=OWcQK1_UV5p{)G5K^BGELuH;Ey0W$&fBITfF!edZi|1@ zm=li&+W^c`@l~+D%+m2I)+nwDH>kFkJcgHVTe!xd?T7%-?awU^Sx^bAi?s=KUcZvX zLg+&P1QeKlqoX5l3X+qb__olZ5zqTMJGN%hof&J~T6^^-aMf;ZYB>qW;@5>y&L!w( zX#)$czexhHI%+EZvecu^s<#hU-$E%F%jKGGIBD(*O-_y=H7c$o4nycZVeI}$ZKW-< zGEx&Hn7e`QdKF{aSl}%8-n)4|lY>=gj9ea~IT@h8n8L*)h7cifRDX8xYHM=Ma^Pv5 zBv$7%9R6`{Wp%Nr4A9e2xcAO`p%nj>rq!OPE)im>EViR>s*6l(q96j)KwhhLQ&-@9P(y=_U{^E zYR8-)=Brrg;S+T~-og;eHrPERMT6J&PS54zAxuIe$F$s~n! z%X4?>+fqa7n`=uHPx5&q!{icmK+VUOg6jyj&otD)m1Wd6ntr`0(jyDe_x~$9`VOML8NdoGQt`!flFw>y!_yGj2Az%8%>X zLe(d07}$Ggj`)5Sq8PeqcdXxaJ5-T{nnZAw zOuEqf$}$@YE4sxq6x~Yx4Q>DTYWLh$@f9u05FwvZid!0~T6>OAIR(;NBTAsgl#HeFZ=Af^YYuKza1S~zNViBD~m~kc?V0s2EBPTg|QwYqO0_ny6TkV&oNmvA4)(JrMBVPgO zC}!zO_07VFZ2ewV-Ppo>B==E$qy*R-S@`eW;6Te8p8h+vt9YCi=?5;XHVOw0q9qNv zeyxmgpK)G3^Hw6p($4ZL@DXExkGBylje@Av;S)JJxbU_$@Xw<{L*^Honng}Xpt&^9 zLe69@G?$30(wns_Z_gXED#0F)_)nHCQ~f-_(qKXETN zpB&1BImPL5EAOn8ZP=X&sp;*Sv|z$z5S~c-N;1`q{)0)OeyOP;(#lu?G6%{wY2)%+ z>e3SecbPZ|DnFKsugH*O_wgEqsBe1^LR#^g%oj9)^DYAJ0Lq4h@&rhQd0dVZw**`d z#gd))HZD}Eh~`>I)}gAyvZXh3n9zujZ)f}uVd8&32=JFKtcgXrI~qDxrGboPcPDi|jkuiUA0#mB*>-PDIGwV zb_T6#d1{l{IQ(_A`P&^y;3jjQs6yVWulgAa+_HrH?%f?P z>F^L5=*)IF-$d4*P_q}Wtwq;%k<&5(HIg^CrNd7Zw=0dCI3;jN)r1lj3h6S#S>`&z zU6&?$ke7lLT|C6Io0?Vh8L=4>711dI)M`{qP@I1qY@8yz3J9GRF!l^q63`m|kC+!7 zJT!qW4addvAeUz^h31gt*EEnzN$b0V|2`g1z%w$!vEY+V<;APDZ^5EOxD07>IN&1} z3>mmP`WEsCG80lb>{W&;jfm|l`J7{&8bzbx&Oh9R5yNs3!c=C>viRX+4}Ped1gPjQ zcC*L@XJe;v{^A^sg+al5ah-Fx^DFeR6APhr83_<~-Tk6>=EXWrbp0x)c=IPQP+Ef8 z?$4$l<2b5r!VQe9Q>eKbc}Bs8KD};m=#?m4&Mr2Wf6fN>ENY1znYkJw&>vAm5yL#0u;ObmL_tJrch?1j&)}kJz#Vm3)4sE!@nE#yC$kj&|k*N{xxxG7}_lr%%Qlh zaZ1toKBzOIX|M83s|Ju*6mb$6F>aHEhtu{kDh1Osqo@w|&YJMc8S|Ca5|qbHbWcPU zd)?~?J!f6(6oc!sjf4mH(p*A%<0rSXd7a%K-rCc@2Eh9ibn$eJNTl#PEtb$*x_a1( ziWzBgLHrmdK$Xm|Zu+f73kT@pjZPme73ZXtk9R~&NGcuZreO{}^56u8f;=9fsI-8$ zHOk;(n|H6DtujV?Ky;B%Uy$D;WdSo1krc}vfdF(vPS8>jm$lrr%dCbq@I@VLc8I%i&+|#Hm1u#v5=W(|6$?eyKn9_k>L_~+ z`Dh>7li5m(xOh2V0;06Z6j-RcWI2u8IU?;HK-<{cP*YL&9V(8Di0+%J8fp{^3dGKk zH~M!5h>tl2or>Y07~Xd$;=w4Ec^UJ^e4Af#ZMyD=`9&3x3KHgX=^raID|*~2YZLBsuZPr&z_8!8VM*uwE<5lUY;>288!>Lw+zZ>mcMo$yAl?AE|^;Tv{S*t`%1H7DmAt4J(3ozwK5#aTBEG1bfu{2=pVxCX4a|#0nRY+BSwg!5t^uIZ8U@!U!poS!;D8|U?Lzxn`Mz4f*}c)1u9G6x z$Th!QcC0k@M>3PHE@N&z$^?h*x9_5`yv7IwDIKAlBc+7Mq%aT>@56!l>rf1iX6JF@ zsXy#l^O7u=zUn>XLdMqSK{;7{;UIBY!N9G+FGKQ^Xs)Ck4Jc7vd46et^zIq~#+cna zO?8UBSn`e}Q|Wx?Q-=x61{}fDuJj^6Msm0f_XzklOeQUfj z1onnBRK+$NQPN?bDeFb9>vM-Q?3S2g_C6b@XTcTe7}?(F5ZCCTf0=_@ZQt6TPMbxr zQ+*Q4GvQm#ppv0iEnH#K%Vx@RWmsG#B_QD$;KjMoN596W6qC-%URS_I0=Ei3d6g>k#QPs;3F?$u;IUGXgDA|8U672c z{%HdLhWBf{l+g#a*_B6Y@65ba>hf{8pg(PWsk^ustAd0)kQ>dF>E)xs2MJ&h!`sL!9`fR6NSgI> zZx-(_g5(I#saSeYSm)lZjdFqMSYD65Q4glMhbIxEcaRFoV?g_ojU&78%8bR5y7Tq~ z3n!4k7y|qkGzM2&RqVXh_+@5xUXuoUi6St9G;IVAZ(ivp1$j?os(-0V1Yhi%}8bBL}|GFz<-w$^B=Es)ku58>uvE`1-vetN$G z9{s`g91Al|t-=**GRYMcpoGu&wXMM4sCQ-QQ&DQ{+(w}ufLkMH-NThuerxn=0dv2m z&Jdg1@^vee64{a%fyB6zCD`?ns-ci~E`sgu!#?I>>P=WOB^`G`kHE-m&#j;pl!xcI z6IJ22DqI_fCSKn{VVeaN~zc)#v z0JT84L5%jMFdd|y{Y-)^TcjH!j`J;YfofafnLb#(WiLw=SPDz;!%jp+W-nKO53?{* zUwM5vg}-@_YX^ILIv=B7Ee|pAvouBsQ(D9I-zH$T{`)9wbifqs-^n)AOa7bH<+xt@ z)Kw<=1=JS>b$7@FUjrgQ-TIBB^*tL2_n%GW1)y7u%3osA984q{8@SY$4sR&QCG4`+ zWaB61g3A05SQ_Nqk&kx`vu|z34r`#@>VtILAf;p`$6lrOSCPZci^SS~7)k1-=vtA- z!$>vk_C#&+E1LQKfZ;`-_SjMiuKwE6BGRa1#A7a3^j=yu{DgL`surIJQ zv*M!68g)lW`z3MK80ykNnR}7EaJ$2q9ZHO*va(qRUnGmT?lsA)qyMxEym{&UND%R`4!tnzgLP& z`IwyOrYk=iMQhiXbN;=ZlJeyK1Uv&K)khz1r*BdwMdCt!auwSg zUQ^v;JF0~+Tg#pqNf=)#vXp}!s9?5VtTzx~Jn||T0dij0umq~jL@r|czP!?!Mt-Cz zs@eMFTzk|A8>47SwKMDpBWl8ca8g5KQHDxSPs!H29 z+t6ZU@D(j=tK|=QhAN1LXYe{D(%2!>8q#zNd7`^;fSnrY9;Y*7*x|%x3`e7xRwv(WkH7dMfgWX5 z-#wGv7Do5sx44H;>$F>&0e9PGwNFsKi}thxB^8Jt{bWJG3ZNP$EURCOe#ilx z6X+i6Zm1byqnETR_<1D9LGd3cb5c)|HW+KvJu)x?<}gKJXGugb3i07#3w0@Oitb)= zzs1c$&IH}JxAn$F7Zw)bWsrHMYHOs5rx%&;xG)bW4;Szl1nrQjS&eIMao>7k(}53l zY36}>9&lIM-PVY8Un_-ct3XFyR9Slla0I>uYlURZ6NlMBAxgkb&d)j8O45($H@V|a za?o^^^{QO3uWH#NKqB=`gahpD?!_KRw@SdM>Fdj*6QtZJ|pjDd@xXA$9%F?tQ@j3Fhi-76GFzULi zOgq1wwXSnxP0oMMc_zmr^*rto1-%)q7RZa+!O{#_*GIN7Vb9+6bR8 zDFbPNau`ij#=K^N;u)#rO^GMitCV~Pby9nGs-(p^P6QsqsN)!tM2bwf2U6p8_J<<{ z)jBrzZQ={?bglh9()%2B&u$8qcq7vj5!pR=FA|1gouert#uUT*X6Laq&t z4st$D1HpXb0tm;Vl~16+qnjb1t}BGS$ATC{?zubj1s)0Z#3fM1TLQHzhK!ML1^|5X zHue-VrxYco`*zhc2gm#2@~%qgtlx;yue;xY*s?UvvcZF|+h}!yNFLN7{TLr$lGu>k zYFr^f%yJUxA5QWs4;{2OQR(`C1{k@`<)R`x@(oiSD-j+x)COI`Q=-ySWkhOe z@Qr5DdT98zCKQ)0ES~{Y;NrNUsJLCo z6D-3lLTAP<&k}Ga#6kl!tf-M1Th+l9M(?p0g{;3*{-dNQWh)LmYD zjs}5us|_~Jh4^N5DLV}UgTr#uadlO~Og$hE8zu;s=2F$>P^=f4oWo>TMRbD6I$L6;CN*F6G+U4Jl0RNslCEW z96*w8e?rym5#I%KxG^BseDSh~tI#m6bXd>^?`>}VSl$-9)_ad+AdI=?(>gqct1nYgGbU$}42*>&7xaoT#Mhf)!`{N&KH`W>gg&8SjfPmyUaBTVZ=JR= z5hNM8Zw0;U3d4kXi`~OlgMhE+I>isH+~GTiQHs2fYbRulpEHw)+sVBhB$3eDiXR9- z`6*$vj?3^5%MV8PPlUI$juFc{6Oa_@dg48iKhHdKKcaVC1% zLAOA?0wSE)KCv=Ukr-4Vwg)n3zle0bnN|x#yb$HM%bVZQr92SnPJARf7afv~nTxyU z^(#`p%^g00J66iu^!NWA=~NRvWs6AU8KpX(AJM+XqeK=29gpq7K`_1f<17G3K)1g! z<}T?p@I*i~XN0jgW}~9jz>JRm9bVi0wCTGW>=f@&{Xr&6B1DLaXfG&D-+ieBe1z(C z%v2oVMTu1Hxg4hnNS6)p=kkw?MN@NsT_c^s|1{P$#sm!QS=4*5C^{}fEZnet54uDewVlw`^9sx_H zriyyDdEj2oATzy>9Mf11mR=h#Lo`})qs8ToM8-wAyqHTGL$1IorlYD1mw^o%)EK!g ziGOCu{|hYP;>XnDMVQjQ%3+gJ=ans7;$V&_g>)=`nri9qd>N+E=oMgI;!=Xn{`hf~ z8%|rk>*}~Le-eQO;Y>%>?dd4j>h(5__0x8kGSaS~JrJfdBl(oh?nQi?HXks|qn(!M z8||PxKKdg}EdEj$ic)@wNYl6IXIJtpLB=`HLwrs*>dBVYL+Xxh zSIt88cch@L=*s@08o%}*_lh4orca8ruzMOFwk27C)B~8Z<9ANCWB7`E-FW4Zz7|pI zeSP%{97$;qKTDB@p=}(EaK>c5S36~4n^7;JhgsQ)fy+TmTm0;_>bBD|5G%!a`7XE( zqISwM$q3_Th4{(NNQTlCQuoVEarmd=pSNGPTdT)vMi3y#Y3&L3He)K$oe4e06(2ns z-}?sCU{9C)Z?So;Z@t;N=E)_UOa(^Fh+TWl=+YjpoNPW*EWLf0ID|OTbiD%P>34c_ z(xroJjXHMT?~|&g;ovhi=xckXdZb(K(#CUS#zv)rvP<{=8&yQAz5lR)sxTw|BlKeB zLP_SWl0bF5`(2Pd(_}R5!xYENo!p^caNu08Zi2&8J10-r<_67xVTrzhIF(dTYNF=s z7B5TeFxyBp1#Yj(2Oyyp+*oo#F|Q=cgr2&(=rEjf6TZK%HlmtVk6<;OjSrMd-ao~d z^UJBEOeoon(tEKs;X|Whu|~T?FKjSQJx?kp930YLmIGUd5hzj+$S!QQ8Wyd$NI|={vGn zgB)3qbFbkoQsS#W&IAbmNBh1MA;AY3w%}x&m2^{Lc7Jd()u$$USc%Qnb(w)wsatNm z-&(h+o_3kop~ABta(u`3RMi{n{gnatifQpgzl)l2geL(<3lIyo&eKH!JLSrq$mV_R zhCw*P6G6UHg=M{s6l_0&b2>nwnu_jDuTf2n0ZJA92CtSw4q%8l0HSG@K95u2fnDj~ zxTOts)0mPXcQO90^e?s|b=s+x4bJ-V1v1L4TM=pCkofhDfp?updiAYbeA=nv+vUFD9nqd_Rj$XJt1wi(ujuraB}s#k0#uf z=r`{>bTGfRcRN!PR)72DN==FVBTwVX(w4;da=u%LC*@bI)`(S zT?T3>#~qFD#n!lTLEI!nssy~MJ;5E@#8nr_I;sU|D$-EyErSbT;0{$h!)KCn?^0MP zUFuW_UUuQs{ZJl+>NbW;Qt>1=$zg83o)Uv2W1?)Y)F}R>TZRsTW$oqfZTTBdPR&&7 zI_)ffKgKy0;jEVe=vkn;3DWJS!#^WP#NC$8f57A-#`Y>YEIB2kg0M}fDywgvXcn(X zx-T%@0sL1W)5~G|UhC*QfRSu5gnpG~8`KDOv1OTrIE~6An`^EUdsZR0cFZ6RaTBcHwAbw1 z?bM+C@47Z>px{R^5PwJc`PGq*Ce!Pe zN5X@au4a}$8LwHf;_JzI=Z?l7bVQe>J5s+pMu7$TZI~GC;Xe(O{3;2kvH6OQJkK8G z+ONTc)azlmPVhfqlp4?#3>pRB;8N3toL zDE(0m2V<#9Xl7v9-5s~``-T4qGd2)d+tK|sd5Fsuoe(1;k4X4GdZ13J%_fw{cFpfy zkIcO|s=*57*ZvPDK|XhG+>_T|UQ43|vxIWYeQns^=$uX8EKxD$yn-@0IMPz}rEuEZ z{D*M#00ddu4P~3S`oBN2adS&xI>>;6S~%|x0s|C=;{XEj;aest&KbbCxzb*2Hqfl# z)3%hZv&0w=*c{~Vf$hHhr&ihb#yeQudJiIl zAYgtE)y?o2xP^&D->hhIa9EpzS5!o`Cx$#T3&2cI)ukDn07vjdcnuTX<$8aHvfP}9Du{u5~{rhKJPr1=zS^~g>2*D+{a z|AgDg=^`M~*D*S%f3u4VZI`av^^(o_RLfL*$1lutBN(D!M^jyw|Q%XpYvr1-( zl28!kyTScDUzOA(GJ`cpCa-P`v%UbyzBe9+sBH-W=eSE8sBqwzX|zD-@WG4xlq@koBJUkaE_14o0R+?Z2Y^*##?jRswI+%3vFb$DD1MaI`Y~vs&S`#TyQ$* z!E*3qCx&JXWA-YR4op)Rsi`32eMVejljf^ag>QHww07i<`fJtmrX^GiuWIr%FOAL) zsBCJSixT(BJ{`%Ls{0I&jmCm?55-TadIT?=LxFO&R8@R(I_(W5ecpB)|Hei&p6LbW z<%eRz4)x}9nD-74yHwQgrqLdoEQ@Y;^HIy`AR-c7Q{~vY@I1M(GQ=Q zHw~zTh}l0#{iEn@`F4k*IIK-729!MutK@o)=D7{MeW%eI+2Uw#kW1C-$ap2DpRFq* z*!(I3PQ*JqAI7g%VNV;Xxq^k%gRE&)S_M+W3Y19)F$V}-=UEg zhf7^^THSOhMRDemQxl(rSQ_!np$A9s`=0t%WFBI85^2Y7R0&Ju-10g1ks^o%zu>q| z^;bm{@;BiGo=CO$JZ;NAYV#n)*84CmdKIDd9t^5QBK3i<0| z!PYAGNDE-3D7ZDkxF|Rfk%oN-<84v2wGGoMA8{2Vk;3Cb=Ey54R(@~*np%#s*uEV; zBw+!bBDrUr10`&obs6atJhU*J$cffF<^8$0ei3p=z#fy1qu*ETD1&hs3sYOJNd)Ma zoQNgsv*Rc^Y!)C2{7r=FvG0G58P9VmDY(8IPn^BUs52H3$sYRl-4h;{{Yq{Bl`^RJDn9X1EVpi8~* z-N;hbIAMNt|D@B`fP5oVnXn^l!I0A&;lefB6b9d|?`PPOxSrjKR^9g0Hb|i5TbX-X zcjCXr2qPIJ#Ktc;d}u-Uy1@f-+sYkO_>d}(3XF@s9D$Pm??vteVtSN5Xz%EXsCz9` zDekvz=zz2scF=*n%DP~VeCU#=Zk?68wOxg5h_38ho#;ITD8Z4=`#>NzSTn761MnY> z`XseVA%{YquR5V_DC(^cP2P`CQ2lCt%)=`Ig$bhbbi}bSi)?h2y>ULdw^~a1lG&Dn zzb(B8{C1567LUOds-#WKGDQ| zJ$hBNA3S-jLR(Lc|7WDG|MR2Z6!wLv_DToPMG$XVI8zJxWR_ zOUe~C+CBEt%CW?ECA!&z=S5Pb*z%1VYI>bYne0ESdwS%akpO-x6|!f#*vxK@Y>?ol z0G&ODlrfLKRSpELQ6Hp{a4PG>-SG2`vnE_uxZ=szZ|FPNAhE+7w)4El($y!P9|=j` zn)ncm#Gu9i9US2*)F_~?na zdu7D?-G&_&22SH1yRkh4sB?>4%4?D9%TX1BYAhv(RIUo=O&>-kcg-n(M(M8!;OL=N zsT0KGW8r?_39Xp2#_84GPX1P>j;eV~>h5g@+;q_I0*hR!i{M+|jDqOpxl(5O0m5P@ zldCs~p~j?rNqcQMZ(eTUmg{TNa&H(*LwB_~(OJCLQ;t9i*tV4g>&@1~4U6!zWI=Db3y3lVk0 zS>opda;xzhH;&>y0mOPMN4lbY`T-0!nni0=Rf04>`ddYtj_NSRxE-Xzch!4#+YVmu ziqIXpV*|s+pu&^ls@)k8)Z2+@B7=0ar?)8~;0;NdjT$d+aulM^Nnkz&#T<~JY#Poj zi@dEQnZwsQ4rTFG!Xg&o;vyYqZz{F4H5VtkMac)fEYk5`&?>7j2@CePkfQYSUl=|G zTInOHYE)?UybSSIx0-Rz&k#8@x}Oo6d;ZFH1al@1%`=4onTBat$)zTCFG3 zCi!h_rm=%a%=$f;2v3LW(yIFY`2p~z4Sv?xTysw5Z`4=B*%g2j_Z+qE44qsKN)_EY z?5Zf=nsFqr&{=^yj%Mp|0b89Zbk(_GVLKd~gl%W=pEf_He}S@F*UAi&2Z1TraO)pj zFuqEiR&n*!P~;~bk6Q>f+nS|g!Yc#b>ydYY#!gpYVbW^dSdJX zkW&2t@J2T+=3#RU9~sXd;p>JC8b98i;M8k=fRvN%+|S@CDXYvKDr!W9+@7kX)Oqk+ zy=ZEB)az%@a>}>m^p9Y?{L;^&EJcQ(`BMZc2WiX$GxAaY2M-)!gYkNj&QNcyH2j-) zyiwj5>A0NW(xsiVSmu7Hi7`BWI*2ectJ~4Bih2nL-w#cv#aQ?s=?;|tz#6%>n1K+fbgcf=dP!9n-Z!11OMOZ!x2E=|>pr>VS?8OWpSU22y@<3L9o9AM+R z+XJHO&8){9$Nem{j;TTTSVRM!g>#v{a(9Te%cuaAZ^`)BM2UoNgp22oBAuLdvuzK) z@+c})ZPL0~a{C-bh2*=IZB^whhb_;{|8L#|nUd!dKGWuM_}!zGId-S(JDhYH9GV%1 z-I3>ST?|uaA^}Q~Nj3&>C!zq&IPnZ`3K?rXV*PaFN)MZV(KH_i>pYgZQwE?!i;im> zDFiYq`tO?YPS-r!iRElUMI$H8cf~(^Bwp%b!r(6CfM|2dgGFvS(}zG7B=2yD zv1876l_0SlN4}P&OG|XWI(q~Tp;NLPN>J;5arAC%R4`GbAI_d>4dBa0Wrx0d*!YWE zgWIEJX0ly@SXqJfqNzUdDDMN$hAtnOt9dP)QELjp#(CPwemCN(5@el=T*&^5l*dP6 z_Ozc?nBD*z!yEIcft!#Je45M{Xn1@i^~ylm_~hMjdxD2C?I<*RznE!NW>3uy)%$hg zBVa+9!MDbH^v*46Nx%al%@+a%2B4*l7zn0@bvvotvqrH)-wC0lXJmYcvAECt$0iAH zXKWY+!x~|p=GA(YmWIxD`G#6$_TcKU_k9QhFnJ-C0;2Sc@#dQlN9-D$H>yUBVWs3w z7Z*lh%IC6F3?L(-Hl}D{_7nRSH!yC3aM%We{%HQL18!JZz2wQU&5aGGZ)7VbQ1B2S zsK0_+Y)~HInR`%fud2E~VAP8s+rqw>J|0I}QHYqq%-L(Mj6U5&X+= z!}16!JppF-7{r8P-6+{`dXe-=e)YcDPmwfvYl!?{SH$7hF7f)|=`-!Oomd`~S(I5( zzd77;uq{7W?Pca9DyCkx-6fC65MTh3K(XQ$JYuxt~ch zKa1FGSm7vY2_#$A**8x?G9Rm_jNpD+gRr)RSWk8yl1!j=b!Y}*3N*@+LFZ$5RwR`9 zNw(mjonnC$m5@Q<(t7f8p8l<}n^^gG8WXQ8N!WE>4u0{0;)} zuqyi67AJKUhNHGq3DW&G1)lM7BKkbIMBV>>TF>3E>`T(TEQM_-mMW#KNn4n_`)T$` z5UNt(nom4_N@Zq_9 zQr7A{Oj3s?c;b$Qz`5zj8@047QdXL%;tnFoskoe&(KL3ybc9Z>*CAFjbRO$gx5UUmy~oNI+~r{|VUIDF`giYW0s*sLO}OdWfqY7gE6i z3N?&|T3OU_%yVVEHosRQxq!leqnb{NuEX7G4z$@}?@3B$WDp?Wii6GF6n!898Oed#7Mn`n zmOHq;-u-@%&9<+jmPwwLA&W~bd(Pcy=CT-H>(UpP)KXJ$ap+iIpz@~j#M$eQI(<~qt>H^2kU3( zOH}EjFhSTx`nd<$f3&LKnvlJH0;hyHr?C>he4hDhl(fq~VN(F_>yu`+fN5DY*>wr_ zdsujuXWAfWB&l*#&}@}C8RywnciT(Rf;s%A=W9zRu{(8u^GMiG7{mpOG){Ny-N`=K zdBinE6#($tA5KA)jNH~kBPM=!k$2DKm@C;RcHh;}H+~EpAlEoRj#;+})rKC9ktEi4 z?E|~AH}i)6YM>hoP$97O8acaLnB@>|DfatO0!Z2caD4@V$!#l7G=-=_ZDik=q`Ot4 z{eiP-JBW)DkTv?f;%g2C%w!IG>y9!SLNsqT6c+wKwlf`8P7u1 za(BPL>8h6feB7Vtji*Wf1I$5vIm^}u+TcdA>(eN!%EQUg8uSsmYp@WJw$H9?;g326 zHo9_+CjW-LX=-#S>^?sOhw(?j_ky*iiaRTDg?MAO)JUd_-BNdHC;wW(mk3l zP6E+>5!Yg%uKM!+>NPL-wLLABTG*k~vuuVTZ2sN|(8kWsd$BPn^?JNf3gOR&>l0x* z(5e(+-E2KsnsY<+&rP^=^8A-{YO}8cn$#E7kqgLjw6#8aUPW>U9e-d&#RdK0lVcrY zHA&g~CDwwgQ_`OxdOzPe2oA>P&IK8#`!b*EX{~j*9LaR?XYe!@{dwcy7S98KJd>qe zjJB*+=V#3rdH0GaG3NRYr#jzUEbiPz1xB3=gxn=g^78BYaG=z&hbPRSB7kpBwSb~( zFE!bQlz=GVdXzpCWJTo3+=a#xT8`Tf+dBCK7|GLOym_;{yn)?Ep%UPiWmO`Q>DC_l zJyT16j%9F0teIT7Pvp|$hfW`zCv1}t=&srV%CJD-wJeNEexcPrP5-9yIgQU@y&k#E zbW)TC7Vi8Z+c-v+%Z9fvV0egqoe|ubZU)0gCEK2hmq^g4OsXiM|cv{c@re{Hq6GF9|gRJc^msT)SVU({10$R6xYudK1En* zKi2Y$g4~`fkCp(!En(uvhmb3@{(8YS%M(scmwa3~^nIsHNTuziRF`Yqh)Of-6=7-S zG_TNcktYWllp%VRtJD|=392@+5Di$9m;{_+yK{B-09VfG0h=du%MOR{p8O9c0!Ux3 zw+{6P=brY*cM(~FfW?dS_O3LXnz3N7ssb&>FG31DbMfbiOSpfsqy8_vthNn(`8gO6 zdfrma3m#We|9BV4dmQk4WM9wYn=y4OjQI%$f=}fv!>fe&!%ZNEn|M|XGlCgEXQ&kF z=eFP8@>5mqgPv|wz;V_??Wg{U|A@xzu`_aM@6y2QZ?*Ssss-Fd`DwBDC@;7Hyd5bq zP_GcgD2?qgjJ=XAWtWETMHPn|ZU!Dg>s-0D;+C{wStM>{BO%5(D;Q1QC{%eJ%1cXV zOJlZQuj7=C?BB=pIV=ZS{je7^a^_y=t9F$5*Ti}sjR9C)?d$^(`pW%lqEKV|OGBI( zqGUxRm$q9mI1rJcK>n5Kis~qyncR#oFF(Y!%Xn>%k_$Z@Dj-$c%6Xx~_gT@5%c)Z& z&keiX`ty3L-MdnIp)$*iR@Rb=l_#$h zep<|5$37Oa>#>RRTKRQQ3u&AsXGi-G$hSa=rVKc0LnKpPGKU$bIXO07S%)%GW|TAB zz+vBR#b_YyMwuU1y?fR2jW^bMgCF{AjNh1K8F-|Om=>HhVgTSF+sQ)cQcyEP+sbW7 z<6j!sQu(qu=Jfq4;LTDB{?UjU1Llh^uh3Xo_sunFx&sa6C2C%KRU3*}d;<%0sS-R6 zg=0sasajO^9E>+QS2&hZeY_gu)`RA}iH%cH z=t{36rFR%XY}!{CjciWKv-qSA_tCMzynR|uaLzQO=9Al8bL4 zYAxWLw~se|Jv`@Dz5OWc`Lcrm&5XH)(oa01Q*1e)Un!Pf0-c)3A-zwIqhE+gg@$O1 zqd(t#xbb6OfxEZmbcXp;N`pl>&76-MJ(A%mtjhh5Dfg5`qP&w5)Uu$rXVCxx$@30w z{>N`gP}q&k+En4)+9ma&5T<)EcuHzuw&iMpaMMlg!Y@awSVi>{4q*sO7o~#06eqfD zi}L`b(rkj|2|Rhe6yW!kvn0l)FlK!Em#Aaajc%rSG&@v|cyi=rqqN?bY%Y8(?J-bc zU0sO03NLDCUh}yy_RZ|;rpK)VffEyS7^8N5dj2IGxlNN!pQ2ir^gAx6>u91BPiRK2 zPdGfEz7mG5kF5%n1?ez8$J?AM0FLp^vcih979JEqiZ2KC6RGE1O{|{t%qj3Y$~>s$ zTl5(ZKl2bC7X)p>M~>+Q_E>Wv7WPP%ieUwX5-*c*PR2Lsn@Ey|I6)`jh#i}Ev>#GA zTL<#9)VnL3cN!;9IRgKV*PH_o8?{QSG<&Q&2$x2a914*(A3 zGO~d|xT@WtuQ^sb9wkyi-`xE0&OsZJQxYV%J0LGM{eD8z7;X^>gzmKZ zetHu4M+*M zl9V}sW-x8W5Rd}6jfk$)!30gQfPRvLzxxY?`n7&gOq9#WGI6FUYf3)>#j6iYLG+UXCLw;Q;`F}DMrcm71WQmzEU@m+k!2Iz^j(7H{I&jXjPg62NO z^Pt?@;Ij~+`qu52>u*|L%d`Q3mL^I~(#y0P_hzcbh_yn|3gJ{P9j?PLMdOlV8G2A(g)5igzT6>2v#V+m06DBuO43wZU&6Kn+qOq<3A~9#G)6Mq> z|A=e@SbW$tw?_85{sSC|w+z)eca&)cwZZWnzK-zd0^)7N)2Mt?4oRQq+tp*#Txq7a zro(s`-Ki(CKCK(UvIBmvp)@pQWiw39FR~sYGaaea4}|Mc{3n^=$&)Gcu=uhr!$}tl zzr82iYFP`7NiB84?MF|-WGw5#5UcbKLKxMDbKFOj0RV{|^8X-uDP@V`?=-K## zwe40|*?!xl*LWweai=&F9foVDQZ_D|wEJ*+<2=rO-CzLc5brh(;Z8JrFC?H{MVROO zk(`?@Si74p(WeJi9S_GV`(Y%=|6Tl0@M^~CS>BA=93}~z?q?xwT2L&B zNw{K|J66lGj-9DrD&_a~>p7yf&brJTCm9ah#pm7uH%>7(VSqhHR}s^3#24|b8#f~0 zJ!i^rusYHUVHCQusxB9b5BofF4PbtS47&)3F*$D?|6ZiO_=2BuDDql*6_7Kv zbA_+ojXd%++Kb#m-(sXcp`msN+H~_sI7wgoLfd9Lm)A7$q?ik%6dSRCD#LhpB(w64 z=P@{QUWGN=fxG0RZYf4yD-z%J#BQujrinNmKW@LN^O zZ$XX@*5IMv6%I%ovajX*d9btgfaip^M3$7ZZ&I@$qtYxJc~or7kW-ux9$)VyZC1ga z>UvPYx0?yw$T|lF8vG5*C1R!=6q!d`NN)cqZuklSrbiFdRN>4S`meSI3OMV_25d%T zhE4oSvq|C6@28k%>)XH)Kp+a%qVXsju(t+Pv{%0lay(vMGVsQ1?PQ`Vk-KN zsM=`P!?zVR{!jTumE9%eg%U&m7&~@qq2z({ul1ZGXnYMkq<40a4}CFj zmV7n~TDECrr7W-8xcb0n8UIuA6Fq5?{j z4(A8espS#`?#HN6MbeMP^%5IO9GJW!90*;Eh_B1?!mfPiB8#)7vFgt_U|XNcOU1s5 z4M9dC^u@GJRf{R$(zRDc`s4m31gv<@WmWrY?(=Q1Vsl%tGr?tNh_EzKJ_!~fUXE?r z8@^Gr4g9=a`5U3{DT50oeoH9a7V`x}MJu2rZ~Kn?FCh$@tNxWTd{jtSCqEqLbGdBA zh?v2b%Y9FZ|47^}Y?kB}RCEaoBDp!4k$T*&VtHLY_%$p13y^2l_v-f4_b0Hhissel zZvhoe&IHH|5w^j!L(n{Xw{ll1@2uQV45wJjoDyd;a*fOpS7`ZO3LkE$_*gb+UrdNf zMpABzjmlG_vK-f#QEo3Z#42WixS(EcFN6L2l4$Oh3`NVO@!{2%2M5kLja9JT;g+_R z-k+K8-3yLXf!@5utW`nBBy0YKmiV`FvB*92G=)+scV!~iMjIKtkiJL9a>ItYQltyh zZuqU4wp4&lf?!B8!S}Ua#@0wl?sjF*Ddn|YN1(~|2TD*UVZqbjq8@a(??fIa6Y!hP z7F}6+8(^xyblIQ0U$8TTIlLsJ9)(@W#RrN6`+}5HmSYmefSRNDXXF@6nlQX6524;% z`EhfSZ&D0bA)N12916(Noy{%iK^{s*8i{nDhjCt}L=6ut%J-ZFOONTqvdD=&t;33)RbwW)IJC`?U$Jn{aVg%k&HCY4F zg8mmHmg>?8_142eIIDv1Kb+BBfsXZcXPaaSl`^Tu1O@nx z(!rkx(kuW*|W!(#bESUEYHd=DUgpCx-?ScuJWt~{9&)D&E0<(RwAVM#kx zqu_t}5=KPM(Q zh7@#n3D5$LoWVTx07e?in9>*?y-uYdeKkDRtU~S70hky4+5`bO3q(v)O|3%Es~5zk zrG^^Lbqp-~MywwLb(AM6!B77G(~!=@8|$T!m0buL@|w|!NbYTAwE&2yM5N3oe?^p@CG-tGQhkx-1i{Q4lb5gfY7^^l*N*JVX^Y zwbCu9@0K&(0)@#qhQchLLMT#|#n~WnQgm6|26y$_llrFiS(-9g@s1POr`vu?SqkAi zCw=ikq@a|dCMT9t>29baL>pVOidx&4J&PRn9&f>~ zb#A0wb{FZ5BDS+KY%t9L_1*h&681~_`jru&5l4;OQN1JN0&;OHZKgmuAA|j~V#V59 zzb-m^OtBV?tKc8#y&=hxu~|I10r{UMJWGkF_}7L)G(?M<+rG6IQdbfSo-04kx3u=# zM#dXP7E&Azv0OK*9GRcbq8@WF6T>3R_ESO_>bEt7_B=h3C}=yBGQ zmef3m-zYT2#4UWDSh`6(AE1`-M%C=*%Cn2~FJ6@cQi)TO6gDx(2~JRe(wB~mJW_4t zyuk)61hD#;e*fJ%73q3djIR%2?-W=7S1x915t8EK;}WWUoD})jo5zu*_F7+$xq~4B zie%aT9@w#1;c|;#ez>5G<%12&LrS~KoxOSC#72^RDX%9G0qU`DRtbzK6=DKgB|v)3 zt;#%Kq(GdP`>jVn{fa~ut|>a(H|&7}!tWAj{H|xSH)0+DrBR|XwQ(kB>8vnMkA zyHbTF7s)qdu?SHZL7a8jd9I$K-ux-rUmBEF3>3$Hb52LVvjQfyOVNeCySVY=H2fgj zF#s`pG(evqr*pybwCK=}e)?HOE7T>&lC%$*DVq1JwCiJ16Awm0_zLi)J3TdX3$=g2 zocSemVf9wfi!`X4JS5SB;m1dZHK!H2h6U0<-3}FQ#@j8uAW`=Y3Qozg_CIhkN>Zg4 z?DO%X>vWeQa`6Y%ZLFE)Mi3@AdTE^Crc`<#NW~9Lb}<)$1Gd$!;*W|ae2w2qt|Gx8cCc0@`WFeL^F+($LnRbMkkGWUQyW!N zpCkx|4t%+dSe_@axA!8>oPtFzgkKgy12y^!r98ek&rQdShtF?w$9#5MjQ3U^h zGIx{{V!|WQW%f^yv|-CxvLGCS(@nB{{WsaZ;)|1fPkTzn&)pK4WIck(dPHJXglUab zxh$%DGnqhUR zdlXdgEQBKSgCuP_eohG=xZ<>eA#@+*_+YaQmJZ6hF0sZu0?Lcz!9KsAx5GWOB;Zkm z{MAjQRuZK$G2zBJdgUWM4^d?3Pe}$T(tgB$zj+Ll!P}egph|7FNRsoiS~`47bxz#R zGNbcEr`sK5WBRyC)!vT8>XlSJTM3rcuZ1T<%)Y|U8IfdwANi(c=!%dTo?92;0~HW< zNB;6Ccuo+d6w#VLTJ~Gxeq%}WN6wd^{D%;Q z+a|6r6^%i!m9HMcJAki&t;6BX_RpsqV3rkpgl5dJLT3i7qA$0`^t9|Y&M7_$-nPK+ znbv_bpKOn{MM&t6qARgq?y>p$MEg*oz&zIS%l&)>jHi>$inz~pc70Jd$N(c3P3~O) z^B|#iz24UWP@Ydv4HenK@#i}t`f6Hnp?OPFV-Y9{6Uz*-v*Y3jNcD&vfXh|j zyT^&5W6_X9+>qRCbjgj+OVi(F(Q>frwXk(lX{@)c@NX9D3XPMQ*V6|i(z2+f#`5rc zk`$hrvM_Ecuj?%?l~d34GPeLmav0&f;-^d8ni69_nNtu^TdwSr)$~(4YT{k&gOcZJ zm!2a+q+NW)PI{Z zUmf|*JP^(Qh`LTjCOD55p}>28^iY1X@d2PocL_agh` z)yInK(*_f#OfSFt>57azbB>XWpyiq=+p=Cgt`TMkq*{(*wnZ=9D6`q(<&uD`LB?bZ znQP>CTA4l`gjRkQ$vylr@2o25sMi$S=;o2t?G7oMAlCKh!=ih+$>8vJ-J@FD^NnRB z44PVS`*hWw0+oqE>s2)U$l#T7z4J@K%nT6v;S;sp?QD zbX_jYs~fD48x0HERQ7INhIQ7}r&QcBen)L*> z8s!V?jRCYIeQ7d>_(&sR=X5-PkT9xFkodlwCZ&P`B1^5|_CSjDMAmoyI0bFHe~p9B zA?~VpYVsr+?VEgh`W2HCQM0*);`N8N?o%QsC*u+bAyD?L)mdEY>!fXr=D++9#Y zc;4wYN^)7ChuVnv0rN&*=Bg7wU%K&I)q5LU#TWYUqXYEY4eRo3UPh>DI<(3onsT?b zy$%Shw>gJAt4`y48k~k}0OtE-Q09y1Kxo}>KVvB&!`cJiR_f#Rj5zlJoSY~gEqb)th|- zQ)`TOSlw7l^D~|i@f5_>{plivh+=f)VyZpo)N^neJDn*es4W5DG%!!}cSF4hZ?Yzw zEXTxaROB9^H{xGWS214Ji2~E`qs30%$_=ve_M(%;cZ`acaHF1pSLGaaWd5NZUridb zlmn9>bG}8y5JbU#aA9_15wi{J3Sy!Fxe){N^aJt&6x72fstWwdaVGuF%d2NP7(^3r zeWAfzXwp>Nqz1M}AuF-R(D2_Kgb@Id%)vo&byzsQW&A(GHK9}nKKthy25M}x?7v?$?nO>KE)x-VzKIP3=^g#lg zhV$)j4Vf0RumSCHFX4hS6%|hJd!UfdQ}pB0QZzC{olPzABXcj*f;PM9%Lj{4o5U za$+dYR7L`bwaJy50O%LR7b(S<<;o&G#c(EBdYa|ZN+-H9TsmC;5Jk^U)CP*4*8GhV~|(*JqUqh3yr?e zy*M<9xhE2(@@31Up#|DRL+3jIA4M_Sk?s%oUDg^D`{qA9^1)%)6HXxa1kP0UrLZ%i z&ja7VqVb$BHNQEW1!ZN2Xy*&(KJR78u-f$6~fatvO#@|9&N#W+S126}G~lcC%i zJEgQ9BxDs47$L)ytqNlR5u;dw6}A#1c^njv(B@Z^OVBd(A3D3Omyt01u6AStEQKbV z{t(hIP&-)SG$inv-;jh2GwwfPItV9g-2e%s*$9Wm596~net1GBCA@oq5Rl##h?H?J zXhGK^rP&vIU3S+TLS%37ZW5zXbop>r>XT*OZ9#lOcrL----U2#bA-$Is-P*p=u73N z2GtXgV>*Y9^0fT0?NqHtD;#DaT)`y@;c~2N5n9-x^cbgV0V<|Et{;Fe!exNUFkcC% z->m8VqnyWpNW@0&0ywzAXz^4#$2x8W^ancZd}+M!rZduaY*RkK_MyJK!t0uL;^b;_EIHh-;nCN8CzabiM;Gb?$%(d$DLPDNO;Sjh1vsudggD>& zr-_|yBvXoA%!Ozqq9#az*_d#&XTZH(f3@3!v)~~Ph>>RVw4W^bc}2T6KZI5SORdL# zY--_?Q$}b+IsFZ5h6m16!-$QqZW7XTj6yCI1m>)cGk|&{uk|zESPTN8ZxjRq(o?ld zW9DszH%YQ3ykiujn_<;X&zQ0e!lmqTsXMyqJ#yzCCGjjI{OHak!bh*RKfrYQBkQ5i z!}1Xj<5vy_JiVdI)ACYFwEQ1+(W|&oD|^qpz&suUg&T&dCo-hv;Dom_5V-t3X;Qq- z4fr7lA21_O-Grr%jFtC`Ut)WFqLO$Q4|a_pmY~`)&xs-Qoc~Un$f$P1+*1%faw;|g z1svGwb^~jfbB`Y|^)XX|epz~A`{F^|re(GX>LW zxTl8#$y@}fqq4)bf*p0Y#oLD)OBk2=bC?!HZgky%;jYkYgC19{r*o5c{<%1|_UO-7 zwN(tz3a&T}aHrK({6o?u8oL&mJ)5SG$~TuyBqnMeK83&9C}(|IhmrsK)-m6svX^KS zLhPuBE@w(%{O4tu9TCfrwc9Mj)WR3lgW3y=1-2?_C4WN#{8=cRZ0ZUJdb(D2oV3mX zkBNg&e>mn^;E!^K!HT&GPq z<}^y&4Q=0vywd!X7Eiems3A=Xsa>4hoT&(Ke=Mc?3AP^fo)NxB6@w<;L*Thm^22Eg zz&q}#Ucv<#(Vfe}>!=@f6Qqmh+?i!3WFGQO6;v-E>Lor`9|vO><%SfS)|fMs>sENx zVK2>{^(95OztxFm@tkXQK4_0T(*}r(cYZ3gt-7=Ys*qt*gGE)?_~wek9-W3-+$ITz zWLPjsp;+NW*rXSX51IM4kD33~ZRN^9_9KoAC^O~Lrm}mEjWeCz^N#Y;4VL@WksCzY zRps60GDp5nC=3!XzKlFKpxq|WVSPbfZ~Y%FKsU~K#|}$Sw70jJE^ogzC2^c;Kr!@u zW^c)q)NA0bf1mD^w4ud&2T{!0imkfXByjCB-7Y`q9vzy;3p9eNOr{i#Cs%e(2L^aQ zSe0B*6^a|7nI{(Jo|h4Q`wRD*nCs*KL_oX0D6kf-3H65Jh)GAkn*0s2BJ7(^vAvEq2?P&@6Z;Y)c4)o;X(+dRO5jgldG1Sx@UiU9+?L>a+6YKV^N)RT z*i$mn!Q?Kq>9iIEP_{RrAPrK}5YUvFR59TE{)n({Vvs>v_TN0*~K`UAw0B13W- zSPRf{I{77H5lq}fY)BAapV+X~;7U2$=c5PEZly2El*G%}R%};|O{m`?NxsB_oTd(7 zk?R<(nZK#@VbChdIB%Kvw`i-py1h6e=vx;iU1Zo11AvJ^<;L5a)P+Dt_Maf4ek=-Q z$ZJrK_Y~W<74PTD0I0PsFvz-O2s{O6O&2b}( zi%5hz5f3c$nXS0YVf66wVaYJRY7*woUPonk4I&*IP(U1BeL}M4gjccexEpH51G!-? zd?>}THd@>;ym?I@d#$BBk~Bhos_y9RRGYR{N@On8G*(;xaIS9HiJz?`sjXY)3|=(r zTxJ`WRq3v$fUj`)0j5GL04S3nA}?nMXWg6$Rj#OQcBqVy#4*~nCiXG9Pn5o%CaBwj z(xoSgPI7wL4z*-3=LuAc3oa?jo*ABDfklPK`hC9|K!Qmf({VKgku%;Lj$gB@%PAv)LaG-`hbtJGw}{$>cD}9+sN<<&ne=vjos%L{ZFj%S!cbb z7eM-quD+LYpwh@k4I)sS&Vud@5wnBxv=q5e=Vx)Y!PR$68^~2t3Of`;&KBYir;?en~&@1%Grma zxc-P<>zQ#1j;Dubg|Ji?8!yupkTUy>H$rrPf-H&$4F|@~WI@oe$I-u6+8tr`^5o=dmS zf66Gu*x@5qd+Qp=WmgH|N_`0AbPRME=!=R?v)cCmb^>l;J@aD!V@7$?mAl@L}Su3hrK55C)KVfgiA_~{))T8_`w%b#f^5wM6ANDY~fAWJ)R zi3E?yV<_1mIQ3#w8M6=yd>i9o2%!#PeE5)G)r+%NOc6N;kStpSpbPom?wnGzRQC%H zH|67sMp}YBk?UH;QA%XIc;u8s#O!*{W!(XOvTEkWJ~9A`P8W0dz@4VyXui3*=nv;B z>15j*(3Lw|tU#ed3VaT>a}gXAk1skRpq|@KLEOe2IL&ouz0jAqZk1Hb@$IM*xLd_W z5S`ehZnjt|&8=%j6BaOdo~c*Mgy4RVVy0$`TQ^sK*3RO+<{l7O~ zT}qp%_iZA9l7r(qMh4dN2#h(U5vKPTQ#j(m)jnSkrs=N(qV@+wg-(gfXZ5nVagJ{El<2c+tn+RRiuvQXrMac`R~@x)i~^%k7U2FEnBt$y`fj>0-%0K2h{zkBUYq zLIN^|-9FrVL96_QcmRp1m=s_u2nlRy`oa z@@XUPS|roMW_H^RG!$HQKq5epJ{PuCp1+PeJn_P`-XXIdX>Xl#i9M%-ifTT3&7#0D;L zqD*03_k{}4#O9qa0Q0dm+|s=*E1- zh}6fO#~^Yym4|GmJ@Lq>7;foaw5&!Uz%$uDThb}hxmACUQVj8-50t9Mn!H{$P}dmO z=5nRLIdiJtf0 zbo?HL!{r)y(|5Mia#npmPUUQu>K(-i{3?ndT*k{s9zo3Z ze5|0Y4qvUzD=db0KGSg(6ZF)=jSTlTh20ZpMXYx@%E(MffrgUsg+lofeE%<7z9}@B z1TQl0sgWV@ZNlX=)C7!cR72Eb;Y)VRKmKn_Ufp`oCAD#<{*jOL0@Uz|hsYBq$R`O6 z`_5G2xuLtPL%EGMnrfjTYq< zC#~<&{1;v(UjT+Nlb6Xq0t4h3xwo)ce9rq5S;qeh)wUG>(4V7V1GmhgJN;R=Q3Dou zdRK#E}hD({K~B@&XRhW;1Fo3417(ffYzf$5c$Jg*`L= zvnNbdiaR<-g@pKBHHa4DMiT?(ON5t?nn#MoOJI>)**MyFH8vxQy``(aD!j^EWgxG_ zv_+H|eZ+7RAy^kVbtI5h(v1Pvn^7C7==lZ<+Q)FHkd`nbjBtBx)yzvMJv*}%$NikEyk1Tmo%3e; zle;BHt=8H%Rkdnfz%BxNS!qlPhoVwO{it}Cmkcd3^+^!-9LsH|OgBC4s&Ka~3~Y5j z6vp1vsSO53M%Yp6eV>adO*qu0*!c^O8w?pQOm6X)Wx1kH@f|A)o%lHY{-%s)gtiXP zDKy8EE_Ek{CqlREIl52SLQ4<3dMhy-Jya#@+^Fpa`e=)BpAZ(Jwvn*S6zld%&ydbE zs5ph@g=Dr_)4?)m{&>G`cMg%(3sFi{7-Hv`cWP!S*Vcp%8$z8NOOHjIGe|@&iLAAJ zy@70=>k03m!729IQsAEs-(h&cmGIf)DD@u-RW9v_Zp9t0#UJtp&+2=z zAkG=#YZ>6x?+ag1fKpV5e55%R2#%`18&If&0Gk!s;bheX>-1b`N7{j{o$HnArFrZ` zz|(T*n#YXBr<=Bj*LiXWSe=-tqG!Ui_iTGkN)P@cH4_V6+TnB}qg7++1B+w_0)1nc zSJut~KF~vj&aQ6><~w7{e~qxF!qXcIXlk=nuSCdzgNf#FQN;Gn4@9)uE_y#Pbc>X! zq3lYWzrKi70kBB*l_?85+{~*dLdD%GAiR~4&GJi!&TtR9J+-0y*?OqROE%I1L;-i4 zw~m;cVB37;P%FpgtH_F)t-Rdo4oeTYUyOG(XV^o+OX^*@I0n)i^`G#YxTTcEE) zG}i%>cAhdp!?6b`>0*994p|LvEkt@0(Bk z@k@qxaulkPXecl#&=t!aadj03X3G-W4*BD(voijB=XxD*jF9%t?xEEotU)-qC6Ws$g19b#9OvhwhnA zkERTtg-zewZQj%2K#Tp%+H{bW3`? z1@y>MsXY5fm5bGEGd*%SaogUcwnU|(>6Rr6b#<`$nw9%wDS->%CaOCXtq_XmU66>r zvNI>3H`J|R3M-!>?+DU33~xHLcFacMEo^&t_T#+hkA>tyO-6|xSbTEi8X`5t{gpn! z&=@yCzkfnUd*K~S${;qzF}nyNfhrnY#Z0g1MYntB(3+}@g7fvUu*fMy0$L0pPRe zI|fR;=P*rDM1-Fll03t3!kfwto~4&oQE<*oXHmM=VS|BOmoDsihteOD zwFLL3_p9zB>XddN-ufeLh-s*I$yE~ySuUjIXQ(;d##W$wsMyC;Q>)Zca`%KHW z`Ri!{7ncT%rrcXtu+q~7%nbZW)592QKm6d^E+lhUk8h1Cq} z1FrUvc#@1J^;1wzZrNwy$>JG_a7lCC}cwVX@(!O!=X984HO~LM6iw>1NiOJQg!Qy@=Kyy%f**Z+)0h!?V9Qun#aEU9|KIv-VBBN>A8aMM zx-f8O;)^7*ahbo}s5y=LIqJ382cvz&>{qng!E&WLwlD(Y0W0qZFu#q3)B9(1+Mf8| zZ&zB-?{uMcC+zaw-qZl!Py(~6rjZG(CyiYwWFQL_{J-CJu=1fc||+p zrFCeQC*s3Q@JL74Q`Ga))_&XNnxNJGbeo-PW?aHi^M$!Z^<)6A;-|Q1OMPpzc&woo zaf+86;)xv$u`yp&Z}J^WwU4(FQs9(-$G!C*`91 z02z6hlTiC6K~#NP;QOn9!Qm<#zRLMso4x;Srwu*5>$DlXd_$#kB^spnZyBV}mi#;N zcw&R9?4^U&ZKw=7c_3Ce6{aUT1+oh;ystr`Abv#VMJ&H`j7yVUvzdGs_p^zJTKF7>YIj*ZDjIzwspCum1y1r4X`X~97OKhC;;*0$c~4%{r>!2ggCFy$2u zACx{+yUN>NsvnsHvhsD{A9G8F3tx(H*Bj%P1*CPUyo;#) z<)xOP2iDwzV-b1L`3^oQl-&U?8uSKWI3waaVS_I|6AY;VK%7N#5!m&T7P342Dj_X$ z4(a}W@jl(RX-P)BNjR}4oJ2X~&=ybSnd{8)iSBs*g~YjFhoD;E^XI85A&y1+l63@T z5U;cEO2f$atL@^X;gSX6>5TF+zT{a|j=Z5WEdm7rNLFKtGZ<&8WDMZ`IPy%IVpRhB zd_ouZ&NXnhegaZr9zH#!KKQ|2&HN3eb7gQtgUR1Va8JnC;k@QZJpw$?E_C=FGa|;91itOmwFTZ!>*V`#V7_ zMQ(%7=U5`T$8#SUj8T_uwUs9Iv8gFOI?XzHTRo5Cf0)az%Ju<#g)Ry&1X_vH8oeu7 zgLqVyUv=}Ilf=di}a;?>kOkt(A_h01x0 zybLnQWj<um#MHdI+vJPb%KQ$;UnCmw^iRK!%~wsmg%dl663*5uy@(^5;$~-$8H_>g-UI% zAPx-Wla&MKsUUl`bwXd}jTdACMk#Y_e*l*cEPes#=!6~p-#0G8BQjCVW>R2N6f3mV z$t+)G&?aLY?7B<#sG-IgU5HN3p7gooLIGw@E;(y*ua-O?^8N!b2}64B-uh z_$qyd%R~=drG--dyk71mlAdG&WFS^n0_^=>{IFN4yQToK^bLT0{s}!q^y$4wkWX&tAZ7Du~bVQ4pPi52>D$p3927%$LNiHD>nn z{5ai0bnWS`$AO#EImEI2w%ra|xzmQ9SAEKdWZfIbgnlEdu!!_C>Pog1wTBMmjR zOylEGtAtR1P_EYZIu`4yS4Q_8D2Qw#&L@YX*iZz-E|F`0hVO9K;LThFjRj?i+db)V z$CIPXY529n>ga_sHMsaLhK}ZECnKPtaepCZPssA=@ttU^>^kb`!hc)-71he{wO1-V zbX5maVQ@;#0j03LKQ>#SLRtl&AJQasI<@2A*H&1WlW zhKEcH#o9ItkVx5tW0AAGQnV@Egk8}ZdunAs=sShA*)q7ac4ks}e4l)h?g+RgEHoUN*3xUWV7q&_CYw(5N{*ZbW6HPH0 zO9v6bG=v{M7jRgUPri0yepz<7+G`pabnFwJzIgvTAGOO^n%L+ zkgL5d@2wqZtcHNem>aeOisUwmZI`IBod$@DU^ZqR4JFlDo`tB1-0@VBxv9Jk z3rb8Y%GQ+o8h(?F=uQsN#3SAZ3n4!DfGq^f(wkmz+q(Exz6zrBjTl9qvcrGYEh_J~ zl?$6~a-tf*vVc1i`wW>Rz_knoqCwNQ#9=~WPIS5IjTKg-EIfHr#x3A7635=TB9Gfy zrl;z~+d2uP!W>wpL%$%<$#LSO3+d$^XO74Qy&U5kz1B3E53?_?10#;54WMa3- zzUUN{`|Gal5e?aek#9JxKU=xynMqMZ-dk3yA23*X7fEGMU7PRHCAlX&Jl`qxq>K8` zHwk@81jFcp(|9^hQAP(t(5(Dy_6rFB?rsc2UCYaLOH)XokkrCV6Oj+p^~Qkp#5oK- z4-qEKunq~a=^JW$E7L?e?k~@*PUIKjuV?}5l*GUhkcVZ6rAUUHjnoFTHQwEyWxld= zpmr}2TQyn5L^~DO=R0J`Cx?zMQf4g>`y7cbB`w6Nml-gTeYM=&4@I(b{R~RxB-{+vQM@cOAVenW`^a5z!iSzXY3!K9Y7Wu1IraZ^koMKd&aslNm-(>wkRmC; zlisz3FE3t{^9>Fxs2D!I_}nVCD{VGZt;~r$VHh&O~}0nev(Gq z@G|&!ATuz`!8{-1G#k6H+^;8pZvf>UTHjiHrE1l<%=IFhK?BLPCJMgCj{O__e}dtfJQa6F3THxu0I_PK#6L>yuh`@qpoyEVko|huxgu&V=E=-|_ZSX1U_~I93p~3WEu%vAx+qU?0|U5ql0_?ZhtMlD}hN1AjpiuYmol7N4uu;@KS)jLeEfY|Df-KzS+r z2uEckLI$vg)M)t8wtqQ7*&@$ldEl~sVj|DbFH1hq^OheicmN`-KDh~t1TY3?1q{O@ z%kf4(cUP$7ig^0O=&5xw*7&G;Kv|q{b_D+s6WbZ*oa~ zPRZQ=XXu|FZH|O4x%v%@jfYeY`cFX43>LPvZTJbS2fb3IxQOVWo1mf~vfCCCKORHe z@Wv?558#mfv8dO!vSEj-XbaK#io&!;5oOW@ z;tEsW^p4sI=7F9tn+1L5 zkUJYQM?`RDd*IE(9n)HkslEhUpIXC9L*seDs6qn{ef$#jR@WMK4awVQdJd^(rHcXk zsQo|@ObXdCOazJ?FIcBbPcb`74yo%29eNhDMa6Y&3S&Xg4|dte}I&H!a= zQBc8UNYlF4_#(~q#hWrnMm%)uz&_2WV&k-cIBF#CC=c0u`N_>%;HauD=ywhfcxgET zi#%h&zd=?=O>JKBBXlR9!%ysQndx%dnj}8DNgxGTBKggf>#B_HlC9v}W7m+lkrzum zsBA9kY6i>-h{JI^Ua#l7e(x{nQ18Ckcf-~78V(A(JyqWQCa6C_cVMY>4`l)K zjD7_F2=w{nN%Lv}qT#FY`r&7hD7g!P;T&4DWPDzHZmom&yDZni41fMArQ$zkKjd805uKt}!Cn z(ap;VW$FFF)qu$zFOCp(`33d}devJhX2dUp#50Li z*PDeNx-7M}f8FE0HWsz6la9=;@Y{;yuIXgzz6F7*OR()Sr3ynuu>Uhw<){;rr!WFv z=#m!^J=^MXbzr>dMZb|B&&^ed(E_1Yv)lvr7@R-!Ae*}X+G_&Zma)Hy0kg9y)O-@a zfq27*naFe4lm3(ykF#{G7(F}X4*OsG@s4zJ2wnkwmuikzI@ih^%(;jidnD45XbCTO zetG7EAIBnfF+_>cMnJsZbq}mHkoWmeC(vyOC>NpnBs(u=vS$M{0`sQ49y)0hj`L0j zr9YS#&K3`j(NX*7PP@IgO|Ohq&MI`JP-Vk+y=S@tEyg=Nz`JBMD;?(|9#Sk&6O;U_ z&^!ZMv+D8mF9ut zCDvTqt2zk8qa#_53UR()XK66iE`Y_eWA~Qt81Il3(K00|A=fGe%Iza>v%a+ebhXC1 zA8**_dImgSAxWhmUh6vcn*>C)gi2c_OL@JHRwwVQKI9fR=%&5x_Y;1XuR0M3Mb#HQ z#)|eSvS#b$pjci;WvWK(lt^O5#Bg0s5JKZO61UTbwxiAw5Oa_W!ov*& z1mrMe`tH^X85P_&j$qC8RgMn)vi}3GD)R2D=g&S@^~}>dGF9OJ1r~{jJw!1-2oDw? zl*oy)kMCG1Ka|c=^ovu}S)Pv@NIn{ixrwbo)oZqn)!2NeP5nq427&>=wtLnqEfn{k zoW8*`dlon|x`UGf1X;?`VXQXZY(6qMZ853yW$PU6d|Ex~D_2HO(iav4{IXVNdYNBT zttF9!tah4RjpI`%Hen;4Zh1WGSyD+ux9k}$rknj~i_n_iWpgj$N4EuFsP&b!^Dk&Q-3d@pOqQm1mkwl&WYzjZ0D%C?WGy)GxHl=uo;$2R;N z8BlGCGF;pdd=113Ya-&M*FR>G$1ic^A{pNo1s@KZ(2$Nol1UckmYY`_gc}dln;0Tz`p8VNz8h?H*iYo zfVsCA!P(5*UO{1m;N*^ir=m+Zt}*g%WD6z8fk5?l`w#i94Pp*Xo?=_1I)*X7kiQB_1A`z*i&U#VuW?5scna z)%ND8ztMe+3HbKoJO6~MeNyscy9ZPEB}lqSc0{x=?ZB8mfX6F$6NpgU*jV^6nWC`ed` ztIAE!nq+co+-~~>ap>{SAe&~;FSHtvfTj-es7@$q<+S4kD+JYDG{BeU!k7MA$Rn+B z!AfQq3wAaM0=Ul=u%gFC$n$mEp;H8N8Cz~gBb;ivAuO1Zf5%t9a<kH4OWRM?h8v1lW0{W-u|0+(lXA;n1n>}FzW>#EUzsr(GP)=OzdikAk< z@@r<|?1AcjVcV09>?9NFJ+%AAyCFdKmKkWx8LvgZIeWw)$#TXc>Tg%WcK;v4&}kD3 zPPzt8pYW@N`cK1i;q%K07+?^Z)|KRm9huSv{P>}4?Y}SYMSBON6>N8?X|a!Q({5hH zLdkx!N>_%)<)ak4vSIZ#0#4N;t1|!Z;{T)v@gCkUZsUeG%GoY3&l1WLF1G~|!G}ld zkvhRDL*=bkekY5lg+(>RREF7Cfxk&rhE!}-cgC+=qCQEt?V~N33X=}?&{a>p1cyrA zf%mO1d*!|W#f>Z^HY>t_uEB@l&udPIsx6&hCgA`sRR3M~bTwQN=yTRT`%85WKF^y~ zl-uA!xie`fI@p2bSqX#dyfpyX#a?!+mcYm*e25C0;il#rHtbI);Jb8#enz9G&(cYt zdLyQpABv@0Y;iSmaDaYPkW4Frk+CVPz#1i->oOoN+~g27y%O|Oh#e;k{Nb`U{Run zud$RHJBkQ#S81ZQ_U?A_2>U0*S*V1NN@?EMiyW#t5PF%xfp`^z{;Z1@`v2vxRNCO< z^KRjFXR;^8J)-zu->*%oG4n}BryQyCo=>|_x|PmZ-;k*WX>r1<>flN4HS-jo3=5uj zSm(yz*a?A;rS7&M8)%JF2HZ{MFKm}*^On`%7E!Tctz;r@RPOrLpCOk+aYMfH80kP% zkMOubxi(-YuR~^Xy$d}2c5a9|00!VRG73ZUOk(l%YeL{l0korb=hj}n{lu# zD-@1L2@3b<9}uQm2{J2pxdNxFXnh2)+v~dISCFKYbjR&daq#q7!q3i@mJf`eL_;~n zbQ^ArRi&dU*kk9^SVhOTJ8rl_TMV#4pibnOP;a*Qu9Y{o9nD{WPY=@bF`f8|1;oH3 zjou!x&n_>-z%KneWVEHVG7fa@ur{7V?UPwGoVXL$oP;xOo4%X%*3#t?Va|hX(UPa~ z5elWHqau#|mOPNmchTqJ=W)%k)Db(AOo2wLUg3F=+M&BoHxa9>|JfPN*SM@)q=n?~ zUqjn)E3KB&bBqcA?+w-G@?%CCM&c1d^4gGJWm z!H3j3K6i?}{|rYFJt}g*yCQc&ms#ty3Euh!n1u8|Ij4l7bL_HvIDHfGQvbjJT;&Nc z1avt70TcS^VSMnS2_RsP12UNe$j9_}W1>XIjQ zNy5Gj!TGXL7vZj$xtTLk%8{dS;m03A(gGp65?zrhwa%(chj zKYRZh2`^B=<$b&zPukUlj&yI~)p`9lYmfupgC7&Z)x}WZ<-fCim5Y+L(fqMS{e_uh zzd8F!D6R{GTy7)0@2~Z|VVtbRywe7Mjc+do^CShVuhIFj9xS|U5TR{+A6Zgev0 z=SdN6F#34;VVZ5Nm0|esmksv1oL>p!R)^I3JT+?k9S34-%BM*X{p&5s5ME@mOiY#A zD%ej78DnTrtGEC*BGt|B;lz*f*1Y=qOsXhg^$>eT%d^-REEO=;p zKIf`;XTyjvmE;*Mf>L>^&^K^<3m@P?*ybne7Db@xt`7S5-t=ac%PYscnQ70zLiH6H zi!Ac{TBP=C=w@1qZk0T(Da*BlyB1uk);h~csq^bwKjYHW|q%w*gSt}Dss*o-XFN~E=DKyRFW!04^Z7&4#8b;xPWw;b&F-iXro`# zrk-NgNNb4;huU&$`{uhQ6Hj}AK(bTpGh1a#U`iL{5xaeBHC%|~$m0@DVqsZX8pX?W zi)t$@EI|f%2IBi;QO~(Ax`Yb$K11t)6h)CQo5^hdg?u`}x7P`r;MaTtjTIbfT>bafr+qTWWisQ!|J%0DK1Bcz!aAi#V#t?__G1a&aZ&l(`M%K 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 (7>_Q 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 User Interface and turn the Show Advanced Settings to On. +Then in Settings -> Network, you must also turn On Network Commands. +Leave the port as the default. + +### Selecting a Core + +When selecting a core, make sure to select Mupen64-plus-next core. + +## Configuring your YAML file + +### What is a YAML file and why do I need one? + +Your YAML file contains a set of configuration options which provide the generator with information about how it should +generate your game. Each player of a multiworld will provide their own YAML file. This setup allows each player to enjoy +an experience customized for their taste, and different players in the same multiworld can all have different options. + +### Where do I get a YAML file? + +You can customize your options by visiting the +[Gauntlet Legends Options Page](/games/Gauntlet%20Legends/player-options) + +## Joining a MultiWorld Game + +### Obtain your N64 patch file + +When you join a multiworld game, you will be asked to provide your YAML file to whoever is hosting. +The host generating does not need a copy of Gauntlet Legends to be able to generate with a Gauntlet Legends yaml. + +Once that is done, the host will provide you with either a link to download your data file, +or with a zip file containing everyone's data files. Your data file should have a `.apgl` extension. + + +Double-click on your `.apgl` file to start the ROM patch process. Once the process is finished, the client will be started automatically. + +### Connect to the Multiserver + +This game uses its own custom client, named Gauntlet Legends Client. +Retroarch is only emulator this client will accept. + +Once both the client and the emulator are started, you must connect them. Once your ROM is open in Retroarch, +as long as the client is open they will be connected to each other. + +To connect the client to the multiserver simply put `
    :` on the textfield on top and press enter (if the +server uses password, type in the bottom textfield `/connect
    : [password]`). + +The client will prompt you for your slot name, once you enter and submit it, you will be connected to the lobby. diff --git a/worlds/gl/json/items.json b/worlds/gl/json/items.json new file mode 100644 index 0000000000..003cd41026 --- /dev/null +++ b/worlds/gl/json/items.json @@ -0,0 +1,574 @@ +[ + { + "id": 77780000, + "item_name": "Key", + "progression": 0, + "rom_id": "0x0000", + "frequency": 700 + }, + { + "id": 77780001, + "item_name": "Lightning Potion", + "progression": 0, + "rom_id": "0x0101", + "frequency": 30 + }, + { + "id": 77780002, + "item_name": "Light Potion", + "progression": 0, + "rom_id": "0x0102", + "frequency": 30 + }, + { + "id": 77780003, + "item_name": "Acid Potion", + "progression": 0, + "rom_id": "0x0103", + "frequency": 30 + }, + { + "id": 77780004, + "item_name": "Fire Potion", + "progression": 0, + "rom_id": "0x0104", + "frequency": 30 + }, + { + "id": 77780005, + "item_name": "Acid Breath", + "progression": 0, + "rom_id": "0x0212", + "frequency": 20 + }, + { + "id": 77780006, + "item_name": "Lightning Breath", + "progression": 0, + "rom_id": "0x0211", + "frequency": 20 + }, + { + "id": 77780007, + "item_name": "Fire Breath", + "progression": 0, + "rom_id": "0x0210", + "frequency": 20 + }, + { + "id": 77780008, + "item_name": "Light Amulet", + "progression": 0, + "rom_id": "0x0209", + "frequency": 20 + }, + { + "id": 77780009, + "item_name": "Acid Amulet", + "progression": 0, + "rom_id": "0x020A", + "frequency": 20 + }, + { + "id": 77780010, + "item_name": "Lightning Amulet", + "progression": 0, + "rom_id": "0x0208", + "frequency": 20 + }, + { + "id": 77780011, + "item_name": "Fire Amulet", + "progression": 0, + "rom_id": "0x0207", + "frequency": 20 + }, + { + "id": 77780012, + "item_name": "Lightning Shield", + "progression": 0, + "rom_id": "0x0218", + "frequency": 15 + }, + { + "id": 77780013, + "item_name": "Fire Shield", + "progression": 0, + "rom_id": "0x0217", + "frequency": 15 + }, + { + "id": 77780014, + "item_name": "Invisibility", + "progression": 0, + "rom_id": "0x0205", + "frequency": 15 + }, + { + "id": 77780015, + "item_name": "Levitate", + "progression": 0, + "rom_id": "0x021C", + "frequency": 10 + }, + { + "id": 77780016, + "item_name": "Speed Boots", + "progression": 0, + "rom_id": "0x0200", + "frequency": 30 + }, + { + "id": 77780017, + "item_name": "3-Way Shot", + "progression": 0, + "rom_id": "0x0204", + "frequency": 15 + }, + { + "id": 77780018, + "item_name": "5-Way Shot", + "progression": 0, + "rom_id": "0x020E", + "frequency": 15 + }, + { + "id": 77780019, + "item_name": "Rapid Fire", + "progression": 0, + "rom_id": "0x021A", + "frequency": 15 + }, + { + "id": 77780020, + "item_name": "Reflective Shot", + "progression": 0, + "rom_id": "0x0202", + "frequency": 10 + }, + { + "id": 77780021, + "item_name": "Reflective Shield", + "progression": 0, + "rom_id": "0x0216", + "frequency": 10 + }, + { + "id": 77780022, + "item_name": "Super Shot", + "progression": 0, + "rom_id": "0x0203", + "frequency": 15 + }, + { + "id": 77780023, + "item_name": "Timestop", + "progression": 0, + "rom_id": "0x020C", + "frequency": 15 + }, + { + "id": 77780024, + "item_name": "Phoenix Familiar", + "progression": 0, + "rom_id": "0x0213", + "frequency": 20 + }, + { + "id": 77780025, + "item_name": "Growth", + "progression": 0, + "rom_id": "0x0214", + "frequency": 20 + }, + { + "id": 77780026, + "item_name": "Shrink", + "progression": 0, + "rom_id": "0x0215", + "frequency": 15 + }, + { + "id": 77780027, + "item_name": "Thunder Hammer", + "progression": 0, + "rom_id": "0x0219", + "frequency": 15 + }, + { + "id": 77780028, + "item_name": "Anti-Death Halo", + "progression": 0, + "rom_id": "0x020D", + "frequency": 15 + }, + { + "id": 77780029, + "item_name": "Invulnerability", + "progression": 0, + "rom_id": "0x0206", + "frequency": 15 + }, + { + "id": 77780030, + "item_name": "Fruit", + "progression": 0, + "rom_id": "0x0401", + "frequency": 200 + }, + { + "id": 77780031, + "item_name": "Meat", + "progression": 0, + "rom_id": "0x0403", + "frequency": 150 + }, + { + "id": 77780032, + "item_name": "Runestone 1", + "progression": 1, + "rom_id": "0x1501" + }, + { + "id": 77780033, + "item_name": "Runestone 2", + "progression": 1, + "rom_id": "0x1502" + }, + { + "id": 77780034, + "item_name": "Runestone 3", + "progression": 1, + "rom_id": "0x1503" + }, + { + "id": 77780035, + "item_name": "Runestone 4", + "progression": 1, + "rom_id": "0x1504" + }, + { + "id": 77780036, + "item_name": "Runestone 5", + "progression": 1, + "rom_id": "0x1505" + }, + { + "id": 77780037, + "item_name": "Runestone 6", + "progression": 1, + "rom_id": "0x1506" + }, + { + "id": 77780038, + "item_name": "Runestone 7", + "progression": 1, + "rom_id": "0x1507" + }, + { + "id": 77780039, + "item_name": "Runestone 8", + "progression": 1, + "rom_id": "0x1508" + }, + { + "id": 77780040, + "item_name": "Runestone 9", + "progression": 1, + "rom_id": "0x1509" + }, + { + "id": 77780041, + "item_name": "Runestone 10", + "progression": 1, + "rom_id": "0x150A" + }, + { + "id": 77780042, + "item_name": "Runestone 11", + "progression": 1, + "rom_id": "0x150B" + }, + { + "id": 77780043, + "item_name": "Runestone 12", + "progression": 1, + "rom_id": "0x150C" + }, + { + "id": 77780044, + "item_name": "Runestone 13", + "progression": 1, + "rom_id": "0x150D" + }, + { + "id": 77780045, + "item_name": "Dragon Mirror Shard", + "progression": 1, + "rom_id": "0x2B01" + }, + { + "id": 77780046, + "item_name": "Yeti Mirror Shard", + "progression": 1, + "rom_id": "0x2B02" + }, + { + "id": 77780047, + "item_name": "Chimera Mirror Shard", + "progression": 1, + "rom_id": "0x2B03" + }, + { + "id": 77780048, + "item_name": "Plague Fiend Mirror Shard", + "progression": 1, + "rom_id": "0x2B04" + }, + { + "id": 77780049, + "item_name": "Ice Axe of Untar", + "progression": 2, + "rom_id": "0x2901" + }, + { + "id": 77780050, + "item_name": "Flame of Tarkana", + "progression": 2, + "rom_id": "0x2902" + }, + { + "id": 77780051, + "item_name": "Scimitar of Decapitation", + "progression": 2, + "rom_id": "0x2903" + }, + { + "id": 77780052, + "item_name": "Marker's Javelin", + "progression": 2, + "rom_id": "0x2904" + }, + { + "id": 77780053, + "item_name": "Soul Savior", + "progression": 2, + "rom_id": "0x2905" + }, + { + "id": 77780054, + "item_name": "Gold", + "progression": 0, + "rom_id": "0x0302", + "frequency": 850 + }, + { + "id": 77780055, + "item_name": "Valley of Fire Obelisk", + "progression": 1 + }, + { + "id": 77780056, + "item_name": "Dagger Peak Obelisk", + "progression": 1 + }, + { + "id": 77780057, + "item_name": "Cliffs of Desolation Obelisk", + "progression": 1 + }, + { + "id": 77780058, + "item_name": "Poisoned Fields Obelisk", + "progression": 1 + }, + { + "id": 77780059, + "item_name": "Haunted Cemetery Obelisk", + "progression": 1 + }, + { + "id": 77780060, + "item_name": "Castle Courtyard Obelisk", + "progression": 1 + }, + { + "id": 77780061, + "item_name": "Dungeon of Torment Obelisk", + "progression": 1 + }, + { + "id": 77780062, + "item_name": "Death", + "progression": 4, + "rom_id": "0x2101" + }, + { + "id": 77780063, + "item_name": "Poison Fruit", + "progression": 4, + "rom_id": "0x0402" + }, + { + "id": 77780064, + "item_name": "Skorne's Mask", + "progression": 2, + "rom_id": "0x2A01" + }, + { + "id": 77780065, + "item_name": "Skorne's Horns", + "progression": 2, + "rom_id": "0x2A02" + }, + { + "id": 77780066, + "item_name": "Skorne's Right Gauntlet", + "progression": 2, + "rom_id": "0x2A03" + }, + { + "id": 77780067, + "item_name": "Skorne's Left Gauntlet", + "progression": 2, + "rom_id": "0x2A04" + }, + { + "id": 77780068, + "item_name": "Portal to Dagger Peak", + "progression": 1, + "rom_id": "0x2709" + }, + { + "id": 77780069, + "item_name": "Portal to Cliffs of Desolation", + "progression": 1, + "rom_id": "0x270A" + }, + { + "id": 77780070, + "item_name": "Portal to Lost Cave", + "progression": 1, + "rom_id": "0x270B" + }, + { + "id": 77780071, + "item_name": "Portal to Volcanic Caverns", + "progression": 1, + "rom_id": "0x270C" + }, + { + "id": 77780072, + "item_name": "Portal to Dragon's Lair", + "progression": 1, + "rom_id": "0x270D" + }, + { + "id": 77780073, + "item_name": "Portal to Dungeon of Torment", + "progression": 1, + "rom_id": "0x270E" + }, + { + "id": 77780074, + "item_name": "Portal to Tower Armory", + "progression": 1, + "rom_id": "0x270F" + }, + { + "id": 77780075, + "item_name": "Portal to Castle Treasury", + "progression": 1, + "rom_id": "0x2710" + }, + { + "id": 77780076, + "item_name": "Portal to Chimera's Keep", + "progression": 1, + "rom_id": "0x2711" + }, + { + "id": 77780077, + "item_name": "Portal to Haunted Cemetery", + "progression": 1, + "rom_id": "0x2712" + }, + { + "id": 77780078, + "item_name": "Portal to Venomous Spire", + "progression": 1, + "rom_id": "0x2713" + }, + { + "id": 77780079, + "item_name": "Portal to Toxic Air Ship", + "progression": 1, + "rom_id": "0x2714" + }, + { + "id": 77780080, + "item_name": "Portal to Vat of the Plague Fiend", + "progression": 1, + "rom_id": "0x2715" + }, + { + "id": 77780081, + "item_name": "Portal to Frozen Camp", + "progression": 1, + "rom_id": "0x2716" + }, + { + "id": 77780082, + "item_name": "Portal to Crystal Mine", + "progression": 1, + "rom_id": "0x2717" + }, + { + "id": 77780083, + "item_name": "Portal to Erupting Fissure", + "progression": 1, + "rom_id": "0x2718" + }, + { + "id": 77780084, + "item_name": "Portal to Yeti's Cavern", + "progression": 1, + "rom_id": "0x2719" + }, + { + "id": 77780085, + "item_name": "Portal to Fortified Towers", + "progression": 1, + "rom_id": "0x271A" + }, + { + "id": 77780086, + "item_name": "Portal to Infernal Fortress", + "progression": 1, + "rom_id": "0x271B" + }, + { + "id": 77780087, + "item_name": "Crossbow Shooter", + "progression": 4, + "rom_id": "0x05030411" + }, + { + "id": 77780088, + "item_name": "Bomb Thrower", + "progression": 4, + "rom_id": "0x05030511" + }, + { + "id": 77780089, + "item_name": "Bomb Runner", + "progression": 4, + "rom_id": "0x05030612" + }, + { + "id": 77780090, + "item_name": "Golem", + "progression": 4, + "rom_id": "0x05080113" + } +] \ No newline at end of file diff --git a/worlds/gl/json/locations.json b/worlds/gl/json/locations.json new file mode 100644 index 0000000000..0d72983d3f --- /dev/null +++ b/worlds/gl/json/locations.json @@ -0,0 +1,13745 @@ +[ + { + "name": "Valley of Fire - Scroll", + "id": 88870001, + "difficulty": 1, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire - Key 1", + "id": 88870002, + "difficulty": 1, + "tags": [ + "valley_of_fire", + "skipped_local" + ] + }, + { + "name": "Valley of Fire - Key 2", + "id": 88870003, + "difficulty": 1, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire - Key 3 (Dif. 3)", + "id": 88870004, + "difficulty": 3, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire - Key 4", + "id": 88870005, + "difficulty": 1, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire - Fire Amulet", + "id": 88870006, + "difficulty": 1, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire - Key 5", + "id": 88870007, + "difficulty": 1, + "tags": [ + "valley_of_fire", + "skipped_local" + ] + }, + { + "name": "Valley of Fire - Key 6 (Dif. 2)", + "id": 88870008, + "difficulty": 2, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire - Key 7", + "id": 88870009, + "difficulty": 1, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire - Fruit 1 (Dif. 2)", + "id": 88870010, + "difficulty": 2, + "tags": [ + "valley_of_fire", + "no_obelisks" + ] + }, + { + "name": "Valley of Fire - Key 8 (Dif. 3)", + "id": 88870011, + "difficulty": 3, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire - Key 9 (Dif. 2)", + "id": 88870012, + "difficulty": 2, + "tags": [ + "valley_of_fire", + "no_obelisks" + ] + }, + { + "name": "Valley of Fire - Fire Potion 1 (Dif. 3)", + "id": 88870013, + "difficulty": 3, + "tags": [ + "valley_of_fire", + "no_obelisks" + ] + }, + { + "name": "Valley of Fire - Thunder Hammer (Dif. 2)", + "id": 88870014, + "difficulty": 2, + "tags": [ + "valley_of_fire", + "no_obelisks" + ] + }, + { + "name": "Valley of Fire - Fire Potion 2 (Dif. 4)", + "id": 88870015, + "difficulty": 4, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire - Large Gold Pile (Dif. 3)", + "id": 88870016, + "difficulty": 3, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire - Small Gold Pile 1 (Dif. 4)", + "id": 88870017, + "difficulty": 4, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire - Meat Slab (Dif. 4)", + "id": 88870018, + "difficulty": 4, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire - Drumstick (Dif. 3)", + "id": 88870019, + "difficulty": 3, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire - Fruit 2 (Dif. 4)", + "id": 88870020, + "difficulty": 4, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire - Key 10", + "id": 88870021, + "difficulty": 1, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire - Small Gold Pile 2 (Dif. 2)", + "id": 88870022, + "difficulty": 2, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire - Obelisk", + "id": 88870611, + "difficulty": 1, + "tags": [ + "valley_of_fire", + "obelisk", + "skipped_local", + "no_spawner" + ] + }, + { + "name": "Valley of Fire Barrel - Nothing 1", + "id": 88873500, + "difficulty": 1, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire Chest - Meat 1 (Dif. 2)", + "id": 88873501, + "difficulty": 2, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire Chest - Potion 1", + "id": 88873502, + "difficulty": 1, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire Chest - Potion 2 (Dif. 2)", + "id": 88873503, + "difficulty": 2, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire Chest - Invisibility 1 (Dif. 3)", + "id": 88873504, + "difficulty": 3, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire Chest - Gold 1", + "id": 88873505, + "difficulty": 1, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire Chest - Random Chest 1 (Dif. 3)", + "id": 88873506, + "difficulty": 3, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire Chest - Gold 2", + "id": 88873507, + "difficulty": 1, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire Chest - Fruit 1", + "id": 88873508, + "difficulty": 1, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire Barrel - Nothing 2", + "id": 88873509, + "difficulty": 1, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire Barrel - Gold 1", + "id": 88873510, + "difficulty": 1, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire Barrel - Fruit 1 (Dif. 3)", + "id": 88873511, + "difficulty": 3, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire Chest - 3-Way Shot 1 (Dif. 4)", + "id": 88873512, + "difficulty": 4, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire Barrel - Nothing 3", + "id": 88873513, + "difficulty": 1, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire Barrel - Scroll 1", + "id": 88873514, + "difficulty": 1, + "tags": [ + "valley_of_fire", + "no_obelisks" + ] + }, + { + "name": "Valley of Fire Barrel - Nothing 4", + "id": 88873515, + "difficulty": 1, + "tags": [ + "valley_of_fire", + "no_obelisks" + ] + }, + { + "name": "Valley of Fire Barrel - Key 1 (Dif. 4)", + "id": 88873516, + "difficulty": 4, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire Barrel - Speed Boots 1", + "id": 88873517, + "difficulty": 1, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire Barrel - Fire Breath 1", + "id": 88873518, + "difficulty": 1, + "tags": [ + "valley_of_fire", + "no_obelisks" + ] + }, + { + "name": "Valley of Fire Barrel - Key 2", + "id": 88873519, + "difficulty": 1, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Valley of Fire Barrel - Potion 1", + "id": 88873520, + "difficulty": 1, + "tags": [ + "valley_of_fire" + ] + }, + { + "name": "Dagger Peak - Growth", + "id": 88870023, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Runestone", + "id": 88870024, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Key 1", + "id": 88870025, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Speed Boots (Dif. 2)", + "id": 88870026, + "difficulty": 2, + "tags": [ + "dagger_peak", + "no_obelisks" + ] + }, + { + "name": "Dagger Peak - Key 2", + "id": 88870027, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Key 3", + "id": 88870028, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Key 4 (Dif. 4)", + "id": 88870029, + "difficulty": 4, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Key 5 (Dif. 4)", + "id": 88870030, + "difficulty": 4, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Key 6 (Dif. 3)", + "id": 88870031, + "difficulty": 3, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Large Pile of Gold 1 (Dif. 2)", + "id": 88870032, + "difficulty": 2, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Large Pile of Gold 2 (Dif. 3)", + "id": 88870033, + "difficulty": 3, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Full Barrel of Gold 1 (Dif. 4)", + "id": 88870034, + "difficulty": 4, + "tags": [ + "dagger_peak", + "no_obelisks" + ] + }, + { + "name": "Dagger Peak - Small Pile of Gold 1 (Dif. 2)", + "id": 88870035, + "difficulty": 2, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Small Pile of Gold 2 (Dif. 3)", + "id": 88870036, + "difficulty": 3, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Small Pile of Gold 3", + "id": 88870037, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Fire Potion 1", + "id": 88870038, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Fruit", + "id": 88870039, + "difficulty": 1, + "tags": [ + "dagger_peak", + "no_obelisks" + ] + }, + { + "name": "Dagger Peak - Key 7 (Dif. 3)", + "id": 88870040, + "difficulty": 3, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Key 8 (Dif. 4)", + "id": 88870041, + "difficulty": 4, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Half Barrel of Gold 1 (Dif. 3)", + "id": 88870042, + "difficulty": 3, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Key 9 (Dif. 2)", + "id": 88870043, + "difficulty": 2, + "tags": [ + "dagger_peak", + "no_obelisks" + ] + }, + { + "name": "Dagger Peak - Fire Potion 2 (Dif. 3)", + "id": 88870044, + "difficulty": 3, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Poison Fruit (Dif. 3)", + "id": 88870045, + "difficulty": 3, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Key 10", + "id": 88870046, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Key 11 (Dif. 3)", + "id": 88870047, + "difficulty": 3, + "tags": [ + "dagger_peak", + "no_obelisks" + ] + }, + { + "name": "Dagger Peak - Key 12", + "id": 88870048, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Key 13", + "id": 88870049, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Key 14 (Dif. 2)", + "id": 88870050, + "difficulty": 2, + "tags": [ + "dagger_peak", + "no_obelisks" + ] + }, + { + "name": "Dagger Peak - Fire Potion 3 (Dif. 2)", + "id": 88870051, + "difficulty": 2, + "tags": [ + "dagger_peak", + "no_obelisks" + ] + }, + { + "name": "Dagger Peak - Meat 1 (Dif. 3)", + "id": 88870052, + "difficulty": 3, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Key 15", + "id": 88870053, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Key 16 (Dif. 2)", + "id": 88870054, + "difficulty": 2, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Key 17", + "id": 88870055, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak - Meat 2", + "id": 88870056, + "difficulty": 1, + "tags": [ + "dagger_peak", + "no_obelisks" + ] + }, + { + "name": "Dagger Peak - Key 18 (Dif. 4)", + "id": 88870057, + "difficulty": 4, + "tags": [ + "dagger_peak", + "no_obelisks" + ] + }, + { + "name": "Dagger Peak - Obelisk", + "id": 88870612, + "difficulty": 1, + "tags": [ + "dagger_peak", + "obelisk", + "skipped_local", + "no_spawner" + ] + }, + { + "name": "Dagger Peak Barrel - Rapid Fire 1", + "id": 88873600, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Barrel - Key 1", + "id": 88873601, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Barrel - Levitate 1", + "id": 88873602, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Barrel - Fire Amulet 1 (Dif. 2)", + "id": 88873603, + "difficulty": 2, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Barrel - Death 1", + "id": 88873604, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Barrel - Fire Shield 1 (Dif. 2)", + "id": 88873605, + "difficulty": 2, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Barrel - Scroll 1", + "id": 88873606, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Chest - Invulnerability 1 (Dif. 4)", + "id": 88873607, + "difficulty": 4, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Chest - Gold 1", + "id": 88873608, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Chest - Potion 1 (Dif. 4)", + "id": 88873609, + "difficulty": 4, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Chest - Gold 2", + "id": 88873610, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Barrel - Fruit 1 (Dif. 4)", + "id": 88873611, + "difficulty": 4, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Barrel - Fruit 2", + "id": 88873612, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Barrel - Fruit 3 (Dif. 2)", + "id": 88873613, + "difficulty": 2, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Barrel - Poison Fruit 1", + "id": 88873614, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Chest - Scroll 1", + "id": 88873615, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Chest - Meat 1 (Dif. 2)", + "id": 88873616, + "difficulty": 2, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Chest - Gold 3 (Dif. 2)", + "id": 88873617, + "difficulty": 2, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Chest - 3-Way Shot 1", + "id": 88873618, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Chest - Gold 4", + "id": 88873619, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Chest - Gold 5 (Dif. 3)", + "id": 88873620, + "difficulty": 3, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Chest - Random 1 (Dif. 2)", + "id": 88873621, + "difficulty": 2, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Chest - Gold 6 (Dif. 4)", + "id": 88873622, + "difficulty": 4, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Chest - Potion 2", + "id": 88873623, + "difficulty": 1, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Chest - Death 1 (Dif. 3)", + "id": 88873624, + "difficulty": 3, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Chest - Meat 2 (Dif. 4)", + "id": 88873625, + "difficulty": 4, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Dagger Peak Chest - Timestop 1 (Dif. 3)", + "id": 88873626, + "difficulty": 3, + "tags": [ + "dagger_peak" + ] + }, + { + "name": "Cliffs of Desolation - Scroll 1", + "id": 88870058, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Reflective Shot (Dif. 4)", + "id": 88870059, + "difficulty": 4, + "tags": [ + "cliffs_of_desolation", + "no_obelisks" + ] + }, + { + "name": "Cliffs of Desolation - Key 1 (Dif. 2)", + "id": 88870060, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 2 (Dif. 3)", + "id": 88870061, + "difficulty": 3, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Invisibility", + "id": 88870062, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation", + "no_obelisks" + ] + }, + { + "name": "Cliffs of Desolation - Fire Potion 1 (Dif. 3)", + "id": 88870063, + "difficulty": 3, + "tags": [ + "cliffs_of_desolation", + "no_obelisks" + ] + }, + { + "name": "Cliffs of Desolation - Half Barrel of Gold 1 (Dif. 4)", + "id": 88870064, + "difficulty": 4, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Invulnerability (Dif. 4)", + "id": 88870065, + "difficulty": 4, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Rapid Fire (Dif. 3)", + "id": 88870066, + "difficulty": 3, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Half Barrel of Gold 2 (Dif. 3)", + "id": 88870067, + "difficulty": 3, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Large Pile of Gold 1", + "id": 88870068, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Meat Slab 1", + "id": 88870069, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Poison Fruit 1 (Dif. 4)", + "id": 88870070, + "difficulty": 4, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 3 (Dif. 4)", + "id": 88870071, + "difficulty": 4, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 4 (Dif. 3)", + "id": 88870072, + "difficulty": 3, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 5 (Dif. 4)", + "id": 88870073, + "difficulty": 4, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 6 (Dif. 2)", + "id": 88870074, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 7", + "id": 88870075, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Small Pile of Gold 1", + "id": 88870076, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Small Pile of Gold 2 (Dif. 2)", + "id": 88870077, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 8", + "id": 88870078, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 9", + "id": 88870079, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 10", + "id": 88870080, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 11 (Dif. 2)", + "id": 88870081, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 12 (Dif. 3)", + "id": 88870082, + "difficulty": 3, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 13 (Dif. 3)", + "id": 88870083, + "difficulty": 3, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 14", + "id": 88870084, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 15", + "id": 88870085, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation", + "no_obelisks" + ] + }, + { + "name": "Cliffs of Desolation - Key 16", + "id": 88870086, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 17", + "id": 88870087, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 18 (Dif. 4)", + "id": 88870088, + "difficulty": 4, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 19", + "id": 88870089, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 20 (Dif. 2)", + "id": 88870090, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Full Barrel of Gold 1 (Dif. 4)", + "id": 88870091, + "difficulty": 4, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 21", + "id": 88870092, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 22 (Dif. 4)", + "id": 88870093, + "difficulty": 4, + "tags": [ + "cliffs_of_desolation", + "no_obelisks" + ] + }, + { + "name": "Cliffs of Desolation - Key 23", + "id": 88870094, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation", + "no_obelisks" + ] + }, + { + "name": "Cliffs of Desolation - Key 24", + "id": 88870095, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation", + "no_obelisks" + ] + }, + { + "name": "Cliffs of Desolation - Key 25", + "id": 88870096, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 26", + "id": 88870097, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Key 27", + "id": 88870098, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation - Obelisk", + "id": 88870613, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation", + "obelisk", + "skipped_local", + "no_spawner" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Key 1 (Dif. 3)", + "id": 8887370, + "difficulty": 3, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Death 1 (Dif. 3)", + "id": 8887371, + "difficulty": 3, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Random 1 (Dif. 2)", + "id": 8887372, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Shrink 1 (Dif. 2)", + "id": 8887373, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - 5-Way Shot 1 (Dif. 3)", + "id": 8887374, + "difficulty": 3, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Nothing 1", + "id": 8887375, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Nothing 2", + "id": 8887376, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Scroll 1", + "id": 8887377, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Nothing 3 (Dif. 2)", + "id": 8887378, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Potion 1 (Dif. 4)", + "id": 8887379, + "difficulty": 4, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Poison Fruit 1", + "id": 88873710, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Nothing 4 (Dif. 2)", + "id": 88873711, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Fruit 1", + "id": 88873712, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Key 2 (Dif. 2)", + "id": 88873713, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Key 3 (Dif. 2)", + "id": 88873714, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Fruit 2 (Dif. 2)", + "id": 88873715, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation", + "no_obelisks" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Poison Fruit 2 (Dif. 2)", + "id": 88873716, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Key 4 (Dif. 2)", + "id": 88873717, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Key 5", + "id": 88873718, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Key 6", + "id": 88873719, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Meat 1", + "id": 88873720, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Potion 2", + "id": 88873721, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Levitate 1 (Dif. 2)", + "id": 88873722, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Gold 1 (Dif. 2)", + "id": 88873723, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Fruit 1 (Dif. 3)", + "id": 88873724, + "difficulty": 3, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Death 1 (Dif. 4)", + "id": 88873725, + "difficulty": 4, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Gold 2 (Dif. 2)", + "id": 88873726, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation", + "no_obelisks" + ] + }, + { + "name": "Cliffs of Desolation Chest - Potion 3", + "id": 88873727, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Gold 3", + "id": 88873728, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Death 2 (Dif. 2)", + "id": 88873729, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Gold 4 (Dif. 4)", + "id": 88873730, + "difficulty": 4, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Key 7", + "id": 88873731, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Gold 5 (Dif. 3)", + "id": 88873732, + "difficulty": 3, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Key 8", + "id": 88873733, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Potion 4", + "id": 88873734, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Meat 2 (Dif. 3)", + "id": 88873735, + "difficulty": 3, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Gold 6", + "id": 88873736, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Death 3", + "id": 88873737, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Meat 3 (Dif. 4)", + "id": 88873738, + "difficulty": 4, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Potion 5 (Dif. 2)", + "id": 88873739, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Dark Chest - Random 1 (Dif. 3)", + "id": 88873740, + "difficulty": 3, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Speed Boots 1", + "id": 88873741, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Potion 6", + "id": 88873742, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Key 9", + "id": 88873743, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation", + "no_obelisks" + ] + }, + { + "name": "Cliffs of Desolation Chest - Meat 4 (Dif. 2)", + "id": 88873744, + "difficulty": 2, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Fire Amulet 1", + "id": 88873745, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Fruit 2", + "id": 88873746, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation", + "no_obelisks" + ] + }, + { + "name": "Cliffs of Desolation Barrel - Invulnerability 1", + "id": 88873747, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation" + ] + }, + { + "name": "Cliffs of Desolation Chest - Fruit 3", + "id": 88873748, + "difficulty": 1, + "tags": [ + "cliffs_of_desolation", + "no_obelisks" + ] + }, + { + "name": "Lost Cave - Scroll 1", + "id": 88870099, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Runestone", + "id": 88870100, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Very Small Pile of Gold 1 (Dif. 2)", + "id": 88870101, + "difficulty": 2, + "tags": [ + "lost_cave", + "no_obelisks" + ] + }, + { + "name": "Lost Cave - Large Pile of Gold 1 (Dif. 4)", + "id": 88870102, + "difficulty": 4, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Key 1", + "id": 88870103, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Very Small Pile of Gold 2", + "id": 88870104, + "difficulty": 1, + "tags": [ + "lost_cave", + "no_obelisks" + ] + }, + { + "name": "Lost Cave - Very Small Pile of Gold 3 (Dif. 3)", + "id": 88870105, + "difficulty": 3, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Key 2", + "id": 88870106, + "difficulty": 1, + "tags": [ + "lost_cave", + "no_obelisks" + ] + }, + { + "name": "Lost Cave - Small Pile of Gold 1 (Dif. 2)", + "id": 88870107, + "difficulty": 2, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Half Barrel of Gold 1 (Dif. 3)", + "id": 88870108, + "difficulty": 3, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Large Pile of Gold 2", + "id": 88870109, + "difficulty": 1, + "tags": [ + "lost_cave", + "no_obelisks" + ] + }, + { + "name": "Lost Cave - Key 3", + "id": 88870110, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Key 4 (Dif. 2)", + "id": 88870111, + "difficulty": 2, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Fire Potion 1", + "id": 88870112, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Key 5", + "id": 88870113, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Key 6 (Dif. 3)", + "id": 88870114, + "difficulty": 3, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Meat Slab 1 (Dif. 2)", + "id": 88870115, + "difficulty": 2, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Key 7 (Dif. 2)", + "id": 88870116, + "difficulty": 2, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Fruit 1 (Dif. 2)", + "id": 88870117, + "difficulty": 2, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Fire Potion 2 (Dif. 2)", + "id": 88870118, + "difficulty": 2, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Fruit 2", + "id": 88870119, + "difficulty": 1, + "tags": [ + "lost_cave", + "no_obelisks" + ] + }, + { + "name": "Lost Cave - Key 8", + "id": 88870120, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Key 9", + "id": 88870121, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Key 10", + "id": 88870122, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Key 11 (Dif. 2)", + "id": 88870123, + "difficulty": 2, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Small Pile of Gold 2 (Dif. 2)", + "id": 88870124, + "difficulty": 2, + "tags": [ + "lost_cave", + "no_obelisks" + ] + }, + { + "name": "Lost Cave - Large Pile of Gold 3 (Dif. 2)", + "id": 88870125, + "difficulty": 2, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Full Barrel of Gold 1 (Dif. 4)", + "id": 88870126, + "difficulty": 4, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Drumstick 1 (Dif. 2)", + "id": 88870127, + "difficulty": 2, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Drumstick 2 (Dif. 4)", + "id": 88870128, + "difficulty": 4, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Key 12 (Dif. 4)", + "id": 88870129, + "difficulty": 4, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Key 13 (Dif. 3)", + "id": 88870130, + "difficulty": 3, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Key 14 (Dif. 4)", + "id": 88870131, + "difficulty": 4, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Key 15 (Dif. 3)", + "id": 88870132, + "difficulty": 3, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Key 16 (Dif. 3)", + "id": 88870133, + "difficulty": 3, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Key 17", + "id": 88870134, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Key 18 (Dif. 2)", + "id": 88870135, + "difficulty": 2, + "tags": [ + "lost_cave", + "no_obelisks" + ] + }, + { + "name": "Lost Cave - Key 19 (Dif. 3)", + "id": 88870136, + "difficulty": 3, + "tags": [ + "lost_cave", + "no_obelisks" + ] + }, + { + "name": "Lost Cave - Key 20 (Dif. 4)", + "id": 88870137, + "difficulty": 4, + "tags": [ + "lost_cave", + "no_obelisks" + ] + }, + { + "name": "Lost Cave - Fruit 3", + "id": 88870138, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Fruit 4 (Dif. 2)", + "id": 88870139, + "difficulty": 2, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Reflective Shot", + "id": 88870140, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Fire Breath", + "id": 88870141, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave - Key 21", + "id": 88870142, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Barrel - Scroll 1", + "id": 8887380, + "difficulty": 1, + "tags": [ + "lost_cave", + "no_obelisks" + ] + }, + { + "name": "Lost Cave Chest - Invulnerability 1 (Dif. 3)", + "id": 8887381, + "difficulty": 3, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Barrel - Nothing 1 (Dif. 2)", + "id": 8887382, + "difficulty": 2, + "tags": [ + "lost_cave", + "no_obelisks" + ] + }, + { + "name": "Lost Cave Chest - Gold 1", + "id": 8887383, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Chest - Gold 2 (Dif. 3)", + "id": 8887384, + "difficulty": 3, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Barrel - Rapid Fire 1", + "id": 8887385, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Barrel - Nothing 2", + "id": 8887386, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Chest - Speed Boots 1 (Dif. 4)", + "id": 8887387, + "difficulty": 4, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Chest - Fruit 1 (Dif. 2)", + "id": 8887388, + "difficulty": 2, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Dark Chest - Random 1", + "id": 8887389, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Chest - Gold 3", + "id": 88873810, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Barrel - Fruit 1", + "id": 88873811, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Chest - Death 1", + "id": 88873812, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Chest - Potion 1", + "id": 88873813, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Chest - Meat 1 (Dif. 3)", + "id": 88873814, + "difficulty": 3, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Barrel - Potion 1 (Dif. 3)", + "id": 88873815, + "difficulty": 3, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Barrel - Potion 2 (Dif. 4)", + "id": 88873816, + "difficulty": 4, + "tags": [ + "lost_cave", + "no_obelisks" + ] + }, + { + "name": "Lost Cave Chest - Meat 2", + "id": 88873817, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Chest - Fire Amulet 1", + "id": 88873818, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Chest - Gold 4 (Dif. 2)", + "id": 88873819, + "difficulty": 2, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Chest - Potion 2", + "id": 88873820, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Chest - Fruit 2 (Dif. 3)", + "id": 88873821, + "difficulty": 3, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Barrel - Meat 1", + "id": 88873822, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Barrel - Potion 3 (Dif. 2)", + "id": 88873823, + "difficulty": 2, + "tags": [ + "lost_cave", + "no_obelisks" + ] + }, + { + "name": "Lost Cave Barrel - Potion 4 (Dif. 4)", + "id": 88873824, + "difficulty": 4, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Barrel - Potion 5 (Dif. 2)", + "id": 88873825, + "difficulty": 2, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Barrel - Acid Breath 1 (Dif. 2)", + "id": 88873826, + "difficulty": 2, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Barrel - Fruit 2 (Dif. 4)", + "id": 88873827, + "difficulty": 4, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Barrel - Nothing 3", + "id": 88873828, + "difficulty": 1, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Chest - Poison Fruit 1 (Dif. 3)", + "id": 88873829, + "difficulty": 3, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Chest - Gold 5 (Dif. 4)", + "id": 88873830, + "difficulty": 4, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Chest - Poison Fruit 2 (Dif. 4)", + "id": 88873831, + "difficulty": 4, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Chest - Light Amulet 1 (Dif. 2)", + "id": 88873832, + "difficulty": 2, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Chest - 3-Way Shot 1 (Dif. 2)", + "id": 88873833, + "difficulty": 2, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Barrel - Reflective Shield 1 (Dif. 3)", + "id": 88873834, + "difficulty": 3, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Barrel - Super Shot 1 (Dif. 4)", + "id": 88873835, + "difficulty": 4, + "tags": [ + "lost_cave" + ] + }, + { + "name": "Lost Cave Chest - Gold 6", + "id": 88873836, + "difficulty": 1, + "tags": [ + "lost_cave", + "no_obelisks" + ] + }, + { + "name": "Volcanic Cavern - Key 1", + "id": 88870143, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Scimitar of Decapitation", + "id": 88870144, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Runestone", + "id": 88870145, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 2", + "id": 88870146, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 3 (Dif. 3)", + "id": 88870147, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Fire Potion 1", + "id": 88870148, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 4", + "id": 88870149, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 5", + "id": 88870150, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 6", + "id": 88870151, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 7 (Dif. 2)", + "id": 88870152, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 8 (Dif. 2)", + "id": 88870153, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 9", + "id": 88870154, + "difficulty": 1, + "tags": [ + "volcanic_cavern", + "no_obelisks" + ] + }, + { + "name": "Volcanic Cavern - Large Pile of Gold 1 (Dif. 2)", + "id": 88870155, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Small Pile of Gold 1", + "id": 88870156, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Half Barrel of Gold 1 (Dif. 3)", + "id": 88870157, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 10", + "id": 88870158, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 11 (Dif. 2)", + "id": 88870159, + "difficulty": 2, + "tags": [ + "volcanic_cavern", + "no_obelisks" + ] + }, + { + "name": "Volcanic Cavern - Key 12 (Dif. 3)", + "id": 88870160, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 13 (Dif. 2)", + "id": 88870161, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Very Small Pile of Gold 1", + "id": 88870162, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 14 (Dif. 2)", + "id": 88870163, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 15 (Dif. 3)", + "id": 88870164, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Full Barrel of Gold 2 (Dif. 4)", + "id": 88870165, + "difficulty": 4, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Small Pile of Gold 3", + "id": 88870166, + "difficulty": 1, + "tags": [ + "volcanic_cavern", + "no_obelisks" + ] + }, + { + "name": "Volcanic Cavern - Death (Dif. 2)", + "id": 88870167, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 16 (Dif. 3)", + "id": 88870168, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 17 (Dif. 4)", + "id": 88870169, + "difficulty": 4, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 18 (Dif. 3)", + "id": 88870170, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 19 (Dif. 4)", + "id": 88870171, + "difficulty": 4, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Key 20 (Dif. 2)", + "id": 88870172, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Fire Potion 2 (Dif. 4)", + "id": 88870173, + "difficulty": 4, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - 5-Way Shot (Dif. 4)", + "id": 88870174, + "difficulty": 4, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern - Invisibility (Dif. 3)", + "id": 88870175, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Key 1 (Dif. 4)", + "id": 8887390, + "difficulty": 4, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Key 2 (Dif. 3)", + "id": 8887391, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Key 3", + "id": 8887392, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Lightning Amulet 1", + "id": 8887393, + "difficulty": 1, + "tags": [ + "volcanic_cavern", + "no_obelisks" + ] + }, + { + "name": "Volcanic Cavern Chest - Lightning Shield 1", + "id": 8887394, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Fruit 1 (Dif. 4)", + "id": 8887395, + "difficulty": 4, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - Meat 1", + "id": 8887396, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Nothing 1 (Dif. 4)", + "id": 8887397, + "difficulty": 4, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - Scroll 1", + "id": 8887398, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Dark Chest - Random 1 (Dif. 3)", + "id": 8887399, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - Death 1", + "id": 88873910, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - Fruit 1", + "id": 88873911, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Potion 1 (Dif. 3)", + "id": 88873912, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - Poison Fruit 1 (Dif. 3)", + "id": 88873913, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - Super Shot 1", + "id": 88873914, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Nothing 2", + "id": 88873915, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Poison Fruit 1", + "id": 88873916, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Anti-Death Halo 1 (Dif. 2)", + "id": 88873917, + "difficulty": 2, + "tags": [ + "volcanic_cavern", + "no_obelisks" + ] + }, + { + "name": "Volcanic Cavern Chest - Potion 1 (Dif. 3)", + "id": 88873918, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - 3-Way Shot 1", + "id": 88873919, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - Fruit 2 (Dif. 2)", + "id": 88873920, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - Timestop 1 (Dif. 3)", + "id": 88873921, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - Meat 2", + "id": 88873922, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Potion 2 (Dif. 2)", + "id": 88873923, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Meat 1", + "id": 88873924, + "difficulty": 1, + "tags": [ + "volcanic_cavern", + "no_obelisks" + ] + }, + { + "name": "Volcanic Cavern Chest - Potion 2 (Dif. 4)", + "id": 88873925, + "difficulty": 4, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - Fruit 3 (Dif. 2)", + "id": 88873926, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - Fruit 4 (Dif. 3)", + "id": 88873927, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Scroll 1", + "id": 88873928, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Nothing 3", + "id": 88873929, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Gold 1 (Dif. 3)", + "id": 88873930, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - Gold 1 (Dif. 4)", + "id": 88873931, + "difficulty": 4, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Gold 2", + "id": 88873932, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - Meat 3 (Dif. 2)", + "id": 88873933, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Fruit 2 (Dif. 4)", + "id": 88873934, + "difficulty": 4, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Meat 2 (Dif. 3)", + "id": 88873935, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Potion 3", + "id": 88873936, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Gold 3 (Dif. 2)", + "id": 88873937, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - Lightning Breath 1 (Dif. 2)", + "id": 88873938, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - Fruit 5 (Dif. 3)", + "id": 88873939, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - Speed Boots 1 (Dif. 4)", + "id": 88873940, + "difficulty": 4, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Chest - Potion 3 (Dif. 2)", + "id": 88873941, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Nothing 4 (Dif. 3)", + "id": 88873942, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Potion 4", + "id": 88873943, + "difficulty": 1, + "tags": [ + "volcanic_cavern", + "no_obelisks" + ] + }, + { + "name": "Volcanic Cavern Barrel - Death 1 (Dif. 3)", + "id": 88873944, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Meat 3 (Dif. 4)", + "id": 88873945, + "difficulty": 4, + "tags": [ + "volcanic_cavern", + "no_obelisks" + ] + }, + { + "name": "Volcanic Cavern Chest - Phoenix Familiar 1 (Dif. 2)", + "id": 88873946, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Nothing 5 (Dif. 2)", + "id": 88873947, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Nothing 6 (Dif. 2)", + "id": 88873948, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Nothing 7 (Dif. 3)", + "id": 88873949, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Nothing 8", + "id": 88873950, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Nothing 9 (Dif. 4)", + "id": 88873951, + "difficulty": 4, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Nothing 10 (Dif. 2)", + "id": 88873952, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Nothing 11 (Dif. 3)", + "id": 88873953, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Scroll 2", + "id": 88873954, + "difficulty": 1, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Nothing 12 (Dif. 3)", + "id": 88873955, + "difficulty": 3, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Volcanic Cavern Barrel - Nothing 13 (Dif. 2)", + "id": 88873956, + "difficulty": 2, + "tags": [ + "volcanic_cavern" + ] + }, + { + "name": "Dragon's Lair - Slab of Meat (Dif. 2)", + "id": 88870176, + "difficulty": 2, + "tags": [ + "dragons_lair", + "no_obelisks", + "no_spawner" + ] + }, + { + "name": "Dragon's Lair - Rapid Fire (Dif. 2)", + "id": 88870177, + "difficulty": 2, + "tags": [ + "dragons_lair", + "no_obelisks", + "no_spawner" + ] + }, + { + "name": "Dragon's Lair - Growth (Dif. 4)", + "id": 88870178, + "difficulty": 4, + "tags": [ + "dragons_lair", + "no_obelisks", + "no_spawner" + ] + }, + { + "name": "Dragon's Lair - Speed Boots (Dif. 3)", + "id": 88870179, + "difficulty": 3, + "tags": [ + "dragons_lair", + "no_obelisks", + "no_spawner" + ] + }, + { + "name": "Dragon's Lair - 3-Way Shot", + "id": 88870180, + "difficulty": 1, + "tags": [ + "dragons_lair", + "no_obelisks", + "no_spawner" + ] + }, + { + "name": "Dragon's Lair - Drumstick", + "id": 88870181, + "difficulty": 1, + "tags": [ + "dragons_lair", + "no_obelisks", + "no_spawner" + ] + }, + { + "name": "Dragon's Lair - Dragon Mirror Shard", + "id": 88870607, + "difficulty": 1, + "tags": [ + "dragons_lair", + "no_obelisks", + "skipped_local", + "no_spawner" + ] + }, + { + "name": "Castle Courtyard - Runestone", + "id": 88870182, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Key 1", + "id": 88870183, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Key 2", + "id": 88870184, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Key 3", + "id": 88870185, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Key 4", + "id": 88870186, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Key 5", + "id": 88870187, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Key 6", + "id": 88870188, + "difficulty": 1, + "tags": [ + "castle_courtyard", + "no_obelisks" + ] + }, + { + "name": "Castle Courtyard - Key 7", + "id": 88870189, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Key 8", + "id": 88870190, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Key 9", + "id": 88870191, + "difficulty": 1, + "tags": [ + "castle_courtyard", + "no_obelisks" + ] + }, + { + "name": "Castle Courtyard - Scroll 1", + "id": 88870192, + "difficulty": 1, + "tags": [ + "castle_courtyard", + "no_obelisks" + ] + }, + { + "name": "Castle Courtyard - Full Barrel of Gold 1 (Dif. 4)", + "id": 88870193, + "difficulty": 4, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Lightning Potion 1", + "id": 88870194, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Key 10", + "id": 88870195, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Lightning Potion 2 (Dif. 4)", + "id": 88870196, + "difficulty": 4, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Scroll 2", + "id": 88870197, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Poison Fruit 1", + "id": 88870198, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Key 11 (Dif. 2)", + "id": 88870199, + "difficulty": 2, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Key 12", + "id": 88870200, + "difficulty": 1, + "tags": [ + "castle_courtyard", + "no_obelisks" + ] + }, + { + "name": "Castle Courtyard - Key 13 (Dif. 4)", + "id": 88870201, + "difficulty": 4, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Key 14 (Dif. 4)", + "id": 88870202, + "difficulty": 4, + "tags": [ + "castle_courtyard", + "no_obelisks" + ] + }, + { + "name": "Castle Courtyard - Large Pile of Gold 1 (Dif. 2)", + "id": 88870203, + "difficulty": 2, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Key 15", + "id": 88870204, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Key 16 (Dif. 2)", + "id": 88870205, + "difficulty": 2, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Death 1", + "id": 88870206, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Death 2 (Dif. 3)", + "id": 88870207, + "difficulty": 3, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Invulnerability", + "id": 88870208, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Half Barrel of Gold 1 (Dif. 3)", + "id": 88870209, + "difficulty": 3, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Lightning Potion 3 (Dif. 2)", + "id": 88870210, + "difficulty": 2, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Timestop (Dif. 4)", + "id": 88870211, + "difficulty": 4, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Super Shot (Dif. 2)", + "id": 88870212, + "difficulty": 2, + "tags": [ + "castle_courtyard", + "no_obelisks" + ] + }, + { + "name": "Castle Courtyard - Phoenix Familiar", + "id": 88870213, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Fire Breath (Dif. 2)", + "id": 88870214, + "difficulty": 2, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Key 17 (Dif. 2)", + "id": 88870215, + "difficulty": 2, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Key 18 (Dif. 3)", + "id": 88870216, + "difficulty": 3, + "tags": [ + "castle_courtyard", + "no_obelisks" + ] + }, + { + "name": "Castle Courtyard - Key 19 (Dif. 4)", + "id": 88870217, + "difficulty": 4, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Lightning Shield", + "id": 88870218, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard - Obelisk", + "id": 88870616, + "difficulty": 1, + "tags": [ + "castle_courtyard", + "obelisk", + "skipped_local", + "no_spawner" + ] + }, + { + "name": "Castle Courtyard Barrel - Key 1", + "id": 8887300, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Shrink 1 (Dif. 4)", + "id": 8887301, + "difficulty": 4, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Nothing 1 (Dif. 3)", + "id": 8887302, + "difficulty": 3, + "tags": [ + "castle_courtyard", + "no_obelisks" + ] + }, + { + "name": "Castle Courtyard Barrel - Nothing 2", + "id": 8887303, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Nothing 3", + "id": 8887304, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Fruit 1", + "id": 8887305, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Potion 1", + "id": 8887306, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Nothing 4", + "id": 8887307, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Key 2 (Dif. 2)", + "id": 8887308, + "difficulty": 2, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Poison Fruit 1 (Dif. 2)", + "id": 8887309, + "difficulty": 2, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Nothing 5 (Dif. 2)", + "id": 88873010, + "difficulty": 2, + "tags": [ + "castle_courtyard", + "no_obelisks" + ] + }, + { + "name": "Castle Courtyard Barrel - Gold 1 (Dif. 3)", + "id": 88873011, + "difficulty": 3, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Key 3 (Dif. 2)", + "id": 88873012, + "difficulty": 2, + "tags": [ + "castle_courtyard", + "no_obelisks" + ] + }, + { + "name": "Castle Courtyard Chest - Scroll 1", + "id": 88873013, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Dark Chest - Random 1 (Dif. 4)", + "id": 88873014, + "difficulty": 4, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Gold 1 (Dif. 2)", + "id": 88873015, + "difficulty": 2, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Nothing 1", + "id": 88873016, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Reflective Shot 1", + "id": 88873017, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Gold 2", + "id": 88873018, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Death 1 (Dif. 2)", + "id": 88873019, + "difficulty": 2, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Speed Boots 1 (Dif. 3)", + "id": 88873020, + "difficulty": 3, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Invisibility 1 (Dif. 4)", + "id": 88873021, + "difficulty": 4, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Nothing 6", + "id": 88873022, + "difficulty": 1, + "tags": [ + "castle_courtyard", + "no_obelisks" + ] + }, + { + "name": "Castle Courtyard Barrel - Gold 2", + "id": 88873023, + "difficulty": 1, + "tags": [ + "castle_courtyard", + "no_obelisks" + ] + }, + { + "name": "Castle Courtyard Barrel - Key 4 (Dif. 3)", + "id": 88873024, + "difficulty": 3, + "tags": [ + "castle_courtyard", + "no_obelisks" + ] + }, + { + "name": "Castle Courtyard Barrel - Fruit 2 (Dif. 3)", + "id": 88873025, + "difficulty": 3, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Scroll 2", + "id": 88873026, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Potion 1 (Dif. 3)", + "id": 88873027, + "difficulty": 3, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Gold 3 (Dif. 2)", + "id": 88873028, + "difficulty": 2, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Key 5 (Dif. 3)", + "id": 88873029, + "difficulty": 3, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Key 6", + "id": 88873030, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Meat 1 (Dif. 4)", + "id": 88873031, + "difficulty": 4, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Meat 2 (Dif. 3)", + "id": 88873032, + "difficulty": 3, + "tags": [ + "castle_courtyard", + "no_obelisks" + ] + }, + { + "name": "Castle Courtyard Chest - Gold 4 (Dif. 4)", + "id": 88873033, + "difficulty": 4, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Potion 2 (Dif. 3)", + "id": 88873034, + "difficulty": 3, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Meat 3 (Dif. 2)", + "id": 88873035, + "difficulty": 2, + "tags": [ + "castle_courtyard", + "no_obelisks" + ] + }, + { + "name": "Castle Courtyard Chest - Lightning Amulet 1 (Dif. 3)", + "id": 88873036, + "difficulty": 3, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Fruit 1 (Dif. 4)", + "id": 88873037, + "difficulty": 4, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Key 7 (Dif. 3)", + "id": 88873038, + "difficulty": 3, + "tags": [ + "castle_courtyard", + "no_obelisks" + ] + }, + { + "name": "Castle Courtyard Chest - Potion 3 (Dif. 4)", + "id": 88873039, + "difficulty": 4, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Gold 5", + "id": 88873040, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Key 8 (Dif. 3)", + "id": 88873041, + "difficulty": 3, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Key 9", + "id": 88873042, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Fruit 2 (Dif. 2)", + "id": 88873043, + "difficulty": 2, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Gold 3", + "id": 88873044, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Chest - Meat 4", + "id": 88873045, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Key 10 (Dif. 4)", + "id": 88873046, + "difficulty": 4, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - 3-Way Shot 1 (Dif. 2)", + "id": 88873047, + "difficulty": 2, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Nothing 7 (Dif. 4)", + "id": 88873048, + "difficulty": 4, + "tags": [ + "castle_courtyard", + "no_obelisks" + ] + }, + { + "name": "Castle Courtyard Barrel - Lightning Breath 1 (Dif. 3)", + "id": 88873049, + "difficulty": 3, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Poison Fruit 2 (Dif. 4)", + "id": 88873050, + "difficulty": 4, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Nothing 8 (Dif. 2)", + "id": 88873051, + "difficulty": 2, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Nothing 9 (Dif. 4)", + "id": 88873052, + "difficulty": 4, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Key 11 (Dif. 4)", + "id": 88873053, + "difficulty": 4, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Nothing 10 (Dif. 3)", + "id": 88873054, + "difficulty": 3, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Nothing 11 (Dif. 3)", + "id": 88873055, + "difficulty": 3, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Nothing 12", + "id": 88873056, + "difficulty": 1, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Castle Courtyard Barrel - Key 12 (Dif. 4)", + "id": 88873057, + "difficulty": 4, + "tags": [ + "castle_courtyard" + ] + }, + { + "name": "Dungeon of Torment - Lightning Potion 1 (Dif. 4)", + "id": 88870219, + "difficulty": 4, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment - Key 1", + "id": 88870220, + "difficulty": 1, + "tags": [ + "dungeon_of_torment", + "no_obelisks" + ] + }, + { + "name": "Dungeon of Torment - Runestone", + "id": 88870221, + "difficulty": 1, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment - Key 2 (Dif. 3)", + "id": 88870222, + "difficulty": 3, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment - Key 3", + "id": 88870223, + "difficulty": 1, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment - Key 4 (Dif. 2)", + "id": 88870224, + "difficulty": 2, + "tags": [ + "dungeon_of_torment", + "no_obelisks" + ] + }, + { + "name": "Dungeon of Torment - Key 5 (Dif. 3)", + "id": 88870225, + "difficulty": 3, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment - Key 6 (Dif. 4)", + "id": 88870226, + "difficulty": 4, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment - Very Small Pile of Gold 1", + "id": 88870227, + "difficulty": 1, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment - Small Pile of Gold 1 (Dif. 2)", + "id": 88870228, + "difficulty": 2, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment - Full Barrel of Gold 1 (Dif. 4)", + "id": 88870229, + "difficulty": 4, + "tags": [ + "dungeon_of_torment", + "no_obelisks" + ] + }, + { + "name": "Dungeon of Torment - Half Barrel of Gold 1 (Dif. 3)", + "id": 88870230, + "difficulty": 3, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment - Small Pile of Gold 2", + "id": 88870231, + "difficulty": 1, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment - Large Pile fo Gold 1 (Dif. 3)", + "id": 88870232, + "difficulty": 3, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment - Half Barrel of Gold 2 (Dif. 4)", + "id": 88870233, + "difficulty": 4, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment - Lightning Potion 2", + "id": 88870234, + "difficulty": 1, + "tags": [ + "dungeon_of_torment", + "no_obelisks" + ] + }, + { + "name": "Dungeon of Torment - Acid Amulet", + "id": 88870235, + "difficulty": 1, + "tags": [ + "dungeon_of_torment", + "no_obelisks" + ] + }, + { + "name": "Dungeon of Torment - Poison Fruit", + "id": 88870236, + "difficulty": 1, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment - Key 7 (Dif. 2)", + "id": 88870237, + "difficulty": 2, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment - Key 8", + "id": 88870238, + "difficulty": 1, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment - Obelisk", + "id": 88870617, + "difficulty": 1, + "tags": [ + "dungeon_of_torment", + "obelisk", + "skipped_local", + "no_spawner" + ] + }, + { + "name": "Dungeon of Torment Barrel - Nothing 1", + "id": 8887310, + "difficulty": 1, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Chest - Meat 1 (Dif. 4)", + "id": 8887311, + "difficulty": 4, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Chest - Meat 2 (Dif. 3)", + "id": 8887312, + "difficulty": 3, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Chest - Acid Amulet 1", + "id": 8887313, + "difficulty": 1, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Death 1", + "id": 8887314, + "difficulty": 1, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Chest - Invulnerability 1 (Dif. 4)", + "id": 8887315, + "difficulty": 4, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Key 1 (Dif. 3)", + "id": 8887316, + "difficulty": 3, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Key 2 (Dif. 2)", + "id": 8887317, + "difficulty": 2, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Nothing 2 (Dif. 4)", + "id": 8887318, + "difficulty": 4, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Nothing 3 (Dif. 3)", + "id": 8887319, + "difficulty": 3, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Nothing 4 (Dif. 4)", + "id": 88873110, + "difficulty": 4, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Fruit 1 (Dif. 2)", + "id": 88873111, + "difficulty": 2, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Super Shot 1 (Dif. 3)", + "id": 88873112, + "difficulty": 3, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Potion 1 (Dif. 2)", + "id": 88873113, + "difficulty": 2, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Gold 1 (Dif. 2)", + "id": 88873114, + "difficulty": 2, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Gold 2", + "id": 88873115, + "difficulty": 1, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Key 3 (Dif. 4)", + "id": 88873116, + "difficulty": 4, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Chest - Meat 3 (Dif. 2)", + "id": 88873117, + "difficulty": 2, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Chest - Meat 4", + "id": 88873118, + "difficulty": 1, + "tags": [ + "dungeon_of_torment", + "no_obelisks" + ] + }, + { + "name": "Dungeon of Torment Chest - Potion 1 (Dif. 3)", + "id": 88873119, + "difficulty": 3, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Chest - Fruit 1 (Dif. 3)", + "id": 88873120, + "difficulty": 3, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Dark Chest - Random 1 (Dif. 2)", + "id": 88873121, + "difficulty": 2, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Chest - Potion 2", + "id": 88873122, + "difficulty": 1, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Chest - Gold 1 (Dif. 2)", + "id": 88873123, + "difficulty": 2, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Fruit 2 (Dif. 4)", + "id": 88873124, + "difficulty": 4, + "tags": [ + "dungeon_of_torment", + "no_obelisks" + ] + }, + { + "name": "Dungeon of Torment Barrel - Reflective Shot 1 (Dif. 2)", + "id": 88873125, + "difficulty": 2, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Scroll 1", + "id": 88873126, + "difficulty": 1, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Nothing 5 (Dif. 3)", + "id": 88873127, + "difficulty": 3, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Nothing 6 (Dif. 2)", + "id": 88873128, + "difficulty": 2, + "tags": [ + "dungeon_of_torment", + "no_obelisks" + ] + }, + { + "name": "Dungeon of Torment Barrel - Nothing 7 (Dif. 3)", + "id": 88873129, + "difficulty": 3, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Nothing 8 (Dif. 3)", + "id": 88873130, + "difficulty": 3, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Dungeon of Torment Barrel - Scroll 2", + "id": 88873131, + "difficulty": 1, + "tags": [ + "dungeon_of_torment" + ] + }, + { + "name": "Tower Armory - Key 1 (Dif. 4)", + "id": 88870239, + "difficulty": 4, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 2", + "id": 88870240, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 3", + "id": 88870241, + "difficulty": 1, + "tags": [ + "tower_armory", + "no_obelisks" + ] + }, + { + "name": "Tower Armory - Key 4", + "id": 88870242, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 5", + "id": 88870243, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 6", + "id": 88870244, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 7 (Dif. 4)", + "id": 88870245, + "difficulty": 4, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Slab of Meat 1", + "id": 88870246, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Lightning Potion 1 (Dif. 3)", + "id": 88870247, + "difficulty": 3, + "tags": [ + "tower_armory", + "no_obelisks" + ] + }, + { + "name": "Tower Armory - Key 8 (Dif. 2)", + "id": 88870248, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 9", + "id": 88870249, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 10 (Dif. 2)", + "id": 88870250, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 11", + "id": 88870251, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 12 (Dif. 3)", + "id": 88870252, + "difficulty": 3, + "tags": [ + "tower_armory", + "no_obelisks" + ] + }, + { + "name": "Tower Armory - Key 13", + "id": 88870253, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 14 (Dif. 2)", + "id": 88870254, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 15 (Dif. 3)", + "id": 88870255, + "difficulty": 3, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 16 (Dif. 3)", + "id": 88870256, + "difficulty": 3, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 17", + "id": 88870257, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 18 (Dif. 2)", + "id": 88870258, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 19 (Dif. 3)", + "id": 88870259, + "difficulty": 3, + "tags": [ + "tower_armory", + "no_obelisks" + ] + }, + { + "name": "Tower Armory - Fruit 1", + "id": 88870260, + "difficulty": 1, + "tags": [ + "tower_armory", + "no_obelisks" + ] + }, + { + "name": "Tower Armory - Potion Pile (Dif. 2)", + "id": 88870261, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Lightning Potion 2", + "id": 88870262, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Poison Fruit 1 (Dif. 3)", + "id": 88870263, + "difficulty": 3, + "tags": [ + "tower_armory", + "no_obelisks" + ] + }, + { + "name": "Tower Armory - Key 20 (Dif. 2)", + "id": 88870264, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Slab of Meat 2 (Dif. 4)", + "id": 88870265, + "difficulty": 4, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Lightning Potion 3 (Dif. 4)", + "id": 88870266, + "difficulty": 4, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 21 (Dif. 2)", + "id": 88870267, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Fruit 2 (Dif. 2)", + "id": 88870268, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Fruit 3", + "id": 88870269, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Reflective Shot 1 (Dif. 2)", + "id": 88870270, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Death 1 (Dif. 3)", + "id": 88870271, + "difficulty": 3, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Very Small Pile of Gold 1 (Dif. 4)", + "id": 88870272, + "difficulty": 4, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Very Small Pile of Gold 2", + "id": 88870273, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Half Barrel of Gold 1 (Dif. 4)", + "id": 88870274, + "difficulty": 4, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Small Pile of Gold 1 (Dif. 2)", + "id": 88870275, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Large Pile of Gold 1 (Dif. 3)", + "id": 88870276, + "difficulty": 3, + "tags": [ + "tower_armory", + "no_obelisks" + ] + }, + { + "name": "Tower Armory - Very Small Pile of Gold 3", + "id": 88870277, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 22 (Dif. 3)", + "id": 88870278, + "difficulty": 3, + "tags": [ + "tower_armory", + "no_obelisks" + ] + }, + { + "name": "Tower Armory - Acid Breath 1", + "id": 88870279, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Runestone", + "id": 88870280, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 23", + "id": 88870281, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 24 (Dif. 2)", + "id": 88870282, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory - Key 25", + "id": 88870283, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Barrel - Key 1 (Dif. 4)", + "id": 8887320, + "difficulty": 4, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Barrel - Scroll 1", + "id": 8887321, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Barrel - Light Amulet 1 (Dif. 4)", + "id": 8887322, + "difficulty": 4, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Barrel - Poison Fruit 1 (Dif. 4)", + "id": 8887323, + "difficulty": 4, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Fire Breath 1 (Dif. 4)", + "id": 8887324, + "difficulty": 4, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Gold 1", + "id": 8887325, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Invisibility 1 (Dif. 2)", + "id": 8887326, + "difficulty": 2, + "tags": [ + "tower_armory", + "no_obelisks" + ] + }, + { + "name": "Tower Armory Chest - Potion 1", + "id": 8887327, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Lightning Amulet 1", + "id": 8887328, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Poison Fruit 1", + "id": 8887329, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Meat 1 (Dif. 3)", + "id": 88873210, + "difficulty": 3, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Death 1 (Dif. 2)", + "id": 88873211, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Super Shot 1 (Dif. 3)", + "id": 88873212, + "difficulty": 3, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Growth 1 (Dif. 3)", + "id": 88873213, + "difficulty": 3, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Potion 2 (Dif. 2)", + "id": 88873214, + "difficulty": 2, + "tags": [ + "tower_armory", + "no_obelisks" + ] + }, + { + "name": "Tower Armory Chest - Death 2", + "id": 88873215, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Gold 2 (Dif. 3)", + "id": 88873216, + "difficulty": 3, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Gold 3 (Dif. 2)", + "id": 88873217, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Fruit 1 (Dif. 4)", + "id": 88873218, + "difficulty": 4, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Potion 3", + "id": 88873219, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Fruit 2 (Dif. 2)", + "id": 88873220, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Dark Chest - Random 1 (Dif. 3)", + "id": 88873221, + "difficulty": 3, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Meat 2", + "id": 88873222, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Barrel - Scroll 2", + "id": 88873223, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Barrel - 3-Way Shot 1", + "id": 88873224, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Meat 3 (Dif. 2)", + "id": 88873225, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Invulnerability 1 (Dif. 4)", + "id": 88873226, + "difficulty": 4, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Barrel - Gold 1", + "id": 88873227, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Barrel - Key 2", + "id": 88873228, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Barrel - Nothing 1 (Dif. 3)", + "id": 88873229, + "difficulty": 3, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Barrel - Key 3 (Dif. 2)", + "id": 88873230, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Dark Chest - Random 2 (Dif. 2)", + "id": 88873231, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Barrel - Scroll 3", + "id": 88873232, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Barrel - Speed Boots 1", + "id": 88873233, + "difficulty": 1, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Barrel - Levitate 1 (Dif. 3)", + "id": 88873234, + "difficulty": 3, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Barrel - Nothing 2 (Dif. 4)", + "id": 88873235, + "difficulty": 4, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Tower Armory Chest - Reflective Shield 1 (Dif. 2)", + "id": 88873236, + "difficulty": 2, + "tags": [ + "tower_armory" + ] + }, + { + "name": "Castle Treasury - Lightning Potion 1", + "id": 88870284, + "difficulty": 1, + "tags": [ + "castle_treasury", + "no_obelisks" + ] + }, + { + "name": "Castle Treasury - Key 1", + "id": 88870285, + "difficulty": 1, + "tags": [ + "castle_treasury", + "no_obelisks" + ] + }, + { + "name": "Castle Treasury - Key 2", + "id": 88870286, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Key 3", + "id": 88870287, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Key 4", + "id": 88870288, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Key 5", + "id": 88870289, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Key 6 (Dif. 3)", + "id": 88870290, + "difficulty": 3, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Key 7", + "id": 88870291, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Key 8", + "id": 88870292, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Half Barrel of Gold 1 (Dif. 4)", + "id": 88870293, + "difficulty": 4, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Very Small Pile of Gold 1 (Dif. 4)", + "id": 88870294, + "difficulty": 4, + "tags": [ + "castle_treasury", + "no_obelisks" + ] + }, + { + "name": "Castle Treasury - Small Pile of Gold 1 (Dif. 4)", + "id": 88870295, + "difficulty": 4, + "tags": [ + "castle_treasury", + "no_obelisks" + ] + }, + { + "name": "Castle Treasury - Full Barrel of Gold 1 (Dif. 4)", + "id": 88870296, + "difficulty": 4, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Large Pile of Gold 1 (Dif. 2)", + "id": 88870297, + "difficulty": 2, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Small Pile of Gold 2 (Dif. 3)", + "id": 88870298, + "difficulty": 3, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Scroll 1", + "id": 88870299, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Meat Slab 1 (Dif. 2)", + "id": 88870300, + "difficulty": 2, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Poison Fruit 1", + "id": 88870301, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Lightning Potion 2 (Dif. 4)", + "id": 88870302, + "difficulty": 4, + "tags": [ + "castle_treasury", + "no_obelisks" + ] + }, + { + "name": "Castle Treasury - Key 9", + "id": 88870303, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Lightning Potion 3 (Dif. 2)", + "id": 88870304, + "difficulty": 2, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Bananas", + "id": 88870305, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Drumstick 1", + "id": 88870306, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Lightning Potion 4 (Dif. 3)", + "id": 88870307, + "difficulty": 3, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Lightning Potion 5", + "id": 88870308, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Pineapple (Dif. 2)", + "id": 88870309, + "difficulty": 2, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Key 10 (Dif. 2)", + "id": 88870310, + "difficulty": 2, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Poison Fruit 2 (Dif. 3)", + "id": 88870311, + "difficulty": 3, + "tags": [ + "castle_treasury", + "no_obelisks" + ] + }, + { + "name": "Castle Treasury - Death 1 (Dif. 2)", + "id": 88870312, + "difficulty": 2, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Invulnerability 1 (Dif. 2)", + "id": 88870313, + "difficulty": 2, + "tags": [ + "castle_treasury", + "no_obelisks" + ] + }, + { + "name": "Castle Treasury - Large Pile of Gold 2 (Dif. 4)", + "id": 88870314, + "difficulty": 4, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Very Small Pile of Gold 2", + "id": 88870315, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Half Barrel of Gold 2 (Dif. 3)", + "id": 88870316, + "difficulty": 3, + "tags": [ + "castle_treasury", + "no_obelisks" + ] + }, + { + "name": "Castle Treasury - Very Small Pile of Gold 3 (Dif. 3)", + "id": 88870317, + "difficulty": 3, + "tags": [ + "castle_treasury", + "no_obelisks" + ] + }, + { + "name": "Castle Treasury - Small Pile of Gold 3 (Dif. 2)", + "id": 88870318, + "difficulty": 2, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Large Pile of Gold 3 (Dif. 3)", + "id": 88870319, + "difficulty": 3, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Small Pile of Gold 4", + "id": 88870320, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Speed Boots 1 (Dif. 3)", + "id": 88870321, + "difficulty": 3, + "tags": [ + "castle_treasury", + "no_obelisks" + ] + }, + { + "name": "Castle Treasury - Fruit 1 (Dif. 4)", + "id": 88870322, + "difficulty": 4, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Key 11 (Dif. 2)", + "id": 88870323, + "difficulty": 2, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Key 12 (Dif. 3)", + "id": 88870324, + "difficulty": 3, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Key 13 (Dif. 4)", + "id": 88870325, + "difficulty": 4, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Death 2 (Dif. 3)", + "id": 88870326, + "difficulty": 3, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Ice Axe of Untar", + "id": 88870327, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury - Key 14 (Dif. 4)", + "id": 88870328, + "difficulty": 4, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Barrel - Scroll 1", + "id": 8887330, + "difficulty": 1, + "tags": [ + "castle_treasury", + "no_obelisks" + ] + }, + { + "name": "Castle Treasury Barrel - Scroll 2", + "id": 8887331, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Barrel - Key 1 (Dif. 2)", + "id": 8887332, + "difficulty": 2, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Barrel - Key 2", + "id": 8887333, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Barrel - Key 3", + "id": 8887334, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Barrel - Key 4", + "id": 8887335, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Barrel - Key 5 (Dif. 2)", + "id": 8887336, + "difficulty": 2, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Chest - Gold 1", + "id": 8887337, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Barrel - Key 6 (Dif. 3)", + "id": 8887338, + "difficulty": 3, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Barrel - Poison Fruit 1 (Dif. 3)", + "id": 8887339, + "difficulty": 3, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Barrel - Key 7 (Dif. 4)", + "id": 88873310, + "difficulty": 4, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Chest - Gold 2", + "id": 88873311, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Chest - Gold 3", + "id": 88873312, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Chest - Potion 1 (Dif. 4)", + "id": 88873313, + "difficulty": 4, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Chest - Potion 2 (Dif. 3)", + "id": 88873314, + "difficulty": 3, + "tags": [ + "castle_treasury", + "no_obelisks" + ] + }, + { + "name": "Castle Treasury Chest - Lightning Amulet 1", + "id": 88873315, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Chest - 3-Way Shot 1 (Dif. 2)", + "id": 88873316, + "difficulty": 2, + "tags": [ + "castle_treasury", + "no_obelisks" + ] + }, + { + "name": "Castle Treasury Chest - Potion 3", + "id": 88873317, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Dark Chest - Random 1 (Dif. 3)", + "id": 88873318, + "difficulty": 3, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Chest - Gold 4 (Dif. 2)", + "id": 88873319, + "difficulty": 2, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Chest - Potion 4 (Dif. 2)", + "id": 88873320, + "difficulty": 2, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Chest - Scroll 1", + "id": 88873321, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Chest - Meat 1 (Dif. 3)", + "id": 88873322, + "difficulty": 3, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Chest - Fruit 1 (Dif. 2)", + "id": 88873323, + "difficulty": 2, + "tags": [ + "castle_treasury", + "no_obelisks" + ] + }, + { + "name": "Castle Treasury Chest - Meat 2 (Dif. 4)", + "id": 88873324, + "difficulty": 4, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Chest - Thunder Hammer 1 (Dif. 4)", + "id": 88873325, + "difficulty": 4, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Barrel - Timestop 1 (Dif. 4)", + "id": 88873326, + "difficulty": 4, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Barrel - Levitate 1 (Dif. 3)", + "id": 88873327, + "difficulty": 3, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Barrel - Lightning Shield 1", + "id": 88873328, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Barrel - Death 1", + "id": 88873329, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Chest - Fire Shield 1", + "id": 88873330, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Barrel - Levitate 2 (Dif. 2)", + "id": 88873331, + "difficulty": 2, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Castle Treasury Chest - Random 1", + "id": 88873332, + "difficulty": 1, + "tags": [ + "castle_treasury" + ] + }, + { + "name": "Chimera's Keep - Speed Boots", + "id": 88870329, + "difficulty": 1, + "tags": [ + "chimeras_keep", + "no_obelisks", + "no_spawner" + ] + }, + { + "name": "Chimera's Keep - Growth (Dif. 4)", + "id": 88870330, + "difficulty": 4, + "tags": [ + "chimeras_keep", + "no_obelisks", + "no_spawner" + ] + }, + { + "name": "Chimera's Keep - 3-Way Shot (Dif. 2)", + "id": 88870331, + "difficulty": 2, + "tags": [ + "chimeras_keep", + "no_obelisks", + "no_spawner" + ] + }, + { + "name": "Chimera's Keep - (Dif. 3)", + "id": 88870332, + "difficulty": 3, + "tags": [ + "chimeras_keep", + "no_obelisks", + "no_spawner" + ] + }, + { + "name": "Chimera's Keep - Ham (Dif. 2)", + "id": 88870333, + "difficulty": 2, + "tags": [ + "chimeras_keep", + "no_obelisks", + "no_spawner" + ] + }, + { + "name": "Chimera's Keep - Drumstick", + "id": 88870334, + "difficulty": 1, + "tags": [ + "chimeras_keep", + "no_obelisks", + "no_spawner" + ] + }, + { + "name": "Chimera's Keep - Chimera Mirror Shard", + "id": 88870608, + "difficulty": 1, + "tags": [ + "chimeras_keep", + "no_obelisks", + "skipped_local", + "no_spawner" + ] + }, + { + "name": "Poisoned Fields - Fruit Pile 1", + "id": 88870335, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Fruit Pile 2 (Dif. 4)", + "id": 88870336, + "difficulty": 4, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Fruit Pile 3 (Dif. 3)", + "id": 88870337, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Fruit Pile 4", + "id": 88870338, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Death 1", + "id": 88870339, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 1", + "id": 88870340, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 2 (Dif. 2)", + "id": 88870341, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 3 (Dif. 3)", + "id": 88870342, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 4", + "id": 88870343, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 5 (Dif. 3)", + "id": 88870344, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 6", + "id": 88870345, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 7 (Dif. 2)", + "id": 88870346, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 8", + "id": 88870347, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 9 (Dif. 3)", + "id": 88870348, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Fruit Pile 5 (Dif. 3)", + "id": 88870349, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Fruit Pile 6 (Dif. 2)", + "id": 88870350, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Fruit Pile 7 (Dif. 2)", + "id": 88870351, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Fruit Pile 8 (Dif. 4)", + "id": 88870352, + "difficulty": 4, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Acid Potion 1 (Dif. 4)", + "id": 88870353, + "difficulty": 4, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 10 (Dif. 2)", + "id": 88870354, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Shrink", + "id": 88870355, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Reflective Shield (Dif. 2)", + "id": 88870356, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Ham 1 (Dif. 3)", + "id": 88870357, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 11", + "id": 88870358, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 12", + "id": 88870359, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 13 (Dif. 3)", + "id": 88870360, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 14", + "id": 88870361, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 15 (Dif. 2)", + "id": 88870362, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 16", + "id": 88870363, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 17 (Dif. 4)", + "id": 88870364, + "difficulty": 4, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 18", + "id": 88870365, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Small Pile of Gold 1 (Dif. 3)", + "id": 88870366, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Bananas", + "id": 88870367, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Acid Potion 2 (Dif. 3)", + "id": 88870368, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Drumstick 1 (Dif. 3)", + "id": 88870369, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Potion Pile 1 (Dif. 2)", + "id": 88870370, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Small Pile of Gold 2 (Dif. 2)", + "id": 88870371, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Very Small Pile of Gold 1 (Dif. 4)", + "id": 88870372, + "difficulty": 4, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Half Barrel of Gold 1 (Dif. 3)", + "id": 88870373, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Key 19", + "id": 88870374, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Death 2 (Dif. 3)", + "id": 88870375, + "difficulty": 3, + "tags": [ + "poisoned_fields", + "no_obelisks" + ] + }, + { + "name": "Poisoned Fields - Fruit 1", + "id": 88870376, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Speed Boots 1 (Dif. 4)", + "id": 88870377, + "difficulty": 4, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Death 3", + "id": 88870378, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Small Pile of Gold 3", + "id": 88870379, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Full Barrel of Gold 1 (Dif. 4)", + "id": 88870380, + "difficulty": 4, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Phoenix Familiar 1 (Dif. 2)", + "id": 88870381, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields - Obelisk", + "id": 88870614, + "difficulty": 1, + "tags": [ + "poisoned_fields", + "obelisk", + "skipped_local", + "no_spawner" + ] + }, + { + "name": "Poisoned Fields Barrel - Scroll 1", + "id": 8887110, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Potion 1", + "id": 8887111, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 1", + "id": 8887112, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 2", + "id": 8887113, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Key 1", + "id": 8887114, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 3", + "id": 8887115, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 4", + "id": 8887116, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 5", + "id": 8887117, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Scroll 2", + "id": 8887118, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Key 2", + "id": 8887119, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Fruit 1 (Dif. 4)", + "id": 88871110, + "difficulty": 4, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Scroll 3", + "id": 88871111, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Meat 1 (Dif. 2)", + "id": 88871112, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Fruit 2 (Dif. 4)", + "id": 88871113, + "difficulty": 4, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Fruit 3 (Dif. 3)", + "id": 88871114, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Gold 1 (Dif. 3)", + "id": 88871115, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Key 3", + "id": 88871116, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 6", + "id": 88871117, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 7", + "id": 88871118, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 8", + "id": 88871119, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Key 4 (Dif. 4)", + "id": 88871120, + "difficulty": 4, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Key 5 (Dif. 3)", + "id": 88871121, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Key 6", + "id": 88871122, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Key 7 (Dif. 2)", + "id": 88871123, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Key 8", + "id": 88871124, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 9", + "id": 88871125, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 10", + "id": 88871126, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 11", + "id": 88871127, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Key 9", + "id": 88871128, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Thunder Hammer 1 (Dif. 2)", + "id": 88871129, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Death 1", + "id": 88871130, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Key 10", + "id": 88871131, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Anti-Death Halo 1", + "id": 88871132, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Potion 1 (Dif. 2)", + "id": 88871133, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Gold 2 (Dif. 2)", + "id": 88871134, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Gold 3 (Dif. 2)", + "id": 88871135, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Gold 4 (Dif. 2)", + "id": 88871136, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Gold 5", + "id": 88871137, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Gold 6 (Dif. 4)", + "id": 88871138, + "difficulty": 4, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 12", + "id": 88871139, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Gold 1 (Dif. 4)", + "id": 88871140, + "difficulty": 4, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Potion 2", + "id": 88871141, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Gold 7", + "id": 88871142, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Gold 8 (Dif. 3)", + "id": 88871143, + "difficulty": 3, + "tags": [ + "poisoned_fields", + "no_obelisks" + ] + }, + { + "name": "Poisoned Fields Chest - Gold 9 (Dif. 3)", + "id": 88871144, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Fruit 4 (Dif. 2)", + "id": 88871145, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Key 11", + "id": 88871146, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 13", + "id": 88871147, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 14", + "id": 88871148, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - 3-Way Shot 1", + "id": 88871149, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Meat 2 (Dif. 2)", + "id": 88871150, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 15", + "id": 88871151, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 16", + "id": 88871152, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Key 12", + "id": 88871153, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Death 2 (Dif. 4)", + "id": 88871154, + "difficulty": 4, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 17", + "id": 88871155, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Lightning Shield 1 (Dif. 3)", + "id": 88871156, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Fire Amulet 1 (Dif. 3)", + "id": 88871157, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Gold 10", + "id": 88871158, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Potion 2 (Dif. 4)", + "id": 88871159, + "difficulty": 4, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Gold 11 (Dif. 3)", + "id": 88871160, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Meat 1", + "id": 88871161, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Speed Boots 1", + "id": 88871162, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 18", + "id": 88871163, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 19", + "id": 88871164, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 20", + "id": 88871165, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 21", + "id": 88871166, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Meat 3 (Dif. 4)", + "id": 88871167, + "difficulty": 4, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Rapid Fire 1 (Dif. 2)", + "id": 88871168, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Meat 2", + "id": 88871169, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Potion 3", + "id": 88871170, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Key 13", + "id": 88871171, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Gold 2", + "id": 88871172, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - 3-Way Shot 1 (Dif. 4)", + "id": 88871173, + "difficulty": 4, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Scroll 4", + "id": 88871174, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Nothing 22", + "id": 88871175, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Gold 12 (Dif. 3)", + "id": 88871176, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Fruit 5 (Dif. 3)", + "id": 88871177, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Key 14 (Dif. 3)", + "id": 88871178, + "difficulty": 3, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Key 15", + "id": 88871179, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Potion 3 (Dif. 2)", + "id": 88871180, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Barrel - Death 3 (Dif. 2)", + "id": 88871181, + "difficulty": 2, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Gold 13 (Dif. 4)", + "id": 88871182, + "difficulty": 4, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Poisoned Fields Chest - Gold 14", + "id": 88871183, + "difficulty": 1, + "tags": [ + "poisoned_fields" + ] + }, + { + "name": "Haunted Cemetery - Acid Potion 1", + "id": 88870382, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery - Runestone", + "id": 88870383, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery - Small Pile of Gold", + "id": 88870384, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery - Key 1 (Dif. 3)", + "id": 88870385, + "difficulty": 3, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery - Acid Potion 2", + "id": 88870386, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery - 3-Way Shot", + "id": 88870387, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery - Key 2 (Dif. 2)", + "id": 88870388, + "difficulty": 2, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery - Key 3 (Dif. 3)", + "id": 88870389, + "difficulty": 3, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery - Key 4", + "id": 88870390, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery - Key 5 (Dif. 2)", + "id": 88870391, + "difficulty": 2, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery - Key 6", + "id": 88870392, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery - Key 7 (Dif. 2)", + "id": 88870393, + "difficulty": 2, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery - Speed Boots (Dif. 3)", + "id": 88870394, + "difficulty": 3, + "tags": [ + "haunted_cemetery", + "no_obelisks" + ] + }, + { + "name": "Haunted Cemetery - Key 8 (Dif. 4)", + "id": 88870395, + "difficulty": 4, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery - Death 1", + "id": 88870396, + "difficulty": 1, + "tags": [ + "haunted_cemetery", + "no_obelisks" + ] + }, + { + "name": "Haunted Cemetery - Phoenix Familiar", + "id": 88870397, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery - Timestop", + "id": 88870398, + "difficulty": 1, + "tags": [ + "haunted_cemetery", + "no_obelisks" + ] + }, + { + "name": "Haunted Cemetery - Fire Amulet (Dif. 2)", + "id": 88870399, + "difficulty": 2, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery - Death 2 (Dif. 2)", + "id": 88870400, + "difficulty": 2, + "tags": [ + "haunted_cemetery", + "no_obelisks" + ] + }, + { + "name": "Haunted Cemetery - Obelisk", + "id": 88870615, + "difficulty": 1, + "tags": [ + "haunted_cemetery", + "obelisk", + "skipped_local", + "no_spawner" + ] + }, + { + "name": "Haunted Cemetery Barrel - Invulnerability 1", + "id": 8887120, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Fire Shield 1 (Dif. 4)", + "id": 8887121, + "difficulty": 4, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Fruit 1 (Dif. 4)", + "id": 8887122, + "difficulty": 4, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Meat 1", + "id": 8887123, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Fruit 2 (Dif. 2)", + "id": 8887124, + "difficulty": 2, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Potion 1 (Dif. 4)", + "id": 8887125, + "difficulty": 4, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Key 1 (Dif. 2)", + "id": 8887126, + "difficulty": 2, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Chest - Potion 1 (Dif. 2)", + "id": 8887127, + "difficulty": 2, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Poison Fruit 1 (Dif. 4)", + "id": 8887128, + "difficulty": 4, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Key 2 (Dif. 2)", + "id": 8887129, + "difficulty": 2, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Dark Chest - Random 1 (Dif. 2)", + "id": 88871210, + "difficulty": 2, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Key 3 (Dif. 3)", + "id": 88871211, + "difficulty": 3, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Chest - Scroll 1", + "id": 88871212, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Poison Fruit 2 (Dif. 2)", + "id": 88871213, + "difficulty": 2, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Poison Fruit 3 (Dif. 3)", + "id": 88871214, + "difficulty": 3, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Chest - Rapid Fire 1 (Dif. 2)", + "id": 88871215, + "difficulty": 2, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Chest - Gold 1 (Dif. 4)", + "id": 88871216, + "difficulty": 4, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Chest - Shrink 1 (Dif. 3)", + "id": 88871217, + "difficulty": 3, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Chest - Potion 2 (Dif. 3)", + "id": 88871218, + "difficulty": 3, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Scroll 1", + "id": 88871219, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Scroll 2", + "id": 88871220, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Meat 2 (Dif. 3)", + "id": 88871221, + "difficulty": 3, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Chest - Meat 1 (Dif. 2)", + "id": 88871222, + "difficulty": 2, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Key 4 (Dif. 2)", + "id": 88871223, + "difficulty": 2, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Potion 2", + "id": 88871224, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Death 1 (Dif. 4)", + "id": 88871225, + "difficulty": 4, + "tags": [ + "haunted_cemetery", + "no_obelisks" + ] + }, + { + "name": "Haunted Cemetery Barrel - Gold 1", + "id": 88871226, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Chest - Levitate 1", + "id": 88871227, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Fruit 3 (Dif. 3)", + "id": 88871228, + "difficulty": 3, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Chest - Gold 2 (Dif. 2)", + "id": 88871229, + "difficulty": 2, + "tags": [ + "haunted_cemetery", + "no_obelisks" + ] + }, + { + "name": "Haunted Cemetery Chest - Fruit 1", + "id": 88871230, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Nothing 1", + "id": 88871231, + "difficulty": 1, + "tags": [ + "haunted_cemetery", + "no_obelisks" + ] + }, + { + "name": "Haunted Cemetery Barrel - Key 5", + "id": 88871232, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Key 6", + "id": 88871233, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Gold 2 (Dif. 3)", + "id": 88871234, + "difficulty": 3, + "tags": [ + "haunted_cemetery", + "no_obelisks" + ] + }, + { + "name": "Haunted Cemetery Barrel - Key 7 (Dif. 4)", + "id": 88871235, + "difficulty": 4, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Key 8", + "id": 88871236, + "difficulty": 1, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Barrel - Death 2", + "id": 88871237, + "difficulty": 1, + "tags": [ + "haunted_cemetery", + "no_obelisks" + ] + }, + { + "name": "Haunted Cemetery Barrel - Gold 3 (Dif. 2)", + "id": 88871238, + "difficulty": 2, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Chest - Death 1 (Dif. 3)", + "id": 88871239, + "difficulty": 3, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Chest - 3-Way Shot 1 (Dif. 2)", + "id": 88871240, + "difficulty": 2, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Haunted Cemetery Chest - Gold 3", + "id": 88871241, + "difficulty": 1, + "tags": [ + "haunted_cemetery", + "no_obelisks" + ] + }, + { + "name": "Haunted Cemetery Chest - Meat 2 (Dif. 4)", + "id": 88871242, + "difficulty": 4, + "tags": [ + "haunted_cemetery" + ] + }, + { + "name": "Venemous Spire - Acid Potion 1", + "id": 88870401, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire - Invisibility", + "id": 88870402, + "difficulty": 1, + "tags": [ + "venomous_spire", + "no_obelisks" + ] + }, + { + "name": "Venemous Spire - Flame of Tarkana", + "id": 88870403, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire - Runestone", + "id": 88870404, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire - Super Shot", + "id": 88870405, + "difficulty": 1, + "tags": [ + "venomous_spire", + "no_obelisks" + ] + }, + { + "name": "Venemous Spire - Death 1", + "id": 88870406, + "difficulty": 1, + "tags": [ + "venomous_spire", + "no_obelisks" + ] + }, + { + "name": "Venemous Spire - Key 1 (Dif. 4)", + "id": 88870407, + "difficulty": 4, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire - Key 2 (Dif. 3)", + "id": 88870408, + "difficulty": 3, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire - Lightning Amulet (Dif. 2)", + "id": 88870409, + "difficulty": 2, + "tags": [ + "venomous_spire", + "no_obelisks" + ] + }, + { + "name": "Venemous Spire - Pineapple (Dif. 3)", + "id": 88870410, + "difficulty": 3, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire - Half Barrel of Gold 1 (Dif. 3)", + "id": 88870411, + "difficulty": 3, + "tags": [ + "venomous_spire", + "no_obelisks" + ] + }, + { + "name": "Venemous Spire - Death 2 (Dif. 2)", + "id": 88870412, + "difficulty": 2, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire - Key 3 (Dif. 3)", + "id": 88870413, + "difficulty": 3, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire - Key 4 (Dif. 2)", + "id": 88870414, + "difficulty": 2, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire - Phoenix Familiar (Dif. 4)", + "id": 88870415, + "difficulty": 4, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire - Key 5", + "id": 88870416, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Speed Boots 1", + "id": 8887130, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Potion 1", + "id": 8887131, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Poison Fruit 1 (Dif. 2)", + "id": 8887132, + "difficulty": 2, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Poison Fruit 2", + "id": 8887133, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Key 1 (Dif. 3)", + "id": 8887134, + "difficulty": 3, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Meat 1 (Dif. 3)", + "id": 8887135, + "difficulty": 3, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Key 2", + "id": 8887136, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Scroll 1", + "id": 8887137, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Scroll 1", + "id": 8887138, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Scroll 2", + "id": 8887139, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Scroll 3", + "id": 88871310, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Scroll 4", + "id": 88871311, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Key 3", + "id": 88871312, + "difficulty": 1, + "tags": [ + "venomous_spire", + "no_obelisks" + ] + }, + { + "name": "Venemous Spire Barrel - Key 4 (Dif. 3)", + "id": 88871313, + "difficulty": 3, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Key 5", + "id": 88871314, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Scroll 5", + "id": 88871315, + "difficulty": 1, + "tags": [ + "venomous_spire", + "no_obelisks" + ] + }, + { + "name": "Venemous Spire Barrel - Key 6 (Dif. 4)", + "id": 88871316, + "difficulty": 4, + "tags": [ + "venomous_spire", + "no_obelisks" + ] + }, + { + "name": "Venemous Spire Barrel - Key 7", + "id": 88871317, + "difficulty": 1, + "tags": [ + "venomous_spire", + "no_obelisks" + ] + }, + { + "name": "Venemous Spire Barrel - Key 8 (Dif. 4)", + "id": 88871318, + "difficulty": 4, + "tags": [ + "venomous_spire", + "no_obelisks" + ] + }, + { + "name": "Venemous Spire Barrel - Key 9", + "id": 88871319, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Key 10", + "id": 88871320, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Acid Breath 1 (Dif. 2)", + "id": 88871321, + "difficulty": 2, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Key 11 (Dif. 2)", + "id": 88871322, + "difficulty": 2, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Speed Boots 1", + "id": 88871323, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Key 12", + "id": 88871324, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Gold 1 (Dif. 2)", + "id": 88871325, + "difficulty": 2, + "tags": [ + "venomous_spire", + "no_obelisks" + ] + }, + { + "name": "Venemous Spire Barrel - Gold 2", + "id": 88871326, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Meat 1 (Dif. 2)", + "id": 88871327, + "difficulty": 2, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Potion 1", + "id": 88871328, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Dark Chest - Random 1", + "id": 88871329, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Fruit 1", + "id": 88871330, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Meat 2", + "id": 88871331, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Death 1", + "id": 88871332, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Key 13", + "id": 88871333, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Fruit 2 (Dif. 4)", + "id": 88871334, + "difficulty": 4, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Gold 3 (Dif. 3)", + "id": 88871335, + "difficulty": 3, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Key 14", + "id": 88871336, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Death 1 (Dif. 3)", + "id": 88871337, + "difficulty": 3, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Potion 2 (Dif. 3)", + "id": 88871338, + "difficulty": 3, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Death 2", + "id": 88871339, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Fruit 3 (Dif. 2)", + "id": 88871340, + "difficulty": 2, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Gold 1 (Dif. 3)", + "id": 88871341, + "difficulty": 3, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Speed Boots 2 (Dif. 3)", + "id": 88871342, + "difficulty": 3, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Gold 2 (Dif. 4)", + "id": 88871343, + "difficulty": 4, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Gold 3 (Dif. 4)", + "id": 88871344, + "difficulty": 4, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Gold 4 (Dif. 2)", + "id": 88871345, + "difficulty": 2, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Reflective Shield 1", + "id": 88871346, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Death 2 (Dif. 2)", + "id": 88871347, + "difficulty": 2, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Nothing 1", + "id": 88871348, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Nothing 2", + "id": 88871349, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Nothing 3", + "id": 88871350, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Key 15", + "id": 88871351, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Gold 5", + "id": 88871352, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Fire Shield 1", + "id": 88871353, + "difficulty": 1, + "tags": [ + "venomous_spire", + "no_obelisks" + ] + }, + { + "name": "Venemous Spire Barrel - Key 16", + "id": 88871354, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Nothing 4", + "id": 88871355, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Meat 2 (Dif. 4)", + "id": 88871356, + "difficulty": 4, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Key 17 (Dif. 4)", + "id": 88871357, + "difficulty": 4, + "tags": [ + "venomous_spire", + "no_obelisks" + ] + }, + { + "name": "Venemous Spire Barrel - Death 3 (Dif. 4)", + "id": 88871358, + "difficulty": 4, + "tags": [ + "venomous_spire", + "no_obelisks" + ] + }, + { + "name": "Venemous Spire Chest - Potion 3 (Dif. 4)", + "id": 88871359, + "difficulty": 4, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Gold 4", + "id": 88871360, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Key 18", + "id": 88871361, + "difficulty": 1, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Chest - Gold 5 (Dif. 2)", + "id": 88871362, + "difficulty": 2, + "tags": [ + "venomous_spire" + ] + }, + { + "name": "Venemous Spire Barrel - Key 19", + "id": 88871363, + "difficulty": 1, + "tags": [ + "venomous_spire", + "no_obelisks" + ] + }, + { + "name": "Toxic Air Ship - Acid Breath", + "id": 88870417, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship - Scroll", + "id": 88870418, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship - Key 1", + "id": 88870419, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship - Runestone", + "id": 88870420, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship - Phoenix Familiar", + "id": 88870421, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship - Key 2", + "id": 88870422, + "difficulty": 1, + "tags": [ + "toxic_air_ship", + "no_obelisks" + ] + }, + { + "name": "Toxic Air Ship - Key 3 (Dif. 2)", + "id": 88870423, + "difficulty": 2, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship - Key 4 (Dif. 4)", + "id": 88870424, + "difficulty": 4, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship - Key 5 (Dif. 2)", + "id": 88870425, + "difficulty": 2, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship - Key 6", + "id": 88870426, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship - Poison Fruit 1 (Dif. 2)", + "id": 88870427, + "difficulty": 2, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship - Death (Dif. 2)", + "id": 88870428, + "difficulty": 2, + "tags": [ + "toxic_air_ship", + "no_obelisks" + ] + }, + { + "name": "Toxic Air Ship - Bananas (Dif. 4)", + "id": 88870429, + "difficulty": 4, + "tags": [ + "toxic_air_ship", + "no_obelisks" + ] + }, + { + "name": "Toxic Air Ship - Key 7", + "id": 88870430, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship - Key 8 (Dif. 2)", + "id": 88870431, + "difficulty": 2, + "tags": [ + "toxic_air_ship", + "no_obelisks" + ] + }, + { + "name": "Toxic Air Ship - Key 9 (Dif. 3)", + "id": 88870432, + "difficulty": 3, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship - Poison Fruit 2 (Dif. 3)", + "id": 88870433, + "difficulty": 3, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship - Key 10", + "id": 88870434, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship - Fire Shield (Dif. 2)", + "id": 88870435, + "difficulty": 2, + "tags": [ + "toxic_air_ship", + "no_obelisks" + ] + }, + { + "name": "Toxic Air Ship Barrel - Key 1 (Dif. 4)", + "id": 8887140, + "difficulty": 4, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Key 2 (Dif. 3)", + "id": 8887141, + "difficulty": 3, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Chest - Meat 1 (Dif. 4)", + "id": 8887142, + "difficulty": 4, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Potion 1", + "id": 8887143, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Chest - Meat 2 (Dif. 2)", + "id": 8887144, + "difficulty": 2, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Scroll 1", + "id": 8887145, + "difficulty": 1, + "tags": [ + "toxic_air_ship", + "no_obelisks" + ] + }, + { + "name": "Toxic Air Ship Chest - Poison Fruit 1", + "id": 8887146, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Fruit 1", + "id": 8887147, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Key 3 (Dif. 2)", + "id": 8887148, + "difficulty": 2, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Chest - Growth 1 (Dif. 4)", + "id": 8887149, + "difficulty": 4, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Dark Chest - Random 1 (Dif. 2)", + "id": 88871410, + "difficulty": 2, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Chest - Scroll 1", + "id": 88871411, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Chest - Acid Amulet 1 (Dif. 2)", + "id": 88871412, + "difficulty": 2, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Chest - Gold 1 (Dif. 3)", + "id": 88871413, + "difficulty": 3, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Chest - Meat 3", + "id": 88871414, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Chest - Potion 1 (Dif. 3)", + "id": 88871415, + "difficulty": 3, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Key 4", + "id": 88871416, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Death 1 (Dif. 3)", + "id": 88871417, + "difficulty": 3, + "tags": [ + "toxic_air_ship", + "no_obelisks" + ] + }, + { + "name": "Toxic Air Ship Chest - Gold 2 (Dif. 2)", + "id": 88871418, + "difficulty": 2, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Chest - 3-Way Shot 1", + "id": 88871419, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Death 2 (Dif. 4)", + "id": 88871420, + "difficulty": 4, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Key 5", + "id": 88871421, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Gold 1 (Dif. 4)", + "id": 88871422, + "difficulty": 4, + "tags": [ + "toxic_air_ship", + "no_obelisks" + ] + }, + { + "name": "Toxic Air Ship Barrel - Nothing 1", + "id": 88871423, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Potion 2 (Dif. 2)", + "id": 88871424, + "difficulty": 2, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Key 6", + "id": 88871425, + "difficulty": 1, + "tags": [ + "toxic_air_ship", + "no_obelisks" + ] + }, + { + "name": "Toxic Air Ship Barrel - Key 7", + "id": 88871426, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Death 3", + "id": 88871427, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Nothing 2", + "id": 88871428, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Key 8", + "id": 88871429, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Gold 2 (Dif. 2)", + "id": 88871430, + "difficulty": 2, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Key 9 (Dif. 3)", + "id": 88871431, + "difficulty": 3, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Acid Breath 1 (Dif. 3)", + "id": 88871432, + "difficulty": 3, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Chest - Gold 3 (Dif. 4)", + "id": 88871433, + "difficulty": 4, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Chest - Gold 4 (Dif. 3)", + "id": 88871434, + "difficulty": 3, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Chest - Death 1", + "id": 88871435, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Gold 3", + "id": 88871436, + "difficulty": 1, + "tags": [ + "toxic_air_ship", + "no_obelisks" + ] + }, + { + "name": "Toxic Air Ship Barrel - Key 10 (Dif. 2)", + "id": 88871437, + "difficulty": 2, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Key 11 (Dif. 4)", + "id": 88871438, + "difficulty": 4, + "tags": [ + "toxic_air_ship", + "no_obelisks" + ] + }, + { + "name": "Toxic Air Ship Chest - Poison Fruit 2 (Dif. 2)", + "id": 88871439, + "difficulty": 2, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Chest - Gold 5", + "id": 88871440, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Scroll 2", + "id": 88871441, + "difficulty": 1, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Meat 1 (Dif. 3)", + "id": 88871442, + "difficulty": 3, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Toxic Air Ship Barrel - Potion 3 (Dif. 4)", + "id": 88871443, + "difficulty": 4, + "tags": [ + "toxic_air_ship" + ] + }, + { + "name": "Vat of the Plague Fiend - Plague Fiend Mirror Shard", + "id": 88870609, + "difficulty": 1, + "tags": [ + "plague_fiend", + "no_obelisks", + "skipped_local", + "no_spawner" + ] + }, + { + "name": "Arctic Docks - Light Potion 1", + "id": 88870436, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Scroll", + "id": 88870437, + "difficulty": 1, + "tags": [ + "arctic_docks", + "no_obelisks" + ] + }, + { + "name": "Arctic Docks - Light Potion 2 (Dif. 2)", + "id": 88870438, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Small Pile of Gold (Dif. 2)", + "id": 88870439, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Fire Shield", + "id": 88870440, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Key 1", + "id": 88870441, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Meat", + "id": 88870442, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Light Potion 3 (Dif. 2)", + "id": 88870443, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Runestone", + "id": 88870444, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Key 2", + "id": 88870445, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Key 3 (Dif. 3)", + "id": 88870446, + "difficulty": 3, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Key 4", + "id": 88870447, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Key 5 (Dif. 2)", + "id": 88870448, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Key 6", + "id": 88870449, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Key 7", + "id": 88870450, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Key 8", + "id": 88870451, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Key 9", + "id": 88870452, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Key 10", + "id": 88870453, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Key 11", + "id": 88870454, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Key 12", + "id": 88870455, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Key 13 (Dif. 2)", + "id": 88870456, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Key 14 (Dif. 4)", + "id": 88870457, + "difficulty": 4, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Key 15", + "id": 88870458, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Key 16", + "id": 88870459, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Key 17", + "id": 88870460, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks - Speed Boots", + "id": 88870461, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Key 1", + "id": 8887160, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Phoenix Familiar 1", + "id": 8887161, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Fruit 1 (Dif. 2)", + "id": 8887162, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Potion 1 (Dif. 3)", + "id": 8887163, + "difficulty": 3, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Meat 1 (Dif. 3)", + "id": 8887164, + "difficulty": 3, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Fruit 2 (Dif. 2)", + "id": 8887165, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Fruit 3", + "id": 8887166, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Fruit 4 (Dif. 3)", + "id": 8887167, + "difficulty": 3, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Lightning Breath 1 (Dif. 2)", + "id": 8887168, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Fruit 5 (Dif. 4)", + "id": 8887169, + "difficulty": 4, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Meat 2 (Dif. 3)", + "id": 88871610, + "difficulty": 3, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Fruit 6 (Dif. 2)", + "id": 88871611, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Fruit 7", + "id": 88871612, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Meat 3", + "id": 88871613, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Key 2", + "id": 88871614, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Key 3", + "id": 88871615, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Key 4 (Dif. 2)", + "id": 88871616, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Key 5", + "id": 88871617, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Scroll 1", + "id": 88871618, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Key 6", + "id": 88871619, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Nothing 1", + "id": 88871620, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Rapid Fire 1 (Dif. 4)", + "id": 88871621, + "difficulty": 4, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Chest - Meat 1", + "id": 88871622, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Chest - Gold 1 (Dif. 2)", + "id": 88871623, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Chest - Acid Amulet 1 (Dif. 4)", + "id": 88871624, + "difficulty": 4, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Fruit 8", + "id": 88871625, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Death 1 (Dif. 2)", + "id": 88871626, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Key 7 (Dif. 4)", + "id": 88871627, + "difficulty": 4, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Key 8 (Dif. 2)", + "id": 88871628, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Potion 2 (Dif. 4)", + "id": 88871629, + "difficulty": 4, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Scroll 2", + "id": 88871630, + "difficulty": 1, + "tags": [ + "arctic_docks", + "no_obelisks" + ] + }, + { + "name": "Arctic Docks Barrel - Meat 4 (Dif. 4)", + "id": 88871631, + "difficulty": 4, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Nothing 2", + "id": 88871632, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Gold 1 (Dif. 4)", + "id": 88871633, + "difficulty": 4, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Chest - Phoenix Familiar 1 (Dif. 3)", + "id": 88871634, + "difficulty": 3, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Key 9 (Dif. 3)", + "id": 88871635, + "difficulty": 3, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Key 10", + "id": 88871636, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Death 2 (Dif. 3)", + "id": 88871637, + "difficulty": 3, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Nothing 3", + "id": 88871638, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Nothing 4", + "id": 88871639, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Nothing 5", + "id": 88871640, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Nothing 6", + "id": 88871641, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Key 11 (Dif. 2)", + "id": 88871642, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Chest - Reflective Shield 1 (Dif. 2)", + "id": 88871643, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Fruit 9 (Dif. 4)", + "id": 88871644, + "difficulty": 4, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Chest - Gold 2", + "id": 88871645, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Scroll 3", + "id": 88871646, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Fruit 10 (Dif. 3)", + "id": 88871647, + "difficulty": 3, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Gold 2 (Dif. 3)", + "id": 88871648, + "difficulty": 3, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Chest - Invisibility 1", + "id": 88871649, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Chest - Potion 1", + "id": 88871650, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Chest - Light Amulet 1 (Dif. 2)", + "id": 88871651, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Chest - Speed Boots 1 (Dif. 3)", + "id": 88871652, + "difficulty": 3, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Chest - Thunder Hammer 1 (Dif. 2)", + "id": 88871653, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Chest - 3-Way Shot 1", + "id": 88871654, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Chest - Rapid Fire 1", + "id": 88871655, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Gold 3", + "id": 88871656, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Key 12", + "id": 88871657, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Chest - Death 1", + "id": 88871658, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Nothing 7", + "id": 88871659, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Nothing 8", + "id": 88871660, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Scroll 4", + "id": 88871661, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Gold 4 (Dif. 2)", + "id": 88871662, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Barrel - Key 13", + "id": 88871663, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Chest - Death 2", + "id": 88871664, + "difficulty": 1, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Chest - Meat 2 (Dif. 2)", + "id": 88871665, + "difficulty": 2, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Arctic Docks Chest - Meat 3 (Dif. 4)", + "id": 88871666, + "difficulty": 4, + "tags": [ + "arctic_docks" + ] + }, + { + "name": "Frozen Camp - Light Potion 1", + "id": 88870462, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Full Barrel of Gold 1 (Dif. 4)", + "id": 88870463, + "difficulty": 4, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Half Barrel of Gold 1", + "id": 88870464, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Scroll", + "id": 88870465, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Light Potion 2 (Dif. 2)", + "id": 88870466, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Light Potion 3", + "id": 88870467, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Large Pile of Gold 1 (Dif. 2)", + "id": 88870468, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Half Barrel of Gold 2 (Dif. 3)", + "id": 88870469, + "difficulty": 3, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Small Pile of Gold 1", + "id": 88870470, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Key 1 (Dif. 4)", + "id": 88870471, + "difficulty": 4, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Lightning Breath (Dif. 3)", + "id": 88870472, + "difficulty": 3, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Levitate (Dif. 2)", + "id": 88870473, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Key 2", + "id": 88870474, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Key 3 (Dif. 3)", + "id": 88870475, + "difficulty": 3, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Speed Boots", + "id": 88870476, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Key 4 (Dif. 3)", + "id": 88870477, + "difficulty": 3, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Key 5", + "id": 88870478, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Bananas (Dif. 4)", + "id": 88870479, + "difficulty": 4, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Pineapple", + "id": 88870480, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Light Potion 4 (Dif. 4)", + "id": 88870481, + "difficulty": 4, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Key 6 (Dif. 2)", + "id": 88870482, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Fruit 1 (Dif. 2)", + "id": 88870483, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Very Small Pile of Gold 1 (Dif. 2)", + "id": 88870484, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Very Small Pile of Gold 2", + "id": 88870485, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Drumstick (Dif. 4)", + "id": 88870486, + "difficulty": 4, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Very Small Pile of Gold 3 (Dif. 2)", + "id": 88870487, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Small Pile of Gold 2 (Dif. 2)", + "id": 88870488, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Very Small Pile of Gold 4 (Dif. 2)", + "id": 88870489, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Large Pile of Gold 2 (Dif. 3)", + "id": 88870490, + "difficulty": 3, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Growth", + "id": 88870491, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Runestone", + "id": 88870492, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Fruit 2", + "id": 88870493, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Phoenix Familiar", + "id": 88870494, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Death", + "id": 88870495, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Key 7", + "id": 88870496, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp - Key 8 (Dif. 4)", + "id": 88870497, + "difficulty": 4, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Scroll 1", + "id": 8887170, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Meat 1", + "id": 8887171, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 1", + "id": 8887172, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 2 (Dif. 2)", + "id": 8887173, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 3", + "id": 8887174, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 4", + "id": 8887175, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 5 (Dif. 2)", + "id": 8887176, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Gold 1", + "id": 8887177, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 6", + "id": 8887178, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Meat 1 (Dif. 2)", + "id": 8887179, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Scroll 2", + "id": 88871710, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Nothing 1", + "id": 88871711, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Nothing 2", + "id": 88871712, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 7 (Dif. 2)", + "id": 88871713, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 8", + "id": 88871714, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Dark Chest - Random 1 (Dif. 2)", + "id": 88871715, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Death 1", + "id": 88871716, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 9 (Dif. 2)", + "id": 88871717, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 10", + "id": 88871718, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Rapid Fire 1 (Dif. 2)", + "id": 88871719, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Gold 2", + "id": 88871720, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 11 (Dif. 2)", + "id": 88871721, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 12", + "id": 88871722, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 13", + "id": 88871723, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 14", + "id": 88871724, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 15 (Dif. 3)", + "id": 88871725, + "difficulty": 3, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 16 (Dif. 2)", + "id": 88871726, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Gold 3 (Dif. 3)", + "id": 88871727, + "difficulty": 3, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Gold 4 (Dif. 2)", + "id": 88871728, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Gold 5 (Dif. 4)", + "id": 88871729, + "difficulty": 4, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Gold 6", + "id": 88871730, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Gold 7", + "id": 88871731, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 17", + "id": 88871732, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Super Shot 1", + "id": 88871733, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Invisibility 1 (Dif. 2)", + "id": 88871734, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Nothing 3", + "id": 88871735, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Gold 8", + "id": 88871736, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Meat 2 (Dif. 3)", + "id": 88871737, + "difficulty": 3, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Gold 1 (Dif. 3)", + "id": 88871738, + "difficulty": 3, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Scroll 1", + "id": 88871739, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - 3-Way Shot 1 (Dif. 3)", + "id": 88871740, + "difficulty": 3, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Fruit 1 (Dif. 3)", + "id": 88871741, + "difficulty": 3, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Shrink 1 (Dif. 2)", + "id": 88871742, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 18", + "id": 88871743, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Speed Boots 1 (Dif. 4)", + "id": 88871744, + "difficulty": 4, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - 5-Way Shot 1 (Dif. 4)", + "id": 88871745, + "difficulty": 4, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Fruit 2 (Dif. 4)", + "id": 88871746, + "difficulty": 4, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 19 (Dif. 4)", + "id": 88871747, + "difficulty": 4, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Nothing 4", + "id": 88871748, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Nothing 5", + "id": 88871749, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Growth 1 (Dif. 4)", + "id": 88871750, + "difficulty": 4, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Potion 1", + "id": 88871751, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Fruit 1 (Dif. 2)", + "id": 88871752, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Scroll 3", + "id": 88871753, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 20", + "id": 88871754, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Potion 2 (Dif. 3)", + "id": 88871755, + "difficulty": 3, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Gold 2 (Dif. 4)", + "id": 88871756, + "difficulty": 4, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 21 (Dif. 3)", + "id": 88871757, + "difficulty": 3, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Reflective Shield 1", + "id": 88871758, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Thunder Hammer 1 (Dif. 2)", + "id": 88871759, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Lightning Amulet 1", + "id": 88871760, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Meat 3 (Dif. 2)", + "id": 88871761, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Potion 3 (Dif. 2)", + "id": 88871762, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Scroll 4", + "id": 88871763, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 22 (Dif. 2)", + "id": 88871764, + "difficulty": 2, + "tags": [ + "frozen_camp", + "no_obelisks" + ] + }, + { + "name": "Frozen Camp Chest - Gold 9 (Dif. 4)", + "id": 88871765, + "difficulty": 4, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Nothing 6", + "id": 88871766, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Fruit 3 (Dif. 3)", + "id": 88871767, + "difficulty": 3, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Acid Amulet 1", + "id": 88871768, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Gold 3 (Dif. 3)", + "id": 88871769, + "difficulty": 3, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Key 23", + "id": 88871770, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Gold 10 (Dif. 2)", + "id": 88871771, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Meat 4", + "id": 88871772, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Potion 1 (Dif. 3)", + "id": 88871773, + "difficulty": 3, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Gold 11", + "id": 88871774, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Speed Boots 1 (Dif. 3)", + "id": 88871775, + "difficulty": 3, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Chest - Invulnerability 1", + "id": 88871776, + "difficulty": 1, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Frozen Camp Barrel - Death 1 (Dif. 2)", + "id": 88871777, + "difficulty": 2, + "tags": [ + "frozen_camp" + ] + }, + { + "name": "Crystal Mine - Rapid Fire", + "id": 88870498, + "difficulty": 1, + "tags": [ + "crystal_mine", + "no_obelisks" + ] + }, + { + "name": "Crystal Mine - Speed Boots", + "id": 88870499, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine - Key 1 (Dif. 2)", + "id": 88870500, + "difficulty": 2, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine - Key 2 (Dif. 4)", + "id": 88870501, + "difficulty": 4, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine - Key 3 (Dif. 3)", + "id": 88870502, + "difficulty": 3, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine - Lightning Breath", + "id": 88870503, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine - Key 4 (Dif. 2)", + "id": 88870504, + "difficulty": 2, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine - Key 5", + "id": 88870505, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine - Lightning Shield", + "id": 88870506, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine - Bananas", + "id": 88870507, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine - Key 6", + "id": 88870508, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine - Key 7", + "id": 88870509, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine - Runestone", + "id": 88870510, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine - Shrink (Dif. 3)", + "id": 88870511, + "difficulty": 3, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Reflective Shot 1 (Dif. 3)", + "id": 8887180, + "difficulty": 3, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Speed Boots 1 (Dif. 4)", + "id": 8887181, + "difficulty": 4, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Meat 1 (Dif. 2)", + "id": 8887182, + "difficulty": 2, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Meat 2", + "id": 8887183, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Meat 3 (Dif. 3)", + "id": 8887184, + "difficulty": 3, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Meat 4 (Dif. 2)", + "id": 8887185, + "difficulty": 2, + "tags": [ + "crystal_mine", + "no_obelisks" + ] + }, + { + "name": "Crystal Mine Barrel - Meat 5", + "id": 8887186, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Scroll 1", + "id": 8887187, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Growth 1 (Dif. 2)", + "id": 8887188, + "difficulty": 2, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Key 1", + "id": 8887189, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Key 2", + "id": 88871810, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Key 3 (Dif. 2)", + "id": 88871811, + "difficulty": 2, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Key 4 (Dif. 2)", + "id": 88871812, + "difficulty": 2, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Key 5 (Dif. 4)", + "id": 88871813, + "difficulty": 4, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Fruit 1", + "id": 88871814, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Gold 1 (Dif. 3)", + "id": 88871815, + "difficulty": 3, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Random 1 (Dif. 2)", + "id": 88871816, + "difficulty": 2, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Potion 1", + "id": 88871817, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Meat 1 (Dif. 4)", + "id": 88871818, + "difficulty": 4, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Gold 1 (Dif. 2)", + "id": 88871819, + "difficulty": 2, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Gold 2", + "id": 88871820, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Key 6", + "id": 88871821, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Gold 3 (Dif. 2)", + "id": 88871822, + "difficulty": 2, + "tags": [ + "crystal_mine", + "no_obelisks" + ] + }, + { + "name": "Crystal Mine Chest - Potion 1 (Dif. 4)", + "id": 88871823, + "difficulty": 4, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Gold 4", + "id": 88871824, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Gold 5", + "id": 88871825, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Fruit 1 (Dif. 2)", + "id": 88871826, + "difficulty": 2, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Key 7", + "id": 88871827, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Meat 2", + "id": 88871828, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Gold 2 (Dif. 2)", + "id": 88871829, + "difficulty": 2, + "tags": [ + "crystal_mine", + "no_obelisks" + ] + }, + { + "name": "Crystal Mine Barrel - Key 8", + "id": 88871830, + "difficulty": 1, + "tags": [ + "crystal_mine", + "no_obelisks" + ] + }, + { + "name": "Crystal Mine Barrel - Death 1 (Dif. 3)", + "id": 88871831, + "difficulty": 3, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Key 9 (Dif. 2)", + "id": 88871832, + "difficulty": 2, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Scroll 1", + "id": 88871833, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Nothing 1", + "id": 88871834, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Nothing 2", + "id": 88871835, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Potion 2 (Dif. 2)", + "id": 88871836, + "difficulty": 2, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Key 10", + "id": 88871837, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Gold 3 (Dif. 4)", + "id": 88871838, + "difficulty": 4, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Rapid Fire 1 (Dif. 2)", + "id": 88871839, + "difficulty": 2, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Key 11 (Dif. 3)", + "id": 88871840, + "difficulty": 3, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Key 12", + "id": 88871841, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Nothing 3", + "id": 88871842, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Nothing 4", + "id": 88871843, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Gold 6", + "id": 88871844, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Fruit 2 (Dif. 3)", + "id": 88871845, + "difficulty": 3, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Key 13 (Dif. 2)", + "id": 88871846, + "difficulty": 2, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Fruit 2", + "id": 88871847, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Gold 4 (Dif. 3)", + "id": 88871848, + "difficulty": 3, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Scroll 2", + "id": 88871849, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Gold 7 (Dif. 2)", + "id": 88871850, + "difficulty": 2, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Potion 3 (Dif. 3)", + "id": 88871851, + "difficulty": 3, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Fruit 3 (Dif. 2)", + "id": 88871852, + "difficulty": 2, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Gold 5 (Dif. 4)", + "id": 88871853, + "difficulty": 4, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Key 14", + "id": 88871854, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Potion 4", + "id": 88871855, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Key 15", + "id": 88871856, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - 3-Way Shot 1", + "id": 88871857, + "difficulty": 1, + "tags": [ + "crystal_mine", + "no_obelisks" + ] + }, + { + "name": "Crystal Mine Barrel - Scroll 2", + "id": 88871858, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Gold 8", + "id": 88871859, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Fire Amulet 1", + "id": 88871860, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Key 16", + "id": 88871861, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Chest - Scroll 3", + "id": 88871862, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Gold 6 (Dif. 3)", + "id": 88871863, + "difficulty": 3, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Death 2 (Dif. 2)", + "id": 88871864, + "difficulty": 2, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Key 17", + "id": 88871865, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Potion 5", + "id": 88871866, + "difficulty": 1, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Fruit 3 (Dif. 4)", + "id": 88871867, + "difficulty": 4, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Crystal Mine Barrel - Gold 7 (Dif. 2)", + "id": 88871868, + "difficulty": 2, + "tags": [ + "crystal_mine" + ] + }, + { + "name": "Erupting Fissure - Light Potion", + "id": 88870512, + "difficulty": 1, + "tags": [ + "erupting_fissure", + "no_obelisks" + ] + }, + { + "name": "Erupting Fissure - Growth", + "id": 88870513, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure - Reflective Shield", + "id": 88870514, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure - Key 1", + "id": 88870515, + "difficulty": 1, + "tags": [ + "erupting_fissure", + "no_obelisks" + ] + }, + { + "name": "Erupting Fissure - Key 2", + "id": 88870516, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure - 3-Way Shot", + "id": 88870517, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure - Key 3", + "id": 88870518, + "difficulty": 1, + "tags": [ + "erupting_fissure", + "no_obelisks" + ] + }, + { + "name": "Erupting Fissure - Key 4", + "id": 88870519, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure - Key 5", + "id": 88870520, + "difficulty": 1, + "tags": [ + "erupting_fissure", + "no_obelisks" + ] + }, + { + "name": "Erupting Fissure - Death", + "id": 88870521, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure - Key 6", + "id": 88870522, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure - Key 7 (Dif. 2)", + "id": 88870523, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure - Key 8", + "id": 88870524, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure - Marker's Javelin", + "id": 88870525, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure - Rapid Fire", + "id": 88870526, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure - Speed Boots (Dif. 4)", + "id": 88870527, + "difficulty": 4, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure - Key 9", + "id": 88870528, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure - Key 10 (Dif. 2)", + "id": 88870529, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Meat 1", + "id": 8887190, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Potion 1 (Dif. 4)", + "id": 8887191, + "difficulty": 4, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Thunder Hammer 1 (Dif. 2)", + "id": 8887192, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Fruit 1 (Dif. 4)", + "id": 8887193, + "difficulty": 4, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Scroll 1", + "id": 8887194, + "difficulty": 1, + "tags": [ + "erupting_fissure", + "no_obelisks" + ] + }, + { + "name": "Erupting Fissure Barrel - Meat 2 (Dif. 4)", + "id": 8887195, + "difficulty": 4, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Fruit 2", + "id": 8887196, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Meat 3 (Dif. 2)", + "id": 8887197, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Scroll 2", + "id": 8887198, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Scroll 3", + "id": 8887199, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Fruit 3", + "id": 88871910, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Meat 4 (Dif. 3)", + "id": 88871911, + "difficulty": 3, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Fruit 4 (Dif. 2)", + "id": 88871912, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Meat 5", + "id": 88871913, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Scroll 4", + "id": 88871914, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 1", + "id": 88871915, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 2 (Dif. 2)", + "id": 88871916, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 3 (Dif. 2)", + "id": 88871917, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Dark Chest - Random 1 (Dif. 2)", + "id": 88871918, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Nothing 1", + "id": 88871919, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Nothing 2", + "id": 88871920, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Nothing 3", + "id": 88871921, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Nothing 4", + "id": 88871922, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Fruit 5 (Dif. 3)", + "id": 88871923, + "difficulty": 3, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Acid Amulet 1 (Dif. 4)", + "id": 88871924, + "difficulty": 4, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Nothing 5", + "id": 88871925, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Nothing 6", + "id": 88871926, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Gold 1 (Dif. 2)", + "id": 88871927, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 4 (Dif. 3)", + "id": 88871928, + "difficulty": 3, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 5", + "id": 88871929, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Fire Breath 1 (Dif. 3)", + "id": 88871930, + "difficulty": 3, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 6", + "id": 88871931, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Potion 1 (Dif. 3)", + "id": 88871932, + "difficulty": 3, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 7 (Dif. 3)", + "id": 88871933, + "difficulty": 3, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 8 (Dif. 4)", + "id": 88871934, + "difficulty": 4, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 9 (Dif. 3)", + "id": 88871935, + "difficulty": 3, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Fruit 6 (Dif. 2)", + "id": 88871936, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Death 1", + "id": 88871937, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Gold 2 (Dif. 3)", + "id": 88871938, + "difficulty": 3, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Meat 1 (Dif. 2)", + "id": 88871939, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 10 (Dif. 3)", + "id": 88871940, + "difficulty": 3, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 11 (Dif. 2)", + "id": 88871941, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 12", + "id": 88871942, + "difficulty": 1, + "tags": [ + "erupting_fissure", + "no_obelisks" + ] + }, + { + "name": "Erupting Fissure Chest - Gold 3", + "id": 88871943, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 13", + "id": 88871944, + "difficulty": 1, + "tags": [ + "erupting_fissure", + "no_obelisks" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 14", + "id": 88871945, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 15", + "id": 88871946, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 16", + "id": 88871947, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Death 2 (Dif. 3)", + "id": 88871948, + "difficulty": 3, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 17 (Dif. 3)", + "id": 88871949, + "difficulty": 3, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 18 (Dif. 2)", + "id": 88871950, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 19", + "id": 88871951, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 20 (Dif. 2)", + "id": 88871952, + "difficulty": 2, + "tags": [ + "erupting_fissure", + "no_obelisks" + ] + }, + { + "name": "Erupting Fissure Chest - Gold 4 (Dif. 2)", + "id": 88871953, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Scroll 5", + "id": 88871954, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Potion 2", + "id": 88871955, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Light Amulet 1 (Dif. 2)", + "id": 88871956, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Gold 1 (Dif. 4)", + "id": 88871957, + "difficulty": 4, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 21 (Dif. 2)", + "id": 88871958, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Fruit 7 (Dif. 4)", + "id": 88871959, + "difficulty": 4, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Fruit 8 (Dif. 3)", + "id": 88871960, + "difficulty": 3, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Gold 2", + "id": 88871961, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Key 22", + "id": 88871962, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Gold 3 (Dif. 3)", + "id": 88871963, + "difficulty": 3, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Gold 5", + "id": 88871964, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Potion 3 (Dif. 2)", + "id": 88871965, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Dark Chest - Random 2 (Dif. 3)", + "id": 88871966, + "difficulty": 3, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Invulnerability 1 (Dif. 2)", + "id": 88871967, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Invisibility 1", + "id": 88871968, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Fruit 1", + "id": 88871969, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Gold 6 (Dif. 4)", + "id": 88871970, + "difficulty": 4, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Gold 7", + "id": 88871971, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Super Shot 1 (Dif. 3)", + "id": 88871972, + "difficulty": 3, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Timestop 1", + "id": 88871973, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Potion 2", + "id": 88871974, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Barrel - Death 3 (Dif. 2)", + "id": 88871975, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Levitate 1", + "id": 88871976, + "difficulty": 1, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Erupting Fissure Chest - Gold 8 (Dif. 2)", + "id": 88871977, + "difficulty": 2, + "tags": [ + "erupting_fissure" + ] + }, + { + "name": "Yeti's Cavern - Yeti Mirror Shard", + "id": 88870610, + "difficulty": 1, + "tags": [ + "yeti", + "no_obelisks", + "skipped_local", + "no_spawner" + ] + }, + { + "name": "Desecrated Temple - Death 1", + "id": 88870530, + "difficulty": 1, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple - Death 2 (Dif. 2)", + "id": 88870531, + "difficulty": 2, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple - Speed Boots", + "id": 88870532, + "difficulty": 1, + "tags": [ + "desecrated_temple", + "no_obelisks" + ] + }, + { + "name": "Desecrated Temple - Reflective Shot", + "id": 88870533, + "difficulty": 1, + "tags": [ + "desecrated_temple", + "no_obelisks" + ] + }, + { + "name": "Desecrated Temple - Fire Amulet", + "id": 88870534, + "difficulty": 1, + "tags": [ + "desecrated_temple", + "no_obelisks" + ] + }, + { + "name": "Desecrated Temple - 3-Way Shot", + "id": 88870535, + "difficulty": 1, + "tags": [ + "desecrated_temple", + "no_obelisks" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 1 (Dif. 2)", + "id": 8887200, + "difficulty": 2, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 2 (Dif. 2)", + "id": 8887201, + "difficulty": 2, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 3 (Dif. 2)", + "id": 8887202, + "difficulty": 2, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 4 (Dif. 3)", + "id": 8887203, + "difficulty": 3, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 5 (Dif. 4)", + "id": 8887204, + "difficulty": 4, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 6", + "id": 8887205, + "difficulty": 1, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 7 (Dif. 2)", + "id": 8887206, + "difficulty": 2, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 8 (Dif. 2)", + "id": 8887207, + "difficulty": 2, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 9", + "id": 8887208, + "difficulty": 1, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 10", + "id": 8887209, + "difficulty": 1, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 11 (Dif. 3)", + "id": 88872010, + "difficulty": 3, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 12 (Dif. 2)", + "id": 88872011, + "difficulty": 2, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 13 (Dif. 4)", + "id": 88872012, + "difficulty": 4, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 14", + "id": 88872013, + "difficulty": 1, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 15 (Dif. 4)", + "id": 88872014, + "difficulty": 4, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Dark Chest - Random 1 (Dif. 3)", + "id": 88872015, + "difficulty": 3, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Dark Chest - Random 2 (Dif. 2)", + "id": 88872016, + "difficulty": 2, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 16 (Dif. 4)", + "id": 88872017, + "difficulty": 4, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 17", + "id": 88872018, + "difficulty": 1, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 18 (Dif. 2)", + "id": 88872019, + "difficulty": 2, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 19 (Dif. 3)", + "id": 88872020, + "difficulty": 3, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 20 (Dif. 3)", + "id": 88872021, + "difficulty": 3, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 21", + "id": 88872022, + "difficulty": 1, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 22", + "id": 88872023, + "difficulty": 1, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 23 (Dif. 4)", + "id": 88872024, + "difficulty": 4, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 24", + "id": 88872025, + "difficulty": 1, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 25", + "id": 88872026, + "difficulty": 1, + "tags": [ + "desecrated_temple", + "no_obelisks" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 26", + "id": 88872027, + "difficulty": 1, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 27", + "id": 88872028, + "difficulty": 1, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 28", + "id": 88872029, + "difficulty": 1, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Gold 29", + "id": 88872030, + "difficulty": 1, + "tags": [ + "desecrated_temple" + ] + }, + { + "name": "Desecrated Temple Chest - Levitate 1 (Dif. 2)", + "id": 88872031, + "difficulty": 2, + "tags": [ + "desecrated_temple", + "no_obelisks" + ] + }, + { + "name": "Desecrated Temple Chest - Phoenix Familiar 1 (Dif. 3)", + "id": 88872032, + "difficulty": 3, + "tags": [ + "desecrated_temple", + "no_obelisks" + ] + }, + { + "name": "Altar of Skorne - Skorne's Mask", + "id": 88872033, + "difficulty": 1, + "tags": [ + "altar_of_skorne", + "no_obelisks" + ] + }, + { + "name": "Altar of Skorne - Skorne's Horns", + "id": 88872034, + "difficulty": 1, + "tags": [ + "altar_of_skorne", + "no_obelisks" + ] + }, + { + "name": "Altar of Skorne - Skorne's Left Gauntlet", + "id": 88872035, + "difficulty": 1, + "tags": [ + "altar_of_skorne", + "no_obelisks" + ] + }, + { + "name": "Altar of Skorne - Skorne's Right Gauntlet", + "id": 88872036, + "difficulty": 1, + "tags": [ + "altar_of_skorne", + "no_obelisks" + ] + }, + { + "name": "Battle Trenches - Fire Potion 1", + "id": 88870536, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches - Light Potion", + "id": 88870537, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches - Scroll 1", + "id": 88870538, + "difficulty": 1, + "tags": [ + "battle_trenches", + "no_obelisks" + ] + }, + { + "name": "Battle Trenches - Fruit 1 (Dif. 2)", + "id": 88870539, + "difficulty": 2, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches - Key 1 (Dif. 3)", + "id": 88870540, + "difficulty": 3, + "tags": [ + "battle_trenches", + "no_obelisks" + ] + }, + { + "name": "Battle Trenches - Invisibility (Dif. 2)", + "id": 88870541, + "difficulty": 2, + "tags": [ + "battle_trenches", + "no_obelisks" + ] + }, + { + "name": "Battle Trenches - Speed Boots (Dif. 3)", + "id": 88870542, + "difficulty": 3, + "tags": [ + "battle_trenches", + "no_obelisks" + ] + }, + { + "name": "Battle Trenches - Key 2", + "id": 88870543, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches - Key 3", + "id": 88870544, + "difficulty": 1, + "tags": [ + "battle_trenches", + "no_obelisks" + ] + }, + { + "name": "Battle Trenches - Fruit 2", + "id": 88870545, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches - Anti-Death Halo", + "id": 88870546, + "difficulty": 1, + "tags": [ + "battle_trenches", + "no_obelisks" + ] + }, + { + "name": "Battle Trenches - Scroll 2", + "id": 88870547, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches - Key 4", + "id": 88870548, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches - Death (Dif. 2)", + "id": 88870549, + "difficulty": 2, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches - Bananas (Dif. 4)", + "id": 88870550, + "difficulty": 4, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches - Fruit 3", + "id": 88870551, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches - Key 5 (Dif. 3)", + "id": 88870552, + "difficulty": 3, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches - Key 6 (Dif. 2)", + "id": 88870553, + "difficulty": 2, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches - Fire Potion 2", + "id": 88870554, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches - Shrink", + "id": 88870555, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches - Fire Amulet", + "id": 88870556, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches - 3-Way Shot (Dif. 2)", + "id": 88870557, + "difficulty": 2, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches - Rapid Fire (Dif. 2)", + "id": 88870558, + "difficulty": 2, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches - Reflective Shot", + "id": 88870559, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - 3-Way Shot 1", + "id": 8887210, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Potion 1 (Dif. 4)", + "id": 8887211, + "difficulty": 4, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Reflective Shot 1 (Dif. 4)", + "id": 8887212, + "difficulty": 4, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Levitate 1", + "id": 8887213, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Scroll 1", + "id": 8887214, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Gold 1 (Dif. 4)", + "id": 8887215, + "difficulty": 4, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Scroll 2", + "id": 8887216, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Scroll 3", + "id": 8887217, + "difficulty": 1, + "tags": [ + "battle_trenches", + "no_obelisks" + ] + }, + { + "name": "Battle Trenches Barrel - Key 1 (Dif. 3)", + "id": 8887218, + "difficulty": 3, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 2", + "id": 8887219, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 3", + "id": 88872110, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 4", + "id": 88872111, + "difficulty": 1, + "tags": [ + "battle_trenches", + "no_obelisks" + ] + }, + { + "name": "Battle Trenches Barrel - Key 5", + "id": 88872112, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Death 1", + "id": 88872113, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Gold 2", + "id": 88872114, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Fruit 1 (Dif. 3)", + "id": 88872115, + "difficulty": 3, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 6", + "id": 88872116, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Gold 3", + "id": 88872117, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Death 2 (Dif. 4)", + "id": 88872118, + "difficulty": 4, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 7 (Dif. 3)", + "id": 88872119, + "difficulty": 3, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 8 (Dif. 2)", + "id": 88872120, + "difficulty": 2, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Death 3 (Dif. 2)", + "id": 88872121, + "difficulty": 2, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Chest - Potion 1 (Dif. 2)", + "id": 88872122, + "difficulty": 2, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Chest - Gold 1 (Dif. 3)", + "id": 88872123, + "difficulty": 3, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Chest - Meat 1", + "id": 88872124, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Chest - Fire Breath 1 (Dif. 2)", + "id": 88872125, + "difficulty": 2, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 9 (Dif. 2)", + "id": 88872126, + "difficulty": 2, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Gold 4 (Dif. 2)", + "id": 88872127, + "difficulty": 2, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 10 (Dif. 2)", + "id": 88872128, + "difficulty": 2, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 11", + "id": 88872129, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 12 (Dif. 2)", + "id": 88872130, + "difficulty": 2, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Chest - Potion 2", + "id": 88872131, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Gold 5 (Dif. 3)", + "id": 88872132, + "difficulty": 3, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 13", + "id": 88872133, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Chest - Meat 2 (Dif. 2)", + "id": 88872134, + "difficulty": 2, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Thunder Hammer 1", + "id": 88872135, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Chest - Gold 2", + "id": 88872136, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 14", + "id": 88872137, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 15 (Dif. 2)", + "id": 88872138, + "difficulty": 2, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Chest - Meat 3", + "id": 88872139, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 16 (Dif. 3)", + "id": 88872140, + "difficulty": 3, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Death 4 (Dif. 3)", + "id": 88872141, + "difficulty": 3, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Meat 1 (Dif. 4)", + "id": 88872142, + "difficulty": 4, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 17", + "id": 88872143, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Gold 6 (Dif. 2)", + "id": 88872144, + "difficulty": 2, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Chest - Phoenix Familiar 1", + "id": 88872145, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 18", + "id": 88872146, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Chest - Speed Boots 1 (Dif. 4)", + "id": 88872147, + "difficulty": 4, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Gold 7 (Dif. 2)", + "id": 88872148, + "difficulty": 2, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 19 (Dif. 4)", + "id": 88872149, + "difficulty": 4, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Chest - Potion 3 (Dif. 3)", + "id": 88872150, + "difficulty": 3, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Chest - Gold 3", + "id": 88872151, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 20", + "id": 88872152, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Barrel - Key 21", + "id": 88872153, + "difficulty": 1, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Chest - Fire Amulet 1 (Dif. 3)", + "id": 88872154, + "difficulty": 3, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Battle Trenches Chest - Meat 4 (Dif. 3)", + "id": 88872155, + "difficulty": 3, + "tags": [ + "battle_trenches" + ] + }, + { + "name": "Fortified Towers - Meat (Dif. 3)", + "id": 88870560, + "difficulty": 3, + "tags": [ + "fortified_towers", + "no_obelisks" + ] + }, + { + "name": "Fortified Towers - Key 1", + "id": 88870561, + "difficulty": 1, + "tags": [ + "fortified_towers", + "no_obelisks" + ] + }, + { + "name": "Fortified Towers - Large Pile of Gold (Dif. 3)", + "id": 88870562, + "difficulty": 3, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers - Small Pile of Gold (Dif. 2)", + "id": 88870563, + "difficulty": 2, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers - Reflective Shot (Dif. 2)", + "id": 88870564, + "difficulty": 2, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers - Key 2", + "id": 88870565, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers - Soul Savior", + "id": 88870566, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Fire Breath 1 (Dif. 4)", + "id": 8887220, + "difficulty": 4, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Scroll 1", + "id": 8887221, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Chest - Invulnerability 1", + "id": 8887222, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Thunder Hammer 1 (Dif. 2)", + "id": 8887223, + "difficulty": 2, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Reflective Shield 1", + "id": 8887224, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Potion 1 (Dif. 4)", + "id": 8887225, + "difficulty": 4, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Key 1 (Dif. 2)", + "id": 8887226, + "difficulty": 2, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Key 2 (Dif. 4)", + "id": 8887227, + "difficulty": 4, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Potion 2 (Dif. 2)", + "id": 8887228, + "difficulty": 2, + "tags": [ + "fortified_towers", + "no_obelisks" + ] + }, + { + "name": "Fortified Towers Dark Chest - Random 1 (Dif. 3)", + "id": 8887229, + "difficulty": 3, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Fruit 1", + "id": 88872210, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Scroll 2", + "id": 88872211, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Gold 1 (Dif. 4)", + "id": 88872212, + "difficulty": 4, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Scroll 3", + "id": 88872213, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Key 3", + "id": 88872214, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Key 4", + "id": 88872215, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Scroll 4", + "id": 88872216, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Key 5", + "id": 88872217, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Fruit 2 (Dif. 3)", + "id": 88872218, + "difficulty": 3, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Gold 2", + "id": 88872219, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Potion 3 (Dif. 3)", + "id": 88872220, + "difficulty": 3, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Key 6 (Dif. 3)", + "id": 88872221, + "difficulty": 3, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Meat 1 (Dif. 4)", + "id": 88872222, + "difficulty": 4, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Chest - Speed Boots 1 (Dif. 3)", + "id": 88872223, + "difficulty": 3, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Chest - Phoenix Familiar 1 (Dif. 2)", + "id": 88872224, + "difficulty": 2, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Chest - Fruit 1 (Dif. 4)", + "id": 88872225, + "difficulty": 4, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Chest - Gold 1", + "id": 88872226, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Meat 2", + "id": 88872227, + "difficulty": 1, + "tags": [ + "fortified_towers", + "no_obelisks" + ] + }, + { + "name": "Fortified Towers Barrel - 3-Way Shot 1 (Dif. 3)", + "id": 88872228, + "difficulty": 3, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Death 1 (Dif. 2)", + "id": 88872229, + "difficulty": 2, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Gold 3", + "id": 88872230, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Fruit 3 (Dif. 2)", + "id": 88872231, + "difficulty": 2, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Key 7 (Dif. 3)", + "id": 88872232, + "difficulty": 3, + "tags": [ + "fortified_towers", + "no_obelisks" + ] + }, + { + "name": "Fortified Towers Barrel - Gold 4 (Dif. 3)", + "id": 88872233, + "difficulty": 3, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Key 8", + "id": 88872234, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Nothing 1", + "id": 88872235, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Chest - Potion 1", + "id": 88872236, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Key 9 (Dif. 2)", + "id": 88872237, + "difficulty": 2, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Barrel - Rapid Fire 1", + "id": 88872238, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Chest - Fruit 2", + "id": 88872239, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Chest - Meat 1 (Dif. 2)", + "id": 88872240, + "difficulty": 2, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Chest - Meat 2", + "id": 88872241, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Fortified Towers Chest - Fire Breath 1", + "id": 88872242, + "difficulty": 1, + "tags": [ + "fortified_towers" + ] + }, + { + "name": "Infernal Fortress - Thunder Hammer", + "id": 88870567, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress - Key 1 (Dif. 2)", + "id": 88870568, + "difficulty": 2, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress - Runestone", + "id": 88870569, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress - Drumstick (Dif. 4)", + "id": 88870570, + "difficulty": 4, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress - Large Pile of Gold (Dif. 3)", + "id": 88870571, + "difficulty": 3, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress - Very Small Pile of Gold 1", + "id": 88870572, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress - Half Barrel of Gold 1 (Dif. 4)", + "id": 88870573, + "difficulty": 4, + "tags": [ + "infernal_fortress", + "no_obelisks" + ] + }, + { + "name": "Infernal Fortress - Light Potion", + "id": 88870574, + "difficulty": 1, + "tags": [ + "infernal_fortress", + "no_obelisks" + ] + }, + { + "name": "Infernal Fortress - Key 2 (Dif. 2)", + "id": 88870575, + "difficulty": 2, + "tags": [ + "infernal_fortress", + "no_obelisks" + ] + }, + { + "name": "Infernal Fortress - Death", + "id": 88870576, + "difficulty": 1, + "tags": [ + "infernal_fortress", + "no_obelisks" + ] + }, + { + "name": "Infernal Fortress - Fruit", + "id": 88870577, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress - Small Pile of Gold (Dif. 2)", + "id": 88870578, + "difficulty": 2, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress - Key 3", + "id": 88870579, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress - Key 4", + "id": 88870580, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress - Very Small Pile of Gold 2 (Dif. 2)", + "id": 88870581, + "difficulty": 2, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress - Potion Pile (Dif. 2)", + "id": 88870582, + "difficulty": 2, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress - Key 5", + "id": 88870583, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Key 1 (Dif. 4)", + "id": 8887230, + "difficulty": 4, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Chest - Potion 1 (Dif. 4)", + "id": 8887231, + "difficulty": 4, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Fruit 1 (Dif. 3)", + "id": 8887232, + "difficulty": 3, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Chest - Timestop 1", + "id": 8887233, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Poison Fruit 1", + "id": 8887234, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Meat 1 (Dif. 2)", + "id": 8887235, + "difficulty": 2, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Key 2", + "id": 8887236, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Chest - Fire Shield 1 (Dif. 3)", + "id": 8887237, + "difficulty": 3, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Scroll 1", + "id": 8887238, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Levitate 1", + "id": 8887239, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Scroll 2", + "id": 88872310, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Scroll 3", + "id": 88872311, + "difficulty": 1, + "tags": [ + "infernal_fortress", + "no_obelisks" + ] + }, + { + "name": "Infernal Fortress Barrel - Meat 2", + "id": 88872312, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Invisibility 1 (Dif. 2)", + "id": 88872313, + "difficulty": 2, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Dark Chest - Random 1", + "id": 88872314, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Key 3", + "id": 88872315, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Key 4", + "id": 88872316, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Key 5", + "id": 88872317, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Key 6 (Dif. 4)", + "id": 88872318, + "difficulty": 4, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Key 7 (Dif. 3)", + "id": 88872319, + "difficulty": 3, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Key 8 (Dif. 3)", + "id": 88872320, + "difficulty": 3, + "tags": [ + "infernal_fortress", + "no_obelisks" + ] + }, + { + "name": "Infernal Fortress Barrel - Key 9", + "id": 88872321, + "difficulty": 1, + "tags": [ + "infernal_fortress", + "no_obelisks" + ] + }, + { + "name": "Infernal Fortress Barrel - Key 10", + "id": 88872322, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Key 11", + "id": 88872323, + "difficulty": 1, + "tags": [ + "infernal_fortress", + "no_obelisks" + ] + }, + { + "name": "Infernal Fortress Barrel - Key 12", + "id": 88872324, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Key 13", + "id": 88872325, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Key 14 (Dif. 3)", + "id": 88872326, + "difficulty": 3, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Chest - Speed Boots 1 (Dif. 2)", + "id": 88872327, + "difficulty": 2, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Gold 1 (Dif. 3)", + "id": 88872328, + "difficulty": 3, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Fruit 2 (Dif. 4)", + "id": 88872329, + "difficulty": 4, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Key 15 (Dif. 2)", + "id": 88872330, + "difficulty": 2, + "tags": [ + "infernal_fortress", + "no_obelisks" + ] + }, + { + "name": "Infernal Fortress Chest - Gold 1 (Dif. 2)", + "id": 88872331, + "difficulty": 2, + "tags": [ + "infernal_fortress", + "no_obelisks" + ] + }, + { + "name": "Infernal Fortress Chest - Gold 2", + "id": 88872332, + "difficulty": 1, + "tags": [ + "infernal_fortress", + "no_obelisks" + ] + }, + { + "name": "Infernal Fortress Barrel - Fruit 3 (Dif. 2)", + "id": 88872333, + "difficulty": 2, + "tags": [ + "infernal_fortress", + "no_obelisks" + ] + }, + { + "name": "Infernal Fortress Chest - Light Amulet 1", + "id": 88872334, + "difficulty": 1, + "tags": [ + "infernal_fortress", + "no_obelisks" + ] + }, + { + "name": "Infernal Fortress Chest - Gold 3 (Dif. 4)", + "id": 88872335, + "difficulty": 4, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Chest - Gold 4 (Dif. 3)", + "id": 88872336, + "difficulty": 3, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Chest - Gold 5", + "id": 88872337, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Chest - Gold 6 (Dif. 2)", + "id": 88872338, + "difficulty": 2, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Chest - Gold 7 (Dif. 4)", + "id": 88872339, + "difficulty": 4, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Chest - Gold 8", + "id": 88872340, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Chest - Scroll 1", + "id": 88872341, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Key 16 (Dif. 4)", + "id": 88872342, + "difficulty": 4, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Death 1 (Dif. 3)", + "id": 88872343, + "difficulty": 3, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Gold 2", + "id": 88872344, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Reflective Shot 1 (Dif. 4)", + "id": 88872345, + "difficulty": 4, + "tags": [ + "infernal_fortress", + "no_obelisks" + ] + }, + { + "name": "Infernal Fortress Barrel - Gold 3 (Dif. 2)", + "id": 88872346, + "difficulty": 2, + "tags": [ + "infernal_fortress", + "no_obelisks" + ] + }, + { + "name": "Infernal Fortress Barrel - Fruit 4", + "id": 88872347, + "difficulty": 1, + "tags": [ + "infernal_fortress", + "no_obelisks" + ] + }, + { + "name": "Infernal Fortress Barrel - Potion 1 (Dif. 3)", + "id": 88872348, + "difficulty": 3, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Key 17", + "id": 88872349, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Death 2 (Dif. 2)", + "id": 88872350, + "difficulty": 2, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Barrel - Gold 4 (Dif. 3)", + "id": 88872351, + "difficulty": 3, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Chest - 3-Way Shot 1", + "id": 88872352, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Chest - Potion 2", + "id": 88872353, + "difficulty": 1, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Infernal Fortress Chest - Meat 1 (Dif. 3)", + "id": 88872354, + "difficulty": 3, + "tags": [ + "infernal_fortress" + ] + }, + { + "name": "Gates of the Underworld - Potion Pile", + "id": 88870584, + "difficulty": 1, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Rapid Fire (Dif. 3)", + "id": 88870585, + "difficulty": 3, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Reflective Shield (Dif. 2)", + "id": 88870586, + "difficulty": 2, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Reflective Shot (Dif. 2)", + "id": 88870587, + "difficulty": 2, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Lightning Shield (Dif. 2)", + "id": 88870588, + "difficulty": 2, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Fire Shield (Dif. 3)", + "id": 88870589, + "difficulty": 3, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Acid Amulet (Dif. 4)", + "id": 88870590, + "difficulty": 4, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Light Amulet (Dif. 3)", + "id": 88870591, + "difficulty": 3, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Lightning Amulet (Dif. 2)", + "id": 88870592, + "difficulty": 2, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Fire Amulet", + "id": 88870593, + "difficulty": 1, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Growth", + "id": 88870594, + "difficulty": 1, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Fire Breath", + "id": 88870595, + "difficulty": 1, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Phoenix Familiar (Dif. 2)", + "id": 88870596, + "difficulty": 2, + "tags": [ + "gates_of_the_underworld", + "no_obelisks" + ] + }, + { + "name": "Gates of the Underworld - Invulnerability (Dif. 4)", + "id": 88870597, + "difficulty": 4, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Acid Breath (Dif. 3)", + "id": 88870598, + "difficulty": 3, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - 5-Way Shot", + "id": 88870599, + "difficulty": 1, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Thunder Hammer (Dif. 4)", + "id": 88870600, + "difficulty": 4, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Lightning Breath (Dif. 2)", + "id": 88870601, + "difficulty": 2, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Timestop", + "id": 88870602, + "difficulty": 1, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - 3-Way Shot (Dif. 4)", + "id": 88870603, + "difficulty": 4, + "tags": [ + "gates_of_the_underworld", + "no_obelisks" + ] + }, + { + "name": "Gates of the Underworld - Super Shot", + "id": 88870604, + "difficulty": 1, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Speed Boots (Dif. 3)", + "id": 88870605, + "difficulty": 3, + "tags": [ + "gates_of_the_underworld" + ] + }, + { + "name": "Gates of the Underworld - Shrink (Dif. 4)", + "id": 88870606, + "difficulty": 4, + "tags": [ + "gates_of_the_underworld" + ] + } +] \ No newline at end of file