From 8a852abdc4e36d3ea3fe8b4a5154ae97e78bd17d Mon Sep 17 00:00:00 2001 From: Alchav <59858495+Alchav@users.noreply.github.com> Date: Sat, 25 Nov 2023 05:57:02 -0500 Subject: [PATCH] =?UTF-8?q?Pok=C3=A9mon=20R/B:=20Migrate=20support=20into?= =?UTF-8?q?=20Bizhawk=20Client=20(#2466)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Removes the Pokémon Client, adding support for Red and Blue to the Bizhawk Client. - Adds `/bank` commands that mirror SDV's, allowing transferring money into and out of the EnergyLink storage. - Adds a fix to the base patch so that the progressive card key counter will not increment beyond 10, which would lead to receiving glitch items. This value is checked against and verified that it is not > 10 as part of crash detection by the client, to prevent erroneous location checks when the game crashes, so this is relevant to the new client (although shouldn't happen unless you're using !getitem, or putting progressive card keys as item link replacement items) --- PokemonClient.py | 382 ------------------ data/lua/connector_pkmn_rb.lua | 224 ---------- inno_setup.iss | 8 +- worlds/LauncherComponents.py | 2 - worlds/pokemon_rb/__init__.py | 21 +- worlds/pokemon_rb/basepatch_blue.bsdiff4 | Bin 45893 -> 45946 bytes worlds/pokemon_rb/basepatch_red.bsdiff4 | Bin 45875 -> 45892 bytes worlds/pokemon_rb/client.py | 277 +++++++++++++ .../docs/en_Pokemon Red and Blue.md | 7 +- worlds/pokemon_rb/docs/setup_en.md | 43 +- worlds/pokemon_rb/rom.py | 4 + worlds/pokemon_rb/rom_addresses.py | 222 +++++----- 12 files changed, 439 insertions(+), 751 deletions(-) delete mode 100644 PokemonClient.py delete mode 100644 data/lua/connector_pkmn_rb.lua create mode 100644 worlds/pokemon_rb/client.py diff --git a/PokemonClient.py b/PokemonClient.py deleted file mode 100644 index 6b43a53b..00000000 --- a/PokemonClient.py +++ /dev/null @@ -1,382 +0,0 @@ -import asyncio -import json -import time -import os -import bsdiff4 -import subprocess -import zipfile -from asyncio import StreamReader, StreamWriter -from typing import List - - -import Utils -from Utils import async_start -from CommonClient import CommonContext, server_loop, gui_enabled, ClientCommandProcessor, logger, \ - get_base_parser - -from worlds.pokemon_rb.locations import location_data -from worlds.pokemon_rb.rom import RedDeltaPatch, BlueDeltaPatch - -location_map = {"Rod": {}, "EventFlag": {}, "Missable": {}, "Hidden": {}, "list": {}, "DexSanityFlag": {}} -location_bytes_bits = {} -for location in location_data: - if location.ram_address is not None: - if type(location.ram_address) == list: - location_map[type(location.ram_address).__name__][(location.ram_address[0].flag, location.ram_address[1].flag)] = location.address - location_bytes_bits[location.address] = [{'byte': location.ram_address[0].byte, 'bit': location.ram_address[0].bit}, - {'byte': location.ram_address[1].byte, 'bit': location.ram_address[1].bit}] - else: - location_map[type(location.ram_address).__name__][location.ram_address.flag] = location.address - location_bytes_bits[location.address] = {'byte': location.ram_address.byte, 'bit': location.ram_address.bit} - -location_name_to_id = {location.name: location.address for location in location_data if location.type == "Item" - and location.address is not None} - -SYSTEM_MESSAGE_ID = 0 - -CONNECTION_TIMING_OUT_STATUS = "Connection timing out. Please restart your emulator, then restart pkmn_rb.lua" -CONNECTION_REFUSED_STATUS = "Connection Refused. Please start your emulator and make sure pkmn_rb.lua is running" -CONNECTION_RESET_STATUS = "Connection was reset. Please restart your emulator, then restart pkmn_rb.lua" -CONNECTION_TENTATIVE_STATUS = "Initial Connection Made" -CONNECTION_CONNECTED_STATUS = "Connected" -CONNECTION_INITIAL_STATUS = "Connection has not been initiated" - -DISPLAY_MSGS = True - -SCRIPT_VERSION = 3 - - -class GBCommandProcessor(ClientCommandProcessor): - def __init__(self, ctx: CommonContext): - super().__init__(ctx) - - def _cmd_gb(self): - """Check Gameboy Connection State""" - if isinstance(self.ctx, GBContext): - logger.info(f"Gameboy Status: {self.ctx.gb_status}") - - -class GBContext(CommonContext): - command_processor = GBCommandProcessor - game = 'Pokemon Red and Blue' - - def __init__(self, server_address, password): - super().__init__(server_address, password) - self.gb_streams: (StreamReader, StreamWriter) = None - self.gb_sync_task = None - self.messages = {} - self.locations_array = None - self.gb_status = CONNECTION_INITIAL_STATUS - self.awaiting_rom = False - self.display_msgs = True - self.deathlink_pending = False - self.set_deathlink = False - self.client_compatibility_mode = 0 - self.items_handling = 0b001 - self.sent_release = False - self.sent_collect = False - self.auto_hints = set() - - async def server_auth(self, password_requested: bool = False): - if password_requested and not self.password: - await super(GBContext, self).server_auth(password_requested) - if not self.auth: - self.awaiting_rom = True - logger.info('Awaiting connection to EmuHawk to get Player information') - return - - await self.send_connect() - - def _set_message(self, msg: str, msg_id: int): - if DISPLAY_MSGS: - self.messages[(time.time(), msg_id)] = msg - - def on_package(self, cmd: str, args: dict): - if cmd == 'Connected': - self.locations_array = None - if 'death_link' in args['slot_data'] and args['slot_data']['death_link']: - self.set_deathlink = True - elif cmd == "RoomInfo": - self.seed_name = args['seed_name'] - elif cmd == 'Print': - msg = args['text'] - if ': !' not in msg: - self._set_message(msg, SYSTEM_MESSAGE_ID) - elif cmd == "ReceivedItems": - msg = f"Received {', '.join([self.item_names[item.item] for item in args['items']])}" - self._set_message(msg, SYSTEM_MESSAGE_ID) - - def on_deathlink(self, data: dict): - self.deathlink_pending = True - super().on_deathlink(data) - - def run_gui(self): - from kvui import GameManager - - class GBManager(GameManager): - logging_pairs = [ - ("Client", "Archipelago") - ] - base_title = "Archipelago Pokémon Client" - - self.ui = GBManager(self) - self.ui_task = asyncio.create_task(self.ui.async_run(), name="UI") - - -def get_payload(ctx: GBContext): - current_time = time.time() - ret = json.dumps( - { - "items": [item.item for item in ctx.items_received], - "messages": {f'{key[0]}:{key[1]}': value for key, value in ctx.messages.items() - if key[0] > current_time - 10}, - "deathlink": ctx.deathlink_pending, - "options": ((ctx.permissions['release'] in ('goal', 'enabled')) * 2) + (ctx.permissions['collect'] in ('goal', 'enabled')) - } - ) - ctx.deathlink_pending = False - return ret - - -async def parse_locations(data: List, ctx: GBContext): - locations = [] - flags = {"EventFlag": data[:0x140], "Missable": data[0x140:0x140 + 0x20], - "Hidden": data[0x140 + 0x20: 0x140 + 0x20 + 0x0E], - "Rod": data[0x140 + 0x20 + 0x0E:0x140 + 0x20 + 0x0E + 0x01]} - - if len(data) > 0x140 + 0x20 + 0x0E + 0x01: - flags["DexSanityFlag"] = data[0x140 + 0x20 + 0x0E + 0x01:] - else: - flags["DexSanityFlag"] = [0] * 19 - - for flag_type, loc_map in location_map.items(): - for flag, loc_id in loc_map.items(): - if flag_type == "list": - if (flags["EventFlag"][location_bytes_bits[loc_id][0]['byte']] & 1 << location_bytes_bits[loc_id][0]['bit'] - and flags["Missable"][location_bytes_bits[loc_id][1]['byte']] & 1 << location_bytes_bits[loc_id][1]['bit']): - locations.append(loc_id) - elif flags[flag_type][location_bytes_bits[loc_id]['byte']] & 1 << location_bytes_bits[loc_id]['bit']: - locations.append(loc_id) - - hints = [] - if flags["EventFlag"][280] & 16: - hints.append("Cerulean Bicycle Shop") - if flags["EventFlag"][280] & 32: - hints.append("Route 2 Gate - Oak's Aide") - if flags["EventFlag"][280] & 64: - hints.append("Route 11 Gate 2F - Oak's Aide") - if flags["EventFlag"][280] & 128: - hints.append("Route 15 Gate 2F - Oak's Aide") - if flags["EventFlag"][281] & 1: - hints += ["Celadon Prize Corner - Item Prize 1", "Celadon Prize Corner - Item Prize 2", - "Celadon Prize Corner - Item Prize 3"] - if (location_name_to_id["Fossil - Choice A"] in ctx.checked_locations and location_name_to_id["Fossil - Choice B"] - not in ctx.checked_locations): - hints.append("Fossil - Choice B") - elif (location_name_to_id["Fossil - Choice B"] in ctx.checked_locations and location_name_to_id["Fossil - Choice A"] - not in ctx.checked_locations): - hints.append("Fossil - Choice A") - hints = [ - location_name_to_id[loc] for loc in hints if location_name_to_id[loc] not in ctx.auto_hints and - location_name_to_id[loc] in ctx.missing_locations and location_name_to_id[loc] not in ctx.locations_checked - ] - if hints: - await ctx.send_msgs([{"cmd": "LocationScouts", "locations": hints, "create_as_hint": 2}]) - ctx.auto_hints.update(hints) - - if flags["EventFlag"][280] & 1 and not ctx.finished_game: - await ctx.send_msgs([ - {"cmd": "StatusUpdate", - "status": 30} - ]) - ctx.finished_game = True - if locations == ctx.locations_array: - return - ctx.locations_array = locations - if locations is not None: - await ctx.send_msgs([{"cmd": "LocationChecks", "locations": locations}]) - - -async def gb_sync_task(ctx: GBContext): - logger.info("Starting GB connector. Use /gb for status information") - while not ctx.exit_event.is_set(): - error_status = None - if ctx.gb_streams: - (reader, writer) = ctx.gb_streams - msg = get_payload(ctx).encode() - writer.write(msg) - writer.write(b'\n') - try: - await asyncio.wait_for(writer.drain(), timeout=1.5) - try: - # Data will return a dict with up to two fields: - # 1. A keepalive response of the Players Name (always) - # 2. An array representing the memory values of the locations area (if in game) - data = await asyncio.wait_for(reader.readline(), timeout=5) - data_decoded = json.loads(data.decode()) - if 'scriptVersion' not in data_decoded or data_decoded['scriptVersion'] != SCRIPT_VERSION: - msg = "You are connecting with an incompatible Lua script version. Ensure your connector Lua " \ - "and PokemonClient are from the same Archipelago installation." - logger.info(msg, extra={'compact_gui': True}) - ctx.gui_error('Error', msg) - error_status = CONNECTION_RESET_STATUS - ctx.client_compatibility_mode = data_decoded['clientCompatibilityVersion'] - if ctx.client_compatibility_mode == 0: - ctx.items_handling = 0b101 # old patches will not have local start inventory, must be requested - if ctx.seed_name and ctx.seed_name != ''.join([chr(i) for i in data_decoded['seedName'] if i != 0]): - msg = "The server is running a different multiworld than your client is. (invalid seed_name)" - logger.info(msg, extra={'compact_gui': True}) - ctx.gui_error('Error', msg) - error_status = CONNECTION_RESET_STATUS - ctx.seed_name = ''.join([chr(i) for i in data_decoded['seedName'] if i != 0]) - if not ctx.auth: - ctx.auth = ''.join([chr(i) for i in data_decoded['playerName'] if i != 0]) - if ctx.auth == '': - msg = "Invalid ROM detected. No player name built into the ROM." - logger.info(msg, extra={'compact_gui': True}) - ctx.gui_error('Error', msg) - error_status = CONNECTION_RESET_STATUS - if ctx.awaiting_rom: - await ctx.server_auth(False) - if 'locations' in data_decoded and ctx.game and ctx.gb_status == CONNECTION_CONNECTED_STATUS \ - and not error_status and ctx.auth: - # Not just a keep alive ping, parse - async_start(parse_locations(data_decoded['locations'], ctx)) - if 'deathLink' in data_decoded and data_decoded['deathLink'] and 'DeathLink' in ctx.tags: - await ctx.send_death(ctx.auth + " is out of usable Pokémon! " + ctx.auth + " blacked out!") - if 'options' in data_decoded: - msgs = [] - if data_decoded['options'] & 4 and not ctx.sent_release: - ctx.sent_release = True - msgs.append({"cmd": "Say", "text": "!release"}) - if data_decoded['options'] & 8 and not ctx.sent_collect: - ctx.sent_collect = True - msgs.append({"cmd": "Say", "text": "!collect"}) - if msgs: - await ctx.send_msgs(msgs) - if ctx.set_deathlink: - await ctx.update_death_link(True) - except asyncio.TimeoutError: - logger.debug("Read Timed Out, Reconnecting") - error_status = CONNECTION_TIMING_OUT_STATUS - writer.close() - ctx.gb_streams = None - except ConnectionResetError as e: - logger.debug("Read failed due to Connection Lost, Reconnecting") - error_status = CONNECTION_RESET_STATUS - writer.close() - ctx.gb_streams = None - except TimeoutError: - logger.debug("Connection Timed Out, Reconnecting") - error_status = CONNECTION_TIMING_OUT_STATUS - writer.close() - ctx.gb_streams = None - except ConnectionResetError: - logger.debug("Connection Lost, Reconnecting") - error_status = CONNECTION_RESET_STATUS - writer.close() - ctx.gb_streams = None - if ctx.gb_status == CONNECTION_TENTATIVE_STATUS: - if not error_status: - logger.info("Successfully Connected to Gameboy") - ctx.gb_status = CONNECTION_CONNECTED_STATUS - else: - ctx.gb_status = f"Was tentatively connected but error occured: {error_status}" - elif error_status: - ctx.gb_status = error_status - logger.info("Lost connection to Gameboy and attempting to reconnect. Use /gb for status updates") - else: - try: - logger.debug("Attempting to connect to Gameboy") - ctx.gb_streams = await asyncio.wait_for(asyncio.open_connection("localhost", 17242), timeout=10) - ctx.gb_status = CONNECTION_TENTATIVE_STATUS - except TimeoutError: - logger.debug("Connection Timed Out, Trying Again") - ctx.gb_status = CONNECTION_TIMING_OUT_STATUS - continue - except ConnectionRefusedError: - logger.debug("Connection Refused, Trying Again") - ctx.gb_status = CONNECTION_REFUSED_STATUS - continue - - -async def run_game(romfile): - auto_start = Utils.get_options()["pokemon_rb_options"].get("rom_start", True) - if auto_start is True: - import webbrowser - webbrowser.open(romfile) - elif os.path.isfile(auto_start): - subprocess.Popen([auto_start, romfile], - stdin=subprocess.DEVNULL, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) - - -async def patch_and_run_game(game_version, patch_file, ctx): - base_name = os.path.splitext(patch_file)[0] - comp_path = base_name + '.gb' - if game_version == "blue": - delta_patch = BlueDeltaPatch - else: - delta_patch = RedDeltaPatch - - try: - base_rom = delta_patch.get_source_data() - except Exception as msg: - logger.info(msg, extra={'compact_gui': True}) - ctx.gui_error('Error', msg) - - with zipfile.ZipFile(patch_file, 'r') as patch_archive: - with patch_archive.open('delta.bsdiff4', 'r') as stream: - patch = stream.read() - patched_rom_data = bsdiff4.patch(base_rom, patch) - - with open(comp_path, "wb") as patched_rom_file: - patched_rom_file.write(patched_rom_data) - - async_start(run_game(comp_path)) - - -if __name__ == '__main__': - - Utils.init_logging("PokemonClient") - - options = Utils.get_options() - - async def main(): - parser = get_base_parser() - parser.add_argument('patch_file', default="", type=str, nargs="?", - help='Path to an APRED or APBLUE patch file') - args = parser.parse_args() - - ctx = GBContext(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.gb_sync_task = asyncio.create_task(gb_sync_task(ctx), name="GB Sync") - - if args.patch_file: - ext = args.patch_file.split(".")[len(args.patch_file.split(".")) - 1].lower() - if ext == "apred": - logger.info("APRED file supplied, beginning patching process...") - async_start(patch_and_run_game("red", args.patch_file, ctx)) - elif ext == "apblue": - logger.info("APBLUE file supplied, beginning patching process...") - async_start(patch_and_run_game("blue", args.patch_file, ctx)) - else: - logger.warning(f"Unknown patch file extension {ext}") - - await ctx.exit_event.wait() - ctx.server_address = None - - await ctx.shutdown() - - if ctx.gb_sync_task: - await ctx.gb_sync_task - - - import colorama - - colorama.init() - - asyncio.run(main()) - colorama.deinit() diff --git a/data/lua/connector_pkmn_rb.lua b/data/lua/connector_pkmn_rb.lua deleted file mode 100644 index 3f56435b..00000000 --- a/data/lua/connector_pkmn_rb.lua +++ /dev/null @@ -1,224 +0,0 @@ -local socket = require("socket") -local json = require('json') -local math = require('math') -require("common") -local STATE_OK = "Ok" -local STATE_TENTATIVELY_CONNECTED = "Tentatively Connected" -local STATE_INITIAL_CONNECTION_MADE = "Initial Connection Made" -local STATE_UNINITIALIZED = "Uninitialized" - -local SCRIPT_VERSION = 3 - -local APIndex = 0x1A6E -local APDeathLinkAddress = 0x00FD -local APItemAddress = 0x00FF -local EventFlagAddress = 0x1735 -local MissableAddress = 0x161A -local HiddenItemsAddress = 0x16DE -local RodAddress = 0x1716 -local DexSanityAddress = 0x1A71 -local InGameAddress = 0x1A84 -local ClientCompatibilityAddress = 0xFF00 - -local ItemsReceived = nil -local playerName = nil -local seedName = nil - -local deathlink_rec = nil -local deathlink_send = false - -local prevstate = "" -local curstate = STATE_UNINITIALIZED -local gbSocket = nil -local frame = 0 - -local compat = nil - -local function defineMemoryFunctions() - local memDomain = {} - local domains = memory.getmemorydomainlist() - memDomain["rom"] = function() memory.usememorydomain("ROM") end - memDomain["wram"] = function() memory.usememorydomain("WRAM") end - return memDomain -end - -local memDomain = defineMemoryFunctions() -u8 = memory.read_u8 -wU8 = memory.write_u8 -u16 = memory.read_u16_le -function uRange(address, bytes) - data = memory.readbyterange(address - 1, bytes + 1) - data[0] = nil - return data -end - -function generateLocationsChecked() - memDomain.wram() - events = uRange(EventFlagAddress, 0x140) - missables = uRange(MissableAddress, 0x20) - hiddenitems = uRange(HiddenItemsAddress, 0x0E) - rod = {u8(RodAddress)} - dexsanity = uRange(DexSanityAddress, 19) - - - data = {} - - categories = {events, missables, hiddenitems, rod} - if compat > 1 then - table.insert(categories, dexsanity) - end - for _, category in ipairs(categories) do - for _, v in ipairs(category) do - table.insert(data, v) - end - end - - return data -end - -local function arrayEqual(a1, a2) - if #a1 ~= #a2 then - return false - end - - for i, v in ipairs(a1) do - if v ~= a2[i] then - return false - end - end - - return true -end - -function receive() - l, e = gbSocket:receive() - if e == 'closed' then - if curstate == STATE_OK then - print("Connection closed") - end - curstate = STATE_UNINITIALIZED - return - elseif e == 'timeout' then - return - elseif e ~= nil then - print(e) - curstate = STATE_UNINITIALIZED - return - end - if l ~= nil then - block = json.decode(l) - if block ~= nil then - local itemsBlock = block["items"] - if itemsBlock ~= nil then - ItemsReceived = itemsBlock - end - deathlink_rec = block["deathlink"] - - end - end - -- Determine Message to send back - memDomain.rom() - newPlayerName = uRange(0xFFF0, 0x10) - newSeedName = uRange(0xFFDB, 21) - if (playerName ~= nil and not arrayEqual(playerName, newPlayerName)) or (seedName ~= nil and not arrayEqual(seedName, newSeedName)) then - print("ROM changed, quitting") - curstate = STATE_UNINITIALIZED - return - end - playerName = newPlayerName - seedName = newSeedName - local retTable = {} - retTable["scriptVersion"] = SCRIPT_VERSION - - if compat == nil then - compat = u8(ClientCompatibilityAddress) - if compat < 2 then - InGameAddress = 0x1A71 - end - end - - retTable["clientCompatibilityVersion"] = compat - retTable["playerName"] = playerName - retTable["seedName"] = seedName - memDomain.wram() - - in_game = u8(InGameAddress) - if in_game == 0x2A or in_game == 0xAC then - retTable["locations"] = generateLocationsChecked() - elseif in_game ~= 0 then - print("Game may have crashed") - curstate = STATE_UNINITIALIZED - return - end - - retTable["deathLink"] = deathlink_send - deathlink_send = false - - msg = json.encode(retTable).."\n" - local ret, error = gbSocket:send(msg) - if ret == nil then - print(error) - elseif curstate == STATE_INITIAL_CONNECTION_MADE then - curstate = STATE_TENTATIVELY_CONNECTED - elseif curstate == STATE_TENTATIVELY_CONNECTED then - print("Connected!") - curstate = STATE_OK - end -end - -function main() - if not checkBizHawkVersion() then - return - end - server, error = socket.bind('localhost', 17242) - - while true do - frame = frame + 1 - if not (curstate == prevstate) then - print("Current state: "..curstate) - prevstate = curstate - end - if (curstate == STATE_OK) or (curstate == STATE_INITIAL_CONNECTION_MADE) or (curstate == STATE_TENTATIVELY_CONNECTED) then - if (frame % 5 == 0) then - receive() - in_game = u8(InGameAddress) - if in_game == 0x2A or in_game == 0xAC then - if u8(APItemAddress) == 0x00 then - ItemIndex = u16(APIndex) - if deathlink_rec == true then - wU8(APDeathLinkAddress, 1) - elseif u8(APDeathLinkAddress) == 3 then - wU8(APDeathLinkAddress, 0) - deathlink_send = true - end - if ItemsReceived[ItemIndex + 1] ~= nil then - item_id = ItemsReceived[ItemIndex + 1] - 172000000 - if item_id > 255 then - item_id = item_id - 256 - end - wU8(APItemAddress, item_id) - end - end - end - end - elseif (curstate == STATE_UNINITIALIZED) then - if (frame % 60 == 0) then - - print("Waiting for client.") - - emu.frameadvance() - server:settimeout(2) - print("Attempting to connect") - local client, timeout = server:accept() - if timeout == nil then - curstate = STATE_INITIAL_CONNECTION_MADE - gbSocket = client - gbSocket:settimeout(0) - end - end - end - emu.frameadvance() - end -end - -main() diff --git a/inno_setup.iss b/inno_setup.iss index b4779b10..4744fa2b 100644 --- a/inno_setup.iss +++ b/inno_setup.iss @@ -140,13 +140,13 @@ Root: HKCR; Subkey: "{#MyAppName}n64zpf\shell\open\command"; ValueData: """{ Root: HKCR; Subkey: ".apred"; ValueData: "{#MyAppName}pkmnrpatch"; Flags: uninsdeletevalue; ValueType: string; ValueName: ""; Root: HKCR; Subkey: "{#MyAppName}pkmnrpatch"; ValueData: "Archipelago Pokemon Red Patch"; Flags: uninsdeletekey; ValueType: string; ValueName: ""; -Root: HKCR; Subkey: "{#MyAppName}pkmnrpatch\DefaultIcon"; ValueData: "{app}\ArchipelagoPokemonClient.exe,0"; ValueType: string; ValueName: ""; -Root: HKCR; Subkey: "{#MyAppName}pkmnrpatch\shell\open\command"; ValueData: """{app}\ArchipelagoPokemonClient.exe"" ""%1"""; ValueType: string; ValueName: ""; +Root: HKCR; Subkey: "{#MyAppName}pkmnrpatch\DefaultIcon"; ValueData: "{app}\ArchipelagoBizHawkClient.exe,0"; ValueType: string; ValueName: ""; +Root: HKCR; Subkey: "{#MyAppName}pkmnrpatch\shell\open\command"; ValueData: """{app}\ArchipelagoBizHawkClient.exe"" ""%1"""; ValueType: string; ValueName: ""; Root: HKCR; Subkey: ".apblue"; ValueData: "{#MyAppName}pkmnbpatch"; Flags: uninsdeletevalue; ValueType: string; ValueName: ""; Root: HKCR; Subkey: "{#MyAppName}pkmnbpatch"; ValueData: "Archipelago Pokemon Blue Patch"; Flags: uninsdeletekey; ValueType: string; ValueName: ""; -Root: HKCR; Subkey: "{#MyAppName}pkmnbpatch\DefaultIcon"; ValueData: "{app}\ArchipelagoPokemonClient.exe,0"; ValueType: string; ValueName: ""; -Root: HKCR; Subkey: "{#MyAppName}pkmnbpatch\shell\open\command"; ValueData: """{app}\ArchipelagoPokemonClient.exe"" ""%1"""; ValueType: string; ValueName: ""; +Root: HKCR; Subkey: "{#MyAppName}pkmnbpatch\DefaultIcon"; ValueData: "{app}\ArchipelagoBizHawkClient.exe,0"; ValueType: string; ValueName: ""; +Root: HKCR; Subkey: "{#MyAppName}pkmnbpatch\shell\open\command"; ValueData: """{app}\ArchipelagoBizHawkClient.exe"" ""%1"""; ValueType: string; ValueName: ""; Root: HKCR; Subkey: ".apbn3"; ValueData: "{#MyAppName}bn3bpatch"; Flags: uninsdeletevalue; ValueType: string; ValueName: ""; Root: HKCR; Subkey: "{#MyAppName}bn3bpatch"; ValueData: "Archipelago MegaMan Battle Network 3 Patch"; Flags: uninsdeletekey; ValueType: string; ValueName: ""; diff --git a/worlds/LauncherComponents.py b/worlds/LauncherComponents.py index c3ae2b04..31739bb2 100644 --- a/worlds/LauncherComponents.py +++ b/worlds/LauncherComponents.py @@ -101,8 +101,6 @@ components: List[Component] = [ Component('OoT Adjuster', 'OoTAdjuster'), # FF1 Component('FF1 Client', 'FF1Client'), - # Pokémon - Component('Pokemon Client', 'PokemonClient', file_identifier=SuffixIdentifier('.apred', '.apblue')), # TLoZ Component('Zelda 1 Client', 'Zelda1Client', file_identifier=SuffixIdentifier('.aptloz')), # ChecksFinder diff --git a/worlds/pokemon_rb/__init__.py b/worlds/pokemon_rb/__init__.py index b2ee0702..d9bd6dde 100644 --- a/worlds/pokemon_rb/__init__.py +++ b/worlds/pokemon_rb/__init__.py @@ -2,9 +2,11 @@ import os import settings import typing import threading +import base64 from copy import deepcopy from typing import TextIO +from Utils import __version__ from BaseClasses import Item, MultiWorld, Tutorial, ItemClassification, LocationProgressType from Fill import fill_restrictive, FillError, sweep_from_pool from worlds.AutoWorld import World, WebWorld @@ -22,6 +24,7 @@ from .rules import set_rules from .level_scaling import level_scaling from . import logic from . import poke_data +from . import client class PokemonSettings(settings.Group): @@ -36,16 +39,8 @@ class PokemonSettings(settings.Group): copy_to = "Pokemon Blue (UE) [S][!].gb" md5s = [BlueDeltaPatch.hash] - class RomStart(str): - """ - Set this to false to never autostart a rom (such as after patching) - True for operating system default program - Alternatively, a path to a program to open the .gb file with - """ - red_rom_file: RedRomFile = RedRomFile(RedRomFile.copy_to) blue_rom_file: BlueRomFile = BlueRomFile(BlueRomFile.copy_to) - rom_start: typing.Union[RomStart, bool] = True class PokemonWebWorld(WebWorld): @@ -141,9 +136,6 @@ class PokemonRedBlueWorld(World): else: self.rival_name = encode_name(self.multiworld.rival_name[self.player].value, "Rival") - if len(self.multiworld.player_name[self.player].encode()) > 16: - raise Exception(f"Player name too long for {self.multiworld.get_player_name(self.player)}. Player name cannot exceed 16 bytes for Pokémon Red and Blue.") - if not self.multiworld.badgesanity[self.player]: self.multiworld.non_local_items[self.player].value -= self.item_name_groups["Badges"] @@ -621,6 +613,13 @@ class PokemonRedBlueWorld(World): def generate_output(self, output_directory: str): generate_output(self, output_directory) + def modify_multidata(self, multidata: dict): + rom_name = bytearray(f'AP{__version__.replace(".", "")[0:3]}_{self.player}_{self.multiworld.seed:11}\0', + 'utf8')[:21] + rom_name.extend([0] * (21 - len(rom_name))) + new_name = base64.b64encode(bytes(rom_name)).decode() + multidata["connect_names"][new_name] = multidata["connect_names"][self.multiworld.player_name[self.player]] + def write_spoiler_header(self, spoiler_handle: TextIO): spoiler_handle.write(f"Cerulean Cave Total Key Items: {self.multiworld.cerulean_cave_key_items_condition[self.player].total}\n") spoiler_handle.write(f"Elite Four Total Key Items: {self.multiworld.elite_four_key_items_condition[self.player].total}\n") diff --git a/worlds/pokemon_rb/basepatch_blue.bsdiff4 b/worlds/pokemon_rb/basepatch_blue.bsdiff4 index eb4d83360cd854c12ec7f0983dd3944d6bfa7fd1..bee5a8d2f4996ee1db54d2b7812938cc66dcb922 100644 GIT binary patch literal 45946 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

^aKX)H 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 UboM_(lt27k$rRy2K>Qy9z{TtP>;M1& literal 45875 zcmaI7RZtvEv@JZiyK4q_8wPiGnZY5r6Wk@ZYjAfM+}#Q81b2tv5(pAP$aizj|L{NE zyQ{i;Rdv6$m}!hmrS=s$s)f0QIpp?b_`rK%dTSPa5K&P9$&1RyD06n~M%!pxNdi!xTGgZ;xbr0u|V)Wut&m;A*5 zJ1`bt5&*FKCj=I9xEj_!2%ba^0RWJ5P-WFL6sNzi9EGneTNPF;QA2WzU}9?E#fp_D zko~2<>KDz$HkwN(ja4y)s>R|301o8RKKY4^2P~lseiD;PV~nmsR;#kJ0>G6?l}VCg zi9yrJ|MA< z3HL8s02a9w+`px;0AeyLb_-DTaDN)V&t^T{M7BgQqm zHko;?##eb9plX<_h!*HE(a?HS!E_`HUEDMxW->*xX#WM7Swj;CyLkf&Xh(<&1(R4b zucHL@awmRRJ*%8&-MCn~%=b2PtLxA+0}iQ2rVGmbS=5P4_?ocBKgPk zMf}I%2*&~szWSOyjqJ&dBy_XT7B4s?+Au^DG7jcrK5g!yFjgswdh}}#edCWMDNMj3 z7j_o&!JVghkS9u4aPY`T>aNM_PFg7cS*&5#Yl8%m=k^8#`laV3*P+GH=@PdqX`Vh0 zj&N)VVWNvV1)0tW7bO-&guMKGtfOOduLf;q$$CdD$Tr?jIGL!>INdROiiKzA@Vk2| zJRH3_CeI|QLg@kW1=ojPletR758d&}4ZiZhUG~55izwdkBW;(judjrzBewaHkM-sl z!%%_et6qxy>JmIn34&Vg?YH{d0)75-qbD~v0{HtlwDqak6R$Vhlp2;9$2uwoh$H%` zQTB~79dZ-%9HY!;&5X2xue6kLCKR;okf6f8CLP~1v%rG>%|k`rWOWdWh&^!oG& zSS)0yfJcLb29w~ha-vigyKY1}Fbh|R3GYjsNSCJRuig~~e|Md>KOZV~voL`G5$+f` z;s{B0oIYG2E>aMI(6rJtii7hWQF0Y>e?9pdqx$%&8Kg}`Fl+c3*DwO0iU;`CgWb)2 zB#@K(yx~f|=LI4&v9|@~d@;Eg(&pUY#`NP^#J=AhOP2ohRVsdY9)->v6{~oLJFsnSmz@SL=j@qwJ`kU;LV8ul8?knmo2e_ z`*ju&+P`wHX^w|-Xm>uIV5M|Xr!JF&a_UX(zd z;0q&CN6x*$cvTMrHu+6ouSC;L@hYaQl*qS5{;ILx=gEl~`k%vVe(3Dxw7RlMXB|@d zEmyi%)e-0+y?Eo3XbNu_>{^$`09sxEEo7oMBDJuYHzRe7wGsL*mZODjh-SpQ0ZOo`B7R#b}@P*)9_(y#Os|b_hd}j8H-?fWmj^7H1LOq zt%?u=Pe`Z9=^@td(c9g_Ouq!adgQH(?g+ktuc0B&-~FN|)qm*B?;SPhd7OQ|6n#$I z&d|(W|5a1(58hlC2pycS`;9gAa+o=9(wEGT?G)#wG)3a3Wf*u>i}tDjeG?mH8FM1X z;1Yn(NJ|H`w-E9JX)@9<8=<7>d~%n*Fi)pTuM7}pH#$s6M}-x}+QP=o#{ z5*F5_k>4Z=U!~f{{Depbn(FaX3)KO`Zos^EABYdg5i@i|L>(thkOmCH)-P}lqe2`a zx~{!(BE^)!4%Iyt?X^YckWk6sGyOQ!xJy7!lgzM^*Qejzy$Mi(nEfLB zHox5HjfwbP7OjS(dC0W!|FG@$~PZ_2r zG<6+opFN2dft3laH$*NMd$pw{;A{;+mC1Q#pNmssHSlAsxN1S|sc=#)QC*S*PE2-$ zT;WymSCWPA@@4&A@f+*w_?Wd{c+uK3$uc{L`NWvC7Rn2gI@Z}Q+pNFGC(4TIu$}Sv zp>m`f)46HLc6Kg6RZM7Yoxq=H#wVP@#<(XD(5U;O@_f}D?NczmOBBJxVFHL)zRgY%SqkPvz)XODMnKCY7m;ZMmk+Up(T1 zni;ai>o4@eRQ=EuI%Dp;)nUife-u@C<3{;W7pE#ngJn_ z^aub{#eciSMa4%fp*%&x79}OFxCx9nJfrcz75|S?PvV1N)WxD0#Pjr9TfL;MmRO$$ zeX4630xl{50zlnLtWRV4Na>+0J5LgMKShx|+6Hp=s^GIYht>Vfz(z-qU9;F2te77Z zzUeDkp1ilko~s?DtSR3?loL1nfSSPdJEpzL{7#Zq5||GK;#1>?98Thf;A@iyF;a(; z?oMW;`YtA7U#KF zeeCt^ohabdrrj-*BkO_Z{(&?Q4k&|aCWFbntyW^DpO+IB1*FMmv^7i##|5&O0Z0j>`@sMcPHsa4F0Ow1_qSLZ?`v_f&1+SPtOfJH^ zBlv)#<&2}!i7~Hmzc0@U7-ZZ3ObL4Co0)Ipnl&5hShh4{Hf!0q9=Bx3?`hv<%VCb^#El8jXSBd_bC$W|PJ1wfm zz8Oua4YB&+74IltLAp zi8bvdV)~}EWaoI0QYvVSHOc-X+dO@;C1U;~K19|xy@UW!q}vA(U#c60I~WiDdoq2h zAMNzQ_XT&MUN&Wb)67LcZKww9ez(pQR~>#O0uTMd71)}5iV?6>J;MY_VTeSvf9r7; zlI*Vu7bI_|M-DvRVzkDjY1`$-J**+a56Ox3#6wDBoWDx_%^X&SPP%RR)wVK+qq;z* zq8t75R+2GyUzDp+!uTz)BbrB+&R=rRs7t>G42 zYMl5FS^zt?fmv8T?mCha4Sa!oeEk$dweQ)YdO~xi?n2Xk(;6rjX=E4}g|}!Kg)OgD zi4vZ4womL){(%2P6UO_pr5L++Q!)6o!D$cN zsUvY$33iw|!c1OWs6X3C(mGHq88=WX$mL=d1WLhC?(Y=Gk!>+b#uK9A>!WF8ml;jD zela}s=Iiag;x`FmT|z3@yfEaK%KNN}HS7r>kRGx?`?Yq2;qriqxN^xT(1 zkQ{sb#XKXF63uMhQ(@=NGq%u0_d&ImBxMainNkJuTYVvTn&iodh~$lEtgjn8 z%xXATl{7&Ozor%85j*re&?Ng|t=I%&} zl1bNwqb@OFXjBStVs=HZzVCER^s+U0fbQVvmTdC*+|^L$O;nme2=236^Sr8Pqjs(e zg7$E^Nx%oIT+8};6Fscm55*jqju6M!lU;n^v%lgIx7rzfYvz7ApkyT8^#(Y})H3N& z6`fnnQ)cMSZ1qyggUd#qb)ia({19^7uVX{z+@m)Ct**F)DP<^e`;DTBg}UL6 z)4D73D6IC(hu*!QHd=I`mDop+Pyyqg{{(~eLR!WCvwgl6eE-eDei9J2L zG)49`=>|0O;k#b-Pg-CxG7>yjy3)^&q!?RIcUz<)=Fe|NgApy@-}Zh5oybT$Kn-HU z-lwG>k8b~s?WCv^(gV2W3`72Zwxe?{J-PCP{a~#pevNNzPIq2wfLqA z-EJ5O!1}Kqflt~qFUTj-M*UZs02Gbe3}CxTHFO@haRLTdmxV~3We(QrNOC-=***cMx^wL?qvtxg{_syqM z&?(oeQK2`WVD)NQptG`#BCWv{tG~0->2}O7U`-6%-#d4`v01zH;_cHxwJEc=dpmcN zx7QO85ETJrR1HC#oLnGdL|n$TnzXZ%XE}1Plq#OgEwtj(SXR17pSl1qUOM<{jV>#0 z%zQimAUwQ%F(4O9p*l9Ux&=wY z!L|$n6U{9gEv)|SprN&_wY*e_4nQW4N(j9~mT`c)bOJ6Qr~$|UVruP@fPa>XR0SV$ zE-EmDr412rDvfc0v7$1OH2qIyb%oY+ke1dmV}(OdNp*D9R>`Fp9~L>tpPWu|Doy4| z5)4-i27&!^!FJ?ey9IKv6Oh~vK|V}PRu&NvY=@dtWu{P_YBg0+Sb<(t6R@fwCMQ8# zxJ&>!*YYQPugS>)Rcw__73cCN$|q82$tYAkXfQ84iK*detyuk!dGpVknUh?Wv@2&h z&qdBbkPq<(f)QvctCm#@E32N!5abwPPlF&;9Wj|}UL7&*gm=EOJZ;ab^%&X?w!c&pQ_W*6dqOT=UfBwl zoE##jE~81gw6a&gzSf8R--LL-;Oe#DR*q`#F~R z$NP6OF*gFRz=_KSe~_Gmo@RPwYN1q-_9=%+4-U6>E6icR-up~Wmkm>I zlzS}ArGJnc%j~cRf1bv^WYn1W;Nc%xU585IZq|wz{wCa=_TS|v*MwU(X^&8NJbbG4AA4)y5Tc7lda3e_uSQi!9@0 z`4NGF_T#J8ax%s9aTv(pFp~DDzb1*32*XO#x2RgsOJ^k0F}mql;~2-_O5gX8rLFSJ z@}%{U>55w)%}hQVkubK6BQkE*pG~at@Io4e#keClW^YJ3{v@QH3_E^p811w1$}*?X@hjWUvF+lH}5{gZ3n%% zm(4SPqahwOu*fpFBVg0p)Q*mJV0-G^5cgHfZ@T|g=g)WF0nhnMVq-w$%uWhnR%j; zt6gEY_x&&pbKqC*aFMsJ95{nYtbnB* zidmF(`iRO>k~EgN=_Ld50cGXv zB;R?~FpGoxE{YLQ8MdLm-=rsDKLd56`3hy-%_24Y^;dB7uXD zW(T4u7gR)aao|tx$~Id{UN{gy1#JO|q{1;6iOSdO0a@iA&fNK-9enQUU=V5DqW$j* zSj$huo_lEV1A0})@_65(83|X`ADnD0%aY+KpOu(c6n}_xksB;tu1%6owUXeEF zvo45y7{fqP*{z13?MPYY`95qq%E&AK|@XkYI3OV+QU6#49TzZUZn{(W-DmiF*|ri=JyMM(YY!e0J4e00;{KF5n2 zji>`4+$9IHYswE{SP_?xNt>~^A*mnfukAQsRzdgnO;ND-A0oi&0dH?|c4T|Q7YgB; z)IxCshJh|L`h_~B-kdl*)06`E)T-9(+woq0l$humF%hWj;Dl@~q}H($VWanGZ2ihr zr>y7qxOgc}N1!dm9y2bVi2ZtNkJ$AV^V-ap#L2!peHkwWE-+Gm*>Me*V0FJtGBcae zoI~T?m;ZEi7qs{g5Ub)74ODRXvqzu*o_-OY=~d0{EeWKER{hAvINh+*UEv-P_J|?G z>$yvsLzW{Xc-TyF{n6k9!8jb&hwXc$K})92Bv;mSvt0HA`^FCj4P?TVX~w8z2(V+; zuo~p$tBT)`Lv^+FrT&>)?owA`;+sRR_!%l|Gk_95M#ppT8$TPD^}xXKY@zUXDn{F? zgsL%8dSw#(+(Boxc?TSHB1ouZ*@1jvFH6w|7*u&p0WoXhwDf2XY7*Z6_&%Msp{j$=q&x{eg#Fr6>$UO2+e@36zq z0(LuR6OgdA8K<;Mr)&eQqw_cn=8>Gen!mWie73D`YRR9pOIw8t{6lKvZ=5=kh6G+t%u*A&$q`XjvGTQX@ zUN9??N|#sG%KPzUHU`D#ZVS*@=_%eE)`(44WnW3d%z3$`!|*u>jC|D27h;#V+JQ4% z6#4SaIh7cpam2i-#B9#8N$Ey(?8>hz`j@}vRZ6ic-1!ZVjV~u34!in3d5t8?9$TUs zD%(t`=|nJqFK{@Hv^#0nxO;5T|Jpqwl?c67ruI1&}?Q*acNletw(dc$k*9#*a1pII9l(4cC#Hy29dJSf^)~YAE7vA0&luwIvfF zm3+d2k_!E!oRv$d12x6(Xb8fsh*kglcV1=I7Bt-PR5s!;ZXaNai*9eIyKoml!uu&? zH86Av79jTK!&R@=$r55O;S?Ly&_O4_OlKToY?(_U+a$GKz%Tqc1NN?cS6)K=;6sZ% zF|&|!G?q2AROIB6 z_B!|4O?%8*AFP14iUpRJmMEnh27905Wd*gpZ9(JSG)Y=51obX%`1MT!+*=k62GeS? zIOf}BAys&|9|8v}ht{nT8-$h|OsC)XKQ-yZn;}2TEPOL&r!BCwj(06TWf9M^s@KlnmmmLm}sMKRWIYjdQrhIKT@&tvVi z+2+<{d6ul%$|y)91KMk@k5h$VAJ6jgebm(fiPpDZ=}n6`g#J#%WZjh0rHLf!jf4M% z^5lc(+Ld5_RGn)3%Yj&|qxL{yX4y!t8$wrOhqF@@zJ2SoPlmN8s5wHw=~>U!I3gZ% z;={`~O{SY?;{H=vtQ=i;kXE-lpZ*gai8X2Zre#bw%SX|p4!Gfl`x5pBc60OFx@t@Y zOub=1Q*5H}!XCWps!+pl9jq(py+P7wLih!je)3_GOyZ5`l1OZIbWdHi#pbk?Oe~4z zJ^La$D@H9t7S0OLK}Zmx;Y(&e*lpRyWVsb8nQ zxSPn~_eNdsnEAxJHJjY`sO)a<3F8UEjq? zEsod^Cw()AM9g#U!b)&bQb~d}mm>3n%W27PP;&lp&}S5WIZHeC@yFck$>Zpn)|C;j zaKen=hZNwCRA>5wx)xrfP??XJ$gl-<69(fm2uTSR_n;-Yn(CBxU8q$v)7PVU!uf)a zM@Cu~i9>Pf(c%or1NAv49(aiOG0fTt%rPahQ!WwthagSxFAV)>;FlxT#A0bYiO&nn z#~b-XMwU2#cw}0%7p%*$*l?2PV9JZ-5MdASH6@?x!W9lkB8S_O_i$cyd$@Ai4_(vo zr!mN6O6bB#DuQ-QxqU??&#o00)TL^xr*GEDOBRQcHmF-`B1p}3!V{dP zb$)`Jg3U{n)UvJ$p|np95dSf5ZENW6_ZeXZpOT`VpugcKdcRcWPyldI!^KC4z zX)sx!uLGD&aeFe5lw92sZ_@i&U_G$8;wp29 z&?G@ql|9{nDpKFju0Lb`PN>mCnb&_TVUw}hxvn;#Or#fv-GplHzMWbL(N0STn=a@D@NpALOvC%y!nTmQkCmTuX!XfO~0qeXK+N!VZKNzv%O zpSEX->@2kG(4ZLDk+7u1e)D+IQFfkxf*8~}B6VAPkY5SYQy???Tnn5E|K?<%#Y&eQ znN>$y%iIc3v@T6tr@%4G^M3Bda&E7D{^=%uF*F=_ zYTB&6e5+%CKSy@iP_uPxc16>`BI(}Q&G4B@%+FjG8+LuqwKm)EDJppOZ7a(b-{o2S z%u-ErAkK08Yl|-9-HeM7_SgV=&-NPRUTKw3U)Za0qSftAhK7o$QpG=h%3=doM+h2Z z%2Bo%^^x&QnesiAu$VK7QP)cik2VMDXnigHrf{rnVaMOJ516GGgKyCSVwGmt>DW-U( z7P{z|6)@?7G!h}ZL%-bZmmq#_)|&cHFzrYFBxp;S!B2bR=;sx+|IlGD*$YO&k_I8?N7N0V;%UOX8F+5n;%4Lzi1K9_Y$>=6eEuEFK|lnm?BWZ92M2Gcnohc!Kf zT$|mFt_$aq>JUBGNb1Cwav>D}JB0{FnhZrYaW|?Hb*Lc<=X`32EuBaj@l#_GYx7 zcn454*7yAovA48ppxoBE=0}cUo}OgJX%S0sPj6gVo$pxJk?vgDn^%wAO)MlDApEh` z{yWIU>1tt}CLrc$*gd;ruh29rAd{bUz^93a!T9qNn#8K=1&U#|_>KR*iugV69~V{a z3%@QVG+id6D@@jdrd9A*yYB^YB(`YUaD1(+nO}A7bdOS~)UB)%^iiMUVSh=pOfQFx zMz^!djRRN=_F6q%Y9$_h6C{2V)}1e5&}qBi`XyYAZj4$=0>1|MQilAvMNV+BkOvJ~ z+LNUH-Y6x>Z(90dTqV->5@NbK;v}Yg{RK+R@pU4;g1Hz)Z!E28$IgTE_NF`0M#A$c z1l(rdt4fZnq^0F&k(5iDJlPGw)pYwkk0p3jKA_y`j^YW*5_kj$}4B5<7B_I>qTP(CSHP7 zX*88#uF%?ff+T3KN-6t}{@esCfPpUpTA14H2<8=vC}B1JM38&P#=gEy0?q2@EQ~?W z)4Dioy%TEC?E9>cceh;8EHWr4ch^2lS_SmZ97!?%j%E9vV~CI?sFYv1C&ecK3C zs|?RMIWTnglDO?wNhf!$8pY?6G8vQfsCP=Ft-}2vn=iwH4X=$Rb%J!Wqk8c(&1;Pi4gHjkVMp(IA7D}GGP13m8jLb<4>TFz%Uuj0or=0Omy z_5!@LWD*|HRW|MGC;4=>!ZhWwdN}L>$_~_X7Fq(~a;p!-9a7jgTjlWfht@_?q_S-Q z(f4Y6%I7uWMSKznP_Ztqb1Rf3LQXd#!T`P|GI`^-fKSdWG#7+!ok~2#+U$;0$y$QG zRKmhtmnIeB=BO*J>tO}5)$Yawkt=LXf`|`8ppp`;HS}#*vd>v2zt8z$;_VPdZBqL_ zWry?*at5Nix)G)=#%h|AwGJAwVHD2Qu(2@obX&tHRU+7JlYksue`t0U8(~ZxNg!f{ zm22`AD&2oSkiJSL;<92TL^n7e!0{@nsf*sM+HV2m*%kgtODD#=s{T(5XvF;7^%!i{Ck!tu{Zmv?3Ko zTXhvKPo`KgDL95AlBo(t-yivL5iakZ4?$_gYQ}Sem}{<$xEJp<#4OnzGU9%XW{w0_ zFsDZ~>oe1~B$vx~G6-5#P&CVxI4*zJ!92=s=2f7X(T)0R@%$;{Fpjlzq0Veb){2m* zmfC0><-eUxhp!dMEK5~HRz0wCm_^O5o~Slo{z{%J4Dc133SK*p}hiCAf;=8w4c{x^- zIX|X;)5dhdTX}6!qV4!v_&_?BO^FQdk2k|M+k#GSZZASDoUfmB3s{6~KgKs>pGim; z$5SQx^VzW!~u+J?p~v#%@^vt;ePuDG{gFs;aV z^|I$@$=YTv)Zh2+TzF_d5|k~MsjgwaBah3NIA|F&P%LAsb+>a}ERK2B#}@K&L{<&0 zh1!hoiN|P97yO3LF1Twt!5UB}wS+B2mSsvCQlzZSLikv&6LS~iHP?aWbo5jkcROCV z$#l7ZV!ATg_!PFRd%J(dy?(QCLp$`SX4U()G|Z?!v*wu4+ksMY4Lc- zYrIZZ!b4jzrjmM$+9)&*lUQ1b=JQm0WY*MnJ#Tuqls2Pt)zTeNlT|3-VdHJOIzk&V z?3Fe)V(Brz!7XIfU^8H>5$?#H7E4Kuw4FQsG8IKx_u7LwWDqYHuA;^M~}$~IhhQzRvTq`<6XgBm>0-xod>hIz)v z=A?^GoIOOE(K}=wF4}>w=r!OF*ovy?qkr1Xw!bRZ768_)nPeV19(aDRx_@ph6aLWt z^5~Erf$Cx3C@!o8uYZ5iy9%VqRD!Vr*+bZ-V`zQGv*b4$iV2UulJvzGYM?2ztV=o- z$W-SIEOh}e<*9KSVO;`wZLB*Y+UOLM=!#)N?9iAydZ4v_Op~T!Rg-)+?#Nc_{4a)K zM&=N6?1c4gnDMp9EQ^93vYIcqK>U65~bTvZrnNbkq+q(Q8uO_C_ zYwb%gE8L+X?!c4lQIu9^bYY0#qu898)7Yn2r7~nWHG5AjUDCMZyoHR{Kih8fBB%9| zg;?zXgWssC1GO|?jv%dv*)qpL#+(oo5^Vuh7UDos6x*YoftG`Vx4we*={&IvCsX;K zCdpeNWEQ=kMeoZ097SFFo-+gjsDmj__)CxyEaH(O^ecG>dU}JrZ9~y&YB*P-FX%ad z3AB@eAA=8FFPkddY9J3FBb-?!93`OwL|uuLb-7->Hskbonr{Pb7v-1B2gmI*7kdx6 zK0fF3G#l117m@c_;JRpX)&1T1npa((kBi7z?2d+jnVRT6+D~0P9{!4pl41hOhBH zr~hdxmaUSgQ?zbg%%`fA5m{8@g)~Va zMZcIhQTvR%=rJao9oI*?{$&b2KPBg`x6ADa&s4)#>syRg+- z%@@FqdHut3Z3dp0@lskEP79;H*S(ZHlf;(g>i_Ao(=-Ci22d)B?jyJiuqSjx2k}ND zFbQy`xk1!zdRo<@P?*(zH0CU9~C#K|<%n(dgh zj9JboeK@Y;9C)ujc20*_)+lq!B-{*8A-&m*88C!~yX{>xVa@*+^rK(ruLw7CM*n-g zE?-G-JBQvZyCnxEy9*cfWrzHWU&3r)MN>Sn>`ZzI;WcHKBh(m;4)+ad_dqpOM(!Qb zsn8eb3{UVg7M^JAq9dwaH1+g+t1@_{G@Rwy)x*`v?AC8v!}z8xq{zO1oHf+iHsR%G zqQ2kq3`-k}JsRemK^243DFR4HPgN>J;GirTqj4<{wcHg`z@1rAdh8m-DwAfl{R1WvYntbEd1-r>Dnz=!M=4^QJ7t))JmTI+c<9wC^wS8r=pXWQ7=kiX)Clf1H7i$Mb8cIj z4Q+0OG4F-$%W9dp@72ntp<#Y}kQp&^d=@X=Xx*tyhHue*dV4h%sW6S;Qu9WZC|8VV zUd@Rw`kW`JN+MoV2-R|NVP8EnrYK{j{Vwv#JT#KBDibXu)jDgf{WB_ff_AyL@s#mW zJ+O`_5+ddlZEX-{GrN7YAiT)d^+q0Zwf>#v89U0}++z-Nm&-IUK{%{t;+W(Kxm|U6 zsY=5x)?iw!^+U6A`sr0S4ZJdOc%KPX`jv7aOq169XW}@9)$``} zo*Jq@os*rHOih;LS5|*Bir_96ldA=2R)l}Af4(KQC>G60QLf9FlrrH`wl{~@6O6+v zOxrW&2b_vLntoT=9Pg9|mlSKVS+CI5+I3Nf#v?&m@j9g$v2-*dP?BdE1 zUVdh<`qt1&)x^msHz7yW=%Vt~ioP6Qu>|FpzuM%7=99U@KQJ7CjNDf-Z?X_w*f0Q#yiiMu2wBaWt%&}enPUoKR|vzx zxoSE9f{R-FvMjH(x24OHi%Nut839L`f?S+pj?p<{h33o1krKihvI||MV}YwdbNq9c zVf?sA2mzASBZk_QAf+n8R^dT1HyZ@l>&K^&sThQqs0bG{=Rk&0IQko}>Yz3M^T-qG z8V0&H2PK^7@h?yJQXHtIr4?(2@KcY;d^Xdt_(QXv{lO0I+@lg^X)^oT(gn?FW+(HyF2seJtPz*oj3;A_- zTEgFIAtTR@7h1UaJz}KlFX|uIYxn7r$dpNLj;ibQ=FUaH9;$2<{u=!TN*8# zWcO{-r1IWa^5;urq&+EzP%=pnxb6?Jo0)$0Swog1q)to#2)21(>=?AnW6GF_LK&W-Nx};2fSKAI2ad9Ok#3;m;wip8CZ~|)_%E=rf^n0>+ z=7_)qofM*+LoekC&M1a+h&(a5 zrTx{88p+JiC3w&*k3-y_`$%w?%w`zLtsAtYX}1mc(}B2`WvL!B2H8MQwsByc1}y=T zFl2>B2c|6P_vbBoL58A=MD}U(RRcvsVx}8Ag?l1WdJwb5KI#-;^r}S2`n<`K87C7a zojQ&L+CU=urH7D3gn6o)fL;?CxRvvD?K5M}82C^SNN%8p6@cBYxl%flW2UqqLd|(i1FEVkkAyN0?g@Sd@XTlKJCq% z9XF*x+;i2$fgKr)C;HEJ=rdZQlf=ncI)MG*U!FF|lwkTisAhT0%_v3b7GlhrsyF+p zcoKsgh7228#orHF1Z2hQhPNfhF5Al3lutP1C?q*)lQX2(4(P>DN)Nqn%n&HBPX7mi z;L=K&@<^1-A!wmP(V7X0pDe3?PRN_iLP{y-FCpP1R3gpUA9t~>qr+qPu{HKgRfR^ine}$8605l-ffp10J^`E!`9!GEB}1ISQlVT1zl%v;Cg9`9u8kqr ziE2?pI$EPjE#m|ABj86x~oIum_4QsgJIAbF07)nsXZKR+fOdF zohUlaJK>E%a*In-FZEYh&Dkx=TWW4=X7!IC-VjUQmYbSZ(oRxXO$q*WO?o=i5S_?w zccYoLHLiV_p;JyrGeeU#x7>ogCK6qXR6jiIB8o>e1`1+C#h9XBrFkF%xuj7(z0_Lv#3F>QV#?}PPEJuhVZZH}V+(t+T-P0Du0Sk?uT_)teU zvsOJ;HsNfoy?}&HWf)iydZ`(RSOk1e)EH7QjMBt{Lf?@c@#lW)G-1uIBT+(U!KAG9 zrPKQGKreb0`WXaNX8lkWbj6_I^R`e$qzZiV%)>Ypb5(R@MLB48+lsb6WJfuZjf6vZ%U8dr10_&M1Vi^#u3hTQuNu2N$T=D768a*~Kv9Dq_3gkHOV@=jP$ z`M1Ypz-lrAw{CKp2s2d5T&*cJTaFlI%s!;a&n{bzFdm*6uAjT?8&rkszY~5nRwQsD zbTJu_uuZ3k7lMl3`k-Bn^(;cfH78=-*osa{e?#IS4A1yr_X#c+k&0^(eRJIM>&zcm1RKi0={3 zrq&Y#>kTF3c`?Ziw?%?$6)nbf!o;M-f={=6`2RTXfS3b{blT&o=Z+=a4ai@;L&J>;@?lYgpLgBcte;M=pYuYb= zx~Y7%QeRcVyJTpuz2^*mFBje$$#kchWmSQ{;Ap`&RpaOAQ@$zay|~U&@b+9?ky043 z(zBXFRgMcyML6G&($In7FoZ6j>GU&x6X5IF@Jyr}!f4Dp{YbZ@|2$$sPo;ZJ*D>Hq z`5t+tzA{yA#Br<@NRE}If!{Cn+th2-!-CgL`+iquUc@2IJB;xYy_NW2!Va6%_%G?Y z?woF?yW5SRpsiCIR=w~!pwLgo=oG{bANzknt!MxOI74w?pYc; z-ugY0ka~I9z2QgRoX$s`>nniTx1;?h8Ppj4Sx; z(Fm6U1wyrJlv{c$1wM%GZzD;a++KLP z3kvVQcH0}{|3R3!$0d$UNS|-K*Es%LpKCut#%*un?v2oPfDp>ei~_Govx9b9Iu9b7 z5P_>t;#`dUsemLqgJ*yzId{b(DUpkass|#P{xUexiJfDe@{I7L(q);;*@F|ypD~9q zSBoySEX#?bW@c=~`_rmXW_nfCH~w3sA|7ch{bWp%V`L+I-q&%kOr+==D zj1SW2nLjVm#=6#h&%NQ>D$l0Q8OAkbGY)lRP*yzk;_Qae`(ca6j?D^p#i#G{vU1+X z2Hlri=3Bf~sfD^NVFC|>>K&!hSf4@VQ)z-6#v!B4vqQ~JqfbFxIb$at|0y7>K8m?? z|Ci^es;aUde;tI~SU@PqGePM#@$_D(#}(-{(3n_PN!@D{+<8m4l#xXKhwL&d#*wskO)Vt&#;d3a&_|z3YUOdS~3nE;R59MT)r*PPoJF z`q6ouOsz_irp(>!v&b9cJ4 ztMr{{&n@t=C*aaeT$V1n1tE=tS?ISk`9A5F8)J z`GLO2ly_5>k@Gp|^e;8H=SdLQ+#>YN`3~vy`V{P{Ygd8!4tu+OejeO)eiRPI?|%}J zVV%1hjT(#nHhs<^7n^a=S*GH?DkPMRAl?3XC!eh6$K9Jr&<#?|Yv;oSq)d6$_=oV6 zmjy-ZFQd=m6LL1gKto?#DZq0TOcN^x=~jJl4?!>ByCZR}Kn(>3q(<;{!uajlM4(?73c` z9LQlW(MJV0m#xWcm=8TkbeEzW&|L>so1Xxg0rH>a2yPz#0)FQu|EQEg|42)PTD^en z!@2MyNO`Njo(N&igs}aoO1$^~0BJy$zwBy$$sbLiJ$r;G6k!4~YwOU@v6Kgo4xKZ} z%A%y94^syq6Hgr|c3M;T?dGA{N!nA>AU!VK2~hFU(6YWa@#sSSJt!WN$-2ANcC~3(v6jp+6!h^tcmcrxL_iKXkx9vj1xj^3B)$FrC)T3=L`uk@ zo0QWN{rRN2m-f<^qm7cNBG+T-dUZUV+n!-`+(AWj0Z~}OU1)UU;dvYlL@$pDU&FwU ze`Om6C%Y@40LZ%3?>Y#G`g&2 z{kWoniIyMV&7m#2SYJA|td{Ze+X~6UcAiHohTU1yh{hGt%Gaq^uK`dVPA1Z_nQa9m;P2V!b zT-Kcv%fG~3^6t%`p#!y|KXjlwq_jX4GIWPITQ3}9rN*Wj)3EF1~F?AWkm^b=|H+SNzb4j zvI2GC)ij+{RN{=`@J|0u=>_NYl~LhDT%4wbIZ_;uqpXOYz)iiaEVs!VDeA+i2~n;L zu%drS5l%0M&kkRh$ZbEFe#bjQ&Fg5K{zAMhS7-fNw&g|f9~_kOw~KxkZ8pXK7Zn*; z#$ddLi)T|5>(TWqbq-Y58{qX6_)IF!(dy?(w@s5B)y+!t@~O`_GaGUq<&7+n1mrbW zbjPm=z2!#-$>wcMnG`zrP@P*oZ8b$o;oY(+$^5U^^>|0i{N6drH{w80A}Hk5q~*D5 zlK6cQ`g_#ufzCuahrc@?+BnF9y%uM;VHm&MEFqs?}Vzp~|0%A}*0QefC;knnX z@k8YJ9Pg?3z6J=Kmn8wghcqCYsUG4AJ5WPv9~vA9)kID}6Rb{4Nb%mTp)o{aBtYE= z3Bgx~DF=xm6*>YOD61uNH){}LoJPzXQUQu9Vgx|ElNVbWpKJ0kY^z}?W}3~%Uo{S5 zF-T*SYS3W7ItkRz3%5YN1^Y8+^4m>Il_Eh1G`=V5Oeg$|B}UyQ@m4gN^b8Jf`OEg0 zW4dA=Z*nOm^$Y7$$2WgK(QxlZTloU5edRp?Ma6S^?|EyBet|X*Dgn3O3iC;O(HiUhIEt%fQ zP{6UlnTu@T={6d$-_z_7Fr3MSJZJm%`{)-b@-<48eT>wzSiaOox2B~dLxTk-X#H&O zBU2-N?!$a_@V?d5u65n)Etxvj%X*TEPRuo?($V@SZiMLzaVfha$BJyMXRAWdy7*=s zr0LDJlWy90R3g0nes^DlykDComyphSsTwzdf!8e90^UK?1kw1TZw7@CFq9$Q5k;!9 zE<1~V&xq(XNdCHOFvA?oO}|;51jgL6sPYaQSC1Ix>Ajw%i>xP`-&QOT)@-VyyxTtx zO&*Cvj$8`|83O=2si@zWS&N8On}6W>z5QWPaSa0WKD5ZhN6`0VV9lNq`!Bi z*#N|IG2eNAy2P3v3j5@N1p@^sA4O|;TFJXr-f0aYnwquMM&A~Idk6rBE+7vN7I7^_ zsPRsYzfNrP9{pqf)jC|S8NK(oKk~q75J=V7ri136O7(4x6<}BrM^ifs;T2bwY^>j z$eJ=q$PKm4%Y!L7YV25LFLg)t=mObjZBJF9FG{4=sbK;Y!SLT>Z5=w4gY)&~zpdtX zbk`y3^71qP4r&L^zelM4=9}(@NFDTNClb137_$ZsM#STPRgfqIBFH*bLLt?~5Ukp^ zCkI2s@G#4TV&+8moX>~$UgGyUD!K7M!Y{;&v-A{cZBeBMS2YI;0xu5!Ew*8|hTny| z=i`R%e*Wr`9^a2yeqWDdL#~3Wr{7l+Yv!U=Xj+a;R8B_|L&06$=A=(S;8GsFfXE}c zl8(c_l8f^w=S(D6L-~ma96bKbj+-pB-)TLu`x?$5c3B}fro_e6l1~uHgusY^ zpbH5ilA1&jNFGxlPw!OuF}i2OQ>6hpnCTR>P^d_veGJi#t}6d{so%s7WFD_49@;WV ztwm(4wy$NQS)jZK0_?<7PAFoCk{KtnhKvF9FgS4H!Bd@zq~l#qFhuYzKrqN~`#J~r z^mr2=wfgHmnsX*uB-)a3aP%Ys)5=R9L(H#g_c=a3vk_v!VysnBiY#IZ#0A^$^Neq6 zsiH243TY)I6k1}+s+5ZsK~^k+qQQy_1tP#zSP7a6VIs)H>A?7q2GQAuuUk)3c~W$# zp!3k#ik6U{JpiVC8=x6I72Gl|Cd_@CjDdb=dZlfO6#)fW}QFmc8 z_tavRp7Jlff*VA5jqM zVXu$VX?fkV0NRO~7^jGWek=gGW{PR)-D$B-XzFu{T42blH_XDY#Te z>vJ(K;wK?084L|uSGu0((r{3*t)|usKFriLkRPzd2oBBk65c$nC3lcG5LG2&w~Q!n z#67)d$YN^HA<7`IiuK7he+RC+G>{2=1zal(snTUYI54dWE?}gfa@$>dGei=26}g)G z$6^yZd1dGEsP?e;|GS}WSWnHQxQBB^0vWV8yc~DlK*bc@gVXHj@OmXS*3h!{@iXCm zg;X}8K2kWLq!5KdzC~B9sy03KEB5nqPg}&?A+H7B$aFA1<<*Dn9DHrpKSQE}Deu`h zze_zA4lfKCixo=J)Ud-sc;(nY)%ohFtXxlb23EUwq~xFMaXL5lXNgX4oxr6w3p5z& zbA(OO9+rQIfMu{5Pq~Mk8C*{QVY*_{@it9QaL7n~mUZ;;`6z5a*~zAxOrwN86G&6F z(JLG*Ut5_yI`v!Z7Jk=XZUP(p_3W+xc8m^ z?X38k?D1oED|%M?&_Gm2JfZ`T&)CcY{R}Us-u1E%tfS$W9sbmFbX)2rF@%lUmeIZt zoQ6BDZ*=zd^z}6vj;8T#WfZ|J0pxW{j1yuST7fXjAjqnj31{i>kOr}CrEB$UY11w_ z+pdM4WAT`dS`a*jS`O~R5KP2yMXTCAeDGi*Tw%Q;3|!KMz3;7UC6It=dPt}cgnTGH zHyWXp$w4a}o2g$~vmB)YRy_u%5VW8by0<@)P%gcVq4BnsOEf%4^B6xpbq=NwR8WJ= zt8D4$&OKBQLD)n;mY%Y8@#E?EHfReFVyc595lq+SHUflF3PmC^MFjv-5kL-Pl#2x< zQbiUKJvX`Ap`>>V$N@4@mpjctBw+QKl9V(0XP<2MwOMk|l>(X4gTCzjbSZ~@*?Mb; zSjGNp4LKdJj3Ss}((`s*Di$O=}*E0_rJSjR|9sSC*{=4AN7iv+IV4wE` zp$^j}NJs_yoVyO>$q_>cs)cf^-A6+$Czqby7-RO9H1l|GTXs*{rQtwflm2(UH%Yvw zo!4rLFv$$SPQC_%$uW5UQcgQ{s;Nm#G{ry7*+;_1{r4w^ zbp72I+I?p67l6yweI?wmJ4QM+7$!PcJWx%-yu?UXL6*iWjt1h@jde}yN*w4{s-PP4T_;(aiZLxlR3sEGy;`H##I+dvxBRcI zQv~Nj%=-U(aOiu8aP_F1=S>K=Puzi9%F)@R-bFNGfS5!Z_mpCQX`Aj;2#Axgg#eTZ zLI9t`q~x#;j1?E_jt6^7>Lzh7xjNE~c3`M9Z`g(B!nMeJ6`gB+)s4eMe=TY$yLN z$5iO#yQOKgoo%3U?RoBLn%Tgh0=UtHE~=`bxi7s&_S2V2G;6m(yN5mZ-LIa64LI#C zO!z8NOEA=}^j`{y^kVVo*I&J?x65ViFtrj~JU=vCK^d_f3>dirzJ*3P zLkJ{nRkJV5GWa;rYOJO~t4$1Gpp+m9oxLHl#+{9Z^rv!he*KU( zbX3%DPCU4lW9MBr!i~sZ8voDD-+Lk*#QZ!!K;(LoVzMYToi6itPbVWHeXv3a9KEc$FPZOkjJGn zkKWdOZ8ik=P=Hacv4rfittf)bo1u zo|7d(kBW#=DvJSRAhAGHRtphbE4$OW#pv8IrWWy7h^Y znxINArb;NP3BZLvRn~f$SWm#ZYy;kK6z?jaLBxKG5{DpRidFihle(UA92kEuT3C<% z&a=tOdiVGLCwJKBZ(LERdkw0wIQ3oK6d-#X`Zzkb*dRu5Y44)%%S5<|dj+<^0nAG0 zBvmSNrd9V$IGK6nB~(OQ+h(aOwoq6=pg`}T(+py%B?mI9*6Ok#5NV0WffCO(D4?G_ zw#hd579_A=pr|m_+E*x{8B78Iy44gT5lkg8*87u-e6IS~Cv z5e5%s|1CY^3qjtsKxWiIT<08+CGQnO@ma9BM|SVjLKDWxNH)^3Arth=XvI1 zrJuM%8qjZk54Ol!Y@_CG?`H?5{TO15$3c64AHU>zjl4mM4(9)E$+?$@VnyTC41u%H zK_P0&VO3wXOg5a}oliJVCv>Q%&h+Ygt`u~ph;bj)XU|EVN|d!h{LO!R;_!6v)Hc#m z{gdBF5MtOA49L&%qLtRsS5mr`se`%IFlunUhvcxFru6H!c(}=y=LTySIJ@L@S;WTD-+KL{(S5IVaQ@!Dc8eyYLMn>cq?lDonIU9 z(bl;Pbw$DE6~>9va}`kq4|GUSA+zY1nQO{$pGhev0*McwUrLp#45wVpXssS~m3XU! z*5VnDc#^+D#T-h??#xU(gBaH5cq;={5{&s2VlU=xVWbS3vTs`0TUf`Q+czMNex&x! zICy@iLy6;5;__xHSHEes|Bj|)YYvYZvY#=sGM;2VgPlIzRw&4yF?w=}vH}1hi_&(+jr}!oF7s4udbU$ zOudJy%%TrqM3Czdn2mDzSI|)uA1j@*#OVMe6;w@q*IyVJ{4b+i53}8RPpwqm`=7kJ zlgvrW{EE?(Uw3z8{-GYNk3Y3KQfe5=rn7E4@W94#O!I z^|)*;R5=n;1N}$$EQYBkx?oYBo3<|I6v+`hX6lA8|K)|pYi6?H&uwgg#wBe{~u!XeK%^q#rjph z?msseL}lN2qb6=cqkYFj}R+yu>C-q?LJXckRf(D%10#KWnpI zEoJMW15t)Yb!EJ`T+hAia6W952%{BH<&LXyg372LGuE)BHyK&!b{AurIHralp2>B; z6^VNTg(xF`I^4a$L7}g|Qr+3w7K6$&t*Ufi8=pkIZ)EeiwOnjKwa`n|t@+)c4?nRV zR)(UUGOohR7f0Y_J1pneM4#Q#vdrWZquevi8=H2V7fs68Qzw=akvKSxcS$zN zrXIWY@0>7jy~ruw!*HX6)di8fnHI2_X8&;q+*>jpjRF%Yv8i;Hbp3Wl1-=0UyaXYv z&g=6~9=W4dKTh-d?8e)5MykeAoR%S49_rrPotY;8+E7xQm1;~wf-wp`ncFZ22?uPi ztYv02C=TsOFvST`Dk>LvUMu-?+^stTg5f!_r2CsGfb^kAtM{Jk;(U%zX|AdtzTro{ zXZk+R>E9s)(+Kvv+E0Peqh5EM`b?7~H?ZSC_4e#HZq7I?$GY_XgHcUrwzRczO>LUB zk5)o0FJ;;4(wNHBA{w4!bd(rW61&6&WTkb80owWw z!D>H?wW=SFlM%zyq1uS*oZ3?O7uMM-Zs}F#%+RV!twLckf!l2%>#zxGkPn65qE9J= z3^P}1LxTeeH@n#)l9(*x-n%;9MjYEHHa*mbeKvJ>?w+^ip|v1#Au@+E06D6FIBuhc zrd+%0>eR9+iZUt^0np8dkk7*mylvBKx$CiFT^Y~eqSJN?i^Vi;4EHGKaX)_6&-=C) z2{^K!%l(I0E!G>TbQFf7O6j(L%k-A%jLl zBe>(7Bqs-9Mn3;qnoucXrQ}>mkw}Hf9h%!MiB!~qH_A&`5AHHG0lU}DwD#p3>PgG!kYN#a;=Ptwn5`s%lXve|igJ)TMn`KT=W^ju zc@xr4=Qw9;xn1YV@~g~z2{-p>Jp?D2uRDDYB7M^X@H|`mIO}Z*JG&(jd7IFw-mCpw zbnKM&m5UG{uvow0+=SdP=VUq4ZYYvtpv`JmEDwijTzhn~2xr3RuXg}>a6M)o7hiL) z)ZMvsFAB=&D7ve<9&0h!qLL@;Gx=5<5QpfW!z-2KX1Y^F0@tda(6{C$LD9niPoyj~ z-%}Ff#;k@w5J4n7)REJxbtH*rgL@@3p!T(0MkrMMbor?-H6ibA0rrfRtcHkXoX<1# zD!*+0JrsVb7}mcNlLeEh@>N?mv+?ei<)%|+>)bGNh>Vd&`6YGlV8DVuNU!Pj%){WC zoMb23lnj2CY?vWI0sJ5NSPL=kQ}q4dfN&mZLK7*gLWYVSY5<36*62JVN|OkEs(jbm zq{iu%?X zy;8(fGDRLMmJewmOoetBLRX+sA*hrD`U!r@$Dl%FL;$Lz6*^>!#*|VKRgfiC=b^w5 zFGi1qf|zD(QydGkR0f^F0@(c?wph4Qr6S8 zQ)oaKsJMt18I>UdLP9$!MGXI5YH13Mh*2?VBIDUym6X(@n?Y!&(L`#ZS&2?8v8nI& zpy4PQVs#PNMm8ep3(1HdgFIe=AnHpQ+whm-wxSE(1D1H2qbP#icnp)lsaEa zc8&lOGa?LGr4I%OaSIHzDbKY?G9r2k&uzbCw@F6pPHcPS2QgA@kTstgd1xpqLh688 zz3cydyCzsW-+5v!Ls<+(RVQUUDcpK{RjP7t;qO1$&+*tDNF1o4qYbIl&7!k%Xz0Mh zQJg##G}eeHrph$G+-vq5W$ zwyk`uUbmy>yBmQqLFwqFJ=*t;{0f}o-+S2onR}S?Zt;FzP40U&^pN-K^y&wgoeD1h z1*Sfm0W#!TKx34R*LMs)pr8vSTJD|)E@wH{ zQ0}p}SkwS5S&KHBQN6mSUZ-**zt)#$mFL)pymZhVs5bdW?P8Bjjh_jPOqOYf8gL!I_} zUJH=?mg2=pkhXiSg&4WPTuE1Lc=eE+%0zMip_z-#p%kYZcKrtyWt-)pwN%ncwOaG4 zUI~o2(X)2HQ|)TS&UMwIk!E`ag(+v!$u!Q7ql-96wjJa*NJO%DhqU)9E_8$}tiOkZ zvdlN8bX2I+d%*OQ?`-cMnv=Z!wszZ2UBS-8%t&w8I?W#E*|=rVn67E_`2Y98>bp73 z>v~kutekF7z=?c_!4Z8df%qyG_ZBh%)qMlx;Q(DFLLg7@OnlQK9KV5j0Yuyz(4)ie zspw}_H95P?O@Wv7nBJJmFq7@5tLMH-8U{BiO9`ByA?TL1FK@5dw6VR(-Kl-Qm95{fFe70LES>RG3;k3WtZ)U!ywN|swFjnF zNc;cfh(Y!}bb$pe=OjFUfFvO5+EMKS<{6&6Z2>)5awY=EgW#?92+Zrq>+$Ru2ADQI z9AGB)C!+@!_E{4nrH?MIhQ=ope_CrpHv@fI`fi;(5sr)QTPkxq)t-~@5)lb{Hi4Lj zlEnt&`Wn{SV_;aXN8zFZ%(GX}>-gvd96-S6%z5hTRI%mQJhU=ZQZ-C{(jvW?9>_L~ zvV_s(z6TP8kV%b=!#=E(3^b%`#2i%MYdr{ZS!#x?rVkxA;N*9FZ${>uj!oP$3;Y|S zu)@WeL7frLMS(R|A=Zw|W zQ4&!@nB8BEyZ3j}c}QCKcHJB!Gc{U6GH@M0-!m^~+D=2b@fo&ncK2tsXWUp0Ov)p03&2NV&BmkR^eN1DA1-0pk+~ zq{ycNNvb!117XrIJhQzqYvgZp2&sD%t5Ee*)6We{J=e118GNZ>;`o>o-H|SGNO{b^{dEmgbl%harLJXl4 zz@ywj0J9qe;^8$*03?Wua!^KP5%ONb0}BwFf#h@}f|tW$3Yj%(Saj*?-7r&BGhE%i zqfPy~SnQ$}%6Q&%U${%zZ?AoC4R=f8BtSsW00E>l$&*F`Vq#zbCJ4Y2 z0SuT4f;7Z5zyeQ3m;}KZ0MiMGXvk#9X@W5^8W|Wv38p3}G)RVmVKD}bhLgn68eq@> z&;Xc>nI3=y(PPCHrrM{d8iWu40MiJ>$V`|2Rr5*_$P-xTC{X!m|sM$dj!Z8|R z0Rjm05rUgj$);1pC#mSBz?q3nwNFz#klH5IFx2#zG{rwtO)^H*&s5WCrkYHRl4N=^ zXql+mCYlTo#K<0|gFpjnHls#H5Nco|AWa$oPf3896VN71(qx&W%uN`WLq#``Q%@$+ znUwOLqr~*5lT4?m@|#mfsP#Oi)bS^&>I{GbPf_X_4Kx9u0009+Kr#aoK!5^ikjP9L zm=h+NXw=%CjF~hV6!kpN(rreXWS)$gG$iv)3{-n6cug8jKTw-ZPbAq*lo)77l*oEb zwM`mn>R~i#rkIaY38svLLq^oL%7NDLxp8dvFe6G!i84_IBC$akU0)H4%n%m_&6lSQc4!v}@ zGSqPYt`+Ivgg0ifv2<@2I3_1PgfK7`fjGeJP=iTTW$Yrl zwu~w8@!%X>)*D1jtN6A2O0JwmU>)6dtySV^c|u* z70Qsniac4wMh$x{o_s$5pM{F*8Ehn>1g)42B?ew&vT%v|wZ~8NS?WocyI?>@c?6-Yiy{$`%t116cC> zQ&jxBv&!PeZ}|MnF^nDmFzjzgq1CPXzOnT^b%Reirb;G@F5ofz-L>{AS3Ixbdi^=N zoxei<*{x>-$6e(fUj*&;)$W@~W=-w_`DKa9IEDvQG5%?J=oz8#SUTuZn_K1FShyYY zbkP=F@XjE0vrE?kDBK!?arc;tEfMkAp`ukEy804bS0yrOQd;HP$ zzHY7{M@uMp%{RK8-&ka3ZNrkDi41^gJoS;cN;WI^%Dem4gT+tB`*Px z_?i52cQFVsXhwYN^W|#aY`t8y+<^>5!-6K1SO}0tf(%a*>ooi7lWQIubl}DCeEV>T z5+{&Fej3>%CIS(Skz*W2e2k?nVbe*KkBwg>#ail(PSBEgZOCH4PgmzO(g;6hZB*0uG2t%gFUsinb+Hf8Mzy$!12-G(Y z)k~XdPH&&mYa6xNO=9vAaY-D2fTBFfg-;D-f0;B(Sr4k^*1Z>@<`t-2E$>O(OgZ$4 zK0-3c2E<=(&cyL^H@BAAm^DrmPn_4wea~-Ntp*4|{{*7RQJH#(Kd_^fOfjaAxjtZ| z(mmZjhIV^_2JcQBe6Eq}%*7F7P+!)_!}~SyH6*A+N=MA`KE6HD)$H7?(_z|~9Wz$e zirTJ$Be%4!)utFj|37 z45;jrK%97A^I06;w%x_&Vmk~-3VGmdg6p?_yJ8uMIqWFmhPlG}O@+<&9lEP#Fgh~3 zC(5&_*?ggO0SMODMS6sOy;IXb3UzRFGxyh{+qmXf96jr!A(ZkU%7oNF)*o3nwy8NAn^Yix=60u!91@ z1zI(mo=6aa9Tf@zBH)yE1izZPaYmFd%{y2FBvJq+w%ajwv72Cv2`Dg00unp~)!C9lssWbL*)%d30Qw2YF-ajY z%$&&tfJsqiKqVyr$OMfQIzAJF=nDHbcgXHInfn&zk9*Y2?EN06PGv3?0yIMLL>iH8 zMAoaUTB*YZ#3uAv<6?U~%KL3N_UnJO@g{S=tc{v_DKkgw+$DItET+`P18xWxXy2u4 z^7y*7S{ej-H0x4~rDWv2SnHFqejs<`=fdr`Ml8twoEfkCc+7|Hp?`gewX8wB?RVBY z^ZOxx-rE@$JE z5(=-EaI0*1J4=nOC9gYD*|f|HM~2zg;}3)Q{xE#j3681-4o2^H zZFxL(rk39$o!D|ZXNGD3k|Y9vQjn5?B7Ad>r(E}XuPmjL_@OpwEd}4(?4~jYiPW_mO$gNDTcC?*cKeLhuJgLi zcbM8cu@pOlyk7sG9;+u!+VR_I@p?Mc)K~htJ{jRaL}Q|dLK&U|iyyP!R^Zb8s&kV2vhj_>-O**{+JESJwW5#4~12uDUL9aAc*IQck|4z8Icx1_K)G zHCQAXSzTeGUsNs7vN~>kwxcU}ge)cST~at%ldmDWbMK-#myH%P&f%a2MgxO{<&8ax zqFBBuCA%JQVx4n<0=?elK+Ji0Ei~y}%1ct)`GXg__}Hc29q%8@92Sw{^Hv<7tTh~r ztH6Qpnwo=Q=N2xm7mb7C_!Or5ed-@ct%w|$3LPo00HFAp!GD~ucgSd zH=0|D2*(Ddy`5C<*sx!KJy{4tJAy9y+OpJU``=oY)}6BF9sh-TyK%D$+h4S-KbAty z0mym!6O7~Yz{}Nae%$3OO83cs*EO=IFMUpDO^K=I;Z%^6tbiS1OcF3de)pTwbien_ z5op&MF9J`EtDb16U*kh_6~NS#a&$8%&p>X*6PwFVXG*qoCQ2|gd3$5Q#ZQnU_OFn> zcW!5eDfm~1)?SWzD>r^zb5ry66j0-byZ4o+s#zmKE9SfBH-mQe?tWm1(lJP`K7bW*z z%jM*1L{z+-YKP%D9H+n7>ge_S)mU5r1#WV%H&zhtH9tt0)^Oj%&$-y2wZlJ^tuc-3 z9FKXbp&t4AGYU!-3QASQL&p5xr2nPmY&2#FREN$`(+p$Kj*x5ezbHZqu=xR7ST~IJ z?cSpqELz?!yxjBcxQCeXO#5(@k0k4W%uGvL@j_rh+;Hc82vZPrtn4v{@mqZCb#N@F z85m=!5Wz^wZYZ2u81v*Z3fyCktmEi9N4uPiJEnrWEY{m|uiSy54G&O@fT}S_vJ8ut zf*xc@3WG8v5N}^%K*~gb@Nz5VDplX-ElV z^eiBu3Wy;9fMBWG2C_gfbA|?Ph|I+AJy#B3cO-|rH6kggsRC>IRpjI3S$xZ7b7&_| zqL7dfzNVbupeD?`@`~xkOa!IYEESM~QwCht*A}!h-(1fM9dc4cs!J42UXmb2rDby1 z?g?@&hTi^2e_pVt4NQt!m>$ivezZm?te$c15U7WYyOkj0T&(pHL`R(h_=2>n>gL*b zvSUR^Rcvw5UbWq>hi1cr9ylWh%4^| z^c3)Gqq12fn*bO?m9r()9BCWMZQL>~F)`KIu?#WYD~o-#8P{NajnIjZM-meBO4L}# z8+IY5#W;)K=>+urBhSrQ=RQ9>Z?64ldh@2jY%cy_BvYo<(50zyL}D!TF7Rdc){}Bk(26-pvmCP0;`2L zLUlE0I5TvGBWGx2hgfD(NFW_e5m^ly41hN$MK>sfQV#~EWM>43ZlUB7P7x-O;5kO{CD$ojnKT~BIB*t;dQfgNB{`e z#RF4X&H=Aj-rb(?Jx9se=g_r76DhFk#j65r+8xDmMx(o0tS&yZ+LNX6eC*tA@rgU6 zEylJ~r?fT9o>+*_QSD7QJN)PXUYQ;yRNk)&{BH^E_NH~7@XaG=Hd;GJ!?JU`d24ld zM7a>gZtmcU6?d~R)A8Y&Yvs|JbE+|_sSHq3Eonq7{w(I^Y-eF?H^~B0Rd**YM7n!g z&)svdTOP|mzyvVf<)X=Wk*@;#w{Wic5B#`z3MU*Ao>RqS{-(oPx z?OPYr1Q5e+hsN!i$F1uLi+$Tb@7rODfdfeb6g@l*$~gMwH(IGdaQ=e6A6D80XJwEB zMbxyZPDv&?zzeFiNf8O$&aJ&DyVV~7aIk9{j(OXj$Cm`sBhX3}t-ue`=oUE$xpvZyENMEA%eG#iS}J{B92}_tkE@<2KCE zz}m{s*D_K0>~l=BN z%rGy`lbJ4`Q@YW{kK}GT>rC3cp2oIa$FjSXGNAxkB3xeRKRx0`;d2b~!-ZO#N@No` z@Pa}u5@2w9;r2#`ZHvw=KJ})h4a3<|jSS=ha_Hh5Gl|*r_FH~{Jw!qX5>P=Piby1o z2qKY46o5zokx3*{2!xVfR!gnVxoTdXNVGLyAjd$-B8#yy_&xrWrjV&+9zHY{uI8gK z1d;?0HIKMtkf3aVApi)Z8&+9^Vg%d=dVC)<+&Fm<8OQ!QJ%651Hb?h zA?uG{!Sn#b8;G)PwGI*lj?u?Z&Sh%ErENk5aVTDL*%yF2<51Ni4;D)3H|eZ)M6Z&u zcAYPW%(+_3>mqw2RpaDA82z_5mf2rlXRoc^T)BK^w;No`P>OwXw=U4*2;964mr%q9 z&Oc4*{g+(e10)gS;<~2oKKH9-;KQ)UoKjneNiW_i1p&gHmFg>X){1j*y&;sKh;Rec zf*cFaME%Mc2M@$z*6ybbgV+S6R_w;T;UbnOCs9Z+e$N`_*~tL{j@t)FT0yv;-80P6 z1}3=LUy_h6`#24CHR4T*rIKdqF}K+w1vCJ-$9Y+R4p#1cKiKKH3t~LG3KRCe?yVFh zRp@X2{-2q$y0?+`?RTva5-}#0=)jw-;s9J((GeL92T9GWU>s8_`;GlR z8>eC(4g55LLm2?&wqV05m0HdwSQtr=_inVhhAdjF6*2o#NCPuZV@q=#d4efx@OksZ zY+e>S(N?cahBtByqg*+jP5#-}|4D3AB9#nt^N#0whD#xSkw>)6rZ6EOZOsvo$jq=Q z>NCF|Z1VNWTU~7b8pCzGtY@t0HzNclqDK zBo47{+RAx(AYq@=>`Vo8BA0Uvq`X^WcH#pL?RI`i&cIlyDToUn+NFHAoxSVVF9zdm zFp%Bu%mT9BQFOdB4%qf2{fS7afSXpnk#K<+D6DwRgj5V9NC?}3s6ZN6gg9~2c_c8?L5zX%1lA;CE46A1iQ3~v zj2GCNGk>iqs!clX)N|s5#lKQ-cOgbA!LLmsP^eRgdai*Jd*{~AiaKSFi~d#H+i|; zRO@)(WT^heN0&l8j>CbW$Ry z&jK?Il2#R05g~CO(%HSF0=KI96?!g@;`Gs z$t+~S1PX`9R`;0%?Zd0^Q$I_3xnkRhCy&FOQOn!jCF5=dyF2wX)w1XD+m(H59f9~^wp+nP z()~B=GWD%}c-j9eY?S?0g6W5mlrBI4OE+8a<8ru@jmCV%OKF$F@&zw_k_rBo&ff0jJ{;}9x(_!POa5KW6sN_+84%`+?$-$dBR7MyleTR7v4k|3Q^t$7N+TI&saCuCcr z(5Su7v5y%LQYe7J_CJk?=f{PhFMC3ScGVmM>>z{!*rqq%Kx3FFpxx2bY3j3#jW|d&Ku)zs=^hC82lkvpoN^GOL>c;|~)Vq^4IsqO7f| z(dF%}smC%8X*)VTho_Ct+H_AV!;uQBZc|V8{G6?}D7x6N-tD-w5zqy=qKB|s=^tZ6Mp4pFyG2ycydt@HAl7cSZpRJ@_v%Glr8{x2 z7|f)PRsY<_#e?#vJHg8^8Q2=e#79F^!=l$%!UwcuQGmGMI0}@1?@PEzCI4a3jxdVZ zp`5r^4q7Y+zF3b(-&M*D7ykoU7O7FBOk@%fR%6T0sh6e-i_X>mRwfVEdzX@1F+3wM z+*7mkIXe~zO z9tYuSHK{)@$)6fXlQ1|Kq9T(cBMT^sYO0|QSOnzcLDZblNl5OTngW3^OFM{!=5r`m zWe5z>Z@pd*_0Co-RRjXoOmkCGL_#S=Xog0mn)VT^B}o}k4G9p^XoxB^DIt-AB0I@i zy^QFrm8_Bx)kGp94y;sRQkby@Ni;+wiI_z&Vc8 zS2F+drHnTUsF!-5i^`MKusph#ID_pN5}XU5LO(&e7(q$Zxb)pA|CacCGhJogOP)zl z5!6_c+M{-5-Bu{D(V?P%l@JbfwEF=9|CPv-q%5STEic_?E8B zv2V~lUcStNS)zZEXgi$;Bm#7(vdC_!rC*(flwyF4O5||NM{{Wa1#z)>|3coRcjH&c z1g#`f9rsA0QvYU$t3_2eoD6gH}=HI`M}M> z@z-DH-4bK$?zb3szLDc^VKrtk47sUZ4eLH<_oW@jC9~4XQ4lx@0mJtTE24BlywL40 z!{SdG`NaPC3*Bd+%zbTDIuLp%g2{;i2Ge@NQdYgFZYjnE`qkG3$q3?qYy-&3lQOYf z!-pAXw&Icg#RH#bJL(YW;Pw0s!9jIO++Sv%$|+V4lVLj6^H6EnBm587K0UiUR;-Vn z@ZI55o>qD#ZTQ}LT9I)tc^9=Ra*vykm{0Mo+oz=+6CGt$s`+@dNq2wuBYb$;H2kWg-ZKTP1SLdnY*kl=xCAs-*U7L88GC&b0}U9_g?T2I(U}V-$xnr^!7J4n4+0TTQGS^@P)IugMB(c4;~9=jLI?fS6_glnF@=op!ZhY83hqrW!nY zah-^cA_PVtIQJuuDaMgO+kZNrYO@gcpTqO=d>yzb`vF|=PXq>s`updM?j8bhZ&a#y zfDu=Yz3Xg7=R&U-LhHH?6Oc@(2D<0oFY}I;?w@=X3H2|n-uS-xPswR6dk;wd?Tu5;x+`h zzt^XpurQ{0va?3w0sDdQ9jAD>F)&p*zXGmei5E>+$}>D2TA+p6<%SE1jB4+4&}ZK& zehEg9VRH)VQm8u)mO`4}R`U6FS`dY2W|UhZ<`!$>YwO_6uG*n!)&Au#R!x7-M^##n z9j=PYL8+(_3n_z8Gbv_KbwlxUX#Pes1-oBR*o9lIZIvbq4r-$nS{YZD_ zkir%Hj(Q%1J$HwxtiVxUmSKYVG4pY4kVnp_x)%pWQ-VH-n)aa5SYFUj#5-oL9H zG&6l8vUIx_(jUyd8a8^rKC1RspGGH3>z(?|hw5f>vTMC@&3pE~vTmjnzc1tQa0TH4 zw0UX`TL$R(Vuzpv&)+;$;k$`o^JxN z@a9fW{^Y|5Tbkw44X3!IOl6{Gx2LsdtIzqC#sJ&MDj7tD%u zW|}dT7`ZkB0e5U|N?9LJPZb(1%nWWU<5=5NtzES1oxEIL{g%yNgwu+H;h)TdMwYV& zR+~2^TL6O(7$&R*0E!t_U0B*1-$1Tf zN{Be4NiMJK5YY5`JRZ*(6RWZ*0|logxy-L4V|NwM$9d@S%ke2a4!P7=tDn?o%j9hp zM~4}&3E_kaKDB&UU%31fJ%p= z`mSn}kU6PRd#U1FA*qZd(qbksW%Nva#-aLd_hR8qV698@xz&`B&1kE0(qF!P!kXI- zKc)!cjpsXdy7}LBJX<-q_Bj9s&$?L=&-m<}4oSBnJu~@f0B%M`@4!>};Ufm`c-C!v zza&%li9Y4xj2`u~yDo6P}bQ zO-h$H@@#Y7kJ`nUnYMO!;&gA#!PwuU`;z2e<(9!d>U&O^Y2WquhRhELN-9YjugG;u z^Q^obrhxVUn0uc*t-D9lX?LEu+KbJdu59iw?eX<X=e1(U6vErTd4sa^lbD@#2m)kB^Qe{d|e`9g1TW%bHpk_)A60PrKi<4 zJ3LHyB)}8#Jede5?=1IC3yhe(Xohkw_%Yy_Olcq97jSA zHe`BR_mbNby&JA=bk&d7fVrh;??&IsjP^-&HQeDemMkj~kvlNW94Gn3I4LZvx(bd% z+nt{Y8=EG&tTRn&zBN;GeU3eiQkg!@k$?2v8eJ0A)q6!IeTt@!x|OzOyPmhUY026D z20&{wIk-%5H==}40B*5qr~kcXb+ju3%RZ#GV9KieDV}+_+es)@57f-BsFrzB<~^gg z!1xT%G`A}KPl5aB*!y<>9IUe_AHIIH=8A5cRO%+bk>nl>opKQwH_etMdyTp0-W`9bct5U2;lS)QzE4z|J(*{1mNi;F97x9?JxHV)nmeaJ# zSADHaxO2Go=u4i_X;L}Q=^i7fZ7$%dGB4#`leO?!V%EQ9&-vsY{yxDH*h=f-CjcD{ zzKS30GRuOSVc{wF0(6XKXFH4UvRhSo>bAne);YCL0nK&CQ@_ z{zG4{J;WBoFG#cD${rVenA5OK(&ZZ2;eAQCYrYK#GAPdTOe?*jOW*1+5g~ze5sZoi zYKq$YApitGA&$UT0;G2&1{Z=b=yrbnfpc34${eXzFxtq4TGG&Q6=q`m+6RS++4O8oeuLYveGF`l3&I><4b!{s0?XrIEd*QSqZW?qvLFqx8d{o2c#<08 z{W3;YKJJGzb2)vnfj-~4o@Gj7YhPMk;7#ut7TCA|4$%_~xLGCi4^HDmFt_5|O=xFQ zpYyDXusS@oyZ4X$G;c)F%MbZUEb8L#pjGE|^Z;k^nc=Q_w^!|1Nl^3RfBH4C)Jk3X-pC z8o)6%ar1KKjzj_g%%m6t=d!AcXpFi*D@5k7R4?_cJqSsB+#Y0c6R6S2c0xJGGcz6m z!HoI&y;C2!$MJ7(#?aM)(v8Js_p^GSogwYFNX^yC`FmtF~CU#Q{vg0~p_9O7{;v%HidM{H72EX+5( z$?CHmWu$}RAOtf#x!yG~+Wt5IVD8?0qBAMtZ4=9j)+5{7ujCBJXXg7qZ@u{{Z+*Vf zO{HOvLy(>bPiHY``fSVx--oZt`qp4Wv+rAG$&y-5S~(E7Q2@| zRwO#m!`OE(zva~*H#~&B_J>g89m}vq2Y2;lL@gGMbUQz|8)&Re9B-!O(z~S?im!*s zzxnj2mR)omuYF5=-c>O~Q1iY0{dj}Y`2O?Z`B~!Jo9%jT$Vlbb`F(*wINTLk%AST1 zVz0ODFqmd4qoP64RN$CTh)U}^_+gS1_pi&-`%_MS{d2za;npvScJ)iH-X677f5$6p zv)yLV)+iQW-*_R}L(|%&Cb&Zey%#QxR&jrS%$OCEG=0qlv;3*_hAi`E+f5}8Q~zQb zoZXbpqVWvaoisdBP%>%eVmlHy)i0R!>Na=vTyBC01Ou(|oVUye3VmV+!@(r|CvHce z8o%Kl3#@yw`8;oHd-3CaXk$9-*^M`%`X6R0xKIcKw(6W|YDhp5G`fY4BXm8w#7q#c zjVVw>P=CQO@;qn5WSVRon1eXqOXE6{jr;)a2v9F24eQ12Bx~UNZuf+Gs3Vu!K+#trNf{hn%4?eR_#~uVX^DxDbQei zs0_z(=eZ4E!bMng0MUkq5~+}NC*%rlY$*Pi9w7D5rmW;gQyeV-({fv zpdEMU54Fk0zo}K+=OL94c|vGEZ2*_AErEeMTc*z7;rYX*4^2`i>S&C!e5#6-Y6`kE zs*?eFNZ5K|z+Iqf&1%G~8bLoI|Eqj}Oh~(8?8^ote|4Vkd%VijeF~Q-?+v{g#_W9a}k6QrVQJ4}UB-VM2B8XVyO|e6DO{s%yWN$T_ZYo!g zi#Rg=vy?8v`K3q_@a)zUp3dm+?JX)CZ4=4v{ zPG$}d-1VKBj2afyrX&Pt8?LkYeJR;+?4qCR>w3*6{FyDUe|FF-=(GsmKPix+n(#XEPkaTXm$@fY=Sbfn?;D+=+@R#juU zc@b-ea7&>ycj{q?<0sRkMc7ACwLu5NQBdOppg`ip41yG_(XY9OdGPKsALvX*12LW>a1;8x)HtlO0d|U`#nRjV|+|(DoMb1XA zU!|$qVq@+9-)XAQU7E6lX@X-avZJCU-PCH5sfAZ4u`EYvP^nF+0Q1mQ2jU%bu%z|< zTM|g9-Av9tH47ZiY3n_ze>aJ!*ku}vbumIH>DD;-wd44T z0GTOPrO{bWZe8Sw4VHz*Q7?t<@H%23x47q?ad+Xv0=VHY{G}m7B~USZ{gDu_%V8@e zvxvZ1#69~E!bzxjRP+vVV$Y2jXVmVsI++(n6b2`DYA;^BeJ0hXG1x+%%DuyI!B%Qm zDF(jNT7|8<&JQOjMeNfXr9G@EifJH(!5TiQzs>6T`dj73)4d>i9Qo!r6YLklJL{a= zZP>nwQ(Nih?X(<;SogH?V_sjiHWB!h4HW|6BIs{dTe|D~SM^w6;EXIJ&Gj*@dk%I! zEe06n)ZJpiXY#4pZC}WBnGR8qZBNibRH#J)!bHtC7aH2awR1PfdtK3B&kQ9(Xi_+h z8LTc8O;-7mOg~qJ`I6r>=GTPyjfemOG7!UrvtG{ufy~f$fePusagbTy_!Pxi64+2`ax$Qs1<)1H zW4~g&!h;R4!;Z8!`vY3^HH0!>udimu*maC=NitY2M3WUVa`mzY4q&J2mte z;2640f~;XWY$wA5?GmB%=;=|il}s3bjEN7;7Gi9dRn}^>cNo~)MZQ{_-0cjwbyk21 z$QuN0ysIX@)(6Zfpd?jv3jLTyLc&FkI4qRZbbCY~I-E1ZQ@lJ<#3L_l2O}ZQAcPBs zU^^UH(YkwGv6`8X)R8tSE=lKQHa^IKP-WDFgep9eh-_@jlc!SY3(Th6Q;NoxY(gYa zMFkT}b0UH*FeZ}Ez5j`vNitJ5MNniUk{bem;E!xJV`Yqrvd3)(YWs|AQm9lmZj}mc z&)nGrQj&2q?&toceI2@iF*=;f3n1JOY#|WM6QgRm;e^b6Kupk*F zjC~72sl4}7tR%aJP(c(K5k%k`RSxF*bDf}LrE?6?A*{CfSSQWF#c~q4LPF}|#_FK3 zgl~=vdFq4|UZw=ejGP>Hae9EFw@RVvqpwkyxlmb_+=@-vg3`z}jV5vmgrOT#($ z0}9h_bjJ*9WIkn(EQw&c#lf#oDePtg=!Y`~$F4f``0g}mT!kZ)akIH>tw7n1;H75a zn-di|bFt>TS}7EW7q-_LO1i5>w>+m%FJP)1#Bx7-U?sf2?l0^9flD=dyWe8h1^skr za>0$xM|a}eZZADQetj2`VCo%kB)A4qHoo&HT(s|dp9=S6E@wY}Gm2sqEg5W$%c)uW z0-D|7KzIk_C`j`Qy;3GlS*f^1I=TSk-_=_z_v8=(eZwVjwOz6tigLNx9FB&7jS!6y z5~pi{p-0o_8j!7^Ro_upJQR!&Ex7nO_qANbdj3b3Pb=PaG{M(bgbKp%Ny9Kh#Ykn8 z9FZR*9n^cGOv9oHH{UK3a7T&JXsD-4QcH!0x;WWyz3HiAb3CZ1S;oaVCcueR2!WW$ zZxjHH=;Donl;FY0832W|DR)Y2MKd=_%3NXwD0k*#s38)S0YNfF0)v8(BX=ZG{R}c_Pta!Uw@yh-^a51{o3JA`*f% zw=Vn<6_I4BK~V+(rEy|GtdNE`wOL^hv1_KbD-%E-vc# z`+sKsR$lzjEt*Ls(Q7TNu~=Znzt7nE>7=8&`b9{NBBrnk#;0|T5T zNDidZ5u-l#y4LLgEK<}nBFJ}1$_dfk?V30bNPmifj~ma1Za{#(oS=^-;X*0*j0|Z{ zIM>U^iRsV_P=%BC#$Iq4sP%gsSVi62w%n}e2femTK>aE6vrU`yza4Tl6{3JV6Rp{= zbq*leoUFuKC?u;P`opK_%_s;5E(s;yOkZC2LjMDmm)~FU2A+coyjR^T>SbkX@D#*> zkp>b9L2y(g4;zwWxV#7pJjtFPF*Ek$XCfwq1Hc5$8-ZmoO?*t1m%-u9+-~#X-O=6d z^WXab)1AQ^>=J)&*^WXpc#m%{CD*yiMDQ{@%{`kj%c_t8jzAw09&v!POpu+#bax&zFAix>%Ys?p}%SL7B^|9lX<3;G1H;lk|46BLwZ^=m`$FiD8<5Rq5YeM6SdG!=aQ=k^ z0rKZPX5RoRQFgKwR@hMc>?#Sb&3sbZe)Uiroujf0bG#4%xP{hm@6DKipMj2)3Qi9| zs=A11Y4w{nU1laa;W(}2;(=dL` zH5iv-8kVPljHY+@eNFynpb0m|RN)8C5k`Hhh2qCE%1SnafAr{)@ z))t*f0Al>mNZiDK}u55EgCOpN28jSnuc(*zW`I6z9>zMeZm`ydz=1V^rNen?97t= znzFaQo}oiFZc=~%3VG z#V1wQ7*)wC+y2pbkcK@4dj;x}?^&on@Yzu_vobNS&9{BFChyx0DO?-$siCz%`C(v;WHF~ z$4r7r1C@jYkMKKE-XS2amH5H<``f`7oDc@aVnPO+^lW=qDO_@jFFhqoBe{ z-rEf!ys1FmUcyRw$^h5;U4y@>INvMmJehhtFPo9T<(^*$(v+-f{5g*AD=mv`oGhrA zEVGB)v_17`AFMNxmE^z6nJVHPa+@}Ekd(#}&~5qj2ooN9_E#P7{OAnZ`UCHvI1>g) z82hs8#jQe^z~f0NY&S6Ss9BUc54H`uv{dFKsyWbFnI$4#Rk)jt$5x_FQc|KpPy_-> zduXa;szjVv$3B2Zw+PNkBj0#yqa_Wj2P`iQRev+1WLt*rF|XsEcFU6B;9i$P!QM`8 z2>;f5j^hudu>5Dqgx6mxZ#C|gSv36uMC-y_798yd@7mT3oPPf|ZIfk)i7o;N5txB_ zq5wVW8M+~%Um}Z)ZuE%eL_XcC)ydlJG#MZhBWqTAJ?@tGchki9G_Ip5y+eeoOvsF8 zMu@yCSpT~$efIOW@-z9P$JFrFZiuHcDtLdC_M4FR#~AH)PhL;D2PEZ#s7y3n87j6a zT*=0$%H5lae4X~DF5`t6THVGNOTVgnU9A)k_L+iKOG;w0EetvdbNtbt44W{X)PNZK zCA@n_`TiRcnt2(looMGx*&~g(>Jn^RoDzP(;EPZgI_moyWmlHeDKjFMMkM%1uHwOS zs6R5n)P~(&)?x8A!ir=Jq%m4Z6o@&fx=&cB$Zesces*=H>p(S_W!v{BLVGw8&T5Er2j#N_|M)ZxE|4CKAky zw9L4n8@OOgdB%WSkHXLUGKQ;b{zBa$p%TH9VS<+cCp!a7!Fy5l*|&= zD-v!Fvu=*xq%~iphQ20}(lN`I?w4z#mw7^yI+wD*OQ`do|3I|YT0kzJX( z+O_r7KEppcLrSuTL>6nRaD6Uz#=<6KO^*v5uu|*=IdcMwrJfHHiFvc)Nt7^ff+-wr zRSW`r7Y~x|k9<#|&44~X1QESlOTB(S8;-byhaF{gjxKc=o%oUSxt<7FXgX5;7hM6< zJZygYj*lpDJjWH1^Gy90s>(Isk;ZtLMuPysgE0yii$AO|WL_0M6+Qy>ojt1HOI1bz z_EDoC)$H~X4@6PAG#U+I6(4wH(Qmf4c-CIxYU#55RFAH!kHYxgNqA%^O3H?UpYdT? z*(lM~dD4)Pq2y8t{PH;jPM0ra#6^A#gW-|yRSV9kw!wtQ{6%2h`aXVc29K}odVZAu zAG6uD#{bO^_3iqe%M>vg_o=&eE-VG!$&j3wk`h`>rKY5!YAU#|JMzgKej?d*M;>iQ zW)7dVZwk9t2O`T8yt2h+>Ay@vz|3A#$z9G%OL}(l>>QR9Ns6t&QQC^XQW}!^P!v*H zY0LUjlTEf%oZqcMnik7!MO91btg_1a6xsE-^XKQ%X?53K zb!N?*L3SfB!x9)`Jc&!Nyv5g;!wgMnhFhZDWtLeq)KaRds-yK)f~u-ZQAJx>Y87g) zHG6(DcGY<_Xj@XK(@v0d(@iqVGp9a(aNA7y%re_kn4LM9)0dk%b5y8LuWv$)YL@lu zc+@GmL3%7S(^P2Dp*gs1&z~8#=dCTdtv1tawK}D0w)N}Vd>iS9&zjS1%$YTY8D)jo zVTIvg&w7US*n8P9&*XMO&iPv-oqm1ko1)TsLY z@>VWZODwR;r$Vk@ercAu7bE;m7l$H8HXJy9jJT4%ib*9Whgwvm;sY7RZ3>6g=Xwabo=un{tRYn=`!w?>MM5MPVNif>uLiZ0f z9klvQ#iEs|?FXJ68Z#Zbre>b|bDgojrBzg`GvtXY8s+It-L#k@s^K1sGgACR$Jgn2 z97PI_4UcWbD~;d(RL?<9r>KslsCQU_f&~*=*qX*QjG`N@`d2J#foFFQ4zInNdKaP9 z#Qab69)_z5UM3Y^3x)Reo_~>u01sQ7?>b7?2H%3|j^lf6Yh^Sq_K?*oL*RAsh(;Rie|0N&m!4!b^_tyK}U#syoVdzl4Ko47BLtOm`-j4Ja z8a6XOyqd>wap_ix8E3O8YDY|jm&jLY(tsSGYi%uI)=vm9X%(?%v>lf9DGZl}y8g56 z{6N`TAZ2InWJ-~pKRY^O@`a!n1%wx!W;e>KcwF<>fvohauPaGc`seU=d@uPNDJ|q`#w-x|P-1JaZRZR%a~@8GFl0u)0wE>u zlA??}_XNWAh}5Fbg|8o))_ecy7kARU@GgcF7r-8n1$r}Ew|Tk=Lme>Wj;ZM5X;kKmxgj=(h`p4(q;ce~b;D8rvN>;3^c z-|?*Yj-J(8H}~Q6UTuj9NMIOdX;9`BKgv4EELigtKzy(F->EdB8g+U13z!%3nFTB( zvNC`*pCKqN7AQ@oBiEyE-r?f7(rm9L=r0p|uIkKl@{W66JE(I)Mg~1?lEKDEVNh7o z)T--_Q7|_mU3?sIw^6&1lGO(hfW;^JZh$m5_>LJJS}{h>2tb@rkRzkcs5NfLRAHFm zNeTjJf(Jppp|tK^?v91dJH%`tNU1Bl?fqI&X7K+c8=b}69})oKfKd<_K6JaON{hq^1k;g|!EU_I-j*@{31uJGcUnsEcpb+3K?lpjKJ?A4t~h8kHN&IytoGK*PoR=7v?EPqAD_o+hGA%u5I)78$gW^+hk z^42S~+sNwidNSqhHz7s6wY7|&k*WnOio?iVIjeD(Lf%`;#caZQRiaPZT5=O-@G6=% zYpD{7-PEwZ^qzlRRtzH?$tK)?1M4nSwc~X-OL)d+ww{?~!jBezPdFeicn#zpZ6b}^ zn}515FETr55Q|nR*TOSL4@)!5>9WWxak)Do&nS5aK^siVs@c1#Z5xa`Xxw95`JWv3 zI9_1?Ggy=105zM3`;hVFSV2OxddM0^ap$~`%MU(5AsFBN!jYsEHU(#JjCblY=N@x4IS`Qy9P z50*=yFeA;q&n{Dlf7S1ghz>;&-T)O zk7T%fxVq`Z93lz2T(fPP_jXH+d=P-{%L`eo`{DidbJ=ftWl^p85`BmqKmFf3;}X1*hK*F8-Z#XG+)ImwAAuvAvAG^Zx5JXW$U@44=hyjGn1fr=ovU1Aw)L3)+J(F)%6h6Mz z6FFX7%(`xAZE$96e9w%JK3^C6PT)o2W5)$&Pq__5K;t^=8X0Z`aPL4w=eL>@e}HWR ztRNxjpsJ?cqM0$cl~}+*G!2-*r136QD@Q_AGwdKCRq2Ui%n!}uv8CJXavnY+l$j0Z zUnn|l7=Qp+phQ>q+@CSq{(bA#M$}NWXqjz)wJ3c z3Nn=Ze`5d;O#nV4z;5pj%U4tRVg^wj>mqEBAgw9y*!Q1Lx7~o`IBAgfsCaHIgv=pB zutEjWBn=Hy-x=`|8Hzgj?=lF1_?oT{I#AnwlMf=W?jwT&Xg#F=-_hY{yxc;m*qIP- q5L&I-UEdUtz7dri9~i$jNI;-$Mk5X{UTGvB{9VZu;X*?FitJd&UqU+o diff --git a/worlds/pokemon_rb/client.py b/worlds/pokemon_rb/client.py new file mode 100644 index 00000000..fb29045c --- /dev/null +++ b/worlds/pokemon_rb/client.py @@ -0,0 +1,277 @@ +import base64 +import logging +import time + +from NetUtils import ClientStatus +from worlds._bizhawk.client import BizHawkClient +from worlds._bizhawk import read, write, guarded_write + +from worlds.pokemon_rb.locations import location_data + +logger = logging.getLogger("Client") + +BANK_EXCHANGE_RATE = 100000000 + +DATA_LOCATIONS = { + "ItemIndex": (0x1A6E, 0x02), + "Deathlink": (0x00FD, 0x01), + "APItem": (0x00FF, 0x01), + "EventFlag": (0x1735, 0x140), + "Missable": (0x161A, 0x20), + "Hidden": (0x16DE, 0x0E), + "Rod": (0x1716, 0x01), + "DexSanityFlag": (0x1A71, 19), + "GameStatus": (0x1A84, 0x01), + "Money": (0x141F, 3), + "ResetCheck": (0x0100, 4), + # First and second Vermilion Gym trash can selection. Second is not used, so should always be 0. + # First should never be above 0x0F. This is just before Event Flags. + "CrashCheck1": (0x1731, 2), + # Unused, should always be 0. This is just before Missables flags. + "CrashCheck2": (0x1617, 1), + # Progressive keys, should never be above 10. Just before Dexsanity flags. + "CrashCheck3": (0x1A70, 1), + # Route 18 script value. Should never be above 2. Just before Hidden items flags. + "CrashCheck4": (0x16DD, 1), +} + +location_map = {"Rod": {}, "EventFlag": {}, "Missable": {}, "Hidden": {}, "list": {}, "DexSanityFlag": {}} +location_bytes_bits = {} +for location in location_data: + if location.ram_address is not None: + if type(location.ram_address) == list: + location_map[type(location.ram_address).__name__][(location.ram_address[0].flag, location.ram_address[1].flag)] = location.address + location_bytes_bits[location.address] = [{'byte': location.ram_address[0].byte, 'bit': location.ram_address[0].bit}, + {'byte': location.ram_address[1].byte, 'bit': location.ram_address[1].bit}] + else: + location_map[type(location.ram_address).__name__][location.ram_address.flag] = location.address + location_bytes_bits[location.address] = {'byte': location.ram_address.byte, 'bit': location.ram_address.bit} + +location_name_to_id = {location.name: location.address for location in location_data if location.type == "Item" + and location.address is not None} + + +class PokemonRBClient(BizHawkClient): + system = ("GB", "SGB") + patch_suffix = (".apred", ".apblue") + game = "Pokemon Red and Blue" + + def __init__(self): + super().__init__() + self.auto_hints = set() + self.locations_array = None + self.disconnect_pending = False + self.set_deathlink = False + self.banking_command = None + self.game_state = False + self.last_death_link = 0 + + async def validate_rom(self, ctx): + game_name = await read(ctx.bizhawk_ctx, [(0x134, 12, "ROM")]) + game_name = game_name[0].decode("ascii") + if game_name in ("POKEMON RED\00", "POKEMON BLUE"): + ctx.game = self.game + ctx.items_handling = 0b001 + ctx.command_processor.commands["bank"] = cmd_bank + seed_name = await read(ctx.bizhawk_ctx, [(0xFFDB, 21, "ROM")]) + ctx.seed_name = seed_name[0].split(b"\0")[0].decode("ascii") + self.set_deathlink = False + self.banking_command = None + self.locations_array = None + self.disconnect_pending = False + return True + return False + + async def set_auth(self, ctx): + auth_name = await read(ctx.bizhawk_ctx, [(0xFFC6, 21, "ROM")]) + if auth_name[0] == bytes([0] * 21): + # rom was patched before rom names implemented, use player name + auth_name = await read(ctx.bizhawk_ctx, [(0xFFF0, 16, "ROM")]) + auth_name = auth_name[0].decode("ascii").split("\x00")[0] + else: + auth_name = base64.b64encode(auth_name[0]).decode() + ctx.auth = auth_name + + async def game_watcher(self, ctx): + if not ctx.server or not ctx.server.socket.open or ctx.server.socket.closed: + return + + data = await read(ctx.bizhawk_ctx, [(loc_data[0], loc_data[1], "WRAM") + for loc_data in DATA_LOCATIONS.values()]) + data = {data_set_name: data_name for data_set_name, data_name in zip(DATA_LOCATIONS.keys(), data)} + + if self.set_deathlink: + self.set_deathlink = False + await ctx.update_death_link(True) + + if self.disconnect_pending: + self.disconnect_pending = False + await ctx.disconnect() + + if data["GameStatus"][0] == 0 or data["ResetCheck"] == b'\xff\xff\xff\x7f': + # Do not handle anything before game save is loaded + self.game_state = False + return + elif (data["GameStatus"][0] not in (0x2A, 0xAC) + or data["CrashCheck1"][0] & 0xF0 or data["CrashCheck1"][1] & 0xFF + or data["CrashCheck2"][0] + or data["CrashCheck3"][0] > 10 + or data["CrashCheck4"][0] > 2): + # Should mean game crashed + logger.warning("Pokémon Red/Blue game may have crashed. Disconnecting from server.") + self.game_state = False + await ctx.disconnect() + return + self.game_state = True + + # SEND ITEMS TO CLIENT + + if data["APItem"][0] == 0: + item_index = int.from_bytes(data["ItemIndex"], "little") + if len(ctx.items_received) > item_index: + item_code = ctx.items_received[item_index].item - 172000000 + if item_code > 255: + item_code -= 256 + await write(ctx.bizhawk_ctx, [(DATA_LOCATIONS["APItem"][0], + [item_code], "WRAM")]) + + # LOCATION CHECKS + + locations = set() + + for flag_type, loc_map in location_map.items(): + for flag, loc_id in loc_map.items(): + if flag_type == "list": + if (data["EventFlag"][location_bytes_bits[loc_id][0]['byte']] & 1 << + location_bytes_bits[loc_id][0]['bit'] + and data["Missable"][location_bytes_bits[loc_id][1]['byte']] & 1 << + location_bytes_bits[loc_id][1]['bit']): + locations.add(loc_id) + elif data[flag_type][location_bytes_bits[loc_id]['byte']] & 1 << location_bytes_bits[loc_id]['bit']: + locations.add(loc_id) + + if locations != self.locations_array: + if locations: + self.locations_array = locations + await ctx.send_msgs([{"cmd": "LocationChecks", "locations": list(locations)}]) + + # AUTO HINTS + + hints = [] + if data["EventFlag"][280] & 16: + hints.append("Cerulean Bicycle Shop") + if data["EventFlag"][280] & 32: + hints.append("Route 2 Gate - Oak's Aide") + if data["EventFlag"][280] & 64: + hints.append("Route 11 Gate 2F - Oak's Aide") + if data["EventFlag"][280] & 128: + hints.append("Route 15 Gate 2F - Oak's Aide") + if data["EventFlag"][281] & 1: + hints += ["Celadon Prize Corner - Item Prize 1", "Celadon Prize Corner - Item Prize 2", + "Celadon Prize Corner - Item Prize 3"] + if (location_name_to_id["Fossil - Choice A"] in ctx.checked_locations and location_name_to_id[ + "Fossil - Choice B"] + not in ctx.checked_locations): + hints.append("Fossil - Choice B") + elif (location_name_to_id["Fossil - Choice B"] in ctx.checked_locations and location_name_to_id[ + "Fossil - Choice A"] + not in ctx.checked_locations): + hints.append("Fossil - Choice A") + hints = [ + location_name_to_id[loc] for loc in hints if location_name_to_id[loc] not in self.auto_hints and + location_name_to_id[loc] in ctx.missing_locations and + location_name_to_id[loc] not in ctx.locations_checked + ] + if hints: + await ctx.send_msgs([{"cmd": "LocationScouts", "locations": hints, "create_as_hint": 2}]) + self.auto_hints.update(hints) + + # DEATHLINK + + if "DeathLink" in ctx.tags: + if data["Deathlink"][0] == 3: + await ctx.send_death(ctx.player_names[ctx.slot] + " is out of usable Pokémon! " + + ctx.player_names[ctx.slot] + " blacked out!") + await write(ctx.bizhawk_ctx, [(DATA_LOCATIONS["Deathlink"][0], [0], "WRAM")]) + self.last_death_link = ctx.last_death_link + elif ctx.last_death_link > self.last_death_link: + self.last_death_link = ctx.last_death_link + await write(ctx.bizhawk_ctx, [(DATA_LOCATIONS["Deathlink"][0], [1], "WRAM")]) + + # BANK + + if self.banking_command: + original_money = data["Money"] + # Money is stored as binary-coded decimal. + money = int(original_money.hex()) + if self.banking_command > money: + logger.warning(f"You do not have ${self.banking_command} to deposit!") + elif (-self.banking_command * BANK_EXCHANGE_RATE) > ctx.stored_data[f"EnergyLink{ctx.team}"]: + logger.warning("Not enough money in the EnergyLink storage!") + else: + if self.banking_command + money > 999999: + self.banking_command = 999999 - money + money = str(money - self.banking_command).zfill(6) + money = [int(money[:2], 16), int(money[2:4], 16), int(money[4:], 16)] + money_written = await guarded_write(ctx.bizhawk_ctx, [(0x141F, money, "WRAM")], + [(0x141F, original_money, "WRAM")]) + if money_written: + if self.banking_command >= 0: + deposit = self.banking_command - int(self.banking_command / 4) + tax = self.banking_command - deposit + logger.info(f"Deposited ${deposit}, and charged a tax of ${tax}.") + self.banking_command = deposit + else: + logger.info(f"Withdrew ${-self.banking_command}.") + await ctx.send_msgs([{ + "cmd": "Set", "key": f"EnergyLink{ctx.team}", "operations": + [{"operation": "add", "value": self.banking_command * BANK_EXCHANGE_RATE}, + {"operation": "max", "value": 0}], + }]) + self.banking_command = None + + # VICTORY + + if data["EventFlag"][280] & 1 and not ctx.finished_game: + await ctx.send_msgs([{"cmd": "StatusUpdate", "status": ClientStatus.CLIENT_GOAL}]) + ctx.finished_game = True + + def on_package(self, ctx, cmd, args): + if cmd == 'Connected': + if 'death_link' in args['slot_data'] and args['slot_data']['death_link']: + self.set_deathlink = True + self.last_death_link = time.time() + ctx.set_notify(f"EnergyLink{ctx.team}") + elif cmd == 'RoomInfo': + if ctx.seed_name and ctx.seed_name != args["seed_name"]: + # CommonClient's on_package displays an error to the user in this case, but connection is not cancelled. + self.game_state = False + self.disconnect_pending = True + super().on_package(ctx, cmd, args) + + +def cmd_bank(self, cmd: str = "", amount: str = ""): + """Deposit or withdraw money with the server's EnergyLink storage. + /bank - check server balance. + /bank deposit # - deposit money. One quarter of the amount will be lost to taxation. + /bank withdraw # - withdraw money.""" + if self.ctx.game != "Pokemon Red and Blue": + logger.warning("This command can only be used while playing Pokémon Red and Blue") + return + if not cmd: + logger.info(f"Money available: {int(self.ctx.stored_data[f'EnergyLink{self.ctx.team}'] / BANK_EXCHANGE_RATE)}") + return + elif (not self.ctx.server) or self.ctx.server.socket.closed or not self.ctx.client_handler.game_state: + logger.info(f"Must be connected to server and in game.") + elif not amount: + logger.warning("You must specify an amount.") + elif cmd == "withdraw": + self.ctx.client_handler.banking_command = -int(amount) + elif cmd == "deposit": + if int(amount) < 4: + logger.warning("You must deposit at least $4, for tax purposes.") + return + self.ctx.client_handler.banking_command = int(amount) + else: + logger.warning(f"Invalid bank command {cmd}") + return diff --git a/worlds/pokemon_rb/docs/en_Pokemon Red and Blue.md b/worlds/pokemon_rb/docs/en_Pokemon Red and Blue.md index 086ec347..b164d4b0 100644 --- a/worlds/pokemon_rb/docs/en_Pokemon Red and Blue.md +++ b/worlds/pokemon_rb/docs/en_Pokemon Red and Blue.md @@ -83,6 +83,9 @@ you until these have ended. ## Unique Local Commands -The following command is only available when using the PokemonClient to play with Archipelago. +You can use `/bank` commands to deposit and withdraw money from the server's EnergyLink storage. This can be accessed by +any players playing games that use the EnergyLink feature. -- `/gb` Check Gameboy Connection State +- `/bank` - check the amount of money available on the server. +- `/bank withdraw #` - withdraw money from the server. +- `/bank deposit #` - deposit money into the server. 25% of the amount will be lost to taxation. \ No newline at end of file diff --git a/worlds/pokemon_rb/docs/setup_en.md b/worlds/pokemon_rb/docs/setup_en.md index 7ba9b3aa..c9344959 100644 --- a/worlds/pokemon_rb/docs/setup_en.md +++ b/worlds/pokemon_rb/docs/setup_en.md @@ -11,7 +11,6 @@ As we are using BizHawk, this guide is only applicable to Windows and Linux syst - Detailed installation instructions for BizHawk can be found at the above link. - Windows users must run the prereq installer first, which can also be found at the above link. - The built-in Archipelago client, which can be installed [here](https://github.com/ArchipelagoMW/Archipelago/releases) - (select `Pokemon Client` during installation). - Pokémon Red and/or Blue ROM files. The Archipelago community cannot provide these. ## Optional Software @@ -71,28 +70,41 @@ And the following special characters (these each count as one character): ## Joining a MultiWorld Game -### Obtain your Pokémon patch file +### Generating and Patching a Game -When you join a multiworld game, you will be asked to provide your YAML file to whoever is hosting. 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 `.apred` or `.apblue` extension. +1. Create your settings file (YAML). +2. Follow the general Archipelago instructions for [generating a game](../../Archipelago/setup/en#generating-a-game). +This will generate an output file for you. Your patch file will have a `.apred` or `.apblue` file extension. +3. Open `ArchipelagoLauncher.exe` +4. Select "Open Patch" on the left side and select your patch file. +5. If this is your first time patching, you will be prompted to locate your vanilla ROM. +6. A patched `.gb` file will be created in the same place as the patch file. +7. On your first time opening a patch with BizHawk Client, you will also be asked to locate `EmuHawk.exe` in your +BizHawk install. -Double-click on your patch file to start your client and start the ROM patch process. Once the process is finished -(this can take a while), the client and the emulator will be started automatically (if you associated the extension -to the emulator as recommended). +If you're playing a single-player seed and you don't care about autotracking or hints, you can stop here, close the +client, and load the patched ROM in any emulator. However, for multiworlds and other Archipelago features, continue +below using BizHawk as your emulator. ### Connect to the Multiserver -Once both the client and the emulator are started, you must connect them. Navigate to your Archipelago install folder, -then to `data/lua`, and drag+drop the `connector_pkmn_rb.lua` script onto the main EmuHawk window. (You could instead -open the Lua Console manually, click `Script` 〉 `Open Script`, and navigate to `connector_pkmn_rb.lua` with the file -picker.) +By default, opening a patch file will do steps 1-5 below for you automatically. Even so, keep them in your memory just +in case you have to close and reopen a window mid-game for some reason. + +1. Pokémon Red and Blue use Archipelago's BizHawk Client. If the client isn't still open from when you patched your +game, you can re-open it from the launcher. +2. Ensure EmuHawk is running the patched ROM. +3. In EmuHawk, go to `Tools > Lua Console`. This window must stay open while playing. +4. In the Lua Console window, go to `Script > Open Script…`. +5. Navigate to your Archipelago install folder and open `data/lua/connector_bizhawk_generic.lua`. +6. The emulator may freeze every few seconds until it manages to connect to the client. This is expected. The BizHawk +Client window should indicate that it connected and recognized Pokémon Red/Blue. +7. To connect the client to the server, enter your room's address and port (e.g. `archipelago.gg:38281`) into the +top text field of the client and click Connect. 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]`) -Now you are ready to start your adventure in Kanto. - ## Auto-Tracking Pokémon Red and Blue has a fully functional map tracker that supports auto-tracking. @@ -102,4 +114,5 @@ Pokémon Red and Blue has a fully functional map tracker that supports auto-trac 3. Click on the "AP" symbol at the top. 4. Enter the AP address, slot name and password. -The rest should take care of itself! Items and checks will be marked automatically, and it even knows your settings - It will hide checks & adjust logic accordingly. +The rest should take care of itself! Items and checks will be marked automatically, and it even knows your settings - It +will hide checks & adjust logic accordingly. diff --git a/worlds/pokemon_rb/rom.py b/worlds/pokemon_rb/rom.py index 096ab8e0..81ab6648 100644 --- a/worlds/pokemon_rb/rom.py +++ b/worlds/pokemon_rb/rom.py @@ -539,6 +539,10 @@ def generate_output(self, output_directory: str): write_bytes(data, self.rival_name, rom_addresses['Rival_Name']) data[0xFF00] = 2 # client compatibility version + rom_name = bytearray(f'AP{Utils.__version__.replace(".", "")[0:3]}_{self.player}_{self.multiworld.seed:11}\0', + 'utf8')[:21] + rom_name.extend([0] * (21 - len(rom_name))) + write_bytes(data, rom_name, 0xFFC6) write_bytes(data, self.multiworld.seed_name.encode(), 0xFFDB) write_bytes(data, self.multiworld.player_name[self.player].encode(), 0xFFF0) diff --git a/worlds/pokemon_rb/rom_addresses.py b/worlds/pokemon_rb/rom_addresses.py index 97faf7bf..cd57e317 100644 --- a/worlds/pokemon_rb/rom_addresses.py +++ b/worlds/pokemon_rb/rom_addresses.py @@ -12,101 +12,101 @@ rom_addresses = { "Player_Name": 0x4568, "Rival_Name": 0x4570, "Price_Master_Ball": 0x45c8, - "Title_Seed": 0x5f1b, - "Title_Slot_Name": 0x5f3b, - "PC_Item": 0x6309, - "PC_Item_Quantity": 0x630e, - "Fly_Location": 0x631c, - "Skip_Player_Name": 0x6335, - "Skip_Rival_Name": 0x6343, - "Pallet_Fly_Coords": 0x666e, - "Option_Old_Man": 0xcb0e, - "Option_Old_Man_Lying": 0xcb11, - "Option_Route3_Guard_A": 0xcb17, - "Option_Trashed_House_Guard_A": 0xcb20, - "Option_Trashed_House_Guard_B": 0xcb26, - "Option_Boulders": 0xcdb7, - "Option_Rock_Tunnel_Extra_Items": 0xcdc0, - "Wild_Route1": 0xd13b, - "Wild_Route2": 0xd151, - "Wild_Route22": 0xd167, - "Wild_ViridianForest": 0xd17d, - "Wild_Route3": 0xd193, - "Wild_MtMoon1F": 0xd1a9, - "Wild_MtMoonB1F": 0xd1bf, - "Wild_MtMoonB2F": 0xd1d5, - "Wild_Route4": 0xd1eb, - "Wild_Route24": 0xd201, - "Wild_Route25": 0xd217, - "Wild_Route9": 0xd22d, - "Wild_Route5": 0xd243, - "Wild_Route6": 0xd259, - "Wild_Route11": 0xd26f, - "Wild_RockTunnel1F": 0xd285, - "Wild_RockTunnelB1F": 0xd29b, - "Wild_Route10": 0xd2b1, - "Wild_Route12": 0xd2c7, - "Wild_Route8": 0xd2dd, - "Wild_Route7": 0xd2f3, - "Wild_PokemonTower3F": 0xd30d, - "Wild_PokemonTower4F": 0xd323, - "Wild_PokemonTower5F": 0xd339, - "Wild_PokemonTower6F": 0xd34f, - "Wild_PokemonTower7F": 0xd365, - "Wild_Route13": 0xd37b, - "Wild_Route14": 0xd391, - "Wild_Route15": 0xd3a7, - "Wild_Route16": 0xd3bd, - "Wild_Route17": 0xd3d3, - "Wild_Route18": 0xd3e9, - "Wild_SafariZoneCenter": 0xd3ff, - "Wild_SafariZoneEast": 0xd415, - "Wild_SafariZoneNorth": 0xd42b, - "Wild_SafariZoneWest": 0xd441, - "Wild_SeaRoutes": 0xd458, - "Wild_SeafoamIslands1F": 0xd46d, - "Wild_SeafoamIslandsB1F": 0xd483, - "Wild_SeafoamIslandsB2F": 0xd499, - "Wild_SeafoamIslandsB3F": 0xd4af, - "Wild_SeafoamIslandsB4F": 0xd4c5, - "Wild_PokemonMansion1F": 0xd4db, - "Wild_PokemonMansion2F": 0xd4f1, - "Wild_PokemonMansion3F": 0xd507, - "Wild_PokemonMansionB1F": 0xd51d, - "Wild_Route21": 0xd533, - "Wild_Surf_Route21": 0xd548, - "Wild_CeruleanCave1F": 0xd55d, - "Wild_CeruleanCave2F": 0xd573, - "Wild_CeruleanCaveB1F": 0xd589, - "Wild_PowerPlant": 0xd59f, - "Wild_Route23": 0xd5b5, - "Wild_VictoryRoad2F": 0xd5cb, - "Wild_VictoryRoad3F": 0xd5e1, - "Wild_VictoryRoad1F": 0xd5f7, - "Wild_DiglettsCave": 0xd60d, - "Ghost_Battle5": 0xd781, - "HM_Surf_Badge_a": 0xda73, - "HM_Surf_Badge_b": 0xda78, - "Option_Fix_Combat_Bugs_Heal_Stat_Modifiers": 0xdcc2, - "Option_Silph_Scope_Skip": 0xe207, - "Wild_Old_Rod": 0xe382, - "Wild_Good_Rod": 0xe3af, - "Option_Fix_Combat_Bugs_PP_Restore": 0xe541, - "Option_Reusable_TMs": 0xe675, - "Wild_Super_Rod_A": 0xeaa9, - "Wild_Super_Rod_B": 0xeaae, - "Wild_Super_Rod_C": 0xeab3, - "Wild_Super_Rod_D": 0xeaba, - "Wild_Super_Rod_E": 0xeabf, - "Wild_Super_Rod_F": 0xeac4, - "Wild_Super_Rod_G": 0xeacd, - "Wild_Super_Rod_H": 0xead6, - "Wild_Super_Rod_I": 0xeadf, - "Wild_Super_Rod_J": 0xeae8, - "Starting_Money_High": 0xf9aa, - "Starting_Money_Middle": 0xf9ad, - "Starting_Money_Low": 0xf9b0, - "Option_Pokedex_Seen": 0xf9cb, + "Title_Seed": 0x5f22, + "Title_Slot_Name": 0x5f42, + "PC_Item": 0x6310, + "PC_Item_Quantity": 0x6315, + "Fly_Location": 0x6323, + "Skip_Player_Name": 0x633c, + "Skip_Rival_Name": 0x634a, + "Pallet_Fly_Coords": 0x6675, + "Option_Old_Man": 0xcb0b, + "Option_Old_Man_Lying": 0xcb0e, + "Option_Route3_Guard_A": 0xcb14, + "Option_Trashed_House_Guard_A": 0xcb1d, + "Option_Trashed_House_Guard_B": 0xcb23, + "Option_Boulders": 0xcdb4, + "Option_Rock_Tunnel_Extra_Items": 0xcdbd, + "Wild_Route1": 0xd138, + "Wild_Route2": 0xd14e, + "Wild_Route22": 0xd164, + "Wild_ViridianForest": 0xd17a, + "Wild_Route3": 0xd190, + "Wild_MtMoon1F": 0xd1a6, + "Wild_MtMoonB1F": 0xd1bc, + "Wild_MtMoonB2F": 0xd1d2, + "Wild_Route4": 0xd1e8, + "Wild_Route24": 0xd1fe, + "Wild_Route25": 0xd214, + "Wild_Route9": 0xd22a, + "Wild_Route5": 0xd240, + "Wild_Route6": 0xd256, + "Wild_Route11": 0xd26c, + "Wild_RockTunnel1F": 0xd282, + "Wild_RockTunnelB1F": 0xd298, + "Wild_Route10": 0xd2ae, + "Wild_Route12": 0xd2c4, + "Wild_Route8": 0xd2da, + "Wild_Route7": 0xd2f0, + "Wild_PokemonTower3F": 0xd30a, + "Wild_PokemonTower4F": 0xd320, + "Wild_PokemonTower5F": 0xd336, + "Wild_PokemonTower6F": 0xd34c, + "Wild_PokemonTower7F": 0xd362, + "Wild_Route13": 0xd378, + "Wild_Route14": 0xd38e, + "Wild_Route15": 0xd3a4, + "Wild_Route16": 0xd3ba, + "Wild_Route17": 0xd3d0, + "Wild_Route18": 0xd3e6, + "Wild_SafariZoneCenter": 0xd3fc, + "Wild_SafariZoneEast": 0xd412, + "Wild_SafariZoneNorth": 0xd428, + "Wild_SafariZoneWest": 0xd43e, + "Wild_SeaRoutes": 0xd455, + "Wild_SeafoamIslands1F": 0xd46a, + "Wild_SeafoamIslandsB1F": 0xd480, + "Wild_SeafoamIslandsB2F": 0xd496, + "Wild_SeafoamIslandsB3F": 0xd4ac, + "Wild_SeafoamIslandsB4F": 0xd4c2, + "Wild_PokemonMansion1F": 0xd4d8, + "Wild_PokemonMansion2F": 0xd4ee, + "Wild_PokemonMansion3F": 0xd504, + "Wild_PokemonMansionB1F": 0xd51a, + "Wild_Route21": 0xd530, + "Wild_Surf_Route21": 0xd545, + "Wild_CeruleanCave1F": 0xd55a, + "Wild_CeruleanCave2F": 0xd570, + "Wild_CeruleanCaveB1F": 0xd586, + "Wild_PowerPlant": 0xd59c, + "Wild_Route23": 0xd5b2, + "Wild_VictoryRoad2F": 0xd5c8, + "Wild_VictoryRoad3F": 0xd5de, + "Wild_VictoryRoad1F": 0xd5f4, + "Wild_DiglettsCave": 0xd60a, + "Ghost_Battle5": 0xd77e, + "HM_Surf_Badge_a": 0xda70, + "HM_Surf_Badge_b": 0xda75, + "Option_Fix_Combat_Bugs_Heal_Stat_Modifiers": 0xdcbf, + "Option_Silph_Scope_Skip": 0xe204, + "Wild_Old_Rod": 0xe37f, + "Wild_Good_Rod": 0xe3ac, + "Option_Fix_Combat_Bugs_PP_Restore": 0xe53e, + "Option_Reusable_TMs": 0xe672, + "Wild_Super_Rod_A": 0xeaa6, + "Wild_Super_Rod_B": 0xeaab, + "Wild_Super_Rod_C": 0xeab0, + "Wild_Super_Rod_D": 0xeab7, + "Wild_Super_Rod_E": 0xeabc, + "Wild_Super_Rod_F": 0xeac1, + "Wild_Super_Rod_G": 0xeaca, + "Wild_Super_Rod_H": 0xead3, + "Wild_Super_Rod_I": 0xeadc, + "Wild_Super_Rod_J": 0xeae5, + "Starting_Money_High": 0xf9a7, + "Starting_Money_Middle": 0xf9aa, + "Starting_Money_Low": 0xf9ad, + "Option_Pokedex_Seen": 0xf9c8, "HM_Fly_Badge_a": 0x13182, "HM_Fly_Badge_b": 0x13187, "HM_Cut_Badge_a": 0x131b8, @@ -1164,22 +1164,22 @@ rom_addresses = { "Prize_Mon_E": 0x52944, "Prize_Mon_F": 0x52946, "Start_Inventory": 0x52a7b, - "Map_Fly_Location": 0x52c6f, - "Reset_A": 0x52d1b, - "Reset_B": 0x52d47, - "Reset_C": 0x52d73, - "Reset_D": 0x52d9f, - "Reset_E": 0x52dcb, - "Reset_F": 0x52df7, - "Reset_G": 0x52e23, - "Reset_H": 0x52e4f, - "Reset_I": 0x52e7b, - "Reset_J": 0x52ea7, - "Reset_K": 0x52ed3, - "Reset_L": 0x52eff, - "Reset_M": 0x52f2b, - "Reset_N": 0x52f57, - "Reset_O": 0x52f83, + "Map_Fly_Location": 0x52c75, + "Reset_A": 0x52d21, + "Reset_B": 0x52d4d, + "Reset_C": 0x52d79, + "Reset_D": 0x52da5, + "Reset_E": 0x52dd1, + "Reset_F": 0x52dfd, + "Reset_G": 0x52e29, + "Reset_H": 0x52e55, + "Reset_I": 0x52e81, + "Reset_J": 0x52ead, + "Reset_K": 0x52ed9, + "Reset_L": 0x52f05, + "Reset_M": 0x52f31, + "Reset_N": 0x52f5d, + "Reset_O": 0x52f89, "Warps_Route2": 0x54026, "Missable_Route_2_Item_1": 0x5404a, "Missable_Route_2_Item_2": 0x54051,