From fbbd68d18638fada9d11d80a38358585205923cc Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 25 May 2018 23:04:49 +0200 Subject: [PATCH 001/211] add icon --- icon.jpg | Bin 0 -> 22326 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 icon.jpg diff --git a/icon.jpg b/icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2c5b8cab35c0e117831acd3ac23a4800596ee01e GIT binary patch literal 22326 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�oy0GZSE4Um$zom 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 S>nR^n1Y>dhsODnjiT~My@SjTn literal 0 HcmV?d00001 -- GitLab From bed16b65fd0d16cd9208ffba5b7e80e8bb8198da Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 26 May 2018 11:12:20 +0200 Subject: [PATCH 002/211] Updated .gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 89426b7bff..e04091bb1f 100644 --- a/.gitignore +++ b/.gitignore @@ -145,3 +145,5 @@ retroarch.js.mem # only ignore .js files in the repo root /*.js +*.d +.vscode/* -- GitLab From fb3fb6c5fcc94a0b3a99ae7a2dadd014a3ec334c Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 26 May 2018 11:12:43 +0200 Subject: [PATCH 003/211] Makefile changes (needs optimization) --- Makefile.common | 4 +- Makefile.switch | 132 +++++++++++++++++++++++++++++++----------------- 2 files changed, 87 insertions(+), 49 deletions(-) diff --git a/Makefile.common b/Makefile.common index 5dd66d7a87..b364c1ec6a 100644 --- a/Makefile.common +++ b/Makefile.common @@ -881,8 +881,8 @@ endif ifeq ($(TARGET), retroarch_switch) OBJ += gfx/drivers/switch_gfx.o \ input/drivers/switch_input.o \ - input/drivers_joypad/switch_joypad.o \ - audio/drivers/switch_audio.o + input/drivers_joypad/switch_joypad.o \ + audio/drivers/switch_audio.o endif ifeq ($(HAVE_WAYLAND), 1) diff --git a/Makefile.switch b/Makefile.switch index 24a202ad19..18bef01544 100644 --- a/Makefile.switch +++ b/Makefile.switch @@ -1,68 +1,106 @@ +#--------------------------------------------------------------------------------- +.SUFFIXES: +#--------------------------------------------------------------------------------- + TARGET := retroarch_switch DEBUG ?= 0 -GRIFFIN_BUILD = 0 WHOLE_ARCHIVE_LINK = 0 +GRIFFIN_BUILD = 0 -OBJ := +OBJ := DEFINES := -DSWITCH=1 -U__linux__ -U__linux -DRARCH_INTERNAL -ifeq ($(GRIFFIN_BUILD), 1) - OBJ += griffin/griffin.o - DEFINES += -DHAVE_GRIFFIN=1 -DHAVE_NEON -DHAVE_MATERIALUI -DHAVE_LIBRETRODB -DHAVE_CC_RESAMPLER - DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DWANT_ZLIB - DEFINES += -DHAVE_RUNAHEAD +TOPDIR ?= $(CURDIR) +export TOPDIR := $(CURDIR) +export DEPSDIR := $(CURDIR) + +HAVE_CC_RESAMPLER = 1 +HAVE_MENU_COMMON = 1 +HAVE_RTGA = 1 +HAVE_RPNG = 1 +HAVE_RJPEG = 1 +HAVE_RBMP = 1 +HAVE_RGUI = 1 +HAVE_ZLIB = 1 +HAVE_BUILTINZLIB = 1 +HAVE_LIBRETRODB = 1 +HAVE_ZARCH = 0 +HAVE_MATERIALUI = 0 # enable later? +HAVE_XMB = 0 +HAVE_STATIC_VIDEO_FILTERS = 1 +HAVE_STATIC_AUDIO_FILTERS = 1 +HAVE_MENU = 1 +HAVE_RUNAHEAD = 1 + +include Makefile.common +BLACKLIST := +BLACKLIST += input/input_overlay.o +BLACKLIST += tasks/task_overlay.o +OBJ := $(filter-out $(BLACKLIST),$(OBJ)) + +INCDIRS := -Ideps -Ideps/libz -Ilibretro-common/include -Ideps/stb -I$(DEVKITPRO)/libnx/include/ + +include $(DEVKITPRO)/libnx/switch_rules + +APP_ICON := icon.jpg +APP_VERSION := RetroArch SNES9x libNX +APP_AUTHOR := Maintainer: M4xw, Credit: Reswitched, libretro + +ARCH := -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE +LDFLAGS += -g $(ARCH) -specs=$(DEVKITPRO)/libnx/switch.specs +CFLAGS += $(DEFINES) -g \ + -O2 \ + -fomit-frame-pointer \ + -ffunction-sections \ + -fdata-sections +CFLAGS += $(INCLUDE) -D__SWITCH__=1 +CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11 +ASFLAGS := -g $(ARCH) +ARFLAGS := rcs +LIBDIRS := $(PORTLIBS) $(LIBNX) -L. + +TARGETS := $(TARGET).nro.so + +CFLAGS += $(INCDIRS) + +BUILD_DIR = $(CURDIR) + +ifeq ($(strip $(ICON)),) + icons := $(wildcard *.jpg) + ifneq (,$(findstring $(TARGET).jpg,$(icons))) + export APP_ICON := $(TOPDIR)/$(TARGET).jpg + else + ifneq (,$(findstring icon.jpg,$(icons))) + export APP_ICON := $(TOPDIR)/icon.jpg + endif + endif else - HAVE_CC_RESAMPLER = 1 - HAVE_MENU_COMMON = 1 - HAVE_RTGA = 1 - HAVE_RPNG = 1 - HAVE_RJPEG = 1 - HAVE_RBMP = 1 - HAVE_RGUI = 1 - HAVE_ZLIB = 1 - HAVE_BUILTINZLIB = 1 - HAVE_LIBRETRODB = 1 - HAVE_ZARCH = 0 - HAVE_MATERIALUI = 0 # enable later? - HAVE_XMB = 0 - HAVE_STATIC_VIDEO_FILTERS = 1 - HAVE_STATIC_AUDIO_FILTERS = 1 - HAVE_MENU = 1 - HAVE_RUNAHEAD = 1 - - include Makefile.common - BLACKLIST := - BLACKLIST += input/input_overlay.o - BLACKLIST += tasks/task_overlay.o - OBJ := $(filter-out $(BLACKLIST),$(OBJ)) + export APP_ICON := $(TOPDIR)/$(ICON) endif - -ifeq ($(strip $(LIBTRANSISTOR_HOME)),) -$(error "Please set LIBTRANSISTOR_HOME in your environment. export LIBTRANSISTOR_HOME=o libtransistor") +ifeq ($(strip $(NO_ICON)),) + export NROFLAGS += --icon=$(APP_ICON) endif -include $(LIBTRANSISTOR_HOME)/libtransistor.mk - -INCDIRS := -I. -Ideps -Ideps/libz -Ilibretro-common/include -Ideps/stb -I$(LIBTRANSISTOR_HOME)/build/sdl2_install/include/SDL2/ -LIBDIRS := -L. +ifeq ($(strip $(NO_NACP)),) + export NROFLAGS += --nacp=$(CURDIR)/$(TARGET).nacp +endif -TARGETS := $(TARGET).nro +ifneq ($(APP_TITLEID),) + export NACPFLAGS += --titleid=$(APP_TITLEID) +endif -CFLAGS += $(INCDIRS) $(DEFINES) -Wunused-command-line-argument +ifneq ($(ROMFS),) + export NROFLAGS += --romfsdir=$(CURDIR)/$(ROMFS) +endif all: $(TARGETS) -$(TARGET).nro.so: $(OBJ) libretro_switch.a fs.squashfs.o $(LIBTRANSISTOR_NRO_LIB) $(LIBTRANSISTOR_COMMON_LIBS) - $(LD) $(LD_FLAGS) --allow-multiple-definition -o $@ $(OBJ) libretro_switch.a fs.squashfs.o $(LIBTRANSISTOR_NRO_LDFLAGS) -lm - -%.squashfs.o: %.squashfs - $(LD) -s -r -b binary -m aarch64elf -T $(LIBTRANSISTOR_HOME)/fs.T -o $@ $< - -fs.squashfs: fs/* - mksquashfs $^ $@ -comp lz4 -nopad -noappend +%.nro.so: $(OBJ) libretro_switch.a %.nacp + @[ -d $@ ] || mkdir -p $@ + @$(LD) $(LDFLAGS) -T $(DEVKITPRO)/libnx/switch.ld --allow-multiple-definition -o $@ $(OBJ) -l$(DEVKITPRO)/libnx/lib/libnx.a libretro_switch.a -lm clean: rm -f $(OBJ) $(TARGET).nro.so $(TARGET).nro -- GitLab From 3e031092a703ef4aaeb45fdebffa2a158fa5fe19 Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 26 May 2018 11:13:09 +0200 Subject: [PATCH 004/211] Changed includes for libnx WIP --- .vscode/c_cpp_properties.json | 127 ------ .vscode/launch.json | 45 -- .vscode/settings.json | 19 - .vscode/tasks.json | 91 ---- gfx/drivers/switch_gfx.c | 581 ++++++++++++------------ input/drivers/switch_input.c | 141 +++--- input/drivers_joypad/switch_joypad.c | 2 +- libretro-common/features/features_cpu.c | 4 +- 8 files changed, 363 insertions(+), 647 deletions(-) delete mode 100644 .vscode/c_cpp_properties.json delete mode 100644 .vscode/launch.json delete mode 100644 .vscode/settings.json delete mode 100644 .vscode/tasks.json diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json deleted file mode 100644 index 21eed5a8e9..0000000000 --- a/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "configurations": [ - { - "name": "Mac", - "includePath": [ - "/usr/include", - "/usr/local/include", - "${workspaceRoot}" - ], - "defines": [], - "intelliSenseMode": "clang-x64", - "browse": { - "path": [ - "/usr/include", - "/usr/local/include", - "${workspaceRoot}" - ], - "limitSymbolsToIncludedHeaders": true, - "databaseFilename": "" - }, - "macFrameworkPath": [ - "/System/Library/Frameworks", - "/Library/Frameworks" - ] - }, - { - "name": "Linux", - "includePath": [ - "/usr/include", - "/usr/local/include", - "${workspaceRoot}" - ], - "defines": [], - "intelliSenseMode": "clang-x64", - "browse": { - "path": [ - "/usr/include", - "/usr/local/include", - "${workspaceRoot}" - ], - "limitSymbolsToIncludedHeaders": true, - "databaseFilename": "" - } - }, - { - "name": "Win32", - "includePath": [ - "C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/um", - "C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/ucrt", - "C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/shared", - "C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/winrt", - "${workspaceRoot}" - ], - "defines": [ - "_DEBUG", - "UNICODE" - ], - "intelliSenseMode": "msvc-x64", - "browse": { - "path": [ - "C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/um", - "C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/ucrt", - "C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/shared", - "C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/winrt", - "${workspaceRoot}" - ], - "limitSymbolsToIncludedHeaders": true, - "databaseFilename": "" - }, - "cStandard": "c11", - "cppStandard": "c++17" - }, - { - "name": "msys2-mingw32", - "includePath": [ - "C:/msys64/mingw32/include", - "C:/msys64/mingw32/i686-w64-mingw32/include", - "${workspaceRoot}/libretro-common/include", - "${workspaceRoot}/include", - "${workspaceRoot}" - ], - "defines": [ - "_DEBUG", - "UNICODE" - ], - "intelliSenseMode": "msvc-x64", - "browse": { - "path": [ - "C:/msys64/mingw32/include", - "C:/msys64/mingw32/i686-w64-mingw32/include", - "${workspaceRoot}/libretro-common/include", - "${workspaceRoot}/include", - "${workspaceRoot}" - ], - "limitSymbolsToIncludedHeaders": true, - "databaseFilename": "" - } - }, - { - "name": "msys2-mingw64", - "includePath": [ - "C:/msys64/mingw64/include", - "C:/msys64/mingw64/x86_64-w64-mingw32/include", - "${workspaceRoot}/libretro-common/include", - "${workspaceRoot}/include", - "${workspaceRoot}" - ], - "defines": [ - "_DEBUG", - "UNICODE" - ], - "intelliSenseMode": "msvc-x64", - "browse": { - "path": [ - "C:/msys64/mingw64/include", - "C:/msys64/mingw64/x86_64-w64-mingw32/include", - "${workspaceRoot}/libretro-common/include", - "${workspaceRoot}/include", - "${workspaceRoot}" - ], - "limitSymbolsToIncludedHeaders": true, - "databaseFilename": "" - } - } - ], - "version": 4 -} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index e7552247cc..0000000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "(gdb) Launch", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/retroarch.exe", - "args": ["-v"], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "miDebuggerPath": "c:\\msys64\\mingw64\\bin\\gdb.exe", - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - } - ] - }, - { - "name": "(gdb) Attach", - "type": "cppdbg", - "request": "attach", - "program": "${workspaceFolder}/retroarch.exe", - "processId": "${command:pickProcess}", - "MIMode": "gdb", - "miDebuggerPath": "c:\\msys64\\mingw64\\bin\\gdb.exe", - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - } - ] - }, - - ] -} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index ed25459806..0000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "terminal.integrated.shell.windows": "C:\\msys64\\usr\\bin\\bash.exe", - "terminal.integrated.env.windows": { - "PATH": "/mingw64/lib/ccache/bin:/mingw64/lib/ccache/bin:/mingw64/lib/ccache/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/bin:$PATH", - "MSYSTEM": "MINGW64", - }, - "terminal.integrated.cursorBlinking": true, - - "editor.tabSize": 3, - "editor.renderWhitespace": "all", - "editor.insertSpaces": true, - "files.associations": { - "frontend_driver.h": "c", - "*.in": "c", - "*.rh": "c", - "array": "c" - }, - "C_Cpp.dimInactiveRegions": false, -} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index b271c66e8f..0000000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - // See https://go.microsoft.com/fwlink/?LinkId=733558 - // for the documentation about the tasks.json format - "version": "2.0.0", - "tasks": [ - { - "taskName": "msys2-mingw64 build", - "type": "shell", - - "group": { - "kind": "build", - "isDefault": true }, - - "command": "./configure; make -j2", - "options": { - "shell": { - "executable": "C:\\msys64\\usr\\bin\\bash.exe", - "args": [ - "-c" - ] - } - } - } - { - "taskName": "msys2-mingw64 build with debug symbols", - "type": "shell", - - "group": "build", - - "command": "./configure; DEBUG=1 make -j2", - "options": { - "shell": { - "executable": "C:\\msys64\\usr\\bin\\bash.exe", - "args": [ - "-c" - ] - } - } - } - { - "taskName": "msys2-mingw64 rebuild", - "type": "shell", - - "group": "build", - - "command": "make -j2", - "options": { - "shell": { - "executable": "C:\\msys64\\usr\\bin\\bash.exe", - "args": [ - "-c" - ] - } - } - } - { - "taskName": "msys2-mingw64 clean", - "type": "shell", - - "group": "build", - - "command": "make clean", - "options": { - "shell": { - "executable": "C:\\msys64\\usr\\bin\\bash.exe", - "args": [ - "-c" - ] - } - } - } - { - "taskName": "msys2-mingw64 run", - "type": "shell", - - "group": { - "kind": "test", - "isDefault": true }, - - "command": "./retroarch -v", - "options": { - "shell": { - "executable": "C:\\msys64\\usr\\bin\\bash.exe", - "args": [ - "-c" - ] - } - } - } - ] -} \ No newline at end of file diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index 529f74e04a..3ff87cf6f9 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -9,7 +9,7 @@ #include #include -#include +#include #ifdef HAVE_CONFIG_H #include "../../config.h" @@ -34,190 +34,190 @@ typedef struct { - bool vsync; - bool rgb32; - unsigned width, height; - unsigned rotation; - struct video_viewport vp; - - struct { - bool enable; - bool fullscreen; - - uint32_t *pixels; - - unsigned width; - unsigned height; - - unsigned tgtw; - unsigned tgth; - - struct scaler_ctx scaler; - } menu_texture; - - surface_t surface; - revent_h vsync_h; - uint32_t image[1280*720]; - - struct scaler_ctx scaler; - uint32_t last_width; - uint32_t last_height; + bool vsync; + bool rgb32; + unsigned width, height; + unsigned rotation; + struct video_viewport vp; + + struct + { + bool enable; + bool fullscreen; + + uint32_t *pixels; + + unsigned width; + unsigned height; + + unsigned tgtw; + unsigned tgth; + + struct scaler_ctx scaler; + } menu_texture; + + surface_t surface; + revent_h vsync_h; + uint32_t image[1280 * 720]; + + struct scaler_ctx scaler; + uint32_t last_width; + uint32_t last_height; } switch_video_t; static void *switch_init(const video_info_t *video, - const input_driver_t **input, void **input_data) + const input_driver_t **input, void **input_data) { - unsigned x, y; - switch_video_t *sw = (switch_video_t*)calloc(1, sizeof(*sw)); - if (!sw) - return NULL; + unsigned x, y; + switch_video_t *sw = (switch_video_t *)calloc(1, sizeof(*sw)); + if (!sw) + return NULL; - RARCH_LOG("loading switch gfx driver, width: %d, height: %d\n", video->width, video->height); + RARCH_LOG("loading switch gfx driver, width: %d, height: %d\n", video->width, video->height); - result_t r = display_init(); - if (r != RESULT_OK) - { - free(sw); - return NULL; - } - r = display_open_layer(&sw->surface); + result_t r = display_init(); + if (r != RESULT_OK) + { + free(sw); + return NULL; + } + r = display_open_layer(&sw->surface); - if (r != RESULT_OK) - { - display_finalize(); - free(sw); - return NULL; - } - r = display_get_vsync_event(&sw->vsync_h); + if (r != RESULT_OK) + { + display_finalize(); + free(sw); + return NULL; + } + r = display_get_vsync_event(&sw->vsync_h); - if (r != RESULT_OK) - { - display_close_layer(&sw->surface); - display_finalize(); - free(sw); - return NULL; - } + if (r != RESULT_OK) + { + display_close_layer(&sw->surface); + display_finalize(); + free(sw); + return NULL; + } - sw->vp.x = 0; - sw->vp.y = 0; - sw->vp.width = 1280; - sw->vp.height = 720; - sw->vp.full_width = 1280; - sw->vp.full_height = 720; - video_driver_set_size(&sw->vp.width, &sw->vp.height); + sw->vp.x = 0; + sw->vp.y = 0; + sw->vp.width = 1280; + sw->vp.height = 720; + sw->vp.full_width = 1280; + sw->vp.full_height = 720; + video_driver_set_size(&sw->vp.width, &sw->vp.height); - sw->vsync = video->vsync; - sw->rgb32 = video->rgb32; + sw->vsync = video->vsync; + sw->rgb32 = video->rgb32; - *input = NULL; - *input_data = NULL; + *input = NULL; + *input_data = NULL; - return sw; + return sw; } static void switch_wait_vsync(switch_video_t *sw) { - uint32_t handle_idx; - svcWaitSynchronization(&handle_idx, &sw->vsync_h, 1, 33333333); - svcResetSignal(sw->vsync_h); + uint32_t handle_idx; + svcWaitSynchronization(&handle_idx, &sw->vsync_h, 1, 33333333); + svcResetSignal(sw->vsync_h); } static bool switch_frame(void *data, const void *frame, - unsigned width, unsigned height, - uint64_t frame_count, unsigned pitch, - const char *msg, video_frame_info_t *video_info) + unsigned width, unsigned height, + uint64_t frame_count, unsigned pitch, + const char *msg, video_frame_info_t *video_info) { - static uint64_t last_frame = 0; - - unsigned x, y; - result_t r; - int tgtw, tgth, centerx, centery; - uint32_t *out_buffer = NULL; - switch_video_t *sw = data; - int xsf = 1280 / width; - int ysf = 720 / height; - int sf = xsf; - - if (ysf < sf) - sf = ysf; - - tgtw = width * sf; - tgth = height * sf; - centerx = (1280-tgtw)/2; - centery = (720-tgth)/2; - - // clear image to black - for(y = 0; y < 720; y++) - { - for(x = 0; x < 1280; x++) + static uint64_t last_frame = 0; + + unsigned x, y; + result_t r; + int tgtw, tgth, centerx, centery; + uint32_t *out_buffer = NULL; + switch_video_t *sw = data; + int xsf = 1280 / width; + int ysf = 720 / height; + int sf = xsf; + + if (ysf < sf) + sf = ysf; + + tgtw = width * sf; + tgth = height * sf; + centerx = (1280 - tgtw) / 2; + centery = (720 - tgth) / 2; + + // clear image to black + for (y = 0; y < 720; y++) { - sw->image[y*1280+x] = 0xFF000000; + for (x = 0; x < 1280; x++) + { + sw->image[y * 1280 + x] = 0xFF000000; + } } - } - if(width > 0 && height > 0) { - if(sw->last_width != width || - sw->last_height != height) - { - scaler_ctx_gen_reset(&sw->scaler); - - sw->scaler.in_width = width; - sw->scaler.in_height = height; - sw->scaler.in_stride = pitch; - sw->scaler.in_fmt = sw->rgb32 ? SCALER_FMT_ARGB8888 : SCALER_FMT_RGB565; - - sw->scaler.out_width = tgtw; - sw->scaler.out_height = tgth; - sw->scaler.out_stride = 1280 * sizeof(uint32_t); - sw->scaler.out_fmt = SCALER_FMT_ABGR8888; - - sw->scaler.scaler_type = SCALER_TYPE_POINT; - - if(!scaler_ctx_gen_filter(&sw->scaler)) { - RARCH_ERR("failed to generate scaler for main image\n"); - return false; - } - - sw->last_width = width; - sw->last_height = height; - } - - scaler_ctx_scale(&sw->scaler, sw->image + (centery * 1280) + centerx, frame); - } + if (width > 0 && height > 0) + { + if (sw->last_width != width || + sw->last_height != height) + { + scaler_ctx_gen_reset(&sw->scaler); + + sw->scaler.in_width = width; + sw->scaler.in_height = height; + sw->scaler.in_stride = pitch; + sw->scaler.in_fmt = sw->rgb32 ? SCALER_FMT_ARGB8888 : SCALER_FMT_RGB565; + + sw->scaler.out_width = tgtw; + sw->scaler.out_height = tgth; + sw->scaler.out_stride = 1280 * sizeof(uint32_t); + sw->scaler.out_fmt = SCALER_FMT_ABGR8888; + + sw->scaler.scaler_type = SCALER_TYPE_POINT; + + if (!scaler_ctx_gen_filter(&sw->scaler)) + { + RARCH_ERR("failed to generate scaler for main image\n"); + return false; + } + + sw->last_width = width; + sw->last_height = height; + } + + scaler_ctx_scale(&sw->scaler, sw->image + (centery * 1280) + centerx, frame); + } #if defined(HAVE_MENU) - if (sw->menu_texture.enable) - { - menu_driver_frame(video_info); + if (sw->menu_texture.enable) + { + menu_driver_frame(video_info); - if (sw->menu_texture.pixels) - { + if (sw->menu_texture.pixels) + { #if 0 if (sw->menu_texture.fullscreen) { #endif - scaler_ctx_scale(&sw->menu_texture.scaler, sw->image + - ((720-sw->menu_texture.tgth)/2)*1280 + - ((1280-sw->menu_texture.tgtw)/2), sw->menu_texture.pixels); + scaler_ctx_scale(&sw->menu_texture.scaler, sw->image + ((720 - sw->menu_texture.tgth) / 2) * 1280 + ((1280 - sw->menu_texture.tgtw) / 2), sw->menu_texture.pixels); #if 0 } else { } #endif - } - } - else if (video_info->statistics_show) - { - struct font_params *osd_params = (struct font_params*) - &video_info->osd_stat_params; - - if (osd_params) + } + } + else if (video_info->statistics_show) { - font_driver_render_msg(video_info, NULL, video_info->stat_text, - (const struct font_params*)&video_info->osd_stat_params); + struct font_params *osd_params = (struct font_params *)&video_info->osd_stat_params; + + if (osd_params) + { + font_driver_render_msg(video_info, NULL, video_info->stat_text, + (const struct font_params *)&video_info->osd_stat_params); + } } - } #endif #if 0 @@ -228,215 +228,216 @@ static bool switch_frame(void *data, const void *frame, } #endif - if (msg && strlen(msg) > 0) - RARCH_LOG("message: %s\n", msg); + if (msg && strlen(msg) > 0) + RARCH_LOG("message: %s\n", msg); - r = surface_dequeue_buffer(&sw->surface, &out_buffer); - if (sw->vsync) - switch_wait_vsync(sw); - svcSleepThread(10000); - if(r != RESULT_OK) { - return true; // just skip the frame - } - - gfx_slow_swizzling_blit(out_buffer, sw->image, 1280, 720, 0, 0); - - r = surface_queue_buffer(&sw->surface); - - if (r != RESULT_OK) - return false; + r = surface_dequeue_buffer(&sw->surface, &out_buffer); + if (sw->vsync) + switch_wait_vsync(sw); + svcSleepThread(10000); + if (r != RESULT_OK) + { + return true; // just skip the frame + } - last_frame = svcGetSystemTick(); - return true; + gfx_slow_swizzling_blit(out_buffer, sw->image, 1280, 720, 0, 0); + + r = surface_queue_buffer(&sw->surface); + + if (r != RESULT_OK) + return false; + + last_frame = svcGetSystemTick(); + return true; } static void switch_set_nonblock_state(void *data, bool toggle) { - switch_video_t *sw = data; - sw->vsync = !toggle; + switch_video_t *sw = data; + sw->vsync = !toggle; } static bool switch_alive(void *data) { - (void) data; - return true; + (void)data; + return true; } static bool switch_focus(void *data) { - (void) data; - return true; + (void)data; + return true; } static bool switch_suppress_screensaver(void *data, bool enable) { - (void) data; - (void) enable; - return false; + (void)data; + (void)enable; + return false; } static bool switch_has_windowed(void *data) { - (void) data; - return false; + (void)data; + return false; } static void switch_free(void *data) { - switch_video_t *sw = data; - svcCloseHandle(sw->vsync_h); - display_close_layer(&sw->surface); - display_finalize(); - free(sw); + switch_video_t *sw = data; + svcCloseHandle(sw->vsync_h); + display_close_layer(&sw->surface); + display_finalize(); + free(sw); } static bool switch_set_shader(void *data, - enum rarch_shader_type type, const char *path) + enum rarch_shader_type type, const char *path) { - (void) data; - (void) type; - (void) path; + (void)data; + (void)type; + (void)path; - return false; + return false; } static void switch_set_rotation(void *data, unsigned rotation) { - switch_video_t *sw = data; - if (!sw) - return; - sw->rotation = rotation; + switch_video_t *sw = data; + if (!sw) + return; + sw->rotation = rotation; } static void switch_viewport_info(void *data, struct video_viewport *vp) { - switch_video_t *sw = data; - *vp = sw->vp; + switch_video_t *sw = data; + *vp = sw->vp; } static bool switch_read_viewport(void *data, uint8_t *buffer, bool is_idle) { - (void) data; - (void) buffer; + (void)data; + (void)buffer; - return true; + return true; } static void switch_set_texture_frame( - void *data, const void *frame, bool rgb32, - unsigned width, unsigned height, float alpha) + void *data, const void *frame, bool rgb32, + unsigned width, unsigned height, float alpha) { - switch_video_t *sw = data; - - if ( !sw->menu_texture.pixels || - sw->menu_texture.width != width || - sw->menu_texture.height != height) - { - if (sw->menu_texture.pixels) - free(sw->menu_texture.pixels); - - sw->menu_texture.pixels = malloc(width * height * (rgb32 ? 4 : 2)); - if (!sw->menu_texture.pixels) - { - RARCH_ERR("failed to allocate buffer for menu texture\n"); - return; - } - - int xsf = 1280 / width; - int ysf = 720 / height; - int sf = xsf; - - if (ysf < sf) - sf = ysf; - - sw->menu_texture.width = width; - sw->menu_texture.height = height; - sw->menu_texture.tgtw = width * sf; - sw->menu_texture.tgth = height * sf; - - struct scaler_ctx *sctx = &sw->menu_texture.scaler; - scaler_ctx_gen_reset(sctx); + switch_video_t *sw = data; - sctx->in_width = width; - sctx->in_height = height; - sctx->in_stride = width * (rgb32 ? 4 : 2); - sctx->in_fmt = rgb32 ? SCALER_FMT_ARGB8888 : SCALER_FMT_RGB565; - - sctx->out_width = sw->menu_texture.tgtw; - sctx->out_height = sw->menu_texture.tgth; - sctx->out_stride = 1280 * 4; - sctx->out_fmt = SCALER_FMT_ABGR8888; - - sctx->scaler_type = SCALER_TYPE_POINT; - - if (!scaler_ctx_gen_filter(sctx)) + if (!sw->menu_texture.pixels || + sw->menu_texture.width != width || + sw->menu_texture.height != height) { - RARCH_ERR("failed to generate scaler for menu texture\n"); - return; + if (sw->menu_texture.pixels) + free(sw->menu_texture.pixels); + + sw->menu_texture.pixels = malloc(width * height * (rgb32 ? 4 : 2)); + if (!sw->menu_texture.pixels) + { + RARCH_ERR("failed to allocate buffer for menu texture\n"); + return; + } + + int xsf = 1280 / width; + int ysf = 720 / height; + int sf = xsf; + + if (ysf < sf) + sf = ysf; + + sw->menu_texture.width = width; + sw->menu_texture.height = height; + sw->menu_texture.tgtw = width * sf; + sw->menu_texture.tgth = height * sf; + + struct scaler_ctx *sctx = &sw->menu_texture.scaler; + scaler_ctx_gen_reset(sctx); + + sctx->in_width = width; + sctx->in_height = height; + sctx->in_stride = width * (rgb32 ? 4 : 2); + sctx->in_fmt = rgb32 ? SCALER_FMT_ARGB8888 : SCALER_FMT_RGB565; + + sctx->out_width = sw->menu_texture.tgtw; + sctx->out_height = sw->menu_texture.tgth; + sctx->out_stride = 1280 * 4; + sctx->out_fmt = SCALER_FMT_ABGR8888; + + sctx->scaler_type = SCALER_TYPE_POINT; + + if (!scaler_ctx_gen_filter(sctx)) + { + RARCH_ERR("failed to generate scaler for menu texture\n"); + return; + } } - } - memcpy(sw->menu_texture.pixels, frame, width * height * (rgb32 ? 4 : 2)); + memcpy(sw->menu_texture.pixels, frame, width * height * (rgb32 ? 4 : 2)); } static void switch_set_texture_enable(void *data, bool enable, bool full_screen) { - switch_video_t *sw = data; - sw->menu_texture.enable = enable; - sw->menu_texture.fullscreen = full_screen; + switch_video_t *sw = data; + sw->menu_texture.enable = enable; + sw->menu_texture.fullscreen = full_screen; } static const video_poke_interface_t switch_poke_interface = { - NULL, /* get_flags */ - NULL, /* set_coords */ - NULL, /* set_mvp */ - NULL, /* load_texture */ - NULL, /* unload_texture */ - NULL, /* set_video_mode */ - NULL, /* get_refresh_rate */ - NULL, /* set_filtering */ - NULL, /* get_video_output_size */ - NULL, /* get_video_output_prev */ - NULL, /* get_video_output_next */ - NULL, /* get_current_framebuffer */ - NULL, /* get_proc_address */ - NULL, /* set_aspect_ratio */ - NULL, /* apply_state_changes */ - switch_set_texture_frame, - switch_set_texture_enable, - NULL, /* set_osd_msg */ - NULL, /* show_mouse */ - NULL, /* grab_mouse_toggle */ - NULL, /* get_current_shader */ - NULL, /* get_current_software_framebuffer */ - NULL, /* get_hw_render_interface */ + NULL, /* get_flags */ + NULL, /* set_coords */ + NULL, /* set_mvp */ + NULL, /* load_texture */ + NULL, /* unload_texture */ + NULL, /* set_video_mode */ + NULL, /* get_refresh_rate */ + NULL, /* set_filtering */ + NULL, /* get_video_output_size */ + NULL, /* get_video_output_prev */ + NULL, /* get_video_output_next */ + NULL, /* get_current_framebuffer */ + NULL, /* get_proc_address */ + NULL, /* set_aspect_ratio */ + NULL, /* apply_state_changes */ + switch_set_texture_frame, + switch_set_texture_enable, + NULL, /* set_osd_msg */ + NULL, /* show_mouse */ + NULL, /* grab_mouse_toggle */ + NULL, /* get_current_shader */ + NULL, /* get_current_software_framebuffer */ + NULL, /* get_hw_render_interface */ }; static void switch_get_poke_interface(void *data, - const video_poke_interface_t **iface) + const video_poke_interface_t **iface) { - (void) data; - *iface = &switch_poke_interface; + (void)data; + *iface = &switch_poke_interface; } video_driver_t video_switch = { - switch_init, - switch_frame, - switch_set_nonblock_state, - switch_alive, - switch_focus, - switch_suppress_screensaver, - switch_has_windowed, - switch_set_shader, - switch_free, - "switch", - NULL, /* set_viewport */ - switch_set_rotation, - switch_viewport_info, - switch_read_viewport, - NULL, /* read_frame_raw */ + switch_init, + switch_frame, + switch_set_nonblock_state, + switch_alive, + switch_focus, + switch_suppress_screensaver, + switch_has_windowed, + switch_set_shader, + switch_free, + "switch", + NULL, /* set_viewport */ + switch_set_rotation, + switch_viewport_info, + switch_read_viewport, + NULL, /* read_frame_raw */ #ifdef HAVE_OVERLAY - NULL, /* overlay_interface */ + NULL, /* overlay_interface */ #endif - switch_get_poke_interface, + switch_get_poke_interface, }; diff --git a/input/drivers/switch_input.c b/input/drivers/switch_input.c index a50bcdc80f..d85b9d481f 100644 --- a/input/drivers/switch_input.c +++ b/input/drivers/switch_input.c @@ -15,128 +15,125 @@ typedef struct switch_input { - const input_device_driver_t *joypad; - bool blocked; + const input_device_driver_t *joypad; + bool blocked; } switch_input_t; static void switch_input_poll(void *data) { - switch_input_t *sw = (switch_input_t*) data; + switch_input_t *sw = (switch_input_t *)data; - if (sw->joypad) - sw->joypad->poll(); + if (sw->joypad) + sw->joypad->poll(); } static int16_t switch_input_state(void *data, - rarch_joypad_info_t joypad_info, - const struct retro_keybind **binds, - unsigned port, unsigned device, - unsigned idx, unsigned id) + rarch_joypad_info_t joypad_info, + const struct retro_keybind **binds, + unsigned port, unsigned device, + unsigned idx, unsigned id) { - switch_input_t *sw = (switch_input_t*) data; + switch_input_t *sw = (switch_input_t *)data; - if (port > MAX_PADS-1) - return 0; + if (port > MAX_PADS - 1) + return 0; - switch (device) - { + switch (device) + { case RETRO_DEVICE_JOYPAD: - return input_joypad_pressed(sw->joypad, - joypad_info, port, binds[port], id); - break; + return input_joypad_pressed(sw->joypad, joypad_info, port, binds[port], id); + break; case RETRO_DEVICE_ANALOG: - if (binds[port]) - return input_joypad_analog(sw->joypad, - joypad_info, port, idx, id, binds[port]); - break; - } + if (binds[port]) + return input_joypad_analog(sw->joypad, joypad_info, port, idx, id, binds[port]); + break; + } - return 0; + return 0; } static void switch_input_free_input(void *data) { - switch_input_t *sw = (switch_input_t*) data; + switch_input_t *sw = (switch_input_t *)data; - if (sw && sw->joypad) - sw->joypad->destroy(); + if (sw && sw->joypad) + sw->joypad->destroy(); - free(sw); + free(sw); } -static void* switch_input_init(const char *joypad_driver) +static void *switch_input_init(const char *joypad_driver) { - switch_input_t *sw = (switch_input_t*) calloc(1, sizeof(*sw)); - if (!sw) - return NULL; + switch_input_t *sw = (switch_input_t *)calloc(1, sizeof(*sw)); + if (!sw) + return NULL; - sw->joypad = input_joypad_init_driver(joypad_driver, sw); + sw->joypad = input_joypad_init_driver(joypad_driver, sw); - return sw; + return sw; } static uint64_t switch_input_get_capabilities(void *data) { - (void) data; + (void)data; - return (1 << RETRO_DEVICE_JOYPAD) | (1 << RETRO_DEVICE_ANALOG); + return (1 << RETRO_DEVICE_JOYPAD) | (1 << RETRO_DEVICE_ANALOG); } static const input_device_driver_t *switch_input_get_joypad_driver(void *data) { - switch_input_t *sw = (switch_input_t*) data; - if (sw) - return sw->joypad; - return NULL; + switch_input_t *sw = (switch_input_t *)data; + if (sw) + return sw->joypad; + return NULL; } static void switch_input_grab_mouse(void *data, bool state) { - (void)data; - (void)state; + (void)data; + (void)state; } -static bool switch_input_set_rumble(void *data, unsigned port, - enum retro_rumble_effect effect, uint16_t strength) +static bool switch_input_set_rumble(void *data, unsigned port, enum retro_rumble_effect effect, uint16_t strength) { - (void)data; - (void)port; - (void)effect; - (void)strength; - - return false; + (void)data; + (void)port; + (void)effect; + (void)strength; + + return false; } static bool switch_input_keyboard_mapping_is_blocked(void *data) { - switch_input_t *sw = (switch_input_t*) data; - if (!sw) - return false; - return sw->blocked; + switch_input_t *sw = (switch_input_t *)data; + if (!sw) + return false; + return sw->blocked; } static void switch_input_keyboard_mapping_set_block(void *data, bool value) { - switch_input_t *sw = (switch_input_t*) data; - if (!sw) - return; - sw->blocked = value; + switch_input_t *sw = (switch_input_t *)data; + if (!sw) + return; + sw->blocked = value; } input_driver_t input_switch = { - switch_input_init, - switch_input_poll, - switch_input_state, - switch_input_free_input, - NULL, - NULL, - switch_input_get_capabilities, - "switch", - switch_input_grab_mouse, - NULL, - switch_input_set_rumble, - switch_input_get_joypad_driver, - NULL, - switch_input_keyboard_mapping_is_blocked, - switch_input_keyboard_mapping_set_block, + switch_input_init, + switch_input_poll, + switch_input_state, + switch_input_free_input, + NULL, + NULL, + switch_input_get_capabilities, + "switch", + switch_input_grab_mouse, + NULL, + switch_input_set_rumble, + switch_input_get_joypad_driver, + NULL, + switch_input_keyboard_mapping_is_blocked, + switch_input_keyboard_mapping_set_block, }; diff --git a/input/drivers_joypad/switch_joypad.c b/input/drivers_joypad/switch_joypad.c index 03930a3458..d5da11fe13 100644 --- a/input/drivers_joypad/switch_joypad.c +++ b/input/drivers_joypad/switch_joypad.c @@ -2,7 +2,7 @@ #include "../../config.h" #endif -#include +#include #include "../input_driver.h" diff --git a/libretro-common/features/features_cpu.c b/libretro-common/features/features_cpu.c index 0d46fbaffe..684b7c357d 100644 --- a/libretro-common/features/features_cpu.c +++ b/libretro-common/features/features_cpu.c @@ -80,8 +80,8 @@ #endif #ifdef SWITCH -#include -#include +#include +#include #endif #if defined(_3DS) -- GitLab From 03bb512503b2a0a5904813f4012fc5d9ae2d5077 Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 26 May 2018 12:23:25 +0200 Subject: [PATCH 005/211] Libnx Audio Driver first Revision --- audio/drivers/switch_audio.c | 374 ++++++++++++++++------------------- 1 file changed, 166 insertions(+), 208 deletions(-) diff --git a/audio/drivers/switch_audio.c b/audio/drivers/switch_audio.c index 3a06cc7398..e4145bb9ec 100644 --- a/audio/drivers/switch_audio.c +++ b/audio/drivers/switch_audio.c @@ -17,175 +17,166 @@ #include #include -#include -#include +#include #include "../audio_driver.h" #include "../../verbosity.h" -static const int sample_rate = 48000; -static const int max_num_samples = sample_rate; -static const int num_channels = 2; -static const size_t sample_buffer_size = ((max_num_samples * num_channels * sizeof(uint16_t)) + 0xfff) & ~0xfff; +#define ALIGN_VAL(x, a) (((x) + ((a)-1)) & ~((a)-1)) typedef struct { - audio_output_t output; - handle_t event; - audio_output_buffer_t buffers[3]; - audio_output_buffer_t *current_buffer; - bool blocking; - bool is_paused; - uint64_t last_append; - unsigned latency; + bool blocking; + bool is_paused; + uint64_t last_append; + unsigned latency; + AudioOutBuffer buffers[3]; + AudioOutBuffer *current_buffer; } switch_audio_t; -static ssize_t switch_audio_write(void *data, const void *buf, size_t size) +static size_t switch_audio_buffer_size(void *data) { - size_t to_write = size; - switch_audio_t *swa = (switch_audio_t*) data; + (void)data; + size_t sample_buffer_size = ((audoutGetSampleRate() * audoutGetChannelCount() * sizeof(uint16_t)) + 0xfff) & ~0xfff; + return ALIGN_VAL(sample_buffer_size, 0x1000); +} -#if 0 - RARCH_LOG("write %ld samples\n", size/sizeof(uint16_t)); -#endif +// TODO: Needs testing +static ssize_t switch_audio_write(void *data, const void *buf, size_t size) +{ + size_t to_write = size; + switch_audio_t *swa = (switch_audio_t *)data; - if (!swa->current_buffer) - { - uint32_t num; - if (audio_ipc_output_get_released_buffer(&swa->output, &num, &swa->current_buffer) != RESULT_OK) + if (!swa->current_buffer) { - RARCH_LOG("Failed to get released buffer?\n"); - return -1; + uint32_t num; + if (R_FAILED(audoutGetReleasedAudioOutBuffer(&swa->current_buffer, &num))) + { + RARCH_LOG("Failed to get released buffer?\n"); + return -1; + } + + if (num < 1) + { + swa->current_buffer = NULL; + + if (swa->blocking) + { + RARCH_LOG("No buffer, blocking...\n"); + + while (swa->current_buffer == NULL) + { + // TODO: Fix Blocking + return -1; + } + } + else + { + return 0; + } + } + + swa->current_buffer->data_size = 0; } -#if 0 - RARCH_LOG("got buffer, num %d, ptr %p\n", num, swa->current_buffer); -#endif + if (to_write > switch_audio_buffer_size(NULL) - swa->current_buffer->data_size) + to_write = switch_audio_buffer_size(NULL) - swa->current_buffer->data_size; - if (num < 1) - swa->current_buffer = NULL; + memcpy(((uint8_t *)swa->current_buffer->buffer) + swa->current_buffer->data_size, buf, to_write); + swa->current_buffer->data_size += to_write; + swa->current_buffer->buffer_size = switch_audio_buffer_size(NULL); - if (!swa->current_buffer) + if (swa->current_buffer->data_size > (48000 * swa->latency) / 1000) { - if (swa->blocking) - { - RARCH_LOG("No buffer, blocking...\n"); - - while(swa->current_buffer == NULL) + Result r = audoutAppendAudioOutBuffer(swa->current_buffer); + if (R_FAILED(r)) { - uint32_t num; - uint32_t handle_idx; - - svcWaitSynchronization(&handle_idx, &swa->event, 1, 33333333); - svcResetSignal(swa->event); - - if (audio_ipc_output_get_released_buffer(&swa->output, &num, &swa->current_buffer) != RESULT_OK) + RARCH_ERR("failed to append buffer: 0x%x\n", r); return -1; } - } else { - /* no buffer, nonblocking... */ - return 0; - } + swa->current_buffer = NULL; } - swa->current_buffer->data_size = 0; - } - - if (to_write > sample_buffer_size - swa->current_buffer->data_size) - to_write = sample_buffer_size - swa->current_buffer->data_size; - - memcpy(((uint8_t*) swa->current_buffer->sample_data) + swa->current_buffer->data_size, buf, to_write); - swa->current_buffer->data_size += to_write; - swa->current_buffer->buffer_size = sample_buffer_size; + swa->last_append = svcGetSystemTick(); - if (swa->current_buffer->data_size > (48000*swa->latency)/1000) - { - result_t r = audio_ipc_output_append_buffer(&swa->output, swa->current_buffer); - if (r != RESULT_OK) - { - RARCH_ERR("failed to append buffer: 0x%x\n", r); - return -1; - } - swa->current_buffer = NULL; - } - -#if 0 - RARCH_LOG("submitted %ld samples, %ld samples since last submit\n", - to_write/num_channels/sizeof(uint16_t), - (svcGetSystemTick() - swa->last_append) * sample_rate / 19200000); -#endif - swa->last_append = svcGetSystemTick(); - - return to_write; + return to_write; } static bool switch_audio_stop(void *data) { - switch_audio_t *swa = (switch_audio_t*) data; - if (!swa) - return false; + switch_audio_t *swa = (switch_audio_t *)data; + if (!swa) + return false; - if(!swa->is_paused) { - if(audio_ipc_output_stop(&swa->output) != RESULT_OK) - return false; - } + if (!swa->is_paused) + { + Result rc = audoutStopAudioOut(); + if (R_FAILED(rc)) + { + return false; + } + } - swa->is_paused = true; - return true; + swa->is_paused = true; + return true; } static bool switch_audio_start(void *data, bool is_shutdown) { - switch_audio_t *swa = (switch_audio_t*) data; + switch_audio_t *swa = (switch_audio_t *)data; - if(swa->is_paused) { - if (audio_ipc_output_start(&swa->output) != RESULT_OK) - return false; - } + if (swa->is_paused) + { + Result rc = audoutStartAudioOut(); + if (R_FAILED(rc)) + { + return false; + } + } - swa->is_paused = false; - return true; + swa->is_paused = false; + return true; } static bool switch_audio_alive(void *data) { - switch_audio_t *swa = (switch_audio_t*) data; - if (!swa) - return false; - return !swa->is_paused; + switch_audio_t *swa = (switch_audio_t *)data; + if (!swa) + return false; + return !swa->is_paused; } static void switch_audio_free(void *data) { - switch_audio_t *swa = (switch_audio_t*) data; + switch_audio_t *swa = (switch_audio_t *)data; - audio_ipc_output_close(&swa->output); - audio_ipc_finalize(); - free(swa); + audoutExit(); + + free(swa); } static bool switch_audio_use_float(void *data) { - (void) data; - return false; /* force INT16 */ + (void)data; + return false; /* force INT16 */ } static size_t switch_audio_write_avail(void *data) { - switch_audio_t *swa = (switch_audio_t*) data; + switch_audio_t *swa = (switch_audio_t *)data; - if (!swa || !swa->current_buffer) - return 0; + if (!swa || !swa->current_buffer) + return 0; - return swa->current_buffer->buffer_size; + return swa->current_buffer->buffer_size; } static void switch_audio_set_nonblock_state(void *data, bool state) { - switch_audio_t *swa = (switch_audio_t*) data; + switch_audio_t *swa = (switch_audio_t *)data; - if (swa) - swa->blocking = !state; + if (swa) + swa->blocking = !state; } static void *switch_audio_init(const char *device, @@ -193,109 +184,76 @@ static void *switch_audio_init(const char *device, unsigned block_frames, unsigned *new_rate) { - result_t r; - unsigned i; - char names[8][0x20]; - uint32_t num_names = 0; - switch_audio_t *swa = (switch_audio_t*) calloc(1, sizeof(*swa)); + switch_audio_t *swa = (switch_audio_t *)calloc(1, sizeof(*swa)); - if (!swa) - return NULL; + if (!swa) + return NULL; - r = audio_ipc_init(); - - if (r != RESULT_OK) - goto fail; - - if (audio_ipc_list_outputs(&names[0], 8, &num_names) != RESULT_OK) - goto fail_audio_ipc; - - if (num_names != 1) - { - RARCH_ERR("got back more than one AudioOut\n"); - goto fail_audio_ipc; - } - - if (audio_ipc_open_output(names[0], &swa->output) != RESULT_OK) - goto fail_audio_ipc; - - if (swa->output.sample_rate != sample_rate) - { - RARCH_ERR("expected sample rate of %d, got sample rate of %d\n", - sample_rate, swa->output.sample_rate); - goto fail_audio_output; - } - - if (swa->output.num_channels != num_channels) - { - RARCH_ERR("expected %d channels, got %d\n", num_channels, - swa->output.num_channels); - goto fail_audio_output; - } - - if (swa->output.sample_format != PCM_INT16) - { - RARCH_ERR("expected PCM_INT16, got %d\n", swa->output.sample_format); - goto fail_audio_output; - } - - if (audio_ipc_output_register_buffer_event(&swa->output, &swa->event) != RESULT_OK) - goto fail_audio_output; - - swa->blocking = block_frames; - - *new_rate = swa->output.sample_rate; - - for(i = 0; i < 3; i++) - { - swa->buffers[i].ptr = &swa->buffers[i].sample_data; - swa->buffers[i].sample_data = alloc_pages(sample_buffer_size, sample_buffer_size, NULL); - swa->buffers[i].buffer_size = sample_buffer_size; - swa->buffers[i].data_size = sample_buffer_size; - swa->buffers[i].unknown = 0; - - if(swa->buffers[i].sample_data == NULL) - goto fail_audio_output; - - if (audio_ipc_output_append_buffer(&swa->output, &swa->buffers[i]) != RESULT_OK) - goto fail_audio_output; - } - - swa->current_buffer = NULL; - swa->latency = latency; - swa->last_append = svcGetSystemTick(); - - swa->is_paused = true; - - return swa; - -fail_audio_output: - audio_ipc_output_close(&swa->output); -fail_audio_ipc: - audio_ipc_finalize(); -fail: - free(swa); - return NULL; -} + // Init Audio Output + Result rc = audoutInitialize(); + if (R_FAILED(rc)) + { + goto cleanExit; + } -static size_t switch_audio_buffer_size(void *data) -{ - (void) data; - return sample_buffer_size; + rc = audoutStartAudioOut(); + if (R_FAILED(rc)) + { + goto cleanExit; + } + + // Set audio rate + *new_rate = audoutGetSampleRate(); + + // Create Buffers + for (int i = 0; i < 3; i++) + { + swa->buffers[i].next = &swa->buffers[i]; + swa->buffers[i].buffer = memalign(0x1000, switch_audio_buffer_size(NULL)); + swa->buffers[i].buffer_size = switch_audio_buffer_size(NULL); + swa->buffers[i].data_size = switch_audio_buffer_size(NULL); + swa->buffers[i].data_offset = 0; + + if (swa->buffers[i].buffer == NULL) + { + goto cleanExit; + } + + /* + This might be the cause of the Audio spike + But since we gonna use audoutGetReleasedAudioOutBuffer we actually need to append them earlier + SORRY! + */ + if (R_FAILED(audoutAppendAudioOutBuffer(&swa->buffers[i]))) + { + goto cleanExit; + } + } + + swa->is_paused = true; + swa->current_buffer = NULL; + swa->latency = latency; + swa->last_append = svcGetSystemTick(); + + return swa; + +cleanExit:; + free(swa); + return NULL; } audio_driver_t audio_switch = { - switch_audio_init, - switch_audio_write, - switch_audio_stop, - switch_audio_start, - switch_audio_alive, - switch_audio_set_nonblock_state, - switch_audio_free, - switch_audio_use_float, - "switch", - NULL, /* device_list_new */ - NULL, /* device_list_free */ - switch_audio_write_avail, - switch_audio_buffer_size, /* buffer_size */ + switch_audio_init, + switch_audio_write, + switch_audio_stop, + switch_audio_start, + switch_audio_alive, + switch_audio_set_nonblock_state, + switch_audio_free, + switch_audio_use_float, + "switch", + NULL, /* device_list_new */ + NULL, /* device_list_free */ + switch_audio_write_avail, + switch_audio_buffer_size, /* buffer_size */ }; -- GitLab From 6e7f5cfca605c5100a70aea96b400fa09e60cf28 Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 26 May 2018 13:12:37 +0200 Subject: [PATCH 006/211] Add commentary. --- audio/drivers/switch_audio.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/audio/drivers/switch_audio.c b/audio/drivers/switch_audio.c index e4145bb9ec..2127c19fc8 100644 --- a/audio/drivers/switch_audio.c +++ b/audio/drivers/switch_audio.c @@ -216,13 +216,14 @@ static void *switch_audio_init(const char *device, if (swa->buffers[i].buffer == NULL) { + // TODO: we might memory leak here, but it doesn't really matter goto cleanExit; } /* - This might be the cause of the Audio spike + This might be the cause of the Audio noise at load But since we gonna use audoutGetReleasedAudioOutBuffer we actually need to append them earlier - SORRY! + Maybe do a memset 0? */ if (R_FAILED(audoutAppendAudioOutBuffer(&swa->buffers[i]))) { -- GitLab From db75710c7e524696d589c06e3c875c68e9d6246d Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 26 May 2018 14:47:20 +0200 Subject: [PATCH 007/211] Save WIP --- input/drivers_joypad/switch_joypad.c | 205 ++++++++++++++------------- 1 file changed, 106 insertions(+), 99 deletions(-) diff --git a/input/drivers_joypad/switch_joypad.c b/input/drivers_joypad/switch_joypad.c index d5da11fe13..2763ae40be 100644 --- a/input/drivers_joypad/switch_joypad.c +++ b/input/drivers_joypad/switch_joypad.c @@ -12,7 +12,6 @@ #include "../../command.h" #include "string.h" - #ifndef MAX_PADS #define MAX_PADS 10 #endif @@ -23,149 +22,157 @@ extern uint64_t lifecycle_state; static const char *switch_joypad_name(unsigned pad) { - return "Switch Controller"; + return "Switch Controller"; } static void switch_joypad_autodetect_add(unsigned autoconf_pad) { - if(!input_autoconfigure_connect( - switch_joypad_name(autoconf_pad), /* name */ - NULL, /* display name */ - switch_joypad.ident, /* driver */ - autoconf_pad, /* idx */ - 0, /* vid */ - 0)) /* pid */ - input_config_set_device_name(autoconf_pad, switch_joypad_name(autoconf_pad)); + if (!input_autoconfigure_connect( + switch_joypad_name(autoconf_pad), /* name */ + NULL, /* display name */ + switch_joypad.ident, /* driver */ + autoconf_pad, /* idx */ + 0, /* vid */ + 0)) /* pid */ + input_config_set_device_name(autoconf_pad, switch_joypad_name(autoconf_pad)); } static bool switch_joypad_init(void *data) { - hid_init(); + hidInitialize(); - switch_joypad_autodetect_add(0); - switch_joypad_autodetect_add(1); + switch_joypad_autodetect_add(0); + switch_joypad_autodetect_add(1); - return true; + return true; } static bool switch_joypad_button(unsigned port_num, uint16_t key) { - if(port_num >= MAX_PADS) - return false; + if (port_num >= MAX_PADS) + return false; #if 0 RARCH_LOG("button(%d, %d)\n", port_num, key); #endif - return (pad_state[port_num] & (1 << key)); + return (pad_state[port_num] & (1 << key)); } static void switch_joypad_get_buttons(unsigned port_num, input_bits_t *state) { - if(port_num < MAX_PADS) - { - BITS_COPY16_PTR(state, pad_state[port_num]); - } - else - { - BIT256_CLEAR_ALL_PTR(state); - } + if (port_num < MAX_PADS) + { + BITS_COPY16_PTR(state, pad_state[port_num]); + } + else + { + BIT256_CLEAR_ALL_PTR(state); + } } static int16_t switch_joypad_axis(unsigned port_num, uint32_t joyaxis) { - int val = 0; - int axis = -1; - bool is_neg = false; - bool is_pos = false; - - if(joyaxis == AXIS_NONE || port_num >= MAX_PADS) - { - /* TODO/FIXME - implement */ - } - - if(AXIS_NEG_GET(joyaxis) < 4) - { - axis = AXIS_NEG_GET(joyaxis); - is_neg = true; - } - else if(AXIS_POS_GET(joyaxis) < 4) - { - axis = AXIS_POS_GET(joyaxis); - is_pos = true; - } - - switch(axis) - { + int val = 0; + int axis = -1; + bool is_neg = false; + bool is_pos = false; + + if (joyaxis == AXIS_NONE || port_num >= MAX_PADS) + { + /* TODO/FIXME - implement */ + } + + if (AXIS_NEG_GET(joyaxis) < 4) + { + axis = AXIS_NEG_GET(joyaxis); + is_neg = true; + } + else if (AXIS_POS_GET(joyaxis) < 4) + { + axis = AXIS_POS_GET(joyaxis); + is_pos = true; + } + + switch (axis) + { case 0: - val = analog_state[port_num][0][0]; - break; + val = analog_state[port_num][0][0]; + break; case 1: - val = analog_state[port_num][0][1]; - break; + val = analog_state[port_num][0][1]; + break; case 2: - val = analog_state[port_num][1][0]; - break; + val = analog_state[port_num][1][0]; + break; case 3: - val = analog_state[port_num][1][1]; - break; - } + val = analog_state[port_num][1][1]; + break; + } - if(is_neg && val > 0) - val = 0; - else if(is_pos && val < 0) - val = 0; + if (is_neg && val > 0) + val = 0; + else if (is_pos && val < 0) + val = 0; - return val; + return val; } static bool switch_joypad_query_pad(unsigned pad) { - return pad < MAX_PADS && pad_state[pad]; + return pad < MAX_PADS && pad_state[pad]; } static void switch_joypad_destroy(void) { - hid_finalize(); + hidExit(); } static void switch_joypad_poll(void) { - hid_controller_t *controllers = hid_get_shared_memory()->controllers; - hid_controller_t *cont = &controllers[0]; - hid_controller_state_entry_t ent = cont->main.entries[cont->main.latest_idx]; - hid_controller_state_entry_t ent8 = (cont+8)->main.entries[(cont+8)->main.latest_idx]; - pad_state[0] = ent.button_state | ent8.button_state; - - int16_t lsx, lsy, rsx, rsy; - lsx = ent.left_stick_x; - lsy = ent.left_stick_y; - rsx = ent.right_stick_x; - rsy = ent.right_stick_y; - if(ent8.left_stick_x != 0 || ent8.left_stick_y != 0) { // handheld overrides player 1 - lsx = ent8.left_stick_x; - lsy = ent8.left_stick_y; - } - if(ent8.right_stick_x != 0 || ent8.right_stick_y != 0) { // handheld overrides player 1 - rsx = ent8.right_stick_x; - rsy = ent8.right_stick_y; - } - - analog_state[0][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_X] = lsx; - analog_state[0][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_Y] = -lsy; - analog_state[0][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_X] = rsx; - analog_state[0][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_Y] = -rsy; + // Get Shared mem pointer + HidSharedMemory *sharedMem = (HidSharedMemory *)hidGetSharedmemAddr(); + + // controller0 + HidController *controllers = sharedMem->controllers; + + // Default Joy-Con + HidControllerInputEntry ent = controllers[HidControllerID.CONTROLLER_PLAYER_1]->layout[0].entries[0]; + + // Player9 aka Handheld + HidControllerInputEntry ent8 = controllers[8]->layout[0].entries[0]; + pad_state[0] = ent.button_state | ent8.button_state; + + int16_t lsx, lsy, rsx, rsy; + lsx = ent.left_stick_x; + lsy = ent.left_stick_y; + rsx = ent.right_stick_x; + rsy = ent.right_stick_y; + if (ent8.left_stick_x != 0 || ent8.left_stick_y != 0) + { // handheld overrides player 1 + lsx = ent8.left_stick_x; + lsy = ent8.left_stick_y; + } + if (ent8.right_stick_x != 0 || ent8.right_stick_y != 0) + { // handheld overrides player 1 + rsx = ent8.right_stick_x; + rsy = ent8.right_stick_y; + } + + analog_state[0][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_X] = lsx; + analog_state[0][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_Y] = -lsy; + analog_state[0][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_X] = rsx; + analog_state[0][RETRO_DEVICE_INDEX_ANALOG_RIGHT][RETRO_DEVICE_ID_ANALOG_Y] = -rsy; } input_device_driver_t switch_joypad = { - switch_joypad_init, - switch_joypad_query_pad, - switch_joypad_destroy, - switch_joypad_button, - switch_joypad_get_buttons, - switch_joypad_axis, - switch_joypad_poll, - NULL, /* set_rumble */ - switch_joypad_name, - "switch" -}; + switch_joypad_init, + switch_joypad_query_pad, + switch_joypad_destroy, + switch_joypad_button, + switch_joypad_get_buttons, + switch_joypad_axis, + switch_joypad_poll, + NULL, /* set_rumble */ + switch_joypad_name, + "switch"}; -- GitLab From aa389eabcadd1f82e44b623b09868f7e107f1966 Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 26 May 2018 14:53:23 +0200 Subject: [PATCH 008/211] Proper libnx hid stuff --- input/drivers_joypad/switch_joypad.c | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/input/drivers_joypad/switch_joypad.c b/input/drivers_joypad/switch_joypad.c index 2763ae40be..9d5cf5ada5 100644 --- a/input/drivers_joypad/switch_joypad.c +++ b/input/drivers_joypad/switch_joypad.c @@ -130,17 +130,13 @@ static void switch_joypad_destroy(void) static void switch_joypad_poll(void) { - // Get Shared mem pointer - HidSharedMemory *sharedMem = (HidSharedMemory *)hidGetSharedmemAddr(); + HidControllerID target = HidControllerID.CONTROLLER_P1_AUTO; - // controller0 - HidController *controllers = sharedMem->controllers; + JoystickPosition joyPositionLeft, joyPositionRight; - // Default Joy-Con - HidControllerInputEntry ent = controllers[HidControllerID.CONTROLLER_PLAYER_1]->layout[0].entries[0]; + hidJoystickRead(&joyPositionLeft, target, HidControllerJoystick.JOYSTICK_LEFT); + hidJoystickRead(&joyPositionRight, target, HidControllerJoystick.JOYSTICK_RIGHT); - // Player9 aka Handheld - HidControllerInputEntry ent8 = controllers[8]->layout[0].entries[0]; pad_state[0] = ent.button_state | ent8.button_state; int16_t lsx, lsy, rsx, rsy; @@ -148,16 +144,7 @@ static void switch_joypad_poll(void) lsy = ent.left_stick_y; rsx = ent.right_stick_x; rsy = ent.right_stick_y; - if (ent8.left_stick_x != 0 || ent8.left_stick_y != 0) - { // handheld overrides player 1 - lsx = ent8.left_stick_x; - lsy = ent8.left_stick_y; - } - if (ent8.right_stick_x != 0 || ent8.right_stick_y != 0) - { // handheld overrides player 1 - rsx = ent8.right_stick_x; - rsy = ent8.right_stick_y; - } + analog_state[0][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_X] = lsx; analog_state[0][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_Y] = -lsy; -- GitLab From bd1adb94875b057274b712181eb095d3f5fc8287 Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 26 May 2018 15:18:35 +0200 Subject: [PATCH 009/211] Port switch_joypad and fix compile. --- input/drivers_joypad/switch_joypad.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/input/drivers_joypad/switch_joypad.c b/input/drivers_joypad/switch_joypad.c index 9d5cf5ada5..47e89fd315 100644 --- a/input/drivers_joypad/switch_joypad.c +++ b/input/drivers_joypad/switch_joypad.c @@ -39,8 +39,13 @@ static void switch_joypad_autodetect_add(unsigned autoconf_pad) static bool switch_joypad_init(void *data) { + // Init hidInitialize(); + + // Scan Input + hidScanInput(); + // Uhh, should use actual detection with libnx, no? switch_joypad_autodetect_add(0); switch_joypad_autodetect_add(1); @@ -130,21 +135,24 @@ static void switch_joypad_destroy(void) static void switch_joypad_poll(void) { - HidControllerID target = HidControllerID.CONTROLLER_P1_AUTO; + HidControllerID target = !hidGetHandheldMode() ? CONTROLLER_PLAYER_1 : CONTROLLER_HANDHELD; - JoystickPosition joyPositionLeft, joyPositionRight; + // Get SharedMem + HidSharedMemory* sharedMem = (HidSharedMemory*)hidGetSharedmemAddr(); + + pad_state[0] = sharedMem->controllers[target].layouts[hidGetControllerLayout(target)].entries[0].connectionState; - hidJoystickRead(&joyPositionLeft, target, HidControllerJoystick.JOYSTICK_LEFT); - hidJoystickRead(&joyPositionRight, target, HidControllerJoystick.JOYSTICK_RIGHT); + JoystickPosition joyPositionLeft, joyPositionRight; - pad_state[0] = ent.button_state | ent8.button_state; + hidJoystickRead(&joyPositionLeft, target, JOYSTICK_LEFT); + hidJoystickRead(&joyPositionRight, target, JOYSTICK_RIGHT); + // to int16 int16_t lsx, lsy, rsx, rsy; - lsx = ent.left_stick_x; - lsy = ent.left_stick_y; - rsx = ent.right_stick_x; - rsy = ent.right_stick_y; - + lsx = joyPositionLeft.dx; + lsy = joyPositionLeft.dy; + rsx = joyPositionRight.dx; + rsy = joyPositionRight.dy; analog_state[0][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_X] = lsx; analog_state[0][RETRO_DEVICE_INDEX_ANALOG_LEFT][RETRO_DEVICE_ID_ANALOG_Y] = -lsy; -- GitLab From 24838a4bd2b47fefcd881054ed8493670af88898 Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 26 May 2018 15:41:29 +0200 Subject: [PATCH 010/211] Disable broken code for now. --- Makefile.common | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile.common b/Makefile.common index b364c1ec6a..e155847072 100644 --- a/Makefile.common +++ b/Makefile.common @@ -879,10 +879,10 @@ ifeq ($(TARGET), retroarch_3ds) endif ifeq ($(TARGET), retroarch_switch) - OBJ += gfx/drivers/switch_gfx.o \ - input/drivers/switch_input.o \ - input/drivers_joypad/switch_joypad.o \ - audio/drivers/switch_audio.o + OBJ += input/drivers_joypad/switch_joypad.o \ + audio/drivers/switch_audio.o + #gfx/drivers/switch_gfx.o + #input/drivers/switch_input.o endif ifeq ($(HAVE_WAYLAND), 1) -- GitLab From d387e6231526cdca6d5e9713dc7ec03927a2295f Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 26 May 2018 16:26:22 +0200 Subject: [PATCH 011/211] WIP Makefile linking changes. --- Makefile.switch | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/Makefile.switch b/Makefile.switch index 18bef01544..c0fe26c4b7 100644 --- a/Makefile.switch +++ b/Makefile.switch @@ -48,18 +48,17 @@ APP_ICON := icon.jpg APP_VERSION := RetroArch SNES9x libNX APP_AUTHOR := Maintainer: M4xw, Credit: Reswitched, libretro -ARCH := -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE -LDFLAGS += -g $(ARCH) -specs=$(DEVKITPRO)/libnx/switch.specs -CFLAGS += $(DEFINES) -g \ +LD := $(DEVKITPRO)/devkitA64/bin/aarch64-none-elf-ld +LDFLAGS += -g -T $(DEVKITPRO)/libnx/switch.ld -L$(PORTLIBS) -L$(LIBNX)/lib -L$(DEVKITPRO)/devkitA64/aarch64-none-elf/lib/ -lstdc++ -lnx +CFLAGS += $(DEFINES) -g \ -O2 \ -fomit-frame-pointer \ -ffunction-sections \ - -fdata-sections + -fdata-sections -march=armv8-a -mtune=cortex-a57 -fPIE -mtp=soft CFLAGS += $(INCLUDE) -D__SWITCH__=1 CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11 -ASFLAGS := -g $(ARCH) ARFLAGS := rcs -LIBDIRS := $(PORTLIBS) $(LIBNX) -L. +LIBDIRS := $(PORTLIBS) $(LIBNX) $(DEVKITPRO)/devkitA64/aarch64-none-elf/lib/ . TARGETS := $(TARGET).nro.so @@ -96,13 +95,16 @@ ifneq ($(ROMFS),) export NROFLAGS += --romfsdir=$(CURDIR)/$(ROMFS) endif +DEPENDS := $(OBJ:.o=.d) + +.PHONY: all + all: $(TARGETS) %.nro.so: $(OBJ) libretro_switch.a %.nacp - @[ -d $@ ] || mkdir -p $@ - @$(LD) $(LDFLAGS) -T $(DEVKITPRO)/libnx/switch.ld --allow-multiple-definition -o $@ $(OBJ) -l$(DEVKITPRO)/libnx/lib/libnx.a libretro_switch.a -lm + $(LD) $(LD_FLAGS) $(LDFLAGS) --allow-multiple-definition -o $@ $(OBJ) libretro_switch.a clean: rm -f $(OBJ) $(TARGET).nro.so $(TARGET).nro -.PHONY: clean all +#.PHONY: clean all -- GitLab From f06d49af182b6cc44bc52f84244202e72eeec2dc Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 26 May 2018 17:50:56 +0200 Subject: [PATCH 012/211] WIP Linker changes. --- Makefile.switch | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Makefile.switch b/Makefile.switch index c0fe26c4b7..94be7486ea 100644 --- a/Makefile.switch +++ b/Makefile.switch @@ -40,7 +40,8 @@ BLACKLIST += input/input_overlay.o BLACKLIST += tasks/task_overlay.o OBJ := $(filter-out $(BLACKLIST),$(OBJ)) -INCDIRS := -Ideps -Ideps/libz -Ilibretro-common/include -Ideps/stb -I$(DEVKITPRO)/libnx/include/ +INCDIRS += -Ideps -Ideps/libz -Ilibretro-common/include -Ideps/stb \ + -I$(DEVKITPRO)/libnx/include/ -I$(DEVKITPRO)/devkitA64/aarch64-none-elf/include/ include $(DEVKITPRO)/libnx/switch_rules @@ -49,14 +50,14 @@ APP_VERSION := RetroArch SNES9x libNX APP_AUTHOR := Maintainer: M4xw, Credit: Reswitched, libretro LD := $(DEVKITPRO)/devkitA64/bin/aarch64-none-elf-ld -LDFLAGS += -g -T $(DEVKITPRO)/libnx/switch.ld -L$(PORTLIBS) -L$(LIBNX)/lib -L$(DEVKITPRO)/devkitA64/aarch64-none-elf/lib/ -lstdc++ -lnx +LDFLAGS += -g -T $(DEVKITPRO)/libnx/switch.ld -L$(PORTLIBS) -L$(LIBNX)/lib -L$(DEVKITPRO)/devkitA64/aarch64-none-elf/lib/ -lc -lm -lstdc++ -lnx CFLAGS += $(DEFINES) -g \ -O2 \ -fomit-frame-pointer \ -ffunction-sections \ - -fdata-sections -march=armv8-a -mtune=cortex-a57 -fPIE -mtp=soft + -fdata-sections -march=armv8-a -mtune=cortex-a57 -fPIE -mtp=soft CFLAGS += $(INCLUDE) -D__SWITCH__=1 -CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11 +CXXFLAGS += $(CFLAGS) -fno-rtti -fno-exceptions -std=c++11 ARFLAGS := rcs LIBDIRS := $(PORTLIBS) $(LIBNX) $(DEVKITPRO)/devkitA64/aarch64-none-elf/lib/ . -- GitLab From afb4b0c77e90571ee2aed417c3e280b5fe9758ef Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 26 May 2018 21:34:56 +0200 Subject: [PATCH 013/211] Fix toolchain? --- Makefile.switch | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/Makefile.switch b/Makefile.switch index 94be7486ea..fc1b64dc9c 100644 --- a/Makefile.switch +++ b/Makefile.switch @@ -40,31 +40,33 @@ BLACKLIST += input/input_overlay.o BLACKLIST += tasks/task_overlay.o OBJ := $(filter-out $(BLACKLIST),$(OBJ)) -INCDIRS += -Ideps -Ideps/libz -Ilibretro-common/include -Ideps/stb \ - -I$(DEVKITPRO)/libnx/include/ -I$(DEVKITPRO)/devkitA64/aarch64-none-elf/include/ - +INCDIRS += -I$(DEVKITPRO)/libnx/include/ include $(DEVKITPRO)/libnx/switch_rules APP_ICON := icon.jpg APP_VERSION := RetroArch SNES9x libNX -APP_AUTHOR := Maintainer: M4xw, Credit: Reswitched, libretro +APP_AUTHOR := M4xw, Credit: Reswitched, libretro + +INCDIRS += -Ideps -Ideps/libz -Ilibretro-common/include -Ideps/stb -I$(LIBNX)/include/ LD := $(DEVKITPRO)/devkitA64/bin/aarch64-none-elf-ld -LDFLAGS += -g -T $(DEVKITPRO)/libnx/switch.ld -L$(PORTLIBS) -L$(LIBNX)/lib -L$(DEVKITPRO)/devkitA64/aarch64-none-elf/lib/ -lc -lm -lstdc++ -lnx -CFLAGS += $(DEFINES) -g \ - -O2 \ - -fomit-frame-pointer \ - -ffunction-sections \ - -fdata-sections -march=armv8-a -mtune=cortex-a57 -fPIE -mtp=soft -CFLAGS += $(INCLUDE) -D__SWITCH__=1 -CXXFLAGS += $(CFLAGS) -fno-rtti -fno-exceptions -std=c++11 +CFLAGS := $(DEFINES) -g \ + -std=gnu11 \ + -O2 \ + -fomit-frame-pointer \ + -ffunction-sections \ + -fdata-sections +ASFLAGS := -march=armv8-a -mtune=cortex-a57 -fPIE -mtp=soft +CFLAGS += $(INCDIRS) +CFLAGS += $(INCLUDE) -D__SWITCH__ +CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11 +CFLAGS += -std=gnu11 ARFLAGS := rcs -LIBDIRS := $(PORTLIBS) $(LIBNX) $(DEVKITPRO)/devkitA64/aarch64-none-elf/lib/ . +LIBDIRS := $(PORTLIBS) $(LIBNX) $(DEVKITPRO)/devkitA64/aarch64-none-elf/ . +export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) TARGETS := $(TARGET).nro.so -CFLAGS += $(INCDIRS) - BUILD_DIR = $(CURDIR) ifeq ($(strip $(ICON)),) @@ -103,9 +105,11 @@ DEPENDS := $(OBJ:.o=.d) all: $(TARGETS) %.nro.so: $(OBJ) libretro_switch.a %.nacp - $(LD) $(LD_FLAGS) $(LDFLAGS) --allow-multiple-definition -o $@ $(OBJ) libretro_switch.a + $(CXX) -Wl,--allow-multiple-definition -o $@ $(OBJ) libretro_switch.a $(LIBPATHS) -lnx clean: rm -f $(OBJ) $(TARGET).nro.so $(TARGET).nro -#.PHONY: clean all + +.PHONY: clean all + -- GitLab From 5ccc5544a54c0a24d2304f6938338e972db84532 Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 26 May 2018 21:35:02 +0200 Subject: [PATCH 014/211] Add missing funcs --- libretro-common/features/features_cpu.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/libretro-common/features/features_cpu.c b/libretro-common/features/features_cpu.c index 684b7c357d..2c2dd563dc 100644 --- a/libretro-common/features/features_cpu.c +++ b/libretro-common/features/features_cpu.c @@ -102,6 +102,7 @@ #define CLOCK_REALTIME 0 #endif + /* this function is part of iOS 10 now */ static int ra_clock_gettime(int clk_ik, struct timespec *t) { @@ -131,6 +132,22 @@ static int ra_clock_gettime(int clk_ik, struct timespec *t) #include +#ifdef SWITCH +// (C) libtransistor +int nanosleep(const struct timespec *rqtp, struct timespec *rmtp) { + svcSleepThread(rqtp->tv_nsec + (rqtp->tv_sec * 1000000000)); + return 0; +} + +long sysconf(int name) { + switch(name) { + case 8: + return 0x1000; + } + return -1; +} +#endif + /** * cpu_features_get_perf_counter: * -- GitLab From c396ca0f27d0c54881aea9a0caeb13b1f0bb0d06 Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 26 May 2018 21:55:36 +0200 Subject: [PATCH 015/211] Add realpath --- libretro-common/features/features_cpu.c | 1006 +++++++++++++---------- 1 file changed, 581 insertions(+), 425 deletions(-) diff --git a/libretro-common/features/features_cpu.c b/libretro-common/features/features_cpu.c index 2c2dd563dc..c4aa3ad58e 100644 --- a/libretro-common/features/features_cpu.c +++ b/libretro-common/features/features_cpu.c @@ -102,17 +102,16 @@ #define CLOCK_REALTIME 0 #endif - /* this function is part of iOS 10 now */ static int ra_clock_gettime(int clk_ik, struct timespec *t) { - struct timeval now; - int rv = gettimeofday(&now, NULL); - if (rv) - return rv; - t->tv_sec = now.tv_sec; - t->tv_nsec = now.tv_usec * 1000; - return 0; + struct timeval now; + int rv = gettimeofday(&now, NULL); + if (rv) + return rv; + t->tv_sec = now.tv_sec; + t->tv_nsec = now.tv_usec * 1000; + return 0; } #endif @@ -121,7 +120,6 @@ static int ra_clock_gettime(int clk_ik, struct timespec *t) #define ra_clock_gettime clock_gettime #endif - #ifdef EMSCRIPTEN #include #endif @@ -133,19 +131,159 @@ static int ra_clock_gettime(int clk_ik, struct timespec *t) #include #ifdef SWITCH + +// Missing functions / libnx // (C) libtransistor -int nanosleep(const struct timespec *rqtp, struct timespec *rmtp) { - svcSleepThread(rqtp->tv_nsec + (rqtp->tv_sec * 1000000000)); - return 0; +int nanosleep(const struct timespec *rqtp, struct timespec *rmtp) +{ + svcSleepThread(rqtp->tv_nsec + (rqtp->tv_sec * 1000000000)); + return 0; +} + +long sysconf(int name) +{ + switch (name) + { + case 8: + return 0x1000; + } + return -1; } -long sysconf(int name) { - switch(name) { - case 8: - return 0x1000; - } - return -1; +ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize) +{ + return -1; } + +// (C) glibc +char * realpath(const char *name, char *resolved) +{ + char *rpath, *dest, *extra_buf = NULL; + const char *start, *end, *rpath_limit; + long int path_max; + int num_links = 0; + + if (name == NULL) + { + /* As per Single Unix Specification V2 we must return an error if + either parameter is a null pointer. We extend this to allow + the RESOLVED parameter to be NULL in case the we are expected to + allocate the room for the return value. */ + return NULL; + } + + if (name[0] == '\0') + { + /* As per Single Unix Specification V2 we must return an error if + the name argument points to an empty string. */ + return NULL; + } + +#ifdef PATH_MAX + path_max = PATH_MAX; +#else + path_max = pathconf(name, _PC_PATH_MAX); + if (path_max <= 0) + path_max = 1024; +#endif + + if (resolved == NULL) + { + rpath = malloc(path_max); + if (rpath == NULL) + return NULL; + } + else + rpath = resolved; + rpath_limit = rpath + path_max; + + if (name[0] != '/') + { + if (!getcwd(rpath, path_max)) + { + rpath[0] = '\0'; + goto error; + } + dest = memchr(rpath, '\0', path_max); + } + else + { + rpath[0] = '/'; + dest = rpath + 1; + } + + for (start = end = name; *start; start = end) + { + int n; + + /* Skip sequence of multiple path-separators. */ + while (*start == '/') + ++start; + + /* Find end of path component. */ + for (end = start; *end && *end != '/'; ++end) + /* Nothing. */; + + if (end - start == 0) + break; + else if (end - start == 1 && start[0] == '.') + /* nothing */; + else if (end - start == 2 && start[0] == '.' && start[1] == '.') + { + /* Back up to previous component, ignore if at root already. */ + if (dest > rpath + 1) + while ((--dest)[-1] != '/') + ; + } + else + { + size_t new_size; + + if (dest[-1] != '/') + *dest++ = '/'; + + if (dest + (end - start) >= rpath_limit) + { + ptrdiff_t dest_offset = dest - rpath; + char *new_rpath; + + if (resolved) + { + if (dest > rpath + 1) + dest--; + *dest = '\0'; + goto error; + } + new_size = rpath_limit - rpath; + if (end - start + 1 > path_max) + new_size += end - start + 1; + else + new_size += path_max; + new_rpath = (char *)realloc(rpath, new_size); + if (new_rpath == NULL) + goto error; + rpath = new_rpath; + rpath_limit = rpath + new_size; + + dest = rpath + dest_offset; + } + + dest = memcpy(dest, start, end - start); + *dest = '\0'; + } + } + if (dest > rpath + 1 && dest[-1] == '/') + --dest; + *dest = '\0'; + + return rpath; + +error: + if (resolved == NULL) + free(rpath); + return NULL; +} + #endif /** @@ -157,59 +295,62 @@ long sysconf(int name) { **/ retro_perf_tick_t cpu_features_get_perf_counter(void) { - retro_perf_tick_t time_ticks = 0; + retro_perf_tick_t time_ticks = 0; #if defined(_WIN32) - long tv_sec, tv_usec; + long tv_sec, tv_usec; #if defined(_MSC_VER) && _MSC_VER <= 1200 - static const unsigned __int64 epoch = 11644473600000000; + static const unsigned __int64 epoch = 11644473600000000; #else - static const unsigned __int64 epoch = 11644473600000000ULL; + static const unsigned __int64 epoch = 11644473600000000ULL; #endif - FILETIME file_time; - SYSTEMTIME system_time; - ULARGE_INTEGER ularge; + FILETIME file_time; + SYSTEMTIME system_time; + ULARGE_INTEGER ularge; - GetSystemTime(&system_time); - SystemTimeToFileTime(&system_time, &file_time); - ularge.LowPart = file_time.dwLowDateTime; - ularge.HighPart = file_time.dwHighDateTime; + GetSystemTime(&system_time); + SystemTimeToFileTime(&system_time, &file_time); + ularge.LowPart = file_time.dwLowDateTime; + ularge.HighPart = file_time.dwHighDateTime; - tv_sec = (long)((ularge.QuadPart - epoch) / 10000000L); - tv_usec = (long)(system_time.wMilliseconds * 1000); - time_ticks = (1000000 * tv_sec + tv_usec); + tv_sec = (long)((ularge.QuadPart - epoch) / 10000000L); + tv_usec = (long)(system_time.wMilliseconds * 1000); + time_ticks = (1000000 * tv_sec + tv_usec); #elif defined(__linux__) || defined(__QNX__) || defined(__MACH__) - struct timespec tv = {0}; - if (ra_clock_gettime(CLOCK_MONOTONIC, &tv) == 0) - time_ticks = (retro_perf_tick_t)tv.tv_sec * 1000000000 + - (retro_perf_tick_t)tv.tv_nsec; + struct timespec tv = {0}; + if (ra_clock_gettime(CLOCK_MONOTONIC, &tv) == 0) + time_ticks = (retro_perf_tick_t)tv.tv_sec * 1000000000 + + (retro_perf_tick_t)tv.tv_nsec; #elif defined(__GNUC__) && defined(__i386__) || defined(__i486__) || defined(__i686__) - __asm__ volatile ("rdtsc" : "=A" (time_ticks)); + __asm__ volatile("rdtsc" + : "=A"(time_ticks)); #elif defined(__GNUC__) && defined(__x86_64__) - unsigned a, d; - __asm__ volatile ("rdtsc" : "=a" (a), "=d" (d)); - time_ticks = (retro_perf_tick_t)a | ((retro_perf_tick_t)d << 32); + unsigned a, d; + __asm__ volatile("rdtsc" + : "=a"(a), "=d"(d)); + time_ticks = (retro_perf_tick_t)a | ((retro_perf_tick_t)d << 32); #elif defined(__ARM_ARCH_6__) - __asm__ volatile( "mrc p15, 0, %0, c9, c13, 0" : "=r"(time_ticks) ); + __asm__ volatile("mrc p15, 0, %0, c9, c13, 0" + : "=r"(time_ticks)); #elif defined(__CELLOS_LV2__) || defined(_XBOX360) || defined(__powerpc__) || defined(__ppc__) || defined(__POWERPC__) - time_ticks = __mftb(); + time_ticks = __mftb(); #elif defined(GEKKO) - time_ticks = gettime(); + time_ticks = gettime(); #elif defined(PSP) - sceRtcGetCurrentTick((uint64_t*)&time_ticks); + sceRtcGetCurrentTick((uint64_t *)&time_ticks); #elif defined(VITA) - sceRtcGetCurrentTick((SceRtcTick*)&time_ticks); + sceRtcGetCurrentTick((SceRtcTick *)&time_ticks); #elif defined(_3DS) - time_ticks = svcGetSystemTick(); + time_ticks = svcGetSystemTick(); #elif defined(WIIU) - time_ticks = OSGetSystemTime(); + time_ticks = OSGetSystemTime(); #elif defined(__mips__) - struct timeval tv; - gettimeofday(&tv,NULL); - time_ticks = (1000000 * tv.tv_sec + tv.tv_usec); + struct timeval tv; + gettimeofday(&tv, NULL); + time_ticks = (1000000 * tv.tv_sec + tv.tv_usec); #endif - return time_ticks; + return time_ticks; } /** @@ -222,45 +363,45 @@ retro_perf_tick_t cpu_features_get_perf_counter(void) retro_time_t cpu_features_get_time_usec(void) { #if defined(_WIN32) - static LARGE_INTEGER freq; - LARGE_INTEGER count; + static LARGE_INTEGER freq; + LARGE_INTEGER count; - /* Frequency is guaranteed to not change. */ - if (!freq.QuadPart && !QueryPerformanceFrequency(&freq)) - return 0; + /* Frequency is guaranteed to not change. */ + if (!freq.QuadPart && !QueryPerformanceFrequency(&freq)) + return 0; - if (!QueryPerformanceCounter(&count)) - return 0; - return count.QuadPart * 1000000 / freq.QuadPart; + if (!QueryPerformanceCounter(&count)) + return 0; + return count.QuadPart * 1000000 / freq.QuadPart; #elif defined(__CELLOS_LV2__) - return sys_time_get_system_time(); + return sys_time_get_system_time(); #elif defined(GEKKO) - return ticks_to_microsecs(gettime()); + return ticks_to_microsecs(gettime()); #elif defined(SWITCH) - return (svcGetSystemTick() * 10) / 192; + return (svcGetSystemTick() * 10) / 192; #elif defined(_POSIX_MONOTONIC_CLOCK) || defined(__QNX__) || defined(ANDROID) || defined(__MACH__) - struct timespec tv = {0}; - if (ra_clock_gettime(CLOCK_MONOTONIC, &tv) < 0) - return 0; - return tv.tv_sec * INT64_C(1000000) + (tv.tv_nsec + 500) / 1000; + struct timespec tv = {0}; + if (ra_clock_gettime(CLOCK_MONOTONIC, &tv) < 0) + return 0; + return tv.tv_sec * INT64_C(1000000) + (tv.tv_nsec + 500) / 1000; #elif defined(EMSCRIPTEN) - return emscripten_get_now() * 1000; + return emscripten_get_now() * 1000; #elif defined(__mips__) || defined(DJGPP) - struct timeval tv; - gettimeofday(&tv,NULL); - return (1000000 * tv.tv_sec + tv.tv_usec); + struct timeval tv; + gettimeofday(&tv, NULL); + return (1000000 * tv.tv_sec + tv.tv_usec); #elif defined(_3DS) - return osGetTime() * 1000; + return osGetTime() * 1000; #elif defined(VITA) - return sceKernelGetProcessTimeWide(); + return sceKernelGetProcessTimeWide(); #elif defined(WIIU) - return ticks_to_us(OSGetSystemTime()); + return ticks_to_us(OSGetSystemTime()); #else #error "Your platform does not have a timer function implemented in cpu_features_get_time_usec(). Cannot continue." #endif } -#if defined(__x86_64__) || defined(__i386__) || defined(__i486__) || defined(__i686__) || (defined(_M_X64) && _MSC_VER > 1310) || (defined(_M_IX86) && _MSC_VER > 1310) +#if defined(__x86_64__) || defined(__i386__) || defined(__i486__) || defined(__i686__) || (defined(_M_X64) && _MSC_VER > 1310) || (defined(_M_IX86) && _MSC_VER > 1310) #define CPU_X86 #endif @@ -273,7 +414,7 @@ retro_time_t cpu_features_get_time_usec(void) #if defined(CPU_X86) && !defined(__MACH__) void x86_cpuid(int func, int flags[4]) { - /* On Android, we compile RetroArch with PIC, and we + /* On Android, we compile RetroArch with PIC, and we * are not allowed to clobber the ebx register. */ #ifdef __x86_64__ #define REG_b "rbx" @@ -284,17 +425,17 @@ void x86_cpuid(int func, int flags[4]) #endif #if defined(__GNUC__) - __asm__ volatile ( - "mov %%" REG_b ", %%" REG_S "\n" - "cpuid\n" - "xchg %%" REG_b ", %%" REG_S "\n" - : "=a"(flags[0]), "=S"(flags[1]), "=c"(flags[2]), "=d"(flags[3]) - : "a"(func)); + __asm__ volatile( + "mov %%" REG_b ", %%" REG_S "\n" + "cpuid\n" + "xchg %%" REG_b ", %%" REG_S "\n" + : "=a"(flags[0]), "=S"(flags[1]), "=c"(flags[2]), "=d"(flags[3]) + : "a"(func)); #elif defined(_MSC_VER) - __cpuid(flags, func); + __cpuid(flags, func); #else - printf("Unknown compiler. Cannot check CPUID with inline assembly.\n"); - memset(flags, 0, 4 * sizeof(int)); + printf("Unknown compiler. Cannot check CPUID with inline assembly.\n"); + memset(flags, 0, 4 * sizeof(int)); #endif } @@ -302,21 +443,22 @@ void x86_cpuid(int func, int flags[4]) static uint64_t xgetbv_x86(uint32_t idx) { #if defined(__GNUC__) - uint32_t eax, edx; - __asm__ volatile ( - /* Older GCC versions (Apple's GCC for example) do + uint32_t eax, edx; + __asm__ volatile( + /* Older GCC versions (Apple's GCC for example) do * not understand xgetbv instruction. * Stamp out the machine code directly. */ - ".byte 0x0f, 0x01, 0xd0\n" - : "=a"(eax), "=d"(edx) : "c"(idx)); - return ((uint64_t)edx << 32) | eax; + ".byte 0x0f, 0x01, 0xd0\n" + : "=a"(eax), "=d"(edx) + : "c"(idx)); + return ((uint64_t)edx << 32) | eax; #elif _MSC_FULL_VER >= 160040219 - /* Intrinsic only works on 2010 SP1 and above. */ - return _xgetbv(idx); + /* Intrinsic only works on 2010 SP1 and above. */ + return _xgetbv(idx); #else - printf("Unknown compiler. Cannot check xgetbv bits.\n"); - return 0; + printf("Unknown compiler. Cannot check xgetbv bits.\n"); + return 0; #endif } #endif @@ -324,48 +466,47 @@ static uint64_t xgetbv_x86(uint32_t idx) #if defined(__ARM_NEON__) static void arm_enable_runfast_mode(void) { - /* RunFast mode. Enables flush-to-zero and some + /* RunFast mode. Enables flush-to-zero and some * floating point optimizations. */ - static const unsigned x = 0x04086060; - static const unsigned y = 0x03000000; - int r; - __asm__ volatile( - "fmrx %0, fpscr \n\t" /* r0 = FPSCR */ - "and %0, %0, %1 \n\t" /* r0 = r0 & 0x04086060 */ - "orr %0, %0, %2 \n\t" /* r0 = r0 | 0x03000000 */ - "fmxr fpscr, %0 \n\t" /* FPSCR = r0 */ - : "=r"(r) - : "r"(x), "r"(y) - ); + static const unsigned x = 0x04086060; + static const unsigned y = 0x03000000; + int r; + __asm__ volatile( + "fmrx %0, fpscr \n\t" /* r0 = FPSCR */ + "and %0, %0, %1 \n\t" /* r0 = r0 & 0x04086060 */ + "orr %0, %0, %2 \n\t" /* r0 = r0 | 0x03000000 */ + "fmxr fpscr, %0 \n\t" /* FPSCR = r0 */ + : "=r"(r) + : "r"(x), "r"(y)); } #endif #if defined(__linux__) && !defined(CPU_X86) -static unsigned char check_arm_cpu_feature(const char* feature) +static unsigned char check_arm_cpu_feature(const char *feature) { - char line[1024]; - unsigned char status = 0; - RFILE *fp = filestream_open("/proc/cpuinfo", - RETRO_VFS_FILE_ACCESS_READ, - RETRO_VFS_FILE_ACCESS_HINT_NONE); + char line[1024]; + unsigned char status = 0; + RFILE *fp = filestream_open("/proc/cpuinfo", + RETRO_VFS_FILE_ACCESS_READ, + RETRO_VFS_FILE_ACCESS_HINT_NONE); - if (!fp) - return 0; + if (!fp) + return 0; - while (filestream_gets(fp, line, sizeof(line)) != NULL) - { - if (strncmp(line, "Features\t: ", 11)) - continue; + while (filestream_gets(fp, line, sizeof(line)) != NULL) + { + if (strncmp(line, "Features\t: ", 11)) + continue; - if (strstr(line + 11, feature) != NULL) - status = 1; + if (strstr(line + 11, feature) != NULL) + status = 1; - break; - } + break; + } - filestream_close(fp); + filestream_close(fp); - return status; + return status; } #if !defined(_SC_NPROCESSORS_ONLN) @@ -379,25 +520,25 @@ static unsigned char check_arm_cpu_feature(const char* feature) * position after the decimal number in case of success (which will always * be <= 'limit'). */ -static const char *parse_decimal(const char* input, - const char* limit, int* result) +static const char *parse_decimal(const char *input, + const char *limit, int *result) { - const char* p = input; - int val = 0; + const char *p = input; + int val = 0; - while (p < limit) - { - int d = (*p - '0'); - if ((unsigned)d >= 10U) - break; - val = val*10 + d; - p++; - } - if (p == input) - return NULL; - - *result = val; - return p; + while (p < limit) + { + int d = (*p - '0'); + if ((unsigned)d >= 10U) + break; + val = val * 10 + d; + p++; + } + if (p == input) + return NULL; + + *result = val; + return p; } /* Parse a textual list of cpus and store the result inside a CpuList object. @@ -410,69 +551,69 @@ static const char *parse_decimal(const char* input, * 2,4-127,128-143 * 0-1 */ -static void cpulist_parse(CpuList* list, char **buf, ssize_t length) +static void cpulist_parse(CpuList *list, char **buf, ssize_t length) { - const char* p = (const char*)buf; - const char* end = p + length; + const char *p = (const char *)buf; + const char *end = p + length; - /* NOTE: the input line coming from sysfs typically contains a + /* NOTE: the input line coming from sysfs typically contains a * trailing newline, so take care of it in the code below */ - while (p < end && *p != '\n') - { - int val, start_value, end_value; - /* Find the end of current item, and put it into 'q' */ - const char *q = (const char*)memchr(p, ',', end-p); + while (p < end && *p != '\n') + { + int val, start_value, end_value; + /* Find the end of current item, and put it into 'q' */ + const char *q = (const char *)memchr(p, ',', end - p); - if (!q) - q = end; + if (!q) + q = end; - /* Get first value */ - p = parse_decimal(p, q, &start_value); - if (p == NULL) - return; + /* Get first value */ + p = parse_decimal(p, q, &start_value); + if (p == NULL) + return; - end_value = start_value; + end_value = start_value; - /* If we're not at the end of the item, expect a dash and + /* If we're not at the end of the item, expect a dash and * and integer; extract end value. */ - if (p < q && *p == '-') - { - p = parse_decimal(p+1, q, &end_value); - if (p == NULL) - return; + if (p < q && *p == '-') + { + p = parse_decimal(p + 1, q, &end_value); + if (p == NULL) + return; + } + + /* Set bits CPU list bits */ + for (val = start_value; val <= end_value; val++) + { + if ((unsigned)val < 32) + list->mask |= (uint32_t)(1U << val); + } + + /* Jump to next item */ + p = q; + if (p < end) + p++; } - - /* Set bits CPU list bits */ - for (val = start_value; val <= end_value; val++) - { - if ((unsigned)val < 32) - list->mask |= (uint32_t)(1U << val); - } - - /* Jump to next item */ - p = q; - if (p < end) - p++; - } } /* Read a CPU list from one sysfs file */ -static void cpulist_read_from(CpuList* list, const char* filename) +static void cpulist_read_from(CpuList *list, const char *filename) { - ssize_t length; - char *buf = NULL; + ssize_t length; + char *buf = NULL; - list->mask = 0; + list->mask = 0; - if (filestream_read_file(filename, (void**)&buf, &length) != 1) - return; + if (filestream_read_file(filename, (void **)&buf, &length) != 1) + return; - cpulist_parse(list, &buf, length); - if (buf) - free(buf); - buf = NULL; + cpulist_parse(list, &buf, length); + if (buf) + free(buf); + buf = NULL; } #endif @@ -488,93 +629,93 @@ static void cpulist_read_from(CpuList* list, const char* filename) unsigned cpu_features_get_core_amount(void) { #if defined(_WIN32) && !defined(_XBOX) && !defined(__WINRT__) - /* Win32 */ - SYSTEM_INFO sysinfo; - GetSystemInfo(&sysinfo); - return sysinfo.dwNumberOfProcessors; + /* Win32 */ + SYSTEM_INFO sysinfo; + GetSystemInfo(&sysinfo); + return sysinfo.dwNumberOfProcessors; #elif defined(GEKKO) - return 1; + return 1; #elif defined(PSP) - return 1; + return 1; #elif defined(VITA) - return 4; + return 4; #elif defined(_3DS) - u8 device_model = 0xFF; - CFGU_GetSystemModel(&device_model);/*(0 = O3DS, 1 = O3DSXL, 2 = N3DS, 3 = 2DS, 4 = N3DSXL, 5 = N2DSXL)*/ - switch (device_model) - { - case 0: - case 1: - case 3: - /*Old 3/2DS*/ - return 2; - - case 2: - case 4: - case 5: - /*New 3/2DS*/ - return 4; - - default: - /*Unknown Device Or Check Failed*/ - break; - } - return 1; + u8 device_model = 0xFF; + CFGU_GetSystemModel(&device_model); /*(0 = O3DS, 1 = O3DSXL, 2 = N3DS, 3 = 2DS, 4 = N3DSXL, 5 = N2DSXL)*/ + switch (device_model) + { + case 0: + case 1: + case 3: + /*Old 3/2DS*/ + return 2; + + case 2: + case 4: + case 5: + /*New 3/2DS*/ + return 4; + + default: + /*Unknown Device Or Check Failed*/ + break; + } + return 1; #elif defined(WIIU) - return 3; + return 3; #elif defined(_SC_NPROCESSORS_ONLN) - /* Linux, most UNIX-likes. */ - long ret = sysconf(_SC_NPROCESSORS_ONLN); - if (ret <= 0) - return (unsigned)1; - return (unsigned)ret; + /* Linux, most UNIX-likes. */ + long ret = sysconf(_SC_NPROCESSORS_ONLN); + if (ret <= 0) + return (unsigned)1; + return (unsigned)ret; #elif defined(BSD) || defined(__APPLE__) - /* BSD */ - /* Copypasta from stackoverflow, dunno if it works. */ - int num_cpu = 0; - int mib[4]; - size_t len = sizeof(num_cpu); - - mib[0] = CTL_HW; - mib[1] = HW_AVAILCPU; - sysctl(mib, 2, &num_cpu, &len, NULL, 0); - if (num_cpu < 1) - { - mib[1] = HW_NCPU; + /* BSD */ + /* Copypasta from stackoverflow, dunno if it works. */ + int num_cpu = 0; + int mib[4]; + size_t len = sizeof(num_cpu); + + mib[0] = CTL_HW; + mib[1] = HW_AVAILCPU; sysctl(mib, 2, &num_cpu, &len, NULL, 0); if (num_cpu < 1) - num_cpu = 1; - } - return num_cpu; + { + mib[1] = HW_NCPU; + sysctl(mib, 2, &num_cpu, &len, NULL, 0); + if (num_cpu < 1) + num_cpu = 1; + } + return num_cpu; #elif defined(__linux__) - CpuList cpus_present[1]; - CpuList cpus_possible[1]; - int amount = 0; + CpuList cpus_present[1]; + CpuList cpus_possible[1]; + int amount = 0; - cpulist_read_from(cpus_present, "/sys/devices/system/cpu/present"); - cpulist_read_from(cpus_possible, "/sys/devices/system/cpu/possible"); + cpulist_read_from(cpus_present, "/sys/devices/system/cpu/present"); + cpulist_read_from(cpus_possible, "/sys/devices/system/cpu/possible"); - /* Compute the intersection of both sets to get the actual number of + /* Compute the intersection of both sets to get the actual number of * CPU cores that can be used on this device by the kernel. */ - cpus_present->mask &= cpus_possible->mask; - amount = __builtin_popcount(cpus_present->mask); + cpus_present->mask &= cpus_possible->mask; + amount = __builtin_popcount(cpus_present->mask); - if (amount == 0) - return 1; - return amount; + if (amount == 0) + return 1; + return amount; #elif defined(_XBOX360) - return 3; + return 3; #else - /* No idea, assume single core. */ - return 1; + /* No idea, assume single core. */ + return 1; #endif } /* According to http://en.wikipedia.org/wiki/CPUID */ -#define VENDOR_INTEL_b 0x756e6547 -#define VENDOR_INTEL_c 0x6c65746e -#define VENDOR_INTEL_d 0x49656e69 +#define VENDOR_INTEL_b 0x756e6547 +#define VENDOR_INTEL_c 0x6c65746e +#define VENDOR_INTEL_d 0x49656e69 /** * cpu_features_get: @@ -585,200 +726,196 @@ unsigned cpu_features_get_core_amount(void) **/ uint64_t cpu_features_get(void) { - int flags[4]; - int vendor_shuffle[3]; - char vendor[13]; - size_t len = 0; - uint64_t cpu_flags = 0; - uint64_t cpu = 0; - unsigned max_flag = 0; + int flags[4]; + int vendor_shuffle[3]; + char vendor[13]; + size_t len = 0; + uint64_t cpu_flags = 0; + uint64_t cpu = 0; + unsigned max_flag = 0; #if defined(CPU_X86) && !defined(__MACH__) - int vendor_is_intel = 0; - const int avx_flags = (1 << 27) | (1 << 28); + int vendor_is_intel = 0; + const int avx_flags = (1 << 27) | (1 << 28); #endif - char buf[sizeof(" MMX MMXEXT SSE SSE2 SSE3 SSSE3 SS4 SSE4.2 AES AVX AVX2 NEON VMX VMX128 VFPU PS")]; + char buf[sizeof(" MMX MMXEXT SSE SSE2 SSE3 SSSE3 SS4 SSE4.2 AES AVX AVX2 NEON VMX VMX128 VFPU PS")]; - memset(buf, 0, sizeof(buf)); + memset(buf, 0, sizeof(buf)); - (void)len; - (void)cpu_flags; - (void)flags; - (void)max_flag; - (void)vendor; - (void)vendor_shuffle; + (void)len; + (void)cpu_flags; + (void)flags; + (void)max_flag; + (void)vendor; + (void)vendor_shuffle; #if defined(__MACH__) - len = sizeof(size_t); - if (sysctlbyname("hw.optional.mmx", NULL, &len, NULL, 0) == 0) - { - cpu |= RETRO_SIMD_MMX; - cpu |= RETRO_SIMD_MMXEXT; - } + len = sizeof(size_t); + if (sysctlbyname("hw.optional.mmx", NULL, &len, NULL, 0) == 0) + { + cpu |= RETRO_SIMD_MMX; + cpu |= RETRO_SIMD_MMXEXT; + } - len = sizeof(size_t); - if (sysctlbyname("hw.optional.floatingpoint", NULL, &len, NULL, 0) == 0) - { - cpu |= RETRO_SIMD_CMOV; - } + len = sizeof(size_t); + if (sysctlbyname("hw.optional.floatingpoint", NULL, &len, NULL, 0) == 0) + { + cpu |= RETRO_SIMD_CMOV; + } - len = sizeof(size_t); - if (sysctlbyname("hw.optional.sse", NULL, &len, NULL, 0) == 0) - cpu |= RETRO_SIMD_SSE; + len = sizeof(size_t); + if (sysctlbyname("hw.optional.sse", NULL, &len, NULL, 0) == 0) + cpu |= RETRO_SIMD_SSE; - len = sizeof(size_t); - if (sysctlbyname("hw.optional.sse2", NULL, &len, NULL, 0) == 0) - cpu |= RETRO_SIMD_SSE2; + len = sizeof(size_t); + if (sysctlbyname("hw.optional.sse2", NULL, &len, NULL, 0) == 0) + cpu |= RETRO_SIMD_SSE2; - len = sizeof(size_t); - if (sysctlbyname("hw.optional.sse3", NULL, &len, NULL, 0) == 0) - cpu |= RETRO_SIMD_SSE3; + len = sizeof(size_t); + if (sysctlbyname("hw.optional.sse3", NULL, &len, NULL, 0) == 0) + cpu |= RETRO_SIMD_SSE3; - len = sizeof(size_t); - if (sysctlbyname("hw.optional.supplementalsse3", NULL, &len, NULL, 0) == 0) - cpu |= RETRO_SIMD_SSSE3; + len = sizeof(size_t); + if (sysctlbyname("hw.optional.supplementalsse3", NULL, &len, NULL, 0) == 0) + cpu |= RETRO_SIMD_SSSE3; - len = sizeof(size_t); - if (sysctlbyname("hw.optional.sse4_1", NULL, &len, NULL, 0) == 0) - cpu |= RETRO_SIMD_SSE4; + len = sizeof(size_t); + if (sysctlbyname("hw.optional.sse4_1", NULL, &len, NULL, 0) == 0) + cpu |= RETRO_SIMD_SSE4; - len = sizeof(size_t); - if (sysctlbyname("hw.optional.sse4_2", NULL, &len, NULL, 0) == 0) - cpu |= RETRO_SIMD_SSE42; + len = sizeof(size_t); + if (sysctlbyname("hw.optional.sse4_2", NULL, &len, NULL, 0) == 0) + cpu |= RETRO_SIMD_SSE42; - len = sizeof(size_t); - if (sysctlbyname("hw.optional.aes", NULL, &len, NULL, 0) == 0) - cpu |= RETRO_SIMD_AES; + len = sizeof(size_t); + if (sysctlbyname("hw.optional.aes", NULL, &len, NULL, 0) == 0) + cpu |= RETRO_SIMD_AES; - len = sizeof(size_t); - if (sysctlbyname("hw.optional.avx1_0", NULL, &len, NULL, 0) == 0) - cpu |= RETRO_SIMD_AVX; + len = sizeof(size_t); + if (sysctlbyname("hw.optional.avx1_0", NULL, &len, NULL, 0) == 0) + cpu |= RETRO_SIMD_AVX; - len = sizeof(size_t); - if (sysctlbyname("hw.optional.avx2_0", NULL, &len, NULL, 0) == 0) - cpu |= RETRO_SIMD_AVX2; + len = sizeof(size_t); + if (sysctlbyname("hw.optional.avx2_0", NULL, &len, NULL, 0) == 0) + cpu |= RETRO_SIMD_AVX2; - len = sizeof(size_t); - if (sysctlbyname("hw.optional.altivec", NULL, &len, NULL, 0) == 0) - cpu |= RETRO_SIMD_VMX; + len = sizeof(size_t); + if (sysctlbyname("hw.optional.altivec", NULL, &len, NULL, 0) == 0) + cpu |= RETRO_SIMD_VMX; - len = sizeof(size_t); - if (sysctlbyname("hw.optional.neon", NULL, &len, NULL, 0) == 0) - cpu |= RETRO_SIMD_NEON; + len = sizeof(size_t); + if (sysctlbyname("hw.optional.neon", NULL, &len, NULL, 0) == 0) + cpu |= RETRO_SIMD_NEON; #elif defined(_XBOX1) - cpu |= RETRO_SIMD_MMX; - cpu |= RETRO_SIMD_SSE; - cpu |= RETRO_SIMD_MMXEXT; + cpu |= RETRO_SIMD_MMX; + cpu |= RETRO_SIMD_SSE; + cpu |= RETRO_SIMD_MMXEXT; #elif defined(CPU_X86) - (void)avx_flags; + (void)avx_flags; - x86_cpuid(0, flags); - vendor_shuffle[0] = flags[1]; - vendor_shuffle[1] = flags[3]; - vendor_shuffle[2] = flags[2]; + x86_cpuid(0, flags); + vendor_shuffle[0] = flags[1]; + vendor_shuffle[1] = flags[3]; + vendor_shuffle[2] = flags[2]; - vendor[0] = '\0'; - memcpy(vendor, vendor_shuffle, sizeof(vendor_shuffle)); + vendor[0] = '\0'; + memcpy(vendor, vendor_shuffle, sizeof(vendor_shuffle)); - /* printf("[CPUID]: Vendor: %s\n", vendor); */ + /* printf("[CPUID]: Vendor: %s\n", vendor); */ - vendor_is_intel = ( - flags[1] == VENDOR_INTEL_b && - flags[2] == VENDOR_INTEL_c && - flags[3] == VENDOR_INTEL_d); + vendor_is_intel = (flags[1] == VENDOR_INTEL_b && + flags[2] == VENDOR_INTEL_c && + flags[3] == VENDOR_INTEL_d); - max_flag = flags[0]; - if (max_flag < 1) /* Does CPUID not support func = 1? (unlikely ...) */ - return 0; + max_flag = flags[0]; + if (max_flag < 1) /* Does CPUID not support func = 1? (unlikely ...) */ + return 0; - x86_cpuid(1, flags); + x86_cpuid(1, flags); - if (flags[3] & (1 << 15)) - cpu |= RETRO_SIMD_CMOV; + if (flags[3] & (1 << 15)) + cpu |= RETRO_SIMD_CMOV; - if (flags[3] & (1 << 23)) - cpu |= RETRO_SIMD_MMX; + if (flags[3] & (1 << 23)) + cpu |= RETRO_SIMD_MMX; - if (flags[3] & (1 << 25)) - { - /* SSE also implies MMXEXT (according to FFmpeg source). */ - cpu |= RETRO_SIMD_SSE; - cpu |= RETRO_SIMD_MMXEXT; - } + if (flags[3] & (1 << 25)) + { + /* SSE also implies MMXEXT (according to FFmpeg source). */ + cpu |= RETRO_SIMD_SSE; + cpu |= RETRO_SIMD_MMXEXT; + } + if (flags[3] & (1 << 26)) + cpu |= RETRO_SIMD_SSE2; - if (flags[3] & (1 << 26)) - cpu |= RETRO_SIMD_SSE2; + if (flags[2] & (1 << 0)) + cpu |= RETRO_SIMD_SSE3; - if (flags[2] & (1 << 0)) - cpu |= RETRO_SIMD_SSE3; + if (flags[2] & (1 << 9)) + cpu |= RETRO_SIMD_SSSE3; - if (flags[2] & (1 << 9)) - cpu |= RETRO_SIMD_SSSE3; + if (flags[2] & (1 << 19)) + cpu |= RETRO_SIMD_SSE4; - if (flags[2] & (1 << 19)) - cpu |= RETRO_SIMD_SSE4; + if (flags[2] & (1 << 20)) + cpu |= RETRO_SIMD_SSE42; - if (flags[2] & (1 << 20)) - cpu |= RETRO_SIMD_SSE42; + if ((flags[2] & (1 << 23))) + cpu |= RETRO_SIMD_POPCNT; - if ((flags[2] & (1 << 23))) - cpu |= RETRO_SIMD_POPCNT; + if (vendor_is_intel && (flags[2] & (1 << 22))) + cpu |= RETRO_SIMD_MOVBE; - if (vendor_is_intel && (flags[2] & (1 << 22))) - cpu |= RETRO_SIMD_MOVBE; + if (flags[2] & (1 << 25)) + cpu |= RETRO_SIMD_AES; - if (flags[2] & (1 << 25)) - cpu |= RETRO_SIMD_AES; + /* Must only perform xgetbv check if we have + * AVX CPU support (guaranteed to have at least i686). */ + if (((flags[2] & avx_flags) == avx_flags) && ((xgetbv_x86(0) & 0x6) == 0x6)) + cpu |= RETRO_SIMD_AVX; + if (max_flag >= 7) + { + x86_cpuid(7, flags); + if (flags[1] & (1 << 5)) + cpu |= RETRO_SIMD_AVX2; + } - /* Must only perform xgetbv check if we have - * AVX CPU support (guaranteed to have at least i686). */ - if (((flags[2] & avx_flags) == avx_flags) - && ((xgetbv_x86(0) & 0x6) == 0x6)) - cpu |= RETRO_SIMD_AVX; - - if (max_flag >= 7) - { - x86_cpuid(7, flags); - if (flags[1] & (1 << 5)) - cpu |= RETRO_SIMD_AVX2; - } - - x86_cpuid(0x80000000, flags); - max_flag = flags[0]; - if (max_flag >= 0x80000001u) - { - x86_cpuid(0x80000001, flags); - if (flags[3] & (1 << 23)) - cpu |= RETRO_SIMD_MMX; - if (flags[3] & (1 << 22)) - cpu |= RETRO_SIMD_MMXEXT; - } + x86_cpuid(0x80000000, flags); + max_flag = flags[0]; + if (max_flag >= 0x80000001u) + { + x86_cpuid(0x80000001, flags); + if (flags[3] & (1 << 23)) + cpu |= RETRO_SIMD_MMX; + if (flags[3] & (1 << 22)) + cpu |= RETRO_SIMD_MMXEXT; + } #elif defined(__linux__) - if (check_arm_cpu_feature("neon")) - { - cpu |= RETRO_SIMD_NEON; + if (check_arm_cpu_feature("neon")) + { + cpu |= RETRO_SIMD_NEON; #ifdef __ARM_NEON__ - arm_enable_runfast_mode(); + arm_enable_runfast_mode(); #endif - } + } - if (check_arm_cpu_feature("vfpv3")) - cpu |= RETRO_SIMD_VFPV3; + if (check_arm_cpu_feature("vfpv3")) + cpu |= RETRO_SIMD_VFPV3; - if (check_arm_cpu_feature("vfpv4")) - cpu |= RETRO_SIMD_VFPV4; + if (check_arm_cpu_feature("vfpv4")) + cpu |= RETRO_SIMD_VFPV4; - if (check_arm_cpu_feature("asimd")) - { - cpu |= RETRO_SIMD_ASIMD; + if (check_arm_cpu_feature("asimd")) + { + cpu |= RETRO_SIMD_ASIMD; #ifdef __ARM_NEON__ - cpu |= RETRO_SIMD_NEON; - arm_enable_runfast_mode(); + cpu |= RETRO_SIMD_NEON; + arm_enable_runfast_mode(); #endif - } + } #if 0 check_arm_cpu_feature("swp"); @@ -794,37 +931,56 @@ uint64_t cpu_features_get(void) #endif #elif defined(__ARM_NEON__) - cpu |= RETRO_SIMD_NEON; - arm_enable_runfast_mode(); + cpu |= RETRO_SIMD_NEON; + arm_enable_runfast_mode(); #elif defined(__ALTIVEC__) - cpu |= RETRO_SIMD_VMX; + cpu |= RETRO_SIMD_VMX; #elif defined(XBOX360) - cpu |= RETRO_SIMD_VMX128; + cpu |= RETRO_SIMD_VMX128; #elif defined(PSP) - cpu |= RETRO_SIMD_VFPU; + cpu |= RETRO_SIMD_VFPU; #elif defined(GEKKO) - cpu |= RETRO_SIMD_PS; -#endif - - if (cpu & RETRO_SIMD_MMX) strlcat(buf, " MMX", sizeof(buf)); - if (cpu & RETRO_SIMD_MMXEXT) strlcat(buf, " MMXEXT", sizeof(buf)); - if (cpu & RETRO_SIMD_SSE) strlcat(buf, " SSE", sizeof(buf)); - if (cpu & RETRO_SIMD_SSE2) strlcat(buf, " SSE2", sizeof(buf)); - if (cpu & RETRO_SIMD_SSE3) strlcat(buf, " SSE3", sizeof(buf)); - if (cpu & RETRO_SIMD_SSSE3) strlcat(buf, " SSSE3", sizeof(buf)); - if (cpu & RETRO_SIMD_SSE4) strlcat(buf, " SSE4", sizeof(buf)); - if (cpu & RETRO_SIMD_SSE42) strlcat(buf, " SSE4.2", sizeof(buf)); - if (cpu & RETRO_SIMD_AES) strlcat(buf, " AES", sizeof(buf)); - if (cpu & RETRO_SIMD_AVX) strlcat(buf, " AVX", sizeof(buf)); - if (cpu & RETRO_SIMD_AVX2) strlcat(buf, " AVX2", sizeof(buf)); - if (cpu & RETRO_SIMD_NEON) strlcat(buf, " NEON", sizeof(buf)); - if (cpu & RETRO_SIMD_VFPV3) strlcat(buf, " VFPv3", sizeof(buf)); - if (cpu & RETRO_SIMD_VFPV4) strlcat(buf, " VFPv4", sizeof(buf)); - if (cpu & RETRO_SIMD_VMX) strlcat(buf, " VMX", sizeof(buf)); - if (cpu & RETRO_SIMD_VMX128) strlcat(buf, " VMX128", sizeof(buf)); - if (cpu & RETRO_SIMD_VFPU) strlcat(buf, " VFPU", sizeof(buf)); - if (cpu & RETRO_SIMD_PS) strlcat(buf, " PS", sizeof(buf)); - if (cpu & RETRO_SIMD_ASIMD) strlcat(buf, " ASIMD", sizeof(buf)); - - return cpu; + cpu |= RETRO_SIMD_PS; +#endif + + if (cpu & RETRO_SIMD_MMX) + strlcat(buf, " MMX", sizeof(buf)); + if (cpu & RETRO_SIMD_MMXEXT) + strlcat(buf, " MMXEXT", sizeof(buf)); + if (cpu & RETRO_SIMD_SSE) + strlcat(buf, " SSE", sizeof(buf)); + if (cpu & RETRO_SIMD_SSE2) + strlcat(buf, " SSE2", sizeof(buf)); + if (cpu & RETRO_SIMD_SSE3) + strlcat(buf, " SSE3", sizeof(buf)); + if (cpu & RETRO_SIMD_SSSE3) + strlcat(buf, " SSSE3", sizeof(buf)); + if (cpu & RETRO_SIMD_SSE4) + strlcat(buf, " SSE4", sizeof(buf)); + if (cpu & RETRO_SIMD_SSE42) + strlcat(buf, " SSE4.2", sizeof(buf)); + if (cpu & RETRO_SIMD_AES) + strlcat(buf, " AES", sizeof(buf)); + if (cpu & RETRO_SIMD_AVX) + strlcat(buf, " AVX", sizeof(buf)); + if (cpu & RETRO_SIMD_AVX2) + strlcat(buf, " AVX2", sizeof(buf)); + if (cpu & RETRO_SIMD_NEON) + strlcat(buf, " NEON", sizeof(buf)); + if (cpu & RETRO_SIMD_VFPV3) + strlcat(buf, " VFPv3", sizeof(buf)); + if (cpu & RETRO_SIMD_VFPV4) + strlcat(buf, " VFPv4", sizeof(buf)); + if (cpu & RETRO_SIMD_VMX) + strlcat(buf, " VMX", sizeof(buf)); + if (cpu & RETRO_SIMD_VMX128) + strlcat(buf, " VMX128", sizeof(buf)); + if (cpu & RETRO_SIMD_VFPU) + strlcat(buf, " VFPU", sizeof(buf)); + if (cpu & RETRO_SIMD_PS) + strlcat(buf, " PS", sizeof(buf)); + if (cpu & RETRO_SIMD_ASIMD) + strlcat(buf, " ASIMD", sizeof(buf)); + + return cpu; } -- GitLab From 8c0099cf06a422a6122b3a59c6336104cde3d064 Mon Sep 17 00:00:00 2001 From: M4xw Date: Sun, 27 May 2018 00:14:06 +0200 Subject: [PATCH 016/211] Gfx Reimplementation first revision --- gfx/drivers/switch_gfx.c | 112 ++++++++++++++++++++++++--------------- 1 file changed, 69 insertions(+), 43 deletions(-) diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index 3ff87cf6f9..2a8efdc7ce 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -32,6 +32,66 @@ #include "../../tasks/tasks_internal.h" #endif +// (C) libtransistor +static int pdep(uint32_t mask, uint32_t value) +{ + uint32_t out = 0; + for (int shift = 0; shift < 32; shift++) + { + uint32_t bit = 1u << shift; + if (mask & bit) + { + if (value & 1) + out |= bit; + value >>= 1; + } + } + return out; +} + +static uint32_t swizzle_x(uint32_t v) { return pdep(~0x7B4u, v); } +static uint32_t swizzle_y(uint32_t v) { return pdep(0x7B4, v); } + +void gfx_slow_swizzling_blit(uint32_t *buffer, uint32_t *image, int w, int h, int tx, int ty) +{ + uint32_t *dest = buffer; + uint32_t *src = image; + int x0 = tx; + int y0 = ty; + int x1 = x0 + w; + int y1 = y0 + h; + const uint32_t tile_height = 128; + const uint32_t padded_width = 128 * 10; + + // we're doing this in pixels - should just shift the swizzles instead + uint32_t offs_x0 = swizzle_x(x0); + uint32_t offs_y = swizzle_y(y0); + uint32_t x_mask = swizzle_x(~0u); + uint32_t y_mask = swizzle_y(~0u); + uint32_t incr_y = swizzle_x(padded_width); + + // step offs_x0 to the right row of tiles + offs_x0 += incr_y * (y0 / tile_height); + + uint32_t x, y; + for (y = y0; y < y1; y++) + { + uint32_t *dest_line = dest + offs_y; + uint32_t offs_x = offs_x0; + + for (x = x0; x < x1; x++) + { + uint32_t pixel = *src++; + dest_line[offs_x] = pixel; + offs_x = (offs_x - x_mask) & x_mask; + } + + offs_y = (offs_y - y_mask) & y_mask; + if (!offs_y) + offs_x0 += incr_y; // wrap into next tile row + } +} + typedef struct { bool vsync; @@ -56,8 +116,6 @@ typedef struct struct scaler_ctx scaler; } menu_texture; - surface_t surface; - revent_h vsync_h; uint32_t image[1280 * 720]; struct scaler_ctx scaler; @@ -68,6 +126,7 @@ typedef struct static void *switch_init(const video_info_t *video, const input_driver_t **input, void **input_data) { + exit(0); unsigned x, y; switch_video_t *sw = (switch_video_t *)calloc(1, sizeof(*sw)); if (!sw) @@ -75,37 +134,17 @@ static void *switch_init(const video_info_t *video, RARCH_LOG("loading switch gfx driver, width: %d, height: %d\n", video->width, video->height); - result_t r = display_init(); - if (r != RESULT_OK) - { - free(sw); - return NULL; - } - r = display_open_layer(&sw->surface); - - if (r != RESULT_OK) - { - display_finalize(); - free(sw); - return NULL; - } - r = display_get_vsync_event(&sw->vsync_h); - - if (r != RESULT_OK) - { - display_close_layer(&sw->surface); - display_finalize(); - free(sw); - return NULL; - } + // Needs to be called before gfxInitDefault() + gfxInitResolution(1280, 720); + gfxInitDefault(); sw->vp.x = 0; sw->vp.y = 0; sw->vp.width = 1280; sw->vp.height = 720; + sw->vp.full_width = 1280; sw->vp.full_height = 720; - video_driver_set_size(&sw->vp.width, &sw->vp.height); sw->vsync = video->vsync; sw->rgb32 = video->rgb32; @@ -118,9 +157,7 @@ static void *switch_init(const video_info_t *video, static void switch_wait_vsync(switch_video_t *sw) { - uint32_t handle_idx; - svcWaitSynchronization(&handle_idx, &sw->vsync_h, 1, 33333333); - svcResetSignal(sw->vsync_h); + gfxWaitForVsync(); } static bool switch_frame(void *data, const void *frame, @@ -131,7 +168,6 @@ static bool switch_frame(void *data, const void *frame, static uint64_t last_frame = 0; unsigned x, y; - result_t r; int tgtw, tgth, centerx, centery; uint32_t *out_buffer = NULL; switch_video_t *sw = data; @@ -231,21 +267,13 @@ static bool switch_frame(void *data, const void *frame, if (msg && strlen(msg) > 0) RARCH_LOG("message: %s\n", msg); - r = surface_dequeue_buffer(&sw->surface, &out_buffer); + out_buffer = (uint8_t*)gfxGetFramebuffer(NULL, NULL); if (sw->vsync) switch_wait_vsync(sw); - svcSleepThread(10000); - if (r != RESULT_OK) - { - return true; // just skip the frame - } gfx_slow_swizzling_blit(out_buffer, sw->image, 1280, 720, 0, 0); - r = surface_queue_buffer(&sw->surface); - - if (r != RESULT_OK) - return false; + gfxFlushBuffers(); last_frame = svcGetSystemTick(); return true; @@ -285,9 +313,7 @@ static bool switch_has_windowed(void *data) static void switch_free(void *data) { switch_video_t *sw = data; - svcCloseHandle(sw->vsync_h); - display_close_layer(&sw->surface); - display_finalize(); + gfxExit(); free(sw); } -- GitLab From 0117c407dc2aab6213fe30f83b5d1ab992012a0b Mon Sep 17 00:00:00 2001 From: M4xw Date: Sun, 27 May 2018 00:14:37 +0200 Subject: [PATCH 017/211] Enable all objects. --- Makefile.common | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile.common b/Makefile.common index e155847072..36ede3df56 100644 --- a/Makefile.common +++ b/Makefile.common @@ -880,9 +880,9 @@ endif ifeq ($(TARGET), retroarch_switch) OBJ += input/drivers_joypad/switch_joypad.o \ - audio/drivers/switch_audio.o - #gfx/drivers/switch_gfx.o - #input/drivers/switch_input.o + audio/drivers/switch_audio.o \ + input/drivers/switch_input.o \ + gfx/drivers/switch_gfx.o endif ifeq ($(HAVE_WAYLAND), 1) -- GitLab From 3c5945bb7bb0346a34b54004048ae84752138837 Mon Sep 17 00:00:00 2001 From: M4xw Date: Sun, 27 May 2018 00:24:06 +0200 Subject: [PATCH 018/211] Lets make it build --- Makefile.switch | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/Makefile.switch b/Makefile.switch index fc1b64dc9c..a38cc80e5b 100644 --- a/Makefile.switch +++ b/Makefile.switch @@ -38,18 +38,20 @@ include Makefile.common BLACKLIST := BLACKLIST += input/input_overlay.o BLACKLIST += tasks/task_overlay.o + OBJ := $(filter-out $(BLACKLIST),$(OBJ)) INCDIRS += -I$(DEVKITPRO)/libnx/include/ include $(DEVKITPRO)/libnx/switch_rules APP_ICON := icon.jpg -APP_VERSION := RetroArch SNES9x libNX +APP_TITLE := RetroArch SNES9x libNX +APP_VERSION := 0.1 APP_AUTHOR := M4xw, Credit: Reswitched, libretro INCDIRS += -Ideps -Ideps/libz -Ilibretro-common/include -Ideps/stb -I$(LIBNX)/include/ -LD := $(DEVKITPRO)/devkitA64/bin/aarch64-none-elf-ld +export LD := $(CXX) CFLAGS := $(DEFINES) -g \ -std=gnu11 \ -O2 \ @@ -65,7 +67,9 @@ ARFLAGS := rcs LIBDIRS := $(PORTLIBS) $(LIBNX) $(DEVKITPRO)/devkitA64/aarch64-none-elf/ . export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) -TARGETS := $(TARGET).nro.so +LDFLAGS := $(CXXFLAGS) -Wl,--allow-multiple-definition -Wl,-T $(DEVKITPRO)/libnx/switch.ld +LIBS := -lnx +TARGETS := $(TARGET).nro BUILD_DIR = $(CURDIR) @@ -100,16 +104,13 @@ endif DEPENDS := $(OBJ:.o=.d) -.PHONY: all +OFILES := $(OBJ) libretro_switch.a -all: $(TARGETS) +.PHONY: all -%.nro.so: $(OBJ) libretro_switch.a %.nacp - $(CXX) -Wl,--allow-multiple-definition -o $@ $(OBJ) libretro_switch.a $(LIBPATHS) -lnx +all: $(OFILES) $(TARGET).nacp $(TARGETS) clean: rm -f $(OBJ) $(TARGET).nro.so $(TARGET).nro - .PHONY: clean all - -- GitLab From 58bd354e4c8c43645f71722b51c1ab645bd0f233 Mon Sep 17 00:00:00 2001 From: M4xw Date: Sun, 27 May 2018 00:54:43 +0200 Subject: [PATCH 019/211] Fix makefile. --- Makefile.switch | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Makefile.switch b/Makefile.switch index a38cc80e5b..7d057ebacd 100644 --- a/Makefile.switch +++ b/Makefile.switch @@ -108,7 +108,11 @@ OFILES := $(OBJ) libretro_switch.a .PHONY: all -all: $(OFILES) $(TARGET).nacp $(TARGETS) +all: $(TARGETS) + +$(TARGET).elf: $(OFILES) + +$(TARGET).nro: $(TARGET).elf $(TARGET).nacp clean: rm -f $(OBJ) $(TARGET).nro.so $(TARGET).nro -- GitLab From 395df15542a3d9898cdd38d29b15026c9cc5c2d5 Mon Sep 17 00:00:00 2001 From: M4xw Date: Sun, 27 May 2018 02:17:23 +0200 Subject: [PATCH 020/211] Makefile changes., --- Makefile.switch | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile.switch b/Makefile.switch index 7d057ebacd..1e5a23ff91 100644 --- a/Makefile.switch +++ b/Makefile.switch @@ -57,8 +57,8 @@ CFLAGS := $(DEFINES) -g \ -O2 \ -fomit-frame-pointer \ -ffunction-sections \ - -fdata-sections -ASFLAGS := -march=armv8-a -mtune=cortex-a57 -fPIE -mtp=soft + -fdata-sections -fPIE -specs=$(DEVKITPRO)/libnx/switch.specs +ASFLAGS := -g -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE CFLAGS += $(INCDIRS) CFLAGS += $(INCLUDE) -D__SWITCH__ CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11 @@ -67,7 +67,7 @@ ARFLAGS := rcs LIBDIRS := $(PORTLIBS) $(LIBNX) $(DEVKITPRO)/devkitA64/aarch64-none-elf/ . export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) -LDFLAGS := $(CXXFLAGS) -Wl,--allow-multiple-definition -Wl,-T $(DEVKITPRO)/libnx/switch.ld +LDFLAGS := $(CXXFLAGS) -Wl,--allow-multiple-definition -Wl,--shared -Wl,--gc-sections -Wl,--eh-frame-hdr -Wl,--no-undefined -Wl,-T,$(DEVKITPRO)/libnx/switch.ld -Wl,-pie LIBS := -lnx TARGETS := $(TARGET).nro @@ -115,6 +115,6 @@ $(TARGET).elf: $(OFILES) $(TARGET).nro: $(TARGET).elf $(TARGET).nacp clean: - rm -f $(OBJ) $(TARGET).nro.so $(TARGET).nro + rm -f $(OBJ) $(TARGET).elf $(TARGET).nacp $(TARGET).nro .PHONY: clean all -- GitLab From ffb0d1d0acc62ccf6035e6f94f82a2bfda469ac7 Mon Sep 17 00:00:00 2001 From: M4xw Date: Sun, 27 May 2018 16:37:43 +0200 Subject: [PATCH 021/211] Update --- Makefile.switch | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/Makefile.switch b/Makefile.switch index 1e5a23ff91..47b87c78b7 100644 --- a/Makefile.switch +++ b/Makefile.switch @@ -49,16 +49,17 @@ APP_TITLE := RetroArch SNES9x libNX APP_VERSION := 0.1 APP_AUTHOR := M4xw, Credit: Reswitched, libretro +EXEFS_SRC := exefs_src +export BUILD_EXEFS_SRC := $(TOPDIR)/$(EXEFS_SRC) + INCDIRS += -Ideps -Ideps/libz -Ilibretro-common/include -Ideps/stb -I$(LIBNX)/include/ export LD := $(CXX) CFLAGS := $(DEFINES) -g \ -std=gnu11 \ -O2 \ - -fomit-frame-pointer \ - -ffunction-sections \ - -fdata-sections -fPIE -specs=$(DEVKITPRO)/libnx/switch.specs -ASFLAGS := -g -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE + -fPIE -specs=$(DEVKITPRO)/libnx/switch.specs -ffunction-sections -fdata-sections -ftls-model=local-exec +ASFLAGS := -g -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE -specs=$(LIBNX)/switch.specs CFLAGS += $(INCDIRS) CFLAGS += $(INCLUDE) -D__SWITCH__ CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11 @@ -67,7 +68,7 @@ ARFLAGS := rcs LIBDIRS := $(PORTLIBS) $(LIBNX) $(DEVKITPRO)/devkitA64/aarch64-none-elf/ . export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) -LDFLAGS := $(CXXFLAGS) -Wl,--allow-multiple-definition -Wl,--shared -Wl,--gc-sections -Wl,--eh-frame-hdr -Wl,--no-undefined -Wl,-T,$(DEVKITPRO)/libnx/switch.ld -Wl,-pie +LDFLAGS := $(CXXFLAGS) -Wl,--allow-multiple-definition LIBS := -lnx TARGETS := $(TARGET).nro @@ -108,12 +109,16 @@ OFILES := $(OBJ) libretro_switch.a .PHONY: all -all: $(TARGETS) +all: $(TARGET).pfs0 $(TARGET).nro $(TARGET).elf: $(OFILES) $(TARGET).nro: $(TARGET).elf $(TARGET).nacp +$(TARGET). : $(TARGET).nso + +$(TARGET).nso : $(TARGET).elf + clean: rm -f $(OBJ) $(TARGET).elf $(TARGET).nacp $(TARGET).nro -- GitLab From e09914bd395930cef824bd566774793f7c4c5f0b Mon Sep 17 00:00:00 2001 From: M4xw Date: Sun, 27 May 2018 17:13:30 +0200 Subject: [PATCH 022/211] Oops --- Makefile.switch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.switch b/Makefile.switch index 47b87c78b7..083659f6c7 100644 --- a/Makefile.switch +++ b/Makefile.switch @@ -115,7 +115,7 @@ $(TARGET).elf: $(OFILES) $(TARGET).nro: $(TARGET).elf $(TARGET).nacp -$(TARGET). : $(TARGET).nso +$(TARGET).pfs0 : $(TARGET).nso $(TARGET).nso : $(TARGET).elf -- GitLab From af360a6b416eeca42e0f5fe9a0919833707eeda2 Mon Sep 17 00:00:00 2001 From: M4xw Date: Mon, 28 May 2018 01:56:49 +0200 Subject: [PATCH 023/211] Woop. --- gfx/drivers/switch_gfx.c | 1 - 1 file changed, 1 deletion(-) diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index 2a8efdc7ce..a6e79829ba 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -126,7 +126,6 @@ typedef struct static void *switch_init(const video_info_t *video, const input_driver_t **input, void **input_data) { - exit(0); unsigned x, y; switch_video_t *sw = (switch_video_t *)calloc(1, sizeof(*sw)); if (!sw) -- GitLab From 0ea9fee47c977a8f5a6bde64000e06be9db84994 Mon Sep 17 00:00:00 2001 From: M4xw Date: Tue, 29 May 2018 17:27:24 +0200 Subject: [PATCH 024/211] Redo Makefile, now actually crashes! --- Makefile.switch | 159 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 121 insertions(+), 38 deletions(-) diff --git a/Makefile.switch b/Makefile.switch index 083659f6c7..463f1556fe 100644 --- a/Makefile.switch +++ b/Makefile.switch @@ -2,6 +2,13 @@ .SUFFIXES: #--------------------------------------------------------------------------------- +ifeq ($(strip $(DEVKITPRO)),) +$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=/devkitpro") +endif + +TOPDIR ?= $(CURDIR) +include $(DEVKITPRO)/libnx/switch_rules + TARGET := retroarch_switch DEBUG ?= 0 @@ -12,10 +19,6 @@ OBJ := DEFINES := -DSWITCH=1 -U__linux__ -U__linux -DRARCH_INTERNAL -TOPDIR ?= $(CURDIR) -export TOPDIR := $(CURDIR) -export DEPSDIR := $(CURDIR) - HAVE_CC_RESAMPLER = 1 HAVE_MENU_COMMON = 1 HAVE_RTGA = 1 @@ -41,38 +44,106 @@ BLACKLIST += tasks/task_overlay.o OBJ := $(filter-out $(BLACKLIST),$(OBJ)) -INCDIRS += -I$(DEVKITPRO)/libnx/include/ -include $(DEVKITPRO)/libnx/switch_rules +#--------------------------------------------------------------------------------- +# TARGET is the name of the output +# BUILD is the directory where object files & intermediate files will be placed +# SOURCES is a list of directories containing source code +# DATA is a list of directories containing data files +# INCLUDES is a list of directories containing header files +# EXEFS_SRC is the optional input directory containing data copied into exefs, if anything this normally should only contain "main.npdm". +# ROMFS is the directory containing data to be added to RomFS, relative to the Makefile (Optional) +# +# NO_ICON: if set to anything, do not use icon. +# NO_NACP: if set to anything, no .nacp file is generated. +# APP_TITLE is the name of the app stored in the .nacp file (Optional) +# APP_AUTHOR is the author of the app stored in the .nacp file (Optional) +# APP_VERSION is the version of the app stored in the .nacp file (Optional) +# APP_TITLEID is the titleID of the app stored in the .nacp file (Optional) +# ICON is the filename of the icon (.jpg), relative to the project folder. +# If not set, it attempts to use one of the following (in this order): +# - .jpg +# - icon.jpg +# - /default_icon.jpg +#--------------------------------------------------------------------------------- +BUILD := build +SOURCES := $(CURDIR)/source +DATA := data +INCLUDES := include +EXEFS_SRC := exefs_src +#ROMFS := romfs APP_ICON := icon.jpg APP_TITLE := RetroArch SNES9x libNX APP_VERSION := 0.1 APP_AUTHOR := M4xw, Credit: Reswitched, libretro -EXEFS_SRC := exefs_src -export BUILD_EXEFS_SRC := $(TOPDIR)/$(EXEFS_SRC) +#--------------------------------------------------------------------------------- +# options for code generation +#--------------------------------------------------------------------------------- +ARCH := -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE + +CFLAGS := -g -Wall -O2 -ffunction-sections \ + $(ARCH) $(DEFINES) -Ideps -Ideps/libz -Ilibretro-common/include -Ideps/stb -I$(LIBNX)/include + +CFLAGS += $(INCLUDE) -D__SWITCH__ + +CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11 + +ASFLAGS := -g $(ARCH) +LDFLAGS = -specs=$(DEVKITPRO)/libnx/switch.specs -g $(ARCH) -Wl,--allow-multiple-definition -Wl,-Map,$(notdir $*.map) + +LIBS := -lnx -lm + +#--------------------------------------------------------------------------------- +# list of directories containing libraries, this must be the top level containing +# include and lib +#--------------------------------------------------------------------------------- +LIBDIRS := $(PORTLIBS) $(LIBNX) + +#--------------------------------------------------------------------------------- +# no real need to edit anything past this point unless you need to add additional +# rules for different file extensions +#--------------------------------------------------------------------------------- +ifneq ($(BUILD),$(notdir $(CURDIR))) +#--------------------------------------------------------------------------------- -INCDIRS += -Ideps -Ideps/libz -Ilibretro-common/include -Ideps/stb -I$(LIBNX)/include/ +export OUTPUT := $(TARGET) +export TOPDIR := $(CURDIR) -export LD := $(CXX) -CFLAGS := $(DEFINES) -g \ - -std=gnu11 \ - -O2 \ - -fPIE -specs=$(DEVKITPRO)/libnx/switch.specs -ffunction-sections -fdata-sections -ftls-model=local-exec -ASFLAGS := -g -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE -specs=$(LIBNX)/switch.specs -CFLAGS += $(INCDIRS) -CFLAGS += $(INCLUDE) -D__SWITCH__ -CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11 -CFLAGS += -std=gnu11 -ARFLAGS := rcs -LIBDIRS := $(PORTLIBS) $(LIBNX) $(DEVKITPRO)/devkitA64/aarch64-none-elf/ . -export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) +export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \ + $(foreach dir,$(DATA),$(CURDIR)/$(dir)) -LDFLAGS := $(CXXFLAGS) -Wl,--allow-multiple-definition -LIBS := -lnx -TARGETS := $(TARGET).nro +export DEPSDIR := $(CURDIR)/ -BUILD_DIR = $(CURDIR) +CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) +CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) +SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) +BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) + +#--------------------------------------------------------------------------------- +# use CXX for linking C++ projects, CC for standard C +#--------------------------------------------------------------------------------- +ifeq ($(strip $(CPPFILES)),) +#--------------------------------------------------------------------------------- + export LD := $(CC) +#--------------------------------------------------------------------------------- +else +#--------------------------------------------------------------------------------- + export LD := $(CXX) +#--------------------------------------------------------------------------------- +endif +#--------------------------------------------------------------------------------- + +export OFILES := $(OBJ) libretro_switch.a +export HFILES_BIN := $(addsuffix .h,$(subst .,_,$(BINFILES))) + +export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ + $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ + -I$(CURDIR)/$(BUILD) + +export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) + +export BUILD_EXEFS_SRC := $(TOPDIR)/$(EXEFS_SRC) ifeq ($(strip $(ICON)),) icons := $(wildcard *.jpg) @@ -103,23 +174,35 @@ ifneq ($(ROMFS),) export NROFLAGS += --romfsdir=$(CURDIR)/$(ROMFS) endif -DEPENDS := $(OBJ:.o=.d) - -OFILES := $(OBJ) libretro_switch.a +DEPENDS := $(OFILES:.o=.d) -.PHONY: all +.PHONY: $(BUILD) clean all -all: $(TARGET).pfs0 $(TARGET).nro +#--------------------------------------------------------------------------------- +# main targets +#--------------------------------------------------------------------------------- +all : $(OUTPUT).pfs0 $(OUTPUT).nro -$(TARGET).elf: $(OFILES) +$(OUTPUT).pfs0 : $(OUTPUT).nso -$(TARGET).nro: $(TARGET).elf $(TARGET).nacp +$(OUTPUT).nso : $(OUTPUT).elf -$(TARGET).pfs0 : $(TARGET).nso +ifeq ($(strip $(NO_NACP)),) +$(OUTPUT).nro : $(OUTPUT).elf $(OUTPUT).nacp +else +$(OUTPUT).nro : $(OUTPUT).elf +endif -$(TARGET).nso : $(TARGET).elf +$(OUTPUT).elf : $(OBJ) -clean: - rm -f $(OBJ) $(TARGET).elf $(TARGET).nacp $(TARGET).nro +#--------------------------------------------------------------------------------- +# you need a rule like this for each extension you use as binary data +#--------------------------------------------------------------------------------- +%.bin.o %_bin.h : %.bin +#--------------------------------------------------------------------------------- + @echo $(notdir $<) + @$(bin2o) -.PHONY: clean all +#--------------------------------------------------------------------------------------- +endif +#--------------------------------------------------------------------------------------- -- GitLab From b3caff6e65b52137b256eb467b47b77f8d4ee1d2 Mon Sep 17 00:00:00 2001 From: M4xw Date: Tue, 29 May 2018 17:42:37 +0200 Subject: [PATCH 025/211] Nicer include. --- libretro-common/features/features_cpu.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libretro-common/features/features_cpu.c b/libretro-common/features/features_cpu.c index c4aa3ad58e..46d4a44c1d 100644 --- a/libretro-common/features/features_cpu.c +++ b/libretro-common/features/features_cpu.c @@ -80,8 +80,7 @@ #endif #ifdef SWITCH -#include -#include +#include #endif #if defined(_3DS) -- GitLab From d0d0048172d9e4e02cb4a6a74da3c6d9752b7f1c Mon Sep 17 00:00:00 2001 From: M4xw Date: Tue, 29 May 2018 19:23:41 +0200 Subject: [PATCH 026/211] Fix display (for now). --- gfx/drivers/switch_gfx.c | 72 ++++++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 32 deletions(-) diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index a6e79829ba..5edd78bae6 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -117,7 +117,7 @@ typedef struct } menu_texture; uint32_t image[1280 * 720]; - + u32 cnt; struct scaler_ctx scaler; uint32_t last_width; uint32_t last_height; @@ -131,12 +131,16 @@ static void *switch_init(const video_info_t *video, if (!sw) return NULL; - RARCH_LOG("loading switch gfx driver, width: %d, height: %d\n", video->width, video->height); - - // Needs to be called before gfxInitDefault() gfxInitResolution(1280, 720); gfxInitDefault(); + gfxConfigureResolution(1280, 720); + gfxSetDrawFlip(false); + gfxConfigureTransform(0); + gfxSetMode(GfxMode_TiledSingle); + + consoleInit(NULL); + // printf("loading switch gfx driver, width: %d, height: %d\n", video->width, video->height); sw->vp.x = 0; sw->vp.y = 0; sw->vp.width = 1280; @@ -147,6 +151,7 @@ static void *switch_init(const video_info_t *video, sw->vsync = video->vsync; sw->rgb32 = video->rgb32; + sw->cnt = 0; *input = NULL; *input_data = NULL; @@ -163,7 +168,9 @@ static bool switch_frame(void *data, const void *frame, unsigned width, unsigned height, uint64_t frame_count, unsigned pitch, const char *msg, video_frame_info_t *video_info) + { + hidScanInput(); static uint64_t last_frame = 0; unsigned x, y; @@ -212,7 +219,7 @@ static bool switch_frame(void *data, const void *frame, if (!scaler_ctx_gen_filter(&sw->scaler)) { - RARCH_ERR("failed to generate scaler for main image\n"); + printf("failed to generate scaler for main image\n"); return false; } @@ -223,24 +230,13 @@ static bool switch_frame(void *data, const void *frame, scaler_ctx_scale(&sw->scaler, sw->image + (centery * 1280) + centerx, frame); } -#if defined(HAVE_MENU) if (sw->menu_texture.enable) { menu_driver_frame(video_info); if (sw->menu_texture.pixels) { -#if 0 - if (sw->menu_texture.fullscreen) - { -#endif scaler_ctx_scale(&sw->menu_texture.scaler, sw->image + ((720 - sw->menu_texture.tgth) / 2) * 1280 + ((1280 - sw->menu_texture.tgtw) / 2), sw->menu_texture.pixels); -#if 0 - } - else - { - } -#endif } } else if (video_info->statistics_show) @@ -253,26 +249,38 @@ static bool switch_frame(void *data, const void *frame, (const struct font_params *)&video_info->osd_stat_params); } } -#endif -#if 0 - if (frame_count > 6000) - { - display_finalize(); - exit(0); - } -#endif + //if (msg && strlen(msg) > 0) + // printf("message: %s\n", msg); - if (msg && strlen(msg) > 0) - RARCH_LOG("message: %s\n", msg); + width = 0; + height = 0; + out_buffer = (uint32_t *)gfxGetFramebuffer(&width, &height); + if (sw->cnt == 60) + { + sw->cnt = 0; + } + else + { + sw->cnt++; + } - out_buffer = (uint8_t*)gfxGetFramebuffer(NULL, NULL); - if (sw->vsync) - switch_wait_vsync(sw); + //Each pixel is 4-bytes due to RGBA8888. + /*u32 pos; + for (y = 0; y < height; y++) //Access the buffer linearly. + { + for (x = 0; x < width; x++) + { + pos = y * width + x; + out_buffer[pos] = RGBA8_MAXALPHA(sw->image[pos * 3 + 0] + (sw->cnt * 4), sw->image[pos * 3 + 1], sw->image[pos * 3 + 2]); + } + }*/ gfx_slow_swizzling_blit(out_buffer, sw->image, 1280, 720, 0, 0); - gfxFlushBuffers(); + gfxSwapBuffers(); + if(sw->vsync) + switch_wait_vsync(sw); last_frame = svcGetSystemTick(); return true; @@ -364,7 +372,7 @@ static void switch_set_texture_frame( sw->menu_texture.pixels = malloc(width * height * (rgb32 ? 4 : 2)); if (!sw->menu_texture.pixels) { - RARCH_ERR("failed to allocate buffer for menu texture\n"); + printf("failed to allocate buffer for menu texture\n"); return; } @@ -397,7 +405,7 @@ static void switch_set_texture_frame( if (!scaler_ctx_gen_filter(sctx)) { - RARCH_ERR("failed to generate scaler for menu texture\n"); + printf("failed to generate scaler for menu texture\n"); return; } } -- GitLab From 4b13aaab18e5a636c3d03e05cf9776e4cbcbb453 Mon Sep 17 00:00:00 2001 From: M4xw Date: Tue, 29 May 2018 19:32:12 +0200 Subject: [PATCH 027/211] Init HID in display. --- gfx/drivers/switch_gfx.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index 5edd78bae6..b58e600752 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -140,6 +140,9 @@ static void *switch_init(const video_info_t *video, consoleInit(NULL); + // INIT HID here + hidInitialize(); + // printf("loading switch gfx driver, width: %d, height: %d\n", video->width, video->height); sw->vp.x = 0; sw->vp.y = 0; @@ -170,7 +173,9 @@ static bool switch_frame(void *data, const void *frame, const char *msg, video_frame_info_t *video_info) { + // Do this once per Frame! hidScanInput(); + static uint64_t last_frame = 0; unsigned x, y; -- GitLab From 51e7ad00f39aa910dca1604c9d47a8746b0ca62b Mon Sep 17 00:00:00 2001 From: M4xw Date: Tue, 29 May 2018 19:32:28 +0200 Subject: [PATCH 028/211] Don't init HID here. --- input/drivers_joypad/switch_joypad.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/input/drivers_joypad/switch_joypad.c b/input/drivers_joypad/switch_joypad.c index 47e89fd315..4c20fd5706 100644 --- a/input/drivers_joypad/switch_joypad.c +++ b/input/drivers_joypad/switch_joypad.c @@ -39,9 +39,6 @@ static void switch_joypad_autodetect_add(unsigned autoconf_pad) static bool switch_joypad_init(void *data) { - // Init - hidInitialize(); - // Scan Input hidScanInput(); -- GitLab From 61cecc60518012877e8347e7ec1361f88217402d Mon Sep 17 00:00:00 2001 From: M4xw Date: Tue, 29 May 2018 19:40:45 +0200 Subject: [PATCH 029/211] Silly mistake. --- input/drivers_joypad/switch_joypad.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/drivers_joypad/switch_joypad.c b/input/drivers_joypad/switch_joypad.c index 4c20fd5706..f9840da6c0 100644 --- a/input/drivers_joypad/switch_joypad.c +++ b/input/drivers_joypad/switch_joypad.c @@ -137,7 +137,7 @@ static void switch_joypad_poll(void) // Get SharedMem HidSharedMemory* sharedMem = (HidSharedMemory*)hidGetSharedmemAddr(); - pad_state[0] = sharedMem->controllers[target].layouts[hidGetControllerLayout(target)].entries[0].connectionState; + pad_state[0] = sharedMem->controllers[target].layouts[hidGetControllerLayout(target)].entries[0].buttons; JoystickPosition joyPositionLeft, joyPositionRight; -- GitLab From 8a8f29b97486ff800c6bb991cdb2d1ac2eb7c78f Mon Sep 17 00:00:00 2001 From: M4xw Date: Tue, 29 May 2018 19:58:11 +0200 Subject: [PATCH 030/211] link to stdlib. --- Makefile.switch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.switch b/Makefile.switch index 463f1556fe..1608224eb3 100644 --- a/Makefile.switch +++ b/Makefile.switch @@ -92,7 +92,7 @@ CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11 ASFLAGS := -g $(ARCH) LDFLAGS = -specs=$(DEVKITPRO)/libnx/switch.specs -g $(ARCH) -Wl,--allow-multiple-definition -Wl,-Map,$(notdir $*.map) -LIBS := -lnx -lm +LIBS := -lnx -lc -lm -lstdc++ #--------------------------------------------------------------------------------- # list of directories containing libraries, this must be the top level containing -- GitLab From ff5d7895dd29348bb2d0fc1784965dcdbc99ccdc Mon Sep 17 00:00:00 2001 From: M4xw Date: Wed, 30 May 2018 02:32:35 +0200 Subject: [PATCH 031/211] Add clean. --- Makefile.switch | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile.switch b/Makefile.switch index 1608224eb3..ba02a856a8 100644 --- a/Makefile.switch +++ b/Makefile.switch @@ -195,6 +195,9 @@ endif $(OUTPUT).elf : $(OBJ) +clean: + rm -f $(OBJ) $(OUTPUT).pfs0 $(OUTPUT).nro $(OUTPUT).elf + #--------------------------------------------------------------------------------- # you need a rule like this for each extension you use as binary data #--------------------------------------------------------------------------------- -- GitLab From 12b6e9d1b19cb55e333a86d430c0c81a12c3def9 Mon Sep 17 00:00:00 2001 From: M4xw Date: Wed, 30 May 2018 13:11:25 +0200 Subject: [PATCH 032/211] Skip audio_write for now. --- audio/drivers/switch_audio.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/audio/drivers/switch_audio.c b/audio/drivers/switch_audio.c index 2127c19fc8..212869a0df 100644 --- a/audio/drivers/switch_audio.c +++ b/audio/drivers/switch_audio.c @@ -44,6 +44,7 @@ static size_t switch_audio_buffer_size(void *data) // TODO: Needs testing static ssize_t switch_audio_write(void *data, const void *buf, size_t size) { + return size; size_t to_write = size; switch_audio_t *swa = (switch_audio_t *)data; @@ -91,7 +92,7 @@ static ssize_t switch_audio_write(void *data, const void *buf, size_t size) Result r = audoutAppendAudioOutBuffer(swa->current_buffer); if (R_FAILED(r)) { - RARCH_ERR("failed to append buffer: 0x%x\n", r); + printf("failed to append buffer: 0x%x\n", r); return -1; } swa->current_buffer = NULL; @@ -185,7 +186,7 @@ static void *switch_audio_init(const char *device, unsigned *new_rate) { switch_audio_t *swa = (switch_audio_t *)calloc(1, sizeof(*swa)); - + printf("Init Audio..\n"); if (!swa) return NULL; -- GitLab From a6630d03ea897f061548b5aafceb28e26a65b8ac Mon Sep 17 00:00:00 2001 From: M4xw Date: Wed, 30 May 2018 13:12:28 +0200 Subject: [PATCH 033/211] Some cleanup in gfx. --- gfx/drivers/switch_gfx.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index b58e600752..771153b49c 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -131,12 +131,15 @@ static void *switch_init(const video_info_t *video, if (!sw) return NULL; + // Init Resolution before initDefault gfxInitResolution(1280, 720); + gfxInitDefault(); gfxConfigureResolution(1280, 720); + + // Needed, else its flipped and mirrored gfxSetDrawFlip(false); gfxConfigureTransform(0); - gfxSetMode(GfxMode_TiledSingle); consoleInit(NULL); -- GitLab From 524568dfb2f7639124a4eec7307ff11e5b6f1449 Mon Sep 17 00:00:00 2001 From: M4xw Date: Wed, 30 May 2018 15:17:38 +0200 Subject: [PATCH 034/211] Lets disable audio for now, launches it on other versions. --- audio/drivers/switch_audio.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/audio/drivers/switch_audio.c b/audio/drivers/switch_audio.c index 212869a0df..21d62f7815 100644 --- a/audio/drivers/switch_audio.c +++ b/audio/drivers/switch_audio.c @@ -105,6 +105,7 @@ static ssize_t switch_audio_write(void *data, const void *buf, size_t size) static bool switch_audio_stop(void *data) { + return true; switch_audio_t *swa = (switch_audio_t *)data; if (!swa) return false; @@ -124,6 +125,7 @@ static bool switch_audio_stop(void *data) static bool switch_audio_start(void *data, bool is_shutdown) { + return true; switch_audio_t *swa = (switch_audio_t *)data; if (swa->is_paused) @@ -141,6 +143,7 @@ static bool switch_audio_start(void *data, bool is_shutdown) static bool switch_audio_alive(void *data) { + return true; switch_audio_t *swa = (switch_audio_t *)data; if (!swa) return false; @@ -151,7 +154,6 @@ static void switch_audio_free(void *data) { switch_audio_t *swa = (switch_audio_t *)data; - audoutExit(); free(swa); } @@ -190,6 +192,7 @@ static void *switch_audio_init(const char *device, if (!swa) return NULL; +return swa; // Init Audio Output Result rc = audoutInitialize(); if (R_FAILED(rc)) -- GitLab From 577f6b7c358fc0ae07f70a272181e6ec6556d621 Mon Sep 17 00:00:00 2001 From: M4xw Date: Wed, 30 May 2018 15:17:58 +0200 Subject: [PATCH 035/211] Some more logs. --- gfx/drivers/switch_gfx.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index 771153b49c..78b0927267 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -127,6 +127,8 @@ static void *switch_init(const video_info_t *video, const input_driver_t **input, void **input_data) { unsigned x, y; + + switch_video_t *sw = (switch_video_t *)calloc(1, sizeof(*sw)); if (!sw) return NULL; @@ -143,9 +145,13 @@ static void *switch_init(const video_info_t *video, consoleInit(NULL); + printf("Video initialized..\n"); + // INIT HID here hidInitialize(); + printf("HID initialized..\n"); + // printf("loading switch gfx driver, width: %d, height: %d\n", video->width, video->height); sw->vp.x = 0; sw->vp.y = 0; @@ -263,6 +269,8 @@ static bool switch_frame(void *data, const void *frame, width = 0; height = 0; + + //printf("switch_frame getting framebuffer\n"); out_buffer = (uint32_t *)gfxGetFramebuffer(&width, &height); if (sw->cnt == 60) { @@ -291,6 +299,7 @@ static bool switch_frame(void *data, const void *frame, switch_wait_vsync(sw); last_frame = svcGetSystemTick(); + return true; } -- GitLab From 0d799066c52f59a1b6d8b5daad5d99b6e9876a83 Mon Sep 17 00:00:00 2001 From: M4xw Date: Thu, 31 May 2018 19:35:49 +0200 Subject: [PATCH 036/211] Audio isn't tested. Lets block all functions for now. --- audio/drivers/switch_audio.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/audio/drivers/switch_audio.c b/audio/drivers/switch_audio.c index 21d62f7815..e2ef7de192 100644 --- a/audio/drivers/switch_audio.c +++ b/audio/drivers/switch_audio.c @@ -152,6 +152,7 @@ static bool switch_audio_alive(void *data) static void switch_audio_free(void *data) { + return; switch_audio_t *swa = (switch_audio_t *)data; @@ -166,6 +167,7 @@ static bool switch_audio_use_float(void *data) static size_t switch_audio_write_avail(void *data) { + return 0; switch_audio_t *swa = (switch_audio_t *)data; if (!swa || !swa->current_buffer) @@ -176,6 +178,7 @@ static size_t switch_audio_write_avail(void *data) static void switch_audio_set_nonblock_state(void *data, bool state) { + return; switch_audio_t *swa = (switch_audio_t *)data; if (swa) @@ -187,12 +190,12 @@ static void *switch_audio_init(const char *device, unsigned block_frames, unsigned *new_rate) { + return NULL; switch_audio_t *swa = (switch_audio_t *)calloc(1, sizeof(*swa)); printf("Init Audio..\n"); if (!swa) return NULL; -return swa; // Init Audio Output Result rc = audoutInitialize(); if (R_FAILED(rc)) @@ -244,6 +247,11 @@ return swa; cleanExit:; free(swa); + printf("Something failed in Audio Init!\n"); + + while(1) + ; + return NULL; } -- GitLab From fa89d9b2f4ce0309a7630f75321d95a9ac27d6a6 Mon Sep 17 00:00:00 2001 From: M4xw Date: Thu, 31 May 2018 19:44:47 +0200 Subject: [PATCH 037/211] Make it run! --- Makefile.switch | 2 +- gfx/drivers/switch_gfx.c | 20 ++++++++------------ input/drivers_joypad/switch_joypad.c | 7 +++++++ 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/Makefile.switch b/Makefile.switch index ba02a856a8..91b2e361ad 100644 --- a/Makefile.switch +++ b/Makefile.switch @@ -70,7 +70,7 @@ SOURCES := $(CURDIR)/source DATA := data INCLUDES := include EXEFS_SRC := exefs_src -#ROMFS := romfs +ROMFS := romfs APP_ICON := icon.jpg APP_TITLE := RetroArch SNES9x libNX diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index 78b0927267..e57715a06e 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -128,31 +128,27 @@ static void *switch_init(const video_info_t *video, { unsigned x, y; - switch_video_t *sw = (switch_video_t *)calloc(1, sizeof(*sw)); if (!sw) return NULL; // Init Resolution before initDefault gfxInitResolution(1280, 720); - + gfxInitDefault(); - gfxConfigureResolution(1280, 720); + //gfxConfigureResolution(1280, 720); + + //consoleInit(NULL); + // This line is needed with the current gfx backend if you don't consoleInit + gfxSetMode(GfxMode_TiledDouble); // Needed, else its flipped and mirrored gfxSetDrawFlip(false); gfxConfigureTransform(0); - consoleInit(NULL); - printf("Video initialized..\n"); - // INIT HID here - hidInitialize(); - - printf("HID initialized..\n"); - - // printf("loading switch gfx driver, width: %d, height: %d\n", video->width, video->height); + // printf("loading switch gfx driver, width: %d, height: %d\n", video->width, video->height); sw->vp.x = 0; sw->vp.y = 0; sw->vp.width = 1280; @@ -295,7 +291,7 @@ static bool switch_frame(void *data, const void *frame, gfx_slow_swizzling_blit(out_buffer, sw->image, 1280, 720, 0, 0); gfxFlushBuffers(); gfxSwapBuffers(); - if(sw->vsync) + if (sw->vsync) switch_wait_vsync(sw); last_frame = svcGetSystemTick(); diff --git a/input/drivers_joypad/switch_joypad.c b/input/drivers_joypad/switch_joypad.c index f9840da6c0..f703b9530b 100644 --- a/input/drivers_joypad/switch_joypad.c +++ b/input/drivers_joypad/switch_joypad.c @@ -39,6 +39,11 @@ static void switch_joypad_autodetect_add(unsigned autoconf_pad) static bool switch_joypad_init(void *data) { + // INIT HID here + hidInitialize(); + + printf("HID initialized..\n"); + // Scan Input hidScanInput(); @@ -132,6 +137,8 @@ static void switch_joypad_destroy(void) static void switch_joypad_poll(void) { + hidScanInput(); + HidControllerID target = !hidGetHandheldMode() ? CONTROLLER_PLAYER_1 : CONTROLLER_HANDHELD; // Get SharedMem -- GitLab From bc5af731122ffee195129a235a9c0a0f6ce97c02 Mon Sep 17 00:00:00 2001 From: M4xw Date: Thu, 31 May 2018 20:16:00 +0200 Subject: [PATCH 038/211] Scan in poll, not here --- gfx/drivers/switch_gfx.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index e57715a06e..4cdb6f5f1c 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -178,9 +178,6 @@ static bool switch_frame(void *data, const void *frame, const char *msg, video_frame_info_t *video_info) { - // Do this once per Frame! - hidScanInput(); - static uint64_t last_frame = 0; unsigned x, y; -- GitLab From ce3e2fb055491d8425f6c7d148e73cd832889c99 Mon Sep 17 00:00:00 2001 From: M4xw Date: Thu, 31 May 2018 20:19:07 +0200 Subject: [PATCH 039/211] Seems we dont need to scan input for joycons --- input/drivers_joypad/switch_joypad.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/input/drivers_joypad/switch_joypad.c b/input/drivers_joypad/switch_joypad.c index f703b9530b..4c80843428 100644 --- a/input/drivers_joypad/switch_joypad.c +++ b/input/drivers_joypad/switch_joypad.c @@ -137,8 +137,8 @@ static void switch_joypad_destroy(void) static void switch_joypad_poll(void) { - hidScanInput(); - + //hidScanInput(); + HidControllerID target = !hidGetHandheldMode() ? CONTROLLER_PLAYER_1 : CONTROLLER_HANDHELD; // Get SharedMem -- GitLab From eaaecf5930d0d7b6c4113d96f5de34abaa194c0f Mon Sep 17 00:00:00 2001 From: M4xw Date: Thu, 31 May 2018 20:49:23 +0200 Subject: [PATCH 040/211] VSYNC causes performance issues for now. --- gfx/drivers/switch_gfx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index 4cdb6f5f1c..026e1f5d82 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -288,8 +288,8 @@ static bool switch_frame(void *data, const void *frame, gfx_slow_swizzling_blit(out_buffer, sw->image, 1280, 720, 0, 0); gfxFlushBuffers(); gfxSwapBuffers(); - if (sw->vsync) - switch_wait_vsync(sw); + //if (sw->vsync) + // switch_wait_vsync(sw); last_frame = svcGetSystemTick(); -- GitLab From ec7b7da9a0569b8b23af4a1565627cb71805ea8a Mon Sep 17 00:00:00 2001 From: M4xw Date: Thu, 31 May 2018 21:27:49 +0200 Subject: [PATCH 041/211] Well that was too much. --- input/drivers_joypad/switch_joypad.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/drivers_joypad/switch_joypad.c b/input/drivers_joypad/switch_joypad.c index 4c80843428..310997fd6b 100644 --- a/input/drivers_joypad/switch_joypad.c +++ b/input/drivers_joypad/switch_joypad.c @@ -137,7 +137,7 @@ static void switch_joypad_destroy(void) static void switch_joypad_poll(void) { - //hidScanInput(); + hidScanInput(); HidControllerID target = !hidGetHandheldMode() ? CONTROLLER_PLAYER_1 : CONTROLLER_HANDHELD; -- GitLab From fabe91c7f0f50ebecb29fc65e43a88a3cf70faac Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 1 Jun 2018 02:02:20 +0200 Subject: [PATCH 042/211] Update gitignore --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index e04091bb1f..1cfa712e58 100644 --- a/.gitignore +++ b/.gitignore @@ -147,3 +147,9 @@ retroarch.js.mem /*.js *.d .vscode/* +*.lst +*.nacp +*.nro +*.nso +*.pfs0 +exefs/* -- GitLab From 4bacc0a9c74fd49e498b18682c0d2995a9848434 Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 1 Jun 2018 02:02:39 +0200 Subject: [PATCH 043/211] WIP Audio fixes (working on 5x) --- audio/drivers/switch_audio.c | 94 ++++++++++++++++++------------------ 1 file changed, 46 insertions(+), 48 deletions(-) diff --git a/audio/drivers/switch_audio.c b/audio/drivers/switch_audio.c index e2ef7de192..a6e8734fa8 100644 --- a/audio/drivers/switch_audio.c +++ b/audio/drivers/switch_audio.c @@ -22,8 +22,6 @@ #include "../audio_driver.h" #include "../../verbosity.h" -#define ALIGN_VAL(x, a) (((x) + ((a)-1)) & ~((a)-1)) - typedef struct { bool blocking; @@ -34,27 +32,37 @@ typedef struct AudioOutBuffer *current_buffer; } switch_audio_t; +#define SAMPLERATE 48000 +#define CHANNELCOUNT 2 +#define FRAMERATE (1000 / 200) // this is upped +#define SAMPLECOUNT (SAMPLERATE / FRAMERATE) +#define BYTESPERSAMPLE 2 + +static uint32_t switch_audio_data_size() +{ + return (SAMPLECOUNT * CHANNELCOUNT * BYTESPERSAMPLE); +} + static size_t switch_audio_buffer_size(void *data) { (void)data; - size_t sample_buffer_size = ((audoutGetSampleRate() * audoutGetChannelCount() * sizeof(uint16_t)) + 0xfff) & ~0xfff; - return ALIGN_VAL(sample_buffer_size, 0x1000); + return (switch_audio_data_size() + 0xfff) & ~0xfff; } -// TODO: Needs testing static ssize_t switch_audio_write(void *data, const void *buf, size_t size) { - return size; size_t to_write = size; switch_audio_t *swa = (switch_audio_t *)data; + if (!swa) + return 0; + if (!swa->current_buffer) { uint32_t num; if (R_FAILED(audoutGetReleasedAudioOutBuffer(&swa->current_buffer, &num))) { - RARCH_LOG("Failed to get released buffer?\n"); - return -1; + return 0; } if (num < 1) @@ -64,12 +72,11 @@ static ssize_t switch_audio_write(void *data, const void *buf, size_t size) if (swa->blocking) { RARCH_LOG("No buffer, blocking...\n"); + num = 0; - while (swa->current_buffer == NULL) - { - // TODO: Fix Blocking - return -1; - } + audoutWaitPlayFinish(&swa->current_buffer, &num, 33333333); + if (swa->current_buffer == NULL) + return 0; } else { @@ -80,23 +87,16 @@ static ssize_t switch_audio_write(void *data, const void *buf, size_t size) swa->current_buffer->data_size = 0; } - if (to_write > switch_audio_buffer_size(NULL) - swa->current_buffer->data_size) - to_write = switch_audio_buffer_size(NULL) - swa->current_buffer->data_size; - - memcpy(((uint8_t *)swa->current_buffer->buffer) + swa->current_buffer->data_size, buf, to_write); - swa->current_buffer->data_size += to_write; + memcpy(swa->current_buffer->buffer, buf, to_write); + swa->current_buffer->data_size = to_write; swa->current_buffer->buffer_size = switch_audio_buffer_size(NULL); - if (swa->current_buffer->data_size > (48000 * swa->latency) / 1000) + Result r = audoutAppendAudioOutBuffer(swa->current_buffer); + if (R_FAILED(r)) { - Result r = audoutAppendAudioOutBuffer(swa->current_buffer); - if (R_FAILED(r)) - { - printf("failed to append buffer: 0x%x\n", r); - return -1; - } - swa->current_buffer = NULL; + return 0; } + swa->current_buffer = NULL; swa->last_append = svcGetSystemTick(); @@ -105,7 +105,6 @@ static ssize_t switch_audio_write(void *data, const void *buf, size_t size) static bool switch_audio_stop(void *data) { - return true; switch_audio_t *swa = (switch_audio_t *)data; if (!swa) return false; @@ -125,8 +124,9 @@ static bool switch_audio_stop(void *data) static bool switch_audio_start(void *data, bool is_shutdown) { - return true; switch_audio_t *swa = (switch_audio_t *)data; + if (!swa) + return false; if (swa->is_paused) { @@ -143,7 +143,6 @@ static bool switch_audio_start(void *data, bool is_shutdown) static bool switch_audio_alive(void *data) { - return true; switch_audio_t *swa = (switch_audio_t *)data; if (!swa) return false; @@ -152,11 +151,16 @@ static bool switch_audio_alive(void *data) static void switch_audio_free(void *data) { - return; switch_audio_t *swa = (switch_audio_t *)data; + if (swa) + { + if(!swa->is_paused) + audoutStopAudioOut(); - free(swa); + audoutExit(); + free(swa); + } } static bool switch_audio_use_float(void *data) @@ -167,7 +171,6 @@ static bool switch_audio_use_float(void *data) static size_t switch_audio_write_avail(void *data) { - return 0; switch_audio_t *swa = (switch_audio_t *)data; if (!swa || !swa->current_buffer) @@ -178,7 +181,6 @@ static size_t switch_audio_write_avail(void *data) static void switch_audio_set_nonblock_state(void *data, bool state) { - return; switch_audio_t *swa = (switch_audio_t *)data; if (swa) @@ -190,7 +192,6 @@ static void *switch_audio_init(const char *device, unsigned block_frames, unsigned *new_rate) { - return NULL; switch_audio_t *swa = (switch_audio_t *)calloc(1, sizeof(*swa)); printf("Init Audio..\n"); if (!swa) @@ -209,23 +210,16 @@ static void *switch_audio_init(const char *device, goto cleanExit; } - // Set audio rate - *new_rate = audoutGetSampleRate(); - // Create Buffers for (int i = 0; i < 3; i++) { - swa->buffers[i].next = &swa->buffers[i]; + swa->buffers[i].next = NULL; swa->buffers[i].buffer = memalign(0x1000, switch_audio_buffer_size(NULL)); swa->buffers[i].buffer_size = switch_audio_buffer_size(NULL); - swa->buffers[i].data_size = switch_audio_buffer_size(NULL); + swa->buffers[i].data_size = switch_audio_data_size(); swa->buffers[i].data_offset = 0; - if (swa->buffers[i].buffer == NULL) - { - // TODO: we might memory leak here, but it doesn't really matter - goto cleanExit; - } + memset(swa->buffers[i].buffer, 0, switch_audio_buffer_size(NULL)); /* This might be the cause of the Audio noise at load @@ -238,19 +232,23 @@ static void *switch_audio_init(const char *device, } } + // Set audio rate + *new_rate = SAMPLERATE; + swa->is_paused = true; swa->current_buffer = NULL; swa->latency = latency; swa->last_append = svcGetSystemTick(); + swa->blocking = block_frames; return swa; cleanExit:; - free(swa); + + if (swa) + free(swa); + printf("Something failed in Audio Init!\n"); - - while(1) - ; return NULL; } -- GitLab From fa870bd8ab0dad788404a2ecffea74c7f41c406c Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 1 Jun 2018 06:15:28 +0200 Subject: [PATCH 044/211] Lower buffer count. --- audio/drivers/switch_audio.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/audio/drivers/switch_audio.c b/audio/drivers/switch_audio.c index a6e8734fa8..dd3d9a9c48 100644 --- a/audio/drivers/switch_audio.c +++ b/audio/drivers/switch_audio.c @@ -28,13 +28,13 @@ typedef struct bool is_paused; uint64_t last_append; unsigned latency; - AudioOutBuffer buffers[3]; + AudioOutBuffer buffers[2]; AudioOutBuffer *current_buffer; } switch_audio_t; #define SAMPLERATE 48000 #define CHANNELCOUNT 2 -#define FRAMERATE (1000 / 200) // this is upped +#define FRAMERATE (1000 / 200) #define SAMPLECOUNT (SAMPLERATE / FRAMERATE) #define BYTESPERSAMPLE 2 @@ -155,10 +155,13 @@ static void switch_audio_free(void *data) if (swa) { - if(!swa->is_paused) + if (!swa->is_paused) audoutStopAudioOut(); audoutExit(); + + for (int i = 0; i < 2; i++) + free(swa->buffers[i].buffer); free(swa); } } @@ -211,7 +214,7 @@ static void *switch_audio_init(const char *device, } // Create Buffers - for (int i = 0; i < 3; i++) + for (int i = 0; i < 2; i++) { swa->buffers[i].next = NULL; swa->buffers[i].buffer = memalign(0x1000, switch_audio_buffer_size(NULL)); @@ -219,13 +222,8 @@ static void *switch_audio_init(const char *device, swa->buffers[i].data_size = switch_audio_data_size(); swa->buffers[i].data_offset = 0; - memset(swa->buffers[i].buffer, 0, switch_audio_buffer_size(NULL)); + memset(swa->buffers[i].buffer, 0, switch_audio_buffer_size(NULL)); - /* - This might be the cause of the Audio noise at load - But since we gonna use audoutGetReleasedAudioOutBuffer we actually need to append them earlier - Maybe do a memset 0? - */ if (R_FAILED(audoutAppendAudioOutBuffer(&swa->buffers[i]))) { goto cleanExit; -- GitLab From c95d9eded218eba6b73462f4c2d6ec479f846fb2 Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 1 Jun 2018 06:51:50 +0200 Subject: [PATCH 045/211] Fix audio cracks --- audio/drivers/switch_audio.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/audio/drivers/switch_audio.c b/audio/drivers/switch_audio.c index dd3d9a9c48..6f19773720 100644 --- a/audio/drivers/switch_audio.c +++ b/audio/drivers/switch_audio.c @@ -72,11 +72,13 @@ static ssize_t switch_audio_write(void *data, const void *buf, size_t size) if (swa->blocking) { RARCH_LOG("No buffer, blocking...\n"); - num = 0; - - audoutWaitPlayFinish(&swa->current_buffer, &num, 33333333); - if (swa->current_buffer == NULL) - return 0; + + while (swa->current_buffer == NULL) + { + num = 0; + if (R_FAILED(audoutWaitPlayFinish(&swa->current_buffer, &num, U64_MAX))) + return -1; + } } else { @@ -224,10 +226,7 @@ static void *switch_audio_init(const char *device, memset(swa->buffers[i].buffer, 0, switch_audio_buffer_size(NULL)); - if (R_FAILED(audoutAppendAudioOutBuffer(&swa->buffers[i]))) - { - goto cleanExit; - } + audoutAppendAudioOutBuffer(&swa->buffers[i]); } // Set audio rate -- GitLab From 7ab05e6a95e8548e0f6b548ed8be04f60e486523 Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 1 Jun 2018 07:08:11 +0200 Subject: [PATCH 046/211] Save WIP. --- audio/drivers/switch_audio.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/audio/drivers/switch_audio.c b/audio/drivers/switch_audio.c index 6f19773720..2a0c690cba 100644 --- a/audio/drivers/switch_audio.c +++ b/audio/drivers/switch_audio.c @@ -55,14 +55,14 @@ static ssize_t switch_audio_write(void *data, const void *buf, size_t size) switch_audio_t *swa = (switch_audio_t *)data; if (!swa) - return 0; + return -1; if (!swa->current_buffer) { uint32_t num; if (R_FAILED(audoutGetReleasedAudioOutBuffer(&swa->current_buffer, &num))) { - return 0; + return -1; } if (num < 1) @@ -96,7 +96,7 @@ static ssize_t switch_audio_write(void *data, const void *buf, size_t size) Result r = audoutAppendAudioOutBuffer(swa->current_buffer); if (R_FAILED(r)) { - return 0; + return -1; } swa->current_buffer = NULL; @@ -164,6 +164,7 @@ static void switch_audio_free(void *data) for (int i = 0; i < 2; i++) free(swa->buffers[i].buffer); + free(swa); } } @@ -232,7 +233,7 @@ static void *switch_audio_init(const char *device, // Set audio rate *new_rate = SAMPLERATE; - swa->is_paused = true; + swa->is_paused = false; swa->current_buffer = NULL; swa->latency = latency; swa->last_append = svcGetSystemTick(); -- GitLab From 5682b6b2e21cb1ee15954a65bb64ee8180973729 Mon Sep 17 00:00:00 2001 From: Maximilian Wedell Date: Fri, 1 Jun 2018 11:42:05 +0200 Subject: [PATCH 047/211] Fix audio lmfao --- audio/drivers/switch_audio.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/audio/drivers/switch_audio.c b/audio/drivers/switch_audio.c index 2a0c690cba..929fff456d 100644 --- a/audio/drivers/switch_audio.c +++ b/audio/drivers/switch_audio.c @@ -107,6 +107,8 @@ static ssize_t switch_audio_write(void *data, const void *buf, size_t size) static bool switch_audio_stop(void *data) { + return true; + switch_audio_t *swa = (switch_audio_t *)data; if (!swa) return false; @@ -126,6 +128,8 @@ static bool switch_audio_stop(void *data) static bool switch_audio_start(void *data, bool is_shutdown) { + return true; + switch_audio_t *swa = (switch_audio_t *)data; if (!swa) return false; -- GitLab From 85f5eb4cbfb2d2c217bc1614bc713098557f3f1e Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 1 Jun 2018 17:48:13 +0200 Subject: [PATCH 048/211] Add overlay and config dir (not fully finished) --- Makefile.switch | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Makefile.switch b/Makefile.switch index 91b2e361ad..fc39cb190f 100644 --- a/Makefile.switch +++ b/Makefile.switch @@ -17,7 +17,7 @@ GRIFFIN_BUILD = 0 OBJ := -DEFINES := -DSWITCH=1 -U__linux__ -U__linux -DRARCH_INTERNAL +DEFINES := -DSWITCH=1 -U__linux__ -U__linux -DRARCH_INTERNAL -DGLOBAL_CONFIG_DIR='"/switch"' HAVE_CC_RESAMPLER = 1 HAVE_MENU_COMMON = 1 @@ -30,17 +30,18 @@ HAVE_ZLIB = 1 HAVE_BUILTINZLIB = 1 HAVE_LIBRETRODB = 1 HAVE_ZARCH = 0 -HAVE_MATERIALUI = 0 # enable later? +HAVE_MATERIALUI = 0 HAVE_XMB = 0 HAVE_STATIC_VIDEO_FILTERS = 1 HAVE_STATIC_AUDIO_FILTERS = 1 HAVE_MENU = 1 HAVE_RUNAHEAD = 1 +HAVE_OVERLAY = 1 include Makefile.common BLACKLIST := -BLACKLIST += input/input_overlay.o -BLACKLIST += tasks/task_overlay.o +#BLACKLIST += input/input_overlay.o +#BLACKLIST += tasks/task_overlay.o OBJ := $(filter-out $(BLACKLIST),$(OBJ)) -- GitLab From 5c5b6a0f96ec59face774877dfdb761260f29f3a Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 1 Jun 2018 17:48:50 +0200 Subject: [PATCH 049/211] Default left joycon analog --- configuration.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/configuration.c b/configuration.c index e02b4bff32..3d8ea9dd2d 100644 --- a/configuration.c +++ b/configuration.c @@ -1758,7 +1758,12 @@ static void config_set_defaults(void) for (i = 0; i < MAX_USERS; i++) { settings->uints.input_joypad_map[i] = i; + #ifdef SWITCH + settings->uints.input_analog_dpad_mode[i] = ANALOG_DPAD_LSTICK; + #else settings->uints.input_analog_dpad_mode[i] = ANALOG_DPAD_NONE; + #endif + input_config_set_device(i, RETRO_DEVICE_JOYPAD); settings->uints.input_mouse_index[i] = 0; } @@ -1787,8 +1792,13 @@ static void config_set_defaults(void) *settings->paths.directory_playlist = '\0'; *settings->paths.directory_autoconfig = '\0'; #ifdef HAVE_MENU +#ifdef SWITCH + strcpy(settings->paths.directory_menu_content, "/switch"); + strcpy(settings->paths.directory_menu_config, "/switch"); +#else *settings->paths.directory_menu_content = '\0'; *settings->paths.directory_menu_config = '\0'; +#endif #endif *settings->paths.directory_video_shader = '\0'; *settings->paths.directory_video_filter = '\0'; @@ -3477,6 +3487,11 @@ success: static void parse_config_file(void) { +#ifdef SWITCH + if (config_load_file("./retroarch.cfg", + false, config_get_ptr())) + return; +#endif if (path_is_empty(RARCH_PATH_CONFIG)) { RARCH_LOG("[Config]: Loading default config.\n"); @@ -4007,7 +4022,11 @@ bool config_save_file(const char *path) snprintf(cfg, sizeof(cfg), "input_libretro_device_p%u", i + 1); config_set_int(conf, cfg, input_config_get_device(i)); snprintf(cfg, sizeof(cfg), "input_player%u_analog_dpad_mode", i + 1); + #ifdef SWITCH + config_set_int(conf, cfg, ANALOG_DPAD_LSTICK); + #else config_set_int(conf, cfg, settings->uints.input_analog_dpad_mode[i]); + #endif snprintf(cfg, sizeof(cfg), "input_player%u_mouse_index", i + 1); config_set_int(conf, cfg, settings->uints.input_mouse_index[i]); } -- GitLab From 3e9b5246cf7f70a01b36562816082b887f1ee1a0 Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 1 Jun 2018 17:49:02 +0200 Subject: [PATCH 050/211] Upped audio buffer count --- audio/drivers/switch_audio.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/audio/drivers/switch_audio.c b/audio/drivers/switch_audio.c index 929fff456d..f1706e8954 100644 --- a/audio/drivers/switch_audio.c +++ b/audio/drivers/switch_audio.c @@ -28,7 +28,7 @@ typedef struct bool is_paused; uint64_t last_append; unsigned latency; - AudioOutBuffer buffers[2]; + AudioOutBuffer buffers[5]; AudioOutBuffer *current_buffer; } switch_audio_t; @@ -166,7 +166,7 @@ static void switch_audio_free(void *data) audoutExit(); - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) free(swa->buffers[i].buffer); free(swa); @@ -221,7 +221,7 @@ static void *switch_audio_init(const char *device, } // Create Buffers - for (int i = 0; i < 2; i++) + for (int i = 0; i < 5; i++) { swa->buffers[i].next = NULL; swa->buffers[i].buffer = memalign(0x1000, switch_audio_buffer_size(NULL)); -- GitLab From 9d91ad65daeb342218ac86f8b3702579a78bd28b Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 1 Jun 2018 19:49:23 +0200 Subject: [PATCH 051/211] Feels better for me. Less cracking. --- audio/drivers/switch_audio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/audio/drivers/switch_audio.c b/audio/drivers/switch_audio.c index f1706e8954..f58087c023 100644 --- a/audio/drivers/switch_audio.c +++ b/audio/drivers/switch_audio.c @@ -34,7 +34,7 @@ typedef struct #define SAMPLERATE 48000 #define CHANNELCOUNT 2 -#define FRAMERATE (1000 / 200) +#define FRAMERATE 30 #define SAMPLECOUNT (SAMPLERATE / FRAMERATE) #define BYTESPERSAMPLE 2 -- GitLab From bda1fbe2655a6218789f1ddb51e14b93f1e5ad3a Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 1 Jun 2018 20:29:13 +0200 Subject: [PATCH 052/211] Overlaaaays --- gfx/drivers/switch_gfx.c | 118 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 109 insertions(+), 9 deletions(-) diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index 026e1f5d82..33e1a742e4 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -6,6 +6,7 @@ #include #include +#include "../../libretro-common/include/formats/image.h" #include #include @@ -99,7 +100,8 @@ typedef struct unsigned width, height; unsigned rotation; struct video_viewport vp; - + struct texture_image *overlay; + bool overlay_enabled; struct { bool enable; @@ -140,7 +142,7 @@ static void *switch_init(const video_info_t *video, //consoleInit(NULL); // This line is needed with the current gfx backend if you don't consoleInit - gfxSetMode(GfxMode_TiledDouble); + gfxSetMode(GfxMode_TiledSingle); // Needed, else its flipped and mirrored gfxSetDrawFlip(false); @@ -153,6 +155,8 @@ static void *switch_init(const video_info_t *video, sw->vp.y = 0; sw->vp.width = 1280; sw->vp.height = 720; + sw->overlay_enabled = false; + sw->overlay = NULL; sw->vp.full_width = 1280; sw->vp.full_height = 720; @@ -196,12 +200,27 @@ static bool switch_frame(void *data, const void *frame, centerx = (1280 - tgtw) / 2; centery = (720 - tgth) / 2; - // clear image to black - for (y = 0; y < 720; y++) + // Very simple, no overhead (we loop through them anyway!) + if (sw->overlay_enabled) + { + for (y = 0; y < 720; y++) + { + for (x = 0; x < 1280; x++) + { + sw->image[y * 1280 + x] = sw->overlay->pixels[y * 1280 + x]; + } + } + } + else { - for (x = 0; x < 1280; x++) + // clear image to black + // TODO: memset?? duh. + for (y = 0; y < 720; y++) { - sw->image[y * 1280 + x] = 0xFF000000; + for (x = 0; x < 1280; x++) + { + sw->image[y * 1280 + x] = 0xFF000000; + } } } @@ -288,8 +307,8 @@ static bool switch_frame(void *data, const void *frame, gfx_slow_swizzling_blit(out_buffer, sw->image, 1280, 720, 0, 0); gfxFlushBuffers(); gfxSwapBuffers(); - //if (sw->vsync) - // switch_wait_vsync(sw); + if (sw->vsync) + switch_wait_vsync(sw); last_frame = svcGetSystemTick(); @@ -430,6 +449,87 @@ static void switch_set_texture_enable(void *data, bool enable, bool full_screen) sw->menu_texture.fullscreen = full_screen; } +#ifdef HAVE_OVERLAY +static void switch_overlay_enable(void *data, bool state) +{ + switch_video_t *swa = (switch_video_t *)data; + + if (!swa) + return; +} + +static bool switch_overlay_load(void *data, + const void *image_data, unsigned num_images) +{ + switch_video_t *swa = (switch_video_t *)data; + + struct texture_image *images = (struct texture_image *)image_data; + + if (!swa) + return false; + + swa->overlay = images; + swa->overlay_enabled = true; + + return true; +} + +static void switch_overlay_tex_geom(void *data, + unsigned idx, float x, float y, float w, float h) +{ + switch_video_t *swa = (switch_video_t *)data; + + if (!swa) + return; +} + +static void switch_overlay_vertex_geom(void *data, + unsigned idx, float x, float y, float w, float h) +{ + switch_video_t *swa = (switch_video_t *)data; + + if (!swa) + return; +} + +static void switch_overlay_full_screen(void *data, bool enable) +{ + switch_video_t *swa = (switch_video_t *)data; +} + +static void switch_overlay_set_alpha(void *data, unsigned idx, float mod) +{ + switch_video_t *swa = (switch_video_t *)data; + + if (!swa) + return; +} + +static const video_overlay_interface_t switch_overlay = { + switch_overlay_enable, + switch_overlay_load, + switch_overlay_tex_geom, + switch_overlay_vertex_geom, + switch_overlay_full_screen, + switch_overlay_set_alpha, +}; + +void switch_overlay_interface(void *data, const video_overlay_interface_t **iface) +{ + switch_video_t *swa = (switch_video_t *)data; + if (!swa) + return; + *iface = &switch_overlay; + + switch_video_t *sw = data; + if (!sw) + { + return; + } +} + +#endif + static const video_poke_interface_t switch_poke_interface = { NULL, /* get_flags */ NULL, /* set_coords */ @@ -480,7 +580,7 @@ video_driver_t video_switch = { switch_read_viewport, NULL, /* read_frame_raw */ #ifdef HAVE_OVERLAY - NULL, /* overlay_interface */ + switch_overlay_interface, /* overlay_interface */ #endif switch_get_poke_interface, }; -- GitLab From 1160e711b76ded015ad69ae007480a7f61d82b15 Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 1 Jun 2018 21:11:56 +0200 Subject: [PATCH 053/211] Optimize config. --- retroarch.cfg | 3653 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 2798 insertions(+), 855 deletions(-) diff --git a/retroarch.cfg b/retroarch.cfg index b399933a2f..03d1ad4f08 100644 --- a/retroarch.cfg +++ b/retroarch.cfg @@ -1,855 +1,2798 @@ -## Skeleton config file for RetroArch - -# Save all save files (*.srm) to this directory. This includes related files like .bsv, .rtc, .psrm, etc ... -# This will be overridden by explicit command line options. -# savefile_directory = - -# Save all save states (*.state) to this directory. -# This will be overridden by explicit command line options. -# savestate_directory = - -# If set to a directory, content which is temporarily extracted -# will be extracted to this directory. -# cache_directory = - -# Save all downloaded files to this directory. -# core_assets_directory = - -# Save all remapped controls to this directory. -# input_remapping_directory = - -# Save all playlists/collections to this directory. -# playlist_directory = - -# If set to a directory, the content history playlist will be saved -# to this directory. -# content_history_dir = - -# Saved queries are stored to this directory. -# cursor_directory = - -# Automatically saves a savestate at the end of RetroArch's lifetime. -# The path is $SRAM_PATH.auto. -# RetroArch will automatically load any savestate with this path on startup if savestate_auto_load is set. -# savestate_auto_save = false -# savestate_auto_load = true - -# Load libretro from a dynamic location for dynamically built RetroArch. -# This option is mandatory. - -# Path to a libretro implementation. -# libretro_path = "/path/to/libretro.so" - -# A directory for where to search for libretro core implementations. -# libretro_directory = - -# A directory for where to search for libretro core information. -# libretro_info_path = - -# Sets log level for libretro cores (GET_LOG_INTERFACE). -# If a log level issued by a libretro core is below libretro_log_level, it is ignored. -# DEBUG logs are always ignored unless verbose mode is activated (--verbose). -# DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3. -# libretro_log_level = 0 - -# Enable or disable verbosity level of frontend. -# log_verbosity = false - -# If this option is enabled, every content file loaded in RetroArch will be -# automatically added to a history list. -# history_list_enable = true - -# Enable performance counters -# perfcnt_enable = false - -# Path to core options config file. -# This config file is used to expose core-specific options. -# It will be written to by RetroArch. -# A default path will be assigned if not set. -# core_options_path = - -# Path to content history file. -# RetroArch keeps track of all content loaded in the menu and from CLI directly for convenient quick loading. -# A default path will be assigned if not set. -# content_history_path = - -# Path to music content history file (optional). -# RetroArch keeps track of all music content loaded in the menu and from CLI directly for convenient quick loading. -# A default path will be assigned if not set. -# content_music_history_path = - -# Path to image content history file (optional). -# RetroArch keeps track of all image content loaded in the menu and from CLI directly for convenient quick loading. -# A default path will be assigned if not set. -# content_image_history_path = - -# Path to video content history file (optional). -# RetroArch keeps track of all video content loaded in the menu and from CLI directly for convenient quick loading. -# A default path will be assigned if not set. -# content_video_history_path = - -# Number of entries that will be kept in content history file. -# content_history_size = 100 - -# Sets the "system" directory. -# Implementations can query for this directory to load BIOSes, system-specific configs, etc. -# system_directory = - -# Sets start directory for menu file browser. -# rgui_browser_directory = - -# Content directory. Interacts with RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY. -# Usually set by developers who bundle libretro/RetroArch apps to point to assets. -# content_directory = - -# Assets directory. This location is queried by default when menu interfaces try to look for -# loadable assets, etc. -# assets_directory = - -# Dynamic wallpapers directory. The place to store the wallpapers dynamically -# loaded by the menu depending on context. -# dynamic_wallpapers_directory = - -# Thumbnails directory. To store thumbnail files. -# thumbnails_directory = - -# Sets start directory for menu config browser. -# rgui_config_directory = - -# Show startup screen in menu. -# Is automatically set to false when seen for the first time. -# This is only updated in config if config_save_on_exit is set to true, however. -# rgui_show_start_screen = true - -# Flushes config to disk on exit. Useful for menu as settings can be modified. -# Overwrites the config. #include's and comments are not preserved. -# config_save_on_exit = true - -# Shows hidden files and folders in directory listings. -# show_hidden_files = false - -#### Video - -# Video driver to use. "gl", "xvideo", "sdl", "d3d" -# video_driver = "gl" - -# Which context implementation to use. -# Possible ones for desktop are: glx, x-egl, kms-egl, sdl-gl, wgl. -# By default, tries to use first suitable driver. -# video_context_driver = - -# Windowed x resolution scale and y resolution scale -# (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale) -# video_scale = 3.0 - -# Fullscreen resolution. Resolution of 0 uses the resolution of the desktop. -# video_fullscreen_x = 0 -# video_fullscreen_y = 0 - -# Start in fullscreen. Can be changed at runtime. -# video_fullscreen = false - -# If fullscreen, prefer using a windowed fullscreen mode. -# video_windowed_fullscreen = true - -# Percentage of opacity to use for the window (100 is completely opaque). -# video_window_opacity = 100 - -# Whether to enable the default window decorations like border, titlebar etc. -# video_window_show_decorations = true - -# Which monitor to prefer. 0 (default) means no particular monitor is preferred, 1 and up (1 being first monitor), -# suggests RetroArch to use that particular monitor. -# video_monitor_index = 0 - -# Forcibly disable composition. Only works in Windows Vista/7 for now. -# video_disable_composition = false - -# Video vsync. -# video_vsync = true - -# Interval at which a Vsync swap is performed. -# 1 is normal, 2 is doubled frames, 3 is tripled frames, etc. -# video_swap_interval = 1 - -# Max amount of swapchain images. -# Single buffering = 1, Double buffering = 2, 3 = Triple buffering -# video_max_swapchain_images = 3 - -# Forcibly disable sRGB FBO support. Some Intel OpenGL drivers on Windows -# have video problems with sRGB FBO support enabled. -# video_force_srgb_disable = false - -# Attempts to hard-synchronize CPU and GPU. Can reduce latency at cost of performance. -# video_hard_sync = false - -# Sets how many frames CPU can run ahead of GPU when using video_hard_sync. -# Maximum is 3. -# video_hard_sync_frames = 0 - -# Sets how many milliseconds to delay after VSync before running the core. -# Can reduce latency at cost of higher risk of stuttering. -# Maximum is 15. -# video_frame_delay = 0 - -# Inserts a black frame inbetween frames. -# Useful for 120 Hz monitors who want to play 60 Hz material with eliminated ghosting. -# video_refresh_rate should still be configured as if it is a 60 Hz monitor (divide refresh rate by 2). -# video_black_frame_insertion = false - -# Use threaded video driver. Using this might improve performance at possible cost of latency and more video stuttering. -# video_threaded = false - -# Use a shared context for HW rendered libretro cores. -# Avoids having to assume HW state changes inbetween frames. -# video_shared_context = false - -# Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders. -# video_smooth = true - -# Forces rendering area to stay equal to content aspect ratio or as defined in video_aspect_ratio. -# video_force_aspect = true - -# Only scales video in integer steps. -# The base size depends on system-reported geometry and aspect ratio. -# If video_force_aspect is not set, X/Y will be integer scaled independently. -# video_scale_integer = false - -# Index of the aspect ratio selection in the menu. -# 19 = Config, 20 = 1:1 PAR, 21 = Core Provided, 22 = Custom Aspect Ratio -# aspect_ratio_index = 19 - -# A floating point value for video aspect ratio (width / height). -# If this is not set, aspect ratio is assumed to be automatic. -# Behavior then is defined by video_aspect_ratio_auto. -# video_aspect_ratio = - -# If this is true and video_aspect_ratio is not set, -# aspect ratio is decided by libretro implementation. -# If this is false, 1:1 PAR will always be assumed if video_aspect_ratio is not set. -# video_aspect_ratio_auto = false - -# Forces cropping of overscanned frames. -# Exact behavior of this option is implementation specific. -# video_crop_overscan = true - -# Path to shader. Shader can be either Cg, CGP (Cg preset) or GLSL, GLSLP (GLSL preset) -# video_shader = "/path/to/shader.{cg,cgp,glsl,glslp}" - -# Load video_shader on startup. -# Other shaders can still be loaded later in runtime. -# video_shader_enable = false - -# Defines a directory where shaders (Cg, CGP, GLSL) are kept for easy access. -# video_shader_dir = - -# CPU-based video filter. Path to a dynamic library. -# video_filter = - -# Defines a directory where CPU-based video filters are kept. -# video_filter_dir = - -# Path to a font used for rendering messages. This path must be defined to enable fonts. -# Do note that the _full_ path of the font is necessary! -# video_font_path = - -# Size of the font rendered in points. -# video_font_size = 32 - -# Enable usage of OSD messages. -# video_font_enable = true - -# Offset for where messages will be placed on screen. Values are in range 0.0 to 1.0 for both x and y values. -# [0.0, 0.0] maps to the lower left corner of the screen. -# video_message_pos_x = 0.05 -# video_message_pos_y = 0.05 - -# Color for message. The value is treated as a hexadecimal value. -# It is a regular RGB hex number, i.e. red is "ff0000". -# video_message_color = ffffff - -# Background color for OSD messages. Red/Green/Blue values are from 0 to 255 and opacity is 0.0 to 1.0. -video_message_bgcolor_enable = false -video_message_bgcolor_red = 0 -video_message_bgcolor_green = 0 -video_message_bgcolor_blue = 0 -video_message_bgcolor_opacity = 1.0 - -# Video refresh rate of your monitor. -# Used to calculate a suitable audio input rate. -# video_refresh_rate = 59.94 - -# Allows libretro cores to set rotation modes. -# Setting this to false will honor, but ignore this request. -# This is useful for vertically oriented content where one manually rotates the monitor. -# video_allow_rotate = true - -# Forces a certain rotation of the screen. -# The rotation is added to rotations which the libretro core sets (see video_allow_rotate). -# The angle is * 90 degrees counter-clockwise. -# video_rotation = 0 - -#### Audio - -# Enable audio. -# audio_enable = true - -# Mutes audio. -# audio_mute_enable = false - -# Mutes audio mixer volume globally. -# audio_mixer_mute_enable = false - -# Audio output samplerate. -# audio_out_rate = 48000 - -# Audio resampler backend. Which audio resampler to use. -# Default will use "sinc". -# audio_resampler = - -# Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio. -# audio_driver = - -# Override the default audio device the audio_driver uses. This is driver dependant. E.g. ALSA wants a PCM device, OSS wants a path (e.g. /dev/dsp), Jack wants portnames (e.g. system:playback1,system:playback_2), and so on ... -# audio_device = - -# Audio DSP plugin that processes audio before it's sent to the driver. Path to a dynamic library. -# audio_dsp_plugin = - -# Directory where DSP plugins are kept. -# audio_filter_dir = - -# Will sync (block) on audio. Recommended. -# audio_sync = true - -# Desired audio latency in milliseconds. Might not be honored if driver can't provide given latency. -# audio_latency = 64 - -# Enable audio rate control. -# audio_rate_control = true - -# Controls audio rate control delta. Defines how much input rate can be adjusted dynamically. -# Input rate = in_rate * (1.0 +/- audio_rate_control_delta) -# audio_rate_control_delta = 0.005 - -# Controls maximum audio timing skew. Defines the maximum change in input rate. -# Input rate = in_rate * (1.0 +/- max_timing_skew) -# audio_max_timing_skew = 0.05 - -# Audio volume. Volume is expressed in dB. -# 0 dB is normal volume. No gain will be applied. -# Gain can be controlled in runtime with input_volume_up/input_volume_down. -# audio_volume = 0.0 - -# Audio mixer volume. Volume is expressed in dB. -# 0 dB is normal volume. No gain will be applied. -# audio_mixer_volume = 0.0 - -#### Overlay - -# Defines a directory where overlays are kept for easy access. -# overlay_directory = - -# Enable the overlay. -# input_overlay_enable = true - -# Hide the current overlay from appearing inside the menu. -# input_overlay_hide_in_menu = true - -# Path to input overlay. -# input_overlay = - -# Opacity of all the UI elements of the overlay. -# input_overlay_opacity = 1.0 - -# Scale of all UI elements of the overlay. -# input_overlay_scale = 1.0 - -#### Input - -# Input driver. Depending on video driver, it might force a different input driver. -# input_driver = sdl - -# Joypad driver. (Valid: linuxraw, sdl, dinput) -# input_joypad_driver = - -# Path to input remapping file. -# input_remapping_path = - -# Input bind timer timeout. -# Amount of seconds to wait until proceeding to the next bind. Default: 5, minimum: 1 -# input_bind_timeout = 1 - -# If enabled, overrides the input binds with the remapped binds set for the current core. -# input_remap_binds_enable = true - -# Maximum amount of users supported by RetroArch. -# input_max_users = 16 - -# Keyboard layout for input driver if applicable (udev/evdev for now). -# Syntax is either just layout (e.g. "no"), or a layout and variant separated with colon ("no:nodeadkeys"). -# input_keyboard_layout = - -# Defines axis threshold. Possible values are [0.0, 1.0] -# input_axis_threshold = 0.5 - -# Enable input auto-detection. Will attempt to autoconfigure -# joypads, Plug-and-Play style. -# input_autodetect_enable = true - -# Show the input descriptors set by the core instead of the -# default ones. -# input_descriptor_label_show = true - -# Hide input descriptors that were not set by the core. -# input_descriptor_hide_unbound = false - -# Influence how input polling is done inside RetroArch. -# 0 : Early - Input polling is performed before call to retro_run. -# 1 : Normal - Input polling is performed when retro_input_poll is -# requested. -# 2 : Late - Input polling is performed on first call to retro_input_state -# per frame -# -# Setting it to 0 or 2 can result in less latency depending on -# your configuration. -# -# When netplay is enabled, the default polling behavior (1) will -# be used regardless of the value set here. -# input_poll_type_behavior = 1 - -# Directory for joypad autoconfigs. -# If a joypad is plugged in, that joypad will be autoconfigured if a config file -# corresponding to that joypad is present in joypad_autoconfig_dir. -# Input binds which are made explicit (input_playerN_*_btn/axis) will take priority over autoconfigs. -# Autoconfigs can be created with retroarch-joyconfig, manually, or with a frontend. -# Requires input_autodetect_enable to be enabled. -# joypad_autoconfig_dir = - -# Sets which libretro device is used for a user. -# Devices are indentified with a number. -# This is normally saved by the menu. -# Device IDs are found in libretro.h. -# These settings are overridden by explicit command-line arguments which refer to input devices. -# None: 0 -# Joypad (RetroPad): 1 -# Mouse: 2 -# Keyboard: 3 -# Generic Lightgun: 4 -# Joypad w/ Analog (RetroPad + Analog sticks): 5 -# Multitap (SNES specific): 257 -# Super Scope (SNES specific): 260 -# Justifier (SNES specific): 516 -# Justifiers (SNES specific): 772 - -# input_libretro_device_p1 = -# input_libretro_device_p2 = -# input_libretro_device_p3 = -# input_libretro_device_p4 = -# input_libretro_device_p5 = -# input_libretro_device_p6 = -# input_libretro_device_p7 = -# input_libretro_device_p8 = - -# Keyboard input. Will recognize letters ("a" to "z") and the following special keys (where "kp_" -# is for keypad keys): -# -# left, right, up, down, enter, kp_enter, tab, insert, del, end, home, -# rshift, shift, ctrl, alt, space, escape, add, subtract, kp_plus, kp_minus, -# f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, -# num0, num1, num2, num3, num4, num5, num6, num7, num8, num9, pageup, pagedown, -# keypad0, keypad1, keypad2, keypad3, keypad4, keypad5, keypad6, keypad7, keypad8, keypad9, -# period, capslock, numlock, backspace, multiply, divide, print_screen, scroll_lock, -# tilde, backquote, pause, quote, comma, minus, slash, semicolon, equals, leftbracket, -# backslash, rightbracket, kp_period, kp_equals, rctrl, ralt -# -# Keyboard input, Joypad and Joyaxis will all obey the "nul" bind, which disables the bind completely, -# rather than relying on a default. -# input_player1_a = "x" -# input_player1_b = "z" -# input_player1_y = "a" -# input_player1_x = "s" -# input_player1_start = "enter" -# input_player1_select = "rshift" -# input_player1_l = "q" -# input_player1_r = "w" -# input_player1_left = "left" -# input_player1_right = "right" -# input_player1_up = "up" -# input_player1_down = "down" -# input_player1_l2 = -# input_player1_r2 = -# input_player1_l3 = -# input_player1_r3 = - -# Two analog sticks (DualShock-esque). -# Bound as usual, however, if a real analog axis is bound, -# it can be read as a true analog. -# Positive X axis is right, Positive Y axis is down. -# input_player1_l_x_plus = -# input_player1_l_x_minus = -# input_player1_l_y_plus = -# input_player1_l_y_minus = -# input_player1_r_x_plus = -# input_player1_r_x_minus = -# input_player1_r_y_plus = -# input_player1_r_y_minus = - -# If desired, it is possible to override which joypads are being used for user 1 through 8. -# First joypad available is 0. -# input_player1_joypad_index = 0 -# input_player2_joypad_index = 1 -# input_player3_joypad_index = 2 -# input_player4_joypad_index = 3 -# input_player5_joypad_index = 4 -# input_player6_joypad_index = 5 -# input_player7_joypad_index = 6 -# input_player8_joypad_index = 7 - -# Input device buttons. -# Figure these out by using RetroArch-Phoenix or retroarch-joyconfig. -# You can use joypad hats with hnxx, where n is the hat, and xx is a string representing direction. -# E.g. "h0up" -# input_player1_a_btn = -# input_player1_b_btn = -# input_player1_y_btn = -# input_player1_x_btn = -# input_player1_start_btn = -# input_player1_select_btn = -# input_player1_l_btn = -# input_player1_r_btn = -# input_player1_left_btn = -# input_player1_right_btn = -# input_player1_up_btn = -# input_player1_down_btn = -# input_player1_l2_btn = -# input_player1_r2_btn = -# input_player1_l3_btn = -# input_player1_r3_btn = - -# Menu buttons. -# menu_search_btn = -# menu_info_btn = -# menu_default_btn = -# menu_scroll_down_btn = -# menu_scroll_up_btn = - -# Swap buttons for OK/Cancel -# menu_swap_ok_cancel_buttons = false - -# Axis for RetroArch D-Pad. -# Needs to be either '+' or '-' in the first character signaling either positive or negative direction of the axis, then the axis number. -# Do note that every other input option has the corresponding _btn and _axis binds as well; they are omitted here for clarity. -# input_player1_left_axis = -# input_player1_right_axis = -# input_player1_up_axis = -# input_player1_down_axis = - -# Holding the turbo while pressing another button will let the button enter a turbo mode -# where the button state is modulated with a periodic signal. -# The modulation stops when the button itself (not turbo button) is released. -# input_player1_turbo = - -# Describes the period and how long of that period a turbo-enabled button should behave. -# Numbers are described in frames. -# input_turbo_period = 6 -# input_turbo_duty_cycle = 3 - -# This goes all the way to user 8 (*_player2_*, *_player3_*, etc), but omitted for clarity. -# All input binds have corresponding binds for keyboard (none), joykeys (_btn) and joyaxes (_axis) as well. - -# Toggles fullscreen. -# input_toggle_fullscreen = f - -# Saves state. -# input_save_state = f2 -# Loads state. -# input_load_state = f4 - -# State slots. With slot set to 0, save state name is *.state (or whatever defined on commandline). -# When slot is != 0, path will be $path%d, where %d is slot number. -# input_state_slot_increase = f7 -# input_state_slot_decrease = f6 - -# Toggles between fast-forwarding and normal speed. -# input_toggle_fast_forward = space - -# Hold for fast-forward. Releasing button disables fast-forward. -# input_hold_fast_forward = l - -# Key to exit RetroArch cleanly. -# Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc. -# On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization. -# input_exit_emulator = escape - - -# Applies next and previous shader in directory. -# input_shader_next = m -# input_shader_prev = n - -# Hold button down to rewind. Rewinding must be enabled. -# input_rewind = r - -# Toggle between recording and not. -# input_movie_record_toggle = o - -# Toggle between paused and non-paused state -# input_pause_toggle = p - -# Frame advance when content is paused -# input_frame_advance = k - -# Reset the content. -# input_reset = h - -# Cheats. -# input_cheat_index_plus = y -# input_cheat_index_minus = t -# input_cheat_toggle = u - -# Mute/unmute audio -# input_audio_mute = f9 - -# Take screenshot -# input_screenshot = f8 - -# Netplay flip users. -# input_netplay_flip_players = i - -# Hold for slowmotion. -# input_slowmotion = e - -# Enable other hotkeys. -# If this hotkey is bound to either keyboard, joybutton or joyaxis, -# all other hotkeys will be disabled unless this hotkey is also held at the same time. -# This is useful for RETRO_KEYBOARD centric implementations -# which query a large area of the keyboard, where it is not desirable -# that hotkeys get in the way. - -# Alternatively, all hotkeys for keyboard could be disabled by the user. -# input_enable_hotkey_btn = - -# Increases audio volume. -# input_volume_up = kp_plus -# Decreases audio volume. -# input_volume_down = kp_minus - -# Toggles to next overlay. Wraps around. -# input_overlay_next = - -# Toggles eject for disks. Used for multiple-disk content. -# input_disk_eject_toggle = - -# Cycles through disk images. Use after ejecting. -# Complete by toggling eject again. -# input_disk_next = - -# Toggles menu. -# input_menu_toggle = f1 - -# RetroPad button combination to toggle menu -# 0 = none, 1 = L + R + Y + D-Pad Down, 2 = L3 + R3, 3 = Start + Select -# input_menu_toggle_gamepad_combo = 0 - -# allow any RetroPad to control the menu -# all_users_control_menu = false - -# Toggles mouse grab. When mouse is grabbed, RetroArch hides the mouse, -# and keeps the mouse pointer inside the window to allow relative mouse input -# to work better. -# input_grab_mouse_toggle = f11 - -#### Menu - -# Menu driver to use. "rgui", "lakka", etc. -# menu_driver = "rgui" - -# If disabled, will hide 'Online Updater' inside the menu. -# menu_show_online_updater = true - -# If disabled, will hide the ability to update cores (and core info files) inside the menu. -# menu_show_core_updater = true - -# If disabled, the libretro core will keep running in the background when we -# are in the menu. -# menu_pause_libretro = false - -# If disabled, we use separate controls for menu operation. -# menu_unified_controls = false - -# Enable mouse controls inside the menu. -# menu_mouse_enable = false - -# Enable touch controls inside the menu. -# menu_pointer_enable = false - -# Shows current date and/or time inside menu. -# menu_timedate_enable = true - -# Shows current battery level inside menu. -# menu_battery_level_enable = true - -# Shows current core inside menu. -# menu_core_enable = true - -# Path to an image to set as menu wallpaper. -# menu_wallpaper = - -# Dynamically load a new wallpaper depending on context. -# menu_dynamic_wallpaper_enable = false - -# Type of thumbnail to display. 0 = none, 1 = snaps, 2 = titles, 3 = boxarts -# menu_thumbnails = 0 -# menu_left_thumbnails = 0 - -# Wrap-around to beginning and/or end if boundary of list is reached horizontally or vertically. -# menu_navigation_wraparound_enable = false - -# Filter files being shown in filebrowser by supported extensions. -# menu_navigation_browser_filter_supported_extensions_enable = true - -# Collapse subgroup settings into main group to create one big listing of settings -# per category. -# menu_collapse_subgroups_enable = false - -#### Core -# -# Prevent libretro cores from closing RetroArch on exit by loading a dummy core. -# load_dummy_on_core_shutdown = "true" - -# Check for firmware requirement(s) before loading a content. -# check_firmware_before_loading = "false" - -#### User Interface - -# Suspends the screensaver if set to true. Is a hint that does not necessarily have to be honored -# by video driver. -# suspend_screensaver_enable = true - -# Start UI companion driver's interface on boot (if available). -# ui_companion_start_on_boot = true - -# Toggle companion UI on startup (currently only used to show the WIMP UI) -# ui_companion_toggle = false - -# Only init the WIMP UI for this session if this is enabled -# desktop_menu_enable = true - -#### Camera - -# Override the default camera device the camera driver uses. This is driver dependant. -# camera_device = - -# Override the default privacy permission for cores that want to access camera services. Is "false" by default. -# camera_allow = false - -#### Location - -# Override the default privacy permission for cores that want to access location services. Is "false" by default. -# location_allow = false - -#### Core Updater - -# URL to core update directory on buildbot. -# core_updater_buildbot_url = "http://buildbot.libretro.com" - -# URL to assets update directory on buildbot. -# core_updater_buildbot_assets_url = "http://buildbot.libretro.com/assets/" - -# After downloading, automatically extract archives that the downloads are contained inside. -# core_updater_auto_extract_archive = true - -#### Network - -# When being client over netplay, use keybinds for user 1. -# netplay_client_swap_input = false - -# The username of the person running RetroArch. This will be used for playing online, for instance. -# netplay_nickname = - -# The amount of delay frames to use for netplay. Increasing this value will increase -# performance, but introduce more latency. -# netplay_delay_frames = 0 - -# Netplay mode for the current user. -# false is Server, true is Client. -# netplay_mode = false - -# Enable or disable spectator mode for the user during netplay. -# netplay_spectator_mode_enable = false - -# The IP Address of the host to connect to. -# netplay_ip_address = - -# The port of the host IP Address. Can be either a TCP or UDP port. -# netplay_ip_port = 55435 - -# Force game hosting to go through a man-in-the-middle server to get around firewalls and NAT/UPnP problems. -# netplay_use_mitm_server = false - -# The requested MITM server to use. -# netplay_mitm_server = "nyc" - -#### Misc - -# Enable rewinding. This will take a performance hit when playing, so it is disabled by default. -# rewind_enable = false - -# Rewinding buffer size in megabytes. Bigger rewinding buffer means you can rewind longer. -# The buffer should be approx. 20MB per minute of buffer time. -# rewind_buffer_size = 20 - -# Rewind granularity. When rewinding defined number of frames, you can rewind several frames at a time, increasing the rewinding speed. -# rewind_granularity = 1 - -# Pause gameplay when window focus is lost. -# pause_nonactive = true - -# Autosaves the non-volatile SRAM at a regular interval. This is disabled by default unless set otherwise. -# The interval is measured in seconds. A value of 0 disables autosave. -# autosave_interval = - -# Path to content database directory. -# content_database_path = - -# Path to cheat database directory. -# cheat_database_path = - -# Directory to dump screenshots to. -# screenshot_directory = - -# Records video after CPU video filter. -# video_post_filter_record = false - -# Records output of GPU shaded material if available. -# video_gpu_record = false - -# Screenshots output of GPU shaded material if available. -# video_gpu_screenshot = true - -# Watch content shader files for changes and auto-apply as necessary. -# video_shader_watch_files = false - -# Block SRAM from being overwritten when loading save states. -# Might potentially lead to buggy games. -# block_sram_overwrite = false - -# When saving a savestate, save state index is automatically increased before -# it is saved. -# Also, when loading content, the index will be set to the highest existing index. -# There is no upper bound on the index. -# savestate_auto_index = false - -# Slowmotion ratio. When slowmotion, content will slow down by factor. -# slowmotion_ratio = 3.0 - -# The maximum rate at which content will be run when using fast forward. (E.g. 5.0 for 60 fps content => 300 fps cap). -# RetroArch will go to sleep to ensure that the maximum rate will not be exceeded. -# Do not rely on this cap to be perfectly accurate. -# If this is set at 0, then fastforward ratio is unlimited (no FPS cap) -# fastforward_ratio = 0.0 - -# Enable stdin/network command interface. -# network_cmd_enable = false -# network_cmd_port = 55355 -# stdin_cmd_enable = false +core_updater_buildbot_assets_url = "http://buildbot.libretro.com/assets/" +input_overlay = "./NintendoSNES.cfg" +screenshot_directory = "default" +system_directory = "default" +video_shader_dir = "default" +video_filter_dir = "default" +core_assets_directory = "default" +assets_directory = "default" +dynamic_wallpapers_directory = "default" +thumbnails_directory = "default" +playlist_directory = "default" +audio_filter_dir = "default" +savefile_directory = "default" +savestate_directory = "default" +rgui_browser_directory = "/switch" +rgui_config_directory = "/switch" +video_driver = "switch" +record_driver = "null" +camera_driver = "null" +wifi_driver = "null" +location_driver = "null" +menu_driver = "rgui" +audio_driver = "switch" +audio_resampler = "sinc" +input_driver = "switch" +input_joypad_driver = "switch" +led_driver = "null" +netplay_mitm_server = "nyc" +video_aspect_ratio = "-1.000000" +video_scale = "3.000000" +video_refresh_rate = "59.940060" +audio_rate_control_delta = "0.005000" +audio_max_timing_skew = "0.050000" +audio_volume = "0.000000" +audio_mixer_volume = "0.000000" +menu_wallpaper_opacity = "0.300000" +menu_framebuffer_opacity = "0.900000" +menu_footer_opacity = "1.000000" +menu_header_opacity = "1.000000" +video_message_pos_x = "0.050000" +video_message_pos_y = "0.050000" +video_font_size = "32.000000" +fastforward_ratio = "0.000000" +slowmotion_ratio = "3.000000" +input_axis_threshold = "0.500000" +video_msg_bgcolor_opacity = "1.000000" +state_slot = "0" +input_bind_timeout = "5" +input_turbo_period = "6" +input_duty_cycle = "3" +input_max_users = "5" +input_menu_toggle_gamepad_combo = "2" +audio_latency = "64" +audio_resampler_quality = "3" +audio_block_frames = "0" +rewind_granularity = "1" +autosave_interval = "0" +libretro_log_level = "1" +keyboard_gamepad_mapping_type = "1" +input_poll_type_behavior = "2" +video_monitor_index = "0" +video_fullscreen_x = "0" +video_fullscreen_y = "0" +video_window_x = "0" +video_window_y = "0" +video_window_opacity = "100" +dpi_override_value = "200" +menu_thumbnails = "3" +materialui_menu_color_theme = "0" +menu_shader_pipeline = "2" +audio_out_rate = "48000" +custom_viewport_width = "1280" +crt_switch_resolution_super = "2560" +custom_viewport_height = "720" +custom_viewport_x = "0" +custom_viewport_y = "0" +content_history_size = "100" +video_hard_sync_frames = "0" +video_frame_delay = "0" +video_max_swapchain_images = "3" +video_swap_interval = "1" +video_rotation = "0" +aspect_ratio_index = "21" +bundle_assets_extract_version_current = "0" +bundle_assets_extract_last_version = "0" +input_overlay_show_physical_inputs_port = "0" +video_msg_bgcolor_red = "0" +video_msg_bgcolor_green = "0" +video_msg_bgcolor_blue = "0" +run_ahead_frames = "1" +input_device_p1 = "0" +input_player1_joypad_index = "0" +input_libretro_device_p1 = "1" +input_player1_analog_dpad_mode = "1" +input_player1_mouse_index = "0" +input_device_p2 = "0" +input_player2_joypad_index = "1" +input_libretro_device_p2 = "1" +input_player2_analog_dpad_mode = "0" +input_player2_mouse_index = "0" +input_device_p3 = "0" +input_player3_joypad_index = "2" +input_libretro_device_p3 = "1" +input_player3_analog_dpad_mode = "0" +input_player3_mouse_index = "0" +input_device_p4 = "0" +input_player4_joypad_index = "3" +input_libretro_device_p4 = "1" +input_player4_analog_dpad_mode = "0" +input_player4_mouse_index = "0" +input_device_p5 = "0" +input_player5_joypad_index = "4" +input_libretro_device_p5 = "1" +input_player5_analog_dpad_mode = "0" +input_player5_mouse_index = "0" +input_device_p6 = "0" +input_player6_joypad_index = "5" +input_libretro_device_p6 = "1" +input_player6_analog_dpad_mode = "0" +input_player6_mouse_index = "0" +input_device_p7 = "0" +input_player7_joypad_index = "6" +input_libretro_device_p7 = "1" +input_player7_analog_dpad_mode = "0" +input_player7_mouse_index = "0" +input_device_p8 = "0" +input_player8_joypad_index = "7" +input_libretro_device_p8 = "1" +input_player8_analog_dpad_mode = "0" +input_player8_mouse_index = "0" +input_device_p9 = "0" +input_player9_joypad_index = "8" +input_libretro_device_p9 = "1" +input_player9_analog_dpad_mode = "0" +input_player9_mouse_index = "0" +input_device_p10 = "0" +input_player10_joypad_index = "9" +input_libretro_device_p10 = "1" +input_player10_analog_dpad_mode = "0" +input_player10_mouse_index = "0" +input_device_p11 = "0" +input_player11_joypad_index = "10" +input_libretro_device_p11 = "1" +input_player11_analog_dpad_mode = "0" +input_player11_mouse_index = "0" +input_device_p12 = "0" +input_player12_joypad_index = "11" +input_libretro_device_p12 = "1" +input_player12_analog_dpad_mode = "0" +input_player12_mouse_index = "0" +input_device_p13 = "0" +input_player13_joypad_index = "12" +input_libretro_device_p13 = "1" +input_player13_analog_dpad_mode = "0" +input_player13_mouse_index = "0" +input_device_p14 = "0" +input_player14_joypad_index = "13" +input_libretro_device_p14 = "1" +input_player14_analog_dpad_mode = "0" +input_player14_mouse_index = "0" +input_device_p15 = "0" +input_player15_joypad_index = "14" +input_libretro_device_p15 = "1" +input_player15_analog_dpad_mode = "0" +input_player15_mouse_index = "0" +input_device_p16 = "0" +input_player16_joypad_index = "15" +input_libretro_device_p16 = "1" +input_player16_analog_dpad_mode = "0" +input_player16_mouse_index = "0" +automatically_add_content_to_playlist = "false" +ui_companion_start_on_boot = "true" +ui_companion_enable = "false" +ui_companion_toggle = "false" +desktop_menu_enable = "false" +video_gpu_record = "false" +input_remap_binds_enable = "true" +all_users_control_menu = "false" +menu_swap_ok_cancel_buttons = "false" +input_descriptor_label_show = "true" +input_descriptor_hide_unbound = "false" +load_dummy_on_core_shutdown = "true" +check_firmware_before_loading = "false" +builtin_mediaplayer_enable = "false" +builtin_imageviewer_enable = "true" +fps_show = "false" +statistics_show = "false" +framecount_show = "true" +ui_menubar_enable = "true" +suspend_screensaver_enable = "true" +rewind_enable = "false" +run_ahead_enabled = "false" +run_ahead_secondary_instance = "false" +run_ahead_hide_warnings = "false" +audio_sync = "true" +video_shader_enable = "false" +video_shader_watch_files = "false" +video_aspect_ratio_auto = "false" +video_allow_rotate = "true" +video_windowed_fullscreen = "true" +video_crop_overscan = "true" +video_scale_integer = "false" +video_smooth = "false" +video_force_aspect = "false" +video_threaded = "false" +video_shared_context = "false" +auto_screenshot_filename = "true" +video_force_srgb_disable = "false" +video_fullscreen = "false" +bundle_assets_extract_enable = "false" +video_vsync = "false" +video_hard_sync = "false" +video_black_frame_insertion = "false" +crt_switch_resolution = "false" +video_disable_composition = "false" +pause_nonactive = "true" +video_gpu_screenshot = "true" +video_post_filter_record = "false" +keyboard_gamepad_enable = "true" +core_set_supports_no_game_enable = "true" +audio_enable = "true" +audio_enable_menu = "false" +audio_mute_enable = "false" +audio_mixer_mute_enable = "false" +location_allow = "false" +video_font_enable = "true" +core_updater_auto_extract_archive = "true" +camera_allow = "false" +menu_unified_controls = "false" +menu_throttle_framerate = "true" +menu_linear_filter = "true" +menu_horizontal_animation = "true" +dpi_override_enable = "false" +menu_pause_libretro = "true" +menu_mouse_enable = "false" +menu_pointer_enable = "false" +menu_timedate_enable = "true" +menu_battery_level_enable = "true" +menu_core_enable = "true" +menu_dynamic_wallpaper_enable = "false" +quick_menu_show_take_screenshot = "true" +quick_menu_show_save_load_state = "true" +quick_menu_show_undo_save_load_state = "true" +quick_menu_show_add_to_favorites = "true" +quick_menu_show_options = "true" +quick_menu_show_controls = "true" +quick_menu_show_cheats = "true" +quick_menu_show_shaders = "true" +quick_menu_show_save_core_overrides = "true" +quick_menu_show_save_game_overrides = "true" +quick_menu_show_save_content_dir_overrides = "true" +quick_menu_show_information = "true" +kiosk_mode_enable = "false" +content_show_settings = "true" +content_show_favorites = "true" +content_show_music = "true" +content_show_history = "true" +content_show_add = "true" +content_show_playlists = "true" +menu_show_load_core = "true" +menu_show_load_content = "true" +menu_show_information = "true" +menu_show_configurations = "true" +menu_show_latency = "true" +menu_show_rewind = "true" +menu_show_overlays = "true" +menu_show_help = "true" +menu_show_quit_retroarch = "true" +menu_show_reboot = "true" +menu_show_online_updater = "true" +menu_show_core_updater = "true" +filter_by_current_core = "false" +rgui_show_start_screen = "false" +menu_navigation_wraparound_enable = "true" +menu_navigation_browser_filter_supported_extensions_enable = "true" +menu_show_advanced_settings = "false" +rgui_background_filler_thickness_enable = "true" +rgui_border_filler_thickness_enable = "true" +rgui_border_filler_enable = "true" +block_sram_overwrite = "false" +savestate_auto_index = "false" +savestate_auto_save = "false" +savestate_auto_load = "false" +savestate_thumbnail_enable = "false" +history_list_enable = "true" +playlist_entry_remove = "true" +playlist_entry_rename = "true" +game_specific_options = "true" +auto_overrides_enable = "true" +auto_remaps_enable = "true" +auto_shaders_enable = "true" +sort_savefiles_enable = "false" +sort_savestates_enable = "false" +config_save_on_exit = "true" +show_hidden_files = "false" +input_autodetect_enable = "true" +audio_rate_control = "true" +savestates_in_content_dir = "false" +savefiles_in_content_dir = "false" +systemfiles_in_content_dir = "false" +screenshots_in_content_dir = "false" +video_msg_bgcolor_enable = "false" +video_window_show_decorations = "true" +log_verbosity = "false" +perfcnt_enable = "false" +video_message_color = "ffff00" +menu_entry_normal_color = "ffffffff" +menu_entry_hover_color = "ff64ff64" +menu_title_color = "ff64ff64" +gamma_correction = "false" +flicker_filter_enable = "false" +soft_filter_enable = "false" +soft_filter_index = "0" +current_resolution_id = "0" +flicker_filter_index = "0" +input_player1_b = "z" +input_player1_b_btn = "nul" +input_player1_b_axis = "nul" +input_player1_b_mbtn = "nul" +input_player1_y = "a" +input_player1_y_btn = "nul" +input_player1_y_axis = "nul" +input_player1_y_mbtn = "nul" +input_player1_select = "rshift" +input_player1_select_btn = "nul" +input_player1_select_axis = "nul" +input_player1_select_mbtn = "nul" +input_player1_start = "enter" +input_player1_start_btn = "nul" +input_player1_start_axis = "nul" +input_player1_start_mbtn = "nul" +input_player1_up = "up" +input_player1_up_btn = "nul" +input_player1_up_axis = "nul" +input_player1_up_mbtn = "nul" +input_player1_down = "down" +input_player1_down_btn = "nul" +input_player1_down_axis = "nul" +input_player1_down_mbtn = "nul" +input_player1_left = "left" +input_player1_left_btn = "nul" +input_player1_left_axis = "nul" +input_player1_left_mbtn = "nul" +input_player1_right = "right" +input_player1_right_btn = "nul" +input_player1_right_axis = "nul" +input_player1_right_mbtn = "nul" +input_player1_a = "x" +input_player1_a_btn = "nul" +input_player1_a_axis = "nul" +input_player1_a_mbtn = "nul" +input_player1_x = "s" +input_player1_x_btn = "nul" +input_player1_x_axis = "nul" +input_player1_x_mbtn = "nul" +input_player1_l = "nul" +input_player1_l_btn = "8" +input_player1_l_axis = "nul" +input_player1_l_mbtn = "nul" +input_player1_r = "nul" +input_player1_r_btn = "9" +input_player1_r_axis = "nul" +input_player1_r_mbtn = "nul" +input_player1_l2 = "nul" +input_player1_l2_btn = "6" +input_player1_l2_axis = "nul" +input_player1_l2_mbtn = "nul" +input_player1_r2 = "nul" +input_player1_r2_btn = "7" +input_player1_r2_axis = "nul" +input_player1_r2_mbtn = "nul" +input_player1_l3 = "nul" +input_player1_l3_btn = "nul" +input_player1_l3_axis = "nul" +input_player1_l3_mbtn = "nul" +input_player1_r3 = "nul" +input_player1_r3_btn = "nul" +input_player1_r3_axis = "nul" +input_player1_r3_mbtn = "nul" +input_player1_l_x_plus = "nul" +input_player1_l_x_plus_btn = "nul" +input_player1_l_x_plus_axis = "nul" +input_player1_l_x_plus_mbtn = "nul" +input_player1_l_x_minus = "nul" +input_player1_l_x_minus_btn = "nul" +input_player1_l_x_minus_axis = "nul" +input_player1_l_x_minus_mbtn = "nul" +input_player1_l_y_plus = "nul" +input_player1_l_y_plus_btn = "nul" +input_player1_l_y_plus_axis = "nul" +input_player1_l_y_plus_mbtn = "nul" +input_player1_l_y_minus = "nul" +input_player1_l_y_minus_btn = "nul" +input_player1_l_y_minus_axis = "nul" +input_player1_l_y_minus_mbtn = "nul" +input_player1_r_x_plus = "nul" +input_player1_r_x_plus_btn = "nul" +input_player1_r_x_plus_axis = "nul" +input_player1_r_x_plus_mbtn = "nul" +input_player1_r_x_minus = "nul" +input_player1_r_x_minus_btn = "nul" +input_player1_r_x_minus_axis = "nul" +input_player1_r_x_minus_mbtn = "nul" +input_player1_r_y_plus = "nul" +input_player1_r_y_plus_btn = "nul" +input_player1_r_y_plus_axis = "nul" +input_player1_r_y_plus_mbtn = "nul" +input_player1_r_y_minus = "nul" +input_player1_r_y_minus_btn = "nul" +input_player1_r_y_minus_axis = "nul" +input_player1_r_y_minus_mbtn = "nul" +input_player1_gun_trigger = "nul" +input_player1_gun_trigger_btn = "nul" +input_player1_gun_trigger_axis = "nul" +input_player1_gun_trigger_mbtn = "nul" +input_player1_gun_offscreen_shot = "nul" +input_player1_gun_offscreen_shot_btn = "nul" +input_player1_gun_offscreen_shot_axis = "nul" +input_player1_gun_offscreen_shot_mbtn = "nul" +input_player1_gun_aux_a = "nul" +input_player1_gun_aux_a_btn = "nul" +input_player1_gun_aux_a_axis = "nul" +input_player1_gun_aux_a_mbtn = "nul" +input_player1_gun_aux_b = "nul" +input_player1_gun_aux_b_btn = "nul" +input_player1_gun_aux_b_axis = "nul" +input_player1_gun_aux_b_mbtn = "nul" +input_player1_gun_aux_c = "nul" +input_player1_gun_aux_c_btn = "nul" +input_player1_gun_aux_c_axis = "nul" +input_player1_gun_aux_c_mbtn = "nul" +input_player1_gun_start = "nul" +input_player1_gun_start_btn = "nul" +input_player1_gun_start_axis = "nul" +input_player1_gun_start_mbtn = "nul" +input_player1_gun_select = "nul" +input_player1_gun_select_btn = "nul" +input_player1_gun_select_axis = "nul" +input_player1_gun_select_mbtn = "nul" +input_player1_gun_dpad_up = "nul" +input_player1_gun_dpad_up_btn = "nul" +input_player1_gun_dpad_up_axis = "nul" +input_player1_gun_dpad_up_mbtn = "nul" +input_player1_gun_dpad_down = "nul" +input_player1_gun_dpad_down_btn = "nul" +input_player1_gun_dpad_down_axis = "nul" +input_player1_gun_dpad_down_mbtn = "nul" +input_player1_gun_dpad_left = "nul" +input_player1_gun_dpad_left_btn = "nul" +input_player1_gun_dpad_left_axis = "nul" +input_player1_gun_dpad_left_mbtn = "nul" +input_player1_gun_dpad_right = "nul" +input_player1_gun_dpad_right_btn = "nul" +input_player1_gun_dpad_right_axis = "nul" +input_player1_gun_dpad_right_mbtn = "nul" +input_player1_turbo = "nul" +input_player1_turbo_btn = "nul" +input_player1_turbo_axis = "nul" +input_player1_turbo_mbtn = "nul" +input_toggle_fast_forward = "nul" +input_toggle_fast_forward_btn = "nul" +input_toggle_fast_forward_axis = "nul" +input_toggle_fast_forward_mbtn = "nul" +input_hold_fast_forward = "nul" +input_hold_fast_forward_btn = "nul" +input_hold_fast_forward_axis = "nul" +input_hold_fast_forward_mbtn = "nul" +input_toggle_slowmotion = "nul" +input_toggle_slowmotion_btn = "nul" +input_toggle_slowmotion_axis = "+2" +input_toggle_slowmotion_mbtn = "nul" +input_hold_slowmotion = "nul" +input_hold_slowmotion_btn = "nul" +input_hold_slowmotion_axis = "nul" +input_hold_slowmotion_mbtn = "nul" +input_load_state = "nul" +input_load_state_btn = "6" +input_load_state_axis = "nul" +input_load_state_mbtn = "nul" +input_save_state = "nul" +input_save_state_btn = "7" +input_save_state_axis = "nul" +input_save_state_mbtn = "nul" +input_toggle_fullscreen = "f" +input_toggle_fullscreen_btn = "nul" +input_toggle_fullscreen_axis = "nul" +input_toggle_fullscreen_mbtn = "nul" +input_exit_emulator = "escape" +input_exit_emulator_btn = "nul" +input_exit_emulator_axis = "nul" +input_exit_emulator_mbtn = "nul" +input_state_slot_increase = "f7" +input_state_slot_increase_btn = "nul" +input_state_slot_increase_axis = "nul" +input_state_slot_increase_mbtn = "nul" +input_state_slot_decrease = "f6" +input_state_slot_decrease_btn = "nul" +input_state_slot_decrease_axis = "nul" +input_state_slot_decrease_mbtn = "nul" +input_rewind = "nul" +input_rewind_btn = "nul" +input_rewind_axis = "-2" +input_rewind_mbtn = "nul" +input_movie_record_toggle = "o" +input_movie_record_toggle_btn = "nul" +input_movie_record_toggle_axis = "nul" +input_movie_record_toggle_mbtn = "nul" +input_pause_toggle = "p" +input_pause_toggle_btn = "nul" +input_pause_toggle_axis = "nul" +input_pause_toggle_mbtn = "nul" +input_frame_advance = "k" +input_frame_advance_btn = "nul" +input_frame_advance_axis = "nul" +input_frame_advance_mbtn = "nul" +input_reset = "h" +input_reset_btn = "nul" +input_reset_axis = "nul" +input_reset_mbtn = "nul" +input_shader_next = "m" +input_shader_next_btn = "nul" +input_shader_next_axis = "nul" +input_shader_next_mbtn = "nul" +input_shader_prev = "n" +input_shader_prev_btn = "nul" +input_shader_prev_axis = "nul" +input_shader_prev_mbtn = "nul" +input_cheat_index_plus = "y" +input_cheat_index_plus_btn = "nul" +input_cheat_index_plus_axis = "nul" +input_cheat_index_plus_mbtn = "nul" +input_cheat_index_minus = "t" +input_cheat_index_minus_btn = "nul" +input_cheat_index_minus_axis = "nul" +input_cheat_index_minus_mbtn = "nul" +input_cheat_toggle = "u" +input_cheat_toggle_btn = "nul" +input_cheat_toggle_axis = "nul" +input_cheat_toggle_mbtn = "nul" +input_screenshot = "f8" +input_screenshot_btn = "nul" +input_screenshot_axis = "nul" +input_screenshot_mbtn = "nul" +input_audio_mute = "f9" +input_audio_mute_btn = "nul" +input_audio_mute_axis = "nul" +input_audio_mute_mbtn = "nul" +input_osk_toggle = "f12" +input_osk_toggle_btn = "nul" +input_osk_toggle_axis = "nul" +input_osk_toggle_mbtn = "nul" +input_netplay_game_watch = "i" +input_netplay_game_watch_btn = "nul" +input_netplay_game_watch_axis = "nul" +input_netplay_game_watch_mbtn = "nul" +input_enable_hotkey = "nul" +input_enable_hotkey_btn = "nul" +input_enable_hotkey_axis = "nul" +input_enable_hotkey_mbtn = "nul" +input_volume_up = "add" +input_volume_up_btn = "nul" +input_volume_up_axis = "nul" +input_volume_up_mbtn = "nul" +input_volume_down = "subtract" +input_volume_down_btn = "nul" +input_volume_down_axis = "nul" +input_volume_down_mbtn = "nul" +input_overlay_next = "nul" +input_overlay_next_btn = "nul" +input_overlay_next_axis = "nul" +input_overlay_next_mbtn = "nul" +input_disk_eject_toggle = "nul" +input_disk_eject_toggle_btn = "nul" +input_disk_eject_toggle_axis = "nul" +input_disk_eject_toggle_mbtn = "nul" +input_disk_next = "nul" +input_disk_next_btn = "nul" +input_disk_next_axis = "nul" +input_disk_next_mbtn = "nul" +input_disk_prev = "nul" +input_disk_prev_btn = "nul" +input_disk_prev_axis = "nul" +input_disk_prev_mbtn = "nul" +input_grab_mouse_toggle = "f11" +input_grab_mouse_toggle_btn = "nul" +input_grab_mouse_toggle_axis = "nul" +input_grab_mouse_toggle_mbtn = "nul" +input_game_focus_toggle = "scroll_lock" +input_game_focus_toggle_btn = "nul" +input_game_focus_toggle_axis = "nul" +input_game_focus_toggle_mbtn = "nul" +input_desktop_menu_toggle = "f5" +input_desktop_menu_toggle_btn = "nul" +input_desktop_menu_toggle_axis = "nul" +input_desktop_menu_toggle_mbtn = "nul" +input_menu_toggle = "f1" +input_menu_toggle_btn = "nul" +input_menu_toggle_axis = "nul" +input_menu_toggle_mbtn = "nul" +input_player2_b = "nul" +input_player2_b_btn = "nul" +input_player2_b_axis = "nul" +input_player2_b_mbtn = "nul" +input_player2_y = "nul" +input_player2_y_btn = "nul" +input_player2_y_axis = "nul" +input_player2_y_mbtn = "nul" +input_player2_select = "nul" +input_player2_select_btn = "nul" +input_player2_select_axis = "nul" +input_player2_select_mbtn = "nul" +input_player2_start = "nul" +input_player2_start_btn = "nul" +input_player2_start_axis = "nul" +input_player2_start_mbtn = "nul" +input_player2_up = "nul" +input_player2_up_btn = "nul" +input_player2_up_axis = "nul" +input_player2_up_mbtn = "nul" +input_player2_down = "nul" +input_player2_down_btn = "nul" +input_player2_down_axis = "nul" +input_player2_down_mbtn = "nul" +input_player2_left = "nul" +input_player2_left_btn = "nul" +input_player2_left_axis = "nul" +input_player2_left_mbtn = "nul" +input_player2_right = "nul" +input_player2_right_btn = "nul" +input_player2_right_axis = "nul" +input_player2_right_mbtn = "nul" +input_player2_a = "nul" +input_player2_a_btn = "nul" +input_player2_a_axis = "nul" +input_player2_a_mbtn = "nul" +input_player2_x = "nul" +input_player2_x_btn = "nul" +input_player2_x_axis = "nul" +input_player2_x_mbtn = "nul" +input_player2_l = "nul" +input_player2_l_btn = "nul" +input_player2_l_axis = "nul" +input_player2_l_mbtn = "nul" +input_player2_r = "nul" +input_player2_r_btn = "nul" +input_player2_r_axis = "nul" +input_player2_r_mbtn = "nul" +input_player2_l2 = "nul" +input_player2_l2_btn = "nul" +input_player2_l2_axis = "nul" +input_player2_l2_mbtn = "nul" +input_player2_r2 = "nul" +input_player2_r2_btn = "nul" +input_player2_r2_axis = "nul" +input_player2_r2_mbtn = "nul" +input_player2_l3 = "nul" +input_player2_l3_btn = "nul" +input_player2_l3_axis = "nul" +input_player2_l3_mbtn = "nul" +input_player2_r3 = "nul" +input_player2_r3_btn = "nul" +input_player2_r3_axis = "nul" +input_player2_r3_mbtn = "nul" +input_player2_l_x_plus = "nul" +input_player2_l_x_plus_btn = "nul" +input_player2_l_x_plus_axis = "nul" +input_player2_l_x_plus_mbtn = "nul" +input_player2_l_x_minus = "nul" +input_player2_l_x_minus_btn = "nul" +input_player2_l_x_minus_axis = "nul" +input_player2_l_x_minus_mbtn = "nul" +input_player2_l_y_plus = "nul" +input_player2_l_y_plus_btn = "nul" +input_player2_l_y_plus_axis = "nul" +input_player2_l_y_plus_mbtn = "nul" +input_player2_l_y_minus = "nul" +input_player2_l_y_minus_btn = "nul" +input_player2_l_y_minus_axis = "nul" +input_player2_l_y_minus_mbtn = "nul" +input_player2_r_x_plus = "nul" +input_player2_r_x_plus_btn = "nul" +input_player2_r_x_plus_axis = "nul" +input_player2_r_x_plus_mbtn = "nul" +input_player2_r_x_minus = "nul" +input_player2_r_x_minus_btn = "nul" +input_player2_r_x_minus_axis = "nul" +input_player2_r_x_minus_mbtn = "nul" +input_player2_r_y_plus = "nul" +input_player2_r_y_plus_btn = "nul" +input_player2_r_y_plus_axis = "nul" +input_player2_r_y_plus_mbtn = "nul" +input_player2_r_y_minus = "nul" +input_player2_r_y_minus_btn = "nul" +input_player2_r_y_minus_axis = "nul" +input_player2_r_y_minus_mbtn = "nul" +input_player2_gun_trigger = "nul" +input_player2_gun_trigger_btn = "nul" +input_player2_gun_trigger_axis = "nul" +input_player2_gun_trigger_mbtn = "nul" +input_player2_gun_offscreen_shot = "nul" +input_player2_gun_offscreen_shot_btn = "nul" +input_player2_gun_offscreen_shot_axis = "nul" +input_player2_gun_offscreen_shot_mbtn = "nul" +input_player2_gun_aux_a = "nul" +input_player2_gun_aux_a_btn = "nul" +input_player2_gun_aux_a_axis = "nul" +input_player2_gun_aux_a_mbtn = "nul" +input_player2_gun_aux_b = "nul" +input_player2_gun_aux_b_btn = "nul" +input_player2_gun_aux_b_axis = "nul" +input_player2_gun_aux_b_mbtn = "nul" +input_player2_gun_aux_c = "nul" +input_player2_gun_aux_c_btn = "nul" +input_player2_gun_aux_c_axis = "nul" +input_player2_gun_aux_c_mbtn = "nul" +input_player2_gun_start = "nul" +input_player2_gun_start_btn = "nul" +input_player2_gun_start_axis = "nul" +input_player2_gun_start_mbtn = "nul" +input_player2_gun_select = "nul" +input_player2_gun_select_btn = "nul" +input_player2_gun_select_axis = "nul" +input_player2_gun_select_mbtn = "nul" +input_player2_gun_dpad_up = "nul" +input_player2_gun_dpad_up_btn = "nul" +input_player2_gun_dpad_up_axis = "nul" +input_player2_gun_dpad_up_mbtn = "nul" +input_player2_gun_dpad_down = "nul" +input_player2_gun_dpad_down_btn = "nul" +input_player2_gun_dpad_down_axis = "nul" +input_player2_gun_dpad_down_mbtn = "nul" +input_player2_gun_dpad_left = "nul" +input_player2_gun_dpad_left_btn = "nul" +input_player2_gun_dpad_left_axis = "nul" +input_player2_gun_dpad_left_mbtn = "nul" +input_player2_gun_dpad_right = "nul" +input_player2_gun_dpad_right_btn = "nul" +input_player2_gun_dpad_right_axis = "nul" +input_player2_gun_dpad_right_mbtn = "nul" +input_player2_turbo = "nul" +input_player2_turbo_btn = "nul" +input_player2_turbo_axis = "nul" +input_player2_turbo_mbtn = "nul" +input_player3_b = "nul" +input_player3_b_btn = "nul" +input_player3_b_axis = "nul" +input_player3_b_mbtn = "nul" +input_player3_y = "nul" +input_player3_y_btn = "nul" +input_player3_y_axis = "nul" +input_player3_y_mbtn = "nul" +input_player3_select = "nul" +input_player3_select_btn = "nul" +input_player3_select_axis = "nul" +input_player3_select_mbtn = "nul" +input_player3_start = "nul" +input_player3_start_btn = "nul" +input_player3_start_axis = "nul" +input_player3_start_mbtn = "nul" +input_player3_up = "nul" +input_player3_up_btn = "nul" +input_player3_up_axis = "nul" +input_player3_up_mbtn = "nul" +input_player3_down = "nul" +input_player3_down_btn = "nul" +input_player3_down_axis = "nul" +input_player3_down_mbtn = "nul" +input_player3_left = "nul" +input_player3_left_btn = "nul" +input_player3_left_axis = "nul" +input_player3_left_mbtn = "nul" +input_player3_right = "nul" +input_player3_right_btn = "nul" +input_player3_right_axis = "nul" +input_player3_right_mbtn = "nul" +input_player3_a = "nul" +input_player3_a_btn = "nul" +input_player3_a_axis = "nul" +input_player3_a_mbtn = "nul" +input_player3_x = "nul" +input_player3_x_btn = "nul" +input_player3_x_axis = "nul" +input_player3_x_mbtn = "nul" +input_player3_l = "nul" +input_player3_l_btn = "nul" +input_player3_l_axis = "nul" +input_player3_l_mbtn = "nul" +input_player3_r = "nul" +input_player3_r_btn = "nul" +input_player3_r_axis = "nul" +input_player3_r_mbtn = "nul" +input_player3_l2 = "nul" +input_player3_l2_btn = "nul" +input_player3_l2_axis = "nul" +input_player3_l2_mbtn = "nul" +input_player3_r2 = "nul" +input_player3_r2_btn = "nul" +input_player3_r2_axis = "nul" +input_player3_r2_mbtn = "nul" +input_player3_l3 = "nul" +input_player3_l3_btn = "nul" +input_player3_l3_axis = "nul" +input_player3_l3_mbtn = "nul" +input_player3_r3 = "nul" +input_player3_r3_btn = "nul" +input_player3_r3_axis = "nul" +input_player3_r3_mbtn = "nul" +input_player3_l_x_plus = "nul" +input_player3_l_x_plus_btn = "nul" +input_player3_l_x_plus_axis = "nul" +input_player3_l_x_plus_mbtn = "nul" +input_player3_l_x_minus = "nul" +input_player3_l_x_minus_btn = "nul" +input_player3_l_x_minus_axis = "nul" +input_player3_l_x_minus_mbtn = "nul" +input_player3_l_y_plus = "nul" +input_player3_l_y_plus_btn = "nul" +input_player3_l_y_plus_axis = "nul" +input_player3_l_y_plus_mbtn = "nul" +input_player3_l_y_minus = "nul" +input_player3_l_y_minus_btn = "nul" +input_player3_l_y_minus_axis = "nul" +input_player3_l_y_minus_mbtn = "nul" +input_player3_r_x_plus = "nul" +input_player3_r_x_plus_btn = "nul" +input_player3_r_x_plus_axis = "nul" +input_player3_r_x_plus_mbtn = "nul" +input_player3_r_x_minus = "nul" +input_player3_r_x_minus_btn = "nul" +input_player3_r_x_minus_axis = "nul" +input_player3_r_x_minus_mbtn = "nul" +input_player3_r_y_plus = "nul" +input_player3_r_y_plus_btn = "nul" +input_player3_r_y_plus_axis = "nul" +input_player3_r_y_plus_mbtn = "nul" +input_player3_r_y_minus = "nul" +input_player3_r_y_minus_btn = "nul" +input_player3_r_y_minus_axis = "nul" +input_player3_r_y_minus_mbtn = "nul" +input_player3_gun_trigger = "nul" +input_player3_gun_trigger_btn = "nul" +input_player3_gun_trigger_axis = "nul" +input_player3_gun_trigger_mbtn = "nul" +input_player3_gun_offscreen_shot = "nul" +input_player3_gun_offscreen_shot_btn = "nul" +input_player3_gun_offscreen_shot_axis = "nul" +input_player3_gun_offscreen_shot_mbtn = "nul" +input_player3_gun_aux_a = "nul" +input_player3_gun_aux_a_btn = "nul" +input_player3_gun_aux_a_axis = "nul" +input_player3_gun_aux_a_mbtn = "nul" +input_player3_gun_aux_b = "nul" +input_player3_gun_aux_b_btn = "nul" +input_player3_gun_aux_b_axis = "nul" +input_player3_gun_aux_b_mbtn = "nul" +input_player3_gun_aux_c = "nul" +input_player3_gun_aux_c_btn = "nul" +input_player3_gun_aux_c_axis = "nul" +input_player3_gun_aux_c_mbtn = "nul" +input_player3_gun_start = "nul" +input_player3_gun_start_btn = "nul" +input_player3_gun_start_axis = "nul" +input_player3_gun_start_mbtn = "nul" +input_player3_gun_select = "nul" +input_player3_gun_select_btn = "nul" +input_player3_gun_select_axis = "nul" +input_player3_gun_select_mbtn = "nul" +input_player3_gun_dpad_up = "nul" +input_player3_gun_dpad_up_btn = "nul" +input_player3_gun_dpad_up_axis = "nul" +input_player3_gun_dpad_up_mbtn = "nul" +input_player3_gun_dpad_down = "nul" +input_player3_gun_dpad_down_btn = "nul" +input_player3_gun_dpad_down_axis = "nul" +input_player3_gun_dpad_down_mbtn = "nul" +input_player3_gun_dpad_left = "nul" +input_player3_gun_dpad_left_btn = "nul" +input_player3_gun_dpad_left_axis = "nul" +input_player3_gun_dpad_left_mbtn = "nul" +input_player3_gun_dpad_right = "nul" +input_player3_gun_dpad_right_btn = "nul" +input_player3_gun_dpad_right_axis = "nul" +input_player3_gun_dpad_right_mbtn = "nul" +input_player3_turbo = "nul" +input_player3_turbo_btn = "nul" +input_player3_turbo_axis = "nul" +input_player3_turbo_mbtn = "nul" +input_player4_b = "nul" +input_player4_b_btn = "nul" +input_player4_b_axis = "nul" +input_player4_b_mbtn = "nul" +input_player4_y = "nul" +input_player4_y_btn = "nul" +input_player4_y_axis = "nul" +input_player4_y_mbtn = "nul" +input_player4_select = "nul" +input_player4_select_btn = "nul" +input_player4_select_axis = "nul" +input_player4_select_mbtn = "nul" +input_player4_start = "nul" +input_player4_start_btn = "nul" +input_player4_start_axis = "nul" +input_player4_start_mbtn = "nul" +input_player4_up = "nul" +input_player4_up_btn = "nul" +input_player4_up_axis = "nul" +input_player4_up_mbtn = "nul" +input_player4_down = "nul" +input_player4_down_btn = "nul" +input_player4_down_axis = "nul" +input_player4_down_mbtn = "nul" +input_player4_left = "nul" +input_player4_left_btn = "nul" +input_player4_left_axis = "nul" +input_player4_left_mbtn = "nul" +input_player4_right = "nul" +input_player4_right_btn = "nul" +input_player4_right_axis = "nul" +input_player4_right_mbtn = "nul" +input_player4_a = "nul" +input_player4_a_btn = "nul" +input_player4_a_axis = "nul" +input_player4_a_mbtn = "nul" +input_player4_x = "nul" +input_player4_x_btn = "nul" +input_player4_x_axis = "nul" +input_player4_x_mbtn = "nul" +input_player4_l = "nul" +input_player4_l_btn = "nul" +input_player4_l_axis = "nul" +input_player4_l_mbtn = "nul" +input_player4_r = "nul" +input_player4_r_btn = "nul" +input_player4_r_axis = "nul" +input_player4_r_mbtn = "nul" +input_player4_l2 = "nul" +input_player4_l2_btn = "nul" +input_player4_l2_axis = "nul" +input_player4_l2_mbtn = "nul" +input_player4_r2 = "nul" +input_player4_r2_btn = "nul" +input_player4_r2_axis = "nul" +input_player4_r2_mbtn = "nul" +input_player4_l3 = "nul" +input_player4_l3_btn = "nul" +input_player4_l3_axis = "nul" +input_player4_l3_mbtn = "nul" +input_player4_r3 = "nul" +input_player4_r3_btn = "nul" +input_player4_r3_axis = "nul" +input_player4_r3_mbtn = "nul" +input_player4_l_x_plus = "nul" +input_player4_l_x_plus_btn = "nul" +input_player4_l_x_plus_axis = "nul" +input_player4_l_x_plus_mbtn = "nul" +input_player4_l_x_minus = "nul" +input_player4_l_x_minus_btn = "nul" +input_player4_l_x_minus_axis = "nul" +input_player4_l_x_minus_mbtn = "nul" +input_player4_l_y_plus = "nul" +input_player4_l_y_plus_btn = "nul" +input_player4_l_y_plus_axis = "nul" +input_player4_l_y_plus_mbtn = "nul" +input_player4_l_y_minus = "nul" +input_player4_l_y_minus_btn = "nul" +input_player4_l_y_minus_axis = "nul" +input_player4_l_y_minus_mbtn = "nul" +input_player4_r_x_plus = "nul" +input_player4_r_x_plus_btn = "nul" +input_player4_r_x_plus_axis = "nul" +input_player4_r_x_plus_mbtn = "nul" +input_player4_r_x_minus = "nul" +input_player4_r_x_minus_btn = "nul" +input_player4_r_x_minus_axis = "nul" +input_player4_r_x_minus_mbtn = "nul" +input_player4_r_y_plus = "nul" +input_player4_r_y_plus_btn = "nul" +input_player4_r_y_plus_axis = "nul" +input_player4_r_y_plus_mbtn = "nul" +input_player4_r_y_minus = "nul" +input_player4_r_y_minus_btn = "nul" +input_player4_r_y_minus_axis = "nul" +input_player4_r_y_minus_mbtn = "nul" +input_player4_gun_trigger = "nul" +input_player4_gun_trigger_btn = "nul" +input_player4_gun_trigger_axis = "nul" +input_player4_gun_trigger_mbtn = "nul" +input_player4_gun_offscreen_shot = "nul" +input_player4_gun_offscreen_shot_btn = "nul" +input_player4_gun_offscreen_shot_axis = "nul" +input_player4_gun_offscreen_shot_mbtn = "nul" +input_player4_gun_aux_a = "nul" +input_player4_gun_aux_a_btn = "nul" +input_player4_gun_aux_a_axis = "nul" +input_player4_gun_aux_a_mbtn = "nul" +input_player4_gun_aux_b = "nul" +input_player4_gun_aux_b_btn = "nul" +input_player4_gun_aux_b_axis = "nul" +input_player4_gun_aux_b_mbtn = "nul" +input_player4_gun_aux_c = "nul" +input_player4_gun_aux_c_btn = "nul" +input_player4_gun_aux_c_axis = "nul" +input_player4_gun_aux_c_mbtn = "nul" +input_player4_gun_start = "nul" +input_player4_gun_start_btn = "nul" +input_player4_gun_start_axis = "nul" +input_player4_gun_start_mbtn = "nul" +input_player4_gun_select = "nul" +input_player4_gun_select_btn = "nul" +input_player4_gun_select_axis = "nul" +input_player4_gun_select_mbtn = "nul" +input_player4_gun_dpad_up = "nul" +input_player4_gun_dpad_up_btn = "nul" +input_player4_gun_dpad_up_axis = "nul" +input_player4_gun_dpad_up_mbtn = "nul" +input_player4_gun_dpad_down = "nul" +input_player4_gun_dpad_down_btn = "nul" +input_player4_gun_dpad_down_axis = "nul" +input_player4_gun_dpad_down_mbtn = "nul" +input_player4_gun_dpad_left = "nul" +input_player4_gun_dpad_left_btn = "nul" +input_player4_gun_dpad_left_axis = "nul" +input_player4_gun_dpad_left_mbtn = "nul" +input_player4_gun_dpad_right = "nul" +input_player4_gun_dpad_right_btn = "nul" +input_player4_gun_dpad_right_axis = "nul" +input_player4_gun_dpad_right_mbtn = "nul" +input_player4_turbo = "nul" +input_player4_turbo_btn = "nul" +input_player4_turbo_axis = "nul" +input_player4_turbo_mbtn = "nul" +input_player5_b = "nul" +input_player5_b_btn = "nul" +input_player5_b_axis = "nul" +input_player5_b_mbtn = "nul" +input_player5_y = "nul" +input_player5_y_btn = "nul" +input_player5_y_axis = "nul" +input_player5_y_mbtn = "nul" +input_player5_select = "nul" +input_player5_select_btn = "nul" +input_player5_select_axis = "nul" +input_player5_select_mbtn = "nul" +input_player5_start = "nul" +input_player5_start_btn = "nul" +input_player5_start_axis = "nul" +input_player5_start_mbtn = "nul" +input_player5_up = "nul" +input_player5_up_btn = "nul" +input_player5_up_axis = "nul" +input_player5_up_mbtn = "nul" +input_player5_down = "nul" +input_player5_down_btn = "nul" +input_player5_down_axis = "nul" +input_player5_down_mbtn = "nul" +input_player5_left = "nul" +input_player5_left_btn = "nul" +input_player5_left_axis = "nul" +input_player5_left_mbtn = "nul" +input_player5_right = "nul" +input_player5_right_btn = "nul" +input_player5_right_axis = "nul" +input_player5_right_mbtn = "nul" +input_player5_a = "nul" +input_player5_a_btn = "nul" +input_player5_a_axis = "nul" +input_player5_a_mbtn = "nul" +input_player5_x = "nul" +input_player5_x_btn = "nul" +input_player5_x_axis = "nul" +input_player5_x_mbtn = "nul" +input_player5_l = "nul" +input_player5_l_btn = "nul" +input_player5_l_axis = "nul" +input_player5_l_mbtn = "nul" +input_player5_r = "nul" +input_player5_r_btn = "nul" +input_player5_r_axis = "nul" +input_player5_r_mbtn = "nul" +input_player5_l2 = "nul" +input_player5_l2_btn = "nul" +input_player5_l2_axis = "nul" +input_player5_l2_mbtn = "nul" +input_player5_r2 = "nul" +input_player5_r2_btn = "nul" +input_player5_r2_axis = "nul" +input_player5_r2_mbtn = "nul" +input_player5_l3 = "nul" +input_player5_l3_btn = "nul" +input_player5_l3_axis = "nul" +input_player5_l3_mbtn = "nul" +input_player5_r3 = "nul" +input_player5_r3_btn = "nul" +input_player5_r3_axis = "nul" +input_player5_r3_mbtn = "nul" +input_player5_l_x_plus = "nul" +input_player5_l_x_plus_btn = "nul" +input_player5_l_x_plus_axis = "nul" +input_player5_l_x_plus_mbtn = "nul" +input_player5_l_x_minus = "nul" +input_player5_l_x_minus_btn = "nul" +input_player5_l_x_minus_axis = "nul" +input_player5_l_x_minus_mbtn = "nul" +input_player5_l_y_plus = "nul" +input_player5_l_y_plus_btn = "nul" +input_player5_l_y_plus_axis = "nul" +input_player5_l_y_plus_mbtn = "nul" +input_player5_l_y_minus = "nul" +input_player5_l_y_minus_btn = "nul" +input_player5_l_y_minus_axis = "nul" +input_player5_l_y_minus_mbtn = "nul" +input_player5_r_x_plus = "nul" +input_player5_r_x_plus_btn = "nul" +input_player5_r_x_plus_axis = "nul" +input_player5_r_x_plus_mbtn = "nul" +input_player5_r_x_minus = "nul" +input_player5_r_x_minus_btn = "nul" +input_player5_r_x_minus_axis = "nul" +input_player5_r_x_minus_mbtn = "nul" +input_player5_r_y_plus = "nul" +input_player5_r_y_plus_btn = "nul" +input_player5_r_y_plus_axis = "nul" +input_player5_r_y_plus_mbtn = "nul" +input_player5_r_y_minus = "nul" +input_player5_r_y_minus_btn = "nul" +input_player5_r_y_minus_axis = "nul" +input_player5_r_y_minus_mbtn = "nul" +input_player5_gun_trigger = "nul" +input_player5_gun_trigger_btn = "nul" +input_player5_gun_trigger_axis = "nul" +input_player5_gun_trigger_mbtn = "nul" +input_player5_gun_offscreen_shot = "nul" +input_player5_gun_offscreen_shot_btn = "nul" +input_player5_gun_offscreen_shot_axis = "nul" +input_player5_gun_offscreen_shot_mbtn = "nul" +input_player5_gun_aux_a = "nul" +input_player5_gun_aux_a_btn = "nul" +input_player5_gun_aux_a_axis = "nul" +input_player5_gun_aux_a_mbtn = "nul" +input_player5_gun_aux_b = "nul" +input_player5_gun_aux_b_btn = "nul" +input_player5_gun_aux_b_axis = "nul" +input_player5_gun_aux_b_mbtn = "nul" +input_player5_gun_aux_c = "nul" +input_player5_gun_aux_c_btn = "nul" +input_player5_gun_aux_c_axis = "nul" +input_player5_gun_aux_c_mbtn = "nul" +input_player5_gun_start = "nul" +input_player5_gun_start_btn = "nul" +input_player5_gun_start_axis = "nul" +input_player5_gun_start_mbtn = "nul" +input_player5_gun_select = "nul" +input_player5_gun_select_btn = "nul" +input_player5_gun_select_axis = "nul" +input_player5_gun_select_mbtn = "nul" +input_player5_gun_dpad_up = "nul" +input_player5_gun_dpad_up_btn = "nul" +input_player5_gun_dpad_up_axis = "nul" +input_player5_gun_dpad_up_mbtn = "nul" +input_player5_gun_dpad_down = "nul" +input_player5_gun_dpad_down_btn = "nul" +input_player5_gun_dpad_down_axis = "nul" +input_player5_gun_dpad_down_mbtn = "nul" +input_player5_gun_dpad_left = "nul" +input_player5_gun_dpad_left_btn = "nul" +input_player5_gun_dpad_left_axis = "nul" +input_player5_gun_dpad_left_mbtn = "nul" +input_player5_gun_dpad_right = "nul" +input_player5_gun_dpad_right_btn = "nul" +input_player5_gun_dpad_right_axis = "nul" +input_player5_gun_dpad_right_mbtn = "nul" +input_player5_turbo = "nul" +input_player5_turbo_btn = "nul" +input_player5_turbo_axis = "nul" +input_player5_turbo_mbtn = "nul" +input_player6_b = "nul" +input_player6_b_btn = "nul" +input_player6_b_axis = "nul" +input_player6_b_mbtn = "nul" +input_player6_y = "nul" +input_player6_y_btn = "nul" +input_player6_y_axis = "nul" +input_player6_y_mbtn = "nul" +input_player6_select = "nul" +input_player6_select_btn = "nul" +input_player6_select_axis = "nul" +input_player6_select_mbtn = "nul" +input_player6_start = "nul" +input_player6_start_btn = "nul" +input_player6_start_axis = "nul" +input_player6_start_mbtn = "nul" +input_player6_up = "nul" +input_player6_up_btn = "nul" +input_player6_up_axis = "nul" +input_player6_up_mbtn = "nul" +input_player6_down = "nul" +input_player6_down_btn = "nul" +input_player6_down_axis = "nul" +input_player6_down_mbtn = "nul" +input_player6_left = "nul" +input_player6_left_btn = "nul" +input_player6_left_axis = "nul" +input_player6_left_mbtn = "nul" +input_player6_right = "nul" +input_player6_right_btn = "nul" +input_player6_right_axis = "nul" +input_player6_right_mbtn = "nul" +input_player6_a = "nul" +input_player6_a_btn = "nul" +input_player6_a_axis = "nul" +input_player6_a_mbtn = "nul" +input_player6_x = "nul" +input_player6_x_btn = "nul" +input_player6_x_axis = "nul" +input_player6_x_mbtn = "nul" +input_player6_l = "nul" +input_player6_l_btn = "nul" +input_player6_l_axis = "nul" +input_player6_l_mbtn = "nul" +input_player6_r = "nul" +input_player6_r_btn = "nul" +input_player6_r_axis = "nul" +input_player6_r_mbtn = "nul" +input_player6_l2 = "nul" +input_player6_l2_btn = "nul" +input_player6_l2_axis = "nul" +input_player6_l2_mbtn = "nul" +input_player6_r2 = "nul" +input_player6_r2_btn = "nul" +input_player6_r2_axis = "nul" +input_player6_r2_mbtn = "nul" +input_player6_l3 = "nul" +input_player6_l3_btn = "nul" +input_player6_l3_axis = "nul" +input_player6_l3_mbtn = "nul" +input_player6_r3 = "nul" +input_player6_r3_btn = "nul" +input_player6_r3_axis = "nul" +input_player6_r3_mbtn = "nul" +input_player6_l_x_plus = "nul" +input_player6_l_x_plus_btn = "nul" +input_player6_l_x_plus_axis = "nul" +input_player6_l_x_plus_mbtn = "nul" +input_player6_l_x_minus = "nul" +input_player6_l_x_minus_btn = "nul" +input_player6_l_x_minus_axis = "nul" +input_player6_l_x_minus_mbtn = "nul" +input_player6_l_y_plus = "nul" +input_player6_l_y_plus_btn = "nul" +input_player6_l_y_plus_axis = "nul" +input_player6_l_y_plus_mbtn = "nul" +input_player6_l_y_minus = "nul" +input_player6_l_y_minus_btn = "nul" +input_player6_l_y_minus_axis = "nul" +input_player6_l_y_minus_mbtn = "nul" +input_player6_r_x_plus = "nul" +input_player6_r_x_plus_btn = "nul" +input_player6_r_x_plus_axis = "nul" +input_player6_r_x_plus_mbtn = "nul" +input_player6_r_x_minus = "nul" +input_player6_r_x_minus_btn = "nul" +input_player6_r_x_minus_axis = "nul" +input_player6_r_x_minus_mbtn = "nul" +input_player6_r_y_plus = "nul" +input_player6_r_y_plus_btn = "nul" +input_player6_r_y_plus_axis = "nul" +input_player6_r_y_plus_mbtn = "nul" +input_player6_r_y_minus = "nul" +input_player6_r_y_minus_btn = "nul" +input_player6_r_y_minus_axis = "nul" +input_player6_r_y_minus_mbtn = "nul" +input_player6_gun_trigger = "nul" +input_player6_gun_trigger_btn = "nul" +input_player6_gun_trigger_axis = "nul" +input_player6_gun_trigger_mbtn = "nul" +input_player6_gun_offscreen_shot = "nul" +input_player6_gun_offscreen_shot_btn = "nul" +input_player6_gun_offscreen_shot_axis = "nul" +input_player6_gun_offscreen_shot_mbtn = "nul" +input_player6_gun_aux_a = "nul" +input_player6_gun_aux_a_btn = "nul" +input_player6_gun_aux_a_axis = "nul" +input_player6_gun_aux_a_mbtn = "nul" +input_player6_gun_aux_b = "nul" +input_player6_gun_aux_b_btn = "nul" +input_player6_gun_aux_b_axis = "nul" +input_player6_gun_aux_b_mbtn = "nul" +input_player6_gun_aux_c = "nul" +input_player6_gun_aux_c_btn = "nul" +input_player6_gun_aux_c_axis = "nul" +input_player6_gun_aux_c_mbtn = "nul" +input_player6_gun_start = "nul" +input_player6_gun_start_btn = "nul" +input_player6_gun_start_axis = "nul" +input_player6_gun_start_mbtn = "nul" +input_player6_gun_select = "nul" +input_player6_gun_select_btn = "nul" +input_player6_gun_select_axis = "nul" +input_player6_gun_select_mbtn = "nul" +input_player6_gun_dpad_up = "nul" +input_player6_gun_dpad_up_btn = "nul" +input_player6_gun_dpad_up_axis = "nul" +input_player6_gun_dpad_up_mbtn = "nul" +input_player6_gun_dpad_down = "nul" +input_player6_gun_dpad_down_btn = "nul" +input_player6_gun_dpad_down_axis = "nul" +input_player6_gun_dpad_down_mbtn = "nul" +input_player6_gun_dpad_left = "nul" +input_player6_gun_dpad_left_btn = "nul" +input_player6_gun_dpad_left_axis = "nul" +input_player6_gun_dpad_left_mbtn = "nul" +input_player6_gun_dpad_right = "nul" +input_player6_gun_dpad_right_btn = "nul" +input_player6_gun_dpad_right_axis = "nul" +input_player6_gun_dpad_right_mbtn = "nul" +input_player6_turbo = "nul" +input_player6_turbo_btn = "nul" +input_player6_turbo_axis = "nul" +input_player6_turbo_mbtn = "nul" +input_player7_b = "nul" +input_player7_b_btn = "nul" +input_player7_b_axis = "nul" +input_player7_b_mbtn = "nul" +input_player7_y = "nul" +input_player7_y_btn = "nul" +input_player7_y_axis = "nul" +input_player7_y_mbtn = "nul" +input_player7_select = "nul" +input_player7_select_btn = "nul" +input_player7_select_axis = "nul" +input_player7_select_mbtn = "nul" +input_player7_start = "nul" +input_player7_start_btn = "nul" +input_player7_start_axis = "nul" +input_player7_start_mbtn = "nul" +input_player7_up = "nul" +input_player7_up_btn = "nul" +input_player7_up_axis = "nul" +input_player7_up_mbtn = "nul" +input_player7_down = "nul" +input_player7_down_btn = "nul" +input_player7_down_axis = "nul" +input_player7_down_mbtn = "nul" +input_player7_left = "nul" +input_player7_left_btn = "nul" +input_player7_left_axis = "nul" +input_player7_left_mbtn = "nul" +input_player7_right = "nul" +input_player7_right_btn = "nul" +input_player7_right_axis = "nul" +input_player7_right_mbtn = "nul" +input_player7_a = "nul" +input_player7_a_btn = "nul" +input_player7_a_axis = "nul" +input_player7_a_mbtn = "nul" +input_player7_x = "nul" +input_player7_x_btn = "nul" +input_player7_x_axis = "nul" +input_player7_x_mbtn = "nul" +input_player7_l = "nul" +input_player7_l_btn = "nul" +input_player7_l_axis = "nul" +input_player7_l_mbtn = "nul" +input_player7_r = "nul" +input_player7_r_btn = "nul" +input_player7_r_axis = "nul" +input_player7_r_mbtn = "nul" +input_player7_l2 = "nul" +input_player7_l2_btn = "nul" +input_player7_l2_axis = "nul" +input_player7_l2_mbtn = "nul" +input_player7_r2 = "nul" +input_player7_r2_btn = "nul" +input_player7_r2_axis = "nul" +input_player7_r2_mbtn = "nul" +input_player7_l3 = "nul" +input_player7_l3_btn = "nul" +input_player7_l3_axis = "nul" +input_player7_l3_mbtn = "nul" +input_player7_r3 = "nul" +input_player7_r3_btn = "nul" +input_player7_r3_axis = "nul" +input_player7_r3_mbtn = "nul" +input_player7_l_x_plus = "nul" +input_player7_l_x_plus_btn = "nul" +input_player7_l_x_plus_axis = "nul" +input_player7_l_x_plus_mbtn = "nul" +input_player7_l_x_minus = "nul" +input_player7_l_x_minus_btn = "nul" +input_player7_l_x_minus_axis = "nul" +input_player7_l_x_minus_mbtn = "nul" +input_player7_l_y_plus = "nul" +input_player7_l_y_plus_btn = "nul" +input_player7_l_y_plus_axis = "nul" +input_player7_l_y_plus_mbtn = "nul" +input_player7_l_y_minus = "nul" +input_player7_l_y_minus_btn = "nul" +input_player7_l_y_minus_axis = "nul" +input_player7_l_y_minus_mbtn = "nul" +input_player7_r_x_plus = "nul" +input_player7_r_x_plus_btn = "nul" +input_player7_r_x_plus_axis = "nul" +input_player7_r_x_plus_mbtn = "nul" +input_player7_r_x_minus = "nul" +input_player7_r_x_minus_btn = "nul" +input_player7_r_x_minus_axis = "nul" +input_player7_r_x_minus_mbtn = "nul" +input_player7_r_y_plus = "nul" +input_player7_r_y_plus_btn = "nul" +input_player7_r_y_plus_axis = "nul" +input_player7_r_y_plus_mbtn = "nul" +input_player7_r_y_minus = "nul" +input_player7_r_y_minus_btn = "nul" +input_player7_r_y_minus_axis = "nul" +input_player7_r_y_minus_mbtn = "nul" +input_player7_gun_trigger = "nul" +input_player7_gun_trigger_btn = "nul" +input_player7_gun_trigger_axis = "nul" +input_player7_gun_trigger_mbtn = "nul" +input_player7_gun_offscreen_shot = "nul" +input_player7_gun_offscreen_shot_btn = "nul" +input_player7_gun_offscreen_shot_axis = "nul" +input_player7_gun_offscreen_shot_mbtn = "nul" +input_player7_gun_aux_a = "nul" +input_player7_gun_aux_a_btn = "nul" +input_player7_gun_aux_a_axis = "nul" +input_player7_gun_aux_a_mbtn = "nul" +input_player7_gun_aux_b = "nul" +input_player7_gun_aux_b_btn = "nul" +input_player7_gun_aux_b_axis = "nul" +input_player7_gun_aux_b_mbtn = "nul" +input_player7_gun_aux_c = "nul" +input_player7_gun_aux_c_btn = "nul" +input_player7_gun_aux_c_axis = "nul" +input_player7_gun_aux_c_mbtn = "nul" +input_player7_gun_start = "nul" +input_player7_gun_start_btn = "nul" +input_player7_gun_start_axis = "nul" +input_player7_gun_start_mbtn = "nul" +input_player7_gun_select = "nul" +input_player7_gun_select_btn = "nul" +input_player7_gun_select_axis = "nul" +input_player7_gun_select_mbtn = "nul" +input_player7_gun_dpad_up = "nul" +input_player7_gun_dpad_up_btn = "nul" +input_player7_gun_dpad_up_axis = "nul" +input_player7_gun_dpad_up_mbtn = "nul" +input_player7_gun_dpad_down = "nul" +input_player7_gun_dpad_down_btn = "nul" +input_player7_gun_dpad_down_axis = "nul" +input_player7_gun_dpad_down_mbtn = "nul" +input_player7_gun_dpad_left = "nul" +input_player7_gun_dpad_left_btn = "nul" +input_player7_gun_dpad_left_axis = "nul" +input_player7_gun_dpad_left_mbtn = "nul" +input_player7_gun_dpad_right = "nul" +input_player7_gun_dpad_right_btn = "nul" +input_player7_gun_dpad_right_axis = "nul" +input_player7_gun_dpad_right_mbtn = "nul" +input_player7_turbo = "nul" +input_player7_turbo_btn = "nul" +input_player7_turbo_axis = "nul" +input_player7_turbo_mbtn = "nul" +input_player8_b = "nul" +input_player8_b_btn = "nul" +input_player8_b_axis = "nul" +input_player8_b_mbtn = "nul" +input_player8_y = "nul" +input_player8_y_btn = "nul" +input_player8_y_axis = "nul" +input_player8_y_mbtn = "nul" +input_player8_select = "nul" +input_player8_select_btn = "nul" +input_player8_select_axis = "nul" +input_player8_select_mbtn = "nul" +input_player8_start = "nul" +input_player8_start_btn = "nul" +input_player8_start_axis = "nul" +input_player8_start_mbtn = "nul" +input_player8_up = "nul" +input_player8_up_btn = "nul" +input_player8_up_axis = "nul" +input_player8_up_mbtn = "nul" +input_player8_down = "nul" +input_player8_down_btn = "nul" +input_player8_down_axis = "nul" +input_player8_down_mbtn = "nul" +input_player8_left = "nul" +input_player8_left_btn = "nul" +input_player8_left_axis = "nul" +input_player8_left_mbtn = "nul" +input_player8_right = "nul" +input_player8_right_btn = "nul" +input_player8_right_axis = "nul" +input_player8_right_mbtn = "nul" +input_player8_a = "nul" +input_player8_a_btn = "nul" +input_player8_a_axis = "nul" +input_player8_a_mbtn = "nul" +input_player8_x = "nul" +input_player8_x_btn = "nul" +input_player8_x_axis = "nul" +input_player8_x_mbtn = "nul" +input_player8_l = "nul" +input_player8_l_btn = "nul" +input_player8_l_axis = "nul" +input_player8_l_mbtn = "nul" +input_player8_r = "nul" +input_player8_r_btn = "nul" +input_player8_r_axis = "nul" +input_player8_r_mbtn = "nul" +input_player8_l2 = "nul" +input_player8_l2_btn = "nul" +input_player8_l2_axis = "nul" +input_player8_l2_mbtn = "nul" +input_player8_r2 = "nul" +input_player8_r2_btn = "nul" +input_player8_r2_axis = "nul" +input_player8_r2_mbtn = "nul" +input_player8_l3 = "nul" +input_player8_l3_btn = "nul" +input_player8_l3_axis = "nul" +input_player8_l3_mbtn = "nul" +input_player8_r3 = "nul" +input_player8_r3_btn = "nul" +input_player8_r3_axis = "nul" +input_player8_r3_mbtn = "nul" +input_player8_l_x_plus = "nul" +input_player8_l_x_plus_btn = "nul" +input_player8_l_x_plus_axis = "nul" +input_player8_l_x_plus_mbtn = "nul" +input_player8_l_x_minus = "nul" +input_player8_l_x_minus_btn = "nul" +input_player8_l_x_minus_axis = "nul" +input_player8_l_x_minus_mbtn = "nul" +input_player8_l_y_plus = "nul" +input_player8_l_y_plus_btn = "nul" +input_player8_l_y_plus_axis = "nul" +input_player8_l_y_plus_mbtn = "nul" +input_player8_l_y_minus = "nul" +input_player8_l_y_minus_btn = "nul" +input_player8_l_y_minus_axis = "nul" +input_player8_l_y_minus_mbtn = "nul" +input_player8_r_x_plus = "nul" +input_player8_r_x_plus_btn = "nul" +input_player8_r_x_plus_axis = "nul" +input_player8_r_x_plus_mbtn = "nul" +input_player8_r_x_minus = "nul" +input_player8_r_x_minus_btn = "nul" +input_player8_r_x_minus_axis = "nul" +input_player8_r_x_minus_mbtn = "nul" +input_player8_r_y_plus = "nul" +input_player8_r_y_plus_btn = "nul" +input_player8_r_y_plus_axis = "nul" +input_player8_r_y_plus_mbtn = "nul" +input_player8_r_y_minus = "nul" +input_player8_r_y_minus_btn = "nul" +input_player8_r_y_minus_axis = "nul" +input_player8_r_y_minus_mbtn = "nul" +input_player8_gun_trigger = "nul" +input_player8_gun_trigger_btn = "nul" +input_player8_gun_trigger_axis = "nul" +input_player8_gun_trigger_mbtn = "nul" +input_player8_gun_offscreen_shot = "nul" +input_player8_gun_offscreen_shot_btn = "nul" +input_player8_gun_offscreen_shot_axis = "nul" +input_player8_gun_offscreen_shot_mbtn = "nul" +input_player8_gun_aux_a = "nul" +input_player8_gun_aux_a_btn = "nul" +input_player8_gun_aux_a_axis = "nul" +input_player8_gun_aux_a_mbtn = "nul" +input_player8_gun_aux_b = "nul" +input_player8_gun_aux_b_btn = "nul" +input_player8_gun_aux_b_axis = "nul" +input_player8_gun_aux_b_mbtn = "nul" +input_player8_gun_aux_c = "nul" +input_player8_gun_aux_c_btn = "nul" +input_player8_gun_aux_c_axis = "nul" +input_player8_gun_aux_c_mbtn = "nul" +input_player8_gun_start = "nul" +input_player8_gun_start_btn = "nul" +input_player8_gun_start_axis = "nul" +input_player8_gun_start_mbtn = "nul" +input_player8_gun_select = "nul" +input_player8_gun_select_btn = "nul" +input_player8_gun_select_axis = "nul" +input_player8_gun_select_mbtn = "nul" +input_player8_gun_dpad_up = "nul" +input_player8_gun_dpad_up_btn = "nul" +input_player8_gun_dpad_up_axis = "nul" +input_player8_gun_dpad_up_mbtn = "nul" +input_player8_gun_dpad_down = "nul" +input_player8_gun_dpad_down_btn = "nul" +input_player8_gun_dpad_down_axis = "nul" +input_player8_gun_dpad_down_mbtn = "nul" +input_player8_gun_dpad_left = "nul" +input_player8_gun_dpad_left_btn = "nul" +input_player8_gun_dpad_left_axis = "nul" +input_player8_gun_dpad_left_mbtn = "nul" +input_player8_gun_dpad_right = "nul" +input_player8_gun_dpad_right_btn = "nul" +input_player8_gun_dpad_right_axis = "nul" +input_player8_gun_dpad_right_mbtn = "nul" +input_player8_turbo = "nul" +input_player8_turbo_btn = "nul" +input_player8_turbo_axis = "nul" +input_player8_turbo_mbtn = "nul" +input_player9_b = "nul" +input_player9_b_btn = "nul" +input_player9_b_axis = "nul" +input_player9_b_mbtn = "nul" +input_player9_y = "nul" +input_player9_y_btn = "nul" +input_player9_y_axis = "nul" +input_player9_y_mbtn = "nul" +input_player9_select = "nul" +input_player9_select_btn = "nul" +input_player9_select_axis = "nul" +input_player9_select_mbtn = "nul" +input_player9_start = "nul" +input_player9_start_btn = "nul" +input_player9_start_axis = "nul" +input_player9_start_mbtn = "nul" +input_player9_up = "nul" +input_player9_up_btn = "nul" +input_player9_up_axis = "nul" +input_player9_up_mbtn = "nul" +input_player9_down = "nul" +input_player9_down_btn = "nul" +input_player9_down_axis = "nul" +input_player9_down_mbtn = "nul" +input_player9_left = "nul" +input_player9_left_btn = "nul" +input_player9_left_axis = "nul" +input_player9_left_mbtn = "nul" +input_player9_right = "nul" +input_player9_right_btn = "nul" +input_player9_right_axis = "nul" +input_player9_right_mbtn = "nul" +input_player9_a = "nul" +input_player9_a_btn = "nul" +input_player9_a_axis = "nul" +input_player9_a_mbtn = "nul" +input_player9_x = "nul" +input_player9_x_btn = "nul" +input_player9_x_axis = "nul" +input_player9_x_mbtn = "nul" +input_player9_l = "nul" +input_player9_l_btn = "nul" +input_player9_l_axis = "nul" +input_player9_l_mbtn = "nul" +input_player9_r = "nul" +input_player9_r_btn = "nul" +input_player9_r_axis = "nul" +input_player9_r_mbtn = "nul" +input_player9_l2 = "nul" +input_player9_l2_btn = "nul" +input_player9_l2_axis = "nul" +input_player9_l2_mbtn = "nul" +input_player9_r2 = "nul" +input_player9_r2_btn = "nul" +input_player9_r2_axis = "nul" +input_player9_r2_mbtn = "nul" +input_player9_l3 = "nul" +input_player9_l3_btn = "nul" +input_player9_l3_axis = "nul" +input_player9_l3_mbtn = "nul" +input_player9_r3 = "nul" +input_player9_r3_btn = "nul" +input_player9_r3_axis = "nul" +input_player9_r3_mbtn = "nul" +input_player9_l_x_plus = "nul" +input_player9_l_x_plus_btn = "nul" +input_player9_l_x_plus_axis = "nul" +input_player9_l_x_plus_mbtn = "nul" +input_player9_l_x_minus = "nul" +input_player9_l_x_minus_btn = "nul" +input_player9_l_x_minus_axis = "nul" +input_player9_l_x_minus_mbtn = "nul" +input_player9_l_y_plus = "nul" +input_player9_l_y_plus_btn = "nul" +input_player9_l_y_plus_axis = "nul" +input_player9_l_y_plus_mbtn = "nul" +input_player9_l_y_minus = "nul" +input_player9_l_y_minus_btn = "nul" +input_player9_l_y_minus_axis = "nul" +input_player9_l_y_minus_mbtn = "nul" +input_player9_r_x_plus = "nul" +input_player9_r_x_plus_btn = "nul" +input_player9_r_x_plus_axis = "nul" +input_player9_r_x_plus_mbtn = "nul" +input_player9_r_x_minus = "nul" +input_player9_r_x_minus_btn = "nul" +input_player9_r_x_minus_axis = "nul" +input_player9_r_x_minus_mbtn = "nul" +input_player9_r_y_plus = "nul" +input_player9_r_y_plus_btn = "nul" +input_player9_r_y_plus_axis = "nul" +input_player9_r_y_plus_mbtn = "nul" +input_player9_r_y_minus = "nul" +input_player9_r_y_minus_btn = "nul" +input_player9_r_y_minus_axis = "nul" +input_player9_r_y_minus_mbtn = "nul" +input_player9_gun_trigger = "nul" +input_player9_gun_trigger_btn = "nul" +input_player9_gun_trigger_axis = "nul" +input_player9_gun_trigger_mbtn = "nul" +input_player9_gun_offscreen_shot = "nul" +input_player9_gun_offscreen_shot_btn = "nul" +input_player9_gun_offscreen_shot_axis = "nul" +input_player9_gun_offscreen_shot_mbtn = "nul" +input_player9_gun_aux_a = "nul" +input_player9_gun_aux_a_btn = "nul" +input_player9_gun_aux_a_axis = "nul" +input_player9_gun_aux_a_mbtn = "nul" +input_player9_gun_aux_b = "nul" +input_player9_gun_aux_b_btn = "nul" +input_player9_gun_aux_b_axis = "nul" +input_player9_gun_aux_b_mbtn = "nul" +input_player9_gun_aux_c = "nul" +input_player9_gun_aux_c_btn = "nul" +input_player9_gun_aux_c_axis = "nul" +input_player9_gun_aux_c_mbtn = "nul" +input_player9_gun_start = "nul" +input_player9_gun_start_btn = "nul" +input_player9_gun_start_axis = "nul" +input_player9_gun_start_mbtn = "nul" +input_player9_gun_select = "nul" +input_player9_gun_select_btn = "nul" +input_player9_gun_select_axis = "nul" +input_player9_gun_select_mbtn = "nul" +input_player9_gun_dpad_up = "nul" +input_player9_gun_dpad_up_btn = "nul" +input_player9_gun_dpad_up_axis = "nul" +input_player9_gun_dpad_up_mbtn = "nul" +input_player9_gun_dpad_down = "nul" +input_player9_gun_dpad_down_btn = "nul" +input_player9_gun_dpad_down_axis = "nul" +input_player9_gun_dpad_down_mbtn = "nul" +input_player9_gun_dpad_left = "nul" +input_player9_gun_dpad_left_btn = "nul" +input_player9_gun_dpad_left_axis = "nul" +input_player9_gun_dpad_left_mbtn = "nul" +input_player9_gun_dpad_right = "nul" +input_player9_gun_dpad_right_btn = "nul" +input_player9_gun_dpad_right_axis = "nul" +input_player9_gun_dpad_right_mbtn = "nul" +input_player9_turbo = "nul" +input_player9_turbo_btn = "nul" +input_player9_turbo_axis = "nul" +input_player9_turbo_mbtn = "nul" +input_player10_b = "nul" +input_player10_b_btn = "nul" +input_player10_b_axis = "nul" +input_player10_b_mbtn = "nul" +input_player10_y = "nul" +input_player10_y_btn = "nul" +input_player10_y_axis = "nul" +input_player10_y_mbtn = "nul" +input_player10_select = "nul" +input_player10_select_btn = "nul" +input_player10_select_axis = "nul" +input_player10_select_mbtn = "nul" +input_player10_start = "nul" +input_player10_start_btn = "nul" +input_player10_start_axis = "nul" +input_player10_start_mbtn = "nul" +input_player10_up = "nul" +input_player10_up_btn = "nul" +input_player10_up_axis = "nul" +input_player10_up_mbtn = "nul" +input_player10_down = "nul" +input_player10_down_btn = "nul" +input_player10_down_axis = "nul" +input_player10_down_mbtn = "nul" +input_player10_left = "nul" +input_player10_left_btn = "nul" +input_player10_left_axis = "nul" +input_player10_left_mbtn = "nul" +input_player10_right = "nul" +input_player10_right_btn = "nul" +input_player10_right_axis = "nul" +input_player10_right_mbtn = "nul" +input_player10_a = "nul" +input_player10_a_btn = "nul" +input_player10_a_axis = "nul" +input_player10_a_mbtn = "nul" +input_player10_x = "nul" +input_player10_x_btn = "nul" +input_player10_x_axis = "nul" +input_player10_x_mbtn = "nul" +input_player10_l = "nul" +input_player10_l_btn = "nul" +input_player10_l_axis = "nul" +input_player10_l_mbtn = "nul" +input_player10_r = "nul" +input_player10_r_btn = "nul" +input_player10_r_axis = "nul" +input_player10_r_mbtn = "nul" +input_player10_l2 = "nul" +input_player10_l2_btn = "nul" +input_player10_l2_axis = "nul" +input_player10_l2_mbtn = "nul" +input_player10_r2 = "nul" +input_player10_r2_btn = "nul" +input_player10_r2_axis = "nul" +input_player10_r2_mbtn = "nul" +input_player10_l3 = "nul" +input_player10_l3_btn = "nul" +input_player10_l3_axis = "nul" +input_player10_l3_mbtn = "nul" +input_player10_r3 = "nul" +input_player10_r3_btn = "nul" +input_player10_r3_axis = "nul" +input_player10_r3_mbtn = "nul" +input_player10_l_x_plus = "nul" +input_player10_l_x_plus_btn = "nul" +input_player10_l_x_plus_axis = "nul" +input_player10_l_x_plus_mbtn = "nul" +input_player10_l_x_minus = "nul" +input_player10_l_x_minus_btn = "nul" +input_player10_l_x_minus_axis = "nul" +input_player10_l_x_minus_mbtn = "nul" +input_player10_l_y_plus = "nul" +input_player10_l_y_plus_btn = "nul" +input_player10_l_y_plus_axis = "nul" +input_player10_l_y_plus_mbtn = "nul" +input_player10_l_y_minus = "nul" +input_player10_l_y_minus_btn = "nul" +input_player10_l_y_minus_axis = "nul" +input_player10_l_y_minus_mbtn = "nul" +input_player10_r_x_plus = "nul" +input_player10_r_x_plus_btn = "nul" +input_player10_r_x_plus_axis = "nul" +input_player10_r_x_plus_mbtn = "nul" +input_player10_r_x_minus = "nul" +input_player10_r_x_minus_btn = "nul" +input_player10_r_x_minus_axis = "nul" +input_player10_r_x_minus_mbtn = "nul" +input_player10_r_y_plus = "nul" +input_player10_r_y_plus_btn = "nul" +input_player10_r_y_plus_axis = "nul" +input_player10_r_y_plus_mbtn = "nul" +input_player10_r_y_minus = "nul" +input_player10_r_y_minus_btn = "nul" +input_player10_r_y_minus_axis = "nul" +input_player10_r_y_minus_mbtn = "nul" +input_player10_gun_trigger = "nul" +input_player10_gun_trigger_btn = "nul" +input_player10_gun_trigger_axis = "nul" +input_player10_gun_trigger_mbtn = "nul" +input_player10_gun_offscreen_shot = "nul" +input_player10_gun_offscreen_shot_btn = "nul" +input_player10_gun_offscreen_shot_axis = "nul" +input_player10_gun_offscreen_shot_mbtn = "nul" +input_player10_gun_aux_a = "nul" +input_player10_gun_aux_a_btn = "nul" +input_player10_gun_aux_a_axis = "nul" +input_player10_gun_aux_a_mbtn = "nul" +input_player10_gun_aux_b = "nul" +input_player10_gun_aux_b_btn = "nul" +input_player10_gun_aux_b_axis = "nul" +input_player10_gun_aux_b_mbtn = "nul" +input_player10_gun_aux_c = "nul" +input_player10_gun_aux_c_btn = "nul" +input_player10_gun_aux_c_axis = "nul" +input_player10_gun_aux_c_mbtn = "nul" +input_player10_gun_start = "nul" +input_player10_gun_start_btn = "nul" +input_player10_gun_start_axis = "nul" +input_player10_gun_start_mbtn = "nul" +input_player10_gun_select = "nul" +input_player10_gun_select_btn = "nul" +input_player10_gun_select_axis = "nul" +input_player10_gun_select_mbtn = "nul" +input_player10_gun_dpad_up = "nul" +input_player10_gun_dpad_up_btn = "nul" +input_player10_gun_dpad_up_axis = "nul" +input_player10_gun_dpad_up_mbtn = "nul" +input_player10_gun_dpad_down = "nul" +input_player10_gun_dpad_down_btn = "nul" +input_player10_gun_dpad_down_axis = "nul" +input_player10_gun_dpad_down_mbtn = "nul" +input_player10_gun_dpad_left = "nul" +input_player10_gun_dpad_left_btn = "nul" +input_player10_gun_dpad_left_axis = "nul" +input_player10_gun_dpad_left_mbtn = "nul" +input_player10_gun_dpad_right = "nul" +input_player10_gun_dpad_right_btn = "nul" +input_player10_gun_dpad_right_axis = "nul" +input_player10_gun_dpad_right_mbtn = "nul" +input_player10_turbo = "nul" +input_player10_turbo_btn = "nul" +input_player10_turbo_axis = "nul" +input_player10_turbo_mbtn = "nul" +input_player11_b = "nul" +input_player11_b_btn = "nul" +input_player11_b_axis = "nul" +input_player11_b_mbtn = "nul" +input_player11_y = "nul" +input_player11_y_btn = "nul" +input_player11_y_axis = "nul" +input_player11_y_mbtn = "nul" +input_player11_select = "nul" +input_player11_select_btn = "nul" +input_player11_select_axis = "nul" +input_player11_select_mbtn = "nul" +input_player11_start = "nul" +input_player11_start_btn = "nul" +input_player11_start_axis = "nul" +input_player11_start_mbtn = "nul" +input_player11_up = "nul" +input_player11_up_btn = "nul" +input_player11_up_axis = "nul" +input_player11_up_mbtn = "nul" +input_player11_down = "nul" +input_player11_down_btn = "nul" +input_player11_down_axis = "nul" +input_player11_down_mbtn = "nul" +input_player11_left = "nul" +input_player11_left_btn = "nul" +input_player11_left_axis = "nul" +input_player11_left_mbtn = "nul" +input_player11_right = "nul" +input_player11_right_btn = "nul" +input_player11_right_axis = "nul" +input_player11_right_mbtn = "nul" +input_player11_a = "nul" +input_player11_a_btn = "nul" +input_player11_a_axis = "nul" +input_player11_a_mbtn = "nul" +input_player11_x = "nul" +input_player11_x_btn = "nul" +input_player11_x_axis = "nul" +input_player11_x_mbtn = "nul" +input_player11_l = "nul" +input_player11_l_btn = "nul" +input_player11_l_axis = "nul" +input_player11_l_mbtn = "nul" +input_player11_r = "nul" +input_player11_r_btn = "nul" +input_player11_r_axis = "nul" +input_player11_r_mbtn = "nul" +input_player11_l2 = "nul" +input_player11_l2_btn = "nul" +input_player11_l2_axis = "nul" +input_player11_l2_mbtn = "nul" +input_player11_r2 = "nul" +input_player11_r2_btn = "nul" +input_player11_r2_axis = "nul" +input_player11_r2_mbtn = "nul" +input_player11_l3 = "nul" +input_player11_l3_btn = "nul" +input_player11_l3_axis = "nul" +input_player11_l3_mbtn = "nul" +input_player11_r3 = "nul" +input_player11_r3_btn = "nul" +input_player11_r3_axis = "nul" +input_player11_r3_mbtn = "nul" +input_player11_l_x_plus = "nul" +input_player11_l_x_plus_btn = "nul" +input_player11_l_x_plus_axis = "nul" +input_player11_l_x_plus_mbtn = "nul" +input_player11_l_x_minus = "nul" +input_player11_l_x_minus_btn = "nul" +input_player11_l_x_minus_axis = "nul" +input_player11_l_x_minus_mbtn = "nul" +input_player11_l_y_plus = "nul" +input_player11_l_y_plus_btn = "nul" +input_player11_l_y_plus_btn = "nul" +input_player11_l_y_plus_axis = "nul" +input_player11_l_y_plus_mbtn = "nul" +input_player11_l_y_minus = "nul" +input_player11_l_y_minus_btn = "nul" +input_player11_l_y_minus_axis = "nul" +input_player11_l_y_minus_mbtn = "nul" +input_player11_r_x_plus = "nul" +input_player11_r_x_plus_btn = "nul" +input_player11_r_x_plus_axis = "nul" +input_player11_r_x_plus_mbtn = "nul" +input_player11_r_x_minus = "nul" +input_player11_r_x_minus_btn = "nul" +input_player11_r_x_minus_axis = "nul" +input_player11_r_x_minus_mbtn = "nul" +input_player11_r_y_plus = "nul" +input_player11_r_y_plus_btn = "nul" +input_player11_r_y_plus_axis = "nul" +input_player11_r_y_plus_mbtn = "nul" +input_player11_r_y_minus = "nul" +input_player11_r_y_minus_btn = "nul" +input_player11_r_y_minus_axis = "nul" +input_player11_r_y_minus_mbtn = "nul" +input_player11_gun_trigger = "nul" +input_player11_gun_trigger_btn = "nul" +input_player11_gun_trigger_axis = "nul" +input_player11_gun_trigger_mbtn = "nul" +input_player11_gun_offscreen_shot = "nul" +input_player11_gun_offscreen_shot_btn = "nul" +input_player11_gun_offscreen_shot_axis = "nul" +input_player11_gun_offscreen_shot_mbtn = "nul" +input_player11_gun_aux_a = "nul" +input_player11_gun_aux_a_btn = "nul" +input_player11_gun_aux_a_axis = "nul" +input_player11_gun_aux_a_mbtn = "nul" +input_player11_gun_aux_b = "nul" +input_player11_gun_aux_b_btn = "nul" +input_player11_gun_aux_b_axis = "nul" +input_player11_gun_aux_b_mbtn = "nul" +input_player11_gun_aux_c = "nul" +input_player11_gun_aux_c_btn = "nul" +input_player11_gun_aux_c_axis = "nul" +input_player11_gun_aux_c_mbtn = "nul" +input_player11_gun_start = "nul" +input_player11_gun_start_btn = "nul" +input_player11_gun_start_axis = "nul" +input_player11_gun_start_mbtn = "nul" +input_player11_gun_select = "nul" +input_player11_gun_select_btn = "nul" +input_player11_gun_select_axis = "nul" +input_player11_gun_select_mbtn = "nul" +input_player11_gun_dpad_up = "nul" +input_player11_gun_dpad_up_btn = "nul" +input_player11_gun_dpad_up_axis = "nul" +input_player11_gun_dpad_up_mbtn = "nul" +input_player11_gun_dpad_down = "nul" +input_player11_gun_dpad_down_btn = "nul" +input_player11_gun_dpad_down_axis = "nul" +input_player11_gun_dpad_down_mbtn = "nul" +input_player11_gun_dpad_left = "nul" +input_player11_gun_dpad_left_btn = "nul" +input_player11_gun_dpad_left_axis = "nul" +input_player11_gun_dpad_left_mbtn = "nul" +input_player11_gun_dpad_right = "nul" +input_player11_gun_dpad_right_btn = "nul" +input_player11_gun_dpad_right_axis = "nul" +input_player11_gun_dpad_right_mbtn = "nul" +input_player11_turbo = "nul" +input_player11_turbo_btn = "nul" +input_player11_turbo_axis = "nul" +input_player11_turbo_mbtn = "nul" +input_player12_b = "nul" +input_player12_b_btn = "nul" +input_player12_b_axis = "nul" +input_player12_b_mbtn = "nul" +input_player12_y = "nul" +input_player12_y_btn = "nul" +input_player12_y_axis = "nul" +input_player12_y_mbtn = "nul" +input_player12_select = "nul" +input_player12_select_btn = "nul" +input_player12_select_axis = "nul" +input_player12_select_mbtn = "nul" +input_player12_start = "nul" +input_player12_start_btn = "nul" +input_player12_start_axis = "nul" +input_player12_start_mbtn = "nul" +input_player12_up = "nul" +input_player12_up_btn = "nul" +input_player12_up_axis = "nul" +input_player12_up_mbtn = "nul" +input_player12_down = "nul" +input_player12_down_btn = "nul" +input_player12_down_axis = "nul" +input_player12_down_mbtn = "nul" +input_player12_left = "nul" +input_player12_left_btn = "nul" +input_player12_left_axis = "nul" +input_player12_left_mbtn = "nul" +input_player12_right = "nul" +input_player12_right_btn = "nul" +input_player12_right_axis = "nul" +input_player12_right_mbtn = "nul" +input_player12_a = "nul" +input_player12_a_btn = "nul" +input_player12_a_axis = "nul" +input_player12_a_mbtn = "nul" +input_player12_x = "nul" +input_player12_x_btn = "nul" +input_player12_x_axis = "nul" +input_player12_x_mbtn = "nul" +input_player12_l = "nul" +input_player12_l_btn = "nul" +input_player12_l_axis = "nul" +input_player12_l_mbtn = "nul" +input_player12_r = "nul" +input_player12_r_btn = "nul" +input_player12_r_axis = "nul" +input_player12_r_mbtn = "nul" +input_player12_l2 = "nul" +input_player12_l2_btn = "nul" +input_player12_l2_axis = "nul" +input_player12_l2_mbtn = "nul" +input_player12_r2 = "nul" +input_player12_r2_btn = "nul" +input_player12_r2_axis = "nul" +input_player12_r2_mbtn = "nul" +input_player12_l3 = "nul" +input_player12_l3_btn = "nul" +input_player12_l3_axis = "nul" +input_player12_l3_mbtn = "nul" +input_player12_r3 = "nul" +input_player12_r3_btn = "nul" +input_player12_r3_axis = "nul" +input_player12_r3_mbtn = "nul" +input_player12_l_x_plus = "nul" +input_player12_l_x_plus_btn = "nul" +input_player12_l_x_plus_axis = "nul" +input_player12_l_x_plus_mbtn = "nul" +input_player12_l_x_minus = "nul" +input_player12_l_x_minus_btn = "nul" +input_player12_l_x_minus_axis = "nul" +input_player12_l_x_minus_mbtn = "nul" +input_player12_l_y_plus = "nul" +input_player12_l_y_plus_btn = "nul" +input_player12_l_y_plus_axis = "nul" +input_player12_l_y_plus_mbtn = "nul" +input_player12_l_y_minus = "nul" +input_player12_l_y_minus_btn = "nul" +input_player12_l_y_minus_axis = "nul" +input_player12_l_y_minus_mbtn = "nul" +input_player12_r_x_plus = "nul" +input_player12_r_x_plus_btn = "nul" +input_player12_r_x_plus_axis = "nul" +input_player12_r_x_plus_mbtn = "nul" +input_player12_r_x_minus = "nul" +input_player12_r_x_minus_btn = "nul" +input_player12_r_x_minus_axis = "nul" +input_player12_r_x_minus_mbtn = "nul" +input_player12_r_y_plus = "nul" +input_player12_r_y_plus_btn = "nul" +input_player12_r_y_plus_axis = "nul" +input_player12_r_y_plus_mbtn = "nul" +input_player12_r_y_minus = "nul" +input_player12_r_y_minus_btn = "nul" +input_player12_r_y_minus_axis = "nul" +input_player12_r_y_minus_mbtn = "nul" +input_player12_gun_trigger = "nul" +input_player12_gun_trigger_btn = "nul" +input_player12_gun_trigger_axis = "nul" +input_player12_gun_trigger_mbtn = "nul" +input_player12_gun_offscreen_shot = "nul" +input_player12_gun_offscreen_shot_btn = "nul" +input_player12_gun_offscreen_shot_axis = "nul" +input_player12_gun_offscreen_shot_mbtn = "nul" +input_player12_gun_aux_a = "nul" +input_player12_gun_aux_a_btn = "nul" +input_player12_gun_aux_a_axis = "nul" +input_player12_gun_aux_a_mbtn = "nul" +input_player12_gun_aux_b = "nul" +input_player12_gun_aux_b_btn = "nul" +input_player12_gun_aux_b_axis = "nul" +input_player12_gun_aux_b_mbtn = "nul" +input_player12_gun_aux_c = "nul" +input_player12_gun_aux_c_btn = "nul" +input_player12_gun_aux_c_axis = "nul" +input_player12_gun_aux_c_mbtn = "nul" +input_player12_gun_start = "nul" +input_player12_gun_start_btn = "nul" +input_player12_gun_start_axis = "nul" +input_player12_gun_start_mbtn = "nul" +input_player12_gun_select = "nul" +input_player12_gun_select_btn = "nul" +input_player12_gun_select_axis = "nul" +input_player12_gun_select_mbtn = "nul" +input_player12_gun_dpad_up = "nul" +input_player12_gun_dpad_up_btn = "nul" +input_player12_gun_dpad_up_axis = "nul" +input_player12_gun_dpad_up_mbtn = "nul" +input_player12_gun_dpad_down = "nul" +input_player12_gun_dpad_down_btn = "nul" +input_player12_gun_dpad_down_axis = "nul" +input_player12_gun_dpad_down_mbtn = "nul" +input_player12_gun_dpad_left = "nul" +input_player12_gun_dpad_left_btn = "nul" +input_player12_gun_dpad_left_axis = "nul" +input_player12_gun_dpad_left_mbtn = "nul" +input_player12_gun_dpad_right = "nul" +input_player12_gun_dpad_right_btn = "nul" +input_player12_gun_dpad_right_axis = "nul" +input_player12_gun_dpad_right_mbtn = "nul" +input_player12_turbo = "nul" +input_player12_turbo_btn = "nul" +input_player12_turbo_axis = "nul" +input_player12_turbo_mbtn = "nul" +input_player13_b = "nul" +input_player13_b_btn = "nul" +input_player13_b_axis = "nul" +input_player13_b_mbtn = "nul" +input_player13_y = "nul" +input_player13_y_btn = "nul" +input_player13_y_axis = "nul" +input_player13_y_mbtn = "nul" +input_player13_select = "nul" +input_player13_select_btn = "nul" +input_player13_select_axis = "nul" +input_player13_select_mbtn = "nul" +input_player13_start = "nul" +input_player13_start_btn = "nul" +input_player13_start_axis = "nul" +input_player13_start_mbtn = "nul" +input_player13_up = "nul" +input_player13_up_btn = "nul" +input_player13_up_axis = "nul" +input_player13_up_mbtn = "nul" +input_player13_down = "nul" +input_player13_down_btn = "nul" +input_player13_down_axis = "nul" +input_player13_down_mbtn = "nul" +input_player13_left = "nul" +input_player13_left_btn = "nul" +input_player13_left_axis = "nul" +input_player13_left_mbtn = "nul" +input_player13_right = "nul" +input_player13_right_btn = "nul" +input_player13_right_axis = "nul" +input_player13_right_mbtn = "nul" +input_player13_a = "nul" +input_player13_a_btn = "nul" +input_player13_a_axis = "nul" +input_player13_a_mbtn = "nul" +input_player13_x = "nul" +input_player13_x_btn = "nul" +input_player13_x_axis = "nul" +input_player13_x_mbtn = "nul" +input_player13_l = "nul" +input_player13_l_btn = "nul" +input_player13_l_axis = "nul" +input_player13_l_mbtn = "nul" +input_player13_r = "nul" +input_player13_r_btn = "nul" +input_player13_r_axis = "nul" +input_player13_r_mbtn = "nul" +input_player13_l2 = "nul" +input_player13_l2_btn = "nul" +input_player13_l2_axis = "nul" +input_player13_l2_mbtn = "nul" +input_player13_r2 = "nul" +input_player13_r2_btn = "nul" +input_player13_r2_axis = "nul" +input_player13_r2_mbtn = "nul" +input_player13_l3 = "nul" +input_player13_l3_btn = "nul" +input_player13_l3_axis = "nul" +input_player13_l3_mbtn = "nul" +input_player13_r3 = "nul" +input_player13_r3_btn = "nul" +input_player13_r3_axis = "nul" +input_player13_r3_mbtn = "nul" +input_player13_l_x_plus = "nul" +input_player13_l_x_plus_btn = "nul" +input_player13_l_x_plus_axis = "nul" +input_player13_l_x_plus_mbtn = "nul" +input_player13_l_x_minus = "nul" +input_player13_l_x_minus_btn = "nul" +input_player13_l_x_minus_axis = "nul" +input_player13_l_x_minus_mbtn = "nul" +input_player13_l_y_plus = "nul" +input_player13_l_y_plus_btn = "nul" +input_player13_l_y_plus_axis = "nul" +input_player13_l_y_plus_mbtn = "nul" +input_player13_l_y_minus = "nul" +input_player13_l_y_minus_btn = "nul" +input_player13_l_y_minus_axis = "nul" +input_player13_l_y_minus_mbtn = "nul" +input_player13_r_x_plus = "nul" +input_player13_r_x_plus_btn = "nul" +input_player13_r_x_plus_axis = "nul" +input_player13_r_x_plus_mbtn = "nul" +input_player13_r_x_minus = "nul" +input_player13_r_x_minus_btn = "nul" +input_player13_r_x_minus_axis = "nul" +input_player13_r_x_minus_mbtn = "nul" +input_player13_r_y_plus = "nul" +input_player13_r_y_plus_btn = "nul" +input_player13_r_y_plus_axis = "nul" +input_player13_r_y_plus_mbtn = "nul" +input_player13_r_y_minus = "nul" +input_player13_r_y_minus_btn = "nul" +input_player13_r_y_minus_axis = "nul" +input_player13_r_y_minus_mbtn = "nul" +input_player13_gun_trigger = "nul" +input_player13_gun_trigger_btn = "nul" +input_player13_gun_trigger_axis = "nul" +input_player13_gun_trigger_mbtn = "nul" +input_player13_gun_offscreen_shot = "nul" +input_player13_gun_offscreen_shot_btn = "nul" +input_player13_gun_offscreen_shot_axis = "nul" +input_player13_gun_offscreen_shot_mbtn = "nul" +input_player13_gun_aux_a = "nul" +input_player13_gun_aux_a_btn = "nul" +input_player13_gun_aux_a_axis = "nul" +input_player13_gun_aux_a_mbtn = "nul" +input_player13_gun_aux_b = "nul" +input_player13_gun_aux_b_btn = "nul" +input_player13_gun_aux_b_axis = "nul" +input_player13_gun_aux_b_mbtn = "nul" +input_player13_gun_aux_c = "nul" +input_player13_gun_aux_c_btn = "nul" +input_player13_gun_aux_c_axis = "nul" +input_player13_gun_aux_c_mbtn = "nul" +input_player13_gun_start = "nul" +input_player13_gun_start_btn = "nul" +input_player13_gun_start_axis = "nul" +input_player13_gun_start_mbtn = "nul" +input_player13_gun_select = "nul" +input_player13_gun_select_btn = "nul" +input_player13_gun_select_axis = "nul" +input_player13_gun_select_mbtn = "nul" +input_player13_gun_dpad_up = "nul" +input_player13_gun_dpad_up_btn = "nul" +input_player13_gun_dpad_up_axis = "nul" +input_player13_gun_dpad_up_mbtn = "nul" +input_player13_gun_dpad_down = "nul" +input_player13_gun_dpad_down_btn = "nul" +input_player13_gun_dpad_down_axis = "nul" +input_player13_gun_dpad_down_mbtn = "nul" +input_player13_gun_dpad_left = "nul" +input_player13_gun_dpad_left_btn = "nul" +input_player13_gun_dpad_left_axis = "nul" +input_player13_gun_dpad_left_mbtn = "nul" +input_player13_gun_dpad_right = "nul" +input_player13_gun_dpad_right_btn = "nul" +input_player13_gun_dpad_right_axis = "nul" +input_player13_gun_dpad_right_mbtn = "nul" +input_player13_turbo = "nul" +input_player13_turbo_btn = "nul" +input_player13_turbo_axis = "nul" +input_player13_turbo_mbtn = "nul" +input_player14_b = "nul" +input_player14_b_btn = "nul" +input_player14_b_axis = "nul" +input_player14_b_mbtn = "nul" +input_player14_y = "nul" +input_player14_y_btn = "nul" +input_player14_y_axis = "nul" +input_player14_y_mbtn = "nul" +input_player14_select = "nul" +input_player14_select_btn = "nul" +input_player14_select_axis = "nul" +input_player14_select_mbtn = "nul" +input_player14_start = "nul" +input_player14_start_btn = "nul" +input_player14_start_axis = "nul" +input_player14_start_mbtn = "nul" +input_player14_up = "nul" +input_player14_up_btn = "nul" +input_player14_up_axis = "nul" +input_player14_up_mbtn = "nul" +input_player14_down = "nul" +input_player14_down_btn = "nul" +input_player14_down_axis = "nul" +input_player14_down_mbtn = "nul" +input_player14_left = "nul" +input_player14_left_btn = "nul" +input_player14_left_axis = "nul" +input_player14_left_mbtn = "nul" +input_player14_right = "nul" +input_player14_right_btn = "nul" +input_player14_right_axis = "nul" +input_player14_right_mbtn = "nul" +input_player14_a = "nul" +input_player14_a_btn = "nul" +input_player14_a_axis = "nul" +input_player14_a_mbtn = "nul" +input_player14_x = "nul" +input_player14_x_btn = "nul" +input_player14_x_axis = "nul" +input_player14_x_mbtn = "nul" +input_player14_l = "nul" +input_player14_l_btn = "nul" +input_player14_l_axis = "nul" +input_player14_l_mbtn = "nul" +input_player14_r = "nul" +input_player14_r_btn = "nul" +input_player14_r_axis = "nul" +input_player14_r_mbtn = "nul" +input_player14_l2 = "nul" +input_player14_l2_btn = "nul" +input_player14_l2_axis = "nul" +input_player14_l2_mbtn = "nul" +input_player14_r2 = "nul" +input_player14_r2_btn = "nul" +input_player14_r2_axis = "nul" +input_player14_r2_mbtn = "nul" +input_player14_l3 = "nul" +input_player14_l3_btn = "nul" +input_player14_l3_axis = "nul" +input_player14_l3_mbtn = "nul" +input_player14_r3 = "nul" +input_player14_r3_btn = "nul" +input_player14_r3_axis = "nul" +input_player14_r3_mbtn = "nul" +input_player14_l_x_plus = "nul" +input_player14_l_x_plus_btn = "nul" +input_player14_l_x_plus_axis = "nul" +input_player14_l_x_plus_mbtn = "nul" +input_player14_l_x_minus = "nul" +input_player14_l_x_minus_btn = "nul" +input_player14_l_x_minus_axis = "nul" +input_player14_l_x_minus_mbtn = "nul" +input_player14_l_y_plus = "nul" +input_player14_l_y_plus_btn = "nul" +input_player14_l_y_plus_axis = "nul" +input_player14_l_y_plus_mbtn = "nul" +input_player14_l_y_minus = "nul" +input_player14_l_y_minus_btn = "nul" +input_player14_l_y_minus_axis = "nul" +input_player14_l_y_minus_mbtn = "nul" +input_player14_r_x_plus = "nul" +input_player14_r_x_plus_btn = "nul" +input_player14_r_x_plus_axis = "nul" +input_player14_r_x_plus_mbtn = "nul" +input_player14_r_x_minus = "nul" +input_player14_r_x_minus_btn = "nul" +input_player14_r_x_minus_axis = "nul" +input_player14_r_x_minus_mbtn = "nul" +input_player14_r_y_plus = "nul" +input_player14_r_y_plus_btn = "nul" +input_player14_r_y_plus_axis = "nul" +input_player14_r_y_plus_mbtn = "nul" +input_player14_r_y_minus = "nul" +input_player14_r_y_minus_btn = "nul" +input_player14_r_y_minus_axis = "nul" +input_player14_r_y_minus_mbtn = "nul" +input_player14_gun_trigger = "nul" +input_player14_gun_trigger_btn = "nul" +input_player14_gun_trigger_axis = "nul" +input_player14_gun_trigger_mbtn = "nul" +input_player14_gun_offscreen_shot = "nul" +input_player14_gun_offscreen_shot_btn = "nul" +input_player14_gun_offscreen_shot_axis = "nul" +input_player14_gun_offscreen_shot_mbtn = "nul" +input_player14_gun_aux_a = "nul" +input_player14_gun_aux_a_btn = "nul" +input_player14_gun_aux_a_axis = "nul" +input_player14_gun_aux_a_mbtn = "nul" +input_player14_gun_aux_b = "nul" +input_player14_gun_aux_b_btn = "nul" +input_player14_gun_aux_b_axis = "nul" +input_player14_gun_aux_b_mbtn = "nul" +input_player14_gun_aux_c = "nul" +input_player14_gun_aux_c_btn = "nul" +input_player14_gun_aux_c_axis = "nul" +input_player14_gun_aux_c_mbtn = "nul" +input_player14_gun_start = "nul" +input_player14_gun_start_btn = "nul" +input_player14_gun_start_axis = "nul" +input_player14_gun_start_mbtn = "nul" +input_player14_gun_select = "nul" +input_player14_gun_select_btn = "nul" +input_player14_gun_select_axis = "nul" +input_player14_gun_select_mbtn = "nul" +input_player14_gun_dpad_up = "nul" +input_player14_gun_dpad_up_btn = "nul" +input_player14_gun_dpad_up_axis = "nul" +input_player14_gun_dpad_up_mbtn = "nul" +input_player14_gun_dpad_down = "nul" +input_player14_gun_dpad_down_btn = "nul" +input_player14_gun_dpad_down_axis = "nul" +input_player14_gun_dpad_down_mbtn = "nul" +input_player14_gun_dpad_left = "nul" +input_player14_gun_dpad_left_btn = "nul" +input_player14_gun_dpad_left_axis = "nul" +input_player14_gun_dpad_left_mbtn = "nul" +input_player14_gun_dpad_right = "nul" +input_player14_gun_dpad_right_btn = "nul" +input_player14_gun_dpad_right_axis = "nul" +input_player14_gun_dpad_right_mbtn = "nul" +input_player14_turbo = "nul" +input_player14_turbo_btn = "nul" +input_player14_turbo_axis = "nul" +input_player14_turbo_mbtn = "nul" +input_player15_b = "nul" +input_player15_b_btn = "nul" +input_player15_b_axis = "nul" +input_player15_b_mbtn = "nul" +input_player15_y = "nul" +input_player15_y_btn = "nul" +input_player15_y_axis = "nul" +input_player15_y_mbtn = "nul" +input_player15_select = "nul" +input_player15_select_btn = "nul" +input_player15_select_axis = "nul" +input_player15_select_mbtn = "nul" +input_player15_start = "nul" +input_player15_start_btn = "nul" +input_player15_start_axis = "nul" +input_player15_start_mbtn = "nul" +input_player15_up = "nul" +input_player15_up_btn = "nul" +input_player15_up_axis = "nul" +input_player15_up_mbtn = "nul" +input_player15_down = "nul" +input_player15_down_btn = "nul" +input_player15_down_axis = "nul" +input_player15_down_mbtn = "nul" +input_player15_left = "nul" +input_player15_left_btn = "nul" +input_player15_left_axis = "nul" +input_player15_left_mbtn = "nul" +input_player15_right = "nul" +input_player15_right_btn = "nul" +input_player15_right_axis = "nul" +input_player15_right_mbtn = "nul" +input_player15_a = "nul" +input_player15_a_btn = "nul" +input_player15_a_axis = "nul" +input_player15_a_mbtn = "nul" +input_player15_x = "nul" +input_player15_x_btn = "nul" +input_player15_x_axis = "nul" +input_player15_x_mbtn = "nul" +input_player15_l = "nul" +input_player15_l_btn = "nul" +input_player15_l_axis = "nul" +input_player15_l_mbtn = "nul" +input_player15_r = "nul" +input_player15_r_btn = "nul" +input_player15_r_axis = "nul" +input_player15_r_mbtn = "nul" +input_player15_l2 = "nul" +input_player15_l2_btn = "nul" +input_player15_l2_axis = "nul" +input_player15_l2_mbtn = "nul" +input_player15_r2 = "nul" +input_player15_r2_btn = "nul" +input_player15_r2_axis = "nul" +input_player15_r2_mbtn = "nul" +input_player15_l3 = "nul" +input_player15_l3_btn = "nul" +input_player15_l3_axis = "nul" +input_player15_l3_mbtn = "nul" +input_player15_r3 = "nul" +input_player15_r3_btn = "nul" +input_player15_r3_axis = "nul" +input_player15_r3_mbtn = "nul" +input_player15_l_x_plus = "nul" +input_player15_l_x_plus_btn = "nul" +input_player15_l_x_plus_axis = "nul" +input_player15_l_x_plus_mbtn = "nul" +input_player15_l_x_minus = "nul" +input_player15_l_x_minus_btn = "nul" +input_player15_l_x_minus_axis = "nul" +input_player15_l_x_minus_mbtn = "nul" +input_player15_l_y_plus = "nul" +input_player15_l_y_plus_btn = "nul" +input_player15_l_y_plus_axis = "nul" +input_player15_l_y_plus_mbtn = "nul" +input_player15_l_y_minus = "nul" +input_player15_l_y_minus_btn = "nul" +input_player15_l_y_minus_axis = "nul" +input_player15_l_y_minus_mbtn = "nul" +input_player15_r_x_plus = "nul" +input_player15_r_x_plus_btn = "nul" +input_player15_r_x_plus_axis = "nul" +input_player15_r_x_plus_mbtn = "nul" +input_player15_r_x_minus = "nul" +input_player15_r_x_minus_btn = "nul" +input_player15_r_x_minus_axis = "nul" +input_player15_r_x_minus_mbtn = "nul" +input_player15_r_y_plus = "nul" +input_player15_r_y_plus_btn = "nul" +input_player15_r_y_plus_axis = "nul" +input_player15_r_y_plus_mbtn = "nul" +input_player15_r_y_minus = "nul" +input_player15_r_y_minus_btn = "nul" +input_player15_r_y_minus_axis = "nul" +input_player15_r_y_minus_mbtn = "nul" +input_player15_gun_trigger = "nul" +input_player15_gun_trigger_btn = "nul" +input_player15_gun_trigger_axis = "nul" +input_player15_gun_trigger_mbtn = "nul" +input_player15_gun_offscreen_shot = "nul" +input_player15_gun_offscreen_shot_btn = "nul" +input_player15_gun_offscreen_shot_axis = "nul" +input_player15_gun_offscreen_shot_mbtn = "nul" +input_player15_gun_aux_a = "nul" +input_player15_gun_aux_a_btn = "nul" +input_player15_gun_aux_a_axis = "nul" +input_player15_gun_aux_a_mbtn = "nul" +input_player15_gun_aux_b = "nul" +input_player15_gun_aux_b_btn = "nul" +input_player15_gun_aux_b_axis = "nul" +input_player15_gun_aux_b_mbtn = "nul" +input_player15_gun_aux_c = "nul" +input_player15_gun_aux_c_btn = "nul" +input_player15_gun_aux_c_axis = "nul" +input_player15_gun_aux_c_mbtn = "nul" +input_player15_gun_start = "nul" +input_player15_gun_start_btn = "nul" +input_player15_gun_start_axis = "nul" +input_player15_gun_start_mbtn = "nul" +input_player15_gun_select = "nul" +input_player15_gun_select_btn = "nul" +input_player15_gun_select_axis = "nul" +input_player15_gun_select_mbtn = "nul" +input_player15_gun_dpad_up = "nul" +input_player15_gun_dpad_up_btn = "nul" +input_player15_gun_dpad_up_axis = "nul" +input_player15_gun_dpad_up_mbtn = "nul" +input_player15_gun_dpad_down = "nul" +input_player15_gun_dpad_down_btn = "nul" +input_player15_gun_dpad_down_axis = "nul" +input_player15_gun_dpad_down_mbtn = "nul" +input_player15_gun_dpad_left = "nul" +input_player15_gun_dpad_left_btn = "nul" +input_player15_gun_dpad_left_axis = "nul" +input_player15_gun_dpad_left_mbtn = "nul" +input_player15_gun_dpad_right = "nul" +input_player15_gun_dpad_right_btn = "nul" +input_player15_gun_dpad_right_axis = "nul" +input_player15_gun_dpad_right_mbtn = "nul" +input_player15_turbo = "nul" +input_player15_turbo_btn = "nul" +input_player15_turbo_axis = "nul" +input_player15_turbo_mbtn = "nul" +input_player16_b = "nul" +input_player16_b_btn = "nul" +input_player16_b_axis = "nul" +input_player16_b_mbtn = "nul" +input_player16_y = "nul" +input_player16_y_btn = "nul" +input_player16_y_axis = "nul" +input_player16_y_mbtn = "nul" +input_player16_select = "nul" +input_player16_select_btn = "nul" +input_player16_select_axis = "nul" +input_player16_select_mbtn = "nul" +input_player16_start = "nul" +input_player16_start_btn = "nul" +input_player16_start_axis = "nul" +input_player16_start_mbtn = "nul" +input_player16_up = "nul" +input_player16_up_btn = "nul" +input_player16_up_axis = "nul" +input_player16_up_mbtn = "nul" +input_player16_down = "nul" +input_player16_down_btn = "nul" +input_player16_down_axis = "nul" +input_player16_down_mbtn = "nul" +input_player16_left = "nul" +input_player16_left_btn = "nul" +input_player16_left_axis = "nul" +input_player16_left_mbtn = "nul" +input_player16_right = "nul" +input_player16_right_btn = "nul" +input_player16_right_axis = "nul" +input_player16_right_mbtn = "nul" +input_player16_a = "nul" +input_player16_a_btn = "nul" +input_player16_a_axis = "nul" +input_player16_a_mbtn = "nul" +input_player16_x = "nul" +input_player16_x_btn = "nul" +input_player16_x_axis = "nul" +input_player16_x_mbtn = "nul" +input_player16_l = "nul" +input_player16_l_btn = "nul" +input_player16_l_axis = "nul" +input_player16_l_mbtn = "nul" +input_player16_r = "nul" +input_player16_r_btn = "nul" +input_player16_r_axis = "nul" +input_player16_r_mbtn = "nul" +input_player16_l2 = "nul" +input_player16_l2_btn = "nul" +input_player16_l2_axis = "nul" +input_player16_l2_mbtn = "nul" +input_player16_r2 = "nul" +input_player16_r2_btn = "nul" +input_player16_r2_axis = "nul" +input_player16_r2_mbtn = "nul" +input_player16_l3 = "nul" +input_player16_l3_btn = "nul" +input_player16_l3_axis = "nul" +input_player16_l3_mbtn = "nul" +input_player16_r3 = "nul" +input_player16_r3_btn = "nul" +input_player16_r3_axis = "nul" +input_player16_r3_mbtn = "nul" +input_player16_l_x_plus = "nul" +input_player16_l_x_plus_btn = "nul" +input_player16_l_x_plus_axis = "nul" +input_player16_l_x_plus_mbtn = "nul" +input_player16_l_x_minus = "nul" +input_player16_l_x_minus_btn = "nul" +input_player16_l_x_minus_axis = "nul" +input_player16_l_x_minus_mbtn = "nul" +input_player16_l_y_plus = "nul" +input_player16_l_y_plus_btn = "nul" +input_player16_l_y_plus_axis = "nul" +input_player16_l_y_plus_mbtn = "nul" +input_player16_l_y_minus = "nul" +input_player16_l_y_minus_btn = "nul" +input_player16_l_y_minus_axis = "nul" +input_player16_l_y_minus_mbtn = "nul" +input_player16_r_x_plus = "nul" +input_player16_r_x_plus_btn = "nul" +input_player16_r_x_plus_axis = "nul" +input_player16_r_x_plus_mbtn = "nul" +input_player16_r_x_minus = "nul" +input_player16_r_x_minus_btn = "nul" +input_player16_r_x_minus_axis = "nul" +input_player16_r_x_minus_mbtn = "nul" +input_player16_r_y_plus = "nul" +input_player16_r_y_plus_btn = "nul" +input_player16_r_y_plus_axis = "nul" +input_player16_r_y_plus_mbtn = "nul" +input_player16_r_y_minus = "nul" +input_player16_r_y_minus_btn = "nul" +input_player16_r_y_minus_axis = "nul" +input_player16_r_y_minus_mbtn = "nul" +input_player16_gun_trigger = "nul" +input_player16_gun_trigger_btn = "nul" +input_player16_gun_trigger_axis = "nul" +input_player16_gun_trigger_mbtn = "nul" +input_player16_gun_offscreen_shot = "nul" +input_player16_gun_offscreen_shot_btn = "nul" +input_player16_gun_offscreen_shot_axis = "nul" +input_player16_gun_offscreen_shot_mbtn = "nul" +input_player16_gun_aux_a = "nul" +input_player16_gun_aux_a_btn = "nul" +input_player16_gun_aux_a_axis = "nul" +input_player16_gun_aux_a_mbtn = "nul" +input_player16_gun_aux_b = "nul" +input_player16_gun_aux_b_btn = "nul" +input_player16_gun_aux_b_axis = "nul" +input_player16_gun_aux_b_mbtn = "nul" +input_player16_gun_aux_c = "nul" +input_player16_gun_aux_c_btn = "nul" +input_player16_gun_aux_c_axis = "nul" +input_player16_gun_aux_c_mbtn = "nul" +input_player16_gun_start = "nul" +input_player16_gun_start_btn = "nul" +input_player16_gun_start_axis = "nul" +input_player16_gun_start_mbtn = "nul" +input_player16_gun_select = "nul" +input_player16_gun_select_btn = "nul" +input_player16_gun_select_axis = "nul" +input_player16_gun_select_mbtn = "nul" +input_player16_gun_dpad_up = "nul" +input_player16_gun_dpad_up_btn = "nul" +input_player16_gun_dpad_up_axis = "nul" +input_player16_gun_dpad_up_mbtn = "nul" +input_player16_gun_dpad_down = "nul" +input_player16_gun_dpad_down_btn = "nul" +input_player16_gun_dpad_down_axis = "nul" +input_player16_gun_dpad_down_mbtn = "nul" +input_player16_gun_dpad_left = "nul" +input_player16_gun_dpad_left_btn = "nul" +input_player16_gun_dpad_left_axis = "nul" +input_player16_gun_dpad_left_mbtn = "nul" +input_player16_gun_dpad_right = "nul" +input_player16_gun_dpad_right_btn = "nul" +input_player16_gun_dpad_right_axis = "nul" +input_player16_gun_dpad_right_mbtn = "nul" +input_player16_turbo = "nul" +input_player16_turbo_btn = "nul" +input_player16_turbo_axis = "nul" +input_player16_turbo_mbtn = "nul" +content_history_path = "/switch/content_history.lpl" +content_favorites_path = "/switch/content_favorites.lpl" +content_music_history_path = "/switch/content_music_history.lpl" +content_video_history_path = "/switch/content_video_history.lpl" +content_image_history_path = "/switch/content_image_history.lpl" +content_show_settings_password = "" +kiosk_mode_password = "" +netplay_nickname = "" +video_filter = "" +audio_dsp_plugin = "" +core_updater_buildbot_url = "" +libretro_directory = "" +core_options_path = "" +libretro_info_path = "" +video_shader = "" +content_database_path = "" +cheat_database_path = "" +menu_wallpaper = "" +video_font_path = "" +cursor_directory = "" +content_history_dir = "" +cache_directory = "" +input_remapping_directory = "" +resampler_directory = "" +joypad_autoconfig_dir = "" +libretro_path = "" +recording_output_directory = "" +recording_config_directory = "" +xmb_font = "" +playlist_names = "" +playlist_cores = "" +audio_device = "" +camera_device = "" +video_context_driver = "" +input_keyboard_layout = "" +bundle_assets_src_path = "" +bundle_assets_dst_path = "" +bundle_assets_dst_path_subdir = "" -- GitLab From efbd288ff0dbb39e4dd538c805604fe9f7bb334c Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 1 Jun 2018 21:12:06 +0200 Subject: [PATCH 054/211] Add SNES Overlay. --- NintendoSNES.cfg | 4 ++++ NintendoSNES.png | Bin 0 -> 193895 bytes 2 files changed, 4 insertions(+) create mode 100644 NintendoSNES.cfg create mode 100644 NintendoSNES.png diff --git a/NintendoSNES.cfg b/NintendoSNES.cfg new file mode 100644 index 0000000000..9af24c3764 --- /dev/null +++ b/NintendoSNES.cfg @@ -0,0 +1,4 @@ +overlays = 1 +overlay0_overlay = ./NintendoSNES.png +overlay0_full_screen = true +overlay0_descs = 0 diff --git a/NintendoSNES.png b/NintendoSNES.png new file mode 100644 index 0000000000000000000000000000000000000000..626c0274dd0ee3f33f3ef205d2041400b2fa4c5b GIT binary patch literal 193895 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

  • rSHDg! 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 literal 0 HcmV?d00001 -- GitLab From cfe46aa6b6e3c2dfe466a6a78f712657070a8726 Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 1 Jun 2018 21:12:18 +0200 Subject: [PATCH 055/211] Overlay disable fix. --- gfx/drivers/switch_gfx.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index 33e1a742e4..3bdff7e1f0 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -456,6 +456,8 @@ static void switch_overlay_enable(void *data, bool state) if (!swa) return; + + swa->overlay_enabled = state; } static bool switch_overlay_load(void *data, -- GitLab From f6dcd2365bb66c82c87bbdbd5d60bb12ef1b8d0e Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 1 Jun 2018 21:21:11 +0200 Subject: [PATCH 056/211] Bump ver. --- Makefile.switch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.switch b/Makefile.switch index fc39cb190f..040a458d7c 100644 --- a/Makefile.switch +++ b/Makefile.switch @@ -75,7 +75,7 @@ ROMFS := romfs APP_ICON := icon.jpg APP_TITLE := RetroArch SNES9x libNX -APP_VERSION := 0.1 +APP_VERSION := 0.8 APP_AUTHOR := M4xw, Credit: Reswitched, libretro #--------------------------------------------------------------------------------- -- GitLab From 446d666abe7834060d7af3317d83a13aaec8fe46 Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 2 Jun 2018 00:09:57 +0200 Subject: [PATCH 057/211] :> --- gfx/drivers/switch_gfx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index 3bdff7e1f0..e9a728bb3a 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -201,6 +201,7 @@ static bool switch_frame(void *data, const void *frame, centery = (720 - tgth) / 2; // Very simple, no overhead (we loop through them anyway!) + // TODO: memcpy?? duh. if (sw->overlay_enabled) { for (y = 0; y < 720; y++) -- GitLab From 44b5a301ef3984c3ce07890b871f1e900f13b59b Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 2 Jun 2018 14:04:37 +0200 Subject: [PATCH 058/211] Add stubs. --- Makefile.switch | 3 ++- frontend/frontend_driver.c | 4 ++++ libretro-common/dynamic/dylib.c | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Makefile.switch b/Makefile.switch index 040a458d7c..ca2a223515 100644 --- a/Makefile.switch +++ b/Makefile.switch @@ -17,7 +17,7 @@ GRIFFIN_BUILD = 0 OBJ := -DEFINES := -DSWITCH=1 -U__linux__ -U__linux -DRARCH_INTERNAL -DGLOBAL_CONFIG_DIR='"/switch"' +DEFINES := -DSWITCH=1 -U__linux__ -U__linux -DRARCH_INTERNAL -DHAVE_DYNAMIC -DGLOBAL_CONFIG_DIR='"/switch"' HAVE_CC_RESAMPLER = 1 HAVE_MENU_COMMON = 1 @@ -37,6 +37,7 @@ HAVE_STATIC_AUDIO_FILTERS = 1 HAVE_MENU = 1 HAVE_RUNAHEAD = 1 HAVE_OVERLAY = 1 +HAVE_DYNAMIC = 1 include Makefile.common BLACKLIST := diff --git a/frontend/frontend_driver.c b/frontend/frontend_driver.c index 8799a17375..c3989abc95 100644 --- a/frontend/frontend_driver.c +++ b/frontend/frontend_driver.c @@ -119,6 +119,10 @@ bool frontend_driver_get_core_extension(char *s, size_t len) #elif defined(__APPLE__) || defined(__MACH__) strlcpy(s, "dylib", len); return true; +#elseif defined(SWITCH) + // No dlopen in current nx toolchain + strlcpy(s, "nro", len); + return true; #else strlcpy(s, "so", len); return true; diff --git a/libretro-common/dynamic/dylib.c b/libretro-common/dynamic/dylib.c index bc6be9fc40..0a706bc63a 100644 --- a/libretro-common/dynamic/dylib.c +++ b/libretro-common/dynamic/dylib.c @@ -30,6 +30,8 @@ #ifdef _WIN32 #include #include +#elif defined(SWITCH) +#define RTLD_LAZY (0) #else #include #endif -- GitLab From 3f8fe888cc51f3d71f5f5d6ca29ac3f3f02a3947 Mon Sep 17 00:00:00 2001 From: M4xw Date: Sun, 3 Jun 2018 20:08:08 +0200 Subject: [PATCH 059/211] Added VBA Overlays to devroot --- NintendoVBA3.png | Bin 0 -> 99371 bytes NintendoVBA4.png | Bin 0 -> 89794 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 NintendoVBA3.png create mode 100644 NintendoVBA4.png diff --git a/NintendoVBA3.png b/NintendoVBA3.png new file mode 100644 index 0000000000000000000000000000000000000000..7561ed770604fe043e6c699f3ea9b2467332843f GIT binary patch literal 99371 zcmeGFc{tSH`@oNnREngPN|v&fZL*E*Wi4xA>`eA$FtUWPSCSMVdq{;0L$;A&5Fvyt zW9<7rmMmjzGk#Nfy`z-^p>UyJ?%MK z002OL^M;}}0C0fva^KfO2PwZ={RZ?XzYe?HFmwX|=uUqBPX$PPc?JNW)v{MmxOK}8 z<_>eSgSoKZR8U}dafR8~J6Zz(UcJdWwz@hqj55T*Re80?fiKix+NTe(Ys-fPo{Hq= zy>R%L>f;M(J*RJfJg%g)pZW8v$JF8Bflp80=0Ea;wwq@B!t3w{ZyrBs+#2zD1MMm& zPBxQ^ak5i6E6IheG*yR=#NH6OEf#nrOP=-k@PqnKbtB_~*Mev{T>!@p6FI_M4osx*?SuAC3qVVIRqFrf;3NLA$?c~$LD;3>d0c({B9;F>a3 zU~)XS4&c>(z?~*bi!s100l*!efXNO(VDfr`4;8@p#f8&UuOb2LC#@eV0_>y!Ijwq6 zlmG@-0Hf77^ye|P%wH%`>03133xN`e(@MXY$AHbc@92{PNhY5gF z%FFuFOMJPPqb#cTmt|`-2L0g{J_Fzp zoyf1b7WUhj(Y^8@hS?M_Tq_2=n(5VFarw?hDeZY_PtU~oc(>{&d1LcNeLu2oHKa

    |Y`Zd#NY@SYmG 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

    |Y`Zd#NY@SYmG zed2DoV&c;k;q;54@==#-x!QNEMu+&fsAY%50Ph`SseB>@-kDlbuc`4IGjOjOB?17; zWw4K(mkv<}+C3O)_1syMBdNUN0tDLJjJgW|m??4!>NXb2)gJ-?6ki4LzQ4}A`tb~Z z)xq;05A=Ve+r9&OD9`z+TK_YSc08jEPvZM#R&E=L8c z!5@ywxG-#*A4>UnsXXZL{_CF)oixAD`^~94$=>kz)a{FE zkzzN5w4dm*gKw}b%ed~72r*GcM@oGL2;bj+RIVcQBBA*ru%B; zE|eI-_$ukEYtcEGr=YZ{ui17Cy%Dks^;fE<&(Mf`a=ao~S0kT)mH%+GWmEpeoFmzF z=ick(P?v=gEL-zE_n!z-syYnX?_Z}8MO#Se7HP6N9 zcWOo4=;Iro&R7Twg&5r6=jb{SaT0jU=dr>kan2K=3c@_4&-dNTf2-SmqFuS&S({^q zKPyS}#yO7YhF&XZ0gc29es;dk!Q;u}HRB@V%;Oi9jcJoDuHAjRt}}W`yU{`Q?8LDN z(TRiB@xs@^ZxXc!-lgdt7mF~GN2Z~)^KOT{J1OdsDAD|Y@upfj@^wtdIXfmhqJ7@9 zJNo!Q46A0`SN-;;8I|d{Y3fzaBlM3>Kd66fd+BV_8JaV;XFbp4#j9tW?Fc(tuX{yY z2p>O{z>oj~8}OodeNRU=(#EL9aK|w70(G+x8Hhmy9e4%Yq#KcCrsJ2Z3>MKD%R1Z{ zn+--J-@@xK>)2*Vy$eCuzJuw?z4bRFg&s7lQLoWbczgR*K4h%Cj-Af(Y@rwb1t@*? zBaa}lPu%&8aWnnUitTYJ)5mgcWLhY3oHgYs$@pso>x@#Vux|A8W;{Rmu z)Z*pQ%gh;~>ZL-~CQw9dT&zL%jqKamDtHVicRn*Y1EW-CxD|Btdc7)-36F|xM9YEX zDV-jjflS&=MhzKBLarbJn$Db7rs!GeoVgI6QehUDq7KU(^u|nWp7#TibV*K|nFN(1 z1_uj|a31VC(sD++R_rcJngv+jw{%;BpD%`@Kn-N5-w?|Vx&of^nk^!v$2ibFh(wVY&g>$h1%ynT+J>DnpiK9?vY*jMmIf>9VbPzl3T) zWtE(LKhb@#FBj#6@-w%!V6rW#&8=C8#zgy}{hpCzXy`+Fj%KqMvG}_cxt@~LlN?NJ zdAT6xSGyWJ1GF`0J=WSSGKMjpk! z##P-3cTGp&?S$l{!ldf?cYS#apauJdkp9#!qN$ft3`N|&)_hhNzCF<LYRQOVT|NMDs-^*)>_$)G^sHY4JhfK|{zF@v4%~B~4m2uoOt} zkU{{*j@1r)rwx!9$VFvK9U62!$avq@I^6d{Ww@MVpY>Wn&;0eLuS&0f;C7sxap{NUP6#J7v$_%F|<9u z5;B@RN;l@i6c7At>f)W&QoS0S$(SX0f?qQBn)+kSt1rG?KgRox@hR8xNl&hDTJLI> zYTJvzHc;E+ZUqxwR?X!byc+PRxyW)cZ_ZkgbpDCbhdf!&%hl=C2a+UH7!&WYI|<83 zVuT({`&@?~`pXVGf6re@PXH4rFUBdCw z6xdqp+f+7(HcG^1r|>n;e<^J2doKQRF?DDDMD>Z0C{+3*HGKgVgGo$|gG7P!UGF~H zvC{|m9_by-k^b-m#p{IC%AVJc%k{@_!!@8mW*-~xe=Meg;_1M&6TyD?e%!pNmI2Uk zsMvh-Q8Kga>Ch*+r}~)UP6u>f>i3#p4uLgRCiK53%F6y!YSn7fZZk7ED3D@&G!_vz z8F$o~zNfc{en_uqp0K9W2aIdJ)K~TZrBM2&Qu;%=b!J0Lvy`0fTisRNO_?1XIxGs$u?B2!C#p1Pfy zM8k0ug)8mEvb4+SYDaYO;Z=^-vsI9j7d-{&LG<8fFY87*Tok>>XNZS~h^+LIz4xB_ z8+xm*=r-8*&fM>a zwq0(0njDkt=P$U?f2Z#?%4f>5Wypa6wunCFKGLqV6E-DPF4bbP{K0*>pl{-&{s;ZU zJV}Vttoy7qIl4ouzU*aLVs5Dkv~&TEDfY1;&M>Elw+yUeyq6evy09q{G6R?uIE+|J zBn&YQ_`C9uTAIpwJb4z7mKL`h z7hUP(n@*ao!k^9StE;YKt!VHP5i(oV+nWFA+3(4+_-2SfYuuMT;L?uWMm|C3Yvxw; z+34t<{nYU*+m<2%eE@*uH+x+JcLNP|NlTcMpt%*y!dlSF$%V2I1puVwyj;vJq1Nu~ z7S^`*&N3Gl%PKFj+gr(8)ECpZqT!-oZD)T2?rN(k%Dcr;QZg6q z+}&Lyfk01BPeD%+L71y8P)I^T0(eCjC@d^MxkJFs+u7aROTgKU?m5hS-RT0 zxZA^=*}vO0w}5%L%Urzpy`aCZ-F7*-{9TZ<+b%l_MWC0t3s6Y#3h@6>($M(5nv>Ii z)pT=Lx<{$WZp;2_fo{6qF4jP8Yd4sOtEIKlJ!@xoj{jB(m%nxr|J~f*;{UT1R+fKj zx_G!c{s3%c3AA>!cA}K&M$r@cuWfL*xA~`Y{?&xy)V2-jsz3iX;6J`7K-K*Fy>DxP7!93kAO9S_+{L|n6ShH3%cej?M zXkHb#0us0)qAMi+-5-MiNg%*x)z`+u_X z&z=9ap`jsp)7j14+}YClrlKsR?Sl69R+84%qSlt?l%`o*+kgZ_ZA2{v%tgd)1Z=Jf zS&M;0#Kk0pt$sA}-|GKiS`lXH@!bz7rhg86E0`t4{NHXRX)YuJx?*ExDF6}|y(%Ci zWPMe@!raC}KtlYgsF;$VgR`CmrnPpkh{ z+iPAL_&ruT+W)`M5pL%9{{QQS|7}$Lf1(@y@nTCmb7xy?D_P)Q4*XZf|JHLq`}5x; z>#x!JpCeKFpUCo8B)CqAY~Kg0+rK^H$AFbLxBYkS_iFF@kGzPyh`8bvArWOEW%;Y( z^2!q8B3BfyDqT?&QobT00s8Nb_A~e2cBO&;TdjVnyaLP-=Bfd+vX&M3Rr{apf8hP1 zML7(-_46!H)=gVQp8ckh0!T;#1QHMy6#CW7FZcao$I4RD2IlHy?k;QZWNvE>baA$o z2L6-z%bnk6Xh}+_qzqg0A0dij{Xg>d-f!?daXIxs)oN; z{Z+hI^&d^Jv%R~l@NQ{)vVYO~zKoFk!C8m0;-T*2NdMs41LXI~Ke&F+XOHv` zu0240pZtUC_k8w9|KQpK-T*2NdMs41LXI~Ke&F+ zXOHv`u0240pZtUC_k8w9|KQpK-T*2NdMs41LXI~ zKe&F+XOHv`u0240pZqN@+J8RAYVAz>(@RqV_(;V1Df*$4*>7cJOi8{?TERO>Ms{L@vT~tD>uMBqXM^>&q7j+ZGe(ylF9U zv%F;ZgkrKQcJVBLn$KMvBJ`pg(WC1p3$t58H;lSN9H;iB89h{f6^{TWA|JJw}HJ{(p*HJs^+w1wD z7b-9toEyi4HhDSYa5p1+Q#X!4hbi~XnPOtYW3eKixkr{r;UImcK+{Z|RVTLL&l#o*%rT$6}to~B2>7o{Q*gxcB=$x>eg*5M-){chnt zg+>Bh34yXYTr*N!7~3I%23;JV06rbza5+IYD=Mq^Y4N*Bi_onssr>AL(ws=H%x1aH zC$9SZZ`ho~iv2v0GW9$RC}*0MY~JYH8OC+^V4lb#)&8pRSNc~{iGv%{HTeT$PB;hL zl7BgdLByW8#`pyv)o;otP?VGBfsuyTk_1}ZizPd1m(w)`<*1Mh1 z#57T4GhA6TOYq!!{6bNtpdN9~VOluCOk+OhY76yS-`>s*U%bsd>J^nP+F+S5UqdC7 z(v(<&E>>GWKraq$Qr?bT_9d+lLe0!%yO^ffW>#mPWu>+470cwTt>${BcjgaQB9w; zAg~Z8B7;iqI{MaWvv;0_Lw&x7jm% z=$a#1>7ISc45=xgVsf>YeuabZj;4pVU)qF2T5zs=K0G&0KXrP1HZ(SykIcC5XUzhc z>xy%LgymUF8MK!^1io4^=(o-SzZ#$xmDQz6a7gd%(vX+;;LO}Ia8Dn>oY;9j(p{k% zomvy6b)g&<+56B^B^h}#g6mX?t7#7M{s-_?jWj_$C*LXIz7#`e&fCz3mtdlo@iIlA zJ5ax*mijc<`q%Qqb-izpgDp;&mG+8_JQ!=b(?a*;*R^lyUT$k}z7l#OcA=RQ+kCJW zi~pozk7A_4UlRavVb9$C@h`WO)`>W4ld6R9Fl+IysS2?ifYE;^t9oEq~C458DB_o3uTdS+pW$aB& zh5S2lK4r^6h@_oMT{s6UK|5?BCO2-%s58!}a|-T3QsjwCo!#CHcJL%m{@sq60gwEv zZ7VAggo%)$Y){)o{5%b$ZL>SC0S`}BvQ929>Q-;AM1C9m5I|JTqjUMXA7yovt$}Ja zM{ydHN=^Tzj9C5(ljjM!wm67VK#Dcdw|>bLE8IYL^@EaH#i_)SmYuGE-=~0)FqThk ztncYXTZX;x$~k>+IpMICc^mlQM2*Sed%3wgl54#2t>U2pN&HIbM3lGg0%B{0W~ou# z!xT0JOI3U2h@)*k(5DYZGFvpIOWHM$27NXX(<Oketl0T0tuygMO5GnWm& zx||TJmgv7bP^#wLFdsU@IUqqgS?x+x*G_K<}ykIYC_g4*57YqZ6U_@|sS3yM=c2wO~A6RT; zN|{X4RrHuX(Z!bJ#XsQfhIafkcphI&;C|r#8TpFoUR$xdquCj#W59gEXtnF}o0a}Y znwO?y^o+Xb1oUx6{6P0oc=}4M8wO1_VZs4*^Ypd_sCO%zmmC8m%x+Q~XIs%WEDpXk zqQ81)4fWO|0fk6xI9CbA^g3KX&3D}Do#nvQi03Y=I}wiKsZCy!x<4n%$ndMb7U6r$ zCsKid&CaNk9u^ZYv(L8fn{-6Lwgl=uZzZ}7BZ`fXwQ|H5tK4iXAEumqgC|U@=pAsQ z@B26OeZL0J#5Pd`>$tXH-Fd1SAspx5cdTlmK-Q^Ny@%U zqLFXW6o%9KBy!brkjYz$jC`Xss?X^UWz|AbW}vtx5dl5A(z0BATglQ*N)NY6Y|{O# z8vu5SG6jy$>iFH;l-g`JhIB|V4B{TpL|EBq9DHRz8KW1~pVJ^;_}a2!;GExl@q!Fn z|I)NcsYl&*v|BgY-mzoAl35|%fl1)WyENE9>o8OlmA}M-Lchd~xVdCSP1C!Qs zT$g)ZfVk(pg*TAuU)5qV`Jg-nhV=zUy?tg0^2r6LweH1xRlXhF7LL`_w1G(b2hOE5 zz3*$)_!;Yy&gw}|eU`00c&S(qfsbL#4ra_&Gv$X&`)-(IHUZr+=uz0IU3y*|h8xTyedZK#g=vq7?Gnrz6yyi;w1n)h71q zSt8zfE)TgMgQ&gr32#1L##9!Y6foo^vz{r}`eI7A4>fGrH}82HShO6ItH%TPCPkW= z`n^uq*<#o&d(cD=-I>LTR~+gp#&qT+&IHL&e&#{uzm_b9M3@Fuoh=sp~YGMudclsgZ<1|Me6b5KdjhP$nA3hebKVdqHi}?X(6`UCv<^ zQvH0D6_JDYm*FgVIl0BB=bROok|Jb2JFyx&EMKl5@!W}&xF0DaBZN*Lq!}~YJZ7;p zi5=3QonX(sVVj7mEhZ9Au6Gsd5iCgc`iSCNPB^2D;@OFPOMiE$SATk~2ePm*PO{8D zV`45w)CVFGpjMzN+~G>NhC*xeEgOnbU-4L710A?FWZwL#=j+p4Ynvb&_cNwnWH9yK z({s-3opNaYxo}moma+V&v8Z!A+jJGXghzMX3$p1LvJJtO1kZ z{Tbo(aibiT3RJ?3Au3~MJBsUa7o}vC-f1-tjWh6YqcE56YHXEPpRaLZG)KlbKyu~I zh?@$utS-;yYv#$~3j7NXTodVtt61gon}<^3&SE)-NQXo5Iq5guTS=SSyER!jIgo=K z+40ZC8)aiv8Ca#ie%BC)Q}bJH;DIlX-<%5YskHYh?wm!&8Oi!0Ha`aQiZ{>FxEePg zGWI8zh)rbJQQsYLA};A{FN8c2Y7KZET0fG{fTQyZA-=ZW$1!#^i#aAI;fd$m#u49| z)a*$GkGLOmp{ob7)*-DB&$Kx@$B}Fz-R3~Bp$i0qXSOO9w^lv3Spq`**FypfJWTPk zvxt>ArrjF9I8GZFRx3~WH$*TUN@v@MWNT|^2=$+|^;eeLDwNw&rVA`)L>tI-WN+$V z7V~s_)EOpW4U`>xVuK@h5AU0y`RM&N!Lli5@xf%0X9-CnQy_gjs-ogWd+J)G@#GTR zAGv9wMB{WI<^4$TvvuBY1N~0-OCHBhVm7_8!$uo)5$Vu6i?wO*8T0adpL}oafgrxp z?~^5E8&YIo=1_|6A}p8B9Q5_$AzN&=EN*L(rX$Gj{C5_2Na*tN&Y78+VIWfI*zOL0 zIQ}yUHi^y!a5hzy=Gg6B9nwKykL+qUW(C*%1rI*3$XSC-GvO8cH*@{I`Y`Tr_m}bU)bmL~<~GX_h-NpU^5P2G34WXjkliTd&sAYu$$rKyflHMOMXbL6 z_yIH$2lmJ~W8y~ipcymx*kD7>_j*Hw0}-n3MIdoQE^kb`t9LqnB0V-+trR%1;F`Di z1!7RxqrS3XLg~BFQF$I79$^tMxOizP@@Uhcz@Po-qCQS0E?MN?GR48S=1U0JJb&=e z7G@}Wal2))b1F5!pJxqKeotm=yVOR1sM8afGVN1IRE=Q$KsjK5zcM7;T7jp>INZ!t zTVp8>RaM~~vZD6QTVAnn21%yJ{Q5y_5+dQVi42z4)F`^5!9HS|l zzUek1x$-_6`ONoepEdF`5Ea@$LO?F0R<7Fad#xO32E^kHU5*)ZvPgARD^? zGo+pok}}yDMX<`W8^bW^B}4wk6g)T_4o;Yj5d;E<);SZ=v9oG3N`9}WAn=TpMc;HH zt639e!;0-gOsP>~NuJ=OWQn8_A{AE-okt8Gx?88xM~*gMsE<^ zpV#v zHp+ch5<1oRmXZ@w3^(t)u53Qsu*}yC7_s(2PE3<80Xm(OjjA3ykWTQ+Q9FS65bx>&vvUa=gLH~k}S$PBH>z!xz@(WK^u7vDT#yE}NSf4js@j=j!|MH^q7DM40~3p zIPb3WkRVVxn6id!$HyVgr8r5xVahcw=<2)}8oP0=jmuZ))3u*e1Gic%^1r&4c9tzxWam*L z^X9@L+1Zbf4Z*%qi5Oge#3s?Nk6t@zI#a55j}o$Gt`lx#Z^#!q_?^LW8d__=&Qv_h zMK5DfLF#oe8y0z4lATpte^2dXXZvPk_WX6B3}|||JOgDJ^6t{)M5S=$3z#>leElk$ zVbe*xR;VYxUg`&wiYzS-{oJw}KL+=v>_Xzu6|$JZeRtHr;H2I_TU%QM9e9lr7F;h=U!T0Ypzci8zF#)Vr%eUPGg*Y`roSD&R2z^vJR` zn$c!J&`?gHZiHcj5eS*PLoVE48b%$wz8-fwX&y&5MCv`bn4bUiFXomO`383R2GawcLs~0rSHJ{?5t`w7U8CT=J>Inz{3xVbhwtz zS&@It+zjMlhS{ykoh`zk&!Uqic7UMcR;-84r5qp=w3{|5%alL#^6|d^6jl zx?yTYQanEai_teDb8%HzTPQe1-dTj zf;DTxOPbAnJ4!mx#kwT0)NBfDzPSIVlYh{m4J<<-+P4-f^L{Mi7IDn ztHpVK8gk1Va<72_8%+rO=3uAf&%yw93C%WWG`gJamct+y%CHF8gO=D80cDg^v>)J z7d-Rw@JDJ=klZ(#Ref?Jq&*I>b%X z(L1NNdC%K+^*Mq%7B^%nRd(A~U$scWRO&~$`}rX!T)jCnht-!6_D|2f*bZ}_D;`cw z3gskewFE4ZBJ7kp>WNdADDS@56c)%{N*+tWat^sHC~(rmw%kta#y!JD$yoVXNO$eH zwK@W*eKsZ|NU|~Qohn6m1J3|vQkOHw8`^At=@Tvgg5dwJ7%cHe6e{V zR)0uj!9qiF6UYC$#lW`i#G@64DO#lI*7BNuS%O40OZUzQ1IaqIm$r20Vx8|6@Ds7$ zA!ns=U9X-kS!r_aUg*-zC4))^7crfAJ`CFH_0&`ZF*RexBJ3B`GN((bm(G(9+W4?&|tFI{IXC zYAUqYXeQZnuq|R|JpwOB(%R_=c)kPs*+9U8RKTXz&dko}Q~-JEd(54oEIfUFy!iNl z2EP6+ZP0(q2}4@zgA)flf8?t{Hlx00`r$nN;wS^VLZNaETA3lYVoQEX-cH?FL4Wx0 zLBxkVD<$_zZkuLDiPRlIKI}&rP=UkYX%VRb#z3HK7iC9eC>CcZEn&w-<>C-G7$qi< z5GwxcL~@pUxc`@#b(58a2Py3p-8=^;BJ)v1<)+bYjDQ<4QR4|uxijjtT;Cd-dqt$8 z#v#XFt~rkPmc=U(ks3P3vOxj&ZhJV=q-vjak-Enp;^Il=lDhA4*|fz<@g?l(aelN% zt00c>Epk}*?Wad8&o=57d=%~Ydy-Bc_Dh@=k&c$h=50n$-p~W}-u`Phwjem)1|btG zJKYtXtfE})ol>E}w=a8ii!VSjpgr`@*pm1aSZPsPzhqX(;ImTNMl}@9HnB$mj5XON?}qj&Qf9!WFjnJ2eZ1%- zO$yA>-6W(jCNb>U;!wmht!5#{2vP&v7T+M-)q5>yObTrk4=Y2;GJD-*qs)3cW`5@~ z!xYjnBVp2LvshD57Q3>d<&G(DCoHS8VYcc0NHeW7SZs&X3SO1|+D|tKbR~DDZtCpR z0=KJy(@m5K*^7AvH|ywLxvB0dk*q8bnhHdyuI zJYDa;175^Lf2Wfp-5(qKG3&fzGF;W(nQS+mqq}{9ra4az1zMuxNooPD0aIMhBo8JH zr1_iiy{`RKq!1=0RnCXtTT{PS3~?)wWdj)Y%?=G>9T$s`I>^P&{Cs!1%@1e1GOOu; zT)K+O?4ukX%%afuLN^0;p}Fk$;&>2mlA)^Op0!Lq@dO^uQbZ43t+nm0Ym4>K`G}sV zoy>TurNn4kVT_n~p->L;>d$D;DZv2&sJubzUM)ZlsL@3rPItxluhTDLyq5x*8kfTKPOs6>SESL^hi)q7_b zSyzj{UEcs{2rpSk=64&NMNK9sLN^VGN*{bU7yRj~76z;R=(jP0CeRL@nqp3v>~n`< zwz^yPrsJ+NIJo~>L&m{j3y-u2vu(70(z(FhRuUN<0J7~J9h4EJAD3ze28ty)CA~&- zmhvbS8&y=uUA6C>RdJ#j%AI|4Ep_Qmxf1$dnU6{womk#H04984 z*n!Qpc3qj@9(1agepz{Z5w!I!gDdQ&2g{PDH}=w(V$U@$LIJ7T>s+5Textc-Y=By+ zh;$&%P$M z+@k!c@5y~;@214)tm7BBJ9GLmOZJL4i3^f`=Fm5h!3ln8Eu9@tFDf0wUo+{SzIA=J z_ZHL2p3SrjQ*0}rew&_SgYK1+Ch6Tlzb%LSm;!23mk%v|HUaD-1Uw%C{ zq!P@&yO;nF&x=53cMO5%YKR<%@EP9EY=zAqn$HVilp;AW*SXD9wwC7ugBUx`XA(Z& z9?x|mUB~EgUe@4Smw26xOscQzO*9y-Jja`q#xm`(2He5OEhdGPg6h+5fVxy9OuA1x zOd4oK3IhCtE6QiMa-*|Fo#(t&kOn`-eM{tII#32*O(N1b_V z77#W)((O8MNwSrD$x+|bk*}!bL8kVZk5u0d6Mb7}y%tJNdX7ltd?{KeFVDT*y+)mJ z@D=AC{~3ZXqZ_+OeO(tsFE8%QZ5_ZKNeyA};}F)gOL{&v&DInn6w;eCuF@Xi0(| z$T%#hj_S^?D_lL;RevWtgS~f{ePMFd!3!-a7VWf}VJCrUOk_Mtd2}OM=^gUXghxq) zQn^=>lK;6!$z^dVLUOWGCn=##5B%})sFSVHO$X))R4`Ks!+SgwOmue~5`Wp(T!vA! z00QIdIdEmn&x)=Mit6c&o4pY;{(4NQPv`5vy|xW6rw(+_8#cuO69{f2$w>~~D4IQ) z*z;iW0nna(H-H0NJcY!;ARTZsm-mWW`mK|PJzmXMEttZho2z3#GOBT`4DWZs1_o`NaoX6Mow;0=<#-W|C+`*c8hVbB1 zgH0RhldLQFt&Co)xBIK|CDhhXO)1(ddU_3_xJD+)(slJ#EjGM^cW%=}sI1o#-{yR4 zfL^A)*5VhSfEZx+34zA6gTov$QkeFsJXvgZHV*8Deipw6`vB!Tm%0)5=hze7*t?M~v**j6dZf1^ST%`~Zv{aNnT2NZ zZ#+6%7D{dK1M}olWl^$xG8yTcpY*YHHim7m58}+;Rr%hJmJHnWphmYsW>MlB(dWs# z=a+$FwNG+`xyGvb^3PWhJn$@!z|})OlA#7a;%QWFb1 zSP$Rr6Z7)f{4mxhkkQRr=In=a<1>4Hdp4zGZN3+k(E8f+1!OE){r+kj$dX%Yg?;n!r-bIKh0X^p zx-r&ex^AaRXTF(7Zj|{zr-*mhx{?Dx6i#x?jk)s?l{P(4nJV`I@ zED9PNgx0FyH*m~7?r#{kjN(n?f)K}bF+69E5+?_X9yzm)>OFs2TgE7XGj&M(qL^0# zOh*)*KKY<{z`CouxN8=9Hh@~2df%@bUdjZoqWq@5Q!u;y&71wDx(a8V-)LoJvouKE zG)(e8BBOD6VyH##)ZDq`8y{!d$@xP;$~Hla8P6(;PSfFwmEWog-i`>Rv#RE_&x;wjDi9k!v8|6=C6x*aK?B$_K#`h_t2_LzHmcwfmY2HZkjQOm2H8fcMHqxiUTS~=bxKQ(!-`y5b zJ5YN9>`MT1wo>l1MFAc`=NK)#pB-te=EVW#za%E+G)BJl_!FCG#Dp&J;8l7mcKiXnZ=}Y=>v-z>QW&AhWjS zHtUm1$ZL6I>VS?gGj;cDF8@-YQtvH84^Tly#JWaLU$?BAn^$#>F4zt0fsBhw#fNo7 zxOdL#-Py)M!O`>So+8p+`$zfs`26lv6Ks%r{-C_bKnwP}Qbl z2ENk4LTd@*+ea?|;G-ik74JKb539yBzikv}(*uJO^%+F-Ci^t&c1r;ekBKzoMD?i0 zn8Y+I*Osm;KHD6%9y5Y;poj|ga3jG(CGBr8Pu5FEjSQVr20VneaQ@pknR$Z~E?J8g z-1;*rGO~c9-!{CsJ96N!C{MwRZs(^Y`@fx-RmC;Y`E6|g@#1nMn7ix7O!7wh-;0WC z5}g3ww^Oz_IDAugO24&eneq%N%5rVMz28#9g=igDx)#Uk*;YGQMk8C?^T=$Bx`K|z zF#^TPE_UI4{x4S+)u9fq7l&P2&4VlZ80m?)+Q}NYe-_Wo$rLo(H>ZVy{QfwXlS`YL zKuf=2FB0tU4H4j}j*-YW4<+$WYcDMWOdVy--oGC=x_PIJ7GB0^@zS+*&DT&!sEy(M zUt0&jA#b;W4P_2Ljj@oiImph^(6@^4lD5Mtn|EGp7K=YSOPf6qIr-9_N7qhbIEjJ~SI zGPIk)aIAHW{;tSCf0uxPB%Nah+wC<~5{khl?h>)b?k)c2?Jp>mQ=ze)Hh4L3_v|@E z`hOjEI645TO<(NftnQyTFG}~L?BU)Sz~u{8?rX%YW5VMiW7nOfZ0N`z!avN=?7G2u zK5j#6VF>;?5p%Pneb5&H833yy9&$N zsrb}&X`nBc{Fg5stFb~@fub9dQnMf0CgxvsW6a-rrl3lPHMAONJ`ek#d&Z)@ll&+27JO)Z-y$*5TjOphh8od!a(~OE}!D}oUhfQY4(=%EyL2P@Zk-M3~Li_E^gJ5P~QVji6s2WdCa!GCZh2U!?-~M}1u>q`aBo zmDU?43`U&Tcc*;B;Y&(yp?M-8KC$LB?R|4#Xgs?_Ic)g>-h#UF8WZJ-kmJW4{n8MK z`^`yR*88*X*Pq&NXMS2bqB+sGjq)aU>F8*R(?X2;=jol5RM1p&RrDNkK7Ni1{_`I0O7soy)oB(Pqp2VW)FQyv{F$f8=Woe4pknN3@G zBVc|@YMX3-yQ~Y0vfe`-99Ghye&4QMuoV4L?>Uu0;zXQm=~_Bi1Y_9!>>;+KbpZ*ZZ$dKlZakYkJci)2e$Pky4x|XmdFE`$^ltVWfBv zlT4zoe!q#-q>1gRup%c^n@7&ogFyd@*zM02Y}(RC3wzMVA3GwQ#W!-#Q-A*px0EZ; z(gGR2p5bf?v3`=wfUV+LbK6l>f0J*gXz6wYgGf;x=OEurhknQ>WdynPVzLSn`b}MN z1!i`o=vW_tge>{Pf3NDE-h{F^bR7x=YmN7O@US|qMY_Y?XJk<~VlT01BH8ajZ5%Rl1sl$wlOKw5TflO}yt zgBN>?x7+ipnL7<3_=iTC{0Ft3_B}1m(JW2@yf3Gj-EkpHh3bjb>Ts{F%!Np&7p4EdH(j@kUGovq?JLA+pR`lA7e|vqAvgc?` zKdE)P(`fEg(cAUE4hF7;XwG8{KzDq!YF;8tTAyq8GS*tlC}iLbQ+n@ptk-19=6-v) zaOKuk3Aqh+R8a*MoZB1yTHjg&a>95km~Om4w2U~a;;z9>gqv!&!EKZK=n0AtX!u1R z+mz2M1E2B*o^?lv6P_VEcyX3GTXthGoLyxcBGF#2xo9=rEQRurpQcBY$s^M8Bf(^Mq|F_unyMHc`k{{5~Dmi2o|59aT_a%c>OHRc^iT1aD4yC1R*-t z);FF34*IG`pL#RtqYYRb>pGl-o)S_joVP1zjxT(+++)>}prX}cwB@ojRb=T?xIG9W zgZV*=9wtjct#HS}-pQqIbZ8+`?i-qUBcIH2<3A!JD;2knbq3r~aJz2{tptF0-dFKAU zmtE@XMf#XA3=+#kVDNbN^8d%zo5w@FzW?JREhmyBNw!J|A^T2;r0m(Zq3jICKDI%H z4noO3mh26K#%`=FO!j>S!`QNpCHv0r<$cmQ-%sc9o4+M<-S>Un&+BW zarBXs-%5$8hGbOOd!jezq{hIezXp0BXJ=+&_1nu~_PGw2S5sr>nUgLiXiVMp151%8 z@Zj++3poy8GrWanQyyf8k5esn$iMY{mKzs+wM8I}YtkGNwa7co8ZK9^=j1P9SJ+S9 zU)R&Rrm?=Tt^np$_ox%^7E3*#I+*4>0*HCJYN1h}GxqPIx>no_@EfTBKl>ehJ<#`( zXyr9)kk1>kgyz}s;m%#GIe&L+(`NE2BV$_6#;}MPPdNP5x3B5Wc)L*P%Yl2&ME~?A zB)`HTPbV9gPnU{5Y5VXI*)GnGELHct;(+$z8!%P}|-WSx+^sf)VSkk<^JhJ=3 zbbePeX|6*|(IY7)up+8ZH|d6$B7I5e=&+7r*xk*c#Gtb6v)uY?ws)uLw|!K}R28q8 zmcP({_mNk7kAK)Wz$`V1|EB0e#jlUfzE@?@O^>QPbHaWxF*rsAm9somQU2I!wtVF9 zQt0E=jWCO5!_0hR|3YE*vdNsy_p>CubdarXF*UZlSy_7OBindlF+*T#DB%SM>ym78 z?<;O7cPM+yhQ!;*%~-wsU_g9OruR=z zrIyVhz`polt0Cm}E6G#IQpr_n3MwMSvlV9tr!QTE71!1g!zYIN6RdR&-}AG(qq${F z=j~mN3Hmv?)ylM(at2E_{%4DN)75H);mOtI5AatQn}mlKoHH2IzyLksU=E>k-EXe0#kfm*3h6@G1QNEWO0^^}v8FU=g%9 z>2m?$KTFNorwqv64=cUNb1Uhfgt^m9G#jE7Z4_r*RJ69IJW(maMGpL5ixwO z^vC~6%K*e?K=W}9O$Algbq;K6-PCj$f!zMYm(3MxZx3f~!P~u3#0(@;+mA*;#c*o( zx!d!rxDlhp6DO`Q=g}YJo$qL`F2_X*K}&X=_USAIXUylPZ{mhL%o-Cz61TOL-Vq!g zGA2vF{55`V`!SYYsKJw=+nJW?qbsIIL&EUsOG!A#S@TWk(c7pI)Vu^vMhTBmP*JHx zkC0N+ZqRwYIGoN`BeIj@#|0qV~&Qzq3?y7w0V}_+OW`;KbZjAKvm#R!( zTdSIr(CQQ_GIrZP=~PBO=U9P^d^X1l7a_sE7M_o3-wqpnnRQFjYm1a+Ccyoc4yC16 zhh(A&%kq~Ux~uEHB>96!buLv|d?I9)T1~d#%g0i;aBXrQ``p6d*T(nl3G&rq0rQ?# z{>vvTcgOj089uKzt~%fTLBm|h>&LH%dr&^|E(+ZIUKyuK1%o$ShNng}!2`8!(mMj1 z_bRDOOSBBwW%XS^<}g%=eyutcT$OVTxwB`H8%eNPj22N@nlVS^DGT|&2h5MhOSZmF z4yfw@{q;O7?akCM? z^+&c{tqVewryJ}hwK1uQc6A-<+TWkAp9?|QFUH)!ZK+9rn3Z+F0!S}+E3R_^vW%rr zh{W11mUVcK^-yn`D*VTlM!I-D2QVPt4h*6_DQeigjqAhD$T>U2 ztULT@t3|8V9qiQJJDYZ?ez5>Dk^_*xwO=+HEL2xUJUF$DIF*)-ccjG*WQypZ@zt$0 zJ#E%`d4_JC!GHXU>2p>uKSYF>RSNm+y+GspGW-bqej(``I*>tZE1O~ZRg6AtNv(;nc}DGuU4xfI$M$g zs=2+j$$Ga7epdW}nT<*d*DS#BgRACs-ZJxVFazogf$TFe3ZqhM%_C1yi*3iS`k2%K z3~5(SBacp~0<8Sw0D?kfYrBW`A=|L)LxbG2W0fz4hBq{yF>S?WjXcoc@#0ue!$YZC*aL@o9oi2`Q4alnmQCZM zSAWl*vXkI$hXTdyGYwox>WLYahf1KnxjH3`7lV@$^2pRmo@d_R9hQJI!7Ek%<7&_zp zzSnh}7KR*FKbBLZ_*KrS=D*O1)}uh!ZGSbySxCE7divG}$lzanf(^9SX-wi$_v`mG zq}TR1Wtofbe1FbT`g0Sdrol6Eb4PI-6UR=o4JnPIB>#<-&e^F(PT2H$ZStRg-23Fr zLbC0>qab3y)?0Nxu#JAaQGdK^K^8M@hSn*w`8q%^%u-H6LLdf2fufl2dp#l76l=#} z$X=p6t%M-^FJO)fv$l?&X{^^YA%%OcoMmA@WTB(Ro^ITGAKuQ(7HcTV+Y`3GdzfCN z6fWkoN{pelS3Nsy1C<@x&Z<8*YCA-F*Ff?KoaU=)9hsWm2Zk5?{ZR_`xbA8&)A1uW z!K^S*X%tETea%3x2doAuiR=5?1jvvy*9`8GJM%s?oMw-yyUYA_%X#kIl=5o&Bts-x zEgsQgT}$1>e)Ggr3t;+3#*VH!TJ=>($Q)lo*sO$0NNqTEwhgm&s{OUm`YnyRAK}tY8SJbGo3V3pfDiN*iP)|Ksptp>~DH6t)_# zNCjIXvFz}6HQgMD@*Y(G=(fA5LfQ9Pw4*`!i&4!_W$HuO`HoyNg>e_Rtb>cZuUT-j z36$HreIG)-Jq06qom9cjV(1U4w8Z7TqUL^zw*E88KB|>Ew@Zns%In4GRJyp8ZzS`o z)3x4wYi-44WESC5n2+luVm8YoSfK~^2YT5BzhMj6xP99in20q05?d#di_gw}9#jY+ zYr*ka)p`Fm)li%HHN4fD%(Gv;Mc{J(ya{8+8Ul%YlzBA^T7An_!{2Do9ZVm9& zWvF;SJn=TQW;chA{@7zROVT*Ooo^(5;YP8|`{vKHU+^08)aVymKSm+Z?4Kvbg4bo~ zsrL!58`y$>Q@BXmHwhl08agQtREjUSVMEtGn;~z|bKtX^UbAC7lzSooDcMq>Kd*G_ zY)afV%oLH5<8Ej##J=SQImaE9!HYH$)<3_BmAVP#IrH|}a;!r;_ zD4>g!___gKQdg)e-c8WObyOtcjQXF& z##;1{Qq1i3gX_e<_^gjUu}Zo5stwxg@YTlcnoy`a`MO3Di295QRyl?n_gj6Cxw)*f zbIoENwKV{Y&@l_x#jm%r9-gVK+}`fkpZ|4k-X~82`RSd{(Fn}lbqZ5y)KV6sBWAiq zdSIy@ZcovwSiK(CRvg7ATJZ=mb{M!q<+Wm+E5|fC$j^B?uETdWzSdhiHtEWzOu1c^ z-vHO=TH1pNpTtFpx?z4Gxn&~~ZzaU;vdDY6?R=U}C@vZx=Ow;V$pb^m5Nr)6X$Tf^ z59x$o+0()tN>_||DNhL3gGDcO$ZXg`L$_y()B=T&>UjR2%K!=#LqzwM)=BJ>6qEE+ zX~V&3mk|fA0v3i<=+zzhro`Ak^t5lz48z*NLX0Zrl;^oky!c3>Ls=vn}B{QvCKf}&D>-;yMI$A3nnr{r7c9$be8u=DV z)>_xlD*KzwB@}ew1&K(Tr)Qr0MCqVm1=WZfm+=NTuki<5qld%(fBtnN8d5`Wp`A3;-+R|)*$=d`bgg>CqfY;h2W)MHKyd1}d{>Ul<;Sj&39MIq zNP1VdX-)Y&ohUN%g+O|;bnmle9`4A1J@EzylXFkqinpU9w7`JAgxY>vrakt zRTWG@X}7yl(}4=>M|OQdLry-*8b4Q9g1dg=V#>#Z5*ye!W5AV@9T8aF?vxa_m>q8D zZs}C!ooz4Wop~V%8r)F%tqlChkEfg+E>;q(vLz-`XIR2rQd{t&yr3LEqVEHJrut>4 zG_f5ZfNmcqL^)b#tel`vCPqkY6A$SsFm{Hr60&o@IyB`@&)m(TO?RN?M&IOTVqL#q zUe+IJ0)c-ru`ZU|!WNCx#*f(4t*k}V#J*W=6I+Yeb&@Z6z(Kr7T@zY1^3sl=nOR?i zuJsmf<@fvGVUwo)0o8-bD@8%zE}LlJ)`=^mw~?&(M+3QR+^nnhU*J{g1KD<@dQn#E zl(MzQdv+14;VW?}jH!L@j=movV?9VDsW=(r(8dB$<-A+mUnR-qK_g4T)y0_n&@<11 zfeR>Kd{fl?jIXKw^}Bwu&jo!xUJ)nB{W%r6XuTB&->PfBJ$!T1F%7YK$$8I3KQFSH z}g837sOa$0u_@f+uLdvlj`i0t8|8o%_%b+3rF zb}X}eHYK|6uc*I01vqF=!a7#|aU#sK{L654CyxHsR`)xn7mHkk%LR5UDq_je&&5Y7 z9PSs6xF*aG*2|PP^)0kG!?#ujv|NmqExiyll}iTFGJHStKwvd?pt*f`MN6eEJ}KY* zV$=ZKrN9}++|FHO7tt{u>gsVG?6Bu%*_L(?8q8`=UcDRHF2Dy`DoT!}@Xe}DtpPiEUl{}Z&`amXlP>m5zFrPB|tFq9NCml#d10B~iV3K$P zl;fUlcj{?koCrU!q`0Cjg1beHsz%3)C&I$MMry~H*G}|~013*_%5)F;@b zbqC8jfltnP12)08CY}j@sN!>+(BagPJJ}DQaV=fR@cLtC`QLH+RVl zQiMT8NKAzoua*o$*@e^jvF`Q7xFd@JS*TTQ4?R%b0Y;7FfbeV+}hZONv;D6AZip1Q={#UqmC7E45L*x zp>velpv=T@nzT)$1;vUjnVMy0c4ywxg_M#k9>2y8hzqLPF*xOa`o8w@VNjL4z&++P zikS*K?U14VKBaPoQR50tdIXGfRwJSEDutQ0pSFM1j`<|ke6Uo7C6t#Q8xgReyFB@` zsRyd8N9B_oAq$4fkCwN$mn!=P!0!rxis0P#Qc~PtC0|?*QvPPwWw)*A;ubuw_Fmep zNOasEZWf;jA6yeF^^+3uvNcZ{JuIOX0#UUMT&K7+e{X}{&prEey>9W|OsRmyt+eLo z7nZIL%GE9GZ-OyTlohVapp(S4m;mv_PUyuOEmou{I_u?#^FabM&UpBuAm65g)z zShK%q2s=6L7B_XtyD}E_S2*_KDXdElcxw6RL-dB6t#`CLBgv~6u%qiJROhB#}}NPsu( zrrzb{AyhGIDr(5Rs$5i|Th-bZg54tf9TWUvOP84Je`WWqxr!EjahvVhx1dy-R_V*e zkIPdB?{_NO8==c+F$ODMQxG~#4U#M&pzTaiC(LW=I)na1iOO*KBqz6v`w7E3CORvU z$Gggt*g5(JKtvKIs5KAqk@FUFkw{NEG>L0e2Qdv_9XmT1&Q|a~cfrwNc)-7!Mdo}0 z$Bmyc1x;r6?+$uZ$7HJP1mP{FNah2FWn{drFFfKUvdZSaKeM)~4%Tc9!+}&)MXkn% z5B|JF+vz%kTd05#VbE@iukX$@Y;=!$vlrOoOMp2>-}}WrkUcsHulVKTTdSimE8nWN zzcc4An1#RgnFf=hus**~Z*2@Nfhf!YTFMB`ZfbX9a2v1HsuvjTp=uOOqovSB$F<2R zerGb4;`I;NA`$yDLw+xguA+vn&V-+bvY#?hzpWbj!cik+xCZUziXQap8Q_zDHn34? zxrBCVe0e>P>t-A6Vxr78tgT4S<}R~K*qzF?iddT2&k37!r&LnePvWugr|P#7np)&y zALCj$vp~7vK^}h(v;4WCEnDZiO*{UyOgT*BeXsvK`T0t00<+V_Eyjq&9Q8OBVTmQV zon}X#Fp~!D4mPZx8-z(7bl0#%n23IO(?aRB1xeRBNw=rCaHDa~LdJW87tGh;;eYVr zA6Asf9waIP(vO~s1kFUAd6hN4(>VQYC$1xLtSbqpHV0IDUtQihi9goA(3;B;86KWZ z7B9H2LFseVuG3@)bsNu+IPc&1`#HuwGJDU{zDu%Mufh`UJ`g&p;iq%NhOAr(dx!3E z-JAU%31A_Z7@@8+E!JPLep7XH`$r1V9mQmMlGzfz#bnk$VUqcJe63lGY;Kg1x+Pq!ru8M)pfO(w)Zx$|r~;Nidun`Ly}Tvyzm^<>{arL{H;Fu7C07GHG9pA^tB5{o1?h^;BR77Q~(D*)tyN z<_tlT8>e-pVN0LBv&eVIi7ww{j44eFxY}U@+&u!WrxdCFuda!OI%j2?iR-P?YB%wb z&>Q4oqPQf3XSx431zImrves~z+j}q#O^6YNb z!WiVYZ&cI3N{f%ab5;oU^(A?0!+V$gYeI+vCfRmx_WlR}_=8hVt$I+=ab={zIbeFo zJmc|D$NgRQe-I3yeq#di2<@m=*^Y7)MLY``9~}taA;>7#!Dy;7r=G18h;5p&ztCZk zf%6GG2Y&O4HYm^han8s9!%Sb!7ZK&vsg~2t+r*{^Uk?qJqBmZR1c0?_4VnLgRr;he z{7lSOjeB{OG0YoTrTpMiq?taMWRSJUw2IpvYUnQOV@Ysh?&p%`X zanZC?xh!O|ZwfsaCl`;m4w7t{4HOp!(+DJd zqmx_x@3u<{CvuBKI9W#LwL6^rDF!>MtxU-3)gubNbNc8xDy*7ClP$|;_sfh|mP44~& z|LS!CsmavMUWZFUG$8}D9&NBIB#Wv&lRN(-RXqx$q<+!erVqs(nB^!j;CeaNV`)f z#*Isj4p}=*kVrKjAq&Q5hYzLe&ntzE#)xAlD#k`n!spzoisVfA+~T9LkZCg#05M0 z)5qxr9o+N+!%OBo?>(=8m9|pFoPGcQmwW+rX5sA;`AXN{lmUbQRt(`W>gh8(g=nz-I$iDB`L(TOCHHHR`*t-aU-`$b zoyc_(xMVu2zA3>JzYU&g-orvbaUW3Dq_^61gFosN1?PreJwqtMZ#VP0@otJ!Y+YqY zFzvlOgL)}|8-y_LG@SgdC8^jxTQ)|+?5auEW;Xj!nADO}F;SZM7;kQ5@Hpkqt!JL# zB`?@R0g}ZyJur?*DN!CN-CZE#63C^OUFBMq2^6xB^|7 zamaFj&dbX=`?P>xot4y_51n&$DO@A{s}!99N>Lj`eTZhC_AOngDM9JLcUXLt_xH#V9*ZSg#AyU{Q6iKYEgME@ku zV}$gBl=^{zo;G>dF~BS@B=gz~{kw~C%qKlQ0px+cfb@H`doI?!%ssIHkr~;)N_y7{ zN^aqs%w!0h?}stc&d48dXIn+Y&Z=xweB18Kr1kCkbX!DxowtB_V9P~AF4>d(*#&me z>z()oUOFgJL+_e{v7rL_Z$cig(+Lw;k1rfd2O&2s%-@S0ef|0=`J?{OquW=F1NwHa zeasg5AOOxU3eVnG3I6m~K;z6w;6Tm+p<-kVt+oVU0!WJuz4^Q~Vnn~kS^}0_>E1rz z|GDka&)@{IarU3KwBIC-PY$`YgWU@hHY%K<7n6)ImTA5jXUEhi0;_bs^?gYY#2T0Y zl?QU;JZ+~rP$&bSarFJaWZaM5pB*c`9;i)PU1Ym8y&pb3q=@Hsyc&I-b$9(t!(W>s zQDL6Q5-fTz+uX24z5Q)#D$n9AY0ujF3iLpeY1;thi)+8TF9zHg9e~B}0ZS}V^3)dgHIvgJE zX1ir=UM4-g@bg1o-h&n7mCJG9`A`kU{CY`07ysKej|HnnZ#Dk;6z zqHgQTIC9m{i<0gQPMaq2-VgsVl2##d$e;nG( z*xgvNtNh)DU@u1O4QX0W?>mUxzGi!WaX(%BTJP80k>EWaEoFLR&MUag$ya2)u4bFs z0e(}4WcPY0yu+Yo*}N-|#bJhJu<4jV&A8;NurEN<`vI5aE4e5h_Oao@pIEFy^ZCaoPz#Jz!-uI`ntN#jQToO@jAo+qW)&* z2?aUUp2g!BtmN5WMO$23!93GkRV|lYJU=lRV_558vmzk7bDmilV97)me3w=(8O3WP z_pv#NJ`01V!N+U(-t9@M_0^i@hG$Uy1S$=0KNgY=tUtTvUblF3g>|%Ei_dT;l1*hI z!CjzoYK4@-mi4N;aiQ~IWy(`I!0ifhIB^;6HgcfTsjvvayUj-H7-k#l+8GwDANw+n z>uCNCk2>H)2b}r)e`tWex*q6A)u5|M?yQ`nJ6rVGr7F2D!CX{#nV~~Yu|#=Jg^^Xm zl6wiz8n{JT$j6_Vd5eWt_#f<8JdbyH8ef^ay>799m9o0XIl_PD_v99n)r0fHx*Y7K zCK5O(LRQe^2R0c*VXH{M0%KqKglD)?&F_&|FdfQ~cI%{o20_nqEn2~WzlP$gXn2*piB9#cJ5OGhN%)c^pC~h&22|gC2?V>P>Q+%wG7PWV@D=D z!&o{9>8%TVJ#&9qCP=fUb+MhpKSpoATL-u=fQeB?X320>s{1Dise$HCss;n929YH` z!^f*S`JBN%ZIz(eI$TJbi2^S+Y0rKMV#(q$Z3xkLCIPe=URvwE$-?7*jM%w~gofkf1LO|IVIc%w3&3`4_gPDEflb?@ksL8jmctqAJHM zde*r!4h3VPw<6D!*z9BAjPf+DD7TM}!UC)`3+9|Ukch4RJ2YbF9AC0w5{jZgu#&xy zqN$~5-}BL?Di#-$o}Zj^m*{tMM$aAZ(thMyXDqbO+#=mSS7M1D7vp`5QvX^y(kh*O z`64<4AG;Z0H9timzWe9`(jdn@Vh%f==u$URg52gkxtSh4$tzOpA9r|lEhmz2VL)Fl zDI?r_1^&OVuLp9Sp@G?rI7qdLO%?31K$dpTG)@-&-QUp%Ms5oHE9EMk76AcdEq^>u zvmW_*YZMaF25W=Tw@iM#p>QwG1h)}^$|3-*=A9cBigdkg)PuVtkgYPH@9 zikLm_eP?7z_Avc7(OXn9mpM^q92!<>AXrgd)F`K&ZmpZg8nN?LxI}P~Qjy|kSU_Ve zLd!|jcizE)iFF7&F%cQJ`D=(v8qIYUcv!RLNnaWi|M_Z}m}`vK_pY`0&I)Mn8*uoo zi~rkcE{oOK%sKm7b1O2jmZjDaJzvYS+|4@FJ<0f*6DT=Joiqf^y8|Zpv7YPj zs-@4`Qs<4wRerpX*-+9U&;WC;jF!qwh<<{esDN`?zZ2I%1-kWxPOc5F8=MOfv<%u9 z16A$SQz?%0;I{A$Za@rIr%|h&ck*NbXpAEP%OAxI+hF!n$u2|=`XVb;{B|J`jY+F` zTU5$h>*BmQ}W|i3ie_F}Y^> zP(I9F|AY40+Tn_N3O>U|%1u(M1-7tz*nWR{pW-v*cTP0O95d+uDsA+@dK#Y6mhJQ4 zPp0ZLEeTGUq0hb^=@Sx-ofognBtQ$wzfbH|LU~;lesRfE7Ww0^g|b~7m5Wwou#i6J zQgq*Pq&c|4gW~&-fqY2*UrC?&c(gmYd{>p<&pF{Js;f%N*5vDN{II+Ryvu+c%wMKY zSR%S_E-trO^7Sv})#@$sRN)bpPcoTL6pzDhCVc%K-_@)5daOYhUmc#I+Nt@Exr%;7 z_nj)QD{4XmH*jU1I+9rD{b|F8`{qCxv2rd`2b>87OW-a_*-SGQVy$kqm`zl@6 zjgPq3>jS!sCS@hSUKMcr$!@_--~%1C^Rv4^hf2EIci=PY?GFrUy%E~ z61($l?#AA{uxCS6({$Mr8J--Ojg8D0Q7eK@y_34R+;gZK1x|#+P1nz_qSNRC$}&kL z?Lyg!-vV@H5w*wB=0Up_i-KLN_f~bh+a76LJ@VR1m*q?8Hgq?^Re8jNl0+vukyap= z?7?^A){URrZ`dY>X(R=wV(!;*IFwpNKZHiryK{`m`ry7xeD8Kt(&#!=I$CFM>2>s* zIF1tVc*_5J%ymGI8F>1|pr&WkXH|bgh4s+J$K`OlV*$7?fBtH~>jP}QE;yG*($k{(JmU-3~9ob1iI)}cG$!H~E!A{_jX@Q`tX%=9 zrm@9&qgP#x3v!2{Do}D*5iKK^uF{%+dP2Fbq>RAmrk|%@vM63YZHfH+@=j1KRmrUi z2tLV^1-@vUcYbSZ2%xN8 zl9H@)1)K0r89frz)e}j5^$pZECnd1hLhH{SA?Krj&8lYl0}AoITvmwagU2~INojz$M6aVP zYVCc|7L`|#-zp-iBHIM^FARBC)Ny#%#yZOQu_>j1|3hj?SKwM~FUd9xurtYT;@8$_ zMg_?}&gU7~uPxcT8IH{B+L7H8Go|%FSBXVQzV3#3#q{p`<>%3P`6!`O%EXt#d{XeF zRFhBPTm4{yh)EH=lEpBSSo6B*gt&Z>Q4W zn^BxRm-+Cxr@e%eTQ0kA%eSNKQ482=^N39Kzu=KL(|%O7ddE|OzUn9$HJz+q@VqHIF23P7a$-$_Uv8F zVP^9oT~+$9IU}xv*&KKD4#`gwt=4#I*-XVz`ojgU{4@pMO7zu73j-s_`CE0cG| z*L*Wh5+|Sa6#8W_#NWa(t(G3Ecc^l78F)tP@6VE)WA5q4Qu;ZJq&k8P>inZNsIo9i ze}uFIgdlUPz}Ta#V*StpW2iccsNU22%VW81xS~SnOuAuH(TZB<9CQ4V@7i|=Lnlbb zuN_^hSV*;h%WY%ydA`%oJt(D7p%gvz#FGXRS1)gW22Web#FxGr6)*2jxY8fd^JLd~ z-&!j|77_gpJsvO&-dsM?E*egvGe+}RK{+nm5-Q0un@c{}*~NPX(1=O~+>IPA19KmlnRuP{D4!a(q|BmP1v0PN6@f#WcAsxw648n;B}g8(*C?rA*lfpkE#}9 zBfr<@@7Z0V?4A$*V>dduyO2s;)KyFYAc$4zUe{>fbMNG{L z_*V_ny=Kl6C?;DdgDo(6%D&ucHOEf0T=O-3KiiY&Ix{iZWZnvI3kUqN zxuW)%2qQc1xHQcPzGYc?_4LZW_Ux1H&S{=zwY9e-QP&a5nTkirlZWZ$xE1cc(p`+M zuMv!1?QU|B+XD$ba_4HSfyn0pU!E08R-e&PU;ns-R$sT^XX}a;o8!i%=O2k$lhUZ7 z_B_*!w~O-}OWPA#jvWztbwfB%jck7-AlTSx{aIHn0aw0XmVSI;Nj{_>qoogeecp>J zqWQL&m}#tIaHZ3h39AX=P^v7>ammnv`j+z<(&jX@^gT)xhcByvfum8;T%6Z7y2w3J;WgFrpyn0> zxL9WkQ{athqtm9V^@161lzc0CYKs3_Rle&q`pE*l!zXZih{x9?bjjxQ#j|ArwwHb$ zd61HV@BG^R-r(z<@4Jg~HO|Hdaiw{#4!}aC{5v@#x3ZkdYGwJQdYRytgWnRqri92= z%Ql0ns|>~w8=(S0N-0}U@_w<29E6u8<@ri*VPVT`Aq2B4zas#|Hd=-pdX+Tx{r&P_;WC$@Hn%@ySPd$LdpY@W(vT!H49W<3YNw9Us7eux#? zM9isXuf;^NY8W7}^eL_hgOp-gySF^O#kFzVgNS8uSV#SY81v7)J4TGQKTGoMK<8gA zvobAw!=fC>7_Fxb|ICD55u;sJAHYzRRTu3A{4hQVS=UWZ;Q=3RWh@puV~ee>S#x`K z|E0H>TjjZ=I3;0ZvB+kBqq4BT-qHR$&eRd`kIIK>4{%~&PJU^@#g}}wdg~nJTxqmK z6G38(#$(l$3ts@AJ#hc+408H-0@E2!PId$O{;@RO!;rKvZ&YT+lZ(zeUDJ0^r(yPi zvdGxFHbFcg4S!w69zH@?`toU3n4nsp&L=wMRZ4GXzP9orIO(G;5^Chk*d)ZOU+5>N zjsGaKk9SE-^t_UDUT{jkG zTEq;&&ddEVl+{um&b+0@l~$eV%C{U6O)$QT8>dj9!%4#SxY5vuRGB7_PT6OGK6qU6RxBfb+glNP0zK(LdQ?N4lKl?zjzGX8A)ojJH!h3Yvp=bsA*=XGD zBf!Sx0Yec00~(mW6L=~webjq(bWUG(*A9?BfA83D`A7Z?^yXxH@>TGI{n_^Qz*Ona z7a9yihu_piAyrX`RDJyr#lo7zq=A~!?Pv9x=Bn$}cIXZY3Wc0~S6@W&VM4%CV(^nv zA@7lW31U6@Z&J1U2{+~=MC^GTzq$~l5F8h$FE8cHo4d)P=J@m1*}2#c67zA&WkoN9 zmY7bRT<3SbT>LIH4U^LTF33C72gaZNxnZj;M82e5AQKEMRAMxKME-ZXrX|Gtoq%L*VFH~N2K7TFJQ z--V~fWM5MTt~|;;ADBI9A)LSND;EJsoeQ6-ttfNLFh1E z^r)~+XArfc{kYiHB8lz!@5&U(yw`7R7{(n{_gh1sTYNSJMwm2+^L<@R`r!EpKz)Y| z!mB^1Wi~GfFl*_qG5gVi?b>t)cQI>>CyblYOJrP;N(M5Fo9&CMy#lpW^x)mq-Y(87 z+kR`>zU`8bjhPmtMD?uFUfWy7in5s{kIm=bO%1A`_6|-Ky)#?3Qnrg9E8ts%EsrYh zD!glf&hb1m-90VR%(7tEFE53RHSb=3bVbWX zXEBuWZxQm~r!$7psVo84#lGM3E4#~wv}RsT>3uQPJLQLyBsB>>Cf~-DGVDbA&de1v z#?TRfVTS?_VWq;~b8?OXV_)TgXT{)?bDbo8*~5Q>1wbJ5h%>%Sy@;)RG?2)NHH-b&fEP?FW$oCiyW>b^WkM&-ML#1lDI>QH> zR}m1S{lyUva|l9D8Dj?eov{-RDw{_=rd?B~s`l_7_4ioA*hh%*N?i&lv(oooc#OFJ$VhU}djVZM{dq?6p?>^tyP3+AcGoLj2*RF-Ab zEmC$3T=8Q6)&2=j1Tx-?Kf_} zK>711x~$N$>%B(!d3(iZ9i_M7c2mq8s`z<}{MLi*D9t`Zs3EKJ9hz_x{U+V{v1nJ7?=T%K8^jQ`n;!CDmqm>drQB}W{n}M)Kbn`pUO!hIY!6wnK^+)QW z;kr|0H+g`Wp68-w5TUtXGOujasEieU^~TR-Z(!L@-P$tn)&P@4-39hwhbx>#U~dXB zd(SOn+pnA2CuQT#AQsT!7y~+-`H9^Jqh6c%4N}xm#{Xt8ZT?cm1-ky+_@>}wh+&#o z?oFE%1t zNn8u2ma-=pt^uJ`boObzqq9*A#j+Y*kyc_zHUvA}62VieSNyQK^0_OC^c9yk=X|%w zYAH`x+lty!RK-311cX#Vg9bg=u~2I7(_VOk-nB*7Ap8h*Vfd8b1v3?@1_TYLfC1*V zq8`e#sWsD2&P$2~oQJ5~WA+Pp?>0VncO*9eT)(@WyRka)PHHXxUt^&^kX-}(D`&Ju zrcsvIi$z@HQV*R9Hx4$5SMKIPYFWsfO=uCXC`UF0`g%OvUOaPJP+NvL9F9{8>sm)A z4kvwSsEghMOo+zk-u#}YuS?&FoK~P}yp7{~Ug1Ia1}Y z_KauS&Nug%0Gp4zelnZ@H1#^v4_Zp`=7*9Mw40q*E@MPJ!>I8PNkQc&OZzFx80%dsiPqpAQ@tu8c^9%z>k&hgFH6Z zF7%%}rrCbm-u?o=?(gFfV}$F0HbxHs#ZYU)M?5`9fd-xR$zfq&aq~4Kamn)S8gi&D zt6L&EF*I>Eba7*cr2K%Kp3PlSdv|5HvU8I)=+B?A3A|G6j^ll{VC$m% zgTNmGpByy<7MR5;Bcj+Ua@Hs}v1yxTq^mQtT{^@ryo#;1x)4wzB&5NvC&#dAZ+6IS z4wYO#+3>{EpWEstjNtPWo)VwBMx+ek*#f~Uw=J&4ykKNG$Jbr9YmqZ+Zo&Po)hb{* z%74DyvE{xCMSO~@ewLS1iI$x9y za$>pm((grIs(CxBApu=(ntyj`p8gSK$$HLT9(#ZIzq&$=4XVQh2(z z{7i+{#zu!oA06z?_L@%KR|Hjexj(c$bDxLwnsJNa3yg`LbZ-1feL>h1c@bE>od}F$ zFRD%5zjkE=7t050o~!n5LMfJY3ZdoyI;;ei&!twfHvw_6;S&Ia6(Az1@5RmmS*2g*rtNWhwBcNVa*2ITHvjs>f;Jp5?iI$_Nap@a ze{eiT4yYsEwe|vkva)XP8LvE9cUu`Ge}q~Je$!-Y8hBr5fU7a7CA@C#g2SiU8`7{u z-Nw4{;q)Tkg_}H=J0;;xjtGnZPXdpehPeJ+q8IRz1nC9+aKLjup?ICfw^3R%8f#DQH*e{%<~TxK76>SsH@p}WiaX~EHy zu|n?#O`3BjweWHsFrT_i2CETX-FrGKjVxa4R=Y!{UflLYd2W;3KIr<&gA%6NJGj2> zXc=r%0j;sVtJ#M_(*0{$OecNNVYywT3FPj0A|~~^n>Ni1UTBbr!4W4Z(_U4#9xlqQ zt~`w$Ko8Z4<0t}+r4|VRfd$a!l@Wn@=V$s%~e2{`l4g9y#3y>a5lOr)K!qybo>|FjYZ$GFKR?4Z15OfVm1n&`8Z1 zUG0+{)}L3BIw1ubnAzJon=A zNnggf;*Z$WIgFn0%_6UwjlxKX`C4>v$h!y;;+@AMr7yf4zOq!qW;eS<=M?_HmPXqw zF0u~&YJ?4QWXs&#-PoE~$cF$b0LFT!fcYrDYliF`e+6T56a~k7>Igiz8;bl zMN=4~`trGCqOllmyLS8a${nM*P6V~}@dUtQ(gEw^v&suD;yWJSAeMGObwWP?0-0mT z#NVm!-;W$7IZ`$BTn-dq<*$iL;sFN4ft@?=5>T*Sa`SWGR;kvJ8a~k|vEpm> zadO$xo+gz6P}O2a2{)N>aNKf%L%F-(mj`V_;3dATr23um-}#5FYot&xah@$(aXlvv zFtmRcG@9eRjL^UrXl)(D0s2n9MmqTCUbQqgKJP=>Io=&pXhkV*EXLar%YRbEjj?Fu z+u1ORx-EJnmgxwE$2~G0PS&B5YGPFT3!%5_#5!L1!0!KJ>ng*dPQUg5A|fj&-6-7% zNK1%>bax5@!q6~u2#7RDH%R9U5<{1yNOyO)NHfIyb9Zs~|E^!WxctBj=RBv+x$mE_ z(N(WFLx;dBo+@oBgxzAC(I&=8*d-K-`55D+xto$SDyf39w<8YQHwiR%Y8Dz}PWj$@ zeOdl(hem%17qR2)vGUq}jnzectx1Zipq?91VRXbJ$rDz^!sORK10;3@L& zC}Z2h1-elLkbm0GrP=xbtf^yZSmj+qv0@o?TWEhm^LUdmP!IYSXa@le`_D1@TyTw! z$HmAj|%C^ywjnXYEXx2bNq_j)$6KJ7Hq<4 zOyV5-9+}?jriTV36zM;4=tfl)(!eQ2KZW1 z^~-ap6f#E$bAAv{f4w?%ioo8Wiwx;kw}!K~>#GFCfxP#^0L!TL_@T;aSaDN)04WbP zaul8S52=3h^n=#(otyIr56&TucG{iB5gt`@sG-oj-L>aZSg)GB6|+}-!O-8Jw10*t z5rCptPd9x-$KW#4>u~r+0^m5G{V&RsUE@ed2tloOO8$xdgXV^yO>RWbD(YcJ1&o1M z)uJb+tvt%%8?44%aK`j0tXH;t!6*T$zDGhaoNjaWw1IQp5aY`w)POaamB5A>xEcfB z9F>#wsg;acm8@!W!5=X776R~CWDYjJnaa_BUg%Hw$fMSFh|V4wcHH7BIPmVdt8gy3 z#$D`XaETx+B#?o=>y)u^ndGWNkOmYtcHUiWigO_yeiA-&AC?F`PAkQ!$k5}Ut*59X zfC=X^Bqr|6Uj}%Ow_=nA8KcNtiq3o9X&xah2pEVklLg7P10;{`ud>o{3+LnRzGvntlES=yZ6Pla}5zFuDX##}p0~8x&a~%EO%JDNpvP`1_fdh9xHXqzz4zEjayFGv>MjQs$t5owuT)A7FPsP2cL+Gg5`YUA^#27^?w^+4Ffhsibm7#dkplYK1jOzxyn4_aSDHq!*idTR$Z8Ws zb-1kJ(3a4NzlWBrMuXAMVB^Q^E=i-OqHHY9kG_5~cC0jbZGR9jFFCzx%Hl@yJ6!Y5 z7v?1IWA-@I2$}JYFzH3&s9VCEc4HxF!%rMbbxM$2#-)#xly6OW;o*d~Zn-*o&$I37 z(a#*Sz7E&UfpAduBVOYzv&%W$c?Qe2u^k8bH)t1aF1a1khZHKh2zIWE?cAIF3svXY z%NORixENGYPTaW)k`^mV zv02x&qJ#~(w>pfU6Gs(Hs2oW28+HnHe4QE#u_^x`t9C2`FLAWL4*CgL9r6>4&)^y0 zddu|nyu8f3DE_BzqS!n?7wzvi*syps0(!Q+;h-h$pPgO35@abH($DuDyg%Jsn(c2X z&8aN4A-!#6%wS@g3%H1cZvp1uhIPU_Ivd-OXe1bedEfkCE4rmT@gY3q+fL!TqsN?_ z5xcEPOjiM~0S~wxYvEku8oi^<7PIDzi8^)BL7uG+3qu-0n&+{v$rU?%ncNTni4Zggq48q;@lf7Vhoc_lr< znK^mDeSa?6*IsvK=9Xd#WUHI-CX7S5Bs%LuvA~W~Tdj}5lt+oi`+BASwbTq4g#y?9u023(RS22Ze=G#d}&LD*)2Qc*58)(*2K>3;K`a}JJF zVehFBAkD7lV5y9}~o##!#8ur2`2NsVjV zk~za7w?X|pt)cUYvr_@rUPDi^p0cbCD2p5)J3RH zubF2AfFbL_y#_vYghrQO+Pj-rKa;qgCX=^ z^4+8P6EWBf1Hh{gCFmw7^em7rFRS(7GZNMBn%H=>JSHDTR3ltXG+ZqGjI%p50{S}Z zu(x&WOKabg#bz~|{<&Aa?DH>4Em%_fB|Vo?{jrEj;`JQj-Jw$&h1)q>ZZrkzR{U$m z&Hr7XjZ`d(LrCk7|0r~39Ln2ZrHPW?tnT<8xl%@X&_UOxp>G3Cy1$ux# zYP#}kTAjvFe?EviKYneFdVgU%cpO;7BL{e%j+b^y)6%>?ZIAlH;?^$~{({PvaT9+a z@|P0dxdUPb8q4Wvf}^X)4ggh;nwk`kJu8P(4A1y!<{Q{VLY-aia8E7KJC(N5y2qCd zU8UOl3XuBW?%s)OR_#3udn5B+Bz?n%2X}ZII1rz`OSF9Pc8@*uc#36E!g+U7r*=(s zcbv8(!JxZ+(BSX4#B2KeZ2h~O$uiU4UOIX5_GvPSIVux{HbHXT_?OtPrE{;g-#DkQ zO>1#ctaS)Gw^cia2YR#44Z+LUX~*n~_$gcvK~>%sUbo8+3;N4Zb@fi8`ZCsKK5yc1 zwlB&Oa>j!$%$B63orTE5KWHnhPZ{b0{qUaUsO_h~z8P5fdV7-iT{3vlSE!fg*jCou z&T9G%b!C5#pSEynwm0|OBQ1ECGl}s9(NT%UsBF0f%%ou?q+H<$052Z_W#3MkNzwm$ ztp7thKudxvKCK2K704>|EzRM&8uNWEi?YR?DYug;0(us`f)4Id!OuTHHBr!H73dKKV(&-ei%GZ+@Uf}xgQ&qybZ(EX8Dj|hb9Z4hs zfL1_QIHT)|1U*P-`@_QfsoQ!TmegGOCAf9>>JTB!I8(AT)>Y&-(Q>udF%49gYW!QY zkN?(&?Z^buW2XWlh_RT^G)(^Bg2*xlfPCx^jbTCs#pCnelp8F#E(r&|3F3tuo;2KMzB;B4! zV1BmA^d|rpK+fL+uCzs7$Jau4LT)b-)6=Qxz_d4ie3{a8>q+!Jc-aDXxJ^ zmYx69h$dUe1p6ESq0x}j0VzGmr90effu5~PoSH@A8018<*$t+M0XV}T!@T({RAyNPKWgzggQ zy_HQrSZLxNfL^$%HGQ$l*Mf910H??uosd$mm$Qr4>j%ibt%qOvnmFbsE=!AB5|Xy4 zkabVBy*%gn=3>a)H`v1lNRU1w*d024f#@SeGmMCPRHT;|+#IxGu-YvQp|YMOAl1G)3~P~e#7!YZy) znIUfn`sT{WJDL$J6hT`wpz3sw=x+@#G%iLJepa24sNN=X-PJn{S2RmJA6^FV(x5y- zt8BY4^Vkg)nxvSz2-<2O)xNpFx-1MJkS0i25;zjB--!)bf9k8xzZP{~1q`MBj+3v( zLooDU^2fXD-YPfCdEQ!d8tL2@0$FuG^4!AoO0fe6Yf*sS@M_@uH%B!Z!MT3*el~waFQ8<(dq_?<(89X9j6V|o=e&9DC$`l*0N$9E zs=s}xk-mAf6=VUB(3qA1r%!su#n%fkII^>#Q3?sqya{L3u6r`u7VQ#zEq&MjxD;pt z1B(uBGz45A@&CPT-a&v{!DHUxn(jmdp#7)?C!EYBAv@rFr;9qer%Eb`)jUVL$Sp&= zJL~%1ZTJ$ECb6&YvYS64t+B&PAKCS~ON?9nEL-?*p@6E{fs*6OiBLzt%WHz};$*$D zts$m~V?1-3G0B?{-~!Qn-a0b$O_oz|UuH3)pFoA+kyMy6*~(fx8z>qgX`4s7$d-!Q!V{WSZZIew75nlsT%bFHrHKPjaR5jpJ!SB@EsVDRbw~em_ zem7i7@-=U~=FDZcip^#h%s-lgIqYzZVLgr5f4DwiGbeNg6CwnY?4)XNwexU0TUho9 z1E;sq#K}!eJF(~MMzVsI=|{e|QrRO(JHwf?@lIm&m~8}2^fJkAOR{j=3v%}ZsW)@3 zYfu8Wkew?J9!B_3Twl7j!XVn4=(TAxn^LO&)DDU-f-0kJmCCcBj++lQ{C~BQNZNqA zTH`9u^pWEOs=8%ks{k@Ng_A9?+{+gO!5yc@U(Gd7N-nROHVQyxD1PoV$O|KTETw!b zi<4n|PEk|2f-zsD&jTF}Z9ISS)W$WAbgkkv@FK(r#(~8^uMDiTo3iV%;qsj}2f>N-PwC5EX64n?hTU;AuzodMtUk`^ESwh4vR31`N^#a*H#r zdY1V??I*?@y{$T}DjjK)Wdr~NMn?!)$JP(mFEW8vlak9sb@3W84wF7Q7Nc^*CedT! zNWJ3{kdfYm|2HNDdhEu{+1gVhH()U6LLahcUn@UZKaARJD!`rl!gcXmjbAH(bGGx@ z7P0RtJyIK6CA4|*WZXs2K`T04bDRml-mTY%`itaoKmJ=gqymlWn)7!0^RJ=OdeFB7 zvtO~tF>`RN*3;u{JihT+PQUi66CzCKJ$)j8qSx#0zI2h}h536?uN?61$+$Lb$aq-F_gYygr{RpT7>f)bdeZ*3M~K^l0+M*&ix)XSvnvFP+) z@W8h!*^y39dp@?gYNkDg(F+)0z+(gVl6qIG&CA?EL6n)p?x4^`eQ?fk`SHdgDf^Av z%5_qW`>et1@>i$y_6zHR^IsxY(`?rD>GzI3KGcyFbjB0T2rGjhc}MK^ zYa!n-+O}qZJo{4o_&Si4+uM_E2y4Yzhn<2oTul$G#x@ov!o9@;xn1aANL${%zV|~N ze6a9%UAwSoY}00%sWEQW_rICn@39L3Z7&s9G~Q(OvjIv zK|!XEQSN=dk2rS}UUaG|rGo1(j9-MelXrt=@;I%f`olGQ)X!27##WbPiNHqmOQ=Ty zK-K-{I959atYomYOwg1u@AadczroGk%*)_^x(dKT4x2DgvMNM#0i#$}XJ`c4h5R-_ zU0l|PH`A+1Q4^OvXEecXO3^VPV#7DJHJ!*LZ>UWz=3G12>M6Q2k9JfP`nf7=cIqP` z%s60P@2#4c1s$$Q;0lL}&l~)kecdmW{8GDC@Cu*Hp-0P<$a+EfRSo;%Ee7K7~wlyZay3p^2w*kKMRw%eiXi-00!=r!-f@g{;rNv|dc^1elT=BW)U|2cU|^*~MW-*z;8~Ud z?@at zx9|W9*Gs#?jptI+5@b_v!P_wm6r>}%<7hE&xW8gsHWb;0Vo?PSj-kzLscrL)NqWM= zI|4c-jNKIF%kS?8bV2yiX8;baSnBer(Wax*%hNRNPh#)4-=N?JzColk^$GSA_%6bb zjraIgpZ;8OXYni`04D5z@gM;kY#9K-vRu>EO3BvI)^AwN^339aeb+yEQdK8)%Pm+Y z;pa+fAB(H-ij!pK?s<@X>ElBw*mErl_sgZ=9Pu-PUyP+9K2KZiXuo+wXm6wI(n}}!x&FrXS}%PVh@x>l zroHi2{7bCADU~0Uc3pF7%nqws^vk@27%*;;g_6zfSCxJL(qK*dnrYT$VV@Yb5f!n? z=Vx8lt9><`tNvW5P{*~=GOZ5mg^*Nec(p=u+O1c&=`#QRw&x52aFuWpT3NAEv+8>r zP{bk=io89g&88-flY!du`a_Vi-(8Z^O+PgjE7d7llF!z$25m3?ejL>bV#)_ot&wwY z2DCI5x`RB=%dB70n7a!Ygj;J12f4)0zueRUK#(V!&Q339piBx^tj#&6`gDj66ArbX z^eH0%eF~rw$^WVDI<-)~qa6j@EHqUE(1C6R3i@8f(IK7MqvOD}4O-^BD$?id^`FPy z*ho*u4Mh1<(jY27q19iw^!~R44C46;7DOi1LC6VT)OmY!XrTT5-6g-(BE4dXH_!Q2 z)SD{*@?k_oj2n@Aq;ca_R#U29OJf~u*omZ3N^l!EZE&64B;^?Mq&~ry_OyE1a_T~Q zF#g%5e)CG_XqbWEutzr5LTfmanC!M&8t$WrY*(_{sJzRRIKAf8L{cLD9;fQH+zaqC ze2n)b6xHX7p=AZ`pY>Dl!%9QR{0Ku81XnYf{-k{u5`1@cr}?VJ6Ula75O7B2Xi?*C zuGckfbJL$(_(p`SPk3yogzG1@Z{>l4*?QRa z(^6v3fH%BNG_~0Awg}_}kEX8EW5I0R>VDmT%cs~z#>0!b*4Hjf3L2Hy=PoM9{|V_L z8#(v!FWh}L%pOg?&BT3{aszO9WI#%fo*&x7Z3&uQT4lbG7Z&-0hpDATMjvsJW!D6U z+(v;p#}+EMkbRQF@D)!M8l>!mxG8z7OaPK+rHTmCSbU!As{iDV*slzdWDDd_xZOSd;&$ox-RvYw>*tkw`*QPaW}U3f zP9pO>KGV-zEMF{k)yQHc3*$A}{VgNgrUQt>$Qv9?3hs@Bq^?u9h`UXR6X};PZ&(yo zxydU4%6S6-dGkyccq@ZOkev1(0OLGx?{gB}R5)Bj=WHtcKgm7d1}T0%EH;3i9SW;?z-K3)Gr@HIO{q-kmrrQT-iGAM>$vWZ{ z?G-B>uXQa8u(B%Zq%X2K5?A0BCF94}JvIg^U^WSb@nZl4`|{o zeJORLm8pRiSwrq*i# zr~yK8dXqVF&-j6?)~OZbs#D17a@O z?0H(0=RRU)DCVsZZkoH?eBHP*G{-`(3;xhb~uI8_9j!R?OUE)6BogZIy zavoU@O?j@4Q3dY{xiifoHvH6c3X=*>a^zXlwpP#S0N$AmqjOP;^ve%kr(HJ+W*Pun zP{2R1iGOY{Dk$_H4<6cVw*vz_7!1fSmTSxzcIk5FR~$(w_!@OM6fDD)Q!QmFNQSeG zgsgn{C{k=^FM6TFv11Z+ee7z4-Bwd{LWKRfZc{IeG+?7ZU+YAHQ=pT=Izwvxi)ZcK3r5UyY;K2dbzjR0Py8<&JTW&Dw*E??@T?*uh zqvgmt*K;uqIcvx0{oQx3VY)uje+%Xv!l%IcO}-V0syS1MYcwT1hgs@dhzImg#hYy2 z_(6XU{xz;j+Vg615}a!RnC@y!;fVg)9;?k-h?Az0Zf??4S!Vd1ST^MiRH1W3jc4q> zl`g2q)mgt3k&7ZX(Kq!F`ET#CkhWMk_M-m8x(=%(Ss3P~ysYuSYYWk~?`9V;Uq)M= zX8u?w*FB8u6H8b-$LUJ|snywg+RnHgOFJPuFuY!Nqn`t10G3u0qT zp)VB*)k6h%JoTQBc8Byks-qa=Mq~SC?Ek%DLYkeMQUt$5YL|}D6!V%DO%is}3Q83nCxCtoST=&Yjo@U3L z+>t`h(z;Txd@^VS2VwOh{f{;EwI(;yLo!KO!Coq;#$%sOCtHV@Tw=A|6Tf} zumj+{i;CHziXl;J{c;%Z7SR>A$t32~P^N$_{*gZ!Sfh9(-^i7%g&uTRs}4aOCt~@h z-LGT?Fj_XhMo-uDFvH-rXy8*DSDx^MCWO=GoKTc|xmWRAYGYVc)3t~jnNX2aXtGT( zN0OC-qdPQf{}(RSX|yUj-?%nsX=Cn?h4kPD4E6{4d4q2~yLhgnin~q^MX0`=opOEZ z`|*SJIf?bFxzXYacT7l*s$MOCY}m&cxNYQc>NE^t+xU)pbdl!r-R~4-bN4ZahI)}B zg|{N#&A`dmytvTLS_E;i7MIHSqZ`|Ex8)|dl>@BdN3hUXb4T+Y5Z# zh_{8;#}&y_;}@?+YczOjWpWzlDpIY1hH#=!pNb3z7Dr9ybz|vsd+$_-IP+)hPQ?>C zatzB!qwTdxDwjlUj_lD_7{E(e)mtnAuoPQrq;-(jnb@oYxC&uRS1py3@AcCdcmg@G zHLI(zZv@$O0D{<2nN(db7{Pk_#@2-@L5Rl1%8K^@Pt%!r>c8;3DEQ`pnXj_<#_3J@ z#gzO0hB?rOJ)cCY)z`Do?=?w+bo_xhmZzfCOPu;Z9ZU|IgYn4^1OdMFR$?F<1oBdcIGE_ZJt!xHL}my@Ko9XzHdN zP=w{_Y?TV!Tm+*9Z&n%_HFWvRa2r>y)E&^S4yjt5fTwaJVd@wx+v1<*$XWi|_KqA# zDNr4)Tz>n$Mq2F?kGbs-4~+f6zQ1S~YRgBfqvEwnbC)45UVee;w_=T>iQL3WZw!3A z>9H}7DourCNb&a0+B%%eXj{$J^j?(ZDXAsXvrwsE?&-{oGuw}yS4xvGULUcHpJaJ^ zXA@Px*9)PD(cH14#lqO>3#t-XQ?=pCR!qIsU(11E#!L}b-o$RQ<_QDGHc&1wdogBr z&4V$k{VLyN)Ioouw|*3E*++TFBkdAtN}rT^SGS1+7Y(t(TWTK=9Bw4OjhAezR6L)# z2#|`Ni+*no=psg3R+q3=XBM3Rn2Knfk=|R6>_NH2w(ElG}K^W3%CLaM^dc_bWa8 zi&rM=rnvEBPr%L14Hl8+{j$HW5!${b4RF!-B()a2_El#CZk_?`9VZKqo|3kvog}M> zgYZpx9*B1jTeT2{!&eNKWbZIU2jSsfe1=U&Yg}24t013=Wg86L z@?U{efL0&9_}>;L0MJH`4v~CU9^QC~{C7vtcj6Un-^ zENTGUvqkVMf1mSqKpw@Nm$FFyP#Q~G`=Dg3TWez+FpH0TqS?$pn@unl%F!-5`ktXB$-wC|+f7+hD-2_){g zjf{2h#~jt|N|1}JtM>_4Ddk+roQ`Rgi})O$rI_YQbB^k7AN?rMPw_7NIiAI*yEt2^ z0-8hy0CSz@|Mc~N+rj;<$;~RbroK71`zPRjZ6b<)k0h(&?!t&`NRYYu;GO1yyvHho z4$Fw^QZ!BgpBC`HFLJP`;aa~ipSxVSAvul}WI%lsY45V2 zL3G0hVOiT3D2AvUoWRVaX_89(8>iHPt{2O;{|wmf7k%9VtTd!!71j7Tr~Z^UL9%40 zLP5D^VQG8Wfqj1mXTSYUewE3km1wcDh7`-d&C=l=I9@}8{OoNTn^(v__-iftS28|Y zqS0dC3m-q63dZppjw=&@Ya9^0fVZi8b+z@iP8crUv*@kb84YcOPM6a7W4XcP0Fwr~ zl^`_IT&WMncTceov~6}{nrQc4L;6)p{ zJ4payAmr1WTI4-`VpYmAb%nyhGfbmeO)}k`h$6kiTFi(~l|0N%1yeMmI39lYwo8k7 zwx7GzaOuf=yt&q|TIfr-ZV;<4ov5FCqEzDTQWqzcl&F9(ia`1ANG5GL%EF)krUB&5 zI?z}PHP+GOm4f4@dY*yg>xZW56^flraQ8AfZ&s{J=H>B>%8E2N42fqXr!6zPjVjj zlw!o4gv2ao8=*xgs_-;sV?eR9^Tw2`7fLB+1WSqVp0<8nj~?wlInQkk#A{TBEmaBL z8}X;TAT#Q{LPK+qC9%1gzG?T~8+NuynzN%mZ9B=x9uA;*%bLEhFQ}lR)(g02wtnH^ z!(l84yne(8QUestmjwT)Q-SXr@w@%YPuGpYXLQFvIo-cewBMN3uONT4Yi2NhSZ)K> zG63>7MU&C*fz}ZxgnMg&*0#)5D@hcO4+@2wy1s=|=b4RM*J?_a6K@$E*1N=h3p|`_ zD6o1}u}mxTji*DI*?|K}(D6)-SiXJ!(wrn#wbwg>2mQZejrxd*S~lNtE5SO6XEOK9 zO!4uKj3{SB!WbT&8&SUAJdT;Du7g4D=~-%evBKmM*Iv7??$)e96Gl^7tYPhanl^Od zsUh+h0SpmGq^)NoBctFe7Jf+=m_TEdIa{AQmZQs-030nM#OKzFO1_xAM0cmIh@mx) z9ZF?`O1pkJyFONCp&_J7{5cmlj0-y1vhSl-EGJXrPR`Hg!8N+r$@5=jhxMYOn*jy zBzEUfELXKSd%lvAF7k`e!8V#Uu7p>VluEkIB{F{mwb@)2Mg|Iti`aI5rKEcN_~{=g zDD=0w&y64HI@68Caz#{d*YYvs zD3)1PFS+r7Ix9b^vt@0?lzOhPuYsuFKNP+91o)>mfhZBhw(pC}GW=V7hZe+NiLb&YO2C~ zIQP#VdXOfdf$=~h(U_K5|F{`b>WQhOjSkLDXa}33Ep;)0|8cbwr1Y!#1g>7siO?yU zEPls;9@A9iL)nN{MbNLx>Uo4)Y{`C>S=Q!fHO_q#i<`0Un zk1jD!X}z%Iel)0nLm$7fOzZI&9!7YiaELR$uA9%)cZr#k$Kbk($K3sa3G)M;laZ~5 zfW`6sEo-7_3G&ts!BfNf4$^nGU;h;k2bBY;Pv{PtdtZRk}4a0ahLx%1FoeIrYoNkIA>F6sR^toKqaIIXXy(ccQsS!lKlY1Dw4+a`+y9I)z z;W63sz_Y@4Z^SH#moWZtXb;akD;kXf6jkpW_qP=9J;|Q_KKu#&AE_8G*4Uk268{?dn7ouOdO=v$;ez7Vud03E|F+&hk?;=kqy7E`^$iCcxP-9UnWe6Z*@mVarCL=TVb*nj#-5)!M4*X@@w^qIe+OZcy%6u-^hKB~L zwrxi>MABZABOrR~7OYayqCXM9I;Ch&xl6rd0M7$6^j-lLe|DwVwD%2(et6+A6!bRG z6JPZuOXbs4#?ITv^5lKO0!>;7h6iKy@a1=yOovpj3-u?0pm^M)q^xYo^Y-<(jY*q9 z4@@3EXTVcoPz&Cg_>N~o(uCi{LzHlVSwaJbr6yE8dnt~JEE8)OZ~BGx_={-JJl>x! zyt_ngFD!=$sJq%ffDhquos^gQVa<%4jCm zq#mVq41dkfioQ%-e`uT-z6Gorj;@-5Zb{)v+P_mru?%k*UQ>GdKZ@!>s{R~_^1a@8 z-UoQ@ugAaM4AUHDS zaq3D(Tt8tmGgc?TX|fQ8O0}~+D{7;suU^XBQ(fT2tF|@WIu-ei@xRJt%N6&aD{As# zHLZ%_QBZuopUL>SxkbPzKiEn7=`#yD_FaX?alXw~9%nhQ<@H(g+s7qZ>*u(c9Y{-w zx-V9AvnHj?(isLX0>hyp3=KHFG&+Bfj)6sICiJDc_e?Mg zjpjfYb?EFJh{hx96*wyDkB7d-s zq;M4W@m5AW50`V_Z`HJ#uQ;bP#T2>yytb6Y1QgrBoxl7IpnyO9P3PB#X>+@)pyILa zL_QE53A(vpVGchwnkc5osG`;(7rTJ+Q>vnuXWDb`ho>sbzt&&ZvX>WPZ(o=)lv5J|t-47p8f_%&8GvW2o7FafvzxPkX`)L%tr0?EHD4+an+?^FeDd+! zcgFi`FH(M9w01Bn+9%wdl3*J&;@Y^Vr6I*aR(t}S=-Swe!(p2wZs{0`v;u)V7PRV5 zrds&8(zfmGnkHBuI-N6=Nm|7`?@UWlbgpF_(~p11?Tvrx0K&f2%vw(m={vOLhzJCz zkMD#`lf#VF33I=-V>ZHY{rlaK8T1nRLM6=Ru0RkoBdF5*4R7&lhEdTwhJ~zgY_wCu zn<3&=>?#bGiGg9}R&A&;s36wI$T{zn3(y1;{L_X)VaPox4{u%5-+JK#)nT*MDtuv! z_(V*hrJXDv8jX41$H=9(O_E*dX)zu=(+r*!GAVwifn~0Q zXpZq=;17NLQFgrKU(#9;$#`-_LygsCJzps?)D`%}{B!r+i;|{0GLxwO9g@>CI!20ZOni*<=DB0{?m> z4yG2E%^2bC!hJ$(WSYG07Hby#xbd9ZJpXpxE> z1?TgN2)-w8|4#M(7P$k+=?StA6=oacrFL*L5D@O^+L16yS7U#k+Ao*a$jo$5{gUpQ z6svDDRPZA1^-VPe2BReCJvDCkC)dXtQle+dVH|y0yN<|uC+aS{)JK``fyHIl#3*Cw zLhPc{@`N5Wsu8J+lyX(WacI__`l2Y19legf_~b(Tk8<<^-(TYzl-bWpP^+Jze82Oe z=$%Hh?6YThgfyMny>lP0BJeep@7 zdrE$6mZ_DvAqfPM0_T*I2T~HC4m^p5x2999`}%W6OV^N7+0LO}J}W&t3RlEOxDcv; z)F_JN79r_;xTo>-LN!FBW`e60NnyW^z<3mhDco(S^7)nO{2OtQY1lBS!VA=6ntJukr4;#b<=i}lK_VdA4j)UB{Lzlau0{b7 z)h_bOj~~V`lL$JoW$$G!#V9#+hdJzXV*e)8O!(g;h7*WA zMh3Dk;w7ylN@La*yhk@JyKT12vFzcAWwEp~Cg^VB7X(0;gpw@ez8Tc87CkjdLBOFe z_~dYWL6XodBO@$KLp_V~b4aa<_-w(8r^cwi{P=rE7MMmr21_Dc9iim95|QzC2}HU- ziCIrp=MFViQ-p9LGX+#)(S${v;`KOb-YEO@Zv2=AF$3w9J8b*Yp1Pt#k-k5Ej_s#( zE4tg9`=0p&1wK2!epN|N_k7HYtYI~4= z8GHgKjsu7_rQ!ZM1!A0ceZ$%CAjN-zy$nrZ-}RnAK)M)Qe{2QxjE1=n4{xh%YW+M+ zKLo#)1!jiVdm0ckMvMGuHyDLUU4K$I)FS7PwHAL=3~R-tNqlb$_WCywOfSs0j9BfR9s#8_C(q;HElN3)yaJ;Fd<6b66FM0KbE`iW zyt)N{mkpp`EeO$iB)oa`NO^juW5#n=F0XxZkwof%HPw{DTY3_Ung2s}VZo;UOw0+k zl6dQK+x{kb(Y1bk`un!VxA`WQsQ0@47Ux(=_t}F{ss|HZkl)bUs_JXc7vYCH-mgN0 z#135t8=+@m7(R?Z&s=n89BQ0hPvVCopjZ@^wIpkJdZseLfBEll zrT49;59v&vIk65T@Zof!AhoHrFOqHw$n1n)^`lM@r!syp;wEsvu^RK)DbM%z*T%*URmBQY1Hg9ksl(U7Cb@FuoWl5)fzs=7aF zJiL{_y(ehTI3BDM7a}toF^U!-hp40SypkLGkaVF;Myj(fBbM>TmCKim7pMS6QWUtc6L{+ACy2xySQGXk)C7D;?KaS`lt3Mxzz_9bX zwdF(&xxfc_?mwv|cz@YC8PNW@5sl6GB}haNHP!JJep>nnp`%9E3`EZ%N|6esq(HIu^}Gx;Ul-Qg-30?RQgdVNSn@oyqFNHI*)m0SA}bfc;^Cyp zx>)lHBus3vnR|qGW13w7nH&`4AWg;3%))33tbc^t9NL4V@!UHS{#A{enmS@O17&!- z1HK_*0n>5J0N+l+T+3E6lwxyE}Q`60?}OiMYv#KIgliJW!4ct0rv z_VA|F+tt(&_qP?KDKQssOwOkmWHJ9Xu2|d~)nK8lkZ&rC4!Y$|T9iiYaxz4Bf)Wvm zPt+J}5+`dD8ido_+>rOU1$ zeoepAh-xJ*-WOY07*fy^@C*k@RRY%F zqFz`1kpLe(qRv6Y*N<73W*NjB1voBEGmGi&~u&5p6IX`iwWRfUuo;>_O^^@%K+c1%aaB z_Icd$&wcITr}UDu$b^VGXntoQ{y^zL_Q9+h;G zlJ^qcE49UXZ}j7wRGg^Xq2#w6{abWIY1HDD&ki1Ucx9u?G0*jn#Z!bUJfXhxLHpH3 z8D~6$7Ky25GZk2s-HnWz%bKmkV9e}dskae(n_Gzf=FzR^%C38)!KL7>{c3QWTImg! zoQ;yXq#sh?`+l%#=%YL4G=q4qR>5FbK1A@Aid-s-908|Nge-(zM!MZ?ZUuku$*frQ51(yh z80cr-n#_m9wNBmsn3UO7oMWosy`mYpEp6hqOhx>T)8Yvucm@-2p>q9o`q;>Z#TnE; z&KRaMNp6_L)`X?1babmrOI}`ycB!P{vYtQ+8IY`at!{b%{V*T$fZ4%I>{p^j` zCveihyPn`|bdVxGAykc`uy@T;i6t1Gl#Ze}DU$1g_O{UREo^(r4BkELUPj#_!G&R> z-oPW5{%r{Q;{y2qO`}Swg4cLT(uZ_0Jd>1^x-OQpzQb!a+M-%jmCs&0vmw(0Ys^WV zcDRHQFz5n!@-4rqlgyaSSDDJh>eTND$|~38Czz2&#uu2KqrE>wnf>9&cvB12N#U3Y z9E&I^^i8%9qUz#nhfXDx5cbHd(vKHHQ>lK5a+6#YZ7QGJL!q6R7U6Y$xuYIlm+Q}v z3lBr66P-Fne$a~aH+Qgs=+&OQK4*JQp>kfLB`uzNbo|e+nB0H1rAJ?si1X0)QP?#G z&)qVnAGxR&CUTE^&8Dt)z^@-jX{b$4$Ww=Ji*p`MXc z6}I8vAOZB@y@4kks|zB;)RpF~~8= z!hWm)zcVt<`(cGmpas!~P~;tP6nrJOHqA#Cy=HR|Px%(d*>5{uMYRcp&p{+f1EQ%3 zu>|r7qhsFnN@^UJb>AZKXf!N`3vykrhS#<&aJVlx)oNDr#dTaeG*V|bLaZ1-_`iIm zXf2+Bo}Kt(m2G7N3ZA!*PN6gq!yFgX zG!hmEy?&`XG2MZ)v z9iZQAcE>P5{kXXAtZUyS08LFrF}*UDl5978G~9c0K!#qrzI=B{w9O~*&d|~y5g2cN zlizZJP(}Q~Ry$~eFtW%Jl_i69#QL_86CGXTD0iAbiAtt{fY;E)R$+xn5Y{x0!uD~BwdFH(bFHQL17`;d_O#q56RLkWkWbNQa>BrBDf z@<~nFLq!HEIo82QW|J3Rx{-L*$=U|mSYyD(`6H5_ojq`zLWO(^Ir*&`oBtKw*@2b- z!E3~T)AO2TAs}n}W7LhPaulQc{wnAw2X{0#Zg^t>!#y)PRa*%}v-OfjwV)z8w+kXR z{6(&j)ik6!$XZzhc}Fa~euD#&6L}cV_yPNqY~&q6Z%5d@m{q(${BeJ5pD^s1A?Ar3 zA=Lh`67GmnFYkyQFa zZY&JUrLqc#g(Pn2-LHI0CgZ~;(`oSG$c(|N|K-Wcng?uuj99_il;4%r6VT)z^-wkc zlI143m@9wiwnWzKQqvEkOAa_Gm6amLw6k<%B=X@$)zSf5vKQcTkl?h-%MiMR9&q)og=%Be;+AD{zh9xg?s8$f_yJmFe(kEZr+C^ zl@C;y%-s?NBWT@>fKmPbj{WW)yz9-z)2T}@!U6 zm<5#C7SuMls5GD$JXhOal72E9EUM{oIF#LvvKgZ+k*TX)*W$oP==zrU-1+hAgVE&B zc)nfnha$Mrg`Gv0MbfsZj9cVi}cF4@AFsgD_<=5v#rJIU_Ixs@oJV_TS9Pd=Wnrl`+JV-nVk(`ESeUf+D z6M5vrWL=K^`G<@V3a6&O$?v=b5|ZwtYRZRpi^0v<=37s(M-_)sTuyN>qvN3H?@EJK zs{_{#UQ*@gRLaNZu$h>HUXdmrSy|HD2P7P~F{a8OEc^kTXXVC6p8=ayKxl z5j4w%$6bs<7K0K9r;&c~BYz>5}g5 z?(XiEF6r*>?vn0Cq#G$IX;8Z1w|&3ws`tMBC1W_?oc+XFbIm!|+5p?M=*n^V1JblP61a<1!ky1Bp5ogaYAdkg=>P$ze zEFYjU^(Ss-7MVN!{w^wwO?E(BaJ%@A_!$jX6SYPsXjTMEVeecXUTDHT`&xM6x&W#* zC9}r8e~JvYq{vrsACCQvkcv3*HjFem0sebMCko=F-J5K(Vs4%N-i*_#LT(BnV#`jx zPt2IpCDNL2;B_X8Ztvfh`~7=IP*p$RSAaFGesrYHYQtC#YFs}(eh#nv7!6PnzS?Op zlIk3Rbm?~FS~)wRPu_Nw_VUcoeDcF9KGPVWc*7tjA|L98=Z`H;%v4Sq$#^y~-$$J$ znd-(lWs~g87;R^`0*-I44XL@EIkU7BOxz!J|3z#L1WefPP*QO4)6L~hhkcX?yeKka z?79dMcvd9I6=^86Ox-~_N}x57otv83W+Rh#U;DAq?rzSlEGA?5L7I{@;Jx<+nrGlvCyWU2yn}gvpe)$1~4QnflZ(w~bUYZfM5Cl)1%Bh|W#OLzT=YEf4s7 z{{!k`QbncEk!lPU3Iz>&x>Za2woZP~bp8zRkphIa?+b{_ZpYJA13wCR;~!3?&whNr z9Z&O__dFjAjn-Gk5`x~E(~n5H&e6gVF60U8*qYE=xQYK2iFXF{|5Dj-cR&%lAlzW> zgO4z6smUk^n=JLOB}py1!r&qfW(S4)f^0)l@EBAgPp7EmaED(mIza2ylJsTH4p^az zzgQX=p%OF$oxHHD}9lx{P;fPgB90DFr|IwWT3zz zPMhc}^e5FEfwyVNRXOGH!@yjKQeY}?X4$!(!lIWqc|<%gU}2O*Nyo2XF$aHhp4sY{ z9#kt^$B}mejI6#KCAlXm^2u)qx$Y$YEOubH8Fp%a*^h&Mo-Hx9Da<@;_t0zUMrHOb zQSPD{iQeA4$1x`cPK`mf&dr2@enHw#0tAmQ5ly8dnij^0NZjc(GKEQZ@vo~Z-{d*$ zq&4_Z8tc5C;0rYw6>zrupO1MZP{izAiU3niw8U&liy@5(zD}Q)Nq#|V8^u9T>Xm3= zVVqiPMuaD3UQa_<6h3euU!NOZs+#>%T%03}b6B2SdRh2_wy=u;UR&xb*YIo2(hHJ7 znhA9`;w+rB=y6erP=k>=IRzE~yl~Z`f81J@D~%Rh;RvE!uC=s+q8$HRf9r4j*Y;R)`9u;kN{sguyX>mG;_CQ)*GN&m z2hjD34*Ai}HYO-2o=PWC_4cA6iVI87-!@QXW>-9oNry(kfK(Xm#<1)iNM3E}N0$mS z))OV&y^_L|i2>8@<6aXDpVpgp3coKJp0bM_b-uk;-fC}c?AV@=7Rr$z{UOVgxMk8@ zK05ou?;osd4V659e>QY)rt9tV3Ww0w*mjpOjaL+5sy~Bi(da2)S(x#BXmdS+I3jLt z5z&{V$-`ugEtSn%RTN94rUo4DiVqCpX3MQqS1u;SSSy=_m7pap!L~T4{Rw7Z;@aS{ zOmH2^$pe_|P^#Hxe5qw{H<5(8sFQEA*IApdB{G?pjyB=9jtIDJ>YkYc`L*SgwB9pN z4KB5pQ^|(=^EkQ8#*2|4$X&Rrc=DiTO2jRYINFMWxwCEuM@t=y-{{=bJZ-Y zLuVX>7vMA`iss;rZ9H`@fbV_bC^1T8oJsa1)M6)0m>X^K#2e=K8^i6BajlY+d6E}c z64hpWh&|*xor(YQGs{TpeR{CMa4(TMfGwRF=01b5>u2^14ibmFq&AUfj%plNAvuXa zK||x|qVpNj)y^7#M%e~~_=U0u6E;7Q8~e>SKaCC~)dTD@E5koWq#!)ClpQp|e#gzm z`5B`5b+pYhGs_PT?8GH(z;B~hik26qjJh$VR5K!o(0F}c!Uv`*;~!W)xJx-OfQOLV z8X0#mdb2+tMp(2AH{$`2zU`Sd-j(BDjkX>=P=y!H4wjost1%ow{{J_HyIe25eyY$DLKFyBlkpK0{%AjykxOuIRAW8r12Q+YF;YOWK*(9CfJg4qVDX%@O< z9TgiMbb`v!{Jqw&Z8ED)76g^yD+f^0wVtczyRu70tFfYuj=2FarHayJT6@{P_U)&i51z`?DkmuS- zGAQtjEeoGuthE`98BDRoj?PJ1mXl|YC>Ugy<=E2mlJx%)R)v_nt3@Bjf=uX^JcO;eU68}+ry?H1ZM_g0*9Tuab=&dmH zaLtQ(iRYSf6W+@+Ltg6r4L9|LM1IayZb692#jats;|N1SP*D{{1rL>4(o0n>I#@k7 z@WCa5R%tM>ty1Z92LEeYhk;9j>;U2k7j1lmOuyy|aIi+=zM@X3F!5S)LFn6=%OF2^ zR~{rZ<5Rw*wu6LlH-4~Oe_W6AHA=a{dLB9~#NPZ`8bby%ExCWE@Z6R|CJj3zg8lGL zb26~xpE~YX^Q&gaW`H!|Bq~kNrOGW$yt(~RN4Y&H++5KMR)=AB^4DoxOlDTe;!7^F zOnou(ec#}AYiTz7_kIa{-hNf)M;Q4{19{T2@Tcgz)J_WGod+}iW6n=lKe%(#)D+sw_#mFPq*?pcaEWa3?@^c6wogEjo#fld2E1n^^#Fe5298eA{F zP|BDxKW7G9D*tnhL)hOl!sHrdk4Bee}fdmQvvDZ;mykq+?@Ph%5X z#MU<%u4;BxHd3C}WQOSz%&q$f;@?>`h*BZuPf1;j7Pekb8ZKl3`Hw?Q8<=*4C?Y(U`OdbL+k-U z+=;5hj|!L9(4yBxj8+1z{6 zJ#iq}hB9_tRgnVO=QpYdaC$Es-XABUXGtI|!=(MtDlVjzlxB{>zfig`%BMZ1A$z~o zHpb;&rXG_<$NOjBUQBhDnBeIQ?_+YOmFGm{-Pc9kr$u2tX}xjw*8~{&2Wg;r>@!44 zV-E!d>ed_=S~`|xdUFL;L&gr(S1DbmJ`W}diZQkz%NdR<0_wUKvUkc;=2V4xJ^ows z3@Wet#oSQJ#-R^vVEPiR7dbmoF-<*}JWCn>(7p!9j-WeskWZB9HBW$qH7<9dx0(w4 zR9Lqw(H2Ck4u!ka=ZC|mLFQq?g^71HhNR2Ssa4$`?=6e#;2i6em?=W^pJl}XjAFkt-s~af z>?-9-R6=A{68%3io{bQNnuMFZ(U>|JkMK4{Rn z5_#XClWfOi&!CZ@u|&6%=hnazcwu(pMx(vYnBA8n(Rd`7#98Fnnqeduxvs{F8hPW3 zv;KwI`pUulkf`zmn7`71*!2b`uXNk){#z^s;yQus@)i5MJ(;pH$Vcg=(#cSH29A%E z6auEjPPMKGZ8fwerZnYdq-&59-#Cev57bS?vp<@5b`Fm-r=*n6c^dV6wHpzD=dP*D z3gY{1Py{Clr()>dQPm(czF0?9cgfc83az$En9DN5-+xBIh7Rx&i6^(%z z{+IW!AJ_N%UUl;*pKeGpx)n)sr=t66L)z78d6j}4z(CqR z!fp{rE5lnW3fv_aLu{rs!GIPn30(I29R$}SJE755(4Vuy4r}5{r^p^iiXzGqT*}nf z)dUiidjkWNU2Qhbs3eLpSr;IO0xc=va0xR$$TL9wc4G^)W(54)5PcLrBo)esIENE` zIam!fFqdS|0@Bu%RUEbiajT}ZNWQH9&B0w%otp9uCL2Wv~$@zrcF2R29=dSHz>btm&0rUyD7iT2xGYTDf|sNCa4*lh^`&l z$zk7xcJ?|oSSVhwEXaubrvhYB!pr4@kCpB@0e|SUSJNG?4%yw-544*s{&f$~e)YmY}T4K5F9$N}r7I~MYWb|n#R%NVt&vWK(cdW0= zMxC@7VEZ@%YR`CPGY}3G2ISljuOe)P{$>yga8g47sp6u#|Ep*hBAqr6aFHsy=X<1G zjSjV4O@4eVnI8l+H=4+t;G_3_#9xnvro95AJ&P{iTj>hPA~e|wM^9hMrU%P_KYe;Z zkGZD=i&A3}nW?O#j?~8#UQwA?+xw)P|JLa&SM3!XZc`M%jc=)J__Kq0{;&Gk=3z~Y z_N5Jrqq3B9ApPA#>WX4eXM%)nby}FLQxxU&nvgByRF%fmfYig1n}8Z>?r42w+IGZ; z%q-DZZi!{5OcXFJZfT!==23FW??_xgHO!v142;L}kuC2l$*`;=xDwIWOVkQJmhMs$ zGgv}hrgokddTVJ6p{^gTF6tDHuP?*-B7<4<)6;z`gDwXqtzi_r#9sfzdmYEPu$}e^Uua&iMrmuWx|w`IgkEDU+`$^-`yF`@)iQ(9 z*N8ODEEe7Rzv(%Ed#9=~wj;q`bq8myp1-1OV7OR(tWkm&hmf0wCVIB9V^=hshV!Mo z;hG&?05e~T3XveNEbpH|lI^Cp7cYZSFYHR;`&n{Z?^QLlPeiEKn%FF<75*8Szg$0=rGjldS(9E9z+; zq;neTbRyI6tFQGmFz))O6n$Ybq7q-6C?zMR_jJfwv3m90?Kj>R`y}ZYH(lSDw8oIW zxU)I0t7}&nrNx~s^lzOd-1HUo{Y}&{&M?reSl~ioTiR|`v!f@LT}$!OjG}{PzK{eb zewlS#6cag1O^}q~bhK9JRKKrq7!Oacpee@yIxr^X#~hRE8`R{=pb=?>v}Q8^K?Jkv zMmga%>hBmFbJC9xwo?|6pu&`&B}2$mDXA}@@uqo{J#8C{Nka>GSz>5k9+F&kRmB(CJ8!YRIwDl+apsx^3o&dn7(e zP=H8BL}W`*qBI4i4B~$um1FXjULG3yqHwD9h@8fQ3DdmEM+mI( z@>Tb>2>gWKlj@JtU5r?VwWCw15wt(#%;-S;~&5( z=+`z&kig~`tG{4B(HPB5R>o~i?35Q>!u2g`K@vtM1Yhgt6{a2-xFiWGPT4X-H_5<- zyWvZ^~yfiNJJEh@gGQuw&3+Kcz&ioTrPg{bV-O|ez9RC zuZF!&f@*-(q5ST^m_w09g1->KOW27+QF}D%L}gY&m4x(^eg+n^PnEc%fpVM59y_um%qGWL4n#ef`q|nf7-dl=0SJvRP%rJ>W zg{>mB(}tDv1^RNfI3jxqX-(`f^?pkwPNb1oRpi#fvvQKtXhMyK$r zjSiE|^7y;!@X|<)ksfIyGIyXT%ePQz5AR?JYYgr}^%`o?Ri}Kq_0#r{nH8f!HuM%EAKIn&H}jN32Q29 zA3zLqY6h0>fMi`;&!ewB3YqE&{R)Phv<5?u0#QN<$F%u(q!oZ;=z9?-@5Ezn0l4v9 zmw&Qt04N@g1N~XOppt6LRE2Zqwtrzy7hRPw=|iigI+j%%O4RIz*jRONUsLSww5u)E zd?SiFZNX3A-kGKjuK zhN6P>m=a(7`RL^d2Grc>fZV2ZV2E9H(rssq_!o=?Ji&nf7tIv!mqpJMrV-hupG4DU zsEGSezBDqoc$Q!U0-NkdNEM;(qGbc4osL^%jTjgc)X?GJRM||6#WSy2-{rzA(PQ%+ z;toAjmfSM7bvP9mu0-h$?TI!Vj?E-lvFIs_hQdd|2faBj|DnuorA!qXgxTLx)4rc^TE}~3OQj%DWnQ~kns=GY*7&?Ts0Dhln z_<30chI%?hX($*6GKX(n0?)ZAtX1l_PW)pth?byYV(joXrGdB*+Ou7{^G zZEd4>e;^F)AXvb&_MN9}k5q}}P3S}Eq2&S9NS8V1n1rFb%7w<6PEvLanaMP-xAuZe zrt`Kg0@FL?_>U4!$7t4Ie8MS~#$?Jy)YJ))i}UFQSuV6GYl*=nC*qoEt#J)ogHJf7 zJ^DR$5_SbqwO{a&qJIb#@<4!{BNndoYT99#Kip+(nf@vAfgUlSpA=?XV;R`S8Z^yd zmd)6)4P0QNusSzAuSq#N=rWK!4H&neU@6JKJTjWutmOlx|zQD?}o z=hK_F^Q!97EwY4MPk*GV*P$RgD6axBGo^P+;_2@f&=)@WrW6^oIjJc!p4hH0j8jr& zxNvKkk(6hCW2vsbvU2cq7@D+kcxtV?+uN~BbCPdkr6p7m+;B-p%YmtRfc;G8LUlWPav}XQ8}o4TFYsDbfit$BXz(TX=(xT9S-!AJ~smBu(zA{VpRF z&R2b_fM-Yi6(}6zK@5mtF#JE9e>#9#6^6{*2!cj9<;#|ZK$(~-lfhk3#wRpQ z*zEovO)GxI*A=2IEMaR3ynqkJV^bTIpDv=FP3ETc9m0;ex0}0Wu`@#^$ShszturT5 z{?XY<6A76K&9u@D6{G451G=N~n5@!IP6$W7|L%2F$O9NhJw7@}IpZ)VH({kvr3?h^S8RESnZZ^SB3){G+6na=2JpW@o00ChpgQc%>1p%R3xjI5l`A?eU<$5~i6 zf-Q<@+3gC^>W}Ld>$?-{Pbn-Pc|Dw!F3!_mucwIco4ADA*AS|M$)Csjab4)v8uO)v zU@feqDv?ZgKWz5kuK0SUU$yfhFW>eYMQbQ&whjwC*fNTS9>!grAVSj$$<}1x69T0Sv$k2ChzYOjAhO z1MI)e(+8!niC|nj;0SG ze8c(4J-VGB2~%}prfE`&*t=S9w@yz8y4J57ftI?jPw_hyLMo{acyATNjeOd@P3VgF zfIb*Zu#KRR5!t`GXxT{QKnZ;Pfm^NQ>a<#FL=ZJ*O4$XT_~4y>IX_gv9y$I{1jg54 zZ!asFi!c{5smn`)2Y^#WmQu%UPu@ckk3O>OVi9O>`eLp*`=Q+HXSLNKNMAi$Viy(tJ4)cW=Jc7h!}SknjA7PwmqX zX*6WmkK0}HYJ$Ufw<}ade}&_L9yMnIpf@y6gAQ=o{>h}N5TlEL*A{TWkMqE3UU7$h zv$fs^Rs71KC?j>T1o(+qUz6s@R>qkg%EXWbsL&#?7K(kTkB8|R%SVV7t-w4QxR-un z9vx)!TG1ih^WmOxDJ3#amb3~A3DN;kuUOwrU8Fw|_F8WuPD;19NjpHZPjO{jw1_OE zK9?CaoL-fl>fcz5f&K+)z{D>zg|uW9QJZ^SOZ(xNy&Ztz176WVG5O8u%Kp2E18?+! zl|+8%K2s5swiMmbKtpj2u=UbkHz=FU@jhW4seYDLl_F&b-R_?uxyXazsUyC4OEg~? ztZ+aOVpFAFRw=V8?NcgXNT2$LOfrGYI)m-z#DhN#^KB-6$xpAf*ITbaXW+##HCP~f z181jnF_TRhd3~P$e4*^q!9%&NxS+ehQyFG=o|eg?_jDeQmEDGMCSULMZg=Sm?u=ZL z&k?uILF#W{RB$i%6PnW4jr};G(Eq}{leQ$b+JUR6K{<%0?lToNjtxai-!{CLo4bO_ zvp_kTAIEvkNI#u8(d+lBwbHcHENeW)F%DHeGqqA)sTE^NJ~Ec3>ZEGqfS-4e@}6F6 zEfSD``SA?@A`G0E-@k`lN62u#`2X?hxP;Z$YiRtXGexeBLkKA)(J9O8zQ!XvYVD|@ zJV-rGQnm9tk#OJoJk$Nl;^8U4C;~R9AyQbkYS<<<93}53f+3KZS1am_m`_r~CT+{K z*nV^*+RU_9-Q+!bP4M#b|K)Ykf$rZ|{LT3O&n@W>DMgTau2SZ?>mf4R=>S4!`9KLn zU_ZYqLuPUmK=;wGa}bA)LKP1V1V%F_8O-`~KZ|f6Lk<%K<>J-`XH|1Orq|lv)q1tQ zVPbDhdC8YvVpo^_s5Cj{9Gd%FpQ{B@x!_lP_-$ktQ#DlBPL@K5^(Us&INvoOP6(V} z-i5aiUXqy;;GClM%A6|uOi`(?P8!07U5;c>-wyauAz}XmTmEjhsxl_q0cCvaf;7c* zey!s$Td2lmN8gD22!Ucf{~eSOg`m#_yAHwL7qe!3pY24l+FC{X@gHyzjWM(}W$bt_ zr0C7s+DhYwZc?KT;_sX-#)?jpr@scfp1QfYSQ$WtweOe{Ea+lVm0LGK*&)5&mG~j! z_i-{x+Y%?v64~^@IP_YtFw!vBF~xT&-L@^kw&|4WwbVb*#I#x%W-lK5#Qts$P+5W; zLGx60@+OH0xObN zGt*YSlBy%~m^q9!CI!mO3jQ&54%wPoMZ+q+!ESYF2@^(Il9h`7fezyTdS0!8&Sw=2 z&ZBQqCf3k-=hQ`w%1~ZnZ3$z$oM~6S_12kz^P69qKg=CrtvOS zeiQQ;o1YJfB0I2hk^j&=uldg38oj@fg^UyuLV)uO7ouAJYS-;Z-Sy|&(HZrGn0i#v?NodI^1$B`50Dt$N1^g_fH@E}Rx(5Rlp=7Pm zI3;kyV7cnQ7rVMIK&6yK~9TYpug1i3^Rp~gdrf}||e8bjX3VFlq7AZWZXE%Mi# z@)n+g53h`}Bz|~(TZ@rUr^lc2f*#?Y%P0g=ZHMESiyVoE>J`nRH36e`O+!~hk>*t^ zXJ=mcq)l1U9~CDe(^pONrvD78`5zr@lj`mSWyFFV*DaRN$l7Qc6zx z%-rZKWMKR`1}!}Pa=`B!q(IehI)dIbtjMDJZtOHxK~{a^>(>o2v+lBXZ!=r27vGju zGrqGhKGn}Ad-}A4)0w<8LSI$!|07wKV)U?sVEg3CS+mYwb|z> zj_%ASYM59ZtME}T2- znKpSIzG4mJbR9hSK>yY{Oh@HEM%i`_jBSvU954a~CFt)b18$2QCd-d|DEuXdWegxB zXhFzHlMuzA`WpH4{o{MLVL?0?)DhE|h=zZVW4Bfc4(!^G=4KDu!)WJ9MbWMv{nOGA zW3$UQ|51v$Qs&0&9@bPwKb{c$OuAi(~Iyac0-{3ULsYw z&$=;tRJcKFrpa&%Y+kI>e0SUn*Ii1O1!YHYAOiy+!oOWX<*BvoAVB}2V?R)!#%IIU z48rddOb_1$Ng?>|ncdHu4?KH^fvjx19|P0+VHv)jC#}E7d`O%6r!Xf>!AC*&MpnZ) zS3#I(^|3i~t}*6l9#y{XV{d>e2WSf7roEtToLN9v&0ff!jcfketgom!exB67CmC(H)B zP7h>#xesNd5TF12H51T#7TEQru5QVBoiI{I75($hp`YuYczXu5uMP89!gM@XtVXVw zGHc?J!DGdWj~u8FYDUN*2eM@DN#bq8(*qF>ph3ggGcxn(#?Lzg)rX!z6A_60t}CUl zkkbua!x{tao_I0K5V=VH)wcdVQp8!WKmS=OfJ@PjzFa#iBn4BWBq8>x5dHkD{vEnJ zgDiMP|1|P}fK3~E*#f!qV8W1(jgHuoVb7QrG z;MOfLGDYlP-3;*e9-o`-HruK=>GhCw2L`in>02)G*3!Iwif{yBr5e49f((9?DgrI; z!^YsBmC7LiP9ME?M(i&T%{U+b#z-{3mP|f*gH%*IY`_s^Fo_U$-4=%(bg!>TDmEp7 ze~b%pk^@p>`lc)YSXx4x^nHS5Z5c8zWw^yOzJxvg{dgwfNs}4lK>PXEF)1G`t>#xX z2zGG)ay3^n5kDrpOS=&e7gC=3!hI~XHLx5k%=@g9t<9WGk@yukk`d0dd8EaGaKK3znqhfmY z!oAx7%7}|XK{if21Tgs4dsZ&|i*afA(%;aBf@#;pynAZal6A)|w0z%>mf@S>{6xnt% zB;*X;QRux$%E|j;QV28~>Z(6g9Re~V=Q&X5EnHp@s4S}yQmnR>_37!c9R`~svSTmU>e}Zg7~vG3+Ti5 z;MS6d0$)5ik+ZTplZM03Xmb$X-$kvKovXZ4x*)fUwU0ynaBQnFH91m$1xbGu{Rdqj zb|Kj1oQu1+(UVQNZ{&BV^PCgE_(Tkih!B*?*1K%68tK|)=ksfAq{KlQ7v{Au|Cmx3u&7QJ{3JLo-pSh{!_Z z7`-YkFG+r35|A@qScs``{uM_<4%c&$X}^9ZzjTST;Kn$B|lV4 zzoo7z-5JOu&I(lngYO?)$XZ~|cS!tI96*gYxC;m3N`Bq*r4{N^POXQPB9qdCCVK%K zGY!&>Vt?F_0t#a2Yff`M#TGn4c}B$-IY6Ye%2Z?s5kXXK%cSIxA8X2FPZvTex&?z& z1Zg9$E@2E2f_}%XeF0(xajj=Fp=s%$X45zFYW3RTj@GKUR-$0VV!S(*VM+Xy4;Rdp z+Enp}1=Hqn;Wg;rlg9=D18VCp4L{=a3n3s}(*CatSY-;JPObyS_U#hMTGx}F#kwC1 zTsKG7i_Q1m|6g6l>IgcBIvku5hCAqIn=9&!XH6bN)hp!iX?3b|VpuK^T|RN$gv!#4xLQ>P5`P<%gB~;d)S6R{1^Uo@qh5iMI@##3)Q21Fm9j|V4JRfsVjV0 zCv%NrXo@*YPf3DHWi>?`f1Lk$Y3X(P8UCM3ij4L!uY(#h%pqX4*Q9tiZ3J{pn+I2f zwB!l%g;AT-g*juKYSy=gdCNXXbdTNZ{~0P&Uz_!hQwaz9g<0Cp!%F=xX1-2 z9%tS5QG!SOD(~jug&-ZnbdCl)YIzFR!=ziLCewNIn8*Hjc31qv zY`U7`c(N&MpHCRKxBk8!h+Ola{f0W5=()aoPfANw_0)LC9}xi zYcOp}f~qM2r8rlxdh<>s2dOwWxcn%#i7v_p;5Ta+lHL*vR}_I8n4o%&y?@#Cmi{yy zylNKrJ{J35_|_E3`)ww|S2J$d9PyJbE`B<1UXlaZVu(Q56fAg?k(mLF$eWpcgL%J4 ziF&Xz>+5r~g|4uh*vY;>Dlt)Dn2Xb!Of@#`Mw){61GOl#;+L^7us`}?)?E+Rr9%9S0YV(p z3fzbYe2?*uOeL1qJFF!3R(;4L{dSr0Zcn+AIMBFQ0sN`0(rmz}y4Z~Wuk&CaQ9>>@ zLaQ`QyA2G*Na5j3=F#Wm)RKQ)rHZ)%PShu@E*o~wjqoZTO-;X(i=<@DQ!0Um8}a=e zv5vv|;+CiCO6B^FhdiuU`3xf7R}7|C9tVLcA)IT0o9%X~1UbYi&dowH5e zE>rpvkAR|GaBS4h+#*}p?P-LzyM((?C-Lf+eBEyb(8GUMvm334Rc*$rtf5{UkYweQH9l0B+0Cj*hvE|yyP(qU(#F?A=eP5SyiYEz*p7%{n zLt|!9Nl3BA&xNnS#R(u{pb=uTK_T*6JdX*+e`T(=HLO&(=M&YJv7_O4Pzfdd49b2& zLXFh1wmulEdk-lVXr9|JjimtMXL?ELz`Y{FxJ2YWuc6st%*ae<%p&vFLa}gS?sM|A zrC;rd#S2r!i!Qxh-Or9YqrdS1Bl_Oq;m5;PJ6zKjm8}#~ZmnYQ^0Aav2_@pPa0?W( z5T$429TdQr4?i|^55BQOd(Iu<(!pFkX|)0uo?}X1^^HjBZ^O>}3q`i3JiB}Dq=jwI z7Ha&od_Ij9Z`v2*FUNj^iB$N-#tvQL#Va}lIV|czJ@v>3pETXrc26?)JLCZ422W@< z8e?rvp13sZS97Pc;q&c^NP-~wcI_pDqJzb9d$^n)PbtsB`=8L=Xt=+|&V|&9A$PB0 zA8q3LqNAf@>9y3o*YG^H)cvct)1F{n&~hBPyF6qt9ml2C?c@UF zHOqPGi_1%AW8`j_M=JaAsUL&tLs~$2kOY(mkvFUFc?T6ae+&p&Lw8(REviJ@0|Nl_ z)vV$C>WM%yq|!7aQCa-S8Ij~mwB^=o9mB3MZr26Uy8G9{pb-b=mgge6(=u-JIgf`A zqt4nOJ|7?6BpS`2&`@~KyP51x;~sw)J6zZXjYuDoR{~d_Dr7Q=(E1V7K#~vA#0pa=V+2V8g4UuZx{toGvFT?0pV|z?Z$Q zb2-*%-^8r$&JD)@GDcV++-UXHf7!MR?{J}d*W}mZFnl=CN{}E0`EIeLzz6ad#3GN? zO)`I-z?g*~)JQw-jDD#W63lV;?6~Iqc&Jj5k7>SOWl8!%Ovh5mTV6*g1CDVGbUyuA zJlmHx;L}%`H^&wItxj7k_Y~5VF?;ThjeL$gNoP8)@C58CAT24)M`fY))_s8@pKs4y zi{W6pL4H`g0A|a1z1y?zDep~XJnsLO#W zpc=W#WKbB7p|%e-;+?;JGyO3!*duA}v+S|E8I_ioe9}4|)i@_DC9LD=)zyAl*Ol@x zP#O^sdsnM`((L|xcQrM+BH|Gk^ad^gu=gs^2|+vC7hkg0RMf3_Z|lm+q9oDjMqyH^ z=v^Mnsdaj?-`(E>O^{j(FQZ-nC3b3-zyOubDME!>EwMv~M&)Mb{Yl?P6rPZGS+0;c zELPoqWDP!_XRC{=i(Di1HB>#oG8RyT;hF>QUnV#5V9NIO zI{!E!ZuZILL73WKEXz0fs_tF2@g+lQ`iV>V;dG>Ce_&&!*sDj?I`>J%@gyjywOcWQaUI~0d2aNmHR|EKyu9QjV0v|LZ~zS=X20(gm`-#) z!AsC+4ZD!#x(V-jsQIn;`LXL69L;@&%^DixU!nf#MYa1}`Oo>LPR!yA2LzDbMsHyA z&1Sg$_3DSMERT~7GE{-jOhu&(OwTWmo|l`;pQI~%)jxUE+N~)dT}%jzC%##z6p5YP z&yJwQA5NV&Vf?}RjcWU+6jv$1nXjPj zXq)wudq{wxgQ98sKN(3a~}>mGA=lwZnDYGBFUY`>@%KkAu@U zr>YxC=Y1LuTA}FS zf>+1|;P(A}IH9CbOP8ZS$<%>?j!Ak0d42RgaqDcHx)<3~qwx}aEa$(+T_ z(n4nt=SefvudjJ}mfVF4vYQrvm#a{^-UCap{htjWdjQ&z#p?FeV49T<2K@anfgxn{ zquHM@YOE40{T-Z-$MqmAQ99PBeucon!cGjy9fa z%~_S2g_oiNV8z;T4qzVUxXy0yQy~vhU*lI}{^>_yPxIdWx;SBrAFoH7GBF}38AQ~y zFB14kr;L&jW@N{%1G#iZ5k;?P)M`M#l1Ln>WR2^o!Dt#YBFO*#iIsf^(0^j~hY)pd zde_fI@!g7X{%FoK1n;~%XW9XTEaCkI1vJ&0Nyhv^@5-7KFVV)c^XjRFw zNnGHa3*O1XiyDrPfESZM(u!>?s)kc&RPjhtX`9^R=y&a$-ozy}eVW2lE8FhaBZtUq zr(`4N4?KgGDYn(}9_JmYtFhYOTv!Os%_ZWx-H!KLyvx|-f(1SS@yf)^4DR}yPnS!Fzm3B`9+h33wOo(j?g=dE5rG3Qs7U{ z_|xMVtistPAfu&u=#H)mf^KJ?>1^|P&&b^}g={lBI-V#~1PlynWLyeaD%8n|TUggvpI@5;+!=bGCr{wHouqFVi2_EQs7HE%CBa_&;q!cd`m+zk z^h&+X2!8G9s%h(2#sy+~_R`7Y4ygI{dnd|v>V(8n`@wd%~^NFFA z7RQf=6I|y=Hl4R7T3(lPY{1r$7)D1%ZloAS^#D=$qvbDXMANk5A1}i}(R?*#>m3jC zwur&w>Zs>?vTjuN^TTe9HO{ZF0^lcl4vsHlzkq}k7lB@>lE1M!|M=tnjje^`*Oba6 z1D$=n(K@VN2w+BQkE=5@a}xp#Q*X{@p2Ufb^wo@++h~PpL4tZ){e9--fR%Tt^nSAQ z)`nWm1KJ{FLIuyo*K@+CoTFJHg>T-J3MCT%__E3a|Cv>D=sXFqcRPzK!#h5JHI%k4Wb zXlTXp6i6Oezjg_@OG=>b40gw#cMDzk3)&yFC!e+mo?V3=mfPLl^ZfKfF?-e_n+XQq zHu*fz)Oksx1$=#wZ+&%OB% z9f_2uP|l~7qH0Qt*Mr=pXD?57+-lx-(@;;6)5?;0M=X(^e3B*3xeC@@dWgS=4v-BC zcV+Mc#=Cr))e0%gKZxqi1Sa5au>m0YSFO?A4FYl`z3m#;uP`f7x=w(7%AFpC83Clr zqE7|`Ve99X)g3I#LUqg)QGx@jgR zoTmPN!pw&i`{vy&58{Pr-Y3`gi$c0cEzJ&h=3oD3wOB*c>~i}(*>a#`ZEbD++%CZo z3pjsMVYC2_3OUX4K5@+M!~3v;is5k6)^*SM>mav0%CLXO@cd4t+vB{T9c=4!zua>v zN!tSb>%eZXA!h;qY;pf^limJtOjXqk3H-g`i^r>`F1+2$4>~`2@2c9*B!I$$`_yrw znCG%o%3f7Su2O}8i7DXzqzwi5y09`_r$X(=*0zEjIuKWFQ(^gTsjl>1--Cq7_Y_umd$nKlh^~T*{ z^#ty(1J-+H!nq`zfCQ zMPQ5LuEAIuGuuW0IuI})*3%VlS_-&XcOc#Z`T3)`&Bz{Z9?0AO&vZ#GQ$-m;Kc{MWs7`tsQp$SPD1R*bEkr zBS5u*2@?VRmFkVL=d(2)(@9n`BM&>#W9FS2F@RB)+Rmfx zAH++rS8w+5X01`nHwvlC6#tM{uGz(Vud$ylPv*Etb4z8P+m@qp#B~$%A z+g6`dt(c`>NO@}}7qFjUED9YNuI|D!{p0My_Sf{#vtqh+#oB+vLoZ+8B6MF$!!8SC zui4^!V9S9T>SFIxgI>p-bV{AaONGTk6OT8eMfFke;_z1RdD}9m9}|s~TdtPwcz1zH zOfRPq;ka5~0@v3aP-D?1zzfdTt3F;WUzDI{VzM4Ig8NC6kDP?RH%5gCK^m~ql-}FJ z)f$XejQ%lfKHpn)?_4`UZaP+ zfQ5p64oiIK2zR}Y7EPj7ak~|MsHYD&jEM*RlX(q{;mXP@LuG7y_%SM{S;D-AkE{cB zzo1Q`;f~C3AkYgLM@=YHLkxE73Q zbgSMx8IRrg?mjCw%Joc6O3GKmdqLZ8V3tkN)e-4DNC!`QWBm2p*~xN=AJdMf&c120 zsD$DmeufaVyF!K8BLR3wOXpjj8;33#c71pXwX?N#4~AF$CsD^qax~{g9PKYMurWBc zzOX#spmZy$_V4w?DE4s1>l$A;BguLaPKe&6xSvj{$D?mmaH0E7!mplK+$S~K?I9?KkT`8Q`JGvgi4UY0bzD7e$Kpdf#zyV>-P zFEEJMgR$2$wd_hw2~Ty%i%IlRjL((sDN8}sRps+O_SzyvH`C17`J!g_*~R0oe-%Me zy^@CpV3`jJ4NC20-@@WzgD__QdutI=rE`6b7V{k@Z%pP()ZjOgeP4u_u8veiPrmB( z8rkGuX2Rgtk`L^7YSvmSJvI?GeaWSrf{w!-bL@|6-rd@8gTVre@O`HH#V1*qW$Z?H zSeT6Z?}Vh+?04AN&%Cpw7(d4Tp*5J&`zTL3lA1McbyOL zRwM(3wnE*H3wot*v*cz&Wqx*{fjQxy#_u+ zPGePdc|O>TA#P&Kp#`BT`O$!XqLWDE$(k^IeFceWu$nvyawm>rmnm{p99FO0kRA;T+Ci z2jXW#ZkR93@fmdYAos<>m`VcALfJJ2$c)n!~=NsoLLJgW-CwLd4Qy zT`y*TnmLU6`nay)?g)LHXyk&ANQ{xbX^*6Gn!I*yuD@jQv)L2xzR^~_Wi<$XQgx@K z>qxW1<+Totf-9euZJOrEffv~`wVI4PU#{AZ;mqVB1B8>XtTLn63xIT~VBSl%F5Pr+ zgpWBS6C6!hC3Ny_hh=R(K*bk!#JVo_WxE3fwmI{757-%+wQl=xl*ntc|3eRS4D9LB zVqjOT#OLK>{&ZSmD+iB8f;f$jv&_5*4wjaZVy2d;MwMds9YMSi>RtiNuZA}zK+l-y zQssm5rx42buvk1#RaMnt$e~3^S;}kYc_n^YGD=y-cC`8=0ss?QZ@C?9_X{^-l2);^ za{uazZjNE7r1$(Sq*;-;KeBxLPm+LQb79vTgv@9|tjw@88-lk^xs7}mPKwxt!e2V` z-n#H8I5^m0(5B?ss`n)KXl;kgXawKUoT}2X1WAbl?AAxVCa5q8trd>Ye^f;kea7ib zY5{kKA>TlWeHMh>O2T$-3xmuMv-~JvK92N6PpeORxBgb_WZQYub$YKjA>gJF?fKJz z2NAKlgD8J-GreEj%~gAah18u)x{{SQUjSvk@(d#!A7*MZ?uDaw-kA|@$+{P^+T zi?kQA%IYbdUPw>3biK>OfSR*5@Iu)5!e!V{l02hx8irond;LSprrTBIGhdVQdmX{E zLQ-krm>2z(y*DzC-@2VnJFG3s(57B|Yx7lF1sCk9)BSm6deJz97WXx!tNCbw{GySj zB?bG3|I}ArhV5uSBNUmxuR7mRE$WgJeFYA{u@_1! zH)TS1oTv8h+Yr;;mEnOZFPWNKY#;?s(mnR&?ENfYY_$8=I``Ze0!b|hturCMJ57=} zmQldNYh|6@60On|kD6%PKgcj$zkVI%ivSL#!+*LOFV85lit-(&f3!MuSrvu(?7#7; zQ^g!~jlGwAe-5;K$DYl(k5PRy9bWwvBWdiYD8+-hR?SYJ$}FHrQ~ei#{qXi}Ez~&P z*tY4`kzT7JHM1ym&EfDW{|<{Pj~~(~_V!vZiOj^EmErK3gUp&A!@EqlwE#3g(f|+m zOc-6ies%(tAB4Ffl6RGALyHQ?(Sp3E1J1t)Qpc!bF^u9EFug+kCSfBs~Y>k{-!a9P%X z)?et_0X>487x+ti5yE1ky@|jdLcu-Y$yuD>BaHL;F9Oe}U(!w8ZSbFmLbkS@>!YBx zH*I6*_0YcZ5MWIBG3|W>e$~|};h|!A+w))ti*5Yo+!`2U#y}Yf$vP~ZjJ(xeS8P+c znXnp>#km%F8pzKu^2nvo=z+fZKmglj0OJM<5}_+L5hjq#5Q z+hpTE^ea}VJG@Rz`yJ$bp!r(jv(Buu^eqa_r?2oV1dASF@!FNku%pk%yR0y2jzCGw`(P~Q`38bVN28VwiiwBxggrX$Xriq=;KpU{L+Mhcg=AY zuKrve6(yxTl-6-T(KoU9DPar{3`DW#FY5y>0O4&DKjl^EH(2AX+a^%{qdyKlGxRyyR>D=o6{(1_5c_?O^gc~&Bpv-p;#$>=7l@KS z{|K`)VE&J+vg9eQhiaIDShBYWOMUFX$Za?X0k7!!Pp|C13%()m$85gqG_|*va>rmm zmQYSi_xW@Mf4wm2_Zm3G4Jw>QfhXl$$#)SKCkZ|>qOnBK+J8czEclN+x86v+RQ`DY zBH}o>Xkl1+{8~fkLX%LSN{#ExZCEJIq!uJc-z?4kq~6!RXvhBK57}7~`{5JKVhzVX z9KV*W8O2^v2= zy)GtwZ9Lc5seKsjlJGtg_ftv!iKC)uOkv*oyQlq6>ii45y2Os=zEwRs<(oXUK)Z9FxaK1{#Yh80ofq0%{2JnR_F$8^z9{U-BUcgt^;OZQKS_wgKDao*~=Ql!ha>q zoXGh*H~#RmOqGb^5madwn3{5I>g}dj-{JGYVg`h&=6h~0sPW30pdvVr?4%Z6&uYDY)*QOfuPw%> zC4D@m-kT)I@X*kp5WUEjw-Vukl3st>NDmP~aVo?uTem?~aU=TF*Y08)L`8J(3O7E+ zBBF9eyHI|kRUn|!+t)X$T*8Vifp#v{Mci01 zO3$_uvO;Pfzl+@3QO~urFbbP92z9Fcf{SpGjx%=dmvDSseC~|P=l#dL(~-hgb)G&X zIrh@Wrt3|FSGji)|4s6gSit@;TWqfAP}40lLyj#^hsm>tr}QhMo>hvcB&_w;o^JpM zE5|4#QDf6mzweVWsy3Yi2ir2&OhS)-sX4iwuwJjEYWHvjp9l%gVIzl&yWe?Y68i9T(3Y_Ao&o}q(^ z)z5~;C{cBaXgFop5Vt=aODT!YWo6{YYL~nuMipxnwjF zk%=3*NB3@^YH5VyeZ_JsS*IPZ%ngEwj|eTSL4Ch}2f&RQEBt-80lfFANv`$?p+X@DF_HH8{!idC(jtl_x>SJ_k71)rc&Jvhc4l72F7~z-#7bE#qkIn`} z*QVU<&w3CbQ#sBME$|<}GCgLB?H+9nLGoJ1vIs<8uilbhu3qlCMv?+{T=`j0Y z2?y(aN=iz8ircPB1JSMH1$LwV_*=AEor2d60_prvrB=P7@o*`7gxwmx`3i_^7$S&^ z@4U}i0H5jM&T^i(Sj+{x=g-AU)cUDFunsZxfY)kr#A`LkW)SGC`=2&r4jq01f(qy) zN>4GbBa-lq)UinP1hqV9O`%~yI34r1!xe5+y+I@z?v>Cu{6(7;Vd!u@lv7Pa*x!Q| z%2l?TALUJtXfTiqs6JY@n?&gJ*kY#1ktp(Zk*(4C;~Ow|GM<*39nmu9&-)|oP`?JJ zpa>OK&{14Al1q`B|hERl#8yrM@!a%L`g#TPojCiPs z?&%V>(%7e&TTe#Kq=X++wUeSa(?vt3GT!j z=Uz_5ye{~qy`U1+8w}&Xy?0QQo*XHoiNP@o<8H{tki)pV(zWh4)fY8wIMyO{UeE<1 zAfR-+@8SB;tRkm?fPg#5nfYc7FVv=DeVn%t!^nOa`fNQc^k;a0`pt*}`tK(Q(+FAZ z&D0Z)B#tk(K_k<`8#3fsrT+dy?V8>c?Ey4nIhJ}ZwVh5YFaP%YG_Rx3b^uwTk=q1*wx zB%F`17ObRVT+5b&PvwC+rC;v+%zhP`?VS#7YWJ3)+{%p~twk!~9OH;u_x_S~9u!Ko zk;Zcmi|A5bDEMl7lkom4o5djE0^}wL^egVzR?-5szud8(nV)>1BRI}<${@3giz8P$S& zqFV~#H~xOGNW&@`G4%wynj=>o(Kt1hAFhr|mEgAHzWaJ`Oh zfRdvtj;0rzO8=5=>T5waPG~*UfHZ;16UjF!2C^ z1s*mfV$LF&3FrltflrYIKMoe+#hmhmuOV007fpyKkeCHHVu)QAqNXeHWCZ#m+(4J?Yco<0`p%Xuc6n1L^7-`ia=I5*ST%`A5rb%UlS%6_v$#vC5N9+15kh^E;( zS@NXg1RhK=TE|r*`#K7mu66CC1D$*OI{+A>sC^;8qt@|VPc&{Vg~^*ba`I^u7g-1O zcPW`6d$JMyjEw5ecT8V4kxNHPTG|i1I7%c6V_UVYiw8x#eqca9)h11=ZuDq)bR3)& ze=S-j`85>cX(CtZ4#6QmKw7nyc(h$*avNy00Uv7!Bf*&q7VK?^Esp4`NPrH;pziMM zOdvuo+(S|Pd=lZy&Qp(gM4(@(SZzkMb4bvcfruE|S}za4@RbJ<%0`6p&MSN-cPTdmDks5?}j`JB4*!Ok(~yI0*Q*1PHw z(GLkI(Ga8Fz^5#!x%KBb)?M=wzDY+S*%<*dSL-FCl; zU1cA_Jvj~SmHwMu2ED6!*lqNspP%1QHKLr^gRMukvuM04i%0m$!cl7{&+DM;j91Rw zFWvOf{hM#DdQI6d&s6Et8WdfY)0gnP5Z!>D28Ph2!h_=HT*~B7{Xp4%3)ckA%)hKW z=L6dFp~Raa3aR>*vZFH6MANr=(t096AWopx8ZCYJ{%0D$^}zNg)%YkIhy+2+vEXp) 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 literal 0 HcmV?d00001 diff --git a/NintendoVBA4.png b/NintendoVBA4.png new file mode 100644 index 0000000000000000000000000000000000000000..32110d9ea407eceb4347083d6edacfcdba1ee041 GIT binary patch literal 89794 zcmeFa2UJsA*QgyuMNz?HLq$MrC@pj(Kym;Pk)|NMNeLZ74=n*jMMXeCKuSPGK!kvl z1VdK@q(-{bh?D@K2M7d`+yI_)c+Y#j&-eT9{qH~iG2CM)%f08EYwl;wHP>8wJ2nrm zYpL#MJHZA30QRe0y{rQO>|{2#f7!i@`2&yW*Ju9N<95}^69CwIX#LMNKtj?n0Dw)~ zL0S3wb$gf>%+ns`c1lfI`IMUn%+|pf3IO=_pmgnS>W&{(pbRW1sXqvQrVi6Nvip>d zQdscer{@Lu_8hqOfbV7ZksBX=Q&HK$_4&mEmWYVp$471m?R&)bm35f!RYXYYgGcqN zg8`{dou!n~COW1IOw1;u3h=CzyZ6OjmAD}lyf0IU=eKVmwV!GRhedwB&34ueaA0?V z4WB3N%r?L>QeIy0bR}y!V4H8--rayo&BRL4lc5Zb38i?`ZNYc9ReC+Wq`o`&FyMFp z2&Htu?^m`3qn@AF1-#e+xYb~7H3YaW47kM~G};CTMlHt&Yy+4)<2$nL#Z$nkL(m78 z0rql$Y`p#>6@Z~A;IOUwCt1K(VSuQbf$demyCOhk^MSqjfZh85qBkDgy9n430J!z} z%o$(6-FU#^EAs~ObAmYshyqMf@%i$&v$86;O?C^rvleDxclXHf@YidfluRt^ z4G?s@j~0~%H0Kqh{2FEPTlx31x5dqFtL|9-_OWq6Bkd$UYR_G(zR^h4wW7U@HSV_4 zpVX{yh60C&ZX9%vxSa5qES`4yp;FYv>T|6Oo9_gnRTeNo3h>Smye;6V@EbF0mL+xm z1BPCe-zfmVd{vK+;4ivEpQ9i{yVp1 zxKMg~&kn`UyAN6N^*q>S^~mr{#BR>`d&_(uuI@M( zcJ@@=gTpsYt3Q>xDyH-3<|)0a-17<^+hs#duM|I(`wS4jvv$8!RqWaA{2L1G`!LG5 zH!>&gUU{|mi;b69LgdjGiC;VlPbfT=eo6e2WzW$Q30AHZtsFbXD)Gr#RHUX#Descd zo@ncaywlnHvT9De)6ZrpdAMke&x7wccw41%kMs_>(kV+G#jA!IhFV{*zBzUBtmJP! zdt~;o+`aLU|8(>l^}_STzpZ>aW+g5bYIs%XOy|MKL%;(850pR2oIUtZS)3pDWV>44 z>zl0yTd%ab>YN!D%1o5Jdg4rUU5|}ZKCA3Ap;LmN?+v4dtA-_pxrX`XP1sOYzq`L) z*8P4#r{3|}@sR@~k|VpI&&3t>QWJFg-@Lr}n^dH+68a@pC-+9^n?sV`39?NgN7dBR z(63_JPS|tWQyg-~yo!J8kKxgZ`(n`AFs?clH^#C6-?#t%k&xO4b{CE(9%DUbcN~5! z_qj&;@wTwzwKqjNJH@f`6mJwpMkK;V(5^=vWMV$R2K2>@?qzD<8S@OG~rS+C({ zWTv?;BIk;pgzix0p7z)*y|<|ABwa3DyG*$^p>OTpz-~fbBaLVecNtY_RB0=}zVRZ@ zVyLv{)L!f31-?RjPW!X&d*7D&bUv@CJJ3g<mW*5+^1S6T1=#MYoK7jfJppu#D^9zj>YS?S=(1=;F(RC%z`8%Q zn>~x$m>cO?=y4dN4;n~lPMU@wsuyC%fp&)Y1Ng5JL)b$N7e6_mbQ9ZD?Ktglo+0E1 zVGq^sG>F83MH0Dc`ahQqU-MdYHyiYCT|^}oBz~NF)0;ajJ?$_Z+LzKOnQ}4NNW$|= z)o0~zH%3|@dsAXWoe0@TZDsA-b{OIrpf&KR0lMp5Q5yU$#d3xdyae`083GT<%M6GQ z7+EyRR2F?MYS6BNC0pDhC&UUrFRYfMmSI)Mef;-A?-|^O zM7TXLJkcT+Ck1cmQ}!fWre2P{JdkK7rY)N*d`(IK{8q$KzDK55vKUe$Vr$gcVTdwR zb5=hoD9nZ3V~vO*La|H>DjE} z0f9G1AD^2)1V0zS=J%2Nqups>i*(C_ugazZJX-Tt1vLGmCZCo{`JJtnND~^t-Q~}G zQmV0EqdyUpd^Ex5l#93ms7x#*>gf}ArMG;V(OA0)yHQ)8hHU7)e0sHOSP_sXhPBSA z;7RsQBVjhIQu^3U;|pB^toe3O1KWzGhxM|tS;>M;Q;h}ny-#G4W>Oea2R|MhjKZef zS2qymHXJR>c9hMRclYaM8#=O6@V@@8Z29+(umUa}+F4TuaXHAc^ZuGnx6MD)-}!*q z=0w`7$2M{gLF((8GSfB$8WAv-)cYtd@R5g)at`-$#vKXzdZEvEgew$QUlHH;tS~d{ z6V3*2+iE*LIv|{E!XEoJZZwYFb$@qH;eLXC;nd=iN-r?3=|XQw2v!-FS|R_w6q-@j z+$0CN`TFLDGRXW!JK6%QRO&>5}ARN3TgKg$AxG@73F;r`ciK0bNyFEucVh z9=;u4j$L&zLuRO5d&CSJ(iebu+<{12$89z-zEog%L)S zE0t?Doqz8&pWi!j$l$#}LN3U{Wx{Jho*vz%U0ae=l8}Qlb;3>imtg{IDdSwpGR^%9 zWqxx<8J!);vI_lWWPcc?nzBeZ+K=?$r!_Z}bi?_l(WTm@77M>mDRwLOhju_r=zU*j z`hpxQ;V;N7eX5jQ_d@XWr;Cvs$~zlh>>zgnI#i-)}hFH1smm)Bst-TtqBwU{+8O zUl%uKAqoJvlM4z3EPXG$tgpK`EKIBg)MDXQtF47GQ->hA&7_1C&- z?eAnQYjYX`W|Q{?F%7sty(~}px;VRff_xQDZ`cJf+v}%+r%!E&csVJYR$TA!l%eMJ zQ_3(8=qV`?X<=(IF|kuJvLa$qmn6icgieWzib(-QWr1R%!lGgzF;S4X=&2vaX)qhJ zCGTNl3(~oK-MNFlX>)xc;>fWA4M& z!}HVy0|!?d7~J!sJn-)-e+AB8)}WUyy`W&G<|ScKX<<=`n_@B`F)@&Yj36_@MMbw5 z*_8a74Nc}Gva$5C{3k2oAW`Y9R{lly?{;7|4z_;(k(IwBx7e_;2HCgi?aY7JGp3}&7Xad5B!iOY(MiCKx-3QJo;nJ_FRErqRY zWn_dcWhAAfC9TE9prSGxI5ai4s{fnm%P?#2^$El@y_sulVAf3Ye+ClBM%>y~Qr1#N zSXxH%lCYQ*}h5Co}H+w!|Yd zDmRjyF4X;B&;D`2*me%X(4s5+1=ujJZ z;J=*x%dI~(f2cY9`*8ke2sZ6+QU9;|fZIb||GSB@X=+32zc%6tv-N^odO#KJm=W@y z%;8O||El(P^YXy;<-ytE|Am3@wDkGk8wM#`8B0lNTPfj7(z0U0mZFlP!m>7^P+@6V zQA=@2DKTqX8;L)L`Ty}SY|S+P-wnfGQEY8*>1qeH0R#WIvp-J!UmQ7Wn5z%e<9{-V zm{Zk~SrkD%Ji)deFqc!7Zf?#F)|TrN66oV<^P{TxGmo9}f}PruY&W@YvGITLUTvTr z4*!!l-Qwk+m`?rw?4JL(XXbyl-fa%+ubH{I;%sKxe_iwbSV#YTja;v?n8m{7&FH+c zKBv|b_0N|?=BmalS3z5-|52p;r|I->>i;qqe^_UhC4bZ@|Fg1T)446`|70EZzgwJa z_VN#A{_5=y@>>9JSpwz%%v7L1DkMc_#kXF_cy19}&)VywqGW0JuV??bz+6|AB$Om% zE{lpuToJpXbV)|(imZ%;sPZKh(aU02L?vXU|9Ju4Jo~S9<$?d1S6iG{hB?DLG+{PS zFms{&OZ%_WTY&s^nfYGk`sQmHu&0iy(kV3+Woa>4X=!0`5wWdiw#aRHo0dt>%7p zvX#b9+rM!A6wy|JU%0l?_-XqWuAd^>D)0-}RvJHT|HAcCL|X-Z;o3^$r|n<3eu`+T zz%N`|Y5cVP3)fE(Z58;1Yb%YPwtwOJDWa_czi@4(@zeG%Tt7v$Rp1w{tu%hx{)OwO zh_(v+!nKvgPust6{S?twfnT_`()eln7p|Wo+A8o1*H#)oZU4gcQ$$+@e&O0m5x=rSa4DFI+!Gv{m32uB|kF z+Wv*>r--%+{KB=B#!uV7aQzg~R)Jr*w$k`%`xmaCBHAkO3)fZ}KW+cQ^;1M!1%Bb$ zO5>;P{}vb9U*8FUx-vfw0B3#$;C}l{UFH`APFY{o(F6ee&jA3zAppP%gZXnD0Pq$C z048n$0HEgp04FTUqWTJ8+o30FmlbdN_Ds_HqlT~g53GWL+x7Ytcu#uxf6{(>7izU4DjPjLPE(H{r`K2W0aVwHOYYtic?u4KfRI~sq zs7{CuhK_|7q@#o`ST+;%3djy=S*5FUv(I#NE2dvO6fd!_3&eQd+eFN;9-qlb5w8a?hlJZ|ZD3T*rgSo~zZAkWf>M_zL766t{a z*hTsAxn)J(6y%qxHV*&Y1d{b~NcqaLHkB3{)DGvUIJ3sG(T9QTz0`8rtcl-~J~?i$ zCu$x$y=_4}1DPB%?MA?YkQxW|k`UR_B;@lPLu&B%AJdg8|CCztvczkW}k* zuYptdlEh3G8zni)nk#5w(Bj3Zu8Z=?RTZ^E9RBi%Tn_DuE*W0B8e_GJ(OSgI(938$ zM6loJ-3`+=?(lri7^`;_{cA(xvfZ5fjC!HaZzv>C=H|s062A5)f6#ZMFop z7Q*E+y!CI&S;ef`H@D|BVRA~#-@o%Ne>YQH@1wMU ze4iluk`TGck=mb6OVF6ObNF>en<^rZs>Q+dFNL?FLxz{Zq*ojCh4RI{d)TS#fwU>L<8{w~jOJo>Bw!5ic?5}0<*FRy0F$AJ+(7b#VgUlRuWT(>l= zk2UMH3gGyiAf{h2i<9>pR2Sl^@G8Z?8m)X%rdHF>sfYBNWwhO>ZDU4jQ2WqaDvvhr zB5kN*0uG^TBgnHr5cLd0YLgCr^la|S5@k6Upttp2Jg0Vu({ zu9>L#=T;~#6qxzZq-Zx6s@AUQf)v_Pz1tVZ<6@twqe8&AkB8n2^bpG=&wi3cV3`QjhA*=$PYxP)Wio7NJB%c+}hgyts&qfWG;*c ziH7kavxdfRGuXDR$5*i3DCmA9b(A@^Izm$>>?{!IlyZhO)5#|`Y@mxtT5QsX_dINS zYCLV-Er-Tq3M0|Enz{-8y!wHA=lmKbHQ!^}yN?d#DShuu4$~|-)x0O;Vsmw|XRo;} zIblTXAV%!LyjXPpaGE9yHgn2w<&rB`g(NSlbz7@`3KeTpR+z#VCmJ{qC49^a%jnkw zO#>8aT}Z@)6*A`PtFL;yeVs>RIQx^dW)*8}AU&L_RuY!FNpy zB2R}YfD!HM^LZhhKD)roYRgXCRjl;Y%?WJY$h=gNK^WtRWT*#uQDe#%Qb@PTB6z%7 z)mR~QXf6uN$#wx2NUb=*xI|W_c#=Bem+1NSvdE$QH)X5y6djJ(qrwm8L247tDvnc0 zi7FR+z77mew;jC2#C)1t!Qi!KmzDPMA@OkXS+}r&_GexRQZB7;B!?O&JC9XFjlb;V zjXS43LZo1k*v67~zUj%5lR3{VCP;O7J=f>6I`Z^2o7>GD*fb8pbC$7=2VbI7Quj5+5ldf|<^mzX!+oYNJ8OE;U5)JV zMvzG<8T=@j99$DR?J1tFzl`A*apR!Y}jN*zHH-%ZP(Yl#j`;W;1wLbmy2(yB3* zw`M?vw&M4l;1~O<9`A$Hn`U!hwD>~P4}9!nESSHtk-Lx}atU#>|M~$Fk$Z0>!&Ld4 zWXk(rynNKG>)T$Z%{J}74>GaZRx#FF8`MhS4ayjL`ighsKEI8uk0)??}U7Jg-~++1-deNjaYjoGGIdu)kF58T)1 zsSd@Th-xlbeT{e)QCuTv(UV=4@J`;u1tC)6EZzGtAMGra=<0vS!A_bE!52Ylefe;1 z0i|T}NDT;h!)N~oqTAlAQeKltGyNcoq0xItHvdcXH<8)|l9zma--0jo1_8NjhaeAH zEG#cr65w2$uIrmpmlsg<#ZX2jbCqmcrDsql`gz9@lxk4UgXrI@)vdb5)g1&e%Z5Gr zb)D{WF68WY2ix>H9AZ>HxAm1>QZt#nQDn~pRcezgdylwCoL^jAF>QP$J(p-^YoZMB zo$e!w3LpZmQOyf6lk8@P#36Q}J%@@?T*NvTR4IPi zit0VS9x)@^E64WQv~0IeNfEp-c8q6nb|D1myL=_1Z9R7_3{~+igz_R&d3nl@+nw4> zT!AM(gp{u?bJ0d;V~}$l7GtE8H52b8)r7tIJ@1WMrE)OOo+aMI#-?1->+6{LUbel+ zhs9YImbFhn=0L+jryAQ0X}!GS9 z4NjdKr%;ttoPa;GU_+@2Ww9=lRky%^59VJVpW?Ab)E)Xn4V30ZJCJ8k^5ZZ zli`+7a3GN+Sr|)w(=pqWAs?WQ7@hzW*+8)F__G{g{4McPkFz{zUIWjDHOB8^22Cm5 zh!E4&IN0jm$eHvS?{91%)csjJ?QA@0Z~;~Bx5kQCU2tN~+qJIsZ=M1GfzlDRtjxej zSzP61DDp-UuAS#DhJ(DysM9FwbQy?5oG7BKiHp<~Bp0MyhUCWiWOC_#6h-rEMTQq& z(A?L;?c`EbdS#__py$zw&fv$D@Guwd-q4^H4vq@Dao~n?%h^e5Z(zK1BgQ<9 zk(q*+6Qm9IcllGM1>?Ifv3&8G)#6ukm2OrlNQag;C{WX_8$8QFL*3<$lx|0h$*TLW z@~pih{r1h>ESXGyU|h6+d|$bkb#F1!vUx=Q)69o7t%;@@HVlrAjhJ#Md4Bs+CyR7+ zOirDG?oho+T!S$68fM95aW1(cT^R2iZp{OEJah~IW|lyq8S9nMm#QHS>hhc%cS`bd z?)t}M0f6P~_pG$#*#H`e!iX%V*Ad1HAT&62z8`vwf7`c(EcDxvfw9}d z71dT`U%@yj3U2PC`?hB%@&J zV{S2+MGEZP&szHl!z50JhrRwW0AnzMR$IF_#}%a_a+qe(zg(K*gX zy_0q2jznY6JTQZ8^j%h=wErcUwb2-<&J{M{^6r|N@5kDXkVCIe5SSn2i!54m#)@?m znws}WPrt4{M$C=6IL55O*9QQd9Kj0}S6E@z;>!lK*#%bA$ES>_4VQxP`n&lNl({16 z6onCobZ3@a-?M^pbAtHeNM`(X8ruF(v?4)WZidi{E3~!wTI@%haS0k6NKtSR<8&{B zTjoTzO3mfbaE7vnNKM6hA(@~Coap_+3m4^GJnY+c1rXg2_v8#f^JP=fG6ad3T9+6? zy+!PlT|uj4yL~BfKhF?-i1bRQF_!yE(b&>qt@TXJ5lI*uT)t5|`=)J9jalWl&n^2B z&v|SzbmG)fBm|P>Xgv%I+S^r5TK6jN!pQ1+S-=kZ{85o-z3x#!J+c?l+}3$7pa|N% zlh_lPl3HXRP^OaQm?OpN1AH2`Xae*|uGOCi)b3r_Z@kj6?dtu4J%wyYvp!$F|v8Z8m?McdDqh8-vT2msvMF0tZaDwpoASfCMrV zFmov!lpCMLu+#6^pls5I#!-_CFD?!jOzx{}ZS9TQ2cX>vINEt%-$Pg;Ogy!B*lK#j zZgQvwj9nOGv#{XCgjr~mxzNI*U=ra@z8AR)*aW-clKIPEB*U(ksRlD#MMY!E?i}-O zQD?c?QS$QRLv6eZd~1sQH&!?|oGInuSD46TlqHuh8?2NBrA{v&@}??9HCO*0!BbO> zPCFiqIaibhtwIM5^;`;W46iB}>aNFNBP;?CYDwCQDP&H5PAo!XsE4xnh)xd5>SQU??3m4<(krANcCStOPV~jTW1XUJ<4U zg~Lg-?4BA3e2BBdEa!!_Z~NTBn~b(-r0-e?ox;I*0fVgRXS5Ny0X}9K70Y22UxMg( zhEdRJQBc-_J3Kr*M;UXQ*}>&IV0L_5O33dU+h7lb|pnFv~oWW1~z zoHc^eoj7a~ zz^I<`h5>_tb#1)XCqp~7S?n{qbkxzU3LGO!C!Jg+oPaHv&MSJ~d(=64o^+Oj zpF5Jd#xN7X!i{NFTuEP5)(S`Gpxbo`!>+DvvK(3@AR~jrP@QgM5B7e|4KeY*lBnu=@Ess(AVaVL7Dh4{plZvLV;dvK2 zmmBxbzE2C_K#QHRgs*f5?MGDj*46{xNNTNm1vTI_S4Ira|r7Dw`iBZAV`gqZR3+5*7$SeZFGf__6$)l8;;5sK2{M=Z~-C%bSYrGzkER6#>4?FOA> zpD5O{O+TPShHn%t!2z6{w$G7ZlooRaGI3<(mbY?R1il1Ttmz;Kq`A2p1Ox>IMy@S) zYroo~$i|xnxeHrdO`&N)=yh=F%BpHS_d@xq&Pzyrl^T+Ip-9ZjBpWQOV3B!xrt@IG zSAI|DDoKFSd`=GPsZotnFhn2CRpl&S{n&o#Hjm zkJE}WRSjxSWxU{LC@N+cka^L|5P7~G+>xpZ^72Bq+rX>DJ?p_)DHwGW5KpHp9H!I0 zb5?w@pmkV`lX5FMS1B`im-~7lxz`|@b3!Bq|6}Sp6Y5FXVyx5 zjgl@x*8QSss44Az0AY{lt} zxduxQ?!_^}cuUZ+tnC%a40}yW!l2tF;0huzP@YliL~76$-FT$to0T3PG@X;OHq1}0 z1|nZ>s!oabIR%Nl#n?YSI;IW}O4u3Y@MJPpeg2O^!nYnTe><{Q!$;@Aa zt0$GTFVP#!qDx!{+F*WVdeo_-UDIeM(*V~vnH(kb5ug#zOp}Jo?Rc}51D)-7c~lG6 zOs_|7S>jpak-hnguh8?RWJ$s|MV|DL%1Hl9h+O8=H4jKxJ;T1bfS#P3yq=_z?O4+J zEE)!a*SP}vN-{E-(?*rHkOAq)MJ@``##88-8H))AvS}%io}`u0 zaXt-q{PqU<(sRu9!{6V(RXd2POPi0YXeX>S5ym#|VI%z5B)W-c10T{ zBd8@Bd7ZH6ALN@+P6{2V(B0XuUR80?&hV~pyfZ%>OcB9*II|Bz1 zY)0gAf^m6AhD^P8(a@py%iFp_QW(h0satq>S)&5+8m&Z<9u^oCX-N>1A0HfKMQPQR zEOT@hp7edYeQkF3Mca6x;dzbSn<1{=s8KuQE=Ha)sG!Essksc}pq03w%oN5Nk*MdL zi|8=@q82$Qr;t?MA|`*;7UXq8;4eHv`x9#7`K!7@kbVJ(n`CP?)#p zs2q8hJ^ws*UwYY88n0?j<@{*Hb(3??1(|W-xmVsh(K6<_ zHRSUq)7!qDn3!@&#qvC#eu={ zW2?O79ksO_QLNk=proSxq~>$d_vLMda4w6=X_`)QPI6ryGt1qa{oUVNJ53vMOOZ4~ zZ1(mfQhGyjftgEOZMK8J(5uczX2qwzO3zr;eZ|&RR4~RfE;h*&kjsN}+&lZSR^$9+ zhjK?4I&%vPuR}vwm407$vNF+Ao@a5r{+i=ujbm#ZdkYk8!-lXD!R5o0%H1G)-QVSpbq4py`VLuirLO#x?JCAdA| z%#5`Chg(**6RYMHK{O0~3C7S5qICtKE!MtsM!i1p5#bu+9fe$*ElcL%J*O5L(jJcr zsqo}`5@v<=_U`NR@tQm8B7DTpWbZfEuDch^NOkUJ-n1p}g5;q6kevpzr#Sd3x(5ZR z9A67R6{WdM`I3Z`)=>b=^|pV@$ssMQr;?4@u83I#QmLfeMLI1&t*Z4~)u3A(p6BEB zm2W5C;moJbzUj&dI>*5F;VYIscJi`RdQ#y=-)R>y&-k=6F4T5;nPpheCJd-06{~Wz z7GBy@rQPs?u8qgDfat2h7tBFWP*51(s5)wc)@rHW!+_1|K{I|aeWGV(RUx6xi=cvRT%Z04I{cLg{Nw3cki3n@d z?3HM_AATYfl7?-|Q%-m3Ngp{hP>k2Nz>>R*YXUIfw)y2!j$53xtXXNhGH!NO=6Xy! z!q_b7ziBSR8Pf!{C>~y3Z+RZVXMs!6rCfVcub9xG0!zjVUF65F*9_3K4t&MaBU2UN zsZ?Q3QWLw2_w}O<3MFPPL*+0r*>{-8&WDJGIpe(hk7rIsrdga!ESK+(fqi4A9}=DB z-N;ClCbQAZ6}NPf(zFH(;w^a6TyxCvLQRWNMhJI%W^}hA?)$O1$0epuBNm=RTaTM8 ze6{Ll6z47%sgvf@;Q`6u@BCwOiFRd1))#FG(3z19*l||z(A&ttkQ~9>_8QA@r`WbU zk&5dh$ZJD+lG_Wl&O`7LUYfe*1oH!9)Be7`-x!;lyV7_Dx6t@Bg{Gct-2XhHQ7j?6 z;SO_&sk(HrLEONc2QZCp?e)+WZ2r`nan8I}E1L*RJ>SmzXv?^+9nqh6w`r-P$M zI-;RL92nW1GiP}4uGS#&COxEHW@Fq+_v6aQgjb$74v?CIq;nlE`6T*k88mC`iaA=Hr8sW?_FmNyAQE9Ahazy)`2CmySlbvi+iF1 zM$fC((BO4CHVqM$P8OAm#{xY~Nfb`T^m*@zb|Zf8^YN-=z#hO4Xb7M(*-9i9NJ^iAM<258w>=KnXe|xNyUv$ zOJgiXJi6jzmcX**SP~X@ra`r@UZm@WIdwL6oR1SQ+64{p&er8k1Gte=6SlWDv$OHk z+J9kHT`_vF{Rse1xUdYYx&%y6P;sX@Iq)*DnnHjWXf?GpwI zIP3=py(xlEgbP$|@cV|W-V>e@q~ldsbE0{r*)zVgsr&KNF#@%;e~pSJ@?-(<%-034 zcmkBOs6rol5t*gb)d4XG(KpoS;oYE369c|WT@G@E#0cf3Sd-_>?GI>w+X~)W+(3kr zH1(>eELqABR#M)YFr&NNdYIa!`LVn;zO@WnE1T^)GYoPtn&>&V#Mpe{0}GB6dr$|R zDCCcG%mu!5Zb09|&ha2tct+hdddo5g%cl~Xrf}tw`K1GsQDsEqT{xc43&on~f&nlB za0#&>(&oMG7F_Foh^fvug8znlZnbPCpWmq(E>A7287<;$w zge?H6we5v7rf#sXR0fTcgT8f*TIusKa{m;!7a@$i0p`4UF;Fxt@9UF&iTk-nq^(Vt zAXxk&<`Om#yNuJHLQGpHB%dItd&J`;k(NVCLiUPt>(WGMdOc0Hmk;Ucdx`h!}or7 z*32?*ee{9!csx)=B%{7?2Elf+pBPm)#8MKzr|*^X{A>va3_j-i2v&;?o73)!fTH>p z)a;{c7Y3p4SNbY|4Pv>gyj3M+&t=1?>emOvr_2Vz_jt}$durx78g2JKiC->hxKD4o zPwG!CZfg)r?h1#ug$5c1eyCbLXZzb`mGeF*cJ26k4#9K6Ju)KwkML$XGNad~b)6+q z3XGwo-&9_HlO4!+hdQ2r@K8b!9(f*V^x{PX*z`)F3p*heRi>DdDL!#OiD}rAUtiy1%X?iisky+ zPLM=NT+?o92Fj$oPIxr(a_E~ls@!2bETSRO>mH|5JblRS@tw+X5WWzi{aZgB>9ym| z<}7HA?|#onId=&Ay1AI|zDXl*0oj`f_V5c6SNBhi_YIqDAnw&SYJ8v6DWU!}uENCs zhR&nc&m2@Bb{?3QzRo$>50B6@z4MPVct*TwCqH_(c-1tTsuz5eRUg$f9=sjRAy97X zo-+K^&ou3A70&M^wiL`g^A^F0*egKeJoMFr`?xyz8DA#WGfMNwtqqrEk7|(Tnk8oL z2fO)tfFRklL>q-RjPyA0y#>t+q*krB(tkC{B8zn$9X=6w*Z&Hz4dm}QML zgP2eFs@e^WAl6#(eAY5r())O5Jov8#vUi`In<{h^RO?i^=mMQg`(BNmGj~*pq?~8sh1nk@BZs3k3)JDej z0oM3IfO**o?%ZK<-GOKQTDb*zcS8(TA@~dJNtS+woq3;O1Ge!gomDv~LCTx^xbP{Q zAb55nG#*X-YfDWYDZu=!$w*JiA$LNEuhftPsokFU$h~C{2CL zXM$#3>hp6%E%);WiNBNYH57m~rNh*BnYf;aR~591n~Lq$_TW+*Nb?r##D%MtERN`8 ziJG@ToBb^FJo~Udh(2wqJfA?IIEo}(kof{VuZ)-f+}9a}I$WgFGXHcDqkpNqBWOiN z8~l8}z$LtBDJgkLPBZ=)YVU5j54;<0_$uE&aYTA;yi>)7x4q!xxrIX2oQox5ld}n0c0)0twp_|EixY_vnO-w%1>K{D zln8zVM5OD32H*3(kO*WubK|xq$$lSNxzQT{>T>A)(xQ7EMw#8mC1)`TXUGe;tGin> zqEQKrvXA$>gPW*WJRV5;ScCJfFDIua)YxXR=0bWqovTbCq&Y*Z0hju9c)w*Ihufo_ z;j+OSR=@48wJ+(@a5wf*z;ILbk;+#ba9X`XX*k^=HBp?eM4eNiO*du1l(-F= z+$3RbR_dJsnavCS{QYRBUJw4BN+ZaKv)!9@v0siG&6~AdU1;Zzv2{t%k+wbC86N%G zYNVAjO(iGoSW`mWfUz>;9`Q-dEeCE&(~3@OfkR_~b9~r2Tt}a@S?fuHfS*NJl9S`i zMB7__TXKlT$nSysO7CwkGHcb3VjtRHbqT3%o}!J9L98Ho-kl@mhmwSZ8wckalE@le zrrllQG+>I05Mz)hydjpB5*dll77g{wqGKiq8BO#W;L^gNVOJ)}-@DVUd~9w=}<0WYGH3)H8FKT$%3l(J{H#3(se>FKn@n zI5Zu<#ODZ!8`qqXFtZ52`jzrvfZ;M1?j9)X%S(F9>bLt^bQgIUVK_;eR?eA-)qrk1 zmInClm9MvsI_^yTm^prgXGE7Yc@?KH8>Nxij+_W;F8;1&<(_<)pd1#^SoClP6=7MQ zIO>0(LAoK}Q+)UQ*C$4(=vs0K7x|(^MG6?%ZpDLPdh1YRzCFn-+_~+EDalbNEz!SF z-lyCZ!B_y7zt@(sYuMir1sw6}Gbj+j*E#y^$rU_ap$ZG@XKY}rG&#&_7N2w>pavgZ znVngd@41&al-zhgXa;Rp{j_<1X8}vuva@mg#O`lv{AUB)?!!jXK7b3+zOGrGL} zv-pcG>}!b}8x9OScK0zVYV_k{aqAX{O0xi?IrM{4e_wZHq3~9d!EA6{QoSiG<;yd2Wo3BjY>*FS~Tek0hgcL zbH{{t=Nwacx%=~BfRB5o(`J9A(&q&mFRvXASc@q(I=n6ZkUCyoWBR>_Gvy-qaqD|? zWaC^Tgi~en*+ONab(HscGGF8bTZ3O&S;==yco-zhz1OGAZ1u6lViIC8YPdWw>EZ{C z$Xw7PM-dn%eAUGz2;HY(oHEtAwAtflv3Tb2+Avq%oG~!EcW+hQ&LJi61bxO}dqsBH&x!aZlQ8p&xy+vGLj!!kT{==V zLrX;92p#aHk-0A|nm(eJwTa&MIJm~JSENqQwM2&C!BL486@w3?@NudeEH^{=0|28w z+k{YU(^xaf-wlww<$YoEX2fg|+H$k-FDo=hC*#K!x2bm4u7i zfm{mK9J?Rqo)5=Ro-XOh5xJ&3aGm5~s}-UT4pi<6Y{2u1hXrr$je8~H)G#VkjmBfv@0mLYjF4ra7jl0n5*e6R0@`yUUUrpR;ZzmKT}xcPzZjrVJaL zD@|AP8%&n{2;hnd>Vn}^H+4k)Do{i-&9q3@y4SSCSS6+`FfZ?wLCtmE+VaT4!Q-i4 ziwi>h19DSQXT76JwqHE8!T!Ccvi!lLf@g`I$mD2Z-P~7?&Rf$w!X{OjJ)r`$(Hb|+ zWN#M{+j^p@yGSQcuJAPr%wK9z)*0i`h^fC2d$HF!k&-tm=1W#}tp*xRhdtvB?Y6wI zwM~dHBFQi;?~|tr^H-Z#YpL7fY=1GZGmc(i=ba-88#MMXGO1r3m2~03Pa} z8ohnK!cN2u$e&g2dD6sh0!nb_s`xq-*PEUj9A@_8$p?)~UnN0h=cPvD9Ao;o@onl# zc^Y5i2JC)23O)aJ=mk9JBK z-iGt@a8@V}21|Fjy8dQrmb29AN05UUqPOk@Fi!9n&z+ue&4)GGv;yvP z2o$8t zg+ZwjT;a<=wu$#dx0-`P)8WK8`4XQ}qu#(Czp$$M!o&1 z{m2{QOjxFb?i-}?4=3+vRo@i`2ePL`?Xs;_I^pN=H3q0Dm!Z>wcxIk3*;Mo<_XbMp zsF^|Yr_v;Lk=ndsS4XUC7Y9(D_m+_ie?%vmP$wDER6KICL9e$}mSW|5%zz*3IWK#~ zVYEA@Kw813SWAxLtRIB+TosX#)|QTIj60s!oNml(U8Kx+fNSsVyOT0M{ggx-+G!Sg9yqspKQAxHTuToR&G|k5zZvljvb7D6#EF z0ue(;C)qX`c}$BpoUPR-w#KCDe+~$2@lS4vb0HWZ0psN1`M1qj-q$_|atRM;s(|ke z5F9-v<7^P5h0B|AvfzrdGao(|J-v1Z-nVAHd($q!Jk6xT7lT4P(--Hro*-xH+hWa2 z8#`JNYf+>ymuRxdy~};%L~v)0Ct>C2(o#v@o)LCbd~r^kH;r~vZnLoWtq$z_G_}Mn zGin)UJ~I+iMtdUUPY>+NQwf+5zIGb6uM*Ke^UT(q`VAA@;>b}hHadDu*c@l~(xpg< zZW#q4E#?H|4*17|==*;>$kHlq?A(hHDAl>!AwZi_L-}Y{mYnZ;w9JN1;To3!_brEQfzd3OwJ zVc$B-cYti^KlXTB=_mHIA%mlJZW%z5>CRalDX}gwcGczu@FIT;sBl2-6k74=sJ=VE zzJF=^tp?zn*=67KiG9E4KJI;WnwKXnng}ktex-Y~wI&(8oOoPos#_e7X=FGHiOAnP zfYktujjq65&l}0q1hcB?%tmW5-zZl_-_crI-K6YhmoZ_W z%8mT-jgAtW>@nSAh`)a5!~bIHyW^5x+yCt}k2cO}nVH%$Q$tfz%XzA&p=g%n0@TWt zBA}8JQL9s)a#ilh$x<@~T!5&c4K+oj9H4+WkrZ(wZht)D^L_pPhR;2&`?|03zQ&yq z-vxpRWsdBOLhkT@w1U9GN%Fzv=c<@2_asDdo~fHc*GdD^syQM zGsDTCb*|Yg(&hK%0C5XZ9FD0+AtL0WQ%Bw!8UOkrGI~7O8CNb9%`&%p7_dO@(WR0X z0`&XZ7Nwf={#Jsl!X$Nqr;qnu-q(t+gV0y_$;B(q%e?BA+uJ_e?Gud^N2Yw+ym!JW zMe$v^!>$hT9X92QIjg5Wwq()rGD(%pJbIT&M~Utl#K_oskAC^1jQrjOpfrXN0L zeZ}FXN249uCaKEoR66HmN7ze9G2Q$z%P-wG1HhclNG`BsIUYP!ZOgROj-b}!KaGV2 zmT{KM7HyA{b@oL=2*FC)DEQ)jR>illC70!rpFETOLI1N{5tje){nWvR5pMBPg!ZyG z+|^w5lVf|2C0e77*wYfuBG)-5e_$nwP=#)Qe}ljiU<5Z0QU{n0%^l!Cr8nD-w9kI%DV zJfeU#3Hy1;X2L1*L7q5i`Qf)!3=mSC5c%b?*BV6{_CY)a$|@f;`QFAWy!j3{v|v`o88$4$uZRlqM_g z37aMeIztfjm2%P7zA&3SovIgkwc}#xBwT}F<{a}7h2wKU-qo$Oe3zIrn*k}VIaq~> zas9RjY4>>Oi*m$mdu8izqLm~ylz~dcV9m;H_$N;w6%oqsts4&uo~%CA-pHkq zsT1hkyLmp)Q}*cL-&_yBtT-%~Y7Rt+muT+5PaZ%X%9jV?cf-V@Jk=)qPrucObjO>C z^w5b6v*J=4b|~Vh*#>!K(k0nmeEzPfOYoU1XqQBQDSt7rdd*&mk}FB^sbmZfVUQ=! z4gR(9=cyEc_-D26B{(dm3Y1C8Q+ajwAh$8cqcLcJA3jP*osaB5f!M41=Pns2=94r2 zT;0$GQ6$e#GQJ&V-iB#g9~t@}EmVS>#oB2xqU>w>4#h6ii_9B9c7RHr={BagM2>4W zO4d@E%%iJWWCxBFCl)6pjmMu>`4csb*}{x1j+RfX*w=iJwXQx@ zeMcU$s6X5I>;RqW{MxHf`|uDoD~F(DfEpSBFDpv+n1qdF(m8v8>kR{!lSI5*;-8UE{VIztsb7ar=8BlwVLuKsr-L>aJ&L{$dQr^gRO zsQCbXt1~U{b$O@`qnX0HMpUWx25Y@tO^r(DU#@Pfp^nW{tmXT*Zkv-oGCRw^BMIDV zWo+p#yLAb^>_ZKpUt|>W+pKm<1RdqBSHjWXE~oq^jqH(f^Qb}qzDOj32n}ndVoS^- zgAqq~ImC94cLg4~qUqL9 zYK!BF+{PBTPtRuR>g{n#g5Cr+3|T8VeSO2R3sQcO{p?2VNBp(rk>jIeI)XH+Et@-T z05e@YZbtS}x*i4Cax+cwbx zXxeWcUq?b+Fn=7P#{<2DJh_mH3i0@OU3=_jriMgg5sePk*03sWLVZ$+3GA?-+3VUl z?Ahn6S6lF*27Twk-|@rt)~57SPxcu?Q%RM5Ddtr1XhD|5-NHj zGT+MFEFx#F#8l!(TSTD@>{2ObcioBDvgYU?OAkiRz!0Q0vZ)1C6vAM3lbfx*qKD;% zsxa#L8+4G-cdO91j@KA5qz4v5wmYVqs3DxI7wkhBu%%J^A%Q^71H1HuKmfAwcUdc6 zLpx|U3w*<7b6zk_G7aam=M&p@jk|k}wS3=nI5JCO`{wVh19$*beAfiK>c)M*!fc${ zS?$YkVF8gto;!wKEv@lZs!+S^0%QZ}ea&1i&B)`+IiCv@B5@~H1d=pJEsZC8HWoL< zSdbGDNCAHviv44(1Z0WN-Fe6uBi;#V`vg?81PwHE$ij0Z;`dr zgVjekCzM_|r4!7QK-WD-w%cx(B3U)6DXqxCS?}e`Fnk@$>I;STH~8umU{0Z`Hv5y) zgXF^^NU_0XJigVWe2g1K&g}YB@?n{q?DD-#`))y)@1xcsu8&*2cAVOcA<-apI;Wvk z)q2P*>Z?ms*}$`@(p~>#>DO(nygwql0Oq7#r^yF~f>Co_F)_a4)LX1(z?NHViA%?v zGm%8hf+2k=F?+V$e}@^}>Tly>7huhSi$EPwKLy&$oQN?RL)bgJYBOZD{0L3-J(8g? zS++hL0}j^?+PjUPg<81H76YU#7eZOdin9WF@kb9-l#i?hICUPA2b352(C?U&1w&?s zh3`@PhIZ8Bu49g{@eV$<2sVE?7fEo#ieJ$QoN|xiJSY^MG?9$C`>{UuuZ;~vk-VTI z82t(fTnH%N&6Z32kltnAaLAPuXf0fNkhHk_zl=@TVm9&TU~_b~38}p^@-_7qocQ9_{K0qQ+XSlV#3FB8oU2pcjd- z`-(QBKg+EqeYoq|8Dq`dNGbUzS_LlA95tNSPi0HL1|4*v{NtSqJ=nCEI49@%r7st1 z;vmHi27wiFu5AF%Ql|k-2OVX`NpTDM+&y1GQlv_)x+tcv^EtOr93jD!NgXzOM#%D& zHNy_9CgEzw6;QOK-*ZBU?UNZrH9N?{Lj)0p!gCp(G*|F#5AdHPd#|L^nai$;iX!abJ!{Y zG}*_5r^!{~yn~yzenXRX1Ol`rLa9dVW`B0lRf@($(ZMty)@T}DmOaALE#*v`x(OCO zy11w%jvg<+HS+e#k147DBI5^M1@?XnOfXyDo$^hBsR%2q#Qt6Q4{dvmj)f_$95>E@ z9Ndg}g;=*MpaJRj;jO@thi)>D`0QcM!zLlmE{sp51kl5$e=Q-C8-3$o*!HTqy~Pji zN%tE33nFt7Q@XpR^t~;+0ulKl`jL5#r-NvoIJD&9;+Y)WnVIeqcEAW44in;YAGhT! zzVAJ-nr@`mWPKTzs1i8yp7XRN7Pcu*dIM5hta-yj`y32Zds2)Xgy7{Jsnr+o#)DQB> zrM#iW9qBf+p}kB6PfLnJ$>e=i$#C!AjNLTYt1|R}a|d-O~qRwY_(8 zNk{Z8J;jEoB?1~e?i3NH!{#l34vV=f(ol;M_rQ);vptY)bsP!|uhRvNJH`5O%c=ux3D53KcDH1^+ zmyODulCCcV`l6=67!1cTs{s9Z?42y6$xGd2+b~!-vFG0hdlwlk=Tf^mH#Z~g>bK9ui;$$6IuY$|1V&DO`* z(9?~c*CQF!-=NNGU$YoH5_fGTar_%oc0gslto~cE$g;IC{QI$*Xi>7;+M=|g>PF;G~Rx=aV7GhFNt2rL8 z-Xg=9^`m#qx0|ghH2TH#pqk`+(F<43pV+hxog&^FkZSsny~|`SI5d`$4r_By?CczQ zOKcA^sv@m36v9&D#kuo`Pb;r4oCLor;MR2>S2< zK=N7B)G+tX-Dq;L;mw;M6+4>g=$z!AL5h`C&F(9%bp?AO7t$zPc+xz?e z+W6npNRlTv*>g$=Xk&r4Uo;!hKx`o?BQj1nzg4IFM~eZZwQhHyJA{lN|Lv;83_g4# z;EHgBW?HhsyCObo*_S|fG+vsk-1U!k&?defV*KKsyHj;g*6ZYzW3GR$CnX?rJu1>? zX>LTfVknb7{T()waeHac!=2}`y z)xgz~cMrVIocdF$#Djfbt+k)?QBZK2uL`6sAr?=OewU$pY5$HKzph;tWRi#w(S{5C zW&c$Nm9u`#hcA86sIn(V__xXS8s6H{V*j+QB0b*eLH@tXN8Wno?}>ka=_z@4iYFCG zb!;7c3`FhZXjYx=KE=-vwC5{(n4PiHFWz7h0JTCQp3rc-Wju`np@Mzt>KVLpTYy2M_E8MFmDO(+MntL@??`8 z)eBxd`%7~!d+yq1(uz!fyol$nVQ4D*d^xDQahQE9(p&dD!meJ!e*p(xQ!ae z-i1id_?%d#C5I%p#0hR?oHI`Zcpe(@RK(!`9u9;<1^)1R&94m{iVvq8^pd3Lao;p= zEm7(?0Th4V?nib5Z+XDt=K;eIr3XX84DFKa_e=dd(}-O&J+w%m519JAECKDUR%{57GW?yEmSiYGsG*&R*gt z-$4N_4}0lZ(~^+})=&(^*4mR^PKXU&AkbWl4S%)S;b0l>9-S#KDtFtMILhIHrMu7K z9nSo@IMCrswu?TqR?)Z_im4tkr6xnzUDPyQZRpFeiC2JXqW@feh zrzEACcdxc;v1TD?d-8q0&4!n5ve3nNvS=5#naELsVMHg^{`p3J4lNz@LCPLf*Qm-WJk? zbI$4!%)X{O(hVEdRfQs{oR(^fAug(GXw>R*c~~uZy0gJEopm6trz^MmO50)j{$l4^ zJ8XyquU6kRdnME}VJ!!mI-i~y?-2M77azGyU zC3TRai~xZ#kq@Fv(A9K@5(O7Yppi`!sg6fZiM*CLZXPG}HkMF#3+4H%9e2*Z$8+{nIs`WQ36Q=uE$AAi(D`7s-35)F;LLWcnijDKe?^jhS90 zFjCCA6I2l@WNS)%opw5C8B&{vUe`*`z0|r=E+OKJr0%o>n+oucyXcqjuyB7NH;+Pv zmy^&Q$Nb~nhg=D=u!6t!}#G#LD&M60Wu z4x;FUpl@GwWrFRU1ZX2jRu{TOP0Bf112K`lJEFk#CNAFzmwpnM)!_;<6Xa>ai5~rZ zCBZhesbTL(V^ZV2-i+Y)1E4K$MmN|B`?;JDirC@pCOGU9?;d{>hp7uQ*mkDi0 ziVv-HSK;nyg$jCz6XamVDd|+QJ~aPwp{t+o==kT5*yL%3?t9bFc2%-t;n|6i-F3Ea z$zDxR_4`n3LnM>5Ee@+4pjl@{hnZgWuDNWh=H_yIW0;WY0J|vCJQqkOjqh_bVpbjN z#`Rs9Xa@{g_H^iz9qERXVX50PrBl`cf918e+ap|NSnW9b`e107JK$as7NwOy%hZrB zFfXW`bZX;xpL={Nu`?Sb-DQa0phg{`Cj`K6VHGXrOd?=n-*nSQ$o9m@&Q-m&fd5v` z+rH4}*-EF7ndp4@`&58^mc^Yrufug>3kd+v1sLEZwv`37xFNRR;v&XG60s=8tC-;i zLyT)%anhBMiyPn8DY_fazVSYjgIWUt1JWvc84=H>Cnu77{-$Zvp)`K$Gm?k)#JpCB z+T4s1xJ9PMPQQ<37D}ebkSrBltM|DILZEtbP;WSEy)!6B|CcOZ#2DWqW%VBrGKseY z{j{8dvu10t>b=`JIFGKeB*m_okEUctn%R>UNoxu+uU0yKcVqqOPl7pA(Kw^RUhWo~ zG5e12*|a*uPr{kjjj2CN1U#%QMNItD!Sj;Uj&F(m6;mL3e5<*LN)m z|L%_KovOeZk85N0wX49$w)tkyZ_Z}icR#-0JDZo-hR2*dE}c=qQ?cIAY`Xgc9qFsM zL?2v*wd`2&HRH#*>nqn@i9>yuAIs<^#2AYF3E82hP)?)`@_n=%CDN; z%fEN@gw!&tD?k>d2T#Dz_54>``d=$MCn|OkGpYlXyO?l@rP7cS9IWnzwQb_M0kn$< z8q@kiA4PYJZu~E=b;L=nCoTHF;?Qfn{<2HBZy-L~?kN%$;8ym4ZCD5pH*+<7f+baQ z#aDg1jwNiSy35pQ;i2`9`pPblvX1YK>;vZo_X#S-N-65zg7U70vVwIBwV+LG?xH53 z5zxwrVe>t=q%7%!Nv+P{qNALOa~DT(w!mD~1Rw0RH(Cm9qSoDiNl7FzTgaWIfk6<+ z=sctAR=bXsAiV=cfS{VndE=wzrsk8Ihdp&YG%Yg6vpqdoy!D(C)QrD4s6t-d0u^h0 z=Q;4bODDmHJbi40gFomYirDY>BW)$`JrNe1)kt+w{ zNAEgEdYg;p7fofrw)W)%&6JnE;apw4Q4aH~0gd?PG^x3iBX|@}Y4`nS#s@)c9S8h_7biA`t%Kgt_!YLSxJZLwB;^^t z&#*pc$b_D}Cl$rLI6Ie~4C^#wdte}x9yFRU!y|bPxtx)}@CFCp4fIJB)l~j&T6l+* zyJl3m{LMQ-y{8;rhG?qAuzh(C!AugDiQX*({)%nTZEO{SaB-1+>`5%9X#R;|w%UYL zJ|GgI888Qozk>z`q)~HJJ|3n*m zC_CLVKC6K2FhsMqzRvq1C6G>}Fw{a|j{=7>;*h0O(9}t-Mo85ilYip|733)uj3{ko zBrPYBtV4Aa1)n2M4rM3=y8KPCIm4K2sIyeRq%aQLu#_^ zVSa&n!t@c)M0ppL*JC*ZgWcV;qrjFSofy&h`k&%dLBq9+`AG2H{J|hCy4F72b`%*| zBwP2qG|yoVElTr1D=`3jL0*&4*Ich5G^R#KzpYzsmfzBo@iPc^sNXgdINaXq9psAr z%^%*qu z%wG(S&@8oDMvz?#ov{fF1A-U(C|Gz2$%Hsbdkx6+b77O^Bws^yf~#^SUPI)}4lePw zzmHR{w_k3bl;=HU6V(5|VIxX0uAd0aH-Xilr{pfG$8~2x&fnyMPUzxLn*0jM1nWj>tBFcKTkIg3n@y9A-MG2?s&gmfvF)73MofYm{RH2 zZ;8D;OzySE*~zVdBuP%&Uc`|dT`>dsIyt?p*;}xE)IjtKO%*K!A$k{lnOsC*TgOgm zLO|4up1{<5L+GYYpVKc3KAAw1W72V9Sys0QI$O_wgk{#9Un{R3v~C6KQe*%1o*4zA z*^+hXjkuezDMyx@G#A_VT_FN6p}SUAeH!2`J%Yhfs)IwGuOzhc4Z zs&J%d@7%|U6CDYMRcuS0+Z*SeG@$QwbUuou>U6X<&>PX0H0h8cvy8?!p*PkB2hMEF zQOEbV>H74;?bx*N-Oe=`c=rh6rRwR^imc{nOTPSoThbQm)y9GQS_gndas{Eb>hg+b z4!&p=Ft^SRA_>ARzv5{2u0H0}LDDzvaT>x{x^S7AvylKW&N)-f*$=H$CS0d@GQfu44K)T0F=fY*p<*6=A(Ts22^rzBC7ADGyxUq(!m%BIozB+Kl z$KPt4)(2h;oHSJK zLz-kpo|%+J!TM(_Vu^#Q)u61Gt^5%|O}BWafMfQQC%8vOu@iat>0ZPyd$MC~$o<+G z1;m@c#kO0f9W6nR{e{(tai&Lr3gcyU^aIMpp5q$?3pw?|y1N0}ZJ&(jz|1fUZm>>i z)=o92_>UVM$(~u6uHWA-X~zH^~WP zg!F}@V;*$zsWsjW~3@G1+$mB_Id~SGgRt!%9BuQ>fWKT!ivoq?awd)LVMU->+8cs@>_9enTnx@-7 znAV^Oby#ESnMY}U7Jo=>n)Cj_O+JYQgQ^toiFREJ=p*Q1S934pyKsXndT;PpV{Q=R zyqVon5$_?xkD`kXoenYgHL8qQnB94M*Wk!)om=Mw*D`?5uxdG?R1%euxX&@!OOrAM zOmvrSxbttTYc5FR8`{)64PP7no8*(r)fA=#Dh~b;P!v#-tyeljDM%^OQ?77!a5GNK zD6fWa4a6Nbc<64KzZ-9+LYxi}#sn9w?VqWLppH4>Nj?aBkI z+44D_YMDB8sj?Xcq{RTm({VaU5@W%~$|xSB;9Wb@`*;N`y*{_wGw{OJf$^t01H|Xj&(hHBT(xvOC9{kq*bJ^1NrEpsQ zt7&U(3mt;ai}t{vXGp-Puh5im&@}y3l=R!n{FY_c0sUxX~E5nC59?F$6xeOdz8{PoP(#l5p-$7md4AUi_uIFO= z{lw;w3Y`Yfawvgd@m7-RAAq^?7yC|?v|ztqq-$a6`EzlP*R~PaSDc8H2kP=P4@-h? z;bUu{)=07rfUdW7ssr6658mvzDMNopS82<8o#zC{!ocrwlyb4<5ZpVF3xyWv&9jaP z1}*iRm`%lrwBaGC7b=7JnWGTavD;h^yb^BVidyOod0LqI!r)Uyw&ww^fxLjd)A^`7 zkX=OmZIAYOv;}IpTrtj{esSN!-!>(w{`)w}i8a`P*jo4J9_E++dus`#k-E=WFQb};B?UCh_+Fyhk1 z#MRYY*Isn-c&1r;6GV1Gl83T#TI{E_?aHS0>o*C}dj9%SM^20+=Fn@JdB~X>9_-w4 zvJYQWVPa_hs`QBO1;za^3Bp zaxH}F;hy;{%uNYZlKbkiguvKI^L`!tcAO98TB>w>0+dGQ_Ld1v1r~qqBBFYOZH_;V?KmdtjW3Y zJi>=bs)-3LM(=ts@#Dqb>f!CrEpHzp!C-u|ZBRHlI$Nc)&3Gsd=+S$c^q_U2)2Mr4 z|477@n=X$Zs{n)8G{9FvOMLij+SU97UJ>DA9~o<*JkrfLbdA)aCDka1`lPI^hUQ&# z!nP323QfXn9FbtUo$uDG+tq%d7LZ2!lH|bSw))u#mym)6NU?a@uF-8y&V@$}>WHf; zy*{G zVR{grkKkwCc=~1WZ+QgYnu*7;zSkR3{j}Fa%D-JfN*b6Be7t*6BP;cilsRQc9gQ(g z*ph=?M^itt+VYCY^U8oO%Dpfc7H=vh2ZB?FBaSix?z&62)!+3`IffEyU)U=_xmF9p z?~tRLP49=b$lcX_pS{KPu>)mhVMH%z4SQE!2$M=$zrKdY?w|1Ic_-$picT)%a{t2~ zE}xBv_}PcZj^QmG5zAEgew}$v`===9mX@Jy3n6YNyea?XVn(&gFZBKZ)&CsLf%USh zdhL6>Y#MY3<;}I*TBP;&GKkOj)GxQ!8+X9$`mAAxwlopgdPnIa*ImW~KPlg7!>06r z7Z;IaC#^m~FM998UU}1kTDs}AtL2u}r7*IM>jkF>xXX$o(Mv`nl8*JF9Rm|+bIB1q zaL3C_b6f9S_y(E&pP=o49An_g5wmHyN2Jy^g~T%QozNsIb&XSK&}U6+?p{!tz)@We zkaQju)zsMW-i%nPa~FPwlwm=a+#eJvBVC*QD1vMDSEAGf*75EvmU~X;y9` z#951ozTtrIT5dxNoB5{Un=PQ!Id5u73fe^YH9R5@K*C~UV)|VhkwP9--Q0UEOIpAtj zoPtIJ2_NQC^kzVByGJ3fJM-vYeC}`je=7e&`66f}f3d-zeQ_dg73`VC77qEsety#F zutXMl6DCyC9XYO9V9{dZBh3EM`ofI7gl0{Z*s|)WJfX?5s5D>uGOc`Zj6}J66}xF; z^}{lt?G5_-Eib)EMNOB+C4b^q`B>apbNOi>JT#dD4Wr@#W6lfl;~$A$7_SCOAR2gv zLD~sn$`)l7P1o1flq`k8Nz2DDQpW8^zLA@sKWs(Guk#VI7C1?~zj>pd7#u;~lG9jT zOVWQ35mlE~eSMfe@K7(;j(34wuJpK8ZH22RPPHlLy!v!-DHyYU`?!>?YZUTBcl7P~ zrjU@==p1)fX7+2+Bsg?DHP$$?E!btUp5tT2C1JhWs4pAdu-nw)*pQ_&+SrkYahT%C zV^>YEqKprlVmC13a2p67D%?xX*iBxY0f~RGk#uq&_VI02+nexN7>q=V4+{JcNlsYQ zZw)HX7KS%EWKT)0ei?1A-7-w}PObHH%Z`@$=CkbL01Rh(ZpHoz2xWkfG|`=9jV$}C ztp9UlGnQz2CROva#D}#x0xTNIZ^R`FBA1m>0r`vw5T0~pxqknB#IgIZs)w{^jpgAUT%jXeKLoB~xm+`H?K^@2@tSX|?8hqET1EiXxp4@wj`QS9Jw0wKNQ9dBYT8_3l4wEb9b!R>RSyURP43>m z!&$@&qLR5EgoUCDu+o9V?k=i9PJ8=6iVn}~NXD0BFhuIBatsyaWl5G-$rX4O+7i8h z3;68q(wPyN>?ubavGF%&iv>eT{>$$kzbEqQV5T`}B#(vhnv`TQ&VQ|JvC2+2%3qgW ztSrDxR@_RfK|uOwc$N9TO*7;-YHm|0%lYVZhBIlzEe|ptl&PF#CP=_p}gS!|z{5aASS8Jm;2$KCf z$&=&l?@YaNtq}hF(EejZCSN%b>ur&XCy9)3G|mnnGk1IROJ;&AlM$ToE&^*|RH7Z=K3A&2%66U(kDkb8ITK>RRRvbL}s6Sq`GBcRX ztA9AJd^Lcem{j2{)Cg%Lc*$fWkvf6g@Yfw)54yhXW(E#uCEb2vD^^8&c*C`i%%v>3WSrS0ns)|~_ z(0Z$bFckGMRks|^x#XPp^S&{MC$28=3m$X;{}&rWu(+!eJ~Vf1Kr44!KF2`||Ecvm zke(b*BGL%z1i`{n^izBVaN<9kAW%pI*QV9(1F zq16Xbif=5LHQW%ut8Oyo{M>2j#=gu%8aCmzYV#_d18L7)D(Bf5u~CA&i=cUO;w zL#cN`ZO}bTn5b46^-tMHVU3!5V;MdnAktsUUV?&9CY?Eqpw{@=1~-t%yQ>MaZ1!PZ zXW4ED)3)~jm@=@L;_rtaq>TA;F0{&{y7$a3e5tW(2hU!w__s zS(4KX-5pjvR8k7jre(0bxe>jNp&3U-rffBK=L0SA0Liv`?lVyPzLU(?_mSsfo`+PB zxGN_aga<7ech$f-Fk}r+=T>%BBOiC1Ibebfyf{KFR+lOxztqFqgI8;Y4Xq(5sJ^Z| zr&dV93G?^brvpz09AFSr*;-O7%Rci#cVAyBUq80I1A=aF+Om7&6YlE(o{M5a=)siku`v&JzA3=WYfLJ;7&VeVe!rQ7P>E88#T$5?;P0+~ z+xOlrkC+);JVzL(&zrrn3i97*RZ+`%qlJ!tl#W<=_uam>F@T@%7Ll_^G<_c6GkHf* zv%+RlFS4+6#dp!n_n7d4r)!+Ca!;AIab)SC)eD&4Wh35do@;+3-Dm|{cCkIE{%M7M zj#FAKF~@t)x)qWnQ4A5QRoQl)X7e+b{H?ckwm+uLHF$@3JkM;crC$Z3Zx)&5{^w#j zXg({$v$2ZWCVQ%U{LvxRcK)uasqNoQ3sl9Ko-3u}@*9)f5Ab$=RcyK4xexRt-4mG! z$s6~-m7YQdhrPE$$K(qFsl+T=E7=i)(ma9k6^)e%XJDycG3!oRv}3rl(~xQdcdvb) zjy`C>e#y0i-?h-3GotS}7FL-2K??ZP@gFK3YrAyEWEJX~qn~G$a*SefK-0M|^3%&l z-4n14qZpdOVGhbJLb2 zzx3Aj^?D@uBn#%vz(O~|i|L+0?WdPFhKPF0xFU~&0RURtBbadmtZ7$Fj3_1*eD*y= z`;Bi`koR(BwpZ#9j%J2u>Vie@Koh+)zT_b4S--*7p{aV;hA*2g3czb#f3mB<m`zv=r;IAAhAI{*PgM1NUHrfmTA zG|9aZ-2-3bg6Sz-yyz0ztMSbJlA2>SJP*+SK6s0k47L3Hu1tz(%z z%^ae5xIRBrf|2ZdNUq~XVem!tZ6a#w6Swhwt>9CASsuSCs76Y%%5RPe4`gLv+1Fcz zmLNT)+Nmmt=`K1k^X@rUf=_G3e=q;D=wAHgo<`Q}d7(<1>g8S|10elHWb?eTmMB}Dqu2T*FC3yaB}w^z841$BOFN`YuGX6wV8BG!glu1S4_ z%9o(q!2(nb^`-N{50WP?R*yT|{!zY(8BOg^+p_SmLBlY>B0F|`lU_Q?t6fd{d{xT` zoLHA+li)q%h^=KrxMIw3Ne|sdJlb+c|%v~MKU{-af{zMz+~wz2ytLpSaTI!}U-U2q4!eNkU{S%~VxBC{7m z!W$RT^ydoVh%|$*47fS(gup4iSILOhcIP@}VW)?IznqKX0k~eMHk@IBYjA3enQ)1iosEuXyTNlEnQ=sL14l=bK4?g`Qy}v`{@cQQG9~c>bjINv zbZT&D9KRD1L0l2Jpp$vi%el433-4Z>T=x1YeSs$m<;72j&bq#3jl3!R(V&=Mmv!~? z#qa*9Eh*_Xx_gZ$Kak9sGcAjzO#X{|wECs+yf;EO?3VjLRA2140Rv)qjJ@s)qa-(y za{f`^ME`bNd4aU)4g5~i|M#we?JgPQJX|g$W(iL&Jp{ZwPA9B13&ds-kxe77s6)aO z<|R^1WS>ZV(GCL_xI9BG5#(y6Ym*5+`zXzsbao`8rL5dmC#LCw2xnr9@IOb2H8ef} z?@I}0ZVLujbO0nB8+Gf?gA#-=@WXVASnQKbtn91eWvCLq@BGJ@NjJBj3AgfJqd^;I z8D-d9{Kxle{JgMCaE10N^=AZPuYq$S?dSa5oB2dVdZ%k6NvdmQDqSV*(*&FfQ)IV~ z-ki@%PtFMI5)y^cG{gbhIcb`JY3U!Q4m+pKw%8dq^NI0YDUyd3SX{Ltd{S>mV;+;g zB!B|FT$}Ct?V-%}zJd^3J2(33wu?5`0{6+vzWsBz^vW7DEo8Y=6Nd~o$PN44Zn?f` z8bd^*3!U2|p~R6mk)9~xs zSJnGR`TVLzeJfGf7qX;tFRwVjPVz+CJ?HMDIi9HOGFn%4w8-r`(^{|NoY4`wJrt2y zdq$`&k8|>H4&tnL;tVoz23(FK&`p_@+Sgl!KmUQPJZu!F^Qhn|v#5M4;fd6t$u9q8 zgN>^&|2C`S)?LL=Tvk$x3oRV^YNTe2@u$1rTtp%G5A(vIj9DHkwBv?bhdkYCI8u6l zbI2nn3nOqzuP>wx`=}Pnr)x#x2}Ld)B^4LT&v%ZC{=OthS!${q`sQ~@fal;ki6(3< zbGP$MEyJ(p;f5ay1gWl;An-(wL6IM7h0znz(op*$@#&R|&0A5@uKH0ZK7XZwa!`gi zFRg@_s989+_{TTv z$YIj&!>>rt-K%hgy%EhMaMQOkNuh`JZZRUnQ6q1qW?xuuNFHC)db5^nN75@E^)i97 zyrSS@yFRn;h>+C1aHUPVPQXjVKx?k9S1sgB41thCn_<7#gy1vW919mxRxf`@IVw{# zW%k-*uv&qT9HIGsY)G!4VU#uGqtR1&D^&SIkhwdy*>55v#qtZm3rxJzF$+WA>=3(s z3efwTJHEP^I zpI`X3=ASOHEgrfSZRfP+1YLi%drSYN{+2wk-Z=)S|x(bJ}i4TPUmRr=8v5SMAm6I}i($&g}< z{09x${6Qj5GHk;Z2W;_+xEojJArnUC>%9(MV{Y2n^ymJP^7tv=H3tekmXhHkgWT@5@U-^veg=SzBb4y3f`B#)3G3$ z7G1V-UlW#En14v6({S*!DEeN6H`#`2z+G{aw7*}w*ovgkv1g92CG;GVR1(o?`9kVIu34IqTTq93eHpPCqR_ii$lUCDobVpgN zOu3$n_V;?CLvp;H4Aii#_In&oPg`fbs%GXa&-mP{$M?Q`%jbi3w;7sg*qAL}L1{nF z#Dz4dZtSm){orj})6FAiZeZgM1r3$JyR>A#d|HHfdiG7+Y|vcgU%yxTIcUpkp-VfY zn3uCUf1{jAaP1);Wq2!1ST_RSfp9Q36Ml(1Mr-9(!&Z3bZy)tMP`2~9lzPt&2Oi8- zh%i|FcP1y&|L1Fnc~OKMtjw*OWUFW11Zd3;cQ6MqNh6Ys+Y0%WTL~Un&JP@Ai#uLF z1Vfd4H^z{;k8xpXP2BqexW$WmxX`e&9%OzwFC)|&>|m$HmeR`a7#*&pFeC$CY$@?e~IuwobW$Xu*Wm3qh#4UXigLGTzsx)P3D!rJLZ z@!^5*+e59HOV9aZe3EWaN=u6-lRt6i*6;|VI03j5uNnPKKF2=$amJP63T)pmS_%JZ z57=oTWk^JHn+Vt^8)3Wa#&f^72M=0pi`p2te`5P~2^*gHUhQt@u5+yL!gxDdsBh&!#|yY;-59M?QgaG2aFN#Dh&R2oLy$BbXG4$)LP$$PkU(#> zJp3>{vA~obJaRWd3KGav+N*vYV>2({*#IwPV)D&4YiG!rv>eIXId{+Sk;13XzERh*Mh(YJpDEg^|06FEz+4hC}SuzJ0;}j*BrB*%x z?jbv7y;NV0UDa*L*io|j`mH?6f?$0(`iWEL4Qg-huO^Lqny!Ww+6Yefk}pl(J4Qz+ zjPz0F&;^yNE87?E3D{EIWtRa&sf2jSRB&` zUNRN8BNg5yZ0Vn&S#7@5#r-W&z3p1fgEfrWEX$!pM$NyvMy5re=zqVFY zt5sbnT2zgqcI~Z0?b;(q?GmwK@9NMRrS?ozZ9=UO#Hd;|QZp5M#)_TTy!n-WKkxHz zK6##dopYaaopY|EbD+a91-AnsgCKsfQcMlZGet_eoov>BmoWHXCZ@)_uzFBu=+G5- z!NXv&!QbqWtaAq;o7gv(Y@jAL7^6ZBzzvS14u5826(`&+#XywptMC)-K9{8SVl@MK zx(`lW?#A%%^fjUK{nedE{O1)WZYb^bG&&#^r`#QJGkUf+;6?Yg7 zR4k6>yA?22o^3VG=;hx%O4>3n4=YEN?Nh_ah1yvLQ5A)f9iWO^Ne%cD7?2_jkIm^O zbJ3C^n1W%QYLS?}B*Nd-eo_imo z>gXq+q{xDS1c}*p(MS_;vb=#nOfaH_T?wzHTm9j7|B3~j->VH%H6ptn%Cd|UFbQP~ zDH4hvVwCZR;}L4f%LwQUf)p7s_nqp510b%0t%y=9CNOP7G+bkmX7VU+ z?jA~r&D($tZM=Qza;-ZU9C_2zP9 zradRTIOSU-63}H_jOiosoO%xRk=1HcO4u_sd%%IfnAR}8b?tub{IHuEl>WVZCM3t{ z?ud#-U0=&I@bBQ(4Q4|c;5JqEseKy>9JK%pmO`r{sLU`$6i%)Ps*$_*gs*uCI6-f7 z^al(K15E6g(4Df!ka?#b7T6S%haayFySNUo+30_e^=pvTO8Hzp+QT@m;>U@2cz#-g zrE!1s*!bN@>b-g5+}4N0B+a--L8J9E;f5!{4&~%_iWZM*9Q(d=XY8%3DU*`k{`a`x z)T#P>P8#fK8UYuAJ9(?f8#`Cyx(3QOzLIzlYVOQQW9Y6`;Vh9YKl&#Q2$AONx)UCU z2|K%w1BQ*D?C)YVrykPe-oNBd{Kq9+@dm^)xk7l3*#124#t+KPvilj4EFaen9r#ABHiT{{ zKUg~jJgbvCiQBcsC;l~hR~SalD}?**%qwx}$dYYG+v7Ur)EQ?AyY9%ATT2$TSu7_` zAxk-}^4Ho7t0l~IK*>a?&%C8;lJ#xf69ZoiQh10Hslx9uL}FQ896-h1lj1z}5y|R! zX2##gM+g|Qu*vxyqoTu;A1ywxZY!07G3Yi(F!oJ$WzN*gFxUOoTt?s^PX~YoF-N5^^p*CC{^K7iPoXhH-(?Ev5n-#2BFW9a++V!qPwq!Ud^;a2{C%AZ&Oa}T6;?(UMdx-++e}km@ zh@1Rfl(v$@U7#wXiB(+_?IA+!?`qjU!|`o?8?m!EvPs{61`aT^usOLP@JryX^77G# z7IagHW+17mN5vD2!Z6ODlpxDWOelD_MfN%Mm~1ySVNLqO(@r*{p3jev8>D zt*=MR#nF#HbwW#*RD`2(w%WeUBUP>F!b-E%;UeLo>Y$0;4~}&Q+#1B|v&>0bXRc$? z)_|PPx_wne%dmZdnOh4_Qh6j#;np6U>^D7rW;ht>*Mb*LhckP~VfH`E03ZBZE~yxD zx~uj5$xF3_tCBNYh}?{9iGM&5P-e{oqRO#{d4;g zsKFk;E35mb7AM)L02BSXZ%+L?9Pu|O+1#cUn`+GQAmtz_fdcS#UAboY6*tCY&TEz4 z6o_u|{9gvT$avXTAm=mqdz;F~9yb;^aAP~6_JfTsGKSQY;5F0w>eubtbNBy|<#gsY z93IBbE8UZ_12xBS1NjE-5-H=X5h)xJm8;Vrf7y^U`=Cb262?}c6+*7X<9c(kl+L#f z$@>0sP*X!vKN9&$NrC6Z)`qgcGgV!8730RHcbm-N+WHWtC`h2>kr@$bN>R{-B=BGe z$AQq%H4pF#;u6_TR}LVnh`M}r6f@`qXWovKeV`<@;72lpl3zbCsqI;%!gD zIUwH(spK(I8pwB>NRV(iS`Fj`oOpww1XJW6u3>UP`1wP|QOhoVCfiWWxwKO|Z9H0S zIyynAbOZT#wl?dP_ANFoq6zCNEGDd7rO z<9=<`YN_oqQ)pX%?VID8h>@^n=jYPy_iv5NfWDo}L{tp*ErAAYzmer~^`IQ$xOc0- zU61HTAF0nY?TAPgggNs^o|z1e@0dH*(1-K34958TkIKU0t%j<|z{94JAQ}N*)Ef8s zX|!N8=oT74n5#Mxh7E6iul=#xmg`+pK4q743VsJyIST22FFlH*9#TT)jb(T0V2&o( z`fEs0&(&OkhQ%SR*#vOOV!yNC2ORa(CQ zD685%{4B&Q*9wx{+0e=%r~X8kP#)Jgs#JjBFC zobh;(p)*QyBP)}^L%*FI01oAL7srN;FDy?2DHiuo4Ir%>(Z0%wm6c56IL?V5^!2G` zs3oS;KPT2Yesb-+IgXQ?SpC7%=-G^bkq0%EnpA993-ljs&=i*bJ&}#+TVEv{N-u?$ zTybAX@7SpmIWf;Qr$^lm%0ZAio$uBiQQHJ(Pd?FfOut4nrzB+F6#V=CYA=3j3Z3TN z@ZsI&=&u)85b5DmyU=gE<)ash38lUVqZxI_e#hMA`m=+S@;29;;mX7-*o0!|-m;g7 z$`kA#Rba%>63?7Kd~NQzy4|)y*HpWGhPOY|5h8P9TXc@g_0x`Rv0KpX za#?5suAYdBue7#wl-c=Izs8)E@hyaT*7v53!s!C9lOnxxHm=Dz{893u*p(X7RFfL} zR9zYT4~9>ehAXk`|AQbD+fpM=?S)AXd!S}&&kFB7H8kqoD9XWVb6Rx--?bd`Kb~QI z6Hwqs5VlgLV$EO3JblStoB_g}=D7U8T*axdqxkfTMkBYbjW3zY9qV`ga!Zb*-w#8l zBA&=#JUPY2nq%F$NogO8syM;@Mu3gL6k%G=pA1tdjF>`=fC` zwzK0y%KEN2@fP1@Ded;8v-z<%l)#|uMD&J}1kRWlRyx{I5k&c8NXxK$<0w-}J($MD6HPJ8ATmxQA^SzluuNhcxTMatV+A zb6riz=}~`*4+b{Bt8qbwHJ}CAVI(e%XMnk>Kex+8I|GyR)G zQ>Ft3CIlPXy`n+c8ZX~pi8Jk$UNGl$8Rd=PNB0T^YGJLZ<3Y5j;)y}`$W)lP&Er%< zcfafUr^l|*j0b!l$0&SDO(dRM_ZOXMyN!a%^KVnpuo1N~S8$#(gLZa6$~itK0hUm^ zWy%-;B^6y&y7`v0G7r>+Y-_x2*RIY~xo)1PX@a zj>klRmDApid!~hco>rLq{c`mI5>>FEs;wI0WIsKY_J>Ma|J%>G%I~l5mYhm!^@Ew> zAQjJB{_V;&El9z6{`9^&`&B1ia@D{{Hz;d|OiD*Qcnvop0|`um7;rx>6>0|k`ltso z>266#);+#A>n5bz@Q}9d60YxvEC89GQ37@A6+YqoMu&^TY^L7hx5aQ&x}*B!ymZlP zU3S?U`@Z^w!YR-8(Jpk+;4M-P#Ya zR$N_FuTeLSe*D(Nz_feJ%|||QMdpeNb5l*HHDO^_&7|2Y$=YtFtCk%T))t$7LPz_t zd!X3pYMx+_Q?g|KO~xLik$9wCso7WK$Ekwlv=$XvV&;YEBcr`V1NAQlcl_5p6l3P9 zsqo@$Rw@+Z?nRx2^MnQHHg4~j7A`0blqs=?KKGT9UAzMwVmZZR8`D$VVl}Na!dyEa z_kRbz8g=Q3Ykg7}!42Ub39Pewyw{_Vte}qTc$2;;!_0D`+E(t(uO=dZ#(`({+~l>H z;@wJpC|23L%5?a}E(SjdA6337|7^}r3$zxBHN&S73;qTF5rR|I;rd6 z#QZy?V~xe>P6V~jXwOD#eKc%r2@89>(2&cW#D3?u7M|uGs~~_eFDZF&pk42RTlpR_ zp(CKj)N$tCGX{MD7G3m$Wz^7%TDbH4uxKwo`W?7)u1wB3>CTC4O2Hjia-y~0<2hkt zr?evH&uijQ0ms20G{OX%datCQvr_ipaHc#Wz+-6f)!N`lEOh1DXkAU~>7_L}DAgv+ z@AGm!HiXh6xog3nJvMgN!4K)3+TiXdWwT_^bvX+BPU?wlL>}7*0rI96EpwS~5<4dR zBE+ofPeb4sI{?nI6Gb&sr`gAryUb)&^lQ!B9@Ce|UuWpn_2}RYE@muzALwtD3&Y4K z9IW*$Zaijdcy|3PDElkR##%PEqk7YCZf>WiJZr}vNXq)l%uU!Rg1uf&60cA0TYK-P zUZ{^sdqZemTQnJbs9xBu9&Y!0kD~k!0-Ng!=ASK3r+tq%n5pzd&S$xNQi`r|N(=Mt z6OviF4P~dX5@&z&SC>!LYji?#=MYFiK3M~*@uKK#BMz(lbW-SfW^>BTWq}$p%HsoA zJse-2v0}pP?3J-W4|RDc^+-{uFSbpKvL>I0MLuJ^BBX0VYj3wMeqBx0;X1t}oMWR} z1h8c>aE9Qa-$bI;%lfFbm2Y$Vq|_-IIlV%&GzmLv*UTi(*Bh3z9szT-Apc4B?uY|7 zkblp%37~4i7m>hZ({^h@y7;HCBjV1i@bWf^lG{aM>5km<@Y76DvQ@)e3l;?$MWWd78VSsz{X9=${4{46|Q)IDs&kFI2fLdk!mn z2T(<`7Ya-pQFYiU&M)RD*tpZb;X49a%nJ^20v-6({V zQ);0x$YdldSs(B77GcLDr^P?iIc+V3mxoFk8Uxdg%^gz5bHyHrm}Alqm{t>nk<&YnU`gi;mBFbC`;;gw((KABp$pDV0^lM<=JSyf>J? zqq=U2v4m8S8xu|#Ufx+L|C3TWXFD@E9%(o}H>BfSSW$J)Dn3EQ;mL908W$GOOB-*) zxqE6NIFl%P7{Y?#U{)x@e zcXkSl&rDMeqBrBmXR?=1=0?B%`sBO~)4SrSi+B+_vX9a@nroe(3i;%_IE`nGbr+mC zz@Iuj-UL$;>A8{ww|6w)w~AuAn#I+Ut`7}9ZeOEFd8+n5O!@-%WfK-Vzj+$iS6x@_ zG-$gFzJE)RUpP;R?DY&XgFwK^_dI6w zJH0`e76?D?U9C*wX+GVg=I(c;{>)?-Id<^oVpR8DWE4_c?9;~KRn&B;H@^|5;il^N z4E0XMpwiq28PH&t8jTbc6M510m$YRse}`VQr{V};)yr!cwROnQn$l%*H`aQGm4<)I zwV?38Ers*%DQ#q$qb@Yt(ueGfzqYFdjBf3Rf0HAc!Sv1req#N_?>)kIL}~_Eb;lY0 z>!V%6PwRkFA;ss|RBPtlOjc?niDgNsVYa4>WL4Ewm3;iX^7!`4xeTY}VH3;w1ey%7 zbE?fGQKP1#%UYhAg-H&=-Td}p~M0?$ls1lC55hYP0Rd=J%$!1c1 zB?)GDRNy|&?EpEqw^t*_Um{Zil9R_)Q2EIu0IX!a(g5`7{&%q{nMTW2vT~6JOB#5- z5#_pK=@Z8TISDQE1>ZrhMTS1XfuC~0e+NB@zcd4@e*PoNBgUZ6CTLF2K`VZI(Hle; z2NGF(VB|z9q%owmEQnz1?$nhPQR^|JaZ1MEItck)tx-Je@Z_DjWSc(wgQ=bE zKl?U(FgUob&`))kR3UC{i=+8N+e#xvqKmkD2Dx)5_E0Fy^3yz#Vheww5H6f3!OIwB z?FOB@7xMs0x0)nUWP^x>ovWtW%PdX5@+PY@mUmC{@bxN$*~5e1Gf+UKH+ms}Ku8>{ zVJFgcTJ4wuNg1+6dsX(2s>~CaewzG4PpK7Okw8Vi$Pa{m-k2amqvYY+cqoqwFDi&K_2{s6PoWW)Q2#$$=o)UVQj43Dk(tqm>?*7yDWiio*@UMjd|GA|YwB3aXs~Bm#1aT~ zs^*XQB8{lR*VBvpvu}h--1~$cl+3J3(c7QS)@OK@kL=)SDZC(fX&6}se!9ds=S2u1{NLTStUAc`ny}`NvQoN_p76E-%hs{!B>e-VEo#YEHlGUR<1veWu+Ce8j)LRDPis7a zQ$-AatK7fvo|OWYnScEV`P6C9uI|-PTogSBN38fXQh)72FpM$wtSN?U3PN$qhGHBS zsZ^YDLq)Z3>CWI?}5{Op8DK7cUs%)tCZ>g-xEPG$z^P+I zwqqyi?8I}GE%9I-y_LU!OQ>kQVjsqV19#bcuo^k?%SKn*@gmHltjEGZesr_rrd?&Y zF7>19@{v!VeTDi#%Vk}w3HD6IyHd07X8m7Rixu_wm^$Q44I|nZVlc+322z#y1Yn>S zlEvd{6jg36@A$pbwE#_0ZEmb_A+K5G#1xK#deOSkq!L{7>P}&aE4}E1#h?I~4onP@ zQao;Q)3mel5hM^z_+`peh8qn?JLes^uavm}4cOKPG`KJW7A5-?gfR{IGD9mKBt8V8 z9;|4#ke5{rU*hPj+r4IOt+ps%DjKQ_!GAwJsfko^dcsVKu}vyAz5Q@m7dgo%F7n-j zHkYdb4*5Fj_+%o<9v6PBQFzTDQO}L9Gi?GAusXiDw@`C{CI1aUF%0uF&GcSZ#MI1@2u>z|uTZU^fH&+%W;PXgYvR z_A9lv)f1SL3V$Z4H<27J%5+T{Dya?NscRFA$*KIf1~F?GEKxZkF}K5iz!9mU@{_CL zF`y+wRMPUu-lnpbkDXO^sv!LZW4PBTcvVd^w_vTsIW3LeogOt{_t>Z_1wr72kkTJ| zzq-DTGcnNtyP*hNf22xkVsT-BYt0q8w8)LLHEHw&Xg@>dD7Ujs-fi&}YW!Zk-UQ09 zO4RA^mIfPIf6o1Im*aKMvz{QTbFV;R^YpM<#S5>cDXYB7OtuIXhjx+xlZ(NF;xkCC z?{F}7#~^t|O|Aw4D;}Fj(Knuh(jpoakBmW?Aji+ zz_EZd_)rbyWaXfsTfp3I@v=WIW?TXzJgkpFw`H0Z#Q+GMsg)l*;EKjy;lLdRpS1YM zekPPJI=yLp)eak&F{zltPr3#(Pqq9cl-lEVkI;nAnml;*T#{GkBaSM{jJ3LPV#Bpa zWWwI@>%64!Y>R2BswFipem@J}d73WIz!!nden8Ag+{!iJDr+KX!}gmKrS8^8KRm_N z$yR%f$iIq=8B@Hwa;pyF?cGh-DE%&3f2@xhQh&T8AQ9_i!eU-)mmf*lAw|s+R@;@; zJe5AasD_e$dB*HMnrh)WAxPuWuKq#3z#2I0P!PszUwVj;$CK0Te==FT!h3+?9$i2sF=I{Fqi5K$&_y9X`i&R zz4_z2RNp*p45aub{ZRFs&e({I@-Mkm@uKd*Y?R+axnPjw`}MjX!z0+aks887vwK>cAJd_=c|G${3oS|K6;CQY z3A-5@OzcpWC3PicI&s2HIDX5msM5jD6mRTTz?}3id*^%Y`7{zE4A?PWs}UF+esjWhssn0; z^p5eQ)&%OpAhXL10u;v)FtE@xzN>&k{(pgqi5(YDS7`zM-R^*P{7xm4|NS8m)}v`6 zpOuD)9isjWv9VV_RxeoV5Z6Dc)RG^c_e@P~*DvND!xC03BNq6< zKC0zDJu|S*;|c968Yw8Vhm5TDKSB5^IABrDGoMdCQ!QIKDjl>!>g7OUG#F-M1>}Ho zng;f(-RaEn7F!}K^9QEBXiy2S+42nC=YHgMO{ou*vhUlzDupK-T{;CJR{NvV-fd}l z_SaK-HrG4#JM&>`vgUv8S4UpS?YF$2%*Kkm*#zLWx_f9Q{70<>1P)sK@QLruOg0Aj zfxE;F(-9>Fh2CyW4)Tme#{S(GGMK!)bId$Me==QmHfY=rKOPwS@;8LfzwL#S?)n38 zYAu2$P$x0Y5K8yW^L;7>g~!tEp6ukeQge2t?@Oz8nFFD>sx)=^q{cI%$;|0!Bf;%&~sClf@Z=kM=}WreXx7{tl!O zWKrfsN*M_mZLSlaTqSeS^t`BuFW>G1?GRIGu#bLKCot7@Umn@?Wr0+B@DK6ra|7k? zvFJ$3??{?f_Dt{ZJ}p4-j`?>#&f2F$)U|CZVQ5TNIc{SQ*oGt4VxgS@MSGA%k1hIF z#>H3zV6X&pM9DRh_WB0P`fmETYZLf)6ziVqS3+{-11(6j+dgZRiQB0c-ymFfqD}3r z0xNrvN;8E14Hr45LVtl{RL~yHE^@!Z@bSDw-P54c)pY*S@LK*TH^9hmo(Su#&INs- z$u8Fn*wJ)ab1(a5bp8xWk_<1;P~-YG+`8sh;*1HZNhC<_AgfM3h|RmPc%CfRyd~YB z(V?->AI;y1sG3Q})0giwn^(Zh#RVD;CB0W|ni4zJxdibToo z2fAb<&5ZS|XZ6dW$6^!5*2nkiM>Rs7@^1L|sc21+ZYE_4uVjz1teYZ#|JsOhwI{88 zChZs351Xb8-IYfP31p-Yn(y)doDV|!la16$RMwGa5Q2n2FQT>rhIhpiJCE}E7qz*9 zVh*5ggQp`X8GLz!8N z6wNxH4ExyQk2l6GWi}+HORB7!>80OIp|@%6rqA@FovxW))U`j`%6lr#bT(p@q!3vm z=oZTe(_!{eadB0lTb7Q2hl+qbT|B9tWYJ)YE3+jPjnBb_zj3P47!R~J+Q5TR z&O`vS^RdT4tGLnoLVrSw5HRpz4nI@M>6JekDRj8CThez`LBQkXqF-TmwpH;qXt>p2 z!8+ZZkJoJl-LUy>ecEr?BXBsTRkZ@p@lD`(Rb#CX(d8-0>x|ym_VAfAADJOU3Ju7w z>>KvWwAXU4m(QJ*u#$N>{y9L;S%i_b$&$hQC7E3FQ(|XBl197gb<7ci&Uddq>-0A~ zV#oK(I5@2)^AmBFbBoUR50Xd>Kofxvz+3x>5v)kSn?8=J`k7ebFRrnD0$(7xmnqHP zm3PU_LB7N(Rp?Gdd0WPr3ZsI|J=*X!4k6jhzIRgI6PO}`$b zZhq8BCLurxz0zjakKQzh`FEd3yXqS9bxeDV0UM|-^dM$WQ>{9L%W)-#14yP;>L=%eB^ zVkO6q_(I%)w8o@fKn5m^k2(UNqOU9c(zxv5b76HoQ`jMBfZtZWq#f^^CEubpDOio; ziBm5hrQ6WA4FMv|+;X?mItrMihW7vX{`T+~S6?#m5hF#9?m>hsA{+FyBczJG#DNoM z=o<8AJdILxh#DzO+g!)>$~HYqT%8iYvY{#spzy%o>Z#lJFC>~f(^pkt1Dr`AF#^3k zQ(F}lOigOxR%fF=KOD74+&MiejdACFlMJ8FXEtn7^}6Sb5=U!vq)V(7DrpNAyJUE6 zU%=JEt42u_WB^s_5jJkVDtNqX&lnd*F416!MDfr%VWK3t<5h3Uv?4D^t$FFiax zt$eL z`T^pNz2|)nhLISiR(k zVyeASs<9E{K{h%b#L^bD;cYV0fQ$=kSiqdh?_?~~vYC%n;G1P|s-e)vnQw~*Gw@KZK45|YIi~A_$ z;_GwHj92eM|H>?)PUC{?LTJDq z9K3~@6EiR3n}RpIL->vR)>YEW!7)&B1*U?rcT?fkoW{}r8Z(db^&1fkV_KD1wP`0U z#9kGcFMNZKWd}IjL$9eA^}w+`i6a9gJ0EB=3~e2z%3?P!hQPtOQQ~sA@CMAz!bof& z)|NIAzwu$^LuCI8u-!Cc5JQfD$9BuAx=vfr=`GnfmeLnL$xp)%e01(uhV!{bp>;R5 zDu$QKqLY-cL#k3#{pPZls}Aj}AVNw$EQ{|Jq$c4{9oca_s@bx$4E5y*G_F%9&m1$!i7K zn6v(s&}uKvj(Oom@lwCx)gB@kZ3Elg|55%NX%y6{IDpOZ!;SH5*XF?bDv_I=ReOR7 zsP`@dq{~q&H`ks^{qGxsYenA&!)AQjQC}w^);j1xt)R}-`hjND>=8fyfuZ;Q;j=X< zWU^*p-^O-^mA4Gn?^D(Ax?H+~X{1f4i;t7MW_$QqifhiGfZbg8+ws*b6nF%r>gQBz z*eOxul8cKU&+iOa&g!xDtj%sc{WpvcR)G5q$TrqHvnAFiFo9t|PW< zomK|}-G<{i9<*Qm?id~rlKrKMWsvDXVKaw3z#vQgON>X~r;}3?I{09gaq|WZKMfa>!sn97oNRGRMcqR_J3ziL({j4R_@04_r zah_{Yy-agvpds&?*x&gy2CTcbSY7HIc3K1iAcqCUnz~{OgTyLTYf|M$-5okHxi+N7 z$OTmW-uqRbJ%K$NhdXU*p9iS~0(W2J2oQhI&vMD8GjHE!zI}=8&56997qgwRelGQ) zq{p&nu5@~U7Ax-u*=Eh?bMy(9AAXa#^dLiG{|)_yewudNjoTI%pI_I$PSI*}=lSnm z?TZ(^@4XOY75wt-y7nEVKlk4##PkexqN)PdSUd_>CG~R=BURFit2m~StYxT_N5QJb zB^q2B%ZhnT+P4;re1&%hwVf!b~2w!>h^-zHyy$_!RpMCYY*v5$#YoP1(?791FUxwf0ryKn$ z;jBRL-x{jd-jK`0J@tDz|B1p0XtI7O9A~M)caFcz`BnMB#+>vD+QKyDH|Nne;9hTrx0e)pW9b#bB0n zu=}+>8(=yvd)!x6`CKkO0O(VK3u|~_W+~o5^W3eXKa@9t>C0Wi+xXX;@DV3N8=1_X z;-kXCwEo{8;hxK1IIp#=u?RDNan#Jeo)PRz@v0?&?905pyzpTb6{kuS zPeS8w&u=#u`)MBbV+(&ObLTr({E{4MWw`m=x8vL^?7dGq1e!}rEehMEF4tI358sVQ z_CT_mPyNrA$l3GQAe}z@vx963z?zc^xXX-h?r;AVWUOh)%^P;(Q)v&mu)z>)j5N}@ zR1ky{1Mp?PE^}bXx-EqsAMX;Sgz$Ov&h%jRZ3C2nOi4iu*9sui3Kj{TaYc3V#phWnwmoSetW-jc@r$4 z#%8}db4JU=8NB_C?1CTJP%g>KcG(m7H-5VPGN8O;KgNsmnX^w-VyF0dK;SJib&xZQ zygLRn(vSQMHUQnWzFx|11^l?3nYulQhU-So5E)r79x=GRem71^s*(e`H6viOB>Op?pU`;ku`x<6$&())?m^cci>G$M^* zUvh=zDgv2gHwF{;q#~K0DaIex%a(+NVL}TqlwTM#j4r(UckUVGTXjrY9}uV-r|9c^ z7Yt#SA8uqlkLi;@6+f%{{KA@Dk)IhCgBgsu)AWlr7(=B^WviPsI;0wmqMH_8JH%D5M`yUf7!hyi`}caG%e)pDSLpI6h6hMH*bk|9(xTu;q{3vaG%8Kb7m$d`$_$+ z&RmkMRxt9s>#+S_!$JSFj!rTI2}FnS-MBo2lj2b(v3N|=NAmLi%(;!#(#*$O%qx<2 zRHgu~q?92op7YO#y*O;moQt>EGY7<`k7`QOnKi?2jtkOWrg^qTUh1Xz<2Y{4Xfw3A z9-m2~)0nADr0Pv!u*soiz4o+V-9cZ^K{jt_fASM$_H8{Q2m^}WCr8GM3Wx)Ngcwbef%@ebBD`H00Ae?t^p6Blv z?jhE&UvTM7Rq^(2^@ux4QX&S-F_w?RlPaa+Y{sgMG!2?4N1i-bv06|*+tCLwk~{l{ z^5w~mS^4uF{3pTQ`lCi$f+oUME}ijjnoNnH2yXm^%R`Tp6ZW1{GBQ`KxZde*(LqPa z-98YW&ag7fN{}QMlEMpdZ&YZNR%kWp?O*gE_1%2UaQQO3*;a3nN8_W9!t* zccRFdk~IbC@Rezj5f={VTg#ZhbTCzPL5v%Tzg+ECi*QesS?7YG^t|shhgRfvOc)^P zzL8GtYe2xuW6r1zrZ4TO4)+YFBc!*;V-cLAVz$dh-)2;+b1Ks}LMYK&WOMeH#qG%c zZTRcywPVbsi{RMI%w&~%%c4j_@SMH&cbbtMTP?O<0vFhbGQ3jE4{~F6U9DEgJ6hPs z$14pKK7)G`V;&dGdiEkzvz^=T&{jkl2$T}6Dk8^~by(A^)JuifN9~};Pkq*(vSR5I z$#0!aynPnOY`ggdA!=fcmY$J#=}*Y|wU?50w^RID_VoKFeQt1rdCP)&;Hy79G2uw* zmbRvw#dAD(nTWjavz7FK1I>TJDYei9G~tO6PVMwHy=akUUy@849F@|GW2|t59gCnypG-e;^MNI^UR;3|8T`gnG8lblo_g(_IYOe-K|5G@)=_ zZp0`y#&AQ%nr?*XiZrGUa~~?I zVDQp#j*z%81MXgFeB=M;-(Nq3J|6^*@CGv==BStYLQrqIIJ>a0-)UD3-2J2hwHaV2 z#}9;D9~SBRw(hc3QTnWNsz>Cy2ma_v+ryStvB?9ao`CBRJqDr|nd3n1jhPGll$@vH zn)&6KiY)$R@C(`8e4I4Zwcs~JagLm$x)cXpu)*1mkK34-P0k18YLfCER}~=vGzz`8 z8OC(`CemFaJ>J>t<>8n|bZT5N-z?RqY9H1qXFUzf{{d;<;Jz%sfWQm<8~<}23Npg= z-zQUwlZr4-TI+{ALJ_@?ukAyiR=q;+oH$K3JJlb_G2aXUdF)?=3c6&}A}$C9*5m7A zTiM7=Z=kh+5AN;q#pp<*WjO5@%~7lHS$HE`0@3m!=#x0tUYkt-pVZK{IRBx!Bk1Qh zoZoT!M+F&+?f>*c%ELDbdm`tWDWcCezU31AI8c$-&FsRl?I;rN3Re|tQ^fI>x$>O1m)_?C*H@{T zs{aHf#^<{CdGBe(pTPV1dM|mueu=+uFp;g_PCd&VZBa9J|E7djKV;^rjrV=>wBZxdW^2BrXiZQ~_ zH-W5-EZ*`HpL<@;b}5|wnNjiS;aKle`_fQo^1#k;c~_AdEHc-!ZL?>*yi%*Seq7mK zC$s*%Xbqp)y6-lWu-5PPFn;E+PVYJyR(dc2x1WIGfzCd~=|M&FPYgeDRrN-R&HOhGz61D@XFyfDP`)`t( z3(wUL>zl^x6B941eTBr@ox>JetjVLxRTfH*-~O{f9=l{vni&(Ew|*7OUpGrk9+dN| zNxH*eDB@#K=vLZ#(`w5uJ$3xeFOR0fx4Q3tAY|Gcmtk8(;Oux9^q*`!jTGejc&s-~ z=e9Vk>0VMl3+ZQToFy(EwY6CUXw3QX@d9`f!fgzdJkzMnMr!mxkUZW6P@cyOuUxuQeh?mxfKU6AX!DBX9}R^xdcGm3bSCrp@l zSDpWQj3?g_MyKS~=*mjN_lEmjEv6@IL`uhb^P79|>=osek%14sZ1wFcIdYdD8DCH7G?vl9oC2!Xn^GWjCe2T!t6o{geN>2ps)-WI zV}JJDeU|f*ql$hxFxXd+K^9Y1ByqR+B>d-P>&r+3UN@ogC0DnG;*W_sgGR4VTAyU< z7ZzfOW>-5eaQVYLa&O8UR#>uLKAK00msZ6Vi4EC(wVcY8IIhjQD}Qghj|9y9MBOJzwn#ZwUixwV1=L(lt=_FwE-)wDF=wicqw_7^%k#r`B z;m_LbGEf&fj+!BO(Xw>ujd5E^UgJNr{_C=Iduh z(2dBeY=L|iv}6<8z=edqIo3;uC3NT+fn?Tsnt4titBl^zRPsk^9 z@4ikpzX@YWEOlbDacKJpcPNBOrrTSuPi zYr_+Tr4Dy*^;%5{G1OsLSX6VKr|H(DBvlAw##(J&HTi#7gG=e;1EXv9Lu#+@qGRJO z;A5yfZ)*U;@DvLaJ}F@=j|G^v*IAFDgn@;&x5{#0+`qI6q^>49^Hi%V zO0xpkyZ^ZL{``D&0W$;DVSXaV+z$`zRDp1ui!kRuB*8RrlxuzIL|}T5%Z7sK!jc7) zqfYnB64DoqP_0p{|Mtl5U@<@SX-{~M@Rep}TFE>Z9ZMBGL#{51Zc@V_{XEu9NMRVQ zEJGj8soLwWIob67r(J)Ouf>)moqb`$JS;UW@A=4+Oj?7?#M?8XCtYzoEio>mp5SF~ zronIyn~2`ruSE|E4A0Hq{_kd^{#o?p)pH?V1v_a>O!J>5&p%HJcaeyu7JlY;uXsFf z*x(IrmT(Z{rd14-&sm_oB-wBlx^?%U?H{>R~?01-^z zfuV`fpIuWPvTGMYNI*ySPzx%&cQ$ z{3M)!6C2F_71*89oEKqLMh=a9>}qf*XBxC?2~LWWdLD&S;o5p<-94(%_b0YER&2hG z8)U+o6aYI<*>tsOvblLZ>fa?KrhPtdKVa3DGO$K)e<)k|X~$~JM6k<#8aK?9NQ<=XYwvwpI}Z`Ucs_XUdPRStttY1L zdHAcxVT-m^BvW62e||#Ly6c@N5+V_(O=C1-lMYKTM3Va* zJok%^e|eAdYrfl|P8YL7o+?X$&YKt1rsvhq^!7Ki;~(%n99ar}Ya4UtlWLdW2O!-% zWpHm^KLR1;dQWUxWG`k&m8-Ht3Yx3%!McbZ4RKbnqW;`6^cgVjrBXvrsTx1o`1WI{ zDx77|L|*1{!9&RN|72HP)9A5bOJ+r;^wRM8A9Wtwo6+wAb=#8coSRI=F;Dpu;_Or$ zX&N)9Vi~g#8Zz(xDBJ!YQC}U`SbWbTdh%dyKI?XW!?8zrTE`u=~Exx#Aty&dokyNMvb5gd(-qN{vgTvAw`8 zdE<`>G@t0lo^`VuN)IV*o6gt`I_W>Gd)O3N)+({rwoc@g#5GnJFYQGkMVyKqlh=i4 zCd7IaUze;1d!@f|Nh}TT|G1t;zS12DLnl?)<7sk@G3Xfkqmoy>kH`5neq8cXPavmy zS~;CNcj(ltl7FXcnV~FciL$F+$!-+o(pDNo-1EzI{&?8=#tQUkQ(I)GIS-=kbcHmT zuhVOKQ4ad)vl50^y+n(qS4oC z7NdA9RY|(ZsR|1?^NunT)vlpFWj+oz_A^}b_ktW0b$Fy`3ywz(Lsw*PAL14?rWR4kvn!@idwQ4XE6SvPX5w zjy@QcAWy!s{HqXRcIc;XQt4JQE~VAq9~*7l+u16)d*oep2^`PGJ6(ROc#Zj7bzj$v z?$0!F^3i(IxW$^Iv$JK5zm{RMLIv#~{;k3OfNUk~a1s-rh4N<$HdO^4gv-CGXTnr{ zei&Bs8?HkG^(zyd8uSpT?Rx%`%Z`2U+QPTezs?IWBCd3WxmQob1m2FU4EC5GIA$!w za6;qiwA)sEXEuHKoljI8f9FTypQO5$o*G$Yo)oIG>xKK~398y7FW}ND{=>uDMYM;8M`^;#Yz9#n4gjl&F9f`(tk&g1Zn&GSI{lXgaf$FcH{IcnED)6(K zqH+pfY3xfy|AD@-CCm51D$)9pq6|C+@YRO)>?BJ@%&RUk<$pjYF#CvD>-WP>YB_4b+L7075VVj zTJLVB6=5YbPEtl4Oq*MlV&-k#9w>y$U{oKi$hggUj~2Xor(g5E;sVv)OtC=cM;8c= zzMJZ+Sog3@*=tg!`I+hvAt>fi_TgL4?Daiwk`bENN6v9daU4|Dg=`ZnEBQyf>3i@P zvK`ARGLefSE>}m^p@O>lr1fDo%QLqFI^`4UYw-nNxW-My3-Q-xBx(sKr96eppr(Zg z^EC=xrBsRWmJ_GIw&cQg_T9tJK!MdgK%J9yyu!OEuDYUnx$iG8GM&PyzT}2J(sw>m zm8Oq&6-jqE=&a$aQ6p$CW%T+{k@sd}^{BANG2-^Cc{7U`W?_`@9roRVSDz;mKO2RT zP*F0~+Wyxkqwl5Fgs~0k$XX8V$7o=^Yn-h3Y!h z>aA98-nG>&{xWRKmVgh__v!)Ly@_9_Veu-3wfl)P(~bC5amu!S<+Zmw4QF~!`1aYa zDsik-L^RHdTapyG_Y|iyW;A$p7Yu(->Tu5`MZ@1mM@mCIu^yN zxcC&;zNsm?+MJoScEd6u!{62B^k;OzVWtStW1^sqHL`-XNqPj_>fG`|NBEGO^M+6~ zcFi$h*$-jlEoMW$o3~cbnp#ihHt%e@f74km?R8q=xU}w(fF@Z^PHJr9+p9)=Daq!V zrB8kxF^m7^ShH80U-ui&c=fOa#(P57YM;FqX&XBmt~zA!$jv>}c#Y{F9SFqCDi2?M z8}?x+WcoYg{&V`l>JashDF?s&KPI1{SOlB zYd*;FhQ)X=%tTFXUqKjhh3ZOCwp&0v=}$c4e|-8Ldp-mHZ(1({OmN(>qgH73vSZGR z>u2tE4+vczw#K!1iNqBp|ICSQ=SqouiMfI3x>y7bCMKcR3f)4keh39<>`+&~c;?UX z`{U{Rvu4?L?Isg(@dlE?AG)yI7mHRrpa?nt9)c<0v2$kr!S|c`{nL~e!H0ZmsaHtE zF<;1|(o+H+r(U8r9yYy2ua$X9?yhdqDwr8+39&O|p{Nxy)Q5^oMWKAk4`Aj?i0U;prZ z0=s5ko^s7{>ecAAvPqa~IRnPKR`wd!x-!L;Is-{+{n-VVKz6*E2r zQzRW#z=n*|AsSJl${BIQudm7qmsGH)JF^@(2z=DuIIP%$n@jBUZz`iy2G8oazi7C| zso>0PDhtJ@%a20-tAG-GJP=Lx-yc@}cw|`>WR4(Lc$CcepkFeA1+*K|N9VJtd36zw zB3ED5^m-jW(1H!ZXPEqqCFrZ|Y=#dA5@^uVBjwC6uJZFviMDzw;?yY9<+@Qo{5g4ISLI_|pS6@N%-4M#m)d22@%RTz1GM*jW0p|`I76}@6+K0kFzS5#8L9WD zRPplB1Z{G=kqxpNU3P)ZB)&W|2&v_{$4gX%DSTJ%_JP=EwsSNpm#dowk35G-Z$M3-u zcMeN9#IZ~?aI`tUJe+LE`GHvVSe}ll{F#hPhS5!t8d@q{H?_C1(DjO`JN3Cx9Zs3D zGKVm>jV;N9O`(08|yeuA@_198X`NE!1?S7Nn2F>I? z>SD8Kxc7K5f>Fa;#ex6r2eIkpAi<5Sg4e?sXK{zey;Z#fDgla@m!hMO0@T}ejpfI@crZo*^zEd5P#qF07DWFxAAfL&ch3vL_&-giI?Jm z=KTCa7eVQKTj*I#g_!>XrxK6jH(Vu^rSp1X!b!A;b}Jf=YxGV0)D5T*PUx~t<8T%< zf9o-ub#~QqtKoc`$E?{rTDJI!3^-nJ^q(b+cocT+$|u)L^q5MQBtr$^H(7mlRwu8& zzLll>Uj3ETiFTVimE_7ev&G-y6OEH z6MD@4yTaY*C|)?C8t+1}Bi!e{E9rD!J?PYRvtQ=s!(qk{wKSTU@|3!}1F(Ru=z0vS|Ns>OqE5EBVcqi(P){d6Pan1`~su0_@;miN#bX1ofJ(G{i zHfvPVCVS*!F!O#ZRKln2xH0t*E>DlXXh*|39-#>8Uy`;3^YjhV-t$z(^n-e_ zqaE5USBC!r+1+ETj=qQSgp~6N4UMI3tOm~#4LN?qUI$dlzf^PMX5+(2n0Su+e=Q=< zdMHs99d`@K=Y2fn$=%I+;Bla+^Zj(!?urtf-vi<14T6GDc8^Vg= zO_3LH9Cc$5l2-W17^_xYzU*DDnEF*z}%R>CSzcS?)lsk|DZynD+y)>jt z^wIV2gzjCDEpdO#L38OXr2{1bY85AZIQ3}Fpx|laf5;$@I&mg<>x#e7>NMXXu{fDp zn2&nt0tqx}CIbqc_}1+`XFs(qsEu`88ne{;+b`@=mTS|;Ncb=2=?x)u=x<6iJlVJE zgtWyfo>&g^p7x6WG%ukA`s)tf&80hjGZf1=!)|Xrj(k>XzOQu=I}%U1|7dw5gBs8x z|9Rom!$T!gl3&F-4oI5YKXh}jUyuUTn+*SKYU*KjYL%}QIqbidx1SBu=-*>b`StvT z$6!=JBs_}y=wV{r67xmvm5|#U@Y9)pP(m9dksZ$8{Y50AreRJeUe016a`@H-Q84!3 zT!!fUhTTA={E9$U@TXKTJxhSX9!=#3m_zJVDABySfnSZ!z zA^B-B>=zg-G#Nj6-(g9k`pMU%B&*b%t)ul5M`&y`T-D|8bJIN?@_Jk9i>Vq8CIx>B z&fwQ{!H&hb(Jv9EC3l)bfAxuGZN0=>RG+`D-F3Ea)R1|GcM${eJb4Cq#HNPjAJlm! zKSM-Ya|~BZ!jod%sV-s|d}J9@E{rv>lwUnEg<{tlUg-P;nqon{nwHbT*nC`jJufKTr zJ{_icwi)NnEiT(U_a|VSyzBH=S8MZ>t9E#1DuJTMHxpHGapia^GV4Y962ek$zYH44 z(v+swFS;3qTSwkC8(M829BP^b{LxyFYG@8e!R=?2BAs)H9Qd$%q7gsRSt8Z^` zJ;_gDn%E^!AwgkankD2H+M5K~XbHhhxiew7-h8Q4yjSNG^eyUPrs=26M*YpJ*6C^4 zj+{rf^2)_jiuBdiv{wIZEJq%-z{KT_XRp#Fy30k=23<qfJ;fiKw>jUjAw6MqJia%8yDrs&gR{UnYsC%js zzNM#3CwMHHciRYMT$>uJ2V$MaF00axGp|Nv{)g1Q={&vUI?ot7>@9|zX{qIaGsQg^ zn46m4K{T+}8HXmL91_%2{-HXN9&sKC+_o;jhbq_PWeRiE(!1I4Uu3=5ZQ4bVwWMY5CWY!F)n5dyH9^>4(}nT;&gz0Z zzlUAs;@AC9r~jw7M?WJJ{|up8-JdZ$exLmDUd8Zc5XIBd&PTA$BWRFpNFkXBJ^sbU zklw`iJt|Oj?EB*Jx`wmWgf7a9VSZ4-icQwP@m^JlFgrRt zUa?rAGU)J>uj7{KFl<_uV6I5S`7)~&FQ)T4{snY-sY~WY+#n?=K#-{QaxUKaT)+&-Re%tK9{MmFhF46Z@K45(fjL{qpmr0SR^e;g{6A< z(5e1zA?;WoiP)-wIB^n+9`Z<0ND@wgZ%Z6`(IM~|bu}cgpWp?|ac;spab0;^?^rfe zx;w$R=JU1_jh{cf{@n1#@(e^x9JbReAB(;lH_=r7%;;HuSa|Omp z%uBU{FNQf4o+D&V%a{J@7gYABP{~8$%H-Q!SY~7D*PW(!vZ@yhSG2-Y zVjKOm)iXtnYDm@JWHOf8TvtO0nm*~lJP6b5h@Uvxxw!Fr0%hy2zAC)SWcOV)@9xNQi*eSzzupDlZY9?oI!x&7K~QK&xtW&fAfgtfFDYR@7+mh^m<{Qo*Cb-Y!%%2kJABHG~U z<2`;;T4~oC3G1?c4kIfjH1EA#9jlqE6V!Hu*ZUC2q8roy?m9z|qTP6oA9p;OS8(ZvXRv9G$yW(k@C^H7{eF$~#iT+s8SU0HNi$;^bJomMakWPIjohg22Xbb5W}ESN zFWbv5u6FMwXro{xqEt=gl|VN|>hWsEI|ji7-4`_796{ViW-ns)RPHEwu381%b1tO_ zzjz|1mAroMqbZ+ZyN26)i7i@@BPgfH(Z|{TMg)Vkre1ArM;0{;*X0OA1Yh!hvG@Pf zn{ncc%KU9)q1#K@BF?$W)+m{aZ;vt zKf9jFpu*#(rX#0{G4Veyy1{C!bZPA-D((F%tlr^HO0DCUXP=71GMOd_Ypg^Y7|nzV z^qQ+%#jb&|&UXG8$StwxduDb)MwyL!Ezn!==C}T{!LFZw8oz4A>-=qr_fK(T3R1mi zOP70P@L95*t;B}o@LEyDSN(^VZ|1``0_e;ilk=U|>vE1}f7`AaHe6wSuE*xsm>oPj zxDfP)yD)MQoOXHeIcD$ji?w*97T}) z^{#m6OZYurJG9(*4ijoDsjU4Y(@UjW`K|^F1R}iQVhI~tw+gQh)Q;CtA#?35_!hk4 zOfvcWN*hsndk)WKpTz&3!w+8&LAfqh+4h0gA^-oRk>IPTukSuk7e%WW@n5}=U}`9DzH48(WlW|+$x^r|b99as zP>u^a-QOIp7oVlmPug+#mFh+C=Vo>co_)d^KI&_|x;`Ca)M+b2dvfxD4Y9(3wnuB~ z3(H~A)prq@zqqgh^TV=OxI0TU>E|&%1vtTC6f8wE0!zsLzj({jwLVxKOYPM%NvQGcz6pC5wnK}jt~Sj z=(#Bj7G`pUEcvFkVk0Y_jb#`7RqS*SAjQhb$%zD^UK}1CF23R~e;q@^oo84gdgT@e z({0Vds~@#<5{e%e+5G+*lP+S7KRrFYC_~9c`R3TCK(jDxFjLxgsW*PI(wbnr%&e~+ zG|_l=P2OZp&coy5--FT%Uni?JJ_9ytc*slL{L0G3)|L4L2RiC>^FxqzjC?(|d zLaGi9+~AT?(hGr}$y=c+suCW87A*`r0Sjj$KHKI>m-DzBt75(mnxrT^o$vqhx zN+0B3g1=}zxmv-257(j;3!ezbzEZUNacv-5k@;W^-WSIxF5A?qVb@kwoayCh zy~Q`kov#T?xyucJsNyef)~x740cr9K*)(^qw4lna#(D-J3XcLOume*QW_=FnTowIN zGtu?dTxF`4RpmjIZP3PPyy$G z>Mjn^k$%1-SiR8Q89e7wlzc0D=bm!3TJ%#QUk$cnWL1sle%#=(NA-za^Yb@CrBJo5 zDHvx_T%8^_Az8Nm-#)v^b3{sw_HB`a3e&PXyb+EgAFU^z`1A-hZ-#wO;?8evy{=g- zf@BtC&bdk*FA=cQDxIKsY}`=J%xc!^FZsOf)E<4-j+FBOk}-@-MQSV+ zeJHVI(fq8hyp5E_kHp%)7|zJjfD#`Z^{$a+tThv$*Yg^QX2W%#*i|aaiFMS)A0ZMR zhi%m5b4ecZIuuQAe@TI*8jHWF z;}BC+%nujDN5Q^9vYbK{v)1>ylU~1}`YzX|DZ?4p=-4WzVA%`bQa7T{zf(+51&Z_w zH<9E<=NgvW=B3>}l?GY;AVZ93Yiny)L0ACUsR#tP$f5{xdM3oeQlfGK_5g;VV)a|5 zR$|GcE7s>jc2Wh0(DEBDPCHlh?DerxK_+3?^Wlk!DDIrVw^T9F&lpCqK{C!GoL77xO4AHTyO#RWW%wtaM9~ zhJ46}IfAz)GPQLtPDcwX>tGfnQfI3H|1g|(?55W9{P7>xJDZYb*uA~!FHMWHzRT%{ zlXxr7`r=R=kAm1#h^VQ=viL((F(PF47y~|9us08~6&RDa9(J|(9sF;%`d2EyHs%{8 z-T=X3w>pp^gIdq;-boX-Oh|epcWG{JE>K1_d@+LFqT>>GR>%$vdxreVt%L_LZhFCs zIy-CRW(TrIE}W1>gXlKPN^a|HOhVlr!;<%%&f7gDxeEsbDupb`Syx#K(RQ8PP_r8U zzqZS!KaMd{L%R!WsEUog5zmr>1M2=B{pF`-LaQj}is~W^XB(sJ%*Qk$jcxdPzu0>r zXtnx=vuv;YYe5EsO(y@Qb?$J@fk7eKNXvI@gnqZvi{P7?GVUB)kFuh1(fA{omqFbA zGUR0i3GACYT$v*evG#r^&;hxjeEvrp`R%?^*KXpo*M8Yi)kAXR)ei99FLwQ13$cod zijy^tG;CL>hec?fsL?A*iSh6x>*xt-7K*VH>KyqG??BaPgN`12U>U+6&3Y6@Cw1t zIkkW!u38G%tRnfb^5v*ye%_+gqE&7}nP6?`ee4sTIa-ia>)YGlcr8Wx$g;D|YAVq8 zS(P%kx1TEpDT;D}<+fW-ECfux+(MTs?RF4= za8$jiQVHHl+JtcFKs>npq2LEk@uOsY5=g}7!#oZ%gobi1Iz)%J@9oH^)P%1O9Ns1r zK9OG#4VZsg2TxM^bG|IEYzc^_zq+aCJZaDXgvWJ8Ve`E3oM?9Z{(ita@TyT;gP5IX zNYg_(Og%mk(S2FB_hROK5lcKg4LtcY*`GgfwRZCnUOq+>pfg}2McRD;Fn}E*OzvNy z77xmZepchjLZX!_aH$=OUQIMp()lTclBbSp?IE*#T+~bl^ z(|X?SBnUybwf8&!->C98x>UT?dQicd!bZ;?Bm;g${5l4qjDd{ zK1#XuToDCOO<98vG8dMo%YPq^X!ij~A|BbTXFh#*ox&(D(XG9NtIZ%4P3{L$)7Rc^k^<#fukT zhu+Kk2n{J?191QZ`7=uCWfU8jnPKrDg;;G)R>_<$C%KOq7)5NgqsA&g+bOANdnFu* zARmVbjqL6zV-J)YPFFK=-4X)vUI_BpaCifHl&)Sb^bKv!0|^E0Q5m=4KM(qr_sw6V zH2)m2>^#N{PL9`K3QAFmjzW)_6my!N6VOrEy-iqy(krIc5RQ(2G-!``+iMpfs4YL^ z+E%dFmqU|VagBa&jj*XuDo%Ha{qw6}SMnC?tB`RgNtuLj99$_WAqNS~pd73KN)ADx zK2n%r*g=Ygp8>#gZ*hmA%dnu86eF%k_41A1Klm%YHm+r7PEMo>n&F}Y*M>5sC^UIn z_J8mrHg^2r0bN#F_5DK4Ru!$sUENg5E-VWG0qt%3w9m*$xy~zqs1!1;wtwimxmgXb ziwuB5p@@njlLW{4;4`T6`j?IJ=GEYj3z*~jDx02Hm9M)Ou;<{^&winPg`M1R$}S4& z*^rX*CNf<8?_R=fK5jz*PGJe$?L-bZDA}St&$2v+I%izl-%p<`pa&Ng(`^$jVec-S zuH__pZH)I|<~{!urhSZT<_N=Jf?xRfEDhgh>v=`Xk4u+8^b*_sT2rFMog1e|6);6F zh32g~=C=KmikC1S-`_FZyMwO5G@h#ioywRcaFNem|zd(re5>W~*jou}P>m;d*R&xlnl>I|ozm zTe47yO0hnf10iKeW$|dFJ5*fs1C&cnQzg;pw)O&@%S;<%3Wk-mg@rbRWFIay7N+#t z*5xy2#<&j9*XEhU`Odi7Zg;MxT!I?VxPI1zK^#NPh6AdzD@>0NHPGgj>utnCi( zaM%3gyD~b+?8BwW8^^72$W59KhAl;IeNR=Yn>-><+$&$wqitn zf*cu0Y87)%Y@SE)BB>KB{@Y{xEnaV!a zfW>#t<)Zc?&!@ihpn|i(J79eKzh}?}*cG;{zZdhWO+RwLKY2eN4 zd9iM&KSfas3!nr;Ldb<%uCQT|ecekqGKbsiG|S*A8QAgW6mtE(GFgWu7kCNQ*&_Hf zHEr$0BYzsM2c-O4_#G#0CyJnx5}qu;+V^C?dw@>!yCCUNmoV&9D{#}6t$X=<5;-@xUZpr-tD&5%{HmF|DadAOT`Z=`lE$2VN$%lM7G4^<72m9gF{Lg_hc!1YwB%R zmrv8>tXbuzdp{878Xo+dXusYXWTsnoe3lXI!9nX{meRWX-JUqVefa^e{FypmOJ-2; zyt#l8Bwae+QL2CH4WrH*XYSfTnnzOedPF24OUXLk@;|o?a#cT6tWq>9r{kg*+=?}L zNIEZaUOQ}AFZ(U-&F?*Z1~M0?em_Q#lcvXK!CSYr0mjBA}} zF-MkINwmY?@7y_YmgwK~){u1>%1274PX&xCJJP8^33vV7axm1-a<-CY$!gXXIBw#A z_?Y>;>t>>Y4NHAQj^oFNnUNsQB^8~umyaLGa-uN_^4lG77{-&u ztpg9a%&qKLv-S6HS7Dk3Q)E!+v#KOZ= z&?7l>(E7PZ01dBELZIzNdD|c2%>ylmf2f(?FBtRJaHT~X&DZ?A3k zvZt9fE+dIP*WBrD8L_@I?co^er{xCt3Z#rvrB4BKQ*JT!xjH$DLE*W-7j253^(~82 zj#j3aXRR4qP}ev6%BQ_=(6wg!FCW%ne*NHe_B_Z_d(6>paxM-3;%Muu9g@$IthKeP zX^V)-g>Mua5qjgvK)knAbX0%N&BX&S$ONPay<)44@vHOKzSq->xEZJATbEJ6f; zHUqip;9Of@zXXV+Xo4bGGh9F2>mnCkZX2I+$hl7U^9r@gWM!wZlHXz|3DXw6kU4`P zHlB->lR>cadl{3$CFTza&01V#87XI*xhwP0RSxR=@g&)`;{upAp2vrL7j4QbX#1&Y%T1@^@YJ;G9!C9Jor$0 zE?Mp_EhItaH>m=0F&w$+pd4%Vypi)jaqRAzQ|&8|{r$$x-cXm~gpDR7YN9=X5%@y8 zv5P?MWQI-nf$n9~zod4nu7-c(93MTEWO+6XjyW@{e~#;Z$S7LCmK^$Na0z;R?5zNx zy)S6}-l!{;=1$#*dk3Pfe}mJ1)sjO~8`0$R7bYJ$jjIc;FFg3(B`uH1 zGyFU`fW68guV_`X5UuH}eeOvcRyinVXgi>JX7$ROE%glg!dZ!JtO5R(@55$Y{_mr) z5`t#8G2>Bv3duj=R%_?+PfEsiL77CPnmzAC?k(w-i~$+Y@)_*gI-85CYK`YFa)VOS z+8@)apYjvLQsHfYT#+d6#=l z6#IOTulMTr;+lzM!ETS=TW?Vs{c|3xHqWQCJ^8-1S`i0-&K|yZR!j7(E^mm8PmG-w zCiO!>oAb!E)xIt9!IF8342UMg^akop@>y+9W7YAGVpso5DwkLc?q$vp6&wCsJIb%4 zaj@kG!|`y})+0J>G8YFEA}r+cu0!pVYRQI$-%3hEmofwg!r~xXIHl-+?e=VDf$}8% zy{so!FKDNL1w%Tblny^s2GyFX0pgqH3TW><*xJ-8^P2W{wguF9y&EEeKC&Z7v->^w4fI8UwN@R!!!SVgcT9R@mCiI;P}=^&nS=C}4f3Vf_0%LM2ouK*0Af@_tFi#P zf`kBO$!L&k>5CvT_nxxDJt!)15A7lW!E7b~v{`#zt1AsIl?koGt(e5F@vY3cm!`j(!>wAxAP2n)4 z%3Np(hFOE*DiZaU8>M+%=d~BI;={UsRm-?0f7Rn<`j3Aog3+it?Q(|`jSRk`lh&0@ zEa5__`wRM&XOnTq-bi(j+`k#{+qt@@#hm${a=p9QcEE5fDV}g5F zJ$vWfQGRMA{r4&ynMjC_39 zou?KHf#8?}4y&{s1OCI*ugv`@>zP0XQ3wfJ;1!>Fzari5wLn0Ih`=ytb68?@q#It) zvDFncP$Z1OTf7q$_DKQlzz_h7M|=p7+BLnj2lpMo+b8OA-b%w>FS9LFxM`gO{YM+7 z*_t-zJu~RLjbr)QLB}S(*->CkVWf%L?<9E9Z5dN%{#J7K0}N;YR3*sTany$@%_qle z+~l5U3Xs&PGNqth6K%(}ZnDVfTIcScJD@^z{~ardKbr^guZ=B`3UbiP-0^2bXuEGX zwVF~H?dCFFoSDm{u(0JsG>jwV&ul68h; z3$z0Y0wo9%K?RGBXO`~0!w9jy9UR?K2d)gx$Y|R2&{}2^dIHOVCxcbfw)&?jGQ%W@KxH^ZCHVuoaz{;J7znTWfFK#CX zI0=C({Fb8lrLjUyq&Oi92Vf%mi~ys+feD=0gHsw__O z9kr{H1Tb0P_~oC1q}^U-*OwJQ79qera6FLqWsL9=Zs7tL=jTADC2Ut+tbnG3>}JDQ z1u7nmKCb%P|~fvqCM)rYi(f_BK4>!P{*it2=@A)@47}=R0>x z4%aJo`5yGQGiAkCPu@8A$>D5hEj-DgaM?8D)R?Bx_{XIA{glY{B`dR>tm8jbXuTeb zJ1-QyM5@aTY--I0-J2&0Je)aXEMVfgHc%S?C+w26Sb*wlP{*@rRj`WU*l>p&NS!!%~4#bE$$&U%2h>=aQ}yP!LcwICQ}@ z(Ev0^_rB{si|0EqWys=7nnxXgSUJB8?DQl-cN~IS?TVM4j|P<)e^=T>c`eIR45nP5 zH~}P;>o_4zl`v89m_cbbl#1c(OmY9)O<#Dx{K(sdwA*gX3Xj3kUoS3$UdFKup8?q` z;#>m}`P0KjME-n1lk*et*=^8I{suBXLOnE1GbW#Xk1Ys7>)$eb^U}x$7XD>f-ccNX z$xiO=41Yjdiubo~wKf|eG-u!6#}+T=0Yi?nnt&tb=3r`5vV0R>URMZ>O4XsOAnNV@ zyRAmKUam0Q6fTLK!{zB&O59Ob&WdjOjCPWA*`L8T*bR4p;{I&C%(Rv)iq)S70;3W) z<)4qEdMrSapy5N$F2eu_%_|L|M8T=-jGk5_+{&TTp<^69v8sLeTb@~ zjftfXQLJ}BmjmI!9I4)v`Ml}UOucK=n%^fNeGfFV8~?id15f~f@MU8HSbH&_^YmrJ zMSWSp=hTT3Kmka^6_4&*H(=hb1Ih>LYSm8LS>(z1*jPlFS$%K0JJ5Q8lY30szR=?5 z+0d7(B(9^1L%D?sKER&F$wb{dID(G`>NHgv!^z>HifU!xsRyVk%ANO>_NgHqIDzH> zuFMAbBBBupea1D<-iVTynG4whmmX*R;4q*yxEX{qzhNn+322+;sPm3pGH17UF_z3tnPg=tyfjEOa|d{e-I> zJvdFe0(QPp+?j*%GtjgKF)9_d0>r8=ptE;RRic7l$HQcux@#OqY?g-8Hh2nu0>_Pl zS*oBd3gytEUh4#6sS|wlH+{I4A@-wSPqKUS9m2`!g{Z++SE~Rl@u5)w!VkYlpX{!< zovQQgTlP7Z3T@t`Ss*!Nq|X!-ziK!O_cne%qg)*tEp0RmMf35~KfXPloYmYId`c^x zerKE_x@yKMw64;U+Z9$PIW{~<2@Rt7giW6KHI#IC%V-Q6CIn&Wi!gJ#|DCrRoFP#} z@P7L#56_{^O(%;8*gIe^QRb5b-@d|d1azWBVeGze_YNFr!nm%nzO&N@kY6mPRx0o% z5rDf&*l#OhkV`=9KA&B{VouyxNV3-u;5WbGw8Y2?c#bj~aDZM_5qhlrNI?jETFZec z(Lr#c1&J~e@Xpy0f)2gnm!K^H+g#iQ3z#N7nE@CAh{NY{ZP~l$LX`$u&2K=ECGE-D zK$Zgq!+-%Y1jZoxSUfKS6~%CA7O0L(fI~=N-ulfz>#gUSyxds&CdFMrNzYJgYTJzv zW(Zxunc4SQ{Rqo9@&IN9wZhyu1_^YIZk)e%We3Edqi`?4Op}Sc{bCo`AuF zh_MJfWnUb)?B?qY#kGGN`LKs)$7=~Se)Zkrw>%|l1G-C>I}7@-NVzAi9lcUn@jovT z{FS0Zm~@{CyG!+H%qb>d89McaC9K#dN)I-w$1?k zAP2!acfL{e;e^xWk7eTL2_yKOLnl%jxaKd8kLnS#93zEaO$()4gA{xp7|+T5R4Ds1 z%XgLIp5=sxD0fx&y3uq`Y)$QZ`Q%q|K9%JZ%K53N)wc;AxKj@|Yx4D-?l#XvlU1Gr&?3wyCs=Pph3n5U6y`68;!fveHM3Bq!&(f_;xd~W*!TC<2cAJ5XGaGWI!Yq z>Rq~i{W@-nq>J-&2%D-B7JX24eg;GcKAhx=_@9Nc4Vp_Ohwvha(QVxX5Qaef7Yy7= zF|yE@ExNLsMxF!1oc2}$Tfw$|&bu3ZdQj!NXJfnY6_DUT(sdxj#xn+K@&Yf*23RDB zG(j|2kl?6xWNdphEmtGZZTChWYcuxYRSSs`&y)jW2O!8XBPT&?_ZAq9X#4_VF_`H2u}X#gGcap47JZ$%b<; zmyH=xDoLLEx08cb-`^q(+neBAl04ADzL{6r`fS5!d9Ls#6goHl*_`h_n*d`SjSdek z5?W_NKTFfu6;VhQ=Y~Pu_&Alol-BeI95ewCgc!K7UEoig4Egm=2}pNVAOOqac-PHb zUx5F10d&YKE2DV-{{21m@tK*}c2r5b7&rw6@#FraZ@UQqlnA~xK4estNOY3OG}u7e?iE+ z;U_6%qSPd*f!h)kcKUXt8Zcuv#B6g#@9F^!VggY!@<=@Uab@WY#z*Hi;7u05pj0>* z5XTMexC5kx^P#Kif`WpOU@9hH_Ql9U9ZdwdpFY9**)UK?>2Y&fKsCI6%=l!8S#W(H zRJ|xIShz!l(U=y0YL(L%-~TK)oDOH0@Z8zC8%N8{1NVB6CG9BwjbHnpaNQa-!fv3n z#RFvv2!}VMszv&777+^dmQyQkssYDdu(>$w(&hDJAfxR{z<}bl>Y~jAQRww6kTFw= znSiFMGKZU}&#fUyuPe{`bo+!b@-a|0hHYI331~|>+LS&I;yVS!Q_--s^EpgkXAYvj ztW;~UVH+jIYIjcV_{(?6Hol$CLiO#+3t`8+8{0Fnl z&l~VSws|AZaT*mGsF7NMb4dB9B`dJ24=-taX4<~o}ObiAif~;u-m+k)i4QCPqA+}e! z00;YIJC^rG+!pheDqnO)iNer&ab6$u49l#~>uQawG1M*l$842_KH+s)hMiTLK@;Dc zuDM7`-@4jFh*d}}Ev%m2K*-j?FlJ#~G1va+yqVB%Aj!@4T!95*5`xOU_iSdQ`#F>^ zC6~hdhS?q^bB8P;mHD}w%dqs14o=By?$o2s3`DL_+G`P~WSnEWm<0}0J_N)j^dG;2 zmFHwkpGBK1Yj@hNs9aicefdEL4jFD~-H$WlGx|Ja~ z3-c;L2jCJ|i8dH8y(_`|n#kAF`I9z!^7uoDz@(3GBACDX+NI3y=lb;%D4OX0b~J!_ zi}?B9x%7&M^FTiUsLLp;cd8h<4HgZjtQCp^Bcb?zCqQi+_i zp_)ziG>aX{Ctv z#Dfm!JK+YAz?M=|DIwXPHz0^XyW;Ym2hL>(&X-15s^*_)-Rw)|eT<8+sA@AKARiir zfumNKG&S)a_YU=T6-U`j?2%aCapYp5S}#7dxeGUKsof%S`4d1RS**fKuPHm80UQ3N zTI_3Qb)Lt!70}OafM9mMC0)nakNAIWoo86nSr*1Y23TOmFceWhV*@0j0jWw;DMAqG z2I*yx5+Wd?6zL@}5l{$4Y0{(w5TuDDp_8Ev9f4?2K_&rFA_*l1*c*5E+kVTFZ}++X zd+s^!`Mu|&2FEvlnKH|%JTPjRA!tP-`uq_*5GL_FdyQe#uq$V`KXiv z`6j1cK8H^4E}IJ(A!Kh+zZk{aWbep7vYU8O<`AH}XT4gG%Ubz?%O!lR zw#Iqd0_buT@W6m2tnIMPF>GB+)#1e(3Dz|fZa$hudKU;PvVM!G@8YG&g3UL;-Q1%u zykAZ)+TSVaS%>g&iJ&B4;B7K^?G;V`_K6;y)+WA5e%+E%8QQrFXq2gqOB!1>*8&0{ ze(Iy6I{9J}vd5i*=eGack7;%$!SlA8zpQPr@LTRn`nSSvdbmuLI4O~voy!sZYX@$d zE`MN9(ssypu`TmWy$P-I*KJZaR-$)O9tMzvN}TogG)|Iv=#F6Yxl8om)uHBcUv z=T7Mfo{ynAz%^KPeU7?tce4dbWw@l)AnymY&GAON`Q&qr)2mZ3vmZ1RJ4k^_oymFS z9%wZ0Hz zvR_}A#|fu0E@d;0mqQfXWnm$*CbALhyuxB$V5}$)KiNvOs>FH~yfhKtxmcvb-4+fb zJ=*ZWg9lnNzMyc>0#Y0=PX~z3J;IfSYW2}wYyf!1asdM^aB+7p{%k#r8%Z&EL418| zE$jnwCFa0J{non&?gRN9odm{@(#fYWetiZHMk%45tI|J@>FWCgAeb1cX8v`(V-_|N zu40#^tg5^b+62u~GdnnN))4)+!Aq!Rg;BB9HKhcSzjhbe06kk=_F4&8$ z6Qq0b#mho|)<$-0cZ(Om$|JB)ZHEV4SUC6i0gD570o;?vch9=Q>Fn)I|Nf-6*BpK&}4v zNvm4k_qs9-QA1e!jvfAc0gf0FBE6`&l17U5&0`vAE)6-9Ys_OSyMBqr z{&Ti!;#mE}ZP+cxgITx;`b)3R9xJ;M&WGU#Ji=s{xrnC34v(<*5;Tj%Jg&rc;P7HK zMyw!X&mg3UZ{{9Qp^e`%h9TJ9!i=0f7-bS)F;IvEiQs>TuXZ8btUFBG7B|$sfd5)F z-!An~Xr+oEV8V|sj~PJvz)g(V-C9`qe-!-(uB{^JH<|6Rw6+9VBTW%TJBBE|)t`O=h z=fDg)TwqnRBc?Vok2Bc8o>;JSm`)`~Ui6>1`h>}Z5#f%3hc6=MJX?)XLf(=Ze`m`+ z@Lx8$p`@d9?3Xsg#Rk~x@hA!DEJNGf5J!sg61GWQ+lFq2KLy;|wHM*=FDJ`CA-<3< zd>yg(t4r0~yInavTHs)YnQvOy52Kit6u#>0_2$>r0zT3#k3rP36rVcg6)5qvODAizs@|5tt-Su6LV zFLJmbRCM{?v1G>A>z8Aw2ua8Ah3=%ammZUwA+#$0c!fe&o#}D!GPwlvagjv#ysISL z{Sw}SwR{4vo5LB}l0P!q2vXd1eMrY_C)VmF)b}63oWGu8j|A12d}kS*=D_AP*bc=O z&ps2H_SO~$G^sUUMpJz{v2A|(0NO`7*FdkB(B&J&+8c8&X}1&*85UWvp44ws+n)Ms3NevLz4O4A}+mmos|Arb%lK- z5F{M3T65bnVY#V&!T8$%;Dr8Dkh3jx93a$}Y^7w$7Rf!g5)mA8^&k1{>z&e2X%KlW zhjQTD5)||_lHw0u`WIklyR@l{gGxXt;(?fcOiqknm-ypDtj6F#NeP@yku>e8S4Nig$BjuFqw*Es^6!&Vw5eVn z%4~yMrh%8@=I?YfU>F$oj`%X87q@qGZN9;4o)OWQI!&8=BRi{C_#7H}s^3i~rD)Vx zp}$p*Y%~y5jEh6!yT$jP=EzEUsSBKUy0^ur+k7Wk`4{eydPvldF%+4%eT3d)oEJxSNTbr6=$oIz%?XDYi z`dHmcEK`#sRTSL9H8cDOJ}A+#xy?T8dHoi+M2pl&vWp7+1l@5^i1W_$;@~@&MY%+m z9pi^cy4mIq168)&MWPU`BRuyF;6yu|1|LwAl3gtu_`is3MZts`dWKTRG>T~wbN4DJTCb6_miWc4`c$0FjMK+z2WD&(3D}|Gw6s! zR3AluJ|DXN92XCUK%(y`AktRTYo%ya=(x^BsQrI!skV>!9?|`K-YG`74b+I&e`9WW zZf-}8&uIvx@i76$96>?ZQ+Ac8RJL&VS;ynnc&RGOuKn)8Mqd`HkL?^;a^zE@D$~<9 z(vYJ5=aBJGK(2cU(f*osgBbs{D&-n+xfo#YVC|3Ve*8vvM|pp`*6Y`}C-@*;5&BPX0}tdOIZepc{gohC|6ayFzsBPKDUeRYiK_2lXgH f^>-Wg^?81rsC{#^y>5{E=$5I`4a2&tZgKwxbK2gA literal 0 HcmV?d00001 -- GitLab From 3c997e99659ef43f1cd95fe472beffeb94c33f90 Mon Sep 17 00:00:00 2001 From: M4xw Date: Mon, 4 Jun 2018 20:24:34 +0200 Subject: [PATCH 060/211] Enable nxlink on first video init. --- gfx/drivers/switch_gfx.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index e9a728bb3a..d35562e124 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -125,6 +125,7 @@ typedef struct uint32_t last_height; } switch_video_t; +static bool firstInitDone = false; static void *switch_init(const video_info_t *video, const input_driver_t **input, void **input_data) { @@ -138,6 +139,14 @@ static void *switch_init(const video_info_t *video, gfxInitResolution(1280, 720); gfxInitDefault(); + + if (!firstInitDone) + { + firstInitDone = true; + socketInitializeDefault(); + nxlinkStdio(); + } + //gfxConfigureResolution(1280, 720); //consoleInit(NULL); @@ -182,6 +191,7 @@ static bool switch_frame(void *data, const void *frame, const char *msg, video_frame_info_t *video_info) { + exit(0); static uint64_t last_frame = 0; unsigned x, y; @@ -457,7 +467,7 @@ static void switch_overlay_enable(void *data, bool state) if (!swa) return; - + swa->overlay_enabled = state; } -- GitLab From 844b2d9eab391db13023a53b6613af2f8fc6e2c6 Mon Sep 17 00:00:00 2001 From: M4xw Date: Mon, 4 Jun 2018 20:39:59 +0200 Subject: [PATCH 061/211] Well, for some reason it does kill video if placed there. --- gfx/drivers/switch_gfx.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index d35562e124..e35a450e15 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -140,12 +140,12 @@ static void *switch_init(const video_info_t *video, gfxInitDefault(); - if (!firstInitDone) - { - firstInitDone = true; - socketInitializeDefault(); - nxlinkStdio(); - } + //if (!firstInitDone) + //{ + // firstInitDone = true; + // socketInitializeDefault(); + // nxlinkStdio(); + //} //gfxConfigureResolution(1280, 720); -- GitLab From ae9ff1c286509e99f379f512af4fb28787951312 Mon Sep 17 00:00:00 2001 From: M4xw Date: Mon, 4 Jun 2018 20:42:48 +0200 Subject: [PATCH 062/211] I am blind. --- gfx/drivers/switch_gfx.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index e35a450e15..f30c75ab1d 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -140,12 +140,12 @@ static void *switch_init(const video_info_t *video, gfxInitDefault(); - //if (!firstInitDone) - //{ - // firstInitDone = true; - // socketInitializeDefault(); - // nxlinkStdio(); - //} + if (!firstInitDone) + { + firstInitDone = true; + socketInitializeDefault(); + nxlinkStdio(); + } //gfxConfigureResolution(1280, 720); @@ -191,7 +191,6 @@ static bool switch_frame(void *data, const void *frame, const char *msg, video_frame_info_t *video_info) { - exit(0); static uint64_t last_frame = 0; unsigned x, y; -- GitLab From 6cc2a18ab11fdd92887a7a6e8ffd7eb82f51de0b Mon Sep 17 00:00:00 2001 From: M4xw Date: Mon, 4 Jun 2018 22:01:22 +0200 Subject: [PATCH 063/211] Add printmsg --- gfx/drivers/switch_gfx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gfx/drivers/switch_gfx.c b/gfx/drivers/switch_gfx.c index f30c75ab1d..2b3c714be6 100644 --- a/gfx/drivers/switch_gfx.c +++ b/gfx/drivers/switch_gfx.c @@ -286,8 +286,8 @@ static bool switch_frame(void *data, const void *frame, } } - //if (msg && strlen(msg) > 0) - // printf("message: %s\n", msg); + if (msg && strlen(msg) > 0) + printf("message: %s\n", msg); width = 0; height = 0; -- GitLab From 4ab8fd76c2033cb70d2a3f19c1c078ceab96ccd4 Mon Sep 17 00:00:00 2001 From: M4xw Date: Tue, 5 Jun 2018 23:36:52 +0200 Subject: [PATCH 064/211] Remove slowmotion, thought I commited that. --- retroarch.cfg | 5596 ++++++++++++++++++++++++------------------------- 1 file changed, 2798 insertions(+), 2798 deletions(-) diff --git a/retroarch.cfg b/retroarch.cfg index 03d1ad4f08..d90fded7b4 100644 --- a/retroarch.cfg +++ b/retroarch.cfg @@ -1,2798 +1,2798 @@ -core_updater_buildbot_assets_url = "http://buildbot.libretro.com/assets/" -input_overlay = "./NintendoSNES.cfg" -screenshot_directory = "default" -system_directory = "default" -video_shader_dir = "default" -video_filter_dir = "default" -core_assets_directory = "default" -assets_directory = "default" -dynamic_wallpapers_directory = "default" -thumbnails_directory = "default" -playlist_directory = "default" -audio_filter_dir = "default" -savefile_directory = "default" -savestate_directory = "default" -rgui_browser_directory = "/switch" -rgui_config_directory = "/switch" -video_driver = "switch" -record_driver = "null" -camera_driver = "null" -wifi_driver = "null" -location_driver = "null" -menu_driver = "rgui" -audio_driver = "switch" -audio_resampler = "sinc" -input_driver = "switch" -input_joypad_driver = "switch" -led_driver = "null" -netplay_mitm_server = "nyc" -video_aspect_ratio = "-1.000000" -video_scale = "3.000000" -video_refresh_rate = "59.940060" -audio_rate_control_delta = "0.005000" -audio_max_timing_skew = "0.050000" -audio_volume = "0.000000" -audio_mixer_volume = "0.000000" -menu_wallpaper_opacity = "0.300000" -menu_framebuffer_opacity = "0.900000" -menu_footer_opacity = "1.000000" -menu_header_opacity = "1.000000" -video_message_pos_x = "0.050000" -video_message_pos_y = "0.050000" -video_font_size = "32.000000" -fastforward_ratio = "0.000000" -slowmotion_ratio = "3.000000" -input_axis_threshold = "0.500000" -video_msg_bgcolor_opacity = "1.000000" -state_slot = "0" -input_bind_timeout = "5" -input_turbo_period = "6" -input_duty_cycle = "3" -input_max_users = "5" -input_menu_toggle_gamepad_combo = "2" -audio_latency = "64" -audio_resampler_quality = "3" -audio_block_frames = "0" -rewind_granularity = "1" -autosave_interval = "0" -libretro_log_level = "1" -keyboard_gamepad_mapping_type = "1" -input_poll_type_behavior = "2" -video_monitor_index = "0" -video_fullscreen_x = "0" -video_fullscreen_y = "0" -video_window_x = "0" -video_window_y = "0" -video_window_opacity = "100" -dpi_override_value = "200" -menu_thumbnails = "3" -materialui_menu_color_theme = "0" -menu_shader_pipeline = "2" -audio_out_rate = "48000" -custom_viewport_width = "1280" -crt_switch_resolution_super = "2560" -custom_viewport_height = "720" -custom_viewport_x = "0" -custom_viewport_y = "0" -content_history_size = "100" -video_hard_sync_frames = "0" -video_frame_delay = "0" -video_max_swapchain_images = "3" -video_swap_interval = "1" -video_rotation = "0" -aspect_ratio_index = "21" -bundle_assets_extract_version_current = "0" -bundle_assets_extract_last_version = "0" -input_overlay_show_physical_inputs_port = "0" -video_msg_bgcolor_red = "0" -video_msg_bgcolor_green = "0" -video_msg_bgcolor_blue = "0" -run_ahead_frames = "1" -input_device_p1 = "0" -input_player1_joypad_index = "0" -input_libretro_device_p1 = "1" -input_player1_analog_dpad_mode = "1" -input_player1_mouse_index = "0" -input_device_p2 = "0" -input_player2_joypad_index = "1" -input_libretro_device_p2 = "1" -input_player2_analog_dpad_mode = "0" -input_player2_mouse_index = "0" -input_device_p3 = "0" -input_player3_joypad_index = "2" -input_libretro_device_p3 = "1" -input_player3_analog_dpad_mode = "0" -input_player3_mouse_index = "0" -input_device_p4 = "0" -input_player4_joypad_index = "3" -input_libretro_device_p4 = "1" -input_player4_analog_dpad_mode = "0" -input_player4_mouse_index = "0" -input_device_p5 = "0" -input_player5_joypad_index = "4" -input_libretro_device_p5 = "1" -input_player5_analog_dpad_mode = "0" -input_player5_mouse_index = "0" -input_device_p6 = "0" -input_player6_joypad_index = "5" -input_libretro_device_p6 = "1" -input_player6_analog_dpad_mode = "0" -input_player6_mouse_index = "0" -input_device_p7 = "0" -input_player7_joypad_index = "6" -input_libretro_device_p7 = "1" -input_player7_analog_dpad_mode = "0" -input_player7_mouse_index = "0" -input_device_p8 = "0" -input_player8_joypad_index = "7" -input_libretro_device_p8 = "1" -input_player8_analog_dpad_mode = "0" -input_player8_mouse_index = "0" -input_device_p9 = "0" -input_player9_joypad_index = "8" -input_libretro_device_p9 = "1" -input_player9_analog_dpad_mode = "0" -input_player9_mouse_index = "0" -input_device_p10 = "0" -input_player10_joypad_index = "9" -input_libretro_device_p10 = "1" -input_player10_analog_dpad_mode = "0" -input_player10_mouse_index = "0" -input_device_p11 = "0" -input_player11_joypad_index = "10" -input_libretro_device_p11 = "1" -input_player11_analog_dpad_mode = "0" -input_player11_mouse_index = "0" -input_device_p12 = "0" -input_player12_joypad_index = "11" -input_libretro_device_p12 = "1" -input_player12_analog_dpad_mode = "0" -input_player12_mouse_index = "0" -input_device_p13 = "0" -input_player13_joypad_index = "12" -input_libretro_device_p13 = "1" -input_player13_analog_dpad_mode = "0" -input_player13_mouse_index = "0" -input_device_p14 = "0" -input_player14_joypad_index = "13" -input_libretro_device_p14 = "1" -input_player14_analog_dpad_mode = "0" -input_player14_mouse_index = "0" -input_device_p15 = "0" -input_player15_joypad_index = "14" -input_libretro_device_p15 = "1" -input_player15_analog_dpad_mode = "0" -input_player15_mouse_index = "0" -input_device_p16 = "0" -input_player16_joypad_index = "15" -input_libretro_device_p16 = "1" -input_player16_analog_dpad_mode = "0" -input_player16_mouse_index = "0" -automatically_add_content_to_playlist = "false" -ui_companion_start_on_boot = "true" -ui_companion_enable = "false" -ui_companion_toggle = "false" -desktop_menu_enable = "false" -video_gpu_record = "false" -input_remap_binds_enable = "true" -all_users_control_menu = "false" -menu_swap_ok_cancel_buttons = "false" -input_descriptor_label_show = "true" -input_descriptor_hide_unbound = "false" -load_dummy_on_core_shutdown = "true" -check_firmware_before_loading = "false" -builtin_mediaplayer_enable = "false" -builtin_imageviewer_enable = "true" -fps_show = "false" -statistics_show = "false" -framecount_show = "true" -ui_menubar_enable = "true" -suspend_screensaver_enable = "true" -rewind_enable = "false" -run_ahead_enabled = "false" -run_ahead_secondary_instance = "false" -run_ahead_hide_warnings = "false" -audio_sync = "true" -video_shader_enable = "false" -video_shader_watch_files = "false" -video_aspect_ratio_auto = "false" -video_allow_rotate = "true" -video_windowed_fullscreen = "true" -video_crop_overscan = "true" -video_scale_integer = "false" -video_smooth = "false" -video_force_aspect = "false" -video_threaded = "false" -video_shared_context = "false" -auto_screenshot_filename = "true" -video_force_srgb_disable = "false" -video_fullscreen = "false" -bundle_assets_extract_enable = "false" -video_vsync = "false" -video_hard_sync = "false" -video_black_frame_insertion = "false" -crt_switch_resolution = "false" -video_disable_composition = "false" -pause_nonactive = "true" -video_gpu_screenshot = "true" -video_post_filter_record = "false" -keyboard_gamepad_enable = "true" -core_set_supports_no_game_enable = "true" -audio_enable = "true" -audio_enable_menu = "false" -audio_mute_enable = "false" -audio_mixer_mute_enable = "false" -location_allow = "false" -video_font_enable = "true" -core_updater_auto_extract_archive = "true" -camera_allow = "false" -menu_unified_controls = "false" -menu_throttle_framerate = "true" -menu_linear_filter = "true" -menu_horizontal_animation = "true" -dpi_override_enable = "false" -menu_pause_libretro = "true" -menu_mouse_enable = "false" -menu_pointer_enable = "false" -menu_timedate_enable = "true" -menu_battery_level_enable = "true" -menu_core_enable = "true" -menu_dynamic_wallpaper_enable = "false" -quick_menu_show_take_screenshot = "true" -quick_menu_show_save_load_state = "true" -quick_menu_show_undo_save_load_state = "true" -quick_menu_show_add_to_favorites = "true" -quick_menu_show_options = "true" -quick_menu_show_controls = "true" -quick_menu_show_cheats = "true" -quick_menu_show_shaders = "true" -quick_menu_show_save_core_overrides = "true" -quick_menu_show_save_game_overrides = "true" -quick_menu_show_save_content_dir_overrides = "true" -quick_menu_show_information = "true" -kiosk_mode_enable = "false" -content_show_settings = "true" -content_show_favorites = "true" -content_show_music = "true" -content_show_history = "true" -content_show_add = "true" -content_show_playlists = "true" -menu_show_load_core = "true" -menu_show_load_content = "true" -menu_show_information = "true" -menu_show_configurations = "true" -menu_show_latency = "true" -menu_show_rewind = "true" -menu_show_overlays = "true" -menu_show_help = "true" -menu_show_quit_retroarch = "true" -menu_show_reboot = "true" -menu_show_online_updater = "true" -menu_show_core_updater = "true" -filter_by_current_core = "false" -rgui_show_start_screen = "false" -menu_navigation_wraparound_enable = "true" -menu_navigation_browser_filter_supported_extensions_enable = "true" -menu_show_advanced_settings = "false" -rgui_background_filler_thickness_enable = "true" -rgui_border_filler_thickness_enable = "true" -rgui_border_filler_enable = "true" -block_sram_overwrite = "false" -savestate_auto_index = "false" -savestate_auto_save = "false" -savestate_auto_load = "false" -savestate_thumbnail_enable = "false" -history_list_enable = "true" -playlist_entry_remove = "true" -playlist_entry_rename = "true" -game_specific_options = "true" -auto_overrides_enable = "true" -auto_remaps_enable = "true" -auto_shaders_enable = "true" -sort_savefiles_enable = "false" -sort_savestates_enable = "false" -config_save_on_exit = "true" -show_hidden_files = "false" -input_autodetect_enable = "true" -audio_rate_control = "true" -savestates_in_content_dir = "false" -savefiles_in_content_dir = "false" -systemfiles_in_content_dir = "false" -screenshots_in_content_dir = "false" -video_msg_bgcolor_enable = "false" -video_window_show_decorations = "true" -log_verbosity = "false" -perfcnt_enable = "false" -video_message_color = "ffff00" -menu_entry_normal_color = "ffffffff" -menu_entry_hover_color = "ff64ff64" -menu_title_color = "ff64ff64" -gamma_correction = "false" -flicker_filter_enable = "false" -soft_filter_enable = "false" -soft_filter_index = "0" -current_resolution_id = "0" -flicker_filter_index = "0" -input_player1_b = "z" -input_player1_b_btn = "nul" -input_player1_b_axis = "nul" -input_player1_b_mbtn = "nul" -input_player1_y = "a" -input_player1_y_btn = "nul" -input_player1_y_axis = "nul" -input_player1_y_mbtn = "nul" -input_player1_select = "rshift" -input_player1_select_btn = "nul" -input_player1_select_axis = "nul" -input_player1_select_mbtn = "nul" -input_player1_start = "enter" -input_player1_start_btn = "nul" -input_player1_start_axis = "nul" -input_player1_start_mbtn = "nul" -input_player1_up = "up" -input_player1_up_btn = "nul" -input_player1_up_axis = "nul" -input_player1_up_mbtn = "nul" -input_player1_down = "down" -input_player1_down_btn = "nul" -input_player1_down_axis = "nul" -input_player1_down_mbtn = "nul" -input_player1_left = "left" -input_player1_left_btn = "nul" -input_player1_left_axis = "nul" -input_player1_left_mbtn = "nul" -input_player1_right = "right" -input_player1_right_btn = "nul" -input_player1_right_axis = "nul" -input_player1_right_mbtn = "nul" -input_player1_a = "x" -input_player1_a_btn = "nul" -input_player1_a_axis = "nul" -input_player1_a_mbtn = "nul" -input_player1_x = "s" -input_player1_x_btn = "nul" -input_player1_x_axis = "nul" -input_player1_x_mbtn = "nul" -input_player1_l = "nul" -input_player1_l_btn = "8" -input_player1_l_axis = "nul" -input_player1_l_mbtn = "nul" -input_player1_r = "nul" -input_player1_r_btn = "9" -input_player1_r_axis = "nul" -input_player1_r_mbtn = "nul" -input_player1_l2 = "nul" -input_player1_l2_btn = "6" -input_player1_l2_axis = "nul" -input_player1_l2_mbtn = "nul" -input_player1_r2 = "nul" -input_player1_r2_btn = "7" -input_player1_r2_axis = "nul" -input_player1_r2_mbtn = "nul" -input_player1_l3 = "nul" -input_player1_l3_btn = "nul" -input_player1_l3_axis = "nul" -input_player1_l3_mbtn = "nul" -input_player1_r3 = "nul" -input_player1_r3_btn = "nul" -input_player1_r3_axis = "nul" -input_player1_r3_mbtn = "nul" -input_player1_l_x_plus = "nul" -input_player1_l_x_plus_btn = "nul" -input_player1_l_x_plus_axis = "nul" -input_player1_l_x_plus_mbtn = "nul" -input_player1_l_x_minus = "nul" -input_player1_l_x_minus_btn = "nul" -input_player1_l_x_minus_axis = "nul" -input_player1_l_x_minus_mbtn = "nul" -input_player1_l_y_plus = "nul" -input_player1_l_y_plus_btn = "nul" -input_player1_l_y_plus_axis = "nul" -input_player1_l_y_plus_mbtn = "nul" -input_player1_l_y_minus = "nul" -input_player1_l_y_minus_btn = "nul" -input_player1_l_y_minus_axis = "nul" -input_player1_l_y_minus_mbtn = "nul" -input_player1_r_x_plus = "nul" -input_player1_r_x_plus_btn = "nul" -input_player1_r_x_plus_axis = "nul" -input_player1_r_x_plus_mbtn = "nul" -input_player1_r_x_minus = "nul" -input_player1_r_x_minus_btn = "nul" -input_player1_r_x_minus_axis = "nul" -input_player1_r_x_minus_mbtn = "nul" -input_player1_r_y_plus = "nul" -input_player1_r_y_plus_btn = "nul" -input_player1_r_y_plus_axis = "nul" -input_player1_r_y_plus_mbtn = "nul" -input_player1_r_y_minus = "nul" -input_player1_r_y_minus_btn = "nul" -input_player1_r_y_minus_axis = "nul" -input_player1_r_y_minus_mbtn = "nul" -input_player1_gun_trigger = "nul" -input_player1_gun_trigger_btn = "nul" -input_player1_gun_trigger_axis = "nul" -input_player1_gun_trigger_mbtn = "nul" -input_player1_gun_offscreen_shot = "nul" -input_player1_gun_offscreen_shot_btn = "nul" -input_player1_gun_offscreen_shot_axis = "nul" -input_player1_gun_offscreen_shot_mbtn = "nul" -input_player1_gun_aux_a = "nul" -input_player1_gun_aux_a_btn = "nul" -input_player1_gun_aux_a_axis = "nul" -input_player1_gun_aux_a_mbtn = "nul" -input_player1_gun_aux_b = "nul" -input_player1_gun_aux_b_btn = "nul" -input_player1_gun_aux_b_axis = "nul" -input_player1_gun_aux_b_mbtn = "nul" -input_player1_gun_aux_c = "nul" -input_player1_gun_aux_c_btn = "nul" -input_player1_gun_aux_c_axis = "nul" -input_player1_gun_aux_c_mbtn = "nul" -input_player1_gun_start = "nul" -input_player1_gun_start_btn = "nul" -input_player1_gun_start_axis = "nul" -input_player1_gun_start_mbtn = "nul" -input_player1_gun_select = "nul" -input_player1_gun_select_btn = "nul" -input_player1_gun_select_axis = "nul" -input_player1_gun_select_mbtn = "nul" -input_player1_gun_dpad_up = "nul" -input_player1_gun_dpad_up_btn = "nul" -input_player1_gun_dpad_up_axis = "nul" -input_player1_gun_dpad_up_mbtn = "nul" -input_player1_gun_dpad_down = "nul" -input_player1_gun_dpad_down_btn = "nul" -input_player1_gun_dpad_down_axis = "nul" -input_player1_gun_dpad_down_mbtn = "nul" -input_player1_gun_dpad_left = "nul" -input_player1_gun_dpad_left_btn = "nul" -input_player1_gun_dpad_left_axis = "nul" -input_player1_gun_dpad_left_mbtn = "nul" -input_player1_gun_dpad_right = "nul" -input_player1_gun_dpad_right_btn = "nul" -input_player1_gun_dpad_right_axis = "nul" -input_player1_gun_dpad_right_mbtn = "nul" -input_player1_turbo = "nul" -input_player1_turbo_btn = "nul" -input_player1_turbo_axis = "nul" -input_player1_turbo_mbtn = "nul" -input_toggle_fast_forward = "nul" -input_toggle_fast_forward_btn = "nul" -input_toggle_fast_forward_axis = "nul" -input_toggle_fast_forward_mbtn = "nul" -input_hold_fast_forward = "nul" -input_hold_fast_forward_btn = "nul" -input_hold_fast_forward_axis = "nul" -input_hold_fast_forward_mbtn = "nul" -input_toggle_slowmotion = "nul" -input_toggle_slowmotion_btn = "nul" -input_toggle_slowmotion_axis = "+2" -input_toggle_slowmotion_mbtn = "nul" -input_hold_slowmotion = "nul" -input_hold_slowmotion_btn = "nul" -input_hold_slowmotion_axis = "nul" -input_hold_slowmotion_mbtn = "nul" -input_load_state = "nul" -input_load_state_btn = "6" -input_load_state_axis = "nul" -input_load_state_mbtn = "nul" -input_save_state = "nul" -input_save_state_btn = "7" -input_save_state_axis = "nul" -input_save_state_mbtn = "nul" -input_toggle_fullscreen = "f" -input_toggle_fullscreen_btn = "nul" -input_toggle_fullscreen_axis = "nul" -input_toggle_fullscreen_mbtn = "nul" -input_exit_emulator = "escape" -input_exit_emulator_btn = "nul" -input_exit_emulator_axis = "nul" -input_exit_emulator_mbtn = "nul" -input_state_slot_increase = "f7" -input_state_slot_increase_btn = "nul" -input_state_slot_increase_axis = "nul" -input_state_slot_increase_mbtn = "nul" -input_state_slot_decrease = "f6" -input_state_slot_decrease_btn = "nul" -input_state_slot_decrease_axis = "nul" -input_state_slot_decrease_mbtn = "nul" -input_rewind = "nul" -input_rewind_btn = "nul" -input_rewind_axis = "-2" -input_rewind_mbtn = "nul" -input_movie_record_toggle = "o" -input_movie_record_toggle_btn = "nul" -input_movie_record_toggle_axis = "nul" -input_movie_record_toggle_mbtn = "nul" -input_pause_toggle = "p" -input_pause_toggle_btn = "nul" -input_pause_toggle_axis = "nul" -input_pause_toggle_mbtn = "nul" -input_frame_advance = "k" -input_frame_advance_btn = "nul" -input_frame_advance_axis = "nul" -input_frame_advance_mbtn = "nul" -input_reset = "h" -input_reset_btn = "nul" -input_reset_axis = "nul" -input_reset_mbtn = "nul" -input_shader_next = "m" -input_shader_next_btn = "nul" -input_shader_next_axis = "nul" -input_shader_next_mbtn = "nul" -input_shader_prev = "n" -input_shader_prev_btn = "nul" -input_shader_prev_axis = "nul" -input_shader_prev_mbtn = "nul" -input_cheat_index_plus = "y" -input_cheat_index_plus_btn = "nul" -input_cheat_index_plus_axis = "nul" -input_cheat_index_plus_mbtn = "nul" -input_cheat_index_minus = "t" -input_cheat_index_minus_btn = "nul" -input_cheat_index_minus_axis = "nul" -input_cheat_index_minus_mbtn = "nul" -input_cheat_toggle = "u" -input_cheat_toggle_btn = "nul" -input_cheat_toggle_axis = "nul" -input_cheat_toggle_mbtn = "nul" -input_screenshot = "f8" -input_screenshot_btn = "nul" -input_screenshot_axis = "nul" -input_screenshot_mbtn = "nul" -input_audio_mute = "f9" -input_audio_mute_btn = "nul" -input_audio_mute_axis = "nul" -input_audio_mute_mbtn = "nul" -input_osk_toggle = "f12" -input_osk_toggle_btn = "nul" -input_osk_toggle_axis = "nul" -input_osk_toggle_mbtn = "nul" -input_netplay_game_watch = "i" -input_netplay_game_watch_btn = "nul" -input_netplay_game_watch_axis = "nul" -input_netplay_game_watch_mbtn = "nul" -input_enable_hotkey = "nul" -input_enable_hotkey_btn = "nul" -input_enable_hotkey_axis = "nul" -input_enable_hotkey_mbtn = "nul" -input_volume_up = "add" -input_volume_up_btn = "nul" -input_volume_up_axis = "nul" -input_volume_up_mbtn = "nul" -input_volume_down = "subtract" -input_volume_down_btn = "nul" -input_volume_down_axis = "nul" -input_volume_down_mbtn = "nul" -input_overlay_next = "nul" -input_overlay_next_btn = "nul" -input_overlay_next_axis = "nul" -input_overlay_next_mbtn = "nul" -input_disk_eject_toggle = "nul" -input_disk_eject_toggle_btn = "nul" -input_disk_eject_toggle_axis = "nul" -input_disk_eject_toggle_mbtn = "nul" -input_disk_next = "nul" -input_disk_next_btn = "nul" -input_disk_next_axis = "nul" -input_disk_next_mbtn = "nul" -input_disk_prev = "nul" -input_disk_prev_btn = "nul" -input_disk_prev_axis = "nul" -input_disk_prev_mbtn = "nul" -input_grab_mouse_toggle = "f11" -input_grab_mouse_toggle_btn = "nul" -input_grab_mouse_toggle_axis = "nul" -input_grab_mouse_toggle_mbtn = "nul" -input_game_focus_toggle = "scroll_lock" -input_game_focus_toggle_btn = "nul" -input_game_focus_toggle_axis = "nul" -input_game_focus_toggle_mbtn = "nul" -input_desktop_menu_toggle = "f5" -input_desktop_menu_toggle_btn = "nul" -input_desktop_menu_toggle_axis = "nul" -input_desktop_menu_toggle_mbtn = "nul" -input_menu_toggle = "f1" -input_menu_toggle_btn = "nul" -input_menu_toggle_axis = "nul" -input_menu_toggle_mbtn = "nul" -input_player2_b = "nul" -input_player2_b_btn = "nul" -input_player2_b_axis = "nul" -input_player2_b_mbtn = "nul" -input_player2_y = "nul" -input_player2_y_btn = "nul" -input_player2_y_axis = "nul" -input_player2_y_mbtn = "nul" -input_player2_select = "nul" -input_player2_select_btn = "nul" -input_player2_select_axis = "nul" -input_player2_select_mbtn = "nul" -input_player2_start = "nul" -input_player2_start_btn = "nul" -input_player2_start_axis = "nul" -input_player2_start_mbtn = "nul" -input_player2_up = "nul" -input_player2_up_btn = "nul" -input_player2_up_axis = "nul" -input_player2_up_mbtn = "nul" -input_player2_down = "nul" -input_player2_down_btn = "nul" -input_player2_down_axis = "nul" -input_player2_down_mbtn = "nul" -input_player2_left = "nul" -input_player2_left_btn = "nul" -input_player2_left_axis = "nul" -input_player2_left_mbtn = "nul" -input_player2_right = "nul" -input_player2_right_btn = "nul" -input_player2_right_axis = "nul" -input_player2_right_mbtn = "nul" -input_player2_a = "nul" -input_player2_a_btn = "nul" -input_player2_a_axis = "nul" -input_player2_a_mbtn = "nul" -input_player2_x = "nul" -input_player2_x_btn = "nul" -input_player2_x_axis = "nul" -input_player2_x_mbtn = "nul" -input_player2_l = "nul" -input_player2_l_btn = "nul" -input_player2_l_axis = "nul" -input_player2_l_mbtn = "nul" -input_player2_r = "nul" -input_player2_r_btn = "nul" -input_player2_r_axis = "nul" -input_player2_r_mbtn = "nul" -input_player2_l2 = "nul" -input_player2_l2_btn = "nul" -input_player2_l2_axis = "nul" -input_player2_l2_mbtn = "nul" -input_player2_r2 = "nul" -input_player2_r2_btn = "nul" -input_player2_r2_axis = "nul" -input_player2_r2_mbtn = "nul" -input_player2_l3 = "nul" -input_player2_l3_btn = "nul" -input_player2_l3_axis = "nul" -input_player2_l3_mbtn = "nul" -input_player2_r3 = "nul" -input_player2_r3_btn = "nul" -input_player2_r3_axis = "nul" -input_player2_r3_mbtn = "nul" -input_player2_l_x_plus = "nul" -input_player2_l_x_plus_btn = "nul" -input_player2_l_x_plus_axis = "nul" -input_player2_l_x_plus_mbtn = "nul" -input_player2_l_x_minus = "nul" -input_player2_l_x_minus_btn = "nul" -input_player2_l_x_minus_axis = "nul" -input_player2_l_x_minus_mbtn = "nul" -input_player2_l_y_plus = "nul" -input_player2_l_y_plus_btn = "nul" -input_player2_l_y_plus_axis = "nul" -input_player2_l_y_plus_mbtn = "nul" -input_player2_l_y_minus = "nul" -input_player2_l_y_minus_btn = "nul" -input_player2_l_y_minus_axis = "nul" -input_player2_l_y_minus_mbtn = "nul" -input_player2_r_x_plus = "nul" -input_player2_r_x_plus_btn = "nul" -input_player2_r_x_plus_axis = "nul" -input_player2_r_x_plus_mbtn = "nul" -input_player2_r_x_minus = "nul" -input_player2_r_x_minus_btn = "nul" -input_player2_r_x_minus_axis = "nul" -input_player2_r_x_minus_mbtn = "nul" -input_player2_r_y_plus = "nul" -input_player2_r_y_plus_btn = "nul" -input_player2_r_y_plus_axis = "nul" -input_player2_r_y_plus_mbtn = "nul" -input_player2_r_y_minus = "nul" -input_player2_r_y_minus_btn = "nul" -input_player2_r_y_minus_axis = "nul" -input_player2_r_y_minus_mbtn = "nul" -input_player2_gun_trigger = "nul" -input_player2_gun_trigger_btn = "nul" -input_player2_gun_trigger_axis = "nul" -input_player2_gun_trigger_mbtn = "nul" -input_player2_gun_offscreen_shot = "nul" -input_player2_gun_offscreen_shot_btn = "nul" -input_player2_gun_offscreen_shot_axis = "nul" -input_player2_gun_offscreen_shot_mbtn = "nul" -input_player2_gun_aux_a = "nul" -input_player2_gun_aux_a_btn = "nul" -input_player2_gun_aux_a_axis = "nul" -input_player2_gun_aux_a_mbtn = "nul" -input_player2_gun_aux_b = "nul" -input_player2_gun_aux_b_btn = "nul" -input_player2_gun_aux_b_axis = "nul" -input_player2_gun_aux_b_mbtn = "nul" -input_player2_gun_aux_c = "nul" -input_player2_gun_aux_c_btn = "nul" -input_player2_gun_aux_c_axis = "nul" -input_player2_gun_aux_c_mbtn = "nul" -input_player2_gun_start = "nul" -input_player2_gun_start_btn = "nul" -input_player2_gun_start_axis = "nul" -input_player2_gun_start_mbtn = "nul" -input_player2_gun_select = "nul" -input_player2_gun_select_btn = "nul" -input_player2_gun_select_axis = "nul" -input_player2_gun_select_mbtn = "nul" -input_player2_gun_dpad_up = "nul" -input_player2_gun_dpad_up_btn = "nul" -input_player2_gun_dpad_up_axis = "nul" -input_player2_gun_dpad_up_mbtn = "nul" -input_player2_gun_dpad_down = "nul" -input_player2_gun_dpad_down_btn = "nul" -input_player2_gun_dpad_down_axis = "nul" -input_player2_gun_dpad_down_mbtn = "nul" -input_player2_gun_dpad_left = "nul" -input_player2_gun_dpad_left_btn = "nul" -input_player2_gun_dpad_left_axis = "nul" -input_player2_gun_dpad_left_mbtn = "nul" -input_player2_gun_dpad_right = "nul" -input_player2_gun_dpad_right_btn = "nul" -input_player2_gun_dpad_right_axis = "nul" -input_player2_gun_dpad_right_mbtn = "nul" -input_player2_turbo = "nul" -input_player2_turbo_btn = "nul" -input_player2_turbo_axis = "nul" -input_player2_turbo_mbtn = "nul" -input_player3_b = "nul" -input_player3_b_btn = "nul" -input_player3_b_axis = "nul" -input_player3_b_mbtn = "nul" -input_player3_y = "nul" -input_player3_y_btn = "nul" -input_player3_y_axis = "nul" -input_player3_y_mbtn = "nul" -input_player3_select = "nul" -input_player3_select_btn = "nul" -input_player3_select_axis = "nul" -input_player3_select_mbtn = "nul" -input_player3_start = "nul" -input_player3_start_btn = "nul" -input_player3_start_axis = "nul" -input_player3_start_mbtn = "nul" -input_player3_up = "nul" -input_player3_up_btn = "nul" -input_player3_up_axis = "nul" -input_player3_up_mbtn = "nul" -input_player3_down = "nul" -input_player3_down_btn = "nul" -input_player3_down_axis = "nul" -input_player3_down_mbtn = "nul" -input_player3_left = "nul" -input_player3_left_btn = "nul" -input_player3_left_axis = "nul" -input_player3_left_mbtn = "nul" -input_player3_right = "nul" -input_player3_right_btn = "nul" -input_player3_right_axis = "nul" -input_player3_right_mbtn = "nul" -input_player3_a = "nul" -input_player3_a_btn = "nul" -input_player3_a_axis = "nul" -input_player3_a_mbtn = "nul" -input_player3_x = "nul" -input_player3_x_btn = "nul" -input_player3_x_axis = "nul" -input_player3_x_mbtn = "nul" -input_player3_l = "nul" -input_player3_l_btn = "nul" -input_player3_l_axis = "nul" -input_player3_l_mbtn = "nul" -input_player3_r = "nul" -input_player3_r_btn = "nul" -input_player3_r_axis = "nul" -input_player3_r_mbtn = "nul" -input_player3_l2 = "nul" -input_player3_l2_btn = "nul" -input_player3_l2_axis = "nul" -input_player3_l2_mbtn = "nul" -input_player3_r2 = "nul" -input_player3_r2_btn = "nul" -input_player3_r2_axis = "nul" -input_player3_r2_mbtn = "nul" -input_player3_l3 = "nul" -input_player3_l3_btn = "nul" -input_player3_l3_axis = "nul" -input_player3_l3_mbtn = "nul" -input_player3_r3 = "nul" -input_player3_r3_btn = "nul" -input_player3_r3_axis = "nul" -input_player3_r3_mbtn = "nul" -input_player3_l_x_plus = "nul" -input_player3_l_x_plus_btn = "nul" -input_player3_l_x_plus_axis = "nul" -input_player3_l_x_plus_mbtn = "nul" -input_player3_l_x_minus = "nul" -input_player3_l_x_minus_btn = "nul" -input_player3_l_x_minus_axis = "nul" -input_player3_l_x_minus_mbtn = "nul" -input_player3_l_y_plus = "nul" -input_player3_l_y_plus_btn = "nul" -input_player3_l_y_plus_axis = "nul" -input_player3_l_y_plus_mbtn = "nul" -input_player3_l_y_minus = "nul" -input_player3_l_y_minus_btn = "nul" -input_player3_l_y_minus_axis = "nul" -input_player3_l_y_minus_mbtn = "nul" -input_player3_r_x_plus = "nul" -input_player3_r_x_plus_btn = "nul" -input_player3_r_x_plus_axis = "nul" -input_player3_r_x_plus_mbtn = "nul" -input_player3_r_x_minus = "nul" -input_player3_r_x_minus_btn = "nul" -input_player3_r_x_minus_axis = "nul" -input_player3_r_x_minus_mbtn = "nul" -input_player3_r_y_plus = "nul" -input_player3_r_y_plus_btn = "nul" -input_player3_r_y_plus_axis = "nul" -input_player3_r_y_plus_mbtn = "nul" -input_player3_r_y_minus = "nul" -input_player3_r_y_minus_btn = "nul" -input_player3_r_y_minus_axis = "nul" -input_player3_r_y_minus_mbtn = "nul" -input_player3_gun_trigger = "nul" -input_player3_gun_trigger_btn = "nul" -input_player3_gun_trigger_axis = "nul" -input_player3_gun_trigger_mbtn = "nul" -input_player3_gun_offscreen_shot = "nul" -input_player3_gun_offscreen_shot_btn = "nul" -input_player3_gun_offscreen_shot_axis = "nul" -input_player3_gun_offscreen_shot_mbtn = "nul" -input_player3_gun_aux_a = "nul" -input_player3_gun_aux_a_btn = "nul" -input_player3_gun_aux_a_axis = "nul" -input_player3_gun_aux_a_mbtn = "nul" -input_player3_gun_aux_b = "nul" -input_player3_gun_aux_b_btn = "nul" -input_player3_gun_aux_b_axis = "nul" -input_player3_gun_aux_b_mbtn = "nul" -input_player3_gun_aux_c = "nul" -input_player3_gun_aux_c_btn = "nul" -input_player3_gun_aux_c_axis = "nul" -input_player3_gun_aux_c_mbtn = "nul" -input_player3_gun_start = "nul" -input_player3_gun_start_btn = "nul" -input_player3_gun_start_axis = "nul" -input_player3_gun_start_mbtn = "nul" -input_player3_gun_select = "nul" -input_player3_gun_select_btn = "nul" -input_player3_gun_select_axis = "nul" -input_player3_gun_select_mbtn = "nul" -input_player3_gun_dpad_up = "nul" -input_player3_gun_dpad_up_btn = "nul" -input_player3_gun_dpad_up_axis = "nul" -input_player3_gun_dpad_up_mbtn = "nul" -input_player3_gun_dpad_down = "nul" -input_player3_gun_dpad_down_btn = "nul" -input_player3_gun_dpad_down_axis = "nul" -input_player3_gun_dpad_down_mbtn = "nul" -input_player3_gun_dpad_left = "nul" -input_player3_gun_dpad_left_btn = "nul" -input_player3_gun_dpad_left_axis = "nul" -input_player3_gun_dpad_left_mbtn = "nul" -input_player3_gun_dpad_right = "nul" -input_player3_gun_dpad_right_btn = "nul" -input_player3_gun_dpad_right_axis = "nul" -input_player3_gun_dpad_right_mbtn = "nul" -input_player3_turbo = "nul" -input_player3_turbo_btn = "nul" -input_player3_turbo_axis = "nul" -input_player3_turbo_mbtn = "nul" -input_player4_b = "nul" -input_player4_b_btn = "nul" -input_player4_b_axis = "nul" -input_player4_b_mbtn = "nul" -input_player4_y = "nul" -input_player4_y_btn = "nul" -input_player4_y_axis = "nul" -input_player4_y_mbtn = "nul" -input_player4_select = "nul" -input_player4_select_btn = "nul" -input_player4_select_axis = "nul" -input_player4_select_mbtn = "nul" -input_player4_start = "nul" -input_player4_start_btn = "nul" -input_player4_start_axis = "nul" -input_player4_start_mbtn = "nul" -input_player4_up = "nul" -input_player4_up_btn = "nul" -input_player4_up_axis = "nul" -input_player4_up_mbtn = "nul" -input_player4_down = "nul" -input_player4_down_btn = "nul" -input_player4_down_axis = "nul" -input_player4_down_mbtn = "nul" -input_player4_left = "nul" -input_player4_left_btn = "nul" -input_player4_left_axis = "nul" -input_player4_left_mbtn = "nul" -input_player4_right = "nul" -input_player4_right_btn = "nul" -input_player4_right_axis = "nul" -input_player4_right_mbtn = "nul" -input_player4_a = "nul" -input_player4_a_btn = "nul" -input_player4_a_axis = "nul" -input_player4_a_mbtn = "nul" -input_player4_x = "nul" -input_player4_x_btn = "nul" -input_player4_x_axis = "nul" -input_player4_x_mbtn = "nul" -input_player4_l = "nul" -input_player4_l_btn = "nul" -input_player4_l_axis = "nul" -input_player4_l_mbtn = "nul" -input_player4_r = "nul" -input_player4_r_btn = "nul" -input_player4_r_axis = "nul" -input_player4_r_mbtn = "nul" -input_player4_l2 = "nul" -input_player4_l2_btn = "nul" -input_player4_l2_axis = "nul" -input_player4_l2_mbtn = "nul" -input_player4_r2 = "nul" -input_player4_r2_btn = "nul" -input_player4_r2_axis = "nul" -input_player4_r2_mbtn = "nul" -input_player4_l3 = "nul" -input_player4_l3_btn = "nul" -input_player4_l3_axis = "nul" -input_player4_l3_mbtn = "nul" -input_player4_r3 = "nul" -input_player4_r3_btn = "nul" -input_player4_r3_axis = "nul" -input_player4_r3_mbtn = "nul" -input_player4_l_x_plus = "nul" -input_player4_l_x_plus_btn = "nul" -input_player4_l_x_plus_axis = "nul" -input_player4_l_x_plus_mbtn = "nul" -input_player4_l_x_minus = "nul" -input_player4_l_x_minus_btn = "nul" -input_player4_l_x_minus_axis = "nul" -input_player4_l_x_minus_mbtn = "nul" -input_player4_l_y_plus = "nul" -input_player4_l_y_plus_btn = "nul" -input_player4_l_y_plus_axis = "nul" -input_player4_l_y_plus_mbtn = "nul" -input_player4_l_y_minus = "nul" -input_player4_l_y_minus_btn = "nul" -input_player4_l_y_minus_axis = "nul" -input_player4_l_y_minus_mbtn = "nul" -input_player4_r_x_plus = "nul" -input_player4_r_x_plus_btn = "nul" -input_player4_r_x_plus_axis = "nul" -input_player4_r_x_plus_mbtn = "nul" -input_player4_r_x_minus = "nul" -input_player4_r_x_minus_btn = "nul" -input_player4_r_x_minus_axis = "nul" -input_player4_r_x_minus_mbtn = "nul" -input_player4_r_y_plus = "nul" -input_player4_r_y_plus_btn = "nul" -input_player4_r_y_plus_axis = "nul" -input_player4_r_y_plus_mbtn = "nul" -input_player4_r_y_minus = "nul" -input_player4_r_y_minus_btn = "nul" -input_player4_r_y_minus_axis = "nul" -input_player4_r_y_minus_mbtn = "nul" -input_player4_gun_trigger = "nul" -input_player4_gun_trigger_btn = "nul" -input_player4_gun_trigger_axis = "nul" -input_player4_gun_trigger_mbtn = "nul" -input_player4_gun_offscreen_shot = "nul" -input_player4_gun_offscreen_shot_btn = "nul" -input_player4_gun_offscreen_shot_axis = "nul" -input_player4_gun_offscreen_shot_mbtn = "nul" -input_player4_gun_aux_a = "nul" -input_player4_gun_aux_a_btn = "nul" -input_player4_gun_aux_a_axis = "nul" -input_player4_gun_aux_a_mbtn = "nul" -input_player4_gun_aux_b = "nul" -input_player4_gun_aux_b_btn = "nul" -input_player4_gun_aux_b_axis = "nul" -input_player4_gun_aux_b_mbtn = "nul" -input_player4_gun_aux_c = "nul" -input_player4_gun_aux_c_btn = "nul" -input_player4_gun_aux_c_axis = "nul" -input_player4_gun_aux_c_mbtn = "nul" -input_player4_gun_start = "nul" -input_player4_gun_start_btn = "nul" -input_player4_gun_start_axis = "nul" -input_player4_gun_start_mbtn = "nul" -input_player4_gun_select = "nul" -input_player4_gun_select_btn = "nul" -input_player4_gun_select_axis = "nul" -input_player4_gun_select_mbtn = "nul" -input_player4_gun_dpad_up = "nul" -input_player4_gun_dpad_up_btn = "nul" -input_player4_gun_dpad_up_axis = "nul" -input_player4_gun_dpad_up_mbtn = "nul" -input_player4_gun_dpad_down = "nul" -input_player4_gun_dpad_down_btn = "nul" -input_player4_gun_dpad_down_axis = "nul" -input_player4_gun_dpad_down_mbtn = "nul" -input_player4_gun_dpad_left = "nul" -input_player4_gun_dpad_left_btn = "nul" -input_player4_gun_dpad_left_axis = "nul" -input_player4_gun_dpad_left_mbtn = "nul" -input_player4_gun_dpad_right = "nul" -input_player4_gun_dpad_right_btn = "nul" -input_player4_gun_dpad_right_axis = "nul" -input_player4_gun_dpad_right_mbtn = "nul" -input_player4_turbo = "nul" -input_player4_turbo_btn = "nul" -input_player4_turbo_axis = "nul" -input_player4_turbo_mbtn = "nul" -input_player5_b = "nul" -input_player5_b_btn = "nul" -input_player5_b_axis = "nul" -input_player5_b_mbtn = "nul" -input_player5_y = "nul" -input_player5_y_btn = "nul" -input_player5_y_axis = "nul" -input_player5_y_mbtn = "nul" -input_player5_select = "nul" -input_player5_select_btn = "nul" -input_player5_select_axis = "nul" -input_player5_select_mbtn = "nul" -input_player5_start = "nul" -input_player5_start_btn = "nul" -input_player5_start_axis = "nul" -input_player5_start_mbtn = "nul" -input_player5_up = "nul" -input_player5_up_btn = "nul" -input_player5_up_axis = "nul" -input_player5_up_mbtn = "nul" -input_player5_down = "nul" -input_player5_down_btn = "nul" -input_player5_down_axis = "nul" -input_player5_down_mbtn = "nul" -input_player5_left = "nul" -input_player5_left_btn = "nul" -input_player5_left_axis = "nul" -input_player5_left_mbtn = "nul" -input_player5_right = "nul" -input_player5_right_btn = "nul" -input_player5_right_axis = "nul" -input_player5_right_mbtn = "nul" -input_player5_a = "nul" -input_player5_a_btn = "nul" -input_player5_a_axis = "nul" -input_player5_a_mbtn = "nul" -input_player5_x = "nul" -input_player5_x_btn = "nul" -input_player5_x_axis = "nul" -input_player5_x_mbtn = "nul" -input_player5_l = "nul" -input_player5_l_btn = "nul" -input_player5_l_axis = "nul" -input_player5_l_mbtn = "nul" -input_player5_r = "nul" -input_player5_r_btn = "nul" -input_player5_r_axis = "nul" -input_player5_r_mbtn = "nul" -input_player5_l2 = "nul" -input_player5_l2_btn = "nul" -input_player5_l2_axis = "nul" -input_player5_l2_mbtn = "nul" -input_player5_r2 = "nul" -input_player5_r2_btn = "nul" -input_player5_r2_axis = "nul" -input_player5_r2_mbtn = "nul" -input_player5_l3 = "nul" -input_player5_l3_btn = "nul" -input_player5_l3_axis = "nul" -input_player5_l3_mbtn = "nul" -input_player5_r3 = "nul" -input_player5_r3_btn = "nul" -input_player5_r3_axis = "nul" -input_player5_r3_mbtn = "nul" -input_player5_l_x_plus = "nul" -input_player5_l_x_plus_btn = "nul" -input_player5_l_x_plus_axis = "nul" -input_player5_l_x_plus_mbtn = "nul" -input_player5_l_x_minus = "nul" -input_player5_l_x_minus_btn = "nul" -input_player5_l_x_minus_axis = "nul" -input_player5_l_x_minus_mbtn = "nul" -input_player5_l_y_plus = "nul" -input_player5_l_y_plus_btn = "nul" -input_player5_l_y_plus_axis = "nul" -input_player5_l_y_plus_mbtn = "nul" -input_player5_l_y_minus = "nul" -input_player5_l_y_minus_btn = "nul" -input_player5_l_y_minus_axis = "nul" -input_player5_l_y_minus_mbtn = "nul" -input_player5_r_x_plus = "nul" -input_player5_r_x_plus_btn = "nul" -input_player5_r_x_plus_axis = "nul" -input_player5_r_x_plus_mbtn = "nul" -input_player5_r_x_minus = "nul" -input_player5_r_x_minus_btn = "nul" -input_player5_r_x_minus_axis = "nul" -input_player5_r_x_minus_mbtn = "nul" -input_player5_r_y_plus = "nul" -input_player5_r_y_plus_btn = "nul" -input_player5_r_y_plus_axis = "nul" -input_player5_r_y_plus_mbtn = "nul" -input_player5_r_y_minus = "nul" -input_player5_r_y_minus_btn = "nul" -input_player5_r_y_minus_axis = "nul" -input_player5_r_y_minus_mbtn = "nul" -input_player5_gun_trigger = "nul" -input_player5_gun_trigger_btn = "nul" -input_player5_gun_trigger_axis = "nul" -input_player5_gun_trigger_mbtn = "nul" -input_player5_gun_offscreen_shot = "nul" -input_player5_gun_offscreen_shot_btn = "nul" -input_player5_gun_offscreen_shot_axis = "nul" -input_player5_gun_offscreen_shot_mbtn = "nul" -input_player5_gun_aux_a = "nul" -input_player5_gun_aux_a_btn = "nul" -input_player5_gun_aux_a_axis = "nul" -input_player5_gun_aux_a_mbtn = "nul" -input_player5_gun_aux_b = "nul" -input_player5_gun_aux_b_btn = "nul" -input_player5_gun_aux_b_axis = "nul" -input_player5_gun_aux_b_mbtn = "nul" -input_player5_gun_aux_c = "nul" -input_player5_gun_aux_c_btn = "nul" -input_player5_gun_aux_c_axis = "nul" -input_player5_gun_aux_c_mbtn = "nul" -input_player5_gun_start = "nul" -input_player5_gun_start_btn = "nul" -input_player5_gun_start_axis = "nul" -input_player5_gun_start_mbtn = "nul" -input_player5_gun_select = "nul" -input_player5_gun_select_btn = "nul" -input_player5_gun_select_axis = "nul" -input_player5_gun_select_mbtn = "nul" -input_player5_gun_dpad_up = "nul" -input_player5_gun_dpad_up_btn = "nul" -input_player5_gun_dpad_up_axis = "nul" -input_player5_gun_dpad_up_mbtn = "nul" -input_player5_gun_dpad_down = "nul" -input_player5_gun_dpad_down_btn = "nul" -input_player5_gun_dpad_down_axis = "nul" -input_player5_gun_dpad_down_mbtn = "nul" -input_player5_gun_dpad_left = "nul" -input_player5_gun_dpad_left_btn = "nul" -input_player5_gun_dpad_left_axis = "nul" -input_player5_gun_dpad_left_mbtn = "nul" -input_player5_gun_dpad_right = "nul" -input_player5_gun_dpad_right_btn = "nul" -input_player5_gun_dpad_right_axis = "nul" -input_player5_gun_dpad_right_mbtn = "nul" -input_player5_turbo = "nul" -input_player5_turbo_btn = "nul" -input_player5_turbo_axis = "nul" -input_player5_turbo_mbtn = "nul" -input_player6_b = "nul" -input_player6_b_btn = "nul" -input_player6_b_axis = "nul" -input_player6_b_mbtn = "nul" -input_player6_y = "nul" -input_player6_y_btn = "nul" -input_player6_y_axis = "nul" -input_player6_y_mbtn = "nul" -input_player6_select = "nul" -input_player6_select_btn = "nul" -input_player6_select_axis = "nul" -input_player6_select_mbtn = "nul" -input_player6_start = "nul" -input_player6_start_btn = "nul" -input_player6_start_axis = "nul" -input_player6_start_mbtn = "nul" -input_player6_up = "nul" -input_player6_up_btn = "nul" -input_player6_up_axis = "nul" -input_player6_up_mbtn = "nul" -input_player6_down = "nul" -input_player6_down_btn = "nul" -input_player6_down_axis = "nul" -input_player6_down_mbtn = "nul" -input_player6_left = "nul" -input_player6_left_btn = "nul" -input_player6_left_axis = "nul" -input_player6_left_mbtn = "nul" -input_player6_right = "nul" -input_player6_right_btn = "nul" -input_player6_right_axis = "nul" -input_player6_right_mbtn = "nul" -input_player6_a = "nul" -input_player6_a_btn = "nul" -input_player6_a_axis = "nul" -input_player6_a_mbtn = "nul" -input_player6_x = "nul" -input_player6_x_btn = "nul" -input_player6_x_axis = "nul" -input_player6_x_mbtn = "nul" -input_player6_l = "nul" -input_player6_l_btn = "nul" -input_player6_l_axis = "nul" -input_player6_l_mbtn = "nul" -input_player6_r = "nul" -input_player6_r_btn = "nul" -input_player6_r_axis = "nul" -input_player6_r_mbtn = "nul" -input_player6_l2 = "nul" -input_player6_l2_btn = "nul" -input_player6_l2_axis = "nul" -input_player6_l2_mbtn = "nul" -input_player6_r2 = "nul" -input_player6_r2_btn = "nul" -input_player6_r2_axis = "nul" -input_player6_r2_mbtn = "nul" -input_player6_l3 = "nul" -input_player6_l3_btn = "nul" -input_player6_l3_axis = "nul" -input_player6_l3_mbtn = "nul" -input_player6_r3 = "nul" -input_player6_r3_btn = "nul" -input_player6_r3_axis = "nul" -input_player6_r3_mbtn = "nul" -input_player6_l_x_plus = "nul" -input_player6_l_x_plus_btn = "nul" -input_player6_l_x_plus_axis = "nul" -input_player6_l_x_plus_mbtn = "nul" -input_player6_l_x_minus = "nul" -input_player6_l_x_minus_btn = "nul" -input_player6_l_x_minus_axis = "nul" -input_player6_l_x_minus_mbtn = "nul" -input_player6_l_y_plus = "nul" -input_player6_l_y_plus_btn = "nul" -input_player6_l_y_plus_axis = "nul" -input_player6_l_y_plus_mbtn = "nul" -input_player6_l_y_minus = "nul" -input_player6_l_y_minus_btn = "nul" -input_player6_l_y_minus_axis = "nul" -input_player6_l_y_minus_mbtn = "nul" -input_player6_r_x_plus = "nul" -input_player6_r_x_plus_btn = "nul" -input_player6_r_x_plus_axis = "nul" -input_player6_r_x_plus_mbtn = "nul" -input_player6_r_x_minus = "nul" -input_player6_r_x_minus_btn = "nul" -input_player6_r_x_minus_axis = "nul" -input_player6_r_x_minus_mbtn = "nul" -input_player6_r_y_plus = "nul" -input_player6_r_y_plus_btn = "nul" -input_player6_r_y_plus_axis = "nul" -input_player6_r_y_plus_mbtn = "nul" -input_player6_r_y_minus = "nul" -input_player6_r_y_minus_btn = "nul" -input_player6_r_y_minus_axis = "nul" -input_player6_r_y_minus_mbtn = "nul" -input_player6_gun_trigger = "nul" -input_player6_gun_trigger_btn = "nul" -input_player6_gun_trigger_axis = "nul" -input_player6_gun_trigger_mbtn = "nul" -input_player6_gun_offscreen_shot = "nul" -input_player6_gun_offscreen_shot_btn = "nul" -input_player6_gun_offscreen_shot_axis = "nul" -input_player6_gun_offscreen_shot_mbtn = "nul" -input_player6_gun_aux_a = "nul" -input_player6_gun_aux_a_btn = "nul" -input_player6_gun_aux_a_axis = "nul" -input_player6_gun_aux_a_mbtn = "nul" -input_player6_gun_aux_b = "nul" -input_player6_gun_aux_b_btn = "nul" -input_player6_gun_aux_b_axis = "nul" -input_player6_gun_aux_b_mbtn = "nul" -input_player6_gun_aux_c = "nul" -input_player6_gun_aux_c_btn = "nul" -input_player6_gun_aux_c_axis = "nul" -input_player6_gun_aux_c_mbtn = "nul" -input_player6_gun_start = "nul" -input_player6_gun_start_btn = "nul" -input_player6_gun_start_axis = "nul" -input_player6_gun_start_mbtn = "nul" -input_player6_gun_select = "nul" -input_player6_gun_select_btn = "nul" -input_player6_gun_select_axis = "nul" -input_player6_gun_select_mbtn = "nul" -input_player6_gun_dpad_up = "nul" -input_player6_gun_dpad_up_btn = "nul" -input_player6_gun_dpad_up_axis = "nul" -input_player6_gun_dpad_up_mbtn = "nul" -input_player6_gun_dpad_down = "nul" -input_player6_gun_dpad_down_btn = "nul" -input_player6_gun_dpad_down_axis = "nul" -input_player6_gun_dpad_down_mbtn = "nul" -input_player6_gun_dpad_left = "nul" -input_player6_gun_dpad_left_btn = "nul" -input_player6_gun_dpad_left_axis = "nul" -input_player6_gun_dpad_left_mbtn = "nul" -input_player6_gun_dpad_right = "nul" -input_player6_gun_dpad_right_btn = "nul" -input_player6_gun_dpad_right_axis = "nul" -input_player6_gun_dpad_right_mbtn = "nul" -input_player6_turbo = "nul" -input_player6_turbo_btn = "nul" -input_player6_turbo_axis = "nul" -input_player6_turbo_mbtn = "nul" -input_player7_b = "nul" -input_player7_b_btn = "nul" -input_player7_b_axis = "nul" -input_player7_b_mbtn = "nul" -input_player7_y = "nul" -input_player7_y_btn = "nul" -input_player7_y_axis = "nul" -input_player7_y_mbtn = "nul" -input_player7_select = "nul" -input_player7_select_btn = "nul" -input_player7_select_axis = "nul" -input_player7_select_mbtn = "nul" -input_player7_start = "nul" -input_player7_start_btn = "nul" -input_player7_start_axis = "nul" -input_player7_start_mbtn = "nul" -input_player7_up = "nul" -input_player7_up_btn = "nul" -input_player7_up_axis = "nul" -input_player7_up_mbtn = "nul" -input_player7_down = "nul" -input_player7_down_btn = "nul" -input_player7_down_axis = "nul" -input_player7_down_mbtn = "nul" -input_player7_left = "nul" -input_player7_left_btn = "nul" -input_player7_left_axis = "nul" -input_player7_left_mbtn = "nul" -input_player7_right = "nul" -input_player7_right_btn = "nul" -input_player7_right_axis = "nul" -input_player7_right_mbtn = "nul" -input_player7_a = "nul" -input_player7_a_btn = "nul" -input_player7_a_axis = "nul" -input_player7_a_mbtn = "nul" -input_player7_x = "nul" -input_player7_x_btn = "nul" -input_player7_x_axis = "nul" -input_player7_x_mbtn = "nul" -input_player7_l = "nul" -input_player7_l_btn = "nul" -input_player7_l_axis = "nul" -input_player7_l_mbtn = "nul" -input_player7_r = "nul" -input_player7_r_btn = "nul" -input_player7_r_axis = "nul" -input_player7_r_mbtn = "nul" -input_player7_l2 = "nul" -input_player7_l2_btn = "nul" -input_player7_l2_axis = "nul" -input_player7_l2_mbtn = "nul" -input_player7_r2 = "nul" -input_player7_r2_btn = "nul" -input_player7_r2_axis = "nul" -input_player7_r2_mbtn = "nul" -input_player7_l3 = "nul" -input_player7_l3_btn = "nul" -input_player7_l3_axis = "nul" -input_player7_l3_mbtn = "nul" -input_player7_r3 = "nul" -input_player7_r3_btn = "nul" -input_player7_r3_axis = "nul" -input_player7_r3_mbtn = "nul" -input_player7_l_x_plus = "nul" -input_player7_l_x_plus_btn = "nul" -input_player7_l_x_plus_axis = "nul" -input_player7_l_x_plus_mbtn = "nul" -input_player7_l_x_minus = "nul" -input_player7_l_x_minus_btn = "nul" -input_player7_l_x_minus_axis = "nul" -input_player7_l_x_minus_mbtn = "nul" -input_player7_l_y_plus = "nul" -input_player7_l_y_plus_btn = "nul" -input_player7_l_y_plus_axis = "nul" -input_player7_l_y_plus_mbtn = "nul" -input_player7_l_y_minus = "nul" -input_player7_l_y_minus_btn = "nul" -input_player7_l_y_minus_axis = "nul" -input_player7_l_y_minus_mbtn = "nul" -input_player7_r_x_plus = "nul" -input_player7_r_x_plus_btn = "nul" -input_player7_r_x_plus_axis = "nul" -input_player7_r_x_plus_mbtn = "nul" -input_player7_r_x_minus = "nul" -input_player7_r_x_minus_btn = "nul" -input_player7_r_x_minus_axis = "nul" -input_player7_r_x_minus_mbtn = "nul" -input_player7_r_y_plus = "nul" -input_player7_r_y_plus_btn = "nul" -input_player7_r_y_plus_axis = "nul" -input_player7_r_y_plus_mbtn = "nul" -input_player7_r_y_minus = "nul" -input_player7_r_y_minus_btn = "nul" -input_player7_r_y_minus_axis = "nul" -input_player7_r_y_minus_mbtn = "nul" -input_player7_gun_trigger = "nul" -input_player7_gun_trigger_btn = "nul" -input_player7_gun_trigger_axis = "nul" -input_player7_gun_trigger_mbtn = "nul" -input_player7_gun_offscreen_shot = "nul" -input_player7_gun_offscreen_shot_btn = "nul" -input_player7_gun_offscreen_shot_axis = "nul" -input_player7_gun_offscreen_shot_mbtn = "nul" -input_player7_gun_aux_a = "nul" -input_player7_gun_aux_a_btn = "nul" -input_player7_gun_aux_a_axis = "nul" -input_player7_gun_aux_a_mbtn = "nul" -input_player7_gun_aux_b = "nul" -input_player7_gun_aux_b_btn = "nul" -input_player7_gun_aux_b_axis = "nul" -input_player7_gun_aux_b_mbtn = "nul" -input_player7_gun_aux_c = "nul" -input_player7_gun_aux_c_btn = "nul" -input_player7_gun_aux_c_axis = "nul" -input_player7_gun_aux_c_mbtn = "nul" -input_player7_gun_start = "nul" -input_player7_gun_start_btn = "nul" -input_player7_gun_start_axis = "nul" -input_player7_gun_start_mbtn = "nul" -input_player7_gun_select = "nul" -input_player7_gun_select_btn = "nul" -input_player7_gun_select_axis = "nul" -input_player7_gun_select_mbtn = "nul" -input_player7_gun_dpad_up = "nul" -input_player7_gun_dpad_up_btn = "nul" -input_player7_gun_dpad_up_axis = "nul" -input_player7_gun_dpad_up_mbtn = "nul" -input_player7_gun_dpad_down = "nul" -input_player7_gun_dpad_down_btn = "nul" -input_player7_gun_dpad_down_axis = "nul" -input_player7_gun_dpad_down_mbtn = "nul" -input_player7_gun_dpad_left = "nul" -input_player7_gun_dpad_left_btn = "nul" -input_player7_gun_dpad_left_axis = "nul" -input_player7_gun_dpad_left_mbtn = "nul" -input_player7_gun_dpad_right = "nul" -input_player7_gun_dpad_right_btn = "nul" -input_player7_gun_dpad_right_axis = "nul" -input_player7_gun_dpad_right_mbtn = "nul" -input_player7_turbo = "nul" -input_player7_turbo_btn = "nul" -input_player7_turbo_axis = "nul" -input_player7_turbo_mbtn = "nul" -input_player8_b = "nul" -input_player8_b_btn = "nul" -input_player8_b_axis = "nul" -input_player8_b_mbtn = "nul" -input_player8_y = "nul" -input_player8_y_btn = "nul" -input_player8_y_axis = "nul" -input_player8_y_mbtn = "nul" -input_player8_select = "nul" -input_player8_select_btn = "nul" -input_player8_select_axis = "nul" -input_player8_select_mbtn = "nul" -input_player8_start = "nul" -input_player8_start_btn = "nul" -input_player8_start_axis = "nul" -input_player8_start_mbtn = "nul" -input_player8_up = "nul" -input_player8_up_btn = "nul" -input_player8_up_axis = "nul" -input_player8_up_mbtn = "nul" -input_player8_down = "nul" -input_player8_down_btn = "nul" -input_player8_down_axis = "nul" -input_player8_down_mbtn = "nul" -input_player8_left = "nul" -input_player8_left_btn = "nul" -input_player8_left_axis = "nul" -input_player8_left_mbtn = "nul" -input_player8_right = "nul" -input_player8_right_btn = "nul" -input_player8_right_axis = "nul" -input_player8_right_mbtn = "nul" -input_player8_a = "nul" -input_player8_a_btn = "nul" -input_player8_a_axis = "nul" -input_player8_a_mbtn = "nul" -input_player8_x = "nul" -input_player8_x_btn = "nul" -input_player8_x_axis = "nul" -input_player8_x_mbtn = "nul" -input_player8_l = "nul" -input_player8_l_btn = "nul" -input_player8_l_axis = "nul" -input_player8_l_mbtn = "nul" -input_player8_r = "nul" -input_player8_r_btn = "nul" -input_player8_r_axis = "nul" -input_player8_r_mbtn = "nul" -input_player8_l2 = "nul" -input_player8_l2_btn = "nul" -input_player8_l2_axis = "nul" -input_player8_l2_mbtn = "nul" -input_player8_r2 = "nul" -input_player8_r2_btn = "nul" -input_player8_r2_axis = "nul" -input_player8_r2_mbtn = "nul" -input_player8_l3 = "nul" -input_player8_l3_btn = "nul" -input_player8_l3_axis = "nul" -input_player8_l3_mbtn = "nul" -input_player8_r3 = "nul" -input_player8_r3_btn = "nul" -input_player8_r3_axis = "nul" -input_player8_r3_mbtn = "nul" -input_player8_l_x_plus = "nul" -input_player8_l_x_plus_btn = "nul" -input_player8_l_x_plus_axis = "nul" -input_player8_l_x_plus_mbtn = "nul" -input_player8_l_x_minus = "nul" -input_player8_l_x_minus_btn = "nul" -input_player8_l_x_minus_axis = "nul" -input_player8_l_x_minus_mbtn = "nul" -input_player8_l_y_plus = "nul" -input_player8_l_y_plus_btn = "nul" -input_player8_l_y_plus_axis = "nul" -input_player8_l_y_plus_mbtn = "nul" -input_player8_l_y_minus = "nul" -input_player8_l_y_minus_btn = "nul" -input_player8_l_y_minus_axis = "nul" -input_player8_l_y_minus_mbtn = "nul" -input_player8_r_x_plus = "nul" -input_player8_r_x_plus_btn = "nul" -input_player8_r_x_plus_axis = "nul" -input_player8_r_x_plus_mbtn = "nul" -input_player8_r_x_minus = "nul" -input_player8_r_x_minus_btn = "nul" -input_player8_r_x_minus_axis = "nul" -input_player8_r_x_minus_mbtn = "nul" -input_player8_r_y_plus = "nul" -input_player8_r_y_plus_btn = "nul" -input_player8_r_y_plus_axis = "nul" -input_player8_r_y_plus_mbtn = "nul" -input_player8_r_y_minus = "nul" -input_player8_r_y_minus_btn = "nul" -input_player8_r_y_minus_axis = "nul" -input_player8_r_y_minus_mbtn = "nul" -input_player8_gun_trigger = "nul" -input_player8_gun_trigger_btn = "nul" -input_player8_gun_trigger_axis = "nul" -input_player8_gun_trigger_mbtn = "nul" -input_player8_gun_offscreen_shot = "nul" -input_player8_gun_offscreen_shot_btn = "nul" -input_player8_gun_offscreen_shot_axis = "nul" -input_player8_gun_offscreen_shot_mbtn = "nul" -input_player8_gun_aux_a = "nul" -input_player8_gun_aux_a_btn = "nul" -input_player8_gun_aux_a_axis = "nul" -input_player8_gun_aux_a_mbtn = "nul" -input_player8_gun_aux_b = "nul" -input_player8_gun_aux_b_btn = "nul" -input_player8_gun_aux_b_axis = "nul" -input_player8_gun_aux_b_mbtn = "nul" -input_player8_gun_aux_c = "nul" -input_player8_gun_aux_c_btn = "nul" -input_player8_gun_aux_c_axis = "nul" -input_player8_gun_aux_c_mbtn = "nul" -input_player8_gun_start = "nul" -input_player8_gun_start_btn = "nul" -input_player8_gun_start_axis = "nul" -input_player8_gun_start_mbtn = "nul" -input_player8_gun_select = "nul" -input_player8_gun_select_btn = "nul" -input_player8_gun_select_axis = "nul" -input_player8_gun_select_mbtn = "nul" -input_player8_gun_dpad_up = "nul" -input_player8_gun_dpad_up_btn = "nul" -input_player8_gun_dpad_up_axis = "nul" -input_player8_gun_dpad_up_mbtn = "nul" -input_player8_gun_dpad_down = "nul" -input_player8_gun_dpad_down_btn = "nul" -input_player8_gun_dpad_down_axis = "nul" -input_player8_gun_dpad_down_mbtn = "nul" -input_player8_gun_dpad_left = "nul" -input_player8_gun_dpad_left_btn = "nul" -input_player8_gun_dpad_left_axis = "nul" -input_player8_gun_dpad_left_mbtn = "nul" -input_player8_gun_dpad_right = "nul" -input_player8_gun_dpad_right_btn = "nul" -input_player8_gun_dpad_right_axis = "nul" -input_player8_gun_dpad_right_mbtn = "nul" -input_player8_turbo = "nul" -input_player8_turbo_btn = "nul" -input_player8_turbo_axis = "nul" -input_player8_turbo_mbtn = "nul" -input_player9_b = "nul" -input_player9_b_btn = "nul" -input_player9_b_axis = "nul" -input_player9_b_mbtn = "nul" -input_player9_y = "nul" -input_player9_y_btn = "nul" -input_player9_y_axis = "nul" -input_player9_y_mbtn = "nul" -input_player9_select = "nul" -input_player9_select_btn = "nul" -input_player9_select_axis = "nul" -input_player9_select_mbtn = "nul" -input_player9_start = "nul" -input_player9_start_btn = "nul" -input_player9_start_axis = "nul" -input_player9_start_mbtn = "nul" -input_player9_up = "nul" -input_player9_up_btn = "nul" -input_player9_up_axis = "nul" -input_player9_up_mbtn = "nul" -input_player9_down = "nul" -input_player9_down_btn = "nul" -input_player9_down_axis = "nul" -input_player9_down_mbtn = "nul" -input_player9_left = "nul" -input_player9_left_btn = "nul" -input_player9_left_axis = "nul" -input_player9_left_mbtn = "nul" -input_player9_right = "nul" -input_player9_right_btn = "nul" -input_player9_right_axis = "nul" -input_player9_right_mbtn = "nul" -input_player9_a = "nul" -input_player9_a_btn = "nul" -input_player9_a_axis = "nul" -input_player9_a_mbtn = "nul" -input_player9_x = "nul" -input_player9_x_btn = "nul" -input_player9_x_axis = "nul" -input_player9_x_mbtn = "nul" -input_player9_l = "nul" -input_player9_l_btn = "nul" -input_player9_l_axis = "nul" -input_player9_l_mbtn = "nul" -input_player9_r = "nul" -input_player9_r_btn = "nul" -input_player9_r_axis = "nul" -input_player9_r_mbtn = "nul" -input_player9_l2 = "nul" -input_player9_l2_btn = "nul" -input_player9_l2_axis = "nul" -input_player9_l2_mbtn = "nul" -input_player9_r2 = "nul" -input_player9_r2_btn = "nul" -input_player9_r2_axis = "nul" -input_player9_r2_mbtn = "nul" -input_player9_l3 = "nul" -input_player9_l3_btn = "nul" -input_player9_l3_axis = "nul" -input_player9_l3_mbtn = "nul" -input_player9_r3 = "nul" -input_player9_r3_btn = "nul" -input_player9_r3_axis = "nul" -input_player9_r3_mbtn = "nul" -input_player9_l_x_plus = "nul" -input_player9_l_x_plus_btn = "nul" -input_player9_l_x_plus_axis = "nul" -input_player9_l_x_plus_mbtn = "nul" -input_player9_l_x_minus = "nul" -input_player9_l_x_minus_btn = "nul" -input_player9_l_x_minus_axis = "nul" -input_player9_l_x_minus_mbtn = "nul" -input_player9_l_y_plus = "nul" -input_player9_l_y_plus_btn = "nul" -input_player9_l_y_plus_axis = "nul" -input_player9_l_y_plus_mbtn = "nul" -input_player9_l_y_minus = "nul" -input_player9_l_y_minus_btn = "nul" -input_player9_l_y_minus_axis = "nul" -input_player9_l_y_minus_mbtn = "nul" -input_player9_r_x_plus = "nul" -input_player9_r_x_plus_btn = "nul" -input_player9_r_x_plus_axis = "nul" -input_player9_r_x_plus_mbtn = "nul" -input_player9_r_x_minus = "nul" -input_player9_r_x_minus_btn = "nul" -input_player9_r_x_minus_axis = "nul" -input_player9_r_x_minus_mbtn = "nul" -input_player9_r_y_plus = "nul" -input_player9_r_y_plus_btn = "nul" -input_player9_r_y_plus_axis = "nul" -input_player9_r_y_plus_mbtn = "nul" -input_player9_r_y_minus = "nul" -input_player9_r_y_minus_btn = "nul" -input_player9_r_y_minus_axis = "nul" -input_player9_r_y_minus_mbtn = "nul" -input_player9_gun_trigger = "nul" -input_player9_gun_trigger_btn = "nul" -input_player9_gun_trigger_axis = "nul" -input_player9_gun_trigger_mbtn = "nul" -input_player9_gun_offscreen_shot = "nul" -input_player9_gun_offscreen_shot_btn = "nul" -input_player9_gun_offscreen_shot_axis = "nul" -input_player9_gun_offscreen_shot_mbtn = "nul" -input_player9_gun_aux_a = "nul" -input_player9_gun_aux_a_btn = "nul" -input_player9_gun_aux_a_axis = "nul" -input_player9_gun_aux_a_mbtn = "nul" -input_player9_gun_aux_b = "nul" -input_player9_gun_aux_b_btn = "nul" -input_player9_gun_aux_b_axis = "nul" -input_player9_gun_aux_b_mbtn = "nul" -input_player9_gun_aux_c = "nul" -input_player9_gun_aux_c_btn = "nul" -input_player9_gun_aux_c_axis = "nul" -input_player9_gun_aux_c_mbtn = "nul" -input_player9_gun_start = "nul" -input_player9_gun_start_btn = "nul" -input_player9_gun_start_axis = "nul" -input_player9_gun_start_mbtn = "nul" -input_player9_gun_select = "nul" -input_player9_gun_select_btn = "nul" -input_player9_gun_select_axis = "nul" -input_player9_gun_select_mbtn = "nul" -input_player9_gun_dpad_up = "nul" -input_player9_gun_dpad_up_btn = "nul" -input_player9_gun_dpad_up_axis = "nul" -input_player9_gun_dpad_up_mbtn = "nul" -input_player9_gun_dpad_down = "nul" -input_player9_gun_dpad_down_btn = "nul" -input_player9_gun_dpad_down_axis = "nul" -input_player9_gun_dpad_down_mbtn = "nul" -input_player9_gun_dpad_left = "nul" -input_player9_gun_dpad_left_btn = "nul" -input_player9_gun_dpad_left_axis = "nul" -input_player9_gun_dpad_left_mbtn = "nul" -input_player9_gun_dpad_right = "nul" -input_player9_gun_dpad_right_btn = "nul" -input_player9_gun_dpad_right_axis = "nul" -input_player9_gun_dpad_right_mbtn = "nul" -input_player9_turbo = "nul" -input_player9_turbo_btn = "nul" -input_player9_turbo_axis = "nul" -input_player9_turbo_mbtn = "nul" -input_player10_b = "nul" -input_player10_b_btn = "nul" -input_player10_b_axis = "nul" -input_player10_b_mbtn = "nul" -input_player10_y = "nul" -input_player10_y_btn = "nul" -input_player10_y_axis = "nul" -input_player10_y_mbtn = "nul" -input_player10_select = "nul" -input_player10_select_btn = "nul" -input_player10_select_axis = "nul" -input_player10_select_mbtn = "nul" -input_player10_start = "nul" -input_player10_start_btn = "nul" -input_player10_start_axis = "nul" -input_player10_start_mbtn = "nul" -input_player10_up = "nul" -input_player10_up_btn = "nul" -input_player10_up_axis = "nul" -input_player10_up_mbtn = "nul" -input_player10_down = "nul" -input_player10_down_btn = "nul" -input_player10_down_axis = "nul" -input_player10_down_mbtn = "nul" -input_player10_left = "nul" -input_player10_left_btn = "nul" -input_player10_left_axis = "nul" -input_player10_left_mbtn = "nul" -input_player10_right = "nul" -input_player10_right_btn = "nul" -input_player10_right_axis = "nul" -input_player10_right_mbtn = "nul" -input_player10_a = "nul" -input_player10_a_btn = "nul" -input_player10_a_axis = "nul" -input_player10_a_mbtn = "nul" -input_player10_x = "nul" -input_player10_x_btn = "nul" -input_player10_x_axis = "nul" -input_player10_x_mbtn = "nul" -input_player10_l = "nul" -input_player10_l_btn = "nul" -input_player10_l_axis = "nul" -input_player10_l_mbtn = "nul" -input_player10_r = "nul" -input_player10_r_btn = "nul" -input_player10_r_axis = "nul" -input_player10_r_mbtn = "nul" -input_player10_l2 = "nul" -input_player10_l2_btn = "nul" -input_player10_l2_axis = "nul" -input_player10_l2_mbtn = "nul" -input_player10_r2 = "nul" -input_player10_r2_btn = "nul" -input_player10_r2_axis = "nul" -input_player10_r2_mbtn = "nul" -input_player10_l3 = "nul" -input_player10_l3_btn = "nul" -input_player10_l3_axis = "nul" -input_player10_l3_mbtn = "nul" -input_player10_r3 = "nul" -input_player10_r3_btn = "nul" -input_player10_r3_axis = "nul" -input_player10_r3_mbtn = "nul" -input_player10_l_x_plus = "nul" -input_player10_l_x_plus_btn = "nul" -input_player10_l_x_plus_axis = "nul" -input_player10_l_x_plus_mbtn = "nul" -input_player10_l_x_minus = "nul" -input_player10_l_x_minus_btn = "nul" -input_player10_l_x_minus_axis = "nul" -input_player10_l_x_minus_mbtn = "nul" -input_player10_l_y_plus = "nul" -input_player10_l_y_plus_btn = "nul" -input_player10_l_y_plus_axis = "nul" -input_player10_l_y_plus_mbtn = "nul" -input_player10_l_y_minus = "nul" -input_player10_l_y_minus_btn = "nul" -input_player10_l_y_minus_axis = "nul" -input_player10_l_y_minus_mbtn = "nul" -input_player10_r_x_plus = "nul" -input_player10_r_x_plus_btn = "nul" -input_player10_r_x_plus_axis = "nul" -input_player10_r_x_plus_mbtn = "nul" -input_player10_r_x_minus = "nul" -input_player10_r_x_minus_btn = "nul" -input_player10_r_x_minus_axis = "nul" -input_player10_r_x_minus_mbtn = "nul" -input_player10_r_y_plus = "nul" -input_player10_r_y_plus_btn = "nul" -input_player10_r_y_plus_axis = "nul" -input_player10_r_y_plus_mbtn = "nul" -input_player10_r_y_minus = "nul" -input_player10_r_y_minus_btn = "nul" -input_player10_r_y_minus_axis = "nul" -input_player10_r_y_minus_mbtn = "nul" -input_player10_gun_trigger = "nul" -input_player10_gun_trigger_btn = "nul" -input_player10_gun_trigger_axis = "nul" -input_player10_gun_trigger_mbtn = "nul" -input_player10_gun_offscreen_shot = "nul" -input_player10_gun_offscreen_shot_btn = "nul" -input_player10_gun_offscreen_shot_axis = "nul" -input_player10_gun_offscreen_shot_mbtn = "nul" -input_player10_gun_aux_a = "nul" -input_player10_gun_aux_a_btn = "nul" -input_player10_gun_aux_a_axis = "nul" -input_player10_gun_aux_a_mbtn = "nul" -input_player10_gun_aux_b = "nul" -input_player10_gun_aux_b_btn = "nul" -input_player10_gun_aux_b_axis = "nul" -input_player10_gun_aux_b_mbtn = "nul" -input_player10_gun_aux_c = "nul" -input_player10_gun_aux_c_btn = "nul" -input_player10_gun_aux_c_axis = "nul" -input_player10_gun_aux_c_mbtn = "nul" -input_player10_gun_start = "nul" -input_player10_gun_start_btn = "nul" -input_player10_gun_start_axis = "nul" -input_player10_gun_start_mbtn = "nul" -input_player10_gun_select = "nul" -input_player10_gun_select_btn = "nul" -input_player10_gun_select_axis = "nul" -input_player10_gun_select_mbtn = "nul" -input_player10_gun_dpad_up = "nul" -input_player10_gun_dpad_up_btn = "nul" -input_player10_gun_dpad_up_axis = "nul" -input_player10_gun_dpad_up_mbtn = "nul" -input_player10_gun_dpad_down = "nul" -input_player10_gun_dpad_down_btn = "nul" -input_player10_gun_dpad_down_axis = "nul" -input_player10_gun_dpad_down_mbtn = "nul" -input_player10_gun_dpad_left = "nul" -input_player10_gun_dpad_left_btn = "nul" -input_player10_gun_dpad_left_axis = "nul" -input_player10_gun_dpad_left_mbtn = "nul" -input_player10_gun_dpad_right = "nul" -input_player10_gun_dpad_right_btn = "nul" -input_player10_gun_dpad_right_axis = "nul" -input_player10_gun_dpad_right_mbtn = "nul" -input_player10_turbo = "nul" -input_player10_turbo_btn = "nul" -input_player10_turbo_axis = "nul" -input_player10_turbo_mbtn = "nul" -input_player11_b = "nul" -input_player11_b_btn = "nul" -input_player11_b_axis = "nul" -input_player11_b_mbtn = "nul" -input_player11_y = "nul" -input_player11_y_btn = "nul" -input_player11_y_axis = "nul" -input_player11_y_mbtn = "nul" -input_player11_select = "nul" -input_player11_select_btn = "nul" -input_player11_select_axis = "nul" -input_player11_select_mbtn = "nul" -input_player11_start = "nul" -input_player11_start_btn = "nul" -input_player11_start_axis = "nul" -input_player11_start_mbtn = "nul" -input_player11_up = "nul" -input_player11_up_btn = "nul" -input_player11_up_axis = "nul" -input_player11_up_mbtn = "nul" -input_player11_down = "nul" -input_player11_down_btn = "nul" -input_player11_down_axis = "nul" -input_player11_down_mbtn = "nul" -input_player11_left = "nul" -input_player11_left_btn = "nul" -input_player11_left_axis = "nul" -input_player11_left_mbtn = "nul" -input_player11_right = "nul" -input_player11_right_btn = "nul" -input_player11_right_axis = "nul" -input_player11_right_mbtn = "nul" -input_player11_a = "nul" -input_player11_a_btn = "nul" -input_player11_a_axis = "nul" -input_player11_a_mbtn = "nul" -input_player11_x = "nul" -input_player11_x_btn = "nul" -input_player11_x_axis = "nul" -input_player11_x_mbtn = "nul" -input_player11_l = "nul" -input_player11_l_btn = "nul" -input_player11_l_axis = "nul" -input_player11_l_mbtn = "nul" -input_player11_r = "nul" -input_player11_r_btn = "nul" -input_player11_r_axis = "nul" -input_player11_r_mbtn = "nul" -input_player11_l2 = "nul" -input_player11_l2_btn = "nul" -input_player11_l2_axis = "nul" -input_player11_l2_mbtn = "nul" -input_player11_r2 = "nul" -input_player11_r2_btn = "nul" -input_player11_r2_axis = "nul" -input_player11_r2_mbtn = "nul" -input_player11_l3 = "nul" -input_player11_l3_btn = "nul" -input_player11_l3_axis = "nul" -input_player11_l3_mbtn = "nul" -input_player11_r3 = "nul" -input_player11_r3_btn = "nul" -input_player11_r3_axis = "nul" -input_player11_r3_mbtn = "nul" -input_player11_l_x_plus = "nul" -input_player11_l_x_plus_btn = "nul" -input_player11_l_x_plus_axis = "nul" -input_player11_l_x_plus_mbtn = "nul" -input_player11_l_x_minus = "nul" -input_player11_l_x_minus_btn = "nul" -input_player11_l_x_minus_axis = "nul" -input_player11_l_x_minus_mbtn = "nul" -input_player11_l_y_plus = "nul" -input_player11_l_y_plus_btn = "nul" -input_player11_l_y_plus_btn = "nul" -input_player11_l_y_plus_axis = "nul" -input_player11_l_y_plus_mbtn = "nul" -input_player11_l_y_minus = "nul" -input_player11_l_y_minus_btn = "nul" -input_player11_l_y_minus_axis = "nul" -input_player11_l_y_minus_mbtn = "nul" -input_player11_r_x_plus = "nul" -input_player11_r_x_plus_btn = "nul" -input_player11_r_x_plus_axis = "nul" -input_player11_r_x_plus_mbtn = "nul" -input_player11_r_x_minus = "nul" -input_player11_r_x_minus_btn = "nul" -input_player11_r_x_minus_axis = "nul" -input_player11_r_x_minus_mbtn = "nul" -input_player11_r_y_plus = "nul" -input_player11_r_y_plus_btn = "nul" -input_player11_r_y_plus_axis = "nul" -input_player11_r_y_plus_mbtn = "nul" -input_player11_r_y_minus = "nul" -input_player11_r_y_minus_btn = "nul" -input_player11_r_y_minus_axis = "nul" -input_player11_r_y_minus_mbtn = "nul" -input_player11_gun_trigger = "nul" -input_player11_gun_trigger_btn = "nul" -input_player11_gun_trigger_axis = "nul" -input_player11_gun_trigger_mbtn = "nul" -input_player11_gun_offscreen_shot = "nul" -input_player11_gun_offscreen_shot_btn = "nul" -input_player11_gun_offscreen_shot_axis = "nul" -input_player11_gun_offscreen_shot_mbtn = "nul" -input_player11_gun_aux_a = "nul" -input_player11_gun_aux_a_btn = "nul" -input_player11_gun_aux_a_axis = "nul" -input_player11_gun_aux_a_mbtn = "nul" -input_player11_gun_aux_b = "nul" -input_player11_gun_aux_b_btn = "nul" -input_player11_gun_aux_b_axis = "nul" -input_player11_gun_aux_b_mbtn = "nul" -input_player11_gun_aux_c = "nul" -input_player11_gun_aux_c_btn = "nul" -input_player11_gun_aux_c_axis = "nul" -input_player11_gun_aux_c_mbtn = "nul" -input_player11_gun_start = "nul" -input_player11_gun_start_btn = "nul" -input_player11_gun_start_axis = "nul" -input_player11_gun_start_mbtn = "nul" -input_player11_gun_select = "nul" -input_player11_gun_select_btn = "nul" -input_player11_gun_select_axis = "nul" -input_player11_gun_select_mbtn = "nul" -input_player11_gun_dpad_up = "nul" -input_player11_gun_dpad_up_btn = "nul" -input_player11_gun_dpad_up_axis = "nul" -input_player11_gun_dpad_up_mbtn = "nul" -input_player11_gun_dpad_down = "nul" -input_player11_gun_dpad_down_btn = "nul" -input_player11_gun_dpad_down_axis = "nul" -input_player11_gun_dpad_down_mbtn = "nul" -input_player11_gun_dpad_left = "nul" -input_player11_gun_dpad_left_btn = "nul" -input_player11_gun_dpad_left_axis = "nul" -input_player11_gun_dpad_left_mbtn = "nul" -input_player11_gun_dpad_right = "nul" -input_player11_gun_dpad_right_btn = "nul" -input_player11_gun_dpad_right_axis = "nul" -input_player11_gun_dpad_right_mbtn = "nul" -input_player11_turbo = "nul" -input_player11_turbo_btn = "nul" -input_player11_turbo_axis = "nul" -input_player11_turbo_mbtn = "nul" -input_player12_b = "nul" -input_player12_b_btn = "nul" -input_player12_b_axis = "nul" -input_player12_b_mbtn = "nul" -input_player12_y = "nul" -input_player12_y_btn = "nul" -input_player12_y_axis = "nul" -input_player12_y_mbtn = "nul" -input_player12_select = "nul" -input_player12_select_btn = "nul" -input_player12_select_axis = "nul" -input_player12_select_mbtn = "nul" -input_player12_start = "nul" -input_player12_start_btn = "nul" -input_player12_start_axis = "nul" -input_player12_start_mbtn = "nul" -input_player12_up = "nul" -input_player12_up_btn = "nul" -input_player12_up_axis = "nul" -input_player12_up_mbtn = "nul" -input_player12_down = "nul" -input_player12_down_btn = "nul" -input_player12_down_axis = "nul" -input_player12_down_mbtn = "nul" -input_player12_left = "nul" -input_player12_left_btn = "nul" -input_player12_left_axis = "nul" -input_player12_left_mbtn = "nul" -input_player12_right = "nul" -input_player12_right_btn = "nul" -input_player12_right_axis = "nul" -input_player12_right_mbtn = "nul" -input_player12_a = "nul" -input_player12_a_btn = "nul" -input_player12_a_axis = "nul" -input_player12_a_mbtn = "nul" -input_player12_x = "nul" -input_player12_x_btn = "nul" -input_player12_x_axis = "nul" -input_player12_x_mbtn = "nul" -input_player12_l = "nul" -input_player12_l_btn = "nul" -input_player12_l_axis = "nul" -input_player12_l_mbtn = "nul" -input_player12_r = "nul" -input_player12_r_btn = "nul" -input_player12_r_axis = "nul" -input_player12_r_mbtn = "nul" -input_player12_l2 = "nul" -input_player12_l2_btn = "nul" -input_player12_l2_axis = "nul" -input_player12_l2_mbtn = "nul" -input_player12_r2 = "nul" -input_player12_r2_btn = "nul" -input_player12_r2_axis = "nul" -input_player12_r2_mbtn = "nul" -input_player12_l3 = "nul" -input_player12_l3_btn = "nul" -input_player12_l3_axis = "nul" -input_player12_l3_mbtn = "nul" -input_player12_r3 = "nul" -input_player12_r3_btn = "nul" -input_player12_r3_axis = "nul" -input_player12_r3_mbtn = "nul" -input_player12_l_x_plus = "nul" -input_player12_l_x_plus_btn = "nul" -input_player12_l_x_plus_axis = "nul" -input_player12_l_x_plus_mbtn = "nul" -input_player12_l_x_minus = "nul" -input_player12_l_x_minus_btn = "nul" -input_player12_l_x_minus_axis = "nul" -input_player12_l_x_minus_mbtn = "nul" -input_player12_l_y_plus = "nul" -input_player12_l_y_plus_btn = "nul" -input_player12_l_y_plus_axis = "nul" -input_player12_l_y_plus_mbtn = "nul" -input_player12_l_y_minus = "nul" -input_player12_l_y_minus_btn = "nul" -input_player12_l_y_minus_axis = "nul" -input_player12_l_y_minus_mbtn = "nul" -input_player12_r_x_plus = "nul" -input_player12_r_x_plus_btn = "nul" -input_player12_r_x_plus_axis = "nul" -input_player12_r_x_plus_mbtn = "nul" -input_player12_r_x_minus = "nul" -input_player12_r_x_minus_btn = "nul" -input_player12_r_x_minus_axis = "nul" -input_player12_r_x_minus_mbtn = "nul" -input_player12_r_y_plus = "nul" -input_player12_r_y_plus_btn = "nul" -input_player12_r_y_plus_axis = "nul" -input_player12_r_y_plus_mbtn = "nul" -input_player12_r_y_minus = "nul" -input_player12_r_y_minus_btn = "nul" -input_player12_r_y_minus_axis = "nul" -input_player12_r_y_minus_mbtn = "nul" -input_player12_gun_trigger = "nul" -input_player12_gun_trigger_btn = "nul" -input_player12_gun_trigger_axis = "nul" -input_player12_gun_trigger_mbtn = "nul" -input_player12_gun_offscreen_shot = "nul" -input_player12_gun_offscreen_shot_btn = "nul" -input_player12_gun_offscreen_shot_axis = "nul" -input_player12_gun_offscreen_shot_mbtn = "nul" -input_player12_gun_aux_a = "nul" -input_player12_gun_aux_a_btn = "nul" -input_player12_gun_aux_a_axis = "nul" -input_player12_gun_aux_a_mbtn = "nul" -input_player12_gun_aux_b = "nul" -input_player12_gun_aux_b_btn = "nul" -input_player12_gun_aux_b_axis = "nul" -input_player12_gun_aux_b_mbtn = "nul" -input_player12_gun_aux_c = "nul" -input_player12_gun_aux_c_btn = "nul" -input_player12_gun_aux_c_axis = "nul" -input_player12_gun_aux_c_mbtn = "nul" -input_player12_gun_start = "nul" -input_player12_gun_start_btn = "nul" -input_player12_gun_start_axis = "nul" -input_player12_gun_start_mbtn = "nul" -input_player12_gun_select = "nul" -input_player12_gun_select_btn = "nul" -input_player12_gun_select_axis = "nul" -input_player12_gun_select_mbtn = "nul" -input_player12_gun_dpad_up = "nul" -input_player12_gun_dpad_up_btn = "nul" -input_player12_gun_dpad_up_axis = "nul" -input_player12_gun_dpad_up_mbtn = "nul" -input_player12_gun_dpad_down = "nul" -input_player12_gun_dpad_down_btn = "nul" -input_player12_gun_dpad_down_axis = "nul" -input_player12_gun_dpad_down_mbtn = "nul" -input_player12_gun_dpad_left = "nul" -input_player12_gun_dpad_left_btn = "nul" -input_player12_gun_dpad_left_axis = "nul" -input_player12_gun_dpad_left_mbtn = "nul" -input_player12_gun_dpad_right = "nul" -input_player12_gun_dpad_right_btn = "nul" -input_player12_gun_dpad_right_axis = "nul" -input_player12_gun_dpad_right_mbtn = "nul" -input_player12_turbo = "nul" -input_player12_turbo_btn = "nul" -input_player12_turbo_axis = "nul" -input_player12_turbo_mbtn = "nul" -input_player13_b = "nul" -input_player13_b_btn = "nul" -input_player13_b_axis = "nul" -input_player13_b_mbtn = "nul" -input_player13_y = "nul" -input_player13_y_btn = "nul" -input_player13_y_axis = "nul" -input_player13_y_mbtn = "nul" -input_player13_select = "nul" -input_player13_select_btn = "nul" -input_player13_select_axis = "nul" -input_player13_select_mbtn = "nul" -input_player13_start = "nul" -input_player13_start_btn = "nul" -input_player13_start_axis = "nul" -input_player13_start_mbtn = "nul" -input_player13_up = "nul" -input_player13_up_btn = "nul" -input_player13_up_axis = "nul" -input_player13_up_mbtn = "nul" -input_player13_down = "nul" -input_player13_down_btn = "nul" -input_player13_down_axis = "nul" -input_player13_down_mbtn = "nul" -input_player13_left = "nul" -input_player13_left_btn = "nul" -input_player13_left_axis = "nul" -input_player13_left_mbtn = "nul" -input_player13_right = "nul" -input_player13_right_btn = "nul" -input_player13_right_axis = "nul" -input_player13_right_mbtn = "nul" -input_player13_a = "nul" -input_player13_a_btn = "nul" -input_player13_a_axis = "nul" -input_player13_a_mbtn = "nul" -input_player13_x = "nul" -input_player13_x_btn = "nul" -input_player13_x_axis = "nul" -input_player13_x_mbtn = "nul" -input_player13_l = "nul" -input_player13_l_btn = "nul" -input_player13_l_axis = "nul" -input_player13_l_mbtn = "nul" -input_player13_r = "nul" -input_player13_r_btn = "nul" -input_player13_r_axis = "nul" -input_player13_r_mbtn = "nul" -input_player13_l2 = "nul" -input_player13_l2_btn = "nul" -input_player13_l2_axis = "nul" -input_player13_l2_mbtn = "nul" -input_player13_r2 = "nul" -input_player13_r2_btn = "nul" -input_player13_r2_axis = "nul" -input_player13_r2_mbtn = "nul" -input_player13_l3 = "nul" -input_player13_l3_btn = "nul" -input_player13_l3_axis = "nul" -input_player13_l3_mbtn = "nul" -input_player13_r3 = "nul" -input_player13_r3_btn = "nul" -input_player13_r3_axis = "nul" -input_player13_r3_mbtn = "nul" -input_player13_l_x_plus = "nul" -input_player13_l_x_plus_btn = "nul" -input_player13_l_x_plus_axis = "nul" -input_player13_l_x_plus_mbtn = "nul" -input_player13_l_x_minus = "nul" -input_player13_l_x_minus_btn = "nul" -input_player13_l_x_minus_axis = "nul" -input_player13_l_x_minus_mbtn = "nul" -input_player13_l_y_plus = "nul" -input_player13_l_y_plus_btn = "nul" -input_player13_l_y_plus_axis = "nul" -input_player13_l_y_plus_mbtn = "nul" -input_player13_l_y_minus = "nul" -input_player13_l_y_minus_btn = "nul" -input_player13_l_y_minus_axis = "nul" -input_player13_l_y_minus_mbtn = "nul" -input_player13_r_x_plus = "nul" -input_player13_r_x_plus_btn = "nul" -input_player13_r_x_plus_axis = "nul" -input_player13_r_x_plus_mbtn = "nul" -input_player13_r_x_minus = "nul" -input_player13_r_x_minus_btn = "nul" -input_player13_r_x_minus_axis = "nul" -input_player13_r_x_minus_mbtn = "nul" -input_player13_r_y_plus = "nul" -input_player13_r_y_plus_btn = "nul" -input_player13_r_y_plus_axis = "nul" -input_player13_r_y_plus_mbtn = "nul" -input_player13_r_y_minus = "nul" -input_player13_r_y_minus_btn = "nul" -input_player13_r_y_minus_axis = "nul" -input_player13_r_y_minus_mbtn = "nul" -input_player13_gun_trigger = "nul" -input_player13_gun_trigger_btn = "nul" -input_player13_gun_trigger_axis = "nul" -input_player13_gun_trigger_mbtn = "nul" -input_player13_gun_offscreen_shot = "nul" -input_player13_gun_offscreen_shot_btn = "nul" -input_player13_gun_offscreen_shot_axis = "nul" -input_player13_gun_offscreen_shot_mbtn = "nul" -input_player13_gun_aux_a = "nul" -input_player13_gun_aux_a_btn = "nul" -input_player13_gun_aux_a_axis = "nul" -input_player13_gun_aux_a_mbtn = "nul" -input_player13_gun_aux_b = "nul" -input_player13_gun_aux_b_btn = "nul" -input_player13_gun_aux_b_axis = "nul" -input_player13_gun_aux_b_mbtn = "nul" -input_player13_gun_aux_c = "nul" -input_player13_gun_aux_c_btn = "nul" -input_player13_gun_aux_c_axis = "nul" -input_player13_gun_aux_c_mbtn = "nul" -input_player13_gun_start = "nul" -input_player13_gun_start_btn = "nul" -input_player13_gun_start_axis = "nul" -input_player13_gun_start_mbtn = "nul" -input_player13_gun_select = "nul" -input_player13_gun_select_btn = "nul" -input_player13_gun_select_axis = "nul" -input_player13_gun_select_mbtn = "nul" -input_player13_gun_dpad_up = "nul" -input_player13_gun_dpad_up_btn = "nul" -input_player13_gun_dpad_up_axis = "nul" -input_player13_gun_dpad_up_mbtn = "nul" -input_player13_gun_dpad_down = "nul" -input_player13_gun_dpad_down_btn = "nul" -input_player13_gun_dpad_down_axis = "nul" -input_player13_gun_dpad_down_mbtn = "nul" -input_player13_gun_dpad_left = "nul" -input_player13_gun_dpad_left_btn = "nul" -input_player13_gun_dpad_left_axis = "nul" -input_player13_gun_dpad_left_mbtn = "nul" -input_player13_gun_dpad_right = "nul" -input_player13_gun_dpad_right_btn = "nul" -input_player13_gun_dpad_right_axis = "nul" -input_player13_gun_dpad_right_mbtn = "nul" -input_player13_turbo = "nul" -input_player13_turbo_btn = "nul" -input_player13_turbo_axis = "nul" -input_player13_turbo_mbtn = "nul" -input_player14_b = "nul" -input_player14_b_btn = "nul" -input_player14_b_axis = "nul" -input_player14_b_mbtn = "nul" -input_player14_y = "nul" -input_player14_y_btn = "nul" -input_player14_y_axis = "nul" -input_player14_y_mbtn = "nul" -input_player14_select = "nul" -input_player14_select_btn = "nul" -input_player14_select_axis = "nul" -input_player14_select_mbtn = "nul" -input_player14_start = "nul" -input_player14_start_btn = "nul" -input_player14_start_axis = "nul" -input_player14_start_mbtn = "nul" -input_player14_up = "nul" -input_player14_up_btn = "nul" -input_player14_up_axis = "nul" -input_player14_up_mbtn = "nul" -input_player14_down = "nul" -input_player14_down_btn = "nul" -input_player14_down_axis = "nul" -input_player14_down_mbtn = "nul" -input_player14_left = "nul" -input_player14_left_btn = "nul" -input_player14_left_axis = "nul" -input_player14_left_mbtn = "nul" -input_player14_right = "nul" -input_player14_right_btn = "nul" -input_player14_right_axis = "nul" -input_player14_right_mbtn = "nul" -input_player14_a = "nul" -input_player14_a_btn = "nul" -input_player14_a_axis = "nul" -input_player14_a_mbtn = "nul" -input_player14_x = "nul" -input_player14_x_btn = "nul" -input_player14_x_axis = "nul" -input_player14_x_mbtn = "nul" -input_player14_l = "nul" -input_player14_l_btn = "nul" -input_player14_l_axis = "nul" -input_player14_l_mbtn = "nul" -input_player14_r = "nul" -input_player14_r_btn = "nul" -input_player14_r_axis = "nul" -input_player14_r_mbtn = "nul" -input_player14_l2 = "nul" -input_player14_l2_btn = "nul" -input_player14_l2_axis = "nul" -input_player14_l2_mbtn = "nul" -input_player14_r2 = "nul" -input_player14_r2_btn = "nul" -input_player14_r2_axis = "nul" -input_player14_r2_mbtn = "nul" -input_player14_l3 = "nul" -input_player14_l3_btn = "nul" -input_player14_l3_axis = "nul" -input_player14_l3_mbtn = "nul" -input_player14_r3 = "nul" -input_player14_r3_btn = "nul" -input_player14_r3_axis = "nul" -input_player14_r3_mbtn = "nul" -input_player14_l_x_plus = "nul" -input_player14_l_x_plus_btn = "nul" -input_player14_l_x_plus_axis = "nul" -input_player14_l_x_plus_mbtn = "nul" -input_player14_l_x_minus = "nul" -input_player14_l_x_minus_btn = "nul" -input_player14_l_x_minus_axis = "nul" -input_player14_l_x_minus_mbtn = "nul" -input_player14_l_y_plus = "nul" -input_player14_l_y_plus_btn = "nul" -input_player14_l_y_plus_axis = "nul" -input_player14_l_y_plus_mbtn = "nul" -input_player14_l_y_minus = "nul" -input_player14_l_y_minus_btn = "nul" -input_player14_l_y_minus_axis = "nul" -input_player14_l_y_minus_mbtn = "nul" -input_player14_r_x_plus = "nul" -input_player14_r_x_plus_btn = "nul" -input_player14_r_x_plus_axis = "nul" -input_player14_r_x_plus_mbtn = "nul" -input_player14_r_x_minus = "nul" -input_player14_r_x_minus_btn = "nul" -input_player14_r_x_minus_axis = "nul" -input_player14_r_x_minus_mbtn = "nul" -input_player14_r_y_plus = "nul" -input_player14_r_y_plus_btn = "nul" -input_player14_r_y_plus_axis = "nul" -input_player14_r_y_plus_mbtn = "nul" -input_player14_r_y_minus = "nul" -input_player14_r_y_minus_btn = "nul" -input_player14_r_y_minus_axis = "nul" -input_player14_r_y_minus_mbtn = "nul" -input_player14_gun_trigger = "nul" -input_player14_gun_trigger_btn = "nul" -input_player14_gun_trigger_axis = "nul" -input_player14_gun_trigger_mbtn = "nul" -input_player14_gun_offscreen_shot = "nul" -input_player14_gun_offscreen_shot_btn = "nul" -input_player14_gun_offscreen_shot_axis = "nul" -input_player14_gun_offscreen_shot_mbtn = "nul" -input_player14_gun_aux_a = "nul" -input_player14_gun_aux_a_btn = "nul" -input_player14_gun_aux_a_axis = "nul" -input_player14_gun_aux_a_mbtn = "nul" -input_player14_gun_aux_b = "nul" -input_player14_gun_aux_b_btn = "nul" -input_player14_gun_aux_b_axis = "nul" -input_player14_gun_aux_b_mbtn = "nul" -input_player14_gun_aux_c = "nul" -input_player14_gun_aux_c_btn = "nul" -input_player14_gun_aux_c_axis = "nul" -input_player14_gun_aux_c_mbtn = "nul" -input_player14_gun_start = "nul" -input_player14_gun_start_btn = "nul" -input_player14_gun_start_axis = "nul" -input_player14_gun_start_mbtn = "nul" -input_player14_gun_select = "nul" -input_player14_gun_select_btn = "nul" -input_player14_gun_select_axis = "nul" -input_player14_gun_select_mbtn = "nul" -input_player14_gun_dpad_up = "nul" -input_player14_gun_dpad_up_btn = "nul" -input_player14_gun_dpad_up_axis = "nul" -input_player14_gun_dpad_up_mbtn = "nul" -input_player14_gun_dpad_down = "nul" -input_player14_gun_dpad_down_btn = "nul" -input_player14_gun_dpad_down_axis = "nul" -input_player14_gun_dpad_down_mbtn = "nul" -input_player14_gun_dpad_left = "nul" -input_player14_gun_dpad_left_btn = "nul" -input_player14_gun_dpad_left_axis = "nul" -input_player14_gun_dpad_left_mbtn = "nul" -input_player14_gun_dpad_right = "nul" -input_player14_gun_dpad_right_btn = "nul" -input_player14_gun_dpad_right_axis = "nul" -input_player14_gun_dpad_right_mbtn = "nul" -input_player14_turbo = "nul" -input_player14_turbo_btn = "nul" -input_player14_turbo_axis = "nul" -input_player14_turbo_mbtn = "nul" -input_player15_b = "nul" -input_player15_b_btn = "nul" -input_player15_b_axis = "nul" -input_player15_b_mbtn = "nul" -input_player15_y = "nul" -input_player15_y_btn = "nul" -input_player15_y_axis = "nul" -input_player15_y_mbtn = "nul" -input_player15_select = "nul" -input_player15_select_btn = "nul" -input_player15_select_axis = "nul" -input_player15_select_mbtn = "nul" -input_player15_start = "nul" -input_player15_start_btn = "nul" -input_player15_start_axis = "nul" -input_player15_start_mbtn = "nul" -input_player15_up = "nul" -input_player15_up_btn = "nul" -input_player15_up_axis = "nul" -input_player15_up_mbtn = "nul" -input_player15_down = "nul" -input_player15_down_btn = "nul" -input_player15_down_axis = "nul" -input_player15_down_mbtn = "nul" -input_player15_left = "nul" -input_player15_left_btn = "nul" -input_player15_left_axis = "nul" -input_player15_left_mbtn = "nul" -input_player15_right = "nul" -input_player15_right_btn = "nul" -input_player15_right_axis = "nul" -input_player15_right_mbtn = "nul" -input_player15_a = "nul" -input_player15_a_btn = "nul" -input_player15_a_axis = "nul" -input_player15_a_mbtn = "nul" -input_player15_x = "nul" -input_player15_x_btn = "nul" -input_player15_x_axis = "nul" -input_player15_x_mbtn = "nul" -input_player15_l = "nul" -input_player15_l_btn = "nul" -input_player15_l_axis = "nul" -input_player15_l_mbtn = "nul" -input_player15_r = "nul" -input_player15_r_btn = "nul" -input_player15_r_axis = "nul" -input_player15_r_mbtn = "nul" -input_player15_l2 = "nul" -input_player15_l2_btn = "nul" -input_player15_l2_axis = "nul" -input_player15_l2_mbtn = "nul" -input_player15_r2 = "nul" -input_player15_r2_btn = "nul" -input_player15_r2_axis = "nul" -input_player15_r2_mbtn = "nul" -input_player15_l3 = "nul" -input_player15_l3_btn = "nul" -input_player15_l3_axis = "nul" -input_player15_l3_mbtn = "nul" -input_player15_r3 = "nul" -input_player15_r3_btn = "nul" -input_player15_r3_axis = "nul" -input_player15_r3_mbtn = "nul" -input_player15_l_x_plus = "nul" -input_player15_l_x_plus_btn = "nul" -input_player15_l_x_plus_axis = "nul" -input_player15_l_x_plus_mbtn = "nul" -input_player15_l_x_minus = "nul" -input_player15_l_x_minus_btn = "nul" -input_player15_l_x_minus_axis = "nul" -input_player15_l_x_minus_mbtn = "nul" -input_player15_l_y_plus = "nul" -input_player15_l_y_plus_btn = "nul" -input_player15_l_y_plus_axis = "nul" -input_player15_l_y_plus_mbtn = "nul" -input_player15_l_y_minus = "nul" -input_player15_l_y_minus_btn = "nul" -input_player15_l_y_minus_axis = "nul" -input_player15_l_y_minus_mbtn = "nul" -input_player15_r_x_plus = "nul" -input_player15_r_x_plus_btn = "nul" -input_player15_r_x_plus_axis = "nul" -input_player15_r_x_plus_mbtn = "nul" -input_player15_r_x_minus = "nul" -input_player15_r_x_minus_btn = "nul" -input_player15_r_x_minus_axis = "nul" -input_player15_r_x_minus_mbtn = "nul" -input_player15_r_y_plus = "nul" -input_player15_r_y_plus_btn = "nul" -input_player15_r_y_plus_axis = "nul" -input_player15_r_y_plus_mbtn = "nul" -input_player15_r_y_minus = "nul" -input_player15_r_y_minus_btn = "nul" -input_player15_r_y_minus_axis = "nul" -input_player15_r_y_minus_mbtn = "nul" -input_player15_gun_trigger = "nul" -input_player15_gun_trigger_btn = "nul" -input_player15_gun_trigger_axis = "nul" -input_player15_gun_trigger_mbtn = "nul" -input_player15_gun_offscreen_shot = "nul" -input_player15_gun_offscreen_shot_btn = "nul" -input_player15_gun_offscreen_shot_axis = "nul" -input_player15_gun_offscreen_shot_mbtn = "nul" -input_player15_gun_aux_a = "nul" -input_player15_gun_aux_a_btn = "nul" -input_player15_gun_aux_a_axis = "nul" -input_player15_gun_aux_a_mbtn = "nul" -input_player15_gun_aux_b = "nul" -input_player15_gun_aux_b_btn = "nul" -input_player15_gun_aux_b_axis = "nul" -input_player15_gun_aux_b_mbtn = "nul" -input_player15_gun_aux_c = "nul" -input_player15_gun_aux_c_btn = "nul" -input_player15_gun_aux_c_axis = "nul" -input_player15_gun_aux_c_mbtn = "nul" -input_player15_gun_start = "nul" -input_player15_gun_start_btn = "nul" -input_player15_gun_start_axis = "nul" -input_player15_gun_start_mbtn = "nul" -input_player15_gun_select = "nul" -input_player15_gun_select_btn = "nul" -input_player15_gun_select_axis = "nul" -input_player15_gun_select_mbtn = "nul" -input_player15_gun_dpad_up = "nul" -input_player15_gun_dpad_up_btn = "nul" -input_player15_gun_dpad_up_axis = "nul" -input_player15_gun_dpad_up_mbtn = "nul" -input_player15_gun_dpad_down = "nul" -input_player15_gun_dpad_down_btn = "nul" -input_player15_gun_dpad_down_axis = "nul" -input_player15_gun_dpad_down_mbtn = "nul" -input_player15_gun_dpad_left = "nul" -input_player15_gun_dpad_left_btn = "nul" -input_player15_gun_dpad_left_axis = "nul" -input_player15_gun_dpad_left_mbtn = "nul" -input_player15_gun_dpad_right = "nul" -input_player15_gun_dpad_right_btn = "nul" -input_player15_gun_dpad_right_axis = "nul" -input_player15_gun_dpad_right_mbtn = "nul" -input_player15_turbo = "nul" -input_player15_turbo_btn = "nul" -input_player15_turbo_axis = "nul" -input_player15_turbo_mbtn = "nul" -input_player16_b = "nul" -input_player16_b_btn = "nul" -input_player16_b_axis = "nul" -input_player16_b_mbtn = "nul" -input_player16_y = "nul" -input_player16_y_btn = "nul" -input_player16_y_axis = "nul" -input_player16_y_mbtn = "nul" -input_player16_select = "nul" -input_player16_select_btn = "nul" -input_player16_select_axis = "nul" -input_player16_select_mbtn = "nul" -input_player16_start = "nul" -input_player16_start_btn = "nul" -input_player16_start_axis = "nul" -input_player16_start_mbtn = "nul" -input_player16_up = "nul" -input_player16_up_btn = "nul" -input_player16_up_axis = "nul" -input_player16_up_mbtn = "nul" -input_player16_down = "nul" -input_player16_down_btn = "nul" -input_player16_down_axis = "nul" -input_player16_down_mbtn = "nul" -input_player16_left = "nul" -input_player16_left_btn = "nul" -input_player16_left_axis = "nul" -input_player16_left_mbtn = "nul" -input_player16_right = "nul" -input_player16_right_btn = "nul" -input_player16_right_axis = "nul" -input_player16_right_mbtn = "nul" -input_player16_a = "nul" -input_player16_a_btn = "nul" -input_player16_a_axis = "nul" -input_player16_a_mbtn = "nul" -input_player16_x = "nul" -input_player16_x_btn = "nul" -input_player16_x_axis = "nul" -input_player16_x_mbtn = "nul" -input_player16_l = "nul" -input_player16_l_btn = "nul" -input_player16_l_axis = "nul" -input_player16_l_mbtn = "nul" -input_player16_r = "nul" -input_player16_r_btn = "nul" -input_player16_r_axis = "nul" -input_player16_r_mbtn = "nul" -input_player16_l2 = "nul" -input_player16_l2_btn = "nul" -input_player16_l2_axis = "nul" -input_player16_l2_mbtn = "nul" -input_player16_r2 = "nul" -input_player16_r2_btn = "nul" -input_player16_r2_axis = "nul" -input_player16_r2_mbtn = "nul" -input_player16_l3 = "nul" -input_player16_l3_btn = "nul" -input_player16_l3_axis = "nul" -input_player16_l3_mbtn = "nul" -input_player16_r3 = "nul" -input_player16_r3_btn = "nul" -input_player16_r3_axis = "nul" -input_player16_r3_mbtn = "nul" -input_player16_l_x_plus = "nul" -input_player16_l_x_plus_btn = "nul" -input_player16_l_x_plus_axis = "nul" -input_player16_l_x_plus_mbtn = "nul" -input_player16_l_x_minus = "nul" -input_player16_l_x_minus_btn = "nul" -input_player16_l_x_minus_axis = "nul" -input_player16_l_x_minus_mbtn = "nul" -input_player16_l_y_plus = "nul" -input_player16_l_y_plus_btn = "nul" -input_player16_l_y_plus_axis = "nul" -input_player16_l_y_plus_mbtn = "nul" -input_player16_l_y_minus = "nul" -input_player16_l_y_minus_btn = "nul" -input_player16_l_y_minus_axis = "nul" -input_player16_l_y_minus_mbtn = "nul" -input_player16_r_x_plus = "nul" -input_player16_r_x_plus_btn = "nul" -input_player16_r_x_plus_axis = "nul" -input_player16_r_x_plus_mbtn = "nul" -input_player16_r_x_minus = "nul" -input_player16_r_x_minus_btn = "nul" -input_player16_r_x_minus_axis = "nul" -input_player16_r_x_minus_mbtn = "nul" -input_player16_r_y_plus = "nul" -input_player16_r_y_plus_btn = "nul" -input_player16_r_y_plus_axis = "nul" -input_player16_r_y_plus_mbtn = "nul" -input_player16_r_y_minus = "nul" -input_player16_r_y_minus_btn = "nul" -input_player16_r_y_minus_axis = "nul" -input_player16_r_y_minus_mbtn = "nul" -input_player16_gun_trigger = "nul" -input_player16_gun_trigger_btn = "nul" -input_player16_gun_trigger_axis = "nul" -input_player16_gun_trigger_mbtn = "nul" -input_player16_gun_offscreen_shot = "nul" -input_player16_gun_offscreen_shot_btn = "nul" -input_player16_gun_offscreen_shot_axis = "nul" -input_player16_gun_offscreen_shot_mbtn = "nul" -input_player16_gun_aux_a = "nul" -input_player16_gun_aux_a_btn = "nul" -input_player16_gun_aux_a_axis = "nul" -input_player16_gun_aux_a_mbtn = "nul" -input_player16_gun_aux_b = "nul" -input_player16_gun_aux_b_btn = "nul" -input_player16_gun_aux_b_axis = "nul" -input_player16_gun_aux_b_mbtn = "nul" -input_player16_gun_aux_c = "nul" -input_player16_gun_aux_c_btn = "nul" -input_player16_gun_aux_c_axis = "nul" -input_player16_gun_aux_c_mbtn = "nul" -input_player16_gun_start = "nul" -input_player16_gun_start_btn = "nul" -input_player16_gun_start_axis = "nul" -input_player16_gun_start_mbtn = "nul" -input_player16_gun_select = "nul" -input_player16_gun_select_btn = "nul" -input_player16_gun_select_axis = "nul" -input_player16_gun_select_mbtn = "nul" -input_player16_gun_dpad_up = "nul" -input_player16_gun_dpad_up_btn = "nul" -input_player16_gun_dpad_up_axis = "nul" -input_player16_gun_dpad_up_mbtn = "nul" -input_player16_gun_dpad_down = "nul" -input_player16_gun_dpad_down_btn = "nul" -input_player16_gun_dpad_down_axis = "nul" -input_player16_gun_dpad_down_mbtn = "nul" -input_player16_gun_dpad_left = "nul" -input_player16_gun_dpad_left_btn = "nul" -input_player16_gun_dpad_left_axis = "nul" -input_player16_gun_dpad_left_mbtn = "nul" -input_player16_gun_dpad_right = "nul" -input_player16_gun_dpad_right_btn = "nul" -input_player16_gun_dpad_right_axis = "nul" -input_player16_gun_dpad_right_mbtn = "nul" -input_player16_turbo = "nul" -input_player16_turbo_btn = "nul" -input_player16_turbo_axis = "nul" -input_player16_turbo_mbtn = "nul" -content_history_path = "/switch/content_history.lpl" -content_favorites_path = "/switch/content_favorites.lpl" -content_music_history_path = "/switch/content_music_history.lpl" -content_video_history_path = "/switch/content_video_history.lpl" -content_image_history_path = "/switch/content_image_history.lpl" -content_show_settings_password = "" -kiosk_mode_password = "" -netplay_nickname = "" -video_filter = "" -audio_dsp_plugin = "" -core_updater_buildbot_url = "" -libretro_directory = "" -core_options_path = "" -libretro_info_path = "" -video_shader = "" -content_database_path = "" -cheat_database_path = "" -menu_wallpaper = "" -video_font_path = "" -cursor_directory = "" -content_history_dir = "" -cache_directory = "" -input_remapping_directory = "" -resampler_directory = "" -joypad_autoconfig_dir = "" -libretro_path = "" -recording_output_directory = "" -recording_config_directory = "" -xmb_font = "" -playlist_names = "" -playlist_cores = "" -audio_device = "" -camera_device = "" -video_context_driver = "" -input_keyboard_layout = "" -bundle_assets_src_path = "" -bundle_assets_dst_path = "" -bundle_assets_dst_path_subdir = "" +core_updater_buildbot_assets_url = "http://buildbot.libretro.com/assets/" +input_overlay = "./NintendoSNES.cfg" +screenshot_directory = "default" +system_directory = "default" +video_shader_dir = "default" +video_filter_dir = "default" +core_assets_directory = "default" +assets_directory = "default" +dynamic_wallpapers_directory = "default" +thumbnails_directory = "default" +playlist_directory = "default" +audio_filter_dir = "default" +savefile_directory = "default" +savestate_directory = "default" +rgui_browser_directory = "/switch" +rgui_config_directory = "/switch" +video_driver = "switch" +record_driver = "null" +camera_driver = "null" +wifi_driver = "null" +location_driver = "null" +menu_driver = "rgui" +audio_driver = "switch" +audio_resampler = "sinc" +input_driver = "switch" +input_joypad_driver = "switch" +led_driver = "null" +netplay_mitm_server = "nyc" +video_aspect_ratio = "-1.000000" +video_scale = "3.000000" +video_refresh_rate = "59.940060" +audio_rate_control_delta = "0.005000" +audio_max_timing_skew = "0.050000" +audio_volume = "0.000000" +audio_mixer_volume = "0.000000" +menu_wallpaper_opacity = "0.300000" +menu_framebuffer_opacity = "0.900000" +menu_footer_opacity = "1.000000" +menu_header_opacity = "1.000000" +video_message_pos_x = "0.050000" +video_message_pos_y = "0.050000" +video_font_size = "32.000000" +fastforward_ratio = "0.000000" +slowmotion_ratio = "1.000000" +input_axis_threshold = "0.500000" +video_msg_bgcolor_opacity = "1.000000" +state_slot = "0" +input_bind_timeout = "5" +input_turbo_period = "6" +input_duty_cycle = "3" +input_max_users = "5" +input_menu_toggle_gamepad_combo = "2" +audio_latency = "64" +audio_resampler_quality = "3" +audio_block_frames = "0" +rewind_granularity = "1" +autosave_interval = "0" +libretro_log_level = "1" +keyboard_gamepad_mapping_type = "1" +input_poll_type_behavior = "2" +video_monitor_index = "0" +video_fullscreen_x = "0" +video_fullscreen_y = "0" +video_window_x = "0" +video_window_y = "0" +video_window_opacity = "100" +dpi_override_value = "200" +menu_thumbnails = "3" +materialui_menu_color_theme = "0" +menu_shader_pipeline = "2" +audio_out_rate = "48000" +custom_viewport_width = "1280" +crt_switch_resolution_super = "2560" +custom_viewport_height = "720" +custom_viewport_x = "0" +custom_viewport_y = "0" +content_history_size = "100" +video_hard_sync_frames = "0" +video_frame_delay = "0" +video_max_swapchain_images = "3" +video_swap_interval = "1" +video_rotation = "0" +aspect_ratio_index = "21" +bundle_assets_extract_version_current = "0" +bundle_assets_extract_last_version = "0" +input_overlay_show_physical_inputs_port = "0" +video_msg_bgcolor_red = "0" +video_msg_bgcolor_green = "0" +video_msg_bgcolor_blue = "0" +run_ahead_frames = "1" +input_device_p1 = "0" +input_player1_joypad_index = "0" +input_libretro_device_p1 = "1" +input_player1_analog_dpad_mode = "1" +input_player1_mouse_index = "0" +input_device_p2 = "0" +input_player2_joypad_index = "1" +input_libretro_device_p2 = "1" +input_player2_analog_dpad_mode = "0" +input_player2_mouse_index = "0" +input_device_p3 = "0" +input_player3_joypad_index = "2" +input_libretro_device_p3 = "1" +input_player3_analog_dpad_mode = "0" +input_player3_mouse_index = "0" +input_device_p4 = "0" +input_player4_joypad_index = "3" +input_libretro_device_p4 = "1" +input_player4_analog_dpad_mode = "0" +input_player4_mouse_index = "0" +input_device_p5 = "0" +input_player5_joypad_index = "4" +input_libretro_device_p5 = "1" +input_player5_analog_dpad_mode = "0" +input_player5_mouse_index = "0" +input_device_p6 = "0" +input_player6_joypad_index = "5" +input_libretro_device_p6 = "1" +input_player6_analog_dpad_mode = "0" +input_player6_mouse_index = "0" +input_device_p7 = "0" +input_player7_joypad_index = "6" +input_libretro_device_p7 = "1" +input_player7_analog_dpad_mode = "0" +input_player7_mouse_index = "0" +input_device_p8 = "0" +input_player8_joypad_index = "7" +input_libretro_device_p8 = "1" +input_player8_analog_dpad_mode = "0" +input_player8_mouse_index = "0" +input_device_p9 = "0" +input_player9_joypad_index = "8" +input_libretro_device_p9 = "1" +input_player9_analog_dpad_mode = "0" +input_player9_mouse_index = "0" +input_device_p10 = "0" +input_player10_joypad_index = "9" +input_libretro_device_p10 = "1" +input_player10_analog_dpad_mode = "0" +input_player10_mouse_index = "0" +input_device_p11 = "0" +input_player11_joypad_index = "10" +input_libretro_device_p11 = "1" +input_player11_analog_dpad_mode = "0" +input_player11_mouse_index = "0" +input_device_p12 = "0" +input_player12_joypad_index = "11" +input_libretro_device_p12 = "1" +input_player12_analog_dpad_mode = "0" +input_player12_mouse_index = "0" +input_device_p13 = "0" +input_player13_joypad_index = "12" +input_libretro_device_p13 = "1" +input_player13_analog_dpad_mode = "0" +input_player13_mouse_index = "0" +input_device_p14 = "0" +input_player14_joypad_index = "13" +input_libretro_device_p14 = "1" +input_player14_analog_dpad_mode = "0" +input_player14_mouse_index = "0" +input_device_p15 = "0" +input_player15_joypad_index = "14" +input_libretro_device_p15 = "1" +input_player15_analog_dpad_mode = "0" +input_player15_mouse_index = "0" +input_device_p16 = "0" +input_player16_joypad_index = "15" +input_libretro_device_p16 = "1" +input_player16_analog_dpad_mode = "0" +input_player16_mouse_index = "0" +automatically_add_content_to_playlist = "false" +ui_companion_start_on_boot = "true" +ui_companion_enable = "false" +ui_companion_toggle = "false" +desktop_menu_enable = "false" +video_gpu_record = "false" +input_remap_binds_enable = "true" +all_users_control_menu = "false" +menu_swap_ok_cancel_buttons = "false" +input_descriptor_label_show = "true" +input_descriptor_hide_unbound = "false" +load_dummy_on_core_shutdown = "true" +check_firmware_before_loading = "false" +builtin_mediaplayer_enable = "false" +builtin_imageviewer_enable = "true" +fps_show = "false" +statistics_show = "false" +framecount_show = "true" +ui_menubar_enable = "true" +suspend_screensaver_enable = "true" +rewind_enable = "false" +run_ahead_enabled = "false" +run_ahead_secondary_instance = "false" +run_ahead_hide_warnings = "false" +audio_sync = "true" +video_shader_enable = "false" +video_shader_watch_files = "false" +video_aspect_ratio_auto = "false" +video_allow_rotate = "true" +video_windowed_fullscreen = "true" +video_crop_overscan = "true" +video_scale_integer = "false" +video_smooth = "false" +video_force_aspect = "false" +video_threaded = "false" +video_shared_context = "false" +auto_screenshot_filename = "true" +video_force_srgb_disable = "false" +video_fullscreen = "false" +bundle_assets_extract_enable = "false" +video_vsync = "false" +video_hard_sync = "false" +video_black_frame_insertion = "false" +crt_switch_resolution = "false" +video_disable_composition = "false" +pause_nonactive = "true" +video_gpu_screenshot = "true" +video_post_filter_record = "false" +keyboard_gamepad_enable = "true" +core_set_supports_no_game_enable = "true" +audio_enable = "true" +audio_enable_menu = "false" +audio_mute_enable = "false" +audio_mixer_mute_enable = "false" +location_allow = "false" +video_font_enable = "true" +core_updater_auto_extract_archive = "true" +camera_allow = "false" +menu_unified_controls = "false" +menu_throttle_framerate = "true" +menu_linear_filter = "true" +menu_horizontal_animation = "true" +dpi_override_enable = "false" +menu_pause_libretro = "true" +menu_mouse_enable = "false" +menu_pointer_enable = "false" +menu_timedate_enable = "true" +menu_battery_level_enable = "true" +menu_core_enable = "true" +menu_dynamic_wallpaper_enable = "false" +quick_menu_show_take_screenshot = "true" +quick_menu_show_save_load_state = "true" +quick_menu_show_undo_save_load_state = "true" +quick_menu_show_add_to_favorites = "true" +quick_menu_show_options = "true" +quick_menu_show_controls = "true" +quick_menu_show_cheats = "true" +quick_menu_show_shaders = "true" +quick_menu_show_save_core_overrides = "true" +quick_menu_show_save_game_overrides = "true" +quick_menu_show_save_content_dir_overrides = "true" +quick_menu_show_information = "true" +kiosk_mode_enable = "false" +content_show_settings = "true" +content_show_favorites = "true" +content_show_music = "true" +content_show_history = "true" +content_show_add = "true" +content_show_playlists = "true" +menu_show_load_core = "true" +menu_show_load_content = "true" +menu_show_information = "true" +menu_show_configurations = "true" +menu_show_latency = "true" +menu_show_rewind = "true" +menu_show_overlays = "true" +menu_show_help = "true" +menu_show_quit_retroarch = "true" +menu_show_reboot = "true" +menu_show_online_updater = "true" +menu_show_core_updater = "true" +filter_by_current_core = "false" +rgui_show_start_screen = "false" +menu_navigation_wraparound_enable = "true" +menu_navigation_browser_filter_supported_extensions_enable = "true" +menu_show_advanced_settings = "false" +rgui_background_filler_thickness_enable = "true" +rgui_border_filler_thickness_enable = "true" +rgui_border_filler_enable = "true" +block_sram_overwrite = "false" +savestate_auto_index = "false" +savestate_auto_save = "false" +savestate_auto_load = "false" +savestate_thumbnail_enable = "false" +history_list_enable = "true" +playlist_entry_remove = "true" +playlist_entry_rename = "true" +game_specific_options = "true" +auto_overrides_enable = "true" +auto_remaps_enable = "true" +auto_shaders_enable = "true" +sort_savefiles_enable = "false" +sort_savestates_enable = "false" +config_save_on_exit = "true" +show_hidden_files = "false" +input_autodetect_enable = "true" +audio_rate_control = "true" +savestates_in_content_dir = "false" +savefiles_in_content_dir = "false" +systemfiles_in_content_dir = "false" +screenshots_in_content_dir = "false" +video_msg_bgcolor_enable = "false" +video_window_show_decorations = "true" +log_verbosity = "false" +perfcnt_enable = "false" +video_message_color = "ffff00" +menu_entry_normal_color = "ffffffff" +menu_entry_hover_color = "ff64ff64" +menu_title_color = "ff64ff64" +gamma_correction = "false" +flicker_filter_enable = "false" +soft_filter_enable = "false" +soft_filter_index = "0" +current_resolution_id = "0" +flicker_filter_index = "0" +input_player1_b = "z" +input_player1_b_btn = "nul" +input_player1_b_axis = "nul" +input_player1_b_mbtn = "nul" +input_player1_y = "a" +input_player1_y_btn = "nul" +input_player1_y_axis = "nul" +input_player1_y_mbtn = "nul" +input_player1_select = "rshift" +input_player1_select_btn = "nul" +input_player1_select_axis = "nul" +input_player1_select_mbtn = "nul" +input_player1_start = "enter" +input_player1_start_btn = "nul" +input_player1_start_axis = "nul" +input_player1_start_mbtn = "nul" +input_player1_up = "up" +input_player1_up_btn = "nul" +input_player1_up_axis = "nul" +input_player1_up_mbtn = "nul" +input_player1_down = "down" +input_player1_down_btn = "nul" +input_player1_down_axis = "nul" +input_player1_down_mbtn = "nul" +input_player1_left = "left" +input_player1_left_btn = "nul" +input_player1_left_axis = "nul" +input_player1_left_mbtn = "nul" +input_player1_right = "right" +input_player1_right_btn = "nul" +input_player1_right_axis = "nul" +input_player1_right_mbtn = "nul" +input_player1_a = "x" +input_player1_a_btn = "nul" +input_player1_a_axis = "nul" +input_player1_a_mbtn = "nul" +input_player1_x = "s" +input_player1_x_btn = "nul" +input_player1_x_axis = "nul" +input_player1_x_mbtn = "nul" +input_player1_l = "nul" +input_player1_l_btn = "8" +input_player1_l_axis = "nul" +input_player1_l_mbtn = "nul" +input_player1_r = "nul" +input_player1_r_btn = "9" +input_player1_r_axis = "nul" +input_player1_r_mbtn = "nul" +input_player1_l2 = "nul" +input_player1_l2_btn = "6" +input_player1_l2_axis = "nul" +input_player1_l2_mbtn = "nul" +input_player1_r2 = "nul" +input_player1_r2_btn = "7" +input_player1_r2_axis = "nul" +input_player1_r2_mbtn = "nul" +input_player1_l3 = "nul" +input_player1_l3_btn = "nul" +input_player1_l3_axis = "nul" +input_player1_l3_mbtn = "nul" +input_player1_r3 = "nul" +input_player1_r3_btn = "nul" +input_player1_r3_axis = "nul" +input_player1_r3_mbtn = "nul" +input_player1_l_x_plus = "nul" +input_player1_l_x_plus_btn = "nul" +input_player1_l_x_plus_axis = "nul" +input_player1_l_x_plus_mbtn = "nul" +input_player1_l_x_minus = "nul" +input_player1_l_x_minus_btn = "nul" +input_player1_l_x_minus_axis = "nul" +input_player1_l_x_minus_mbtn = "nul" +input_player1_l_y_plus = "nul" +input_player1_l_y_plus_btn = "nul" +input_player1_l_y_plus_axis = "nul" +input_player1_l_y_plus_mbtn = "nul" +input_player1_l_y_minus = "nul" +input_player1_l_y_minus_btn = "nul" +input_player1_l_y_minus_axis = "nul" +input_player1_l_y_minus_mbtn = "nul" +input_player1_r_x_plus = "nul" +input_player1_r_x_plus_btn = "nul" +input_player1_r_x_plus_axis = "nul" +input_player1_r_x_plus_mbtn = "nul" +input_player1_r_x_minus = "nul" +input_player1_r_x_minus_btn = "nul" +input_player1_r_x_minus_axis = "nul" +input_player1_r_x_minus_mbtn = "nul" +input_player1_r_y_plus = "nul" +input_player1_r_y_plus_btn = "nul" +input_player1_r_y_plus_axis = "nul" +input_player1_r_y_plus_mbtn = "nul" +input_player1_r_y_minus = "nul" +input_player1_r_y_minus_btn = "nul" +input_player1_r_y_minus_axis = "nul" +input_player1_r_y_minus_mbtn = "nul" +input_player1_gun_trigger = "nul" +input_player1_gun_trigger_btn = "nul" +input_player1_gun_trigger_axis = "nul" +input_player1_gun_trigger_mbtn = "nul" +input_player1_gun_offscreen_shot = "nul" +input_player1_gun_offscreen_shot_btn = "nul" +input_player1_gun_offscreen_shot_axis = "nul" +input_player1_gun_offscreen_shot_mbtn = "nul" +input_player1_gun_aux_a = "nul" +input_player1_gun_aux_a_btn = "nul" +input_player1_gun_aux_a_axis = "nul" +input_player1_gun_aux_a_mbtn = "nul" +input_player1_gun_aux_b = "nul" +input_player1_gun_aux_b_btn = "nul" +input_player1_gun_aux_b_axis = "nul" +input_player1_gun_aux_b_mbtn = "nul" +input_player1_gun_aux_c = "nul" +input_player1_gun_aux_c_btn = "nul" +input_player1_gun_aux_c_axis = "nul" +input_player1_gun_aux_c_mbtn = "nul" +input_player1_gun_start = "nul" +input_player1_gun_start_btn = "nul" +input_player1_gun_start_axis = "nul" +input_player1_gun_start_mbtn = "nul" +input_player1_gun_select = "nul" +input_player1_gun_select_btn = "nul" +input_player1_gun_select_axis = "nul" +input_player1_gun_select_mbtn = "nul" +input_player1_gun_dpad_up = "nul" +input_player1_gun_dpad_up_btn = "nul" +input_player1_gun_dpad_up_axis = "nul" +input_player1_gun_dpad_up_mbtn = "nul" +input_player1_gun_dpad_down = "nul" +input_player1_gun_dpad_down_btn = "nul" +input_player1_gun_dpad_down_axis = "nul" +input_player1_gun_dpad_down_mbtn = "nul" +input_player1_gun_dpad_left = "nul" +input_player1_gun_dpad_left_btn = "nul" +input_player1_gun_dpad_left_axis = "nul" +input_player1_gun_dpad_left_mbtn = "nul" +input_player1_gun_dpad_right = "nul" +input_player1_gun_dpad_right_btn = "nul" +input_player1_gun_dpad_right_axis = "nul" +input_player1_gun_dpad_right_mbtn = "nul" +input_player1_turbo = "nul" +input_player1_turbo_btn = "nul" +input_player1_turbo_axis = "nul" +input_player1_turbo_mbtn = "nul" +input_toggle_fast_forward = "nul" +input_toggle_fast_forward_btn = "nul" +input_toggle_fast_forward_axis = "nul" +input_toggle_fast_forward_mbtn = "nul" +input_hold_fast_forward = "nul" +input_hold_fast_forward_btn = "nul" +input_hold_fast_forward_axis = "nul" +input_hold_fast_forward_mbtn = "nul" +input_toggle_slowmotion = "nul" +input_toggle_slowmotion_btn = "nul" +input_toggle_slowmotion_axis = "+2" +input_toggle_slowmotion_mbtn = "nul" +input_hold_slowmotion = "nul" +input_hold_slowmotion_btn = "nul" +input_hold_slowmotion_axis = "nul" +input_hold_slowmotion_mbtn = "nul" +input_load_state = "nul" +input_load_state_btn = "6" +input_load_state_axis = "nul" +input_load_state_mbtn = "nul" +input_save_state = "nul" +input_save_state_btn = "7" +input_save_state_axis = "nul" +input_save_state_mbtn = "nul" +input_toggle_fullscreen = "f" +input_toggle_fullscreen_btn = "nul" +input_toggle_fullscreen_axis = "nul" +input_toggle_fullscreen_mbtn = "nul" +input_exit_emulator = "escape" +input_exit_emulator_btn = "nul" +input_exit_emulator_axis = "nul" +input_exit_emulator_mbtn = "nul" +input_state_slot_increase = "f7" +input_state_slot_increase_btn = "nul" +input_state_slot_increase_axis = "nul" +input_state_slot_increase_mbtn = "nul" +input_state_slot_decrease = "f6" +input_state_slot_decrease_btn = "nul" +input_state_slot_decrease_axis = "nul" +input_state_slot_decrease_mbtn = "nul" +input_rewind = "nul" +input_rewind_btn = "nul" +input_rewind_axis = "-2" +input_rewind_mbtn = "nul" +input_movie_record_toggle = "o" +input_movie_record_toggle_btn = "nul" +input_movie_record_toggle_axis = "nul" +input_movie_record_toggle_mbtn = "nul" +input_pause_toggle = "p" +input_pause_toggle_btn = "nul" +input_pause_toggle_axis = "nul" +input_pause_toggle_mbtn = "nul" +input_frame_advance = "k" +input_frame_advance_btn = "nul" +input_frame_advance_axis = "nul" +input_frame_advance_mbtn = "nul" +input_reset = "h" +input_reset_btn = "nul" +input_reset_axis = "nul" +input_reset_mbtn = "nul" +input_shader_next = "m" +input_shader_next_btn = "nul" +input_shader_next_axis = "nul" +input_shader_next_mbtn = "nul" +input_shader_prev = "n" +input_shader_prev_btn = "nul" +input_shader_prev_axis = "nul" +input_shader_prev_mbtn = "nul" +input_cheat_index_plus = "y" +input_cheat_index_plus_btn = "nul" +input_cheat_index_plus_axis = "nul" +input_cheat_index_plus_mbtn = "nul" +input_cheat_index_minus = "t" +input_cheat_index_minus_btn = "nul" +input_cheat_index_minus_axis = "nul" +input_cheat_index_minus_mbtn = "nul" +input_cheat_toggle = "u" +input_cheat_toggle_btn = "nul" +input_cheat_toggle_axis = "nul" +input_cheat_toggle_mbtn = "nul" +input_screenshot = "f8" +input_screenshot_btn = "nul" +input_screenshot_axis = "nul" +input_screenshot_mbtn = "nul" +input_audio_mute = "f9" +input_audio_mute_btn = "nul" +input_audio_mute_axis = "nul" +input_audio_mute_mbtn = "nul" +input_osk_toggle = "f12" +input_osk_toggle_btn = "nul" +input_osk_toggle_axis = "nul" +input_osk_toggle_mbtn = "nul" +input_netplay_game_watch = "i" +input_netplay_game_watch_btn = "nul" +input_netplay_game_watch_axis = "nul" +input_netplay_game_watch_mbtn = "nul" +input_enable_hotkey = "nul" +input_enable_hotkey_btn = "nul" +input_enable_hotkey_axis = "nul" +input_enable_hotkey_mbtn = "nul" +input_volume_up = "add" +input_volume_up_btn = "nul" +input_volume_up_axis = "nul" +input_volume_up_mbtn = "nul" +input_volume_down = "subtract" +input_volume_down_btn = "nul" +input_volume_down_axis = "nul" +input_volume_down_mbtn = "nul" +input_overlay_next = "nul" +input_overlay_next_btn = "nul" +input_overlay_next_axis = "nul" +input_overlay_next_mbtn = "nul" +input_disk_eject_toggle = "nul" +input_disk_eject_toggle_btn = "nul" +input_disk_eject_toggle_axis = "nul" +input_disk_eject_toggle_mbtn = "nul" +input_disk_next = "nul" +input_disk_next_btn = "nul" +input_disk_next_axis = "nul" +input_disk_next_mbtn = "nul" +input_disk_prev = "nul" +input_disk_prev_btn = "nul" +input_disk_prev_axis = "nul" +input_disk_prev_mbtn = "nul" +input_grab_mouse_toggle = "f11" +input_grab_mouse_toggle_btn = "nul" +input_grab_mouse_toggle_axis = "nul" +input_grab_mouse_toggle_mbtn = "nul" +input_game_focus_toggle = "scroll_lock" +input_game_focus_toggle_btn = "nul" +input_game_focus_toggle_axis = "nul" +input_game_focus_toggle_mbtn = "nul" +input_desktop_menu_toggle = "f5" +input_desktop_menu_toggle_btn = "nul" +input_desktop_menu_toggle_axis = "nul" +input_desktop_menu_toggle_mbtn = "nul" +input_menu_toggle = "f1" +input_menu_toggle_btn = "nul" +input_menu_toggle_axis = "nul" +input_menu_toggle_mbtn = "nul" +input_player2_b = "nul" +input_player2_b_btn = "nul" +input_player2_b_axis = "nul" +input_player2_b_mbtn = "nul" +input_player2_y = "nul" +input_player2_y_btn = "nul" +input_player2_y_axis = "nul" +input_player2_y_mbtn = "nul" +input_player2_select = "nul" +input_player2_select_btn = "nul" +input_player2_select_axis = "nul" +input_player2_select_mbtn = "nul" +input_player2_start = "nul" +input_player2_start_btn = "nul" +input_player2_start_axis = "nul" +input_player2_start_mbtn = "nul" +input_player2_up = "nul" +input_player2_up_btn = "nul" +input_player2_up_axis = "nul" +input_player2_up_mbtn = "nul" +input_player2_down = "nul" +input_player2_down_btn = "nul" +input_player2_down_axis = "nul" +input_player2_down_mbtn = "nul" +input_player2_left = "nul" +input_player2_left_btn = "nul" +input_player2_left_axis = "nul" +input_player2_left_mbtn = "nul" +input_player2_right = "nul" +input_player2_right_btn = "nul" +input_player2_right_axis = "nul" +input_player2_right_mbtn = "nul" +input_player2_a = "nul" +input_player2_a_btn = "nul" +input_player2_a_axis = "nul" +input_player2_a_mbtn = "nul" +input_player2_x = "nul" +input_player2_x_btn = "nul" +input_player2_x_axis = "nul" +input_player2_x_mbtn = "nul" +input_player2_l = "nul" +input_player2_l_btn = "nul" +input_player2_l_axis = "nul" +input_player2_l_mbtn = "nul" +input_player2_r = "nul" +input_player2_r_btn = "nul" +input_player2_r_axis = "nul" +input_player2_r_mbtn = "nul" +input_player2_l2 = "nul" +input_player2_l2_btn = "nul" +input_player2_l2_axis = "nul" +input_player2_l2_mbtn = "nul" +input_player2_r2 = "nul" +input_player2_r2_btn = "nul" +input_player2_r2_axis = "nul" +input_player2_r2_mbtn = "nul" +input_player2_l3 = "nul" +input_player2_l3_btn = "nul" +input_player2_l3_axis = "nul" +input_player2_l3_mbtn = "nul" +input_player2_r3 = "nul" +input_player2_r3_btn = "nul" +input_player2_r3_axis = "nul" +input_player2_r3_mbtn = "nul" +input_player2_l_x_plus = "nul" +input_player2_l_x_plus_btn = "nul" +input_player2_l_x_plus_axis = "nul" +input_player2_l_x_plus_mbtn = "nul" +input_player2_l_x_minus = "nul" +input_player2_l_x_minus_btn = "nul" +input_player2_l_x_minus_axis = "nul" +input_player2_l_x_minus_mbtn = "nul" +input_player2_l_y_plus = "nul" +input_player2_l_y_plus_btn = "nul" +input_player2_l_y_plus_axis = "nul" +input_player2_l_y_plus_mbtn = "nul" +input_player2_l_y_minus = "nul" +input_player2_l_y_minus_btn = "nul" +input_player2_l_y_minus_axis = "nul" +input_player2_l_y_minus_mbtn = "nul" +input_player2_r_x_plus = "nul" +input_player2_r_x_plus_btn = "nul" +input_player2_r_x_plus_axis = "nul" +input_player2_r_x_plus_mbtn = "nul" +input_player2_r_x_minus = "nul" +input_player2_r_x_minus_btn = "nul" +input_player2_r_x_minus_axis = "nul" +input_player2_r_x_minus_mbtn = "nul" +input_player2_r_y_plus = "nul" +input_player2_r_y_plus_btn = "nul" +input_player2_r_y_plus_axis = "nul" +input_player2_r_y_plus_mbtn = "nul" +input_player2_r_y_minus = "nul" +input_player2_r_y_minus_btn = "nul" +input_player2_r_y_minus_axis = "nul" +input_player2_r_y_minus_mbtn = "nul" +input_player2_gun_trigger = "nul" +input_player2_gun_trigger_btn = "nul" +input_player2_gun_trigger_axis = "nul" +input_player2_gun_trigger_mbtn = "nul" +input_player2_gun_offscreen_shot = "nul" +input_player2_gun_offscreen_shot_btn = "nul" +input_player2_gun_offscreen_shot_axis = "nul" +input_player2_gun_offscreen_shot_mbtn = "nul" +input_player2_gun_aux_a = "nul" +input_player2_gun_aux_a_btn = "nul" +input_player2_gun_aux_a_axis = "nul" +input_player2_gun_aux_a_mbtn = "nul" +input_player2_gun_aux_b = "nul" +input_player2_gun_aux_b_btn = "nul" +input_player2_gun_aux_b_axis = "nul" +input_player2_gun_aux_b_mbtn = "nul" +input_player2_gun_aux_c = "nul" +input_player2_gun_aux_c_btn = "nul" +input_player2_gun_aux_c_axis = "nul" +input_player2_gun_aux_c_mbtn = "nul" +input_player2_gun_start = "nul" +input_player2_gun_start_btn = "nul" +input_player2_gun_start_axis = "nul" +input_player2_gun_start_mbtn = "nul" +input_player2_gun_select = "nul" +input_player2_gun_select_btn = "nul" +input_player2_gun_select_axis = "nul" +input_player2_gun_select_mbtn = "nul" +input_player2_gun_dpad_up = "nul" +input_player2_gun_dpad_up_btn = "nul" +input_player2_gun_dpad_up_axis = "nul" +input_player2_gun_dpad_up_mbtn = "nul" +input_player2_gun_dpad_down = "nul" +input_player2_gun_dpad_down_btn = "nul" +input_player2_gun_dpad_down_axis = "nul" +input_player2_gun_dpad_down_mbtn = "nul" +input_player2_gun_dpad_left = "nul" +input_player2_gun_dpad_left_btn = "nul" +input_player2_gun_dpad_left_axis = "nul" +input_player2_gun_dpad_left_mbtn = "nul" +input_player2_gun_dpad_right = "nul" +input_player2_gun_dpad_right_btn = "nul" +input_player2_gun_dpad_right_axis = "nul" +input_player2_gun_dpad_right_mbtn = "nul" +input_player2_turbo = "nul" +input_player2_turbo_btn = "nul" +input_player2_turbo_axis = "nul" +input_player2_turbo_mbtn = "nul" +input_player3_b = "nul" +input_player3_b_btn = "nul" +input_player3_b_axis = "nul" +input_player3_b_mbtn = "nul" +input_player3_y = "nul" +input_player3_y_btn = "nul" +input_player3_y_axis = "nul" +input_player3_y_mbtn = "nul" +input_player3_select = "nul" +input_player3_select_btn = "nul" +input_player3_select_axis = "nul" +input_player3_select_mbtn = "nul" +input_player3_start = "nul" +input_player3_start_btn = "nul" +input_player3_start_axis = "nul" +input_player3_start_mbtn = "nul" +input_player3_up = "nul" +input_player3_up_btn = "nul" +input_player3_up_axis = "nul" +input_player3_up_mbtn = "nul" +input_player3_down = "nul" +input_player3_down_btn = "nul" +input_player3_down_axis = "nul" +input_player3_down_mbtn = "nul" +input_player3_left = "nul" +input_player3_left_btn = "nul" +input_player3_left_axis = "nul" +input_player3_left_mbtn = "nul" +input_player3_right = "nul" +input_player3_right_btn = "nul" +input_player3_right_axis = "nul" +input_player3_right_mbtn = "nul" +input_player3_a = "nul" +input_player3_a_btn = "nul" +input_player3_a_axis = "nul" +input_player3_a_mbtn = "nul" +input_player3_x = "nul" +input_player3_x_btn = "nul" +input_player3_x_axis = "nul" +input_player3_x_mbtn = "nul" +input_player3_l = "nul" +input_player3_l_btn = "nul" +input_player3_l_axis = "nul" +input_player3_l_mbtn = "nul" +input_player3_r = "nul" +input_player3_r_btn = "nul" +input_player3_r_axis = "nul" +input_player3_r_mbtn = "nul" +input_player3_l2 = "nul" +input_player3_l2_btn = "nul" +input_player3_l2_axis = "nul" +input_player3_l2_mbtn = "nul" +input_player3_r2 = "nul" +input_player3_r2_btn = "nul" +input_player3_r2_axis = "nul" +input_player3_r2_mbtn = "nul" +input_player3_l3 = "nul" +input_player3_l3_btn = "nul" +input_player3_l3_axis = "nul" +input_player3_l3_mbtn = "nul" +input_player3_r3 = "nul" +input_player3_r3_btn = "nul" +input_player3_r3_axis = "nul" +input_player3_r3_mbtn = "nul" +input_player3_l_x_plus = "nul" +input_player3_l_x_plus_btn = "nul" +input_player3_l_x_plus_axis = "nul" +input_player3_l_x_plus_mbtn = "nul" +input_player3_l_x_minus = "nul" +input_player3_l_x_minus_btn = "nul" +input_player3_l_x_minus_axis = "nul" +input_player3_l_x_minus_mbtn = "nul" +input_player3_l_y_plus = "nul" +input_player3_l_y_plus_btn = "nul" +input_player3_l_y_plus_axis = "nul" +input_player3_l_y_plus_mbtn = "nul" +input_player3_l_y_minus = "nul" +input_player3_l_y_minus_btn = "nul" +input_player3_l_y_minus_axis = "nul" +input_player3_l_y_minus_mbtn = "nul" +input_player3_r_x_plus = "nul" +input_player3_r_x_plus_btn = "nul" +input_player3_r_x_plus_axis = "nul" +input_player3_r_x_plus_mbtn = "nul" +input_player3_r_x_minus = "nul" +input_player3_r_x_minus_btn = "nul" +input_player3_r_x_minus_axis = "nul" +input_player3_r_x_minus_mbtn = "nul" +input_player3_r_y_plus = "nul" +input_player3_r_y_plus_btn = "nul" +input_player3_r_y_plus_axis = "nul" +input_player3_r_y_plus_mbtn = "nul" +input_player3_r_y_minus = "nul" +input_player3_r_y_minus_btn = "nul" +input_player3_r_y_minus_axis = "nul" +input_player3_r_y_minus_mbtn = "nul" +input_player3_gun_trigger = "nul" +input_player3_gun_trigger_btn = "nul" +input_player3_gun_trigger_axis = "nul" +input_player3_gun_trigger_mbtn = "nul" +input_player3_gun_offscreen_shot = "nul" +input_player3_gun_offscreen_shot_btn = "nul" +input_player3_gun_offscreen_shot_axis = "nul" +input_player3_gun_offscreen_shot_mbtn = "nul" +input_player3_gun_aux_a = "nul" +input_player3_gun_aux_a_btn = "nul" +input_player3_gun_aux_a_axis = "nul" +input_player3_gun_aux_a_mbtn = "nul" +input_player3_gun_aux_b = "nul" +input_player3_gun_aux_b_btn = "nul" +input_player3_gun_aux_b_axis = "nul" +input_player3_gun_aux_b_mbtn = "nul" +input_player3_gun_aux_c = "nul" +input_player3_gun_aux_c_btn = "nul" +input_player3_gun_aux_c_axis = "nul" +input_player3_gun_aux_c_mbtn = "nul" +input_player3_gun_start = "nul" +input_player3_gun_start_btn = "nul" +input_player3_gun_start_axis = "nul" +input_player3_gun_start_mbtn = "nul" +input_player3_gun_select = "nul" +input_player3_gun_select_btn = "nul" +input_player3_gun_select_axis = "nul" +input_player3_gun_select_mbtn = "nul" +input_player3_gun_dpad_up = "nul" +input_player3_gun_dpad_up_btn = "nul" +input_player3_gun_dpad_up_axis = "nul" +input_player3_gun_dpad_up_mbtn = "nul" +input_player3_gun_dpad_down = "nul" +input_player3_gun_dpad_down_btn = "nul" +input_player3_gun_dpad_down_axis = "nul" +input_player3_gun_dpad_down_mbtn = "nul" +input_player3_gun_dpad_left = "nul" +input_player3_gun_dpad_left_btn = "nul" +input_player3_gun_dpad_left_axis = "nul" +input_player3_gun_dpad_left_mbtn = "nul" +input_player3_gun_dpad_right = "nul" +input_player3_gun_dpad_right_btn = "nul" +input_player3_gun_dpad_right_axis = "nul" +input_player3_gun_dpad_right_mbtn = "nul" +input_player3_turbo = "nul" +input_player3_turbo_btn = "nul" +input_player3_turbo_axis = "nul" +input_player3_turbo_mbtn = "nul" +input_player4_b = "nul" +input_player4_b_btn = "nul" +input_player4_b_axis = "nul" +input_player4_b_mbtn = "nul" +input_player4_y = "nul" +input_player4_y_btn = "nul" +input_player4_y_axis = "nul" +input_player4_y_mbtn = "nul" +input_player4_select = "nul" +input_player4_select_btn = "nul" +input_player4_select_axis = "nul" +input_player4_select_mbtn = "nul" +input_player4_start = "nul" +input_player4_start_btn = "nul" +input_player4_start_axis = "nul" +input_player4_start_mbtn = "nul" +input_player4_up = "nul" +input_player4_up_btn = "nul" +input_player4_up_axis = "nul" +input_player4_up_mbtn = "nul" +input_player4_down = "nul" +input_player4_down_btn = "nul" +input_player4_down_axis = "nul" +input_player4_down_mbtn = "nul" +input_player4_left = "nul" +input_player4_left_btn = "nul" +input_player4_left_axis = "nul" +input_player4_left_mbtn = "nul" +input_player4_right = "nul" +input_player4_right_btn = "nul" +input_player4_right_axis = "nul" +input_player4_right_mbtn = "nul" +input_player4_a = "nul" +input_player4_a_btn = "nul" +input_player4_a_axis = "nul" +input_player4_a_mbtn = "nul" +input_player4_x = "nul" +input_player4_x_btn = "nul" +input_player4_x_axis = "nul" +input_player4_x_mbtn = "nul" +input_player4_l = "nul" +input_player4_l_btn = "nul" +input_player4_l_axis = "nul" +input_player4_l_mbtn = "nul" +input_player4_r = "nul" +input_player4_r_btn = "nul" +input_player4_r_axis = "nul" +input_player4_r_mbtn = "nul" +input_player4_l2 = "nul" +input_player4_l2_btn = "nul" +input_player4_l2_axis = "nul" +input_player4_l2_mbtn = "nul" +input_player4_r2 = "nul" +input_player4_r2_btn = "nul" +input_player4_r2_axis = "nul" +input_player4_r2_mbtn = "nul" +input_player4_l3 = "nul" +input_player4_l3_btn = "nul" +input_player4_l3_axis = "nul" +input_player4_l3_mbtn = "nul" +input_player4_r3 = "nul" +input_player4_r3_btn = "nul" +input_player4_r3_axis = "nul" +input_player4_r3_mbtn = "nul" +input_player4_l_x_plus = "nul" +input_player4_l_x_plus_btn = "nul" +input_player4_l_x_plus_axis = "nul" +input_player4_l_x_plus_mbtn = "nul" +input_player4_l_x_minus = "nul" +input_player4_l_x_minus_btn = "nul" +input_player4_l_x_minus_axis = "nul" +input_player4_l_x_minus_mbtn = "nul" +input_player4_l_y_plus = "nul" +input_player4_l_y_plus_btn = "nul" +input_player4_l_y_plus_axis = "nul" +input_player4_l_y_plus_mbtn = "nul" +input_player4_l_y_minus = "nul" +input_player4_l_y_minus_btn = "nul" +input_player4_l_y_minus_axis = "nul" +input_player4_l_y_minus_mbtn = "nul" +input_player4_r_x_plus = "nul" +input_player4_r_x_plus_btn = "nul" +input_player4_r_x_plus_axis = "nul" +input_player4_r_x_plus_mbtn = "nul" +input_player4_r_x_minus = "nul" +input_player4_r_x_minus_btn = "nul" +input_player4_r_x_minus_axis = "nul" +input_player4_r_x_minus_mbtn = "nul" +input_player4_r_y_plus = "nul" +input_player4_r_y_plus_btn = "nul" +input_player4_r_y_plus_axis = "nul" +input_player4_r_y_plus_mbtn = "nul" +input_player4_r_y_minus = "nul" +input_player4_r_y_minus_btn = "nul" +input_player4_r_y_minus_axis = "nul" +input_player4_r_y_minus_mbtn = "nul" +input_player4_gun_trigger = "nul" +input_player4_gun_trigger_btn = "nul" +input_player4_gun_trigger_axis = "nul" +input_player4_gun_trigger_mbtn = "nul" +input_player4_gun_offscreen_shot = "nul" +input_player4_gun_offscreen_shot_btn = "nul" +input_player4_gun_offscreen_shot_axis = "nul" +input_player4_gun_offscreen_shot_mbtn = "nul" +input_player4_gun_aux_a = "nul" +input_player4_gun_aux_a_btn = "nul" +input_player4_gun_aux_a_axis = "nul" +input_player4_gun_aux_a_mbtn = "nul" +input_player4_gun_aux_b = "nul" +input_player4_gun_aux_b_btn = "nul" +input_player4_gun_aux_b_axis = "nul" +input_player4_gun_aux_b_mbtn = "nul" +input_player4_gun_aux_c = "nul" +input_player4_gun_aux_c_btn = "nul" +input_player4_gun_aux_c_axis = "nul" +input_player4_gun_aux_c_mbtn = "nul" +input_player4_gun_start = "nul" +input_player4_gun_start_btn = "nul" +input_player4_gun_start_axis = "nul" +input_player4_gun_start_mbtn = "nul" +input_player4_gun_select = "nul" +input_player4_gun_select_btn = "nul" +input_player4_gun_select_axis = "nul" +input_player4_gun_select_mbtn = "nul" +input_player4_gun_dpad_up = "nul" +input_player4_gun_dpad_up_btn = "nul" +input_player4_gun_dpad_up_axis = "nul" +input_player4_gun_dpad_up_mbtn = "nul" +input_player4_gun_dpad_down = "nul" +input_player4_gun_dpad_down_btn = "nul" +input_player4_gun_dpad_down_axis = "nul" +input_player4_gun_dpad_down_mbtn = "nul" +input_player4_gun_dpad_left = "nul" +input_player4_gun_dpad_left_btn = "nul" +input_player4_gun_dpad_left_axis = "nul" +input_player4_gun_dpad_left_mbtn = "nul" +input_player4_gun_dpad_right = "nul" +input_player4_gun_dpad_right_btn = "nul" +input_player4_gun_dpad_right_axis = "nul" +input_player4_gun_dpad_right_mbtn = "nul" +input_player4_turbo = "nul" +input_player4_turbo_btn = "nul" +input_player4_turbo_axis = "nul" +input_player4_turbo_mbtn = "nul" +input_player5_b = "nul" +input_player5_b_btn = "nul" +input_player5_b_axis = "nul" +input_player5_b_mbtn = "nul" +input_player5_y = "nul" +input_player5_y_btn = "nul" +input_player5_y_axis = "nul" +input_player5_y_mbtn = "nul" +input_player5_select = "nul" +input_player5_select_btn = "nul" +input_player5_select_axis = "nul" +input_player5_select_mbtn = "nul" +input_player5_start = "nul" +input_player5_start_btn = "nul" +input_player5_start_axis = "nul" +input_player5_start_mbtn = "nul" +input_player5_up = "nul" +input_player5_up_btn = "nul" +input_player5_up_axis = "nul" +input_player5_up_mbtn = "nul" +input_player5_down = "nul" +input_player5_down_btn = "nul" +input_player5_down_axis = "nul" +input_player5_down_mbtn = "nul" +input_player5_left = "nul" +input_player5_left_btn = "nul" +input_player5_left_axis = "nul" +input_player5_left_mbtn = "nul" +input_player5_right = "nul" +input_player5_right_btn = "nul" +input_player5_right_axis = "nul" +input_player5_right_mbtn = "nul" +input_player5_a = "nul" +input_player5_a_btn = "nul" +input_player5_a_axis = "nul" +input_player5_a_mbtn = "nul" +input_player5_x = "nul" +input_player5_x_btn = "nul" +input_player5_x_axis = "nul" +input_player5_x_mbtn = "nul" +input_player5_l = "nul" +input_player5_l_btn = "nul" +input_player5_l_axis = "nul" +input_player5_l_mbtn = "nul" +input_player5_r = "nul" +input_player5_r_btn = "nul" +input_player5_r_axis = "nul" +input_player5_r_mbtn = "nul" +input_player5_l2 = "nul" +input_player5_l2_btn = "nul" +input_player5_l2_axis = "nul" +input_player5_l2_mbtn = "nul" +input_player5_r2 = "nul" +input_player5_r2_btn = "nul" +input_player5_r2_axis = "nul" +input_player5_r2_mbtn = "nul" +input_player5_l3 = "nul" +input_player5_l3_btn = "nul" +input_player5_l3_axis = "nul" +input_player5_l3_mbtn = "nul" +input_player5_r3 = "nul" +input_player5_r3_btn = "nul" +input_player5_r3_axis = "nul" +input_player5_r3_mbtn = "nul" +input_player5_l_x_plus = "nul" +input_player5_l_x_plus_btn = "nul" +input_player5_l_x_plus_axis = "nul" +input_player5_l_x_plus_mbtn = "nul" +input_player5_l_x_minus = "nul" +input_player5_l_x_minus_btn = "nul" +input_player5_l_x_minus_axis = "nul" +input_player5_l_x_minus_mbtn = "nul" +input_player5_l_y_plus = "nul" +input_player5_l_y_plus_btn = "nul" +input_player5_l_y_plus_axis = "nul" +input_player5_l_y_plus_mbtn = "nul" +input_player5_l_y_minus = "nul" +input_player5_l_y_minus_btn = "nul" +input_player5_l_y_minus_axis = "nul" +input_player5_l_y_minus_mbtn = "nul" +input_player5_r_x_plus = "nul" +input_player5_r_x_plus_btn = "nul" +input_player5_r_x_plus_axis = "nul" +input_player5_r_x_plus_mbtn = "nul" +input_player5_r_x_minus = "nul" +input_player5_r_x_minus_btn = "nul" +input_player5_r_x_minus_axis = "nul" +input_player5_r_x_minus_mbtn = "nul" +input_player5_r_y_plus = "nul" +input_player5_r_y_plus_btn = "nul" +input_player5_r_y_plus_axis = "nul" +input_player5_r_y_plus_mbtn = "nul" +input_player5_r_y_minus = "nul" +input_player5_r_y_minus_btn = "nul" +input_player5_r_y_minus_axis = "nul" +input_player5_r_y_minus_mbtn = "nul" +input_player5_gun_trigger = "nul" +input_player5_gun_trigger_btn = "nul" +input_player5_gun_trigger_axis = "nul" +input_player5_gun_trigger_mbtn = "nul" +input_player5_gun_offscreen_shot = "nul" +input_player5_gun_offscreen_shot_btn = "nul" +input_player5_gun_offscreen_shot_axis = "nul" +input_player5_gun_offscreen_shot_mbtn = "nul" +input_player5_gun_aux_a = "nul" +input_player5_gun_aux_a_btn = "nul" +input_player5_gun_aux_a_axis = "nul" +input_player5_gun_aux_a_mbtn = "nul" +input_player5_gun_aux_b = "nul" +input_player5_gun_aux_b_btn = "nul" +input_player5_gun_aux_b_axis = "nul" +input_player5_gun_aux_b_mbtn = "nul" +input_player5_gun_aux_c = "nul" +input_player5_gun_aux_c_btn = "nul" +input_player5_gun_aux_c_axis = "nul" +input_player5_gun_aux_c_mbtn = "nul" +input_player5_gun_start = "nul" +input_player5_gun_start_btn = "nul" +input_player5_gun_start_axis = "nul" +input_player5_gun_start_mbtn = "nul" +input_player5_gun_select = "nul" +input_player5_gun_select_btn = "nul" +input_player5_gun_select_axis = "nul" +input_player5_gun_select_mbtn = "nul" +input_player5_gun_dpad_up = "nul" +input_player5_gun_dpad_up_btn = "nul" +input_player5_gun_dpad_up_axis = "nul" +input_player5_gun_dpad_up_mbtn = "nul" +input_player5_gun_dpad_down = "nul" +input_player5_gun_dpad_down_btn = "nul" +input_player5_gun_dpad_down_axis = "nul" +input_player5_gun_dpad_down_mbtn = "nul" +input_player5_gun_dpad_left = "nul" +input_player5_gun_dpad_left_btn = "nul" +input_player5_gun_dpad_left_axis = "nul" +input_player5_gun_dpad_left_mbtn = "nul" +input_player5_gun_dpad_right = "nul" +input_player5_gun_dpad_right_btn = "nul" +input_player5_gun_dpad_right_axis = "nul" +input_player5_gun_dpad_right_mbtn = "nul" +input_player5_turbo = "nul" +input_player5_turbo_btn = "nul" +input_player5_turbo_axis = "nul" +input_player5_turbo_mbtn = "nul" +input_player6_b = "nul" +input_player6_b_btn = "nul" +input_player6_b_axis = "nul" +input_player6_b_mbtn = "nul" +input_player6_y = "nul" +input_player6_y_btn = "nul" +input_player6_y_axis = "nul" +input_player6_y_mbtn = "nul" +input_player6_select = "nul" +input_player6_select_btn = "nul" +input_player6_select_axis = "nul" +input_player6_select_mbtn = "nul" +input_player6_start = "nul" +input_player6_start_btn = "nul" +input_player6_start_axis = "nul" +input_player6_start_mbtn = "nul" +input_player6_up = "nul" +input_player6_up_btn = "nul" +input_player6_up_axis = "nul" +input_player6_up_mbtn = "nul" +input_player6_down = "nul" +input_player6_down_btn = "nul" +input_player6_down_axis = "nul" +input_player6_down_mbtn = "nul" +input_player6_left = "nul" +input_player6_left_btn = "nul" +input_player6_left_axis = "nul" +input_player6_left_mbtn = "nul" +input_player6_right = "nul" +input_player6_right_btn = "nul" +input_player6_right_axis = "nul" +input_player6_right_mbtn = "nul" +input_player6_a = "nul" +input_player6_a_btn = "nul" +input_player6_a_axis = "nul" +input_player6_a_mbtn = "nul" +input_player6_x = "nul" +input_player6_x_btn = "nul" +input_player6_x_axis = "nul" +input_player6_x_mbtn = "nul" +input_player6_l = "nul" +input_player6_l_btn = "nul" +input_player6_l_axis = "nul" +input_player6_l_mbtn = "nul" +input_player6_r = "nul" +input_player6_r_btn = "nul" +input_player6_r_axis = "nul" +input_player6_r_mbtn = "nul" +input_player6_l2 = "nul" +input_player6_l2_btn = "nul" +input_player6_l2_axis = "nul" +input_player6_l2_mbtn = "nul" +input_player6_r2 = "nul" +input_player6_r2_btn = "nul" +input_player6_r2_axis = "nul" +input_player6_r2_mbtn = "nul" +input_player6_l3 = "nul" +input_player6_l3_btn = "nul" +input_player6_l3_axis = "nul" +input_player6_l3_mbtn = "nul" +input_player6_r3 = "nul" +input_player6_r3_btn = "nul" +input_player6_r3_axis = "nul" +input_player6_r3_mbtn = "nul" +input_player6_l_x_plus = "nul" +input_player6_l_x_plus_btn = "nul" +input_player6_l_x_plus_axis = "nul" +input_player6_l_x_plus_mbtn = "nul" +input_player6_l_x_minus = "nul" +input_player6_l_x_minus_btn = "nul" +input_player6_l_x_minus_axis = "nul" +input_player6_l_x_minus_mbtn = "nul" +input_player6_l_y_plus = "nul" +input_player6_l_y_plus_btn = "nul" +input_player6_l_y_plus_axis = "nul" +input_player6_l_y_plus_mbtn = "nul" +input_player6_l_y_minus = "nul" +input_player6_l_y_minus_btn = "nul" +input_player6_l_y_minus_axis = "nul" +input_player6_l_y_minus_mbtn = "nul" +input_player6_r_x_plus = "nul" +input_player6_r_x_plus_btn = "nul" +input_player6_r_x_plus_axis = "nul" +input_player6_r_x_plus_mbtn = "nul" +input_player6_r_x_minus = "nul" +input_player6_r_x_minus_btn = "nul" +input_player6_r_x_minus_axis = "nul" +input_player6_r_x_minus_mbtn = "nul" +input_player6_r_y_plus = "nul" +input_player6_r_y_plus_btn = "nul" +input_player6_r_y_plus_axis = "nul" +input_player6_r_y_plus_mbtn = "nul" +input_player6_r_y_minus = "nul" +input_player6_r_y_minus_btn = "nul" +input_player6_r_y_minus_axis = "nul" +input_player6_r_y_minus_mbtn = "nul" +input_player6_gun_trigger = "nul" +input_player6_gun_trigger_btn = "nul" +input_player6_gun_trigger_axis = "nul" +input_player6_gun_trigger_mbtn = "nul" +input_player6_gun_offscreen_shot = "nul" +input_player6_gun_offscreen_shot_btn = "nul" +input_player6_gun_offscreen_shot_axis = "nul" +input_player6_gun_offscreen_shot_mbtn = "nul" +input_player6_gun_aux_a = "nul" +input_player6_gun_aux_a_btn = "nul" +input_player6_gun_aux_a_axis = "nul" +input_player6_gun_aux_a_mbtn = "nul" +input_player6_gun_aux_b = "nul" +input_player6_gun_aux_b_btn = "nul" +input_player6_gun_aux_b_axis = "nul" +input_player6_gun_aux_b_mbtn = "nul" +input_player6_gun_aux_c = "nul" +input_player6_gun_aux_c_btn = "nul" +input_player6_gun_aux_c_axis = "nul" +input_player6_gun_aux_c_mbtn = "nul" +input_player6_gun_start = "nul" +input_player6_gun_start_btn = "nul" +input_player6_gun_start_axis = "nul" +input_player6_gun_start_mbtn = "nul" +input_player6_gun_select = "nul" +input_player6_gun_select_btn = "nul" +input_player6_gun_select_axis = "nul" +input_player6_gun_select_mbtn = "nul" +input_player6_gun_dpad_up = "nul" +input_player6_gun_dpad_up_btn = "nul" +input_player6_gun_dpad_up_axis = "nul" +input_player6_gun_dpad_up_mbtn = "nul" +input_player6_gun_dpad_down = "nul" +input_player6_gun_dpad_down_btn = "nul" +input_player6_gun_dpad_down_axis = "nul" +input_player6_gun_dpad_down_mbtn = "nul" +input_player6_gun_dpad_left = "nul" +input_player6_gun_dpad_left_btn = "nul" +input_player6_gun_dpad_left_axis = "nul" +input_player6_gun_dpad_left_mbtn = "nul" +input_player6_gun_dpad_right = "nul" +input_player6_gun_dpad_right_btn = "nul" +input_player6_gun_dpad_right_axis = "nul" +input_player6_gun_dpad_right_mbtn = "nul" +input_player6_turbo = "nul" +input_player6_turbo_btn = "nul" +input_player6_turbo_axis = "nul" +input_player6_turbo_mbtn = "nul" +input_player7_b = "nul" +input_player7_b_btn = "nul" +input_player7_b_axis = "nul" +input_player7_b_mbtn = "nul" +input_player7_y = "nul" +input_player7_y_btn = "nul" +input_player7_y_axis = "nul" +input_player7_y_mbtn = "nul" +input_player7_select = "nul" +input_player7_select_btn = "nul" +input_player7_select_axis = "nul" +input_player7_select_mbtn = "nul" +input_player7_start = "nul" +input_player7_start_btn = "nul" +input_player7_start_axis = "nul" +input_player7_start_mbtn = "nul" +input_player7_up = "nul" +input_player7_up_btn = "nul" +input_player7_up_axis = "nul" +input_player7_up_mbtn = "nul" +input_player7_down = "nul" +input_player7_down_btn = "nul" +input_player7_down_axis = "nul" +input_player7_down_mbtn = "nul" +input_player7_left = "nul" +input_player7_left_btn = "nul" +input_player7_left_axis = "nul" +input_player7_left_mbtn = "nul" +input_player7_right = "nul" +input_player7_right_btn = "nul" +input_player7_right_axis = "nul" +input_player7_right_mbtn = "nul" +input_player7_a = "nul" +input_player7_a_btn = "nul" +input_player7_a_axis = "nul" +input_player7_a_mbtn = "nul" +input_player7_x = "nul" +input_player7_x_btn = "nul" +input_player7_x_axis = "nul" +input_player7_x_mbtn = "nul" +input_player7_l = "nul" +input_player7_l_btn = "nul" +input_player7_l_axis = "nul" +input_player7_l_mbtn = "nul" +input_player7_r = "nul" +input_player7_r_btn = "nul" +input_player7_r_axis = "nul" +input_player7_r_mbtn = "nul" +input_player7_l2 = "nul" +input_player7_l2_btn = "nul" +input_player7_l2_axis = "nul" +input_player7_l2_mbtn = "nul" +input_player7_r2 = "nul" +input_player7_r2_btn = "nul" +input_player7_r2_axis = "nul" +input_player7_r2_mbtn = "nul" +input_player7_l3 = "nul" +input_player7_l3_btn = "nul" +input_player7_l3_axis = "nul" +input_player7_l3_mbtn = "nul" +input_player7_r3 = "nul" +input_player7_r3_btn = "nul" +input_player7_r3_axis = "nul" +input_player7_r3_mbtn = "nul" +input_player7_l_x_plus = "nul" +input_player7_l_x_plus_btn = "nul" +input_player7_l_x_plus_axis = "nul" +input_player7_l_x_plus_mbtn = "nul" +input_player7_l_x_minus = "nul" +input_player7_l_x_minus_btn = "nul" +input_player7_l_x_minus_axis = "nul" +input_player7_l_x_minus_mbtn = "nul" +input_player7_l_y_plus = "nul" +input_player7_l_y_plus_btn = "nul" +input_player7_l_y_plus_axis = "nul" +input_player7_l_y_plus_mbtn = "nul" +input_player7_l_y_minus = "nul" +input_player7_l_y_minus_btn = "nul" +input_player7_l_y_minus_axis = "nul" +input_player7_l_y_minus_mbtn = "nul" +input_player7_r_x_plus = "nul" +input_player7_r_x_plus_btn = "nul" +input_player7_r_x_plus_axis = "nul" +input_player7_r_x_plus_mbtn = "nul" +input_player7_r_x_minus = "nul" +input_player7_r_x_minus_btn = "nul" +input_player7_r_x_minus_axis = "nul" +input_player7_r_x_minus_mbtn = "nul" +input_player7_r_y_plus = "nul" +input_player7_r_y_plus_btn = "nul" +input_player7_r_y_plus_axis = "nul" +input_player7_r_y_plus_mbtn = "nul" +input_player7_r_y_minus = "nul" +input_player7_r_y_minus_btn = "nul" +input_player7_r_y_minus_axis = "nul" +input_player7_r_y_minus_mbtn = "nul" +input_player7_gun_trigger = "nul" +input_player7_gun_trigger_btn = "nul" +input_player7_gun_trigger_axis = "nul" +input_player7_gun_trigger_mbtn = "nul" +input_player7_gun_offscreen_shot = "nul" +input_player7_gun_offscreen_shot_btn = "nul" +input_player7_gun_offscreen_shot_axis = "nul" +input_player7_gun_offscreen_shot_mbtn = "nul" +input_player7_gun_aux_a = "nul" +input_player7_gun_aux_a_btn = "nul" +input_player7_gun_aux_a_axis = "nul" +input_player7_gun_aux_a_mbtn = "nul" +input_player7_gun_aux_b = "nul" +input_player7_gun_aux_b_btn = "nul" +input_player7_gun_aux_b_axis = "nul" +input_player7_gun_aux_b_mbtn = "nul" +input_player7_gun_aux_c = "nul" +input_player7_gun_aux_c_btn = "nul" +input_player7_gun_aux_c_axis = "nul" +input_player7_gun_aux_c_mbtn = "nul" +input_player7_gun_start = "nul" +input_player7_gun_start_btn = "nul" +input_player7_gun_start_axis = "nul" +input_player7_gun_start_mbtn = "nul" +input_player7_gun_select = "nul" +input_player7_gun_select_btn = "nul" +input_player7_gun_select_axis = "nul" +input_player7_gun_select_mbtn = "nul" +input_player7_gun_dpad_up = "nul" +input_player7_gun_dpad_up_btn = "nul" +input_player7_gun_dpad_up_axis = "nul" +input_player7_gun_dpad_up_mbtn = "nul" +input_player7_gun_dpad_down = "nul" +input_player7_gun_dpad_down_btn = "nul" +input_player7_gun_dpad_down_axis = "nul" +input_player7_gun_dpad_down_mbtn = "nul" +input_player7_gun_dpad_left = "nul" +input_player7_gun_dpad_left_btn = "nul" +input_player7_gun_dpad_left_axis = "nul" +input_player7_gun_dpad_left_mbtn = "nul" +input_player7_gun_dpad_right = "nul" +input_player7_gun_dpad_right_btn = "nul" +input_player7_gun_dpad_right_axis = "nul" +input_player7_gun_dpad_right_mbtn = "nul" +input_player7_turbo = "nul" +input_player7_turbo_btn = "nul" +input_player7_turbo_axis = "nul" +input_player7_turbo_mbtn = "nul" +input_player8_b = "nul" +input_player8_b_btn = "nul" +input_player8_b_axis = "nul" +input_player8_b_mbtn = "nul" +input_player8_y = "nul" +input_player8_y_btn = "nul" +input_player8_y_axis = "nul" +input_player8_y_mbtn = "nul" +input_player8_select = "nul" +input_player8_select_btn = "nul" +input_player8_select_axis = "nul" +input_player8_select_mbtn = "nul" +input_player8_start = "nul" +input_player8_start_btn = "nul" +input_player8_start_axis = "nul" +input_player8_start_mbtn = "nul" +input_player8_up = "nul" +input_player8_up_btn = "nul" +input_player8_up_axis = "nul" +input_player8_up_mbtn = "nul" +input_player8_down = "nul" +input_player8_down_btn = "nul" +input_player8_down_axis = "nul" +input_player8_down_mbtn = "nul" +input_player8_left = "nul" +input_player8_left_btn = "nul" +input_player8_left_axis = "nul" +input_player8_left_mbtn = "nul" +input_player8_right = "nul" +input_player8_right_btn = "nul" +input_player8_right_axis = "nul" +input_player8_right_mbtn = "nul" +input_player8_a = "nul" +input_player8_a_btn = "nul" +input_player8_a_axis = "nul" +input_player8_a_mbtn = "nul" +input_player8_x = "nul" +input_player8_x_btn = "nul" +input_player8_x_axis = "nul" +input_player8_x_mbtn = "nul" +input_player8_l = "nul" +input_player8_l_btn = "nul" +input_player8_l_axis = "nul" +input_player8_l_mbtn = "nul" +input_player8_r = "nul" +input_player8_r_btn = "nul" +input_player8_r_axis = "nul" +input_player8_r_mbtn = "nul" +input_player8_l2 = "nul" +input_player8_l2_btn = "nul" +input_player8_l2_axis = "nul" +input_player8_l2_mbtn = "nul" +input_player8_r2 = "nul" +input_player8_r2_btn = "nul" +input_player8_r2_axis = "nul" +input_player8_r2_mbtn = "nul" +input_player8_l3 = "nul" +input_player8_l3_btn = "nul" +input_player8_l3_axis = "nul" +input_player8_l3_mbtn = "nul" +input_player8_r3 = "nul" +input_player8_r3_btn = "nul" +input_player8_r3_axis = "nul" +input_player8_r3_mbtn = "nul" +input_player8_l_x_plus = "nul" +input_player8_l_x_plus_btn = "nul" +input_player8_l_x_plus_axis = "nul" +input_player8_l_x_plus_mbtn = "nul" +input_player8_l_x_minus = "nul" +input_player8_l_x_minus_btn = "nul" +input_player8_l_x_minus_axis = "nul" +input_player8_l_x_minus_mbtn = "nul" +input_player8_l_y_plus = "nul" +input_player8_l_y_plus_btn = "nul" +input_player8_l_y_plus_axis = "nul" +input_player8_l_y_plus_mbtn = "nul" +input_player8_l_y_minus = "nul" +input_player8_l_y_minus_btn = "nul" +input_player8_l_y_minus_axis = "nul" +input_player8_l_y_minus_mbtn = "nul" +input_player8_r_x_plus = "nul" +input_player8_r_x_plus_btn = "nul" +input_player8_r_x_plus_axis = "nul" +input_player8_r_x_plus_mbtn = "nul" +input_player8_r_x_minus = "nul" +input_player8_r_x_minus_btn = "nul" +input_player8_r_x_minus_axis = "nul" +input_player8_r_x_minus_mbtn = "nul" +input_player8_r_y_plus = "nul" +input_player8_r_y_plus_btn = "nul" +input_player8_r_y_plus_axis = "nul" +input_player8_r_y_plus_mbtn = "nul" +input_player8_r_y_minus = "nul" +input_player8_r_y_minus_btn = "nul" +input_player8_r_y_minus_axis = "nul" +input_player8_r_y_minus_mbtn = "nul" +input_player8_gun_trigger = "nul" +input_player8_gun_trigger_btn = "nul" +input_player8_gun_trigger_axis = "nul" +input_player8_gun_trigger_mbtn = "nul" +input_player8_gun_offscreen_shot = "nul" +input_player8_gun_offscreen_shot_btn = "nul" +input_player8_gun_offscreen_shot_axis = "nul" +input_player8_gun_offscreen_shot_mbtn = "nul" +input_player8_gun_aux_a = "nul" +input_player8_gun_aux_a_btn = "nul" +input_player8_gun_aux_a_axis = "nul" +input_player8_gun_aux_a_mbtn = "nul" +input_player8_gun_aux_b = "nul" +input_player8_gun_aux_b_btn = "nul" +input_player8_gun_aux_b_axis = "nul" +input_player8_gun_aux_b_mbtn = "nul" +input_player8_gun_aux_c = "nul" +input_player8_gun_aux_c_btn = "nul" +input_player8_gun_aux_c_axis = "nul" +input_player8_gun_aux_c_mbtn = "nul" +input_player8_gun_start = "nul" +input_player8_gun_start_btn = "nul" +input_player8_gun_start_axis = "nul" +input_player8_gun_start_mbtn = "nul" +input_player8_gun_select = "nul" +input_player8_gun_select_btn = "nul" +input_player8_gun_select_axis = "nul" +input_player8_gun_select_mbtn = "nul" +input_player8_gun_dpad_up = "nul" +input_player8_gun_dpad_up_btn = "nul" +input_player8_gun_dpad_up_axis = "nul" +input_player8_gun_dpad_up_mbtn = "nul" +input_player8_gun_dpad_down = "nul" +input_player8_gun_dpad_down_btn = "nul" +input_player8_gun_dpad_down_axis = "nul" +input_player8_gun_dpad_down_mbtn = "nul" +input_player8_gun_dpad_left = "nul" +input_player8_gun_dpad_left_btn = "nul" +input_player8_gun_dpad_left_axis = "nul" +input_player8_gun_dpad_left_mbtn = "nul" +input_player8_gun_dpad_right = "nul" +input_player8_gun_dpad_right_btn = "nul" +input_player8_gun_dpad_right_axis = "nul" +input_player8_gun_dpad_right_mbtn = "nul" +input_player8_turbo = "nul" +input_player8_turbo_btn = "nul" +input_player8_turbo_axis = "nul" +input_player8_turbo_mbtn = "nul" +input_player9_b = "nul" +input_player9_b_btn = "nul" +input_player9_b_axis = "nul" +input_player9_b_mbtn = "nul" +input_player9_y = "nul" +input_player9_y_btn = "nul" +input_player9_y_axis = "nul" +input_player9_y_mbtn = "nul" +input_player9_select = "nul" +input_player9_select_btn = "nul" +input_player9_select_axis = "nul" +input_player9_select_mbtn = "nul" +input_player9_start = "nul" +input_player9_start_btn = "nul" +input_player9_start_axis = "nul" +input_player9_start_mbtn = "nul" +input_player9_up = "nul" +input_player9_up_btn = "nul" +input_player9_up_axis = "nul" +input_player9_up_mbtn = "nul" +input_player9_down = "nul" +input_player9_down_btn = "nul" +input_player9_down_axis = "nul" +input_player9_down_mbtn = "nul" +input_player9_left = "nul" +input_player9_left_btn = "nul" +input_player9_left_axis = "nul" +input_player9_left_mbtn = "nul" +input_player9_right = "nul" +input_player9_right_btn = "nul" +input_player9_right_axis = "nul" +input_player9_right_mbtn = "nul" +input_player9_a = "nul" +input_player9_a_btn = "nul" +input_player9_a_axis = "nul" +input_player9_a_mbtn = "nul" +input_player9_x = "nul" +input_player9_x_btn = "nul" +input_player9_x_axis = "nul" +input_player9_x_mbtn = "nul" +input_player9_l = "nul" +input_player9_l_btn = "nul" +input_player9_l_axis = "nul" +input_player9_l_mbtn = "nul" +input_player9_r = "nul" +input_player9_r_btn = "nul" +input_player9_r_axis = "nul" +input_player9_r_mbtn = "nul" +input_player9_l2 = "nul" +input_player9_l2_btn = "nul" +input_player9_l2_axis = "nul" +input_player9_l2_mbtn = "nul" +input_player9_r2 = "nul" +input_player9_r2_btn = "nul" +input_player9_r2_axis = "nul" +input_player9_r2_mbtn = "nul" +input_player9_l3 = "nul" +input_player9_l3_btn = "nul" +input_player9_l3_axis = "nul" +input_player9_l3_mbtn = "nul" +input_player9_r3 = "nul" +input_player9_r3_btn = "nul" +input_player9_r3_axis = "nul" +input_player9_r3_mbtn = "nul" +input_player9_l_x_plus = "nul" +input_player9_l_x_plus_btn = "nul" +input_player9_l_x_plus_axis = "nul" +input_player9_l_x_plus_mbtn = "nul" +input_player9_l_x_minus = "nul" +input_player9_l_x_minus_btn = "nul" +input_player9_l_x_minus_axis = "nul" +input_player9_l_x_minus_mbtn = "nul" +input_player9_l_y_plus = "nul" +input_player9_l_y_plus_btn = "nul" +input_player9_l_y_plus_axis = "nul" +input_player9_l_y_plus_mbtn = "nul" +input_player9_l_y_minus = "nul" +input_player9_l_y_minus_btn = "nul" +input_player9_l_y_minus_axis = "nul" +input_player9_l_y_minus_mbtn = "nul" +input_player9_r_x_plus = "nul" +input_player9_r_x_plus_btn = "nul" +input_player9_r_x_plus_axis = "nul" +input_player9_r_x_plus_mbtn = "nul" +input_player9_r_x_minus = "nul" +input_player9_r_x_minus_btn = "nul" +input_player9_r_x_minus_axis = "nul" +input_player9_r_x_minus_mbtn = "nul" +input_player9_r_y_plus = "nul" +input_player9_r_y_plus_btn = "nul" +input_player9_r_y_plus_axis = "nul" +input_player9_r_y_plus_mbtn = "nul" +input_player9_r_y_minus = "nul" +input_player9_r_y_minus_btn = "nul" +input_player9_r_y_minus_axis = "nul" +input_player9_r_y_minus_mbtn = "nul" +input_player9_gun_trigger = "nul" +input_player9_gun_trigger_btn = "nul" +input_player9_gun_trigger_axis = "nul" +input_player9_gun_trigger_mbtn = "nul" +input_player9_gun_offscreen_shot = "nul" +input_player9_gun_offscreen_shot_btn = "nul" +input_player9_gun_offscreen_shot_axis = "nul" +input_player9_gun_offscreen_shot_mbtn = "nul" +input_player9_gun_aux_a = "nul" +input_player9_gun_aux_a_btn = "nul" +input_player9_gun_aux_a_axis = "nul" +input_player9_gun_aux_a_mbtn = "nul" +input_player9_gun_aux_b = "nul" +input_player9_gun_aux_b_btn = "nul" +input_player9_gun_aux_b_axis = "nul" +input_player9_gun_aux_b_mbtn = "nul" +input_player9_gun_aux_c = "nul" +input_player9_gun_aux_c_btn = "nul" +input_player9_gun_aux_c_axis = "nul" +input_player9_gun_aux_c_mbtn = "nul" +input_player9_gun_start = "nul" +input_player9_gun_start_btn = "nul" +input_player9_gun_start_axis = "nul" +input_player9_gun_start_mbtn = "nul" +input_player9_gun_select = "nul" +input_player9_gun_select_btn = "nul" +input_player9_gun_select_axis = "nul" +input_player9_gun_select_mbtn = "nul" +input_player9_gun_dpad_up = "nul" +input_player9_gun_dpad_up_btn = "nul" +input_player9_gun_dpad_up_axis = "nul" +input_player9_gun_dpad_up_mbtn = "nul" +input_player9_gun_dpad_down = "nul" +input_player9_gun_dpad_down_btn = "nul" +input_player9_gun_dpad_down_axis = "nul" +input_player9_gun_dpad_down_mbtn = "nul" +input_player9_gun_dpad_left = "nul" +input_player9_gun_dpad_left_btn = "nul" +input_player9_gun_dpad_left_axis = "nul" +input_player9_gun_dpad_left_mbtn = "nul" +input_player9_gun_dpad_right = "nul" +input_player9_gun_dpad_right_btn = "nul" +input_player9_gun_dpad_right_axis = "nul" +input_player9_gun_dpad_right_mbtn = "nul" +input_player9_turbo = "nul" +input_player9_turbo_btn = "nul" +input_player9_turbo_axis = "nul" +input_player9_turbo_mbtn = "nul" +input_player10_b = "nul" +input_player10_b_btn = "nul" +input_player10_b_axis = "nul" +input_player10_b_mbtn = "nul" +input_player10_y = "nul" +input_player10_y_btn = "nul" +input_player10_y_axis = "nul" +input_player10_y_mbtn = "nul" +input_player10_select = "nul" +input_player10_select_btn = "nul" +input_player10_select_axis = "nul" +input_player10_select_mbtn = "nul" +input_player10_start = "nul" +input_player10_start_btn = "nul" +input_player10_start_axis = "nul" +input_player10_start_mbtn = "nul" +input_player10_up = "nul" +input_player10_up_btn = "nul" +input_player10_up_axis = "nul" +input_player10_up_mbtn = "nul" +input_player10_down = "nul" +input_player10_down_btn = "nul" +input_player10_down_axis = "nul" +input_player10_down_mbtn = "nul" +input_player10_left = "nul" +input_player10_left_btn = "nul" +input_player10_left_axis = "nul" +input_player10_left_mbtn = "nul" +input_player10_right = "nul" +input_player10_right_btn = "nul" +input_player10_right_axis = "nul" +input_player10_right_mbtn = "nul" +input_player10_a = "nul" +input_player10_a_btn = "nul" +input_player10_a_axis = "nul" +input_player10_a_mbtn = "nul" +input_player10_x = "nul" +input_player10_x_btn = "nul" +input_player10_x_axis = "nul" +input_player10_x_mbtn = "nul" +input_player10_l = "nul" +input_player10_l_btn = "nul" +input_player10_l_axis = "nul" +input_player10_l_mbtn = "nul" +input_player10_r = "nul" +input_player10_r_btn = "nul" +input_player10_r_axis = "nul" +input_player10_r_mbtn = "nul" +input_player10_l2 = "nul" +input_player10_l2_btn = "nul" +input_player10_l2_axis = "nul" +input_player10_l2_mbtn = "nul" +input_player10_r2 = "nul" +input_player10_r2_btn = "nul" +input_player10_r2_axis = "nul" +input_player10_r2_mbtn = "nul" +input_player10_l3 = "nul" +input_player10_l3_btn = "nul" +input_player10_l3_axis = "nul" +input_player10_l3_mbtn = "nul" +input_player10_r3 = "nul" +input_player10_r3_btn = "nul" +input_player10_r3_axis = "nul" +input_player10_r3_mbtn = "nul" +input_player10_l_x_plus = "nul" +input_player10_l_x_plus_btn = "nul" +input_player10_l_x_plus_axis = "nul" +input_player10_l_x_plus_mbtn = "nul" +input_player10_l_x_minus = "nul" +input_player10_l_x_minus_btn = "nul" +input_player10_l_x_minus_axis = "nul" +input_player10_l_x_minus_mbtn = "nul" +input_player10_l_y_plus = "nul" +input_player10_l_y_plus_btn = "nul" +input_player10_l_y_plus_axis = "nul" +input_player10_l_y_plus_mbtn = "nul" +input_player10_l_y_minus = "nul" +input_player10_l_y_minus_btn = "nul" +input_player10_l_y_minus_axis = "nul" +input_player10_l_y_minus_mbtn = "nul" +input_player10_r_x_plus = "nul" +input_player10_r_x_plus_btn = "nul" +input_player10_r_x_plus_axis = "nul" +input_player10_r_x_plus_mbtn = "nul" +input_player10_r_x_minus = "nul" +input_player10_r_x_minus_btn = "nul" +input_player10_r_x_minus_axis = "nul" +input_player10_r_x_minus_mbtn = "nul" +input_player10_r_y_plus = "nul" +input_player10_r_y_plus_btn = "nul" +input_player10_r_y_plus_axis = "nul" +input_player10_r_y_plus_mbtn = "nul" +input_player10_r_y_minus = "nul" +input_player10_r_y_minus_btn = "nul" +input_player10_r_y_minus_axis = "nul" +input_player10_r_y_minus_mbtn = "nul" +input_player10_gun_trigger = "nul" +input_player10_gun_trigger_btn = "nul" +input_player10_gun_trigger_axis = "nul" +input_player10_gun_trigger_mbtn = "nul" +input_player10_gun_offscreen_shot = "nul" +input_player10_gun_offscreen_shot_btn = "nul" +input_player10_gun_offscreen_shot_axis = "nul" +input_player10_gun_offscreen_shot_mbtn = "nul" +input_player10_gun_aux_a = "nul" +input_player10_gun_aux_a_btn = "nul" +input_player10_gun_aux_a_axis = "nul" +input_player10_gun_aux_a_mbtn = "nul" +input_player10_gun_aux_b = "nul" +input_player10_gun_aux_b_btn = "nul" +input_player10_gun_aux_b_axis = "nul" +input_player10_gun_aux_b_mbtn = "nul" +input_player10_gun_aux_c = "nul" +input_player10_gun_aux_c_btn = "nul" +input_player10_gun_aux_c_axis = "nul" +input_player10_gun_aux_c_mbtn = "nul" +input_player10_gun_start = "nul" +input_player10_gun_start_btn = "nul" +input_player10_gun_start_axis = "nul" +input_player10_gun_start_mbtn = "nul" +input_player10_gun_select = "nul" +input_player10_gun_select_btn = "nul" +input_player10_gun_select_axis = "nul" +input_player10_gun_select_mbtn = "nul" +input_player10_gun_dpad_up = "nul" +input_player10_gun_dpad_up_btn = "nul" +input_player10_gun_dpad_up_axis = "nul" +input_player10_gun_dpad_up_mbtn = "nul" +input_player10_gun_dpad_down = "nul" +input_player10_gun_dpad_down_btn = "nul" +input_player10_gun_dpad_down_axis = "nul" +input_player10_gun_dpad_down_mbtn = "nul" +input_player10_gun_dpad_left = "nul" +input_player10_gun_dpad_left_btn = "nul" +input_player10_gun_dpad_left_axis = "nul" +input_player10_gun_dpad_left_mbtn = "nul" +input_player10_gun_dpad_right = "nul" +input_player10_gun_dpad_right_btn = "nul" +input_player10_gun_dpad_right_axis = "nul" +input_player10_gun_dpad_right_mbtn = "nul" +input_player10_turbo = "nul" +input_player10_turbo_btn = "nul" +input_player10_turbo_axis = "nul" +input_player10_turbo_mbtn = "nul" +input_player11_b = "nul" +input_player11_b_btn = "nul" +input_player11_b_axis = "nul" +input_player11_b_mbtn = "nul" +input_player11_y = "nul" +input_player11_y_btn = "nul" +input_player11_y_axis = "nul" +input_player11_y_mbtn = "nul" +input_player11_select = "nul" +input_player11_select_btn = "nul" +input_player11_select_axis = "nul" +input_player11_select_mbtn = "nul" +input_player11_start = "nul" +input_player11_start_btn = "nul" +input_player11_start_axis = "nul" +input_player11_start_mbtn = "nul" +input_player11_up = "nul" +input_player11_up_btn = "nul" +input_player11_up_axis = "nul" +input_player11_up_mbtn = "nul" +input_player11_down = "nul" +input_player11_down_btn = "nul" +input_player11_down_axis = "nul" +input_player11_down_mbtn = "nul" +input_player11_left = "nul" +input_player11_left_btn = "nul" +input_player11_left_axis = "nul" +input_player11_left_mbtn = "nul" +input_player11_right = "nul" +input_player11_right_btn = "nul" +input_player11_right_axis = "nul" +input_player11_right_mbtn = "nul" +input_player11_a = "nul" +input_player11_a_btn = "nul" +input_player11_a_axis = "nul" +input_player11_a_mbtn = "nul" +input_player11_x = "nul" +input_player11_x_btn = "nul" +input_player11_x_axis = "nul" +input_player11_x_mbtn = "nul" +input_player11_l = "nul" +input_player11_l_btn = "nul" +input_player11_l_axis = "nul" +input_player11_l_mbtn = "nul" +input_player11_r = "nul" +input_player11_r_btn = "nul" +input_player11_r_axis = "nul" +input_player11_r_mbtn = "nul" +input_player11_l2 = "nul" +input_player11_l2_btn = "nul" +input_player11_l2_axis = "nul" +input_player11_l2_mbtn = "nul" +input_player11_r2 = "nul" +input_player11_r2_btn = "nul" +input_player11_r2_axis = "nul" +input_player11_r2_mbtn = "nul" +input_player11_l3 = "nul" +input_player11_l3_btn = "nul" +input_player11_l3_axis = "nul" +input_player11_l3_mbtn = "nul" +input_player11_r3 = "nul" +input_player11_r3_btn = "nul" +input_player11_r3_axis = "nul" +input_player11_r3_mbtn = "nul" +input_player11_l_x_plus = "nul" +input_player11_l_x_plus_btn = "nul" +input_player11_l_x_plus_axis = "nul" +input_player11_l_x_plus_mbtn = "nul" +input_player11_l_x_minus = "nul" +input_player11_l_x_minus_btn = "nul" +input_player11_l_x_minus_axis = "nul" +input_player11_l_x_minus_mbtn = "nul" +input_player11_l_y_plus = "nul" +input_player11_l_y_plus_btn = "nul" +input_player11_l_y_plus_btn = "nul" +input_player11_l_y_plus_axis = "nul" +input_player11_l_y_plus_mbtn = "nul" +input_player11_l_y_minus = "nul" +input_player11_l_y_minus_btn = "nul" +input_player11_l_y_minus_axis = "nul" +input_player11_l_y_minus_mbtn = "nul" +input_player11_r_x_plus = "nul" +input_player11_r_x_plus_btn = "nul" +input_player11_r_x_plus_axis = "nul" +input_player11_r_x_plus_mbtn = "nul" +input_player11_r_x_minus = "nul" +input_player11_r_x_minus_btn = "nul" +input_player11_r_x_minus_axis = "nul" +input_player11_r_x_minus_mbtn = "nul" +input_player11_r_y_plus = "nul" +input_player11_r_y_plus_btn = "nul" +input_player11_r_y_plus_axis = "nul" +input_player11_r_y_plus_mbtn = "nul" +input_player11_r_y_minus = "nul" +input_player11_r_y_minus_btn = "nul" +input_player11_r_y_minus_axis = "nul" +input_player11_r_y_minus_mbtn = "nul" +input_player11_gun_trigger = "nul" +input_player11_gun_trigger_btn = "nul" +input_player11_gun_trigger_axis = "nul" +input_player11_gun_trigger_mbtn = "nul" +input_player11_gun_offscreen_shot = "nul" +input_player11_gun_offscreen_shot_btn = "nul" +input_player11_gun_offscreen_shot_axis = "nul" +input_player11_gun_offscreen_shot_mbtn = "nul" +input_player11_gun_aux_a = "nul" +input_player11_gun_aux_a_btn = "nul" +input_player11_gun_aux_a_axis = "nul" +input_player11_gun_aux_a_mbtn = "nul" +input_player11_gun_aux_b = "nul" +input_player11_gun_aux_b_btn = "nul" +input_player11_gun_aux_b_axis = "nul" +input_player11_gun_aux_b_mbtn = "nul" +input_player11_gun_aux_c = "nul" +input_player11_gun_aux_c_btn = "nul" +input_player11_gun_aux_c_axis = "nul" +input_player11_gun_aux_c_mbtn = "nul" +input_player11_gun_start = "nul" +input_player11_gun_start_btn = "nul" +input_player11_gun_start_axis = "nul" +input_player11_gun_start_mbtn = "nul" +input_player11_gun_select = "nul" +input_player11_gun_select_btn = "nul" +input_player11_gun_select_axis = "nul" +input_player11_gun_select_mbtn = "nul" +input_player11_gun_dpad_up = "nul" +input_player11_gun_dpad_up_btn = "nul" +input_player11_gun_dpad_up_axis = "nul" +input_player11_gun_dpad_up_mbtn = "nul" +input_player11_gun_dpad_down = "nul" +input_player11_gun_dpad_down_btn = "nul" +input_player11_gun_dpad_down_axis = "nul" +input_player11_gun_dpad_down_mbtn = "nul" +input_player11_gun_dpad_left = "nul" +input_player11_gun_dpad_left_btn = "nul" +input_player11_gun_dpad_left_axis = "nul" +input_player11_gun_dpad_left_mbtn = "nul" +input_player11_gun_dpad_right = "nul" +input_player11_gun_dpad_right_btn = "nul" +input_player11_gun_dpad_right_axis = "nul" +input_player11_gun_dpad_right_mbtn = "nul" +input_player11_turbo = "nul" +input_player11_turbo_btn = "nul" +input_player11_turbo_axis = "nul" +input_player11_turbo_mbtn = "nul" +input_player12_b = "nul" +input_player12_b_btn = "nul" +input_player12_b_axis = "nul" +input_player12_b_mbtn = "nul" +input_player12_y = "nul" +input_player12_y_btn = "nul" +input_player12_y_axis = "nul" +input_player12_y_mbtn = "nul" +input_player12_select = "nul" +input_player12_select_btn = "nul" +input_player12_select_axis = "nul" +input_player12_select_mbtn = "nul" +input_player12_start = "nul" +input_player12_start_btn = "nul" +input_player12_start_axis = "nul" +input_player12_start_mbtn = "nul" +input_player12_up = "nul" +input_player12_up_btn = "nul" +input_player12_up_axis = "nul" +input_player12_up_mbtn = "nul" +input_player12_down = "nul" +input_player12_down_btn = "nul" +input_player12_down_axis = "nul" +input_player12_down_mbtn = "nul" +input_player12_left = "nul" +input_player12_left_btn = "nul" +input_player12_left_axis = "nul" +input_player12_left_mbtn = "nul" +input_player12_right = "nul" +input_player12_right_btn = "nul" +input_player12_right_axis = "nul" +input_player12_right_mbtn = "nul" +input_player12_a = "nul" +input_player12_a_btn = "nul" +input_player12_a_axis = "nul" +input_player12_a_mbtn = "nul" +input_player12_x = "nul" +input_player12_x_btn = "nul" +input_player12_x_axis = "nul" +input_player12_x_mbtn = "nul" +input_player12_l = "nul" +input_player12_l_btn = "nul" +input_player12_l_axis = "nul" +input_player12_l_mbtn = "nul" +input_player12_r = "nul" +input_player12_r_btn = "nul" +input_player12_r_axis = "nul" +input_player12_r_mbtn = "nul" +input_player12_l2 = "nul" +input_player12_l2_btn = "nul" +input_player12_l2_axis = "nul" +input_player12_l2_mbtn = "nul" +input_player12_r2 = "nul" +input_player12_r2_btn = "nul" +input_player12_r2_axis = "nul" +input_player12_r2_mbtn = "nul" +input_player12_l3 = "nul" +input_player12_l3_btn = "nul" +input_player12_l3_axis = "nul" +input_player12_l3_mbtn = "nul" +input_player12_r3 = "nul" +input_player12_r3_btn = "nul" +input_player12_r3_axis = "nul" +input_player12_r3_mbtn = "nul" +input_player12_l_x_plus = "nul" +input_player12_l_x_plus_btn = "nul" +input_player12_l_x_plus_axis = "nul" +input_player12_l_x_plus_mbtn = "nul" +input_player12_l_x_minus = "nul" +input_player12_l_x_minus_btn = "nul" +input_player12_l_x_minus_axis = "nul" +input_player12_l_x_minus_mbtn = "nul" +input_player12_l_y_plus = "nul" +input_player12_l_y_plus_btn = "nul" +input_player12_l_y_plus_axis = "nul" +input_player12_l_y_plus_mbtn = "nul" +input_player12_l_y_minus = "nul" +input_player12_l_y_minus_btn = "nul" +input_player12_l_y_minus_axis = "nul" +input_player12_l_y_minus_mbtn = "nul" +input_player12_r_x_plus = "nul" +input_player12_r_x_plus_btn = "nul" +input_player12_r_x_plus_axis = "nul" +input_player12_r_x_plus_mbtn = "nul" +input_player12_r_x_minus = "nul" +input_player12_r_x_minus_btn = "nul" +input_player12_r_x_minus_axis = "nul" +input_player12_r_x_minus_mbtn = "nul" +input_player12_r_y_plus = "nul" +input_player12_r_y_plus_btn = "nul" +input_player12_r_y_plus_axis = "nul" +input_player12_r_y_plus_mbtn = "nul" +input_player12_r_y_minus = "nul" +input_player12_r_y_minus_btn = "nul" +input_player12_r_y_minus_axis = "nul" +input_player12_r_y_minus_mbtn = "nul" +input_player12_gun_trigger = "nul" +input_player12_gun_trigger_btn = "nul" +input_player12_gun_trigger_axis = "nul" +input_player12_gun_trigger_mbtn = "nul" +input_player12_gun_offscreen_shot = "nul" +input_player12_gun_offscreen_shot_btn = "nul" +input_player12_gun_offscreen_shot_axis = "nul" +input_player12_gun_offscreen_shot_mbtn = "nul" +input_player12_gun_aux_a = "nul" +input_player12_gun_aux_a_btn = "nul" +input_player12_gun_aux_a_axis = "nul" +input_player12_gun_aux_a_mbtn = "nul" +input_player12_gun_aux_b = "nul" +input_player12_gun_aux_b_btn = "nul" +input_player12_gun_aux_b_axis = "nul" +input_player12_gun_aux_b_mbtn = "nul" +input_player12_gun_aux_c = "nul" +input_player12_gun_aux_c_btn = "nul" +input_player12_gun_aux_c_axis = "nul" +input_player12_gun_aux_c_mbtn = "nul" +input_player12_gun_start = "nul" +input_player12_gun_start_btn = "nul" +input_player12_gun_start_axis = "nul" +input_player12_gun_start_mbtn = "nul" +input_player12_gun_select = "nul" +input_player12_gun_select_btn = "nul" +input_player12_gun_select_axis = "nul" +input_player12_gun_select_mbtn = "nul" +input_player12_gun_dpad_up = "nul" +input_player12_gun_dpad_up_btn = "nul" +input_player12_gun_dpad_up_axis = "nul" +input_player12_gun_dpad_up_mbtn = "nul" +input_player12_gun_dpad_down = "nul" +input_player12_gun_dpad_down_btn = "nul" +input_player12_gun_dpad_down_axis = "nul" +input_player12_gun_dpad_down_mbtn = "nul" +input_player12_gun_dpad_left = "nul" +input_player12_gun_dpad_left_btn = "nul" +input_player12_gun_dpad_left_axis = "nul" +input_player12_gun_dpad_left_mbtn = "nul" +input_player12_gun_dpad_right = "nul" +input_player12_gun_dpad_right_btn = "nul" +input_player12_gun_dpad_right_axis = "nul" +input_player12_gun_dpad_right_mbtn = "nul" +input_player12_turbo = "nul" +input_player12_turbo_btn = "nul" +input_player12_turbo_axis = "nul" +input_player12_turbo_mbtn = "nul" +input_player13_b = "nul" +input_player13_b_btn = "nul" +input_player13_b_axis = "nul" +input_player13_b_mbtn = "nul" +input_player13_y = "nul" +input_player13_y_btn = "nul" +input_player13_y_axis = "nul" +input_player13_y_mbtn = "nul" +input_player13_select = "nul" +input_player13_select_btn = "nul" +input_player13_select_axis = "nul" +input_player13_select_mbtn = "nul" +input_player13_start = "nul" +input_player13_start_btn = "nul" +input_player13_start_axis = "nul" +input_player13_start_mbtn = "nul" +input_player13_up = "nul" +input_player13_up_btn = "nul" +input_player13_up_axis = "nul" +input_player13_up_mbtn = "nul" +input_player13_down = "nul" +input_player13_down_btn = "nul" +input_player13_down_axis = "nul" +input_player13_down_mbtn = "nul" +input_player13_left = "nul" +input_player13_left_btn = "nul" +input_player13_left_axis = "nul" +input_player13_left_mbtn = "nul" +input_player13_right = "nul" +input_player13_right_btn = "nul" +input_player13_right_axis = "nul" +input_player13_right_mbtn = "nul" +input_player13_a = "nul" +input_player13_a_btn = "nul" +input_player13_a_axis = "nul" +input_player13_a_mbtn = "nul" +input_player13_x = "nul" +input_player13_x_btn = "nul" +input_player13_x_axis = "nul" +input_player13_x_mbtn = "nul" +input_player13_l = "nul" +input_player13_l_btn = "nul" +input_player13_l_axis = "nul" +input_player13_l_mbtn = "nul" +input_player13_r = "nul" +input_player13_r_btn = "nul" +input_player13_r_axis = "nul" +input_player13_r_mbtn = "nul" +input_player13_l2 = "nul" +input_player13_l2_btn = "nul" +input_player13_l2_axis = "nul" +input_player13_l2_mbtn = "nul" +input_player13_r2 = "nul" +input_player13_r2_btn = "nul" +input_player13_r2_axis = "nul" +input_player13_r2_mbtn = "nul" +input_player13_l3 = "nul" +input_player13_l3_btn = "nul" +input_player13_l3_axis = "nul" +input_player13_l3_mbtn = "nul" +input_player13_r3 = "nul" +input_player13_r3_btn = "nul" +input_player13_r3_axis = "nul" +input_player13_r3_mbtn = "nul" +input_player13_l_x_plus = "nul" +input_player13_l_x_plus_btn = "nul" +input_player13_l_x_plus_axis = "nul" +input_player13_l_x_plus_mbtn = "nul" +input_player13_l_x_minus = "nul" +input_player13_l_x_minus_btn = "nul" +input_player13_l_x_minus_axis = "nul" +input_player13_l_x_minus_mbtn = "nul" +input_player13_l_y_plus = "nul" +input_player13_l_y_plus_btn = "nul" +input_player13_l_y_plus_axis = "nul" +input_player13_l_y_plus_mbtn = "nul" +input_player13_l_y_minus = "nul" +input_player13_l_y_minus_btn = "nul" +input_player13_l_y_minus_axis = "nul" +input_player13_l_y_minus_mbtn = "nul" +input_player13_r_x_plus = "nul" +input_player13_r_x_plus_btn = "nul" +input_player13_r_x_plus_axis = "nul" +input_player13_r_x_plus_mbtn = "nul" +input_player13_r_x_minus = "nul" +input_player13_r_x_minus_btn = "nul" +input_player13_r_x_minus_axis = "nul" +input_player13_r_x_minus_mbtn = "nul" +input_player13_r_y_plus = "nul" +input_player13_r_y_plus_btn = "nul" +input_player13_r_y_plus_axis = "nul" +input_player13_r_y_plus_mbtn = "nul" +input_player13_r_y_minus = "nul" +input_player13_r_y_minus_btn = "nul" +input_player13_r_y_minus_axis = "nul" +input_player13_r_y_minus_mbtn = "nul" +input_player13_gun_trigger = "nul" +input_player13_gun_trigger_btn = "nul" +input_player13_gun_trigger_axis = "nul" +input_player13_gun_trigger_mbtn = "nul" +input_player13_gun_offscreen_shot = "nul" +input_player13_gun_offscreen_shot_btn = "nul" +input_player13_gun_offscreen_shot_axis = "nul" +input_player13_gun_offscreen_shot_mbtn = "nul" +input_player13_gun_aux_a = "nul" +input_player13_gun_aux_a_btn = "nul" +input_player13_gun_aux_a_axis = "nul" +input_player13_gun_aux_a_mbtn = "nul" +input_player13_gun_aux_b = "nul" +input_player13_gun_aux_b_btn = "nul" +input_player13_gun_aux_b_axis = "nul" +input_player13_gun_aux_b_mbtn = "nul" +input_player13_gun_aux_c = "nul" +input_player13_gun_aux_c_btn = "nul" +input_player13_gun_aux_c_axis = "nul" +input_player13_gun_aux_c_mbtn = "nul" +input_player13_gun_start = "nul" +input_player13_gun_start_btn = "nul" +input_player13_gun_start_axis = "nul" +input_player13_gun_start_mbtn = "nul" +input_player13_gun_select = "nul" +input_player13_gun_select_btn = "nul" +input_player13_gun_select_axis = "nul" +input_player13_gun_select_mbtn = "nul" +input_player13_gun_dpad_up = "nul" +input_player13_gun_dpad_up_btn = "nul" +input_player13_gun_dpad_up_axis = "nul" +input_player13_gun_dpad_up_mbtn = "nul" +input_player13_gun_dpad_down = "nul" +input_player13_gun_dpad_down_btn = "nul" +input_player13_gun_dpad_down_axis = "nul" +input_player13_gun_dpad_down_mbtn = "nul" +input_player13_gun_dpad_left = "nul" +input_player13_gun_dpad_left_btn = "nul" +input_player13_gun_dpad_left_axis = "nul" +input_player13_gun_dpad_left_mbtn = "nul" +input_player13_gun_dpad_right = "nul" +input_player13_gun_dpad_right_btn = "nul" +input_player13_gun_dpad_right_axis = "nul" +input_player13_gun_dpad_right_mbtn = "nul" +input_player13_turbo = "nul" +input_player13_turbo_btn = "nul" +input_player13_turbo_axis = "nul" +input_player13_turbo_mbtn = "nul" +input_player14_b = "nul" +input_player14_b_btn = "nul" +input_player14_b_axis = "nul" +input_player14_b_mbtn = "nul" +input_player14_y = "nul" +input_player14_y_btn = "nul" +input_player14_y_axis = "nul" +input_player14_y_mbtn = "nul" +input_player14_select = "nul" +input_player14_select_btn = "nul" +input_player14_select_axis = "nul" +input_player14_select_mbtn = "nul" +input_player14_start = "nul" +input_player14_start_btn = "nul" +input_player14_start_axis = "nul" +input_player14_start_mbtn = "nul" +input_player14_up = "nul" +input_player14_up_btn = "nul" +input_player14_up_axis = "nul" +input_player14_up_mbtn = "nul" +input_player14_down = "nul" +input_player14_down_btn = "nul" +input_player14_down_axis = "nul" +input_player14_down_mbtn = "nul" +input_player14_left = "nul" +input_player14_left_btn = "nul" +input_player14_left_axis = "nul" +input_player14_left_mbtn = "nul" +input_player14_right = "nul" +input_player14_right_btn = "nul" +input_player14_right_axis = "nul" +input_player14_right_mbtn = "nul" +input_player14_a = "nul" +input_player14_a_btn = "nul" +input_player14_a_axis = "nul" +input_player14_a_mbtn = "nul" +input_player14_x = "nul" +input_player14_x_btn = "nul" +input_player14_x_axis = "nul" +input_player14_x_mbtn = "nul" +input_player14_l = "nul" +input_player14_l_btn = "nul" +input_player14_l_axis = "nul" +input_player14_l_mbtn = "nul" +input_player14_r = "nul" +input_player14_r_btn = "nul" +input_player14_r_axis = "nul" +input_player14_r_mbtn = "nul" +input_player14_l2 = "nul" +input_player14_l2_btn = "nul" +input_player14_l2_axis = "nul" +input_player14_l2_mbtn = "nul" +input_player14_r2 = "nul" +input_player14_r2_btn = "nul" +input_player14_r2_axis = "nul" +input_player14_r2_mbtn = "nul" +input_player14_l3 = "nul" +input_player14_l3_btn = "nul" +input_player14_l3_axis = "nul" +input_player14_l3_mbtn = "nul" +input_player14_r3 = "nul" +input_player14_r3_btn = "nul" +input_player14_r3_axis = "nul" +input_player14_r3_mbtn = "nul" +input_player14_l_x_plus = "nul" +input_player14_l_x_plus_btn = "nul" +input_player14_l_x_plus_axis = "nul" +input_player14_l_x_plus_mbtn = "nul" +input_player14_l_x_minus = "nul" +input_player14_l_x_minus_btn = "nul" +input_player14_l_x_minus_axis = "nul" +input_player14_l_x_minus_mbtn = "nul" +input_player14_l_y_plus = "nul" +input_player14_l_y_plus_btn = "nul" +input_player14_l_y_plus_axis = "nul" +input_player14_l_y_plus_mbtn = "nul" +input_player14_l_y_minus = "nul" +input_player14_l_y_minus_btn = "nul" +input_player14_l_y_minus_axis = "nul" +input_player14_l_y_minus_mbtn = "nul" +input_player14_r_x_plus = "nul" +input_player14_r_x_plus_btn = "nul" +input_player14_r_x_plus_axis = "nul" +input_player14_r_x_plus_mbtn = "nul" +input_player14_r_x_minus = "nul" +input_player14_r_x_minus_btn = "nul" +input_player14_r_x_minus_axis = "nul" +input_player14_r_x_minus_mbtn = "nul" +input_player14_r_y_plus = "nul" +input_player14_r_y_plus_btn = "nul" +input_player14_r_y_plus_axis = "nul" +input_player14_r_y_plus_mbtn = "nul" +input_player14_r_y_minus = "nul" +input_player14_r_y_minus_btn = "nul" +input_player14_r_y_minus_axis = "nul" +input_player14_r_y_minus_mbtn = "nul" +input_player14_gun_trigger = "nul" +input_player14_gun_trigger_btn = "nul" +input_player14_gun_trigger_axis = "nul" +input_player14_gun_trigger_mbtn = "nul" +input_player14_gun_offscreen_shot = "nul" +input_player14_gun_offscreen_shot_btn = "nul" +input_player14_gun_offscreen_shot_axis = "nul" +input_player14_gun_offscreen_shot_mbtn = "nul" +input_player14_gun_aux_a = "nul" +input_player14_gun_aux_a_btn = "nul" +input_player14_gun_aux_a_axis = "nul" +input_player14_gun_aux_a_mbtn = "nul" +input_player14_gun_aux_b = "nul" +input_player14_gun_aux_b_btn = "nul" +input_player14_gun_aux_b_axis = "nul" +input_player14_gun_aux_b_mbtn = "nul" +input_player14_gun_aux_c = "nul" +input_player14_gun_aux_c_btn = "nul" +input_player14_gun_aux_c_axis = "nul" +input_player14_gun_aux_c_mbtn = "nul" +input_player14_gun_start = "nul" +input_player14_gun_start_btn = "nul" +input_player14_gun_start_axis = "nul" +input_player14_gun_start_mbtn = "nul" +input_player14_gun_select = "nul" +input_player14_gun_select_btn = "nul" +input_player14_gun_select_axis = "nul" +input_player14_gun_select_mbtn = "nul" +input_player14_gun_dpad_up = "nul" +input_player14_gun_dpad_up_btn = "nul" +input_player14_gun_dpad_up_axis = "nul" +input_player14_gun_dpad_up_mbtn = "nul" +input_player14_gun_dpad_down = "nul" +input_player14_gun_dpad_down_btn = "nul" +input_player14_gun_dpad_down_axis = "nul" +input_player14_gun_dpad_down_mbtn = "nul" +input_player14_gun_dpad_left = "nul" +input_player14_gun_dpad_left_btn = "nul" +input_player14_gun_dpad_left_axis = "nul" +input_player14_gun_dpad_left_mbtn = "nul" +input_player14_gun_dpad_right = "nul" +input_player14_gun_dpad_right_btn = "nul" +input_player14_gun_dpad_right_axis = "nul" +input_player14_gun_dpad_right_mbtn = "nul" +input_player14_turbo = "nul" +input_player14_turbo_btn = "nul" +input_player14_turbo_axis = "nul" +input_player14_turbo_mbtn = "nul" +input_player15_b = "nul" +input_player15_b_btn = "nul" +input_player15_b_axis = "nul" +input_player15_b_mbtn = "nul" +input_player15_y = "nul" +input_player15_y_btn = "nul" +input_player15_y_axis = "nul" +input_player15_y_mbtn = "nul" +input_player15_select = "nul" +input_player15_select_btn = "nul" +input_player15_select_axis = "nul" +input_player15_select_mbtn = "nul" +input_player15_start = "nul" +input_player15_start_btn = "nul" +input_player15_start_axis = "nul" +input_player15_start_mbtn = "nul" +input_player15_up = "nul" +input_player15_up_btn = "nul" +input_player15_up_axis = "nul" +input_player15_up_mbtn = "nul" +input_player15_down = "nul" +input_player15_down_btn = "nul" +input_player15_down_axis = "nul" +input_player15_down_mbtn = "nul" +input_player15_left = "nul" +input_player15_left_btn = "nul" +input_player15_left_axis = "nul" +input_player15_left_mbtn = "nul" +input_player15_right = "nul" +input_player15_right_btn = "nul" +input_player15_right_axis = "nul" +input_player15_right_mbtn = "nul" +input_player15_a = "nul" +input_player15_a_btn = "nul" +input_player15_a_axis = "nul" +input_player15_a_mbtn = "nul" +input_player15_x = "nul" +input_player15_x_btn = "nul" +input_player15_x_axis = "nul" +input_player15_x_mbtn = "nul" +input_player15_l = "nul" +input_player15_l_btn = "nul" +input_player15_l_axis = "nul" +input_player15_l_mbtn = "nul" +input_player15_r = "nul" +input_player15_r_btn = "nul" +input_player15_r_axis = "nul" +input_player15_r_mbtn = "nul" +input_player15_l2 = "nul" +input_player15_l2_btn = "nul" +input_player15_l2_axis = "nul" +input_player15_l2_mbtn = "nul" +input_player15_r2 = "nul" +input_player15_r2_btn = "nul" +input_player15_r2_axis = "nul" +input_player15_r2_mbtn = "nul" +input_player15_l3 = "nul" +input_player15_l3_btn = "nul" +input_player15_l3_axis = "nul" +input_player15_l3_mbtn = "nul" +input_player15_r3 = "nul" +input_player15_r3_btn = "nul" +input_player15_r3_axis = "nul" +input_player15_r3_mbtn = "nul" +input_player15_l_x_plus = "nul" +input_player15_l_x_plus_btn = "nul" +input_player15_l_x_plus_axis = "nul" +input_player15_l_x_plus_mbtn = "nul" +input_player15_l_x_minus = "nul" +input_player15_l_x_minus_btn = "nul" +input_player15_l_x_minus_axis = "nul" +input_player15_l_x_minus_mbtn = "nul" +input_player15_l_y_plus = "nul" +input_player15_l_y_plus_btn = "nul" +input_player15_l_y_plus_axis = "nul" +input_player15_l_y_plus_mbtn = "nul" +input_player15_l_y_minus = "nul" +input_player15_l_y_minus_btn = "nul" +input_player15_l_y_minus_axis = "nul" +input_player15_l_y_minus_mbtn = "nul" +input_player15_r_x_plus = "nul" +input_player15_r_x_plus_btn = "nul" +input_player15_r_x_plus_axis = "nul" +input_player15_r_x_plus_mbtn = "nul" +input_player15_r_x_minus = "nul" +input_player15_r_x_minus_btn = "nul" +input_player15_r_x_minus_axis = "nul" +input_player15_r_x_minus_mbtn = "nul" +input_player15_r_y_plus = "nul" +input_player15_r_y_plus_btn = "nul" +input_player15_r_y_plus_axis = "nul" +input_player15_r_y_plus_mbtn = "nul" +input_player15_r_y_minus = "nul" +input_player15_r_y_minus_btn = "nul" +input_player15_r_y_minus_axis = "nul" +input_player15_r_y_minus_mbtn = "nul" +input_player15_gun_trigger = "nul" +input_player15_gun_trigger_btn = "nul" +input_player15_gun_trigger_axis = "nul" +input_player15_gun_trigger_mbtn = "nul" +input_player15_gun_offscreen_shot = "nul" +input_player15_gun_offscreen_shot_btn = "nul" +input_player15_gun_offscreen_shot_axis = "nul" +input_player15_gun_offscreen_shot_mbtn = "nul" +input_player15_gun_aux_a = "nul" +input_player15_gun_aux_a_btn = "nul" +input_player15_gun_aux_a_axis = "nul" +input_player15_gun_aux_a_mbtn = "nul" +input_player15_gun_aux_b = "nul" +input_player15_gun_aux_b_btn = "nul" +input_player15_gun_aux_b_axis = "nul" +input_player15_gun_aux_b_mbtn = "nul" +input_player15_gun_aux_c = "nul" +input_player15_gun_aux_c_btn = "nul" +input_player15_gun_aux_c_axis = "nul" +input_player15_gun_aux_c_mbtn = "nul" +input_player15_gun_start = "nul" +input_player15_gun_start_btn = "nul" +input_player15_gun_start_axis = "nul" +input_player15_gun_start_mbtn = "nul" +input_player15_gun_select = "nul" +input_player15_gun_select_btn = "nul" +input_player15_gun_select_axis = "nul" +input_player15_gun_select_mbtn = "nul" +input_player15_gun_dpad_up = "nul" +input_player15_gun_dpad_up_btn = "nul" +input_player15_gun_dpad_up_axis = "nul" +input_player15_gun_dpad_up_mbtn = "nul" +input_player15_gun_dpad_down = "nul" +input_player15_gun_dpad_down_btn = "nul" +input_player15_gun_dpad_down_axis = "nul" +input_player15_gun_dpad_down_mbtn = "nul" +input_player15_gun_dpad_left = "nul" +input_player15_gun_dpad_left_btn = "nul" +input_player15_gun_dpad_left_axis = "nul" +input_player15_gun_dpad_left_mbtn = "nul" +input_player15_gun_dpad_right = "nul" +input_player15_gun_dpad_right_btn = "nul" +input_player15_gun_dpad_right_axis = "nul" +input_player15_gun_dpad_right_mbtn = "nul" +input_player15_turbo = "nul" +input_player15_turbo_btn = "nul" +input_player15_turbo_axis = "nul" +input_player15_turbo_mbtn = "nul" +input_player16_b = "nul" +input_player16_b_btn = "nul" +input_player16_b_axis = "nul" +input_player16_b_mbtn = "nul" +input_player16_y = "nul" +input_player16_y_btn = "nul" +input_player16_y_axis = "nul" +input_player16_y_mbtn = "nul" +input_player16_select = "nul" +input_player16_select_btn = "nul" +input_player16_select_axis = "nul" +input_player16_select_mbtn = "nul" +input_player16_start = "nul" +input_player16_start_btn = "nul" +input_player16_start_axis = "nul" +input_player16_start_mbtn = "nul" +input_player16_up = "nul" +input_player16_up_btn = "nul" +input_player16_up_axis = "nul" +input_player16_up_mbtn = "nul" +input_player16_down = "nul" +input_player16_down_btn = "nul" +input_player16_down_axis = "nul" +input_player16_down_mbtn = "nul" +input_player16_left = "nul" +input_player16_left_btn = "nul" +input_player16_left_axis = "nul" +input_player16_left_mbtn = "nul" +input_player16_right = "nul" +input_player16_right_btn = "nul" +input_player16_right_axis = "nul" +input_player16_right_mbtn = "nul" +input_player16_a = "nul" +input_player16_a_btn = "nul" +input_player16_a_axis = "nul" +input_player16_a_mbtn = "nul" +input_player16_x = "nul" +input_player16_x_btn = "nul" +input_player16_x_axis = "nul" +input_player16_x_mbtn = "nul" +input_player16_l = "nul" +input_player16_l_btn = "nul" +input_player16_l_axis = "nul" +input_player16_l_mbtn = "nul" +input_player16_r = "nul" +input_player16_r_btn = "nul" +input_player16_r_axis = "nul" +input_player16_r_mbtn = "nul" +input_player16_l2 = "nul" +input_player16_l2_btn = "nul" +input_player16_l2_axis = "nul" +input_player16_l2_mbtn = "nul" +input_player16_r2 = "nul" +input_player16_r2_btn = "nul" +input_player16_r2_axis = "nul" +input_player16_r2_mbtn = "nul" +input_player16_l3 = "nul" +input_player16_l3_btn = "nul" +input_player16_l3_axis = "nul" +input_player16_l3_mbtn = "nul" +input_player16_r3 = "nul" +input_player16_r3_btn = "nul" +input_player16_r3_axis = "nul" +input_player16_r3_mbtn = "nul" +input_player16_l_x_plus = "nul" +input_player16_l_x_plus_btn = "nul" +input_player16_l_x_plus_axis = "nul" +input_player16_l_x_plus_mbtn = "nul" +input_player16_l_x_minus = "nul" +input_player16_l_x_minus_btn = "nul" +input_player16_l_x_minus_axis = "nul" +input_player16_l_x_minus_mbtn = "nul" +input_player16_l_y_plus = "nul" +input_player16_l_y_plus_btn = "nul" +input_player16_l_y_plus_axis = "nul" +input_player16_l_y_plus_mbtn = "nul" +input_player16_l_y_minus = "nul" +input_player16_l_y_minus_btn = "nul" +input_player16_l_y_minus_axis = "nul" +input_player16_l_y_minus_mbtn = "nul" +input_player16_r_x_plus = "nul" +input_player16_r_x_plus_btn = "nul" +input_player16_r_x_plus_axis = "nul" +input_player16_r_x_plus_mbtn = "nul" +input_player16_r_x_minus = "nul" +input_player16_r_x_minus_btn = "nul" +input_player16_r_x_minus_axis = "nul" +input_player16_r_x_minus_mbtn = "nul" +input_player16_r_y_plus = "nul" +input_player16_r_y_plus_btn = "nul" +input_player16_r_y_plus_axis = "nul" +input_player16_r_y_plus_mbtn = "nul" +input_player16_r_y_minus = "nul" +input_player16_r_y_minus_btn = "nul" +input_player16_r_y_minus_axis = "nul" +input_player16_r_y_minus_mbtn = "nul" +input_player16_gun_trigger = "nul" +input_player16_gun_trigger_btn = "nul" +input_player16_gun_trigger_axis = "nul" +input_player16_gun_trigger_mbtn = "nul" +input_player16_gun_offscreen_shot = "nul" +input_player16_gun_offscreen_shot_btn = "nul" +input_player16_gun_offscreen_shot_axis = "nul" +input_player16_gun_offscreen_shot_mbtn = "nul" +input_player16_gun_aux_a = "nul" +input_player16_gun_aux_a_btn = "nul" +input_player16_gun_aux_a_axis = "nul" +input_player16_gun_aux_a_mbtn = "nul" +input_player16_gun_aux_b = "nul" +input_player16_gun_aux_b_btn = "nul" +input_player16_gun_aux_b_axis = "nul" +input_player16_gun_aux_b_mbtn = "nul" +input_player16_gun_aux_c = "nul" +input_player16_gun_aux_c_btn = "nul" +input_player16_gun_aux_c_axis = "nul" +input_player16_gun_aux_c_mbtn = "nul" +input_player16_gun_start = "nul" +input_player16_gun_start_btn = "nul" +input_player16_gun_start_axis = "nul" +input_player16_gun_start_mbtn = "nul" +input_player16_gun_select = "nul" +input_player16_gun_select_btn = "nul" +input_player16_gun_select_axis = "nul" +input_player16_gun_select_mbtn = "nul" +input_player16_gun_dpad_up = "nul" +input_player16_gun_dpad_up_btn = "nul" +input_player16_gun_dpad_up_axis = "nul" +input_player16_gun_dpad_up_mbtn = "nul" +input_player16_gun_dpad_down = "nul" +input_player16_gun_dpad_down_btn = "nul" +input_player16_gun_dpad_down_axis = "nul" +input_player16_gun_dpad_down_mbtn = "nul" +input_player16_gun_dpad_left = "nul" +input_player16_gun_dpad_left_btn = "nul" +input_player16_gun_dpad_left_axis = "nul" +input_player16_gun_dpad_left_mbtn = "nul" +input_player16_gun_dpad_right = "nul" +input_player16_gun_dpad_right_btn = "nul" +input_player16_gun_dpad_right_axis = "nul" +input_player16_gun_dpad_right_mbtn = "nul" +input_player16_turbo = "nul" +input_player16_turbo_btn = "nul" +input_player16_turbo_axis = "nul" +input_player16_turbo_mbtn = "nul" +content_history_path = "/switch/content_history.lpl" +content_favorites_path = "/switch/content_favorites.lpl" +content_music_history_path = "/switch/content_music_history.lpl" +content_video_history_path = "/switch/content_video_history.lpl" +content_image_history_path = "/switch/content_image_history.lpl" +content_show_settings_password = "" +kiosk_mode_password = "" +netplay_nickname = "" +video_filter = "" +audio_dsp_plugin = "" +core_updater_buildbot_url = "" +libretro_directory = "" +core_options_path = "" +libretro_info_path = "" +video_shader = "" +content_database_path = "" +cheat_database_path = "" +menu_wallpaper = "" +video_font_path = "" +cursor_directory = "" +content_history_dir = "" +cache_directory = "" +input_remapping_directory = "" +resampler_directory = "" +joypad_autoconfig_dir = "" +libretro_path = "" +recording_output_directory = "" +recording_config_directory = "" +xmb_font = "" +playlist_names = "" +playlist_cores = "" +audio_device = "" +camera_device = "" +video_context_driver = "" +input_keyboard_layout = "" +bundle_assets_src_path = "" +bundle_assets_dst_path = "" +bundle_assets_dst_path_subdir = "" -- GitLab From 6b014661fd331b72d2ffb38dc4fb4d1d9be217a6 Mon Sep 17 00:00:00 2001 From: M4xw Date: Wed, 6 Jun 2018 00:53:04 +0200 Subject: [PATCH 065/211] Remove VBA-next core assets --- NintendoVBA3.png | Bin 99371 -> 0 bytes NintendoVBA4.png | Bin 89794 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 NintendoVBA3.png delete mode 100644 NintendoVBA4.png diff --git a/NintendoVBA3.png b/NintendoVBA3.png deleted file mode 100644 index 7561ed770604fe043e6c699f3ea9b2467332843f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99371 zcmeGFc{tSH`@oNnREngPN|v&fZL*E*Wi4xA>`eA$FtUWPSCSMVdq{;0L$;A&5Fvyt zW9<7rmMmjzGk#Nfy`z-^p>UyJ?%MK z002OL^M;}}0C0fva^KfO2PwZ={RZ?XzYe?HFmwX|=uUqBPX$PPc?JNW)v{MmxOK}8 z<_>eSgSoKZR8U}dafR8~J6Zz(UcJdWwz@hqj55T*Re80?fiKix+NTe(Ys-fPo{Hq= zy>R%L>f;M(J*RJfJg%g)pZW8v$JF8Bflp80=0Ea;wwq@B!t3w{ZyrBs+#2zD1MMm& zPBxQ^ak5i6E6IheG*yR=#NH6OEf#nrOP=-k@PqnKbtB_~*Mev{T>!@p6FI_M4osx*?SuAC3qVVIRqFrf;3NLA$?c~$LD;3>d0c({B9;F>a3 zU~)XS4&c>(z?~*bi!s100l*!efXNO(VDfr`4;8@p#f8&UuOb2LC#@eV0_>y!Ijwq6 zlmG@-0Hf77^ye|P%wH%`>03133xN`e(@MXY$AHbc@92{PNhY5gF z%FFuFOMJPPqb#cTmt|`-2L0g{J_Fzp zoyf1b7WUhj(Y^8@hS?M_Tq_2=n(5VFarw?hDeZY_PtU~oc(>{&d1LcNeLu2oHKa