From 3240f079465189fb6326ae86ef8fd9b5ad48c53f Mon Sep 17 00:00:00 2001 From: N0ble Date: Mon, 21 Jul 2025 20:38:11 -0600 Subject: [PATCH] Initial push --- .DS_Store | Bin 0 -> 6148 bytes .editorconfig | 4 + .gitattributes | 2 + .gitignore | 3 + .vscode/settings.json | 3 + Assets/Shaders/outline.gdshader | 112 ++++ Assets/Shaders/outline.gdshader.uid | 1 + Assets/Textures/black_board.png | Bin 0 -> 16290 bytes Assets/Textures/black_board.png.import | 34 ++ Assets/Textures/kenny/Dark/texture_01.png | Bin 0 -> 2774 bytes .../Textures/kenny/Dark/texture_01.png.import | 35 ++ Assets/Textures/kenny/Dark/texture_02.png | Bin 0 -> 1338 bytes .../Textures/kenny/Dark/texture_02.png.import | 35 ++ Assets/Textures/kenny/Dark/texture_03.png | Bin 0 -> 2727 bytes .../Textures/kenny/Dark/texture_03.png.import | 34 ++ Assets/Textures/kenny/Dark/texture_04.png | Bin 0 -> 13212 bytes .../Textures/kenny/Dark/texture_04.png.import | 34 ++ Assets/Textures/kenny/Dark/texture_05.png | Bin 0 -> 19065 bytes .../Textures/kenny/Dark/texture_05.png.import | 35 ++ Assets/Textures/kenny/Dark/texture_06.png | Bin 0 -> 2739 bytes .../Textures/kenny/Dark/texture_06.png.import | 34 ++ Assets/Textures/kenny/Dark/texture_07.png | Bin 0 -> 2743 bytes .../Textures/kenny/Dark/texture_07.png.import | 34 ++ Assets/Textures/kenny/Dark/texture_08.png | Bin 0 -> 637 bytes .../Textures/kenny/Dark/texture_08.png.import | 35 ++ Assets/Textures/kenny/Dark/texture_09.png | Bin 0 -> 2838 bytes .../Textures/kenny/Dark/texture_09.png.import | 34 ++ Assets/Textures/kenny/Dark/texture_10.png | Bin 0 -> 9183 bytes .../Textures/kenny/Dark/texture_10.png.import | 34 ++ Assets/Textures/kenny/Dark/texture_11.png | Bin 0 -> 9048 bytes .../Textures/kenny/Dark/texture_11.png.import | 34 ++ Assets/Textures/kenny/Dark/texture_12.png | Bin 0 -> 9585 bytes .../Textures/kenny/Dark/texture_12.png.import | 34 ++ Assets/Textures/kenny/Dark/texture_13.png | Bin 0 -> 9867 bytes .../Textures/kenny/Dark/texture_13.png.import | 34 ++ Assets/Textures/kenny/Green/texture_01.png | Bin 0 -> 9868 bytes .../kenny/Green/texture_01.png.import | 35 ++ Assets/Textures/kenny/Green/texture_02.png | Bin 0 -> 2774 bytes .../kenny/Green/texture_02.png.import | 34 ++ Assets/Textures/kenny/Green/texture_03.png | Bin 0 -> 1338 bytes .../kenny/Green/texture_03.png.import | 34 ++ Assets/Textures/kenny/Green/texture_04.png | Bin 0 -> 2727 bytes .../kenny/Green/texture_04.png.import | 34 ++ Assets/Textures/kenny/Green/texture_05.png | Bin 0 -> 13212 bytes .../kenny/Green/texture_05.png.import | 34 ++ Assets/Textures/kenny/Green/texture_06.png | Bin 0 -> 19065 bytes .../kenny/Green/texture_06.png.import | 34 ++ Assets/Textures/kenny/Green/texture_07.png | Bin 0 -> 2739 bytes .../kenny/Green/texture_07.png.import | 34 ++ Assets/Textures/kenny/Green/texture_08.png | Bin 0 -> 2743 bytes .../kenny/Green/texture_08.png.import | 34 ++ Assets/Textures/kenny/Green/texture_09.png | Bin 0 -> 637 bytes .../kenny/Green/texture_09.png.import | 34 ++ Assets/Textures/kenny/Green/texture_10.png | Bin 0 -> 2838 bytes .../kenny/Green/texture_10.png.import | 34 ++ Assets/Textures/kenny/Green/texture_11.png | Bin 0 -> 9200 bytes .../kenny/Green/texture_11.png.import | 34 ++ Assets/Textures/kenny/Green/texture_12.png | Bin 0 -> 9056 bytes .../kenny/Green/texture_12.png.import | 34 ++ Assets/Textures/kenny/Green/texture_13.png | Bin 0 -> 9588 bytes .../kenny/Green/texture_13.png.import | 34 ++ Assets/Textures/kenny/Light/texture_01.png | Bin 0 -> 1338 bytes .../kenny/Light/texture_01.png.import | 35 ++ Assets/Textures/kenny/Light/texture_02.png | Bin 0 -> 2727 bytes .../kenny/Light/texture_02.png.import | 34 ++ Assets/Textures/kenny/Light/texture_03.png | Bin 0 -> 13212 bytes .../kenny/Light/texture_03.png.import | 34 ++ Assets/Textures/kenny/Light/texture_04.png | Bin 0 -> 15848 bytes .../kenny/Light/texture_04.png.import | 34 ++ Assets/Textures/kenny/Light/texture_05.png | Bin 0 -> 2739 bytes .../kenny/Light/texture_05.png.import | 34 ++ Assets/Textures/kenny/Light/texture_06.png | Bin 0 -> 2743 bytes .../kenny/Light/texture_06.png.import | 34 ++ Assets/Textures/kenny/Light/texture_07.png | Bin 0 -> 637 bytes .../kenny/Light/texture_07.png.import | 34 ++ Assets/Textures/kenny/Light/texture_08.png | Bin 0 -> 2838 bytes .../kenny/Light/texture_08.png.import | 34 ++ Assets/Textures/kenny/Light/texture_09.png | Bin 0 -> 9102 bytes .../kenny/Light/texture_09.png.import | 34 ++ Assets/Textures/kenny/Light/texture_10.png | Bin 0 -> 8958 bytes .../kenny/Light/texture_10.png.import | 34 ++ Assets/Textures/kenny/Light/texture_11.png | Bin 0 -> 9494 bytes .../kenny/Light/texture_11.png.import | 34 ++ Assets/Textures/kenny/Light/texture_12.png | Bin 0 -> 9076 bytes .../kenny/Light/texture_12.png.import | 34 ++ Assets/Textures/kenny/Light/texture_13.png | Bin 0 -> 2774 bytes .../kenny/Light/texture_13.png.import | 34 ++ Assets/Textures/kenny/Orange/texture_01.png | Bin 0 -> 9912 bytes .../kenny/Orange/texture_01.png.import | 35 ++ Assets/Textures/kenny/Orange/texture_02.png | Bin 0 -> 2774 bytes .../kenny/Orange/texture_02.png.import | 34 ++ Assets/Textures/kenny/Orange/texture_03.png | Bin 0 -> 1338 bytes .../kenny/Orange/texture_03.png.import | 35 ++ Assets/Textures/kenny/Orange/texture_04.png | Bin 0 -> 2727 bytes .../kenny/Orange/texture_04.png.import | 34 ++ Assets/Textures/kenny/Orange/texture_05.png | Bin 0 -> 13212 bytes .../kenny/Orange/texture_05.png.import | 34 ++ Assets/Textures/kenny/Orange/texture_06.png | Bin 0 -> 19073 bytes .../kenny/Orange/texture_06.png.import | 34 ++ Assets/Textures/kenny/Orange/texture_07.png | Bin 0 -> 2739 bytes .../kenny/Orange/texture_07.png.import | 34 ++ Assets/Textures/kenny/Orange/texture_08.png | Bin 0 -> 2743 bytes .../kenny/Orange/texture_08.png.import | 34 ++ Assets/Textures/kenny/Orange/texture_09.png | Bin 0 -> 637 bytes .../kenny/Orange/texture_09.png.import | 34 ++ Assets/Textures/kenny/Orange/texture_10.png | Bin 0 -> 2838 bytes .../kenny/Orange/texture_10.png.import | 34 ++ Assets/Textures/kenny/Orange/texture_11.png | Bin 0 -> 9194 bytes .../kenny/Orange/texture_11.png.import | 34 ++ Assets/Textures/kenny/Orange/texture_12.png | Bin 0 -> 9054 bytes .../kenny/Orange/texture_12.png.import | 34 ++ Assets/Textures/kenny/Orange/texture_13.png | Bin 0 -> 9581 bytes .../kenny/Orange/texture_13.png.import | 34 ++ Assets/Textures/kenny/Purple/texture_01.png | Bin 0 -> 9797 bytes .../kenny/Purple/texture_01.png.import | 35 ++ Assets/Textures/kenny/Purple/texture_02.png | Bin 0 -> 2774 bytes .../kenny/Purple/texture_02.png.import | 34 ++ Assets/Textures/kenny/Purple/texture_03.png | Bin 0 -> 1338 bytes .../kenny/Purple/texture_03.png.import | 34 ++ Assets/Textures/kenny/Purple/texture_04.png | Bin 0 -> 2727 bytes .../kenny/Purple/texture_04.png.import | 34 ++ Assets/Textures/kenny/Purple/texture_05.png | Bin 0 -> 13212 bytes .../kenny/Purple/texture_05.png.import | 34 ++ Assets/Textures/kenny/Purple/texture_06.png | Bin 0 -> 19065 bytes .../kenny/Purple/texture_06.png.import | 34 ++ Assets/Textures/kenny/Purple/texture_07.png | Bin 0 -> 2739 bytes .../kenny/Purple/texture_07.png.import | 34 ++ Assets/Textures/kenny/Purple/texture_08.png | Bin 0 -> 2743 bytes .../kenny/Purple/texture_08.png.import | 34 ++ Assets/Textures/kenny/Purple/texture_09.png | Bin 0 -> 637 bytes .../kenny/Purple/texture_09.png.import | 34 ++ Assets/Textures/kenny/Purple/texture_10.png | Bin 0 -> 2838 bytes .../kenny/Purple/texture_10.png.import | 34 ++ Assets/Textures/kenny/Purple/texture_11.png | Bin 0 -> 9192 bytes .../kenny/Purple/texture_11.png.import | 34 ++ Assets/Textures/kenny/Purple/texture_12.png | Bin 0 -> 9059 bytes .../kenny/Purple/texture_12.png.import | 34 ++ Assets/Textures/kenny/Purple/texture_13.png | Bin 0 -> 9592 bytes .../kenny/Purple/texture_13.png.import | 34 ++ Assets/Textures/kenny/Red/texture_01.png | Bin 0 -> 9911 bytes .../Textures/kenny/Red/texture_01.png.import | 35 ++ Assets/Textures/kenny/Red/texture_02.png | Bin 0 -> 2774 bytes .../Textures/kenny/Red/texture_02.png.import | 34 ++ Assets/Textures/kenny/Red/texture_03.png | Bin 0 -> 1338 bytes .../Textures/kenny/Red/texture_03.png.import | 35 ++ Assets/Textures/kenny/Red/texture_04.png | Bin 0 -> 2727 bytes .../Textures/kenny/Red/texture_04.png.import | 34 ++ Assets/Textures/kenny/Red/texture_05.png | Bin 0 -> 13212 bytes .../Textures/kenny/Red/texture_05.png.import | 34 ++ Assets/Textures/kenny/Red/texture_06.png | Bin 0 -> 19065 bytes .../Textures/kenny/Red/texture_06.png.import | 34 ++ Assets/Textures/kenny/Red/texture_07.png | Bin 0 -> 2739 bytes .../Textures/kenny/Red/texture_07.png.import | 34 ++ Assets/Textures/kenny/Red/texture_08.png | Bin 0 -> 2743 bytes .../Textures/kenny/Red/texture_08.png.import | 34 ++ Assets/Textures/kenny/Red/texture_09.png | Bin 0 -> 637 bytes .../Textures/kenny/Red/texture_09.png.import | 34 ++ Assets/Textures/kenny/Red/texture_10.png | Bin 0 -> 2838 bytes .../Textures/kenny/Red/texture_10.png.import | 34 ++ Assets/Textures/kenny/Red/texture_11.png | Bin 0 -> 9207 bytes .../Textures/kenny/Red/texture_11.png.import | 34 ++ Assets/Textures/kenny/Red/texture_12.png | Bin 0 -> 9072 bytes .../Textures/kenny/Red/texture_12.png.import | 34 ++ Assets/Textures/kenny/Red/texture_13.png | Bin 0 -> 9590 bytes .../Textures/kenny/Red/texture_13.png.import | 34 ++ Assets/Themes/theme.tres | 13 + LICENSE | 21 + Scenes/Chat/ChatMenu.tscn | 60 ++ Scenes/Items/goblet.tscn | 80 +++ Scenes/Lobby.tscn | 59 ++ Scenes/Menu/InventoryMenu.tscn | 58 ++ Scenes/Menu/InventoryUiItem.tscn | 28 + Scenes/Menu/LobbyMenu.tscn | 137 +++++ Scenes/Mobs/character.tscn | 483 +++++++++++++++ Scenes/Server/Server.tscn | 6 + Scenes/Server/ServerLobby.tscn | 6 + .../.gitattributes | 2 + .../.gitignore | 2 + .../quality-godot-first-person-2-main/LICENSE | 21 + .../README.md | 67 +++ .../addons/fpc/EditorModule.gd | 49 ++ .../addons/fpc/character.gd | 488 ++++++++++++++++ .../addons/fpc/character.tscn | 455 +++++++++++++++ .../addons/fpc/debug.gd | 18 + .../addons/fpc/reticles/reticle_0.tscn | 37 ++ .../addons/fpc/reticles/reticle_1.tscn | 104 ++++ .../icon.svg | 126 ++++ .../icon.svg.import | 37 ++ .../project.godot | 65 +++ .../test_world.tscn | 106 ++++ .../textures/dark.png | Bin 0 -> 2774 bytes .../textures/dark.png.import | 35 ++ .../textures/green.png | Bin 0 -> 2774 bytes .../textures/green.png.import | 35 ++ .../textures/orange.png | Bin 0 -> 2774 bytes .../textures/orange.png.import | 35 ++ .../textures/purple.png | Bin 0 -> 2774 bytes .../textures/purple.png.import | 34 ++ .../textures/red.png | Bin 0 -> 2774 bytes .../textures/red.png.import | 34 ++ Scenes/reticles/reticle_0.tscn | 37 ++ Scenes/reticles/reticle_1.tscn | 104 ++++ Scenes/town.tscn | 47 ++ Scenes/world.tscn | 56 ++ Scripts/Chat/chat_menu.gd | 246 ++++++++ Scripts/Chat/chat_menu.gd.uid | 1 + Scripts/Items/goblet.gd | 5 + Scripts/Items/goblet.gd.uid | 1 + Scripts/Items/interactable.gd | 5 + Scripts/Items/interactable.gd.uid | 1 + Scripts/Level/level.gd | 60 ++ Scripts/Level/level.gd.uid | 1 + Scripts/Level/lobby.gd | 5 + Scripts/Level/lobby.gd.uid | 1 + Scripts/Menu/inventory_menu.gd | 33 ++ Scripts/Menu/inventory_menu.gd.uid | 1 + Scripts/Menu/inventory_ui_item.gd | 11 + Scripts/Menu/inventory_ui_item.gd.uid | 1 + Scripts/Menu/lobby_menu.gd | 169 ++++++ Scripts/Menu/lobby_menu.gd.uid | 1 + Scripts/Resources/inventory.gd | 15 + Scripts/Resources/inventory.gd.uid | 1 + Scripts/Resources/item.gd | 9 + Scripts/Resources/item.gd.uid | 1 + Scripts/Server/player_data.gd | 12 + Scripts/Server/player_data.gd.uid | 1 + Scripts/Server/server.gd | 273 +++++++++ Scripts/Server/server.gd.uid | 1 + Scripts/Server/server_lobby.gd | 71 +++ Scripts/Server/server_lobby.gd.uid | 1 + Scripts/fpc/EditorModule.gd | 49 ++ Scripts/fpc/EditorModule.gd.uid | 1 + Scripts/fpc/character.gd | 551 ++++++++++++++++++ Scripts/fpc/character.gd.uid | 1 + Scripts/fpc/debug.gd | 18 + Scripts/fpc/debug.gd.uid | 1 + Scripts/global.gd | 29 + Scripts/global.gd.uid | 1 + Scripts/world.gd | 86 +++ Scripts/world.gd.uid | 1 + addons/godotsteam/godotsteam.gdextension | 22 + addons/godotsteam/godotsteam.gdextension.uid | 1 + ...bgodotsteam.linux.template_debug.x86_32.so | Bin 0 -> 3685612 bytes ...odotsteam.linux.template_release.x86_32.so | Bin 0 -> 3422164 bytes addons/godotsteam/linux32/libsteam_api.so | Bin 0 -> 376896 bytes ...bgodotsteam.linux.template_debug.x86_64.so | Bin 0 -> 3285848 bytes ...odotsteam.linux.template_release.x86_64.so | Bin 0 -> 3104328 bytes addons/godotsteam/linux64/libsteam_api.so | Bin 0 -> 388288 bytes .../Resources/Info.plist | 26 + .../libgodotsteam.macos.template_debug | Bin 0 -> 4191848 bytes .../libsteam_api.dylib | Bin 0 -> 415344 bytes .../Resources/Info.plist | 26 + .../libgodotsteam.macos.template_release | Bin 0 -> 4108984 bytes .../libsteam_api.dylib | Bin 0 -> 415344 bytes addons/godotsteam/osx/libsteam_api.dylib | Bin 0 -> 415344 bytes ...dotsteam.windows.template_debug.x86_32.dll | Bin 0 -> 1757184 bytes ...tsteam.windows.template_release.x86_32.dll | Bin 0 -> 1567744 bytes addons/godotsteam/win32/steam_api.dll | Bin 0 -> 278112 bytes ...dotsteam.windows.template_debug.x86_64.dll | Bin 0 -> 2324992 bytes ...tsteam.windows.template_release.x86_64.dll | Bin 0 -> 2024448 bytes addons/godotsteam/win64/steam_api64.dll | Bin 0 -> 319584 bytes ...dotsteam.windows.template_debug.x86_64.dll | Bin 0 -> 2324992 bytes addons/steam-multiplayer-peer/.gitignore | 1 + addons/steam-multiplayer-peer/LICENSE | 21 + addons/steam-multiplayer-peer/README.md | 87 +++ addons/steam-multiplayer-peer/linux/.gitkeep | 0 ...peer.linux.template_debug.double.x86_64.so | Bin 0 -> 736296 bytes ...player-peer.linux.template_debug.x86_64.so | Bin 0 -> 732232 bytes ...er.linux.template_release.double.x86_64.so | Bin 0 -> 744152 bytes ...ayer-peer.linux.template_release.x86_64.so | Bin 0 -> 740088 bytes .../linux/libsteam_api.so | Bin 0 -> 383104 bytes ...acos.template_debug.double.universal.dylib | Bin 0 -> 596488 bytes ...-peer.macos.template_debug.universal.dylib | Bin 0 -> 596488 bytes ...os.template_release.double.universal.dylib | Bin 0 -> 579720 bytes ...eer.macos.template_release.universal.dylib | Bin 0 -> 579720 bytes .../macos/libsteam_api.dylib | Bin 0 -> 627088 bytes .../steam-multiplayer-peer.gdextension | 25 + .../steam-multiplayer-peer.gdextension.uid | 1 + .../steam-multiplayer-peer/windows/.gitkeep | 0 ...r.windows.template_debug.double.x86_64.dll | Bin 0 -> 458752 bytes ...yer-peer.windows.template_debug.x86_64.dll | Bin 0 -> 459264 bytes ...windows.template_release.double.x86_64.dll | Bin 0 -> 420352 bytes ...r-peer.windows.template_release.x86_64.dll | Bin 0 -> 420352 bytes .../windows/steam_api.dll | Bin 0 -> 268648 bytes .../windows/steam_api64.dll | Bin 0 -> 301928 bytes project.godot | 105 ++++ .../.gitattributes | 2 + quality-godot-first-person-2-2.6.1/.gitignore | 2 + quality-godot-first-person-2-2.6.1/LICENSE | 21 + quality-godot-first-person-2-2.6.1/README.md | 67 +++ .../addons/fpc/EditorModule.gd | 49 ++ .../addons/fpc/character.gd | 488 ++++++++++++++++ .../addons/fpc/character.tscn | 455 +++++++++++++++ .../addons/fpc/debug.gd | 18 + .../addons/fpc/reticles/reticle_0.tscn | 37 ++ .../addons/fpc/reticles/reticle_1.tscn | 104 ++++ quality-godot-first-person-2-2.6.1/icon.svg | 126 ++++ .../icon.svg.import | 37 ++ .../project.godot | 65 +++ .../test_world.tscn | 106 ++++ .../textures/dark.png | Bin 0 -> 2774 bytes .../textures/dark.png.import | 35 ++ .../textures/green.png | Bin 0 -> 2774 bytes .../textures/green.png.import | 35 ++ .../textures/orange.png | Bin 0 -> 2774 bytes .../textures/orange.png.import | 35 ++ .../textures/purple.png | Bin 0 -> 2774 bytes .../textures/purple.png.import | 34 ++ .../textures/red.png | Bin 0 -> 2774 bytes .../textures/red.png.import | 34 ++ .../.gitattributes | 2 + quality-godot-first-person-2-main/.gitignore | 2 + quality-godot-first-person-2-main/LICENSE | 21 + quality-godot-first-person-2-main/README.md | 67 +++ .../addons/fpc/EditorModule.gd | 49 ++ .../addons/fpc/character.gd | 488 ++++++++++++++++ .../addons/fpc/character.tscn | 455 +++++++++++++++ .../addons/fpc/debug.gd | 18 + .../addons/fpc/reticles/reticle_0.tscn | 37 ++ .../addons/fpc/reticles/reticle_1.tscn | 104 ++++ quality-godot-first-person-2-main/icon.svg | 126 ++++ .../icon.svg.import | 37 ++ .../project.godot | 65 +++ .../test_world.tscn | 106 ++++ .../textures/dark.png | Bin 0 -> 2774 bytes .../textures/dark.png.import | 35 ++ .../textures/green.png | Bin 0 -> 2774 bytes .../textures/green.png.import | 35 ++ .../textures/orange.png | Bin 0 -> 2774 bytes .../textures/orange.png.import | 35 ++ .../textures/purple.png | Bin 0 -> 2774 bytes .../textures/purple.png.import | 34 ++ .../textures/red.png | Bin 0 -> 2774 bytes .../textures/red.png.import | 34 ++ steam_appid.txt | 1 + 335 files changed, 11248 insertions(+) create mode 100644 .DS_Store create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .vscode/settings.json create mode 100644 Assets/Shaders/outline.gdshader create mode 100644 Assets/Shaders/outline.gdshader.uid create mode 100644 Assets/Textures/black_board.png create mode 100644 Assets/Textures/black_board.png.import create mode 100644 Assets/Textures/kenny/Dark/texture_01.png create mode 100644 Assets/Textures/kenny/Dark/texture_01.png.import create mode 100644 Assets/Textures/kenny/Dark/texture_02.png create mode 100644 Assets/Textures/kenny/Dark/texture_02.png.import create mode 100644 Assets/Textures/kenny/Dark/texture_03.png create mode 100644 Assets/Textures/kenny/Dark/texture_03.png.import create mode 100644 Assets/Textures/kenny/Dark/texture_04.png create mode 100644 Assets/Textures/kenny/Dark/texture_04.png.import create mode 100644 Assets/Textures/kenny/Dark/texture_05.png create mode 100644 Assets/Textures/kenny/Dark/texture_05.png.import create mode 100644 Assets/Textures/kenny/Dark/texture_06.png create mode 100644 Assets/Textures/kenny/Dark/texture_06.png.import create mode 100644 Assets/Textures/kenny/Dark/texture_07.png create mode 100644 Assets/Textures/kenny/Dark/texture_07.png.import create mode 100644 Assets/Textures/kenny/Dark/texture_08.png create mode 100644 Assets/Textures/kenny/Dark/texture_08.png.import create mode 100644 Assets/Textures/kenny/Dark/texture_09.png create mode 100644 Assets/Textures/kenny/Dark/texture_09.png.import create mode 100644 Assets/Textures/kenny/Dark/texture_10.png create mode 100644 Assets/Textures/kenny/Dark/texture_10.png.import create mode 100644 Assets/Textures/kenny/Dark/texture_11.png create mode 100644 Assets/Textures/kenny/Dark/texture_11.png.import create mode 100644 Assets/Textures/kenny/Dark/texture_12.png create mode 100644 Assets/Textures/kenny/Dark/texture_12.png.import create mode 100644 Assets/Textures/kenny/Dark/texture_13.png create mode 100644 Assets/Textures/kenny/Dark/texture_13.png.import create mode 100644 Assets/Textures/kenny/Green/texture_01.png create mode 100644 Assets/Textures/kenny/Green/texture_01.png.import create mode 100644 Assets/Textures/kenny/Green/texture_02.png create mode 100644 Assets/Textures/kenny/Green/texture_02.png.import create mode 100644 Assets/Textures/kenny/Green/texture_03.png create mode 100644 Assets/Textures/kenny/Green/texture_03.png.import create mode 100644 Assets/Textures/kenny/Green/texture_04.png create mode 100644 Assets/Textures/kenny/Green/texture_04.png.import create mode 100644 Assets/Textures/kenny/Green/texture_05.png create mode 100644 Assets/Textures/kenny/Green/texture_05.png.import create mode 100644 Assets/Textures/kenny/Green/texture_06.png create mode 100644 Assets/Textures/kenny/Green/texture_06.png.import create mode 100644 Assets/Textures/kenny/Green/texture_07.png create mode 100644 Assets/Textures/kenny/Green/texture_07.png.import create mode 100644 Assets/Textures/kenny/Green/texture_08.png create mode 100644 Assets/Textures/kenny/Green/texture_08.png.import create mode 100644 Assets/Textures/kenny/Green/texture_09.png create mode 100644 Assets/Textures/kenny/Green/texture_09.png.import create mode 100644 Assets/Textures/kenny/Green/texture_10.png create mode 100644 Assets/Textures/kenny/Green/texture_10.png.import create mode 100644 Assets/Textures/kenny/Green/texture_11.png create mode 100644 Assets/Textures/kenny/Green/texture_11.png.import create mode 100644 Assets/Textures/kenny/Green/texture_12.png create mode 100644 Assets/Textures/kenny/Green/texture_12.png.import create mode 100644 Assets/Textures/kenny/Green/texture_13.png create mode 100644 Assets/Textures/kenny/Green/texture_13.png.import create mode 100644 Assets/Textures/kenny/Light/texture_01.png create mode 100644 Assets/Textures/kenny/Light/texture_01.png.import create mode 100644 Assets/Textures/kenny/Light/texture_02.png create mode 100644 Assets/Textures/kenny/Light/texture_02.png.import create mode 100644 Assets/Textures/kenny/Light/texture_03.png create mode 100644 Assets/Textures/kenny/Light/texture_03.png.import create mode 100644 Assets/Textures/kenny/Light/texture_04.png create mode 100644 Assets/Textures/kenny/Light/texture_04.png.import create mode 100644 Assets/Textures/kenny/Light/texture_05.png create mode 100644 Assets/Textures/kenny/Light/texture_05.png.import create mode 100644 Assets/Textures/kenny/Light/texture_06.png create mode 100644 Assets/Textures/kenny/Light/texture_06.png.import create mode 100644 Assets/Textures/kenny/Light/texture_07.png create mode 100644 Assets/Textures/kenny/Light/texture_07.png.import create mode 100644 Assets/Textures/kenny/Light/texture_08.png create mode 100644 Assets/Textures/kenny/Light/texture_08.png.import create mode 100644 Assets/Textures/kenny/Light/texture_09.png create mode 100644 Assets/Textures/kenny/Light/texture_09.png.import create mode 100644 Assets/Textures/kenny/Light/texture_10.png create mode 100644 Assets/Textures/kenny/Light/texture_10.png.import create mode 100644 Assets/Textures/kenny/Light/texture_11.png create mode 100644 Assets/Textures/kenny/Light/texture_11.png.import create mode 100644 Assets/Textures/kenny/Light/texture_12.png create mode 100644 Assets/Textures/kenny/Light/texture_12.png.import create mode 100644 Assets/Textures/kenny/Light/texture_13.png create mode 100644 Assets/Textures/kenny/Light/texture_13.png.import create mode 100644 Assets/Textures/kenny/Orange/texture_01.png create mode 100644 Assets/Textures/kenny/Orange/texture_01.png.import create mode 100644 Assets/Textures/kenny/Orange/texture_02.png create mode 100644 Assets/Textures/kenny/Orange/texture_02.png.import create mode 100644 Assets/Textures/kenny/Orange/texture_03.png create mode 100644 Assets/Textures/kenny/Orange/texture_03.png.import create mode 100644 Assets/Textures/kenny/Orange/texture_04.png create mode 100644 Assets/Textures/kenny/Orange/texture_04.png.import create mode 100644 Assets/Textures/kenny/Orange/texture_05.png create mode 100644 Assets/Textures/kenny/Orange/texture_05.png.import create mode 100644 Assets/Textures/kenny/Orange/texture_06.png create mode 100644 Assets/Textures/kenny/Orange/texture_06.png.import create mode 100644 Assets/Textures/kenny/Orange/texture_07.png create mode 100644 Assets/Textures/kenny/Orange/texture_07.png.import create mode 100644 Assets/Textures/kenny/Orange/texture_08.png create mode 100644 Assets/Textures/kenny/Orange/texture_08.png.import create mode 100644 Assets/Textures/kenny/Orange/texture_09.png create mode 100644 Assets/Textures/kenny/Orange/texture_09.png.import create mode 100644 Assets/Textures/kenny/Orange/texture_10.png create mode 100644 Assets/Textures/kenny/Orange/texture_10.png.import create mode 100644 Assets/Textures/kenny/Orange/texture_11.png create mode 100644 Assets/Textures/kenny/Orange/texture_11.png.import create mode 100644 Assets/Textures/kenny/Orange/texture_12.png create mode 100644 Assets/Textures/kenny/Orange/texture_12.png.import create mode 100644 Assets/Textures/kenny/Orange/texture_13.png create mode 100644 Assets/Textures/kenny/Orange/texture_13.png.import create mode 100644 Assets/Textures/kenny/Purple/texture_01.png create mode 100644 Assets/Textures/kenny/Purple/texture_01.png.import create mode 100644 Assets/Textures/kenny/Purple/texture_02.png create mode 100644 Assets/Textures/kenny/Purple/texture_02.png.import create mode 100644 Assets/Textures/kenny/Purple/texture_03.png create mode 100644 Assets/Textures/kenny/Purple/texture_03.png.import create mode 100644 Assets/Textures/kenny/Purple/texture_04.png create mode 100644 Assets/Textures/kenny/Purple/texture_04.png.import create mode 100644 Assets/Textures/kenny/Purple/texture_05.png create mode 100644 Assets/Textures/kenny/Purple/texture_05.png.import create mode 100644 Assets/Textures/kenny/Purple/texture_06.png create mode 100644 Assets/Textures/kenny/Purple/texture_06.png.import create mode 100644 Assets/Textures/kenny/Purple/texture_07.png create mode 100644 Assets/Textures/kenny/Purple/texture_07.png.import create mode 100644 Assets/Textures/kenny/Purple/texture_08.png create mode 100644 Assets/Textures/kenny/Purple/texture_08.png.import create mode 100644 Assets/Textures/kenny/Purple/texture_09.png create mode 100644 Assets/Textures/kenny/Purple/texture_09.png.import create mode 100644 Assets/Textures/kenny/Purple/texture_10.png create mode 100644 Assets/Textures/kenny/Purple/texture_10.png.import create mode 100644 Assets/Textures/kenny/Purple/texture_11.png create mode 100644 Assets/Textures/kenny/Purple/texture_11.png.import create mode 100644 Assets/Textures/kenny/Purple/texture_12.png create mode 100644 Assets/Textures/kenny/Purple/texture_12.png.import create mode 100644 Assets/Textures/kenny/Purple/texture_13.png create mode 100644 Assets/Textures/kenny/Purple/texture_13.png.import create mode 100644 Assets/Textures/kenny/Red/texture_01.png create mode 100644 Assets/Textures/kenny/Red/texture_01.png.import create mode 100644 Assets/Textures/kenny/Red/texture_02.png create mode 100644 Assets/Textures/kenny/Red/texture_02.png.import create mode 100644 Assets/Textures/kenny/Red/texture_03.png create mode 100644 Assets/Textures/kenny/Red/texture_03.png.import create mode 100644 Assets/Textures/kenny/Red/texture_04.png create mode 100644 Assets/Textures/kenny/Red/texture_04.png.import create mode 100644 Assets/Textures/kenny/Red/texture_05.png create mode 100644 Assets/Textures/kenny/Red/texture_05.png.import create mode 100644 Assets/Textures/kenny/Red/texture_06.png create mode 100644 Assets/Textures/kenny/Red/texture_06.png.import create mode 100644 Assets/Textures/kenny/Red/texture_07.png create mode 100644 Assets/Textures/kenny/Red/texture_07.png.import create mode 100644 Assets/Textures/kenny/Red/texture_08.png create mode 100644 Assets/Textures/kenny/Red/texture_08.png.import create mode 100644 Assets/Textures/kenny/Red/texture_09.png create mode 100644 Assets/Textures/kenny/Red/texture_09.png.import create mode 100644 Assets/Textures/kenny/Red/texture_10.png create mode 100644 Assets/Textures/kenny/Red/texture_10.png.import create mode 100644 Assets/Textures/kenny/Red/texture_11.png create mode 100644 Assets/Textures/kenny/Red/texture_11.png.import create mode 100644 Assets/Textures/kenny/Red/texture_12.png create mode 100644 Assets/Textures/kenny/Red/texture_12.png.import create mode 100644 Assets/Textures/kenny/Red/texture_13.png create mode 100644 Assets/Textures/kenny/Red/texture_13.png.import create mode 100644 Assets/Themes/theme.tres create mode 100644 LICENSE create mode 100644 Scenes/Chat/ChatMenu.tscn create mode 100644 Scenes/Items/goblet.tscn create mode 100644 Scenes/Lobby.tscn create mode 100644 Scenes/Menu/InventoryMenu.tscn create mode 100644 Scenes/Menu/InventoryUiItem.tscn create mode 100644 Scenes/Menu/LobbyMenu.tscn create mode 100644 Scenes/Mobs/character.tscn create mode 100644 Scenes/Server/Server.tscn create mode 100644 Scenes/Server/ServerLobby.tscn create mode 100644 Scenes/quality-godot-first-person-2-main/.gitattributes create mode 100644 Scenes/quality-godot-first-person-2-main/.gitignore create mode 100644 Scenes/quality-godot-first-person-2-main/LICENSE create mode 100644 Scenes/quality-godot-first-person-2-main/README.md create mode 100644 Scenes/quality-godot-first-person-2-main/addons/fpc/EditorModule.gd create mode 100644 Scenes/quality-godot-first-person-2-main/addons/fpc/character.gd create mode 100644 Scenes/quality-godot-first-person-2-main/addons/fpc/character.tscn create mode 100644 Scenes/quality-godot-first-person-2-main/addons/fpc/debug.gd create mode 100644 Scenes/quality-godot-first-person-2-main/addons/fpc/reticles/reticle_0.tscn create mode 100644 Scenes/quality-godot-first-person-2-main/addons/fpc/reticles/reticle_1.tscn create mode 100644 Scenes/quality-godot-first-person-2-main/icon.svg create mode 100644 Scenes/quality-godot-first-person-2-main/icon.svg.import create mode 100644 Scenes/quality-godot-first-person-2-main/project.godot create mode 100644 Scenes/quality-godot-first-person-2-main/test_world.tscn create mode 100644 Scenes/quality-godot-first-person-2-main/textures/dark.png create mode 100644 Scenes/quality-godot-first-person-2-main/textures/dark.png.import create mode 100644 Scenes/quality-godot-first-person-2-main/textures/green.png create mode 100644 Scenes/quality-godot-first-person-2-main/textures/green.png.import create mode 100644 Scenes/quality-godot-first-person-2-main/textures/orange.png create mode 100644 Scenes/quality-godot-first-person-2-main/textures/orange.png.import create mode 100644 Scenes/quality-godot-first-person-2-main/textures/purple.png create mode 100644 Scenes/quality-godot-first-person-2-main/textures/purple.png.import create mode 100644 Scenes/quality-godot-first-person-2-main/textures/red.png create mode 100644 Scenes/quality-godot-first-person-2-main/textures/red.png.import create mode 100644 Scenes/reticles/reticle_0.tscn create mode 100644 Scenes/reticles/reticle_1.tscn create mode 100644 Scenes/town.tscn create mode 100644 Scenes/world.tscn create mode 100644 Scripts/Chat/chat_menu.gd create mode 100644 Scripts/Chat/chat_menu.gd.uid create mode 100644 Scripts/Items/goblet.gd create mode 100644 Scripts/Items/goblet.gd.uid create mode 100644 Scripts/Items/interactable.gd create mode 100644 Scripts/Items/interactable.gd.uid create mode 100644 Scripts/Level/level.gd create mode 100644 Scripts/Level/level.gd.uid create mode 100644 Scripts/Level/lobby.gd create mode 100644 Scripts/Level/lobby.gd.uid create mode 100644 Scripts/Menu/inventory_menu.gd create mode 100644 Scripts/Menu/inventory_menu.gd.uid create mode 100644 Scripts/Menu/inventory_ui_item.gd create mode 100644 Scripts/Menu/inventory_ui_item.gd.uid create mode 100644 Scripts/Menu/lobby_menu.gd create mode 100644 Scripts/Menu/lobby_menu.gd.uid create mode 100644 Scripts/Resources/inventory.gd create mode 100644 Scripts/Resources/inventory.gd.uid create mode 100644 Scripts/Resources/item.gd create mode 100644 Scripts/Resources/item.gd.uid create mode 100644 Scripts/Server/player_data.gd create mode 100644 Scripts/Server/player_data.gd.uid create mode 100644 Scripts/Server/server.gd create mode 100644 Scripts/Server/server.gd.uid create mode 100644 Scripts/Server/server_lobby.gd create mode 100644 Scripts/Server/server_lobby.gd.uid create mode 100644 Scripts/fpc/EditorModule.gd create mode 100644 Scripts/fpc/EditorModule.gd.uid create mode 100644 Scripts/fpc/character.gd create mode 100644 Scripts/fpc/character.gd.uid create mode 100644 Scripts/fpc/debug.gd create mode 100644 Scripts/fpc/debug.gd.uid create mode 100644 Scripts/global.gd create mode 100644 Scripts/global.gd.uid create mode 100644 Scripts/world.gd create mode 100644 Scripts/world.gd.uid create mode 100644 addons/godotsteam/godotsteam.gdextension create mode 100644 addons/godotsteam/godotsteam.gdextension.uid create mode 100644 addons/godotsteam/linux32/libgodotsteam.linux.template_debug.x86_32.so create mode 100644 addons/godotsteam/linux32/libgodotsteam.linux.template_release.x86_32.so create mode 100644 addons/godotsteam/linux32/libsteam_api.so create mode 100644 addons/godotsteam/linux64/libgodotsteam.linux.template_debug.x86_64.so create mode 100644 addons/godotsteam/linux64/libgodotsteam.linux.template_release.x86_64.so create mode 100644 addons/godotsteam/linux64/libsteam_api.so create mode 100644 addons/godotsteam/osx/libgodotsteam.macos.template_debug.framework/Resources/Info.plist create mode 100644 addons/godotsteam/osx/libgodotsteam.macos.template_debug.framework/libgodotsteam.macos.template_debug create mode 100644 addons/godotsteam/osx/libgodotsteam.macos.template_debug.framework/libsteam_api.dylib create mode 100644 addons/godotsteam/osx/libgodotsteam.macos.template_release.framework/Resources/Info.plist create mode 100644 addons/godotsteam/osx/libgodotsteam.macos.template_release.framework/libgodotsteam.macos.template_release create mode 100644 addons/godotsteam/osx/libgodotsteam.macos.template_release.framework/libsteam_api.dylib create mode 100644 addons/godotsteam/osx/libsteam_api.dylib create mode 100644 addons/godotsteam/win32/libgodotsteam.windows.template_debug.x86_32.dll create mode 100644 addons/godotsteam/win32/libgodotsteam.windows.template_release.x86_32.dll create mode 100644 addons/godotsteam/win32/steam_api.dll create mode 100644 addons/godotsteam/win64/libgodotsteam.windows.template_debug.x86_64.dll create mode 100644 addons/godotsteam/win64/libgodotsteam.windows.template_release.x86_64.dll create mode 100644 addons/godotsteam/win64/steam_api64.dll create mode 100644 addons/godotsteam/win64/~libgodotsteam.windows.template_debug.x86_64.dll create mode 100644 addons/steam-multiplayer-peer/.gitignore create mode 100644 addons/steam-multiplayer-peer/LICENSE create mode 100644 addons/steam-multiplayer-peer/README.md create mode 100644 addons/steam-multiplayer-peer/linux/.gitkeep create mode 100644 addons/steam-multiplayer-peer/linux/libsteam-multiplayer-peer.linux.template_debug.double.x86_64.so create mode 100644 addons/steam-multiplayer-peer/linux/libsteam-multiplayer-peer.linux.template_debug.x86_64.so create mode 100644 addons/steam-multiplayer-peer/linux/libsteam-multiplayer-peer.linux.template_release.double.x86_64.so create mode 100644 addons/steam-multiplayer-peer/linux/libsteam-multiplayer-peer.linux.template_release.x86_64.so create mode 100644 addons/steam-multiplayer-peer/linux/libsteam_api.so create mode 100644 addons/steam-multiplayer-peer/macos/libsteam-multiplayer-peer.macos.template_debug.double.universal.dylib create mode 100644 addons/steam-multiplayer-peer/macos/libsteam-multiplayer-peer.macos.template_debug.universal.dylib create mode 100644 addons/steam-multiplayer-peer/macos/libsteam-multiplayer-peer.macos.template_release.double.universal.dylib create mode 100644 addons/steam-multiplayer-peer/macos/libsteam-multiplayer-peer.macos.template_release.universal.dylib create mode 100644 addons/steam-multiplayer-peer/macos/libsteam_api.dylib create mode 100644 addons/steam-multiplayer-peer/steam-multiplayer-peer.gdextension create mode 100644 addons/steam-multiplayer-peer/steam-multiplayer-peer.gdextension.uid create mode 100644 addons/steam-multiplayer-peer/windows/.gitkeep create mode 100644 addons/steam-multiplayer-peer/windows/steam-multiplayer-peer.windows.template_debug.double.x86_64.dll create mode 100644 addons/steam-multiplayer-peer/windows/steam-multiplayer-peer.windows.template_debug.x86_64.dll create mode 100644 addons/steam-multiplayer-peer/windows/steam-multiplayer-peer.windows.template_release.double.x86_64.dll create mode 100644 addons/steam-multiplayer-peer/windows/steam-multiplayer-peer.windows.template_release.x86_64.dll create mode 100644 addons/steam-multiplayer-peer/windows/steam_api.dll create mode 100644 addons/steam-multiplayer-peer/windows/steam_api64.dll create mode 100644 project.godot create mode 100644 quality-godot-first-person-2-2.6.1/.gitattributes create mode 100644 quality-godot-first-person-2-2.6.1/.gitignore create mode 100644 quality-godot-first-person-2-2.6.1/LICENSE create mode 100644 quality-godot-first-person-2-2.6.1/README.md create mode 100644 quality-godot-first-person-2-2.6.1/addons/fpc/EditorModule.gd create mode 100644 quality-godot-first-person-2-2.6.1/addons/fpc/character.gd create mode 100644 quality-godot-first-person-2-2.6.1/addons/fpc/character.tscn create mode 100644 quality-godot-first-person-2-2.6.1/addons/fpc/debug.gd create mode 100644 quality-godot-first-person-2-2.6.1/addons/fpc/reticles/reticle_0.tscn create mode 100644 quality-godot-first-person-2-2.6.1/addons/fpc/reticles/reticle_1.tscn create mode 100644 quality-godot-first-person-2-2.6.1/icon.svg create mode 100644 quality-godot-first-person-2-2.6.1/icon.svg.import create mode 100644 quality-godot-first-person-2-2.6.1/project.godot create mode 100644 quality-godot-first-person-2-2.6.1/test_world.tscn create mode 100644 quality-godot-first-person-2-2.6.1/textures/dark.png create mode 100644 quality-godot-first-person-2-2.6.1/textures/dark.png.import create mode 100644 quality-godot-first-person-2-2.6.1/textures/green.png create mode 100644 quality-godot-first-person-2-2.6.1/textures/green.png.import create mode 100644 quality-godot-first-person-2-2.6.1/textures/orange.png create mode 100644 quality-godot-first-person-2-2.6.1/textures/orange.png.import create mode 100644 quality-godot-first-person-2-2.6.1/textures/purple.png create mode 100644 quality-godot-first-person-2-2.6.1/textures/purple.png.import create mode 100644 quality-godot-first-person-2-2.6.1/textures/red.png create mode 100644 quality-godot-first-person-2-2.6.1/textures/red.png.import create mode 100644 quality-godot-first-person-2-main/.gitattributes create mode 100644 quality-godot-first-person-2-main/.gitignore create mode 100644 quality-godot-first-person-2-main/LICENSE create mode 100644 quality-godot-first-person-2-main/README.md create mode 100644 quality-godot-first-person-2-main/addons/fpc/EditorModule.gd create mode 100644 quality-godot-first-person-2-main/addons/fpc/character.gd create mode 100644 quality-godot-first-person-2-main/addons/fpc/character.tscn create mode 100644 quality-godot-first-person-2-main/addons/fpc/debug.gd create mode 100644 quality-godot-first-person-2-main/addons/fpc/reticles/reticle_0.tscn create mode 100644 quality-godot-first-person-2-main/addons/fpc/reticles/reticle_1.tscn create mode 100644 quality-godot-first-person-2-main/icon.svg create mode 100644 quality-godot-first-person-2-main/icon.svg.import create mode 100644 quality-godot-first-person-2-main/project.godot create mode 100644 quality-godot-first-person-2-main/test_world.tscn create mode 100644 quality-godot-first-person-2-main/textures/dark.png create mode 100644 quality-godot-first-person-2-main/textures/dark.png.import create mode 100644 quality-godot-first-person-2-main/textures/green.png create mode 100644 quality-godot-first-person-2-main/textures/green.png.import create mode 100644 quality-godot-first-person-2-main/textures/orange.png create mode 100644 quality-godot-first-person-2-main/textures/orange.png.import create mode 100644 quality-godot-first-person-2-main/textures/purple.png create mode 100644 quality-godot-first-person-2-main/textures/purple.png.import create mode 100644 quality-godot-first-person-2-main/textures/red.png create mode 100644 quality-godot-first-person-2-main/textures/red.png.import create mode 100644 steam_appid.txt diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6248c16bd3d81ba885700f2e147510621a4d3ad5 GIT binary patch literal 6148 zcmeHKK~BRk5FCf93Lr#}T#)jDNc?;*{P% z2<=MiaqQW(J*l!a05g4ATmTaQFH~YZi5C(tOwlJAny@!+%tDg z&&gl1w<~{lFELi+%1%alw`gS#AA~jV&6;K6!TmjZ>vG~}bwyJ- i$ChGpr4*mht#Le&4l(oCI^+mV{|Hzav{40qRe>+eCwtNW literal 0 HcmV?d00001 diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f28239b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,4 @@ +root = true + +[*] +charset = utf-8 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0af181c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Godot 4+ specific ignores +.godot/ +/android/ diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..ae13eeb --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "godotTools.editorPath.godot4": "c:\\Users\\user\\Desktop\\Godot_v4.4.1-stable_win64.exe\\Godot_v4.4.1-stable_win64.exe" +} \ No newline at end of file diff --git a/Assets/Shaders/outline.gdshader b/Assets/Shaders/outline.gdshader new file mode 100644 index 0000000..6d9b0be --- /dev/null +++ b/Assets/Shaders/outline.gdshader @@ -0,0 +1,112 @@ +shader_type spatial; +render_mode unshaded; + +/* + Normal/Depth outline shader. Apply to nodes as a next pass shader texture. + Inspired by Yui Kinomoto @arlez80, lukky_nl (YT), Robin Seibold (YT) + Uses Sobel Edge detection on a normal and depth texture + Written by William Li (LoudFlameLava) + + MIT License +*/ + +// Might create an outline at the edge of the viewport + +uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, filter_linear_mipmap; +uniform sampler2D DEPTH_TEXTURE : hint_depth_texture, filter_linear_mipmap; +uniform sampler2D NORMAL_TEXTURE : hint_normal_roughness_texture, filter_linear_mipmap; + +uniform float normal_threshold = 0.1; +uniform float depth_threshold = 0.05; +uniform float depth_artifact_correction_coef = 2; +uniform vec3 outline_color: source_color; + +const mat3 sobel_y = mat3( + vec3(1.0, 0.0, -1.0), + vec3(2.0, 0.0, -2.0), + vec3(1.0, 0.0, -1.0) +); + +const mat3 sobel_x = mat3( + vec3(1.0, 2.0, 1.0), + vec3(0.0, 0.0, 0.0), + vec3(-1.0, -2.0, -1.0) +); + +float edge_value_normal(sampler2D normal_tex, vec2 uv, vec2 pixel_size, mat3 sobel) { + float output = 0.0; + vec3 normal = texture(normal_tex, uv).rgb; + vec3 n = texture(NORMAL_TEXTURE, uv + vec2(0.0, -pixel_size.y)).rgb; + vec3 s = texture(NORMAL_TEXTURE, uv + vec2(0.0, pixel_size.y)).rgb; + vec3 e = texture(NORMAL_TEXTURE, uv + vec2(pixel_size.x, 0.0)).rgb; + vec3 w = texture(NORMAL_TEXTURE, uv + vec2(-pixel_size.x, 0.0)).rgb; + vec3 nw = texture(NORMAL_TEXTURE, uv + vec2(-pixel_size.x, -pixel_size.y)).rgb; + vec3 ne = texture(NORMAL_TEXTURE, uv + vec2(pixel_size.x, -pixel_size.y)).rgb; + vec3 sw = texture(NORMAL_TEXTURE, uv + vec2(-pixel_size.x, pixel_size.y)).rgb; + vec3 se = texture(NORMAL_TEXTURE, uv + vec2(pixel_size.x, pixel_size.y)).rgb; + + mat3 error_mat = mat3( + vec3(length(normal - nw), length(normal - n), length(normal - ne)), + vec3(length(normal - w), 0.0, length(normal - e)), + vec3(length(normal - sw), length(normal - s), length(normal - se)) + ); + + output += dot(sobel[0], error_mat[0]); + output += dot(sobel[1], error_mat[1]); + output += dot(sobel[2], error_mat[2]); + return abs(output); +} + +float get_depth(sampler2D depth_tex, vec2 uv, mat4 inv_projection_matrix) { + float depth_raw = texture(depth_tex, uv).x; + vec3 ndc = vec3(uv * 2.0 - 1.0, depth_raw); + vec4 view = inv_projection_matrix * vec4(ndc, 1.0); + view.xyz /= view.w; + float depth_linear = -view.z; + return depth_linear; +} + +float edge_value_depth(sampler2D depth_tex, vec2 uv, vec2 pixel_size, mat3 sobel, mat4 inv_projection_matrix){ + float output = 0.0; + float depth = get_depth(depth_tex, uv, inv_projection_matrix); + float n = get_depth(depth_tex, uv + vec2(0.0, -pixel_size.y), inv_projection_matrix); + float s = get_depth(depth_tex, uv + vec2(0.0, pixel_size.y), inv_projection_matrix); + float e = get_depth(depth_tex, uv + vec2(pixel_size.x, 0.0), inv_projection_matrix); + float w = get_depth(depth_tex, uv + vec2(-pixel_size.x, 0.0), inv_projection_matrix); + float ne = get_depth(depth_tex, uv + vec2(pixel_size.x, -pixel_size.y), inv_projection_matrix); + float nw = get_depth(depth_tex, uv + vec2(-pixel_size.x, -pixel_size.y), inv_projection_matrix); + float se = get_depth(depth_tex, uv + vec2(pixel_size.x, pixel_size.y), inv_projection_matrix); + float sw = get_depth(depth_tex, uv + vec2(-pixel_size.x, pixel_size.y), inv_projection_matrix); + + mat3 error_mat = mat3( + vec3((depth - nw)/depth, (depth - n)/depth, (depth - ne)/depth), + vec3((depth - w)/depth, 0.0, (depth - e)/depth), + vec3((depth - sw)/depth, (depth - s)/depth, (depth - se)/depth) + ); + + output += dot(sobel[0], error_mat[0]); + output += dot(sobel[1], error_mat[1]); + output += dot(sobel[2], error_mat[2]); + return abs(output); +} + + +void fragment() { + float has_outline = 0.0; + vec2 pixel_size = vec2(1.0) / VIEWPORT_SIZE; + ALBEDO = texture(SCREEN_TEXTURE, SCREEN_UV).xyz; + //ALBEDO = vec3(get_depth(DEPTH_TEXTURE, SCREEN_UV, INV_PROJECTION_MATRIX)); + if (edge_value_normal(NORMAL_TEXTURE, SCREEN_UV, pixel_size, sobel_x) + edge_value_normal(NORMAL_TEXTURE, SCREEN_UV, pixel_size, sobel_y) > normal_threshold){ + ALBEDO = outline_color; + has_outline += 1.0; + } + vec3 normal = texture(NORMAL_TEXTURE, SCREEN_UV).rgb; + float angle = 1.0 - dot(normalize(normal-vec3(0.5)), vec3(0.0,0.0,1.0)); + if (edge_value_depth(DEPTH_TEXTURE, SCREEN_UV, pixel_size, sobel_x, INV_PROJECTION_MATRIX) + edge_value_depth(DEPTH_TEXTURE, SCREEN_UV, pixel_size, sobel_y, INV_PROJECTION_MATRIX) > depth_threshold + angle * depth_artifact_correction_coef){ + ALBEDO = outline_color; + has_outline += 1.0; + } + if (has_outline < 0.1){ + ALPHA = 0.0; + } +} diff --git a/Assets/Shaders/outline.gdshader.uid b/Assets/Shaders/outline.gdshader.uid new file mode 100644 index 0000000..8dc51d4 --- /dev/null +++ b/Assets/Shaders/outline.gdshader.uid @@ -0,0 +1 @@ +uid://c0chn7ll6p7yk diff --git a/Assets/Textures/black_board.png b/Assets/Textures/black_board.png new file mode 100644 index 0000000000000000000000000000000000000000..e063f8a7e576810c83024507403e767b364b3896 GIT binary patch literal 16290 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�jK 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/black_board.png.import b/Assets/Textures/black_board.png.import new file mode 100644 index 0000000..c5d6778 --- /dev/null +++ b/Assets/Textures/black_board.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ct5kq6psirv1" +path="res://.godot/imported/black_board.png-d2b5afa20c384e2e4b3e7a80827129fd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/black_board.png" +dest_files=["res://.godot/imported/black_board.png-d2b5afa20c384e2e4b3e7a80827129fd.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Dark/texture_01.png b/Assets/Textures/kenny/Dark/texture_01.png new file mode 100644 index 0000000000000000000000000000000000000000..69be2111ccdf84505de4f29ccf49925419687a21 GIT binary patch literal 2774 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5UnsyQ z#5FQ9Iy*ZzIy%?SW>G0y07%hb7@#gx81K zSnK+f_xa2gjAWQGss$JV8@L;GA1&IpmGj*GP2aaO&KV69GDF}7>wz~Lr#$$*tL)#2 zd-vH2n8-9|gljWn`rz@3VS;Rf@B{u49u(wze>TGm+i5~I@z>AE-~4@>!H;~CM!3#5 zOb_xl&dJSf`n>+l-&_Xu5gr`md%uj)pjt=u$G&xQ?MJH_vV*aqm%(O|RlR}lA(4rz Rz3za_@pScbS?83{1OOF$a6JG3 literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Dark/texture_01.png.import b/Assets/Textures/kenny/Dark/texture_01.png.import new file mode 100644 index 0000000..3a72ae1 --- /dev/null +++ b/Assets/Textures/kenny/Dark/texture_01.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bvarfgw4r5181" +path.s3tc="res://.godot/imported/texture_01.png-6071662e99660834e61c6b1e09bbab86.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://Assets/Textures/kenny/Dark/texture_01.png" +dest_files=["res://.godot/imported/texture_01.png-6071662e99660834e61c6b1e09bbab86.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/kenny/Dark/texture_02.png b/Assets/Textures/kenny/Dark/texture_02.png new file mode 100644 index 0000000000000000000000000000000000000000..6fb471b66da8e1a04293df9aa244cf0c8e52641d GIT binary patch literal 1338 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7?_xW6jSkG0T3_U(btiIVPik{pF~z5pEJNG z#C5`iiSF*6#>S>w*BPb*)!gxPaSW-r_4e{X!3G5$SI1Wixn_F^PfMFR?SP_{%jWl| z8fQK=Ug!G!{CReu5rYQ=FeuEL9(Ul*pQhsP;)BOoK$rM499fk7q$?%=em>)1a@YbU z2NV6h4eRHFlE`2I4MGeTZMX-EYryUhWmr`ClJ(44eT(w?K^1`?SR8b$+}3$~`}S9C qP=%NlgUjbj+&_L<4klNvD5zuRE$b_Z+ah2La+jy8pUXO@geCwQHcT@B literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Dark/texture_02.png.import b/Assets/Textures/kenny/Dark/texture_02.png.import new file mode 100644 index 0000000..107ec0a --- /dev/null +++ b/Assets/Textures/kenny/Dark/texture_02.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://youvyib1feqp" +path.s3tc="res://.godot/imported/texture_02.png-50bb9d4d4ebbae05fd29423b1eebdf02.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://Assets/Textures/kenny/Dark/texture_02.png" +dest_files=["res://.godot/imported/texture_02.png-50bb9d4d4ebbae05fd29423b1eebdf02.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/kenny/Dark/texture_03.png b/Assets/Textures/kenny/Dark/texture_03.png new file mode 100644 index 0000000000000000000000000000000000000000..3f8b186b7fedf3898b1eb3358201df3f51eb8066 GIT binary patch literal 2727 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5pFhAS z#C7rFB{OHv`v3pGySt~cvFU87PFDs7E@w{{$B>F!Z?8M@wgd>c9CTw6+hE{vV85D6 zf#jvH@BSOi_DVmw^wlHv4E7H-um64j{rSZ{d7zP_fYcC3kZxG1_j2ETrU+7Xj;e=- zzzybvRo=VaZ)Xr24H7a#;2Xn?SCiiT)@=Zl3!{Lv5NOC{IF~Pb@BdF*1_qa-kqq1q z{1>bz&4^LekPv9FWmvXr$?rPu1jf-IAuj|H_(v-g@3{$={ XeX-K{pTTh>5@dv@tDnm{r-UW|PXu2= literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Dark/texture_03.png.import b/Assets/Textures/kenny/Dark/texture_03.png.import new file mode 100644 index 0000000..5d942fa --- /dev/null +++ b/Assets/Textures/kenny/Dark/texture_03.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dtr5bvxymd50e" +path="res://.godot/imported/texture_03.png-09f6510aeb06a66b61241151fd45cc12.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Dark/texture_03.png" +dest_files=["res://.godot/imported/texture_03.png-09f6510aeb06a66b61241151fd45cc12.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Dark/texture_04.png b/Assets/Textures/kenny/Dark/texture_04.png new file mode 100644 index 0000000000000000000000000000000000000000..e2bc22b18acff00543fbe7f82da5129ebfcd09c9 GIT binary patch literal 13212 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 WetP@}`12a{>dSAw^wVF`Kl)#B_>q(V literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Dark/texture_04.png.import b/Assets/Textures/kenny/Dark/texture_04.png.import new file mode 100644 index 0000000..d695f31 --- /dev/null +++ b/Assets/Textures/kenny/Dark/texture_04.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://gebarmhhtmbt" +path="res://.godot/imported/texture_04.png-778404077545d0988503bb93ed90a85c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Dark/texture_04.png" +dest_files=["res://.godot/imported/texture_04.png-778404077545d0988503bb93ed90a85c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Dark/texture_05.png b/Assets/Textures/kenny/Dark/texture_05.png new file mode 100644 index 0000000000000000000000000000000000000000..3fd2e56308b236e09bc4e6060c681a3d0edb8893 GIT binary patch literal 19065 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 CTJEp_ literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Dark/texture_06.png.import b/Assets/Textures/kenny/Dark/texture_06.png.import new file mode 100644 index 0000000..bbe7174 --- /dev/null +++ b/Assets/Textures/kenny/Dark/texture_06.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://carepjxbifxnk" +path="res://.godot/imported/texture_06.png-2b3f2645aa79305efcc877465d8ddcb1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Dark/texture_06.png" +dest_files=["res://.godot/imported/texture_06.png-2b3f2645aa79305efcc877465d8ddcb1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Dark/texture_07.png b/Assets/Textures/kenny/Dark/texture_07.png new file mode 100644 index 0000000000000000000000000000000000000000..adf5e6fc67d0660e30eb7b5ba22bf238ba8fd74f GIT binary patch literal 2743 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5pFhAS z#5FuTB04(u|NsBS#-_Tu`d^xJ6&M(}f<0XvLn>~)z2?Y!#DRy!G1#DWu>jY@{+A9v z1fzr13|@uWZmZM#bxL>%b4B`hp7(#t_G|B!2bwtwNDYAm>4w{km;b(cQ%9=KQT4D8 zXs~6-WB2*Kd(&@5n9wLqY6yH|*dc3hcm26{?4;@(RSyh-8*B^G!w+Zwj(^9@(7^6< zkDa06_WT(y>%zlE)e-c@Ne6|3e z5LaDYePd(O=mm@l3=B+4o-U3d6}R4A*vQMkz`^ABJwD2P!J@@&A0EY>%)m0y)Cd)z4*}Q$iB}lFuX{ literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Dark/texture_08.png.import b/Assets/Textures/kenny/Dark/texture_08.png.import new file mode 100644 index 0000000..837ec38 --- /dev/null +++ b/Assets/Textures/kenny/Dark/texture_08.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bhy0xbgh23y4d" +path.s3tc="res://.godot/imported/texture_08.png-66ed16371ee09d695d3da92281e2484c.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://Assets/Textures/kenny/Dark/texture_08.png" +dest_files=["res://.godot/imported/texture_08.png-66ed16371ee09d695d3da92281e2484c.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/kenny/Dark/texture_09.png b/Assets/Textures/kenny/Dark/texture_09.png new file mode 100644 index 0000000000000000000000000000000000000000..57cc6073581c8483bec167a64627a05eed93426b GIT binary patch literal 2838 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5Un0OK z#8p#MTUAv}U0p**M^8gTOGQOhS6AQI*!0U*i%tdxu9coHjv*Dd-d=OeI^-bI@KC3y zRmRa@VTZ28gsq28$0^2gvsL|-bKqKAcB19`U-lUX_UNB{{iwaIV!h(IkLTysf4;Im zY+LmIe}eK$XWIpv_s6e{2HHFd1~vo|vKjKG-(iqj{)FM#3El+FfpraiZO;)rpqI5h zU+TcZEAMWYHN5)VzcQ2I>ht(x+ZcIHGJd(qc!N==k-knESlevMefb{DlRa>2EpNix zfpyBL?F?~D0w=XkzTOn?@J)Qd>3^JO{&9m!@=-9LA<(dvv0_dU^N!d_%n@FB48;TL z7&=?N!IhysXm|2uhO)rjwYM2oo!{T%%e=zw|BPE~7u4AeQrHvNH?T0#*--;&-G@82 xmJQiu4B6Yw8n%MkSEFD6L!g4w!81Kjb)H5F*DX-jG5>A)qOp$`#e3*>)yJ$zt`*MkK^mRopavj{W+g=&ev5#eJwto zO*{YqJ{@h1698~Qhg{$XPUx3*B`FL3%Sla74S=j@UZxE<034qTj~Qt$EiK)+5i>bC z+0f8HrBYwMe0k^)l0u=x$KQJLS$yLvT3U0vhTr%$1w7jklP!@@3UXlS;#w`XT(D=8@@Cf@V%@{W$a zQCC-2TU*!FMY6QCYH4ZF)6=)NcQ}9ke0h2K`}b{wgM-Dz#m2@asi~=HY0rFp{cyNs z6bkkD@e@l+%YuS}eZ4wY5Ed{DiZ!i;az~r{}qtn3%x8 zAU{7p6BE;jh)53)^tEf(9z1wZP*CXa?{8va^6FL2+}zyRv+inYhc8{aeDb7GX=!PF zeSLFt^Q%{{4jlM3CFQZQvPwcif}!E@ix;R#-^T)I4(cZsPp>d|6rfxpU`2LPC&8#b?i+XJ%$; zX=%H;ou$+1FJ8PTDJkjf?5wV?K6UCejYcyyJ#+i^ZAV8Z27__(AL%&8XA(5lb@QJx_I&8+qZ8YK78opc$hWME)eSy`E$o_^=fo$l`LsHiAAJNwqw){qd4m6i3$lP3=zlpPrvk&xKW zVzHW-kR>qDVD9zA+= z@7_I0NvZw&C9SP(o<4nAQ&TfG_NlLrEH5vgl9F=$`t^PLBnAcsjEqk8_V$X4@B8rK zgOt>PxVX4GckU`FDQjuzu-WY0yZ1;-A7t;q&H%6t=xC@J`FBn9_}z<}y}ufb|Hv3R z%Gg;jV;-=-Ae*jXCpRZ(H*R4^)zLV9V{gRvD?-;#7^xPXSdUO!yIqgVc&&QM5Bb$o ziVM?8ebdLzJNgP9z?1Gzeq3S-B%SwlR8FK$FBU-uf__)e%9^#H2pdD+wY7rRK0RHw z3$vtNJ=tk|pWxp4@IxqQQ37C%0A)dVA`j5UUoaVS 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Dark/texture_10.png.import b/Assets/Textures/kenny/Dark/texture_10.png.import new file mode 100644 index 0000000..b094f99 --- /dev/null +++ b/Assets/Textures/kenny/Dark/texture_10.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://beeg4qas2fsac" +path="res://.godot/imported/texture_10.png-ff641a8ee3894ad52a58711b2e06c0bf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Dark/texture_10.png" +dest_files=["res://.godot/imported/texture_10.png-ff641a8ee3894ad52a58711b2e06c0bf.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Dark/texture_11.png b/Assets/Textures/kenny/Dark/texture_11.png new file mode 100644 index 0000000000000000000000000000000000000000..424ba712ed8ad1f8058075f2fe85a9beebdf615f GIT binary patch literal 9048 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 J%(Eum{{asjf^q-= literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Dark/texture_12.png.import b/Assets/Textures/kenny/Dark/texture_12.png.import new file mode 100644 index 0000000..3a1e07f --- /dev/null +++ b/Assets/Textures/kenny/Dark/texture_12.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfh6mw4in04i4" +path="res://.godot/imported/texture_12.png-6e528b01bab6560b8cf1c4de1f66ee17.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Dark/texture_12.png" +dest_files=["res://.godot/imported/texture_12.png-6e528b01bab6560b8cf1c4de1f66ee17.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Dark/texture_13.png b/Assets/Textures/kenny/Dark/texture_13.png new file mode 100644 index 0000000000000000000000000000000000000000..13c43884ccec7829d4b6d695e89ffebc2e440e61 GIT binary patch literal 9867 zcmeHNcT|(vwm+fhC<5bH7#R?*Zy??u(^TnUC zwUFJYxDfy#YkA`6833e2ODXV`r08*i)L$xo^EIytgJAZOj}#KyLXdM zpSJ(`=i+D2o(~KRxVX4hRJ@#>o$cxAF)%P3A0HTMSEG&}AWHy`adef{%%@MR zy1M%J?|U9UesbuL-u(PL8jZ2Bu_F+wEG$k`RaNKY2c`?CefgSJzy;=y~FV)xyHU+}zycy(w1JvcZ>p-?`5{>PyTrLlb{V6y&#M;^>CgxgTAVODH|HFq5 z%gf7YY4=DZQek1CtLu4ZXP3CR_`JM_nVDH<&e)HPj2Idk_4oI8c6Nn^hCO(YZ(8>Xl-rt_y2KaWwpJ%y}P^H$?4pqNBJcsrPr^=hJ=KA zdHHm8b>VP7-M*dZ;BXd+yi#6XVQdWZ@VGcVJv}k;DIx+{SopNOyxiRU7#@$0jz%L8 z!JeL8=g+%)d;9eD^_@HCT3n3J&CNS}7)qsf`1=Qxm6eZ-jIvm)^z{2Mn3=x5K}$<3 zgTZifgI~E4`Sj_tl$2CDeOOP=U~Fs*3N>q7)hHYF*d0KkRGrsfNDE8pTi%F3^ADi4u^iL(IZrt^K-kD;DZKt*# zz2msA?CSW&8>yitE4Azl9jH!C^!8Kty;m||!zX*)#<*E=y}jNO_VFnx_HoAO{g#ta zF76Xa#221Ip&AD{B>(^?00#m1Bo8G2%1Z!TzH6{pd&W%O67@2yC;nxnzaX|vQ>+=C z47pD*$kA-2+7MVDTIx#)zL@brR9ntkM($`O*KAF8!JqCQX(uxx9V!a|2M-13gHL{A z3nlAlvA?FCSD-Ft?x2QIg|P7^oo2#60dvg?Fhv;*Cz$LC1%*xAY4thOaf}wsB2{lZF+1h)N&40G1fd!UBBH3+4Y~$Ll#$LQ!|%H4qPv6Ev`C#y1f`#6 zu><#bvxveJDlt5VqM-GmnGOTZYF@r%%wZ+v`!MAocLNicJ5p0bgNu-A=z(uU4iuK* z1=MB?k>5L&-i@&B4xAH2o7Y+rcJ1gv99f;dpa09ADxizYG+t>vq`XrwPuI^re8>ha zPeh79Pneg>gkgAAHJ zvj?t)U1KL$H+J5r7m&1CA=$-X4kYZSp) zM2K6KH0?V)5bhfX-|l0#K}ychEt_A~6UcaX*m9cn0V-xzp#qBc&-4+iRH6D04UkyE z%&dGS>kWJF0e#4?A48$#m_|Gbz)x z#aak36^4&mT%ESBrnPVItxjuKin?roj1cJJn5poW>i;cIZdaWiW`f;TIN@7xU1x9s ztHHY*+|oJ6^At-XQY~cxI;}6CFtKiIVn&vdMIi~sT*rmGKD~?)6I6T$x;m{JS!7=8 zBa~0`vEB=G-t6?ethK^ac74s`ΖXpz11goct0UA*^Gt@qN>o!qJ_IPdpPp9zf@ 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 pUkT&?-W>F^kf4x|&n1Pz^* literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Dark/texture_13.png.import b/Assets/Textures/kenny/Dark/texture_13.png.import new file mode 100644 index 0000000..2c5dca2 --- /dev/null +++ b/Assets/Textures/kenny/Dark/texture_13.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://e43jdimtr6vs" +path="res://.godot/imported/texture_13.png-00e2369d26e06bdd9f32f6d062d5ae9f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Dark/texture_13.png" +dest_files=["res://.godot/imported/texture_13.png-00e2369d26e06bdd9f32f6d062d5ae9f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Green/texture_01.png b/Assets/Textures/kenny/Green/texture_01.png new file mode 100644 index 0000000000000000000000000000000000000000..d5765146f1dce038486f5ffbdfd029e94c67ae5f GIT binary patch literal 9868 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 aT%Eyc`ihG?@vt@keYS6P-IBXGAokDMD3Fi< literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Green/texture_01.png.import b/Assets/Textures/kenny/Green/texture_01.png.import new file mode 100644 index 0000000..2e610a0 --- /dev/null +++ b/Assets/Textures/kenny/Green/texture_01.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0e6e1xjl18aa" +path.s3tc="res://.godot/imported/texture_01.png-e84a1fc48ff8aea2304817d95826f7d1.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://Assets/Textures/kenny/Green/texture_01.png" +dest_files=["res://.godot/imported/texture_01.png-e84a1fc48ff8aea2304817d95826f7d1.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/kenny/Green/texture_02.png b/Assets/Textures/kenny/Green/texture_02.png new file mode 100644 index 0000000000000000000000000000000000000000..7bc7cf8a0cf93d4fbf0262ce1520930d62d6faa9 GIT binary patch literal 2774 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5UnsyQ z#MSNogs8`JJswOly3_Li|9|P5<^@qwZ7b)w{hPjTXPh${C}f7f4b}s1Hcol)dso@N z6Zh`36)=%$&Is3L#`MAC6~hGC2H^+%BRnX`_x@~#8Mf1eYT~b-lfU`gX>LWZj$oGC3qd~Qf>W_Wv=Gu=|Gh_#2Lob8PB&&J@-$No3 SS9{$7nd9l|=d#Wzp$P!)HguB! literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Green/texture_02.png.import b/Assets/Textures/kenny/Green/texture_02.png.import new file mode 100644 index 0000000..17bdc5f --- /dev/null +++ b/Assets/Textures/kenny/Green/texture_02.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d2r1dqvx1h5vk" +path="res://.godot/imported/texture_02.png-c0b2f3ead5d1423b3fb0f2462b41f12c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Green/texture_02.png" +dest_files=["res://.godot/imported/texture_02.png-c0b2f3ead5d1423b3fb0f2462b41f12c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Green/texture_03.png b/Assets/Textures/kenny/Green/texture_03.png new file mode 100644 index 0000000000000000000000000000000000000000..e2a3889d26e665493a639396a3ffc0085d9a4848 GIT binary patch literal 1338 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7?_xW6jSkG0T3_U(btiIVPik{pF~z5pEJNG z#I@zsR--#D(l^TuA1gfvs=4Fo;uunK>+R)(f(;5hu8yx3a?SP-o|ZOs+5tr?m(A}_ zHO_o$yw3Ic`Sa{RBL)u$U{IJfJ?_ArKTXBo#RreGfG+W8II<}DNmok#{d~s3<+w?)7hF!Z?8M@wgd>c9CTw6+hE{vV85D6 zf#jvH@BSOi_DVmw^wlHv4E7H-um64j{rSZ{d7zP_fYcC3kZxG1_j2ETrU+7Xj;e=- zzzybvRo=VaZ)Xr24H7a#;2Xn?SCiiT)@=Zl3!{Lv5NOC{IF~Pb@BdF*1_qa-kqq1q z{1>bz&4^LekPv9FWmvXr$?rPu1jf-IAuj|H_(v-g@3{$={ XeX-K{pTTh>5@dv@tDnm{r-UW|*k544 literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Green/texture_04.png.import b/Assets/Textures/kenny/Green/texture_04.png.import new file mode 100644 index 0000000..dd8072d --- /dev/null +++ b/Assets/Textures/kenny/Green/texture_04.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://djti0r1txl6fi" +path="res://.godot/imported/texture_04.png-4da8cab1d5443c2be1a0905e87be7e41.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Green/texture_04.png" +dest_files=["res://.godot/imported/texture_04.png-4da8cab1d5443c2be1a0905e87be7e41.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Green/texture_05.png b/Assets/Textures/kenny/Green/texture_05.png new file mode 100644 index 0000000000000000000000000000000000000000..84976ba6dd194085fa812f7ea8707aed3f70b3ac GIT binary patch literal 13212 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 Ub~yZb4SMyZH(&huPnjS6A4WTwzW@LL literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Green/texture_05.png.import b/Assets/Textures/kenny/Green/texture_05.png.import new file mode 100644 index 0000000..9c84906 --- /dev/null +++ b/Assets/Textures/kenny/Green/texture_05.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bbkkd0r1324rf" +path="res://.godot/imported/texture_05.png-6112786d3ad5fc49141106fa07e460a6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Green/texture_05.png" +dest_files=["res://.godot/imported/texture_05.png-6112786d3ad5fc49141106fa07e460a6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Green/texture_06.png b/Assets/Textures/kenny/Green/texture_06.png new file mode 100644 index 0000000000000000000000000000000000000000..1128198d97306e3e90f54df2f845fdc27767d193 GIT binary patch literal 19065 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 D(=YR* literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Green/texture_07.png.import b/Assets/Textures/kenny/Green/texture_07.png.import new file mode 100644 index 0000000..105f5d7 --- /dev/null +++ b/Assets/Textures/kenny/Green/texture_07.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://4fue3416xajr" +path="res://.godot/imported/texture_07.png-d690cfc57b2d71d6535bcf632bd98326.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Green/texture_07.png" +dest_files=["res://.godot/imported/texture_07.png-d690cfc57b2d71d6535bcf632bd98326.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Green/texture_08.png b/Assets/Textures/kenny/Green/texture_08.png new file mode 100644 index 0000000000000000000000000000000000000000..386293dfae46440d9a43594b94dec326d5f01b89 GIT binary patch literal 2743 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5pFhAS z#MSLwyT^k`|NsA&IFu!Qv;0rcG9Ly8u3%3W$B>F!Z?8G>9&zAdaSS$ST`a)$u>YmQ z55eeQHG@~7w%h9Tew`9t!d#K|o$vk6vi;h-<$-370#ZXDLAv2KUK z++$~GxIKTy%ewF~`_b?rBLohZF>GgE_WSD1zhr10)dC5DYKA*}Gv1Y_eg`!JMgdtN x@P@I#I$>A*+`If_X&>pDHt;rd+c6w^&mXWhQtz0Tm>noUJYD@<);T3K0RZ&XVvYa+ literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Green/texture_08.png.import b/Assets/Textures/kenny/Green/texture_08.png.import new file mode 100644 index 0000000..e697347 --- /dev/null +++ b/Assets/Textures/kenny/Green/texture_08.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://poho7bpcb6ii" +path="res://.godot/imported/texture_08.png-388bcc8f4ed5730d30ef519aed5712c3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Green/texture_08.png" +dest_files=["res://.godot/imported/texture_08.png-388bcc8f4ed5730d30ef519aed5712c3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Green/texture_09.png b/Assets/Textures/kenny/Green/texture_09.png new file mode 100644 index 0000000000000000000000000000000000000000..48234f6d2239880b848d87b2b9fa8ce47ab04ecb GIT binary patch literal 637 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7#Nv>lE)e-c@Ne6|3e z5LbyqS<*MlnO&UsGB7YHdAc};RNQ)dVIwaC0|%4i_xLFH1&cnt@YJ&x-j?{*9;j&m vfrGq);Q(3>w7S7*VC`oR0!8P*fj#Up$N%$vvOU7O2;>M)S3j3^P6(M?Ihb3?`VW{9ke5nUTEJUc}CX1T~)y>@UV zlc7MvL)%-8vNxJ}J7hb|`Gxj$x9siGiL*WNX;-Z+hqKVL-`*!`JkwU4)IK@;+5RhQ zx0k;X1KKtU1~vpFcn^G^D1G4dESUpQ#mo_)lrmy~GLyyC7w2M`EvCHat7YbxUq5#@ zn}FT_qSw*~%w!Ji%VyYJz#whiAUk3L1nAL*iwrgIb~4)NpJd#!&a~kg<4E%SVD#%B zmIZ3-Rq{{OG2GNYFy$}jnSZQIgVCKM%S{I|7~-zqVc6IIgkjnw=>t(CDVs15PJ53I)iGZY32W*mtqphypI-uoapK5=d#Wzp$P!8e~hRA literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Green/texture_10.png.import b/Assets/Textures/kenny/Green/texture_10.png.import new file mode 100644 index 0000000..506afb1 --- /dev/null +++ b/Assets/Textures/kenny/Green/texture_10.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ba1f44g54l45m" +path="res://.godot/imported/texture_10.png-f4e6f4f72511743e87c731dc1a545bb8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Green/texture_10.png" +dest_files=["res://.godot/imported/texture_10.png-f4e6f4f72511743e87c731dc1a545bb8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Green/texture_11.png b/Assets/Textures/kenny/Green/texture_11.png new file mode 100644 index 0000000000000000000000000000000000000000..82ad45853f0bcd6f800a4ce02f0b251792360ea8 GIT binary patch literal 9200 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 KeJOjaul@%Sc}&&- literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Green/texture_11.png.import b/Assets/Textures/kenny/Green/texture_11.png.import new file mode 100644 index 0000000..c0282d3 --- /dev/null +++ b/Assets/Textures/kenny/Green/texture_11.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://hncjy0d5tnxg" +path="res://.godot/imported/texture_11.png-b7efbbf02e7aaebe01a73a52889e2db2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Green/texture_11.png" +dest_files=["res://.godot/imported/texture_11.png-b7efbbf02e7aaebe01a73a52889e2db2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Green/texture_12.png b/Assets/Textures/kenny/Green/texture_12.png new file mode 100644 index 0000000000000000000000000000000000000000..a15000d879f381090288e3b883f9be6f8aa14b54 GIT binary patch literal 9056 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 z zwlH@d!e&p;tpq8lohBy3Si!@;6l$l-ZDQ~H^7(j z>o?%#Gx0Z?ZqBGOPN=_I{vE-_{A3|uQZ!6OE{orIwwr21{5@@G*#2~wnQ*U36_Vg!A ztO(%M%k~tRT%l?X?4yR*S#w<&UJ{%m-4Ph-gj?%&+scGhzjBr45jwCRjEA_Yg2wB? z@xjW&1>1xR?hhjGdpda>vJA0%u7*21J&&XFvW1k+=md*YcS3*!vKGjzL)}l@QR>Q0 zb&Trj);B@1l@Rt5FBf^0vP5kEPSI}_rW!fPVyK(D*G$BR5(8i!w=P@|(7{&*ZseR0 z1OfoH!mGgx64;;-fHZY*>^I{2jRYTZnk&oShbvMGUy)EN$UJu)ZI7B_E~enE&({WHdzgxW^6oY5BYzAgVyHTU89y+74-kVs-OY{T+Ldr{B-v z(_0`fA&TlNJAhW5BRed0Nn<)91~gQcr0t5U$sNPtgRUj&QI5g*x2%?)c*&Bg%0!ax zv!16skAty?f$7ep=36mX;#8GGGjc)U{87mg33*PM19{0YT`y9SW6fn+TLI%U(>Sb#c`}|Ngm)4)JToHQ=1(_V z^Dsg{T_B))_J%uYNgdg@$%bV=N^LDy^-QOlT9;2gmh*=s#`|aXp>R{7gpayFt#)FeaO>R=YYBg1)d^ePKaZ=XCIG$iZZXQ`s|_SftXXf zf%j=C1`ZKADbDdZ;z*l% znG)+VokO&&GAAsvPAw3`Ez|KLV@f^oQhLg-!UHW}3&;$7goiB+kyT0#mE$O&=aw z$;g}pGBS>F4vjr@Z4`@?BdFn(_{Jh{WpI5*RS9`t3F4576CH+>^Zm*4qBfk=Pxjcx z#oa;_Fl}HH;s*_hVG}cCv#p4fkwKQ36+7_I)pEWk&kkKZ(5BX=Gn8LYHc-F{&U1&* z^kET22P|-srBS&iu2Iw>1CG(Wu-KfbU??!s|yeX8Mc6ouB zoH7CV;+4Ix#k0<%v6C|~X2H2CJ{|(V;=Sy7^LU}#%RS+e_Mz##8qD0LxWw{>7?)=X zvc0``?XQ&Gse#yvK)C530IGvwU78)4deLG#gqJ5pM&i*1!N(AZyXdD0O1)|K)13sf zt}-9?KQSvGho1#^ulYtJp15QMNlWcEs++=zSLw_KZ z4w2>`P&;Eo)Xfm4I4lG!le0Hv^j(rW1jd<~J!WH8aGpkw-xAoy+h)Ig&UkUWRAA$3 zzO~MBEIfu+0r|+uGXEgBcLlWv%B}n{3JZ4^fXCC>JmEduSs!(T=h7yW zTL3H9CQrUdM@t4+iEs_F3la@IGmZCdjd!B{Qi9G%^d_RG#j&|O??^>A#}cR|LQMm% zTt=;K<(tJfB;fk+wF+!CvgQ(OJGX&Lej{QHAQl4So&Di|3SwW0ZU4M@OdSmKYN-7O z25vn5UqbOezun)7=iEj94``9Q>f|}!z99dv0-tM)Z`w^DG@F6M4n6=ZLBf5AabpE> z#`)MXo3e%AvY~&!h9d7QQu|&hUaN%@8FHJ=Sv|nt`SYU~s=|0=!|!MT{SgR5qF!^< ze`oG5(RYl%Y|{oy&Fx{iyrq49O|1+W`+Z>cG7~9t!2<2W@!ZhAg|HhH^&RW?*Vg~P zAdvfxcXo}*%q;%IjAg~h(7b~P#~IdYO8JkE1_sjqQ$i3*md9K8ALW0&|AoMx7Xi!h zb$_|(Kd*Vd{m$SoAo7t}t7YtOA3^}c@>z7sa1nz~n0XL-P(T^rzBdwQ2bMxD!q?6cFWO+yOy8#*3*Q XVx!O5Ouv7WYx47_b+xj8v3&S9S!I-b literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Green/texture_13.png.import b/Assets/Textures/kenny/Green/texture_13.png.import new file mode 100644 index 0000000..9c4c191 --- /dev/null +++ b/Assets/Textures/kenny/Green/texture_13.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cbynwfgx1udap" +path="res://.godot/imported/texture_13.png-017338333d71c41496ec3c6b0c3f4cf5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Green/texture_13.png" +dest_files=["res://.godot/imported/texture_13.png-017338333d71c41496ec3c6b0c3f4cf5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Light/texture_01.png b/Assets/Textures/kenny/Light/texture_01.png new file mode 100644 index 0000000000000000000000000000000000000000..60b632b74fbbb17641a174e7b814a59e8dd52eae GIT binary patch literal 1338 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7?_xW6jSkG0T3_U(btiIVPik{pF~z5pEJNG z#P#{hSJ!XdxqR*BLscGopqe|LE{-7;x87bpDA=IDmD@UxZ{Plk r4XO~+VsQCbP0l+XkK{aH{i literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Light/texture_01.png.import b/Assets/Textures/kenny/Light/texture_01.png.import new file mode 100644 index 0000000..f5dbae7 --- /dev/null +++ b/Assets/Textures/kenny/Light/texture_01.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://7dus2yvf2ug" +path.s3tc="res://.godot/imported/texture_01.png-4e666ff013442f29d41e355995ff019c.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://Assets/Textures/kenny/Light/texture_01.png" +dest_files=["res://.godot/imported/texture_01.png-4e666ff013442f29d41e355995ff019c.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/kenny/Light/texture_02.png b/Assets/Textures/kenny/Light/texture_02.png new file mode 100644 index 0000000000000000000000000000000000000000..19aad62c22cb0d88d941e6ef7d3d42f987daac63 GIT binary patch literal 2727 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5pFhAS z#P#*tcQ0SR`Tzg_^;>r?U%OfUDYJxufy>#`#WAGf*4yijye$C&E(hJ1#5Nds9N4es zQXqNh>%0F3v%S(!E`9Y#J%jy2&Fg>Pe}8_lPabIGC?GWi5~Lee>b=}|pDBV=oulfZ zA#j5^VU_o;_uCo7MuUXR5ctM0l&?4;6XtKV;f^YDZ`ZS YOkb>Y{%3I9hy)qo>FVdQ&MBb@0H8!=asU7T literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Light/texture_02.png.import b/Assets/Textures/kenny/Light/texture_02.png.import new file mode 100644 index 0000000..b99e7b4 --- /dev/null +++ b/Assets/Textures/kenny/Light/texture_02.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ct2nwmb0g0c11" +path="res://.godot/imported/texture_02.png-15f671c63a751d171fa712ed4f70138a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Light/texture_02.png" +dest_files=["res://.godot/imported/texture_02.png-15f671c63a751d171fa712ed4f70138a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Light/texture_03.png b/Assets/Textures/kenny/Light/texture_03.png new file mode 100644 index 0000000000000000000000000000000000000000..a8a6c06f5e4fdd806758f0e7b4806a0aac52d6f6 GIT binary patch literal 13212 zcmeHu`Ck-Q*8Z(7pi!XP#EmG@%)|tDOoHNG<(S1R21bp$Hc5=)5}Rlg7o^IVggC~u z@Aw*$7^gdvOeCYGF&c5NP8>x|6kHG#p<6`(0YTPY>weF@)p!1a?@#Y1za(|6^PK0L zTj$=s_nga?wAWvX>Ds3&LMZ0t$9;JEE~n3Z%O8%+vI4mnl5pd!yVTOB-9flIp*^A#hDvfNM}eR3@qp z<~9Ab%~pm-qXu0ZT8C4)5_p-1?DVCe7x9vynHPsSx$T|!aTHwKE=8duNH135WvI<| z4X2_b;iFKC>eAWq*Q&(JL#b*a@}<_{VdxsQD)DywsoKON?d33dS&RRKey1;+;AOUI z;^iR}`6qZ;BRz)R;tcW$Yz2Qt;@=RW{+Po=d_LgNZC9uV?|=ut;W4OAdl@d`9|D%J zgbfr~k7|V-ct7f&M9fN0g4t^6Idqijy1L40tH)&!A5a%kz=dQrOSks6nKT~KBpqufxsJ|9z0zln(I2ui%03`6_U21+Xf*!(a6)?RcP#!yCDLE!rP}_EUTb zUDKj91ML~ff(B{PJ_odSl(DFtM(ZNcHoHvnQcBxIXg#J#aX+Q)B+&+}VfHJORu8mD z&DEtXrnFCTB{-lK>C)bz;v^8;R6U>eHWl9nu|a)_PkWP!n?bBrbNS3{&VYi&(s1On zRp7PApoHmV)#%AUZNkseM<{ONWAJ{c=QgU97U4eJD9^KGj`jrVEy2BE?((SjU=?*#D6!M)+>IBF#ULrT`P zIeN>LN#_Z8D1fghZ=sG;0|@vefM3L4apm5hC^KYim*C!rbXU|W0*(f7tD~M$-7Kcf`m~@$d#{>9+G7%j< zHJN~6B1uoWb zz`gJcuDp3A0dFHQ2X=+02cy;yFp0U@(pxS~x6Wq%eQqL)5d6EZv(YsHZMBj#x5NXsBQ?@_WfECIDTxvz7J8Y>wxqM ziWfcsO9HH4o%Ocva<26bKvTQOYNanR+n$I*Rud?!U-Ny55$>ufP5*6X+`5E?LwY+>u9X3A7rZUrOuIkERlc)z%LM{Vl~tXX%q;K=&%> z&QwJ-%yfmkG@;;zmPB3Vqb~p{!776yl@?L0z&0|0o(8t!i5#{%#N0Okt4Wx?72z#;(lR?|^c{7qmi4i|BJ;5<4p z;V_sn!AI=p`IcL|E)%}E@B|93lSZOq>x3XG@xR2|g@;DHdkJ^Y=#E;Cm!q~l!8#OJ z;4D0Kr0=en6D94|712U?COUHdajdSi$V7=;q-{Q#YE?BBIqLT2idJAexLDjks z+Eb9PFIvg{0{;!hprdkn5WYZ!JWni8BSZ;)mJ?>dPpiTu^zOC~47t#D&5i|~`@_s1 zWAjJekV*A_e=5$w!#np$(~&)AAQK4j~9Nlh&}s_AB*fc*ZT3F*>jOGH;g@> zDVkK16tcgSt7ebCao@4Wz1%|fSkJ*eU-P9ee{O!r#lnc~EDDPuVHHOfO{dotFW%9? zFF=Icsyrv32#3vd461=$;gTrWiSR$eo#=g-X!8Ma1j|0y&iCPTv8 zA;Utv_-n|pIac(C3@gd<{g7elJ+!}fXqZ}1ALemSK7$Q>S+u>5nHV8|&Ty4vf3A74 zlg}s&QI{F)H<77h@q;8JU2T1YDn4gtUQz{UqmCBFrE;r2I2e zu0%7K<&XJU%;&j=^irlgMjpYG8_^7A`7A$cK`8h4>kE#AMsb%heMuCP5r)pkSQT%ULhB_rQebvgP64rKYb9`ADtQCm^)GCC0m zT6wWIf(5Y37VWHeLDl4aZXTRYoTg}Jg#ugJT3rF`pEr~JGgg1&>``{Qfu4m_)t{=D zhaosMZKPZ8CZ!)bhMp#SZ)3O{&ab1u)?~1C#@5A|YlA99t?m=BwM}?jwhFio_OysA zQB2aGQEve^f>;elozDWB(7aQ4Gq|-K4niB~S;4OmTQ@*^Fm6Nh6ug7Hj-y8jgL7M_ zvM}c9&2i|MybnD87dbphDkbj$dV~PHZLWA1;|TTw9AWCD;k*t*H#l0K~@ zJlQC#QSoCCC31+Zq2d~-IE1M&e8ClJ`63*Mp9oZhr|;KzVF;#q zQlgwoHLtYuaZkBjHQ4P@8QoDZ^^R)*>Ko`MPV8Mm&e~^`Dd@0gto*?+`wOT|*e2~j z%UiNg_XaguG()1#T{c$6g-$>u?2XO$t$mKtz;x-V6;Qd^F6BXYDaX8+_ zWw@z01;k`hGt^RiD2Su*6fWZqeH#PfI6Rcg(Bf?eQN%G^h8Axrh|lA8E<=m=XAmdD zl+4iL-3j7r_-8Idi+44MX?Q1>p~d?Kh|@`lREu{6h_mn;T!t2JPY~zf5nP5A?>$)N z3-I4iatHkiu;Dh{kVd2ZK{7iEV7Y+GY_zzFe%~QsB0dnz)0I@wWUxXqxS`@ZxtT&w zgQa8mE?TI4-oJvSD*PszN!cmNtrQ{xDfOcI-=ZgPKW_!blbo+DN0&uLmc zgnS+tXo^UjFX;(oz{}Zh{T_(Qs5+$@2644jb&;nrjTD8FWg$#c)v?vnWr5L1r*BUUp7rzR>$z-)12ZOW(>Nc_# zcNREL8XwxkJXK^2*0f6oXYn2M^hVW&)uugCJ5_L9cBD(*CY){adT|Z-`4V1d1K>05 zWx_NeC<&7K9UQTeq{!MrxjXLVR`3JCYvIbFZtO8~(gVS7(*2Xxl!f33yV~kg0+SNn zr={Q;De^mfNOj;IU(gCQzGu_bgU=O4eiKC~>hSIA4j=Zum%f4`3QhX!((72UM1G+4 z7;0iBw%M-W%DEr>l_K!QSBD1|w@LVWdkHO7H&ykR4rN>6#L!U(X)WGg7+wZzrPUPu zf!1@my%|hg!gs#?|Iim&?P{f(s%@2exacR+JIFdm*P4Yf+`-<;L zJ>>ueB*9mh2YE5sOj{X);1k`0mdg$5kQu)9mjO$7!a5p2U&zKk<6Rt_(x4QFN%|Gx zHE1d={VPz5+w(~2F8@yLS^zpb&=j8V9)*sjiF}+pHaA*Os3+sT-+Mqm*w$W(JkD;Kx!`xFoOrZ{_ zUf%UNqQtAz!_3h5WP2|V9pA4;a7ORK^E zE7Bx1hvt9++X`!~@)X*pH8Q#ZZJVoyJd)B{2(8x=CGMcKDL{KWkP=}(Luo63Hbb4u zm!wnLZ9qGmtk+tL?K;qYjyuqF`e9)Q)MmOMy@Zx(Z78VOTdS2sv{P%_kZ4<6J>_GR zwu#Vsnxe!~N}ENZ4P-^w?^9Yo&<;>H@M+qY-3_$e$j_4&Z57adj8!yUix#G;=~pbG zrCPKC(7L7mXeW(UAkj7pJ>)Tz)&#UQokA~pkS4-U`<_lA7EX_(-D!gA_u@|Y!R@Mv z@cWzCDa6TlL9CTj(wVuX7V(*$r$(VR$qBV!{6lbXn7ei>ytn*fgrs`TUl!^7CGR%W zm>oc!+5jDwq6MT#uaKRA13E5o>j#qD7zEZ1sXKL<)n`bRzCKLE2YqE-otyIR5-|K! zz%FAb@|#JSUV(`q?17F;L(alkR3mq5# z0#c|~$Y#g}9hZjnO9=Si0DfQH$rsd|phbj?W^ZAn^K4!nfGs5EYUsFBEXXHdvj4L}$7T8Y9|-tq z04J;4bOra$5O4*F*;Cln`Eg!70h5^TK*y!tTtL8Y05}&qF8gxM6YwGc_aNKUju%Kl zzkuv=q8TUOCw-f%uyH>r-9`J>JtDTqb~y`Q z=Vm=>p*>dP44glAMfyf$vmUK2?>$stv92bg6Z!Qrccs+Pk zmx(tK=xl(d;uGlB#{L942cTDkXHaMS1p@62(6-`e=k6lXnM;IkW(ZE>GyT61sCn`y zZ3uM_CwBq91TzA@g>Gdh6Eo!eb4eJD3ga&kGq4P9Xf1}*QW5FVCBoOc6u8P~24xa= z0|c5U<)9zqNz=_nI#4ZoU8Z+Cc^QD0JA}vNtwp3k#{x+pB|mc|L8l;5uIZ zqto(77mBv%{_l4a{%AY?|LLVRZ(;pgo79W9jt5VhMW=q)t4~o?A{QxI^_xDfnL6 zico=4Ir*nBRy@Whp6c;)sBDW*4eWm?^z1r0G?|s#UDEI{*47ZRlY1Np=?FQa`WJ+r zlP1KEkwW&((Fy;3G$d?f{~7}~u(VE#*$8|7P}3z=d>C?386jT_c@7)OFGJ;4*knG= zdLz5JYF4n_z)zkVst;%B;gXfst7RMOJ;@Vt$fDGkl{Ri$=Z-%N32*8vIg6$Da^Njb8vG?>wwiqz+PSR!VxDPXUc2P zMaK7lJ2ZzW>q|01%9dDh7gK%*O<~I4b8tCIvs@7Y+i}gZB~A=7<<+Q^xpAMn#tQNk z`ZPAmO|fDnQ(lbTV9GyoaQ{iO?2mvQw`RF1PCUt!vrs8>;~{sA`Rv!Hv0*mFin~L~ z(n9nGQ~rj##(XY{fa^_~Whi?;V#@EMT;|4YE{=8Piu9Rm=w`+`4}_G>Z=>9hWoaiD z$GUB+BQn`&%J~v&ewE%`H1oQxpR*}Ed)HXxYvnxQIUD`Hd%gWV8d9R;l9@- zLCXO_v#3>Fh!$X|pxC3_&|%P%i%V)S7g`1~?4RSw{@L4UhHeMyNjA_$y5>%oM0z-B zuxCC^w%!u$tPH1n?*XVuQcr^|5o{%?ub~NnKpxlc z;M_5`HPztU-zmKhU7D$I;IgPkxg%cHLAo?>LWNVx2vq38H^ACtIC%%XizD2Z{0iyP ztOLg86_4W=xpJ*^PR`v!)OU3SXK2lIsLqa;ko%H5XqB`NeE3!moZ&}O;%kuM zi7l3H@-|AG4@aNkYO{dmQsOkoceskV9*xw9R|0XK)QFaA#N=A%v-kp6t`+G?sbRUg znlC7##3Nv*Qx||MqIr~f5X`<-FO)4NXv8GqHb<#$G5<3q7@k+dz%h!nEd<(aE;jZs# zN(?s?ab3_DZvPu4HV|UJsf*Z;5;p)bPi_%ErHL?!p7b;s#i5!A=`zXFWDrMaBIL*0 zo~9Uaye7hEZT2)pi!W#*l(N1h1+^)f2!*cGo~Ewi8=43?eb>{}MVwE?<%E}9n%2^E zIpOtMjN-f6Tf*zL7{t|@NO--L7;&Q}5?-$*TI4m6@RIsrlqM2hucfQlT@wkf*V0Ao zOT~SJm)sG5QWFWU&tVh?Ya-$GISk@+nn-wkju>&QCK6tsBU+rKiG-JwOJCJQ!s~N% z6{l$;;q^JXh;ykp1nL}{f-}SH2k2KI8}4(^#?H{XQ2&B@;vxJN`ig$vbg1ZB8ETKF{V3De6R(i|hsK>WpXm)s9UBrJ<+7&=MJ7Cc# zXbsCkpiNd&`0ZK`iWJS`@m%g)J8j`W`PX(1zli>>r7!#@EN)Q@;$doO7{oqZoykqs zvKI<;@K+MgA}@8q13!(4tx6=)a@h!WN5WrOBxvmuD14>Xz+Yy3LJd`gi`W}*>18ce zazXVQd>o0IA&6#i8}5rP&{<#sL$6?gb83d5T2s>oe=4Fipz;9u1N^~=NCO`SpK5l{ ztP{09%s}9*$8qQywWEOZC)8q2q>(j`t0cohn?{N|XgM9b!!DS>wU{rZWn-_A`Q T3x8gNUVh>A=YRZ5`Un3HC26E1 literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Light/texture_03.png.import b/Assets/Textures/kenny/Light/texture_03.png.import new file mode 100644 index 0000000..e7fd3f3 --- /dev/null +++ b/Assets/Textures/kenny/Light/texture_03.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dvxbvy41idpif" +path="res://.godot/imported/texture_03.png-dabf35d6925641754119ee2126742474.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Light/texture_03.png" +dest_files=["res://.godot/imported/texture_03.png-dabf35d6925641754119ee2126742474.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Light/texture_04.png b/Assets/Textures/kenny/Light/texture_04.png new file mode 100644 index 0000000000000000000000000000000000000000..b8270e147705d53c36a49888d8d84cccb26b904d GIT binary patch literal 15848 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 E0I!MoH~;_u literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Light/texture_05.png.import b/Assets/Textures/kenny/Light/texture_05.png.import new file mode 100644 index 0000000..6aead33 --- /dev/null +++ b/Assets/Textures/kenny/Light/texture_05.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d3j4vtf2aq4to" +path="res://.godot/imported/texture_05.png-3395530d01752dcf8e27fd6718497c9f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Light/texture_05.png" +dest_files=["res://.godot/imported/texture_05.png-3395530d01752dcf8e27fd6718497c9f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Light/texture_06.png b/Assets/Textures/kenny/Light/texture_06.png new file mode 100644 index 0000000000000000000000000000000000000000..195ad7777812a29068ba49e5b29f225081e0461a GIT binary patch literal 2743 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5pFhAS z#P!sfbGPq3`2YX^C+_ zeeSU{G~Av)<7HiVnf++^kP!k0%ow&aFZ+G<=3g>2k7|L0KsCc1z8UYzQ@?|n0i%Gd x5O~8_V4bile(qgv_Q!7>#TAfB#%F6*2UngG%-W^Mog literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Light/texture_06.png.import b/Assets/Textures/kenny/Light/texture_06.png.import new file mode 100644 index 0000000..d8390d2 --- /dev/null +++ b/Assets/Textures/kenny/Light/texture_06.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dgl8yfvnfdw45" +path="res://.godot/imported/texture_06.png-487ab5f48eb725fca4e729bebdf72d2f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Light/texture_06.png" +dest_files=["res://.godot/imported/texture_06.png-487ab5f48eb725fca4e729bebdf72d2f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Light/texture_07.png b/Assets/Textures/kenny/Light/texture_07.png new file mode 100644 index 0000000000000000000000000000000000000000..fbf92e0af8b6e58e0056b75e309407e8e9f1cfe3 GIT binary patch literal 637 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7#Nv>lE)e-c@Ne6|3e z5ZAp24qd)>bK-$7n;00FlssJ=Ln>~)y|9s&fq{d`@q2uf`+`NEUU=%+3vWw&YY)^k wfWSds!EgYr2U^|WG_dwF2!Wz=;J_YsndATYKG_~&T?BH3r>mdKI;Vst0N*Srm;e9( literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Light/texture_07.png.import b/Assets/Textures/kenny/Light/texture_07.png.import new file mode 100644 index 0000000..901cb43 --- /dev/null +++ b/Assets/Textures/kenny/Light/texture_07.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://p7b7cxvbb1cp" +path="res://.godot/imported/texture_07.png-5bc9abc0e209a8ac3f44e3b8278713fe.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Light/texture_07.png" +dest_files=["res://.godot/imported/texture_07.png-5bc9abc0e209a8ac3f44e3b8278713fe.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Light/texture_08.png b/Assets/Textures/kenny/Light/texture_08.png new file mode 100644 index 0000000000000000000000000000000000000000..72e1a07703f86f06142125b0a44e4bd3bac81ef1 GIT binary patch literal 2838 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5UoOBW z#C6r$^|R;BU%O$`%-M5y?B2U{`N|cm*G``~`|`D$dk-Ayt{2|Rz`(WG)5S5Q;?~=1 z2Uju~3N$>lz11jtqnWouw!@rXXis;`-Y%Uu+Y_I5)!K463qAYoeWJ!QZPiKble3@g zzp{3F`71G?ZKGgdLqLM}!1syL2VT#TIS^IM905uxBL*llSzLW_E|%G1%8R~QW{&yw zb9b`|*!?ehEq%aD=D@yehTR1W($)>KBPKwA9&NbDQ1fmlqmBMa#x3hi8?G^qB+m~< zzy4uaptfEm|5P2rP5lE?{&JrA$I3Jq-8r({bRdHv?)n{uef>`urcIJQ5H*sriG<*R zg)Zf9qzzopr04%DNl>h($ literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Light/texture_08.png.import b/Assets/Textures/kenny/Light/texture_08.png.import new file mode 100644 index 0000000..1de110c --- /dev/null +++ b/Assets/Textures/kenny/Light/texture_08.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ube7pfqljvyf" +path="res://.godot/imported/texture_08.png-25589eded306385399b275c6db3775cd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Light/texture_08.png" +dest_files=["res://.godot/imported/texture_08.png-25589eded306385399b275c6db3775cd.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Light/texture_09.png b/Assets/Textures/kenny/Light/texture_09.png new file mode 100644 index 0000000000000000000000000000000000000000..9ada5dd55795de4f7eb3198ce5740b76664798e9 GIT binary patch literal 9102 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 f0*_Pge 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Light/texture_10.png.import b/Assets/Textures/kenny/Light/texture_10.png.import new file mode 100644 index 0000000..e679b4a --- /dev/null +++ b/Assets/Textures/kenny/Light/texture_10.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://vbio6gqo77y6" +path="res://.godot/imported/texture_10.png-77bfe99d787ea2ef61f6f02a876f509e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Light/texture_10.png" +dest_files=["res://.godot/imported/texture_10.png-77bfe99d787ea2ef61f6f02a876f509e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Light/texture_11.png b/Assets/Textures/kenny/Light/texture_11.png new file mode 100644 index 0000000000000000000000000000000000000000..840ecec81fa3d946b44c62569679aaaa9fd5d08e GIT binary patch literal 9494 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 TiL1TtfXwl9^>bP0l+XkKEwy<% literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Light/texture_13.png.import b/Assets/Textures/kenny/Light/texture_13.png.import new file mode 100644 index 0000000..bed6c50 --- /dev/null +++ b/Assets/Textures/kenny/Light/texture_13.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c150y2i0o0n4b" +path="res://.godot/imported/texture_13.png-e3613fd71c8fd004170df7272cdae77e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Light/texture_13.png" +dest_files=["res://.godot/imported/texture_13.png-e3613fd71c8fd004170df7272cdae77e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Orange/texture_01.png b/Assets/Textures/kenny/Orange/texture_01.png new file mode 100644 index 0000000000000000000000000000000000000000..4f5bf92e498da9d61e01e7ff05437de16b011466 GIT binary patch literal 9912 zcmeHNd0f-ivOfV4K@p3BfU=2o*QiwxFo3lcaRFLU+*rB*E(KgzA^}1bL_rpjMNkt( zB^8BGP=XK$f`IHGA|OZzk<9=h5J&<^<|X!h?)&H6>s{LW?EBo`A32l!=FB-WXJ*d# z%*ka3I~z4sT~&mTn(fZ7zC~z;jGTdHDax9iWgWlDzj^K0Fir#g1l%`;W)hSUpz8@-Uj(CXp(YBXV#slX z_6Lx)2U^k~K?5c^Fi;D_ui@%!c={te{0b81L!l>B5TW`q#Hqqy9gMWWa{^SJhiN`= z-@pwcc;*MUJ_k-SG+cwG>yWk{Uf%`L81xiD%N-C5L4P&G&V-IE$k+~r#~}9rR9=8| zGk9_s#6l?Yf@B?-=!ar&5RC$p29xjMffXcb0%a?-KZLqiC^-WaKSO&4JU$34Iy59e zc`&d`p!Yf4UITZq(2xizdQj{Go!M|>32Wh0=#Z`c>_`n;F&*^1ww5!ke0){QfR#ojY;q# z9I_ptD-VX6;n#2B-ewqj1}FT$WM4$?NjopnGz4%L_7)-vFBK-?^N zn+u#K$hL<^JK(`KU_XPRpP>H*unK{G61tzl-Hk9k3BBb25~z*@HUkPg;NjQs3l63y zpsx~cuZ8BDK(&Lu3ZS_G;}n$QfxHrO_QR{&aDNM2odZ=DVPXKrSdg<1?reZpWT?Li zS-T-|0lZ9wCr5x{0l!$n`$l+V15GIqs|@eT;CT?dBEe`UjI-gII>gL?k#^`QhSC7I zw+V8cpgtakTOnEzcwG>u0w9IEUqG@h$et_6AkNDRAwy*Q)iy``o8h+sL5}WemEUpS z9-#@koLcj;T>M&Eoc)H20-Onl2wW#;!m}>T#3fOiW-Fv!`WCzD()q|0OJ;tvZNbsR zCG@zn4TSpIA3ZcIF$<%NL+W%0uN6U^3_`^#=7W5eX?Slvn;C(FqYtyPo42+1aGz=#WQPS>+5T)V|*mG z{(TR`sg2xCG9HvUD|CC#^zdFiHm^lgB<{G&PVvlTn~5?fSD<;)Su&2>nwV2v%v_5R zAzr+PhgTEVd0vXDJDMr-l@{A8*o7PfCqoo*d6;UxT) zXVK#&NWX3*-yq$F9T_mTVKAkM8Dlg3&R+SZUTi~Emc{(v#B`^wW$Oue{D**h$>au^ zOL`NOEr^%vfeF{8uks4BP}CrDbVqXA>gwInlB+pb6k)!&K! z?6{Y&0k4E{@Vos%}q_W}*pU!ya>8+a2qY-Q>2_jO}=DR&lPq(Y(VCUAhnb^*)A7RhO$XFliqxeZ4iC~|zZ;F#W zw`zRQ$CHt>+n)mG=;jxUELZH5Ue|M;E#s8gF8c@nR_8`5iMw0;Bh7}zf=nT&qrHWR z4Hj`Dqu5Q^HuAw`5?>cvb@`EpZ%WT>n`*ewlcM)JnlYk5)k_V&IFA%Vsc&a3lXJ?| z_Tpt(td(xG2;OCQrg0>VpInm{?NqFvVNdIl?Oy2i1Ulu;%PQ(UH~4fz`Ps?}&fKZ| z&k&106KO55yBmcTU=O-|a3$n+fJZ7ixz&_{A8Fuq-i_u0t6KxzZ_ZbceaxPTki;p@ zKqc=a%caAZH2Ce7v(GQ{ItxUtD3T)1kY$GtGtXMpc`}zP4(?76*WSaYpOjL=T~~LV zar2jcC+CnEmM6M388PkAf3d%RB)XF09ud5YRtsM@E}B-5F&x{BmMZp_H%E(7%-U1V zEliJyeHXz^@;;dF7WJ;|oF-*KXtms!5+`lc*H78uX|jSr@2M6gQetc?Gj`8GXo}$c zJ0%F$IcQ?_iz=BBt&m*s^n#MV(2D;%DdYMpZ~lj$_BFCxO^U~kBz>^yJk(cPXHVV~ zP)5}9-Xdsjm{4vU7P8f3qG;Oa%a9ZLp|P`R;vhuFop@C!?{Z`lDzeauT^7=W!epix zV1AFTo1N_oJArm^&4#aw2dbl7*I?qhG-NNWA1ZX;>hBh^CZ(DBhW^qth8YdbyB{Q$e_fw!7oKJ@*oP`9;;rtFZ~`P#z5dMPq{Tp zp*<8#FFL9TX~ZqKHmv^8fr+iwW{4ZMex;~9i{}wgJZcyCELpjNt!zKwAXXeOKVE~c zqFbsz&s9`TZ&m+^)<3$z^LcKf)3PeUcYQXBdFrf#a?zU=4Mm1sYq2{?kqn9D@tL8w zR2$U72p5;NE{uiYd*YcE(W_j>#6td1X8Bnoh3p@C6LnCog|bXRNL7d%(&r}Pda%jF z*Nc(Sqo6)Yq1rBLJA*LGbU3%dZ}=tKFNZ_UP-nffA#)y=A21SooQdCaBPm36{aVtF zWhvNRCl7S*t47>(IEraZ|JFFigtbo2yE$WbF>#euQ& z3MdSL$^>K0(T>v&cyX>OnhJ9W?j;yKGO3YwtHa<;6mQ$V+=^URE+*=hN=`0}F;HdQ zTzYOe{S@zV`3+0mQsEi&aCutwDqZv7Qm@@8NG+>Wl`) zA3aMPuqyObW%1=*0n|U6vgf70B1jqUha=DyK?|KIJ;J{=uBkl%0Oni92RYmUB3YJRRG-+HZ;|+5;;aG73y2sQ$=vpw4>J^22tFigT zLzCgFWjR=K1fi;m2(8$xU6#s-ZP6N`K32#-YwtRJP%N34=f8(YSmL6S@nKva6||=3 z@jbMZv6DPw@pvrT8_y5xxu#MXo;`6%f4evA2z39YSQa^rjLn$1pkbeKPZ3Nq+m$HM zRSgwB3LzO&yW~!%i`M&e(aUET7WHaivPYkCq#9h7B&O*8sTQ5#=G^&HzAyBroSfx) zFvOVa2KH4iJI|bPcINemFMZhBk|@<{u=Vq^*8&tn^z5uNt{G{?*~A2A9pUZiP4x5g zlgD}T7f9Y<++?#c_#5OAO|+NZ$88{*6i%xVGwAJ_#-<}L2XCi$`EQV-RH3%s`}!h5 z_V(4@Z^n}rl7rI(@kH5)Csevy&HApBvc9C0K2&%%g5kSoa7XSsyfFb2OS4-`Y~I_` z;oL4Zux7Vv7C)6-;7Obx6UzjWpR$>w_@-<%(^bTA46kl#k!(3#4l4ZSCDr?}}_5k(c`R}Aw$z848 zJtq_7Ugv6p9E;6IgN>$53ocMCSLus4x%gUB@xmLlhFVLtwlv|zAJ|V9>M|GxnjzV+ zL*l;*WQAcH8x(%D99O^QP6oU%G{eo6wD{_R;z;@zt`(hmDH2g#w?sC9`?=gU4GZ zg3P+6=hn<^7=E&UQhl<14_5RI%PS`tgQHC0{0i0-`36oMW*B3mv7)B|gX*_g%T@No zs4tytko~d(?^Zda5$Q6)Uk;|TJCXK6uAkNFqp8JVHu+C{ zZ*ZSeyO`~tTUZ(&ULQ2}ZgFVUwbfni#y0(Ag`Zk7kE5Q2x^veYojNQ|d)87;+uF@! zcVs5&5tD*#tlz#HIyn=&KlnrF*C>Sc_Y`^ivtA0FCip#jrR>q1r4NW36Sg}3NZ zX_yK&nL#Zg$6EE7hIlifbQwl?Ajt4^K**q`dQ#EUG1|}}a2mHaE;hi^pMAoqt_ z%=P_Jz3GPJ;C(Kw_2mmk*J2zbZ|S1rd=js4I^FIvb7wwl+g{8myP!4)q4%@pQPkNa zQgM?N$?WMUzdJY4K!yPuiS3GU&m*`Osz+`r&6yj;RMg%@)yO-B^p7Qz$cLQpKeKKT z8)qQ1;P#@PBgb5jkS!XTs9$Qm8^%!b0moO(6dI<2)%+mUBfjk(k>-)NJKPzzO5 zC~|QZ1gkw1Nbi1QF>xYWM^mRH8}$-E_qR4NO3`hbm;JtlkB9d~18^pMIwUxS(OK3+vcjL~oc33s<{z+!{R^AK z-z?XDOzx)+_b(e?4VT56ll;E`e?OS{qk!L$#c1|PLSSx%0r5n~e-3}2aKYt|@_>)U t)5kAR{!t0PKL&&()zE9#_T9iqteW>rIQ!alt&!}p{o3xUtS{Zp{}+@@n>YXf literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Orange/texture_01.png.import b/Assets/Textures/kenny/Orange/texture_01.png.import new file mode 100644 index 0000000..966270c --- /dev/null +++ b/Assets/Textures/kenny/Orange/texture_01.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://1eu6ubigu64i" +path.s3tc="res://.godot/imported/texture_01.png-21904ba99712468e66077bdbdb508efb.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://Assets/Textures/kenny/Orange/texture_01.png" +dest_files=["res://.godot/imported/texture_01.png-21904ba99712468e66077bdbdb508efb.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/kenny/Orange/texture_02.png b/Assets/Textures/kenny/Orange/texture_02.png new file mode 100644 index 0000000000000000000000000000000000000000..dec5b59cc01a269635586fa27586d6b40e511fd0 GIT binary patch literal 2774 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5UnsyQ z#P$C|!~bjC|1UQFKV9lS5cDwU@z^CYFmUC2x;TbZ+A`@48 Q-2s{7>FVdQ&MBb@0EF*zl>h($ literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Orange/texture_02.png.import b/Assets/Textures/kenny/Orange/texture_02.png.import new file mode 100644 index 0000000..aae1419 --- /dev/null +++ b/Assets/Textures/kenny/Orange/texture_02.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b8iefcauntlfr" +path="res://.godot/imported/texture_02.png-6ba53c85eb016038e9eb03ca867ef46d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Orange/texture_02.png" +dest_files=["res://.godot/imported/texture_02.png-6ba53c85eb016038e9eb03ca867ef46d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Orange/texture_03.png b/Assets/Textures/kenny/Orange/texture_03.png new file mode 100644 index 0000000000000000000000000000000000000000..666197fd8ca7c0503d4a0cfc85c763bbfe9272ca GIT binary patch literal 1338 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 NFTU}@Pk+f+_kRU@SZ~ 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 W2iNt1|A!Qr_UKbn_Wp-u&3^$4`OmWe literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Orange/texture_06.png.import b/Assets/Textures/kenny/Orange/texture_06.png.import new file mode 100644 index 0000000..5d0b9c7 --- /dev/null +++ b/Assets/Textures/kenny/Orange/texture_06.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://10al17kdi8dt" +path="res://.godot/imported/texture_06.png-901615c60be874edc11fe06ec267294b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Orange/texture_06.png" +dest_files=["res://.godot/imported/texture_06.png-901615c60be874edc11fe06ec267294b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Orange/texture_07.png b/Assets/Textures/kenny/Orange/texture_07.png new file mode 100644 index 0000000000000000000000000000000000000000..95f27900aba93f43bbf38394db959dd5bfe51f81 GIT binary patch literal 2739 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5Un0OK z#P$D{$p72p|F5wBf1vdLuC)I^FkR|@4@3RxmIej}E;mmX$B>F!Z?7HfJ!Bx_dQs;^ zBin=sW3FO0|Nt5 z&VSG0pyl^q@?OS2EGYVk4Kj8HwD5WG_Or#YI)=6H@5>x0?&DqX^)DmH4EA5aHZu&0Y-NX4zU*Bp6|IPkDI1{<_47T|i=|I*=y zV05sW!K+Z)ZFPFTP6;nzu1NdN_x@+ue(l}zKr=@HsUeUc-Ef=n^50i)>PXc&svZ^s z4Ymw<>^|RjZ~Dy$6B?yS4S{bAJ7f*+u0QvVom8Ep>VY9}gKa^2_~Go|@$Z-!8rXgA zu`@K>olE)e-c@Ne6|3e z5Z9-*4F7u=PBVScVqjoW@^o=u4riffzr9b?c&4p7seN+xv;9}r zZZCf&2DEJy3~UHU@E-U+QTo8^SuzKrikTxoDP_a}WhRTOFV4j>TTFS;SIf*Xzkcp+ zHUYc;MX#j~n8_U2m(8%dfI-^2L3YFh2+*Sq7a3~a?PRpkKgqadooT~0#*yUt!RXgN zEDO}utK^@mW4Nh*V9H<4Gyhnb2BSMimYWV_FvMNI!?3Ua3B$BW(g&hOQZ|tgJh0HE z{EgIsm2Tzlq#b_zIlVTU;o;}?#rGM?9x|B4GT&%pzHyuJ&4@}7J!}suPx3w}_UBtr qx|VSZ--z=3AoT15bq3W+)5`xrFU2I1c^@qRInmSA&t;ucLK6UL2#%8g literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Orange/texture_10.png.import b/Assets/Textures/kenny/Orange/texture_10.png.import new file mode 100644 index 0000000..6b41ec9 --- /dev/null +++ b/Assets/Textures/kenny/Orange/texture_10.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ds034otg5ppmx" +path="res://.godot/imported/texture_10.png-d5c32d7ba6a93e4d9448016f7d97b06a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Orange/texture_10.png" +dest_files=["res://.godot/imported/texture_10.png-d5c32d7ba6a93e4d9448016f7d97b06a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Orange/texture_11.png b/Assets/Textures/kenny/Orange/texture_11.png new file mode 100644 index 0000000000000000000000000000000000000000..dc94567ff8c6302a91459d75cc5f8222841286ff GIT binary patch literal 9194 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Orange/texture_11.png.import b/Assets/Textures/kenny/Orange/texture_11.png.import new file mode 100644 index 0000000..eb0c21f --- /dev/null +++ b/Assets/Textures/kenny/Orange/texture_11.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://o7y5ldmo52gb" +path="res://.godot/imported/texture_11.png-0db65240315324be71fbaf9d0ba7f26f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Orange/texture_11.png" +dest_files=["res://.godot/imported/texture_11.png-0db65240315324be71fbaf9d0ba7f26f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Orange/texture_12.png b/Assets/Textures/kenny/Orange/texture_12.png new file mode 100644 index 0000000000000000000000000000000000000000..b730544dff562baecabd1518f7a46ffc8cfe46cc GIT binary patch literal 9054 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 I7l%9l0=zgXu>b%7 literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Orange/texture_12.png.import b/Assets/Textures/kenny/Orange/texture_12.png.import new file mode 100644 index 0000000..6aee8c3 --- /dev/null +++ b/Assets/Textures/kenny/Orange/texture_12.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dcvo8pyt3dob2" +path="res://.godot/imported/texture_12.png-a3fe18fff68d7047e511ab031d0ed2de.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Orange/texture_12.png" +dest_files=["res://.godot/imported/texture_12.png-a3fe18fff68d7047e511ab031d0ed2de.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Orange/texture_13.png b/Assets/Textures/kenny/Orange/texture_13.png new file mode 100644 index 0000000000000000000000000000000000000000..01f4aa8af14df0cb80ca4548fdc373080ead65cb GIT binary patch literal 9581 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Orange/texture_13.png.import b/Assets/Textures/kenny/Orange/texture_13.png.import new file mode 100644 index 0000000..24c96ab --- /dev/null +++ b/Assets/Textures/kenny/Orange/texture_13.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cseg1slj8ywc2" +path="res://.godot/imported/texture_13.png-54559e1053242f28de103e8bcd7b6c9a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Orange/texture_13.png" +dest_files=["res://.godot/imported/texture_13.png-54559e1053242f28de103e8bcd7b6c9a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Purple/texture_01.png b/Assets/Textures/kenny/Purple/texture_01.png new file mode 100644 index 0000000000000000000000000000000000000000..d501875c6c24e1fe0a85061880855917aa03b8d3 GIT binary patch literal 9797 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Purple/texture_01.png.import b/Assets/Textures/kenny/Purple/texture_01.png.import new file mode 100644 index 0000000..7a36356 --- /dev/null +++ b/Assets/Textures/kenny/Purple/texture_01.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dfsldrhd5gg5j" +path.s3tc="res://.godot/imported/texture_01.png-7061b8dad3a290ac2eeb105c0380d20e.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://Assets/Textures/kenny/Purple/texture_01.png" +dest_files=["res://.godot/imported/texture_01.png-7061b8dad3a290ac2eeb105c0380d20e.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/kenny/Purple/texture_02.png b/Assets/Textures/kenny/Purple/texture_02.png new file mode 100644 index 0000000000000000000000000000000000000000..48a51c1700f525cb537c3a78fa1fa86054cc41ed GIT binary patch literal 2774 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5UnsyQ z#C3zuuN?`$H~9TtZt?5?|NnE9e)-=%vWbC#E8o+_F{I+w+iM4T4=eDnUhv2fFmrgx za)H%pm*ejLTC#`OC;a&*8yR1<$x_a9?&HthPi1TVM_K=$z1JRS_9!4D1aepszD0O_ zsExI*PkEouY{5u|8KYW&A+UkFVfWFZZCg3d?cel$JL8M4b4Iu}Go}w7uNWrCHV8l9AK^hkzV~M{%&?s%R1<&woczt-w;BA%H)(|H ze8co0Z{wWY+@{a#-~7#GP#@vJLB99P7!9g*RDbMSH`ji&njt$F8+sXRCRx=R_#P6O SxZ3Lu$Q(~sKbLh*2~7YsLv|ei literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Purple/texture_02.png.import b/Assets/Textures/kenny/Purple/texture_02.png.import new file mode 100644 index 0000000..445cc7b --- /dev/null +++ b/Assets/Textures/kenny/Purple/texture_02.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bw5hqj0tq8yuv" +path="res://.godot/imported/texture_02.png-452946ab99e6cdaaf9f22986eba7a429.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Purple/texture_02.png" +dest_files=["res://.godot/imported/texture_02.png-452946ab99e6cdaaf9f22986eba7a429.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Purple/texture_03.png b/Assets/Textures/kenny/Purple/texture_03.png new file mode 100644 index 0000000000000000000000000000000000000000..5f97f24f48e1193d0352d162bc402bd69f84a1c0 GIT binary patch literal 1338 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7?_xW6jSkG0T3_U(btiIVPik{pF~z5pEJNG z#PwABpXC<6<|_SC*LbH5RCCAE#WAGf*4xVm1sfE2TpeF6^XJ)tMhqShz@RW|dfb6Kf0~NFiw_=W0bSzHaAZ;PldhEf`}vH6$zcna z98C20HmsiyN+N>=Gzc+VwBa5st^vD4lwncjOV%@I^)1Tl2UP@qU~$l~a$D!|?b~0m qK^0#`#WAGf*4yijye$C&E(hJ1#5Nds9N4es zQXqNh>%0F3v%S(!E`9Y#J%jy2&Fg>Pe}8_lPabIGC?GWi5~Lee>b=}|pDBV=oulfZ zA#j5^VU_o;_uCo7MuUXR5ctM0l&?4;6XtKV;f^YDZ`ZS YOkb>Y{%3I9hy)qo>FVdQ&MBb@0MQd;yZ`_I literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Purple/texture_04.png.import b/Assets/Textures/kenny/Purple/texture_04.png.import new file mode 100644 index 0000000..e9a604f --- /dev/null +++ b/Assets/Textures/kenny/Purple/texture_04.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dpnhrn6ojgtgc" +path="res://.godot/imported/texture_04.png-90d25a46e339068806ce962b2b7011ee.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Purple/texture_04.png" +dest_files=["res://.godot/imported/texture_04.png-90d25a46e339068806ce962b2b7011ee.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Purple/texture_05.png b/Assets/Textures/kenny/Purple/texture_05.png new file mode 100644 index 0000000000000000000000000000000000000000..52352c8f21212dc9317c8017479a8301bfc85a4c GIT binary patch literal 13212 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 T0{*-Pz5K%K&;Rh3to8p7fhL^k literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Purple/texture_05.png.import b/Assets/Textures/kenny/Purple/texture_05.png.import new file mode 100644 index 0000000..e084dc1 --- /dev/null +++ b/Assets/Textures/kenny/Purple/texture_05.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://com3jlavoextm" +path="res://.godot/imported/texture_05.png-54ad07a32f1018b46ea846b4f45f5341.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Purple/texture_05.png" +dest_files=["res://.godot/imported/texture_05.png-54ad07a32f1018b46ea846b4f45f5341.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Purple/texture_06.png b/Assets/Textures/kenny/Purple/texture_06.png new file mode 100644 index 0000000000000000000000000000000000000000..86deeb3fb3fcf2f7e2227e72182db75327112160 GIT binary patch literal 19065 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 RcNCfam&c}k@xZ**{{;h$Obh@3 literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Purple/texture_06.png.import b/Assets/Textures/kenny/Purple/texture_06.png.import new file mode 100644 index 0000000..64f2a66 --- /dev/null +++ b/Assets/Textures/kenny/Purple/texture_06.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ebbaxhn8e1xb" +path="res://.godot/imported/texture_06.png-9c0680d74e22754b24feffe370d06340.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Purple/texture_06.png" +dest_files=["res://.godot/imported/texture_06.png-9c0680d74e22754b24feffe370d06340.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Purple/texture_07.png b/Assets/Textures/kenny/Purple/texture_07.png new file mode 100644 index 0000000000000000000000000000000000000000..b71ce4e6af126231de7672e2e877c6c39a67d3c9 GIT binary patch literal 2739 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5Un0OK z#C3oE?}H`3w?_Ux)&A#5)t~?W|1Y=rHCO4Ec@;fM6w50sQT&42m)d;Rle@;mDp85$TF z4HOvISPnEWNC+@6GbK1M@Nf_ktYBbx!FYjr0lNc#gB*h`Llwi9fe`?P5wUJY@!bao z2BMt*p2I=Q@4@7~jDJ{A^b;Fo>RYv13OIZ)ikyWs0zMvxyy2>9`a z`HkMx^mV-7Vwol0{#&m()%ASl*J3@}`4`{KpI*nD6ZW4iXLlWQPg(tc#y{*MBvioO ze84ULpsoXyAZ9ZYl{9hWy;|OekU0m`tC@dr5}Qa-N&tR_fy~c{VgwW@M3qJ8`BIL7 z*y5;~aYC2ykCc1{dqxt=Kd_w-7#Rk>00adXD5waR+34W}^fEI8k>z)-K0{C;)BHEQ z57bGjCt!BkFrZfu`SXt(eq+w4{r`+%UU3evJOrk@5d#jS%O{ktv?1O9{>Gq6O8l7&W43+KR9&f0$rR&QT@W0l@G9TW$iu6{1-oD!M< D)S2}Y literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Purple/texture_07.png.import b/Assets/Textures/kenny/Purple/texture_07.png.import new file mode 100644 index 0000000..7d3a41e --- /dev/null +++ b/Assets/Textures/kenny/Purple/texture_07.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dg25hk82shhyl" +path="res://.godot/imported/texture_07.png-e09d9fb5e25f6e52305c8bb974b4af7f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Purple/texture_07.png" +dest_files=["res://.godot/imported/texture_07.png-e09d9fb5e25f6e52305c8bb974b4af7f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Purple/texture_08.png b/Assets/Textures/kenny/Purple/texture_08.png new file mode 100644 index 0000000000000000000000000000000000000000..470cc5c4e95deca069225ffaeda9c412932dab23 GIT binary patch literal 2743 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5pFhAS z#C5UvvkiW~|NsBrEB9co(yyCBuYNNya0Pq1IEGZ*dV9^0_lN@zi({}s>tX?}hy5=d zeh5Yfs~NlswcS>y_v@7K66T7u?|konmhIQxEe|wv6p$JM3DOO>8882R^`?$gouleu zA<$sUkjL)xefOr{j4+{5n$!^Z#;`-y;O_c!@7PJzIjSBQ0yo$eq=z5Q{vH30nW2H* z=N>yl!|nMqUe<+|*^h<~86j}MjA1+Tvfo#4{v|{6s1`^FR5RS+oAItZ^*g8;Fbc>D xfj5i=)(N}f=icQfOZ!OIw1Kyw+m7MTd;Wm6k$T6x#Oy!;;_2$=vd$@?2>{SvWGesw literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Purple/texture_08.png.import b/Assets/Textures/kenny/Purple/texture_08.png.import new file mode 100644 index 0000000..8e47149 --- /dev/null +++ b/Assets/Textures/kenny/Purple/texture_08.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cgi8pjwpl7t66" +path="res://.godot/imported/texture_08.png-98135aa1b06e14f0afd3ff96254f03de.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Purple/texture_08.png" +dest_files=["res://.godot/imported/texture_08.png-98135aa1b06e14f0afd3ff96254f03de.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Purple/texture_09.png b/Assets/Textures/kenny/Purple/texture_09.png new file mode 100644 index 0000000000000000000000000000000000000000..4a3f689861759c61d43c8e0844d0e3d958c14adf GIT binary patch literal 637 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7#Nv>lE)e-c@Ne6|3e z5Z7M02XmEvF@9e#nSp^x$Hg{Pjq@V3Oa_CQSo w2pr@U3i#=T&Ln>~)y>@UV zlc7MvL)%-8vNxJ}J7hb|`Gxj$x9siGiL*WNX;-Z+hqKVL-`*!`JkwU4)IK@;+5RhQ zx0k;X1KKtU1~vpFcn^G^D1G4dESUpQ#mo_)lrmy~GLyyC7w2M`EvCHat7YbxUq5#@ zn}FT_qSw*~%w!Ji%VyYJz#whiAUk3L1nAL*iwrgIb~4)NpJd#!&a~kg<4E%SVD#%B zmIZ3-Rq{{OG2GNYFy$}jnSZQIgVCKM%S{I|7~-zqVc6IIgkjnw=>t(CDVs15PJ53I)iGZY32W*mtqphypI-uoapK5=d#Wzp$P!?*pC(f literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Purple/texture_10.png.import b/Assets/Textures/kenny/Purple/texture_10.png.import new file mode 100644 index 0000000..a488693 --- /dev/null +++ b/Assets/Textures/kenny/Purple/texture_10.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bdln2o524vva7" +path="res://.godot/imported/texture_10.png-6f727fd722909977332b5bf687299368.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Purple/texture_10.png" +dest_files=["res://.godot/imported/texture_10.png-6f727fd722909977332b5bf687299368.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Purple/texture_11.png b/Assets/Textures/kenny/Purple/texture_11.png new file mode 100644 index 0000000000000000000000000000000000000000..ad7bebc8c65c9c1b64046aefa6599f2dc2e2e872 GIT binary patch literal 9192 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Purple/texture_11.png.import b/Assets/Textures/kenny/Purple/texture_11.png.import new file mode 100644 index 0000000..8275d30 --- /dev/null +++ b/Assets/Textures/kenny/Purple/texture_11.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bb5cuipdh77go" +path="res://.godot/imported/texture_11.png-e4fe1b32c0f967466cb17dc2ed9cd637.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Purple/texture_11.png" +dest_files=["res://.godot/imported/texture_11.png-e4fe1b32c0f967466cb17dc2ed9cd637.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Purple/texture_12.png b/Assets/Textures/kenny/Purple/texture_12.png new file mode 100644 index 0000000000000000000000000000000000000000..979ac5a6ce706dc01feb1bf55f430e65b510743c GIT binary patch literal 9059 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Purple/texture_12.png.import b/Assets/Textures/kenny/Purple/texture_12.png.import new file mode 100644 index 0000000..8f40d19 --- /dev/null +++ b/Assets/Textures/kenny/Purple/texture_12.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cv3khmgxn7qvj" +path="res://.godot/imported/texture_12.png-95239019241f5e4e9503d6d4c208fc5b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Purple/texture_12.png" +dest_files=["res://.godot/imported/texture_12.png-95239019241f5e4e9503d6d4c208fc5b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Purple/texture_13.png b/Assets/Textures/kenny/Purple/texture_13.png new file mode 100644 index 0000000000000000000000000000000000000000..2a9df22a249603586d4858e51d6b2461f2ec1866 GIT binary patch literal 9592 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 Tl=xO8e(l?RXjl3UrwjiH{!D^u literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Red/texture_01.png.import b/Assets/Textures/kenny/Red/texture_01.png.import new file mode 100644 index 0000000..69eff5d --- /dev/null +++ b/Assets/Textures/kenny/Red/texture_01.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bh16g6j32q42o" +path.s3tc="res://.godot/imported/texture_01.png-549b58ed7e30d026165be9e13d5d92bc.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://Assets/Textures/kenny/Red/texture_01.png" +dest_files=["res://.godot/imported/texture_01.png-549b58ed7e30d026165be9e13d5d92bc.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/kenny/Red/texture_02.png b/Assets/Textures/kenny/Red/texture_02.png new file mode 100644 index 0000000000000000000000000000000000000000..bf1cb173ba132270f0d3e2a0d98a487927b652f0 GIT binary patch literal 2774 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5UnsyQ z#Pz>n+<*7{|HkqErF{Ma0fWVkpkgKl2CjTh7srr_TW_x&{~b2ezck)J2^D;GT2PAsyFaGBrzopr0Ij8R*Z=?k literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Red/texture_02.png.import b/Assets/Textures/kenny/Red/texture_02.png.import new file mode 100644 index 0000000..cb3c161 --- /dev/null +++ b/Assets/Textures/kenny/Red/texture_02.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://doch175dkew6l" +path="res://.godot/imported/texture_02.png-103a57fa97142313d6de55eacf864156.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Red/texture_02.png" +dest_files=["res://.godot/imported/texture_02.png-103a57fa97142313d6de55eacf864156.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Red/texture_03.png b/Assets/Textures/kenny/Red/texture_03.png new file mode 100644 index 0000000000000000000000000000000000000000..ff09c22c2b1c6a0047418bff6f990f96038c6706 GIT binary patch literal 1338 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7?_xW6jSkG0T3_U(btiIVPik{pF~z5pEJNG z#Pxsa)1a@YbU z2NV6h4eRHFlE`2I4MGeTZMX-EYryUhWmr`ClJ(44eT(w?K^1`?SR8b$+}3$~`}S9C qP=%NlgUjbj+&_L<4klNvD5zuRE$b_Z+ah2La+jy8pUXO@geCynmQBF` literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Red/texture_03.png.import b/Assets/Textures/kenny/Red/texture_03.png.import new file mode 100644 index 0000000..6787857 --- /dev/null +++ b/Assets/Textures/kenny/Red/texture_03.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dnxi4gebmhjd8" +path.s3tc="res://.godot/imported/texture_03.png-1d6eb170932a721c4b2d928f47e2311c.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://Assets/Textures/kenny/Red/texture_03.png" +dest_files=["res://.godot/imported/texture_03.png-1d6eb170932a721c4b2d928f47e2311c.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/kenny/Red/texture_04.png b/Assets/Textures/kenny/Red/texture_04.png new file mode 100644 index 0000000000000000000000000000000000000000..b5b77ff295eaf3b0a532da09e1ddb670cdbd3371 GIT binary patch literal 2727 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5pFhAS z#Pxsgvi}Wp{sV!O&wmCBt1Zkk7#O&mJzX3_DsH{K?#SB`AmDP)jY({SfyaUUYAywm zm%hIHZ!p^{{p8YDkJK~RKh(Vb_x<$npbM}vgC5J=!3tx(7dIk>LT3I!e%WH7cd29z>P`Ofsk VO6PwD$Bjsk5uUDoF6*2UngGl5VF>^L literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Red/texture_04.png.import b/Assets/Textures/kenny/Red/texture_04.png.import new file mode 100644 index 0000000..3f1b616 --- /dev/null +++ b/Assets/Textures/kenny/Red/texture_04.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bmobdvhm6lda6" +path="res://.godot/imported/texture_04.png-9b0487b31c9447ab66f4e7cb7e634efb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Red/texture_04.png" +dest_files=["res://.godot/imported/texture_04.png-9b0487b31c9447ab66f4e7cb7e634efb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Red/texture_05.png b/Assets/Textures/kenny/Red/texture_05.png new file mode 100644 index 0000000000000000000000000000000000000000..7827035ad5242b77c6e55558ee9cdc8a40ceaf60 GIT binary patch literal 13212 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 Pdi|BRU;gng8SDNZR^^!5 literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Red/texture_05.png.import b/Assets/Textures/kenny/Red/texture_05.png.import new file mode 100644 index 0000000..46e7b48 --- /dev/null +++ b/Assets/Textures/kenny/Red/texture_05.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://co07dkdvoptpa" +path="res://.godot/imported/texture_05.png-35b98d6db02dd2c2f2c750965353806f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Red/texture_05.png" +dest_files=["res://.godot/imported/texture_05.png-35b98d6db02dd2c2f2c750965353806f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Red/texture_06.png b/Assets/Textures/kenny/Red/texture_06.png new file mode 100644 index 0000000000000000000000000000000000000000..914a6f14539002083063e0ca45cbd67fe71b1515 GIT binary patch literal 19065 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 MnbSXic){BL0mH6EB>(^b literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Red/texture_06.png.import b/Assets/Textures/kenny/Red/texture_06.png.import new file mode 100644 index 0000000..cea929f --- /dev/null +++ b/Assets/Textures/kenny/Red/texture_06.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://2hfc6ktxmmkw" +path="res://.godot/imported/texture_06.png-57d3ea73786f1597a04f69016f5e55f5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Red/texture_06.png" +dest_files=["res://.godot/imported/texture_06.png-57d3ea73786f1597a04f69016f5e55f5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Red/texture_07.png b/Assets/Textures/kenny/Red/texture_07.png new file mode 100644 index 0000000000000000000000000000000000000000..47d517bfdaa19580e697dc318e04d57dfc00050e GIT binary patch literal 2739 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5Un0OK z#Pxq|u|Mr>xODF$NYyS@fQa=9~EYhR$k{B4c+&o~)y>_tokb#KnMV%Lo zY!f1w1w}6~&Ev}1#?iR!ZziKL=eDo?-@^~-w;w1eb(;V3`S<$g%j9>~Gcq(VG8!l_ zu(2FyV2}`CU}j2iVBp~(Bv`?~@PhFI^8$7U{suV)TZSrzF9Rb03?pLQjN-cw3=Bj$ z|2>C;mfwTPdl~<*py($y$k-Xs!so%;&lbn(7}mbOFLR){k9Wb>zl3pv(DS7n1F^+X zHRFUX;U6ja4EBs9mVaP7A22cud;tgwFi=ntF0;|Y3Fu{J1|rMvT78C~LZf zR8PR{v|&K6AoAxQH~hw&QTzWH!@S}gV0j2kcOwQINS9A2UujdEyWzdmfsF6zopr05lE)e-c@Ne6|3e z5Z9*+M*kTs^uzj>GcYhIdAc};RNQ)dVIwaC0|%4i_xLFH1&cnt@YJ&x-j?{*9;j&m vfrGq);Q(3>w7S7*VC`oR0!8P*fj#Up$N%$vvOU7O2;>M)S3j3^P6l zSQei+z7gg5LFm~B>I|xtrj`GLUW!R1^FCSta-yfJpUXO@geCy;r;B0$ literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Red/texture_10.png.import b/Assets/Textures/kenny/Red/texture_10.png.import new file mode 100644 index 0000000..45a1072 --- /dev/null +++ b/Assets/Textures/kenny/Red/texture_10.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://2lf0v3lain05" +path="res://.godot/imported/texture_10.png-b99488c8376839e9659212836a4f779a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Red/texture_10.png" +dest_files=["res://.godot/imported/texture_10.png-b99488c8376839e9659212836a4f779a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Red/texture_11.png b/Assets/Textures/kenny/Red/texture_11.png new file mode 100644 index 0000000000000000000000000000000000000000..2acc544a9f048de0e4934f939afa60c18a2127df GIT binary patch literal 9207 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 Cs~N!n literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Red/texture_11.png.import b/Assets/Textures/kenny/Red/texture_11.png.import new file mode 100644 index 0000000..29fff57 --- /dev/null +++ b/Assets/Textures/kenny/Red/texture_11.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://fhlv6uvffslr" +path="res://.godot/imported/texture_11.png-d371f1ae8072c74eda0a72c5aedaeb5b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Red/texture_11.png" +dest_files=["res://.godot/imported/texture_11.png-d371f1ae8072c74eda0a72c5aedaeb5b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Red/texture_12.png b/Assets/Textures/kenny/Red/texture_12.png new file mode 100644 index 0000000000000000000000000000000000000000..7054c4d5a58bd3f7ced2d5a8dead971074169532 GIT binary patch literal 9072 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Red/texture_12.png.import b/Assets/Textures/kenny/Red/texture_12.png.import new file mode 100644 index 0000000..c4f56b6 --- /dev/null +++ b/Assets/Textures/kenny/Red/texture_12.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dfje8xtld0cnm" +path="res://.godot/imported/texture_12.png-2c9c8d078c5a586bf8f5dbd6d9328fc7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Red/texture_12.png" +dest_files=["res://.godot/imported/texture_12.png-2c9c8d078c5a586bf8f5dbd6d9328fc7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/kenny/Red/texture_13.png b/Assets/Textures/kenny/Red/texture_13.png new file mode 100644 index 0000000000000000000000000000000000000000..ab8c7b9ea34d477b02bc467f2aee0d645f16002d GIT binary patch literal 9590 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/kenny/Red/texture_13.png.import b/Assets/Textures/kenny/Red/texture_13.png.import new file mode 100644 index 0000000..407a4d7 --- /dev/null +++ b/Assets/Textures/kenny/Red/texture_13.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b8davjerh21ln" +path="res://.godot/imported/texture_13.png-8052da5f6a2ff263030f7fb8cca4efe6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/kenny/Red/texture_13.png" +dest_files=["res://.godot/imported/texture_13.png-8052da5f6a2ff263030f7fb8cca4efe6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Themes/theme.tres b/Assets/Themes/theme.tres new file mode 100644 index 0000000..edbbfe8 --- /dev/null +++ b/Assets/Themes/theme.tres @@ -0,0 +1,13 @@ +[gd_resource type="Theme" load_steps=2 format=3 uid="uid://bvso6uowlb8dh"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4rowt"] +bg_color = Color(0.18359, 0.18359, 0.18359, 1) +border_width_left = 20 +border_width_top = 20 +border_width_right = 20 +border_width_bottom = 20 +border_color = Color(0, 0, 0, 1) + +[resource] +HeaderLarge/font_sizes/font_size = 28 +PanelContainer/styles/panel = SubResource("StyleBoxFlat_4rowt") diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9c0ef87 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Kirill Ivanov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Scenes/Chat/ChatMenu.tscn b/Scenes/Chat/ChatMenu.tscn new file mode 100644 index 0000000..ca9888a --- /dev/null +++ b/Scenes/Chat/ChatMenu.tscn @@ -0,0 +1,60 @@ +[gd_scene load_steps=2 format=3 uid="uid://dtpqexue3vgl6"] + +[ext_resource type="Script" uid="uid://c8k0usfm5rdm3" path="res://Scripts/Chat/chat_menu.gd" id="1_8p1r2"] + +[node name="ChatMenu" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_top = 298.0 +offset_right = -852.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_vertical = 8 +script = ExtResource("1_8p1r2") + +[node name="AspectRatioContainer" type="AspectRatioContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="MarginContainer" type="MarginContainer" parent="AspectRatioContainer"] +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +theme_override_constants/margin_left = 10 +theme_override_constants/margin_top = 10 +theme_override_constants/margin_right = 10 +theme_override_constants/margin_bottom = 10 + +[node name="VBoxContainer" type="VBoxContainer" parent="AspectRatioContainer/MarginContainer"] +layout_mode = 2 + +[node name="ScrollContainer" type="ScrollContainer" parent="AspectRatioContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +follow_focus = true +horizontal_scroll_mode = 0 + +[node name="MessageContainer" type="VBoxContainer" parent="AspectRatioContainer/MarginContainer/VBoxContainer/ScrollContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 10 + +[node name="Label" type="Label" parent="AspectRatioContainer/MarginContainer/VBoxContainer/ScrollContainer/MessageContainer"] +layout_mode = 2 + +[node name="CommandScrollContainer" type="ScrollContainer" parent="AspectRatioContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 +vertical_scroll_mode = 0 + +[node name="CommandTextEdit" type="TextEdit" parent="AspectRatioContainer/MarginContainer/VBoxContainer/CommandScrollContainer"] +custom_minimum_size = Vector2(0, 35) +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="VisibleTimer" type="Timer" parent="."] +wait_time = 5.0 diff --git a/Scenes/Items/goblet.tscn b/Scenes/Items/goblet.tscn new file mode 100644 index 0000000..f321721 --- /dev/null +++ b/Scenes/Items/goblet.tscn @@ -0,0 +1,80 @@ +[gd_scene load_steps=12 format=3 uid="uid://cfsot3wc41tx"] + +[ext_resource type="Script" uid="uid://bntxwxn6ns5l0" path="res://Scripts/Items/goblet.gd" id="1_ihtnh"] +[ext_resource type="Script" uid="uid://ctwdmnqaxkty" path="res://Scripts/Resources/item.gd" id="2_ihtnh"] +[ext_resource type="Texture2D" uid="uid://1eu6ubigu64i" path="res://Assets/Textures/kenny/Orange/texture_01.png" id="3_ihtnh"] +[ext_resource type="Script" uid="uid://bahmrqvs4pafg" path="res://Scripts/Items/interactable.gd" id="4_ajay6"] +[ext_resource type="Shader" uid="uid://c0chn7ll6p7yk" path="res://Assets/Shaders/outline.gdshader" id="4_lowgp"] + +[sub_resource type="Resource" id="Resource_lowgp"] +script = ExtResource("2_ihtnh") +value = 100 +name = "Golden Goblet" +weight = 10 +primary_objective = true +secondary_objective = false +metadata/_custom_type_script = "uid://ctwdmnqaxkty" + +[sub_resource type="BoxMesh" id="BoxMesh_lowgp"] +size = Vector3(0.25, 1, 0.25) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ajay6"] +albedo_texture = ExtResource("3_ihtnh") +uv1_triplanar = true + +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_ihtnh"] +points = PackedVector3Array(-0.125, -0.5, -0.125, -0.125, -0.5, 0.125, -0.125, 0.5, -0.125, 0.125, -0.5, -0.125, 0.125, -0.5, 0.125, -0.125, 0.5, 0.125, 0.125, 0.5, -0.125, 0.125, 0.5, 0.125) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_ajay6"] +render_priority = 0 +shader = ExtResource("4_lowgp") +shader_parameter/normal_threshold = 1.5 +shader_parameter/depth_threshold = 0.05 +shader_parameter/depth_artifact_correction_coef = 2.0 +shader_parameter/outline_color = Color(0.882353, 0.882353, 0.882353, 1) + +[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_ajay6"] +properties/0/path = NodePath(".:position") +properties/0/spawn = true +properties/0/replication_mode = 1 +properties/1/path = NodePath(".:rotation") +properties/1/spawn = true +properties/1/replication_mode = 1 +properties/2/path = NodePath(".:visible") +properties/2/spawn = true +properties/2/replication_mode = 1 +properties/3/path = NodePath(".:collision_layer") +properties/3/spawn = true +properties/3/replication_mode = 1 +properties/4/path = NodePath(".:freeze") +properties/4/spawn = true +properties/4/replication_mode = 1 + +[node name="Goblet" type="RigidBody3D"] +collision_layer = 2 +collision_mask = 3 +continuous_cd = true +script = ExtResource("1_ihtnh") +item = SubResource("Resource_lowgp") + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) +mesh = SubResource("BoxMesh_lowgp") +surface_material_override/0 = SubResource("StandardMaterial3D_ajay6") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) +shape = SubResource("ConvexPolygonShape3D_ihtnh") + +[node name="Interactable" type="Node3D" parent="."] +script = ExtResource("4_ajay6") + +[node name="outline" type="MeshInstance3D" parent="Interactable"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) +visible = false +mesh = SubResource("BoxMesh_lowgp") +skeleton = NodePath("../..") +surface_material_override/0 = SubResource("ShaderMaterial_ajay6") + +[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."] +replication_config = SubResource("SceneReplicationConfig_ajay6") diff --git a/Scenes/Lobby.tscn b/Scenes/Lobby.tscn new file mode 100644 index 0000000..e44e8e9 --- /dev/null +++ b/Scenes/Lobby.tscn @@ -0,0 +1,59 @@ +[gd_scene load_steps=5 format=3 uid="uid://x4ohd5qj3xpy"] + +[ext_resource type="Texture2D" uid="uid://youvyib1feqp" path="res://Assets/Textures/kenny/Dark/texture_02.png" id="1_bpe3w"] +[ext_resource type="Script" uid="uid://cdc5npqxn0eda" path="res://Scripts/Level/lobby.gd" id="1_lolwk"] +[ext_resource type="PackedScene" uid="uid://cfsot3wc41tx" path="res://Scenes/Items/goblet.tscn" id="3_wgubu"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8j60k"] +albedo_texture = ExtResource("1_bpe3w") +uv1_triplanar = true + +[node name="Lobby" type="Node3D"] +script = ExtResource("1_lolwk") + +[node name="Terrain" type="Node3D" parent="."] + +[node name="Floor" type="CSGBox3D" parent="Terrain"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.25, 0) +material_override = SubResource("StandardMaterial3D_8j60k") +use_collision = true +size = Vector3(25, 0.5, 25) + +[node name="Wall1" type="CSGBox3D" parent="Terrain"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 13) +material_override = SubResource("StandardMaterial3D_8j60k") +use_collision = true +size = Vector3(27, 3, 1) + +[node name="Wall2" type="CSGBox3D" parent="Terrain"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -13) +material_override = SubResource("StandardMaterial3D_8j60k") +use_collision = true +size = Vector3(27, 3, 1) + +[node name="Wall3" type="CSGBox3D" parent="Terrain"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13, 1, 0) +material_override = SubResource("StandardMaterial3D_8j60k") +use_collision = true +size = Vector3(1, 3, 25) + +[node name="Wall4" type="CSGBox3D" parent="Terrain"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13, 1, 0) +material_override = SubResource("StandardMaterial3D_8j60k") +use_collision = true +size = Vector3(1, 3, 25) + +[node name="spawnpoint1" type="Marker3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.06025, 9.57144) + +[node name="spawnpoint2" type="Marker3D" parent="."] +transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.75494, -11.1718) + +[node name="spawnpoint3" type="Marker3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.3942, 1.59, -0.787676) + +[node name="spawnpoint4" type="Marker3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.92384, 1.69536, -1.57535) + +[node name="Goblet" parent="." instance=ExtResource("3_wgubu")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.07599, 2, 0) diff --git a/Scenes/Menu/InventoryMenu.tscn b/Scenes/Menu/InventoryMenu.tscn new file mode 100644 index 0000000..cd5e04d --- /dev/null +++ b/Scenes/Menu/InventoryMenu.tscn @@ -0,0 +1,58 @@ +[gd_scene load_steps=5 format=3 uid="uid://01ujg1e7atlb"] + +[ext_resource type="Script" uid="uid://ddwvtegkiite7" path="res://Scripts/Menu/inventory_menu.gd" id="1_iulmg"] +[ext_resource type="Theme" uid="uid://bvso6uowlb8dh" path="res://Assets/Themes/theme.tres" id="1_r3ydb"] +[ext_resource type="PackedScene" uid="uid://bnpbkpr5ref6k" path="res://Scenes/Menu/InventoryUiItem.tscn" id="2_o58an"] + +[sub_resource type="Theme" id="Theme_r3ydb"] + +[node name="InventoryMenu" type="Node"] +script = ExtResource("1_iulmg") + +[node name="CanvasLayer" type="CanvasLayer" parent="."] + +[node name="Panel" type="Panel" parent="CanvasLayer"] +offset_left = 241.0 +offset_top = 146.0 +offset_right = 241.0 +offset_bottom = 146.0 + +[node name="PanelContainer" type="PanelContainer" parent="CanvasLayer"] +offset_left = 159.0 +offset_top = 94.0 +offset_right = 1042.0 +offset_bottom = 578.0 +theme = ExtResource("1_r3ydb") + +[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/PanelContainer"] +layout_mode = 2 + +[node name="Title" type="Label" parent="CanvasLayer/PanelContainer/VBoxContainer"] +layout_mode = 2 +theme = SubResource("Theme_r3ydb") +theme_type_variation = &"HeaderLarge" +text = "Inventory" +horizontal_alignment = 1 + +[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer/PanelContainer/VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +theme_override_constants/margin_left = 20 +theme_override_constants/margin_top = 20 +theme_override_constants/margin_right = 20 +theme_override_constants/margin_bottom = 20 + +[node name="ScrollContainer" type="ScrollContainer" parent="CanvasLayer/PanelContainer/VBoxContainer/MarginContainer"] +layout_mode = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/PanelContainer/VBoxContainer/MarginContainer/ScrollContainer"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="ItemHeader" parent="CanvasLayer/PanelContainer/VBoxContainer/MarginContainer/ScrollContainer/VBoxContainer" instance=ExtResource("2_o58an")] +layout_mode = 2 + +[node name="CloseButton" type="Button" parent="CanvasLayer/PanelContainer/VBoxContainer"] +layout_mode = 2 +text = "Close +" diff --git a/Scenes/Menu/InventoryUiItem.tscn b/Scenes/Menu/InventoryUiItem.tscn new file mode 100644 index 0000000..76e9ac7 --- /dev/null +++ b/Scenes/Menu/InventoryUiItem.tscn @@ -0,0 +1,28 @@ +[gd_scene load_steps=2 format=3 uid="uid://bnpbkpr5ref6k"] + +[ext_resource type="Script" uid="uid://bv3glh0xi771m" path="res://Scripts/Menu/inventory_ui_item.gd" id="1_ahd61"] + +[node name="ItemHeader" type="HBoxContainer"] +size_flags_vertical = 0 +script = ExtResource("1_ahd61") + +[node name="Icon" type="Label" parent="."] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Icon" + +[node name="Name" type="Label" parent="."] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_stretch_ratio = 5.0 +text = "Name" + +[node name="Value" type="Label" parent="."] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Value" + +[node name="Weight" type="Label" parent="."] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Weight" diff --git a/Scenes/Menu/LobbyMenu.tscn b/Scenes/Menu/LobbyMenu.tscn new file mode 100644 index 0000000..268c809 --- /dev/null +++ b/Scenes/Menu/LobbyMenu.tscn @@ -0,0 +1,137 @@ +[gd_scene load_steps=3 format=3 uid="uid://dt1v3f2oc7vbw"] + +[ext_resource type="Script" uid="uid://b2pee67ics25u" path="res://Scripts/Menu/lobby_menu.gd" id="1_4ga1p"] +[ext_resource type="Theme" uid="uid://bvso6uowlb8dh" path="res://Assets/Themes/theme.tres" id="2_oc7xs"] + +[node name="LobbyMenu" type="Control"] +process_mode = 3 +z_index = 1 +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 6 +size_flags_vertical = 6 +script = ExtResource("1_4ga1p") + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] +layout_mode = 2 +theme_override_constants/separation = 20 + +[node name="LobbyLabel" type="Label" parent="VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "Lobby" + +[node name="SteamLobbyIdButton" type="Button" parent="VBoxContainer/HBoxContainer"] +visible = false +layout_mode = 2 +text = "Copy Lobby Code" + +[node name="Disconnect" type="Button" parent="VBoxContainer/HBoxContainer"] +visible = false +layout_mode = 2 +text = "Disconnect" + +[node name="Name" type="LineEdit" parent="VBoxContainer"] +layout_mode = 2 + +[node name="TabContainer" type="TabContainer" parent="VBoxContainer"] +layout_mode = 2 +current_tab = 0 + +[node name="Steam" type="Control" parent="VBoxContainer/TabContainer"] +layout_mode = 2 +metadata/_tab_index = 0 + +[node name="PanelContainer" type="PanelContainer" parent="VBoxContainer/TabContainer/Steam"] +layout_mode = 1 +anchors_preset = 10 +anchor_right = 1.0 +offset_bottom = 187.0 +grow_horizontal = 2 + +[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/TabContainer/Steam/PanelContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 10 +theme_override_constants/margin_top = 10 +theme_override_constants/margin_right = 10 +theme_override_constants/margin_bottom = 10 + +[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/TabContainer/Steam/PanelContainer/MarginContainer"] +layout_mode = 2 + +[node name="Address" type="LineEdit" parent="VBoxContainer/TabContainer/Steam/PanelContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="Host" type="Button" parent="VBoxContainer/TabContainer/Steam/PanelContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Host +" + +[node name="Join" type="Button" parent="VBoxContainer/TabContainer/Steam/PanelContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Join +" + +[node name="ENet" type="Control" parent="VBoxContainer/TabContainer"] +visible = false +layout_mode = 2 +metadata/_tab_index = 1 + +[node name="PanelContainer" type="PanelContainer" parent="VBoxContainer/TabContainer/ENet"] +layout_mode = 1 +anchors_preset = 10 +anchor_right = 1.0 +offset_bottom = 83.0 +grow_horizontal = 2 + +[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/TabContainer/ENet/PanelContainer"] +layout_mode = 2 +theme = ExtResource("2_oc7xs") +theme_override_constants/margin_left = 20 +theme_override_constants/margin_top = 20 +theme_override_constants/margin_right = 20 +theme_override_constants/margin_bottom = 20 + +[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/TabContainer/ENet/PanelContainer/MarginContainer"] +layout_mode = 2 + +[node name="HostToggleContainer" type="HBoxContainer" parent="VBoxContainer/TabContainer/ENet/PanelContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="HostLabel" type="Label" parent="VBoxContainer/TabContainer/ENet/PanelContainer/MarginContainer/VBoxContainer/HostToggleContainer"] +layout_mode = 2 +text = "Host" + +[node name="Host" type="CheckButton" parent="VBoxContainer/TabContainer/ENet/PanelContainer/MarginContainer/VBoxContainer/HostToggleContainer"] +layout_mode = 2 + +[node name="Address" type="LineEdit" parent="VBoxContainer/TabContainer/ENet/PanelContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 +placeholder_text = "Enter IP Address to Join" + +[node name="Join" type="Button" parent="VBoxContainer/TabContainer/ENet/PanelContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Join" + +[node name="LobbyContainer" type="VBoxContainer" parent="."] +layout_mode = 1 +anchors_preset = 3 +anchor_left = 1.0 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -40.0 +offset_top = -40.0 +grow_horizontal = 0 +grow_vertical = 0 diff --git a/Scenes/Mobs/character.tscn b/Scenes/Mobs/character.tscn new file mode 100644 index 0000000..b6b180a --- /dev/null +++ b/Scenes/Mobs/character.tscn @@ -0,0 +1,483 @@ +[gd_scene load_steps=26 format=3 uid="uid://cc1m2a1obsyn4"] + +[ext_resource type="Script" uid="uid://c1um4tmthbbpk" path="res://Scripts/fpc/character.gd" id="1_0t4e8"] +[ext_resource type="Script" uid="uid://darcj1vokaiv2" path="res://Scripts/Resources/inventory.gd" id="2_bmlhv"] +[ext_resource type="Script" uid="uid://c5g0jt1apb2al" path="res://Scripts/fpc/EditorModule.gd" id="3_v3ckk"] +[ext_resource type="Script" uid="uid://bhfftu01dsfk7" path="res://Scripts/fpc/debug.gd" id="3_x1wcc"] +[ext_resource type="PackedScene" uid="uid://01ujg1e7atlb" path="res://Scenes/Menu/InventoryMenu.tscn" id="4_8j081"] + +[sub_resource type="Resource" id="Resource_jcsm3"] +script = ExtResource("2_bmlhv") +metadata/_custom_type_script = "uid://darcj1vokaiv2" + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kp17n"] +albedo_color = Color(0, 1, 0, 1) +clearcoat_enabled = true +clearcoat_roughness = 0.2 + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_jw1de"] +material = SubResource("StandardMaterial3D_kp17n") + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_uy03j"] + +[sub_resource type="Animation" id="Animation_j8cx7"] +resource_name = "RESET" +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Mesh:position") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 1, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Collision:position") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 1, 0)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Head:position") +tracks/2/interp = 2 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 1.5, 0)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Mesh:mesh:height") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [2.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Collision:shape:height") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [2.0] +} + +[sub_resource type="Animation" id="Animation_5ec5e"] +resource_name = "crouch" +length = 0.2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Mesh:position") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0, 1, 0), Vector3(0, 0.75, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Collision:position") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0, 1, 0), Vector3(0, 0.75, 0)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Head:position") +tracks/2/interp = 2 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0, 1.5, 0), Vector3(0, 1.12508, 0)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Mesh:mesh:height") +tracks/3/interp = 2 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [2.0, 1.5] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Collision:shape:height") +tracks/4/interp = 2 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [2.0, 1.5] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_5e5t5"] +_data = { +&"RESET": SubResource("Animation_j8cx7"), +&"crouch": SubResource("Animation_5ec5e") +} + +[sub_resource type="Animation" id="Animation_gh776"] +resource_name = "RESET" +length = 0.001 +loop_mode = 1 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera:position:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Camera:position:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} + +[sub_resource type="Animation" id="Animation_8ku67"] +resource_name = "sprint" +length = 2.0 +loop_mode = 1 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera:position:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0, 1, 0, 1, 0), +"points": PackedFloat32Array(0.06, -0.25, 0, 0.25, -0.01, 0, 0, 0, 0, 0, -0.06, -0.25, 0.01, 0.25, 0.01, 0, 0, 0, 0, 0, 0.06, -0.25, -0.01, 0.25, 0), +"times": PackedFloat32Array(0, 0.5, 1, 1.5, 2) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Camera:position:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0, 0, 0, 0, 0), +"points": PackedFloat32Array(0.05, -0.25, 0, 0.2, -0.01, 0, -0.2, 0.000186046, 0.2, 0.000186046, 0.05, -0.2, -0.01, 0.2, -0.01, 0, -0.2, 0, 0.2, 0, 0.05, -0.2, -0.01, 0.25, 0), +"times": PackedFloat32Array(0, 0.5, 1, 1.5, 2) +} + +[sub_resource type="Animation" id="Animation_lrqmv"] +resource_name = "walk" +length = 2.0 +loop_mode = 1 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera:position:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0, 1, 0, 1, 0), +"points": PackedFloat32Array(0.04, -0.25, 0, 0.25, 0, 0, 0, 0, 0, 0, -0.04, -0.25, 0, 0.25, 0, 0, 0, 0, 0, 0, 0.04, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 0.5, 1, 1.5, 2) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Camera:position:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0, 0, 0, 0, 0), +"points": PackedFloat32Array(-0.05, -0.25, 0, 0.2, 0.005, 0, -0.2, 0.000186046, 0.2, 0.000186046, -0.05, -0.2, 0.005, 0.2, 0.005, 0, -0.2, 0, 0.2, 0, -0.05, -0.2, 0.005, 0.25, 0), +"times": PackedFloat32Array(0, 0.5, 1, 1.5, 2) +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_o0unb"] +_data = { +&"RESET": SubResource("Animation_gh776"), +&"sprint": SubResource("Animation_8ku67"), +&"walk": SubResource("Animation_lrqmv") +} + +[sub_resource type="Animation" id="Animation_fvvjq"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 0, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Camera:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 0, 0)] +} + +[sub_resource type="Animation" id="Animation_s07ye"] +resource_name = "jump" +length = 3.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera:rotation") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.6, 3), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(0.0349066, 0, 0), Vector3(0, 0, 0)] +} + +[sub_resource type="Animation" id="Animation_3eyjl"] +resource_name = "land_center" +length = 1.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera:rotation") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5, 1.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(-0.0349066, 0, 0), Vector3(0, 0, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Camera:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.5, 1.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(0, -0.1, 0), Vector3(0, 0, 0)] +} + +[sub_resource type="Animation" id="Animation_l1rph"] +resource_name = "land_left" +length = 1.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera:rotation") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5, 1.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(-0.0349066, 0, 0.0174533), Vector3(0, 0, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Camera:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.5, 1.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(0, -0.1, 0), Vector3(0, 0, 0)] +} + +[sub_resource type="Animation" id="Animation_vsknp"] +resource_name = "land_right" +length = 1.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera:rotation") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5, 1.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(-0.0349066, 0, -0.0174533), Vector3(0, 0, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Camera:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.5, 1.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(0, -0.1, 0), Vector3(0, 0, 0)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_qeg5r"] +_data = { +&"RESET": SubResource("Animation_fvvjq"), +&"jump": SubResource("Animation_s07ye"), +&"land_center": SubResource("Animation_3eyjl"), +&"land_left": SubResource("Animation_l1rph"), +&"land_right": SubResource("Animation_vsknp") +} + +[sub_resource type="Theme" id="Theme_wdf0f"] +MarginContainer/constants/margin_bottom = 10 +MarginContainer/constants/margin_left = 10 +MarginContainer/constants/margin_right = 10 +MarginContainer/constants/margin_top = 10 + +[sub_resource type="SphereShape3D" id="SphereShape3D_k4wwl"] + +[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_a88hh"] +properties/0/path = NodePath(".:position") +properties/0/spawn = true +properties/0/replication_mode = 1 +properties/1/path = NodePath(".:rotation") +properties/1/spawn = true +properties/1/replication_mode = 1 +properties/2/path = NodePath("Head:rotation") +properties/2/spawn = true +properties/2/replication_mode = 1 + +[node name="Character" type="CharacterBody3D" node_paths=PackedStringArray("HEAD", "CAMERA", "CAMERA_RAYCAST", "HEADBOB_ANIMATION", "JUMP_ANIMATION", "CROUCH_ANIMATION", "COLLISION_MESH")] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 0) +script = ExtResource("1_0t4e8") +HEAD = NodePath("Head") +CAMERA = NodePath("Head/Camera") +CAMERA_RAYCAST = NodePath("Head/Camera/CamRayCast3D") +INVENTORY = SubResource("Resource_jcsm3") +HEADBOB_ANIMATION = NodePath("Head/HeadbobAnimation") +JUMP_ANIMATION = NodePath("Head/JumpAnimation") +CROUCH_ANIMATION = NodePath("CrouchAnimation") +COLLISION_MESH = NodePath("Collision") + +[node name="Mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) +mesh = SubResource("CapsuleMesh_jw1de") + +[node name="Collision" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) +shape = SubResource("CapsuleShape3D_uy03j") + +[node name="CrouchAnimation" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_5e5t5") +} + +[node name="Head" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) + +[node name="Camera" type="Camera3D" parent="Head"] + +[node name="CamRayCast3D" type="RayCast3D" parent="Head/Camera"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.72772e-08, 0, -0.395256) +target_position = Vector3(0, 0, -2) +collision_mask = 3 + +[node name="HeadbobAnimation" type="AnimationPlayer" parent="Head"] +libraries = { +&"": SubResource("AnimationLibrary_o0unb") +} +blend_times = [&"RESET", &"RESET", 0.5, &"RESET", &"walk", 0.5, &"walk", &"RESET", 0.5] + +[node name="JumpAnimation" type="AnimationPlayer" parent="Head"] +libraries = { +&"": SubResource("AnimationLibrary_qeg5r") +} +speed_scale = 4.0 + +[node name="UserInterface" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1 + +[node name="DebugPanel" type="PanelContainer" parent="UserInterface"] +visible = false +layout_mode = 0 +offset_left = 10.0 +offset_top = 10.0 +offset_right = 453.0 +offset_bottom = 50.0 +theme = SubResource("Theme_wdf0f") +script = ExtResource("3_x1wcc") + +[node name="MarginContainer" type="MarginContainer" parent="UserInterface/DebugPanel"] +layout_mode = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="UserInterface/DebugPanel/MarginContainer"] +layout_mode = 2 + +[node name="InventoryMenu" parent="UserInterface" instance=ExtResource("4_8j081")] + +[node name="CrouchCeilingDetection" type="ShapeCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) +shape = SubResource("SphereShape3D_k4wwl") +target_position = Vector3(0, 0.5, 0) + +[node name="EditorModule" type="Node" parent="."] +script = ExtResource("3_v3ckk") + +[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."] +replication_config = SubResource("SceneReplicationConfig_a88hh") diff --git a/Scenes/Server/Server.tscn b/Scenes/Server/Server.tscn new file mode 100644 index 0000000..af9547c --- /dev/null +++ b/Scenes/Server/Server.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://d1ofd327cqcd1"] + +[ext_resource type="Script" uid="uid://dwwtrox3lp2jp" path="res://scripts/server/server.gd" id="1_tov25"] + +[node name="Server" type="Node"] +script = ExtResource("1_tov25") diff --git a/Scenes/Server/ServerLobby.tscn b/Scenes/Server/ServerLobby.tscn new file mode 100644 index 0000000..f50e889 --- /dev/null +++ b/Scenes/Server/ServerLobby.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://cibp7jxet63em"] + +[ext_resource type="Script" uid="uid://dql0i4kd8813p" path="res://scripts/server/server_lobby.gd" id="1_omv2j"] + +[node name="ServerLobby" type="Node"] +script = ExtResource("1_omv2j") diff --git a/Scenes/quality-godot-first-person-2-main/.gitattributes b/Scenes/quality-godot-first-person-2-main/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/Scenes/quality-godot-first-person-2-main/.gitignore b/Scenes/quality-godot-first-person-2-main/.gitignore new file mode 100644 index 0000000..4709183 --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/.gitignore @@ -0,0 +1,2 @@ +# Godot 4+ specific ignores +.godot/ diff --git a/Scenes/quality-godot-first-person-2-main/LICENSE b/Scenes/quality-godot-first-person-2-main/LICENSE new file mode 100644 index 0000000..f34733d --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Colormatic + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Scenes/quality-godot-first-person-2-main/README.md b/Scenes/quality-godot-first-person-2-main/README.md new file mode 100644 index 0000000..0acb1cb --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/README.md @@ -0,0 +1,67 @@ +# quality-godot-first-person-2 +Actually good first person controller for the Godot Engine. +MIT License (credit Colormatic Studios) + +This first person controller was made because there aren't many first person controllers for Godot, and the ones that do exist are pretty bad. +It is highly customizable and comes with many features, QOL, and clean code. + +Some parts came from StayAtHomeDev's FPS tutorial. You can find that [here](https://www.youtube.com/playlist?list=PLEHvj4yeNfeF6s-UVs5Zx5TfNYmeCiYwf). + +# Directions +Move with WASD, space to jump, shift to sprint, C to crouch. + +**FEATURES:** +- Extremely configurable +- In-air momentum +- Motion smoothing +- FOV smoothing +- Movement animations +- Crouching +- Sprinting +- 2 crosshairs/reticles, one is animated (more to come?) +- Controller/GamePad support (enabled through code, see wiki) +- In-editor tools (enable editable children to use) + +If you make a cool game with this addon, I would love to hear about it! + +# Wiki +**To start out**, you should probably remap all of the movement keys to your own control set. + +You can make this a super basic controller by just disabling everything. + +**How to add controller/GamePad support** +- In the controls export group, there is a commented section at the end that says "Uncomment this if you want full controller support". Uncomment that block. +- Make a key map for each direction (left, right, up, down) and map them to your joystick. +- Write in these keymaps in the controls section of the player settings. +- In the `handle_head_rotation` function, there is another block of commented code that says the same thing. Uncomment that too. +- You should now be able to look around with the joystick. Make sure you add the other controls to the input map. (movement, jumping, crouching, sprinting, etc.) + +**Slope/staircase:** +Credit to [roberto-urbani23](https://github.com/roberto-urbani23) +In the character inspector, you can uncheck Stop on Slope and set the max angle to 89 (for some reason, 90 will make the player stuck). Also Snap Length to 1 otherwise your character will not remain attached to stairs if you sprint while going downstairs. + +**How to change settings:** +Click on the character node and there should be settings in the "Feature Settings" group. + +**How to add animations for a mesh:** +- Create a function for your animation and attach it to `_physics_process` to call it every frame. +- Use `input_dir` as a boolean (it is actually a `Vector2`) to know if the player is walking. +- Use the `state` member variable to tell if the player is sprinting or crouching. +- Use the `is_on_floor` function to tell if the player is standing or falling. + +**How to change reticles (crosshairs):** +Change the "Default Reticle" setting to your reticle file. +During runtime: +Use the `change_reticle` function on the character. + +**How to create a new reticle:** +- Choose a reticle to base it off of. +- Open that reticle and save it as a new reticle. +- Remove the script from the reticle and create a new one. (for some reason you have to do this) +- Edit the reticle to your needs. +- Follow the "how to change reticles" directions to use it. + +**How to use the editor tools:** +- Enable editable children on the `CharacterBody` node +- Use the options in the Properties tab to change things +- These changes apply in runtime as well diff --git a/Scenes/quality-godot-first-person-2-main/addons/fpc/EditorModule.gd b/Scenes/quality-godot-first-person-2-main/addons/fpc/EditorModule.gd new file mode 100644 index 0000000..0a3a74f --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/addons/fpc/EditorModule.gd @@ -0,0 +1,49 @@ +@tool +extends Node + +# This does not effect runtime yet but will in the future. + +@export_category("Controller Editor Module") +@export_range(-360.0, 360.0, 0.01, "or_greater", "or_less") var head_y_rotation : float = 0.0: + set(new_rotation): + if HEAD: + head_y_rotation = new_rotation + HEAD.rotation.y = deg_to_rad(head_y_rotation) + update_configuration_warnings() +@export_range(-90.0, 90.0, 0.01, "or_greater", "or_less") var head_x_rotation : float = 0.0: + set(new_rotation): + if HEAD: + head_x_rotation = new_rotation + HEAD.rotation.x = deg_to_rad(head_x_rotation) + update_configuration_warnings() + +@export_group("Nodes") +@export var CHARACTER : CharacterBody3D +@export var head_path : String = "Head" # Relative to the parent node +#@export var CAMERA : Camera3D +#@export var HEADBOB_ANIMATION : AnimationPlayer +#@export var JUMP_ANIMATION : AnimationPlayer +#@export var CROUCH_ANIMATION : AnimationPlayer +#@export var COLLISION_MESH : CollisionShape3D + +@onready var HEAD = get_node("../" + head_path) + + +func _ready(): + if !Engine.is_editor_hint(): + #print("not editor") + HEAD.rotation.y = deg_to_rad(head_y_rotation) + HEAD.rotation.x = deg_to_rad(head_x_rotation) + + +func _get_configuration_warnings(): + var warnings = [] + + if head_y_rotation > 360: + warnings.append("The head rotation is greater than 360") + + if head_y_rotation < -360: + warnings.append("The head rotation is less than -360") + + # Returning an empty array gives no warnings + return warnings diff --git a/Scenes/quality-godot-first-person-2-main/addons/fpc/character.gd b/Scenes/quality-godot-first-person-2-main/addons/fpc/character.gd new file mode 100644 index 0000000..5a5f7f7 --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/addons/fpc/character.gd @@ -0,0 +1,488 @@ +# COPYRIGHT Colormatic Studios +# MIT license +# Quality Godot First Person Controller v2 + + +extends CharacterBody3D + + +#region Character Export Group + +## The settings for the character's movement and feel. +@export_category("Character") +## The speed that the character moves at without crouching or sprinting. +@export var base_speed : float = 3.0 +## The speed that the character moves at when sprinting. +@export var sprint_speed : float = 6.0 +## The speed that the character moves at when crouching. +@export var crouch_speed : float = 1.0 + +## How fast the character speeds up and slows down when Motion Smoothing is on. +@export var acceleration : float = 10.0 +## How high the player jumps. +@export var jump_velocity : float = 4.5 +## How far the player turns when the mouse is moved. +@export var mouse_sensitivity : float = 0.1 +## Invert the X axis input for the camera. +@export var invert_camera_x_axis : bool = false +## Invert the Y axis input for the camera. +@export var invert_camera_y_axis : bool = false +## Whether the player can use movement inputs. Does not stop outside forces or jumping. See Jumping Enabled. +@export var immobile : bool = false +## The reticle file to import at runtime. By default are in res://addons/fpc/reticles/. Set to an empty string to remove. +@export_file var default_reticle + +#endregion + +#region Nodes Export Group + +@export_group("Nodes") +## A reference to the camera for use in the character script. This is the parent node to the camera and is rotated instead of the camera for mouse input. +@export var HEAD : Node3D +## A reference to the camera for use in the character script. +@export var CAMERA : Camera3D +## A reference to the headbob animation for use in the character script. +@export var HEADBOB_ANIMATION : AnimationPlayer +## A reference to the jump animation for use in the character script. +@export var JUMP_ANIMATION : AnimationPlayer +## A reference to the crouch animation for use in the character script. +@export var CROUCH_ANIMATION : AnimationPlayer +## A reference to the the player's collision shape for use in the character script. +@export var COLLISION_MESH : CollisionShape3D + +#endregion + +#region Controls Export Group + +# We are using UI controls because they are built into Godot Engine so they can be used right away +@export_group("Controls") +## Use the Input Map to map a mouse/keyboard input to an action and add a reference to it to this dictionary to be used in the script. +@export var controls : Dictionary = { + LEFT = "ui_left", + RIGHT = "ui_right", + FORWARD = "ui_up", + BACKWARD = "ui_down", + JUMP = "ui_accept", + CROUCH = "crouch", + SPRINT = "sprint", + PAUSE = "ui_cancel" + } +@export_subgroup("Controller Specific") +## This only affects how the camera is handled, the rest should be covered by adding controller inputs to the existing actions in the Input Map. +@export var controller_support : bool = false +## Use the Input Map to map a controller input to an action and add a reference to it to this dictionary to be used in the script. +@export var controller_controls : Dictionary = { + LOOK_LEFT = "look_left", + LOOK_RIGHT = "look_right", + LOOK_UP = "look_up", + LOOK_DOWN = "look_down" + } +## The sensitivity of the analog stick that controls camera rotation. Lower is less sensitive and higher is more sensitive. +@export_range(0.001, 1, 0.001) var look_sensitivity : float = 0.035 + +#endregion + +#region Feature Settings Export Group + +@export_group("Feature Settings") +## Enable or disable jumping. Useful for restrictive storytelling environments. +@export var jumping_enabled : bool = true +## Whether the player can move in the air or not. +@export var in_air_momentum : bool = true +## Smooths the feel of walking. +@export var motion_smoothing : bool = true +## Enables or disables sprinting. +@export var sprint_enabled : bool = true +## Toggles the sprinting state when button is pressed or requires the player to hold the button down to remain sprinting. +@export_enum("Hold to Sprint", "Toggle Sprint") var sprint_mode : int = 0 +## Enables or disables crouching. +@export var crouch_enabled : bool = true +## Toggles the crouch state when button is pressed or requires the player to hold the button down to remain crouched. +@export_enum("Hold to Crouch", "Toggle Crouch") var crouch_mode : int = 0 +## Wether sprinting should effect FOV. +@export var dynamic_fov : bool = true +## If the player holds down the jump button, should the player keep hopping. +@export var continuous_jumping : bool = true +## Enables the view bobbing animation. +@export var view_bobbing : bool = true +## Enables an immersive animation when the player jumps and hits the ground. +@export var jump_animation : bool = true +## This determines wether the player can use the pause button, not wether the game will actually pause. +@export var pausing_enabled : bool = true +## Use with caution. +@export var gravity_enabled : bool = true +## If your game changes the gravity value during gameplay, check this property to allow the player to experience the change in gravity. +@export var dynamic_gravity : bool = false + +#endregion + +#region Member Variable Initialization + +# These are variables used in this script that don't need to be exposed in the editor. +var speed : float = base_speed +var current_speed : float = 0.0 +# States: normal, crouching, sprinting +var state : String = "normal" +var low_ceiling : bool = false # This is for when the ceiling is too low and the player needs to crouch. +var was_on_floor : bool = true # Was the player on the floor last frame (for landing animation) + +# The reticle should always have a Control node as the root +var RETICLE : Control + +# Get the gravity from the project settings to be synced with RigidBody nodes +var gravity : float = ProjectSettings.get_setting("physics/3d/default_gravity") # Don't set this as a const, see the gravity section in _physics_process + +# Stores mouse input for rotating the camera in the physics process +var mouseInput : Vector2 = Vector2(0,0) + +#endregion + + + +#region Main Control Flow + +func _ready(): + #It is safe to comment this line if your game doesn't start with the mouse captured + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + + # If the controller is rotated in a certain direction for game design purposes, redirect this rotation into the head. + HEAD.rotation.y = rotation.y + rotation.y = 0 + + if default_reticle: + change_reticle(default_reticle) + + initialize_animations() + check_controls() + enter_normal_state() + + +func _process(_delta): + if pausing_enabled: + handle_pausing() + + update_debug_menu_per_frame() + + +func _physics_process(delta): # Most things happen here. + # Gravity + if dynamic_gravity: + gravity = ProjectSettings.get_setting("physics/3d/default_gravity") + if not is_on_floor() and gravity and gravity_enabled: + velocity.y -= gravity * delta + + handle_jumping() + + var input_dir = Vector2.ZERO + + if not immobile: # Immobility works by interrupting user input, so other forces can still be applied to the player + input_dir = Input.get_vector(controls.LEFT, controls.RIGHT, controls.FORWARD, controls.BACKWARD) + + handle_movement(delta, input_dir) + + handle_head_rotation() + + # The player is not able to stand up if the ceiling is too low + low_ceiling = $CrouchCeilingDetection.is_colliding() + + handle_state(input_dir) + if dynamic_fov: # This may be changed to an AnimationPlayer + update_camera_fov() + + if view_bobbing: + play_headbob_animation(input_dir) + + if jump_animation: + play_jump_animation() + + update_debug_menu_per_tick() + + was_on_floor = is_on_floor() # This must always be at the end of physics_process + +#endregion + +#region Input Handling + +func handle_jumping(): + if jumping_enabled: + if continuous_jumping: # Hold down the jump button + if Input.is_action_pressed(controls.JUMP) and is_on_floor() and !low_ceiling: + if jump_animation: + JUMP_ANIMATION.play("jump", 0.25) + velocity.y += jump_velocity # Adding instead of setting so jumping on slopes works properly + else: + if Input.is_action_just_pressed(controls.JUMP) and is_on_floor() and !low_ceiling: + if jump_animation: + JUMP_ANIMATION.play("jump", 0.25) + velocity.y += jump_velocity + + +func handle_movement(delta, input_dir): + var direction = input_dir.rotated(-HEAD.rotation.y) + direction = Vector3(direction.x, 0, direction.y) + move_and_slide() + + if in_air_momentum: + if is_on_floor(): + if motion_smoothing: + velocity.x = lerp(velocity.x, direction.x * speed, acceleration * delta) + velocity.z = lerp(velocity.z, direction.z * speed, acceleration * delta) + else: + velocity.x = direction.x * speed + velocity.z = direction.z * speed + else: + if motion_smoothing: + velocity.x = lerp(velocity.x, direction.x * speed, acceleration * delta) + velocity.z = lerp(velocity.z, direction.z * speed, acceleration * delta) + else: + velocity.x = direction.x * speed + velocity.z = direction.z * speed + + +func handle_head_rotation(): + if invert_camera_x_axis: + HEAD.rotation_degrees.y -= mouseInput.x * mouse_sensitivity * -1 + else: + HEAD.rotation_degrees.y -= mouseInput.x * mouse_sensitivity + + if invert_camera_y_axis: + HEAD.rotation_degrees.x -= mouseInput.y * mouse_sensitivity * -1 + else: + HEAD.rotation_degrees.x -= mouseInput.y * mouse_sensitivity + + if controller_support: + var controller_view_rotation = Input.get_vector(controller_controls.LOOK_DOWN, controller_controls.LOOK_UP, controller_controls.LOOK_RIGHT, controller_controls.LOOK_LEFT) * look_sensitivity # These are inverted because of the nature of 3D rotation. + if invert_camera_x_axis: + HEAD.rotation.x += controller_view_rotation.x * -1 + else: + HEAD.rotation.x += controller_view_rotation.x + + if invert_camera_y_axis: + HEAD.rotation.y += controller_view_rotation.y * -1 + else: + HEAD.rotation.y += controller_view_rotation.y + + mouseInput = Vector2(0,0) + HEAD.rotation.x = clamp(HEAD.rotation.x, deg_to_rad(-90), deg_to_rad(90)) + + +func check_controls(): # If you add a control, you might want to add a check for it here. + # The actions are being disabled so the engine doesn't halt the entire project in debug mode + if !InputMap.has_action(controls.JUMP): + push_error("No control mapped for jumping. Please add an input map control. Disabling jump.") + jumping_enabled = false + if !InputMap.has_action(controls.LEFT): + push_error("No control mapped for move left. Please add an input map control. Disabling movement.") + immobile = true + if !InputMap.has_action(controls.RIGHT): + push_error("No control mapped for move right. Please add an input map control. Disabling movement.") + immobile = true + if !InputMap.has_action(controls.FORWARD): + push_error("No control mapped for move forward. Please add an input map control. Disabling movement.") + immobile = true + if !InputMap.has_action(controls.BACKWARD): + push_error("No control mapped for move backward. Please add an input map control. Disabling movement.") + immobile = true + if !InputMap.has_action(controls.PAUSE): + push_error("No control mapped for pause. Please add an input map control. Disabling pausing.") + pausing_enabled = false + if !InputMap.has_action(controls.CROUCH): + push_error("No control mapped for crouch. Please add an input map control. Disabling crouching.") + crouch_enabled = false + if !InputMap.has_action(controls.SPRINT): + push_error("No control mapped for sprint. Please add an input map control. Disabling sprinting.") + sprint_enabled = false + +#endregion + +#region State Handling + +func handle_state(moving): + if sprint_enabled: + if sprint_mode == 0: + if Input.is_action_pressed(controls.SPRINT) and state != "crouching": + if moving: + if state != "sprinting": + enter_sprint_state() + else: + if state == "sprinting": + enter_normal_state() + elif state == "sprinting": + enter_normal_state() + elif sprint_mode == 1: + if moving: + # If the player is holding sprint before moving, handle that scenario + if Input.is_action_pressed(controls.SPRINT) and state == "normal": + enter_sprint_state() + if Input.is_action_just_pressed(controls.SPRINT): + match state: + "normal": + enter_sprint_state() + "sprinting": + enter_normal_state() + elif state == "sprinting": + enter_normal_state() + + if crouch_enabled: + if crouch_mode == 0: + if Input.is_action_pressed(controls.CROUCH) and state != "sprinting": + if state != "crouching": + enter_crouch_state() + elif state == "crouching" and !$CrouchCeilingDetection.is_colliding(): + enter_normal_state() + elif crouch_mode == 1: + if Input.is_action_just_pressed(controls.CROUCH): + match state: + "normal": + enter_crouch_state() + "crouching": + if !$CrouchCeilingDetection.is_colliding(): + enter_normal_state() + + +# Any enter state function should only be called once when you want to enter that state, not every frame. +func enter_normal_state(): + #print("entering normal state") + var prev_state = state + if prev_state == "crouching": + CROUCH_ANIMATION.play_backwards("crouch") + state = "normal" + speed = base_speed + +func enter_crouch_state(): + #print("entering crouch state") + state = "crouching" + speed = crouch_speed + CROUCH_ANIMATION.play("crouch") + +func enter_sprint_state(): + #print("entering sprint state") + var prev_state = state + if prev_state == "crouching": + CROUCH_ANIMATION.play_backwards("crouch") + state = "sprinting" + speed = sprint_speed + +#endregion + +#region Animation Handling + +func initialize_animations(): + # Reset the camera position + # If you want to change the default head height, change these animations. + HEADBOB_ANIMATION.play("RESET") + JUMP_ANIMATION.play("RESET") + CROUCH_ANIMATION.play("RESET") + +func play_headbob_animation(moving): + if moving and is_on_floor(): + var use_headbob_animation : String + match state: + "normal","crouching": + use_headbob_animation = "walk" + "sprinting": + use_headbob_animation = "sprint" + + var was_playing : bool = false + if HEADBOB_ANIMATION.current_animation == use_headbob_animation: + was_playing = true + + HEADBOB_ANIMATION.play(use_headbob_animation, 0.25) + HEADBOB_ANIMATION.speed_scale = (current_speed / base_speed) * 1.75 + if !was_playing: + HEADBOB_ANIMATION.seek(float(randi() % 2)) # Randomize the initial headbob direction + # Let me explain that piece of code because it looks like it does the opposite of what it actually does. + # The headbob animation has two starting positions. One is at 0 and the other is at 1. + # randi() % 2 returns either 0 or 1, and so the animation randomly starts at one of the starting positions. + # This code is extremely performant but it makes no sense. + + else: + if HEADBOB_ANIMATION.current_animation == "sprint" or HEADBOB_ANIMATION.current_animation == "walk": + HEADBOB_ANIMATION.speed_scale = 1 + HEADBOB_ANIMATION.play("RESET", 1) + +func play_jump_animation(): + if !was_on_floor and is_on_floor(): # The player just landed + var facing_direction : Vector3 = CAMERA.get_global_transform().basis.x + var facing_direction_2D : Vector2 = Vector2(facing_direction.x, facing_direction.z).normalized() + var velocity_2D : Vector2 = Vector2(velocity.x, velocity.z).normalized() + + # Compares velocity direction against the camera direction (via dot product) to determine which landing animation to play. + var side_landed : int = round(velocity_2D.dot(facing_direction_2D)) + + if side_landed > 0: + JUMP_ANIMATION.play("land_right", 0.25) + elif side_landed < 0: + JUMP_ANIMATION.play("land_left", 0.25) + else: + JUMP_ANIMATION.play("land_center", 0.25) + +#endregion + +#region Debug Menu + +func update_debug_menu_per_frame(): + $UserInterface/DebugPanel.add_property("FPS", Performance.get_monitor(Performance.TIME_FPS), 0) + var status : String = state + if !is_on_floor(): + status += " in the air" + $UserInterface/DebugPanel.add_property("State", status, 4) + + +func update_debug_menu_per_tick(): + # Big thanks to github.com/LorenzoAncora for the concept of the improved debug values + current_speed = Vector3.ZERO.distance_to(get_real_velocity()) + $UserInterface/DebugPanel.add_property("Speed", snappedf(current_speed, 0.001), 1) + $UserInterface/DebugPanel.add_property("Target speed", speed, 2) + var cv : Vector3 = get_real_velocity() + var vd : Array[float] = [ + snappedf(cv.x, 0.001), + snappedf(cv.y, 0.001), + snappedf(cv.z, 0.001) + ] + var readable_velocity : String = "X: " + str(vd[0]) + " Y: " + str(vd[1]) + " Z: " + str(vd[2]) + $UserInterface/DebugPanel.add_property("Velocity", readable_velocity, 3) + + +func _unhandled_input(event : InputEvent): + if event is InputEventMouseMotion and Input.mouse_mode == Input.MOUSE_MODE_CAPTURED: + mouseInput.x += event.relative.x + mouseInput.y += event.relative.y + # Toggle debug menu + elif event is InputEventKey: + if event.is_released(): + # Where we're going, we don't need InputMap + if event.keycode == 4194338: # F7 + $UserInterface/DebugPanel.visible = !$UserInterface/DebugPanel.visible + +#endregion + +#region Misc Functions + +func change_reticle(reticle): # Yup, this function is kinda strange + if RETICLE: + RETICLE.queue_free() + + RETICLE = load(reticle).instantiate() + RETICLE.character = self + $UserInterface.add_child(RETICLE) + + +func update_camera_fov(): + if state == "sprinting": + CAMERA.fov = lerp(CAMERA.fov, 85.0, 0.3) + else: + CAMERA.fov = lerp(CAMERA.fov, 75.0, 0.3) + +func handle_pausing(): + if Input.is_action_just_pressed(controls.PAUSE): + # You may want another node to handle pausing, because this player may get paused too. + match Input.mouse_mode: + Input.MOUSE_MODE_CAPTURED: + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + #get_tree().paused = false + Input.MOUSE_MODE_VISIBLE: + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + #get_tree().paused = false + +#endregion diff --git a/Scenes/quality-godot-first-person-2-main/addons/fpc/character.tscn b/Scenes/quality-godot-first-person-2-main/addons/fpc/character.tscn new file mode 100644 index 0000000..3cfd7c8 --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/addons/fpc/character.tscn @@ -0,0 +1,455 @@ +[gd_scene load_steps=22 format=3 uid="uid://cc1m2a1obsyn4"] + +[ext_resource type="Script" path="res://addons/fpc/character.gd" id="1_0t4e8"] +[ext_resource type="Script" path="res://addons/fpc/EditorModule.gd" id="3_v3ckk"] +[ext_resource type="Script" path="res://addons/fpc/debug.gd" id="3_x1wcc"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kp17n"] +albedo_color = Color(0.909804, 0.596078, 0, 1) +clearcoat_enabled = true +clearcoat_roughness = 0.2 + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_jw1de"] +material = SubResource("StandardMaterial3D_kp17n") + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_uy03j"] + +[sub_resource type="Animation" id="Animation_j8cx7"] +resource_name = "RESET" +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Mesh:position") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 1, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Collision:position") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 1, 0)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Head:position") +tracks/2/interp = 2 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 1.5, 0)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Mesh:mesh:height") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [2.0] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Collision:shape:height") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [2.0] +} + +[sub_resource type="Animation" id="Animation_5ec5e"] +resource_name = "crouch" +length = 0.2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Mesh:position") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0, 1, 0), Vector3(0, 0.75, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Collision:position") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0, 1, 0), Vector3(0, 0.75, 0)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Head:position") +tracks/2/interp = 2 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0, 1.5, 0), Vector3(0, 1.12508, 0)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Mesh:mesh:height") +tracks/3/interp = 2 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [2.0, 1.5] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Collision:shape:height") +tracks/4/interp = 2 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [2.0, 1.5] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_5e5t5"] +_data = { +"RESET": SubResource("Animation_j8cx7"), +"crouch": SubResource("Animation_5ec5e") +} + +[sub_resource type="Animation" id="Animation_gh776"] +resource_name = "RESET" +length = 0.001 +loop_mode = 1 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera:position:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Camera:position:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} + +[sub_resource type="Animation" id="Animation_8ku67"] +resource_name = "sprint" +length = 2.0 +loop_mode = 1 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera:position:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0, 1, 0, 1, 0), +"points": PackedFloat32Array(0.06, -0.25, 0, 0.25, -0.01, 0, 0, 0, 0, 0, -0.06, -0.25, 0.01, 0.25, 0.01, 0, 0, 0, 0, 0, 0.06, -0.25, -0.01, 0.25, 0), +"times": PackedFloat32Array(0, 0.5, 1, 1.5, 2) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Camera:position:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0, 0, 0, 0, 0), +"points": PackedFloat32Array(0.05, -0.25, 0, 0.2, -0.01, 0, -0.2, 0.000186046, 0.2, 0.000186046, 0.05, -0.2, -0.01, 0.2, -0.01, 0, -0.2, 0, 0.2, 0, 0.05, -0.2, -0.01, 0.25, 0), +"times": PackedFloat32Array(0, 0.5, 1, 1.5, 2) +} + +[sub_resource type="Animation" id="Animation_lrqmv"] +resource_name = "walk" +length = 2.0 +loop_mode = 1 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera:position:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0, 1, 0, 1, 0), +"points": PackedFloat32Array(0.04, -0.25, 0, 0.25, 0, 0, 0, 0, 0, 0, -0.04, -0.25, 0, 0.25, 0, 0, 0, 0, 0, 0, 0.04, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 0.5, 1, 1.5, 2) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Camera:position:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0, 0, 0, 0, 0), +"points": PackedFloat32Array(-0.05, -0.25, 0, 0.2, 0.005, 0, -0.2, 0.000186046, 0.2, 0.000186046, -0.05, -0.2, 0.005, 0.2, 0.005, 0, -0.2, 0, 0.2, 0, -0.05, -0.2, 0.005, 0.25, 0), +"times": PackedFloat32Array(0, 0.5, 1, 1.5, 2) +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_o0unb"] +_data = { +"RESET": SubResource("Animation_gh776"), +"sprint": SubResource("Animation_8ku67"), +"walk": SubResource("Animation_lrqmv") +} + +[sub_resource type="Animation" id="Animation_fvvjq"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 0, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Camera:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 0, 0)] +} + +[sub_resource type="Animation" id="Animation_s07ye"] +resource_name = "jump" +length = 3.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera:rotation") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.6, 3), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(0.0349066, 0, 0), Vector3(0, 0, 0)] +} + +[sub_resource type="Animation" id="Animation_3eyjl"] +resource_name = "land_center" +length = 1.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera:rotation") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5, 1.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(-0.0349066, 0, 0), Vector3(0, 0, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Camera:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.5, 1.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(0, -0.1, 0), Vector3(0, 0, 0)] +} + +[sub_resource type="Animation" id="Animation_l1rph"] +resource_name = "land_left" +length = 1.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera:rotation") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5, 1.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(-0.0349066, 0, 0.0174533), Vector3(0, 0, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Camera:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.5, 1.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(0, -0.1, 0), Vector3(0, 0, 0)] +} + +[sub_resource type="Animation" id="Animation_vsknp"] +resource_name = "land_right" +length = 1.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Camera:rotation") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5, 1.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(-0.0349066, 0, -0.0174533), Vector3(0, 0, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Camera:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.5, 1.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(0, -0.1, 0), Vector3(0, 0, 0)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_qeg5r"] +_data = { +"RESET": SubResource("Animation_fvvjq"), +"jump": SubResource("Animation_s07ye"), +"land_center": SubResource("Animation_3eyjl"), +"land_left": SubResource("Animation_l1rph"), +"land_right": SubResource("Animation_vsknp") +} + +[sub_resource type="Theme" id="Theme_wdf0f"] +MarginContainer/constants/margin_bottom = 10 +MarginContainer/constants/margin_left = 10 +MarginContainer/constants/margin_right = 10 +MarginContainer/constants/margin_top = 10 + +[sub_resource type="SphereShape3D" id="SphereShape3D_k4wwl"] + +[node name="Character" type="CharacterBody3D" node_paths=PackedStringArray("HEAD", "CAMERA", "HEADBOB_ANIMATION", "JUMP_ANIMATION", "CROUCH_ANIMATION", "COLLISION_MESH")] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 0) +script = ExtResource("1_0t4e8") +default_reticle = "res://addons/fpc/reticles/reticle_1.tscn" +HEAD = NodePath("Head") +CAMERA = NodePath("Head/Camera") +HEADBOB_ANIMATION = NodePath("Head/HeadbobAnimation") +JUMP_ANIMATION = NodePath("Head/JumpAnimation") +CROUCH_ANIMATION = NodePath("CrouchAnimation") +COLLISION_MESH = NodePath("Collision") + +[node name="Mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) +mesh = SubResource("CapsuleMesh_jw1de") + +[node name="Collision" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) +shape = SubResource("CapsuleShape3D_uy03j") + +[node name="CrouchAnimation" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_5e5t5") +} + +[node name="Head" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) + +[node name="Camera" type="Camera3D" parent="Head"] + +[node name="HeadbobAnimation" type="AnimationPlayer" parent="Head"] +libraries = { +"": SubResource("AnimationLibrary_o0unb") +} +blend_times = [&"RESET", &"RESET", 0.5, &"RESET", &"walk", 0.5, &"walk", &"RESET", 0.5] + +[node name="JumpAnimation" type="AnimationPlayer" parent="Head"] +libraries = { +"": SubResource("AnimationLibrary_qeg5r") +} +speed_scale = 4.0 + +[node name="UserInterface" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1 + +[node name="DebugPanel" type="PanelContainer" parent="UserInterface"] +visible = false +layout_mode = 0 +offset_left = 10.0 +offset_top = 10.0 +offset_right = 453.0 +offset_bottom = 50.0 +theme = SubResource("Theme_wdf0f") +script = ExtResource("3_x1wcc") + +[node name="MarginContainer" type="MarginContainer" parent="UserInterface/DebugPanel"] +layout_mode = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="UserInterface/DebugPanel/MarginContainer"] +layout_mode = 2 + +[node name="CrouchCeilingDetection" type="ShapeCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) +shape = SubResource("SphereShape3D_k4wwl") +target_position = Vector3(0, 0.5, 0) + +[node name="EditorModule" type="Node" parent="."] +script = ExtResource("3_v3ckk") diff --git a/Scenes/quality-godot-first-person-2-main/addons/fpc/debug.gd b/Scenes/quality-godot-first-person-2-main/addons/fpc/debug.gd new file mode 100644 index 0000000..efdb7a4 --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/addons/fpc/debug.gd @@ -0,0 +1,18 @@ +extends PanelContainer + + +func _process(delta): + if visible: + pass + +func add_property(title : String, value, order : int): # This can either be called once for a static property or called every frame for a dynamic property + var target + target = $MarginContainer/VBoxContainer.find_child(title, true, false) # I have no idea what true and false does here, the function should be more specific + if !target: + target = Label.new() # Debug lines are of type Label + $MarginContainer/VBoxContainer.add_child(target) + target.name = title + target.text = title + ": " + str(value) + elif visible: + target.text = title + ": " + str(value) + $MarginContainer/VBoxContainer.move_child(target, order) diff --git a/Scenes/quality-godot-first-person-2-main/addons/fpc/reticles/reticle_0.tscn b/Scenes/quality-godot-first-person-2-main/addons/fpc/reticles/reticle_0.tscn new file mode 100644 index 0000000..2828124 --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/addons/fpc/reticles/reticle_0.tscn @@ -0,0 +1,37 @@ +[gd_scene load_steps=2 format=3 uid="uid://coqpusufa8a6k"] + +[sub_resource type="GDScript" id="GDScript_10f85"] +script/source = "extends CenterContainer + + +@export_category(\"Reticle\") +@export_group(\"Nodes\") +@export var character : CharacterBody3D + +@export_group(\"Settings\") +@export var dot_size : int = 1 +@export var dot_color : Color = Color.WHITE + + +func _process(_delta): + if visible: # If the reticle is disabled (not visible), don't bother updating it + update_reticle_settings() + +func update_reticle_settings(): + $dot.scale.x = dot_size + $dot.scale.y = dot_size + $dot.color = dot_color +" + +[node name="Reticle" type="CenterContainer"] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +grow_horizontal = 2 +grow_vertical = 2 +script = SubResource("GDScript_10f85") + +[node name="dot" type="Polygon2D" parent="."] +polygon = PackedVector2Array(-1, -1, 1, -1, 1, 1, -1, 1) diff --git a/Scenes/quality-godot-first-person-2-main/addons/fpc/reticles/reticle_1.tscn b/Scenes/quality-godot-first-person-2-main/addons/fpc/reticles/reticle_1.tscn new file mode 100644 index 0000000..bb83b83 --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/addons/fpc/reticles/reticle_1.tscn @@ -0,0 +1,104 @@ +[gd_scene load_steps=2 format=3 uid="uid://3mij3cjhkwsm"] + +[sub_resource type="GDScript" id="GDScript_a8kpl"] +script/source = "extends CenterContainer + + +@export_category(\"Reticle\") +@export_group(\"Nodes\") +@export var reticle_lines : Array[Line2D] +@export var character : CharacterBody3D + +@export_group(\"Animate\") +@export var animated_reticle : bool = true +@export var reticle_speed : float = 0.5 +@export var reticle_spread : float = 4.0 + +@export_group(\"Dot Settings\") +@export var dot_size : int = 1 +@export var dot_color : Color = Color.WHITE + +@export_group(\"Line Settings\") +@export var line_color : Color = Color.WHITE +@export var line_width : int = 2 +@export var line_length : int = 10 +@export var line_distance : int = 5 +@export_enum(\"None\", \"Round\") var cap_mode : int = 0 + + +func _process(_delta): + if visible: # If the reticle is disabled (not visible), don't bother updating it + update_reticle_settings() + if animated_reticle: + animate_reticle_lines() + + +func animate_reticle_lines(): + var vel = character.get_real_velocity() + var origin = Vector3(0,0,0) + var pos = Vector2(0,0) + var speed = origin.distance_to(vel) + + reticle_lines[0].position = lerp(reticle_lines[0].position, pos + Vector2(0, -speed * reticle_spread), reticle_speed) + reticle_lines[1].position = lerp(reticle_lines[1].position, pos + Vector2(-speed * reticle_spread, 0), reticle_speed) + reticle_lines[2].position = lerp(reticle_lines[2].position, pos + Vector2(speed * reticle_spread, 0), reticle_speed) + reticle_lines[3].position = lerp(reticle_lines[3].position, pos + Vector2(0, speed * reticle_spread), reticle_speed) + + +func update_reticle_settings(): + # Dot + $dot.scale.x = dot_size + $dot.scale.y = dot_size + $dot.color = dot_color + + # Lines + for line in reticle_lines: + line.default_color = line_color + line.width = line_width + if cap_mode == 0: + line.begin_cap_mode = Line2D.LINE_CAP_NONE + line.end_cap_mode = Line2D.LINE_CAP_NONE + elif cap_mode == 1: + line.begin_cap_mode = Line2D.LINE_CAP_ROUND + line.end_cap_mode = Line2D.LINE_CAP_ROUND + + # Please someone find a better way to do this + reticle_lines[0].points[0].y = -line_distance + reticle_lines[0].points[1].y = -line_length - line_distance + reticle_lines[1].points[0].x = -line_distance + reticle_lines[1].points[1].x = -line_length - line_distance + reticle_lines[2].points[0].x = line_distance + reticle_lines[2].points[1].x = line_length + line_distance + reticle_lines[3].points[0].y = line_distance + reticle_lines[3].points[1].y = line_length + line_distance +" + +[node name="Reticle" type="CenterContainer" node_paths=PackedStringArray("reticle_lines")] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +grow_horizontal = 2 +grow_vertical = 2 +script = SubResource("GDScript_a8kpl") +reticle_lines = [NodePath("top"), NodePath("left"), NodePath("right"), NodePath("bottom")] + +[node name="dot" type="Polygon2D" parent="."] +polygon = PackedVector2Array(-1, -1, 1, -1, 1, 1, -1, 1) + +[node name="top" type="Line2D" parent="."] +points = PackedVector2Array(0, -5, 0, -15) +width = 2.0 + +[node name="left" type="Line2D" parent="."] +points = PackedVector2Array(-5, 0, -15, 0) +width = 2.0 + +[node name="right" type="Line2D" parent="."] +points = PackedVector2Array(5, 0, 15, 0) +width = 2.0 + +[node name="bottom" type="Line2D" parent="."] +points = PackedVector2Array(0, 5, 0, 15) +width = 2.0 diff --git a/Scenes/quality-godot-first-person-2-main/icon.svg b/Scenes/quality-godot-first-person-2-main/icon.svg new file mode 100644 index 0000000..ea6ce87 --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/icon.svg @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Scenes/quality-godot-first-person-2-main/icon.svg.import b/Scenes/quality-godot-first-person-2-main/icon.svg.import new file mode 100644 index 0000000..9e0a681 --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://64npoko7rqya" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/Scenes/quality-godot-first-person-2-main/project.godot b/Scenes/quality-godot-first-person-2-main/project.godot new file mode 100644 index 0000000..4626ad9 --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/project.godot @@ -0,0 +1,65 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="first person controller 2.0" +run/main_scene="res://test_world.tscn" +config/features=PackedStringArray("4.3", "Forward Plus") +config/icon="res://icon.svg" + +[display] + +window/size/mode=2 + +[input] + +ui_left={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +] +} +ui_right={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194321,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) +] +} +ui_up={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194320,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null) +] +} +ui_down={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194322,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) +] +} +crouch={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":67,"key_label":0,"unicode":99,"location":0,"echo":false,"script":null) +] +} +sprint={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} diff --git a/Scenes/quality-godot-first-person-2-main/test_world.tscn b/Scenes/quality-godot-first-person-2-main/test_world.tscn new file mode 100644 index 0000000..b6901b9 --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/test_world.tscn @@ -0,0 +1,106 @@ +[gd_scene load_steps=15 format=3 uid="uid://cs4drhmc1bql5"] + +[ext_resource type="PackedScene" uid="uid://cc1m2a1obsyn4" path="res://addons/fpc/character.tscn" id="1_e18vq"] +[ext_resource type="Texture2D" uid="uid://pe7a4weirj2g" path="res://textures/dark.png" id="2_08fdt"] +[ext_resource type="Texture2D" uid="uid://cxjxvqmf4boxq" path="res://textures/green.png" id="3_q4clv"] +[ext_resource type="Texture2D" uid="uid://dsv4jm4vydflb" path="res://textures/orange.png" id="4_1ns5t"] + +[sub_resource type="PhysicalSkyMaterial" id="PhysicalSkyMaterial_edcox"] +ground_color = Color(0.160784, 0.815686, 0.905882, 1) + +[sub_resource type="Sky" id="Sky_2iust"] +sky_material = SubResource("PhysicalSkyMaterial_edcox") + +[sub_resource type="Environment" id="Environment_20rw3"] +background_mode = 2 +sky = SubResource("Sky_2iust") +tonemap_mode = 1 +ssao_enabled = true + +[sub_resource type="Gradient" id="Gradient_ur0vy"] +colors = PackedColorArray(0, 0.476245, 0.0193456, 1, 0.360494, 0.612721, 0.119744, 1) + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_jd3pw"] +frequency = 0.0027 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_7akuf"] +width = 1024 +height = 1024 +in_3d_space = true +seamless = true +color_ramp = SubResource("Gradient_ur0vy") +noise = SubResource("FastNoiseLite_jd3pw") + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_67ysu"] +albedo_texture = SubResource("NoiseTexture2D_7akuf") +uv1_scale = Vector3(0.1, 0.1, 0.1) +uv1_triplanar = true + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gomnb"] +albedo_texture = ExtResource("2_08fdt") +metallic = 0.81 +metallic_specular = 0.2 +roughness = 0.5 +uv1_triplanar = true +uv1_triplanar_sharpness = 0.000850145 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_u0sbk"] +albedo_texture = ExtResource("3_q4clv") +metallic = 0.81 +metallic_specular = 0.2 +roughness = 0.5 +uv1_triplanar = true +uv1_triplanar_sharpness = 0.000850145 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_7j4uu"] +albedo_texture = ExtResource("4_1ns5t") +metallic = 0.81 +metallic_specular = 0.2 +roughness = 0.5 +uv1_triplanar = true +uv1_triplanar_sharpness = 0.000850145 + +[node name="test_world" type="Node3D"] + +[node name="Character" parent="." instance=ExtResource("1_e18vq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_20rw3") + +[node name="sun" type="DirectionalLight3D" parent="."] +transform = Transform3D(0.87959, -0.436605, 0.188936, 0, 0.397148, 0.917755, -0.475732, -0.807248, 0.349328, 0, 0, 0) +light_energy = 2.0 +shadow_enabled = true + +[node name="terrain" type="Node3D" parent="."] + +[node name="CSGBox3D" type="CSGBox3D" parent="terrain"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, -0.5, 10) +use_collision = true +size = Vector3(30, 1, 30) +material = SubResource("StandardMaterial3D_67ysu") + +[node name="CSGBox3D2" type="CSGBox3D" parent="terrain"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, -10) +use_collision = true +size = Vector3(10, 1, 10) +material = SubResource("StandardMaterial3D_gomnb") + +[node name="CSGBox3D3" type="CSGBox3D" parent="terrain"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 1.8, -13) +use_collision = true +size = Vector3(4, 0.5, 4) +material = SubResource("StandardMaterial3D_gomnb") + +[node name="CSGBox3D4" type="CSGBox3D" parent="terrain"] +transform = Transform3D(0.939693, 0.34202, 0, -0.34202, 0.939693, 0, 0, 0, 1, -9.5, 1.2, -10) +use_collision = true +size = Vector3(10, 1, 10) +material = SubResource("StandardMaterial3D_u0sbk") + +[node name="CSGBox3D5" type="CSGBox3D" parent="terrain"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.5, 3, -15.5) +use_collision = true +size = Vector3(19, 8, 1) +material = SubResource("StandardMaterial3D_7j4uu") diff --git a/Scenes/quality-godot-first-person-2-main/textures/dark.png b/Scenes/quality-godot-first-person-2-main/textures/dark.png new file mode 100644 index 0000000000000000000000000000000000000000..69be2111ccdf84505de4f29ccf49925419687a21 GIT binary patch literal 2774 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5UnsyQ z#5FQ9Iy*ZzIy%?SW>G0y07%hb7@#gx81K zSnK+f_xa2gjAWQGss$JV8@L;GA1&IpmGj*GP2aaO&KV69GDF}7>wz~Lr#$$*tL)#2 zd-vH2n8-9|gljWn`rz@3VS;Rf@B{u49u(wze>TGm+i5~I@z>AE-~4@>!H;~CM!3#5 zOb_xl&dJSf`n>+l-&_Xu5gr`md%uj)pjt=u$G&xQ?MJH_vV*aqm%(O|RlR}lA(4rz Rz3za_@pScbS?83{1OOF$a6JG3 literal 0 HcmV?d00001 diff --git a/Scenes/quality-godot-first-person-2-main/textures/dark.png.import b/Scenes/quality-godot-first-person-2-main/textures/dark.png.import new file mode 100644 index 0000000..2a82a3f --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/textures/dark.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://pe7a4weirj2g" +path.s3tc="res://.godot/imported/dark.png-6d46f668c80e231a58e570df85aad257.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://textures/dark.png" +dest_files=["res://.godot/imported/dark.png-6d46f668c80e231a58e570df85aad257.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Scenes/quality-godot-first-person-2-main/textures/green.png b/Scenes/quality-godot-first-person-2-main/textures/green.png new file mode 100644 index 0000000000000000000000000000000000000000..7bc7cf8a0cf93d4fbf0262ce1520930d62d6faa9 GIT binary patch literal 2774 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5UnsyQ z#MSNogs8`JJswOly3_Li|9|P5<^@qwZ7b)w{hPjTXPh${C}f7f4b}s1Hcol)dso@N z6Zh`36)=%$&Is3L#`MAC6~hGC2H^+%BRnX`_x@~#8Mf1eYT~b-lfU`gX>LWZj$oGC3qd~Qf>W_Wv=Gu=|Gh_#2Lob8PB&&J@-$No3 SS9{$7nd9l|=d#Wzp$P!)HguB! literal 0 HcmV?d00001 diff --git a/Scenes/quality-godot-first-person-2-main/textures/green.png.import b/Scenes/quality-godot-first-person-2-main/textures/green.png.import new file mode 100644 index 0000000..7c7e044 --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/textures/green.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cxjxvqmf4boxq" +path.s3tc="res://.godot/imported/green.png-b4f8ddc6b00d4e627f0e027e2e1193bf.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://textures/green.png" +dest_files=["res://.godot/imported/green.png-b4f8ddc6b00d4e627f0e027e2e1193bf.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Scenes/quality-godot-first-person-2-main/textures/orange.png b/Scenes/quality-godot-first-person-2-main/textures/orange.png new file mode 100644 index 0000000000000000000000000000000000000000..dec5b59cc01a269635586fa27586d6b40e511fd0 GIT binary patch literal 2774 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5UnsyQ z#P$C|!~bjC|1UQFKV9lS5cDwU@z^CYFmUC2x;TbZ+A`@48 Q-2s{7>FVdQ&MBb@0EF*zl>h($ literal 0 HcmV?d00001 diff --git a/Scenes/quality-godot-first-person-2-main/textures/orange.png.import b/Scenes/quality-godot-first-person-2-main/textures/orange.png.import new file mode 100644 index 0000000..311f8ac --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/textures/orange.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dsv4jm4vydflb" +path.s3tc="res://.godot/imported/orange.png-6785d3f8216fd22318e8ea839823715b.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://textures/orange.png" +dest_files=["res://.godot/imported/orange.png-6785d3f8216fd22318e8ea839823715b.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Scenes/quality-godot-first-person-2-main/textures/purple.png b/Scenes/quality-godot-first-person-2-main/textures/purple.png new file mode 100644 index 0000000000000000000000000000000000000000..48a51c1700f525cb537c3a78fa1fa86054cc41ed GIT binary patch literal 2774 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5UnsyQ z#C3zuuN?`$H~9TtZt?5?|NnE9e)-=%vWbC#E8o+_F{I+w+iM4T4=eDnUhv2fFmrgx za)H%pm*ejLTC#`OC;a&*8yR1<$x_a9?&HthPi1TVM_K=$z1JRS_9!4D1aepszD0O_ zsExI*PkEouY{5u|8KYW&A+UkFVfWFZZCg3d?cel$JL8M4b4Iu}Go}w7uNWrCHV8l9AK^hkzV~M{%&?s%R1<&woczt-w;BA%H)(|H ze8co0Z{wWY+@{a#-~7#GP#@vJLB99P7!9g*RDbMSH`ji&njt$F8+sXRCRx=R_#P6O SxZ3Lu$Q(~sKbLh*2~7YsLv|ei literal 0 HcmV?d00001 diff --git a/Scenes/quality-godot-first-person-2-main/textures/purple.png.import b/Scenes/quality-godot-first-person-2-main/textures/purple.png.import new file mode 100644 index 0000000..9dc0969 --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/textures/purple.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cl4kewig3pk7s" +path="res://.godot/imported/purple.png-23488e84f4f0a47488be2c78494f2155.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://textures/purple.png" +dest_files=["res://.godot/imported/purple.png-23488e84f4f0a47488be2c78494f2155.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Scenes/quality-godot-first-person-2-main/textures/red.png b/Scenes/quality-godot-first-person-2-main/textures/red.png new file mode 100644 index 0000000000000000000000000000000000000000..bf1cb173ba132270f0d3e2a0d98a487927b652f0 GIT binary patch literal 2774 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1`sdZ(btiIVPik{pF~z5UnsyQ z#Pz>n+<*7{|HkqErF{Ma0fWVkpkgKl2CjTh7srr_TW_x&{~b2ezck)J2^D;GT2PAsyFaGBrzopr0Ij8R*Z=?k literal 0 HcmV?d00001 diff --git a/Scenes/quality-godot-first-person-2-main/textures/red.png.import b/Scenes/quality-godot-first-person-2-main/textures/red.png.import new file mode 100644 index 0000000..c8c15aa --- /dev/null +++ b/Scenes/quality-godot-first-person-2-main/textures/red.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d1h161t0v6hau" +path="res://.godot/imported/red.png-3cad0ca19141406d60f5fd2311159a86.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://textures/red.png" +dest_files=["res://.godot/imported/red.png-3cad0ca19141406d60f5fd2311159a86.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Scenes/reticles/reticle_0.tscn b/Scenes/reticles/reticle_0.tscn new file mode 100644 index 0000000..2828124 --- /dev/null +++ b/Scenes/reticles/reticle_0.tscn @@ -0,0 +1,37 @@ +[gd_scene load_steps=2 format=3 uid="uid://coqpusufa8a6k"] + +[sub_resource type="GDScript" id="GDScript_10f85"] +script/source = "extends CenterContainer + + +@export_category(\"Reticle\") +@export_group(\"Nodes\") +@export var character : CharacterBody3D + +@export_group(\"Settings\") +@export var dot_size : int = 1 +@export var dot_color : Color = Color.WHITE + + +func _process(_delta): + if visible: # If the reticle is disabled (not visible), don't bother updating it + update_reticle_settings() + +func update_reticle_settings(): + $dot.scale.x = dot_size + $dot.scale.y = dot_size + $dot.color = dot_color +" + +[node name="Reticle" type="CenterContainer"] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +grow_horizontal = 2 +grow_vertical = 2 +script = SubResource("GDScript_10f85") + +[node name="dot" type="Polygon2D" parent="."] +polygon = PackedVector2Array(-1, -1, 1, -1, 1, 1, -1, 1) diff --git a/Scenes/reticles/reticle_1.tscn b/Scenes/reticles/reticle_1.tscn new file mode 100644 index 0000000..bb83b83 --- /dev/null +++ b/Scenes/reticles/reticle_1.tscn @@ -0,0 +1,104 @@ +[gd_scene load_steps=2 format=3 uid="uid://3mij3cjhkwsm"] + +[sub_resource type="GDScript" id="GDScript_a8kpl"] +script/source = "extends CenterContainer + + +@export_category(\"Reticle\") +@export_group(\"Nodes\") +@export var reticle_lines : Array[Line2D] +@export var character : CharacterBody3D + +@export_group(\"Animate\") +@export var animated_reticle : bool = true +@export var reticle_speed : float = 0.5 +@export var reticle_spread : float = 4.0 + +@export_group(\"Dot Settings\") +@export var dot_size : int = 1 +@export var dot_color : Color = Color.WHITE + +@export_group(\"Line Settings\") +@export var line_color : Color = Color.WHITE +@export var line_width : int = 2 +@export var line_length : int = 10 +@export var line_distance : int = 5 +@export_enum(\"None\", \"Round\") var cap_mode : int = 0 + + +func _process(_delta): + if visible: # If the reticle is disabled (not visible), don't bother updating it + update_reticle_settings() + if animated_reticle: + animate_reticle_lines() + + +func animate_reticle_lines(): + var vel = character.get_real_velocity() + var origin = Vector3(0,0,0) + var pos = Vector2(0,0) + var speed = origin.distance_to(vel) + + reticle_lines[0].position = lerp(reticle_lines[0].position, pos + Vector2(0, -speed * reticle_spread), reticle_speed) + reticle_lines[1].position = lerp(reticle_lines[1].position, pos + Vector2(-speed * reticle_spread, 0), reticle_speed) + reticle_lines[2].position = lerp(reticle_lines[2].position, pos + Vector2(speed * reticle_spread, 0), reticle_speed) + reticle_lines[3].position = lerp(reticle_lines[3].position, pos + Vector2(0, speed * reticle_spread), reticle_speed) + + +func update_reticle_settings(): + # Dot + $dot.scale.x = dot_size + $dot.scale.y = dot_size + $dot.color = dot_color + + # Lines + for line in reticle_lines: + line.default_color = line_color + line.width = line_width + if cap_mode == 0: + line.begin_cap_mode = Line2D.LINE_CAP_NONE + line.end_cap_mode = Line2D.LINE_CAP_NONE + elif cap_mode == 1: + line.begin_cap_mode = Line2D.LINE_CAP_ROUND + line.end_cap_mode = Line2D.LINE_CAP_ROUND + + # Please someone find a better way to do this + reticle_lines[0].points[0].y = -line_distance + reticle_lines[0].points[1].y = -line_length - line_distance + reticle_lines[1].points[0].x = -line_distance + reticle_lines[1].points[1].x = -line_length - line_distance + reticle_lines[2].points[0].x = line_distance + reticle_lines[2].points[1].x = line_length + line_distance + reticle_lines[3].points[0].y = line_distance + reticle_lines[3].points[1].y = line_length + line_distance +" + +[node name="Reticle" type="CenterContainer" node_paths=PackedStringArray("reticle_lines")] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +grow_horizontal = 2 +grow_vertical = 2 +script = SubResource("GDScript_a8kpl") +reticle_lines = [NodePath("top"), NodePath("left"), NodePath("right"), NodePath("bottom")] + +[node name="dot" type="Polygon2D" parent="."] +polygon = PackedVector2Array(-1, -1, 1, -1, 1, 1, -1, 1) + +[node name="top" type="Line2D" parent="."] +points = PackedVector2Array(0, -5, 0, -15) +width = 2.0 + +[node name="left" type="Line2D" parent="."] +points = PackedVector2Array(-5, 0, -15, 0) +width = 2.0 + +[node name="right" type="Line2D" parent="."] +points = PackedVector2Array(5, 0, 15, 0) +width = 2.0 + +[node name="bottom" type="Line2D" parent="."] +points = PackedVector2Array(0, 5, 0, 15) +width = 2.0 diff --git a/Scenes/town.tscn b/Scenes/town.tscn new file mode 100644 index 0000000..b5e2cb7 --- /dev/null +++ b/Scenes/town.tscn @@ -0,0 +1,47 @@ +[gd_scene load_steps=3 format=3 uid="uid://b5lihf68rflsh"] + +[ext_resource type="Texture2D" uid="uid://youvyib1feqp" path="res://Assets/Textures/kenny/Dark/texture_02.png" id="1_kswdu"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_iau6b"] +albedo_texture = ExtResource("1_kswdu") +uv1_triplanar = true + +[node name="Town" type="Node3D"] + +[node name="Terrain" type="Node3D" parent="."] + +[node name="Floor" type="CSGBox3D" parent="Terrain"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.25, 0) +material_override = SubResource("StandardMaterial3D_iau6b") +use_collision = true +size = Vector3(50, 0.5, 50) + +[node name="wall 1" type="CSGBox3D" parent="Terrain"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 12) +material_override = SubResource("StandardMaterial3D_iau6b") +use_collision = true +size = Vector3(25, 10, 1) + +[node name="wall 2" type="CSGBox3D" parent="Terrain"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, -12) +material_override = SubResource("StandardMaterial3D_iau6b") +use_collision = true +size = Vector3(25, 10, 1) + +[node name="wall 3" type="CSGBox3D" parent="Terrain"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13, 5, 0) +material_override = SubResource("StandardMaterial3D_iau6b") +use_collision = true +size = Vector3(1, 10, 25) + +[node name="wall 4" type="CSGBox3D" parent="Terrain"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16, 5, 0) +material_override = SubResource("StandardMaterial3D_iau6b") +use_collision = true +size = Vector3(1, 10, 25) + +[node name="platform" type="CSGBox3D" parent="Terrain"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 7) +material_override = SubResource("StandardMaterial3D_iau6b") +use_collision = true +size = Vector3(5, 0.5, 5) diff --git a/Scenes/world.tscn b/Scenes/world.tscn new file mode 100644 index 0000000..150a537 --- /dev/null +++ b/Scenes/world.tscn @@ -0,0 +1,56 @@ +[gd_scene load_steps=11 format=3 uid="uid://cjimt73bcja16"] + +[ext_resource type="Script" uid="uid://klp20wju1i26" path="res://Scripts/world.gd" id="1_8j60k"] +[ext_resource type="PackedScene" uid="uid://x4ohd5qj3xpy" path="res://Scenes/Lobby.tscn" id="2_5a7ea"] +[ext_resource type="PackedScene" uid="uid://dt1v3f2oc7vbw" path="res://Scenes/Menu/LobbyMenu.tscn" id="4_fo5ed"] +[ext_resource type="Script" uid="uid://bsyvwqveefopb" path="res://Scripts/Level/level.gd" id="5_5ukr8"] +[ext_resource type="PackedScene" uid="uid://d1ofd327cqcd1" path="res://Scenes/Server/Server.tscn" id="5_fo5ed"] +[ext_resource type="PackedScene" uid="uid://b5lihf68rflsh" path="res://Scenes/town.tscn" id="5_o06y3"] +[ext_resource type="PackedScene" uid="uid://dtpqexue3vgl6" path="res://Scenes/Chat/ChatMenu.tscn" id="7_k7acu"] + +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_go701"] +sky_horizon_color = Color(0.662243, 0.671743, 0.686743, 1) +ground_horizon_color = Color(0.662243, 0.671743, 0.686743, 1) + +[sub_resource type="Sky" id="Sky_5a7ea"] +sky_material = SubResource("ProceduralSkyMaterial_go701") + +[sub_resource type="Environment" id="Environment_8j60k"] +background_mode = 2 +sky = SubResource("Sky_5a7ea") +tonemap_mode = 2 +glow_enabled = true + +[node name="World" type="Node" node_paths=PackedStringArray("lobby_menu", "server", "level")] +script = ExtResource("1_8j60k") +lobby_menu = NodePath("LobbyMenu") +server = NodePath("Server") +level = NodePath("Level") + +[node name="Server" parent="." instance=ExtResource("5_fo5ed")] + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_8j60k") + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(-0.866023, -0.433016, 0.250001, 0, 0.499998, 0.866027, -0.500003, 0.749999, -0.43301, 0, 0, 0) +shadow_enabled = true + +[node name="Level" type="Node" parent="." node_paths=PackedStringArray("lobby")] +script = ExtResource("5_5ukr8") +lobby = NodePath("Lobby") + +[node name="Lobby" parent="Level" instance=ExtResource("2_5a7ea")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 48.3442, -31.095, 21.7287) + +[node name="MultiplayerSpawner" type="MultiplayerSpawner" parent="Level"] +_spawnable_scenes = PackedStringArray("uid://cc1m2a1obsyn4") +spawn_path = NodePath("..") + +[node name="Town" parent="Level" instance=ExtResource("5_o06y3")] + +[node name="LobbyMenu" parent="." instance=ExtResource("4_fo5ed")] +visible = false + +[node name="ChatMenu" parent="." instance=ExtResource("7_k7acu")] +visible = false diff --git a/Scripts/Chat/chat_menu.gd b/Scripts/Chat/chat_menu.gd new file mode 100644 index 0000000..9172fed --- /dev/null +++ b/Scripts/Chat/chat_menu.gd @@ -0,0 +1,246 @@ +class_name ChatMenu +extends Control + + +#region Onready Variables + +@onready var scroll_container = $AspectRatioContainer/MarginContainer/VBoxContainer/ScrollContainer +@onready var command_text_edit = $AspectRatioContainer/MarginContainer/VBoxContainer/CommandScrollContainer/CommandTextEdit +@onready var message_container = $AspectRatioContainer/MarginContainer/VBoxContainer/ScrollContainer/MessageContainer +@onready var visible_timer = $VisibleTimer + +#endregion + + +#region Variables + +var opened : bool = false +var clear_command_text : bool = false + +#endregion + + +#region Signals + +signal chat_opened() +signal spawn_item(item_name : String, x : String, y : String, z : String) +signal lobby_move(x : String, z : String) + +#endregion + + +#region Godot Functions + +func _ready() -> void: + hide() + opened = false + command_text_edit.gui_input.connect(_command_text_edit_gui_input) + visible_timer.timeout.connect(hide) + +func _process(_delta : float): + if clear_command_text == true: + command_text_edit.text = "" + clear_command_text = false + + if opened == true: + if Input.is_action_just_pressed("pause"): + remove_focus() + visible_timer.start() + return + + if Input.is_action_just_pressed("open_chat"): + visible_timer.stop() + chat_opened.emit() + show() + focus() + + if Input.is_action_just_pressed("open_chat_as_command"): + visible_timer.stop() + command_text_edit.text = "/" + chat_opened.emit() + show() + focus() + command_text_edit.set_caret_column(1, false, 0) + +#endregion + + +#region Public Functions + +func focus(): + mouse_filter = Control.MOUSE_FILTER_STOP + opened = true + Global.in_menu = true + command_text_edit.grab_focus() + +func remove_focus(): + mouse_filter = Control.MOUSE_FILTER_IGNORE + opened = false + command_text_edit.release_focus() + Global.in_menu = false + +func send_message(message : String, keep_focus : bool, label_color : Color = Color(1, 1, 1, 1)): + visible_timer.stop() + show() + var message_label : Label = Label.new() + message_label.text = message + message_label.label_settings = LabelSettings.new() + message_label.label_settings.font_color = label_color + message_label.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART + message_container.add_child(message_label) + + if keep_focus == false: + remove_focus() + visible_timer.start() + + get_tree().create_timer(0.01).timeout.connect( + func() -> void: + scroll_container.scroll_vertical = scroll_container.get_v_scroll_bar().max_value + ) + +#endregion + + +#region Signal Functions + +func _command_text_edit_gui_input(event : InputEvent): + if event.is_action_pressed("chat_send"): + send_message(command_text_edit.text, false) + check_command(command_text_edit.text) + clear_command_text = true + +#endregion + + +#region "Private" Functions + +func check_command(command : String): + command.strip_edges(true, true) + + if command.begins_with("/") == false: + return + + if Global.is_admin == false: + send_message("Cannot run command without admin status", false) + return + + command = command.lstrip("/") + + # ~ SPAWN ~ # + if command.begins_with("spawn ") or command == "spawn": + command = command.lstrip("spawn ") + command = command.trim_prefix(" ") + + #get the item name and check that it exists + var item_next_space : int = command.find(" ") + if item_next_space == -1: + send_message("Spawn Syntax error, spawn command looks like `spawn x y z`", false, Color(1, 0, 0, 1)) + return + + var item_name : String = command.substr(0, item_next_space) + command = command.lstrip(item_name) + command = command.trim_prefix(" ") + + # if EntityResource.ids_by_name.has(item_name) == false: + # var entity_names = "" + # for key in EntityResource.data: + # if EntityResource.data[key].spawnable == false: + # continue + + # entity_names += EntityResource.data[key].name + " " + + # send_message("Entity: \"" + item_name + "\" was not found, cannot spawn. Entity List is: " + entity_names, false, Color(1, 0, 0, 1)) + # return + + #get x + item_next_space = command.find(" ") + if item_next_space == -1: + send_message("Spawn Syntax error, spawn command looks like `spawn x y z`", false, Color(1, 0, 0, 1)) + return + + var x_name : String = command.substr(0, item_next_space) + command = command.lstrip(x_name) + command = command.trim_prefix(" ") + + if x_name != "~" and x_name.is_valid_int() == false: + send_message("Spawn Syntax error: x value was not ~ or int", false, Color(1, 0, 0, 1)) + return + + #get y + item_next_space = command.find(" ") + if item_next_space == -1: + send_message("Spawn Syntax error, spawn command looks like `spawn x y z`", false, Color(1, 0, 0, 1)) + return + + var y_name : String = command.substr(0, item_next_space) + command = command.lstrip(y_name) + command = command.trim_prefix(" ") + + if y_name != "~" and y_name.is_valid_int() == false: + send_message("Spawn Syntax error: y value was not ~ or int", false, Color(1, 0, 0, 1)) + return + + #check z (which is what is left in command) + command = command.trim_prefix(" ") + command = command.trim_suffix(" ") + if command == "": + send_message("Spawn Syntax error, spawn command looks like `spawn x y z`", false, Color(1, 0, 0, 1)) + + if command != "~" and command.is_valid_int() == false: + send_message("Item Spawn Syntax error: z value was not ~ or int", false, Color(1, 0, 0, 1)) + return + + #call spawn item + spawn_item.emit(item_name, x_name, y_name, command) + return + + # ~ LOBBY ~ # + if command.begins_with("lobby ") or command == "lobby": + command = command.lstrip("lobby ") + command = command.trim_prefix(" ") + + #get the type name and check that it exists + var type_next_space : int = command.find(" ") + if type_next_space == -1: + send_message("Lobby Syntax error, lobby command looks like `lobby [args]`", false, Color(1, 0, 0, 1)) + return + + # ~ move ~ # + if command.begins_with("move ") or command == "move": + command = command.lstrip("move ") + command = command.trim_prefix(" ") + + #error check for if there is no position + if command == "": + send_message("Lobby Move Syntax error, lobby move command looks like `lobby move x z`", false, Color(1, 0, 0, 1)) + return + + #get x + var position_space : int = command.find(" ") + if position_space == -1: + send_message("Lobby Move Syntax error, lobby move command looks like `lobby move x z`", false, Color(1, 0, 0, 1)) + return + + var x_name : String = command.substr(0, position_space) + command = command.lstrip(x_name) + command = command.trim_prefix(" ") + + if x_name != "~" and x_name.is_valid_int() == false: + send_message("Lobby Move Syntax error: x value was not ~ or int", false, Color(1, 0, 0, 1)) + return + + #check z (which is what is left in command) + command = command.trim_prefix(" ") + command = command.trim_suffix(" ") + if command == "": + send_message("Lobby Move Syntax error, lobby move command looks like `lobby move x z`", false, Color(1, 0, 0, 1)) + + if command != "~" and command.is_valid_int() == false: + send_message("Lobby Move Syntax error: z value was not ~ or int", false, Color(1, 0, 0, 1)) + return + + #call spawn item + lobby_move.emit(x_name, command) + return + +#endregion diff --git a/Scripts/Chat/chat_menu.gd.uid b/Scripts/Chat/chat_menu.gd.uid new file mode 100644 index 0000000..3fafcc7 --- /dev/null +++ b/Scripts/Chat/chat_menu.gd.uid @@ -0,0 +1 @@ +uid://c8k0usfm5rdm3 diff --git a/Scripts/Items/goblet.gd b/Scripts/Items/goblet.gd new file mode 100644 index 0000000..a28fc86 --- /dev/null +++ b/Scripts/Items/goblet.gd @@ -0,0 +1,5 @@ +extends RigidBody3D + +@export var item : Item +@onready var interactable : Interactable = $Interactable +@onready var is_interactable : bool = true \ No newline at end of file diff --git a/Scripts/Items/goblet.gd.uid b/Scripts/Items/goblet.gd.uid new file mode 100644 index 0000000..922da1e --- /dev/null +++ b/Scripts/Items/goblet.gd.uid @@ -0,0 +1 @@ +uid://bntxwxn6ns5l0 diff --git a/Scripts/Items/interactable.gd b/Scripts/Items/interactable.gd new file mode 100644 index 0000000..eeeaf47 --- /dev/null +++ b/Scripts/Items/interactable.gd @@ -0,0 +1,5 @@ +extends Node3D + +class_name Interactable + +@onready var outline : MeshInstance3D = $outline \ No newline at end of file diff --git a/Scripts/Items/interactable.gd.uid b/Scripts/Items/interactable.gd.uid new file mode 100644 index 0000000..bd711d3 --- /dev/null +++ b/Scripts/Items/interactable.gd.uid @@ -0,0 +1 @@ +uid://bahmrqvs4pafg diff --git a/Scripts/Level/level.gd b/Scripts/Level/level.gd new file mode 100644 index 0000000..3da97c4 --- /dev/null +++ b/Scripts/Level/level.gd @@ -0,0 +1,60 @@ +class_name Level +extends Node + +var player_scene : PackedScene = preload("res://Scenes/Mobs/character.tscn") + +@export var lobby : Lobby + +var spawnid : int = 0 + +func _ready() -> void: + spawn_player.rpc_id(1, 1) + +@rpc("any_peer", "call_local") +func request_spawn_player(id : int) -> void: + #only run on the multiplayer instance + if not multiplayer.is_server(): + return + + #don't spawn an already spawned player + if get_node_or_null("Player" + str(id)) != null: + return + + spawn_player.rpc_id(1, id) + +@rpc("any_peer", "call_local") +func spawn_player(id: int) -> void: + var new_player : Player = player_scene.instantiate() + + new_player.name = "Player" + str(id) + print("Spawning ID: ", id) + add_child(new_player) + var spawn_point: Marker3D = lobby.spawnpoints[spawnid] + print(spawn_point.global_position) + new_player.teleport_player.rpc(spawn_point.global_position, spawn_point.rotation) + spawnid += 1 + +@rpc("authority", "call_local") +func remove_client_from_server(id : int) -> void: + var disconnected_player : Player = get_node("Player" + str(id)) + spawnid = 1 + remove_child.call_deferred(disconnected_player) + disconnected_player.queue_free() + +@rpc("any_peer", "call_local") +func disconnect_from_server(): + remove_players() + spawnid = 0 + # reset map + print("Disconnect: ", multiplayer.get_unique_id()) + request_spawn_player.rpc(1) + + + +func remove_players(remove_host : bool = true) -> void: + for child in get_children(): + if child is Player: + if !remove_host and child.name == "Player1": + continue + remove_child(child) + child.queue_free() diff --git a/Scripts/Level/level.gd.uid b/Scripts/Level/level.gd.uid new file mode 100644 index 0000000..c604e64 --- /dev/null +++ b/Scripts/Level/level.gd.uid @@ -0,0 +1 @@ +uid://bsyvwqveefopb diff --git a/Scripts/Level/lobby.gd b/Scripts/Level/lobby.gd new file mode 100644 index 0000000..ec7dd0a --- /dev/null +++ b/Scripts/Level/lobby.gd @@ -0,0 +1,5 @@ +class_name Lobby +extends Node3D + + +@onready var spawnpoints : Array[Marker3D] = [$spawnpoint1, $spawnpoint2, $spawnpoint3, $spawnpoint4] \ No newline at end of file diff --git a/Scripts/Level/lobby.gd.uid b/Scripts/Level/lobby.gd.uid new file mode 100644 index 0000000..1e360b7 --- /dev/null +++ b/Scripts/Level/lobby.gd.uid @@ -0,0 +1 @@ +uid://cdc5npqxn0eda diff --git a/Scripts/Menu/inventory_menu.gd b/Scripts/Menu/inventory_menu.gd new file mode 100644 index 0000000..ace3f44 --- /dev/null +++ b/Scripts/Menu/inventory_menu.gd @@ -0,0 +1,33 @@ +extends Node + +class_name InventoryMenu + + +@onready var inventory : Inventory +@onready var item_list : VBoxContainer = $CanvasLayer/PanelContainer/VBoxContainer/MarginContainer/ScrollContainer/VBoxContainer +var item_scene : PackedScene = preload("res://Scenes/Menu/InventoryUiItem.tscn") + +func _ready() -> void: + $CanvasLayer.hide() + pass + + +func toggle_inventory() -> bool: + var canvas = $CanvasLayer + if canvas.visible == true: + $CanvasLayer.hide() + return false + else: + update_inventory() + $CanvasLayer.show() + return true + +func update_inventory(): + for i in inventory.items: + var new_item = item_scene.instantiate() + # new_item.set_values(i.item.name, i.item.value, i.item.weight) + item_list.add_child(new_item) + new_item.set_values(i.item.name, 10, 10) + print(i.item.name) + print(i) + pass diff --git a/Scripts/Menu/inventory_menu.gd.uid b/Scripts/Menu/inventory_menu.gd.uid new file mode 100644 index 0000000..7c50a50 --- /dev/null +++ b/Scripts/Menu/inventory_menu.gd.uid @@ -0,0 +1 @@ +uid://ddwvtegkiite7 diff --git a/Scripts/Menu/inventory_ui_item.gd b/Scripts/Menu/inventory_ui_item.gd new file mode 100644 index 0000000..4a8cf55 --- /dev/null +++ b/Scripts/Menu/inventory_ui_item.gd @@ -0,0 +1,11 @@ +extends Node + +@onready var title : Label = $Name +@onready var value : Label = $Value +@onready var weight : Label = $Weight + + +func set_values(new_title : String, new_value : int, new_weight : int) -> void: + title.text = new_title + value.text = str(new_value) + weight.text = str(new_weight) diff --git a/Scripts/Menu/inventory_ui_item.gd.uid b/Scripts/Menu/inventory_ui_item.gd.uid new file mode 100644 index 0000000..897b78f --- /dev/null +++ b/Scripts/Menu/inventory_ui_item.gd.uid @@ -0,0 +1 @@ +uid://bv3glh0xi771m diff --git a/Scripts/Menu/lobby_menu.gd b/Scripts/Menu/lobby_menu.gd new file mode 100644 index 0000000..a2f8ece --- /dev/null +++ b/Scripts/Menu/lobby_menu.gd @@ -0,0 +1,169 @@ +class_name LobbyMenu +extends Node + + +#region Onready Variables + +@onready var lobby_container : Container = $LobbyContainer +@onready var username : LineEdit = $VBoxContainer/Name +@onready var lobby_label : Label = $VBoxContainer/HBoxContainer/LobbyLabel +@onready var steam_lobby_id_button : Button = $VBoxContainer/HBoxContainer/SteamLobbyIdButton +@onready var disconnect_button : Button = $VBoxContainer/HBoxContainer/Disconnect +@onready var tab_container : TabContainer = $VBoxContainer/TabContainer + +@onready var steam_tab : Control = $VBoxContainer/TabContainer/Steam +@onready var steam_address_entry : LineEdit = $VBoxContainer/TabContainer/Steam/PanelContainer/MarginContainer/VBoxContainer/Address +@onready var steam_host_button : Button = $VBoxContainer/TabContainer/Steam/PanelContainer/MarginContainer/VBoxContainer/Host +@onready var steam_join_button : Button = $VBoxContainer/TabContainer/Steam/PanelContainer/MarginContainer/VBoxContainer/Join + +@onready var enet_address_entry : LineEdit = $VBoxContainer/TabContainer/ENet/PanelContainer/MarginContainer/VBoxContainer/Address +@onready var enet_host_toggle : CheckButton = $VBoxContainer/TabContainer/ENet/PanelContainer/MarginContainer/VBoxContainer/HostToggleContainer/Host +@onready var enet_join_button : Button = $VBoxContainer/TabContainer/ENet/PanelContainer/MarginContainer/VBoxContainer/Join + +#endregion + + +#region Variables + +var steam_lobby_id : String = "" + +#endregion + + +#region Signals + +signal disconnect_button_pressed() + +signal steam_host_pressed(new_username : String) +signal steam_join_pressed(new_username : String) + +signal enet_host_toggled_on(new_username : String) +signal enet_host_toggled_off() +signal enet_join_pressed(new_username : String) + +#endregion + + +#region Godot Functions + +func _ready() -> void: + #set username to steam username + username.text = "username" + + disconnect_button.pressed.connect(_on_disconnet_button_pressed) + + #steam + if Global.steam_connected == true: + username.text = Steam.getPersonaName() + + steam_lobby_id_button.pressed.connect(_on_steam_lobby_id_button_pressed) + steam_host_button.pressed.connect(_on_steam_host_pressed) + steam_join_button.pressed.connect(_on_steam_join_pressed) + + #enet + enet_host_toggle.toggled.connect(_on_enet_host_toggled) + enet_join_button.pressed.connect(_on_enet_join_pressed) + + if Global.steam_connected == false: + tab_container.remove_child(steam_tab) + +#endregion + + +#region Public Functions + +func reset_visible() -> void: + steam_lobby_id_button.hide() + disconnect_button.hide() + clear_lobby_text() + username.show() + + #steam + steam_join_button.show() + steam_address_entry.show() + steam_host_button.show() + + #enet + tab_container.tabs_visible = true + tab_container.show() + enet_address_entry.show() + enet_join_button.show() + +func request_lobby_list() -> void: + for child in lobby_container.get_children(): + child.queue_free() + + Steam.requestLobbyList() + +func set_lobby_text(new_names : Array[String]) -> void: + clear_lobby_text() + + for new_name in new_names: + var name_label : Label = Label.new() + name_label.text = new_name + lobby_container.add_child(name_label) + +func clear_lobby_text() -> void: + var lobby_container_children = lobby_container.get_children() + for child in lobby_container_children: + child.free() + +func update_steam_lobby_id_button(): + steam_lobby_id_button.show() + steam_lobby_id = Global.steam_lobby_id + +#endregion + + +#region Signal Functions +func _on_disconnet_button_pressed() -> void: + disconnect_button_pressed.emit() + +func _on_steam_host_pressed() -> void: + steam_host_pressed.emit(username.text) + steam_join_button.hide() + tab_container.tabs_visible = false + steam_address_entry.hide() + steam_host_button.hide() + username.hide() + +func _on_steam_join_pressed() -> void: + Global.steam_lobby_id = steam_address_entry.text + steam_join_pressed.emit(username.text) + steam_join_button.hide() + tab_container.tabs_visible = false + steam_address_entry.hide() + steam_host_button.hide() + username.hide() + disconnect_button.show() + +func _on_enet_host_toggled(toggled_on : bool) -> void: + if toggled_on: + enet_address_entry.hide() + enet_join_button.hide() + username.hide() + enet_host_toggled_on.emit(username.text) + tab_container.tabs_visible = false + return + + tab_container.tabs_visible = true + enet_host_toggled_off.emit() + enet_address_entry.show() + enet_join_button.show() + username.show() + +func _on_enet_join_pressed() -> void: + if enet_address_entry.text.is_empty() == false: + Global.enet_address = enet_address_entry.text + + tab_container.tabs_visible = false + enet_join_pressed.emit(username.text) + enet_join_button.hide() + tab_container.hide() + username.hide() + disconnect_button.show() + +func _on_steam_lobby_id_button_pressed(): + DisplayServer.clipboard_set(steam_lobby_id) + +#endregion diff --git a/Scripts/Menu/lobby_menu.gd.uid b/Scripts/Menu/lobby_menu.gd.uid new file mode 100644 index 0000000..d4cffb8 --- /dev/null +++ b/Scripts/Menu/lobby_menu.gd.uid @@ -0,0 +1 @@ +uid://b2pee67ics25u diff --git a/Scripts/Resources/inventory.gd b/Scripts/Resources/inventory.gd new file mode 100644 index 0000000..e115b09 --- /dev/null +++ b/Scripts/Resources/inventory.gd @@ -0,0 +1,15 @@ +extends Resource + +class_name Inventory + +var items : Array[RigidBody3D] + + +func get_current_slot(index : int) -> RigidBody3D: + return items[index] + +func add_item(item : RigidBody3D) -> void: + items.append(item) + +func remove_items(item : RigidBody3D) -> void: + items.erase(item) \ No newline at end of file diff --git a/Scripts/Resources/inventory.gd.uid b/Scripts/Resources/inventory.gd.uid new file mode 100644 index 0000000..508e8fe --- /dev/null +++ b/Scripts/Resources/inventory.gd.uid @@ -0,0 +1 @@ +uid://darcj1vokaiv2 diff --git a/Scripts/Resources/item.gd b/Scripts/Resources/item.gd new file mode 100644 index 0000000..0f5557e --- /dev/null +++ b/Scripts/Resources/item.gd @@ -0,0 +1,9 @@ +extends Resource + +class_name Item + +@export var value : int +@export var name : String +@export var weight : int +@export var primary_objective : bool +@export var secondary_objective : bool diff --git a/Scripts/Resources/item.gd.uid b/Scripts/Resources/item.gd.uid new file mode 100644 index 0000000..05d2279 --- /dev/null +++ b/Scripts/Resources/item.gd.uid @@ -0,0 +1 @@ +uid://ctwdmnqaxkty diff --git a/Scripts/Server/player_data.gd b/Scripts/Server/player_data.gd new file mode 100644 index 0000000..2b89d68 --- /dev/null +++ b/Scripts/Server/player_data.gd @@ -0,0 +1,12 @@ +class_name PlayerData + +extends Resource + +@export var id : int +@export var lobby_index : int +@export var name : String + +func _init(new_id : int = -1, new_lobby_index : int = -1, new_name : String = "username"): + id = new_id + lobby_index = new_lobby_index + name = new_name \ No newline at end of file diff --git a/Scripts/Server/player_data.gd.uid b/Scripts/Server/player_data.gd.uid new file mode 100644 index 0000000..95d0899 --- /dev/null +++ b/Scripts/Server/player_data.gd.uid @@ -0,0 +1 @@ +uid://b8fojvchw16hl diff --git a/Scripts/Server/server.gd b/Scripts/Server/server.gd new file mode 100644 index 0000000..31e49c8 --- /dev/null +++ b/Scripts/Server/server.gd @@ -0,0 +1,273 @@ +class_name Server + +extends Node + + +#region Constants + +const DEFAULT_PORT = 10567 +const MAX_CLIENTS = 3 + +#endregion + + +#region Onready Variables + +# @onready var microphone : AudioStreamPlayer3D = $Microphone + +#endregion + + +#region Variables + +var players_ready : Array = [] + +var peer : MultiplayerPeer = null + +#var mic_capture : AudioEffectOpusChunked + +var lobby_id : int = -1 + +#endregion + + +#region RPC + +# @rpc("any_peer", "unreliable") +# func voice_packet_recieved(packet): +# var sender_id = multiplayer.get_remote_sender_id() + # push_opus_packet_to_player.emit(sender_id, packet) + +#endregion + + +#region Signals + +signal game_log(message : String, color : Color) + +signal server_close() + +signal client_connected_to_server() + +signal client_disconnected_from_server() + +signal remove_client_from_server(id : int) + +signal steam_lobby_created() + +# signal push_opus_packet_to_player(id : int, packet) + +#endregion + + +#region Godot Functions + +func _ready() -> void: + for argument in OS.get_cmdline_args(): + if argument == "-steam": + ready_steam() + + # ready_voip() + + #set multiplayer signals + multiplayer.peer_connected.connect(_multiplayer_peer_connected) + multiplayer.peer_disconnected.connect(_multiplayer_peer_disconnected) + multiplayer.connected_to_server.connect(_multiplayer_connected_to_server) + multiplayer.connection_failed.connect(_multiplayer_connection_failed) + multiplayer.server_disconnected.connect(_multiplayer_server_disconnected) + + + #set steam signals + if Global.steam_connected == true: + Steam.lobby_joined.connect(_steam_lobby_joined) + Steam.lobby_created.connect(_steam_lobby_created) + +func _process(_delta : float): + # process_voip() + Steam.run_callbacks() + +#endregion + + +#region Ready Functions + +func ready_steam() -> void: + var steam_response : Dictionary = Steam.steamInitEx() + Global.steam_connected = steam_response["status"] == 0 + + if Global.steam_connected == false: + get_tree().create_timer(3.0).timeout.connect( + func(): + game_log.emit("Could Not Connect To Steam", Color(1, 0, 0, 1)) + ) + +# func ready_voip() -> void: +# assert(microphone.bus == "MicrophoneBus") +# var mic_bus = AudioServer.get_bus_index("MicrophoneBus") +# mic_capture = AudioServer.get_bus_effect(mic_bus, 0) + +#endregion + + +#region Process Functions + +# func process_voip() -> void: +# if mic_capture == null: +# return + +# while mic_capture.chunk_available(): +# var packet = mic_capture.read_opus_packet(PackedByteArray()) +# mic_capture.drop_chunk() + +# if Global.voip_on == false: +# continue + +# if Global.is_multiplayer and multiplayer.multiplayer_peer.get_connection_status() == MultiplayerPeer.CONNECTION_CONNECTED: +# voice_packet_recieved.rpc(packet) + +#endregion + + +#region Default Multiplayer Functions + +func destroy_lobby() -> void: + Global.is_multiplayer = false + + multiplayer.multiplayer_peer.close() + peer = OfflineMultiplayerPeer.new() + multiplayer.multiplayer_peer = peer + + server_close.emit() + +func disconnect_client() -> void: + Global.is_multiplayer = false + + multiplayer.multiplayer_peer.close() + peer = OfflineMultiplayerPeer.new() + multiplayer.multiplayer_peer = peer + + client_disconnected_from_server.emit() + +#endregion + + +#region Enet Functions + +func enet_create_host() -> void: + #set multiplayer to true + Global.is_multiplayer = true + + #init multiplayer host + peer = ENetMultiplayerPeer.new() + (peer as ENetMultiplayerPeer).create_server(DEFAULT_PORT, MAX_CLIENTS) + multiplayer.multiplayer_peer = peer + +func enet_create_client(address : String) -> void: + #set multiplayer to true + Global.is_multiplayer = true + + #init client and wait for connection + peer = ENetMultiplayerPeer.new() + (peer as ENetMultiplayerPeer).create_client(address, DEFAULT_PORT) + multiplayer.set_multiplayer_peer(peer) + await multiplayer.connected_to_server + +#endregion + + +#region Steam Functions + +func steam_create_host() -> void: + #players[1] = PlayerData.new(1, 0, new_username) + Steam.createLobby(Steam.LOBBY_TYPE_FRIENDS_ONLY, MAX_CLIENTS) + +func steam_join_lobby(new_lobby_id : int) -> void: + Steam.joinLobby(new_lobby_id) + +func steam_create_socket(): + Global.is_multiplayer = true + + peer = SteamMultiplayerPeer.new() + peer.create_host(0) + multiplayer.set_multiplayer_peer(peer) + +func steam_connect_socket(steam_id : int) -> void: + Global.is_multiplayer = true + + peer = SteamMultiplayerPeer.new() + peer.create_client(steam_id, 0) + multiplayer.set_multiplayer_peer(peer) + +#endregion + + +#region Signal Functions + +func _multiplayer_peer_connected(_id : int): + pass + +func _multiplayer_peer_disconnected(id : int): + if multiplayer.is_server(): + game_log.emit("Player \"" + str(id) + "\" disconnected", Color(1, 0, 0, 1)) + remove_client_from_server.emit(id) + +func _multiplayer_connected_to_server() -> void: + client_connected_to_server.emit() + +func _multiplayer_connection_failed() -> void: + Global.is_multiplayer = false + peer = OfflineMultiplayerPeer.new() + multiplayer.multiplayer_peer = peer + client_disconnected_from_server.emit() + game_log.emit("Server connection failed", Color(1, 0, 0, 1)) + +func _multiplayer_server_disconnected() -> void: + Global.is_multiplayer = false + peer = OfflineMultiplayerPeer.new() + multiplayer.multiplayer_peer = peer + client_disconnected_from_server.emit() + game_log.emit("Server disconnected", Color(1, 0, 0, 1)) + +func _steam_lobby_joined(new_lobby_id : int, _permissions : int, _locked : bool, response : int) -> void: + if response == Steam.CHAT_ROOM_ENTER_RESPONSE_SUCCESS: + lobby_id = new_lobby_id + var id : int = Steam.getLobbyOwner(new_lobby_id) + if id != Steam.getSteamID(): + steam_connect_socket(id) + #player_register.rpc(username) + #players[multiplayer.get_unique_id()] = username + return + var message : String + match response: + Steam.CHAT_ROOM_ENTER_RESPONSE_DOESNT_EXIST: + message = "This lobby no longer exists." + Steam.CHAT_ROOM_ENTER_RESPONSE_NOT_ALLOWED: + message = "You don't have permission to join this lobby." + Steam.CHAT_ROOM_ENTER_RESPONSE_FULL: + message = "The lobby is now full." + Steam.CHAT_ROOM_ENTER_RESPONSE_ERROR: + message = "Response errored." + Steam.CHAT_ROOM_ENTER_RESPONSE_BANNED: + message = "You are banned from this lobby." + Steam.CHAT_ROOM_ENTER_RESPONSE_LIMITED: + message = "You cannot join due to having a limited account." + Steam.CHAT_ROOM_ENTER_RESPONSE_CLAN_DISABLED: + message = "This lobby is locked or disabled." + Steam.CHAT_ROOM_ENTER_RESPONSE_COMMUNITY_BAN: + message = "This lobby is community locked." + Steam.CHAT_ROOM_ENTER_RESPONSE_MEMBER_BLOCKED_YOU: + message = "A user in the lobby has blocked you from joining." + Steam.CHAT_ROOM_ENTER_RESPONSE_YOU_BLOCKED_MEMBER: + message = "A user you have blocked is in the lobby." + game_log.emit(message, Color(1, 0, 0, 1)) + +func _steam_lobby_created(connected: int, this_lobby_id: int) -> void: + if connected == 1: + Global.steam_lobby_id = str(this_lobby_id) + Steam.setLobbyData(this_lobby_id, "name", str(Steam.getPersonaName(), "'s test server")) + steam_create_socket() + steam_lobby_created.emit() + return + game_log.emit("Error on create lobby!", Color(1, 0, 0, 1)) + +#endregion diff --git a/Scripts/Server/server.gd.uid b/Scripts/Server/server.gd.uid new file mode 100644 index 0000000..c8949f5 --- /dev/null +++ b/Scripts/Server/server.gd.uid @@ -0,0 +1 @@ +uid://dwwtrox3lp2jp diff --git a/Scripts/Server/server_lobby.gd b/Scripts/Server/server_lobby.gd new file mode 100644 index 0000000..9d3da72 --- /dev/null +++ b/Scripts/Server/server_lobby.gd @@ -0,0 +1,71 @@ +class_name ServerLobby +extends Node + + +#region Exports + +@export var players : Dictionary[int, PlayerData] = {} + +#endregion + + +#region Variables + +var free_lobby_indexs : Array[int] = [] + +#endregion + + +#region Signals + +signal player_registered() + +#endregion + + +#region Client RPC + +@rpc("any_peer", "call_local") +func request_player_register(id: int, username) -> void: + #only run on the multiplayer instance + if not multiplayer.is_server(): + return + + player_register.rpc_id(1, id, username) + +@rpc("any_peer", "call_local") +func update_client_players(id : int, username : String) -> void: + if not players.has(id): + players[id] = PlayerData.new(id, players.size(), username) + + player_registered.emit() + +#endregion + + +#region Server RPC + +@rpc("authority", "call_local") +func player_register(id : int, username : String) -> void: + var lobby_index : int = players.size() + if free_lobby_indexs.size() != 0: + lobby_index = free_lobby_indexs.pop_front() + + players[id] = PlayerData.new(id, lobby_index, username) + + #send the entire list for clients that join later + for player_id in players: + update_client_players.rpc(player_id, players[player_id].name) + +@rpc("authority", "call_local") +func player_unregister(id) -> void: + free_lobby_indexs.append(players[id].lobby_index) + players.erase(id) + player_registered.emit() + +@rpc("authority", "call_local") +func players_clear() -> void: + players.clear() + player_registered.emit() + +#endregion diff --git a/Scripts/Server/server_lobby.gd.uid b/Scripts/Server/server_lobby.gd.uid new file mode 100644 index 0000000..f516d7a --- /dev/null +++ b/Scripts/Server/server_lobby.gd.uid @@ -0,0 +1 @@ +uid://k0xvfdmvtyrt diff --git a/Scripts/fpc/EditorModule.gd b/Scripts/fpc/EditorModule.gd new file mode 100644 index 0000000..0a3a74f --- /dev/null +++ b/Scripts/fpc/EditorModule.gd @@ -0,0 +1,49 @@ +@tool +extends Node + +# This does not effect runtime yet but will in the future. + +@export_category("Controller Editor Module") +@export_range(-360.0, 360.0, 0.01, "or_greater", "or_less") var head_y_rotation : float = 0.0: + set(new_rotation): + if HEAD: + head_y_rotation = new_rotation + HEAD.rotation.y = deg_to_rad(head_y_rotation) + update_configuration_warnings() +@export_range(-90.0, 90.0, 0.01, "or_greater", "or_less") var head_x_rotation : float = 0.0: + set(new_rotation): + if HEAD: + head_x_rotation = new_rotation + HEAD.rotation.x = deg_to_rad(head_x_rotation) + update_configuration_warnings() + +@export_group("Nodes") +@export var CHARACTER : CharacterBody3D +@export var head_path : String = "Head" # Relative to the parent node +#@export var CAMERA : Camera3D +#@export var HEADBOB_ANIMATION : AnimationPlayer +#@export var JUMP_ANIMATION : AnimationPlayer +#@export var CROUCH_ANIMATION : AnimationPlayer +#@export var COLLISION_MESH : CollisionShape3D + +@onready var HEAD = get_node("../" + head_path) + + +func _ready(): + if !Engine.is_editor_hint(): + #print("not editor") + HEAD.rotation.y = deg_to_rad(head_y_rotation) + HEAD.rotation.x = deg_to_rad(head_x_rotation) + + +func _get_configuration_warnings(): + var warnings = [] + + if head_y_rotation > 360: + warnings.append("The head rotation is greater than 360") + + if head_y_rotation < -360: + warnings.append("The head rotation is less than -360") + + # Returning an empty array gives no warnings + return warnings diff --git a/Scripts/fpc/EditorModule.gd.uid b/Scripts/fpc/EditorModule.gd.uid new file mode 100644 index 0000000..96be9c8 --- /dev/null +++ b/Scripts/fpc/EditorModule.gd.uid @@ -0,0 +1 @@ +uid://c5g0jt1apb2al diff --git a/Scripts/fpc/character.gd b/Scripts/fpc/character.gd new file mode 100644 index 0000000..c2db386 --- /dev/null +++ b/Scripts/fpc/character.gd @@ -0,0 +1,551 @@ +# COPYRIGHT Colormatic Studios +# MIT license +# Quality Godot First Person Controller v2 + +class_name Player +extends CharacterBody3D + + +#region Character Export Group + +## The settings for the character's movement and feel. +@export_category("Character") +## The speed that the character moves at without crouching or sprinting. +@export var base_speed : float = 3.0 +## The speed that the character moves at when sprinting. +@export var sprint_speed : float = 6.0 +## The speed that the character moves at when crouching. +@export var crouch_speed : float = 1.0 + +## How fast the character speeds up and slows down when Motion Smoothing is on. +@export var acceleration : float = 10.0 +## How high the player jumps. +@export var jump_velocity : float = 4.5 +## How far the player turns when the mouse is moved. +@export var mouse_sensitivity : float = 0.1 +## Invert the X axis input for the camera. +@export var invert_camera_x_axis : bool = false +## Invert the Y axis input for the camera. +@export var invert_camera_y_axis : bool = false +## Whether the player can use movement inputs. Does not stop outside forces or jumping. See Jumping Enabled. +@export var immobile : bool = false +## The reticle file to import at runtime. By default are in res://addons/fpc/reticles/. Set to an empty string to remove. +@export_file var default_reticle = "res://Scenes/reticles/reticle_1.tscn" + +#endregion + +#region Nodes Export Group + +@export_group("Nodes") +## A reference to the camera for use in the character script. This is the parent node to the camera and is rotated instead of the camera for mouse input. +@export var HEAD : Node3D +## A reference to the camera for use in the character script. +@export var CAMERA : Camera3D +# A reference to the Camera Ray Cast +@export var CAMERA_RAYCAST : RayCast3D +# current item player is looking at +@onready var HIGHLIGHTED_ITEM : RigidBody3D +# A reference to the inventory +@export var INVENTORY : Inventory +# A reference to the inventory menu +@onready var inventory_menu : InventoryMenu +## A reference to the headbob animation for use in the character script. +@export var HEADBOB_ANIMATION : AnimationPlayer +## A reference to the jump animation for use in the character script. +@export var JUMP_ANIMATION : AnimationPlayer +## A reference to the crouch animation for use in the character script. +@export var CROUCH_ANIMATION : AnimationPlayer +## A reference to the the player's collision shape for use in the character script. +@export var COLLISION_MESH : CollisionShape3D + +#endregion + +#region Controls Export Group + +# We are using UI controls because they are built into Godot Engine so they can be used right away +@export_group("Controls") +## Use the Input Map to map a mouse/keyboard input to an action and add a reference to it to this dictionary to be used in the script. +@export var controls : Dictionary = { + LEFT = "move_left", + RIGHT = "move_right", + FORWARD = "move_forward", + BACKWARD = "move_back", + JUMP = "jump", + CROUCH = "crouch", + SPRINT = "sprint", + PAUSE = "pause", + INTERACT = "interact", + INVENTORY = "inventory" + } +@export_subgroup("Controller Specific") +## This only affects how the camera is handled, the rest should be covered by adding controller inputs to the existing actions in the Input Map. +@export var controller_support : bool = false +## Use the Input Map to map a controller input to an action and add a reference to it to this dictionary to be used in the script. +@export var controller_controls : Dictionary = { + LOOK_LEFT = "look_left", + LOOK_RIGHT = "look_right", + LOOK_UP = "look_up", + LOOK_DOWN = "look_down" + } +## The sensitivity of the analog stick that controls camera rotation. Lower is less sensitive and higher is more sensitive. +@export_range(0.001, 1, 0.001) var look_sensitivity : float = 0.035 + +#endregion + +#region Feature Settings Export Group + +@export_group("Feature Settings") +## Enable or disable jumping. Useful for restrictive storytelling environments. +@export var jumping_enabled : bool = true +## Whether the player can move in the air or not. +@export var in_air_momentum : bool = true +## Smooths the feel of walking. +@export var motion_smoothing : bool = true +## Enables or disables sprinting. +@export var sprint_enabled : bool = true +## Toggles the sprinting state when button is pressed or requires the player to hold the button down to remain sprinting. +@export_enum("Hold to Sprint", "Toggle Sprint") var sprint_mode : int = 0 +## Enables or disables crouching. +@export var crouch_enabled : bool = true +## Toggles the crouch state when button is pressed or requires the player to hold the button down to remain crouched. +@export_enum("Hold to Crouch", "Toggle Crouch") var crouch_mode : int = 0 +## Wether sprinting should effect FOV. +@export var dynamic_fov : bool = true +## If the player holds down the jump button, should the player keep hopping. +@export var continuous_jumping : bool = true +## Enables the view bobbing animation. +@export var view_bobbing : bool = true +## Enables an immersive animation when the player jumps and hits the ground. +@export var jump_animation : bool = true +## This determines wether the player can use the pause button, not wether the game will actually pause. +@export var pausing_enabled : bool = true +## Use with caution. +@export var gravity_enabled : bool = true +## If your game changes the gravity value during gameplay, check this property to allow the player to experience the change in gravity. +@export var dynamic_gravity : bool = false + +#endregion + +#region Member Variable Initialization + +# These are variables used in this script that don't need to be exposed in the editor. +var speed : float = base_speed +var current_speed : float = 0.0 +# States: normal, crouching, sprinting +var state : String = "normal" +var low_ceiling : bool = false # This is for when the ceiling is too low and the player needs to crouch. +var was_on_floor : bool = true # Was the player on the floor last frame (for landing animation) + +# The reticle should always have a Control node as the root +var RETICLE : Control + +# Get the gravity from the project settings to be synced with RigidBody nodes +var gravity : float = ProjectSettings.get_setting("physics/3d/default_gravity") # Don't set this as a const, see the gravity section in _physics_process + +# Stores mouse input for rotating the camera in the physics process +var mouseInput : Vector2 = Vector2(0,0) + +#endregion + + +#region Godot Functions +func _enter_tree() -> void: + + #get the id off the player name and set authority + var new_id = name.lstrip("Player") + set_multiplayer_authority(new_id.to_int()) + +func _ready(): + #It is safe to comment this line if your game doesn't start with the mouse captured + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + + # If the controller is rotated in a certain direction for game design purposes, redirect this rotation into the head. + HEAD.rotation.y = rotation.y + rotation.y = 0 + + if default_reticle: + change_reticle(default_reticle) + + initialize_animations() + check_controls() + enter_normal_state() + if is_multiplayer_authority(): + CAMERA.current = true + inventory_menu = $UserInterface/InventoryMenu + inventory_menu.inventory = INVENTORY + +func _process(_delta): + # if pausing_enabled: + # handle_pausing() + + update_debug_menu_per_frame() + + handle_open_inventory() + + +func _physics_process(delta): # Most things happen here. + # Gravity + if dynamic_gravity: + gravity = ProjectSettings.get_setting("physics/3d/default_gravity") + if not is_on_floor() and gravity and gravity_enabled: + velocity.y -= gravity * delta + handle_jumping() + + var input_dir = Vector2.ZERO + + if not immobile && !Global.in_menu: # Immobility works by interrupting user input, so other forces can still be applied to the player + input_dir = Input.get_vector(controls.LEFT, controls.RIGHT, controls.FORWARD, controls.BACKWARD) + + handle_movement(delta, input_dir) + + handle_head_rotation() + + # The player is not able to stand up if the ceiling is too low + low_ceiling = $CrouchCeilingDetection.is_colliding() + + handle_state(input_dir) + if dynamic_fov: # This may be changed to an AnimationPlayer + update_camera_fov() + + if view_bobbing: + play_headbob_animation(input_dir) + + if jump_animation: + play_jump_animation() + handle_interact() + update_debug_menu_per_tick() + + was_on_floor = is_on_floor() # This must always be at the end of physics_process + +#endregion + +#region Server Functions + +@rpc("any_peer", "call_local") +func teleport_player(location: Vector3, new_rotation: Vector3) -> void: + if not is_multiplayer_authority(): + return + global_position = location + HEAD.rotation = new_rotation + velocity = Vector3.ZERO + + +#endregion + +#region Input Handling + +func handle_jumping(): + if jumping_enabled: + if continuous_jumping: # Hold down the jump button + if Input.is_action_pressed(controls.JUMP) and is_on_floor() and !low_ceiling and !Global.in_menu: + if jump_animation: + JUMP_ANIMATION.play("jump", 0.25) + velocity.y += jump_velocity # Adding instead of setting so jumping on slopes works properly + else: + if Input.is_action_just_pressed(controls.JUMP) and is_on_floor() and !low_ceiling and !Global.in_menu: + if jump_animation: + JUMP_ANIMATION.play("jump", 0.25) + velocity.y += jump_velocity + + +func handle_movement(delta, input_dir): + var direction = input_dir.rotated(-HEAD.rotation.y) + direction = Vector3(direction.x, 0, direction.y) + move_and_slide() + + if in_air_momentum: + if is_on_floor(): + if motion_smoothing: + velocity.x = lerp(velocity.x, direction.x * speed, acceleration * delta) + velocity.z = lerp(velocity.z, direction.z * speed, acceleration * delta) + else: + velocity.x = direction.x * speed + velocity.z = direction.z * speed + else: + if motion_smoothing: + velocity.x = lerp(velocity.x, direction.x * speed, acceleration * delta) + velocity.z = lerp(velocity.z, direction.z * speed, acceleration * delta) + else: + velocity.x = direction.x * speed + velocity.z = direction.z * speed + + +func handle_head_rotation(): + if invert_camera_x_axis: + HEAD.rotation_degrees.y -= mouseInput.x * mouse_sensitivity * -1 + else: + HEAD.rotation_degrees.y -= mouseInput.x * mouse_sensitivity + + if invert_camera_y_axis: + HEAD.rotation_degrees.x -= mouseInput.y * mouse_sensitivity * -1 + else: + HEAD.rotation_degrees.x -= mouseInput.y * mouse_sensitivity + + if controller_support: + var controller_view_rotation = Input.get_vector(controller_controls.LOOK_DOWN, controller_controls.LOOK_UP, controller_controls.LOOK_RIGHT, controller_controls.LOOK_LEFT) * look_sensitivity # These are inverted because of the nature of 3D rotation. + if invert_camera_x_axis: + HEAD.rotation.x += controller_view_rotation.x * -1 + else: + HEAD.rotation.x += controller_view_rotation.x + + if invert_camera_y_axis: + HEAD.rotation.y += controller_view_rotation.y * -1 + else: + HEAD.rotation.y += controller_view_rotation.y + + mouseInput = Vector2(0,0) + HEAD.rotation.x = clamp(HEAD.rotation.x, deg_to_rad(-90), deg_to_rad(90)) + +func handle_interact(): + if CAMERA_RAYCAST.is_colliding(): + var interactable = CAMERA_RAYCAST.get_collider() + if "interactable" in interactable: + HIGHLIGHTED_ITEM = interactable + interactable.interactable.outline.show() + if "item" in interactable: + if Input.is_action_just_pressed(controls.INTERACT): + print(CAMERA_RAYCAST.get_collider()) + var item = interactable as RigidBody3D + item.freeze = true + item.collision_layer = 0 + item.hide() + INVENTORY.add_item(item) + print("This is a item") + elif HIGHLIGHTED_ITEM != null: + HIGHLIGHTED_ITEM.get_node("Interactable").outline.hide() + HIGHLIGHTED_ITEM = null + +func check_controls(): # If you add a control, you might want to add a check for it here. + # The actions are being disabled so the engine doesn't halt the entire project in debug mode + if !InputMap.has_action(controls.JUMP): + push_error("No control mapped for jumping. Please add an input map control. Disabling jump.") + jumping_enabled = false + if !InputMap.has_action(controls.LEFT): + push_error("No control mapped for move left. Please add an input map control. Disabling movement.") + immobile = true + if !InputMap.has_action(controls.RIGHT): + push_error("No control mapped for move right. Please add an input map control. Disabling movement.") + immobile = true + if !InputMap.has_action(controls.FORWARD): + push_error("No control mapped for move forward. Please add an input map control. Disabling movement.") + immobile = true + if !InputMap.has_action(controls.BACKWARD): + push_error("No control mapped for move backward. Please add an input map control. Disabling movement.") + immobile = true + if !InputMap.has_action(controls.PAUSE): + push_error("No control mapped for pause. Please add an input map control. Disabling pausing.") + pausing_enabled = false + if !InputMap.has_action(controls.CROUCH): + push_error("No control mapped for crouch. Please add an input map control. Disabling crouching.") + crouch_enabled = false + if !InputMap.has_action(controls.SPRINT): + push_error("No control mapped for sprint. Please add an input map control. Disabling sprinting.") + sprint_enabled = false + +func handle_open_inventory(force_toggle : bool = false): + if Input.is_action_just_pressed(controls.INVENTORY) || force_toggle: + Global.inventory_showing = inventory_menu.toggle_inventory() + match Input.mouse_mode: + Input.MOUSE_MODE_CAPTURED: + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + #get_tree().paused = false + Input.MOUSE_MODE_VISIBLE: + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + #get_tree().paused = false +#endregion + +#region State Handling + +func handle_state(moving): + if sprint_enabled: + if sprint_mode == 0: + if Input.is_action_pressed(controls.SPRINT) and state != "crouching": + if moving: + if state != "sprinting": + enter_sprint_state() + else: + if state == "sprinting": + enter_normal_state() + elif state == "sprinting": + enter_normal_state() + elif sprint_mode == 1: + if moving: + # If the player is holding sprint before moving, handle that scenario + if Input.is_action_pressed(controls.SPRINT) and state == "normal": + enter_sprint_state() + if Input.is_action_just_pressed(controls.SPRINT): + match state: + "normal": + enter_sprint_state() + "sprinting": + enter_normal_state() + elif state == "sprinting": + enter_normal_state() + + if crouch_enabled: + if crouch_mode == 0: + if Input.is_action_pressed(controls.CROUCH) and state != "sprinting": + if state != "crouching": + enter_crouch_state() + elif state == "crouching" and !$CrouchCeilingDetection.is_colliding(): + enter_normal_state() + elif crouch_mode == 1: + if Input.is_action_just_pressed(controls.CROUCH): + match state: + "normal": + enter_crouch_state() + "crouching": + if !$CrouchCeilingDetection.is_colliding(): + enter_normal_state() + + +# Any enter state function should only be called once when you want to enter that state, not every frame. +func enter_normal_state(): + #print("entering normal state") + var prev_state = state + if prev_state == "crouching": + CROUCH_ANIMATION.play_backwards("crouch") + state = "normal" + speed = base_speed + +func enter_crouch_state(): + #print("entering crouch state") + state = "crouching" + speed = crouch_speed + CROUCH_ANIMATION.play("crouch") + +func enter_sprint_state(): + #print("entering sprint state") + var prev_state = state + if prev_state == "crouching": + CROUCH_ANIMATION.play_backwards("crouch") + state = "sprinting" + speed = sprint_speed + +#endregion + +#region Animation Handling + +func initialize_animations(): + # Reset the camera position + # If you want to change the default head height, change these animations. + HEADBOB_ANIMATION.play("RESET") + JUMP_ANIMATION.play("RESET") + CROUCH_ANIMATION.play("RESET") + +func play_headbob_animation(moving): + if moving and is_on_floor(): + var use_headbob_animation : String + match state: + "normal","crouching": + use_headbob_animation = "walk" + "sprinting": + use_headbob_animation = "sprint" + + var was_playing : bool = false + if HEADBOB_ANIMATION.current_animation == use_headbob_animation: + was_playing = true + + HEADBOB_ANIMATION.play(use_headbob_animation, 0.25) + HEADBOB_ANIMATION.speed_scale = (current_speed / base_speed) * 1.75 + if !was_playing: + HEADBOB_ANIMATION.seek(float(randi() % 2)) # Randomize the initial headbob direction + # Let me explain that piece of code because it looks like it does the opposite of what it actually does. + # The headbob animation has two starting positions. One is at 0 and the other is at 1. + # randi() % 2 returns either 0 or 1, and so the animation randomly starts at one of the starting positions. + # This code is extremely performant but it makes no sense. + + else: + if HEADBOB_ANIMATION.current_animation == "sprint" or HEADBOB_ANIMATION.current_animation == "walk": + HEADBOB_ANIMATION.speed_scale = 1 + HEADBOB_ANIMATION.play("RESET", 1) + +func play_jump_animation(): + if !was_on_floor and is_on_floor(): # The player just landed + var facing_direction : Vector3 = CAMERA.get_global_transform().basis.x + var facing_direction_2D : Vector2 = Vector2(facing_direction.x, facing_direction.z).normalized() + var velocity_2D : Vector2 = Vector2(velocity.x, velocity.z).normalized() + + # Compares velocity direction against the camera direction (via dot product) to determine which landing animation to play. + var side_landed : int = round(velocity_2D.dot(facing_direction_2D)) + + if side_landed > 0: + JUMP_ANIMATION.play("land_right", 0.25) + elif side_landed < 0: + JUMP_ANIMATION.play("land_left", 0.25) + else: + JUMP_ANIMATION.play("land_center", 0.25) + +#endregion + +#region Debug Menu + +func update_debug_menu_per_frame(): + $UserInterface/DebugPanel.add_property("FPS", Performance.get_monitor(Performance.TIME_FPS), 0) + var status : String = state + if !is_on_floor(): + status += " in the air" + $UserInterface/DebugPanel.add_property("State", status, 4) + + +func update_debug_menu_per_tick(): + # Big thanks to github.com/LorenzoAncora for the concept of the improved debug values + current_speed = Vector3.ZERO.distance_to(get_real_velocity()) + $UserInterface/DebugPanel.add_property("Speed", snappedf(current_speed, 0.001), 1) + $UserInterface/DebugPanel.add_property("Target speed", speed, 2) + var cv : Vector3 = get_real_velocity() + var vd : Array[float] = [ + snappedf(cv.x, 0.001), + snappedf(cv.y, 0.001), + snappedf(cv.z, 0.001) + ] + var readable_velocity : String = "X: " + str(vd[0]) + " Y: " + str(vd[1]) + " Z: " + str(vd[2]) + $UserInterface/DebugPanel.add_property("Velocity", readable_velocity, 3) + + +func _unhandled_input(event : InputEvent): + if event is InputEventMouseMotion and Input.mouse_mode == Input.MOUSE_MODE_CAPTURED: + mouseInput.x += event.relative.x + mouseInput.y += event.relative.y + # Toggle debug menu + elif event is InputEventKey: + if event.is_released(): + # Where we're going, we don't need InputMap + if event.keycode == 4194338: # F7 + $UserInterface/DebugPanel.visible = !$UserInterface/DebugPanel.visible + +#endregion + +#region Misc Functions + +func change_reticle(reticle): # Yup, this function is kinda strange + if not is_multiplayer_authority(): + return + if RETICLE: + RETICLE.queue_free() + + RETICLE = load(reticle).instantiate() + RETICLE.character = self + $UserInterface.add_child(RETICLE) + + +func update_camera_fov(): + if state == "sprinting": + CAMERA.fov = lerp(CAMERA.fov, 85.0, 0.3) + else: + CAMERA.fov = lerp(CAMERA.fov, 75.0, 0.3) + +func handle_pausing(): + if Global.inventory_showing: + handle_open_inventory() + if Input.is_action_just_pressed(controls.PAUSE): + # You may want another node to handle pausing, because this player may get paused too. + match Input.mouse_mode: + Input.MOUSE_MODE_CAPTURED: + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + #get_tree().paused = false + Input.MOUSE_MODE_VISIBLE: + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + #get_tree().paused = false + +#endregion diff --git a/Scripts/fpc/character.gd.uid b/Scripts/fpc/character.gd.uid new file mode 100644 index 0000000..26b6d96 --- /dev/null +++ b/Scripts/fpc/character.gd.uid @@ -0,0 +1 @@ +uid://c1um4tmthbbpk diff --git a/Scripts/fpc/debug.gd b/Scripts/fpc/debug.gd new file mode 100644 index 0000000..e274258 --- /dev/null +++ b/Scripts/fpc/debug.gd @@ -0,0 +1,18 @@ +extends PanelContainer + + +func _process(_delta): + if visible: + pass + +func add_property(title : String, value, order : int): # This can either be called once for a static property or called every frame for a dynamic property + var target + target = $MarginContainer/VBoxContainer.find_child(title, true, false) # I have no idea what true and false does here, the function should be more specific + if !target: + target = Label.new() # Debug lines are of type Label + $MarginContainer/VBoxContainer.add_child(target) + target.name = title + target.text = title + ": " + str(value) + elif visible: + target.text = title + ": " + str(value) + $MarginContainer/VBoxContainer.move_child(target, order) diff --git a/Scripts/fpc/debug.gd.uid b/Scripts/fpc/debug.gd.uid new file mode 100644 index 0000000..c5b6f3e --- /dev/null +++ b/Scripts/fpc/debug.gd.uid @@ -0,0 +1 @@ +uid://bhfftu01dsfk7 diff --git a/Scripts/global.gd b/Scripts/global.gd new file mode 100644 index 0000000..d29f5e0 --- /dev/null +++ b/Scripts/global.gd @@ -0,0 +1,29 @@ +extends Node + +#region Constants + +const DEFAULT_ENET_ADDRESS = "127.0.0.1" + +#endregion + + +#region Variables + +var is_admin : bool = true + +var is_multiplayer : bool = false + +var steam_connected : bool = false + +var in_game : bool = false +var in_menu : bool = false +var inventory_showing : bool = false + +var enet_address : String = DEFAULT_ENET_ADDRESS +var steam_lobby_id : String = "" + +var controller_connected : bool = false + +var voip_on : bool = false + +#endregion \ No newline at end of file diff --git a/Scripts/global.gd.uid b/Scripts/global.gd.uid new file mode 100644 index 0000000..524b7ce --- /dev/null +++ b/Scripts/global.gd.uid @@ -0,0 +1 @@ +uid://bma0n1wnb0yxd diff --git a/Scripts/world.gd b/Scripts/world.gd new file mode 100644 index 0000000..1249e2d --- /dev/null +++ b/Scripts/world.gd @@ -0,0 +1,86 @@ +extends Node + +@export var lobby_menu : LobbyMenu +var menu_showing : bool = false; + +@export var server : Server + +@export var level: Level + +@onready var chat : ChatMenu = $ChatMenu + +func _ready() -> void: + lobby_menu.enet_host_toggled_on.connect(_enet_host_on) + lobby_menu.enet_join_pressed.connect(_enet_join_pressed) + lobby_menu.disconnect_button_pressed.connect(_disconnect_button_pressed) + lobby_menu.enet_host_toggled_off.connect(_menu_toggle_host_off) + server.client_connected_to_server.connect(_client_joined_server) + server.remove_client_from_server.connect(_remove_client_from_server) + server.client_disconnected_from_server.connect(_disconnect_from_server) + server.server_close.connect(_server_close) + server.game_log.connect(_server_send_chat_message) + +func _physics_process(_delta: float) -> void: + pause_toggle() + + +func pause_toggle(): + if Input.is_action_just_pressed("pause"): + if Global.inventory_showing: + var player_id : int = multiplayer.get_unique_id() + var player : Player = level.get_node("Player"+str(player_id)) + player.handle_open_inventory(true) + return + if !menu_showing: + lobby_menu.show() + menu_showing = true + Global.in_menu = true + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + + elif menu_showing: + lobby_menu.hide() + menu_showing = false + Global.in_menu = false + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + +func _enet_host_on(username: String) -> void: + print("Server started, Host: " + username); + server.enet_create_host() + + +func _enet_join_pressed(_username: String) -> void: + print("... Joining " + Global.enet_address) + var playername : Player = level.get_node("Player1") + level.remove_child(playername) + server.enet_create_client(Global.enet_address) + + +func _client_joined_server() -> void: + + var player_id : int = multiplayer.get_unique_id() + level.request_spawn_player.rpc(player_id) + lobby_menu.hide() + menu_showing = false + Global.in_menu = false + +func _menu_toggle_host_off() -> void: + server.destroy_lobby() + lobby_menu.reset_visible() + +func _server_close() -> void: + level.remove_players(false) + lobby_menu.reset_visible() + +func _disconnect_button_pressed(): + server.disconnect_client() + lobby_menu.reset_visible() + +func _remove_client_from_server(id : int) -> void: + level.remove_client_from_server.rpc_id(1, id) + +func _disconnect_from_server(): + level.disconnect_from_server() + + +func _server_send_chat_message(message : String, color : Color) -> void: + chat.send_message(message, false, color) diff --git a/Scripts/world.gd.uid b/Scripts/world.gd.uid new file mode 100644 index 0000000..eb541fb --- /dev/null +++ b/Scripts/world.gd.uid @@ -0,0 +1 @@ +uid://klp20wju1i26 diff --git a/addons/godotsteam/godotsteam.gdextension b/addons/godotsteam/godotsteam.gdextension new file mode 100644 index 0000000..5917bed --- /dev/null +++ b/addons/godotsteam/godotsteam.gdextension @@ -0,0 +1,22 @@ +[configuration] +entry_symbol = "godotsteam_init" +compatibility_minimum = "4.4" + +[libraries] +macos.debug = "res://addons/godotsteam/osx/libgodotsteam.macos.template_debug.framework" +macos.release = "res://addons/godotsteam/osx/libgodotsteam.macos.template_release.framework" +windows.debug.x86_64 = "res://addons/godotsteam/win64/libgodotsteam.windows.template_debug.x86_64.dll" +windows.debug.x86_32 = "res://addons/godotsteam/win32/libgodotsteam.windows.template_debug.x86_32.dll" +windows.release.x86_64 = "res://addons/godotsteam/win64/libgodotsteam.windows.template_release.x86_64.dll" +windows.release.x86_32 = "res://addons/godotsteam/win32/libgodotsteam.windows.template_release.x86_32.dll" +linux.debug.x86_64 = "res://addons/godotsteam/linux64/libgodotsteam.linux.template_debug.x86_64.so" +linux.debug.x86_32 = "res://addons/godotsteam/linux32/libgodotsteam.linux.template_debug.x86_32.so" +linux.release.x86_64 = "res://addons/godotsteam/linux64/libgodotsteam.linux.template_release.x86_64.so" +linux.release.x86_32 = "res://addons/godotsteam/linux32/libgodotsteam.linux.template_release.x86_32.so" + +[dependencies] +macos.universal = { "res://addons/godotsteam/osx/libsteam_api.dylib": "" } +windows.x86_64 = { "res://addons/godotsteam/win64/steam_api64.dll": "" } +windows.x86_32 = { "res://addons/godotsteam/win32/steam_api.dll": "" } +linux.x86_64 = { "res://addons/godotsteam/linux64/libsteam_api.so": "" } +linux.x86_32 = { "res://addons/godotsteam/linux32/libsteam_api.so": "" } diff --git a/addons/godotsteam/godotsteam.gdextension.uid b/addons/godotsteam/godotsteam.gdextension.uid new file mode 100644 index 0000000..8b94933 --- /dev/null +++ b/addons/godotsteam/godotsteam.gdextension.uid @@ -0,0 +1 @@ +uid://d02t56dfoplvx diff --git a/addons/godotsteam/linux32/libgodotsteam.linux.template_debug.x86_32.so b/addons/godotsteam/linux32/libgodotsteam.linux.template_debug.x86_32.so new file mode 100644 index 0000000000000000000000000000000000000000..00be7c5f4b46f30a83dad0b35472cb750a275dc4 GIT binary patch literal 3685612 zcmeF&f4rhsedzlqx;3PtgBDw~M5$6sDyB?CLnfCXyMPA(5P- zW!!i!bA~xDPNhferML9RZP9XX=?(RehI-JUaof_CTH1>qYH5p>C_P0*iS5eU8|4vHV6+uKn6xaGfH5 z_tww<$<0dsYufMM#uO#-7mD&+>OV`^y3wVy-lYBNM1$q8ESJZSzey4A{#r#We|O8S z6_58GUxbQ&PkG?$$>?zFCS~{6|6dhF{_fU)yC|1+)_>&rMfa6^METz1Cl8CZh+kP> zG)vVee75+#^X_*j-~Q#ozyHKnPyELNuP~l}-4A=Q)_sqwWp8DFId0?1N3W5w{CS)B z{p{g^<2UlZ-Tp@5x7**2eav{^AGbfH7Vi0TR-TNX7YT2Y1ILeye{n6oW4BQF3i12v zYxUb|0=1oF{kfWui}3+Du>8pKUzHu^N5+4&8wh1QU90a}YtLk@yuMbRSd0IDt-U|K z7Jp<<`(G%||Ejg)e|2sDcdWJdLo#9fScH$R_3y5=`j4%(?_+z;FZ=)FYvo^BYtLhx zOCtAw=i2^1wl>}`T&sWYT6;!o<$t*r|J_>r!L|DNwf4Vs?fk#DHa^#^?f)-p@oU$P z|E)d!llgh`+W3BUE!M4_f3?>BUs*f;XZEyDj_0%1>c4PLxjg@O_rw+ve^dPK{>b_- zUaSAap7zV~kL~U(l=0q$Q^x;gt$jbY=X~<~-(Ty`57+j;VeNc!?b-dYhzHMJYu}S= z^&eTwM}O^n@7q0?P_}nZb;Tm$=$`hzLd16QyZd7i51v@d*PpMo_f~N}$LM9s*TjKe zAy(kO75i6y=4Hz3L|qx5TZ;{%y<<_nyZ_IM^33DcE59uEf010lH#Z-6==ibClgYy; zlAD{#=AqzSo6)TkTMryPncO-Nyz933@nc)T!}rCvw6gt6HjktZZ{C0O*x~rme?h+xsnnLz{ z9gfHEJAC8=CogWjb1Ugn4=0M$Q zSn_RFrkp&c zwM};NLl26-_a<+0Y;GoFCysw;Gro1~fn;oR>%@uUCjxIhaU zCdj%+kDpX`b;=CfcJTH`_S^2&wg=yN_d(I-BdOHk`;Ifk3HKC!j=$k7wYhY!c)S$ucD?t$aceU$u@$|^wRzlt#prLH5DgQ99Y4AGz*chea5Q>izeBv% zdFdge@W=1VJTyWb}+SlN;zyI0HYirV6n^0F4grOx=f z-?}G(Vyprujy|*{8Xr4+GPapG9zS~I(SuHr#$#JsQ8wTH;Dbyck$G(b-FH|_+!H4b zKPvXyolY{7_a&6z z-h-RB-|oF>cRK7}tj>zf=%Zp>jvf)+JSi{XD;-QUA3FZXmYB-X;}0j5 z`|poGd@`nW*R^@ieVa+qKXFZn3GmR?v1CAu!o|%OE)I47n{K(Vzt*PB!^h+}-*-5E z_}G!H`>s$|Tu%4gyQw6^$Zm%T&6bf7mJe;KYE`w^A9JE-gxr37Dtb~`qd)1@%1u%=)$8TJc_<1e)QPG zDH+|Q-044b>usAi-T2xIj}BgV(Rt%R*CpXiw|T_^s@ZP$o@&*ibKC+k07{JoB{7YMcE9Z*ZP{pHcM z+Omc`%5&8kGLm)WHfqsea)&5?p;~^e z@(9}uYW!R!b7B8$l{Zk95&OrMpAdIlFHrs++a6V8z4FQ3_|Ja(d5Y+Jjrg!y{v*oo z694&ce?Z)IU8i)3x76|t{UVyuId$=Im2@A=9%*`~Eur?yx2 z`Q*!wUZ;rBU+f<5B{CLG7Dtso@;w0guz*D@VHqn}#TwSJflX{-8#~y=9qeHr2ROtL zj&XuhoZ%c7xWpAIf35X%19hlJ0~*nUX0)IcZD>aaI?;u0^q?1g7{DNgFpN=*VH^{f z!ZcAKsJJ`h??Bf83IKnYbaE5bS;1XA;jJ5pfP>%*Qq6y7t zMH|}DflhRx2fgS+KL#*}VT@oDV;IK-rZ9~e%wi7nSi};Rv4T~sVFR1k!ZvoWi#_b) z0EaljF-~!Yb6nsOSGe&vyMl9UbUIH+s;EKJ;S%Lm0*gMlptQOkxVt zn87UOuz*D@VHqn}#X2^yi7jkn2Y0ZCeH`ErM>xSL&Tx(kT%z)~tdpoiJsQx6X0)Ic zZD>aay3mat^r8>_7{m~UF@jNyVFHtw!Zc|q}V zIK(kdaEddW;{sQx{2h5i9qQ45CN!f3t!P6#I?;u0^q?1g7{DNgFpLq5VjL5g#1y76 zgE`D&0gG6|GFGvMb!=c0TiC%a?qCo5IKUB(ae`Bv;T)H^LS;hUP=|Unq6y7tK`YwO zflhRx8$IYnKL#*}Aq-;#V;IK-CNYI+%wi7nSimBdu!2>rVI3RT#5Q)Yi#yoEJ`Qn& zW1Qd=XSl#6u2A_pc|#o<(1<29qXn&KM+Z95g>Lkq5B(UxAcioEQH)_66PUylW-yC6 z%wqwISjGxgv4(YQU<=#W!7lD#4+l8J5sqIczi$3&Y0D~C92u3l6aZF$m)0n|5<}i;1EMXZdSj8IFv575gV+XsqgMA#}5Jx!1 z3C?hi3tZv~mA}{Wrb9g%(1<29qZMsvM+Z95g&y>x5B(UxAcir5QH)_66PUs@W-yC6 z%wrKtSjGxgv4#z7Vhh{Y!7lc&j{_Xy2*)_Z8P0KmOI+c`l)RxH4QNCYTF{C%w4(!^ z=td8E(T9EvUA;s_@= z#Tm|VflE}LVtqs%>d}BkG@}KrXhSWH~92dAk<(uRUb*M)Jn$V0Ew4x2|=tLK~ z(Su&}VE}^|!Z1cKig8R}5>uGQ4CXM81uS9-%UH!4*0F(2Y+(nxxPv|H;{ZoE#tBYw zhI3rv3YBk>H`JjXjc7tMTF{C%bf6Pm=td8E(T@QPVhF<+!5GFdfk{kZ8nc+gJQlEs zC9Gf-YgoqyHnEKz?BWjgu#ZC=;TR`4#ThPei7QlQxg_PH~P4 zT;d9qe;{wDM*|wsgl4p$4ejVaC%Vv$Ui6_K0~o{*MlgyojAH_mn8pldF^739UCHO z4)(B*Lmc54Cpg17E^vv;oV=h8^=L#Bn$dzbw4(!^=td8E(T4#HVhF<+#TdphfhkO5 z2D6yQ0v54^6|7)6B=wy}dd*uy>!aD-!=;1uV$z$LD5A;t0n$ z!70vgj!Rsj@*S=t)T057XhsWK(S{Cmq6^*VMIZVxfI$pl1fv+kI3_TODNJJ)bC|~h z7O{k7tY8i6*uW;Xu#Fw;Vh{T`z#)!sj1!#V92dC66)N8)Z>U2(8qtJiw4fDjXh#RS z(2XASq7VHTz#xV(f>DfN921zt6lO4sIm}}Li&(-kRC_>1~##UZS3L>_OOow9O4MaIK>&xae+%*q4GWQhC_>1~##U9qi%`_OOow z9O4KkIK>&xae+%*q4Iq#k2=(&0gY%vGg{D!c66W6|7)6B=wy}d<+`%69afl-v;{>NT!#OT+g~|`eBkE9( z1~j4xEoem>+R=edbfFu)=tDmSFo+=xV+3Ou#{?!Zg=x%S7V}uZB9^d>6|7NT!#OT-g~~sZN7SJn4QNC&TF{C%w4(!^=t2*A(T9EvU=TwX z#wf-xjtNX+3e%Xu9OkirMJ!<%D_F%kHn52;Y-0zzxPyHh;1EYR#tBYwh6`Nc3Y8y{ zN7SJn4QN6$TF{C%w4(!^=td8E(T9EvU=TwX!6?QsjtNX+3e%Xy9OkirMJ!<%D_Fxi zHn52;Y-0zz*uy>!aEK!u;{>NT#|18Nh02ONq7LyMl9UbUGH+s;EKJ;S% zgBZpLMlptQOkfgIn87UOFpmW+VhPJw#TwSJflX{-8#}mzJ?!HEhd9D9PH={ET;LK{ zsQh>Gh&nW&5lv`D3tG{Jc66c(-RMCt`p}O73}F}}7{wUIF@Z@;V+OOB!#ozSh$XCG z6>C_>1~##UZS3L>_OOow9O4MaIK>&xae+%*q4F=}5%p+5Bbv~R7PO)b9q2?Cy3vDP z^r0Vv7{V|{Fp4pZV**o{#tddLhj}bu5zAP?D%P-$4QyfyJJ`h?>|q}VIK&Z7aEddW z;{unsLgl=cM;+?XfJQW-87*io?x9UIuhHg>R!JJ`cM4seKLoZu8^IL8GpafKU-Oa1?zI@F^9jc7tMTF{1e zbf6Pm=td8E(T@QPVhF<+!6?Qsfk{kZ8Z(&19OkizB`jkFt60N2Hn4?l>|hsnu!nsd z;0VV!!70vgjtg9(a*dY14b-6?4QNCYn$e0jw4(!^=t4Jo(1(5uU=TwX#t23+jtNX+ z3e%XuEatF)MJ!<%D_F%E*0G5#Y-0zzxPv|H;}AzU#tBYwhI3rt3YBM(N7SJn4QNCY zTF{C%w4(!^=t4Jo(T9EvU=TwX#t6nRjtNX+3e%XuEatI*MJ!<%D_F%EHn52;Y-0zz zxPv_$;1EYR#tBYwhI3rv3YBM*N7SJn4QNC&TF{C%w4(!^=t2*A(T9EvU=TwX#wf-x zjtNX+3e%Xu9OkirMJ!<%D_F%kHn52;Y-0zzxPyHh;1EYR#tBYwh6`Nc3Y87=h&t4x z0ZnK|3tG{Jc66W<-RMCt`p}O73}Of)7{wUIF@Z@;VH&fT!#ozSh$Spz1#4Kx1~##U zZR}tdd)UVT4snEIoZuAaxWFZ@P=nUh$b|n1+8d9J37#XZuFoRedxyk1~H5g zjA9Jqn7|~aFoRjlVIB)u#1fXViZ!fb1Dn{wHg<3ad)UVT4snEIoZt-SxWFZ@P(H?h$b|n1+8d9J37&YZuFoRedxykhA@l~jA9Jqn7|~aF@ssmVIB)u#1dApiZ!fb z1Dn{wHg<6bd)UVT4snEIoZ<}UxWFZ@P`Q>oq8<%sL=&3Pf>yMl1D)tXH+s;EKJ;S{ zLm0*gMlptQOkfJrn87UOFpmW+Vi_w~#TwSJflX{-2fMg~J?!HEhd9CsPH~2FT;LK{ zsOYpj>QIjcG@=R3XhAF5(Sc5Mp&LEuMIQz*h#?GP1fv+kI3_WLY0O|2bC|~hmavQ! ztYQu8*uW;Xv4dUQ!5;Q;fI}SP1gAK|IWBOCE8Mt_Jfa>AXhaj5(SkO#qXV7jLN|KQ zi+&7X5JMQo2u3l62~1)N)0n|5<}i;%EMXZdSj8IFv4JgYV+XsqgFWoy07p2+2~Kf_ zb6nsOl^o?x9h=y~Hg>R!JJ`cM4snEIoZu8^IL8I9P=nUfJQW-1+8d9J37#b zE_9<8edxyk1~G(Tj9?7on7|~aFpU|^Vjc@v#1fXVf>o?x1Dn{wHg>R!JJ`bk4snEI zoZu8^IL9TfP|=e|)S(^?Xhbtw(26#+qXV7jLJxY;hkguT5JMQoD8?|32~1)N)0n{= z=COc9EMXZdSj9Rvu!${fV+XsqgMA#}5Jx!12~Kf_3tZv~mFJU3)S(^?XhJhu(26#+ zqXV7jMh|+?hkguT5JMQjD8?|32~1)N)0o8^=COc9EMXZdSi?Ftu!${fV+Xs~!#)mh zh$9^11gAL11uk)g$_vON>QIkHG@%(SXhj>^(Sa^>qX)g{Lq7&Eh+&Li6k{021ST~(2oHOVHhJA#Tdphfk{kb2D6yMJQlEsC9Gf-YgoqyHnD|m?BWjg zu#W>A;t0n$#Tm|VflFMWVjz#GM*|wsgl4p$6>aE1C%Vv$9`vFQ{TRd$hB1OsjA0xT zn8Gw>FpD|NV*!g;#tK%khIMRU6IVM zh$b|n1+8dD2RhM(ZuFoReHg$XhA@l~jA9Jqn8XyOF@ssmVIB)u!ZKE{iZ!fb1Dn{! z4t8+|d)UVT4snbVoZ<}UxWFZ@aN|Yf5%p+5Bbv~R7PO%q9q2?Cy3vDP^kV>n7{V|{ zFp4ouU=mZ9#tddLhj}bw3Cmc)D%P-$4Qyc>JJ`h?>|q}VIKnYbaEddW;{unc{3z=w z>QIjcG@=R3Xhj>^(Sc5Mp&LEuLq7&Eh#?GP1fv+o1STn z7{V|{FotnVU=mZ9#tddLj|D7Z3Cmc)D%P-pO>AKsJJ`h??BM{1IKnYbaEddW;}Tb> zyqG+q4)th2Bbw2IRn7{V|{F@|wWU=mZ9#th~#j|D7Z3Cmc) zD%P=qO>AKsJJ`h??Bf83IKnYbaEdcr;1XA;{1|ye9qQ45CN!f3t!P6#I?#!3^q?1g z=*IvCF@zC}VhrP$z$B(HjakfL9t&8+5|*)oHLPO;o7loOcCd>*?Bf83IKnYbaEfzW z;1XA;{5W|;9qQ4DCN!f3t!P6#I?#n~^q?1g=*IvCF^mz6VhrP$z$B(HgIUaB9t&8+ z5|*)wHLPO;o7loOc5nxK*vA15afD->;0))uz$LCwF_A~qp#hC(LNi*>iZ-;P1D)tX zH+s;EKJ;S%gBZdvMlgyojAH_mn8Gw>FpD|NV*!g;!ZKE{iZ!fb1Dn{wHg<6bd)UVz zj&O_VMgl4p$6>Vro2RhM>9`vFQ0~o{*hB1mUjAH^*n8pld zF^739U=d4L#tPQ3jty*L8#~y=9qi)(hd9D9PH>7doZ|wQxI*Qno?x9UIuh7Phg2 zUEIMQ_Hlqi9N`!zIK>&xafvHbeu6xs4)th2Bbv~R7PO)b?dU)!y3mat^r8>_7{DNg zFoIExVH^{f#1y76gIUaB9t&8+5|*)wb!=iAyV%144snbVoZ%doxWWyymM0w=(1>QV zp%Y!`K|h8tj8RNr8Z(%~B37`9b!=f5cd(BG9N`ofxJ2c8<|XRUgjTen1D)tb5BkuL zK@4F8crj3Uljc7s(+R=q>^r8;~7{(aJ zF^MV6U>5UOz!H|RiZyIt6WiFq9qi!%hd9O=E^&n$FX#F|0~*nc7PO%gJ?KS0hA@gT zOkfhzn86(8v4|zCU={1wz!tW#i#yoI0giBtQ=H)fm#A2{zEF<_G@%)-XhR1&(TyJT zp&x@7!U#q&jtNX*8nc+g0v5516|7+$o7ln*cCm+j9O4KkIK??GaD~cGG7nLYMl_)X zt!PIFy3mbY^kD#l7{&<3Fpfz~VFvS9!ZKE|h7D}v4)$<>W1Qg}m$>l?ZF~%9L^ImZ zi7xb@A43?%C?+tC8O&iGi&(-6R#};<6k0YGo0+m;3?bM?Qt>{2E`Y?zQjAIJ3SimyYu!$Y);SeV{#}(>+ zT5GQnEoesAQacd&;89O4)!IKw$E zafKT{qxD~h1~j4>EoehKI?;t5^r9aF7{V|{F@_0DVj44;!#ozTgcYn}9UIufHg<6b z`#8W6j&X`JT;LLwS8LU5ZuFoJ{TRd$MlgzTOkfJrn8h3xu!v=> zU=8co#1?k2i#_b)5Jxz{Db8_$D^%>vQ`DmoO=v+Y+R=e7bfXu27{DNgF@iCSV-i!C z!7S#nfF&$r6>HeQCbqGIJJ`bk4snbVoZ%doxWbLsFs^7oBbw2IHngJ?UFbnC`Z0hZ z3}X~yn7|~aF@rhGV-ZVO!7A3Vfh}xf7k99a103NPr#Qm}E>XFW>mT)KKogqLiZ*nh z6W!=RANnzfA&g)YAGX$03ezf>WI10#~T~Eb|og zXhaiQ(290+pbOpTMIQz*h+&Li4C9!@6lO4sc`RTF%UH!4Hn53p?BEXeaDYP`;{<0o z$0e?C!@;_AlECHO4)$??BOK!tXSl#6Do(C{)T04SXhtjA(1A{L zqX&KH#~_9DfP0#lgAEatF)MJ!_lYgor7wy=X;>|q~=IKl}|agGaIq4GNBDeBRP zCbXax?dU)ky3vb13}6t$7{M6EF^MV6U>5UOz!H|RiZyIt6WiFq9qi!%hd9Ow&Tx)P zT;ay+8CNu*5zS~p8`{x{F7%)medxyk1~G(TjA9%Un86(8v5Zx$VGBFh#Q~0RjB{M# z3iUT@<6}e<+R%Yc^r9aF7{M6EF^yTwVF@c(#U{3~gMA$02xqv!CF)#SzYJ(ZE85Y4 z9`vCf!x+UFrZ9t9EMgfe*uWOHv4;a3;uPn&z>Qn9e(BMG7PO%q-RMOhhA@Iz%wqvd zSivT?afB0`;v5&aLgnYU9#M}*G@%8pXh#RS(2ZX7VE}^|#t6nRj!8^m2D6yQ0v54^ zWvpNoYuLahwy=#I?BWjgaDYP`;{<0o$0e?C;|+{E8qkO)G@}KrXhSgGpcj4U z#{h;fj1i1t4C9!5lv`D3tG{Jc66Wo?x z9UIuh7Phg2UF=~W2ROtLj&XuhoZ|wQxI*QPTD~?=hk7)k3C(ChE85VG4s@X#J?KRr z`Z0h(3}F}}7{wUIF@Y&eV-|Cm#{w3ygk`K?6>C_>2DY$`UEIMw4se8HoZ<`@xWpAI zZz5l)Lp>VMgl4p$6>Vro2RhM>9`vFQ{TRR?hA@IrjA0xTn8XyOF@ssmVIB)u#1fXV zf>o?x9UIt0-CMMA)uRcm=s-96Fo+S1V+ylaz%tgbi5=|W5GOdt73yx)+G|7$+R=qx zto(#axyG(2HEduDJGg^EaUUf2&tP9}cPh#Vr?^1Htd;B0fk8}R89Ug+Ij+!hy>>i1 zy3mUOOkxSE*uVjfapPs$aSiB14@NP8Y0O~}D_F-CcCn8ORK)k{#r98;LZ z0+z9cP3&L~hd9AGu23hwk0#q=L<`!{gR+Lq&w)WqVHOKm#u_%UgFPJL1n0Oyo%lYJnh$iL7h{;j z4Cb+fRczn@m$)Im7bMSPKr`CVi5~Q02&0(5H0H2~mEBl;zd@d_f^}?R7yCHEDK1bE zpXR%J#18gwh!dRS3U%W1ay6f5K|8w8ivbK{43n6_ zJeIJE4Q%5M4seV!T;hiK{8^n3Xhs`4(Sv>rVH6XX#vB&0f^}?R7yCHEDK1bEpX;jm zM-y7nfo}9+5F;4J6lSr2WvpQnJJ`b^PH>JZ)QQha)%>Fc?dU=;1~7~YRwMjJZOgMJKQ6cd=n92T*Hb!=f5`#8cWE>IDl>#6xi6I#)M zZuDUgBN)dNX0d=}tYH&7*ux=CaE>d~iOX0ehgt06PU&v7O{eLY+)DsIKn9|P!XT&sQE_|TG4@S^kEPq z7{?T5v4CZ)VG}#p!y!&^jw{rO&r8(&qXq5gLN5j|j4@1N2J=|LDmJi|hUv zI6;$H?C(|-H%2gvH5{VudTswOX0VMjG|SgD;<$bsp;f-V5Zis2miN^nu45k;Xp;B8 zvV9mqi@aYI+XL9fG1le%r6}*>2p6aq-z%5pR&-+!$?Nb=Mag0X+c?Ap8pP*da(_GeFp3#0V+#j3N4@ymNgl_BUW{NGOW4Fd&QK@U z32_`NdN7JHjAH_mSjH;0u!BA9;{b=)d9zD-?uMAx!dEJaGQ=tNWVv5a`qCFE%0T*K zV!e~v6lEfPoubU89z|J5?@*Mb)Tbyb>CcPTQ686a?KR?cp!8XaVw65xQB2b3i1{de zuA*3^*NX9w>csd;uM_!_{)nPDq;FLer}TM>;*#pc^(=k9qIje)P!zB9fLIr#2C;5P zUns6`>5nQ(P-;|^ko3ih5|;kBqC})7MTtsZq9`%xOBE$9{Ru@$NX?3plwPkWDe21; zB`tlqc>hXj5%W>{lZuj)zCuy*QZc{GzE)9oq_0<$p7d^!N9oNXk5ZS& zxAYeAKAZICL|&zD5P6lpQBkJSHz~?Y`eu=5>03merMHSaOK%f-mU_hmdW-OOMcI%Z z67j$O{Obt(>j?bo2>j~^{Qoin-#zfMAKtq?(@j4mo>Weq`|dB^ten|ioIij5W1Zx) z&iA*wy7!*j+mQ2*i6?*M{HMfIt@?BRQ{u@~iOI)LjYYNdpAt`=N=z0%)mLNjq^ZQ@ z#-}=JES@ZtnEdlpLyg6gqY|^oxT41LVaz7uf*Ok_KP4ufv6QDWYAlOl;+aT!Dxt>W zLm=_2E8~b7%UxqW83)u@yx3A=0U3MLSXPaNWb9C5akHqzA~Lq9u}8)+85`7CK1szA zGFH@B9y*qi@%&%JhEIu`9VM2L@mP)JsbV=9_tiKk zh>UA8E~s%-#tj)~)L1qx){=2TjpH)z$T*_LvZ=8h83)ujDdWD3J!&kQ9vjNop~h($ zk7aC8pG~D{7pR@lwX~|1SHVm$4#l)t(xwaY4p98TZw=C}V?+J8E2# zu}Q`aH7?88BIAl0S7dCHaY2o%GIq!~qsBEEyJVbDNX8B|Zp%0#V~ZMhWE_*RL5;gIPRLkMV>z_3l#J&q+5eu5Gcq2lu^j4HPR4yT z9>};L%6JHmLE2jOQ{|)VL!$eShKnrv^C2 ziR!P5qbX-zydnM`c;5Ym!aMJs9ul{+r_O!y7j9OzXU5DELvgpR9LRoB{5|_vP6Vf& z*6Ck}sdaW+C(d%(Yt^0EmS;Mhv~HZlN%>y>YP>B((*AhEe~r?z<_H-GxcZFwTG*}&#MmYYvM zxh)$bHb?Hz_WrEc{M7yG;bogeN#k~{q%2F`td_{Gi4uj9kIE90S|Ue4lmxt5otP~7 zwiwYTx8*>IlFDsb$=$N#57m;sRx+o9PFeCPQF4D_??0Kp(-xV(uRMBb{(eIY;MvEj z*J=5CvA8s@l)oSR^Pc=YxHn~5GHc=(VnS%iB(wiZlj%Dm`sz_fZY`NNijsYj`Qvi) z<;hg!=F5}$)P3Uc`zG^GWy!wD{9Re1C37uh|GO;Fk|_sDBy*hkx;iIM$r3G@YZKrB zSt679vDS256_>! zaAE3Br?rdI{DTY0P5zv?Vs&S?2Xan$tsCNE_>9)le_EbDzuh&w_x+ofUs+Ea7K8Zl z%Nkmhn}7R$IsdLxoA++DdAsXJ@|LrYHD&X}+VM#-zpga*J}l16+L65e3fJ~6@>Gq> zTJQ?Fxp(iu&NL@px1TyUd_<0q>GXD6ocH4S&ThA4JJkM;zoYf{TD8BX_nuSRe@LzV zNwxak_IGIiSHuurJl=&NR@c7Y|EFhe|D%z8+kc;2hX_UGZIf{CvH!PkoIm}9Sr&>jShSru^2cSJ(`T&m?-O=)moIMHgz90x z{=M_(4|YU5wvA%b*=@btO`SuIe=Cm3G0v!)pD?Jkr@tfWh4_;OMkL*+bt0vj~pSh~~Z`!B+uc-CE`N6Ac|G&KV^7g++t^b*;s{grt>c3R2 z|KL^C|HwY|zbf9975%@e`fu8&{;#O@znQqI{=a9R{;Tyrb5->}w@>|-s`Veds`?+< zr~X&PyX~U?S5^N_`_%sxwf;AcUseC#y-)wu`k%R~`k&jU{!7*R4_;OMkL*+btK!{x z(f_Ne|E7KF|B71wo5!xI|Dk>Quh##}Rn`C8KJ{O!)_?G->VM?2`f~j<$^p1RJ;25F zZ+BI@^Xy~hpVSt@$hWV23ryr67c;Wm(@mfKA zoFUiWr{-5a?H~WQi|g-)Gf${54U+H6Jkbz!mE;@67WKiEZsm^2HvF=9c_sD|cgmJ8 zd{ezsewWHhAo{^4SOMenq3Ua5D5cZ!Dn=4IV@RBjf%Tf5c2 zPj0S@_I*iw3@7gYE^FV&rnT?gPt(3PUfMqO)!7wqr04I@+PC%!<|}gZdiX2^Od_MfG3*&Pj`#pK@_rK~LlJDLtE{_NHdr|!rQL@jA>MzL6m%pg~ zExGyf7u7|1_k?~wzuYOZ*7Bixu zy+^bAUQj`9u0OfG_D0a7a&!Lj>tAf%cfERC+y|dJcikoZJ&^5)cAkAK_)e|Qw~Kjm zr9R*A)P+7D$jUb&FU+a`payD}4`j7>dSn;Gn>*S&Jvnjo3-9z~v_PAb>cV#*`zNA2 z^F&H3`As!QXhB8|Vlt3#+eOp|p3D;=^}&_iwtN5E#TdLwodI%3`R2)?@2ErU6(w>~ z$^(hb4mQ6=ZWfbLo=9xY__V!$Ol}sFQZ`0x?%%0xJ|7T=*CwTGvna7p@^x9FP0F<= zoj;N#+N6{tAnGLU(2n*yvP65QM-G%I>D;cBd_tCJ@ARxqi4V&X?VX;rIdnvp$ai`! zn=glC$vgIYP4~01R-aB8k$)o1-Kz5(Wqo#Xz@~D~KeVdSJ#fl~xA*Pi!c^X=vO`e(-WJG!9iHZ!= z_k7g{V)7K!2UnUrKlwH>8ZS{NkK9q@BXG}m)yZ?MC{b55ZFA-A+UEJ)+T@WZ5_``B z+UBpw&2mN4Hhb9o1+jT|Mbk@1!WrWr@7@_P(0XJ}-NT80=H$jz;$8FL~nZWA3UH)?Q6f{ib`|L5W|2~PBC&VojoRMdyHiW4Y>e347jK)(k4?WOHj`4>W>I3H zq$^9bl*+D&lEfRdI-ijx+I6;e8&r@b+I1!eO4QkX#(YGUXxEt>Pf^nOIqhg+S)x71 ztt}+C$`b84Zf$|L$r9~3Zf%W!fh^IU<7BSId3Nv37k7vf`5brITJu#|G8UhYUUr+` zktL6-C2JG@H)P2#sU>R@J}*l?AWF0eFP~4J5_9j=xm&_}=X>(7c>Quho9mDM^_A!P z`~GUrT(788NL?@Fiy3t`%NH~1+>>vWi7nZZ3X7mfUe+1(4UjxYEV-|K7dhaUiRGUR^%P_5Zai zkIA9Yo-xs0#i(O);UX28zwl(p)yJ)fIJzj|MpO&5i?pT%8FhrU@e~)SHlE@lt;pgl z-inmGqKn$+)pAEM>jDpJv-=~WL|&w8L;ir=EH2WuArHvSr^O|$9i)=f4swe;y!K?+ z&`RbfwUU?1673>wX(b*?o+C@Ni*)Uh|JH4ygp2gjOXSaFiFT2$W%obJ673>go9@3V zOZI+Vea37RpCVrTHl`k@3H;pJ5GOH zycPL&`E@qKm(HC{zDg;aJKGdrcoUy~Rn_`G4Bf1Vz3$z6jP2RR4LhgLeSZ4#&;RgQ z*9`w`nKYjHrKLRNmyAhmdQ|CSV!hz3vtuL_7-LmwY7`NRx zvlb`T;=(0y!fn_aAN=wezf~`ent53F`KMmA{WsT~{=-~f9azz=(_yP_8Wc<6sdLqL z-K{fcP4*tXr(pDS$7%%a>Rx?!El@1LDIml6BO=Zc$#>Tag(u6cJjMgQI*KQNZ- z>Zx<@5<70s!lG*8Ox&6jAD5bCZ&Eq0^_5${F5YyOpP>2=c0TqG2eSVlqO)nM<80FE zoaX-M74jp|p!mo)F21$kwu=3%(-#F^rkwrw_dojm^CCf_a6`V=^AB%*nIhXJzTTkQ z{r=HYA9#iOKF|wa`f~Zv^z=I6)Vc35Kle6y%xktUIp!z#Ip!~O%-?^BcFf-u9_(nJ z0M~B(C-uqm*Z*Jf9jGse{(SjB_G6+yXM$G$)~jDEJ9^+_-w=!3b~h}(Qt>`@+^3(q z|CMTw<%j2@)2IJHJ)HPD##coT<$!zegvIE%vsFX4}PdF=x`&S1PC9;ynF!*MaOG$o{B@dbe24KKW}ukWJLdx?kL| zimwMK)5kt~z4Aqm{2rNd`VYQ%yZBI0WOUp2|A;ZUU9Echc7wRlF#VN?jq)oPGW)u- zw`&csTc`K@)Ad?+MgN`@k41B)Uwf`?cP5Bg@CRqNpD$7+&pNdpd71pUTuf{A!*}`Z z7IBOl4~Qm<(RkHiktT7R|KkTQR~pwmb>iZ9OkcgF?s9Rwdk01OjcxU^j@RvUh(4k@r&!n zEygZ9or^ENoI2+Tit8tC^@(FIE=4ScZ<77` ztc?63FY-{Lu9`SeSJd~2`XN!@E5;%$juAL>t8csOKR-VES(yUyrG+nxt){cv3(?QV zUnD-P7oo_6^Cq?1`m@{DGp1*^ZsZs4)^j@`ZF3~rK*xxJK<`i{&XMf8jr=IA^>@Voo>t*yc8HwuRm@fL{ z74;mVo=?{qe8$=lH{Ff9wZ4@+9&E z^2FlM7uR30V2S?tMZO|akNBd^sdI&UM4yskT$9$QXjf2Fi;4WH`MR)-xesN-h>Vu-~){FgAp{ZEJvKmN#t{x|pO|3`QGFXpzK*AJY$UY$ta`VUk4mtLdn zK07DH^S5~RIwZbBCBFX}kk4M;OM3j6I*Y~9@Txzj$DY$7GRY`x4X*W5C;NAg?+Tr} zYrE?e-(0=ekGbr}$Dg(zpIGb1ubrSDzcG#Oh<=C;TwHGg(~S7y%&Bwzw>{l@vwK|z zzf6zbBywoKm_xVR{&cI3TyZ`+RIgC6=oBvY$Ke$H`Q+2~=Qq}_&p-X3w%(}M=Ov5H zp7r$Ne65HtLY+D{zx#i5zQ+EHzOK#JfZYB}^R@CnJ6}_BTt5G_AB(kqT)W$k zU!V5Qt6PxIxwK zfA)Kx*vPKk|2%XR_X}EojB08;yCAkv5;j5BWg%cxY^h-7tyoi_ z8kInVK!Ttmpl|$H1lmSB6clO^QIUL}=iHgunc3ON;`{sh{sFr)vza;1bIv{Y+;h*p zGc40pfAc8+FHQNk;Sep&HomBI=x@gzN$5}EX+zOWLzk~lJTqUl;<=wked5V*#S^#$ zcv(QpPqm##C5RxIh~QYBuUPf>DUbTn-!Q+cJuWAnB_{r%aYzp3Ms z)?XP4qmcjmNndyZHaw>%gJ;@IS9?4}JTG|SS>?d9^tPn&G@`%-{%=@ccq-Oe^)re` zed%Y~3|BlwmjX|RC!YUx;Mq}?1fE#_XqiS#DGF08f5e;}(iLbsl1DQ05U}=uR@bfL z8^Jzo0*{<|q!NE6&gCMew&#;DvO}A!h)m0u+$B>=R)5k+ykC3b-Q~c$_m_ef$r9u= z5{>VazwiDRv1VS`m;UB=S@k!IM}6wA(N%vNiRTo|MT0lw$K2Z2cbe?+;Q)olJD(KO z-@cEDsi;UW#q?*({~6=)?zK8DmH*?BQ*Tav8Tr3y0atxx{22JIkKuF4mt{Hd4aMq1 z(CMu&17DezA^0kXVoQQDH7=s3kbH}Q!2V{$r{=d7T) z;2xDogB2rPRZgK`n`O8kvJaZ*(`ldO#CxYF-a!t$qp^fAX}qOc4vKObx@xaTMxXmJ zkEHUsXsed|$~KR-`~kTCr;z{qaWeK9d|Aio$ZuBge4p))dqfCGOZ!_)e2HjzpSfQm0sBs1E z28r3jL9veSpDT1=moqSXn@5J4GI+N^k?*=hWEC){(nv$Ii@s`!?;THk8y)z@VL2h6 z>ZvaazCqimw5gXQgYP>we4n=;3BD_9I zKtPeBm7%Z-bY+0^mYiQF0Q3Xtjn9F5o;ibOQqh~|M=p(&)5#%dZcgi=pTiCTQh+k8%EEo?mXBuf0P5{U)AY$n!BCQ}9Ra z$6?MMcSM|9tnOjU(|qNylS{CIFg7m6qqRx6@vh=tOzsm+f$_YtJbgY+TjpyNzx)42 zev2&$P*Zj8*;$L;fP%v~T$jQvRT){O393e-ujx?ef2!YsxR} z7iLgr=uOsHJiaswkuSS)+>;WzRMO{CmsQ$BgWQ<2}FUjAi z_?$DW6^!2z|5q`Fhw4i4EY6#=Mxi{S=L4MadcjcOUS;BL#3BCFW|vnua4*1;z&`y~ z1?RW5;QPeheW744jX37=?fKsvy;h;<1s$`>|MIA>{BNS!-f{TLKJvfa#6Jv$F{)jr z6~*JfnfR^wUo1If!`_Yj@1Gs{UzGSD|1lVNk%NQ2^MKh>k6~b}XwxxD|2m3CefF>Q zuKjBX1a2SWDgUn>`rCnJeSDl}|El!Y_Ac@Gh{t8_&s~4@&s+6(H;xj{_DPD$y$Yeq zRdsDrg)rU{54I5hO`iCh9QxaVC4Zv7+1jGTcKvmu;s^PUyuS1|9|cyi@yRS6^`*aI z#jg3qt(5;(Px&8m=x+ez?^Ay<|FaKuG01-mx+IDGfMK5i0?@91H+13 z$0ylW0`DCr-bx%g{moMjyo0c;5Rdncm(=*uCs@la=u3awmRa?;iAR0vuhvz6i-@Pm z6VGx7o^e<|n4JDpd^-pQJ&6C#7f^8tEEV4xiu;ZMOyb+mmkKadyw-Pot1_(idJ>KJ zmU!ZO)q!s+*8TOVFT*}7v{KaZp#CY~4iCnGyp;jZPe5jU-pM>N`omb>%AQX(@^i!L zT{#5M7z6k6(hV2EP8EPC6FxULaCk!BG2VUf{@+ zf6i1ir{Zd)+E7Bb$gqGiSJmUi#u598?>{EKqMyY3&;AeC&WUdZ0JR@;ywM)FxZulj;7dO;d^?u0Mojw8Jwq}2G3?ib|6w)v3qqK z?(AaVKHJ1yg+u(YEe=16xGj0DQ?Ss`#xVrIlem7t7(eZQgIJ3P0xQS4h)01hcm0S8 z#FE%X&M?zAp3&i5Lfc%;qfwPcoh&fsho$tv*E`0C2j&26Zg@n+W4IqCO#@hP5wp*Q z#Br;M!_7V~GH~ei6r-^^k++q2)Q?pYYB+9I2ix*<6Am*Kt@JNWCq`hB_&x1JISH z=DQpAR3JAWp6@TgN2JkTjSp?$Mk@23v(S;W_-lB*&0osvZT?Cgb@YBFbzmLekHh!SM@OYMea0JN zu|=K#GHpB_xq=(#3i&A!PD*89(kd55nTDsb00F0bz1L^rjI0I-or>xMCA?mpo!;~Y zZ@Dj`lcRH>z(*ALhHlbl$>&5vbx;hpAC%PF zrnVG|3GL(jPqL73xeW;yy%{%;Uk})!Px^({_LKdrU+I^!>zKIfxTqb*A5Bi-&+!Lq zeY;-A3GKA`v9$|Q2N=som!V#qYOg=jC4MMITP&9Pc+Nprf;)foS*zXe{~z7%N6}+_ z%p+y@e$!i(AYV}8&w+pNp6@ffn8W^4N5KAX@U;JXo%WBlh<(_<4L_=hfd32^{PeoS zt=oF^*+Wn}ksey43Ql`|5LmHCRer6i}OSB6R? z8iJx#QB+t^F0@w8yq;-U#YiCIIdo& zu^L!ayk@LFYFS6DJ*Nv+Bi~g5tor&R182<>I?l1g85DHoat>iHT|H~SnRR9yW|n|W z|GsDGnTn^1Bf{72R(rlZYb5Z0ZQ^&+^WUBLi>!KvDpdU&gxEDX=F4^etn9a?TkxOe zv|nx3e{LxFRPfCB=*&(r|zX!mQMbt`wNK z?}y(51i)=tpx~xAM$owU=N)kGTt2jt57)zms$8{Dbmk5Keaf&|sh=VVnb>w)5r-+5 zOsqH}h09A7tF{>6`(%v)04gAtUV+usH^2h4NiFQBVRuG+-GT}s*#8d`>i=<@{^iIy zzp^kR8U2?*+V-ED`k$u@Z|!%^rp%W4l`k&0+Oy~%j}rac;!BP7KMh@{6NN`aY1)Ai zNg75z`;Ug!8JQt+9ERYk#(%lQj|eQUOnLb$Tu5&^hOI)6B$0i#MUnw)BzZi3Xhf3# z!JkSb$<Zi~V@g8ZUAe677>Yj(8F4Rr+^Q zi8r0f^(y&hW*#(SI~VefX8Q3TbZacdk$}q8-r~6uJpqA$g}Hi!;y&@lz8P3p-T2m| zEUr%07gbNfYRG&np%Xs{Cz-qZALEm;mPDD4{l(QIeJYM%x(`Cx1Z+0_8FES_7Y!l>nSQuJ(@tz5-8tdmZ>DUhKs87rfgO zaY)R682E}&-GlXSCnmz@Cn9>n5yW@0!dGZ<9t8>?JYl7wv?4rA>^28>YpwNxp~UQ~ znz*j;#P!{>+mIuFK;yP)p_E(*?}+J72nl(qy?YyA3ZM+Uw(Qbd+eTLwZ|8Ea3@&sUFJQqaB#r<7WZnV;f z7o*RLZ6ak21E@kzhaWIds>WwP+t{q*zJYzn0x>4)I%C{;-*RSmLfhc}e8cVtk~any8_x^!PYF z2-nGn@BsX?b^MYqUBx34fBH)X0hPExBK$yWmJe9lYi23%e&mUFz60;jK}q11`XtCx zrDdSPsG+MeP4cDHP>)gfMh`>GwXlowNR7V^qz0nT>vq5$VuH%I7U1g?{J2o-o~84^ zdQt5~9HqY$L;{XwWEmu)0G5C|;cfx^L6E2NVPZ9i^2y8;m|iJ

mmO@~;-xs&K6g zkFJa~%tYJ4UNXHqWA;!=es+8Ev(&-QfD445xWYDDe`?r6nYItrJE;FTPR}Q!eXvcW zzXZu3VGbcwu;rw`1i2w6-ejgzl*?;+KN`>$M|Ez-kelE0$e2rDo8ttw0?Y9u*S6*8 zM2s}o4%MMi;MusYkGWJ$hSgqL$VUqHK89=})p%3pPh~P%jW}gI8{2QFO52I58Q||P_>Hzw2c+CCs|GqN z$1GYsEY+ld!=2ILCG}1=Qr> z5o|!^XfM_H9hW=S;(8&jvmMbiDsiqV(ofooJ^m~OA?>G}Y}khzKZhLr>^)bt7vZN= z_%U~N()<60J@Ww=^Q~;5NJuWmhxQW6ZW_9dO+~|L@wf7No1aBBm|^8MC17bGk2?G< z{Ge-Omc-a%ua21)u_4e>^PnOrz3~iKm6}`y#LEWvVu}?5Yh%!srK&IRxU0{dHz)_HF*ThSaRkq}V`e zmiWO2NonXNk(_xIyJKF9^Q0=@wYDE+Z7joy-5*K*$eafyn#K!xVJj~n!v;MMJ^)tX z1h(?Kbd$^T@Y*Mww2dQAeo)2bL8NQzFkjo7Yl|NM-l#v2@GCtnqip4UN9y$;6DGJM@f>If4>AjG_s~Y z#COS>_Tyjc^Y0%&AchgdDK!nxDR^ZVwfvc37$7k$zQt}B*XMv^pH~9ahA2efXB7;7HyIywBcQbav-dK zKO($!O;)@Ucyz>g>D%J*ZXw?LJn`P>z`NIf1bEA|PE-e>{;i)aJ}}|}J>P8j^_E5* zr{tTb^T@y%iwD#`ky|F_{w(Em&P!!b&kwgY82 z4PAqdvKg>3L0ziqiKoyXz*L_P=>Uf}9hmf;$UT0Ze4HmaKG01Ep)qc3T{_1=3gaTn zk~wEyy_7g>&AO3!ICR?WR0Ah^C1BMCo~iVRn8BV^XT6&d-<4`900};I!srEc#4;iuxSaJH$EwPN2_!BHt?sG^;*0@nmxPWLK|1I_60- z%YbvEC(b7wIB)z>0-Sbz=KT-h)gN|+$6yil;fA^T40u;q^$3&QU9Uql+^sPUWav;z zDT?CtS591qJaM%-a81ogfGbXaFvwD^6tz33fBz;Ke15`^dKd@3{p0@f~B% zKe)BSbq;(B1{@K-T2$?z{{0Z}CEXqir|LMJ?eR=ruom5Vwnr?van^@#Bi?jRyqg_( zm!5t^cH zZ9eUY@GX3T`1XC348Guf3Gm&_3w`2aIkRK`n{whi!xP`%9r*TUCyP(@kE<6FV7fa% zNB{Uxoet3IPw(f+^QUdUv*^$0{ul711s?7i;5Z+*;+S6biS(!XmQ7G$EZ?=0xT-vH9d_Uv^uuKJ zC;l`=@Rc4+#y+?H)`HLM_t9Uh!o_LM?IpA?B zaN-xP03G)E-+Og{ms{eu?L28wVB+}g%1S|K$>-M+-(*jGXFKpsJT+N-qQ4^4_Mrat zzz`N2$a)OgCydLFIIdEU<0NB=AgtUT$N3DnqpbZS;<(*Y0NK)S;MRWAW{uF?uw4wr z@EF){y%Fui>~|UQ^X(If{p*EJ{8>kaf4<=V9O_NFzf2=MnHP27{_j0@+>(!DiqAEE z)k}b_A!wY@3*NXV|ntvnk&Gp3h zGY7r}CntfA^QC!O@b|>l{a;|ip7h9PVMlt5nu^RUAZaNPQg%h&~4+>SCR`{yi-S6A#De8#(Bs0(6fkRldEpIT6 zxG}~w@&-?z1l)Mw?%7(+U9sw)pe;Xw{m&mG<}IHIW;GYbaUue4&N9I8)EN39L7d6k z=V~RBfD>Otx5Jt~G1kiEhBN)zAYP%Qdeeavrk{3W#aVjNkj zseCZM-Z5GK7dziVd|^*~5eL52Cz^KNSZ%MbT7>!<)IaP6K4=k|VN)~qcPNT!weD^m z)ezO~=2E%0^CXv{=x@N#?YS7Y$b(H5alV7wXQM&I^pkcI%+w3?-Nh!uU+sw%9CDrhNUS$*8Zf0c+yQg@44W4 z+JR?~jz`*~4NS9c&ZhnO1W(zg$=lyswK_7fziu4G*0f1~+ZsITBBrmtbSa~bqo1$$(tUTO9$@HFr>n4ybWJZ(Vx$3)=8Je7Fb zYFTx1Oys^mWKteoZ8xsc=ZI+}|_&{$|sb!$LsG+NJ&k*i!5k#A``(QP%D>VSx1 z!L`3H!c8f^;)KYf6^pvAup&F zw>{Eq{ZlLDzs;0?zl;1?l;09ZjyujdfA_}^@n$4@J*euR@==M@(AB5`Pkeui_ge`r zbggLyF4<4%@SUQW0Q_O%_gf9aV28b}BafY50Xz*Ro<Mxf&+PBQuFwy9^iQy_ zJ7y6|`@d*kj`bO7x_ynH+#KCh(!L6KgqPW|KU(Rdi{K1xE@EIfoOb*P7iwp)bwTx< zAi*IgY`LTX^{++vTXW5ZeHDPz+i-3j>!CI%fJhbQ+@hc^FHoyJZFB6`=$PR*v<3ZT zy~YA<{5V*j@W=Xp6a=CE|6>n)2+ zal!JFPL&?V*2Xteej_lzeCta`EBWO~uv**})+Ft{VNVC!=X@zB(q^IHsG)27KY*f5 z%8syVvzymD{LAry3ZV`7&?D1EDW&2%Qkg`@b4H^=NZj5Xc&|1M5a%w#xpu5iO<9@B zJ8D`un%!V`!Dm$GtH= z&cnHQJ|Z*y8-a(EkdFv9?ZjNUu;f9_?OxO<{UV-p=jVMFe)c=~nfe{!C#;RQ$(^6E z50IZFJHI7A1AZBAFUR3rJU=me;rmMePxi9UosS(ZeDsg1c*n4piT!kY8B!kOL-aP^ zPjl2pO(!3Z?+`vZaRx@am3r-vW(3=Pk4LSp&FERb?z2;Wq0@3Vk_{`^Y?iYDF=l{Y z@EZhZJ8zYKSJK}`>yfH{RCKY*(O5Y+0cJw+AWSDebYYYf4c!D_ynz_)si+cdh-*I4 zSgwk$Y624UuUH-Whc>{;CKrj~PqZPRX8+ z=>)d+L!R$t3lO8FK4)SI^^bUco|b0}-m^+wFCssyQ;fWzP7?~6e;^R3t?LN9J`#JefC0#Ajxzq8wZ zgJ;#RWO_#D8cyn;)nqB=+Q~uv) z)0>{g`2%ZF96k$QaAU|g&2rn85!K?@7 zXp?V%@!_)wpK9$nhMm1*kR+XSEuKJNX1zG~gTP)~yvIJigFRLker(Dv3~w#{o4__r^#-nZ+;!{(*&yb$_#KZv&LA)MBJQ;O`^_-5)qwrxto zo{i`bv@FxN$V-zes!UCft0ce;@vS z#SHuhtrxJ{f^D!WT-AOD@!n`j-RNrra-rrs0gqCfYW|pa<+6Z{yiJ>b3qLyiTlvxI ze-9rG-P`a#)!%kDew^|O^pB}7Lj%}9&7yypp{aj;CBn=%q5l~%eMLj{(6$l3ck;WW zX_jw38KOAW2mFS*w~T9c9EAQ0Vo!(vw&|Y*~)quNY{%QEY^(17a%%oHkNtw~_1pjh(?XqvgJ}8H311*?rKo7a2Pyxebf5muM*U zm%5J8(ns>US}*Xai@qPAzV*cdFkWr%0q7eA5{6QtZ|nXmZ$YnIr;-}`g}$F3)(3EN z7TO1=(qzBBH)sXFDuERk)<{1U+Ea(XvPNq}*%0PG{}+8<5R01H{Pp-V$Pz?zn8B|# zSOV25%V*3WwgS^MXzS;!8ITfvsF|vhN%4So$qgVMX2O6kz42B4d8U8xtN1y+FTA&Q z5`KX(PLb}gIp09{tjI@dALx7MaukeK%V?{@RKXhFjmh1b2nD5t5G~YQ$2K~d)BJ_- zG{vw3Jjl1^-~cu%?fQCHqVAHfepPL?wB}DxFqd)Le|oOvr>E;beFQ(z_C+<g5SjJ;xi38+(!3DiwqrA%Pfbp~~8*$rqRy#toxzuxre zf1sTK>`%wwr6sVCb=s}`aY}><9FxpBT#}^t3?|LzhWqS%E`LSwnYYm76Y?5lR+G$7 zcZHqFsP6>`n6e99VXu9hw+NiJ->Oz4!R747Aq2G5#}wR#bNZl&7$5iyyhgOrk>`WJ z8u)_>Er|LZ)cDmfUR-y zvoa|b2xzDBY6(_Ss$eY*Z9hOeWBWwY&4)zT4hX0N;2my+B?dlPur|9c)`~;xlnTFo zT*x%(x>cM5cLc4Ba8)ma4RzO;@mn-h0q}s^!f%}Vg}yzD;)*3uEnDV`YTkjHOI z5y|G@z(P(5$Pt1N^Bm;wWWod!B@BLZG3hc?8uBL+capYTusHS;(a=6}rRN><#^bx{$DVN6M{FCp zW8A{Mb6{Ts_kp*^w0*;AUoyVdG7&^IbXC0}_EiLJaXl|H7iIV()>@TEAClaG-lg=6 z232O4@(SfcJKn^zG$XopqucPYNv;dO8+j!Acm%K0Gw?rH2t=mm@Y|aHZ%(>8yhN^r z@+QC58=jtv^I&RvfY%R(SMhiKweX96d``Mt2CqT;2-=9Unn|yiYMJtlt)mbETH<|3 z<&*1r%4j36|HbHmIsZL{Tq&+|p+TW3v1BLi=r*Kz@7Hd+{svM!Ns4f?P3v znTn<5j^bGdzt{;^oNpb-iB7L2WkPN}zmeSH@DjNe%DJ1)VFu2V+?l)%a``)w+lbFe zd9G%Q4#{b^`B#Itr^Yus?X`mES6Jmy2L3SF)Js7Y$*DqH8qpS(i{Z0&@sia+W9ab^?Glpuvn4iQ4)dl|UI zSA<9TiqCD}BRYKxSrR^X@|(`5TnnYVO+Gc8C!c$G9enb4Hyl&&O z)WT;ozgz9`-zJ|wbK!II#|imtgPEfL@Al%e8M4^z@qV5$>@h>}cL@05B*}_$lAJiy z`IBp*l+ENX73alC@;aR)KE+AmGkN}MhI{ijlhD*dH~XW6`~~kI zf8A@n{3G+?@PhCX0j(Hv#r&fYpI*STn8(uX)0W;CgE1w8)C%wuonA`Tgx^Yj)A^Na zq0T>&-)fvEzcsuLe)&7{TZPZ$`AsYK<~P9WHhxp@h_!dVG{9z`4Ju;|e(!YQcTi74 zelt;Fg!q3=vi$b^#LBPH|7_w}XaAF?c+Cbc2>!{I@S4MKI*Q0n)53J}nTP)spGEwp^C{Ot8F!J-kvLC2OL!f8@^|F37@x`WS#_m5 zpEG&h#%H62&yDX|{i!P0;@5 zR+w>U9jHO5M8d>W>-mk;UWrhN*Fsx9C$%&1oz%|cbx_OSk=jOlPP*8w%a0qMrWJv| zXJY-iv%e4U`U|n^(a<3azXf+X_-!%yUEsp+pq=0sM8@~`psHNUKxt4zSLMr?cHnwR z4zXi-0KU08!1xKdfJ)Gk8+|CoH}=0BDtx0Bgem5C^mud?&no*(LoR{S%Nh9l0Am6@ zMbJA}-ZdnycRqMSs6{qeY(IS=zma$32jp64%Tn^b80X1*E3boh{*Jsa!e?^vKRXG@ zozA=h{Kn@8D4q=ITY23U|5uT7JwFh~|C1*F%Ut+hx*hzx=LcGTLGF82#@V+~*HB^Q zJD^oTu6X+%#j}XHbk3O;O=IxIcy?}cSPP+%EGl{HEKtTnjDi6<3V&;);2l zt{9)|4vfmHalY0KakL0kLC5uNjcV z9?u>w6h2+!S(y$Ai`{m>?vN3nHHyFJIP#g_9%rwXd|}K#1hh8D6>qPP^Q@zPo6A>} zDP9kO7lgWGOL*mbMub=R1GyHe|10e@73axo8n1&_{*Ju*@R^)HP@C2vg;)1u@E7k7 z0){`B&+9gSka?GfKREMbksbZrHWz*ue2~x|G>#>|TVG0+-!jM*&+ipH>*Tk}RqGrjn&QS(-?->+Qw-SKWhe!FibznL$1`P+q%#XjDh#WUoS z{gvz_DE_q&{S880_CmsA5x?pFRj!2=zCr&w66eWd39o}k{*F8r<1-z- zOx8AZ)js!a;@zHn;oA}KZsJ+x4-&__<)(kA0B=Y&kWGnqEBQ_L4{|NEC6#tvjq~Ka zhS$M6e@EV{@R^){Fyr0%7lGgS{>_YcJ9ypZABw#AZ#MbQcj15a|0eVgi*6+M`GtwL1&tq0{ih<}$PrrJJUYlB=d`!(_rkMpd< ze&^}DgrLj1s}OT`cTruzrE7Rs3~@dM72-2ktH-5h+9T|YjP^AEB3cM$lC_Ybl7 zm)C9n!L$F{X!3iP3%?6CC-e`E*OA|?t;zCR2D#$-y@F?*{Q6CP4 zzrkn0Z`^oT)(m1ioB~wI#4tS&5mwgSNwIx&V^LSiMq>3&wOg%*A-ofyuO z#2Q`)iToW&tiosV`SNW6@Z&K*c8J$)`SSc<#o`B9w`k2r{z|Q0MEk$jg}>g7;17wJ z`1TJ|E7x|GlEb_|CmTQX(C{Qb>DLxPPTWL~9}dv%YW)wUH_q1`aHF~ow~PX}Shftw z96tg&HrF(`Mb4~c^p@(Hs6(}J*ndzdRaj!!^C6=4T>TQZgQ#UP(-RxWR0Q=5?EOz@ofoJG1IR2=oD#XO+gBau` zNtc-TLVhE$$Op@{(3V?B>|&fJv8}ugV);7~y9l32#>a=w0e>FjkL+`C-4-A3@#62Q zABxQ2?+F+F2D}FTT=T)2Zxs0}d)kY?osiYe-zJ_h_-i!z+lD5NDPJ~x;cq9u>HNvH zP-h4E({P^r?csIs$KR2^9(*RrUq`Mtf7^K7#$UmNn16_~zu%kuHRES!b+&r19UBtz zhvj16FY_rc{uV+O#h)>MK8t6J{H>9V#ah1vGyGNDf#SP z1U~Ka5|(^p%)es(7jnho0b{&y0na+(fiZ=uk#~R`j2B3mklV>`B$wj_UJEr(Be@&! zo#bxhb&$*7k=$;4CO=-tJR7{Zj28-d-Zox1=*8zVCZC&J_#FBQ_;ijJWdA4h9aUP+ zHRQDRN#T@x9aSP0;2u!bh^n~^u!c;SrN!9P$XWxMtL;2XI97Y@O~5S!;VIeSYN?^? z<~1kNB`cs?wfhj7QYtzxbB~xs^G-u8DoZo5!;O03=&z-6xP)_1tV3lDD$1@|IgGlQ zXsB=^+AV8^QB++~fbXjQwOv(c+Sc9gAUD#9N(rnsa9uWT@YsSc`RB4M?6yZ`z(>Z{6nDNpbm42agRd{T zoP1sUi14-K)Wm$%Xq{J)uZ$-YUk=-%Bb%W|UN1VpsjJ3PaeFVTY8s*Q{R#|b$u zEagizytV`|99I0Bgsq-V9L=^0z+Bor7q~Z18oCoK63z?8L$-!Ptv2_-kbClr*Z-wb;Yvc%oDBDBv#kc1|_`f`DKPr1r|NBSb zBOgAw2(SulG^~{Ni@18j0G)=PhjFw*j#Ny2VqylKgai%-YK4J3Jj~dGmgrT>#JXL! zAgtTnPeV6*0h;^rE*B0ii*cY0Tpfph4)BMx?V0iTReRZwN*v&y|83gK^3yHtWjx!< zQ#|AJ_PL44nGW%ew4LPt+O?g0;=;`}F>cWFXKKf;a`H30S=z~}?y_lk|A%kG z&%Dzt{7fc4(|M)@O9_=f;c9WNcQV$L(8cu5%|j=Un6m32v4b*YPj23x>pp_+eC>DP ztHQz8yB$uxPMR(DH0#88zKs1W%C&{4?ZNvG9z*`140~&!O~KS<-3_!b5|*5c-UnS; zAi8oNuxdqEti%>ooeg%dz%ck*Tu1lFuGCyv`9rM!6XGOlGjj;4VzDa>+KABl@HxeLJBCvhKs#3EtW_XNvblD3*G+G)LR| zwtLB!WqsSzE3y9QPqzKUT85H~o_S(FZ1VIk`QV{|(vMhyWm+reGXfy~AL{sjq41Yb zV(DO0wd_s>znH%f_<6j+N#_Xs68t#?Ny8s7t4xl4y$WUk&$Mm{YsQ)70A$qr%;$GY zeq!~wD=>1KJ`~>R|rkQFpvIv|I5``GJo2 zPKCGBf;YfLr{JWFzY)Co#Cuk*;4M{n4Hc89q;YTa!kwyC*8+F$Z=i2uT&&|>->z^2 zu&f7t>2iWS7GN9p%tR-S1#XM^pr7(kj|3p9ccbiT!>f)9xypW~en3D#hOOGY!H?*iCZR-_I~ zoooEr3?GAN2`~ek&cJEzO6SA()ZS~kdrltK=#IeBzT(&#UF5^c^!2%zpIGzN0Em>T zP5FsLntU6E%vmgsKqe?<=WVi{G!N@@WA8$oRE~o{LpOP`Eb!wtKX@hrxe^fEzDe<5;^-V z_-9K^n*W1W+WF6YQ1M?`^=mMVzE{_c|78yT*S{$IH>c_Rzw~3V{}y9CD(rh7 z)D4U0`cYW)A=)Ti@EYBo)e2C?md$i}Fzo9Z6tQ=mY!Ew#eA?hIzUXTAV zl-Qtz_GwKg_VzaQ-ak^YXmRMSeBLwE&gat)C`oqQ`hVba2KoHJ&|R`*`78mIMtLL+n#}hI=($6TSRDs>R#JlV6fw6bb(8xdi(690MnphUF_4&*rz!gu0@x(nITyQ02zyf^=FO$OUUcwKrE z*5+{1o$*bq-^!Z=dwo~cGk{pP_lcf3M~%<*&`_KG*K9s$aHl*fwjakmC<;RRpCx?S zX{-PzipI4N3z&q)clHa7xh9QGxMe>49Y6Bm4|WvK-v_uI_~T3+ zhx(>NnOkS2O}R(xw-Mv7A>H7w){Va)`KwX$y9xL^*TLWDW$yf4g0dv^|55U%_T#9L zcW=j{Cu|!bZDC|IB&#D43-OiQhasYhqGXd3#8q|w1+$Xl%GYY~T?SyJc|iK~_h=ZI zer@pyAedns-tLXAr+n~%kucN1V6|OAuHii;-(q%FxOY(wg4Pm*Uuz>L>icPgGmpZV z-0){G=I}w7^WfKT92mR-7Tk^d7ldJm<&+ZP8aA#NscV7NSH_O662Xnh$Idn9;xF>} z7nAuHi2u71pSKh{*WB@XN8ej^{Zb zWK3BBuBoBmcpi=7QC{Sj$jDsWzXG0Cn)p3SRdbMYfdB3fWpu!z8E(MFWgT?C@bWTJ z=zY`lyX+4z7KPXBQu(o1`#wnfJjERMjhr0czmIX)=hDAqW9q~*BI5jx8V|J$Cf=S0 zfma3Ic@U}~y0VivF}?{NPh?F8f@66!o<|(*5N2^0kXn`iB7K@19r%G*QVFap6~E^w z7dRP2`tUui_iX@l4*1mjjbiwk0jT|Zsy-g=Z>tNw8VA13t%46DTcu6dje(E#KUn`s zd}@FpW83KSi*-G=q!Ce5Z*Y`>VeMal2ufL}P2n|abxNjj@gx8=v<6VU?jlBs+=L1N+bIFml$D42xFTGQ`Tv$B!B0-KqRBhI{H9Z zXgANuc-+s1`T4U7JYo^;rmWLbFt|fwgZs&)dFmO7DE%3=`L_OY6uyrO^A*ZJ-3b+! zKq%{ESXZ+&-z#%>zipUYXb*T%^8wKiUy5Vf&uN76P8c&jt#f19(n(AIv*k62JlW(`oaU;S07SE5}E4rSuixptHZh3Zod%fap1( z{rnWdH~d}ti)k4%(oP=M@Kp*nu9>tCeM_{}AHa8Qu=R(w-P6rTVA9ND4)S!X+t+<7Z)FE6?s!&MUSZ&b+n3^ICQp(Ej%Z4OPO#UsoJi^!qP%* z+2KG6wr|wl3y_}N>7*wQlE>)5fowO#iYk4hFc`z)RK-hh41~uHO95@f$-)Ub9>vEg z2E2VVo+_=q` z^50G3pBZ&?9iXfcjIP|M`{*sl>bUNvQr7Z_Er4-A1qjskEk+|i)M*@-o&+ylA#WUF zbQ)k&!0T^tiupC>1yq^Gs@geyj%@4B?>%o?VNG0x9BBa8Z z=7ZWI{EAB;GjWMI7f8ntAOj&lizE__Hgp$v9mNlTNuViA@M*-PQXO5414G%r)qN`5 zMb@?WZlV3<%UB_bM?^yhbnb&F8Pc~b)0Qq0J8RM=e`T~U_}9S)uG1by;ZH-?M-7b7 zOVB5`wgN@GXS@YlWyu~jFV8W(u=oL!A)Amnbpuo`x4Lh@}H)`g&Ml9ua6rsL1^w|NZr)oQ?^0|v-p~4s)<`0TGYg_Ghcfi zD3qGsq`iZK!5@o?WRN<5V||XZ4HZ=#C1a=@>u8_2rF)~UaD#m(N|c*p884|ZKSxar zE!0SVBV-MPp{Yvz9X`o7&+7|6QvTT(H9wFJfh>yHlA;t5EEcKE@tgd; zZa)>cXF~fyKE^hF&gWBq52UmV%jhi|$Bh5!wS4#u8W7X;9Ir4h&$K-Ucsck?#nyzn zeT~E^j@KZLG=Vv!5HyAP0Q+Dsz3CAs%{t(V`eb}Zfp+yCW?ln#NpHIEFv?Xs@ShQX z82ahPkHYJA{g;>Q_PCh#c$23+p5(B{M;GejK`cn>)owZvh>Ztzdz^#}P(#Kuj}?#b~Gm&1G)jej)#e=cckOT>v1H*_9s9g25`eu)M%AkMT?o9 z3XvqNr6ZA4Lk9jN4}#FC%OI}zO;hLGsP;-yASV4s-qWt@N$@MNfxSh~M**GaIWN5l zvuC}#uE&3|_(`K4CwuDgOotvfKd$r$ztXZFeg%dh@$*Y4Aj14t9ko{&a}8*g+I$G1 zMh?GKT9N$K$^US;hNCU6;p%ThD}HFD%<3M@_9(i6;cq!X{DVJUKXLw{JPchH;rHQn zpik7$kCMgmT5NEB@$1qav7b{F&Xh)GcXB5p{#9xCo$%&p^D-Pq>O1g%|MlrjjW8#< zwwPzaYr@Oq_nX7@-8jZJf6s614L5AywS9=#W^d%*X;=@S`=pHkYvvxor$v8P9@6#a zPjA}Cc8V+)w`TXjN2Z1|;UDpX-7l)V1&(1r?D|at>(^x; zEo;ACXYTtnm^!y~>R}M~?tIC+N#|vbmD{9KQTj(E5cL0BYwMNF`IP9hjnFKz!^ZaA z*k~4sI4Cbf0VO~DJ^TWOPx}T0zjpQQFb@3UR{SFU#h{*f)Q3HDWjDPw65%y`32f=< z(>tL9{xL()w69@2XjJR9Gxz|;ohcDc{4hu|E889p;F)+BcQgG7Ms4|nKhYgvq-?J* z;@d0xnHtkaGtQRj4u&N3*4mVb5D+2UzLA*jsKJh=uZ1xl=*Q>5h9a~tRT8C*y$ip@ zwWsij^X8_pwfvFZY&j8+xXbqjP^5^C*{)*kv>JMAA7{IR4sE_jvpvuao$ase_cqP!OoB;9xW>=4hOyqxz+wDqZ2E}an3P>dz z@G(RNlxo&8{t4en<%(W>0X;CoJndKbL;N5Qrce5D7DlSwxIk%mDsLnnvNT8iML_#$ zDmqvsNyWc1LoXgOl~3W{_P&KY=QU*i7r&QV7wYA-=}mn5X!sx^W@i>5R#k=fJCDf4 zZK`*TVY2|wxD(~$ttCO6s;zh&!co)E+Y;0%?4GOifuET3DVkCOBIMjUrHs8cS*6SZ6R#`-?qwiyWrn&NyvM+w@5)2NkIlcAM1e?HD2S})@D4u1hY z%pnKO7vdu0U{?7?S8{ewtGi2Wf$#rP=_q(Va9|96zIGzcv{N^dLI$%KF^uHBRZj=~ zz~}L;1%((E@c|~W_mf!eLQfeXkqD+FLe2r_Vgxsf;Sy`MR|WB%@uP{QxsF+ ztlQx1XBh6_qK&gLv}Goe(a^@t18)<^+gYEIHxMTN<|<^VvH$TTCM0AZ@F$R_O$j&p znE;W5L?ymJ(rSDVzsZtTaVKA?nMT~=ZUWj@Ux2BMrnk}?U*}CEi*uRQax^m*@SGRNbD0jDoD~Da2+JqH-Xj zyT&n@(mB9vpS~C5Un%x%nrzm6VyK|MMtw_L-ma1-Hu|fSE75u$feTTD8ujWwYUn1} z=044av>~AEw+pjGz1sbIVxx_=SpV=S!VkRv3>(9#_ zF3-cbCF&c3XQ3pLGnJPH{pI&;1_<%XA%Mc8`Rb{hh|$TxN8%h`X_WyWX?Uz^mZdOD znw9oPQUMJ=%)iD7Gjves;orc~nw|adm)cQEV4)2Ty6I)a5TF!xnWBA!z#ccuQA^c= zXPaDaG%lcgK*bH6Fc%~5lzBhCTk6AB{YSN6lC{^>Qg~L5ur*-2+*)hj)Li z+XF)c{u!9jY9O=<3*KS_(&sxTR}ElFdEMYnzINbgTxs|Q@})}{aL=((-zP+cdr&c2 zDlxz)36S<6chTedZO1B`=otnb)%bI4V>x{q8GmRF<5uI31NdPsZmw;{jYVHi``XPhQ z!EbT0T7SQeb_vRkF#lQW!e=&xk(V_L1IrLg;_tJ6IRO1PrnVcIPV(Zi<3A>sNN=OR zbnrRz7{zA`Ym!jWa727g{Y?18B2hb^bERM6KngK;ba69`EYdum|JN_1!Ex2n2wsIv zEa!Q~-EyUV5svUq#y7B%sbMj%>Dj;WQrOC{Y!9u_J_nhW`VeG&c_cQF-rt)#o)dAbX^QeTWClt*bC zq>tnkxQh~e!d+a9zsM(j=Rgi4b<6&>GE!6wey9+99f_}byXF{qGU*a@zflS{cem^I zWAQTw_Z;pOwad6XXDaN6t{?tH*5|4^iy>-dxGgvf;-`3k`JRiRQTh{=RMy`&EdFF5 ziiR4x?zvO?0}-=Erd6x(lpLwoiasw!BsFe+?F$H`jOcP@HaT37_CB=DANyAzxJ@}{ zEpEh3GR4V!v|Ku5^l;%dO|RZht0o^Z4fg&aQ8kOxI5*5o+QWPTe*=Tjb(w`@PO!01 zSu&krn6xTn;CP*_5O2$yf>OnIA`e$kPfexN5PR09N`7NEFfshHTnlY^ADb{VRpUGy zLsJc}?+d@c-@!5br3#;u&NQ4pc#jM(j@(Dx(nQ%2XNi?%B;{l>QmOM>H4(x4{w|6S^w_RKTM3o^$+@Z9gnQkN>SB=_n%f{ zbciuJBrJuroTszR+((~f+h@O(1KE^X*@|O>AdJ#w)j{bkr=={fUnzk$KX9jf?e$%U zA^r+EW&%XdP_NgX!`*OK)S2gNui$N8P@|ON!WUFS4zdNYe7)DEVGQ|G1Vq|C{tD8G zHo?^vtkHl$Xj$hWZ-+*14lo-b9)IXQcBe}CXMg<#Mm0}k4LAwbUksB|uQwh&ZhCo7 zw%|Yqe2@e~CQB|$JK;g=LKcw?a*eFOV#B-WhF9%y9lyMba-4>)fwyzKIiIqs`h5(m zi!sP-Be@ukfWAy~gwBcp{A@WsaNdV5R{RxOx%U3e7=qG|rAbB!+Qj={eCd^GM(eklD3rvMTllf{Mp*6C*vI5M;QW!Ocj0OPqm|X9-+A8UeX|e z6kmW%E-WZofpxJd_>zjBaNt;oKh>@{?hN@8em`*t9t$h_E}H|dhRq4taI0jxL0V9}Sg>nXZR=~oq@$bSf7E&fIL zy>>eag3$lnhWXe=|3b>y=5OXlhrfj%t^RrVh+GKPOTbcgd!4s$sXz%nFo-@evpYs*Zf8r;2{yjgzbH85; zw{^zw`%ENYge1j9L~(%$Tymj^?$W;57MEY51`K``o7%A`P{RA)swB-sVuc-bLm@{e zxK-3ahDooK=>SfhL_4X`hbqwc$O)y*zdOcb^%?jMJ+Jv@06tPhOE9D>zXuvyWMvHh zYK>Y=5@Rw;8^B+f7Mm24GgD(0TX_+liwBkS6HJ!!6S6Iz_$`=x{%>#vlT&D~Y3fC% zv3Pww>Tyv2{7d?SR?ug*dfhp6;~ezUNoFy01iM_OKqtWQ2fk)#TW^dt_DhV$4%zqA zD()zE&X1Hmf}%2IY}vexmP>wW!L7GT#^08;6g!X2U ztpbK`^UAicVYe@*x)ya;-H4E?y*jOEBG`KJNVsOFZN*N*N|^3s&JtHIQcquTIE~9qd58SYIT?PcaZX}Gv&*h7H_Xh9rBG% zEMLCJ*LaJQzigX)C%DR2>ndLj1ZscXQ@)iB`Ib&i$X^Qzf>8fm;gqj#hn2qxJc{El z=qg_;<$KdpzD*AK(i6+KALTo!e~goF+jgsbn|Kr_U$v`z`zhbMp7QN>$T#u+g#49> ze2Z>&@>gh+?*do(YFy>Z3qigQJ>~n_A>Zcv63W+xA{^Ae$H_PULo0u?cofH<&sDx! z%J)xC`A%rD`}0AG<;xWLs($X|@6a}@e4p|tPQGkc`4&;WgQk3L{pTr^&(eR+u2cN6 zd%!)Jzc%{&AgXuZ|85fbT>ASmLr&@MM<_Yn`}=A22r`t&)^+?nl=rYHubaO)&%x)8 z--*0A(%<+QP>9sVjFYv0Y(rrV^snT%^pErZX61JlkK*{vapgC!5%T&}7AQe{aQXnQjdiv9Ggu$SiEalW16ME>1G1EQ8&;yAwG%E5lwSf8RofMA4YE$&( z!(H~0s-O;-V?cbk^xg#ajrBXI^MU`r!6|Ru`&Rpyz$2%9Ok3<~&w(cJdy^->_c-h$ zJ+XZI4^h72IQh1{XO(XgkDT%)h_7oX-}9z?Z7%u`JKEdCDT+T!d}rvpOypa1y_3H} zn|v3z$v3UjmA}Q5?^93t9&yOG`JROGwW00^?LSVw`R`i!o5iCz{!j_z5+CiMd^0c* zQ%2~<-?I++1|^a&N6QrXs>*~v@vq$L2?Hvl;r#aFXcj{!}vv2>Jqm_L{eivPrQ2vW-@}K1?KZZFZ+%EqV%KxyZ{O>#D zUp*;F`O*GSeS`Kt#%aHGZ(HqS0*~VC!#zIero6A3@@^Xv?_WQ6$eXU@wa53Wf7pLe z+CSy<>>oC6)#a7`VHJ=1>>ro}RRdOQ|KNK7@^3!cuy42i;pm6$@x$n#@a@$2k}p7U;LL)T&{-|{;%LsU;GcNQ{+qj zD%M`-5yyW_9B%wy=HP$x-F@%sC-RlW$+zcCt9;ve6ek}OuJQ8a;Nk6G zc*=LR!!D-&TKII6uL=b|$bXG;@>gP$?+Q2hhN0@jr9Y{nd^y=hdz(+L9Qm$W9rEp{ zO(U6OGZ=8IsTde#&&Lby(!%|)4dyn#+ZOWG&j+gIFhkQfhk@5apP;ML!PA*+0LO(Y3I`3 zjP}riIvn`_5~n`vHe30cz@s?63SIeHO!-E8%J+yvzI4dP+sDOMIof{I#324t@>#}T z276mK>2k{W>lGd)3J<0=y0(uV%3EQ|8+b5YzfU>j9XCPb%~{R~=m>MW`VcG@uN(a4 zi~Nm0b@H2S$SwZn1SPjUKiN;wtNd}yKh{IQ_FtIty6JzlL*AvoO29Ar|Nn^ouW`y( z_l8aXJc`r5d;hP4v_nt$(^u+S*-zWNylW*Hbt9+Yy6enMrt9@ohARiQ{$FFYu z9dO7uu_lf`wC9^dv}dk%wC7=lWPY~id>ol0J3t5g~ zGo`fETBJS_8`r&im$h9hL(xspu)j9c;UNBpkSafJw43>_Tlt&Cqd5MGUHNM!e<%ph z`7?yI?u&K`Wwi8ngCHkwAJ@LIKcdK2HPR{Hq1UYPeafRa`KGwaw}tY}^^`ByA>Zsf z6UrC-l>BvH<&>|&Cf_Jm`P}o5nKL0D3dlY9yWAn)-a8V?w-vQK$bZMl*YT>Aza>11 z7X+typ<+r*bOE;U4y@yvNViXYE#mLEe9m+?$B z<-~^Zx}1w~=!^@WqnwsJ?)vdEo?(<@j9=RRP5yik(tZ3W!Xl$M^A(*>8Nb}mBkTCZ z$SWFoM&=iXRk@B|wo>lbJ>`DIA$L0Dmd7#u$&3buy0#h5$$EY)WzT~AZ+gl<5KKeG1U!}dB*=W@*G5!_N?;V!N zUiurNpUIB%>u!i1XD?S`&Pj|V77tZZUc3;~!%qI;;Cn%pX(xJjY0f7%YUFq8l}>+9 zLvc91m3VC|kK)>!`+QCt<--e-J>=_k$k+Qz)!qhLK{@aEolE0V|(@uo{A)fNPx4(Uqf4isr zBb)8~Z@x7N`Bgq`(MObj{}qtmHJ>JWfIqBTqvH^NIDto2e`xqY!!L?Iq|b`?C$$i^ z{nu%R{kz#y#-nyW-dibnyz*&=f8UA<8^k|-;%V));(44$ed59R)&);1@l5f=^8*K- zLCN4T_9rjZQUp`!<je zkO=R;D0H?T!NdHAfk)cUfmH%RIhMF|f01kZ&!5Bg<0=1Ohy1h0CeeOk`l&>nPD9tS z%aYMgJ`vC#IQ8>G1ue!|oPOY*-SksWe5Y~YzDxqT>E|a7d`oXhLO(Hl^{D1)=-Tq* zWbl89?{tuNl@PC&Ao2&mz zWxJyP>(Fs2|HmV%zcBos;RnV4rMmiy%(=jmd5od2!r}4lX&mub#>>4o3!cDo?1h_x zwr>jxRlH`5@3-zC9zXF&{hP>-cGR&_mtWPt@hC1{anFyGQ{EqX%KK}FyrY%8enVaf zT8vzn@-K$Gevvm=;FLGbChy@DZt`Zhw)c6I_Y6;Y>m2ef__^?#jJ(0^ckfL}$ZNFUGOZKUJb3?;lDUX|2nH2K|H0(|f#~yw zowT&;IIdvOJ)K8f4r4T2<&-L<)8O7{?2ouSMmiAPK{>_`Sq}kUu_wMq9Qe`|zCy!( ziufEpla1K0ch!D-wh>$YkiOb)$8sH)wBIE>vbJBN-5Tv!+Aqx3rN6Hvo@+euv^ww% zEl;}rW(uCFi=Fm$=p|i#X}_QHD6ajw&(ANWyrrJ-xvRd zhWx_+1xkMJdYxhUuKXV)o?ATeeCWWl`i3O# zd&+MCo))eHlm5FFhxlfz@BYYvXYch2kK|8noq-Wyne}SjsMNvy7xCEY(**}w_@Wnd z91>qW!lQ)aL!YbvT1NTXO!@b@$p2r;&%6x!G}adnQu6Ed6ocPF^Oi2cke=%q^!h2E z$X|A$(H;!B_q6G9OMBSPBWHU^FkcdQ81ioOl-D=U-v3T5Q|-YeUtRT{*#BTdK4U-V z5}SNixXCxI$2Ff>OZlGtzF`k;`#EPhL#CRZ+?+4n3t%%37=?hhn~~r760)mkNRwHDF1Qs-@Zp6e?Kh2 zQti!+-zyyQPaTs)dsBGI-XY(M2K9v}V8e5IQh4CsUGS6=Pk&E5Wez+`uT26^K-N<< zqS6QXuM3>^UGrC~{fy<2(|(4z=fmey-qTEZdvNIVcXv4C?JZ4U-^hP%rF{8HK1=?~ zXoua)bU9W2i$@9ln|u9w?xT?ROiy`#M|my&ZM2d%8UN-N`Ge;>`AswA7XNm5sT;ot zhg{;xTFQHlr@XTq{4T)sJk{so-x^W51N{e_^3_lxGu|ERCf~GeuKuHq@?GaC-ya0Zyw}(%9PK|KRoY{Z(L&eibcMb^PKzzZ1SD% zDqp#)d}Wlc)l0v-)-b+MZUcez)@|PQQpBUD`*^ zW03Dkv;L_HhfevvaPT*^#Eri@wvfN}bDaDcB3^BXDEwW&G-d`TlCk*W)7J zcOSFICp&&B{JGWhbZ@4RnGn*>U+c40{vPL19DnZf0lB}2e6M=Sm*tReDCA4vU;H9p zFxQapJ;v9FOVe!f9saYMe6T$i{Z>)FQ<=7rczPiYo%%h~A>V>);^ag72yY^F?+>JY z9qaWBDaTVTdch*fT#lo-^?Id8x?ZnhB;+6DDgR)~Z|QG#Ty3t`TeQHwUa$KN(LX>a z{Tq_EK4a5AkK**tm^?mz{~r0R^px*%2fsrhpR4|n{}uUyXN!E6{@ak#XUM7Yzl%lA z1o>YiuwCTM_ygpf>nZQm4tZyf6nT@W_paJVe%sDUB!4j_riF<7Lpo?>S`#4$2nZUlYUFEHzyxTnGt#`<~ba;~X?bjM#CBIwG z5cw_q*8Go^-?2Q33i5i--tx?g;lZ8*LY+?`CD{q`D;28$lpJIoc%E9{VtH+XFc>je|GZnUoP?w z$I1V3H@=s%<;AyurLVpYC%r!g()+51-nRaU<^Pt*KaRdtkGbhv!d4u8{_)Lh(zh#+ zz7IU~jYv#ivC!Ap-HTst41GuV(wF9o-xkuBVXp`C^QYTA^eycdhacmA)Yl;XKf)Wo zS}wHyQ4>NP|FabzzhchSQ-2eA1oRyeNM8#3E7$y1chHCD#K*5;6%r!LKxAzG(js!x zER#sFpZD2H*gyG??<+{}QGxUx#hst)1!%17MvEoLj8KG>LtzVJ-Y_mw?cniE#h)5;v~Ow1Y2?b$-lpUfb?y#>D%z9c=|5%;J5UwIQz$j zjmYou(-mcE7OHt_TDBb~G$xoIwCJvS*aTJP2d`qwJ3na63u3D=nJ2X82h9n7&-~y< z^0PCLpQ}9lY%LUiuyqPFIA(ItigIoITbGfyOwAkO7mJU%GfX}N|3}!0!{0wXjLZVP z``X_l^wW=V9{uR6>5X0QuJfxAp|9#tOFx>d@ox-$yC3qQFG2h=n)LnMu9ujNrdNOK zJ$TMM(?>td{O?lYw=T;|UnMDW@_&Bx_4kkeHj%!XK>8l=(ARcGLi#o>A$|FA^sRc( zP2Uo>l9X@wQP6jXP2Wf~z4$%lp>ITD`ih0V#;#uca%1Q_!k0e(@$7uk7q#iz;zQpe zkNz#~t?`4ka7_Q(~I8< z4}INZ>2vB^QU4|MmBrDwDT!()S+^eG>{|@N?5w(M z=Hn*t1 zM}O%vKUPS3=LFKb(?jpwrwg9)8a$KoM!a#$tAujpLEd=C`gH6iB#tgo;^p($N+#YI zPx=-(ep527x|4-Zh^D{CW#%^#>-x?@)_G!Eax-;_)kvi`UX-gT6Nc@yqkj_k4ar z{2CV$zfA{t@vClh<99tF_R(AUG4zC(q+tJ4$VxAPu1 zec!MZPhb3aOYqwmNZrWqILO=R` z2&C^#4}H(~h{MnFFO4q|#7${&{_k!RJn28KXDiOX_>Y(JpMd@T97x|f4}IyNFOmOy zk@OYE(YN6)H+`$wileXE*FTGW><*-FvxmMhCnuz@Oz4}vuNS|<82V23rLQtEeIYwv z;@AKF>Y;DVNeSs|dV%nvzTXFb}PE6lEf%NS^BQ}2Nk(jtm7r$!S?@@vD_4m*>C=q>Ol`r(wr3!wo`Ccnd&9vy0 zcz-WVXM*{V@xJu7lHQy^ddocY&OAZzOlH2fYM#iyOCtKq?lf^0`UkL;FdtpvOMk|b zp#S7R`YS#3e|CJ*^fx^x_Medc#(FpXli5m0f2lA1!%2TxApLW3OHBU1efkl&Rlc4{^{%=C$>^&3dN4`a*=*O{a zCB)ai9w6f>(0f%Ny?1%&U3y%*`T=~W&mq2>Ly7RcpwKs8FoX2o6iDxj z9(qS$J1D+J#=FokWDJ1kxkBdjJ-m3%FjKt8TcnDw;%mqdFUS$Nt*tM&|lRl5&oeV z`hThoqQAr!|IBAV{~>|&|K_3p?xT~YzXBCO$bY6JqQ96FJM~Y2^uu!e^oR6k2hxAg z!?E$@nxopKANKjolO%m-+i9rpbH3T0%l-H*?Vo(RNxgiBXgpe|?+d&3=`GevTCh)V zCO722@?`Zovs3=8C^5x2PG<-dJt~o*hrsLO&$7n@v{+^3tPbtFA;9pMTN0(&XGVKa6UAbvnBQgKO z4_M_!=S*dA1%I)s+GKA4TT9rYy!bU0tRpt}h%d)8XrCix9dkL>GovKJSIeM8@DZC`wydnvP3tsv_i9ey)rQG6qJc7)#ze|Ph{nyn7=i}8k! zKMBtTzqbbRTkGL>P`3{88%F6+P0I~GcZA<9x4QZLl&uc)i?NCizaz=-#6W&)Jp7J0 zED3(KzsY}uyw>eVp|gjVPJUm+vj1|GAvBKsQFNrl^mY8$y56^;*zM;wjWg-)LqGRETUPww__;FE z&sqC5aL1^>Ajr3G#mriT-aF zeR1XgEWOFJ_|f@4wi1okZuj5c`e)Mrl}&%)ymvCYp7XnO6X%)?I) zlb^uxgx0r^@Kg4Ed-B=vH#a}4*=m=cCSQJ<${tH64q$ zIN#^XzhCTso7g|QkoQN76QLm3)Bfdkhwdx7=hxEcv=?*^0~8bu!bRuKn3>z{?j+vFV#dT0HxE z)Oher2Yqq*Pu+iQM_CN!KS5+{f4kvElQ_X|HCu807siVO&(qItBz<=U(r0++8*@M$ ze%AbPnb0@;J1>2OG4!46OP_zeS>_9%@4i6#rhDjHlMzQB@+FHJ3EkcxE%tjGmVBq* z;Fhn!R-AnMrI`YD#y_Q`Z-z~u-+16z(&riv^ZrIhmyxtVy+IoCncm)s5kyakeF_8U{*SR=}WR^W7S~N!UmtHpk zgCu@Gx97X~j&o+0`m!#e+GVM=KaaoZ`}75Mk&XBvKK_{xGPp$vD%$$hHp`!Trr%MI z-+~%mFzTk=&~ryyrw`gTPK}0s#F>;u_)bU4@!RT4TMJ|JRp|>FA_~{c`;Olht!tf+ z_LP!FUfLpm-pfC?$)EQzoasV}Ib@?N)7$-}N$^-MpYd+{rwJB0wLj9`h6X-CESF5U zG(h+SG2yCdCDJVxc_!W9%A|Yq5Ogv&KUh~`o$rnF=C7`@uIo?EZ>ukBE!=#l-}R9G zJ+JTN$E3A8ybAsS^2(C`@eQxkDsc+v4lVUr_?XtHn7!U#(t578?w6gi86T2tGtqn% zyCIQEzGWKTq8_=zn=iEb$EJH|1fg%*>rWc4GmSywm)qECw?EN)H+%d0YTCy;wte{d zzkhq|Hy!-(b%Fh(6)%^mjVP6=Y03LvN5+qHD^30+Kkx`!CW$XwDqaV1Da-;uvEx{^xJ}d7<@VnFI*H3=?&5ZTuBlbyBev+Rn zRy|PuQ`0ixYw0BO!CnDkrV{zyvKGia2GuXa zCqFlu{B+qzItVxzKl?j^{J7$yyZ07;lFQGPtC6S{!v3dUdBhhpUad3pa`|M0U5boX zk7dg%HLtWFDR7AK>TjZ--tp=T^7o*<9;flb`1tAs4}Z_6YIy~YSH-_D3@ld@8pz<9 zFZ~%5xy`W{ylAw^;8|45bJ*fKD-Oo(Xu``O-huF7uu)S8ltd+6@#6;ack&^Y{QUUq z>)~%rmn8Tz^WUhj!T4{Ju;%la68O2y z<|k`Nyu3<1{Iu;Q`~>v}i0?kUldK#MR$}8jVF5O@=qi&1`ToEhwrq)57F3fXG)oDC z=ev8Qr2D2ox-aq2JrHy|alG#O%?QAq?+FXxH+g<{EeJK{^oz441f6*ZuuR{R?_lAy^4?gib4FMje-0b9{D}LM~C>Eh*BTy|GY67 z{>rX!^EZI4r1{J8<*$MKeI3Z(lOF!obWVal)BmCD2LA6e;VsDj{ng}4`#-kY^MC!z zeDis$$j{%q2KnS|N1l;eQX`+=5GO8N%Qx!Z@f`P{+1PS~J35fRo*w>|{+29%2E+ZSsKTjf+4!M9d$IaiQSO%CP_~lx zFEf1QS4aMi59F`N!{2AWCd;3e-}4j5VA}`&493c@_ENX}#P{QCKguUpCA>4E%R z?BTENmyYqb<~H)zJt_Vk|FfIFd)Z2!zbb8hG5LeESHNFkAb&S{`0L(5{3Rv z`efwSa*3P2m)T05ztKMYm5{&wf&A5a`0Kl~WAaNE{zkl?41Zq?ck}liTgmf>6<3U? zW8^o5{FMaqH{HYEh@U&gUyo|aZ^C=Y@V7?{e?JcE5PxQdGKRlZTG;#7vT?qcl0{Lt8@Hg|PWcic+;Re*^ z)U+)7k3V~{{X_9klRb%FPG>9W{$ZkT|4>Z+{v62PdmjFl{+KL(x_`L)7BcwRyZ#Ku z_77KF?3UlfY$b1h)jsl@LjFbu^0&pq-)GyC;4fF|m72zrwGdg8dL=74G^5O9L)ZVX z<()shy;8Iln7?v=KeK8a@oQZxs^J|k7e(ic$NQQ1EVYO|ebP^3 z_b|pqc(NBya@cHE2*i}KNeK)(9B;m`h;-j#fA8agi{j}%(nI%}A4DIL`Ci;?ROVp( zzotEYsxLIbck?rfCjkAU{1l{Iq?aG(YRclAlPs{LCHV!_WOZ8OV=W zqU0WLEF(XQ1NkZN@Y5q1ezd)YgrBn2mc5F8A(^{nut~qz>!)ma?X`cZZ@ojxtDyHS zo8Ce+;j&}Cx6+^Vy7GY&wh8`jd$s0ME2@Zh)4$u(pF)dXxBeWb$xdt!x9b5qRLH3} zm`M6hwAWMl*~57ryq9iGT7MeYCu1@A=@ZD$jUIlwC(qAzRL-FO=k507v+8^w zeqQ0pKz>kyLEk1JA8p?e;iu|fUi(h7=okCmT`Gjf)`Rs&Ee<>5 z1qhQ|>k+1s-iK{^{p@=(>2=xn%q4ZDc$bqxhOut@9;nGqY~TGcfb`!>8_DvFa>wI_981fTpm!F37eE1p1lY#mZj^`(>8T`x*pYm$zRc)e478{!_QMZ8ORR?7+(35ke``AJ=oX2SCHPL?C&8D9v)Bc64L9k@1@GezBPTbD@ot>H@);Vl$iKR9r|t3!pa4% zS{RQJTpnN+YU}&u)(^=8q2_l9oqjs)HPCsNO{X8O?|N|UYSM`+4+M_*&bL*hb~C25 zX}@~EyltrF!Tg7&*Hhuj21EjBCAbq<$^ez2L%iqS; zUT=X-1k2T|Yl!Ez7O}Y!?mvjJA=j7LYc8U5gl?Ev)c_M;8P8wEmO0#Y?MGPdS8*i! z6PCu~y^j104CH5@$7082TfY>3lBpMKy_&pbYTmr#wGxM~8RwXM$^7PBY|)Vft~V<7 z)t~Go;OC-1e!?Dpx@&%t8Lw?eK@H-cH$+we{H!W=^RtAlcKI=*q2>E9Vhe~pL!F`p-?AK3pM z6+Gzwmw4$fG4YSY(0@n}{R!}2OZqRezvr2?EFS+T>378g&u`T9OFld3`!ZowS3&yM zy_SgniXu1uL)l7%e}eJKND#becp&``dg$N!S<>{kULpFQkp9_y-SpqbRzmtSeC>5E z>Ax(H{y84{dn8YPNa!zXPK5uaK5qKoXDcE72!4J1&CjI&uYvS8d*~nYX_ELyR52=r zp#O`7eyn%0^gh?3TgN||?pXhrz+OvU2fd>L>3zpT@6u0%-q`$=8UOx;^lg9DOJBoT zCayx?ZEVHm*APGY;Q0XQs|=*?YY%gbfMtt3X8&`oBdMeinVDG4%EEr7z-3Uj<&iDBGs5nY4KF zliPUCwVvp+k2QTU@vW9`E9z&^|HaWa_e?i_kFe#%FMcx^t%? zgq5hZ<>V<$p0Hd3@&TxMzSD>KH zIGfAcIp!`g`eWGdGk(r%1%J~5`8(UgUw6%)UfqGm%NW`k`&;q0@W=Vt61DYGGT8TJ zFo?U!B!wpPvWtZ=?C(s_Zu;M6D) zzWTC-^uKD;?}z{69{R_uOA>#?f5VA?;|rF4TY8gg(XHb@O}9tCNBYuR^cLv-GLYWa zJoGO8PeT2kJ&g2ipPvZdx>Mcw-pp1)d@FqEZ6Lkh*!248$G<)FrfYi5{WzH5z>}S9 zDBKhF6Vd(GrlF)ipY;3oUxGLKujW%sKBWJe$5y-j*Jxk={sH;J^b{2SMU$6 z-`DnBX8A1N$N7B#!7cp>YBvnm#$F1)P_D9kF zyzFAiWA;3+z86|_i@u+%>GtURa9{lyPkJkCdRx)-`j>rY$Hs4K*2d{O*Z-H1w7o%E z?UqRNCCd^Y%QF#;)MH%Hh*r;)l3TNODZ(~_5tP8#dGep|daT*bSs{dANu@>7!fQ2^ zF>AJuAZ=BVEMTd6fi67E+}Boj?Dl#vjbEk^S@E0~zu$V8R0@9IvE_}|`=gr5r$4L) zor|W~`1$#_(>?gzy(SJnE8kaz5+2n5%=OY&9z)*+e)Qcwk$FQQ(Oo~Xj`TekNZ&;s z`nIl4NZ&e?f~j=tuT-T2L8%ZuObvwi8yT?zW~4zTQH%E);AyOH#{;?+SWeTd4m z=i+>Ww(oqQuWn8v`_8oJl<~q|noj?C!rZ@!B6s6iO?rFV^!oYRDIPp${@ZQe3H+_5 zziNoc|Jg+Jmz`wdEc6dxE0KRnu%F9X(to{8zaQSSJa~V$O4AR#f9U%i{HUg-1Uoye;^;_qVq6xndAO zZF<_P4;H<}G4!6U>Gjv={{H!p@Y|qwi%oCC_;`9h_0YTKUrFk7M9sc{^lyJk=*RfO zqPyV)6KCV*T%$6`Ed`|E2w-8VB|d(&F}e zwxoVvj*04U!~#p;AW~Eb-@^}0b z0sJjEE{?y)aZ2;X+=-FGbcx9y_rCdK{CyD5-^o7w6`A~XwfOrq+smKjZ?>ak2lKzP zz5b?vAM9rR!?7lZ(*L~0R-*nV!F*EgzoBmjV&5JJ3W8}mHD2HTtm(D7d^O^&cKuDw z7M5~CORBM}(p3K06q$$vwo>9EH|*h5$HUwR7cHv&h0DtyKP}}-W4}yZD2-J1Tsg5h z@&Fns>62dLxnd-!PLM5xQlrzZ);17|B83Mau)R~E8u&ssQ(&Qbn#sTvRp~OH=V6*~kbCrAEuJFVsrBFAXhj)5%;Q$5v|Pz$2yf=+T?-Bs_6C zkAS?>^M~^hmF5miV@Cn;YHU$85i}Z_FKoR;zG_+tLJQa1L~AR7b5F+70C_h5c7^q? zEs6+#p=hn}#s0Gz;}H-}JJ{OVE#;dAweT=oOR#^|Ts#{4XK_&-AfC@wQ)Cufjgcm{ znj;MG0P)i}s5vE6q+cI(Aa00|Izf3M{s78d7$N|i^aY)x#%%!DxRChf1Dy~6E+)?S z$}tjeaE-VzmCixE^Sp!lo+GnU(ifEC`nv=di1WAV(+hw)?j^*p|I(e8fO}PaW(0pm z)KXkVt{i{jp=lJ)BGVRAVX6gu1nw)+!YKeMg(`Qzk$hqVk5DN$f&j?&=Nq)3w($r- z4Sx=TsuM0PSzU{rvIH>`Dvc4uMT}}%iK&PS>n}ly?YCMXFSJd`k;sLQYl+49EkZ_l z^=*N?CaKgz9eG_m3?Az^l>OASjGJ{@O3jwv@G20O0mvb+OpScR-pp(ZF85pp1IWS^ zh^C77^-qN~%8fIOYeJx*!04X=Ey;sqihxPJaZMV|=ARN9$y3GQc8MmP!)&8uc&SkiMWY(gU=IqH|>jI7;!c^W?ob zI6WNn<-LZ|by{*N2ra;UL z&Emt~yFNRm_m5-0r#<(cBkIBDS?W<%(@MEqdijXU?C~$2Z0kYF>Nq`k{b;e77(Ed1 zp$ENQhaSvODP40R@CMSIq(9t^Dwvv<3m$QdwOxNW*T*0BnhSAPK_=k#+H(92q&@zy zSfibcKU~yb`@?&#!;|pDdLE%j-#_!a{9ysGOz00^)u_TB3SS<7_}NnNhfg2u*jI=B z;X^3VscHFUh68cDKiol)i9hTwe$Y4}I<3XRS^Gm6SB`01E1z}H-t}iM+T~Qg_s^xy zn~u=&fH~^95^XKICxRm9+K!Ji9&moIibteRg;vu8p3qM`U=9pU?YSR3N&FHUg2$IiKTRwt^M?QU*Kt6Y<)J#V{+W(>42>$OOum5XE(*Jd$ zt22gB7Ujm(bS2netRFk>{PYDw_Df%I?*8E35y_O&NROzomJ&l3GNmkXvWh$dWK0h@ z{1W^fV-i&W5oZe2Nt6d3?>IkrANGUd0P(_9wGVFL^i)pNbbjLa^5}@vrvvo0li7;e z9uTb@^@d!F_j}LcJYLD}jef5%>bN?*o6jx5Azg4_%FUY^tm`6`)43(b57!U$pVQK(S$TKEOs9DH3B3F(6 z@`#j4-&XbP`EC8S`tR!Bv}PC)j!iX+UrrkUWxLK!P*Yx@i{`z_pQ_K?v!9p&OTl>7(hh>_<*sThOQ zr$r!8_Py+_$WBPTj9c(4iQn)mDk^SKeGpbbC&G4byNbUTg$q-))j#-XEVQNmqOH4H zHHv4cGnJ9ixLWA$O2c51AcKW6ykodY3O8n}KzpR!weqU&TA@-e7eb|opQ%riMrnP* zuM6sN{maJ>7YB3}poet%0;_KwT+>RKOW*3<5A=ihe)TG?Suy>p2m){UY!UQomU=qf z<6oAeY^SEB>;2TPY${A$gnP0=k0He*1Maob=ZQ)~<^#bb($0VPy9V<^GN1605q4tpe8sr9QNSX^b;TBw?4+gegh zE!k8C0XOI|5N?C_!EL4LTdf+!z_AFwO@&XHOW^=|E#?yS;MpR~JU9dDI^9YuZ=vdl zf)%N8xCN&-;50Nv>rb>fvfa9ks&o+_1M19Z3>Ls(>@5B8B4`}T{Y#fh&{Zu#R|y_L zxBw3|;|2qd0nwxJ!%DQPY)#=+YDz9%t&B5l=R<|5-I@h!Qx{(eec3Vgd)!sXyIy`2 z`U1Eg9xlF!uW{)MW$3FfSr7_d=8ne)_~;8|$G1HHis;Mu{TzMiaJ+CW3Ug{&7B>dP z3)c9_IE8A2Ks?pBH58q;ievy~02qe1$VUftqV_p}n zL9+Tr(+DttO2ugy_!T%9gK6I-waYS%lI_O$EkH4B4E`DLMvRi*sJ#FIC)vs7s+D(e zREo3kL7kqoyMR(?lym|4YW*xNG6=PTaCI31`zwo7({I1t)*Xjb*p67K`07ISUSBPz zXq|Qep@@i?-jfOfIja|W3-?UWbfiWbv@76scntIc>TcWuG0}Udm!J{`f6veQlp$I(U z&Ge@-(FZyh%S?yVv{Dp$$i%pDOOV{x9VOyITrY@v?Ooi-#PZ+{RMj<*aO$%F_-2XkIWlXa;ZV>(k=*}2Q`ihi3 zBGd@Pz(_==HmFRxgH{{Q(n9Zmah`vgW1L5#^QUnh$|I;afJbQCEi>Ybvoe|BUeLA)}4m#Jo+GR8VN{-4bZWB3bbyS^WrVZeU7YWZ94+Ewu{0+#iN2bC@a03g) z)N&k8O3SAi=Bi7zP;+2B+;Euvn$BRP!P5LkWDlI`jL0gHU7^q_cmxIIJc6p$2O%^D zYH1Pm^pH3KCY_&()|LdxZ=Nkbfy5)fne!pPNow?7j{L;G-hr~5nwIrZ`qx#E1LU+3 z2e5DLjqk{**^-mOAMmdqQ%)tRaIwaCZd#vf(0-7OD#}2s0DWFxKv@iLg2&~l-)=o3 zr3O2?w{@3~oQ&%d4Kc@?LT|Hi|J`i>xd;(^Z6zMdb6e6SZC^yMh-w7}Ae@KDg;edt zExc#j(2-D(^15YJ=S*s=>W8OrbiTFzO(XO9b7;Nfzn<5Af#)KDm$Mik1cSNO7zD{n*FD@ z9vb$gQbl!kQiGDCo+>aYLNA1?>JEkhh~G`e!I%<*L(oC+K{jJij{JC}g64z0!LNpR zQAdSp&z^Sb>!V9`s7`wOJOIsO7zef=yG=rMKGO2(7wc~ZXrJCB>z|N_3DUQyt#5}B z7LUI5mG&>NSuJ7Ka-I@sXKka zt*KGtI&C9`#!VPx8z&eS(s}06qJS0y55~kfv{=XkuoS4e`yESKI8e*V>28^yQTGsI zfE~3H(~wp!9wz+)o|3Ar*J6;M%9?L*XK8X&slJ0lW5!AOE~CP;DUsn?M5V|wGu^^o zy%aC8yp4MHB-^wm40lZHi$)QY+nk2Rn-k;}ekY*+z0S6$t9|V0vu7c%2i4Ol9(gTC z`3%OtQz$Rd6w97wKu^S;7>mMia$rl#_-7TiYVQ}SeLd9}!Z0`lv1CFcBlU38WtfD* z7)!lgji}bB1|8b<$$gN+hxeMM1XbOS$t(N-{d5_$7`J5O_qMD3G+#uPY346DaFp1H zF9@k+`f3Inu%|i@#`l91^`4e>Ce#B`%8oWi$O@E(;W2+*0GbdREE1>3Wg{GZa=4_e zHDB$KYe%&o42765_@ojQP7@E9ffuRppG0JQvSnNQ>bW4XEmhQZA^?>a&yd+9DEe&N ztcIc7r>5np$@maQU1Sysn=2ERn22K@3g|`<{50ZEWR5wlSRBd5lv>YamLZi!s-avQ zVHi=$nG%prDog#nQ9CC(s^^QnhCt7zrktulC(<^u6(+Lk8eEl0HNuo;;MML)H67?M zuLz{kOTrFv)%p`8fXTum)SQd)PQ2uC9znxHJVMfY{8NCdwvaj+Atz%tL-P#95`Hxh zHLXOgMeW{oVv3c0)BQ>9mTF9fR06k&xB~*c0ceFmNfm%%uRfk&5h)!QmLcQYD5{}8 zM^Q~pOV3F_{RF{o+7rYMAdtSZr-4p5b<)gy2%Wv-K#IxI;8R2!v)yyRR&2+o2qGL^ z<)}B0*K-~ZBW=Sc-peE2vTLfKP;Q}+i8nL^pQz#!- zXZLq@)JtncovHo~k}+5MJ!5dHkry=Dh29O5~ zBC7vCL82Lp+}vL{rCCTMQRD^ZE9NfuN6lK*8pIb;Sg;U zD+Ru-XpsXuA2gW2j z&h@38`4Oq!+iv=y(;GXM-Wg=$v zQ;dJ4rcXK*Ph-(fRKE@qNQ0EZbeR{?j!iQ0tc&<8I%3?YN>7F;@j!_8T9`Lpmx*g3RRsw`yo{HcBefu&dO=M; zv4{L1JIeeqo&Y^yO#-KjGf}!w4RV_WC_E-t%a?M6VxULIL-JJpv9{;Ee2C+D--wFo zi06H>Sj0^5Elc_6;t*xu`KaUD~6SNRNL|8-(%CM5@hizyfN+SQD5P!o8Vu^kG|P zw%``(%m9vbGK@aP^&Ik3aiRnE7Stz?1&DXiJ;D<&khuwpvG#jYe!z~lSwu-yK~k%6 zBBCbV1%W~VAl-5bbv}loxT}hHX+bd#hJQ+h!OIhpaV2U z>-0Rmm~SSi4ynIsIcJ$Ro=cSpsgv+9{2*IK9;RyvsjfT=_VDU5C{r#bR;n>`fFYTk zFNRVO7H~fpnp13QP8h#nxmYnCE>kForPS3CJ41|mVV!t74H*_Q@x&NJ-D^0?a!Y?v z7Czom7Wf3pN&AH9I~=J_6?wjL4CUEn0_C{@_d%Z9aDd;WJh$Ud(3fM&a}{sd%NQDp zUZ7)B?Zd)ggp(V%H%m4BjVMo^!p9hUKLyt;(@_vr8G(c4K>p~raC549rNME<-!RvJ z5d{QU2|)rhBArWsXmV=tiGp|*g%Z_0UA@?8SgkcBE0!Fs(;<-1ldY;w(8h0dadY+D z5j6iAJ`l73dPcap&=oQWDHP%5VZ68$j1`dp+{SpISOVP=ogSncFcX8zjK~Mk{M3q9snim$Zp0t<@S;g( z<CS{cR~V8%UP zGAAP1A2Yuupuy@UJc9AXELF1Ij@q<6jXH|*dgbrZt>RrqgC0fb0Yxj$Kp@$+J-S z@6Hih$%Ni!@Ejbp3@EfMWvDT@&Jj9a5{kM<6j|!*<3vy=n?wlKS3ns2>pMPMI>a}5=qP`;+G$6G_iicihmm;6Y&GQ zH7@=|XJ3r>S#V5 zciYJEbWszW)`3W_nm7w}06*PU+ViKL)(0u4MvI9aVroK!c^V=hIAlPnr0Y3h2J&L) z+G^kGME6;{KBazb{l9u{>-o#xYsW5w*;3yv*v~Ox2Z+V>a30I+-%^Vv10${56~t__ z9?RyT2dIXLo3fxopfDC6BYK%1H49|L_e(X2l{uWQ@5ljBqLWbUxfB;26NXGGL*0Ie0)G=qH?@k5fbCpxc@vVp6S4zH2IqfJ6wMu9~xLKXeb$ zGQD?U7)|-tiu?tzt04hMkdJj40OhLtfSp?%EkOM$4F&b94LBI)c)H6GRP15n{(p?8 z=hEe|N6x2L$xmst;t|?#9*;oqrP~F;j*X}1edqWRmpv`dCVpLSw&R@!334RfF+(53DaH_L zdya9uZCI-y1F+UF1f(Ly5GG>6hSXJM8$&XUbLmHQ4WxvEr3i41a%w#Bh1*oCYrzau zoeXtGHitnD^czl-7@IMPjwo`~J4Xr55h$k4ubR=0>2jE2oyS}7PH3t(=+WJBmNN8H zGJq+}Q({@_tNNSyQ@mNi9$V$Zpo5IU;u-YB1wU?;XN;;=9%`%nBS^qlU2o?a@$-C? zOU0u%(xO|I7t&_WKMx{vqqWO(lXu6!ik`d<_Vcp zCA!yU+2|G_O=F=udxD_LM_A|%a|Jf$kl!2Mtc{Ov9?%)@nD|EE#JgwSi}+@`8vTuJ zMOt2W97=huzlri{KrR8^Y!(mT9S10l)fv}Cs&N7)li%4u9-zJ{B*9NZXa(p-R^Y6K z=tyt+9KYxO-S|D{G4M@k-bL%m!4=U(bA(Zq#=Z%f8HN=_qU_n`Mp*It|klmw7EVHE6aTE@G`BD4S2z{0WgpXg}7&3Pgw2KS-YcXlWKFioa{@Mo?X*j>cz zSfZKxp(R47>Ns4FniCu@Juk1*yeg zkcq1he#U%Mp^Q6<;>H~%huA7|ct1x)YW^V}Q^p-v=8L*e8kV{s=%VbjF;3ddKBwwf z2y`y6_g^p3q{mFL>m~l)mAdfu4MB6$U3G*KF%E%bij50&_1NIz`jQgj$IL+Vr75&w zL>U+&=Cd;bBna5TT4<{AHb{#x2qd>c=V)?)q#$Kli<)&f!m9CNf+PlQzsE=$K0 z2Bu8(M%;;BcIT94Q9b0vgkdGB(!R@d$_w5=jDR<)S9t^#tUsY2Kdf4yZ2)W*wAUq5 zUZDFUVb89c&x4kNIQRIYG$IxiW1j*Q?6d72*k`R;@wH>0ee=tRvGR7}no@EAZ zYTti2g6L}wxVu?8y??jt6v-BgrlvwV%!^T$Y1CsHZ9T#SW{jsDq$A~Pk+dP4SMUfp z-@a9}ww*}%y{}AtwfIe(AD8igSy8vc;s6Ns!MzP_tWomS(q#N3gr$mSoud>Ptvi>QN*g&_(zd zb{+jMdjO0t={S+Ak%Sj4#|~L&&62AzZp$#PXZIg5hH`c>3#Lft5;kaj>m1`Ng*0$m zCiT$tn3WLYT$!&>X@3XZW&~5DQ!#G0SRrDTNHDB24ik7Xpay&z>w>HCWHSoSP}>f* zJt8$leu~TL1D=N&OHz%7n&I-1;+~K=r>R<#!*rB9p@(B>5q0_jwny9-`6R2;95Y@_ zm5;DYH6~j=VUrVin?0!DegA>fo3F36<3(3~Ooxu3-RbjI5%W&0zklg-;K~Yov;Sfh zzHx4b>E_CSG+dk&F|wz5?iL5$&yN>)!hk|XDPXda&Pnr`qh838=p4o1ltOq-ir^|y;mRCr zOlVjv>cIgq14Z3SVMQz+Js5PV7t(DZOhyTbC4~RoEJ7eiE+K3{Q+Gwb{MYto82{`1 z*8#+T)HNP`rv?Y=JYlD{Yb{5MI+lg*28pllVl^IeFl$ZK@#7sCT&6Q9303?g!pZqu zs&xwI8li3@4hSSS^f3Qy5zh5v*f!ES%FTA@FwEOEg|b1BJwyk}?fI zoxi`0@li+tSr|_q8?5N}eIDaaUP09k^1oMm@kMgY&{J(-CfAx`)Fs!Pbt_3T3XIVq zvvw&PejzMg#l5y9TKlW^s?$A z7z(v8|2>NMZh`CpD)TpR+h*>@@z=Bi(|7FmGl4;o%hHNk&f&)m*xBJ*tJkR-%^aZyu&uaFtloNYboGHVfgHg)D zDLK$SQ0?N{`cibrh;|2a-p#nM5^QDzF4BrWS-F=9h^XW_uWsy)lTdJ=9R@_~5YrIY z4986pt>CE!oOat<{Gv=tWiYPgqDdLkic)ocEDfha>OGW9MQgi5!+NgNlcstWjgLd@ zjWLKi3NtwPgXgOlsa$xps7=_UDHJuc{QQY%PNC|4pxlxZwWrT;b1vSU0~)kL{Otg| zSdZ)Lp%d_jpeL*jhT<@+kQvj|sIFjxDyvnvpPb?14Pd?y6ph3~8N!cVC|wgcv-_cu zIL&@2AMdNcgV|rIrjgNfSlV7?IHE7NiLG{*c5IHJej45*^DV-~|FBBQDcP}cZB-NcaYPk@dB^W~z zLnm_~h1U0HXgLsdCqrj0BhOLe&C7Ot)&3&NFT2PZ~g{LQk~r|J0+!=1>nW7*)a5yVm{hsKYp@PA&V0^+$Yvvg?PJq*6Hh z|J4yryX%Kfg3Sg+GX2QuZ7X_X|1LWW?JC_$)OmR>iXb^)E2 z(&w6ASOv`j=zDQm{OD(&?`qS}%U1vQ-(77+6`sXj3j+>3lO+x`A$EcC)FEZKnu((4 z3k?iGvE=bjJ-@YzWAt!*s{AzctkgimmsoQO=j`W5xc5-A{+Sg4cpht@$1SgiWh?~^ z@XB21M&qqLo4UfD6$$F}_l3k8~6J)Odzsa!_9->-wugt1K=C0_)vb2GM3;MGH zy9|q7t1Ki2naS7YfDk@5%p+bkN(gmN*dfaz_=yTxSE-|44nr@Rva~YBgnTdyka*N!gXs_S&uE%o0TBd97gWs zD4J0Oq~s0%kPp~b3?~EqC1-5BxAH(P!>IsU?B%nIqd^>JuP#!Vk6%c?QoAC<8#Sy3_Hm09+3J;OcB3U5F zJ`(T5kX1d@*{gKH5B>feeZmW>$#QBv{B$ zKkRL$H9|9$V zs{BQk^wPse35BfBU1=iUYZu2_97*~ZlFrmmNLnOA-`3CboyvV3fGtk5J-U&0QOKu ze2OaUB7TD1Oa?(V-I6>SUO{E!I!h|DAs!j#i?+)+N^RRS2}kttULt0l{GuW8(dtc} zbrNAY?iK3H&ADBX9SvI!iJDXZsj@7i2r@#mP#v^8oWlAF?SH<^aYS|QmBIe!l6PGG zN8~lGZ5QOVd^qLBrO8HyAT@g$$A}nPUrq_xyAIG&1gmirx{fP2>=C08xfZB$tqPZ#}}eT_XRX9qMlq)c0?&TqVSc0k3+fLW>X>A%E}J(LAH^)X|dk zPSVwgfH41!s|zvDMFDbto))Wv5$SU%DZD2Sjw1&k0Q+3^^Dkk2H@cZs2+Jt6Rvtk@ zGmq$IB7YSSJJ!u~U+q|qJHOoPH{y54#k8NfBvo%&0Q<>-DJ{bpc0Er1Z3gejh#KD# ztDzCDB`iu6PQ+c1P1IzQSyg@o=%pTm_Nh$13}E-dwI{Y?)6VIN&Z3pEC`z>$rEm_f zvZ58%XIh!NTr5*XtQ+zr2^uv^!!Rf?aW7aH0@b9+_D?#9(;13m zcFzNNi{+I%Jp*as`BbMj|6+;-s@Mw{J>4fyL4P=sP?ofOp-ZLy0DcI<#CbfNL8qqHL-(Rm|8 z=f#O+9wL8>6G`RY8cLUl2)q_i&fA{x0G0N{S&ke%Ukni%GzEHMkLOtOQ`q(#|730ksNKmU z=(wFn(DuK}fEGs@X;=@NDJa@rgmd!XUc>hNN@%v8|M;1BjT+K1|B$|*gsJ&Gr(ih) zddIGSXehNB1Je^+s(8i-&}Djv>zSn(YIz8vKt#2tQ2lmylhB51BP_>2eO6h!^o6c$ zK_Mk96@|=Dzx@V)8Mq|$3!;nx3)8Oo(e?{{kz29+!sF$lbP4^!ODlk$SzomNC*pV9 zVB)t5_}bP_9mPntA+iyF_}5PlU^NNnv`|2uYH*{fnEL5+h@>`mS)1vMbXh1Dvy z9OfRlzsA|g)k&4nHw4I?jW^S(bQI!p^3)2AVGeE+mkEezE)b23Dw$1rLO&(XPU$ha zU?g7{b=4Um!|#v{~_!|_%)kaKy2 z1L?;j9LO`5h)C!tERl31&zkX{fIRCITV4W&Cm(qC7|F8^f76kdRexc|(OlVQmSSLm zA9QfM`t$!$K+l#UIJ_y<@#)x9#ke)C_Kb|GkkoW>$TY2pv`OFsM@>wnvwVP)71Vv$ z1059ul2&9FOuH+Fg>lwG&DtsQFwNCTZ?A({L&4U~1M{kcD)d#bFd*C+8`~GvC@sg<%T2V~ZklnFL@wRNFH#}>h znVn-#ZY&}zm=I*_B$|$C5e84dLF}Y_7{E8(*i?>H*%!;Kt;F)UCsmF9N!tw?uIZu* znj4Fj&()VR?7oF&#k@W1xoB2-o;^2n)q-zD4J1)_C-Ny&gWGw88r;ew)Zo8mF={Y2 zsRh!XEOS{L;MMWbj_-))z!LWF5)fF?J$)ql_h#Al8U4HLm4gtIBlz@56Ja*SIWm)D zT#Nxgas99oQue^!pzIu&7Hq6gOe-V3j{EC~aw$uBKJO1W2V(2HRXAhdr$hu@foWNi4?-H!5RdY2ST%@M z7hI%G^z?mzK+KNN>618=(d*Qu=Qk}%AlYa^vbrDaNxAJwuG{uFkJneYuSaVug8HL> z+V)0}0Ygmu&^8+ORz`b!bBSqh5-)$fh5FEI0QF%5olBzpt&>M&L?d+8zD0Uik=W#RDli%}NW#nioQ`AZ0-i7m!B^RFhq;WZpDTU?~kqq2M zhmmM4(VaTQz8 zNp%gsvsELECr5oe*nvI0lfS3?daJ;36p3+UqW z_Bl|4-kC>${tMDA1pTiU#DV_1>$YcTVBB@vr)bX=Q@1Vn!Oae=Kpb7GGG0AV&v*1f zJrLr*e(m}z?|c(nQV5fCELLf`c0LRgFR56izI-d&5lc%v6Ztgs#I!kLr-yI8!9E?Ar!HI4(swaeML zW*fukog>D;pT!I$`^q7@S$?NJ#XJSUpuQc5^a-7=nRkWDfh%T#67J7Yo3_Z+tZ0Ky zpGcp7|Fq$T!yCr5lqL0#X6&dJ)}1`Fm8$uSy12=^v`$^lLud{JTjfQU8DIg@rkw+@ts zmztUn*W18E32u`DMR=Jqt=N)RQ6s)F;arBFGUJyYyU-WC3Fl-gv5a=zf5pSdKcG?uSqKoi@Bus|~&(n6@r%9mwsvQYXfr2$S$9J4V2tMAfpF zPeegZDT<#8)h3kJ;QNa;(SaGU)5YUQhwtsR4 z&BQTHaK!&6j{J)_o(mj#t#;!zZxcuSEjaQzal}z@#BuCdemFYgTMwS4uK}+|9lX4F zR`U9D&UNfx=)$w;R1cnG_7K{E=LIw{51wN#1D==p;#r1LEqwp$4Ea8j)Uy!Sgs2jA!aoX{UMeoA~d^@_u{!o+uEblN7D{#Jl42j8FQ zAAa6jrPnd0hmNaaUN6NYKfNtWAUP?^NJ0BKoXVi0!x0QvLwl?Y!}ejzNGGB&d{PYWsol!Tppfc| zFq6ck z>}KiK=+bIi%Uje5^PC9ikL_oYv4K2~Jk4)?<{N~MJY9RX$rC!Lng6F#2%h~+#{XBs zoMiSh`SwH2@|(zK00#9Mk6`_ne!_Y?`SBjl#f?v``2us2AklsfQ)%{~KJSN{A z{#n}_a=qqi&9n^pt@WDMA}c2{CI3jFATYDnYtAI&c(k3eMgW*#L&NPKXvSBee1wd* z@(9Lrxq(x=69cEuh0JBWreFTo-1gGYvjfmwYxhgUvH5257aCmZOqNs|`=|pyA{c)? z6&g?7EJ3Kt&(0ZNTOiO+ON5%Gu0o#80^vcO6UxT6i6x9*rKSw`sv9?o8pKw7m|5Q} zbrG(1ux@7AdWnf8)zOFy3!qmGJOaNu9)aJMK7yZ>{7)|H`}MQbBNNXCT4<8r2mAB` zVs`Q=PI9B&`u-h+lLIN#l!0J~q)>G&a^O5~n;zdf)3{RKANfpFE1CNK>F;aRx)IqB zLUT2bfaaaE1e%V1FL4F^Yoc`%FWK{X!j~t1y7VH98yeJnvnX@N(#3jymlK*;?opy#`9iwQ|_}E?>FX zp!#Qp~o;skOVO}2BD@nmz0Xo=1-axHZkA0$t$JDy}jzx(+ zpxr+OBUQYA?9&kEVBHHuYt!eLV?%&m$YtkM;^Wl~$WT~`Cw9e5U*+n_4{mSIgaB!= zK7+~FmD?Y8HoFW^r(RnpCXmA}{vIS*NJKr4c-8l3>V-y^93}hzP>-#i1K-nQV4xH0 zqUX`t(E9;$ZPBAa^qazrN3LHFfm~;(`A;R-k9YZdlyBD_$<9CV3oR~Z#F<-st|d$u z&8a8kpUj*GZ3kVkH3_9Y#`DbNNZMmuAS( zFzd}&E28VoU=Ib3&CKOJhd`aO>xW^nUB)iGnlGA6Yx@5!O(oBFNQIxXO)lfsTxmJ`;j;($#p}StNBhQo*vpDG6_fB z^~y4ps3z)5x!T%tqA`VJyu~gdWA2FGLZ&_H0#&BRLTcVScG9R8i5Dwr^mTzCAEw2; zy;X9;Qb@Lxe+LwjeKtETo)G+Zyi5EC=6d`UK+lCJ=&#^oiotG%UHL=n1JPBHQ0-eq z1aglfWri*f!1FA?XBBUj`X#UW=yX`$<^ zERz{LJyhn*U$#1q*Kh)ID8Q5HRLt2`Jb|l~V!vXDW$vnCt)tKdziNeM{RtI1heybN zYA?WQR+d$L2PjDrSR2j1V`lTlV$#NTIBLq{woZ3^edFKXA@*;d;B>LpB#kxS>U=L3 zYa9V`kR6vzrM)!>jH+yucw#7uh*#$9(ClU^?!}%|M9l} z(fffw>4W!2;C`TpfUyxMv@ncqL8C8?)lQxIZ*Bxak74Dr_s0@=$+-ZA{$B%q{tQo` z5<{6QV9TWQv6F%7+k2(ZOXVfFoc@_@KWxDWOD9KS{Tal0ZE;k7yj z5WA)E6sunUwkHVEeumpIKV*A@-UNx>*Xnp-2XxrF;Bw+D&d2m@!xxC3SWQHKJdTLU z{Z>T*tpMBBQ8wocveYbnJ|pU$Ghkh+L`@Wgimr>n zIBISLQU%ATZ_7_qmd(mmR1~Oh-nOw^hFHkLGIFXI0pT#Q#J4BWaD5Lz`bYI~ek_;! znq0!Cx>$VgU4Ir|)8~U&e3mG1vI;>3G}X%@%Tq!W00KAY3a8<9nFI^wWq7Yr9Tq?N zQM0%?%S?c%Yaem-Ie%>YK6n+CYSuA+z~KK5a9jRcT2UT=&{B#4Q|>%iYGU9;j<3n5&Zr=FByI(%`o|m9k1&V zy1M^gWaR6k5id9B(p!7Bic?tdv+iL#B$a{9fAFyo87E ziVLk(b*PHc@d#W3g)J40k8tU?3C_Ep$CxtpK}`HvU<6~%M4(|t%ya<^G_uqZnhzIm z!XfhqFc2%yNL0G@>vHJ(LMA?B$9M-NwW1e5vjN7#7!!YZ)GSa zdP-#VeqzPo0DxvQ23G$)*+KdcogE2-V_;_WY^mzIe+!6C8B|OKb(UJKuR9>OUvG2f zn-0k7%+&zoE<6I{HdK-jzgt(-rUU6jdxgvG=jITZ@TFu2k$453t?xd@s=^4_=?+B3El}J<}7u&zTOeM-)?d6 zp2^w|;C(-j!250t9bwxh3USSWAlYtaV) z5D^u)WRNAc&Ouk!@*sWv<*g3u>!>9TtY>c4u%5~zU_FsXz&h=i-vR4g_r&XK1O02< z{0e%XT(dX}9Zw!yz!cnvj-G?>Y%8^ig@K4U7!#{2P)bzO@=_LhJ#vuUEdngH(}Xi7(qeLsr62J-+iG!;Ape{|D%rLQ+&6DkHnub72al;X+@*4`$wONlAf9t{$s5j!dgp`8@$D-p`@#NC z2TO!Xr3S7(bJ8%0*|t>T_&t*9TfA|UZf%-UG+O-F*n2fmw@0-QQg zKX_DgTrWck_V?M+Ozf+d9hhGNn z=s142zU<(40W&nfZvcuMfP7*FEcTv(^XHL7W+p{s?st0;H$k`z#OjgBK%{ub!A} zjvuuAn?(Nm+w*0OvT;5bS_>YK<&q$S-{Q6siw&}e3JM>tNsAiKL1xB*@B!ABWjU1) zg1eCqj!3P}oz`@=%%+@5#rVVPOmeu%zQ7{7;5qV_fi#(5{H$ zfMt}b%TX#7o%UK>h2fvi_ZKN)e{o$7;H zd(<|S>pgTK{a~*9z%Pn$cZu5c0%6YI7clFoOF)P%1twgQG8W&jZa{GrPS`VdZ&U4k zmSgk)w03RQ zCvEiuSOJv1Fb$WN55Ou6vD4J(06jMeAO6N%07?M?)YG5qhMA_2x}fbl5A`~e+QI4~&PghTqI?sWE8V`{voy>th@FSQ99|BFU~zAPkC zVy(Z51vu;V?g!AcpBJ_E> zO09A9c^D?&bDpQT#;0O?;ns<^`XbUZ%(M=BR8u8G(Zvx+NfooG3p%jnPSy=_&4~CB zocRc6I5lHd+NT-~`rGpe*Wk6=E-a~AHugwZgJsF-lQ=tHyJceiHk1Xt5rRUZ4jwn; zEX^aJ#gQ{;J2>{iF%QT7I5IUq0LOx>@W-F9f(t~|gT->Z9SWwa{JDwk8PJL}mW0 zYYgsNsm35``SIu%_okslC(w`UM+%?Te6LfV4N9t@UgP0_!{Ci|*>^lg0j=MQKHOTC zXVqmJr$}+&UeAfqO7fh_z7C7X5oX8i;ga&E_5iT>V!}XM-tdxWyfXt4yobyAbHd^R zjzQiC`Y%bJL-99XS#zKSiRG65`tRXl+~z{SncolQf3EPqX8`||S`H5XSn3_ef2$Aw zFLsRoXHEW*7qa=s-@^X^N%8-W-@*SJ;Xf3>|6yMFWA$|$|H!k@m&eHeg^uz6jLARi zTrBxB=|lNvB*lOA@8JJg;eU?+{(E})$Ex!<{@?K7e}2dKf7;|<7r|)#XS#*_rzge# z-+u@H&j|mW1NcAB%Rd%s$MKK!PMrLo?->72nf$-&l0W_y{`XIc|661Dmw4f+r^(-r zPS*Iq9t|?LiEc=j*CAZ^0Bt6W*Wr*piTg3(E6#9~1#s@U@+D_@%y9aGfoajjBZ!Fh z@=SlBOXm*6=Dz5vDIM`brH+Oa@(#r1_1)cZV3MfRSJM~y{*1^aMHA#?ELB97{!O?rDstaHFqimh6yk|^uykl6qOvOnAxPasbC zPCkjY5D67)8@_CA<`g?n!2WOy8>FUgDi+?t6DC}raI;)Psuosd`3M%`Mk0_AMv(CkXH5N zAF-dxK>Mk}V-vOT{pgq|0Dd41KcI2IRYFRdiq(7==?tP8qjkK{h|*FTUw9o)h5wQ? ztmWG1oDe_bih5E%!f|ih$X>fQR~{tDy@eiyc=TTAAHMAjgU(8g6HiRZ@cC7)-h<-= z@lT^36aD}7{|mmiQ127sTaApFh41`DzWCNZ9gOeQydI420R4zRfbZ;?HomtYL1PUw zKiMl7-*0d7!?(+$;{SgkzBAYZ+w0Q`>zCV|bpx(I6EUEA1{ zweyLY^pq!Ro31cN6?8VeajTT~+oFPs&V_MpeVrBciUk|YP$OLDHMi{7m*7DKSbZU$ z;O%X1VnYP;!nnOjv(5}v}w(ho(t&u{6TU+SJ;Y@c78%8EDfF#}@;SAuCDf_eD~%f|U> zFnfexUevr1Ha?}^Ky19Px&!T!hQtuF*KwA4zH)44MAUw*%>+JW>l2Ekr7f>IHW16u zIjuA58IDP{9e7zPdszLJ`g&|thUrgA&jX<($eJtNVDeUp+8V`ux39@G9f$WdX|r>N zG7;pxZ&!HG%tzJ4j25MkRr?Y5@9`#G>GqfU_yPG#+l}&<#RB*HV|C7EJo_aF$@JG0 zm;TDrcy>GcA3qXAr)}+jtk=a|^xx}c#F`TQO&09?N02JUf*kavy3E8j_CMAw5~R#m zOmAcVWBZiCWP*3c_dmWb8K6EPFX0EMlBOm=nNiFUJLe*%Ytr^V&iL$4`sazs{@DpC zC7*jrOVdARUXj*6x4mEby6zY0OG74XW;PAHm&E2Im8Zx@Od^1M{B>%4EAYO#PLWJ$ zu)TLO@vT61@g8TV*HcZA5=1lxHi2%o0v#WvNCvvTTq!2d^`<4fxjj z*>rvPEcf0opKQjY3NVP?*oz`yq4(>xJb|(#o>F9Zlg;@*)JI|LU&fIOy+IR=JyqhE zdHmcsb7ZwS7d7YTBosh~$f#_^z89T}WAo|=u+bQ=8u2r4$!$RltkDEi*AVmgc{YHI zrZqN8V5ky>3f<81I+?e6kvGd6h&hc{vY@`4>*fW0J--l|#57K$c=Y4L211)$Sh5k_ zSsqaOo5ynAqz~WJeU9vZzG58Egl(=H(eD=`dlsbyKG|O>9Rbd#Y6(y4|t8*X{VT+fEv6Lb&HIcTN}uUHPBU?aRvu;EpH;fL41LM7o&AEsTENyk4?&12|FPRZTAwm`_-i;y5Hel+v;_Xz2d7?1IuL))m@81vdw?1PZ z!aRN(n3Hv%!|auYxoZgX878Mb=6gzXz~@4>&Mi-zV(==>C@7cp&~L0;KEgeQE@<8O zB635v>(nCi>!ul3EdsxYkx*6kFcJhB35C1W-u${U__Tmqc)={?n{FJG^Y65A(5Xp3 zUAB#J&=)!Q>3HwSOM?D&>-7zW_6nah^kD^PaS&QaDR1)^HoQB>%FDm{p@?s_auWq_ zt1PAoR~!C7Mj9EyZ(Ei&AsLgPJ1x_wM$%|;)ff(j`QE3f4?|d5@_;WVDE!N z_P+O~fblL&TDP|M1IIO*>w9juTwkG#4O+iMEnL6*OJlhHL4N1lA%2^$4){GBb^HE(@Wz1OUQcX`-}d)3n%~D0mfxGFS$?lo3%@IVZVbO( z-~SVS-@je_9_R)9P6+Aum|p{aFC`(O=p7^~%M^`E@3#J)-0?@@+ZBW=DiXXE!xg|^ z9%UI$Fo>0chpC0(A2u|G;f)t6>t*Ik(l4D-{8>AlYFO3YPYJQtX;o3mqI?e%&dkfO z#alV^DZd0f4}1*fdT9P9US$QYAlo~AY@^wJEpFMq=M~HL?P_8B*Pj~0b_Q(!FYNh8 zs+xw*>-cS;-^C&Qp7V3S>xf4=-dewX?`kxoAKqpeeNIUY^!u1v7~P{$jJCKSMZXOz zRjO~$f14P7yL}VzyC%f%MH>Qs$1#!J2EPNwG@9RUVwT@ojQ+&$%WC1b^^c8FY}@ny zFZgX9mwx}YGT=97c`zOs_*1~|6HGm~!S9ee8_n-8BQ3x0Ot$>Kp%#9RT;CXekMHw; z!S8{T4h@}m)qethi$eU?{uuB(m4wDN_#HjE(fsc0`2GAP%kPJ3;rFC|oHi0t?wj1+(zbihbmh-NzTLrG+>jUOrRX(Dj@B1b0 z;G*4y$yN9(Q5xZ2D{ms^K=M<$Q%(FyFmCtzek+FOX|iR?EM9sM8t4_CR*OqKtQL{& zuHBa0E=+45HRAJ2%e3v1o!e3 z8K=Wt1zb>l-Kja0(sp!$;#^nwaDvgwaDwUHG#Zdd*n~#^;K_QUb~Kvyn224 zzn0gYA4*>T+)7@DvXtVF^3T)6xgmKSnP^yE9kIO~l-JF5fxNoEVC8j&TIAJ9E%JK$ z`#@f|Kl~^1da;);uaAdGUTwelU(0L72a?y&t>pFVnm}HME9ugZytc#}mRECZZwKYo zwKkB~LC;%x?XMPj?WGoZ-SAx?uL~yriM)pP^yT$Lo#eIg^Z&KHo?j|?-L;jx7JMJb z>vz%u4a)1C+ZvYFSEF`VUI*M7$m=K7UlYH+Q;WR5R*SsOSRKf#-Go1pSGOL%ysoR2 zycRD1U(4&}_a(3AwvyL9-v#n|i?l+6@_HcFu)JQx_IA*|)(#2eHJ2oZXWv*lbEa*js&y!1%8G&Muu2t zn&^z59j@lbrLl$dVtq9aA@%FcS=2gXs8$%-WRLiq$0s7Q_&& zf=A9-wUgM2bBUJoWwAHBoAj5-G?vE}dUu=;qOBV%G057~jB;ki9`+R&EoBU-n_aWp zuwS!>y$6`;rcG-0QTW7gh6`TXo*D@cCp z-qf7_wHdsXAbz~Xf8A2=j>VccGv#lw^fYGzmS)0WV_3?rJDSHM-hL(*$+CYln=Y?R z)E+e1ta(*2ck1s}!bqnt!HOZFcOtnGR;ce;P|Y9Leo=@z?_v1U-w+y)=+lMVAMxKl zTsj<6t~Lu@mDrswc^ABk&2dhHJ+2kX9zPq&eJV&tayQ>k!j)@MARu150YL&=>nVDU z64<|zzyQu$OY0~oi(&B-pjKDm_vp{9E~9LA(6Fub(P6 z-7-;I#o&DUoZXEZ^8& zoy|1(z53NxY_6}jf20{&twmOoD-tqj^4iS55`d@>Ib8un}nn=QGAYscMI4tCFtR=fRQM<`{Ngqzi&$-S*)wnN> z>#$IjuwNGJm#A&O(wys`sLgo6991W3_qIm^614}~qZ&RZxWrWB3`*3#W~*_k619c) zYH$1xI?Zy*qYt82=)#nX;jUb3LFlB^yKy5IIIw?5Vv9IielHv;!j;mNdA+w7n<$7k zjT;Z_eTnG-%7?vqa~{vjZ}OwR$apOUh5L3c9a&l5;oWO~#x3&E1h5ia#G7=#aix4t zXj=kvZZO4BalQE_7s5U_*BRT@PrV7_!IA69RHkrgm9;fGd-#0m3#Yza5Eilp~KA= z?pYbN*JtI#JLbl_wd9k+a!cvVg^giD4QUc}f3YL+Hy3e@m1bDj&U3;U1gnri|&V_`&H|XYXn4NkLXimxh z2q9-Xcu*KNKMnRtslzc`5rWMK!9MC{r;C+Zf#LbIj^QEGwuU{#!d8W0UtEyNZTk@H zhhqb7WBmg;AL(FwIM}lS*wM3rjSrdWzGl7j zU0qL=V(lDdUJAIOr~`dR_OL5{XBpUTM(*8u4&6|C;?J8^NcU4~lar1xLKjZt+ zUZR{axgV`-{QBJ|DAr;A_uh{6w_YVRO^I6bl_e1V-retSKS=LyUvd3yn{M>CVt*lh zl*ak|>z4h0)9bp58(aV7`rqid2KwJW)@`@{{p6R_{`Zp$ z{%8Gf;oZh~Q~KY{b2%646b9df6VPF(|INEIwNqHqFL2x%H+#OH@uZw*tQ}XDa-7ot zZoYx%r}e)hg(>%RVKEa-^Ec-3>}W7T{coQTW`@JecbIv?Y@q+G6K-1no0En+dT@YS z1THir``?up1-y=QGhdBg#Osq9$NYK!yR+btA&*SL(<99p_g$&B3lClxw zFDP~6kS7q9;zQE=-#sjHO8{R6aLddgj50I}4A@AdmPjbk|hLE@2|K2qS6t+_} zJi38in>6Hyq!rgMoEk#j__u)P`&i@`&-4Ced7eS*cZA#Me_L7Dl>YZgTe6h2@B9$# z;zYpkkPvLt!B#lfvJmVx`rpT{Gu)>1zwOgtUz9E!w>?6zyMR7ToR6`{^uOmi>~3mZ|NF-6hW2Ft`||6y z|2V|9i6Oe}|~gRarXy@3Qp%ckg8X+fmc6wEnm3 zd(;2!(Q#Y-Z`&)?|6aFf$NFD4-+k+4E1Iv*@cZ8e=erM`9-i;Ms2`;Dyy3)_Qf&X< z&UdHW(LjG2r>qtWFID8#7-Jjr-Tu7jKqyJhcl-DHpY^x1wOC?1f#iI5)C|srI)SWf zF?!eEPKu>=0)5X9+$ExUE@7#FfvG}q)DBR$>TgF4LjU+{+~0)$5-^4D z&v)1K2{1=%z6s_u#tp)pWXBKNobToeH?6;&@MbxW&T# z^ZxektGOkuzdca!AyH4P;c-sXrwKmP-~RH~fbDxV+l1{oV=er2T0bUkd%oL3=xP1! zBhxt-68gcQ`_Xve2+-Vo_r?%%8;9J*A)gXL-gbZcz*Po0rN2Ea4f!dl#`Obdg^-(s zkRM}~DW2cC%kumNtA|#9OFk4EZ|}{e%34q#o4TRS}fD zW&bn^Xw3H%Pro=%am+h#wAJH&YBA-Zi%m#PZt{ES_BQ#|1~`e@{t|LS-&1UUu;GuS zg5fLeed{Z~M#!VQ;^LrQkrz~%*fU6Chi?u@a7>^{jExSFq}b0$C)rn(=C#c_H8VPv zV{LG+rYxG9ToD|sTTjdIS{=K8#?Xc5zFw5Epe%Ze?#XFC``5WmIk+)<*g*YkL;Kma z|JfAFY8tC(8mXO~+2NC`e`+#!)in1kwrq_{zoSp}|&UKGo<{jfIA{~3GG zwfl#nR8`k-f86GCvgm4ZfYZZV2@i`aqL(p?cf>_`>Wj=4`t=%sxYC>r9E-N^b&drb zIPlJXi-*@mC1^hd^-pc<#^0>97*$#IpfPEa_cr-|p6uq5g~+pZZPVJhO;_K<+KRtE zgqT-97W&)X$4w)2l66a|A)|I~WcB5o@U|SA=AWt$8oDNf&75kpqAdReN6!N7ZMjGe zdDbjy#70GD9|)aw(M4*;Miux$S>%@9nlE zyY2=@*lXGqTGah^GH*3zC_W2U7>jnajKz>+Ik+W)^OgVl|5j-Z7V9H#NNYWCx4b?mxZPCmGu}3pc0A zsAXR_8-pz~@eY~a*FEU{PSNBRqrNmwODw#Q7T(RfJ%mi}NXJIq@gW?P;|hEnR%dI|_1 z>Mr$_Jn3AA+C-=-AJ(tA=f!RTr#&3%O%C-Mwfa32thTvxy_t^E0|~!>sqxGz^E~wY zx6t!;cF#M~J?{{;VD5poR`Ut+r2m<2D7jDCqr`StV7ltrqpWGaH8X~pvQOG1^;sZ3 zw0!>zKRIlZn4|G8`HvqSnnN)kZ+(_iE<^2|aC9>I!&l4#k`4`htQ@;w<3;b73-XM9o5lDU zS{nEU+Tr0o<=g&P`AzN9;*U@N*b7Df%4s`H{|7$(OIeig>EC7h^bb7W(tqYiOaJ8g zjiG;5VFUCpqgZC>yy%Y8U-*SFnTWSni2lyZQnw@j$$c#SaYmAo|Au*up?}L!4bY!! z=Hov0f6V-V z{sl}Pw?qFij{atj{(*BFBmbM)H6Z`7s+gL$^5q?-f1gRtf0xb+=-*}g^bb7G+5a#r z|H*S2L;tKJ8=!v~RZrOej?;gXPyb#a`a3g`-H!YxpX=AOE&azdivE)tqQB}qWB-$PnEt*#{bN|L@abQ0 z)pqGW#?jx*(LeC@#>oGsBN~wZSc-wL|Ce@{{(t!NFJ|2t0q1mAx43en%0+4y$sXYx7D{*~X+_{Z*yv>o|xIkW-#a}E9dp5I~lzvj!o z`^-T8!>hMT|Ay|){>fd4{$m zf8g}S*w0OeG$8-6ROb-?pWR{lKl0_jl;sDX{#~|D|G;j}{#6wq`=8br`e#KOpnn-< zHN^iNr~lEX-S};<5dEDm->&>8S33K@(bB(RYGdf%a&QCm=NkI^J+s5||G}4kca}kX z`41;~u^s!_aJIAm8!Y|DG>ZO{8lu07QYXg$Pwz1O|Mlq~!>Wc)|APM8rT-X5e=|q_ zK<#F<{rT@f4ak3NrLq5~c9{NsUi8QREK>ON@3MXR2X=M#f4!CeWVTS+KK-)}Y=Hh{ zXB+$9ar!+!{_GW^zcZf1vg@ z+P?j_X+ZvC&ocJ^_zu&b@6*3@NnG)}^ZYIxMNEY1er3900!IO`ekNv{ZjHogem*lz3>L>mk)V^ z{*ugK+xL&gQ71KY-l~VCKckSkXeoMO4X-x~O=TR$-h-*)q!wFAYn`&J}C~v}$n9 zIL?f+JJsN75-ahtcg*kdAekX zzKoBvSjxlY3V>vKuh=^zku!zIow^R3_WU*X2&ZSu#Hi>HuwK=BiCoEi%^c{>L!--l z@#nQ1i(%Bhhy{ozam>PhVyxXE$@r~U%j92guY@|{L~XabeslL`8Y)MbZ#(y3WM?zhV87Ur(x*QSu8zB3*1+TEvx(8WpQOi;%{Zw%BLo}%iykGyjC9L_lVl|1G3 zHPI^XyMO5!pNF2|j9YR?K)VOOMw7;3u6v4=R4zT#mzLl*jur~_m25ArVT| z`8q$)9vAEQQhQHt-Sby_Y^?Nbj%A%)bPm<(WzO-ubqcxmyCl4z={Egkx!!H|tKD~t zTnIAzgO-S-s*5pX7j*i!LB)EnQf8$$N2{Yb#=M-aDtSUCC#BT-F%yuV^k`Op`@@#% zY$LISQh)42@9oo#SM}zCv>FjVz3${3^#SIb>82yz2WL7j=K6IPTAAn`FpSY0dZ1d)b3$YnIkF4X zqQW}+TRYyNv*elTMhv?n@3e(!8M+rtub!e9BKYV|$5l$F$P z+WNT-(X5|8`i_0Qd0O5sdTzulZ`t4gBDo@R~i+6A~=_9drj8SkuWj8^&{ zh3b%I$LgZr^KerSHL@FQAxFCUl{De`wQBJeo zMmf3qfeWDYl>=jDIFauy@62V@%46z&snn=w98?*y0`{x+4t*&!bjKsfJ6d|S;26iw7$rzRP zRad+%z_>~c2pu`+MNYXPyo%n30j@EeEUt*^is@$jqo9mgj6aD^6Li^w8^2skLc|}x zy!j|d46=~EKV~T#I$s77>JM!l)eolLDi7;bomC}mvcBpB{s@Yzbc;73NBhh5VZX!* zZ$3psL+9m=Pn}O;|9xSwH!|^!F1;Q@^YPksMtxrWW5`BMhWL)@+3=JK|F1@r6H4-o zuMQ%6q8RbzBSxg#Nr``#og9sa>PaGo{;F|1Ouy#iKK-YJ=pWc)yYzo~qNRV@C6@lY zM$v!xHt8=rN%9|i&kobCd`|5;ZP|stsW9Hje{$7!>CbcYZzB63`S*ReG4j8B&uz)S zu0-@NyL*S}S3b?B|Mf=#`Zq9lY$&DX?5FPuR{q6~{s|KsL;urzgy}cq`-LZp_!ba9 zbdBaRc$+EoWVaFy&Gd(!GZ}T4bBh_@XX1kz-xD*5S^e;3BA{j|fX!avH)db9Pg~Pon95*A^+UKNJgV=_ zsJ@PK!Ki*?F#(D(B@go6CRIY5Gv8o&onsl!RJFwQHWLh^6$)xQxtC(}o9l*~QN84r z9M%7{lScKDwvA#_4&{*jacUS$A(8lS6_iSXLBHVLG79YBst0xhU8-WMVczu{@S|aA zzSoQU61D9Rusa+25bN+{ifpCYdc$n;)+kiiR=R`sAIMt(s{k5DLieV}6}Bl^u7Edd3tevf+pSr3%KU4sObM zri{}}I}(u(C3_Hy5>-tjHW{J52_a|*%M_h!DnyKU6{i^UGTYxsK+A_atAw4t9jzH; zT2_pmN&VCEgE3nlDh0%P-QQ>t#b8<T{cZat zTrY^twSzcl>r(_ysCGdpnt(}v_Hmb^>$Hj~PtcuZH#P#WRIG!@mn z7LHZltM7N@Cq^&H;taZok6zAEe8`vjd(Lj}vrD|yl6lv|5IJV0uHC9T$QNAxc75zt zk7LZ>)-}4asF_A6x9K_Abx$zx6z?Eu-lz;qQ4Gtwey=U{t8e3?#vjIllJ%jHul)MZ zUmHxs z9Sxs60wKGYYqCRpT1~RTCpPx7%F2dv`;~}&bcLh|6H3ED5#CzttpgUfS3t4*b2*`t zYb%OozanRec$c537;vGB#3(s5SsP*a5vwRc{#R#t={&2h_y@onnEKZ*=s~4{PTS zRzyvHFQ611npYE;r3}___`69Nt&OC4f1^@#X)DjrcavV2ME>(ZZ_qADow@vHk@U4H zk*2Tw+6s}U*74QHCjStAx&-dVd^|&E2}V~MRP{cnck}> zNUS46Vl7vRl+)j0gf9KnR2s3Gxn>OgMWccK7P)!g`aV{F9xc9{_GvJ$n*kaV0{UWT z0CbT9YL*5x&_*`2cvkQy1xpgG>XIX=U?NtZGi z3>_cufUdIQJqO1-50YCFQ2pRu->X1+4*B4>$4iHAJ#L3Orhga`h&B@s)wxMsQ(dF) zL4jx^R3OL)3;s%r4@PPA@yg?^(U6ZY5T7mzAPx*cJce!saaJ0{mIDKbi4+M4;!TE8 zf|x@a)?P3E2z#H|-y_%$tuMNperqeEFI;f~e@a3rc>=3Lvl&_pBR%Rl^mo6vscD-2 zTC|t`F1;o|5bFbg8jK7RdUFr6{MdtrE2;x0_pwN%mRiA1k3(tqPR;{a}PB<>CQXqI!8vi!)ttp-^|Hc`(}sepcb}f8-=UZ`dLGYRc!q}7?$c=|n{Z7C^*0Pbs1vy>uCa_m z?G{4)#Z3uYJJfxIYGvmKTQiCpI-l1P%nT&iU-n0{rjJC+vvnNaMCn*wJi}q=FK0@} zX`49Q@)Y_W@0Hgdp5YRPw!ggeNGW#e@HBr7wCeiH^->>-ZE?0$>`}X+Lh}`@(}Moe zSY)9Y-(+(gA1(Z|Ub6yS>r;$I)f(>{eq*Wvo;E6W$!sI+Oz!agcNAA8?4r}1u$@|0 zwhH`rB&+{Y-y~8dQs0xbM#Z`8*H>bqAWdv&e|pqQuF`PA6< z68O(z3N=Wh2VEZs{BhKwb6vX_Z6!y!|J^^(^21aONXu`Ln30y}(t@g$kt3#lwR*!SEE_@f}$IbNP?wM#w_(diY-T&rh} z@Zx9DGDlg{&a>K0iPhgrB-QqP*Vi9Izju2h{|M0Y zYY-nC&8_)6=&fQ~IBp63@qJ@_bfl*i;3A10W_9OH-c(5RG<5)p9+|i@-&;d?J+opx zvJyRWY8SM$H|Ny8VK(C5uS{1r$9in;u<@D~;yfLB<-`X>;>8{QTT|l8%89H?PK+qs z<1{e3m~8ZUYllf3%&eVXV3Rv$pV1s{$c+z*#C|{Qtqvb%kN64~8TLc=?KjC)qyevX0RdvC z*e{pOe&*??pH5sKi7kkqwmH^ivu{0JBfOw{T11eLD8frP6F)68)+IA>T9yQ0E@e6D zSBydwr)`RL+0^x#mytxvX)P^iS5Is-A?Xf5BD%xE?7Fj=67v8%&)ZWIKv;_)Y4%s_9aIc6fj-8N#2HJUdq@~e~Ih=4mJJXEscne z)i{q#Jh$A&#{%5N4q4CGf%y1qla%zRx>~Q|bb>a-~sD`+ry!pN^r}QBE7p zSJeIS%Sx|3=TTf`I9=8~r*8H&NAP?-ESXC_lHb8-G5Zg2+RuKN`IqenD-*WXszY6L znh0B%edCs^9D{Z)du}WPSHs-hm%Syt^yG;$7?~C@N%w<*!-F)OewsF4=s@ z9FdS|Ewd`Dpu?`gApCLw;yHF!ipQ(0!>nJIoM!T_CGnR@X=PfF%9cI(Y;^Q|& zRD%WqGG5m5y=#Q7VwTX>;!Qw@BD4H1$pc<$dM8i@-EJJ!z4;>(z2*~4a#TwUFa|NQTOPr^$5@!Mt{ zhsSUC?Pbi4@p-;fl9tc<;sNrLuWL{7$2J`9*5BDr!dplU4(mTRhR5ejo$gnt&;%nj z4QaL!j}fB=oC*UFK5`58V|EhnD%0l7wK`KA-!)!tl1Su>y+_z!8!2ERRqQ3cb2DNt zt0?fRs-WEX*yseIQ3RrqJM62XT`jF;<&fa7NUPS+RIxTuyO^XhSIL0K*N63veb~8wBXK@o3zqlemy2v3l zOGBEG6ChpakVZJ9TZ9xEvu`8+MVxZ`$(Mgi{^WMMsSm;Ge*T24l>AAh)p;_1vhF_O z)Pvr%A4B6g>HA{}a>##OAL@_HCRTPejZVVoLP>c7nbe|e{8&?Rmzbe#Pw;Au05!ZW zNv5b7-z%)0*U?(V)qnU_(cfAHs_%Ts!m?;*YWaHTV$QIo*>xw{i{7a^!xyRXIGd{; zOz*A0p&ndbi1MX+S1MHBy^M9K>{qIyU6khP3?*j$50HM`rWu1bIx5qc=-Dy9nLJ<$ zhbxKf%;R}fD)Z=hVrpl$OLm~Nr&%eHc`WThi+Q|7i+PwC9fMTwaD%dFFY~cvV-}05 z1B42P@bd|&2#@X=Ae1|V0S=+R5JH{U75uTyPRxw=5e)UttLqgaRPVbU!!R)cBPm$L zad`f|%WfzSNwTexY=r?l(J0plm3aF4z1YhzZ{)f(dwGI77V1B*mAyQRJzy5I)y#}8 zl67DRoY6|F`#cFTBe__tAcA2axWD~|hE4XZ3u~VVYT1~oFcKmE<{d%_lC)bL?Stz2 zc*kGj^}AlTb8N|+FU_F%rL;=O%PDywye=(N$aIP_Iy3If~Cbbv+KHX%pC;~YQOQ3pQs&W`#E;4 z8EcP9lb;nRPt+d%`L7g8*|I~bU|__2{=*;M+WuHUPcap77oKbazBY>QW^7v~&Vf z^^x`nA>HYaI;0`3CU*OMSi&K_TxOA;qZLy2)Q)>PC^MSL^!Bz$rf(Ndk6gwt98YZ> z(tF3J@^niG>0pO+rb9Z_A+=u$R+hx(@VuuEG}0^cdFl{CnsqR!Nblk_q{k=*ig<3ZGeNJ(B{p!LPK!Uuar_y7f8Ce*i5ok89i6DH@qHYB*GEQDzFWV> zj%4xon`E$f8#5sQRq2)Ky?3|y-bk@1dZcgbjPFN!qrOl2zLrDn{N;)LjQ?LP{~s(D zVTn@Sp<=G!LnGCk()iY_dLh4VCtA5&_6xk4;enalm@z=LcaF~5uN6s<_1(2TNFKQl2XCW6yV5v}oPReE4FUQ<%&bTOuQ`Z%qA zbIhD*U+&{$PRLRw>8&APn!AW;*jW#>kBxO89_2IOILWJMBP)2z_7-Mz@N~bx3fgg1 zmhll)z0#f^3Wo0z*xBKl+G6$HsXURLonb3b3T#~Ut!+vx;VcW`bPC}tIKbjuk%n_X z2xsnD7U#Q@EzZ}pN&fY_x~MdooODi*P_4yr+F2ayMSlLV(uxSf8)c8Orsbh6q?R(T zo-UHzy!wrKY9 zk8{oV_lod*M>`Tp9_?qnYNmn8z_ES+yNOi`x8G z;0Q+QZSUS+IG2AD1fzpPI8R_aGQ+deaO!soa2|29)VE74&OBPeT@j(#^}PyuM;e^o zA)Fb1<9^4_DGq1VQK|fl3*nsTa7;Y`=KfdVgyu-y_#?c^T)RnO&4sw4)oCG)w52SL z{_m@8gt+%^$KD?H#;;8FdA7fsN?py+dAnAp*~eDvReoflw2V zPmy{c$grzc=W>^^m%vuEfFWDa=(WE4AUQQ$!l{|l_=`qMT1tu6WCt^i3#iueh5I$4 zmlAJlXM~%a>YhL^X#yMl*9uKMF_v9Uq(!*@J;4Z9Q(Z~P2fEY%{T>P?zg!pqUGIPn zOapqqNdR<>19|`e0o^U2txHP&+d>>Qof4Sks1Q(&1DbYZDo6c8Kv@o`$N?1yC}b|( z`6ILp#&~IvY{c2iq;z|E%|4FrIdvlFa^A-fM&f^Z>dLHGftf!(NRo0v9InVeE!}KO-ev0)hDyBuLvuP2p*4o0> zbJ)I8>R&=iovJLYivcG(p#L0^3UpTp=y(Top#$n=flAYWX73}QwjrRdA)uw$mN>d0 z4e0O?(7T;2N539#Ia*6=%ruwp>)PKXSKWHcl2TXQ=um?E%+J`;^v-sLjZUxRyRGvx znIe^JmsBW$o_!nkbf4Gq%QSmBo+=`~|9okhJ;kS(>^;+NO~Mg*xWkflJyRzeg7%M& z!n)vn?P`Ch^(g(K8==kW_? z%vU(1ebbN@Y~~)v)8!6nj6=FjNTKYG>?$q0W9$l*Bl3RekQqAf_=}A_VF(Q6rl=v&r)F$)nwlw5840lY*{{?^^|BMn z&r3X`8XRnHl1>m@MwUg}CbK((If*f4MZJrTv?h1sD&OQZ9(N{JI4u*4olfzHoN%-`k;&sFts0k3Oq;v5pmw+1Tvt45MFrU#`i9{VeyX5YM?VBeGVb`xSw!agp( zI{>*%C97$3lp1V{LvXAQx+{sOX{PB_>$_E;Y=0ouFGm&?9*8xiI?C7caI8QU)vm3v z-8_GszT)>l&$o8s7>j!P7+P%iVOn@f8;E5!7tY^9miw>X-0$q^0Ee^S&{UjjLpb|8 zoK6ns1d9`@7ONuqKWg~7B7}2v2|uv7 zCYZCjY5Un5p5at6=5E4Xp*LC&m=Ybry$YG}+hmn=!&)+EX==_m$mN7AIP0}0897Zj zk;6Z;qDB1GUdE~{G{tA{qY>bfqp+{`l&PF;U!D%@()1{5sy+!uBIs0%k| zZsNSmi8!$C6sx)xl%z=A*|f&Zun@@d%c8s%JlC9e`Nna^cy9Ge4MF*(2TyRw*E{3` z(~#fa7$9HckRK?t$am8k1UjeHR0Lx<`c!I|-JkXlyINt?S+O=G1R8Om&)Od+i{AQ# zKrL?KBb&oJxteH@J8^;#TbT zZZmIfUqAg5nGv>wvDB=dr&;LnpJ*0p^1mj3(rXtP?h_X(9^X%7gvd!WiJ5-oe?DiX zaOUFpJ`5lLM7zi&n`#Zgz7LFQzs6!rtP35a+oM{KGvLk-YyG2t#~$a*Y#*i1MB~ zi1Q>Or=fmhvZCHROdn>C&{-p?a*)fs1DfU~dHbor^81}ypt@h?$R&_0IMietWrTk0 z$BSgTiu>AU1|!^Ljc_!mSn^n!)i=xfJA4@AVC?+57u8bOe;;H2+$Z~2Lrnq=OcaFD zh%!Q@5lu07R@D1FYQy(lU-;oW6GjzG;n9SY3U9$phThrw=~A6kibAq^uGaqe!xj9v zFuqH?w7~wR$ZI;p3}6tEh6lyom^DTo9G7_C-oiDrCf$d{>vFCjU~T7<86O*+2@3F) z2#ru)!-z$dUL|0*L^Tz(DvpbwDixDw)i2>jo$zPdzh%mL!YkM#DuH%Gf@av3%yBZ+ zy~Ye>F}aMle&W0=4E5}Kf+5vA>Ihm?*OnF%G`;~bLJ!P@!@JYqglkUQgm50&-Qt{? zhV#dd0nS6Le8?FW9&T}7r-iLT$B?(~KyfnNw^yj1bvAc8PC7b-)vZ%Gxi^Gxl0&%I zA)GG+X@qBWv`Upd_(rIdH)Cfll_XQ%g=<_6i0ECdV?}beOg?K@TdmIg{wYye6D)>E zj;{|Uj^FQ%T$(!m@SdO&hxN~MWv`3DLg_2jxNWOW03aGaBQrTFmPNFm9ltz+?(^eU zYkf5*enU&NP{5o@TXS%jhg@>88wJvq7>@SQXhok<>a{!w>(wtiWu=+QySqrh3w!~i ziauQtFb0lQcweGmsb?f*!l+*W@^-IyJ?EXNEZ0mIVMY$4#Z)%uBVdD-lZN$ogZ1wa z*7~!|Zw*$B!)ld=wRl~CHNatw2SZq+Emlj8A+Hs}i5SD&w6nNc7eX2yLfYLSz4Vt< zuKpfE+QlKYb4Z6;BqlPQS~<47TO&f*7(&Slp**@PG$Ol-G?dM21AZoGR*LKvwYB`r zruBpLE-we;7V|#2+!US*_BF1ky}gpVGgJ^Hj0xm>TObPY=VHei7iK10r%Uffgy2j| z?=#(^iCCT8+{*O)s=bYPueaioeu<*FB|nkeS4=Ogsur}8%QCidVgRvdt9`{FGALg?PEB_TX`my%BFp{W6LPHfr8kaX=Ava*H zvVw#5Gcro%S(mE6a9(z85y#y7;32eF!9BFdvp5Z?zNvtcLtY-52mv*BK+{{M0$mmY z+QR`I>wu0F5CRbp?&Y12g`|F|<%kf%3z(Kz>6M1CYY5>Prk7&ngQ#WYZCY%t#2UVE zWQoTbPQouI%~N95iL8smS=S9nL=-&PBozC%L>oiOLaQG8K0|f25`2 z>?r<{(TUngiurE-xk<<2`R5+V`nc9|SUE`r-7{8!op`TbOZ>mb8@V`X(Qf_wciHpC zb7arUF&*N+QWwPk^=cIVi-`8g_%G)m{-2?m^ygwGG}E zkqbzwz|RW43q-!eO$#?MVC3oEdRj!DC!`9(h994M8>E6zg!@(rT8DJGL)t41Y3}L( z=@N%@yF(gokyJmH7f*(0e?a8b^O>F6k`UgtA-vz4@LV{1m@?onXWc`1zcTZaVISb| z_O*Cmi8+NJ`G;J%n|;!#XYv>sv42?KX$?5`!N}@o8GWSGX+n+^;X>y6YA8 z&9P1--wAg0sl#m05hwG#mH(wQqsqLxpw}DJF=&*7H;8)4&6}fJP;G*_qAr<^LG~Q+ z9#^lUkC>r#Zc)b|o5aqmjDo4X;^)9e=nYs&Nm)h2$=Wc z{-$HlgF_vI{KIw(9p7Z!Z|1v~Qjf*^UzPG7MPVFgHVvGVh6eiL55ZxiEhvmi&QrN7 z>K*cdKiHo~?HII2MM1VX%f4JnNV_K%YFmhFZGl;DGxlT3YZh{ezrjur$?eOk&`I9+ z`}^z3_4Il?KCc7A+U&Y^0&`!Xdw3}%&<~sJI6B}i2~dHfe$0Gm*FG6|4z)g9>WzvD zVjn_$er%z4iGJ%g5JM;SH%221xYyL*oa*1gq6;*9SguZgLYC5|nEs?h) zW*^<{K7_W_gBMA*m^t?*lI3U>-dFE$O+1n~jB4iUOI{ zIx3uqT-E4^4L-3g@1NM99BrSyj5C&)r=h_&z6l)UGUl>!*gFrf4ickr%=lNnq_vM5+i@bNZyy-VmwG+ zk2HTD4e_E`q`bm4k$nMWz+fcF-ZMn@O9htf&stlum(q$4r z5fGMRl)~SIA)sZNDk6!^3=nv@_p@3_hvWWx8PHOnsNSmc=KK=f!*izXYxau^{AAcC z+U>*Sw{UIwu^$lh{zd7w3fB^~UGX89|rJ9*$msB1XO%{0AJzJA$1yuS-u4Qt@ zyYdoMC#e8*T82&gl_aDDj1zzM`u|f&H*BGVKQrOb7@P>}I*^C_w%h9LVP+`>nN{m? z=)fc!1{Il`x$)TLcoGjF`kJgkKP+1l0F4n$_g??8VV{Ao>r1rm#`6|$lIGohHYS^P zUa8X@+FXHMNJGP^E(R)DPjuYZ+~Z8_GtKgCMu%{69nQ=>QaPy(;p8}+ zVuw@cbCSjTQ|JgYSQFS{_OJyq4Wz>6aUA&x13PkrHb!0j?8+1szjj%w+Kj^npo;$9 z!;8_RVg<3uyxY(}sm)72Ga@WN#5ssoQ7Sf9tYS5?k*xX;S08EXlY;f)#n}Ax);1qO zsv>Lc*6YQ0$@W9*#cis2f8$W%p!dxj<8pG6?YDU?~ z5O&Ii*_`2-1zc38m8|D4hE6S91lxR#;NN*F`0+nMg*BEj_!ePa0YJlYUkOA z?o4j2<{PeM(Q~Nb>y_bMt(%P_X%k2Nysyqs(vLqBxlT(Z{_1m7;%~|pWFyHE|0+}B z&(o;lJe!J8CFV-d;F zux0mDgy&WS2;CgQ^$y{xBtpJHXkrj5X9fsYh7dMzRear-hHz#GVV!1$@X*2`WYdNm z(YtbkcnH6`utx~tPKVGT4Po`?0S^g>@G=8VI zCG_D<@`q1ZGF#ow_m5ZQdgwH{_+4o|10NZ+4Ig>Z`iPmo)%T}g7~(B@Ep7g`igFs( zzdMKgBQ@V#9O@XX*}HsmF7;G<+K%DjMZP^(%AVPDepr2Wowg*!#IzrnS9vKhN3X9D z0<=txUE1L79j6{+scf4hjMrOFqWHr03Hkg)>wn&XA8E%wZe#9cM&)_txRp7!sbpSS zm_?7Kh51|_WfDJ_zEaPiW!8U;b}Nj<6MSL|EV}>v7pq~Uh6%@i+t66oL1j1mBqIoC zJ2Fo|na+?${cO#wh`MB=pLG@D>&kxzMlkYVj^Te2^&c{VCut3+p(^5i(k#74d0c5; zhj6$$H_h@KpU+-P9Ao&^#nSX}PT6WRv@*3ze z%wIi6rLDL_sBU&i(%h4Ktc>5r9xF4&rmLIX^%DApzUmj=nGvkDnCF`QVHJfv*#D_X z`*-hhu>|Bg2aG8A=7QmhPlX#BYZ>bpr5n>|9jWGcH#Wn_$(t|$x;i4GleJ@2MB;p} z-Fj)@9bW_3!p!55B$p-mQY=mO;q7dKqOo2c>y7`Edo&HgrK^GpgzPD1a(sy)R7^m_nFrU>bK?=>PK2ZeM;KBBx*wN&4!;< zA&@o4akJxRfCFin2D0cA?s5E7JCLysWRwFTGi`&}AXdigW}qYo}o-yK`e{?a|BQpQQ zpH{3%_owP2CstIj9%YJ^@l^PREu)-{#J9gSnn-eQZZ<8d$f89gTl>>M0~PkCCLyR{ z4(iA>sLwwPpoTiAr}nf^6KMq%@~3vj(!>6AztXQ3<`m?av)_6q{M-Q z{b~Gn>Hc(F2<261kktO3hO$=(<&{=Yh16E;VOjZzR;+C0PbYn!?oV$Y9WZpZgW8yp z%Fq+bxW@&EGab}G2lWqH-=Fq=#dT$nYwGWvKYdJ|L3ZDuKRu2Fw&hQ^H-(QK^QS+) z3jFE4EF%WvPxCl7{;wAL4nE!Sh(C?n<Hd* z4t7d(z8w;V-YVq;vv&=)Ouxi_{cMC1RKm!26YN67ZK{M>%P37FP0F}7Ji~#O1bB&4 zWn!d#}7kB`klqv{WmO?Rvh;!fNQHe1zsvH|sDfesd&#oM^E% zva0w}msnYU=Sqbx!Y`5DPde|qT2_;+>_U2~kMiAMKWs`8o%3I$t)5o{C8T=Q(!gr= z(UcbhJ&B=}v~Vmf25P>r0kPU`SHyWI@mzD>#s68xHNxdFe+eN!#8n}8NkiWFet>-6 zeinJ&?iP6ltwG2oA8UW7jUK}6w)Dhqa+wQ&$B*L2&g&0%pi8%;vU_U?^iT)d)q!@l zpk)9dA*~JCHIe662`NA1HYFjX*@#{2^-n`;8A6)b(z3U5H_P5~THhUy`!;aLT&=Y@ zcPuB9Aw?y^pB%A8_^oZv_vf`Zy)l|9Z_ElDO)5l?mpJqb)I#wBwkI;CfEk>i9dO99 zVcPx_ixLRAjY+$^M0QY*BNs}{G;7DJc>%iKd+NntjA-)n+pe#y_9jtbGjv`?2kI;N z3`?Hz%aLkWq^5CYmP#FIskkb+MSfjW^>s)si}my-cJ|b7hCh3{K{KYhXkXp(1GYW* z$%v`EgvKEmdZ%wa@9WHq_`@sX6mC9ywS@Q*c&$J z?fZwZ-DFkbf_KrIbKA@JwK^QLD=jX28?DiEl^Fw-p>K%G^Tv?+<$NCZ@OQ-9%h+<# zRY4iR9im&vKYweH@Bcj&xgvzTejkh6(jn(qYI(oWv%@w5k@dMCVs(I%f*5EX1ba0%7|6pa$3O!^Dp2u z|2ow`C9_jJ_Wi>Gs2&b#%f?iw=iUyWx;d!p9n@7mRI=>JyIGHP{X|ne63c&@MPty-)9-F62b75#xtY*)8XT#FfRj1pN^faj;?{>qqG#Bjwzp;#r*%{ zVE8y%qfa*-tK(Qw8LSriR-POTAA4`+I5mlwG9B}tPRsA@N*NIO@1x~k%ke{gYzi}M znFf+BOe@Xcdy;z3gwAFeoeeRmINnLawd(lpW*o@UZi3xI@OgMrBCo)!{oVLovHVU_ zHQP;CzpM0)GkSdQ!@yeRA8PoM!Fc6gS({w{v(aOLA1Ws-;vUHjA1u?f6nRuPp~W`) z(ITtj_!(I)??Ez6e)skYnaqfg$($R4`W($koWs(fjtxP5s;MAQO&rv385YWzKPWQH z9-j+kPzYs%GQBp`c-J|UHfbpDE#w}@&_IWBA5RxUcLgZT`P-nZTP~ELArzBOb|}pq z%JdDXV!JGavWG)C)}b6po2b3Wnm>#nGUYzJi%*6M*LB{@G!rY_1Ld|c(6f9c6Ota zot^(NgYe$ll9}n8dHmFF^m7k+L!NN!t519=|JvA2{v}KXfST3dW?!n&D_2o^qok9~ z;e;xL)q94eGMnZ9mWkXR zGLg#<4h(TEdXReW`4JNdRlIh7BQV78G(pAO_fn|>PuyK)Gtd?9q!;m}L91NvDg*Uk z2&(>|0IJqO9gzn0@A(1LEe`65Ef(q_S_{=OaALXFE(Yqk5Y*TZR7(dndwnWb142-_ z4ywdK6*(xJI9c&J`cuhnW(cKS2<0W5PqI5N4Q2Nb%Ja>v>^@RO0kV6SRt$mC+6m7) z+@QQ4LRoZRAhrsJ^7Fb>ULKtnh^^eA3~(s@X%n?y^TgCXY{Cir#yRmaWjL@b=a{&1 z&{-9Dk3$o5w!*di>M14nV!1}&vP!R3x1^WV+UlwP>K}vZsRCSB7ENSRS*>O}m0P>8 zqH{S-!1Aj3ttOxrpoKjZ1)1! z$Bzse{qZB-gv$g860yr3i`&lOPu*bLt|gtGuf^Ovrw=@3{AX6%rEAkiT5Fa3bsD%@ zcVR#Ka~IM|jwaul!#xB)F?ofXzux0k^KYj`ga9XZYcly{H^gh>fEWHC;4LAOx+Vnt z8=4dFMD7X$cMAdkk_izQY-GFnd>rfcJI4 zCp+Nd95C$V`s|JQQ0(P|*eeX7O!>qLu}>OGRtRO1=8e$%3Bx|Iw}jUETcWm2=((B4 zJLr_ zpFKel5B*}WZ|l(PeQ&C_Hj%$`^N{)QKE2A*xXL_yORHig=UL#rzDz1kCe{%DS;{8M`Jmx_BrUaF z|6O2QN4|zpDanLxc#8K93oN?#7uNdC`CQ)5)G;F%^S1*wfiu(VY5-65b|0MwI z>i{!DfHP+SC?&dx(8mGR0V3iCTd?FOV7k}N9~@inChO+CGI~y8F=Yx2U#7RV_1n|} zsI;34Df?d*im*_<%(`;MF%!LM4<>bL>rp?Zl!yH<4^5vhOfhBMJk|f$W1T6RHQ%~( z^M#+8FYv8VG^zUSym(KIR4U!1fqrop3=u5HCfSbFC0InsF7+>v_8olhF8 zxI56N0-a$XC$k7B>w%gi)x8 zf3$iD-rwQH4RwYapnkp{d1!73XgpdLP-z;_`WXSxSO+vytM|l+DYOt}YP{%-{ffxe z2I%S#&@(obt7zvP<$yk3mCDhG5YQ10=o|-hrhp_cBRBthrrwnICAwQfK%GKB3qG(M zU6BTKKnQ5AW};Z+cd8SBqpwYI%;`MQjor|hq_Y3f+~;C-SCSwSZ=oHiB$nTO-43=9hR6(k)7)OeRzgwT;Pyz>|}S zl10gpNOKtSMKKvCeYv_0^SNSNe@1xPp|M8XRwU3~XSBVpGN3D0QS z2;U!2Zz8q6O^dzCIDK!?_c+)FLze7!TvN=~JWc-vIZ3~%O#01}_9$!Gg?1Chlzj7D z&To$Dgx`$uHjPW`zgkdM#P_e-BWuMQQ0#E$Gly)X2o6Ui?UEulnD(hOW zO+==qW^)a$g$tRww*Ft3>NOViq&g+=S$E-B0j{TsW&bE|%W*l52_>xdM`{y zwWFf5Wxmyn2{mp*Ka749%w(7dNAE*Xxh8)_&OBNQEb;cvGN3*p8n|7QU4|lJ#o(31x=u< zp!Va8*pk>=?bo;eeYYjoJjfk9q{MXdN=^j!UHW!P%z(sqm5p_MLw8J1hV%QE#=eu= zzCRtJpsSnlUJC`HCQ?x%rtYOhu2GH+ z!fLZ}@R9G6h-h5%Kx}_;2=l&372CiNLJNm*ibFWwN5JNqWwSgggMgCy&$p^WP}EH; z*E9Va+oS&I-W6nU`Ex(_Zh{+LzW(&SrhDRjglVFic?yP?+&6o~$@u9#X1*Y!T>Yl1 z`fLdBP8=Jo2Kn#D_L^(@zrQ5?*VW_I{14~ztNydqeBR`f@eL_p5h|7L2dqe+&mW+y zvs3NEx(j8T!CeR`IiLUi#Xz+WYQD*n7JO$_`x-5tLwwWAj&3nZR&>ZB8EkkVYO*r5 z4(fOZ^~L9@P zAAr0(T5%OWBgfgS9o~6o8>sFx0^j(2&w#7HIjG&zpr%g>1bDuK8s?yGa!?YWc8M^n zc@p5t1>)+05Y*Kns9zDUboJo!Q~`DkLH(o>bhz5zLG2Ylb=Q>JKxu4ny@C2Vja8&|)g4T`!616{sp8JJXDr5uPv-ig)Dl}Zf^z|Fuu#H5) zTVzKGC#f}o>IR5ECRe~klOiy2Ei0B4^^TtvBnp~A8_G2`O!XuyM9W6Ci1R|bqmfAz zeDKwuCkiea9pvXmP%gy&k1gcS8b;F*f2qc%$&qzXTdP5WnNNBgu>RDC#0CpWST)%? zwq;RKEgw)(Hk>JD{OMMddo!%9;x8p0RexO)e^swF!5CZ@nuNKse*_*bmeNo4_CET; z1ca^nk=y5|_am*8M|N&G0Yi`&%0I)ZgeRdQzD>^ss=nV%Eaz*19?{LD1ea8&;R0!BOM_crPry;<|bQ1T@rh(9v~ z^d2T8hOSEkY8wK2+s!LCQ0O6szNZDK9M`FxD?5sKn|6nG$%4y+^+>!b$|ETt^9R&` zEY)3(!=4WKztrf4CHefbfh4;-;2Rw9)fTu66wJOAEIA!X8%Ud1s}XSSsWI}YHp<^#lly(NMTDKvTu4Xrytm*I_Yl^A9B zrobc_ZhCFW<8rCk!~m^t>CLDJQq^ndeYmAxGM^V?PF5A|>y4dmT(mfr1%Isco11f~ z|K?b7uTl%2GxM-)*(UcDt}retm-2_==Y)2quyq=?Z9{xU>h9~E7IMyEKY8S=(IVKepo7-`-75$CbiYiYfSdbl29UhlWh)bi*XUR(3bCbcQgY^rCv2TB7? z-7^n&&pe1WVfR@y8QetelkJc$V#^%M=Qn1@-pH=IM{%keciqy4#;n9Pn~idr3x|S9dwo@w$t1r9y==^K1TI|73tV*3C#~y0!f& zv~dkP^$e&g`nR!7soU9R_OLxsweDe$eom)O6}_Df$}@HVd1l`AhTnmH=Ax)KQL7VD zh#+95;}%jo*Z_ye*-DX^H7l>Jh=R>Kw9`^xYF&B7YV~-HP0jZR_0c6+;eyiMO=6W5 ze8mg;MEkV6Oe#e$W#*?OrRh>9}6l#ytzY|sAa@D7R9<1XV<-p3vw}cLFu_o z61Dd}WYP>Kd@YR7r}Dv{2t(wBrJw;ZcVVZNI^Z4Pmw2bUseVZih{ihMm`hrIULWg} ztIw2~HSz@SNyy4`*?;&Y6BnXzY~pgxLpq>p1nR7o!cY^~lidpvM2+#__KxzKqCL zd|87W(4pDzltd$k5u7U67;rh)+b^Y{C6m((C}wCtk%I|o8NDE0uJ^nK<6HfZPer^k zf*8uOUn$oYQ%bX6soY~EGjaajb0j%c{?6v_68>iE)Y9fK!Grp8>2yw?0YhhcH-2mx z@iWTa;WN~mv=8-9i)_l)M52n>y0OS`hsVMAr~R(-6dP2hlDKV#T8Y z7q>cyrx~A0;}6q{i_@(YMZ6{k;=&NbLpJ4X1a+{3cza2zpl%F7v~dt!9KIS7>E*U4B{)Ow?}@gDg&+uS4P-LbmcU?Z`2MI3ku#EnQ{WH zGk)fRU0YZZoalPPfhjv?dMDZ^@3SV_L*>y*Q2;Y~?G)yi8EgIu6z=cvopWS*F3X+Fis2YP79il*;$Q^IgJ->G>HAWntY^i#v*^V*;f*WpLIl=3AGh% zmN$<`kLM~k3^np-NOviuML+qr+4~yO9SW(sLV6sjG*@Ue+V!ltgqUcW6+l$hAf|&f z3czbNh~gT=6g2|fjtL7^W+PIMdpL50&jAP_?Z~6(y=VXm7T$RZBV5!p$}>!wD;Ob) z3@y#=o67_(f}jb*6zFkmSJmBf)D5B}h z3%{Bl0*aTzH<%%DMi3>jDzXAgag-7KC3mK9*{(HM!zHB^@%x)7TX&lQ0O*Isc`M4{ z4}!X|Z=SqCC`5VMJGN!BQMhLov_+ulvWgoozf-8Ui*gYmucLr0)}h7wtU7+{4!;_4 zf~JlDq4+;QQm9`*gNRzyhI*LhIt8eF52$?<>XcvP`{R-3uHdN-^lK51I_FLy5?f^B(J8zjuqP){;kV`S2OrryWeg}<|)r@r@hN`ECsX4;3%m+9!#Jj~X zy+cEF9q}2omo=ms1slz05F*4J86&%YF5y)L@u`BSXoJ}GjRox)&7C$u+(;8u_)= zbk8ZE_Y_b|0#UJLjf_0eW{+rX_NIpLJAM`X+YoAM2nRSECI1TH`c~4t31zm79`mTq zB@~t%)qQ`tsBScjRT|6%+E(;rW{A(z)A2LqR(H)gR~>AWligsXu-Kufi9CjqMiEom z-Z?jubSs`L}a#$fgFfKtl_z#@8r(O zD0!GQJ@xXiPbqkj@%%hW5&Hn5Glc(A8U`)NNL(+tVIT?`T68@^G=j4!cr{H?2D3vr zOC2SLk@rHT$o4XX^g=qM*o0zze7F)zG{W5&{8E&k#wtH0qAFMWxqnhjZ_3V)j`@hG zMAFYmjnt5`r%9w_8&a@_G?@cc>OWjJB5gnlB=+DArtn+(iy~--A2rrh1iPGxziNG45VTEW|Sqdx0hIM3!Rj>XEYvxa~ z4JRW-8`>w@jc|eVorW~#FRKMBD5QU8BofG=}OSl_&rM$-{Mv+Sc zt?)BlZhvRZem&MZbWJz z%trJ?S>e3K5uC%l2V*$cJ|4YgG`(Mp4ico(59;gVY1oWaD-RVF#;(Rg7)2oSmdISr zdem3T6Ol&d17d`M_o9t*Ux0e_l4wR+%1}HE$*d<9>LIXs+lc!iD^kLf`O&P4d6`Xv z#RvnXg85AW^Y{zd+lJupqaXq?IPXfzf=BLArg(g{0P2-Fn}UcxWywnZi6`>tPF53C zBBwZG0BFb0xQ_;{N6=QrV~94+1d1n1o;n=rLWwys!%4DWijNUFNk~M3oRjwqlV=YL z&q4YHCGY~Xg@a)%p?ATJ;rLoQ>K!Z21PIRrB1+#3dGk-2dw8NQTSL0ttrp>YP>}^E z^(Ag=qt$pZ1&@-FRrl%Az%cIL0ExQZ^(_8UNYd@N$8}5wq^c9nIU;|@K!xtt^7zM7@W&@tn&$_5-wQS0`{$!;c^EWT>kJ8PGst}^ zC8Ie$aGyMeB0AwxHM&`?GE-fhQQg*=_`;cJ2po&x-DiN=0qSExf7TWs8!8f(K1W>^71}Qc&Z%!0pU=TpkQp0@wu(nvO0Hnv@jWZx(Kb-Z>l;hq zpP+RTRWpS3U4=i&M1fJlRw!L-5YyJZCS|o*U*jsXj>lUkzoY(Ht4Liw_Ops4ii*4< zkylh$-3Qn5lMiC`HM3v0=S5V7mwD?y-#fJj9n@ zp-CPHfu!RNhzE2F2l$;vOVVSBF*@N_PB$oH;`^1?&X{kgiMBSkK7{pc!7TnlYp0e(!DnliY!1=Sd#)L5y2&yigQvL8tRe^U}!xQJND7*xPcZ#94 zs%ILP2|UPvC=>AF6<%9lP<2}&&E3lx1ny@A?OuO*f>bVu!G3uax-b~yYrNv)FK=aG zkn!<*kRa~HyiooLmTSG#gLsMH4()wm4WUd*1j6aV?9}$cG zAr8%BdULP=-d#i=kE5X6vlwkfDj^&t3=qJQfP_rY%4gN)gE*229XOr=;y7qa#68-# zA4ijTcg89R3ZIAKyeeKpOvJqc#<&0s86g7Dr2&4)X^_ z0X_>57Vasex!XZ7&rwwSg-V}?y%-T8qymD{8n;0AnPa+Uvlq)FkWD7#q;EUjpZNZ3 zO2(zL^e4zV{E3-N=E`{M9JxJ|VJ@q@js>R$VYsIbQjEW_7<~=e=#5mTE zgbn>HgcOA^Od(`>5n=^GS%J`0L-;~NxKkm_NARy+hc+6*Z3>~PLa6LTh!Y5l$FQZ| z)(|2!glyomm6B};!5YG3jxZr*TbIjL+8|T3QoKNDCJ;Jk2CY9y6E=i{eXTn5Q3z9($yORKQ?yc|K&UDZ25Si8IAg33Tnb?m;&Sy?O4AU^ zD}?$AA>NCSBoMZaVk?c*5T4Z#Rso-_)Xs)bMnhP}(IQ&u*iu=CgEB=Ok_AFXfiO`+ z*nilnLo0<4VnbM%ZnaW#g^;cg(vZTO&{~+TXH(YSI)0KJKKnn@uI13KCEjY^Mj6uVcq5%W9GYR|JAPu@WKAa)3j#{Me-Ug6`ck@2v6DJ(L}*6d_E7|n)nbf zTkz{nrU~mvIYAOjBGGa>K7Yaid%dZx*&*z*xdox%;_Hh{Bd`&^vl&yL+6tFty zij}A>8i{K>dy5gw>`+j_l5U6{_b4Pv!#EG)Pzu6H~CbDaDMBZwW+}v?NhfXbx*V^}umY0;fi4Y$!L&^Y8H1O_I`0WnlGm8D&#CP=mZT(=%L#dOL2TCF+ z7$=)H(%YlS^*i|$#t6iR&XGf>tPZ9u^Z^@SAYrliWCGd2A5I)`))$$3$!ys^5%1!+S7F_Yk5I2SS9Hpy|v7Kp`TJv6ZXcVOx=_4}3uReiv#G z2}a-9TK1jsM&c}rhW??dGQZ)8I_!rM0)~w*zmX09ECPj5ibz4b?3#@ey)11WAP18o zx??uxStv?kz6Euc9yy+%A%cyFuZZgnR0gTz4=QmYDEi_G3Ugz&!c0N!fr+1uZW?A8 zU{WY*E4-(X=AHnlYTkM)WkSV|L|nwR=JqV@=KcQRGRlW7eq{OW$m)CH|GcHk$M*w; z|6@=-a^Pn}KDIK+a{VH`ZtHxdY(6i-M#Ow_YLVc~sOG18lc;Q_;SFGku^kpD9HI2g|TvK@N{$f`meL5Gjg4 z6NFn-JCRq)Tp95Kuf_~Z(SPR5Ef^8VO${HmYJ6TRQ8GXq{)J$~Lp{t(N+OZy z1rqp#AD~V|Lw&OkCE<;#>wTyVj(^eW`VrnRoAoLhoiu)j5MZ6gSJA%+YmQP~;s6pf zmYa_hG?qdt5Ma34^Y4baQcwZkChjtnuxB;cAPqKM!A99&_orE~y%g-^c@lOUQs_u$ zA1Kzign;Tl+Y+4NoY+-@bDx4*iEv}Rh9789B^6XH1y!9;>6ijSqoWzsc#DIrkwaLm zYg)A))v%^PuGpGQY*@uKtRGg3vKiav%4+?H6jEfgFtQ1LY$1FL10kMCgA^Ge}Wa)92)_@Z<;0=5Wh3RYq zF0TQv;YboWotlFbIUhj^;A^a;0zQk_A``f)0)9XMSI~fe;#-QzMhf`SB;Oi;|A|%O zmlW`a3b;K|Xi2PRXflj++p7G|G4hv@=iZlC>( zoZG+hx;1Ab&+jOOSRd?vJ}mkpb`LUs5#w>jEdrXxy}Z|}&E_k`<#!DDr41CjtTAT_ zQ0wB{=8&)%mp$IEJ7NC;&e!!sEydp`1A&SOi_YqF;7Reg&+I1p?2cXT59*tj8eQaq zIUkDSK8m{61-n-S_fNVOHoxKZ{`Ifp*|q*j|KcvMfBn3ge|Fu=EJQCRdarnNWQmkA zV>%dthi8ft8ZB*?5;`be6MsS-MoB9xsO<<5)@#*AgQ}>Y8Y-x|UMTSq1=L46n8q{@YgJQgz-Kh5EvwF+Q15C`xoBRYUpA=cHK?N;ZlYFqD5zo@R9PJ=ML;#xp#Irm)#_6P zRnZ2utE*M3PZZSn>G(TH;0UB<1D4mJiU_E8G^l|Z)IADn31V?|v1qSBg(;{S3hGG> zidya!_AfKpfGHZ3OM{vWCfR^VHmD#CYC?`|z)jO+t=1rAt@hN8L?y-Kz$>CY`o|5H zZ^z3@%wJF-C&&5LXJo3?bk8Y}_Y_D=1(MlV3_8&Z2;&-JtowrX>8jNyS%cb*g0Mcl zY*5h})GruPQXsBn%le#0ilaD@qZ+EIPA}@D_?@*dT8%`VVO(KLd_Lo$qJpA~Cs8bN z<V%F$DlGwXsgu0C0y+tTcd0sa`@zC623F1Xn zv z%h-z@0G_&H^_X)LKXF3<2DYA|=eham-i%LUtK_Y(8;UG~G8)EI`Eh;Sa5x=7>+53b znn`Jyl$A+&nYd&UDU&Ff(EDcZC)}hRSMKx9ZuGl&AENx+he`wmrLRa$^(--PMVAYG z5ChqbHgcDO@Y30I$MBg~K5uxOr{Bxj1~jW&l!hp%RZgmyQKpfUq}fvh`R3AL*A(}f z=HBH~%v%s0c`I;^vU|1QKEbf`E?fabPv{Qbb6M`%I+n{;=8h&pV0VA0A=d~|wvBIK z(ty)2xE_G(+-h9l`=v2rlEwPJ;PXN+@>yqZKt8Ya@yBQ563%?yhL2cld|s8GJqDkx zH!D7u!({_;CZ!_U`~Qg5>z6E6XPwts?RF!pgIF{=FPxx4YlSzLtad*dnAL=rC9C_T zkLYE!qnA~+#N@#1D&+NAk~h{|%x@@tE%_PweRp?2 ze#`du$8VQn&iq!!x1KeA@5imw*U)W+&+h}!R6!T)+O~56_?;Qy%Ww4SlHafY2+VKm zmn6T}5Q+gADG!TlrCCO@EV`Nq!gp9+=AP0kND@e>T4Fi7n_*;#=Y#wZ<8M6cj7Mr`EB0QAHTDUIP=>M z-)7eMeFL{re<#c>e16}A&YJw*btVA6fARaw8o!-ill<=fEik_m>Pdd%zAHGtA<#Z& zemfra&u`;oi{E>3E$wsjmmK-+ir}B#tJiK1$ZuK?fBbIGyU)>|`XbDS-yXP?{5Jm& z`0WXuHTkV_Ism`nESkpepk&GKWgHL`$g5gYNAla8lRE{p&ymnRXMP7@A@44&F{7%6apEdm*$qzsae>rQhslSEiUyc6L z;`f!40r-u!eVck_W65vn{ek&C@`B_yZEV5$t^cY&ey3wi$sfN%uy+BHB>d*ra4q>A zRnL*%d0okGu`L1l&H2b5zjt4A=654Lx~%cLgx_Em{QkAJ@cCVO%HsEf+yMM0$4peplw`V0gHO9CwSW5qZ~4(pqa;vhVdg}%%&Cu1h$_ym6eq1UIljUWC- zov`GU5iBB*Q82^@3}wTX-zQgOP?q=%EWK_vt}~b@1p{BqwToF=OaXk1E(;PXwkSO? z5VJSc?8;%*Hl8$Ai>6H9{BwM zcwkMtbiHwaen#$a@EVv-iPFIQx-+nW`L34a^qFsjM0p2r9lQf{#p{jpE+H>V`|`mJ zGLo0_Wxx3*7KOfca=YEe8=NKzI^9lzX7!0%lBsuB;Ut(1m=6r zGm`I@zA7-^rC;*L_orC$@yGYu^)0?D;#%^Z@|+{zeG$pid-cwB0r}4A?L% z;uasiGjS{VPS|AfU3mKKIb!ks{O>ltlkgy4zQb5njqic=CExs>YM=qY>Y9@8H-;CO z@5mSZ@jU>`M*jHjQrF`9DO^jw(`q^LJ-j{nKDs6#-=jMC-3@-*s^<`ObRAk?)C!^Xa|%!m5CLXSesqcTo(To%-*^d2s%$^^vK#m3)WK zQ+yZ7`pBF^7Srz?urb{Y4=koXys_u5&QfYj&r6U@Kk##4rgN)Hrh8*KUuU|#x97$> zhSPdUQXR?jhd1=w^SAovc|>iC=N7omjbXn%p(c2?)=SpDM}AAL49M@M_xcjUw+)BP(Kbd?Np8YYQ?_zJ0-zG}}@*CRPAHQ#7DC?xpWiI>hdpm9= zziDRwyu9%I?>nHf=6w6goi>)Y;(^7ogZ&6vb-LTC{GFfSnAaV`AuJp@BpC%zk;^Wpm$+)BPT{cQ4Gc=o&&RM_PE z>=ql}L0bdxz5J{%-_PNDy43IQR|Mw!!$`^Z?Fiu0d+nRB=exn2GvCi*yMn**b%p8{ z-^XH1zN4ZX`L2VIn%=92&k4wPVsn3dkH>)4iEn=2SsP!!gj>nCvCQPV@ci+Yp~5EL zMSiyN9gYY2>i3p2zI->TF8N-7Ba#Byb9Y6__x%X)DWdRb>jPzQ$BpR$F1Vq>#r4_J@2sD;`^bEHol|rAYZ=Eob=_p zQx(bguZsio{appg_cNasnC}p1r!(Ijv7x{p-;JNN_`Vm{lJDjf9r^Bx04c10O$*3( z+H3y!-i`sT6W?E)@Zq}$ZYAIG-uUCfxY1Rk813X?{mAH`JQsjhwqWN zRrY*);rnZ&*IRtQvc|@DD?G@T?{X}w#`oCAB;O_G1?GE4S;=?%?gi#MHp(C0W3b8H zpFQvMsKs|(TuZ*Q$~*Es5dl?L|N1^4-`Pq2_%4c}u9H1qe8h+EskoJVANsNI`JT4c z;`^;tHoiOKLB4!H$+BvE&v;bwT?&UO1+wRVl#zV*=vH99>sR*2_w;%G`5scq;`=pR zOTI@v=*aiHMDks1Qb4|Q8v5h=ZVYvu_}+Nfhwml0m3&7Q>U{a?)fUqqt*|luIUZO{ zJIt5YVJS7H*H)5DKaQi00x^B1v}Ag4sxQ+4=gV6~N}g|A?_4*>KhIMhv3Tx?YdK#& zw=8(J);o71fC=kg69V$PKhYn*RWY=6;`hWMAAa}YR`Of_KZs8{u+n0A@G=|ApN}Gd3F}|u1M+>Ufj_=$V`%Hd_df@H_&$kS$@jHYg>S!4FSq#qHpj;IOgzY! z?@lbM#`l?rCErbP>`@@TA1*2RUedY1eD`4*{*vzqbN@-9#H-u_yCtbO#)U6o~1X_eiFi-{)oSMQQ6pG@&(`6lf5!t(y~`N3@eJQsb?;(6Tzrap(3bkyfZ z5E6s+uTcT{j>5hvXTJMjDC@-c(|dgQehjyg?-bL17m7YtgUXsrAD?ey`XU}!OgrfF zyxqP`SAS44JsRf`1!DUBFv)Zggz7*Wep8=a z_xR{@9fZJO{bNKxeiN~8%9-Es7`i&~`}(gw{Jw-+$!~x2{Dne{Uw9cRYqDHqo{i;j zJg``H(C00?d|7U!K2^J5VqlitcSx4+N5G!W@=fTo0mhu?%NpV|0DnAJEo1R~@jg?Z z0U6$R4jp|?xEA49-i0r|cR=A8L%fztu}@m;&L#dmRBOMfge z%#rVR5fX#-k1qrAo${PNzE@!Y>%{jb*gT=}-5$4!Z|{6r;ql#JuEqC5vuu1v<3YZB zpV{uqcPAXf!v6YK97Gg|@9%Dvd_RMLy#n$b0_}9>yW<4^d^f(=;`?4)OTL@m;mCJa zgv4O|V^~1G)3A-n*`9C5P}Yg>FR*z+%{knEk1l_;#TqBMe82Hlf%%Rs>5uOLYf%Xc}JRpWas4sapgB}N72d&e!3 z@AfSV%y;ZP{`ej<#y{VE!Y#h*;#%^ZRl8k@5Mj) z@I4i`lJ8Moz6;NuPs_IWe(MJt-<|OwU%sDYSv9_A;6NAhU1~&NzW*p9`R?&%f%&d~ zmp{IzkMhs=kUK5DU&FQJdsHz;zULt%2J0W5fPCj*Gm|slcVmF-#P`M@efVC2Tgi9! ze=r_fI>qAqgYRv8_rimG`F@UN)%ae1r{ufR*Ma%|I}ga%gP-|Ef%$G0=8x}XBmDC{ zKGfp74X!2M*|#|Iy%qsX*#DIoknc^^{PA4@LtQ7n_pbNh`zPE=zUP|rD}^}z-aOgj zyZ1yJ--GZVU%nf$tQy~2@X=Z7ca1Lt^L@*|lJAlKD=^<}@9@X>&tLoJd-iP>-`#L6 z`OYcg$oEbJFk$^GBOu@VtN7!)Du%jFe4kkB!}mViO1|6v2j}-3m}K!i_&Xcl07R$9HWEb)ESBXSEOCCvhwJF8?3!eR_h$_qX5L_@0Re`SRU~W!3mT z6C(L;IwUaP5C0?iUect%eD}ZAAK!lt^UwG8;uhau;#%^(|GFdJ7ZAXN^{>7G`M&nJ zKfW7dsO!Y{ZP;9)`R7+xntWedRQThu>*FoHXN|S-y#f#N<@+<1RpUDk=daM7zc(l_ z-_;xAm5?b=H%?Jy^W!+ z6W?X9xkBUncHBz+9`qmd-*-TT&H2=oqiuX|#e;nL9=P0>?=YMdL%u)4SxJHB*Iu|N z`QG))d_OqQKi@@*SbVPwGWia@?8x^c2$8}1=Vt-=j>0x4XTJMjsO!Y{)7V_0@h!gZ zEY4Gk@t%iUc>6^jhYFi~|Nf1Q@4xUMU%qE7@#XtToWDZ8zxpCD-|z6GR`7lG}cgIlTJq5r{oX|tioNg-yPTd}-r591rrRUd^f~l0RH%{de!3l;y)(eapxTQZi0{*tbczTkniT$=H$%xYz%ds_-=>I z6&l}f;8yazp-|(~-hnooOqUvFW4a<9SWG*_vmC_^0o^ly7bmfh>CNeZnf~UKWV#AM z`E;fO#-{~AE6MYX@holn`RBR86^rLPaV_K1lK%qFR(x?+gvwz3^P_`6h)J9%?asCSVJ>4fTzl%;t zeqX6uKz_?Z3!VA>ysv+L+g-BweFE2#-_$>S_#KWA8LWSG4an~(Y-4if_Z)_@PW(=p z?ZfX#+)92&dF^%Kt%r;rYO(yvAREiA@W5i(AzrB*%c`+F7U!>!xl@F!TQ&S0r}3xHYR7ji()A2#P{Nv zK73Ebt>in#JYT0!^m)!;i|O|U*qH8y2Nu%~_PRPtsWCn8f@J!E&jK@@drUIjyS6XW z0qu3tMSuD{zqfy$NBnK^+yd89pC_E~(dV@YV8Z%Gmw^0k!nP%6ek)+;>csEf=|24a zgj>mPu({u-5Wg3+d7#B|?<^b3gYdv&*+HKhv8)=)TX5bA^|?mRz%1W#RI)rW-k0T@ z(C4=2{ps`1pZVu`_F0SPZn&2EoMSlZ^G*aXVf~|XK)&~5^O7^)RWWpR;`>Cl58wN6 zEBPMg<-73g_W_T^_uwyVe2>F}eEDw4vTA()hVxd)cfB5g`M&25$@kP}3(R--bN=`~ z*wa7XtIk+_e~xR(_oicxd>=&s6V^XE2ITwHz5e*FjiIX(-~7I_=5L?Gt~F^=X?8Ui|;RS zE&1Mm#F6g{2w=kcM@m4xuSNLdyD^5YPJG{n%@i8nS0|f%H!IZs`W7g!Ilfx(xsB;{ zcwjN@&|mjuDK(~x{VAF5@KIoi=CclLkukZj=)?|5Gx{c*S zcwn*Y&|i<8H*2}$yi^OZ=%0mc*>tXKiJ(r&qYsIJg>_&^*Qu+ zM}2+-AuyQ#ZX1yAC~RYL=DQCDuugnGjm;Dq-;d!|@}1_L|1P}#`f(_($@lMlY<&NP z2l?_nV}dW=Po9u`fAwKtzTep=`M&y8f%)D5=A7rpp1@{)fAeE^8y4TYj+=a!{mqf@ z>Ii|s{CAsxe8*uklQZ8#FqC!Ty8$*+Xna3|Tgi7bFW-f?-cbuGZ1R1!myPeB-U0Yt zKHit_=WxCX{j={s2+a3~dnDhtBVZ3bL4oGK!JISS&tglzKfWs*v-m!C)Z{zrfFs{^ z5CVhw@74kNPQ)1@8@%<8RCEumznEqMe>G#V}VUzD7pV{~h$Af(J zd&@Xqz8m3u74p5HQ((T`JV_Pn9rq((uYi0TV9uHEhS=QikMF8SEWR)PVe%cf&ynvY z2!X-;_uB#aZjNnD&V0|t(AJ6XcGygz@%;vFCEv~0nS2-CddHj4X_N1}dfNCdj|chk z{o5E{zFXpa74p5lLtws#?v#8#hJd{S@_iZ1IrH5DoBRFoUHh=bcX3=xe>`!IBj4{L z1P1%RS_R}g1>2gO`Cf>rOp$U^9ircYEAQzK{F|@#7snwfKIhhmG%OJjj>tGuRgZ zuDss^>V#8P$oH@91M~ge4$1d32-qti-yzUWXTCdPi@!g<8y~Xxz8BY$@8-Wc^4%37 zFj)U+5s>dRY-@7ndpm}=lsj(!cxT`%`T8_s93!2Q9uU;#%^ZveS|8z6gQA{;%c% z`Od<&CTG46XE^gc;u{~nGjS{VF2CBe=Y`jQdp@!Fe*PmH-${6oFW+G-tES%rao!5~ zzVu#TzE^LNe82Hnf%%U7%^%+b+WF_Z%YKXRr*JL#PTS$g_i%*3VEya$fP9a_wkBu3 z&-HWWd&*Zne2>JfNsSv9`L;?x!LU7}53zISYv ze7AqJzo`?__tba8N$agljH97NL6hmDnd%k$M z58qR9EBQ|F#*Y`CeoyOW@%`3^HoiOKLB4!H$+BvE&)6&ZF4a0P-+%lh`R-Avz%{lQp+0;s!L8(b#eCDA7vA`LX{yEd2Orq@?u7^W^8Fmks`0%Xr?61JE4>|< z@4s>U498=cj}(~iW_$ecy{xr=zQ^yf_-=!1$#?cAF9@D`2SW z#P{C8K79X#Tgi9ufABrO&0Q?Mdv~(&JqQo-<+~Bfs`1V9SjcycR)P7xWrO5<#p1ggt|i|&KRNQf6M;)u|9mwd-}|rnyCuu2@y+vC$alRKf%(2?o#cD!Lj~r$`%Zs+A8h5H z?^W9^zCXvcTlnXD`&NtZFL5pT z-oM_?H@@$F3E@n=SJ!Jqw$s$d-4k3X__F(4*C6!G{5bWTQuxg3k~p|ltnu1y$XtBc zeTjThWjnqFp6rUor@mv1@9`_Xi5`;~lo`%%v*VgSgk)y9#An=t#plTL8b{z8?GK_s zQ@kH$pM%`oYtl0QQeR~sgpa7ldOwowNpK}+1iL(G;sfnb#&6hD=W!<=mtSFLZ`tz& z?2=dCS1+P=)c$Z6SW3h9(ou^ykD~RH@jZ3*&GqZp-o*Mmg0MUB9N$#GkJkyVXmJk* zW##2^_|!Vx72{K3-Co^k0fuUTgV5Kp5V0EIsUyCCSqgCO0~X+9UMHZrSTJ9}I|N`- zjs-XpQBY1`U$&tdOVg5jNF( z^`*pWLA_6Hg8XEryADx|pgOobg3EU^OGfa?Fjo$eD%*SIxC~qbh4p;~%I}UX5|&;D zq5$^mS6Ly8aT#U9Rj?=3)f^Rp5F{GQURR9)YR}z9U063oH5Ewh{5+l{yHd#>`A>Gm z8mG{pBz#yHR94DtuqWM>#lk>BQ7d3X8^dYVvRo5bIN}G(Qe=cuawCmy_&F2rF&X%I$Vhc1!j?ti50V!KGfOm}_{&hd?Lq;P@aN3{V*K*ggF)^yrCF38?k^Km^HSHd zWao}%urTQ&Gp|l`LPPXk!*--ntoDfSfMzBIvvD%(hp;`^7|1;`Gl}{Zl^Gw3%V?pSA|fVrxAeV+iG#fd~ROFZ!PXb@qpt|Ef(ye=>|wFz=GL; z#v9o8$fi-PhZe&h#IV)y8aW6tV&yBbs`cU=TF-2*#iA9_X2QCJAe&IO-j`>*t=Ap_ zc5J=erI5omgFNoJl;Mj2gFH{ztYkY>it*BKD+p48J#HaRsgUI~$a0Ec-Z+y2dG1Mh zp0`Su=U)+k(tCBK1~%A z(4cuk`r`rSc>8Cw@YJ$2*E?XGwvR?2#Z}MfjUA32cf?X<4N_e%QDSdL{FW(913@gG z)d&^+WF+)K*r4OT;T?%&WMcd(`V$1oQKY6Kg@i=m8D+>=QVY-dclhl&=7$zMemh(S zchYX9+CUi2w`k$;>wOA!CEkMEcu_ylP)jP*S_-wgO!uJ04m1bqT2Z%cv~QGBAXL*3 z7F?3`YH33V(-7uhV--uYkLOyW>^qQ#%?A^>VV*`+Y#8*oGfr3#TM-InRw7wJT)WM; z64?jwj%vCj1<_qWbVh177TMsDjbIs!Rlz}?Zb9pc2IcO&4h>lkd2z2QdT}L8>>4~c zc~tEC=VSg5OzBD=&mVr_57_p~{vg8RE`3?pUuacZc@?_w!TW`<`1BFk{4oW31vMS} zKJ@AJyu3Wm+=|Q|<&gNfMNx#@dw^oRw49pe{k=)kj4kLv-bKI`)_>{-^gmP1uvMMr z6INk1#>xNu#O>pMw#O}vm}lrFbA7i^;-^1s4H+VlkdaDn**wpu><>!ff#r&Jx$%SI zN3anBJbRadT5pi9=%!Z!yP{t&lHweVBe{`>cWJ+!H*~%m+VoHfkPByPiNT8mSCkR- zqx3^l!6>BK;||_)S?G(=CfUCq+F+gKhu(?n-0JvqBY7$OP;LJU0=KaKlMs;awA23h z-j3NAC%(VHW&&-!uLo`=-;)cKZ};04-!)p=_^xYz@CY8{%lG+SzI>;ylYH-Q6qxVH z3nbt1h;1tf-{I^1@!d^)r6xr76;S`AP=k)4F!rynvG{%v*OKqnOMLk5ivTXH|I`l1 zch*UNd>@AM>BRR4Y$?$A&cv_%6TJAK#yguhcm6-ENh|_Y=65e5Wol`Gz(B3gKJ5S09ge@}Jf_ z`%maWpTAZ5PybtO`cK^WkiY+Qn%+=8{?ohoUHDH4;sXBDWBiL4m#^=14E3Pzr2M7` zWk@(TB>+5@Q$GO56qK4dGZKfGhQsuwr&sYDJ9Y4f96|2?Pf!* zsG)Ae0FpVKyHlc`kg3;|`b5-Cccl!36q$Zbib9C6A*|Vnca#Nbs}Ke$g#Jig^_%_{J8bmP#@wkF`1gYJXngt%AKEAFL{ix0GTa?E#$j6_WOSkEO zgFiLI!Jpc6qdyhx;7^smV);{zU}JKd`1Pl5p+9wXo|8XS5+OT?f378Fc;IJ8VbmCh zPTghA_MrM|u7~cba{P@fHnp5~!Q)8d8n)>;`dbjR7^7i3$j@4jyZM#8JPcei>I8Y} zh)$u{ClI?jYIt4VxQGn{!YI32<-nJy6SP;ay$x2zV`ZkL5r9) z=PX}>tGp?Z#g|L#+p+%rLFQ~!IGTmyYdN$}5er$O+?*(?K2wZ>BViPbA9>O?6lNt- zWNJ=!b?tle&z<5c)2rX+$5) zN&<3M&Q*G7#u%i0BexuVu0wMk4O0GfF$7@Y{GVqEEDvdhuRNT>HXi@-@N8Q@@^AtB z2sC*(hFd8QTbD?AfK>+X|M&86su|>gnVa%3vdK-zLpPRBlZT5q1BLC|qV7$~!z0rz zd02!g7s|sdq&FcCUn~tQ567^TJwJI^w^+)<0Hl^YY@OwmhYJV+!Ty(;1(t`DW4`jR z|M&dl;fXeWh?TPY9eg=`=8zh<)!nXlf2JhWl?G2zD6l*npu$MrRnY}Y6xbPqCCdA<1*JmPFikcydFx`>>uO>~9h@i;yfes^eI<3y|`MWSd# z_D-I!LOy6jIB_hvT2;b46#Zf#Kg$B7xn4685JrVr&ZkX(c@4LxqPQuS*m9A7ShIFz z@TTd_j!~Of>*6hYa}l^MiE|;)4AjRSRsNa%hhQ4ge)j28Ov^ahr|O-2>{CVD zO8ZoHjr3n2c63AK)<5aT2!~dsz5eauxw^f2 z&(XiVmupaN&Nr}CAt2@)lk#sb&XV?O8B$@d%G19M`oY_OJ%W%J?Ei}{uzZX<;42@Y zd-9Wy7MR9yl#h}feB`4zZl!#LZ_KKiEk%11Gr z)I#~_@XSrhN6dGYd~D!CJgmeDq=DsQ#O%QGaS@9%`N_ww8B#vRAhqP<&?MELl|TSZ z@6}D8V1LHh8gv@tn9OxeW|HH|Mgpm`R`(KIY3R(Riq0(5WlXw==76p(n`w4tq3B)I z5uveFeuSOH3N_YeVQ%BlSH&Z<1Y;21#>7#)wi*|UA46&V(HFIb28W?E@)|{bUROI@3tZS_af5ga9YJ(Qy=%Y*vuJ>y%y zFIM9nRkkNM)W*B7p**ZZL!^L7z%`KKy-4$gRu`RXAth)?8_*{Zsk05KyoR*qHi;zS z34nA2aRs?WVTDxBCl=jHi~q59_6sL*#ENvpKjJEM;j{M&5%XC)yTCpWP5U17H+LTU zy~ihLvpJY17$p3$dI;a@z51)iD8Cd{$nOd%v2hvJeCjAXq6cQi?40G-qEOUZr<+1M z1FP$JQYFv0Fb&VLTpO5~4BGK74L9b(eLUwPw&Hd4ovlP~9_ex4EyGe0u(mF*>f_he zcst7D?kt}qdfYALRWpw}XAi2EiqL>GS6jT*+%wlDre9KADY-uZnGEQe+;9Ym_P27%B6Q6CxD>f0f_F#Cx~!J$6Q+Sdac&SVu9tvk%vKh<899 z(KXRfVd+0$x=G{+gt9xjg3#$?_`7#L-QGhpV}c;Z(jpQcAO&0uuwpYCP>l(eu@V2rto)}O<=}Y|8-w364vh_ z2y|xc5Y^D;1mj~Uj>p|t3W;z_7jbS@H9{>_pra>6BY2~lhA+1op{6R(TdF|+Lz?>| z=V&2MnYByrsU4cxAYxB*#ExOcE^L17kUh1-Wz)psX_BCQ*e@(b)C3WiE{aiAE5>~A zL@rv`igBk_jM>FyyX?Irx!5jK%!?oCHG&_F}@lS5B%d#^&c6Dfo~RteI|E9HdPek2;J zwgyy81Ikc9Rct`NFSV-DR{>4CC>v`cQUJx+fbJAP4FHsTkc4*A;t`UhB}F_!mT6Nf zI>fBq%2KL$gs>MuvK*P1^Y<{Fw3FWcYK-i!;(D*4VYT`z2ySMB(9Fg{a9}5t_)@9S zB(X;89YPD5QL99Mjj$w>+wMDM%a_mf<#ub1)gYu`<0tlq{ajvuZkY7v(nSED&8T}BpTezrTEV6*UDS~ShYUMczvu*sGbJ&(>7V74{bmXYe4HU&}EIzoRu{?jx_gCbZ?yR*bQrB z&Uci(YMbxq1>b;W@wj^s-!|XTDFONX&Q-kXBfRq+n15@!f%5(RL#BM|QVXwb96MQz zA2{F;;|CF?ibZK0?;=!M`17+jquRC+M5K{;uhqs|!2rqZenhmfH?}BpA>L6Q_NF|% zgQ}nZOIH09QqR!cu$oXGSdS=U%6Cv5Tx5py{V^>4n*0SrqaRUkY0l!IIn)e}iPG>k z)WjSUabcZfA}*?PEC!9iU2tCGW+2fV3mKb)07as#Y)hj*;+RZ12~~BN`v>Zf=#q5^ zbs4P}Sak?db%<7Vh(rp3j6}UeezD9?je>F@EUa&9Ge5Qi@{3@8(5O(E2S!1W#v!}OT+1c*utPT5qc5>4XTL%lWJ6_TE?MqSMwI-K?*gy z-T~sss1JtHRzpgGr3WDPHn0q)z(%1}Oo6SjkxC+htkKI-Y|#lB+c-r_^M*1t0p%q1 z`XNQCQnzVy@eV~1t?`N))P9Tr3pV)&NI|L?xgcA_8!G|8Z^f7&@||Ypr}B7{`5~_+ zG7llPkK)=CTQPr*YIyyj@wmwplFNp+{2>$okA){7T@>SOR?_{$Cgnk+GJkP)SXD3; zlEw;_H4CIFxM_}6!Oo1$N1?wyB`Y`xDGOE&U_vp^V2_-~-8D@48pzJ0LENPv79lE^ zMK(>=`x*rIQxKxMf_NM$jTN5J0WxYaKNbybxRN_=@$UP`&o^YIl!iKzZ=obF*iiqT zZB^_mHP&2?U^eEw0BPKbUxylehX5_Ij>*|e@F3l%f=zoGhcySCoT$4b?t~Mv zX|iyHP0bWnRM+`<%Nv=R%s)}lsWP5f&9#;GxLc#m7QH9i35JDDh-#_@28xZxy@hR; zjMXFPX$GXfM6LURPL4IU4pH-gmsYU7>Xi|*#prn$2LqeJy-JzG#Q4B!JTV0biSafd zwn?!8haQ&JW$Gx?x(t@q1+#&9_;c3|)Qe`F71h$}rGUrYD2&{V!LzEy?tX8;&HEccp9?#-zSf{32 z)f%L*79N*aGm)YJIr>5aMtd8uv_OiUWLeTloVQg}RaQvb_xjeVkA_rHAvIJ;b&=+- zfMYqxisv6C6$L7@U#ZN(@^UrKr!U@1-BIJ`Ej5wN$MjE!57h0=0)(jaUR|OT`{T0g zFw$MoNYGBPxQvmPF-l|7U7>hTWd*i;agG~XzQVCo;Yo0H&p@=foD#%e#v8Bf78Q(v zM#N&fQ)Unvs5O3R<*65sS8SmyeOXuB@V3g$CElsh<@d2-~g zu~dvDvt7fOJ5(2Qy@rqw&TeuF0c{t3vZ^wYZ3Y1(5hV{s%1Rjf!%<1d0HzS5@GPok z?eMSx1Epfu=L>Iq4T}M%IP=9g<%X2TZ30aMQVuV}kV z8mFeONbL_BkOn!&(nr4Vfoz|EoU&5Z#pAxiG+C%sj05(})mE*O zZP>vY_GCHk6t&*OwR+T=@dTMoN@v!IV69D4`2?|3C^h$)*sviBIjf7O)Oh?Foq=aD z#HN)+OYYufS%a)8R%=Id+>3XcDa<5dQU~kDVJJ561L`464Mc##Va&qZDt=Bj{iJVI zy!CzjbC|>;5R=?QPP=g)6|&8;2xpJd8^@A77*A7w1|~upWI-qXv?5ni)ClTz45;yb zyl0qe4fP>{)sGgU(o&M%3Z%E@15dhZKVM<<2nCNaLRZK_da_*S`I8vh3fVNa$?}Ui zVTgXDCtFySjJZM?k!N&ZBZU$YfD%SrMJllCWdXJDf9ZuQ*hIJ4GkduO+IhZ3n`@Bjp&=cOEfB%p<0|i0BnT zx9mAEm6(FZ=5P)A%ceme(3;9F7N)U(3%iw#>>SEVbsk=hzOe9(&Daxio?ODPq>5kfa8qmq5vPwg3Krd)O$2mGgmBJKI2?BBYL{!OI zM(!k#66RP{y3R>eRi)kv=}{Zf9w@pnj%d7|3Tfg2*?6Oo0?9iboyPpsc(e-hL#g&` z<#=?5=7{#wP;XbLbMO`#$4l8e8fpoJ`lLdwgfw>+bb|Aj{i%0qJi39`+Hh*=(z{K) zb5Ue$^OrN8L_Y6Rx4QP#{6kN=D`-Vto~2wh*K|GSK9y*EHirtfB~&O_t9WRZoUGyC z-HIfP!w*uWp4=(NSoH>)Dkb(yV+DJ~GU^aCDvpkhF!=FCdAufc3#}cg^oy~D)EK2= zRJVBi94^LaoXp|EuN)}KDU-a$X;3uIi?AGCMVlfO4KsR)cx);f)~8gA9dt}~X=#|V zM=S_+Eq)ON(>q#$uKXONL;fo{`pxD=bgToGG2)k#HAre$#}QhKBTZM9g(85 z5M4^5cU5`!LgFklM@7i9jfQh#vBVi-!>O&|9LtqBcPgCX5+`0XYzUCieAr(ka9%QP z2XOx7%&O}5`zV~sHk`fRTJ`x<;Y`{q>oW$a=*rnkh)#=RVfdTKR|vE0I*p3RTbq&r za=L~bqL629MoT6`mZ(4x*dL`K2P@<#h3q1-@~^t{?_h$(J>XFi!(}VM1i|IUW`rh6 zP*f|y=lGReK4B}t!EsjI`=}A;6!h5Say(MA1Q$0Ujxqy^q>a}?|25}M6XaFs!dehQ z$h^;Z?K#q+#%txGppUhwk4JlJ`e>9uAQIxAZZ+2vAl&1EMEB+!{}kobLa{*Rnfe#{ zJ+|beZL)7$mT4-YhyWIS8;^kzt7OJF{7U`Ox;A!a?AAEP&neU!yS28^w#sM+Yx2CG zRJADI$@95lNBJN~n`6KB%REYmJ_+&mb+mH|*o6KZTOiwfz)wQgqJ)Hi}=q>x53RMmqqDrVx*>Y0DTTeLMa00OdqQY_=nT93g=UWQ_+UAYm9~SiNYEGtHc?B z6!o|FYPSd=Jy>_J22@f3E#2r_p$;0*T?(kC0;(c`#Ns|&DdTzOr}~<;^Kp&JcR+p~ zckFl8RK)!n>R7%7(XD4gy)@dY-pHder`5ZVq8XPUMKj*emp(j~gz4_VtgHA7)sWQ{ z(t#g+>*vvsswkxYDWq4B=FW!n(-HT$)1fuqevQ|9zt#`Sz|bW4lgSSK+OLtwsV((r z^rzG#DSN`d7x7pNvc>#Iaq1JJ2{N->Gnu5j7BZ2C++=3U@ehR_LlG4jkF_7~ya-o+ zAzh(ZulZSabS?Uu`gILTfUYf>O&GGSEZ6lQfovW6S7|VE909;{FsA$@UG56}+vv>V zncZo~Tp1AQMkCOAj7UsD7v~*@hNGM-0F6?~K@!>_?^mc{HS_O|0}wBHy(CFn$pw!zjb(h2STY(<~%P{_oZMgZiEhOXtjGm5WvK&`YM8ttlIo0w`dW zE1&ocL`hlwaHs%&ixxtveh(dq--&?gMRVW^acqX515`88y{-t&xck?jjI9|PtNc~v zpIf(f9fLPe$Rul$6zAs{!)H?ZytAVyYPBoKOm$@o=1AFXxn4+LjA<^yH1IhXG*V;s z?U04ofmF10lnZ6Hf*hZj1BmkgEA@p9>S+z?Aa--HQf54Xia+6ugy@$W{>aKaaoLKRx^~H`OfQ8H zX+zjeP8DZq3Sq)_{2jO(g%qSkQwus@zyw5hDlpHZh{%J^auFHh!DL?R9m@A+LBZ1hYQm1*D z;%Y`M=Oxdh;w&yC(^6&pAXFJei8Mai$W8lrL98o1I-QLsLV5W_2zQjR`XU;Dje_Q` z2N_{woLK`YKn6nI&>&;KM#D+B)ObOS!`oweg+}2Wq%d;qpoQZUYdn;08V}AVilF2y zp~IeGVub^ZnH9{X4kVnu#D?8kml2=P#aJJVKR~r9x6rHIZe+x{MY#%uDutlJaUMot zCc8>64nk$|ZX9kRkT=Z)E-CWicqa*IC^Uid+rfE*#B8v&G+K5V_{O}aY=&SX=YrJ? z@sM9OgRxqeE!hkaSRee#YKFMq@D7@+^;X#o&5?@y!u(XH_SX#g?$>61Y)a%; zpZTGl@iGq)(Hwzm7111)E*6(D_DgngA&M1}L)uO#yzd5@>x^AeEcPZGivK9#w2|1J zFRkMD2VJ;br|~0sA!-5_+_s?cXQ~E>pg^4LVpCgQ~gobyI5EBMR=t8BI9f~XtwB| zOHHIczxQud_RkP)YAzG#G81Sw5{NZJQsTWGbAqMK_*rPPF^$KrphjzZK_x_h%MNHv zl@-gcQs~oNUog2|WknlY55RSmA90eGN9h~7_M#by+L2zD)}y#s04as!k~o1WtnXFi z=RS^uDGuX;e+iAo5lq>xOkN<2rhmF?ATDuS*wSm_uaD!!j59bh?D%C3;4;q)yR?=7 zskeGhce=C|RS8NBF^?^9A1#u43(hn^ojf@LVp$L}H;#UW`lY~2!|+w8eVVK6a{ht` zrSYbyC%bx_o|c*8TEq5B#eR7%Si<~p9W%$Zf=|<+{Aps0jVPY@^c7+0hw&Juw2RdP zr?_5&c)*apZiN0oq4Rdc5U?p{Av{W@o`6VF=yoj^!YzZep}C(AwS=xR$E={J@g^yB z4Uj^mZg4nf3nYDn5U(MvnJSS|Y)EA_q!k=H0?A+q0L1$cQV5f%w$vfn9~<=ql(!>B z1$O?0KT(zXpMol4gPJwOs#FsN)l)%rl~8PVm~k3prL_Aev;8*RW`#(!)1dyGB5U;} zVt%18-uA1jL7m`u6t%irLET0untI_d1{-CVpE5~fm>=G)i~Kz92elQ;^Jnmjs$h48 zTHc1bb+A>zRE0WfBmNF;ISeUK8Sf~J(FEqFP$L!URs2-Zw zL;aUyJCwhoLVXbF$vQMpRaPusDs7Opi30`;1_I`)bdWgr$|uHPDD9M7xG=sii^9V` zfgRI6HDM88pYX_>EE4nOJWmAQmNnfG?|CA*ml5g;zsIY&x!8lNPH#IcPEW%Zk@Ac? zx@g`DiY@J3B?K-Z{^QF3yS-bwQrf$nJxqJ|0xZh^tG(-|*}L|*7WS?&E^f-+HN}hn z*Y@thC(_<|62;=!P1`)i)R=ZpGkU@VYIZM{cCP^qx<9)YF~M&4W}mV&=&A2<4YP4@ zv9Bx-7+`5oRStV0%day&0292JX$w2C8 z_ZkT(-R>PYi9bM5aaw0lRsWBaYwoRuyb)WwOiR$~yv ztJ{Kx8q~R8WUb05sJjWJ*}V$PPg$Tz%nxnd5cwgzNJG7L0>7vV_EM;kHq_l&Rt3`( z>V&oUJFqqisc!eOnV&+9R;arXkLx=r^SOq4n?jw9xAeNct)UiIs81-=ibSPni(Uj{ z5_2VG;CMEwzLN5Q2J|i1rBJ?T1G+jb^Qq1*HY(cUsIsfD2od0 zwswqSVGh4A{?tXcDHQRVJTwMvkkJgI7;l(D4!>D0lDBr^Cp zj^^VXyzIsZG#o^wLEU=Mk;A#f(#L>dX-?`eFpUR`@TC%rt>Z{v748|815Kj^=bV*v z9tOFj?+ZlpB1`W=(bHd8^d02j5(O;2TGIFLDm45smv96z9!hu71N9DvS_!-wGc3G6 z5qD(bby0X_Yp`*yO@kR_&L?7L;3qDxsie%=4{UOAYE4 z1@)MMdYDk@E_KFTb6j$59}U+Em*MiVH7+CMWm{a9#$_A4k>YWScj1UmO9i*#I5_<_ zJP%(O&F0~%b-F8xgmQGn!EOXy-r z^((w#HtYTPl{BtKWUo%+hyAT)Err1>X?$*_Y}Oh`1wsV&H}dbYT#Q<ib% zvl?u94R!*!CTyY&_F6v+b{vM4gx#=0!mdCH=_&66l?OPi_LjQ@h3`9YbvPU z5yz|7aIgkdT|vF6pqdaW-6d4d*QPBQ&1zlKs`a9VwHb27YIU_?J)&X#$k8mSb#}R| zRxVOtMN%+)u^I`iJG4`U4;-=T^_IfA)rPg`bE^s8R9Jl#R!^i9CSp;iQH(E`rRpK> zWR`d~AHm0PQ#Ih$8nA)pW+eyVExkeGHQ*zgWlo_AI9LK_YruDDz{8m(fNKfh3L5Z9 zPRc4KJ1O8&HsJMrts1viz(bee?_dHlk)m~@;5ge__v}bAc}nYiKhv;oQCL%F`Bw4` z4J(gBM3lOc!YU`RXt+(k{dG1FqABpm$8WddkN2aqT2u}JBp?KRS7ebJ#|C?4-{p-z z?iY?;@Jl19jfy}1Xc+sG^{3gNaP|!K9mhnTM<6VQxg0JR;+AY84-qcof%)iD&`Q-i z!|sSvb*9qJ;K{>yfygPzi+_ucp;J<%YyrV21jlwkqt{kF?nLmvmiePMUgLjH9u0O;u zljR+H4Ay8Qj=nD<#P6ad{5xzQ58x4r#Sprp6K$R8HQ)(cs zfQAa7N*d5Z8qh?@9&7Zn4d{9wt47~$lt4c&ku_S0lr^e>CS+Yy(^VEg)it1nhwukf z8I&?k0Uep{TccqbP^=^_a<4{2^Mj{DtdFc{{#WXw6+Jm@!f3cG@JjZ3s4ws@Q8LXpeUoChfO zHvLpg0Eqd{N`u7sKesBs=K^EG*?kxj&h=+z%WVxga$5tGQO$C~jX~?84K~ig(KSPl zNCN|>B+}Ro*BI^sLTGpj#0gsB%eNX~>G8@4E#&W98=%a}b-BF8t=*S#ko;1-Qa>!c zA`)dWgFOs6#Y73L2v-;2xN_Px(x~vIFdLSa8MQiwT z`4;e-Yxv>B=dvry2>h8CF*2v!3*@_7kwQJJ4I3BG3~ue~HW&xt_o&Ra37OsN=gvaF z;vjLXlL$tV4aM*VTSHwLW^br|`vIsL>ULGoIa92Ldhb);hAN>7`Xmd;21GMFjBAg3 zF=RY@>gTG?<9YvuX1C(6TcayWl%xR2B@ zl<@@OIeNCCxc0cmm^z1M{T8{3Ur8L^c!)XU`Hw%?iTg;yzdBsve}}hB!D&i-jkrr| zWKQLP$+DJ0np<1Mj|z+9odR4VJ9l*R;ZmYP7Z!6kv$roxje3m@K|cR5Zs6S(x_FN%(y#5_G6`sfz^55|L7$v5h^H9Px?;06-J9ytMult|FZ{8f4m z=>N@41Ky3b>~BRsP8Wbt0OlseA%oH2H*8WA@li^&W`bxoPcwuC1GT)_jfbRJhAvx; z6n~kEccG)3kP6b&U}pawJXiYLiur-S5HmmJ3M}k_{7{pbG7qsyF&)?JJR{+>JO*$p zJg6;{iluQ14{9@r{yNj5o+MxA#ykJyj zk<568gNr6F$?b9CI@0(dRZ1^3hu@J3#gIm9RSxB=At;KNvCi9ylHNu5Ma2;z{UW!- z!afT%MZ27zLh=6YTe)%$)rtqYfLgp8EyhgbSi*REsJch#4o>oI`2n9;Enig)WM7{n zTfQ;U+%yF{$m8w>iS_m~xwd|$T3NH7*-6>8^)tT~LstEu560*>tj~uDzfi`%WKf<< z{2}@qR3ZxUSYPi~AaF@&3W#Vj8Xy`+0V#uQZ2Fb$5UoBWL5W$6Ct|T00nhOL;8dfL zxg9RVG;y(*aN?Fiyu6uFyAYvw2b7h^`qo^@kei_UwuWU5hG5_wkGsiG*~&&sf^h>5 zJ1Hq_$Uo93g&9bdVVca)vxJ`%F%D)4$%sUK==kF0U}IxB=p%RFfNu&ibj&EujFY|o z2_B32m|DU3D6cmjE>eV0 zP^m+8vl!@@&))uV}W2c&QJo(@mSAn5brbLqlLaKq?_1aPUq6j zX|WeE0ZaQ~3$YS@FBp|vEc?XIf|=+mnSm$v=+CFkyAkTFn~v?1>QP*W^v7}?aRr{g zmbUo=FU*aA2mH|E)zdC~9p?AUCv4|f34w<*s^iQ5;#zQQh&Oaa7l$s-N^Ez;yu=VB>koxe)oi^|*h2PpF?u zv1Ht!j_3FM;Y9ov;Wa3Mh!T=;E) zUnNzToJLh8zo~b*@Y^5X^ugc1`OrVVUub@F@qMd!eg~kZ`SWiSw{KKpBlv}8RPoe& zKl~oUJy$n=m*FO&a@e#&I8^-J`=pcKVOKi&4bibDzY#pNaGrk)u8{mrMQid~_pD!j z8}9YuH}bIyzq>eH@q2B|A4M?D??GuN z;x`Lb#Zue(_vQzML-3oT$K&|zfpO>gw;Y!q9{difHI8a8BrEyN8|A|9%sJ%uoe%u; z+iIJhWzl`jlo>>!x7wLR1UMj4{EFUeXiKa z@4_xlers@>*PGv3Jlb&bTY0(UcRgB@-&A}h)!+FyGtZ0P+LQFb%Y6Pc6*6>6tQDs# ze(yhJ@;kg-@;gfQ34Z&dPoIC&X`r&sRgSqhA#r!}NNrzhh&T;a)x3iPqHgxQH{!PIH7ALZY;BGH|Q%<;?e+P5A*1wpb^+O52j7bgxlZd} zX(!@0imE#K-T8p#H=@Vm_+5o@C%>t<^6=ny$NL5*Yf)9De@D3Rdk)|3f&Trwe}1pf z=ig-9dyeP#Jnr2#&u`&+Be4!hj8$AS+Yi4h;M$GfF&hkr)%-56asIvf2`9hpE_L#o zL&u){25^nxoPUFyuJtb_Xnyzcd%e`ZvQO$? z^l5%8Xj}NrXWG=iT!+dp=Q^!_rJac1#y`06+wy+lkos4T$MJh&vKzm7xbpDew*`KK zRh@rNqpC{(4tL?V|6@Y`zVDyk>omW)xMv*C?*Q~P&u{caBe4-kj8#1KxF3Fx;l8UI zzsqoMQth;9iEya(Z;_MVVfdG;?e`x-bnMA*1lJf&ehct#IWzUCXia|Wp7P6Y!zeF) zBXut4-(8%p^)If>HNWk-Vd`JmC-pDBWUKkDr)}Z4f@xF#qMzv>MKI0pL1`!AHw#t8 zQoH`0C>&D%>hU;!dtlso{w>FqhX=od4j4zZ7m`)_cc=@${QeL0??M0k-lX|0#jWdj zerKVld43yl>qg-g#^Giad;Xsve!DT4i+(tQ+mgy*wsffV?_*AW7vdj>w)0zqyT;!9 z*5Vq&$!{h8F=nQ|9<9l5YMEbtGjI3exAvbd{I=qBt$#l-`5n%$6NBGTvQO$?^l5(6 zX)3)%Nj_nKm%XQ#)EZ1rMEA2%5Mp0EKzdP^M{6_S69KWkD?&LQW zR~{bx?s&(*WG$+y^zY3s{GP*iWuSle`sa6==9k}(is$z{zC_eKzlAG|#5y1`R&mWE ze)wGh*KYid!M#j%{;lS>d`YI+p<_>e1M;zn?fFG!8_91Uv?jmh3;pt2 zIoyliz+o4DgPgAQFD7Vy_wn1t)W5P%>RhU;!PmFcrHxE}H9{jd=+c>JHQB|dX2fFav|Mx=wzT= z?*Q~P&u_HcNNfZWV--&o_~G{$zL@03?=svTRQxtA5DvBeeaOl0u+~m~Lv-xPZ$v&e zvGH5bO7c4ut;uiQlYaSaz`q3x2wk4PMgHo-?=DW)`WIK`n&0-^F!itOllphQ$!|Sv z3%?aioB9|1to%^~)BGNkb|QYWP*p6o>)*SDL+W2W9>;GFj62W2<+$?j;CIkY&b)#?#<8ZTzJ*WHOw;O}G=!YY? zJ*XUJONUzj{@%&&Lj1GT4*kn-DS7f+D<7NK_^nKm{H{l9@|!x(FTa^NUi{X+=fZC* zPS^VPpvmuWercHcSN2K$i#~n+O{Z<)x1MQJ|8gBF-<9jM{*`tjehX1mC%<#=()hXuVh4(46({}955MCW%!S`B<_DrkI@J0%-^uUZ?@&kk_aErkliw8i*u=(f!?!Z^ zGiXhI^XB^Hw_varzbX4&_#MpYTK{5#KL3{RtHIR2vQO$?^l5(cX? zmg}_sm3AV2qo}Hr-<_j`L!5sjdOVKbRTy{jn~EzB4}N!48nRi%G#bm6!EeM0|M`{(yX&2R3jc76w-r+I#(e=-sqfy7wFQ}_Gf_t-{v zewX3)pyIdb55l3=zmuK(4*S~4Z-|aP`HjfOCN_Qx8fEHJ(VG0$75U}20smC2hyJZ` z;dd9OYyFEWbIosiZkYO4_DTKwxXEulZ418@Oq==_{jB^^1k?N;ly)M1vrttmwd>#8 zghT3IJs!tz4~#p{zvZ~{@ZfjQX5*;#Lb6K#X1ee@bG*>MTm19;w&u6=6+6GP(9=A> zjktBAa0}ybvx+?@`Qf)4gSqI3Be*@N9A-<0TL0qD|Ki}peSdP{S5AIw_=j{n`K^_Y zO>F#D{!ga99<9l5>MXzfX5yc+b?3KsmkYnGI9==C-6p@o{|{+U|H?k8f6=GUzv;9s z{MIvV>R+xy<-2m7*1ytD#BU-0sIr6KxxrX+KffPne)m_{`K>}v^ZaI&8i^fvOjdCc{-FOBep9yj@BcEG3%^~= z4@8l4sP*r7C%=2YaPr%Rjy?HJk&jJm{5CYm)X$(b`OTZ@m*0XcFMd;YxbQoe)3yG^ z1bzN3DMT97zp_v2U-W5y^J!c7O~>|y{^dIGJC^IT{*`tjexs#mw?-<<6ROjF7M}e1M;znjo-|(GW9-a zO@7N~_~p0qMlXH?TV41Ka=O;Pn4tOH_XyIU{*`@F|DsRxTS42xZ$8te{^dGUemU1^ z{VVN6{5Ia>#&63U;gI@QkH_(Q;ubf4^Kj+i!EcMd7)SLqs;cyF9~XZ62Za88)jz-A zJge?Md-5BRk4@^a!fyrBrv61gD}NNhG`|O>orvEoR256@`ggE!Nd2qF=q5H-7l-#$Yb` z;RtRIDu>z9q1L|vC%+5po&46UYL4Gp`Pjt9Z{-=8`g*h`zo`%U^OQ^BqF}Zt%}f-CVh4UNt2k+lAAZL%m}Np<~bUZ;E_uV&k{rW10FH zv?jlK)BN&VaJ?75{P#&6{0`=Ht$#5=>xYuxAr0zZ*(dcc`ZT}!v@QImWBWq?avk^` z%XM1+N;?t1QB>8*@6MZqL+W2W9>?!0j63;F#g&H#zdP0%n5;!rmHxfPh2L|(7W(%k z|NLI7`AvS#&hL5r(VOP^E&PL#SO+A=Dy|vrhu;-&?Z)pI+{;ww-|BqfQ0w1OPJY{+ zcJiA;$DaHKV43f{FXo9m*2`hUi=1LbKy70>019{g64PMRHQ-uEBmDW zMW5!kg0_Xcep{?I zj_PStRq5YuF8uZ%A@uKB|NQpT{N^sV^E&`N&GXCOPgl5&Kw_-osoVYVdklY)#Esu& zxIL&GHcb%@wf-IHdBPwLu5!SA5wjicHN$twMu>ca2LVM71D;Gf^&n%~lho!?pLX`bIk+`3V? zg>kr9#h$O{Z%X7=>rxAtZFu>bxWr)&NDiplTrNl1hGSN2K$i#~n+O{Z<)x1MQJ|8gBF-<9jM z{*`tjehX1mC%^>`e=6EN=Nw+>ex9{kRE&N!-*QB|dXuW;da^Q}VvKJTC3 zDVpE?`136B_aCaz(>%Xfj~a;`xKCDbQm!9<$1#`-zg^4^M3Ho;_3tnzzk5G)^4o@v zJ^0A4H--bGw`Wdt)zj?p)%WpvsFMd-hT=*T#>019{g4Pcu6Oab=uk4fh7k!%F zeA*U%)3JS_f4L6)j^#S7f2Ey>-zci;fgpskrj+;CIJz1CzC= zs?xugyYPE%h|s^!`RDf!n&0Hbc7D%4m5ATMhmFKKATd^P&9D6My8^D=_#K0Lndfbz*-+I~>ek+(Z^)LEa`J)J? z`8_D@MEquj^7>_cbzOw7FV~^+UAa!{Uuh@ew-8lz@;kSWa7g{D$K&{&fN>|kb-42I;CIeq zYv}8n&15k?fh1ur+I#}@{Pm}1Y{K_4f4b9I0kd!w~P6K zD3T7f{{5ws-@WfU`E5hTp6A~b`Pjt9Z^K_@>SxfJ{N~-|m)`>X9Tj(eQ&zh0JDAh8 z{>22XA4R&w` z$L}hPJNZq;m4^qvJIV}9)}pFP|F(DG_uS8f{$1>!-}g1Y$@A^}o_{hCzlBqb#5y1` zR&mWQ{P4R1uHE<@gL|3k{9ApeaH#d~O-_E>9dh!UL&u){2IONC8^4(cW$Jy$Lur zb|QWov)%Y@*;6>A{?+4g{GLd2<2Mgi9v=L*SY#a4)2OP_zZbjk+rPiizh(aU{Ydkh zJI~JV0Q59}{*6vD5*vZUSjAI6_rve8Vt0O*;r5{7x9JYyQ0w0TPJV|SaPk|XV^4k~ z^0A4H--7)z^{Hr0e(Og1<+lNUNW`7r$TKed?&5Tp%A4M?D??GuN;x`Lb#ZtTe?I9de|LXBLetTftdHyZOm4^qvgG!8}+6&1l z{oBTc-ztt(nstzqRtQiH+aNcV+79(VG0G-sYFzO#B@ccYbS^x$xVH)3yGM znEVd^HPWE|m3>nGqEDZH(`j4yt!LWQzg&mPcjY>*f2Ey>-$GQ?$?x25!Xfpq9*^U9 z0>+*E*5S&-gWoyxjiWjlRaN@8l?%U{ZxH&o#6Q1Z==1OXC+z%Ip{IF%v&I{V9T*|2 zIO(T;_#MY!F8p>eKM+OIq1M0soc!*6$H{LSI`%yOrpU)8HhvpwWa?+on*8Ps_seeq z{*H<}zbQ|<@H?2(wf@BftshEqkp}gz?34NzeVX5V+7^D(v3;R`xeok}^LaVNj2xbpDecgH*fleMU-(!WVA{GR)f(7*Hj^V@ER`uThmJk@ z4amnPHhwdA%hdazHTf+c>X+Y2{2>u{egjXr@EhcGt$#5=^Skd?NQ3%U_DTJVKFx0h zZ41BoOq=?b>rnaST&MM~v=i~$c!L|iEw2;~seko&9KR>7aN{=*R~{bxwg?(W^)#xg z^zV1QlhnV>ApRX?@%PvJ_Z9kgo_~I?)coeovhzCtJnG=9v7})3)$i!L+G=(a*{sMKI0pL1`!AHw#t8QoH`` zA{hU;!dtlso{w>FqhX=odW*bMf7m`)__Zt^}XI>}t?_B@<_S5{9&b0G83q8&A z+lX5?3b!y0H>=q5M}GM2#$Yb`;RtRIDu>z9q1L~Bo%}A`=H$2L(dPKAm5)tq{8nz2 zsjo+C@|!x?FTa`iJ1Xw{^4}+QJb!D&>01AWO@4z_^p&I$U{p@H^*mD`{(zLRr>qCGwl3Up{IF%v+gt!J8-kC;-qvx{ElNV7k;~#ABZC9Q0w38oc!*s zcJkYXjy=!6De|$2jo*ehW$I_pn*8Ps^viDn{*H<}zbOk{_#MpYTK{5#)(<6vkOuXy z?34NzeVX5V+7^D(v3;R`xeok}yE= z-yO3IOxB{RO8@@Ph2L{O6#DmZ|NN$^f3PK%Twv$-{6mTOExf}>tOF8b71#9k!|w{X zcH?&p?q#a;Z}l&QL#=_nBUw$jU6A-$6 z|KUj&euJE@^)Du9e)s(XX;A;lKB<4vr}?d*ZQ(bcX;c4l9V)+^>$Lurb|QWod%5x3 zvZHWF{j100_&xD`H-7VQ<>A3^i$de5o<>!b{{6y*-~QJK{X5G)zc*?9ko%yW-vQ`p z{`?#LwUO8eB*rS9>gk8yW50LjcNuOEDt?=?g+r}>)13Sc+w9~wM8}@|M&x4?8@~l_ z$keBzHTkU@;FsTqZv=!c{6>mh_}#_nTK~=yOU1uG)Serr{*`@F|Nb1~>fax#r)}Z4 zf@xF#qMwyNieQ@GgVIjKZx*VGrFQ+BEF4n*>hU;!dtlso{w>FqhX=od9x;w;FC?q< z?^zdqXI?Gz?@a&v4%hsaPP6kn3q8&A+lX5?3b!y0H>=q5hkp3&#$Yb`;RtRIDu>z9 zq1M0GIQd<;$;od`eslcR%Eu-)ek)&-sjo+C@|&9Fm*32<1%xjA*3NO^w-u*r{X17I z75onW8PcHsm3>nGqEGXiPTRt7J=3QC%Xf!;HiZ^p{nf z)ZGui;~30^-!A3{qDVT_`uA!lzk6SG^4o@vJ^0A4H--eAc^)qNqe)Deh%WuI~ z0zwylQ=Xs?+xOQ8bGp{Qn4tAT$xo36^{?!c`WJng-+bB@e$%mip?|p!{Ep>1t$(GR zh~Frx>g0E48{v@pSC7Z>y9(n@ep7Mf;lb~Y2MtWtqN+;&o^j##T#C@Y1^)T{o#r?B zemlSCCnw^!@Kz(S4oHkuTyvElepkS?8^2?4FH@a=tNRIuTK}dx`EBv{4RX5HznGx;-S-ouLH#THr2a*p=C^{j zh2MOpP5sMtsQhxS)B0E1iTG{o>c(%&*1{q6uO5%%_e3iR;I>^=}5owf?1T;kSZmQ~#o$l|PDLn%{%cPQ-5(s*0s{{o6t~r2f_8as2kc zxbys5jw=rjeg{o8j%qI?tMu@~Fb+4X z*fYfszug$jML!(D?Lp-*TRPPG_i`t{3tw{bTQj~nerx4p6C1yk>tyQd(VG0GUhkLR z%>M`oUHGkils;_wp%tfV{X0`EmHPKbNQ3%U_DTJVKFx1BZ41BkOq=?b>rnZwT&MM~ zv=i}Lh^jjIo%@~m*QBX`^>`e=6EN=Nw+>ex9{kR^-#Dt1QB|dXPq^^Axs%YpQ~mS1 zR`a|6UOT^4=xLtctX~?59q22oIOzv|_#MY!F8p>eKM+OIq1L~bIr-hY*2!-hI`%yO zrpU)8Hhvq{$kflEHTli!UF%;=(E6by9cfVi%08)o(Wm*% zr)}Xk9orZBm+QdqSgzChSK5jAjiRbfes_MO`HkrDIDS`Q+{te$t~@;W-7(R?WG$+y z^zShje$RCf`uBeS{EpeJzyFYD=lA^BMEn+J8;Ny5VyxntOa1V>0ik=M zop7l2?6C1yoFUZvUpf&j|zt%6ml`#RK3%`MfT=)%gy4Js# zp!wa`8);Dg%08)o(Wm*Xpl#tdpJ`M7avdtaoa?mym3AV28#}r2+wyD8Z>=7W!b{{7H}-~R1|{+;Nb-^cXdU(dbU&hG&9G=Kh$;?|AAZ3Gfy z6;E~a!|$Lna%{ri0(c!4 z+i*%i=)!O0_b&YI;&iQl9~4Wa{^f?Le`TN4zdbRo^)GD;zZFcI`WOAI{80qc{2r8c zB7U<_RV=mZ->)>kDSAAP-yRruo`1`6<>A5apmD}g?S*8O{{6s(-&b)#?#<8ZTzJv;c}w;O}G=!YY?J*XUJONUzjws-Qo@Hr>HHFq}0 zZ>@Z6V&k{+S(*BJv?jl)J^b>U`H_Ioh2PqI7k*oDy4Jtb#8Rn$e~2`we`TN4zv$Ea zrqj0YThFwqf4L5o@5*&r|4KU%zlEr(li#^tXnq5FJdWQ97ce&^&FM|Co) zs`T#>7k)QiB=qk%|NK7sw*LOZC_BGZ=xLtctbRsf2dxYu=NQ3%U_DTJVKFx1FZ41BY*uK!eTnB!~a-G({(oV#06jgQdyYsB(H=@Vm_+5o@ zC%>t<^6=ny$K3`dYf)9De-FFxd#zj^-o{fY7YhuiJ^o*$Wr-@+S=#5y1`R&mYu z{P4R1uHE<@gL|3k{9ApsaH#cf8z;Z*{_Ny8hmJk@4amnPHhwcBGW9-aO@7N${qkG+ zp@7hZ-@s%SeuJE@^)Du9e)nC4G^l@NpVYtT)BIM@w(y(Jw5fl&4wYZdbz1*QI}yK) z7rF7<@;{p2T0I`e?}^Xc_|3zWhX=nc#u!KSG^(of@B1$N_D>S}_iq3E?$G)n_clAf z1JKj_`8SGNHww2ANQ_lH)!Glg$40pGy9~DnmBXg4!lBl`t(^Q0Tk7ODM8}@|M&x4? z8@~ll%hac$HTkW(!Y{uK9|#Ct_>J7>!tX9l*ZOy&SSs}|H%$F2`=tK8660F`(zfth z!L+G=(a*{sMKI0pL1`!AHw#t8QoH`G*ZijF@i=~aVBC5BEytCI2fu?x8%MPll2!Wm zpbNh&Z|!&&ep_+6*1x|M zOQrrzK^oM*vQO$?^l5(6X`p zC%<*L^6=ny&h5rgos6m~{kz|V-_7UA@ApRg=l2uM@BX27eyh;aJil4j8HpXZTvlc`7kzu!3dZMVqDZw?)M z@*9wkO>F#ThGpt~(3<>~U*ebF%J&6?F8l_@y6_w1bgh3eLG!!sQlvrsEBmDWMW5!k zg0_X}GdKIMn*L(aG1qD)lcnO#LhSr2g%Qajk!8TllSD+SI@3XXTF~nCADOv=i~0g{oqyUH=}}{HEyf zIDUIz+j$CZZ%zk_~d9MxV(R_Wi}F8t1H5c+qxe|~#teoF`1`JIKH=J{>Jts8|~ z7>Aox?0L=)zug$jML!(D?Lp-*TRPPG_kT`)7tVL`Tl352_^p+XO>F#DJ}FaQkJjWj zHQ6t}nFj=fF8tQs>B4U-PS^VPF0oYV-wsHF`d9Wz{fj=$Z#r!Yzx7O;`j_ia`L0~2 z^{=!O@mq+hI{BUZq2@QB$K&{&fN>|kb-42I;CD`raa1Rxs!IRvaN&3Je}(@2m4AM3 z(ERSd$uMvh1MOuMCw=LM-*F7)!fzMz15qR$YW>^be>@|$Md_*J=GL?L_=WQB^0uJ3r9;M)Y_bzpF6rwv^q#WkP%;dcdGyYV{)_cGP_x4Nxx zsP*qzC%^52PJVOf*puIYd~9OlH*>B`y$@QG-|{wo`K^3MKp{Xt>(8@kH_(Q;)ol+ zdARcM;J3vfLZWvQO&Y))?3Nm$rr93Z_l{i+)!AD1vEz z4@x@`zgeg%mfH32-!;D}dOVKb9vF9?f6H;@;lb~qUl>QV7m`)_cZ&5X=NXQ8Kgej9P?M&TC5;bs+ke(HzcZVcw4ACBPmpmLZk9cul1#>wx($DRDv z^lOgaTKU+-#&2bjOnp6Cli$=9e)-MZDIj#=w|1BdzpXf3>)+vGsnowMkp}gz?34Nz zeVX5N+7^E6nKtz=*P-%VxlZd}X(!^h5LI>ZJNJFfZ$OX7@jC(IPJZif<>A5aoSz#< zbuy}|^zR!k{BAxe^zSeH^E+MhyFb&;Zxwo)=QryzBe4TXvWk;F@x$*p26N%Ji}`^l zk`A^0{n*Lx-dRq5+t9J+`8P#AHnH*B@R&^f3|f=lyzj2y-yTUKGyU)rYD$#-zci;#Zv5uq%EN=- z7C$wP>SEBmf`0am8=-({={63}m&Ar~v?*Q~PfBuc)){Vk#1QKHvPkrQv-(!8< z`CW$FgUVskdErp&-xE%LhdtutH$=yt{6^$s6C1w;GbF!L(VG0$HTvbZVT%{Pk(*uk z-NosO-)je({I=(Ysefgk)W7&Dx#qW?wuRpcrcM2eepdb{f@yvaN;?t1S*R+O+V$^V z;gG-orpM#>?SXOU`L`Tb9v=J-`iXH=dm&k+e_wIocV?Z?zc>2lw?gw<+Q-iCEc7(b zZzFEqDBQw0+^k~HfBWIL8-uy%has2pZXhg$z0bMm{ez{zjTbz_^p&I$U{p@H;2NII5FTRi%F`T=?DmPoaN* z;-B9~pVr_1z1Gfe6?&TIH><6Y*n$7aDo*;BAAZL%mabGPO}_;7r%i4F8l^LUF%;= z(ERTE92=(om3>nGqEGW%LEFM_KGUZD?#A z9d7*Q;mX5<-xle{Q9X^SD*e0Gh2Q>%h5o(XKfiy~{O0zs^E&`N&7XgxxOJm&8-c`F z#Z$F@_&s)wJHN|tdr&!S`mb=P_3sfUzr&_F`3=#rC%+Ls-58Q)uj}+nyVy{*`@F|Kh9Un%{cb7Je(3HuW$1S^1*~rujW6 z?L_=$p{iJF*T36@L+W2W9>;GFj62W2<+$?j;CE1O(QG0rq=uAH*)*dR`Q1Cw$!{Av_T)E3J~pxO+i;)c_Y7K--@KS#ehXgm;x{Fe{M!D0 z$zV>``WF-Q`M2Z~$?sy>C-pD-G{5<@E&Qfq`$GS69rzu~bz1*QI}yK8RMpAv&MlhX zh#rsQcNNB+{HEf{!-L-)Jq&)=qN+;&KI_8oxqU+a_Vmy1MZ5Ihf4I`l@A)ed@mq*n zK8oKCNQ_lnbI1?BE8yCV-!V;w!|IQPL#=-gI{9rk!O3q99eeT{kdIAl{AT`E^4kZk z$#3~7zx-CN_2M`1W0&)9kkhsP#RSdozSGz+^{?!c`WJng-wN6me)E|&^)J_<^2@nS z>tAUn;`e=C*E-5HxE}H9{jfGZt!~=RaN?TxeLGj-xd0|hkt%A z*Zk&ovGY3sJ#BYj=?-Norz|KiGA^V^;qrv8za!Xfpq9*^U<2gaS}-*Q}ecW(GN#( zdr+Owv!z3=f8TZTyD-nmZ_QD=_u-Xia`okNf2}^La0RYp-+B z53M*|>)$>mzr+76`5h(ur2a*p<~NwFF{su{8pi-d498S zk4xcp;Fzr9q&?!0j63;F#g&H#zdO1Z{H{e+mHvIoh2L}Ah5o(LKfePs zzsVi#{GR`QB7O^T%SZ9s0g17SYu@(5?+Unf<9E#GhQsPQ;ZW<}-A;bnjdAjuL&u){ z2IONC8^4+OWd)|*2d&9(`3HXatz7QKZy?Qu-yo-J{fh~j-+f21Vd`JmC-pD-G`|(J zE&S#)ZR%gHL;B0PPU~N3C*rqpmm9w=HwcH+zj{25-xC#X{N~}x!-L-zKQQ<`jjAgB zTjs)V|E)s*cJa^eNX>67?))zMkKwTCpTeQm zzdM}#4jb*{H$=yt{6_e6!>NDq%L+_=Dq54@x+8x1ZHRdB8@a}X-(8%p^)If>HNWk- zVd`JmC-rZw$!|Sv3%?aioB9|1O#di?X?_n%I}yKGs4AA)_3ul;Ec7(bZ{sHhZebj5Rn@--RyxZjK85d#QhZAJ+WtZ-cDj z_^m=u^ZaJv9+$%Hz+qX%NpJb#cN~Mc@Y}`wKom)bTK~T3H2fPJVa3p!tpH@i=~0Vcf}YDy}>{_}!6g@VgdORr>cy7kh~Glo@=^SDKw_-onkqm1u7GPde#e|P99I8TIMn)gi<94W zxlVp_=-89r0H1C+^g||oS%IndL2L3`e$X$!m1SQ12Ci^9{{}f->t9UJ{O&u14O9Qh zKB<4vr}?d*ZQ(bcX;c4l9nxRUbz1*QI}yK)Q8#{DJ}(?n|LXBLeow4K6&K&R`0ES! z27g`K_mI z;kSZmQ~#o$=^sTf&F?{JC*n5?RmD=f{(Vk3r2f_8as2kcxRc*)+R${4UIK@>}yQ9DDLxd$}9GmH1@^roJAn$#3djzx-yFc=20%nG3(II9==C z&L+RZ_ep+7$v&xn(WlS9>9j5U)-!GDU#>&?UAa!{Uuh@ew-8lz@;i6A<~N|n?EF@tr+I#}aF0vjcHmuE z#YvTZ_#MY!F8p>eKM+OIq1L|}o&4?{?Bur%9eeVdA|IRB_3zD+-!o`Ue)Hb(%WuJa zFMd-lap89`r)&L-3Htn7vPbf}SoTT%i$2Y7K5YxX>Da!|zg!1?$8w$4ztT>`ZxmH^ z^1Cyl`HkrDIDS`Q+{te$t~@;W-O<9}cP*-_^ly<1zvtEq{oC3)#3| zzr%jv7m`)_ccu%!GuH_H``rz2RfH>|zTs(ULnl4oS^nntv>UdEXQYk9ro%;P zqZdp|%LoS#>+^5v7j}MUp{IF%8*%GK;TFc>W)*v`_rq^D26NF5M{s*kIn0(0wf`OTc|#cyp}7k*oDy4JrJoBR&nF8LiL z`=tIwpFaPl)3)$i&$Ow3xen=fA5a zoUe_eIvG_}`gev4znfPH{oCZ9-1rnGV4cQB`G z{fi0u{9E#t`llm8Zn%{id7Jk#Qeeyes>%i|=uG9Kg+KKp$qN+}QcZM~;5j`Hq z?<$Nt`Ax-@hX=nqzA`Xbi>fO9`;ZI2=T->)`?Y_5ztj9C|Hsbn`OgyZTZmgeir)@M zj8$B-+7G`g;M$GfF}Rnh99F+69BTdhf|K8NKXvk(L&u){2KaQtsekdy3QWBZT9e=M zEq?i}oaM!DpcVPGeSba3>019{g64N$6*f%$EBmDWMW5!kg0_XE8!k`0f9!(7#{#=eMK& z_X~6D?fecvPxI&BC~n;-+(sZVR`JyHe)v6h#+~0~xIL&GHbsR)t$$ZK`5pEXC%+*& z_T)E$YYZp91^8tJral#|$#2~oe)(;f>BVm($>sdJi_^9K#g)0{w>>vZ{VV&V{@rZy zTTk1ECHC{LXwv=-)5=^V?JNTN<n@-v?ay-Mmcb-_LJIn)7Kn|8`e#+D0_E zip%EnEp;VVoK`BwHlgYG2CFb18;{++{JG|SHy%acFYXVwiDV6=F5kJ+&v!@iVCz&yKu*7B-QZ^7NT|R)N*Wj@vlzeE)M@BT6UV) z^b;q==W_@`h}y8a-#jOG@j|8Itgn3VIx2)+$!CzUa|dLxm|E9ua`%^^W!bP1I_I;> zSU30=@72TG74R+IV{9<|3xBB8IiiTZ|85n&aFqMTcERRR?u(;b+~>Os7qAxZD$ zfUmHO!NZ%(fZ4Wy)z8ZEO|%8B5EB*OPiDm4!F;0+dN*caFJhRIJMqem?L2O#FNS z!b>nxvMH^M&4#oHo9Z+|jN0_I-giOvv8vZ`zFvH?1xE4t8jZ)*dmcQ00ci9tX*=)T zj>QXGVWjcmSjXa#a!za=$4NFnjC|BhdZz>%TXifxfGNSomK}>nqW z@AJ6elRp|E+TzT?zwrn3#R(+V<{2KRc2RYlfY_3Mqt5gXNK$|eKcL(Hf)c57!i*rw zmy1t&t^}v^K6xCot5I(DC#S_SV26WE>QCX)(=XsvjM58cY{lVX|73U$2Q#;r@jF}M zM>q@d2U_BPIT!J#Ar5l{xJ&j*Pt|YAxtq{}5A#&N00jx|E?RJwCz745lhgskoW3Pf zhLjWz{p5LkXv(&rT1hyuU|XVCJVDrs_0NdCSoa@CP*tpYl#e~&!a^!R5n3>O5l}{^6KAY#n z=QBp-^F)=I&%?08!6@_jg(aUGw!ei!GMl!dKG?OrK3kUA>vO9mpM8Ip^?CSZvp&}{ z9{{h=;owz4 ziE=nNni;E~g8yv~Ka=4n_WEym4w=y_Nt{29{E_F6Yd_)7_uSU};a!|I9c@Wz+ITjb z(x$MfPMd~?Khrs325ey39q-c(1(1zS#DpRmNu=gMDLtKU9YXXTpsDhvg1b;BX8{ z>#l#`w0%MyD&)GM26Hg?@Mg3)*!$7WE=o(oiEipe_=H!B>^k8joQEt+mZXhGGo!UQ z0rDsyAujuYNahCqd}j}WzEEc-a;-|_;QIJPp7?{A$PZN_!&M@K(IVV&)+Rd*@#|=* zkg+vOxcUBnG2{Kj5^wWTx$$wfcpWYAUVB?^{OB8U<9|boc>K8`PYEnHbVO``2zA)3 zb8OF1b8ERO)R!;CZ*BGC=GKO)P}5bYDGXJd7UPDB1qgWeseDHO@b0X9M+WfjOZkrE z;9Vo$O~%4H0uoH-7!Kq|Q$S>=8@89U!x88d&A=dxw#c%zkB6I5_c4H3a zKJq$RaPm8}B@EX&Ew+Q}mZUXd1MwB#^Ar#6=a#T{S;BsR5t6o`IwnkH%neG zfC<)MxGk@53e6gvvj78BpcAX(3-FXB&`(vM zdsU#jWc$w{X?Y*!;iGX{L|CQ83DO>IiBO9Jz^%--MaZy3IIJ!Un>Na=d?{N*7%w6e ziwGMn5gPt(?%`1t;c8oi_hy>KDo_!gQ4yXpB1{w!dWZbFX93Jhb6*~EDgjdw%=0E--tMs01QKe}j!o4Cw zy(Pl_!)BF6stAp%;`gxbQL{?9D#8pEVVV(Px`@ye<{nzSZ9+TM65&6H&pj-)MaZ#4 zIHN8oFI5rRp#`)vY|uVj%0NG`1ZrUkG*1P(-WKS?N6f9vQGs51MHcIMvShTP`I}j@R269V^YJyCVF{F?0u5AwvSgqlTcGDlxT8!psR> zk~Uw)LeyefTHn3Bkb4_%i8sm;?+8lFy**)z_hU=Ezv23id;4aC+}jsuKY8vvt_0se zASnZkOOC#+#Xm2DOODynN{*iXzW7mxdwAxx#{zy3ptWXR=#uow9q<*q=}z--gt0yqC$dHm*Yvt-o3 z3q>5yD^*69q809wasP|!5K1Q%m)*s@Vv^a#-a=4YX0rqVk9}ljR(rtAEKg^fd!qAIOb?4}n5eWPVOa;HGQPlS5i66*8)<~AQup{}xpI`DgQn-8f_ ze?|yy^G`BV0HNYRZ!G4nc3MJ(ETP(|P?gWb?`nc2R2voQM=De=87hyVwv#@@7oVxH z2zAgBs;ec`ijXYet+r6-erN7#Ij&Gyz+G$QuHHn8v+4M_P$amA2=%cg)W&^SqRtfk zRH(W?$M34t5-LN53aC&c(eh5zM0K#hXl%n=)~>-4Wtb%jc_9&x+M@KbMA?hWL~f{I zjoi=~w2U&z5+z4O`PvfYhlqV+;4&PX_>LL) zB1_-}oP{FZU<>^3d~%S2&&TH^Jz#Cs_y_jkK3UJFaSHM|l&11181p?W~jimm}Na*&7W!(wyz32S_RHU z3w=`5Qxul5_3e|&*`#Ni-& zK8EAWO+JZP)`Ir81U|}(M0jeY0)O+oAhj6EF8)+G;R)9BPRkz8)?leRb~99{R9mS1 zQ_MY1SD_*Z!FrZ4RB77$xKOz`iJkicL)~i$HO~_2VioGuCGorZttHe&D%ABVR8QId z6OXqMO>jNsZjsM7tpOo=}(qWH>yzgs8DyxP!WVeB?09UTKasl`El0oQA@mA zEb-pO#<{hJZ1JwK#Cw~UlAz+V6>@8*(0=me7q}V zUoLqK2lM&EVRTvw)LUmzE53#BU<0m$UV)d`jYF-^U&cJjtDF}P^7%_&Ue}bS4MfAA zI^vltbR(X!WQ1Q!L$7h2lZrP$G#St1m*F}G*>=P=R!P>p3muE!ZjJ9PRHx-)3iM_R zq3b$^E+ip4Ja(OyHY2uc7T?w z&k`^|o0U%jU;L269>_~y%$@QaT5NATT3mtj9X8`v;AAML{Ei71r?C{q<=Kpj#pPMn zoZYNt{N-60CbK9zj<@-wfzMmRL((R4Be;_m+qm>f-d4=O_dfp4+nC}D40+sHY|>(G z<^@d@68~bSxtW>ZjhpFa+swg<=4Kwo^)xrL{8_n~#b^g#_r zqds7X+CfFVQANF8M$O>%OK#SGl|V=R<6|O%xGSuqcC|%a{(mY9?DdysR8+ZN?7tJt z{VrZF_RGr0HZPZZ{tH^{IlE+5r;@3ixnH*5;UmIBsH*&!CF)f&YU~yjk>5WN>+x}UwM=9_M1P!~-yzQuS8xvewjc_`0~rnq z?i~0t`N8ivZx5ajBVb>VjQ9`?5hx7&6F&s6TRsH;*`~tbKo{T;((RQ@7iTPyZgN^| z?{Cc_{hrsJn7i~Dv`BFgS`>cB0u*<`TSx~VL)w#<;NRm+!Ixdi!oeXt$MV}FINz4r z&$qj9lZ&X%1;aImu_m& ztYS;7-YV8e6>F$$@xy%s!igX5e-}ZF2LcE(*b?NOLb;&_Z9%$Og6zU2BR5nZksJC* zwg|FO2bnH{7|#R{-@JDH$@w6g`N8fRARUKJ#yg8abOu+D2~Y>5yW^nfFR<2vO4fTQ9+I_jNeI#CCHCekTELAuZg)E1y@Wv4cDSY4G%eEC5u?%r@4yt zOqE%~t5vL;`SJUD)Dr7T73*ddYXD;{N#mCv{t~&jy=Xr<^c7CByq}MMFU)d>|Is9VJ+Tnq@0qh}&u)G_ zvAgm0!&H3t0$-n%7g^AgDF_@6hHBM6TrZxN@Uwv*6a6c?Fs*H$L6yb!9^xfm^{cpz z+9o`5;DWo7!y`v8xT{lm4cwLITOPquq1o^d4sN`BAM7&PqG!RPCG@;>K3?C+nT}U9 zGh|aJn<6$fp<*@*-YDfO%7m{BBKU2$oWFpAhE}2%-+L8-BEmktZ7%|?gU#^`XrmWU z&6-d-O!!&NSN)jp03tc+q}%It!b9U!slP1{u9z>v5Php_6!pmrwaByd0+mFWrR~9HCGW zriX)_?%8)?i&z+z>$XvNsR?z)D;)9CMW)52bhiNRxGV$jA@7CT-oie6f+fp>&GBrs zQC=U`gm|F?U;WTXUz|^0H;L4WRN;A1iSOPW-%CLi;?i)4eG3+euhcE&)m=?!2wvfg zS0W}^U*0T}8js#^Fd~u)2z&b$CN%{%lbVJ$N^doxJiNlsL^Luf&Sz5Vgs-YQ_%>9C z*Klx?a5!Dq<9Cs)*|6!bn0+CR)P!c>6&{PwXtMI)D;zweHaMS?gCkecK?HVm45uzC z=Zn374zz(_P7r3@r4zU(n?`({}=bT5jIoWgf=wEUh9SFiNw83)lp^emXWm6hyA{K0CqHwQ5KElf~|RYC11H{;f3FTmzi-DGusGX3^@hwac4yAa=fsU z&NHRyusJ>hZS-ET%ZV`IYZ@Bqi}UGgqVPq&W}_z@jKSNM+dE@0R46)^uN1Mz)~m=@85abT)^hPm*vw}&+UOnhy)^=JTOQ1s&=Qz%RE|cb z#-&W{-CxLUZp8a=u)A=(PS_()a+^`ubX$!!I#&4F02978p^?5gpS~W4uW&FMKFHU0 z^x|M7?HA{-LwqOt7A!i<`AhfUwI;M1uW+`XUB*wwek!Ts=nV%0BB@$oA8*OM#$Yq4 zPtiv25lPj-grAdWWKx{Zq+&O5gH`vkBB4ff;+xmP;aOo1Y)ywr__;}kt1{B0@6 z8hoZi$M~1&bSQ1nvtVg1?3z$EUg2>F8qHTUn|nMdG8)MR!R?o^MB`zzL=(|QBlNvB z0CU?jBDK*l;V2J{OpQyK+5>RMWz+EEd&G90%(bdA&G??%;1C8{> z`Sf*_NG%mU$k%N2;^*W0^88iCccKrfjPsYy$19W7W*NbQNPPI>ZHA>+s6+*M79{a+sZhFs@== zX9vhV#_%5BEfFal7k0)E>G3RVrt~G+=nGLVn{N5N)96dWS6`U$)envI z#rgF0*3Xz)6MT@bf#?OXJ@!fc#do3)`it|I4#g|<7hd6v-(NNPngK@)Iv&0F#_(!F z9}xER^@M&3Y>rPu8+}$Jl?M}kCZdr^aXypkEqqn2XGKDV=nMz@35Wch5B&VzPlvN% z(_u0DLL7nq!Ye!$q0xNRWpRTev78&6&&k0<-C3px?C1u@SX9OZTg&k(^cPxqS;9`K zzi1(^GWcT1b$A~RP7^7u6n4goOlc!*j&DL6T_*Op8YX;gKqGx|K79=lzJ&flPdGRq z-nLYT9Y;mSz^j<#9@-)HK!4#C`U|h{xSL%{-#7N>9#@Ne4xt}s=x$tm95(Ygi8lH& zeQ&LWxoxFL?J!I@szW1F<5H&f65MgwS-i)oP`Hf=d-h?vZG_G7CbZE%3tykYgs(5r zNMD>!U-yXA>fnRrPr8U6J8hSIb>chG2mJ*b`U|hnUwDPHWOgb2b-7BZJNm-GMv+pA zuxGDf<$J?sN`28rZ){61sW9Os4UJ5R^O@4#pK^Ou{V@xl6?BG!o!1~gxXBRjl2+5@ zK-hFSgneQJ`U^IEW~0%36~P-$$#j4X4&~(F##M9>fF1oQqbwT91zYp*D)bjxcp1%3 z!53FCvkZ|LJ}Y=14(7rqK2O3<`i35-!)8h|&_+LR$6Zc@318FDNMD>!Ung(mE`|O= zPdGRQ-nKMg4L(t#BdLil=hGHF&|k2jzwio=#b`8N5%|KdN{M{RxFDGHSAwt-HuG7H zHu?p9Z;im*cJHNhv;-y`m7|fVaVb;#l}HUA7rY0m!tFX?pIynEqOj?<8g2ATvCR!I z;cF8b>5KE}>)U=ztr|X9{_W_6qFW(&Q?${0#0KkN!p})GGAYhyQd5MlsyxiXrv;ti;FrSTSz%BA zkh@H3BOSIz3;l%==r6p&V-p(9SE|@xr?ql}Z8bY$mk}#raICt?*TKjui<-(TQ7W!r?|? zuY8KT+zy)#ce5|V5$G?x!eccW%~$me+~8TY!9AQDEPI*`YGFr{1Yd`^U~3&-h5kYd zFNfJF^%pJVH66YfGKTlKoAx3JJ1*=)cazw&usQxE+UWBgnbAp@@bxJg>5KE}D^2(k z`s;i2)*Ifotil?6qA&&bo%S)wwj2~a&|k2jzof_3c%%8M&EOt~hm-YJ;eDAv$sYOE{b^?D1Xc za5ii@EM{MbBhX)Xg~uW^ny)4KVrRv{z4D# zf2{*wmol4BRCKKDLYI4Jiyr7N*w9~ig~#1!G+%}Ah5KLdfcsxu5bPvCI1ZcnoJ1Q< zrtht_Ft=SSQacP2j_T0J)VP$XT_;k*#|7_kogv)DgndYCvk^AkHldBS7rs7)3145L zk-j*ezCOI3spY{3`AUKs0bjQ({l#~p5BiHbWocWyLVw{E&XU=s^w(0jVaV?2!~HLj zQi`xU9p$m?4V&YA(MCInlu}{BOBx!P66Z6eVZv8cg`g`7ow)zS{NN@-yxaIEx*Q0b zE{CvBj6i?EhR}!_z?OFy%2|8)cr5M3vK7jMThyibPrykzwioY``Kljzxt`9j-wa%zeG~C z!X7!0M>7VSNqveoS|gIGg9$$;(a5AYpGn2~aD!Fvup*&GbmIP(aClbO8zcOIn{=^s z*cvVL7e=7J@CuJjXf$8t@P&_z+F)Bw4vwG1j8b4nTTrSk>I4(|3$M^$c!iJ7?2`J6 z7P7iSWQETP-sAq4NT|E8JKaiu8L*Z9f)!nG8NH>!gtxwEq&Kdhx7Na&&|m1m{V(|2 zvRT~m%Mu+U-{i3zN;||J=r6oNf8iA#hp z;r$v{#ON|4+y(^jC-8|o8!~aMpugs=D~!YiD+a}oX@0s3tv?)a5z+mPTc%hE0dX>MvTzs|>yvavk2|{+CE;rLf2ErN@o1Ilc*P^bt70^GBHQwE>Ov#rgC#MEDZ= z3q8311#ep(=j2dSbd-(evD`yj^gw^XhW^4UJnlxL`D#q#9#@Ne4sk(nU@`MK4x9O$ zL>rB8+16T^+wO;n=Z`Sqs1A)xjZ2x@OK`_!|Iga@2WCCB|F4WDCxz*u@^jzU z>pJKC>)s?j-~F-kzOQq=&vnl0T<1F1`T1_cZ#b)xtdi%vi4Cr$v6Ib%kVY6Vf33F><#|0^Ac8Jb}N22LB7s@W1dM{ulluv3Qb<|8dN@lJSUC{0MZG$j>aTJDSB?a*_0o86aZ*Yaa54WCHT5 zt%6Br;h9NhlO{3nzwnGSGZ9$&RgTo)k1zogFo(=lDR(h}(RgkgNhwqF_`N|DV~|7GK7sIkTU!)JR+?U1UfD9Gp#Ls zSxUlO0Se~7kXlo|lzE~MVt!?kHGG~-3j8nphyR8DNU@qE(?8BeTA2Tm{M3OCqf^e8 z8}Q8h%thF^jw9t|v+=lm86M$(;SmYVL7=n7SDCeQC2MFd_>K85N%kpu&da5KHR74c zE=AbL+oa%s;Sp&qM4;0mKhyg4C}wRb(jffJprUyP&HNXC2@U=i`Rmu>Km0HJM`Ev$ zWZSQWNQgo=gNpet$<#)9uDG3LRd{Cnc7%<~B~zR5h;+6f(3v7XGgT~UE#Yb?S__Dn z|B?jT%QJ;eX*j(nusp`(J!QuGXjM5~kue=D(04dLVgj)&3WrjsJzG#!sb;emo+zGz2;| zzQNS0B{k|-7ATniLV8V~Nr^LrkeAF%=J0tkDe%AWAO08qBgJfzjDBSxEzEyOj`Bc9 z3;KYV7vhrHtr(@oP$TCGZ%r*6#1E{ILXuo zld1WjqTZ09rSgPkfUt3-o*ly@245ns)kJSH;bs$VF`+^TUqE=<3@rxk1G5!t!Z;Jg zBW%2iBI;L>6?(8+UQc)ydbR8|(%M7y+f7`8c`a3kQ`dstbeZHZjVX=h<7bG)(1qXy<{NbIy$%u)31T_}Saq_Z44Ed(LfCkz z2+zPHykSb1oM)m7Oju~bA`=!PgjE*aQbVgSVYLZsOjwJs@hX}Bo`}atRiV6AXQH3d zVSP436eTgtyJmVsP1nsErBZ zOc;-_@i&2fx4brAUQ001sU}P#+Y20U)vscTfM_kkrY^KE%U&Z15G8>tQngCTzumBH zWJnb%<*?5Gn!;~k_H_=OVSU-m$BsDNZGIJRMpL~SWA05op z!9oV1$;}8FPu7D#JYtSol5WK_VcTTF%_iJpLWK}hCc@ihXfc=!6MZpZoC)I*HXbb^ zcFSvd@>+t4PBmc~*^UynBs`)oAzS?_rVh&#&}>uJ;&;G^5FFhgqSy!%;%8?d+uE70;qVCfsboEhbb5BUPJ(x6ROaF^#B@2|4r0-<)@Dyi`Q& zme<6~ahWx$w3bS`4~f(Hj%SnJ^wJ3Bc1z#(W@+Xsps>6_~!;lq^5FVpQ&o(?c2%DbN z`XOx4A*4th(m^7q)FB<@Gl1HVm1<+cLK7C5uoxlc{Uzh2hE`$1Y7^F&uohwC{gUiN zJYq;Fuhp68r%cHGMU7*GjT;Ct5E8ceCVHt3>q{6?eHc=G7^3XW2pb>g>-BRCOM_vV zYgif)V)=^4P3l+S8Ab*Fn=a;1ciC%rgx=skf|)v4sDlj*uwI2gRK|pxC1ee6(ND;Q z!c(LwnIa~)8NL|!Nuo9;j5A?8!p6}u&fYDr1>`jjS;(Gh!Zfnw30o2#u{tYk0TZ2R z!Yr~~K(_kr6by(qGNcAEq5roKyQ#7 zFiONv>WvQa89-migUr)6WLRXvVuY9nlbn|tT7?O#O;}^XT7-?4NP#Ef5#us>txiYR zmoTIPFr)%7M9!bm@ssBvY`jojpN&T>naS((P4rR|Hk0jqVQUn&r-ZFlN7v6`2q_H= zA!RN@NZDlKSDE;=2%A>O0Jsc~)EylxWB|27fEFh|CT~VSRJNEVq;ck z?Hdz{yEWijJbJ&-TUDR_T=j`>#V4_quf)KcuKLWk|NB)x?K38nv)}k5FL!P)A5-UB zoVQ=qr@qQ{3E&$O%G-}=BEc?9ket>{_2xoxxo`S<>`=aS}dq zHyJn!fNR)tagYqB%!-h5CN4n8Q3I-QevLN`;Jn+SGxS-uD=*;Lvb>GXofz@tDghUc zq1BNq4fjWZ3or((gVoB9lYeF=v9?5~wD1aqNO>MYIRZW;*0;F(5`e_17uEnj2!V^V z*CI&qEqcwjh?kuuhgPgmNyvQSimeIOZCvq)3s-UZ5*)0!3|wD;$Am7eO=O#}O}v%fWi7|~>arBX*$Zm?g}F%Xr$a>q_D9LIY`v?ZYF6e?I0$JmbmDA zR@xyh!9^~?3J|l>>cHi$v@Dn4EyX&ecq2I0E%-zce6UOKEG7xTXNcfIum5P@+rI5i z#29TEYXtX<61*nGDe+B4@Qh3G9<(KlQ1qH59wCBfGf7k8WFvT0E=%mbWpA8I@Xidp zff7FiE_aDXxCHOG9y};QFC(~z5sYKFch}L1m}}v3VIn3Br22e2$+3g6E@?GJS|Cc= z<~~j_tBtgIqjfRoB4jbclV(zuw@q{taW}d?zcK3$yk<~6+=yFop0{wfxWpZ5#GPTp zonniVbt$j7*{85{$u8|V)+O#~C^fMh6(z2#OWYGA7M>*QvtI4EO~mE7#KpP9 z)f#c>QR22FJB6z;;^tqZQG5!a)x;-l*QJY9&)=eGmuUzI zMs_2(+^xLWB|F~8PB*gCjO_5F67;R%>81E@^pk#wsvSU`+2Fbay_ZYkL+OwXaEC@o z+*Qv{oTi5-7 z8@guva$HQ^n7XR%1)&0eE*MMHeC!FTY>BDv&w9%Xm-!2k+x#%E!osaosHM^25`U5H zw(?UssME`GaUnoBkyFcZy=$r}-VgF~@qHzJek+C_MY$8e?EhZqy|Pm9s2m+%Y_8yn zqi+eTY-wuNyoj;!To`;)L&8F%b7{TwfC5LfPG?k5*Ac)lrf0~ItM_nPJE zd(G~Byl2d|sjBej)+m{S_!3Jn%Gp%%vKS_-soJg6qPEV#b-?a7q95 zaQ&rUfX9b|pjMMbJKw-vY5kkkso14d*)nAkFOZ0(X^70YO=p3)1W;t&wXEuJ;gLWA zja`)mz0Svl|A~HSWEkf;X`Q-zz`V#XinTb%FjQHkrg@nxEBEm|(pP4um8!S{vwuLoOP zLfO78%pd3pke7&jNd81N@(^6V20}%;4wwhz1$x85Xclr-c7Sgkp1NaNBaa!A?+xhz zAN50BjeSOyE&r)Nb25PGPnH=q0esSTYxw$qZMQ3YFCNfGs_uJOdts`0Jidt8481r} z{txKi9BfC8_5)?$m^In{K`}AoPennjTJi;FAd}K2_EcBWKKOn*ul>Lg;0rQ$3tGdc?8X~um*q^TkJ z`eFg@=|ekIN9=~(u@q#2{yx*G*suiszl-DL*B}+GWix|n{}u#LT;7|OZvfIa4gm?M z?MEg22vZ7ekKAz=P}{q}_K3|{f@utZ5l&_th_2(vQa^i$ZASqIT_fliS z%J7T#l*jv7c_mawWE2n}+iH7^*xp=YTa)oNFA_wCII3jjB_hmVB_hm5$flNsFb<)) z@Q^mj`cmWR{a{pJ%+XDPDOP=m3wDf&R#%;%twy)Aq{B`T&NruX1rW= zK6s%Nw;-bHQGUE9-O9bk=h%QOp8F{Bnqs^#%+)nVq${2&vBqk@ft@Ol{{ADXJr_=UWUVz^oi^K+-p{seAuMr{{5(n{|v!=)aEFMZX|QXcw2z$1z-F246o< z7yV^~6m+xnEw-Q&MbL9DK}$=W(q$Pz>P&CxX7_L~&NPCGjGzL9DBVQSc#%WQR;RK+ z%UttT`7SvdQO`hERYb`Nxa4dwqrzW?>jHg`5OO&6MpqobQO=bjr^4keZXfHEr_{(v zijuSTV5dAKM$Swlrv)?4>d}oQhk8_K{vMRLZ*in^YiH@y)tc3o?&`O_c5IYY*(tf70v&&_4T03q$`4!u$)ITug2^=iCEG` zT6s0bul*pW?2nnTh~L^0vrNN&kAynWoBiNm_fXE?#Mrq!gE=Rc8FS zeW)(p7KB@GaX!Q;MY6vKlhn=n9!#Nrif;_)7U=mN%o4Um)b;iE;a*NZ5>qF9>+*JZ zf1Ioj4C~GIb?*fGKICe-4;d{go5NSQ0ihMPx04J~|7LwRaws0(D>+kJjIKYTNu>tA z_EpP9NqCH9a5}f|2DMi1F-G$$f@Q!EOg_>ai|07-WFv>|)7f+ZX*tvYTEVZ>+IQ7n zdNjecKjMPA|MEsq_}z3k5>#t=Rq9$)Hud6w(@>olW+1Tuvd4tf;&|v0bq!ctu7}Iw zhTV0Ju9#a9hPCHK`7YW2?MvD3Sse<}zX`G>ZPT8%q3S7jMn*@ugI#hzyU@IcJajX1 z+p|S(91w*i$zpb?`EMczacYQbtcgrvJgV*zHM3h0r2ZH4xnT~;m>abAD@< z_?UWpk_%HCJJ`2)VHX*FLLTJuGre&{``7*O&GR)~s@{nS{ZzFhE))o<{aeScLzXkc zNCVkm&edU=$U+G`+NwlXYmH&ySdFIYDxe6=a4Iqh?tm1~#BJz~jGMwv9Hsdh&ejE; z%@8>+#D%=5W-74N|6I;AI=i?UCz{Z*#1BV**T!dlhurjc%g@5{D)l5%^*VI}-Ym+I zhzv-ncg@21e3ok7cAOqhe0ezA*Qx(t`{INp8pM1C)&7MH7Wx|*ES0NEkru5f`mYS9 z|I%MchYdg#-FCX}!lwUVbzwQ&0+r?$6TwLk3M-{AMd z>mZ69z^Iy)6`!{Gs#oK8=5xL&-1$xVg}<%M+{ZWNIsB~nDZy7gSsqG#)x9CQ;-|p) zc+_TYaHp@j7BRq-A7Uy4=4kVy(IFNbgVC1OBxWy81^YxB%tNk6C7J%<-lKE{4n9S+ zIMu4yZ{twOrrpiR)0O+;S-Nr;AcPjDnMnxbAsZU&c*6f{b9GAE6AnO(w^N$RiC>e6 z9wrk@(!H6u(UpmVOeO}JOq|F}7+-i2-t(bT%JKTb;Ug*3?F%3768d0@F8Mi8LVxJy zl>EMty5uV`TJtTfS@;SV zn~?Dq>tF|RgI|{=AwzjkGG9!Nueu!fX&ZO5PIR#xx+rs2qoI}^bn(aJXkDCAWPn0e z4lvnYFu(w1^zT|&HcKzNG5g>>iP?u`Jq}@{s@(zvF{dy^W22i;G334)DSFk<=aM^v zT!8KLD7oAAb>vRd<4?8tOfC00gyPHQqc`AOA@XvBl+LYh|GF03RC46u1S930{@&6B zT~hvLq+DR6oJ%Qe#%5egDK8ws61$b{Y?qWZP!N`7Y?PEfE-5W$IJxZ%U6#)fMoSqf zQrwF6-)o$*Ty3Q6A0?$J)#20ts?NsaR=7!B|P5oMt6f{s!}ebpaeGH~nFAgMW@JEI-jA6t9~`-^UW zx5hi}Q4D&ExzPUzJK0!2I*kVWViwiar=WY=5B4uj^b(FayCjY#dD(BiKUsadO>7|A za59W?E-DV~ApjfA$=FzxBC6tcFYde=@KSA2d0i1pm3jIkQI!O%SH5f?2j1T>Y9#Nm znFyg4M?-KPwFI}oDqC_3&67`>R!2>YgAEZn57D5Za1UG;gBFdhPfT-11 zIi(tIMC~}iTdGI9H~##u!n)MQ0_V9w97Ntvrkc`gMaD<3LKGOUf1?%WA5P zl9K6?vYA6p6e!L}i7`^B5!{1gRhGKGCq?yiRnrewIt8M>P}EUTqTY&e3N+q`dhj&x zLJ_&2K&%PIM}1xCzJ9Ao7d%~3fiK&7KE^3BtYzzoRqvlDxFix`S#jZW z6GY>s`6Y|aVj)Vc{}R1s_%wjizu8*$(bMbP&XrFTAD)1s(8)$|-ab~)N`Yfp5{l>a zBIi$K0s!LT)MJMt9!(#J()h$h>`6+33QCHqAPd$(NQmH@pU8R$BRXbg7Bm2D7QIwt zo;b-&g1VEd-$_DL9vVX$#w8_~GDdP>WZ_Y?EF{56bB1~}f|=zec&eNnibF~{5ThQA z?;TV1brKW3_0*)8(|#EL9n1LPKct!x$+Em3o~tEUYrue-Vhzy!Xi*=3?9`NTIAlD% z3)`bATZUb4*H^Vv5@5^-&y%V{&Jw+Kc1}#>B^g0snJgTvWoBiHE>&H+pcgLwAOXeE zO3Vrv(uB2!U<2tTfcV$Y8m=Gt7M~MS^|JM$8O^QMEb0|=+PC9B15ByFg=60^-!WAK zGF2p2z44i_@V?TK-C?w31yInYT#N#I9D_S&v8gXR`Gy1$1kBZtTom@=aOzW z3ocMj(V1ubQpsHUqn=ngvSN21CZ);`5jCMhnZi2mL`^Ow3$q%nCduk%Xag#c>a5nE zpaof)f!v8cl*<=aQt-B0C%BfH4T}wBSR$H1{o+g>s=cPWtr=IG0?qh!{CAMg?pD2Y zi)cp@pC3tuy+K9nkNVk@mNfm>(GuOB-#dW%aoly(k6(bGwKO}^za77@I$P~e#2^)I zo4Y*2Iq}%_*&T&U4x>p=WImI^S+N|_5mEMDtU(%3%t@;Kw{Q{HYQj~Q8*_(R%R;t8 ztHGF}HgN3$Z$c*vScur8VRCc*Wp<-m%9j&auas=noS4^;4E)ax#(*Ay~+ zKGreLuN*6_o+4eXp7o?#{nig%^;xyO1dFSMDz-bTH2+%Jt5CEoz^s+~i^JHgV0&)` zm^PDjO-g+G^B=8+Og)i25#@_Vb)+E{`KJMo<6&Vss!t&>U>w;RY4T}XZhnlm9N zFFyX9uDvu?A}X_pEL7D?ee?$G$yF%pmzcA?@do@EWmtZ3C|3==JIgX~%R9lVo+L?#~ zN2+T3E-40M&jD0Q>S>p^La+N44ewgDGPbHYwkGEn{P?vd=T`*3)a3kzpuHxi{j{&f zf56O#X;n+4O{#%#J@8pY%P~Qh6w4wKCuF%M0neZXuqGxi7%cVssZGGr?hDz>!rj8R#)U6o3!s@u zW{#i`GTn=QQ%y|m6~novRybrMe8IorhGO5MVFa@zd`SXUG)@W+i^q%Ucrg$jmPl&@ zowB-|{SPGA2VsmwDs(gt`Vx9W-GiB7h)iMSpdIEDx&xtmfII~p>OXzOM)2!`qET1x z1iyiPUyhBzf5J%!QB}tve19073;7h$B8X%%k*W*dF=G!Tn8K-OCJudqj;V%&9AVi} z!oL5(5jLBHR|so{V@hF-2;U!;YzaG;!pbQuZ>bRmC0cMHn2qmtDg;rnKE?)J=z?9M zX)Ylr8zGk)Ar~TKs=9SVs%BWqigc!Mu>)yG@O^kT802XoMvG_{zwiEKs>%bvLfhli zO~ma5W~i$)M*s=2E@Kfb4hIYadnTxb$^?sVQLg_alt(~3qPqxAjMVDQ8q$5~-X;Nk z90X>t0+D29WTBtx#{LA=K+92tGz-8&k9G7C>0fgF#o{JVTp^-TAw|4|Yr6Kvey*x- zl2{d|!1*}s8>c^+b%Q|`tz!S<#6O@YdopV>epIevTaZ4*>7Ss;hZ;qu4n`?6ViVz5 zHVI8UqZgjhCRhC02SFT=I@-ZE#-52$B zH_?_<@mt~nP8#e1mvm!+WCpmimdO3*R5xfHR;JXAF*3%Jg~v0Ghd87^kRimM$PnsK zk58Kdj9Qe#>aTAI8;lG%8kMj{rE(QfYytkbD-M>{T4$g8`Y!J}dx~F>!Mei}#3O2* z{jNJ;f2XLNx9u9$_V;>hH$wk^87nn2jFD4hhJ4TIqL|3=tkC)Kk>UBF^AjS&i>g*m zthi%zOz8Z?&_zkU;9%JL$PAvj3P;SDs#!dH6`sXIQlTntm-#pd{=FZ03Uf#C>G<%MSP zkYIRLjLq?|aPW*Ga1jn3I|M3x7Cf#H4jzsK9>OtSIGSyaBZPyeEP;n`)Cos}&GG(G z%m3iH8Jw!kAn@W6lIVRK9q4xZTs9>T$syTF6bg2(y7!869dLpXTS82Vvz93UJ# ztPDJaqfR&)Y>rp@FdsYx4LpRSR5&VZjw!;yGu6ODIP!#}(B?QtICvHucnC*8II?Vx zeT0LD%7KS)BnU@}&9UN0=7Xozfd`IwLqG5zc-S0w2?x)<0}tWg33%YaXTjqP;oxz7 z;2|9Ig@fnrHOJ4rDTU|$froI^2}gs?(IgzaSO9nkN2zdB*c`VC2d^mr9>S3)9ECQ= zDZ;_)6@Z6u1cW2Y=J;PS^TB%>fQN7-2uF&|@gL#f1rWdkwPcT#AMZAUO4yhj6g2uGc8G}s*f5)NL_0X&4GR5&VZ zj_ZYk*L?sF;m8w?LYw0l;ou!4z(Y6!!jWZjeAbKk;5{e6LpTzIBgN);L^ybX3h>}j z@L9Y@1$fvTR|yBNV*wt*!An_y2cHFx-onAVV1S2k%oh&c>7qG4Je>L9Jv6{WIO>F> z!REM6IC#Mg@DPqt;i#}VE)fo1mjgV6BTqOAZH_~QgID$d58((1N0!a;b`tZ!Yl47> za3lyvip_D4aPS@?;1Mr);6L!NIYtTxZ#4oQ!oj>_DOe5eo8-C10>!B6*Qhm&l71jC`p=BCeB&68%;&KB|bf5<I%1{+A{SsR$$#A#rE0NXWrLA)g|gxgoiSH6*3Qt?+hlAguyYB;YcQ!AdwH# zqmZO{dngLSD@J`mx-&b2yrL92=f$MH;5kBiO-L{Cwp7%&ka)E!xOmSh>YF{X=-V72 z2WJbp*(O(Oa)prZ0eNSzL`W|b3u%my@--<>NT=(UQQS-+2Q!2mFPwhOnIfc5(68+b z#*-A8(JF|=NyL1K;3dO|SSS&^ci0!aOCormF(PJ51n)BT1xH8(FHA;6xkNNeL~n_h zry~j_f>$#8g1n$*XK<#D$d-sYiFi>W${7)QX`+zogjA$?Q-!xsBCe8%T;Y8oM@Z=) zX-LzB91I9~U*SyFoJm6Z0A_n ziQHEr%Z2}?i9-4SZ3$LblM03O97xCmjB~D#gWTce3$l4@fOxeS1O|kBfhHp#$(o!b zn_QyF#X|lDkRxp*lCQ~mLS7Cs z^j1hOWeAD-0-e>Q6d~Q9Uxui7AqV4xJV=vKSbp9R`Q^6`eZd24GQXn;@O*W^^#Tuqj(fkEEEvNKpt5^j#wy*!%vM0qDk zB8!Cor9vTnjjTd@h4ey>kX8yQoutT&BFRZWBJM$i&PlTH2a|++jZNl9fl#0rA)hSC zZ0{n;%C0{*k&QUFkeWI<3Bi4pw&VS z&PFi)HjtpB)tXd6(j}3Lc$QP;_P{FhMR|Pu5B3m8F3RHLvDkwenUT-WQ)3S4oLD$N zc~z@2IhVQhs}+aDIP;mD9aEXVv~OMbwVbz$%wqCPWBsc?wr{&HGK)Fj@0Iwy^&dQy zhiS^X$Sh`<^ruPBap)`?>C;K??a((H`fa3tW2QTi4v{1OHKZ?h=meVd;iT6&bk+&! z14zHlp|c7}??w7Rht3)&y({V696D8m^sm-|{w_C#>2k5QNncO;lMbBD3OM_L=m)q+jaLY063OPC7nu zW2H~aPx_9vptoZ%V&t-;ApHZppxYYlxm>1R9i&4zv( z=}8WKx1nD{`q%J^O@7#QGX3GCFLUU!Y&yJqtDBK=B-E|;T$-j(!|9XdOG z@_)4k^jL>Z|A6%Mq`wcNY4Sr?g7hV%KkLxxd651n>32EwRzts=^n8b|41FBwe{<+` zf0)i?r2m92%*ds;MEVfYUv=nou1N1k`W%NYyX`^mLHgevI$byN|FjzPGaWj;JkmcU z{Sb#vhmiDjq$^y3VDdvRlJw_EU*OQ24gG%7s~!4AL!U(Yr4GH#&~GHYpF^kT%k)Q) z-i|{iMlKy?(g%^=>d@&|liru~M;tocaMHVzKF*=jYbSlj%b=g_(COrp{sHNU4xM8H z(pQrHIW8bD`QZ?P^ruN*0L>`)uD61M*3H)K+kdL9N&??p7g^VdV`@aA^n^0 z?EG-lNd8AjZ*l0YhJH8cGab4z^l_x$;LtgAWjdFUex^g`D3|mhq#xqYIUpvzAL**i z&JV}Wr1v1b$)R(oP5MtQpigz^9GjE=Dd|@@bPnT5Uq|`?ht6?7>Ccni#i2JF`u(K0 zerxAvqoGeC{b7gRX6QGPezQa8+y&DgMfw>Ios%7;4tk@^uDBj@{KK*(pT0@^s`r8hD zv!UNc`cn>lx1nD{`W+6PQ&miVIO!uCI_I}YA3*xy4xQ6sr1v8ItL=7vID1BVSJGc} z=$vjN{i_wA-|f&jGe`P*(ywypoXR783F#*~bk6#b{wV4DIP_LSznk=p*x7FIQHDN_ z^nW>YPCYW6%SgY|p>w8^^dY2=bm*MkB)uQ$y&O8{LrL#J`qr;(xtu^H{ikNo8y!05 zTS@yM0$=x=iD~weM#@_&^Z-OdUw*lQFeZc4SmOQ&|h-soNy=q2c*|H zbk5L|zLNAyEIO9n<1hwb92ese-(wl#dwJtqUGY0!Li|QSNx78 zh=0l(-{y*6&-gLkcrI;Q<$Ip-es6rh6+fNvpKkWZ&vV6(V|;@*zSI>zit$%^xI-#&fHKU4F(VdgHlS!it~H`1K!o z*AI10)-uOCK`~b$sd*kQ3;(IWD-G4puTV3%x8WCUPjc;?suV?&F zZ#=iYSmk@3@v+``Zl1B?r!#)#CXf6)SNu4}S9s&O;$^)*it%T9`#KA-ceG&BkJt(|?-cCQPRD&sAGEhO zwlNXe(i^LOU4*^N-~)eB75BNx{^{f7rCafmxj$KNc9$hT&&Fx)0qfU}V*%J@ct(4B zd$(H$ht{mvEZap_B5B-{g|idm2VuU=+KuZAzK@9t5O55=7E@JG`vKSBas>RTYP`*N z`|rfAdSnj!VGHq_S1T7`t6K6_&gWtOSk;gF_^Q9f6cAEOt@@EC_rg38h~0wh5`EPd zB2Ml1X-_h6L!0ES{#EQ-!}h)-xiM7s76#Ncv9en-pbyUA+9JF_9Mh5B=rHyfqFhxV zbqVF~$0Jb%p-fzoykBe;c75XHz<%6KmxL>%GJKN{LRq^i{!R1psYh8a2h;=m zpcuHas_MtCzTii{Vf!Mop6aVUg41Lg9AuOm1NBuN+ctZlx!t6Bh@GL)Y8cXN!uv5> z6%v&GPA!Of?`*t>0%t-cq+pNjmn3E8Hd&rbkPV0d^-H#pfnNY5^}1j7Bk~z<5%OGl z`>2N>XE4<~al!72(G8?Qxhijy3bt$D9#d{^x&3B6z7AFU=L zF+#Mp7t>mJERtnkz_J=1UGCWT?AI<;j;c zoO{cX%NuoTPE{xUjHZa3L2uN_n2}^%ysSc?qPV<3GCmZ~e8&N@BH~Qw+FPyH^T-Ga zDkt;0}R=HAU%>abktsMcKA z6A5g)S55twy>rvlgFf(w{k5;5$kqiIOcQF5{(LMgB z!(*B-^p07AzL&;716Z@Dv>PeFJOQ*U!5^rgMBB;6dqH(oz_7_)Z+BIssFxuNloXVg z`L=4~W^AezV08IW@C}GXiCJ)cQqSDCh>xbZ_SLddJoi`S>-xgJ+MT9uTw80^aigSu zCaG_p+^hQ8^$zQ2*h&9i>*vw`bXGsLq}uf}(Op0NcRTfS3g&}#{e(gN|6f1HAl3h4 z{iJnw_C0r~pKI;rJy$q%m=ms zo;0b4I^knI>@sj6C5~~bM8;XTSJWWh4gI2>4)jYf1+Ae^*tM62=RLd*G(Cpr^3Dv; z7`Z2DLS>a@MUYk}Ye z`yBI}rJ=;jvd>>V>qcsR6jHT6I7roDa$Fo{>ViCn~YINUELW{#+;&8b?I+hTy?-L-vV#<%kBT7M<1JJy7m^0B_P+g?;(JnEER?rZif&h{6pb}VaE zwv6njl?EvnB76DBOA6ylkWcpRMUfX%xHbp>(*_9rJZfGon`ddzTly_3dzl*w47S{Jqqt8tRiw(uqFBXLaoNdq?Tho97vQs(+*tJWJGbZxYY; zR8J!;wD2r7cos(%bc!b+x%n9jPYw?VQUNJ8o^pYK8_z4g0-o@a0I50(?i+Cu{&rWJZBC&_8M`#E8c3Cg=cld z@q{QGrwkVyXQ~kmz)?G}CeY_|d8VsW6}~|@=O2e|88><&&xPTIeq*|e;5$?kBWNX< z%YZ;JwJsvpNP?OQDsSV(7kjGx6`IreWDc*|f?NLEzbw4Dn}bT#w*PKl^}S$MpCS%W z=Lq_l)aEiUAk_dAG6N~cs*jaupFJ#l_-E9B)?{jMIvl*+HH>1}E~OToMl>Gwdm= z+9Ir2P);FbL=iwvwOh-?bT$jqTGYv3qNSkVY$?0oT>%I&u0WU;C!Y0DrpJ^51f{E+ z4Wg_-%L-r9X`|3e?C#$SfLoJ~6S`twvd-?ySPUUe6SPyQmjT|%SvU- z!~Q>uSI;M-@!FS^5yf7-GTeCW^M!-g8tewxE4Vf<;l<`S<%_lVb(QFsj= zYVg``PN#VF!IqcGma#|wS-ie{JQ}ZeNEuP$#VgZ|*V|hhyzYeyxmS1{1d#tKUfYS+ zxIN-k5`~xV9D~=p_d9s;K7<1GJ$8dswq*Aes0z_2O40Qeu^T}li|u|Nb~Ex!HoXCu zisrc%OzaX!c@`8N$P`Z}o?SHVcaO8DjxteJ9@6CWR;sGx>#5;$V#0aW74SJ|%ZN`` z!OwuE9=ob@;bw~YO7r^`=b|Hk?ZR(fX+pcDZ5So3rzLn1^#C!JDIHI5po1B;`W*K> zK>C5eb4QZZUj0{fY_AiEr*XzZuy4!H#`(?Zs^&hs7t`~PPhzVH?mtd(%|AXxgKmGu zZ61G_bGGcN%sE_i-jM}@uEt3EF75|JG4WxkYB_INZp$U@eEAqcCTcD&w1V!$>8K=jg;WJj9H!!T zEGrF_1p#YRJSrOZtxbK1{V(n*1S>3dR)p7`fmOZsMNf?69whLnV(QraiO2}7I4k?e zH!+zA+UieH>2w*XGQeZPBJd!mtfXGQfd{-pzC{R(1|gJO%dLpc%-f@{QPPtxNdcFn zg>Ps{1yPdXU6SViswHjwMoVf%DEJAKv8ohlM5_MdlJEv@VzJ6H%1HPLK)cKG^b1Z| zMi>bbjD(vhffF#00C@U0ud=+iQ*hEV#hDA|7dFt(_ix5cPZ-!ls!GwW@Pw(gh59MJ@dcbxV@}<7QcNZ+ zyyOTXuFpcddO!v0kMsHqBe8`A{aa&fhH72A$o$IQbMazSB{^ z!Nd5=yJ=?*zCo6 zmdcijWE|Chgt>u$ME2Au9g0N+hMjH%}!q(Sw@tr0ZWXfHc( zhA;H8GlE_J5J3cRIHzyg7Dlj0ofq^#RICcjJA~SpY=My^pAbnyJ_7(TJ&ZhJ(=o5T zxp=12|CFOVC9r@M$c*|sHli= zFz6j5hPsAT8>$W`l~X^Nm~ggw6=XP|mT!^S2%;&bVmVgJQ5XO^1o7$0_c_ceObygy zxGrRd+O`Qbu6=yVj;iZ1k_BoYi^~a3v3fe!gmnND)dEzS>iH3%g(g01X*Qs}>{|^3NV{=Gl z%Nf1?8vf7C(e2EO|9zxd_-FB=1~VlcP-lMTt$;JJoxoiIQxP9s0XKfwu>!upV!@xO zfO=FSE8s{Y-(3Op?|-iX-2Qzn@t0HDzdIkLqVS(~y79j*zQ@5|=3`VDcGFb0tV;5j zwjz{$w5{ryRP~LzpH$fo094%GUUsuq^9(gWDB@0Wg;6kuo~q&f>`AFU-3@f;|HWZK zYt6v>(t5`|C9T&sWurSA=eXwMHnRM)^~4a2d))&a{iUCy?AWwHV%JC4IsTG0-&=;= zLMVSvPx&p=?)aY`46^RG)NQie+%r@^Qf>2|PxWCDVZGJhzu8bE?ysQ`t8QC#W5`a$ zB`j`eE_u=m%~-k1D>vN9_rlQc89Sfo13rswd}g295ufhsyzO)BY3#VI?>3+R``O)z{u~*F z&&UjEKeNv)Y(MGPZG`eC?sfU4w6Gr&EPdEf zZq}#DJ1e>r9{kssHG}jBk6`iU<)coNF;xKrRI0O>lLb`AmHV`<}tAtwH zKSXOSQUUBZg8y@f#vojV8A0tL%1k!Y%qWT;O`&4=&D zu1nUcOR4m_A*8DRVdbA~1n;kn1twge=KK-9au(7fU*rjk(_%+-<59lH{sKOQD11}y z9`VVF(v#y(5q#S2w((Jk*o{=#Qq*H_^<&FSY6JAcwioM#BJHEh-9ElL+E$L`*k=JC ziUEq~2#1;-`kC&JdO;}cR7pC{r#(d+F5Dvymqp>wCmlGAz;Hi>E~QUu7>4t5pZ>ZTrl=2WWWO=K!Hdf1W}o(Ph7f zrPxZB93x8S>cXP>^P3*}i~adT;_;t7;;|MiA=h~1F5KACzZqX%89F%%57D1O>=eTK z&w+nde^To@)1Mxsdi3X)DE&$4W9!ckm^6Z#=#k+c=}*Rke?@<`6R*X4#Ot9b{TX?Z z(VxSDo#7S0-XHXT@qZSt-BUZm>r+xacx{fttF5<<*UP{D3B2Ow{1v|7-Z7VD?^`1lPRodd+0V9wRLkC1$U3+^!u6}y zun$1H(wJ39R}XSxO;29JY+yayM8nmegeZ0ez?@&fvF4f368tb(oLa!>M0?%XPk2Af zzteKn3;50XR*wnWQ_tGp9;cKM*Pr%?>zXKB*Q5!qGt|^cz*TqE_WG?J&(6huo645& z_um_Qj?(m%Sg5Gwapssb}7F9;KKH-pS{>#V4{KTv549mY}qHN8}9RB zdnteK6|{QZ(~SQX64zKvyy^ZS^PG)labGeQ+D63(&S7y@1A;XaM>SqV^ilq}g6Tq_7QX!NtJLcwZvs3>&ap3T)={h zI`<5|9O2Tr@?Bn?t2NQkxvLT7(mC#HDG7<6%zZ85&dG2~3?=8I8)gZr_6%2@{%y~2 z{c{f^57Eyo&Uut<9mw4f+RD{Ms%n6{%<*8-YxafM55aFgo9)8O#_0OMeuy48nhtZF z1XIrKHgTa?znXR&_Cwr8ulb@ofWB)#get>6ANYT<8heag3jq=*uViV%gZqnuI{?X= zV&Pt|aW4)wW4tC`3Cd7?8Eav#_d=k{Ql}qg;jI#O0#NogHi*S23ig4Z@HS|d&lC`C z&~DiSXqcZ44<%;BTPF}R*uzNG+CAY_Z{wBR30_wni}Bkem0E81GB_V1{R{iLVm0__ zf;Md*FKF=T`!U|Ne~pNNe7qY+POtqIv=C&!jbfKlb7j53pty+~Hj3QBCDUR*U}?}a z@^#-kD7H}U@mSE{xHo}6_>pz4P;)35g>07@USzND3|Wn5>DCe(&xFK1=wE}4=M(RD z)IZ-bz_V6uysZPC$RXN4HqoH{cm31tzuH3aciTTXEEKc&tznsymG+ONNq77IUsU@y z(QN;S`g867o~ZV(f7`13*V=#1p77sc<9}i&`aJDuyZ!&uw0}9TbSrk_RJN>%;eF3s z3ah3v&hytYSn97s0PXQ3f|?mwAnhOCBXZu5YH#sT3*na%Br8C z+G1l_Y_#f1s=X{z?$k*@_3YuQlYFJVbJt0_+I_H&Miar^)an&P!;GYINX-c{7!UQ1 zVZrR!(~Rb_zI}>DOf}e2)w7xnZ~I|{)LlBIbg*-qNP?uQcYkJvq-~vqwiSygGoVjq z6FU(}B>|k78mC0)GS=FdCZ2MUF5+X=jA^0__Eqdv`gcCPYR3OV{~is%}lD^ljO__U|WBT0eO4Odm9~mGN`XdQeUD6#n4&287fJr;;H%F&;;%nc5V^Xv!d`!&#Dfqlz!$imIP#*P1Vb8kmt_ykI14hQe}cK- z{*lI`u_Z{B!86pRJHcyP?o{16{Oa*qETFo^v7ckJ0HH+cOTL!&uD5jSO|PlC5mMud z1zl(zo;j{1tfmEi7ZzA;^L&+TALwM2P5Tw20iflFHSpQxhb?c{IKvMsaob_ed^ zI}+`0rfU6%`QGoYM+oMyp96#!S(+Fw_m{%}S7?jk>^9)`H(S|O++o4^t*vZ1>KRgP zvzluh2H+Y{%~)16U0sPkTivrAW|cjm=vumZ#6)Ah6W_p6;}9+CsE7SXAw%71SOD{d zI-0hU-!-SL zN(+FUbXvt>0SmMR^o(=20Q)And`9fw%ud?`b@x?~7whQXKp~1I+IX0rXp~S)FJ1<- zDRwbU-H06urt2B}r5g{uAvnZSP#K|j*-X{cptp-D4s8tW=nMv9joj-!ig-L^w+WIjZOO*zXKA-;q9yeG0bvzP#0*^y@d6(Gd&h_K_C_L^s)ZmeQ zlNXO7?9M^|x5HyUI+>r8_5u$teY}l_@p}6TMeyLR1Q~EsKL%m9f;P&^wS8pYD zj0 z9)rE52;kgbfj#x}`B>r~53lJ`VDEgJj#mQ1rG-<3t>J1%6F=W>Z>|Dnd1xM@DHx@0 zXuvaQ3vIW>mrX>!6sjRGgStQ1Kh9`~u$7?&6h<`Zw~)ZS=D zh}2gj>`&)f_KT!G$mR6>FEJRhWdzhpD5oW3sFCr_0M*7Z>0-}Ra2nH7IX(7j@7f^ zc`tO=PIjQ{_6B%R*(WVWi0U~GAsq*q!eGuOKL7#noOS)js$*ROo_on*4)AskcBPuRBbxg+(N(bSb&P})#3XhXe8G8ySOAg zyQUXjn#IfWkmE?z0k1)wqR!v-IT+&{?0*@9)}#}}_umRwCv*I{2#}3J1Zo%59pj&G zU~Crp^BBL>pU?QEe$l6S{?Yt3&tJqicN5D5fny?JLxKNYN}UR>_f?;bn8p~*pAJE# zcnmg=?;buUHKc#BmJV!1t)%;_n|;CcD6jfE-shNIZ^Xm-VPm+k6t61VwIaa2;hq*X z>SO3TmPMgKY0wIOt~P<=8P2y>`-`$Z>?$Xbc?eka< zFdAN~bIE+8twHl)%p|i=dmNkEdIjcuC0j}IA7?4@QUAy$-2XZHDZcT2tpT316vt2( zP>Mc28XC*wG2^6OiWa=JFIOSnEaEJr)(jK4&);swjvJhR-yWdu%K2LW#)G#NfC1Ua zK#Foa44NVHE$Cj1Di9-m{?>cu7AkW0%}^1sNX<+J*L?V@o&8fe>PE&}W+|r}+JTgK z*h`}cWoSU*h5^- z2zNXz2DhyaX=Q{briF_GTQB5PywyJY+y3$<)JRh*FL9I#${XFWzdK#mi)bsVTitaa zy9K=>boRAoJx>HSRccq>f_r3q&}+I zHWpmnp*~utu|86^cBl^l#@imGiuS5K+;)>y2dzY2+QYN1I=GDSb{%j{Ai7Bu|76#} z86W(9lXze20YI0QfvcpFbX{~(2iHyPqz-QHv<`Gjkb2PVtST(kpNt= z-EJ-Vpg!MYRq-ag0rsWP#NK-U5~M_<`{0HLGr`JrbRLrShleu3fOOZKK5*H$&8)9m_E=xHMb($D8|w?R5$_gQ z<11@D;rqK;W!YQ)XuK&mm!RiZHHHwo_lG|(6d7;Yn~FHzT=#>8xO(^-Ba0; z{@LE*vGBTRJRTK_;9)O#6OSd>FJSDzv<-qsiKAZJ)FPWO=ni^Uoz{=@;_^r5OB#rW zTsAHKNN0HLj>6;HSm5!1YP_r?9viTO2lxMd>cPX_8)REcS);Ucq@l=as_y-Kcaus> z$s2;Q=(gK?0UpK*zuh>~Rq5MkoG_8Pfu^bo6OD#>5uyN<%ooGdl@Km%A=wE1FqrY) zy+AW>5%g>=tJc5m#iq-UO2=t<_xfG(5x{fH9`&mfEN=aJcpu<-pDMnz1D?oaiK@U3 zoywNh%^FkK$3NH~FSx=4=3Hyx>fRqefK+yN_IZ^8njbwRN>yj?(AeVrr1b*c-feEa zywtH&_SEs-obRe5UfKW~b{PLnRGYDD2jjnw1n+W8E)>f6uUr<3d1*xj z`&>5UPW&qYo&6zvE89GnVaJq0t0Ml*6pRaX3#pb1l~X7!AAJJ4Uo{!a^QIy$$Fvu~ zckdBlMbJ;8ELKdWshCu|VytSolA4e6@K#@Q=ij9c?8`#_DRmG%0(8&E^tZ=*`KW`Y z;TnAm$XO+n>%Ps1f6|Rlz&^M3b8{6l`&x6tqO1lND+M~jORl&e?K*Np7lvjzLl&Z~MQ52{{`DqQ z0R18}llL`#(=YNYJktY+t`lpC)Txg-tdALXeRO7TmPXY_`>%)5ADW?7U+CByYy4fN zHe*K(^#4OI{+18R!9TiC_tA6yt!FQE57?m92sX5_jKT%kHvo5A5B%k8x8KpA03b1 zG6M=m+aKLK+&2^V`}c_Z>ruE*`NiNqV$|>3ALu{!?LhzE|3Bd0yTHP~#f5)2Qf>U% z>)QAyV-J7}|F741@&6V30CelX_u&2v{=AAu#u>3{{~N^U*hc8bVy_Y6R`}mjcbEU4 z(i^zHVB_AIfA;}#clo=%pAX}{myLNg>ehZ*^*#3a!2jRq@$WiWZ+eQ8sr3IZ1B71x zUnulyHMX z%UAzNeC{v$YxuMgpJ98%=fKy!?diFl2A>JJ(fG{7E+Opyc-w=|9_&le#nJ6)lu!hl z95*)B`XG$b;FsOlbfPO$uk8ejy=+hEM*@$__K3$3QFuK3gK1A=&Wpl>eQl|_3tN0} z|K)lQDAK5)*`C7+&ZYY2U1TZFJ+6jzickd{dqhp^dp;H}jpFoO<$xo1vmGx36ig2M zQ5!p6U3`tk?RdBcwqgE*{X-SRtJJ=qsNv;~_IN-PUSq!(yzW;6hezS1^0E5|=ilD) zK-I~9D(h}*e}1(7^bm?b?=u^s_LUAqUYp~ZpBjF(bl3LG!QReKy+%BS>bthk zKh+d=#A68YaP`+${SW>143&B=&{!x7!uo!}Vc7ap*>Z0y_e0d;@Fa#}4Gb3gRui8vr1B@eHolDw=OkpIh@(d9qCg6J`*x0T?M)RJ zl-vS^H`7Pzhdc2M+Jn=v_)dIiTrsRUe+<^2%k=Yi{{|0oarnasVNDK3D8qdjgvP3~ z>M5awb;P_QHJ?ku3?t$6C<)uHb0kbN5*9zCB|L{vB*gpG3_yc=WNlg70`i$t+^h$Z zwJo43sSif}-02JzD(3S}Jexu1@>lfj=-3UA&s<^^0cE2-h+|m~{tntSM}08V)+X2Y zJ-#oaN@c(CN9~I$B>rC>^h8#1r@PG1v!tdP>#SO_LT`-E=~hZ3k&YW)@32A$-#LBHG2N2(evbbwUK6;byVpUiIv zp%x=mw;3Dc+B%`W{MPhi&z|F8r5m6%KfDT?XDV9~U-#hEi9clFHFKne*ZnTM?j+U5 ztKlOXukp)z#xw~&zlWAIJ8bd>8k`2`46%lSP7wQp{l>WOFU6T>>VVr28@D2`L93u( zoZU`DLyJ?-eIvNlsR`N9_Iu_y;f4_=-0|7}LUibfC__xi#pp%}~L@{Ml9E&!ut zgI{vn@6P)F%l~@+UyTAcH69{*1C`2|(9wR+GP-0;xO(_&tN%Yc8jtE*h{uL?dy7Z@ z`O$a`5sKiEZdx4l0Q)~T*?63^^bhd3^RmB=$138nY>#*}MBy=QyTRk)A<=l0VdD?> zf4;J}cx2~B<1s)ef``Wi8jfuVMnC$z_y>60eCc1uBlalZv1*TaJQIb-UE2&EL(huF zqX^rEu>W)I-r|vdUNjzkg(7%lxb4cE#yn2;i<8GtO0oh|$h@zU^&g+^qV-QkMeeGtT{dY}VlUhs_6vHuYb$HL_4 z@w#NALdXRSj-UZiU9WJ^cw#PifW{lM5CV zjC(a7>S;+$H&QoYm#tfBZGj^-V5E*VQu8R)Af8UdwNhB_)g_2a!>&u{iRE5RaLo_Y zP=D9k`dhfAqrG3n%)0#b=e~r8b)TAe2DI1s>&9Pzs3KK|ojjE-n^);J9WKMNrE|ug zvmD<06<(CS5GalwX6caZlY?eVMrndOfv|5xn>vlr8R2f2)Q75;Ku5S+^6h*8BikWU zAzUx54}MoSeWZ}MNNR)*JXIkLX`v)>gkE-J$pu-cdbnPGbxFQ91D=CRovxU=<|o$@ zzil>to%NS*MYsPir2XHg24-6A-}1NeZzOheTWsuPtrXf3b$-Oc%s-TENBjpF*<`35 zLJ@l?x0ve^r>TDLXixxj`$7Tb_s>g=xX?TH`!nZ9;`#!QgK;l2FoyrIrM|QCBOgX- z)D@ot5uP9MpAJMYe`Vp3jr~SA|G9E+`-jAHY&>MSEkkt`ir~Qu+wHlgUiMO@`gTDS z9%y-%PmWTgsWV3j9$c-lrvKM4F!Uvu~sHW8{{@Vj8); zx^1dDWRO`e)AP0I*z$w>FIViXe#Bx3B8T8pE8@8rv;?viT^u$ zh2C#Cy~6!yq|z&(UpaCto?*>aPeQN2lCa*;Lr%CD#?K7#dzr!ZkZIsWB@RMJIgzSk zkZN#!S#s4+3Ag&f)iY}P?`rR|v3)b!S){60@=xt!>W~+<4CSX(trhC2oAC@<9;8O9 zmM=7CMUao*&|s{*O(GX){i5>r!9`Bq?tD6U~cK5{Qx#ARPtq$-=g&xazI-vjyk4CnU%{yxF^-H*R}JHP!$W8BAS85pM$KD*9S zFS}mrCC1C~cnvkM^T~6=+D@%*mP^m$=Xl z&$;i{YpZs;r)0i(OWG#XhySpO|NT6@(!-PKQJuWsQx zEN}6)z3PdC0OilNo(cFUfyzzSlL^g!!2u>ToPWMCf?s=tcxLgV*k79O>Sv_+>@LCv zYhri(x1Hy+mz?`A_0MPd$kxI7Z-EDo3i7Fn)tWe~H85dc(mvmO1>L31OwOl@*3i(r z-C>P}2HKYD#LrOD3EhHBImxOTf>#Yyu-korULq+65~$+vx8zkp1t5cTd`IO~k!L9S ziFOj4v`p4qJu^6o^fxNdkUJ|J`8%xhAanD#xcF{}u)gl?!?*RfjPF?I#8f}N3CQ)y zTblc^2VaiQ6k_AvwRgN{rSaW+rN(y=SwG<n494Cas6~kD%(?E^ z^*M`h`Q623>-FLO{i{A))_$Y(c}$9yH=bYTBBds8Y4!Og-?=~Xoh3QMml%?xbUDAJ zmbG23thIM~(_J?=hrh=KF~pdYodD7el&sOqBeLIxtkDd|(4;!uRW()s^zw*HQO(G? zYMSO;tsa3m){$y{c?8Zf4I~mImZ;t#K?7>@tDguk`E>aYdtt2dpx$*xq&e#qrr z3I8E;j{*PaD>VM6D~|l$f)8r7$LcBBO%CZ(lc#eyLnk140r*3Sli|l?1ZzrW+UhAb zACjG|*wQC9DLza`wU-a6&V2O<_%NKRC-8{`Je7>bQvrHiFH7jtfiXC|p_1dHi7hz1 zK?iBdHxgIK15H;a+^4nma%Y14-5yPI+9Bw6hRQvcLwA5f!OeFDf5+Lw@Vu%L;#0iK zr})O+O$U;RP~amUr{3BOP5B0E;a(TJykftE^<@b1Z}OII`tTU|m7S*fRbTO|4esC& zs*hj%IUgG2t;i#Yz^?{xd-;_lk7<7WGdY}JHPj>E*SAzXL0-&d_|?GT7x=`7Kfp3@ zlp`#B(1v)XSXe88xEId4-!iyM+VR+nq*CXY>PonYP=#D>^|E{Vbh_|5%D$Tx{>!-0# zA+B0@{(Bon&*Z<$-!7UFqdA`M4gE}b-d!o4)z*6L^=lhA9@gW6a6I#o2?YQ5JrACh z$WwNzU!L0V9hRqL?exM|aPC;DL3EnES&2Liy877UDYXg4|3IbVKg&P?oF8HQ z$n?SZXC3wUo2&7=-(zUQcWC?`_vudLFer6Oe#0I9*OEpR4a?&@R`N``7lz8RVLbAX zOL*i~ipK>$JVvYs9wVL3i3Sgz51vG758i(`^BCrXj7zj`>G}H-+zFo#Xk(It_17R{ zA;Nr6^L6ih&_Ev3^T9885d&K!*N;kd4&g-$gfP@_4ORb7=kK4dVs^OR)mHi2GYPDe zd+sDq`TRYP_!MyY6nXx>(#NSEOVs>5t%=JkGk>qhCVrhc!|;pF_sRRx3f=EA$HRKl z(aMC-2W%0s@OIZ-nJL8-L3u7&b1_3R@|NaI6Pr_b#Pde^#1r7O`C`qb;j~bYO$KKP z-SwO|$^pyNf+W%T5_|E)Dg1s4qFl@dil0$33Vde)mA;Qd5Cb{zhxZzGw~VmYa5U$Q z+7n*yx_FJgC44>6oA9#YGv#0KdhSJM`FTK$CTWmt<^SJIcqLE$5BcW|9R&Q9i!^ke z{C~Qu1$^KR0#!Lg2!=Z2u>onxc+Uy8jHfwIt7@2^4yYpQ#29MvJlZ1wgRX#>T1QeJ z!{1>?04TpEJQv;LXXX>`vns{?Ss(60Rx|EnoSPcClB$A+%HL#p%|SL1^8epCR(VZK z(x9vTG73C9r_)_qUI#h^yd|>n*yU6r`{zqWWGODD#g0s zIhEpA09i zp|kaUEZueWeTq-t-@zWerSDIV^XmKasv7#<4ORbH-$!2N)%QX8`@iUW2I0QCQrzeI za38x;>3i36D%1Bq$l%FaTKv|r%4=Gp2Hlp|Ms(MfSM_=;o~09==5t+PjTw6k!g|A{ z5rp+<=BJ^A+xkjzTjRs6+X}|*MW@NxMqZ76rz67$@4uLIta!yVjfB_lO?-F_EcNMk z6mkZXef)}2E6B4tnkl_*Y6QrRsNc&7FRWnHetD$%e47uiX3Ld+?>{RNUUAnGUO8_b zD_)x$N5X3f-L>UwAZ@GK^GONz3>98)jXnmvoJ;--UNPqbFRWfF!E2unukvLIujTb4 z;Z@q6@JfE;Sn-;Y5DBl5bk~Ddi4U)d*gaKv^&NE#c+E@sFL-4VUI^_~g4f9k?Kcm_eZ7B7%Ieua{z7m@q`1C|sk?>jJh_B$EqjJ`kXzQZc95UI$c(+qLIw}c z|G##u@>sW#2HKt+F~h!O2WAV%%%8kY(Bl0 zkA(B|?scQ))5{}UET+`UsCp%_!x&E`rSJ1EC>~Wr^?F4^A-NUUmscV>L9#CrXvyc7 zPzaU(cwfBp%|+qj8Cy_*9^jXUy|KfUS0Ys8btrIUd42tCme;vTUbAq&LU}#0F8>_z z+RDY;$m@zvSYCUQycX83P+lh@qbP6b-U-JluRR(@lGj`4u18*rX^htTB?p`MN?tD= zehl*3FX_L?>q?SWd|aXu`+1#f)(V%`UQVAjgjey)$BI|lIg#*cM0Y)S zu}!t`N}lfGRV{Q3c(uRqzu*;fA@IWI{wl$%n-8yU3l&~X&MGy5VAA`J(OZ+eLnoqdFA*n=O13uhlex&5}i8v##dj9U?6kSDlm5x1D zygJv{c-irsHgwm6*Ipl9S?{=bH4a9?i%!1w!rVad-3Xz`oTd?QJL-7O0>bb6O7VNa zhuH zn8P#q#ko&83-BB^Ez}E(vpgqlN{}rehSGU!uvkKJd;D$=Zs2@M0&g1FnbffbW5JL} zUJmx*oNI_cwn-~QqCB=4klPwaPf`gSNV&7!6$2ZO}qD$2XI&PU;UlI}e3Ouiar?CjixTxPPJ>>flT|2ff|#(AR;o`Dna+1;!y z&JtW{{%)?jIG4K!?!p=yJyLU@Kugqio^y@rVmHpQ*j>DAb!J^84)J|N!5_2I4jTu*|^ zX_m}tjWXEO`BpDWVwxJRPwS0m!1WE?aD|?)mMiiPlDBn%TymJxp$5dbnQo@R;hMC$2WrJNuX}j57NynPBw%dn@JppFX~CdXMusCRSJ93tNE{ z9_)XQ;P)?(jmG;I=z{kz-~wq*3@&k()%{a&q=HqvR)X_zCt-QPX`1DqyDZO0DTb1_ zrr)PK-T47l^mtp*`y=DPWqEh!#(~W8bj9+TQ2N$J;oFm9>C+aOO5ro;rjvh;kM*Oj z@UuQ8U>Nh^l_-Ptcirq|%qfixW8Uk9XTbWe@4^+VUxzCxd~2=n$=rpl@M|Ekn)kP; zF8<2$cJXe4>Eb5U#S^NF-nb&zm5y~hf(g_QwvnC9+)uN0M#k>9`q>2;r=g7W_0z`c zXXisQlv7ndCsIGiX3&O(J`$IRH#30S-eVa>cr!obOTVFkjEd(C4ZTI~Fu$HbO|fT zAU4$GDFhH9F+%fx2Lu&&_(UnmUvvZZcifNv?K_MAcJtAmtnlN1etrI#^!aI5pEKKq z&)cmohHba@{j1OLyoV98dM(H+>rZ~o$0tOJ=QtZu2>XP>qxEklogxa3?=h?R*hs#^ z8m-^>0HIBC-o+-q@^1$8XQ0jbL!ho>wLm?|SyMmEOYD2J??>wb5athbaq1qyzeyvR zv~b!!js2S!oXJ%^{>=&`=)nFxUy1!QN6PxUqF595?-phMYHIuUgV?{6^(n=GBb`DD z7-}o$UVeh$8p=jhO?wbmr{Bw3Je?b#fz`s#ln7?@UW0GnutnYzwH(BwKRgbHR3D96`PoYm3n`(;F1JIRPP;954}U-wHH zp}<7QpSFwpsBFKvW`t`O)0#n7eRi?ayEtFg0gX9lM_JmLi}M8RZ(oj7B;@}OId*y6 z)lzcuVs5#&upXx#eslkNdj|_s;1k+^Zv3cx|oNYnzAoKJBHGDFVP!B{^|0VJ>0!29(L*}-kik9J68Qepc#@JgF@s&Edib`z zcMQX=9xhQm+@X571=q4EB!MI+#{cUK0h|AtYX?abVQ@U>j;E0fT7Lhgw;_Lbk^H^# z58BcZL26g!i#f9|BoT}*;Q4{(NT+oSd104<)(l-|AZ6)ccc^0nC80p;H6t z&OQ7DiChr}0#yW-ri>@YxKl>v6W|OyAmsq^TY=c=v&@MzwiZtt^iT#YB{C0B!MUd> zUKxjHcX1wEC{O|rw7$}0;nCM=uD;%&<_t?^owp~`ypggVxxT#)<1FoLiJ;ne?aEbW{OOmgE`*gOR|DRv6ZQ44yGL%@>}326oB$Bpvj>nb zl(%&5AX-mmy7JR1rMR#cqB{NgfU9%QPJGYKm8aBdz=wUjcL@UJbDTqW-JRo!7C5wX zoQyb@@;s{Lo{2ZFf!%TnjDrS{l*FK%DJWk@6UGXlBJVD5d-@qs1?A5*PT5}={U=(D zDy;QqG%jsnXfWt#G!x@IT2?Qr#eu%tND{Tj$7QJ#{K0TE!Iz0s4lJ9dzJii_aL|+2gQ0MyDj@#$@I|@EnkIo=0*!MU4 z+}kIz|NoLRc|XwLd4cWI3Z(MD|9{T%x5!5?9F{PVE~69JM?%O4fst9bLyJtMYIJlQ zR>U=GSRG)!=-k#8ei$6#hob-+zp}oi1mYo98HkEp6Xo2(Rd~%!56Yy6M2IPR2nhuW zx%5YXTz0}Wus-xTbaj@RUI9QGJp2~=@~=>lLB>oL1g)KCP7xQZH5LSo@R(T;l#2_7 zR|Hw>d}J!q$rdT4C*@D6I}-p#%qs#ra|b%zY%iyLGRpW;ffplb+v z!YP3VVaI}&P%u~ddu>%0zh31X#H*(poZ6@^da5q&!L_WV_V=*QVaYwmVQjhY=F0ti zu>r2o2f>b?UV*>2_aFFs)Bo`Kdm{hmviv`DB>AUrWGMNMcjcclvdoK~wESPA0|2&ci2(HY7qDNWhIYQ~^D>fzOm$+JNtqLKj@=By9jyq!7+EP5e^&9R+R`gYP>Z zWysJeS2Ba+d0GYX3z1Nwmkf8)niYx=ybf0=LLRP=(gYGAlG1b0hF3}lSUsGedYIbE z+ryn!59PF2MGs9?4-IkkL@b|cOkLPg+Q8~!B4n5b(cag^!B{hh395@_?PU-PaK#{e z5z8hFmL0L2{V<+aV5O;kN?Uq|Qe^d$s`}}o`pL#sv_bm|`J@lD=7yie`e3=I3;VeG zuo;iJK2|Tt3AnQ9CFsMiqz|v`_349&Pxf+VA>$@*X;eR%BMXmszKGXCz^~t5TIj9) zeb<+`gKF)4>hugU-T)qBNpv0xisYl6^amN+q!4{dk4|dPDn0DH5ltN8r8)zuhr1U? zy}y4DK+Vsq)W6v1^Djn>XaAxI{zdj4kADHpLjDsH)R6!5#IfR+c1YtlhNcNQpOqs1 zMgywzpht$mMem}aE_zja93y&HpBV0gRPsLFR?RE%L!Ni#@23cUNT+e^hm3K~`PKFG zz4z_p*1TKF6)%o=R-DSTuS$q2Ax1NZ-PvvBMgFqJ)xEEjsuC!31 z_viJXNeyNB^q-E|a>TKIH5KE*IMMfA&`%$ekz8XW

O-23iXCz%4q*>Aq14_q^}lf>z@FyXB{o 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%0Djsx^7Zp42 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