From 4166dbf9072e74c2f3e093461d6abc1b06af8475 Mon Sep 17 00:00:00 2001 From: briaguya <70942617+briaguya-ai@users.noreply.github.com> Date: Thu, 27 Apr 2023 19:20:41 -0400 Subject: [PATCH] spockalicious (#2751) * Rough mockup of LUS XML loading * Updated code for merge * Loading from FS support and custom DList WIP implementation * Added current directory support to F3D and impl most of the dlist cmds * WIP Skeleton support * Almost done * Rebase fixes * Submodule updates * HD Texture Support * Fixes * bump lus * fix exporter build, header update * soh builds * setMesh image path cleanup * Update soh/src/overlays/actors/ovl_player_actor/z_player.c * Update soh/src/overlays/actors/ovl_player_actor/z_player.c * Update OTRExporter/OTRExporter/Main.cpp * Update ZAPDTR/ZAPD/ZResource.h * Update soh/src/code/z_skelanime.c * Update OTRExporter/OTRExporter/Main.cpp * Fixed jpeg backgrounds and decreased icon buffer size * Bump lus * Increased even more the buffer because it crashes on long texts * Removed print because sometimes the if is not triggered when the image is already byteswapped * fix non-windows build * fix build Co-authored-by: Kenix * add hd checkbox * Various fixes for custom model support (#23) * Some fixes * Updated LUS Version * Fixed issue with Link Skirt on pause menu * Added CVar for custom link model changes * Fixed headers * Additional header fixes * Tweaks * Unload HD game assets on scene transition. (#16) * Unload game assets on scene transition. * Bump LUS * Unloads all HD assets on scene transition. * Only unload hd assets if hd assets are turned on. * Fixes issues on toggling between HD and non HD assets. --------- Co-authored-by: briaguya * fix: actually load hd debug font (#27) * fix: actually load hd debug font * toggle debug text correctly --------- Co-authored-by: briaguya * Yes. (#28) * Merge branch 'develop' into dev-to-ghost * HD Skeleton Swapping and Language Fixes (#32) * Yes. * HD Skeleton Swapping and Language Fixes * Test * Fixed issues with ganon cape (#34) * Fixed Bongo Bongo Crash (#35) * Added HD Assets Toggle (#37) * Ivan the Fairy - Coop Mode (#36) * wip * hookshotable ivan * added hookshot item * new items & changes & fixes & restored navi * farore, din and nayru's spells are done * fixed slingshot & bow * added more items supported * done with all main items * bug fixes & ready * added imgui button * wip * hookshotable ivan * added hookshot item * new items & changes & fixes & restored navi * farore, din and nayru's spells are done * fixed slingshot & bow * added more items supported * fix own dungeon items on shuffled boss rooms (#2683) * bump lus (#2692) * fix: lowercase package names for vcpkg (#2693) vcpkg was throwing an error `error: invalid character in package name (must be lowercase, digits, '-')` this updates our calls to `vcpkg_install_packages` to use lowercase package names instead of uppercase * fix death mountain cloud in rando (#2691) * Fix: Switch Age No Longer Reloads Start Room (#2679) * [Reduced Clutter] Disable Hot/Underwater Warning Text (#2684) * Disable Warning Text * Moved to Reduced Clutter * done with all main items * bug fixes & ready * fix: process roms in consistent order (#2696) * chore: move rando savefile setup and document flags (#2697) * remove rando save init from sram * move rando savefile init logic and set more flags * document flags for rando save creation * Fix: Use correct fps value for frame interpolation with match refresh rate (#2694) * Fix: Kak GS placement on construction site (#2695) * added imgui button * addressed kenix's comments * fixed useless null * added rupee dash mode in extra modes * changed menu position --------- Co-authored-by: Adam Bird Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com> Co-authored-by: inspectredc <78732756+inspectredc@users.noreply.github.com> Co-authored-by: Patrick12115 <115201185+Patrick12115@users.noreply.github.com> * LUS Scancodes (#42) * Added HD Assets Toggle * Switched out SDL for LUS scancodes * Ivan tweaks (#45) * Magic consumption slowed down; Bosses now affected by Ivan's Din spell * Adjust magic timer * clean up imgui * model fixes/improvements (#50) * replace `gUseCustomLinkModel` with custom resource check * handle adult/child * bump lus * fix model switching with tab * use lus main * fix carpet man (#52) Co-authored-by: Rozelette * get ship model and lus texture into soh.otr, use `gAuthenticLogo` to toggle between ship and authentic (#55) * Use libultra features for CPU-modified textures (#40) * Use libultra features for CPU-modified textures * Comment * bump lus on ghost (#58) * fix: properly use `Interface_LoadActionLabel` to display start button text (#61) * Changes hd -> alt for texture replacement. (#65) * Changes hd -> alt for texture replacement. * Renames variables in gfxprint for hd -> alt change. * Update soh/soh/resource/type/Skeleton.cpp --------- Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com> * Fixes kaleido dungeon maps (#67) * skeleton stuff (#69) * comment out wii u build (#70) * bump lus (#71) * Rework readme (#72) * Update README.md * docs * put custom music docs somewhere * Update README.md * Update README.md * Update README.md * Update README.md * dark/light title image * lus * Update README.md * Fixed vanilla minimap (#73) * Fixed vanilla minimap * Workaround for pulsing SD maps with non-broken HD maps. --------- Co-authored-by: Christopher Leggett * Skeleton fix fixed (#75) * WIP skelton patcher fix * Fixes skeleton reference change. * Adds const back to name in ResourceMgr_LoadSkeletonByName --------- Co-authored-by: Christopher Leggett Co-authored-by: Kenix * Fixes z_message_otr memory leak. * Update soh/soh/z_message_OTR.cpp * Update soh/src/code/game.c * docs: add how to find otr files to switch instructions (#78) * bump lus (#79) * comment out RegisterBlendedTexture in king d (#80) --------- Co-authored-by: Nicholas Estelami Co-authored-by: David Chavez Co-authored-by: briaguya Co-authored-by: Kenix3 Co-authored-by: KiritoDv Co-authored-by: briaguya Co-authored-by: Ralphie Morell Co-authored-by: MelonSpeedruns Co-authored-by: Adam Bird Co-authored-by: inspectredc <78732756+inspectredc@users.noreply.github.com> Co-authored-by: Patrick12115 <115201185+Patrick12115@users.noreply.github.com> Co-authored-by: Rozelette Co-authored-by: Christopher Leggett Co-authored-by: Lywx <36680385+KiritoDv@users.noreply.github.com> --- .github/workflows/generate-builds.yml | 82 +- .../OTRExporter/DisplayListExporter.cpp | 4 +- OTRExporter/OTRExporter/Main.cpp | 6 + .../textures/nintendo_rogo_static/SoHShiny | Bin 0 -> 1116 bytes .../textures/nintendo_rogo_static/gShipLogoDL | 21 + .../nintendo_rogo_static/gShipLogoDL_tri_0 | 241 +++++ .../nintendo_rogo_static/gShipLogoDL_tri_1 | 80 ++ .../nintendo_rogo_static/gShipLogoDL_tri_2 | 259 ++++++ .../nintendo_rogo_static/gShipLogoDL_tri_3 | 118 +++ .../nintendo_rogo_static/gShipLogoDL_vtx_0 | 335 +++++++ .../nintendo_rogo_static/gShipLogoDL_vtx_1 | 98 ++ .../nintendo_rogo_static/gShipLogoDL_vtx_2 | 323 +++++++ .../nintendo_rogo_static/gShipLogoDL_vtx_3 | 128 +++ .../mat_gShipLogoDL_f3d_material | 20 + .../mat_gShipLogoDL_f3d_material_001 | 20 + .../mat_gShipLogoDL_f3d_material_002 | 20 + .../mat_gShipLogoDL_f3d_material_003 | 20 + .../mat_revert_gShipLogoDL_f3d_material | 8 + .../mat_revert_gShipLogoDL_f3d_material_001 | 8 + .../mat_revert_gShipLogoDL_f3d_material_002 | 8 + .../mat_revert_gShipLogoDL_f3d_material_003 | 8 + .../nintendo_rogo_static_Tex_LUS_000000 | Bin 0 -> 6291548 bytes .../textures/virtual/gEmptyTexture.rgba32.png | Bin 0 -> 194 bytes README.md | 232 ++--- ZAPDTR/ZAPD/Globals.h | 3 + ZAPDTR/ZAPD/ZFile.cpp | 14 +- ZAPDTR/ZAPD/ZFile.h | 1 + BUILDING.md => docs/BUILDING.md | 0 docs/CREDITS.md | 45 + docs/CUSTOM_MUSIC.md | 24 + docs/VERSIONING.md | 5 + docs/poweredbylus.darkmode.png | Bin 0 -> 213165 bytes docs/poweredbylus.lightmode.png | Bin 0 -> 210989 bytes docs/shiptitle.darkmode.png | Bin 0 -> 34642 bytes docs/shiptitle.lightmode.png | Bin 0 -> 33072 bytes libultraship | 2 +- .../textures/boss_title_cards/.gitempty | 0 .../textures/boss_title_cards/object_bv.h | 31 +- .../textures/boss_title_cards/object_fd.h | 31 +- .../textures/boss_title_cards/object_fhg.h | 31 +- .../textures/boss_title_cards/object_ganon.h | 31 +- .../textures/boss_title_cards/object_ganon2.h | 31 +- .../textures/boss_title_cards/object_goma.h | 31 +- .../boss_title_cards/object_kingdodongo.h | 31 +- .../textures/boss_title_cards/object_mo.h | 31 +- .../textures/boss_title_cards/object_sst.h | 31 +- .../textures/boss_title_cards/object_tw.h | 31 +- .../xml/GC_MQ_D/textures/boss_title_cards.xml | 52 ++ .../GC_NMQ_D/textures/boss_title_cards.xml | 52 ++ .../textures/boss_title_cards.xml | 52 ++ soh/include/functions.h | 3 +- soh/include/tables/actor_table.h | 1 + soh/include/z64.h | 14 +- soh/include/z64player.h | 2 + soh/soh/GameMenuBar.cpp | 89 +- soh/soh/GbiWrap.cpp | 32 +- soh/soh/OTRGlobals.cpp | 86 +- soh/soh/OTRGlobals.h | 8 +- soh/soh/resource/importer/SkeletonFactory.cpp | 77 ++ soh/soh/resource/importer/SkeletonFactory.h | 5 + .../resource/importer/SkeletonLimbFactory.cpp | 77 ++ .../resource/importer/SkeletonLimbFactory.h | 5 + soh/soh/resource/importer/TextFactory.cpp | 46 + soh/soh/resource/importer/TextFactory.h | 5 + soh/soh/resource/type/Skeleton.cpp | 60 ++ soh/soh/resource/type/Skeleton.h | 20 + soh/soh/z_message_OTR.cpp | 43 +- soh/src/code/game.c | 10 + soh/src/code/gfxprint.c | 33 +- soh/src/code/z_actor.c | 61 +- soh/src/code/z_cheap_proc.c | 10 +- soh/src/code/z_collision_check.c | 10 +- soh/src/code/z_construct.c | 10 +- soh/src/code/z_fcurve_data_skelanime.c | 2 +- soh/src/code/z_kanfont.c | 6 +- soh/src/code/z_map_exp.c | 47 +- soh/src/code/z_message_PAL.c | 23 +- soh/src/code/z_parameter.c | 142 +-- soh/src/code/z_play.c | 6 + soh/src/code/z_player_lib.c | 25 +- soh/src/code/z_room.c | 44 +- soh/src/code/z_skelanime.c | 8 +- soh/src/code/z_skin_awb.c | 2 +- .../actors/ovl_Boss_Dodongo/z_boss_dodongo.c | 147 +-- .../overlays/actors/ovl_Boss_Fd/z_boss_fd.c | 3 +- .../overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c | 2 +- .../actors/ovl_Boss_Ganon/z_boss_ganon.c | 27 +- .../actors/ovl_Boss_Ganon2/z_boss_ganon2.c | 5 +- .../ovl_Boss_Ganondrof/z_boss_ganondrof.c | 101 +- .../actors/ovl_Boss_Goma/z_boss_goma.c | 76 +- .../overlays/actors/ovl_Boss_Mo/z_boss_mo.c | 5 +- .../overlays/actors/ovl_Boss_Sst/z_boss_sst.c | 3 +- .../overlays/actors/ovl_Boss_Tw/z_boss_tw.c | 5 +- .../overlays/actors/ovl_Boss_Va/z_boss_va.c | 3 +- soh/src/overlays/actors/ovl_En_Box/z_en_box.c | 22 +- .../ovl_En_Ganon_Mant/z_en_ganon_mant.c | 20 +- .../overlays/actors/ovl_En_Goma/z_en_goma.c | 2 +- .../actors/ovl_En_Jsjutan/z_en_jsjutan.c | 10 +- soh/src/overlays/actors/ovl_En_Mag/z_en_mag.c | 54 +- .../actors/ovl_En_Partner/z_en_partner.c | 878 ++++++++++++++++++ .../actors/ovl_En_Partner/z_en_partner.h | 48 + soh/src/overlays/actors/ovl_En_fHG/z_en_fhg.c | 3 +- .../actors/ovl_player_actor/z_player.c | 44 +- .../ovl_file_choose/z_file_choose.c | 117 +-- .../overlays/gamestates/ovl_title/z_title.c | 25 +- .../ovl_kaleido_scope/z_kaleido_map_PAL.c | 31 +- .../ovl_kaleido_scope/z_kaleido_scope_PAL.c | 62 +- 107 files changed, 4130 insertions(+), 1174 deletions(-) create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/SoHShiny create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_tri_0 create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_tri_1 create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_tri_2 create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_tri_3 create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_vtx_0 create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_vtx_1 create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_vtx_2 create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_vtx_3 create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material_001 create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material_002 create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material_003 create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material_001 create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material_002 create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material_003 create mode 100644 OTRExporter/assets/textures/nintendo_rogo_static/nintendo_rogo_static_Tex_LUS_000000 create mode 100644 OTRExporter/assets/textures/virtual/gEmptyTexture.rgba32.png rename BUILDING.md => docs/BUILDING.md (100%) create mode 100644 docs/CREDITS.md create mode 100644 docs/CUSTOM_MUSIC.md create mode 100644 docs/VERSIONING.md create mode 100644 docs/poweredbylus.darkmode.png create mode 100644 docs/poweredbylus.lightmode.png create mode 100644 docs/shiptitle.darkmode.png create mode 100644 docs/shiptitle.lightmode.png create mode 100644 soh/assets/textures/boss_title_cards/.gitempty create mode 100644 soh/assets/xml/GC_MQ_D/textures/boss_title_cards.xml create mode 100644 soh/assets/xml/GC_NMQ_D/textures/boss_title_cards.xml create mode 100644 soh/assets/xml/GC_NMQ_PAL_F/textures/boss_title_cards.xml create mode 100644 soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c create mode 100644 soh/src/overlays/actors/ovl_En_Partner/z_en_partner.h diff --git a/.github/workflows/generate-builds.yml b/.github/workflows/generate-builds.yml index daa99f19f..5e124da35 100644 --- a/.github/workflows/generate-builds.yml +++ b/.github/workflows/generate-builds.yml @@ -229,48 +229,48 @@ jobs: soh.nro soh.otr readme.txt - build-wiiu: - needs: generate-soh-otr - runs-on: ${{ (vars.LINUX_RUNNER && fromJSON(vars.LINUX_RUNNER)) || 'ubuntu-latest' }} - container: - image: devkitpro/devkitppc:latest - steps: - - name: Install dependencies - if: ${{ !vars.LINUX_RUNNER }} - run: | - sudo apt-get update - sudo apt-get install -y ninja-build - - uses: actions/checkout@v3 - with: - submodules: true - - name: ccache - uses: hendrikmuhs/ccache-action@v1.2 - with: - key: ${{ runner.os }}-wiiu-ccache - - name: Build SoH - run: | - cmake -H. -Bbuild-wiiu -GNinja -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/WiiU.cmake -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache - cmake --build build-wiiu --target soh_wuhb --config Release -j3 + # build-wiiu: + # needs: generate-soh-otr + # runs-on: ${{ (vars.LINUX_RUNNER && fromJSON(vars.LINUX_RUNNER)) || 'ubuntu-latest' }} + # container: + # image: devkitpro/devkitppc:latest + # steps: + # - name: Install dependencies + # if: ${{ !vars.LINUX_RUNNER }} + # run: | + # sudo apt-get update + # sudo apt-get install -y ninja-build + # - uses: actions/checkout@v3 + # with: + # submodules: true + # - name: ccache + # uses: hendrikmuhs/ccache-action@v1.2 + # with: + # key: ${{ runner.os }}-wiiu-ccache + # - name: Build SoH + # run: | + # cmake -H. -Bbuild-wiiu -GNinja -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/WiiU.cmake -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache + # cmake --build build-wiiu --target soh_wuhb --config Release -j3 - mv build-wiiu/soh/*.rpx soh.rpx - mv build-wiiu/soh/*.wuhb soh.wuhb - mv README.md readme.txt - env: - DEVKITPRO: /opt/devkitpro - DEVKITPPC: /opt/devkitpro/devkitPPC - - name: Download soh.otr - uses: actions/download-artifact@v3 - with: - name: soh.otr - - name: Upload build - uses: actions/upload-artifact@v3 - with: - name: soh-wiiu - path: | - soh.rpx - soh.wuhb - soh.otr - readme.txt + # mv build-wiiu/soh/*.rpx soh.rpx + # mv build-wiiu/soh/*.wuhb soh.wuhb + # mv README.md readme.txt + # env: + # DEVKITPRO: /opt/devkitpro + # DEVKITPPC: /opt/devkitpro/devkitPPC + # - name: Download soh.otr + # uses: actions/download-artifact@v3 + # with: + # name: soh.otr + # - name: Upload build + # uses: actions/upload-artifact@v3 + # with: + # name: soh-wiiu + # path: | + # soh.rpx + # soh.wuhb + # soh.otr + # readme.txt build-windows: needs: generate-soh-otr runs-on: ${{ (vars.WINDOWS_RUNNER && fromJSON(vars.WINDOWS_RUNNER)) || 'windows-latest' }} diff --git a/OTRExporter/OTRExporter/DisplayListExporter.cpp b/OTRExporter/OTRExporter/DisplayListExporter.cpp index 4ac8586df..3a77cba8f 100644 --- a/OTRExporter/OTRExporter/DisplayListExporter.cpp +++ b/OTRExporter/OTRExporter/DisplayListExporter.cpp @@ -15,7 +15,7 @@ #define GFX_SIZE 8 -#define gsDPSetCombineLERP2(a0, b0, c0, d0, Aa0, Ab0, Ac0, Ad0, \ +#define gsDPSetCombineLERP_NoMacros(a0, b0, c0, d0, Aa0, Ab0, Ac0, Ad0, \ a1, b1, c1, d1, Aa1, Ab1, Ac1, Ad1) \ { \ _SHIFTL(G_SETCOMBINE, 24, 8) | \ @@ -607,7 +607,7 @@ void OTRExporter_DisplayList::Save(ZResource* res, const fs::path& outPath, Bina int32_t ab1 = (data & 0b00000000000000000000000000000000000000000000000000000000111000) >> 3; int32_t ad1 = (data & 0b00000000000000000000000000000000000000000000000000000000000111) >> 0; - Gfx value = {gsDPSetCombineLERP2(a0, b0, c0, d0, aa0, ab0, ac0, ad0, a1, b1, c1, d1, aa1, ab1, ac1, ad1)}; + Gfx value = { gsDPSetCombineLERP_NoMacros(a0, b0, c0, d0, aa0, ab0, ac0, ad0, a1, b1, c1, d1, aa1, ab1, ac1, ad1)}; word0 = value.words.w0; word1 = value.words.w1; } diff --git a/OTRExporter/OTRExporter/Main.cpp b/OTRExporter/OTRExporter/Main.cpp index 85300e6f8..7895fe759 100644 --- a/OTRExporter/OTRExporter/Main.cpp +++ b/OTRExporter/OTRExporter/Main.cpp @@ -259,6 +259,11 @@ static void ExporterResourceEnd(ZResource* res, BinaryWriter& writer) //printf("Exported Resource End %s in %zums\n", res->GetName().c_str(), diff); } +static void ExporterProcessCompilable(tinyxml2::XMLElement* reader) +{ + std::string nodeName = reader->Name(); +} + static void ExporterXMLBegin() { } @@ -285,6 +290,7 @@ void ImportExporters() ExporterSet* exporterSet = new ExporterSet(); exporterSet->processFileModeFunc = ExporterProcessFileMode; exporterSet->parseFileModeFunc = ExporterParseFileMode; + exporterSet->processCompilableFunc = ExporterProcessCompilable; exporterSet->parseArgsFunc = ExporterParseArgs; exporterSet->beginFileFunc = ExporterFileBegin; exporterSet->endFileFunc = ExporterFileEnd; diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/SoHShiny b/OTRExporter/assets/textures/nintendo_rogo_static/SoHShiny new file mode 100644 index 0000000000000000000000000000000000000000..5e5c7b52b922cc2aced6fa61a9c6de8cb01be40c GIT binary patch literal 1116 zcmZQzU|@)F4e@7WU|@K^Z|yx028j`i*%%lY6rdQQr@@|qp~0Skg@Ix1;+03PK74v_ zZ>>{kUP@R5gSxp-Y))!ydQM?+>%vXj>S`AsJ%8ckwu#a1MfGLAx{MNPdN!_3cFr#D z(T&q)O?L^Ick;}>$!Q)29)(T0zG{MU>RL7-p@B~3=AKEFHK}4&Jv$FB&NCKKbjc`4 za?sQ@v$XMu&4_X~RMRnY_cUgd4egxXmTV>_Z6BW&?e6Fk9vbMMQkw0lDJ`p@C@;vu zD(94vo#>(}X&ROs7Z#hImm43HQdJhIBPuQ~%FoHlE~4WV74B`JW#k?i9i5bsnGqS1 z)!v=wC?+f+$j!pY!l!EC=IiR>?BpKc=VD`K@9LY=I&F4Cu(E)d5E~N%6PJvhp|O=m zSbS1iYK)Vdkakr2?D=!*L$!qk1lX7uSoox5Wh8Y2Qgg~{+Pcf#747qzmto zhQ_57m1if0_=iO0Pn|cry?gWN^C!3T25D*7ds$n`=zAwuw0G7Pq^D;Wwl3VVVg8)$ z=dNAYJ1t62!znV-oI%DRv9!LiwyL(ewsqE~y}Q<}-h1ut-HWU9Ei8iKvjPOs;u}3Z zpvO0QdO(kF^z?up-{|Q9J-*S?1A2V3u*##P2bB00;AUgx64yme56JN?D#*di$SS02 zj+7oy;#-h|nSq5zT+0BF9#G<2kcWklm0LtY8j&7Qa{y(bEF}-K}!1 literal 0 HcmV?d00001 diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL new file mode 100644 index 000000000..5e5435d84 --- /dev/null +++ b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_tri_0 b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_tri_0 new file mode 100644 index 000000000..2986de72b --- /dev/null +++ b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_tri_0 @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_tri_1 b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_tri_1 new file mode 100644 index 000000000..2aa9bea6d --- /dev/null +++ b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_tri_1 @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_tri_2 b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_tri_2 new file mode 100644 index 000000000..2b8fe0d11 --- /dev/null +++ b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_tri_2 @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_tri_3 b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_tri_3 new file mode 100644 index 000000000..53edaf74f --- /dev/null +++ b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_tri_3 @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_vtx_0 b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_vtx_0 new file mode 100644 index 000000000..2c2ee793b --- /dev/null +++ b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_vtx_0 @@ -0,0 +1,335 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_vtx_1 b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_vtx_1 new file mode 100644 index 000000000..ec462b114 --- /dev/null +++ b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_vtx_1 @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_vtx_2 b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_vtx_2 new file mode 100644 index 000000000..cc906e23e --- /dev/null +++ b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_vtx_2 @@ -0,0 +1,323 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_vtx_3 b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_vtx_3 new file mode 100644 index 000000000..68e4babcf --- /dev/null +++ b/OTRExporter/assets/textures/nintendo_rogo_static/gShipLogoDL_vtx_3 @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material b/OTRExporter/assets/textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material new file mode 100644 index 000000000..e48b335c0 --- /dev/null +++ b/OTRExporter/assets/textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material_001 b/OTRExporter/assets/textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material_001 new file mode 100644 index 000000000..e98640319 --- /dev/null +++ b/OTRExporter/assets/textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material_001 @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material_002 b/OTRExporter/assets/textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material_002 new file mode 100644 index 000000000..b2db72d79 --- /dev/null +++ b/OTRExporter/assets/textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material_002 @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material_003 b/OTRExporter/assets/textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material_003 new file mode 100644 index 000000000..be60fd46b --- /dev/null +++ b/OTRExporter/assets/textures/nintendo_rogo_static/mat_gShipLogoDL_f3d_material_003 @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material b/OTRExporter/assets/textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material new file mode 100644 index 000000000..3cda02a88 --- /dev/null +++ b/OTRExporter/assets/textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material_001 b/OTRExporter/assets/textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material_001 new file mode 100644 index 000000000..3cda02a88 --- /dev/null +++ b/OTRExporter/assets/textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material_001 @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material_002 b/OTRExporter/assets/textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material_002 new file mode 100644 index 000000000..3cda02a88 --- /dev/null +++ b/OTRExporter/assets/textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material_002 @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material_003 b/OTRExporter/assets/textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material_003 new file mode 100644 index 000000000..3cda02a88 --- /dev/null +++ b/OTRExporter/assets/textures/nintendo_rogo_static/mat_revert_gShipLogoDL_f3d_material_003 @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/OTRExporter/assets/textures/nintendo_rogo_static/nintendo_rogo_static_Tex_LUS_000000 b/OTRExporter/assets/textures/nintendo_rogo_static/nintendo_rogo_static_Tex_LUS_000000 new file mode 100644 index 0000000000000000000000000000000000000000..2edcaacb3c9433e786162171be988e44cf246adb GIT binary patch literal 6291548 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 z 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

Z!#oG_5@>8k71PI~ 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 K9cX$qE`=I+Hhih6GUL_8G-|PY9Ygk(R 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/Library/Application Support/com.shipofharkinian.soh/` +* Copy the files to your sd card ``` -Build team: `zelda@srd022j` -Build date: `03-02-21 00:49:18` (year-month-day) -sha1: cee6bc3c2a634b41728f2af8da54d9bf8cc14099 -``` -#### Ocarina of Time PAL GameCube -``` -sha1: 0227d7c0074f2d0ac935631990da8ec5914597b4 -``` -#### Ocarina of Time Debug PAL GC MQ (Dungeons will be Master Quest) -``` -Build team: `zelda@srd022j` -Build date: `03-02-21 00:16:31` (year-month-day) -sha1: 079b855b943d6ad8bd1eb026c0ed169ecbdac7da (Produced by decomp) -sha1: 50bebedad9e0f10746a52b07239e47fa6c284d03 (Alternate) +sdcard +└── switch + └── soh + ├── oot-mq.otr + ├── oot.otr + ├── soh.nro + └── soh.otr ``` +* Launch via Atmosphere's `Game+R` launcher method. + +### 4. Play! Congratulations, you are now sailing with the Ship of Harkinian! Have fun! -## About Versions +# Configuration -The Ship of Harkinian's versioning system is a unique system, comprising of a three-numbered version (`x.y.z`) and a version codename. The main version number `x` signifies major feature updates that require a new `oot.otr` file. The version number `y` signifies major feature updates and bugfixes that do not require a new `oot.otr` file. The version number `z` signifies minor updates such as a collection of bugfixes. - -The version codename consists of a sci-fi film character followed by a phonetic alphabet code word. The film character represents a major release version which increments with the major `x` or `y` version bumps. The code word represents a minor release version which increments with the minor `z` version bump. - -## Additional Setup Information - -### Windows Rom Extraction - -* Open `OTRGui.exe` and click on "Open OOT ROM", then select your supported copy of the game (see section "Supported Games"). -* If a second button already exits then `oot.otr` already exists. To prevent overwriting the old `oot.otr` use this button to choose a new game directory. The new directory must not already contain an `oot.otr` to prevent an error. -* When the process completes, you should have an `oot.otr` or `oot-mq.otr` file in your main directory, depending on the version of the game used to build it. - (*NOTE:* You can have both `.otr` files, if you want to! This even allows you to shuffle MQ and vanilla dungeons in the randomizer) - -This process can take up to several minutes, depending on your system hardware. - -Close `OTRGui.exe` when the `Done!` message appears. -If you get another message, then you might have selected the wrong rom. See section "Supported Games". - -### Linux Rom Extraction - -* Place one of the supported roms in the same folder as the appimage (See section "Supported Games"). -* Execute `soh.appimage`. You may have to `chmod +x` the appimage via terminal. -* When the process completes, you should have an `oot.otr` or `oot-mq.otr` file in the same directory as the appimage, and the game should start automatically. - (*NOTE:* You can provide both a vanilla and MQ ROM, if you want to! This even allows you to shuffle MQ and vanilla dungeons in the randomizer) - -This process can take up to several minutes, depending on your system hardware. - -If you get any errors, then you might have selected the wrong rom. See section "Supported Games". - -### MacOS Rom Extraction - -* Run `soh.app`, and when prompted, select one of the supported roms listed above. -* You should see a notification saying `Processing OTR`, then, once the process is complete, you should get a notification saying `OTR Successfully Generated`, then the game should start. - -This process can take up to several minutes, depending on your system hardware. - -If you get an error saying `Incompatible ROM hash`, you have selected the wrong rom. See section "Supported Games". - -### Nintendo Switch Rom Extraction - -* Download the latest PC release of the Ship of Harkinian, and follow the instructions above for generating the `oot.otr` archive on that platform. -* Place the `.nro` and the `oot.otr` archive into a folder called `soh` in your Switch folder on your Switch - -### Nintendo Wii U Rom Extraction - -* Download the latest PC release of the Ship of Harkinian, and follow the instructions above for generating the `oot.otr` archive on that platform. -* Copy the `.rpx` and the `oot.otr` archive to `wiiu/apps/soh` - ---- - -If you're having any trouble, feel free to join our [Discord Server](https://discord.com/invite/BtBmd55HVH) and ask for help in the Support text channels. Please keep in mind that we do not condone piracy. - -### Running The Ship of Harkinian - -For Windows, launch `soh.exe`. For Linux, execute the appimage. For MacOS, launch the app. For Switch, launch the app via Atmosphere's `Game+R` launcher method. For Wii U, launch the `.rpx` file through the homebrew Mii Maker exploit. - -Default keyboard configuration: +### Default keyboard configuration | N64 | A | B | Z | Start | Analog stick | C buttons | D-Pad | | - | - | - | - | - | - | - | - | | Keyboard | X | C | Z | Space | WASD | Arrow keys | TFGH | -Other shortcuts: +### Other shortcuts | Keys | Action | | - | - | | F1 | Toggle menubar | @@ -110,89 +77,32 @@ Other shortcuts: | Alt+Enter | Fullscreen (DirectX) | | Ctrl+R | Reset | +### Graphics Backends Currently, there are three rendering APIs supported: DirectX11 (Windows), OpenGL (all platforms), and Metal (MacOS). You can change which API to use in the `Settings` menu of the menubar, which requires a restart. If you're having an issue with crashing, you can change the API in the `shipofharkinian.json` file by finding the line `gfxbackend:""` and changing the value to `sdl` for OpenGL. DirectX 11 is the default on Windows. -### Custom Music +# Custom Assets -We support importing custom [Seq64](https://github.com/sauraen/seq64) files to replace the in game music and fanfares (Sound effect and instrument replacement is currently not supported). +Custom assets are packed in `.otr` files. To use custom assets, place them in the `mods` folder. -First you will need to prepare a folder with the desired sequences. Every sequence requires two files with the same name and different extensions - a `.seq` Seq64 file and a `.meta` plaintext file. These files can be categorically nested in folders if desired, - Retro will recursively search each subfolder it finds. +If you're interested in creating and/or packing your own custom asset `.otr` files, check out [**retro**](https://github.com/HarbourMasters64/retro)! -The `.meta` file requires two lines - the first line is the name that will be displayed in the SFX editor, and the second line is the instrument set number in `base16` format. For example, if there is a sequence file `Foo.seq` then you need a meta file `Foo.meta` that could contain: -``` -Awesome Name -C -``` +# Development +### Building -Once you have prepared your sequences folder: -1. Download and open [Retro](https://github.com/HarbourMasters/retro/releases). -1. Choose the "Create OTR" option. -1. Choose the "Custom Sequences" option. -1. Using the file selection screen, choose the sequences folder you prepared in the previous instructions. -1. Click the "Stage Files" button. - (*NOTE:* SoH can handle 1024 custom sequence in total. This includes the original music. Keep that in mind!) -1. Click the "Finalize OTR" text in the green footer. -1. Click "Generate OTR" and, using the file selection screen, save the file to the `mods` folder of your SoH installation. - - This `mods` folder should be in the same folder as your `oot.otr` file. +If you want to manually compile SoH, please consult the [building instructions](docs/BUILDING.md). -Assuming you have done everything correctly, boot up SoH and select the SFX Editor from the enhancements dropdown menu. You should now be able to swap out any of the in game sequences/fanfares for the sequences added in your newly generated OTR file. If you have any trouble with this process, please reach out in the support section of the Discord. +### Playtesting +If you want to playtest a continuous integration build, you can find them at the links below. Keep in mind that these are for playtesting only, and you will likely encounter bugs and possibly crashes. -## Building The Ship of Harkinian +* [Windows](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-windows.zip) +* [macOS](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-mac.zip) +* [Linux (performance)](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux-performance.zip) _(requires `glibc 2.35` or newer, but will be more performant than the compatibility build.)_ +* [Linux (compatibility)](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux-compatiblity.zip) _(compatible with most Linux distributions, but may not be as performant as the performance build.)_ +* [Switch](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-switch.zip) -If you want to manually compile SoH, please consult the [building instructions](BUILDING.md). - -## Nightly Builds -If you want to playtest a nightly build, you can find them at the links below. However, keep in mind that these are for playtesting only, and you will likely encounter bugs. Rarely, these builds will crash. - -Nightly builds of Ship of Harkinian are available here: [Windows](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-windows.zip), [macOS](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-mac.zip), [Linux (compatibility*)](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux-compatiblity.zip), [Linux (performance*)](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-linux-performance.zip), [Switch](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-switch.zip), [Wii U](https://nightly.link/HarbourMasters/Shipwright/workflows/generate-builds/develop/soh-wiiu.zip) - -_*compatibility: compatible with most Linux distributions, but may not be as performant as the perf build._\ -_*performance: requires `glibc 2.35` or newer, but will be more performant than the compat build._ - -## Take The Survey -Want to use cartridge readers in tandem with OTRGui? -Take [this survey](https://retroarchopenhardware.com/survey.php) to increase chances of this becoming reality. - -## The Harbour Masters Are... - - Kenix | Lead Developer/Public Relations - Resource Management Programmer, Audio System Programmer, and General Programmer - Jack Walker | Lead Developer - OTR Format Programmer, Resource Load Programmer, and General Programmer - Louist103 | Developer - Save System Programmer and General Programmer - Emil | Developer - Fast3D Programmer - m4xw | Developer - Shipwright, Throwing Baguettes, and General Programmer - MelonSpeedruns | Developer - General Programmer - Rozlette | Developer - General Programmer - JoshDuMan | Developer - General Programmer - KiritoDev/Lywx | Developer - General Programmer - Theo3 | Developer - General Programmer - Random06457 | Developer - Linux Build - -## Special Thanks - - Decomp & ZAPD | Made this project even possible in the first place! - MNGoldenEagle | Patiently explained audio data formats, encouragement, and founding ZSO which was the first source of the game's code and resource format documentation. - Rrrrry123 | Speedbunner, encouragement, and community moderation - Fierce deity | Encouragement and community moderation - mzxrules | For his contributions to decomp - zel. | For his contributions to decomp - Aloxado | Developer - General Programmer - MegaMech | Developer - General Programmer - Revo | Tester - GCC support and General Testing - zfg | Tester - General Testing - Horseless Headman | Tester - General Testing - Steven Pritchett | Tester - General Testing - Trenton May | Tester - General Testing - Zeldaboy14 | Tester - General Testing, encouragement, and community moderation - Koby Howell | Tester - General Testing - Logg | Tester - General Testing - Taylor Daley | Graphic Design - Can't Sleep | Graphic Design - -## Video Credits - Kenix | Producer / Writer - briaguya | Writer - rainbow_fash | Executive Producer - ReveriePass | Editor - MicTheMicrophone | Gwonam / The King - Amphibibro | Link - AceHeart | Zelda + + + + Powered by libultraship + + diff --git a/ZAPDTR/ZAPD/Globals.h b/ZAPDTR/ZAPD/Globals.h index c599266ef..0fe8e0545 100644 --- a/ZAPDTR/ZAPD/Globals.h +++ b/ZAPDTR/ZAPD/Globals.h @@ -22,6 +22,7 @@ typedef bool (*ExporterSetFuncBool)(ZFileMode fileMode); typedef void (*ExporterSetFuncVoid)(int argc, char* argv[], int& i); typedef void (*ExporterSetFuncVoid2)(const std::string& buildMode, ZFileMode& fileMode); typedef void (*ExporterSetFuncVoid3)(); +typedef void (*ExporterSetFuncVoid4)(tinyxml2::XMLElement* reader); typedef void (*ExporterSetResSave)(ZResource* res, BinaryWriter& writer); class ExporterSet @@ -39,6 +40,8 @@ public: ExporterSetFuncVoid3 endXMLFunc = nullptr; ExporterSetResSave resSaveFunc = nullptr; ExporterSetFuncVoid3 endProgramFunc = nullptr; + + ExporterSetFuncVoid4 processCompilableFunc = nullptr; }; class Globals diff --git a/ZAPDTR/ZAPD/ZFile.cpp b/ZAPDTR/ZAPD/ZFile.cpp index 46264732c..1f4b92bcf 100644 --- a/ZAPDTR/ZAPD/ZFile.cpp +++ b/ZAPDTR/ZAPD/ZFile.cpp @@ -128,6 +128,9 @@ void ZFile::ParseXML(tinyxml2::XMLElement* reader, const std::string& filename) if (reader->Attribute("RangeEnd") != nullptr) rangeEnd = StringHelper::StrToL(reader->Attribute("RangeEnd"), 16); + if (reader->Attribute("Compilable") != nullptr) + isCompilable = true; + if (rangeStart > rangeEnd) HANDLE_ERROR_PROCESS( WarningType::Always, @@ -261,16 +264,19 @@ void ZFile::ParseXML(tinyxml2::XMLElement* reader, const std::string& filename) } nameSet.insert(nameXml); } - + std::string nodeName = std::string(child->Name()); if (nodeMap.find(nodeName) != nodeMap.end()) { ZResource* nRes = nodeMap[nodeName](this); - if (mode == ZFileMode::Extract || mode == ZFileMode::ExternalFile || mode == ZFileMode::ExtractDirectory) - nRes->ExtractFromXML(child, rawDataIndex); - + if (mode == ZFileMode::Extract || mode == ZFileMode::ExternalFile || + mode == ZFileMode::ExtractDirectory) + { + if (!isCompilable) + nRes->ExtractFromXML(child, rawDataIndex); + } switch (nRes->GetResourceType()) { case ZResourceType::Texture: diff --git a/ZAPDTR/ZAPD/ZFile.h b/ZAPDTR/ZAPD/ZFile.h index 7860aa4d3..ae7409061 100644 --- a/ZAPDTR/ZAPD/ZFile.h +++ b/ZAPDTR/ZAPD/ZFile.h @@ -36,6 +36,7 @@ public: std::vector resources; int workerID; + bool isCompilable = false; // Default to using virtual addresses uint32_t segment = 0x80; diff --git a/BUILDING.md b/docs/BUILDING.md similarity index 100% rename from BUILDING.md rename to docs/BUILDING.md diff --git a/docs/CREDITS.md b/docs/CREDITS.md new file mode 100644 index 000000000..10462b49d --- /dev/null +++ b/docs/CREDITS.md @@ -0,0 +1,45 @@ +# Credits + +## The Harbour Masters Are... + + Kenix | Lead Developer/Public Relations - Resource Management Programmer, Audio System Programmer, and General Programmer + Jack Walker | Lead Developer - OTR Format Programmer, Resource Load Programmer, and General Programmer + Louist103 | Developer - Save System Programmer and General Programmer + Emil | Developer - Fast3D Programmer + m4xw | Developer - Shipwright, Throwing Baguettes, and General Programmer + MelonSpeedruns | Developer - General Programmer + Rozlette | Developer - General Programmer + JoshDuMan | Developer - General Programmer + KiritoDev/Lywx | Developer - General Programmer + Theo3 | Developer - General Programmer + Random06457 | Developer - Linux Build + +## Special Thanks + + Decomp & ZAPD | Made this project even possible in the first place! + MNGoldenEagle | Patiently explained audio data formats, encouragement, and founding ZSO which was the first source of the game's code and resource format documentation. + Rrrrry123 | Speedbunner, encouragement, and community moderation + Fierce deity | Encouragement and community moderation + mzxrules | For his contributions to decomp + zel. | For his contributions to decomp + Aloxado | Developer - General Programmer + MegaMech | Developer - General Programmer + Revo | Tester - GCC support and General Testing + zfg | Tester - General Testing + Horseless Headman | Tester - General Testing + Steven Pritchett | Tester - General Testing + Trenton May | Tester - General Testing + Zeldaboy14 | Tester - General Testing, encouragement, and community moderation + Koby Howell | Tester - General Testing + Logg | Tester - General Testing + Taylor Daley | Graphic Design + Can't Sleep | Graphic Design + +## Video Credits + Kenix | Producer / Writer + briaguya | Writer + rainbow_fash | Executive Producer + ReveriePass | Editor + MicTheMicrophone | Gwonam / The King + Amphibibro | Link + AceHeart | Zelda diff --git a/docs/CUSTOM_MUSIC.md b/docs/CUSTOM_MUSIC.md new file mode 100644 index 000000000..f12ed0ecd --- /dev/null +++ b/docs/CUSTOM_MUSIC.md @@ -0,0 +1,24 @@ +### Custom Music + +We support importing custom [Seq64](https://github.com/sauraen/seq64) files to replace the in game music and fanfares (Sound effect and instrument replacement is currently not supported). + +First you will need to prepare a folder with the desired sequences. Every sequence requires two files with the same name and different extensions - a `.seq` Seq64 file and a `.meta` plaintext file. These files can be categorically nested in folders if desired, - Retro will recursively search each subfolder it finds. + +The `.meta` file requires two lines - the first line is the name that will be displayed in the SFX editor, and the second line is the instrument set number in `base16` format. For example, if there is a sequence file `Foo.seq` then you need a meta file `Foo.meta` that could contain: +``` +Awesome Name +C +``` + +Once you have prepared your sequences folder: +1. Download and open [Retro](https://github.com/HarbourMasters/retro/releases). +1. Choose the "Create OTR" option. +1. Choose the "Custom Sequences" option. +1. Using the file selection screen, choose the sequences folder you prepared in the previous instructions. +1. Click the "Stage Files" button. + (*NOTE:* SoH can handle 1024 custom sequence in total. This includes the original music. Keep that in mind!) +1. Click the "Finalize OTR" text in the green footer. +1. Click "Generate OTR" and, using the file selection screen, save the file to the `mods` folder of your SoH installation. + - This `mods` folder should be in the same folder as your `oot.otr` file. + +Assuming you have done everything correctly, boot up SoH and select the SFX Editor from the enhancements dropdown menu. You should now be able to swap out any of the in game sequences/fanfares for the sequences added in your newly generated OTR file. If you have any trouble with this process, please reach out in the support section of the Discord. diff --git a/docs/VERSIONING.md b/docs/VERSIONING.md new file mode 100644 index 000000000..d866997cc --- /dev/null +++ b/docs/VERSIONING.md @@ -0,0 +1,5 @@ +## About Versions + +The Ship of Harkinian's versioning system is a unique system, comprising of a three-numbered version (`x.y.z`) and a version codename. The main version number `x` signifies major feature updates that require a new `oot.otr` file. The version number `y` signifies major feature updates and bugfixes that do not require a new `oot.otr` file. The version number `z` signifies minor updates such as a collection of bugfixes. + +The version codename consists of a sci-fi film character followed by a phonetic alphabet code word. The film character represents a major release version which increments with the major `x` or `y` version bumps. The code word represents a minor release version which increments with the minor `z` version bump. diff --git a/docs/poweredbylus.darkmode.png b/docs/poweredbylus.darkmode.png new file mode 100644 index 0000000000000000000000000000000000000000..2e2660814fdc04be71c078bd4e12800849de5394 GIT binary patch literal 213165 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

lG?y&XR{N#D()A>s` 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� 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

2j0sh)^C4?k;!C^iPZsBa6OrE zVcnVeu3SHiGuI!_2IVWa6OQlxygr?8?y`jSrh|*i(c~bLWi8wxbGNNOJAZyuf`l3< zm%fnIDQU>#yHh$35@>I3?Oe)rcY;3BM&5I?L1Ty=9Uj7M9VSiEexTB&=)(q(YrEbh z-9PYFJn{v2-7IL9LO@XPY2(!w4M~^lcX)$RP-Y2(;4E_i(8N4wGG46zICL-wx=$RO zM!aEZ+JqT zUIgu~IAn47_-{5r!Hc)UzUQtpxFGoch+^s(}q%0ElsGplHUwVO; z;VU?a-Tmox`V6EX?2wq3aKizz;!7~->(6pfbL{px$a?a>?iPP0wLR9H<|+$m*F60E zBd5f9-5mSMPEhMls&(xO+4|a_Z6Bo^~M-SV;lJbU=#mqMCf4Y$#| zBO3B8=_{|c*Zn+fvTLyfs7(VZ_KbGR=bu`j+%ci%VGwA$59oR&qdyb9m}MQSUhB{M z-2zTpQeUEuuV$?ldfoHN*r$Y9@S=vrf!gg1-+f(NT(hb?=QQ8*KRoAB5Z?k7tBpN8 zweM>6*p6R2d4SdNxKYdV-$GZrJ+!TyluN+@csBAyL(RkQpy2>eAS<*m?a3Da4arQ- zD68pnUUMfA)R>%kuX^681J3fzATMXY!scV7_BicCcM^SL3IqX1)UG9_25~&Er73_ksjhn}CXj#R9ZH>=N<{Z zUw+41YVTk3n2b}m=X1;aetj^p&a0x%Kva%fc7Y_g7`_yHJw1K(hrRnZUX-=k{r-}d zw&2G_#vb*Mj!c0LDAifdsGY4n>7Muf9OrhPN1L}=L%pD2AvmjTyDa!f9~T#wpNE8b zJTq>+d9pD6UxDndr5C=I%B}e9<^@_c3p&&5S+@$PbH7bk_JI=Uh>+8N{A@Asc4GplHVigLNO z(3)#5v^#XvqG8$#i(1>cr=&X;7<r=M3@9)f>*vRe59pwK$ zQB@|%)#c|wwzt~@f5^3FOi)&r(|dU01pCG7^Pg0=eYhjP=26?K;gTNC0v(`KI|%gezE>`XTJUXgHK;9|MIcq*9-mIeSd%blh##bUa$Nr zC1J(XBHgYRUo<2SGHiD$f3WT|_~^>Oc>#+qvVODLwM`Fn=r!on&4pU;j6o^UW!5H8 z-Fnaae#r$zC7GnBeUreuT|h%SNc}1YSy0PdV}6BGqVcYTjioQ9+xskz=8F9PQ17%b z&tmY2XwY63uM1BJdnV`%UR9C#&_g~Cs6y7g-MBt;<3(P}6cwd5(BO`g;_)oXlZR)DasR(v?_ON* z|0@;f7~~ci`>Xf*Majz4#)%nD<^sJAQEc;yw|8~S{c-LypOM=Asdn?WJ(Zom@Xh{{ zn_N;_3s#7}^yOp^?D$}6D=2u;<73UN#6RD*zWWuK>;&1e%wTzwN!Z23<>)$37pV(^ zpzsg_oi_v;b^uNERcbwY!E-5kS@GM&k|it+;9}~O`9tGZVMQIG??Tr8alfoASHhN= z_x-VNW(l)k(952upw`&5n>&{pHun{H=UMjskhP27?2dHb7*ciy#6zn5|1z(>eJx z?9Hp%;_X}^J+A2!?tzDA-!I%d%|5E_oI)+=q}3yoGFl5dLf`Ez4Dbx)i3Q(=!7;A_JjKsd=K5lx%lmu-a31@4LYPZB_4>V8cYe>U z&vo4{qEzqN3#te~+vH{)f4$n(e8ROH(5XJpz~{XD{>xpy^dj%hu?=yN#&{9>=cLP5kod?EMoC*(SyRo*mDvJYINA zKDMe^m0A4MHE#VGs%OvkP4D7~S(4@K{ON%0<>j-}k3AOK)!a2pS4rA+iSEa{&t-GC zc%RBLuk{g()MaMQ;SCWMHC_C8+tIW?|NmTYY;VvkVG!&*ar^MfZTlX7pZOwv+s!;z znO`kIMSnhTD*bYwv-0=HM{~C;YDvY;pPSqE{%>#dy9*bm?N$dJ-l1Rez0YLV!Q8LL zhfj4>fvN$QUD-l>8?~514M9iH7hYf#h_#*8!u*2k(rj4wZ&A%tPWP}5w){=pf$`4| zTE#D6nd?|}yAOP@KrLugO?%dHPt*f_YQKJwD`NV$qWPV|qDL2R7JH;5D7ZLE39mN< zMTBxGxbAuT8kC$`oO3<$B?U7lH+Fm7w%C&O<=p*0E>V4zbH6Y4&iCj#!6g}yc%4B- zkawktz=W5ogyY@ZgB&dnbFbnT`5rLuyNoByZ1c9g7;y`Z9` zX3*I+dD5ewG9O|=4OYb(UcV=1zhBr}r#{%bQTXp0Gxq7ldtTVz{ARsxirlMh$9eW_ zdh%8=yg6Q3D`c6-$L#jWH-Cops|H^b1s$>1Fk#O5;^5AX4z~kuZU-&gGks5{va-by zt?!_Edwc1R*&<^1j~4rYauI0#9k|^#Wxb7Ez0t0Ojg>E^yY62UeGPl(`Q_`kYn-9i zD(aLlynMZWcU(@z&6|_l$^`^PyWZW)(|*Fg(72<+P3i5Ye^D{_cvbgJu8{xV~u4Gamd|IJ=IrNe|fo_#{~6ds#pBHFEd3R(q{k`~*xg}S_X zkzPO3?O4ifL+16Dj@SLYPsyq!lyDk^sS?FN|*%$7h2SR5&|uB(&)Fyd;8+zQ+XdweI}(^i$e!P z*IDO(7S5F1@nh>l_38H}OloWl6I<8evBXAVmAm%|p~?-n#Y?>JE*59wNUjKXA!9gd`Y!`gUPe$(POhw@ftDxafad zQu0T!2Y=n$3$Oe>UV@SB=QLD8wf_f#t{mMhpTFrMuZzdO2=Gwl%@+*jKbb&B zX@Ktp0_}8#G4%S)y+8MuWp{i7O-K}k@5B7AIDk-(U z3-%O@RAgpe%i|$(apl8D1V^xR+DHaA+R0yN=*J^9~0iqYpQdPajCX zx2@yGzt{06pA;?s_d2fh$qz}HmkaZ5|DL4L1`fsx z7Zt-?)UQ^b4>sF%Fc;-k6VSQ3f`Wl|pH)wVmK;p_d_lkd#e!(AqZ7}_JvG+4D7j?2 ziB$uK?u;3rvur^9(rKGC!y`c5SU#%*s-Tr-PrkB(Q=_7!@cKY-V0!G{IN5!Ay@BeU ziWvnmf;TmkUhCcb)5~Mldhg|(v;G!Jmp)AP&aVitIMc3M zdH7+~qOf0Q*YG3EYFd&=(`~H_l~}7j#ph*-L1UI zjSu5_+uyDB?mFQmxg%nxN4c7nLvR=KnhX}u2*J)0w)O7nMH6+I=jY~&Pu%kVSGY{d z8IK?9Yp>eJ*q+DYir+sI9Qc$0BTo&&Kq}FbIiqj z!oRxzhhjl{lAh`QouqlG|D1yF*KcK@O~#9yie7v;xJ%=HzhL0Mf|y(Wlf8c{T7^Zq zn8oe-`FiaGKB>loiDCaMZ+_)JbwHt8#iXO_Sc`{C$^#}rX{kjkw-t*o6=IBA;T1V` zV&lWm*9T;mbY9BOi{1YJ*{>}fTR8M@ES7n(qjsa@|NE}He=KR`Q#hsE$HNmFb^c)J zP0_z!zL^PTT9?Gn)nsm79p2s1sI9c<;;)NRmqBiJDt}*afj95>C*7%BcO60=SRaPr9mzki4xN=^ycv1XsH=(6vV%w><9vpk};9kd_P zRvNT%R1-2p30jpRC>ZGY;(ffP((4P7tV=*w#A(lZsN>@NsUX69?iA1leaJ8qIHQ8@ zGhMyg`tbGhE-sNzK34dG8l@h0f4x!mTlf9ri%*i{ z_FKR6*X<8*G2?817w~OnP)qki(9p5)U56>^QLZV;Uq0{mX}0Ey`*QiVtYBpIi+{UH zl`d(>q`6jYy1;0)s^b@^`w6-OfaNdfToo+?Nl6Kv-JveG{+REX&%{{uDd*SE z$m>3_FL~eebC2rQl>gcHPvySyBEb*vjM`lmx;+Q9#0EUR_>9*DG}kL0EI@5~aM z$o>6(%zY(haU;Rh?n#gKtcY94+);8>|51g@wQi5>FQ50HSy0{O`z83canTX| zOLzXQ+XvcCe%=v!_JP1$JNG`mb)W8USj`)?NbvvG-Nr@+1=~Yiq^kBuPZpUddMG(9 zL?VoHcz7lnraU3_ zx^+d#PxjzL$-kylX9`w+*rXfppKPpg8x*Q;F4z8i+4Oq8*hJq$Q-qgMYdS zc?<7YJ)fz5*?#YvUni9=>Dg$`FIr$D@yMxP-M~)BbCI;h`?a1qRe7>jO`rJLBLk<2 zzIM_-`s==LiPBo7O@`lo#xFZ4Tf%hFKeycF$syV#;-sk6( zwEJl#gBLr1j;mqc^*faHdbp}oubE)wt@_97!V28)eTv^~t<3yBKdO3v^x~9+8KGR^ zE+wbJxE_3EZjX4{k^avD)ZjV&<=*Eh&3z0HJUKuceIIOl@t3#l!y~grIi9C)Gp~O0 z_w4^S3dwgSR8~0unj3Fy_a{-6S$)d2(+2{yFYi@SvdOo|I(eXdwPc3JKhV+ppv@^x zpDUO_J9B0=^A()F!73jHt9e1Ie_mN^I1S0uT@gz=L2L9_t*1-ZgHz&pX3cUrk%^_# zbAMK`$vVBWcs^6zSjp)B^69bnm24E}Z(5@y;i8`LeAUL}t4xOtTz_5EoHE}?sVFh& zas ziymDkq_&rzN`H3;v@vR4FJHq8n>8wjgauzLxf9VCV$LP&Fy;6qBZDnkd;fR;pL1;4 z3+2xr4sYYxb1g$u(9rHrVlZ1<DhYeDy_ z#H%c<@MWBPq^zVNx<(PSRJwkD{X;!=(4A}3>P|YDPuRCdF8-p8zJTD)hXLmo{>o73 zI;Wr{rD=WqcK)f4-&R^IbzSoClWu(Z0a=!!bH@H=p#1D=aiM9`iT59)Ua;Mbi45K> zbl0KswAe&8z730VH2yxj*7o=Pdh^r=GR}*FmtJ55ElFm%qNT)t%#ju^h?R*NL>XX5Fkz=!X`6UBT3&@FG z;Hh9V+r1e3z5l!8{hYl&c|3dAE-U$C!G=&5sUH6Nh|UvUk`fuINvk@FP7C*~nXtI| z&WkDFgGL?M1r~n&TB0?7zPRt@383MDUwtJXE1+i$b@D0H%D$>O>;|e)8hV7ubnES2+%cN|y)cGl%)t zpUkPK*wk@Gd}8S#N0pESo4EO{c_+&Mw(kaQGd%CeE}%H|TufdSvmov zaN3k#f0b<7%5;j;JUgA-1MY2XWnQDf?j?VF*2G4~Fqh?P9)CN^w(DT3npMMz)V_`w ziQj+p^`0=SJ|y_}$u~B^Oo#G-K%--R5P2LbhAIX3$C^vn(V*Qp~5Lq`QyCVIwkJ=Rz>~nU#2eM zmOkNGnf<*fZswp++H(VR1&5LKc9XOVf_X3BR-Fdb6VM50^^yk%w3TF-yj`Z4%I|y; z2d-FK=fsA5c=3rpN-61S*6)y#YcU(2UgXxl|EZK+*6Ej})d{WMcMJZQ?>139)E)Bw zS^fF>`KnBeC2UWp_k1aC5PjImhlkl%L-w9mNeeWey?#rpq$=b(+72GCsszM$@Sz)W8L z<;K!-c>)uSB!4JqHR~!_*~-nYXWgaP58lKCTB&7Sl(8N(8FljogZRvU1(v%Szd#4_ zJ^U92WJ=w2a0&4+nhRZ9Ge;(`I+bs`@6p486Mu&1RF=r@X#P^ZRph*(oKpA{HYS_p zjc&@yO5$p_EDm%Pt^TrcZFcMVpDxNrS@Tv%Z0S7l`7Mx=uAG)hWlhM(f86JU!qzMum05Z|JB`0!I}C>uQ#Z=s6TnNQ&lEus3W96Dn_NqFb=|w4ut>VY}LT;LJDsI}fk^)cOC_ zUCIAfcVF)~(RwI*ork`sdHJ#Q_c13*KDBs)?(RTa9pfM)7^$q3`g{M6r)_`Z{}f5h zc6L6QQ?bKz^TUTH4<&|8Y2Wj(qf0L$X_57(!1(8m`_?agnB&eau<+-hrE0qxw}58& z9&sN5^*)}1=DdtvaEOCCOs{)w_um6G1GH2&26TcLQY%3d@^csaE-%^=t0l)DxAE!4 z)$4D3%3zaq`uTWH`n)Zv4`TQi1uyF{V!peedG)crP{^Rro{f4Jzr{#fHFddzvXJDC zh)Ee+d`cRk`R-KCQ&eKJXx0e7)_LO34d?wH&DI=`vosfdp4VXlUNUWF#jw!k8EDy5 z!#aq0<(*!4I5hZox&XXPn3H|#UrocK3I(n8Uc`JAHE z#tTnoitSR=uiOh-?LQrKjPBR3C7_9EP|L|XUSGTvd=%7lP(ZET{(S-@CEeY7R}8dJ ztp${sO8K_?w(2S?@q#jwu37V^tCr_&cKZFW6ug+ZyYLVTsDF0YZ;S15#-^47pIJKn z{6LB403`7w`My~gpK?H#MdU7GZ$!=w5C zvRLt7`M0LBZ4VIpvHsrNkMVndXFYsmu!R5gTG_&m&^*u{j`NP}JJ!};2bF_=OV`z2 zaWiN5aMnb$J4|rq{{P(ZI}84c@4Lj7xA5|Wn;YupcKA$d3@z)}@|?5v^+n#FC!`-0 zq=A-qD>$vPc>NbLKbUN7ZocdyZ{EjN9#D4G2F=hrNzM((&tJahP0q%PvMw&INp4>y zwV)%er%oPqGuQi{;N{X2lQWwu&do({PtxhdYaj5Ps<(MK&yT%-ac9T*#}9Y%m;}|F zQSG>Nd|R4JitVmu575%|DXD9fjO@Q%(7*J6?~=op$+s^b%4Y3|*__}6ss+AnTg)tQ zh*9s1pX*~s!I|&(XNGHAwQM?H{`Fm{QqjVK2%Cp%OS0W%lBTBKYhQ2FqRx5o185l4 z=J9DzvInhf^eJHo?AzLP0+cYk4*%1yIm)&@U|NdVn)4}UYvPraJ}<41->>Oku~=1X zm*RcU#29Fe)Z4n6was}7PM=)0!Fvwe*ms|hB>7mSC9JKI6$BC;O+v_e0RKF0HEZ~0m)KPQZXWNbiW&5rs zgI0fla?Nv({jGTlr#5cs@cDLsOZM9T%VH%9xSvjV4=R0kept&~%V*KrHT%`=pu8O$ zmH9TFvTNm2`1|$V=PBT7r*R#u+R*@o&6ZQQ53iOf;C||ncDTxVbK>6`$sZHCJi^mz zZgREuolti-0-tgR&MU0FA3?Jjph?D+^Qu>W`lSq71qWK74cbj!TK>Kmw63Hz#b=Kj zXlC8*;JI&X=6e4Z2+d1(Se(wy9ufG>RzoJsv1HYmT`q?}b5%x4o7iL>kFNc)ajm3a zCUd&LORt5@9h(k_P5cQ82DWz!ysq{;ZI$=9HE29vx3+urtxpVA&7k^@;mod1#}eki zbtx`O4%S~@$Nks*ZP5YUCqnnH?tc48=zWdmx#K05+%NUcE$9gS25zUiu`5*U0cDl9 zx$dBQn(LdL%mto0L|N=v^#YU{w3TXveQ$jV@7Z{P_vexH5NP{M!O8kkZNuSRFH^c+ zO0&#QAZ9V)n8Z>Rw`sBgG<{Eo9m!C&Y9yAMoo-jM)MvkOJ!c@lcfJV#T zpsv*>xx0>2`rpm8y9+vqAYy(-wO(_df)L+&1*xu9J_Re^*Gc?;lj`0qjJJ3pa4G!D zDee0b6d|veMjSJ|kaU0OG{M5zFcZ62Y%Lk2RnnBh{ec8JI@p-;ojU6i{ z$k-J{fMfmDweBZI3)9Wt?ObjvG?#X&yjBmrDJ5lX?3;ukrD&O9j=dgLzs)}`% zyz0s|J*vJ_?6zH<_{iq?>ZRpZ2DNt4i(%X| zL|ON!oZxcgn2>TUMa{T6?c13@|2npHc&1I7x%b}vt=C`w>=#Q5i{qa?bMN(A_uoIa zu6gV_Zx`c?<`WXdp{JM2M=s`bOftA2v|?fFS>CX_49|bQVrX^JOTNl`z^1#$F#PHL z-(Nz1ez%kDj8-_JpxyEH$j5erBU$@OO{!k8SmZCaQpo%HeZ9tN=?NSQtsD-lVs6+u z%dUud@2m8~t7{7Rjx4%u=6W%AcG%3!&0cqz_C%=N4hS<>@!YoYX0Z8z%0?@OfYV|> zVmlvmU12PoX|bpO;q)1vEBHD*BV`%NZNL49ZQRAk@X9m&GL!#Z28PWdS02pTYq~@2 zRd_;Av3=}$RA(JzvTB`5j@bH6UNTa_wfqj z0neFspVlmRdb$5gxAz2vv-R69n`_E0U^?_1pi=|f%oM(I0ncrh+{Quta z-$!K&T%6ArPfVO3YT_0AU4O&Yf6fv~rvFd9Vz4+L&VFQF>%+VmH(%(+^Ihd-%K74Q zDc9uKoXQva`!A@!Ye-&n+x)9!vYvr^+Z@KCnMui+7vKL0_rE()K=rVa^ckH1b_TC* z{e279c4xa)i20GF3lF3zpV825x6%n`Kj1s{RDEAo?m;$$h!R8E~6^xFpIl2G)OHoKfKagOH zbX>9gT0MjFnrDH}io+{jv8gz%;OmG@?pwLtV%4WGt2UL0n!oOAcQKyh{{Hu`?nEo5fKy^oHl@sSo~>q1 z3OV&`wrwfPoad{Vlaj777F@n^#brSrLqpZ2BftF_P8zMB&1JT}X20p3>Vz_-!wlL- zUVQytr)sc0ZKex&8Ep~tL!)6Uy$TJ+So z-{qBnO7Q3TZ{HYa-r?sw^5Bgt&#QwyOr;HnKHS(6YR*tBB9R>S0WPW8yyx8;B7c6cd|m-c z3!AMNEZTIB&4?>ydBEW>%P^>~(!|Y%X>+ZZR;bJW_U}FgirNKy0vh`9 zCw_3NM9nu$^ZjQ&zwd~wM?>4Z=ZpS-eb^Vezp(HzvzqPUg9}5~eU(43`bUk`-ju7H z1@qSPO^}e?zHH@!bq%+_tzdq1?a#;1)Kcbxrkdn4s}`QGQ4}dxNL+N=+?8ij6SooX z&P}@%Ii+q{PhTzlV9)eCHRhn@3s)XqCH-K_+*b`deEfYQN}2C$e|?a@vxDx_O`sAgA?(lmzt7LlS7kdkBjeVL7tPV{IYb=oFWcYN|0Az$ zAMo#Hz3$BaKWbh-UmiH^>>HNNe?OvzeqX3<+{L`|N`BAH1$_)c zi`MWpeExNn@qpovR}2Rf!(ca)*ZFr( zc%qe3UitkEM}o~6)HRLV+rqzgT2C-||MN@2hyPZa!b|7QtY2_tQs8q1)@ASFFHEjI zeehpY?0m(r&)vcHhLas+6#|TWTPImDo#Vd3$ON)5D5WRT{>x1LJdtvRgAysM;wfFd z^DH;rRGHMa+d@`z(xuO2~Y~}N}%V*8!UHR+p+VUT}=KTD+JN|#u|3&{d|Idj39IlN%9~N$p zla;W`W=Y#pbW&*E+Q$`5egD=jv|_TD^=Aj) zPcz+_3fW(Ie4hW7$35>I7ti;92lo8D`qcN0`*9zq(uPB?ZP@lGPIO8>6Z-Rhjg>&T z!oquhHZs<4s(-1Kd}i(|u_aF1S3Yc%;@LPWex4P>Iq$ojw_E-99$zIrfuqq%q3-hO z-b5v>IpPw@VZ61^x*K;emn!V44Zdp-& z^B?%P-IIG!bm!ykcyJir`v0i@-*xSLotZ!5oy(ru#PgRvdvGJ;e(CM~mzKYCc=faG zxypeaK7T(@syQ3Z&R~2aPa=smqLjg)8I)g5jrZRCP%SXS{AkQEkQ3g%VraExUv>Ai zxY0kR&PTJAnb#;4vJ0(S_OMslKYaqWWo6+??=_KU1$V7Q`*!>$v^p zz{8?tn_cHJZf~7h8sB$C5S*eC9$!e`x5G`g@t4s71?`TfV!E4`wFNJlyzXe+t5mMu zV?L|BA8e|vulHV%$1ufj_oJ}Yc@38r*?wQ!cSW#pWfH+`udvaRIlU{(5&xtdSe=RtxeLvnPN9cH= z%q$7+b+`Xb4SmITKw|SziOo^6jYl+QPvLtFt*>;a&JLcavCoR3pkX;5L!Yt{&jzR5 zuhPk8E0i0m3~kI(#kZTSFn+KtKz6}}sFVZJLaE9B%;%@^>peT0x&P~-SttK3y|&@I z*w)nL@8Sba?R%OK(%o%*Bx_#EzYmW#?PBZ{SiziheM0OyzlP6Fr41dS>~-4;p@1!Tey$3fuUY zg?$V?hR?o!uRB`*Vr}?p;|UD;F&hHrDr{X4ps`Z=!4?Nu1{wd~_w)GqVlT@|Ui+(f zH=>y%+_jA{Y{kZB_P^sSia!5bm^hc^nfnSp0qwav4dR2`4^%co-mQ-gpL1Oi% z{Xa|QTQQZY?|L3RHFWyzM}0xwZg-o0rTO;q=_Yhst*QL!<~7eaWcqFQuJpXi&|dl_ zpZ6;70UegM>(xtUgA#=jC{fhZB>Sx2!C1QBqjG=yE4HP->)-RN&TIJHwg0=zg1nB~ z$M4_F^gbI|%4RV6gv4g0|FiwsLGk;&rpn;QMRBpUnp;hB0=6&cOZB;VC8I-h{gcnf zgV_&MF0^u3WE2>t4rUz)W@m7}X#QoUe%t{D?IWoVzWFv9rcK?&{Bn|}*)*}g-|D|! zk>yKPR!H0AF3YgO)MQ)rD>e(=5cVTWjW(=alh^QhQ7nI*LXi8FTR*4YjSDkB5Ic2a z#&U4$)qCUBU~>k}Yx#XOYQ@idqw{w^ShjZi+Qf!Xqc3as95iU>7 z`hi+dDq6$G5SMiILi)ZN%ljOD@!Z+Ba{cG;;pNhP$&P#0cwTJi6gD(9%i8SfS9`SZ z=PL$>+^nQ6bIyL=Ep%LD1@ogxXU)r3LQ7D8S%&hzUuM>GUgc#7@ISU{YLVgf73UZx zDH*x5h37`@{kp9#lk?dscUcB=Sy0(f`QUwiU^#>PL5K7Q7I~FdS9^g%G>DyHv&af& z2F2BU3~@?EmuHIV*8eP6z~{K?$18>fa$CeU$=LPIY!MlbNU;^(ftI<(T*DDf(1LEH+yj_5ST4C!_wCEyN?+i;5xqf`M#@- zyA<_!k4{<+YCadOVD3&U2)X)dMdu>*no@R#E8YKV?uAZc3_Gyqi@$X7)mLk`m#({4 zbz6%q;%e*btBeIfU-mYiUl-)ga9m&&GsE<||NndryUVcLkVC*z5awSMqhkgKxHe}0 z+x)(@jd9Hk>v-7(+iD!|fog~lJN1k+>9(cJ1w8u_8$^?~{d?bj_`}bWzOVSMtY5ia zU*r0tT|66SvCljo8)$U)=cHZCp!P-K={dJDukwQG3W1HU7!Lf&`Skfh`aX#c>j_27 z+w*&R40SfSN8q)o8`wvFqVRO;87= zrnKSEktZdQcNt_{JSq(EiPg6PPJ0DJL0RLoso>E3ED2gNPsImj~1VThMyNdNh& zL2C0Wh657GWj5xUx){R*Zm;8Wc;xzuVQG2k)|*e~RzmD%*|Y94_bavsOMiX3ZnM`* zwz1^*%SO+Ce2c<%WfumvMV#ed&DZdH8FOjlkrO*Y)elr!Uu7)J{#UU+)Lh}~uQL-F z!zS)v{=v$;J%7*94HDdjCq$&Z&x*%AT4^nl0%;=jlr(dp+W@(3+j;arQM6!;!?4KL+2E4+w%vL&Ilh>~H*3KK=Sp~%nzm=zFPSC?DIpWulN$gYDyXIeEV@hF*#^gWa;@69n13?E-RHX6filJ zGAJZnWo$4^yQ*6MxnjQ+(@ODG%o8eB#sz;ot}RyeifzaGAJzUXuiAFh{<{TgLhfN< zUh|;EyguhZz22->;pGeTZbrqJgm-r@6HtGgpav?ucRpAt{Js`LAO6D4q>XpV{*6OGqSNTWuZie_0#*=~rymQ>15u@+&xb=QQ4* zYOyXrR$zMP;orMJMF4zU<68ZXS{yCE~z2(6{zJh=fm9Z z`S(`zF{Eh*ursWyy4=M2iiKf@exntGz=tc09((sq+h6lTtdu38$M9_ZH{1BT4M#p- zW%R1%^V{%`&zSQHBiHgNQoFA39yo7sfa_f3|L=z%3jbbJ`-<<1s`Y*Gl#Z)45_2_H z3xk{9+s{OLgT@5JL$B3ZhPZQlSire)wv&(Q5p{xI8yngOf$ZZl4-Vndx_k~8&V>3MNGM>4#z>1;Z>cNj6C+%Wn zc;>l;uVJ%NsRQrStBf977d+LMPt#{$xY8MHT{LeO$H2q9=D~*g zx{R8=E8nNzQrdBcky9~>JzG|>|I$Ipn-p~(V zKXN3P{ebV$q}}VmLnTx4zg^*V==sHScy-YF{HMIC$v*uS%zTnE>wjeL`&<9(sw_jp z&fgC|YzQ@HIAFthg|Q&aR=(^oqxpmmt;rJ&(^_{iTX4n8Hn?zKVf0GZPYU2q6IsD5 z(sq2=+Fgt*k27dn ztQb~q%6f4*{!OqugL>A3Z@sl`{M!PYZyr+vdF{zUMo_`dRLZbm+F4VhHPXk0S1>=? z^k!>)L>ROYdFmCzj+H^3PKa@kOAF3R6hD(U-oxcSF?~{)&`n0sB46l!M{S@?-rrax0}n?7mHNO)X^>QVd|{ zm@-}e%u4AAc|04Of^vHJ{8vi{#J{PDpP(3493IAgpmLv;LsH3|Rl*PU*uHAmVOqau z`pw8QQ) zTyeq5$CzkxV62LISzy8a!tzmZ=&M4oPD1O$yEpOLT=V)`+M`Alx zyUQ}9yBwR*`-qKU#Z(7b28&axm>Ck}TwXOuZG6SB#Ouq_2R~O|5j>#7@`^#_+5#(w z%!-^-pe8J=C!YiwvU#$;(n_eDLH%j{9s6C8cN=yYt^b`PnPduTz$StQMjd1YcDLy; zGa5_|kOeg!R>WUcUTnv_CSdus)yx6&H=SKOZ`VQAv+ivXjK?3ZW@gxWa$@5qP}020 zX!vQ<&u7pPHp7os7z-{xc@hC`&K0dNiU>1jC^oH4`TT4Zf9~BakDQ~;TOY~nc<)up zFlXb-uHWYFuQ(VO1Xf>4IR7+EmT^wQ+gA)bmcOm9(GD=b;<4R|;pN81J12(L|Ix}ulN3=lQ*F$UfSKs)5(SLR0F6Pq1v(I-M z9?8=C#v576G)FwtzQ!N9OaA-8rk{`ZswVq*&T0H5nlfv)MImcx=7YZ8eV)&qBd*-| z5^;2uv`iqVpjv3fFyXYB!5Zn~lV_#N+N+uwM{AWo$x<<)tO42@7Vo2=NFxoc84{|2-MZ=KdHId^KQegz|!pfiyH(D{x;9vjqFY{mK!@(1G zF@H^b^_u%lO>DPfSn*+Y*BPF#{O+8K{j9b+&q1l>6+`1DD~3|dQzl}P39Y-#3yvSN zoBT-FJiuBuzdk?m?gBGYvn)vK4_ttr2Ias2_9Lpd15$pdf*J;pLEPhV`?W#EjP1!Z zP!n-Z%K?evgYDb%UI~{gRIUqQcX(e=ddKF=q02cDtO3`{c==mju^mXXZML00{fZz% z!6YY085$UQx8aw$g;{2g;cA}jrHohhJIF4$5_M)1sA+bUkxP7T?3*BS1=DL!*5AFo zzK`Kq;FrnI)qYNUTM7UT&$a1?%a_ert- z8mV7jrZbhY3rw~vWq9SU7O$~V`pTxGYM>$$RK1tn65U>Pvu3gtGvDpv`?DPG3QTwU z{Swr4;=aNN&X2)MjS_sS>i8HIJiAwTFLc|C?2vQ@^{l_`+w*okI2>)>`bt10C{mVT z@5YlS_wAm~;RNbo-;gV1c(5a`l)*sSUv}LJ;Ro|PWCN7LWE*~o_xi5O2Um~m3`Z1# z*fn(DpNTGIp0hnzcEN=i=c`_^EpdwfcWbZoRlx%_)kXK8sFgCma;w~@cSK$ zkOOC&N*(SPEia3Lqy0Ss@v;jH3@u~B%on_4{h9rJU64D&)(`XcOYoH0TT8C8 z4iJC#R#L)wjbG5SZQ5%<@mTjmF8;2?v)5ZIu2*l0v&aDr^DN+-AR)OOG(X*MrI2@4 z{{7ZhY*(fpkl5@d%h-_<#=c-*O7yKYyByDe=2k-HSFlJVpLue_;P9?Oo3B-q-sr!K zsN1<$g?Z>CS>SUykY@ONOM%YVz|<~;@9H&;4G?C%As&+J)cAE%vC+puJC$+ z2Dy)d`pygi*&5rRGZRNtqcb*wrnW+$%{bUp(vqbY9<7vakX-X?^4i&9E0qJxPrYI| z(YpQJm)}tik=Z{5>a(k4-ruxgwa|ZMEa+boqNL z-Z3;-nASb{=x}$zrVUFEu960I*%t(yNL{mwu{1aI->tokR!l3lel6#3xBr!C8c?qA z6Wm^vzn<7}_2gzyJyNQk_x%3;MQb2sE#qoFhr1D`zx?C*uLw4rIv^{poa{5-g1J=X z_KlRQyk0YXj)8`^7lI}hLfIiHc4p2#@4F1oSzk5G01X&zO@1y8>0}(MnY=uYp-<81 z*qR@c*UtWRM0SO6`MNy^jb(bKR`v6}xxFTjf#J%%{g1@WyJ^S}VqL-CD2r$*fXl*)j82%?*n$FZI8!R%T$&31nyZsuY}}tk9Q# z|L*o5uh<+iKOQxoa+SB>_PpQMK%Fn2P*6+z`O>EW?N332a-inhmFLfR7$#JF2d@}7 zVCZsehG_k!(#87k9BMUJGcPFJVU@S9z94@7F6J5TYbGBuw5`jyFhj)N`RB(A6Ra3d z1{oc@v$Bt&;bzuv`TJZ~c})Yt*carjt-t@jQYpZlq1dqK^G{G;NJ4)l1{=Htc$E_PDD=QmK$pe*Mz)z8V7-8Gq0^0=?60a%WTm z*gGOh8HDsf4TBwpY(0j|msnqx}h>8i2Xop`>N37OFOoSSyb9u zhwaPUYQ@BmrWnM2h2wW}0Cyrd)%GzkG;WcZP#%KbCoWYtI=1Fi{BCoha)ymj_1_DA zf=&aC_(qW1;5UuiL=$S*w_n zf1`aIB}#;0e` z0`4|EiHy+5k$AK7&ifblrB*~Yh-d$w{dS+B+TwQ%S!aUT7yNruk(biD^8Uemh60;L zD~G4a`H>-E<_Btz^1u6bm6z%1Q|{tpGcrrrU!DH-XKOWcDa!%_)7)RZhO3WCdTd+w zbB9Nno!%s;)KUh}dJYx0H}qP3biApTo_*kA8|-#*rrvNLqBykeMoeg4H1$Pi4xj^Av2 z(#Q6^J|Dlke6bZ%z|Q*P7S(x%;Y)w+;Ba2!$2YsyaB_gG!1lJ&=Rf-dFI@5tT&*@N z=W|%}wg2Adt-Y@}4mkdO#c-v+?c2FYyBrm7U&;d+4NB0+9cdGjbEi9{R%Gw9Qc#-* z>Tf3g{|;FU;-WB@I$&=FpgY%~DVrB>dHGEg(1yp|B zr1bkD$oUICSgn7tQaT{qDVgW}_K8`q-^+btZ@c{0lIPi(bKvZ2#Md8P$~0&CuFI38 z^y;^QVn*xryH8hnndVtBoHU7*?B+2)cOa1W&PGEcO)05{TeGZet}M(0O*nu$0Srk? zbM~!V(${dAsnj9H=;j<>#;|^00z7L&xOhd=9lQHO$uJ z|9o?J;VxzdmzvUsAj9dPN-cl4l|$nB#;onT7)w(@braK7D_rz~6vjQ% znm{Az`>Yi5E;F}-+UEKp>>UNhy_1bZWur{Lh{tzbk!?7vCmZtf z#2p2Bv@w)@L7mIglP4rL2hL$+@LGuISvx@I$e*1(_GfE#Z7IuxrgT1^Wxt9g&fL9n zUHrz*xMsyLb&cZNqG5L%TsW>UZp=Qhsgd276EcGEWMf;M#JN=4nNt`|N8iB=| ztQf59ZEIG_bNR~)pWiU)|(0+Ed(W|ufbh>=s67Fus|o!j8Zt0R@52EnSjAM-#XUOsxDas0Sf z%gW8}--$N*{2{5gWahda*PBPVBPICHB!D{3yBNPFR;_uoQu>jZrAqKBN)z6ENGoMF zm@ilL`l{;T&%$RO9CvnJxXbb7_5FWyOPOA^%Sz0@vGFJG`i-vy7*-^M`X&YeE8Cv` z|N7m0m34!Z#%ksX8jV&COFzvFuY3iX^f-98ahGDAe0}q}S|XTq!D%9QNmW zuC#I?`=!IHm=_o$r_@091GVwDzx%An6X3qexI%tz>z?byuP(7~TVLVazl)XO)f7;s ztaz|;;n!De3h1x9ekG zrhfK)#bc3kzBZew)H#Ohtko+_B}k8D;j^d z!DVytUIyniesh-dffwC0ghEEtj|8(TST55}etmr3*Mb%A7$&7abLPUIP2IMo&M~)6 z=dc{{EE{1%%!t1eARQ~2R z!vJ@MscWnlqz(%|zF6!3e@FaX#xtAaN*N}IQT9Bn)X%Zzr{CuKqdD+D~H6SNzFG6)ulgQfA{sOV8iNnKf_cx z=FbmFS2$YqszK%Coif+RyA0n$?Q8ni=XKnDxH0c?P)Imvsi(t|HGB?6KH9ghFC zJNk;OgA;3;>%RkQME4fkf`%AYAtsat7oykeNhaq7l^>|}@0H=Z!mIaVdHQ_Q z@I7x*U-4X7KS_6M{nzOHy5#@=E5H3To&V>czf-9IgUXapc7>n+sz2DAuM2qZ^@>5o zZ3SOIWqA1Pw;88a89&$;Agl18bZ%ULxx!AR!_U_o=y5x?toCpZ^PD-KV)PFPtQP)w zC^1`X`wDH)0xgA!CqX^Xd~kQ${Cm|aHWl|}8+Ul!Wl))sA7Rj7x$52h@F4ReCsr{( z*b@Tla2JF-Zw#HwSiba`r2FSZpFsl@xBot1uPJo~uO=$_@nIjNvFE1lwrlpMv#)rT z96#2da~rf$#cJ)ZU(=nE&*(nlVVI%6npZm9kbCXUm?e1y2VYxRGao)Cc;!Z=>{{FB zrCX-O-@du=pZUMk<8Gz=3@Q^s*%fZq6(n5w|GB>QSa>-@gR)a;!>RT2?}JLgxR5^& z-UY}CZa*Kt`@|~g2^p(DU4PemMX=%ZtnQg_+s-Q~9Fn*$Jn_6+WD$H4I^im# zN88H3%>ORL*PIM5XW-lxEZgwpv~E<|RbInaLEr^P3<0M>1GdjsGe4T7y9GRXvx@mq z!M)V&)35Rtgr~k)0G`#GWO%1v(d@7M&25FfR!j^HOR8V24WHg)Xui^V0?+v{H|El2 zZn-=A>jUmKT+vt?v#a2+|GkTQAJ5mX&5e|0X7DtudF-lsctY5ji{bS)8{+OV99gi0 z&%wx~?nz<%-36a^8B2lF;0k6DuAM!h<_a7CfV!zy1s#NBBxZ44;q_Rza=pIB*{8oH zlS-Amd_k4X(!36*f5GoHK@0sGtw0O?AMAU%v2b$im7QL98C7By@G(qEsmi$m8s-PB zRyEwgZp?9&v2f<9K5$749Vfaz`Qcxrsb>XIr(~Y_=NTCc?5|0htxcNNwmP)UTrxTC z>NT+y(i8N!xhtzrE;`3vw)gL*_3LcE>-gVgX5a*c^p4EO|9|ecd%W7XK?2l?R19I) z=_j3nWJO(oIUL&Z+(eDfVslOH!=HWDu$^a10_NSS%K{@nGb_@ z3b;-!Eq8sz!I-zqaP!B`Ug!FcO9SRIs@yyvE6rTWJV9lqk~Cvs&F^>nR0GW6EB3*Q zB{{DO7M>LK1`UzjUdPwLdH!cX2xz6`u^Aq77#T_*-xZGw4l`E}RZ2b+3M!_A${83Y zRPgWp`f8J5+Exo@&QIsh+X=6dj`=Vxzg9cQTw(4s5pG*~i{Cx!^7XG(rP=ELUiW$> z$50RvDcf))dOaTlLp#eWhNVu<;1Q1MD~w#?a{@nH;q_SZ_2>7uyjKMsnp*5{noF)! zp5Vu`an{l^x#3fI)ZG%(7FsEk?R--N9h?WP)iaBg>^92Pt?^(z!yhl(kTM(GWbZhP zrO(a!s=*@lvo0vCU;`*7mX>1Ram_7aw?TExhP1b4e8(9W64w2D3r?!>q2&sZkP&Kk zmRAf*!rkrC{c^Kna(gO^K3uPVE7lgtcpz}2J)8R5&J3NLn;$l;f5(uO`{dbY+frts zm z-=!X4enj{3#T-Zn3)K18k^8BYd3M{sN8S^6F|QC_XvJ`HTCV3=HcNk5hUcxX7#wu( zZv(CO%ml3kUb^{S7-$|EI_H;{mGkD#I`AC(gtHqhdA45LUUvJKT`3C#L+PW{ZO(~> zOmg-n89r6>)X%B>n%>NQmDk~<#O8AbXSf*pjs>$T>@2ghKg4+5gWF%W;RweSMlJd3 z(@NlFi}H8gu9jvwbz1z{6<&{dpqT5uBIs~wi+L(jDYMY&b5CbWCYeUFyPtZ+0_r}2 z21({j-?j4PS@ZAUwE-4Y-~aD(m1Vp#(e@RC0_QS5`By>a2P#)qzvtU?<;stTdEmL| z?{j}nO9c(ygUVE2FabNIrAd*G^N$=VsS96w*+=mibhFfd$cuCIQ5 zwOlIs)GI!f(+jh%O0-4%-QC*Sv_6laZdpoCq`5_)?2UiV%81#9>m zl3L&Yey;xOiXg*-83D2jKK(MDwFWXd$yI*;K;mJG#JYdA;88H4ul3bBrq%Kf#EylY zyVjKE_xFeoQ>nupDLwo1#yJlTo&mM;mh&~-USO&7ys{x|M&0l|H{p~k8RxlE#g^OZ}PwV!ZY^oGp<|w`Y)#b>HqS_f8O8x z-pXz#IM2avQOGLM+n~vb1$D7o%Wfa@kY!|Wxb!!tA$0vN=99)Db2+Z?>aFzgYkS4^ z;HcFn%Vh7|z3JObzScdtWBl9hYqPp}{U>(&k5^+E1hzkv)(5p%*0Il*yR{~dAt@w` zT|pAm8()xz*&Cl=@#ZkA-zEEhuOmME{=YMFZlg$2$JICB#%}3lj?L5e-wHNAP&>7> z{O2n+M$pnrUtXTJsk+g>ugE&g zqR*0&vb2KCcRXo#cCOxKWpzdJfd0!9&wC7)eOG=y@8<7ym#48!zI=IhUFqxXzmG&R z2&k{-b4YT{|JyE~8{*E;kc`<$|Ng19XWM}_U!UIJem&fs!E@{1iys~CHXM01@3eXP z^VLeMpjI$w+f{DWgM!Gr;4D1Ra<9eWeZIE!4KL3hu#w)8oV+5>VUusDoA;}>sOUSt zFHSOCrgE;~_99Tza+NZ}(#z|1Tm|ho36K?7{_>ffCrP9~tRZm-<#{{mNCS@KkR{jgF6pnOm6`9c+AiKcC$S@Sr z7j;;;^+bdD9D#2SnTmyNKOJ#d(&zBY;7FF3(f+Sikm<#S9jR8)6)#$5vb?qBALJcnO< zmjAi$)y8;r<<+2^&sTZ3mVjr*7v!xCVrO8Okn;cAwbkC=_y0U4+r}6+WAVeR(tx`U zCi%a=CAvzw;ilHp;-%&~FCzXiK>U0BV`U>`ON;KfosKF576*JQN;#O zcNR47I4x6SgM{Gm&9Slq(^J>~b%ur>Xd7I?1mbUpY zx2rD{ySDx=s0+csFd-zq=5W`i3rBuTUg~slRrG`!>GHoP!p$wz?pRt#tW<6g{<`Yh zw4(DXz2DvWeC}Q2`t=oe+s^L)CAB(_2|VC9!N%Ug;MMk=3X70(2E)%+7(E(ZUXhvb z-CJvZ(Xg#{#{rv+{G<+1Kd(%^`)5}FeFM(A zppJgzf+k7USD=1=!|Y{jY==)xTU+~zZ$aP2N)d~`wrhN5Oi5~)b{{zmj!9g;aN`|h zLxI5bwxsq@&^q3C?Dhhyl(XLMIh_aUX@)01W{SVt5VGkN!wZ|Ahx%Xr+GjgEcf%{T zD{~(#zHN2~oW56rYVi9-51WqiZ+XhCTFM=;p3mQp?G@XDl&PO~UXm6oS@X^^_heuD z{i2I~vj1N$x|&`8RLB1=E5qjltC&F{5O5Q;-VPk|A?zz^9(PUzFIKt2$i*GCDeP{; zksDL$?}O*Gnse_<%ZHdNOoTMeHeZHJOgh|=Lh1G&@C`mMpYY2#AbO$|LjkyR35sqr zQ^Tk*=#=E;t6b*~gEm(QfW~lkH_e^Tf0frml`UlXjfhf{0P`zB!TV0Gk`5@pwt|^~ z!DEsBzC_ob_wQAG{w`-&mKZqDUvIp?!-?|o>TKL6j7 zb>%U?uD)MWle~WBW6ie=3k+%=gBFxcQeWlc2C4jH9p<>@+1&^2hFElLYk&JIj;ZIK zv0b~L2%ZgEv|0M+%>y}*MKcTXV*WoX3cp~RFsvz|5WV#-_ndUAfh+V5GH zZ9(fTBFn=U<6S{rDKOaAT*H>)fwuUw`dom9)m9iP+gKD@> z%hElQ7d~I9z3aWq>^ZOOE$lWv4d4IoZQbFAEew+m2D2+v*4Y@`TAs(i0!{(}>>6_~ z&HH?Xw;=A-x5d)QK9FGpj@h5y-3 z2n+;%79Bj^&7$GkiT3&JHf$n$O6`#egPO zuJYe~yjnV`ykZS#tgH1E!^BNi40)i@OXd2%{GeQZ4>X`2V9u~ktLiyuvQ|HYoq-Ru z#$}6xtibe3k@=sCdguJ<1IKm6D~27K*8_O2@OsQ&eR}?fE4&vhZOlYgNoTzj^^SWA z8s5KFQ*yfv+<+0PdA>IMd)@Q3;qP}89DG#Twoqxs!h@Zi0e2s)_;B)YyK^Z^Kz6!` z`K-@YQPov`(M8XL!^`;J{5n6q?yGfvW%BxmTiF|`Z^$rz&3e*o1US$ml0*}*- zmHVGSChT*6BTd*p*ysE6`&&>$ckj)AFIub^IZeKPW&M`2-`u=k_Up?zt@ErH&v9R6 z6q?xsTE`po{lLnf&*J>=GJN;3t)Czq*6_onjn&VhQnmQW`vBWbuNW-ycUv(8%$AXU zm!+`{v`g!X&0~$ZU(NjQf+GU5OX2@N_u$XF7?xMOVtBE|blR(5`)W&)mh9HNzvi4n z?Fai^xz6*gm>3w2Pqq91OLVn<%!Vgb$;)g@c`iNtxsmI9P+#Kt7a0X<-rdXJF+937 z@x0_@b6amIZd?D@%A0eOCkOwvUcB&azl_b5|0j>n=eb(T5OjVO^8_9J9-o{ra|Wf@ zR}3mn3-|(le*FyE%6hIFRQ#_}e)R2Uwm5i)iDa@_mvqCfE46X=%w>M{35Q$V%ungK zdIr2lVHGor*Rq`tRw{!g%oQH2WPUIww-2tr`*u~< z^bq?o&;TUE6(gS4$3Fgi)vzN(oBj08W2~SV#XEl=^iH%|bnV>kH{UkxVthAiMIXy6 zwk4nyHgiw8)c(JBQsUilgZyi&nHd-guD;*%$L4)6_w>74_AFhyT{m81W%UHT+w(EFmRE=AMc>$5bn_7Jd#l>afSeO~Ki?g6{(HUt_eF=h z>GQ=k&P?{Z^>LJ9v<_4WNBmsjI9`eegb`0$Sz(T0(vG)e6qTznMzegEDtoF<5=K z`4hfy*TOch-k)mzvW-t>n=O0qzdiTERapjx9nbdf`&DXt*V}LJz6rT6GS5D}YU#1^ zJ-^$;T?a$!|9`psZ@q5ZnsW?u3jCrsn;yGiJWKj|Yj})QpRe!F?{>urr+x4LU6>!y z%(>v(8Y_mAo8EtL+5hk>=gUyYIzES&?B{z+=kK1PC}^<`Jb2;Ww{@k(JkUJP9fm7w z&G#9}OWZrI?8dWk*2xnsre|v^`jcnZy$e{8*KzwxW8&<{8>>J~+*7-DE0wk|m|yn$Hd-l!&0GVT6$DLFf);XR=HwWJKx>mN zre!}~wMAv=Zi_5ses$=V{oQSfA?^$e3Sqx)ci+Ee93#8`<)2GRtNR%1))~&`y~?}J z+Q#ywbaK@Z$%f6KD%5CMdZ(eS{LiVz=661Px_oHj$(8@s+gB(2_U-?(A^tA=g1mwW zrfIsXLKfTKkovaT8r0}-Z~+yq?!i{og3VP1ivwgA7}%KQif>z~{a}M#DMP^dC@JHG zyBJ>{5?K9sGicrOuZ7j16`Mw~XCVVO41%lq8mw3CK6LgK8w10q)8{^bs^k@X3|Bto zdV|ITLA$&*{V-jfV|IPXxrX1M83j-|H1*lhX#zWU{o(Y#%P?2GZ65Dc-mO(^E~$%hq&~mm+K~%7tK_Wt_o!0lJBFqP5`A~SC+y$F?4fvHVzZwtqXl@)WAzor zhFe#DJbah4&=oW?{qp;gQ1%10yXE&72AE&DRXP1`oY9{CV}>RsBFv@CK_^!+FDU-- zfxGl?-4^iDevduA^}BMNm-I0(DCq6~`|0zZ_?HnkE>AigTOXF)o_ls<8-LzyQ=20W zA0+?0>yxdkyr^_}V!Ee&!6Hz)_=J`&Y}>W#3=FnBUFKf*VzzQ~KVyQ~saFgt$K&h& zv-0h7>q?y_ZM?P*+^0JA;>Z?IlYgO=!^3yqi*Fe8W$(3OSW%w;??uDRKg(5L@u>8h z9{V!?jQOX|>mPZ-cKNt3-o=#1eU-5=d&eIe@b2aSSq0E!?K7;bb zG~F$rBPBphtfi?hSwW+npkCx{)m+Kn}2VefTu=CZl_pZ+WzW)D}vEUu^gJsa6l)gqU(?6f< z|E^sBj-h3Z6~nvinBSm9y_H`#Jt_jtvaDbhiF+;zO59JMudmh$ac9sJSiw9&k7uLR zygoP3rs%gJ>_>E~f3Ai$x~H$t18s0BIQ-?t4#}VI|F8DH%gE4Rc+96iJZIU3CFdG$ zGnFzZgc;pA|Ip&wo$bfM&5xu$`mpa^&1oaZ`2ygROoEpdU68nE@4VPsmSL{0^*gRB zyjzPd&YWJwv*D0T?yt+a(n_Fl#LsWfp7z@=u4}dQ`JF!2yS}_TKb@Wxb;a|5r=^Ku z;=6mh)kDfv4)XKy{(Qb=OGGJqfIlda^l0j9Jv*Jg)okX5=a&j{icbCi_Alf2*Z;pF z_FEcBNHX*!p5^d6aO26A^?3|OKrLwQD~w*yQwFZQbvHjY1A5NDIVSh5ak30cTtw{b zGxwar_xr{;uH(+ z0-cNdpzB~W!|#BWIfGUU1UoOh3tEK-YK*V!uvoPc)Z=!@s(i(evB%&`PRgqvpWDpm zRdz1Vb6DgG*-OCi>}Xf&^4sNes=_J@H?G`mIbD1Hr7Kate(pcbvAbbsRn3bDhHD+dYSe!(N)OxpIE?++IKd;S0GMu$1<4y)Jj zITY2rRlg`!%Dlj+s5t!O1~o}z?yHPm%EG~^$r5~xpp%EV*1EFodAQ=xpHlyyuQ(KR zzuDLy70^D?rWkg7!p^r`;1=ao#=_H2q%Gb`f@YOLTb=S|-1ymi_7$7LTDEsLBueWF zwpuY4fOZgqPc>RCcQ3zKxBH4@LHGjD+KJiu->wLP7F2*Y8TwA1{1`UWbRxC5ao56W zphXmKdu3nos9awLs!)R585jzLy!LM{zBZ*NF+udz`G8WT z0CSb2@88@Iw7GIoRyRLSZ)J4D7K`O;Z%QS<`84fVsrEFzj$_N0{b_zI9KCPXch>)t z`)wt=J~JHY{%bg6>WZM=e+k()pjoGL!ZhYjeaE8j%?vj`Pzzax@uZ2jehVhUcuHk@oAGGIs7_^z%Mz+=nqV^YHNbcY)>#wd?fi53Q13aQWt@iru>w zPAj@8Gy8DCCZ*&vZiUPY44XG4-IVe@ye}u1&UCmt zLB(E5?p^%7J9k#UW4N>;*p~9rDol7 zdBwJb-FZ#l(=U@it%QA64vThXfL7x!fQ(b6mNMTl`1h8 zsgK(0mC_R;X8(hB;|>Jg_!=vITebIWtnSV|YyJGEp3i)3b87m>H;gYoyja-L_(1)^ zzvuJsf10N1U3FEKp(irpOmuQjZ0R@6)%AaSRG;0vXlOtGY~Ig%2PV}2-ESk-@tNU_ z{c1i3BO7a*eXe&IItn9H(v+b?IG<9}%~u;gFpHO6uwj8EXxU9r{J&kxl}cGAsNI&I zYp}ntFmP_;l!T6}8^JrwRxm%BhSW|6txcG5=eN)NU5pK!Jo~3JCifWLd=};p8O3$T zU1b$@?%6C*c3HvK;l1yvh}f(|HP~`EE>JriQrmuh;V;j3m3QlvDfydTv8ja3w_;$J zP_;BvzrHv3y!e~SrLM8Qyq4B>rkU||R~kbds&emqRgS+qK_$K}EC0XzoYF98tMr4s z)hEl#6VFfWHGH}`dbZEcRp$zFif;9*scqZ;@c+N){f26j*qCNaekiREvgq)G8%uUR zc`x_0wY$cLP zb0A08Xa-(BFTZJ~>f2X57V9>>TNiLw;eea}4A6w}4|93WtFjCc5-fW>B4ru2zuo;C zyu)?t{;Z|b&zcv$uy-Q|P-}JG^I!HqUrb(T!gnAC zG!EpvP;oP;=hA!UPAX(E*@7vj(?IiJpRY1<35T{RJet0NU0mSCzZWep?ey25bMP`a z@=C*~zM?P^GGMV$TJE)(u4^eP=$ImxHC7B!my;i-Jz4*6VfY!=F`)5%&|FTKEQ5LI>ZuNQ8?Jzg;)=wKcu>jFs@rW-$}Dv9 z|K(h1rcxFLg^O?6uE)pSviuP9bJ5Y|dip8Sdp@r8tj;RVUTGTsW2yc*4yMMcjpZdO z0p=3=b)e2N}CS>mj1|eGQJk%g_O8&^tx(o%pT#{#DjyS>MP~wmYB^zCG(M*Z;g} z9i)3I{(H!LD<+S{Z|}>ecZen(7FfMFQya9XM1M`)3(#V}-PaZ!cPyH5(67|t&aC`* zU%~ynD{8B1+gRBcCS)jEgC_r;1?N390_BjP@AqUYR-WAWa9vx{YAfb`}*ef^Qn5JyHw`rN!WW&qH^ddfS-#@THE8(AQv?T8pUQbg4!;L2; zHap&BOn7I-U3p&O^6oV&FI2zSzs6uUUoXqiwlmX~^M(J}{(t`g@#l;dpp7E6%u};| z^xNA>tgvPR8XgS4-9|!M(jvSl6zieWt`2ow?R}2geZw-&U%9ysb z5;R2|!p<>;hySJFW(V+52n)jR?oIFB#du&p_fs6_u0KdtXM7Tqp#e!vUSCc7^(TQwk$WOziJj?Fd70TaK3(0b|6_iQ3D4D9hg+c4cPBr{$Za+-vwXW+nt^?Tn&f7| z70e;`t{$x`IinH4t|3wcI@++6WZX_grL^F z%SGXRyO>u#S;@TMGia)Km2}pMD>L#xT@mz<5!=kp|>N7Y2VY;XR( z`+U}G9p0Ya8}s>>S8eQ35IFGh>)T4B0CSayl7gB&@4qZt7FWvAa7$CPNHy8#JZR|o zR-ah$V{JcP_f^4v^+S$rk1zYLyboM0y#y_RX{-PFGT_y>en$61(7xasJHCDNkX`tx z`T4P3=VPNlM-GBFqV&l)3w%s+{I_d4DC;lyCXrNH0;-a@uQC?SzGt6f+#PjQvLHGn zvOIiApFqOm^jo3ozprvKFvzsR#*ISE8N8OqR>H@PTwZnTfbNjKv`OPSXb(mkXitJe zR^f*rueb7b=Vn;_v#B~e`+8IfU%!jlp~i~4 za{cCnu=%%QV)lNIoj#*;WoCU!QPFQ@_O@T^|6faP+{M2lI83%7rQ*JQ@eSUD8`<46 zTVF9OJr;8fl$GYbVrb<)rvd8Dwl=S3SZKfd_Xbc>dBwAY#d%F#fJq10nc!td+NO^U(oFHPta*dNiQsC=SQzP*RY$Z)M1U0 z&Z2`opamonV$F-86RqGr&lZu}HKoqFu8WzsUAbcUS)A$r!vFr;b2+XGGBivM0_CH9 zpTC4xEOlBe-W&d}HsI<_d+Cs=KW~cvs|g6L-lyTkY7jq9UYh$VujludvAh4gbLDQ1 zfBR<3D=~(TufenKIYvJ}N$U2#4%6AKvdYKrtNUZ&+xx+d{`>sSg-QYP%g%nP->=Bn z_poz?(5x>taeOjYPn?YfZRJq}&CmM2JktuAlm(5!a~)2;T$Z?c7ZcyhV0MPgZSxev zIs~29#3_N-k28GttxMd!K2Kl+Xestu{yA%`7_5*o62qQ|x|@=qdY}6$V?)%w+?AkX zU_h%JQIFXHom;rfXPM&E<%)+m=UFjGO%A>as=9e^%CxILbSYHQX4rB5-j`SARX=^M zRpl;ydNilm+#*hM{{9Cq*f|YWaIMH!o_sanZUFzc&|_wj$?rnS87^ppvk$o4a;s15 z^S@$0UaiT&|0W+^9DQ$}?uVn54wE8F8Sa#4K)K4wbT)(d2wiBc(+WLyE1DekcZ-+?yw-Q~acVzo4Qx9_rx7sZ)MnJ+zm^-2BI zD>m?i?6(!tSt}s}NmIb(Y`8lELyzIHDd*xhTmhw!s`VN1FaG|x(D-iiZSjhoKF6YO zed%^znSN%A;WFo7PKUhf9|EHI56=nTzd70ce)g^1*XLfn^k!u=!;aKM!~9;uZ&#i@ zdbRict|L9ZzF+x6)wkEH)~x$K8I(liCa8e+V|;(|K;nHaW3t5@md%2zm_yvumx0gs zxXQ>?zJLDVwvXJ~Kr^Tx6FaWzKRza93_8m+JEC&laR%)(PN40XR~RqMy780QZUz&> zjuoIWdvNzJI_KjRUhqBw(1|;s8k(upLFU}`yX4oO$A{B@O)VS>}r?DOw7<^F7{y*$Zyn!T}A%53SPZ&RLa3-Vs~;eGs;Ei134 z7#;FrI9IhUi1P~X*GDHO9-e(JEA!rhcMK2K^*NoBNUoZe;&cAi^$O{{nx`uh(-rT_ z%gEfSyScaj2e`>%k@ceu)J~f8u=f9-mi2j%tq<{!Zym2KZ9etrTALo~kkX~~d<+xL zU02R9IPwadHXw_-pRWG~>OH33jor7)@c?MyyscT@vHd?i_U~e5XqY}rZv73P#@+_d zNIyfzR37KfLYeA!vEYR{g%$DT`%-6GF@whCz;(^#4T@!jYDp)$iv8+zr(KciNf%``f6>pSyzW;)Av`c(k2!x@UZB%{J~^VekL;dY?J+ zWs1E;+}%%m8x#Nk%D0p2_{=aJG{Km^Ac&WDzA)3V4f$NgpkXEPdDlRDR`;NcD;;7w zCXxK>({)?XmC6hTZ{$8cls(|x>o>(WI4+j4-Phh$V1+bj-Uht3tz$3XF+V%~=pJlb=^owfIak`Ll!f6+^Jj4#?fs9xgo87WZM@~3yH_S`*3XZR_;qxB*1wzee#hss zFX*$eD>*Ua%R1FHtuHn%T<9yVAF;ttmPw(~ipw(jOi5*+VZ7b$wI`?4KYj!nbh~eE zwe9Jq>iw^!ukBa53+ju#f4T6Z!(E0Iy?5?BmAs~soCeySbN+x!Wu^M>i-j?bRt^id z&H(L6O76B|U=Yx6i`eV&Y@0UdbcN}bYmEcUkL2yRlp19zD1KaY75Jo}l4bL5?~lF9 zz%avnp;dw$xcC9B8-Mliui5oY9*~n@QH}-z)x=(^TvvHLbXW5=9DBHNVZhx0?{=-` zr{9k8m9hyX-AXZAEzO|NxW|9*Kl{pKGm1*HHoboHtu=0`RpNBBt^a^)zkQ!`XX~d=v%P-Sc;01FxM{_032o5s{%)>kCVctwzXuhir@ync{e8Xv zXNAH!=11FNWEsBOR#!CbWn!paW?-FZsqj9-hAkpd47~Q|(9@%nteE^dK3%uHy1tKr z;Yhb)*nZH-PPJG0?+UMyPMQv0ORm3`e~wKlLy6k_+I^stZ4U&37R4NYB()@NU8-QW zV4=;*%3~YfARQhA8e*_2(eOF@n(0nq=}%$R!=1-gUcGiB@cQ?+yf8=yk8 zDkJDPjs>6eSKF=zomPoh`UBeAa1pec_ej5D*!~sJuCt5x#Z}M~v7XJYKK+XAg^z4c z)5m-}p;gul3>7O^PJFm7$5=h%@eZd_h6fC|$B_CaB}VY{EsT=oyu$0D3L2VEO#&~0 znRa-xLG{1m+iJ}~EAX`IKIcT|ofUtxbE#@4bmZgG;RM^Tj<_3&hg38F?;rke z9AbVYD0$yaqZsDRTOwr{7_{Eo-kuhJapQ?H5vkqNOt#*NQA>_4Vl5S8ICE-Qto^5} zyro)IUoI^Cn!eTK{z^W^fd8Q4q35OL?zJn^-)2wCkN7?7>B0SP?Vs#V4E+5JbT)Fw z=LSpZeGkD)e^&)xZrsIK&;m*)z1i~oS9!JCwSr?IyYDq(O3IY&rGMB`0wdi+|jrGr|r(KXzNS)1Ufiu zsnyff(hTmP?EHK+^Ax{KP_Nt~zu(H?;TP6FIR_+?ed_;#M-~|r>Odg?*`L{HrI0ss z>03~{@-t+dsQ2YTMdN>G-9g81Cj9g1uKhc88Z`OyY&HD+ zO7GJP`FK_z5A5ybZF|MGWZH7R2Dj+sli}u9E;UU%3R;}TVYlt==80BJ3|R+$PhMA4 z8Mtxj>(sNkWjULo;x1kJHA#Qwv=+t#H64)QqFKNG&#O$k+J3(BC-W;lhL@pQPrQ!J zh)ec)e{Z$EnQUv!e#5lW>if4J|NrFsp@11|b2vb&)#a=WW}RvjKG59@9WDxxMIJ6X z?=t!6(OlkFJTGzs*%=s2B$B=w&%Avv6Ed(Qu={ZG-DOKxfE%EobB!HTroRqXXJB|1 zzHR5$I5C+DP`ezoiF~p$^V7Cxex+=8L{~x1+xLFO0jhQ(hsgEz&b@t=*JJG_D+Vcj z9$V>E(pi~_rS9x&% zzk|n_Gi3^D?!IE!@%~|LJ98=X0|wB_sTI>rf2h9!?Kyu3*?t5X$^dUaI>5Wnih*Il zL4notZ=0u_-DCzT4?^urK*uJLcPCVD|EA=^>o-!i#%P({oEFoV7|Iaz^yaCI1$iFL>)%%Aon3wV z)~U9y-3&6DH_X_6OrrYgr=!dEym?fRQncy+m1mEhecOLiuH$mUbWldP{ouxupU~M$ z&@NjKmU!6(Mel;X-AQr_{Mfu(xzy#3UHw~7!6DrAr_{go6$e8DoAa8wyvW(h{Te_A zxHz2rFhLH~5(5{Bo$vpj2nQDhv5@;I7_x#Nx94uVu;^UF?wV4E7%k@Ar+eq>ho>LN zy(r9oPhzDqXldxX4_9~#u0QUtw*a_R!_aKxv^P4?5Yu zXLa}A7c&AE@C8&Hz0?$HetN2@5&beA%7qGGnKM4FdPT1nc5Q|%djGq8?<``e6rh<+2Z=)=AgY>3ToitQZ4pg z&-3RQ?*xUhJ3OCXcIE4bJwfilE0^>+C~cS_+A!Jf%GN_>W=~FWcb&cKyR)V;GC11v zE(^oDn|q$0bhtY~tp3B^_jf-{Q|(?K6Oa(B(BSf+$8dG{+|Qe?hU>=5gsLt7_5b~4 z_H70ixVR3R$Ao~E{+;Imonw7K5Ht+a4Vp+;sT@-G;ZDT&o!;G`Eg3+rJAzo7I1}=cWa&wqnlf)_VP}>xv*#&KIARK6=+d z_2QM5^?Wnb!yvN>(*i)}W!C&P4ZF**+!a(MtWod<1~cZ_?R=lwakc)# z6-LNW&dV+wxDpLMN2KBvLxxZIu}hm8g&8Iobce469ddU*oSh-dcln(6&}GrfSH8-y zoShv6zKlab&4&4Sps!yaJFFVeo6UWNcdJM*-;JQ)Gx}1 zSw3Yw`t04Zn0p zpypwQ;gM4klXt$I3z|+0|9io9-!8?nx4xj2lHRW!=7Y-ZtMY%3fb+b`-`^&3TK>ZH-XCdN&Bm90-)n8hx|$#PW?5X2O3_E|Jb~{ zw$%B~uK0@~ar-806!kb?mBVo0;>WxL63KBEIcFbm z`aH(QY~0k{7F5TmSS0&D*+<;Z<9DPh{=YPe)gu4li$; zd-RT4vQPc**!vt?BUcE6v!bO*norlYeum>4V?fJ=uQF;a7QPH!p4BRS8q~P)`*4+! zfkC$|LNfWxBeA?Sg*9he9p(ybZ=3qOl4rvqot9Uig|-Y6KXS&;Wnfs*dvN{Tx2vU} zIc~RN0Jni-)IgK*TLNSSrssf%u=fPW3bcRL+kJSI^n-PCt?lJkNl);aXT@OE|M$y7 zke6WtEeC4s4+^s~<7=k0$j4chc_vo%F(-$SMI z62U_02MTq6vc=zJusF1e`N6(pTl;^%Vw-w&EibGEyyu*D)ho6WtUq7Ru3L+4}sR>AqcxdNXt8xtf5M$wJZqXs@Q)((aQA=~o#qNURS# zV|-CA{%)XlzRl+#@QNsK&9_pSLFN9{^!R{xQ5CPI>St%_Z+|Ymb{9Ltr3dgqm5FKK zYM{t*<>KF=YuBchax+{xwdh#QO^IN;FZ)iLNhJT;|MSj+XWQ@ZzkEGRF%h%_)7;Eb zbOp2_EWV0)ik{8di=ZVlD{uGb^%z$3h3uZLpOWKx>gOv4hU3q4GXvBWESq-L7{6!h z1CP80upiMa&RP!YOf_0LwDiu?H2wHj{^u(;hRu&wGBY$zdidV1542`HYkBO?mEe;x zuP_$QnziNz+vR2F8g5_O)B#%a=F7|b6EtD?=yUs&S+mx?_cct{wF2LJp#d!=@-16RiIy3Ql^n(h} z;aT$*K1epsdyUios!R)sKd=TXmovL%*NT zj?SAI7Ji_x(Mo~u^5tdLlLNyKxL(at4KP>OYE#N!@{Rv3_f_7lTb6*%epe8TIK!22 z?OyG-)_bR|#lFwEx^IK^bkH*3jgcG-M`}tLdLqAU{V$zc`FMR?=&9%OFHU^E#i3xj z$2dy*`r5Zq``&Gj|G4R2y4x}H_;2U$zYTXk7z~&?d2Inu4p5a@aC`UpeHV6rNlpLm?(YKb3T*G+zxnbiX$A2o>#MautDn9|BpvNF zO?$SQ88jOX+6YnzYUQuVYj9JWpZtND;Xo=++Cd+1NAJRyOTD=V^f|6D7G_3ffwKJf zBhBV)uiB!jzb-AG!sEQAfako;=d}TM8@^PQ{}c|p%P=?C>vV0Yvu>(UBxu0`tNiV6 zH$7w-57-`;k6~pfIQltxs_iSbKkeH4|IUrx7GLFgef8~IRabNw6dujJcx%TwiOugW zlurLz`+4WVv-$h;m#^<@5(W)HRV%G(S!T!Q%KB`TH?)xFj+O%TzCkMixMyt+yUSo1 zFU#;?2WTzlsX1v{21mNi?wb(_x}4%&n<#ijCWIYylwU^3{2HqObA}mPCs{Fc3a?^* z)(ARK1Aej{XxsA4HaFN(8E|uU^`7MbBq6{iWAp;vfT<`MN6<_Vw|8JV_xG>?WE`!3g>XVoH?tQQoXXTbI zo_)*A{>E~?rehy?L7NxunA=&(u99YO2Mr9bFMRvBahK!MfYdI~IVdYY=b+?VTb7i^ z?9agPwOKK&{rK8UO;DTt%Uq$WL0_(Lf=@kJ2s-uTdtQj$ZCR|-14 zig`g{!Vk;jS3kafH`m*XE5X2|bWbA-!-Smf@U>q-%dkNQg58R*1f4p0xdwEMsQU3WhPj}=z(?n}bkGKc zyj3B5Y_Hgsgl)HCkUD$REdFkQx9`t1P-6wuVo>p#UwL_V)vZrQwY^)H$(8ajJb3a( z(o#k;S*eh%?~#7lTdw$6_nJ<2M|L!$>ecQ}lLaSLo z8az5t*>^avVdCuF&`lOoiXbPVfTojYW^CHCW3A&{#<>RdcY_yNF)#Kq!ZFuOx?(W-s+%@H>?od8vi2aj*BH4AcQ=s5p=UUlL5*6#B=Hf_Ff zC%H#6^@<}ygQeu085~!5EwFw(EyD7e6loZ`ZH3%YOhV7k zWAAV8_vxj9UB7^jA)tDH;kVX%Ke_#PzZ8}2uI71P&9Gpd4R{fX#lGnBx9@g; zNKJ|JME`D>tmn{oK6IjNKGeFoVY-j>obym$E|!V?JDE z)OxO`3toGrRaa2Hq_5-l^YyVQS9vFRpN+~MU;PTd^vg&p_GN*Nk%{rocf-qqhr-(|~JT#ppD ztMofQ>1x~gPYes*@r19=@$+ghuYEkbHhSLO?SXe08T3FEli@KNgOa~X`FUdNGb86T z|9rlZ`N6hVS4u$D(Z#iV;3J%;me0Na43v`{WEXtsTFSaQuVK!5K8Avt{x|EUUE%fU zpJV0Fb9NuN^%(u{+Um8?9Y~{|x9p#nVc@CdZkCT#7D_W5_-t+viu5po7}_Z;XLaR!6^c~<|g zzqzz*+w5s3Tfc63(ydy`&#+*d+1p=%EAkG!`E#u=;cU8kTM}govB_|m zP08P-e~-;D&7CdJv($9P=7-XHTC1fW?0fKYVgRV^9n5~9GVt-OH`I(8Jb679#+kM^r6^BFS z!`JIU^I*ESir>%jkQGEe8yY+~4V}~jHN>=pzwXscgN#BH+y~`-P<1F@|8ZIQ*KN;d zugljrnP&V-g26#&U-5?q!(%@l@yuzkullkv^q9ou(+b)QGkWEcea>I_I{lku@-^c# zS{Fer@9>NhZ$iu&vXsrsr}FGK1}&UgU}9sIDw)(O+472kH9zp&DrtqMpxtnJp5Fyl zKijk1ui>^)cND1g#n)Rl^P3uI6cRE^$Fl0G!(4_3Eui_HIUceG;?U6tebBN+-{pHi zN40 z|04F=rtmLj&p(-Og+#wX+|-jN1MW5me|PV<+qUX^&*fgjW#My}7(6d#_q>$d_3u)z zTJp8+Uu`8is|y}koRBi!^<|40sMiJBpUu$-I$Gt~A<)`x&>1MLHK4;}9JB)18D`x4 zq{{QirDoGBhN)+A-|K+V%&YcyAFuLm%+CLGg%f;F0qD%=AE}>qZuwWs-mrz^3S+UM z0pZE0rouBJA>(vw$2EVpqi(quHN;RJ8aJOOd<_Fo|*BKrAveKGC zA)= zi}B^>cc0X~+Rm>HUTtJ31zOv&^u{Yl5ySA{$e*L&a_rMq>vL~wZZd=JYUO8ec)k0g zqg}Vp2G;o9 zpj~z>kOKye9VrLRNHO?^J8l= zUsoGUx%Oa2TmFs}DSbTh%zZ1@UI3k_4w^oKZ6duCb;jriBWNWG*YYy6l9kd6rtW{Y z64ath^S3j9x%b=Cm$JGo6{%Mljh3pd_G@??)$MuzLfxTd^;V!-C?0bD-hoxj0{dTX zEHwUkW%EAJQjN!;amL&Gc3=PfiVakdgO+t%pI3eT$E&s-KB3w=A_sh&N*%yQm6_Ol zDM{(+JR<3#4w`olP&HcC$Npo_NANO@L^b*Q-);unWq5GoUg@{&y|?xLp5;9@L;d{Q znwwUK|B5g?aOLy$nc>d9IN)yM&S+3*Y_r*&zjzljgV3tu5}T7(e7|({5ueO#(5zwd zZoj4ELtyqxq!@B=5Xt~y{%<#HZYx2O`6Xq24%7PL+XwD4O zxA67rV|~T8L~QxiWg+VpK3FZC_417CbI>VfAWLQL-e318R$odwGCbqNSF`6_uVfe+ z7S|b=WcZw#xB2?!Q0pdB_V{nt<~9powYL70c`u5AL49dT&rO3X)i1vun-Q8@%g=U8 zW)H|~-)*;Ov81r%ARm@4|F^K{EpxbUh+dm(f+m=`$d)x2YqfpRYrr>e2 zsIMPD*ArcKDs`B%>8BWUg_2JNTi;?Wv$AEW6Qu7XgUac3JfQR)b!pof(1Jn-S%wGV zf6tz}|Mg$m)A#o>dnz}DBpX{Ah3Y6MSDoofM#mLh zh6xF;+p6^M8eXaH3~fIkaX3Ki%%S=9znAaZ#aQ4F3GEKo?@3w+J`835e(MnPBX1wS zf3pQN>IZ5ye!k2c4D;qonWWN!C2RZ|9`p6HzhVLHUj-dLdk56CUM;=A@aG%ug}WFJ zaBc*h!vJb&gqWXUY>osi*#zCt3BHpFw5fGcek7=2w@+OTw2Kom_i118=QO;8J~m^L z1+!9auPUfhHPh!BsG|Y8i*WaDi8xk<8O_g+ACvHkT5h$!EPunZi^szx?rmm15EGGn zrf=ar@33y`0|8=Z9(1k{0(FNAEI8AY1K3yS z1?uqYdas4dZ#&4u)xMMkO$~&slrd3LwPy#9={&E0zvBJFO5dNL>o{)P?R&d<-!4Xv z)w{#~tt%HlyqbZbcuVGW{@POJtmXf2);d1F{x0_8;fIOwcbOPCw_@i`g1<>kEbQIl@HU&qYD@BIGrx%QO+ zgU60dkaoqXM|~!s8QS}jZ(HBKVmlxR?dL3gRs*_rW6u}RHp)5s6rQh?RuEmm%y4E_ zD7!-JCCejStOsYzTo1ZrG!s<+ey%BP;E=Wr&Up2c`Ph|@Y(fkThH3}*KNnvg^;(i` z^MfCt?X}lX7b$?&D}ZhfnbXw)UqM``lKe*^uNcAdT`{!qWEsB8 zt_fi-WnN%bR6HFthYBiWZ+3HmihS-Xj9lkkCa0D%F9B8HHzU8_6Dwt!q&%a)dr4kL z=(Fwd*`UP;0kR4Q7Qj#Pe>6RI(}i$z28+Z!(+_suTFEzq*&k9(Iph|lECAIiPNfb# zUXg7a32C6cU7$*(x1U$-=Rbjy&sH)on3#Ry`qz{1xTC}>U$I%NUsun@FukVo>F?_O zdp`ZO?m4-}Sf-DWVTO9MuyErp#*a~3lhf}r|Nb6tU|=Y?Dw;vzp&8HGT~E#}44ppZ zilXL0M)MgL)8%i8uaah9j{r?9Z+)$0hjbO(jdhnTEmWVffr{7Xvg`Fhy}X_bJH1J} z6vNUIyFqj8i(a+ApT74UKX?!Y+6)ec9Kdu%Yc=zNkB1hfgNEjM{dx)>Fo61n4OQQtPJORm zzpv&lU-Fr`Z3kyEG*oU|4?1Z~V1KA}8C!bo-~X{6{@ke8zl)VYXx(**&j&87^0p~- zmjVsK<(^+?__=>KAKNRw1B{@W{lRMHkaMw7p!Pvr#Gk*=O(fF}ubpu3I-5e~zn=>Y zSLZn-wR|p|_=R_))#Agez{}4R(5|QNebdx;B`1UJ6+Dj~NDu?fx-#&AiiD^Id>!7- z6Q4hv5eVwew?Vt}Q+N))D&(;)ud@p=SE#)g`>$nrUcWf*+`q5$_=Q~6Wtfn1O=5F$ z##Pm@JAv;(qpjIz%~?P>RK~CACdXAqt^K?9tn`L#Dr^nc(Tyl&e&STh&~S6-yX#U{ zIX(JpA)YmAo6QFD!V%s2*H>YKR-o-;uih*q>^% z)1enOfksX)f4FdYqUX22ijz)*2CDW%8J>5kt|@iro!YhY*d!~ayx%{zoo9Q+wm`17 z^6BsVov+qhfA>Pem)FU+y<*GQ`+K3gncar^|E$cy!V5tWyC$WlG9lxt zs_mn`T_!b$K_^Y!`F`aB=mImDhoB*=V_W-MU$IS1at4=1psV9QzB1V?6{J`HHyBhS zzIpTOrON)zhS3jeVpMva*MK&)nClBa5;_KI4{j*>96QmSJwjW8nB1SGAwuf{Vq-(bQ*K(`u!k_wiKM-o2^vp5`(k}5flZd%$|VG zLI6!DAG`7;1T98Be z%Yr-XkRjlJ4`NT(>|zXRv|>2$M)cFnN#JJEao0;0M^1q}47y0pd9hEx5g*7s@D9me z-v9GolE+Zs1UmTGZvmf0B(_fbLMsKos~4Lg_c^uh1g#e^g`E4)?Q9a1_5Z>?(DZ4$ z7FdP&3g(8YkD&aENXz23rTh#EvRacTFWklG*SYT3_V)E$Z2YmJzCJFmBp5t4SWBju zz6YI>bugSA+<8_3Euq(%yK_STWJ{le;{6F9ukcRj0yQ7r?=hD0dc~&VW+E@{c~xNb z8Q*;HxDKd{x`NS1_wDbMo_vYj!=VXuf`)n!`A1%+?DOhqS%&X>zs>_C^#hDy zvJEaPUY|GbfBsK;dNg?M=P&sD`@8EiwDjX=1gAS_g9ak@y3e1r{XO_ZEFzRC;X2q+Og0LN7qo zPRZ80KhK)JnqUQ*hr2zwIeDVz#b1ICEF#j|Z*p8=1YeILzJggKPiK4eE4CB7tC$(i z#9g2HQcAOBve>!nt(!iVE^Gl6s^FW-51WD}TEMrKg4VaB+=^x{Wo{4-3u0F&R4P4i za@MMz0xua*_l9BX%8!E3E68G2Ee72MY@r{*e&k`e-rmE(<_CP?_mp3H4qfo@?|Ywq zJG7?`8odc&XYkxw`Sf?VbaI)5*;xjLmTk8C^#jZgA6mC{LYzdRziOLB{-6cc1A5BT>+hwrfX21OS22tDz0FDBPy#h0A~!Fc z*0YQ8q`AsKPXr2%RRprd;kmk5KDdEXoI#-^Bk7Qhl|<_+ zz8&v_cbB#Q|9P8#?Th-d`>QgNl!Cr9I56Eksj%7-bnr=jPLWoCIYS@lG`2k}3g0GA zv~qfS=rZ_RZP2B2260bq&3%^eF&J3CzIQt+$Xvnj(9c}~yV@dpeIiPk?wI|(vk)}r ziP|p@c^8_#G;e|8gp|4RF>hCbZ$C@m1C`!lE0`I!US9VnB=Rl;Xc?QuQz>hkQsz0+ zr==@^{0v*p8p`glc;}60tEID6E?#*V)Q{O`#o#e(-&FH2e$tx{ZF%)TdU{oCv3pP2_AEVL`-W>E1vcE|EdG|wh0Pf+u)_W8|+A$)Tf;&PrmjsyaN9H(}S|IR!Oap&dT%zos17!2+1%(q*gm$Lo)fD$+0gP-V94TQX=BJ zC1oV!zhC9`n0M*=yY3#t)&I^*$M63+<=8Q6&`S0ro(vOI%K83YQ%$@bUw=8g{m=h5 zf2-%jmezj%TmNm|P2`}oXBJpJ<1%JboJCh9Ua9L7kJo3*OVJ?+|D#@Lc`v5 z@u3Nme(SL;%U*&_2|u5W~X5vEI);* z(Td@n^zY02`>*hJN=tBp#%+6i{d{IR$TIZ)nG-p27vljz&Z~?bb0=9PtUC66ufz)J z2R42k&d+-J-=!KV@u?fzt3RK!$tb{FK{TnY zPTn4w2X#DCuY9@Bn6T`N-d-IW1FJoEB@$Q_Ecd2u^OI%#{#IJH^D3{$`pZ^NHL6kMa`!*H}~yg ze3!lFQ)k5830q#Dd(U%)cS847Mh3O~l%B-jpC-1Tw24*>D}%$>eL`ca)$8vCdV0z-thg#_%~Z-fCoG6vMI(Uy zK<({)<&{hFJUkZgHO!X#b@O>rDYKDw0J}qSMUF<0c}TF`bbinj?GiqQnCrX0Y}%T( zZRgShoYxqHioaU#|7;&NYvyvk#@}uHa%avs3a*&S?+ z$}%QQRe$F(IY5?Sd#*M(dIfXRj;9=X#W3}zZfWB#u;X2vN*SIcl`=G(oNaFXex>vT zzMo60y^Oy_8h>>>ciZ|%uPNVp`)Yor*ZS7lA>hbqa9F_CaPGwS|E_Zx9-IK3v+g%b z{2Ci*{dX8U10Tl~#)7Cdd>&q>4I9_zHGEbobr8B&@$5NsDf69@g#VY*B!5;jY_C!H z^V#7pL+`|mioaie(^V~XH#HUQ+P91GT=x~mhSg>|d(Yh7@MY84v}=p=7$-<>oH_UF zx%YqiZ^!?-?p>nk(f$9q_j-ei1a)#8)k>IVvQeKYT!u~XeC{Okv)lW0@&_x_Pr9E|a@3@ayD zF&q%&yu#=)*F)BTw-K}s?C18^Nu|sSOzMC7&MS>+(945c30-AHRODU$>@@A!bYB%hZK4bItwMu}zp` zXI%Xn6#ZWMztbC+u&n%eV&C4hmvz_q*zbP1vF#G)|LV`tzvtEFrB;?~S@VvO;dtv` zdE3Wkr7m17Adl}|s8?Klyy3dQ3g!oUJY*MKi8;agip?Uw-O3^H;F_xVy9}1=mN$yb zygLn)xmz>T>~*Z2*RZ)emom)>4`NrzO?uBDyfDyn37)j0Xf?{F!VD zYSM_TW?r`F>Du&P#}dS3;yh&;EEEFR52OmKmO4&)C3UM7RCP>kW!Y!NkS8Ulb^H}u z%Cz--4aXWE{)@O9;Cr?;E&eXU^P{gA4!BBBi`#bXjG6TL|BNb&bJE2B+^db>|KR(( z-&H@&|9^0QUU$K~j&EU;?PBHB*$;zfG~R#l@8;pX|CXISUSI#c`*n|fIzxd)_AmP? zx9L`g3PEMlZDSMAwb)x5UyHSaE@oZB7hv^q1!!5|bJtf4t?8#8FWkk*V365ZUov+W z<4b|_Puf$HIzr#+pZ~r#0(3*lMk|HPoqf+7?lOQh2*%4YOl%fTEoEv@7FxkP!EX1y zPd7d88i<}fC<#l%w|*Sx1~tLEuP}O^GIn8@I`s-8XJUkH+|@?r^J$=!295K*C9ht) zveET!fG_V?UYU6mbI1CO6h>l zr=HvXn7q~8cHi5z7w^^Xt#&_t#g^g0D&D{Hsj@c{Kg{1H&ez7JHgPi6k} zZ*unenZm22CvZ))a!`oav%v8#!`=v4hJ>Ph)y~V8=Q(7Zc`@si56{L;%fGR`V%d@Z z#(%%yYH1;J3!xRl5B8kNeWDq+|B$iViL|h~cY)x7J@Fu8U&s=^8EpZw49`>F-ID#` z|EaY53THu7TAkmyzjs3y?qXaiu$o!u5ojCG!-uw@RDU|0-61)n!~j&hsY zY`NQF?f0t-o{DdOZ&COBLc#i7>-w?U$`a~wz7VDS(_Ztx-gC5M8l0UdKK4eFvE%s%yb z56{#iuNYb<_hoW`#*|K0|GzDLqr2l|7pUwrJhG~O#%#6_p_R-mOr;EW%uD{>pK^s4 zRMR^>ehf+ZtC%NPSzlocE-k1q2rxfT2|6j;VFh2qWu;PwAg;B?KON$nI^_x@C+8K$ zg3JH@#ZN!GM(3OZTdl&M&jEKCdjBol6qy^}U)B57cb*kf-tK?@&bz*1b9lRM>Gaau z3mL=aZDVoh?LM3Hboaa8zdpX-_5OA3tkGRQgAovyu_A%E;Y4He`ON>e*mp_1C_6=|5yBSxXZBjP}lNPuh#Au5#M?yoSq3r4Ez$`uJEt`AeI-xRR|e{OXM>Gf!R?c*qhj%h3DRxjMPj z+4QY6X!Fy9JrS}D8h5vT*~FW+&FwDZg0!h;a-L>>ul@Vua$ilw)W0w8@V6Puw%iJy zf7<;O+XHiuKmR-4_C`hMjA zD2491>$DuR3uKF@4T)O=KqH)#jcfaZ)Wgjtsn(M{?|6TOB z3$9=lM6-VVefE&&ZqX*tRR>b*Ym|b_RdP>y9xb@|W|q8X_5M<6U zV@rT+!*lvW877#VKa&^iZgD7_{Xp*R?|jpHeZMzIzJ6n1 zsao1_iupF16X>{vmCPb~{I@~v4S|)+3_j;t-)DhVwe@B!v)}NoJwo>Ov(>^6b|g73 z@$-nfE5A=0(&=buSkKo0s?$xl88y!GfnO-$4 z>EV6H2`UQqyse%-{i@*AZ^w-7-%B5U^--&>?c0repM+IQ**86BemKAS*!iVrezmv1 z>%78y)dYMtIyl*@yj-_*I(yo;2_N;i5Ae*e*m7{!^)u(J-tJp3TYsxIe)r!kzxRdB zJGh=B?Zf7P#ruB$Ip=YgA*ASX^6f_-s`=ObdGt;8xV@>tj&(LxQDNqc4o$m$+gG`* z=nJ^@|KnwwWO)WH2`PAscZt&yzJSc!Gsa(J!R3AB+|oChj13|`?_L+(vFu>VQRBaj zUyc7Z@+T<){$C?vVXq_5T%q3o=)|n1hP| z6Hucv_j&krP@%1R|H7Nq(ht_j-ruPfWUit*ef{%RVNk$ve!R+95F8tu465xwY2wYR z`fWL;HJg4{->-4J5OIIWxrWE<_Wv*5xQo%_lsEGlGwH+Hj6U)6XV$*{@_XO4=%?>F zSO59xv9osZ;%}e#KJ~cE=yT1tKero{G@^`m|4n~yxp?>Hg&THl4)}01l3_xNoU!&w z3}HV|`Sj89?bEIbYIR$2gNpy^2-yV&MyE{88J3*<@B-B6w|X-D zU1!=KGhwqLpTGQG`?e{If5WefJLSKu{`qqSZ~vF~rl%iBMPF(8wDSJn ze{YZ1r+@xfd){Vy(e)D^p0X?qp<>_azx3#pwgfETYxuqI=Z|?2cNtdj#%#Y44!Q@d zv>~W=-fOOqkRW!AEoM(a-OzwAc7_>qt|{4XH`EL?wcD~!O8%9=`5SM#xzx7p6<96J zA_nrkhpd9o3T6dyP`8Ndx{*cF?stE3mgLRovedR01uaDIkY!k5Dp%SBE&3M~{dAZM zYQZmiB}8D;V$o|5UJk=GT8WU;Fdy7C#psxMub1cN$lIiE%MV zmd=*lweO4)s4PStx)4~&9HM8n)b@qOwUzLpiwzfp-4AfC*~@(CVEye*R&Z6Y>f=Jw zzievXr$1+Z#kM2=PdEP*$jHT-osO}L+usJTcd)!-IB^tIbP9o*IjW@xOn!j+xT~+f zJFs6`{?6_l>uxMO*Rb2@^P!S+n%d1ZwSjXPzq`I_XaQx5l`AvDJfSgOk$B&D~=bv+#uSZEOOhsdG)y+@3U(!3B3z8;H-9cPby_L2+sTUblWB0 z{ddBCZN5H#$Ge`Jn|Ga`ad+pTh{=o#w*B}kZ@YN++jZ~1uW|;r&9;?S+{vr>@N&{F z<^qQWd=6SEX?yQ#*FwfK&S{&+{d8H==W(m_c`4f~HiiRFzQ){owOV?DRA}V&(96zi zdZe>M#8xt^%#yBw_Vm`?*sQdHvy_!#!K8Eck-`$Q848{#l^!tB0nIq7mNF~|3xC6L zg|{HeQ+C1>r-`m6D{^i#hr7IL1AG2uy!^i!SQYT+(aZUu#_g%+;6_*X6-EbB!vkCg zRHnSWV0=n9?OOS>+Ing26SDeXP$qi{j3vga#WN0`UT~Y#? z3^et+`r|^Be9~4AS#Sznay7mzY(<`f){$2XplY|6Tc5wCPk`eJBSVAd!=nt#l!DlOoEPvlTs~#J zf0tgEJA>Ef>Gz*VO0yP9Snn(LU6bc=>P6#RZ!X$R^`5I;y{oFNa7vs#Q ztC<%R7CcG-wP(Bi{(7v)Yxw-=_51%Zk+O^-%*<;T_Bf^JOUHbD_xs=U(RSV%f8x-48+R9R?z-43`u`*cD1ofeXDp zaH029QaYia0^G>~1&r6L2A8L=Kv`z`)YhG#k)Ktov%9YFo>&tg%g`J9*BaE;73Dq) z3g7Olj1HzXsV|?-o0)4e?>=*6*rxk@YqTbEL}v1`n&2x*24yfqv$u0DR)GPm><&kn^fc7_!vtXJ8-U#&cWD{!mbjKzLI&FVgNh1 zqZc48Utzc=`&~%-f!K*w3ZAXczzM1Q3L|Ia8oq|vW$%A&_nFtmp{^6e?yy)dKKwGX ziu5b#A9K6Cwyj`pm|6Dx(&@dNo6lNa6K9ANy1g)6EBcI1)%V(XUCrb)a835Dx6kbr zo5RW9^Z#3$ZC-u$&8vI&ZI}Mua&zwK*`I!{>vKArx1S*(IxM=3ulA9ps+QH`)%!a@ z1G+V!0o~2-%huVZ`>n`p_${@*X3>&70S>YA`2pq!WH(wd9C-LO=9W~2u4O6PrG;79 z(%Ij2PyP1$bd|H<{*C!{%36UdexAXm74<|&t1dEuqt75 z;d#a@yC&_;$+$Y{_dY4@h{@+9ju99Y8 zn7k=QwjreJ3ghJi31T5atC<?ID^ST+02h$n*XPdHU9G$f)U?jrXvGjPd;cFbQ0h1eZvTD-S=fD*5#0R0eB#4B zQ2Y1ORmKY$nK{}krB{K9yoA-(IWF(__0PkKqd2y688O?UNU5@{nDyrT#~P!SbzskmSf(Z^m>_i(-Rn0GEsz5Zgt;)4GB7My1R6sN z@{~0QEe@;G3NVKjhnn`XCKaDSr-`rO^9a&A?pd%xLz}zU@+a?l)ybgaCKp;UNIhmh zt^^$c*=An4!uY|q2w8?RE!NZH@BFI6o&VUMpMNVge@4W|UDu{L++kJN9X2C!zSW{GP*w3?t`3mV(EA_&UKlEJDk{<4{S6_ecA@kWc*1Ti*@cvZUi=W4) zP5)Q@=lA!&-#w;J&e~_i@b3531E7(RC3k@q1E|rq;^p_*?ZzdaPlD!qKvQ_2T3uCL^swvZ z>>?gkhAT^o@7+2OTrHgi$S~p?@RMjuQ(b(BiF8=qOdybN7}PaV+Mxy zi$B$~YaUC<2M0r2LZ6jDN1(}VdRzb+-u$z)oCP$K0P{U;77skG4V}e{-KPgl9y9tt z-Z$Rddn}5{VQEUc-`4vdFa4L9TYGqO6Cb(Ph-pL%!1r~n42R5 zJlF6s$UIoh{9sFj?1U)`#piR(wyJlZ%eZ~&cH08iNZG(#_4z+p&!4f`%vs18V{EeJ zxK8u?)(1TfvJFpqdw6f|&$%BIR2~u>ybv@Hy2nG7!RK=BvG;`voT=7dtdqNCtLBO8 z?tOpHWBO#tMo^r;`)sXT${euzn*FboJ^wDM=Wn0Rzr~0xigCrNr^f`eQ$m7cK{=rB z!&OF))(F`Jmu^i+zaXvEd4-Ydv(@Vxmzfw|J~S08YP4cnDe(0C&ER#<#IHOPSp8So zd(BqISjOp7*_BJ3E`3_A^WiFQ!Tk$gXU1@dtzu?i5Y-K5SD5Pcsv#597`}aO{km>Y z+X0k?wm!DL?((W_iO8(}G(ldFRgh7>BL_En+-=C&WwA#wz}z7jI%NkM#sCfRSH0VB z8fMNA{PpS5@RHe)+bx(^xTgModtlXxGmDDf?KZ#mH05&hX}c#gXR4oTcsx%|X2bmV zy6&&|6uAFgc390?y!)8CLgV#;X&+>0ANWgo4t#9 z1!HP*!qnBEF#Z1eAfxf-h&hZY=d{_QO3zxW&AA#7ac{=?@=}qk;?wL6E~PUg*Y8MN z#`=n3$NSm+?>nzTnzhh@T8*pEcdm1ARV{6B$_~~GFlS&;d;aDquQzBF!m9T>*IqT3 z0%hp#tBjr2278V~NnI5!h+e}d02+OAUbi-N{Vv7>t6v4NE38%XdeyXY*5*&3Rg0i5 zLqpW#Ky}cxu5J*!%F72g5@xK|Uj;6hCrmi{iebmg1C8m%l~PJ`1XeIFxOnSI;ALi& z{=C`Jpq6rkEQ8O{>C@vL&b;Yn{CSJ2gO+PqhVc2rWf=*fOL`6_w!UK6k$?V#hv!{} zl)K){YpdQ~I3W4negFS;>oztEpMGv`-WKP4aPl!mkJV4Zs-4$ZoRAXDt$B0Q1GGH@ zX~v3O_NWzTz1(VMmOa7ZW>v2^7!EvwDcpO%>ylT(_ts1y}?_uHZXOF9uO4%QPNAypesoEX>E5+hA={f?VI9b_9rG@hSd`ET>2S<*?V`Z63je%-s6^rTO`;QscE zEq*S;^Ql)DJ+;5B0Z(yt?YhF~v2>DEf)$_Ki}*SDnZfA?a?!^#`2Od_-(~ooTm7JG z(k?~Cg;orCw*>Et!+)vZH?n?=`W=khH{ zWQchV%J_+(j33l~W`Tn&!}ea;IiL=WvP4Gj$&M?GTFcMnLnjEKqZ>bwvb$%E=Ud*5 zT2I7R3P0HKtj%NYge`~C?IoZyy$8bC85rWCpU+?OGRRzE>$Vll%are55(6b-4_Ss4 zvNEzMS@uY+=;B)x&tNq)o zt3Te~U*>cX6gv~G7%YV1qpDi%6SpZY=VQDhczdDZ$LKR_zTESz7uHTTcnm58%Fp+y zD}(0DB0oN^?|yT^_Qu<^XMbP3DKG7nofBcVf2ZLWE>`~;YzKT#uXW>VdG-HC=DwMg zk9aKfs_GQNK&9UmMvqnx*#)0Y6d(5Xvs)GjX~ngEpMUAh8a4)x&Ug3q^#aWmOoeV1 zM^`(q*^{)uui>*%x!08=>;5{vTM<^ub|*}3*S~w4teg}A*cll3vUgfBtPBle_X!4d z=|N*1pk)_R()R!5XJ(6dXmAQV*wN>4>W9bwN4wh0KsD`Z=uAgVZ0(Xf2eVk2djhMZ z7X-$KYpj%B^>R_Lz0fM@2YZUn{{;;<9}v8ikW=HjZR*)I=Ov;-Kg-2@TNnVEnB27f z8~bM_(=~t2{r`M^Z`!r&v~T|D`*d?oJfA-Q#x0q1c^WLI3>eOFTxB!{H)eTDcb<7G z%Nz&JyN@0%2N|w~ZMfs)^EKXg8?I=mepKCRex$3HYlRMIqH99>D_u}srUY8h)NmM7 z7S1iZTUqRR7u=9NWo&l(!3WT!W7wSU)1WgQDo=|lLBlDjsfl@@rAo(+wJDV{8-d$6 z|1aE&xEtWB+nWn+>R(|zF!9HwOWM~Wa&sTCs;xdBCl&Q|pYL~))ozPr0gS ztPsL}pf>$nKB$9-bN$A*zV_lHeCX?^mu=4BPpA?>%#~ z-;0_$+v{alOHZ2iI)e{3NO*;@;P{Qj{(6Dt3_sSMvyZ%-8gn~2>(>>=%OapvGPfHQc&TuW~*tXO6pi;={c)JVnjbHIP}qh0FXC*Pg##SRthK@TO?cV{h;E zAI`3EzssnivTZtB_}=`>wzZdpG(P@e5w$fokytIwaAwcfejCa4^-oU58NW6){(a@7 zdW(EqNsfh0UBS=Sw<41HQhYLA#>c0p9V_+R$Pz^?nV%kG=mHxFk;i zRNBUcnSTPEnQ$OGY9XIP*3w_Dw|@NFn;4tjZpEC}4V~~ZxPM{IxrW_YRT&3PSE}zb zhpYgDEYJIL#@N2&D(?v$KHn27wyCWLjrCnS_RRsZi01)EjsahYW3Kkho7>N_6?A{il?ZXRghfS^nMn{-v+go2{prJo}uO?tF0i zF~$|!RKujf?bkcs*6Z`k__#*MAbEkQntB-f3ef$^pjceP7x3edyxdc8!?*a-o?lO2 zu`O|%az*^=HG$Q(%nQ#ZF-!BUUc%=Qb@!6_&tr?ML&R1yPYQ#Ma;#tX`IPBA--zkE zn8C$>du%rQ@*@i;MaVL&cq(ndE72~xl6lglBA*AKo$0y!F@h_l!SkH+7A~~iwtWt0 zZW}Z}&|6>g;+@Cc0N=yO&W_2olOch4Af+brrD*mU9g%bfR1 z&*k3V7hf&Spt5eyBlrK;veWjarOmhc$@0IMyYFR|?iKya6VIL32fWvO%y4FhgRFrw zs0=NO$#(X<3trFwSz9396sY;# zcAVc0v?&MFsnD*g%3hKekh$hOJ7_7w#zcNSNy+&UYw{QvLcVQGJ-SZ#*|o}7d`sLk zSL(0Yx}9U66+_=`;|hOcQM3-`p zDTptLz9|vYsw@ub=7UB!j+x3fgh%{8F5L||M6wRTWx!dmDbA+f`-eY%X!oC-b;M&V!p2Xt@rr?P+6~W^?7AlTbEL4LzDe( zy8!b8k&Rc6?bBVLHfQgS#LiueD+NIvCBIjvv)- zJlwEplfiY+Arn7i{vL)cYpIO|6^wVyx0t`l$O0V$yU~ha#S?Gu^&Dr{c+X+<37s!n zC4Q~^-?H7OZ;32{jQsZZy1rs#cvtW-ivoJ<(+=zHV@SPGC0Cj;5OZgVPzP! zfdFnZ?}-5|aRQZz+7(}q-kfK}1X=|wbg033&$LNa3^TVz$TIYbf3p={jWPhz%=?Pr z0f%c^+4h-VjdpNdK2po2^-5m0_bM+#(DFS`cH6((?0neltV9;;64zVnc`MC3xym#(eH{xV-$nA6VYc;_Sg?00=jR9C2ivgYrr4;<3W z*D=j7{9n1^>U-lWTm=CO_-3eq##lkCl*?Y+lY)$IxV&PR%05qq<9@BvW>9H*g^_Ez zekOQE=hVILyLn?@u`O}`H^+9V%Kr6bZ4pcVJ8G@c4`NqY`;Py#hj;|U;UtK zlhvYIph9k5p?qif#{K`Vr=Gs>p4CDTuXAekHks*HWUpQc(O^pxhD;kVtbYos z^Lv^@9_%}D=AFUjefBp>$|GktNr4L0ee!Sbg$9{3tgw8l`u+d$g<<7$ezkq*m0j!Y zm!ZqnTBG+y7be1rAzj2m^SZMabk;?QmF&daL0GIS8Slst?xcPJyoyR7`8ddHiUq3G8<^f9<+Mn z=qomdoK7o-yxSk=W-FCC2dN!vtB?aNjCODWRX8Sgb}}oaC-{oDoBsd}jVT1I$nLnp zd-cmb^LWr0&%SxT^LwxI9!R{C_NT9Hch%W9@9b|}i54nf;AXqyjq}1?jPI(e3J%n5 zNe^H1jv?Ulsnzx0GUop+TQT+T+qeJ^v~YTHskjx zex=gm6G43dkP+E>Pqu>&u7u5VZrtVgbjPdClI-Wuc5lgm-iKm!ey)VF^^|PPPbrw z8G5hu`B~M{BRrr6Qk17GgT~qSyG|Oj2|fOxRO&EE>Xu|&f0t4zBwViCxN`DQ$%-GZ z7&6|xx-SXJ?0a8;mX?B+ImMlxJ}pjg251zhV(F%tcN5e0)^Av8er=foXuH83_-Kei z^S%8~(^ac)+CIIz|NFBCBI|W!B;?~SMa7H%(slK}%67%#{-vLG7ePgRb=xr|(9Y?C zyN^J#nHnpZr@Z=XW9$qa6af|VnKB2sEgsBY_kGu%X>+WYUtXO4Mf}=1fz{KR*84Tw zE^^=M_NwiOtVCRrZZGJ_urT%xP%2Qb|B_S6G@&&180U={yCzvB?0UB5&t^#WXK>H~ zt(^hQ@Ub6fI}Bdsu-$eIp9ja`S07h>`~F`m%v@o!Qz?VVt52n-e|LX>u`QVyv-dq^av$PtTMqybK9x+a4X9?_Ty|@BO!FY4fWdf2_OS zwD|DCkImj4LATre7$!ei%{+l?qm{$cMZve4 z`;z8@&P=|-$aHTdx3ukM&QkU}PggQC%-AaaSsOGmRP=Ao-M~xnQNoaMZqQ`lF}t6= zlXfWRLS3J#jx_5Zs`FY(6XMmu=RHv??lKH=TqG>@YCwne}!54Y~FIkA90YeqH-gzB2k;UA4vX zm5H9gcJfA7xMpnH!q?1og|XmvU+v*AAe6-17^@*zxYaKhK-;hanRUFrrj&wM$m<^-wueXmO6vW1n{`8^M3IMb3jww z^))NDwLgE_b9iz<;1WKDIOl#VhMD5hhgUBU2OYUP|J}{GGn-m? zzpUT8`~KHwdi$5|ND1@~zHu|)Lu#tSt{<-&G(rB2&R(boTGbJ;h|fU_R1b9ffeQYD zxFvj$fsez#-_0*CtJam--0Asy+9U7mV^?|j#CZRM*`QI|W;HdwW3Sj!F1tSD-S@Frb8^}H`n_t(#cukm;=6%yq+ z{Bt+Wj6M57YsKHsoA^OT*c`UCp4W4Qm%+gGsp$VdpP@az*?r%4Ka-a|m!+YT4{Gf% zycc|ok&pWdqx-7=kC#^-Gp-2v5c0oZNgjjDLr~J6Xyx#9;`6rYb837RLu~#vi`><$>*ZXrA#u{Z|!gewQXa6gR*A09DD%eKrCnXO=+;F)S1ot}2Q-0%Qb9w>9&SN{ENR_gPa zN)1xm>t28RG57o572iw$fB4HSR{Of~-0ZrIf7dMM<5^q1r(PjwJL9^S{~uqrEj=s< zN+0+CO>DNl!rPz>O03~}byeAsvI{Q-O#gh9x8UC4R}8JJbH9RCU4TMlT5L^K@Q1$1 zT>Ex0gB!lG+WU6IeOzjsmteBtS<^12yzVQEo!U=kR&{$RfrrLF&T`xLfAa;G$*zq& z(Tn*UUVUB3ye#|NDf`bo!H)_mHd-+VJl?_)BD9iu(v;IrLBrnDr@ESeh6%HBUY)sf zP_5t?XdSTBD{0Vh=~VXbEOCX?AaQj-`|sDA;U&`DD<d4JZtFuhWJ$-+T@L&@5ie4q)D zNmdL2(mTouK~uRduNV~HA6YC_18w=vyJ;-(atF$!Bd|37E&AE4(3qi-uT<8Gp*Yhu1fByPsYjIHadJwvyLfEtG%$ry1 zeD|srvVX{u*w)=OPg1JqDlfx?2|woE|5>ee52IV8gULhs#?%PYPmS$iFPxPlH1g-l) zwS}+RBP7kQ&1l)^U#A>o4%)k6@jkJ%0krvU_oumUWnZx=cw4QHxtseknuBrsmzB(E zAgRx%UNJbV@CJ>woH6dRT)qahhPX9Cb^>JKelM@fD>leNhYvTv3!R{YAF0pg@x1(S zJw0Af>N~fG+s!lYb|hSG+xm#_K>?^a_5H}de`oSySSRGJuK#s<-_>uY?Tn)$ zawa=3>f^3$N#W_q2gR2&dVajh=nfh=%LOfT*0p|rs_}5*3wbrrGB>2LkBSeMKi8Hr zUrPM)t~D|7Xs~K2`vg<*`S-5W9x^PQw~KjY;JNvmcQ5(%=?nkHTgC#n)})oP#*`(f z1gWd6&3ie!#`yCQ$%6Pbd>&C7(_L5OHQYWnzYa9NB6(Qz#*B4Qkv_X4WWjr$95Pz1 z7{J?jKqF)OkcL8*$$qTexQp>-abSh>ioAwnCvHsmdm6l{Zz?Nj$z&Ki!}<%0`5e@y zoXL60I@|2XBfbZwpkndoF)1gXLy!OdPAX+)Sh4oU^R*LYqh=R=y}NvG&Vo>8=CuKr zFO_}BU%}UK`VO5gv# z!0KH#=DZerrhx~-F^4_!R@WcqOe@=O#eAaWoOXEoF>fOu|H|ug&A+cyP6I7v19yWA z_PERgSRwsj*}{dkX_9d{oGU?f;lhiJ zpzhFnn}2ur8UA1p{c@*1+w(5NpJVa!Yh5$`#JQDDJ)3ivb+*|Zy>|?1$^q;OvitUa zp6PLyfk7|w!TcRo-6~@l5y8Q9<>{p*+9kMKqeZ{fl)b=Uy^TO+X_Podd zt#G=>SK0tt#qwFHv;pMN+sEctfi|a09s)(UUFiWHF3=ocC3Fjm2dMumu$p<2iQT69 zPUMpR$dQAfMIDdIOWb;U``uo(WmO&jm=0RitPhIu4NkHRv&3fJjO5wi)KxIQsjF^F z`t-=Md74ZI1aEJ6J9FRUf6w{D^zQuF``G;7tDjT*-&qITvbI`wj%gDp)z|+2+$p|! zM>)?AeztY7Z=^xXHzH&gm>3ipfHp`@v~oB&KNi$4?G2D+NI6^nf6wOI*(X;TPtdD9 zrN2JB?k5i?sAK0TtFQsG=958CEdAkzPsh)MsWZ&HQ28|L{*J!mUp&>F&QGz_{(lBE zt_A82CS6ukQx0NR(VTwzH)!xko4c5~l;Mtvp`qAn=?RgbMI48dolR@GUhiADH?cYx zJY0H(@j(8cuQ$Vgq+QcJ=kRvd-$TCA>%!a_+%-Uh*T0X08tx2BTq=+9Z~rzc^8NCA zHGBTIeS3B_|836eZ_(ZJc5u(=bC4|nFXsLJ$l&_62E#A>lZ96@xBPLP%Ua5O2Q-q= zm$mvcXdPF$d48Gf@2moqMSm=JpFY*F=hNxs+TW)?{|#FG^I(~KQmOMJJ|584j`hpL zugJSC;A^;D)XSUp$C7apC>y?-T7I{(c)nFq8>mzV#TD1*-FcsS=TDq5N5}T@hfl3( z@v@Adc{5J%N_uV*UuEtB%Ep7PnRWm9=9e zd^HwvDrG3y_x*Hz&lTRQQ_h2He({ye491)H+x_M`U-7?Xrugiek>Yu`E@;1FSf&)h zt{_`yYBAwv?`j4E;jlji+3&6Q{e8SS>`%e#=*8l{tH1a4t(@Et1zP8`E%)g{&^EQE zg+eoWKoeXCCNnRD?9dj`1F!0sptTR=aqs(gkL;6@S!q}5u&X^n_YKDt&VrbY0ie>n z;4?dPvK&;!EjfHp{2R+Fwgtz&u3!!j-nW!*hT|Neb}z423=T`YWgD(^TxIlJnf;{F zLQ4xY+z}x=5nQp!T72+{yxZUd+6;1R-M{qHVUMpb_H9jC0NJ4VVUphC0PQntPMo<{ z^>7*Q#2w5twB7|9X#Riu(cSwM8^a1#>H4oVU*7rJ$L@SE`@Z$R-{+@apXz?>)GM_F zBhct&z+D4R&}tUgmTYiMzJ@R0rOvgD&|&P#xnKX>JuvaZ6-I}!FEN*1>D%oSSYP?m|{BDwTqF?0{D8nTMH!z3lw=z0Q{_ybfz$?J3%tKc}hprS|(>pP$*4 z9^v@}DhwiJ8B}uXuKUIwJMZpusqcM^@Ji`PlTM3U=n75+P4Mh_ct)S)72A&2J1W!N zUa_T|c74b@Z)WQwo{pZreiu*y_kOlM&lTQ+`160ayS-w2penPdY37yewDi~=na+`S z7=7HQTQPu#J9HLHe`Z+F_2_$UUB+9dwn#?fW&a;9Z+*qKWBuNR?-C(Z8N+u``@NnLc0ct8-l#?|MM+xxq`UNN*Tyx8e*mx1Aj|DJCD>^DK~3Z?JD*k{aq zdKEhL<{>*_2lHW`ct_9{#3SMC3bL=nWS_5;ZispkyYrSgXu3V?@b)W=#;NB{*>i)o zV=duhm}Iv9wc2?LMY+l1peoC3hdQXTh_t){UZyzFiecvF81Sb31+&t&$~*;yd4w#( zo|eWJGc-IiQVwH45)b(P|*R#%D+q3+g!>S`ci_6?! zacmah-*{@R9e9mT^87z;OY%Hoyce(cYxpb|#@^BLiebrNm;a!RXIECpl`>>G!I~%& zKr1*vE!2cwD+bL;r_UUa`|MYJL1R=_piQ?oZY+?ze!(Md1z*ECd%Kcy z&?Mc#i;R5!PO39^syFWj#d5_lMXec1LW z;9vR`&J#1b4@omUzGt`j8}GZ$wa4zeKG%5;is(sJ3I&lu$?_Ge-3NVMjIlx_k;Szhh{%F)d@0Jm}+%}(Lpy`_t}l^Ze`Ku)8F=85!^rV zo?=+eH`mnYD~z7AZ)~*(tsi;1@b!D$)!>~vmsG<+N18aS{je_P?QGDv=vGB&=TgnL zhX-0NF>oedR_t^6xiUXKILuw;>4O^=l0ePv)yzVmT6&q&!li5S9G>Zfvpb|0JUMU} zI@$m(wVf@CK+TZbM~Z(Zl{#N4a^Gt7RSeYs z6*Q}Q)bS*0_D^HxGjnc(V!QTL!%UO(r}Ha!wyF8wWd!ZaR?z&s>)P*Q3`sIGJ!B^= z`L&D>G`^ksD4^YZ&QDhVyA0)Ts}v_^pHwJHtZ2^HIdN*s@iI5i23yb|1E{eY#LfW9 z%=2!XIkzk0a%^fLyFoHIp&P#zN>@;wCok6p+Jeu(FyrR0`Nx-*=l`1ic>nItN9{_v zjWRo}7BqoE0-D$%ee5NC0-w@Mum60-VFB7qV6(Yg2ekdOrj#LIb(LObZ<@D~tvAi{oR(S4%grd|kmj!3s3c{L{%B)Y4?3w-J80*)CyO>uBL(;qc^izsqJNMgw(s?bk;J))9V})PC=cH25(1OFMC!ZUw z7*`1LEI#1VS$4m&cun7o#759Ir7MgMLC;Fpem}D&dQRh)O3*@E#P9;cipsg`&!2hE zX3@A%QgYh)t5dJ=UcGkfh8*a`q`LP`uhyUY=aQh)cT8mK74tQFGA_qX+{HX2Q~1vE z2OKsV_uH>-Ph@JieC@wY-0z3)|NdE1@joH*E)!zMG&ufa4m?zu(IfkcVd}w)paKcB z4w8$%u4*5s81B8d*C524Ve7L;m!)rZcdvXA%)Tc`t35(;c5PrJsJI5LqX>hZ4F#G> z>~gr<@a3ebS;S$xyz5lB z4YYY}n{9zB=oF+Cd<+fThox&C*Oo5h?d7}jC+$7>8gbB8J%$vy<|qSI;j~)u++C}~ z?=qg*BCq#*LcWdpLBWc;42>Xj28Ou1-{%w{ zI2ByM3_k7Tsc*3~tSI}Z$hIdj%BGYdz`IH>llT6P1$H6j3RCCYE}wl(G3<`XgAc#j zlRyiHz3)E(t^5F$WGkgX9kfd;-|et$+{Ngz^Y#_S6`FfNs~16yOHk{>V14%9^t9Di zWj*FE-&gDFd3VB;wr{MBkX~~GcU$|n6~Yr_V_z|3*hcqxgBq02KfeDa{d)El$$}Wr zda*0KC-&%pHX502p8ASof!D69j2``%<$os*}qq z9wli#`m^coM5{+rFIgSY3SbAFa}>EJ6THND33%zO$MTrsiR^|4L@LAA#by8bbM(y1 z+qKWnrk1*hvb8;Bi9gv5J_?&Is8FOFmBg>kV3xvxLt>;C%LnS@WvjslQ@L zInGteQ1Yw&)HnUx+oxQSz51o^@%b;H2HP4whi!ka-ki_T^F3h3tf}JpyH>C1V_4Pl zTg2y<^55#So4)!8GF)0!bMAlT3mvvd#lxWD;QQkA@9Bl_B|gaW#OwxdaZW02xYQ>O zI=E$y_)2DxKZ_+kv}Gpd8XGw4+3j8Vd&}gXGkY|5M$3N4x@37IYrPhysov{Nb51h;#uuFjjeHmrQXGK)%MTiN2Uf03Z!)g!MM6cl63 z6SP26fkiv_fa?FU70g0URx&fB+-`lyyKiHm+T~-%+(Ger+kA^TsO1T2aUNeFCbRL= ziG=${XTQ^0Y2A?Z6`(aAY6j?d8h}G!Kcc-8b*>cs-Qd zZ*Jha^B7yU&G$0_cNv#-ZqF*sNW1%p=gKs@QU}v3TgyQ+O%1p9tou4|W?>S`GA&SZ z>)rcxTvvHP`wb>62#{q^_zbFhsz5XTyjQ2ed;Sw*>r20>*BEmjk@T2f3QN5Y+fUm) zk^Zh};S~M-?cIfW3=A?Gi|((VXRm$FJ|e80ffLjfy}j<>MM!_Y9^BvG^!VsS(1hz$ z_$r4LoQ+lt9+vNa>@3~BQh7pD`D*4kZ>jc()>jM`>moE(3Qt0AOfr=+T++2qza~`5 zJi+LWN%FG03;9+|0@dcW->;UcmNEyVX7{kR&)5YjeLFv11Rae7THp+-AR`MBE1WZ8 z4yQ%^54ia+_4l+%yB6P?#dQ?4p5y2%hLkAK2%vEMo|o%xUlnu^T^q)(Q2X!p?7rX6=Vsq4OF9@_4oS(Xwa#n4@fIhx9KLNXvRZhO*~dHkKu+b2Eze(*2U@r2 zu{~xZ=z5gQhijwu9{aJgduHgZTF^w^A}KYuHs?}i292|?quxtOXB+VP*Z!X6ad*NL zr`H?1LB$eivpTdPrSLgy1@i(^GrOoD^N`!s_iI3>^!x^G;RrHUxNOnF;hr_uiebex zP*sx-N-j&zTyADgle{~FondRj<6!+S|ISXf&JQnVxO(mX$IDKjV`b%}>OoPe1X_`F z)IY!X3a{4jt)PoMEc7Q|7kPWMWf`?B*--SKsPHv_cK5;Ov*l=J1tmM61jGlPcd8$Ry|U0rMZImYW8&_~_ocdxGQV_5a{=0WD{p7ggCPWpX4Q+gG{7$#)RuY1v1`d_(D zFRYv)6x0{ncde~v33yXotPE(G%|t7Qm3HT=ltV;TGK;jisWX)_XE`n4W4QFnI@>z` zb!# zTr+Jkc#wWI^Mu%Vo8Q8ql|tvNN*MxtkBdczt&pBzw_i%81C)9*weRnJdvmJ4tVB>b z!&UGq9pisx*`P*)0I1ObT4-=Bu$|}UgRZFInrNj^s0)hRbJZaKu40~0_j7T&p@x73PyW?cdXKMU zpV<>v>aexv{e9_G(hLqg52w#q2O5X{+?wVu%LqDdj^P9c+s3q*{|~yKs?Y!Ly5!x8 zZ3izh-s@Z-)V9K@bAF(O(8r^*-@OWTXSn+5aH{+(GqZ2WTxEQ`ZlLABUuxg~EPA;= z|NhO@?-*8fq%&Bok^S9v*2rcG>yNc_*6TTFrDX2CTVL?WkayoM#&g={>#FuZPK!9p zb%l3@=0Yn5kJ-ikxi=nceR4(8V|`qygX-5;4a%Q#>JyG{TdDnE)4_?KZfyM@5SFfT z##n3#XqP3ZRmc^8x8c?VZL`vuH?O|pJKzegR&xW&7pQ^CrfIvb_3_OP2xn+GwrAbf zec-9*x`|c_n*T0Y*OW2`fzD>q2w-P8v5fn$^sb)r!kOkaW>=Qyc{ptZA2hQEw9-y& z74rlw)8FejD?IzH7+!vP-Pjnyqq_I&l!UiOKa2foum6^H+mi3^=97CH>es$i*m?cO z`TgI%@16DkkL1qlKg{Jlk59}=oY{HacG3UeY8OL(-v1-@fB)=T_vYUCecX3%@GpNR z&8`3LKPr81n^zWYu=;H9c81UgtC=5co8}Y?T7%oPuzp6*B*uw03mEtv}3|Y?mHXq*Z zTt6=pGBR(Bh7(FGW?+9NLPhV;LU|Yp) z=I|+31vx)mVPx2pd8lZ0e73XprsVq%x}&e~a(?Lfo(-DmRhYf6;+uNSE%3Gf45g{CuhXxqyuY2+GF*gZxuWz$KgHBIA zebo_hP~B+7z>sy9^H5b;01@csAs`m2o_ zW`bL4;%vu$-0eRjy~FH7kLk%7EsvIOKlX}k>M|$LLafS-Rt|}d>3i4bIrwtAy^nmc zQn|sT;&Ib2-nnZl{qHu0cpu$&yM%XRR_=$ZoCR@f_yiJ+r9n&kl>Xd3&~tL@cD-nc#9al@qLMvp^3u4k zFs_i@xoz47zSwRCi?%1Mtr#4(#R%McF%vY1#AjhqXdv8du;-BuUkCW~#hIW&LF(iG_Xq#qT;9j9 zs>5;jj7^ZCfRMmQS%wvB{+&!NeAFPySP{{nO z7x8}f&8$-PEH}_f)Hz4*I_}%I0y2<$2sGgL?MmNor&8vub5f-YcRqA4ufMcB54`Id zw1RDdFQ}HAXQ&`M`TBA`hE-3c-`mx%{rFkn@`oe;{)Nbh6n=djCl9)U9kh0(>s@tP z`IL#-z>LoUJRN=0=1t-&j9-hL~@2=bhtK zmkEBp(t1Kw`3hz=ZByqpZ(5lftr+uWZ|L;6J7LSAv+`dcr=?DWtTAic#kh6(ztVq2 zrOXSSt&Ms+TQYclpzdB!X%;CP===D09B54iuiqjE-J1!PZG8#Hj=XAEBGR=PHnIzv z@}IQqSmY~~D-*a6N!un%XrIZcC^4w}^fTV&Ri6q^KW{52VFa;**C1X>e%)=oe`y}W zs)y~T^*;9LZY$_-%B+Np5?p=s_wllby9^qCFRw5Ex>9;V)JCfZp`dYswJX7i9CU^b z_^h;piup;xcG!#2(0jVFA@evboo`{CT5S%D&*y+NizP zc6@XAI;E`s=Q9u4z+86rZ^m;Z9n#M1PS~5?&X&MrtQy3wl3BB4ek&8`Xk-S5wYwDd zTr}Q%^%dWahbv?IYrXGIXepPeUk2)MCzUc7=?1VXnEtxL=wSM%;HK)oi@s;GugH3A zcmMT$*3u`IzxO0v3^r$Q;BvLUeK|hNox%73Xz}d*ni_w|Q4qY~<^^=o7_8sr`ig0RX;b3%WXhxdtE50jRLVTO&t*R+ry*`hjfhE_#ul4wuuB(imr=Gq7 zwalj7thN7#_q~}3%hnjKOHE8Wob3G6eg4nL`MZ=s8%{yvaVNlMF5Xzg$FORl zjnSD#!5Q2BCMQqamAFajQ>FjihAWyYnHj`wF4_yMl!ok0*{A>a^=Hu8AK){HY&?g*^14iNtJ>2%rjtAg%I zqRwlI-rJuv7vowy=`MRxsnerdQnjT_bEaQCo3qb~!F1KWb*F!PZteLP7W?$(LPZgW ztw%uFdA^krCwn`aZ7DN@O5#1%*SpWG@t)IoYx2r;nV(LZK{4m`iUG6^ef!oe=RRNI z_1F)}&c@Me-!(`dnQhJh+K~aNa!-|%J1`~cfx;dZYDzC@XNmdLqGRybAo};&Z zp2@vI=v!4WByU5@-rQ4e}8)i+V8$9`|tjv6L&GL3<+c3 z)3lzi;r1~;KNrxJC!W8DQ&3NJhprh2_&jYjGXr}?{lAIZdgHwP?l#^EIHiAEcC~U} zh*eue;Vv^R@cH#Selmk+rQrMG0zQYWW^Pzgv3gxpwvVHG>D04p{O?Sd5#zkrit**c z)yxf9`+-8xc|T5<)aKm=9m2bB;p=z3SHUM5Z`Hkj^P%~ikJ|$7 zGKS3F{%X~QGgVh)S5%h2`S%Gl+UaCd$`EukoSh-q@O{(Q>>kD$D<&=9R|`4?&1>Dh z&Q_)sOF&2UU%6!EKeyq_Yr}WnVJRO&NZ$Ybx3BB)O6|TPyF#+C?&dqY(jy^Dk~^+8 zPIQ>daJ*Oc&O$$rD5Q}F9y^z-qGI#+INfCknY{g#*8MYPtE?w*ZePtj>CxWzhe1or zS7qK~ea)Qg%)4s&63`hp@$#Vk;}Nn9J6^4@>}D=yzVx!`!?6Qrb{&;0@YwVEV*X0$ zNkKYWen6|}%b=SUl!MqAj5FWA_`p`moOQgfkvaA8OeKaCr^*zcxePw;ply-o=G+ep zGH1wQzRtD~a_iyoj~wuWezF<>(*{q^#NRXF@g@5mb|e0_v!6Zt_pf;o{3%I z=Wt5q^Fz7#y9_?p_HbXTPTO{HN1emhBcRQ{MRUqpyNoJ@WDF$L_ZPM<&vVGy*ue5X z?|;C}x^1=I^LHt0ZjR~$?XHYl!slRC`|*uG%PY1e$3dBTrF6s0Pv76$)#th|Gz=(T zQ1(Vvw)YC}J0H{n2+BLr&%%J0GNyJlBe$V9t6zhCYVt{42KU@V@!@2|fgI zAhi1QZKqP^OV67=9LqE2J}Oyo;>3-D`LaOE@uV(Q?w*C8h zeV!RRzdaYb0M6t(Yq$UA_p@7e5L8G$Jr>$O9kI({=B2fK3_?%l?%k32nDh9R%2xtc zrtJH(>27N2kq}G!Bd7dquZ620C~RK*^rL^><~8R$W~3iwgN&v$ED?ns@-snj=eKEB zU$G@Ds{|EvHX2SwRps?Rr$xw4T(a=^f87vsg;JYR1_Q~@dJ*??W9%3F0u}3jiu3p( zLCUaW)w*?s6L&GbEOM+^oZjBHiRu5lpSAw?*XDTyL2vNzlx;Zk=_;c~`!%QJHF*qa zr*5ao?_Icc--2@vy+6MmU~u+iWH_)|b2W1uXgg=_@vUZ4KnvR?ezk*7d=Q@tI?)Go zUig9y8DX_6@*I|}31DaNeEGZNdG7MP3l#&(7d%@N%}d{**~C3no7vnLc{8)+s}T#Vq4=%8A3T8p1*A zXl{S_aS%Ln1)GZHWFAE(jk`vOhk4P4rDXyOXD%f1*K50w0i3+~62 zG8@F+k1z8~kg;mj`f+hyY+9OX;jtyASDu0zNeq%gtC{N-|4#-l3Cn-I?x5@|Hqb(; z1IE{0CklbiZCfoJ@{L~}wAw6g4PQXSg~<1-r6*Xf1|1|B`+woJcbmn{*9AgG(`M*> zZ;yCd1R6m8+_i2lLtyRiHj7*?(4KHXvnr*)pXd1YXa2l-_Z44))t=DspK04}RxE6N zvL=|FK@(J)bD2ri`+;M9$*yDIq36_3Di#TwUcK%v`y?IC@``WCF}6~MJD;ztJHBse zp2wwo2W_E~n&6G!B^AlfH>#F08_3>|FYDZ%Uy`zT7xUK4j2fFTa|TY(nW7VdHd;MM z1=ZuF zdSb$*cl!5(g4{KFZ1&D|++qQ`wy#3>v)+!6X2#rCWl!|@*gm$fFp~hC+X1T1*6n;c z12hB>D{ybewH@ydY4h~*9qYIIyxFeQebTGXyf&MiKsPoYMt_IaN2rjE#C}IKmLuUYX9v4ogLC!|7o^r zsq-Vq)hyzxnO&Gl88)ed+AzBIyQA+i%4oh{wc5t`cFvzSE}O2cWDa>1b<3udIq10c zv%|LYte7g6R*K)bkqb)8C#FTnP7ry2r1&p*Z{K&&1uUgszn%q62qHyB>lQ!M3$FBA`&X}#Ro?yArNrOv^4LV%us_4BJlGnFX@IGx6 ze-~h`l3S6Z0h{N2x|*3`!7Wfg9N^o#oqbi>XVB4RhbPXsedWn&=?Q*MKcC~g!rQ>T zr>&}#>C)mQd=;$@vJBgMW#)8Th3sXzvwg+pfFSb~Z)B~&n;TX$i+tmk<+;LpVoP2r zgMo0J@qt$@$**imxwEdctPNH_BeJ|b!uQH`-5~P=g=cv|CBN|gI#3h4*7^Ef>6Ox; zMP{3{5$VEbTKUyb>7I56kGQjUJeWDTt}-6TKePM6u>;`7o-Js`40Nz1?^|wAPgQ&+ zbA!o>_4(h#f1a)>WuJ33Ij8O5>WaMg>le+>)j#^GPi61pALYM$zxux7vB-P-cl)#} zyeF1%8k@~Z2rA=y(|wiqKuAsfP1Sq*E>7%Cd$uwBom>T@tSVmgZb`9vhj`2&v zzqk29usg$L!*6GI-V@i$zkh;3J0x(9eR=tMtE6QXwnt7`&1M31TX)WGyYmNhf;(s) zWuk*@L(XY=mj>9O)( z=$Nuc_u^+dd{=o3{KG4fr_Wp~n0_Fz_p5LD3h7DDjOT(*-Crtch8%k!}z9Y9< zx?$xFW1}q#_g;9g+B)F2+}r!v(>6YT11c{WEE*KUEQIvl9tNFGc7MN3IjCm?YVLwA zQV7tiO9Sm^gAGl9riA~!aaxe)u&lD|#RW%&smJzNUN_!+c5~F{eHN@+-{zGb@F}Y9 z5M}lZ04>jnL5xnkXIt`Vu58`MOP{Z=ux>b<*dW?+Z6$NV6i|ZS!=3l#OwZ*93x!sL z_OX2|;uhVxWrj>aRBi3)qEhBNmqhQqm<>9T^3Im}6*>2Rd=&q6Mb^`L*V`NLdEo_o z3=LU7f0xhSUl!&ZJbf4Q%zz+v@ceeet*7h3vtL>htsbO;4l3UM@uMwh(+YTK0u-m& z)6abrFBQ82-h32bv1;wPaC3#v*Lv=4z7X!t;Qq>-c}-7tVMzGRGkN0XXEe&&BWnNI zoWCK{&ZQ<-XBB3yvTiNtYOc!2yJy5!FgN_UxH-&x&PTKOyNr9J-mhAHO@evNg1}pU zpGJGV;!s$+XQ%u-&MSf^)>Vq%dlA{!{%*plE5>~_3sphg(TP?J9^Ezj_JQv3HJBl~ zJ~N|a!*xDgwv$sDCo;ur?delrm^Wnf*QD=pIj5&;iX2F~N(&&EL2yT4=>^)8zdjY1_vOt-pX;t?M z-q?q|(mk)EWR9&bvoG7e%TaOuY4CJH7`wvkeFfjtL2drWy>pKn74Wb8xHok=+xqTszm`#1+`j1;n&!cki$9 z_LP0t^s!d|*DJOq*NRFRHnlT`6?iP+^YDsYcs1PoK&^k?PSDv3nMOvJ_B-8W*!%S1 zFL3R3AW{EKwbj3y--0~vF1!$;!3OENGB5;a@7w++DF6P86K=+zujroW`~UtUXv2eo zW8Kd^#WkfY3$`p+su^IeV5(GlKpS*Qfo|19#6sGQRt~B6FF3O8T{sDJEc-Us-tH^B z2Tp%k!Q9}5DAkP~_WjujS`jew**k&NH(m953MzC##X4jH`JMExclRRhDm+-t+%SE0 z{p0rr1{{7L*6n&_mfRq^WnCEijzyd@&s9)4Nczjetk3DxJyy9 z_1eyTpb6fU%ne&kK7YOYT+Am+|GSKHpFaF`p~9?$tXWH-o_ahaV*GyQjY35zM zycJyK?Gc6(Sf;*_Jb}6(!pFNk7*wd8emZ?!Xt~1eJ*(H9!ELUM2V!sUGoaW8-IZ!OdR z#?7>6Nl?N`L>tV@VzZ%dRVo z4PM!`vD0@kzPt!Jk?jhvzA$K^TJipm9-wvNp!x89;(R?vU$ITio_>xKv}_8r_hJ4n z(B21z^$$R|v9Ww8`u^X3^R>9rxYKOwRhRoYmQ6YPrmWEU>JG~zuRy2p2tU}@=_^?y zUMkb^qRbjh0;B}K^_v!YaVpmhIG&wuS{6CQ~uq@tAZwK2fNmaK5?EWi`Tw=x^)G|U6)g36H{8n6d2&qUPuBP3^3~EU7B-wyZPxHP zECZbiG=ua1+qe7oU#lqRpE%bUw6jv+!|CU9AFoz!SQ5LT!0$uf;#;+)>_N&w?0cBb zYZgX;w&V6T{%(+bZ)eC^9QA7Z3h59(yItU6io(aMj-Q6?fY6D*%dn?y-NkCLvX#mV z#-HnIKEL7hzIW%sVFqoLH_(ipRao3{HSp{{&@FTFd-S87*KnEFAK0AKy!;*b>P%2c zcfwd~pcT||nL7VYk!z$ZSnY&O5f)8if!uO!;s15)yyJM(vlz8p0h6guCvEiwlU}D@oeks zF<<{pJF5blCPf0=Xd zx+-~s<^ApJ=WkWKihV}%7d;H}pDpe+y=?$~U9enxfv=PR-^Eb9f>eR6v#1giO#tn2_9et5T+fw05?L+JuXq(owIauV^-0eOfee z7o$M*LOzB`A69Pv@$gb|I%vO?m#6FpE}4|xuDl-?FM}?t1fS~;I`?+AUNpEfek`=# z{S{kd!pA>urOXDA+k5|=ZE}!pyjA+Q{nnx9@9mx~T-q(Y`-<*~Ef)3f-rc?`=vk28 zadlRCE9f56Ka=n4tdwQ}UEd+T5`5~9LF89;y;phvUa;@FD(kVo@9Js^J4SI(wJLc~ zbJmPWpuWP{-5-v%_e^e|$Ojq~xYzmo*Uw*zKw}G68T&e}GJ4qF-!X5Uq`q{5XomL$ zv)^p-Z?^XQ_sh)8`3gFVgs+r=fg$q{gZ7SR=}&D}%69$#@$c_Ut0zpMlZ^M*{Ik6K zif6$sy$FN$=XWiF?gz2&aazFFaC_U-cF;^3N87(dqfLME)FB5jIXpb*fA;%T-UEUk z&g6W4abM@d5!n@v<*_f;5iwxXU23GA8-M`A}Urw83#dLzB{#|?Z zwH3+}^dQCP+ha@)OWZ*X=;NKwK^K3#KdBo&E=pSTO6I-Cy6k z`7bg!ugZE%-?skGf+cy70TSEd1QYno-y|!CrCSZpFE9t)NCF)lIUx9{$1!Y%BWU?i z&folExnGMnciF~uS1XrJuq^y{=kDHD9ZPonFh3U#ngVQ3E_J%3R`(aQqxpB+I@n5$ z2Oi+I#=(u!ujA{T7UVhZDp?aJDs@=>!Lm&=W7qaE7%fYG*IsQ?%5o|3UaR>!!_Dn) zE_BN(h=Q8e6L%?UCO21uZy#LE+#t2(AvmiD&Y1Q2@YjPZ%xer>nGgS6`u6;PrJ!<+ z*q`&x{{Rn~?9dNlSGWvXpa1k^?d}^3SZ1!me`isA5=*#KR9!(#GEv zjLi2NL%PMFX)}i4C#HIp&!27kUo~?%pQBaDnz*gU_;SyE-lBS7^{(Xa)AKs73a+!Z zFj?T|ko)mWPO}wL-t6*=y!ZBW=iSIi+rBcoL0M!a^Q0-OwROV4r%N7CoM^>hdf0s3 z^5B<$3Tn3-E)c!E;csjFnqc!4w)g+%fEpu@O27Yijg)0%m|W`gJ8<7F#+zRbZ1UdS zTkUP};^M!(X_|F?WxpTq?*T1P<@xF8`|GFtpL?@}Z+C(A;(gYIcER$`Ux-)&UaHIs zTA;PPJmXH+{F_p%twX-?^|gbJC|bf75Mi_bVz@a&u!uzS8Ut7KG}N73G9hs3pPjqC zUv;SL{JuRu!6ZQaK%w>bqpw&P%{GI&a|(y<^DYUym;L=rk7Jm{n!c;6_dtr0=||Jb zcJELWb(>%7HMil`Wz+A6ZDU_??8v<5YTi zmghNqTN7RLEBDx6&O6`}ts`X{W(iF@Z@=7ImhsGz-Tw8#7XnwLJ4i2E1R8q;T`@EF z>Nhq*4_f;eto1aj!a0TY&E3feM~`M1UU<9>%vFSq&ftMY53 z6O#?6IiVrmpBo0IO4|q8$IPu8*VQAtLC5zYTHhJ2tFp>bX}EA z805m$3);I(?U-gX9gs+A_5AVZscdZjzo&EB#bjfzKi>LbGyl1lXXo$Uy`;}$R(8EG zGw4p`y0hlWrOluVh(3G0VwmV4%W$Rvq&xgY#NJotht+Kgxe6?n-i_b2)L)h{WlnmU z^i{!v!+W~(IG)9p9CilXo6F=A4BFRV*}WTl_(K@Gg<25%f@e7i6Q=Gy$DjYoXmfi{ zIpd6FwawL!&PM-V7k>9))3Y`)(8f~G=8k#G`5b=jc|GGXb1AdY!P^zrTBXkx-F+qS zpkSW7oY(Kf85h^HvtQ+1p}X(nKM~VMjj8#&bIXzy1IiVqz6)dD!v#9GbF0}ESI9b) z<0(u2Mjn`QHg6qh3?R-^cEJVFf*o2}ZVBydkv|{tS-f~uZp!+<>h_$o^47a6AHSE0 ze!sf9Aw1A*vya@KlLFdHPB%^jom~Ix^kL}I8BgtXe-{VbWjM3ofJ6$b@#~1aS}!8@ zc0CmK=$`tDfgvqT?9AVS^K7LoC4IYJu)W{Wofnav^UnQk$5lp8%`InmukaS!pB%le z;|i|>o56`whR@s0E1$QU=WcO!uC^`Y%R2Dx-`troJfEbPAeW>tJn+!9|0e=kyuK~< zX8T^<({_6*!NZ%ZE1vwX{&R8CuEbs6diz!h2UJ&`dOlxx1?XIakH7ETlRcC5I;>n_ z>#r+}>p`3Fa{b>*_kkvJLCYQ#gV{kJ}VGZ=WkDZ53F^{40W`mPFc?pK3ruyz{7ner}**9{ja;N6)tV8x*C=IgXL24-FNzTg;pzHN_nvG{c7QW+q<6E z?MPp1#dOm8-6Clx>yp10l>Hdf&II4zrxpe}#5-CqRJ|CXF z>&*qzyy@FmwkF+wFt6hCwf(O{%Xd6zf*f|g4^&()$zy0xE=~F!2wL`;eR>l=`+1&s z_w)7~cjvO%l)pZbH|LD>T#E=$3%t-kBq;m-(!_$CjT7w;&seqMt+su~RYCph|2JL+ zm(-=-AMlkjKi~k}@h57(8FWU*8+j|xaie?S>s)3e&Xbi&xvKlFVOshBT{pAiZ3+s0 zuT&S=wO4HWu_p}c1!muT`-n|)`@ga>6HtSA-P(_d(2_~16m;|v!zzUp^_O4EW&K`1 zo%NM~%JSr|s}>}G)oSxs@J%}X!S_pu>He=hlXfwhu1|lr)b{Qx4wc6{y7NBt?|#wN zo3`!d4s)km&6P+eBVA>5IF?iKeNy!GRmz)Q{rRBw{?CVHy=mJn?l^Xo=hof*#dCKZ z6g}$H4O$PURLa2MbM)Rs$9WqUXkF8_TYUSBnS6N8*CUz-mh7>x3NqWg$s+ky+j0JB zS9w=>I{y4qoEHol7jJ4UW-`8g=VHKmKgTN2&TG+qRt)c=uiT43UNRHSYr{Qbm2iI+ z=+>LKC42!AQgb=3@H$M*k=R>)uxXCYYSIg>-Dp^{Oc;^DR(53zW)4Nqb+ttwBXK>+WsT2K+C^bK+C^Z&%Vi2$`Ifh zcem-W+4h<@lT2R;gt#An6&hQX@x!Ixg4H6Z78FkNt(1CC-T$}Bit*;g#CJ<=v#$!y zs5~B9;{3f({O*Rke6jWwk7O1^fd;rvgLY)H%mMAll)Rdn#;+S$l&$b?MdkBW^Va9B z=DFsZZ}()!gd7Bods;2K^-nwwho5S~xZPvSE zvHixO-8D;z5UM#z5DlGxUN z_}0Gi9XV;Kg=`O)>f(}&wyj_e(W~;F4NBIJkk;w!+r{YNkdVgTdvABb+8xYS9~$rB z(%kMRyWrV5fz`{uv4JlizrvT6(-Hdc8Gl7s&W9_qpff%_q6**2R~~B*vydfRZ$alkSw4Fk&ITEpEjYXQ{%;r14ZR=UUQk%Q^-7I$M?@ zJWc@fV ztn7%Z*{Iew>EGpZ=}D!`S+mmH*&-_+@jU=tc59rb^!(L?|Df4k-d_10c%2Z&zG92% zQ^_xFpq1l?7Da*%67dK)|6(t`|XEB__ML{C54$oZ^rC)7V~#`NST7rMuQHyPGEdbz@2;HQPScR~D^1_q&0F99fBRuoz?^2O?aS+* zTRkp6cDl0nt1swebkJoZ2BEw^cj=WfUt0V9%lGoxH=liTYS#B-T=wR+_58l8yv8b3 z1?TfhnX{r3(q>Dhu!_Ikt-{m87&gPQ_Ep1m(D?E;*w%LFIEhzsEqIen^c6;~{CU?m zc-&=B(J|Nz%Az+6s@^mC-)YkPam#e>U2sbye)qD^3xoYNN~(3=_3UTt3%Ge^U6}ih z19SHu{oOXRrW<@>wpyHx0A%$C=+f(k7S^xp?GuYnyW8Jb%Xe_%>xkN?Qr0GWR=Lk% z@;U4R8aTPLZk@;Ojj`6JU$Le5C8Y76-CL47eFw99!^6-M8-A?Juivz$&%;YEK4BpP zXkQOs_Z7wyGWXAzwR`8?mC@UIRebvrp~I^uY(Z+5O|q{%zqN4}7?tcBd$?DP6U-o5DEAkqC*L`{Oul*|MQmw6x={Cy`sEEMoRXcFK8X>#j z!le@p<|$#@XXeW9Ek7957P<5NFaB*mK>@h!_`gpt#P#dKFSnVWThD*h_W)1Cbo=t~ zNZE%?Riy{^XXk&p%2{w{-Ct|aO#)Z1Zk)*rUVg+TuhhNg&zp0+x&NPTdYZOv)BkDv z^;S0*RLEwpdt9M53s`aaD{#i=zslRb#mc)s-yH(zpZNA-; zC_2Luv^5)aE6;DayT%f$VY{V3C#Uqy5B&g|k^oo0sRyKu&Te+jz8cnlZ}$T}c(Qj1vR@?cJRhp1wnAJzvF42U&*WvR9>63JYDo2U?ZB zNB0$jV7x2?N9oL)-?sfPik!ZKdHurVvs3TNX0N-G*Y5ZF^HIwKJ`vl0d)EuDRL(m1 z;@t8poF}&F8Q-@1erap=5!s5FkM;f)zu(dQf6wn7-T!NL&&)Lud#rrh=xfj82aqkb zp!p-g8>{&oo|VqN>HKg~wE6t4PxN;k(LGmrf6{rj_tBqj@}_OOt8@Ibp-LW7b5L#m z;}0sJeZUL}yZCx~OX@!y+5YPl-;%@k_f`MA^*33Wf2;8UF4IRxCrHSX$bWO_cRWds}Ud-ba6myw4YVd!50&UdJ~lpa099yX&B< zZtvQCH(RWj^O8HX8m?ro%-_I2=f|~o|2Mu}xb>CTj@7@*?>$;?@ljX0r@U;1;eIKb z4;ywRs{OsZ`TUXWy5}mTY?~IJKJ(|(Pw(@e{ynUpepL6wgxcvX`(&-&XkD1LfbH%= zK8qeu#r0N7ruQmu19&z+F!(%E-w|eizLxiP3nQU-aMk|wM5#~9#En`&!^iE_wj%F z`+JWcuX(-ae|?(T^T%73&RH1Fx+mY|t!UW$QgPMEv0B_5zOLbW_ljG|S*$WSz3a9A z1+@x>rMF7Lxi~Iqb~JPwJmB);j>$YN`PTeG(1N9VgQ9Ldt5BVJ#>Z&#lke_bA{oVV zcHX<6{p@dz%`Xj=$*-#lGmK`Q*`xokJGq0;bs_VepxR6Jk}udU-S3;Gty9u`ET@Fw zVzq?QrVy8D*RJY?D{XRfS)(5P&-dY^P4DO2nm?oH!M?XEI$kn=7wGJ;V3xhMY;G9K z-Gz$}mKcQu9nfBPX@`haL&nv}@EI@IPH~3+{l0wvr9VH9zbm+)xMaTczh!wZ@5>dQ zF?x7ZRfFC3;y(X{(nc@8M(n>ex8wB3r8SOPJCBJ>RG<4lc3x-S4Hnxi{@Vd-0xWKq%zi+h=*WHGoz&Fn?Nc*}hWEMy|DJXo` zVaY~SrA;bdUkgw9;dZ^lW66ipyJd5N-u?LZT)X%G@0FK+oeHYYEnIko{q)}#DoWce zln!<0?Q54)4m%zq^@8Qnyk5S7+4*HV8}k(Y^47i2Yt3UYxX9>Y^-)y3vxiqBHs6p5njiyfylIG}3o$mr1U*?psy*%s2{^HG5 z-tZg$e+RFYd3Zha(&Wkq)303B+wOWqXrh>;^wv#|zLJFrTeMV^wzAjpKg#OhJNvGp z)t|$%WwU+F!pN8ar9F!jeH|7uceH%h*D!7}`c{0$ErT`l>7&W^Svpn^r(8X_Xp+Et z;Xu7t-b+)w*C#KwHuAaok@5MDOPds|T0V7YzUPT_J*Ycn@vnUnTwN!!B&+{11e&>M zy}$8dfimCH|F7%iMe5%B3m34pM_=T1nZ>b?*`wa{_*AVD=2I_^PnCGVb}3HUieaI$ zSxk4H!lild*PnkMJ#p9XA1gX+RFnewqI_o-<{w^jfxS;_g=rs8OIr93-Vy;pj~n%V z%bWWy^vWrRCHt4DN%?bI9mw7HIDO^|woCJz*c)cNU{LavRNA!b)9vYc!XHh)-mmax zxifk4s_AuyMJBFJ$*G;KG5zKt(HA}4`L{GuP3OC$3&?gUDy{DS7xb7*a<|muS+(Cy zv{EKqFWk|UaZ1GMfUjLW<9Zf%;f)s==~u)cQT!v$*WHSoUSV(@y0tR_rp#SRn0D?RWX{Y1tAM!N6ra zOWLRX{p@Kv@&3MzC*8IS+>4#RE8%5f>eSOM_b&(VRd3xNuEH*#{@!=#ln;guMezYH zawU2ZH$-YGa+PTR!*0~S6d3@_I&y0HENuS>?qY+vEK4)+48 z&WcIjZMZaBf-iJB+Xcxb=G?Lk8y@^fV!rF}#PBP7-CDo9wR=>Po5R8$PA}JvnKaMt zd->95-|gcw)!N;%SD&g`IJsZX;DWD<)P_ILOWZCBT3t##a>{{y!n1E*Z@yq@V12;= z4)PD@*)Hy=Y3o?C?$5W>(=IK^VUhuRzeqbuRy#b>ddPoK(|^ggeUk5f|E=ZQrF@+y z=T=7HkuDSQDI2w~=-dAC?%me0MsT7A`&zZKH_z)NrfmGpz4g#Ttwk?4Tx87q^pja_ zSL2rH<>I9?*i>s6r7QajAB6Ai&=D5=dHmK>C8Mm)4&~&>VcR-x*a=2n|CFme+c5q5 zKNAi1V=HTnvbs*}VXj^F;h#?BnE)$Izdg!5?=D=ub1K=VggMiHA#+EE(aJpwJkHrY zymEDaZE~>euGWHSx<965p0ms z#i45KYchm#N*E3aPGtl|L*hc_{VJv3Klb(1uFaijBeV4vs02Fy$G5Zc7dzM4zI_vK zH8srGeCn@biTK1c8Nr92MfsiE1y?WlFgttJffolR^yU@B)|{BKNvVYOab+Qf3#>B**L`|jUQU#MJkwP62a7Of`7 z684KK5=P$+{YrJOUwLs_VCShu_J`l^-hRQbdrRS)=k*ekHp++SObWES*q6~31&S2$ zX|o~Ot->L$_TGXy;#ME3{~pY@S^e!;^Z#o?f*<#O{=V(c*L0S}?KUqQx5p~5yREEw zZzmsk?#BJy+M6<$r!KZG5tWyU2nY-5JEyR>&}C{zkzZ(_=ZjgF?e~6hudiGqdDrP( z)uT81?ADV$rWSjjnzksqK~Ha~Deotm8Xt zc!76`?eZVdw{uEbZlC*;kf{;z$~|4+Y1e`t+v)4$TtIQ7lzjevu+k+hyTI1}*MA=l zoB!KoWo7>1H3_G+ofn=Gy1(bLeL%*RQl9o_vOmv7Jh`J)7pG{|qxRo&u9=ln_z%I= zv+a@>347Elo3Gt|fp?v@w$TO7CAQqM3`vWaJ8X_k*tohvclDodseyu#H|rnka!D@P z{HjgcS8!*^oB5HL0rYYP31%#$M6j#4fN?r-e`9 z($xT~hij@|n)ANkoBOl2PWZ0Ft<4u1U0iMk6d(C``rpqbvtH!izmc*y`h;xxoR2eA z|E^ppTI_wQ>4lh*Id5;zlUEORS8dzvZD&}`x2yS6bbw2kg}6?PiqgXehqH5Y_$nRm zi@$1mG&!~Cfu)#>-bU^BHzZu$eGWLVPq=rAi&<<}qlfU;7Yvu~8%|~2`77c;%d;u0 z&|E3-$~P`%s>W%jq6@`8g7#a+?Mhbu_J(V}?)w;vGeUxv1_e)dNS15d{~r_j;`jX3 zQ-06)m6-o~chF;f>!8nm{~Z=?tc|~A@$&^!@|&>5LBAI++Fy5O&(20?`JN8GWq+QR zm@QT=X_MdhNP^SXXCd>Qu!2a9mOKT2P;sN3yXS<9xj*Z5WIyLEmrTV;I5AyHd2x;b9_$KP( z$IVV|sRgc(!piB#Lv4M{66a|axgQz7cHS)ZDdCvdV|zY1{XHx9Y?mcFe?8pFXVzYF z<$LR{1wFR?kF*{Z^PH&lebL|vs-N?B|7OoEVVIPx3r&@+ z?{}SjZWpMfq_n&~;muoh`L&1l@Jw9(@#}Ws3lBH*yqCE6$rFALh0+G z*1i*^hyU8{{kO@hge`Cx>(c{MRcqMq6`T>D?Q$&6WsS>`iGh{BSNUISygzsEcimvU zuX|4${{PdwV9)2ht}hNe{=e1e+xbMfN6sA@yXVCA$K@_oz7rHu+SHk+@K&>=p*`Y| z`fg#tr(5^AY~P!?{A$O$3z2_c{ugpGpYU&%TzuX_>5h&~OE+yevS;nL?$!J673t6S znAI$2|NFGt`GBIMZx&6eD&ZD9b!}hVM439Dk6-`QdH?uqed)B3;LcUwn_79V@~`h* zknF)<8^6Lh<<0+I)f+;mlFOdTN-MwU`1qy%?|a@7=9lYjC+5xl5#~~P(1Cq|x<(0u zmyTtUTxjDug|k~1G7GHo`m469vEyED*iL&5_IZ!15>m9j+`C=#|B%;2=EvcWfBt*U z_t$DmtGsUA_51tF4|H`Htvgxox7^A7g*z0C0(VYuloCsI=ZF?UA>VJ>H%sS6_~o*+O#V#_Fhll z3E^ozj~Lw+$p}sw%9$M+vu(-C$IrLvRzIBRR>GZn>~VU%<&UcP?_Cj987J2)5-Q;n4Dru8F>&Mk z)lZk)ek-ec-}>v8r7!pvedp*p@#-G8n4a)NwZ6!w>-XtjX?1y`Rr&m)%4U^%z< z1&98D{s`3|Ma`$H z3?08YLau zukOC%;3B~#`#^2}`Fv1TuB=quks0)YK}qS*#@pK?W|u{Y?Q$;PcyJ%9=+RJ6H1_f- zSame>Ex1#9Yt7>6cmKa!e`9|2n?8khu70u!(9?dI!=v^`?Dy5<6?sOiv|xbdSF^G&Cc24y9|g2O4G ze%gJ@{kKU33@Y0T=cO-=Z!uDzI5KXq=x>bm97vQ}w&=Ox(!6XKK&h6=9tn zclZBEyZuye<*)17K9bVQxjH?zcATHG@!Es<{3pT_1E(ME*rR!;^mUQ6>_qoD59^L| zhOjli5KvN5@_lkOp@08|GY;kxzUhFnG&sOIRAmbv$<_p&PzezU2X#2&_Wipv)1>6+ zuF$Njk>LxBHMXza_y2OdAYWwV`CXg;#|OAf>*|S9-P0j@akolad-Mg~o8Q8e1V!Wi zw0%iCVVxY74JwltZspt3VYKc&cj;H9O&-VC)^wC?+VrWfm(MCmNNfSKNB-@p7z zSWfIXVN=5JGT%SnYoT<2-XD*pjd==hZ@yq?d0(5htuaqQN$FIfZ)35QsMR6u4a#B9 z>n=3RoBw6H$H@<-`?p_|%+vbw@_F+i_1hPY&N^SQ1UmkI-tERZ^t3aufeOQd{`vl;!>HuKG{6?R_4tY zeEJeT>SrG{36-#A=9u*FQ&(0J68zY?X5YKV&!z6ygR`gao4Fsg9#)86OpJK@JGaDn z+tzPZy7O({{ip)BRh2gRxU72>yTw3DNqeG#_Rke;U`H~B$CBEk-t6~YWpkN?haAUER z^hLqACfSXTy2~<^mbQvnffLz3w*BSXp?!Q4z0V8wuVXhAxOhcFFw?>P$zq2O9byl^ zA9itZQBvCU`r>NclICcxuGPLJ%$etJUMycn+udegl#MHR zY9Avl(r0_&h=^4~$BEqKXRWGkzTFx>=lj-a)rVh*S#9a|`?um_=g#B$-Ami2g@}kO zEbiFy?Raf45jk>#@C zCj56DTwJCs2K6|&mT_1oT{Yj~u&Qez=aQZKmh}1++|D@faKe1G%v{H+%@-LJ)T|mh zIyAz2_;|b4udo2+DE7OP`Y*-)4mmhy@kL1&7Z)o~d*{Az*t3Vx>(5gZj{|d=4u#o*j@D6bzhZ!g}sy$P1432m2yeYuLX0 zS+alCq_C2v+cld{{Y)|g`Lp4}c{V}8z_uSu(1I1h2#k zhD-6~NjKcg86-cai?dx6Tw*IN+c3eScg71gC8b3&DXiyS=D4|62$mgLwdX|3y!m?^ z7BVyNlrUuKzdv@D&j8e=aIsXnRr>l8gkv{Y-}Oz6;f&bw6jT=LrT){C-nkG`{3G)m0s098;d(LeS` z76rN{7H(Ly;m5)G|L-nZ5ol@s=jQP+>le#vKHj+b|NIM&W9zlJMRZnb=x{Bn?%4C< z?2m@tyn@qjzxA1V`~Q1zY1JX860X2yGuZ1q-!Iyn^RZJk+1`Bfs>QE!B0~9I{rzJv zp_J5>za`8f%5~@AReO??S!4}a*{mAAT(h>&kuLil`GQZ0w*@rHcylRZYo3GWzb7Hg zcO8Cd|GQ=eDlNoi;(Ne_vT0w>sicyY@P}?|@_zMjTANoM`>@|`!3ExRpFKU?E($KO zY~^F%1Pw=Y6gB87)oh&4R>RslttU2daz}^8e9e-E?xuf-HYr#&ZCQSSQ7)A;zQoC8 z%IAAGz6VY2uz10zuc^Pz-~#WGy)}C)gkGK%+qYvXL(i$3UpHO}cya5pxY^$i`q{HD z+FI&V+?ITP{deuY)hh<|euK%pEmaba-T4c$o<|_OD{Em{pD;+&t#AJSCGhcO{;_CaNL35QW`-FR!7BA+y z>#&3~ZcdAu@_ae&is@giA1yStKfvt)8uev(IP?Ge3TAMr(tN0~*jg469^byrF7i=* z^W_O+=M?42Z!S*`?Ef>jGY?!Q<$-!*4(0-af=?OTUBt@o?z+QRKB0r>d)d}s-ltz* zlyz}&NiefIp!?bGZq6d<6T%`^2Nuf-OyxP88+wE^Jrj@j_w_acbHL4Vp zE_u2p27dUW+!tSXSzUjR);vGcn%_6u7r$5*v+>K8{cG*N{|FX4ddb;ai>vE`rHkd` z&Tq9`cONX{ohy5B*G_jm*K&cK2PTyFM|Jk}MrjIWiq5}rm4Dr4fy7-F8EZ~id|3VM zzs>n^!t#E_71garS%Qx_g(7fT|!Ta|Q`e0kKHt0;C_aVE-nU z6iKV5jt-7Y%t7LN7mHe(`#vmME4^+5C`-BjcqF22K5ENXfQPMEG z<{wiWXP;WqVrH9jLKCYBm<0t>4{Gn8AHA|H%52x+>{Z^)Y`Yq_JdgSQqljJBv4mso zq2J$@^k29ypW2f5>q+bBKF!rxzuqLTUVLcb){iXzOTO)I*~R|&z0^9TMQ``rI#n4i3*3r?i%)j&ax&zbn-Q3%B<&Rr+c4*XVmNd*}IvNV{|MY(G(i2PCTl7oR zl}=giwu%qV0(EacEZRBs_zchxg%i7gVC7N6)X=t$HFXazKNPiX{`ew!cYJ*Ded*ac z1=GaVMHVcpEV}w8pwjW-qK5nOLV`16W7O;&BSZw8;R zti!M0SN2AW>}vF229?##amJXgwB(U+Ot?%`95qyROd1iJ2cYw-255UeD~by_5R^T zQw_YiD&?mfOI^&|!FSk^UBK7PHF4v|{Y~zAq7#>vU#-3A*}G&h^U8zMmVdi_ZEwDY z^qlF2_CJ3tcUBUz+PJ66ap8ISRT@t+L?`NP`}%$BB58*?ys@$u`9njmE(WzOVno*N zNlq4#HS|@pYWPx?<2tc5PvMe_u2qAL;(9%)$_#vPb>3h@pHN7$?h`C>n>$k`oG;iH9A&)Zf(hnw*K0vxHor_ z>)v!cZnAamWM!OxpW{bOTBYN}jt-g7C`CKTQti%;WtrLW>pkS`m;ETp&;J5z3Ec$+ zSktmo)@HX}bi91=|Cc1&uEsCdCwgpOB;8?>xPaNC-o9$lVMxUUDj&fWlYbw$WvtZC z&3^7}$cv7cX334SLX(`%dB;tv=Xd$0CgxG9xvS~RvJ23D(~0CM6~A9)SEibnUQt^5 z^y>>gB_*ZlpklYJ{g*gPm)1qeCFaty6S%kK?Kt%B!t%VJL&t?XJ8W`azk4oq#qYFR zdBx4bgOwl$EWg0$A{=n&_tz=Od_7T;NOF? zQzrC1X{ar_I%ogB2glTvzV9h~vHX&3Xq4XniZ>@eoy&Dkef)3REq^)Fvfhi^AN_SJ z4cr)5n6Sjl`;P^&$YN@U2y?5^C}}$3i8rf zWG8kTD2LT767)?d*}nJ!@4D4`rWZLu4LI*cNm)_e5KZfsw$Xb0C^ zaPQSc7}WB~v)Z)9>B)ibo36U52E~Sa+IPF=mnRb=%kF^*fmhWP%2%K;y5c zlBb{JUMTHRfAs#Xw1v_PJ(vA;_!cR5badEwb$T#cDTV)xwSQbGZ{niz;#cL#=v{0% zB}|}^?YB=~ci-eGVGtCYC=TjipU8-PbaZ)c3AgXP1Iv296~y=VzEe?El~D5eSN<5Gm^(T;O19Zv zJHLLa(z#uIe*?jTZDOXO_cmU1b3b$8_w|ZSzE5qFx3nfdb5T!HESA?)b6anYj6m{6?$q&26urtDKjN{5;3We8|J!dn4|lJFH7#-0@V>69VdK2 zC7zS{4%L8�AnG_101AHeBSjZ2P{xv%}`u*>mBuuYmgZPn!DA+h5ku)8JfW4Qhrp zWH52bI=Hwj*=+yrcJg9rlf?D!-*hYhB@?4Ff)fp_l$?D)Lt1+d+y{-`xNyii{IbsU zo9JY|Kt%ipXvj%l|9$YBvK&G7d!XjrI?aN-bP?H!ukXljoE3b^+RbDic>E^zyaUHv z@Pr>^?B)cs(%tR<)(FZvUN+y5x!Cm1dkaW0bmIks`A=>y@GOv+l>)nK>Ko2~E-p_P zf6Lyk%6i@0`=T%A=FW8Dl5GeG zJkw~dq_jx0i|yRo92fT|%-`MDu(kPIKks>Ol3b><`i{IX%j0)5l(=LW4%th)xVStH z26={2*3tMmw}=ZQVQsv~n8!7R1r$X73z>_~YD=#xNy$0U)zM*ceg2EWe_Jw3CGJl2 z{xx~8BB+Jr#4h0bq^oqb%*oBi`8zr~)U>DhX_hpnt@#=|R}9qQ(r{ihb+x(M1wqLq z(D*-p&ik+zY)YW9g-%neGLeUhGIaHSJE7;@n0)g}rZINl#(lUU;O-!^PV;3 z=5pO-NH{k;xB;9kxZGX9O@RZlm51*Nu3rDI_vNdfCsvDC9VmTz6y$^Duu9D%xUZvS zcmCg*%+_DWH&Xo6=gF{nplSM(^ z^4`7^>hJm@=GOH*eD(80wUB1|k9hfl3zB(Ue@@?@`GO4;91pf#I@Zl2$k}8JDlVUN zc*K5RYajf8@6?7X|Lz8YT8$IAb4nVbpVjWV>0&-XU8BT-FS-*{_&VQyf8$zkw0w?B z`IAMH4jF;U-pv;nT_&f1$9hV>r2MvP&AV`MZf;p{yjJTu1tq0f>)K9Tl@_&9It&_y z^WDmS;{}_NFK86*{r-a7Yn zVK3OWFL^8r>R>;AldT+{1+I0@ec4`jGZ zUUGra#l>aU&B-07r`fqLv@ZGLQ$GFc>TPqyb~Sf&WJrPXh}mLgqm}<(r?a%KXI{W5 z!un?|$V=d&bfvqPb_ugr;DK~dOy|B}m=FanI@rO3Aq$j0O}wof#vNlPU)ei3-~|hV zu&l$a%@-II6v3+64(z`H;i4wq_tpHM(^`J^IEZJ2^k$z!wcM-%hn@ z%L;Zj7^B-{pFf9p_R|U!Ym>I zTrqAj)4F(I=UmyG@)mua1{!p5cm_!iMt5GDl-&Qc znPXS;rfija``PY-2H{=7W5kcNKoxtoBm0xash}Z^s^hD7&*$B~H9zo0pG?{!W>8jg zFmV+Fjl_GX-*s*l+vQmNt^R$baZ?{CU8%Uc90FyN2YorueHUcBjIWsToKzsp?R+9$o>QCigF#b07QX}P_|vhOEXAGdJ3)G4s55!7@j zx~na{Zi}l57bw*W-u!m0d*ZdZ{%#j!cj`>+`uxb#M6i`lVU`l#e<49Z*(Lf@H(li2 z_50_x>(X)W-j-ef4gF0PSQoQ5aG~<17V%BX3ine`s z=%?^D@&$u{Ft|qU^!To8|M*w&Jc%1y4$5^N*C}Ba3|!W;WYVOfZ&x_ympCWulr%&) zssEk)P+!9}eZs$-5{G#aprAQbzL#0{+UE6t=k@2O&h)SNs4^=++o~a>O9z~c{k9$b zRZ*Xp1ZsiR*i7i?D7hZ8vnp9ccA_hC$CX9j&q>&7(;|g@d2WlpJA^=mN$?AXma5Hn zz>Vk3Q-TwZ%4|4PT%32g;A6}a*N=+Qb02JLlD3z30+&kQ89yU%c`@rjL#Uk8miXA_ zJO!mwQx1O1eRwI^KB?P7V2)E&zzc@$Q_k6*bupjtuWU<9;zH?92SIVwqF<-3)b!H7 z;`QTf%(NBm$J{lw|kZy03lcxQP1OXR`S%zk@VO*aQVHR%?Q$0#kzjUq5fqB5t{u z)8>zxzx1v~4&Az5Ns)bdU24bO*g?aWpibKLEt7XDc{_k#U(x%Q>H@ADw z%0)X^=RPpIFDM$bcWI|a2}1`c1t~EFH$He{Rl@RcNww8AP`Q$pv|_bysqN-xZw-$L zY--)I5Hyn__v*Q;Y=)AVmBRd-n*~c%E5B8Cba3Qq%$>5=HoxWet?e2m-gYm1OJ;*w z&b@pJvzE1k%Wo?QDannk%m*ib^C_Rcbz5z{$X!PlmlAbN`9Ehezf)LnWnb*Xiwjk(nmaP0+}a+M9sd>0 zCzt%B!@Tp!&E$H!`S(F{@t;0<6(neb^!|Ku_3rt$`L%Dq2bQ?+ilbsi?L3kpu$GqvOP3%2!?A(6cv0Ok<@Z^o}Tf4QDE$tIj4|UJEsPgB> zPFv7wG-gnu438DsaDi8&KQ^o70`HRjkMeUjU*Kgp_EKGp{i5KK`R^J9cds?>J*S}L zl<}-#YTX^ljk{hNJ8Ek4>?+dxwC3V9TQlgggq#wF4)BNwQ{W*+ZJ~*czS3_V)~PqW zQ&5_rbApg;T-3+NHEAhR|4_R(T^(Y#)4oH+P}*ov>RKfgGTkmt{c;O?levceef7GXjcguv;$38f)*GVUSM3JDlO~aGR4))BEhxYFk}BM zQ0I46599BjC;pXcE45cle_6!!@}wL4j+Gl8Wq{frn=dd{_I=;j*|BNC;_~Ug9>>>( zs>?_g-fa}rUR3z^!N;ducO6We13~qg;Hl4d=PLdD9dpQML;m*iPlk?4N=4Dd`*CESh!umXoe5}}+&2*`hJ}k}Fz1&-^J&~<1*e=cQ<#W)``v6)$G$~jjulU}-*;ijD|NQY+L+~lP zs#0m=XDgWkcHaYY1+^zm@P4kiepYPSLg5&5gN#MO9@T3h4U$_M+1Bm9D`aC z5MRVal_k5se_pl0Wy#uw>&&*kzbN1T{jeUN=wy$1w#OcR{+JbRvT)BYhl@+)D*L(HF7obtu*tWc zZ~v9suNPQ%bZ9(x)l!!J^!0fFsKDH|IzK?=yk3)AiG*Sa!%O`LDbPH_6Ms8Ul>i#+ zT6Te#;n^Nb))#D-CR_c;&)c4K@ppVj^b8TDMQcDsLq zGvBdp&kYy#37}MP#D#rA*_Foo*A$ZMeq5P;3z=g?zKBm_1uau(K)IGrK^Q zV4Sp7gNCybxF~Hgf6Od%^gPe+cjmVb)vgo)^(BhJ?f4@)JFYBZ_Q-$g`qTP^(-*lt z8Y;eS+*S-r*Q$#;ftQCd95TLddC$Ro!nS+gO_N{G3)!*OxHm&l=@gr)%!W@>-tLMln1|VD<9H!6%OQ+@Ku{qaG-0M z#@)U9Iqy2Slx+Cou>JD?SC6|>|1fF`@`+xSkd}QgtuozwHmH-@%BLVW-+xxhqxH!y zE+rDqFPD^j-G7u(n|F%HG*CL5*UG1GN+9k_M@Pq}OP}w~72Bm4e&_GAbuVhG@8y76 zNr8T+zB6hI#y#m#+ps!6U?He%UBG-oIH!ccE52w3s9c5jH<#%C-kZNe@6`?6^=dz* zRFqD!dRZhqwY(|6(Q4x@P&B?4v0?zN^9C=Q>IH9&TB2HdA^!91bfr(bJkGzGZJFR2 zeC_*_=7|sY$w}XJbWu?(fU*Q1w_` zwk77_0%ebs&%d-~A13>{xLh`x;&*EG?)jYgH;U#vZGW;Gc}m-7N6lR=)j$7dc659? zGtVVv-uri3F3Rp)lKEPjw}0#VaB#(%VJeU1VIM`#T{2&#SkwXK#OB&i~U+NvS{J5TmyLsec_)Ii}}l*7!Ls6lU-# zVaNncm4OP{`Hiph!`c6qx_l}zoZC_4wB+}*`R%Sp9NQ@jr3X6?TTR!0xvjS~8dT0aLr1C;`_VxIiI)Cz=TufB+`6Kpj`FxUNSE~!W`&#z_ zJS#oL5!^6x$-6bVqx-|oAj$7j?e}k}2)B6$&bI0W2fSQdpzqE9{QjrhoC&M9n+QtFG8_`Gx>Oz6UJ*U{wxElP)5x`C%UW{?%$f72U*&Pgv)aG|XmFbp%Cm@C$}2`MULPE+(Fu zd=W2CfYx}5ST$%&){EY*rL-r4Ls0PPMDR@UgvD=8UzvXxnpOAoGKam#=-K|;C4AUy z7vs}+`tteE>0eOie34SZ0%;HLZx!$N=)H>2e<#tkYqFEe6hlx#&dlqHn5j3XdC!{; zu2#Q-Sl5k>ehP25E@E~7EoyS#`<-{=>->I?d3!l#b?nJqvVVOibJ!Hk=5MQIidB?4 zwzIGKward$=Arh&BePvxK4l%KQ<=-LP}-yV=dT^}x0$WqAJhphk36cKWj0(2QWAas zJr>kxQ8?8E?$;}Af8(ttvP&_1@0Huqxp#hX)&KKzak+eyadr9Q)-{@wZx@!594l}R2LAO7~V2B{{Fp=z6Ey-H)J-Oez|r| zV^?#>r}G}0@>em3Db@UGJ{IwUVLOZeKlQ`$0bS=5{@#4SV6{Z;VZF4{qQg>N>Q7Di zA~H{^+cDpDxb?V0>**p6P_yxbZne&*}INK)*T%uif36Se6<5r zD$``-0zqR$A0DZgNLK#dJQp;359(roMuYRgdylTA>`SxQUzfE&@wKXpi}7-oC3+tu z`64P~%iP!a%}h@D`r}FMN5yCtnS$2UTzP+LI3OcdpaS=Vi}{3UR~Fur*!}NY$CHcP z3p-C#yRoyox*WP|{@;elZ=uYTy!)38tfsi63k242zK_2yGxOMSNy&E#`9Uujwuj9B z;tv`e-M;uK7x!I<_uDJ~PVMXXaFor(rTqY-_Fkmz8mG3LzP5H#t8Z?|Ij+cm!{1+ z)4Q(QY9go>z3Ho{G;89Df&*IVDdk7H^g|YR_TcCqPpD&Cw?DS`^ElYg1~%Wj5=(ch9YFc6riuWZv}I-)(-}JrQF6ZpYETM~gDZXTHL28OKi|oSL|JKh<1otXtRsZOnXI8>281+ZWSmRHP=j08W zt53L@FOUh11m#swyQk&fla9_jh1{Ey_dcAS_lo2F8xQN7-ik`Iws|}-mhHAom}Ux6K?(AE6fmh++%~VEa=)6Jal@*=QaQvO#_Was-LZVPi0bivn^5=J8lyw zQGfWTrliCdQR#9Z{=oa)pmBu;jnlKhBL+834CZXR$oun2{kONF(^u{XkA!du3cfrl zIC0l0Q)!)?wrftHz1Z&`Y=CsIo58-cIq1Z`z@}^^c;W|jCe*|GT8RCFT`Pnmw_8e{ zt>F^9xW%OSfR=e`@ewVJ)YgMKa`TH0UJT`$%K+MN0a~&IZXBxBB!VI}S1|Kj6{q0E zBT7m^*K0qYmn~p_I&ofmxO?#LGSE8BQ?`;48-yNyuP{+t&sP1X^(knad-(-MlZ|Iz z?@#26=ka%`)S338@Y~ltfrlBj|AxXA_{Z6Femau+I_##=x6hJFN{i-vaa%M0`}3G@ zLHYS#zM0JiW$rI#s!FC)v&}RL+TU4h^MCxxX9=kNuO}| z`IE)-bE|C+DQYVz2?=_;ywbX!v*Dm@Tmq=s)cK_YG|zp=fqlZiTXRCBcQHQQvbfu_ z$5VLYMMjR?*q5LVl>YW`#IZrzgR+n_xP3#C2mnXlhpr&hfC#@FrEN{5byDmiglm)|{h-jT(4 zLuT{bJO4g;m9PswZS&!cklp^{*Mfp0vt3fID~CtFVB0PdCX)-AW`yjrn>Fd^p@R`h zr;8uViB;Y)uZ% zlaSnck&{8OgaNcg8QkhPKI>F(viTjcnXiru2%epwtYiwVs@^F~`p5hKvc;X-OE1W} zJjs0-5$>$UwuaBZxJ2fYnY8SKWrw;J^FpRGFI>rq`_CKgV)S+E#14;a*}c0%TwkvF zDYM~IU%w<|`j%fVe%%FL7rjg&z6(MV*=?_W3}d)Mm{pI5zd==`?5a{s>0 z-mL^`I2Xn4C_2mbuO?&Cul;3hop}m>Lq&ce_2;GQzPRk}&2z|n?b!;NuL3We{|4%H zO|zZM|L>BoEU$mQbjVCkMWtC2bd^dQ&zEQvu@2v6$ zr6kZMpDl}*eKh2q*{7gn#WS_y{p0kn4=)0Q<~q9E6TSEU#`#&s z6?+2M`d#lW1&@n%T?J)7GpmMWd7ppfySRdDt|_6QahY4b+pqsU_G@2r-olfw{lB$A zoT^ZCI`ws!rI8tE;ejOo`#R;KV|S9TFR=EA-&o?cP}<|kee?Zi6t$HW{dw5o;rnzJ zuV6v@b?`LZ@^^QWKx0!0in+uhmmp>^JuxZr=A z1$I9)Q>`g75=@OxxndqQz2c#yw5(If2FKr_Q?u?Lc63*oH3>Qt_rCJM?uk6|v%p1s zf8mdsI#A)0?aY4ROHSPXUbd5$)g1)`-`&3aH7e!pvfHmx-mpeJQDm$?$OP$oblfR< zxoh_9*8lf~C$b;8yQjuoH0dwO2?V?F`FG5t@nVM z?DxvP@^*bNlvWa~+qdLo;0uN+NJ9c?i=`RPR2Fkx;9a6VwX^xof2Wwgzg9M~soPEJ zJS-?E>*eC|is|`w>j!*Afn{!M!se!XXo7lIi|cP?EtZZ6kIMlKgm8g3PR#IZ zWdH3r{{OeH|yNpq**Xpj5$Ub!0K9M$ppci2%1~ zKdbs?K=yClstSUxG*GblJohmun|i0da=7kVt^9hM%539O8>L0fChX_(`HK%|{ZC0h zk`=yw=G4bQ?>v^IsGN6O!+vpK`IwIvRie^ebOO@F9Ol=ZVWnopR5=-aUV1Z;rj7 zei;3B?%CRvB37*(9cgZz9;;gQJ%jJ8QS$#8EY~A5uuk2j7 zJOA_iSG(r#c2E6ik|x&gdoOVz^PMN3#m_mLgGTEbj2=JzdcT9CeND%S#lIfST~&HK zxm5qQf5Z#1Su^J`_N}Hh)c$G=U_ zE#a(0Z zq@FwddjCb8Wc>mKrB6L&>C3;iKM%k5_SKCw7j#XEH=lYAT01q*iCsW3cGtUSD?Zp+ z3pO6T?2s`)lZWw5#Gibes|Avc<8s+srD>m;kX*j3w7ZfytqM)NkqBd4HS^amRbKS6qr)Ti!JjhrJC0H(&UJ{^@9-10Tm%}>0*!m<%OAh%@*})mf6|G9ouB~#HCV~pzuNlMlMniH)cZY`Jlazs zeiz| zcF=lE;UJ};;GJpCEO#bm|M(*yb$!`4M)x0^Ih6$WrFE$-OjgKUEZyK!!jO3$v>Kir zz8XF)o2kj>+_`55*H>>aFZ%!aamg|WIk8WO19h}hUqx(`&dU}N)DAwbyy%XZk%7R=$gPX=9{AS> zybxRDBM~6|#_{)6aHGY^#o^@M^={w(Jv{z6_NDD*p6TbDt3V4OAtNghVlL(2?6pZr z=TE-3izzAuwL|8LPtKf%h2^IYb9e{PfXbKCW`@_WB&f%4dwYayl2f6Y2&DxFi} z!3P>q+CGVCKd5EjB(A=Y^Q^9ZhNJm{m>(0t>rmhe4<>Be^w0FMw|S}An%i@F(tg{x zJgMyKxWaNSKcB69LYk3%(pK}dv_CVZLcbg% z`x54N>^Uho@#x;{I!Up*eG6nR|NpZ1Vo77Z(MewfmsX;;ocrqz$SzrUrawY9I57njMs4mQR^T1S-`*U| zeqVM$5WJ0Pu~F>-P&C&(53IzvU_B5YDN2(?RVvsaw}K+x|k7M^h@NUyscOb(icb zYIcH3k)x{F`FSD}H7uGtiehwZRr=rEyjk+K+u!f0Que_&q7$d@1uux0wdcgn2RGAS zUE8+Z{eq&4i;9xcStGNAr3Yj!SO3pWXKDSOnaOniefQQykd>Z}51)I_l985eC<;k! z1U0X2zF>fj?`Tdx_xQ@cg8JC+2Rhzf`q^>9dKT03?blh)<(FSjT(bO3f5g$Y9W~yM zS8JR*{xo{sJ@7v6j!r&>w<%BCLpMt2ZFX6rD1BT_$v?a3-HxTp(yww!%Q{WTwcWpe zvEtQz(F?6RG=96a32ob~8TI^+sub&-dn|J%e_4D1eB4ycoqo_E%Bbrim44 zu$QPz-u9u|YJHL3ug~2Ne}8+E_sVk@Jzahk zxh&BusH;}q(QGpPr{L-?CFRG*m)zO3{=Azyc)c>D@1WzrKA|jR8=uVXhuhKwJ5yf& zaCsuTINAT#8c?w$ILGOU+VT%49=~>D7dEqM>DZ)x_j=yjzkm6&g?1C802l`D4@?`3^=LLA()E-#2Md-HPh1zGS>5li;3`?0~ve1T0_C)QD3e>aD3`3$lWlz``se;j|F@%J$Njx)`m4F}5&{q2=q!59t1E`JSE`^YUUKD7zkE0-X?1k#fb&e1QsNoj$1B30>-;D_wZ$ z_x%3V)9?A{mOWDLxGXFf7yRJQw_OK*zU8xO*`v5wIc)VgW8*5DQ=ZD^Pp@Cq<;wdr zM{%huWK|&OaJ@@iQ{M_7$=h*OFfMhvhJG)fnylc;*O6NnElj`4#XiTG#W*8BwDFWe z)swakqth?%|8m*!d}nn@h2XqKJ_X$yFBrC;i7nU&Z5}_7P4`5Ugg5Hr`PPw&wmJTV=K~N-^#Bh zva8YP@%QTQtNgcZxng_mo*Xz8ZCJL-`ug>dyEEh0`(JDUEp&$M!UYYyT5npkK=f`y z(XER|WsWWByzzpeW!t(Ej=K)GnrhEly#Dp~TD|Qx`DYVE1LHQjE>SCR1m!Oqwav<5 zvdn32{q8$GAe-D@=6|@gTXfgKTvcCj&?txO(_@}V=6BM%J?_4EFhP2`vJx*(d8te7 zQPt1YVQV*B&~>qT(eWqZ=+(A1&|0U~jLo1OdLv!1Y(H$G4~HBJvxw5#h8Od%=k=jpvq1n=A?(t1Su~cQfZH_MdvwF|}jn!^eT^ zR_dJF|Md31CrqH-mu}#lsF(VRKBsJy&g%yEvx>quuiueUcfbC>S{I+E;zB;NQA~U|Us7q71E})fyVdyDQ{MgSBlrGI)jr&AZd_w? ziV-{_rcqtDzkL0#6mRddhpWGveP0&zLPkkRKTBxhtW~?OxnEQ~@_UoXM*q9pT|tWr zKqJTXdrv0*Oq|yj5nFvNCi&hPrxLc8{tKA}y0}5RyuXA<Nbny7~j#T{GB7nr%!xT?yOs(k7wS#w(M&i=j2UavGg`(m2& zjCMW+U2r`IS#Egi0wc@wE$jZLMf~_7EO^#IYwnbF`^;y{SLV6;?%sUa>AQemO-6&b z|02*z&57YLo4%#FyS!?t&+B+$5cmFdSze{D?!Swt&%Y>hnZ-@_H8#`urUNX6Geat=Q}6fJyZ+a0|4omUZqc7}zPfJydC)+G#Ud{gR+&voi<~^UXvl0_R33a{a`B0- z6Q9>Ce0w{qDlaQfWZ#Vbj3`j(9J$&C?Yq4PBWoY;3f zUC|#e30iu6;|0T|_Nf17J34g4_U@l2JW(y^<&r%&H}3p7@p;&loQ?B0T(Dizj`M=sM=P;LfPdYqyJYV)~SEK!3$HwRmn|z1d4wbmdM&~dWDM?A04Q%%+ zmVwfc(u-*yL1p)X4wi$GOB$iWYe7c8Q$QorpanjOiuHY4LNHe>9aZ+pK$$|n_fmsu_;bys6w&)%qM!U$Sp`PyU2!}Z(> zmq2X>|9}?^Q<7J6g9c~wuE19TwenfaIUQc^zW+=2xm|PLW`f2WCJTv9{MpETOZfrc zslb`i8(&F3`J~&sUO#iO@SSJYt4@LPfKCZ`Irm$Qk_ONq*`Ab?1O+9f&((QZeGS1K zMW-5W33%o_oggZB%R@`^)(%>Vn_isA+Cze%BO_+<$L!2`x%R+JNCSK zot5ZR$_w>ki7X^oU+UeZ~ZHxg8#C^WN2pQ6T(YC$t zM3+Z(Sk?J=yY8LHeK>FSEZGvCKs~7dX{CLOCd~qkYUe4Qa)0^H@9OXA?Add~>#uj@ z&1@2|YS@ynnE8%~1}CWK1U1X|UHO%7HGBTg|F2TsbUku$*|a-(^VZt$#-{pvUafr3 ze8LqrCfCZR@M%|b+Zv@CLP|x4U)SC}H_JSZ&wS5@b$Xlrrb^#+zB1iQvxNEK-5t5J zzi!vnHT5qqH~$JrS>`T~bagnieC_swx+a#O74+X9KmVqIyfSps^2M*N&oea#oj)4z zf}urOiwQI$@z>I+8vK8m+st*>$>sfJ9VOF7?puo=@SS32m9!3W zoj7x2a^O19(t2iDhg+c2DnJ{nx?1@v*5BaW-m1OtbE)7&)dwOE+j^&X4<^vcO2f<-5Ss=7}Lelk)dodb083s_lgvyi~+UWV|i)+)8<+UeUoXjVf z&H0r+Kl{%&&E+oVW*Aq0mE4@(e!i(u(!tu2K%$?bhrSoP^d>r5>omUaCP&!6T#LmNCIQRv_ z1W+1Ubb+y5X!pZy8$M|5b}3lg+^nSJyYJDXpE4Viimor%8_KHH{J9-8CfurVed%xO z(D(6jYd*ecn93ple}N%nVr4zYFYeP#FZe)*W=}9*@%8=|my~@O7GL~aZW>Q0IdX6N z%9j_Phg~T+(51E*F`_rcF+RS!IKo8=w0bUb?cLvN?{D2}wtr=5a`Ok*t4n6uc3QkY ze{uJn9l5h(|Gz0NEq_;4{IRcbNAEjDrBedlF0WSA?cLYM95yesn@?fyRFNN|prd!y ztQu?A3^6e9qDh9woiwiy#(q6flj;h)3$n0kYs*GOmFuS?zR6SuWDb= zb*a=c`f+L5vLm0*-+CdisOIX%XUF?GuAJTX;Pq2&pp_8efBQ1dpCRd zW-bH;`hp9LdZ3|5=~PVqbk*Zj$jpr~6E^ZDymbMyQAJ{U#2gq^ho6$tEIx0SS*z;y-eW4ia0XPn zM^`r9&(>e3eo729c60ldUB+VR04uh(Y{(gL+xP78-FV8w4;Iy* zj+EDnl-2pXxVYn!=jIL*R+;_ZZ;LJew$*f@b4St1fa89v z|4&uV+GCecdgsw=P~CM9v`K-_>X7bBmvT@ick@NYC%)@#_OA(a$!fdIY-Z8gv1!5P z^69s>{eHRY>sru0vPCO*?0FXjU8n4_^F?-cerK1*+z-EPl>DpquD_jmbGvrU)6MmB z&NFIXy2*Wau2S-2IhXdwSL}bsJkBkP_RY@EUt&Jh>AQfSZrrr_!u0l98{&O1+gYLqZBgy&}}nOQNYwD2kH z<@xiYtTk_j#~bziJwLj-vs{iiZWnmEX=2=Qv5C9p#hYALomYR2>AAqg>Mws@UhnO^ zZmugQ>t*#qOi5o_((A@YS$&;%IX^>V|7%-*JX8v*f&)N1;{UKhhY3&YzVa)7)%5xQ z{Caz0IXgRw9CR+G?!URw^3RiH@z)@2yC=4LJM%zmTQ}E#_|eN})ua(#oBLMR%O$Jj zv69QYi}R(5qIQ2bkNtLL@#oo5<}Md(U4%XP_;0^p`_wi+?{?b!uU9TVtiQWw=d-O5 zXFvhktE{B-d3D`gp>@AXyLs~#o-qV1S&rX#C2z5GhY4umf%Lh5SN*u}G6>DF->uQn z2VT`8L~;y+Ox;eL|Q{$$^xkb)URLH@#T1tLgvW#;b?Ue{`9d z*6k7eK6WCrp*7!r)R5fKNjd) z!jP%BUhXl6NI0nIh>QC>bHSPdv$g-joX^hu|8qje8ZklUJI*eb4W{^6R9kOfSM%`d zeN*qeT7Cz;)rg_SQ>F3I)!oWUrQ7xQtO<0PmYCh~q9Ey|;>K@pyZ+RiF6LeIzqUZN zre-c*2mkWi66VU&hpWG@Z2$gl_3!V&ew?udXD*)p7w+oHao5E~CHedQur805!=aX^ zK}ThledRsXW?L(^tJ#BD5p+Qi@Q^v8P`-UoH+4uz&WX2-diu&uB!$qBK7jS zoY;L_KP@cva(U&(E)-b66}WDLtJ`7Q{TcJ_f9`(9Vb#{5mVV*hDy#Q@D`R(M=YtOR z7k#;}EIZ-$<=_+ zE|bOmznys3clIoQ{-1|`#N+f~ODLSCF{NqnWlXagKHNfYWwjTdfe&N@SS4^OM0-9ag>fI0OU+T8< zomis(chTmD|DHeUF5k9XwuF0PyQR`46{XLX39eRJGd>E2%@v0)G(zC{rPVsRE_Gq_rV|eA6U1^roBj26-1s6s zWs$K*J(sM5<B}nzUNs#m5|(vwX`kk$o?8C<^u+ypt3?5cOU zX+FcRt&7_WbdspFtiu%leY?Jiy$2d z=S6MW_3g?dfnDtpe_jy6Vj^>O_Zzjg2r@oKPRyw48TIgxZy=m-9 zM{}32;@VtRx}d7B^PS?Qqo8T4()~BDZ2fpHt)!dV2g?xX;ayG(r8U0iME%!QRWe;( z`={Ew+xxkmu$`RilHL$2&5bVMDe>2{eb?XUzx_h)l&<{z`eg?h!H1A3oHCD(1r-k6 z^; zFlTx%WZv{}7khPX<%aF=!l$3f+w&mbYdY)cKQC02?z*}x(G1vspRHWLH{;p-i`-0m zl3gB4%Z0vRX#ll-phszZG5YZMw&<=zHKFf+?g>r&x%lIfR$awQ^K_LS&Wm3&=YI9| zS!tlN82u!-Y+tqRg|6x0jrW#;#+KVT&Pu+zadXT2hw^97w==GOEEW$sPlKCF_QA46 ztAs)QfB%Kd8ryR#AF`iSGO{e+OOv-KG3x(@!p(Z zSSNA?=n{ZetHI5I-j0YHLW}+gc=MlpU3+&T`>nXy^*@dK+iYzTRFy8Z@hRBuxpf`1 zU0U<-zFnEYPwLlK?|HZU_O|PL#kwOw#R4a^SlAtXNM^$+d*}eFI%uyo=nUS@Jcaxl zH*HfEO9vn=mkJU24RZZyH};gv;q^D~R{UIFl@)h;cGwFsC0|#Ul)43V^)r~mo`|v< z+Z|dXRQybG%4MzY&-p*M+3$4Fs&tK!n%>I?9)}j?mYu-4asHo6f)jUj{oj%D^2LJ- zT=9j1R-GQwi%%|jtF4(?RJYNnDNk|Ho7cbY>PxN8wwKnOQG2Di@zhPWUF|1)LCeaH z?@~UwcfHxy{hwNT-xY#R`~=N&nDg>~)#nfiU1aQ$Z)Vj{bU*%D{b|98AN~X%)=odW zHd1lV2DXW-ADxuDd4I3%rk7tcCV%*BmwNLK;&Pf#cf+sWOX~KxE6c6FT72SFB_Wq@ z0#6tHyE5VP^mThD%5TYw(A>lCXSvLNZqN(1Q?cNJ_vNBBSeRt_$es!B@PtKQ{pJRsYW4m!K+xy=U12@nqK6U=LV-ZK~7#rW{n=4Vo$(?mh# z8mI}j;{Yhl_`5zdYt1{c4K#K1dw&1*Kd&a;>=pmx`*KslO!>JkOPV`6ObT~&?a>gP zfAlPmOmoqV7qk1E%y+EYbi@I2Mue}6i(B?Z)+M5#;{1kx-OV@JdaEYN{C=)9OD%iH z-rBm_ix><|7b}N->%M%Eot2z z%^hb}?b@w+hEdx}0n`B9d&N>=QuO`Jg1*x`K}T(0VAOa%FDer>#eOt=ZysbRq=k)N zd&)xQJ72EGmzl@?TRm^q^>52WceQe8C@Fnr{`&i{%m$_Pvu^I4_1P|iW4)Za@Jp!; z7dcS|b5)|zR#_G=Hy++>-ya$aCC6?NL=sxzS za=Dv!R#rIss%JA^$Sv}b_Eb%^xF+lQu6FCndhdI@;j%r>M^z@J_ZR-)J`F0<&O5OO z{JZ&Uy7Xctp}(_@{}*@m*s7%}RCg4eby#$|u6Tdc=BsskB3)z(_@2((w5SL)ly`dP z{Oy93H^Z;pd(`3aqpx-PTEU5;ho18b`kuaa&u_P_;e{{F*LVd>xC6J9@~GXuz&pjh zZd2~=zms!sA6B~bA?fW*ZHhsBnR+^H>hI^ML!bpIu&{Lp*0bs<`?av{1OIm#^S-p!|L#(Adw0i;PqD|J(B~T2QdF zrr_Xqsne(W_pVy7z=Xq3>C={V_sp(d++6!K?Dt2GU9F#HftEUeP6Mynzkbc$qe2sB zS&PMOb2)ZwP16ZECH;=2?JA~5LVxF*$H!Mb|2AExq@P>Fs^Lq)AXHYj+T1xKh zZO7O9o_t`M2%4(#1zo1s3_b~N>h^eJsduk3-$_bz{=2K`s(tQPfv4@Rb`5VC&}sB% z8-M-fGi%i-PBTloI+f$(oJ%}Q1Nt^yfE?2MoG0$LH0UtWNz3Xv7fO5RGu!WrT`0Xt z^XCOCRVCBZ`2UB3{;zqJdPrR@xKGko?d`>sqSX7b*-A#=c#Q=wDt@*9A5r}ObH8ia z{O?mm8&5@g*SM;_P+6o|oxbOlX*^PV(d!XaYLK>?;+Zy-FUK2Ij)%fD;wf{LH z6QBLx`e3#qAp30At>+*Ed6S@Gnlxm@h!mv1&)u$^*W?COW~Y!gjTdBOKy zJ3GJg&c+XyR&?lyPF&q$Z>&}|KO*bIPw(sZJZ?L@KV`jrf6C(OJD*P4-+i59^Sk>6 z57TYXuFQWjjix#GgmQ1}QT-*qd``}v`;Yshi;^;59z8UlQRu0as#3O#O3>HYV(hb> zYNB)QNqEYTfPHv!eg&JX1`>;vcToh;DkPIBVs_3Y%Bj+R-NsmL{m)&{v8nh>@sgM|-aQitkmr^k<`S__gj6Mi0;HckpRXd$DP9b8WWSirY$u#04g+d4WqF z_^@?GO?+haYGtL~a-BU}B0wRN?wVFHqTM)C-rM5{MAFj%{nje*u z!&T|~|N1$Di@Zzr&pVjd3cAdt{yNV>$iW1uev#mXFCtb94{s!Z7A)o7e8C_a^W9;6 z>0Rc%rr&Fd&rRAtGk#0bzlp4lCBhd?TwPOA7u4-%eW!40)y#h>Cr`MrJl*ic18Hnq z#%@V7=n#S=`@c(-l^$NwpSxeJ;E>_z7Jny|_Z!`R{kq1pcbDm;nsm$=`OkC`Lg%z*0ML1WoPI0O;>&)x9Iz< z&~xXno9qkhTOm|=s?l)u2U%|Y+({cJ-c-GypwtkNb>ilmE$-L%ZY_TLt2USG?qWuE zS%-+)l~bI|1!TSM2K&3as{EQ8>}O_I|Hkm^!9$0-)5S$+J!ZqXUg2DSb2 z_S>Vu)4+?EJ?j0EZdg8ZkCrWAKeRRdEbl__LGBC>JGvSg^AvO~T_2iB%PyR(|2I6` z#bwd!b(Tdh-Tig;WQFat=kQaS#p4dTcEe~x#e7~}#iElw?rWT8b}W!F+kM7KeTSZ5 zidUxKuBI>3`XA>h)i_MMw^mfPVZx5*-=}p%q{jdJGwFcf=INa5j-JJfKUS2eh(%wn zzrPnW@%VJwJNr9=q7ySp-?n;lrO9vA39!7)pf1?i;jwG|U9az3*T1ZMwvS`iQD%z} zAEnA~630EX@_uojz96||`<`FMj`ub{J^ET%N$BT|ncB{sKlY_AO?7WS;OQd3+^J`6 zcw>9o;$6B*dy*7i_A0LeZ~tAi^7pA*(Yb=0>z~aKecBmO<*{oL=W5+&YknraZsXYH zZoF10sJ~BP4tT6wp!a!O?(MhI+j8^8CO*4r%6;asm$%-(3WEs!nsd?<&rSJLy5rQQ zjha)OK}S%$vp7rM`mjX6i z=|87nt69>pY|iGoEB7>%&Yu7KV1=l>#i|6)4L$X39^PIqVO<_38!F~E`zjV)|Kh%8 zU)ipiJ9$opF0QWvo!kIA=#$k|h2xw8XsI!1P2O6K5{95ZegFG9JeK@<9Ut>bTQ~BV zwkBWGsx$B%>Ubo04=$V-}il(@b}v1z!Lt8DLl(2r$H9a91{#x;^*FPoOV?~$=mgb z*2CgHjrKR4-*3mB{4wj=yuTB7Zv&O-CaH^=IkNqg&iyWaBKgpFt=BO*=KP3{4==wu zZ<+OOk2@kea&vsP_ z`nL4*^k2`K$*nTT3|e9MC!IQ2{R)wx6-CZtcud08NxGT3J!}7qoS* z!{hSt^D&Y0{di+S10wR0R(BYwPxbRE+Hk&V_2Z?c>u>eDw|@V9GP>y~tIY3Zpym34 zXJabfuI=kESr=E4xfyg@l%Y0rxQj_`wXorFNgo%h$;{bxH+DHLthPDe#x8ITGGM>x zWyXy?s<$>oE>aT8`}ZO9>;EH;+DhARDkYt~eK_=c1fNmcrzX(Kud}Ol@*K?tG7o`* zXwu7zdt|q~laN?9H(JgieZsv@pX`n>0;8?|=U7CYY)B|CjjmAL*f= zJx@Lnb9Y(fJlot}r2bQ<#*Wqw50@h^>waA8=x|w;tsfI)@LQuVGVoY0kLsL1S5z>uB&c?e18nGu6-Q|AD%xQhw_yzb*9$`Sks{(UU^R!d}oN84Vpq&kxK9 z-P~c~E*2N1uO!~>VY{v)qbO;mVtPi3Mb-6h*V^T7?$zyj_i>W{zn5{@k8j4iqzjw? z4f5CUi9T&uI(xgz(*=&JRn_In;Kq{_l(-s-%aZkb6&`nnZ(2oh=VG|IW$bniyBJc=6)Pza8f59|j$>?xLa;^z;36J;|3Z zW1r0r&F$zoG3DJl-;Z{;c>3SY{$$8^bwcOwsqL1>6mKmn+2*rF_S60IXZl}TzuEu2 zu>b9e#?v4wRimfx10luzEo+ira<@%FL;^{*d} z&poui+j*a9^?#Y*-`^`cw#z;{czESsdy~T3w-1MA@`Ve6ZbR$T*>go;;_62$pG^96 z=+T3N?`Qw2-8%EG{_K~v_Ycb^Yu#s;`B(Gf_qTTIV^`kY?mqM7ck`J$+vo2{%vX9Q z@|*eMbE`7@EuW^QFAlb_5fpsd>2a3n^OuCuTGs^$7vDT``g~!#)tT$}Xa1|GJ|%De zQ+(^*yKR^A*{sP2)%Di(B*eUi@_8UG7CqnMoZTpXL8} zt*+f&fA$4z*kEAsO|CD(_qD{lnv4G*-a9C`y7>mE)LR_-J*tdNs{;%?@{c|6RexV| zJ=!A4^lb8(58K*bALxy^>H2WnPe}{w&J)-FEnKwkH6OYw$uj2i0_*nmH$&@3ZLA+a{9%KqoCl+-#=G5Y_jG3hxd*NuKsxb>$&6K zkACawaA6mk%fENWQ}aMc>3nr1C8bl^*x`4ox>(}&b^-7*;F7@B{x>si7tY?O46}JzUK5$#JW>Gkj9QxFHQ)* zs&!R8__kr$qXCid2-HcuMW9?T~ z)~DTn{x$t-YP#fEuj9UkuTI*1%`xlgm$#pmn|krZ?BD5tH^F>V+P$WFvV=W$+ z)ZwwWBSz;jPgLQNETQL*JEnGYyz%~Gee|D$$uy~~onKzIFFy1zLP_b=z6D=T`nNn2 z6Tdp`7xTiKuB~eBYt#-1u6}v2KSEP*ql;T~>*7$bgIrXUw*NmJ*!%xe=c&~9Rm$#b zmR0sh-uqS{yF+mGvPA{a$!zER+6zC2r(d04UUhQOC8hh55@yzC$)6EiojK3{x1jdb zYj%Gw>``V8(6=D`f$yjeac~z zWJ=sFzkKoHL4tR}w>K+3&;S4Q%%24=F84xyb{4yI@h2i$#)Y^J1Te zH)aT~p182ZSmyoKn!5kavh{ylLw+bpDJdx_>DD}$QooM>+|Lh6`}Zq^1O%k@lt=eP z$o??{5!)&j-S*_?kJ{+++`0Z<(RS73a8qSaX6L-K^Mg=w{hsarR&06|B`Lk_mv&!- z@1vSZt0dD2a+B7j+x^8Ngt<5c+cCMX zQ7h!>i|DO>F?0TT!TB13nSz4eE+JR<`db;>X@Me6Q1Iy#`F`nq3`u*kzmfWy)cFJ+@`v zCv-%xioe^uydrGToa2JpAm`hJ{(S4r`}4JES?#kab~BX29$(Hra!ODz`$%C_o3+*2 zAIkl!BtrxRpRRiFhFfp#^obW;{~dbt%fa=--SLnFV^XCLOrSANLJJ5rzbnEI#hXFQdSNtvbcL` zp3H`Sk6Y~{+kF+4lrA0l|L5*;XZ2}QTl{o%V-=Fct4)smWdOy2gv>^%?-zpY=c|6Y zeo-s5^#0^;Q~Dhs$+hzN)A#dtyli$Cor#`WXDuq2ed@r?%q%tYjH95`$#0)@^{V}% zXCc4t$*tYAtU_$jp2OhKQ<`)tKR&JJ%a?1Q67Anj$Kpf$4?3>?XiyGY+}zx^e#Z@| zm#?#BU%uYXR`U;6x|Hc(Q!SOt_W`>pEk*|)B0Qg7$t*3SC-Z&85f$u-~awt-8|g%#OHvJ@_+ zs!zI`RZ_C#>Dj&dQPq~tiMYPKitsMpHjgKk|KQ)C^+ZU@@Pw)TKS`}Yd zxOV*_9hLT7T(a(Kjy-?WaW%sz^Yn)ern9`Z@|BlFeRP)#HMX}D6x_S^*BNf#`ohY+ z`?n+oE?9Esi|ACJ&mJ-xrQYwj{P*Ui6A3ZA$7M~;qP|9ZyS!QX1eBR3Zm;=prTgrs zuE);G%FbI|k2-E%u;9#tj;kr>$~AuVMX0h>r=(O|@Z#lP^&}zxb^NwFxt#A`3kwPg z9<2SIJfHKd?n;icx@%(;k{^d1+&e5$RRE18!czOnk<=9D*Hxh^hG`Vy|*pC_(m_3lYj`~rn1 z`g+Fd{}+Nod2(e=wZ*l^J$*~2>Id8~vUv~@>%T7S(E4UjBKdjl$BUQ$v&6)v%s#B_ zytS@=VPuezy2c^F)t&d(9q$OOf1|6Zxo(@A+oe^@*RL&&KYltZ|G0M+SGxiz?N7+B z`yzjKzwImLWyTWg=bC=2*!lC`?E-MPJ?jXq&k872eO#tvdqYd<+W+r|=1=*su}n#6 z(f*=y|4Rb+c%nN`>}mdI_2XT15m?KS+=t3xef};dcOPH%X4QSW%=8C6AV-3l3twli zm)rZ~&}Hqg{qJQ#sT9%-NN`)T$o1j2qmmZJss0~!%F9YxZL$i8j(Wj;cIB7Z?R!{EE~eRgQ;(Pt_4)0D#|?|l1k&wmN#m5S*VB`!n#M z7bp}z%`05J;6%pT8}He9D~pa~34zjgtmMWb7njcbD}oclB&+u|=_;-IwcX#!*vbf! z%rBa(jjf7#JahRJz3ThcNbT632vgD4+fv2_X+{1Yo~=L2rTfRDGcxSWYF&;F%hh+} zMFjgId`s4ytluLfc=ej$9kcwr16n`s#HsGt!5?_75EAfdYu<2+x73I}UABHhK_knb zWk3EdTfgJQfojVn(|Ll+uYVI2zq#+yrD+q_{=%$NpndZ4s-Nvr#O7D5 zinRFtgVnCS@#nb>qV8+>O7A?3=zpxO6Qs<%w`|w;y}AK%TXxNhSlhzS11cf{+hh%| zoAld1l{RIf;*2{)-P04YWs0dZpS3nPv;JVPEZbGmsb|v ze)dGiROR2lwn%v?UD?cR4jl+vcu^`V(I zbGq7s^M7+!Rz6feb>@8SqAM?6NU!WwbwBgdU5w>^oxS@SzO~k7N&NjCw%c#r|8#10 z=5J?pkrm9%p)M>3AeH5*u1lZAXYEUvDroV_qj<^U?8f?ca~^oa*Pn$jh3k7T9SZ$GnsPVQdG;wMMC5>7vxSNrK=<#P2w zr{H65YkQdYuj1#4>pT(Pz8=)nF88^SDEs5C;QTFeKeAPm`(tli{r|Vcwv`K%SCy2M za&t20Z2$aZXX~-wpe|yjTyooX+Zgt=BUyEUJIFOx`Z|wQJ+x~r^q=m6ys(||%Q1UoY zni?M=@<~*Tt#+yEvi+-q+;&xE{Vh&A*>O4hNAuNVOZXNY?6~^jAD?=`m6*~8>)##- zEWX_qR~g#nXM5G_{XJ#o@Aes~3X?iIiXtusx~+KhrS;&J%X!o45*m5l=C9VZ%9^)i z*Y{bhqMMucEt>R^pFw7$RMz&T3x0V#)z>SYw0oP!$5>8*cHA%P2`Cr}V zbDtSl+&=F!{(SK*zvJhp+}@}6f1H&mwXw>=?`zD)aFgwIwtD}Mow{~>`}XeW@9(bd z|2sGMaee9%E{3#I%cs|`4;P8&iMIXq<4Jn|ev9%c^Z%bY)p7O1#PnmXfjPBbyR-S_ z=l_}f-$svtfnmYks`{VnU~)EUi-fv;{HD>@1JU(Z~G$m{@vBT^v}q@VeU&flJ)00f7iXvor!@W zN8{^$CHzUs&s(k0^~k@zZ2i6;r#5~(BwrUIUbj)rM^rhCfgvTd_WAt3kK+PGj_&>c zIsNIKOF@?V%f5AYfB*OW{5A1w=fuwI>e{~i>i_Wc=9l;0-ah*7|KHC^|CSnmz4PhQ za{l@If8VbQDyjcqeYm~6?w9-fe(q)&2AQ?JQ}6$EcYS`euJHMDd)@c-zfONTazEz( zn^X6SkItR{zhtjQS5n@`ii?)9Vy+**{Qvj+!Mk{I>w3dqZ%pUD+fn^&yWBsqOG(ck z2X6da7+i9GUzmKft@XX1J2dTnev}t))nCWVaKK!%dy&TV>;HW}#srFN&-=Tm{PX1b zVcmD9J~}h=zGl~>&HB6U@A}&P@2$1@>3037pEUxnSIl&$|EX+{%lG zv*qvK)2sV*dVYWXmrvhcwSSNKeX>4>E4_drp~>#=@BPtY{O)V_efj!)pUnlHuJdl2 zzUBW{4l4~5ng8#YaeSG{(d*}3A5Z@O@c7p{dlm);hO~py>-BPD>fhg~uYBXG9CrSP z9Q&T{p0e)tNv3c1*#3$Z{tTJ)pb{NMd!_A&PVjvjse|MR;C zcV5-JuYNAR@879(iH*OW#@lMVdUo%}_kH*8R(<(2|IhW?XXW?oyCUKmc<0AUzmMhr zj;?R}{kNOp^1%*K22|i+^#2=we8v0uIdlFjJ|1V1^tI=G;eqP;R|>xQyAtSP~2Ji+)?zdLsV%A1B1*I zL2Wb>8k|3!e*0VcBJYw=cXoyYj*=Uh&{SB+Je6Lr=W0IT@{Z5nGGt^K8Q4>gaG@!B zAP`gkK1LF1k53a8dkl8%+%0(5Ayicy|yu`Cu8mlcnaaZlP3fy(@^DSXu@ae*IC+F{k&pxmK z!>VBSm3SRkkgFZV4Dyy`RWB5 z!weBnNrM_3!Xm@`c;GBOx=x~)Mqfq_Bo z#is`@_PZLlxZzZAZ7w^=1m4BW3<;AkBhBZ+xxagRU$9-u0>vse1%8$m_j~gcmKQ$v zy6oc4a6kn!h0U1o`u$vOP=NG-JYtL)Ac~7;?}n$*CD=@Wrk!jNSq6s5X&C7FXQQt8c;p}`$Y`XFYG0i1&ieG zIz&Z-O~6bWG8fib^RIfrc1g;Oo#8+tW;!o$u>Stt43^^$Ct<|egM?EDf991idzP*< z@hxFykiq7Rg1>uq;6ijVX1p@*_)xUHCr@Fm z6)57dDY&t3bGWPdgfLlI28Q;Nm}SD|)xVaDEs{Qwd1vRPp2f-x*xXU!CZ98JB`7#R zY4k8=B7Ptl`$~V>McyT)${=^l#&l@9$*(8(s-QW(;09)#*er%7pIM;flY^N6=lQ<> z`ShoeRnr`+@L7qVFgL@D`tuKN^@pv#H|Zst9JsJv{6Ga%vmz&<4?JOg=fh#uN+4!w z{(%R%>gvN%W26_nKG&=TOX^%$+;>&d$p z-JhqhHW1WUz-q#_?E!AkbdJr0%dc(s+r+!MPY8bQW!#g;(6BfKGgoWIRu^x5r8_hG z!A5YHX8E}yCmj&mKlAAkMCoIS=@Tc{UfAqdE;Hx7oB4#0^vx?5OEWxJfmygza9zJ|8x9K*K`a@r^`bhs>HFtrexCkfWslXM(oX|39QGaDY97A&-lR@8x$HYPbBVuq*9!55RkmDZ}o%nS;%Fdd;@@$$(ZgSpx^}OVr9$-a}BI9xpxcoO@$^BB`L4!2pmO!Z z2@F>nd|tP|dL1Y*3ez`By1Qd{Xp*v31GqawJzl$kf)lgvKciCo z+AdHF9MsL6Fcl+jBs>F+uYrnWPzALHGro-9e%IFt|9iFd1<#~cIcA4J;f=)|m+SsN zDuR_*DVWXU8JW|6b%Wdi&Z9Fi-Lb3}+Pql{%A;p6!|L+1-Nm3<5SIbdzUu9}^VZdU z0=Tr9iP;=Ty9TPGUa)<7m19;~!pwlpm66D)rVJz1G|c?^t6ZG@A}_cx=zvYZ)@{2$ zjj(GPRtyZAFiY+;Yx<9Yn;hWg<{QlL-n8^%apv=X_dqoiC}qyTtQ{I=mO#oHus@bz7VZgZuyg~e!ZI;iJ~J%y z_w3qoF+R5A9H?;vZf{~$_I^*{CQudtWy58dg?GZU7)ZYg)J8k71+#2EGY8tb0e8Hx znxIqu98?p63f_b$%rYy@_x+>OcjHP}GC^s}Ko?7JJ-s!1b!Z85WhtcO#AeGfZsGxiu*5fcoqSx3DQV_jj)&v>$7bizT!k zABqC?$XD)7(zaq`Sk{Z_leC=swcz$Ys84CP?pUa!{ymGs~ycqV2^pRsrARPf*vsJcps!gOcU`^6vMxs@+wD2-! zMQ|bOcDX#Li2^P`Gcl{0jJ4)*vA15Vm+L;KupV5hU{*H^w%+@hxE@sO6h6-a4}F?o zmepIXEv*BkWAMn*vbmUXw$;tN{5ouCG&3EeEt9eK=}~YC0z8EK7E6d<-M!-)xXuFS zgL4?Q-UYAg_iREz8TNS=qzJ`g%hIWj!8IeOiobxREDx*tJ9Q~6!(vqs6&(pGc)*Q_ zEtrMto+=9SyL=1)mu|~`UTr1aMN=eW=*l>+_$^%0duT2d^)z;Tl(+S znWMw^N{2M9kj}op}rm*ep5)O*o)(dJASjz91Bqa6pYNGt6>& z%c)O~VnB5~X!!O5W>=uW>}71s>u-yo9dc|Y9NTK{4=PW>+}Rl%W@GV3^3xw+D;}S_ z%76T#AOkjQu2n!&4yazq4NWgVlyjdnHeu?n|e1M*6555`1W@cW?spg!I;11koGTUZ*}Uy+l} zHcYSh>_sYbE`(v0ubJ1OWe!d&uCDvLH#oF}c_p|&!D7V9ZACTfK%r6i{8hVe2@As( zEFFtgd;guf1Z!eu7-QDVA<>Yu1Bn#O;@4+uzujGM_X;%PxdpQjPnb2ex%lo2wol*^ z<1CiIeEoO3UpS~ewDZ?PP{n%-vpO-@8fSeMJg^VSi`%d`W9{6#@aE11EKUBErO>7_ zXx=Ep8q=d!X3eh#2N$R^x|OGB1sc^r#t$T??p?aG9@OUrjU#64e*W#-w?)#(N+9eR zM#UG=ClVPL7<}Y0EM;I|c!N0y!N9=q4Rf%Sfq~&SW;M#d&`^sR8Vn2v_F-1)3=9eP zF@v9hVM9Jf`eR^VxM5Bs=l=e0El}C!!7VDnz`($l8sVAd>&u|Uz`(!(2|k8P!IMEO MPgg&ebxsLQ06Dw+fB*mh literal 0 HcmV?d00001 diff --git a/docs/poweredbylus.lightmode.png b/docs/poweredbylus.lightmode.png new file mode 100644 index 0000000000000000000000000000000000000000..740675417b594e406d85069d54574f1dceadd7b8 GIT binary patch literal 210989 zcmeAS@N?(olHy`uVBq!ia0y~y5ZcJVz^cT-#=yX^r829Pfq{V~-O<;Pfnj4m_n$;o z1_mzAOlRkS;vjb?1y5IJGeb)=GhHJ+Lk0$q&bh(m5tF}*+1>x1${*%*S9zYlK~P9-;MB##a6~FuuwY_v zmJ>e9tl-1Ez~IvU2P@+XT6cIbG8{NP_3U)-OU5EQre2UL|McO(BgIFDayB|8ifam_ zaXwL+GkvzQu*Y*|pL0A63{pQY9{guvKjHbaCl8;cJ;b+*&p(i>=ZxV|F@@y ziG@MH@BI5)@lT&#V=g$(xS@1^_R466TVV_t_kYG3-{xEp#dV?TXLqH=9|yU43j|5^r+M*_$;KER(XNjXojU@Qe2-V|44UYocyj6^p_lbWALXb0<(yp3 z%dn=+|A5~%_N}LL4%EG4Wa{RNxKzgAQ1@B4M~ZtQgFw28QRR0AhROSX_B&`ZGMt^h zPv38Xvmk=b2Blfr`FUwdxrkYl3kp4o8?@mUzmO=`vv>U=P#ST zl=JYm@irg#NYaqZmaLXsF0oxwf2Pke*2~jpo(M6xZX`W3eFp!G{Ll!kZ(22?6Hf_E zwVE0>wQlP3RUx6pq4rlRS8<1|4&`4R7goE>Ep&6h)PvXyq2{#ZEf9J z^IKK7_T5T)Tl7}!?dx0bOAF>Y%+;Cu)hgHOdnxBGvt5C^T6f(pJ^#w?a`NlSmz-Zu zedT+3_oDmP+%Jp2iobe)?fpf0a|06&vk8(ph8D>m&P+&tkv$`G$HfmV4_64D&e%2a zNXFueo{QCYsJ&}Xe{5PIZkM(uUnXgd$-UG&**1wunMSvl99eSo$v(}qQ?h5J?Yg+- za>TFq(JX};6GubB~M z7gibeHSGEt&ucNSbzbLQ3(pCV4xi04+iLddZ7bH!UVEf$cJ6(VMNuM^+ww8J;ek zzOZ=iXH)TI-V;s>O)r}+9-O$i)ZhieP`{>+$(p_*dDE2 z{o7Y>w)Dx^!?y1ozkK)}@u=|33 zee`2ZU_8k9lyPsPRO4pmY-V|unJi1$O<8+cceCm9*oivvaPmgV7fsGTApS}EXR`5~ zbe&ljMNe_e6^)YqWpGB#NA8+nU)y<(`vP_O%YOR2JhP3XPM*|XF7cGk9{vh+1sIYBweZ)Wdk*s*FyV@3N9 z*N@YMN`zH7-*!GZa^r|?=i_3g=Q*>C=RBDeGOZ+e-P1dZc8WiHdG7SQa+^rg$O$zT ztuutCZ?b>dtl$)&FX8`md7iJV@TZp9t^Th27WFO)+_-&*m(8SSbHk>7v$$(r>-;OD z&EKu`m@%h+kap!n$w@nvKl_HcT)VgC{LR9fx|UPsOqsJdh&OZE7VYZ>+cmcPr)g_X z=6zE6EccZ3}OSPvnPH&p_H{el3 zQ0S+u$~&L>f|@TaUFxje6mBwg<&=}B^VWTd+L()K5?Wf+p_ISPIb>5oqk^9$s?agw$dZFzD?^@}Py-%g% zbG`1BEUe1<+IM!#*;8kkO%qMuMxWWX=JuzBW{ba7&8?3;9rkza>h1e(s@=M_|89Bp zXTD}xQR{o}r@Yy-Rl6cQd#`Kl*St&bn(p>XB}wnv|E%ur4)=2Zqx1T!msYcXbAA6h zt0X_?&ieiPH*w|$nf1zfSQR{--H?B4_S;$ITMMGJ_zpQfJ*a+vSxxohfENqT9lmq; z?ERVb+rM(W_NdgpWVOF^jqc*y1-1+KzJJlPc&==mtoy$0|LfixK29z@ZrUF{Z^2v* z+mAn=G);cIJZ1U3xqkMxS7zR+{O`>kH^+(yax8mho?|kmWR`pk`|FiGb-&gFv_+Qm;`L{9kK<5Hn!&&zUNC1@pbY~9180FpWHAFn_HqzrJjAKU#K5d; z;_2cTQZeVv-Pfg$!#3H!`LyQq-v{!Ig-Ql~EWGXpvp9U*6D*ld3vQ8ZtWpZ_XIZ2y zV8wJ%utUA6&OYGpHXUIReTHo2nt5BZzV=SPug9dId4Ao`XP=*+XJo(t?LXYhFa#MG zmK_(+#uVmD>k!2hW&gcC`TdWx=J$DKGQ(vX4qp-6=yC4Cb2aM&XYQu3zxb%A6n0V) zDsOS<`T6<%`yU&!LIoHY99FIF_z{y}+p{B0Y1N7P-ruXFa<4*VdtTj$4EcY8j}OXc zU^oys>kWf#*iFW?btm~QB>#vIe=>vWA(fH#2{UNM(l__TUfC zMkXkmfnmlxGwTCQ7q8A`X&6Z7Q4~3_(A_?Rm)xDp} z{^FxMEKJj2VXDxt7zTA90|Ue5pmcCh8We*2yB4Xk&d@TkXSRv;w6 z6P|$*(6pPdEO87}ZyZa6rx#4KFh`F@FJj5ftvfc0!%CBcLq; zW-0@N&++n`j8!$K_za4D!N~`zilGQ4ZOMXs1`7D!s0no^N*wlq;xM$VVP^Iw<}W{{ zz*9{OijB^bWfR)CkkFTU8qSi;JMr1{CKKaiD<*1_lNP7vwY_unQXCpsfF5;~99SmPC$fjp(`HynKLl z1xjJFfCo9`r>s2-j+TUHptOJO;Z|t=c`y?>`=o-?lszalPnKQaJ{=y5D0wkp8z^ys z0)DF1o;8TjLMcTwqCrVr%lg0>P?7luQEs6cwNB0Y03RqdgVHHdXrYu_r$W=Ap=G7C z>IqLRA}?yRBRl_T7A%`Vf&`i%7*dgQ|ALtJpe$jGk?I4)P~s6}=SEOUy`KgycwmN| zN!9Ulm(YJ)+O+ys?m+?$JAet zY=7VkYO2>jDF;(QA@Kv`M^Namf#;xrdH><{jB&`(w8Jl_$M64Prt~U&d#wAB<>K{m zd$sh!W#jv&tC=0YEPlIh>GW$KuRqR`6}lf{LpA0GN8fO01vv%nB&%gg9XV#C`=i`-r-FFZFc>Q4Z>G1u~ zO0%FT->&{&%^lhOKhqv)KqADz(>I5WzeapE@1?f~`uF#oO*`#>e*b&6x|*V^8!g*r z{jlm-*!gz$>-KFu>!mBFe=J?Vd|=L%k6-`(ymS5L)#B2PmGbWo{r<5uE4la%@88No z$D;R(N<~yGAr(e$cQI%Kwv)1%OvCiYyA3r|*{yfC}$m5ywi{t<6 z*VIc~PJUy);{Ba{{h#^kRy}%sKJMPp`|MZdW{Jkzuh%`C0Bs&UXp*()LX;IbT`)e}44!$LXds zRu`-*nzQ{gFTI%lP_E*mvc1GtWMs{pR|P^~bIpdlvOOdqrjJ)}> z$?q4hX$<>5@&5FEyW|V+CRg8jGF_{X`W_J^WY-;nVSwzxk(sm{JUQ+faT>1A^(<$vydyE<)8 zDx|?=APOr1CM-PC8~&YnO}60W8xA|y&P%GBt>u0F$QQGl^P~7TTKaFg>t3f{_BBIm zoznjJ-LLAlOznTH^{M(>m~G$IAA+$*ZQ38cv3e)Y{AI0*`NaFzr++PZRCVh_z5FV_ zn8O!V&3OM{RqXSu>Z0dAk_0cyvsKF<=CjzXpWu5t%kY8J&)wfA{+G&M{hfK;#=fHV zEpKmkXC0_ZiFB#c|Gi2!_v+4f%KNw1Lff}+2QNC(8*Z+?CSCBeq{|nPw#eRw`XbpBRh~&b&o~;Iq>QR4@X7UpLwZQlYO3ltva3i z<+{rli2-&I%3CGR_Ib}a1Zv(HbGpX~2*zV=(#HzH)|dIed2v`{ME<0)>ng{d@qZ(?b(?D zNixgeO;e*OJ3eL=9x^b@}H>e_+z(k&1~k+;epo{wEt%Q+@C0T z?rQFO@9G+FeJ|13pFe1Rir>ERm7$-t+$^SR7s7j1U-`VqHqp2A%=g`2oPEkS+^&7{ zJwMvEcjpV2(kI`ytfeF=iUXLEET_8Yk&UTUCrl* zLZ_GqJo(G`vpuA>xb*(@$^ym7*_)zzC zFV*xO&)ILe$$q9+ZS1?_F(r%4K2=*Ue=H7mYl9%H)pB6x)`|NMW<|?R`oFPZ&+|3M zJ2LoQ2)3EXMDrKUOI~aHc^BW>v^A~#8Cu7`huFB*tuMP8JjF63Rq(Qh1H+alu zPEz~y``fNrwngEBh0zYza!dER|66$1<>&RClU^C}NpGm;ytU)b>%Xxw|Kw_d9p3HR zYB0|Xl;6HqJc*LyK2djWSHF>cetxiP-Tq&%{#Km!D-{OixUwyw&>W|E{M@2n?qvmF zr!%OnKFhb^Xw~`Kd;8BGJ5;qrC3RJ@aZJWU>0}|XjW=_urKgwA;aS*uc4OIOY310d zvJZH3E%vo<>G%}?`F`^M@283*TC(37uDZb^u(S75|4#i^Zy2IW^8Zu|&pzMXy|Gzl zrS;=t-K64m|Aa1EKJyAV{!C)lYlS}Nkc~U@Vjq=n&|mlH!$Y(Cy_24lfV*Y0WfvTO z)o?qkaHoBF=HnXYx&BvE*l#>M|As;NC$zT+aktN%jhEL$m^&)A3x3?WVOPC!vFz-# zEjKN_SKKzQDqXoQ$#{w4@2@k1ZI4vUPF~G)ZTsq56R+7$xqagO#eJr%{1fjlkNqn0 zlxKcs^5=PT?@qS7;ymT^u6ISkKlfHee$Rgrd*s=iljnA>KDV&<)B4=tmA_{k+iBJ2 zI;Gxj?q<29|H%(GHtf0mD(n0ondjgbDBYa?Pi;?mP2btl^*1-CN3K)e?_YbhZ`-Sw zrSqiyll7#)&TYuFtP-0FYthKOwEJWpxp&=n>rZBhpTE4`)qDD`&;KalRJqH=E0^Ek zF_3WncB|}aM7Erh=+D2FOJ*6)GFYJYsrpOU-M+0qm_s&Ju0Qwg=$%)Zr|jL|Dew3H zJ&)g<^-1+=x$-CSPNIV4tZRz%z6v~@zuI}#p~5Y%BUXHSkyv(a->UB?&V78R{NMCm zShww_c<~9Fx7=EuADO4T-@eu~{ATUj)xQnJdBN^IumzF0Q}Z|63cGF_DbAXry;bhf zCickC#094;Uze>9e`?Urx@PtIJhzDV0qd0a+qZ{Uy9u+ENdL60TK#IH*#70K4Sb5u zRCR4?e{ADc*B^JS)c@RVrcG~yzwf?XJLz@7y1q#Nz;8RPrkKgN=U;Vx^H1)Y*o2Mi zCBnbGz8(Iy?@XxAb6b>0lnK>7Ro@POk0>(W9n{ef1_y7Mc3OOzGds%6Z6wR$$=b;~WsPrN^`c(w0RYhuX6`}4QIDqC~( z{lcz}-MTZceE2Hzl<)Y-cV}N`#Xnu06m|UN+1tAI5wfZKm!DfXZ_%CNQjY5r?>}C7 zsomKTI?2vv)!X!{TdRKUTo&3&b>t%~NPrnKlo$V-EZurJP_1ooR8=BW#W41jf z@z2`Yq2KJ(-ah|}O4bMD>U^v2nVB(PUN>pp|4ShockVOWY4~p$C`W%f`hN9|FK@M! zPfQGBw!ase!!}_Hv%TK!(7?ayp;ECST`tUJM1&;rWC_NnX@hmDHZ{Py%GvR~UcU(2j^ zeR1+1*U7REre5v7A0BuwptH7w+15{V_W63Y>Ur^^v+srPG-L}t`Ya~u$*~zrUf=k4 zcZp?o*WamsZdUVw%npnG_fD(knzf5)YV7yfZx}$m2e(gp$lZ0H`S3jVcsHn!(yyx* zHVcqX7X18fcB58m=AqXU7jik@X)6&;<>kKh?7Fdiyy)!W-@neBKOG)A#dOMx+iw`w zm+05oA7u;^Jj_$R;_!uqIleh@%`3B&9w{!X)SLRq?BBo2MV9qFdqE>)>yFId>hh^aG|;jotV0S{1Q!~5bh*kS!H3%AL#3El60UUzl*Gf6!8Q{Lh; z*T0LD=9pcJe|{{XTg^{CWvh(R3D%ulv(L7FaV~2x*Ll3>xreY|zu?7rA1!aL>pc76 zn2^a$#<-tG9m%WaSMFkzTg>a+?sd_{^7$*nSvP8?tu9XXi4(1t%?WnhIsZDS%O4Kv zTkiewSLu}G5fj(&z+>mtykuvH8Qy>GgVKvM{`m9r^Tm)Mw}$R-I}hyYJDYaujZE>1 z;~M3czbw4f0czE(y8HFQ=U;CZ>ni+Tr*+o($@eESs_fm2{X*R9;_t0G>XCgvO>o_I z)oY9Xt6I-~Be!SW>Ki=wPn;{vxhs3+@BV0!4QyY(?|M~#vg>Ng>wg!vR=mrNc9@p? zRisDvx9Pjpzbx-BYS1ZOvHXO5#utH~wKu}}ll80ur9m~^?2BR05=%way8D&<&4ZAk zr5STTiSGSo<})s`g8Nh2B@QSly-T)Z-uY}z=UIn|$!prW4Xe)<`v!u--nFd3e2vnh z!!ze)3(hXyVRiZQ#{J(XTB|62-uZh^_owssW9{Y^+@Edn@9(ri-?vh?TF&20u8^NS z&uph*RViqQ^(-ic_to8dToU@^`zFu2e|E8D4HHdnGM2%+y$N!#zVU+q&_GYT*&m~x z*BaHrZ=>^+>w`7gBaak1yM{F{o3R~KC;Ghn`{%3A`OkJS`QBl!?_LM1+m+9M{f0sP zRo|Zbxo46+UdDtP&dtsgW{c=u+I80S)$ThId;gu_gA4(lHaL*Qllz4CYR;s2=Gxp-()Ow@=*WIhC3Bcn9y+*NMqIt4{KLSku+9 z`Uy|*rjAYP`(JnbC}?}Wv-c%G%PyAOCv*SjUiy6Q=Btk1KXOcX!vp_WUT$FwOa85T z%9am2?tG5#!eUP5HOD5I_U!enI9IE?8NEEIG=Pq!H8`8zWVD!Vwaj$RlCF++gC&Wt z-aY!zyXWo)L$=^l_KGsmrzw_hb7db)mEXj?=izr_oA!kkmnWI39Q<(kVJZ8)dpoUk z-*0Aq6VT2W_8dMK3L5cPv5EOigs7!`@k-%&#qq1(Fesx8${NTc0z%E2A^mIcl)VQ( zc59i?<@#>mO2wst}gkZd9FTJw>06F)icW@tNM!W+lRvjIA-v}^S_Je)4V-N zGNDuK16FV`uX*;&icebT%W(@sw!n1u4&OF2%foa2Op$%SyZ?9^^N)yo?lYOgDx!}~ zXnA(#ym|R*=Dh5Nt0hx^-2AOK=lt|MP?^5!!{%w;p+|qR_g+h{+gDq9lhG|Go&Cnc zVAwG8GkC9n?_vtO!cnDDcT2)s8N-T8XUiril$JGU)W5hiB}A}r>YRtV@@_S6T<6qJ zwmrP^(Vq43#mAoS5~+VzX?^(FvbBAi;`V<}lu-LDs~6m*X3enjoMpzAE~9;m^Dd{d zOL&4tfKstpn#QhhR{tjBwiSmMR$H!Cew23pcG=>kGumCt8X8S*GA3O z^ir~ZlHK8_dN(cGZ<(gotn=P@=doG0K~5f@*UvY5IgSfUgYrwvWZ8z0&^hm;ZqIpH z*|+iihI1=_f@%WzVE7sMn3>F@+iw__L>@_75#V{x{id{m&=H0gX{1=<)DPNE6-=28mPRx~w_6|EZ zuh;E+wTb!6ocUWn9G*FEx#i{0GK)|18B79=V`8&^(K$YcRg>Db-#PZPtzg3PuD@;S zYmWC8PEz~%^Z(30e~K@;-F)9HpFGF+M5xOhcS+|X632GlJAZ%f%SyeYR%P=a`?}nj ztIUx;`RC2uU1y)a)iPvGjRXyhR|&HU_yfWfN3DgG}(D>of2XHJL?c z`5accmNleb5A+i|w!LFJJA3Kk08#&wC3^q*?V8j_`jh|%Z$0zP9<$eSI76x^ZtGDN{^1e5fI*Tg3n-snbI`R z^RezX|Hd4%*jp+8x%&V6d9Tm^xV8D|x7lt-(*B0l)XuN}{^WH0R#- zYsz-+#*dQcgW5r$u#)`;8*M(Y2j2eO_v#G;=e3PDH~iMzm$xMTec^sHv%kOI{rrCR zz)qvT0+r5dW_9fFt;#EkJ(_moRMqj^X&*})Ts>zUdHzrFy951g8w_umL}Cc_`4g_>MB0_Q*qf(yL!>bd>gaeYTkHXHP1*8d>X&_+s3~2&tDx^ zez*V4&);fh&tHc6eExlgzwn-7Sm=*EXYa2CjaSc=ZCDg@w8Fl4<>EUJ`|4BJB|Je* zH$B)K*JpTt`ghhQ<~b*|%%q?Hmpz{UB5L2SV$s>X9ri9Woy+(x9!nFx_v*~~=%Z=Q zwWZIV+b#!<1I~8jySsY-`^!hJ@2mOwclV7weqR$_7KLt9Pqb?>8~Oxd5AsOh^Nbq=rD62nB`jlpcNVd2MIr9DnSZjeYpHD*u(Q z8>=_<-&Wo{Erx%itvI4{!cvx@Nw8)wVA`7dFHkzn1%i_i{#Z z)ZX24i#emWq(^wW*&cf~YfHz&zMa2*e#}e$HGkvxm1Pa{F22|M6#sbR>z9>tuN&T3 zaN6owwOknU*B4u7GhMqDe%2%V+&77zd+&zzBYKzCNWIH9E3fp1FTYm%B-)s}{k5<1 z*0AmQRB_C-H^VLeznx9z?`oFKi7YZD3yLLDJEz5_x&#YY{QK7 zeY1;9{GS?04muiTSPjZzC?3GXDIv>h8p9p6kphdK=%dzqz>YmGb6!tJkr|<%?e4 z^Xwkaop!}7hP`oNk9F*8V~bb+4*$EB`$S2G?a>d{*C^^J?Kl7ZB`?R^Gh2FBo^rXz zEv03JZ}s2)*j;jS{l^PmC1z)PnZ|VUT{`xKz4ToKn5zY6R;>~-&w%g@6;>)ayBV-M_l z7G}P_swUoHne!{fQ&P`<-ckaM4s2CkYn!x-nJ4~Q?v&!5P{Y07FUOYJXOvg0?fi4S zVntQgrZ&+y_d5T+wZ|Xc77RSF>({HYC12Ba_x-u|?P?Nytf&&!CNfy&`XqmY)FQb> zcM`?7PrN_h`Bm8*vp+{mFWqWeFki3^y}69pR!iO`NnO9``s907_+I(Mv$>3~XGQDAeJKxgnCJY;Y}rGr zPt{vjuR9)9;q$)w#OYn#MQ!1G&7SVtx8}REdE5R7mw(wdR|!%BEJ)o|*bk6HJ3^%|Ln?kf@hS$k{yJhxW| z#Y=sPH@|fDDK>tf^r?D#{@u3`?q%Ed?YcR!GGn{)+J#fBmLF}{d3;6IgRgdC8TBWOmDhY<)=-*yH8`j0*T0?o;Tt7iU43(L`>UVZa&y+%n{Tu%dl!Fa ze^+L$-L9L-cU5P}Q2-C*EIOxm9A9=AWa!Pxc>Me#Lpp z|G(QiGxwJFmA;D=-LPz57JFQ_Ci3v}URdWL!ACWJ&#mR_*x#S9ST*CCz{Ip3HJjbq z3AOFl&Pw!JEOveJz2N?<$#b=T-&k>O!?ZV6%a1p1=8xRYy#DL52Gi8Fe`Qu_R976j z@Qy3u^3GR=X2+i>nH_F8R#x0*${X4pXl1a@>XdD`ynEE=SjKGYE$o)nsq|$_@!1;Rf87gz&;IV9FKAq)>cQ4&O1szBel>Wu2$~V#)5sE+ zubBPbyXNSJw-TY!KW$IHdmGA_ZM|e(lHKgx_ucF4zpq?9?+-s~%Iz?7>ngh?uZ`EJ z?mo9vwvg93#P&hd>KW&L|9RW++HU*n6Yt~WO_|q!UD#mS8`;0Ha(@ontLyt-2^-Dd zEw;GiflZ#${`%Tb-aXg0HJHjqnKOTX0P?NDv*@EcmR05GxV<=fW1Z6e{Prt<54_&5 zo#1=>Rpx`zX^X(g|8B);$aHi99}jf7N`g-4ll%=l{&m@sul8aa zw$;8?Y?D=+ytXUz%l}&cf4`YF<*xo6>nndjByM-`YROfR`8#YcSM{yD-FUq!_`ocq zYqfcyQ>=B~WIfoLwmyB$uKtJBr5(3*XL_xfJ@Hz-Ug(qW8`j@yyj~T5U>4uXqX%Bw zFE{)2yWGdN?*jL}RZ9O&?Y7KQ`o8x=NcqJ3hn=%L`dQbcN8jb&b1rDh#QV4R?UKyB z3QqbAXPRK+9X(5X|L}&jUkmmrZwNh-rV&)e|9xe<;I+Eo1H1Sl>rI{bH|Z+v-+o-K zdOIlOzgt_|^{8d$K3`WhqwH;n>YCRRve;s>V-Hk)Tlt&u`ka@wPresL-{skHY+J+E zp29y{4{v>;QTpV2;{08*nSY;`N&nn?C+s@&x{aC%w(VDv4s1=|+5g8*F6#T@k|zCI zC+d6oS1zCN?R=!tDLJiOYhN*5pSO3~zAF0%Qr@7E*SD(?Bh}o;kw>b#uBWkE96B#} zF}2;|pq7%ITKWxl;}4HR1wURs&~G_SPibF&M`>P9U`@xT^YhiV@eBO^yvMN1Xlijf z*SgKjZ#MKKoLI|)}fuZ zjy^N~A@fJw+Mz$|!0}m^p0~*-fBsqWs_rabK?`(ozypTYH}=Sv?KJe;*4J@=v$MKEe{IGFd@{O}UlV2w7 zV_vgw#-WebQ`jvWj6XdN7c4aWR2(x&eiQQ>gC`6D-CrBmvCY7M8qFB3e>zsRN?v{b?O zWx8&#yvV;x`G#}9uP$3~d?kC;9K#Z5e=rfYV5OlFwyLFJ`<0uFd>^9EWKaIAWqH`{ z6{Gy~>5X#PKCf@&EQ^1BOyX|4Mt$$wY5Sw+SsvcEYNGuAS3KtfyULy%-``bq|NAb9 zZxZo5KO&N6UOv#GKkX*twhXqKH4EF`q(mM~tGMc$*Ry}dq34U|Crizb<_E1aSTuhV z^P893XPhtJt-s7bYX<)pU=3yb4OoMyXd}e_nB?am4gOCr`=?9yOhF?SQT=h zr}p2UpDQ3U86|zEHJ%!I#JH^SqyJYlx{e zUDnQYt$f`s$z`c~-*HDI$Lq4iq>Bprv#!YuzstYl-lRJ&b@|(`26)-8yJz)m6=Stw zi`A#!pTh3;ZvByBKJor-!*f@)mKDys$G_p4Q0T<_w~OWS-^pv8+`-(1(P{cj#XGOWnjlYASNm%9AXwm!n~Z?0?t z|9!p>5}`cSb5eEoyB#sIJ|g*7-THv^E8Y6*b1e@mzM3evz4K+vYVUCOoz1Vp1V1Jo zI3Dd%dAKU>x1sd`k7+j=QpVP8YBC3e)sAb?@jl0|BQRS9W+c50qVko7E9T0hD;+d z7{tR;^#<>`vI+k7Zk5jLZ5LdBzFx&%(es*7E;;9P#}3bP1$n16e*ehc_UG=eGm?CP z{ag2ChX7Aq?Url9~2%IeYfJ1)Ko$o(Z zYm~omIr8l9x9v}OlA}`DUj)uCxUY7~-rxS%p8dC7r~Lo>uG@Yy^O>00p#I;{lD@0S zXGpjiO&361`jSNe=+rdZ&=pT?r$fqDA%{bzsQ4XBg&u<_W3VxHY`--3BR zNGz?-tI3so%D15l6rksCGP-R$#b?lTsefhZlv+Q&rKkBeEKeiOB&o^~- z)Tg%JSlGGg{^Mza9}O*;+jpPh`_Q(q-E3OUOxXl}@FG#rMBw!uJ;jBhmm|`vAN}=~ zGrE<^F5xKpv`#G!-mklda2+TOoZivnD1Q14L-mUOJ@M6tYR^Bt{)XXX*iFWJ0l7bS z+n?Y&A4Sk>Xv-`w?R(l!gJ$|keUviW2+yc;$CurmcGz2pJ z(`F$^>`sz^F6nfbZw3mw%+G(cKv`P(efY12w$zwwZ1-|OZu@ZmCZo{bDY6Qlwuh3Z z-8p@qy>8E>>$|wF-_cyXnOWw+b&dLhLrS34vonrOxVm#y|DOBy?L3A}-oNt11wYo` zWW09)G7NNpZ+e+t+@XN^&_z=ov)(XR!*@X7A)Avi$&uv)$o~>@r(F6VED_3c3pDv$t<8{4o>i+Hjt*sfw#gVtUR**@X6m z>_`6?e0a>8DJ!^NHT{8!Z&`!w-#M}g{QuAJZ8&VDmw)4eOpNQz`O-XwI_G2BPfuBN zlJCM}p>~n7n~ZMPQoxIg!2@NWTnUMz!+sGMyld=R-?-~8JF|N` ze%M+wsDr{jk!!x^zP^Huad@Z zR?EF86l1pK6SN0a-8~QQzrNKdpYO3+<9}`6cGH`T_dX~t+gSO3K4^v_Ny=8n3p57p zJLTuzcir{r><{w80-vS7v|PEFdC#W4)3T5DoZ~at1WE^bkU2H$8rb5#1Akx(Y7dx! zhCcVFvnL2Fo*MUFE%mvtoZUdUF(%b`GR{A*B4A;e;jkmbo*I8gC;Z3 z%<5Ub4a--*VX%(5wbM!*6l)PjQ~5OhCC!8^Ha)ZTCgZjr5|{s+JANA!9iW0d6V%Lv zj~gPnAh)bR_u9srF(^Y3vCCu~RI! zEbr`i%K80&;tUCwBTCi|{qgPqNA@=v zLFtYyiPLspT8+oiE<956byFHUYXxP-Gl04f4);VWo&@cf5u zVsMyv>kY&DHHV*_npDbu=Udhi9_NU5-`mBYq3ovBZx~pAz88M~|FVK+oB1_?y=6;| zx9WpRQ&1!|m{~JS-eB`!+glIGwhxBZ40}Owdp(7{;_0OJ*7LC|o!!DA4OYbJ>I13p zIj`%p-Y`VhoZ&m*_u4l9x{HfxRM%zQ&CCWfK<%EloZodzKLoWsJMw#8(f^HWlpk#u zl-u5Ablto1n)|)=U7POTJ}$*)zQyX)JLStEuNWqGbl7iV-T)f%e6~vCebj$LYlg)u zAxonrJW<+k1@MK`54Kua9}xS0lJ9`Rtv3w$8)nv3U1R_EH)Lzzv8_Loed=#SuRMI9 zuD`JFc3I2ulzF?9-(TmMk(jZ1#yN*+X4VXwucU#C&xW<&`M#5UA5IxrGgL>)7tYr@ z_2b`;voZDWK+{g}rRC_J*V)W$&`}O5-OunHIJk@Xf8DCO6MP@ue1F5BzDntlmZkH2 zer4M{<4cbZiG$ir({3{I1^h}^S+*QJrOxB6b#*yt`Fa|AMe4f4Eqqr&Es*jfwX+(H zc~*jw-X#0erLYON9XzmV@58O~n~ZUhZbz&vnGa`xid{bG-xBu?uV2?v5<7g%!b^Pi z>yKKdN8M_l{1w~yGCkAoNJXt~rLpPffLqUxP5%dK-o;7`Y;%yV!7V2(hmRWF; z??B3$Z+l`-GC#9RWnXX|wD$Ze$a`t*2_{QypM_T#y;CK}H80fBg?Ap9 z=v{tw;`dhOG>IVb-@G?<9B0cmL}r14@(iEDdT<|ZGxMGcsq6{*cPD<&W;?tiinGCZolvb-XiI7q?nC)INASTlt-FTmAkY zwbMl(xv26m-+p#K|NfJVuO0oof~otr>w`k!94Hj{cH|ldwJDa|WaJ7=Wv_tE!mfu2 z9R79Uw<&X)#3fK42$YH8O`-z$BK`+Ut*j4duePYWESCzJK$H%<$tZDWK4_+re@`uE z^Ym+iA8)U=pT5BI!M0MDnBGZ`OioLbC%9NYN;cMCt^7Wme@0@){7uX<3&2kLwkKBf zDPLNoyXAbhgmkFK>YU(S$3wGc6o>8^VUH%ZtEIqQTF0t{J-ejz} zTy*~SRpm4Zr|Gf{i`Vr3*{-=_QO`kd`A6&b#^mq4`ZJXMPMKj)Tkv12PmibXnK^3{ zD6JSLv@I+J_3HJk88%-|0q^y2(0A@Vb~S~)V(DqV195$p`mYx{^JGBh3=vJC82FBa zij^n%K6LeNk@hWXU^IbLF&Z%^51Z~%{-4XW?$HKE-{hZvug>4yBcT3E)B1qeYKeN` za@$Xjoih*n$G?Jw$e)eR-_A00o|7?Ec7Z@>S%WU9$PB+#oi<%|0Vwtbw}4s!o0xl+ zoJHDMZ~(rSp<((g(1ILD6yHeP3Q4e8Q)L^vFTJbWEySi@+wpR~e7DADsb8-p=PkB8 zTx`Jqo9|fVT1lfL4ZGeju&>(8Y+xN))&QF93+Pa@J|Gqg*|xH0(>cC?4p5yq&Hc{v z+Y6m}Qe;2dyn6+zUSOj-1@IjX54yEZ-9E7W9N&T2-)?rq^~yeSS^b8g71X}kVDss| z*L4@k!@U3Qe*S*f()mlq_dR#{liMsVX_+w}Iu`T zzhP*t0Cg^}%5BedKUc7-maQ;$la=)WR;|PjmyCX`Klpm{QVU<%)VTUO+r!0M(ku9$ zC08D)z13*Ulj$Y>ZS@-lpHo%mZ-*+US%gAkB^(q>pqbuq&|1*Dg5NXQ&KXPrwZA}> zuMTW<0NE*^x^c@XK7)qRvWBLsp!D*taQ4*`l6@E76wW?+Lh{?k_p<-D*@brq|D7b8 z&|T_M<8zL|c?GCpafYv;LCubqSQ}Z$CCu&41N>BcFHrDp0c^Yr*X~(O-}4 z*Z;QT>&CDp2D3zQfnF zi0v3CXFfb{o3~lc`Upqe2|fYA{b}qsoIfAiAMaXueO{@{pJ{U#S{Z{PRI~9yqQf4p~_{D1zHEo0!ks*$rycY-Sc&bdv8wn|{*9K@ncX6mkYcf5mM9gEIiE@umRN2UHyi^eO39N+y2kFHXeTe z@!Nu)?f-0}rBmaq>unzwo2J+3Ez2!EQoBl{+#z+kEQ8yl-4|;>E972+Ce1~k?n{r` z1!{L(kS&~__JGIvC8)pw)!FmmtpyucYe69J*#>^IeW&?09A5s0fjKgrT_Xb2?YH_S zy=Rk*>Cq2jHyM>4IhQrqUbX)Bw!OI3;z0Y1cMnXTy`91P?(79cHj}Nqze7RIg}u+; zt`an!lQma%fxyz*{n4PRK+T$AFR1PHqHl-4Z9&_@Gf&gq*MqVPe63bNC9JolaOl{n zNv4qU(O{L;DcP0_sq7YxS3iFbxBmAw#_mW-Tk}=xe|3f1M1KFawPyGNGSs@DO%YW1 zUrAw4Fxq9Cf4yhM!;sjr2B$4I8RKTYE|?i)0*Uw!ZBGTiXR@C&SOUt|_fo;t1f-@u z@D#R{tf6C*d0Z@Le1z|=-1e33=MGeWN&rx)zRS>AX64JDzva(KE;=s5rmMS&IcHkY#ft-{Hl#piEg2BnC*Q*QRw z{4UOj|NFDOM?im#(xc>}w&alY|K{91p8IdEECU;O#3M`k+v_(B2X4l~T1lXSs}xkU zueQiDNH@;tdbkD@{-7M8g=y=oHw<6EJ-{=32UdWiU)}n^fptpt&A->X-&wvT(Xez% z`JHu2kDQCxB%(m;Q9{can6KVsoUt^2GxLSlTL0`CjBld^`39RucA-(n^N?@RMM^k^zi%ezr*m8nzLpvz1u|e}1Xm9GS zH;^>W5Tgf6%sVHMCKMG5lN9TV#K{rtr-7yB$T>K?CUE zuBbn}l!b51j@brk)RdMrxGd#Osmv7pEG=>|g6FU9Z$RbzWZ8!OnuRm&WXt#O ziMLJwmxG|`BgA*?~!^bW13@&6{5ILNo z^nXXR+swU|M|OAoFta`)CclXpyrLVl=zM{|YS5&@CT5i%s@9-m6u{em%Q7B+V!L}K z@LT!aj>rFz^}L3zz)W``y#>jN{V{<#ZYnF_8~p5!F2SbQh3NdNEe6TeNJ+azvi zSs&m44;#Y=(o&6~Yl9zv`c3!1zFDnNeHM`#4S9Y`TzY?#G3{0Inc~G}H5Wmni)Z)> zK=l`2ZW%+`>q%|TuLOR3FbC8(2Q|zCQrRswPij9|yRqxBy?BjzOwU13J@WuO^0)~) z#Z_<E^YjdJOFJnYrCL8F!#rBkfGBu$lNxDh>9_Cb%A+#K-eSm>16HRd-N&#ma&)PAz| zH6-z$L3+{*u4$=tgIav z?}1Kh5EVQvEdThwU%#RBaz2)7&-ndO$6g+PIpNw(#wwGWj27TB*#9PD8fZ6zOfIOP zFP&0rE9oVi%6|^Jbo7AStv3wmMYClS{Fn0_&TZ#1+yEMboMKn84^b4ur0&%hWlFmz7TKlbf??;rH&V4E=`epw-e3jwdH~JTCD7 zoorBA#?W^y4cxpia0YRY8Q6<;R9(8I2gf7O1AD(>1D~r(D#J`v~Y;}7yqmE`upFjRd)A|6PZy7@$XuADkD!au+E$aiIT-CSf9N&g^ zt5bWI&B@}r|5j;P{ac;b$+8LlprOtp(Wmw2|313%e)m@a#fraqQV-VNZHF0DPo4_ z=Wh)$>}_<8ud(>}@4u}JN7=5v%$VEo2HgYr;^Ya7PVyBrtiF-s60>}nM4YhT`_0a8 z9wzf#{vA5SUgedRQl0m?0=@FUf6rdUv)Ap>TUPp3`jXKxX|?TrpZb?>T=V!#@AKrB zplUyjUBXj%_V9e8_m!lEtZf5iB6ZO6NUn_R>{;87-`pS^KPd`C+ch;#@ zH~#c!>~5caAsdoAxQf5%Xu-2<&`asNan~PP zOUEC%_rYH|viIvI#7cg(aQR%eLqDN6GIZ{}eSxXp)5Guf?s&(O`{a8`_}%$C_WcHJ zF%AxQt>Z7h`Zh!R{Kk$y^X4tSf1Pzr>ik{u8GC20nsKgtxBk_>3+(%L_5Qj3V?tHe zC;Q9qk_CV6wOR6xJ?eWcWA@F^vktFqwredb&8?SM$_;UJj1J7j7Ds}gc6kNJ@Hz7@PS)KuYP^G_O>MYfYkGnIeae_ zKmFda`qjm-y1M>}_s_>(Jy%l8ufA@zi2uaO=mWq(Sq>05bRu&U56)F<2d^AGF=3B5P7U##BEcrC06B%(TJ z_4bMPPsf&8f2i7geRIAo-=25HE0dz`zukA`GRNKr>o>(ePVVo{YKfb3Sn1R6@{GIu zJO2Gc>i)=sj(Nk*)67Pnn7n1%nO(Ar3eyW@f9|~%>TlSa zn6Nv>wNC#2s%J+`x3R8SxIWJ>CR#I3Y5(;6xvQ^wWZO@7ee(U|+EwgvpPd=AXT9DT zb9BqE-<#gG=dxHq_pA`Ny_8c$MTXMdj?|%|GpTgH{(x^mcq=U$tk=?ZT*nu+W@q6Yrj`eO)+3 zujZ=QhGWIywhs62T~b@4y?YkpuQI;eC*NPK-6fsy0H&vJBTy-{Q0f&0SY4}w8?_Ho}g3GTY z=a}*PAM}0l{q>Bj_Iy{D9J6bw>)%d@>bclroS9T5{pPmduMa_?2c*tNZf`DmoBMX= zwP3Hi{FkVkN(GR?;nJKfB{;28xe&cK*5kV@g$5CeM`Jy?^3lZ{M$a5O+s> z!@Am4k`;HIclG`GHzx}0as~qpSf0Fb-5InxbF18*IVw zFY#lg!ar-Rx8xnqI3jlQwN1L|;Vo}`ze-*U3fk&y^0w!l^8WPvtHD0m5`n@``H%jT znf<*D$Vz6VE=F2irW~cGY=G`I;Elo%21vtvoKVe7QO6 zn%u18p`w?6-r4HESAGk$&o7V&J8GmlQ>niB>V&T%v(NV2Ty-NyuBPkHyea#BuJwz$ zy|Pq1HD|}2WxZzwTHeUXMu$6_r?hK+UwLKTv4)-A>yJA8wOX$B>G!sLTbG^JZ)zPoWz4y&yFnZDul8JQ5zpg}cx+fIo+^_ZZa9CT%lzaU zjO{to|4Q-K?lEaDdu|cx^Lp34@bJUip8hY7J#dR}W%~*1b+2X|KmRuF`quTh!CYsULfEOWTY+@&#{m8DGC#{hIN5WY?Q{ za#icDEiQRj(LLkZ*LP_>YI};NZdj+-zcKAa+nberm37;8%5QN06D$1_w2?q$=l%Ni z$x+w8?%O53LtlR@>zem7cJ+R)?c34ylCSj6@>>g~AWNl!8`;e+{*MVC7vX{&v;;MZv%`o64Au6jRn>9Tw`S> z{Ww2qb7Ap1=?CxpUtBa?HN#*3eNyq9tB1Ef*MIf=`2OCXIZyruoel7{I&fCda(RgV z#Lb;wzjdq$UbSW)-&3tm)fGN>-OnvpWVX!Q=Y{uH=I@WTHJE-4HT@9fy`kgJKDprU zh4&t+#cwgZ``+yAgS#)v%`Zuvi|jXiXK-@$4EOo>Rvk5XyXg4u6ZO5v*UgsrUj5$p z%=70g@vo{j@O`cJiMoB^tHA8@^UOC^_U9*m|DF1`X7=jmzwg-DyM41d7uj$93)*#b zw=NUAYJQw=$**U#^V#Ac36UZFgM{VmGu{_mkNnzc_w~-RyPwyGKH<4>azkIo|K5(P zGv|L-Q>wH4T-=xYHKu;gkJ=;Glh^yp#-Bf}W_JAkZt?x|7tdFIw7uo|-mbF~ns)v& zHG6(-=iMWJ&OM*L>6g`#v+eH@;T3A{%S7!J@?t2_nO@|c)rbOE_JEtI9qsa?vIFY z!H?&k$FCNa&(`{9?)P5$?>pu6A8Bp<8!h>#Z~R^TE_&9DFFB{??=Sl)A^6|w@aH>6 zpG6&e8tHcA`%Ohi89ihE;`BgRwO$a|_q*TuOyo6#g;r+GQafzql^z{m@;onj^TC>R z|KjItoA@Wf-0;3)*z1lT^H02dJ>j1Fko{OsgLB%LQ&uVO=YO@S zZ)e9JyPnXm4YpPxyH(G}tdd*f{qvpj{`pxyc6AlTh;G=nFREwDvmnq>9aleGb(@#w zEms;@D&DiQ_s{i+sln!jb^Y#Xp_kXGK`c#RL0PJQ?%C}(3?fgDcSNYBN4Oqof5J28 zxRuhr{y)ijNt09arcJzkyYx|U|4Zj7g=hFc3o?1$ZSVMDaVgnc+4h}4*iA;aXEAf< zgUXY+OTFvrKGlL&6XljMbZzXJqZlSHJa2Lhd~I(9YzVyJ^u-kR1rqyREoaNr_xPbJ^P!o73b^~|ncGrX#7|8L{2Hw@{IV&=B%9kUPr z{?+i=&wa=0z)NP%@j2`&&0&jJJ9*yz?$bYejvRw`;`hLsXa`bPC@=Cl=diETrDnct zQuqBsZKrqsGE}llX|H(N|Av8CJN1I+blHT2rC&-jIbKh2qP97+NzlYZo?Ly|ZTV9J%$InRzlKKg)ed={Q-k_OZ?Tr)N*}*LQi}+VH=) zjG=E^pOJleJ;&i5y^Ek>Z_}HM9^aE)YR>Qp&gOajglEoqBWU}A0m+jYo0%uPd*1P4 zlk=Mktp~M=gFZ2=4lQe7{5wzfL2GGQ1LM>y*9~$jX#J=W3`D=^&468df z*_*H1#5`waqx0oWeV^y8J|5BbFk^a}-u#PRS5w#(&bHt9!?Rdrf9v@l(?R2Zkh~HH z>oPnr0uA%%Y-WyW;1B%fu<-gnQL|XTt5&Dv6GRQ?KYpEjCS6zcr>XUUnQI;wU9&2E zZSg-~&a1!teIrI2Q*pMP@m53 z@ge!l~RE!0w2N zS=hTz(KjlrS>=;wF|V0+lhH5a(S#OI{@PWXd2Qp(C40~H9@LI?`Qs0AP|Nc>*H!ax z#2b7<=s zzJf*f9~bpM)ypZ;KY9EH&(TPA+xppG_WX`WWB1tB^RwpI>}LLn)$8~YMc4gb{_4@| z!hm$Pmxz;vk3IWib|T9n_|MHF`H2aC7TUQSIs5tj?JXktuVDk@s7a~kH|R9#*uAGJ zLmif_ysq@@rP-(I)%&gmPuaV$SpL28{{G|Fl75u&sO>gi9%5T#t@hmNQ+&Jk`tSLB zJ<Q>SE(kC%-&^U;kH__=M%_ zuYG5IGAqgU=>7JlvuAUke2>g+n;o({ewF8r&OdQ-!Tri#l05n+-d~*js;no?=SuFA z{c_VI`~%M|nAm>ey?cEBk5^`&;wO8rSw7>R!g;&z6Yt;Gyc+!H>+hUshh@1}*^;$B z?y0Pq`f*i*Pw?9I8OImgw&F3q{e0`XxG!&3HTcw)%7c?Tg8_WJ`o-kE2Uo5CWg{{n z*XygqZT6ZwH-zk-QrUjIL{C@q{vWA%2Qekwb-B<=154ioR&i$EI&VqZ}-zCLK zYkw~k{#mQ>{m)-5rmKCb zHkukY^^w`9_}ShoX4}U1uUviT`-bhW6t~sO?bcMdy=_g;@-EOJhIhZD)aoeQ7I~#< z=KS*63eM&=ao2PG*T3UBaV@-i-WjOVW+bNv{#CZNfN&Rsj(ClD`(t~l%by>AwEx!i zb<`hy`t_xnjQsOWeP<27)xNPyx9sN+{8#wjy{tj`kF~YK!n*FWTc;JSNh;3$YiW5L zyamTDm0jaX|HByBU~$3!($kHPWXaCX4xTQ(IO6n;FX?-q-oH23^dzK`2Axm4^XdC* z8-Kptqg{lybH-|+ZC_~h+{*Ee2|m&X}&YN1Q+Q z{o*^XU;94!zI^?yi($6>xfbE=>t-|mvNsR?G3W2Dy!$V1CNoOP9)4ab`*Z!rZL7*s z;zTB_KT_3o_I0J^sv9-@r`}bE*&exVAAI`Uj@1x1C6u_IUj&=zO}OTDcgD4MGxu{! ze~Q2MTciAgYn#?7*(+vOclBoScuP5zt>>?eU6vsDbFbBsTZXd?oI_pixc+->`gK?T zr}lt*?sfBjb#1>I_$}LF>aPCNKXtZvi_ShTe{;QineEYMpU*~bD$ZNI+P0{8kI?!4 zo_|NrOfzJL67{>m(-qHk9ZOGD>i69ix-@rJXY0oPk$R~fT2 zk~RlwTNi(G+xo0wUhFJ0GwHI;@yj)@*T&p)nBRWl{qKEO`z|*f+&c08>e|G#tb+q=F`_NN7}Id1SJefI1V^|_l~DSrFScTH?UY4qF4 zb06Pz|Cjw|*Sl|L_Gu_&m)W*u*ByEKN9U>CxBY5yq7$~SfA=j0TExsb0$Y0#w_3Tr z`RcYRt0djfDLXyC$n4!^wG%Hk*(Rd7Prhg0kLtP9 z_;Ypg=1QyIUuQen9(`83(rV9H%~dDfN5DW_V!#$P@ z?88}~+zso|{{7YV>yB8F3FeFEB}L6Ye{Nyd&wn~k4f*Q(^>>P!v#)~=8T7%=`&hqq zBIr!YyYn|Jo6YoT{^EIuj-5)rDp)A}bA95=(%*MhdzXp-Tz}ZE)b!G?;{mR9`@gL` zKJi+;=dBxG41aIc**Gt0*87LKPrk2PpXV0+^-pYT@z(Wn$+MnkP19QT`R2SwJ+5^#ZRt{+r0AR zyPI~Pqdmnl1V7jL+kL6o+xIdqdA;)f_S#a@TdVYsE6rK0fBx!G&9i$7!VS+SztntY z`r*m96I(aT2OrcJD!Xx-*0aBRe`?mS+l9zpmQ5>_UtXVAqmv+88#;dn^Z?Qu@I!L; zguPm}`E}#9a^cy$oi|@gE&_$%#w&sEb{4GL#m(%n4K!-`Y;9D}mT!i(u66gzt_JV8 z)|V(K$UpJ_ue2+*KA&T1-_}0)zG?lekJD-k#R9(-v>CqEtC5rP68-#B@0-Z-dj4vS z1ljekpS67bunjbk5`X=1XZEhX$~l+ye;3NyeV@Om@9f5Z53&_KU4XCDQJNF z?Dh9{pQ^X7&U1^l6r7#tyxnlUBFF7lhGx$5Un$NC>zH&tw(a_{E%wgxMeFVz*>mpd zq!7cqiDB`5y;%)*DeF_Cw=%Ekt}6#O^>#B}3qAVfzVy382M!s=xJJ(ZD4+B>a*t%i z++4=&*Q*^SIA_x*e}yKy?i{Ra;8{pNRkEdAKt`{9XP`lYPXI zoTDapY5$?0g?yno>o)%H`N<;`adgl9{oZ#a?t>@S($;W2*IK?hsrb(yp{M*j(Z`_2)j!xm)~K zaQ5pTSxcTry3D-(rQ_^*wi-3aR^A6XeREw)zkGqNV(+?kB&{Pf^Q*<9S;}U!pNk28 zoUr5AzS8MCE>1n`u=;!8J;TlZcioSi{Vc`c6?!yn@$cN6d;FW%&pjTKKHJfnDRtGO z*B{z6=dHf}FhK$E7y@;;dZ($DjTA^J(Xblii=hUl*+Na}}Qb zKJkCgXF2=VH)O>BbKXCipix?5JO8$^{dX&~=bxs(KXlsI-hTPY#q~FCXr0>ScHiCd zzHi)bJDJ}Q_suzZaq|jThjhl$*&RPrt&fQ9Kc*JlW@a{f`Tp+pvp@N7?K`XXE7awW zWPCgKTK0;ZQx|N)WoIWZ@A_zFTDH-$ENr9Yyj{=lmn+-KJ7~`OVde4R_K#gR_sTuo zdF|u(@9#pVY;BbDx_ab#@z>MO7d`uVec{@;DaEC7wT zy8ABw)&4x~zQ6vEo7X?Pgr#>s*PRyMAK$JR%8;KK|7Ty<+23F7rs>z+Z|%Kru=O@YtDoAN+9O(zrkh&4*b~y>cBxO@3C zHmE7Bn`FFaOIHW~Ny%fNg&>IQU672f0UZjw{0+#p3;`QfgCm}Me=55~hq5AS&?BHWO_nfVLsW)rTk zRQ4ST-5o0?8^8Hv2+_~LAOouz8Y)5CSD_1u9S+WV!yx{o9kk&5(D@+9u>1@O*qGL{ zrARk9#O(RD)9Wk3z*7Q{BCg>l_)-*magcX6+}(bYQSZoa(8?%VxZMb)D>j2Ke*r0V zcnCTmI^-rJTbbYDm1l2e=1CC*EiSzG z$_GTbG}s!J zEp7wZ&%p3N1Xi$|IlTQQ__`dhgv{D5&@!Im74nxQ61LVrH&)GnuUmMw5GhvYJXzkc zVzaZ%12ZMDn~LAQWS4=>U|_I-A58uE0%#2#bfir90%#3**V%*>mqG%vcUwF zZkDa@JIl5fw1pF7SOU{Oed`0#w=}9JgbE9O4}7=be{S75*bOeu2GAva3BN$a3v@ST zg3`5{jNdkN7_mpj9{s`=QOofk60i&mXIfy(5icWO7A1T!mHozLB{Sy5tL{h$Zai7= zJtj13(&07AkFLKF06Bw!!9WD=!1uR7i3+-|P=>mvhz=G`0ZDjM@&I3Iv}&R|Ihr_yk9pT+j6Xn69%7kZ?Ru2WsW?Hx@&<1$Mb*4RX+m#~?8F$In|bYm^_wCpJLxA%pk?TIL9y$Jm zN9OtQjvo`?YT=U@VB6ur{CA#gL-Su5wg^ZWR?xWb=bxXS3(NmJo87n=>azwbCArPc zUp~lB0tq}Q`7U@dtvx|sUg^l-}Yi)3DR{0NswfOcG^k@B6#*PRzuxyKlTY>ZiT`^5j7 z^Sdf~ivIIMnz9TJR6z4i&u%n^+^_k3_JB7?9Rovxzpsl;O8bk4_DY~|JMdvu#}0nx zDMq@=kKzS4p6dk(GB7YawkQ+3YR`5K!aeWx6^55?Nsmw4?w)vy|XAX1# zkPkL)a9|5)dIIjAwV=ZSw%?JMytS`mKEw;NppmNvuj(^@A{|)~vthpSqu(77s?TS1 zmAd?qn*A_z|57!u?FUT%PoEy&IuwvN30ZYzj;-!Di-nZ@QqUHKL7Fasqg0@ z!Vmr@zrTO@$*%K<&wUQBbvM^zZFs<|@;hKr&fP+fKsDjh4v|GkZuizKsFXQ>t1nze zYuld*ceYMCGi%#R?ewQ_)-Bz*VrzKRdE@>ivgeOHdVFL`@ok$^w^)mG)E}R)y3o2s zl+)@$>l7D34F=u?@AuXROmXGvb(+{(Re$yCPaA%@&Qi;-YhSHfXSMv*9(D%3iLh!T z`u_UmKV%Q+eRFyJQs?xn)`Un3pJ0||={bbFh_x&`t{`$275^M)Lsupfu zA*ElU5W4u{i_ftT(FNW9%ch)q(ZOAj?e+5E3l5Oz1J>+i>1~d(UgvX~bB->}S>>g< zHQ392-`D+fcZh%#FfiPxiu-_A9NKn_`**_gPrEH`H#388!`x6h<^HemCFyO^qW6E5 z?<~D!d|P_;luIAKm>-4?Yc`xd0V{OZuJzEYHLyw&wwHjk$$5Mx{!5z?`r6vhenL=I z+#{n`U(PhFn({9#Bh;%c6q0Bh;H_YYgCOLKo7{6Ix_yLRGEX2UTFzQ@TNQ{OqC=^B$12_~$69YIHMoR`zFyKlI!WS8NdegjC^5iMhzkSib zn5}l6dsntQJ4>c3`-HVxORsR|fiAS}&Q!bo_r*F{NHxU3aKSyb>e=U_8$N&6)-x0s zrhb~&)V+H0cM*mSs-|XUW^p$}rF-p`PuTqNe%0k!|&X<@5GC)lZz;t9Njj_}iDxPwZ+I+`Ig@uJHR#`Q017mdyWMRQ=NY z*+2RDKfc=Oa5m_!`E~S>e|+KBkk_udDHqniX0Dgtc+)8EPImQqPTQLLcdqyMKaczW zaOHfO{kn7TTBsZQguP`Y4h>-?3^!l*JYZOD^4&XMf3ft5u;UD% zv8|%*n|_pN?`r%b3G0yL7^apmRQ`T){aolpUWO;{|D39lyzB6-&yAgdVS2k_Sj;Nt zi;OAjyZ9uw9J_L)riA(C>P5^=Q!X;5tnLCe85;7IJzKZ+Zhzjbi;z|Z1H<1<1@CiH zOPGKDPD)?dm&c$`eKvaC{7g6Z3467y7#Mcg@N9e(BzloC<$XoTfd!`D-fJ$BJ`pD> zD{!Q5Ud}R@spWS9T+AUlK*^M0LI0^244=xfGIjr6k(Xb+$eQ8A?e%vyZtuxU(71Au zk>SA8#17Hvt2+1;szXZ-EXbW>bGs`~p<3De&fDlyFBmqJnplC%*%cXEvrF`@!#B6m z-OvRK8%#wnGCs+@{-wft7h}W13tfB)^}+VZ25JmBp=}Wtul~s2zg6_^fq)f@nAz53 zyqVXXr%)eS;xNI;sv+m#p8` z1|CDh>Ei<0dajbP4&PoqjsM}HZk04)*}HvMyE(~ym_QV*z1PaPJ+?#gItk2z?VZ#2`<^Ez9c|mc-z@R7Zyk>`p z+Wkwuva$vRn=hx9Fx^~z-uA;nzY>=QC4|Gz9=jC;if^m=bx-d3l|UQK4)!{Cs-ul> z@;B%`EBD>HSeoI)ec|O{(HD7B&L{XV+&Bb^K~Nfa?@@B#fbLqE4nKwJ(h`RWpmeut z5vXmwVD`q&$lHHkK;jb=A}5ohz1U(+`txl{R*i3Z?-guMKjY3mVeMjYuwL*@u36QSr%=6k*Imd+3&V|BphR&k zGUoM?DOLw18B*Sr*S}e11PUd0Py+5(42!vPLw3CeI5+lT{AgLXqcegBJ2IUKbjK}MDF6_xusDCc^ zBfxrB;)Q2*FW-VPnAP8T-@`A0%B=!J>+kY9Ajd41-??4(F4T$(?x5Uly?0NY$u7o* zKX+^HmVi77^7DgFMn}5xo-JlR5hp8akdeH8-@=YOP~LHv07@TQ7eiukr*=Lxd%}#= z=l*^#Y{`^a2PIS9&3+#C>IECar|lcI#DN0!F*qZpc8H3Xm+kEF17$zo`p44C`CO4g z91_GY(tf^~yzTczUq}!!fT|AH5{93PyHv!(vO-9GIiFHftMRl)_S>T(fCHtM)A zV=l<^Vb+kMBg60gj)ju4j^9Ax2R6IGZdN~^LcVskbSTK^+uLgwb>t}&ORqHkYJA-4 zq9nw8@n9GB3HztU|L~B#Yv3WAU*)R}Nuey7ix6p~`0d&EI*X+xxI#<7W-~B2$WOh< z_~h-WohKJxPg0p`w z-3DdV)y2PT->+Y+%)r3#AnDrmX{TSXefs{={oUHdkP8GD7=En)Wx4r(e(lr(C6CzM z*&ydvyDws9XgGadKwIybLkYvp)nGe9i|uwbg6vaTGv6lG&3wXIP+`u%uuF3Ot;A}J zyIa5s2ITTzsSoenJ_WMu=(!--y9^Hh*4?m+0~O|0pyK}z&&Eedpc1*<#46!|+Og9w zST=>bv%5&#-g~*h+$C#a5rl+?YiikTP~8WcBe+;#<2F)S_*fR>{P z+S-emPuyPj@?#k&60QH-0%xw-RmV4i1PXpiCLLw%{r@dG8k$57%<8qhJ^P|y%6eH@ zfh9eB3ek`#D+%;D^QISEJ3!s+ATQg+r;r~X9kCKzh^{q1bH*K<6&M&Kc%0YV@DY@C z_-3WO|HDMTk|PSf{}#(@fs#OJ$pLUQ&emL-R=_qBl+U+=W9>oGxBFG`l91X6YRRt^ z9efJ;-r3T}!FHURxe=89K~>R#1c{`hthpv;e4x`U-3m1J%)r2~pug({!zZ)-*{i_Ocy9fg=@)rZ-e;6BFc?U*MQof2 zN`kVTsBHsKsRb?f?&hpnZ?%H?ZV0&i200hpHdy?`#kM+`Ycdj zf@*%Y!vfl7!JuZ06(}qI{tnHG97zYHXG`vE1dZu3Pq$ie0zT zT|P=P0{etz2`=@a)pzGzTzEn&C` ztG3*d*MI`T9g&<*G_KjX;@O!B(Yp)>0y13LC+uHYF0*=(G(*EdgCkwspmP2`s0xt1 zYmnfY{5__G`6sB2gcJ@$mH+v5SLYm@Q36i?&B-02_un4b83wAh7csNtzItbU>IGYy zlc=mgM)CLkdwcQ};+Nn5{7-8asQsar_WWP7E2zbFM)~_Ta6$nE3^aTHefIM)xNZ0A z?qpX;1CF8Lpy83O_uJC1J&E46axpVoUfC{Cas72CyWN$}K8^qvP#Ygo>dm}o84pT6 zppXQa%CI0_?A_kAGlR0&(kJZ96;1{hebtYyWNGhed?VSz$)J2hKwEDKC?C3mjLv-O z0P@CS)Mn$g>(lr_wSpGd7I0z%)#c^KQ_SFt1`S1v`_0VcVv#5{63aojany?W6mDH?9T; zBB;jU=~E1|aesX7`gBmH1}C=UUQoWddXdo)R61Sl12=E=W=+2RO%#?q!3Mur{PP9F zr*B&~w?!~sxcjB0Ht%KLE7{|qiZG#oXX7JFsi*&xb~XN4`{$7RsuyjJQq^C1Q)kWW zI;T(%Y9oPaS4gw5z;Ji|pNa6+3fOQ+n=Wo+`7;ktVYEB#`jN&LY@4owT*G!+KzrW$ z9zKQYw=WtTXIuO@1+oTI?7w}{<~V!z|F>&jux+|(`FGy;>lXzX7#Io+FIztY7yC2a z->qGQDE38V9q!rv{8|i-y4^o_y;R!O_y$s9NG2WqJhR5z98?5>+UAQPZF5j`!iqWL zt$%O*ggFZA>KD^ntMj!NOP{zeZtV@OWuqga^cRD(7Xw4W2A++Nes;ZJ*koR$%`1K1 zqEus7;~P*wgTz9i1%B_wlhE)78_B>>8{)z~VSBK5_RHn}eng1gWpwy<>Zk4Gi@Z

T768FTvFgX&*8$@XS*Tt68pO)c}gaX0vav zUU$D>`&9m}kw5ezFC!>5hq{9*I|uXbx&JSLYQMSXZHn@7mGkTFng)V$yfUaY_dqh~ zXt~kPX?dV#*X(&V0&~GlR7iM0O_hGV8q|^#g%1LN+KAV>@)YWe_kZoQ0=F$T*6snd zFH1pnM@3u2NAq)#`Z=TIzyaT$=@&Uu*7xyoB)R*WC3}I2gqyQ(6*|KjtKdLxu+v(^ zd?Gr%aP4Hba(PJxy^9BDr$wL5Jtll16r82!m3J^_)U#xs0&e}@BLmS?sDljY#zZc|p=1uQ8P%jZ;IIJbNI(^z| zP;lpmVSe)iuBaWgj%c?HVgyZ^rhxdBxB!&>>pzw`7! z*(_ZSqm>^WbJs!+)Y>XL*E1E;fMsAvl1Msg?597g#@ig!D>g051Le}V=XaRpS1nd% z0`=kG{rK{8;vj9Hk_PN-P^QkyUIuCDceXwS=a{+ik>GrN@dX2eLYrckP4aUe!MP6K z-13(u79K4y-?b8LcpyyNUj~%oKoJi%7SgJH-)H|L2GrkvW17FSZW*jqt#HhxgyANr zlHCh#i=#FGEaku{>~4?0dG`ypP30<92?BYxKOW50T&lEmij=s;{)uLK6??hkx0#Da zeM>u?5%ZuY-EY^I)R?TpX{T>&$(@|~W!oJ&xo+-xxBmbB`1A4qg@1qkN`C9B2P*49 zc8F%a+1uU?s)k_=2&vuA7a5Vgbt@Wg5CSEKf7g1A*&!n=3=BsMk91850`-T$;k)eq*T=4)VhA+811g5P@)V-yUVdL$ zFDnabScn^&8AiLAPuLGCE=2DdFu0a5R9bER;NqpZwHZ8d&A{+tJ*bxb{p9+2kT0IR zM{Z?Uv_(t|@&XM*fEq5)CRbeTyGH)fMaoPfNTWz;-(_d?gZrNc8m3%ie3Dt4ytWTC z!U$>^)Qi2_xwa!up+5eN4#=BN-ggGC2Gw=tHdYJ_9myS{nvxz)<%_pp+OQ>QhxFYm zXt^C)wS-<|WKNQ{5HG3wm;xze85kVmL4B4>_;F$g9ey|&Om=H3W1MSW%GqkgnzYA8v2+Enkiw(nELBnXEVFr8d?{~nJ)Bc|y z)n9|kW8~orknx~+ymw-)NlwkZ47~ddG|a=muptyQSh*H9EM@9^OK`OPjHvs*TDXM$^VP$-3i zS{Jv&&+CAyo+tU}ZJLcd8>MnVNeeVOko(AYeWoj-+FGZytFdNo-TB|3+Kz!?$BgX! zz3V|qD&!&~bATKBgymPSet!A+>+x4FAO$bOuT`LyP4{YWA69~kE%}l!s5NoK_(;~4 zv+nHRn*74CxY}C5yAJ=(*?(B5wM)@KP}X6dSxy2I149BwkN-JvrT6cQ^7oQO%4`dI z_!Rt?i_i1PWU&{AbZ2j@0u>|Bev7&ov?_kPt`pS6lkMbVV0Z+I9Z+-0yh@w*@?`c! z!iee})H-HhxN!E@t3_|?KuLn9gL%$|nV>`ujd(Zq3Hz=8Jt%$)N>b%VzkLLm3u@^* z*f_6oyZLh}tT&gJvYHHJP*SsRh|P6`Coi#!yiZ=cJm&_5 z4cJGJA|(8bpG+sHy>;DGo%h(1*`PY^M6+Vp;?5~fk!Fy(u%&l0(FCGpG~Y@^`eatly@(`diAqpQSq9tcVN317Oal~4Wvzuw+{yo z=FT-v2DScHgT}dRB$7;b!G}S6=YmGAHeI*;f1v%VakoDx??DU))#?B0UiJ5bD%q6vm8ZWNgTg)>)Oo5j zIFeN|6*Nr)YM1oJZiadeQc)cTk7O*Eee6aGXr$lm=>k4bnt=EUGo`|7|vP)8P;D_o0{Zr@8QVY!(N zN?MY#4)dl>JKytaTRzzF4QpRHfSNs#x4|Pm_ut+82r8j`_dbpgz01JxF;wQlFn=g>}k!Opu?9}XJrYOJyS_tSnItb6-n zwUSlC9^JLM78iIKV)s5Zz5N_gSTis@ISjH1G`dt)a$te)-)H^epx!^IrTOgL{?(#) z;l*QG=|>mPJQ*ley@I8xpGPNa_C9#-1ojj|bPOm@!skc6xPUu-ppn1{{LX9KE*`qH z5Hzys%Fc7^*vZYH)=K#N`UlQ)VW|olEhl$o%W(FArq3Xi`_rk$@XF-x=7RH(nY6S0 z_L1O040XS?&|xbE1_k-Hh~7nSFT0j7-IU%twXM_8dNXJ|UEoM@^H~{CfyU5~w+ud! zmf#@spoQCN{|(SsB-jrxRvTG0fQQZA|Jtk$DvVL4WgP5yHcI(|5(}uZT5D(*2C8ZU zWp986=wQRYk+C)xLGAm+MFH(fpkiySZa*U8!3~A8Ge1I`Kl2dHA5dHf8h^WYcrBAkD;{hu0#isj#3PG^@zg%4i8i~1Td>Ygq`e|L4 zv{dx2!@p(s3fF+zj-L`cuCAzjl>?eIcs2F6+$$G%o=Zpi>+4ZkK=(tJfV()a&g{M) z4{jtJI2u#^`aCpgJSf`z^+7Xe$nxvYU&-*Ofzgn{Psl~s0j@pZ2Wi{Pe~nDUx3CS?@fHsfYKfU zbxNW6^X#uzKbc`=3%kX`renv{AayeX1ElV)FaLA!IjEcmRrR3Z#cEKw(XdA%$+QYo zBZBITTgMJ9ntSubGEhJLxtUoqGiX)iP3if0plQea5WZL7s{QEF$w;9D8f}5jyf`nM zbKh7JoUa)e6!hC7dM6x{)z?Q%&E2`=1&XRZH|XS(_}t=g2gOKRo~cBrmi>!@vLv8jhdW1hjXonEG38)go!OwHwRbA!7;+ z3aOw$UvMUTkd!t{KfBjAr~4dei0;7CveyUMXP;#ByK&^vrI(N)RtAQKeOjPt0@2OF z?x1n&`-d*Mfyz^>;P)2SI{P5DWq|sR;GUIQ{V!i|$_5q5#ozCTf@Vz4%`D%)zpoE8 zyV!km=l=vyW5(|D3EQ`z5@s>;iR{`eyT?<#2S06shOcAl&?Xnt@NsON3p7STKH z=L-hV{0PsTJ0*g1QJO{YSdS6GezLdH9@WFBZRh=GA2`raYi?c$&&I;_gd zoh=0#Ah#6NX+*9*3y?HBv>Ak{r&DNVy*^tPhbOiXJ5*in}7y!Ku!6zFBm?3xzc&uz4SJut8gI9R9@EM-n@u{1=0+= ze&2k5Kh(t>Jo=vvnv?%&cqFSt#)zSq-G)yIG_@`L3#N0xs@M5bA3t;l>CU|&Ae(&p)!{ryfHXxQNXpC91D;HUNe zO(222pqYG!c|04XM4wLsP5glx+QN@NgGT?lAftc9Dv(@1bH>eJ&>*ChRf0p#^JL?< zu!(talFC2sue-eb?@i&-5_X20+4qY6`WRa^frdXBAjWSF2Gxq-dTV3$HqdY^bjgOz zTKn2fpxS|isjt^*V|8ow~0Y#ZlIx$%>OgZ7r-gel8 z-~}_kdAXp;jK`44gHI;g%F97b8wQ405n$P-MP^EZ~tmcp!pSW@uYA*yPT!jR)m3 z1_$$G;mv%n96&>u4ImpbQ=jIjFTKJE-CDQ6U+mq^y`Y-^-H#K`!3E9tBP*|ll`!A5 z28|d#IW4gIBB*ZKYXzQhezsT`wCDlUOybTulWQ#nUM>L}RRk3_pz(!y=XB?R+Ng zedjgX_CbfAK}$d$9Fqcd@K!HoZbF`CG%kO7_9=XwNle~)>mU2lyn540*ej#rB3Hm> z1|hzQHMD-{V9rod`saujsI3cXkAq5AP;jjUPcwmrjD7$7_&z-|P0Okow7RL;to(m0 zcTTc(=?}B~x<%4V;2}cLXc+^;U7z=JK+A1F%T-`yjtg3u18&JZ z0Zk7n)PJs41C63UdPv4cvR-R1Vm@*2B3dH}GzSi;ug`-1q;x8k{kIB2RBAOp+}$@JJ1rKk9QJ`%?ubB z7$)rB*a=?Jbjnc{6gpdWAUDF1`ddUa+e<4`{GwpWN>|`;ihcDBNb>x4a5kEmXfd{Ww3U zz5s{Ye8sTn*;Cnetpv?K=k4n7Q>cF~|D!~LJ zw463ce=^QmYETQ@UAi?wM}^l`x?t2M(A@ zf$B@?sdI0FXP9AAy@5Wt`}KA;{sFBs0+(2GFCXuBgEWsAE`+m#DiPQi;rsOc`y){r zNXAF9R_}V*1xop)VehI}2+JBKoHely1tnBa4;;1jYJ^lyde4rT|MP=ReCln#E?W~X zdDr0@sH^~o8)Pg@EZp4ftHOJRFAtDgN{0^$tX{hsG}8($y8b@v2T$*VR=yx-^o^h6 zqd>i(&o|xQzjSejB(8k{_26D3$dU!?QEIJoy7}NaEKuj(K!#`ItzBzOF8G4#Mrr@~ zpaxgm^FPe;?_AuG$GGpB99s?@d4RT&K&dOY7GypHL-esjw%fOZ7VOE&|BM0m>eSSE zjxAXYY9SpcFgTL6+G=|cC?j5s&YU5!-B=nl@Z<<8C)ZxA2AwLN@B(=pny=tc8d4B} zW`ID$g^=YiKeO+Z91RhKu3Ss7@Nr?kP@l{%m$$6j{tWa5+DX)b6@FW3_c)_VaOohR>oQnK0(eovG&2lZ9_Xrz9W)K6^h*MH=x2 z&CtBkA;E5DjU=_162$ekMpa1CvNjKU2F|mItl7}xtLE_ zZ~XqB1E_LiU=ZJ&{qH?^USgyB`%HIpNG%DPHL<#Bc@5k$1kE|E2bI&`^#A`#0j);) z7gu`r3upl^xW+$xSYY+qlV0G3P0eQimW9KrtUTB>2ej)dIUn2(2Gwj1AoI5Dse4uvh z%>ifg(h`RW%oiC`PP2i|Kiy<*cNes-6g0ZP2Sf52KUE7>l}{t<$~59K?)gAISk5A;Bq)O9#pKZdeH!};?pT7Nb4Ci zKWBNuTKwygL!geI!#}&S^IxInF)*~XD~3h;Lx!ZQS9Ik`>^S-qJjRYXpVED^_VH|R zQ{BqyK~eSHgWpYq!K3xk0T z&&FF-QLrAEu>HTk&;>o9V&?3<`f%-CjX77-@BM9rtf7uMbK^-2XsAQ3`pY~mXp`t` z`27DF2!DZt4%WZ8ZD(r+nXqDDNZ0|&pXuq-_?F0Cz9{-+Ehy|ZUcWQp5(nS=Mdr`z zA0G}aaR&A6V9U?XzS+mT&&3(sJ_a=hFM~!Zf7U=&b0?gR*zx=uXu$RFv*YvEfY%7> zUO!(l>HXA#Lit`k28On7#jxnJeJ?@fv}`}0#FnS=zn+JBy<}f(t>6qA{o#ei;5#g|C)q@WVUKRf%hJ7QFr88ig|U4g;CkYFO2v~_CDTOZJf zla=;&+YonmhL36Q_pgTJ#+9G~0}@%{#bjxbT zWMDXuVRR%*duNq9Xl2Bz7Yqv0;K3&F!uSV5pcsmKzR~^t%EiiTp!P_7{0jRpa8Cz3 z@s?V`P+9%*9dzJH!nZ9VR~IxH7bgnyF{J1$xhye%9`c;|%QJ_BHJ4uD!{`=0yZ5&f zQn^A*1H~z*XOwcdZ(hzb&~i>tF5LUL4b-*-&5{=>ST)%6_WFh)S`(->3Il_|BA$)6 ztYA}_4LRT<3EEO$qc<-D)Ey4ATmkC6&J#l(vjxp$+`D!y7?N^&^qkjh>)6Q7KOHpJ z^mJeQt&6-4W}vLLx(_@C)ID?er)Nb;Y5pZ_pk!WC~$5=$K@Cp8ZM@G zT)hUWdG=aaF`PL3<}Y|2>-Cx4_5t8PK5+EStpC=al{M9GE>_>V$UFVEF8lrKU3m)e zb1xqUjV6H$H^`J^zy00_ur7whrv+B8O}2v!jyRZshLNCa1oMumZwD=mUEjwiF+s_y zp{Dlf$^Rh`T?`Bt z9A)`j*(WStxpF6HIvwo2TF_>p?aR-vhs5!L4C5nN+!ECv3MPUVcJ2p-otq%G4HD2o z`WEt7oaF>l@vYnT1wuT%_^iO{wF^7=6zV}4%hjCWCTL(A>OJwzzmJ)3Kc=?LHGRT< zEvpAbyPrPzJqtYAYVL1SX9Hf*3Ll~PxwRKGAO^})p!PO&We_A$n*u;1D2IAOy~tI z|A%IZJgMZ#pm7vyDaiQSO~?!{y!g0nYI_gTk})`vb)wg{Vh6PA21&Q@;m^+8aPaV_ zwH372n3Drq{|0u|g7u)r=JxgTBB4`jJR7CzKsz*|cfMa}wTrRCy!wCa*(asVzH=(S zvx7!mz%%`MKX*bW3uE%O%hZ4>_I-YHf1djI0w>Kdg0#^t-MtLygf=LK9nMR98BoFm z+N1_8k|3o>p4#?!WBI!d_sra$FW>`>^nw-vS>62UBzhOp-E*kdxl>yWsK2f?tKlE0v2pbMT{ zK(7%%8xT6d8xRgaR#9aY{hkO9_*VfX43)c+$_}NsFfcGUi1BQc$^%setHZ&4GsYvc z_x@j}1RqUogbaS@J-c=Ne+{@{zld3Hdo)-$SA^a8`6b(~&HcFL&YUI_6nHzG>xU)}Ke(c*#NHKHa?2nSoppHCfKGPZ0;i-J; z19uyEvDn*}pI1W?+=0zJ8>NDh`S&e_G#Wrn_!DkOJb5_h-dL44@?}5=o|eKxO;(qWjLFCCn3g5d*EDmEtwU**Qtkuv)N#Pr)Cx z76dgLtoQGFXAGL3R*-Is;9V{JJPIg-bbjSE0|j z*kDkf{kZ(z-CcP*?&Mki*azwhMct18ZE*mH;0y2y0qeqhkaPo@6%MOTdkz^zWk^{J za!c<_XnSQBsJ@1^BS6d5)*rY3u8&wcmi+J?Xc5Y%@9+CcA%#Xmx@3~+9#GCGH?d-X zgdcc>g~7pGJAJ+lO6LaD#OXa}02zU32m~#c1TPVfm9Jma2VU+`F-D%onfy^s_dyk+ZVY`3b-xx^R`7oDfqm)zcr(2+z z;I((Y2gu%q2Hf+15BhI|n^~YaqEAS3M0TLDThNH|GQYWYbtb6w;<=ZF^94ccnj#I4 zWLZFm)fk>6ewz*%N&^jpF)+X27eFl>x964Mb}l7K~i4LW6;0@XtCadqTN3q{0423E3Nx@{kP|g*WH3Y3I`1$LYxqUFCqF`XS z5Duz3elI>h7g{WXJpQm)!>Zv8Xtmp>i=ahJ(%jD>dGkeDPSQ6A=AI#Zf_FZs@p%=L*+A>4f|Gy0fq3XeTFoxdfZ*Oh%N5O_ z{^HKh{^dblb00vaJQ;p12QB*ZpC1q1nxdDYWYyqp{_R0DB=CNM%V+QuKo?(vx7MYj z|KEk2^qb1S;J`1{3*O~+6|^SSg?+;Ety`CZ5?%v$*0R(44`=>1(wBd+K5f^R{oHe( zRLe3L@XT7d{rlfisk!G(8^n);*9`RbTJ37oT{%kQ9 zZH8jl;iWyG7OegM0P9_hC)}XRDN>etXo?E|Uhh3wzczE{#w|B|G?$)ybnNHX%gaG4 zt8-@iKCb?5c70ymu9|;S)xX7;KU|tu^WC#|%B5T8^Sz|Kz0X^g=KTIvRhzgl&c5Dm z>6A-9&c%Mcb@{%{zPe{6Sw81WruEnEi~9R2Jm{0F90P-dWO4Ytm_GR81W3J}ld}la z3X*U-J0QreX-rW-nahKQvd1c;nQdR|2_TAtRSzKKVB|>Hs7j#*A2t1x_fKB zo8I4d>EmVpsomMyXQu@1N=kFzm2|uBxz3i2FVEI~Z%>;YTlV?#{%Xnm-#6ap)=fUJ zR4d5K^>=%{($XoHp8L(usQa^W{j~C!-;+wdZrgdqL-X&~m%^X@=S6GG3N~JOr}*ji zdCSk+sIL~jpJBUu!R#`#%ilUzzTefzZ5ycnWzM}no5a7J6psJ@?f-pq{mS;`zrX4}-}bG(zunZlIkzMCzkK!j^?sX=y(Qn{|73dEHM1vV zYX*58)!+B(*ca~gdkjO>&zt<;?_amsM{{X>Md-)3+_rz7=F50#F4az3c8UK@cHQqU z%cqCU>Yr~HZTI`W`I)mzq@Sh5MVwsr{+j+DJB6iF_LYu=fjxodaYvCG-(-@V;!IsezKoh4bBe=V2i&X;<9r|9jrSMhdbuWm2DTXr|+ z>q7r|7E^<~c5m-3_nQ~L`rrDu>zAi!h%qo2&eB|3^ff+a?!OO@yN@QvN9xvnJ-%)E zdYir5Ufb8@ExofnTSvC)s`31+3kH%0DO4r(Is&zrO6<--$P0_3p1RlKpw6Xl_m0 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≫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¥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

  • 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 G2~7Z(t}jsl literal 0 HcmV?d00001 diff --git a/docs/shiptitle.darkmode.png b/docs/shiptitle.darkmode.png new file mode 100644 index 0000000000000000000000000000000000000000..56d75ff70bc3e3f243343c99e6639b058440caef GIT binary patch literal 34642 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
    u(wV%isTf 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 NJYD@<);T3K0RRAg3Nruz literal 0 HcmV?d00001 diff --git a/docs/shiptitle.lightmode.png b/docs/shiptitle.lightmode.png new file mode 100644 index 0000000000000000000000000000000000000000..e5e2d822ca0822518c95baa626cbe41253151288 GIT binary patch literal 33072 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 z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/soh/assets/xml/GC_NMQ_D/textures/boss_title_cards.xml b/soh/assets/xml/GC_NMQ_D/textures/boss_title_cards.xml new file mode 100644 index 000000000..3667d2bdf --- /dev/null +++ b/soh/assets/xml/GC_NMQ_D/textures/boss_title_cards.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/soh/assets/xml/GC_NMQ_PAL_F/textures/boss_title_cards.xml b/soh/assets/xml/GC_NMQ_PAL_F/textures/boss_title_cards.xml new file mode 100644 index 000000000..3667d2bdf --- /dev/null +++ b/soh/assets/xml/GC_NMQ_PAL_F/textures/boss_title_cards.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/soh/include/functions.h b/soh/include/functions.h index 42aab2813..7854b9835 100644 --- a/soh/include/functions.h +++ b/soh/include/functions.h @@ -28,6 +28,7 @@ f64 sqrt(f64 d); //#pragma intrinsic(sqrt) void gSPSegment(void* value, int segNum, uintptr_t target); +void gSPSegmentLoadRes(void* value, int segNum, uintptr_t target); void gDPSetTextureImage(Gfx* pkt, u32 f, u32 s, u32 w, uintptr_t i); void gSPDisplayList(Gfx* pkt, Gfx* dl); void gSPDisplayListOffset(Gfx* pkt, Gfx* dl, int offset); @@ -840,7 +841,7 @@ void CollisionCheck_SpawnShieldParticlesMetal2(PlayState* play, Vec3f* v); void CollisionCheck_SpawnShieldParticlesWood(PlayState* play, Vec3f* b, Vec3f* actorPos); s32 CollisionCheck_CylSideVsLineSeg(f32 radius, f32 height, f32 offset, Vec3f* actorPos, Vec3f* itemPos, Vec3f* itemProjPos, Vec3f* out1, Vec3f* out2); -u8 CollisionCheck_GetSwordDamage(s32 dmgFlags); +u8 CollisionCheck_GetSwordDamage(s32 dmgFlags, PlayState* play); void SaveContext_Init(void); s32 func_800635D0(s32); void func_800636C0(void); diff --git a/soh/include/tables/actor_table.h b/soh/include/tables/actor_table.h index cdbebbc63..64d9099e8 100644 --- a/soh/include/tables/actor_table.h +++ b/soh/include/tables/actor_table.h @@ -481,3 +481,4 @@ /* 0x01D4 */ DEFINE_ACTOR(En_Mm2, ACTOR_EN_MM2, ALLOCTYPE_NORMAL) /* 0x01D5 */ DEFINE_ACTOR(Bg_Jya_Block, ACTOR_BG_JYA_BLOCK, ALLOCTYPE_NORMAL) /* 0x01D6 */ DEFINE_ACTOR(Obj_Warp2block, ACTOR_OBJ_WARP2BLOCK, ALLOCTYPE_NORMAL) +/* 0x01D7 */ DEFINE_ACTOR(En_Partner, ACTOR_EN_PARTNER, ALLOCTYPE_NORMAL) \ No newline at end of file diff --git a/soh/include/z64.h b/soh/include/z64.h index 0e2b147ff..09332cd94 100644 --- a/soh/include/z64.h +++ b/soh/include/z64.h @@ -624,12 +624,15 @@ typedef enum { /* 10 */ TEXT_STATE_AWAITING_NEXT } TextState; +// Increased char buffer because texture paths could be bigger than (16 * 16 / 2) +#define FONT_CHAR_MULTIPLIER 256 + typedef struct { /* 0x0000 */ uintptr_t msgOffset; /* 0x0004 */ u32 msgLength; - /* 0x0008 */ u8 charTexBuf[FONT_CHAR_TEX_SIZE * 120]; - /* 0x3C08 */ u8 iconBuf[FONT_CHAR_TEX_SIZE]; - /* 0x3C88 */ u8 fontBuf[FONT_CHAR_TEX_SIZE * 320]; + /* 0x0008 */ u8 charTexBuf[FONT_CHAR_TEX_SIZE * FONT_CHAR_MULTIPLIER]; + /* 0x3C08 */ u8 iconBuf[FONT_CHAR_TEX_SIZE * FONT_CHAR_MULTIPLIER]; + /* 0x3C88 */ u8 fontBuf[FONT_CHAR_TEX_SIZE * FONT_CHAR_MULTIPLIER]; union { /* 0xDC88 */ char msgBuf[1280]; /* 0xDC88 */ u16 msgBufWide[640]; @@ -737,9 +740,10 @@ typedef struct { /* 0x0128 */ Vtx* actionVtx; /* 0x012C */ Vtx* beatingHeartVtx; /* 0x0130 */ u8* parameterSegment; - /* 0x0134 */ u8* doActionSegment; + /* 0x0134 */ char** doActionSegment; /* 0x0138 */ u8* iconItemSegment; - /* 0x013C */ u8* mapSegment; + /* 0x013C */ char** mapSegment; + char** mapSegmentName; /* 0x0140 */ u8 mapPalette[32]; /* 0x0160 */ DmaRequest dmaRequest_160; /* 0x0180 */ DmaRequest dmaRequest_180; diff --git a/soh/include/z64player.h b/soh/include/z64player.h index 1d3c3e971..7ce699678 100644 --- a/soh/include/z64player.h +++ b/soh/include/z64player.h @@ -678,6 +678,8 @@ typedef struct Player { // Upstream TODO: Rename this to make it more obvious it is apart of an enhancement /* */ u8 boomerangQuickRecall; // Has the player pressed the boomerang button while it's in the air still? // #endregion + u8 ivanFloating; + u8 ivanDamageMultiplier; } Player; // size = 0xA94 #endif diff --git a/soh/soh/GameMenuBar.cpp b/soh/soh/GameMenuBar.cpp index 952186786..981bc1840 100644 --- a/soh/soh/GameMenuBar.cpp +++ b/soh/soh/GameMenuBar.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #ifdef __SWITCH__ #include @@ -28,6 +29,7 @@ #include "soh/SaveManager.h" #include "OTRGlobals.h" #include "soh/Enhancements/presets.h" +#include "soh/resource/type/Skeleton.h" #ifdef ENABLE_CROWD_CONTROL #include "Enhancements/crowd-control/CrowdControl.h" @@ -36,6 +38,7 @@ #include "Enhancements/game-interactor/GameInteractor.h" #include "Enhancements/cosmetics/authenticGfxPatches.h" +bool ShouldClearTextureCacheAtEndOfFrame = false; bool isBetaQuestEnabled = false; extern "C" { @@ -791,6 +794,34 @@ namespace GameMenuBar { if (ImGui::BeginMenu("Graphics")) { + if (UIWidgets::PaddedEnhancementCheckbox("Use Alternate Assets", "gAltAssets", true, false)) { + ShouldClearTextureCacheAtEndOfFrame = true; + } + UIWidgets::PaddedEnhancementCheckbox("Disable LOD", "gDisableLOD", true, false); + UIWidgets::Tooltip("Turns off the Level of Detail setting, making models use their higher-poly variants at any distance"); + if (UIWidgets::PaddedEnhancementCheckbox("Disable Draw Distance", "gDisableDrawDistance", true, false)) { + if (CVarGetInteger("gDisableDrawDistance", 0) == 0) { + CVarSetInteger("gDisableKokiriDrawDistance", 0); + } + } + UIWidgets::Tooltip("Turns off the objects draw distance, making objects being visible from a longer range"); + if (CVarGetInteger("gDisableDrawDistance", 0) == 1) { + UIWidgets::PaddedEnhancementCheckbox("Kokiri Draw Distance", "gDisableKokiriDrawDistance", true, false); + UIWidgets::Tooltip("The Kokiri are mystical beings that fade into view when approached\nEnabling this will remove their draw distance"); + } + UIWidgets::PaddedEnhancementCheckbox("N64 Mode", "gLowResMode", true, false); + UIWidgets::Tooltip("Sets aspect ratio to 4:3 and lowers resolution to 240p, the N64's native resolution"); + UIWidgets::PaddedEnhancementCheckbox("Glitch line-up tick", "gDrawLineupTick", true, false); + UIWidgets::Tooltip("Displays a tick in the top center of the screen to help with glitch line-ups in SoH, as traditional UI based line-ups do not work outside of 4:3"); + UIWidgets::PaddedEnhancementCheckbox("Enable 3D Dropped items/projectiles", "gNewDrops", true, false); + UIWidgets::Tooltip("Change most 2D items and projectiles on the overworld to their 3D versions"); + UIWidgets::PaddedEnhancementCheckbox("Disable Black Bar Letterboxes", "gDisableBlackBars", true, false); + UIWidgets::Tooltip("Disables Black Bar Letterboxes during cutscenes and Z-targeting\nNote: there may be minor visual glitches that were covered up by the black bars\nPlease disable this setting before reporting a bug"); + UIWidgets::PaddedEnhancementCheckbox("Dynamic Wallet Icon", "gDynamicWalletIcon", true, false); + UIWidgets::Tooltip("Changes the rupee in the wallet icon to match the wallet size you currently have"); + UIWidgets::PaddedEnhancementCheckbox("Always show dungeon entrances", "gAlwaysShowDungeonMinimapIcon", true, false); + UIWidgets::Tooltip("Always shows dungeon entrance icons on the minimap"); + UIWidgets::Spacer(0); if (ImGui::BeginMenu("Animated Link in Pause Menu")) { ImGui::Text("Rotation"); UIWidgets::EnhancementRadioButton("Disabled", "gPauseLiveLinkRotation", 0); @@ -834,37 +865,14 @@ namespace GameMenuBar { ImGui::EndMenu(); } - UIWidgets::PaddedEnhancementCheckbox("Disable LOD", "gDisableLOD", true, false); - UIWidgets::Tooltip("Turns off the Level of Detail setting, making models use their higher-poly variants at any distance"); - if (UIWidgets::PaddedEnhancementCheckbox("Disable Draw Distance", "gDisableDrawDistance", true, false)) { - if (CVarGetInteger("gDisableDrawDistance", 0) == 0) { - CVarSetInteger("gDisableKokiriDrawDistance", 0); - } - } - UIWidgets::Tooltip("Turns off the objects draw distance, making objects being visible from a longer range"); - if (CVarGetInteger("gDisableDrawDistance", 0) == 1) { - UIWidgets::PaddedEnhancementCheckbox("Kokiri Draw Distance", "gDisableKokiriDrawDistance", true, false); - UIWidgets::Tooltip("The Kokiri are mystical beings that fade into view when approached\nEnabling this will remove their draw distance"); - } - UIWidgets::PaddedEnhancementCheckbox("N64 Mode", "gLowResMode", true, false); - UIWidgets::Tooltip("Sets aspect ratio to 4:3 and lowers resolution to 240p, the N64's native resolution"); - UIWidgets::PaddedEnhancementCheckbox("Glitch line-up tick", "gDrawLineupTick", true, false); - UIWidgets::Tooltip("Displays a tick in the top center of the screen to help with glitch line-ups in SoH, as traditional UI based line-ups do not work outside of 4:3"); - UIWidgets::PaddedEnhancementCheckbox("Enable 3D Dropped items/projectiles", "gNewDrops", true, false); - UIWidgets::Tooltip("Change most 2D items and projectiles on the overworld to their 3D versions"); - UIWidgets::PaddedEnhancementCheckbox("Disable Black Bar Letterboxes", "gDisableBlackBars", true, false); - UIWidgets::Tooltip("Disables Black Bar Letterboxes during cutscenes and Z-targeting\nNote: there may be minor visual glitches that were covered up by the black bars\nPlease disable this setting before reporting a bug"); - UIWidgets::PaddedEnhancementCheckbox("Dynamic Wallet Icon", "gDynamicWalletIcon", true, false); - UIWidgets::Tooltip("Changes the rupee in the wallet icon to match the wallet size you currently have"); - UIWidgets::PaddedEnhancementCheckbox("Always show dungeon entrances", "gAlwaysShowDungeonMinimapIcon", true, false); - UIWidgets::Tooltip("Always shows dungeon entrance icons on the minimap"); UIWidgets::PaddedText("Fix Vanishing Paths", true, false); UIWidgets::EnhancementCombobox("gDirtPathFix", zFightingOptions, 0); UIWidgets::Tooltip("Disabled: Paths vanish more the higher the resolution (Z-fighting is based on resolution)\n" "Consistent: Certain paths vanish the same way in all resolutions\n" "No Vanish: Paths do not vanish, Link seems to sink in to some paths\n" "This might affect other decal effects\n"); - + UIWidgets::PaddedEnhancementSliderInt("Text Spacing: %d", "##TEXTSPACING", "gTextSpacing", 4, 6, "", 6, true, true, true); + UIWidgets::Tooltip("Space between text characters (useful for HD font textures)"); ImGui::EndMenu(); } @@ -922,9 +930,9 @@ namespace GameMenuBar { if (ImGui::BeginMenu("Restoration")) { - UIWidgets::PaddedEnhancementCheckbox("Hide Build Info", "gHideBuildInfo", true, false); - UIWidgets::Tooltip("Hides the game version and build details in the boot logo start screen"); - UIWidgets::EnhancementCheckbox("Red Ganon blood", "gRedGanonBlood"); + UIWidgets::EnhancementCheckbox("Authentic Logo Screen", "gAuthenticLogo"); + UIWidgets::Tooltip("Hide the game version and build details and display the authentic model and texture on the boot logo start screen"); + UIWidgets::PaddedEnhancementCheckbox("Red Ganon blood", "gRedGanonBlood", true, false); UIWidgets::Tooltip("Restore the original red blood from NTSC 1.0/1.1. Disable for green blood"); UIWidgets::PaddedEnhancementCheckbox("Fish while hovering", "gHoverFishing", true, false); UIWidgets::Tooltip("Restore a bug from NTSC 1.0 that allows casting the Fishing Rod while using the Hover Boots"); @@ -941,7 +949,30 @@ namespace GameMenuBar { ImGui::EndMenu(); } - UIWidgets::PaddedSeparator(); + UIWidgets::Spacer(0); + + if (ImGui::BeginMenu("Extra Modes")) { + UIWidgets::PaddedEnhancementCheckbox("Ivan the Fairy (Coop Mode)", "gIvanCoopModeEnabled", true, false); + UIWidgets::Tooltip("Enables Ivan the Fairy upon the next map change. Player 2 can control Ivan and " + "press the C-Buttons to use items and mess with Player 1!"); + + UIWidgets::Spacer(0); + + UIWidgets::PaddedEnhancementCheckbox("Rupee Dash Mode", "gRupeeDash", true, false); + + if (CVarGetInteger("gRupeeDash", 0)) { + UIWidgets::Tooltip("Rupees reduced over time, Link suffers damage when the count hits 0."); + UIWidgets::PaddedEnhancementSliderInt( + "Rupee Dash Interval: %d", "##DashInterval", "gDashInterval", 3, 5, "", 5, true, true, false, + !CVarGetInteger("gRupeeDash", 0), + "This option is disabled because \"Rupee Dash Mode\" is turned off"); + UIWidgets::Tooltip("Interval between Rupee reduction in Rupee Dash Mode"); + } + + ImGui::EndMenu(); + } + + UIWidgets::PaddedSeparator(false, true); // Autosave enum value of 1 is the default in presets and the old checkbox "on" state for backwards compatibility UIWidgets::PaddedText("Autosave", false, true); diff --git a/soh/soh/GbiWrap.cpp b/soh/soh/GbiWrap.cpp index e06f802bc..074a638e7 100644 --- a/soh/soh/GbiWrap.cpp +++ b/soh/soh/GbiWrap.cpp @@ -21,6 +21,7 @@ uint16_t ResourceMgr_LoadTexWidthByName(char* texPath); uint16_t ResourceMgr_LoadTexHeightByName(char* texPath); size_t GetResourceTexSizeByName(const char* name); char* ResourceMgr_LoadTexOrDListByName(char* filePath); +char* ResourceMgr_LoadIfDListByName(char* filePath); char* ResourceMgr_LoadPlayerAnimByName(char* animPath); char* ResourceMgr_GetNameByCRC(uint64_t crc, char* alloc); Gfx* ResourceMgr_LoadGfxByCRC(uint64_t crc); @@ -30,6 +31,7 @@ Vtx* ResourceMgr_LoadVtxByName(char* path); CollisionHeader* ResourceMgr_LoadColByName(char* path); uint64_t GetPerfCounter(); int ResourceMgr_OTRSigCheck(char* imgData); +void ResourceMgr_PushCurrentDirectory(char* path); } @@ -39,8 +41,30 @@ extern "C" void gSPSegment(void* value, int segNum, uintptr_t target) { int res = ResourceMgr_OTRSigCheck(imgData); - if (res) + // OTRTODO: Disabled for now to fix an issue with HD Textures. + // With HD textures, we need to pass the path to F3D, not the raw texture data. + // Otherwise the needed metadata is not available for proper rendering... + // This should *not* cause any crashes, but some testing may be needed... + // UPDATE: To maintain compatability it will still do the old behavior if the resource is a display list. + // That should not affect HD textures. + if (res) { + uintptr_t desiredTarget = (uintptr_t)ResourceMgr_LoadIfDListByName(imgData); + + if (desiredTarget != NULL) + target = desiredTarget; + } + + __gSPSegment(value, segNum, target); +} + +extern "C" void gSPSegmentLoadRes(void* value, int segNum, uintptr_t target) { + char* imgData = (char*)target; + + int res = ResourceMgr_OTRSigCheck(imgData); + + if (res) { target = (uintptr_t)ResourceMgr_LoadTexOrDListByName(imgData); + } __gSPSegment(value, segNum, target); } @@ -57,8 +81,12 @@ extern "C" void gDPSetTextureImageFB(Gfx* pkt, u32 format, u32 size, u32 width, extern "C" void gSPDisplayList(Gfx* pkt, Gfx* dl) { char* imgData = (char*)dl; - if (ResourceMgr_OTRSigCheck(imgData) == 1) + if (ResourceMgr_OTRSigCheck(imgData) == 1) { + + //ResourceMgr_PushCurrentDirectory(imgData); + //gsSPPushCD(pkt++, imgData); dl = ResourceMgr_LoadGfxByName(imgData); + } __gSPDisplayList(pkt, dl); } diff --git a/soh/soh/OTRGlobals.cpp b/soh/soh/OTRGlobals.cpp index 988810659..a3940504a 100644 --- a/soh/soh/OTRGlobals.cpp +++ b/soh/soh/OTRGlobals.cpp @@ -1,4 +1,4 @@ -#include "OTRGlobals.h" +#include "OTRGlobals.h" #include "OTRAudio.h" #include #include @@ -694,7 +694,7 @@ extern "C" uint32_t GetGIID(uint32_t itemID) { } extern "C" void OTRExtScanner() { - auto lst = *OTRGlobals::Instance->context->GetResourceManager()->GetArchive()->ListFiles("*.*").get(); + auto lst = *OTRGlobals::Instance->context->GetResourceManager()->GetArchive()->ListFiles("*").get(); for (auto& rPath : lst) { std::vector raw = StringHelper::Split(rPath, "."); @@ -834,14 +834,16 @@ extern "C" void Graph_ProcessFrame(void (*run_one_game_iter)(void)) { OTRGlobals::Instance->context->MainLoop(run_one_game_iter); } +extern bool ShouldClearTextureCacheAtEndOfFrame; + extern "C" void Graph_StartFrame() { #ifndef __WIIU__ - // Why -1? + using Ship::KbScancode; int32_t dwScancode = OTRGlobals::Instance->context->GetLastScancode(); OTRGlobals::Instance->context->SetLastScancode(-1); - switch (dwScancode - 1) { - case SDL_SCANCODE_F5: { + switch (dwScancode) { + case KbScancode::LUS_KB_F5: { const unsigned int slot = OTRGlobals::Instance->gSaveStateMgr->GetCurrentSlot(); const SaveStateReturn stateReturn = OTRGlobals::Instance->gSaveStateMgr->AddRequest({ slot, RequestType::SAVE }); @@ -858,7 +860,7 @@ extern "C" void Graph_StartFrame() { } break; } - case SDL_SCANCODE_F6: { + case KbScancode::LUS_KB_F6: { unsigned int slot = OTRGlobals::Instance->gSaveStateMgr->GetCurrentSlot(); slot++; if (slot > 5) { @@ -868,7 +870,7 @@ extern "C" void Graph_StartFrame() { SPDLOG_INFO("Set SaveState slot to {}.", slot); break; } - case SDL_SCANCODE_F7: { + case KbScancode::LUS_KB_F7: { const unsigned int slot = OTRGlobals::Instance->gSaveStateMgr->GetCurrentSlot(); const SaveStateReturn stateReturn = OTRGlobals::Instance->gSaveStateMgr->AddRequest({ slot, RequestType::LOAD }); @@ -892,9 +894,16 @@ extern "C" void Graph_StartFrame() { break; } - case SDL_SCANCODE_F9: { + case KbScancode::LUS_KB_F9: { // Toggle TTS CVarSetInteger("gA11yTTS", !CVarGetInteger("gA11yTTS", 0)); + break; + } + case KbScancode::LUS_KB_TAB: { + // Toggle HD Assets + CVarSetInteger("gAltAssets", !CVarGetInteger("gAltAssets", 0)); + ShouldClearTextureCacheAtEndOfFrame = true; + break; } } #endif @@ -963,6 +972,12 @@ extern "C" void Graph_ProcessGfxCommands(Gfx* commands) { } } + if (ShouldClearTextureCacheAtEndOfFrame) { + gfx_texture_cache_clear(); + Ship::SkeletonPatcher::UpdateSkeletons(); + ShouldClearTextureCacheAtEndOfFrame = false; + } + // OTRTODO: FIGURE OUT END FRAME POINT /* if (OTRGlobals::Instance->context->lastScancode != -1) OTRGlobals::Instance->context->lastScancode = -1;*/ @@ -1036,6 +1051,7 @@ extern "C" void ResourceMgr_DirtyDirectory(const char* resName) { } // OTRTODO: There is probably a more elegant way to go about this... +// Kenix: This is definitely leaking memory when it's called. extern "C" char** ResourceMgr_ListFiles(const char* searchMask, int* resultSize) { auto lst = OTRGlobals::Instance->context->GetResourceManager()->GetArchive()->ListFiles(searchMask); char** result = (char**)malloc(lst->size() * sizeof(char*)); @@ -1051,6 +1067,15 @@ extern "C" char** ResourceMgr_ListFiles(const char* searchMask, int* resultSize) return result; } +extern "C" uint8_t ResourceMgr_FileExists(const char* filePath) { + std::string path = filePath; + if(path.substr(0, 7) == "__OTR__"){ + path = path.substr(7); + } + + return ExtensionCache.contains(path); +} + extern "C" void ResourceMgr_LoadFile(const char* resName) { OTRGlobals::Instance->context->GetResourceManager()->LoadResource(resName); } @@ -1095,7 +1120,7 @@ extern "C" uint8_t ResourceMgr_ResourceIsBackground(char* texPath) { return res->InitData->Type == Ship::ResourceType::SOH_Background; } -extern "C" char* ResourceMgr_LoadJPEG(char* data, int dataSize) +extern "C" char* ResourceMgr_LoadJPEG(char* data, size_t dataSize) { static char* finalBuffer = 0; @@ -1149,6 +1174,15 @@ extern "C" char* ResourceMgr_LoadTexOrDListByName(const char* filePath) { } } +extern "C" char* ResourceMgr_LoadIfDListByName(const char* filePath) { + auto res = GetResourceByNameHandlingMQ(filePath); + + if (res->InitData->Type == Ship::ResourceType::DisplayList) + return (char*)&((std::static_pointer_cast(res))->Instructions[0]); + + return nullptr; +} + extern "C" Sprite* GetSeedTexture(uint8_t index) { return OTRGlobals::Instance->gRandomizer->GetSeedTexture(index); } @@ -1159,6 +1193,11 @@ extern "C" char* ResourceMgr_LoadPlayerAnimByName(const char* animPath) { return (char*)&anim->limbRotData[0]; } +extern "C" void ResourceMgr_PushCurrentDirectory(char* path) +{ + gfx_push_current_dir(path); +} + extern "C" Gfx* ResourceMgr_LoadGfxByName(const char* path) { auto res = std::static_pointer_cast(GetResourceByNameHandlingMQ(path)); @@ -1351,8 +1390,29 @@ extern "C" AnimationHeaderCommon* ResourceMgr_LoadAnimByName(const char* path) { return (AnimationHeaderCommon*)GetResourceDataByName(path, false); } -extern "C" SkeletonHeader* ResourceMgr_LoadSkeletonByName(const char* path) { - return (SkeletonHeader*)GetResourceDataByName(path, false); +extern "C" SkeletonHeader* ResourceMgr_LoadSkeletonByName(const char* path, SkelAnime* skelAnime) +{ + SkeletonHeader* skelHeader = (SkeletonHeader*)GetResourceDataByName(path, false); + + // This function is only called when a skeleton is initialized. + // Therefore we can take this oppurtunity to take note of the Skeleton that is created... + if (skelAnime != nullptr) { + auto stringPath = std::string(path); + Ship::SkeletonPatcher::RegisterSkeleton(stringPath, skelAnime); + } + + + return skelHeader; +} + +extern "C" void ResourceMgr_UnregisterSkeleton(SkelAnime* skelAnime) { + if (skelAnime != nullptr) + Ship::SkeletonPatcher::UnregisterSkeleton(skelAnime); +} + +extern "C" void ResourceMgr_ClearSkeletons(SkelAnime* skelAnime) { + if (skelAnime != nullptr) + Ship::SkeletonPatcher::ClearSkeletons(); } extern "C" s32* ResourceMgr_LoadCSByName(const char* path) { @@ -1916,3 +1976,7 @@ extern "C" void EntranceTracker_SetCurrentGrottoID(s16 entranceIndex) { extern "C" void EntranceTracker_SetLastEntranceOverride(s16 entranceIndex) { SetLastEntranceOverrideForTracker(entranceIndex); } + +extern "C" void Gfx_RegisterBlendedTexture(const char* name, u8* mask, u8* replacement) { + gfx_register_blended_texture(name, mask, replacement); +} diff --git a/soh/soh/OTRGlobals.h b/soh/soh/OTRGlobals.h index 830d4f9e3..d1e69843f 100644 --- a/soh/soh/OTRGlobals.h +++ b/soh/soh/OTRGlobals.h @@ -60,11 +60,12 @@ uint32_t ResourceMgr_GetNumGameVersions(); uint32_t ResourceMgr_GetGameVersion(int index); void ResourceMgr_LoadDirectory(const char* resName); char** ResourceMgr_ListFiles(const char* searchMask, int* resultSize); +uint8_t ResourceMgr_FileExists(const char* resName); char* GetResourceDataByNameHandlingMQ(const char* path); void ResourceMgr_LoadFile(const char* resName); char* ResourceMgr_LoadFileFromDisk(const char* filePath); uint8_t ResourceMgr_ResourceIsBackground(char* texPath); -char* ResourceMgr_LoadJPEG(char* data, int dataSize); +char* ResourceMgr_LoadJPEG(char* data, size_t dataSize); uint16_t ResourceMgr_LoadTexWidthByName(char* texPath); uint16_t ResourceMgr_LoadTexHeightByName(char* texPath); char* ResourceMgr_LoadTexOrDListByName(const char* filePath); @@ -87,7 +88,9 @@ void Ctx_ReadSaveFile(uintptr_t addr, void* dramAddr, size_t size); void Ctx_WriteSaveFile(uintptr_t addr, void* dramAddr, size_t size); uint64_t GetPerfCounter(); -struct SkeletonHeader* ResourceMgr_LoadSkeletonByName(const char* path); +struct SkeletonHeader* ResourceMgr_LoadSkeletonByName(const char* path, SkelAnime* skelAnime); +void ResourceMgr_UnregisterSkeleton(SkelAnime* skelAnime); +void ResourceMgr_ClearSkeletons(); s32* ResourceMgr_LoadCSByName(const char* path); int ResourceMgr_OTRSigCheck(char* imgData); uint64_t osGetTime(void); @@ -139,6 +142,7 @@ void Entrance_ClearEntranceTrackingData(void); void Entrance_InitEntranceTrackingData(void); void EntranceTracker_SetCurrentGrottoID(s16 entranceIndex); void EntranceTracker_SetLastEntranceOverride(s16 entranceIndex); +void Gfx_RegisterBlendedTexture(const char* name, u8* mask, u8* replacement); uint32_t GetGIID(uint32_t itemID); #endif diff --git a/soh/soh/resource/importer/SkeletonFactory.cpp b/soh/soh/resource/importer/SkeletonFactory.cpp index 3bca7873d..a10702f8a 100644 --- a/soh/soh/resource/importer/SkeletonFactory.cpp +++ b/soh/soh/resource/importer/SkeletonFactory.cpp @@ -26,6 +26,28 @@ std::shared_ptr SkeletonFactory::ReadResource(std::shared_ptr SkeletonFactory::ReadResourceXML(std::shared_ptr resourceMgr, + std::shared_ptr initData, + tinyxml2::XMLElement* reader) { + auto resource = std::make_shared(resourceMgr, initData); + std::shared_ptr factory = nullptr; + + switch ((Version)resource->InitData->ResourceVersion) { + case Version::Deckard: + factory = std::make_shared(); + break; + } + + if (factory == nullptr) { + SPDLOG_ERROR("Failed to load Skeleton with version {}", resource->InitData->ResourceVersion); + return nullptr; + } + + factory->ParseFileXML(reader, resource); + + return resource; +} + void SkeletonFactoryV0::ParseFileBinary(std::shared_ptr reader, std::shared_ptr resource) { @@ -77,4 +99,59 @@ void SkeletonFactoryV0::ParseFileBinary(std::shared_ptr reader, SPDLOG_ERROR("unknown skeleton type {}", (uint32_t)skeleton->type); } } +void SkeletonFactoryV0::ParseFileXML(tinyxml2::XMLElement* reader, std::shared_ptr resource) +{ + std::shared_ptr skel = std::static_pointer_cast(resource); + + std::string skeletonType = reader->Attribute("Type"); + // std::string skeletonLimbType = reader->Attribute("LimbType"); + int numLimbs = reader->IntAttribute("LimbCount"); + int numDLs = reader->IntAttribute("DisplayListCount"); + + if (skeletonType == "Flex") { + skel->type = SkeletonType::Flex; + } else if (skeletonType == "Curve") { + skel->type = SkeletonType::Curve; + } else if (skeletonType == "Normal") { + skel->type = SkeletonType::Normal; + } + + skel->type = SkeletonType::Flex; + skel->limbType = LimbType::LOD; + + // if (skeletonLimbType == "Standard") + // skel->limbType = LimbType::Standard; + // else if (skeletonLimbType == "LOD") + // skel->limbType = LimbType::LOD; + // else if (skeletonLimbType == "Curve") + // skel->limbType = LimbType::Curve; + // else if (skeletonLimbType == "Skin") + // skel->limbType = LimbType::Skin; + // else if (skeletonLimbType == "Legacy") + // Sskel->limbType = LimbType::Legacy; + + auto child = reader->FirstChildElement(); + + skel->limbCount = numLimbs; + skel->dListCount = numDLs; + + while (child != nullptr) { + std::string childName = child->Name(); + + if (childName == "SkeletonLimb") { + std::string limbName = child->Attribute("Path"); + skel->limbTable.push_back(limbName); + + auto limb = GetResourceDataByName(limbName.c_str(), true); + skel->skeletonHeaderSegments.push_back(limb); + } + + child = child->NextSiblingElement(); + } + + skel->skeletonData.flexSkeletonHeader.sh.limbCount = skel->limbCount; + skel->skeletonData.flexSkeletonHeader.sh.segment = (void**)skel->skeletonHeaderSegments.data(); + skel->skeletonData.flexSkeletonHeader.dListCount = skel->dListCount; +} + } // namespace Ship diff --git a/soh/soh/resource/importer/SkeletonFactory.h b/soh/soh/resource/importer/SkeletonFactory.h index 56cb80dad..09e293a97 100644 --- a/soh/soh/resource/importer/SkeletonFactory.h +++ b/soh/soh/resource/importer/SkeletonFactory.h @@ -10,11 +10,16 @@ class SkeletonFactory : public ResourceFactory std::shared_ptr ReadResource(std::shared_ptr resourceMgr, std::shared_ptr initData, std::shared_ptr reader) override; + std::shared_ptr ReadResourceXML(std::shared_ptr resourceMgr, + std::shared_ptr initData, + tinyxml2::XMLElement* reader) override; }; class SkeletonFactoryV0 : public ResourceVersionFactory { public: void ParseFileBinary(std::shared_ptr reader, std::shared_ptr resource) override; + void ParseFileXML(tinyxml2::XMLElement* reader, std::shared_ptr resource) override; }; }; // namespace Ship + diff --git a/soh/soh/resource/importer/SkeletonLimbFactory.cpp b/soh/soh/resource/importer/SkeletonLimbFactory.cpp index 652f2450f..4b3ce4885 100644 --- a/soh/soh/resource/importer/SkeletonLimbFactory.cpp +++ b/soh/soh/resource/importer/SkeletonLimbFactory.cpp @@ -26,6 +26,28 @@ std::shared_ptr SkeletonLimbFactory::ReadResource(std::shared_ptr SkeletonLimbFactory::ReadResourceXML(std::shared_ptr resourceMgr, + std::shared_ptr initData, + tinyxml2::XMLElement* reader) { + auto resource = std::make_shared(resourceMgr, initData); + std::shared_ptr factory = nullptr; + + switch ((Version)resource->InitData->ResourceVersion) { + case Version::Deckard: + factory = std::make_shared(); + break; + } + + if (factory == nullptr) { + SPDLOG_ERROR("Failed to load Skeleton Limb with version {}", resource->InitData->ResourceVersion); + return nullptr; + } + + factory->ParseFileXML(reader, resource); + + return resource; +} + void Ship::SkeletonLimbFactoryV0::ParseFileBinary(std::shared_ptr reader, std::shared_ptr resource) { @@ -190,4 +212,59 @@ void Ship::SkeletonLimbFactoryV0::ParseFileBinary(std::shared_ptr } } } +void SkeletonLimbFactoryV0::ParseFileXML(tinyxml2::XMLElement* reader, std::shared_ptr resource) +{ + std::shared_ptr skelLimb = std::static_pointer_cast(resource); + + std::string limbType = reader->Attribute("Type"); + + // OTRTODO + skelLimb->limbType = LimbType::LOD; + + // skelLimb->legTransX = reader->FloatAttribute("LegTransX"); + // skelLimb->legTransY = reader->FloatAttribute("LegTransY"); + // skelLimb->legTransZ = reader->FloatAttribute("LegTransZ"); + skelLimb->rotX = reader->IntAttribute("RotX"); + skelLimb->rotY = reader->IntAttribute("RotY"); + skelLimb->rotZ = reader->IntAttribute("RotZ"); + + // skelLimb->transX = reader->IntAttribute("TransX"); + // skelLimb->transY = reader->IntAttribute("TransY"); + // skelLimb->transZ = reader->IntAttribute("TransZ"); + + skelLimb->transX = (int)reader->FloatAttribute("LegTransX"); + skelLimb->transY = (int)reader->FloatAttribute("LegTransY"); + skelLimb->transZ = (int)reader->FloatAttribute("LegTransZ"); + + skelLimb->childIndex = reader->IntAttribute("ChildIndex"); + skelLimb->siblingIndex = reader->IntAttribute("SiblingIndex"); + + // skelLimb->childPtr = reader->Attribute("ChildLimb"); + // skelLimb->siblingPtr = reader->Attribute("SiblingLimb"); + skelLimb->dListPtr = reader->Attribute("DisplayList1"); + + if (std::string(reader->Attribute("DisplayList1")) == "gEmptyDL") { + skelLimb->dListPtr = ""; + } + + auto& limbData = skelLimb->limbData; + + limbData.lodLimb.jointPos.x = skelLimb->transX; + limbData.lodLimb.jointPos.y = skelLimb->transY; + limbData.lodLimb.jointPos.z = skelLimb->transZ; + + if (skelLimb->dListPtr != "") { + limbData.lodLimb.dLists[0] = (Gfx*)GetResourceDataByName((const char*)skelLimb->dListPtr.c_str(), true); + } else { + limbData.lodLimb.dLists[0] = nullptr; + } + + limbData.lodLimb.dLists[1] = nullptr; + + limbData.lodLimb.child = skelLimb->childIndex; + limbData.lodLimb.sibling = skelLimb->siblingIndex; + + // skelLimb->dList2Ptr = reader->Attribute("DisplayList2"); +} + } // namespace Ship diff --git a/soh/soh/resource/importer/SkeletonLimbFactory.h b/soh/soh/resource/importer/SkeletonLimbFactory.h index 517ab4a85..6d33b72e0 100644 --- a/soh/soh/resource/importer/SkeletonLimbFactory.h +++ b/soh/soh/resource/importer/SkeletonLimbFactory.h @@ -10,11 +10,16 @@ class SkeletonLimbFactory : public ResourceFactory std::shared_ptr ReadResource(std::shared_ptr resourceMgr, std::shared_ptr initData, std::shared_ptr reader) override; + std::shared_ptr ReadResourceXML(std::shared_ptr resourceMgr, + std::shared_ptr initData, + tinyxml2::XMLElement* reader) override; }; class SkeletonLimbFactoryV0 : public ResourceVersionFactory { public: void ParseFileBinary(std::shared_ptr reader, std::shared_ptr resource) override; + void ParseFileXML(tinyxml2::XMLElement* reader, std::shared_ptr resource) override; }; }; // namespace Ship + diff --git a/soh/soh/resource/importer/TextFactory.cpp b/soh/soh/resource/importer/TextFactory.cpp index a73f350f9..5718de3f2 100644 --- a/soh/soh/resource/importer/TextFactory.cpp +++ b/soh/soh/resource/importer/TextFactory.cpp @@ -28,6 +28,28 @@ std::shared_ptr TextFactory::ReadResource(std::shared_ptr return resource; } +std::shared_ptr TextFactory::ReadResourceXML(std::shared_ptr resourceMgr, + std::shared_ptr initData, + tinyxml2::XMLElement* reader) { + auto resource = std::make_shared(resourceMgr, initData); + std::shared_ptr factory = nullptr; + + switch ((Version)resource->InitData->ResourceVersion) { + case Version::Deckard: + factory = std::make_shared(); + break; + } + + if (factory == nullptr) { + SPDLOG_ERROR("Failed to load Text with version {}", resource->InitData->ResourceVersion); + return nullptr; + } + + factory->ParseFileXML(reader, resource); + + return resource; +} + void Ship::TextFactoryV0::ParseFileBinary(std::shared_ptr reader, std::shared_ptr resource) { std::shared_ptr text = std::static_pointer_cast(resource); @@ -46,4 +68,28 @@ void Ship::TextFactoryV0::ParseFileBinary(std::shared_ptr reader, text->messages.push_back(entry); } } +void TextFactoryV0::ParseFileXML(tinyxml2::XMLElement* reader, std::shared_ptr resource) { + std::shared_ptr txt = std::static_pointer_cast(resource); + + auto child = reader->FirstChildElement(); + + while (child != nullptr) { + std::string childName = child->Name(); + + if (childName == "TextEntry") { + MessageEntry entry; + entry.id = child->IntAttribute("ID"); + entry.textboxType = child->IntAttribute("TextboxType"); + entry.textboxYPos = child->IntAttribute("TextboxYPos"); + entry.msg = child->Attribute("Message"); + entry.msg += "\x2"; + + txt->messages.push_back(entry); + int bp = 0; + } + + child = child->NextSiblingElement(); + } +} + } // namespace Ship diff --git a/soh/soh/resource/importer/TextFactory.h b/soh/soh/resource/importer/TextFactory.h index b1eac4a6a..6f67daca7 100644 --- a/soh/soh/resource/importer/TextFactory.h +++ b/soh/soh/resource/importer/TextFactory.h @@ -10,11 +10,16 @@ class TextFactory : public ResourceFactory std::shared_ptr ReadResource(std::shared_ptr resourceMgr, std::shared_ptr initData, std::shared_ptr reader) override; + std::shared_ptr ReadResourceXML(std::shared_ptr resourceMgr, + std::shared_ptr initData, + tinyxml2::XMLElement* reader) override; }; class TextFactoryV0 : public ResourceVersionFactory { public: void ParseFileBinary(std::shared_ptr reader, std::shared_ptr resource) override; + void ParseFileXML(tinyxml2::XMLElement* reader, std::shared_ptr resource) override; }; }; // namespace Ship + diff --git a/soh/soh/resource/type/Skeleton.cpp b/soh/soh/resource/type/Skeleton.cpp index 137041c67..52f5f5a5d 100644 --- a/soh/soh/resource/type/Skeleton.cpp +++ b/soh/soh/resource/type/Skeleton.cpp @@ -1,4 +1,7 @@ +#include "resource/ResourceMgr.h" #include "Skeleton.h" +#include "soh/OTRGlobals.h" +#include "libultraship/libultraship.h" namespace Ship { void* Skeleton::GetPointer() { @@ -17,4 +20,61 @@ size_t Skeleton::GetPointerSize() { return 0; } } + +std::vector SkeletonPatcher::skeletons; + + +void SkeletonPatcher::RegisterSkeleton(std::string& path, SkelAnime* skelAnime) { + SkeletonPatchInfo info; + + info.skelAnime = skelAnime; + + static const std::string sOtr = "__OTR__"; + + if (path.starts_with(sOtr)) { + path = path.substr(sOtr.length()); + } + + // Determine if we're using an alternate skeleton + if (path.starts_with(Ship::Resource::gAltAssetPrefix)) { + info.vanillaSkeletonPath = path.substr(Ship::Resource::gAltAssetPrefix.length(), + path.size() - Ship::Resource::gAltAssetPrefix.length()); + } else { + info.vanillaSkeletonPath = path; + } + + skeletons.push_back(info); +} + +void SkeletonPatcher::UnregisterSkeleton(SkelAnime* skelAnime) { + + // TODO: Should probably just use a dictionary here... + for (int i = 0; i < skeletons.size(); i++) + { + auto skel = skeletons[i]; + + if (skel.skelAnime == skelAnime) { + skeletons.erase(skeletons.begin() + i); + break; + } + } +} +void SkeletonPatcher::ClearSkeletons() +{ + skeletons.clear(); +} + +void SkeletonPatcher::UpdateSkeletons() { + bool isHD = CVarGetInteger("gAltAssets", 0); + for (auto skel : skeletons) + { + Skeleton* newSkel = + (Skeleton*)OTRGlobals::Instance->context->GetResourceManager() + ->LoadResource((isHD ? Ship::Resource::gAltAssetPrefix : "") + skel.vanillaSkeletonPath, true) + .get(); + + if (newSkel != nullptr) + skel.skelAnime->skeleton = newSkel->skeletonData.skeletonHeader.segment; + } +} } // namespace Ship diff --git a/soh/soh/resource/type/Skeleton.h b/soh/soh/resource/type/Skeleton.h index eef2bca58..e6f7cd91f 100644 --- a/soh/soh/resource/type/Skeleton.h +++ b/soh/soh/resource/type/Skeleton.h @@ -3,6 +3,7 @@ #include #include "Resource.h" #include "SkeletonLimb.h" +#include namespace Ship { @@ -68,4 +69,23 @@ class Skeleton : public Resource { std::vector limbTable; std::vector skeletonHeaderSegments; }; + +// TODO: CLEAN THIS UP LATER +struct SkeletonPatchInfo +{ + SkelAnime* skelAnime; + std::string vanillaSkeletonPath; +}; + +class SkeletonPatcher { + public: + static void RegisterSkeleton(std::string& path, SkelAnime* skelAnime); + static void UnregisterSkeleton(SkelAnime* skelAnime); + static void ClearSkeletons(); + static void UpdateSkeletons(); + + static std::vector skeletons; +}; + + } // namespace Ship \ No newline at end of file diff --git a/soh/soh/z_message_OTR.cpp b/soh/soh/z_message_OTR.cpp index bb3437216..bb51843a4 100644 --- a/soh/soh/z_message_OTR.cpp +++ b/soh/soh/z_message_OTR.cpp @@ -22,6 +22,8 @@ MessageTableEntry* OTRMessage_LoadTable(const char* filePath, bool isNES) { return nullptr; // Allocate room for an additional message + // OTRTODO: Should not be malloc'ing here. It's fine for now since we check elsewhere that the message table is + // already null. MessageTableEntry* table = (MessageTableEntry*)malloc(sizeof(MessageTableEntry) * (file->messages.size() + 1)); for (size_t i = 0; i < file->messages.size(); i++) { @@ -29,6 +31,8 @@ MessageTableEntry* OTRMessage_LoadTable(const char* filePath, bool isNES) { if (file->messages[i].id == 0x2066) { // Create a new message based on the Owl Text uint32_t kaeporaMsgSize = file->messages[i].msg.size(); + // OTRTODO: Should not be malloc'ing here. It's fine for now since we check elsewhere that the message table + // is already null. char* kaeporaOg = (char*)malloc(sizeof(char) * kaeporaMsgSize); char* kaeporaPatch = (char*)malloc(sizeof(char) * kaeporaMsgSize); file->messages[i].msg.copy(kaeporaOg, kaeporaMsgSize, 0); @@ -68,25 +72,38 @@ MessageTableEntry* OTRMessage_LoadTable(const char* filePath, bool isNES) { _message_0xFFFC_nes = (char*)file->messages[i].msg.c_str(); } - return table; + return table; } extern "C" void OTRMessage_Init() { - sNesMessageEntryTablePtr = OTRMessage_LoadTable("text/nes_message_data_static/nes_message_data_static", true); - sGerMessageEntryTablePtr = OTRMessage_LoadTable("text/ger_message_data_static/ger_message_data_static", false); - sFraMessageEntryTablePtr = OTRMessage_LoadTable("text/fra_message_data_static/fra_message_data_static", false); + // OTRTODO: Added a lot of null checks here so that we don't malloc the table multiple times causing a memory leak. + // We really ought to fix the implementation such that we aren't malloc'ing new tables. + // Once we fix the implementation, remove these NULL checks. + if (sNesMessageEntryTablePtr == NULL) { + sNesMessageEntryTablePtr = OTRMessage_LoadTable("text/nes_message_data_static/nes_message_data_static", true); + } + if (sGerMessageEntryTablePtr == NULL) { + sGerMessageEntryTablePtr = OTRMessage_LoadTable("text/ger_message_data_static/ger_message_data_static", false); + } + if (sFraMessageEntryTablePtr == NULL) { + sFraMessageEntryTablePtr = OTRMessage_LoadTable("text/fra_message_data_static/fra_message_data_static", false); + } - auto file2 = std::static_pointer_cast(OTRGlobals::Instance->context->GetResourceManager()->LoadResource("text/staff_message_data_static/staff_message_data_static")); + if (sStaffMessageEntryTablePtr == NULL) { + auto file2 = + std::static_pointer_cast(OTRGlobals::Instance->context->GetResourceManager()->LoadResource( + "text/staff_message_data_static/staff_message_data_static")); + // OTRTODO: Should not be malloc'ing here. It's fine for now since we check that the message table is already null. + sStaffMessageEntryTablePtr = (MessageTableEntry*)malloc(sizeof(MessageTableEntry) * file2->messages.size()); - sStaffMessageEntryTablePtr = (MessageTableEntry*)malloc(sizeof(MessageTableEntry) * file2->messages.size()); - - for (size_t i = 0; i < file2->messages.size(); i++) - { - sStaffMessageEntryTablePtr[i].textId = file2->messages[i].id; - sStaffMessageEntryTablePtr[i].typePos = (file2->messages[i].textboxType << 4) | file2->messages[i].textboxYPos; - sStaffMessageEntryTablePtr[i].segment = file2->messages[i].msg.c_str(); - sStaffMessageEntryTablePtr[i].msgSize = file2->messages[i].msg.size(); + for (size_t i = 0; i < file2->messages.size(); i++) { + sStaffMessageEntryTablePtr[i].textId = file2->messages[i].id; + sStaffMessageEntryTablePtr[i].typePos = + (file2->messages[i].textboxType << 4) | file2->messages[i].textboxYPos; + sStaffMessageEntryTablePtr[i].segment = file2->messages[i].msg.c_str(); + sStaffMessageEntryTablePtr[i].msgSize = file2->messages[i].msg.size(); + } } CustomMessageManager::Instance->AddCustomMessageTable(customMessageTableID); diff --git a/soh/src/code/game.c b/soh/src/code/game.c index 546901d3e..26b26e94c 100644 --- a/soh/src/code/game.c +++ b/soh/src/code/game.c @@ -1,6 +1,7 @@ #include #include "global.h" #include "vt.h" +#include "libultraship/bridge.h" #include "soh/Enhancements/game-interactor/GameInteractor.h" SpeedMeter D_801664D0; @@ -13,6 +14,7 @@ u16 sLastButtonPressed; // Forward declared, because this in a C++ header. int gfx_create_framebuffer(uint32_t width, uint32_t height); +void gfx_texture_cache_clear(); void GameState_FaultPrint(void) { static char sBtnChars[] = "ABZSuldr*+LRudlr"; @@ -459,6 +461,14 @@ void GameState_Destroy(GameState* gameState) { Fault_RemoveClient(&sGameFaultClient); osSyncPrintf("game デストラクタ終了\n"); // "game destructor end" + + // Performing clear skeletons before unload resources fixes an actor heap corruption crash due to the skeleton patching system. + ResourceMgr_ClearSkeletons(); + + if (CVarGetInteger("gAltAssets", 0)) { + UnloadResourceDirectory("alt/*"); + gfx_texture_cache_clear(); + } } GameStateFunc GameState_GetInit(GameState* gameState) { diff --git a/soh/src/code/gfxprint.c b/soh/src/code/gfxprint.c index 2dfc21da9..f7aa20a76 100644 --- a/soh/src/code/gfxprint.c +++ b/soh/src/code/gfxprint.c @@ -128,6 +128,7 @@ u8 sGfxPrintFontData[(16 * 256) / 2] = { // Can be used to set GFXP_FLAG_ENLARGE by default static u8 sDefaultSpecialFlags; +static const char rGfxPrintFontData[] = "__OTR__alt/textures/font/sGfxPrintFontData"; void GfxPrint_Setup(GfxPrint* this) { s32 width = 16; @@ -140,13 +141,26 @@ void GfxPrint_Setup(GfxPrint* this) { G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE, G_AC_NONE | G_ZS_PRIM | G_RM_XLU_SURF | G_RM_XLU_SURF2); gDPSetCombineMode(this->dList++, G_CC_DECALRGBA, G_CC_DECALRGBA); - gDPLoadTextureBlock_4b(this->dList++, sGfxPrintFontData, G_IM_FMT_CI, width, height, 0, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + + bool useAltTexture = ResourceMgr_FileExists(rGfxPrintFontData) && CVarGetInteger("gAltAssets", 0); + if (!useAltTexture) { + gDPLoadTextureBlock_4b(this->dList++, sGfxPrintFontData, G_IM_FMT_CI, width, height, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + } else { + gDPLoadTextureBlock_4b(this->dList++, rGfxPrintFontData, G_IM_FMT_CI, width * 4, height, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + } + gDPLoadTLUT(this->dList++, 64, 256, sGfxPrintFontTLUT); for (i = 1; i < 4; i++) { - gDPSetTile(this->dList++, G_IM_FMT_CI, G_IM_SIZ_4b, 1, 0, i * 2, i, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, - G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD); + if (useAltTexture) { + gDPSetTile(this->dList++, G_IM_FMT_RGBA, G_IM_SIZ_4b, 1, 0, i * 2, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, + G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD); + } else { + gDPSetTile(this->dList++, G_IM_FMT_CI, G_IM_SIZ_4b, 1, 0, i * 2, i, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, + G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD); + } gDPSetTileSize(this->dList++, i * 2, 0, 0, 60, 1020); } @@ -174,7 +188,7 @@ void GfxPrint_SetColor(GfxPrint* this, u32 r, u32 g, u32 b, u32 a) { } void GfxPrint_SetPosPx(GfxPrint* this, s32 x, s32 y) { - this->posX = this->baseX + (x * 4); + this->posX = this->baseX + (x * 4) + CVarGetInteger("gGfxPrintCharStartOffset", 0); this->posY = this->baseY + (y * 4); } @@ -189,6 +203,8 @@ void GfxPrint_SetBasePosPx(GfxPrint* this, s32 x, s32 y) { void GfxPrint_PrintCharImpl(GfxPrint* this, u8 c) { u32 tile = (c & 0xFF) * 2; + u8 offset = ((c * 2) & 0x7) / 2; + u8 useAltTexture = ResourceMgr_FileExists(rGfxPrintFontData) && CVarGetInteger("gAltAssets", 0); if (this->flags & GFXP_FLAG_UPDATE) { this->flags &= ~GFXP_FLAG_UPDATE; @@ -226,11 +242,12 @@ void GfxPrint_PrintCharImpl(GfxPrint* this, u8 c) { gSPTextureRectangle(this->dList++, (this->posX) << 1, (this->posY) << 1, (this->posX + 32) << 1, (this->posY + 32) << 1, tile, (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 1 << 9, 1 << 9); } else { - gSPTextureRectangle(this->dList++, this->posX, this->posY, this->posX + 32, this->posY + 32, tile, - (u16)(c & 4) * 64, (u16)(c >> 3) * 256, 1 << 10, 1 << 10); + gSPTextureRectangle(this->dList++, this->posX, this->posY, this->posX + 32, this->posY + 32, + useAltTexture ? 0 : tile, (useAltTexture ? ((128 * 4) * offset) : 0) + (u16)((c & 4) * 64), + (u16)(c >> 3) * 256, 1 << 10, 1 << 10); } - this->posX += 32; + this->posX += CVarGetInteger("gGfxPrintCharSpacing", 32); } void GfxPrint_PrintStringWithSize(GfxPrint* this, const void* buffer, u32 charSize, u32 charCount) { diff --git a/soh/src/code/z_actor.c b/soh/src/code/z_actor.c index ae2db5b78..21d4e8702 100644 --- a/soh/src/code/z_actor.c +++ b/soh/src/code/z_actor.c @@ -799,9 +799,22 @@ void func_8002CDE4(PlayState* play, TitleCardContext* titleCtx) { void TitleCard_InitBossName(PlayState* play, TitleCardContext* titleCtx, void* texture, s16 x, s16 y, u8 width, u8 height, s16 hasTranslation) { - - if (ResourceMgr_OTRSigCheck(texture)) - texture = GetResourceDataByName(texture, false); + static char newName[512]; + + if (gSaveContext.language != LANGUAGE_ENG) { + size_t length = strlen(texture); + strcpy(newName, texture); + if (gSaveContext.language == LANGUAGE_FRA) { + newName[length - 6] = 'F'; + newName[length - 5] = 'R'; + newName[length - 4] = 'A'; + } else if (gSaveContext.language == LANGUAGE_GER) { + newName[length - 6] = 'G'; + newName[length - 5] = 'E'; + newName[length - 4] = 'R'; + } + texture = newName; + } titleCtx->texture = texture; titleCtx->isBossCard = true; @@ -1005,7 +1018,7 @@ void TitleCard_InitPlaceName(PlayState* play, TitleCardContext* titleCtx, void* } - char newName[512]; + static char newName[512]; if (gSaveContext.language != LANGUAGE_ENG) { size_t length = strlen(texture); @@ -1023,7 +1036,7 @@ void TitleCard_InitPlaceName(PlayState* play, TitleCardContext* titleCtx, void* texture = newName; } - titleCtx->texture = GetResourceDataByName(texture, false); + titleCtx->texture = texture; titleCtx->isBossCard = false; titleCtx->hasTranslation = false; titleCtx->x = x; @@ -1067,14 +1080,9 @@ void TitleCard_Update(PlayState* play, TitleCardContext* titleCtx) { void TitleCard_Draw(PlayState* play, TitleCardContext* titleCtx) { s32 width; s32 height; - s32 unused; s32 titleX; s32 doubleWidth; s32 titleY; - s32 titleSecondY; - s32 textureLanguageOffset; - s32 shiftTopY; - s32 shiftBottomY; if (titleCtx->alpha != 0) { width = titleCtx->width; @@ -1107,52 +1115,21 @@ void TitleCard_Draw(PlayState* play, TitleCardContext* titleCtx) { OPEN_DISPS(play->state.gfxCtx); - height = (width * height > 0x1000) ? 0x1000 / width : height; - titleSecondY = titleY + (height * 4); - - textureLanguageOffset = 0x0; - shiftTopY = 0x0; - shiftBottomY = 0x1000; - - //if this card is bosses cards, has translation and that is not using English language. - if (titleCtx->isBossCard && titleCtx->hasTranslation && gSaveContext.language != LANGUAGE_ENG) { - textureLanguageOffset = (width * height * gSaveContext.language); - if (gSaveContext.language == LANGUAGE_GER) { - shiftTopY = 0x400; - shiftBottomY = 0x1400; - } else if (gSaveContext.language == LANGUAGE_FRA) { - shiftTopY = 0x800; - shiftBottomY = 0x1800; - } - } - // WORLD_OVERLAY_DISP Goes over POLY_XLU_DISP but under POLY_KAL_DISP WORLD_OVERLAY_DISP = Gfx_SetupDL_52NoCD(WORLD_OVERLAY_DISP); gDPSetPrimColor(WORLD_OVERLAY_DISP++, 0, 0, (u8)titleCtx->intensityR, (u8)titleCtx->intensityG, (u8)titleCtx->intensityB, (u8)titleCtx->alpha); - gDPLoadTextureBlock(WORLD_OVERLAY_DISP++, (uintptr_t)titleCtx->texture + textureLanguageOffset + shiftTopY, G_IM_FMT_IA, + gDPLoadTextureBlock(WORLD_OVERLAY_DISP++, (uintptr_t)titleCtx->texture, G_IM_FMT_IA, G_IM_SIZ_8b, width, height, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - //Removing the -1 there remove the gap between top and bottom textures. gSPWideTextureRectangle(WORLD_OVERLAY_DISP++, titleX, titleY, ((doubleWidth * 2) + titleX) - 4, titleY + (height * 4), G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); height = titleCtx->height - height; - // If texture is bigger than 0x1000, display the rest - if (height > 0) { - gDPLoadTextureBlock(WORLD_OVERLAY_DISP++, (uintptr_t)titleCtx->texture + textureLanguageOffset + shiftBottomY, - G_IM_FMT_IA, - G_IM_SIZ_8b, width, height, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - //Removing the -1 there remove the gap between top and bottom textures. - gSPWideTextureRectangle(WORLD_OVERLAY_DISP++, titleX, titleSecondY, ((doubleWidth * 2) + titleX) - 4, - titleSecondY + (height * 4), G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); - } - CLOSE_DISPS(play->state.gfxCtx); } } diff --git a/soh/src/code/z_cheap_proc.c b/soh/src/code/z_cheap_proc.c index a5d0a8bc9..cf52db2d3 100644 --- a/soh/src/code/z_cheap_proc.c +++ b/soh/src/code/z_cheap_proc.c @@ -6,7 +6,11 @@ void Gfx_DrawDListOpa(PlayState* play, Gfx* dlist) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_MODELVIEW | G_MTX_LOAD); - gSPDisplayList(POLY_OPA_DISP++, dlist); + + if (ResourceMgr_OTRSigCheck(dlist) == 1) + gsSPPushCD(POLY_OPA_DISP++, dlist); + + gSPDisplayList(POLY_OPA_DISP++, dlist); CLOSE_DISPS(play->state.gfxCtx); } @@ -17,6 +21,10 @@ void Gfx_DrawDListXlu(PlayState* play, Gfx* dlist) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); gSPMatrix(POLY_XLU_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_MODELVIEW | G_MTX_LOAD); + + if (ResourceMgr_OTRSigCheck(dlist) == 1) + gsSPPushCD(POLY_XLU_DISP++, dlist); + gSPDisplayList(POLY_XLU_DISP++, dlist); CLOSE_DISPS(play->state.gfxCtx); diff --git a/soh/src/code/z_collision_check.c b/soh/src/code/z_collision_check.c index 785e68836..d04a097cf 100644 --- a/soh/src/code/z_collision_check.c +++ b/soh/src/code/z_collision_check.c @@ -3045,6 +3045,10 @@ void CollisionCheck_ApplyDamage(PlayState* play, CollisionCheckContext* colChkCt if (!(collider->acFlags & AC_HARD)) { collider->actor->colChkInfo.damage += damage; } + + if (CVarGetInteger("gIvanCoopModeEnabled", 0)) { + collider->actor->colChkInfo.damage *= GET_PLAYER(play)->ivanDamageMultiplier; + } } /** @@ -3649,7 +3653,7 @@ s32 CollisionCheck_CylSideVsLineSeg(f32 radius, f32 height, f32 offset, Vec3f* a * Gets damage from a sword strike using generic values, and returns 0 if the attack is * not sword-type. Used by bosses to require that a sword attack deal the killing blow. */ -u8 CollisionCheck_GetSwordDamage(s32 dmgFlags) { +u8 CollisionCheck_GetSwordDamage(s32 dmgFlags, PlayState* play) { u8 damage = 0; if (dmgFlags & 0x00400100) { @@ -3662,6 +3666,10 @@ u8 CollisionCheck_GetSwordDamage(s32 dmgFlags) { damage = 8; } + if (CVarGetInteger("gIvanCoopModeEnabled", 0)) { + damage *= GET_PLAYER(play)->ivanDamageMultiplier; + } + KREG(7) = damage; return damage; } diff --git a/soh/src/code/z_construct.c b/soh/src/code/z_construct.c index 44b0ee5e7..1aae3fcf8 100644 --- a/soh/src/code/z_construct.c +++ b/soh/src/code/z_construct.c @@ -41,18 +41,16 @@ void func_801109B0(PlayState* play) { DmaMgr_SendRequest1(interfaceCtx->parameterSegment, (uintptr_t)_parameter_staticSegmentRomStart, parameterSize, __FILE__, 162); - interfaceCtx->doActionSegment = GAMESTATE_ALLOC_MC(&play->state, 0x480); + interfaceCtx->doActionSegment = GAMESTATE_ALLOC_MC(&play->state, 3 * sizeof(char*)); osSyncPrintf("DOアクション テクスチャ初期=%x\n", 0x480); // "DO Action Texture Initialization" osSyncPrintf("parameter->do_actionSegment=%x\n", interfaceCtx->doActionSegment); ASSERT(interfaceCtx->doActionSegment != NULL); - uint32_t attackDoActionTexSize = GetResourceTexSizeByName(gAttackDoActionENGTex, false); - memcpy(interfaceCtx->doActionSegment, GetResourceDataByName(gAttackDoActionENGTex, false), attackDoActionTexSize); - memcpy(interfaceCtx->doActionSegment + (attackDoActionTexSize / 2), GetResourceDataByName(gCheckDoActionENGTex, false), attackDoActionTexSize); - - memcpy(interfaceCtx->doActionSegment + attackDoActionTexSize, GetResourceDataByName(gReturnDoActionENGTex, false), GetResourceTexSizeByName(gReturnDoActionENGTex, false)); + interfaceCtx->doActionSegment[0] = gAttackDoActionENGTex; + interfaceCtx->doActionSegment[1] = gCheckDoActionENGTex; + interfaceCtx->doActionSegment[2] = gReturnDoActionENGTex; interfaceCtx->iconItemSegment = GAMESTATE_ALLOC_MC( &play->state, 0x1000 * ARRAY_COUNT(gSaveContext.equips.buttonItems)); diff --git a/soh/src/code/z_fcurve_data_skelanime.c b/soh/src/code/z_fcurve_data_skelanime.c index 2ae49c3dd..a0eeace16 100644 --- a/soh/src/code/z_fcurve_data_skelanime.c +++ b/soh/src/code/z_fcurve_data_skelanime.c @@ -15,7 +15,7 @@ s32 SkelCurve_Init(PlayState* play, SkelAnimeCurve* skelCurve, SkelCurveLimbList TransformUpdateIndex* transUpdIdx) { if (ResourceMgr_OTRSigCheck(limbListSeg)) - limbListSeg = ResourceMgr_LoadSkeletonByName(limbListSeg); + limbListSeg = ResourceMgr_LoadSkeletonByName(limbListSeg, NULL); SkelCurveLimb** limbs; SkelCurveLimbList* limbList = SEGMENTED_TO_VIRTUAL(limbListSeg); diff --git a/soh/src/code/z_kanfont.c b/soh/src/code/z_kanfont.c index 0eea9be34..2dd9cda80 100644 --- a/soh/src/code/z_kanfont.c +++ b/soh/src/code/z_kanfont.c @@ -174,7 +174,7 @@ void Font_LoadChar(Font* font, u8 character, u16 codePointIndex) { //__FILE__, __LINE__); if (character < 0x8B) - memcpy(&font->charTexBuf[codePointIndex], GetResourceDataByName(fntTbl[character], false), FONT_CHAR_TEX_SIZE); + memcpy(&font->charTexBuf[codePointIndex], fntTbl[character], strlen(fntTbl[character]) + 1); } /** @@ -183,7 +183,7 @@ void Font_LoadChar(Font* font, u8 character, u16 codePointIndex) { * The different icons are given in the MessageBoxIcon enum. */ void Font_LoadMessageBoxIcon(Font* font, u16 icon) { - memcpy(font->iconBuf, GetResourceDataByName(msgStaticTbl[4 + icon], false), FONT_CHAR_TEX_SIZE); + memcpy(font->iconBuf, msgStaticTbl[4 + icon], strlen(msgStaticTbl[4 + icon]) + 1); } /** @@ -218,7 +218,7 @@ void Font_LoadOrderedFont(Font* font) { osSyncPrintf("nes_mes_buf[%d]=%d\n", codePointIndex, font->msgBuf[codePointIndex]); offset = (font->msgBuf[codePointIndex] - '\x20') * FONT_CHAR_TEX_SIZE; - memcpy(fontBuf, GetResourceDataByName(fntTbl[offset / FONT_CHAR_TEX_SIZE], false), FONT_CHAR_TEX_SIZE); + memcpy(fontBuf, fntTbl[offset / FONT_CHAR_TEX_SIZE], strlen(fntTbl[offset / FONT_CHAR_TEX_SIZE]) + 1); //DmaMgr_SendRequest1(fontBuf, fontStatic + offset, FONT_CHAR_TEX_SIZE, __FILE__, __LINE__); fontBufIndex += FONT_CHAR_TEX_SIZE / 8; } diff --git a/soh/src/code/z_map_exp.c b/soh/src/code/z_map_exp.c index 690c81e21..af1c1784d 100644 --- a/soh/src/code/z_map_exp.c +++ b/soh/src/code/z_map_exp.c @@ -413,8 +413,8 @@ void Map_InitData(PlayState* play, s16 room) { //gMapData->owMinimapTexSize[mapIndex], __FILE__, __LINE__); if (sEntranceIconMapIndex < 24) { - const char* textureName = minimapTableOW[sEntranceIconMapIndex]; - memcpy(play->interfaceCtx.mapSegment, GetResourceDataByName(textureName, false), GetResourceTexSizeByName(textureName, false)); + play->interfaceCtx.mapSegment[0] = GetResourceDataByName(minimapTableOW[sEntranceIconMapIndex], true); + play->interfaceCtx.mapSegmentName[0] = minimapTableOW[sEntranceIconMapIndex]; } interfaceCtx->unk_258 = mapIndex; @@ -447,9 +447,8 @@ void Map_InitData(PlayState* play, s16 room) { //((gMapData->dgnMinimapTexIndexOffset[mapIndex] + room) * 0xFF0), //0xFF0, __FILE__, __LINE__); - const char* textureName = minimapTableDangeon[gMapData->dgnMinimapTexIndexOffset[mapIndex] + room]; - memcpy(play->interfaceCtx.mapSegment, GetResourceDataByName(textureName, false), GetResourceTexSizeByName(textureName, false)); - + play->interfaceCtx.mapSegment[0] = GetResourceDataByName(minimapTableDangeon[gMapData->dgnMinimapTexIndexOffset[mapIndex] + room], true); + play->interfaceCtx.mapSegmentName[0] = minimapTableDangeon[gMapData->dgnMinimapTexIndexOffset[mapIndex] + room]; R_COMPASS_OFFSET_X = gMapData->roomCompassOffsetX[mapIndex][room]; R_COMPASS_OFFSET_Y = gMapData->roomCompassOffsetY[mapIndex][room]; Map_SetFloorPalettesData(play, VREG(30)); @@ -519,7 +518,8 @@ void Map_Init(PlayState* play) { interfaceCtx->unk_258 = -1; interfaceCtx->unk_25A = -1; - interfaceCtx->mapSegment = GAMESTATE_ALLOC_MC(&play->state, 0x1000); + interfaceCtx->mapSegment = GAMESTATE_ALLOC_MC(&play->state, 2 * sizeof(char*)); + interfaceCtx->mapSegmentName = GAMESTATE_ALLOC_MC(&play->state, 2 * sizeof(char*)); // "MAP texture initialization scene_data_ID=%d mapSegment=%x" osSyncPrintf("\n\n\nMAP テクスチャ初期化 scene_data_ID=%d\nmapSegment=%x\n\n", play->sceneNum, interfaceCtx->mapSegment, play); @@ -639,20 +639,20 @@ void Minimap_DrawCompassIcons(PlayState* play) { if (CVarGetInteger("gMinimapPosType", 0) == 1) {//Anchor Left if (CVarGetInteger("gMinimapUseMargins", 0) != 0) {X_Margins_Minimap = Left_MM_Margin;}; Matrix_Translate( - OTRGetDimensionFromLeftEdge((R_COMPASS_OFFSET_X + (X_Margins_Minimap*10) + tempX + (CVarGetInteger("gMinimapPosX", 0)*10)) / 10.0f), + OTRGetDimensionFromLeftEdge((R_COMPASS_OFFSET_X + (X_Margins_Minimap*10) + tempX + (CVarGetInteger("gMinimapPosX", 0)*10)) / 10.0f), (R_COMPASS_OFFSET_Y + ((Y_Margins_Minimap*10)*-1) - tempZ + ((CVarGetInteger("gMinimapPosY", 0)*10)*-1)) / 10.0f, 0.0f, MTXMODE_NEW); } else if (CVarGetInteger("gMinimapPosType", 0) == 2) {//Anchor Right if (CVarGetInteger("gMinimapUseMargins", 0) != 0) {X_Margins_Minimap = Right_MM_Margin;}; Matrix_Translate( - OTRGetDimensionFromRightEdge((R_COMPASS_OFFSET_X + (X_Margins_Minimap*10) + tempX + (CVarGetInteger("gMinimapPosX", 0)*10)) / 10.0f), + OTRGetDimensionFromRightEdge((R_COMPASS_OFFSET_X + (X_Margins_Minimap*10) + tempX + (CVarGetInteger("gMinimapPosX", 0)*10)) / 10.0f), (R_COMPASS_OFFSET_Y +((Y_Margins_Minimap*10)*-1) - tempZ + ((CVarGetInteger("gMinimapPosY", 0)*10)*-1)) / 10.0f, 0.0f, MTXMODE_NEW); } else if (CVarGetInteger("gMinimapPosType", 0) == 3) {//Anchor None Matrix_Translate( - (R_COMPASS_OFFSET_X + tempX + (CVarGetInteger("gMinimapPosX", 0)*10) / 10.0f), + (R_COMPASS_OFFSET_X + tempX + (CVarGetInteger("gMinimapPosX", 0)*10) / 10.0f), (R_COMPASS_OFFSET_Y + ((Y_Margins_Minimap*10)*-1) - tempZ + ((CVarGetInteger("gMinimapPosY", 0)*10)*-1)) / 10.0f, 0.0f, MTXMODE_NEW); } else if (CVarGetInteger("gMinimapPosType", 0) == 4) {//Hidden Matrix_Translate( - (R_COMPASS_OFFSET_X+(9999*10) + tempX / 10.0f), + (R_COMPASS_OFFSET_X+(9999*10) + tempX / 10.0f), (R_COMPASS_OFFSET_Y+(9999*10) - tempZ) / 10.0f, 0.0f, MTXMODE_NEW); } } else { @@ -677,20 +677,20 @@ void Minimap_DrawCompassIcons(PlayState* play) { if (CVarGetInteger("gMinimapPosType", 0) == 1) {//Anchor Left if (CVarGetInteger("gMinimapUseMargins", 0) != 0) {X_Margins_Minimap = Left_MM_Margin;}; Matrix_Translate( - OTRGetDimensionFromLeftEdge((R_COMPASS_OFFSET_X + (X_Margins_Minimap*10) + tempX + (CVarGetInteger("gMinimapPosX", 0)*10)) / 10.0f), + OTRGetDimensionFromLeftEdge((R_COMPASS_OFFSET_X + (X_Margins_Minimap*10) + tempX + (CVarGetInteger("gMinimapPosX", 0)*10)) / 10.0f), (R_COMPASS_OFFSET_Y + ((Y_Margins_Minimap*10)*-1) - tempZ + ((CVarGetInteger("gMinimapPosY", 0)*10)*-1)) / 10.0f, 0.0f, MTXMODE_NEW); } else if (CVarGetInteger("gMinimapPosType", 0) == 2) {//Anchor Right if (CVarGetInteger("gMinimapUseMargins", 0) != 0) {X_Margins_Minimap = Right_MM_Margin;}; Matrix_Translate( - OTRGetDimensionFromRightEdge((R_COMPASS_OFFSET_X + (X_Margins_Minimap*10) + tempX + (CVarGetInteger("gMinimapPosX", 0)*10)) / 10.0f), + OTRGetDimensionFromRightEdge((R_COMPASS_OFFSET_X + (X_Margins_Minimap*10) + tempX + (CVarGetInteger("gMinimapPosX", 0)*10)) / 10.0f), (R_COMPASS_OFFSET_Y +((Y_Margins_Minimap*10)*-1) - tempZ + ((CVarGetInteger("gMinimapPosY", 0)*10)*-1)) / 10.0f, 0.0f, MTXMODE_NEW); } else if (CVarGetInteger("gMinimapPosType", 0) == 3) {//Anchor None Matrix_Translate( - (R_COMPASS_OFFSET_X + tempX + (CVarGetInteger("gMinimapPosX", 0)*10) / 10.0f), + (R_COMPASS_OFFSET_X + tempX + (CVarGetInteger("gMinimapPosX", 0)*10) / 10.0f), (R_COMPASS_OFFSET_Y - tempZ + ((CVarGetInteger("gMinimapPosY", 0)*10)*-1)) / 10.0f, 0.0f, MTXMODE_NEW); } else if (CVarGetInteger("gMinimapPosType", 0) == 4) {//Hidden Matrix_Translate( - (R_COMPASS_OFFSET_X+(9999*10) + tempX / 10.0f), + (R_COMPASS_OFFSET_X+(9999*10) + tempX / 10.0f), (R_COMPASS_OFFSET_Y+(9999*10) - tempZ) / 10.0f, 0.0f, MTXMODE_NEW); } } else { @@ -756,8 +756,7 @@ void Minimap_Draw(PlayState* play) { if (CHECK_DUNGEON_ITEM(DUNGEON_MAP, mapIndex)) { gDPSetPrimColor(OVERLAY_DISP++, 0, 0, minimapColor.r, minimapColor.g, minimapColor.b, interfaceCtx->minimapAlpha); - gSPInvalidateTexCache(OVERLAY_DISP++, interfaceCtx->mapSegment); - gDPLoadTextureBlock_4b(OVERLAY_DISP++, interfaceCtx->mapSegment, G_IM_FMT_I, 96, 85, 0, + gDPLoadTextureBlock_4b(OVERLAY_DISP++, interfaceCtx->mapSegmentName[0], G_IM_FMT_I, 96, 85, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -767,7 +766,7 @@ void Minimap_Draw(PlayState* play) { dgnMiniMapY = R_DGN_MINIMAP_Y+CVarGetInteger("gMinimapPosY", 0)+Y_Margins_Minimap; if (CVarGetInteger("gMinimapPosType", 0) == 1) {//Anchor Left if (CVarGetInteger("gMinimapUseMargins", 0) != 0) {X_Margins_Minimap = Left_MM_Margin;}; - dgnMiniMapX = OTRGetDimensionFromLeftEdge(R_DGN_MINIMAP_X+CVarGetInteger("gMinimapPosX", 0)+X_Margins_Minimap); + dgnMiniMapX = OTRGetDimensionFromLeftEdge(R_DGN_MINIMAP_X+CVarGetInteger("gMinimapPosX", 0)+X_Margins_Minimap); } else if (CVarGetInteger("gMinimapPosType", 0) == 2) {//Anchor Right if (CVarGetInteger("gMinimapUseMargins", 0) != 0) {X_Margins_Minimap = Right_MM_Margin;}; dgnMiniMapX = OTRGetDimensionFromRightEdge(R_DGN_MINIMAP_X+CVarGetInteger("gMinimapPosX", 0)+X_Margins_Minimap); @@ -827,7 +826,7 @@ void Minimap_Draw(PlayState* play) { gDPSetCombineMode(OVERLAY_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); gDPSetPrimColor(OVERLAY_DISP++, 0, 0, minimapColor.r, minimapColor.g, minimapColor.b, interfaceCtx->minimapAlpha); - gDPLoadTextureBlock_4b(OVERLAY_DISP++, interfaceCtx->mapSegment, G_IM_FMT_IA, + gDPLoadTextureBlock_4b(OVERLAY_DISP++, interfaceCtx->mapSegmentName[0], G_IM_FMT_IA, gMapData->owMinimapWidth[mapIndex], gMapData->owMinimapHeight[mapIndex], 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -897,7 +896,7 @@ void Minimap_Draw(PlayState* play) { //No idea why and how Original value work but this does actually fix them all. PosY = PosY+1024; } - + if (((gMapData->owEntranceFlag[sEntranceIconMapIndex] == 0xFFFF) || ((gMapData->owEntranceFlag[sEntranceIconMapIndex] != 0xFFFF) && (gSaveContext.infTable[26] & gBitFlags[gMapData->owEntranceFlag[mapIndex]]) @@ -912,9 +911,9 @@ void Minimap_Draw(PlayState* play) { } s16 entranceX = OTRGetRectDimensionFromRightEdge(270 + X_Margins_Minimap); - s16 entranceY = 154 + Y_Margins_Minimap; + s16 entranceY = 154 + Y_Margins_Minimap; if (CVarGetInteger("gMinimapPosType", 0) != 0) { - entranceY = 154 + Y_Margins_Minimap + CVarGetInteger("gMinimapPosY", 0); + entranceY = 154 + Y_Margins_Minimap + CVarGetInteger("gMinimapPosY", 0); if (CVarGetInteger("gMinimapPosType", 0) == 1) {//Anchor Left if (CVarGetInteger("gMinimapUseMargins", 0) != 0) {X_Margins_Minimap = Left_MM_Margin;}; entranceX = OTRGetRectDimensionFromLeftEdge(270 + X_Margins_Minimap + CVarGetInteger("gMinimapPosX", 0)); @@ -932,15 +931,15 @@ void Minimap_Draw(PlayState* play) { gDPLoadTextureBlock(OVERLAY_DISP++, gMapDungeonEntranceIconTex, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPWideTextureRectangle(OVERLAY_DISP++, entranceX << 2, entranceY << 2, (entranceX + 32) << 2, (entranceY + 8) << 2, + gSPWideTextureRectangle(OVERLAY_DISP++, entranceX << 2, entranceY << 2, (entranceX + 32) << 2, (entranceY + 8) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); } else if ((play->sceneNum == SCENE_SPOT08) && CVarGetInteger("gAlwaysShowDungeonMinimapIcon", 0) != 0){ - + gDPLoadTextureBlock(OVERLAY_DISP++, gMapDungeonEntranceIconTex, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPWideTextureRectangle(OVERLAY_DISP++, entranceX << 2, entranceY << 2, (entranceX + 32) << 2, (entranceY + 8) << 2, + gSPWideTextureRectangle(OVERLAY_DISP++, entranceX << 2, entranceY << 2, (entranceX + 32) << 2, (entranceY + 8) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); } diff --git a/soh/src/code/z_message_PAL.c b/soh/src/code/z_message_PAL.c index 1a8c777a2..762e06b55 100644 --- a/soh/src/code/z_message_PAL.c +++ b/soh/src/code/z_message_PAL.c @@ -32,10 +32,10 @@ s16 sMessageHasSetSfx = false; u16 sOcarinaSongBitFlags = 0; // ocarina bit flags -MessageTableEntry* sNesMessageEntryTablePtr; -MessageTableEntry* sGerMessageEntryTablePtr; -MessageTableEntry* sFraMessageEntryTablePtr; -MessageTableEntry* sStaffMessageEntryTablePtr; +MessageTableEntry* sNesMessageEntryTablePtr = NULL; +MessageTableEntry* sGerMessageEntryTablePtr = NULL; +MessageTableEntry* sFraMessageEntryTablePtr = NULL; +MessageTableEntry* sStaffMessageEntryTablePtr = NULL; char* _message_0xFFFC_nes; @@ -562,7 +562,6 @@ void Message_DrawTextboxIcon(PlayState* play, Gfx** p, s16 x, s16 y) { *p = gfx; } -#define MESSAGE_SPACE_WIDTH 6 f32 sFontWidths[144] = { 8.0f, // ' ' 8.0f, // '!' @@ -865,7 +864,7 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) { Message_SetTextColor(msgCtx, msgCtx->msgBufDecoded[++i] & 0xF); break; case ' ': - msgCtx->textPosX += MESSAGE_SPACE_WIDTH; + msgCtx->textPosX += CVarGetInteger("gTextSpacing", 6); break; case MESSAGE_BOX_BREAK: if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { @@ -1131,7 +1130,7 @@ void Message_LoadItemIcon(PlayState* play, u16 itemId, s16 y) { R_TEXTBOX_ICON_YPOS = y + 6; R_TEXTBOX_ICON_SIZE = 32; memcpy((uintptr_t)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, - GetResourceDataByName(gItemIcons[itemId], false), GetResourceTexSizeByName(gItemIcons[itemId], false)); + gItemIcons[itemId], strlen(gItemIcons[itemId]) + 1); // "Item 32-0" osSyncPrintf("アイテム32-0\n"); } else { @@ -1139,7 +1138,7 @@ void Message_LoadItemIcon(PlayState* play, u16 itemId, s16 y) { R_TEXTBOX_ICON_YPOS = y + 10; R_TEXTBOX_ICON_SIZE = 24; memcpy((uintptr_t)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, - GetResourceDataByName(gItemIcons[itemId], false), GetResourceTexSizeByName(gItemIcons[itemId], false)); + gItemIcons[itemId], strlen(gItemIcons[itemId]) + 1); // "Item 24" osSyncPrintf("アイテム24=%d (%d) {%d}\n", itemId, itemId - ITEM_KOKIRI_EMERALD, 84); } @@ -1525,10 +1524,8 @@ void Message_Decode(PlayState* play) { msgCtx->textboxBackgroundYOffsetIdx = (font->msgBuf[msgCtx->msgBufPos + 3] & 0xF0) >> 4; msgCtx->textboxBackgroundUnkArg = font->msgBuf[msgCtx->msgBufPos + 3] & 0xF; - memcpy((uintptr_t)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, - GetResourceDataByName(gRedMessageXLeftTex, false), GetResourceTexSizeByName(gRedMessageXLeftTex, false)); - memcpy((uintptr_t)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE + 0x900, - GetResourceDataByName(gRedMessageXRightTex, false), GetResourceTexSizeByName(gRedMessageXRightTex, false)); + memcpy((uintptr_t)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE, gRedMessageXLeftTex, strlen(gRedMessageXLeftTex) + 1); + memcpy((uintptr_t)msgCtx->textboxSegment + MESSAGE_STATIC_TEX_SIZE + 0x900, gRedMessageXRightTex, strlen(gRedMessageXRightTex) + 1); msgCtx->msgBufPos += 3; R_TEXTBOX_BG_YPOS = R_TEXTBOX_Y + 8; @@ -1674,7 +1671,7 @@ void Message_OpenText(PlayState* play, u16 textId) { osSyncPrintf("吹き出し種類=%d\n", msgCtx->textBoxType); if (textBoxType < TEXTBOX_TYPE_NONE_BOTTOM) { const char* textureName = msgStaticTbl[messageStaticIndices[textBoxType]]; - memcpy(msgCtx->textboxSegment, GetResourceDataByName(textureName, false), MESSAGE_STATIC_TEX_SIZE); + memcpy(msgCtx->textboxSegment, textureName, strlen(textureName) + 1); if (textBoxType == TEXTBOX_TYPE_BLACK) { msgCtx->textboxColorRed = 0; msgCtx->textboxColorGreen = 0; diff --git a/soh/src/code/z_parameter.c b/soh/src/code/z_parameter.c index 68db893fb..8198caebf 100644 --- a/soh/src/code/z_parameter.c +++ b/soh/src/code/z_parameter.c @@ -16,30 +16,9 @@ #include "soh/Enhancements/game-interactor/GameInteractor.h" -static uint16_t _doActionTexWidth, _doActionTexHeight = -1; -static uint16_t DO_ACTION_TEX_WIDTH() { - return 48; - - // TODO: Figure out why Ship::Texture is not returning a valid width - if (_doActionTexWidth == -1) - _doActionTexWidth = GetResourceTexWidthByName(gCheckDoActionENGTex, false); - return _doActionTexWidth; -} -static uint16_t DO_ACTION_TEX_HEIGHT() { - return 16; - - // TODO: Figure out why Ship::Texture is not returning a valid height - if (_doActionTexHeight == -1) - _doActionTexHeight = GetResourceTexHeightByName(gCheckDoActionENGTex, false); - return _doActionTexHeight; -} - -static uint32_t _doActionTexSize = -1; -static uint32_t DO_ACTION_TEX_SIZE() { - if (_doActionTexSize == -1) - _doActionTexSize = GetResourceTexSizeByName(gCheckDoActionENGTex, false); - return _doActionTexSize; -} +#define DO_ACTION_TEX_WIDTH() 48 +#define DO_ACTION_TEX_HEIGHT() 16 +#define DO_ACTION_TEX_SIZE() ((DO_ACTION_TEX_WIDTH() * DO_ACTION_TEX_HEIGHT()) / 2) // The button statuses include the A button when most things are only the equip item buttons // So, when indexing into it with a item button index, we need to adjust @@ -225,6 +204,8 @@ static const char* actionsTbl[] = gNum8DoActionENGTex, }; +static const char gDoEmptyTexture[] = "__OTR__textures/virtual/gEmptyTexture"; + // original name: "alpha_change" void Interface_ChangeAlpha(u16 alphaType) { if (alphaType != gSaveContext.unk_13EA) { @@ -2848,11 +2829,7 @@ bool Inventory_HatchPocketCucco(PlayState* play) { } void func_80086D5C(s32* buf, u16 size) { - u16 i; - - //buf = GetResourceDataByName(buf, false); - - for (i = 0; i < size; i++) { + for (u16 i = 0; i < size; i++) { buf[i] = 0; } } @@ -2865,46 +2842,25 @@ void Interface_LoadActionLabel(InterfaceContext* interfaceCtx, u16 action, s16 l char* doAction = actionsTbl[action]; - char newName[512]; + static char newName[4][512]; if (gSaveContext.language != LANGUAGE_ENG) { size_t length = strlen(doAction); - strcpy(newName, doAction); + strcpy(newName[loadOffset], doAction); if (gSaveContext.language == LANGUAGE_FRA) { - newName[length - 6] = 'F'; - newName[length - 5] = 'R'; - newName[length - 4] = 'A'; + newName[loadOffset][length - 6] = 'F'; + newName[loadOffset][length - 5] = 'R'; + newName[loadOffset][length - 4] = 'A'; } else if (gSaveContext.language == LANGUAGE_GER) { - newName[length - 6] = 'G'; - newName[length - 5] = 'E'; - newName[length - 4] = 'R'; + newName[loadOffset][length - 6] = 'G'; + newName[loadOffset][length - 5] = 'E'; + newName[loadOffset][length - 4] = 'R'; } - doAction = newName; - } - - /* - if (gSaveContext.language != LANGUAGE_ENG) { - action += DO_ACTION_MAX; - } - - if (gSaveContext.language == LANGUAGE_FRA) { - action += DO_ACTION_MAX; - }*/ - - - if (action != DO_ACTION_NONE) { - //osCreateMesgQueue(&interfaceCtx->loadQueue, &interfaceCtx->loadMsg, OS_MESG_BLOCK); - memcpy(interfaceCtx->doActionSegment + (loadOffset * DO_ACTION_TEX_SIZE()), GetResourceDataByName(doAction, false), - DO_ACTION_TEX_SIZE()); - //DmaMgr_SendRequest2(&interfaceCtx->dmaRequest_160, - //interfaceCtx->doActionSegment + (loadOffset * DO_ACTION_TEX_SIZE), - //(uintptr_t)_do_action_staticSegmentRomStart + (action * DO_ACTION_TEX_SIZE), DO_ACTION_TEX_SIZE, - //0, &interfaceCtx->loadQueue, NULL, __FILE__, __LINE__); - //osRecvMesg(&interfaceCtx->loadQueue, NULL, OS_MESG_BLOCK); - } else { - gSegments[7] = VIRTUAL_TO_PHYSICAL(interfaceCtx->doActionSegment); - //func_80086D5C(SEGMENTED_TO_VIRTUAL(sDoActionTextures[loadOffset]), DO_ACTION_TEX_SIZE / 4); - func_80086D5C(interfaceCtx->doActionSegment + (loadOffset * DO_ACTION_TEX_SIZE()), DO_ACTION_TEX_SIZE() / 4); + doAction = newName[loadOffset]; } + + char* segment = interfaceCtx->doActionSegment[loadOffset]; + interfaceCtx->doActionSegment[loadOffset] = action != DO_ACTION_NONE ? doAction : gDoEmptyTexture; + gSegments[7] = interfaceCtx->doActionSegment[loadOffset]; } void Interface_SetDoAction(PlayState* play, u16 action) { @@ -2950,7 +2906,7 @@ void Interface_LoadActionLabelB(PlayState* play, u16 action) { InterfaceContext* interfaceCtx = &play->interfaceCtx; char* doAction = actionsTbl[action]; - char newName[512]; + static char newName[512]; if (gSaveContext.language != LANGUAGE_ENG) { size_t length = strlen(doAction); @@ -2967,24 +2923,10 @@ void Interface_LoadActionLabelB(PlayState* play, u16 action) { doAction = newName; } - /*if (gSaveContext.language != LANGUAGE_ENG) { - action += DO_ACTION_MAX; - } - - if (gSaveContext.language == LANGUAGE_FRA) { - action += DO_ACTION_MAX; - }*/ - interfaceCtx->unk_1FC = action; - - - - // OTRTODO - osCreateMesgQueue(&interfaceCtx->loadQueue, &interfaceCtx->loadMsg, OS_MESG_BLOCK); - memcpy(interfaceCtx->doActionSegment + DO_ACTION_TEX_SIZE(), GetResourceDataByName(doAction, false), DO_ACTION_TEX_SIZE()); - //DmaMgr_SendRequest2(&interfaceCtx->dmaRequest_160, interfaceCtx->doActionSegment + DO_ACTION_TEX_SIZE, - //(uintptr_t)_do_action_staticSegmentRomStart + (action * DO_ACTION_TEX_SIZE), DO_ACTION_TEX_SIZE, 0, - //&interfaceCtx->loadQueue, NULL, __FILE__, __LINE__); + + char* segment = interfaceCtx->doActionSegment[1]; + interfaceCtx->doActionSegment[1] = action != DO_ACTION_NONE ? doAction : gDoEmptyTexture; osRecvMesg(&interfaceCtx->loadQueue, NULL, OS_MESG_BLOCK); interfaceCtx->unk_1FA = 1; @@ -4040,28 +3982,8 @@ void Interface_DrawItemButtons(PlayState* play) { gDPSetEnvColor(OVERLAY_DISP++, 0, 0, 0, 0); gDPSetCombineLERP(OVERLAY_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); - - //There is probably a more elegant way to do it. - char* doAction = actionsTbl[3]; - char newName[512]; - if (gSaveContext.language != LANGUAGE_ENG) { - size_t length = strlen(doAction); - strcpy(newName, doAction); - if (gSaveContext.language == LANGUAGE_FRA) { - newName[length - 6] = 'F'; - newName[length - 5] = 'R'; - newName[length - 4] = 'A'; - } else if (gSaveContext.language == LANGUAGE_GER) { - newName[length - 6] = 'G'; - newName[length - 5] = 'E'; - newName[length - 4] = 'R'; - } - doAction = newName; - } - - memcpy(interfaceCtx->doActionSegment + DO_ACTION_TEX_SIZE() * 2, GetResourceDataByName(doAction, false), DO_ACTION_TEX_SIZE()); - - gDPLoadTextureBlock_4b(OVERLAY_DISP++, interfaceCtx->doActionSegment + DO_ACTION_TEX_SIZE() * 2, G_IM_FMT_IA, + Interface_LoadActionLabel(interfaceCtx, 3, 2); + gDPLoadTextureBlock_4b(OVERLAY_DISP++, interfaceCtx->doActionSegment[2], G_IM_FMT_IA, DO_ACTION_TEX_WIDTH(), DO_ACTION_TEX_HEIGHT(), 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -4076,7 +3998,7 @@ void Interface_DrawItemButtons(PlayState* play) { gSPMatrix(OVERLAY_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_MODELVIEW | G_MTX_LOAD); gSPVertex(OVERLAY_DISP++, &interfaceCtx->actionVtx[4], 4, 0); - Interface_DrawActionLabel(play->state.gfxCtx, interfaceCtx->doActionSegment + DO_ACTION_TEX_SIZE() * 2); + Interface_DrawActionLabel(play->state.gfxCtx, interfaceCtx->doActionSegment[2]); gDPPipeSync(OVERLAY_DISP++); } } @@ -4900,10 +4822,6 @@ void Interface_Draw(PlayState* play) { OPEN_DISPS(play->state.gfxCtx); - // Invalidate Do Action textures as they may have changed - gSPInvalidateTexCache(OVERLAY_DISP++, interfaceCtx->doActionSegment); - gSPInvalidateTexCache(OVERLAY_DISP++, interfaceCtx->doActionSegment + DO_ACTION_TEX_SIZE()); - gSPSegment(OVERLAY_DISP++, 0x02, interfaceCtx->parameterSegment); gSPSegment(OVERLAY_DISP++, 0x07, interfaceCtx->doActionSegment); gSPSegment(OVERLAY_DISP++, 0x08, interfaceCtx->iconItemSegment); @@ -5211,7 +5129,7 @@ void Interface_Draw(PlayState* play) { PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 255, 255, 255, interfaceCtx->bAlpha); - gDPLoadTextureBlock_4b(OVERLAY_DISP++, interfaceCtx->doActionSegment + DO_ACTION_TEX_SIZE(), G_IM_FMT_IA, + gDPLoadTextureBlock_4b(OVERLAY_DISP++, interfaceCtx->doActionSegment[1], G_IM_FMT_IA, DO_ACTION_TEX_WIDTH(), DO_ACTION_TEX_HEIGHT(), 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -5301,7 +5219,7 @@ void Interface_Draw(PlayState* play) { gDPSetPrimColor(OVERLAY_DISP++, 0, 0, dPadColor.r, dPadColor.g, dPadColor.b, dpadAlpha); if (fullUi) { - gDPLoadTextureBlock(OVERLAY_DISP++, GetResourceDataByName("__OTR__textures/parameter_static/gDPad", false), + gDPLoadTextureBlock(OVERLAY_DISP++, "__OTR__textures/parameter_static/gDPad", G_IM_FMT_IA, G_IM_SIZ_16b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPWideTextureRectangle(OVERLAY_DISP++, DpadPosX << 2, DpadPosY << 2, @@ -5417,9 +5335,9 @@ void Interface_Draw(PlayState* play) { gSPVertex(OVERLAY_DISP++, &interfaceCtx->actionVtx[4], 4, 0); if ((interfaceCtx->unk_1EC < 2) || (interfaceCtx->unk_1EC == 3)) { - Interface_DrawActionLabel(play->state.gfxCtx, interfaceCtx->doActionSegment); + Interface_DrawActionLabel(play->state.gfxCtx, interfaceCtx->doActionSegment[0]); } else { - Interface_DrawActionLabel(play->state.gfxCtx, interfaceCtx->doActionSegment + DO_ACTION_TEX_SIZE()); + Interface_DrawActionLabel(play->state.gfxCtx, interfaceCtx->doActionSegment[1]); } gDPPipeSync(OVERLAY_DISP++); diff --git a/soh/src/code/z_play.c b/soh/src/code/z_play.c index 488207a97..9ac45cdcc 100644 --- a/soh/src/code/z_play.c +++ b/soh/src/code/z_play.c @@ -682,6 +682,12 @@ void Play_Init(GameState* thisx) { DmaMgr_DmaRomToRam(0x03FEB000, D_8012D1F0, sizeof(D_801614D0)); } #endif + + if (CVarGetInteger("gIvanCoopModeEnabled", 0)) { + Actor_Spawn(&play->actorCtx, play, ACTOR_EN_PARTNER, GET_PLAYER(play)->actor.world.pos.x, + GET_PLAYER(play)->actor.world.pos.y + Player_GetHeight(GET_PLAYER(play)) + 5.0f, + GET_PLAYER(play)->actor.world.pos.z, 0, 0, 0, 1, true); + } } void Play_Update(PlayState* play) { diff --git a/soh/src/code/z_player_lib.c b/soh/src/code/z_player_lib.c index 8df5b5a91..01d5e0409 100644 --- a/soh/src/code/z_player_lib.c +++ b/soh/src/code/z_player_lib.c @@ -330,6 +330,12 @@ void Player_SetBootData(PlayState* play, Player* this) { } } +// Custom method used to determine if we're using a custom model for link +uint8_t Player_IsCustomLinkModel() { + return (LINK_IS_ADULT && GetResourceIsCustomByName(gLinkAdultSkel, true)) || + (LINK_IS_CHILD && GetResourceIsCustomByName(gLinkChildSkel, true)); +} + s32 Player_InBlockingCsMode(PlayState* play, Player* this) { return (this->stateFlags1 & 0x20000080) || (this->csMode != 0) || (play->sceneLoadFlag == 0x14) || (this->stateFlags1 & 1) || (this->stateFlags3 & 0x80) || @@ -788,6 +794,11 @@ void func_8008F470(PlayState* play, void** skeleton, Vec3s* jointTable, s32 dLis gDPSetEnvColor(POLY_OPA_DISP++, color->r, color->g, color->b, 0); + // If we have a custom link model, always use the most detailed LOD + if (Player_IsCustomLinkModel()) { + lod = 0; + } + sDListsLodOffset = lod * 2; SkelAnime_DrawFlexLod(play, skeleton, jointTable, dListCount, overrideLimbDraw, postLimbDraw, data, lod); @@ -1024,7 +1035,8 @@ s32 func_8008FCC8(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s s32 func_80090014(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) { Player* this = (Player*)thisx; - if (!func_8008FCC8(play, limbIndex, dList, pos, rot, thisx)) { + if (!func_8008FCC8(play, limbIndex, dList, pos, rot, thisx)) + { if (limbIndex == PLAYER_LIMB_L_HAND) { Gfx** dLists = this->leftHandDLists; @@ -1072,7 +1084,12 @@ s32 func_80090014(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s } else if (limbIndex == PLAYER_LIMB_WAIST) { - *dList = ResourceMgr_LoadGfxByName(this->waistDLists[sDListsLodOffset]); + + if (!Player_IsCustomLinkModel()) { + *dList = ResourceMgr_LoadGfxByName( + this->waistDLists[sDListsLodOffset]); // NOTE: This needs to be disabled when using custom + // characters - they're not going to have LODs anyways... + } } } @@ -1678,6 +1695,10 @@ s32 func_80091880(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s } } else if (limbIndex == PLAYER_LIMB_WAIST) { type = gPlayerModelTypes[modelGroup][4]; + + if (Player_IsCustomLinkModel()) { + return 0; + } } else { return 0; } diff --git a/soh/src/code/z_room.c b/soh/src/code/z_room.c index d10a5089e..f30bb5b03 100644 --- a/soh/src/code/z_room.c +++ b/soh/src/code/z_room.c @@ -1,3 +1,7 @@ +#ifdef WIN32 +#include +#endif + #include "global.h" #include "vt.h" #include "soh/Enhancements/randomizer/randomizer_entrance.h" @@ -222,42 +226,29 @@ void func_80095D04(PlayState* play, Room* room, u32 flags) { s32 swapAndConvertJPEG(void* data) { OSTime time; + if (BE32SWAP(*(u32*)data) == JPEG_MARKER) { + size_t size = 320 * 240 * 2; - if (BE32SWAP(*(u32*)data) == JPEG_MARKER) - { - char* decodedJpeg = ResourceMgr_LoadJPEG(data, 320 * 240 * 2); - //char* decodedJpeg = ResourceMgr_LoadJPEG(data, 480 * 240 * 2); + char *decodedJpeg = ResourceMgr_LoadJPEG(data, size); - osSyncPrintf("JPEGデータを展開します\n"); // "Expanding jpeg data" - osSyncPrintf("JPEGデータアドレス %08x\n", data); // "Jpeg data address %08x" - // "Work buffer address (Z buffer) %08x" - osSyncPrintf("ワークバッファアドレス(Zバッファ)%08x\n", gZBuffer); + osSyncPrintf("Expanding jpeg data\n"); + osSyncPrintf("Work buffer address (Z buffer) %08x\n", gZBuffer); time = osGetTime(); - //if (!Jpeg_Decode(data, gZBuffer, gGfxSPTaskOutputBuffer, sizeof(gGfxSPTaskOutputBuffer))) - if (1) - { - memcpy(data, decodedJpeg, 320 * 240 * 2); - //memcpy(data, decodedJpeg, 480 * 240 * 2); - time = osGetTime() - time; + memcpy(data, decodedJpeg, size); + time = osGetTime() - time; - // "Success... I think. time = %6.3f ms" - osSyncPrintf("成功…だと思う。 time = %6.3f ms \n", OS_CYCLES_TO_USEC(time) / 1000.0f); - // "Writing back to original address from work buffer." - osSyncPrintf("ワークバッファから元のアドレスに書き戻します。\n"); - // "If the original buffer size isn't at least 150kb, it will be out of control." - osSyncPrintf("元のバッファのサイズが150キロバイト無いと暴走するでしょう。\n"); - - //bcopy(gZBuffer, data, sizeof(gZBuffer)); - } else { - osSyncPrintf("失敗!なんで〜\n"); // "Failure! Why is it 〜" - } + osSyncPrintf("Success... I think. time = %6.3f ms", OS_CYCLES_TO_USEC(time) / 1000.0f); + osSyncPrintf("Writing back to original address from work buffer."); + osSyncPrintf("If the original buffer size isn't at least 150kb, it will be out of control."); + return 1; } return 0; } + void func_8009638C(Gfx** displayList, void* source, void* tlut, u16 width, u16 height, u8 fmt, u8 siz, u16 mode0, u16 tlutCount, f32 frameX, f32 frameY) { Gfx* displayListHead; @@ -265,7 +256,6 @@ void func_8009638C(Gfx** displayList, void* source, void* tlut, u16 width, u16 h s32 temp; displayListHead = *displayList; - swapAndConvertJPEG(SEGMENTED_TO_VIRTUAL(source)); bg = (uObjBg*)(displayListHead + 1); gSPBranchList(displayListHead, (u8*)bg + sizeof(uObjBg)); @@ -413,7 +403,7 @@ BgImage* func_80096A74(PolygonType1* polygon1, PlayState* play) { // camera (such as din's fire) on scenes with prerendered backgrounds return NULL; } - + // jfifid camId2 = func_80041C10(&play->colCtx, camId, BGCHECK_SCENE)[2].y; if (camId2 >= 0) { diff --git a/soh/src/code/z_skelanime.c b/soh/src/code/z_skelanime.c index d0404ae17..908a83bcf 100644 --- a/soh/src/code/z_skelanime.c +++ b/soh/src/code/z_skelanime.c @@ -1077,7 +1077,7 @@ void SkelAnime_InitLink(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeade LinkAnimationHeader* animation, s32 flags, Vec3s* jointTable, Vec3s* morphTable, s32 limbBufCount) { if (ResourceMgr_OTRSigCheck(skeletonHeaderSeg) != 0) - skeletonHeaderSeg = ResourceMgr_LoadSkeletonByName(skeletonHeaderSeg); + skeletonHeaderSeg = ResourceMgr_LoadSkeletonByName(skeletonHeaderSeg, skelAnime); FlexSkeletonHeader* skeletonHeader = SEGMENTED_TO_VIRTUAL(skeletonHeaderSeg); s32 headerJointCount = skeletonHeader->sh.limbCount; @@ -1429,7 +1429,7 @@ s32 LinkAnimation_OnFrame(SkelAnime* skelAnime, f32 frame) { s32 SkelAnime_Init(PlayState* play, SkelAnime* skelAnime, SkeletonHeader* skeletonHeaderSeg, AnimationHeader* animation, Vec3s* jointTable, Vec3s* morphTable, s32 limbCount) { if (ResourceMgr_OTRSigCheck(skeletonHeaderSeg)) - skeletonHeaderSeg = ResourceMgr_LoadSkeletonByName(skeletonHeaderSeg); + skeletonHeaderSeg = ResourceMgr_LoadSkeletonByName(skeletonHeaderSeg, skelAnime); SkeletonHeader* skeletonHeader = SEGMENTED_TO_VIRTUAL(skeletonHeaderSeg); @@ -1462,7 +1462,7 @@ s32 SkelAnime_Init(PlayState* play, SkelAnime* skelAnime, SkeletonHeader* skelet s32 SkelAnime_InitFlex(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeader* skeletonHeaderSeg, AnimationHeader* animation, Vec3s* jointTable, Vec3s* morphTable, s32 limbCount) { if (ResourceMgr_OTRSigCheck(skeletonHeaderSeg) != 0) - skeletonHeaderSeg = ResourceMgr_LoadSkeletonByName(skeletonHeaderSeg); + skeletonHeaderSeg = ResourceMgr_LoadSkeletonByName(skeletonHeaderSeg, skelAnime); FlexSkeletonHeader* skeletonHeader = SEGMENTED_TO_VIRTUAL(skeletonHeaderSeg); @@ -1921,6 +1921,8 @@ void SkelAnime_Free(SkelAnime* skelAnime, PlayState* play) { } else { osSyncPrintf("morf_joint あきまへん!!\n"); // "morf_joint is freed !!" } + + ResourceMgr_UnregisterSkeleton(skelAnime); } /** diff --git a/soh/src/code/z_skin_awb.c b/soh/src/code/z_skin_awb.c index f3a2e6390..eea1967a9 100644 --- a/soh/src/code/z_skin_awb.c +++ b/soh/src/code/z_skin_awb.c @@ -38,7 +38,7 @@ void Skin_InitAnimatedLimb(PlayState* play, Skin* skin, s32 limbIndex) { */ void Skin_Init(PlayState* play, Skin* skin, SkeletonHeader* skeletonHeader, AnimationHeader* animationHeader) { if (ResourceMgr_OTRSigCheck(skeletonHeader)) - skeletonHeader = ResourceMgr_LoadSkeletonByName(skeletonHeader); + skeletonHeader = ResourceMgr_LoadSkeletonByName(skeletonHeader, NULL); s32 limbCount; s32 i; diff --git a/soh/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c b/soh/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c index b616a292f..2ae04e344 100644 --- a/soh/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c +++ b/soh/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c @@ -1,4 +1,5 @@ #include "z_boss_dodongo.h" +#include "textures/boss_title_cards/object_kingdodongo.h" #include "objects/object_kingdodongo/object_kingdodongo.h" #include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h" #include "scenes/dungeons/ddan_boss/ddan_boss_room_1.h" @@ -49,6 +50,14 @@ const ActorInit Boss_Dodongo_InitVars = { #include "z_boss_dodongo_data.c" +static u8 sMaskTex16x16[16 * 16] = { { 0 } }; +static u8 sMaskTex8x16[8 * 16] = { { 0 } }; +static u8 sMaskTex16x32[16 * 32] = { { 0 } }; +static u8 sMaskTex32x16[32 * 16] = { { 0 } }; +static u8 sMaskTex8x8[8 * 8] = { { 0 } }; +static u8 sMaskTex8x32[8 * 32] = { { 0 } }; +static u8 sMaskTexLava[32 * 64] = { { 0 } }; + static InitChainEntry sInitChain[] = { ICHAIN_U8(targetMode, 5, ICHAIN_CONTINUE), ICHAIN_S8(naviEnemyId, 0x0C, ICHAIN_CONTINUE), @@ -56,65 +65,24 @@ static InitChainEntry sInitChain[] = { ICHAIN_F32(targetArrowOffset, 8200.0f, ICHAIN_STOP), }; -void func_808C1190(s16* arg0, u8* arg1, s16 arg2) { - arg0 = GetResourceDataByName(arg0, false); - - if (arg2[arg1] != 0) { - arg0[arg2 / 2] = 0; - } -} - -void func_808C11D0(s16* arg0, u8* arg1, s16 arg2) { - arg0 = GetResourceDataByName(arg0, false); - - if (arg1[arg2] != 0) { - arg0[arg2] = 0; - } -} - -void func_808C1200(s16* arg0, u8* arg1, s16 arg2) { - arg0 = GetResourceDataByName(arg0, false); - - if (arg1[arg2] != 0) { - arg0[arg2] = 0; - } -} - -void func_808C1230(s16* arg0, u8* arg1, s16 arg2) { - s16 index; - - arg0 = GetResourceDataByName(arg0, false); - - if (arg1[arg2] != 0) { - index = ((arg2 & 0xF) + ((arg2 & 0xF0) * 2)); - arg0[index + 16] = 0; - arg0[index] = 0; - } -} - -void func_808C1278(s16* arg0, u8* arg1, s16 arg2) { - s16 index; - - arg0 = GetResourceDataByName(arg0, false); - - if (arg1[arg2] != 0) { - index = ((arg2 & 0xF) * 2) + ((arg2 & 0xF0) * 2); - arg0[index + 1] = 0; - arg0[index] = 0; - } -} - void func_808C12C4(u8* arg1, s16 arg2) { - func_808C1190(SEGMENTED_TO_VIRTUAL(object_kingdodongo_Tex_015890), arg1, arg2); - func_808C1200(SEGMENTED_TO_VIRTUAL(object_kingdodongo_Tex_017210), arg1, arg2); - func_808C11D0(SEGMENTED_TO_VIRTUAL(object_kingdodongo_Tex_015D90), arg1, arg2); - func_808C11D0(SEGMENTED_TO_VIRTUAL(object_kingdodongo_Tex_016390), arg1, arg2); - func_808C11D0(SEGMENTED_TO_VIRTUAL(object_kingdodongo_Tex_016590), arg1, arg2); - func_808C11D0(SEGMENTED_TO_VIRTUAL(object_kingdodongo_Tex_016790), arg1, arg2); - func_808C1230(SEGMENTED_TO_VIRTUAL(object_kingdodongo_Tex_015990), arg1, arg2); - func_808C1230(SEGMENTED_TO_VIRTUAL(object_kingdodongo_Tex_015F90), arg1, arg2); - func_808C1278(SEGMENTED_TO_VIRTUAL(object_kingdodongo_Tex_016990), arg1, arg2); - func_808C1278(SEGMENTED_TO_VIRTUAL(object_kingdodongo_Tex_016E10), arg1, arg2); + if (arg2[arg1] != 0) { + sMaskTex8x16[arg2 / 2] = 1; + + sMaskTex8x32[arg2] = 1; + + sMaskTex16x16[arg2] = 1; + + sMaskTex16x16[arg2] = 1; + + s16 index = ((arg2 & 0xF) + ((arg2 & 0xF0) * 2)); + sMaskTex16x32[index + 16] = 1; + sMaskTex16x32[index] = 1; + + index = ((arg2 & 0xF) * 2) + ((arg2 & 0xF0) * 2); + sMaskTex32x16[index + 1] = 1; + sMaskTex32x16[index] = 1; + } } void func_808C1554(void* arg0, void* floorTex, s32 arg2, f32 arg3) { @@ -228,13 +196,47 @@ void BossDodongo_Init(Actor* thisx, PlayState* play) { Actor_Spawn(&play->actorCtx, play, ACTOR_BG_BREAKWALL, -890.0f, -1523.76f, -3304.0f, 0, 0, 0, 0x6000, true); Actor_Spawn(&play->actorCtx, play, ACTOR_ITEM_B_HEART, -690.0f, -1523.76f, -3304.0f, 0, 0, 0, 0, true); - for (i = 0; i < 2048; i++) { - temp_v0 = i; - temp_s1_3[temp_v0] = temp_s2[temp_v0]; + for (int i = 0; i < ARRAY_COUNT(sMaskTexLava); i++) { + sMaskTexLava[i] = 1; + } + } else { + for (int i = 0; i < ARRAY_COUNT(sMaskTexLava); i++) { + sMaskTexLava[i] = 0; } } this->actor.flags &= ~ACTOR_FLAG_0; + + for (int i = 0; i < ARRAY_COUNT(sMaskTex8x16); i++) { + sMaskTex8x16[i] = 0; + } + for (int i = 0; i < ARRAY_COUNT(sMaskTex8x32); i++) { + sMaskTex8x32[i] = 0; + } + for (int i = 0; i < ARRAY_COUNT(sMaskTex16x16); i++) { + sMaskTex16x16[i] = 0; + } + for (int i = 0; i < ARRAY_COUNT(sMaskTex16x32); i++) { + sMaskTex16x32[i] = 0; + } + for (int i = 0; i < ARRAY_COUNT(sMaskTex32x16); i++) { + sMaskTex32x16[i] = 0; + } + Gfx_RegisterBlendedTexture(object_kingdodongo_Tex_015890, sMaskTex8x16, NULL); + Gfx_RegisterBlendedTexture(object_kingdodongo_Tex_017210, sMaskTex8x32, NULL); + Gfx_RegisterBlendedTexture(object_kingdodongo_Tex_015D90, sMaskTex16x16, NULL); + Gfx_RegisterBlendedTexture(object_kingdodongo_Tex_016390, sMaskTex16x16, NULL); + Gfx_RegisterBlendedTexture(object_kingdodongo_Tex_016590, sMaskTex16x16, NULL); + Gfx_RegisterBlendedTexture(object_kingdodongo_Tex_016790, sMaskTex16x16, NULL); + Gfx_RegisterBlendedTexture(object_kingdodongo_Tex_015990, sMaskTex16x32, NULL); + Gfx_RegisterBlendedTexture(object_kingdodongo_Tex_015F90, sMaskTex16x32, NULL); + Gfx_RegisterBlendedTexture(object_kingdodongo_Tex_016990, sMaskTex32x16, NULL); + Gfx_RegisterBlendedTexture(object_kingdodongo_Tex_016E10, sMaskTex32x16, NULL); + + // OTRTODO: This is causing OOB memory reads with HD assets + // commenting this out means the lava will stay lava even after beating king d + // + // Gfx_RegisterBlendedTexture(gDodongosCavernBossLavaFloorTex, sMaskTexLava, sLavaFloorRockTex); } void BossDodongo_Destroy(Actor* thisx, PlayState* play) { @@ -421,7 +423,7 @@ void BossDodongo_IntroCutscene(BossDodongo* this, PlayState* play) { if (this->unk_198 == 0x5A) { if (!(gSaveContext.eventChkInf[7] & 2)) { TitleCard_InitBossName(play, &play->actorCtx.titleCtx, - SEGMENTED_TO_VIRTUAL(gKingDodongoTitleCardTex), 160, 180, 128, 40, true); + SEGMENTED_TO_VIRTUAL(gKingDodongoTitleCardENGTex), 160, 180, 128, 40, true); } Audio_QueueSeqCmd(SEQ_PLAYER_BGM_MAIN << 24 | NA_BGM_FIRE_BOSS); } @@ -1011,7 +1013,8 @@ void BossDodongo_Update(Actor* thisx, PlayState* play2) { } } - func_808C1554(gDodongosCavernBossLavaFloorTex, sLavaFloorLavaTex, this->unk_19E, this->unk_224); + // TODO The lave floor bubbles with an effect that modifies the texture. This needs to be recreated shader-side. + //func_808C1554(gDodongosCavernBossLavaFloorTex, sLavaFloorLavaTex, this->unk_19E, this->unk_224); } if (this->unk_1C6 != 0) { @@ -1022,7 +1025,7 @@ void BossDodongo_Update(Actor* thisx, PlayState* play2) { for (i2 = 0; i2 < 20; i2++) { s16 new_var = this->unk_1C2 & 0x7FF; - ptr1[new_var] = ptr2[new_var]; + sMaskTexLava[new_var] = 1; this->unk_1C2 += 37; } Math_SmoothStepToF(&this->unk_224, 0.0f, 1.0f, 0.01f, 0.0f); @@ -1139,6 +1142,18 @@ void BossDodongo_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx); Gfx_SetupDL_25Opa(play->state.gfxCtx); + if ((this->csState == 9) && (this->unk_1DA < 854)) { + gSPInvalidateTexCache(POLY_OPA_DISP++, sMaskTex8x16); + gSPInvalidateTexCache(POLY_OPA_DISP++, sMaskTex8x32); + gSPInvalidateTexCache(POLY_OPA_DISP++, sMaskTex16x16); + gSPInvalidateTexCache(POLY_OPA_DISP++, sMaskTex16x32); + gSPInvalidateTexCache(POLY_OPA_DISP++, sMaskTex32x16); + } + + if (this->unk_1C6 != 0) { + gSPInvalidateTexCache(POLY_OPA_DISP++, sMaskTexLava); + } + if ((this->unk_1C0 >= 2) && (this->unk_1C0 & 1)) { POLY_OPA_DISP = Gfx_SetFog(POLY_OPA_DISP, 255, 255, 255, 0, 900, 1099); } else { @@ -1274,7 +1289,7 @@ void BossDodongo_UpdateDamage(BossDodongo* this, PlayState* play) { this->collider.elements->info.bumperFlags &= ~2; item1 = this->collider.elements[0].info.acHitInfo; if ((this->actionFunc == BossDodongo_Vulnerable) || (this->actionFunc == BossDodongo_LayDown)) { - swordDamage = damage = CollisionCheck_GetSwordDamage(item1->toucher.dmgFlags); + swordDamage = damage = CollisionCheck_GetSwordDamage(item1->toucher.dmgFlags, play); if (damage != 0) { Audio_PlayActorSound2(&this->actor, NA_SE_EN_DODO_K_DAMAGE); @@ -1700,8 +1715,6 @@ void BossDodongo_DrawEffects(PlayState* play) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); unkMtx = &play->billboardMtxF; - gSPInvalidateTexCache(POLY_XLU_DISP++, gDodongosCavernBossLavaFloorTex); - for (i = 0; i < 80; i++, eff++) { FrameInterpolation_RecordOpenChild(eff, eff->epoch); if (eff->unk_24 == 1) { diff --git a/soh/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c b/soh/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c index 51e3402d8..b29232095 100644 --- a/soh/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c +++ b/soh/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c @@ -5,6 +5,7 @@ */ #include "z_boss_fd.h" +#include "textures/boss_title_cards/object_fd.h" #include "objects/object_fd/object_fd.h" #include "overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.h" #include "overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.h" @@ -499,7 +500,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) { } if ((this->timers[3] == 130) && !(gSaveContext.eventChkInf[7] & 8)) { TitleCard_InitBossName(play, &play->actorCtx.titleCtx, - SEGMENTED_TO_VIRTUAL(gVolvagiaBossTitleCardTex), 160, 180, 128, 40, true); + SEGMENTED_TO_VIRTUAL(gVolvagiaBossTitleCardENGTex), 160, 180, 128, 40, true); } if (this->timers[3] <= 100) { this->camData.eyeVel.x = this->camData.eyeVel.y = this->camData.eyeVel.z = 2.0f; diff --git a/soh/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c b/soh/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c index a8577c2da..9280071f5 100644 --- a/soh/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c +++ b/soh/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c @@ -869,7 +869,7 @@ void BossFd2_CollisionCheck(BossFd2* this, PlayState* play) { u8 canKill = false; u8 damage; - if ((damage = CollisionCheck_GetSwordDamage(hurtbox->toucher.dmgFlags)) == 0) { + if ((damage = CollisionCheck_GetSwordDamage(hurtbox->toucher.dmgFlags, play)) == 0) { damage = (hurtbox->toucher.dmgFlags & 0x00001000) ? 4 : 2; } else { canKill = true; diff --git a/soh/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c b/soh/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c index 413014834..ec59ae35b 100644 --- a/soh/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/soh/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -4,6 +4,7 @@ #include "overlays/actors/ovl_En_Zl3/z_en_zl3.h" #include "overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.h" #include "overlays/actors/ovl_En_Bom/z_en_bom.h" +#include "textures/boss_title_cards/object_ganon.h" #include "assets/objects/object_ganon/object_ganon.h" #include "assets/objects/object_ganon_anime1/object_ganon_anime1.h" #include "assets/objects/object_ganon_anime2/object_ganon_anime2.h" @@ -119,6 +120,8 @@ EnZl3* sBossGanonZelda; GanondorfEffect sBossGanonEffectBuf[200]; +static u8 sWindowShatterTex[2048] = { {0} }; + void BossGanonEff_SpawnWindowShard(PlayState* play, Vec3f* pos, Vec3f* velocity, f32 scale) { static Color_RGB8 shardColors[] = { { 255, 175, 85 }, { 155, 205, 155 }, { 155, 125, 55 } }; s16 i; @@ -453,6 +456,13 @@ void BossGanon_Init(Actor* thisx, PlayState* play2) { Collider_SetCylinder(play, &this->collider, thisx, &sLightBallCylinderInit); } } + + for (int i = 0; i < ARRAY_COUNT(sWindowShatterTex); i++) { + sWindowShatterTex[i] = 0; + } + + Gfx_RegisterBlendedTexture(ganon_boss_sceneTex_006C18, sWindowShatterTex, NULL); + Gfx_RegisterBlendedTexture(ganon_boss_sceneTex_007418, sWindowShatterTex, NULL); } void BossGanon_Destroy(Actor* thisx, PlayState* play) { @@ -1095,7 +1105,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) { if (!(gSaveContext.eventChkInf[7] & 0x100)) { TitleCard_InitBossName(play, &play->actorCtx.titleCtx, - SEGMENTED_TO_VIRTUAL(gGanondorfTitleCardTex), 160, 180, 128, 40, true); + SEGMENTED_TO_VIRTUAL(gGanondorfTitleCardENGTex), 160, 180, 128, 40, true); } gSaveContext.eventChkInf[7] |= 0x100; @@ -1210,14 +1220,12 @@ void BossGanon_SetupTowerCutscene(BossGanon* this, PlayState* play) { void BossGanon_ShatterWindows(u8 windowShatterState) { s16 i; - u8* tex1 = GetResourceDataByNameHandlingMQ(SEGMENTED_TO_VIRTUAL(ganon_boss_sceneTex_006C18)); - u8* tex2 = GetResourceDataByNameHandlingMQ(SEGMENTED_TO_VIRTUAL(ganon_boss_sceneTex_007418)); u8* templateTex = GetResourceDataByName(SEGMENTED_TO_VIRTUAL(gGanondorfWindowShatterTemplateTex), false); - for (i = 0; i < 2048; i++) { - if ((tex1[i] != 0) && (Rand_ZeroOne() < 0.03f)) { + for (i = 0; i < ARRAY_COUNT(sWindowShatterTex); i++) { + if ((sWindowShatterTex[i] != 1) && (Rand_ZeroOne() < 0.03f)) { if ((templateTex[i] == 0) || (windowShatterState == GDF_WINDOW_SHATTER_FULL)) { - tex1[i] = tex2[i] = 1; + sWindowShatterTex[i] = 1; } } } @@ -2776,7 +2784,7 @@ void BossGanon_UpdateDamage(BossGanon* this, PlayState* play) { Rand_ZeroFloat(200.0f) + 500.0f, 0x1E); } - damage = flags = CollisionCheck_GetSwordDamage(acHitInfo->toucher.dmgFlags); + damage = flags = CollisionCheck_GetSwordDamage(acHitInfo->toucher.dmgFlags, play); if (flags == 0) { damage = 2; @@ -3866,10 +3874,9 @@ void BossGanon_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx); - // Invalidate textures if they have changed + // Invalidate texture mask if it has changed if (this->windowShatterState != GDF_WINDOW_SHATTER_OFF) { - gSPInvalidateTexCache(POLY_OPA_DISP++, ganon_boss_sceneTex_006C18); - gSPInvalidateTexCache(POLY_OPA_DISP++, ganon_boss_sceneTex_007418); + gSPInvalidateTexCache(POLY_OPA_DISP++, sWindowShatterTex); } Gfx_SetupDL_25Opa(play->state.gfxCtx); diff --git a/soh/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/soh/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c index f4c239d6d..a1cfaa684 100644 --- a/soh/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c +++ b/soh/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c @@ -2,6 +2,7 @@ #include "overlays/actors/ovl_Demo_Gj/z_demo_gj.h" #include "overlays/actors/ovl_En_Zl3/z_en_zl3.h" #include "objects/object_ganon/object_ganon.h" +#include "textures/boss_title_cards/object_ganon2.h" #include "objects/object_ganon2/object_ganon2.h" #include "objects/object_ganon_anime3/object_ganon_anime3.h" #include "objects/object_geff/object_geff.h" @@ -708,7 +709,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) { if (this->csTimer == 80) { BossGanon2_SetObjectSegment(this, play, OBJECT_GANON2, false); TitleCard_InitBossName(play, &play->actorCtx.titleCtx, - SEGMENTED_TO_VIRTUAL(gGanonTitleCardTex), 160, 180, 128, 40, true); + SEGMENTED_TO_VIRTUAL(gGanonTitleCardENGTex), 160, 180, 128, 40, true); //It has translation but they are all the same. they all say "GANON" only } this->unk_3A4.x = ((this->actor.world.pos.x + 500.0f) - 350.0f) + 100.0f; @@ -3155,4 +3156,4 @@ void BossGanon2_Reset(void) { memset(D_809105D8, 0, sizeof(D_809105D8)); memset(D_80910608, 0, sizeof(D_80910608)); memset(sBossGanon2Particles, 0, sizeof(sBossGanon2Particles)); -} \ No newline at end of file +} diff --git a/soh/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c b/soh/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c index ee63f6a64..642dd4559 100644 --- a/soh/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c +++ b/soh/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c @@ -181,6 +181,8 @@ static u8 sDecayMaskTotal[16 * 16] = { }; // clang-format on +static u8 sDecayTex[16 * 16] = { { 0 } }; + // These are Phantom Ganon's body textures, but I don't know which is which. static void* sLimbTex_rgba16_8x8[] = { gPhantomGanonLimbTex_00A800, gPhantomGanonLimbTex_00AE80, gPhantomGanonLimbTex_00AF00, @@ -208,66 +210,9 @@ static InitChainEntry sInitChain[] = { static Vec3f sAudioVec = { 0.0f, 0.0f, 50.0f }; -void BossGanondrof_ClearPixels8x8(s16* texture, u8* mask, s16 index) -{ - if (mask[index]) { - WriteTextureDataInt16ByName(texture, index / 4, 0, true); - } -} - -void BossGanondrof_ClearPixels16x8(s16* texture, u8* mask, s16 index) { - if (mask[index]) { - WriteTextureDataInt16ByName(texture, index / 2, 0, false); - - } -} - -void BossGanondrof_ClearPixels16x16(s16* texture, u8* mask, s16 index, s16 bpp) { - if (mask[index]) { - WriteTextureDataInt16ByName(texture, index, 0, false); - } -} - -void BossGanondrof_ClearPixels32x16(s16* texture, u8* mask, s16 index) { - if (mask[index]) { - s16 i = (index & 0xF) + ((index & 0xF0) << 1); - - WriteTextureDataInt16ByName(texture, i + 0x10, 0, false); - WriteTextureDataInt16ByName(texture, i, 0, false); - } -} - -void BossGanondrof_ClearPixels16x32(s16* texture, u8* mask, s16 index) { - if (mask[index]) { - s16 i = ((index & 0xF) * 2) + ((index & 0xF0) * 2); - - WriteTextureDataInt16ByName(texture, i + 1, 0, false); - WriteTextureDataInt16ByName(texture, i, 0, false); - } - -} - void BossGanondrof_ClearPixels(u8* mask, s16 index) { - s16 i; - - for (i = 0; i < 5; i++) { - // ARRAY_COUNT can't be used here because the arrays aren't guaranteed to be the same size. - BossGanondrof_ClearPixels8x8(SEGMENTED_TO_VIRTUAL(sLimbTex_rgba16_8x8[i]), mask, index); - BossGanondrof_ClearPixels16x8(SEGMENTED_TO_VIRTUAL(sLimbTex_rgba16_16x8[i]), mask, index); - } - - for (i = 0; i < ARRAY_COUNT(sLimbTex_rgba16_16x16); i++) { - BossGanondrof_ClearPixels16x16(SEGMENTED_TO_VIRTUAL(sLimbTex_rgba16_16x16[i]), mask, index, 2); - } - - for (i = 0; i < ARRAY_COUNT(sLimbTex_rgba16_16x32); i++) { - BossGanondrof_ClearPixels16x32(SEGMENTED_TO_VIRTUAL(sLimbTex_rgba16_16x32[i]), mask, index); - } - - BossGanondrof_ClearPixels32x16(SEGMENTED_TO_VIRTUAL(gPhantomGanonLimbTex_00B380), mask, index); - BossGanondrof_ClearPixels16x32(SEGMENTED_TO_VIRTUAL(gPhantomGanonEyeTex), mask, index); - for (i = 0; i < ARRAY_COUNT(sMouthTex_ci8_16x16); i++) { - BossGanondrof_ClearPixels16x16(SEGMENTED_TO_VIRTUAL(sMouthTex_ci8_16x16[i]), mask, index, 1); + if (mask[index]) { + sDecayTex[index] = 1; } } @@ -311,6 +256,26 @@ void BossGanondrof_Init(Actor* thisx, PlayState* play) { Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_FHG, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, this->actor.params); } + + for (int i = 0; i < ARRAY_COUNT(sDecayTex); i++) { + sDecayTex[i] = 0; + } + + for (int i = 0; i < 5; i++) { + Gfx_RegisterBlendedTexture(sLimbTex_rgba16_8x8[i], sDecayTex, NULL); + Gfx_RegisterBlendedTexture(sLimbTex_rgba16_16x8[i], sDecayTex, NULL); + } + for (int i = 0; i < ARRAY_COUNT(sLimbTex_rgba16_16x16); i++) { + Gfx_RegisterBlendedTexture(sLimbTex_rgba16_16x16[i], sDecayTex, NULL); + } + for (int i = 0; i < ARRAY_COUNT(sLimbTex_rgba16_16x32); i++) { + Gfx_RegisterBlendedTexture(sLimbTex_rgba16_16x32[i], sDecayTex, NULL); + } + Gfx_RegisterBlendedTexture(gPhantomGanonLimbTex_00B380, sDecayTex, NULL); + Gfx_RegisterBlendedTexture(gPhantomGanonEyeTex, sDecayTex, NULL); + for (int i = 0; i < ARRAY_COUNT(sMouthTex_ci8_16x16); i++) { + Gfx_RegisterBlendedTexture(sMouthTex_ci8_16x16[i], sDecayTex, NULL); + } } void BossGanondrof_Destroy(Actor* thisx, PlayState* play) { @@ -1271,7 +1236,7 @@ void BossGanondrof_CollisionCheck(BossGanondrof* this, PlayState* play) { if (dmgFlags & 0x80) { return; } - dmg = CollisionCheck_GetSwordDamage(dmgFlags); + dmg = CollisionCheck_GetSwordDamage(dmgFlags, play); (dmg == 0) ? (dmg = 2) : (canKill = true); if (((s8)this->actor.colChkInfo.health > 2) || canKill) { this->actor.colChkInfo.health -= dmg; @@ -1512,21 +1477,7 @@ void BossGanondrof_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx); if (this->work[GND_BODY_DECAY_FLAG]) { - for (int i = 0; i < 5; i++) { - gSPInvalidateTexCache(POLY_OPA_DISP++, sLimbTex_rgba16_8x8[i]); - gSPInvalidateTexCache(POLY_OPA_DISP++, sLimbTex_rgba16_16x8[i]); - } - for (int i = 0; i < ARRAY_COUNT(sLimbTex_rgba16_16x16); i++) { - gSPInvalidateTexCache(POLY_OPA_DISP++, sLimbTex_rgba16_16x16[i]); - } - for (int i = 0; i < ARRAY_COUNT(sLimbTex_rgba16_16x32); i++) { - gSPInvalidateTexCache(POLY_OPA_DISP++, sLimbTex_rgba16_16x32[i]); - } - gSPInvalidateTexCache(POLY_OPA_DISP++, gPhantomGanonLimbTex_00B380); - gSPInvalidateTexCache(POLY_OPA_DISP++, gPhantomGanonEyeTex); - for (int i = 0; i < ARRAY_COUNT(sMouthTex_ci8_16x16); i++) { - gSPInvalidateTexCache(POLY_OPA_DISP++, sMouthTex_ci8_16x16[i]); - } + gSPInvalidateTexCache(POLY_OPA_DISP++, sDecayTex); } osSyncPrintf("MOVE P = %x\n", this->actor.update); diff --git a/soh/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c b/soh/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c index 732e0b514..0bc49d3f0 100644 --- a/soh/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c +++ b/soh/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c @@ -1,4 +1,5 @@ #include "z_boss_goma.h" +#include "textures/boss_title_cards/object_goma.h" #include "objects/object_goma/object_goma.h" #include "overlays/actors/ovl_En_Goma/z_en_goma.h" #include "overlays/actors/ovl_Door_Shutter/z_door_shutter.h" @@ -255,6 +256,9 @@ static u8 sClearPixelTableSecondPass[16 * 16] = { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }; +static u8 sClearPixelTex16[16 * 16] = { { 0 } }; +static u8 sClearPixelTex32[32 * 32] = { { 0 } }; + // indexed by limb (where the root limb is 1) static u8 sDeadLimbLifetime[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -289,47 +293,20 @@ static u8 sDeadLimbLifetime[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; -/** - * Sets the `i`th pixel of a 16x16 RGBA16 image to 0 (transparent black) - * according to the `clearPixelTable` - */ -void BossGoma_ClearPixels16x16Rgba16(s16* rgba16image, u8* clearPixelTable, s16 i) -{ - if (clearPixelTable[i]) { - rgba16image[i] = 0; - } -} - -/** - * Sets the `i`th 2x2 pixels block of a 32x32 RGBA16 image to 0 (transparent black) - * according to the `clearPixelTable` - */ -void BossGoma_ClearPixels32x32Rgba16(s16* rgba16image, u8* clearPixelTable, s16 i) { - s16* targetPixel; - - if (clearPixelTable[i]) { - // address of the top left pixel in a 2x2 pixels block located at - // (i & 0xF, i >> 4) in a 16x16 grid of 2x2 pixels - targetPixel = rgba16image + ((i & 0xF) * 2 + (i & 0xF0) * 4); - // set the 2x2 block of pixels to 0 - targetPixel[0] = 0; - targetPixel[1] = 0; - targetPixel[32 + 0] = 0; - targetPixel[32 + 1] = 0; - } -} - /** * Clear pixels from Gohma's textures */ void BossGoma_ClearPixels(u8* clearPixelTable, s16 i) { - BossGoma_ClearPixels16x16Rgba16(GetResourceDataByName(SEGMENTED_TO_VIRTUAL(gGohmaBodyTex), false), clearPixelTable, i); - BossGoma_ClearPixels16x16Rgba16(GetResourceDataByName(SEGMENTED_TO_VIRTUAL(gGohmaShellUndersideTex), false), clearPixelTable, i); - BossGoma_ClearPixels16x16Rgba16(GetResourceDataByName(SEGMENTED_TO_VIRTUAL(gGohmaDarkShellTex), false), clearPixelTable, i); - BossGoma_ClearPixels16x16Rgba16(GetResourceDataByName(SEGMENTED_TO_VIRTUAL(gGohmaEyeTex), false), clearPixelTable, i); + if (clearPixelTable[i]) { + sClearPixelTex16[i] = 1; - BossGoma_ClearPixels32x32Rgba16(GetResourceDataByName(SEGMENTED_TO_VIRTUAL(gGohmaShellTex), false), clearPixelTable, i); - BossGoma_ClearPixels32x32Rgba16(GetResourceDataByName(SEGMENTED_TO_VIRTUAL(gGohmaIrisTex), false), clearPixelTable, i); + u8* targetPixel = sClearPixelTex32 + ((i & 0xF) * 2 + (i & 0xF0) * 4); + // set the 2x2 block of pixels to 0 + targetPixel[0] = 1; + targetPixel[1] = 1; + targetPixel[32 + 0] = 1; + targetPixel[32 + 1] = 1; + } } static InitChainEntry sInitChain[] = { @@ -365,6 +342,21 @@ void BossGoma_Init(Actor* thisx, PlayState* play) { 0, WARP_DUNGEON_CHILD); Actor_Spawn(&play->actorCtx, play, ACTOR_ITEM_B_HEART, 141.0f, -640.0f, -84.0f, 0, 0, 0, 0, true); } + + for (int i = 0; i < ARRAY_COUNT(sClearPixelTex16); i++) { + sClearPixelTex16[i] = 0; + } + + for (int i = 0; i < ARRAY_COUNT(sClearPixelTex32); i++) { + sClearPixelTex32[i] = 0; + } + + Gfx_RegisterBlendedTexture(gGohmaBodyTex, sClearPixelTex16, NULL); + Gfx_RegisterBlendedTexture(gGohmaShellUndersideTex, sClearPixelTex16, NULL); + Gfx_RegisterBlendedTexture(gGohmaDarkShellTex, sClearPixelTex16, NULL); + Gfx_RegisterBlendedTexture(gGohmaEyeTex, sClearPixelTex16, NULL); + Gfx_RegisterBlendedTexture(gGohmaShellTex, sClearPixelTex32, NULL); + Gfx_RegisterBlendedTexture(gGohmaIrisTex, sClearPixelTex32, NULL); } void BossGoma_PlayEffectsAndSfx(BossGoma* this, PlayState* play, s16 arg2, s16 amountMinus1) { @@ -928,7 +920,7 @@ void BossGoma_Encounter(BossGoma* this, PlayState* play) { if (!(gSaveContext.eventChkInf[7] & 1)) { TitleCard_InitBossName(play, &play->actorCtx.titleCtx, - SEGMENTED_TO_VIRTUAL(gGohmaTitleCardTex), 160, 180, 128, 40, true); + SEGMENTED_TO_VIRTUAL(gGohmaTitleCardENGTex), 160, 180, 128, 40, true); } Audio_QueueSeqCmd(SEQ_PLAYER_BGM_MAIN << 24 | NA_BGM_BOSS); @@ -1831,7 +1823,7 @@ void BossGoma_UpdateHit(BossGoma* this, PlayState* play) { BossGoma_SetupFallStruckDown(this); Audio_PlayActorSound2(&this->actor, NA_SE_EN_GOMA_DAM2); } else if (this->actionFunc == BossGoma_FloorStunned && - (damage = CollisionCheck_GetSwordDamage(acHitInfo->toucher.dmgFlags)) != 0) { + (damage = CollisionCheck_GetSwordDamage(acHitInfo->toucher.dmgFlags, play)) != 0) { this->actor.colChkInfo.health -= damage; if ((s8)this->actor.colChkInfo.health > 0) { @@ -2137,12 +2129,8 @@ void BossGoma_Draw(Actor* thisx, PlayState* play) { // Invalidate Texture Cache since Goma modifies her own texture if (this->visualState == VISUALSTATE_DEFEATED) { - gSPInvalidateTexCache(POLY_OPA_DISP++, gGohmaBodyTex); - gSPInvalidateTexCache(POLY_OPA_DISP++, gGohmaShellUndersideTex); - gSPInvalidateTexCache(POLY_OPA_DISP++, gGohmaDarkShellTex); - gSPInvalidateTexCache(POLY_OPA_DISP++, gGohmaEyeTex); - gSPInvalidateTexCache(POLY_OPA_DISP++, gGohmaShellTex); - gSPInvalidateTexCache(POLY_OPA_DISP++, gGohmaIrisTex); + gSPInvalidateTexCache(POLY_OPA_DISP++, sClearPixelTex16); + gSPInvalidateTexCache(POLY_OPA_DISP++, sClearPixelTex32); } if (this->noBackfaceCulling) { diff --git a/soh/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/soh/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c index 3df8252fb..bcd457172 100644 --- a/soh/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/soh/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -5,6 +5,7 @@ */ #include "z_boss_mo.h" +#include "textures/boss_title_cards/object_mo.h" #include "objects/object_mo/object_mo.h" #include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h" #include "objects/gameplay_keep/gameplay_keep.h" @@ -1437,7 +1438,7 @@ void BossMo_IntroCs(BossMo* this, PlayState* play) { } if (this->timers[2] == 130) { TitleCard_InitBossName(play, &play->actorCtx.titleCtx, - SEGMENTED_TO_VIRTUAL(gMorphaTitleCardTex), 160, 180, 128, 40, true); + SEGMENTED_TO_VIRTUAL(gMorphaTitleCardENGTex), 160, 180, 128, 40, true); gSaveContext.eventChkInf[7] |= 0x10; } break; @@ -1767,7 +1768,7 @@ void BossMo_CoreCollisionCheck(BossMo* this, PlayState* play) { // "hit 2 !!" osSyncPrintf("Core_Damage_check 当り 2 !!\n"); if ((this->work[MO_TENT_ACTION_STATE] != MO_CORE_UNDERWATER) && (this->work[MO_TENT_INVINC_TIMER] == 0)) { - u8 damage = CollisionCheck_GetSwordDamage(hurtbox->toucher.dmgFlags); + u8 damage = CollisionCheck_GetSwordDamage(hurtbox->toucher.dmgFlags, play); if ((damage != 0) && (this->work[MO_TENT_ACTION_STATE] < MO_CORE_ATTACK)) { // "sword hit !!" diff --git a/soh/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c b/soh/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c index 36781cb81..4f1d8244f 100644 --- a/soh/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c +++ b/soh/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c @@ -5,6 +5,7 @@ */ #include "z_boss_sst.h" +#include "textures/boss_title_cards/object_sst.h" #include "objects/object_sst/object_sst.h" #include "objects/gameplay_keep/gameplay_keep.h" #include "overlays/actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.h" @@ -608,7 +609,7 @@ void BossSst_HeadIntro(BossSst* this, PlayState* play) { } else if (revealStateTimer == 85) { if (!(gSaveContext.eventChkInf[7] & 0x80)) { TitleCard_InitBossName(play, &play->actorCtx.titleCtx, - SEGMENTED_TO_VIRTUAL(gBongoTitleCardTex), 160, 180, 128, 40, true); + SEGMENTED_TO_VIRTUAL(gBongoTitleCardENGTex), 160, 180, 128, 40, true); } Audio_QueueSeqCmd(SEQ_PLAYER_BGM_MAIN << 24 | NA_BGM_BOSS); Animation_MorphToPlayOnce(&this->skelAnime, &gBongoHeadEyeCloseAnim, -5.0f); diff --git a/soh/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/soh/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c index 8797a86f2..d513fa6bb 100644 --- a/soh/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c +++ b/soh/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c @@ -1,5 +1,6 @@ #include "z_boss_tw.h" #include "objects/gameplay_keep/gameplay_keep.h" +#include "textures/boss_title_cards/object_tw.h" #include "objects/object_tw/object_tw.h" #include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h" #include "soh/frame_interpolation.h" @@ -2181,7 +2182,7 @@ void BossTw_TwinrovaIntroCS(BossTw* this, PlayState* play) { play->envCtx.unk_BE = 1; play->envCtx.unk_BD = 1; play->envCtx.unk_D8 = 0.0f; - TitleCard_InitBossName(play, &play->actorCtx.titleCtx, SEGMENTED_TO_VIRTUAL(gTwinrovaTitleCardTex), 160, 180, 128, 40, true); + TitleCard_InitBossName(play, &play->actorCtx.titleCtx, SEGMENTED_TO_VIRTUAL(gTwinrovaTitleCardENGTex), 160, 180, 128, 40, true); gSaveContext.eventChkInf[7] |= 0x20; Audio_QueueSeqCmd(SEQ_PLAYER_BGM_MAIN << 24 | NA_BGM_BOSS); } @@ -3080,7 +3081,7 @@ void BossTw_TwinrovaUpdate(Actor* thisx, PlayState* play2) { this->collider.base.acFlags &= ~AC_HIT; swordDamage = false; - damage = CollisionCheck_GetSwordDamage(info->toucher.dmgFlags); + damage = CollisionCheck_GetSwordDamage(info->toucher.dmgFlags, play); if (damage == 0) { damage = 2; diff --git a/soh/src/overlays/actors/ovl_Boss_Va/z_boss_va.c b/soh/src/overlays/actors/ovl_Boss_Va/z_boss_va.c index 6e79660e7..808f9ee12 100644 --- a/soh/src/overlays/actors/ovl_Boss_Va/z_boss_va.c +++ b/soh/src/overlays/actors/ovl_Boss_Va/z_boss_va.c @@ -8,6 +8,7 @@ #include +#include "textures/boss_title_cards/object_bv.h" #include "objects/object_bv/object_bv.h" #include "overlays/actors/ovl_En_Boom/z_en_boom.h" #include "objects/gameplay_keep/gameplay_keep.h" @@ -985,7 +986,7 @@ void BossVa_BodyIntro(BossVa* this, PlayState* play) { if (!(gSaveContext.eventChkInf[7] & 0x40)) { TitleCard_InitBossName(play, &play->actorCtx.titleCtx, - SEGMENTED_TO_VIRTUAL(gBarinadeTitleCardTex), 160, 180, 128, 40, true); + SEGMENTED_TO_VIRTUAL(gBarinadeTitleCardENGTex), 160, 180, 128, 40, true); } if (Rand_ZeroOne() < 0.1f) { diff --git a/soh/src/overlays/actors/ovl_En_Box/z_en_box.c b/soh/src/overlays/actors/ovl_En_Box/z_en_box.c index 6b1261d25..4e864e582 100644 --- a/soh/src/overlays/actors/ovl_En_Box/z_en_box.c +++ b/soh/src/overlays/actors/ovl_En_Box/z_en_box.c @@ -756,16 +756,16 @@ void EnBox_UpdateSizeAndTexture(EnBox* this, PlayState* play) { void EnBox_CreateExtraChestTextures() { if (hasCreatedRandoChestTextures) return; Gfx gTreasureChestChestTextures[] = { - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, GetResourceDataByName("__OTR__objects/object_box/gSkullTreasureChestFrontTex", false)), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, GetResourceDataByName("__OTR__objects/object_box/gSkullTreasureChestSideAndTopTex", false)), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, GetResourceDataByName("__OTR__objects/object_box/gGoldTreasureChestFrontTex", false)), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, GetResourceDataByName("__OTR__objects/object_box/gGoldTreasureChestSideAndTopTex", false)), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, GetResourceDataByName("__OTR__objects/object_box/gKeyTreasureChestFrontTex", false)), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, GetResourceDataByName("__OTR__objects/object_box/gKeyTreasureChestSideAndTopTex", false)), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, GetResourceDataByName("__OTR__objects/object_box/gChristmasRedTreasureChestFrontTex", false)), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, GetResourceDataByName("__OTR__objects/object_box/gChristmasRedTreasureChestSideAndTopTex", false)), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, GetResourceDataByName("__OTR__objects/object_box/gChristmasGreenTreasureChestFrontTex", false)), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, GetResourceDataByName("__OTR__objects/object_box/gChristmasGreenTreasureChestSideAndTopTex", false)), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, "__OTR__objects/object_box/gSkullTreasureChestFrontTex"), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, "__OTR__objects/object_box/gSkullTreasureChestSideAndTopTex"), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, "__OTR__objects/object_box/gGoldTreasureChestFrontTex"), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, "__OTR__objects/object_box/gGoldTreasureChestSideAndTopTex"), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, "__OTR__objects/object_box/gKeyTreasureChestFrontTex"), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, "__OTR__objects/object_box/gKeyTreasureChestSideAndTopTex"), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, "__OTR__objects/object_box/gChristmasRedTreasureChestFrontTex"), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, "__OTR__objects/object_box/gChristmasRedTreasureChestSideAndTopTex"), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, "__OTR__objects/object_box/gChristmasGreenTreasureChestFrontTex"), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, "__OTR__objects/object_box/gChristmasGreenTreasureChestSideAndTopTex"), }; Gfx* frontCmd = ResourceMgr_LoadGfxByName(gTreasureChestChestFrontDL); @@ -839,7 +839,7 @@ void EnBox_CreateExtraChestTextures() { gChristmasGreenTreasureChestChestSideAndLidDL[29] = gTreasureChestChestTextures[9]; gChristmasGreenTreasureChestChestSideAndLidDL[45] = gTreasureChestChestTextures[8]; - ResourceMgr_ListFiles("assets/objects/object_box/gChristmas*", &hasChristmasChestTexturesAvailable); + ResourceMgr_ListFiles("objects/object_box/gChristmas*", &hasChristmasChestTexturesAvailable); hasCreatedRandoChestTextures = 1; } diff --git a/soh/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c b/soh/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c index 457d689f1..066ce12c0 100644 --- a/soh/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c +++ b/soh/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c @@ -96,7 +96,7 @@ static u16 sVerticesMap[GANON_MANT_NUM_STRANDS * GANON_MANT_NUM_JOINTS] = { #define MANT_TEX_WIDTH 32 #define MANT_TEX_HEIGHT 64 -//static u64 sForceAlignment = 0; +static u8 sMaskTex[MANT_TEX_WIDTH * MANT_TEX_HEIGHT] = { {0} }; #include "overlays/ovl_En_Ganon_Mant/ovl_En_Ganon_Mant.h" @@ -104,6 +104,12 @@ void EnGanonMant_Init(Actor* thisx, PlayState* play) { EnGanonMant* this = (EnGanonMant*)thisx; this->actor.flags &= ~ACTOR_FLAG_0; + + for (int i = 0; i < ARRAY_COUNT(sMaskTex); i++) { + sMaskTex[i] = 0; + } + + Gfx_RegisterBlendedTexture(gMantTex, sMaskTex, NULL); } void EnGanonMant_Destroy(Actor* thisx, PlayState* play) { @@ -127,8 +133,6 @@ void EnGanonMant_Tear(EnGanonMant* this) { s16 count = shape->count; s16* tearAreaSizes = shape->tearAreaSizes; - u8* gMantTexProper = GetResourceDataByName(gMantTex, false); - for (i = 0; i < count; i++) { if ((0 <= tx && tx < MANT_TEX_WIDTH) && (0 <= ty && ty < MANT_TEX_HEIGHT)) { for (areaX = 0; areaX <= tearAreaSizes[i]; areaX++) { @@ -136,7 +140,7 @@ void EnGanonMant_Tear(EnGanonMant* this) { for (areaY = 0; areaY <= tearAreaSizes[i]; areaY++) { texIdx = (s16)((s16)tx + ((s16)ty * MANT_TEX_WIDTH)) + ((s16)areaX + ((s16)areaY * MANT_TEX_WIDTH)); if (texIdx < MANT_TEX_WIDTH * MANT_TEX_HEIGHT) { - ((u16*)gMantTexProper)[texIdx] = 0; + sMaskTex[texIdx] = 1; } } } @@ -365,8 +369,8 @@ void EnGanonMant_DrawCloak(PlayState* play, EnGanonMant* this) { OPEN_DISPS(play->state.gfxCtx); - // Invalidate cape texture as it may have been torn - gSPInvalidateTexCache(POLY_OPA_DISP++, gMantTex); + // Invalidate cape texture mask as it may have been torn + gSPInvalidateTexCache(POLY_OPA_DISP++, sMaskTex); Matrix_Translate(0.0f, 0.0f, 0.0f, MTXMODE_NEW); @@ -379,9 +383,9 @@ void EnGanonMant_DrawCloak(PlayState* play, EnGanonMant* this) { // set vertices, vertices are double buffered to prevent // modification of vertices as they are being drawn if (this->frameTimer % 2 != 0) { - gSPSegment(POLY_OPA_DISP++, 0x0C, gMant1Vtx); + gSPSegmentLoadRes(POLY_OPA_DISP++, 0x0C, gMant1Vtx); } else { - gSPSegment(POLY_OPA_DISP++, 0x0C, gMant2Vtx); + gSPSegmentLoadRes(POLY_OPA_DISP++, 0x0C, gMant2Vtx); } // draw cloak diff --git a/soh/src/overlays/actors/ovl_En_Goma/z_en_goma.c b/soh/src/overlays/actors/ovl_En_Goma/z_en_goma.c index 3ad2e9eee..48de7b549 100644 --- a/soh/src/overlays/actors/ovl_En_Goma/z_en_goma.c +++ b/soh/src/overlays/actors/ovl_En_Goma/z_en_goma.c @@ -644,7 +644,7 @@ void EnGoma_UpdateHit(EnGoma* this, PlayState* play) { this->hurtTimer = 8; } } else { - swordDamage = CollisionCheck_GetSwordDamage(dmgFlags); + swordDamage = CollisionCheck_GetSwordDamage(dmgFlags, play); if (swordDamage) { EffectSsSibuki_SpawnBurst(play, &this->actor.focus.pos); diff --git a/soh/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c b/soh/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c index b3ca9f13a..60c51c036 100644 --- a/soh/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c +++ b/soh/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c @@ -418,15 +418,15 @@ void EnJsjutan_Draw(Actor* thisx, PlayState* play2) { G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); // Draws the carpet's shadow texture. - gSPSegment(POLY_OPA_DISP++, 0x0C, sShadowTex); + gSPSegmentLoadRes(POLY_OPA_DISP++, 0x0C, sShadowTex); gSPDisplayList(POLY_OPA_DISP++, sShadowMaterialDL); gDPPipeSync(POLY_OPA_DISP++); // Draws the carpet's shadow vertices. Swaps them between frames to get a smoother result. if (play->gameplayFrames % 2 != 0) { - gSPSegment(POLY_OPA_DISP++, 0x0C, gShadowOddVtx); + gSPSegmentLoadRes(POLY_OPA_DISP++, 0x0C, gShadowOddVtx); } else { - gSPSegment(POLY_OPA_DISP++, 0x0C, sShadowEvenVtx); + gSPSegmentLoadRes(POLY_OPA_DISP++, 0x0C, sShadowEvenVtx); } gSPDisplayList(POLY_OPA_DISP++, sModelDL); @@ -443,9 +443,9 @@ void EnJsjutan_Draw(Actor* thisx, PlayState* play2) { // Draws the carpet vertices. if (play->gameplayFrames % 2 != 0) { - gSPSegment(POLY_OPA_DISP++, 0x0C, sCarpetOddVtx); + gSPSegmentLoadRes(POLY_OPA_DISP++, 0x0C, sCarpetOddVtx); } else { - gSPSegment(POLY_OPA_DISP++, 0x0C, sCarpetEvenVtx); + gSPSegmentLoadRes(POLY_OPA_DISP++, 0x0C, sCarpetEvenVtx); } gSPDisplayList(POLY_OPA_DISP++, sModelDL); diff --git a/soh/src/overlays/actors/ovl_En_Mag/z_en_mag.c b/soh/src/overlays/actors/ovl_En_Mag/z_en_mag.c index 052c77f5f..0dd77b716 100644 --- a/soh/src/overlays/actors/ovl_En_Mag/z_en_mag.c +++ b/soh/src/overlays/actors/ovl_En_Mag/z_en_mag.c @@ -572,52 +572,22 @@ void EnMag_DrawImageRGBA32(Gfx** gfxp, s16 centerX, s16 centerY, const char* sou s32 pad; s32 i; - source = GetResourceDataByName(source, false); - Gfx_SetupDL_56Ptr(&gfx); - - curTexture = source; + rectLeft = centerX - (width / 2); rectTop = centerY - (height / 2); - textureHeight = 4096 / (width << 2); - remainingSize = (width * height) << 2; - textureSize = (width * textureHeight) << 2; - textureCount = remainingSize / textureSize; - if ((remainingSize % textureSize) != 0) { - textureCount += 1; - } - - gDPSetTileCustom(gfx++, G_IM_FMT_RGBA, G_IM_SIZ_32b, width, textureHeight, 0, G_TX_NOMIRROR | G_TX_CLAMP, + + gDPSetTileCustom(gfx++, G_IM_FMT_RGBA, G_IM_SIZ_32b, width, height, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - - remainingSize -= textureSize; - - for (i = 0; i < textureCount; i++) { - gDPSetTextureImage(gfx++, G_IM_FMT_RGBA, G_IM_SIZ_32b, width, curTexture); - - gDPLoadSync(gfx++); - gDPLoadTile(gfx++, G_TX_LOADTILE, 0, 0, (width - 1) << 2, (textureHeight - 1) << 2); - - gSPTextureRectangle(gfx++, rectLeft << 2, rectTop << 2, (rectLeft + (s32)width) << 2, - (rectTop + textureHeight) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); - - curTexture += textureSize; - rectTop += textureHeight; - - if ((remainingSize - textureSize) < 0) { - if (remainingSize > 0) { - textureHeight = remainingSize / (s32)(width << 2); - remainingSize -= textureSize; - - gDPSetTileCustom(gfx++, G_IM_FMT_RGBA, G_IM_SIZ_32b, width, textureHeight, 0, - G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, - G_TX_NOLOD, G_TX_NOLOD); - } - } else { - remainingSize -= textureSize; - } - } - + + gDPSetTextureImage(gfx++, G_IM_FMT_RGBA, G_IM_SIZ_32b, width, source); + + gDPLoadSync(gfx++); + gDPLoadTile(gfx++, G_TX_LOADTILE, 0, 0, (width - 1) << 2, (height - 1) << 2); + + gSPTextureRectangle(gfx++, rectLeft << 2, rectTop << 2, (rectLeft + (s32)width) << 2, + (rectTop + height) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + *gfxp = gfx; } diff --git a/soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c b/soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c new file mode 100644 index 000000000..c284af550 --- /dev/null +++ b/soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c @@ -0,0 +1,878 @@ +/* + * File: z_en_partner.c + * Overlay: ovl_En_Partner + * Description: Navi Coop Partner + */ + +#include "z_en_partner.h" +#include "objects/gameplay_keep/gameplay_keep.h" +#include +#include "overlays/actors/ovl_En_Si/z_en_si.h" +#include +#include +#include + +#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_5 | ACTOR_FLAG_10 | ACTOR_FLAG_26) + +void EnPartner_Init(Actor* thisx, PlayState* play); +void EnPartner_Destroy(Actor* thisx, PlayState* play); +void EnPartner_Update(Actor* thisx, PlayState* play); +void EnPartner_Draw(Actor* thisx, PlayState* play); +void EnPartner_SpawnSparkles(EnPartner* this, PlayState* play, s32 sparkleLife); + +const ActorInit En_Partner_InitVars = { + ACTOR_EN_PARTNER, + ACTORCAT_ITEMACTION, + FLAGS, + OBJECT_GAMEPLAY_KEEP, + sizeof(EnPartner), + (ActorFunc)EnPartner_Init, + (ActorFunc)EnPartner_Destroy, + (ActorFunc)EnPartner_Update, + (ActorFunc)EnPartner_Draw, + NULL, +}; + +static InitChainEntry sInitChain[] = { + ICHAIN_VEC3F_DIV1000(scale, 8, ICHAIN_STOP), +}; + +static Color_RGBAf sInnerColors[] = { + { 255.0f, 255.0f, 255.0f, 255.0f }, +}; + +static Color_RGBAf sOuterColors[] = { + { 0.0f, 255.0f, 0.0f, 255.0f }, +}; + +static ColliderCylinderInit sCylinderInit = { + { + COLTYPE_NONE, + AT_ON | AT_TYPE_PLAYER, + AC_ON | AC_TYPE_PLAYER, + OC1_ON | OC1_TYPE_ALL, + OC2_TYPE_2, + COLSHAPE_CYLINDER, + }, + { + ELEMTYPE_UNK0, + { 0x00020002, 0x00, 0x01 }, + { 0x4FC00748, 0x00, 0x00 }, + TOUCH_ON | TOUCH_SFX_NORMAL, + BUMP_ON, + OCELEM_ON, + }, + { 12, 27, 0, { 0, 0, 0 } }, +}; + +static CollisionCheckInfoInit sCCInfoInit = { 0, 12, 60, MASS_HEAVY }; + +void EnPartner_Init(Actor* thisx, PlayState* play) { + EnPartner* this = (EnPartner*)thisx; + s32 pad; + Player* player = GET_PLAYER(play); + s32 i; + + this->usedItem = 0xFF; + this->canMove = 1; + this->shouldDraw = 1; + this->hookshotTarget = NULL; + GET_PLAYER(play)->ivanFloating = 0; + + this->innerColor.r = 255.0f; + this->innerColor.g = 255.0f; + this->innerColor.b = 255.0f; + this->innerColor.a = 255.0f; + + this->outerColor.r = 0.0f; + this->outerColor.g = 255.0f; + this->outerColor.b = 0.0f; + this->outerColor.a = 255.0f; + + this->usedItemButton = 0xFF; + + Collider_InitCylinder(play, &this->collider); + Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); + Collider_UpdateCylinder(&this->actor, &this->collider); + CollisionCheck_SetInfo(&this->actor.colChkInfo, NULL, &sCCInfoInit); + this->actor.colChkInfo.mass = MASS_HEAVY; + this->collider.base.ocFlags1 |= OC1_TYPE_PLAYER; + this->collider.info.toucher.damage = 1; + GET_PLAYER(play)->ivanDamageMultiplier = 1; + + Actor_ProcessInitChain(thisx, sInitChain); + SkelAnime_Init(play, &this->skelAnime, &gFairySkel, &gFairyAnim, this->jointTable, this->morphTable, 15); + ActorShape_Init(&thisx->shape, 1000.0f, ActorShadow_DrawCircle, 15.0f); + thisx->shape.shadowAlpha = 0xFF; + + Lights_PointGlowSetInfo(&this->lightInfoGlow, thisx->world.pos.x, thisx->world.pos.y, thisx->world.pos.z, 200, 255, + 200, 0); + this->lightNodeGlow = LightContext_InsertLight(play, &play->lightCtx, &this->lightInfoGlow); + + Lights_PointNoGlowSetInfo(&this->lightInfoNoGlow, thisx->world.pos.x, thisx->world.pos.y, thisx->world.pos.z, 200, + 255, 200, 0); + this->lightNodeNoGlow = LightContext_InsertLight(play, &play->lightCtx, &this->lightInfoNoGlow); + + thisx->room = -1; +} + +void EnPartner_Destroy(Actor* thisx, PlayState* play) { + s32 pad; + EnPartner* this = (EnPartner*)thisx; + + LightContext_RemoveLight(play, &play->lightCtx, this->lightNodeGlow); + LightContext_RemoveLight(play, &play->lightCtx, this->lightNodeNoGlow); + + Collider_DestroyCylinder(play, &this->collider); +} + +void EnPartner_UpdateLights(EnPartner* this, PlayState* play) { + s16 glowLightRadius = 100; + s16 lightRadius = 200; + + if (this->shouldDraw == 0) { + glowLightRadius = 0; + lightRadius = 0; + } + + Player* player; + + player = GET_PLAYER(play); + Lights_PointNoGlowSetInfo(&this->lightInfoNoGlow, player->actor.world.pos.x, (s16)(player->actor.world.pos.y) + 69, + player->actor.world.pos.z, 200, 255, 200, lightRadius); + + Lights_PointGlowSetInfo(&this->lightInfoGlow, this->actor.world.pos.x, this->actor.world.pos.y + 9, + this->actor.world.pos.z, 200, 255, 200, glowLightRadius); + + Actor_SetScale(&this->actor, this->actor.scale.x); +} + +void EnPartner_SpawnSparkles(EnPartner* this, PlayState* play, s32 sparkleLife) { + static Vec3f sparkleVelocity = { 0.0f, -0.05f, 0.0f }; + static Vec3f sparkleAccel = { 0.0f, -0.025f, 0.0f }; + s32 pad; + Vec3f sparklePos; + Color_RGBA8 primColor; + Color_RGBA8 envColor; + + sparklePos.x = Rand_CenteredFloat(6.0f) + this->actor.world.pos.x; + sparklePos.y = (Rand_ZeroOne() * 6.0f) + this->actor.world.pos.y + 5; + sparklePos.z = Rand_CenteredFloat(6.0f) + this->actor.world.pos.z; + + primColor.r = this->innerColor.r; + primColor.g = this->innerColor.g; + primColor.b = this->innerColor.b; + + envColor.r = this->outerColor.r; + envColor.g = this->outerColor.g; + envColor.b = this->outerColor.b; + + EffectSsKiraKira_SpawnDispersed(play, &sparklePos, &sparkleVelocity, &sparkleAccel, &primColor, &envColor, + 1500, sparkleLife); +} + +Vec3f Vec3fNormalize(Vec3f vec) { + f32 norm = sqrt((vec.x * vec.x) + (vec.y * vec.y) + (vec.z * vec.z)); + + if (norm != 0.0f) { + vec.x /= norm; + vec.y /= norm; + vec.z /= norm; + } else { + vec.x = vec.y = vec.z = 0.0f; + } + + return vec; +} + +void CenterIvanOnLink(Actor* thisx, PlayState* play) { + EnPartner* this = (EnPartner*)thisx; + this->actor.world.pos = GET_PLAYER(play)->actor.world.pos; + this->actor.world.pos.y += Player_GetHeight(GET_PLAYER(play)) + 5.0f; +} + +static u8 magicArrowCosts[] = { 0, 4, 4, 8 }; + +void UseBow(Actor* thisx, PlayState* play, u8 started, u8 arrowType) { + EnPartner* this = (EnPartner*)thisx; + + if (started == 1) { + func_808328EC(this, NA_SE_PL_CHANGE_ARMS); + this->canMove = 0; + } else if (started == 0) { + if (this->itemTimer <= 0) { + if (AMMO(ITEM_BOW) > 0) { + if (arrowType >= 1 && !func_80087708(play, magicArrowCosts[arrowType], 0)) { + func_80078884(NA_SE_SY_ERROR); + this->canMove = 1; + return; + } + + this->itemTimer = 10; + + Actor* newarrow = Actor_SpawnAsChild( + &play->actorCtx, &this->actor, play, ACTOR_EN_ARROW, this->actor.world.pos.x, + this->actor.world.pos.y + 7, this->actor.world.pos.z, 0, this->actor.world.rot.y, 0, ARROW_NORMAL); + + switch (arrowType) { + case 1: + newarrow->params = ARROW_FIRE; + break; + case 2: + newarrow->params = ARROW_ICE; + break; + case 3: + newarrow->params = ARROW_LIGHT; + break; + } + + GET_PLAYER(play)->unk_A73 = 4; + newarrow->parent = NULL; + Inventory_ChangeAmmo(ITEM_BOW, -1); + } + } + } +} + +void UseSlingshot(Actor* thisx, PlayState* play, u8 started) { + EnPartner* this = (EnPartner*)thisx; + + if (started == 1) { + func_808328EC(this, NA_SE_PL_CHANGE_ARMS); + this->canMove = 0; + } else if (started == 0) { + if (this->itemTimer <= 0) { + if (AMMO(ITEM_SLINGSHOT) > 0) { + this->itemTimer = 10; + Actor* newarrow = Actor_SpawnAsChild( + &play->actorCtx, &this->actor, play, ACTOR_EN_ARROW, this->actor.world.pos.x, + this->actor.world.pos.y + 7, this->actor.world.pos.z, 0, this->actor.world.rot.y, 0, ARROW_SEED); + GET_PLAYER(play)->unk_A73 = 4; + newarrow->parent = NULL; + Inventory_ChangeAmmo(ITEM_SLINGSHOT, -1); + } else { + func_80078884(NA_SE_SY_ERROR); + } + } + } +} + +void UseBombs(Actor* thisx, PlayState* play, u8 started) { + EnPartner* this = (EnPartner*)thisx; + + if (this->itemTimer <= 0) { + if (started == 1) { + if (AMMO(ITEM_BOMB) > 0 && play->actorCtx.actorLists[ACTORCAT_EXPLOSIVE].length < 3) { + this->itemTimer = 10; + Actor_Spawn(&play->actorCtx, play, ACTOR_EN_BOM, this->actor.world.pos.x, this->actor.world.pos.y + 7, + this->actor.world.pos.z, 0, 0, 0, 0, false); + Inventory_ChangeAmmo(ITEM_BOMB, -1); + } else { + func_80078884(NA_SE_SY_ERROR); + } + } + } +} + +static Vec3f D_80854A40 = { 0.0f, 40.0f, 45.0f }; + +void UseHammer(Actor* thisx, PlayState* play, u8 started) { + EnPartner* this = (EnPartner*)thisx; + + if (this->itemTimer <= 0) { + if (started == 1) { + this->itemTimer = 10; + static Vec3f zeroVec = { 0.0f, 0.0f, 0.0f }; + Vec3f shockwavePos = this->actor.world.pos; + + func_808429B4(play, 27767, 7, 20); + func_8002F7DC(&this->actor, NA_SE_IT_HAMMER_HIT); + + EffectSsBlast_SpawnWhiteShockwave(play, &shockwavePos, &zeroVec, &zeroVec); + + if (this->actor.xzDistToPlayer < 100.0f && this->actor.yDistToPlayer < 35.0f) { + func_8002F71C(play, &this->actor, 8.0f, this->actor.yawTowardsPlayer, 8.0f); + } + } + } +} + +void UseBombchus(Actor* thisx, PlayState* play, u8 started) { + EnPartner* this = (EnPartner*)thisx; + + if (this->itemTimer <= 0) { + if (started == 1) { + if (AMMO(ITEM_BOMBCHU) > 0) { + this->itemTimer = 10; + EnBom* bomb = Actor_Spawn(&play->actorCtx, play, ACTOR_EN_BOM, this->actor.world.pos.x, this->actor.world.pos.y + 7, + this->actor.world.pos.z, 0, 0, 0, 0, false); + bomb->timer = 0; + Inventory_ChangeAmmo(ITEM_BOMBCHU, -1); + } else { + func_80078884(NA_SE_SY_ERROR); + } + } + } +} + +static Vec3f D_808547A4 = { 0.0f, 0.5f, 0.0f }; +static Vec3f D_808547B0 = { 0.0f, 0.5f, 0.0f }; + +static Color_RGBA8 D_808547BC = { 255, 255, 100, 255 }; +static Color_RGBA8 D_808547C0 = { 255, 50, 0, 0 }; + +void UseDekuStick(Actor* thisx, PlayState* play, u8 started) { + EnPartner* this = (EnPartner*)thisx; + + if (this->itemTimer <= 0) { + if (started == 1) { + if (AMMO(ITEM_STICK) > 0) { + func_808328EC(this, NA_SE_EV_FLAME_IGNITION); + } else { + func_80078884(NA_SE_SY_ERROR); + } + } + + if (started == 2) { + if (AMMO(ITEM_STICK) > 0) { + this->stickWeaponInfo.tip = this->actor.world.pos; + this->stickWeaponInfo.tip.y += 7.0f; + + func_8002836C(play, &this->stickWeaponInfo.tip, &D_808547A4, &D_808547B0, &D_808547BC, &D_808547C0, + 200.0f, 0, 8); + + CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider.base); + + if (this->damageTimer <= 0) { + Inventory_ChangeAmmo(ITEM_STICK, -1); + this->damageTimer = 20; + } else { + this->damageTimer--; + } + } + } + } +} + +void UseNuts(Actor* thisx, PlayState* play, u8 started) { + EnPartner* this = (EnPartner*)thisx; + + if (this->itemTimer <= 0) { + if (started == 1) { + if (AMMO(ITEM_NUT) > 0) { + this->itemTimer = 10; + Actor_Spawn(&play->actorCtx, play, ACTOR_EN_ARROW, this->actor.world.pos.x, this->actor.world.pos.y + 7, + this->actor.world.pos.z, 0x1000, this->actor.world.rot.y, 0, ARROW_NUT, false); + Inventory_ChangeAmmo(ITEM_NUT, -1); + } else { + func_80078884(NA_SE_SY_ERROR); + } + } + } +} + +void UseHookshot(Actor* thisx, PlayState* play, u8 started) { + EnPartner* this = (EnPartner*)thisx; + + if (this->itemTimer <= 0) { + if (started == 1) { + func_808328EC(this, NA_SE_PL_CHANGE_ARMS); + this->canMove = 0; + this->hookshotTarget = + Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_OBJ_HSBLOCK, this->actor.world.pos.x, + this->actor.world.pos.y + 7.5f, this->actor.world.pos.z, this->actor.world.rot.x, + this->actor.world.rot.y, this->actor.world.rot.z, 2); + this->hookshotTarget->scale.x = 0.05f; + this->hookshotTarget->scale.y = 0.05f; + this->hookshotTarget->scale.z = 0.05f; + } else if (started == 0) { + Actor_Kill(this->hookshotTarget); + this->hookshotTarget = NULL; + func_808328EC(this, NA_SE_PL_CHANGE_ARMS); + this->canMove = 1; + } else if (started == 2) { + this->hookshotTarget->shape.rot.y = this->actor.world.rot.y; + } + } +} + +void UseOcarina(Actor* thisx, PlayState* play, u8 started) { + EnPartner* this = (EnPartner*)thisx; + + if (this->itemTimer <= 0) { + if (started == 1) { + Audio_PlaySoundTransposed(&this->actor.projectedPos, NA_SE_VO_NA_HELLO_2, -6); + } + } +} + +void UseBoomerang(Actor* thisx, PlayState* play, u8 started) { + EnPartner* this = (EnPartner*)thisx; + + if (this->itemTimer <= 0) { + if (started == 1) { + this->itemTimer = 20; + spawn_boomerang_ivan(&this->actor, play); + } + } +} + +void UseLens(Actor* thisx, PlayState* play, u8 started) { + EnPartner* this = (EnPartner*)thisx; + + if (this->itemTimer <= 0) { + if (started == 1) { + func_80078884(NA_SE_SY_GLASSMODE_ON); + this->shouldDraw = 0; + } + + if (started == 0) { + func_80078884(NA_SE_SY_GLASSMODE_OFF); + this->shouldDraw = 1; + } + } +} + +void UseBeans(Actor* thisx, PlayState* play, u8 started) { + EnPartner* this = (EnPartner*)thisx; + + if (this->itemTimer <= 0) { + if (started == 1) { + this->entry = ItemTable_Retrieve(GI_BEAN); + if (play->actorCtx.titleCtx.alpha <= 0) { + if (gSaveContext.rupees >= 100 && GiveItemEntryWithoutActor(play, this->entry)) { + Rupees_ChangeBy(-100); + } else { + func_80078884(NA_SE_SY_ERROR); + } + } + } + } +} + +void UseSpell(Actor* thisx, PlayState* play, u8 started, u8 spellType) { + EnPartner* this = (EnPartner*)thisx; + + if (gSaveContext.magic > 0) { + if (this->itemTimer <= 0 && this->usedSpell == 0) { + if (started == 1) { + this->usedSpell = spellType; + } + } + + if (started == 0 && this->usedSpell != 0) { + this->itemTimer = 10; + gSaveContext.magicState = 5; + + switch (this->usedSpell) { + case 1: + GET_PLAYER(play)->ivanDamageMultiplier = 1; + break; + case 3: + GET_PLAYER(play)->ivanFloating = 0; + break; + } + + this->usedSpell = 0; + } + + if (started == 2) { + if (this->usedSpell != 0) { + Vec3f spE4[3]; + Vec3f newBasePos[3]; + + switch (this->usedSpell) { + case 1: //Din's + GET_PLAYER(play)->ivanDamageMultiplier = 2; + break; + case 2: //Nayru's + GET_PLAYER(play)->invincibilityTimer = -10; + break; + case 3: //Farore's + GET_PLAYER(play)->hoverBootsTimer = 10; + GET_PLAYER(play)->ivanFloating = 1; + break; + } + + gSaveContext.magicState = 3; + this->magicTimer--; + if (this->magicTimer <= 0) { + gSaveContext.magic--; + this->magicTimer = 20; + if (gSaveContext.magic <= 0) { + gSaveContext.magic = 0; + + this->itemTimer = 10; + this->usedSpell = 0; + gSaveContext.magicState = 5; + } + } + } + } + } +} + +void UseItem(uint8_t usedItem, u8 started, Actor* thisx, PlayState* play) { + EnPartner* this = (EnPartner*)thisx; + + if (this->usedItem != 0xFF && this->itemTimer <= 0) { + switch (usedItem) { + case SLOT_STICK: + UseDekuStick(this, play, started); + break; + case SLOT_BOMB: + UseBombs(this, play, started); + break; + case SLOT_BOMBCHU: + UseBombchus(this, play, started); + break; + case SLOT_NUT: + UseNuts(this, play, started); + break; + case SLOT_BOW: + UseBow(this, play, started, 0); + break; + case SLOT_ARROW_FIRE: + UseBow(this, play, started, 1); + break; + case SLOT_ARROW_ICE: + UseBow(this, play, started, 2); + break; + case SLOT_ARROW_LIGHT: + UseBow(this, play, started, 3); + break; + case SLOT_SLINGSHOT: + UseSlingshot(this, play, started); + break; + case SLOT_OCARINA: + UseOcarina(this, play, started); + break; + case SLOT_HOOKSHOT: + UseHookshot(this, play, started); + break; + case SLOT_DINS_FIRE: + UseSpell(this, play, started, 1); + break; + case SLOT_NAYRUS_LOVE: + UseSpell(this, play, started, 2); + break; + case SLOT_FARORES_WIND: + UseSpell(this, play, started, 3); + break; + case SLOT_HAMMER: + UseHammer(this, play, started); + break; + case SLOT_BOOMERANG: + UseBoomerang(this, play, started); + break; + case SLOT_LENS: + UseLens(this, play, started); + break; + case SLOT_BEAN: + UseBeans(this, play, started); + break; + } + } + + if (started == 0) { + this->usedItem = 0xFF; + } +} + +void EnPartner_Update(Actor* thisx, PlayState* play) { + s32 pad; + EnPartner* this = (EnPartner*)thisx; + + Input sControlInput = play->state.input[this->actor.params]; + + f32 relX = sControlInput.cur.stick_x / 10.0f; + f32 relY = sControlInput.cur.stick_y / 10.0f; + + Vec3f camForward = { GET_ACTIVE_CAM(play)->at.x - GET_ACTIVE_CAM(play)->eye.x, 0.0f, + GET_ACTIVE_CAM(play)->at.z - GET_ACTIVE_CAM(play)->eye.z }; + camForward = Vec3fNormalize(camForward); + + Vec3f camRight = { -camForward.z, 0.0f, camForward.x }; + + this->actor.velocity.x = 0; + this->actor.velocity.y = 0; + this->actor.velocity.z = 0; + + this->actor.velocity.x += camRight.x * relX; + this->actor.velocity.z += camRight.z * relX; + this->actor.velocity.x += camForward.x * relY; + this->actor.velocity.z += camForward.z * relY; + + if (this->actor.velocity.x != 0 || this->actor.velocity.z != 0) { + int16_t finalDir = Math_Atan2S(-this->actor.velocity.x, this->actor.velocity.z) - 0x4000; + Math_SmoothStepToS(&this->actor.world.rot.y, finalDir, 2, 10000, 0); + Math_SmoothStepToS(&this->actor.shape.rot.y, finalDir, 2, 10000, 0); + } + + if (!this->canMove) { + relX = 0; + relY = 0; + } + + Math_SmoothStepToF(&this->actor.speedXZ, sqrtf(SQ(relX) + SQ(relY)), 1.0f, 1.3f, 0.0f); + + if (this->shouldDraw == 1) { + thisx->shape.shadowAlpha = 0xFF; + EnPartner_SpawnSparkles(this, play, 12); + } else { + thisx->shape.shadowAlpha = 0; + } + + if (CHECK_BTN_ALL(sControlInput.cur.button, BTN_A) && this->canMove) { + Math_SmoothStepToF(&this->yVelocity, 6.0f, 1.0f, 1.5f, 0.0f); + } else if (CHECK_BTN_ALL(sControlInput.cur.button, BTN_B) && this->canMove) { + Math_SmoothStepToF(&this->yVelocity, -6.0f, 1.0f, 1.5f, 0.0f); + } else { + Math_SmoothStepToF(&this->yVelocity, 0.0f, 1.0f, 1.5f, 0.0f); + } + + this->actor.gravity = this->yVelocity; + + if (this->canMove == 1) { + Actor_MoveForward(&this->actor); + Actor_UpdateBgCheckInfo(play, &this->actor, 19.0f, 20.0f, 0.0f, 5); + } + + if (this->usedSpell != 0) { + func_8002F974(thisx, NA_SE_PL_MAGIC_SOUL_NORMAL - SFX_FLAG); + } + + if (!Player_InCsMode(play)) { + // Collect drops & rupees + Actor* itemActor = play->actorCtx.actorLists[ACTORCAT_MISC].head; + while (itemActor != NULL) { + if (itemActor->id == ACTOR_EN_ITEM00) { + if (itemActor->params == ITEM00_RUPEE_GREEN || itemActor->params == ITEM00_RUPEE_BLUE || + itemActor->params == ITEM00_RUPEE_RED || itemActor->params == ITEM00_RUPEE_PURPLE || + itemActor->params == ITEM00_RUPEE_ORANGE || itemActor->params == ITEM00_HEART || + itemActor->params == ITEM00_BOMBS_A || itemActor->params == ITEM00_BOMBS_B || + itemActor->params == ITEM00_ARROWS_SINGLE || itemActor->params == ITEM00_ARROWS_SMALL || + itemActor->params == ITEM00_ARROWS_MEDIUM || itemActor->params == ITEM00_ARROWS_LARGE || + itemActor->params == ITEM00_BOMBCHU || itemActor->params == ITEM00_MAGIC_SMALL || + itemActor->params == ITEM00_MAGIC_LARGE || itemActor->params == ITEM00_NUTS || + itemActor->params == ITEM00_STICK) { + f32 distanceToObject = Actor_WorldDistXYZToActor(&this->actor, itemActor); + if (distanceToObject <= 20.0f) { + itemActor->world.pos = GET_PLAYER(play)->actor.world.pos; + break; + } + } + } + itemActor = itemActor->next; + } + + itemActor = play->actorCtx.actorLists[ACTORCAT_ITEMACTION].head; + while (itemActor != NULL) { + if (itemActor->id == ACTOR_EN_SI) { + f32 distanceToObject = Actor_WorldDistXYZToActor(&this->actor, itemActor); + if (distanceToObject <= 20.0f) { + EnSi* ensi = (EnSi*)itemActor; + ensi->collider.base.ocFlags2 = OC2_HIT_PLAYER; + break; + } + } + itemActor = itemActor->next; + } + } + + if (this->itemTimer > 0) { + this->itemTimer--; + if (this->itemTimer <= 0) { + this->canMove = 1; + } + } + + if (!Player_InCsMode(play)) { + uint8_t pressed = 0; + uint8_t released = 0; + uint8_t current = 0; + + if (this->usedItem == 0xFF && this->itemTimer <= 0) { + if (CHECK_BTN_ALL(sControlInput.press.button, BTN_CLEFT)) { + this->usedItem = gSaveContext.equips.cButtonSlots[0]; + this->usedItemButton = 0; + pressed = 1; + } else if (CHECK_BTN_ALL(sControlInput.press.button, BTN_CDOWN)) { + this->usedItem = gSaveContext.equips.cButtonSlots[1]; + this->usedItemButton = 1; + pressed = 1; + } else if (CHECK_BTN_ALL(sControlInput.press.button, BTN_CRIGHT)) { + this->usedItem = gSaveContext.equips.cButtonSlots[2]; + this->usedItemButton = 2; + pressed = 1; + } + } + + if (this->usedItem != 0xFF) { + if (CHECK_BTN_ALL(sControlInput.cur.button, BTN_CLEFT) && this->usedItemButton == 0) { + current = 1; + } else if (CHECK_BTN_ALL(sControlInput.cur.button, BTN_CDOWN) && this->usedItemButton == 1) { + current = 1; + } else if (CHECK_BTN_ALL(sControlInput.cur.button, BTN_CRIGHT) && this->usedItemButton == 2) { + current = 1; + } + } + + if (this->usedItem != 0xFF) { + if (CHECK_BTN_ALL(sControlInput.rel.button, BTN_CLEFT) && this->usedItemButton == 0) { + released = 1; + } else if (CHECK_BTN_ALL(sControlInput.rel.button, BTN_CDOWN) && this->usedItemButton == 1) { + released = 1; + } else if (CHECK_BTN_ALL(sControlInput.rel.button, BTN_CRIGHT) && this->usedItemButton == 2) { + released = 1; + } + } + + if (pressed == 1) { + UseItem(this->usedItem, 1, this, play); + } else if (released == 1) { + UseItem(this->usedItem, 0, this, play); + this->usedItemButton = 0xFF; + } else if (current == 1) { + UseItem(this->usedItem, 2, this, play); + } + } else { + UseItem(this->usedItem, 0, this, play); + this->usedItem = 0xFF; + this->itemTimer = 10; + } + + if (CHECK_BTN_ALL(sControlInput.press.button, BTN_Z) && this->canMove) { + Audio_PlayActorSound2(&this->actor, NA_SE_EV_FAIRY_DASH); + } + + if (CHECK_BTN_ALL(sControlInput.cur.button, BTN_Z) && this->canMove) { + CenterIvanOnLink(this, play); + } else if (this->canMove == 1 && this->hookshotTarget == NULL) { + Collider_UpdateCylinder(&this->actor, &this->collider); + CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider.base); + CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base); + } + + SkelAnime_Update(&this->skelAnime); + + EnPartner_UpdateLights(this, play); +} + +s32 EnPartner_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx, + Gfx** gfx) { + static Vec3f zeroVec = { 0.0f, 0.0f, 0.0f }; + s32 pad; + f32 scale; + Vec3f mtxMult; + EnPartner* this = (EnPartner*)thisx; + + if (limbIndex == 8) { + scale = ((Math_SinS(4096) * 0.1f) + 1.0f) * 0.012f; + scale *= (this->actor.scale.x * 124.99999f); + Matrix_MultVec3f(&zeroVec, &mtxMult); + Matrix_Translate(mtxMult.x, mtxMult.y, mtxMult.z, MTXMODE_NEW); + Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); + } + + return false; +} + +void DrawOrb(Actor* thisx, PlayState* play, u8 color) { + EnPartner* this = (EnPartner*)thisx; + Vec3f pos; + Player* player = GET_PLAYER(play); + s32 pad; + f32 sp6C = play->state.frames & 0x1F; + + pos = this->actor.world.pos; + pos.y += 5.0f; + + pos.x -= (this->actor.scale.x * 300.0f * Math_SinS(Camera_GetCamDirYaw(GET_ACTIVE_CAM(play))) * + Math_CosS(Camera_GetCamDirPitch(GET_ACTIVE_CAM(play)))); + pos.y -= (this->actor.scale.x * 300.0f * Math_SinS(Camera_GetCamDirPitch(GET_ACTIVE_CAM(play)))); + pos.z -= (this->actor.scale.x * 300.0f * Math_CosS(Camera_GetCamDirYaw(GET_ACTIVE_CAM(play))) * + Math_CosS(Camera_GetCamDirPitch(GET_ACTIVE_CAM(play)))); + + OPEN_DISPS(play->state.gfxCtx); + + Gfx_SetupDL_25Xlu(play->state.gfxCtx); + + gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 255, 255); + + switch (color) { + case 1: + gDPSetEnvColor(POLY_XLU_DISP++, 255, 0, 0, 255); + break; + case 2: + gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 255, 255); + break; + case 3: + gDPSetEnvColor(POLY_XLU_DISP++, 0, 255, 0, 255); + break; + } + + Matrix_Translate(pos.x, pos.y, pos.z, MTXMODE_NEW); + Matrix_Scale(this->actor.scale.x * 3.0f, this->actor.scale.y * 3.0f, this->actor.scale.z * 3.0f, MTXMODE_APPLY); + Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY); + Matrix_Push(); + gSPMatrix(POLY_XLU_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + Matrix_RotateZ(sp6C * (M_PI / 32), MTXMODE_APPLY); + gSPDisplayList(POLY_XLU_DISP++, gEffFlash1DL); + Matrix_Pop(); + Matrix_RotateZ(-sp6C * (M_PI / 32), MTXMODE_APPLY); + gSPMatrix(POLY_XLU_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_XLU_DISP++, gEffFlash1DL); + + CLOSE_DISPS(play->state.gfxCtx); +} + + +void EnPartner_Draw(Actor* thisx, PlayState* play) { + s32 pad; + f32 alphaScale; + s32 envAlpha; + EnPartner* this = (EnPartner*)thisx; + s32 pad1; + Gfx* dListHead; + Player* player = GET_PLAYER(play); + + if (play->pauseCtx.state != 0 && this->usedItem != 0xFF) { + UseItem(this->usedItem, 0, this, play); + this->usedItem = 0xFF; + } + + if (this->shouldDraw == 0) { + return; + } + + dListHead = Graph_Alloc(play->state.gfxCtx, sizeof(Gfx) * 4); + + OPEN_DISPS(play->state.gfxCtx); + + Gfx_SetupDL_27Xlu(play->state.gfxCtx); + + envAlpha = (50) & 0x1FF; + envAlpha = (envAlpha > 255) ? 511 - envAlpha : envAlpha; + + alphaScale = 1.0f; + + gSPSegment(POLY_XLU_DISP++, 0x08, dListHead); + gDPPipeSync(dListHead++); + gDPSetPrimColor(dListHead++, 0, 0x01, (u8)this->innerColor.r, (u8)this->innerColor.g, (u8)this->innerColor.b, + (u8)(this->innerColor.a * alphaScale)); + + gDPSetRenderMode(dListHead++, G_RM_PASS, G_RM_ZB_CLD_SURF2); + + gSPEndDisplayList(dListHead++); + gDPSetEnvColor(POLY_XLU_DISP++, (u8)this->outerColor.r, (u8)this->outerColor.g, (u8)this->outerColor.b, + (u8)(envAlpha * alphaScale)); + POLY_XLU_DISP = SkelAnime_Draw(play, this->skelAnime.skeleton, this->skelAnime.jointTable, + EnPartner_OverrideLimbDraw, NULL, this, POLY_XLU_DISP); + + CLOSE_DISPS(play->state.gfxCtx); + + if (this->usedSpell > 0) { + DrawOrb(this, play, this->usedSpell); + } +} diff --git a/soh/src/overlays/actors/ovl_En_Partner/z_en_partner.h b/soh/src/overlays/actors/ovl_En_Partner/z_en_partner.h new file mode 100644 index 000000000..8e3e1cf20 --- /dev/null +++ b/soh/src/overlays/actors/ovl_En_Partner/z_en_partner.h @@ -0,0 +1,48 @@ +#ifndef Z_EN_PARTNER_H +#define Z_EN_PARTNER_H + +#include +#include "global.h" +#include + +struct EnPartner; + +typedef void (*EnPartnerActionFunc)(struct EnPartner*, PlayState*); + +typedef struct EnPartner { + Actor actor; + + SkelAnime skelAnime; + + Vec3s jointTable[15]; + Vec3s morphTable[15]; + + ColliderCylinder collider; + + Color_RGBAf innerColor; + Color_RGBAf outerColor; + LightInfo lightInfoGlow; + LightNode* lightNodeGlow; + LightInfo lightInfoNoGlow; + LightNode* lightNodeNoGlow; + + f32 yVelocity; + + u8 canMove; + u8 usedItem; + u8 usedItemButton; + u8 usedSpell; + u8 damageTimer; + s16 magicTimer; + + u8 shouldDraw; + s16 itemTimer; + + GetItemEntry entry; + WeaponInfo stickWeaponInfo; + + EnBoom* boomerangActor; + Actor* hookshotTarget; +} EnPartner; + +#endif \ No newline at end of file diff --git a/soh/src/overlays/actors/ovl_En_fHG/z_en_fhg.c b/soh/src/overlays/actors/ovl_En_fHG/z_en_fhg.c index ce7c8f342..1d6ac8f88 100644 --- a/soh/src/overlays/actors/ovl_En_fHG/z_en_fhg.c +++ b/soh/src/overlays/actors/ovl_En_fHG/z_en_fhg.c @@ -5,6 +5,7 @@ */ #include "z_en_fhg.h" +#include "textures/boss_title_cards/object_fhg.h" #include "objects/object_fhg/object_fhg.h" #include "overlays/actors/ovl_Door_Shutter/z_door_shutter.h" #include "overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.h" @@ -332,7 +333,7 @@ void EnfHG_Intro(EnfHG* this, PlayState* play) { Math_ApproachF(&this->cameraSpeedMod, 1.0f, 1.0f, 0.05f); if (this->timers[0] == 75) { TitleCard_InitBossName(play, &play->actorCtx.titleCtx, - SEGMENTED_TO_VIRTUAL(gPhantomGanonTitleCardTex), 160, 180, 128, 40, true); + SEGMENTED_TO_VIRTUAL(gPhantomGanonTitleCardENGTex), 160, 180, 128, 40, true); } if (this->timers[0] == 0) { this->cutsceneState = INTRO_RETREAT; diff --git a/soh/src/overlays/actors/ovl_player_actor/z_player.c b/soh/src/overlays/actors/ovl_player_actor/z_player.c index 8b94847dd..58147efd5 100644 --- a/soh/src/overlays/actors/ovl_player_actor/z_player.c +++ b/soh/src/overlays/actors/ovl_player_actor/z_player.c @@ -24,6 +24,7 @@ #include "soh/Enhancements/item-tables/ItemTableTypes.h" #include "soh/Enhancements/game-interactor/GameInteractor.h" #include "soh/Enhancements/randomizer/randomizer_entrance.h" +#include typedef enum { /* 0x00 */ KNOB_ANIM_ADULT_L, @@ -136,6 +137,7 @@ s32 func_80835800(Player* this, PlayState* play); s32 func_80835884(Player* this, PlayState* play); // Start aiming boomerang s32 func_808358F0(Player* this, PlayState* play); // Aim boomerang s32 func_808359FC(Player* this, PlayState* play); // Throw boomerang +s32 spawn_boomerang_ivan(EnPartner* this, PlayState* play); // Throw boomerang Ivan s32 func_80835B60(Player* this, PlayState* play); // Boomerang active s32 func_80835C08(Player* this, PlayState* play); void func_80835F44(PlayState* play, Player* this, s32 item); @@ -2799,6 +2801,27 @@ s32 func_808359FC(Player* this, PlayState* play) { return 1; } +s32 spawn_boomerang_ivan(EnPartner* this, PlayState* play) { + if (!CVarGetInteger("gIvanCoopModeEnabled", 0)) { + return 0; + } + + f32 posX = (Math_SinS(this->actor.shape.rot.y) * 1.0f) + this->actor.world.pos.x; + f32 posZ = (Math_CosS(this->actor.shape.rot.y) * 1.0f) + this->actor.world.pos.z; + s32 yaw = this->actor.shape.rot.y; + EnBoom* boomerang = + (EnBoom*)Actor_Spawn(&play->actorCtx, play, ACTOR_EN_BOOM, posX, this->actor.world.pos.y + 7.0f, posZ, + this->actor.focus.rot.x, yaw, 0, 0, true); + + this->boomerangActor = &boomerang->actor; + if (boomerang != NULL) { + boomerang->returnTimer = 20; + Audio_PlayActorSound2(&this->actor, NA_SE_IT_BOOMERANG_THROW); + } + + return 1; +} + s32 func_80835B60(Player* this, PlayState* play) { if (func_80834758(play, this)) { return 1; @@ -6998,7 +7021,10 @@ void func_8084029C(Player* this, f32 arg1) { arg1 = 7.25f; } - if ((this->currentBoots == PLAYER_BOOTS_HOVER) && !(this->actor.bgCheckFlags & 1) && (this->hoverBootsTimer != 0)) { + if ((this->currentBoots == PLAYER_BOOTS_HOVER || + (CVarGetInteger("gIvanCoopModeEnabled", 0) && this->ivanFloating)) && + !(this->actor.bgCheckFlags & 1) && + (this->hoverBootsTimer != 0 || (CVarGetInteger("gIvanCoopModeEnabled", 0) && this->ivanFloating))) { func_8002F8F0(&this->actor, NA_SE_PL_HOBBERBOOTS_LV - SFX_FLAG); } else if (func_8084021C(this->unk_868, arg1, 29.0f, 10.0f) || func_8084021C(this->unk_868, arg1, 29.0f, 24.0f)) { func_808327F8(this, this->linearVelocity); @@ -9591,6 +9617,8 @@ void Player_InitCommon(Player* this, PlayState* play, FlexSkeletonHeader* skelHe Collider_SetQuad(play, &this->meleeWeaponQuads[1], &this->actor, &D_80854650); Collider_InitQuad(play, &this->shieldQuad); Collider_SetQuad(play, &this->shieldQuad, &this->actor, &D_808546A0); + + this->ivanDamageMultiplier = 1; } static void (*D_80854738[])(PlayState* play, Player* this) = { @@ -9925,13 +9953,16 @@ void func_808473D4(PlayState* play, Player* this) { s32 func_80847A78(Player* this) { s32 cond; - if ((this->currentBoots == PLAYER_BOOTS_HOVER) && (this->hoverBootsTimer != 0)) { + if ((this->currentBoots == PLAYER_BOOTS_HOVER || + (CVarGetInteger("gIvanCoopModeEnabled", 0) && this->ivanFloating)) && + (this->hoverBootsTimer != 0)) { this->hoverBootsTimer--; } else { this->hoverBootsTimer = 0; } - cond = (this->currentBoots == PLAYER_BOOTS_HOVER) && + cond = (this->currentBoots == PLAYER_BOOTS_HOVER || + (CVarGetInteger("gIvanCoopModeEnabled", 0) && this->ivanFloating)) && ((this->actor.yDistToWater >= 0.0f) || (func_80838144(D_808535E4) >= 0) || func_8083816C(D_808535E4)); if (cond && (this->actor.bgCheckFlags & 1) && (this->hoverBootsTimer != 0)) { @@ -11123,7 +11154,9 @@ void Player_DrawGameplay(PlayState* play, Player* this, s32 lod, Gfx* cullDList, if (CVarGetInteger("gFixIceTrapWithBunnyHood", 1)) Matrix_Pop(); } - if ((this->currentBoots == PLAYER_BOOTS_HOVER) && !(this->actor.bgCheckFlags & 1) && + if ((this->currentBoots == PLAYER_BOOTS_HOVER || + (CVarGetInteger("gIvanCoopModeEnabled", 0) && this->ivanFloating)) && + !(this->actor.bgCheckFlags & 1) && !(this->stateFlags1 & PLAYER_STATE1_23) && (this->hoverBootsTimer != 0)) { s32 sp5C; s32 hoverBootsTimer = this->hoverBootsTimer; @@ -11207,8 +11240,9 @@ void Player_Draw(Actor* thisx, PlayState* play2) { lod = 1; } - if (CVarGetInteger("gDisableLOD", 0) != 0) + if (CVarGetInteger("gDisableLOD", 0) != 0) { lod = 0; + } func_80093C80(play); Gfx_SetupDL_25Xlu(play->state.gfxCtx); diff --git a/soh/src/overlays/gamestates/ovl_file_choose/z_file_choose.c b/soh/src/overlays/gamestates/ovl_file_choose/z_file_choose.c index 316956de3..171766609 100644 --- a/soh/src/overlays/gamestates/ovl_file_choose/z_file_choose.c +++ b/soh/src/overlays/gamestates/ovl_file_choose/z_file_choose.c @@ -42,65 +42,6 @@ void FileChoose_DrawTextureI8(GraphicsContext* gfxCtx, const void* texture, s16 CLOSE_DISPS(gfxCtx); } -void FileChoose_DrawRawImageRGBA32(GraphicsContext* gfxCtx, s16 centerX, s16 centerY, const char* source, u32 width, u32 height) { - u8* curTexture; - s32 textureCount; - u32 rectLeft; - u32 rectTop; - u32 textureHeight; - s32 remainingSize; - s32 textureSize; - s32 pad; - s32 i; - - OPEN_DISPS(gfxCtx); - - source = GetResourceDataByName(source, false); - - curTexture = source; - rectLeft = centerX - (width / 2); - rectTop = centerY - (height / 2); - textureHeight = 4096 / (width << 2); - remainingSize = (width * height) << 2; - textureSize = (width * textureHeight) << 2; - textureCount = remainingSize / textureSize; - if ((remainingSize % textureSize) != 0) { - textureCount += 1; - } - - gDPSetTileCustom(POLY_OPA_DISP++, G_IM_FMT_RGBA, G_IM_SIZ_32b, width, textureHeight, 0, G_TX_NOMIRROR | G_TX_CLAMP, - G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - - remainingSize -= textureSize; - - for (i = 0; i < textureCount; i++) { - gDPSetTextureImage(POLY_OPA_DISP++, G_IM_FMT_RGBA, G_IM_SIZ_32b, width, curTexture); - - gDPLoadSync(POLY_OPA_DISP++); - gDPLoadTile(POLY_OPA_DISP++, G_TX_LOADTILE, 0, 0, (width - 1) << 2, (textureHeight - 1) << 2); - - gSPTextureRectangle(POLY_OPA_DISP++, rectLeft << 2, rectTop << 2, (rectLeft + (s32)width) << 2, - (rectTop + textureHeight) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); - - curTexture += textureSize; - rectTop += textureHeight; - - if ((remainingSize - textureSize) < 0) { - if (remainingSize > 0) { - textureHeight = remainingSize / (s32)(width << 2); - remainingSize -= textureSize; - - gDPSetTileCustom(POLY_OPA_DISP++, G_IM_FMT_RGBA, G_IM_SIZ_32b, width, textureHeight, 0, - G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, - G_TX_NOLOD, G_TX_NOLOD); - } - } else { - remainingSize -= textureSize; - } - } - CLOSE_DISPS(gfxCtx); -} - void FileChoose_DrawImageRGBA32(GraphicsContext* gfxCtx, s16 centerX, s16 centerY, const char* source, u32 width, u32 height) { u8* curTexture; s32 textureCount; @@ -114,49 +55,19 @@ void FileChoose_DrawImageRGBA32(GraphicsContext* gfxCtx, s16 centerX, s16 center OPEN_DISPS(gfxCtx); - source = GetResourceDataByName(source, false); - - curTexture = source; rectLeft = centerX - (width / 2); rectTop = centerY - (height / 2); - textureHeight = 4096 / (width << 2); - remainingSize = (width * height) << 2; - textureSize = (width * textureHeight) << 2; - textureCount = remainingSize / textureSize; - if ((remainingSize % textureSize) != 0) { - textureCount += 1; - } - - gDPSetTileCustom(POLY_OPA_DISP++, G_IM_FMT_RGBA, G_IM_SIZ_32b, width, textureHeight, 0, G_TX_NOMIRROR | G_TX_CLAMP, + + gDPSetTileCustom(POLY_OPA_DISP++, G_IM_FMT_RGBA, G_IM_SIZ_32b, width, height, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - - remainingSize -= textureSize; - - for (i = 0; i < textureCount; i++) { - gDPSetTextureImage(POLY_OPA_DISP++, G_IM_FMT_RGBA, G_IM_SIZ_32b, width, curTexture); - - gDPLoadSync(POLY_OPA_DISP++); - gDPLoadTile(POLY_OPA_DISP++, G_TX_LOADTILE, 0, 0, (width - 1) << 2, (textureHeight - 1) << 2); - - gSPTextureRectangle(POLY_OPA_DISP++, rectLeft << 2, rectTop << 2, (rectLeft + (s32)width) << 2, - (rectTop + textureHeight) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); - - curTexture += textureSize; - rectTop += textureHeight; - - if ((remainingSize - textureSize) < 0) { - if (remainingSize > 0) { - textureHeight = remainingSize / (s32)(width << 2); - remainingSize -= textureSize; - - gDPSetTileCustom(POLY_OPA_DISP++, G_IM_FMT_RGBA, G_IM_SIZ_32b, width, textureHeight, 0, - G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, - G_TX_NOLOD, G_TX_NOLOD); - } - } else { - remainingSize -= textureSize; - } - } + + gDPSetTextureImage(POLY_OPA_DISP++, G_IM_FMT_RGBA, G_IM_SIZ_32b, width, source); + + gDPLoadSync(POLY_OPA_DISP++); + gDPLoadTile(POLY_OPA_DISP++, G_TX_LOADTILE, 0, 0, (width - 1) << 2, (height - 1) << 2); + + gSPTextureRectangle(POLY_OPA_DISP++, rectLeft << 2, rectTop << 2, (rectLeft + (s32)width) << 2, + (rectTop + height) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); CLOSE_DISPS(gfxCtx); } @@ -1479,7 +1390,7 @@ void FileChoose_DrawWindowContents(GameState* thisx) { char* tex = (this->configMode == CM_QUEST_MENU || this->configMode == CM_ROTATE_TO_NAME_ENTRY || this->configMode == CM_START_QUEST_MENU || this->configMode == CM_QUEST_TO_MAIN || this->configMode == CM_NAME_ENTRY_TO_QUEST_MENU) - ? GetResourceDataByName(FileChoose_GetQuestChooseTitleTexName(gSaveContext.language), false) + ? FileChoose_GetQuestChooseTitleTexName(gSaveContext.language) : sTitleLabels[gSaveContext.language][this->titleLabel]; OPEN_DISPS(this->state.gfxCtx); @@ -1549,7 +1460,7 @@ void FileChoose_DrawWindowContents(GameState* thisx) { FileChoose_DrawTextureI8(this->state.gfxCtx, gTitleTheLegendOfTextTex, 72, 8, 156, 108, 72, 8, 1024, 1024); FileChoose_DrawTextureI8(this->state.gfxCtx, gTitleOcarinaOfTimeTMTextTex, 96, 8, 154, 163, 96, 8, 1024, 1024); FileChoose_DrawImageRGBA32(this->state.gfxCtx, 160, 135, ResourceMgr_GameHasOriginal() ? gTitleZeldaShieldLogoTex : gTitleZeldaShieldLogoMQTex, 160, 160); - FileChoose_DrawRawImageRGBA32(this->state.gfxCtx, 182, 180, "__OTR__objects/object_mag/gTitleRandomizerSubtitleTex", 128, 32); + FileChoose_DrawImageRGBA32(this->state.gfxCtx, 182, 180, "__OTR__objects/object_mag/gTitleRandomizerSubtitleTex", 128, 32); break; } } else if (this->configMode != CM_ROTATE_TO_NAME_ENTRY) { @@ -1625,7 +1536,7 @@ void FileChoose_DrawWindowContents(GameState* thisx) { this->nameAlpha[i]); } gDPLoadTextureBlock(POLY_OPA_DISP++, - GetResourceDataByName("__OTR__textures/title_static/gFileSelRANDButtonTex", false), + "__OTR__textures/title_static/gFileSelRANDButtonTex", G_IM_FMT_IA, G_IM_SIZ_16b, 44, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSP1Quadrangle(POLY_OPA_DISP++, 8, 10, 11, 9, 0); @@ -1642,7 +1553,7 @@ void FileChoose_DrawWindowContents(GameState* thisx) { this->nameAlpha[i]); } gDPLoadTextureBlock(POLY_OPA_DISP++, - GetResourceDataByName("__OTR__textures/title_static/gFileSelMQButtonTex", false), + "__OTR__textures/title_static/gFileSelMQButtonTex", G_IM_FMT_IA, G_IM_SIZ_16b, 44, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSP1Quadrangle(POLY_OPA_DISP++, 8, 10, 11, 9, 0); diff --git a/soh/src/overlays/gamestates/ovl_title/z_title.c b/soh/src/overlays/gamestates/ovl_title/z_title.c index 2597b695b..2ba99231a 100644 --- a/soh/src/overlays/gamestates/ovl_title/z_title.c +++ b/soh/src/overlays/gamestates/ovl_title/z_title.c @@ -128,6 +128,12 @@ void Title_SetupView(TitleContext* this, f32 x, f32 y, f32 z) { func_800AAA50(view, 0xF); } +#define dgShipLogoDL "__OTR__textures/nintendo_rogo_static/gShipLogoDL" +static const ALIGN_ASSET(2) char gShipLogoDL[] = dgShipLogoDL; + +#define dnintendo_rogo_static_Tex_LUS_000000 "__OTR__textures/nintendo_rogo_static/nintendo_rogo_static_Tex_LUS_000000" +static const ALIGN_ASSET(2) char nintendo_rogo_static_Tex_LUS_000000[] = dnintendo_rogo_static_Tex_LUS_000000; + void Title_Draw(TitleContext* this) { static s16 sTitleRotY = 0; static Lights1 sTitleLights = gdSPDefLights1(0x64, 0x64, 0x64, 0xFF, 0xFF, 0xFF, 0x45, 0x45, 0x45); @@ -152,8 +158,6 @@ void Title_Draw(TitleContext* this) { v1.z = 0; v2.z = 1119.0837; - char* n64LogoTex = GetResourceDataByName(nintendo_rogo_static_Tex_000000, false); - func_8002EABC(&v1, &v2, &v3, this->state.gfxCtx); gSPSetLights1(POLY_OPA_DISP++, sTitleLights); Title_SetupView(this, 0, 150.0, 300.0); @@ -163,7 +167,11 @@ void Title_Draw(TitleContext* this) { Matrix_RotateZYX(0, sTitleRotY, 0, MTXMODE_APPLY); gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(this->state.gfxCtx), G_MTX_LOAD); - gSPDisplayList(POLY_OPA_DISP++, gNintendo64LogoDL); + if (CVarGetInteger("gAuthenticLogo", 0)) { + gSPDisplayList(POLY_OPA_DISP++, gNintendo64LogoDL); + } else { + gSPDisplayList(POLY_OPA_DISP++, gShipLogoDL); + } Gfx_SetupDL_39Opa(this->state.gfxCtx); gDPPipeSync(POLY_OPA_DISP++); gDPSetCycleType(POLY_OPA_DISP++, G_CYC_2CYCLE); @@ -184,9 +192,12 @@ void Title_Draw(TitleContext* this) { for (idx = 0, y = 94; idx < 16; idx++, y += 2) { - gDPLoadTextureBlock(POLY_OPA_DISP++, &n64LogoTex[0x180 * idx], G_IM_FMT_I, - G_IM_SIZ_8b, 192, 2, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, - G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gDPLoadMultiTile(POLY_OPA_DISP++, CVarGetInteger("gAuthenticLogo", 0) ? nintendo_rogo_static_Tex_000000 : nintendo_rogo_static_Tex_LUS_000000, 0, G_TX_RENDERTILE, G_IM_FMT_I, G_IM_SIZ_8b, 192, 32, + 0, idx * 2, 192 - 1, (idx + 1) * 2 - 1, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, + G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + + gDPSetTileSize(POLY_OPA_DISP++, 0, 0, 0, (192 - 1) << G_TEXTURE_IMAGE_FRAC, + (2 - 1) << G_TEXTURE_IMAGE_FRAC); gDPSetTileSize(POLY_OPA_DISP++, 1, this->uls, (this->ult & 0x7F) - idx * 4, 0, 0); gSPTextureRectangle(POLY_OPA_DISP++, 388, y << 2, 1156, (y + 2) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); @@ -226,7 +237,7 @@ void Title_Main(GameState* thisx) { Title_Calc(this); Title_Draw(this); - if (!CVarGetInteger("gHideBuildInfo", 0)) { + if (!CVarGetInteger("gAuthenticLogo", 0)) { Gfx* gfx = POLY_OPA_DISP; s32 pad; diff --git a/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.c b/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.c index db487b3fc..4d1c65ad4 100644 --- a/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.c +++ b/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.c @@ -341,15 +341,15 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) { gSPVertex(POLY_KAL_DISP++, &pauseCtx->mapPageVtx[60], 8, 0); // The dungeon map textures are recreated each frame, so always invalidate them - gSPInvalidateTexCache(POLY_KAL_DISP++, interfaceCtx->mapSegment); - gSPInvalidateTexCache(POLY_KAL_DISP++, interfaceCtx->mapSegment + 0x800); + gSPInvalidateTexCache(POLY_KAL_DISP++, interfaceCtx->mapSegment[0]); + gSPInvalidateTexCache(POLY_KAL_DISP++, interfaceCtx->mapSegment[1]); - gDPLoadTextureBlock_4b(POLY_KAL_DISP++, interfaceCtx->mapSegment, G_IM_FMT_CI, 48, 85, 0, G_TX_WRAP | G_TX_NOMIRROR, + gDPLoadTextureBlock_4b(POLY_KAL_DISP++, interfaceCtx->mapSegmentName[0], G_IM_FMT_CI, 48, 85, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSP1Quadrangle(POLY_KAL_DISP++, 0, 2, 3, 1, 0); - gDPLoadTextureBlock_4b(POLY_KAL_DISP++, interfaceCtx->mapSegment + 0x800, G_IM_FMT_CI, 48, 85, 0, + gDPLoadTextureBlock_4b(POLY_KAL_DISP++, interfaceCtx->mapSegmentName[1], G_IM_FMT_CI, 48, 85, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -513,9 +513,10 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { gSPVertex(POLY_KAL_DISP++, &pauseCtx->mapPageVtx[188], 32, 0); for (j = t = i = 0; i < 8; i++, t++, j += 4) { - gDPLoadTextureBlock(POLY_KAL_DISP++, (u8*)GetResourceDataByName(gWorldMapImageTex, false) + t * 216 * 9, G_IM_FMT_CI, G_IM_SIZ_8b, 216, 9, - 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, - G_TX_NOLOD, G_TX_NOLOD); + gDPLoadMultiTile(POLY_KAL_DISP++, gWorldMapImageTex, 0, G_TX_RENDERTILE, G_IM_FMT_CI, G_IM_SIZ_8b, 216, 128, 0, t * 9, 216 - 1, + (t + 1) * 9 - 1, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, + G_TX_NOLOD, G_TX_NOLOD); + gDPSetTileSize(POLY_KAL_DISP++, G_TX_RENDERTILE, 0, 0, (216 - 1) << G_TEXTURE_IMAGE_FRAC, (9 - 1) << G_TEXTURE_IMAGE_FRAC); gSP1Quadrangle(POLY_KAL_DISP++, j, j + 2, j + 3, j + 1, 0); } @@ -524,16 +525,20 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { for (j = i = 0; i < 6; i++, t++, j += 4) { - gDPLoadTextureBlock(POLY_KAL_DISP++, (u8*)GetResourceDataByName(gWorldMapImageTex, false) + t * 216 * 9, G_IM_FMT_CI, G_IM_SIZ_8b, 216, 9, - 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, - G_TX_NOLOD, G_TX_NOLOD); + gDPLoadMultiTile(POLY_KAL_DISP++, gWorldMapImageTex, 0, G_TX_RENDERTILE, G_IM_FMT_CI, G_IM_SIZ_8b, 216, 128, + 0, t * 9, 216 - 1, (t + 1) * 9 - 1, 0, G_TX_WRAP | G_TX_NOMIRROR, + G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gDPSetTileSize(POLY_KAL_DISP++, G_TX_RENDERTILE, 0, 0, (216 - 1) << G_TEXTURE_IMAGE_FRAC, + (9 - 1) << G_TEXTURE_IMAGE_FRAC); gSP1Quadrangle(POLY_KAL_DISP++, j, j + 2, j + 3, j + 1, 0); } - gDPLoadTextureBlock(POLY_KAL_DISP++, (u8*)GetResourceDataByName(gWorldMapImageTex, false) + t * 216 * 9, G_IM_FMT_CI, G_IM_SIZ_8b, 216, 2, 0, - G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, - G_TX_NOLOD); + gDPLoadMultiTile(POLY_KAL_DISP++, gWorldMapImageTex, 0, G_TX_RENDERTILE, G_IM_FMT_CI, G_IM_SIZ_8b, 216, 128, 0, + t * 9, 216 - 1, (t * 9 + 2) - 1, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, + G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gDPSetTileSize(POLY_KAL_DISP++, G_TX_RENDERTILE, 0, 0, (216 - 1) << G_TEXTURE_IMAGE_FRAC, + (2 - 1) << G_TEXTURE_IMAGE_FRAC); gSP1Quadrangle(POLY_KAL_DISP++, j, j + 2, j + 3, j + 1, 0); } else if (HREG(15) == 1) { diff --git a/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c b/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c index 213fc5ce8..dfd7fae49 100644 --- a/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c +++ b/soh/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c @@ -820,7 +820,7 @@ Gfx* KaleidoScope_QuadTextureIA8(Gfx* gfx, void* texture, s16 width, s16 height, return gfx; } -void KaleidoScope_OverridePalIndexCI4(u8* texture, ptrdiff_t size, s32 targetIndex, s32 newIndex) { +void KaleidoScope_OverridePalIndexCI4(u8* texture, s32 size, s32 targetIndex, s32 newIndex) { s32 i; targetIndex &= 0xF; @@ -2079,7 +2079,7 @@ void KaleidoScope_UpdateNamePanel(PlayState* play) { } const char* textureName = mapNameTextures[sp2A]; - memcpy(pauseCtx->nameSegment, GetResourceDataByName(textureName, false), GetResourceTexSizeByName(textureName, false)); + memcpy(pauseCtx->nameSegment, textureName, strlen(textureName) + 1); } else { osSyncPrintf("zoom_name=%d\n", pauseCtx->namedItem); @@ -2093,7 +2093,7 @@ void KaleidoScope_UpdateNamePanel(PlayState* play) { osSyncPrintf("J_N=%d point=%d\n", gSaveContext.language, sp2A); const char* textureName = iconNameTextures[sp2A]; - memcpy(pauseCtx->nameSegment, GetResourceDataByName(textureName, false), GetResourceTexSizeByName(textureName, false)); + memcpy(pauseCtx->nameSegment, textureName, strlen(textureName) + 1); } pauseCtx->nameDisplayTimer = 0; @@ -3045,31 +3045,6 @@ uint32_t _bswap32(uint32_t a) return a; } -void KaleidoScope_GrayOutTextureRGBA32(u32* texture, u16 pixelCount) { - u32 rgb; - u16 gray; - u16 i; - - texture = GetResourceDataByName(texture, false); - - for (i = 0; i < pixelCount; i++) { - uint32_t px = texture[i]; - if ((px & 0xFFFFFF00) != 0) { - u8 a = (px & 0xFF000000) >> 24; - u8 b = (px & 0x00FF0000) >> 16; - u8 g = (px & 0x0000FF00) >> 8; - u8 r = (px & 0x000000FF) >> 0; - gray = (r + g + b) / 7; - - r = gray; - g = gray; - b = gray; - - texture[i] = (a << 24) + (b << 16) + (g << 8) + (r << 0); - } - } -} - void func_808265BC(PlayState* play) { PauseContext* pauseCtx = &play->pauseCtx; @@ -3194,11 +3169,10 @@ void KaleidoScope_UpdateCursorSize(PauseContext* pauseCtx) { void KaleidoScope_LoadDungeonMap(PlayState* play) { InterfaceContext* interfaceCtx = &play->interfaceCtx; - char* firstTextureName = sDungeonMapTexs[R_MAP_TEX_INDEX]; - char* secondTextureName = sDungeonMapTexs[R_MAP_TEX_INDEX + 1]; - - memcpy(interfaceCtx->mapSegment, GetResourceDataByName(firstTextureName, false), GetResourceTexSizeByName(firstTextureName, false)); - memcpy(interfaceCtx->mapSegment + 0x800, GetResourceDataByName(secondTextureName, false), GetResourceTexSizeByName(secondTextureName, false)); + interfaceCtx->mapSegmentName[0] = sDungeonMapTexs[R_MAP_TEX_INDEX]; + interfaceCtx->mapSegmentName[1] = sDungeonMapTexs[R_MAP_TEX_INDEX + 1]; + interfaceCtx->mapSegment[0] = GetResourceDataByName(sDungeonMapTexs[R_MAP_TEX_INDEX], true); + interfaceCtx->mapSegment[1] = GetResourceDataByName(sDungeonMapTexs[R_MAP_TEX_INDEX + 1], true); } void KaleidoScope_UpdateDungeonMap(PlayState* play) { @@ -3212,13 +3186,15 @@ void KaleidoScope_UpdateDungeonMap(PlayState* play) { if ((play->sceneNum >= SCENE_YDAN) && (play->sceneNum <= SCENE_TAKARAYA)) { if ((VREG(30) + 3) == pauseCtx->cursorPoint[PAUSE_MAP]) { - KaleidoScope_OverridePalIndexCI4(interfaceCtx->mapSegment, 2040, interfaceCtx->mapPaletteIndex, 14); + // HDTODO: Handle Runtime Modified Textures (HD) + KaleidoScope_OverridePalIndexCI4(interfaceCtx->mapSegment[0], 2040, interfaceCtx->mapPaletteIndex, 14); } } if ((play->sceneNum >= SCENE_YDAN) && (play->sceneNum <= SCENE_TAKARAYA)) { if ((VREG(30) + 3) == pauseCtx->cursorPoint[PAUSE_MAP]) { - KaleidoScope_OverridePalIndexCI4(interfaceCtx->mapSegment + 0x800, 2040, interfaceCtx->mapPaletteIndex, 14); + // HDTODO: Handle Runtime Modified Textures (HD) + KaleidoScope_OverridePalIndexCI4(interfaceCtx->mapSegment[1], 2040, interfaceCtx->mapPaletteIndex, 14); } } } @@ -3375,19 +3351,13 @@ void KaleidoScope_Update(PlayState* play) osSyncPrintf("サイズ=%x\n", size2 + size1 + size0 + size + 0x800); if (((void)0, gSaveContext.worldMapArea) < 22) { - if (gSaveContext.language == LANGUAGE_ENG) { - const char* textureName = mapNameTextures[36 + gSaveContext.worldMapArea]; - memcpy(pauseCtx->nameSegment + 0x400, GetResourceDataByName(textureName, false), GetResourceTexSizeByName(textureName, false)); - } else if (gSaveContext.language == LANGUAGE_GER) { - const char* textureName = mapNameTextures[58 + gSaveContext.worldMapArea]; - memcpy(pauseCtx->nameSegment + 0x400, GetResourceDataByName(textureName, false), GetResourceTexSizeByName(textureName, false)); - } else { - const char* textureName = mapNameTextures[80 + gSaveContext.worldMapArea]; - memcpy(pauseCtx->nameSegment + 0x400, GetResourceDataByName(textureName, false), GetResourceTexSizeByName(textureName, false)); - } + const uint8_t offsets[] = { 36, 58, 80 }; + const char* textureName = mapNameTextures[offsets[gSaveContext.language] + gSaveContext.worldMapArea]; + memcpy(pauseCtx->nameSegment + 0x400, textureName, strlen(textureName) + 1); } // OTRTODO - player on pause #if 1 + // HDTODO: Remove sPreRenderCvg stuff? sPreRenderCvg = (void*)(((uintptr_t)pauseCtx->nameSegment + 0x400 + 0xA00 + 0xF) & ~0xF); PreRender_Init(&sPlayerPreRender); @@ -4260,6 +4230,6 @@ void KaleidoScope_Update(PlayState* play) osSyncPrintf(VT_RST); break; } - + GameInteractor_ExecuteOnKaleidoscopeUpdate(sInDungeonScene); }