From 8673736120b453437006d4ee0d825fab3981b2c3 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Fri, 3 Apr 2026 10:39:24 +0200 Subject: [PATCH] actualitzat al sistema de build i release modern --- .gitignore | 12 +- CMakeLists.txt | 29 +- Makefile | 336 +- release/SDL2.dll | Bin 2450944 -> 0 bytes release/SDL2.framework/SDL2 | 1 - .../SDL2.framework/Versions/A/Headers/SDL.h | 233 - .../Versions/A/Headers/SDL_assert.h | 322 - .../Versions/A/Headers/SDL_atomic.h | 414 -- .../Versions/A/Headers/SDL_audio.h | 1500 ---- .../Versions/A/Headers/SDL_clipboard.h | 141 - .../Versions/A/Headers/SDL_config.h | 61 - .../Versions/A/Headers/SDL_config_macosx.h | 277 - .../Versions/A/Headers/SDL_cpuinfo.h | 594 -- .../Versions/A/Headers/SDL_endian.h | 348 - .../Versions/A/Headers/SDL_error.h | 163 - .../Versions/A/Headers/SDL_events.h | 1166 ---- .../Versions/A/Headers/SDL_filesystem.h | 149 - .../Versions/A/Headers/SDL_gamecontroller.h | 1074 --- .../Versions/A/Headers/SDL_gesture.h | 117 - .../Versions/A/Headers/SDL_guid.h | 100 - .../Versions/A/Headers/SDL_haptic.h | 1341 ---- .../Versions/A/Headers/SDL_hidapi.h | 451 -- .../Versions/A/Headers/SDL_hints.h | 2624 ------- .../Versions/A/Headers/SDL_joystick.h | 1069 --- .../Versions/A/Headers/SDL_keyboard.h | 353 - .../Versions/A/Headers/SDL_keycode.h | 358 - .../Versions/A/Headers/SDL_loadso.h | 115 - .../Versions/A/Headers/SDL_log.h | 404 -- .../Versions/A/Headers/SDL_main.h | 282 - .../Versions/A/Headers/SDL_mouse.h | 464 -- .../Versions/A/Headers/SDL_mutex.h | 545 -- .../Versions/A/Headers/SDL_name.h | 33 - .../Versions/A/Headers/SDL_pixels.h | 644 -- .../Versions/A/Headers/SDL_platform.h | 261 - .../Versions/A/Headers/SDL_quit.h | 58 - .../Versions/A/Headers/SDL_rect.h | 376 - .../Versions/A/Headers/SDL_render.h | 1924 ------ .../Versions/A/Headers/SDL_revision.h | 7 - .../Versions/A/Headers/SDL_rwops.h | 841 --- .../Versions/A/Headers/SDL_sensor.h | 322 - .../Versions/A/Headers/SDL_shape.h | 155 - .../Versions/A/Headers/SDL_stdinc.h | 838 --- .../Versions/A/Headers/SDL_surface.h | 997 --- .../Versions/A/Headers/SDL_system.h | 623 -- .../Versions/A/Headers/SDL_syswm.h | 386 -- .../Versions/A/Headers/SDL_thread.h | 464 -- .../Versions/A/Headers/SDL_timer.h | 222 - .../Versions/A/Headers/SDL_touch.h | 150 - .../Versions/A/Headers/SDL_types.h | 29 - .../Versions/A/Headers/SDL_version.h | 204 - .../Versions/A/Headers/SDL_video.h | 2178 ------ .../Versions/A/Headers/SDL_vulkan.h | 215 - .../Versions/A/Headers/begin_code.h | 187 - .../A/Resources/CMake/sdl2-config.cmake | 71 - .../Versions/A/Resources/ReadMe.txt | 44 - .../Versions/A/Resources/default.metallib | Bin 21968 -> 0 bytes release/SDL2.framework/Versions/A/SDL2 | Bin 3188064 -> 0 bytes .../Versions/A/_CodeSignature/CodeResources | 933 --- release/coffee.rc | 1 - release/coffee.res | Bin 1144142 -> 0 bytes release/{ => icons}/icon.icns | Bin release/{ => icons}/icon.ico | Bin release/{ => icons}/icon.png | Bin release/libgcc_s_seh-1.dll | Bin 76288 -> 0 bytes release/libstdc++-6.dll | Bin 1417216 -> 0 bytes release/{ => macos}/Info.plist | 0 .../frameworks/SDL3.xcframework/Info.plist | 90 + .../SDL3.framework}/Headers | 0 .../SDL3.framework}/Resources | 0 .../macos-arm64_x86_64/SDL3.framework/SDL3 | 1 + .../SDL3.framework/Versions/A/Headers/SDL.h | 90 + .../Versions/A/Headers/SDL_assert.h | 662 ++ .../Versions/A/Headers/SDL_asyncio.h | 546 ++ .../Versions/A/Headers/SDL_atomic.h | 664 ++ .../Versions/A/Headers/SDL_audio.h | 2203 ++++++ .../Versions/A/Headers/SDL_begin_code.h | 486 ++ .../Versions/A/Headers/SDL_bits.h | 75 +- .../Versions/A/Headers/SDL_blendmode.h | 114 +- .../Versions/A/Headers/SDL_camera.h | 519 ++ .../Versions/A/Headers/SDL_clipboard.h | 331 + .../Versions/A/Headers/SDL_close_code.h} | 13 +- .../Versions/A/Headers/SDL_copying.h | 4 +- .../Versions/A/Headers/SDL_cpuinfo.h | 353 + .../Versions/A/Headers/SDL_dialog.h | 341 + .../Versions/A/Headers/SDL_egl.h | 2355 +++++++ .../Versions/A/Headers/SDL_endian.h | 645 ++ .../Versions/A/Headers/SDL_error.h | 226 + .../Versions/A/Headers/SDL_events.h | 1576 +++++ .../Versions/A/Headers/SDL_filesystem.h | 503 ++ .../Versions/A/Headers/SDL_gamepad.h | 1509 ++++ .../Versions/A/Headers/SDL_gpu.h | 4213 +++++++++++ .../Versions/A/Headers/SDL_guid.h | 106 + .../Versions/A/Headers/SDL_haptic.h | 1441 ++++ .../Versions/A/Headers/SDL_hidapi.h | 552 ++ .../Versions/A/Headers/SDL_hints.h | 4486 ++++++++++++ .../Versions/A/Headers/SDL_init.h | 497 ++ .../Versions/A/Headers/SDL_intrin.h | 407 ++ .../Versions/A/Headers/SDL_iostream.h | 1354 ++++ .../Versions/A/Headers/SDL_joystick.h | 1202 ++++ .../Versions/A/Headers/SDL_keyboard.h | 609 ++ .../Versions/A/Headers/SDL_keycode.h | 343 + .../Versions/A/Headers/SDL_loadso.h | 145 + .../Versions/A/Headers/SDL_locale.h | 62 +- .../Versions/A/Headers/SDL_log.h | 538 ++ .../Versions/A/Headers/SDL_main.h | 675 ++ .../Versions/A/Headers/SDL_main_impl.h | 151 + .../Versions/A/Headers/SDL_messagebox.h | 129 +- .../Versions/A/Headers/SDL_metal.h | 56 +- .../Versions/A/Headers/SDL_misc.h | 23 +- .../Versions/A/Headers/SDL_mouse.h | 689 ++ .../Versions/A/Headers/SDL_mutex.h | 1073 +++ .../Versions/A/Headers/SDL_oldnames.h | 1327 ++++ .../Versions/A/Headers/SDL_opengl.h | 1033 ++- .../Versions/A/Headers/SDL_opengl_glext.h | 40 +- .../Versions/A/Headers/SDL_opengles.h | 13 +- .../Versions/A/Headers/SDL_opengles2.h | 21 +- .../Versions/A/Headers/SDL_opengles2_gl2.h | 0 .../Versions/A/Headers/SDL_opengles2_gl2ext.h | 0 .../A/Headers/SDL_opengles2_gl2platform.h | 0 .../A/Headers/SDL_opengles2_khrplatform.h | 0 .../Versions/A/Headers/SDL_pen.h | 127 + .../Versions/A/Headers/SDL_pixels.h | 1441 ++++ .../Versions/A/Headers/SDL_platform.h | 64 + .../Versions/A/Headers/SDL_platform_defines.h | 476 ++ .../Versions/A/Headers/SDL_power.h | 57 +- .../Versions/A/Headers/SDL_process.h | 430 ++ .../Versions/A/Headers/SDL_properties.h | 543 ++ .../Versions/A/Headers/SDL_rect.h | 507 ++ .../Versions/A/Headers/SDL_render.h | 2645 +++++++ .../Versions/A/Headers/SDL_revision.h | 56 + .../Versions/A/Headers/SDL_scancode.h | 127 +- .../Versions/A/Headers/SDL_sensor.h | 320 + .../Versions/A/Headers/SDL_stdinc.h | 6137 +++++++++++++++++ .../Versions/A/Headers/SDL_storage.h | 682 ++ .../Versions/A/Headers/SDL_surface.h | 1563 +++++ .../Versions/A/Headers/SDL_system.h | 818 +++ .../Versions/A/Headers/SDL_thread.h | 578 ++ .../Versions/A/Headers/SDL_time.h | 231 + .../Versions/A/Headers/SDL_timer.h | 450 ++ .../Versions/A/Headers/SDL_touch.h | 184 + .../Versions/A/Headers/SDL_tray.h | 544 ++ .../Versions/A/Headers/SDL_version.h | 183 + .../Versions/A/Headers/SDL_video.h | 3311 +++++++++ .../Versions/A/Headers/SDL_vulkan.h | 287 + .../A/Resources/CMake/SDL3Config.cmake | 106 + .../Resources/CMake/SDL3ConfigVersion.cmake} | 25 +- .../Versions/A/Resources/INSTALL.md | 41 + .../Versions/A/Resources/Info.plist | 22 +- .../Versions/A/Resources/LICENSE.txt} | 5 +- .../Versions/A/Resources/README.md | 17 + .../Versions/A/Resources/default.metallib | Bin 0 -> 33609 bytes .../SDL3.framework/Versions/A/SDL3 | Bin 0 -> 4516064 bytes .../Versions/A/_CodeSignature/CodeResources | 712 ++ .../SDL3.framework}/Versions/Current | 0 release/windows/coffee.rc | 1 + release/windows/dll/SDL3.dll | Bin 0 -> 2517504 bytes release/{ => windows/dll}/libwinpthread-1.dll | Bin 157 files changed, 57055 insertions(+), 27332 deletions(-) delete mode 100755 release/SDL2.dll delete mode 120000 release/SDL2.framework/SDL2 delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_assert.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_atomic.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_audio.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_clipboard.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_config.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_config_macosx.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_cpuinfo.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_endian.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_error.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_events.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_filesystem.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_gamecontroller.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_gesture.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_guid.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_haptic.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_hidapi.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_hints.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_joystick.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_keyboard.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_keycode.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_loadso.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_log.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_main.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_mouse.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_mutex.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_name.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_pixels.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_platform.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_quit.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_rect.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_render.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_revision.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_rwops.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_sensor.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_shape.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_stdinc.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_surface.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_system.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_syswm.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_thread.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_timer.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_touch.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_types.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_version.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_video.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/SDL_vulkan.h delete mode 100644 release/SDL2.framework/Versions/A/Headers/begin_code.h delete mode 100644 release/SDL2.framework/Versions/A/Resources/CMake/sdl2-config.cmake delete mode 100644 release/SDL2.framework/Versions/A/Resources/ReadMe.txt delete mode 100644 release/SDL2.framework/Versions/A/Resources/default.metallib delete mode 100755 release/SDL2.framework/Versions/A/SDL2 delete mode 100644 release/SDL2.framework/Versions/A/_CodeSignature/CodeResources delete mode 100644 release/coffee.rc delete mode 100644 release/coffee.res rename release/{ => icons}/icon.icns (100%) rename release/{ => icons}/icon.ico (100%) rename release/{ => icons}/icon.png (100%) delete mode 100644 release/libgcc_s_seh-1.dll delete mode 100644 release/libstdc++-6.dll rename release/{ => macos}/Info.plist (100%) create mode 100644 release/macos/frameworks/SDL3.xcframework/Info.plist rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Headers (100%) rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Resources (100%) create mode 120000 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/SDL3 create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_assert.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_asyncio.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_atomic.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_audio.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_begin_code.h rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Headers/SDL_bits.h (56%) rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Headers/SDL_blendmode.h (66%) create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_camera.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_clipboard.h rename release/{SDL2.framework/Versions/A/Headers/close_code.h => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_close_code.h} (75%) rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Headers/SDL_copying.h (89%) create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_cpuinfo.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_dialog.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_egl.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_endian.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_error.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_events.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_filesystem.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_gamepad.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_gpu.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_guid.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_haptic.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_hidapi.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_hints.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_init.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_intrin.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_iostream.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_joystick.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_keyboard.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_keycode.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_loadso.h rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Headers/SDL_locale.h (63%) create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_log.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_main.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_main_impl.h rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Headers/SDL_messagebox.h (53%) rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Headers/SDL_metal.h (58%) rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Headers/SDL_misc.h (81%) create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_mouse.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_mutex.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_oldnames.h rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Headers/SDL_opengl.h (63%) rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Headers/SDL_opengl_glext.h (99%) rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Headers/SDL_opengles.h (83%) rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Headers/SDL_opengles2.h (76%) rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Headers/SDL_opengles2_gl2.h (100%) rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Headers/SDL_opengles2_gl2ext.h (100%) rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Headers/SDL_opengles2_gl2platform.h (100%) rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Headers/SDL_opengles2_khrplatform.h (100%) create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_pen.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_pixels.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_platform.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_platform_defines.h rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Headers/SDL_power.h (54%) create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_process.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_properties.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_rect.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_render.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_revision.h rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Headers/SDL_scancode.h (83%) create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_sensor.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_stdinc.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_storage.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_surface.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_system.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_thread.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_time.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_timer.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_touch.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_tray.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_version.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_video.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers/SDL_vulkan.h create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Resources/CMake/SDL3Config.cmake rename release/{SDL2.framework/Versions/A/Resources/CMake/sdl2-config-version.cmake => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Resources/CMake/SDL3ConfigVersion.cmake} (73%) create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Resources/INSTALL.md rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/A/Resources/Info.plist (80%) rename release/{SDL2.framework/Versions/A/Resources/License.txt => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Resources/LICENSE.txt} (90%) create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Resources/README.md create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Resources/default.metallib create mode 100755 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/SDL3 create mode 100644 release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/_CodeSignature/CodeResources rename release/{SDL2.framework => macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework}/Versions/Current (100%) create mode 100644 release/windows/coffee.rc create mode 100644 release/windows/dll/SDL3.dll rename release/{ => windows/dll}/libwinpthread-1.dll (100%) diff --git a/.gitignore b/.gitignore index 880319f..fa07cc0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,20 +1,16 @@ .vscode build/ +dist/ data/config/config.txt *.DS_Store thumbs.db *.exe -*_macos -*_linux *.dmg *.tar.gz *.zip *.app *config.bin *score.bin -coffee_crisis* -SDL2.dll -libwinpthread-1.dll -libstdc++-6.dll -libgcc_s_seh-1.dll -linux_utils/ \ No newline at end of file +coffee_crisis +coffee_crisis_debug +release/windows/coffee.res diff --git a/CMakeLists.txt b/CMakeLists.txt index 8eb7f10..6e9cc0e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.10) project(coffee_crisis VERSION 1.00) -# Configuración de compilador para MinGW en Windows, si es necesario +# Configuración de compilador para MinGW en Windows if(WIN32 AND NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") set(CMAKE_CXX_COMPILER "g++") set(CMAKE_C_COMPILER "gcc") @@ -12,6 +12,7 @@ endif() # Establecer estándar de C++ set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED True) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # Configuración global de flags de compilación set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") @@ -25,7 +26,7 @@ file(GLOB SOURCES "${DIR_SOURCES}/*.cpp") # Verificar si se encontraron archivos fuente if(NOT SOURCES) - message(FATAL_ERROR "No se encontraron archivos fuente en ${DIR_SOURCES}. Verifica que el directorio existe y contiene archivos .cpp.") + message(FATAL_ERROR "No se encontraron archivos fuente en ${DIR_SOURCES}.") endif() # Configuración de SDL3 @@ -39,7 +40,10 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}) add_executable(${PROJECT_NAME} ${SOURCES}) # Añadir definiciones de compilación dependiendo del tipo de build -target_compile_definitions(${PROJECT_NAME} PRIVATE $<$:DEBUG VERBOSE>) +target_compile_definitions(${PROJECT_NAME} PRIVATE + $<$:DEBUG PAUSE> + $<$:RELEASE_BUILD> +) # Enlazar bibliotecas target_link_libraries(${PROJECT_NAME} PRIVATE SDL3::SDL3) @@ -47,11 +51,22 @@ target_link_libraries(${PROJECT_NAME} PRIVATE SDL3::SDL3) # Configuración específica para cada plataforma if(WIN32) target_compile_definitions(${PROJECT_NAME} PRIVATE WINDOWS_BUILD) - target_link_libraries(${PROJECT_NAME} PRIVATE mingw32 gdi32 winmm imm32 ole32 version) + target_link_libraries(${PROJECT_NAME} PRIVATE ws2_32 mingw32 gdi32 winmm imm32 ole32 version) elseif(APPLE) target_compile_definitions(${PROJECT_NAME} PRIVATE MACOS_BUILD) - # Configurar compilación para Apple Silicon - set(CMAKE_OSX_ARCHITECTURES "arm64") + target_compile_options(${PROJECT_NAME} PRIVATE -Wno-deprecated) + if(NOT CMAKE_OSX_ARCHITECTURES) + set(CMAKE_OSX_ARCHITECTURES "arm64") + endif() + if(MACOS_BUNDLE) + target_compile_definitions(${PROJECT_NAME} PRIVATE MACOS_BUNDLE) + target_link_options(${PROJECT_NAME} PRIVATE + -framework SDL3 + -F ${CMAKE_SOURCE_DIR}/release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64 + -rpath @executable_path/../Frameworks/ + ) + endif() elseif(UNIX AND NOT APPLE) target_compile_definitions(${PROJECT_NAME} PRIVATE LINUX_BUILD) -endif() \ No newline at end of file + target_link_options(${PROJECT_NAME} PRIVATE -Wl,--gc-sections) +endif() diff --git a/Makefile b/Makefile index 3f0bcc5..362d658 100644 --- a/Makefile +++ b/Makefile @@ -1,137 +1,263 @@ -executable = coffee_crisis -source = source/*.cpp -appName = Coffee Crisis -releaseFolder = cc_release -version = v2.3.2 -resource_file = release/coffee.res +# ============================================================================== +# DIRECTORIES +# ============================================================================== +DIR_ROOT := $(dir $(abspath $(MAKEFILE_LIST))) +DIR_BIN := $(addsuffix /, $(DIR_ROOT)) -# Release names -windowsRelease = $(executable)-$(version)-win32-x64.zip -macosIntelRelease = $(executable)-$(version)-macos-intel.dmg -macosAppleSiliconRelease = $(executable)-$(version)-macos-apple-silicon.dmg -linuxRelease = $(executable)-$(version)-linux.tar.gz +# ============================================================================== +# TARGET NAMES +# ============================================================================== +TARGET_NAME := coffee_crisis +TARGET_FILE := $(DIR_BIN)$(TARGET_NAME) +APP_NAME := Coffee Crisis +VERSION := v2.3.3 +DIST_DIR := dist +RELEASE_FOLDER := dist/_tmp +RELEASE_FILE := $(RELEASE_FOLDER)/$(TARGET_NAME) +RESOURCE_FILE := release/windows/coffee.res -# Specify the C++ standard -cpp_standard = c++20 +# ============================================================================== +# RELEASE NAMES +# ============================================================================== +WINDOWS_RELEASE := $(DIST_DIR)/$(TARGET_NAME)-$(VERSION)-win32-x64.zip +MACOS_INTEL_RELEASE := $(DIST_DIR)/$(TARGET_NAME)-$(VERSION)-macos-intel.dmg +MACOS_APPLE_SILICON_RELEASE := $(DIST_DIR)/$(TARGET_NAME)-$(VERSION)-macos-apple-silicon.dmg +LINUX_RELEASE := $(DIST_DIR)/$(TARGET_NAME)-$(VERSION)-linux.tar.gz -windows: - @echo off - windres release/coffee.rc -O coff -o $(resource_file) - g++ $(source) $(resource_file) -std=$(cpp_standard) -Wall -Os -lmingw32 -lws2_32 -lSDL3 -ffunction-sections -fdata-sections -Wl,--gc-sections -static-libstdc++ -Wl,-subsystem,windows -o "$(executable).exe" - strip -s -R .comment -R .gnu.version "$(executable).exe" --strip-unneeded +# ============================================================================== +# PLATAFORMA +# ============================================================================== +ifeq ($(OS),Windows_NT) + FixPath = $(subst /,\\,$1) + RM := del /Q + MKDIR := mkdir +else + FixPath = $1 + RMFILE := rm -f + RMDIR := rm -rdf + MKDIR := mkdir -p + UNAME_S := $(shell uname -s) +endif -windows_debug: - @echo off - g++ $(source) -D DEBUG -D PAUSE -std=$(cpp_standard) -Wall -Os -lmingw32 -lws2_32 -lSDL3 -ffunction-sections -fdata-sections -Wl,--gc-sections -static-libstdc++ -Wl,-subsystem,windows -o "$(executable)_debug.exe" - strip -s -R .comment -R .gnu.version "$(executable)_debug.exe" --strip-unneeded +# ============================================================================== +# SHELL (Windows usa cmd.exe) +# ============================================================================== +ifeq ($(OS),Windows_NT) + SHELL := cmd.exe +endif +# ============================================================================== +# WINDOWS-SPECIFIC VARIABLES +# ============================================================================== +ifeq ($(OS),Windows_NT) + WIN_TARGET_FILE := $(DIR_BIN)$(APP_NAME) + WIN_RELEASE_FILE := $(RELEASE_FOLDER)/$(APP_NAME) +else + WIN_TARGET_FILE := $(TARGET_FILE) + WIN_RELEASE_FILE := $(RELEASE_FILE) +endif + +# ============================================================================== +# COMPILACIÓN CON CMAKE +# ============================================================================== +all: + @cmake -S . -B build -DCMAKE_BUILD_TYPE=Release + @cmake --build build + +debug: + @cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug + @cmake --build build + +# ============================================================================== +# RELEASE AUTOMÁTICO (detecta SO) +# ============================================================================== +release: +ifeq ($(OS),Windows_NT) + @"$(MAKE)" windows_release +else +ifeq ($(UNAME_S),Darwin) + @$(MAKE) macos_release +else + @$(MAKE) linux_release +endif +endif + +# ============================================================================== +# COMPILACIÓN PARA WINDOWS (RELEASE) +# ============================================================================== windows_release: @echo off + @echo Creando release para Windows - Version: $(VERSION) -# Create release folder - powershell if (Test-Path "$(releaseFolder)") {Remove-Item "$(releaseFolder)" -Recurse -Force} - powershell if (-not (Test-Path "$(releaseFolder)")) {New-Item "$(releaseFolder)" -ItemType Directory} +# Compila con cmake + @cmake -S . -B build -DCMAKE_BUILD_TYPE=Release + @cmake --build build -# Prepare data folder - powershell Copy-Item -Path "data" -Destination "$(releaseFolder)" -recurse -Force +# Crea carpeta de distribución y carpeta temporal + @powershell -Command "if (-not (Test-Path '$(DIST_DIR)')) {New-Item '$(DIST_DIR)' -ItemType Directory}" + @powershell -Command "if (Test-Path '$(RELEASE_FOLDER)') {Remove-Item '$(RELEASE_FOLDER)' -Recurse -Force}" + @powershell -Command "if (-not (Test-Path '$(RELEASE_FOLDER)')) {New-Item '$(RELEASE_FOLDER)' -ItemType Directory}" -# Copy root files - powershell Copy-Item "LICENSE" -Destination "$(releaseFolder)" - powershell Copy-Item "README.md" -Destination "$(releaseFolder)" - powershell Copy-Item "release\*.dll" -Destination "$(releaseFolder)" +# Copia ficheros + @powershell -Command "Copy-Item -Path 'data' -Destination '$(RELEASE_FOLDER)' -Recurse -Force" + @powershell -Command "Copy-Item 'LICENSE' -Destination '$(RELEASE_FOLDER)'" + @powershell -Command "Copy-Item 'README.md' -Destination '$(RELEASE_FOLDER)'" + @powershell -Command "Copy-Item 'release\windows\dll\*.dll' -Destination '$(RELEASE_FOLDER)'" + @powershell -Command "Copy-Item -Path '$(TARGET_FILE)' -Destination '\"$(WIN_RELEASE_FILE).exe\"'" + strip -s -R .comment -R .gnu.version "$(WIN_RELEASE_FILE).exe" --strip-unneeded -# Build - g++ $(source) $(resource_file) -std=$(cpp_standard) -Wall -Os -lmingw32 -lws2_32 -lSDL2main -lSDL2 -ffunction-sections -fdata-sections -Wl,--gc-sections -static-libstdc++ -Wl,-subsystem,windows -o "$(releaseFolder)/$(executable).exe" - strip -s -R .comment -R .gnu.version "$(releaseFolder)/$(executable).exe" --strip-unneeded +# Crea el fichero .zip + @powershell -Command "if (Test-Path '$(WINDOWS_RELEASE)') {Remove-Item '$(WINDOWS_RELEASE)'}" + @powershell -Command "Compress-Archive -Path '$(RELEASE_FOLDER)/*' -DestinationPath '$(WINDOWS_RELEASE)'" + @echo Release creado: $(WINDOWS_RELEASE) -# Create ZIP - powershell if (Test-Path $(windowsRelease)) {Remove-Item $(windowsRelease)} - powershell Compress-Archive -Path "$(releaseFolder)"/* -DestinationPath $(windowsRelease) - -# Remove folder - powershell if (Test-Path "$(releaseFolder)") {Remove-Item "$(releaseFolder)" -Recurse -Force} - -macos: - clang++ $(source) -std=$(cpp_standard) -Wall -Os -lSDL3 -ffunction-sections -fdata-sections -o "$(executable)" - -macos_debug: - clang++ $(source) -D DEBUG -D PAUSE -std=$(cpp_standard) -Wall -Os -lSDL3 -ffunction-sections -fdata-sections -o "$(executable)_debug" +# Elimina la carpeta temporal + @powershell -Command "if (Test-Path '$(RELEASE_FOLDER)') {Remove-Item '$(RELEASE_FOLDER)' -Recurse -Force}" +# ============================================================================== +# COMPILACIÓN PARA MACOS (RELEASE) +# ============================================================================== macos_release: -# Remove data and possible data from previous builds - rm -rdf "$(releaseFolder)" - rm -rdf Frameworks - rm -f tmp.dmg - rm -f "$(macosIntelRelease)" - rm -f "$(macosAppleSiliconRelease)" + @echo "Creando release para macOS - Version: $(VERSION)" -# Create folders - mkdir -p "$(releaseFolder)/$(appName).app/Contents/Frameworks" - mkdir -p "$(releaseFolder)/$(appName).app/Contents/MacOS" - mkdir -p "$(releaseFolder)/$(appName).app/Contents/Resources" - mkdir -p Frameworks +# Verificar e instalar create-dmg si es necesario + @which create-dmg > /dev/null || (echo "Instalando create-dmg..." && brew install create-dmg) -# Copy folders and files - cp -R data "$(releaseFolder)/$(appName).app/Contents/Resources" - cp -R release/SDL2.framework "$(releaseFolder)/$(appName).app/Contents/Frameworks" - cp -R release/SDL2.framework Frameworks +# Compila la versión para procesadores Intel con cmake + @cmake -S . -B build/intel -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DMACOS_BUNDLE=ON + @cmake --build build/intel -# Copy files - cp release/*.icns "$(releaseFolder)/$(appName).app/Contents/Resources" - cp release/Info.plist "$(releaseFolder)/$(appName).app/Contents" - cp LICENSE "$(releaseFolder)" - cp README.md "$(releaseFolder)" +# Elimina datos de compilaciones anteriores + $(RMDIR) "$(RELEASE_FOLDER)" + $(RMFILE) tmp.dmg + $(RMFILE) "$(DIST_DIR)"/rw.* + $(RMFILE) "$(MACOS_INTEL_RELEASE)" + $(RMFILE) "$(MACOS_APPLE_SILICON_RELEASE)" -# Create links - ln -s /Applications "$(releaseFolder)"/Applications +# Crea la carpeta temporal y las carpetas del app bundle + $(MKDIR) "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Frameworks" + $(MKDIR) "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS" + $(MKDIR) "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources" -# Build INTEL - clang++ $(source) -D MACOS_BUNDLE -std=$(cpp_standard) -Wall -Os -framework SDL2 -F ./Frameworks -ffunction-sections -fdata-sections -o "$(releaseFolder)/$(appName).app/Contents/MacOS/$(executable)" -rpath @executable_path/../Frameworks/ -target x86_64-apple-macos10.12 +# Copia carpetas y ficheros + cp -R data "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources" + cp -R release/macos/frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Frameworks" + cp release/icons/*.icns "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources" + cp release/macos/Info.plist "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents" + cp LICENSE "$(RELEASE_FOLDER)" + cp README.md "$(RELEASE_FOLDER)" -# Build INTEL DMG - hdiutil create tmp.dmg -ov -volname "$(appName)" -fs HFS+ -srcfolder "$(releaseFolder)" - hdiutil convert tmp.dmg -format UDZO -o "$(macosIntelRelease)" - rm -f tmp.dmg +# Actualiza versión en Info.plist + @echo "Actualizando Info.plist con versión $(VERSION)..." + @RAW_VERSION=$$(echo "$(VERSION)" | sed 's/^v//'); \ + sed -i '' '/CFBundleShortVersionString<\/key>/{n;s|.*|'"$$RAW_VERSION"'|;}' "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Info.plist"; \ + sed -i '' '/CFBundleVersion<\/key>/{n;s|.*|'"$$RAW_VERSION"'|;}' "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Info.plist" -# Build APPLE SILICON - clang++ $(source) -D MACOS_BUNDLE -std=$(cpp_standard) -Wall -Os -framework SDL2 -F ./Frameworks -ffunction-sections -fdata-sections -o "$(releaseFolder)/$(appName).app/Contents/MacOS/$(executable)" -rpath @executable_path/../Frameworks/ -target arm64-apple-macos11 +# Copia el ejecutable Intel al bundle + cp "$(TARGET_FILE)" "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS/$(TARGET_NAME)" -# Build APPLE SILICON DMG - hdiutil create tmp.dmg -ov -volname "$(appName)" -fs HFS+ -srcfolder "$(releaseFolder)" - hdiutil convert tmp.dmg -format UDZO -o "$(macosAppleSiliconRelease)" - rm -f tmp.dmg +# Firma la aplicación + codesign --deep --force --sign - --timestamp=none "$(RELEASE_FOLDER)/$(APP_NAME).app" -# Remove data - rm -rdf Frameworks - rm -rdf "$(releaseFolder)" +# Empaqueta el .dmg de la versión Intel con create-dmg + @echo "Creando DMG Intel..." + create-dmg \ + --volname "$(APP_NAME)" \ + --window-pos 200 120 \ + --window-size 720 300 \ + --icon-size 96 \ + --text-size 12 \ + --icon "$(APP_NAME).app" 278 102 \ + --icon "LICENSE" 441 102 \ + --icon "README.md" 604 102 \ + --app-drop-link 115 102 \ + --hide-extension "$(APP_NAME).app" \ + "$(MACOS_INTEL_RELEASE)" \ + "$(RELEASE_FOLDER)" || true + @echo "Release Intel creado: $(MACOS_INTEL_RELEASE)" -linux: - g++ $(source) -std=$(cpp_standard) -Wall -Os -lSDL3 -ffunction-sections -fdata-sections -Wl,--gc-sections -o "$(executable)" - strip -s -R .comment -R .gnu.version "$(executable)" --strip-unneeded +# Compila la versión para procesadores Apple Silicon con cmake + @cmake -S . -B build/arm -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 -DMACOS_BUNDLE=ON + @cmake --build build/arm + cp "$(TARGET_FILE)" "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS/$(TARGET_NAME)" -linux_debug: - g++ $(source) -D DEBUG -D PAUSE -std=$(cpp_standard) -Wall -Os -lSDL3 -ffunction-sections -fdata-sections -Wl,--gc-sections -o "$(executable)_debug" - strip -s -R .comment -R .gnu.version "$(executable)_debug" --strip-unneeded +# Firma la aplicación + codesign --deep --force --sign - --timestamp=none "$(RELEASE_FOLDER)/$(APP_NAME).app" +# Empaqueta el .dmg de la versión Apple Silicon con create-dmg + @echo "Creando DMG Apple Silicon..." + create-dmg \ + --volname "$(APP_NAME)" \ + --window-pos 200 120 \ + --window-size 720 300 \ + --icon-size 96 \ + --text-size 12 \ + --icon "$(APP_NAME).app" 278 102 \ + --icon "LICENSE" 441 102 \ + --icon "README.md" 604 102 \ + --app-drop-link 115 102 \ + --hide-extension "$(APP_NAME).app" \ + "$(MACOS_APPLE_SILICON_RELEASE)" \ + "$(RELEASE_FOLDER)" || true + @echo "Release Apple Silicon creado: $(MACOS_APPLE_SILICON_RELEASE)" + +# Elimina las carpetas temporales + $(RMDIR) "$(RELEASE_FOLDER)" + $(RMDIR) build/intel + $(RMDIR) build/arm + $(RMFILE) "$(DIST_DIR)"/rw.* + +# ============================================================================== +# COMPILACIÓN PARA LINUX (RELEASE) +# ============================================================================== linux_release: -# Remove data - rm -rdf "$(releaseFolder)" + @echo "Creando release para Linux - Version: $(VERSION)" -# Create folders - mkdir -p "$(releaseFolder)" +# Compila con cmake + @cmake -S . -B build -DCMAKE_BUILD_TYPE=Release + @cmake --build build -# Copy data - cp -R data "$(releaseFolder)" - cp LICENSE "$(releaseFolder)" - cp README.md "$(releaseFolder)" +# Elimina carpeta temporal previa y la recrea + $(RMDIR) "$(RELEASE_FOLDER)" + $(MKDIR) "$(RELEASE_FOLDER)" -# Build - g++ $(source) -std=$(cpp_standard) -Wall -Os -lSDL2 -ffunction-sections -fdata-sections -Wl,--gc-sections -o "$(releaseFolder)/$(executable)" - strip -s -R .comment -R .gnu.version "$(releaseFolder)/$(executable)" --strip-unneeded +# Copia ficheros + cp -R data "$(RELEASE_FOLDER)" + cp LICENSE "$(RELEASE_FOLDER)" + cp README.md "$(RELEASE_FOLDER)" + cp "$(TARGET_FILE)" "$(RELEASE_FILE)" + strip -s -R .comment -R .gnu.version "$(RELEASE_FILE)" --strip-unneeded -# Pack files - rm -f "$(linuxRelease)" - cd "$(releaseFolder)" && tar -czvf "../$(linuxRelease)" * +# Empaqueta ficheros + $(RMFILE) "$(LINUX_RELEASE)" + tar -czvf "$(LINUX_RELEASE)" -C "$(RELEASE_FOLDER)" . + @echo "Release creado: $(LINUX_RELEASE)" -# Remove data - rm -rdf "$(releaseFolder)" \ No newline at end of file +# Elimina la carpeta temporal + $(RMDIR) "$(RELEASE_FOLDER)" + +# ============================================================================== +# REGLAS ESPECIALES +# ============================================================================== +show_version: + @echo "Version actual: $(VERSION)" + +help: + @echo "Makefile para Coffee Crisis" + @echo "Comandos disponibles:" + @echo "" + @echo " Compilacion:" + @echo " make - Compilar con cmake (Release)" + @echo " make debug - Compilar con cmake (Debug)" + @echo "" + @echo " Release:" + @echo " make release - Crear release (detecta SO automaticamente)" + @echo " make windows_release - Crear release para Windows" + @echo " make linux_release - Crear release para Linux" + @echo " make macos_release - Crear release para macOS" + @echo "" + @echo " Otros:" + @echo " make show_version - Mostrar version actual ($(VERSION))" + @echo " make help - Mostrar esta ayuda" + +.PHONY: all debug release windows_release macos_release linux_release show_version help diff --git a/release/SDL2.dll b/release/SDL2.dll deleted file mode 100755 index 2282f93dd8c20ccedb291bc2f47e21bd193aac1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2450944 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%0AonutlhIHvawUC)U@GU&eS&_O!X-N1cM4C3r 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

G~s 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%0A3%saF&gi+KG;SG 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�FK>-El8o~&d=Nlhd9yHB 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 z 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 z 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

-+ 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 ax^RSb0d2H!w%+eoni=?y{{Gjs!2bbQBP7`X diff --git a/release/SDL2.framework/SDL2 b/release/SDL2.framework/SDL2 deleted file mode 120000 index 9dd4e4f..0000000 --- a/release/SDL2.framework/SDL2 +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/SDL2 \ No newline at end of file diff --git a/release/SDL2.framework/Versions/A/Headers/SDL.h b/release/SDL2.framework/Versions/A/Headers/SDL.h deleted file mode 100644 index 0b81a21..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL.h +++ /dev/null @@ -1,233 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL.h - * - * Main include header for the SDL library - */ - - -#ifndef SDL_h_ -#define SDL_h_ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* As of version 0.5, SDL is loaded dynamically into the application */ - -/** - * \name SDL_INIT_* - * - * These are the flags which may be passed to SDL_Init(). You should - * specify the subsystems which you will be using in your application. - */ -/* @{ */ -#define SDL_INIT_TIMER 0x00000001u -#define SDL_INIT_AUDIO 0x00000010u -#define SDL_INIT_VIDEO 0x00000020u /**< SDL_INIT_VIDEO implies SDL_INIT_EVENTS */ -#define SDL_INIT_JOYSTICK 0x00000200u /**< SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS */ -#define SDL_INIT_HAPTIC 0x00001000u -#define SDL_INIT_GAMECONTROLLER 0x00002000u /**< SDL_INIT_GAMECONTROLLER implies SDL_INIT_JOYSTICK */ -#define SDL_INIT_EVENTS 0x00004000u -#define SDL_INIT_SENSOR 0x00008000u -#define SDL_INIT_NOPARACHUTE 0x00100000u /**< compatibility; this flag is ignored. */ -#define SDL_INIT_EVERYTHING ( \ - SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_EVENTS | \ - SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_GAMECONTROLLER | SDL_INIT_SENSOR \ - ) -/* @} */ - -/** - * Initialize the SDL library. - * - * SDL_Init() simply forwards to calling SDL_InitSubSystem(). Therefore, the - * two may be used interchangeably. Though for readability of your code - * SDL_InitSubSystem() might be preferred. - * - * The file I/O (for example: SDL_RWFromFile) and threading (SDL_CreateThread) - * subsystems are initialized by default. Message boxes - * (SDL_ShowSimpleMessageBox) also attempt to work without initializing the - * video subsystem, in hopes of being useful in showing an error dialog when - * SDL_Init fails. You must specifically initialize other subsystems if you - * use them in your application. - * - * Logging (such as SDL_Log) works without initialization, too. - * - * `flags` may be any of the following OR'd together: - * - * - `SDL_INIT_TIMER`: timer subsystem - * - `SDL_INIT_AUDIO`: audio subsystem - * - `SDL_INIT_VIDEO`: video subsystem; automatically initializes the events - * subsystem - * - `SDL_INIT_JOYSTICK`: joystick subsystem; automatically initializes the - * events subsystem - * - `SDL_INIT_HAPTIC`: haptic (force feedback) subsystem - * - `SDL_INIT_GAMECONTROLLER`: controller subsystem; automatically - * initializes the joystick subsystem - * - `SDL_INIT_EVENTS`: events subsystem - * - `SDL_INIT_EVERYTHING`: all of the above subsystems - * - `SDL_INIT_NOPARACHUTE`: compatibility; this flag is ignored - * - * Subsystem initialization is ref-counted, you must call SDL_QuitSubSystem() - * for each SDL_InitSubSystem() to correctly shutdown a subsystem manually (or - * call SDL_Quit() to force shutdown). If a subsystem is already loaded then - * this call will increase the ref-count and return. - * - * \param flags subsystem initialization flags - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_InitSubSystem - * \sa SDL_Quit - * \sa SDL_SetMainReady - * \sa SDL_WasInit - */ -extern DECLSPEC int SDLCALL SDL_Init(Uint32 flags); - -/** - * Compatibility function to initialize the SDL library. - * - * In SDL2, this function and SDL_Init() are interchangeable. - * - * \param flags any of the flags used by SDL_Init(); see SDL_Init for details. - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Init - * \sa SDL_Quit - * \sa SDL_QuitSubSystem - */ -extern DECLSPEC int SDLCALL SDL_InitSubSystem(Uint32 flags); - -/** - * Shut down specific SDL subsystems. - * - * If you start a subsystem using a call to that subsystem's init function - * (for example SDL_VideoInit()) instead of SDL_Init() or SDL_InitSubSystem(), - * SDL_QuitSubSystem() and SDL_WasInit() will not work. You will need to use - * that subsystem's quit function (SDL_VideoQuit()) directly instead. But - * generally, you should not be using those functions directly anyhow; use - * SDL_Init() instead. - * - * You still need to call SDL_Quit() even if you close all open subsystems - * with SDL_QuitSubSystem(). - * - * \param flags any of the flags used by SDL_Init(); see SDL_Init for details. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_InitSubSystem - * \sa SDL_Quit - */ -extern DECLSPEC void SDLCALL SDL_QuitSubSystem(Uint32 flags); - -/** - * Get a mask of the specified subsystems which are currently initialized. - * - * \param flags any of the flags used by SDL_Init(); see SDL_Init for details. - * \returns a mask of all initialized subsystems if `flags` is 0, otherwise it - * returns the initialization status of the specified subsystems. - * - * The return value does not include SDL_INIT_NOPARACHUTE. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Init - * \sa SDL_InitSubSystem - */ -extern DECLSPEC Uint32 SDLCALL SDL_WasInit(Uint32 flags); - -/** - * Clean up all initialized subsystems. - * - * You should call this function even if you have already shutdown each - * initialized subsystem with SDL_QuitSubSystem(). It is safe to call this - * function even in the case of errors in initialization. - * - * If you start a subsystem using a call to that subsystem's init function - * (for example SDL_VideoInit()) instead of SDL_Init() or SDL_InitSubSystem(), - * then you must use that subsystem's quit function (SDL_VideoQuit()) to shut - * it down before calling SDL_Quit(). But generally, you should not be using - * those functions directly anyhow; use SDL_Init() instead. - * - * You can use this function with atexit() to ensure that it is run when your - * application is shutdown, but it is not wise to do this from a library or - * other dynamically loaded code. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Init - * \sa SDL_QuitSubSystem - */ -extern DECLSPEC void SDLCALL SDL_Quit(void); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_assert.h b/release/SDL2.framework/Versions/A/Headers/SDL_assert.h deleted file mode 100644 index 80cf75a..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_assert.h +++ /dev/null @@ -1,322 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_assert_h_ -#define SDL_assert_h_ - -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef SDL_ASSERT_LEVEL -#ifdef SDL_DEFAULT_ASSERT_LEVEL -#define SDL_ASSERT_LEVEL SDL_DEFAULT_ASSERT_LEVEL -#elif defined(_DEBUG) || defined(DEBUG) || \ - (defined(__GNUC__) && !defined(__OPTIMIZE__)) -#define SDL_ASSERT_LEVEL 2 -#else -#define SDL_ASSERT_LEVEL 1 -#endif -#endif /* SDL_ASSERT_LEVEL */ - -/* -These are macros and not first class functions so that the debugger breaks -on the assertion line and not in some random guts of SDL, and so each -assert can have unique static variables associated with it. -*/ - -#if defined(_MSC_VER) -/* Don't include intrin.h here because it contains C++ code */ - extern void __cdecl __debugbreak(void); - #define SDL_TriggerBreakpoint() __debugbreak() -#elif _SDL_HAS_BUILTIN(__builtin_debugtrap) - #define SDL_TriggerBreakpoint() __builtin_debugtrap() -#elif ( (!defined(__NACL__)) && ((defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__))) ) - #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" ) -#elif (defined(__GNUC__) || defined(__clang__)) && defined(__riscv) - #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "ebreak\n\t" ) -#elif ( defined(__APPLE__) && (defined(__arm64__) || defined(__aarch64__)) ) /* this might work on other ARM targets, but this is a known quantity... */ - #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "brk #22\n\t" ) -#elif defined(__APPLE__) && defined(__arm__) - #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "bkpt #22\n\t" ) -#elif defined(__386__) && defined(__WATCOMC__) - #define SDL_TriggerBreakpoint() { _asm { int 0x03 } } -#elif defined(HAVE_SIGNAL_H) && !defined(__WATCOMC__) - #include - #define SDL_TriggerBreakpoint() raise(SIGTRAP) -#else - /* How do we trigger breakpoints on this platform? */ - #define SDL_TriggerBreakpoint() -#endif - -#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 supports __func__ as a standard. */ -# define SDL_FUNCTION __func__ -#elif ((defined(__GNUC__) && (__GNUC__ >= 2)) || defined(_MSC_VER) || defined (__WATCOMC__)) -# define SDL_FUNCTION __FUNCTION__ -#else -# define SDL_FUNCTION "???" -#endif -#define SDL_FILE __FILE__ -#define SDL_LINE __LINE__ - -/* -sizeof (x) makes the compiler still parse the expression even without -assertions enabled, so the code is always checked at compile time, but -doesn't actually generate code for it, so there are no side effects or -expensive checks at run time, just the constant size of what x WOULD be, -which presumably gets optimized out as unused. -This also solves the problem of... - - int somevalue = blah(); - SDL_assert(somevalue == 1); - -...which would cause compiles to complain that somevalue is unused if we -disable assertions. -*/ - -/* "while (0,0)" fools Microsoft's compiler's /W4 warning level into thinking - this condition isn't constant. And looks like an owl's face! */ -#ifdef _MSC_VER /* stupid /W4 warnings. */ -#define SDL_NULL_WHILE_LOOP_CONDITION (0,0) -#else -#define SDL_NULL_WHILE_LOOP_CONDITION (0) -#endif - -#define SDL_disabled_assert(condition) \ - do { (void) sizeof ((condition)); } while (SDL_NULL_WHILE_LOOP_CONDITION) - -typedef enum -{ - SDL_ASSERTION_RETRY, /**< Retry the assert immediately. */ - SDL_ASSERTION_BREAK, /**< Make the debugger trigger a breakpoint. */ - SDL_ASSERTION_ABORT, /**< Terminate the program. */ - SDL_ASSERTION_IGNORE, /**< Ignore the assert. */ - SDL_ASSERTION_ALWAYS_IGNORE /**< Ignore the assert from now on. */ -} SDL_AssertState; - -typedef struct SDL_AssertData -{ - int always_ignore; - unsigned int trigger_count; - const char *condition; - const char *filename; - int linenum; - const char *function; - const struct SDL_AssertData *next; -} SDL_AssertData; - -/* Never call this directly. Use the SDL_assert* macros. */ -extern DECLSPEC SDL_AssertState SDLCALL SDL_ReportAssertion(SDL_AssertData *, - const char *, - const char *, int) -#if defined(__clang__) -#if __has_feature(attribute_analyzer_noreturn) -/* this tells Clang's static analysis that we're a custom assert function, - and that the analyzer should assume the condition was always true past this - SDL_assert test. */ - __attribute__((analyzer_noreturn)) -#endif -#endif -; - -/* the do {} while(0) avoids dangling else problems: - if (x) SDL_assert(y); else blah(); - ... without the do/while, the "else" could attach to this macro's "if". - We try to handle just the minimum we need here in a macro...the loop, - the static vars, and break points. The heavy lifting is handled in - SDL_ReportAssertion(), in SDL_assert.c. -*/ -#define SDL_enabled_assert(condition) \ - do { \ - while ( !(condition) ) { \ - static struct SDL_AssertData sdl_assert_data = { 0, 0, #condition, 0, 0, 0, 0 }; \ - const SDL_AssertState sdl_assert_state = SDL_ReportAssertion(&sdl_assert_data, SDL_FUNCTION, SDL_FILE, SDL_LINE); \ - if (sdl_assert_state == SDL_ASSERTION_RETRY) { \ - continue; /* go again. */ \ - } else if (sdl_assert_state == SDL_ASSERTION_BREAK) { \ - SDL_TriggerBreakpoint(); \ - } \ - break; /* not retrying. */ \ - } \ - } while (SDL_NULL_WHILE_LOOP_CONDITION) - -/* Enable various levels of assertions. */ -#if SDL_ASSERT_LEVEL == 0 /* assertions disabled */ -# define SDL_assert(condition) SDL_disabled_assert(condition) -# define SDL_assert_release(condition) SDL_disabled_assert(condition) -# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition) -#elif SDL_ASSERT_LEVEL == 1 /* release settings. */ -# define SDL_assert(condition) SDL_disabled_assert(condition) -# define SDL_assert_release(condition) SDL_enabled_assert(condition) -# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition) -#elif SDL_ASSERT_LEVEL == 2 /* normal settings. */ -# define SDL_assert(condition) SDL_enabled_assert(condition) -# define SDL_assert_release(condition) SDL_enabled_assert(condition) -# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition) -#elif SDL_ASSERT_LEVEL == 3 /* paranoid settings. */ -# define SDL_assert(condition) SDL_enabled_assert(condition) -# define SDL_assert_release(condition) SDL_enabled_assert(condition) -# define SDL_assert_paranoid(condition) SDL_enabled_assert(condition) -#else -# error Unknown assertion level. -#endif - -/* this assertion is never disabled at any level. */ -#define SDL_assert_always(condition) SDL_enabled_assert(condition) - - -/** - * A callback that fires when an SDL assertion fails. - * - * \param data a pointer to the SDL_AssertData structure corresponding to the - * current assertion - * \param userdata what was passed as `userdata` to SDL_SetAssertionHandler() - * \returns an SDL_AssertState value indicating how to handle the failure. - */ -typedef SDL_AssertState (SDLCALL *SDL_AssertionHandler)( - const SDL_AssertData* data, void* userdata); - -/** - * Set an application-defined assertion handler. - * - * This function allows an application to show its own assertion UI and/or - * force the response to an assertion failure. If the application doesn't - * provide this, SDL will try to do the right thing, popping up a - * system-specific GUI dialog, and probably minimizing any fullscreen windows. - * - * This callback may fire from any thread, but it runs wrapped in a mutex, so - * it will only fire from one thread at a time. - * - * This callback is NOT reset to SDL's internal handler upon SDL_Quit()! - * - * \param handler the SDL_AssertionHandler function to call when an assertion - * fails or NULL for the default handler - * \param userdata a pointer that is passed to `handler` - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetAssertionHandler - */ -extern DECLSPEC void SDLCALL SDL_SetAssertionHandler( - SDL_AssertionHandler handler, - void *userdata); - -/** - * Get the default assertion handler. - * - * This returns the function pointer that is called by default when an - * assertion is triggered. This is an internal function provided by SDL, that - * is used for assertions when SDL_SetAssertionHandler() hasn't been used to - * provide a different function. - * - * \returns the default SDL_AssertionHandler that is called when an assert - * triggers. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_GetAssertionHandler - */ -extern DECLSPEC SDL_AssertionHandler SDLCALL SDL_GetDefaultAssertionHandler(void); - -/** - * Get the current assertion handler. - * - * This returns the function pointer that is called when an assertion is - * triggered. This is either the value last passed to - * SDL_SetAssertionHandler(), or if no application-specified function is set, - * is equivalent to calling SDL_GetDefaultAssertionHandler(). - * - * The parameter `puserdata` is a pointer to a void*, which will store the - * "userdata" pointer that was passed to SDL_SetAssertionHandler(). This value - * will always be NULL for the default handler. If you don't care about this - * data, it is safe to pass a NULL pointer to this function to ignore it. - * - * \param puserdata pointer which is filled with the "userdata" pointer that - * was passed to SDL_SetAssertionHandler() - * \returns the SDL_AssertionHandler that is called when an assert triggers. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_SetAssertionHandler - */ -extern DECLSPEC SDL_AssertionHandler SDLCALL SDL_GetAssertionHandler(void **puserdata); - -/** - * Get a list of all assertion failures. - * - * This function gets all assertions triggered since the last call to - * SDL_ResetAssertionReport(), or the start of the program. - * - * The proper way to examine this data looks something like this: - * - * ```c - * const SDL_AssertData *item = SDL_GetAssertionReport(); - * while (item) { - * printf("'%s', %s (%s:%d), triggered %u times, always ignore: %s.\\n", - * item->condition, item->function, item->filename, - * item->linenum, item->trigger_count, - * item->always_ignore ? "yes" : "no"); - * item = item->next; - * } - * ``` - * - * \returns a list of all failed assertions or NULL if the list is empty. This - * memory should not be modified or freed by the application. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ResetAssertionReport - */ -extern DECLSPEC const SDL_AssertData * SDLCALL SDL_GetAssertionReport(void); - -/** - * Clear the list of all assertion failures. - * - * This function will clear the list of all assertions triggered up to that - * point. Immediately following this call, SDL_GetAssertionReport will return - * no items. In addition, any previously-triggered assertions will be reset to - * a trigger_count of zero, and their always_ignore state will be false. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetAssertionReport - */ -extern DECLSPEC void SDLCALL SDL_ResetAssertionReport(void); - - -/* these had wrong naming conventions until 2.0.4. Please update your app! */ -#define SDL_assert_state SDL_AssertState -#define SDL_assert_data SDL_AssertData - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_assert_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_atomic.h b/release/SDL2.framework/Versions/A/Headers/SDL_atomic.h deleted file mode 100644 index 7c12b48..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_atomic.h +++ /dev/null @@ -1,414 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_atomic.h - * - * Atomic operations. - * - * IMPORTANT: - * If you are not an expert in concurrent lockless programming, you should - * only be using the atomic lock and reference counting functions in this - * file. In all other cases you should be protecting your data structures - * with full mutexes. - * - * The list of "safe" functions to use are: - * SDL_AtomicLock() - * SDL_AtomicUnlock() - * SDL_AtomicIncRef() - * SDL_AtomicDecRef() - * - * Seriously, here be dragons! - * ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - * - * You can find out a little more about lockless programming and the - * subtle issues that can arise here: - * http://msdn.microsoft.com/en-us/library/ee418650%28v=vs.85%29.aspx - * - * There's also lots of good information here: - * http://www.1024cores.net/home/lock-free-algorithms - * http://preshing.com/ - * - * These operations may or may not actually be implemented using - * processor specific atomic operations. When possible they are - * implemented as true processor specific atomic operations. When that - * is not possible the are implemented using locks that *do* use the - * available atomic operations. - * - * All of the atomic operations that modify memory are full memory barriers. - */ - -#ifndef SDL_atomic_h_ -#define SDL_atomic_h_ - -#include -#include - -#include - -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \name SDL AtomicLock - * - * The atomic locks are efficient spinlocks using CPU instructions, - * but are vulnerable to starvation and can spin forever if a thread - * holding a lock has been terminated. For this reason you should - * minimize the code executed inside an atomic lock and never do - * expensive things like API or system calls while holding them. - * - * The atomic locks are not safe to lock recursively. - * - * Porting Note: - * The spin lock functions and type are required and can not be - * emulated because they are used in the atomic emulation code. - */ -/* @{ */ - -typedef int SDL_SpinLock; - -/** - * Try to lock a spin lock by setting it to a non-zero value. - * - * ***Please note that spinlocks are dangerous if you don't know what you're - * doing. Please be careful using any sort of spinlock!*** - * - * \param lock a pointer to a lock variable - * \returns SDL_TRUE if the lock succeeded, SDL_FALSE if the lock is already - * held. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AtomicLock - * \sa SDL_AtomicUnlock - */ -extern DECLSPEC SDL_bool SDLCALL SDL_AtomicTryLock(SDL_SpinLock *lock); - -/** - * Lock a spin lock by setting it to a non-zero value. - * - * ***Please note that spinlocks are dangerous if you don't know what you're - * doing. Please be careful using any sort of spinlock!*** - * - * \param lock a pointer to a lock variable - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AtomicTryLock - * \sa SDL_AtomicUnlock - */ -extern DECLSPEC void SDLCALL SDL_AtomicLock(SDL_SpinLock *lock); - -/** - * Unlock a spin lock by setting it to 0. - * - * Always returns immediately. - * - * ***Please note that spinlocks are dangerous if you don't know what you're - * doing. Please be careful using any sort of spinlock!*** - * - * \param lock a pointer to a lock variable - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AtomicLock - * \sa SDL_AtomicTryLock - */ -extern DECLSPEC void SDLCALL SDL_AtomicUnlock(SDL_SpinLock *lock); - -/* @} *//* SDL AtomicLock */ - - -/** - * The compiler barrier prevents the compiler from reordering - * reads and writes to globally visible variables across the call. - */ -#if defined(_MSC_VER) && (_MSC_VER > 1200) && !defined(__clang__) -void _ReadWriteBarrier(void); -#pragma intrinsic(_ReadWriteBarrier) -#define SDL_CompilerBarrier() _ReadWriteBarrier() -#elif (defined(__GNUC__) && !defined(__EMSCRIPTEN__)) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5120)) -/* This is correct for all CPUs when using GCC or Solaris Studio 12.1+. */ -#define SDL_CompilerBarrier() __asm__ __volatile__ ("" : : : "memory") -#elif defined(__WATCOMC__) -extern __inline void SDL_CompilerBarrier(void); -#pragma aux SDL_CompilerBarrier = "" parm [] modify exact []; -#else -#define SDL_CompilerBarrier() \ -{ SDL_SpinLock _tmp = 0; SDL_AtomicLock(&_tmp); SDL_AtomicUnlock(&_tmp); } -#endif - -/** - * Memory barriers are designed to prevent reads and writes from being - * reordered by the compiler and being seen out of order on multi-core CPUs. - * - * A typical pattern would be for thread A to write some data and a flag, and - * for thread B to read the flag and get the data. In this case you would - * insert a release barrier between writing the data and the flag, - * guaranteeing that the data write completes no later than the flag is - * written, and you would insert an acquire barrier between reading the flag - * and reading the data, to ensure that all the reads associated with the flag - * have completed. - * - * In this pattern you should always see a release barrier paired with an - * acquire barrier and you should gate the data reads/writes with a single - * flag variable. - * - * For more information on these semantics, take a look at the blog post: - * http://preshing.com/20120913/acquire-and-release-semantics - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC void SDLCALL SDL_MemoryBarrierReleaseFunction(void); -extern DECLSPEC void SDLCALL SDL_MemoryBarrierAcquireFunction(void); - -#if defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__)) -#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("lwsync" : : : "memory") -#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("lwsync" : : : "memory") -#elif defined(__GNUC__) && defined(__aarch64__) -#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("dmb ish" : : : "memory") -#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("dmb ish" : : : "memory") -#elif defined(__GNUC__) && defined(__arm__) -#if 0 /* defined(__LINUX__) || defined(__ANDROID__) */ -/* Information from: - https://chromium.googlesource.com/chromium/chromium/+/trunk/base/atomicops_internals_arm_gcc.h#19 - - The Linux kernel provides a helper function which provides the right code for a memory barrier, - hard-coded at address 0xffff0fa0 -*/ -typedef void (*SDL_KernelMemoryBarrierFunc)(); -#define SDL_MemoryBarrierRelease() ((SDL_KernelMemoryBarrierFunc)0xffff0fa0)() -#define SDL_MemoryBarrierAcquire() ((SDL_KernelMemoryBarrierFunc)0xffff0fa0)() -#elif 0 /* defined(__QNXNTO__) */ -#include - -#define SDL_MemoryBarrierRelease() __cpu_membarrier() -#define SDL_MemoryBarrierAcquire() __cpu_membarrier() -#else -#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7EM__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) || defined(__ARM_ARCH_8A__) -#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("dmb ish" : : : "memory") -#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("dmb ish" : : : "memory") -#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6T2__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_5TE__) -#ifdef __thumb__ -/* The mcr instruction isn't available in thumb mode, use real functions */ -#define SDL_MEMORY_BARRIER_USES_FUNCTION -#define SDL_MemoryBarrierRelease() SDL_MemoryBarrierReleaseFunction() -#define SDL_MemoryBarrierAcquire() SDL_MemoryBarrierAcquireFunction() -#else -#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r"(0) : "memory") -#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r"(0) : "memory") -#endif /* __thumb__ */ -#else -#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("" : : : "memory") -#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("" : : : "memory") -#endif /* __LINUX__ || __ANDROID__ */ -#endif /* __GNUC__ && __arm__ */ -#else -#if (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5120)) -/* This is correct for all CPUs on Solaris when using Solaris Studio 12.1+. */ -#include -#define SDL_MemoryBarrierRelease() __machine_rel_barrier() -#define SDL_MemoryBarrierAcquire() __machine_acq_barrier() -#else -/* This is correct for the x86 and x64 CPUs, and we'll expand this over time. */ -#define SDL_MemoryBarrierRelease() SDL_CompilerBarrier() -#define SDL_MemoryBarrierAcquire() SDL_CompilerBarrier() -#endif -#endif - -/* "REP NOP" is PAUSE, coded for tools that don't know it by that name. */ -#if (defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__)) - #define SDL_CPUPauseInstruction() __asm__ __volatile__("pause\n") /* Some assemblers can't do REP NOP, so go with PAUSE. */ -#elif (defined(__arm__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7) || defined(__aarch64__) - #define SDL_CPUPauseInstruction() __asm__ __volatile__("yield" ::: "memory") -#elif (defined(__powerpc__) || defined(__powerpc64__)) - #define SDL_CPUPauseInstruction() __asm__ __volatile__("or 27,27,27"); -#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64)) - #define SDL_CPUPauseInstruction() _mm_pause() /* this is actually "rep nop" and not a SIMD instruction. No inline asm in MSVC x86-64! */ -#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64)) - #define SDL_CPUPauseInstruction() __yield() -#elif defined(__WATCOMC__) && defined(__386__) - extern __inline void SDL_CPUPauseInstruction(void); - #pragma aux SDL_CPUPauseInstruction = ".686p" ".xmm2" "pause" -#else - #define SDL_CPUPauseInstruction() -#endif - - -/** - * \brief A type representing an atomic integer value. It is a struct - * so people don't accidentally use numeric operations on it. - */ -typedef struct { int value; } SDL_atomic_t; - -/** - * Set an atomic variable to a new value if it is currently an old value. - * - * ***Note: If you don't know what this function is for, you shouldn't use - * it!*** - * - * \param a a pointer to an SDL_atomic_t variable to be modified - * \param oldval the old value - * \param newval the new value - * \returns SDL_TRUE if the atomic variable was set, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AtomicCASPtr - * \sa SDL_AtomicGet - * \sa SDL_AtomicSet - */ -extern DECLSPEC SDL_bool SDLCALL SDL_AtomicCAS(SDL_atomic_t *a, int oldval, int newval); - -/** - * Set an atomic variable to a value. - * - * This function also acts as a full memory barrier. - * - * ***Note: If you don't know what this function is for, you shouldn't use - * it!*** - * - * \param a a pointer to an SDL_atomic_t variable to be modified - * \param v the desired value - * \returns the previous value of the atomic variable. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_AtomicGet - */ -extern DECLSPEC int SDLCALL SDL_AtomicSet(SDL_atomic_t *a, int v); - -/** - * Get the value of an atomic variable. - * - * ***Note: If you don't know what this function is for, you shouldn't use - * it!*** - * - * \param a a pointer to an SDL_atomic_t variable - * \returns the current value of an atomic variable. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_AtomicSet - */ -extern DECLSPEC int SDLCALL SDL_AtomicGet(SDL_atomic_t *a); - -/** - * Add to an atomic variable. - * - * This function also acts as a full memory barrier. - * - * ***Note: If you don't know what this function is for, you shouldn't use - * it!*** - * - * \param a a pointer to an SDL_atomic_t variable to be modified - * \param v the desired value to add - * \returns the previous value of the atomic variable. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_AtomicDecRef - * \sa SDL_AtomicIncRef - */ -extern DECLSPEC int SDLCALL SDL_AtomicAdd(SDL_atomic_t *a, int v); - -/** - * \brief Increment an atomic variable used as a reference count. - */ -#ifndef SDL_AtomicIncRef -#define SDL_AtomicIncRef(a) SDL_AtomicAdd(a, 1) -#endif - -/** - * \brief Decrement an atomic variable used as a reference count. - * - * \return SDL_TRUE if the variable reached zero after decrementing, - * SDL_FALSE otherwise - */ -#ifndef SDL_AtomicDecRef -#define SDL_AtomicDecRef(a) (SDL_AtomicAdd(a, -1) == 1) -#endif - -/** - * Set a pointer to a new value if it is currently an old value. - * - * ***Note: If you don't know what this function is for, you shouldn't use - * it!*** - * - * \param a a pointer to a pointer - * \param oldval the old pointer value - * \param newval the new pointer value - * \returns SDL_TRUE if the pointer was set, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AtomicCAS - * \sa SDL_AtomicGetPtr - * \sa SDL_AtomicSetPtr - */ -extern DECLSPEC SDL_bool SDLCALL SDL_AtomicCASPtr(void **a, void *oldval, void *newval); - -/** - * Set a pointer to a value atomically. - * - * ***Note: If you don't know what this function is for, you shouldn't use - * it!*** - * - * \param a a pointer to a pointer - * \param v the desired pointer value - * \returns the previous value of the pointer. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_AtomicCASPtr - * \sa SDL_AtomicGetPtr - */ -extern DECLSPEC void* SDLCALL SDL_AtomicSetPtr(void **a, void* v); - -/** - * Get the value of a pointer atomically. - * - * ***Note: If you don't know what this function is for, you shouldn't use - * it!*** - * - * \param a a pointer to a pointer - * \returns the current value of a pointer. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_AtomicCASPtr - * \sa SDL_AtomicSetPtr - */ -extern DECLSPEC void* SDLCALL SDL_AtomicGetPtr(void **a); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif - -#include - -#endif /* SDL_atomic_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_audio.h b/release/SDL2.framework/Versions/A/Headers/SDL_audio.h deleted file mode 100644 index 2eeb542..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_audio.h +++ /dev/null @@ -1,1500 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* !!! FIXME: several functions in here need Doxygen comments. */ - -/** - * \file SDL_audio.h - * - * Access to the raw audio mixing buffer for the SDL library. - */ - -#ifndef SDL_audio_h_ -#define SDL_audio_h_ - -#include -#include -#include -#include -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief Audio format flags. - * - * These are what the 16 bits in SDL_AudioFormat currently mean... - * (Unspecified bits are always zero). - * - * \verbatim - ++-----------------------sample is signed if set - || - || ++-----------sample is bigendian if set - || || - || || ++---sample is float if set - || || || - || || || +---sample bit size---+ - || || || | | - 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 - \endverbatim - * - * There are macros in SDL 2.0 and later to query these bits. - */ -typedef Uint16 SDL_AudioFormat; - -/** - * \name Audio flags - */ -/* @{ */ - -#define SDL_AUDIO_MASK_BITSIZE (0xFF) -#define SDL_AUDIO_MASK_DATATYPE (1<<8) -#define SDL_AUDIO_MASK_ENDIAN (1<<12) -#define SDL_AUDIO_MASK_SIGNED (1<<15) -#define SDL_AUDIO_BITSIZE(x) (x & SDL_AUDIO_MASK_BITSIZE) -#define SDL_AUDIO_ISFLOAT(x) (x & SDL_AUDIO_MASK_DATATYPE) -#define SDL_AUDIO_ISBIGENDIAN(x) (x & SDL_AUDIO_MASK_ENDIAN) -#define SDL_AUDIO_ISSIGNED(x) (x & SDL_AUDIO_MASK_SIGNED) -#define SDL_AUDIO_ISINT(x) (!SDL_AUDIO_ISFLOAT(x)) -#define SDL_AUDIO_ISLITTLEENDIAN(x) (!SDL_AUDIO_ISBIGENDIAN(x)) -#define SDL_AUDIO_ISUNSIGNED(x) (!SDL_AUDIO_ISSIGNED(x)) - -/** - * \name Audio format flags - * - * Defaults to LSB byte order. - */ -/* @{ */ -#define AUDIO_U8 0x0008 /**< Unsigned 8-bit samples */ -#define AUDIO_S8 0x8008 /**< Signed 8-bit samples */ -#define AUDIO_U16LSB 0x0010 /**< Unsigned 16-bit samples */ -#define AUDIO_S16LSB 0x8010 /**< Signed 16-bit samples */ -#define AUDIO_U16MSB 0x1010 /**< As above, but big-endian byte order */ -#define AUDIO_S16MSB 0x9010 /**< As above, but big-endian byte order */ -#define AUDIO_U16 AUDIO_U16LSB -#define AUDIO_S16 AUDIO_S16LSB -/* @} */ - -/** - * \name int32 support - */ -/* @{ */ -#define AUDIO_S32LSB 0x8020 /**< 32-bit integer samples */ -#define AUDIO_S32MSB 0x9020 /**< As above, but big-endian byte order */ -#define AUDIO_S32 AUDIO_S32LSB -/* @} */ - -/** - * \name float32 support - */ -/* @{ */ -#define AUDIO_F32LSB 0x8120 /**< 32-bit floating point samples */ -#define AUDIO_F32MSB 0x9120 /**< As above, but big-endian byte order */ -#define AUDIO_F32 AUDIO_F32LSB -/* @} */ - -/** - * \name Native audio byte ordering - */ -/* @{ */ -#if SDL_BYTEORDER == SDL_LIL_ENDIAN -#define AUDIO_U16SYS AUDIO_U16LSB -#define AUDIO_S16SYS AUDIO_S16LSB -#define AUDIO_S32SYS AUDIO_S32LSB -#define AUDIO_F32SYS AUDIO_F32LSB -#else -#define AUDIO_U16SYS AUDIO_U16MSB -#define AUDIO_S16SYS AUDIO_S16MSB -#define AUDIO_S32SYS AUDIO_S32MSB -#define AUDIO_F32SYS AUDIO_F32MSB -#endif -/* @} */ - -/** - * \name Allow change flags - * - * Which audio format changes are allowed when opening a device. - */ -/* @{ */ -#define SDL_AUDIO_ALLOW_FREQUENCY_CHANGE 0x00000001 -#define SDL_AUDIO_ALLOW_FORMAT_CHANGE 0x00000002 -#define SDL_AUDIO_ALLOW_CHANNELS_CHANGE 0x00000004 -#define SDL_AUDIO_ALLOW_SAMPLES_CHANGE 0x00000008 -#define SDL_AUDIO_ALLOW_ANY_CHANGE (SDL_AUDIO_ALLOW_FREQUENCY_CHANGE|SDL_AUDIO_ALLOW_FORMAT_CHANGE|SDL_AUDIO_ALLOW_CHANNELS_CHANGE|SDL_AUDIO_ALLOW_SAMPLES_CHANGE) -/* @} */ - -/* @} *//* Audio flags */ - -/** - * This function is called when the audio device needs more data. - * - * \param userdata An application-specific parameter saved in - * the SDL_AudioSpec structure - * \param stream A pointer to the audio data buffer. - * \param len The length of that buffer in bytes. - * - * Once the callback returns, the buffer will no longer be valid. - * Stereo samples are stored in a LRLRLR ordering. - * - * You can choose to avoid callbacks and use SDL_QueueAudio() instead, if - * you like. Just open your audio device with a NULL callback. - */ -typedef void (SDLCALL * SDL_AudioCallback) (void *userdata, Uint8 * stream, - int len); - -/** - * The calculated values in this structure are calculated by SDL_OpenAudio(). - * - * For multi-channel audio, the default SDL channel mapping is: - * 2: FL FR (stereo) - * 3: FL FR LFE (2.1 surround) - * 4: FL FR BL BR (quad) - * 5: FL FR LFE BL BR (4.1 surround) - * 6: FL FR FC LFE SL SR (5.1 surround - last two can also be BL BR) - * 7: FL FR FC LFE BC SL SR (6.1 surround) - * 8: FL FR FC LFE BL BR SL SR (7.1 surround) - */ -typedef struct SDL_AudioSpec -{ - int freq; /**< DSP frequency -- samples per second */ - SDL_AudioFormat format; /**< Audio data format */ - Uint8 channels; /**< Number of channels: 1 mono, 2 stereo */ - Uint8 silence; /**< Audio buffer silence value (calculated) */ - Uint16 samples; /**< Audio buffer size in sample FRAMES (total samples divided by channel count) */ - Uint16 padding; /**< Necessary for some compile environments */ - Uint32 size; /**< Audio buffer size in bytes (calculated) */ - SDL_AudioCallback callback; /**< Callback that feeds the audio device (NULL to use SDL_QueueAudio()). */ - void *userdata; /**< Userdata passed to callback (ignored for NULL callbacks). */ -} SDL_AudioSpec; - - -struct SDL_AudioCVT; -typedef void (SDLCALL * SDL_AudioFilter) (struct SDL_AudioCVT * cvt, - SDL_AudioFormat format); - -/** - * \brief Upper limit of filters in SDL_AudioCVT - * - * The maximum number of SDL_AudioFilter functions in SDL_AudioCVT is - * currently limited to 9. The SDL_AudioCVT.filters array has 10 pointers, - * one of which is the terminating NULL pointer. - */ -#define SDL_AUDIOCVT_MAX_FILTERS 9 - -/** - * \struct SDL_AudioCVT - * \brief A structure to hold a set of audio conversion filters and buffers. - * - * Note that various parts of the conversion pipeline can take advantage - * of SIMD operations (like SSE2, for example). SDL_AudioCVT doesn't require - * you to pass it aligned data, but can possibly run much faster if you - * set both its (buf) field to a pointer that is aligned to 16 bytes, and its - * (len) field to something that's a multiple of 16, if possible. - */ -#if defined(__GNUC__) && !defined(__CHERI_PURE_CAPABILITY__) -/* This structure is 84 bytes on 32-bit architectures, make sure GCC doesn't - pad it out to 88 bytes to guarantee ABI compatibility between compilers. - This is not a concern on CHERI architectures, where pointers must be stored - at aligned locations otherwise they will become invalid, and thus structs - containing pointers cannot be packed without giving a warning or error. - vvv - The next time we rev the ABI, make sure to size the ints and add padding. -*/ -#define SDL_AUDIOCVT_PACKED __attribute__((packed)) -#else -#define SDL_AUDIOCVT_PACKED -#endif -/* */ -typedef struct SDL_AudioCVT -{ - int needed; /**< Set to 1 if conversion possible */ - SDL_AudioFormat src_format; /**< Source audio format */ - SDL_AudioFormat dst_format; /**< Target audio format */ - double rate_incr; /**< Rate conversion increment */ - Uint8 *buf; /**< Buffer to hold entire audio data */ - int len; /**< Length of original audio buffer */ - int len_cvt; /**< Length of converted audio buffer */ - int len_mult; /**< buffer must be len*len_mult big */ - double len_ratio; /**< Given len, final size is len*len_ratio */ - SDL_AudioFilter filters[SDL_AUDIOCVT_MAX_FILTERS + 1]; /**< NULL-terminated list of filter functions */ - int filter_index; /**< Current audio conversion function */ -} SDL_AUDIOCVT_PACKED SDL_AudioCVT; - - -/* Function prototypes */ - -/** - * \name Driver discovery functions - * - * These functions return the list of built in audio drivers, in the - * order that they are normally initialized by default. - */ -/* @{ */ - -/** - * Use this function to get the number of built-in audio drivers. - * - * This function returns a hardcoded number. This never returns a negative - * value; if there are no drivers compiled into this build of SDL, this - * function returns zero. The presence of a driver in this list does not mean - * it will function, it just means SDL is capable of interacting with that - * interface. For example, a build of SDL might have esound support, but if - * there's no esound server available, SDL's esound driver would fail if used. - * - * By default, SDL tries all drivers, in its preferred order, until one is - * found to be usable. - * - * \returns the number of built-in audio drivers. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetAudioDriver - */ -extern DECLSPEC int SDLCALL SDL_GetNumAudioDrivers(void); - -/** - * Use this function to get the name of a built in audio driver. - * - * The list of audio drivers is given in the order that they are normally - * initialized by default; the drivers that seem more reasonable to choose - * first (as far as the SDL developers believe) are earlier in the list. - * - * The names of drivers are all simple, low-ASCII identifiers, like "alsa", - * "coreaudio" or "xaudio2". These never have Unicode characters, and are not - * meant to be proper names. - * - * \param index the index of the audio driver; the value ranges from 0 to - * SDL_GetNumAudioDrivers() - 1 - * \returns the name of the audio driver at the requested index, or NULL if an - * invalid index was specified. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumAudioDrivers - */ -extern DECLSPEC const char *SDLCALL SDL_GetAudioDriver(int index); -/* @} */ - -/** - * \name Initialization and cleanup - * - * \internal These functions are used internally, and should not be used unless - * you have a specific need to specify the audio driver you want to - * use. You should normally use SDL_Init() or SDL_InitSubSystem(). - */ -/* @{ */ - -/** - * Use this function to initialize a particular audio driver. - * - * This function is used internally, and should not be used unless you have a - * specific need to designate the audio driver you want to use. You should - * normally use SDL_Init() or SDL_InitSubSystem(). - * - * \param driver_name the name of the desired audio driver - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AudioQuit - */ -extern DECLSPEC int SDLCALL SDL_AudioInit(const char *driver_name); - -/** - * Use this function to shut down audio if you initialized it with - * SDL_AudioInit(). - * - * This function is used internally, and should not be used unless you have a - * specific need to specify the audio driver you want to use. You should - * normally use SDL_Quit() or SDL_QuitSubSystem(). - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AudioInit - */ -extern DECLSPEC void SDLCALL SDL_AudioQuit(void); -/* @} */ - -/** - * Get the name of the current audio driver. - * - * The returned string points to internal static memory and thus never becomes - * invalid, even if you quit the audio subsystem and initialize a new driver - * (although such a case would return a different static string from another - * call to this function, of course). As such, you should not modify or free - * the returned string. - * - * \returns the name of the current audio driver or NULL if no driver has been - * initialized. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AudioInit - */ -extern DECLSPEC const char *SDLCALL SDL_GetCurrentAudioDriver(void); - -/** - * This function is a legacy means of opening the audio device. - * - * This function remains for compatibility with SDL 1.2, but also because it's - * slightly easier to use than the new functions in SDL 2.0. The new, more - * powerful, and preferred way to do this is SDL_OpenAudioDevice(). - * - * This function is roughly equivalent to: - * - * ```c - * SDL_OpenAudioDevice(NULL, 0, desired, obtained, SDL_AUDIO_ALLOW_ANY_CHANGE); - * ``` - * - * With two notable exceptions: - * - * - If `obtained` is NULL, we use `desired` (and allow no changes), which - * means desired will be modified to have the correct values for silence, - * etc, and SDL will convert any differences between your app's specific - * request and the hardware behind the scenes. - * - The return value is always success or failure, and not a device ID, which - * means you can only have one device open at a time with this function. - * - * \param desired an SDL_AudioSpec structure representing the desired output - * format. Please refer to the SDL_OpenAudioDevice - * documentation for details on how to prepare this structure. - * \param obtained an SDL_AudioSpec structure filled in with the actual - * parameters, or NULL. - * \returns 0 if successful, placing the actual hardware parameters in the - * structure pointed to by `obtained`. - * - * If `obtained` is NULL, the audio data passed to the callback - * function will be guaranteed to be in the requested format, and - * will be automatically converted to the actual hardware audio - * format if necessary. If `obtained` is NULL, `desired` will have - * fields modified. - * - * This function returns a negative error code on failure to open the - * audio device or failure to set up the audio thread; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CloseAudio - * \sa SDL_LockAudio - * \sa SDL_PauseAudio - * \sa SDL_UnlockAudio - */ -extern DECLSPEC int SDLCALL SDL_OpenAudio(SDL_AudioSpec * desired, - SDL_AudioSpec * obtained); - -/** - * SDL Audio Device IDs. - * - * A successful call to SDL_OpenAudio() is always device id 1, and legacy - * SDL audio APIs assume you want this device ID. SDL_OpenAudioDevice() calls - * always returns devices >= 2 on success. The legacy calls are good both - * for backwards compatibility and when you don't care about multiple, - * specific, or capture devices. - */ -typedef Uint32 SDL_AudioDeviceID; - -/** - * Get the number of built-in audio devices. - * - * This function is only valid after successfully initializing the audio - * subsystem. - * - * Note that audio capture support is not implemented as of SDL 2.0.4, so the - * `iscapture` parameter is for future expansion and should always be zero for - * now. - * - * This function will return -1 if an explicit list of devices can't be - * determined. Returning -1 is not an error. For example, if SDL is set up to - * talk to a remote audio server, it can't list every one available on the - * Internet, but it will still allow a specific host to be specified in - * SDL_OpenAudioDevice(). - * - * In many common cases, when this function returns a value <= 0, it can still - * successfully open the default device (NULL for first argument of - * SDL_OpenAudioDevice()). - * - * This function may trigger a complete redetect of available hardware. It - * should not be called for each iteration of a loop, but rather once at the - * start of a loop: - * - * ```c - * // Don't do this: - * for (int i = 0; i < SDL_GetNumAudioDevices(0); i++) - * - * // do this instead: - * const int count = SDL_GetNumAudioDevices(0); - * for (int i = 0; i < count; ++i) { do_something_here(); } - * ``` - * - * \param iscapture zero to request playback devices, non-zero to request - * recording devices - * \returns the number of available devices exposed by the current driver or - * -1 if an explicit list of devices can't be determined. A return - * value of -1 does not necessarily mean an error condition. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetAudioDeviceName - * \sa SDL_OpenAudioDevice - */ -extern DECLSPEC int SDLCALL SDL_GetNumAudioDevices(int iscapture); - -/** - * Get the human-readable name of a specific audio device. - * - * This function is only valid after successfully initializing the audio - * subsystem. The values returned by this function reflect the latest call to - * SDL_GetNumAudioDevices(); re-call that function to redetect available - * hardware. - * - * The string returned by this function is UTF-8 encoded, read-only, and - * managed internally. You are not to free it. If you need to keep the string - * for any length of time, you should make your own copy of it, as it will be - * invalid next time any of several other SDL functions are called. - * - * \param index the index of the audio device; valid values range from 0 to - * SDL_GetNumAudioDevices() - 1 - * \param iscapture non-zero to query the list of recording devices, zero to - * query the list of output devices. - * \returns the name of the audio device at the requested index, or NULL on - * error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumAudioDevices - * \sa SDL_GetDefaultAudioInfo - */ -extern DECLSPEC const char *SDLCALL SDL_GetAudioDeviceName(int index, - int iscapture); - -/** - * Get the preferred audio format of a specific audio device. - * - * This function is only valid after a successfully initializing the audio - * subsystem. The values returned by this function reflect the latest call to - * SDL_GetNumAudioDevices(); re-call that function to redetect available - * hardware. - * - * `spec` will be filled with the sample rate, sample format, and channel - * count. - * - * \param index the index of the audio device; valid values range from 0 to - * SDL_GetNumAudioDevices() - 1 - * \param iscapture non-zero to query the list of recording devices, zero to - * query the list of output devices. - * \param spec The SDL_AudioSpec to be initialized by this function. - * \returns 0 on success, nonzero on error - * - * \since This function is available since SDL 2.0.16. - * - * \sa SDL_GetNumAudioDevices - * \sa SDL_GetDefaultAudioInfo - */ -extern DECLSPEC int SDLCALL SDL_GetAudioDeviceSpec(int index, - int iscapture, - SDL_AudioSpec *spec); - - -/** - * Get the name and preferred format of the default audio device. - * - * Some (but not all!) platforms have an isolated mechanism to get information - * about the "default" device. This can actually be a completely different - * device that's not in the list you get from SDL_GetAudioDeviceSpec(). It can - * even be a network address! (This is discussed in SDL_OpenAudioDevice().) - * - * As a result, this call is not guaranteed to be performant, as it can query - * the sound server directly every time, unlike the other query functions. You - * should call this function sparingly! - * - * `spec` will be filled with the sample rate, sample format, and channel - * count, if a default device exists on the system. If `name` is provided, - * will be filled with either a dynamically-allocated UTF-8 string or NULL. - * - * \param name A pointer to be filled with the name of the default device (can - * be NULL). Please call SDL_free() when you are done with this - * pointer! - * \param spec The SDL_AudioSpec to be initialized by this function. - * \param iscapture non-zero to query the default recording device, zero to - * query the default output device. - * \returns 0 on success, nonzero on error - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GetAudioDeviceName - * \sa SDL_GetAudioDeviceSpec - * \sa SDL_OpenAudioDevice - */ -extern DECLSPEC int SDLCALL SDL_GetDefaultAudioInfo(char **name, - SDL_AudioSpec *spec, - int iscapture); - - -/** - * Open a specific audio device. - * - * SDL_OpenAudio(), unlike this function, always acts on device ID 1. As such, - * this function will never return a 1 so as not to conflict with the legacy - * function. - * - * Please note that SDL 2.0 before 2.0.5 did not support recording; as such, - * this function would fail if `iscapture` was not zero. Starting with SDL - * 2.0.5, recording is implemented and this value can be non-zero. - * - * Passing in a `device` name of NULL requests the most reasonable default - * (and is equivalent to what SDL_OpenAudio() does to choose a device). The - * `device` name is a UTF-8 string reported by SDL_GetAudioDeviceName(), but - * some drivers allow arbitrary and driver-specific strings, such as a - * hostname/IP address for a remote audio server, or a filename in the - * diskaudio driver. - * - * An opened audio device starts out paused, and should be enabled for playing - * by calling SDL_PauseAudioDevice(devid, 0) when you are ready for your audio - * callback function to be called. Since the audio driver may modify the - * requested size of the audio buffer, you should allocate any local mixing - * buffers after you open the audio device. - * - * The audio callback runs in a separate thread in most cases; you can prevent - * race conditions between your callback and other threads without fully - * pausing playback with SDL_LockAudioDevice(). For more information about the - * callback, see SDL_AudioSpec. - * - * Managing the audio spec via 'desired' and 'obtained': - * - * When filling in the desired audio spec structure: - * - * - `desired->freq` should be the frequency in sample-frames-per-second (Hz). - * - `desired->format` should be the audio format (`AUDIO_S16SYS`, etc). - * - `desired->samples` is the desired size of the audio buffer, in _sample - * frames_ (with stereo output, two samples--left and right--would make a - * single sample frame). This number should be a power of two, and may be - * adjusted by the audio driver to a value more suitable for the hardware. - * Good values seem to range between 512 and 8096 inclusive, depending on - * the application and CPU speed. Smaller values reduce latency, but can - * lead to underflow if the application is doing heavy processing and cannot - * fill the audio buffer in time. Note that the number of sample frames is - * directly related to time by the following formula: `ms = - * (sampleframes*1000)/freq` - * - `desired->size` is the size in _bytes_ of the audio buffer, and is - * calculated by SDL_OpenAudioDevice(). You don't initialize this. - * - `desired->silence` is the value used to set the buffer to silence, and is - * calculated by SDL_OpenAudioDevice(). You don't initialize this. - * - `desired->callback` should be set to a function that will be called when - * the audio device is ready for more data. It is passed a pointer to the - * audio buffer, and the length in bytes of the audio buffer. This function - * usually runs in a separate thread, and so you should protect data - * structures that it accesses by calling SDL_LockAudioDevice() and - * SDL_UnlockAudioDevice() in your code. Alternately, you may pass a NULL - * pointer here, and call SDL_QueueAudio() with some frequency, to queue - * more audio samples to be played (or for capture devices, call - * SDL_DequeueAudio() with some frequency, to obtain audio samples). - * - `desired->userdata` is passed as the first parameter to your callback - * function. If you passed a NULL callback, this value is ignored. - * - * `allowed_changes` can have the following flags OR'd together: - * - * - `SDL_AUDIO_ALLOW_FREQUENCY_CHANGE` - * - `SDL_AUDIO_ALLOW_FORMAT_CHANGE` - * - `SDL_AUDIO_ALLOW_CHANNELS_CHANGE` - * - `SDL_AUDIO_ALLOW_SAMPLES_CHANGE` - * - `SDL_AUDIO_ALLOW_ANY_CHANGE` - * - * These flags specify how SDL should behave when a device cannot offer a - * specific feature. If the application requests a feature that the hardware - * doesn't offer, SDL will always try to get the closest equivalent. - * - * For example, if you ask for float32 audio format, but the sound card only - * supports int16, SDL will set the hardware to int16. If you had set - * SDL_AUDIO_ALLOW_FORMAT_CHANGE, SDL will change the format in the `obtained` - * structure. If that flag was *not* set, SDL will prepare to convert your - * callback's float32 audio to int16 before feeding it to the hardware and - * will keep the originally requested format in the `obtained` structure. - * - * The resulting audio specs, varying depending on hardware and on what - * changes were allowed, will then be written back to `obtained`. - * - * If your application can only handle one specific data format, pass a zero - * for `allowed_changes` and let SDL transparently handle any differences. - * - * \param device a UTF-8 string reported by SDL_GetAudioDeviceName() or a - * driver-specific name as appropriate. NULL requests the most - * reasonable default device. - * \param iscapture non-zero to specify a device should be opened for - * recording, not playback - * \param desired an SDL_AudioSpec structure representing the desired output - * format; see SDL_OpenAudio() for more information - * \param obtained an SDL_AudioSpec structure filled in with the actual output - * format; see SDL_OpenAudio() for more information - * \param allowed_changes 0, or one or more flags OR'd together - * \returns a valid device ID that is > 0 on success or 0 on failure; call - * SDL_GetError() for more information. - * - * For compatibility with SDL 1.2, this will never return 1, since - * SDL reserves that ID for the legacy SDL_OpenAudio() function. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CloseAudioDevice - * \sa SDL_GetAudioDeviceName - * \sa SDL_LockAudioDevice - * \sa SDL_OpenAudio - * \sa SDL_PauseAudioDevice - * \sa SDL_UnlockAudioDevice - */ -extern DECLSPEC SDL_AudioDeviceID SDLCALL SDL_OpenAudioDevice( - const char *device, - int iscapture, - const SDL_AudioSpec *desired, - SDL_AudioSpec *obtained, - int allowed_changes); - - - -/** - * \name Audio state - * - * Get the current audio state. - */ -/* @{ */ -typedef enum -{ - SDL_AUDIO_STOPPED = 0, - SDL_AUDIO_PLAYING, - SDL_AUDIO_PAUSED -} SDL_AudioStatus; - -/** - * This function is a legacy means of querying the audio device. - * - * New programs might want to use SDL_GetAudioDeviceStatus() instead. This - * function is equivalent to calling... - * - * ```c - * SDL_GetAudioDeviceStatus(1); - * ``` - * - * ...and is only useful if you used the legacy SDL_OpenAudio() function. - * - * \returns the SDL_AudioStatus of the audio device opened by SDL_OpenAudio(). - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetAudioDeviceStatus - */ -extern DECLSPEC SDL_AudioStatus SDLCALL SDL_GetAudioStatus(void); - -/** - * Use this function to get the current audio state of an audio device. - * - * \param dev the ID of an audio device previously opened with - * SDL_OpenAudioDevice() - * \returns the SDL_AudioStatus of the specified audio device. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PauseAudioDevice - */ -extern DECLSPEC SDL_AudioStatus SDLCALL SDL_GetAudioDeviceStatus(SDL_AudioDeviceID dev); -/* @} *//* Audio State */ - -/** - * \name Pause audio functions - * - * These functions pause and unpause the audio callback processing. - * They should be called with a parameter of 0 after opening the audio - * device to start playing sound. This is so you can safely initialize - * data for your callback function after opening the audio device. - * Silence will be written to the audio device during the pause. - */ -/* @{ */ - -/** - * This function is a legacy means of pausing the audio device. - * - * New programs might want to use SDL_PauseAudioDevice() instead. This - * function is equivalent to calling... - * - * ```c - * SDL_PauseAudioDevice(1, pause_on); - * ``` - * - * ...and is only useful if you used the legacy SDL_OpenAudio() function. - * - * \param pause_on non-zero to pause, 0 to unpause - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetAudioStatus - * \sa SDL_PauseAudioDevice - */ -extern DECLSPEC void SDLCALL SDL_PauseAudio(int pause_on); - -/** - * Use this function to pause and unpause audio playback on a specified - * device. - * - * This function pauses and unpauses the audio callback processing for a given - * device. Newly-opened audio devices start in the paused state, so you must - * call this function with **pause_on**=0 after opening the specified audio - * device to start playing sound. This allows you to safely initialize data - * for your callback function after opening the audio device. Silence will be - * written to the audio device while paused, and the audio callback is - * guaranteed to not be called. Pausing one device does not prevent other - * unpaused devices from running their callbacks. - * - * Pausing state does not stack; even if you pause a device several times, a - * single unpause will start the device playing again, and vice versa. This is - * different from how SDL_LockAudioDevice() works. - * - * If you just need to protect a few variables from race conditions vs your - * callback, you shouldn't pause the audio device, as it will lead to dropouts - * in the audio playback. Instead, you should use SDL_LockAudioDevice(). - * - * \param dev a device opened by SDL_OpenAudioDevice() - * \param pause_on non-zero to pause, 0 to unpause - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LockAudioDevice - */ -extern DECLSPEC void SDLCALL SDL_PauseAudioDevice(SDL_AudioDeviceID dev, - int pause_on); -/* @} *//* Pause audio functions */ - -/** - * Load the audio data of a WAVE file into memory. - * - * Loading a WAVE file requires `src`, `spec`, `audio_buf` and `audio_len` to - * be valid pointers. The entire data portion of the file is then loaded into - * memory and decoded if necessary. - * - * If `freesrc` is non-zero, the data source gets automatically closed and - * freed before the function returns. - * - * Supported formats are RIFF WAVE files with the formats PCM (8, 16, 24, and - * 32 bits), IEEE Float (32 bits), Microsoft ADPCM and IMA ADPCM (4 bits), and - * A-law and mu-law (8 bits). Other formats are currently unsupported and - * cause an error. - * - * If this function succeeds, the pointer returned by it is equal to `spec` - * and the pointer to the audio data allocated by the function is written to - * `audio_buf` and its length in bytes to `audio_len`. The SDL_AudioSpec - * members `freq`, `channels`, and `format` are set to the values of the audio - * data in the buffer. The `samples` member is set to a sane default and all - * others are set to zero. - * - * It's necessary to use SDL_FreeWAV() to free the audio data returned in - * `audio_buf` when it is no longer used. - * - * Because of the underspecification of the .WAV format, there are many - * problematic files in the wild that cause issues with strict decoders. To - * provide compatibility with these files, this decoder is lenient in regards - * to the truncation of the file, the fact chunk, and the size of the RIFF - * chunk. The hints `SDL_HINT_WAVE_RIFF_CHUNK_SIZE`, - * `SDL_HINT_WAVE_TRUNCATION`, and `SDL_HINT_WAVE_FACT_CHUNK` can be used to - * tune the behavior of the loading process. - * - * Any file that is invalid (due to truncation, corruption, or wrong values in - * the headers), too big, or unsupported causes an error. Additionally, any - * critical I/O error from the data source will terminate the loading process - * with an error. The function returns NULL on error and in all cases (with - * the exception of `src` being NULL), an appropriate error message will be - * set. - * - * It is required that the data source supports seeking. - * - * Example: - * - * ```c - * SDL_LoadWAV_RW(SDL_RWFromFile("sample.wav", "rb"), 1, &spec, &buf, &len); - * ``` - * - * Note that the SDL_LoadWAV macro does this same thing for you, but in a less - * messy way: - * - * ```c - * SDL_LoadWAV("sample.wav", &spec, &buf, &len); - * ``` - * - * \param src The data source for the WAVE data - * \param freesrc If non-zero, SDL will _always_ free the data source - * \param spec An SDL_AudioSpec that will be filled in with the wave file's - * format details - * \param audio_buf A pointer filled with the audio data, allocated by the - * function. - * \param audio_len A pointer filled with the length of the audio data buffer - * in bytes - * \returns This function, if successfully called, returns `spec`, which will - * be filled with the audio data format of the wave source data. - * `audio_buf` will be filled with a pointer to an allocated buffer - * containing the audio data, and `audio_len` is filled with the - * length of that audio buffer in bytes. - * - * This function returns NULL if the .WAV file cannot be opened, uses - * an unknown data format, or is corrupt; call SDL_GetError() for - * more information. - * - * When the application is done with the data returned in - * `audio_buf`, it should call SDL_FreeWAV() to dispose of it. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FreeWAV - * \sa SDL_LoadWAV - */ -extern DECLSPEC SDL_AudioSpec *SDLCALL SDL_LoadWAV_RW(SDL_RWops * src, - int freesrc, - SDL_AudioSpec * spec, - Uint8 ** audio_buf, - Uint32 * audio_len); - -/** - * Loads a WAV from a file. - * Compatibility convenience function. - */ -#define SDL_LoadWAV(file, spec, audio_buf, audio_len) \ - SDL_LoadWAV_RW(SDL_RWFromFile(file, "rb"),1, spec,audio_buf,audio_len) - -/** - * Free data previously allocated with SDL_LoadWAV() or SDL_LoadWAV_RW(). - * - * After a WAVE file has been opened with SDL_LoadWAV() or SDL_LoadWAV_RW() - * its data can eventually be freed with SDL_FreeWAV(). It is safe to call - * this function with a NULL pointer. - * - * \param audio_buf a pointer to the buffer created by SDL_LoadWAV() or - * SDL_LoadWAV_RW() - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LoadWAV - * \sa SDL_LoadWAV_RW - */ -extern DECLSPEC void SDLCALL SDL_FreeWAV(Uint8 * audio_buf); - -/** - * Initialize an SDL_AudioCVT structure for conversion. - * - * Before an SDL_AudioCVT structure can be used to convert audio data it must - * be initialized with source and destination information. - * - * This function will zero out every field of the SDL_AudioCVT, so it must be - * called before the application fills in the final buffer information. - * - * Once this function has returned successfully, and reported that a - * conversion is necessary, the application fills in the rest of the fields in - * SDL_AudioCVT, now that it knows how large a buffer it needs to allocate, - * and then can call SDL_ConvertAudio() to complete the conversion. - * - * \param cvt an SDL_AudioCVT structure filled in with audio conversion - * information - * \param src_format the source format of the audio data; for more info see - * SDL_AudioFormat - * \param src_channels the number of channels in the source - * \param src_rate the frequency (sample-frames-per-second) of the source - * \param dst_format the destination format of the audio data; for more info - * see SDL_AudioFormat - * \param dst_channels the number of channels in the destination - * \param dst_rate the frequency (sample-frames-per-second) of the destination - * \returns 1 if the audio filter is prepared, 0 if no conversion is needed, - * or a negative error code on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ConvertAudio - */ -extern DECLSPEC int SDLCALL SDL_BuildAudioCVT(SDL_AudioCVT * cvt, - SDL_AudioFormat src_format, - Uint8 src_channels, - int src_rate, - SDL_AudioFormat dst_format, - Uint8 dst_channels, - int dst_rate); - -/** - * Convert audio data to a desired audio format. - * - * This function does the actual audio data conversion, after the application - * has called SDL_BuildAudioCVT() to prepare the conversion information and - * then filled in the buffer details. - * - * Once the application has initialized the `cvt` structure using - * SDL_BuildAudioCVT(), allocated an audio buffer and filled it with audio - * data in the source format, this function will convert the buffer, in-place, - * to the desired format. - * - * The data conversion may go through several passes; any given pass may - * possibly temporarily increase the size of the data. For example, SDL might - * expand 16-bit data to 32 bits before resampling to a lower frequency, - * shrinking the data size after having grown it briefly. Since the supplied - * buffer will be both the source and destination, converting as necessary - * in-place, the application must allocate a buffer that will fully contain - * the data during its largest conversion pass. After SDL_BuildAudioCVT() - * returns, the application should set the `cvt->len` field to the size, in - * bytes, of the source data, and allocate a buffer that is `cvt->len * - * cvt->len_mult` bytes long for the `buf` field. - * - * The source data should be copied into this buffer before the call to - * SDL_ConvertAudio(). Upon successful return, this buffer will contain the - * converted audio, and `cvt->len_cvt` will be the size of the converted data, - * in bytes. Any bytes in the buffer past `cvt->len_cvt` are undefined once - * this function returns. - * - * \param cvt an SDL_AudioCVT structure that was previously set up by - * SDL_BuildAudioCVT(). - * \returns 0 if the conversion was completed successfully or a negative error - * code on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BuildAudioCVT - */ -extern DECLSPEC int SDLCALL SDL_ConvertAudio(SDL_AudioCVT * cvt); - -/* SDL_AudioStream is a new audio conversion interface. - The benefits vs SDL_AudioCVT: - - it can handle resampling data in chunks without generating - artifacts, when it doesn't have the complete buffer available. - - it can handle incoming data in any variable size. - - You push data as you have it, and pull it when you need it - */ -/* this is opaque to the outside world. */ -struct _SDL_AudioStream; -typedef struct _SDL_AudioStream SDL_AudioStream; - -/** - * Create a new audio stream. - * - * \param src_format The format of the source audio - * \param src_channels The number of channels of the source audio - * \param src_rate The sampling rate of the source audio - * \param dst_format The format of the desired audio output - * \param dst_channels The number of channels of the desired audio output - * \param dst_rate The sampling rate of the desired audio output - * \returns 0 on success, or -1 on error. - * - * \since This function is available since SDL 2.0.7. - * - * \sa SDL_AudioStreamPut - * \sa SDL_AudioStreamGet - * \sa SDL_AudioStreamAvailable - * \sa SDL_AudioStreamFlush - * \sa SDL_AudioStreamClear - * \sa SDL_FreeAudioStream - */ -extern DECLSPEC SDL_AudioStream * SDLCALL SDL_NewAudioStream(const SDL_AudioFormat src_format, - const Uint8 src_channels, - const int src_rate, - const SDL_AudioFormat dst_format, - const Uint8 dst_channels, - const int dst_rate); - -/** - * Add data to be converted/resampled to the stream. - * - * \param stream The stream the audio data is being added to - * \param buf A pointer to the audio data to add - * \param len The number of bytes to write to the stream - * \returns 0 on success, or -1 on error. - * - * \since This function is available since SDL 2.0.7. - * - * \sa SDL_NewAudioStream - * \sa SDL_AudioStreamGet - * \sa SDL_AudioStreamAvailable - * \sa SDL_AudioStreamFlush - * \sa SDL_AudioStreamClear - * \sa SDL_FreeAudioStream - */ -extern DECLSPEC int SDLCALL SDL_AudioStreamPut(SDL_AudioStream *stream, const void *buf, int len); - -/** - * Get converted/resampled data from the stream - * - * \param stream The stream the audio is being requested from - * \param buf A buffer to fill with audio data - * \param len The maximum number of bytes to fill - * \returns the number of bytes read from the stream, or -1 on error - * - * \since This function is available since SDL 2.0.7. - * - * \sa SDL_NewAudioStream - * \sa SDL_AudioStreamPut - * \sa SDL_AudioStreamAvailable - * \sa SDL_AudioStreamFlush - * \sa SDL_AudioStreamClear - * \sa SDL_FreeAudioStream - */ -extern DECLSPEC int SDLCALL SDL_AudioStreamGet(SDL_AudioStream *stream, void *buf, int len); - -/** - * Get the number of converted/resampled bytes available. - * - * The stream may be buffering data behind the scenes until it has enough to - * resample correctly, so this number might be lower than what you expect, or - * even be zero. Add more data or flush the stream if you need the data now. - * - * \since This function is available since SDL 2.0.7. - * - * \sa SDL_NewAudioStream - * \sa SDL_AudioStreamPut - * \sa SDL_AudioStreamGet - * \sa SDL_AudioStreamFlush - * \sa SDL_AudioStreamClear - * \sa SDL_FreeAudioStream - */ -extern DECLSPEC int SDLCALL SDL_AudioStreamAvailable(SDL_AudioStream *stream); - -/** - * Tell the stream that you're done sending data, and anything being buffered - * should be converted/resampled and made available immediately. - * - * It is legal to add more data to a stream after flushing, but there will be - * audio gaps in the output. Generally this is intended to signal the end of - * input, so the complete output becomes available. - * - * \since This function is available since SDL 2.0.7. - * - * \sa SDL_NewAudioStream - * \sa SDL_AudioStreamPut - * \sa SDL_AudioStreamGet - * \sa SDL_AudioStreamAvailable - * \sa SDL_AudioStreamClear - * \sa SDL_FreeAudioStream - */ -extern DECLSPEC int SDLCALL SDL_AudioStreamFlush(SDL_AudioStream *stream); - -/** - * Clear any pending data in the stream without converting it - * - * \since This function is available since SDL 2.0.7. - * - * \sa SDL_NewAudioStream - * \sa SDL_AudioStreamPut - * \sa SDL_AudioStreamGet - * \sa SDL_AudioStreamAvailable - * \sa SDL_AudioStreamFlush - * \sa SDL_FreeAudioStream - */ -extern DECLSPEC void SDLCALL SDL_AudioStreamClear(SDL_AudioStream *stream); - -/** - * Free an audio stream - * - * \since This function is available since SDL 2.0.7. - * - * \sa SDL_NewAudioStream - * \sa SDL_AudioStreamPut - * \sa SDL_AudioStreamGet - * \sa SDL_AudioStreamAvailable - * \sa SDL_AudioStreamFlush - * \sa SDL_AudioStreamClear - */ -extern DECLSPEC void SDLCALL SDL_FreeAudioStream(SDL_AudioStream *stream); - -#define SDL_MIX_MAXVOLUME 128 - -/** - * This function is a legacy means of mixing audio. - * - * This function is equivalent to calling... - * - * ```c - * SDL_MixAudioFormat(dst, src, format, len, volume); - * ``` - * - * ...where `format` is the obtained format of the audio device from the - * legacy SDL_OpenAudio() function. - * - * \param dst the destination for the mixed audio - * \param src the source audio buffer to be mixed - * \param len the length of the audio buffer in bytes - * \param volume ranges from 0 - 128, and should be set to SDL_MIX_MAXVOLUME - * for full audio volume - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_MixAudioFormat - */ -extern DECLSPEC void SDLCALL SDL_MixAudio(Uint8 * dst, const Uint8 * src, - Uint32 len, int volume); - -/** - * Mix audio data in a specified format. - * - * This takes an audio buffer `src` of `len` bytes of `format` data and mixes - * it into `dst`, performing addition, volume adjustment, and overflow - * clipping. The buffer pointed to by `dst` must also be `len` bytes of - * `format` data. - * - * This is provided for convenience -- you can mix your own audio data. - * - * Do not use this function for mixing together more than two streams of - * sample data. The output from repeated application of this function may be - * distorted by clipping, because there is no accumulator with greater range - * than the input (not to mention this being an inefficient way of doing it). - * - * It is a common misconception that this function is required to write audio - * data to an output stream in an audio callback. While you can do that, - * SDL_MixAudioFormat() is really only needed when you're mixing a single - * audio stream with a volume adjustment. - * - * \param dst the destination for the mixed audio - * \param src the source audio buffer to be mixed - * \param format the SDL_AudioFormat structure representing the desired audio - * format - * \param len the length of the audio buffer in bytes - * \param volume ranges from 0 - 128, and should be set to SDL_MIX_MAXVOLUME - * for full audio volume - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC void SDLCALL SDL_MixAudioFormat(Uint8 * dst, - const Uint8 * src, - SDL_AudioFormat format, - Uint32 len, int volume); - -/** - * Queue more audio on non-callback devices. - * - * If you are looking to retrieve queued audio from a non-callback capture - * device, you want SDL_DequeueAudio() instead. SDL_QueueAudio() will return - * -1 to signify an error if you use it with capture devices. - * - * SDL offers two ways to feed audio to the device: you can either supply a - * callback that SDL triggers with some frequency to obtain more audio (pull - * method), or you can supply no callback, and then SDL will expect you to - * supply data at regular intervals (push method) with this function. - * - * There are no limits on the amount of data you can queue, short of - * exhaustion of address space. Queued data will drain to the device as - * necessary without further intervention from you. If the device needs audio - * but there is not enough queued, it will play silence to make up the - * difference. This means you will have skips in your audio playback if you - * aren't routinely queueing sufficient data. - * - * This function copies the supplied data, so you are safe to free it when the - * function returns. This function is thread-safe, but queueing to the same - * device from two threads at once does not promise which buffer will be - * queued first. - * - * You may not queue audio on a device that is using an application-supplied - * callback; doing so returns an error. You have to use the audio callback or - * queue audio with this function, but not both. - * - * You should not call SDL_LockAudio() on the device before queueing; SDL - * handles locking internally for this function. - * - * Note that SDL2 does not support planar audio. You will need to resample - * from planar audio formats into a non-planar one (see SDL_AudioFormat) - * before queuing audio. - * - * \param dev the device ID to which we will queue audio - * \param data the data to queue to the device for later playback - * \param len the number of bytes (not samples!) to which `data` points - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_ClearQueuedAudio - * \sa SDL_GetQueuedAudioSize - */ -extern DECLSPEC int SDLCALL SDL_QueueAudio(SDL_AudioDeviceID dev, const void *data, Uint32 len); - -/** - * Dequeue more audio on non-callback devices. - * - * If you are looking to queue audio for output on a non-callback playback - * device, you want SDL_QueueAudio() instead. SDL_DequeueAudio() will always - * return 0 if you use it with playback devices. - * - * SDL offers two ways to retrieve audio from a capture device: you can either - * supply a callback that SDL triggers with some frequency as the device - * records more audio data, (push method), or you can supply no callback, and - * then SDL will expect you to retrieve data at regular intervals (pull - * method) with this function. - * - * There are no limits on the amount of data you can queue, short of - * exhaustion of address space. Data from the device will keep queuing as - * necessary without further intervention from you. This means you will - * eventually run out of memory if you aren't routinely dequeueing data. - * - * Capture devices will not queue data when paused; if you are expecting to - * not need captured audio for some length of time, use SDL_PauseAudioDevice() - * to stop the capture device from queueing more data. This can be useful - * during, say, level loading times. When unpaused, capture devices will start - * queueing data from that point, having flushed any capturable data available - * while paused. - * - * This function is thread-safe, but dequeueing from the same device from two - * threads at once does not promise which thread will dequeue data first. - * - * You may not dequeue audio from a device that is using an - * application-supplied callback; doing so returns an error. You have to use - * the audio callback, or dequeue audio with this function, but not both. - * - * You should not call SDL_LockAudio() on the device before dequeueing; SDL - * handles locking internally for this function. - * - * \param dev the device ID from which we will dequeue audio - * \param data a pointer into where audio data should be copied - * \param len the number of bytes (not samples!) to which (data) points - * \returns the number of bytes dequeued, which could be less than requested; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_ClearQueuedAudio - * \sa SDL_GetQueuedAudioSize - */ -extern DECLSPEC Uint32 SDLCALL SDL_DequeueAudio(SDL_AudioDeviceID dev, void *data, Uint32 len); - -/** - * Get the number of bytes of still-queued audio. - * - * For playback devices: this is the number of bytes that have been queued for - * playback with SDL_QueueAudio(), but have not yet been sent to the hardware. - * - * Once we've sent it to the hardware, this function can not decide the exact - * byte boundary of what has been played. It's possible that we just gave the - * hardware several kilobytes right before you called this function, but it - * hasn't played any of it yet, or maybe half of it, etc. - * - * For capture devices, this is the number of bytes that have been captured by - * the device and are waiting for you to dequeue. This number may grow at any - * time, so this only informs of the lower-bound of available data. - * - * You may not queue or dequeue audio on a device that is using an - * application-supplied callback; calling this function on such a device - * always returns 0. You have to use the audio callback or queue audio, but - * not both. - * - * You should not call SDL_LockAudio() on the device before querying; SDL - * handles locking internally for this function. - * - * \param dev the device ID of which we will query queued audio size - * \returns the number of bytes (not samples!) of queued audio. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_ClearQueuedAudio - * \sa SDL_QueueAudio - * \sa SDL_DequeueAudio - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetQueuedAudioSize(SDL_AudioDeviceID dev); - -/** - * Drop any queued audio data waiting to be sent to the hardware. - * - * Immediately after this call, SDL_GetQueuedAudioSize() will return 0. For - * output devices, the hardware will start playing silence if more audio isn't - * queued. For capture devices, the hardware will start filling the empty - * queue with new data if the capture device isn't paused. - * - * This will not prevent playback of queued audio that's already been sent to - * the hardware, as we can not undo that, so expect there to be some fraction - * of a second of audio that might still be heard. This can be useful if you - * want to, say, drop any pending music or any unprocessed microphone input - * during a level change in your game. - * - * You may not queue or dequeue audio on a device that is using an - * application-supplied callback; calling this function on such a device - * always returns 0. You have to use the audio callback or queue audio, but - * not both. - * - * You should not call SDL_LockAudio() on the device before clearing the - * queue; SDL handles locking internally for this function. - * - * This function always succeeds and thus returns void. - * - * \param dev the device ID of which to clear the audio queue - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_GetQueuedAudioSize - * \sa SDL_QueueAudio - * \sa SDL_DequeueAudio - */ -extern DECLSPEC void SDLCALL SDL_ClearQueuedAudio(SDL_AudioDeviceID dev); - - -/** - * \name Audio lock functions - * - * The lock manipulated by these functions protects the callback function. - * During a SDL_LockAudio()/SDL_UnlockAudio() pair, you can be guaranteed that - * the callback function is not running. Do not call these from the callback - * function or you will cause deadlock. - */ -/* @{ */ - -/** - * This function is a legacy means of locking the audio device. - * - * New programs might want to use SDL_LockAudioDevice() instead. This function - * is equivalent to calling... - * - * ```c - * SDL_LockAudioDevice(1); - * ``` - * - * ...and is only useful if you used the legacy SDL_OpenAudio() function. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LockAudioDevice - * \sa SDL_UnlockAudio - * \sa SDL_UnlockAudioDevice - */ -extern DECLSPEC void SDLCALL SDL_LockAudio(void); - -/** - * Use this function to lock out the audio callback function for a specified - * device. - * - * The lock manipulated by these functions protects the audio callback - * function specified in SDL_OpenAudioDevice(). During a - * SDL_LockAudioDevice()/SDL_UnlockAudioDevice() pair, you can be guaranteed - * that the callback function for that device is not running, even if the - * device is not paused. While a device is locked, any other unpaused, - * unlocked devices may still run their callbacks. - * - * Calling this function from inside your audio callback is unnecessary. SDL - * obtains this lock before calling your function, and releases it when the - * function returns. - * - * You should not hold the lock longer than absolutely necessary. If you hold - * it too long, you'll experience dropouts in your audio playback. Ideally, - * your application locks the device, sets a few variables and unlocks again. - * Do not do heavy work while holding the lock for a device. - * - * It is safe to lock the audio device multiple times, as long as you unlock - * it an equivalent number of times. The callback will not run until the - * device has been unlocked completely in this way. If your application fails - * to unlock the device appropriately, your callback will never run, you might - * hear repeating bursts of audio, and SDL_CloseAudioDevice() will probably - * deadlock. - * - * Internally, the audio device lock is a mutex; if you lock from two threads - * at once, not only will you block the audio callback, you'll block the other - * thread. - * - * \param dev the ID of the device to be locked - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_UnlockAudioDevice - */ -extern DECLSPEC void SDLCALL SDL_LockAudioDevice(SDL_AudioDeviceID dev); - -/** - * This function is a legacy means of unlocking the audio device. - * - * New programs might want to use SDL_UnlockAudioDevice() instead. This - * function is equivalent to calling... - * - * ```c - * SDL_UnlockAudioDevice(1); - * ``` - * - * ...and is only useful if you used the legacy SDL_OpenAudio() function. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LockAudio - * \sa SDL_UnlockAudioDevice - */ -extern DECLSPEC void SDLCALL SDL_UnlockAudio(void); - -/** - * Use this function to unlock the audio callback function for a specified - * device. - * - * This function should be paired with a previous SDL_LockAudioDevice() call. - * - * \param dev the ID of the device to be unlocked - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LockAudioDevice - */ -extern DECLSPEC void SDLCALL SDL_UnlockAudioDevice(SDL_AudioDeviceID dev); -/* @} *//* Audio lock functions */ - -/** - * This function is a legacy means of closing the audio device. - * - * This function is equivalent to calling... - * - * ```c - * SDL_CloseAudioDevice(1); - * ``` - * - * ...and is only useful if you used the legacy SDL_OpenAudio() function. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_OpenAudio - */ -extern DECLSPEC void SDLCALL SDL_CloseAudio(void); - -/** - * Use this function to shut down audio processing and close the audio device. - * - * The application should close open audio devices once they are no longer - * needed. Calling this function will wait until the device's audio callback - * is not running, release the audio hardware and then clean up internal - * state. No further audio will play from this device once this function - * returns. - * - * This function may block briefly while pending audio data is played by the - * hardware, so that applications don't drop the last buffer of data they - * supplied. - * - * The device ID is invalid as soon as the device is closed, and is eligible - * for reuse in a new SDL_OpenAudioDevice() call immediately. - * - * \param dev an audio device previously opened with SDL_OpenAudioDevice() - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_OpenAudioDevice - */ -extern DECLSPEC void SDLCALL SDL_CloseAudioDevice(SDL_AudioDeviceID dev); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_audio_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_clipboard.h b/release/SDL2.framework/Versions/A/Headers/SDL_clipboard.h deleted file mode 100644 index 6a287b5..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_clipboard.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_clipboard.h - * - * Include file for SDL clipboard handling - */ - -#ifndef SDL_clipboard_h_ -#define SDL_clipboard_h_ - -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* Function prototypes */ - -/** - * Put UTF-8 text into the clipboard. - * - * \param text the text to store in the clipboard - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetClipboardText - * \sa SDL_HasClipboardText - */ -extern DECLSPEC int SDLCALL SDL_SetClipboardText(const char *text); - -/** - * Get UTF-8 text from the clipboard, which must be freed with SDL_free(). - * - * This functions returns empty string if there was not enough memory left for - * a copy of the clipboard's content. - * - * \returns the clipboard text on success or an empty string on failure; call - * SDL_GetError() for more information. Caller must call SDL_free() - * on the returned pointer when done with it (even if there was an - * error). - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HasClipboardText - * \sa SDL_SetClipboardText - */ -extern DECLSPEC char * SDLCALL SDL_GetClipboardText(void); - -/** - * Query whether the clipboard exists and contains a non-empty text string. - * - * \returns SDL_TRUE if the clipboard has text, or SDL_FALSE if it does not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetClipboardText - * \sa SDL_SetClipboardText - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasClipboardText(void); - -/** - * Put UTF-8 text into the primary selection. - * - * \param text the text to store in the primary selection - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.26.0. - * - * \sa SDL_GetPrimarySelectionText - * \sa SDL_HasPrimarySelectionText - */ -extern DECLSPEC int SDLCALL SDL_SetPrimarySelectionText(const char *text); - -/** - * Get UTF-8 text from the primary selection, which must be freed with - * SDL_free(). - * - * This functions returns empty string if there was not enough memory left for - * a copy of the primary selection's content. - * - * \returns the primary selection text on success or an empty string on - * failure; call SDL_GetError() for more information. Caller must - * call SDL_free() on the returned pointer when done with it (even if - * there was an error). - * - * \since This function is available since SDL 2.26.0. - * - * \sa SDL_HasPrimarySelectionText - * \sa SDL_SetPrimarySelectionText - */ -extern DECLSPEC char * SDLCALL SDL_GetPrimarySelectionText(void); - -/** - * Query whether the primary selection exists and contains a non-empty text - * string. - * - * \returns SDL_TRUE if the primary selection has text, or SDL_FALSE if it - * does not. - * - * \since This function is available since SDL 2.26.0. - * - * \sa SDL_GetPrimarySelectionText - * \sa SDL_SetPrimarySelectionText - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasPrimarySelectionText(void); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_clipboard_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_config.h b/release/SDL2.framework/Versions/A/Headers/SDL_config.h deleted file mode 100644 index a168a00..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_config.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_config_h_ -#define SDL_config_h_ - -#include - -/** - * \file SDL_config.h - */ - -/* Add any platform that doesn't build using the configure system. */ -#if defined(__WIN32__) -#include -#elif defined(__WINRT__) -#include -#elif defined(__WINGDK__) -#include -#elif defined(__XBOXONE__) || defined(__XBOXSERIES__) -#include -#elif defined(__MACOSX__) -#include -#elif defined(__IPHONEOS__) -#include -#elif defined(__ANDROID__) -#include -#elif defined(__OS2__) -#include -#elif defined(__EMSCRIPTEN__) -#include -#elif defined(__NGAGE__) -#include -#else -/* This is a minimal configuration just to get SDL running on new platforms. */ -#include -#endif /* platform config */ - -#ifdef USING_GENERATED_CONFIG_H -#error Wrong SDL_config.h, check your include path? -#endif - -#endif /* SDL_config_h_ */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_config_macosx.h b/release/SDL2.framework/Versions/A/Headers/SDL_config_macosx.h deleted file mode 100644 index 2f36d7a..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_config_macosx.h +++ /dev/null @@ -1,277 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_config_macosx_h_ -#define SDL_config_macosx_h_ -#define SDL_config_h_ - -#include - -/* This gets us MAC_OS_X_VERSION_MIN_REQUIRED... */ -#include - -/* This is a set of defines to configure the SDL features */ - -#ifdef __LP64__ - #define SIZEOF_VOIDP 8 -#else - #define SIZEOF_VOIDP 4 -#endif - -/* Useful headers */ -#define STDC_HEADERS 1 -#define HAVE_ALLOCA_H 1 -#define HAVE_CTYPE_H 1 -#define HAVE_FLOAT_H 1 -#define HAVE_INTTYPES_H 1 -#define HAVE_LIMITS_H 1 -#define HAVE_MATH_H 1 -#define HAVE_SIGNAL_H 1 -#define HAVE_STDINT_H 1 -#define HAVE_STDIO_H 1 -#define HAVE_STRING_H 1 -#define HAVE_SYS_TYPES_H 1 -#define HAVE_LIBUNWIND_H 1 - -/* C library functions */ -#define HAVE_DLOPEN 1 -#define HAVE_MALLOC 1 -#define HAVE_CALLOC 1 -#define HAVE_REALLOC 1 -#define HAVE_FREE 1 -#define HAVE_ALLOCA 1 -#define HAVE_GETENV 1 -#define HAVE_SETENV 1 -#define HAVE_PUTENV 1 -#define HAVE_UNSETENV 1 -#define HAVE_QSORT 1 -#define HAVE_BSEARCH 1 -#define HAVE_ABS 1 -#define HAVE_BCOPY 1 -#define HAVE_MEMSET 1 -#define HAVE_MEMCPY 1 -#define HAVE_MEMMOVE 1 -#define HAVE_MEMCMP 1 -#define HAVE_STRLEN 1 -#define HAVE_STRLCPY 1 -#define HAVE_STRLCAT 1 -#define HAVE_STRCHR 1 -#define HAVE_STRRCHR 1 -#define HAVE_STRSTR 1 -#define HAVE_STRTOK_R 1 -#define HAVE_STRTOL 1 -#define HAVE_STRTOUL 1 -#define HAVE_STRTOLL 1 -#define HAVE_STRTOULL 1 -#define HAVE_STRTOD 1 -#define HAVE_ATOI 1 -#define HAVE_ATOF 1 -#define HAVE_STRCMP 1 -#define HAVE_STRNCMP 1 -#define HAVE_STRCASECMP 1 -#define HAVE_STRNCASECMP 1 -#define HAVE_STRCASESTR 1 -#define HAVE_VSSCANF 1 -#define HAVE_VSNPRINTF 1 -#define HAVE_M_PI 1 -#define HAVE_ACOS 1 -#define HAVE_ACOSF 1 -#define HAVE_ASIN 1 -#define HAVE_ASINF 1 -#define HAVE_ATAN 1 -#define HAVE_ATANF 1 -#define HAVE_ATAN2 1 -#define HAVE_ATAN2F 1 -#define HAVE_CEIL 1 -#define HAVE_CEILF 1 -#define HAVE_COPYSIGN 1 -#define HAVE_COPYSIGNF 1 -#define HAVE_COS 1 -#define HAVE_COSF 1 -#define HAVE_EXP 1 -#define HAVE_EXPF 1 -#define HAVE_FABS 1 -#define HAVE_FABSF 1 -#define HAVE_FLOOR 1 -#define HAVE_FLOORF 1 -#define HAVE_FMOD 1 -#define HAVE_FMODF 1 -#define HAVE_LOG 1 -#define HAVE_LOGF 1 -#define HAVE_LOG10 1 -#define HAVE_LOG10F 1 -#define HAVE_LROUND 1 -#define HAVE_LROUNDF 1 -#define HAVE_POW 1 -#define HAVE_POWF 1 -#define HAVE_ROUND 1 -#define HAVE_ROUNDF 1 -#define HAVE_SCALBN 1 -#define HAVE_SCALBNF 1 -#define HAVE_SIN 1 -#define HAVE_SINF 1 -#define HAVE_SQRT 1 -#define HAVE_SQRTF 1 -#define HAVE_TAN 1 -#define HAVE_TANF 1 -#define HAVE_TRUNC 1 -#define HAVE_TRUNCF 1 -#define HAVE_SIGACTION 1 -#define HAVE_SETJMP 1 -#define HAVE_NANOSLEEP 1 -#define HAVE_SYSCONF 1 -#define HAVE_SYSCTLBYNAME 1 - -#if defined(__has_include) && (defined(__i386__) || defined(__x86_64)) -# if __has_include() -# define HAVE_IMMINTRIN_H 1 -# endif -#endif - -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= 1070) -#define HAVE_O_CLOEXEC 1 -#endif - -#define HAVE_GCC_ATOMICS 1 - -/* Enable various audio drivers */ -#define SDL_AUDIO_DRIVER_COREAUDIO 1 -#define SDL_AUDIO_DRIVER_DISK 1 -#define SDL_AUDIO_DRIVER_DUMMY 1 - -/* Enable various input drivers */ -#define SDL_JOYSTICK_HIDAPI 1 -#define SDL_JOYSTICK_IOKIT 1 -#define SDL_JOYSTICK_VIRTUAL 1 -#define SDL_HAPTIC_IOKIT 1 - -/* The MFI controller support requires ARC Objective C runtime */ -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080 && !defined(__i386__) -#define SDL_JOYSTICK_MFI 1 -#endif - -/* Enable the dummy sensor driver */ -#define SDL_SENSOR_DUMMY 1 - -/* Enable various shared object loading systems */ -#define SDL_LOADSO_DLOPEN 1 - -/* Enable various threading systems */ -#define SDL_THREAD_PTHREAD 1 -#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1 - -/* Enable various timer systems */ -#define SDL_TIMER_UNIX 1 - -/* Enable various video drivers */ -#define SDL_VIDEO_DRIVER_COCOA 1 -#define SDL_VIDEO_DRIVER_DUMMY 1 -#undef SDL_VIDEO_DRIVER_X11 -#define SDL_VIDEO_DRIVER_X11_DYNAMIC "/opt/X11/lib/libX11.6.dylib" -#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/opt/X11/lib/libXext.6.dylib" -#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "/opt/X11/lib/libXi.6.dylib" -#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/opt/X11/lib/libXrandr.2.dylib" -#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "/opt/X11/lib/libXss.1.dylib" -#define SDL_VIDEO_DRIVER_X11_XDBE 1 -#define SDL_VIDEO_DRIVER_X11_XRANDR 1 -#define SDL_VIDEO_DRIVER_X11_XSCRNSAVER 1 -#define SDL_VIDEO_DRIVER_X11_XSHAPE 1 -#define SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM 1 - -#ifdef MAC_OS_X_VERSION_10_8 -/* - * No matter the versions targeted, this is the 10.8 or later SDK, so you have - * to use the external Xquartz, which is a more modern Xlib. Previous SDKs - * used an older Xlib. - */ -#define SDL_VIDEO_DRIVER_X11_XINPUT2 1 -#define SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS 1 -#endif - -#ifndef SDL_VIDEO_RENDER_OGL -#define SDL_VIDEO_RENDER_OGL 1 -#endif - -#ifndef SDL_VIDEO_RENDER_OGL_ES2 -#define SDL_VIDEO_RENDER_OGL_ES2 1 -#endif - -/* Metal only supported on 64-bit architectures with 10.11+ */ -#if TARGET_RT_64_BIT && (MAC_OS_X_VERSION_MAX_ALLOWED >= 101100) -#define SDL_PLATFORM_SUPPORTS_METAL 1 -#else -#define SDL_PLATFORM_SUPPORTS_METAL 0 -#endif - -#ifndef SDL_VIDEO_RENDER_METAL -#if SDL_PLATFORM_SUPPORTS_METAL -#define SDL_VIDEO_RENDER_METAL 1 -#else -#define SDL_VIDEO_RENDER_METAL 0 -#endif -#endif - -/* Enable OpenGL support */ -#ifndef SDL_VIDEO_OPENGL -#define SDL_VIDEO_OPENGL 1 -#endif -#ifndef SDL_VIDEO_OPENGL_ES2 -#define SDL_VIDEO_OPENGL_ES2 1 -#endif -#ifndef SDL_VIDEO_OPENGL_EGL -#define SDL_VIDEO_OPENGL_EGL 1 -#endif -#ifndef SDL_VIDEO_OPENGL_CGL -#define SDL_VIDEO_OPENGL_CGL 1 -#endif -#ifndef SDL_VIDEO_OPENGL_GLX -#define SDL_VIDEO_OPENGL_GLX 1 -#endif - -/* Enable Vulkan and Metal support */ -#ifndef SDL_VIDEO_VULKAN -#if SDL_PLATFORM_SUPPORTS_METAL -#define SDL_VIDEO_VULKAN 1 -#else -#define SDL_VIDEO_VULKAN 0 -#endif -#endif - -#ifndef SDL_VIDEO_METAL -#if SDL_PLATFORM_SUPPORTS_METAL -#define SDL_VIDEO_METAL 1 -#else -#define SDL_VIDEO_METAL 0 -#endif -#endif - -/* Enable system power support */ -#define SDL_POWER_MACOSX 1 - -/* enable filesystem support */ -#define SDL_FILESYSTEM_COCOA 1 - -/* Enable assembly routines */ -#ifdef __ppc__ -#define SDL_ALTIVEC_BLITTERS 1 -#endif - -#endif /* SDL_config_macosx_h_ */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_cpuinfo.h b/release/SDL2.framework/Versions/A/Headers/SDL_cpuinfo.h deleted file mode 100644 index 900224d..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_cpuinfo.h +++ /dev/null @@ -1,594 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_cpuinfo.h - * - * CPU feature detection for SDL. - */ - -#ifndef SDL_cpuinfo_h_ -#define SDL_cpuinfo_h_ - -#include - -/* Need to do this here because intrin.h has C++ code in it */ -/* Visual Studio 2005 has a bug where intrin.h conflicts with winnt.h */ -#if defined(_MSC_VER) && (_MSC_VER >= 1500) && (defined(_M_IX86) || defined(_M_X64)) -#ifdef __clang__ -/* As of Clang 11, '_m_prefetchw' is conflicting with the winnt.h's version, - so we define the needed '_m_prefetch' here as a pseudo-header, until the issue is fixed. */ - -#ifndef __PRFCHWINTRIN_H -#define __PRFCHWINTRIN_H - -static __inline__ void __attribute__((__always_inline__, __nodebug__)) -_m_prefetch(void *__P) -{ - __builtin_prefetch (__P, 0, 3 /* _MM_HINT_T0 */); -} - -#endif /* __PRFCHWINTRIN_H */ -#endif /* __clang__ */ -#include -#ifndef _WIN64 -#ifndef __MMX__ -#define __MMX__ -#endif -#ifndef __3dNOW__ -#define __3dNOW__ -#endif -#endif -#ifndef __SSE__ -#define __SSE__ -#endif -#ifndef __SSE2__ -#define __SSE2__ -#endif -#ifndef __SSE3__ -#define __SSE3__ -#endif -#elif defined(__MINGW64_VERSION_MAJOR) -#include -#if !defined(SDL_DISABLE_ARM_NEON_H) && defined(__ARM_NEON) -# include -#endif -#else -/* altivec.h redefining bool causes a number of problems, see bugs 3993 and 4392, so you need to explicitly define SDL_ENABLE_ALTIVEC_H to have it included. */ -#if defined(HAVE_ALTIVEC_H) && defined(__ALTIVEC__) && !defined(__APPLE_ALTIVEC__) && defined(SDL_ENABLE_ALTIVEC_H) -#include -#endif -#if !defined(SDL_DISABLE_ARM_NEON_H) -# if defined(__ARM_NEON) -# include -# elif defined(__WINDOWS__) || defined(__WINRT__) || defined(__GDK__) -/* Visual Studio doesn't define __ARM_ARCH, but _M_ARM (if set, always 7), and _M_ARM64 (if set, always 1). */ -# if defined(_M_ARM) -# include -# include -# define __ARM_NEON 1 /* Set __ARM_NEON so that it can be used elsewhere, at compile time */ -# endif -# if defined (_M_ARM64) -# include -# include -# define __ARM_NEON 1 /* Set __ARM_NEON so that it can be used elsewhere, at compile time */ -# define __ARM_ARCH 8 -# endif -# endif -#endif -#endif /* compiler version */ - -#if defined(__3dNOW__) && !defined(SDL_DISABLE_MM3DNOW_H) -#include -#endif -#if defined(__loongarch_sx) && !defined(SDL_DISABLE_LSX_H) -#include -#define __LSX__ -#endif -#if defined(__loongarch_asx) && !defined(SDL_DISABLE_LASX_H) -#include -#define __LASX__ -#endif -#if defined(HAVE_IMMINTRIN_H) && !defined(SDL_DISABLE_IMMINTRIN_H) -#include -#else -#if defined(__MMX__) && !defined(SDL_DISABLE_MMINTRIN_H) -#include -#endif -#if defined(__SSE__) && !defined(SDL_DISABLE_XMMINTRIN_H) -#include -#endif -#if defined(__SSE2__) && !defined(SDL_DISABLE_EMMINTRIN_H) -#include -#endif -#if defined(__SSE3__) && !defined(SDL_DISABLE_PMMINTRIN_H) -#include -#endif -#endif /* HAVE_IMMINTRIN_H */ - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* This is a guess for the cacheline size used for padding. - * Most x86 processors have a 64 byte cache line. - * The 64-bit PowerPC processors have a 128 byte cache line. - * We'll use the larger value to be generally safe. - */ -#define SDL_CACHELINE_SIZE 128 - -/** - * Get the number of CPU cores available. - * - * \returns the total number of logical CPU cores. On CPUs that include - * technologies such as hyperthreading, the number of logical cores - * may be more than the number of physical cores. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_GetCPUCount(void); - -/** - * Determine the L1 cache line size of the CPU. - * - * This is useful for determining multi-threaded structure padding or SIMD - * prefetch sizes. - * - * \returns the L1 cache line size of the CPU, in bytes. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_GetCPUCacheLineSize(void); - -/** - * Determine whether the CPU has the RDTSC instruction. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has the RDTSC instruction or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasRDTSC(void); - -/** - * Determine whether the CPU has AltiVec features. - * - * This always returns false on CPUs that aren't using PowerPC instruction - * sets. - * - * \returns SDL_TRUE if the CPU has AltiVec features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasAltiVec(void); - -/** - * Determine whether the CPU has MMX features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has MMX features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasMMX(void); - -/** - * Determine whether the CPU has 3DNow! features. - * - * This always returns false on CPUs that aren't using AMD instruction sets. - * - * \returns SDL_TRUE if the CPU has 3DNow! features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_Has3DNow(void); - -/** - * Determine whether the CPU has SSE features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has SSE features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE(void); - -/** - * Determine whether the CPU has SSE2 features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has SSE2 features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE2(void); - -/** - * Determine whether the CPU has SSE3 features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has SSE3 features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE3(void); - -/** - * Determine whether the CPU has SSE4.1 features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has SSE4.1 features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE41(void); - -/** - * Determine whether the CPU has SSE4.2 features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has SSE4.2 features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE42(void); - -/** - * Determine whether the CPU has AVX features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has AVX features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX2 - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX(void); - -/** - * Determine whether the CPU has AVX2 features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has AVX2 features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_Has3DNow - * \sa SDL_HasAltiVec - * \sa SDL_HasAVX - * \sa SDL_HasMMX - * \sa SDL_HasRDTSC - * \sa SDL_HasSSE - * \sa SDL_HasSSE2 - * \sa SDL_HasSSE3 - * \sa SDL_HasSSE41 - * \sa SDL_HasSSE42 - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX2(void); - -/** - * Determine whether the CPU has AVX-512F (foundation) features. - * - * This always returns false on CPUs that aren't using Intel instruction sets. - * - * \returns SDL_TRUE if the CPU has AVX-512F features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.9. - * - * \sa SDL_HasAVX - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX512F(void); - -/** - * Determine whether the CPU has ARM SIMD (ARMv6) features. - * - * This is different from ARM NEON, which is a different instruction set. - * - * This always returns false on CPUs that aren't using ARM instruction sets. - * - * \returns SDL_TRUE if the CPU has ARM SIMD features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.12. - * - * \sa SDL_HasNEON - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasARMSIMD(void); - -/** - * Determine whether the CPU has NEON (ARM SIMD) features. - * - * This always returns false on CPUs that aren't using ARM instruction sets. - * - * \returns SDL_TRUE if the CPU has ARM NEON features or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasNEON(void); - -/** - * Determine whether the CPU has LSX (LOONGARCH SIMD) features. - * - * This always returns false on CPUs that aren't using LOONGARCH instruction - * sets. - * - * \returns SDL_TRUE if the CPU has LOONGARCH LSX features or SDL_FALSE if - * not. - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasLSX(void); - -/** - * Determine whether the CPU has LASX (LOONGARCH SIMD) features. - * - * This always returns false on CPUs that aren't using LOONGARCH instruction - * sets. - * - * \returns SDL_TRUE if the CPU has LOONGARCH LASX features or SDL_FALSE if - * not. - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasLASX(void); - -/** - * Get the amount of RAM configured in the system. - * - * \returns the amount of RAM configured in the system in MiB. - * - * \since This function is available since SDL 2.0.1. - */ -extern DECLSPEC int SDLCALL SDL_GetSystemRAM(void); - -/** - * Report the alignment this system needs for SIMD allocations. - * - * This will return the minimum number of bytes to which a pointer must be - * aligned to be compatible with SIMD instructions on the current machine. For - * example, if the machine supports SSE only, it will return 16, but if it - * supports AVX-512F, it'll return 64 (etc). This only reports values for - * instruction sets SDL knows about, so if your SDL build doesn't have - * SDL_HasAVX512F(), then it might return 16 for the SSE support it sees and - * not 64 for the AVX-512 instructions that exist but SDL doesn't know about. - * Plan accordingly. - * - * \returns the alignment in bytes needed for available, known SIMD - * instructions. - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC size_t SDLCALL SDL_SIMDGetAlignment(void); - -/** - * Allocate memory in a SIMD-friendly way. - * - * This will allocate a block of memory that is suitable for use with SIMD - * instructions. Specifically, it will be properly aligned and padded for the - * system's supported vector instructions. - * - * The memory returned will be padded such that it is safe to read or write an - * incomplete vector at the end of the memory block. This can be useful so you - * don't have to drop back to a scalar fallback at the end of your SIMD - * processing loop to deal with the final elements without overflowing the - * allocated buffer. - * - * You must free this memory with SDL_FreeSIMD(), not free() or SDL_free() or - * delete[], etc. - * - * Note that SDL will only deal with SIMD instruction sets it is aware of; for - * example, SDL 2.0.8 knows that SSE wants 16-byte vectors (SDL_HasSSE()), and - * AVX2 wants 32 bytes (SDL_HasAVX2()), but doesn't know that AVX-512 wants - * 64. To be clear: if you can't decide to use an instruction set with an - * SDL_Has*() function, don't use that instruction set with memory allocated - * through here. - * - * SDL_AllocSIMD(0) will return a non-NULL pointer, assuming the system isn't - * out of memory, but you are not allowed to dereference it (because you only - * own zero bytes of that buffer). - * - * \param len The length, in bytes, of the block to allocate. The actual - * allocated block might be larger due to padding, etc. - * \returns a pointer to the newly-allocated block, NULL if out of memory. - * - * \since This function is available since SDL 2.0.10. - * - * \sa SDL_SIMDGetAlignment - * \sa SDL_SIMDRealloc - * \sa SDL_SIMDFree - */ -extern DECLSPEC void * SDLCALL SDL_SIMDAlloc(const size_t len); - -/** - * Reallocate memory obtained from SDL_SIMDAlloc - * - * It is not valid to use this function on a pointer from anything but - * SDL_SIMDAlloc(). It can't be used on pointers from malloc, realloc, - * SDL_malloc, memalign, new[], etc. - * - * \param mem The pointer obtained from SDL_SIMDAlloc. This function also - * accepts NULL, at which point this function is the same as - * calling SDL_SIMDAlloc with a NULL pointer. - * \param len The length, in bytes, of the block to allocated. The actual - * allocated block might be larger due to padding, etc. Passing 0 - * will return a non-NULL pointer, assuming the system isn't out of - * memory. - * \returns a pointer to the newly-reallocated block, NULL if out of memory. - * - * \since This function is available since SDL 2.0.14. - * - * \sa SDL_SIMDGetAlignment - * \sa SDL_SIMDAlloc - * \sa SDL_SIMDFree - */ -extern DECLSPEC void * SDLCALL SDL_SIMDRealloc(void *mem, const size_t len); - -/** - * Deallocate memory obtained from SDL_SIMDAlloc - * - * It is not valid to use this function on a pointer from anything but - * SDL_SIMDAlloc() or SDL_SIMDRealloc(). It can't be used on pointers from - * malloc, realloc, SDL_malloc, memalign, new[], etc. - * - * However, SDL_SIMDFree(NULL) is a legal no-op. - * - * The memory pointed to by `ptr` is no longer valid for access upon return, - * and may be returned to the system or reused by a future allocation. The - * pointer passed to this function is no longer safe to dereference once this - * function returns, and should be discarded. - * - * \param ptr The pointer, returned from SDL_SIMDAlloc or SDL_SIMDRealloc, to - * deallocate. NULL is a legal no-op. - * - * \since This function is available since SDL 2.0.10. - * - * \sa SDL_SIMDAlloc - * \sa SDL_SIMDRealloc - */ -extern DECLSPEC void SDLCALL SDL_SIMDFree(void *ptr); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_cpuinfo_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_endian.h b/release/SDL2.framework/Versions/A/Headers/SDL_endian.h deleted file mode 100644 index 62f7ae4..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_endian.h +++ /dev/null @@ -1,348 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_endian.h - * - * Functions for reading and writing endian-specific values - */ - -#ifndef SDL_endian_h_ -#define SDL_endian_h_ - -#include - -#if defined(_MSC_VER) && (_MSC_VER >= 1400) -/* As of Clang 11, '_m_prefetchw' is conflicting with the winnt.h's version, - so we define the needed '_m_prefetch' here as a pseudo-header, until the issue is fixed. */ -#ifdef __clang__ -#ifndef __PRFCHWINTRIN_H -#define __PRFCHWINTRIN_H -static __inline__ void __attribute__((__always_inline__, __nodebug__)) -_m_prefetch(void *__P) -{ - __builtin_prefetch(__P, 0, 3 /* _MM_HINT_T0 */); -} -#endif /* __PRFCHWINTRIN_H */ -#endif /* __clang__ */ - -#include -#endif - -/** - * \name The two types of endianness - */ -/* @{ */ -#define SDL_LIL_ENDIAN 1234 -#define SDL_BIG_ENDIAN 4321 -/* @} */ - -#ifndef SDL_BYTEORDER /* Not defined in SDL_config.h? */ -#ifdef __linux__ -#include -#define SDL_BYTEORDER __BYTE_ORDER -#elif defined(__OpenBSD__) || defined(__DragonFly__) -#include -#define SDL_BYTEORDER BYTE_ORDER -#elif defined(__FreeBSD__) || defined(__NetBSD__) -#include -#define SDL_BYTEORDER BYTE_ORDER -/* predefs from newer gcc and clang versions: */ -#elif defined(__ORDER_LITTLE_ENDIAN__) && defined(__ORDER_BIG_ENDIAN__) && defined(__BYTE_ORDER__) -#if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) -#define SDL_BYTEORDER SDL_LIL_ENDIAN -#elif (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) -#define SDL_BYTEORDER SDL_BIG_ENDIAN -#else -#error Unsupported endianness -#endif /**/ -#else -#if defined(__hppa__) || \ - defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \ - (defined(__MIPS__) && defined(__MIPSEB__)) || \ - defined(__ppc__) || defined(__POWERPC__) || defined(__powerpc__) || defined(__PPC__) || \ - defined(__sparc__) -#define SDL_BYTEORDER SDL_BIG_ENDIAN -#else -#define SDL_BYTEORDER SDL_LIL_ENDIAN -#endif -#endif /* __linux__ */ -#endif /* !SDL_BYTEORDER */ - -#ifndef SDL_FLOATWORDORDER /* Not defined in SDL_config.h? */ -/* predefs from newer gcc versions: */ -#if defined(__ORDER_LITTLE_ENDIAN__) && defined(__ORDER_BIG_ENDIAN__) && defined(__FLOAT_WORD_ORDER__) -#if (__FLOAT_WORD_ORDER__ == __ORDER_LITTLE_ENDIAN__) -#define SDL_FLOATWORDORDER SDL_LIL_ENDIAN -#elif (__FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__) -#define SDL_FLOATWORDORDER SDL_BIG_ENDIAN -#else -#error Unsupported endianness -#endif /**/ -#elif defined(__MAVERICK__) -/* For Maverick, float words are always little-endian. */ -#define SDL_FLOATWORDORDER SDL_LIL_ENDIAN -#elif (defined(__arm__) || defined(__thumb__)) && !defined(__VFP_FP__) && !defined(__ARM_EABI__) -/* For FPA, float words are always big-endian. */ -#define SDL_FLOATWORDORDER SDL_BIG_ENDIAN -#else -/* By default, assume that floats words follow the memory system mode. */ -#define SDL_FLOATWORDORDER SDL_BYTEORDER -#endif /* __FLOAT_WORD_ORDER__ */ -#endif /* !SDL_FLOATWORDORDER */ - - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file SDL_endian.h - */ - -/* various modern compilers may have builtin swap */ -#if defined(__GNUC__) || defined(__clang__) -# define HAS_BUILTIN_BSWAP16 (_SDL_HAS_BUILTIN(__builtin_bswap16)) || \ - (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) -# define HAS_BUILTIN_BSWAP32 (_SDL_HAS_BUILTIN(__builtin_bswap32)) || \ - (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) -# define HAS_BUILTIN_BSWAP64 (_SDL_HAS_BUILTIN(__builtin_bswap64)) || \ - (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) - - /* this one is broken */ -# define HAS_BROKEN_BSWAP (__GNUC__ == 2 && __GNUC_MINOR__ <= 95) -#else -# define HAS_BUILTIN_BSWAP16 0 -# define HAS_BUILTIN_BSWAP32 0 -# define HAS_BUILTIN_BSWAP64 0 -# define HAS_BROKEN_BSWAP 0 -#endif - -#if HAS_BUILTIN_BSWAP16 -#define SDL_Swap16(x) __builtin_bswap16(x) -#elif (defined(_MSC_VER) && (_MSC_VER >= 1400)) && !defined(__ICL) -#pragma intrinsic(_byteswap_ushort) -#define SDL_Swap16(x) _byteswap_ushort(x) -#elif defined(__i386__) && !HAS_BROKEN_BSWAP -SDL_FORCE_INLINE Uint16 -SDL_Swap16(Uint16 x) -{ - __asm__("xchgb %b0,%h0": "=q"(x):"0"(x)); - return x; -} -#elif defined(__x86_64__) -SDL_FORCE_INLINE Uint16 -SDL_Swap16(Uint16 x) -{ - __asm__("xchgb %b0,%h0": "=Q"(x):"0"(x)); - return x; -} -#elif (defined(__powerpc__) || defined(__ppc__)) -SDL_FORCE_INLINE Uint16 -SDL_Swap16(Uint16 x) -{ - int result; - - __asm__("rlwimi %0,%2,8,16,23": "=&r"(result):"0"(x >> 8), "r"(x)); - return (Uint16)result; -} -#elif (defined(__m68k__) && !defined(__mcoldfire__)) -SDL_FORCE_INLINE Uint16 -SDL_Swap16(Uint16 x) -{ - __asm__("rorw #8,%0": "=d"(x): "0"(x):"cc"); - return x; -} -#elif defined(__WATCOMC__) && defined(__386__) -extern __inline Uint16 SDL_Swap16(Uint16); -#pragma aux SDL_Swap16 = \ - "xchg al, ah" \ - parm [ax] \ - modify [ax]; -#else -SDL_FORCE_INLINE Uint16 -SDL_Swap16(Uint16 x) -{ - return SDL_static_cast(Uint16, ((x << 8) | (x >> 8))); -} -#endif - -#if HAS_BUILTIN_BSWAP32 -#define SDL_Swap32(x) __builtin_bswap32(x) -#elif (defined(_MSC_VER) && (_MSC_VER >= 1400)) && !defined(__ICL) -#pragma intrinsic(_byteswap_ulong) -#define SDL_Swap32(x) _byteswap_ulong(x) -#elif defined(__i386__) && !HAS_BROKEN_BSWAP -SDL_FORCE_INLINE Uint32 -SDL_Swap32(Uint32 x) -{ - __asm__("bswap %0": "=r"(x):"0"(x)); - return x; -} -#elif defined(__x86_64__) -SDL_FORCE_INLINE Uint32 -SDL_Swap32(Uint32 x) -{ - __asm__("bswapl %0": "=r"(x):"0"(x)); - return x; -} -#elif (defined(__powerpc__) || defined(__ppc__)) -SDL_FORCE_INLINE Uint32 -SDL_Swap32(Uint32 x) -{ - Uint32 result; - - __asm__("rlwimi %0,%2,24,16,23": "=&r"(result): "0" (x>>24), "r"(x)); - __asm__("rlwimi %0,%2,8,8,15" : "=&r"(result): "0" (result), "r"(x)); - __asm__("rlwimi %0,%2,24,0,7" : "=&r"(result): "0" (result), "r"(x)); - return result; -} -#elif (defined(__m68k__) && !defined(__mcoldfire__)) -SDL_FORCE_INLINE Uint32 -SDL_Swap32(Uint32 x) -{ - __asm__("rorw #8,%0\n\tswap %0\n\trorw #8,%0": "=d"(x): "0"(x):"cc"); - return x; -} -#elif defined(__WATCOMC__) && defined(__386__) -extern __inline Uint32 SDL_Swap32(Uint32); -#pragma aux SDL_Swap32 = \ - "bswap eax" \ - parm [eax] \ - modify [eax]; -#else -SDL_FORCE_INLINE Uint32 -SDL_Swap32(Uint32 x) -{ - return SDL_static_cast(Uint32, ((x << 24) | ((x << 8) & 0x00FF0000) | - ((x >> 8) & 0x0000FF00) | (x >> 24))); -} -#endif - -#if HAS_BUILTIN_BSWAP64 -#define SDL_Swap64(x) __builtin_bswap64(x) -#elif (defined(_MSC_VER) && (_MSC_VER >= 1400)) && !defined(__ICL) -#pragma intrinsic(_byteswap_uint64) -#define SDL_Swap64(x) _byteswap_uint64(x) -#elif defined(__i386__) && !HAS_BROKEN_BSWAP -SDL_FORCE_INLINE Uint64 -SDL_Swap64(Uint64 x) -{ - union { - struct { - Uint32 a, b; - } s; - Uint64 u; - } v; - v.u = x; - __asm__("bswapl %0 ; bswapl %1 ; xchgl %0,%1" - : "=r"(v.s.a), "=r"(v.s.b) - : "0" (v.s.a), "1"(v.s.b)); - return v.u; -} -#elif defined(__x86_64__) -SDL_FORCE_INLINE Uint64 -SDL_Swap64(Uint64 x) -{ - __asm__("bswapq %0": "=r"(x):"0"(x)); - return x; -} -#elif defined(__WATCOMC__) && defined(__386__) -extern __inline Uint64 SDL_Swap64(Uint64); -#pragma aux SDL_Swap64 = \ - "bswap eax" \ - "bswap edx" \ - "xchg eax,edx" \ - parm [eax edx] \ - modify [eax edx]; -#else -SDL_FORCE_INLINE Uint64 -SDL_Swap64(Uint64 x) -{ - Uint32 hi, lo; - - /* Separate into high and low 32-bit values and swap them */ - lo = SDL_static_cast(Uint32, x & 0xFFFFFFFF); - x >>= 32; - hi = SDL_static_cast(Uint32, x & 0xFFFFFFFF); - x = SDL_Swap32(lo); - x <<= 32; - x |= SDL_Swap32(hi); - return (x); -} -#endif - - -SDL_FORCE_INLINE float -SDL_SwapFloat(float x) -{ - union { - float f; - Uint32 ui32; - } swapper; - swapper.f = x; - swapper.ui32 = SDL_Swap32(swapper.ui32); - return swapper.f; -} - -/* remove extra macros */ -#undef HAS_BROKEN_BSWAP -#undef HAS_BUILTIN_BSWAP16 -#undef HAS_BUILTIN_BSWAP32 -#undef HAS_BUILTIN_BSWAP64 - -/** - * \name Swap to native - * Byteswap item from the specified endianness to the native endianness. - */ -/* @{ */ -#if SDL_BYTEORDER == SDL_LIL_ENDIAN -#define SDL_SwapLE16(X) (X) -#define SDL_SwapLE32(X) (X) -#define SDL_SwapLE64(X) (X) -#define SDL_SwapFloatLE(X) (X) -#define SDL_SwapBE16(X) SDL_Swap16(X) -#define SDL_SwapBE32(X) SDL_Swap32(X) -#define SDL_SwapBE64(X) SDL_Swap64(X) -#define SDL_SwapFloatBE(X) SDL_SwapFloat(X) -#else -#define SDL_SwapLE16(X) SDL_Swap16(X) -#define SDL_SwapLE32(X) SDL_Swap32(X) -#define SDL_SwapLE64(X) SDL_Swap64(X) -#define SDL_SwapFloatLE(X) SDL_SwapFloat(X) -#define SDL_SwapBE16(X) (X) -#define SDL_SwapBE32(X) (X) -#define SDL_SwapBE64(X) (X) -#define SDL_SwapFloatBE(X) (X) -#endif -/* @} *//* Swap to native */ - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_endian_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_error.h b/release/SDL2.framework/Versions/A/Headers/SDL_error.h deleted file mode 100644 index 0cf4f6d..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_error.h +++ /dev/null @@ -1,163 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_error.h - * - * Simple error message routines for SDL. - */ - -#ifndef SDL_error_h_ -#define SDL_error_h_ - -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* Public functions */ - - -/** - * Set the SDL error message for the current thread. - * - * Calling this function will replace any previous error message that was set. - * - * This function always returns -1, since SDL frequently uses -1 to signify an - * failing result, leading to this idiom: - * - * ```c - * if (error_code) { - * return SDL_SetError("This operation has failed: %d", error_code); - * } - * ``` - * - * \param fmt a printf()-style message format string - * \param ... additional parameters matching % tokens in the `fmt` string, if - * any - * \returns always -1. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ClearError - * \sa SDL_GetError - */ -extern DECLSPEC int SDLCALL SDL_SetError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); - -/** - * Retrieve a message about the last error that occurred on the current - * thread. - * - * It is possible for multiple errors to occur before calling SDL_GetError(). - * Only the last error is returned. - * - * The message is only applicable when an SDL function has signaled an error. - * You must check the return values of SDL function calls to determine when to - * appropriately call SDL_GetError(). You should *not* use the results of - * SDL_GetError() to decide if an error has occurred! Sometimes SDL will set - * an error string even when reporting success. - * - * SDL will *not* clear the error string for successful API calls. You *must* - * check return values for failure cases before you can assume the error - * string applies. - * - * Error strings are set per-thread, so an error set in a different thread - * will not interfere with the current thread's operation. - * - * The returned string is internally allocated and must not be freed by the - * application. - * - * \returns a message with information about the specific error that occurred, - * or an empty string if there hasn't been an error message set since - * the last call to SDL_ClearError(). The message is only applicable - * when an SDL function has signaled an error. You must check the - * return values of SDL function calls to determine when to - * appropriately call SDL_GetError(). - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ClearError - * \sa SDL_SetError - */ -extern DECLSPEC const char *SDLCALL SDL_GetError(void); - -/** - * Get the last error message that was set for the current thread. - * - * This allows the caller to copy the error string into a provided buffer, but - * otherwise operates exactly the same as SDL_GetError(). - * - * \param errstr A buffer to fill with the last error message that was set for - * the current thread - * \param maxlen The size of the buffer pointed to by the errstr parameter - * \returns the pointer passed in as the `errstr` parameter. - * - * \since This function is available since SDL 2.0.14. - * - * \sa SDL_GetError - */ -extern DECLSPEC char * SDLCALL SDL_GetErrorMsg(char *errstr, int maxlen); - -/** - * Clear any previous error message for this thread. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetError - * \sa SDL_SetError - */ -extern DECLSPEC void SDLCALL SDL_ClearError(void); - -/** - * \name Internal error functions - * - * \internal - * Private error reporting function - used internally. - */ -/* @{ */ -#define SDL_OutOfMemory() SDL_Error(SDL_ENOMEM) -#define SDL_Unsupported() SDL_Error(SDL_UNSUPPORTED) -#define SDL_InvalidParamError(param) SDL_SetError("Parameter '%s' is invalid", (param)) -typedef enum -{ - SDL_ENOMEM, - SDL_EFREAD, - SDL_EFWRITE, - SDL_EFSEEK, - SDL_UNSUPPORTED, - SDL_LASTERROR -} SDL_errorcode; -/* SDL_Error() unconditionally returns -1. */ -extern DECLSPEC int SDLCALL SDL_Error(SDL_errorcode code); -/* @} *//* Internal error functions */ - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_error_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_events.h b/release/SDL2.framework/Versions/A/Headers/SDL_events.h deleted file mode 100644 index 9b2ca2a..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_events.h +++ /dev/null @@ -1,1166 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_events.h - * - * Include file for SDL event handling. - */ - -#ifndef SDL_events_h_ -#define SDL_events_h_ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* General keyboard/mouse state definitions */ -#define SDL_RELEASED 0 -#define SDL_PRESSED 1 - -/** - * The types of events that can be delivered. - */ -typedef enum -{ - SDL_FIRSTEVENT = 0, /**< Unused (do not remove) */ - - /* Application events */ - SDL_QUIT = 0x100, /**< User-requested quit */ - - /* These application events have special meaning on iOS, see README-ios.md for details */ - SDL_APP_TERMINATING, /**< The application is being terminated by the OS - Called on iOS in applicationWillTerminate() - Called on Android in onDestroy() - */ - SDL_APP_LOWMEMORY, /**< The application is low on memory, free memory if possible. - Called on iOS in applicationDidReceiveMemoryWarning() - Called on Android in onLowMemory() - */ - SDL_APP_WILLENTERBACKGROUND, /**< The application is about to enter the background - Called on iOS in applicationWillResignActive() - Called on Android in onPause() - */ - SDL_APP_DIDENTERBACKGROUND, /**< The application did enter the background and may not get CPU for some time - Called on iOS in applicationDidEnterBackground() - Called on Android in onPause() - */ - SDL_APP_WILLENTERFOREGROUND, /**< The application is about to enter the foreground - Called on iOS in applicationWillEnterForeground() - Called on Android in onResume() - */ - SDL_APP_DIDENTERFOREGROUND, /**< The application is now interactive - Called on iOS in applicationDidBecomeActive() - Called on Android in onResume() - */ - - SDL_LOCALECHANGED, /**< The user's locale preferences have changed. */ - - /* Display events */ - SDL_DISPLAYEVENT = 0x150, /**< Display state change */ - - /* Window events */ - SDL_WINDOWEVENT = 0x200, /**< Window state change */ - SDL_SYSWMEVENT, /**< System specific event */ - - /* Keyboard events */ - SDL_KEYDOWN = 0x300, /**< Key pressed */ - SDL_KEYUP, /**< Key released */ - SDL_TEXTEDITING, /**< Keyboard text editing (composition) */ - SDL_TEXTINPUT, /**< Keyboard text input */ - SDL_KEYMAPCHANGED, /**< Keymap changed due to a system event such as an - input language or keyboard layout change. - */ - SDL_TEXTEDITING_EXT, /**< Extended keyboard text editing (composition) */ - - /* Mouse events */ - SDL_MOUSEMOTION = 0x400, /**< Mouse moved */ - SDL_MOUSEBUTTONDOWN, /**< Mouse button pressed */ - SDL_MOUSEBUTTONUP, /**< Mouse button released */ - SDL_MOUSEWHEEL, /**< Mouse wheel motion */ - - /* Joystick events */ - SDL_JOYAXISMOTION = 0x600, /**< Joystick axis motion */ - SDL_JOYBALLMOTION, /**< Joystick trackball motion */ - SDL_JOYHATMOTION, /**< Joystick hat position change */ - SDL_JOYBUTTONDOWN, /**< Joystick button pressed */ - SDL_JOYBUTTONUP, /**< Joystick button released */ - SDL_JOYDEVICEADDED, /**< A new joystick has been inserted into the system */ - SDL_JOYDEVICEREMOVED, /**< An opened joystick has been removed */ - SDL_JOYBATTERYUPDATED, /**< Joystick battery level change */ - - /* Game controller events */ - SDL_CONTROLLERAXISMOTION = 0x650, /**< Game controller axis motion */ - SDL_CONTROLLERBUTTONDOWN, /**< Game controller button pressed */ - SDL_CONTROLLERBUTTONUP, /**< Game controller button released */ - SDL_CONTROLLERDEVICEADDED, /**< A new Game controller has been inserted into the system */ - SDL_CONTROLLERDEVICEREMOVED, /**< An opened Game controller has been removed */ - SDL_CONTROLLERDEVICEREMAPPED, /**< The controller mapping was updated */ - SDL_CONTROLLERTOUCHPADDOWN, /**< Game controller touchpad was touched */ - SDL_CONTROLLERTOUCHPADMOTION, /**< Game controller touchpad finger was moved */ - SDL_CONTROLLERTOUCHPADUP, /**< Game controller touchpad finger was lifted */ - SDL_CONTROLLERSENSORUPDATE, /**< Game controller sensor was updated */ - - /* Touch events */ - SDL_FINGERDOWN = 0x700, - SDL_FINGERUP, - SDL_FINGERMOTION, - - /* Gesture events */ - SDL_DOLLARGESTURE = 0x800, - SDL_DOLLARRECORD, - SDL_MULTIGESTURE, - - /* Clipboard events */ - SDL_CLIPBOARDUPDATE = 0x900, /**< The clipboard or primary selection changed */ - - /* Drag and drop events */ - SDL_DROPFILE = 0x1000, /**< The system requests a file open */ - SDL_DROPTEXT, /**< text/plain drag-and-drop event */ - SDL_DROPBEGIN, /**< A new set of drops is beginning (NULL filename) */ - SDL_DROPCOMPLETE, /**< Current set of drops is now complete (NULL filename) */ - - /* Audio hotplug events */ - SDL_AUDIODEVICEADDED = 0x1100, /**< A new audio device is available */ - SDL_AUDIODEVICEREMOVED, /**< An audio device has been removed. */ - - /* Sensor events */ - SDL_SENSORUPDATE = 0x1200, /**< A sensor was updated */ - - /* Render events */ - SDL_RENDER_TARGETS_RESET = 0x2000, /**< The render targets have been reset and their contents need to be updated */ - SDL_RENDER_DEVICE_RESET, /**< The device has been reset and all textures need to be recreated */ - - /* Internal events */ - SDL_POLLSENTINEL = 0x7F00, /**< Signals the end of an event poll cycle */ - - /** Events ::SDL_USEREVENT through ::SDL_LASTEVENT are for your use, - * and should be allocated with SDL_RegisterEvents() - */ - SDL_USEREVENT = 0x8000, - - /** - * This last event is only for bounding internal arrays - */ - SDL_LASTEVENT = 0xFFFF -} SDL_EventType; - -/** - * \brief Fields shared by every event - */ -typedef struct SDL_CommonEvent -{ - Uint32 type; - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ -} SDL_CommonEvent; - -/** - * \brief Display state change event data (event.display.*) - */ -typedef struct SDL_DisplayEvent -{ - Uint32 type; /**< ::SDL_DISPLAYEVENT */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 display; /**< The associated display index */ - Uint8 event; /**< ::SDL_DisplayEventID */ - Uint8 padding1; - Uint8 padding2; - Uint8 padding3; - Sint32 data1; /**< event dependent data */ -} SDL_DisplayEvent; - -/** - * \brief Window state change event data (event.window.*) - */ -typedef struct SDL_WindowEvent -{ - Uint32 type; /**< ::SDL_WINDOWEVENT */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The associated window */ - Uint8 event; /**< ::SDL_WindowEventID */ - Uint8 padding1; - Uint8 padding2; - Uint8 padding3; - Sint32 data1; /**< event dependent data */ - Sint32 data2; /**< event dependent data */ -} SDL_WindowEvent; - -/** - * \brief Keyboard button event structure (event.key.*) - */ -typedef struct SDL_KeyboardEvent -{ - Uint32 type; /**< ::SDL_KEYDOWN or ::SDL_KEYUP */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The window with keyboard focus, if any */ - Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ - Uint8 repeat; /**< Non-zero if this is a key repeat */ - Uint8 padding2; - Uint8 padding3; - SDL_Keysym keysym; /**< The key that was pressed or released */ -} SDL_KeyboardEvent; - -#define SDL_TEXTEDITINGEVENT_TEXT_SIZE (32) -/** - * \brief Keyboard text editing event structure (event.edit.*) - */ -typedef struct SDL_TextEditingEvent -{ - Uint32 type; /**< ::SDL_TEXTEDITING */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The window with keyboard focus, if any */ - char text[SDL_TEXTEDITINGEVENT_TEXT_SIZE]; /**< The editing text */ - Sint32 start; /**< The start cursor of selected editing text */ - Sint32 length; /**< The length of selected editing text */ -} SDL_TextEditingEvent; - -/** - * \brief Extended keyboard text editing event structure (event.editExt.*) when text would be - * truncated if stored in the text buffer SDL_TextEditingEvent - */ -typedef struct SDL_TextEditingExtEvent -{ - Uint32 type; /**< ::SDL_TEXTEDITING_EXT */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The window with keyboard focus, if any */ - char* text; /**< The editing text, which should be freed with SDL_free(), and will not be NULL */ - Sint32 start; /**< The start cursor of selected editing text */ - Sint32 length; /**< The length of selected editing text */ -} SDL_TextEditingExtEvent; - -#define SDL_TEXTINPUTEVENT_TEXT_SIZE (32) -/** - * \brief Keyboard text input event structure (event.text.*) - */ -typedef struct SDL_TextInputEvent -{ - Uint32 type; /**< ::SDL_TEXTINPUT */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The window with keyboard focus, if any */ - char text[SDL_TEXTINPUTEVENT_TEXT_SIZE]; /**< The input text */ -} SDL_TextInputEvent; - -/** - * \brief Mouse motion event structure (event.motion.*) - */ -typedef struct SDL_MouseMotionEvent -{ - Uint32 type; /**< ::SDL_MOUSEMOTION */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The window with mouse focus, if any */ - Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ - Uint32 state; /**< The current button state */ - Sint32 x; /**< X coordinate, relative to window */ - Sint32 y; /**< Y coordinate, relative to window */ - Sint32 xrel; /**< The relative motion in the X direction */ - Sint32 yrel; /**< The relative motion in the Y direction */ -} SDL_MouseMotionEvent; - -/** - * \brief Mouse button event structure (event.button.*) - */ -typedef struct SDL_MouseButtonEvent -{ - Uint32 type; /**< ::SDL_MOUSEBUTTONDOWN or ::SDL_MOUSEBUTTONUP */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The window with mouse focus, if any */ - Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ - Uint8 button; /**< The mouse button index */ - Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ - Uint8 clicks; /**< 1 for single-click, 2 for double-click, etc. */ - Uint8 padding1; - Sint32 x; /**< X coordinate, relative to window */ - Sint32 y; /**< Y coordinate, relative to window */ -} SDL_MouseButtonEvent; - -/** - * \brief Mouse wheel event structure (event.wheel.*) - */ -typedef struct SDL_MouseWheelEvent -{ - Uint32 type; /**< ::SDL_MOUSEWHEEL */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The window with mouse focus, if any */ - Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ - Sint32 x; /**< The amount scrolled horizontally, positive to the right and negative to the left */ - Sint32 y; /**< The amount scrolled vertically, positive away from the user and negative toward the user */ - Uint32 direction; /**< Set to one of the SDL_MOUSEWHEEL_* defines. When FLIPPED the values in X and Y will be opposite. Multiply by -1 to change them back */ - float preciseX; /**< The amount scrolled horizontally, positive to the right and negative to the left, with float precision (added in 2.0.18) */ - float preciseY; /**< The amount scrolled vertically, positive away from the user and negative toward the user, with float precision (added in 2.0.18) */ - Sint32 mouseX; /**< X coordinate, relative to window (added in 2.26.0) */ - Sint32 mouseY; /**< Y coordinate, relative to window (added in 2.26.0) */ -} SDL_MouseWheelEvent; - -/** - * \brief Joystick axis motion event structure (event.jaxis.*) - */ -typedef struct SDL_JoyAxisEvent -{ - Uint32 type; /**< ::SDL_JOYAXISMOTION */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 axis; /**< The joystick axis index */ - Uint8 padding1; - Uint8 padding2; - Uint8 padding3; - Sint16 value; /**< The axis value (range: -32768 to 32767) */ - Uint16 padding4; -} SDL_JoyAxisEvent; - -/** - * \brief Joystick trackball motion event structure (event.jball.*) - */ -typedef struct SDL_JoyBallEvent -{ - Uint32 type; /**< ::SDL_JOYBALLMOTION */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 ball; /**< The joystick trackball index */ - Uint8 padding1; - Uint8 padding2; - Uint8 padding3; - Sint16 xrel; /**< The relative motion in the X direction */ - Sint16 yrel; /**< The relative motion in the Y direction */ -} SDL_JoyBallEvent; - -/** - * \brief Joystick hat position change event structure (event.jhat.*) - */ -typedef struct SDL_JoyHatEvent -{ - Uint32 type; /**< ::SDL_JOYHATMOTION */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 hat; /**< The joystick hat index */ - Uint8 value; /**< The hat position value. - * \sa ::SDL_HAT_LEFTUP ::SDL_HAT_UP ::SDL_HAT_RIGHTUP - * \sa ::SDL_HAT_LEFT ::SDL_HAT_CENTERED ::SDL_HAT_RIGHT - * \sa ::SDL_HAT_LEFTDOWN ::SDL_HAT_DOWN ::SDL_HAT_RIGHTDOWN - * - * Note that zero means the POV is centered. - */ - Uint8 padding1; - Uint8 padding2; -} SDL_JoyHatEvent; - -/** - * \brief Joystick button event structure (event.jbutton.*) - */ -typedef struct SDL_JoyButtonEvent -{ - Uint32 type; /**< ::SDL_JOYBUTTONDOWN or ::SDL_JOYBUTTONUP */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 button; /**< The joystick button index */ - Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ - Uint8 padding1; - Uint8 padding2; -} SDL_JoyButtonEvent; - -/** - * \brief Joystick device event structure (event.jdevice.*) - */ -typedef struct SDL_JoyDeviceEvent -{ - Uint32 type; /**< ::SDL_JOYDEVICEADDED or ::SDL_JOYDEVICEREMOVED */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED event */ -} SDL_JoyDeviceEvent; - -/** - * \brief Joysick battery level change event structure (event.jbattery.*) - */ -typedef struct SDL_JoyBatteryEvent -{ - Uint32 type; /**< ::SDL_JOYBATTERYUPDATED */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - SDL_JoystickPowerLevel level; /**< The joystick battery level */ -} SDL_JoyBatteryEvent; - -/** - * \brief Game controller axis motion event structure (event.caxis.*) - */ -typedef struct SDL_ControllerAxisEvent -{ - Uint32 type; /**< ::SDL_CONTROLLERAXISMOTION */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 axis; /**< The controller axis (SDL_GameControllerAxis) */ - Uint8 padding1; - Uint8 padding2; - Uint8 padding3; - Sint16 value; /**< The axis value (range: -32768 to 32767) */ - Uint16 padding4; -} SDL_ControllerAxisEvent; - - -/** - * \brief Game controller button event structure (event.cbutton.*) - */ -typedef struct SDL_ControllerButtonEvent -{ - Uint32 type; /**< ::SDL_CONTROLLERBUTTONDOWN or ::SDL_CONTROLLERBUTTONUP */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - Uint8 button; /**< The controller button (SDL_GameControllerButton) */ - Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ - Uint8 padding1; - Uint8 padding2; -} SDL_ControllerButtonEvent; - - -/** - * \brief Controller device event structure (event.cdevice.*) - */ -typedef struct SDL_ControllerDeviceEvent -{ - Uint32 type; /**< ::SDL_CONTROLLERDEVICEADDED, ::SDL_CONTROLLERDEVICEREMOVED, or ::SDL_CONTROLLERDEVICEREMAPPED */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED or REMAPPED event */ -} SDL_ControllerDeviceEvent; - -/** - * \brief Game controller touchpad event structure (event.ctouchpad.*) - */ -typedef struct SDL_ControllerTouchpadEvent -{ - Uint32 type; /**< ::SDL_CONTROLLERTOUCHPADDOWN or ::SDL_CONTROLLERTOUCHPADMOTION or ::SDL_CONTROLLERTOUCHPADUP */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - Sint32 touchpad; /**< The index of the touchpad */ - Sint32 finger; /**< The index of the finger on the touchpad */ - float x; /**< Normalized in the range 0...1 with 0 being on the left */ - float y; /**< Normalized in the range 0...1 with 0 being at the top */ - float pressure; /**< Normalized in the range 0...1 */ -} SDL_ControllerTouchpadEvent; - -/** - * \brief Game controller sensor event structure (event.csensor.*) - */ -typedef struct SDL_ControllerSensorEvent -{ - Uint32 type; /**< ::SDL_CONTROLLERSENSORUPDATE */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_JoystickID which; /**< The joystick instance id */ - Sint32 sensor; /**< The type of the sensor, one of the values of ::SDL_SensorType */ - float data[3]; /**< Up to 3 values from the sensor, as defined in SDL_sensor.h */ - Uint64 timestamp_us; /**< The timestamp of the sensor reading in microseconds, if the hardware provides this information. */ -} SDL_ControllerSensorEvent; - -/** - * \brief Audio device event structure (event.adevice.*) - */ -typedef struct SDL_AudioDeviceEvent -{ - Uint32 type; /**< ::SDL_AUDIODEVICEADDED, or ::SDL_AUDIODEVICEREMOVED */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 which; /**< The audio device index for the ADDED event (valid until next SDL_GetNumAudioDevices() call), SDL_AudioDeviceID for the REMOVED event */ - Uint8 iscapture; /**< zero if an output device, non-zero if a capture device. */ - Uint8 padding1; - Uint8 padding2; - Uint8 padding3; -} SDL_AudioDeviceEvent; - - -/** - * \brief Touch finger event structure (event.tfinger.*) - */ -typedef struct SDL_TouchFingerEvent -{ - Uint32 type; /**< ::SDL_FINGERMOTION or ::SDL_FINGERDOWN or ::SDL_FINGERUP */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_TouchID touchId; /**< The touch device id */ - SDL_FingerID fingerId; - float x; /**< Normalized in the range 0...1 */ - float y; /**< Normalized in the range 0...1 */ - float dx; /**< Normalized in the range -1...1 */ - float dy; /**< Normalized in the range -1...1 */ - float pressure; /**< Normalized in the range 0...1 */ - Uint32 windowID; /**< The window underneath the finger, if any */ -} SDL_TouchFingerEvent; - - -/** - * \brief Multiple Finger Gesture Event (event.mgesture.*) - */ -typedef struct SDL_MultiGestureEvent -{ - Uint32 type; /**< ::SDL_MULTIGESTURE */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_TouchID touchId; /**< The touch device id */ - float dTheta; - float dDist; - float x; - float y; - Uint16 numFingers; - Uint16 padding; -} SDL_MultiGestureEvent; - - -/** - * \brief Dollar Gesture Event (event.dgesture.*) - */ -typedef struct SDL_DollarGestureEvent -{ - Uint32 type; /**< ::SDL_DOLLARGESTURE or ::SDL_DOLLARRECORD */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_TouchID touchId; /**< The touch device id */ - SDL_GestureID gestureId; - Uint32 numFingers; - float error; - float x; /**< Normalized center of gesture */ - float y; /**< Normalized center of gesture */ -} SDL_DollarGestureEvent; - - -/** - * \brief An event used to request a file open by the system (event.drop.*) - * This event is enabled by default, you can disable it with SDL_EventState(). - * \note If this event is enabled, you must free the filename in the event. - */ -typedef struct SDL_DropEvent -{ - Uint32 type; /**< ::SDL_DROPBEGIN or ::SDL_DROPFILE or ::SDL_DROPTEXT or ::SDL_DROPCOMPLETE */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - char *file; /**< The file name, which should be freed with SDL_free(), is NULL on begin/complete */ - Uint32 windowID; /**< The window that was dropped on, if any */ -} SDL_DropEvent; - - -/** - * \brief Sensor event structure (event.sensor.*) - */ -typedef struct SDL_SensorEvent -{ - Uint32 type; /**< ::SDL_SENSORUPDATE */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Sint32 which; /**< The instance ID of the sensor */ - float data[6]; /**< Up to 6 values from the sensor - additional values can be queried using SDL_SensorGetData() */ - Uint64 timestamp_us; /**< The timestamp of the sensor reading in microseconds, if the hardware provides this information. */ -} SDL_SensorEvent; - -/** - * \brief The "quit requested" event - */ -typedef struct SDL_QuitEvent -{ - Uint32 type; /**< ::SDL_QUIT */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ -} SDL_QuitEvent; - -/** - * \brief OS Specific event - */ -typedef struct SDL_OSEvent -{ - Uint32 type; /**< ::SDL_QUIT */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ -} SDL_OSEvent; - -/** - * \brief A user-defined event type (event.user.*) - */ -typedef struct SDL_UserEvent -{ - Uint32 type; /**< ::SDL_USEREVENT through ::SDL_LASTEVENT-1 */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - Uint32 windowID; /**< The associated window if any */ - Sint32 code; /**< User defined event code */ - void *data1; /**< User defined data pointer */ - void *data2; /**< User defined data pointer */ -} SDL_UserEvent; - - -struct SDL_SysWMmsg; -typedef struct SDL_SysWMmsg SDL_SysWMmsg; - -/** - * \brief A video driver dependent system event (event.syswm.*) - * This event is disabled by default, you can enable it with SDL_EventState() - * - * \note If you want to use this event, you should include SDL_syswm.h. - */ -typedef struct SDL_SysWMEvent -{ - Uint32 type; /**< ::SDL_SYSWMEVENT */ - Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ - SDL_SysWMmsg *msg; /**< driver dependent data, defined in SDL_syswm.h */ -} SDL_SysWMEvent; - -/** - * \brief General event structure - */ -typedef union SDL_Event -{ - Uint32 type; /**< Event type, shared with all events */ - SDL_CommonEvent common; /**< Common event data */ - SDL_DisplayEvent display; /**< Display event data */ - SDL_WindowEvent window; /**< Window event data */ - SDL_KeyboardEvent key; /**< Keyboard event data */ - SDL_TextEditingEvent edit; /**< Text editing event data */ - SDL_TextEditingExtEvent editExt; /**< Extended text editing event data */ - SDL_TextInputEvent text; /**< Text input event data */ - SDL_MouseMotionEvent motion; /**< Mouse motion event data */ - SDL_MouseButtonEvent button; /**< Mouse button event data */ - SDL_MouseWheelEvent wheel; /**< Mouse wheel event data */ - SDL_JoyAxisEvent jaxis; /**< Joystick axis event data */ - SDL_JoyBallEvent jball; /**< Joystick ball event data */ - SDL_JoyHatEvent jhat; /**< Joystick hat event data */ - SDL_JoyButtonEvent jbutton; /**< Joystick button event data */ - SDL_JoyDeviceEvent jdevice; /**< Joystick device change event data */ - SDL_JoyBatteryEvent jbattery; /**< Joystick battery event data */ - SDL_ControllerAxisEvent caxis; /**< Game Controller axis event data */ - SDL_ControllerButtonEvent cbutton; /**< Game Controller button event data */ - SDL_ControllerDeviceEvent cdevice; /**< Game Controller device event data */ - SDL_ControllerTouchpadEvent ctouchpad; /**< Game Controller touchpad event data */ - SDL_ControllerSensorEvent csensor; /**< Game Controller sensor event data */ - SDL_AudioDeviceEvent adevice; /**< Audio device event data */ - SDL_SensorEvent sensor; /**< Sensor event data */ - SDL_QuitEvent quit; /**< Quit request event data */ - SDL_UserEvent user; /**< Custom event data */ - SDL_SysWMEvent syswm; /**< System dependent window event data */ - SDL_TouchFingerEvent tfinger; /**< Touch finger event data */ - SDL_MultiGestureEvent mgesture; /**< Gesture event data */ - SDL_DollarGestureEvent dgesture; /**< Gesture event data */ - SDL_DropEvent drop; /**< Drag and drop event data */ - - /* This is necessary for ABI compatibility between Visual C++ and GCC. - Visual C++ will respect the push pack pragma and use 52 bytes (size of - SDL_TextEditingEvent, the largest structure for 32-bit and 64-bit - architectures) for this union, and GCC will use the alignment of the - largest datatype within the union, which is 8 bytes on 64-bit - architectures. - - So... we'll add padding to force the size to be 56 bytes for both. - - On architectures where pointers are 16 bytes, this needs rounding up to - the next multiple of 16, 64, and on architectures where pointers are - even larger the size of SDL_UserEvent will dominate as being 3 pointers. - */ - Uint8 padding[sizeof(void *) <= 8 ? 56 : sizeof(void *) == 16 ? 64 : 3 * sizeof(void *)]; -} SDL_Event; - -/* Make sure we haven't broken binary compatibility */ -SDL_COMPILE_TIME_ASSERT(SDL_Event, sizeof(SDL_Event) == sizeof(((SDL_Event *)NULL)->padding)); - - -/* Function prototypes */ - -/** - * Pump the event loop, gathering events from the input devices. - * - * This function updates the event queue and internal input device state. - * - * **WARNING**: This should only be run in the thread that initialized the - * video subsystem, and for extra safety, you should consider only doing those - * things on the main thread in any case. - * - * SDL_PumpEvents() gathers all the pending input information from devices and - * places it in the event queue. Without calls to SDL_PumpEvents() no events - * would ever be placed on the queue. Often the need for calls to - * SDL_PumpEvents() is hidden from the user since SDL_PollEvent() and - * SDL_WaitEvent() implicitly call SDL_PumpEvents(). However, if you are not - * polling or waiting for events (e.g. you are filtering them), then you must - * call SDL_PumpEvents() to force an event queue update. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PollEvent - * \sa SDL_WaitEvent - */ -extern DECLSPEC void SDLCALL SDL_PumpEvents(void); - -/* @{ */ -typedef enum -{ - SDL_ADDEVENT, - SDL_PEEKEVENT, - SDL_GETEVENT -} SDL_eventaction; - -/** - * Check the event queue for messages and optionally return them. - * - * `action` may be any of the following: - * - * - `SDL_ADDEVENT`: up to `numevents` events will be added to the back of the - * event queue. - * - `SDL_PEEKEVENT`: `numevents` events at the front of the event queue, - * within the specified minimum and maximum type, will be returned to the - * caller and will _not_ be removed from the queue. - * - `SDL_GETEVENT`: up to `numevents` events at the front of the event queue, - * within the specified minimum and maximum type, will be returned to the - * caller and will be removed from the queue. - * - * You may have to call SDL_PumpEvents() before calling this function. - * Otherwise, the events may not be ready to be filtered when you call - * SDL_PeepEvents(). - * - * This function is thread-safe. - * - * \param events destination buffer for the retrieved events - * \param numevents if action is SDL_ADDEVENT, the number of events to add - * back to the event queue; if action is SDL_PEEKEVENT or - * SDL_GETEVENT, the maximum number of events to retrieve - * \param action action to take; see [[#action|Remarks]] for details - * \param minType minimum value of the event type to be considered; - * SDL_FIRSTEVENT is a safe choice - * \param maxType maximum value of the event type to be considered; - * SDL_LASTEVENT is a safe choice - * \returns the number of events actually stored or a negative error code on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PollEvent - * \sa SDL_PumpEvents - * \sa SDL_PushEvent - */ -extern DECLSPEC int SDLCALL SDL_PeepEvents(SDL_Event * events, int numevents, - SDL_eventaction action, - Uint32 minType, Uint32 maxType); -/* @} */ - -/** - * Check for the existence of a certain event type in the event queue. - * - * If you need to check for a range of event types, use SDL_HasEvents() - * instead. - * - * \param type the type of event to be queried; see SDL_EventType for details - * \returns SDL_TRUE if events matching `type` are present, or SDL_FALSE if - * events matching `type` are not present. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HasEvents - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasEvent(Uint32 type); - - -/** - * Check for the existence of certain event types in the event queue. - * - * If you need to check for a single event type, use SDL_HasEvent() instead. - * - * \param minType the low end of event type to be queried, inclusive; see - * SDL_EventType for details - * \param maxType the high end of event type to be queried, inclusive; see - * SDL_EventType for details - * \returns SDL_TRUE if events with type >= `minType` and <= `maxType` are - * present, or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HasEvents - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasEvents(Uint32 minType, Uint32 maxType); - -/** - * Clear events of a specific type from the event queue. - * - * This will unconditionally remove any events from the queue that match - * `type`. If you need to remove a range of event types, use SDL_FlushEvents() - * instead. - * - * It's also normal to just ignore events you don't care about in your event - * loop without calling this function. - * - * This function only affects currently queued events. If you want to make - * sure that all pending OS events are flushed, you can call SDL_PumpEvents() - * on the main thread immediately before the flush call. - * - * \param type the type of event to be cleared; see SDL_EventType for details - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FlushEvents - */ -extern DECLSPEC void SDLCALL SDL_FlushEvent(Uint32 type); - -/** - * Clear events of a range of types from the event queue. - * - * This will unconditionally remove any events from the queue that are in the - * range of `minType` to `maxType`, inclusive. If you need to remove a single - * event type, use SDL_FlushEvent() instead. - * - * It's also normal to just ignore events you don't care about in your event - * loop without calling this function. - * - * This function only affects currently queued events. If you want to make - * sure that all pending OS events are flushed, you can call SDL_PumpEvents() - * on the main thread immediately before the flush call. - * - * \param minType the low end of event type to be cleared, inclusive; see - * SDL_EventType for details - * \param maxType the high end of event type to be cleared, inclusive; see - * SDL_EventType for details - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FlushEvent - */ -extern DECLSPEC void SDLCALL SDL_FlushEvents(Uint32 minType, Uint32 maxType); - -/** - * Poll for currently pending events. - * - * If `event` is not NULL, the next event is removed from the queue and stored - * in the SDL_Event structure pointed to by `event`. The 1 returned refers to - * this event, immediately stored in the SDL Event structure -- not an event - * to follow. - * - * If `event` is NULL, it simply returns 1 if there is an event in the queue, - * but will not remove it from the queue. - * - * As this function may implicitly call SDL_PumpEvents(), you can only call - * this function in the thread that set the video mode. - * - * SDL_PollEvent() is the favored way of receiving system events since it can - * be done from the main loop and does not suspend the main loop while waiting - * on an event to be posted. - * - * The common practice is to fully process the event queue once every frame, - * usually as a first step before updating the game's state: - * - * ```c - * while (game_is_still_running) { - * SDL_Event event; - * while (SDL_PollEvent(&event)) { // poll until all events are handled! - * // decide what to do with this event. - * } - * - * // update game state, draw the current frame - * } - * ``` - * - * \param event the SDL_Event structure to be filled with the next event from - * the queue, or NULL - * \returns 1 if there is a pending event or 0 if there are none available. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetEventFilter - * \sa SDL_PeepEvents - * \sa SDL_PushEvent - * \sa SDL_SetEventFilter - * \sa SDL_WaitEvent - * \sa SDL_WaitEventTimeout - */ -extern DECLSPEC int SDLCALL SDL_PollEvent(SDL_Event * event); - -/** - * Wait indefinitely for the next available event. - * - * If `event` is not NULL, the next event is removed from the queue and stored - * in the SDL_Event structure pointed to by `event`. - * - * As this function may implicitly call SDL_PumpEvents(), you can only call - * this function in the thread that initialized the video subsystem. - * - * \param event the SDL_Event structure to be filled in with the next event - * from the queue, or NULL - * \returns 1 on success or 0 if there was an error while waiting for events; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PollEvent - * \sa SDL_PumpEvents - * \sa SDL_WaitEventTimeout - */ -extern DECLSPEC int SDLCALL SDL_WaitEvent(SDL_Event * event); - -/** - * Wait until the specified timeout (in milliseconds) for the next available - * event. - * - * If `event` is not NULL, the next event is removed from the queue and stored - * in the SDL_Event structure pointed to by `event`. - * - * As this function may implicitly call SDL_PumpEvents(), you can only call - * this function in the thread that initialized the video subsystem. - * - * \param event the SDL_Event structure to be filled in with the next event - * from the queue, or NULL - * \param timeout the maximum number of milliseconds to wait for the next - * available event - * \returns 1 on success or 0 if there was an error while waiting for events; - * call SDL_GetError() for more information. This also returns 0 if - * the timeout elapsed without an event arriving. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PollEvent - * \sa SDL_PumpEvents - * \sa SDL_WaitEvent - */ -extern DECLSPEC int SDLCALL SDL_WaitEventTimeout(SDL_Event * event, - int timeout); - -/** - * Add an event to the event queue. - * - * The event queue can actually be used as a two way communication channel. - * Not only can events be read from the queue, but the user can also push - * their own events onto it. `event` is a pointer to the event structure you - * wish to push onto the queue. The event is copied into the queue, and the - * caller may dispose of the memory pointed to after SDL_PushEvent() returns. - * - * Note: Pushing device input events onto the queue doesn't modify the state - * of the device within SDL. - * - * This function is thread-safe, and can be called from other threads safely. - * - * Note: Events pushed onto the queue with SDL_PushEvent() get passed through - * the event filter but events added with SDL_PeepEvents() do not. - * - * For pushing application-specific events, please use SDL_RegisterEvents() to - * get an event type that does not conflict with other code that also wants - * its own custom event types. - * - * \param event the SDL_Event to be added to the queue - * \returns 1 on success, 0 if the event was filtered, or a negative error - * code on failure; call SDL_GetError() for more information. A - * common reason for error is the event queue being full. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PeepEvents - * \sa SDL_PollEvent - * \sa SDL_RegisterEvents - */ -extern DECLSPEC int SDLCALL SDL_PushEvent(SDL_Event * event); - -/** - * A function pointer used for callbacks that watch the event queue. - * - * \param userdata what was passed as `userdata` to SDL_SetEventFilter() - * or SDL_AddEventWatch, etc - * \param event the event that triggered the callback - * \returns 1 to permit event to be added to the queue, and 0 to disallow - * it. When used with SDL_AddEventWatch, the return value is ignored. - * - * \sa SDL_SetEventFilter - * \sa SDL_AddEventWatch - */ -typedef int (SDLCALL * SDL_EventFilter) (void *userdata, SDL_Event * event); - -/** - * Set up a filter to process all events before they change internal state and - * are posted to the internal event queue. - * - * If the filter function returns 1 when called, then the event will be added - * to the internal queue. If it returns 0, then the event will be dropped from - * the queue, but the internal state will still be updated. This allows - * selective filtering of dynamically arriving events. - * - * **WARNING**: Be very careful of what you do in the event filter function, - * as it may run in a different thread! - * - * On platforms that support it, if the quit event is generated by an - * interrupt signal (e.g. pressing Ctrl-C), it will be delivered to the - * application at the next event poll. - * - * There is one caveat when dealing with the ::SDL_QuitEvent event type. The - * event filter is only called when the window manager desires to close the - * application window. If the event filter returns 1, then the window will be - * closed, otherwise the window will remain open if possible. - * - * Note: Disabled events never make it to the event filter function; see - * SDL_EventState(). - * - * Note: If you just want to inspect events without filtering, you should use - * SDL_AddEventWatch() instead. - * - * Note: Events pushed onto the queue with SDL_PushEvent() get passed through - * the event filter, but events pushed onto the queue with SDL_PeepEvents() do - * not. - * - * \param filter An SDL_EventFilter function to call when an event happens - * \param userdata a pointer that is passed to `filter` - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AddEventWatch - * \sa SDL_EventState - * \sa SDL_GetEventFilter - * \sa SDL_PeepEvents - * \sa SDL_PushEvent - */ -extern DECLSPEC void SDLCALL SDL_SetEventFilter(SDL_EventFilter filter, - void *userdata); - -/** - * Query the current event filter. - * - * This function can be used to "chain" filters, by saving the existing filter - * before replacing it with a function that will call that saved filter. - * - * \param filter the current callback function will be stored here - * \param userdata the pointer that is passed to the current event filter will - * be stored here - * \returns SDL_TRUE on success or SDL_FALSE if there is no event filter set. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetEventFilter - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetEventFilter(SDL_EventFilter * filter, - void **userdata); - -/** - * Add a callback to be triggered when an event is added to the event queue. - * - * `filter` will be called when an event happens, and its return value is - * ignored. - * - * **WARNING**: Be very careful of what you do in the event filter function, - * as it may run in a different thread! - * - * If the quit event is generated by a signal (e.g. SIGINT), it will bypass - * the internal queue and be delivered to the watch callback immediately, and - * arrive at the next event poll. - * - * Note: the callback is called for events posted by the user through - * SDL_PushEvent(), but not for disabled events, nor for events by a filter - * callback set with SDL_SetEventFilter(), nor for events posted by the user - * through SDL_PeepEvents(). - * - * \param filter an SDL_EventFilter function to call when an event happens. - * \param userdata a pointer that is passed to `filter` - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_DelEventWatch - * \sa SDL_SetEventFilter - */ -extern DECLSPEC void SDLCALL SDL_AddEventWatch(SDL_EventFilter filter, - void *userdata); - -/** - * Remove an event watch callback added with SDL_AddEventWatch(). - * - * This function takes the same input as SDL_AddEventWatch() to identify and - * delete the corresponding callback. - * - * \param filter the function originally passed to SDL_AddEventWatch() - * \param userdata the pointer originally passed to SDL_AddEventWatch() - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AddEventWatch - */ -extern DECLSPEC void SDLCALL SDL_DelEventWatch(SDL_EventFilter filter, - void *userdata); - -/** - * Run a specific filter function on the current event queue, removing any - * events for which the filter returns 0. - * - * See SDL_SetEventFilter() for more information. Unlike SDL_SetEventFilter(), - * this function does not change the filter permanently, it only uses the - * supplied filter until this function returns. - * - * \param filter the SDL_EventFilter function to call when an event happens - * \param userdata a pointer that is passed to `filter` - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetEventFilter - * \sa SDL_SetEventFilter - */ -extern DECLSPEC void SDLCALL SDL_FilterEvents(SDL_EventFilter filter, - void *userdata); - -/* @{ */ -#define SDL_QUERY -1 -#define SDL_IGNORE 0 -#define SDL_DISABLE 0 -#define SDL_ENABLE 1 - -/** - * Set the state of processing events by type. - * - * `state` may be any of the following: - * - * - `SDL_QUERY`: returns the current processing state of the specified event - * - `SDL_IGNORE` (aka `SDL_DISABLE`): the event will automatically be dropped - * from the event queue and will not be filtered - * - `SDL_ENABLE`: the event will be processed normally - * - * \param type the type of event; see SDL_EventType for details - * \param state how to process the event - * \returns `SDL_DISABLE` or `SDL_ENABLE`, representing the processing state - * of the event before this function makes any changes to it. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetEventState - */ -extern DECLSPEC Uint8 SDLCALL SDL_EventState(Uint32 type, int state); -/* @} */ -#define SDL_GetEventState(type) SDL_EventState(type, SDL_QUERY) - -/** - * Allocate a set of user-defined events, and return the beginning event - * number for that set of events. - * - * Calling this function with `numevents` <= 0 is an error and will return - * (Uint32)-1. - * - * Note, (Uint32)-1 means the maximum unsigned 32-bit integer value (or - * 0xFFFFFFFF), but is clearer to write. - * - * \param numevents the number of events to be allocated - * \returns the beginning event number, or (Uint32)-1 if there are not enough - * user-defined events left. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PushEvent - */ -extern DECLSPEC Uint32 SDLCALL SDL_RegisterEvents(int numevents); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_events_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_filesystem.h b/release/SDL2.framework/Versions/A/Headers/SDL_filesystem.h deleted file mode 100644 index 3c3b533..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_filesystem.h +++ /dev/null @@ -1,149 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_filesystem.h - * - * \brief Include file for filesystem SDL API functions - */ - -#ifndef SDL_filesystem_h_ -#define SDL_filesystem_h_ - -#include - -#include - -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Get the directory where the application was run from. - * - * This is not necessarily a fast call, so you should call this once near - * startup and save the string if you need it. - * - * **Mac OS X and iOS Specific Functionality**: If the application is in a - * ".app" bundle, this function returns the Resource directory (e.g. - * MyApp.app/Contents/Resources/). This behaviour can be overridden by adding - * a property to the Info.plist file. Adding a string key with the name - * SDL_FILESYSTEM_BASE_DIR_TYPE with a supported value will change the - * behaviour. - * - * Supported values for the SDL_FILESYSTEM_BASE_DIR_TYPE property (Given an - * application in /Applications/SDLApp/MyApp.app): - * - * - `resource`: bundle resource directory (the default). For example: - * `/Applications/SDLApp/MyApp.app/Contents/Resources` - * - `bundle`: the Bundle directory. For example: - * `/Applications/SDLApp/MyApp.app/` - * - `parent`: the containing directory of the bundle. For example: - * `/Applications/SDLApp/` - * - * **Nintendo 3DS Specific Functionality**: This function returns "romfs" - * directory of the application as it is uncommon to store resources outside - * the executable. As such it is not a writable directory. - * - * The returned path is guaranteed to end with a path separator ('\' on - * Windows, '/' on most other platforms). - * - * The pointer returned is owned by the caller. Please call SDL_free() on the - * pointer when done with it. - * - * \returns an absolute path in UTF-8 encoding to the application data - * directory. NULL will be returned on error or when the platform - * doesn't implement this functionality, call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.1. - * - * \sa SDL_GetPrefPath - */ -extern DECLSPEC char *SDLCALL SDL_GetBasePath(void); - -/** - * Get the user-and-app-specific path where files can be written. - * - * Get the "pref dir". This is meant to be where users can write personal - * files (preferences and save games, etc) that are specific to your - * application. This directory is unique per user, per application. - * - * This function will decide the appropriate location in the native - * filesystem, create the directory if necessary, and return a string of the - * absolute path to the directory in UTF-8 encoding. - * - * On Windows, the string might look like: - * - * `C:\\Users\\bob\\AppData\\Roaming\\My Company\\My Program Name\\` - * - * On Linux, the string might look like: - * - * `/home/bob/.local/share/My Program Name/` - * - * On Mac OS X, the string might look like: - * - * `/Users/bob/Library/Application Support/My Program Name/` - * - * You should assume the path returned by this function is the only safe place - * to write files (and that SDL_GetBasePath(), while it might be writable, or - * even the parent of the returned path, isn't where you should be writing - * things). - * - * Both the org and app strings may become part of a directory name, so please - * follow these rules: - * - * - Try to use the same org string (_including case-sensitivity_) for all - * your applications that use this function. - * - Always use a unique app string for each one, and make sure it never - * changes for an app once you've decided on it. - * - Unicode characters are legal, as long as it's UTF-8 encoded, but... - * - ...only use letters, numbers, and spaces. Avoid punctuation like "Game - * Name 2: Bad Guy's Revenge!" ... "Game Name 2" is sufficient. - * - * The returned path is guaranteed to end with a path separator ('\' on - * Windows, '/' on most other platforms). - * - * The pointer returned is owned by the caller. Please call SDL_free() on the - * pointer when done with it. - * - * \param org the name of your organization - * \param app the name of your application - * \returns a UTF-8 string of the user directory in platform-dependent - * notation. NULL if there's a problem (creating directory failed, - * etc.). - * - * \since This function is available since SDL 2.0.1. - * - * \sa SDL_GetBasePath - */ -extern DECLSPEC char *SDLCALL SDL_GetPrefPath(const char *org, const char *app); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_filesystem_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_gamecontroller.h b/release/SDL2.framework/Versions/A/Headers/SDL_gamecontroller.h deleted file mode 100644 index 266e706..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_gamecontroller.h +++ /dev/null @@ -1,1074 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_gamecontroller.h - * - * Include file for SDL game controller event handling - */ - -#ifndef SDL_gamecontroller_h_ -#define SDL_gamecontroller_h_ - -#include -#include -#include -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file SDL_gamecontroller.h - * - * In order to use these functions, SDL_Init() must have been called - * with the ::SDL_INIT_GAMECONTROLLER flag. This causes SDL to scan the system - * for game controllers, and load appropriate drivers. - * - * If you would like to receive controller updates while the application - * is in the background, you should set the following hint before calling - * SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS - */ - -/** - * The gamecontroller structure used to identify an SDL game controller - */ -struct _SDL_GameController; -typedef struct _SDL_GameController SDL_GameController; - -typedef enum -{ - SDL_CONTROLLER_TYPE_UNKNOWN = 0, - SDL_CONTROLLER_TYPE_XBOX360, - SDL_CONTROLLER_TYPE_XBOXONE, - SDL_CONTROLLER_TYPE_PS3, - SDL_CONTROLLER_TYPE_PS4, - SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO, - SDL_CONTROLLER_TYPE_VIRTUAL, - SDL_CONTROLLER_TYPE_PS5, - SDL_CONTROLLER_TYPE_AMAZON_LUNA, - SDL_CONTROLLER_TYPE_GOOGLE_STADIA, - SDL_CONTROLLER_TYPE_NVIDIA_SHIELD, - SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_LEFT, - SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT, - SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_PAIR -} SDL_GameControllerType; - -typedef enum -{ - SDL_CONTROLLER_BINDTYPE_NONE = 0, - SDL_CONTROLLER_BINDTYPE_BUTTON, - SDL_CONTROLLER_BINDTYPE_AXIS, - SDL_CONTROLLER_BINDTYPE_HAT -} SDL_GameControllerBindType; - -/** - * Get the SDL joystick layer binding for this controller button/axis mapping - */ -typedef struct SDL_GameControllerButtonBind -{ - SDL_GameControllerBindType bindType; - union - { - int button; - int axis; - struct { - int hat; - int hat_mask; - } hat; - } value; - -} SDL_GameControllerButtonBind; - - -/** - * To count the number of game controllers in the system for the following: - * - * ```c - * int nJoysticks = SDL_NumJoysticks(); - * int nGameControllers = 0; - * for (int i = 0; i < nJoysticks; i++) { - * if (SDL_IsGameController(i)) { - * nGameControllers++; - * } - * } - * ``` - * - * Using the SDL_HINT_GAMECONTROLLERCONFIG hint or the SDL_GameControllerAddMapping() you can add support for controllers SDL is unaware of or cause an existing controller to have a different binding. The format is: - * guid,name,mappings - * - * Where GUID is the string value from SDL_JoystickGetGUIDString(), name is the human readable string for the device and mappings are controller mappings to joystick ones. - * Under Windows there is a reserved GUID of "xinput" that covers any XInput devices. - * The mapping format for joystick is: - * bX - a joystick button, index X - * hX.Y - hat X with value Y - * aX - axis X of the joystick - * Buttons can be used as a controller axis and vice versa. - * - * This string shows an example of a valid mapping for a controller - * - * ```c - * "03000000341a00003608000000000000,PS3 Controller,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7", - * ``` - */ - -/** - * Load a set of Game Controller mappings from a seekable SDL data stream. - * - * You can call this function several times, if needed, to load different - * database files. - * - * If a new mapping is loaded for an already known controller GUID, the later - * version will overwrite the one currently loaded. - * - * Mappings not belonging to the current platform or with no platform field - * specified will be ignored (i.e. mappings for Linux will be ignored in - * Windows, etc). - * - * This function will load the text database entirely in memory before - * processing it, so take this into consideration if you are in a memory - * constrained environment. - * - * \param rw the data stream for the mappings to be added - * \param freerw non-zero to close the stream after being read - * \returns the number of mappings added or -1 on error; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_GameControllerAddMapping - * \sa SDL_GameControllerAddMappingsFromFile - * \sa SDL_GameControllerMappingForGUID - */ -extern DECLSPEC int SDLCALL SDL_GameControllerAddMappingsFromRW(SDL_RWops * rw, int freerw); - -/** - * Load a set of mappings from a file, filtered by the current SDL_GetPlatform() - * - * Convenience macro. - */ -#define SDL_GameControllerAddMappingsFromFile(file) SDL_GameControllerAddMappingsFromRW(SDL_RWFromFile(file, "rb"), 1) - -/** - * Add support for controllers that SDL is unaware of or to cause an existing - * controller to have a different binding. - * - * The mapping string has the format "GUID,name,mapping", where GUID is the - * string value from SDL_JoystickGetGUIDString(), name is the human readable - * string for the device and mappings are controller mappings to joystick - * ones. Under Windows there is a reserved GUID of "xinput" that covers all - * XInput devices. The mapping format for joystick is: {| |bX |a joystick - * button, index X |- |hX.Y |hat X with value Y |- |aX |axis X of the joystick - * |} Buttons can be used as a controller axes and vice versa. - * - * This string shows an example of a valid mapping for a controller: - * - * ```c - * "341a3608000000000000504944564944,Afterglow PS3 Controller,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7" - * ``` - * - * \param mappingString the mapping string - * \returns 1 if a new mapping is added, 0 if an existing mapping is updated, - * -1 on error; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerMapping - * \sa SDL_GameControllerMappingForGUID - */ -extern DECLSPEC int SDLCALL SDL_GameControllerAddMapping(const char* mappingString); - -/** - * Get the number of mappings installed. - * - * \returns the number of mappings. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerNumMappings(void); - -/** - * Get the mapping at a particular index. - * - * \returns the mapping string. Must be freed with SDL_free(). Returns NULL if - * the index is out of range. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForIndex(int mapping_index); - -/** - * Get the game controller mapping string for a given GUID. - * - * The returned string must be freed with SDL_free(). - * - * \param guid a structure containing the GUID for which a mapping is desired - * \returns a mapping string or NULL on error; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetDeviceGUID - * \sa SDL_JoystickGetGUID - */ -extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForGUID(SDL_JoystickGUID guid); - -/** - * Get the current mapping of a Game Controller. - * - * The returned string must be freed with SDL_free(). - * - * Details about mappings are discussed with SDL_GameControllerAddMapping(). - * - * \param gamecontroller the game controller you want to get the current - * mapping for - * \returns a string that has the controller's mapping or NULL if no mapping - * is available; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerAddMapping - * \sa SDL_GameControllerMappingForGUID - */ -extern DECLSPEC char * SDLCALL SDL_GameControllerMapping(SDL_GameController *gamecontroller); - -/** - * Check if the given joystick is supported by the game controller interface. - * - * `joystick_index` is the same as the `device_index` passed to - * SDL_JoystickOpen(). - * - * \param joystick_index the device_index of a device, up to - * SDL_NumJoysticks() - * \returns SDL_TRUE if the given joystick is supported by the game controller - * interface, SDL_FALSE if it isn't or it's an invalid index. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerNameForIndex - * \sa SDL_GameControllerOpen - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsGameController(int joystick_index); - -/** - * Get the implementation dependent name for the game controller. - * - * This function can be called before any controllers are opened. - * - * `joystick_index` is the same as the `device_index` passed to - * SDL_JoystickOpen(). - * - * \param joystick_index the device_index of a device, from zero to - * SDL_NumJoysticks()-1 - * \returns the implementation-dependent name for the game controller, or NULL - * if there is no name or the index is invalid. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerName - * \sa SDL_GameControllerOpen - * \sa SDL_IsGameController - */ -extern DECLSPEC const char *SDLCALL SDL_GameControllerNameForIndex(int joystick_index); - -/** - * Get the implementation dependent path for the game controller. - * - * This function can be called before any controllers are opened. - * - * `joystick_index` is the same as the `device_index` passed to - * SDL_JoystickOpen(). - * - * \param joystick_index the device_index of a device, from zero to - * SDL_NumJoysticks()-1 - * \returns the implementation-dependent path for the game controller, or NULL - * if there is no path or the index is invalid. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GameControllerPath - */ -extern DECLSPEC const char *SDLCALL SDL_GameControllerPathForIndex(int joystick_index); - -/** - * Get the type of a game controller. - * - * This can be called before any controllers are opened. - * - * \param joystick_index the device_index of a device, from zero to - * SDL_NumJoysticks()-1 - * \returns the controller type. - * - * \since This function is available since SDL 2.0.12. - */ -extern DECLSPEC SDL_GameControllerType SDLCALL SDL_GameControllerTypeForIndex(int joystick_index); - -/** - * Get the mapping of a game controller. - * - * This can be called before any controllers are opened. - * - * \param joystick_index the device_index of a device, from zero to - * SDL_NumJoysticks()-1 - * \returns the mapping string. Must be freed with SDL_free(). Returns NULL if - * no mapping is available. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC char *SDLCALL SDL_GameControllerMappingForDeviceIndex(int joystick_index); - -/** - * Open a game controller for use. - * - * `joystick_index` is the same as the `device_index` passed to - * SDL_JoystickOpen(). - * - * The index passed as an argument refers to the N'th game controller on the - * system. This index is not the value which will identify this controller in - * future controller events. The joystick's instance id (SDL_JoystickID) will - * be used there instead. - * - * \param joystick_index the device_index of a device, up to - * SDL_NumJoysticks() - * \returns a gamecontroller identifier or NULL if an error occurred; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerClose - * \sa SDL_GameControllerNameForIndex - * \sa SDL_IsGameController - */ -extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerOpen(int joystick_index); - -/** - * Get the SDL_GameController associated with an instance id. - * - * \param joyid the instance id to get the SDL_GameController for - * \returns an SDL_GameController on success or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.4. - */ -extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerFromInstanceID(SDL_JoystickID joyid); - -/** - * Get the SDL_GameController associated with a player index. - * - * Please note that the player index is _not_ the device index, nor is it the - * instance id! - * - * \param player_index the player index, which is not the device index or the - * instance id! - * \returns the SDL_GameController associated with a player index. - * - * \since This function is available since SDL 2.0.12. - * - * \sa SDL_GameControllerGetPlayerIndex - * \sa SDL_GameControllerSetPlayerIndex - */ -extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerFromPlayerIndex(int player_index); - -/** - * Get the implementation-dependent name for an opened game controller. - * - * This is the same name as returned by SDL_GameControllerNameForIndex(), but - * it takes a controller identifier instead of the (unstable) device index. - * - * \param gamecontroller a game controller identifier previously returned by - * SDL_GameControllerOpen() - * \returns the implementation dependent name for the game controller, or NULL - * if there is no name or the identifier passed is invalid. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerNameForIndex - * \sa SDL_GameControllerOpen - */ -extern DECLSPEC const char *SDLCALL SDL_GameControllerName(SDL_GameController *gamecontroller); - -/** - * Get the implementation-dependent path for an opened game controller. - * - * This is the same path as returned by SDL_GameControllerNameForIndex(), but - * it takes a controller identifier instead of the (unstable) device index. - * - * \param gamecontroller a game controller identifier previously returned by - * SDL_GameControllerOpen() - * \returns the implementation dependent path for the game controller, or NULL - * if there is no path or the identifier passed is invalid. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GameControllerPathForIndex - */ -extern DECLSPEC const char *SDLCALL SDL_GameControllerPath(SDL_GameController *gamecontroller); - -/** - * Get the type of this currently opened controller - * - * This is the same name as returned by SDL_GameControllerTypeForIndex(), but - * it takes a controller identifier instead of the (unstable) device index. - * - * \param gamecontroller the game controller object to query. - * \returns the controller type. - * - * \since This function is available since SDL 2.0.12. - */ -extern DECLSPEC SDL_GameControllerType SDLCALL SDL_GameControllerGetType(SDL_GameController *gamecontroller); - -/** - * Get the player index of an opened game controller. - * - * For XInput controllers this returns the XInput user index. - * - * \param gamecontroller the game controller object to query. - * \returns the player index for controller, or -1 if it's not available. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerGetPlayerIndex(SDL_GameController *gamecontroller); - -/** - * Set the player index of an opened game controller. - * - * \param gamecontroller the game controller object to adjust. - * \param player_index Player index to assign to this controller, or -1 to - * clear the player index and turn off player LEDs. - * - * \since This function is available since SDL 2.0.12. - */ -extern DECLSPEC void SDLCALL SDL_GameControllerSetPlayerIndex(SDL_GameController *gamecontroller, int player_index); - -/** - * Get the USB vendor ID of an opened controller, if available. - * - * If the vendor ID isn't available this function returns 0. - * - * \param gamecontroller the game controller object to query. - * \return the USB vendor ID, or zero if unavailable. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetVendor(SDL_GameController *gamecontroller); - -/** - * Get the USB product ID of an opened controller, if available. - * - * If the product ID isn't available this function returns 0. - * - * \param gamecontroller the game controller object to query. - * \return the USB product ID, or zero if unavailable. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetProduct(SDL_GameController *gamecontroller); - -/** - * Get the product version of an opened controller, if available. - * - * If the product version isn't available this function returns 0. - * - * \param gamecontroller the game controller object to query. - * \return the USB product version, or zero if unavailable. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetProductVersion(SDL_GameController *gamecontroller); - -/** - * Get the firmware version of an opened controller, if available. - * - * If the firmware version isn't available this function returns 0. - * - * \param gamecontroller the game controller object to query. - * \return the controller firmware version, or zero if unavailable. - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetFirmwareVersion(SDL_GameController *gamecontroller); - -/** - * Get the serial number of an opened controller, if available. - * - * Returns the serial number of the controller, or NULL if it is not - * available. - * - * \param gamecontroller the game controller object to query. - * \return the serial number, or NULL if unavailable. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC const char * SDLCALL SDL_GameControllerGetSerial(SDL_GameController *gamecontroller); - -/** - * Check if a controller has been opened and is currently connected. - * - * \param gamecontroller a game controller identifier previously returned by - * SDL_GameControllerOpen() - * \returns SDL_TRUE if the controller has been opened and is currently - * connected, or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerClose - * \sa SDL_GameControllerOpen - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerGetAttached(SDL_GameController *gamecontroller); - -/** - * Get the Joystick ID from a Game Controller. - * - * This function will give you a SDL_Joystick object, which allows you to use - * the SDL_Joystick functions with a SDL_GameController object. This would be - * useful for getting a joystick's position at any given time, even if it - * hasn't moved (moving it would produce an event, which would have the axis' - * value). - * - * The pointer returned is owned by the SDL_GameController. You should not - * call SDL_JoystickClose() on it, for example, since doing so will likely - * cause SDL to crash. - * - * \param gamecontroller the game controller object that you want to get a - * joystick from - * \returns a SDL_Joystick object; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_Joystick *SDLCALL SDL_GameControllerGetJoystick(SDL_GameController *gamecontroller); - -/** - * Query or change current state of Game Controller events. - * - * If controller events are disabled, you must call SDL_GameControllerUpdate() - * yourself and check the state of the controller when you want controller - * information. - * - * Any number can be passed to SDL_GameControllerEventState(), but only -1, 0, - * and 1 will have any effect. Other numbers will just be returned. - * - * \param state can be one of `SDL_QUERY`, `SDL_IGNORE`, or `SDL_ENABLE` - * \returns the same value passed to the function, with exception to -1 - * (SDL_QUERY), which will return the current state. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickEventState - */ -extern DECLSPEC int SDLCALL SDL_GameControllerEventState(int state); - -/** - * Manually pump game controller updates if not using the loop. - * - * This function is called automatically by the event loop if events are - * enabled. Under such circumstances, it will not be necessary to call this - * function. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC void SDLCALL SDL_GameControllerUpdate(void); - - -/** - * The list of axes available from a controller - * - * Thumbstick axis values range from SDL_JOYSTICK_AXIS_MIN to SDL_JOYSTICK_AXIS_MAX, - * and are centered within ~8000 of zero, though advanced UI will allow users to set - * or autodetect the dead zone, which varies between controllers. - * - * Trigger axis values range from 0 to SDL_JOYSTICK_AXIS_MAX. - */ -typedef enum -{ - SDL_CONTROLLER_AXIS_INVALID = -1, - SDL_CONTROLLER_AXIS_LEFTX, - SDL_CONTROLLER_AXIS_LEFTY, - SDL_CONTROLLER_AXIS_RIGHTX, - SDL_CONTROLLER_AXIS_RIGHTY, - SDL_CONTROLLER_AXIS_TRIGGERLEFT, - SDL_CONTROLLER_AXIS_TRIGGERRIGHT, - SDL_CONTROLLER_AXIS_MAX -} SDL_GameControllerAxis; - -/** - * Convert a string into SDL_GameControllerAxis enum. - * - * This function is called internally to translate SDL_GameController mapping - * strings for the underlying joystick device into the consistent - * SDL_GameController mapping. You do not normally need to call this function - * unless you are parsing SDL_GameController mappings in your own code. - * - * Note specially that "righttrigger" and "lefttrigger" map to - * `SDL_CONTROLLER_AXIS_TRIGGERRIGHT` and `SDL_CONTROLLER_AXIS_TRIGGERLEFT`, - * respectively. - * - * \param str string representing a SDL_GameController axis - * \returns the SDL_GameControllerAxis enum corresponding to the input string, - * or `SDL_CONTROLLER_AXIS_INVALID` if no match was found. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerGetStringForAxis - */ -extern DECLSPEC SDL_GameControllerAxis SDLCALL SDL_GameControllerGetAxisFromString(const char *str); - -/** - * Convert from an SDL_GameControllerAxis enum to a string. - * - * The caller should not SDL_free() the returned string. - * - * \param axis an enum value for a given SDL_GameControllerAxis - * \returns a string for the given axis, or NULL if an invalid axis is - * specified. The string returned is of the format used by - * SDL_GameController mapping strings. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerGetAxisFromString - */ -extern DECLSPEC const char* SDLCALL SDL_GameControllerGetStringForAxis(SDL_GameControllerAxis axis); - -/** - * Get the SDL joystick layer binding for a controller axis mapping. - * - * \param gamecontroller a game controller - * \param axis an axis enum value (one of the SDL_GameControllerAxis values) - * \returns a SDL_GameControllerButtonBind describing the bind. On failure - * (like the given Controller axis doesn't exist on the device), its - * `.bindType` will be `SDL_CONTROLLER_BINDTYPE_NONE`. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerGetBindForButton - */ -extern DECLSPEC SDL_GameControllerButtonBind SDLCALL -SDL_GameControllerGetBindForAxis(SDL_GameController *gamecontroller, - SDL_GameControllerAxis axis); - -/** - * Query whether a game controller has a given axis. - * - * This merely reports whether the controller's mapping defined this axis, as - * that is all the information SDL has about the physical device. - * - * \param gamecontroller a game controller - * \param axis an axis enum value (an SDL_GameControllerAxis value) - * \returns SDL_TRUE if the controller has this axis, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC SDL_bool SDLCALL -SDL_GameControllerHasAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis); - -/** - * Get the current state of an axis control on a game controller. - * - * The axis indices start at index 0. - * - * The state is a value ranging from -32768 to 32767. Triggers, however, range - * from 0 to 32767 (they never return a negative value). - * - * \param gamecontroller a game controller - * \param axis an axis index (one of the SDL_GameControllerAxis values) - * \returns axis state (including 0) on success or 0 (also) on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerGetButton - */ -extern DECLSPEC Sint16 SDLCALL -SDL_GameControllerGetAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis); - -/** - * The list of buttons available from a controller - */ -typedef enum -{ - SDL_CONTROLLER_BUTTON_INVALID = -1, - SDL_CONTROLLER_BUTTON_A, - SDL_CONTROLLER_BUTTON_B, - SDL_CONTROLLER_BUTTON_X, - SDL_CONTROLLER_BUTTON_Y, - SDL_CONTROLLER_BUTTON_BACK, - SDL_CONTROLLER_BUTTON_GUIDE, - SDL_CONTROLLER_BUTTON_START, - SDL_CONTROLLER_BUTTON_LEFTSTICK, - SDL_CONTROLLER_BUTTON_RIGHTSTICK, - SDL_CONTROLLER_BUTTON_LEFTSHOULDER, - SDL_CONTROLLER_BUTTON_RIGHTSHOULDER, - SDL_CONTROLLER_BUTTON_DPAD_UP, - SDL_CONTROLLER_BUTTON_DPAD_DOWN, - SDL_CONTROLLER_BUTTON_DPAD_LEFT, - SDL_CONTROLLER_BUTTON_DPAD_RIGHT, - SDL_CONTROLLER_BUTTON_MISC1, /* Xbox Series X share button, PS5 microphone button, Nintendo Switch Pro capture button, Amazon Luna microphone button */ - SDL_CONTROLLER_BUTTON_PADDLE1, /* Xbox Elite paddle P1 (upper left, facing the back) */ - SDL_CONTROLLER_BUTTON_PADDLE2, /* Xbox Elite paddle P3 (upper right, facing the back) */ - SDL_CONTROLLER_BUTTON_PADDLE3, /* Xbox Elite paddle P2 (lower left, facing the back) */ - SDL_CONTROLLER_BUTTON_PADDLE4, /* Xbox Elite paddle P4 (lower right, facing the back) */ - SDL_CONTROLLER_BUTTON_TOUCHPAD, /* PS4/PS5 touchpad button */ - SDL_CONTROLLER_BUTTON_MAX -} SDL_GameControllerButton; - -/** - * Convert a string into an SDL_GameControllerButton enum. - * - * This function is called internally to translate SDL_GameController mapping - * strings for the underlying joystick device into the consistent - * SDL_GameController mapping. You do not normally need to call this function - * unless you are parsing SDL_GameController mappings in your own code. - * - * \param str string representing a SDL_GameController axis - * \returns the SDL_GameControllerButton enum corresponding to the input - * string, or `SDL_CONTROLLER_AXIS_INVALID` if no match was found. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_GameControllerButton SDLCALL SDL_GameControllerGetButtonFromString(const char *str); - -/** - * Convert from an SDL_GameControllerButton enum to a string. - * - * The caller should not SDL_free() the returned string. - * - * \param button an enum value for a given SDL_GameControllerButton - * \returns a string for the given button, or NULL if an invalid button is - * specified. The string returned is of the format used by - * SDL_GameController mapping strings. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerGetButtonFromString - */ -extern DECLSPEC const char* SDLCALL SDL_GameControllerGetStringForButton(SDL_GameControllerButton button); - -/** - * Get the SDL joystick layer binding for a controller button mapping. - * - * \param gamecontroller a game controller - * \param button an button enum value (an SDL_GameControllerButton value) - * \returns a SDL_GameControllerButtonBind describing the bind. On failure - * (like the given Controller button doesn't exist on the device), - * its `.bindType` will be `SDL_CONTROLLER_BINDTYPE_NONE`. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerGetBindForAxis - */ -extern DECLSPEC SDL_GameControllerButtonBind SDLCALL -SDL_GameControllerGetBindForButton(SDL_GameController *gamecontroller, - SDL_GameControllerButton button); - -/** - * Query whether a game controller has a given button. - * - * This merely reports whether the controller's mapping defined this button, - * as that is all the information SDL has about the physical device. - * - * \param gamecontroller a game controller - * \param button a button enum value (an SDL_GameControllerButton value) - * \returns SDL_TRUE if the controller has this button, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerHasButton(SDL_GameController *gamecontroller, - SDL_GameControllerButton button); - -/** - * Get the current state of a button on a game controller. - * - * \param gamecontroller a game controller - * \param button a button index (one of the SDL_GameControllerButton values) - * \returns 1 for pressed state or 0 for not pressed state or error; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerGetAxis - */ -extern DECLSPEC Uint8 SDLCALL SDL_GameControllerGetButton(SDL_GameController *gamecontroller, - SDL_GameControllerButton button); - -/** - * Get the number of touchpads on a game controller. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerGetNumTouchpads(SDL_GameController *gamecontroller); - -/** - * Get the number of supported simultaneous fingers on a touchpad on a game - * controller. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerGetNumTouchpadFingers(SDL_GameController *gamecontroller, int touchpad); - -/** - * Get the current state of a finger on a touchpad on a game controller. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerGetTouchpadFinger(SDL_GameController *gamecontroller, int touchpad, int finger, Uint8 *state, float *x, float *y, float *pressure); - -/** - * Return whether a game controller has a particular sensor. - * - * \param gamecontroller The controller to query - * \param type The type of sensor to query - * \returns SDL_TRUE if the sensor exists, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerHasSensor(SDL_GameController *gamecontroller, SDL_SensorType type); - -/** - * Set whether data reporting for a game controller sensor is enabled. - * - * \param gamecontroller The controller to update - * \param type The type of sensor to enable/disable - * \param enabled Whether data reporting should be enabled - * \returns 0 or -1 if an error occurred. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerSetSensorEnabled(SDL_GameController *gamecontroller, SDL_SensorType type, SDL_bool enabled); - -/** - * Query whether sensor data reporting is enabled for a game controller. - * - * \param gamecontroller The controller to query - * \param type The type of sensor to query - * \returns SDL_TRUE if the sensor is enabled, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerIsSensorEnabled(SDL_GameController *gamecontroller, SDL_SensorType type); - -/** - * Get the data rate (number of events per second) of a game controller - * sensor. - * - * \param gamecontroller The controller to query - * \param type The type of sensor to query - * \return the data rate, or 0.0f if the data rate is not available. - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC float SDLCALL SDL_GameControllerGetSensorDataRate(SDL_GameController *gamecontroller, SDL_SensorType type); - -/** - * Get the current state of a game controller sensor. - * - * The number of values and interpretation of the data is sensor dependent. - * See SDL_sensor.h for the details for each type of sensor. - * - * \param gamecontroller The controller to query - * \param type The type of sensor to query - * \param data A pointer filled with the current sensor state - * \param num_values The number of values to write to data - * \return 0 or -1 if an error occurred. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerGetSensorData(SDL_GameController *gamecontroller, SDL_SensorType type, float *data, int num_values); - -/** - * Get the current state of a game controller sensor with the timestamp of the - * last update. - * - * The number of values and interpretation of the data is sensor dependent. - * See SDL_sensor.h for the details for each type of sensor. - * - * \param gamecontroller The controller to query - * \param type The type of sensor to query - * \param timestamp A pointer filled with the timestamp in microseconds of the - * current sensor reading if available, or 0 if not - * \param data A pointer filled with the current sensor state - * \param num_values The number of values to write to data - * \return 0 or -1 if an error occurred. - * - * \since This function is available since SDL 2.26.0. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerGetSensorDataWithTimestamp(SDL_GameController *gamecontroller, SDL_SensorType type, Uint64 *timestamp, float *data, int num_values); - -/** - * Start a rumble effect on a game controller. - * - * Each call to this function cancels any previous rumble effect, and calling - * it with 0 intensity stops any rumbling. - * - * \param gamecontroller The controller to vibrate - * \param low_frequency_rumble The intensity of the low frequency (left) - * rumble motor, from 0 to 0xFFFF - * \param high_frequency_rumble The intensity of the high frequency (right) - * rumble motor, from 0 to 0xFFFF - * \param duration_ms The duration of the rumble effect, in milliseconds - * \returns 0, or -1 if rumble isn't supported on this controller - * - * \since This function is available since SDL 2.0.9. - * - * \sa SDL_GameControllerHasRumble - */ -extern DECLSPEC int SDLCALL SDL_GameControllerRumble(SDL_GameController *gamecontroller, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble, Uint32 duration_ms); - -/** - * Start a rumble effect in the game controller's triggers. - * - * Each call to this function cancels any previous trigger rumble effect, and - * calling it with 0 intensity stops any rumbling. - * - * Note that this is rumbling of the _triggers_ and not the game controller as - * a whole. This is currently only supported on Xbox One controllers. If you - * want the (more common) whole-controller rumble, use - * SDL_GameControllerRumble() instead. - * - * \param gamecontroller The controller to vibrate - * \param left_rumble The intensity of the left trigger rumble motor, from 0 - * to 0xFFFF - * \param right_rumble The intensity of the right trigger rumble motor, from 0 - * to 0xFFFF - * \param duration_ms The duration of the rumble effect, in milliseconds - * \returns 0, or -1 if trigger rumble isn't supported on this controller - * - * \since This function is available since SDL 2.0.14. - * - * \sa SDL_GameControllerHasRumbleTriggers - */ -extern DECLSPEC int SDLCALL SDL_GameControllerRumbleTriggers(SDL_GameController *gamecontroller, Uint16 left_rumble, Uint16 right_rumble, Uint32 duration_ms); - -/** - * Query whether a game controller has an LED. - * - * \param gamecontroller The controller to query - * \returns SDL_TRUE, or SDL_FALSE if this controller does not have a - * modifiable LED - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerHasLED(SDL_GameController *gamecontroller); - -/** - * Query whether a game controller has rumble support. - * - * \param gamecontroller The controller to query - * \returns SDL_TRUE, or SDL_FALSE if this controller does not have rumble - * support - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_GameControllerRumble - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerHasRumble(SDL_GameController *gamecontroller); - -/** - * Query whether a game controller has rumble support on triggers. - * - * \param gamecontroller The controller to query - * \returns SDL_TRUE, or SDL_FALSE if this controller does not have trigger - * rumble support - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_GameControllerRumbleTriggers - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerHasRumbleTriggers(SDL_GameController *gamecontroller); - -/** - * Update a game controller's LED color. - * - * \param gamecontroller The controller to update - * \param red The intensity of the red LED - * \param green The intensity of the green LED - * \param blue The intensity of the blue LED - * \returns 0, or -1 if this controller does not have a modifiable LED - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerSetLED(SDL_GameController *gamecontroller, Uint8 red, Uint8 green, Uint8 blue); - -/** - * Send a controller specific effect packet - * - * \param gamecontroller The controller to affect - * \param data The data to send to the controller - * \param size The size of the data to send to the controller - * \returns 0, or -1 if this controller or driver doesn't support effect - * packets - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC int SDLCALL SDL_GameControllerSendEffect(SDL_GameController *gamecontroller, const void *data, int size); - -/** - * Close a game controller previously opened with SDL_GameControllerOpen(). - * - * \param gamecontroller a game controller identifier previously returned by - * SDL_GameControllerOpen() - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerOpen - */ -extern DECLSPEC void SDLCALL SDL_GameControllerClose(SDL_GameController *gamecontroller); - -/** - * Return the sfSymbolsName for a given button on a game controller on Apple - * platforms. - * - * \param gamecontroller the controller to query - * \param button a button on the game controller - * \returns the sfSymbolsName or NULL if the name can't be found - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_GameControllerGetAppleSFSymbolsNameForAxis - */ -extern DECLSPEC const char* SDLCALL SDL_GameControllerGetAppleSFSymbolsNameForButton(SDL_GameController *gamecontroller, SDL_GameControllerButton button); - -/** - * Return the sfSymbolsName for a given axis on a game controller on Apple - * platforms. - * - * \param gamecontroller the controller to query - * \param axis an axis on the game controller - * \returns the sfSymbolsName or NULL if the name can't be found - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_GameControllerGetAppleSFSymbolsNameForButton - */ -extern DECLSPEC const char* SDLCALL SDL_GameControllerGetAppleSFSymbolsNameForAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_gamecontroller_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_gesture.h b/release/SDL2.framework/Versions/A/Headers/SDL_gesture.h deleted file mode 100644 index eee3847..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_gesture.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_gesture.h - * - * Include file for SDL gesture event handling. - */ - -#ifndef SDL_gesture_h_ -#define SDL_gesture_h_ - -#include -#include -#include - -#include - - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -typedef Sint64 SDL_GestureID; - -/* Function prototypes */ - -/** - * Begin recording a gesture on a specified touch device or all touch devices. - * - * If the parameter `touchId` is -1 (i.e., all devices), this function will - * always return 1, regardless of whether there actually are any devices. - * - * \param touchId the touch device id, or -1 for all touch devices - * \returns 1 on success or 0 if the specified device could not be found. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetTouchDevice - */ -extern DECLSPEC int SDLCALL SDL_RecordGesture(SDL_TouchID touchId); - - -/** - * Save all currently loaded Dollar Gesture templates. - * - * \param dst a SDL_RWops to save to - * \returns the number of saved templates on success or 0 on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LoadDollarTemplates - * \sa SDL_SaveDollarTemplate - */ -extern DECLSPEC int SDLCALL SDL_SaveAllDollarTemplates(SDL_RWops *dst); - -/** - * Save a currently loaded Dollar Gesture template. - * - * \param gestureId a gesture id - * \param dst a SDL_RWops to save to - * \returns 1 on success or 0 on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LoadDollarTemplates - * \sa SDL_SaveAllDollarTemplates - */ -extern DECLSPEC int SDLCALL SDL_SaveDollarTemplate(SDL_GestureID gestureId,SDL_RWops *dst); - - -/** - * Load Dollar Gesture templates from a file. - * - * \param touchId a touch id - * \param src a SDL_RWops to load from - * \returns the number of loaded templates on success or a negative error code - * (or 0) on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SaveAllDollarTemplates - * \sa SDL_SaveDollarTemplate - */ -extern DECLSPEC int SDLCALL SDL_LoadDollarTemplates(SDL_TouchID touchId, SDL_RWops *src); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_gesture_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_guid.h b/release/SDL2.framework/Versions/A/Headers/SDL_guid.h deleted file mode 100644 index 27c3dda..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_guid.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_guid.h - * - * Include file for handling ::SDL_GUID values. - */ - -#ifndef SDL_guid_h_ -#define SDL_guid_h_ - -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * An SDL_GUID is a 128-bit identifier for an input device that - * identifies that device across runs of SDL programs on the same - * platform. If the device is detached and then re-attached to a - * different port, or if the base system is rebooted, the device - * should still report the same GUID. - * - * GUIDs are as precise as possible but are not guaranteed to - * distinguish physically distinct but equivalent devices. For - * example, two game controllers from the same vendor with the same - * product ID and revision may have the same GUID. - * - * GUIDs may be platform-dependent (i.e., the same device may report - * different GUIDs on different operating systems). - */ -typedef struct { - Uint8 data[16]; -} SDL_GUID; - -/* Function prototypes */ - -/** - * Get an ASCII string representation for a given ::SDL_GUID. - * - * You should supply at least 33 bytes for pszGUID. - * - * \param guid the ::SDL_GUID you wish to convert to string - * \param pszGUID buffer in which to write the ASCII string - * \param cbGUID the size of pszGUID - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GUIDFromString - */ -extern DECLSPEC void SDLCALL SDL_GUIDToString(SDL_GUID guid, char *pszGUID, int cbGUID); - -/** - * Convert a GUID string into a ::SDL_GUID structure. - * - * Performs no error checking. If this function is given a string containing - * an invalid GUID, the function will silently succeed, but the GUID generated - * will not be useful. - * - * \param pchGUID string containing an ASCII representation of a GUID - * \returns a ::SDL_GUID structure. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GUIDToString - */ -extern DECLSPEC SDL_GUID SDLCALL SDL_GUIDFromString(const char *pchGUID); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_guid_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_haptic.h b/release/SDL2.framework/Versions/A/Headers/SDL_haptic.h deleted file mode 100644 index 111d197..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_haptic.h +++ /dev/null @@ -1,1341 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_haptic.h - * - * \brief The SDL haptic subsystem allows you to control haptic (force feedback) - * devices. - * - * The basic usage is as follows: - * - Initialize the subsystem (::SDL_INIT_HAPTIC). - * - Open a haptic device. - * - SDL_HapticOpen() to open from index. - * - SDL_HapticOpenFromJoystick() to open from an existing joystick. - * - Create an effect (::SDL_HapticEffect). - * - Upload the effect with SDL_HapticNewEffect(). - * - Run the effect with SDL_HapticRunEffect(). - * - (optional) Free the effect with SDL_HapticDestroyEffect(). - * - Close the haptic device with SDL_HapticClose(). - * - * \par Simple rumble example: - * \code - * SDL_Haptic *haptic; - * - * // Open the device - * haptic = SDL_HapticOpen( 0 ); - * if (haptic == NULL) - * return -1; - * - * // Initialize simple rumble - * if (SDL_HapticRumbleInit( haptic ) != 0) - * return -1; - * - * // Play effect at 50% strength for 2 seconds - * if (SDL_HapticRumblePlay( haptic, 0.5, 2000 ) != 0) - * return -1; - * SDL_Delay( 2000 ); - * - * // Clean up - * SDL_HapticClose( haptic ); - * \endcode - * - * \par Complete example: - * \code - * int test_haptic( SDL_Joystick * joystick ) { - * SDL_Haptic *haptic; - * SDL_HapticEffect effect; - * int effect_id; - * - * // Open the device - * haptic = SDL_HapticOpenFromJoystick( joystick ); - * if (haptic == NULL) return -1; // Most likely joystick isn't haptic - * - * // See if it can do sine waves - * if ((SDL_HapticQuery(haptic) & SDL_HAPTIC_SINE)==0) { - * SDL_HapticClose(haptic); // No sine effect - * return -1; - * } - * - * // Create the effect - * SDL_memset( &effect, 0, sizeof(SDL_HapticEffect) ); // 0 is safe default - * effect.type = SDL_HAPTIC_SINE; - * effect.periodic.direction.type = SDL_HAPTIC_POLAR; // Polar coordinates - * effect.periodic.direction.dir[0] = 18000; // Force comes from south - * effect.periodic.period = 1000; // 1000 ms - * effect.periodic.magnitude = 20000; // 20000/32767 strength - * effect.periodic.length = 5000; // 5 seconds long - * effect.periodic.attack_length = 1000; // Takes 1 second to get max strength - * effect.periodic.fade_length = 1000; // Takes 1 second to fade away - * - * // Upload the effect - * effect_id = SDL_HapticNewEffect( haptic, &effect ); - * - * // Test the effect - * SDL_HapticRunEffect( haptic, effect_id, 1 ); - * SDL_Delay( 5000); // Wait for the effect to finish - * - * // We destroy the effect, although closing the device also does this - * SDL_HapticDestroyEffect( haptic, effect_id ); - * - * // Close the device - * SDL_HapticClose(haptic); - * - * return 0; // Success - * } - * \endcode - */ - -#ifndef SDL_haptic_h_ -#define SDL_haptic_h_ - -#include -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* FIXME: For SDL 2.1, adjust all the magnitude variables to be Uint16 (0xFFFF). - * - * At the moment the magnitude variables are mixed between signed/unsigned, and - * it is also not made clear that ALL of those variables expect a max of 0x7FFF. - * - * Some platforms may have higher precision than that (Linux FF, Windows XInput) - * so we should fix the inconsistency in favor of higher possible precision, - * adjusting for platforms that use different scales. - * -flibit - */ - -/** - * \typedef SDL_Haptic - * - * \brief The haptic structure used to identify an SDL haptic. - * - * \sa SDL_HapticOpen - * \sa SDL_HapticOpenFromJoystick - * \sa SDL_HapticClose - */ -struct _SDL_Haptic; -typedef struct _SDL_Haptic SDL_Haptic; - - -/** - * \name Haptic features - * - * Different haptic features a device can have. - */ -/* @{ */ - -/** - * \name Haptic effects - */ -/* @{ */ - -/** - * \brief Constant effect supported. - * - * Constant haptic effect. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_CONSTANT (1u<<0) - -/** - * \brief Sine wave effect supported. - * - * Periodic haptic effect that simulates sine waves. - * - * \sa SDL_HapticPeriodic - */ -#define SDL_HAPTIC_SINE (1u<<1) - -/** - * \brief Left/Right effect supported. - * - * Haptic effect for direct control over high/low frequency motors. - * - * \sa SDL_HapticLeftRight - * \warning this value was SDL_HAPTIC_SQUARE right before 2.0.0 shipped. Sorry, - * we ran out of bits, and this is important for XInput devices. - */ -#define SDL_HAPTIC_LEFTRIGHT (1u<<2) - -/* !!! FIXME: put this back when we have more bits in 2.1 */ -/* #define SDL_HAPTIC_SQUARE (1<<2) */ - -/** - * \brief Triangle wave effect supported. - * - * Periodic haptic effect that simulates triangular waves. - * - * \sa SDL_HapticPeriodic - */ -#define SDL_HAPTIC_TRIANGLE (1u<<3) - -/** - * \brief Sawtoothup wave effect supported. - * - * Periodic haptic effect that simulates saw tooth up waves. - * - * \sa SDL_HapticPeriodic - */ -#define SDL_HAPTIC_SAWTOOTHUP (1u<<4) - -/** - * \brief Sawtoothdown wave effect supported. - * - * Periodic haptic effect that simulates saw tooth down waves. - * - * \sa SDL_HapticPeriodic - */ -#define SDL_HAPTIC_SAWTOOTHDOWN (1u<<5) - -/** - * \brief Ramp effect supported. - * - * Ramp haptic effect. - * - * \sa SDL_HapticRamp - */ -#define SDL_HAPTIC_RAMP (1u<<6) - -/** - * \brief Spring effect supported - uses axes position. - * - * Condition haptic effect that simulates a spring. Effect is based on the - * axes position. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_SPRING (1u<<7) - -/** - * \brief Damper effect supported - uses axes velocity. - * - * Condition haptic effect that simulates dampening. Effect is based on the - * axes velocity. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_DAMPER (1u<<8) - -/** - * \brief Inertia effect supported - uses axes acceleration. - * - * Condition haptic effect that simulates inertia. Effect is based on the axes - * acceleration. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_INERTIA (1u<<9) - -/** - * \brief Friction effect supported - uses axes movement. - * - * Condition haptic effect that simulates friction. Effect is based on the - * axes movement. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_FRICTION (1u<<10) - -/** - * \brief Custom effect is supported. - * - * User defined custom haptic effect. - */ -#define SDL_HAPTIC_CUSTOM (1u<<11) - -/* @} *//* Haptic effects */ - -/* These last few are features the device has, not effects */ - -/** - * \brief Device can set global gain. - * - * Device supports setting the global gain. - * - * \sa SDL_HapticSetGain - */ -#define SDL_HAPTIC_GAIN (1u<<12) - -/** - * \brief Device can set autocenter. - * - * Device supports setting autocenter. - * - * \sa SDL_HapticSetAutocenter - */ -#define SDL_HAPTIC_AUTOCENTER (1u<<13) - -/** - * \brief Device can be queried for effect status. - * - * Device supports querying effect status. - * - * \sa SDL_HapticGetEffectStatus - */ -#define SDL_HAPTIC_STATUS (1u<<14) - -/** - * \brief Device can be paused. - * - * Devices supports being paused. - * - * \sa SDL_HapticPause - * \sa SDL_HapticUnpause - */ -#define SDL_HAPTIC_PAUSE (1u<<15) - - -/** - * \name Direction encodings - */ -/* @{ */ - -/** - * \brief Uses polar coordinates for the direction. - * - * \sa SDL_HapticDirection - */ -#define SDL_HAPTIC_POLAR 0 - -/** - * \brief Uses cartesian coordinates for the direction. - * - * \sa SDL_HapticDirection - */ -#define SDL_HAPTIC_CARTESIAN 1 - -/** - * \brief Uses spherical coordinates for the direction. - * - * \sa SDL_HapticDirection - */ -#define SDL_HAPTIC_SPHERICAL 2 - -/** - * \brief Use this value to play an effect on the steering wheel axis. This - * provides better compatibility across platforms and devices as SDL will guess - * the correct axis. - * \sa SDL_HapticDirection - */ -#define SDL_HAPTIC_STEERING_AXIS 3 - -/* @} *//* Direction encodings */ - -/* @} *//* Haptic features */ - -/* - * Misc defines. - */ - -/** - * \brief Used to play a device an infinite number of times. - * - * \sa SDL_HapticRunEffect - */ -#define SDL_HAPTIC_INFINITY 4294967295U - - -/** - * \brief Structure that represents a haptic direction. - * - * This is the direction where the force comes from, - * instead of the direction in which the force is exerted. - * - * Directions can be specified by: - * - ::SDL_HAPTIC_POLAR : Specified by polar coordinates. - * - ::SDL_HAPTIC_CARTESIAN : Specified by cartesian coordinates. - * - ::SDL_HAPTIC_SPHERICAL : Specified by spherical coordinates. - * - * Cardinal directions of the haptic device are relative to the positioning - * of the device. North is considered to be away from the user. - * - * The following diagram represents the cardinal directions: - * \verbatim - .--. - |__| .-------. - |=.| |.-----.| - |--| || || - | | |'-----'| - |__|~')_____(' - [ COMPUTER ] - - - North (0,-1) - ^ - | - | - (-1,0) West <----[ HAPTIC ]----> East (1,0) - | - | - v - South (0,1) - - - [ USER ] - \|||/ - (o o) - ---ooO-(_)-Ooo--- - \endverbatim - * - * If type is ::SDL_HAPTIC_POLAR, direction is encoded by hundredths of a - * degree starting north and turning clockwise. ::SDL_HAPTIC_POLAR only uses - * the first \c dir parameter. The cardinal directions would be: - * - North: 0 (0 degrees) - * - East: 9000 (90 degrees) - * - South: 18000 (180 degrees) - * - West: 27000 (270 degrees) - * - * If type is ::SDL_HAPTIC_CARTESIAN, direction is encoded by three positions - * (X axis, Y axis and Z axis (with 3 axes)). ::SDL_HAPTIC_CARTESIAN uses - * the first three \c dir parameters. The cardinal directions would be: - * - North: 0,-1, 0 - * - East: 1, 0, 0 - * - South: 0, 1, 0 - * - West: -1, 0, 0 - * - * The Z axis represents the height of the effect if supported, otherwise - * it's unused. In cartesian encoding (1, 2) would be the same as (2, 4), you - * can use any multiple you want, only the direction matters. - * - * If type is ::SDL_HAPTIC_SPHERICAL, direction is encoded by two rotations. - * The first two \c dir parameters are used. The \c dir parameters are as - * follows (all values are in hundredths of degrees): - * - Degrees from (1, 0) rotated towards (0, 1). - * - Degrees towards (0, 0, 1) (device needs at least 3 axes). - * - * - * Example of force coming from the south with all encodings (force coming - * from the south means the user will have to pull the stick to counteract): - * \code - * SDL_HapticDirection direction; - * - * // Cartesian directions - * direction.type = SDL_HAPTIC_CARTESIAN; // Using cartesian direction encoding. - * direction.dir[0] = 0; // X position - * direction.dir[1] = 1; // Y position - * // Assuming the device has 2 axes, we don't need to specify third parameter. - * - * // Polar directions - * direction.type = SDL_HAPTIC_POLAR; // We'll be using polar direction encoding. - * direction.dir[0] = 18000; // Polar only uses first parameter - * - * // Spherical coordinates - * direction.type = SDL_HAPTIC_SPHERICAL; // Spherical encoding - * direction.dir[0] = 9000; // Since we only have two axes we don't need more parameters. - * \endcode - * - * \sa SDL_HAPTIC_POLAR - * \sa SDL_HAPTIC_CARTESIAN - * \sa SDL_HAPTIC_SPHERICAL - * \sa SDL_HAPTIC_STEERING_AXIS - * \sa SDL_HapticEffect - * \sa SDL_HapticNumAxes - */ -typedef struct SDL_HapticDirection -{ - Uint8 type; /**< The type of encoding. */ - Sint32 dir[3]; /**< The encoded direction. */ -} SDL_HapticDirection; - - -/** - * \brief A structure containing a template for a Constant effect. - * - * This struct is exclusively for the ::SDL_HAPTIC_CONSTANT effect. - * - * A constant effect applies a constant force in the specified direction - * to the joystick. - * - * \sa SDL_HAPTIC_CONSTANT - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticConstant -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_CONSTANT */ - SDL_HapticDirection direction; /**< Direction of the effect. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Constant */ - Sint16 level; /**< Strength of the constant effect. */ - - /* Envelope */ - Uint16 attack_length; /**< Duration of the attack. */ - Uint16 attack_level; /**< Level at the start of the attack. */ - Uint16 fade_length; /**< Duration of the fade. */ - Uint16 fade_level; /**< Level at the end of the fade. */ -} SDL_HapticConstant; - -/** - * \brief A structure containing a template for a Periodic effect. - * - * The struct handles the following effects: - * - ::SDL_HAPTIC_SINE - * - ::SDL_HAPTIC_LEFTRIGHT - * - ::SDL_HAPTIC_TRIANGLE - * - ::SDL_HAPTIC_SAWTOOTHUP - * - ::SDL_HAPTIC_SAWTOOTHDOWN - * - * A periodic effect consists in a wave-shaped effect that repeats itself - * over time. The type determines the shape of the wave and the parameters - * determine the dimensions of the wave. - * - * Phase is given by hundredth of a degree meaning that giving the phase a value - * of 9000 will displace it 25% of its period. Here are sample values: - * - 0: No phase displacement. - * - 9000: Displaced 25% of its period. - * - 18000: Displaced 50% of its period. - * - 27000: Displaced 75% of its period. - * - 36000: Displaced 100% of its period, same as 0, but 0 is preferred. - * - * Examples: - * \verbatim - SDL_HAPTIC_SINE - __ __ __ __ - / \ / \ / \ / - / \__/ \__/ \__/ - - SDL_HAPTIC_SQUARE - __ __ __ __ __ - | | | | | | | | | | - | |__| |__| |__| |__| | - - SDL_HAPTIC_TRIANGLE - /\ /\ /\ /\ /\ - / \ / \ / \ / \ / - / \/ \/ \/ \/ - - SDL_HAPTIC_SAWTOOTHUP - /| /| /| /| /| /| /| - / | / | / | / | / | / | / | - / |/ |/ |/ |/ |/ |/ | - - SDL_HAPTIC_SAWTOOTHDOWN - \ |\ |\ |\ |\ |\ |\ | - \ | \ | \ | \ | \ | \ | \ | - \| \| \| \| \| \| \| - \endverbatim - * - * \sa SDL_HAPTIC_SINE - * \sa SDL_HAPTIC_LEFTRIGHT - * \sa SDL_HAPTIC_TRIANGLE - * \sa SDL_HAPTIC_SAWTOOTHUP - * \sa SDL_HAPTIC_SAWTOOTHDOWN - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticPeriodic -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_SINE, ::SDL_HAPTIC_LEFTRIGHT, - ::SDL_HAPTIC_TRIANGLE, ::SDL_HAPTIC_SAWTOOTHUP or - ::SDL_HAPTIC_SAWTOOTHDOWN */ - SDL_HapticDirection direction; /**< Direction of the effect. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Periodic */ - Uint16 period; /**< Period of the wave. */ - Sint16 magnitude; /**< Peak value; if negative, equivalent to 180 degrees extra phase shift. */ - Sint16 offset; /**< Mean value of the wave. */ - Uint16 phase; /**< Positive phase shift given by hundredth of a degree. */ - - /* Envelope */ - Uint16 attack_length; /**< Duration of the attack. */ - Uint16 attack_level; /**< Level at the start of the attack. */ - Uint16 fade_length; /**< Duration of the fade. */ - Uint16 fade_level; /**< Level at the end of the fade. */ -} SDL_HapticPeriodic; - -/** - * \brief A structure containing a template for a Condition effect. - * - * The struct handles the following effects: - * - ::SDL_HAPTIC_SPRING: Effect based on axes position. - * - ::SDL_HAPTIC_DAMPER: Effect based on axes velocity. - * - ::SDL_HAPTIC_INERTIA: Effect based on axes acceleration. - * - ::SDL_HAPTIC_FRICTION: Effect based on axes movement. - * - * Direction is handled by condition internals instead of a direction member. - * The condition effect specific members have three parameters. The first - * refers to the X axis, the second refers to the Y axis and the third - * refers to the Z axis. The right terms refer to the positive side of the - * axis and the left terms refer to the negative side of the axis. Please - * refer to the ::SDL_HapticDirection diagram for which side is positive and - * which is negative. - * - * \sa SDL_HapticDirection - * \sa SDL_HAPTIC_SPRING - * \sa SDL_HAPTIC_DAMPER - * \sa SDL_HAPTIC_INERTIA - * \sa SDL_HAPTIC_FRICTION - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticCondition -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_SPRING, ::SDL_HAPTIC_DAMPER, - ::SDL_HAPTIC_INERTIA or ::SDL_HAPTIC_FRICTION */ - SDL_HapticDirection direction; /**< Direction of the effect - Not used ATM. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Condition */ - Uint16 right_sat[3]; /**< Level when joystick is to the positive side; max 0xFFFF. */ - Uint16 left_sat[3]; /**< Level when joystick is to the negative side; max 0xFFFF. */ - Sint16 right_coeff[3]; /**< How fast to increase the force towards the positive side. */ - Sint16 left_coeff[3]; /**< How fast to increase the force towards the negative side. */ - Uint16 deadband[3]; /**< Size of the dead zone; max 0xFFFF: whole axis-range when 0-centered. */ - Sint16 center[3]; /**< Position of the dead zone. */ -} SDL_HapticCondition; - -/** - * \brief A structure containing a template for a Ramp effect. - * - * This struct is exclusively for the ::SDL_HAPTIC_RAMP effect. - * - * The ramp effect starts at start strength and ends at end strength. - * It augments in linear fashion. If you use attack and fade with a ramp - * the effects get added to the ramp effect making the effect become - * quadratic instead of linear. - * - * \sa SDL_HAPTIC_RAMP - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticRamp -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_RAMP */ - SDL_HapticDirection direction; /**< Direction of the effect. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Ramp */ - Sint16 start; /**< Beginning strength level. */ - Sint16 end; /**< Ending strength level. */ - - /* Envelope */ - Uint16 attack_length; /**< Duration of the attack. */ - Uint16 attack_level; /**< Level at the start of the attack. */ - Uint16 fade_length; /**< Duration of the fade. */ - Uint16 fade_level; /**< Level at the end of the fade. */ -} SDL_HapticRamp; - -/** - * \brief A structure containing a template for a Left/Right effect. - * - * This struct is exclusively for the ::SDL_HAPTIC_LEFTRIGHT effect. - * - * The Left/Right effect is used to explicitly control the large and small - * motors, commonly found in modern game controllers. The small (right) motor - * is high frequency, and the large (left) motor is low frequency. - * - * \sa SDL_HAPTIC_LEFTRIGHT - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticLeftRight -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_LEFTRIGHT */ - - /* Replay */ - Uint32 length; /**< Duration of the effect in milliseconds. */ - - /* Rumble */ - Uint16 large_magnitude; /**< Control of the large controller motor. */ - Uint16 small_magnitude; /**< Control of the small controller motor. */ -} SDL_HapticLeftRight; - -/** - * \brief A structure containing a template for the ::SDL_HAPTIC_CUSTOM effect. - * - * This struct is exclusively for the ::SDL_HAPTIC_CUSTOM effect. - * - * A custom force feedback effect is much like a periodic effect, where the - * application can define its exact shape. You will have to allocate the - * data yourself. Data should consist of channels * samples Uint16 samples. - * - * If channels is one, the effect is rotated using the defined direction. - * Otherwise it uses the samples in data for the different axes. - * - * \sa SDL_HAPTIC_CUSTOM - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticCustom -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_CUSTOM */ - SDL_HapticDirection direction; /**< Direction of the effect. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Custom */ - Uint8 channels; /**< Axes to use, minimum of one. */ - Uint16 period; /**< Sample periods. */ - Uint16 samples; /**< Amount of samples. */ - Uint16 *data; /**< Should contain channels*samples items. */ - - /* Envelope */ - Uint16 attack_length; /**< Duration of the attack. */ - Uint16 attack_level; /**< Level at the start of the attack. */ - Uint16 fade_length; /**< Duration of the fade. */ - Uint16 fade_level; /**< Level at the end of the fade. */ -} SDL_HapticCustom; - -/** - * \brief The generic template for any haptic effect. - * - * All values max at 32767 (0x7FFF). Signed values also can be negative. - * Time values unless specified otherwise are in milliseconds. - * - * You can also pass ::SDL_HAPTIC_INFINITY to length instead of a 0-32767 - * value. Neither delay, interval, attack_length nor fade_length support - * ::SDL_HAPTIC_INFINITY. Fade will also not be used since effect never ends. - * - * Additionally, the ::SDL_HAPTIC_RAMP effect does not support a duration of - * ::SDL_HAPTIC_INFINITY. - * - * Button triggers may not be supported on all devices, it is advised to not - * use them if possible. Buttons start at index 1 instead of index 0 like - * the joystick. - * - * If both attack_length and fade_level are 0, the envelope is not used, - * otherwise both values are used. - * - * Common parts: - * \code - * // Replay - All effects have this - * Uint32 length; // Duration of effect (ms). - * Uint16 delay; // Delay before starting effect. - * - * // Trigger - All effects have this - * Uint16 button; // Button that triggers effect. - * Uint16 interval; // How soon before effect can be triggered again. - * - * // Envelope - All effects except condition effects have this - * Uint16 attack_length; // Duration of the attack (ms). - * Uint16 attack_level; // Level at the start of the attack. - * Uint16 fade_length; // Duration of the fade out (ms). - * Uint16 fade_level; // Level at the end of the fade. - * \endcode - * - * - * Here we have an example of a constant effect evolution in time: - * \verbatim - Strength - ^ - | - | effect level --> _________________ - | / \ - | / \ - | / \ - | / \ - | attack_level --> | \ - | | | <--- fade_level - | - +--------------------------------------------------> Time - [--] [---] - attack_length fade_length - - [------------------][-----------------------] - delay length - \endverbatim - * - * Note either the attack_level or the fade_level may be above the actual - * effect level. - * - * \sa SDL_HapticConstant - * \sa SDL_HapticPeriodic - * \sa SDL_HapticCondition - * \sa SDL_HapticRamp - * \sa SDL_HapticLeftRight - * \sa SDL_HapticCustom - */ -typedef union SDL_HapticEffect -{ - /* Common for all force feedback effects */ - Uint16 type; /**< Effect type. */ - SDL_HapticConstant constant; /**< Constant effect. */ - SDL_HapticPeriodic periodic; /**< Periodic effect. */ - SDL_HapticCondition condition; /**< Condition effect. */ - SDL_HapticRamp ramp; /**< Ramp effect. */ - SDL_HapticLeftRight leftright; /**< Left/Right effect. */ - SDL_HapticCustom custom; /**< Custom effect. */ -} SDL_HapticEffect; - - -/* Function prototypes */ - -/** - * Count the number of haptic devices attached to the system. - * - * \returns the number of haptic devices detected on the system or a negative - * error code on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticName - */ -extern DECLSPEC int SDLCALL SDL_NumHaptics(void); - -/** - * Get the implementation dependent name of a haptic device. - * - * This can be called before any joysticks are opened. If no name can be - * found, this function returns NULL. - * - * \param device_index index of the device to query. - * \returns the name of the device or NULL on failure; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_NumHaptics - */ -extern DECLSPEC const char *SDLCALL SDL_HapticName(int device_index); - -/** - * Open a haptic device for use. - * - * The index passed as an argument refers to the N'th haptic device on this - * system. - * - * When opening a haptic device, its gain will be set to maximum and - * autocenter will be disabled. To modify these values use SDL_HapticSetGain() - * and SDL_HapticSetAutocenter(). - * - * \param device_index index of the device to open - * \returns the device identifier or NULL on failure; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticClose - * \sa SDL_HapticIndex - * \sa SDL_HapticOpenFromJoystick - * \sa SDL_HapticOpenFromMouse - * \sa SDL_HapticPause - * \sa SDL_HapticSetAutocenter - * \sa SDL_HapticSetGain - * \sa SDL_HapticStopAll - */ -extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpen(int device_index); - -/** - * Check if the haptic device at the designated index has been opened. - * - * \param device_index the index of the device to query - * \returns 1 if it has been opened, 0 if it hasn't or on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticIndex - * \sa SDL_HapticOpen - */ -extern DECLSPEC int SDLCALL SDL_HapticOpened(int device_index); - -/** - * Get the index of a haptic device. - * - * \param haptic the SDL_Haptic device to query - * \returns the index of the specified haptic device or a negative error code - * on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticOpen - * \sa SDL_HapticOpened - */ -extern DECLSPEC int SDLCALL SDL_HapticIndex(SDL_Haptic * haptic); - -/** - * Query whether or not the current mouse has haptic capabilities. - * - * \returns SDL_TRUE if the mouse is haptic or SDL_FALSE if it isn't. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticOpenFromMouse - */ -extern DECLSPEC int SDLCALL SDL_MouseIsHaptic(void); - -/** - * Try to open a haptic device from the current mouse. - * - * \returns the haptic device identifier or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticOpen - * \sa SDL_MouseIsHaptic - */ -extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromMouse(void); - -/** - * Query if a joystick has haptic features. - * - * \param joystick the SDL_Joystick to test for haptic capabilities - * \returns SDL_TRUE if the joystick is haptic, SDL_FALSE if it isn't, or a - * negative error code on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticOpenFromJoystick - */ -extern DECLSPEC int SDLCALL SDL_JoystickIsHaptic(SDL_Joystick * joystick); - -/** - * Open a haptic device for use from a joystick device. - * - * You must still close the haptic device separately. It will not be closed - * with the joystick. - * - * When opened from a joystick you should first close the haptic device before - * closing the joystick device. If not, on some implementations the haptic - * device will also get unallocated and you'll be unable to use force feedback - * on that device. - * - * \param joystick the SDL_Joystick to create a haptic device from - * \returns a valid haptic device identifier on success or NULL on failure; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticClose - * \sa SDL_HapticOpen - * \sa SDL_JoystickIsHaptic - */ -extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromJoystick(SDL_Joystick * - joystick); - -/** - * Close a haptic device previously opened with SDL_HapticOpen(). - * - * \param haptic the SDL_Haptic device to close - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticOpen - */ -extern DECLSPEC void SDLCALL SDL_HapticClose(SDL_Haptic * haptic); - -/** - * Get the number of effects a haptic device can store. - * - * On some platforms this isn't fully supported, and therefore is an - * approximation. Always check to see if your created effect was actually - * created and do not rely solely on SDL_HapticNumEffects(). - * - * \param haptic the SDL_Haptic device to query - * \returns the number of effects the haptic device can store or a negative - * error code on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticNumEffectsPlaying - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticNumEffects(SDL_Haptic * haptic); - -/** - * Get the number of effects a haptic device can play at the same time. - * - * This is not supported on all platforms, but will always return a value. - * - * \param haptic the SDL_Haptic device to query maximum playing effects - * \returns the number of effects the haptic device can play at the same time - * or a negative error code on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticNumEffects - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticNumEffectsPlaying(SDL_Haptic * haptic); - -/** - * Get the haptic device's supported features in bitwise manner. - * - * \param haptic the SDL_Haptic device to query - * \returns a list of supported haptic features in bitwise manner (OR'd), or 0 - * on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticEffectSupported - * \sa SDL_HapticNumEffects - */ -extern DECLSPEC unsigned int SDLCALL SDL_HapticQuery(SDL_Haptic * haptic); - - -/** - * Get the number of haptic axes the device has. - * - * The number of haptic axes might be useful if working with the - * SDL_HapticDirection effect. - * - * \param haptic the SDL_Haptic device to query - * \returns the number of axes on success or a negative error code on failure; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_HapticNumAxes(SDL_Haptic * haptic); - -/** - * Check to see if an effect is supported by a haptic device. - * - * \param haptic the SDL_Haptic device to query - * \param effect the desired effect to query - * \returns SDL_TRUE if effect is supported, SDL_FALSE if it isn't, or a - * negative error code on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticNewEffect - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticEffectSupported(SDL_Haptic * haptic, - SDL_HapticEffect * - effect); - -/** - * Create a new haptic effect on a specified device. - * - * \param haptic an SDL_Haptic device to create the effect on - * \param effect an SDL_HapticEffect structure containing the properties of - * the effect to create - * \returns the ID of the effect on success or a negative error code on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticDestroyEffect - * \sa SDL_HapticRunEffect - * \sa SDL_HapticUpdateEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticNewEffect(SDL_Haptic * haptic, - SDL_HapticEffect * effect); - -/** - * Update the properties of an effect. - * - * Can be used dynamically, although behavior when dynamically changing - * direction may be strange. Specifically the effect may re-upload itself and - * start playing from the start. You also cannot change the type either when - * running SDL_HapticUpdateEffect(). - * - * \param haptic the SDL_Haptic device that has the effect - * \param effect the identifier of the effect to update - * \param data an SDL_HapticEffect structure containing the new effect - * properties to use - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticDestroyEffect - * \sa SDL_HapticNewEffect - * \sa SDL_HapticRunEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticUpdateEffect(SDL_Haptic * haptic, - int effect, - SDL_HapticEffect * data); - -/** - * Run the haptic effect on its associated haptic device. - * - * To repeat the effect over and over indefinitely, set `iterations` to - * `SDL_HAPTIC_INFINITY`. (Repeats the envelope - attack and fade.) To make - * one instance of the effect last indefinitely (so the effect does not fade), - * set the effect's `length` in its structure/union to `SDL_HAPTIC_INFINITY` - * instead. - * - * \param haptic the SDL_Haptic device to run the effect on - * \param effect the ID of the haptic effect to run - * \param iterations the number of iterations to run the effect; use - * `SDL_HAPTIC_INFINITY` to repeat forever - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticDestroyEffect - * \sa SDL_HapticGetEffectStatus - * \sa SDL_HapticStopEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticRunEffect(SDL_Haptic * haptic, - int effect, - Uint32 iterations); - -/** - * Stop the haptic effect on its associated haptic device. - * - * * - * - * \param haptic the SDL_Haptic device to stop the effect on - * \param effect the ID of the haptic effect to stop - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticDestroyEffect - * \sa SDL_HapticRunEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticStopEffect(SDL_Haptic * haptic, - int effect); - -/** - * Destroy a haptic effect on the device. - * - * This will stop the effect if it's running. Effects are automatically - * destroyed when the device is closed. - * - * \param haptic the SDL_Haptic device to destroy the effect on - * \param effect the ID of the haptic effect to destroy - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticNewEffect - */ -extern DECLSPEC void SDLCALL SDL_HapticDestroyEffect(SDL_Haptic * haptic, - int effect); - -/** - * Get the status of the current effect on the specified haptic device. - * - * Device must support the SDL_HAPTIC_STATUS feature. - * - * \param haptic the SDL_Haptic device to query for the effect status on - * \param effect the ID of the haptic effect to query its status - * \returns 0 if it isn't playing, 1 if it is playing, or a negative error - * code on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticRunEffect - * \sa SDL_HapticStopEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticGetEffectStatus(SDL_Haptic * haptic, - int effect); - -/** - * Set the global gain of the specified haptic device. - * - * Device must support the SDL_HAPTIC_GAIN feature. - * - * The user may specify the maximum gain by setting the environment variable - * `SDL_HAPTIC_GAIN_MAX` which should be between 0 and 100. All calls to - * SDL_HapticSetGain() will scale linearly using `SDL_HAPTIC_GAIN_MAX` as the - * maximum. - * - * \param haptic the SDL_Haptic device to set the gain on - * \param gain value to set the gain to, should be between 0 and 100 (0 - 100) - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticSetGain(SDL_Haptic * haptic, int gain); - -/** - * Set the global autocenter of the device. - * - * Autocenter should be between 0 and 100. Setting it to 0 will disable - * autocentering. - * - * Device must support the SDL_HAPTIC_AUTOCENTER feature. - * - * \param haptic the SDL_Haptic device to set autocentering on - * \param autocenter value to set autocenter to (0-100) - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticSetAutocenter(SDL_Haptic * haptic, - int autocenter); - -/** - * Pause a haptic device. - * - * Device must support the `SDL_HAPTIC_PAUSE` feature. Call - * SDL_HapticUnpause() to resume playback. - * - * Do not modify the effects nor add new ones while the device is paused. That - * can cause all sorts of weird errors. - * - * \param haptic the SDL_Haptic device to pause - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticUnpause - */ -extern DECLSPEC int SDLCALL SDL_HapticPause(SDL_Haptic * haptic); - -/** - * Unpause a haptic device. - * - * Call to unpause after SDL_HapticPause(). - * - * \param haptic the SDL_Haptic device to unpause - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticPause - */ -extern DECLSPEC int SDLCALL SDL_HapticUnpause(SDL_Haptic * haptic); - -/** - * Stop all the currently playing effects on a haptic device. - * - * \param haptic the SDL_Haptic device to stop - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_HapticStopAll(SDL_Haptic * haptic); - -/** - * Check whether rumble is supported on a haptic device. - * - * \param haptic haptic device to check for rumble support - * \returns SDL_TRUE if effect is supported, SDL_FALSE if it isn't, or a - * negative error code on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticRumbleInit - * \sa SDL_HapticRumblePlay - * \sa SDL_HapticRumbleStop - */ -extern DECLSPEC int SDLCALL SDL_HapticRumbleSupported(SDL_Haptic * haptic); - -/** - * Initialize a haptic device for simple rumble playback. - * - * \param haptic the haptic device to initialize for simple rumble playback - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticOpen - * \sa SDL_HapticRumblePlay - * \sa SDL_HapticRumbleStop - * \sa SDL_HapticRumbleSupported - */ -extern DECLSPEC int SDLCALL SDL_HapticRumbleInit(SDL_Haptic * haptic); - -/** - * Run a simple rumble effect on a haptic device. - * - * \param haptic the haptic device to play the rumble effect on - * \param strength strength of the rumble to play as a 0-1 float value - * \param length length of the rumble to play in milliseconds - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticRumbleInit - * \sa SDL_HapticRumbleStop - * \sa SDL_HapticRumbleSupported - */ -extern DECLSPEC int SDLCALL SDL_HapticRumblePlay(SDL_Haptic * haptic, float strength, Uint32 length ); - -/** - * Stop the simple rumble on a haptic device. - * - * \param haptic the haptic device to stop the rumble effect on - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HapticRumbleInit - * \sa SDL_HapticRumblePlay - * \sa SDL_HapticRumbleSupported - */ -extern DECLSPEC int SDLCALL SDL_HapticRumbleStop(SDL_Haptic * haptic); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_haptic_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_hidapi.h b/release/SDL2.framework/Versions/A/Headers/SDL_hidapi.h deleted file mode 100644 index 62cc301..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_hidapi.h +++ /dev/null @@ -1,451 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_hidapi.h - * - * Header file for SDL HIDAPI functions. - * - * This is an adaptation of the original HIDAPI interface by Alan Ott, - * and includes source code licensed under the following BSD license: - * - Copyright (c) 2010, Alan Ott, Signal 11 Software - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of Signal 11 Software nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - * - * If you would like a version of SDL without this code, you can build SDL - * with SDL_HIDAPI_DISABLED defined to 1. You might want to do this for example - * on iOS or tvOS to avoid a dependency on the CoreBluetooth framework. - */ - -#ifndef SDL_hidapi_h_ -#define SDL_hidapi_h_ - -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief A handle representing an open HID device - */ -struct SDL_hid_device_; -typedef struct SDL_hid_device_ SDL_hid_device; /**< opaque hidapi structure */ - -/** hidapi info structure */ -/** - * \brief Information about a connected HID device - */ -typedef struct SDL_hid_device_info -{ - /** Platform-specific device path */ - char *path; - /** Device Vendor ID */ - unsigned short vendor_id; - /** Device Product ID */ - unsigned short product_id; - /** Serial Number */ - wchar_t *serial_number; - /** Device Release Number in binary-coded decimal, - also known as Device Version Number */ - unsigned short release_number; - /** Manufacturer String */ - wchar_t *manufacturer_string; - /** Product string */ - wchar_t *product_string; - /** Usage Page for this Device/Interface - (Windows/Mac only). */ - unsigned short usage_page; - /** Usage for this Device/Interface - (Windows/Mac only).*/ - unsigned short usage; - /** The USB interface which this logical device - represents. - - * Valid on both Linux implementations in all cases. - * Valid on the Windows implementation only if the device - contains more than one interface. */ - int interface_number; - - /** Additional information about the USB interface. - Valid on libusb and Android implementations. */ - int interface_class; - int interface_subclass; - int interface_protocol; - - /** Pointer to the next device */ - struct SDL_hid_device_info *next; -} SDL_hid_device_info; - - -/** - * Initialize the HIDAPI library. - * - * This function initializes the HIDAPI library. Calling it is not strictly - * necessary, as it will be called automatically by SDL_hid_enumerate() and - * any of the SDL_hid_open_*() functions if it is needed. This function should - * be called at the beginning of execution however, if there is a chance of - * HIDAPI handles being opened by different threads simultaneously. - * - * Each call to this function should have a matching call to SDL_hid_exit() - * - * \returns 0 on success and -1 on error. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_hid_exit - */ -extern DECLSPEC int SDLCALL SDL_hid_init(void); - -/** - * Finalize the HIDAPI library. - * - * This function frees all of the static data associated with HIDAPI. It - * should be called at the end of execution to avoid memory leaks. - * - * \returns 0 on success and -1 on error. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_hid_init - */ -extern DECLSPEC int SDLCALL SDL_hid_exit(void); - -/** - * Check to see if devices may have been added or removed. - * - * Enumerating the HID devices is an expensive operation, so you can call this - * to see if there have been any system device changes since the last call to - * this function. A change in the counter returned doesn't necessarily mean - * that anything has changed, but you can call SDL_hid_enumerate() to get an - * updated device list. - * - * Calling this function for the first time may cause a thread or other system - * resource to be allocated to track device change notifications. - * - * \returns a change counter that is incremented with each potential device - * change, or 0 if device change detection isn't available. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_hid_enumerate - */ -extern DECLSPEC Uint32 SDLCALL SDL_hid_device_change_count(void); - -/** - * Enumerate the HID Devices. - * - * This function returns a linked list of all the HID devices attached to the - * system which match vendor_id and product_id. If `vendor_id` is set to 0 - * then any vendor matches. If `product_id` is set to 0 then any product - * matches. If `vendor_id` and `product_id` are both set to 0, then all HID - * devices will be returned. - * - * \param vendor_id The Vendor ID (VID) of the types of device to open. - * \param product_id The Product ID (PID) of the types of device to open. - * \returns a pointer to a linked list of type SDL_hid_device_info, containing - * information about the HID devices attached to the system, or NULL - * in the case of failure. Free this linked list by calling - * SDL_hid_free_enumeration(). - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_hid_device_change_count - */ -extern DECLSPEC SDL_hid_device_info * SDLCALL SDL_hid_enumerate(unsigned short vendor_id, unsigned short product_id); - -/** - * Free an enumeration Linked List - * - * This function frees a linked list created by SDL_hid_enumerate(). - * - * \param devs Pointer to a list of struct_device returned from - * SDL_hid_enumerate(). - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC void SDLCALL SDL_hid_free_enumeration(SDL_hid_device_info *devs); - -/** - * Open a HID device using a Vendor ID (VID), Product ID (PID) and optionally - * a serial number. - * - * If `serial_number` is NULL, the first device with the specified VID and PID - * is opened. - * - * \param vendor_id The Vendor ID (VID) of the device to open. - * \param product_id The Product ID (PID) of the device to open. - * \param serial_number The Serial Number of the device to open (Optionally - * NULL). - * \returns a pointer to a SDL_hid_device object on success or NULL on - * failure. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC SDL_hid_device * SDLCALL SDL_hid_open(unsigned short vendor_id, unsigned short product_id, const wchar_t *serial_number); - -/** - * Open a HID device by its path name. - * - * The path name be determined by calling SDL_hid_enumerate(), or a - * platform-specific path name can be used (eg: /dev/hidraw0 on Linux). - * - * \param path The path name of the device to open - * \returns a pointer to a SDL_hid_device object on success or NULL on - * failure. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC SDL_hid_device * SDLCALL SDL_hid_open_path(const char *path, int bExclusive /* = false */); - -/** - * Write an Output report to a HID device. - * - * The first byte of `data` must contain the Report ID. For devices which only - * support a single report, this must be set to 0x0. The remaining bytes - * contain the report data. Since the Report ID is mandatory, calls to - * SDL_hid_write() will always contain one more byte than the report contains. - * For example, if a hid report is 16 bytes long, 17 bytes must be passed to - * SDL_hid_write(), the Report ID (or 0x0, for devices with a single report), - * followed by the report data (16 bytes). In this example, the length passed - * in would be 17. - * - * SDL_hid_write() will send the data on the first OUT endpoint, if one - * exists. If it does not, it will send the data through the Control Endpoint - * (Endpoint 0). - * - * \param dev A device handle returned from SDL_hid_open(). - * \param data The data to send, including the report number as the first - * byte. - * \param length The length in bytes of the data to send. - * \returns the actual number of bytes written and -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_write(SDL_hid_device *dev, const unsigned char *data, size_t length); - -/** - * Read an Input report from a HID device with timeout. - * - * Input reports are returned to the host through the INTERRUPT IN endpoint. - * The first byte will contain the Report number if the device uses numbered - * reports. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param data A buffer to put the read data into. - * \param length The number of bytes to read. For devices with multiple - * reports, make sure to read an extra byte for the report - * number. - * \param milliseconds timeout in milliseconds or -1 for blocking wait. - * \returns the actual number of bytes read and -1 on error. If no packet was - * available to be read within the timeout period, this function - * returns 0. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_read_timeout(SDL_hid_device *dev, unsigned char *data, size_t length, int milliseconds); - -/** - * Read an Input report from a HID device. - * - * Input reports are returned to the host through the INTERRUPT IN endpoint. - * The first byte will contain the Report number if the device uses numbered - * reports. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param data A buffer to put the read data into. - * \param length The number of bytes to read. For devices with multiple - * reports, make sure to read an extra byte for the report - * number. - * \returns the actual number of bytes read and -1 on error. If no packet was - * available to be read and the handle is in non-blocking mode, this - * function returns 0. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_read(SDL_hid_device *dev, unsigned char *data, size_t length); - -/** - * Set the device handle to be non-blocking. - * - * In non-blocking mode calls to SDL_hid_read() will return immediately with a - * value of 0 if there is no data to be read. In blocking mode, SDL_hid_read() - * will wait (block) until there is data to read before returning. - * - * Nonblocking can be turned on and off at any time. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param nonblock enable or not the nonblocking reads - 1 to enable - * nonblocking - 0 to disable nonblocking. - * \returns 0 on success and -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_set_nonblocking(SDL_hid_device *dev, int nonblock); - -/** - * Send a Feature report to the device. - * - * Feature reports are sent over the Control endpoint as a Set_Report - * transfer. The first byte of `data` must contain the Report ID. For devices - * which only support a single report, this must be set to 0x0. The remaining - * bytes contain the report data. Since the Report ID is mandatory, calls to - * SDL_hid_send_feature_report() will always contain one more byte than the - * report contains. For example, if a hid report is 16 bytes long, 17 bytes - * must be passed to SDL_hid_send_feature_report(): the Report ID (or 0x0, for - * devices which do not use numbered reports), followed by the report data (16 - * bytes). In this example, the length passed in would be 17. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param data The data to send, including the report number as the first - * byte. - * \param length The length in bytes of the data to send, including the report - * number. - * \returns the actual number of bytes written and -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_send_feature_report(SDL_hid_device *dev, const unsigned char *data, size_t length); - -/** - * Get a feature report from a HID device. - * - * Set the first byte of `data` to the Report ID of the report to be read. - * Make sure to allow space for this extra byte in `data`. Upon return, the - * first byte will still contain the Report ID, and the report data will start - * in data[1]. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param data A buffer to put the read data into, including the Report ID. - * Set the first byte of `data` to the Report ID of the report to - * be read, or set it to zero if your device does not use numbered - * reports. - * \param length The number of bytes to read, including an extra byte for the - * report ID. The buffer can be longer than the actual report. - * \returns the number of bytes read plus one for the report ID (which is - * still in the first byte), or -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_get_feature_report(SDL_hid_device *dev, unsigned char *data, size_t length); - -/** - * Close a HID device. - * - * \param dev A device handle returned from SDL_hid_open(). - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC void SDLCALL SDL_hid_close(SDL_hid_device *dev); - -/** - * Get The Manufacturer String from a HID device. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param string A wide string buffer to put the data into. - * \param maxlen The length of the buffer in multiples of wchar_t. - * \returns 0 on success and -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_get_manufacturer_string(SDL_hid_device *dev, wchar_t *string, size_t maxlen); - -/** - * Get The Product String from a HID device. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param string A wide string buffer to put the data into. - * \param maxlen The length of the buffer in multiples of wchar_t. - * \returns 0 on success and -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_get_product_string(SDL_hid_device *dev, wchar_t *string, size_t maxlen); - -/** - * Get The Serial Number String from a HID device. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param string A wide string buffer to put the data into. - * \param maxlen The length of the buffer in multiples of wchar_t. - * \returns 0 on success and -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_get_serial_number_string(SDL_hid_device *dev, wchar_t *string, size_t maxlen); - -/** - * Get a string from a HID device, based on its string index. - * - * \param dev A device handle returned from SDL_hid_open(). - * \param string_index The index of the string to get. - * \param string A wide string buffer to put the data into. - * \param maxlen The length of the buffer in multiples of wchar_t. - * \returns 0 on success and -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_hid_get_indexed_string(SDL_hid_device *dev, int string_index, wchar_t *string, size_t maxlen); - -/** - * Start or stop a BLE scan on iOS and tvOS to pair Steam Controllers - * - * \param active SDL_TRUE to start the scan, SDL_FALSE to stop the scan - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC void SDLCALL SDL_hid_ble_scan(SDL_bool active); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_hidapi_h_ */ - -/* vi: set sts=4 ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_hints.h b/release/SDL2.framework/Versions/A/Headers/SDL_hints.h deleted file mode 100644 index ee79bef..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_hints.h +++ /dev/null @@ -1,2624 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_hints.h - * - * Official documentation for SDL configuration variables - * - * This file contains functions to set and get configuration hints, - * as well as listing each of them alphabetically. - * - * The convention for naming hints is SDL_HINT_X, where "SDL_X" is - * the environment variable that can be used to override the default. - * - * In general these hints are just that - they may or may not be - * supported or applicable on any given platform, but they provide - * a way for an application or user to give the library a hint as - * to how they would like the library to work. - */ - -#ifndef SDL_hints_h_ -#define SDL_hints_h_ - -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief A variable controlling whether the Android / iOS built-in - * accelerometer should be listed as a joystick device. - * - * This variable can be set to the following values: - * "0" - The accelerometer is not listed as a joystick - * "1" - The accelerometer is available as a 3 axis joystick (the default). - */ -#define SDL_HINT_ACCELEROMETER_AS_JOYSTICK "SDL_ACCELEROMETER_AS_JOYSTICK" - -/** - * \brief Specify the behavior of Alt+Tab while the keyboard is grabbed. - * - * By default, SDL emulates Alt+Tab functionality while the keyboard is grabbed - * and your window is full-screen. This prevents the user from getting stuck in - * your application if you've enabled keyboard grab. - * - * The variable can be set to the following values: - * "0" - SDL will not handle Alt+Tab. Your application is responsible - for handling Alt+Tab while the keyboard is grabbed. - * "1" - SDL will minimize your window when Alt+Tab is pressed (default) -*/ -#define SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED "SDL_ALLOW_ALT_TAB_WHILE_GRABBED" - -/** - * \brief If set to "0" then never set the top most bit on a SDL Window, even if the video mode expects it. - * This is a debugging aid for developers and not expected to be used by end users. The default is "1" - * - * This variable can be set to the following values: - * "0" - don't allow topmost - * "1" - allow topmost - */ -#define SDL_HINT_ALLOW_TOPMOST "SDL_ALLOW_TOPMOST" - -/** - * \brief Android APK expansion main file version. Should be a string number like "1", "2" etc. - * - * Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION. - * - * If both hints were set then SDL_RWFromFile() will look into expansion files - * after a given relative path was not found in the internal storage and assets. - * - * By default this hint is not set and the APK expansion files are not searched. - */ -#define SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION "SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION" - -/** - * \brief Android APK expansion patch file version. Should be a string number like "1", "2" etc. - * - * Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION. - * - * If both hints were set then SDL_RWFromFile() will look into expansion files - * after a given relative path was not found in the internal storage and assets. - * - * By default this hint is not set and the APK expansion files are not searched. - */ -#define SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION "SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION" - -/** - * \brief A variable to control whether the event loop will block itself when the app is paused. - * - * The variable can be set to the following values: - * "0" - Non blocking. - * "1" - Blocking. (default) - * - * The value should be set before SDL is initialized. - */ -#define SDL_HINT_ANDROID_BLOCK_ON_PAUSE "SDL_ANDROID_BLOCK_ON_PAUSE" - -/** - * \brief A variable to control whether SDL will pause audio in background - * (Requires SDL_ANDROID_BLOCK_ON_PAUSE as "Non blocking") - * - * The variable can be set to the following values: - * "0" - Non paused. - * "1" - Paused. (default) - * - * The value should be set before SDL is initialized. - */ -#define SDL_HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO "SDL_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO" - -/** - * \brief A variable to control whether we trap the Android back button to handle it manually. - * This is necessary for the right mouse button to work on some Android devices, or - * to be able to trap the back button for use in your code reliably. If set to true, - * the back button will show up as an SDL_KEYDOWN / SDL_KEYUP pair with a keycode of - * SDL_SCANCODE_AC_BACK. - * - * The variable can be set to the following values: - * "0" - Back button will be handled as usual for system. (default) - * "1" - Back button will be trapped, allowing you to handle the key press - * manually. (This will also let right mouse click work on systems - * where the right mouse button functions as back.) - * - * The value of this hint is used at runtime, so it can be changed at any time. - */ -#define SDL_HINT_ANDROID_TRAP_BACK_BUTTON "SDL_ANDROID_TRAP_BACK_BUTTON" - -/** - * \brief Specify an application name. - * - * This hint lets you specify the application name sent to the OS when - * required. For example, this will often appear in volume control applets for - * audio streams, and in lists of applications which are inhibiting the - * screensaver. You should use a string that describes your program ("My Game - * 2: The Revenge") - * - * Setting this to "" or leaving it unset will have SDL use a reasonable - * default: probably the application's name or "SDL Application" if SDL - * doesn't have any better information. - * - * Note that, for audio streams, this can be overridden with - * SDL_HINT_AUDIO_DEVICE_APP_NAME. - * - * On targets where this is not supported, this hint does nothing. - */ -#define SDL_HINT_APP_NAME "SDL_APP_NAME" - -/** - * \brief A variable controlling whether controllers used with the Apple TV - * generate UI events. - * - * When UI events are generated by controller input, the app will be - * backgrounded when the Apple TV remote's menu button is pressed, and when the - * pause or B buttons on gamepads are pressed. - * - * More information about properly making use of controllers for the Apple TV - * can be found here: - * https://developer.apple.com/tvos/human-interface-guidelines/remote-and-controllers/ - * - * This variable can be set to the following values: - * "0" - Controller input does not generate UI events (the default). - * "1" - Controller input generates UI events. - */ -#define SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS "SDL_APPLE_TV_CONTROLLER_UI_EVENTS" - -/** - * \brief A variable controlling whether the Apple TV remote's joystick axes - * will automatically match the rotation of the remote. - * - * This variable can be set to the following values: - * "0" - Remote orientation does not affect joystick axes (the default). - * "1" - Joystick axes are based on the orientation of the remote. - */ -#define SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION" - -/** - * \brief A variable controlling the audio category on iOS and Mac OS X - * - * This variable can be set to the following values: - * - * "ambient" - Use the AVAudioSessionCategoryAmbient audio category, will be muted by the phone mute switch (default) - * "playback" - Use the AVAudioSessionCategoryPlayback category - * - * For more information, see Apple's documentation: - * https://developer.apple.com/library/content/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategoriesandModes/AudioSessionCategoriesandModes.html - */ -#define SDL_HINT_AUDIO_CATEGORY "SDL_AUDIO_CATEGORY" - -/** - * \brief Specify an application name for an audio device. - * - * Some audio backends (such as PulseAudio) allow you to describe your audio - * stream. Among other things, this description might show up in a system - * control panel that lets the user adjust the volume on specific audio - * streams instead of using one giant master volume slider. - * - * This hints lets you transmit that information to the OS. The contents of - * this hint are used while opening an audio device. You should use a string - * that describes your program ("My Game 2: The Revenge") - * - * Setting this to "" or leaving it unset will have SDL use a reasonable - * default: this will be the name set with SDL_HINT_APP_NAME, if that hint is - * set. Otherwise, it'll probably the application's name or "SDL Application" - * if SDL doesn't have any better information. - * - * On targets where this is not supported, this hint does nothing. - */ -#define SDL_HINT_AUDIO_DEVICE_APP_NAME "SDL_AUDIO_DEVICE_APP_NAME" - -/** - * \brief Specify an application name for an audio device. - * - * Some audio backends (such as PulseAudio) allow you to describe your audio - * stream. Among other things, this description might show up in a system - * control panel that lets the user adjust the volume on specific audio - * streams instead of using one giant master volume slider. - * - * This hints lets you transmit that information to the OS. The contents of - * this hint are used while opening an audio device. You should use a string - * that describes your what your program is playing ("audio stream" is - * probably sufficient in many cases, but this could be useful for something - * like "team chat" if you have a headset playing VoIP audio separately). - * - * Setting this to "" or leaving it unset will have SDL use a reasonable - * default: "audio stream" or something similar. - * - * On targets where this is not supported, this hint does nothing. - */ -#define SDL_HINT_AUDIO_DEVICE_STREAM_NAME "SDL_AUDIO_DEVICE_STREAM_NAME" - -/** - * \brief Specify an application role for an audio device. - * - * Some audio backends (such as Pipewire) allow you to describe the role of - * your audio stream. Among other things, this description might show up in - * a system control panel or software for displaying and manipulating media - * playback/capture graphs. - * - * This hints lets you transmit that information to the OS. The contents of - * this hint are used while opening an audio device. You should use a string - * that describes your what your program is playing (Game, Music, Movie, - * etc...). - * - * Setting this to "" or leaving it unset will have SDL use a reasonable - * default: "Game" or something similar. - * - * On targets where this is not supported, this hint does nothing. - */ -#define SDL_HINT_AUDIO_DEVICE_STREAM_ROLE "SDL_AUDIO_DEVICE_STREAM_ROLE" - -/** - * \brief A variable controlling speed/quality tradeoff of audio resampling. - * - * If available, SDL can use libsamplerate ( http://www.mega-nerd.com/SRC/ ) - * to handle audio resampling. There are different resampling modes available - * that produce different levels of quality, using more CPU. - * - * If this hint isn't specified to a valid setting, or libsamplerate isn't - * available, SDL will use the default, internal resampling algorithm. - * - * As of SDL 2.26, SDL_ConvertAudio() respects this hint when libsamplerate is available. - * - * This hint is currently only checked at audio subsystem initialization. - * - * This variable can be set to the following values: - * - * "0" or "default" - Use SDL's internal resampling (Default when not set - low quality, fast) - * "1" or "fast" - Use fast, slightly higher quality resampling, if available - * "2" or "medium" - Use medium quality resampling, if available - * "3" or "best" - Use high quality resampling, if available - */ -#define SDL_HINT_AUDIO_RESAMPLING_MODE "SDL_AUDIO_RESAMPLING_MODE" - -/** - * \brief A variable controlling whether SDL updates joystick state when getting input events - * - * This variable can be set to the following values: - * - * "0" - You'll call SDL_JoystickUpdate() manually - * "1" - SDL will automatically call SDL_JoystickUpdate() (default) - * - * This hint can be toggled on and off at runtime. - */ -#define SDL_HINT_AUTO_UPDATE_JOYSTICKS "SDL_AUTO_UPDATE_JOYSTICKS" - -/** - * \brief A variable controlling whether SDL updates sensor state when getting input events - * - * This variable can be set to the following values: - * - * "0" - You'll call SDL_SensorUpdate() manually - * "1" - SDL will automatically call SDL_SensorUpdate() (default) - * - * This hint can be toggled on and off at runtime. - */ -#define SDL_HINT_AUTO_UPDATE_SENSORS "SDL_AUTO_UPDATE_SENSORS" - -/** - * \brief Prevent SDL from using version 4 of the bitmap header when saving BMPs. - * - * The bitmap header version 4 is required for proper alpha channel support and - * SDL will use it when required. Should this not be desired, this hint can - * force the use of the 40 byte header version which is supported everywhere. - * - * The variable can be set to the following values: - * "0" - Surfaces with a colorkey or an alpha channel are saved to a - * 32-bit BMP file with an alpha mask. SDL will use the bitmap - * header version 4 and set the alpha mask accordingly. - * "1" - Surfaces with a colorkey or an alpha channel are saved to a - * 32-bit BMP file without an alpha mask. The alpha channel data - * will be in the file, but applications are going to ignore it. - * - * The default value is "0". - */ -#define SDL_HINT_BMP_SAVE_LEGACY_FORMAT "SDL_BMP_SAVE_LEGACY_FORMAT" - -/** - * \brief Override for SDL_GetDisplayUsableBounds() - * - * If set, this hint will override the expected results for - * SDL_GetDisplayUsableBounds() for display index 0. Generally you don't want - * to do this, but this allows an embedded system to request that some of the - * screen be reserved for other uses when paired with a well-behaved - * application. - * - * The contents of this hint must be 4 comma-separated integers, the first - * is the bounds x, then y, width and height, in that order. - */ -#define SDL_HINT_DISPLAY_USABLE_BOUNDS "SDL_DISPLAY_USABLE_BOUNDS" - -/** - * \brief Disable giving back control to the browser automatically - * when running with asyncify - * - * With -s ASYNCIFY, SDL2 calls emscripten_sleep during operations - * such as refreshing the screen or polling events. - * - * This hint only applies to the emscripten platform - * - * The variable can be set to the following values: - * "0" - Disable emscripten_sleep calls (if you give back browser control manually or use asyncify for other purposes) - * "1" - Enable emscripten_sleep calls (the default) - */ -#define SDL_HINT_EMSCRIPTEN_ASYNCIFY "SDL_EMSCRIPTEN_ASYNCIFY" - -/** - * \brief override the binding element for keyboard inputs for Emscripten builds - * - * This hint only applies to the emscripten platform - * - * The variable can be one of - * "#window" - The javascript window object (this is the default) - * "#document" - The javascript document object - * "#screen" - the javascript window.screen object - * "#canvas" - the WebGL canvas element - * any other string without a leading # sign applies to the element on the page with that ID. - */ -#define SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT" - -/** - * \brief A variable that controls whether the on-screen keyboard should be shown when text input is active - * - * The variable can be set to the following values: - * "0" - Do not show the on-screen keyboard - * "1" - Show the on-screen keyboard - * - * The default value is "1". This hint must be set before text input is activated. - */ -#define SDL_HINT_ENABLE_SCREEN_KEYBOARD "SDL_ENABLE_SCREEN_KEYBOARD" - -/** - * \brief A variable that controls whether Steam Controllers should be exposed using the SDL joystick and game controller APIs - * - * The variable can be set to the following values: - * "0" - Do not scan for Steam Controllers - * "1" - Scan for Steam Controllers (the default) - * - * The default value is "1". This hint must be set before initializing the joystick subsystem. - */ -#define SDL_HINT_ENABLE_STEAM_CONTROLLERS "SDL_ENABLE_STEAM_CONTROLLERS" - -/** - * \brief A variable controlling verbosity of the logging of SDL events pushed onto the internal queue. - * - * This variable can be set to the following values, from least to most verbose: - * - * "0" - Don't log any events (default) - * "1" - Log most events (other than the really spammy ones). - * "2" - Include mouse and finger motion events. - * "3" - Include SDL_SysWMEvent events. - * - * This is generally meant to be used to debug SDL itself, but can be useful - * for application developers that need better visibility into what is going - * on in the event queue. Logged events are sent through SDL_Log(), which - * means by default they appear on stdout on most platforms or maybe - * OutputDebugString() on Windows, and can be funneled by the app with - * SDL_LogSetOutputFunction(), etc. - * - * This hint can be toggled on and off at runtime, if you only need to log - * events for a small subset of program execution. - */ -#define SDL_HINT_EVENT_LOGGING "SDL_EVENT_LOGGING" - -/** - * \brief A variable controlling whether raising the window should be done more forcefully - * - * This variable can be set to the following values: - * "0" - No forcing (the default) - * "1" - Extra level of forcing - * - * At present, this is only an issue under MS Windows, which makes it nearly impossible to - * programmatically move a window to the foreground, for "security" reasons. See - * http://stackoverflow.com/a/34414846 for a discussion. - */ -#define SDL_HINT_FORCE_RAISEWINDOW "SDL_HINT_FORCE_RAISEWINDOW" - -/** - * \brief A variable controlling how 3D acceleration is used to accelerate the SDL screen surface. - * - * SDL can try to accelerate the SDL screen surface by using streaming - * textures with a 3D rendering engine. This variable controls whether and - * how this is done. - * - * This variable can be set to the following values: - * "0" - Disable 3D acceleration - * "1" - Enable 3D acceleration, using the default renderer. - * "X" - Enable 3D acceleration, using X where X is one of the valid rendering drivers. (e.g. "direct3d", "opengl", etc.) - * - * By default SDL tries to make a best guess for each platform whether - * to use acceleration or not. - */ -#define SDL_HINT_FRAMEBUFFER_ACCELERATION "SDL_FRAMEBUFFER_ACCELERATION" - -/** - * \brief A variable that lets you manually hint extra gamecontroller db entries. - * - * The variable should be newline delimited rows of gamecontroller config data, see SDL_gamecontroller.h - * - * This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) - * You can update mappings after the system is initialized with SDL_GameControllerMappingForGUID() and SDL_GameControllerAddMapping() - */ -#define SDL_HINT_GAMECONTROLLERCONFIG "SDL_GAMECONTROLLERCONFIG" - -/** - * \brief A variable that lets you provide a file with extra gamecontroller db entries. - * - * The file should contain lines of gamecontroller config data, see SDL_gamecontroller.h - * - * This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) - * You can update mappings after the system is initialized with SDL_GameControllerMappingForGUID() and SDL_GameControllerAddMapping() - */ -#define SDL_HINT_GAMECONTROLLERCONFIG_FILE "SDL_GAMECONTROLLERCONFIG_FILE" - -/** - * \brief A variable that overrides the automatic controller type detection - * - * The variable should be comma separated entries, in the form: VID/PID=type - * - * The VID and PID should be hexadecimal with exactly 4 digits, e.g. 0x00fd - * - * The type should be one of: - * Xbox360 - * XboxOne - * PS3 - * PS4 - * PS5 - * SwitchPro - * - * This hint affects what driver is used, and must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) - */ -#define SDL_HINT_GAMECONTROLLERTYPE "SDL_GAMECONTROLLERTYPE" - -/** - * \brief A variable containing a list of devices to skip when scanning for game controllers. - * - * The format of the string is a comma separated list of USB VID/PID pairs - * in hexadecimal form, e.g. - * - * 0xAAAA/0xBBBB,0xCCCC/0xDDDD - * - * The variable can also take the form of @file, in which case the named - * file will be loaded and interpreted as the value of the variable. - */ -#define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES "SDL_GAMECONTROLLER_IGNORE_DEVICES" - -/** - * \brief If set, all devices will be skipped when scanning for game controllers except for the ones listed in this variable. - * - * The format of the string is a comma separated list of USB VID/PID pairs - * in hexadecimal form, e.g. - * - * 0xAAAA/0xBBBB,0xCCCC/0xDDDD - * - * The variable can also take the form of @file, in which case the named - * file will be loaded and interpreted as the value of the variable. - */ -#define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT" - -/** - * \brief If set, game controller face buttons report their values according to their labels instead of their positional layout. - * - * For example, on Nintendo Switch controllers, normally you'd get: - * - * (Y) - * (X) (B) - * (A) - * - * but if this hint is set, you'll get: - * - * (X) - * (Y) (A) - * (B) - * - * The variable can be set to the following values: - * "0" - Report the face buttons by position, as though they were on an Xbox controller. - * "1" - Report the face buttons by label instead of position - * - * The default value is "1". This hint may be set at any time. - */ -#define SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS "SDL_GAMECONTROLLER_USE_BUTTON_LABELS" - -/** - * \brief A variable controlling whether grabbing input grabs the keyboard - * - * This variable can be set to the following values: - * "0" - Grab will affect only the mouse - * "1" - Grab will affect mouse and keyboard - * - * By default SDL will not grab the keyboard so system shortcuts still work. - */ -#define SDL_HINT_GRAB_KEYBOARD "SDL_GRAB_KEYBOARD" - -/** - * \brief A variable containing a list of devices to ignore in SDL_hid_enumerate() - * - * For example, to ignore the Shanwan DS3 controller and any Valve controller, you might - * have the string "0x2563/0x0523,0x28de/0x0000" - */ -#define SDL_HINT_HIDAPI_IGNORE_DEVICES "SDL_HIDAPI_IGNORE_DEVICES" - -/** - * \brief A variable controlling whether the idle timer is disabled on iOS. - * - * When an iOS app does not receive touches for some time, the screen is - * dimmed automatically. For games where the accelerometer is the only input - * this is problematic. This functionality can be disabled by setting this - * hint. - * - * As of SDL 2.0.4, SDL_EnableScreenSaver() and SDL_DisableScreenSaver() - * accomplish the same thing on iOS. They should be preferred over this hint. - * - * This variable can be set to the following values: - * "0" - Enable idle timer - * "1" - Disable idle timer - */ -#define SDL_HINT_IDLE_TIMER_DISABLED "SDL_IOS_IDLE_TIMER_DISABLED" - -/** - * \brief A variable to control whether certain IMEs should handle text editing internally instead of sending SDL_TEXTEDITING events. - * - * The variable can be set to the following values: - * "0" - SDL_TEXTEDITING events are sent, and it is the application's - * responsibility to render the text from these events and - * differentiate it somehow from committed text. (default) - * "1" - If supported by the IME then SDL_TEXTEDITING events are not sent, - * and text that is being composed will be rendered in its own UI. - */ -#define SDL_HINT_IME_INTERNAL_EDITING "SDL_IME_INTERNAL_EDITING" - -/** - * \brief A variable to control whether certain IMEs should show native UI components (such as the Candidate List) instead of suppressing them. - * - * The variable can be set to the following values: - * "0" - Native UI components are not display. (default) - * "1" - Native UI components are displayed. - */ -#define SDL_HINT_IME_SHOW_UI "SDL_IME_SHOW_UI" - -/** - * \brief A variable to control if extended IME text support is enabled. - * If enabled then SDL_TextEditingExtEvent will be issued if the text would be truncated otherwise. - * Additionally SDL_TextInputEvent will be dispatched multiple times so that it is not truncated. - * - * The variable can be set to the following values: - * "0" - Legacy behavior. Text can be truncated, no heap allocations. (default) - * "1" - Modern behavior. - */ -#define SDL_HINT_IME_SUPPORT_EXTENDED_TEXT "SDL_IME_SUPPORT_EXTENDED_TEXT" - -/** - * \brief A variable controlling whether the home indicator bar on iPhone X - * should be hidden. - * - * This variable can be set to the following values: - * "0" - The indicator bar is not hidden (default for windowed applications) - * "1" - The indicator bar is hidden and is shown when the screen is touched (useful for movie playback applications) - * "2" - The indicator bar is dim and the first swipe makes it visible and the second swipe performs the "home" action (default for fullscreen applications) - */ -#define SDL_HINT_IOS_HIDE_HOME_INDICATOR "SDL_IOS_HIDE_HOME_INDICATOR" - -/** - * \brief A variable that lets you enable joystick (and gamecontroller) events even when your app is in the background. - * - * The variable can be set to the following values: - * "0" - Disable joystick & gamecontroller input events when the - * application is in the background. - * "1" - Enable joystick & gamecontroller input events when the - * application is in the background. - * - * The default value is "0". This hint may be set at any time. - */ -#define SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS" - -/** - * \brief A variable controlling whether the HIDAPI joystick drivers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI drivers are not used - * "1" - HIDAPI drivers are used (the default) - * - * This variable is the default for all drivers, but can be overridden by the hints for specific drivers below. - */ -#define SDL_HINT_JOYSTICK_HIDAPI "SDL_JOYSTICK_HIDAPI" - -/** - * \brief A variable controlling whether the HIDAPI driver for Nintendo GameCube controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE "SDL_JOYSTICK_HIDAPI_GAMECUBE" - -/** - * \brief A variable controlling whether "low_frequency_rumble" and "high_frequency_rumble" is used to implement - * the GameCube controller's 3 rumble modes, Stop(0), Rumble(1), and StopHard(2) - * this is useful for applications that need full compatibility for things like ADSR envelopes. - * Stop is implemented by setting "low_frequency_rumble" to "0" and "high_frequency_rumble" ">0" - * Rumble is both at any arbitrary value, - * StopHard is implemented by setting both "low_frequency_rumble" and "high_frequency_rumble" to "0" - * - * This variable can be set to the following values: - * "0" - Normal rumble behavior is behavior is used (default) - * "1" - Proper GameCube controller rumble behavior is used - * - */ -#define SDL_HINT_JOYSTICK_GAMECUBE_RUMBLE_BRAKE "SDL_JOYSTICK_GAMECUBE_RUMBLE_BRAKE" - -/** - * \brief A variable controlling whether the HIDAPI driver for Nintendo Switch Joy-Cons should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS "SDL_JOYSTICK_HIDAPI_JOY_CONS" - -/** - * \brief A variable controlling whether Nintendo Switch Joy-Con controllers will be combined into a single Pro-like controller when using the HIDAPI driver - * - * This variable can be set to the following values: - * "0" - Left and right Joy-Con controllers will not be combined and each will be a mini-gamepad - * "1" - Left and right Joy-Con controllers will be combined into a single controller (the default) - */ -#define SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS "SDL_JOYSTICK_HIDAPI_COMBINE_JOY_CONS" - -/** - * \brief A variable controlling whether Nintendo Switch Joy-Con controllers will be in vertical mode when using the HIDAPI driver - * - * This variable can be set to the following values: - * "0" - Left and right Joy-Con controllers will not be in vertical mode (the default) - * "1" - Left and right Joy-Con controllers will be in vertical mode - * - * This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) - */ -#define SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS "SDL_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS" - -/** - * \brief A variable controlling whether the HIDAPI driver for Amazon Luna controllers connected via Bluetooth should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_LUNA "SDL_JOYSTICK_HIDAPI_LUNA" - -/** - * \brief A variable controlling whether the HIDAPI driver for Nintendo Online classic controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSIC "SDL_JOYSTICK_HIDAPI_NINTENDO_CLASSIC" - -/** - * \brief A variable controlling whether the HIDAPI driver for NVIDIA SHIELD controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_SHIELD "SDL_JOYSTICK_HIDAPI_SHIELD" - -/** - * \brief A variable controlling whether the HIDAPI driver for PS3 controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI on macOS, and "0" on other platforms. - * - * It is not possible to use this driver on Windows, due to limitations in the default drivers - * installed. See https://github.com/ViGEm/DsHidMini for an alternative driver on Windows. - */ -#define SDL_HINT_JOYSTICK_HIDAPI_PS3 "SDL_JOYSTICK_HIDAPI_PS3" - -/** - * \brief A variable controlling whether the HIDAPI driver for PS4 controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_PS4 "SDL_JOYSTICK_HIDAPI_PS4" - -/** - * \brief A variable controlling whether extended input reports should be used for PS4 controllers when using the HIDAPI driver. - * - * This variable can be set to the following values: - * "0" - extended reports are not enabled (the default) - * "1" - extended reports - * - * Extended input reports allow rumble on Bluetooth PS4 controllers, but - * break DirectInput handling for applications that don't use SDL. - * - * Once extended reports are enabled, they can not be disabled without - * power cycling the controller. - * - * For compatibility with applications written for versions of SDL prior - * to the introduction of PS5 controller support, this value will also - * control the state of extended reports on PS5 controllers when the - * SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE hint is not explicitly set. - */ -#define SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE "SDL_JOYSTICK_HIDAPI_PS4_RUMBLE" - -/** - * \brief A variable controlling whether the HIDAPI driver for PS5 controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_PS5 "SDL_JOYSTICK_HIDAPI_PS5" - -/** - * \brief A variable controlling whether the player LEDs should be lit to indicate which player is associated with a PS5 controller. - * - * This variable can be set to the following values: - * "0" - player LEDs are not enabled - * "1" - player LEDs are enabled (the default) - */ -#define SDL_HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED "SDL_JOYSTICK_HIDAPI_PS5_PLAYER_LED" - -/** - * \brief A variable controlling whether extended input reports should be used for PS5 controllers when using the HIDAPI driver. - * - * This variable can be set to the following values: - * "0" - extended reports are not enabled (the default) - * "1" - extended reports - * - * Extended input reports allow rumble on Bluetooth PS5 controllers, but - * break DirectInput handling for applications that don't use SDL. - * - * Once extended reports are enabled, they can not be disabled without - * power cycling the controller. - * - * For compatibility with applications written for versions of SDL prior - * to the introduction of PS5 controller support, this value defaults to - * the value of SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE. - */ -#define SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE "SDL_JOYSTICK_HIDAPI_PS5_RUMBLE" - -/** - * \brief A variable controlling whether the HIDAPI driver for Google Stadia controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_STADIA "SDL_JOYSTICK_HIDAPI_STADIA" - -/** - * \brief A variable controlling whether the HIDAPI driver for Bluetooth Steam Controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used for Steam Controllers, which requires Bluetooth access - * and may prompt the user for permission on iOS and Android. - * - * The default is "0" - */ -#define SDL_HINT_JOYSTICK_HIDAPI_STEAM "SDL_JOYSTICK_HIDAPI_STEAM" - -/** - * \brief A variable controlling whether the HIDAPI driver for Nintendo Switch controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH "SDL_JOYSTICK_HIDAPI_SWITCH" - -/** - * \brief A variable controlling whether the Home button LED should be turned on when a Nintendo Switch Pro controller is opened - * - * This variable can be set to the following values: - * "0" - home button LED is turned off - * "1" - home button LED is turned on - * - * By default the Home button LED state is not changed. This hint can also be set to a floating point value between 0.0 and 1.0 which controls the brightness of the Home button LED. - */ -#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED "SDL_JOYSTICK_HIDAPI_SWITCH_HOME_LED" - -/** - * \brief A variable controlling whether the Home button LED should be turned on when a Nintendo Switch Joy-Con controller is opened - * - * This variable can be set to the following values: - * "0" - home button LED is turned off - * "1" - home button LED is turned on - * - * By default the Home button LED state is not changed. This hint can also be set to a floating point value between 0.0 and 1.0 which controls the brightness of the Home button LED. - */ -#define SDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED "SDL_JOYSTICK_HIDAPI_JOYCON_HOME_LED" - -/** - * \brief A variable controlling whether the player LEDs should be lit to indicate which player is associated with a Nintendo Switch controller. - * - * This variable can be set to the following values: - * "0" - player LEDs are not enabled - * "1" - player LEDs are enabled (the default) - */ -#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED "SDL_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED" - -/** - * \brief A variable controlling whether the HIDAPI driver for Nintendo Wii and Wii U controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * This driver doesn't work with the dolphinbar, so the default is SDL_FALSE for now. - */ -#define SDL_HINT_JOYSTICK_HIDAPI_WII "SDL_JOYSTICK_HIDAPI_WII" - -/** - * \brief A variable controlling whether the player LEDs should be lit to indicate which player is associated with a Wii controller. - * - * This variable can be set to the following values: - * "0" - player LEDs are not enabled - * "1" - player LEDs are enabled (the default) - */ -#define SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED "SDL_JOYSTICK_HIDAPI_WII_PLAYER_LED" - -/** - * \brief A variable controlling whether the HIDAPI driver for XBox controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is "0" on Windows, otherwise the value of SDL_HINT_JOYSTICK_HIDAPI - */ -#define SDL_HINT_JOYSTICK_HIDAPI_XBOX "SDL_JOYSTICK_HIDAPI_XBOX" - -/** - * \brief A variable controlling whether the HIDAPI driver for XBox 360 controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX - */ -#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360 "SDL_JOYSTICK_HIDAPI_XBOX_360" - -/** - * \brief A variable controlling whether the player LEDs should be lit to indicate which player is associated with an Xbox 360 controller. - * - * This variable can be set to the following values: - * "0" - player LEDs are not enabled - * "1" - player LEDs are enabled (the default) - */ -#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED "SDL_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED" - -/** - * \brief A variable controlling whether the HIDAPI driver for XBox 360 wireless controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX_360 - */ -#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS "SDL_JOYSTICK_HIDAPI_XBOX_360_WIRELESS" - -/** - * \brief A variable controlling whether the HIDAPI driver for XBox One controllers should be used. - * - * This variable can be set to the following values: - * "0" - HIDAPI driver is not used - * "1" - HIDAPI driver is used - * - * The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX - */ -#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE "SDL_JOYSTICK_HIDAPI_XBOX_ONE" - -/** - * \brief A variable controlling whether the Home button LED should be turned on when an Xbox One controller is opened - * - * This variable can be set to the following values: - * "0" - home button LED is turned off - * "1" - home button LED is turned on - * - * By default the Home button LED state is not changed. This hint can also be set to a floating point value between 0.0 and 1.0 which controls the brightness of the Home button LED. The default brightness is 0.4. - */ -#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED "SDL_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED" - -/** - * \brief A variable controlling whether the RAWINPUT joystick drivers should be used for better handling XInput-capable devices. - * - * This variable can be set to the following values: - * "0" - RAWINPUT drivers are not used - * "1" - RAWINPUT drivers are used (the default) - */ -#define SDL_HINT_JOYSTICK_RAWINPUT "SDL_JOYSTICK_RAWINPUT" - -/** - * \brief A variable controlling whether the RAWINPUT driver should pull correlated data from XInput. - * - * This variable can be set to the following values: - * "0" - RAWINPUT driver will only use data from raw input APIs - * "1" - RAWINPUT driver will also pull data from XInput, providing - * better trigger axes, guide button presses, and rumble support - * for Xbox controllers - * - * The default is "1". This hint applies to any joysticks opened after setting the hint. - */ -#define SDL_HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT "SDL_JOYSTICK_RAWINPUT_CORRELATE_XINPUT" - -/** - * \brief A variable controlling whether the ROG Chakram mice should show up as joysticks - * - * This variable can be set to the following values: - * "0" - ROG Chakram mice do not show up as joysticks (the default) - * "1" - ROG Chakram mice show up as joysticks - */ -#define SDL_HINT_JOYSTICK_ROG_CHAKRAM "SDL_JOYSTICK_ROG_CHAKRAM" - -/** - * \brief A variable controlling whether a separate thread should be used - * for handling joystick detection and raw input messages on Windows - * - * This variable can be set to the following values: - * "0" - A separate thread is not used (the default) - * "1" - A separate thread is used for handling raw input messages - * - */ -#define SDL_HINT_JOYSTICK_THREAD "SDL_JOYSTICK_THREAD" - -/** - * \brief A variable controlling whether Windows.Gaming.Input should be used for controller handling. - * - * This variable can be set to the following values: - * "0" - WGI is not used - * "1" - WGI is used (the default) - */ -#define SDL_HINT_JOYSTICK_WGI "SDL_JOYSTICK_WGI" - -/** - * \brief Determines whether SDL enforces that DRM master is required in order - * to initialize the KMSDRM video backend. - * - * The DRM subsystem has a concept of a "DRM master" which is a DRM client that - * has the ability to set planes, set cursor, etc. When SDL is DRM master, it - * can draw to the screen using the SDL rendering APIs. Without DRM master, SDL - * is still able to process input and query attributes of attached displays, - * but it cannot change display state or draw to the screen directly. - * - * In some cases, it can be useful to have the KMSDRM backend even if it cannot - * be used for rendering. An app may want to use SDL for input processing while - * using another rendering API (such as an MMAL overlay on Raspberry Pi) or - * using its own code to render to DRM overlays that SDL doesn't support. - * - * This hint must be set before initializing the video subsystem. - * - * This variable can be set to the following values: - * "0" - SDL will allow usage of the KMSDRM backend without DRM master - * "1" - SDL Will require DRM master to use the KMSDRM backend (default) - */ -#define SDL_HINT_KMSDRM_REQUIRE_DRM_MASTER "SDL_KMSDRM_REQUIRE_DRM_MASTER" - -/** - * \brief A comma separated list of devices to open as joysticks - * - * This variable is currently only used by the Linux joystick driver. - */ -#define SDL_HINT_JOYSTICK_DEVICE "SDL_JOYSTICK_DEVICE" - -/** - * \brief A variable controlling whether joysticks on Linux will always treat 'hat' axis inputs (ABS_HAT0X - ABS_HAT3Y) as 8-way digital hats without checking whether they may be analog. - * - * This variable can be set to the following values: - * "0" - Only map hat axis inputs to digital hat outputs if the input axes appear to actually be digital (the default) - * "1" - Always handle the input axes numbered ABS_HAT0X to ABS_HAT3Y as digital hats - */ -#define SDL_HINT_LINUX_DIGITAL_HATS "SDL_LINUX_DIGITAL_HATS" - -/** - * \brief A variable controlling whether digital hats on Linux will apply deadzones to their underlying input axes or use unfiltered values. - * - * This variable can be set to the following values: - * "0" - Return digital hat values based on unfiltered input axis values - * "1" - Return digital hat values with deadzones on the input axes taken into account (the default) - */ -#define SDL_HINT_LINUX_HAT_DEADZONES "SDL_LINUX_HAT_DEADZONES" - -/** - * \brief A variable controlling whether to use the classic /dev/input/js* joystick interface or the newer /dev/input/event* joystick interface on Linux - * - * This variable can be set to the following values: - * "0" - Use /dev/input/event* - * "1" - Use /dev/input/js* - * - * By default the /dev/input/event* interfaces are used - */ -#define SDL_HINT_LINUX_JOYSTICK_CLASSIC "SDL_LINUX_JOYSTICK_CLASSIC" - -/** - * \brief A variable controlling whether joysticks on Linux adhere to their HID-defined deadzones or return unfiltered values. - * - * This variable can be set to the following values: - * "0" - Return unfiltered joystick axis values (the default) - * "1" - Return axis values with deadzones taken into account - */ -#define SDL_HINT_LINUX_JOYSTICK_DEADZONES "SDL_LINUX_JOYSTICK_DEADZONES" - -/** -* \brief When set don't force the SDL app to become a foreground process -* -* This hint only applies to Mac OS X. -* -*/ -#define SDL_HINT_MAC_BACKGROUND_APP "SDL_MAC_BACKGROUND_APP" - -/** - * \brief A variable that determines whether ctrl+click should generate a right-click event on Mac - * - * If present, holding ctrl while left clicking will generate a right click - * event when on Mac. - */ -#define SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK" - -/** - * \brief A variable controlling whether dispatching OpenGL context updates should block the dispatching thread until the main thread finishes processing - * - * This variable can be set to the following values: - * "0" - Dispatching OpenGL context updates will block the dispatching thread until the main thread finishes processing (default). - * "1" - Dispatching OpenGL context updates will allow the dispatching thread to continue execution. - * - * Generally you want the default, but if you have OpenGL code in a background thread on a Mac, and the main thread - * hangs because it's waiting for that background thread, but that background thread is also hanging because it's - * waiting for the main thread to do an update, this might fix your issue. - * - * This hint only applies to macOS. - * - * This hint is available since SDL 2.24.0. - * - */ -#define SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH "SDL_MAC_OPENGL_ASYNC_DISPATCH" - -/** - * \brief A variable setting the double click radius, in pixels. - */ -#define SDL_HINT_MOUSE_DOUBLE_CLICK_RADIUS "SDL_MOUSE_DOUBLE_CLICK_RADIUS" - -/** - * \brief A variable setting the double click time, in milliseconds. - */ -#define SDL_HINT_MOUSE_DOUBLE_CLICK_TIME "SDL_MOUSE_DOUBLE_CLICK_TIME" - -/** - * \brief Allow mouse click events when clicking to focus an SDL window - * - * This variable can be set to the following values: - * "0" - Ignore mouse clicks that activate a window - * "1" - Generate events for mouse clicks that activate a window - * - * By default SDL will ignore mouse clicks that activate a window - */ -#define SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH "SDL_MOUSE_FOCUS_CLICKTHROUGH" - -/** - * \brief A variable setting the speed scale for mouse motion, in floating point, when the mouse is not in relative mode - */ -#define SDL_HINT_MOUSE_NORMAL_SPEED_SCALE "SDL_MOUSE_NORMAL_SPEED_SCALE" - -/** - * \brief A variable controlling whether relative mouse mode constrains the mouse to the center of the window - * - * This variable can be set to the following values: - * "0" - Relative mouse mode constrains the mouse to the window - * "1" - Relative mouse mode constrains the mouse to the center of the window - * - * Constraining to the center of the window works better for FPS games and when the - * application is running over RDP. Constraining to the whole window works better - * for 2D games and increases the chance that the mouse will be in the correct - * position when using high DPI mice. - * - * By default SDL will constrain the mouse to the center of the window - */ -#define SDL_HINT_MOUSE_RELATIVE_MODE_CENTER "SDL_MOUSE_RELATIVE_MODE_CENTER" - -/** - * \brief A variable controlling whether relative mouse mode is implemented using mouse warping - * - * This variable can be set to the following values: - * "0" - Relative mouse mode uses raw input - * "1" - Relative mouse mode uses mouse warping - * - * By default SDL will use raw input for relative mouse mode - */ -#define SDL_HINT_MOUSE_RELATIVE_MODE_WARP "SDL_MOUSE_RELATIVE_MODE_WARP" - -/** - * \brief A variable controlling whether relative mouse motion is affected by renderer scaling - * - * This variable can be set to the following values: - * "0" - Relative motion is unaffected by DPI or renderer's logical size - * "1" - Relative motion is scaled according to DPI scaling and logical size - * - * By default relative mouse deltas are affected by DPI and renderer scaling - */ -#define SDL_HINT_MOUSE_RELATIVE_SCALING "SDL_MOUSE_RELATIVE_SCALING" - -/** - * \brief A variable setting the scale for mouse motion, in floating point, when the mouse is in relative mode - */ -#define SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE "SDL_MOUSE_RELATIVE_SPEED_SCALE" - -/** - * \brief A variable controlling whether the system mouse acceleration curve is used for relative mouse motion. - * - * This variable can be set to the following values: - * "0" - Relative mouse motion will be unscaled (the default) - * "1" - Relative mouse motion will be scaled using the system mouse acceleration curve. - * - * If SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE is set, that will override the system speed scale. - */ -#define SDL_HINT_MOUSE_RELATIVE_SYSTEM_SCALE "SDL_MOUSE_RELATIVE_SYSTEM_SCALE" - -/** - * \brief A variable controlling whether a motion event should be generated for mouse warping in relative mode. - * - * This variable can be set to the following values: - * "0" - Warping the mouse will not generate a motion event in relative mode - * "1" - Warping the mouse will generate a motion event in relative mode - * - * By default warping the mouse will not generate motion events in relative mode. This avoids the application having to filter out large relative motion due to warping. - */ -#define SDL_HINT_MOUSE_RELATIVE_WARP_MOTION "SDL_MOUSE_RELATIVE_WARP_MOTION" - -/** - * \brief A variable controlling whether mouse events should generate synthetic touch events - * - * This variable can be set to the following values: - * "0" - Mouse events will not generate touch events (default for desktop platforms) - * "1" - Mouse events will generate touch events (default for mobile platforms, such as Android and iOS) - */ -#define SDL_HINT_MOUSE_TOUCH_EVENTS "SDL_MOUSE_TOUCH_EVENTS" - -/** - * \brief A variable controlling whether the mouse is captured while mouse buttons are pressed - * - * This variable can be set to the following values: - * "0" - The mouse is not captured while mouse buttons are pressed - * "1" - The mouse is captured while mouse buttons are pressed - * - * By default the mouse is captured while mouse buttons are pressed so if the mouse is dragged - * outside the window, the application continues to receive mouse events until the button is - * released. - */ -#define SDL_HINT_MOUSE_AUTO_CAPTURE "SDL_MOUSE_AUTO_CAPTURE" - -/** - * \brief Tell SDL not to catch the SIGINT or SIGTERM signals. - * - * This hint only applies to Unix-like platforms, and should set before - * any calls to SDL_Init() - * - * The variable can be set to the following values: - * "0" - SDL will install a SIGINT and SIGTERM handler, and when it - * catches a signal, convert it into an SDL_QUIT event. - * "1" - SDL will not install a signal handler at all. - */ -#define SDL_HINT_NO_SIGNAL_HANDLERS "SDL_NO_SIGNAL_HANDLERS" - -/** - * \brief A variable controlling what driver to use for OpenGL ES contexts. - * - * On some platforms, currently Windows and X11, OpenGL drivers may support - * creating contexts with an OpenGL ES profile. By default SDL uses these - * profiles, when available, otherwise it attempts to load an OpenGL ES - * library, e.g. that provided by the ANGLE project. This variable controls - * whether SDL follows this default behaviour or will always load an - * OpenGL ES library. - * - * Circumstances where this is useful include - * - Testing an app with a particular OpenGL ES implementation, e.g ANGLE, - * or emulator, e.g. those from ARM, Imagination or Qualcomm. - * - Resolving OpenGL ES function addresses at link time by linking with - * the OpenGL ES library instead of querying them at run time with - * SDL_GL_GetProcAddress(). - * - * Caution: for an application to work with the default behaviour across - * different OpenGL drivers it must query the OpenGL ES function - * addresses at run time using SDL_GL_GetProcAddress(). - * - * This variable is ignored on most platforms because OpenGL ES is native - * or not supported. - * - * This variable can be set to the following values: - * "0" - Use ES profile of OpenGL, if available. (Default when not set.) - * "1" - Load OpenGL ES library using the default library names. - * - */ -#define SDL_HINT_OPENGL_ES_DRIVER "SDL_OPENGL_ES_DRIVER" - -/** - * \brief A variable controlling which orientations are allowed on iOS/Android. - * - * In some circumstances it is necessary to be able to explicitly control - * which UI orientations are allowed. - * - * This variable is a space delimited list of the following values: - * "LandscapeLeft", "LandscapeRight", "Portrait" "PortraitUpsideDown" - */ -#define SDL_HINT_ORIENTATIONS "SDL_IOS_ORIENTATIONS" - -/** - * \brief A variable controlling the use of a sentinel event when polling the event queue - * - * This variable can be set to the following values: - * "0" - Disable poll sentinels - * "1" - Enable poll sentinels - * - * When polling for events, SDL_PumpEvents is used to gather new events from devices. - * If a device keeps producing new events between calls to SDL_PumpEvents, a poll loop will - * become stuck until the new events stop. - * This is most noticeable when moving a high frequency mouse. - * - * By default, poll sentinels are enabled. - */ -#define SDL_HINT_POLL_SENTINEL "SDL_POLL_SENTINEL" - -/** - * \brief Override for SDL_GetPreferredLocales() - * - * If set, this will be favored over anything the OS might report for the - * user's preferred locales. Changing this hint at runtime will not generate - * a SDL_LOCALECHANGED event (but if you can change the hint, you can push - * your own event, if you want). - * - * The format of this hint is a comma-separated list of language and locale, - * combined with an underscore, as is a common format: "en_GB". Locale is - * optional: "en". So you might have a list like this: "en_GB,jp,es_PT" - */ -#define SDL_HINT_PREFERRED_LOCALES "SDL_PREFERRED_LOCALES" - -/** - * \brief A variable describing the content orientation on QtWayland-based platforms. - * - * On QtWayland platforms, windows are rotated client-side to allow for custom - * transitions. In order to correctly position overlays (e.g. volume bar) and - * gestures (e.g. events view, close/minimize gestures), the system needs to - * know in which orientation the application is currently drawing its contents. - * - * This does not cause the window to be rotated or resized, the application - * needs to take care of drawing the content in the right orientation (the - * framebuffer is always in portrait mode). - * - * This variable can be one of the following values: - * "primary" (default), "portrait", "landscape", "inverted-portrait", "inverted-landscape" - * - * Since SDL 2.0.22 this variable accepts a comma-separated list of values above. - */ -#define SDL_HINT_QTWAYLAND_CONTENT_ORIENTATION "SDL_QTWAYLAND_CONTENT_ORIENTATION" - -/** - * \brief Flags to set on QtWayland windows to integrate with the native window manager. - * - * On QtWayland platforms, this hint controls the flags to set on the windows. - * For example, on Sailfish OS "OverridesSystemGestures" disables swipe gestures. - * - * This variable is a space-separated list of the following values (empty = no flags): - * "OverridesSystemGestures", "StaysOnTop", "BypassWindowManager" - */ -#define SDL_HINT_QTWAYLAND_WINDOW_FLAGS "SDL_QTWAYLAND_WINDOW_FLAGS" - -/** - * \brief A variable controlling whether the 2D render API is compatible or efficient. - * - * This variable can be set to the following values: - * - * "0" - Don't use batching to make rendering more efficient. - * "1" - Use batching, but might cause problems if app makes its own direct OpenGL calls. - * - * Up to SDL 2.0.9, the render API would draw immediately when requested. Now - * it batches up draw requests and sends them all to the GPU only when forced - * to (during SDL_RenderPresent, when changing render targets, by updating a - * texture that the batch needs, etc). This is significantly more efficient, - * but it can cause problems for apps that expect to render on top of the - * render API's output. As such, SDL will disable batching if a specific - * render backend is requested (since this might indicate that the app is - * planning to use the underlying graphics API directly). This hint can - * be used to explicitly request batching in this instance. It is a contract - * that you will either never use the underlying graphics API directly, or - * if you do, you will call SDL_RenderFlush() before you do so any current - * batch goes to the GPU before your work begins. Not following this contract - * will result in undefined behavior. - */ -#define SDL_HINT_RENDER_BATCHING "SDL_RENDER_BATCHING" - -/** - * \brief A variable controlling how the 2D render API renders lines - * - * This variable can be set to the following values: - * "0" - Use the default line drawing method (Bresenham's line algorithm as of SDL 2.0.20) - * "1" - Use the driver point API using Bresenham's line algorithm (correct, draws many points) - * "2" - Use the driver line API (occasionally misses line endpoints based on hardware driver quirks, was the default before 2.0.20) - * "3" - Use the driver geometry API (correct, draws thicker diagonal lines) - * - * This variable should be set when the renderer is created. - */ -#define SDL_HINT_RENDER_LINE_METHOD "SDL_RENDER_LINE_METHOD" - -/** - * \brief A variable controlling whether to enable Direct3D 11+'s Debug Layer. - * - * This variable does not have any effect on the Direct3D 9 based renderer. - * - * This variable can be set to the following values: - * "0" - Disable Debug Layer use - * "1" - Enable Debug Layer use - * - * By default, SDL does not use Direct3D Debug Layer. - */ -#define SDL_HINT_RENDER_DIRECT3D11_DEBUG "SDL_RENDER_DIRECT3D11_DEBUG" - -/** - * \brief A variable controlling whether the Direct3D device is initialized for thread-safe operations. - * - * This variable can be set to the following values: - * "0" - Thread-safety is not enabled (faster) - * "1" - Thread-safety is enabled - * - * By default the Direct3D device is created with thread-safety disabled. - */ -#define SDL_HINT_RENDER_DIRECT3D_THREADSAFE "SDL_RENDER_DIRECT3D_THREADSAFE" - -/** - * \brief A variable specifying which render driver to use. - * - * If the application doesn't pick a specific renderer to use, this variable - * specifies the name of the preferred renderer. If the preferred renderer - * can't be initialized, the normal default renderer is used. - * - * This variable is case insensitive and can be set to the following values: - * "direct3d" - * "direct3d11" - * "direct3d12" - * "opengl" - * "opengles2" - * "opengles" - * "metal" - * "software" - * - * The default varies by platform, but it's the first one in the list that - * is available on the current platform. - */ -#define SDL_HINT_RENDER_DRIVER "SDL_RENDER_DRIVER" - -/** - * \brief A variable controlling the scaling policy for SDL_RenderSetLogicalSize. - * - * This variable can be set to the following values: - * "0" or "letterbox" - Uses letterbox/sidebars to fit the entire rendering on screen - * "1" or "overscan" - Will zoom the rendering so it fills the entire screen, allowing edges to be drawn offscreen - * - * By default letterbox is used - */ -#define SDL_HINT_RENDER_LOGICAL_SIZE_MODE "SDL_RENDER_LOGICAL_SIZE_MODE" - -/** - * \brief A variable controlling whether the OpenGL render driver uses shaders if they are available. - * - * This variable can be set to the following values: - * "0" - Disable shaders - * "1" - Enable shaders - * - * By default shaders are used if OpenGL supports them. - */ -#define SDL_HINT_RENDER_OPENGL_SHADERS "SDL_RENDER_OPENGL_SHADERS" - -/** - * \brief A variable controlling the scaling quality - * - * This variable can be set to the following values: - * "0" or "nearest" - Nearest pixel sampling - * "1" or "linear" - Linear filtering (supported by OpenGL and Direct3D) - * "2" or "best" - Currently this is the same as "linear" - * - * By default nearest pixel sampling is used - */ -#define SDL_HINT_RENDER_SCALE_QUALITY "SDL_RENDER_SCALE_QUALITY" - -/** - * \brief A variable controlling whether updates to the SDL screen surface should be synchronized with the vertical refresh, to avoid tearing. - * - * This variable can be set to the following values: - * "0" - Disable vsync - * "1" - Enable vsync - * - * By default SDL does not sync screen surface updates with vertical refresh. - */ -#define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC" - -/** - * \brief A variable controlling whether the Metal render driver select low power device over default one - * - * This variable can be set to the following values: - * "0" - Use the prefered OS device - * "1" - Select a low power one - * - * By default the prefered OS device is used. - */ -#define SDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE "SDL_RENDER_METAL_PREFER_LOW_POWER_DEVICE" - -/** - * \brief A variable controlling if VSYNC is automatically disable if doesn't reach the enough FPS - * - * This variable can be set to the following values: - * "0" - It will be using VSYNC as defined in the main flag. Default - * "1" - If VSYNC was previously enabled, then it will disable VSYNC if doesn't reach enough speed - * - * By default SDL does not enable the automatic VSYNC - */ -#define SDL_HINT_PS2_DYNAMIC_VSYNC "SDL_PS2_DYNAMIC_VSYNC" - -/** - * \brief A variable to control whether the return key on the soft keyboard - * should hide the soft keyboard on Android and iOS. - * - * The variable can be set to the following values: - * "0" - The return key will be handled as a key event. This is the behaviour of SDL <= 2.0.3. (default) - * "1" - The return key will hide the keyboard. - * - * The value of this hint is used at runtime, so it can be changed at any time. - */ -#define SDL_HINT_RETURN_KEY_HIDES_IME "SDL_RETURN_KEY_HIDES_IME" - -/** - * \brief Tell SDL which Dispmanx layer to use on a Raspberry PI - * - * Also known as Z-order. The variable can take a negative or positive value. - * The default is 10000. - */ -#define SDL_HINT_RPI_VIDEO_LAYER "SDL_RPI_VIDEO_LAYER" - -/** - * \brief Specify an "activity name" for screensaver inhibition. - * - * Some platforms, notably Linux desktops, list the applications which are - * inhibiting the screensaver or other power-saving features. - * - * This hint lets you specify the "activity name" sent to the OS when - * SDL_DisableScreenSaver() is used (or the screensaver is automatically - * disabled). The contents of this hint are used when the screensaver is - * disabled. You should use a string that describes what your program is doing - * (and, therefore, why the screensaver is disabled). For example, "Playing a - * game" or "Watching a video". - * - * Setting this to "" or leaving it unset will have SDL use a reasonable - * default: "Playing a game" or something similar. - * - * On targets where this is not supported, this hint does nothing. - */ -#define SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME "SDL_SCREENSAVER_INHIBIT_ACTIVITY_NAME" - -/** - * \brief Specifies whether SDL_THREAD_PRIORITY_TIME_CRITICAL should be treated as realtime. - * - * On some platforms, like Linux, a realtime priority thread may be subject to restrictions - * that require special handling by the application. This hint exists to let SDL know that - * the app is prepared to handle said restrictions. - * - * On Linux, SDL will apply the following configuration to any thread that becomes realtime: - * * The SCHED_RESET_ON_FORK bit will be set on the scheduling policy, - * * An RLIMIT_RTTIME budget will be configured to the rtkit specified limit. - * * Exceeding this limit will result in the kernel sending SIGKILL to the app, - * * Refer to the man pages for more information. - * - * This variable can be set to the following values: - * "0" - default platform specific behaviour - * "1" - Force SDL_THREAD_PRIORITY_TIME_CRITICAL to a realtime scheduling policy - */ -#define SDL_HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL "SDL_THREAD_FORCE_REALTIME_TIME_CRITICAL" - -/** -* \brief A string specifying additional information to use with SDL_SetThreadPriority. -* -* By default SDL_SetThreadPriority will make appropriate system changes in order to -* apply a thread priority. For example on systems using pthreads the scheduler policy -* is changed automatically to a policy that works well with a given priority. -* Code which has specific requirements can override SDL's default behavior with this hint. -* -* pthread hint values are "current", "other", "fifo" and "rr". -* Currently no other platform hint values are defined but may be in the future. -* -* \note On Linux, the kernel may send SIGKILL to realtime tasks which exceed the distro -* configured execution budget for rtkit. This budget can be queried through RLIMIT_RTTIME -* after calling SDL_SetThreadPriority(). -*/ -#define SDL_HINT_THREAD_PRIORITY_POLICY "SDL_THREAD_PRIORITY_POLICY" - -/** -* \brief A string specifying SDL's threads stack size in bytes or "0" for the backend's default size -* -* Use this hint in case you need to set SDL's threads stack size to other than the default. -* This is specially useful if you build SDL against a non glibc libc library (such as musl) which -* provides a relatively small default thread stack size (a few kilobytes versus the default 8MB glibc uses). -* Support for this hint is currently available only in the pthread, Windows, and PSP backend. -* -* Instead of this hint, in 2.0.9 and later, you can use -* SDL_CreateThreadWithStackSize(). This hint only works with the classic -* SDL_CreateThread(). -*/ -#define SDL_HINT_THREAD_STACK_SIZE "SDL_THREAD_STACK_SIZE" - -/** - * \brief A variable that controls the timer resolution, in milliseconds. - * - * The higher resolution the timer, the more frequently the CPU services - * timer interrupts, and the more precise delays are, but this takes up - * power and CPU time. This hint is only used on Windows. - * - * See this blog post for more information: - * http://randomascii.wordpress.com/2013/07/08/windows-timer-resolution-megawatts-wasted/ - * - * If this variable is set to "0", the system timer resolution is not set. - * - * The default value is "1". This hint may be set at any time. - */ -#define SDL_HINT_TIMER_RESOLUTION "SDL_TIMER_RESOLUTION" - -/** - * \brief A variable controlling whether touch events should generate synthetic mouse events - * - * This variable can be set to the following values: - * "0" - Touch events will not generate mouse events - * "1" - Touch events will generate mouse events - * - * By default SDL will generate mouse events for touch events - */ -#define SDL_HINT_TOUCH_MOUSE_EVENTS "SDL_TOUCH_MOUSE_EVENTS" - -/** - * \brief A variable controlling which touchpad should generate synthetic mouse events - * - * This variable can be set to the following values: - * "0" - Only front touchpad should generate mouse events. Default - * "1" - Only back touchpad should generate mouse events. - * "2" - Both touchpads should generate mouse events. - * - * By default SDL will generate mouse events for all touch devices - */ -#define SDL_HINT_VITA_TOUCH_MOUSE_DEVICE "SDL_HINT_VITA_TOUCH_MOUSE_DEVICE" - -/** - * \brief A variable controlling whether the Android / tvOS remotes - * should be listed as joystick devices, instead of sending keyboard events. - * - * This variable can be set to the following values: - * "0" - Remotes send enter/escape/arrow key events - * "1" - Remotes are available as 2 axis, 2 button joysticks (the default). - */ -#define SDL_HINT_TV_REMOTE_AS_JOYSTICK "SDL_TV_REMOTE_AS_JOYSTICK" - -/** - * \brief A variable controlling whether the screensaver is enabled. - * - * This variable can be set to the following values: - * "0" - Disable screensaver - * "1" - Enable screensaver - * - * By default SDL will disable the screensaver. - */ -#define SDL_HINT_VIDEO_ALLOW_SCREENSAVER "SDL_VIDEO_ALLOW_SCREENSAVER" - -/** - * \brief Tell the video driver that we only want a double buffer. - * - * By default, most lowlevel 2D APIs will use a triple buffer scheme that - * wastes no CPU time on waiting for vsync after issuing a flip, but - * introduces a frame of latency. On the other hand, using a double buffer - * scheme instead is recommended for cases where low latency is an important - * factor because we save a whole frame of latency. - * We do so by waiting for vsync immediately after issuing a flip, usually just - * after eglSwapBuffers call in the backend's *_SwapWindow function. - * - * Since it's driver-specific, it's only supported where possible and - * implemented. Currently supported the following drivers: - * - * - KMSDRM (kmsdrm) - * - Raspberry Pi (raspberrypi) - */ -#define SDL_HINT_VIDEO_DOUBLE_BUFFER "SDL_VIDEO_DOUBLE_BUFFER" - -/** - * \brief A variable controlling whether the EGL window is allowed to be - * composited as transparent, rather than opaque. - * - * Most window systems will always render windows opaque, even if the surface - * format has an alpha channel. This is not always true, however, so by default - * SDL will try to enforce opaque composition. To override this behavior, you - * can set this hint to "1". - */ -#define SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY "SDL_VIDEO_EGL_ALLOW_TRANSPARENCY" - -/** - * \brief A variable controlling whether the graphics context is externally managed. - * - * This variable can be set to the following values: - * "0" - SDL will manage graphics contexts that are attached to windows. - * "1" - Disable graphics context management on windows. - * - * By default SDL will manage OpenGL contexts in certain situations. For example, on Android the - * context will be automatically saved and restored when pausing the application. Additionally, some - * platforms will assume usage of OpenGL if Vulkan isn't used. Setting this to "1" will prevent this - * behavior, which is desireable when the application manages the graphics context, such as - * an externally managed OpenGL context or attaching a Vulkan surface to the window. - */ -#define SDL_HINT_VIDEO_EXTERNAL_CONTEXT "SDL_VIDEO_EXTERNAL_CONTEXT" - -/** - * \brief If set to 1, then do not allow high-DPI windows. ("Retina" on Mac and iOS) - */ -#define SDL_HINT_VIDEO_HIGHDPI_DISABLED "SDL_VIDEO_HIGHDPI_DISABLED" - -/** - * \brief A variable that dictates policy for fullscreen Spaces on Mac OS X. - * - * This hint only applies to Mac OS X. - * - * The variable can be set to the following values: - * "0" - Disable Spaces support (FULLSCREEN_DESKTOP won't use them and - * SDL_WINDOW_RESIZABLE windows won't offer the "fullscreen" - * button on their titlebars). - * "1" - Enable Spaces support (FULLSCREEN_DESKTOP will use them and - * SDL_WINDOW_RESIZABLE windows will offer the "fullscreen" - * button on their titlebars). - * - * The default value is "1". This hint must be set before any windows are created. - */ -#define SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES "SDL_VIDEO_MAC_FULLSCREEN_SPACES" - -/** - * \brief Minimize your SDL_Window if it loses key focus when in fullscreen mode. Defaults to false. - * \warning Before SDL 2.0.14, this defaulted to true! In 2.0.14, we're - * seeing if "true" causes more problems than it solves in modern times. - * - */ -#define SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS" - -/** - * \brief A variable controlling whether the libdecor Wayland backend is allowed to be used. - * - * This variable can be set to the following values: - * "0" - libdecor use is disabled. - * "1" - libdecor use is enabled (default). - * - * libdecor is used over xdg-shell when xdg-decoration protocol is unavailable. - */ -#define SDL_HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR "SDL_VIDEO_WAYLAND_ALLOW_LIBDECOR" - -/** - * \brief A variable controlling whether the libdecor Wayland backend is preferred over native decrations. - * - * When this hint is set, libdecor will be used to provide window decorations, even if xdg-decoration is - * available. (Note that, by default, libdecor will use xdg-decoration itself if available). - * - * This variable can be set to the following values: - * "0" - libdecor is enabled only if server-side decorations are unavailable. - * "1" - libdecor is always enabled if available. - * - * libdecor is used over xdg-shell when xdg-decoration protocol is unavailable. - */ -#define SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR "SDL_VIDEO_WAYLAND_PREFER_LIBDECOR" - -/** - * \brief A variable controlling whether video mode emulation is enabled under Wayland. - * - * When this hint is set, a standard set of emulated CVT video modes will be exposed for use by the application. - * If it is disabled, the only modes exposed will be the logical desktop size and, in the case of a scaled - * desktop, the native display resolution. - * - * This variable can be set to the following values: - * "0" - Video mode emulation is disabled. - * "1" - Video mode emulation is enabled. - * - * By default video mode emulation is enabled. - */ -#define SDL_HINT_VIDEO_WAYLAND_MODE_EMULATION "SDL_VIDEO_WAYLAND_MODE_EMULATION" - -/** - * \brief Enable or disable mouse pointer warp emulation, needed by some older games. - * - * When this hint is set, any SDL will emulate mouse warps using relative mouse mode. - * This is required for some older games (such as Source engine games), which warp the - * mouse to the centre of the screen rather than using relative mouse motion. Note that - * relative mouse mode may have different mouse acceleration behaviour than pointer warps. - * - * This variable can be set to the following values: - * "0" - All mouse warps fail, as mouse warping is not available under wayland. - * "1" - Some mouse warps will be emulated by forcing relative mouse mode. - * - * If not set, this is automatically enabled unless an application uses relative mouse - * mode directly. - */ -#define SDL_HINT_VIDEO_WAYLAND_EMULATE_MOUSE_WARP "SDL_VIDEO_WAYLAND_EMULATE_MOUSE_WARP" - -/** -* \brief A variable that is the address of another SDL_Window* (as a hex string formatted with "%p"). -* -* If this hint is set before SDL_CreateWindowFrom() and the SDL_Window* it is set to has -* SDL_WINDOW_OPENGL set (and running on WGL only, currently), then two things will occur on the newly -* created SDL_Window: -* -* 1. Its pixel format will be set to the same pixel format as this SDL_Window. This is -* needed for example when sharing an OpenGL context across multiple windows. -* -* 2. The flag SDL_WINDOW_OPENGL will be set on the new window so it can be used for -* OpenGL rendering. -* -* This variable can be set to the following values: -* The address (as a string "%p") of the SDL_Window* that new windows created with SDL_CreateWindowFrom() should -* share a pixel format with. -*/ -#define SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT "SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT" - -/** - * \brief When calling SDL_CreateWindowFrom(), make the window compatible with OpenGL. - * - * This variable can be set to the following values: - * "0" - Don't add any graphics flags to the SDL_WindowFlags - * "1" - Add SDL_WINDOW_OPENGL to the SDL_WindowFlags - * - * By default SDL will not make the foreign window compatible with OpenGL. - */ -#define SDL_HINT_VIDEO_FOREIGN_WINDOW_OPENGL "SDL_VIDEO_FOREIGN_WINDOW_OPENGL" - -/** - * \brief When calling SDL_CreateWindowFrom(), make the window compatible with Vulkan. - * - * This variable can be set to the following values: - * "0" - Don't add any graphics flags to the SDL_WindowFlags - * "1" - Add SDL_WINDOW_VULKAN to the SDL_WindowFlags - * - * By default SDL will not make the foreign window compatible with Vulkan. - */ -#define SDL_HINT_VIDEO_FOREIGN_WINDOW_VULKAN "SDL_VIDEO_FOREIGN_WINDOW_VULKAN" - -/** -* \brief A variable specifying which shader compiler to preload when using the Chrome ANGLE binaries -* -* SDL has EGL and OpenGL ES2 support on Windows via the ANGLE project. It -* can use two different sets of binaries, those compiled by the user from source -* or those provided by the Chrome browser. In the later case, these binaries require -* that SDL loads a DLL providing the shader compiler. -* -* This variable can be set to the following values: -* "d3dcompiler_46.dll" - default, best for Vista or later. -* "d3dcompiler_43.dll" - for XP support. -* "none" - do not load any library, useful if you compiled ANGLE from source and included the compiler in your binaries. -* -*/ -#define SDL_HINT_VIDEO_WIN_D3DCOMPILER "SDL_VIDEO_WIN_D3DCOMPILER" - -/** - * \brief A variable controlling whether X11 should use GLX or EGL by default - * - * This variable can be set to the following values: - * "0" - Use GLX - * "1" - Use EGL - * - * By default SDL will use GLX when both are present. - */ -#define SDL_HINT_VIDEO_X11_FORCE_EGL "SDL_VIDEO_X11_FORCE_EGL" - -/** - * \brief A variable controlling whether the X11 _NET_WM_BYPASS_COMPOSITOR hint should be used. - * - * This variable can be set to the following values: - * "0" - Disable _NET_WM_BYPASS_COMPOSITOR - * "1" - Enable _NET_WM_BYPASS_COMPOSITOR - * - * By default SDL will use _NET_WM_BYPASS_COMPOSITOR - * - */ -#define SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR" - -/** - * \brief A variable controlling whether the X11 _NET_WM_PING protocol should be supported. - * - * This variable can be set to the following values: - * "0" - Disable _NET_WM_PING - * "1" - Enable _NET_WM_PING - * - * By default SDL will use _NET_WM_PING, but for applications that know they - * will not always be able to respond to ping requests in a timely manner they can - * turn it off to avoid the window manager thinking the app is hung. - * The hint is checked in CreateWindow. - */ -#define SDL_HINT_VIDEO_X11_NET_WM_PING "SDL_VIDEO_X11_NET_WM_PING" - -/** - * \brief A variable forcing the visual ID chosen for new X11 windows - * - */ -#define SDL_HINT_VIDEO_X11_WINDOW_VISUALID "SDL_VIDEO_X11_WINDOW_VISUALID" - -/** - * \brief A no-longer-used variable controlling whether the X11 Xinerama extension should be used. - * - * Before SDL 2.0.24, this would let apps and users disable Xinerama support on X11. - * Now SDL never uses Xinerama, and does not check for this hint at all. - * The preprocessor define is left here for source compatibility. - */ -#define SDL_HINT_VIDEO_X11_XINERAMA "SDL_VIDEO_X11_XINERAMA" - -/** - * \brief A variable controlling whether the X11 XRandR extension should be used. - * - * This variable can be set to the following values: - * "0" - Disable XRandR - * "1" - Enable XRandR - * - * By default SDL will use XRandR. - */ -#define SDL_HINT_VIDEO_X11_XRANDR "SDL_VIDEO_X11_XRANDR" - -/** - * \brief A no-longer-used variable controlling whether the X11 VidMode extension should be used. - * - * Before SDL 2.0.24, this would let apps and users disable XVidMode support on X11. - * Now SDL never uses XVidMode, and does not check for this hint at all. - * The preprocessor define is left here for source compatibility. - */ -#define SDL_HINT_VIDEO_X11_XVIDMODE "SDL_VIDEO_X11_XVIDMODE" - -/** - * \brief Controls how the fact chunk affects the loading of a WAVE file. - * - * The fact chunk stores information about the number of samples of a WAVE - * file. The Standards Update from Microsoft notes that this value can be used - * to 'determine the length of the data in seconds'. This is especially useful - * for compressed formats (for which this is a mandatory chunk) if they produce - * multiple sample frames per block and truncating the block is not allowed. - * The fact chunk can exactly specify how many sample frames there should be - * in this case. - * - * Unfortunately, most application seem to ignore the fact chunk and so SDL - * ignores it by default as well. - * - * This variable can be set to the following values: - * - * "truncate" - Use the number of samples to truncate the wave data if - * the fact chunk is present and valid - * "strict" - Like "truncate", but raise an error if the fact chunk - * is invalid, not present for non-PCM formats, or if the - * data chunk doesn't have that many samples - * "ignorezero" - Like "truncate", but ignore fact chunk if the number of - * samples is zero - * "ignore" - Ignore fact chunk entirely (default) - */ -#define SDL_HINT_WAVE_FACT_CHUNK "SDL_WAVE_FACT_CHUNK" - -/** - * \brief Controls how the size of the RIFF chunk affects the loading of a WAVE file. - * - * The size of the RIFF chunk (which includes all the sub-chunks of the WAVE - * file) is not always reliable. In case the size is wrong, it's possible to - * just ignore it and step through the chunks until a fixed limit is reached. - * - * Note that files that have trailing data unrelated to the WAVE file or - * corrupt files may slow down the loading process without a reliable boundary. - * By default, SDL stops after 10000 chunks to prevent wasting time. Use the - * environment variable SDL_WAVE_CHUNK_LIMIT to adjust this value. - * - * This variable can be set to the following values: - * - * "force" - Always use the RIFF chunk size as a boundary for the chunk search - * "ignorezero" - Like "force", but a zero size searches up to 4 GiB (default) - * "ignore" - Ignore the RIFF chunk size and always search up to 4 GiB - * "maximum" - Search for chunks until the end of file (not recommended) - */ -#define SDL_HINT_WAVE_RIFF_CHUNK_SIZE "SDL_WAVE_RIFF_CHUNK_SIZE" - -/** - * \brief Controls how a truncated WAVE file is handled. - * - * A WAVE file is considered truncated if any of the chunks are incomplete or - * the data chunk size is not a multiple of the block size. By default, SDL - * decodes until the first incomplete block, as most applications seem to do. - * - * This variable can be set to the following values: - * - * "verystrict" - Raise an error if the file is truncated - * "strict" - Like "verystrict", but the size of the RIFF chunk is ignored - * "dropframe" - Decode until the first incomplete sample frame - * "dropblock" - Decode until the first incomplete block (default) - */ -#define SDL_HINT_WAVE_TRUNCATION "SDL_WAVE_TRUNCATION" - -/** - * \brief Tell SDL not to name threads on Windows with the 0x406D1388 Exception. - * The 0x406D1388 Exception is a trick used to inform Visual Studio of a - * thread's name, but it tends to cause problems with other debuggers, - * and the .NET runtime. Note that SDL 2.0.6 and later will still use - * the (safer) SetThreadDescription API, introduced in the Windows 10 - * Creators Update, if available. - * - * The variable can be set to the following values: - * "0" - SDL will raise the 0x406D1388 Exception to name threads. - * This is the default behavior of SDL <= 2.0.4. - * "1" - SDL will not raise this exception, and threads will be unnamed. (default) - * This is necessary with .NET languages or debuggers that aren't Visual Studio. - */ -#define SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING "SDL_WINDOWS_DISABLE_THREAD_NAMING" - -/** - * \brief Controls whether menus can be opened with their keyboard shortcut (Alt+mnemonic). - * - * If the mnemonics are enabled, then menus can be opened by pressing the Alt - * key and the corresponding mnemonic (for example, Alt+F opens the File menu). - * However, in case an invalid mnemonic is pressed, Windows makes an audible - * beep to convey that nothing happened. This is true even if the window has - * no menu at all! - * - * Because most SDL applications don't have menus, and some want to use the Alt - * key for other purposes, SDL disables mnemonics (and the beeping) by default. - * - * Note: This also affects keyboard events: with mnemonics enabled, when a - * menu is opened from the keyboard, you will not receive a KEYUP event for - * the mnemonic key, and *might* not receive one for Alt. - * - * This variable can be set to the following values: - * "0" - Alt+mnemonic does nothing, no beeping. (default) - * "1" - Alt+mnemonic opens menus, invalid mnemonics produce a beep. - */ -#define SDL_HINT_WINDOWS_ENABLE_MENU_MNEMONICS "SDL_WINDOWS_ENABLE_MENU_MNEMONICS" - -/** - * \brief A variable controlling whether the windows message loop is processed by SDL - * - * This variable can be set to the following values: - * "0" - The window message loop is not run - * "1" - The window message loop is processed in SDL_PumpEvents() - * - * By default SDL will process the windows message loop - */ -#define SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP "SDL_WINDOWS_ENABLE_MESSAGELOOP" - -/** - * \brief Force SDL to use Critical Sections for mutexes on Windows. - * On Windows 7 and newer, Slim Reader/Writer Locks are available. - * They offer better performance, allocate no kernel ressources and - * use less memory. SDL will fall back to Critical Sections on older - * OS versions or if forced to by this hint. - * - * This variable can be set to the following values: - * "0" - Use SRW Locks when available. If not, fall back to Critical Sections. (default) - * "1" - Force the use of Critical Sections in all cases. - * - */ -#define SDL_HINT_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS "SDL_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS" - -/** - * \brief Force SDL to use Kernel Semaphores on Windows. - * Kernel Semaphores are inter-process and require a context - * switch on every interaction. On Windows 8 and newer, the - * WaitOnAddress API is available. Using that and atomics to - * implement semaphores increases performance. - * SDL will fall back to Kernel Objects on older OS versions - * or if forced to by this hint. - * - * This variable can be set to the following values: - * "0" - Use Atomics and WaitOnAddress API when available. If not, fall back to Kernel Objects. (default) - * "1" - Force the use of Kernel Objects in all cases. - * - */ -#define SDL_HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL "SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL" - -/** - * \brief A variable to specify custom icon resource id from RC file on Windows platform - */ -#define SDL_HINT_WINDOWS_INTRESOURCE_ICON "SDL_WINDOWS_INTRESOURCE_ICON" -#define SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL "SDL_WINDOWS_INTRESOURCE_ICON_SMALL" - -/** - * \brief Tell SDL not to generate window-close events for Alt+F4 on Windows. - * - * The variable can be set to the following values: - * "0" - SDL will generate a window-close event when it sees Alt+F4. - * "1" - SDL will only do normal key handling for Alt+F4. - */ -#define SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4" - -/** - * \brief Use the D3D9Ex API introduced in Windows Vista, instead of normal D3D9. - * Direct3D 9Ex contains changes to state management that can eliminate device - * loss errors during scenarios like Alt+Tab or UAC prompts. D3D9Ex may require - * some changes to your application to cope with the new behavior, so this - * is disabled by default. - * - * This hint must be set before initializing the video subsystem. - * - * For more information on Direct3D 9Ex, see: - * - https://docs.microsoft.com/en-us/windows/win32/direct3darticles/graphics-apis-in-windows-vista#direct3d-9ex - * - https://docs.microsoft.com/en-us/windows/win32/direct3darticles/direct3d-9ex-improvements - * - * This variable can be set to the following values: - * "0" - Use the original Direct3D 9 API (default) - * "1" - Use the Direct3D 9Ex API on Vista and later (and fall back if D3D9Ex is unavailable) - * - */ -#define SDL_HINT_WINDOWS_USE_D3D9EX "SDL_WINDOWS_USE_D3D9EX" - -/** - * \brief Controls whether SDL will declare the process to be DPI aware. - * - * This hint must be set before initializing the video subsystem. - * - * The main purpose of declaring DPI awareness is to disable OS bitmap scaling of SDL windows on monitors with - * a DPI scale factor. - * - * This hint is equivalent to requesting DPI awareness via external means (e.g. calling SetProcessDpiAwarenessContext) - * and does not cause SDL to use a virtualized coordinate system, so it will generally give you 1 SDL coordinate = 1 pixel - * even on high-DPI displays. - * - * For more information, see: - * https://docs.microsoft.com/en-us/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows - * - * This variable can be set to the following values: - * "" - Do not change the DPI awareness (default). - * "unaware" - Declare the process as DPI unaware. (Windows 8.1 and later). - * "system" - Request system DPI awareness. (Vista and later). - * "permonitor" - Request per-monitor DPI awareness. (Windows 8.1 and later). - * "permonitorv2" - Request per-monitor V2 DPI awareness. (Windows 10, version 1607 and later). - * The most visible difference from "permonitor" is that window title bar will be scaled - * to the visually correct size when dragging between monitors with different scale factors. - * This is the preferred DPI awareness level. - * - * If the requested DPI awareness is not available on the currently running OS, SDL will try to request the best - * available match. - */ -#define SDL_HINT_WINDOWS_DPI_AWARENESS "SDL_WINDOWS_DPI_AWARENESS" - -/** - * \brief Uses DPI-scaled points as the SDL coordinate system on Windows. - * - * This changes the SDL coordinate system units to be DPI-scaled points, rather than pixels everywhere. - * This means windows will be appropriately sized, even when created on high-DPI displays with scaling. - * - * e.g. requesting a 640x480 window from SDL, on a display with 125% scaling in Windows display settings, - * will create a window with an 800x600 client area (in pixels). - * - * Setting this to "1" implicitly requests process DPI awareness (setting SDL_WINDOWS_DPI_AWARENESS is unnecessary), - * and forces SDL_WINDOW_ALLOW_HIGHDPI on all windows. - * - * This variable can be set to the following values: - * "0" - SDL coordinates equal Windows coordinates. No automatic window resizing when dragging - * between monitors with different scale factors (unless this is performed by - * Windows itself, which is the case when the process is DPI unaware). - * "1" - SDL coordinates are in DPI-scaled points. Automatically resize windows as needed on - * displays with non-100% scale factors. - */ -#define SDL_HINT_WINDOWS_DPI_SCALING "SDL_WINDOWS_DPI_SCALING" - -/** - * \brief A variable controlling whether the window frame and title bar are interactive when the cursor is hidden - * - * This variable can be set to the following values: - * "0" - The window frame is not interactive when the cursor is hidden (no move, resize, etc) - * "1" - The window frame is interactive when the cursor is hidden - * - * By default SDL will allow interaction with the window frame when the cursor is hidden - */ -#define SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN" - -/** -* \brief A variable controlling whether the window is activated when the SDL_ShowWindow function is called -* -* This variable can be set to the following values: -* "0" - The window is activated when the SDL_ShowWindow function is called -* "1" - The window is not activated when the SDL_ShowWindow function is called -* -* By default SDL will activate the window when the SDL_ShowWindow function is called -*/ -#define SDL_HINT_WINDOW_NO_ACTIVATION_WHEN_SHOWN "SDL_WINDOW_NO_ACTIVATION_WHEN_SHOWN" - -/** \brief Allows back-button-press events on Windows Phone to be marked as handled - * - * Windows Phone devices typically feature a Back button. When pressed, - * the OS will emit back-button-press events, which apps are expected to - * handle in an appropriate manner. If apps do not explicitly mark these - * events as 'Handled', then the OS will invoke its default behavior for - * unhandled back-button-press events, which on Windows Phone 8 and 8.1 is to - * terminate the app (and attempt to switch to the previous app, or to the - * device's home screen). - * - * Setting the SDL_HINT_WINRT_HANDLE_BACK_BUTTON hint to "1" will cause SDL - * to mark back-button-press events as Handled, if and when one is sent to - * the app. - * - * Internally, Windows Phone sends back button events as parameters to - * special back-button-press callback functions. Apps that need to respond - * to back-button-press events are expected to register one or more - * callback functions for such, shortly after being launched (during the - * app's initialization phase). After the back button is pressed, the OS - * will invoke these callbacks. If the app's callback(s) do not explicitly - * mark the event as handled by the time they return, or if the app never - * registers one of these callback, the OS will consider the event - * un-handled, and it will apply its default back button behavior (terminate - * the app). - * - * SDL registers its own back-button-press callback with the Windows Phone - * OS. This callback will emit a pair of SDL key-press events (SDL_KEYDOWN - * and SDL_KEYUP), each with a scancode of SDL_SCANCODE_AC_BACK, after which - * it will check the contents of the hint, SDL_HINT_WINRT_HANDLE_BACK_BUTTON. - * If the hint's value is set to "1", the back button event's Handled - * property will get set to 'true'. If the hint's value is set to something - * else, or if it is unset, SDL will leave the event's Handled property - * alone. (By default, the OS sets this property to 'false', to note.) - * - * SDL apps can either set SDL_HINT_WINRT_HANDLE_BACK_BUTTON well before a - * back button is pressed, or can set it in direct-response to a back button - * being pressed. - * - * In order to get notified when a back button is pressed, SDL apps should - * register a callback function with SDL_AddEventWatch(), and have it listen - * for SDL_KEYDOWN events that have a scancode of SDL_SCANCODE_AC_BACK. - * (Alternatively, SDL_KEYUP events can be listened-for. Listening for - * either event type is suitable.) Any value of SDL_HINT_WINRT_HANDLE_BACK_BUTTON - * set by such a callback, will be applied to the OS' current - * back-button-press event. - * - * More details on back button behavior in Windows Phone apps can be found - * at the following page, on Microsoft's developer site: - * http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj247550(v=vs.105).aspx - */ -#define SDL_HINT_WINRT_HANDLE_BACK_BUTTON "SDL_WINRT_HANDLE_BACK_BUTTON" - -/** \brief Label text for a WinRT app's privacy policy link - * - * Network-enabled WinRT apps must include a privacy policy. On Windows 8, 8.1, and RT, - * Microsoft mandates that this policy be available via the Windows Settings charm. - * SDL provides code to add a link there, with its label text being set via the - * optional hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL. - * - * Please note that a privacy policy's contents are not set via this hint. A separate - * hint, SDL_HINT_WINRT_PRIVACY_POLICY_URL, is used to link to the actual text of the - * policy. - * - * The contents of this hint should be encoded as a UTF8 string. - * - * The default value is "Privacy Policy". This hint should only be set during app - * initialization, preferably before any calls to SDL_Init(). - * - * For additional information on linking to a privacy policy, see the documentation for - * SDL_HINT_WINRT_PRIVACY_POLICY_URL. - */ -#define SDL_HINT_WINRT_PRIVACY_POLICY_LABEL "SDL_WINRT_PRIVACY_POLICY_LABEL" - -/** - * \brief A URL to a WinRT app's privacy policy - * - * All network-enabled WinRT apps must make a privacy policy available to its - * users. On Windows 8, 8.1, and RT, Microsoft mandates that this policy be - * be available in the Windows Settings charm, as accessed from within the app. - * SDL provides code to add a URL-based link there, which can point to the app's - * privacy policy. - * - * To setup a URL to an app's privacy policy, set SDL_HINT_WINRT_PRIVACY_POLICY_URL - * before calling any SDL_Init() functions. The contents of the hint should - * be a valid URL. For example, "http://www.example.com". - * - * The default value is "", which will prevent SDL from adding a privacy policy - * link to the Settings charm. This hint should only be set during app init. - * - * The label text of an app's "Privacy Policy" link may be customized via another - * hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL. - * - * Please note that on Windows Phone, Microsoft does not provide standard UI - * for displaying a privacy policy link, and as such, SDL_HINT_WINRT_PRIVACY_POLICY_URL - * will not get used on that platform. Network-enabled phone apps should display - * their privacy policy through some other, in-app means. - */ -#define SDL_HINT_WINRT_PRIVACY_POLICY_URL "SDL_WINRT_PRIVACY_POLICY_URL" - -/** - * \brief Mark X11 windows as override-redirect. - * - * If set, this _might_ increase framerate at the expense of the desktop - * not working as expected. Override-redirect windows aren't noticed by the - * window manager at all. - * - * You should probably only use this for fullscreen windows, and you probably - * shouldn't even use it for that. But it's here if you want to try! - */ -#define SDL_HINT_X11_FORCE_OVERRIDE_REDIRECT "SDL_X11_FORCE_OVERRIDE_REDIRECT" - -/** - * \brief A variable that lets you disable the detection and use of Xinput gamepad devices - * - * The variable can be set to the following values: - * "0" - Disable XInput detection (only uses direct input) - * "1" - Enable XInput detection (the default) - */ -#define SDL_HINT_XINPUT_ENABLED "SDL_XINPUT_ENABLED" - - /** - * \brief A variable that lets you disable the detection and use of DirectInput gamepad devices - * - * The variable can be set to the following values: - * "0" - Disable DirectInput detection (only uses XInput) - * "1" - Enable DirectInput detection (the default) - */ -#define SDL_HINT_DIRECTINPUT_ENABLED "SDL_DIRECTINPUT_ENABLED" - -/** - * \brief A variable that causes SDL to use the old axis and button mapping for XInput devices. - * - * This hint is for backwards compatibility only and will be removed in SDL 2.1 - * - * The default value is "0". This hint must be set before SDL_Init() - */ -#define SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING "SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING" - -/** - * \brief A variable that causes SDL to not ignore audio "monitors" - * - * This is currently only used for PulseAudio and ignored elsewhere. - * - * By default, SDL ignores audio devices that aren't associated with physical - * hardware. Changing this hint to "1" will expose anything SDL sees that - * appears to be an audio source or sink. This will add "devices" to the list - * that the user probably doesn't want or need, but it can be useful in - * scenarios where you want to hook up SDL to some sort of virtual device, - * etc. - * - * The default value is "0". This hint must be set before SDL_Init(). - * - * This hint is available since SDL 2.0.16. Before then, virtual devices are - * always ignored. - */ -#define SDL_HINT_AUDIO_INCLUDE_MONITORS "SDL_AUDIO_INCLUDE_MONITORS" - -/** - * \brief A variable that forces X11 windows to create as a custom type. - * - * This is currently only used for X11 and ignored elsewhere. - * - * During SDL_CreateWindow, SDL uses the _NET_WM_WINDOW_TYPE X11 property - * to report to the window manager the type of window it wants to create. - * This might be set to various things if SDL_WINDOW_TOOLTIP or - * SDL_WINDOW_POPUP_MENU, etc, were specified. For "normal" windows that - * haven't set a specific type, this hint can be used to specify a custom - * type. For example, a dock window might set this to - * "_NET_WM_WINDOW_TYPE_DOCK". - * - * If not set or set to "", this hint is ignored. This hint must be set - * before the SDL_CreateWindow() call that it is intended to affect. - * - * This hint is available since SDL 2.0.22. - */ -#define SDL_HINT_X11_WINDOW_TYPE "SDL_X11_WINDOW_TYPE" - -/** - * \brief A variable that decides whether to send SDL_QUIT when closing the final window. - * - * By default, SDL sends an SDL_QUIT event when there is only one window - * and it receives an SDL_WINDOWEVENT_CLOSE event, under the assumption most - * apps would also take the loss of this window as a signal to terminate the - * program. - * - * However, it's not unreasonable in some cases to have the program continue - * to live on, perhaps to create new windows later. - * - * Changing this hint to "0" will cause SDL to not send an SDL_QUIT event - * when the final window is requesting to close. Note that in this case, - * there are still other legitimate reasons one might get an SDL_QUIT - * event: choosing "Quit" from the macOS menu bar, sending a SIGINT (ctrl-c) - * on Unix, etc. - * - * The default value is "1". This hint can be changed at any time. - * - * This hint is available since SDL 2.0.22. Before then, you always get - * an SDL_QUIT event when closing the final window. - */ -#define SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE "SDL_QUIT_ON_LAST_WINDOW_CLOSE" - - -/** - * \brief A variable that decides what video backend to use. - * - * By default, SDL will try all available video backends in a reasonable - * order until it finds one that can work, but this hint allows the app - * or user to force a specific target, such as "x11" if, say, you are - * on Wayland but want to try talking to the X server instead. - * - * This functionality has existed since SDL 2.0.0 (indeed, before that) - * but before 2.0.22 this was an environment variable only. In 2.0.22, - * it was upgraded to a full SDL hint, so you can set the environment - * variable as usual or programatically set the hint with SDL_SetHint, - * which won't propagate to child processes. - * - * The default value is unset, in which case SDL will try to figure out - * the best video backend on your behalf. This hint needs to be set - * before SDL_Init() is called to be useful. - * - * This hint is available since SDL 2.0.22. Before then, you could set - * the environment variable to get the same effect. - */ -#define SDL_HINT_VIDEODRIVER "SDL_VIDEODRIVER" - -/** - * \brief A variable that decides what audio backend to use. - * - * By default, SDL will try all available audio backends in a reasonable - * order until it finds one that can work, but this hint allows the app - * or user to force a specific target, such as "alsa" if, say, you are - * on PulseAudio but want to try talking to the lower level instead. - * - * This functionality has existed since SDL 2.0.0 (indeed, before that) - * but before 2.0.22 this was an environment variable only. In 2.0.22, - * it was upgraded to a full SDL hint, so you can set the environment - * variable as usual or programatically set the hint with SDL_SetHint, - * which won't propagate to child processes. - * - * The default value is unset, in which case SDL will try to figure out - * the best audio backend on your behalf. This hint needs to be set - * before SDL_Init() is called to be useful. - * - * This hint is available since SDL 2.0.22. Before then, you could set - * the environment variable to get the same effect. - */ -#define SDL_HINT_AUDIODRIVER "SDL_AUDIODRIVER" - -/** - * \brief A variable that decides what KMSDRM device to use. - * - * Internally, SDL might open something like "/dev/dri/cardNN" to - * access KMSDRM functionality, where "NN" is a device index number. - * - * SDL makes a guess at the best index to use (usually zero), but the - * app or user can set this hint to a number between 0 and 99 to - * force selection. - * - * This hint is available since SDL 2.24.0. - */ -#define SDL_HINT_KMSDRM_DEVICE_INDEX "SDL_KMSDRM_DEVICE_INDEX" - - -/** - * \brief A variable that treats trackpads as touch devices. - * - * On macOS (and possibly other platforms in the future), SDL will report - * touches on a trackpad as mouse input, which is generally what users - * expect from this device; however, these are often actually full - * multitouch-capable touch devices, so it might be preferable to some apps - * to treat them as such. - * - * Setting this hint to true will make the trackpad input report as a - * multitouch device instead of a mouse. The default is false. - * - * Note that most platforms don't support this hint. As of 2.24.0, it - * only supports MacBooks' trackpads on macOS. Others may follow later. - * - * This hint is checked during SDL_Init and can not be changed after. - * - * This hint is available since SDL 2.24.0. - */ -#define SDL_HINT_TRACKPAD_IS_TOUCH_ONLY "SDL_TRACKPAD_IS_TOUCH_ONLY" - - -/** - * \brief An enumeration of hint priorities - */ -typedef enum -{ - SDL_HINT_DEFAULT, - SDL_HINT_NORMAL, - SDL_HINT_OVERRIDE -} SDL_HintPriority; - - -/** - * Set a hint with a specific priority. - * - * The priority controls the behavior when setting a hint that already has a - * value. Hints will replace existing hints of their priority and lower. - * Environment variables are considered to have override priority. - * - * \param name the hint to set - * \param value the value of the hint variable - * \param priority the SDL_HintPriority level for the hint - * \returns SDL_TRUE if the hint was set, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetHint - * \sa SDL_SetHint - */ -extern DECLSPEC SDL_bool SDLCALL SDL_SetHintWithPriority(const char *name, - const char *value, - SDL_HintPriority priority); - -/** - * Set a hint with normal priority. - * - * Hints will not be set if there is an existing override hint or environment - * variable that takes precedence. You can use SDL_SetHintWithPriority() to - * set the hint with override priority instead. - * - * \param name the hint to set - * \param value the value of the hint variable - * \returns SDL_TRUE if the hint was set, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetHint - * \sa SDL_SetHintWithPriority - */ -extern DECLSPEC SDL_bool SDLCALL SDL_SetHint(const char *name, - const char *value); - -/** - * Reset a hint to the default value. - * - * This will reset a hint to the value of the environment variable, or NULL if - * the environment isn't set. Callbacks will be called normally with this - * change. - * - * \param name the hint to set - * \returns SDL_TRUE if the hint was set, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GetHint - * \sa SDL_SetHint - */ -extern DECLSPEC SDL_bool SDLCALL SDL_ResetHint(const char *name); - -/** - * Reset all hints to the default values. - * - * This will reset all hints to the value of the associated environment - * variable, or NULL if the environment isn't set. Callbacks will be called - * normally with this change. - * - * \since This function is available since SDL 2.26.0. - * - * \sa SDL_GetHint - * \sa SDL_SetHint - * \sa SDL_ResetHint - */ -extern DECLSPEC void SDLCALL SDL_ResetHints(void); - -/** - * Get the value of a hint. - * - * \param name the hint to query - * \returns the string value of a hint or NULL if the hint isn't set. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetHint - * \sa SDL_SetHintWithPriority - */ -extern DECLSPEC const char * SDLCALL SDL_GetHint(const char *name); - -/** - * Get the boolean value of a hint variable. - * - * \param name the name of the hint to get the boolean value from - * \param default_value the value to return if the hint does not exist - * \returns the boolean value of a hint or the provided default value if the - * hint does not exist. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_GetHint - * \sa SDL_SetHint - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetHintBoolean(const char *name, SDL_bool default_value); - -/** - * Type definition of the hint callback function. - * - * \param userdata what was passed as `userdata` to SDL_AddHintCallback() - * \param name what was passed as `name` to SDL_AddHintCallback() - * \param oldValue the previous hint value - * \param newValue the new value hint is to be set to - */ -typedef void (SDLCALL *SDL_HintCallback)(void *userdata, const char *name, const char *oldValue, const char *newValue); - -/** - * Add a function to watch a particular hint. - * - * \param name the hint to watch - * \param callback An SDL_HintCallback function that will be called when the - * hint value changes - * \param userdata a pointer to pass to the callback function - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_DelHintCallback - */ -extern DECLSPEC void SDLCALL SDL_AddHintCallback(const char *name, - SDL_HintCallback callback, - void *userdata); - -/** - * Remove a function watching a particular hint. - * - * \param name the hint being watched - * \param callback An SDL_HintCallback function that will be called when the - * hint value changes - * \param userdata a pointer being passed to the callback function - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AddHintCallback - */ -extern DECLSPEC void SDLCALL SDL_DelHintCallback(const char *name, - SDL_HintCallback callback, - void *userdata); - -/** - * Clear all hints. - * - * This function is automatically called during SDL_Quit(), and deletes all - * callbacks without calling them and frees all memory associated with hints. - * If you're calling this from application code you probably want to call - * SDL_ResetHints() instead. - * - * This function will be removed from the API the next time we rev the ABI. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ResetHints - */ -extern DECLSPEC void SDLCALL SDL_ClearHints(void); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_hints_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_joystick.h b/release/SDL2.framework/Versions/A/Headers/SDL_joystick.h deleted file mode 100644 index 8c05fdb..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_joystick.h +++ /dev/null @@ -1,1069 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_joystick.h - * - * Include file for SDL joystick event handling - * - * The term "device_index" identifies currently plugged in joystick devices between 0 and SDL_NumJoysticks(), with the exact joystick - * behind a device_index changing as joysticks are plugged and unplugged. - * - * The term "instance_id" is the current instantiation of a joystick device in the system, if the joystick is removed and then re-inserted - * then it will get a new instance_id, instance_id's are monotonically increasing identifiers of a joystick plugged in. - * - * The term "player_index" is the number assigned to a player on a specific - * controller. For XInput controllers this returns the XInput user index. - * Many joysticks will not be able to supply this information. - * - * The term JoystickGUID is a stable 128-bit identifier for a joystick device that does not change over time, it identifies class of - * the device (a X360 wired controller for example). This identifier is platform dependent. - */ - -#ifndef SDL_joystick_h_ -#define SDL_joystick_h_ - -#include -#include -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file SDL_joystick.h - * - * In order to use these functions, SDL_Init() must have been called - * with the ::SDL_INIT_JOYSTICK flag. This causes SDL to scan the system - * for joysticks, and load appropriate drivers. - * - * If you would like to receive joystick updates while the application - * is in the background, you should set the following hint before calling - * SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS - */ - -/** - * The joystick structure used to identify an SDL joystick - */ -#ifdef SDL_THREAD_SAFETY_ANALYSIS -extern SDL_mutex *SDL_joystick_lock; -#endif -struct _SDL_Joystick; -typedef struct _SDL_Joystick SDL_Joystick; - -/* A structure that encodes the stable unique id for a joystick device */ -typedef SDL_GUID SDL_JoystickGUID; - -/** - * This is a unique ID for a joystick for the time it is connected to the system, - * and is never reused for the lifetime of the application. If the joystick is - * disconnected and reconnected, it will get a new ID. - * - * The ID value starts at 0 and increments from there. The value -1 is an invalid ID. - */ -typedef Sint32 SDL_JoystickID; - -typedef enum -{ - SDL_JOYSTICK_TYPE_UNKNOWN, - SDL_JOYSTICK_TYPE_GAMECONTROLLER, - SDL_JOYSTICK_TYPE_WHEEL, - SDL_JOYSTICK_TYPE_ARCADE_STICK, - SDL_JOYSTICK_TYPE_FLIGHT_STICK, - SDL_JOYSTICK_TYPE_DANCE_PAD, - SDL_JOYSTICK_TYPE_GUITAR, - SDL_JOYSTICK_TYPE_DRUM_KIT, - SDL_JOYSTICK_TYPE_ARCADE_PAD, - SDL_JOYSTICK_TYPE_THROTTLE -} SDL_JoystickType; - -typedef enum -{ - SDL_JOYSTICK_POWER_UNKNOWN = -1, - SDL_JOYSTICK_POWER_EMPTY, /* <= 5% */ - SDL_JOYSTICK_POWER_LOW, /* <= 20% */ - SDL_JOYSTICK_POWER_MEDIUM, /* <= 70% */ - SDL_JOYSTICK_POWER_FULL, /* <= 100% */ - SDL_JOYSTICK_POWER_WIRED, - SDL_JOYSTICK_POWER_MAX -} SDL_JoystickPowerLevel; - -/* Set max recognized G-force from accelerometer - See src/joystick/uikit/SDL_sysjoystick.m for notes on why this is needed - */ -#define SDL_IPHONE_MAX_GFORCE 5.0 - - -/* Function prototypes */ - -/** - * Locking for multi-threaded access to the joystick API - * - * If you are using the joystick API or handling events from multiple threads - * you should use these locking functions to protect access to the joysticks. - * - * In particular, you are guaranteed that the joystick list won't change, so - * the API functions that take a joystick index will be valid, and joystick - * and game controller events will not be delivered. - * - * As of SDL 2.26.0, you can take the joystick lock around reinitializing the - * joystick subsystem, to prevent other threads from seeing joysticks in an - * uninitialized state. However, all open joysticks will be closed and SDL - * functions called with them will fail. - * - * \since This function is available since SDL 2.0.7. - */ -extern DECLSPEC void SDLCALL SDL_LockJoysticks(void) SDL_ACQUIRE(SDL_joystick_lock); - - -/** - * Unlocking for multi-threaded access to the joystick API - * - * If you are using the joystick API or handling events from multiple threads - * you should use these locking functions to protect access to the joysticks. - * - * In particular, you are guaranteed that the joystick list won't change, so - * the API functions that take a joystick index will be valid, and joystick - * and game controller events will not be delivered. - * - * \since This function is available since SDL 2.0.7. - */ -extern DECLSPEC void SDLCALL SDL_UnlockJoysticks(void) SDL_RELEASE(SDL_joystick_lock); - -/** - * Count the number of joysticks attached to the system. - * - * \returns the number of attached joysticks on success or a negative error - * code on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickName - * \sa SDL_JoystickPath - * \sa SDL_JoystickOpen - */ -extern DECLSPEC int SDLCALL SDL_NumJoysticks(void); - -/** - * Get the implementation dependent name of a joystick. - * - * This can be called before any joysticks are opened. - * - * \param device_index the index of the joystick to query (the N'th joystick - * on the system) - * \returns the name of the selected joystick. If no name can be found, this - * function returns NULL; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickName - * \sa SDL_JoystickOpen - */ -extern DECLSPEC const char *SDLCALL SDL_JoystickNameForIndex(int device_index); - -/** - * Get the implementation dependent path of a joystick. - * - * This can be called before any joysticks are opened. - * - * \param device_index the index of the joystick to query (the N'th joystick - * on the system) - * \returns the path of the selected joystick. If no path can be found, this - * function returns NULL; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_JoystickPath - * \sa SDL_JoystickOpen - */ -extern DECLSPEC const char *SDLCALL SDL_JoystickPathForIndex(int device_index); - -/** - * Get the player index of a joystick, or -1 if it's not available This can be - * called before any joysticks are opened. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC int SDLCALL SDL_JoystickGetDevicePlayerIndex(int device_index); - -/** - * Get the implementation-dependent GUID for the joystick at a given device - * index. - * - * This function can be called before any joysticks are opened. - * - * \param device_index the index of the joystick to query (the N'th joystick - * on the system - * \returns the GUID of the selected joystick. If called on an invalid index, - * this function returns a zero GUID - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetGUID - * \sa SDL_JoystickGetGUIDString - */ -extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetDeviceGUID(int device_index); - -/** - * Get the USB vendor ID of a joystick, if available. - * - * This can be called before any joysticks are opened. If the vendor ID isn't - * available this function returns 0. - * - * \param device_index the index of the joystick to query (the N'th joystick - * on the system - * \returns the USB vendor ID of the selected joystick. If called on an - * invalid index, this function returns zero - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetDeviceVendor(int device_index); - -/** - * Get the USB product ID of a joystick, if available. - * - * This can be called before any joysticks are opened. If the product ID isn't - * available this function returns 0. - * - * \param device_index the index of the joystick to query (the N'th joystick - * on the system - * \returns the USB product ID of the selected joystick. If called on an - * invalid index, this function returns zero - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetDeviceProduct(int device_index); - -/** - * Get the product version of a joystick, if available. - * - * This can be called before any joysticks are opened. If the product version - * isn't available this function returns 0. - * - * \param device_index the index of the joystick to query (the N'th joystick - * on the system - * \returns the product version of the selected joystick. If called on an - * invalid index, this function returns zero - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetDeviceProductVersion(int device_index); - -/** - * Get the type of a joystick, if available. - * - * This can be called before any joysticks are opened. - * - * \param device_index the index of the joystick to query (the N'th joystick - * on the system - * \returns the SDL_JoystickType of the selected joystick. If called on an - * invalid index, this function returns `SDL_JOYSTICK_TYPE_UNKNOWN` - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC SDL_JoystickType SDLCALL SDL_JoystickGetDeviceType(int device_index); - -/** - * Get the instance ID of a joystick. - * - * This can be called before any joysticks are opened. - * - * \param device_index the index of the joystick to query (the N'th joystick - * on the system - * \returns the instance id of the selected joystick. If called on an invalid - * index, this function returns -1. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC SDL_JoystickID SDLCALL SDL_JoystickGetDeviceInstanceID(int device_index); - -/** - * Open a joystick for use. - * - * The `device_index` argument refers to the N'th joystick presently - * recognized by SDL on the system. It is **NOT** the same as the instance ID - * used to identify the joystick in future events. See - * SDL_JoystickInstanceID() for more details about instance IDs. - * - * The joystick subsystem must be initialized before a joystick can be opened - * for use. - * - * \param device_index the index of the joystick to query - * \returns a joystick identifier or NULL if an error occurred; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickClose - * \sa SDL_JoystickInstanceID - */ -extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickOpen(int device_index); - -/** - * Get the SDL_Joystick associated with an instance id. - * - * \param instance_id the instance id to get the SDL_Joystick for - * \returns an SDL_Joystick on success or NULL on failure; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.4. - */ -extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickFromInstanceID(SDL_JoystickID instance_id); - -/** - * Get the SDL_Joystick associated with a player index. - * - * \param player_index the player index to get the SDL_Joystick for - * \returns an SDL_Joystick on success or NULL on failure; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.12. - */ -extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickFromPlayerIndex(int player_index); - -/** - * Attach a new virtual joystick. - * - * \returns the joystick's device index, or -1 if an error occurred. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_JoystickAttachVirtual(SDL_JoystickType type, - int naxes, - int nbuttons, - int nhats); - -/** - * The structure that defines an extended virtual joystick description - * - * The caller must zero the structure and then initialize the version with `SDL_VIRTUAL_JOYSTICK_DESC_VERSION` before passing it to SDL_JoystickAttachVirtualEx() - * All other elements of this structure are optional and can be left 0. - * - * \sa SDL_JoystickAttachVirtualEx - */ -typedef struct SDL_VirtualJoystickDesc -{ - Uint16 version; /**< `SDL_VIRTUAL_JOYSTICK_DESC_VERSION` */ - Uint16 type; /**< `SDL_JoystickType` */ - Uint16 naxes; /**< the number of axes on this joystick */ - Uint16 nbuttons; /**< the number of buttons on this joystick */ - Uint16 nhats; /**< the number of hats on this joystick */ - Uint16 vendor_id; /**< the USB vendor ID of this joystick */ - Uint16 product_id; /**< the USB product ID of this joystick */ - Uint16 padding; /**< unused */ - Uint32 button_mask; /**< A mask of which buttons are valid for this controller - e.g. (1 << SDL_CONTROLLER_BUTTON_A) */ - Uint32 axis_mask; /**< A mask of which axes are valid for this controller - e.g. (1 << SDL_CONTROLLER_AXIS_LEFTX) */ - const char *name; /**< the name of the joystick */ - - void *userdata; /**< User data pointer passed to callbacks */ - void (SDLCALL *Update)(void *userdata); /**< Called when the joystick state should be updated */ - void (SDLCALL *SetPlayerIndex)(void *userdata, int player_index); /**< Called when the player index is set */ - int (SDLCALL *Rumble)(void *userdata, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble); /**< Implements SDL_JoystickRumble() */ - int (SDLCALL *RumbleTriggers)(void *userdata, Uint16 left_rumble, Uint16 right_rumble); /**< Implements SDL_JoystickRumbleTriggers() */ - int (SDLCALL *SetLED)(void *userdata, Uint8 red, Uint8 green, Uint8 blue); /**< Implements SDL_JoystickSetLED() */ - int (SDLCALL *SendEffect)(void *userdata, const void *data, int size); /**< Implements SDL_JoystickSendEffect() */ - -} SDL_VirtualJoystickDesc; - -/** - * \brief The current version of the SDL_VirtualJoystickDesc structure - */ -#define SDL_VIRTUAL_JOYSTICK_DESC_VERSION 1 - -/** - * Attach a new virtual joystick with extended properties. - * - * \returns the joystick's device index, or -1 if an error occurred. - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC int SDLCALL SDL_JoystickAttachVirtualEx(const SDL_VirtualJoystickDesc *desc); - -/** - * Detach a virtual joystick. - * - * \param device_index a value previously returned from - * SDL_JoystickAttachVirtual() - * \returns 0 on success, or -1 if an error occurred. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_JoystickDetachVirtual(int device_index); - -/** - * Query whether or not the joystick at a given device index is virtual. - * - * \param device_index a joystick device index. - * \returns SDL_TRUE if the joystick is virtual, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_JoystickIsVirtual(int device_index); - -/** - * Set values on an opened, virtual-joystick's axis. - * - * Please note that values set here will not be applied until the next call to - * SDL_JoystickUpdate, which can either be called directly, or can be called - * indirectly through various other SDL APIs, including, but not limited to - * the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, - * SDL_WaitEvent. - * - * Note that when sending trigger axes, you should scale the value to the full - * range of Sint16. For example, a trigger at rest would have the value of - * `SDL_JOYSTICK_AXIS_MIN`. - * - * \param joystick the virtual joystick on which to set state. - * \param axis the specific axis on the virtual joystick to set. - * \param value the new value for the specified axis. - * \returns 0 on success, -1 on error. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualAxis(SDL_Joystick *joystick, int axis, Sint16 value); - -/** - * Set values on an opened, virtual-joystick's button. - * - * Please note that values set here will not be applied until the next call to - * SDL_JoystickUpdate, which can either be called directly, or can be called - * indirectly through various other SDL APIs, including, but not limited to - * the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, - * SDL_WaitEvent. - * - * \param joystick the virtual joystick on which to set state. - * \param button the specific button on the virtual joystick to set. - * \param value the new value for the specified button. - * \returns 0 on success, -1 on error. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualButton(SDL_Joystick *joystick, int button, Uint8 value); - -/** - * Set values on an opened, virtual-joystick's hat. - * - * Please note that values set here will not be applied until the next call to - * SDL_JoystickUpdate, which can either be called directly, or can be called - * indirectly through various other SDL APIs, including, but not limited to - * the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, - * SDL_WaitEvent. - * - * \param joystick the virtual joystick on which to set state. - * \param hat the specific hat on the virtual joystick to set. - * \param value the new value for the specified hat. - * \returns 0 on success, -1 on error. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualHat(SDL_Joystick *joystick, int hat, Uint8 value); - -/** - * Get the implementation dependent name of a joystick. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the name of the selected joystick. If no name can be found, this - * function returns NULL; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickNameForIndex - * \sa SDL_JoystickOpen - */ -extern DECLSPEC const char *SDLCALL SDL_JoystickName(SDL_Joystick *joystick); - -/** - * Get the implementation dependent path of a joystick. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the path of the selected joystick. If no path can be found, this - * function returns NULL; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_JoystickPathForIndex - */ -extern DECLSPEC const char *SDLCALL SDL_JoystickPath(SDL_Joystick *joystick); - -/** - * Get the player index of an opened joystick. - * - * For XInput controllers this returns the XInput user index. Many joysticks - * will not be able to supply this information. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the player index, or -1 if it's not available. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC int SDLCALL SDL_JoystickGetPlayerIndex(SDL_Joystick *joystick); - -/** - * Set the player index of an opened joystick. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \param player_index Player index to assign to this joystick, or -1 to clear - * the player index and turn off player LEDs. - * - * \since This function is available since SDL 2.0.12. - */ -extern DECLSPEC void SDLCALL SDL_JoystickSetPlayerIndex(SDL_Joystick *joystick, int player_index); - -/** - * Get the implementation-dependent GUID for the joystick. - * - * This function requires an open joystick. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the GUID of the given joystick. If called on an invalid index, - * this function returns a zero GUID; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetDeviceGUID - * \sa SDL_JoystickGetGUIDString - */ -extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUID(SDL_Joystick *joystick); - -/** - * Get the USB vendor ID of an opened joystick, if available. - * - * If the vendor ID isn't available this function returns 0. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the USB vendor ID of the selected joystick, or 0 if unavailable. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetVendor(SDL_Joystick *joystick); - -/** - * Get the USB product ID of an opened joystick, if available. - * - * If the product ID isn't available this function returns 0. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the USB product ID of the selected joystick, or 0 if unavailable. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetProduct(SDL_Joystick *joystick); - -/** - * Get the product version of an opened joystick, if available. - * - * If the product version isn't available this function returns 0. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the product version of the selected joystick, or 0 if unavailable. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetProductVersion(SDL_Joystick *joystick); - -/** - * Get the firmware version of an opened joystick, if available. - * - * If the firmware version isn't available this function returns 0. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the firmware version of the selected joystick, or 0 if - * unavailable. - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetFirmwareVersion(SDL_Joystick *joystick); - -/** - * Get the serial number of an opened joystick, if available. - * - * Returns the serial number of the joystick, or NULL if it is not available. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the serial number of the selected joystick, or NULL if - * unavailable. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC const char * SDLCALL SDL_JoystickGetSerial(SDL_Joystick *joystick); - -/** - * Get the type of an opened joystick. - * - * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen() - * \returns the SDL_JoystickType of the selected joystick. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC SDL_JoystickType SDLCALL SDL_JoystickGetType(SDL_Joystick *joystick); - -/** - * Get an ASCII string representation for a given SDL_JoystickGUID. - * - * You should supply at least 33 bytes for pszGUID. - * - * \param guid the SDL_JoystickGUID you wish to convert to string - * \param pszGUID buffer in which to write the ASCII string - * \param cbGUID the size of pszGUID - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetDeviceGUID - * \sa SDL_JoystickGetGUID - * \sa SDL_JoystickGetGUIDFromString - */ -extern DECLSPEC void SDLCALL SDL_JoystickGetGUIDString(SDL_JoystickGUID guid, char *pszGUID, int cbGUID); - -/** - * Convert a GUID string into a SDL_JoystickGUID structure. - * - * Performs no error checking. If this function is given a string containing - * an invalid GUID, the function will silently succeed, but the GUID generated - * will not be useful. - * - * \param pchGUID string containing an ASCII representation of a GUID - * \returns a SDL_JoystickGUID structure. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetGUIDString - */ -extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUIDFromString(const char *pchGUID); - -/** - * Get the device information encoded in a SDL_JoystickGUID structure - * - * \param guid the SDL_JoystickGUID you wish to get info about - * \param vendor A pointer filled in with the device VID, or 0 if not - * available - * \param product A pointer filled in with the device PID, or 0 if not - * available - * \param version A pointer filled in with the device version, or 0 if not - * available - * \param crc16 A pointer filled in with a CRC used to distinguish different - * products with the same VID/PID, or 0 if not available - * - * \since This function is available since SDL 2.26.0. - * - * \sa SDL_JoystickGetDeviceGUID - */ -extern DECLSPEC void SDLCALL SDL_GetJoystickGUIDInfo(SDL_JoystickGUID guid, Uint16 *vendor, Uint16 *product, Uint16 *version, Uint16 *crc16); - -/** - * Get the status of a specified joystick. - * - * \param joystick the joystick to query - * \returns SDL_TRUE if the joystick has been opened, SDL_FALSE if it has not; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickClose - * \sa SDL_JoystickOpen - */ -extern DECLSPEC SDL_bool SDLCALL SDL_JoystickGetAttached(SDL_Joystick *joystick); - -/** - * Get the instance ID of an opened joystick. - * - * \param joystick an SDL_Joystick structure containing joystick information - * \returns the instance ID of the specified joystick on success or a negative - * error code on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickOpen - */ -extern DECLSPEC SDL_JoystickID SDLCALL SDL_JoystickInstanceID(SDL_Joystick *joystick); - -/** - * Get the number of general axis controls on a joystick. - * - * Often, the directional pad on a game controller will either look like 4 - * separate buttons or a POV hat, and not axes, but all of this is up to the - * device and platform. - * - * \param joystick an SDL_Joystick structure containing joystick information - * \returns the number of axis controls/number of axes on success or a - * negative error code on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetAxis - * \sa SDL_JoystickOpen - */ -extern DECLSPEC int SDLCALL SDL_JoystickNumAxes(SDL_Joystick *joystick); - -/** - * Get the number of trackballs on a joystick. - * - * Joystick trackballs have only relative motion events associated with them - * and their state cannot be polled. - * - * Most joysticks do not have trackballs. - * - * \param joystick an SDL_Joystick structure containing joystick information - * \returns the number of trackballs on success or a negative error code on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetBall - */ -extern DECLSPEC int SDLCALL SDL_JoystickNumBalls(SDL_Joystick *joystick); - -/** - * Get the number of POV hats on a joystick. - * - * \param joystick an SDL_Joystick structure containing joystick information - * \returns the number of POV hats on success or a negative error code on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetHat - * \sa SDL_JoystickOpen - */ -extern DECLSPEC int SDLCALL SDL_JoystickNumHats(SDL_Joystick *joystick); - -/** - * Get the number of buttons on a joystick. - * - * \param joystick an SDL_Joystick structure containing joystick information - * \returns the number of buttons on success or a negative error code on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickGetButton - * \sa SDL_JoystickOpen - */ -extern DECLSPEC int SDLCALL SDL_JoystickNumButtons(SDL_Joystick *joystick); - -/** - * Update the current state of the open joysticks. - * - * This is called automatically by the event loop if any joystick events are - * enabled. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickEventState - */ -extern DECLSPEC void SDLCALL SDL_JoystickUpdate(void); - -/** - * Enable/disable joystick event polling. - * - * If joystick events are disabled, you must call SDL_JoystickUpdate() - * yourself and manually check the state of the joystick when you want - * joystick information. - * - * It is recommended that you leave joystick event handling enabled. - * - * **WARNING**: Calling this function may delete all events currently in SDL's - * event queue. - * - * \param state can be one of `SDL_QUERY`, `SDL_IGNORE`, or `SDL_ENABLE` - * \returns 1 if enabled, 0 if disabled, or a negative error code on failure; - * call SDL_GetError() for more information. - * - * If `state` is `SDL_QUERY` then the current state is returned, - * otherwise the new processing state is returned. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GameControllerEventState - */ -extern DECLSPEC int SDLCALL SDL_JoystickEventState(int state); - -#define SDL_JOYSTICK_AXIS_MAX 32767 -#define SDL_JOYSTICK_AXIS_MIN -32768 - -/** - * Get the current state of an axis control on a joystick. - * - * SDL makes no promises about what part of the joystick any given axis refers - * to. Your game should have some sort of configuration UI to let users - * specify what each axis should be bound to. Alternately, SDL's higher-level - * Game Controller API makes a great effort to apply order to this lower-level - * interface, so you know that a specific axis is the "left thumb stick," etc. - * - * The value returned by SDL_JoystickGetAxis() is a signed integer (-32768 to - * 32767) representing the current position of the axis. It may be necessary - * to impose certain tolerances on these values to account for jitter. - * - * \param joystick an SDL_Joystick structure containing joystick information - * \param axis the axis to query; the axis indices start at index 0 - * \returns a 16-bit signed integer representing the current position of the - * axis or 0 on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickNumAxes - */ -extern DECLSPEC Sint16 SDLCALL SDL_JoystickGetAxis(SDL_Joystick *joystick, - int axis); - -/** - * Get the initial state of an axis control on a joystick. - * - * The state is a value ranging from -32768 to 32767. - * - * The axis indices start at index 0. - * - * \param joystick an SDL_Joystick structure containing joystick information - * \param axis the axis to query; the axis indices start at index 0 - * \param state Upon return, the initial value is supplied here. - * \return SDL_TRUE if this axis has any initial value, or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_JoystickGetAxisInitialState(SDL_Joystick *joystick, - int axis, Sint16 *state); - -/** - * \name Hat positions - */ -/* @{ */ -#define SDL_HAT_CENTERED 0x00 -#define SDL_HAT_UP 0x01 -#define SDL_HAT_RIGHT 0x02 -#define SDL_HAT_DOWN 0x04 -#define SDL_HAT_LEFT 0x08 -#define SDL_HAT_RIGHTUP (SDL_HAT_RIGHT|SDL_HAT_UP) -#define SDL_HAT_RIGHTDOWN (SDL_HAT_RIGHT|SDL_HAT_DOWN) -#define SDL_HAT_LEFTUP (SDL_HAT_LEFT|SDL_HAT_UP) -#define SDL_HAT_LEFTDOWN (SDL_HAT_LEFT|SDL_HAT_DOWN) -/* @} */ - -/** - * Get the current state of a POV hat on a joystick. - * - * The returned value will be one of the following positions: - * - * - `SDL_HAT_CENTERED` - * - `SDL_HAT_UP` - * - `SDL_HAT_RIGHT` - * - `SDL_HAT_DOWN` - * - `SDL_HAT_LEFT` - * - `SDL_HAT_RIGHTUP` - * - `SDL_HAT_RIGHTDOWN` - * - `SDL_HAT_LEFTUP` - * - `SDL_HAT_LEFTDOWN` - * - * \param joystick an SDL_Joystick structure containing joystick information - * \param hat the hat index to get the state from; indices start at index 0 - * \returns the current hat position. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickNumHats - */ -extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetHat(SDL_Joystick *joystick, - int hat); - -/** - * Get the ball axis change since the last poll. - * - * Trackballs can only return relative motion since the last call to - * SDL_JoystickGetBall(), these motion deltas are placed into `dx` and `dy`. - * - * Most joysticks do not have trackballs. - * - * \param joystick the SDL_Joystick to query - * \param ball the ball index to query; ball indices start at index 0 - * \param dx stores the difference in the x axis position since the last poll - * \param dy stores the difference in the y axis position since the last poll - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickNumBalls - */ -extern DECLSPEC int SDLCALL SDL_JoystickGetBall(SDL_Joystick *joystick, - int ball, int *dx, int *dy); - -/** - * Get the current state of a button on a joystick. - * - * \param joystick an SDL_Joystick structure containing joystick information - * \param button the button index to get the state from; indices start at - * index 0 - * \returns 1 if the specified button is pressed, 0 otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickNumButtons - */ -extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetButton(SDL_Joystick *joystick, - int button); - -/** - * Start a rumble effect. - * - * Each call to this function cancels any previous rumble effect, and calling - * it with 0 intensity stops any rumbling. - * - * \param joystick The joystick to vibrate - * \param low_frequency_rumble The intensity of the low frequency (left) - * rumble motor, from 0 to 0xFFFF - * \param high_frequency_rumble The intensity of the high frequency (right) - * rumble motor, from 0 to 0xFFFF - * \param duration_ms The duration of the rumble effect, in milliseconds - * \returns 0, or -1 if rumble isn't supported on this joystick - * - * \since This function is available since SDL 2.0.9. - * - * \sa SDL_JoystickHasRumble - */ -extern DECLSPEC int SDLCALL SDL_JoystickRumble(SDL_Joystick *joystick, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble, Uint32 duration_ms); - -/** - * Start a rumble effect in the joystick's triggers - * - * Each call to this function cancels any previous trigger rumble effect, and - * calling it with 0 intensity stops any rumbling. - * - * Note that this is rumbling of the _triggers_ and not the game controller as - * a whole. This is currently only supported on Xbox One controllers. If you - * want the (more common) whole-controller rumble, use SDL_JoystickRumble() - * instead. - * - * \param joystick The joystick to vibrate - * \param left_rumble The intensity of the left trigger rumble motor, from 0 - * to 0xFFFF - * \param right_rumble The intensity of the right trigger rumble motor, from 0 - * to 0xFFFF - * \param duration_ms The duration of the rumble effect, in milliseconds - * \returns 0, or -1 if trigger rumble isn't supported on this joystick - * - * \since This function is available since SDL 2.0.14. - * - * \sa SDL_JoystickHasRumbleTriggers - */ -extern DECLSPEC int SDLCALL SDL_JoystickRumbleTriggers(SDL_Joystick *joystick, Uint16 left_rumble, Uint16 right_rumble, Uint32 duration_ms); - -/** - * Query whether a joystick has an LED. - * - * An example of a joystick LED is the light on the back of a PlayStation 4's - * DualShock 4 controller. - * - * \param joystick The joystick to query - * \return SDL_TRUE if the joystick has a modifiable LED, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_JoystickHasLED(SDL_Joystick *joystick); - -/** - * Query whether a joystick has rumble support. - * - * \param joystick The joystick to query - * \return SDL_TRUE if the joystick has rumble, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_JoystickRumble - */ -extern DECLSPEC SDL_bool SDLCALL SDL_JoystickHasRumble(SDL_Joystick *joystick); - -/** - * Query whether a joystick has rumble support on triggers. - * - * \param joystick The joystick to query - * \return SDL_TRUE if the joystick has trigger rumble, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_JoystickRumbleTriggers - */ -extern DECLSPEC SDL_bool SDLCALL SDL_JoystickHasRumbleTriggers(SDL_Joystick *joystick); - -/** - * Update a joystick's LED color. - * - * An example of a joystick LED is the light on the back of a PlayStation 4's - * DualShock 4 controller. - * - * \param joystick The joystick to update - * \param red The intensity of the red LED - * \param green The intensity of the green LED - * \param blue The intensity of the blue LED - * \returns 0 on success, -1 if this joystick does not have a modifiable LED - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC int SDLCALL SDL_JoystickSetLED(SDL_Joystick *joystick, Uint8 red, Uint8 green, Uint8 blue); - -/** - * Send a joystick specific effect packet - * - * \param joystick The joystick to affect - * \param data The data to send to the joystick - * \param size The size of the data to send to the joystick - * \returns 0, or -1 if this joystick or driver doesn't support effect packets - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC int SDLCALL SDL_JoystickSendEffect(SDL_Joystick *joystick, const void *data, int size); - -/** - * Close a joystick previously opened with SDL_JoystickOpen(). - * - * \param joystick The joystick device to close - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_JoystickOpen - */ -extern DECLSPEC void SDLCALL SDL_JoystickClose(SDL_Joystick *joystick); - -/** - * Get the battery level of a joystick as SDL_JoystickPowerLevel. - * - * \param joystick the SDL_Joystick to query - * \returns the current battery level as SDL_JoystickPowerLevel on success or - * `SDL_JOYSTICK_POWER_UNKNOWN` if it is unknown - * - * \since This function is available since SDL 2.0.4. - */ -extern DECLSPEC SDL_JoystickPowerLevel SDLCALL SDL_JoystickCurrentPowerLevel(SDL_Joystick *joystick); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_joystick_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_keyboard.h b/release/SDL2.framework/Versions/A/Headers/SDL_keyboard.h deleted file mode 100644 index 039494e..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_keyboard.h +++ /dev/null @@ -1,353 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_keyboard.h - * - * Include file for SDL keyboard event handling - */ - -#ifndef SDL_keyboard_h_ -#define SDL_keyboard_h_ - -#include -#include -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief The SDL keysym structure, used in key events. - * - * \note If you are looking for translated character input, see the ::SDL_TEXTINPUT event. - */ -typedef struct SDL_Keysym -{ - SDL_Scancode scancode; /**< SDL physical key code - see ::SDL_Scancode for details */ - SDL_Keycode sym; /**< SDL virtual key code - see ::SDL_Keycode for details */ - Uint16 mod; /**< current key modifiers */ - Uint32 unused; -} SDL_Keysym; - -/* Function prototypes */ - -/** - * Query the window which currently has keyboard focus. - * - * \returns the window with keyboard focus. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_GetKeyboardFocus(void); - -/** - * Get a snapshot of the current state of the keyboard. - * - * The pointer returned is a pointer to an internal SDL array. It will be - * valid for the whole lifetime of the application and should not be freed by - * the caller. - * - * A array element with a value of 1 means that the key is pressed and a value - * of 0 means that it is not. Indexes into this array are obtained by using - * SDL_Scancode values. - * - * Use SDL_PumpEvents() to update the state array. - * - * This function gives you the current state after all events have been - * processed, so if a key or button has been pressed and released before you - * process events, then the pressed state will never show up in the - * SDL_GetKeyboardState() calls. - * - * Note: This function doesn't take into account whether shift has been - * pressed or not. - * - * \param numkeys if non-NULL, receives the length of the returned array - * \returns a pointer to an array of key states. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PumpEvents - * \sa SDL_ResetKeyboard - */ -extern DECLSPEC const Uint8 *SDLCALL SDL_GetKeyboardState(int *numkeys); - -/** - * Clear the state of the keyboard - * - * This function will generate key up events for all pressed keys. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GetKeyboardState - */ -extern DECLSPEC void SDLCALL SDL_ResetKeyboard(void); - -/** - * Get the current key modifier state for the keyboard. - * - * \returns an OR'd combination of the modifier keys for the keyboard. See - * SDL_Keymod for details. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetKeyboardState - * \sa SDL_SetModState - */ -extern DECLSPEC SDL_Keymod SDLCALL SDL_GetModState(void); - -/** - * Set the current key modifier state for the keyboard. - * - * The inverse of SDL_GetModState(), SDL_SetModState() allows you to impose - * modifier key states on your application. Simply pass your desired modifier - * states into `modstate`. This value may be a bitwise, OR'd combination of - * SDL_Keymod values. - * - * This does not change the keyboard state, only the key modifier flags that - * SDL reports. - * - * \param modstate the desired SDL_Keymod for the keyboard - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetModState - */ -extern DECLSPEC void SDLCALL SDL_SetModState(SDL_Keymod modstate); - -/** - * Get the key code corresponding to the given scancode according to the - * current keyboard layout. - * - * See SDL_Keycode for details. - * - * \param scancode the desired SDL_Scancode to query - * \returns the SDL_Keycode that corresponds to the given SDL_Scancode. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetKeyName - * \sa SDL_GetScancodeFromKey - */ -extern DECLSPEC SDL_Keycode SDLCALL SDL_GetKeyFromScancode(SDL_Scancode scancode); - -/** - * Get the scancode corresponding to the given key code according to the - * current keyboard layout. - * - * See SDL_Scancode for details. - * - * \param key the desired SDL_Keycode to query - * \returns the SDL_Scancode that corresponds to the given SDL_Keycode. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetKeyFromScancode - * \sa SDL_GetScancodeName - */ -extern DECLSPEC SDL_Scancode SDLCALL SDL_GetScancodeFromKey(SDL_Keycode key); - -/** - * Get a human-readable name for a scancode. - * - * See SDL_Scancode for details. - * - * **Warning**: The returned name is by design not stable across platforms, - * e.g. the name for `SDL_SCANCODE_LGUI` is "Left GUI" under Linux but "Left - * Windows" under Microsoft Windows, and some scancodes like - * `SDL_SCANCODE_NONUSBACKSLASH` don't have any name at all. There are even - * scancodes that share names, e.g. `SDL_SCANCODE_RETURN` and - * `SDL_SCANCODE_RETURN2` (both called "Return"). This function is therefore - * unsuitable for creating a stable cross-platform two-way mapping between - * strings and scancodes. - * - * \param scancode the desired SDL_Scancode to query - * \returns a pointer to the name for the scancode. If the scancode doesn't - * have a name this function returns an empty string (""). - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetScancodeFromKey - * \sa SDL_GetScancodeFromName - */ -extern DECLSPEC const char *SDLCALL SDL_GetScancodeName(SDL_Scancode scancode); - -/** - * Get a scancode from a human-readable name. - * - * \param name the human-readable scancode name - * \returns the SDL_Scancode, or `SDL_SCANCODE_UNKNOWN` if the name wasn't - * recognized; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetKeyFromName - * \sa SDL_GetScancodeFromKey - * \sa SDL_GetScancodeName - */ -extern DECLSPEC SDL_Scancode SDLCALL SDL_GetScancodeFromName(const char *name); - -/** - * Get a human-readable name for a key. - * - * See SDL_Scancode and SDL_Keycode for details. - * - * \param key the desired SDL_Keycode to query - * \returns a pointer to a UTF-8 string that stays valid at least until the - * next call to this function. If you need it around any longer, you - * must copy it. If the key doesn't have a name, this function - * returns an empty string (""). - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetKeyFromName - * \sa SDL_GetKeyFromScancode - * \sa SDL_GetScancodeFromKey - */ -extern DECLSPEC const char *SDLCALL SDL_GetKeyName(SDL_Keycode key); - -/** - * Get a key code from a human-readable name. - * - * \param name the human-readable key name - * \returns key code, or `SDLK_UNKNOWN` if the name wasn't recognized; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetKeyFromScancode - * \sa SDL_GetKeyName - * \sa SDL_GetScancodeFromName - */ -extern DECLSPEC SDL_Keycode SDLCALL SDL_GetKeyFromName(const char *name); - -/** - * Start accepting Unicode text input events. - * - * This function will start accepting Unicode text input events in the focused - * SDL window, and start emitting SDL_TextInputEvent (SDL_TEXTINPUT) and - * SDL_TextEditingEvent (SDL_TEXTEDITING) events. Please use this function in - * pair with SDL_StopTextInput(). - * - * On some platforms using this function activates the screen keyboard. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetTextInputRect - * \sa SDL_StopTextInput - */ -extern DECLSPEC void SDLCALL SDL_StartTextInput(void); - -/** - * Check whether or not Unicode text input events are enabled. - * - * \returns SDL_TRUE if text input events are enabled else SDL_FALSE. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_StartTextInput - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsTextInputActive(void); - -/** - * Stop receiving any text input events. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_StartTextInput - */ -extern DECLSPEC void SDLCALL SDL_StopTextInput(void); - -/** - * Dismiss the composition window/IME without disabling the subsystem. - * - * \since This function is available since SDL 2.0.22. - * - * \sa SDL_StartTextInput - * \sa SDL_StopTextInput - */ -extern DECLSPEC void SDLCALL SDL_ClearComposition(void); - -/** - * Returns if an IME Composite or Candidate window is currently shown. - * - * \since This function is available since SDL 2.0.22. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsTextInputShown(void); - -/** - * Set the rectangle used to type Unicode text inputs. - * - * To start text input in a given location, this function is intended to be - * called before SDL_StartTextInput, although some platforms support moving - * the rectangle even while text input (and a composition) is active. - * - * Note: If you want to use the system native IME window, try setting hint - * **SDL_HINT_IME_SHOW_UI** to **1**, otherwise this function won't give you - * any feedback. - * - * \param rect the SDL_Rect structure representing the rectangle to receive - * text (ignored if NULL) - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_StartTextInput - */ -extern DECLSPEC void SDLCALL SDL_SetTextInputRect(const SDL_Rect *rect); - -/** - * Check whether the platform has screen keyboard support. - * - * \returns SDL_TRUE if the platform has some screen keyboard support or - * SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_StartTextInput - * \sa SDL_IsScreenKeyboardShown - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasScreenKeyboardSupport(void); - -/** - * Check whether the screen keyboard is shown for given window. - * - * \param window the window for which screen keyboard should be queried - * \returns SDL_TRUE if screen keyboard is shown or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HasScreenKeyboardSupport - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsScreenKeyboardShown(SDL_Window *window); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_keyboard_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_keycode.h b/release/SDL2.framework/Versions/A/Headers/SDL_keycode.h deleted file mode 100644 index cc08478..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_keycode.h +++ /dev/null @@ -1,358 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_keycode.h - * - * Defines constants which identify keyboard keys and modifiers. - */ - -#ifndef SDL_keycode_h_ -#define SDL_keycode_h_ - -#include -#include - -/** - * \brief The SDL virtual key representation. - * - * Values of this type are used to represent keyboard keys using the current - * layout of the keyboard. These values include Unicode values representing - * the unmodified character that would be generated by pressing the key, or - * an SDLK_* constant for those keys that do not generate characters. - * - * A special exception is the number keys at the top of the keyboard which - * map to SDLK_0...SDLK_9 on AZERTY layouts. - */ -typedef Sint32 SDL_Keycode; - -#define SDLK_SCANCODE_MASK (1<<30) -#define SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK) - -typedef enum -{ - SDLK_UNKNOWN = 0, - - SDLK_RETURN = '\r', - SDLK_ESCAPE = '\x1B', - SDLK_BACKSPACE = '\b', - SDLK_TAB = '\t', - SDLK_SPACE = ' ', - SDLK_EXCLAIM = '!', - SDLK_QUOTEDBL = '"', - SDLK_HASH = '#', - SDLK_PERCENT = '%', - SDLK_DOLLAR = '$', - SDLK_AMPERSAND = '&', - SDLK_QUOTE = '\'', - SDLK_LEFTPAREN = '(', - SDLK_RIGHTPAREN = ')', - SDLK_ASTERISK = '*', - SDLK_PLUS = '+', - SDLK_COMMA = ',', - SDLK_MINUS = '-', - SDLK_PERIOD = '.', - SDLK_SLASH = '/', - SDLK_0 = '0', - SDLK_1 = '1', - SDLK_2 = '2', - SDLK_3 = '3', - SDLK_4 = '4', - SDLK_5 = '5', - SDLK_6 = '6', - SDLK_7 = '7', - SDLK_8 = '8', - SDLK_9 = '9', - SDLK_COLON = ':', - SDLK_SEMICOLON = ';', - SDLK_LESS = '<', - SDLK_EQUALS = '=', - SDLK_GREATER = '>', - SDLK_QUESTION = '?', - SDLK_AT = '@', - - /* - Skip uppercase letters - */ - - SDLK_LEFTBRACKET = '[', - SDLK_BACKSLASH = '\\', - SDLK_RIGHTBRACKET = ']', - SDLK_CARET = '^', - SDLK_UNDERSCORE = '_', - SDLK_BACKQUOTE = '`', - SDLK_a = 'a', - SDLK_b = 'b', - SDLK_c = 'c', - SDLK_d = 'd', - SDLK_e = 'e', - SDLK_f = 'f', - SDLK_g = 'g', - SDLK_h = 'h', - SDLK_i = 'i', - SDLK_j = 'j', - SDLK_k = 'k', - SDLK_l = 'l', - SDLK_m = 'm', - SDLK_n = 'n', - SDLK_o = 'o', - SDLK_p = 'p', - SDLK_q = 'q', - SDLK_r = 'r', - SDLK_s = 's', - SDLK_t = 't', - SDLK_u = 'u', - SDLK_v = 'v', - SDLK_w = 'w', - SDLK_x = 'x', - SDLK_y = 'y', - SDLK_z = 'z', - - SDLK_CAPSLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CAPSLOCK), - - SDLK_F1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F1), - SDLK_F2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F2), - SDLK_F3 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F3), - SDLK_F4 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F4), - SDLK_F5 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F5), - SDLK_F6 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F6), - SDLK_F7 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F7), - SDLK_F8 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F8), - SDLK_F9 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F9), - SDLK_F10 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F10), - SDLK_F11 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F11), - SDLK_F12 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F12), - - SDLK_PRINTSCREEN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRINTSCREEN), - SDLK_SCROLLLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SCROLLLOCK), - SDLK_PAUSE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAUSE), - SDLK_INSERT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_INSERT), - SDLK_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HOME), - SDLK_PAGEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEUP), - SDLK_DELETE = '\x7F', - SDLK_END = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_END), - SDLK_PAGEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEDOWN), - SDLK_RIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RIGHT), - SDLK_LEFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LEFT), - SDLK_DOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DOWN), - SDLK_UP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UP), - - SDLK_NUMLOCKCLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_NUMLOCKCLEAR), - SDLK_KP_DIVIDE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DIVIDE), - SDLK_KP_MULTIPLY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MULTIPLY), - SDLK_KP_MINUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MINUS), - SDLK_KP_PLUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUS), - SDLK_KP_ENTER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_ENTER), - SDLK_KP_1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_1), - SDLK_KP_2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_2), - SDLK_KP_3 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_3), - SDLK_KP_4 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_4), - SDLK_KP_5 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_5), - SDLK_KP_6 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_6), - SDLK_KP_7 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_7), - SDLK_KP_8 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_8), - SDLK_KP_9 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_9), - SDLK_KP_0 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_0), - SDLK_KP_PERIOD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERIOD), - - SDLK_APPLICATION = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APPLICATION), - SDLK_POWER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_POWER), - SDLK_KP_EQUALS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALS), - SDLK_F13 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F13), - SDLK_F14 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F14), - SDLK_F15 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F15), - SDLK_F16 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F16), - SDLK_F17 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F17), - SDLK_F18 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F18), - SDLK_F19 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F19), - SDLK_F20 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F20), - SDLK_F21 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F21), - SDLK_F22 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F22), - SDLK_F23 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F23), - SDLK_F24 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F24), - SDLK_EXECUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXECUTE), - SDLK_HELP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HELP), - SDLK_MENU = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MENU), - SDLK_SELECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SELECT), - SDLK_STOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_STOP), - SDLK_AGAIN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AGAIN), - SDLK_UNDO = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UNDO), - SDLK_CUT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CUT), - SDLK_COPY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_COPY), - SDLK_PASTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PASTE), - SDLK_FIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_FIND), - SDLK_MUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MUTE), - SDLK_VOLUMEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEUP), - SDLK_VOLUMEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEDOWN), - SDLK_KP_COMMA = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COMMA), - SDLK_KP_EQUALSAS400 = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALSAS400), - - SDLK_ALTERASE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ALTERASE), - SDLK_SYSREQ = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SYSREQ), - SDLK_CANCEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CANCEL), - SDLK_CLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEAR), - SDLK_PRIOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRIOR), - SDLK_RETURN2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RETURN2), - SDLK_SEPARATOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SEPARATOR), - SDLK_OUT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OUT), - SDLK_OPER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OPER), - SDLK_CLEARAGAIN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEARAGAIN), - SDLK_CRSEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CRSEL), - SDLK_EXSEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXSEL), - - SDLK_KP_00 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_00), - SDLK_KP_000 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_000), - SDLK_THOUSANDSSEPARATOR = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_THOUSANDSSEPARATOR), - SDLK_DECIMALSEPARATOR = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DECIMALSEPARATOR), - SDLK_CURRENCYUNIT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYUNIT), - SDLK_CURRENCYSUBUNIT = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYSUBUNIT), - SDLK_KP_LEFTPAREN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTPAREN), - SDLK_KP_RIGHTPAREN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTPAREN), - SDLK_KP_LEFTBRACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTBRACE), - SDLK_KP_RIGHTBRACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTBRACE), - SDLK_KP_TAB = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_TAB), - SDLK_KP_BACKSPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BACKSPACE), - SDLK_KP_A = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_A), - SDLK_KP_B = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_B), - SDLK_KP_C = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_C), - SDLK_KP_D = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_D), - SDLK_KP_E = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_E), - SDLK_KP_F = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_F), - SDLK_KP_XOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_XOR), - SDLK_KP_POWER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_POWER), - SDLK_KP_PERCENT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERCENT), - SDLK_KP_LESS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LESS), - SDLK_KP_GREATER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_GREATER), - SDLK_KP_AMPERSAND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AMPERSAND), - SDLK_KP_DBLAMPERSAND = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLAMPERSAND), - SDLK_KP_VERTICALBAR = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_VERTICALBAR), - SDLK_KP_DBLVERTICALBAR = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLVERTICALBAR), - SDLK_KP_COLON = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COLON), - SDLK_KP_HASH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HASH), - SDLK_KP_SPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_SPACE), - SDLK_KP_AT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AT), - SDLK_KP_EXCLAM = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EXCLAM), - SDLK_KP_MEMSTORE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSTORE), - SDLK_KP_MEMRECALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMRECALL), - SDLK_KP_MEMCLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMCLEAR), - SDLK_KP_MEMADD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMADD), - SDLK_KP_MEMSUBTRACT = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSUBTRACT), - SDLK_KP_MEMMULTIPLY = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMMULTIPLY), - SDLK_KP_MEMDIVIDE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMDIVIDE), - SDLK_KP_PLUSMINUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUSMINUS), - SDLK_KP_CLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEAR), - SDLK_KP_CLEARENTRY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEARENTRY), - SDLK_KP_BINARY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BINARY), - SDLK_KP_OCTAL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_OCTAL), - SDLK_KP_DECIMAL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DECIMAL), - SDLK_KP_HEXADECIMAL = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HEXADECIMAL), - - SDLK_LCTRL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LCTRL), - SDLK_LSHIFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LSHIFT), - SDLK_LALT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LALT), - SDLK_LGUI = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LGUI), - SDLK_RCTRL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RCTRL), - SDLK_RSHIFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RSHIFT), - SDLK_RALT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RALT), - SDLK_RGUI = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RGUI), - - SDLK_MODE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MODE), - - SDLK_AUDIONEXT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIONEXT), - SDLK_AUDIOPREV = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOPREV), - SDLK_AUDIOSTOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOSTOP), - SDLK_AUDIOPLAY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOPLAY), - SDLK_AUDIOMUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOMUTE), - SDLK_MEDIASELECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIASELECT), - SDLK_WWW = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_WWW), - SDLK_MAIL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MAIL), - SDLK_CALCULATOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CALCULATOR), - SDLK_COMPUTER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_COMPUTER), - SDLK_AC_SEARCH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_SEARCH), - SDLK_AC_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_HOME), - SDLK_AC_BACK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BACK), - SDLK_AC_FORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_FORWARD), - SDLK_AC_STOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_STOP), - SDLK_AC_REFRESH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_REFRESH), - SDLK_AC_BOOKMARKS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BOOKMARKS), - - SDLK_BRIGHTNESSDOWN = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BRIGHTNESSDOWN), - SDLK_BRIGHTNESSUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BRIGHTNESSUP), - SDLK_DISPLAYSWITCH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DISPLAYSWITCH), - SDLK_KBDILLUMTOGGLE = - SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMTOGGLE), - SDLK_KBDILLUMDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMDOWN), - SDLK_KBDILLUMUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMUP), - SDLK_EJECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EJECT), - SDLK_SLEEP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SLEEP), - SDLK_APP1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APP1), - SDLK_APP2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APP2), - - SDLK_AUDIOREWIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOREWIND), - SDLK_AUDIOFASTFORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOFASTFORWARD), - - SDLK_SOFTLEFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SOFTLEFT), - SDLK_SOFTRIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SOFTRIGHT), - SDLK_CALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CALL), - SDLK_ENDCALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ENDCALL) -} SDL_KeyCode; - -/** - * \brief Enumeration of valid key mods (possibly OR'd together). - */ -typedef enum -{ - KMOD_NONE = 0x0000, - KMOD_LSHIFT = 0x0001, - KMOD_RSHIFT = 0x0002, - KMOD_LCTRL = 0x0040, - KMOD_RCTRL = 0x0080, - KMOD_LALT = 0x0100, - KMOD_RALT = 0x0200, - KMOD_LGUI = 0x0400, - KMOD_RGUI = 0x0800, - KMOD_NUM = 0x1000, - KMOD_CAPS = 0x2000, - KMOD_MODE = 0x4000, - KMOD_SCROLL = 0x8000, - - KMOD_CTRL = KMOD_LCTRL | KMOD_RCTRL, - KMOD_SHIFT = KMOD_LSHIFT | KMOD_RSHIFT, - KMOD_ALT = KMOD_LALT | KMOD_RALT, - KMOD_GUI = KMOD_LGUI | KMOD_RGUI, - - KMOD_RESERVED = KMOD_SCROLL /* This is for source-level compatibility with SDL 2.0.0. */ -} SDL_Keymod; - -#endif /* SDL_keycode_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_loadso.h b/release/SDL2.framework/Versions/A/Headers/SDL_loadso.h deleted file mode 100644 index c2b4f0a..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_loadso.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_loadso.h - * - * System dependent library loading routines - * - * Some things to keep in mind: - * \li These functions only work on C function names. Other languages may - * have name mangling and intrinsic language support that varies from - * compiler to compiler. - * \li Make sure you declare your function pointers with the same calling - * convention as the actual library function. Your code will crash - * mysteriously if you do not do this. - * \li Avoid namespace collisions. If you load a symbol from the library, - * it is not defined whether or not it goes into the global symbol - * namespace for the application. If it does and it conflicts with - * symbols in your code or other shared libraries, you will not get - * the results you expect. :) - */ - -#ifndef SDL_loadso_h_ -#define SDL_loadso_h_ - -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Dynamically load a shared object. - * - * \param sofile a system-dependent name of the object file - * \returns an opaque pointer to the object handle or NULL if there was an - * error; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LoadFunction - * \sa SDL_UnloadObject - */ -extern DECLSPEC void *SDLCALL SDL_LoadObject(const char *sofile); - -/** - * Look up the address of the named function in a shared object. - * - * This function pointer is no longer valid after calling SDL_UnloadObject(). - * - * This function can only look up C function names. Other languages may have - * name mangling and intrinsic language support that varies from compiler to - * compiler. - * - * Make sure you declare your function pointers with the same calling - * convention as the actual library function. Your code will crash - * mysteriously if you do not do this. - * - * If the requested function doesn't exist, NULL is returned. - * - * \param handle a valid shared object handle returned by SDL_LoadObject() - * \param name the name of the function to look up - * \returns a pointer to the function or NULL if there was an error; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LoadObject - * \sa SDL_UnloadObject - */ -extern DECLSPEC void *SDLCALL SDL_LoadFunction(void *handle, - const char *name); - -/** - * Unload a shared object from memory. - * - * \param handle a valid shared object handle returned by SDL_LoadObject() - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LoadFunction - * \sa SDL_LoadObject - */ -extern DECLSPEC void SDLCALL SDL_UnloadObject(void *handle); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_loadso_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_log.h b/release/SDL2.framework/Versions/A/Headers/SDL_log.h deleted file mode 100644 index 0afb9fe..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_log.h +++ /dev/null @@ -1,404 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_log.h - * - * Simple log messages with categories and priorities. - * - * By default logs are quiet, but if you're debugging SDL you might want: - * - * SDL_LogSetAllPriority(SDL_LOG_PRIORITY_WARN); - * - * Here's where the messages go on different platforms: - * Windows: debug output stream - * Android: log output - * Others: standard error output (stderr) - */ - -#ifndef SDL_log_h_ -#define SDL_log_h_ - -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - - -/** - * \brief The maximum size of a log message prior to SDL 2.0.24 - * - * As of 2.0.24 there is no limit to the length of SDL log messages. - */ -#define SDL_MAX_LOG_MESSAGE 4096 - -/** - * \brief The predefined log categories - * - * By default the application category is enabled at the INFO level, - * the assert category is enabled at the WARN level, test is enabled - * at the VERBOSE level and all other categories are enabled at the - * CRITICAL level. - */ -typedef enum -{ - SDL_LOG_CATEGORY_APPLICATION, - SDL_LOG_CATEGORY_ERROR, - SDL_LOG_CATEGORY_ASSERT, - SDL_LOG_CATEGORY_SYSTEM, - SDL_LOG_CATEGORY_AUDIO, - SDL_LOG_CATEGORY_VIDEO, - SDL_LOG_CATEGORY_RENDER, - SDL_LOG_CATEGORY_INPUT, - SDL_LOG_CATEGORY_TEST, - - /* Reserved for future SDL library use */ - SDL_LOG_CATEGORY_RESERVED1, - SDL_LOG_CATEGORY_RESERVED2, - SDL_LOG_CATEGORY_RESERVED3, - SDL_LOG_CATEGORY_RESERVED4, - SDL_LOG_CATEGORY_RESERVED5, - SDL_LOG_CATEGORY_RESERVED6, - SDL_LOG_CATEGORY_RESERVED7, - SDL_LOG_CATEGORY_RESERVED8, - SDL_LOG_CATEGORY_RESERVED9, - SDL_LOG_CATEGORY_RESERVED10, - - /* Beyond this point is reserved for application use, e.g. - enum { - MYAPP_CATEGORY_AWESOME1 = SDL_LOG_CATEGORY_CUSTOM, - MYAPP_CATEGORY_AWESOME2, - MYAPP_CATEGORY_AWESOME3, - ... - }; - */ - SDL_LOG_CATEGORY_CUSTOM -} SDL_LogCategory; - -/** - * \brief The predefined log priorities - */ -typedef enum -{ - SDL_LOG_PRIORITY_VERBOSE = 1, - SDL_LOG_PRIORITY_DEBUG, - SDL_LOG_PRIORITY_INFO, - SDL_LOG_PRIORITY_WARN, - SDL_LOG_PRIORITY_ERROR, - SDL_LOG_PRIORITY_CRITICAL, - SDL_NUM_LOG_PRIORITIES -} SDL_LogPriority; - - -/** - * Set the priority of all log categories. - * - * \param priority the SDL_LogPriority to assign - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LogSetPriority - */ -extern DECLSPEC void SDLCALL SDL_LogSetAllPriority(SDL_LogPriority priority); - -/** - * Set the priority of a particular log category. - * - * \param category the category to assign a priority to - * \param priority the SDL_LogPriority to assign - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LogGetPriority - * \sa SDL_LogSetAllPriority - */ -extern DECLSPEC void SDLCALL SDL_LogSetPriority(int category, - SDL_LogPriority priority); - -/** - * Get the priority of a particular log category. - * - * \param category the category to query - * \returns the SDL_LogPriority for the requested category - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LogSetPriority - */ -extern DECLSPEC SDL_LogPriority SDLCALL SDL_LogGetPriority(int category); - -/** - * Reset all priorities to default. - * - * This is called by SDL_Quit(). - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LogSetAllPriority - * \sa SDL_LogSetPriority - */ -extern DECLSPEC void SDLCALL SDL_LogResetPriorities(void); - -/** - * Log a message with SDL_LOG_CATEGORY_APPLICATION and SDL_LOG_PRIORITY_INFO. - * - * = * \param fmt a printf() style message format string - * - * \param ... additional parameters matching % tokens in the `fmt` string, if - * any - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LogCritical - * \sa SDL_LogDebug - * \sa SDL_LogError - * \sa SDL_LogInfo - * \sa SDL_LogMessage - * \sa SDL_LogMessageV - * \sa SDL_LogVerbose - * \sa SDL_LogWarn - */ -extern DECLSPEC void SDLCALL SDL_Log(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); - -/** - * Log a message with SDL_LOG_PRIORITY_VERBOSE. - * - * \param category the category of the message - * \param fmt a printf() style message format string - * \param ... additional parameters matching % tokens in the **fmt** string, - * if any - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Log - * \sa SDL_LogCritical - * \sa SDL_LogDebug - * \sa SDL_LogError - * \sa SDL_LogInfo - * \sa SDL_LogMessage - * \sa SDL_LogMessageV - * \sa SDL_LogWarn - */ -extern DECLSPEC void SDLCALL SDL_LogVerbose(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * Log a message with SDL_LOG_PRIORITY_DEBUG. - * - * \param category the category of the message - * \param fmt a printf() style message format string - * \param ... additional parameters matching % tokens in the **fmt** string, - * if any - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Log - * \sa SDL_LogCritical - * \sa SDL_LogError - * \sa SDL_LogInfo - * \sa SDL_LogMessage - * \sa SDL_LogMessageV - * \sa SDL_LogVerbose - * \sa SDL_LogWarn - */ -extern DECLSPEC void SDLCALL SDL_LogDebug(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * Log a message with SDL_LOG_PRIORITY_INFO. - * - * \param category the category of the message - * \param fmt a printf() style message format string - * \param ... additional parameters matching % tokens in the **fmt** string, - * if any - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Log - * \sa SDL_LogCritical - * \sa SDL_LogDebug - * \sa SDL_LogError - * \sa SDL_LogMessage - * \sa SDL_LogMessageV - * \sa SDL_LogVerbose - * \sa SDL_LogWarn - */ -extern DECLSPEC void SDLCALL SDL_LogInfo(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * Log a message with SDL_LOG_PRIORITY_WARN. - * - * \param category the category of the message - * \param fmt a printf() style message format string - * \param ... additional parameters matching % tokens in the **fmt** string, - * if any - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Log - * \sa SDL_LogCritical - * \sa SDL_LogDebug - * \sa SDL_LogError - * \sa SDL_LogInfo - * \sa SDL_LogMessage - * \sa SDL_LogMessageV - * \sa SDL_LogVerbose - */ -extern DECLSPEC void SDLCALL SDL_LogWarn(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * Log a message with SDL_LOG_PRIORITY_ERROR. - * - * \param category the category of the message - * \param fmt a printf() style message format string - * \param ... additional parameters matching % tokens in the **fmt** string, - * if any - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Log - * \sa SDL_LogCritical - * \sa SDL_LogDebug - * \sa SDL_LogInfo - * \sa SDL_LogMessage - * \sa SDL_LogMessageV - * \sa SDL_LogVerbose - * \sa SDL_LogWarn - */ -extern DECLSPEC void SDLCALL SDL_LogError(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * Log a message with SDL_LOG_PRIORITY_CRITICAL. - * - * \param category the category of the message - * \param fmt a printf() style message format string - * \param ... additional parameters matching % tokens in the **fmt** string, - * if any - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Log - * \sa SDL_LogDebug - * \sa SDL_LogError - * \sa SDL_LogInfo - * \sa SDL_LogMessage - * \sa SDL_LogMessageV - * \sa SDL_LogVerbose - * \sa SDL_LogWarn - */ -extern DECLSPEC void SDLCALL SDL_LogCritical(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); - -/** - * Log a message with the specified category and priority. - * - * \param category the category of the message - * \param priority the priority of the message - * \param fmt a printf() style message format string - * \param ... additional parameters matching % tokens in the **fmt** string, - * if any - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Log - * \sa SDL_LogCritical - * \sa SDL_LogDebug - * \sa SDL_LogError - * \sa SDL_LogInfo - * \sa SDL_LogMessageV - * \sa SDL_LogVerbose - * \sa SDL_LogWarn - */ -extern DECLSPEC void SDLCALL SDL_LogMessage(int category, - SDL_LogPriority priority, - SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(3); - -/** - * Log a message with the specified category and priority. - * - * \param category the category of the message - * \param priority the priority of the message - * \param fmt a printf() style message format string - * \param ap a variable argument list - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Log - * \sa SDL_LogCritical - * \sa SDL_LogDebug - * \sa SDL_LogError - * \sa SDL_LogInfo - * \sa SDL_LogMessage - * \sa SDL_LogVerbose - * \sa SDL_LogWarn - */ -extern DECLSPEC void SDLCALL SDL_LogMessageV(int category, - SDL_LogPriority priority, - const char *fmt, va_list ap); - -/** - * The prototype for the log output callback function. - * - * This function is called by SDL when there is new text to be logged. - * - * \param userdata what was passed as `userdata` to SDL_LogSetOutputFunction() - * \param category the category of the message - * \param priority the priority of the message - * \param message the message being output - */ -typedef void (SDLCALL *SDL_LogOutputFunction)(void *userdata, int category, SDL_LogPriority priority, const char *message); - -/** - * Get the current log output function. - * - * \param callback an SDL_LogOutputFunction filled in with the current log - * callback - * \param userdata a pointer filled in with the pointer that is passed to - * `callback` - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LogSetOutputFunction - */ -extern DECLSPEC void SDLCALL SDL_LogGetOutputFunction(SDL_LogOutputFunction *callback, void **userdata); - -/** - * Replace the default log output function with one of your own. - * - * \param callback an SDL_LogOutputFunction to call instead of the default - * \param userdata a pointer that is passed to `callback` - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LogGetOutputFunction - */ -extern DECLSPEC void SDLCALL SDL_LogSetOutputFunction(SDL_LogOutputFunction callback, void *userdata); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_log_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_main.h b/release/SDL2.framework/Versions/A/Headers/SDL_main.h deleted file mode 100644 index 8e938ca..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_main.h +++ /dev/null @@ -1,282 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_main_h_ -#define SDL_main_h_ - -#include - -/** - * \file SDL_main.h - * - * Redefine main() on some platforms so that it is called by SDL. - */ - -#ifndef SDL_MAIN_HANDLED -#if defined(__WIN32__) -/* On Windows SDL provides WinMain(), which parses the command line and passes - the arguments to your main function. - - If you provide your own WinMain(), you may define SDL_MAIN_HANDLED - */ -#define SDL_MAIN_AVAILABLE - -#elif defined(__WINRT__) -/* On WinRT, SDL provides a main function that initializes CoreApplication, - creating an instance of IFrameworkView in the process. - - Please note that #include'ing SDL_main.h is not enough to get a main() - function working. In non-XAML apps, the file, - src/main/winrt/SDL_WinRT_main_NonXAML.cpp, or a copy of it, must be compiled - into the app itself. In XAML apps, the function, SDL_WinRTRunApp must be - called, with a pointer to the Direct3D-hosted XAML control passed in. -*/ -#define SDL_MAIN_NEEDED - -#elif defined(__GDK__) -/* On GDK, SDL provides a main function that initializes the game runtime. - - Please note that #include'ing SDL_main.h is not enough to get a main() - function working. You must either link against SDL2main or, if not possible, - call the SDL_GDKRunApp function from your entry point. -*/ -#define SDL_MAIN_NEEDED - -#elif defined(__IPHONEOS__) -/* On iOS SDL provides a main function that creates an application delegate - and starts the iOS application run loop. - - If you link with SDL dynamically on iOS, the main function can't be in a - shared library, so you need to link with libSDLmain.a, which includes a - stub main function that calls into the shared library to start execution. - - See src/video/uikit/SDL_uikitappdelegate.m for more details. - */ -#define SDL_MAIN_NEEDED - -#elif defined(__ANDROID__) -/* On Android SDL provides a Java class in SDLActivity.java that is the - main activity entry point. - - See docs/README-android.md for more details on extending that class. - */ -#define SDL_MAIN_NEEDED - -/* We need to export SDL_main so it can be launched from Java */ -#define SDLMAIN_DECLSPEC DECLSPEC - -#elif defined(__NACL__) -/* On NACL we use ppapi_simple to set up the application helper code, - then wait for the first PSE_INSTANCE_DIDCHANGEVIEW event before - starting the user main function. - All user code is run in a separate thread by ppapi_simple, thus - allowing for blocking io to take place via nacl_io -*/ -#define SDL_MAIN_NEEDED - -#elif defined(__PSP__) -/* On PSP SDL provides a main function that sets the module info, - activates the GPU and starts the thread required to be able to exit - the software. - - If you provide this yourself, you may define SDL_MAIN_HANDLED - */ -#define SDL_MAIN_AVAILABLE - -#elif defined(__PS2__) -#define SDL_MAIN_AVAILABLE - -#define SDL_PS2_SKIP_IOP_RESET() \ - void reset_IOP(); \ - void reset_IOP() {} - -#elif defined(__3DS__) -/* - On N3DS, SDL provides a main function that sets up the screens - and storage. - - If you provide this yourself, you may define SDL_MAIN_HANDLED -*/ -#define SDL_MAIN_AVAILABLE - -#endif -#endif /* SDL_MAIN_HANDLED */ - -#ifndef SDLMAIN_DECLSPEC -#define SDLMAIN_DECLSPEC -#endif - -/** - * \file SDL_main.h - * - * The application's main() function must be called with C linkage, - * and should be declared like this: - * \code - * #ifdef __cplusplus - * extern "C" - * #endif - * int main(int argc, char *argv[]) - * { - * } - * \endcode - */ - -#if defined(SDL_MAIN_NEEDED) || defined(SDL_MAIN_AVAILABLE) -#define main SDL_main -#endif - -#include -#ifdef __cplusplus -extern "C" { -#endif - -/** - * The prototype for the application's main() function - */ -typedef int (*SDL_main_func)(int argc, char *argv[]); -extern SDLMAIN_DECLSPEC int SDL_main(int argc, char *argv[]); - - -/** - * Circumvent failure of SDL_Init() when not using SDL_main() as an entry - * point. - * - * This function is defined in SDL_main.h, along with the preprocessor rule to - * redefine main() as SDL_main(). Thus to ensure that your main() function - * will not be changed it is necessary to define SDL_MAIN_HANDLED before - * including SDL.h. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_Init - */ -extern DECLSPEC void SDLCALL SDL_SetMainReady(void); - -#if defined(__WIN32__) || defined(__GDK__) - -/** - * Register a win32 window class for SDL's use. - * - * This can be called to set the application window class at startup. It is - * safe to call this multiple times, as long as every call is eventually - * paired with a call to SDL_UnregisterApp, but a second registration attempt - * while a previous registration is still active will be ignored, other than - * to increment a counter. - * - * Most applications do not need to, and should not, call this directly; SDL - * will call it when initializing the video subsystem. - * - * \param name the window class name, in UTF-8 encoding. If NULL, SDL - * currently uses "SDL_app" but this isn't guaranteed. - * \param style the value to use in WNDCLASSEX::style. If `name` is NULL, SDL - * currently uses `(CS_BYTEALIGNCLIENT | CS_OWNDC)` regardless of - * what is specified here. - * \param hInst the HINSTANCE to use in WNDCLASSEX::hInstance. If zero, SDL - * will use `GetModuleHandle(NULL)` instead. - * \returns 0 on success, -1 on error. SDL_GetError() may have details. - * - * \since This function is available since SDL 2.0.2. - */ -extern DECLSPEC int SDLCALL SDL_RegisterApp(const char *name, Uint32 style, void *hInst); - -/** - * Deregister the win32 window class from an SDL_RegisterApp call. - * - * This can be called to undo the effects of SDL_RegisterApp. - * - * Most applications do not need to, and should not, call this directly; SDL - * will call it when deinitializing the video subsystem. - * - * It is safe to call this multiple times, as long as every call is eventually - * paired with a prior call to SDL_RegisterApp. The window class will only be - * deregistered when the registration counter in SDL_RegisterApp decrements to - * zero through calls to this function. - * - * \since This function is available since SDL 2.0.2. - */ -extern DECLSPEC void SDLCALL SDL_UnregisterApp(void); - -#endif /* defined(__WIN32__) || defined(__GDK__) */ - - -#ifdef __WINRT__ - -/** - * Initialize and launch an SDL/WinRT application. - * - * \param mainFunction the SDL app's C-style main(), an SDL_main_func - * \param reserved reserved for future use; should be NULL - * \returns 0 on success or -1 on failure; call SDL_GetError() to retrieve - * more information on the failure. - * - * \since This function is available since SDL 2.0.3. - */ -extern DECLSPEC int SDLCALL SDL_WinRTRunApp(SDL_main_func mainFunction, void * reserved); - -#endif /* __WINRT__ */ - -#if defined(__IPHONEOS__) - -/** - * Initializes and launches an SDL application. - * - * \param argc The argc parameter from the application's main() function - * \param argv The argv parameter from the application's main() function - * \param mainFunction The SDL app's C-style main(), an SDL_main_func - * \return the return value from mainFunction - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_UIKitRunApp(int argc, char *argv[], SDL_main_func mainFunction); - -#endif /* __IPHONEOS__ */ - -#ifdef __GDK__ - -/** - * Initialize and launch an SDL GDK application. - * - * \param mainFunction the SDL app's C-style main(), an SDL_main_func - * \param reserved reserved for future use; should be NULL - * \returns 0 on success or -1 on failure; call SDL_GetError() to retrieve - * more information on the failure. - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC int SDLCALL SDL_GDKRunApp(SDL_main_func mainFunction, void *reserved); - -/** - * Callback from the application to let the suspend continue. - * - * \since This function is available since SDL 2.28.0. - */ -extern DECLSPEC void SDLCALL SDL_GDKSuspendComplete(void); - -#endif /* __GDK__ */ - -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_main_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_mouse.h b/release/SDL2.framework/Versions/A/Headers/SDL_mouse.h deleted file mode 100644 index 5b224ec..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_mouse.h +++ /dev/null @@ -1,464 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_mouse.h - * - * Include file for SDL mouse event handling. - */ - -#ifndef SDL_mouse_h_ -#define SDL_mouse_h_ - -#include -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct SDL_Cursor SDL_Cursor; /**< Implementation dependent */ - -/** - * \brief Cursor types for SDL_CreateSystemCursor(). - */ -typedef enum -{ - SDL_SYSTEM_CURSOR_ARROW, /**< Arrow */ - SDL_SYSTEM_CURSOR_IBEAM, /**< I-beam */ - SDL_SYSTEM_CURSOR_WAIT, /**< Wait */ - SDL_SYSTEM_CURSOR_CROSSHAIR, /**< Crosshair */ - SDL_SYSTEM_CURSOR_WAITARROW, /**< Small wait cursor (or Wait if not available) */ - SDL_SYSTEM_CURSOR_SIZENWSE, /**< Double arrow pointing northwest and southeast */ - SDL_SYSTEM_CURSOR_SIZENESW, /**< Double arrow pointing northeast and southwest */ - SDL_SYSTEM_CURSOR_SIZEWE, /**< Double arrow pointing west and east */ - SDL_SYSTEM_CURSOR_SIZENS, /**< Double arrow pointing north and south */ - SDL_SYSTEM_CURSOR_SIZEALL, /**< Four pointed arrow pointing north, south, east, and west */ - SDL_SYSTEM_CURSOR_NO, /**< Slashed circle or crossbones */ - SDL_SYSTEM_CURSOR_HAND, /**< Hand */ - SDL_NUM_SYSTEM_CURSORS -} SDL_SystemCursor; - -/** - * \brief Scroll direction types for the Scroll event - */ -typedef enum -{ - SDL_MOUSEWHEEL_NORMAL, /**< The scroll direction is normal */ - SDL_MOUSEWHEEL_FLIPPED /**< The scroll direction is flipped / natural */ -} SDL_MouseWheelDirection; - -/* Function prototypes */ - -/** - * Get the window which currently has mouse focus. - * - * \returns the window with mouse focus. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_GetMouseFocus(void); - -/** - * Retrieve the current state of the mouse. - * - * The current button state is returned as a button bitmask, which can be - * tested using the `SDL_BUTTON(X)` macros (where `X` is generally 1 for the - * left, 2 for middle, 3 for the right button), and `x` and `y` are set to the - * mouse cursor position relative to the focus window. You can pass NULL for - * either `x` or `y`. - * - * \param x the x coordinate of the mouse cursor position relative to the - * focus window - * \param y the y coordinate of the mouse cursor position relative to the - * focus window - * \returns a 32-bit button bitmask of the current button state. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetGlobalMouseState - * \sa SDL_GetRelativeMouseState - * \sa SDL_PumpEvents - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetMouseState(int *x, int *y); - -/** - * Get the current state of the mouse in relation to the desktop. - * - * This works similarly to SDL_GetMouseState(), but the coordinates will be - * reported relative to the top-left of the desktop. This can be useful if you - * need to track the mouse outside of a specific window and SDL_CaptureMouse() - * doesn't fit your needs. For example, it could be useful if you need to - * track the mouse while dragging a window, where coordinates relative to a - * window might not be in sync at all times. - * - * Note: SDL_GetMouseState() returns the mouse position as SDL understands it - * from the last pump of the event queue. This function, however, queries the - * OS for the current mouse position, and as such, might be a slightly less - * efficient function. Unless you know what you're doing and have a good - * reason to use this function, you probably want SDL_GetMouseState() instead. - * - * \param x filled in with the current X coord relative to the desktop; can be - * NULL - * \param y filled in with the current Y coord relative to the desktop; can be - * NULL - * \returns the current button state as a bitmask which can be tested using - * the SDL_BUTTON(X) macros. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_CaptureMouse - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetGlobalMouseState(int *x, int *y); - -/** - * Retrieve the relative state of the mouse. - * - * The current button state is returned as a button bitmask, which can be - * tested using the `SDL_BUTTON(X)` macros (where `X` is generally 1 for the - * left, 2 for middle, 3 for the right button), and `x` and `y` are set to the - * mouse deltas since the last call to SDL_GetRelativeMouseState() or since - * event initialization. You can pass NULL for either `x` or `y`. - * - * \param x a pointer filled with the last recorded x coordinate of the mouse - * \param y a pointer filled with the last recorded y coordinate of the mouse - * \returns a 32-bit button bitmask of the relative button state. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetMouseState - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetRelativeMouseState(int *x, int *y); - -/** - * Move the mouse cursor to the given position within the window. - * - * This function generates a mouse motion event if relative mode is not - * enabled. If relative mode is enabled, you can force mouse events for the - * warp by setting the SDL_HINT_MOUSE_RELATIVE_WARP_MOTION hint. - * - * Note that this function will appear to succeed, but not actually move the - * mouse when used over Microsoft Remote Desktop. - * - * \param window the window to move the mouse into, or NULL for the current - * mouse focus - * \param x the x coordinate within the window - * \param y the y coordinate within the window - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WarpMouseGlobal - */ -extern DECLSPEC void SDLCALL SDL_WarpMouseInWindow(SDL_Window * window, - int x, int y); - -/** - * Move the mouse to the given position in global screen space. - * - * This function generates a mouse motion event. - * - * A failure of this function usually means that it is unsupported by a - * platform. - * - * Note that this function will appear to succeed, but not actually move the - * mouse when used over Microsoft Remote Desktop. - * - * \param x the x coordinate - * \param y the y coordinate - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_WarpMouseInWindow - */ -extern DECLSPEC int SDLCALL SDL_WarpMouseGlobal(int x, int y); - -/** - * Set relative mouse mode. - * - * While the mouse is in relative mode, the cursor is hidden, the mouse - * position is constrained to the window, and SDL will report continuous - * relative mouse motion even if the mouse is at the edge of the window. - * - * This function will flush any pending mouse motion. - * - * \param enabled SDL_TRUE to enable relative mode, SDL_FALSE to disable. - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * If relative mode is not supported, this returns -1. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRelativeMouseMode - */ -extern DECLSPEC int SDLCALL SDL_SetRelativeMouseMode(SDL_bool enabled); - -/** - * Capture the mouse and to track input outside an SDL window. - * - * Capturing enables your app to obtain mouse events globally, instead of just - * within your window. Not all video targets support this function. When - * capturing is enabled, the current window will get all mouse events, but - * unlike relative mode, no change is made to the cursor and it is not - * restrained to your window. - * - * This function may also deny mouse input to other windows--both those in - * your application and others on the system--so you should use this function - * sparingly, and in small bursts. For example, you might want to track the - * mouse while the user is dragging something, until the user releases a mouse - * button. It is not recommended that you capture the mouse for long periods - * of time, such as the entire time your app is running. For that, you should - * probably use SDL_SetRelativeMouseMode() or SDL_SetWindowGrab(), depending - * on your goals. - * - * While captured, mouse events still report coordinates relative to the - * current (foreground) window, but those coordinates may be outside the - * bounds of the window (including negative values). Capturing is only allowed - * for the foreground window. If the window loses focus while capturing, the - * capture will be disabled automatically. - * - * While capturing is enabled, the current window will have the - * `SDL_WINDOW_MOUSE_CAPTURE` flag set. - * - * Please note that as of SDL 2.0.22, SDL will attempt to "auto capture" the - * mouse while the user is pressing a button; this is to try and make mouse - * behavior more consistent between platforms, and deal with the common case - * of a user dragging the mouse outside of the window. This means that if you - * are calling SDL_CaptureMouse() only to deal with this situation, you no - * longer have to (although it is safe to do so). If this causes problems for - * your app, you can disable auto capture by setting the - * `SDL_HINT_MOUSE_AUTO_CAPTURE` hint to zero. - * - * \param enabled SDL_TRUE to enable capturing, SDL_FALSE to disable. - * \returns 0 on success or -1 if not supported; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_GetGlobalMouseState - */ -extern DECLSPEC int SDLCALL SDL_CaptureMouse(SDL_bool enabled); - -/** - * Query whether relative mouse mode is enabled. - * - * \returns SDL_TRUE if relative mode is enabled or SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetRelativeMouseMode - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetRelativeMouseMode(void); - -/** - * Create a cursor using the specified bitmap data and mask (in MSB format). - * - * `mask` has to be in MSB (Most Significant Bit) format. - * - * The cursor width (`w`) must be a multiple of 8 bits. - * - * The cursor is created in black and white according to the following: - * - * - data=0, mask=1: white - * - data=1, mask=1: black - * - data=0, mask=0: transparent - * - data=1, mask=0: inverted color if possible, black if not. - * - * Cursors created with this function must be freed with SDL_FreeCursor(). - * - * If you want to have a color cursor, or create your cursor from an - * SDL_Surface, you should use SDL_CreateColorCursor(). Alternately, you can - * hide the cursor and draw your own as part of your game's rendering, but it - * will be bound to the framerate. - * - * Also, since SDL 2.0.0, SDL_CreateSystemCursor() is available, which - * provides twelve readily available system cursors to pick from. - * - * \param data the color value for each pixel of the cursor - * \param mask the mask value for each pixel of the cursor - * \param w the width of the cursor - * \param h the height of the cursor - * \param hot_x the X-axis location of the upper left corner of the cursor - * relative to the actual mouse position - * \param hot_y the Y-axis location of the upper left corner of the cursor - * relative to the actual mouse position - * \returns a new cursor with the specified parameters on success or NULL on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FreeCursor - * \sa SDL_SetCursor - * \sa SDL_ShowCursor - */ -extern DECLSPEC SDL_Cursor *SDLCALL SDL_CreateCursor(const Uint8 * data, - const Uint8 * mask, - int w, int h, int hot_x, - int hot_y); - -/** - * Create a color cursor. - * - * \param surface an SDL_Surface structure representing the cursor image - * \param hot_x the x position of the cursor hot spot - * \param hot_y the y position of the cursor hot spot - * \returns the new cursor on success or NULL on failure; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateCursor - * \sa SDL_FreeCursor - */ -extern DECLSPEC SDL_Cursor *SDLCALL SDL_CreateColorCursor(SDL_Surface *surface, - int hot_x, - int hot_y); - -/** - * Create a system cursor. - * - * \param id an SDL_SystemCursor enum value - * \returns a cursor on success or NULL on failure; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FreeCursor - */ -extern DECLSPEC SDL_Cursor *SDLCALL SDL_CreateSystemCursor(SDL_SystemCursor id); - -/** - * Set the active cursor. - * - * This function sets the currently active cursor to the specified one. If the - * cursor is currently visible, the change will be immediately represented on - * the display. SDL_SetCursor(NULL) can be used to force cursor redraw, if - * this is desired for any reason. - * - * \param cursor a cursor to make active - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateCursor - * \sa SDL_GetCursor - * \sa SDL_ShowCursor - */ -extern DECLSPEC void SDLCALL SDL_SetCursor(SDL_Cursor * cursor); - -/** - * Get the active cursor. - * - * This function returns a pointer to the current cursor which is owned by the - * library. It is not necessary to free the cursor with SDL_FreeCursor(). - * - * \returns the active cursor or NULL if there is no mouse. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetCursor - */ -extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetCursor(void); - -/** - * Get the default cursor. - * - * You do not have to call SDL_FreeCursor() on the return value, but it is - * safe to do so. - * - * \returns the default cursor on success or NULL on failure. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateSystemCursor - */ -extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetDefaultCursor(void); - -/** - * Free a previously-created cursor. - * - * Use this function to free cursor resources created with SDL_CreateCursor(), - * SDL_CreateColorCursor() or SDL_CreateSystemCursor(). - * - * \param cursor the cursor to free - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateColorCursor - * \sa SDL_CreateCursor - * \sa SDL_CreateSystemCursor - */ -extern DECLSPEC void SDLCALL SDL_FreeCursor(SDL_Cursor * cursor); - -/** - * Toggle whether or not the cursor is shown. - * - * The cursor starts off displayed but can be turned off. Passing `SDL_ENABLE` - * displays the cursor and passing `SDL_DISABLE` hides it. - * - * The current state of the mouse cursor can be queried by passing - * `SDL_QUERY`; either `SDL_DISABLE` or `SDL_ENABLE` will be returned. - * - * \param toggle `SDL_ENABLE` to show the cursor, `SDL_DISABLE` to hide it, - * `SDL_QUERY` to query the current state without changing it. - * \returns `SDL_ENABLE` if the cursor is shown, or `SDL_DISABLE` if the - * cursor is hidden, or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateCursor - * \sa SDL_SetCursor - */ -extern DECLSPEC int SDLCALL SDL_ShowCursor(int toggle); - -/** - * Used as a mask when testing buttons in buttonstate. - * - * - Button 1: Left mouse button - * - Button 2: Middle mouse button - * - Button 3: Right mouse button - */ -#define SDL_BUTTON(X) (1 << ((X)-1)) -#define SDL_BUTTON_LEFT 1 -#define SDL_BUTTON_MIDDLE 2 -#define SDL_BUTTON_RIGHT 3 -#define SDL_BUTTON_X1 4 -#define SDL_BUTTON_X2 5 -#define SDL_BUTTON_LMASK SDL_BUTTON(SDL_BUTTON_LEFT) -#define SDL_BUTTON_MMASK SDL_BUTTON(SDL_BUTTON_MIDDLE) -#define SDL_BUTTON_RMASK SDL_BUTTON(SDL_BUTTON_RIGHT) -#define SDL_BUTTON_X1MASK SDL_BUTTON(SDL_BUTTON_X1) -#define SDL_BUTTON_X2MASK SDL_BUTTON(SDL_BUTTON_X2) - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_mouse_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_mutex.h b/release/SDL2.framework/Versions/A/Headers/SDL_mutex.h deleted file mode 100644 index d4afb6f..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_mutex.h +++ /dev/null @@ -1,545 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_mutex_h_ -#define SDL_mutex_h_ - -/** - * \file SDL_mutex.h - * - * Functions to provide thread synchronization primitives. - */ - -#include -#include - -/******************************************************************************/ -/* Enable thread safety attributes only with clang. - * The attributes can be safely erased when compiling with other compilers. - */ -#if defined(SDL_THREAD_SAFETY_ANALYSIS) && \ - defined(__clang__) && (!defined(SWIG)) -#define SDL_THREAD_ANNOTATION_ATTRIBUTE__(x) __attribute__((x)) -#else -#define SDL_THREAD_ANNOTATION_ATTRIBUTE__(x) /* no-op */ -#endif - -#define SDL_CAPABILITY(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(capability(x)) - -#define SDL_SCOPED_CAPABILITY \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(scoped_lockable) - -#define SDL_GUARDED_BY(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(guarded_by(x)) - -#define SDL_PT_GUARDED_BY(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(pt_guarded_by(x)) - -#define SDL_ACQUIRED_BEFORE(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquired_before(x)) - -#define SDL_ACQUIRED_AFTER(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquired_after(x)) - -#define SDL_REQUIRES(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(requires_capability(x)) - -#define SDL_REQUIRES_SHARED(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(requires_shared_capability(x)) - -#define SDL_ACQUIRE(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquire_capability(x)) - -#define SDL_ACQUIRE_SHARED(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquire_shared_capability(x)) - -#define SDL_RELEASE(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(release_capability(x)) - -#define SDL_RELEASE_SHARED(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(release_shared_capability(x)) - -#define SDL_RELEASE_GENERIC(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(release_generic_capability(x)) - -#define SDL_TRY_ACQUIRE(x, y) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(try_acquire_capability(x, y)) - -#define SDL_TRY_ACQUIRE_SHARED(x, y) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(try_acquire_shared_capability(x, y)) - -#define SDL_EXCLUDES(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(locks_excluded(x)) - -#define SDL_ASSERT_CAPABILITY(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(assert_capability(x)) - -#define SDL_ASSERT_SHARED_CAPABILITY(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(assert_shared_capability(x)) - -#define SDL_RETURN_CAPABILITY(x) \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(lock_returned(x)) - -#define SDL_NO_THREAD_SAFETY_ANALYSIS \ - SDL_THREAD_ANNOTATION_ATTRIBUTE__(no_thread_safety_analysis) - -/******************************************************************************/ - - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Synchronization functions which can time out return this value - * if they time out. - */ -#define SDL_MUTEX_TIMEDOUT 1 - -/** - * This is the timeout value which corresponds to never time out. - */ -#define SDL_MUTEX_MAXWAIT (~(Uint32)0) - - -/** - * \name Mutex functions - */ -/* @{ */ - -/* The SDL mutex structure, defined in SDL_sysmutex.c */ -struct SDL_mutex; -typedef struct SDL_mutex SDL_mutex; - -/** - * Create a new mutex. - * - * All newly-created mutexes begin in the _unlocked_ state. - * - * Calls to SDL_LockMutex() will not return while the mutex is locked by - * another thread. See SDL_TryLockMutex() to attempt to lock without blocking. - * - * SDL mutexes are reentrant. - * - * \returns the initialized and unlocked mutex or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_DestroyMutex - * \sa SDL_LockMutex - * \sa SDL_TryLockMutex - * \sa SDL_UnlockMutex - */ -extern DECLSPEC SDL_mutex *SDLCALL SDL_CreateMutex(void); - -/** - * Lock the mutex. - * - * This will block until the mutex is available, which is to say it is in the - * unlocked state and the OS has chosen the caller as the next thread to lock - * it. Of all threads waiting to lock the mutex, only one may do so at a time. - * - * It is legal for the owning thread to lock an already-locked mutex. It must - * unlock it the same number of times before it is actually made available for - * other threads in the system (this is known as a "recursive mutex"). - * - * \param mutex the mutex to lock - * \return 0, or -1 on error. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_LockMutex(SDL_mutex * mutex) SDL_ACQUIRE(mutex); -#define SDL_mutexP(m) SDL_LockMutex(m) - -/** - * Try to lock a mutex without blocking. - * - * This works just like SDL_LockMutex(), but if the mutex is not available, - * this function returns `SDL_MUTEX_TIMEOUT` immediately. - * - * This technique is useful if you need exclusive access to a resource but - * don't want to wait for it, and will return to it to try again later. - * - * \param mutex the mutex to try to lock - * \returns 0, `SDL_MUTEX_TIMEDOUT`, or -1 on error; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateMutex - * \sa SDL_DestroyMutex - * \sa SDL_LockMutex - * \sa SDL_UnlockMutex - */ -extern DECLSPEC int SDLCALL SDL_TryLockMutex(SDL_mutex * mutex) SDL_TRY_ACQUIRE(0, mutex); - -/** - * Unlock the mutex. - * - * It is legal for the owning thread to lock an already-locked mutex. It must - * unlock it the same number of times before it is actually made available for - * other threads in the system (this is known as a "recursive mutex"). - * - * It is an error to unlock a mutex that has not been locked by the current - * thread, and doing so results in undefined behavior. - * - * It is also an error to unlock a mutex that isn't locked at all. - * - * \param mutex the mutex to unlock. - * \returns 0, or -1 on error. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_UnlockMutex(SDL_mutex * mutex) SDL_RELEASE(mutex); -#define SDL_mutexV(m) SDL_UnlockMutex(m) - -/** - * Destroy a mutex created with SDL_CreateMutex(). - * - * This function must be called on any mutex that is no longer needed. Failure - * to destroy a mutex will result in a system memory or resource leak. While - * it is safe to destroy a mutex that is _unlocked_, it is not safe to attempt - * to destroy a locked mutex, and may result in undefined behavior depending - * on the platform. - * - * \param mutex the mutex to destroy - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateMutex - * \sa SDL_LockMutex - * \sa SDL_TryLockMutex - * \sa SDL_UnlockMutex - */ -extern DECLSPEC void SDLCALL SDL_DestroyMutex(SDL_mutex * mutex); - -/* @} *//* Mutex functions */ - - -/** - * \name Semaphore functions - */ -/* @{ */ - -/* The SDL semaphore structure, defined in SDL_syssem.c */ -struct SDL_semaphore; -typedef struct SDL_semaphore SDL_sem; - -/** - * Create a semaphore. - * - * This function creates a new semaphore and initializes it with the value - * `initial_value`. Each wait operation on the semaphore will atomically - * decrement the semaphore value and potentially block if the semaphore value - * is 0. Each post operation will atomically increment the semaphore value and - * wake waiting threads and allow them to retry the wait operation. - * - * \param initial_value the starting value of the semaphore - * \returns a new semaphore or NULL on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_DestroySemaphore - * \sa SDL_SemPost - * \sa SDL_SemTryWait - * \sa SDL_SemValue - * \sa SDL_SemWait - * \sa SDL_SemWaitTimeout - */ -extern DECLSPEC SDL_sem *SDLCALL SDL_CreateSemaphore(Uint32 initial_value); - -/** - * Destroy a semaphore. - * - * It is not safe to destroy a semaphore if there are threads currently - * waiting on it. - * - * \param sem the semaphore to destroy - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateSemaphore - * \sa SDL_SemPost - * \sa SDL_SemTryWait - * \sa SDL_SemValue - * \sa SDL_SemWait - * \sa SDL_SemWaitTimeout - */ -extern DECLSPEC void SDLCALL SDL_DestroySemaphore(SDL_sem * sem); - -/** - * Wait until a semaphore has a positive value and then decrements it. - * - * This function suspends the calling thread until either the semaphore - * pointed to by `sem` has a positive value or the call is interrupted by a - * signal or error. If the call is successful it will atomically decrement the - * semaphore value. - * - * This function is the equivalent of calling SDL_SemWaitTimeout() with a time - * length of `SDL_MUTEX_MAXWAIT`. - * - * \param sem the semaphore wait on - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateSemaphore - * \sa SDL_DestroySemaphore - * \sa SDL_SemPost - * \sa SDL_SemTryWait - * \sa SDL_SemValue - * \sa SDL_SemWait - * \sa SDL_SemWaitTimeout - */ -extern DECLSPEC int SDLCALL SDL_SemWait(SDL_sem * sem); - -/** - * See if a semaphore has a positive value and decrement it if it does. - * - * This function checks to see if the semaphore pointed to by `sem` has a - * positive value and atomically decrements the semaphore value if it does. If - * the semaphore doesn't have a positive value, the function immediately - * returns SDL_MUTEX_TIMEDOUT. - * - * \param sem the semaphore to wait on - * \returns 0 if the wait succeeds, `SDL_MUTEX_TIMEDOUT` if the wait would - * block, or a negative error code on failure; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateSemaphore - * \sa SDL_DestroySemaphore - * \sa SDL_SemPost - * \sa SDL_SemValue - * \sa SDL_SemWait - * \sa SDL_SemWaitTimeout - */ -extern DECLSPEC int SDLCALL SDL_SemTryWait(SDL_sem * sem); - -/** - * Wait until a semaphore has a positive value and then decrements it. - * - * This function suspends the calling thread until either the semaphore - * pointed to by `sem` has a positive value, the call is interrupted by a - * signal or error, or the specified time has elapsed. If the call is - * successful it will atomically decrement the semaphore value. - * - * \param sem the semaphore to wait on - * \param timeout the length of the timeout, in milliseconds - * \returns 0 if the wait succeeds, `SDL_MUTEX_TIMEDOUT` if the wait does not - * succeed in the allotted time, or a negative error code on failure; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateSemaphore - * \sa SDL_DestroySemaphore - * \sa SDL_SemPost - * \sa SDL_SemTryWait - * \sa SDL_SemValue - * \sa SDL_SemWait - */ -extern DECLSPEC int SDLCALL SDL_SemWaitTimeout(SDL_sem *sem, Uint32 timeout); - -/** - * Atomically increment a semaphore's value and wake waiting threads. - * - * \param sem the semaphore to increment - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateSemaphore - * \sa SDL_DestroySemaphore - * \sa SDL_SemTryWait - * \sa SDL_SemValue - * \sa SDL_SemWait - * \sa SDL_SemWaitTimeout - */ -extern DECLSPEC int SDLCALL SDL_SemPost(SDL_sem * sem); - -/** - * Get the current value of a semaphore. - * - * \param sem the semaphore to query - * \returns the current value of the semaphore. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateSemaphore - */ -extern DECLSPEC Uint32 SDLCALL SDL_SemValue(SDL_sem * sem); - -/* @} *//* Semaphore functions */ - - -/** - * \name Condition variable functions - */ -/* @{ */ - -/* The SDL condition variable structure, defined in SDL_syscond.c */ -struct SDL_cond; -typedef struct SDL_cond SDL_cond; - -/** - * Create a condition variable. - * - * \returns a new condition variable or NULL on failure; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CondBroadcast - * \sa SDL_CondSignal - * \sa SDL_CondWait - * \sa SDL_CondWaitTimeout - * \sa SDL_DestroyCond - */ -extern DECLSPEC SDL_cond *SDLCALL SDL_CreateCond(void); - -/** - * Destroy a condition variable. - * - * \param cond the condition variable to destroy - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CondBroadcast - * \sa SDL_CondSignal - * \sa SDL_CondWait - * \sa SDL_CondWaitTimeout - * \sa SDL_CreateCond - */ -extern DECLSPEC void SDLCALL SDL_DestroyCond(SDL_cond * cond); - -/** - * Restart one of the threads that are waiting on the condition variable. - * - * \param cond the condition variable to signal - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CondBroadcast - * \sa SDL_CondWait - * \sa SDL_CondWaitTimeout - * \sa SDL_CreateCond - * \sa SDL_DestroyCond - */ -extern DECLSPEC int SDLCALL SDL_CondSignal(SDL_cond * cond); - -/** - * Restart all threads that are waiting on the condition variable. - * - * \param cond the condition variable to signal - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CondSignal - * \sa SDL_CondWait - * \sa SDL_CondWaitTimeout - * \sa SDL_CreateCond - * \sa SDL_DestroyCond - */ -extern DECLSPEC int SDLCALL SDL_CondBroadcast(SDL_cond * cond); - -/** - * Wait until a condition variable is signaled. - * - * This function unlocks the specified `mutex` and waits for another thread to - * call SDL_CondSignal() or SDL_CondBroadcast() on the condition variable - * `cond`. Once the condition variable is signaled, the mutex is re-locked and - * the function returns. - * - * The mutex must be locked before calling this function. - * - * This function is the equivalent of calling SDL_CondWaitTimeout() with a - * time length of `SDL_MUTEX_MAXWAIT`. - * - * \param cond the condition variable to wait on - * \param mutex the mutex used to coordinate thread access - * \returns 0 when it is signaled or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CondBroadcast - * \sa SDL_CondSignal - * \sa SDL_CondWaitTimeout - * \sa SDL_CreateCond - * \sa SDL_DestroyCond - */ -extern DECLSPEC int SDLCALL SDL_CondWait(SDL_cond * cond, SDL_mutex * mutex); - -/** - * Wait until a condition variable is signaled or a certain time has passed. - * - * This function unlocks the specified `mutex` and waits for another thread to - * call SDL_CondSignal() or SDL_CondBroadcast() on the condition variable - * `cond`, or for the specified time to elapse. Once the condition variable is - * signaled or the time elapsed, the mutex is re-locked and the function - * returns. - * - * The mutex must be locked before calling this function. - * - * \param cond the condition variable to wait on - * \param mutex the mutex used to coordinate thread access - * \param ms the maximum time to wait, in milliseconds, or `SDL_MUTEX_MAXWAIT` - * to wait indefinitely - * \returns 0 if the condition variable is signaled, `SDL_MUTEX_TIMEDOUT` if - * the condition is not signaled in the allotted time, or a negative - * error code on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CondBroadcast - * \sa SDL_CondSignal - * \sa SDL_CondWait - * \sa SDL_CreateCond - * \sa SDL_DestroyCond - */ -extern DECLSPEC int SDLCALL SDL_CondWaitTimeout(SDL_cond * cond, - SDL_mutex * mutex, Uint32 ms); - -/* @} *//* Condition variable functions */ - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_mutex_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_name.h b/release/SDL2.framework/Versions/A/Headers/SDL_name.h deleted file mode 100644 index 5c3e07a..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_name.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDLname_h_ -#define SDLname_h_ - -#if defined(__STDC__) || defined(__cplusplus) -#define NeedFunctionPrototypes 1 -#endif - -#define SDL_NAME(X) SDL_##X - -#endif /* SDLname_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_pixels.h b/release/SDL2.framework/Versions/A/Headers/SDL_pixels.h deleted file mode 100644 index 35b4523..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_pixels.h +++ /dev/null @@ -1,644 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_pixels.h - * - * Header for the enumerated pixel format definitions. - */ - -#ifndef SDL_pixels_h_ -#define SDL_pixels_h_ - -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \name Transparency definitions - * - * These define alpha as the opacity of a surface. - */ -/* @{ */ -#define SDL_ALPHA_OPAQUE 255 -#define SDL_ALPHA_TRANSPARENT 0 -/* @} */ - -/** Pixel type. */ -typedef enum -{ - SDL_PIXELTYPE_UNKNOWN, - SDL_PIXELTYPE_INDEX1, - SDL_PIXELTYPE_INDEX4, - SDL_PIXELTYPE_INDEX8, - SDL_PIXELTYPE_PACKED8, - SDL_PIXELTYPE_PACKED16, - SDL_PIXELTYPE_PACKED32, - SDL_PIXELTYPE_ARRAYU8, - SDL_PIXELTYPE_ARRAYU16, - SDL_PIXELTYPE_ARRAYU32, - SDL_PIXELTYPE_ARRAYF16, - SDL_PIXELTYPE_ARRAYF32 -} SDL_PixelType; - -/** Bitmap pixel order, high bit -> low bit. */ -typedef enum -{ - SDL_BITMAPORDER_NONE, - SDL_BITMAPORDER_4321, - SDL_BITMAPORDER_1234 -} SDL_BitmapOrder; - -/** Packed component order, high bit -> low bit. */ -typedef enum -{ - SDL_PACKEDORDER_NONE, - SDL_PACKEDORDER_XRGB, - SDL_PACKEDORDER_RGBX, - SDL_PACKEDORDER_ARGB, - SDL_PACKEDORDER_RGBA, - SDL_PACKEDORDER_XBGR, - SDL_PACKEDORDER_BGRX, - SDL_PACKEDORDER_ABGR, - SDL_PACKEDORDER_BGRA -} SDL_PackedOrder; - -/** Array component order, low byte -> high byte. */ -/* !!! FIXME: in 2.1, make these not overlap differently with - !!! FIXME: SDL_PACKEDORDER_*, so we can simplify SDL_ISPIXELFORMAT_ALPHA */ -typedef enum -{ - SDL_ARRAYORDER_NONE, - SDL_ARRAYORDER_RGB, - SDL_ARRAYORDER_RGBA, - SDL_ARRAYORDER_ARGB, - SDL_ARRAYORDER_BGR, - SDL_ARRAYORDER_BGRA, - SDL_ARRAYORDER_ABGR -} SDL_ArrayOrder; - -/** Packed component layout. */ -typedef enum -{ - SDL_PACKEDLAYOUT_NONE, - SDL_PACKEDLAYOUT_332, - SDL_PACKEDLAYOUT_4444, - SDL_PACKEDLAYOUT_1555, - SDL_PACKEDLAYOUT_5551, - SDL_PACKEDLAYOUT_565, - SDL_PACKEDLAYOUT_8888, - SDL_PACKEDLAYOUT_2101010, - SDL_PACKEDLAYOUT_1010102 -} SDL_PackedLayout; - -#define SDL_DEFINE_PIXELFOURCC(A, B, C, D) SDL_FOURCC(A, B, C, D) - -#define SDL_DEFINE_PIXELFORMAT(type, order, layout, bits, bytes) \ - ((1 << 28) | ((type) << 24) | ((order) << 20) | ((layout) << 16) | \ - ((bits) << 8) | ((bytes) << 0)) - -#define SDL_PIXELFLAG(X) (((X) >> 28) & 0x0F) -#define SDL_PIXELTYPE(X) (((X) >> 24) & 0x0F) -#define SDL_PIXELORDER(X) (((X) >> 20) & 0x0F) -#define SDL_PIXELLAYOUT(X) (((X) >> 16) & 0x0F) -#define SDL_BITSPERPIXEL(X) (((X) >> 8) & 0xFF) -#define SDL_BYTESPERPIXEL(X) \ - (SDL_ISPIXELFORMAT_FOURCC(X) ? \ - ((((X) == SDL_PIXELFORMAT_YUY2) || \ - ((X) == SDL_PIXELFORMAT_UYVY) || \ - ((X) == SDL_PIXELFORMAT_YVYU)) ? 2 : 1) : (((X) >> 0) & 0xFF)) - -#define SDL_ISPIXELFORMAT_INDEXED(format) \ - (!SDL_ISPIXELFORMAT_FOURCC(format) && \ - ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX1) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX4) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX8))) - -#define SDL_ISPIXELFORMAT_PACKED(format) \ - (!SDL_ISPIXELFORMAT_FOURCC(format) && \ - ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED8) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED16) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED32))) - -#define SDL_ISPIXELFORMAT_ARRAY(format) \ - (!SDL_ISPIXELFORMAT_FOURCC(format) && \ - ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU8) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU16) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU32) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYF16) || \ - (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYF32))) - -#define SDL_ISPIXELFORMAT_ALPHA(format) \ - ((SDL_ISPIXELFORMAT_PACKED(format) && \ - ((SDL_PIXELORDER(format) == SDL_PACKEDORDER_ARGB) || \ - (SDL_PIXELORDER(format) == SDL_PACKEDORDER_RGBA) || \ - (SDL_PIXELORDER(format) == SDL_PACKEDORDER_ABGR) || \ - (SDL_PIXELORDER(format) == SDL_PACKEDORDER_BGRA))) || \ - (SDL_ISPIXELFORMAT_ARRAY(format) && \ - ((SDL_PIXELORDER(format) == SDL_ARRAYORDER_ARGB) || \ - (SDL_PIXELORDER(format) == SDL_ARRAYORDER_RGBA) || \ - (SDL_PIXELORDER(format) == SDL_ARRAYORDER_ABGR) || \ - (SDL_PIXELORDER(format) == SDL_ARRAYORDER_BGRA)))) - -/* The flag is set to 1 because 0x1? is not in the printable ASCII range */ -#define SDL_ISPIXELFORMAT_FOURCC(format) \ - ((format) && (SDL_PIXELFLAG(format) != 1)) - -/* Note: If you modify this list, update SDL_GetPixelFormatName() */ -typedef enum -{ - SDL_PIXELFORMAT_UNKNOWN, - SDL_PIXELFORMAT_INDEX1LSB = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_4321, 0, - 1, 0), - SDL_PIXELFORMAT_INDEX1MSB = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_1234, 0, - 1, 0), - SDL_PIXELFORMAT_INDEX4LSB = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_4321, 0, - 4, 0), - SDL_PIXELFORMAT_INDEX4MSB = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_1234, 0, - 4, 0), - SDL_PIXELFORMAT_INDEX8 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX8, 0, 0, 8, 1), - SDL_PIXELFORMAT_RGB332 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED8, SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_332, 8, 1), - SDL_PIXELFORMAT_XRGB4444 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_4444, 12, 2), - SDL_PIXELFORMAT_RGB444 = SDL_PIXELFORMAT_XRGB4444, - SDL_PIXELFORMAT_XBGR4444 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, - SDL_PACKEDLAYOUT_4444, 12, 2), - SDL_PIXELFORMAT_BGR444 = SDL_PIXELFORMAT_XBGR4444, - SDL_PIXELFORMAT_XRGB1555 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_1555, 15, 2), - SDL_PIXELFORMAT_RGB555 = SDL_PIXELFORMAT_XRGB1555, - SDL_PIXELFORMAT_XBGR1555 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, - SDL_PACKEDLAYOUT_1555, 15, 2), - SDL_PIXELFORMAT_BGR555 = SDL_PIXELFORMAT_XBGR1555, - SDL_PIXELFORMAT_ARGB4444 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, - SDL_PACKEDLAYOUT_4444, 16, 2), - SDL_PIXELFORMAT_RGBA4444 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, - SDL_PACKEDLAYOUT_4444, 16, 2), - SDL_PIXELFORMAT_ABGR4444 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, - SDL_PACKEDLAYOUT_4444, 16, 2), - SDL_PIXELFORMAT_BGRA4444 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, - SDL_PACKEDLAYOUT_4444, 16, 2), - SDL_PIXELFORMAT_ARGB1555 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, - SDL_PACKEDLAYOUT_1555, 16, 2), - SDL_PIXELFORMAT_RGBA5551 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, - SDL_PACKEDLAYOUT_5551, 16, 2), - SDL_PIXELFORMAT_ABGR1555 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, - SDL_PACKEDLAYOUT_1555, 16, 2), - SDL_PIXELFORMAT_BGRA5551 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, - SDL_PACKEDLAYOUT_5551, 16, 2), - SDL_PIXELFORMAT_RGB565 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_565, 16, 2), - SDL_PIXELFORMAT_BGR565 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, - SDL_PACKEDLAYOUT_565, 16, 2), - SDL_PIXELFORMAT_RGB24 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_RGB, 0, - 24, 3), - SDL_PIXELFORMAT_BGR24 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_BGR, 0, - 24, 3), - SDL_PIXELFORMAT_XRGB8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_8888, 24, 4), - SDL_PIXELFORMAT_RGB888 = SDL_PIXELFORMAT_XRGB8888, - SDL_PIXELFORMAT_RGBX8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBX, - SDL_PACKEDLAYOUT_8888, 24, 4), - SDL_PIXELFORMAT_XBGR8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XBGR, - SDL_PACKEDLAYOUT_8888, 24, 4), - SDL_PIXELFORMAT_BGR888 = SDL_PIXELFORMAT_XBGR8888, - SDL_PIXELFORMAT_BGRX8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRX, - SDL_PACKEDLAYOUT_8888, 24, 4), - SDL_PIXELFORMAT_ARGB8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, - SDL_PACKEDLAYOUT_8888, 32, 4), - SDL_PIXELFORMAT_RGBA8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBA, - SDL_PACKEDLAYOUT_8888, 32, 4), - SDL_PIXELFORMAT_ABGR8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ABGR, - SDL_PACKEDLAYOUT_8888, 32, 4), - SDL_PIXELFORMAT_BGRA8888 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRA, - SDL_PACKEDLAYOUT_8888, 32, 4), - SDL_PIXELFORMAT_ARGB2101010 = - SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, - SDL_PACKEDLAYOUT_2101010, 32, 4), - - /* Aliases for RGBA byte arrays of color data, for the current platform */ -#if SDL_BYTEORDER == SDL_BIG_ENDIAN - SDL_PIXELFORMAT_RGBA32 = SDL_PIXELFORMAT_RGBA8888, - SDL_PIXELFORMAT_ARGB32 = SDL_PIXELFORMAT_ARGB8888, - SDL_PIXELFORMAT_BGRA32 = SDL_PIXELFORMAT_BGRA8888, - SDL_PIXELFORMAT_ABGR32 = SDL_PIXELFORMAT_ABGR8888, -#else - SDL_PIXELFORMAT_RGBA32 = SDL_PIXELFORMAT_ABGR8888, - SDL_PIXELFORMAT_ARGB32 = SDL_PIXELFORMAT_BGRA8888, - SDL_PIXELFORMAT_BGRA32 = SDL_PIXELFORMAT_ARGB8888, - SDL_PIXELFORMAT_ABGR32 = SDL_PIXELFORMAT_RGBA8888, -#endif - - SDL_PIXELFORMAT_YV12 = /**< Planar mode: Y + V + U (3 planes) */ - SDL_DEFINE_PIXELFOURCC('Y', 'V', '1', '2'), - SDL_PIXELFORMAT_IYUV = /**< Planar mode: Y + U + V (3 planes) */ - SDL_DEFINE_PIXELFOURCC('I', 'Y', 'U', 'V'), - SDL_PIXELFORMAT_YUY2 = /**< Packed mode: Y0+U0+Y1+V0 (1 plane) */ - SDL_DEFINE_PIXELFOURCC('Y', 'U', 'Y', '2'), - SDL_PIXELFORMAT_UYVY = /**< Packed mode: U0+Y0+V0+Y1 (1 plane) */ - SDL_DEFINE_PIXELFOURCC('U', 'Y', 'V', 'Y'), - SDL_PIXELFORMAT_YVYU = /**< Packed mode: Y0+V0+Y1+U0 (1 plane) */ - SDL_DEFINE_PIXELFOURCC('Y', 'V', 'Y', 'U'), - SDL_PIXELFORMAT_NV12 = /**< Planar mode: Y + U/V interleaved (2 planes) */ - SDL_DEFINE_PIXELFOURCC('N', 'V', '1', '2'), - SDL_PIXELFORMAT_NV21 = /**< Planar mode: Y + V/U interleaved (2 planes) */ - SDL_DEFINE_PIXELFOURCC('N', 'V', '2', '1'), - SDL_PIXELFORMAT_EXTERNAL_OES = /**< Android video texture format */ - SDL_DEFINE_PIXELFOURCC('O', 'E', 'S', ' ') -} SDL_PixelFormatEnum; - -/** - * The bits of this structure can be directly reinterpreted as an integer-packed - * color which uses the SDL_PIXELFORMAT_RGBA32 format (SDL_PIXELFORMAT_ABGR8888 - * on little-endian systems and SDL_PIXELFORMAT_RGBA8888 on big-endian systems). - */ -typedef struct SDL_Color -{ - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -} SDL_Color; -#define SDL_Colour SDL_Color - -typedef struct SDL_Palette -{ - int ncolors; - SDL_Color *colors; - Uint32 version; - int refcount; -} SDL_Palette; - -/** - * \note Everything in the pixel format structure is read-only. - */ -typedef struct SDL_PixelFormat -{ - Uint32 format; - SDL_Palette *palette; - Uint8 BitsPerPixel; - Uint8 BytesPerPixel; - Uint8 padding[2]; - Uint32 Rmask; - Uint32 Gmask; - Uint32 Bmask; - Uint32 Amask; - Uint8 Rloss; - Uint8 Gloss; - Uint8 Bloss; - Uint8 Aloss; - Uint8 Rshift; - Uint8 Gshift; - Uint8 Bshift; - Uint8 Ashift; - int refcount; - struct SDL_PixelFormat *next; -} SDL_PixelFormat; - -/** - * Get the human readable name of a pixel format. - * - * \param format the pixel format to query - * \returns the human readable name of the specified pixel format or - * `SDL_PIXELFORMAT_UNKNOWN` if the format isn't recognized. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC const char* SDLCALL SDL_GetPixelFormatName(Uint32 format); - -/** - * Convert one of the enumerated pixel formats to a bpp value and RGBA masks. - * - * \param format one of the SDL_PixelFormatEnum values - * \param bpp a bits per pixel value; usually 15, 16, or 32 - * \param Rmask a pointer filled in with the red mask for the format - * \param Gmask a pointer filled in with the green mask for the format - * \param Bmask a pointer filled in with the blue mask for the format - * \param Amask a pointer filled in with the alpha mask for the format - * \returns SDL_TRUE on success or SDL_FALSE if the conversion wasn't - * possible; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_MasksToPixelFormatEnum - */ -extern DECLSPEC SDL_bool SDLCALL SDL_PixelFormatEnumToMasks(Uint32 format, - int *bpp, - Uint32 * Rmask, - Uint32 * Gmask, - Uint32 * Bmask, - Uint32 * Amask); - -/** - * Convert a bpp value and RGBA masks to an enumerated pixel format. - * - * This will return `SDL_PIXELFORMAT_UNKNOWN` if the conversion wasn't - * possible. - * - * \param bpp a bits per pixel value; usually 15, 16, or 32 - * \param Rmask the red mask for the format - * \param Gmask the green mask for the format - * \param Bmask the blue mask for the format - * \param Amask the alpha mask for the format - * \returns one of the SDL_PixelFormatEnum values - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_PixelFormatEnumToMasks - */ -extern DECLSPEC Uint32 SDLCALL SDL_MasksToPixelFormatEnum(int bpp, - Uint32 Rmask, - Uint32 Gmask, - Uint32 Bmask, - Uint32 Amask); - -/** - * Create an SDL_PixelFormat structure corresponding to a pixel format. - * - * Returned structure may come from a shared global cache (i.e. not newly - * allocated), and hence should not be modified, especially the palette. Weird - * errors such as `Blit combination not supported` may occur. - * - * \param pixel_format one of the SDL_PixelFormatEnum values - * \returns the new SDL_PixelFormat structure or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FreeFormat - */ -extern DECLSPEC SDL_PixelFormat * SDLCALL SDL_AllocFormat(Uint32 pixel_format); - -/** - * Free an SDL_PixelFormat structure allocated by SDL_AllocFormat(). - * - * \param format the SDL_PixelFormat structure to free - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AllocFormat - */ -extern DECLSPEC void SDLCALL SDL_FreeFormat(SDL_PixelFormat *format); - -/** - * Create a palette structure with the specified number of color entries. - * - * The palette entries are initialized to white. - * - * \param ncolors represents the number of color entries in the color palette - * \returns a new SDL_Palette structure on success or NULL on failure (e.g. if - * there wasn't enough memory); call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FreePalette - */ -extern DECLSPEC SDL_Palette *SDLCALL SDL_AllocPalette(int ncolors); - -/** - * Set the palette for a pixel format structure. - * - * \param format the SDL_PixelFormat structure that will use the palette - * \param palette the SDL_Palette structure that will be used - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AllocPalette - * \sa SDL_FreePalette - */ -extern DECLSPEC int SDLCALL SDL_SetPixelFormatPalette(SDL_PixelFormat * format, - SDL_Palette *palette); - -/** - * Set a range of colors in a palette. - * - * \param palette the SDL_Palette structure to modify - * \param colors an array of SDL_Color structures to copy into the palette - * \param firstcolor the index of the first palette entry to modify - * \param ncolors the number of entries to modify - * \returns 0 on success or a negative error code if not all of the colors - * could be set; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AllocPalette - * \sa SDL_CreateRGBSurface - */ -extern DECLSPEC int SDLCALL SDL_SetPaletteColors(SDL_Palette * palette, - const SDL_Color * colors, - int firstcolor, int ncolors); - -/** - * Free a palette created with SDL_AllocPalette(). - * - * \param palette the SDL_Palette structure to be freed - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AllocPalette - */ -extern DECLSPEC void SDLCALL SDL_FreePalette(SDL_Palette * palette); - -/** - * Map an RGB triple to an opaque pixel value for a given pixel format. - * - * This function maps the RGB color value to the specified pixel format and - * returns the pixel value best approximating the given RGB color value for - * the given pixel format. - * - * If the format has a palette (8-bit) the index of the closest matching color - * in the palette will be returned. - * - * If the specified pixel format has an alpha component it will be returned as - * all 1 bits (fully opaque). - * - * If the pixel format bpp (color depth) is less than 32-bpp then the unused - * upper bits of the return value can safely be ignored (e.g., with a 16-bpp - * format the return value can be assigned to a Uint16, and similarly a Uint8 - * for an 8-bpp format). - * - * \param format an SDL_PixelFormat structure describing the pixel format - * \param r the red component of the pixel in the range 0-255 - * \param g the green component of the pixel in the range 0-255 - * \param b the blue component of the pixel in the range 0-255 - * \returns a pixel value - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRGB - * \sa SDL_GetRGBA - * \sa SDL_MapRGBA - */ -extern DECLSPEC Uint32 SDLCALL SDL_MapRGB(const SDL_PixelFormat * format, - Uint8 r, Uint8 g, Uint8 b); - -/** - * Map an RGBA quadruple to a pixel value for a given pixel format. - * - * This function maps the RGBA color value to the specified pixel format and - * returns the pixel value best approximating the given RGBA color value for - * the given pixel format. - * - * If the specified pixel format has no alpha component the alpha value will - * be ignored (as it will be in formats with a palette). - * - * If the format has a palette (8-bit) the index of the closest matching color - * in the palette will be returned. - * - * If the pixel format bpp (color depth) is less than 32-bpp then the unused - * upper bits of the return value can safely be ignored (e.g., with a 16-bpp - * format the return value can be assigned to a Uint16, and similarly a Uint8 - * for an 8-bpp format). - * - * \param format an SDL_PixelFormat structure describing the format of the - * pixel - * \param r the red component of the pixel in the range 0-255 - * \param g the green component of the pixel in the range 0-255 - * \param b the blue component of the pixel in the range 0-255 - * \param a the alpha component of the pixel in the range 0-255 - * \returns a pixel value - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRGB - * \sa SDL_GetRGBA - * \sa SDL_MapRGB - */ -extern DECLSPEC Uint32 SDLCALL SDL_MapRGBA(const SDL_PixelFormat * format, - Uint8 r, Uint8 g, Uint8 b, - Uint8 a); - -/** - * Get RGB values from a pixel in the specified format. - * - * This function uses the entire 8-bit [0..255] range when converting color - * components from pixel formats with less than 8-bits per RGB component - * (e.g., a completely white pixel in 16-bit RGB565 format would return [0xff, - * 0xff, 0xff] not [0xf8, 0xfc, 0xf8]). - * - * \param pixel a pixel value - * \param format an SDL_PixelFormat structure describing the format of the - * pixel - * \param r a pointer filled in with the red component - * \param g a pointer filled in with the green component - * \param b a pointer filled in with the blue component - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRGBA - * \sa SDL_MapRGB - * \sa SDL_MapRGBA - */ -extern DECLSPEC void SDLCALL SDL_GetRGB(Uint32 pixel, - const SDL_PixelFormat * format, - Uint8 * r, Uint8 * g, Uint8 * b); - -/** - * Get RGBA values from a pixel in the specified format. - * - * This function uses the entire 8-bit [0..255] range when converting color - * components from pixel formats with less than 8-bits per RGB component - * (e.g., a completely white pixel in 16-bit RGB565 format would return [0xff, - * 0xff, 0xff] not [0xf8, 0xfc, 0xf8]). - * - * If the surface has no alpha component, the alpha will be returned as 0xff - * (100% opaque). - * - * \param pixel a pixel value - * \param format an SDL_PixelFormat structure describing the format of the - * pixel - * \param r a pointer filled in with the red component - * \param g a pointer filled in with the green component - * \param b a pointer filled in with the blue component - * \param a a pointer filled in with the alpha component - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRGB - * \sa SDL_MapRGB - * \sa SDL_MapRGBA - */ -extern DECLSPEC void SDLCALL SDL_GetRGBA(Uint32 pixel, - const SDL_PixelFormat * format, - Uint8 * r, Uint8 * g, Uint8 * b, - Uint8 * a); - -/** - * Calculate a 256 entry gamma ramp for a gamma value. - * - * \param gamma a gamma value where 0.0 is black and 1.0 is identity - * \param ramp an array of 256 values filled in with the gamma ramp - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetWindowGammaRamp - */ -extern DECLSPEC void SDLCALL SDL_CalculateGammaRamp(float gamma, Uint16 * ramp); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_pixels_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_platform.h b/release/SDL2.framework/Versions/A/Headers/SDL_platform.h deleted file mode 100644 index 77f35ec..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_platform.h +++ /dev/null @@ -1,261 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_platform.h - * - * Try to get a standard set of platform defines. - */ - -#ifndef SDL_platform_h_ -#define SDL_platform_h_ - -#if defined(_AIX) -#undef __AIX__ -#define __AIX__ 1 -#endif -#if defined(__HAIKU__) -#undef __HAIKU__ -#define __HAIKU__ 1 -#endif -#if defined(bsdi) || defined(__bsdi) || defined(__bsdi__) -#undef __BSDI__ -#define __BSDI__ 1 -#endif -#if defined(_arch_dreamcast) -#undef __DREAMCAST__ -#define __DREAMCAST__ 1 -#endif -#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) -#undef __FREEBSD__ -#define __FREEBSD__ 1 -#endif -#if defined(hpux) || defined(__hpux) || defined(__hpux__) -#undef __HPUX__ -#define __HPUX__ 1 -#endif -#if defined(sgi) || defined(__sgi) || defined(__sgi__) || defined(_SGI_SOURCE) -#undef __IRIX__ -#define __IRIX__ 1 -#endif -#if (defined(linux) || defined(__linux) || defined(__linux__)) -#undef __LINUX__ -#define __LINUX__ 1 -#endif -#if defined(ANDROID) || defined(__ANDROID__) -#undef __ANDROID__ -#undef __LINUX__ /* do we need to do this? */ -#define __ANDROID__ 1 -#endif -#if defined(__NGAGE__) -#undef __NGAGE__ -#define __NGAGE__ 1 -#endif - -#if defined(__APPLE__) -/* lets us know what version of Mac OS X we're compiling on */ -#include -#include - -/* Fix building with older SDKs that don't define these - See this for more information: - https://stackoverflow.com/questions/12132933/preprocessor-macro-for-os-x-targets -*/ -#ifndef TARGET_OS_MACCATALYST -#define TARGET_OS_MACCATALYST 0 -#endif -#ifndef TARGET_OS_IOS -#define TARGET_OS_IOS 0 -#endif -#ifndef TARGET_OS_IPHONE -#define TARGET_OS_IPHONE 0 -#endif -#ifndef TARGET_OS_TV -#define TARGET_OS_TV 0 -#endif -#ifndef TARGET_OS_SIMULATOR -#define TARGET_OS_SIMULATOR 0 -#endif - -#if TARGET_OS_TV -#undef __TVOS__ -#define __TVOS__ 1 -#endif -#if TARGET_OS_IPHONE -/* if compiling for iOS */ -#undef __IPHONEOS__ -#define __IPHONEOS__ 1 -#undef __MACOSX__ -#else -/* if not compiling for iOS */ -#undef __MACOSX__ -#define __MACOSX__ 1 -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1070 -# error SDL for Mac OS X only supports deploying on 10.7 and above. -#endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1070 */ -#endif /* TARGET_OS_IPHONE */ -#endif /* defined(__APPLE__) */ - -#if defined(__NetBSD__) -#undef __NETBSD__ -#define __NETBSD__ 1 -#endif -#if defined(__OpenBSD__) -#undef __OPENBSD__ -#define __OPENBSD__ 1 -#endif -#if defined(__OS2__) || defined(__EMX__) -#undef __OS2__ -#define __OS2__ 1 -#endif -#if defined(osf) || defined(__osf) || defined(__osf__) || defined(_OSF_SOURCE) -#undef __OSF__ -#define __OSF__ 1 -#endif -#if defined(__QNXNTO__) -#undef __QNXNTO__ -#define __QNXNTO__ 1 -#endif -#if defined(riscos) || defined(__riscos) || defined(__riscos__) -#undef __RISCOS__ -#define __RISCOS__ 1 -#endif -#if defined(__sun) && defined(__SVR4) -#undef __SOLARIS__ -#define __SOLARIS__ 1 -#endif - -#if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__) -/* Try to find out if we're compiling for WinRT, GDK or non-WinRT/GDK */ -#if defined(_MSC_VER) && defined(__has_include) -#if __has_include() -#define HAVE_WINAPIFAMILY_H 1 -#else -#define HAVE_WINAPIFAMILY_H 0 -#endif - -/* If _USING_V110_SDK71_ is defined it means we are using the Windows XP toolset. */ -#elif defined(_MSC_VER) && (_MSC_VER >= 1700 && !_USING_V110_SDK71_) /* _MSC_VER == 1700 for Visual Studio 2012 */ -#define HAVE_WINAPIFAMILY_H 1 -#else -#define HAVE_WINAPIFAMILY_H 0 -#endif - -#if HAVE_WINAPIFAMILY_H -#include -#define WINAPI_FAMILY_WINRT (!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)) -#else -#define WINAPI_FAMILY_WINRT 0 -#endif /* HAVE_WINAPIFAMILY_H */ - -#if WINAPI_FAMILY_WINRT -#undef __WINRT__ -#define __WINRT__ 1 -#elif defined(_GAMING_DESKTOP) /* GDK project configuration always defines _GAMING_XXX */ -#undef __WINGDK__ -#define __WINGDK__ 1 -#elif defined(_GAMING_XBOX_XBOXONE) -#undef __XBOXONE__ -#define __XBOXONE__ 1 -#elif defined(_GAMING_XBOX_SCARLETT) -#undef __XBOXSERIES__ -#define __XBOXSERIES__ 1 -#else -#undef __WINDOWS__ -#define __WINDOWS__ 1 -#endif -#endif /* defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) */ - -#if defined(__WINDOWS__) -#undef __WIN32__ -#define __WIN32__ 1 -#endif -/* This is to support generic "any GDK" separate from a platform-specific GDK */ -#if defined(__WINGDK__) || defined(__XBOXONE__) || defined(__XBOXSERIES__) -#undef __GDK__ -#define __GDK__ 1 -#endif -#if defined(__PSP__) -#undef __PSP__ -#define __PSP__ 1 -#endif -#if defined(PS2) -#define __PS2__ 1 -#endif - -/* The NACL compiler defines __native_client__ and __pnacl__ - * Ref: http://www.chromium.org/nativeclient/pnacl/stability-of-the-pnacl-bitcode-abi - */ -#if defined(__native_client__) -#undef __LINUX__ -#undef __NACL__ -#define __NACL__ 1 -#endif -#if defined(__pnacl__) -#undef __LINUX__ -#undef __PNACL__ -#define __PNACL__ 1 -/* PNACL with newlib supports static linking only */ -#define __SDL_NOGETPROCADDR__ -#endif - -#if defined(__vita__) -#define __VITA__ 1 -#endif - -#if defined(__3DS__) -#undef __3DS__ -#define __3DS__ 1 -#endif - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Get the name of the platform. - * - * Here are the names returned for some (but not all) supported platforms: - * - * - "Windows" - * - "Mac OS X" - * - "Linux" - * - "iOS" - * - "Android" - * - * \returns the name of the platform. If the correct platform name is not - * available, returns a string beginning with the text "Unknown". - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC const char * SDLCALL SDL_GetPlatform (void); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_platform_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_quit.h b/release/SDL2.framework/Versions/A/Headers/SDL_quit.h deleted file mode 100644 index 253fc98..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_quit.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_quit.h - * - * Include file for SDL quit event handling. - */ - -#ifndef SDL_quit_h_ -#define SDL_quit_h_ - -#include -#include - -/** - * \file SDL_quit.h - * - * An ::SDL_QUIT event is generated when the user tries to close the application - * window. If it is ignored or filtered out, the window will remain open. - * If it is not ignored or filtered, it is queued normally and the window - * is allowed to close. When the window is closed, screen updates will - * complete, but have no effect. - * - * SDL_Init() installs signal handlers for SIGINT (keyboard interrupt) - * and SIGTERM (system termination request), if handlers do not already - * exist, that generate ::SDL_QUIT events as well. There is no way - * to determine the cause of an ::SDL_QUIT event, but setting a signal - * handler in your application will override the default generation of - * quit events for that signal. - * - * \sa SDL_Quit() - */ - -/* There are no functions directly affecting the quit event */ - -#define SDL_QuitRequested() \ - (SDL_PumpEvents(), (SDL_PeepEvents(NULL,0,SDL_PEEKEVENT,SDL_QUIT,SDL_QUIT) > 0)) - -#endif /* SDL_quit_h_ */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_rect.h b/release/SDL2.framework/Versions/A/Headers/SDL_rect.h deleted file mode 100644 index fcce5ae..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_rect.h +++ /dev/null @@ -1,376 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_rect.h - * - * Header file for SDL_rect definition and management functions. - */ - -#ifndef SDL_rect_h_ -#define SDL_rect_h_ - -#include -#include -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * The structure that defines a point (integer) - * - * \sa SDL_EnclosePoints - * \sa SDL_PointInRect - */ -typedef struct SDL_Point -{ - int x; - int y; -} SDL_Point; - -/** - * The structure that defines a point (floating point) - * - * \sa SDL_EncloseFPoints - * \sa SDL_PointInFRect - */ -typedef struct SDL_FPoint -{ - float x; - float y; -} SDL_FPoint; - - -/** - * A rectangle, with the origin at the upper left (integer). - * - * \sa SDL_RectEmpty - * \sa SDL_RectEquals - * \sa SDL_HasIntersection - * \sa SDL_IntersectRect - * \sa SDL_IntersectRectAndLine - * \sa SDL_UnionRect - * \sa SDL_EnclosePoints - */ -typedef struct SDL_Rect -{ - int x, y; - int w, h; -} SDL_Rect; - - -/** - * A rectangle, with the origin at the upper left (floating point). - * - * \sa SDL_FRectEmpty - * \sa SDL_FRectEquals - * \sa SDL_FRectEqualsEpsilon - * \sa SDL_HasIntersectionF - * \sa SDL_IntersectFRect - * \sa SDL_IntersectFRectAndLine - * \sa SDL_UnionFRect - * \sa SDL_EncloseFPoints - * \sa SDL_PointInFRect - */ -typedef struct SDL_FRect -{ - float x; - float y; - float w; - float h; -} SDL_FRect; - - -/** - * Returns true if point resides inside a rectangle. - */ -SDL_FORCE_INLINE SDL_bool SDL_PointInRect(const SDL_Point *p, const SDL_Rect *r) -{ - return ( (p->x >= r->x) && (p->x < (r->x + r->w)) && - (p->y >= r->y) && (p->y < (r->y + r->h)) ) ? SDL_TRUE : SDL_FALSE; -} - -/** - * Returns true if the rectangle has no area. - */ -SDL_FORCE_INLINE SDL_bool SDL_RectEmpty(const SDL_Rect *r) -{ - return ((!r) || (r->w <= 0) || (r->h <= 0)) ? SDL_TRUE : SDL_FALSE; -} - -/** - * Returns true if the two rectangles are equal. - */ -SDL_FORCE_INLINE SDL_bool SDL_RectEquals(const SDL_Rect *a, const SDL_Rect *b) -{ - return (a && b && (a->x == b->x) && (a->y == b->y) && - (a->w == b->w) && (a->h == b->h)) ? SDL_TRUE : SDL_FALSE; -} - -/** - * Determine whether two rectangles intersect. - * - * If either pointer is NULL the function will return SDL_FALSE. - * - * \param A an SDL_Rect structure representing the first rectangle - * \param B an SDL_Rect structure representing the second rectangle - * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_IntersectRect - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasIntersection(const SDL_Rect * A, - const SDL_Rect * B); - -/** - * Calculate the intersection of two rectangles. - * - * If `result` is NULL then this function will return SDL_FALSE. - * - * \param A an SDL_Rect structure representing the first rectangle - * \param B an SDL_Rect structure representing the second rectangle - * \param result an SDL_Rect structure filled in with the intersection of - * rectangles `A` and `B` - * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HasIntersection - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRect(const SDL_Rect * A, - const SDL_Rect * B, - SDL_Rect * result); - -/** - * Calculate the union of two rectangles. - * - * \param A an SDL_Rect structure representing the first rectangle - * \param B an SDL_Rect structure representing the second rectangle - * \param result an SDL_Rect structure filled in with the union of rectangles - * `A` and `B` - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC void SDLCALL SDL_UnionRect(const SDL_Rect * A, - const SDL_Rect * B, - SDL_Rect * result); - -/** - * Calculate a minimal rectangle enclosing a set of points. - * - * If `clip` is not NULL then only points inside of the clipping rectangle are - * considered. - * - * \param points an array of SDL_Point structures representing points to be - * enclosed - * \param count the number of structures in the `points` array - * \param clip an SDL_Rect used for clipping or NULL to enclose all points - * \param result an SDL_Rect structure filled in with the minimal enclosing - * rectangle - * \returns SDL_TRUE if any points were enclosed or SDL_FALSE if all the - * points were outside of the clipping rectangle. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_EnclosePoints(const SDL_Point * points, - int count, - const SDL_Rect * clip, - SDL_Rect * result); - -/** - * Calculate the intersection of a rectangle and line segment. - * - * This function is used to clip a line segment to a rectangle. A line segment - * contained entirely within the rectangle or that does not intersect will - * remain unchanged. A line segment that crosses the rectangle at either or - * both ends will be clipped to the boundary of the rectangle and the new - * coordinates saved in `X1`, `Y1`, `X2`, and/or `Y2` as necessary. - * - * \param rect an SDL_Rect structure representing the rectangle to intersect - * \param X1 a pointer to the starting X-coordinate of the line - * \param Y1 a pointer to the starting Y-coordinate of the line - * \param X2 a pointer to the ending X-coordinate of the line - * \param Y2 a pointer to the ending Y-coordinate of the line - * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRectAndLine(const SDL_Rect * - rect, int *X1, - int *Y1, int *X2, - int *Y2); - - -/* SDL_FRect versions... */ - -/** - * Returns true if point resides inside a rectangle. - */ -SDL_FORCE_INLINE SDL_bool SDL_PointInFRect(const SDL_FPoint *p, const SDL_FRect *r) -{ - return ( (p->x >= r->x) && (p->x < (r->x + r->w)) && - (p->y >= r->y) && (p->y < (r->y + r->h)) ) ? SDL_TRUE : SDL_FALSE; -} - -/** - * Returns true if the rectangle has no area. - */ -SDL_FORCE_INLINE SDL_bool SDL_FRectEmpty(const SDL_FRect *r) -{ - return ((!r) || (r->w <= 0.0f) || (r->h <= 0.0f)) ? SDL_TRUE : SDL_FALSE; -} - -/** - * Returns true if the two rectangles are equal, within some given epsilon. - * - * \since This function is available since SDL 2.0.22. - */ -SDL_FORCE_INLINE SDL_bool SDL_FRectEqualsEpsilon(const SDL_FRect *a, const SDL_FRect *b, const float epsilon) -{ - return (a && b && ((a == b) || - ((SDL_fabsf(a->x - b->x) <= epsilon) && - (SDL_fabsf(a->y - b->y) <= epsilon) && - (SDL_fabsf(a->w - b->w) <= epsilon) && - (SDL_fabsf(a->h - b->h) <= epsilon)))) - ? SDL_TRUE : SDL_FALSE; -} - -/** - * Returns true if the two rectangles are equal, using a default epsilon. - * - * \since This function is available since SDL 2.0.22. - */ -SDL_FORCE_INLINE SDL_bool SDL_FRectEquals(const SDL_FRect *a, const SDL_FRect *b) -{ - return SDL_FRectEqualsEpsilon(a, b, SDL_FLT_EPSILON); -} - -/** - * Determine whether two rectangles intersect with float precision. - * - * If either pointer is NULL the function will return SDL_FALSE. - * - * \param A an SDL_FRect structure representing the first rectangle - * \param B an SDL_FRect structure representing the second rectangle - * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.22. - * - * \sa SDL_IntersectRect - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasIntersectionF(const SDL_FRect * A, - const SDL_FRect * B); - -/** - * Calculate the intersection of two rectangles with float precision. - * - * If `result` is NULL then this function will return SDL_FALSE. - * - * \param A an SDL_FRect structure representing the first rectangle - * \param B an SDL_FRect structure representing the second rectangle - * \param result an SDL_FRect structure filled in with the intersection of - * rectangles `A` and `B` - * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.22. - * - * \sa SDL_HasIntersectionF - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IntersectFRect(const SDL_FRect * A, - const SDL_FRect * B, - SDL_FRect * result); - -/** - * Calculate the union of two rectangles with float precision. - * - * \param A an SDL_FRect structure representing the first rectangle - * \param B an SDL_FRect structure representing the second rectangle - * \param result an SDL_FRect structure filled in with the union of rectangles - * `A` and `B` - * - * \since This function is available since SDL 2.0.22. - */ -extern DECLSPEC void SDLCALL SDL_UnionFRect(const SDL_FRect * A, - const SDL_FRect * B, - SDL_FRect * result); - -/** - * Calculate a minimal rectangle enclosing a set of points with float - * precision. - * - * If `clip` is not NULL then only points inside of the clipping rectangle are - * considered. - * - * \param points an array of SDL_FPoint structures representing points to be - * enclosed - * \param count the number of structures in the `points` array - * \param clip an SDL_FRect used for clipping or NULL to enclose all points - * \param result an SDL_FRect structure filled in with the minimal enclosing - * rectangle - * \returns SDL_TRUE if any points were enclosed or SDL_FALSE if all the - * points were outside of the clipping rectangle. - * - * \since This function is available since SDL 2.0.22. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_EncloseFPoints(const SDL_FPoint * points, - int count, - const SDL_FRect * clip, - SDL_FRect * result); - -/** - * Calculate the intersection of a rectangle and line segment with float - * precision. - * - * This function is used to clip a line segment to a rectangle. A line segment - * contained entirely within the rectangle or that does not intersect will - * remain unchanged. A line segment that crosses the rectangle at either or - * both ends will be clipped to the boundary of the rectangle and the new - * coordinates saved in `X1`, `Y1`, `X2`, and/or `Y2` as necessary. - * - * \param rect an SDL_FRect structure representing the rectangle to intersect - * \param X1 a pointer to the starting X-coordinate of the line - * \param Y1 a pointer to the starting Y-coordinate of the line - * \param X2 a pointer to the ending X-coordinate of the line - * \param Y2 a pointer to the ending Y-coordinate of the line - * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.22. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IntersectFRectAndLine(const SDL_FRect * - rect, float *X1, - float *Y1, float *X2, - float *Y2); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_rect_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_render.h b/release/SDL2.framework/Versions/A/Headers/SDL_render.h deleted file mode 100644 index b2b073b..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_render.h +++ /dev/null @@ -1,1924 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_render.h - * - * Header file for SDL 2D rendering functions. - * - * This API supports the following features: - * * single pixel points - * * single pixel lines - * * filled rectangles - * * texture images - * - * The primitives may be drawn in opaque, blended, or additive modes. - * - * The texture images may be drawn in opaque, blended, or additive modes. - * They can have an additional color tint or alpha modulation applied to - * them, and may also be stretched with linear interpolation. - * - * This API is designed to accelerate simple 2D operations. You may - * want more functionality such as polygons and particle effects and - * in that case you should use SDL's OpenGL/Direct3D support or one - * of the many good 3D engines. - * - * These functions must be called from the main thread. - * See this bug for details: http://bugzilla.libsdl.org/show_bug.cgi?id=1995 - */ - -#ifndef SDL_render_h_ -#define SDL_render_h_ - -#include -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Flags used when creating a rendering context - */ -typedef enum -{ - SDL_RENDERER_SOFTWARE = 0x00000001, /**< The renderer is a software fallback */ - SDL_RENDERER_ACCELERATED = 0x00000002, /**< The renderer uses hardware - acceleration */ - SDL_RENDERER_PRESENTVSYNC = 0x00000004, /**< Present is synchronized - with the refresh rate */ - SDL_RENDERER_TARGETTEXTURE = 0x00000008 /**< The renderer supports - rendering to texture */ -} SDL_RendererFlags; - -/** - * Information on the capabilities of a render driver or context. - */ -typedef struct SDL_RendererInfo -{ - const char *name; /**< The name of the renderer */ - Uint32 flags; /**< Supported ::SDL_RendererFlags */ - Uint32 num_texture_formats; /**< The number of available texture formats */ - Uint32 texture_formats[16]; /**< The available texture formats */ - int max_texture_width; /**< The maximum texture width */ - int max_texture_height; /**< The maximum texture height */ -} SDL_RendererInfo; - -/** - * Vertex structure - */ -typedef struct SDL_Vertex -{ - SDL_FPoint position; /**< Vertex position, in SDL_Renderer coordinates */ - SDL_Color color; /**< Vertex color */ - SDL_FPoint tex_coord; /**< Normalized texture coordinates, if needed */ -} SDL_Vertex; - -/** - * The scaling mode for a texture. - */ -typedef enum -{ - SDL_ScaleModeNearest, /**< nearest pixel sampling */ - SDL_ScaleModeLinear, /**< linear filtering */ - SDL_ScaleModeBest /**< anisotropic filtering */ -} SDL_ScaleMode; - -/** - * The access pattern allowed for a texture. - */ -typedef enum -{ - SDL_TEXTUREACCESS_STATIC, /**< Changes rarely, not lockable */ - SDL_TEXTUREACCESS_STREAMING, /**< Changes frequently, lockable */ - SDL_TEXTUREACCESS_TARGET /**< Texture can be used as a render target */ -} SDL_TextureAccess; - -/** - * The texture channel modulation used in SDL_RenderCopy(). - */ -typedef enum -{ - SDL_TEXTUREMODULATE_NONE = 0x00000000, /**< No modulation */ - SDL_TEXTUREMODULATE_COLOR = 0x00000001, /**< srcC = srcC * color */ - SDL_TEXTUREMODULATE_ALPHA = 0x00000002 /**< srcA = srcA * alpha */ -} SDL_TextureModulate; - -/** - * Flip constants for SDL_RenderCopyEx - */ -typedef enum -{ - SDL_FLIP_NONE = 0x00000000, /**< Do not flip */ - SDL_FLIP_HORIZONTAL = 0x00000001, /**< flip horizontally */ - SDL_FLIP_VERTICAL = 0x00000002 /**< flip vertically */ -} SDL_RendererFlip; - -/** - * A structure representing rendering state - */ -struct SDL_Renderer; -typedef struct SDL_Renderer SDL_Renderer; - -/** - * An efficient driver-specific representation of pixel data - */ -struct SDL_Texture; -typedef struct SDL_Texture SDL_Texture; - -/* Function prototypes */ - -/** - * Get the number of 2D rendering drivers available for the current display. - * - * A render driver is a set of code that handles rendering and texture - * management on a particular display. Normally there is only one, but some - * drivers may have several available with different capabilities. - * - * There may be none if SDL was compiled without render support. - * - * \returns a number >= 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRenderer - * \sa SDL_GetRenderDriverInfo - */ -extern DECLSPEC int SDLCALL SDL_GetNumRenderDrivers(void); - -/** - * Get info about a specific 2D rendering driver for the current display. - * - * \param index the index of the driver to query information about - * \param info an SDL_RendererInfo structure to be filled with information on - * the rendering driver - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRenderer - * \sa SDL_GetNumRenderDrivers - */ -extern DECLSPEC int SDLCALL SDL_GetRenderDriverInfo(int index, - SDL_RendererInfo * info); - -/** - * Create a window and default renderer. - * - * \param width the width of the window - * \param height the height of the window - * \param window_flags the flags used to create the window (see - * SDL_CreateWindow()) - * \param window a pointer filled with the window, or NULL on error - * \param renderer a pointer filled with the renderer, or NULL on error - * \returns 0 on success, or -1 on error; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRenderer - * \sa SDL_CreateWindow - */ -extern DECLSPEC int SDLCALL SDL_CreateWindowAndRenderer( - int width, int height, Uint32 window_flags, - SDL_Window **window, SDL_Renderer **renderer); - - -/** - * Create a 2D rendering context for a window. - * - * \param window the window where rendering is displayed - * \param index the index of the rendering driver to initialize, or -1 to - * initialize the first one supporting the requested flags - * \param flags 0, or one or more SDL_RendererFlags OR'd together - * \returns a valid rendering context or NULL if there was an error; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateSoftwareRenderer - * \sa SDL_DestroyRenderer - * \sa SDL_GetNumRenderDrivers - * \sa SDL_GetRendererInfo - */ -extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRenderer(SDL_Window * window, - int index, Uint32 flags); - -/** - * Create a 2D software rendering context for a surface. - * - * Two other API which can be used to create SDL_Renderer: - * SDL_CreateRenderer() and SDL_CreateWindowAndRenderer(). These can _also_ - * create a software renderer, but they are intended to be used with an - * SDL_Window as the final destination and not an SDL_Surface. - * - * \param surface the SDL_Surface structure representing the surface where - * rendering is done - * \returns a valid rendering context or NULL if there was an error; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRenderer - * \sa SDL_CreateWindowRenderer - * \sa SDL_DestroyRenderer - */ -extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateSoftwareRenderer(SDL_Surface * surface); - -/** - * Get the renderer associated with a window. - * - * \param window the window to query - * \returns the rendering context on success or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRenderer - */ -extern DECLSPEC SDL_Renderer * SDLCALL SDL_GetRenderer(SDL_Window * window); - -/** - * Get the window associated with a renderer. - * - * \param renderer the renderer to query - * \returns the window on success or NULL on failure; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.22. - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_RenderGetWindow(SDL_Renderer *renderer); - -/** - * Get information about a rendering context. - * - * \param renderer the rendering context - * \param info an SDL_RendererInfo structure filled with information about the - * current renderer - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRenderer - */ -extern DECLSPEC int SDLCALL SDL_GetRendererInfo(SDL_Renderer * renderer, - SDL_RendererInfo * info); - -/** - * Get the output size in pixels of a rendering context. - * - * Due to high-dpi displays, you might end up with a rendering context that - * has more pixels than the window that contains it, so use this instead of - * SDL_GetWindowSize() to decide how much drawing area you have. - * - * \param renderer the rendering context - * \param w an int filled with the width - * \param h an int filled with the height - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRenderer - */ -extern DECLSPEC int SDLCALL SDL_GetRendererOutputSize(SDL_Renderer * renderer, - int *w, int *h); - -/** - * Create a texture for a rendering context. - * - * You can set the texture scaling method by setting - * `SDL_HINT_RENDER_SCALE_QUALITY` before creating the texture. - * - * \param renderer the rendering context - * \param format one of the enumerated values in SDL_PixelFormatEnum - * \param access one of the enumerated values in SDL_TextureAccess - * \param w the width of the texture in pixels - * \param h the height of the texture in pixels - * \returns a pointer to the created texture or NULL if no rendering context - * was active, the format was unsupported, or the width or height - * were out of range; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateTextureFromSurface - * \sa SDL_DestroyTexture - * \sa SDL_QueryTexture - * \sa SDL_UpdateTexture - */ -extern DECLSPEC SDL_Texture * SDLCALL SDL_CreateTexture(SDL_Renderer * renderer, - Uint32 format, - int access, int w, - int h); - -/** - * Create a texture from an existing surface. - * - * The surface is not modified or freed by this function. - * - * The SDL_TextureAccess hint for the created texture is - * `SDL_TEXTUREACCESS_STATIC`. - * - * The pixel format of the created texture may be different from the pixel - * format of the surface. Use SDL_QueryTexture() to query the pixel format of - * the texture. - * - * \param renderer the rendering context - * \param surface the SDL_Surface structure containing pixel data used to fill - * the texture - * \returns the created texture or NULL on failure; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateTexture - * \sa SDL_DestroyTexture - * \sa SDL_QueryTexture - */ -extern DECLSPEC SDL_Texture * SDLCALL SDL_CreateTextureFromSurface(SDL_Renderer * renderer, SDL_Surface * surface); - -/** - * Query the attributes of a texture. - * - * \param texture the texture to query - * \param format a pointer filled in with the raw format of the texture; the - * actual format may differ, but pixel transfers will use this - * format (one of the SDL_PixelFormatEnum values). This argument - * can be NULL if you don't need this information. - * \param access a pointer filled in with the actual access to the texture - * (one of the SDL_TextureAccess values). This argument can be - * NULL if you don't need this information. - * \param w a pointer filled in with the width of the texture in pixels. This - * argument can be NULL if you don't need this information. - * \param h a pointer filled in with the height of the texture in pixels. This - * argument can be NULL if you don't need this information. - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateTexture - */ -extern DECLSPEC int SDLCALL SDL_QueryTexture(SDL_Texture * texture, - Uint32 * format, int *access, - int *w, int *h); - -/** - * Set an additional color value multiplied into render copy operations. - * - * When this texture is rendered, during the copy operation each source color - * channel is modulated by the appropriate color value according to the - * following formula: - * - * `srcC = srcC * (color / 255)` - * - * Color modulation is not always supported by the renderer; it will return -1 - * if color modulation is not supported. - * - * \param texture the texture to update - * \param r the red color value multiplied into copy operations - * \param g the green color value multiplied into copy operations - * \param b the blue color value multiplied into copy operations - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetTextureColorMod - * \sa SDL_SetTextureAlphaMod - */ -extern DECLSPEC int SDLCALL SDL_SetTextureColorMod(SDL_Texture * texture, - Uint8 r, Uint8 g, Uint8 b); - - -/** - * Get the additional color value multiplied into render copy operations. - * - * \param texture the texture to query - * \param r a pointer filled in with the current red color value - * \param g a pointer filled in with the current green color value - * \param b a pointer filled in with the current blue color value - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetTextureAlphaMod - * \sa SDL_SetTextureColorMod - */ -extern DECLSPEC int SDLCALL SDL_GetTextureColorMod(SDL_Texture * texture, - Uint8 * r, Uint8 * g, - Uint8 * b); - -/** - * Set an additional alpha value multiplied into render copy operations. - * - * When this texture is rendered, during the copy operation the source alpha - * value is modulated by this alpha value according to the following formula: - * - * `srcA = srcA * (alpha / 255)` - * - * Alpha modulation is not always supported by the renderer; it will return -1 - * if alpha modulation is not supported. - * - * \param texture the texture to update - * \param alpha the source alpha value multiplied into copy operations - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetTextureAlphaMod - * \sa SDL_SetTextureColorMod - */ -extern DECLSPEC int SDLCALL SDL_SetTextureAlphaMod(SDL_Texture * texture, - Uint8 alpha); - -/** - * Get the additional alpha value multiplied into render copy operations. - * - * \param texture the texture to query - * \param alpha a pointer filled in with the current alpha value - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetTextureColorMod - * \sa SDL_SetTextureAlphaMod - */ -extern DECLSPEC int SDLCALL SDL_GetTextureAlphaMod(SDL_Texture * texture, - Uint8 * alpha); - -/** - * Set the blend mode for a texture, used by SDL_RenderCopy(). - * - * If the blend mode is not supported, the closest supported mode is chosen - * and this function returns -1. - * - * \param texture the texture to update - * \param blendMode the SDL_BlendMode to use for texture blending - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetTextureBlendMode - * \sa SDL_RenderCopy - */ -extern DECLSPEC int SDLCALL SDL_SetTextureBlendMode(SDL_Texture * texture, - SDL_BlendMode blendMode); - -/** - * Get the blend mode used for texture copy operations. - * - * \param texture the texture to query - * \param blendMode a pointer filled in with the current SDL_BlendMode - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetTextureBlendMode - */ -extern DECLSPEC int SDLCALL SDL_GetTextureBlendMode(SDL_Texture * texture, - SDL_BlendMode *blendMode); - -/** - * Set the scale mode used for texture scale operations. - * - * If the scale mode is not supported, the closest supported mode is chosen. - * - * \param texture The texture to update. - * \param scaleMode the SDL_ScaleMode to use for texture scaling. - * \returns 0 on success, or -1 if the texture is not valid. - * - * \since This function is available since SDL 2.0.12. - * - * \sa SDL_GetTextureScaleMode - */ -extern DECLSPEC int SDLCALL SDL_SetTextureScaleMode(SDL_Texture * texture, - SDL_ScaleMode scaleMode); - -/** - * Get the scale mode used for texture scale operations. - * - * \param texture the texture to query. - * \param scaleMode a pointer filled in with the current scale mode. - * \return 0 on success, or -1 if the texture is not valid. - * - * \since This function is available since SDL 2.0.12. - * - * \sa SDL_SetTextureScaleMode - */ -extern DECLSPEC int SDLCALL SDL_GetTextureScaleMode(SDL_Texture * texture, - SDL_ScaleMode *scaleMode); - -/** - * Associate a user-specified pointer with a texture. - * - * \param texture the texture to update. - * \param userdata the pointer to associate with the texture. - * \returns 0 on success, or -1 if the texture is not valid. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_GetTextureUserData - */ -extern DECLSPEC int SDLCALL SDL_SetTextureUserData(SDL_Texture * texture, - void *userdata); - -/** - * Get the user-specified pointer associated with a texture - * - * \param texture the texture to query. - * \return the pointer associated with the texture, or NULL if the texture is - * not valid. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_SetTextureUserData - */ -extern DECLSPEC void * SDLCALL SDL_GetTextureUserData(SDL_Texture * texture); - -/** - * Update the given texture rectangle with new pixel data. - * - * The pixel data must be in the pixel format of the texture. Use - * SDL_QueryTexture() to query the pixel format of the texture. - * - * This is a fairly slow function, intended for use with static textures that - * do not change often. - * - * If the texture is intended to be updated often, it is preferred to create - * the texture as streaming and use the locking functions referenced below. - * While this function will work with streaming textures, for optimization - * reasons you may not get the pixels back if you lock the texture afterward. - * - * \param texture the texture to update - * \param rect an SDL_Rect structure representing the area to update, or NULL - * to update the entire texture - * \param pixels the raw pixel data in the format of the texture - * \param pitch the number of bytes in a row of pixel data, including padding - * between lines - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateTexture - * \sa SDL_LockTexture - * \sa SDL_UnlockTexture - */ -extern DECLSPEC int SDLCALL SDL_UpdateTexture(SDL_Texture * texture, - const SDL_Rect * rect, - const void *pixels, int pitch); - -/** - * Update a rectangle within a planar YV12 or IYUV texture with new pixel - * data. - * - * You can use SDL_UpdateTexture() as long as your pixel data is a contiguous - * block of Y and U/V planes in the proper order, but this function is - * available if your pixel data is not contiguous. - * - * \param texture the texture to update - * \param rect a pointer to the rectangle of pixels to update, or NULL to - * update the entire texture - * \param Yplane the raw pixel data for the Y plane - * \param Ypitch the number of bytes between rows of pixel data for the Y - * plane - * \param Uplane the raw pixel data for the U plane - * \param Upitch the number of bytes between rows of pixel data for the U - * plane - * \param Vplane the raw pixel data for the V plane - * \param Vpitch the number of bytes between rows of pixel data for the V - * plane - * \returns 0 on success or -1 if the texture is not valid; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.1. - * - * \sa SDL_UpdateTexture - */ -extern DECLSPEC int SDLCALL SDL_UpdateYUVTexture(SDL_Texture * texture, - const SDL_Rect * rect, - const Uint8 *Yplane, int Ypitch, - const Uint8 *Uplane, int Upitch, - const Uint8 *Vplane, int Vpitch); - -/** - * Update a rectangle within a planar NV12 or NV21 texture with new pixels. - * - * You can use SDL_UpdateTexture() as long as your pixel data is a contiguous - * block of NV12/21 planes in the proper order, but this function is available - * if your pixel data is not contiguous. - * - * \param texture the texture to update - * \param rect a pointer to the rectangle of pixels to update, or NULL to - * update the entire texture. - * \param Yplane the raw pixel data for the Y plane. - * \param Ypitch the number of bytes between rows of pixel data for the Y - * plane. - * \param UVplane the raw pixel data for the UV plane. - * \param UVpitch the number of bytes between rows of pixel data for the UV - * plane. - * \return 0 on success, or -1 if the texture is not valid. - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC int SDLCALL SDL_UpdateNVTexture(SDL_Texture * texture, - const SDL_Rect * rect, - const Uint8 *Yplane, int Ypitch, - const Uint8 *UVplane, int UVpitch); - -/** - * Lock a portion of the texture for **write-only** pixel access. - * - * As an optimization, the pixels made available for editing don't necessarily - * contain the old texture data. This is a write-only operation, and if you - * need to keep a copy of the texture data you should do that at the - * application level. - * - * You must use SDL_UnlockTexture() to unlock the pixels and apply any - * changes. - * - * \param texture the texture to lock for access, which was created with - * `SDL_TEXTUREACCESS_STREAMING` - * \param rect an SDL_Rect structure representing the area to lock for access; - * NULL to lock the entire texture - * \param pixels this is filled in with a pointer to the locked pixels, - * appropriately offset by the locked area - * \param pitch this is filled in with the pitch of the locked pixels; the - * pitch is the length of one row in bytes - * \returns 0 on success or a negative error code if the texture is not valid - * or was not created with `SDL_TEXTUREACCESS_STREAMING`; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_UnlockTexture - */ -extern DECLSPEC int SDLCALL SDL_LockTexture(SDL_Texture * texture, - const SDL_Rect * rect, - void **pixels, int *pitch); - -/** - * Lock a portion of the texture for **write-only** pixel access, and expose - * it as a SDL surface. - * - * Besides providing an SDL_Surface instead of raw pixel data, this function - * operates like SDL_LockTexture. - * - * As an optimization, the pixels made available for editing don't necessarily - * contain the old texture data. This is a write-only operation, and if you - * need to keep a copy of the texture data you should do that at the - * application level. - * - * You must use SDL_UnlockTexture() to unlock the pixels and apply any - * changes. - * - * The returned surface is freed internally after calling SDL_UnlockTexture() - * or SDL_DestroyTexture(). The caller should not free it. - * - * \param texture the texture to lock for access, which was created with - * `SDL_TEXTUREACCESS_STREAMING` - * \param rect a pointer to the rectangle to lock for access. If the rect is - * NULL, the entire texture will be locked - * \param surface this is filled in with an SDL surface representing the - * locked area - * \returns 0 on success, or -1 if the texture is not valid or was not created - * with `SDL_TEXTUREACCESS_STREAMING` - * - * \since This function is available since SDL 2.0.12. - * - * \sa SDL_LockTexture - * \sa SDL_UnlockTexture - */ -extern DECLSPEC int SDLCALL SDL_LockTextureToSurface(SDL_Texture *texture, - const SDL_Rect *rect, - SDL_Surface **surface); - -/** - * Unlock a texture, uploading the changes to video memory, if needed. - * - * **Warning**: Please note that SDL_LockTexture() is intended to be - * write-only; it will not guarantee the previous contents of the texture will - * be provided. You must fully initialize any area of a texture that you lock - * before unlocking it, as the pixels might otherwise be uninitialized memory. - * - * Which is to say: locking and immediately unlocking a texture can result in - * corrupted textures, depending on the renderer in use. - * - * \param texture a texture locked by SDL_LockTexture() - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LockTexture - */ -extern DECLSPEC void SDLCALL SDL_UnlockTexture(SDL_Texture * texture); - -/** - * Determine whether a renderer supports the use of render targets. - * - * \param renderer the renderer that will be checked - * \returns SDL_TRUE if supported or SDL_FALSE if not. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetRenderTarget - */ -extern DECLSPEC SDL_bool SDLCALL SDL_RenderTargetSupported(SDL_Renderer *renderer); - -/** - * Set a texture as the current rendering target. - * - * Before using this function, you should check the - * `SDL_RENDERER_TARGETTEXTURE` bit in the flags of SDL_RendererInfo to see if - * render targets are supported. - * - * The default render target is the window for which the renderer was created. - * To stop rendering to a texture and render to the window again, call this - * function with a NULL `texture`. - * - * \param renderer the rendering context - * \param texture the targeted texture, which must be created with the - * `SDL_TEXTUREACCESS_TARGET` flag, or NULL to render to the - * window instead of a texture. - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRenderTarget - */ -extern DECLSPEC int SDLCALL SDL_SetRenderTarget(SDL_Renderer *renderer, - SDL_Texture *texture); - -/** - * Get the current render target. - * - * The default render target is the window for which the renderer was created, - * and is reported a NULL here. - * - * \param renderer the rendering context - * \returns the current render target or NULL for the default render target. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetRenderTarget - */ -extern DECLSPEC SDL_Texture * SDLCALL SDL_GetRenderTarget(SDL_Renderer *renderer); - -/** - * Set a device independent resolution for rendering. - * - * This function uses the viewport and scaling functionality to allow a fixed - * logical resolution for rendering, regardless of the actual output - * resolution. If the actual output resolution doesn't have the same aspect - * ratio the output rendering will be centered within the output display. - * - * If the output display is a window, mouse and touch events in the window - * will be filtered and scaled so they seem to arrive within the logical - * resolution. The SDL_HINT_MOUSE_RELATIVE_SCALING hint controls whether - * relative motion events are also scaled. - * - * If this function results in scaling or subpixel drawing by the rendering - * backend, it will be handled using the appropriate quality hints. - * - * \param renderer the renderer for which resolution should be set - * \param w the width of the logical resolution - * \param h the height of the logical resolution - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderGetLogicalSize - */ -extern DECLSPEC int SDLCALL SDL_RenderSetLogicalSize(SDL_Renderer * renderer, int w, int h); - -/** - * Get device independent resolution for rendering. - * - * When using the main rendering target (eg no target texture is set): this - * may return 0 for `w` and `h` if the SDL_Renderer has never had its logical - * size set by SDL_RenderSetLogicalSize(). Otherwise it returns the logical - * width and height. - * - * When using a target texture: Never return 0 for `w` and `h` at first. Then - * it returns the logical width and height that are set. - * - * \param renderer a rendering context - * \param w an int to be filled with the width - * \param h an int to be filled with the height - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderSetLogicalSize - */ -extern DECLSPEC void SDLCALL SDL_RenderGetLogicalSize(SDL_Renderer * renderer, int *w, int *h); - -/** - * Set whether to force integer scales for resolution-independent rendering. - * - * This function restricts the logical viewport to integer values - that is, - * when a resolution is between two multiples of a logical size, the viewport - * size is rounded down to the lower multiple. - * - * \param renderer the renderer for which integer scaling should be set - * \param enable enable or disable the integer scaling for rendering - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_RenderGetIntegerScale - * \sa SDL_RenderSetLogicalSize - */ -extern DECLSPEC int SDLCALL SDL_RenderSetIntegerScale(SDL_Renderer * renderer, - SDL_bool enable); - -/** - * Get whether integer scales are forced for resolution-independent rendering. - * - * \param renderer the renderer from which integer scaling should be queried - * \returns SDL_TRUE if integer scales are forced or SDL_FALSE if not and on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_RenderSetIntegerScale - */ -extern DECLSPEC SDL_bool SDLCALL SDL_RenderGetIntegerScale(SDL_Renderer * renderer); - -/** - * Set the drawing area for rendering on the current target. - * - * When the window is resized, the viewport is reset to fill the entire new - * window size. - * - * \param renderer the rendering context - * \param rect the SDL_Rect structure representing the drawing area, or NULL - * to set the viewport to the entire target - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderGetViewport - */ -extern DECLSPEC int SDLCALL SDL_RenderSetViewport(SDL_Renderer * renderer, - const SDL_Rect * rect); - -/** - * Get the drawing area for the current target. - * - * \param renderer the rendering context - * \param rect an SDL_Rect structure filled in with the current drawing area - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderSetViewport - */ -extern DECLSPEC void SDLCALL SDL_RenderGetViewport(SDL_Renderer * renderer, - SDL_Rect * rect); - -/** - * Set the clip rectangle for rendering on the specified target. - * - * \param renderer the rendering context for which clip rectangle should be - * set - * \param rect an SDL_Rect structure representing the clip area, relative to - * the viewport, or NULL to disable clipping - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderGetClipRect - * \sa SDL_RenderIsClipEnabled - */ -extern DECLSPEC int SDLCALL SDL_RenderSetClipRect(SDL_Renderer * renderer, - const SDL_Rect * rect); - -/** - * Get the clip rectangle for the current target. - * - * \param renderer the rendering context from which clip rectangle should be - * queried - * \param rect an SDL_Rect structure filled in with the current clipping area - * or an empty rectangle if clipping is disabled - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderIsClipEnabled - * \sa SDL_RenderSetClipRect - */ -extern DECLSPEC void SDLCALL SDL_RenderGetClipRect(SDL_Renderer * renderer, - SDL_Rect * rect); - -/** - * Get whether clipping is enabled on the given renderer. - * - * \param renderer the renderer from which clip state should be queried - * \returns SDL_TRUE if clipping is enabled or SDL_FALSE if not; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_RenderGetClipRect - * \sa SDL_RenderSetClipRect - */ -extern DECLSPEC SDL_bool SDLCALL SDL_RenderIsClipEnabled(SDL_Renderer * renderer); - - -/** - * Set the drawing scale for rendering on the current target. - * - * The drawing coordinates are scaled by the x/y scaling factors before they - * are used by the renderer. This allows resolution independent drawing with a - * single coordinate system. - * - * If this results in scaling or subpixel drawing by the rendering backend, it - * will be handled using the appropriate quality hints. For best results use - * integer scaling factors. - * - * \param renderer a rendering context - * \param scaleX the horizontal scaling factor - * \param scaleY the vertical scaling factor - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderGetScale - * \sa SDL_RenderSetLogicalSize - */ -extern DECLSPEC int SDLCALL SDL_RenderSetScale(SDL_Renderer * renderer, - float scaleX, float scaleY); - -/** - * Get the drawing scale for the current target. - * - * \param renderer the renderer from which drawing scale should be queried - * \param scaleX a pointer filled in with the horizontal scaling factor - * \param scaleY a pointer filled in with the vertical scaling factor - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderSetScale - */ -extern DECLSPEC void SDLCALL SDL_RenderGetScale(SDL_Renderer * renderer, - float *scaleX, float *scaleY); - -/** - * Get logical coordinates of point in renderer when given real coordinates of - * point in window. - * - * Logical coordinates will differ from real coordinates when render is scaled - * and logical renderer size set - * - * \param renderer the renderer from which the logical coordinates should be - * calculated - * \param windowX the real X coordinate in the window - * \param windowY the real Y coordinate in the window - * \param logicalX the pointer filled with the logical x coordinate - * \param logicalY the pointer filled with the logical y coordinate - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_RenderGetScale - * \sa SDL_RenderSetScale - * \sa SDL_RenderGetLogicalSize - * \sa SDL_RenderSetLogicalSize - */ -extern DECLSPEC void SDLCALL SDL_RenderWindowToLogical(SDL_Renderer * renderer, - int windowX, int windowY, - float *logicalX, float *logicalY); - - -/** - * Get real coordinates of point in window when given logical coordinates of - * point in renderer. - * - * Logical coordinates will differ from real coordinates when render is scaled - * and logical renderer size set - * - * \param renderer the renderer from which the window coordinates should be - * calculated - * \param logicalX the logical x coordinate - * \param logicalY the logical y coordinate - * \param windowX the pointer filled with the real X coordinate in the window - * \param windowY the pointer filled with the real Y coordinate in the window - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_RenderGetScale - * \sa SDL_RenderSetScale - * \sa SDL_RenderGetLogicalSize - * \sa SDL_RenderSetLogicalSize - */ -extern DECLSPEC void SDLCALL SDL_RenderLogicalToWindow(SDL_Renderer * renderer, - float logicalX, float logicalY, - int *windowX, int *windowY); - -/** - * Set the color used for drawing operations (Rect, Line and Clear). - * - * Set the color for drawing or filling rectangles, lines, and points, and for - * SDL_RenderClear(). - * - * \param renderer the rendering context - * \param r the red value used to draw on the rendering target - * \param g the green value used to draw on the rendering target - * \param b the blue value used to draw on the rendering target - * \param a the alpha value used to draw on the rendering target; usually - * `SDL_ALPHA_OPAQUE` (255). Use SDL_SetRenderDrawBlendMode to - * specify how the alpha channel is used - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRenderDrawColor - * \sa SDL_RenderClear - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - */ -extern DECLSPEC int SDLCALL SDL_SetRenderDrawColor(SDL_Renderer * renderer, - Uint8 r, Uint8 g, Uint8 b, - Uint8 a); - -/** - * Get the color used for drawing operations (Rect, Line and Clear). - * - * \param renderer the rendering context - * \param r a pointer filled in with the red value used to draw on the - * rendering target - * \param g a pointer filled in with the green value used to draw on the - * rendering target - * \param b a pointer filled in with the blue value used to draw on the - * rendering target - * \param a a pointer filled in with the alpha value used to draw on the - * rendering target; usually `SDL_ALPHA_OPAQUE` (255) - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_GetRenderDrawColor(SDL_Renderer * renderer, - Uint8 * r, Uint8 * g, Uint8 * b, - Uint8 * a); - -/** - * Set the blend mode used for drawing operations (Fill and Line). - * - * If the blend mode is not supported, the closest supported mode is chosen. - * - * \param renderer the rendering context - * \param blendMode the SDL_BlendMode to use for blending - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRenderDrawBlendMode - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - */ -extern DECLSPEC int SDLCALL SDL_SetRenderDrawBlendMode(SDL_Renderer * renderer, - SDL_BlendMode blendMode); - -/** - * Get the blend mode used for drawing operations. - * - * \param renderer the rendering context - * \param blendMode a pointer filled in with the current SDL_BlendMode - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetRenderDrawBlendMode - */ -extern DECLSPEC int SDLCALL SDL_GetRenderDrawBlendMode(SDL_Renderer * renderer, - SDL_BlendMode *blendMode); - -/** - * Clear the current rendering target with the drawing color. - * - * This function clears the entire rendering target, ignoring the viewport and - * the clip rectangle. - * - * \param renderer the rendering context - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_RenderClear(SDL_Renderer * renderer); - -/** - * Draw a point on the current rendering target. - * - * SDL_RenderDrawPoint() draws a single point. If you want to draw multiple, - * use SDL_RenderDrawPoints() instead. - * - * \param renderer the rendering context - * \param x the x coordinate of the point - * \param y the y coordinate of the point - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - * \sa SDL_RenderPresent - * \sa SDL_SetRenderDrawBlendMode - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawPoint(SDL_Renderer * renderer, - int x, int y); - -/** - * Draw multiple points on the current rendering target. - * - * \param renderer the rendering context - * \param points an array of SDL_Point structures that represent the points to - * draw - * \param count the number of points to draw - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - * \sa SDL_RenderPresent - * \sa SDL_SetRenderDrawBlendMode - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawPoints(SDL_Renderer * renderer, - const SDL_Point * points, - int count); - -/** - * Draw a line on the current rendering target. - * - * SDL_RenderDrawLine() draws the line to include both end points. If you want - * to draw multiple, connecting lines use SDL_RenderDrawLines() instead. - * - * \param renderer the rendering context - * \param x1 the x coordinate of the start point - * \param y1 the y coordinate of the start point - * \param x2 the x coordinate of the end point - * \param y2 the y coordinate of the end point - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - * \sa SDL_RenderPresent - * \sa SDL_SetRenderDrawBlendMode - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawLine(SDL_Renderer * renderer, - int x1, int y1, int x2, int y2); - -/** - * Draw a series of connected lines on the current rendering target. - * - * \param renderer the rendering context - * \param points an array of SDL_Point structures representing points along - * the lines - * \param count the number of points, drawing count-1 lines - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - * \sa SDL_RenderPresent - * \sa SDL_SetRenderDrawBlendMode - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawLines(SDL_Renderer * renderer, - const SDL_Point * points, - int count); - -/** - * Draw a rectangle on the current rendering target. - * - * \param renderer the rendering context - * \param rect an SDL_Rect structure representing the rectangle to draw, or - * NULL to outline the entire rendering target - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - * \sa SDL_RenderPresent - * \sa SDL_SetRenderDrawBlendMode - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawRect(SDL_Renderer * renderer, - const SDL_Rect * rect); - -/** - * Draw some number of rectangles on the current rendering target. - * - * \param renderer the rendering context - * \param rects an array of SDL_Rect structures representing the rectangles to - * be drawn - * \param count the number of rectangles - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - * \sa SDL_RenderPresent - * \sa SDL_SetRenderDrawBlendMode - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawRects(SDL_Renderer * renderer, - const SDL_Rect * rects, - int count); - -/** - * Fill a rectangle on the current rendering target with the drawing color. - * - * The current drawing color is set by SDL_SetRenderDrawColor(), and the - * color's alpha value is ignored unless blending is enabled with the - * appropriate call to SDL_SetRenderDrawBlendMode(). - * - * \param renderer the rendering context - * \param rect the SDL_Rect structure representing the rectangle to fill, or - * NULL for the entire rendering target - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRects - * \sa SDL_RenderPresent - * \sa SDL_SetRenderDrawBlendMode - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC int SDLCALL SDL_RenderFillRect(SDL_Renderer * renderer, - const SDL_Rect * rect); - -/** - * Fill some number of rectangles on the current rendering target with the - * drawing color. - * - * \param renderer the rendering context - * \param rects an array of SDL_Rect structures representing the rectangles to - * be filled - * \param count the number of rectangles - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderPresent - */ -extern DECLSPEC int SDLCALL SDL_RenderFillRects(SDL_Renderer * renderer, - const SDL_Rect * rects, - int count); - -/** - * Copy a portion of the texture to the current rendering target. - * - * The texture is blended with the destination based on its blend mode set - * with SDL_SetTextureBlendMode(). - * - * The texture color is affected based on its color modulation set by - * SDL_SetTextureColorMod(). - * - * The texture alpha is affected based on its alpha modulation set by - * SDL_SetTextureAlphaMod(). - * - * \param renderer the rendering context - * \param texture the source texture - * \param srcrect the source SDL_Rect structure or NULL for the entire texture - * \param dstrect the destination SDL_Rect structure or NULL for the entire - * rendering target; the texture will be stretched to fill the - * given rectangle - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderCopyEx - * \sa SDL_SetTextureAlphaMod - * \sa SDL_SetTextureBlendMode - * \sa SDL_SetTextureColorMod - */ -extern DECLSPEC int SDLCALL SDL_RenderCopy(SDL_Renderer * renderer, - SDL_Texture * texture, - const SDL_Rect * srcrect, - const SDL_Rect * dstrect); - -/** - * Copy a portion of the texture to the current rendering, with optional - * rotation and flipping. - * - * Copy a portion of the texture to the current rendering target, optionally - * rotating it by angle around the given center and also flipping it - * top-bottom and/or left-right. - * - * The texture is blended with the destination based on its blend mode set - * with SDL_SetTextureBlendMode(). - * - * The texture color is affected based on its color modulation set by - * SDL_SetTextureColorMod(). - * - * The texture alpha is affected based on its alpha modulation set by - * SDL_SetTextureAlphaMod(). - * - * \param renderer the rendering context - * \param texture the source texture - * \param srcrect the source SDL_Rect structure or NULL for the entire texture - * \param dstrect the destination SDL_Rect structure or NULL for the entire - * rendering target - * \param angle an angle in degrees that indicates the rotation that will be - * applied to dstrect, rotating it in a clockwise direction - * \param center a pointer to a point indicating the point around which - * dstrect will be rotated (if NULL, rotation will be done - * around `dstrect.w / 2`, `dstrect.h / 2`) - * \param flip a SDL_RendererFlip value stating which flipping actions should - * be performed on the texture - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderCopy - * \sa SDL_SetTextureAlphaMod - * \sa SDL_SetTextureBlendMode - * \sa SDL_SetTextureColorMod - */ -extern DECLSPEC int SDLCALL SDL_RenderCopyEx(SDL_Renderer * renderer, - SDL_Texture * texture, - const SDL_Rect * srcrect, - const SDL_Rect * dstrect, - const double angle, - const SDL_Point *center, - const SDL_RendererFlip flip); - - -/** - * Draw a point on the current rendering target at subpixel precision. - * - * \param renderer The renderer which should draw a point. - * \param x The x coordinate of the point. - * \param y The y coordinate of the point. - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawPointF(SDL_Renderer * renderer, - float x, float y); - -/** - * Draw multiple points on the current rendering target at subpixel precision. - * - * \param renderer The renderer which should draw multiple points. - * \param points The points to draw - * \param count The number of points to draw - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawPointsF(SDL_Renderer * renderer, - const SDL_FPoint * points, - int count); - -/** - * Draw a line on the current rendering target at subpixel precision. - * - * \param renderer The renderer which should draw a line. - * \param x1 The x coordinate of the start point. - * \param y1 The y coordinate of the start point. - * \param x2 The x coordinate of the end point. - * \param y2 The y coordinate of the end point. - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawLineF(SDL_Renderer * renderer, - float x1, float y1, float x2, float y2); - -/** - * Draw a series of connected lines on the current rendering target at - * subpixel precision. - * - * \param renderer The renderer which should draw multiple lines. - * \param points The points along the lines - * \param count The number of points, drawing count-1 lines - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawLinesF(SDL_Renderer * renderer, - const SDL_FPoint * points, - int count); - -/** - * Draw a rectangle on the current rendering target at subpixel precision. - * - * \param renderer The renderer which should draw a rectangle. - * \param rect A pointer to the destination rectangle, or NULL to outline the - * entire rendering target. - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawRectF(SDL_Renderer * renderer, - const SDL_FRect * rect); - -/** - * Draw some number of rectangles on the current rendering target at subpixel - * precision. - * - * \param renderer The renderer which should draw multiple rectangles. - * \param rects A pointer to an array of destination rectangles. - * \param count The number of rectangles. - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderDrawRectsF(SDL_Renderer * renderer, - const SDL_FRect * rects, - int count); - -/** - * Fill a rectangle on the current rendering target with the drawing color at - * subpixel precision. - * - * \param renderer The renderer which should fill a rectangle. - * \param rect A pointer to the destination rectangle, or NULL for the entire - * rendering target. - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderFillRectF(SDL_Renderer * renderer, - const SDL_FRect * rect); - -/** - * Fill some number of rectangles on the current rendering target with the - * drawing color at subpixel precision. - * - * \param renderer The renderer which should fill multiple rectangles. - * \param rects A pointer to an array of destination rectangles. - * \param count The number of rectangles. - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderFillRectsF(SDL_Renderer * renderer, - const SDL_FRect * rects, - int count); - -/** - * Copy a portion of the texture to the current rendering target at subpixel - * precision. - * - * \param renderer The renderer which should copy parts of a texture. - * \param texture The source texture. - * \param srcrect A pointer to the source rectangle, or NULL for the entire - * texture. - * \param dstrect A pointer to the destination rectangle, or NULL for the - * entire rendering target. - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderCopyF(SDL_Renderer * renderer, - SDL_Texture * texture, - const SDL_Rect * srcrect, - const SDL_FRect * dstrect); - -/** - * Copy a portion of the source texture to the current rendering target, with - * rotation and flipping, at subpixel precision. - * - * \param renderer The renderer which should copy parts of a texture. - * \param texture The source texture. - * \param srcrect A pointer to the source rectangle, or NULL for the entire - * texture. - * \param dstrect A pointer to the destination rectangle, or NULL for the - * entire rendering target. - * \param angle An angle in degrees that indicates the rotation that will be - * applied to dstrect, rotating it in a clockwise direction - * \param center A pointer to a point indicating the point around which - * dstrect will be rotated (if NULL, rotation will be done - * around dstrect.w/2, dstrect.h/2). - * \param flip An SDL_RendererFlip value stating which flipping actions should - * be performed on the texture - * \return 0 on success, or -1 on error - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderCopyExF(SDL_Renderer * renderer, - SDL_Texture * texture, - const SDL_Rect * srcrect, - const SDL_FRect * dstrect, - const double angle, - const SDL_FPoint *center, - const SDL_RendererFlip flip); - -/** - * Render a list of triangles, optionally using a texture and indices into the - * vertex array Color and alpha modulation is done per vertex - * (SDL_SetTextureColorMod and SDL_SetTextureAlphaMod are ignored). - * - * \param renderer The rendering context. - * \param texture (optional) The SDL texture to use. - * \param vertices Vertices. - * \param num_vertices Number of vertices. - * \param indices (optional) An array of integer indices into the 'vertices' - * array, if NULL all vertices will be rendered in sequential - * order. - * \param num_indices Number of indices. - * \return 0 on success, or -1 if the operation is not supported - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_RenderGeometryRaw - * \sa SDL_Vertex - */ -extern DECLSPEC int SDLCALL SDL_RenderGeometry(SDL_Renderer *renderer, - SDL_Texture *texture, - const SDL_Vertex *vertices, int num_vertices, - const int *indices, int num_indices); - -/** - * Render a list of triangles, optionally using a texture and indices into the - * vertex arrays Color and alpha modulation is done per vertex - * (SDL_SetTextureColorMod and SDL_SetTextureAlphaMod are ignored). - * - * \param renderer The rendering context. - * \param texture (optional) The SDL texture to use. - * \param xy Vertex positions - * \param xy_stride Byte size to move from one element to the next element - * \param color Vertex colors (as SDL_Color) - * \param color_stride Byte size to move from one element to the next element - * \param uv Vertex normalized texture coordinates - * \param uv_stride Byte size to move from one element to the next element - * \param num_vertices Number of vertices. - * \param indices (optional) An array of indices into the 'vertices' arrays, - * if NULL all vertices will be rendered in sequential order. - * \param num_indices Number of indices. - * \param size_indices Index size: 1 (byte), 2 (short), 4 (int) - * \return 0 on success, or -1 if the operation is not supported - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_RenderGeometry - * \sa SDL_Vertex - */ -extern DECLSPEC int SDLCALL SDL_RenderGeometryRaw(SDL_Renderer *renderer, - SDL_Texture *texture, - const float *xy, int xy_stride, - const SDL_Color *color, int color_stride, - const float *uv, int uv_stride, - int num_vertices, - const void *indices, int num_indices, int size_indices); - -/** - * Read pixels from the current rendering target to an array of pixels. - * - * **WARNING**: This is a very slow operation, and should not be used - * frequently. If you're using this on the main rendering target, it should be - * called after rendering and before SDL_RenderPresent(). - * - * `pitch` specifies the number of bytes between rows in the destination - * `pixels` data. This allows you to write to a subrectangle or have padded - * rows in the destination. Generally, `pitch` should equal the number of - * pixels per row in the `pixels` data times the number of bytes per pixel, - * but it might contain additional padding (for example, 24bit RGB Windows - * Bitmap data pads all rows to multiples of 4 bytes). - * - * \param renderer the rendering context - * \param rect an SDL_Rect structure representing the area to read, or NULL - * for the entire render target - * \param format an SDL_PixelFormatEnum value of the desired format of the - * pixel data, or 0 to use the format of the rendering target - * \param pixels a pointer to the pixel data to copy into - * \param pitch the pitch of the `pixels` parameter - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_RenderReadPixels(SDL_Renderer * renderer, - const SDL_Rect * rect, - Uint32 format, - void *pixels, int pitch); - -/** - * Update the screen with any rendering performed since the previous call. - * - * SDL's rendering functions operate on a backbuffer; that is, calling a - * rendering function such as SDL_RenderDrawLine() does not directly put a - * line on the screen, but rather updates the backbuffer. As such, you compose - * your entire scene and *present* the composed backbuffer to the screen as a - * complete picture. - * - * Therefore, when using SDL's rendering API, one does all drawing intended - * for the frame, and then calls this function once per frame to present the - * final drawing to the user. - * - * The backbuffer should be considered invalidated after each present; do not - * assume that previous contents will exist between frames. You are strongly - * encouraged to call SDL_RenderClear() to initialize the backbuffer before - * starting each new frame's drawing, even if you plan to overwrite every - * pixel. - * - * \param renderer the rendering context - * - * \threadsafety You may only call this function on the main thread. If this - * happens to work on a background thread on any given platform - * or backend, it's purely by luck and you should not rely on it - * to work next time. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RenderClear - * \sa SDL_RenderDrawLine - * \sa SDL_RenderDrawLines - * \sa SDL_RenderDrawPoint - * \sa SDL_RenderDrawPoints - * \sa SDL_RenderDrawRect - * \sa SDL_RenderDrawRects - * \sa SDL_RenderFillRect - * \sa SDL_RenderFillRects - * \sa SDL_SetRenderDrawBlendMode - * \sa SDL_SetRenderDrawColor - */ -extern DECLSPEC void SDLCALL SDL_RenderPresent(SDL_Renderer * renderer); - -/** - * Destroy the specified texture. - * - * Passing NULL or an otherwise invalid texture will set the SDL error message - * to "Invalid texture". - * - * \param texture the texture to destroy - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateTexture - * \sa SDL_CreateTextureFromSurface - */ -extern DECLSPEC void SDLCALL SDL_DestroyTexture(SDL_Texture * texture); - -/** - * Destroy the rendering context for a window and free associated textures. - * - * If `renderer` is NULL, this function will return immediately after setting - * the SDL error message to "Invalid renderer". See SDL_GetError(). - * - * \param renderer the rendering context - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRenderer - */ -extern DECLSPEC void SDLCALL SDL_DestroyRenderer(SDL_Renderer * renderer); - -/** - * Force the rendering context to flush any pending commands to the underlying - * rendering API. - * - * You do not need to (and in fact, shouldn't) call this function unless you - * are planning to call into OpenGL/Direct3D/Metal/whatever directly in - * addition to using an SDL_Renderer. - * - * This is for a very-specific case: if you are using SDL's render API, you - * asked for a specific renderer backend (OpenGL, Direct3D, etc), you set - * SDL_HINT_RENDER_BATCHING to "1", and you plan to make OpenGL/D3D/whatever - * calls in addition to SDL render API calls. If all of this applies, you - * should call SDL_RenderFlush() between calls to SDL's render API and the - * low-level API you're using in cooperation. - * - * In all other cases, you can ignore this function. This is only here to get - * maximum performance out of a specific situation. In all other cases, SDL - * will do the right thing, perhaps at a performance loss. - * - * This function is first available in SDL 2.0.10, and is not needed in 2.0.9 - * and earlier, as earlier versions did not queue rendering commands at all, - * instead flushing them to the OS immediately. - * - * \param renderer the rendering context - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC int SDLCALL SDL_RenderFlush(SDL_Renderer * renderer); - - -/** - * Bind an OpenGL/ES/ES2 texture to the current context. - * - * This is for use with OpenGL instructions when rendering OpenGL primitives - * directly. - * - * If not NULL, `texw` and `texh` will be filled with the width and height - * values suitable for the provided texture. In most cases, both will be 1.0, - * however, on systems that support the GL_ARB_texture_rectangle extension, - * these values will actually be the pixel width and height used to create the - * texture, so this factor needs to be taken into account when providing - * texture coordinates to OpenGL. - * - * You need a renderer to create an SDL_Texture, therefore you can only use - * this function with an implicit OpenGL context from SDL_CreateRenderer(), - * not with your own OpenGL context. If you need control over your OpenGL - * context, you need to write your own texture-loading methods. - * - * Also note that SDL may upload RGB textures as BGR (or vice-versa), and - * re-order the color channels in the shaders phase, so the uploaded texture - * may have swapped color channels. - * - * \param texture the texture to bind to the current OpenGL/ES/ES2 context - * \param texw a pointer to a float value which will be filled with the - * texture width or NULL if you don't need that value - * \param texh a pointer to a float value which will be filled with the - * texture height or NULL if you don't need that value - * \returns 0 on success, or -1 if the operation is not supported; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_MakeCurrent - * \sa SDL_GL_UnbindTexture - */ -extern DECLSPEC int SDLCALL SDL_GL_BindTexture(SDL_Texture *texture, float *texw, float *texh); - -/** - * Unbind an OpenGL/ES/ES2 texture from the current context. - * - * See SDL_GL_BindTexture() for examples on how to use these functions - * - * \param texture the texture to unbind from the current OpenGL/ES/ES2 context - * \returns 0 on success, or -1 if the operation is not supported - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_BindTexture - * \sa SDL_GL_MakeCurrent - */ -extern DECLSPEC int SDLCALL SDL_GL_UnbindTexture(SDL_Texture *texture); - -/** - * Get the CAMetalLayer associated with the given Metal renderer. - * - * This function returns `void *`, so SDL doesn't have to include Metal's - * headers, but it can be safely cast to a `CAMetalLayer *`. - * - * \param renderer The renderer to query - * \returns a `CAMetalLayer *` on success, or NULL if the renderer isn't a - * Metal renderer - * - * \since This function is available since SDL 2.0.8. - * - * \sa SDL_RenderGetMetalCommandEncoder - */ -extern DECLSPEC void *SDLCALL SDL_RenderGetMetalLayer(SDL_Renderer * renderer); - -/** - * Get the Metal command encoder for the current frame - * - * This function returns `void *`, so SDL doesn't have to include Metal's - * headers, but it can be safely cast to an `id`. - * - * Note that as of SDL 2.0.18, this will return NULL if Metal refuses to give - * SDL a drawable to render to, which might happen if the window is - * hidden/minimized/offscreen. This doesn't apply to command encoders for - * render targets, just the window's backbuffer. Check your return values! - * - * \param renderer The renderer to query - * \returns an `id` on success, or NULL if the - * renderer isn't a Metal renderer or there was an error. - * - * \since This function is available since SDL 2.0.8. - * - * \sa SDL_RenderGetMetalLayer - */ -extern DECLSPEC void *SDLCALL SDL_RenderGetMetalCommandEncoder(SDL_Renderer * renderer); - -/** - * Toggle VSync of the given renderer. - * - * \param renderer The renderer to toggle - * \param vsync 1 for on, 0 for off. All other values are reserved - * \returns a 0 int on success, or non-zero on failure - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_RenderSetVSync(SDL_Renderer* renderer, int vsync); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_render_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_revision.h b/release/SDL2.framework/Versions/A/Headers/SDL_revision.h deleted file mode 100644 index 086440d..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_revision.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Generated by updaterev.sh, do not edit */ -#ifdef SDL_VENDOR_INFO -#define SDL_REVISION "SDL-release-2.28.3-0-g8a5ba43d0 (" SDL_VENDOR_INFO ")" -#else -#define SDL_REVISION "SDL-release-2.28.3-0-g8a5ba43d0" -#endif -#define SDL_REVISION_NUMBER 0 diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_rwops.h b/release/SDL2.framework/Versions/A/Headers/SDL_rwops.h deleted file mode 100644 index eabbbf2..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_rwops.h +++ /dev/null @@ -1,841 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_rwops.h - * - * This file provides a general interface for SDL to read and write - * data streams. It can easily be extended to files, memory, etc. - */ - -#ifndef SDL_rwops_h_ -#define SDL_rwops_h_ - -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* RWops Types */ -#define SDL_RWOPS_UNKNOWN 0U /**< Unknown stream type */ -#define SDL_RWOPS_WINFILE 1U /**< Win32 file */ -#define SDL_RWOPS_STDFILE 2U /**< Stdio file */ -#define SDL_RWOPS_JNIFILE 3U /**< Android asset */ -#define SDL_RWOPS_MEMORY 4U /**< Memory stream */ -#define SDL_RWOPS_MEMORY_RO 5U /**< Read-Only memory stream */ - -/** - * This is the read/write operation structure -- very basic. - */ -typedef struct SDL_RWops -{ - /** - * Return the size of the file in this rwops, or -1 if unknown - */ - Sint64 (SDLCALL * size) (struct SDL_RWops * context); - - /** - * Seek to \c offset relative to \c whence, one of stdio's whence values: - * RW_SEEK_SET, RW_SEEK_CUR, RW_SEEK_END - * - * \return the final offset in the data stream, or -1 on error. - */ - Sint64 (SDLCALL * seek) (struct SDL_RWops * context, Sint64 offset, - int whence); - - /** - * Read up to \c maxnum objects each of size \c size from the data - * stream to the area pointed at by \c ptr. - * - * \return the number of objects read, or 0 at error or end of file. - */ - size_t (SDLCALL * read) (struct SDL_RWops * context, void *ptr, - size_t size, size_t maxnum); - - /** - * Write exactly \c num objects each of size \c size from the area - * pointed at by \c ptr to data stream. - * - * \return the number of objects written, or 0 at error or end of file. - */ - size_t (SDLCALL * write) (struct SDL_RWops * context, const void *ptr, - size_t size, size_t num); - - /** - * Close and free an allocated SDL_RWops structure. - * - * \return 0 if successful or -1 on write error when flushing data. - */ - int (SDLCALL * close) (struct SDL_RWops * context); - - Uint32 type; - union - { -#if defined(__ANDROID__) - struct - { - void *asset; - } androidio; -#elif defined(__WIN32__) || defined(__GDK__) - struct - { - SDL_bool append; - void *h; - struct - { - void *data; - size_t size; - size_t left; - } buffer; - } windowsio; -#endif - -#ifdef HAVE_STDIO_H - struct - { - SDL_bool autoclose; - FILE *fp; - } stdio; -#endif - struct - { - Uint8 *base; - Uint8 *here; - Uint8 *stop; - } mem; - struct - { - void *data1; - void *data2; - } unknown; - } hidden; - -} SDL_RWops; - - -/** - * \name RWFrom functions - * - * Functions to create SDL_RWops structures from various data streams. - */ -/* @{ */ - -/** - * Use this function to create a new SDL_RWops structure for reading from - * and/or writing to a named file. - * - * The `mode` string is treated roughly the same as in a call to the C - * library's fopen(), even if SDL doesn't happen to use fopen() behind the - * scenes. - * - * Available `mode` strings: - * - * - "r": Open a file for reading. The file must exist. - * - "w": Create an empty file for writing. If a file with the same name - * already exists its content is erased and the file is treated as a new - * empty file. - * - "a": Append to a file. Writing operations append data at the end of the - * file. The file is created if it does not exist. - * - "r+": Open a file for update both reading and writing. The file must - * exist. - * - "w+": Create an empty file for both reading and writing. If a file with - * the same name already exists its content is erased and the file is - * treated as a new empty file. - * - "a+": Open a file for reading and appending. All writing operations are - * performed at the end of the file, protecting the previous content to be - * overwritten. You can reposition (fseek, rewind) the internal pointer to - * anywhere in the file for reading, but writing operations will move it - * back to the end of file. The file is created if it does not exist. - * - * **NOTE**: In order to open a file as a binary file, a "b" character has to - * be included in the `mode` string. This additional "b" character can either - * be appended at the end of the string (thus making the following compound - * modes: "rb", "wb", "ab", "r+b", "w+b", "a+b") or be inserted between the - * letter and the "+" sign for the mixed modes ("rb+", "wb+", "ab+"). - * Additional characters may follow the sequence, although they should have no - * effect. For example, "t" is sometimes appended to make explicit the file is - * a text file. - * - * This function supports Unicode filenames, but they must be encoded in UTF-8 - * format, regardless of the underlying operating system. - * - * As a fallback, SDL_RWFromFile() will transparently open a matching filename - * in an Android app's `assets`. - * - * Closing the SDL_RWops will close the file handle SDL is holding internally. - * - * \param file a UTF-8 string representing the filename to open - * \param mode an ASCII string representing the mode to be used for opening - * the file. - * \returns a pointer to the SDL_RWops structure that is created, or NULL on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RWclose - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFP - * \sa SDL_RWFromMem - * \sa SDL_RWread - * \sa SDL_RWseek - * \sa SDL_RWtell - * \sa SDL_RWwrite - */ -extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFile(const char *file, - const char *mode); - -#ifdef HAVE_STDIO_H - -extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFP(FILE * fp, SDL_bool autoclose); - -#else - -/** - * Use this function to create an SDL_RWops structure from a standard I/O file - * pointer (stdio.h's `FILE*`). - * - * This function is not available on Windows, since files opened in an - * application on that platform cannot be used by a dynamically linked - * library. - * - * On some platforms, the first parameter is a `void*`, on others, it's a - * `FILE*`, depending on what system headers are available to SDL. It is - * always intended to be the `FILE*` type from the C runtime's stdio.h. - * - * \param fp the `FILE*` that feeds the SDL_RWops stream - * \param autoclose SDL_TRUE to close the `FILE*` when closing the SDL_RWops, - * SDL_FALSE to leave the `FILE*` open when the RWops is - * closed - * \returns a pointer to the SDL_RWops structure that is created, or NULL on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RWclose - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFile - * \sa SDL_RWFromMem - * \sa SDL_RWread - * \sa SDL_RWseek - * \sa SDL_RWtell - * \sa SDL_RWwrite - */ -extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFP(void * fp, - SDL_bool autoclose); -#endif - -/** - * Use this function to prepare a read-write memory buffer for use with - * SDL_RWops. - * - * This function sets up an SDL_RWops struct based on a memory area of a - * certain size, for both read and write access. - * - * This memory buffer is not copied by the RWops; the pointer you provide must - * remain valid until you close the stream. Closing the stream will not free - * the original buffer. - * - * If you need to make sure the RWops never writes to the memory buffer, you - * should use SDL_RWFromConstMem() with a read-only buffer of memory instead. - * - * \param mem a pointer to a buffer to feed an SDL_RWops stream - * \param size the buffer size, in bytes - * \returns a pointer to a new SDL_RWops structure, or NULL if it fails; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RWclose - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFile - * \sa SDL_RWFromFP - * \sa SDL_RWFromMem - * \sa SDL_RWread - * \sa SDL_RWseek - * \sa SDL_RWtell - * \sa SDL_RWwrite - */ -extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromMem(void *mem, int size); - -/** - * Use this function to prepare a read-only memory buffer for use with RWops. - * - * This function sets up an SDL_RWops struct based on a memory area of a - * certain size. It assumes the memory area is not writable. - * - * Attempting to write to this RWops stream will report an error without - * writing to the memory buffer. - * - * This memory buffer is not copied by the RWops; the pointer you provide must - * remain valid until you close the stream. Closing the stream will not free - * the original buffer. - * - * If you need to write to a memory buffer, you should use SDL_RWFromMem() - * with a writable buffer of memory instead. - * - * \param mem a pointer to a read-only buffer to feed an SDL_RWops stream - * \param size the buffer size, in bytes - * \returns a pointer to a new SDL_RWops structure, or NULL if it fails; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RWclose - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFile - * \sa SDL_RWFromFP - * \sa SDL_RWFromMem - * \sa SDL_RWread - * \sa SDL_RWseek - * \sa SDL_RWtell - */ -extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromConstMem(const void *mem, - int size); - -/* @} *//* RWFrom functions */ - - -/** - * Use this function to allocate an empty, unpopulated SDL_RWops structure. - * - * Applications do not need to use this function unless they are providing - * their own SDL_RWops implementation. If you just need a SDL_RWops to - * read/write a common data source, you should use the built-in - * implementations in SDL, like SDL_RWFromFile() or SDL_RWFromMem(), etc. - * - * You must free the returned pointer with SDL_FreeRW(). Depending on your - * operating system and compiler, there may be a difference between the - * malloc() and free() your program uses and the versions SDL calls - * internally. Trying to mix the two can cause crashing such as segmentation - * faults. Since all SDL_RWops must free themselves when their **close** - * method is called, all SDL_RWops must be allocated through this function, so - * they can all be freed correctly with SDL_FreeRW(). - * - * \returns a pointer to the allocated memory on success, or NULL on failure; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FreeRW - */ -extern DECLSPEC SDL_RWops *SDLCALL SDL_AllocRW(void); - -/** - * Use this function to free an SDL_RWops structure allocated by - * SDL_AllocRW(). - * - * Applications do not need to use this function unless they are providing - * their own SDL_RWops implementation. If you just need a SDL_RWops to - * read/write a common data source, you should use the built-in - * implementations in SDL, like SDL_RWFromFile() or SDL_RWFromMem(), etc, and - * call the **close** method on those SDL_RWops pointers when you are done - * with them. - * - * Only use SDL_FreeRW() on pointers returned by SDL_AllocRW(). The pointer is - * invalid as soon as this function returns. Any extra memory allocated during - * creation of the SDL_RWops is not freed by SDL_FreeRW(); the programmer must - * be responsible for managing that memory in their **close** method. - * - * \param area the SDL_RWops structure to be freed - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AllocRW - */ -extern DECLSPEC void SDLCALL SDL_FreeRW(SDL_RWops * area); - -#define RW_SEEK_SET 0 /**< Seek from the beginning of data */ -#define RW_SEEK_CUR 1 /**< Seek relative to current read point */ -#define RW_SEEK_END 2 /**< Seek relative to the end of data */ - -/** - * Use this function to get the size of the data stream in an SDL_RWops. - * - * Prior to SDL 2.0.10, this function was a macro. - * - * \param context the SDL_RWops to get the size of the data stream from - * \returns the size of the data stream in the SDL_RWops on success, -1 if - * unknown or a negative error code on failure; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC Sint64 SDLCALL SDL_RWsize(SDL_RWops *context); - -/** - * Seek within an SDL_RWops data stream. - * - * This function seeks to byte `offset`, relative to `whence`. - * - * `whence` may be any of the following values: - * - * - `RW_SEEK_SET`: seek from the beginning of data - * - `RW_SEEK_CUR`: seek relative to current read point - * - `RW_SEEK_END`: seek relative to the end of data - * - * If this stream can not seek, it will return -1. - * - * SDL_RWseek() is actually a wrapper function that calls the SDL_RWops's - * `seek` method appropriately, to simplify application development. - * - * Prior to SDL 2.0.10, this function was a macro. - * - * \param context a pointer to an SDL_RWops structure - * \param offset an offset in bytes, relative to **whence** location; can be - * negative - * \param whence any of `RW_SEEK_SET`, `RW_SEEK_CUR`, `RW_SEEK_END` - * \returns the final offset in the data stream after the seek or -1 on error. - * - * \since This function is available since SDL 2.0.10. - * - * \sa SDL_RWclose - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFile - * \sa SDL_RWFromFP - * \sa SDL_RWFromMem - * \sa SDL_RWread - * \sa SDL_RWtell - * \sa SDL_RWwrite - */ -extern DECLSPEC Sint64 SDLCALL SDL_RWseek(SDL_RWops *context, - Sint64 offset, int whence); - -/** - * Determine the current read/write offset in an SDL_RWops data stream. - * - * SDL_RWtell is actually a wrapper function that calls the SDL_RWops's `seek` - * method, with an offset of 0 bytes from `RW_SEEK_CUR`, to simplify - * application development. - * - * Prior to SDL 2.0.10, this function was a macro. - * - * \param context a SDL_RWops data stream object from which to get the current - * offset - * \returns the current offset in the stream, or -1 if the information can not - * be determined. - * - * \since This function is available since SDL 2.0.10. - * - * \sa SDL_RWclose - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFile - * \sa SDL_RWFromFP - * \sa SDL_RWFromMem - * \sa SDL_RWread - * \sa SDL_RWseek - * \sa SDL_RWwrite - */ -extern DECLSPEC Sint64 SDLCALL SDL_RWtell(SDL_RWops *context); - -/** - * Read from a data source. - * - * This function reads up to `maxnum` objects each of size `size` from the - * data source to the area pointed at by `ptr`. This function may read less - * objects than requested. It will return zero when there has been an error or - * the data stream is completely read. - * - * SDL_RWread() is actually a function wrapper that calls the SDL_RWops's - * `read` method appropriately, to simplify application development. - * - * Prior to SDL 2.0.10, this function was a macro. - * - * \param context a pointer to an SDL_RWops structure - * \param ptr a pointer to a buffer to read data into - * \param size the size of each object to read, in bytes - * \param maxnum the maximum number of objects to be read - * \returns the number of objects read, or 0 at error or end of file; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.10. - * - * \sa SDL_RWclose - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFile - * \sa SDL_RWFromFP - * \sa SDL_RWFromMem - * \sa SDL_RWseek - * \sa SDL_RWwrite - */ -extern DECLSPEC size_t SDLCALL SDL_RWread(SDL_RWops *context, - void *ptr, size_t size, - size_t maxnum); - -/** - * Write to an SDL_RWops data stream. - * - * This function writes exactly `num` objects each of size `size` from the - * area pointed at by `ptr` to the stream. If this fails for any reason, it'll - * return less than `num` to demonstrate how far the write progressed. On - * success, it returns `num`. - * - * SDL_RWwrite is actually a function wrapper that calls the SDL_RWops's - * `write` method appropriately, to simplify application development. - * - * Prior to SDL 2.0.10, this function was a macro. - * - * \param context a pointer to an SDL_RWops structure - * \param ptr a pointer to a buffer containing data to write - * \param size the size of an object to write, in bytes - * \param num the number of objects to write - * \returns the number of objects written, which will be less than **num** on - * error; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.10. - * - * \sa SDL_RWclose - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFile - * \sa SDL_RWFromFP - * \sa SDL_RWFromMem - * \sa SDL_RWread - * \sa SDL_RWseek - */ -extern DECLSPEC size_t SDLCALL SDL_RWwrite(SDL_RWops *context, - const void *ptr, size_t size, - size_t num); - -/** - * Close and free an allocated SDL_RWops structure. - * - * SDL_RWclose() closes and cleans up the SDL_RWops stream. It releases any - * resources used by the stream and frees the SDL_RWops itself with - * SDL_FreeRW(). This returns 0 on success, or -1 if the stream failed to - * flush to its output (e.g. to disk). - * - * Note that if this fails to flush the stream to disk, this function reports - * an error, but the SDL_RWops is still invalid once this function returns. - * - * Prior to SDL 2.0.10, this function was a macro. - * - * \param context SDL_RWops structure to close - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.10. - * - * \sa SDL_RWFromConstMem - * \sa SDL_RWFromFile - * \sa SDL_RWFromFP - * \sa SDL_RWFromMem - * \sa SDL_RWread - * \sa SDL_RWseek - * \sa SDL_RWwrite - */ -extern DECLSPEC int SDLCALL SDL_RWclose(SDL_RWops *context); - -/** - * Load all the data from an SDL data stream. - * - * The data is allocated with a zero byte at the end (null terminated) for - * convenience. This extra byte is not included in the value reported via - * `datasize`. - * - * The data should be freed with SDL_free(). - * - * \param src the SDL_RWops to read all available data from - * \param datasize if not NULL, will store the number of bytes read - * \param freesrc if non-zero, calls SDL_RWclose() on `src` before returning - * \returns the data, or NULL if there was an error. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC void *SDLCALL SDL_LoadFile_RW(SDL_RWops *src, - size_t *datasize, - int freesrc); - -/** - * Load all the data from a file path. - * - * The data is allocated with a zero byte at the end (null terminated) for - * convenience. This extra byte is not included in the value reported via - * `datasize`. - * - * The data should be freed with SDL_free(). - * - * Prior to SDL 2.0.10, this function was a macro wrapping around - * SDL_LoadFile_RW. - * - * \param file the path to read all available data from - * \param datasize if not NULL, will store the number of bytes read - * \returns the data, or NULL if there was an error. - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC void *SDLCALL SDL_LoadFile(const char *file, size_t *datasize); - -/** - * \name Read endian functions - * - * Read an item of the specified endianness and return in native format. - */ -/* @{ */ - -/** - * Use this function to read a byte from an SDL_RWops. - * - * \param src the SDL_RWops to read from - * \returns the read byte on success or 0 on failure; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WriteU8 - */ -extern DECLSPEC Uint8 SDLCALL SDL_ReadU8(SDL_RWops * src); - -/** - * Use this function to read 16 bits of little-endian data from an SDL_RWops - * and return in native format. - * - * SDL byteswaps the data only if necessary, so the data returned will be in - * the native byte order. - * - * \param src the stream from which to read data - * \returns 16 bits of data in the native byte order of the platform. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ReadBE16 - */ -extern DECLSPEC Uint16 SDLCALL SDL_ReadLE16(SDL_RWops * src); - -/** - * Use this function to read 16 bits of big-endian data from an SDL_RWops and - * return in native format. - * - * SDL byteswaps the data only if necessary, so the data returned will be in - * the native byte order. - * - * \param src the stream from which to read data - * \returns 16 bits of data in the native byte order of the platform. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ReadLE16 - */ -extern DECLSPEC Uint16 SDLCALL SDL_ReadBE16(SDL_RWops * src); - -/** - * Use this function to read 32 bits of little-endian data from an SDL_RWops - * and return in native format. - * - * SDL byteswaps the data only if necessary, so the data returned will be in - * the native byte order. - * - * \param src the stream from which to read data - * \returns 32 bits of data in the native byte order of the platform. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ReadBE32 - */ -extern DECLSPEC Uint32 SDLCALL SDL_ReadLE32(SDL_RWops * src); - -/** - * Use this function to read 32 bits of big-endian data from an SDL_RWops and - * return in native format. - * - * SDL byteswaps the data only if necessary, so the data returned will be in - * the native byte order. - * - * \param src the stream from which to read data - * \returns 32 bits of data in the native byte order of the platform. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ReadLE32 - */ -extern DECLSPEC Uint32 SDLCALL SDL_ReadBE32(SDL_RWops * src); - -/** - * Use this function to read 64 bits of little-endian data from an SDL_RWops - * and return in native format. - * - * SDL byteswaps the data only if necessary, so the data returned will be in - * the native byte order. - * - * \param src the stream from which to read data - * \returns 64 bits of data in the native byte order of the platform. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ReadBE64 - */ -extern DECLSPEC Uint64 SDLCALL SDL_ReadLE64(SDL_RWops * src); - -/** - * Use this function to read 64 bits of big-endian data from an SDL_RWops and - * return in native format. - * - * SDL byteswaps the data only if necessary, so the data returned will be in - * the native byte order. - * - * \param src the stream from which to read data - * \returns 64 bits of data in the native byte order of the platform. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ReadLE64 - */ -extern DECLSPEC Uint64 SDLCALL SDL_ReadBE64(SDL_RWops * src); -/* @} *//* Read endian functions */ - -/** - * \name Write endian functions - * - * Write an item of native format to the specified endianness. - */ -/* @{ */ - -/** - * Use this function to write a byte to an SDL_RWops. - * - * \param dst the SDL_RWops to write to - * \param value the byte value to write - * \returns 1 on success or 0 on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ReadU8 - */ -extern DECLSPEC size_t SDLCALL SDL_WriteU8(SDL_RWops * dst, Uint8 value); - -/** - * Use this function to write 16 bits in native format to a SDL_RWops as - * little-endian data. - * - * SDL byteswaps the data only if necessary, so the application always - * specifies native format, and the data written will be in little-endian - * format. - * - * \param dst the stream to which data will be written - * \param value the data to be written, in native format - * \returns 1 on successful write, 0 on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WriteBE16 - */ -extern DECLSPEC size_t SDLCALL SDL_WriteLE16(SDL_RWops * dst, Uint16 value); - -/** - * Use this function to write 16 bits in native format to a SDL_RWops as - * big-endian data. - * - * SDL byteswaps the data only if necessary, so the application always - * specifies native format, and the data written will be in big-endian format. - * - * \param dst the stream to which data will be written - * \param value the data to be written, in native format - * \returns 1 on successful write, 0 on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WriteLE16 - */ -extern DECLSPEC size_t SDLCALL SDL_WriteBE16(SDL_RWops * dst, Uint16 value); - -/** - * Use this function to write 32 bits in native format to a SDL_RWops as - * little-endian data. - * - * SDL byteswaps the data only if necessary, so the application always - * specifies native format, and the data written will be in little-endian - * format. - * - * \param dst the stream to which data will be written - * \param value the data to be written, in native format - * \returns 1 on successful write, 0 on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WriteBE32 - */ -extern DECLSPEC size_t SDLCALL SDL_WriteLE32(SDL_RWops * dst, Uint32 value); - -/** - * Use this function to write 32 bits in native format to a SDL_RWops as - * big-endian data. - * - * SDL byteswaps the data only if necessary, so the application always - * specifies native format, and the data written will be in big-endian format. - * - * \param dst the stream to which data will be written - * \param value the data to be written, in native format - * \returns 1 on successful write, 0 on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WriteLE32 - */ -extern DECLSPEC size_t SDLCALL SDL_WriteBE32(SDL_RWops * dst, Uint32 value); - -/** - * Use this function to write 64 bits in native format to a SDL_RWops as - * little-endian data. - * - * SDL byteswaps the data only if necessary, so the application always - * specifies native format, and the data written will be in little-endian - * format. - * - * \param dst the stream to which data will be written - * \param value the data to be written, in native format - * \returns 1 on successful write, 0 on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WriteBE64 - */ -extern DECLSPEC size_t SDLCALL SDL_WriteLE64(SDL_RWops * dst, Uint64 value); - -/** - * Use this function to write 64 bits in native format to a SDL_RWops as - * big-endian data. - * - * SDL byteswaps the data only if necessary, so the application always - * specifies native format, and the data written will be in big-endian format. - * - * \param dst the stream to which data will be written - * \param value the data to be written, in native format - * \returns 1 on successful write, 0 on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WriteLE64 - */ -extern DECLSPEC size_t SDLCALL SDL_WriteBE64(SDL_RWops * dst, Uint64 value); -/* @} *//* Write endian functions */ - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_rwops_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_sensor.h b/release/SDL2.framework/Versions/A/Headers/SDL_sensor.h deleted file mode 100644 index 85129ba..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_sensor.h +++ /dev/null @@ -1,322 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_sensor.h - * - * Include file for SDL sensor event handling - * - */ - -#ifndef SDL_sensor_h_ -#define SDL_sensor_h_ - -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -extern "C" { -/* *INDENT-ON* */ -#endif - -/** - * \brief SDL_sensor.h - * - * In order to use these functions, SDL_Init() must have been called - * with the ::SDL_INIT_SENSOR flag. This causes SDL to scan the system - * for sensors, and load appropriate drivers. - */ - -struct _SDL_Sensor; -typedef struct _SDL_Sensor SDL_Sensor; - -/** - * This is a unique ID for a sensor for the time it is connected to the system, - * and is never reused for the lifetime of the application. - * - * The ID value starts at 0 and increments from there. The value -1 is an invalid ID. - */ -typedef Sint32 SDL_SensorID; - -/* The different sensors defined by SDL - * - * Additional sensors may be available, using platform dependent semantics. - * - * Hare are the additional Android sensors: - * https://developer.android.com/reference/android/hardware/SensorEvent.html#values - */ -typedef enum -{ - SDL_SENSOR_INVALID = -1, /**< Returned for an invalid sensor */ - SDL_SENSOR_UNKNOWN, /**< Unknown sensor type */ - SDL_SENSOR_ACCEL, /**< Accelerometer */ - SDL_SENSOR_GYRO, /**< Gyroscope */ - SDL_SENSOR_ACCEL_L, /**< Accelerometer for left Joy-Con controller and Wii nunchuk */ - SDL_SENSOR_GYRO_L, /**< Gyroscope for left Joy-Con controller */ - SDL_SENSOR_ACCEL_R, /**< Accelerometer for right Joy-Con controller */ - SDL_SENSOR_GYRO_R /**< Gyroscope for right Joy-Con controller */ -} SDL_SensorType; - -/** - * Accelerometer sensor - * - * The accelerometer returns the current acceleration in SI meters per - * second squared. This measurement includes the force of gravity, so - * a device at rest will have an value of SDL_STANDARD_GRAVITY away - * from the center of the earth, which is a positive Y value. - * - * values[0]: Acceleration on the x axis - * values[1]: Acceleration on the y axis - * values[2]: Acceleration on the z axis - * - * For phones held in portrait mode and game controllers held in front of you, - * the axes are defined as follows: - * -X ... +X : left ... right - * -Y ... +Y : bottom ... top - * -Z ... +Z : farther ... closer - * - * The axis data is not changed when the phone is rotated. - * - * \sa SDL_GetDisplayOrientation() - */ -#define SDL_STANDARD_GRAVITY 9.80665f - -/** - * Gyroscope sensor - * - * The gyroscope returns the current rate of rotation in radians per second. - * The rotation is positive in the counter-clockwise direction. That is, - * an observer looking from a positive location on one of the axes would - * see positive rotation on that axis when it appeared to be rotating - * counter-clockwise. - * - * values[0]: Angular speed around the x axis (pitch) - * values[1]: Angular speed around the y axis (yaw) - * values[2]: Angular speed around the z axis (roll) - * - * For phones held in portrait mode and game controllers held in front of you, - * the axes are defined as follows: - * -X ... +X : left ... right - * -Y ... +Y : bottom ... top - * -Z ... +Z : farther ... closer - * - * The axis data is not changed when the phone or controller is rotated. - * - * \sa SDL_GetDisplayOrientation() - */ - -/* Function prototypes */ - -/** - * Locking for multi-threaded access to the sensor API - * - * If you are using the sensor API or handling events from multiple threads - * you should use these locking functions to protect access to the sensors. - * - * In particular, you are guaranteed that the sensor list won't change, so the - * API functions that take a sensor index will be valid, and sensor events - * will not be delivered. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC void SDLCALL SDL_LockSensors(void); -extern DECLSPEC void SDLCALL SDL_UnlockSensors(void); - -/** - * Count the number of sensors attached to the system right now. - * - * \returns the number of sensors detected. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC int SDLCALL SDL_NumSensors(void); - -/** - * Get the implementation dependent name of a sensor. - * - * \param device_index The sensor to obtain name from - * \returns the sensor name, or NULL if `device_index` is out of range. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC const char *SDLCALL SDL_SensorGetDeviceName(int device_index); - -/** - * Get the type of a sensor. - * - * \param device_index The sensor to get the type from - * \returns the SDL_SensorType, or `SDL_SENSOR_INVALID` if `device_index` is - * out of range. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_SensorType SDLCALL SDL_SensorGetDeviceType(int device_index); - -/** - * Get the platform dependent type of a sensor. - * - * \param device_index The sensor to check - * \returns the sensor platform dependent type, or -1 if `device_index` is out - * of range. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC int SDLCALL SDL_SensorGetDeviceNonPortableType(int device_index); - -/** - * Get the instance ID of a sensor. - * - * \param device_index The sensor to get instance id from - * \returns the sensor instance ID, or -1 if `device_index` is out of range. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_SensorID SDLCALL SDL_SensorGetDeviceInstanceID(int device_index); - -/** - * Open a sensor for use. - * - * \param device_index The sensor to open - * \returns an SDL_Sensor sensor object, or NULL if an error occurred. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_Sensor *SDLCALL SDL_SensorOpen(int device_index); - -/** - * Return the SDL_Sensor associated with an instance id. - * - * \param instance_id The sensor from instance id - * \returns an SDL_Sensor object. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_Sensor *SDLCALL SDL_SensorFromInstanceID(SDL_SensorID instance_id); - -/** - * Get the implementation dependent name of a sensor - * - * \param sensor The SDL_Sensor object - * \returns the sensor name, or NULL if `sensor` is NULL. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC const char *SDLCALL SDL_SensorGetName(SDL_Sensor *sensor); - -/** - * Get the type of a sensor. - * - * \param sensor The SDL_Sensor object to inspect - * \returns the SDL_SensorType type, or `SDL_SENSOR_INVALID` if `sensor` is - * NULL. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_SensorType SDLCALL SDL_SensorGetType(SDL_Sensor *sensor); - -/** - * Get the platform dependent type of a sensor. - * - * \param sensor The SDL_Sensor object to inspect - * \returns the sensor platform dependent type, or -1 if `sensor` is NULL. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC int SDLCALL SDL_SensorGetNonPortableType(SDL_Sensor *sensor); - -/** - * Get the instance ID of a sensor. - * - * \param sensor The SDL_Sensor object to inspect - * \returns the sensor instance ID, or -1 if `sensor` is NULL. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_SensorID SDLCALL SDL_SensorGetInstanceID(SDL_Sensor *sensor); - -/** - * Get the current state of an opened sensor. - * - * The number of values and interpretation of the data is sensor dependent. - * - * \param sensor The SDL_Sensor object to query - * \param data A pointer filled with the current sensor state - * \param num_values The number of values to write to data - * \returns 0 or -1 if an error occurred. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC int SDLCALL SDL_SensorGetData(SDL_Sensor *sensor, float *data, int num_values); - -/** - * Get the current state of an opened sensor with the timestamp of the last - * update. - * - * The number of values and interpretation of the data is sensor dependent. - * - * \param sensor The SDL_Sensor object to query - * \param timestamp A pointer filled with the timestamp in microseconds of the - * current sensor reading if available, or 0 if not - * \param data A pointer filled with the current sensor state - * \param num_values The number of values to write to data - * \returns 0 or -1 if an error occurred. - * - * \since This function is available since SDL 2.26.0. - */ -extern DECLSPEC int SDLCALL SDL_SensorGetDataWithTimestamp(SDL_Sensor *sensor, Uint64 *timestamp, float *data, int num_values); - -/** - * Close a sensor previously opened with SDL_SensorOpen(). - * - * \param sensor The SDL_Sensor object to close - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC void SDLCALL SDL_SensorClose(SDL_Sensor *sensor); - -/** - * Update the current state of the open sensors. - * - * This is called automatically by the event loop if sensor events are - * enabled. - * - * This needs to be called from the thread that initialized the sensor - * subsystem. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC void SDLCALL SDL_SensorUpdate(void); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -} -/* *INDENT-ON* */ -#endif -#include - -#endif /* SDL_sensor_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_shape.h b/release/SDL2.framework/Versions/A/Headers/SDL_shape.h deleted file mode 100644 index d23a82a..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_shape.h +++ /dev/null @@ -1,155 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_shape_h_ -#define SDL_shape_h_ - -#include -#include -#include -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** \file SDL_shape.h - * - * Header file for the shaped window API. - */ - -#define SDL_NONSHAPEABLE_WINDOW -1 -#define SDL_INVALID_SHAPE_ARGUMENT -2 -#define SDL_WINDOW_LACKS_SHAPE -3 - -/** - * Create a window that can be shaped with the specified position, dimensions, - * and flags. - * - * \param title The title of the window, in UTF-8 encoding. - * \param x The x position of the window, ::SDL_WINDOWPOS_CENTERED, or - * ::SDL_WINDOWPOS_UNDEFINED. - * \param y The y position of the window, ::SDL_WINDOWPOS_CENTERED, or - * ::SDL_WINDOWPOS_UNDEFINED. - * \param w The width of the window. - * \param h The height of the window. - * \param flags The flags for the window, a mask of SDL_WINDOW_BORDERLESS with - * any of the following: ::SDL_WINDOW_OPENGL, - * ::SDL_WINDOW_INPUT_GRABBED, ::SDL_WINDOW_HIDDEN, - * ::SDL_WINDOW_RESIZABLE, ::SDL_WINDOW_MAXIMIZED, - * ::SDL_WINDOW_MINIMIZED, ::SDL_WINDOW_BORDERLESS is always set, - * and ::SDL_WINDOW_FULLSCREEN is always unset. - * \return the window created, or NULL if window creation failed. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_DestroyWindow - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_CreateShapedWindow(const char *title,unsigned int x,unsigned int y,unsigned int w,unsigned int h,Uint32 flags); - -/** - * Return whether the given window is a shaped window. - * - * \param window The window to query for being shaped. - * \return SDL_TRUE if the window is a window that can be shaped, SDL_FALSE if - * the window is unshaped or NULL. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateShapedWindow - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsShapedWindow(const SDL_Window *window); - -/** \brief An enum denoting the specific type of contents present in an SDL_WindowShapeParams union. */ -typedef enum { - /** \brief The default mode, a binarized alpha cutoff of 1. */ - ShapeModeDefault, - /** \brief A binarized alpha cutoff with a given integer value. */ - ShapeModeBinarizeAlpha, - /** \brief A binarized alpha cutoff with a given integer value, but with the opposite comparison. */ - ShapeModeReverseBinarizeAlpha, - /** \brief A color key is applied. */ - ShapeModeColorKey -} WindowShapeMode; - -#define SDL_SHAPEMODEALPHA(mode) (mode == ShapeModeDefault || mode == ShapeModeBinarizeAlpha || mode == ShapeModeReverseBinarizeAlpha) - -/** \brief A union containing parameters for shaped windows. */ -typedef union { - /** \brief A cutoff alpha value for binarization of the window shape's alpha channel. */ - Uint8 binarizationCutoff; - SDL_Color colorKey; -} SDL_WindowShapeParams; - -/** \brief A struct that tags the SDL_WindowShapeParams union with an enum describing the type of its contents. */ -typedef struct SDL_WindowShapeMode { - /** \brief The mode of these window-shape parameters. */ - WindowShapeMode mode; - /** \brief Window-shape parameters. */ - SDL_WindowShapeParams parameters; -} SDL_WindowShapeMode; - -/** - * Set the shape and parameters of a shaped window. - * - * \param window The shaped window whose parameters should be set. - * \param shape A surface encoding the desired shape for the window. - * \param shape_mode The parameters to set for the shaped window. - * \return 0 on success, SDL_INVALID_SHAPE_ARGUMENT on an invalid shape - * argument, or SDL_NONSHAPEABLE_WINDOW if the SDL_Window given does - * not reference a valid shaped window. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WindowShapeMode - * \sa SDL_GetShapedWindowMode - */ -extern DECLSPEC int SDLCALL SDL_SetWindowShape(SDL_Window *window,SDL_Surface *shape,SDL_WindowShapeMode *shape_mode); - -/** - * Get the shape parameters of a shaped window. - * - * \param window The shaped window whose parameters should be retrieved. - * \param shape_mode An empty shape-mode structure to fill, or NULL to check - * whether the window has a shape. - * \return 0 if the window has a shape and, provided shape_mode was not NULL, - * shape_mode has been filled with the mode data, - * SDL_NONSHAPEABLE_WINDOW if the SDL_Window given is not a shaped - * window, or SDL_WINDOW_LACKS_SHAPE if the SDL_Window given is a - * shapeable window currently lacking a shape. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_WindowShapeMode - * \sa SDL_SetWindowShape - */ -extern DECLSPEC int SDLCALL SDL_GetShapedWindowMode(SDL_Window *window,SDL_WindowShapeMode *shape_mode); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_shape_h_ */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_stdinc.h b/release/SDL2.framework/Versions/A/Headers/SDL_stdinc.h deleted file mode 100644 index f4f7fcc..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_stdinc.h +++ /dev/null @@ -1,838 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_stdinc.h - * - * This is a general header that includes C language support. - */ - -#ifndef SDL_stdinc_h_ -#define SDL_stdinc_h_ - -#include - -#ifdef HAVE_SYS_TYPES_H -#include -#endif -#ifdef HAVE_STDIO_H -#include -#endif -#if defined(STDC_HEADERS) -# include -# include -# include -#else -# if defined(HAVE_STDLIB_H) -# include -# elif defined(HAVE_MALLOC_H) -# include -# endif -# if defined(HAVE_STDDEF_H) -# include -# endif -# if defined(HAVE_STDARG_H) -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H) -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_WCHAR_H -# include -#endif -#if defined(HAVE_INTTYPES_H) -# include -#elif defined(HAVE_STDINT_H) -# include -#endif -#ifdef HAVE_CTYPE_H -# include -#endif -#ifdef HAVE_MATH_H -# if defined(_MSC_VER) -/* Defining _USE_MATH_DEFINES is required to get M_PI to be defined on - Visual Studio. See http://msdn.microsoft.com/en-us/library/4hwaceh6.aspx - for more information. -*/ -# ifndef _USE_MATH_DEFINES -# define _USE_MATH_DEFINES -# endif -# endif -# include -#endif -#ifdef HAVE_FLOAT_H -# include -#endif -#if defined(HAVE_ALLOCA) && !defined(alloca) -# if defined(HAVE_ALLOCA_H) -# include -# elif defined(__GNUC__) -# define alloca __builtin_alloca -# elif defined(_MSC_VER) -# include -# define alloca _alloca -# elif defined(__WATCOMC__) -# include -# elif defined(__BORLANDC__) -# include -# elif defined(__DMC__) -# include -# elif defined(__AIX__) -#pragma alloca -# elif defined(__MRC__) -void *alloca(unsigned); -# else -char *alloca(); -# endif -#endif - -#ifdef SIZE_MAX -# define SDL_SIZE_MAX SIZE_MAX -#else -# define SDL_SIZE_MAX ((size_t) -1) -#endif - -/** - * Check if the compiler supports a given builtin. - * Supported by virtually all clang versions and recent gcc. Use this - * instead of checking the clang version if possible. - */ -#ifdef __has_builtin -#define _SDL_HAS_BUILTIN(x) __has_builtin(x) -#else -#define _SDL_HAS_BUILTIN(x) 0 -#endif - -/** - * The number of elements in an array. - */ -#define SDL_arraysize(array) (sizeof(array)/sizeof(array[0])) -#define SDL_TABLESIZE(table) SDL_arraysize(table) - -/** - * Macro useful for building other macros with strings in them - * - * e.g. #define LOG_ERROR(X) OutputDebugString(SDL_STRINGIFY_ARG(__FUNCTION__) ": " X "\n") - */ -#define SDL_STRINGIFY_ARG(arg) #arg - -/** - * \name Cast operators - * - * Use proper C++ casts when compiled as C++ to be compatible with the option - * -Wold-style-cast of GCC (and -Werror=old-style-cast in GCC 4.2 and above). - */ -/* @{ */ -#ifdef __cplusplus -#define SDL_reinterpret_cast(type, expression) reinterpret_cast(expression) -#define SDL_static_cast(type, expression) static_cast(expression) -#define SDL_const_cast(type, expression) const_cast(expression) -#else -#define SDL_reinterpret_cast(type, expression) ((type)(expression)) -#define SDL_static_cast(type, expression) ((type)(expression)) -#define SDL_const_cast(type, expression) ((type)(expression)) -#endif -/* @} *//* Cast operators */ - -/* Define a four character code as a Uint32 */ -#define SDL_FOURCC(A, B, C, D) \ - ((SDL_static_cast(Uint32, SDL_static_cast(Uint8, (A))) << 0) | \ - (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (B))) << 8) | \ - (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (C))) << 16) | \ - (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (D))) << 24)) - -/** - * \name Basic data types - */ -/* @{ */ - -#ifdef __CC_ARM -/* ARM's compiler throws warnings if we use an enum: like "SDL_bool x = a < b;" */ -#define SDL_FALSE 0 -#define SDL_TRUE 1 -typedef int SDL_bool; -#else -typedef enum -{ - SDL_FALSE = 0, - SDL_TRUE = 1 -} SDL_bool; -#endif - -/** - * \brief A signed 8-bit integer type. - */ -#define SDL_MAX_SINT8 ((Sint8)0x7F) /* 127 */ -#define SDL_MIN_SINT8 ((Sint8)(~0x7F)) /* -128 */ -typedef int8_t Sint8; -/** - * \brief An unsigned 8-bit integer type. - */ -#define SDL_MAX_UINT8 ((Uint8)0xFF) /* 255 */ -#define SDL_MIN_UINT8 ((Uint8)0x00) /* 0 */ -typedef uint8_t Uint8; -/** - * \brief A signed 16-bit integer type. - */ -#define SDL_MAX_SINT16 ((Sint16)0x7FFF) /* 32767 */ -#define SDL_MIN_SINT16 ((Sint16)(~0x7FFF)) /* -32768 */ -typedef int16_t Sint16; -/** - * \brief An unsigned 16-bit integer type. - */ -#define SDL_MAX_UINT16 ((Uint16)0xFFFF) /* 65535 */ -#define SDL_MIN_UINT16 ((Uint16)0x0000) /* 0 */ -typedef uint16_t Uint16; -/** - * \brief A signed 32-bit integer type. - */ -#define SDL_MAX_SINT32 ((Sint32)0x7FFFFFFF) /* 2147483647 */ -#define SDL_MIN_SINT32 ((Sint32)(~0x7FFFFFFF)) /* -2147483648 */ -typedef int32_t Sint32; -/** - * \brief An unsigned 32-bit integer type. - */ -#define SDL_MAX_UINT32 ((Uint32)0xFFFFFFFFu) /* 4294967295 */ -#define SDL_MIN_UINT32 ((Uint32)0x00000000) /* 0 */ -typedef uint32_t Uint32; - -/** - * \brief A signed 64-bit integer type. - */ -#define SDL_MAX_SINT64 ((Sint64)0x7FFFFFFFFFFFFFFFll) /* 9223372036854775807 */ -#define SDL_MIN_SINT64 ((Sint64)(~0x7FFFFFFFFFFFFFFFll)) /* -9223372036854775808 */ -typedef int64_t Sint64; -/** - * \brief An unsigned 64-bit integer type. - */ -#define SDL_MAX_UINT64 ((Uint64)0xFFFFFFFFFFFFFFFFull) /* 18446744073709551615 */ -#define SDL_MIN_UINT64 ((Uint64)(0x0000000000000000ull)) /* 0 */ -typedef uint64_t Uint64; - -/* @} *//* Basic data types */ - -/** - * \name Floating-point constants - */ -/* @{ */ - -#ifdef FLT_EPSILON -#define SDL_FLT_EPSILON FLT_EPSILON -#else -#define SDL_FLT_EPSILON 1.1920928955078125e-07F /* 0x0.000002p0 */ -#endif - -/* @} *//* Floating-point constants */ - -/* Make sure we have macros for printing width-based integers. - * should define these but this is not true all platforms. - * (for example win32) */ -#ifndef SDL_PRIs64 -#ifdef PRIs64 -#define SDL_PRIs64 PRIs64 -#elif defined(__WIN32__) || defined(__GDK__) -#define SDL_PRIs64 "I64d" -#elif defined(__LINUX__) && defined(__LP64__) -#define SDL_PRIs64 "ld" -#else -#define SDL_PRIs64 "lld" -#endif -#endif -#ifndef SDL_PRIu64 -#ifdef PRIu64 -#define SDL_PRIu64 PRIu64 -#elif defined(__WIN32__) || defined(__GDK__) -#define SDL_PRIu64 "I64u" -#elif defined(__LINUX__) && defined(__LP64__) -#define SDL_PRIu64 "lu" -#else -#define SDL_PRIu64 "llu" -#endif -#endif -#ifndef SDL_PRIx64 -#ifdef PRIx64 -#define SDL_PRIx64 PRIx64 -#elif defined(__WIN32__) || defined(__GDK__) -#define SDL_PRIx64 "I64x" -#elif defined(__LINUX__) && defined(__LP64__) -#define SDL_PRIx64 "lx" -#else -#define SDL_PRIx64 "llx" -#endif -#endif -#ifndef SDL_PRIX64 -#ifdef PRIX64 -#define SDL_PRIX64 PRIX64 -#elif defined(__WIN32__) || defined(__GDK__) -#define SDL_PRIX64 "I64X" -#elif defined(__LINUX__) && defined(__LP64__) -#define SDL_PRIX64 "lX" -#else -#define SDL_PRIX64 "llX" -#endif -#endif -#ifndef SDL_PRIs32 -#ifdef PRId32 -#define SDL_PRIs32 PRId32 -#else -#define SDL_PRIs32 "d" -#endif -#endif -#ifndef SDL_PRIu32 -#ifdef PRIu32 -#define SDL_PRIu32 PRIu32 -#else -#define SDL_PRIu32 "u" -#endif -#endif -#ifndef SDL_PRIx32 -#ifdef PRIx32 -#define SDL_PRIx32 PRIx32 -#else -#define SDL_PRIx32 "x" -#endif -#endif -#ifndef SDL_PRIX32 -#ifdef PRIX32 -#define SDL_PRIX32 PRIX32 -#else -#define SDL_PRIX32 "X" -#endif -#endif - -/* Annotations to help code analysis tools */ -#ifdef SDL_DISABLE_ANALYZE_MACROS -#define SDL_IN_BYTECAP(x) -#define SDL_INOUT_Z_CAP(x) -#define SDL_OUT_Z_CAP(x) -#define SDL_OUT_CAP(x) -#define SDL_OUT_BYTECAP(x) -#define SDL_OUT_Z_BYTECAP(x) -#define SDL_PRINTF_FORMAT_STRING -#define SDL_SCANF_FORMAT_STRING -#define SDL_PRINTF_VARARG_FUNC( fmtargnumber ) -#define SDL_SCANF_VARARG_FUNC( fmtargnumber ) -#else -#if defined(_MSC_VER) && (_MSC_VER >= 1600) /* VS 2010 and above */ -#include - -#define SDL_IN_BYTECAP(x) _In_bytecount_(x) -#define SDL_INOUT_Z_CAP(x) _Inout_z_cap_(x) -#define SDL_OUT_Z_CAP(x) _Out_z_cap_(x) -#define SDL_OUT_CAP(x) _Out_cap_(x) -#define SDL_OUT_BYTECAP(x) _Out_bytecap_(x) -#define SDL_OUT_Z_BYTECAP(x) _Out_z_bytecap_(x) - -#define SDL_PRINTF_FORMAT_STRING _Printf_format_string_ -#define SDL_SCANF_FORMAT_STRING _Scanf_format_string_impl_ -#else -#define SDL_IN_BYTECAP(x) -#define SDL_INOUT_Z_CAP(x) -#define SDL_OUT_Z_CAP(x) -#define SDL_OUT_CAP(x) -#define SDL_OUT_BYTECAP(x) -#define SDL_OUT_Z_BYTECAP(x) -#define SDL_PRINTF_FORMAT_STRING -#define SDL_SCANF_FORMAT_STRING -#endif -#if defined(__GNUC__) -#define SDL_PRINTF_VARARG_FUNC( fmtargnumber ) __attribute__ (( format( __printf__, fmtargnumber, fmtargnumber+1 ))) -#define SDL_SCANF_VARARG_FUNC( fmtargnumber ) __attribute__ (( format( __scanf__, fmtargnumber, fmtargnumber+1 ))) -#else -#define SDL_PRINTF_VARARG_FUNC( fmtargnumber ) -#define SDL_SCANF_VARARG_FUNC( fmtargnumber ) -#endif -#endif /* SDL_DISABLE_ANALYZE_MACROS */ - -#ifndef SDL_COMPILE_TIME_ASSERT -#if defined(__cplusplus) -#if (__cplusplus >= 201103L) -#define SDL_COMPILE_TIME_ASSERT(name, x) static_assert(x, #x) -#endif -#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) -#define SDL_COMPILE_TIME_ASSERT(name, x) _Static_assert(x, #x) -#endif -#endif /* !SDL_COMPILE_TIME_ASSERT */ - -#ifndef SDL_COMPILE_TIME_ASSERT -/* universal, but may trigger -Wunused-local-typedefs */ -#define SDL_COMPILE_TIME_ASSERT(name, x) \ - typedef int SDL_compile_time_assert_ ## name[(x) * 2 - 1] -#endif - -/** \cond */ -#ifndef DOXYGEN_SHOULD_IGNORE_THIS -SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1); -SDL_COMPILE_TIME_ASSERT(sint8, sizeof(Sint8) == 1); -SDL_COMPILE_TIME_ASSERT(uint16, sizeof(Uint16) == 2); -SDL_COMPILE_TIME_ASSERT(sint16, sizeof(Sint16) == 2); -SDL_COMPILE_TIME_ASSERT(uint32, sizeof(Uint32) == 4); -SDL_COMPILE_TIME_ASSERT(sint32, sizeof(Sint32) == 4); -SDL_COMPILE_TIME_ASSERT(uint64, sizeof(Uint64) == 8); -SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8); -#endif /* DOXYGEN_SHOULD_IGNORE_THIS */ -/** \endcond */ - -/* Check to make sure enums are the size of ints, for structure packing. - For both Watcom C/C++ and Borland C/C++ the compiler option that makes - enums having the size of an int must be enabled. - This is "-b" for Borland C/C++ and "-ei" for Watcom C/C++ (v11). -*/ - -/** \cond */ -#ifndef DOXYGEN_SHOULD_IGNORE_THIS -#if !defined(__ANDROID__) && !defined(__VITA__) && !defined(__3DS__) - /* TODO: include/SDL_stdinc.h:174: error: size of array 'SDL_dummy_enum' is negative */ -typedef enum -{ - DUMMY_ENUM_VALUE -} SDL_DUMMY_ENUM; - -SDL_COMPILE_TIME_ASSERT(enum, sizeof(SDL_DUMMY_ENUM) == sizeof(int)); -#endif -#endif /* DOXYGEN_SHOULD_IGNORE_THIS */ -/** \endcond */ - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef HAVE_ALLOCA -#define SDL_stack_alloc(type, count) (type*)alloca(sizeof(type)*(count)) -#define SDL_stack_free(data) -#else -#define SDL_stack_alloc(type, count) (type*)SDL_malloc(sizeof(type)*(count)) -#define SDL_stack_free(data) SDL_free(data) -#endif - -extern DECLSPEC void *SDLCALL SDL_malloc(size_t size); -extern DECLSPEC void *SDLCALL SDL_calloc(size_t nmemb, size_t size); -extern DECLSPEC void *SDLCALL SDL_realloc(void *mem, size_t size); -extern DECLSPEC void SDLCALL SDL_free(void *mem); - -typedef void *(SDLCALL *SDL_malloc_func)(size_t size); -typedef void *(SDLCALL *SDL_calloc_func)(size_t nmemb, size_t size); -typedef void *(SDLCALL *SDL_realloc_func)(void *mem, size_t size); -typedef void (SDLCALL *SDL_free_func)(void *mem); - -/** - * Get the original set of SDL memory functions - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC void SDLCALL SDL_GetOriginalMemoryFunctions(SDL_malloc_func *malloc_func, - SDL_calloc_func *calloc_func, - SDL_realloc_func *realloc_func, - SDL_free_func *free_func); - -/** - * Get the current set of SDL memory functions - * - * \since This function is available since SDL 2.0.7. - */ -extern DECLSPEC void SDLCALL SDL_GetMemoryFunctions(SDL_malloc_func *malloc_func, - SDL_calloc_func *calloc_func, - SDL_realloc_func *realloc_func, - SDL_free_func *free_func); - -/** - * Replace SDL's memory allocation functions with a custom set - * - * \since This function is available since SDL 2.0.7. - */ -extern DECLSPEC int SDLCALL SDL_SetMemoryFunctions(SDL_malloc_func malloc_func, - SDL_calloc_func calloc_func, - SDL_realloc_func realloc_func, - SDL_free_func free_func); - -/** - * Get the number of outstanding (unfreed) allocations - * - * \since This function is available since SDL 2.0.7. - */ -extern DECLSPEC int SDLCALL SDL_GetNumAllocations(void); - -extern DECLSPEC char *SDLCALL SDL_getenv(const char *name); -extern DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value, int overwrite); - -extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, int (SDLCALL *compare) (const void *, const void *)); -extern DECLSPEC void * SDLCALL SDL_bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (SDLCALL *compare) (const void *, const void *)); - -extern DECLSPEC int SDLCALL SDL_abs(int x); - -/* NOTE: these double-evaluate their arguments, so you should never have side effects in the parameters */ -#define SDL_min(x, y) (((x) < (y)) ? (x) : (y)) -#define SDL_max(x, y) (((x) > (y)) ? (x) : (y)) -#define SDL_clamp(x, a, b) (((x) < (a)) ? (a) : (((x) > (b)) ? (b) : (x))) - -extern DECLSPEC int SDLCALL SDL_isalpha(int x); -extern DECLSPEC int SDLCALL SDL_isalnum(int x); -extern DECLSPEC int SDLCALL SDL_isblank(int x); -extern DECLSPEC int SDLCALL SDL_iscntrl(int x); -extern DECLSPEC int SDLCALL SDL_isdigit(int x); -extern DECLSPEC int SDLCALL SDL_isxdigit(int x); -extern DECLSPEC int SDLCALL SDL_ispunct(int x); -extern DECLSPEC int SDLCALL SDL_isspace(int x); -extern DECLSPEC int SDLCALL SDL_isupper(int x); -extern DECLSPEC int SDLCALL SDL_islower(int x); -extern DECLSPEC int SDLCALL SDL_isprint(int x); -extern DECLSPEC int SDLCALL SDL_isgraph(int x); -extern DECLSPEC int SDLCALL SDL_toupper(int x); -extern DECLSPEC int SDLCALL SDL_tolower(int x); - -extern DECLSPEC Uint16 SDLCALL SDL_crc16(Uint16 crc, const void *data, size_t len); -extern DECLSPEC Uint32 SDLCALL SDL_crc32(Uint32 crc, const void *data, size_t len); - -extern DECLSPEC void *SDLCALL SDL_memset(SDL_OUT_BYTECAP(len) void *dst, int c, size_t len); - -#define SDL_zero(x) SDL_memset(&(x), 0, sizeof((x))) -#define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x))) -#define SDL_zeroa(x) SDL_memset((x), 0, sizeof((x))) - -#define SDL_copyp(dst, src) \ - { SDL_COMPILE_TIME_ASSERT(SDL_copyp, sizeof (*(dst)) == sizeof (*(src))); } \ - SDL_memcpy((dst), (src), sizeof (*(src))) - - -/* Note that memset() is a byte assignment and this is a 32-bit assignment, so they're not directly equivalent. */ -SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords) -{ -#if defined(__GNUC__) && defined(__i386__) - int u0, u1, u2; - __asm__ __volatile__ ( - "cld \n\t" - "rep ; stosl \n\t" - : "=&D" (u0), "=&a" (u1), "=&c" (u2) - : "0" (dst), "1" (val), "2" (SDL_static_cast(Uint32, dwords)) - : "memory" - ); -#else - size_t _n = (dwords + 3) / 4; - Uint32 *_p = SDL_static_cast(Uint32 *, dst); - Uint32 _val = (val); - if (dwords == 0) { - return; - } - switch (dwords % 4) { - case 0: do { *_p++ = _val; SDL_FALLTHROUGH; - case 3: *_p++ = _val; SDL_FALLTHROUGH; - case 2: *_p++ = _val; SDL_FALLTHROUGH; - case 1: *_p++ = _val; - } while ( --_n ); - } -#endif -} - -extern DECLSPEC void *SDLCALL SDL_memcpy(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len); - -extern DECLSPEC void *SDLCALL SDL_memmove(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len); -extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t len); - -extern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t *wstr); -extern DECLSPEC size_t SDLCALL SDL_wcslcpy(SDL_OUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen); -extern DECLSPEC size_t SDLCALL SDL_wcslcat(SDL_INOUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen); -extern DECLSPEC wchar_t *SDLCALL SDL_wcsdup(const wchar_t *wstr); -extern DECLSPEC wchar_t *SDLCALL SDL_wcsstr(const wchar_t *haystack, const wchar_t *needle); - -extern DECLSPEC int SDLCALL SDL_wcscmp(const wchar_t *str1, const wchar_t *str2); -extern DECLSPEC int SDLCALL SDL_wcsncmp(const wchar_t *str1, const wchar_t *str2, size_t maxlen); -extern DECLSPEC int SDLCALL SDL_wcscasecmp(const wchar_t *str1, const wchar_t *str2); -extern DECLSPEC int SDLCALL SDL_wcsncasecmp(const wchar_t *str1, const wchar_t *str2, size_t len); - -extern DECLSPEC size_t SDLCALL SDL_strlen(const char *str); -extern DECLSPEC size_t SDLCALL SDL_strlcpy(SDL_OUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen); -extern DECLSPEC size_t SDLCALL SDL_utf8strlcpy(SDL_OUT_Z_CAP(dst_bytes) char *dst, const char *src, size_t dst_bytes); -extern DECLSPEC size_t SDLCALL SDL_strlcat(SDL_INOUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen); -extern DECLSPEC char *SDLCALL SDL_strdup(const char *str); -extern DECLSPEC char *SDLCALL SDL_strrev(char *str); -extern DECLSPEC char *SDLCALL SDL_strupr(char *str); -extern DECLSPEC char *SDLCALL SDL_strlwr(char *str); -extern DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c); -extern DECLSPEC char *SDLCALL SDL_strrchr(const char *str, int c); -extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack, const char *needle); -extern DECLSPEC char *SDLCALL SDL_strcasestr(const char *haystack, const char *needle); -extern DECLSPEC char *SDLCALL SDL_strtokr(char *s1, const char *s2, char **saveptr); -extern DECLSPEC size_t SDLCALL SDL_utf8strlen(const char *str); -extern DECLSPEC size_t SDLCALL SDL_utf8strnlen(const char *str, size_t bytes); - -extern DECLSPEC char *SDLCALL SDL_itoa(int value, char *str, int radix); -extern DECLSPEC char *SDLCALL SDL_uitoa(unsigned int value, char *str, int radix); -extern DECLSPEC char *SDLCALL SDL_ltoa(long value, char *str, int radix); -extern DECLSPEC char *SDLCALL SDL_ultoa(unsigned long value, char *str, int radix); -extern DECLSPEC char *SDLCALL SDL_lltoa(Sint64 value, char *str, int radix); -extern DECLSPEC char *SDLCALL SDL_ulltoa(Uint64 value, char *str, int radix); - -extern DECLSPEC int SDLCALL SDL_atoi(const char *str); -extern DECLSPEC double SDLCALL SDL_atof(const char *str); -extern DECLSPEC long SDLCALL SDL_strtol(const char *str, char **endp, int base); -extern DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *str, char **endp, int base); -extern DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *str, char **endp, int base); -extern DECLSPEC Uint64 SDLCALL SDL_strtoull(const char *str, char **endp, int base); -extern DECLSPEC double SDLCALL SDL_strtod(const char *str, char **endp); - -extern DECLSPEC int SDLCALL SDL_strcmp(const char *str1, const char *str2); -extern DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2, size_t maxlen); -extern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1, const char *str2); -extern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1, const char *str2, size_t len); - -extern DECLSPEC int SDLCALL SDL_sscanf(const char *text, SDL_SCANF_FORMAT_STRING const char *fmt, ...) SDL_SCANF_VARARG_FUNC(2); -extern DECLSPEC int SDLCALL SDL_vsscanf(const char *text, const char *fmt, va_list ap); -extern DECLSPEC int SDLCALL SDL_snprintf(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, SDL_PRINTF_FORMAT_STRING const char *fmt, ... ) SDL_PRINTF_VARARG_FUNC(3); -extern DECLSPEC int SDLCALL SDL_vsnprintf(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, const char *fmt, va_list ap); -extern DECLSPEC int SDLCALL SDL_asprintf(char **strp, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); -extern DECLSPEC int SDLCALL SDL_vasprintf(char **strp, const char *fmt, va_list ap); - -#ifndef HAVE_M_PI -#ifndef M_PI -#define M_PI 3.14159265358979323846264338327950288 /**< pi */ -#endif -#endif - -/** - * Use this function to compute arc cosine of `x`. - * - * The definition of `y = acos(x)` is `x = cos(y)`. - * - * Domain: `-1 <= x <= 1` - * - * Range: `0 <= y <= Pi` - * - * \param x floating point value, in radians. - * \returns arc cosine of `x`. - * - * \since This function is available since SDL 2.0.2. - */ -extern DECLSPEC double SDLCALL SDL_acos(double x); -extern DECLSPEC float SDLCALL SDL_acosf(float x); -extern DECLSPEC double SDLCALL SDL_asin(double x); -extern DECLSPEC float SDLCALL SDL_asinf(float x); -extern DECLSPEC double SDLCALL SDL_atan(double x); -extern DECLSPEC float SDLCALL SDL_atanf(float x); -extern DECLSPEC double SDLCALL SDL_atan2(double y, double x); -extern DECLSPEC float SDLCALL SDL_atan2f(float y, float x); -extern DECLSPEC double SDLCALL SDL_ceil(double x); -extern DECLSPEC float SDLCALL SDL_ceilf(float x); -extern DECLSPEC double SDLCALL SDL_copysign(double x, double y); -extern DECLSPEC float SDLCALL SDL_copysignf(float x, float y); -extern DECLSPEC double SDLCALL SDL_cos(double x); -extern DECLSPEC float SDLCALL SDL_cosf(float x); -extern DECLSPEC double SDLCALL SDL_exp(double x); -extern DECLSPEC float SDLCALL SDL_expf(float x); -extern DECLSPEC double SDLCALL SDL_fabs(double x); -extern DECLSPEC float SDLCALL SDL_fabsf(float x); -extern DECLSPEC double SDLCALL SDL_floor(double x); -extern DECLSPEC float SDLCALL SDL_floorf(float x); -extern DECLSPEC double SDLCALL SDL_trunc(double x); -extern DECLSPEC float SDLCALL SDL_truncf(float x); -extern DECLSPEC double SDLCALL SDL_fmod(double x, double y); -extern DECLSPEC float SDLCALL SDL_fmodf(float x, float y); -extern DECLSPEC double SDLCALL SDL_log(double x); -extern DECLSPEC float SDLCALL SDL_logf(float x); -extern DECLSPEC double SDLCALL SDL_log10(double x); -extern DECLSPEC float SDLCALL SDL_log10f(float x); -extern DECLSPEC double SDLCALL SDL_pow(double x, double y); -extern DECLSPEC float SDLCALL SDL_powf(float x, float y); -extern DECLSPEC double SDLCALL SDL_round(double x); -extern DECLSPEC float SDLCALL SDL_roundf(float x); -extern DECLSPEC long SDLCALL SDL_lround(double x); -extern DECLSPEC long SDLCALL SDL_lroundf(float x); -extern DECLSPEC double SDLCALL SDL_scalbn(double x, int n); -extern DECLSPEC float SDLCALL SDL_scalbnf(float x, int n); -extern DECLSPEC double SDLCALL SDL_sin(double x); -extern DECLSPEC float SDLCALL SDL_sinf(float x); -extern DECLSPEC double SDLCALL SDL_sqrt(double x); -extern DECLSPEC float SDLCALL SDL_sqrtf(float x); -extern DECLSPEC double SDLCALL SDL_tan(double x); -extern DECLSPEC float SDLCALL SDL_tanf(float x); - -/* The SDL implementation of iconv() returns these error codes */ -#define SDL_ICONV_ERROR (size_t)-1 -#define SDL_ICONV_E2BIG (size_t)-2 -#define SDL_ICONV_EILSEQ (size_t)-3 -#define SDL_ICONV_EINVAL (size_t)-4 - -/* SDL_iconv_* are now always real symbols/types, not macros or inlined. */ -typedef struct _SDL_iconv_t *SDL_iconv_t; -extern DECLSPEC SDL_iconv_t SDLCALL SDL_iconv_open(const char *tocode, - const char *fromcode); -extern DECLSPEC int SDLCALL SDL_iconv_close(SDL_iconv_t cd); -extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, - size_t * inbytesleft, char **outbuf, - size_t * outbytesleft); - -/** - * This function converts a buffer or string between encodings in one pass, returning a - * string that must be freed with SDL_free() or NULL on error. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode, - const char *fromcode, - const char *inbuf, - size_t inbytesleft); -#define SDL_iconv_utf8_locale(S) SDL_iconv_string("", "UTF-8", S, SDL_strlen(S)+1) -#define SDL_iconv_utf8_ucs2(S) (Uint16 *)SDL_iconv_string("UCS-2-INTERNAL", "UTF-8", S, SDL_strlen(S)+1) -#define SDL_iconv_utf8_ucs4(S) (Uint32 *)SDL_iconv_string("UCS-4-INTERNAL", "UTF-8", S, SDL_strlen(S)+1) -#define SDL_iconv_wchar_utf8(S) SDL_iconv_string("UTF-8", "WCHAR_T", (char *)S, (SDL_wcslen(S)+1)*sizeof(wchar_t)) - -/* force builds using Clang's static analysis tools to use literal C runtime - here, since there are possibly tests that are ineffective otherwise. */ -#if defined(__clang_analyzer__) && !defined(SDL_DISABLE_ANALYZE_MACROS) - -/* The analyzer knows about strlcpy even when the system doesn't provide it */ -#ifndef HAVE_STRLCPY -size_t strlcpy(char* dst, const char* src, size_t size); -#endif - -/* The analyzer knows about strlcat even when the system doesn't provide it */ -#ifndef HAVE_STRLCAT -size_t strlcat(char* dst, const char* src, size_t size); -#endif - -#ifndef HAVE_WCSLCPY -size_t wcslcpy(wchar_t *dst, const wchar_t *src, size_t size); -#endif - -#ifndef HAVE_WCSLCAT -size_t wcslcat(wchar_t *dst, const wchar_t *src, size_t size); -#endif - -/* Starting LLVM 16, the analyser errors out if these functions do not have - their prototype defined (clang-diagnostic-implicit-function-declaration) */ -#include -#include -#include - -#define SDL_malloc malloc -#define SDL_calloc calloc -#define SDL_realloc realloc -#define SDL_free free -#define SDL_memset memset -#define SDL_memcpy memcpy -#define SDL_memmove memmove -#define SDL_memcmp memcmp -#define SDL_strlcpy strlcpy -#define SDL_strlcat strlcat -#define SDL_strlen strlen -#define SDL_wcslen wcslen -#define SDL_wcslcpy wcslcpy -#define SDL_wcslcat wcslcat -#define SDL_strdup strdup -#define SDL_wcsdup wcsdup -#define SDL_strchr strchr -#define SDL_strrchr strrchr -#define SDL_strstr strstr -#define SDL_wcsstr wcsstr -#define SDL_strtokr strtok_r -#define SDL_strcmp strcmp -#define SDL_wcscmp wcscmp -#define SDL_strncmp strncmp -#define SDL_wcsncmp wcsncmp -#define SDL_strcasecmp strcasecmp -#define SDL_strncasecmp strncasecmp -#define SDL_sscanf sscanf -#define SDL_vsscanf vsscanf -#define SDL_snprintf snprintf -#define SDL_vsnprintf vsnprintf -#endif - -SDL_FORCE_INLINE void *SDL_memcpy4(SDL_OUT_BYTECAP(dwords*4) void *dst, SDL_IN_BYTECAP(dwords*4) const void *src, size_t dwords) -{ - return SDL_memcpy(dst, src, dwords * 4); -} - -/** - * If a * b would overflow, return -1. Otherwise store a * b via ret - * and return 0. - * - * \since This function is available since SDL 2.24.0. - */ -SDL_FORCE_INLINE int SDL_size_mul_overflow (size_t a, - size_t b, - size_t *ret) -{ - if (a != 0 && b > SDL_SIZE_MAX / a) { - return -1; - } - *ret = a * b; - return 0; -} - -#if _SDL_HAS_BUILTIN(__builtin_mul_overflow) -/* This needs to be wrapped in an inline rather than being a direct #define, - * because __builtin_mul_overflow() is type-generic, but we want to be - * consistent about interpreting a and b as size_t. */ -SDL_FORCE_INLINE int _SDL_size_mul_overflow_builtin (size_t a, - size_t b, - size_t *ret) -{ - return __builtin_mul_overflow(a, b, ret) == 0 ? 0 : -1; -} -#define SDL_size_mul_overflow(a, b, ret) (_SDL_size_mul_overflow_builtin(a, b, ret)) -#endif - -/** - * If a + b would overflow, return -1. Otherwise store a + b via ret - * and return 0. - * - * \since This function is available since SDL 2.24.0. - */ -SDL_FORCE_INLINE int SDL_size_add_overflow (size_t a, - size_t b, - size_t *ret) -{ - if (b > SDL_SIZE_MAX - a) { - return -1; - } - *ret = a + b; - return 0; -} - -#if _SDL_HAS_BUILTIN(__builtin_add_overflow) -/* This needs to be wrapped in an inline rather than being a direct #define, - * the same as the call to __builtin_mul_overflow() above. */ -SDL_FORCE_INLINE int _SDL_size_add_overflow_builtin (size_t a, - size_t b, - size_t *ret) -{ - return __builtin_add_overflow(a, b, ret) == 0 ? 0 : -1; -} -#define SDL_size_add_overflow(a, b, ret) (_SDL_size_add_overflow_builtin(a, b, ret)) -#endif - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_stdinc_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_surface.h b/release/SDL2.framework/Versions/A/Headers/SDL_surface.h deleted file mode 100644 index 5af1052..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_surface.h +++ /dev/null @@ -1,997 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_surface.h - * - * Header file for ::SDL_Surface definition and management functions. - */ - -#ifndef SDL_surface_h_ -#define SDL_surface_h_ - -#include -#include -#include -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \name Surface flags - * - * These are the currently supported flags for the ::SDL_Surface. - * - * \internal - * Used internally (read-only). - */ -/* @{ */ -#define SDL_SWSURFACE 0 /**< Just here for compatibility */ -#define SDL_PREALLOC 0x00000001 /**< Surface uses preallocated memory */ -#define SDL_RLEACCEL 0x00000002 /**< Surface is RLE encoded */ -#define SDL_DONTFREE 0x00000004 /**< Surface is referenced internally */ -#define SDL_SIMD_ALIGNED 0x00000008 /**< Surface uses aligned memory */ -/* @} *//* Surface flags */ - -/** - * Evaluates to true if the surface needs to be locked before access. - */ -#define SDL_MUSTLOCK(S) (((S)->flags & SDL_RLEACCEL) != 0) - -typedef struct SDL_BlitMap SDL_BlitMap; /* this is an opaque type. */ - -/** - * \brief A collection of pixels used in software blitting. - * - * \note This structure should be treated as read-only, except for \c pixels, - * which, if not NULL, contains the raw pixel data for the surface. - */ -typedef struct SDL_Surface -{ - Uint32 flags; /**< Read-only */ - SDL_PixelFormat *format; /**< Read-only */ - int w, h; /**< Read-only */ - int pitch; /**< Read-only */ - void *pixels; /**< Read-write */ - - /** Application data associated with the surface */ - void *userdata; /**< Read-write */ - - /** information needed for surfaces requiring locks */ - int locked; /**< Read-only */ - - /** list of BlitMap that hold a reference to this surface */ - void *list_blitmap; /**< Private */ - - /** clipping information */ - SDL_Rect clip_rect; /**< Read-only */ - - /** info for fast blit mapping to other surfaces */ - SDL_BlitMap *map; /**< Private */ - - /** Reference count -- used when freeing surface */ - int refcount; /**< Read-mostly */ -} SDL_Surface; - -/** - * \brief The type of function used for surface blitting functions. - */ -typedef int (SDLCALL *SDL_blit) (struct SDL_Surface * src, SDL_Rect * srcrect, - struct SDL_Surface * dst, SDL_Rect * dstrect); - -/** - * \brief The formula used for converting between YUV and RGB - */ -typedef enum -{ - SDL_YUV_CONVERSION_JPEG, /**< Full range JPEG */ - SDL_YUV_CONVERSION_BT601, /**< BT.601 (the default) */ - SDL_YUV_CONVERSION_BT709, /**< BT.709 */ - SDL_YUV_CONVERSION_AUTOMATIC /**< BT.601 for SD content, BT.709 for HD content */ -} SDL_YUV_CONVERSION_MODE; - -/** - * Allocate a new RGB surface. - * - * If `depth` is 4 or 8 bits, an empty palette is allocated for the surface. - * If `depth` is greater than 8 bits, the pixel format is set using the - * [RGBA]mask parameters. - * - * The [RGBA]mask parameters are the bitmasks used to extract that color from - * a pixel. For instance, `Rmask` being 0xFF000000 means the red data is - * stored in the most significant byte. Using zeros for the RGB masks sets a - * default value, based on the depth. For example: - * - * ```c++ - * SDL_CreateRGBSurface(0,w,h,32,0,0,0,0); - * ``` - * - * However, using zero for the Amask results in an Amask of 0. - * - * By default surfaces with an alpha mask are set up for blending as with: - * - * ```c++ - * SDL_SetSurfaceBlendMode(surface, SDL_BLENDMODE_BLEND) - * ``` - * - * You can change this by calling SDL_SetSurfaceBlendMode() and selecting a - * different `blendMode`. - * - * \param flags the flags are unused and should be set to 0 - * \param width the width of the surface - * \param height the height of the surface - * \param depth the depth of the surface in bits - * \param Rmask the red mask for the pixels - * \param Gmask the green mask for the pixels - * \param Bmask the blue mask for the pixels - * \param Amask the alpha mask for the pixels - * \returns the new SDL_Surface structure that is created or NULL if it fails; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRGBSurfaceFrom - * \sa SDL_CreateRGBSurfaceWithFormat - * \sa SDL_FreeSurface - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurface - (Uint32 flags, int width, int height, int depth, - Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask); - - -/* !!! FIXME for 2.1: why does this ask for depth? Format provides that. */ - -/** - * Allocate a new RGB surface with a specific pixel format. - * - * This function operates mostly like SDL_CreateRGBSurface(), except instead - * of providing pixel color masks, you provide it with a predefined format - * from SDL_PixelFormatEnum. - * - * \param flags the flags are unused and should be set to 0 - * \param width the width of the surface - * \param height the height of the surface - * \param depth the depth of the surface in bits - * \param format the SDL_PixelFormatEnum for the new surface's pixel format. - * \returns the new SDL_Surface structure that is created or NULL if it fails; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_CreateRGBSurface - * \sa SDL_CreateRGBSurfaceFrom - * \sa SDL_FreeSurface - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceWithFormat - (Uint32 flags, int width, int height, int depth, Uint32 format); - -/** - * Allocate a new RGB surface with existing pixel data. - * - * This function operates mostly like SDL_CreateRGBSurface(), except it does - * not allocate memory for the pixel data, instead the caller provides an - * existing buffer of data for the surface to use. - * - * No copy is made of the pixel data. Pixel data is not managed automatically; - * you must free the surface before you free the pixel data. - * - * \param pixels a pointer to existing pixel data - * \param width the width of the surface - * \param height the height of the surface - * \param depth the depth of the surface in bits - * \param pitch the pitch of the surface in bytes - * \param Rmask the red mask for the pixels - * \param Gmask the green mask for the pixels - * \param Bmask the blue mask for the pixels - * \param Amask the alpha mask for the pixels - * \returns the new SDL_Surface structure that is created or NULL if it fails; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRGBSurface - * \sa SDL_CreateRGBSurfaceWithFormat - * \sa SDL_FreeSurface - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceFrom(void *pixels, - int width, - int height, - int depth, - int pitch, - Uint32 Rmask, - Uint32 Gmask, - Uint32 Bmask, - Uint32 Amask); - -/* !!! FIXME for 2.1: why does this ask for depth? Format provides that. */ - -/** - * Allocate a new RGB surface with with a specific pixel format and existing - * pixel data. - * - * This function operates mostly like SDL_CreateRGBSurfaceFrom(), except - * instead of providing pixel color masks, you provide it with a predefined - * format from SDL_PixelFormatEnum. - * - * No copy is made of the pixel data. Pixel data is not managed automatically; - * you must free the surface before you free the pixel data. - * - * \param pixels a pointer to existing pixel data - * \param width the width of the surface - * \param height the height of the surface - * \param depth the depth of the surface in bits - * \param pitch the pitch of the surface in bytes - * \param format the SDL_PixelFormatEnum for the new surface's pixel format. - * \returns the new SDL_Surface structure that is created or NULL if it fails; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_CreateRGBSurfaceFrom - * \sa SDL_CreateRGBSurfaceWithFormat - * \sa SDL_FreeSurface - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceWithFormatFrom - (void *pixels, int width, int height, int depth, int pitch, Uint32 format); - -/** - * Free an RGB surface. - * - * It is safe to pass NULL to this function. - * - * \param surface the SDL_Surface to free. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateRGBSurface - * \sa SDL_CreateRGBSurfaceFrom - * \sa SDL_LoadBMP - * \sa SDL_LoadBMP_RW - */ -extern DECLSPEC void SDLCALL SDL_FreeSurface(SDL_Surface * surface); - -/** - * Set the palette used by a surface. - * - * A single palette can be shared with many surfaces. - * - * \param surface the SDL_Surface structure to update - * \param palette the SDL_Palette structure to use - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_SetSurfacePalette(SDL_Surface * surface, - SDL_Palette * palette); - -/** - * Set up a surface for directly accessing the pixels. - * - * Between calls to SDL_LockSurface() / SDL_UnlockSurface(), you can write to - * and read from `surface->pixels`, using the pixel format stored in - * `surface->format`. Once you are done accessing the surface, you should use - * SDL_UnlockSurface() to release it. - * - * Not all surfaces require locking. If `SDL_MUSTLOCK(surface)` evaluates to - * 0, then you can read and write to the surface at any time, and the pixel - * format of the surface will not change. - * - * \param surface the SDL_Surface structure to be locked - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_MUSTLOCK - * \sa SDL_UnlockSurface - */ -extern DECLSPEC int SDLCALL SDL_LockSurface(SDL_Surface * surface); - -/** - * Release a surface after directly accessing the pixels. - * - * \param surface the SDL_Surface structure to be unlocked - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LockSurface - */ -extern DECLSPEC void SDLCALL SDL_UnlockSurface(SDL_Surface * surface); - -/** - * Load a BMP image from a seekable SDL data stream. - * - * The new surface should be freed with SDL_FreeSurface(). Not doing so will - * result in a memory leak. - * - * src is an open SDL_RWops buffer, typically loaded with SDL_RWFromFile. - * Alternitavely, you might also use the macro SDL_LoadBMP to load a bitmap - * from a file, convert it to an SDL_Surface and then close the file. - * - * \param src the data stream for the surface - * \param freesrc non-zero to close the stream after being read - * \returns a pointer to a new SDL_Surface structure or NULL if there was an - * error; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FreeSurface - * \sa SDL_RWFromFile - * \sa SDL_LoadBMP - * \sa SDL_SaveBMP_RW - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_LoadBMP_RW(SDL_RWops * src, - int freesrc); - -/** - * Load a surface from a file. - * - * Convenience macro. - */ -#define SDL_LoadBMP(file) SDL_LoadBMP_RW(SDL_RWFromFile(file, "rb"), 1) - -/** - * Save a surface to a seekable SDL data stream in BMP format. - * - * Surfaces with a 24-bit, 32-bit and paletted 8-bit format get saved in the - * BMP directly. Other RGB formats with 8-bit or higher get converted to a - * 24-bit surface or, if they have an alpha mask or a colorkey, to a 32-bit - * surface before they are saved. YUV and paletted 1-bit and 4-bit formats are - * not supported. - * - * \param surface the SDL_Surface structure containing the image to be saved - * \param dst a data stream to save to - * \param freedst non-zero to close the stream after being written - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_LoadBMP_RW - * \sa SDL_SaveBMP - */ -extern DECLSPEC int SDLCALL SDL_SaveBMP_RW - (SDL_Surface * surface, SDL_RWops * dst, int freedst); - -/** - * Save a surface to a file. - * - * Convenience macro. - */ -#define SDL_SaveBMP(surface, file) \ - SDL_SaveBMP_RW(surface, SDL_RWFromFile(file, "wb"), 1) - -/** - * Set the RLE acceleration hint for a surface. - * - * If RLE is enabled, color key and alpha blending blits are much faster, but - * the surface must be locked before directly accessing the pixels. - * - * \param surface the SDL_Surface structure to optimize - * \param flag 0 to disable, non-zero to enable RLE acceleration - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitSurface - * \sa SDL_LockSurface - * \sa SDL_UnlockSurface - */ -extern DECLSPEC int SDLCALL SDL_SetSurfaceRLE(SDL_Surface * surface, - int flag); - -/** - * Returns whether the surface is RLE enabled - * - * It is safe to pass a NULL `surface` here; it will return SDL_FALSE. - * - * \param surface the SDL_Surface structure to query - * \returns SDL_TRUE if the surface is RLE enabled, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.14. - * - * \sa SDL_SetSurfaceRLE - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasSurfaceRLE(SDL_Surface * surface); - -/** - * Set the color key (transparent pixel) in a surface. - * - * The color key defines a pixel value that will be treated as transparent in - * a blit. For example, one can use this to specify that cyan pixels should be - * considered transparent, and therefore not rendered. - * - * It is a pixel of the format used by the surface, as generated by - * SDL_MapRGB(). - * - * RLE acceleration can substantially speed up blitting of images with large - * horizontal runs of transparent pixels. See SDL_SetSurfaceRLE() for details. - * - * \param surface the SDL_Surface structure to update - * \param flag SDL_TRUE to enable color key, SDL_FALSE to disable color key - * \param key the transparent pixel - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitSurface - * \sa SDL_GetColorKey - */ -extern DECLSPEC int SDLCALL SDL_SetColorKey(SDL_Surface * surface, - int flag, Uint32 key); - -/** - * Returns whether the surface has a color key - * - * It is safe to pass a NULL `surface` here; it will return SDL_FALSE. - * - * \param surface the SDL_Surface structure to query - * \return SDL_TRUE if the surface has a color key, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.9. - * - * \sa SDL_SetColorKey - * \sa SDL_GetColorKey - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasColorKey(SDL_Surface * surface); - -/** - * Get the color key (transparent pixel) for a surface. - * - * The color key is a pixel of the format used by the surface, as generated by - * SDL_MapRGB(). - * - * If the surface doesn't have color key enabled this function returns -1. - * - * \param surface the SDL_Surface structure to query - * \param key a pointer filled in with the transparent pixel - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitSurface - * \sa SDL_SetColorKey - */ -extern DECLSPEC int SDLCALL SDL_GetColorKey(SDL_Surface * surface, - Uint32 * key); - -/** - * Set an additional color value multiplied into blit operations. - * - * When this surface is blitted, during the blit operation each source color - * channel is modulated by the appropriate color value according to the - * following formula: - * - * `srcC = srcC * (color / 255)` - * - * \param surface the SDL_Surface structure to update - * \param r the red color value multiplied into blit operations - * \param g the green color value multiplied into blit operations - * \param b the blue color value multiplied into blit operations - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetSurfaceColorMod - * \sa SDL_SetSurfaceAlphaMod - */ -extern DECLSPEC int SDLCALL SDL_SetSurfaceColorMod(SDL_Surface * surface, - Uint8 r, Uint8 g, Uint8 b); - - -/** - * Get the additional color value multiplied into blit operations. - * - * \param surface the SDL_Surface structure to query - * \param r a pointer filled in with the current red color value - * \param g a pointer filled in with the current green color value - * \param b a pointer filled in with the current blue color value - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetSurfaceAlphaMod - * \sa SDL_SetSurfaceColorMod - */ -extern DECLSPEC int SDLCALL SDL_GetSurfaceColorMod(SDL_Surface * surface, - Uint8 * r, Uint8 * g, - Uint8 * b); - -/** - * Set an additional alpha value used in blit operations. - * - * When this surface is blitted, during the blit operation the source alpha - * value is modulated by this alpha value according to the following formula: - * - * `srcA = srcA * (alpha / 255)` - * - * \param surface the SDL_Surface structure to update - * \param alpha the alpha value multiplied into blit operations - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetSurfaceAlphaMod - * \sa SDL_SetSurfaceColorMod - */ -extern DECLSPEC int SDLCALL SDL_SetSurfaceAlphaMod(SDL_Surface * surface, - Uint8 alpha); - -/** - * Get the additional alpha value used in blit operations. - * - * \param surface the SDL_Surface structure to query - * \param alpha a pointer filled in with the current alpha value - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetSurfaceColorMod - * \sa SDL_SetSurfaceAlphaMod - */ -extern DECLSPEC int SDLCALL SDL_GetSurfaceAlphaMod(SDL_Surface * surface, - Uint8 * alpha); - -/** - * Set the blend mode used for blit operations. - * - * To copy a surface to another surface (or texture) without blending with the - * existing data, the blendmode of the SOURCE surface should be set to - * `SDL_BLENDMODE_NONE`. - * - * \param surface the SDL_Surface structure to update - * \param blendMode the SDL_BlendMode to use for blit blending - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetSurfaceBlendMode - */ -extern DECLSPEC int SDLCALL SDL_SetSurfaceBlendMode(SDL_Surface * surface, - SDL_BlendMode blendMode); - -/** - * Get the blend mode used for blit operations. - * - * \param surface the SDL_Surface structure to query - * \param blendMode a pointer filled in with the current SDL_BlendMode - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetSurfaceBlendMode - */ -extern DECLSPEC int SDLCALL SDL_GetSurfaceBlendMode(SDL_Surface * surface, - SDL_BlendMode *blendMode); - -/** - * Set the clipping rectangle for a surface. - * - * When `surface` is the destination of a blit, only the area within the clip - * rectangle is drawn into. - * - * Note that blits are automatically clipped to the edges of the source and - * destination surfaces. - * - * \param surface the SDL_Surface structure to be clipped - * \param rect the SDL_Rect structure representing the clipping rectangle, or - * NULL to disable clipping - * \returns SDL_TRUE if the rectangle intersects the surface, otherwise - * SDL_FALSE and blits will be completely clipped. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitSurface - * \sa SDL_GetClipRect - */ -extern DECLSPEC SDL_bool SDLCALL SDL_SetClipRect(SDL_Surface * surface, - const SDL_Rect * rect); - -/** - * Get the clipping rectangle for a surface. - * - * When `surface` is the destination of a blit, only the area within the clip - * rectangle is drawn into. - * - * \param surface the SDL_Surface structure representing the surface to be - * clipped - * \param rect an SDL_Rect structure filled in with the clipping rectangle for - * the surface - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitSurface - * \sa SDL_SetClipRect - */ -extern DECLSPEC void SDLCALL SDL_GetClipRect(SDL_Surface * surface, - SDL_Rect * rect); - -/* - * Creates a new surface identical to the existing surface. - * - * The returned surface should be freed with SDL_FreeSurface(). - * - * \param surface the surface to duplicate. - * \returns a copy of the surface, or NULL on failure; call SDL_GetError() for - * more information. - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_DuplicateSurface(SDL_Surface * surface); - -/** - * Copy an existing surface to a new surface of the specified format. - * - * This function is used to optimize images for faster *repeat* blitting. This - * is accomplished by converting the original and storing the result as a new - * surface. The new, optimized surface can then be used as the source for - * future blits, making them faster. - * - * \param src the existing SDL_Surface structure to convert - * \param fmt the SDL_PixelFormat structure that the new surface is optimized - * for - * \param flags the flags are unused and should be set to 0; this is a - * leftover from SDL 1.2's API - * \returns the new SDL_Surface structure that is created or NULL if it fails; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AllocFormat - * \sa SDL_ConvertSurfaceFormat - * \sa SDL_CreateRGBSurface - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_ConvertSurface - (SDL_Surface * src, const SDL_PixelFormat * fmt, Uint32 flags); - -/** - * Copy an existing surface to a new surface of the specified format enum. - * - * This function operates just like SDL_ConvertSurface(), but accepts an - * SDL_PixelFormatEnum value instead of an SDL_PixelFormat structure. As such, - * it might be easier to call but it doesn't have access to palette - * information for the destination surface, in case that would be important. - * - * \param src the existing SDL_Surface structure to convert - * \param pixel_format the SDL_PixelFormatEnum that the new surface is - * optimized for - * \param flags the flags are unused and should be set to 0; this is a - * leftover from SDL 1.2's API - * \returns the new SDL_Surface structure that is created or NULL if it fails; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AllocFormat - * \sa SDL_ConvertSurface - * \sa SDL_CreateRGBSurface - */ -extern DECLSPEC SDL_Surface *SDLCALL SDL_ConvertSurfaceFormat - (SDL_Surface * src, Uint32 pixel_format, Uint32 flags); - -/** - * Copy a block of pixels of one format to another format. - * - * \param width the width of the block to copy, in pixels - * \param height the height of the block to copy, in pixels - * \param src_format an SDL_PixelFormatEnum value of the `src` pixels format - * \param src a pointer to the source pixels - * \param src_pitch the pitch of the source pixels, in bytes - * \param dst_format an SDL_PixelFormatEnum value of the `dst` pixels format - * \param dst a pointer to be filled in with new pixel data - * \param dst_pitch the pitch of the destination pixels, in bytes - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_ConvertPixels(int width, int height, - Uint32 src_format, - const void * src, int src_pitch, - Uint32 dst_format, - void * dst, int dst_pitch); - -/** - * Premultiply the alpha on a block of pixels. - * - * This is safe to use with src == dst, but not for other overlapping areas. - * - * This function is currently only implemented for SDL_PIXELFORMAT_ARGB8888. - * - * \param width the width of the block to convert, in pixels - * \param height the height of the block to convert, in pixels - * \param src_format an SDL_PixelFormatEnum value of the `src` pixels format - * \param src a pointer to the source pixels - * \param src_pitch the pitch of the source pixels, in bytes - * \param dst_format an SDL_PixelFormatEnum value of the `dst` pixels format - * \param dst a pointer to be filled in with premultiplied pixel data - * \param dst_pitch the pitch of the destination pixels, in bytes - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_PremultiplyAlpha(int width, int height, - Uint32 src_format, - const void * src, int src_pitch, - Uint32 dst_format, - void * dst, int dst_pitch); - -/** - * Perform a fast fill of a rectangle with a specific color. - * - * `color` should be a pixel of the format used by the surface, and can be - * generated by SDL_MapRGB() or SDL_MapRGBA(). If the color value contains an - * alpha component then the destination is simply filled with that alpha - * information, no blending takes place. - * - * If there is a clip rectangle set on the destination (set via - * SDL_SetClipRect()), then this function will fill based on the intersection - * of the clip rectangle and `rect`. - * - * \param dst the SDL_Surface structure that is the drawing target - * \param rect the SDL_Rect structure representing the rectangle to fill, or - * NULL to fill the entire surface - * \param color the color to fill with - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FillRects - */ -extern DECLSPEC int SDLCALL SDL_FillRect - (SDL_Surface * dst, const SDL_Rect * rect, Uint32 color); - -/** - * Perform a fast fill of a set of rectangles with a specific color. - * - * `color` should be a pixel of the format used by the surface, and can be - * generated by SDL_MapRGB() or SDL_MapRGBA(). If the color value contains an - * alpha component then the destination is simply filled with that alpha - * information, no blending takes place. - * - * If there is a clip rectangle set on the destination (set via - * SDL_SetClipRect()), then this function will fill based on the intersection - * of the clip rectangle and `rect`. - * - * \param dst the SDL_Surface structure that is the drawing target - * \param rects an array of SDL_Rects representing the rectangles to fill. - * \param count the number of rectangles in the array - * \param color the color to fill with - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_FillRect - */ -extern DECLSPEC int SDLCALL SDL_FillRects - (SDL_Surface * dst, const SDL_Rect * rects, int count, Uint32 color); - -/* !!! FIXME: merge this documentation with the wiki */ -/** - * Performs a fast blit from the source surface to the destination surface. - * - * This assumes that the source and destination rectangles are - * the same size. If either \c srcrect or \c dstrect are NULL, the entire - * surface (\c src or \c dst) is copied. The final blit rectangles are saved - * in \c srcrect and \c dstrect after all clipping is performed. - * - * \returns 0 if the blit is successful, otherwise it returns -1. - * - * The blit function should not be called on a locked surface. - * - * The blit semantics for surfaces with and without blending and colorkey - * are defined as follows: - * \verbatim - RGBA->RGB: - Source surface blend mode set to SDL_BLENDMODE_BLEND: - alpha-blend (using the source alpha-channel and per-surface alpha) - SDL_SRCCOLORKEY ignored. - Source surface blend mode set to SDL_BLENDMODE_NONE: - copy RGB. - if SDL_SRCCOLORKEY set, only copy the pixels matching the - RGB values of the source color key, ignoring alpha in the - comparison. - - RGB->RGBA: - Source surface blend mode set to SDL_BLENDMODE_BLEND: - alpha-blend (using the source per-surface alpha) - Source surface blend mode set to SDL_BLENDMODE_NONE: - copy RGB, set destination alpha to source per-surface alpha value. - both: - if SDL_SRCCOLORKEY set, only copy the pixels matching the - source color key. - - RGBA->RGBA: - Source surface blend mode set to SDL_BLENDMODE_BLEND: - alpha-blend (using the source alpha-channel and per-surface alpha) - SDL_SRCCOLORKEY ignored. - Source surface blend mode set to SDL_BLENDMODE_NONE: - copy all of RGBA to the destination. - if SDL_SRCCOLORKEY set, only copy the pixels matching the - RGB values of the source color key, ignoring alpha in the - comparison. - - RGB->RGB: - Source surface blend mode set to SDL_BLENDMODE_BLEND: - alpha-blend (using the source per-surface alpha) - Source surface blend mode set to SDL_BLENDMODE_NONE: - copy RGB. - both: - if SDL_SRCCOLORKEY set, only copy the pixels matching the - source color key. - \endverbatim - * - * You should call SDL_BlitSurface() unless you know exactly how SDL - * blitting works internally and how to use the other blit functions. - */ -#define SDL_BlitSurface SDL_UpperBlit - -/** - * Perform a fast blit from the source surface to the destination surface. - * - * SDL_UpperBlit() has been replaced by SDL_BlitSurface(), which is merely a - * macro for this function with a less confusing name. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitSurface - */ -extern DECLSPEC int SDLCALL SDL_UpperBlit - (SDL_Surface * src, const SDL_Rect * srcrect, - SDL_Surface * dst, SDL_Rect * dstrect); - -/** - * Perform low-level surface blitting only. - * - * This is a semi-private blit function and it performs low-level surface - * blitting, assuming the input rectangles have already been clipped. - * - * Unless you know what you're doing, you should be using SDL_BlitSurface() - * instead. - * - * \param src the SDL_Surface structure to be copied from - * \param srcrect the SDL_Rect structure representing the rectangle to be - * copied, or NULL to copy the entire surface - * \param dst the SDL_Surface structure that is the blit target - * \param dstrect the SDL_Rect structure representing the rectangle that is - * copied into - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitSurface - */ -extern DECLSPEC int SDLCALL SDL_LowerBlit - (SDL_Surface * src, SDL_Rect * srcrect, - SDL_Surface * dst, SDL_Rect * dstrect); - - -/** - * Perform a fast, low quality, stretch blit between two surfaces of the same - * format. - * - * Please use SDL_BlitScaled() instead. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_SoftStretch(SDL_Surface * src, - const SDL_Rect * srcrect, - SDL_Surface * dst, - const SDL_Rect * dstrect); - -/** - * Perform bilinear scaling between two surfaces of the same format, 32BPP. - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC int SDLCALL SDL_SoftStretchLinear(SDL_Surface * src, - const SDL_Rect * srcrect, - SDL_Surface * dst, - const SDL_Rect * dstrect); - - -#define SDL_BlitScaled SDL_UpperBlitScaled - -/** - * Perform a scaled surface copy to a destination surface. - * - * SDL_UpperBlitScaled() has been replaced by SDL_BlitScaled(), which is - * merely a macro for this function with a less confusing name. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitScaled - */ -extern DECLSPEC int SDLCALL SDL_UpperBlitScaled - (SDL_Surface * src, const SDL_Rect * srcrect, - SDL_Surface * dst, SDL_Rect * dstrect); - -/** - * Perform low-level surface scaled blitting only. - * - * This is a semi-private function and it performs low-level surface blitting, - * assuming the input rectangles have already been clipped. - * - * \param src the SDL_Surface structure to be copied from - * \param srcrect the SDL_Rect structure representing the rectangle to be - * copied - * \param dst the SDL_Surface structure that is the blit target - * \param dstrect the SDL_Rect structure representing the rectangle that is - * copied into - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_BlitScaled - */ -extern DECLSPEC int SDLCALL SDL_LowerBlitScaled - (SDL_Surface * src, SDL_Rect * srcrect, - SDL_Surface * dst, SDL_Rect * dstrect); - -/** - * Set the YUV conversion mode - * - * \since This function is available since SDL 2.0.8. - */ -extern DECLSPEC void SDLCALL SDL_SetYUVConversionMode(SDL_YUV_CONVERSION_MODE mode); - -/** - * Get the YUV conversion mode - * - * \since This function is available since SDL 2.0.8. - */ -extern DECLSPEC SDL_YUV_CONVERSION_MODE SDLCALL SDL_GetYUVConversionMode(void); - -/** - * Get the YUV conversion mode, returning the correct mode for the resolution - * when the current conversion mode is SDL_YUV_CONVERSION_AUTOMATIC - * - * \since This function is available since SDL 2.0.8. - */ -extern DECLSPEC SDL_YUV_CONVERSION_MODE SDLCALL SDL_GetYUVConversionModeForResolution(int width, int height); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_surface_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_system.h b/release/SDL2.framework/Versions/A/Headers/SDL_system.h deleted file mode 100644 index 1a443ba..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_system.h +++ /dev/null @@ -1,623 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_system.h - * - * Include file for platform specific SDL API functions - */ - -#ifndef SDL_system_h_ -#define SDL_system_h_ - -#include -#include -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - - -/* Platform specific functions for Windows */ -#if defined(__WIN32__) || defined(__GDK__) - -typedef void (SDLCALL * SDL_WindowsMessageHook)(void *userdata, void *hWnd, unsigned int message, Uint64 wParam, Sint64 lParam); - -/** - * Set a callback for every Windows message, run before TranslateMessage(). - * - * \param callback The SDL_WindowsMessageHook function to call. - * \param userdata a pointer to pass to every iteration of `callback` - * - * \since This function is available since SDL 2.0.4. - */ -extern DECLSPEC void SDLCALL SDL_SetWindowsMessageHook(SDL_WindowsMessageHook callback, void *userdata); - -#endif /* defined(__WIN32__) || defined(__GDK__) */ - -#if defined(__WIN32__) || defined(__WINGDK__) - -/** - * Get the D3D9 adapter index that matches the specified display index. - * - * The returned adapter index can be passed to `IDirect3D9::CreateDevice` and - * controls on which monitor a full screen application will appear. - * - * \param displayIndex the display index for which to get the D3D9 adapter - * index - * \returns the D3D9 adapter index on success or a negative error code on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.1. - */ -extern DECLSPEC int SDLCALL SDL_Direct3D9GetAdapterIndex( int displayIndex ); - -typedef struct IDirect3DDevice9 IDirect3DDevice9; - -/** - * Get the D3D9 device associated with a renderer. - * - * Once you are done using the device, you should release it to avoid a - * resource leak. - * - * \param renderer the renderer from which to get the associated D3D device - * \returns the D3D9 device associated with given renderer or NULL if it is - * not a D3D9 renderer; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.1. - */ -extern DECLSPEC IDirect3DDevice9* SDLCALL SDL_RenderGetD3D9Device(SDL_Renderer * renderer); - -typedef struct ID3D11Device ID3D11Device; - -/** - * Get the D3D11 device associated with a renderer. - * - * Once you are done using the device, you should release it to avoid a - * resource leak. - * - * \param renderer the renderer from which to get the associated D3D11 device - * \returns the D3D11 device associated with given renderer or NULL if it is - * not a D3D11 renderer; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC ID3D11Device* SDLCALL SDL_RenderGetD3D11Device(SDL_Renderer * renderer); - -#endif /* defined(__WIN32__) || defined(__WINGDK__) */ - -#if defined(__WIN32__) || defined(__GDK__) - -typedef struct ID3D12Device ID3D12Device; - -/** - * Get the D3D12 device associated with a renderer. - * - * Once you are done using the device, you should release it to avoid a - * resource leak. - * - * \param renderer the renderer from which to get the associated D3D12 device - * \returns the D3D12 device associated with given renderer or NULL if it is - * not a D3D12 renderer; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC ID3D12Device* SDLCALL SDL_RenderGetD3D12Device(SDL_Renderer* renderer); - -#endif /* defined(__WIN32__) || defined(__GDK__) */ - -#if defined(__WIN32__) || defined(__WINGDK__) - -/** - * Get the DXGI Adapter and Output indices for the specified display index. - * - * The DXGI Adapter and Output indices can be passed to `EnumAdapters` and - * `EnumOutputs` respectively to get the objects required to create a DX10 or - * DX11 device and swap chain. - * - * Before SDL 2.0.4 this function did not return a value. Since SDL 2.0.4 it - * returns an SDL_bool. - * - * \param displayIndex the display index for which to get both indices - * \param adapterIndex a pointer to be filled in with the adapter index - * \param outputIndex a pointer to be filled in with the output index - * \returns SDL_TRUE on success or SDL_FALSE on failure; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.2. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_DXGIGetOutputInfo( int displayIndex, int *adapterIndex, int *outputIndex ); - -#endif /* defined(__WIN32__) || defined(__WINGDK__) */ - -/* Platform specific functions for Linux */ -#ifdef __LINUX__ - -/** - * Sets the UNIX nice value for a thread. - * - * This uses setpriority() if possible, and RealtimeKit if available. - * - * \param threadID the Unix thread ID to change priority of. - * \param priority The new, Unix-specific, priority value. - * \returns 0 on success, or -1 on error. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC int SDLCALL SDL_LinuxSetThreadPriority(Sint64 threadID, int priority); - -/** - * Sets the priority (not nice level) and scheduling policy for a thread. - * - * This uses setpriority() if possible, and RealtimeKit if available. - * - * \param threadID The Unix thread ID to change priority of. - * \param sdlPriority The new SDL_ThreadPriority value. - * \param schedPolicy The new scheduling policy (SCHED_FIFO, SCHED_RR, - * SCHED_OTHER, etc...) - * \returns 0 on success, or -1 on error. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC int SDLCALL SDL_LinuxSetThreadPriorityAndPolicy(Sint64 threadID, int sdlPriority, int schedPolicy); - -#endif /* __LINUX__ */ - -/* Platform specific functions for iOS */ -#ifdef __IPHONEOS__ - -#define SDL_iOSSetAnimationCallback(window, interval, callback, callbackParam) SDL_iPhoneSetAnimationCallback(window, interval, callback, callbackParam) - -/** - * Use this function to set the animation callback on Apple iOS. - * - * The function prototype for `callback` is: - * - * ```c - * void callback(void* callbackParam); - * ``` - * - * Where its parameter, `callbackParam`, is what was passed as `callbackParam` - * to SDL_iPhoneSetAnimationCallback(). - * - * This function is only available on Apple iOS. - * - * For more information see: - * https://github.com/libsdl-org/SDL/blob/main/docs/README-ios.md - * - * This functions is also accessible using the macro - * SDL_iOSSetAnimationCallback() since SDL 2.0.4. - * - * \param window the window for which the animation callback should be set - * \param interval the number of frames after which **callback** will be - * called - * \param callback the function to call for every frame. - * \param callbackParam a pointer that is passed to `callback`. - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_iPhoneSetEventPump - */ -extern DECLSPEC int SDLCALL SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (SDLCALL *callback)(void*), void *callbackParam); - -#define SDL_iOSSetEventPump(enabled) SDL_iPhoneSetEventPump(enabled) - -/** - * Use this function to enable or disable the SDL event pump on Apple iOS. - * - * This function is only available on Apple iOS. - * - * This functions is also accessible using the macro SDL_iOSSetEventPump() - * since SDL 2.0.4. - * - * \param enabled SDL_TRUE to enable the event pump, SDL_FALSE to disable it - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_iPhoneSetAnimationCallback - */ -extern DECLSPEC void SDLCALL SDL_iPhoneSetEventPump(SDL_bool enabled); - -#endif /* __IPHONEOS__ */ - - -/* Platform specific functions for Android */ -#ifdef __ANDROID__ - -/** - * Get the Android Java Native Interface Environment of the current thread. - * - * This is the JNIEnv one needs to access the Java virtual machine from native - * code, and is needed for many Android APIs to be usable from C. - * - * The prototype of the function in SDL's code actually declare a void* return - * type, even if the implementation returns a pointer to a JNIEnv. The - * rationale being that the SDL headers can avoid including jni.h. - * - * \returns a pointer to Java native interface object (JNIEnv) to which the - * current thread is attached, or 0 on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AndroidGetActivity - */ -extern DECLSPEC void * SDLCALL SDL_AndroidGetJNIEnv(void); - -/** - * Retrieve the Java instance of the Android activity class. - * - * The prototype of the function in SDL's code actually declares a void* - * return type, even if the implementation returns a jobject. The rationale - * being that the SDL headers can avoid including jni.h. - * - * The jobject returned by the function is a local reference and must be - * released by the caller. See the PushLocalFrame() and PopLocalFrame() or - * DeleteLocalRef() functions of the Java native interface: - * - * https://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/functions.html - * - * \returns the jobject representing the instance of the Activity class of the - * Android application, or NULL on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AndroidGetJNIEnv - */ -extern DECLSPEC void * SDLCALL SDL_AndroidGetActivity(void); - -/** - * Query Android API level of the current device. - * - * - API level 31: Android 12 - * - API level 30: Android 11 - * - API level 29: Android 10 - * - API level 28: Android 9 - * - API level 27: Android 8.1 - * - API level 26: Android 8.0 - * - API level 25: Android 7.1 - * - API level 24: Android 7.0 - * - API level 23: Android 6.0 - * - API level 22: Android 5.1 - * - API level 21: Android 5.0 - * - API level 20: Android 4.4W - * - API level 19: Android 4.4 - * - API level 18: Android 4.3 - * - API level 17: Android 4.2 - * - API level 16: Android 4.1 - * - API level 15: Android 4.0.3 - * - API level 14: Android 4.0 - * - API level 13: Android 3.2 - * - API level 12: Android 3.1 - * - API level 11: Android 3.0 - * - API level 10: Android 2.3.3 - * - * \returns the Android API level. - * - * \since This function is available since SDL 2.0.12. - */ -extern DECLSPEC int SDLCALL SDL_GetAndroidSDKVersion(void); - -/** - * Query if the application is running on Android TV. - * - * \returns SDL_TRUE if this is Android TV, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.8. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsAndroidTV(void); - -/** - * Query if the application is running on a Chromebook. - * - * \returns SDL_TRUE if this is a Chromebook, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsChromebook(void); - -/** - * Query if the application is running on a Samsung DeX docking station. - * - * \returns SDL_TRUE if this is a DeX docking station, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsDeXMode(void); - -/** - * Trigger the Android system back button behavior. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC void SDLCALL SDL_AndroidBackButton(void); - -/** - See the official Android developer guide for more information: - http://developer.android.com/guide/topics/data/data-storage.html -*/ -#define SDL_ANDROID_EXTERNAL_STORAGE_READ 0x01 -#define SDL_ANDROID_EXTERNAL_STORAGE_WRITE 0x02 - -/** - * Get the path used for internal storage for this application. - * - * This path is unique to your application and cannot be written to by other - * applications. - * - * Your internal storage path is typically: - * `/data/data/your.app.package/files`. - * - * \returns the path used for internal storage or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AndroidGetExternalStorageState - */ -extern DECLSPEC const char * SDLCALL SDL_AndroidGetInternalStoragePath(void); - -/** - * Get the current state of external storage. - * - * The current state of external storage, a bitmask of these values: - * `SDL_ANDROID_EXTERNAL_STORAGE_READ`, `SDL_ANDROID_EXTERNAL_STORAGE_WRITE`. - * - * If external storage is currently unavailable, this will return 0. - * - * \returns the current state of external storage on success or 0 on failure; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AndroidGetExternalStoragePath - */ -extern DECLSPEC int SDLCALL SDL_AndroidGetExternalStorageState(void); - -/** - * Get the path used for external storage for this application. - * - * This path is unique to your application, but is public and can be written - * to by other applications. - * - * Your external storage path is typically: - * `/storage/sdcard0/Android/data/your.app.package/files`. - * - * \returns the path used for external storage for this application on success - * or NULL on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AndroidGetExternalStorageState - */ -extern DECLSPEC const char * SDLCALL SDL_AndroidGetExternalStoragePath(void); - -/** - * Request permissions at runtime. - * - * This blocks the calling thread until the permission is granted or denied. - * - * \param permission The permission to request. - * \returns SDL_TRUE if the permission was granted, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.14. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_AndroidRequestPermission(const char *permission); - -/** - * Shows an Android toast notification. - * - * Toasts are a sort of lightweight notification that are unique to Android. - * - * https://developer.android.com/guide/topics/ui/notifiers/toasts - * - * Shows toast in UI thread. - * - * For the `gravity` parameter, choose a value from here, or -1 if you don't - * have a preference: - * - * https://developer.android.com/reference/android/view/Gravity - * - * \param message text message to be shown - * \param duration 0=short, 1=long - * \param gravity where the notification should appear on the screen. - * \param xoffset set this parameter only when gravity >=0 - * \param yoffset set this parameter only when gravity >=0 - * \returns 0 if success, -1 if any error occurs. - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC int SDLCALL SDL_AndroidShowToast(const char* message, int duration, int gravity, int xoffset, int yoffset); - -/** - * Send a user command to SDLActivity. - * - * Override "boolean onUnhandledMessage(Message msg)" to handle the message. - * - * \param command user command that must be greater or equal to 0x8000 - * \param param user parameter - * - * \since This function is available since SDL 2.0.22. - */ -extern DECLSPEC int SDLCALL SDL_AndroidSendMessage(Uint32 command, int param); - -#endif /* __ANDROID__ */ - -/* Platform specific functions for WinRT */ -#ifdef __WINRT__ - -/** - * \brief WinRT / Windows Phone path types - */ -typedef enum -{ - /** \brief The installed app's root directory. - Files here are likely to be read-only. */ - SDL_WINRT_PATH_INSTALLED_LOCATION, - - /** \brief The app's local data store. Files may be written here */ - SDL_WINRT_PATH_LOCAL_FOLDER, - - /** \brief The app's roaming data store. Unsupported on Windows Phone. - Files written here may be copied to other machines via a network - connection. - */ - SDL_WINRT_PATH_ROAMING_FOLDER, - - /** \brief The app's temporary data store. Unsupported on Windows Phone. - Files written here may be deleted at any time. */ - SDL_WINRT_PATH_TEMP_FOLDER -} SDL_WinRT_Path; - - -/** - * \brief WinRT Device Family - */ -typedef enum -{ - /** \brief Unknown family */ - SDL_WINRT_DEVICEFAMILY_UNKNOWN, - - /** \brief Desktop family*/ - SDL_WINRT_DEVICEFAMILY_DESKTOP, - - /** \brief Mobile family (for example smartphone) */ - SDL_WINRT_DEVICEFAMILY_MOBILE, - - /** \brief XBox family */ - SDL_WINRT_DEVICEFAMILY_XBOX, -} SDL_WinRT_DeviceFamily; - - -/** - * Retrieve a WinRT defined path on the local file system. - * - * Not all paths are available on all versions of Windows. This is especially - * true on Windows Phone. Check the documentation for the given SDL_WinRT_Path - * for more information on which path types are supported where. - * - * Documentation on most app-specific path types on WinRT can be found on - * MSDN, at the URL: - * - * https://msdn.microsoft.com/en-us/library/windows/apps/hh464917.aspx - * - * \param pathType the type of path to retrieve, one of SDL_WinRT_Path - * \returns a UCS-2 string (16-bit, wide-char) containing the path, or NULL if - * the path is not available for any reason; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.3. - * - * \sa SDL_WinRTGetFSPathUTF8 - */ -extern DECLSPEC const wchar_t * SDLCALL SDL_WinRTGetFSPathUNICODE(SDL_WinRT_Path pathType); - -/** - * Retrieve a WinRT defined path on the local file system. - * - * Not all paths are available on all versions of Windows. This is especially - * true on Windows Phone. Check the documentation for the given SDL_WinRT_Path - * for more information on which path types are supported where. - * - * Documentation on most app-specific path types on WinRT can be found on - * MSDN, at the URL: - * - * https://msdn.microsoft.com/en-us/library/windows/apps/hh464917.aspx - * - * \param pathType the type of path to retrieve, one of SDL_WinRT_Path - * \returns a UTF-8 string (8-bit, multi-byte) containing the path, or NULL if - * the path is not available for any reason; call SDL_GetError() for - * more information. - * - * \since This function is available since SDL 2.0.3. - * - * \sa SDL_WinRTGetFSPathUNICODE - */ -extern DECLSPEC const char * SDLCALL SDL_WinRTGetFSPathUTF8(SDL_WinRT_Path pathType); - -/** - * Detects the device family of WinRT platform at runtime. - * - * \returns a value from the SDL_WinRT_DeviceFamily enum. - * - * \since This function is available since SDL 2.0.8. - */ -extern DECLSPEC SDL_WinRT_DeviceFamily SDLCALL SDL_WinRTGetDeviceFamily(); - -#endif /* __WINRT__ */ - -/** - * Query if the current device is a tablet. - * - * If SDL can't determine this, it will return SDL_FALSE. - * - * \returns SDL_TRUE if the device is a tablet, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.9. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsTablet(void); - -/* Functions used by iOS application delegates to notify SDL about state changes */ -extern DECLSPEC void SDLCALL SDL_OnApplicationWillTerminate(void); -extern DECLSPEC void SDLCALL SDL_OnApplicationDidReceiveMemoryWarning(void); -extern DECLSPEC void SDLCALL SDL_OnApplicationWillResignActive(void); -extern DECLSPEC void SDLCALL SDL_OnApplicationDidEnterBackground(void); -extern DECLSPEC void SDLCALL SDL_OnApplicationWillEnterForeground(void); -extern DECLSPEC void SDLCALL SDL_OnApplicationDidBecomeActive(void); -#ifdef __IPHONEOS__ -extern DECLSPEC void SDLCALL SDL_OnApplicationDidChangeStatusBarOrientation(void); -#endif - -/* Functions used only by GDK */ -#if defined(__GDK__) -typedef struct XTaskQueueObject * XTaskQueueHandle; - -/** - * Gets a reference to the global async task queue handle for GDK, - * initializing if needed. - * - * Once you are done with the task queue, you should call - * XTaskQueueCloseHandle to reduce the reference count to avoid a resource - * leak. - * - * \param outTaskQueue a pointer to be filled in with task queue handle. - * \returns 0 if success, -1 if any error occurs. - * - * \since This function is available since SDL 2.24.0. - */ -extern DECLSPEC int SDLCALL SDL_GDKGetTaskQueue(XTaskQueueHandle * outTaskQueue); - -#endif - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_system_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_syswm.h b/release/SDL2.framework/Versions/A/Headers/SDL_syswm.h deleted file mode 100644 index bdc38d3..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_syswm.h +++ /dev/null @@ -1,386 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_syswm.h - * - * Include file for SDL custom system window manager hooks. - */ - -#ifndef SDL_syswm_h_ -#define SDL_syswm_h_ - -#include -#include -#include -#include - -/** - * \brief SDL_syswm.h - * - * Your application has access to a special type of event ::SDL_SYSWMEVENT, - * which contains window-manager specific information and arrives whenever - * an unhandled window event occurs. This event is ignored by default, but - * you can enable it with SDL_EventState(). - */ -struct SDL_SysWMinfo; - -#if !defined(SDL_PROTOTYPES_ONLY) - -#if defined(SDL_VIDEO_DRIVER_WINDOWS) -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#ifndef NOMINMAX /* don't define min() and max(). */ -#define NOMINMAX -#endif -#include -#endif - -#if defined(SDL_VIDEO_DRIVER_WINRT) -#include -#endif - -/* This is the structure for custom window manager events */ -#if defined(SDL_VIDEO_DRIVER_X11) -#if defined(__APPLE__) && defined(__MACH__) -/* conflicts with Quickdraw.h */ -#define Cursor X11Cursor -#endif - -#include -#include - -#if defined(__APPLE__) && defined(__MACH__) -/* matches the re-define above */ -#undef Cursor -#endif - -#endif /* defined(SDL_VIDEO_DRIVER_X11) */ - -#if defined(SDL_VIDEO_DRIVER_DIRECTFB) -#include -#endif - -#if defined(SDL_VIDEO_DRIVER_COCOA) -#ifdef __OBJC__ -@class NSWindow; -#else -typedef struct _NSWindow NSWindow; -#endif -#endif - -#if defined(SDL_VIDEO_DRIVER_UIKIT) -#ifdef __OBJC__ -#include -#else -typedef struct _UIWindow UIWindow; -typedef struct _UIViewController UIViewController; -#endif -typedef Uint32 GLuint; -#endif - -#if defined(SDL_VIDEO_VULKAN) || defined(SDL_VIDEO_METAL) -#define SDL_METALVIEW_TAG 255 -#endif - -#if defined(SDL_VIDEO_DRIVER_ANDROID) -typedef struct ANativeWindow ANativeWindow; -typedef void *EGLSurface; -#endif - -#if defined(SDL_VIDEO_DRIVER_VIVANTE) -#include -#endif - -#if defined(SDL_VIDEO_DRIVER_OS2) -#define INCL_WIN -#include -#endif -#endif /* SDL_PROTOTYPES_ONLY */ - -#if defined(SDL_VIDEO_DRIVER_KMSDRM) -struct gbm_device; -#endif - - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -#if !defined(SDL_PROTOTYPES_ONLY) -/** - * These are the various supported windowing subsystems - */ -typedef enum -{ - SDL_SYSWM_UNKNOWN, - SDL_SYSWM_WINDOWS, - SDL_SYSWM_X11, - SDL_SYSWM_DIRECTFB, - SDL_SYSWM_COCOA, - SDL_SYSWM_UIKIT, - SDL_SYSWM_WAYLAND, - SDL_SYSWM_MIR, /* no longer available, left for API/ABI compatibility. Remove in 2.1! */ - SDL_SYSWM_WINRT, - SDL_SYSWM_ANDROID, - SDL_SYSWM_VIVANTE, - SDL_SYSWM_OS2, - SDL_SYSWM_HAIKU, - SDL_SYSWM_KMSDRM, - SDL_SYSWM_RISCOS -} SDL_SYSWM_TYPE; - -/** - * The custom event structure. - */ -struct SDL_SysWMmsg -{ - SDL_version version; - SDL_SYSWM_TYPE subsystem; - union - { -#if defined(SDL_VIDEO_DRIVER_WINDOWS) - struct { - HWND hwnd; /**< The window for the message */ - UINT msg; /**< The type of message */ - WPARAM wParam; /**< WORD message parameter */ - LPARAM lParam; /**< LONG message parameter */ - } win; -#endif -#if defined(SDL_VIDEO_DRIVER_X11) - struct { - XEvent event; - } x11; -#endif -#if defined(SDL_VIDEO_DRIVER_DIRECTFB) - struct { - DFBEvent event; - } dfb; -#endif -#if defined(SDL_VIDEO_DRIVER_COCOA) - struct - { - /* Latest version of Xcode clang complains about empty structs in C v. C++: - error: empty struct has size 0 in C, size 1 in C++ - */ - int dummy; - /* No Cocoa window events yet */ - } cocoa; -#endif -#if defined(SDL_VIDEO_DRIVER_UIKIT) - struct - { - int dummy; - /* No UIKit window events yet */ - } uikit; -#endif -#if defined(SDL_VIDEO_DRIVER_VIVANTE) - struct - { - int dummy; - /* No Vivante window events yet */ - } vivante; -#endif -#if defined(SDL_VIDEO_DRIVER_OS2) - struct - { - BOOL fFrame; /**< TRUE if hwnd is a frame window */ - HWND hwnd; /**< The window receiving the message */ - ULONG msg; /**< The message identifier */ - MPARAM mp1; /**< The first first message parameter */ - MPARAM mp2; /**< The second first message parameter */ - } os2; -#endif - /* Can't have an empty union */ - int dummy; - } msg; -}; - -/** - * The custom window manager information structure. - * - * When this structure is returned, it holds information about which - * low level system it is using, and will be one of SDL_SYSWM_TYPE. - */ -struct SDL_SysWMinfo -{ - SDL_version version; - SDL_SYSWM_TYPE subsystem; - union - { -#if defined(SDL_VIDEO_DRIVER_WINDOWS) - struct - { - HWND window; /**< The window handle */ - HDC hdc; /**< The window device context */ - HINSTANCE hinstance; /**< The instance handle */ - } win; -#endif -#if defined(SDL_VIDEO_DRIVER_WINRT) - struct - { - IInspectable * window; /**< The WinRT CoreWindow */ - } winrt; -#endif -#if defined(SDL_VIDEO_DRIVER_X11) - struct - { - Display *display; /**< The X11 display */ - Window window; /**< The X11 window */ - } x11; -#endif -#if defined(SDL_VIDEO_DRIVER_DIRECTFB) - struct - { - IDirectFB *dfb; /**< The directfb main interface */ - IDirectFBWindow *window; /**< The directfb window handle */ - IDirectFBSurface *surface; /**< The directfb client surface */ - } dfb; -#endif -#if defined(SDL_VIDEO_DRIVER_COCOA) - struct - { -#if defined(__OBJC__) && defined(__has_feature) - #if __has_feature(objc_arc) - NSWindow __unsafe_unretained *window; /**< The Cocoa window */ - #else - NSWindow *window; /**< The Cocoa window */ - #endif -#else - NSWindow *window; /**< The Cocoa window */ -#endif - } cocoa; -#endif -#if defined(SDL_VIDEO_DRIVER_UIKIT) - struct - { -#if defined(__OBJC__) && defined(__has_feature) - #if __has_feature(objc_arc) - UIWindow __unsafe_unretained *window; /**< The UIKit window */ - #else - UIWindow *window; /**< The UIKit window */ - #endif -#else - UIWindow *window; /**< The UIKit window */ -#endif - GLuint framebuffer; /**< The GL view's Framebuffer Object. It must be bound when rendering to the screen using GL. */ - GLuint colorbuffer; /**< The GL view's color Renderbuffer Object. It must be bound when SDL_GL_SwapWindow is called. */ - GLuint resolveFramebuffer; /**< The Framebuffer Object which holds the resolve color Renderbuffer, when MSAA is used. */ - } uikit; -#endif -#if defined(SDL_VIDEO_DRIVER_WAYLAND) - struct - { - struct wl_display *display; /**< Wayland display */ - struct wl_surface *surface; /**< Wayland surface */ - void *shell_surface; /**< DEPRECATED Wayland shell_surface (window manager handle) */ - struct wl_egl_window *egl_window; /**< Wayland EGL window (native window) */ - struct xdg_surface *xdg_surface; /**< Wayland xdg surface (window manager handle) */ - struct xdg_toplevel *xdg_toplevel; /**< Wayland xdg toplevel role */ - struct xdg_popup *xdg_popup; /**< Wayland xdg popup role */ - struct xdg_positioner *xdg_positioner; /**< Wayland xdg positioner, for popup */ - } wl; -#endif -#if defined(SDL_VIDEO_DRIVER_MIR) /* no longer available, left for API/ABI compatibility. Remove in 2.1! */ - struct - { - void *connection; /**< Mir display server connection */ - void *surface; /**< Mir surface */ - } mir; -#endif - -#if defined(SDL_VIDEO_DRIVER_ANDROID) - struct - { - ANativeWindow *window; - EGLSurface surface; - } android; -#endif - -#if defined(SDL_VIDEO_DRIVER_OS2) - struct - { - HWND hwnd; /**< The window handle */ - HWND hwndFrame; /**< The frame window handle */ - } os2; -#endif - -#if defined(SDL_VIDEO_DRIVER_VIVANTE) - struct - { - EGLNativeDisplayType display; - EGLNativeWindowType window; - } vivante; -#endif - -#if defined(SDL_VIDEO_DRIVER_KMSDRM) - struct - { - int dev_index; /**< Device index (ex: the X in /dev/dri/cardX) */ - int drm_fd; /**< DRM FD (unavailable on Vulkan windows) */ - struct gbm_device *gbm_dev; /**< GBM device (unavailable on Vulkan windows) */ - } kmsdrm; -#endif - - /* Make sure this union is always 64 bytes (8 64-bit pointers). */ - /* Be careful not to overflow this if you add a new target! */ - Uint8 dummy[64]; - } info; -}; - -#endif /* SDL_PROTOTYPES_ONLY */ - -typedef struct SDL_SysWMinfo SDL_SysWMinfo; - - -/** - * Get driver-specific information about a window. - * - * You must include SDL_syswm.h for the declaration of SDL_SysWMinfo. - * - * The caller must initialize the `info` structure's version by using - * `SDL_VERSION(&info.version)`, and then this function will fill in the rest - * of the structure with information about the given window. - * - * \param window the window about which information is being requested - * \param info an SDL_SysWMinfo structure filled in with window information - * \returns SDL_TRUE if the function is implemented and the `version` member - * of the `info` struct is valid, or SDL_FALSE if the information - * could not be retrieved; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_Window * window, - SDL_SysWMinfo * info); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_syswm_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_thread.h b/release/SDL2.framework/Versions/A/Headers/SDL_thread.h deleted file mode 100644 index fad1afb..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_thread.h +++ /dev/null @@ -1,464 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_thread_h_ -#define SDL_thread_h_ - -/** - * \file SDL_thread.h - * - * Header for the SDL thread management routines. - */ - -#include -#include - -/* Thread synchronization primitives */ -#include -#include - -#if (defined(__WIN32__) || defined(__GDK__)) && !defined(__WINRT__) -#include /* _beginthreadex() and _endthreadex() */ -#endif -#if defined(__OS2__) /* for _beginthread() and _endthread() */ -#ifndef __EMX__ -#include -#else -#include -#endif -#endif - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* The SDL thread structure, defined in SDL_thread.c */ -struct SDL_Thread; -typedef struct SDL_Thread SDL_Thread; - -/* The SDL thread ID */ -typedef unsigned long SDL_threadID; - -/* Thread local storage ID, 0 is the invalid ID */ -typedef unsigned int SDL_TLSID; - -/** - * The SDL thread priority. - * - * SDL will make system changes as necessary in order to apply the thread priority. - * Code which attempts to control thread state related to priority should be aware - * that calling SDL_SetThreadPriority may alter such state. - * SDL_HINT_THREAD_PRIORITY_POLICY can be used to control aspects of this behavior. - * - * \note On many systems you require special privileges to set high or time critical priority. - */ -typedef enum { - SDL_THREAD_PRIORITY_LOW, - SDL_THREAD_PRIORITY_NORMAL, - SDL_THREAD_PRIORITY_HIGH, - SDL_THREAD_PRIORITY_TIME_CRITICAL -} SDL_ThreadPriority; - -/** - * The function passed to SDL_CreateThread(). - * - * \param data what was passed as `data` to SDL_CreateThread() - * \returns a value that can be reported through SDL_WaitThread(). - */ -typedef int (SDLCALL * SDL_ThreadFunction) (void *data); - - -#if (defined(__WIN32__) || defined(__GDK__)) && !defined(__WINRT__) -/** - * \file SDL_thread.h - * - * We compile SDL into a DLL. This means, that it's the DLL which - * creates a new thread for the calling process with the SDL_CreateThread() - * API. There is a problem with this, that only the RTL of the SDL2.DLL will - * be initialized for those threads, and not the RTL of the calling - * application! - * - * To solve this, we make a little hack here. - * - * We'll always use the caller's _beginthread() and _endthread() APIs to - * start a new thread. This way, if it's the SDL2.DLL which uses this API, - * then the RTL of SDL2.DLL will be used to create the new thread, and if it's - * the application, then the RTL of the application will be used. - * - * So, in short: - * Always use the _beginthread() and _endthread() of the calling runtime - * library! - */ -#define SDL_PASSED_BEGINTHREAD_ENDTHREAD - -typedef uintptr_t (__cdecl * pfnSDL_CurrentBeginThread) - (void *, unsigned, unsigned (__stdcall *func)(void *), - void * /*arg*/, unsigned, unsigned * /* threadID */); -typedef void (__cdecl * pfnSDL_CurrentEndThread) (unsigned code); - -#ifndef SDL_beginthread -#define SDL_beginthread _beginthreadex -#endif -#ifndef SDL_endthread -#define SDL_endthread _endthreadex -#endif - -extern DECLSPEC SDL_Thread *SDLCALL -SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data, - pfnSDL_CurrentBeginThread pfnBeginThread, - pfnSDL_CurrentEndThread pfnEndThread); - -extern DECLSPEC SDL_Thread *SDLCALL -SDL_CreateThreadWithStackSize(SDL_ThreadFunction fn, - const char *name, const size_t stacksize, void *data, - pfnSDL_CurrentBeginThread pfnBeginThread, - pfnSDL_CurrentEndThread pfnEndThread); - - -#if defined(SDL_CreateThread) && SDL_DYNAMIC_API -#undef SDL_CreateThread -#define SDL_CreateThread(fn, name, data) SDL_CreateThread_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) -#undef SDL_CreateThreadWithStackSize -#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize_REAL(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) -#else -#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) -#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) -#endif - -#elif defined(__OS2__) -/* - * just like the windows case above: We compile SDL2 - * into a dll with Watcom's runtime statically linked. - */ -#define SDL_PASSED_BEGINTHREAD_ENDTHREAD - -typedef int (*pfnSDL_CurrentBeginThread)(void (*func)(void *), void *, unsigned, void * /*arg*/); -typedef void (*pfnSDL_CurrentEndThread)(void); - -#ifndef SDL_beginthread -#define SDL_beginthread _beginthread -#endif -#ifndef SDL_endthread -#define SDL_endthread _endthread -#endif - -extern DECLSPEC SDL_Thread *SDLCALL -SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data, - pfnSDL_CurrentBeginThread pfnBeginThread, - pfnSDL_CurrentEndThread pfnEndThread); -extern DECLSPEC SDL_Thread *SDLCALL -SDL_CreateThreadWithStackSize(SDL_ThreadFunction fn, const char *name, const size_t stacksize, void *data, - pfnSDL_CurrentBeginThread pfnBeginThread, - pfnSDL_CurrentEndThread pfnEndThread); - -#if defined(SDL_CreateThread) && SDL_DYNAMIC_API -#undef SDL_CreateThread -#define SDL_CreateThread(fn, name, data) SDL_CreateThread_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) -#undef SDL_CreateThreadWithStackSize -#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize_REAL(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) -#else -#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) -#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) -#endif - -#else - -/** - * Create a new thread with a default stack size. - * - * This is equivalent to calling: - * - * ```c - * SDL_CreateThreadWithStackSize(fn, name, 0, data); - * ``` - * - * \param fn the SDL_ThreadFunction function to call in the new thread - * \param name the name of the thread - * \param data a pointer that is passed to `fn` - * \returns an opaque pointer to the new thread object on success, NULL if the - * new thread could not be created; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateThreadWithStackSize - * \sa SDL_WaitThread - */ -extern DECLSPEC SDL_Thread *SDLCALL -SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data); - -/** - * Create a new thread with a specific stack size. - * - * SDL makes an attempt to report `name` to the system, so that debuggers can - * display it. Not all platforms support this. - * - * Thread naming is a little complicated: Most systems have very small limits - * for the string length (Haiku has 32 bytes, Linux currently has 16, Visual - * C++ 6.0 has _nine_!), and possibly other arbitrary rules. You'll have to - * see what happens with your system's debugger. The name should be UTF-8 (but - * using the naming limits of C identifiers is a better bet). There are no - * requirements for thread naming conventions, so long as the string is - * null-terminated UTF-8, but these guidelines are helpful in choosing a name: - * - * https://stackoverflow.com/questions/149932/naming-conventions-for-threads - * - * If a system imposes requirements, SDL will try to munge the string for it - * (truncate, etc), but the original string contents will be available from - * SDL_GetThreadName(). - * - * The size (in bytes) of the new stack can be specified. Zero means "use the - * system default" which might be wildly different between platforms. x86 - * Linux generally defaults to eight megabytes, an embedded device might be a - * few kilobytes instead. You generally need to specify a stack that is a - * multiple of the system's page size (in many cases, this is 4 kilobytes, but - * check your system documentation). - * - * In SDL 2.1, stack size will be folded into the original SDL_CreateThread - * function, but for backwards compatibility, this is currently a separate - * function. - * - * \param fn the SDL_ThreadFunction function to call in the new thread - * \param name the name of the thread - * \param stacksize the size, in bytes, to allocate for the new thread stack. - * \param data a pointer that is passed to `fn` - * \returns an opaque pointer to the new thread object on success, NULL if the - * new thread could not be created; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.9. - * - * \sa SDL_WaitThread - */ -extern DECLSPEC SDL_Thread *SDLCALL -SDL_CreateThreadWithStackSize(SDL_ThreadFunction fn, const char *name, const size_t stacksize, void *data); - -#endif - -/** - * Get the thread name as it was specified in SDL_CreateThread(). - * - * This is internal memory, not to be freed by the caller, and remains valid - * until the specified thread is cleaned up by SDL_WaitThread(). - * - * \param thread the thread to query - * \returns a pointer to a UTF-8 string that names the specified thread, or - * NULL if it doesn't have a name. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateThread - */ -extern DECLSPEC const char *SDLCALL SDL_GetThreadName(SDL_Thread *thread); - -/** - * Get the thread identifier for the current thread. - * - * This thread identifier is as reported by the underlying operating system. - * If SDL is running on a platform that does not support threads the return - * value will always be zero. - * - * This function also returns a valid thread ID when called from the main - * thread. - * - * \returns the ID of the current thread. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetThreadID - */ -extern DECLSPEC SDL_threadID SDLCALL SDL_ThreadID(void); - -/** - * Get the thread identifier for the specified thread. - * - * This thread identifier is as reported by the underlying operating system. - * If SDL is running on a platform that does not support threads the return - * value will always be zero. - * - * \param thread the thread to query - * \returns the ID of the specified thread, or the ID of the current thread if - * `thread` is NULL. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ThreadID - */ -extern DECLSPEC SDL_threadID SDLCALL SDL_GetThreadID(SDL_Thread * thread); - -/** - * Set the priority for the current thread. - * - * Note that some platforms will not let you alter the priority (or at least, - * promote the thread to a higher priority) at all, and some require you to be - * an administrator account. Be prepared for this to fail. - * - * \param priority the SDL_ThreadPriority to set - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC int SDLCALL SDL_SetThreadPriority(SDL_ThreadPriority priority); - -/** - * Wait for a thread to finish. - * - * Threads that haven't been detached will remain (as a "zombie") until this - * function cleans them up. Not doing so is a resource leak. - * - * Once a thread has been cleaned up through this function, the SDL_Thread - * that references it becomes invalid and should not be referenced again. As - * such, only one thread may call SDL_WaitThread() on another. - * - * The return code for the thread function is placed in the area pointed to by - * `status`, if `status` is not NULL. - * - * You may not wait on a thread that has been used in a call to - * SDL_DetachThread(). Use either that function or this one, but not both, or - * behavior is undefined. - * - * It is safe to pass a NULL thread to this function; it is a no-op. - * - * Note that the thread pointer is freed by this function and is not valid - * afterward. - * - * \param thread the SDL_Thread pointer that was returned from the - * SDL_CreateThread() call that started this thread - * \param status pointer to an integer that will receive the value returned - * from the thread function by its 'return', or NULL to not - * receive such value back. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateThread - * \sa SDL_DetachThread - */ -extern DECLSPEC void SDLCALL SDL_WaitThread(SDL_Thread * thread, int *status); - -/** - * Let a thread clean up on exit without intervention. - * - * A thread may be "detached" to signify that it should not remain until - * another thread has called SDL_WaitThread() on it. Detaching a thread is - * useful for long-running threads that nothing needs to synchronize with or - * further manage. When a detached thread is done, it simply goes away. - * - * There is no way to recover the return code of a detached thread. If you - * need this, don't detach the thread and instead use SDL_WaitThread(). - * - * Once a thread is detached, you should usually assume the SDL_Thread isn't - * safe to reference again, as it will become invalid immediately upon the - * detached thread's exit, instead of remaining until someone has called - * SDL_WaitThread() to finally clean it up. As such, don't detach the same - * thread more than once. - * - * If a thread has already exited when passed to SDL_DetachThread(), it will - * stop waiting for a call to SDL_WaitThread() and clean up immediately. It is - * not safe to detach a thread that might be used with SDL_WaitThread(). - * - * You may not call SDL_WaitThread() on a thread that has been detached. Use - * either that function or this one, but not both, or behavior is undefined. - * - * It is safe to pass NULL to this function; it is a no-op. - * - * \param thread the SDL_Thread pointer that was returned from the - * SDL_CreateThread() call that started this thread - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_CreateThread - * \sa SDL_WaitThread - */ -extern DECLSPEC void SDLCALL SDL_DetachThread(SDL_Thread * thread); - -/** - * Create a piece of thread-local storage. - * - * This creates an identifier that is globally visible to all threads but - * refers to data that is thread-specific. - * - * \returns the newly created thread local storage identifier or 0 on error. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_TLSGet - * \sa SDL_TLSSet - */ -extern DECLSPEC SDL_TLSID SDLCALL SDL_TLSCreate(void); - -/** - * Get the current thread's value associated with a thread local storage ID. - * - * \param id the thread local storage ID - * \returns the value associated with the ID for the current thread or NULL if - * no value has been set; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_TLSCreate - * \sa SDL_TLSSet - */ -extern DECLSPEC void * SDLCALL SDL_TLSGet(SDL_TLSID id); - -/** - * Set the current thread's value associated with a thread local storage ID. - * - * The function prototype for `destructor` is: - * - * ```c - * void destructor(void *value) - * ``` - * - * where its parameter `value` is what was passed as `value` to SDL_TLSSet(). - * - * \param id the thread local storage ID - * \param value the value to associate with the ID for the current thread - * \param destructor a function called when the thread exits, to free the - * value - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_TLSCreate - * \sa SDL_TLSGet - */ -extern DECLSPEC int SDLCALL SDL_TLSSet(SDL_TLSID id, const void *value, void (SDLCALL *destructor)(void*)); - -/** - * Cleanup all TLS data for this thread. - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC void SDLCALL SDL_TLSCleanup(void); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_thread_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_timer.h b/release/SDL2.framework/Versions/A/Headers/SDL_timer.h deleted file mode 100644 index 02ef910..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_timer.h +++ /dev/null @@ -1,222 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_timer_h_ -#define SDL_timer_h_ - -/** - * \file SDL_timer.h - * - * Header for the SDL time management routines. - */ - -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Get the number of milliseconds since SDL library initialization. - * - * This value wraps if the program runs for more than ~49 days. - * - * This function is not recommended as of SDL 2.0.18; use SDL_GetTicks64() - * instead, where the value doesn't wrap every ~49 days. There are places in - * SDL where we provide a 32-bit timestamp that can not change without - * breaking binary compatibility, though, so this function isn't officially - * deprecated. - * - * \returns an unsigned 32-bit value representing the number of milliseconds - * since the SDL library initialized. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_TICKS_PASSED - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetTicks(void); - -/** - * Get the number of milliseconds since SDL library initialization. - * - * Note that you should not use the SDL_TICKS_PASSED macro with values - * returned by this function, as that macro does clever math to compensate for - * the 32-bit overflow every ~49 days that SDL_GetTicks() suffers from. 64-bit - * values from this function can be safely compared directly. - * - * For example, if you want to wait 100 ms, you could do this: - * - * ```c - * const Uint64 timeout = SDL_GetTicks64() + 100; - * while (SDL_GetTicks64() < timeout) { - * // ... do work until timeout has elapsed - * } - * ``` - * - * \returns an unsigned 64-bit value representing the number of milliseconds - * since the SDL library initialized. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC Uint64 SDLCALL SDL_GetTicks64(void); - -/** - * Compare 32-bit SDL ticks values, and return true if `A` has passed `B`. - * - * This should be used with results from SDL_GetTicks(), as this macro - * attempts to deal with the 32-bit counter wrapping back to zero every ~49 - * days, but should _not_ be used with SDL_GetTicks64(), which does not have - * that problem. - * - * For example, with SDL_GetTicks(), if you want to wait 100 ms, you could - * do this: - * - * ```c - * const Uint32 timeout = SDL_GetTicks() + 100; - * while (!SDL_TICKS_PASSED(SDL_GetTicks(), timeout)) { - * // ... do work until timeout has elapsed - * } - * ``` - * - * Note that this does not handle tick differences greater - * than 2^31 so take care when using the above kind of code - * with large timeout delays (tens of days). - */ -#define SDL_TICKS_PASSED(A, B) ((Sint32)((B) - (A)) <= 0) - -/** - * Get the current value of the high resolution counter. - * - * This function is typically used for profiling. - * - * The counter values are only meaningful relative to each other. Differences - * between values can be converted to times by using - * SDL_GetPerformanceFrequency(). - * - * \returns the current counter value. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetPerformanceFrequency - */ -extern DECLSPEC Uint64 SDLCALL SDL_GetPerformanceCounter(void); - -/** - * Get the count per second of the high resolution counter. - * - * \returns a platform-specific count per second. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetPerformanceCounter - */ -extern DECLSPEC Uint64 SDLCALL SDL_GetPerformanceFrequency(void); - -/** - * Wait a specified number of milliseconds before returning. - * - * This function waits a specified number of milliseconds before returning. It - * waits at least the specified time, but possibly longer due to OS - * scheduling. - * - * \param ms the number of milliseconds to delay - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC void SDLCALL SDL_Delay(Uint32 ms); - -/** - * Function prototype for the timer callback function. - * - * The callback function is passed the current timer interval and returns - * the next timer interval. If the returned value is the same as the one - * passed in, the periodic alarm continues, otherwise a new alarm is - * scheduled. If the callback returns 0, the periodic alarm is cancelled. - */ -typedef Uint32 (SDLCALL * SDL_TimerCallback) (Uint32 interval, void *param); - -/** - * Definition of the timer ID type. - */ -typedef int SDL_TimerID; - -/** - * Call a callback function at a future time. - * - * If you use this function, you must pass `SDL_INIT_TIMER` to SDL_Init(). - * - * The callback function is passed the current timer interval and the user - * supplied parameter from the SDL_AddTimer() call and should return the next - * timer interval. If the value returned from the callback is 0, the timer is - * canceled. - * - * The callback is run on a separate thread. - * - * Timers take into account the amount of time it took to execute the - * callback. For example, if the callback took 250 ms to execute and returned - * 1000 (ms), the timer would only wait another 750 ms before its next - * iteration. - * - * Timing may be inexact due to OS scheduling. Be sure to note the current - * time with SDL_GetTicks() or SDL_GetPerformanceCounter() in case your - * callback needs to adjust for variances. - * - * \param interval the timer delay, in milliseconds, passed to `callback` - * \param callback the SDL_TimerCallback function to call when the specified - * `interval` elapses - * \param param a pointer that is passed to `callback` - * \returns a timer ID or 0 if an error occurs; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RemoveTimer - */ -extern DECLSPEC SDL_TimerID SDLCALL SDL_AddTimer(Uint32 interval, - SDL_TimerCallback callback, - void *param); - -/** - * Remove a timer created with SDL_AddTimer(). - * - * \param id the ID of the timer to remove - * \returns SDL_TRUE if the timer is removed or SDL_FALSE if the timer wasn't - * found. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_AddTimer - */ -extern DECLSPEC SDL_bool SDLCALL SDL_RemoveTimer(SDL_TimerID id); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_timer_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_touch.h b/release/SDL2.framework/Versions/A/Headers/SDL_touch.h deleted file mode 100644 index 0649005..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_touch.h +++ /dev/null @@ -1,150 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_touch.h - * - * Include file for SDL touch event handling. - */ - -#ifndef SDL_touch_h_ -#define SDL_touch_h_ - -#include -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -typedef Sint64 SDL_TouchID; -typedef Sint64 SDL_FingerID; - -typedef enum -{ - SDL_TOUCH_DEVICE_INVALID = -1, - SDL_TOUCH_DEVICE_DIRECT, /* touch screen with window-relative coordinates */ - SDL_TOUCH_DEVICE_INDIRECT_ABSOLUTE, /* trackpad with absolute device coordinates */ - SDL_TOUCH_DEVICE_INDIRECT_RELATIVE /* trackpad with screen cursor-relative coordinates */ -} SDL_TouchDeviceType; - -typedef struct SDL_Finger -{ - SDL_FingerID id; - float x; - float y; - float pressure; -} SDL_Finger; - -/* Used as the device ID for mouse events simulated with touch input */ -#define SDL_TOUCH_MOUSEID ((Uint32)-1) - -/* Used as the SDL_TouchID for touch events simulated with mouse input */ -#define SDL_MOUSE_TOUCHID ((Sint64)-1) - - -/** - * Get the number of registered touch devices. - * - * On some platforms SDL first sees the touch device if it was actually used. - * Therefore SDL_GetNumTouchDevices() may return 0 although devices are - * available. After using all devices at least once the number will be - * correct. - * - * This was fixed for Android in SDL 2.0.1. - * - * \returns the number of registered touch devices. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetTouchDevice - */ -extern DECLSPEC int SDLCALL SDL_GetNumTouchDevices(void); - -/** - * Get the touch ID with the given index. - * - * \param index the touch device index - * \returns the touch ID with the given index on success or 0 if the index is - * invalid; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumTouchDevices - */ -extern DECLSPEC SDL_TouchID SDLCALL SDL_GetTouchDevice(int index); - -/** - * Get the touch device name as reported from the driver or NULL if the index - * is invalid. - * - * \since This function is available since SDL 2.0.22. - */ -extern DECLSPEC const char* SDLCALL SDL_GetTouchName(int index); - -/** - * Get the type of the given touch device. - * - * \since This function is available since SDL 2.0.10. - */ -extern DECLSPEC SDL_TouchDeviceType SDLCALL SDL_GetTouchDeviceType(SDL_TouchID touchID); - -/** - * Get the number of active fingers for a given touch device. - * - * \param touchID the ID of a touch device - * \returns the number of active fingers for a given touch device on success - * or 0 on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetTouchFinger - */ -extern DECLSPEC int SDLCALL SDL_GetNumTouchFingers(SDL_TouchID touchID); - -/** - * Get the finger object for specified touch device ID and finger index. - * - * The returned resource is owned by SDL and should not be deallocated. - * - * \param touchID the ID of the requested touch device - * \param index the index of the requested finger - * \returns a pointer to the SDL_Finger object or NULL if no object at the - * given ID and index could be found. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_RecordGesture - */ -extern DECLSPEC SDL_Finger * SDLCALL SDL_GetTouchFinger(SDL_TouchID touchID, int index); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_touch_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_types.h b/release/SDL2.framework/Versions/A/Headers/SDL_types.h deleted file mode 100644 index e9f77a1..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_types.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_types.h - * - * \deprecated - */ - -/* DEPRECATED */ -#include diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_version.h b/release/SDL2.framework/Versions/A/Headers/SDL_version.h deleted file mode 100644 index b5865bf..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_version.h +++ /dev/null @@ -1,204 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_version.h - * - * This header defines the current SDL version. - */ - -#ifndef SDL_version_h_ -#define SDL_version_h_ - -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Information about the version of SDL in use. - * - * Represents the library's version as three levels: major revision - * (increments with massive changes, additions, and enhancements), - * minor revision (increments with backwards-compatible changes to the - * major revision), and patchlevel (increments with fixes to the minor - * revision). - * - * \sa SDL_VERSION - * \sa SDL_GetVersion - */ -typedef struct SDL_version -{ - Uint8 major; /**< major version */ - Uint8 minor; /**< minor version */ - Uint8 patch; /**< update version */ -} SDL_version; - -/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL -*/ -#define SDL_MAJOR_VERSION 2 -#define SDL_MINOR_VERSION 28 -#define SDL_PATCHLEVEL 3 - -/** - * Macro to determine SDL version program was compiled against. - * - * This macro fills in a SDL_version structure with the version of the - * library you compiled against. This is determined by what header the - * compiler uses. Note that if you dynamically linked the library, you might - * have a slightly newer or older version at runtime. That version can be - * determined with SDL_GetVersion(), which, unlike SDL_VERSION(), - * is not a macro. - * - * \param x A pointer to a SDL_version struct to initialize. - * - * \sa SDL_version - * \sa SDL_GetVersion - */ -#define SDL_VERSION(x) \ -{ \ - (x)->major = SDL_MAJOR_VERSION; \ - (x)->minor = SDL_MINOR_VERSION; \ - (x)->patch = SDL_PATCHLEVEL; \ -} - -/* TODO: Remove this whole block in SDL 3 */ -#if SDL_MAJOR_VERSION < 3 -/** - * This macro turns the version numbers into a numeric value: - * \verbatim - (1,2,3) -> (1203) - \endverbatim - * - * This assumes that there will never be more than 100 patchlevels. - * - * In versions higher than 2.9.0, the minor version overflows into - * the thousands digit: for example, 2.23.0 is encoded as 4300, - * and 2.255.99 would be encoded as 25799. - * This macro will not be available in SDL 3.x. - */ -#define SDL_VERSIONNUM(X, Y, Z) \ - ((X)*1000 + (Y)*100 + (Z)) - -/** - * This is the version number macro for the current SDL version. - * - * In versions higher than 2.9.0, the minor version overflows into - * the thousands digit: for example, 2.23.0 is encoded as 4300. - * This macro will not be available in SDL 3.x. - * - * Deprecated, use SDL_VERSION_ATLEAST or SDL_VERSION instead. - */ -#define SDL_COMPILEDVERSION \ - SDL_VERSIONNUM(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL) -#endif /* SDL_MAJOR_VERSION < 3 */ - -/** - * This macro will evaluate to true if compiled with SDL at least X.Y.Z. - */ -#define SDL_VERSION_ATLEAST(X, Y, Z) \ - ((SDL_MAJOR_VERSION >= X) && \ - (SDL_MAJOR_VERSION > X || SDL_MINOR_VERSION >= Y) && \ - (SDL_MAJOR_VERSION > X || SDL_MINOR_VERSION > Y || SDL_PATCHLEVEL >= Z)) - -/** - * Get the version of SDL that is linked against your program. - * - * If you are linking to SDL dynamically, then it is possible that the current - * version will be different than the version you compiled against. This - * function returns the current version, while SDL_VERSION() is a macro that - * tells you what version you compiled with. - * - * This function may be called safely at any time, even before SDL_Init(). - * - * \param ver the SDL_version structure that contains the version information - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRevision - */ -extern DECLSPEC void SDLCALL SDL_GetVersion(SDL_version * ver); - -/** - * Get the code revision of SDL that is linked against your program. - * - * This value is the revision of the code you are linked with and may be - * different from the code you are compiling with, which is found in the - * constant SDL_REVISION. - * - * The revision is arbitrary string (a hash value) uniquely identifying the - * exact revision of the SDL library in use, and is only useful in comparing - * against other revisions. It is NOT an incrementing number. - * - * If SDL wasn't built from a git repository with the appropriate tools, this - * will return an empty string. - * - * Prior to SDL 2.0.16, before development moved to GitHub, this returned a - * hash for a Mercurial repository. - * - * You shouldn't use this function for anything but logging it for debugging - * purposes. The string is not intended to be reliable in any way. - * - * \returns an arbitrary string, uniquely identifying the exact revision of - * the SDL library in use. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetVersion - */ -extern DECLSPEC const char *SDLCALL SDL_GetRevision(void); - -/** - * Obsolete function, do not use. - * - * When SDL was hosted in a Mercurial repository, and was built carefully, - * this would return the revision number that the build was created from. This - * number was not reliable for several reasons, but more importantly, SDL is - * now hosted in a git repository, which does not offer numbers at all, only - * hashes. This function only ever returns zero now. Don't use it. - * - * Before SDL 2.0.16, this might have returned an unreliable, but non-zero - * number. - * - * \deprecated Use SDL_GetRevision() instead; if SDL was carefully built, it - * will return a git hash. - * - * \returns zero, always, in modern SDL releases. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetRevision - */ -extern SDL_DEPRECATED DECLSPEC int SDLCALL SDL_GetRevisionNumber(void); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_version_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_video.h b/release/SDL2.framework/Versions/A/Headers/SDL_video.h deleted file mode 100644 index d1da813..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_video.h +++ /dev/null @@ -1,2178 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_video.h - * - * Header file for SDL video functions. - */ - -#ifndef SDL_video_h_ -#define SDL_video_h_ - -#include -#include -#include -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \brief The structure that defines a display mode - * - * \sa SDL_GetNumDisplayModes() - * \sa SDL_GetDisplayMode() - * \sa SDL_GetDesktopDisplayMode() - * \sa SDL_GetCurrentDisplayMode() - * \sa SDL_GetClosestDisplayMode() - * \sa SDL_SetWindowDisplayMode() - * \sa SDL_GetWindowDisplayMode() - */ -typedef struct -{ - Uint32 format; /**< pixel format */ - int w; /**< width, in screen coordinates */ - int h; /**< height, in screen coordinates */ - int refresh_rate; /**< refresh rate (or zero for unspecified) */ - void *driverdata; /**< driver-specific data, initialize to 0 */ -} SDL_DisplayMode; - -/** - * \brief The type used to identify a window - * - * \sa SDL_CreateWindow() - * \sa SDL_CreateWindowFrom() - * \sa SDL_DestroyWindow() - * \sa SDL_FlashWindow() - * \sa SDL_GetWindowData() - * \sa SDL_GetWindowFlags() - * \sa SDL_GetWindowGrab() - * \sa SDL_GetWindowKeyboardGrab() - * \sa SDL_GetWindowMouseGrab() - * \sa SDL_GetWindowPosition() - * \sa SDL_GetWindowSize() - * \sa SDL_GetWindowTitle() - * \sa SDL_HideWindow() - * \sa SDL_MaximizeWindow() - * \sa SDL_MinimizeWindow() - * \sa SDL_RaiseWindow() - * \sa SDL_RestoreWindow() - * \sa SDL_SetWindowData() - * \sa SDL_SetWindowFullscreen() - * \sa SDL_SetWindowGrab() - * \sa SDL_SetWindowKeyboardGrab() - * \sa SDL_SetWindowMouseGrab() - * \sa SDL_SetWindowIcon() - * \sa SDL_SetWindowPosition() - * \sa SDL_SetWindowSize() - * \sa SDL_SetWindowBordered() - * \sa SDL_SetWindowResizable() - * \sa SDL_SetWindowTitle() - * \sa SDL_ShowWindow() - */ -typedef struct SDL_Window SDL_Window; - -/** - * \brief The flags on a window - * - * \sa SDL_GetWindowFlags() - */ -typedef enum -{ - SDL_WINDOW_FULLSCREEN = 0x00000001, /**< fullscreen window */ - SDL_WINDOW_OPENGL = 0x00000002, /**< window usable with OpenGL context */ - SDL_WINDOW_SHOWN = 0x00000004, /**< window is visible */ - SDL_WINDOW_HIDDEN = 0x00000008, /**< window is not visible */ - SDL_WINDOW_BORDERLESS = 0x00000010, /**< no window decoration */ - SDL_WINDOW_RESIZABLE = 0x00000020, /**< window can be resized */ - SDL_WINDOW_MINIMIZED = 0x00000040, /**< window is minimized */ - SDL_WINDOW_MAXIMIZED = 0x00000080, /**< window is maximized */ - SDL_WINDOW_MOUSE_GRABBED = 0x00000100, /**< window has grabbed mouse input */ - SDL_WINDOW_INPUT_FOCUS = 0x00000200, /**< window has input focus */ - SDL_WINDOW_MOUSE_FOCUS = 0x00000400, /**< window has mouse focus */ - SDL_WINDOW_FULLSCREEN_DESKTOP = ( SDL_WINDOW_FULLSCREEN | 0x00001000 ), - SDL_WINDOW_FOREIGN = 0x00000800, /**< window not created by SDL */ - SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000, /**< window should be created in high-DPI mode if supported. - On macOS NSHighResolutionCapable must be set true in the - application's Info.plist for this to have any effect. */ - SDL_WINDOW_MOUSE_CAPTURE = 0x00004000, /**< window has mouse captured (unrelated to MOUSE_GRABBED) */ - SDL_WINDOW_ALWAYS_ON_TOP = 0x00008000, /**< window should always be above others */ - SDL_WINDOW_SKIP_TASKBAR = 0x00010000, /**< window should not be added to the taskbar */ - SDL_WINDOW_UTILITY = 0x00020000, /**< window should be treated as a utility window */ - SDL_WINDOW_TOOLTIP = 0x00040000, /**< window should be treated as a tooltip */ - SDL_WINDOW_POPUP_MENU = 0x00080000, /**< window should be treated as a popup menu */ - SDL_WINDOW_KEYBOARD_GRABBED = 0x00100000, /**< window has grabbed keyboard input */ - SDL_WINDOW_VULKAN = 0x10000000, /**< window usable for Vulkan surface */ - SDL_WINDOW_METAL = 0x20000000, /**< window usable for Metal view */ - - SDL_WINDOW_INPUT_GRABBED = SDL_WINDOW_MOUSE_GRABBED /**< equivalent to SDL_WINDOW_MOUSE_GRABBED for compatibility */ -} SDL_WindowFlags; - -/** - * \brief Used to indicate that you don't care what the window position is. - */ -#define SDL_WINDOWPOS_UNDEFINED_MASK 0x1FFF0000u -#define SDL_WINDOWPOS_UNDEFINED_DISPLAY(X) (SDL_WINDOWPOS_UNDEFINED_MASK|(X)) -#define SDL_WINDOWPOS_UNDEFINED SDL_WINDOWPOS_UNDEFINED_DISPLAY(0) -#define SDL_WINDOWPOS_ISUNDEFINED(X) \ - (((X)&0xFFFF0000) == SDL_WINDOWPOS_UNDEFINED_MASK) - -/** - * \brief Used to indicate that the window position should be centered. - */ -#define SDL_WINDOWPOS_CENTERED_MASK 0x2FFF0000u -#define SDL_WINDOWPOS_CENTERED_DISPLAY(X) (SDL_WINDOWPOS_CENTERED_MASK|(X)) -#define SDL_WINDOWPOS_CENTERED SDL_WINDOWPOS_CENTERED_DISPLAY(0) -#define SDL_WINDOWPOS_ISCENTERED(X) \ - (((X)&0xFFFF0000) == SDL_WINDOWPOS_CENTERED_MASK) - -/** - * \brief Event subtype for window events - */ -typedef enum -{ - SDL_WINDOWEVENT_NONE, /**< Never used */ - SDL_WINDOWEVENT_SHOWN, /**< Window has been shown */ - SDL_WINDOWEVENT_HIDDEN, /**< Window has been hidden */ - SDL_WINDOWEVENT_EXPOSED, /**< Window has been exposed and should be - redrawn */ - SDL_WINDOWEVENT_MOVED, /**< Window has been moved to data1, data2 - */ - SDL_WINDOWEVENT_RESIZED, /**< Window has been resized to data1xdata2 */ - SDL_WINDOWEVENT_SIZE_CHANGED, /**< The window size has changed, either as - a result of an API call or through the - system or user changing the window size. */ - SDL_WINDOWEVENT_MINIMIZED, /**< Window has been minimized */ - SDL_WINDOWEVENT_MAXIMIZED, /**< Window has been maximized */ - SDL_WINDOWEVENT_RESTORED, /**< Window has been restored to normal size - and position */ - SDL_WINDOWEVENT_ENTER, /**< Window has gained mouse focus */ - SDL_WINDOWEVENT_LEAVE, /**< Window has lost mouse focus */ - SDL_WINDOWEVENT_FOCUS_GAINED, /**< Window has gained keyboard focus */ - SDL_WINDOWEVENT_FOCUS_LOST, /**< Window has lost keyboard focus */ - SDL_WINDOWEVENT_CLOSE, /**< The window manager requests that the window be closed */ - SDL_WINDOWEVENT_TAKE_FOCUS, /**< Window is being offered a focus (should SetWindowInputFocus() on itself or a subwindow, or ignore) */ - SDL_WINDOWEVENT_HIT_TEST, /**< Window had a hit test that wasn't SDL_HITTEST_NORMAL. */ - SDL_WINDOWEVENT_ICCPROF_CHANGED,/**< The ICC profile of the window's display has changed. */ - SDL_WINDOWEVENT_DISPLAY_CHANGED /**< Window has been moved to display data1. */ -} SDL_WindowEventID; - -/** - * \brief Event subtype for display events - */ -typedef enum -{ - SDL_DISPLAYEVENT_NONE, /**< Never used */ - SDL_DISPLAYEVENT_ORIENTATION, /**< Display orientation has changed to data1 */ - SDL_DISPLAYEVENT_CONNECTED, /**< Display has been added to the system */ - SDL_DISPLAYEVENT_DISCONNECTED, /**< Display has been removed from the system */ - SDL_DISPLAYEVENT_MOVED /**< Display has changed position */ -} SDL_DisplayEventID; - -/** - * \brief Display orientation - */ -typedef enum -{ - SDL_ORIENTATION_UNKNOWN, /**< The display orientation can't be determined */ - SDL_ORIENTATION_LANDSCAPE, /**< The display is in landscape mode, with the right side up, relative to portrait mode */ - SDL_ORIENTATION_LANDSCAPE_FLIPPED, /**< The display is in landscape mode, with the left side up, relative to portrait mode */ - SDL_ORIENTATION_PORTRAIT, /**< The display is in portrait mode */ - SDL_ORIENTATION_PORTRAIT_FLIPPED /**< The display is in portrait mode, upside down */ -} SDL_DisplayOrientation; - -/** - * \brief Window flash operation - */ -typedef enum -{ - SDL_FLASH_CANCEL, /**< Cancel any window flash state */ - SDL_FLASH_BRIEFLY, /**< Flash the window briefly to get attention */ - SDL_FLASH_UNTIL_FOCUSED /**< Flash the window until it gets focus */ -} SDL_FlashOperation; - -/** - * \brief An opaque handle to an OpenGL context. - */ -typedef void *SDL_GLContext; - -/** - * \brief OpenGL configuration attributes - */ -typedef enum -{ - SDL_GL_RED_SIZE, - SDL_GL_GREEN_SIZE, - SDL_GL_BLUE_SIZE, - SDL_GL_ALPHA_SIZE, - SDL_GL_BUFFER_SIZE, - SDL_GL_DOUBLEBUFFER, - SDL_GL_DEPTH_SIZE, - SDL_GL_STENCIL_SIZE, - SDL_GL_ACCUM_RED_SIZE, - SDL_GL_ACCUM_GREEN_SIZE, - SDL_GL_ACCUM_BLUE_SIZE, - SDL_GL_ACCUM_ALPHA_SIZE, - SDL_GL_STEREO, - SDL_GL_MULTISAMPLEBUFFERS, - SDL_GL_MULTISAMPLESAMPLES, - SDL_GL_ACCELERATED_VISUAL, - SDL_GL_RETAINED_BACKING, - SDL_GL_CONTEXT_MAJOR_VERSION, - SDL_GL_CONTEXT_MINOR_VERSION, - SDL_GL_CONTEXT_EGL, - SDL_GL_CONTEXT_FLAGS, - SDL_GL_CONTEXT_PROFILE_MASK, - SDL_GL_SHARE_WITH_CURRENT_CONTEXT, - SDL_GL_FRAMEBUFFER_SRGB_CAPABLE, - SDL_GL_CONTEXT_RELEASE_BEHAVIOR, - SDL_GL_CONTEXT_RESET_NOTIFICATION, - SDL_GL_CONTEXT_NO_ERROR, - SDL_GL_FLOATBUFFERS -} SDL_GLattr; - -typedef enum -{ - SDL_GL_CONTEXT_PROFILE_CORE = 0x0001, - SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 0x0002, - SDL_GL_CONTEXT_PROFILE_ES = 0x0004 /**< GLX_CONTEXT_ES2_PROFILE_BIT_EXT */ -} SDL_GLprofile; - -typedef enum -{ - SDL_GL_CONTEXT_DEBUG_FLAG = 0x0001, - SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = 0x0002, - SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG = 0x0004, - SDL_GL_CONTEXT_RESET_ISOLATION_FLAG = 0x0008 -} SDL_GLcontextFlag; - -typedef enum -{ - SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE = 0x0000, - SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x0001 -} SDL_GLcontextReleaseFlag; - -typedef enum -{ - SDL_GL_CONTEXT_RESET_NO_NOTIFICATION = 0x0000, - SDL_GL_CONTEXT_RESET_LOSE_CONTEXT = 0x0001 -} SDL_GLContextResetNotification; - -/* Function prototypes */ - -/** - * Get the number of video drivers compiled into SDL. - * - * \returns a number >= 1 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetVideoDriver - */ -extern DECLSPEC int SDLCALL SDL_GetNumVideoDrivers(void); - -/** - * Get the name of a built in video driver. - * - * The video drivers are presented in the order in which they are normally - * checked during initialization. - * - * \param index the index of a video driver - * \returns the name of the video driver with the given **index**. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumVideoDrivers - */ -extern DECLSPEC const char *SDLCALL SDL_GetVideoDriver(int index); - -/** - * Initialize the video subsystem, optionally specifying a video driver. - * - * This function initializes the video subsystem, setting up a connection to - * the window manager, etc, and determines the available display modes and - * pixel formats, but does not initialize a window or graphics mode. - * - * If you use this function and you haven't used the SDL_INIT_VIDEO flag with - * either SDL_Init() or SDL_InitSubSystem(), you should call SDL_VideoQuit() - * before calling SDL_Quit(). - * - * It is safe to call this function multiple times. SDL_VideoInit() will call - * SDL_VideoQuit() itself if the video subsystem has already been initialized. - * - * You can use SDL_GetNumVideoDrivers() and SDL_GetVideoDriver() to find a - * specific `driver_name`. - * - * \param driver_name the name of a video driver to initialize, or NULL for - * the default driver - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumVideoDrivers - * \sa SDL_GetVideoDriver - * \sa SDL_InitSubSystem - * \sa SDL_VideoQuit - */ -extern DECLSPEC int SDLCALL SDL_VideoInit(const char *driver_name); - -/** - * Shut down the video subsystem, if initialized with SDL_VideoInit(). - * - * This function closes all windows, and restores the original video mode. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_VideoInit - */ -extern DECLSPEC void SDLCALL SDL_VideoQuit(void); - -/** - * Get the name of the currently initialized video driver. - * - * \returns the name of the current video driver or NULL if no driver has been - * initialized. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumVideoDrivers - * \sa SDL_GetVideoDriver - */ -extern DECLSPEC const char *SDLCALL SDL_GetCurrentVideoDriver(void); - -/** - * Get the number of available video displays. - * - * \returns a number >= 1 or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetDisplayBounds - */ -extern DECLSPEC int SDLCALL SDL_GetNumVideoDisplays(void); - -/** - * Get the name of a display in UTF-8 encoding. - * - * \param displayIndex the index of display from which the name should be - * queried - * \returns the name of a display or NULL for an invalid display index or - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC const char * SDLCALL SDL_GetDisplayName(int displayIndex); - -/** - * Get the desktop area represented by a display. - * - * The primary display (`displayIndex` zero) is always located at 0,0. - * - * \param displayIndex the index of the display to query - * \param rect the SDL_Rect structure filled in with the display bounds - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC int SDLCALL SDL_GetDisplayBounds(int displayIndex, SDL_Rect * rect); - -/** - * Get the usable desktop area represented by a display. - * - * The primary display (`displayIndex` zero) is always located at 0,0. - * - * This is the same area as SDL_GetDisplayBounds() reports, but with portions - * reserved by the system removed. For example, on Apple's macOS, this - * subtracts the area occupied by the menu bar and dock. - * - * Setting a window to be fullscreen generally bypasses these unusable areas, - * so these are good guidelines for the maximum space available to a - * non-fullscreen window. - * - * The parameter `rect` is ignored if it is NULL. - * - * This function also returns -1 if the parameter `displayIndex` is out of - * range. - * - * \param displayIndex the index of the display to query the usable bounds - * from - * \param rect the SDL_Rect structure filled in with the display bounds - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_GetDisplayBounds - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC int SDLCALL SDL_GetDisplayUsableBounds(int displayIndex, SDL_Rect * rect); - -/** - * Get the dots/pixels-per-inch for a display. - * - * Diagonal, horizontal and vertical DPI can all be optionally returned if the - * appropriate parameter is non-NULL. - * - * A failure of this function usually means that either no DPI information is - * available or the `displayIndex` is out of range. - * - * **WARNING**: This reports the DPI that the hardware reports, and it is not - * always reliable! It is almost always better to use SDL_GetWindowSize() to - * find the window size, which might be in logical points instead of pixels, - * and then SDL_GL_GetDrawableSize(), SDL_Vulkan_GetDrawableSize(), - * SDL_Metal_GetDrawableSize(), or SDL_GetRendererOutputSize(), and compare - * the two values to get an actual scaling value between the two. We will be - * rethinking how high-dpi details should be managed in SDL3 to make things - * more consistent, reliable, and clear. - * - * \param displayIndex the index of the display from which DPI information - * should be queried - * \param ddpi a pointer filled in with the diagonal DPI of the display; may - * be NULL - * \param hdpi a pointer filled in with the horizontal DPI of the display; may - * be NULL - * \param vdpi a pointer filled in with the vertical DPI of the display; may - * be NULL - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC int SDLCALL SDL_GetDisplayDPI(int displayIndex, float * ddpi, float * hdpi, float * vdpi); - -/** - * Get the orientation of a display. - * - * \param displayIndex the index of the display to query - * \returns The SDL_DisplayOrientation enum value of the display, or - * `SDL_ORIENTATION_UNKNOWN` if it isn't available. - * - * \since This function is available since SDL 2.0.9. - * - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC SDL_DisplayOrientation SDLCALL SDL_GetDisplayOrientation(int displayIndex); - -/** - * Get the number of available display modes. - * - * The `displayIndex` needs to be in the range from 0 to - * SDL_GetNumVideoDisplays() - 1. - * - * \param displayIndex the index of the display to query - * \returns a number >= 1 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetDisplayMode - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC int SDLCALL SDL_GetNumDisplayModes(int displayIndex); - -/** - * Get information about a specific display mode. - * - * The display modes are sorted in this priority: - * - * - width -> largest to smallest - * - height -> largest to smallest - * - bits per pixel -> more colors to fewer colors - * - packed pixel layout -> largest to smallest - * - refresh rate -> highest to lowest - * - * \param displayIndex the index of the display to query - * \param modeIndex the index of the display mode to query - * \param mode an SDL_DisplayMode structure filled in with the mode at - * `modeIndex` - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetNumDisplayModes - */ -extern DECLSPEC int SDLCALL SDL_GetDisplayMode(int displayIndex, int modeIndex, - SDL_DisplayMode * mode); - -/** - * Get information about the desktop's display mode. - * - * There's a difference between this function and SDL_GetCurrentDisplayMode() - * when SDL runs fullscreen and has changed the resolution. In that case this - * function will return the previous native display mode, and not the current - * display mode. - * - * \param displayIndex the index of the display to query - * \param mode an SDL_DisplayMode structure filled in with the current display - * mode - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetCurrentDisplayMode - * \sa SDL_GetDisplayMode - * \sa SDL_SetWindowDisplayMode - */ -extern DECLSPEC int SDLCALL SDL_GetDesktopDisplayMode(int displayIndex, SDL_DisplayMode * mode); - -/** - * Get information about the current display mode. - * - * There's a difference between this function and SDL_GetDesktopDisplayMode() - * when SDL runs fullscreen and has changed the resolution. In that case this - * function will return the current display mode, and not the previous native - * display mode. - * - * \param displayIndex the index of the display to query - * \param mode an SDL_DisplayMode structure filled in with the current display - * mode - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetDesktopDisplayMode - * \sa SDL_GetDisplayMode - * \sa SDL_GetNumVideoDisplays - * \sa SDL_SetWindowDisplayMode - */ -extern DECLSPEC int SDLCALL SDL_GetCurrentDisplayMode(int displayIndex, SDL_DisplayMode * mode); - - -/** - * Get the closest match to the requested display mode. - * - * The available display modes are scanned and `closest` is filled in with the - * closest mode matching the requested mode and returned. The mode format and - * refresh rate default to the desktop mode if they are set to 0. The modes - * are scanned with size being first priority, format being second priority, - * and finally checking the refresh rate. If all the available modes are too - * small, then NULL is returned. - * - * \param displayIndex the index of the display to query - * \param mode an SDL_DisplayMode structure containing the desired display - * mode - * \param closest an SDL_DisplayMode structure filled in with the closest - * match of the available display modes - * \returns the passed in value `closest` or NULL if no matching video mode - * was available; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetDisplayMode - * \sa SDL_GetNumDisplayModes - */ -extern DECLSPEC SDL_DisplayMode * SDLCALL SDL_GetClosestDisplayMode(int displayIndex, const SDL_DisplayMode * mode, SDL_DisplayMode * closest); - -/** - * Get the index of the display containing a point - * - * \param point the point to query - * \returns the index of the display containing the point or a negative error - * code on failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GetDisplayBounds - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC int SDLCALL SDL_GetPointDisplayIndex(const SDL_Point * point); - -/** - * Get the index of the display primarily containing a rect - * - * \param rect the rect to query - * \returns the index of the display entirely containing the rect or closest - * to the center of the rect on success or a negative error code on - * failure; call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.24.0. - * - * \sa SDL_GetDisplayBounds - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC int SDLCALL SDL_GetRectDisplayIndex(const SDL_Rect * rect); - -/** - * Get the index of the display associated with a window. - * - * \param window the window to query - * \returns the index of the display containing the center of the window on - * success or a negative error code on failure; call SDL_GetError() - * for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetDisplayBounds - * \sa SDL_GetNumVideoDisplays - */ -extern DECLSPEC int SDLCALL SDL_GetWindowDisplayIndex(SDL_Window * window); - -/** - * Set the display mode to use when a window is visible at fullscreen. - * - * This only affects the display mode used when the window is fullscreen. To - * change the window size when the window is not fullscreen, use - * SDL_SetWindowSize(). - * - * \param window the window to affect - * \param mode the SDL_DisplayMode structure representing the mode to use, or - * NULL to use the window's dimensions and the desktop's format - * and refresh rate - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowDisplayMode - * \sa SDL_SetWindowFullscreen - */ -extern DECLSPEC int SDLCALL SDL_SetWindowDisplayMode(SDL_Window * window, - const SDL_DisplayMode * mode); - -/** - * Query the display mode to use when a window is visible at fullscreen. - * - * \param window the window to query - * \param mode an SDL_DisplayMode structure filled in with the fullscreen - * display mode - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetWindowDisplayMode - * \sa SDL_SetWindowFullscreen - */ -extern DECLSPEC int SDLCALL SDL_GetWindowDisplayMode(SDL_Window * window, - SDL_DisplayMode * mode); - -/** - * Get the raw ICC profile data for the screen the window is currently on. - * - * Data returned should be freed with SDL_free. - * - * \param window the window to query - * \param size the size of the ICC profile - * \returns the raw ICC profile data on success or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.18. - */ -extern DECLSPEC void* SDLCALL SDL_GetWindowICCProfile(SDL_Window * window, size_t* size); - -/** - * Get the pixel format associated with the window. - * - * \param window the window to query - * \returns the pixel format of the window on success or - * SDL_PIXELFORMAT_UNKNOWN on failure; call SDL_GetError() for more - * information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetWindowPixelFormat(SDL_Window * window); - -/** - * Create a window with the specified position, dimensions, and flags. - * - * `flags` may be any of the following OR'd together: - * - * - `SDL_WINDOW_FULLSCREEN`: fullscreen window - * - `SDL_WINDOW_FULLSCREEN_DESKTOP`: fullscreen window at desktop resolution - * - `SDL_WINDOW_OPENGL`: window usable with an OpenGL context - * - `SDL_WINDOW_VULKAN`: window usable with a Vulkan instance - * - `SDL_WINDOW_METAL`: window usable with a Metal instance - * - `SDL_WINDOW_HIDDEN`: window is not visible - * - `SDL_WINDOW_BORDERLESS`: no window decoration - * - `SDL_WINDOW_RESIZABLE`: window can be resized - * - `SDL_WINDOW_MINIMIZED`: window is minimized - * - `SDL_WINDOW_MAXIMIZED`: window is maximized - * - `SDL_WINDOW_INPUT_GRABBED`: window has grabbed input focus - * - `SDL_WINDOW_ALLOW_HIGHDPI`: window should be created in high-DPI mode if - * supported (>= SDL 2.0.1) - * - * `SDL_WINDOW_SHOWN` is ignored by SDL_CreateWindow(). The SDL_Window is - * implicitly shown if SDL_WINDOW_HIDDEN is not set. `SDL_WINDOW_SHOWN` may be - * queried later using SDL_GetWindowFlags(). - * - * On Apple's macOS, you **must** set the NSHighResolutionCapable Info.plist - * property to YES, otherwise you will not receive a High-DPI OpenGL canvas. - * - * If the window is created with the `SDL_WINDOW_ALLOW_HIGHDPI` flag, its size - * in pixels may differ from its size in screen coordinates on platforms with - * high-DPI support (e.g. iOS and macOS). Use SDL_GetWindowSize() to query the - * client area's size in screen coordinates, and SDL_GL_GetDrawableSize() or - * SDL_GetRendererOutputSize() to query the drawable size in pixels. Note that - * when this flag is set, the drawable size can vary after the window is - * created and should be queried after major window events such as when the - * window is resized or moved between displays. - * - * If the window is set fullscreen, the width and height parameters `w` and - * `h` will not be used. However, invalid size parameters (e.g. too large) may - * still fail. Window size is actually limited to 16384 x 16384 for all - * platforms at window creation. - * - * If the window is created with any of the SDL_WINDOW_OPENGL or - * SDL_WINDOW_VULKAN flags, then the corresponding LoadLibrary function - * (SDL_GL_LoadLibrary or SDL_Vulkan_LoadLibrary) is called and the - * corresponding UnloadLibrary function is called by SDL_DestroyWindow(). - * - * If SDL_WINDOW_VULKAN is specified and there isn't a working Vulkan driver, - * SDL_CreateWindow() will fail because SDL_Vulkan_LoadLibrary() will fail. - * - * If SDL_WINDOW_METAL is specified on an OS that does not support Metal, - * SDL_CreateWindow() will fail. - * - * On non-Apple devices, SDL requires you to either not link to the Vulkan - * loader or link to a dynamic library version. This limitation may be removed - * in a future version of SDL. - * - * \param title the title of the window, in UTF-8 encoding - * \param x the x position of the window, `SDL_WINDOWPOS_CENTERED`, or - * `SDL_WINDOWPOS_UNDEFINED` - * \param y the y position of the window, `SDL_WINDOWPOS_CENTERED`, or - * `SDL_WINDOWPOS_UNDEFINED` - * \param w the width of the window, in screen coordinates - * \param h the height of the window, in screen coordinates - * \param flags 0, or one or more SDL_WindowFlags OR'd together - * \returns the window that was created or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateWindowFrom - * \sa SDL_DestroyWindow - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_CreateWindow(const char *title, - int x, int y, int w, - int h, Uint32 flags); - -/** - * Create an SDL window from an existing native window. - * - * In some cases (e.g. OpenGL) and on some platforms (e.g. Microsoft Windows) - * the hint `SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT` needs to be configured - * before using SDL_CreateWindowFrom(). - * - * \param data a pointer to driver-dependent window creation data, typically - * your native window cast to a void* - * \returns the window that was created or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateWindow - * \sa SDL_DestroyWindow - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_CreateWindowFrom(const void *data); - -/** - * Get the numeric ID of a window. - * - * The numeric ID is what SDL_WindowEvent references, and is necessary to map - * these events to specific SDL_Window objects. - * - * \param window the window to query - * \returns the ID of the window on success or 0 on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowFromID - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetWindowID(SDL_Window * window); - -/** - * Get a window from a stored ID. - * - * The numeric ID is what SDL_WindowEvent references, and is necessary to map - * these events to specific SDL_Window objects. - * - * \param id the ID of the window - * \returns the window associated with `id` or NULL if it doesn't exist; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowID - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_GetWindowFromID(Uint32 id); - -/** - * Get the window flags. - * - * \param window the window to query - * \returns a mask of the SDL_WindowFlags associated with `window` - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateWindow - * \sa SDL_HideWindow - * \sa SDL_MaximizeWindow - * \sa SDL_MinimizeWindow - * \sa SDL_SetWindowFullscreen - * \sa SDL_SetWindowGrab - * \sa SDL_ShowWindow - */ -extern DECLSPEC Uint32 SDLCALL SDL_GetWindowFlags(SDL_Window * window); - -/** - * Set the title of a window. - * - * This string is expected to be in UTF-8 encoding. - * - * \param window the window to change - * \param title the desired window title in UTF-8 format - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowTitle - */ -extern DECLSPEC void SDLCALL SDL_SetWindowTitle(SDL_Window * window, - const char *title); - -/** - * Get the title of a window. - * - * \param window the window to query - * \returns the title of the window in UTF-8 format or "" if there is no - * title. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetWindowTitle - */ -extern DECLSPEC const char *SDLCALL SDL_GetWindowTitle(SDL_Window * window); - -/** - * Set the icon for a window. - * - * \param window the window to change - * \param icon an SDL_Surface structure containing the icon for the window - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC void SDLCALL SDL_SetWindowIcon(SDL_Window * window, - SDL_Surface * icon); - -/** - * Associate an arbitrary named pointer with a window. - * - * `name` is case-sensitive. - * - * \param window the window to associate with the pointer - * \param name the name of the pointer - * \param userdata the associated pointer - * \returns the previous value associated with `name`. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowData - */ -extern DECLSPEC void* SDLCALL SDL_SetWindowData(SDL_Window * window, - const char *name, - void *userdata); - -/** - * Retrieve the data pointer associated with a window. - * - * \param window the window to query - * \param name the name of the pointer - * \returns the value associated with `name`. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetWindowData - */ -extern DECLSPEC void *SDLCALL SDL_GetWindowData(SDL_Window * window, - const char *name); - -/** - * Set the position of a window. - * - * The window coordinate origin is the upper left of the display. - * - * \param window the window to reposition - * \param x the x coordinate of the window in screen coordinates, or - * `SDL_WINDOWPOS_CENTERED` or `SDL_WINDOWPOS_UNDEFINED` - * \param y the y coordinate of the window in screen coordinates, or - * `SDL_WINDOWPOS_CENTERED` or `SDL_WINDOWPOS_UNDEFINED` - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowPosition - */ -extern DECLSPEC void SDLCALL SDL_SetWindowPosition(SDL_Window * window, - int x, int y); - -/** - * Get the position of a window. - * - * If you do not need the value for one of the positions a NULL may be passed - * in the `x` or `y` parameter. - * - * \param window the window to query - * \param x a pointer filled in with the x position of the window, in screen - * coordinates, may be NULL - * \param y a pointer filled in with the y position of the window, in screen - * coordinates, may be NULL - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetWindowPosition - */ -extern DECLSPEC void SDLCALL SDL_GetWindowPosition(SDL_Window * window, - int *x, int *y); - -/** - * Set the size of a window's client area. - * - * The window size in screen coordinates may differ from the size in pixels, - * if the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a platform - * with high-dpi support (e.g. iOS or macOS). Use SDL_GL_GetDrawableSize() or - * SDL_GetRendererOutputSize() to get the real client area size in pixels. - * - * Fullscreen windows automatically match the size of the display mode, and - * you should use SDL_SetWindowDisplayMode() to change their size. - * - * \param window the window to change - * \param w the width of the window in pixels, in screen coordinates, must be - * > 0 - * \param h the height of the window in pixels, in screen coordinates, must be - * > 0 - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowSize - * \sa SDL_SetWindowDisplayMode - */ -extern DECLSPEC void SDLCALL SDL_SetWindowSize(SDL_Window * window, int w, - int h); - -/** - * Get the size of a window's client area. - * - * NULL can safely be passed as the `w` or `h` parameter if the width or - * height value is not desired. - * - * The window size in screen coordinates may differ from the size in pixels, - * if the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a platform - * with high-dpi support (e.g. iOS or macOS). Use SDL_GL_GetDrawableSize(), - * SDL_Vulkan_GetDrawableSize(), or SDL_GetRendererOutputSize() to get the - * real client area size in pixels. - * - * \param window the window to query the width and height from - * \param w a pointer filled in with the width of the window, in screen - * coordinates, may be NULL - * \param h a pointer filled in with the height of the window, in screen - * coordinates, may be NULL - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_GetDrawableSize - * \sa SDL_Vulkan_GetDrawableSize - * \sa SDL_SetWindowSize - */ -extern DECLSPEC void SDLCALL SDL_GetWindowSize(SDL_Window * window, int *w, - int *h); - -/** - * Get the size of a window's borders (decorations) around the client area. - * - * Note: If this function fails (returns -1), the size values will be - * initialized to 0, 0, 0, 0 (if a non-NULL pointer is provided), as if the - * window in question was borderless. - * - * Note: This function may fail on systems where the window has not yet been - * decorated by the display server (for example, immediately after calling - * SDL_CreateWindow). It is recommended that you wait at least until the - * window has been presented and composited, so that the window system has a - * chance to decorate the window and provide the border dimensions to SDL. - * - * This function also returns -1 if getting the information is not supported. - * - * \param window the window to query the size values of the border - * (decorations) from - * \param top pointer to variable for storing the size of the top border; NULL - * is permitted - * \param left pointer to variable for storing the size of the left border; - * NULL is permitted - * \param bottom pointer to variable for storing the size of the bottom - * border; NULL is permitted - * \param right pointer to variable for storing the size of the right border; - * NULL is permitted - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_GetWindowSize - */ -extern DECLSPEC int SDLCALL SDL_GetWindowBordersSize(SDL_Window * window, - int *top, int *left, - int *bottom, int *right); - -/** - * Get the size of a window in pixels. - * - * This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI - * drawable, i.e. the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a - * platform with high-DPI support (Apple calls this "Retina"), and not - * disabled by the `SDL_HINT_VIDEO_HIGHDPI_DISABLED` hint. - * - * \param window the window from which the drawable size should be queried - * \param w a pointer to variable for storing the width in pixels, may be NULL - * \param h a pointer to variable for storing the height in pixels, may be - * NULL - * - * \since This function is available since SDL 2.26.0. - * - * \sa SDL_CreateWindow - * \sa SDL_GetWindowSize - */ -extern DECLSPEC void SDLCALL SDL_GetWindowSizeInPixels(SDL_Window * window, - int *w, int *h); - -/** - * Set the minimum size of a window's client area. - * - * \param window the window to change - * \param min_w the minimum width of the window in pixels - * \param min_h the minimum height of the window in pixels - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowMinimumSize - * \sa SDL_SetWindowMaximumSize - */ -extern DECLSPEC void SDLCALL SDL_SetWindowMinimumSize(SDL_Window * window, - int min_w, int min_h); - -/** - * Get the minimum size of a window's client area. - * - * \param window the window to query - * \param w a pointer filled in with the minimum width of the window, may be - * NULL - * \param h a pointer filled in with the minimum height of the window, may be - * NULL - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowMaximumSize - * \sa SDL_SetWindowMinimumSize - */ -extern DECLSPEC void SDLCALL SDL_GetWindowMinimumSize(SDL_Window * window, - int *w, int *h); - -/** - * Set the maximum size of a window's client area. - * - * \param window the window to change - * \param max_w the maximum width of the window in pixels - * \param max_h the maximum height of the window in pixels - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowMaximumSize - * \sa SDL_SetWindowMinimumSize - */ -extern DECLSPEC void SDLCALL SDL_SetWindowMaximumSize(SDL_Window * window, - int max_w, int max_h); - -/** - * Get the maximum size of a window's client area. - * - * \param window the window to query - * \param w a pointer filled in with the maximum width of the window, may be - * NULL - * \param h a pointer filled in with the maximum height of the window, may be - * NULL - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowMinimumSize - * \sa SDL_SetWindowMaximumSize - */ -extern DECLSPEC void SDLCALL SDL_GetWindowMaximumSize(SDL_Window * window, - int *w, int *h); - -/** - * Set the border state of a window. - * - * This will add or remove the window's `SDL_WINDOW_BORDERLESS` flag and add - * or remove the border from the actual window. This is a no-op if the - * window's border already matches the requested state. - * - * You can't change the border state of a fullscreen window. - * - * \param window the window of which to change the border state - * \param bordered SDL_FALSE to remove border, SDL_TRUE to add border - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowFlags - */ -extern DECLSPEC void SDLCALL SDL_SetWindowBordered(SDL_Window * window, - SDL_bool bordered); - -/** - * Set the user-resizable state of a window. - * - * This will add or remove the window's `SDL_WINDOW_RESIZABLE` flag and - * allow/disallow user resizing of the window. This is a no-op if the window's - * resizable state already matches the requested state. - * - * You can't change the resizable state of a fullscreen window. - * - * \param window the window of which to change the resizable state - * \param resizable SDL_TRUE to allow resizing, SDL_FALSE to disallow - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_GetWindowFlags - */ -extern DECLSPEC void SDLCALL SDL_SetWindowResizable(SDL_Window * window, - SDL_bool resizable); - -/** - * Set the window to always be above the others. - * - * This will add or remove the window's `SDL_WINDOW_ALWAYS_ON_TOP` flag. This - * will bring the window to the front and keep the window above the rest. - * - * \param window The window of which to change the always on top state - * \param on_top SDL_TRUE to set the window always on top, SDL_FALSE to - * disable - * - * \since This function is available since SDL 2.0.16. - * - * \sa SDL_GetWindowFlags - */ -extern DECLSPEC void SDLCALL SDL_SetWindowAlwaysOnTop(SDL_Window * window, - SDL_bool on_top); - -/** - * Show a window. - * - * \param window the window to show - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_HideWindow - * \sa SDL_RaiseWindow - */ -extern DECLSPEC void SDLCALL SDL_ShowWindow(SDL_Window * window); - -/** - * Hide a window. - * - * \param window the window to hide - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_ShowWindow - */ -extern DECLSPEC void SDLCALL SDL_HideWindow(SDL_Window * window); - -/** - * Raise a window above other windows and set the input focus. - * - * \param window the window to raise - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC void SDLCALL SDL_RaiseWindow(SDL_Window * window); - -/** - * Make a window as large as possible. - * - * \param window the window to maximize - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_MinimizeWindow - * \sa SDL_RestoreWindow - */ -extern DECLSPEC void SDLCALL SDL_MaximizeWindow(SDL_Window * window); - -/** - * Minimize a window to an iconic representation. - * - * \param window the window to minimize - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_MaximizeWindow - * \sa SDL_RestoreWindow - */ -extern DECLSPEC void SDLCALL SDL_MinimizeWindow(SDL_Window * window); - -/** - * Restore the size and position of a minimized or maximized window. - * - * \param window the window to restore - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_MaximizeWindow - * \sa SDL_MinimizeWindow - */ -extern DECLSPEC void SDLCALL SDL_RestoreWindow(SDL_Window * window); - -/** - * Set a window's fullscreen state. - * - * `flags` may be `SDL_WINDOW_FULLSCREEN`, for "real" fullscreen with a - * videomode change; `SDL_WINDOW_FULLSCREEN_DESKTOP` for "fake" fullscreen - * that takes the size of the desktop; and 0 for windowed mode. - * - * \param window the window to change - * \param flags `SDL_WINDOW_FULLSCREEN`, `SDL_WINDOW_FULLSCREEN_DESKTOP` or 0 - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowDisplayMode - * \sa SDL_SetWindowDisplayMode - */ -extern DECLSPEC int SDLCALL SDL_SetWindowFullscreen(SDL_Window * window, - Uint32 flags); - -/** - * Return whether the window has a surface associated with it. - * - * \returns SDL_TRUE if there is a surface associated with the window, or SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.28.0. - * - * \sa SDL_GetWindowSurface - */ -extern DECLSPEC SDL_bool SDLCALL SDL_HasWindowSurface(SDL_Window *window); - -/** - * Get the SDL surface associated with the window. - * - * A new surface will be created with the optimal format for the window, if - * necessary. This surface will be freed when the window is destroyed. Do not - * free this surface. - * - * This surface will be invalidated if the window is resized. After resizing a - * window this function must be called again to return a valid surface. - * - * You may not combine this with 3D or the rendering API on this window. - * - * This function is affected by `SDL_HINT_FRAMEBUFFER_ACCELERATION`. - * - * \param window the window to query - * \returns the surface associated with the window, or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_DestroyWindowSurface - * \sa SDL_HasWindowSurface - * \sa SDL_UpdateWindowSurface - * \sa SDL_UpdateWindowSurfaceRects - */ -extern DECLSPEC SDL_Surface * SDLCALL SDL_GetWindowSurface(SDL_Window * window); - -/** - * Copy the window surface to the screen. - * - * This is the function you use to reflect any changes to the surface on the - * screen. - * - * This function is equivalent to the SDL 1.2 API SDL_Flip(). - * - * \param window the window to update - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowSurface - * \sa SDL_UpdateWindowSurfaceRects - */ -extern DECLSPEC int SDLCALL SDL_UpdateWindowSurface(SDL_Window * window); - -/** - * Copy areas of the window surface to the screen. - * - * This is the function you use to reflect changes to portions of the surface - * on the screen. - * - * This function is equivalent to the SDL 1.2 API SDL_UpdateRects(). - * - * \param window the window to update - * \param rects an array of SDL_Rect structures representing areas of the - * surface to copy, in pixels - * \param numrects the number of rectangles - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowSurface - * \sa SDL_UpdateWindowSurface - */ -extern DECLSPEC int SDLCALL SDL_UpdateWindowSurfaceRects(SDL_Window * window, - const SDL_Rect * rects, - int numrects); - -/** - * Destroy the surface associated with the window. - * - * \param window the window to update - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.28.0. - * - * \sa SDL_GetWindowSurface - * \sa SDL_HasWindowSurface - */ -extern DECLSPEC int SDLCALL SDL_DestroyWindowSurface(SDL_Window *window); - -/** - * Set a window's input grab mode. - * - * When input is grabbed, the mouse is confined to the window. This function - * will also grab the keyboard if `SDL_HINT_GRAB_KEYBOARD` is set. To grab the - * keyboard without also grabbing the mouse, use SDL_SetWindowKeyboardGrab(). - * - * If the caller enables a grab while another window is currently grabbed, the - * other window loses its grab in favor of the caller's window. - * - * \param window the window for which the input grab mode should be set - * \param grabbed SDL_TRUE to grab input or SDL_FALSE to release input - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetGrabbedWindow - * \sa SDL_GetWindowGrab - */ -extern DECLSPEC void SDLCALL SDL_SetWindowGrab(SDL_Window * window, - SDL_bool grabbed); - -/** - * Set a window's keyboard grab mode. - * - * Keyboard grab enables capture of system keyboard shortcuts like Alt+Tab or - * the Meta/Super key. Note that not all system keyboard shortcuts can be - * captured by applications (one example is Ctrl+Alt+Del on Windows). - * - * This is primarily intended for specialized applications such as VNC clients - * or VM frontends. Normal games should not use keyboard grab. - * - * When keyboard grab is enabled, SDL will continue to handle Alt+Tab when the - * window is full-screen to ensure the user is not trapped in your - * application. If you have a custom keyboard shortcut to exit fullscreen - * mode, you may suppress this behavior with - * `SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED`. - * - * If the caller enables a grab while another window is currently grabbed, the - * other window loses its grab in favor of the caller's window. - * - * \param window The window for which the keyboard grab mode should be set. - * \param grabbed This is SDL_TRUE to grab keyboard, and SDL_FALSE to release. - * - * \since This function is available since SDL 2.0.16. - * - * \sa SDL_GetWindowKeyboardGrab - * \sa SDL_SetWindowMouseGrab - * \sa SDL_SetWindowGrab - */ -extern DECLSPEC void SDLCALL SDL_SetWindowKeyboardGrab(SDL_Window * window, - SDL_bool grabbed); - -/** - * Set a window's mouse grab mode. - * - * Mouse grab confines the mouse cursor to the window. - * - * \param window The window for which the mouse grab mode should be set. - * \param grabbed This is SDL_TRUE to grab mouse, and SDL_FALSE to release. - * - * \since This function is available since SDL 2.0.16. - * - * \sa SDL_GetWindowMouseGrab - * \sa SDL_SetWindowKeyboardGrab - * \sa SDL_SetWindowGrab - */ -extern DECLSPEC void SDLCALL SDL_SetWindowMouseGrab(SDL_Window * window, - SDL_bool grabbed); - -/** - * Get a window's input grab mode. - * - * \param window the window to query - * \returns SDL_TRUE if input is grabbed, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetWindowGrab - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowGrab(SDL_Window * window); - -/** - * Get a window's keyboard grab mode. - * - * \param window the window to query - * \returns SDL_TRUE if keyboard is grabbed, and SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.16. - * - * \sa SDL_SetWindowKeyboardGrab - * \sa SDL_GetWindowGrab - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowKeyboardGrab(SDL_Window * window); - -/** - * Get a window's mouse grab mode. - * - * \param window the window to query - * \returns SDL_TRUE if mouse is grabbed, and SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.16. - * - * \sa SDL_SetWindowKeyboardGrab - * \sa SDL_GetWindowGrab - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowMouseGrab(SDL_Window * window); - -/** - * Get the window that currently has an input grab enabled. - * - * \returns the window if input is grabbed or NULL otherwise. - * - * \since This function is available since SDL 2.0.4. - * - * \sa SDL_GetWindowGrab - * \sa SDL_SetWindowGrab - */ -extern DECLSPEC SDL_Window * SDLCALL SDL_GetGrabbedWindow(void); - -/** - * Confines the cursor to the specified area of a window. - * - * Note that this does NOT grab the cursor, it only defines the area a cursor - * is restricted to when the window has mouse focus. - * - * \param window The window that will be associated with the barrier. - * \param rect A rectangle area in window-relative coordinates. If NULL the - * barrier for the specified window will be destroyed. - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_GetWindowMouseRect - * \sa SDL_SetWindowMouseGrab - */ -extern DECLSPEC int SDLCALL SDL_SetWindowMouseRect(SDL_Window * window, const SDL_Rect * rect); - -/** - * Get the mouse confinement rectangle of a window. - * - * \param window The window to query - * \returns A pointer to the mouse confinement rectangle of a window, or NULL - * if there isn't one. - * - * \since This function is available since SDL 2.0.18. - * - * \sa SDL_SetWindowMouseRect - */ -extern DECLSPEC const SDL_Rect * SDLCALL SDL_GetWindowMouseRect(SDL_Window * window); - -/** - * Set the brightness (gamma multiplier) for a given window's display. - * - * Despite the name and signature, this method sets the brightness of the - * entire display, not an individual window. A window is considered to be - * owned by the display that contains the window's center pixel. (The index of - * this display can be retrieved using SDL_GetWindowDisplayIndex().) The - * brightness set will not follow the window if it is moved to another - * display. - * - * Many platforms will refuse to set the display brightness in modern times. - * You are better off using a shader to adjust gamma during rendering, or - * something similar. - * - * \param window the window used to select the display whose brightness will - * be changed - * \param brightness the brightness (gamma multiplier) value to set where 0.0 - * is completely dark and 1.0 is normal brightness - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowBrightness - * \sa SDL_SetWindowGammaRamp - */ -extern DECLSPEC int SDLCALL SDL_SetWindowBrightness(SDL_Window * window, float brightness); - -/** - * Get the brightness (gamma multiplier) for a given window's display. - * - * Despite the name and signature, this method retrieves the brightness of the - * entire display, not an individual window. A window is considered to be - * owned by the display that contains the window's center pixel. (The index of - * this display can be retrieved using SDL_GetWindowDisplayIndex().) - * - * \param window the window used to select the display whose brightness will - * be queried - * \returns the brightness for the display where 0.0 is completely dark and - * 1.0 is normal brightness. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetWindowBrightness - */ -extern DECLSPEC float SDLCALL SDL_GetWindowBrightness(SDL_Window * window); - -/** - * Set the opacity for a window. - * - * The parameter `opacity` will be clamped internally between 0.0f - * (transparent) and 1.0f (opaque). - * - * This function also returns -1 if setting the opacity isn't supported. - * - * \param window the window which will be made transparent or opaque - * \param opacity the opacity value (0.0f - transparent, 1.0f - opaque) - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_GetWindowOpacity - */ -extern DECLSPEC int SDLCALL SDL_SetWindowOpacity(SDL_Window * window, float opacity); - -/** - * Get the opacity of a window. - * - * If transparency isn't supported on this platform, opacity will be reported - * as 1.0f without error. - * - * The parameter `opacity` is ignored if it is NULL. - * - * This function also returns -1 if an invalid window was provided. - * - * \param window the window to get the current opacity value from - * \param out_opacity the float filled in (0.0f - transparent, 1.0f - opaque) - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_SetWindowOpacity - */ -extern DECLSPEC int SDLCALL SDL_GetWindowOpacity(SDL_Window * window, float * out_opacity); - -/** - * Set the window as a modal for another window. - * - * \param modal_window the window that should be set modal - * \param parent_window the parent window for the modal window - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - */ -extern DECLSPEC int SDLCALL SDL_SetWindowModalFor(SDL_Window * modal_window, SDL_Window * parent_window); - -/** - * Explicitly set input focus to the window. - * - * You almost certainly want SDL_RaiseWindow() instead of this function. Use - * this with caution, as you might give focus to a window that is completely - * obscured by other windows. - * - * \param window the window that should get the input focus - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.5. - * - * \sa SDL_RaiseWindow - */ -extern DECLSPEC int SDLCALL SDL_SetWindowInputFocus(SDL_Window * window); - -/** - * Set the gamma ramp for the display that owns a given window. - * - * Set the gamma translation table for the red, green, and blue channels of - * the video hardware. Each table is an array of 256 16-bit quantities, - * representing a mapping between the input and output for that channel. The - * input is the index into the array, and the output is the 16-bit gamma value - * at that index, scaled to the output color precision. - * - * Despite the name and signature, this method sets the gamma ramp of the - * entire display, not an individual window. A window is considered to be - * owned by the display that contains the window's center pixel. (The index of - * this display can be retrieved using SDL_GetWindowDisplayIndex().) The gamma - * ramp set will not follow the window if it is moved to another display. - * - * \param window the window used to select the display whose gamma ramp will - * be changed - * \param red a 256 element array of 16-bit quantities representing the - * translation table for the red channel, or NULL - * \param green a 256 element array of 16-bit quantities representing the - * translation table for the green channel, or NULL - * \param blue a 256 element array of 16-bit quantities representing the - * translation table for the blue channel, or NULL - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GetWindowGammaRamp - */ -extern DECLSPEC int SDLCALL SDL_SetWindowGammaRamp(SDL_Window * window, - const Uint16 * red, - const Uint16 * green, - const Uint16 * blue); - -/** - * Get the gamma ramp for a given window's display. - * - * Despite the name and signature, this method retrieves the gamma ramp of the - * entire display, not an individual window. A window is considered to be - * owned by the display that contains the window's center pixel. (The index of - * this display can be retrieved using SDL_GetWindowDisplayIndex().) - * - * \param window the window used to select the display whose gamma ramp will - * be queried - * \param red a 256 element array of 16-bit quantities filled in with the - * translation table for the red channel, or NULL - * \param green a 256 element array of 16-bit quantities filled in with the - * translation table for the green channel, or NULL - * \param blue a 256 element array of 16-bit quantities filled in with the - * translation table for the blue channel, or NULL - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_SetWindowGammaRamp - */ -extern DECLSPEC int SDLCALL SDL_GetWindowGammaRamp(SDL_Window * window, - Uint16 * red, - Uint16 * green, - Uint16 * blue); - -/** - * Possible return values from the SDL_HitTest callback. - * - * \sa SDL_HitTest - */ -typedef enum -{ - SDL_HITTEST_NORMAL, /**< Region is normal. No special properties. */ - SDL_HITTEST_DRAGGABLE, /**< Region can drag entire window. */ - SDL_HITTEST_RESIZE_TOPLEFT, - SDL_HITTEST_RESIZE_TOP, - SDL_HITTEST_RESIZE_TOPRIGHT, - SDL_HITTEST_RESIZE_RIGHT, - SDL_HITTEST_RESIZE_BOTTOMRIGHT, - SDL_HITTEST_RESIZE_BOTTOM, - SDL_HITTEST_RESIZE_BOTTOMLEFT, - SDL_HITTEST_RESIZE_LEFT -} SDL_HitTestResult; - -/** - * Callback used for hit-testing. - * - * \param win the SDL_Window where hit-testing was set on - * \param area an SDL_Point which should be hit-tested - * \param data what was passed as `callback_data` to SDL_SetWindowHitTest() - * \return an SDL_HitTestResult value. - * - * \sa SDL_SetWindowHitTest - */ -typedef SDL_HitTestResult (SDLCALL *SDL_HitTest)(SDL_Window *win, - const SDL_Point *area, - void *data); - -/** - * Provide a callback that decides if a window region has special properties. - * - * Normally windows are dragged and resized by decorations provided by the - * system window manager (a title bar, borders, etc), but for some apps, it - * makes sense to drag them from somewhere else inside the window itself; for - * example, one might have a borderless window that wants to be draggable from - * any part, or simulate its own title bar, etc. - * - * This function lets the app provide a callback that designates pieces of a - * given window as special. This callback is run during event processing if we - * need to tell the OS to treat a region of the window specially; the use of - * this callback is known as "hit testing." - * - * Mouse input may not be delivered to your application if it is within a - * special area; the OS will often apply that input to moving the window or - * resizing the window and not deliver it to the application. - * - * Specifying NULL for a callback disables hit-testing. Hit-testing is - * disabled by default. - * - * Platforms that don't support this functionality will return -1 - * unconditionally, even if you're attempting to disable hit-testing. - * - * Your callback may fire at any time, and its firing does not indicate any - * specific behavior (for example, on Windows, this certainly might fire when - * the OS is deciding whether to drag your window, but it fires for lots of - * other reasons, too, some unrelated to anything you probably care about _and - * when the mouse isn't actually at the location it is testing_). Since this - * can fire at any time, you should try to keep your callback efficient, - * devoid of allocations, etc. - * - * \param window the window to set hit-testing on - * \param callback the function to call when doing a hit-test - * \param callback_data an app-defined void pointer passed to **callback** - * \returns 0 on success or -1 on error (including unsupported); call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.4. - */ -extern DECLSPEC int SDLCALL SDL_SetWindowHitTest(SDL_Window * window, - SDL_HitTest callback, - void *callback_data); - -/** - * Request a window to demand attention from the user. - * - * \param window the window to be flashed - * \param operation the flash operation - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.16. - */ -extern DECLSPEC int SDLCALL SDL_FlashWindow(SDL_Window * window, SDL_FlashOperation operation); - -/** - * Destroy a window. - * - * If `window` is NULL, this function will return immediately after setting - * the SDL error message to "Invalid window". See SDL_GetError(). - * - * \param window the window to destroy - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_CreateWindow - * \sa SDL_CreateWindowFrom - */ -extern DECLSPEC void SDLCALL SDL_DestroyWindow(SDL_Window * window); - - -/** - * Check whether the screensaver is currently enabled. - * - * The screensaver is disabled by default since SDL 2.0.2. Before SDL 2.0.2 - * the screensaver was enabled by default. - * - * The default can also be changed using `SDL_HINT_VIDEO_ALLOW_SCREENSAVER`. - * - * \returns SDL_TRUE if the screensaver is enabled, SDL_FALSE if it is - * disabled. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_DisableScreenSaver - * \sa SDL_EnableScreenSaver - */ -extern DECLSPEC SDL_bool SDLCALL SDL_IsScreenSaverEnabled(void); - -/** - * Allow the screen to be blanked by a screen saver. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_DisableScreenSaver - * \sa SDL_IsScreenSaverEnabled - */ -extern DECLSPEC void SDLCALL SDL_EnableScreenSaver(void); - -/** - * Prevent the screen from being blanked by a screen saver. - * - * If you disable the screensaver, it is automatically re-enabled when SDL - * quits. - * - * The screensaver is disabled by default since SDL 2.0.2. Before SDL 2.0.2 - * the screensaver was enabled by default. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_EnableScreenSaver - * \sa SDL_IsScreenSaverEnabled - */ -extern DECLSPEC void SDLCALL SDL_DisableScreenSaver(void); - - -/** - * \name OpenGL support functions - */ -/* @{ */ - -/** - * Dynamically load an OpenGL library. - * - * This should be done after initializing the video driver, but before - * creating any OpenGL windows. If no OpenGL library is loaded, the default - * library will be loaded upon creation of the first OpenGL window. - * - * If you do this, you need to retrieve all of the GL functions used in your - * program from the dynamic library using SDL_GL_GetProcAddress(). - * - * \param path the platform dependent OpenGL library name, or NULL to open the - * default OpenGL library - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_GetProcAddress - * \sa SDL_GL_UnloadLibrary - */ -extern DECLSPEC int SDLCALL SDL_GL_LoadLibrary(const char *path); - -/** - * Get an OpenGL function by name. - * - * If the GL library is loaded at runtime with SDL_GL_LoadLibrary(), then all - * GL functions must be retrieved this way. Usually this is used to retrieve - * function pointers to OpenGL extensions. - * - * There are some quirks to looking up OpenGL functions that require some - * extra care from the application. If you code carefully, you can handle - * these quirks without any platform-specific code, though: - * - * - On Windows, function pointers are specific to the current GL context; - * this means you need to have created a GL context and made it current - * before calling SDL_GL_GetProcAddress(). If you recreate your context or - * create a second context, you should assume that any existing function - * pointers aren't valid to use with it. This is (currently) a - * Windows-specific limitation, and in practice lots of drivers don't suffer - * this limitation, but it is still the way the wgl API is documented to - * work and you should expect crashes if you don't respect it. Store a copy - * of the function pointers that comes and goes with context lifespan. - * - On X11, function pointers returned by this function are valid for any - * context, and can even be looked up before a context is created at all. - * This means that, for at least some common OpenGL implementations, if you - * look up a function that doesn't exist, you'll get a non-NULL result that - * is _NOT_ safe to call. You must always make sure the function is actually - * available for a given GL context before calling it, by checking for the - * existence of the appropriate extension with SDL_GL_ExtensionSupported(), - * or verifying that the version of OpenGL you're using offers the function - * as core functionality. - * - Some OpenGL drivers, on all platforms, *will* return NULL if a function - * isn't supported, but you can't count on this behavior. Check for - * extensions you use, and if you get a NULL anyway, act as if that - * extension wasn't available. This is probably a bug in the driver, but you - * can code defensively for this scenario anyhow. - * - Just because you're on Linux/Unix, don't assume you'll be using X11. - * Next-gen display servers are waiting to replace it, and may or may not - * make the same promises about function pointers. - * - OpenGL function pointers must be declared `APIENTRY` as in the example - * code. This will ensure the proper calling convention is followed on - * platforms where this matters (Win32) thereby avoiding stack corruption. - * - * \param proc the name of an OpenGL function - * \returns a pointer to the named OpenGL function. The returned pointer - * should be cast to the appropriate function signature. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_ExtensionSupported - * \sa SDL_GL_LoadLibrary - * \sa SDL_GL_UnloadLibrary - */ -extern DECLSPEC void *SDLCALL SDL_GL_GetProcAddress(const char *proc); - -/** - * Unload the OpenGL library previously loaded by SDL_GL_LoadLibrary(). - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_LoadLibrary - */ -extern DECLSPEC void SDLCALL SDL_GL_UnloadLibrary(void); - -/** - * Check if an OpenGL extension is supported for the current context. - * - * This function operates on the current GL context; you must have created a - * context and it must be current before calling this function. Do not assume - * that all contexts you create will have the same set of extensions - * available, or that recreating an existing context will offer the same - * extensions again. - * - * While it's probably not a massive overhead, this function is not an O(1) - * operation. Check the extensions you care about after creating the GL - * context and save that information somewhere instead of calling the function - * every time you need to know. - * - * \param extension the name of the extension to check - * \returns SDL_TRUE if the extension is supported, SDL_FALSE otherwise. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_bool SDLCALL SDL_GL_ExtensionSupported(const char - *extension); - -/** - * Reset all previously set OpenGL context attributes to their default values. - * - * \since This function is available since SDL 2.0.2. - * - * \sa SDL_GL_GetAttribute - * \sa SDL_GL_SetAttribute - */ -extern DECLSPEC void SDLCALL SDL_GL_ResetAttributes(void); - -/** - * Set an OpenGL window attribute before window creation. - * - * This function sets the OpenGL attribute `attr` to `value`. The requested - * attributes should be set before creating an OpenGL window. You should use - * SDL_GL_GetAttribute() to check the values after creating the OpenGL - * context, since the values obtained can differ from the requested ones. - * - * \param attr an SDL_GLattr enum value specifying the OpenGL attribute to set - * \param value the desired value for the attribute - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_GetAttribute - * \sa SDL_GL_ResetAttributes - */ -extern DECLSPEC int SDLCALL SDL_GL_SetAttribute(SDL_GLattr attr, int value); - -/** - * Get the actual value for an attribute from the current context. - * - * \param attr an SDL_GLattr enum value specifying the OpenGL attribute to get - * \param value a pointer filled in with the current value of `attr` - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_ResetAttributes - * \sa SDL_GL_SetAttribute - */ -extern DECLSPEC int SDLCALL SDL_GL_GetAttribute(SDL_GLattr attr, int *value); - -/** - * Create an OpenGL context for an OpenGL window, and make it current. - * - * Windows users new to OpenGL should note that, for historical reasons, GL - * functions added after OpenGL version 1.1 are not available by default. - * Those functions must be loaded at run-time, either with an OpenGL - * extension-handling library or with SDL_GL_GetProcAddress() and its related - * functions. - * - * SDL_GLContext is an alias for `void *`. It's opaque to the application. - * - * \param window the window to associate with the context - * \returns the OpenGL context associated with `window` or NULL on error; call - * SDL_GetError() for more details. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_DeleteContext - * \sa SDL_GL_MakeCurrent - */ -extern DECLSPEC SDL_GLContext SDLCALL SDL_GL_CreateContext(SDL_Window * - window); - -/** - * Set up an OpenGL context for rendering into an OpenGL window. - * - * The context must have been created with a compatible window. - * - * \param window the window to associate with the context - * \param context the OpenGL context to associate with the window - * \returns 0 on success or a negative error code on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_CreateContext - */ -extern DECLSPEC int SDLCALL SDL_GL_MakeCurrent(SDL_Window * window, - SDL_GLContext context); - -/** - * Get the currently active OpenGL window. - * - * \returns the currently active OpenGL window on success or NULL on failure; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC SDL_Window* SDLCALL SDL_GL_GetCurrentWindow(void); - -/** - * Get the currently active OpenGL context. - * - * \returns the currently active OpenGL context or NULL on failure; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_MakeCurrent - */ -extern DECLSPEC SDL_GLContext SDLCALL SDL_GL_GetCurrentContext(void); - -/** - * Get the size of a window's underlying drawable in pixels. - * - * This returns info useful for calling glViewport(). - * - * This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI - * drawable, i.e. the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a - * platform with high-DPI support (Apple calls this "Retina"), and not - * disabled by the `SDL_HINT_VIDEO_HIGHDPI_DISABLED` hint. - * - * \param window the window from which the drawable size should be queried - * \param w a pointer to variable for storing the width in pixels, may be NULL - * \param h a pointer to variable for storing the height in pixels, may be - * NULL - * - * \since This function is available since SDL 2.0.1. - * - * \sa SDL_CreateWindow - * \sa SDL_GetWindowSize - */ -extern DECLSPEC void SDLCALL SDL_GL_GetDrawableSize(SDL_Window * window, int *w, - int *h); - -/** - * Set the swap interval for the current OpenGL context. - * - * Some systems allow specifying -1 for the interval, to enable adaptive - * vsync. Adaptive vsync works the same as vsync, but if you've already missed - * the vertical retrace for a given frame, it swaps buffers immediately, which - * might be less jarring for the user during occasional framerate drops. If an - * application requests adaptive vsync and the system does not support it, - * this function will fail and return -1. In such a case, you should probably - * retry the call with 1 for the interval. - * - * Adaptive vsync is implemented for some glX drivers with - * GLX_EXT_swap_control_tear, and for some Windows drivers with - * WGL_EXT_swap_control_tear. - * - * Read more on the Khronos wiki: - * https://www.khronos.org/opengl/wiki/Swap_Interval#Adaptive_Vsync - * - * \param interval 0 for immediate updates, 1 for updates synchronized with - * the vertical retrace, -1 for adaptive vsync - * \returns 0 on success or -1 if setting the swap interval is not supported; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_GetSwapInterval - */ -extern DECLSPEC int SDLCALL SDL_GL_SetSwapInterval(int interval); - -/** - * Get the swap interval for the current OpenGL context. - * - * If the system can't determine the swap interval, or there isn't a valid - * current context, this function will return 0 as a safe default. - * - * \returns 0 if there is no vertical retrace synchronization, 1 if the buffer - * swap is synchronized with the vertical retrace, and -1 if late - * swaps happen immediately instead of waiting for the next retrace; - * call SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_SetSwapInterval - */ -extern DECLSPEC int SDLCALL SDL_GL_GetSwapInterval(void); - -/** - * Update a window with OpenGL rendering. - * - * This is used with double-buffered OpenGL contexts, which are the default. - * - * On macOS, make sure you bind 0 to the draw framebuffer before swapping the - * window, otherwise nothing will happen. If you aren't using - * glBindFramebuffer(), this is the default and you won't have to do anything - * extra. - * - * \param window the window to change - * - * \since This function is available since SDL 2.0.0. - */ -extern DECLSPEC void SDLCALL SDL_GL_SwapWindow(SDL_Window * window); - -/** - * Delete an OpenGL context. - * - * \param context the OpenGL context to be deleted - * - * \since This function is available since SDL 2.0.0. - * - * \sa SDL_GL_CreateContext - */ -extern DECLSPEC void SDLCALL SDL_GL_DeleteContext(SDL_GLContext context); - -/* @} *//* OpenGL support functions */ - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_video_h_ */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/release/SDL2.framework/Versions/A/Headers/SDL_vulkan.h b/release/SDL2.framework/Versions/A/Headers/SDL_vulkan.h deleted file mode 100644 index cca130b..0000000 --- a/release/SDL2.framework/Versions/A/Headers/SDL_vulkan.h +++ /dev/null @@ -1,215 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 2017, Mark Callow - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file SDL_vulkan.h - * - * Header file for functions to creating Vulkan surfaces on SDL windows. - */ - -#ifndef SDL_vulkan_h_ -#define SDL_vulkan_h_ - -#include - -#include -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -extern "C" { -#endif - -/* Avoid including vulkan.h, don't define VkInstance if it's already included */ -#ifdef VULKAN_H_ -#define NO_SDL_VULKAN_TYPEDEFS -#endif -#ifndef NO_SDL_VULKAN_TYPEDEFS -#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; - -#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) -#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; -#else -#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; -#endif - -VK_DEFINE_HANDLE(VkInstance) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) - -#endif /* !NO_SDL_VULKAN_TYPEDEFS */ - -typedef VkInstance SDL_vulkanInstance; -typedef VkSurfaceKHR SDL_vulkanSurface; /* for compatibility with Tizen */ - -/** - * \name Vulkan support functions - * - * \note SDL_Vulkan_GetInstanceExtensions & SDL_Vulkan_CreateSurface API - * is compatable with Tizen's implementation of Vulkan in SDL. - */ -/* @{ */ - -/** - * Dynamically load the Vulkan loader library. - * - * This should be called after initializing the video driver, but before - * creating any Vulkan windows. If no Vulkan loader library is loaded, the - * default library will be loaded upon creation of the first Vulkan window. - * - * It is fairly common for Vulkan applications to link with libvulkan instead - * of explicitly loading it at run time. This will work with SDL provided the - * application links to a dynamic library and both it and SDL use the same - * search path. - * - * If you specify a non-NULL `path`, an application should retrieve all of the - * Vulkan functions it uses from the dynamic library using - * SDL_Vulkan_GetVkGetInstanceProcAddr unless you can guarantee `path` points - * to the same vulkan loader library the application linked to. - * - * On Apple devices, if `path` is NULL, SDL will attempt to find the - * `vkGetInstanceProcAddr` address within all the Mach-O images of the current - * process. This is because it is fairly common for Vulkan applications to - * link with libvulkan (and historically MoltenVK was provided as a static - * library). If it is not found, on macOS, SDL will attempt to load - * `vulkan.framework/vulkan`, `libvulkan.1.dylib`, - * `MoltenVK.framework/MoltenVK`, and `libMoltenVK.dylib`, in that order. On - * iOS, SDL will attempt to load `libMoltenVK.dylib`. Applications using a - * dynamic framework or .dylib must ensure it is included in its application - * bundle. - * - * On non-Apple devices, application linking with a static libvulkan is not - * supported. Either do not link to the Vulkan loader or link to a dynamic - * library version. - * - * \param path The platform dependent Vulkan loader library name or NULL - * \returns 0 on success or -1 if the library couldn't be loaded; call - * SDL_GetError() for more information. - * - * \since This function is available since SDL 2.0.6. - * - * \sa SDL_Vulkan_GetVkInstanceProcAddr - * \sa SDL_Vulkan_UnloadLibrary - */ -extern DECLSPEC int SDLCALL SDL_Vulkan_LoadLibrary(const char *path); - -/** - * Get the address of the `vkGetInstanceProcAddr` function. - * - * This should be called after either calling SDL_Vulkan_LoadLibrary() or - * creating an SDL_Window with the `SDL_WINDOW_VULKAN` flag. - * - * \returns the function pointer for `vkGetInstanceProcAddr` or NULL on error. - * - * \since This function is available since SDL 2.0.6. - */ -extern DECLSPEC void *SDLCALL SDL_Vulkan_GetVkGetInstanceProcAddr(void); - -/** - * Unload the Vulkan library previously loaded by SDL_Vulkan_LoadLibrary() - * - * \since This function is available since SDL 2.0.6. - * - * \sa SDL_Vulkan_LoadLibrary - */ -extern DECLSPEC void SDLCALL SDL_Vulkan_UnloadLibrary(void); - -/** - * Get the names of the Vulkan instance extensions needed to create a surface - * with SDL_Vulkan_CreateSurface. - * - * If `pNames` is NULL, then the number of required Vulkan instance extensions - * is returned in `pCount`. Otherwise, `pCount` must point to a variable set - * to the number of elements in the `pNames` array, and on return the variable - * is overwritten with the number of names actually written to `pNames`. If - * `pCount` is less than the number of required extensions, at most `pCount` - * structures will be written. If `pCount` is smaller than the number of - * required extensions, SDL_FALSE will be returned instead of SDL_TRUE, to - * indicate that not all the required extensions were returned. - * - * The `window` parameter is currently needed to be valid as of SDL 2.0.8, - * however, this parameter will likely be removed in future releases - * - * \param window A window for which the required Vulkan instance extensions - * should be retrieved (will be deprecated in a future release) - * \param pCount A pointer to an unsigned int corresponding to the number of - * extensions to be returned - * \param pNames NULL or a pointer to an array to be filled with required - * Vulkan instance extensions - * \returns SDL_TRUE on success, SDL_FALSE on error. - * - * \since This function is available since SDL 2.0.6. - * - * \sa SDL_Vulkan_CreateSurface - */ -extern DECLSPEC SDL_bool SDLCALL SDL_Vulkan_GetInstanceExtensions(SDL_Window *window, - unsigned int *pCount, - const char **pNames); - -/** - * Create a Vulkan rendering surface for a window. - * - * The `window` must have been created with the `SDL_WINDOW_VULKAN` flag and - * `instance` must have been created with extensions returned by - * SDL_Vulkan_GetInstanceExtensions() enabled. - * - * \param window The window to which to attach the Vulkan surface - * \param instance The Vulkan instance handle - * \param surface A pointer to a VkSurfaceKHR handle to output the newly - * created surface - * \returns SDL_TRUE on success, SDL_FALSE on error. - * - * \since This function is available since SDL 2.0.6. - * - * \sa SDL_Vulkan_GetInstanceExtensions - * \sa SDL_Vulkan_GetDrawableSize - */ -extern DECLSPEC SDL_bool SDLCALL SDL_Vulkan_CreateSurface(SDL_Window *window, - VkInstance instance, - VkSurfaceKHR* surface); - -/** - * Get the size of the window's underlying drawable dimensions in pixels. - * - * This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI - * drawable, i.e. the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a - * platform with high-DPI support (Apple calls this "Retina"), and not - * disabled by the `SDL_HINT_VIDEO_HIGHDPI_DISABLED` hint. - * - * \param window an SDL_Window for which the size is to be queried - * \param w Pointer to the variable to write the width to or NULL - * \param h Pointer to the variable to write the height to or NULL - * - * \since This function is available since SDL 2.0.6. - * - * \sa SDL_GetWindowSize - * \sa SDL_CreateWindow - * \sa SDL_Vulkan_CreateSurface - */ -extern DECLSPEC void SDLCALL SDL_Vulkan_GetDrawableSize(SDL_Window * window, - int *w, int *h); - -/* @} *//* Vulkan support functions */ - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -} -#endif -#include - -#endif /* SDL_vulkan_h_ */ diff --git a/release/SDL2.framework/Versions/A/Headers/begin_code.h b/release/SDL2.framework/Versions/A/Headers/begin_code.h deleted file mode 100644 index 4142ffe..0000000 --- a/release/SDL2.framework/Versions/A/Headers/begin_code.h +++ /dev/null @@ -1,187 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2023 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/** - * \file begin_code.h - * - * This file sets things up for C dynamic library function definitions, - * static inlined functions, and structures aligned at 4-byte alignment. - * If you don't like ugly C preprocessor code, don't look at this file. :) - */ - -/* This shouldn't be nested -- included it around code only. */ -#ifdef SDL_begin_code_h -#error Nested inclusion of begin_code.h -#endif -#define SDL_begin_code_h - -#ifndef SDL_DEPRECATED -# if defined(__GNUC__) && (__GNUC__ >= 4) /* technically, this arrived in gcc 3.1, but oh well. */ -# define SDL_DEPRECATED __attribute__((deprecated)) -# else -# define SDL_DEPRECATED -# endif -#endif - -#ifndef SDL_UNUSED -# ifdef __GNUC__ -# define SDL_UNUSED __attribute__((unused)) -# else -# define SDL_UNUSED -# endif -#endif - -/* Some compilers use a special export keyword */ -#ifndef DECLSPEC -# if defined(__WIN32__) || defined(__WINRT__) || defined(__CYGWIN__) || defined(__GDK__) -# ifdef DLL_EXPORT -# define DECLSPEC __declspec(dllexport) -# else -# define DECLSPEC -# endif -# elif defined(__OS2__) -# ifdef BUILD_SDL -# define DECLSPEC __declspec(dllexport) -# else -# define DECLSPEC -# endif -# else -# if defined(__GNUC__) && __GNUC__ >= 4 -# define DECLSPEC __attribute__ ((visibility("default"))) -# else -# define DECLSPEC -# endif -# endif -#endif - -/* By default SDL uses the C calling convention */ -#ifndef SDLCALL -#if (defined(__WIN32__) || defined(__WINRT__) || defined(__GDK__)) && !defined(__GNUC__) -#define SDLCALL __cdecl -#elif defined(__OS2__) || defined(__EMX__) -#define SDLCALL _System -# if defined (__GNUC__) && !defined(_System) -# define _System /* for old EMX/GCC compat. */ -# endif -#else -#define SDLCALL -#endif -#endif /* SDLCALL */ - -/* Removed DECLSPEC on Symbian OS because SDL cannot be a DLL in EPOC */ -#ifdef __SYMBIAN32__ -#undef DECLSPEC -#define DECLSPEC -#endif /* __SYMBIAN32__ */ - -/* Force structure packing at 4 byte alignment. - This is necessary if the header is included in code which has structure - packing set to an alternate value, say for loading structures from disk. - The packing is reset to the previous value in close_code.h - */ -#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__) -#ifdef _MSC_VER -#pragma warning(disable: 4103) -#endif -#ifdef __clang__ -#pragma clang diagnostic ignored "-Wpragma-pack" -#endif -#ifdef __BORLANDC__ -#pragma nopackwarning -#endif -#ifdef _WIN64 -/* Use 8-byte alignment on 64-bit architectures, so pointers are aligned */ -#pragma pack(push,8) -#else -#pragma pack(push,4) -#endif -#endif /* Compiler needs structure packing set */ - -#ifndef SDL_INLINE -#if defined(__GNUC__) -#define SDL_INLINE __inline__ -#elif defined(_MSC_VER) || defined(__BORLANDC__) || \ - defined(__DMC__) || defined(__SC__) || \ - defined(__WATCOMC__) || defined(__LCC__) || \ - defined(__DECC) || defined(__CC_ARM) -#define SDL_INLINE __inline -#ifndef __inline__ -#define __inline__ __inline -#endif -#else -#define SDL_INLINE inline -#ifndef __inline__ -#define __inline__ inline -#endif -#endif -#endif /* SDL_INLINE not defined */ - -#ifndef SDL_FORCE_INLINE -#if defined(_MSC_VER) -#define SDL_FORCE_INLINE __forceinline -#elif ( (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) ) -#define SDL_FORCE_INLINE __attribute__((always_inline)) static __inline__ -#else -#define SDL_FORCE_INLINE static SDL_INLINE -#endif -#endif /* SDL_FORCE_INLINE not defined */ - -#ifndef SDL_NORETURN -#if defined(__GNUC__) -#define SDL_NORETURN __attribute__((noreturn)) -#elif defined(_MSC_VER) -#define SDL_NORETURN __declspec(noreturn) -#else -#define SDL_NORETURN -#endif -#endif /* SDL_NORETURN not defined */ - -/* Apparently this is needed by several Windows compilers */ -#if !defined(__MACH__) -#ifndef NULL -#ifdef __cplusplus -#define NULL 0 -#else -#define NULL ((void *)0) -#endif -#endif /* NULL */ -#endif /* ! Mac OS X - breaks precompiled headers */ - -#ifndef SDL_FALLTHROUGH -#if (defined(__cplusplus) && __cplusplus >= 201703L) || \ - (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202000L) -#define SDL_FALLTHROUGH [[fallthrough]] -#else -#if defined(__has_attribute) -#define SDL_HAS_FALLTHROUGH __has_attribute(__fallthrough__) -#else -#define SDL_HAS_FALLTHROUGH 0 -#endif /* __has_attribute */ -#if SDL_HAS_FALLTHROUGH && \ - ((defined(__GNUC__) && __GNUC__ >= 7) || \ - (defined(__clang_major__) && __clang_major__ >= 10)) -#define SDL_FALLTHROUGH __attribute__((__fallthrough__)) -#else -#define SDL_FALLTHROUGH do {} while (0) /* fallthrough */ -#endif /* SDL_HAS_FALLTHROUGH */ -#undef SDL_HAS_FALLTHROUGH -#endif /* C++17 or C2x */ -#endif /* SDL_FALLTHROUGH not defined */ diff --git a/release/SDL2.framework/Versions/A/Resources/CMake/sdl2-config.cmake b/release/SDL2.framework/Versions/A/Resources/CMake/sdl2-config.cmake deleted file mode 100644 index e1b7713..0000000 --- a/release/SDL2.framework/Versions/A/Resources/CMake/sdl2-config.cmake +++ /dev/null @@ -1,71 +0,0 @@ -# SDL2 CMake configuration file: -# This file is meant to be placed in Resources/CMake of a SDL2 framework - -# INTERFACE_LINK_OPTIONS needs CMake 3.12 -cmake_minimum_required(VERSION 3.12) - -include(FeatureSummary) -set_package_properties(SDL2 PROPERTIES - URL "https://www.libsdl.org/" - DESCRIPTION "low level access to audio, keyboard, mouse, joystick, and graphics hardware" -) - -# Copied from `configure_package_config_file` -macro(set_and_check _var _file) - set(${_var} "${_file}") - if(NOT EXISTS "${_file}") - message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !") - endif() -endmacro() - -# Copied from `configure_package_config_file` -macro(check_required_components _NAME) - foreach(comp ${${_NAME}_FIND_COMPONENTS}) - if(NOT ${_NAME}_${comp}_FOUND) - if(${_NAME}_FIND_REQUIRED_${comp}) - set(${_NAME}_FOUND FALSE) - endif() - endif() - endforeach() -endmacro() - -set(SDL2_FOUND TRUE) - -string(REGEX REPLACE "SDL2\\.framework.*" "SDL2.framework" SDL2_FRAMEWORK_PATH "${CMAKE_CURRENT_LIST_DIR}") -string(REGEX REPLACE "SDL2\\.framework.*" "" SDL2_FRAMEWORK_PARENT_PATH "${CMAKE_CURRENT_LIST_DIR}") - -# For compatibility with autotools sdl2-config.cmake, provide SDL2_* variables. - -set_and_check(SDL2_PREFIX "${SDL2_FRAMEWORK_PATH}") -set_and_check(SDL2_EXEC_PREFIX "${SDL2_FRAMEWORK_PATH}") -set_and_check(SDL2_INCLUDE_DIR "${SDL2_FRAMEWORK_PATH}/Headers") -set(SDL2_INCLUDE_DIRS "${SDL2_INCLUDE_DIR};${SDL2_FRAMEWORK_PATH}") -set_and_check(SDL2_BINDIR "${SDL2_FRAMEWORK_PATH}") -set_and_check(SDL2_LIBDIR "${SDL2_FRAMEWORK_PATH}") - -set(SDL2_LIBRARIES "SDL2::SDL2") - -# All targets are created, even when some might not be requested though COMPONENTS. -# This is done for compatibility with CMake generated SDL2-target.cmake files. - -if(NOT TARGET SDL2::SDL2) - add_library(SDL2::SDL2 INTERFACE IMPORTED) - set_target_properties(SDL2::SDL2 - PROPERTIES - INTERFACE_COMPILE_OPTIONS "SHELL:-F \"${SDL2_FRAMEWORK_PARENT_PATH}\"" - INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}" - INTERFACE_LINK_OPTIONS "SHELL:-F \"${SDL2_FRAMEWORK_PARENT_PATH}\";SHELL:-framework SDL2" - COMPATIBLE_INTERFACE_BOOL "SDL2_SHARED" - INTERFACE_SDL2_SHARED "ON" - COMPATIBLE_INTERFACE_STRING "SDL_VERSION" - INTERFACE_SDL_VERSION "SDL2" - ) -endif() -set(SDL2_SDL2_FOUND TRUE) - -if(NOT TARGET SDL2::SDL2main) - add_library(SDL2::SDL2main INTERFACE IMPORTED) -endif() -set(SDL2_SDL2main_FOUND TRUE) - -check_required_components(SDL2) diff --git a/release/SDL2.framework/Versions/A/Resources/ReadMe.txt b/release/SDL2.framework/Versions/A/Resources/ReadMe.txt deleted file mode 100644 index 9f49591..0000000 --- a/release/SDL2.framework/Versions/A/Resources/ReadMe.txt +++ /dev/null @@ -1,44 +0,0 @@ -The Simple DirectMedia Layer (SDL for short) is a cross-platform -library designed to make it easy to write multi-media software, -such as games and emulators. - -The Simple DirectMedia Layer library source code is available from: -http://www.libsdl.org/ - -This library is distributed under the terms of the zlib license: -http://zlib.net/zlib_license.html - - -This packages contains the SDL framework for OS X. -Conforming with Apple guidelines, this framework -contains both the SDL runtime component and development header files. - - -To Install: -Copy the SDL2.framework to /Library/Frameworks - -You may alternatively install it in /Library/Frameworks -if your access privileges are not high enough. - - -Use in CMake projects: -SDL2.framework can be used in CMake projects using the following pattern: -``` -find_package(SDL2 REQUIRED COMPONENTS SDL2) -add_executable(my_game ${MY_SOURCES}) -target_link_libraries(my_game PRIVATE SDL2::SDL2) -``` -If SDL2.framework is installed in a non-standard location, -please refer to the following link for ways to configure CMake: -https://cmake.org/cmake/help/latest/command/find_package.html#config-mode-search-procedure - - -Additional References: - - - Screencast tutorials for getting started with OpenSceneGraph/Mac OS X are - available at: - http://www.openscenegraph.org/projects/osg/wiki/Support/Tutorials/MacOSXTips - Though these are OpenSceneGraph centric, the same exact concepts apply to - SDL, thus the videos are recommended for everybody getting started with - developing on Mac OS X. (You can skim over the PlugIns stuff since SDL - doesn't have any PlugIns to worry about.) diff --git a/release/SDL2.framework/Versions/A/Resources/default.metallib b/release/SDL2.framework/Versions/A/Resources/default.metallib deleted file mode 100644 index a30298d0aaceab4ca7aeb32083e06dc3dfa99dfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21968 zcmeHP30PBC+P+yx0)#9`HIW1pHlt7sfwBnNgaD$VjY?fA)I+ zDyY+f+t^kqE>pqkG$Dvc(IR6lRet`Uh-lTKwT@2v|NYOo2?A=@Y3HBkk^8`1znt@( zb8qf>-}n1Y<|QS@U{qKHi`bWr7wy}nj^jFO&9LF7wV`PE-1QBfX z;D5eoUK|}+6q~qWQTFOpX)E&N%3OIqlC(?`he418(V_$nlKCx`AU41E^7AuG&)t%D zfBW*CzdRE&|7yT;Ki+`+>o*2ph>uTVIO=(Pvp8s5@L3>+r`a~ zO)7GDK|{R|XDbSx=)~tOv^QUsFS&wWVqN;r#eI7wZCYo1Z@yApx8WvkTk7tY>`pxE zsGsE64psCdCptzrVRSe#ZbVn4D`gpL~fLajVwp?LwCo-v7dO78wwZuHR#6ZCu7-* zi&s3^3+?kAg)asE4!Q8yzjhO|x7A>bN!w`mBG2K4qjCfZ_;D`= z$-`cZ?u_}1g9Sh0hJTa^J1ypU&P$t#^&G#-+3WuMBvz2?6*LF<1){;r7oDpb@vbzEM z7A}1I22sS?cb;@lOe5TYkM?3wQqnWvU7*O$S(Upg8{A%1YWC`EC4y0bOUv-!5}p8W zV5GyCgW#TI48G#2+1bi81dD#o30UC?c=$p1#rY$*J?07M*Ukgfvls0B0G1fBxrYl{ zdKJ9nTs0i@UFQz26V*OtqE`HD0!wdBkC3HoL~`q6s`ANQ~Jo zf>_@K7ZcZ~d7+BTp2D`#}LLb!ew=Vs~EmPAvF~6h$^W;S!F25#O0d|N`@h~3Y3Y< zQ5ir{N~9ea%e>k!obF!s1v9IU%enxHLcDso>~6JJo5<@z4XcaGzJRGA7VI@B5yJX> z=t%*|kjFEGsSN8Ai0f+%N|PasN6bqw2R8dl@QaGY0DRorIQfe-6;Gu6) z>gbB71*lg_U_&E<^%^O4EeAS3yzU^}qY(=@#6k{n9WX}Mz)UHDZ5dtzGYR}u;fOUX z4IwIpuy6$j_K*E=jg11U0HuK*;Oj&PfFW>c#ex?D9Pk8QRWv3&(NyB>KdS{VUg*ci zN>rFQ2}dp=If+)|Rp*z+gaEq&@RVEu+ljbD+LkFh{AeEt8XFIXAK~g_e9b!~jhmgR<~HFfqSH}#$QTX)liHlz9Y>D^~{A8&M9uz9k2 zGp}s(#s#31Kc!T&QkXqoEN8Qm+3fv?1V;po{G$Rv#nuDiAB9JHM{S*U$YVS@dWoxc z&Dn>avm5wruknW0}PH zZG{dxa-*$ppl$GPo!z$U1H2;8()#0@il9TU?`|xs>^&P5kP}eux--B>{NSH1bIZTe zq`GYC@yjFV{aWOtskHg?V)ZiTz=%Xg-z-F>Ad z;p~cpQ*nNQ^UlQWJJY@|vGfJl#HD|(URK@xMe^2{nPs4_CNv)83*uo5WXg;cxdjS2 z+K6LAy)|&h*7moiuFf;vf9vnO+h(jfaJ=a3S=(8Ox_rZ;0MDIsH{^I?2`*(O(LzF- z={1*H{6?m4Mh)3{A}x5|{TaU#FA+%;!g$cFM)fo1WKW$|N{&YonEdvHPvXPI`F zo1Q^3KqjZL^DHI|u0-o!*f zb3#9-8t2cXAHYR*iK7}sQO9tR=WtOKTF)w6l+GI2ZuQ_Y;(0gBlzSbNEEAcT$NCJ6_hK3uJ5-P{1an;|3> ztGSnz?tz(M6i4W+B{3>uK|UA(*OL1Y>P;Huu8I;uj`3=;u+P-8()muPnbxx%H=|WN zqXajjJ--Bum>WpMf&?)3fwwv?FW;cx7?|yJ$_*2xmru>&Q-Onn5=scIncV|Ma4x$^ z=9SLh7|jn?6!+6O)Iq{I!G#PCe;N+*V^3<@v^N{L{Y$h+?Zie0ZV ztN`zM28s}>)Pc7^H`plOnkhHVZkblqT$s1QdO z!9B4~1C@TSi30bh-by~X%AiYDFNbmi zw1UH9cUu6A@#^HV0P5(rvA`&N9pjbGSP)S!p1xfh)h_XMG(>6u03*L@LE>E#750GF zD_(6f)&Q5?V`0C60l0$I&SekE2uVfSh<0mKy?6%bknfwK`@~U3aA++#;bJJLGOP#w z04T*HDy!7VmuVF61YMC(zTx{=Iz<2jOaKFS4{$)TEMk{7xn% zSn1Tv!XPP-PwPdS5VSM7916tm7t~Zmr%-CSlXB?}FkS)b9S~EjQz6 zcv7o{T{W)tBz|vr1iybZhTq5V`yYniu^1G; zyZp=eonOL1@<^gzir-g~>AK)t0=A!I<~W^WVR&S3d=npATY`Qe#_;=p7=D-FeGn&x zgd~@69>wopfjjm%e)oP7es}tp@Vk5zewRN*_&q&Co+Vexa^-2fh#`?FHV^1_Q$kTF zpJwc+?A>(y_^C2C+2*OI+<9l+r+lerI9E!YXYl~KK2eugT1Wmm;Ivy^Y3V{pMlN1l z$^c~K;*zbN%a~rrhk3+@AJ&I9PK)@c{(#_cc-TQfMx`@CY1>5_ma1tXC;L02d0M{5=72~;CHs zy7#p;wK5>D(4G48>u0Z6DqlYhsK{+VC32k0qrThmsW#v{m(;mYIVk`0Sqb^XEbT0@ z)BIcW_OC7h#BU9W!HbU}%x3ap?@ZCS`=*<=t7CjKYgo<|yF}i8ub6f7gWA`exiPN} zTE-1o>L0UQ&5xbk#Gz}`$eW)_xF9vEk=a`sFz+4-I}+LuepC=X-4uM7A31Z;sx^w$ za*jA4fRhv>5{Y%b6wt>kU!~bsT#`oF94XyQr$^OmXB^gg9=1lA#53x}kpODdizBvM zqZ8>GnXZX)LrT4ABU}?wuGlDd`F_0kKs!JmiQ4(`68p&;G|DXn=>?pigEp5eaeHJGur=o zhCZ*^2|;oFLh$|`!u1flK8ow@sJ@YoObkJM(-B@fu(?d1n+x$gDWeU=^AZk<=S_8W zD4utIi06~H+wpwMfgwCk3L>Aez=f{8Btm zv+MD?AJ^kakLvMiaBqh7cw|hE2SI?RN{^>$kfq=mfI2*k(Tvjx5vajaz`nqnglh2P zpawr~NP{;54PKW>^F=jyh~ecV=dEg0B$l6m@q|SnV_5v(iN(32v~(z|11+6ALQ6mB z&cN_AF+9@I1G;p0f8cn&6>J~J;K3ed*(eR2A>uOdzYT*+fQIhFcM%U^@F^4@K34qG z7@YTW8v4p#tf3d{QT02y+7n2_6H=E^uB*3$k@1B*^{d0yPsO*=($dEe&pL4(U)WAVNLJ?+Hed@&iz+jGhD zKS>tGkFyKTlsf=^b~xZFh-jnF+n6r=^y$I?E+PcZkSy z%Sb&_0s?{~@lV+=#Xr9xA7LY?+q2z~k03>y_Zrvc6ANIP0EnR)UdzN4fFuQbEFDBShEp5R@P50qYcBchK=0PaFP0jAC9g6Ks(b#?t2y4I) z2QEL~0D>n#*DuJ_DnZyG6J`*sR~W)TOdAC4?KuS?1%Uq(IR)oxy)Iz9U_J$!STQ1# z0)BqAOK!~H44cgvZ>(y>y!MqGmk!VsI#*9<#h5jh`u=$T? zN$l_fc_P5L$HE!_o~U8GXy9RPh*Zm^nXyTpCAG--nhPo#eDIz}$Q;b)gqeTb80&0ZAiT>irg&Ce~M-@a&leiI$hlEjL# z(6|czgHQ1M&thVK2#rU`-X1Z*F(eIRdJf*g!Z64_q&XsNu=jqv(G9;#H4!t0ul|2> z6&OvSLPy#{ni}4J2iAHlZvkH%(4#Qz!z75PSQPm- zF0w2qlCc{qh#`&jhdvU7AN?>iykYwEmxhJV=g=gF*t}4ng1!a?MO#~6zpbrhpz}uC z(vsr`j-PTX^RS%Ve)>Ju8TIzo#_gqFE~{Q%oyPjhobA^HWst&&+S{5xj4X` z_mH+K_AOF`Ud@?m0I4|S?Vmd1f*|YzS98}XaO%3>_SGYtUu3JdSAhQG#LY$(_tY(EMg07Mq zhCh7jb`@$|p2`o8UFb5|&2Gw><+lCPWm;}=dE`4j1j@vS)%<25lA*jHjcs-aiZ=&A zssI(JfLT%sPz|s0sf%<{Ms2+#&0so+a5vy)Bsv$<=h_3nGb*&v?c(VmzMkk@LQg_Z zVxn}~sO{nzAP)fqzq>#<+!~EWh$|3gaFKX=tJbr`8U=#!yX?_%TyzIoLc6s>B->6; zbcB{$f!-+wDGgB_)(W%R7+!oz^9W!b7=Z@xBGen>@C@?V#PRi*guc1RH-XL1)4zy~ zYtE*=Q8eL*n;k4aMlZeTEPbcQ z_`j=45Js#-r_s@3BUjM_a13oXK(6g{yp@Da+H87TwIE)2h|?QLm*bO&*o6qihup!5 z;k46LO`IkUjNp%HhW}2@aMh4z$Y_cl!n9-=j|0-U;G*Y`r=e^IL6&jsxm!R}^cbNj zYG8gYCl2K1G62?<01?aOgfJgPymrj%fq4SvCFCX}gaspWbcM}+Leg*37Zr3d*{Jf^ zJESi*Qj99n-k;VN8-51!>R$cDn78g%VP4Z$>SEWUJGf1LzXRr_B_*GGG3C5d%Gq@( zzXRswTv$q*W26M`p_KP zC*%XuA^0x~aP{$d1_J+Clb3|Y|08Y-aml^P{`7nC){>jgmSpK$wpD+b%w)U0ci@O1 zBxK^O)NFZrdZ@0Yr>(tRUxP^!5|WZL6}vHM_MP`I&Gw!Bm~-}>1DH{&?}v?{#|1AB zX|iZ;ux$0Jj4U+GAo1Y)`;2WZJ*{n-rpisn%PQTtxXi{Dn>UWv*oJs>E(x?>k?X=5 zx{*0`;i?kXqc+>ox(FL2E-_2=vzAO=5|0YPLHpcF_m=?P;Fa>{A@_63x|BTOTXp2O>gLxa>Td)j&JPNF>m=-i zQl~Vuz;=UE3iIX4&uK2oy2u99pB-A)ql3VQXw(P61eizce=-#{Pb{@`)0_+IW&qQv zoJ*RZnGJOxQ1uZ@@(Q*vl9h`8vg{^qnM4krXxm!%JmWuKNOl_I1y3n2fOFLRX#~Xm zfx9`{_4bf}MvbMb9z64M_eV~l;F31v!RIO6AGxi5#7w)Q_rw}cq&e@(w2!}D5v#J$ zPQ!d<85q}Ka?22Z02BZ@JPYA{7VMD{ejdSNPtlQL9|WI)@XjMek)&W6E|{ccA|QpH zL(<$2$MLa%W3J>4k^FI%pSM zM)IAsNBGY8KalUd1?nE-J2j8Y*?Wrl4guvm5h|#xw?L{xRpBL`rps`bsKWR{zJq}_ zK6GG%avu179ajuE&&n8SB7@=!pe3rkPX^ncVj^Y5KgxNMlyJk;sQGT$Lib5MxRL3xD7 z6h4W^$i?=XlJj zU(93n{5l?Ut-$EK74R6}-+{+;h!f8x%{z~ucQ$w4@4#c;k#+7_^S*zUW>4nPJ->#> z>^fO>_}aGjH*TwOChvLm|AWU^#L*|jiJAP}mPPiR_bi9(JNqqG`_8|}W3;oXTcqAv zVs)F1`HoDWy++;>R@H42?Fr8>cHU}}9^La>dCa+-#2kJlXn{4BI4<;aOYXcpv!;&x zVcRRDZ$tmiN|X#BZb{p;?@{#(SN^>6NhL-wv;RgdySs+nqh?(P)8#ENq}$ZX>X#MM z$UZ}}{a~1$2QF!oi>1= zd6gj-Oy93^=lJY_Gr|>GFa@ z{d+h(jd7Kyl&gTy1Tww@N$8`V>07dX?M4451~Aqj^ox~0JUD;vAt8}*z`R-T*&#jx z^DlE}A$v=oLvX<-h2$OAzst8)vgNBPJ5YasuK0{lZSAmPFr%t4TUbeK{8F$3@qeby;$q~6vAR?=3SYmaay z@M82bl7A>3;UCN~{xO!{^Y6*;kx$A7bMw_k_+gT|UmLX^+(vBGSE%0@yq zG7*;?TDp{wE+ha}(n1o_@VB$^QV@WEJfyW|U2F{C>} r=N8Wn75S2bw@5v;@bvdK=YGbqB5FTFV}&asd`HAqt4hD2$R&@iLu3M5XZ zJD2g+)PLQj58C|O+NHa-u>RLTTkXyyAukY;fV|%z%s43FVP0V7|NWhFCz*t2_rLr9 z@BTmGL*|}y?s@*s?|mM(uH#RCF_}zplF8H;&v=t5!(_U1GlHgDkd{ON(_Q!*^4L4{_exyirY*kk13hAbSHij%_h_Q`I*+NOrF&Jr*Ozs;|WNmKXHKo zm3QW@aCT+wS>J*b@owX3G>(51N3&i3%%;Mw2-UaT>3U&#XHw7lk`r&|?@rOJ2KYyD z+-K1F4`V8%2#uNkiTdWhl)GeEZUK*XA8#uY^*uR|XE#wiP6Wm875&Ru?krfm^hG02 z&;Df$7xmruPoh^8j~#Efx>3jc`8oMZmv;fMXMM}62l1Acr;7S09$TN$jn2pX`S~w= zH)sCKxz3lCE_^u`^>-idiL--w-fuoDibUhl3a;!QuPRwLuWRY6i{xb|{^@vlQ^e3pA z$}e3qfB9=KzmUIV{xWC5HS0@^Hi7zL`$hCRBW7YS5BXhGab^D!jsC1PfJO11^?kcr zeM=TzuYaX)3b=Xuiw;sewmxDv?{%xMC*5|3-)LRbH+`(AkK)&-+nl^uMD95sg(TYe?{_71y)SEL$zkK(cQfkdx5AHt_(C8IvSF$om!QJ>M0co_4$XrXf< zPv|+`)W=2trjv4le-yudeVtYD{5|U{d{WfcYRE~7U!Q(oSdMA!{C7ot9#P**!#lHd zt1pJN@C>9Ey!>+h(rE6U^#y+=>RS-afM@J@d)7yMo=|oEe7kMx6suy(Gz$7fJ-8}L zBt+w_q6Yent&7-C2L6Ud)8o&9W1j1uQLt>G^QBSGDfUMn;o|Al{DSX|dOo*c`C^dJ zD4D-Onfpwp!qIq|&`v1;T3UIBsWmD@ki2%!9j1-Qq_*E-T036!irN~QIn?w3=63oA zLrodqGnob;Z94wwU$l=30AR)6vDglaESqfC<8Fe_<^Peqj5axAL+rw;;F2tmLx@A(BErzd(PBAu3*Z z)LW3tM}Dokjn}B>YHTPt((%DXT{J9+sU3Wfg)21wTUcG+)sOuz8{qog%Lx|w$i&!^J?U)4qn8p*riZVGSMsuD*8tR{ zQR1C3j#xfnPWUNIm5l4vOL#Q7VBxZtuFF89InW0EyOJMmgLJ&^JX1T*iP4|3D@)s`3Ew~~NRrvt^NIo8YVyGz@ zEXZQSn;b(;selxzJM_L}_?@O@KSiMTUoQlDAiE#z)V&9Or9k_|D5VRGgNc!)n*>l97h$+dQ$a7oKIS{?W%T3^-WG(quyHBW_C_4 zY>RVFDQuHmeF|43CoZ?C`h=>>x0%xXs=IRNYsmUwIf#ToE+H`+l2}?qL|M^bbRtmIg`eisyS+CWKXHu1)CO$8QC-% z*$Z7G%f|>FigrD9wme6kD@K?76F$0MUE-s=hzD;uHp>${OF{(R09CVY)@E*Vx5up< z6WU4r)f4^!E`gZzVWB^Z^s{_8(fsVK-yrVL^D`8mYn%KL4L1B>9{=}9bbPGL@0(e# znMc~Sh~jh9L}qTbMJgTXr<~uN=u=L#YF0lzFKgENi9YiQ&00xOvu538*UkdYe!#gN zaIOTLcLkUB=Wzbm=kog;mFe4ENdR>HMoAfG-R1l-o<8fYiQ|$^xV+DdLoMuGf9P)` zk%*dO-R5&vw5pMs^v7HSe3=#I^ykd3K4C^d^b8#fmjCWbKvk4OTcrjyr$N=K6>WPAp4{q8GHE+o4ls4U zRoiK`R4Cg1mi;nQcc$-To|Dl&b`H|2RjIz!DOSsFruV^QD;Tsbr(Tuzs5$#o=~7x_ z`Z@NCay@B!q&Ce@9Z&))y+`$jL+4N*O4QqO>Qo71+OA3syp!e8ArvQ4@7GF)Bipq- z?$dppx27E^QM~v?i&E6+eKom_0>m#u%$@=!-kqm6ASC-ML;qu+fzjfxford29h8&e(ItXh+m zsTEeKT-q*`N4C0Zy70838+^LaBk@bCwoThAYb}azX0lb=B3nLneY-nt8N@01IeqTO z(3$@C7`2+SRn^UETBFs|$leXGAD1IKUA7#-JhQS|seyU^4%tF8v0x)>yER_Y^KVG% zUcW+gF%7ia%=Ezkr&f*@>(!h_RZp6s=Io>gAwnZlnmF|~Bjx*63y`9jm9=Z5)1jeGIi6{7_GlW$j#OqA1j4183?g z#779?7XT>cvURPZo1c;+HG=-{Q}tn{wB~N}pQmW|Mygb4UwVt{0;tyA3Xbr<&}UWh zvk@64dXK-6#1ZI8Ea7IK24DCnl!N-TnY*B6Y}4k}tJ=!Vs&9TGBvBu>T+8Z^PwYBI6nuTXS?=?%cpu}iCAo?#d}!8V|1XIqW{<-gXdEFH}K z1kz>AFH3$!E4Q@EAETTptyXL0Go-ptx284HcrLKj=IQuRrYG~?6#hG!|7P%C@pb_Z zFT-!~^g>j{10~TwX*94g8t_L0_0ho5XrKuJ)%|&)>aK2O9xgvU&CUl^%&zJ#PgVn` z64D}3{!7h1*@R#7lgOWE@>iXUZ+r*0eAFNO+@l_~zEjTCLo&&zdG+W~~RuuC;1maPhQ=lJ45Z)>T-U<4{_y zdu1}1ct8rU;@3MO5zVzr^;tLDeJ`c>GKRX_Bxst;K!1BYaQn{L0dHS!z+FMt5}wE8dOXaaCqJq@G<0*>YM4$lteW z&|S7G+CER?ihkhSyP!a7`%qSqI%KIawg}W2Dl!8@wrV?21X!@*Cny4C3}wPU{Evjk zcfY$-5~oxJY)z0fDN%UT^*C>&9RBD1?dG!%-!(Kym5 z6s?h~6hFq?l5(q?y`)mqcB&L5R?D6)mBNE;AsH$KRBmmT)pD76%8=B(1w*B<9A^4J zLcAD_;zu^FSp0}IirQF>;$IX?g?2b9Pd#na&OT7FP$;}ckAy-IK)OC7;%O?E46IF&Lv8+|qTA)e9lO}P=eFB<9$5`h6IeL`V9Qp>zL6cA{^@b{;9qz74 zoWEjNRH}tzia-Vn!fjLWl8=D-X?VL?Mls zB=bfR(i@ZcZwmh%&3`la?{xmVfd4MTZ}CPd$OBRRVPk1DC8|Gc^hZ;o`oqSf(G;OS zRAt2K4+ltp7_(7zS3!R`(L;ZDstK)`pA!1RCD$2ydb#sHp+6M%)E_W8B|?4ps)zaz zix;Fl{0LMCT#C^iYK8W&7urLG&>kM^)E@3f_uj<_fFj-aQ8#?qYp4%_Z6KL~sw z?EyU_<>4kChTc#adJ=j=?391mau`$o6`$yf@RlSmAIc{ha~-gpGv>Kb)|$dY^rR=W z8o&r72a(S)K-Mn$R_=l$MXPVwo7SwPN7y>+F6Jl)qQJoCia`3@N?3DSpa|?IJsnKS zuSkBoZ{}uJ{Cg+^R_WxLnY%K)yCGGd0B{uVSw&BJT8`A(e6Odl5#T1@9;)UXP}zo^ zFm@d|k!Q3qfAZ8S+Ht1NtOws>stc`s0vrx2QW&~`)DWq0)r6)}?OKHlHv=p+#h1H_ zxwiq{3fvM>H7x6LuF42BuE7g^5Oi=1v0SnEF~q+RlFM2pfrW;7j&z+bItRI3bJWKS zGJ~zF;)8?>hB&bz1;ik$A>nC|)?Ko9%Vb@7IFjLQ=^Wz36kAS#F}@3`R3*mu7cy5* z(ZJAIrmjRoUE_;L=OeWk-%?ZzJ6MBVO+8MlH9A~D{)Lv7BUU(Y(l3h{>Cjfz$l5l! zj#x$sG5n8?2NCH%H~eBj?Bp4M2@Art@odHH5MOqP0gTRgJ{=8}Ql z>A#@z&lN?oo=ven1VKryJ zUE8a+oRI$riiohn+c4R-NChkIhk!}}Y*8}Vv~pWRSZxT4%&ahs>Qp4=aAP2?Q4~k( zGqWFEHLED1qM_A`(GcRSn7nS(X!cC!st_?UHK$6HP$Pa;{0mBH2$J32a-0>ujVKyS z^LMXy_3w;9-DeEyE-?=0ZQ%t)k(sF7d9N6uYq|q2;dogat$J#m8Su#!JcXa-Y2k0t z3t(9l+67;12>!`TZMPg>HeA+Bl>0UesWUMVmb4}Te-y1|Hivc(c$0rT>Oam>G{^7Z zqm;EzwF@MJ;F}$4hu>1IwtCTu3C|Maxt5;Q*58Q7dY zA+bud7HzkxISN&+PP3LmEz6XjlfNBYh3(N`!zuDdG;bb1^IDN&*Ia%(P~4X=FAjK9 ztIge2bV;C2K>iEij%?ZPZjD!%6$V*He8DidvL~J*_iOOyZ}v0EoOGzR7Hn3AapHwD zdZX%_TY`bC^;v%d9tQ@pJ~-cf8{F+f0dCV)^b`kK#tDgu1!CnF%{-bFqfL@@cR z_$5R_YZ7@1At)>U5%sC)Yr;}iOpKl91?50N=0;W9=YR&~gLUjfi1Tr2}rFrx$;Wo}MEJ$0ZLQ z%!Go+I?H|qGLKcHySO=SG(E68{=f>r)EWczbZo8Z&Pu>^`7K4-4xfm<1G};6#0qkksZh7+>N>3950HJ zf?@Z$Hc!-teTbq^#9p_DkhIl1gRM z4n3!871M)}i&)!tS0;P>D+)y3Khb-rRaPwswd(gmsS39I%`K#+Cd*i<(~bmdP(K!A zLqA8;X;eWhm=6HVH^R-nZ^xO!vtW!;ZLg!Y@QfQ3`PVm4WaN!<{o~X4hamWZl^`%=azavw6GC2eA6%!%opb zC!Sm~@&#U1pD5Wh_!e%#@>ZNp;mK$W6JhkM!~o4?12kx#+pnr<$EMxw(9*+; zjaJ>|@zIL>HcgVX{^1$ol|vh6)9wssbQXhoO9=$xY3DeI2kgVn9jz+OPt?yhEd9XM z&lnG~@&b2Twfnj&FheE!oD2%`g1OGIxYQML8sX^tr{C|G-YI> zT^ldz1<~5IbD-H8L9@Z-DYuy1tr4e;4LjHlWHjE66((fbX7@S#!3=7k0^4zd54@3V z()Nb$9??`Lq*w+Bx zwzb}u@X>`Kv7U`TgBP1DJ7JtM>t4G)@@IDaVXbJ82}_xu;f={I1y#+HjE3c+Rw6N& z*s!&mHP=V0?w1XZ!$JfEv3-mp6yX#`NEyBxQBGo0c>uI! zMU^y!7&-9za#+ZQt6>2GoZ`skT!Q5bEK;uWaP{F6d{noWtgrC;(2}!T})E&^CCw`Cwr-c)p3+t)6D~!}}1Js*nE+x{%2somF$r zkv~WCm@o_l>zV*PM?EBEp!bL#LQW8fr<4z7ulwj_M5ZHxwHFeN^lmIlPtzZ|+vfhP z6-0c2B@h0W)q}9&kUDVRszKN$!1C{JLI6y&M)j?u84V97|EAPzkAIiirfq7#;BmPh zvEnx#F`3+vIQG^Tn2QTmmOP4nUNzJ2tVG2ZPl44#FUTx;@-X_HmO{TTCed$xGX1_f z2%Bfj%#vHmEH9TZ%ZJO*2D5ky(QjtaOYkUo)DEW4Ht?aV@qB!0ytT%LeHm^Qn5p_W z2<#G)%9)#1gVP!v+IAcI$x?Y$c&?+mqW)>wH>^?iDUD`U7SZ+vLdn?K0w?XP0~gqX z`vPAkXRxwn>0CpI%>s-bJjTklu~~kEs-+zbXW6V~1Y20yC2ZqkvuY99AyrfQ7YO1J z!J`AC%dVoILl;=qUJBG9uoZuGqOQON_E4?NQfn@-?Cp3S!Sf(q??V{bvOl5haC*w# zTc{A_E({cQR{J#)TSZNNN-Rgb8h>~`Qldt=INw9D-fVGTGE1hd~j1G~08d`l-k1$5K=8O_yL>^ue%LQ6jL zn_55sQh=nE1C1aO0+`Uly0D_fOHG?`VA5I6%@O(c7Pb7Xpi7yx8=iSlBh8b&=SyiJ6@eJgk<-)yKF5HRT zN2}jmMu=DC$4k!wQO(CGqV5P)^Rb`5uf==)C=Y&t;QLKHcoM<)>Uppk!4DT8nATVV zx_amx0CLeg$!Pl!t2*daSk;+BEcHYl%TM^?b!YdXqO!-x-z#zR(?igotPeRzHi zVjpXQu95l`Wj$wQnIZH$zdDa~ROYdQdI=>v5cwLBJreSLg2+}x8YDLRB%A#O5f#A& zzzrkpC`8~G%lb@Vvo9ddAz@|N=M|Q9k!)@hl|u4c1A9@$&*7hqZF{_IbPPd)q+A7uW7>3Fi#$1QjuOC8IqVcF|A z^s?XQkjp~vvONSj^kfUm+I|7eU~ub}Aqiu`7Mm=h)Y&!Y!#1k>I6@-Q|6h1rc|FkogNUn zpe=hkkTH4iqv$q(#Ssfnj&*o)3?U$nMhWIggD48Ug|!JN=%hkQO`6A#H+G*+B24jd zxu$3hw21=p!>+wYmNo&7!LqQ< znFSFv`v9_a9N{H^WUGetSKR@#ExpF|k9IBKNIwca0j-Blaim)5$704ub|0T{C}vHs z4l+43?6@xh!qNPO`*%&f)Y!lY&nDFZ32W@w{;6@Aga$&kjU6$A-mXnIL$~IVUaJ=x%tmBPgTPIGye|eu*s}T+BKUz`JP^Gu?c;jX8GbSbzf|9cl*1vl+9jNu@KEn;Qotrvs*x(d z+@|dx_aPA+D_(yqS9(;9mtb$56B-DO3|uc6QY?A8nL^VO>32mE5;BtUlVzwnR;W4a zXkOTxpHf+DCSe;srWVn#iTbIJ8B3Fcl~y(W;|26Ws>U|HTOHWS2e!f9ft1FM^mqI! zwwAx+x1}Fs?*RGJ+mN=!Mj0w>>E|=pJ5>(;s?e6+j##xL9lFIk6-seA^Lz(Q-)Ajl zo*4+pDTlCdgFwc8u0qwv!Nfe@LV}WVgn1r80DYsGu zaaVt&UBur(s_!s$s)>HeDS8Oie?eJy#tDIT5K@kS#=cG@(Y zveb+XR8X~xPVijP1sSd{R<@@IPQi!?9+KmDn2L_kuhf7- z^xPgedmB}NFe;D(U-p-!N~?6*p>1=3foeem$FX=?YAE(rY&VDcFS7>^%Yo11Sn6>| zfD^!g5S~Fufiom4@cKB?+L3k{X{3X9Ksr>D3T?&OJZyyQxh2S!O{zGw+3fd-(h)w2 zKggMfD$Rvn>>R7WI=(%9Kl2<1y!o_1E(<=+xsw2FF2uf63*B0ieMxW0+7^s_@BK7z zZ3inmhfyOaLG8X(F8Yi{3#i~%kgX`n(f=yV37*b0Ja|gOO#+(5p>I-h%K#(yBYh1^^ht3;h!uaomv2 zP9a0qY#6fGNbsL!$Oe~jc`z^;PeR=LzkxukAv>~5K40CQ{r!j@_G~H{u*fm)Uaox z@&B*v*|p!JLFP{=#1r;xHXe{8|K04_7tn2JJ2z|3auM+au7@UHC)o+y*BO8fK+2&l z=e**3nS7nJl?bXbchDgEg%M3bCPfPhOQDrJb31*VCcLx5-!6Twx{q^jC)DwT^6v`i zFtB#9Atp>n;bKC2HwCiV@OMGK--rsr_plKPte5z8yg$-;?*H6pO~1&BSK?Mr?*8n6 zElQ$+yFXW(NhZ9QNWYUW((klZdO80xIYbei#RbTGE(I8w>T9xZP@U|XQwM)14%d|nGgvzk zIGYTOqD9un44Onu%<$l$o?A7 zuka+3xrL=dH_C1k3I*u~9V`_tNNB08q$|O>A#|ebBgj^T_Z6f*5p1$gAV%ImQYjv) zWU0BO+>1F0UcBs=3-QAtgG^9cvULIt!rY$<&5V3FSv4pap!z1o8LnC6+(BbQjs}FO z!2q>InoT_wsVDVDv;${gg_)c9pI}=WLE7+wl4=&k3?Ih~sE~v%;eNC~6yT2fLmRH^ z4DS0vg35PFAzIYL#E*~lZUdWtinRpJ@S%hueAxfZx zGZ`_%A&QJ}cs#U~dqbzh0dO1$p?<<6N>l{9lRTmyXCMq?PIxWJd_m&-qeUY3h`zr7 z5Mfo^Y3WBgnSwy-qddqRprm@D)Vk@S)B&;!*VQ8egJo$AL`(oYaJBG3R2@L!btYaV zcdZukdboGA1VK1lI{o>u71sb9_BBB0RG3>;`@HZ@9RgZj;#N@`e)D0T3IFJ!Tu%F3 zpbR{UhytG|x6!PSGH`4~y`zRtlsuns1;X=5)$GAf$1X%00hQEG$-vu*Bp!uh5jjxT z>^hdJFGDW@=~`st-U4_-;VjEK2TQLJuQ`aa>o5b`;pRl*Wzt(uA@{okGL&qml1(BE zdyn#5f^3+8F2jN(xWNzsUBSVr6QIb^Nl>x^$EmKZpcn!bn!tJG*;^0)yzG1cuVX9vDUsXCMW}(2@YQC|Gfnu-e^fX6|2O^$sU}=0jWw?^g)B zdlesFVeImLxsP^WSARFLM(cMpu|604UP({D_w|(_$7s&r`)Wc4nl7zLNVL%i;{-2K zGbp6hz++3(th$e3p_Y4-)4&;$A3l@ArEbC^JmDI9Sw!zo5YOQQ@uaDLc#sizd^Q4h z-^)?g7#zrc-h!*tu5ssi)JyhFF8>_TVE~T$PAA&n74vbYA^f4V7?@tqiqBwAGJuS( zE+B$^>vcmWGU8IRj3q&mgR8mto6N=E{3~2y?j#al2e7`>?YxQXd*hG^3wDRhkYop~ zzDzg|+90NO2seOMg|IM;rB-bZBIWQ4kZp_umGutoG&~B&Ws!t~l)_sO^%V%4S!z*z zu2Pu(x7|-Bw1oBW{#I$LRf1tmt5*+}Tct`v&6fjbVjKkLz;m0xR4*D1f|CvnuAELE z0jPld1j0wq2YIjUAAl2w`~$FZB&^28!Aqc~A7-8i%}l2p;uB>D{E=$+iMjF#kLFd^ z=Vaug^*Or-05liV%@>B_0H+|LK&uG^Z#6tA+=C$P5n|rY{Rn)yle`Dg1p-n-*qBq6 zy_-TKgrtY;=C1So{B5lN0K)nql2+NTaxpYHiF^rs$tC;6sQ-Y*z76YrVo{EdKlB3< zL0I@Dyo1|rm+EZkwcPi)i@gIceSnc~^i#M?i?=e* zKccdfdgl41kZTzzODla)wn`D~;m9=HmfVr4lQIS|_3lRGyQVKQ1urq{aNAX#1qpIr z<`jKcDlVB3%RZ1j^_}tx95Vka5W^Bo3RsUP8E@g-sj49VWtha)32>ibZoG4IFXwh- z07I&}Kp75D1{{OS1lLZj#2fN(9tVMUki!Z(S>}Eul83XM5-*X2A`d4Vg{gZX>G0SB zzb05S+@z_8Mam`N^t^=BR+L1waB-qw5PcOc&OKMUIL~qKCb1UsPTk zKdc&o$KOT(yW47_JbWd1xThY~f`^l|uxsxZA{L^MC zK)4jI%NZ1~5WX2AhB?4~@+(pW*b=o1R$(xSndBnjOk%F-DqLdbRk?(#m3W2qVi%Xl zC1>kV{25%rJd(2s`$+JK$~cE~8SgH7Wy=s)Tt*!u5%t>y64>n|qmCjo zd+QZLMmbExvd~vhB)Wv(mE3T%Qb&^KUKTFBu5}wXZ80Vxg$-IClejC9ed7;6JRKnM zbOhq*h?#q-qv8px$7N02Z+jK-1lja?jBMgwYr~&?&X7$zddj8kR@|G@DVMeoz&mBr z7uS(ZpMl<^&g*W1$vpDrB$FaQ&P5YehRlSumsC z8V*A>GzTQ+$p=Ta(V{q?w$Q_v8yu?w-=`@BRTIH>|TZkZF=H^N^YDI;aqfWg2`rb%q{{ zoe#GPg*U41cCHYWDSa0SmgZ7nK>q!(^p`Y&#?ZrMv zh*-{2=Nfj~aKO~AHG*Taw-y2XUGN=}&nB6N4wWrsd!v|S(e7;pj=R#m`HV=YAl{)wt; zij*MYM}+%)mZ6J?S0P@7m!9b&j^+8P0A(&Db+l>=y~@C=v|8-(n4Jmq#v0yoJRy$< z)#7JSE%C|E!JE%`@w1Dx;IE)4|qmEpu;vs>6~e{@+s)lq`wES9wcx@$Xl1`UQ~?_pUD zd~I|#TpIaOne6GfBIq-4fp8xOPH}4o9J=|O&FweaEG=9^e7u92>n2ZNANwyurSo&O zqs6d_Ve0KO)`;7%Mr_bOUoe->2R`qoNEgVh3lGAB1`B{MDiwZF&H%`-iw&l?WUzP;{S7YgBwIw zw@HPh)$PpPLy@=(F$^|&_#b#73ez&TO;;s2S7?tDU+2!Y?@mE(WjEM1AKaqdP?oql z3Oj`ic8DI@3Z?2ZP>}D6@=Brkq$6_vCf4$&Auh(EcyQZMbgS&u2BQlxGWY>wFm;`S zsk_=>>bec)*bIU|bTH_+y)K3J(P9L3og=90F#>WqglLUL^tibkvW=hoC+6uhyKk<) zukfamGwTRm9Qf4Y6~L#)yMUi|Wq$|BUapTSG+Y648e=TTWiK>QbhhVS`wAN{ zL-j8RfIr#S(QoED;!@aQTeY9KR2^|CSiuRk$OQI;*f}sOaH$sXq20u#@OI#z`CDvv zN(~4u1r8y&l#DmRJ)K!gTxu(EsRnSV=4)`Nw(eZ&ntTZ8J{x{pvaxrd&ao!3bJY(U z8?J$~31iVP(s!HhQQZ~T#k!Yy?f`poKxBGeZ-J)tWGfV9oTGt20Jxp#`+q99)u{%! zry&49C;g0|{j;k>dp7c18`=*3_G-}H>G*#H?K(8fp*^e<+Cw?CAr*27+IIumo&KZl z=b4JmYzFD#nonG3Lsx#%VYl35CB4q|j6MArD}EK)0CpW0U818oe?(Rj`{4%s7G0u4 zaO~~zV6#P+#Mzt~IF^bqKbk{d^Wz7faK}ZxD81@_QE2s((E@#-nMDhW&?lCPE{Vf?%aJY@webs579qfkf1d|X{-sbI?-r%9 zV)_uQsF)T1goni`dmUk%JWTmBKPy!H>#nmx1fH0)LQ|invqEjuGVN_`F+WRZ`!?l^tGht8l0v=tt9@p18pC@Lnj^plbr%lbV60gVI#OrvOoLpQT z$bADidkFo>x*of?y7YA%*0O8O)4cYGF z3v1Y|ww`M9d8l`+nC?XtyLOp}PGL_F;Q0-fCnj*H7N0_n31V~>n#=e4Q3-lS4rEjU zckX)hqO(f60ZrW8!aOZhSXB87ltYlNGFU@FF=xAxA@qAHaY;-lUGv&Gp%91w6D~Yi zFM#LTY`{~%m=%8uxz(I%f|^}xb>w{Q$oW#kp}*ZYZ)Dd_N8$7RyOOXepu-`Z!3DUd zeI5eO1i};cHeG|mdx#BmG>py80iu^458mi<935DD^EHIE8h*S|(I3Lm%Pn%l*IK2sTzkxe>f9=u;2z!RTzmn6m}8z28oo?-*wFBs964X9IeTr|ryy~K%pQy% zTlIh+-{=%}ou2baw)*5WIxF z{V(X9U=_Fz2G(AbsudmQb(AEK_NWLF z(jM;2c)!p&bxx!Jz!iN9HJ~D`BDlYd&X!hzpVT9S!+iz6#0lTi*yk=7pYzrzrbn>T zG4u|&AaN2fSmzJ~h#(B!LdW{H0tcg1LI)S44Aafo8t1&8Fv6S}(Pcb#^w_9|c^dEr z_xT5ZFb?MnaT^wp>9?eBYWwvm5)f9=2Mv%T<#IziP-LQ>M2Ceg)f zHyXb60{Tuz8NY+4T{|U5$aG0~Ve%kTc$lhnV6YAed)-|)X|X-6R(7A2*qcwI8JsFf zYb3rCGv6Am-{vO`Au|R$E>|2;&8HWsOHmg?CF%@vY! zoV;fI5P8jW43(aSLF`r_lCGbp|&$9H+`P>cH(_cBC#W;vS^Z5pz zUGw>l^?LJ}k7j!3^NRV5Qd)6M7a6zu{y$4ku`#p#E_r!tdzAWP1m+k?MHdP<@jO`Q~wPwu`g>@A0~!T6|0h-~n0nL^#M|J6Mn2&Da{Pu3*{20Xf?RI@kRGj}pmlM`Y&NOAsupw*{gf_`> zLtf`;<8SvWx04LN9cepZ&5{ha!P?P|kPKghIfx4IPW@2^!zh#4rpz)NG%i!h;`6jY zo4m@VIPidYo?_;26A+$L);CYf1d9NBK$dROdXvqv9o#+CW&k%9Y}ksc^KH_0vijJD{rG5!P5K01kGT+I z!!@)imRhY{Sa5hWwA(eE+xHfHX@^WXe2xU?gB|N}fiYum1q^BZM?4)`7|TsOv#v(m z{uW&LLhABksaC(+1kK%`d&+KSBxK2H^Q>VVi=H8NwEiTE5KC2aUl#I{w$ojNacZ99p zj$2snvFYQ7(%rblub?WcJ`sCYFpf7Hq5a$Rq`U2wbE;*Z>TXM6Z&p%T#Baw{Pk(Ge zZrC6u^9})dv{a|&{bo^xEyB$1BipVm$TNe9t zIFONNG`LU-8tZUv2;WAK4u6;b&J`_A(Z@gFkPc>GlczHk*2eS1!{YIi86VRmUOY$5 z;>BvbP;rc0I*7B>R1~ zULcT|C*#r}+J=I!6YY1MlJPkv@;aQxGBS$eqFmfLZep8;y_y%Opv=RZY}1@qQIyB# zIO8a4?u?o#+NU$xhio9=Kx_JW*Pm2Nwaro)dJ9ztUw^oZc>V!18bds?J|>Z7foy8t1?)L(z&jtCqvKydUJz5hagm^)FrI(E=g>0e}v0m5eQLEJ4+$HDRZUE%3S77AXg1Kxy3U zTy|~BsO`LOK0oPM!pvu5Fq5!SC9G7j%#m+@7D$f_JxD?2q@aQn0)iC&HH@1Efcm#M zq>zk-8s{ir_*4|V67{hm&4Gc@+54Upu+Kiuip$Nv3$zcMGRu~WGC@euj=7J;J0IpB zr-{|q*rsm@e6J!DPP4fKar|R7r)A47j_&uOB9x|kq3JvX+caiYUVvvFGlOk%&H}#k zm~#g3-8l>RZbX6a&RM{BBMN*k7x>;_;Cmpn1^6y3YbUg6VM0&BEW&Ez{^C0jAeWDG zBoDw}e0S(?#QPpDUixZ8r_!HJk^cjwf9=0O|Mu9yOz9tK{_Wfn2Pv-f`V6aquV~}S zFZfSNe1=s4x3O<7J_F^MgK|+LBg+Vrkx^QGbww9KN52Mq^gGjrbM}|UvIyz!_S~!XCLLNHv5T#)7zxwb<`jyu(m~E5cU7C+WW!2_9EzbL$IPbHV z>~b?cT7|n~3Vv_XzLIgB7&&yi*@K%<6y961{x-oL9RGn=`2hCd2izXqMD`$jwqy@( zf<5@g2e1b}fIav@j6K-wf<3rHwbWrPB_tE-#ttp#bhoL*b#Y%2bHX7Vc!j!{(|Ba- z92yA^Voo#b*YwX=Qy{JRPTZP_d^Fy^-f0r>HV$pYFee&dH|A7K0vQYXWn(@-*FPZt z*rE@Bzsd*kUNijF#Gkmo+Tc$g5dJRufc#@0fIne;uz6vBfjx0ZOBj)&92Md_< zr!PYfW6=D<$*VY>aL=d(J|{>)h==#5BPYa?_h!WsbROS_B$R?B|3u=5yT9nZO6Ki< z3J}vL6U!$KPZtEf1c^gSfe!7gT?^qmg;vWB-@7F9WaCy-T7u$BV%lzecoBXJT+QM8 zm?R`Nn~j6VqEMAupyY1E3|aNXkcCIFkDD84S`C))#JMBfX^3Vvht6P7=#1C8M#7*r zD&BY-+QC|zS6(CGXefCla3{$|h?$Z#CT|}+*RFvub(MPiAVVCAMFQT5$Ommi z3x@2PW33R)^tl5?;&=W?)z}+_9a0e51R<-0YnsaK@fbRN??H1F+HsqT42uJ|FxD_V z88e8RumI%>j2e1koQx}-X|HJ4`AAh?j?ufktPFSRLH*6ZCV14P0}_A9(H{*L}vmWIMf4RKC8dM%-}jSAHH>b z86Mw@KsHu97`bRhXgWfFhe(<~JP>_Z52PS`OsgGd#TO@CC&)yWNjbx;<0>@Y+(LA3 zElw_!5|*|BepY;+0Cupf+dAm8f!GdWGgXZEy=_t0zxDGhv#YR?A2mweqRSX^M zjpM`ua3fq$)(*pu%t=OH2(rQsDqQ_$bDwC!J+M~Geuq8M*muui(!vkR0(x}1{ z@lhJwN$Gq*)y`210s zV()Wfo3OxH1tX?BF;63tGcFQH-|7llcF69pVeOv;-f6g)G3@}F;P$?GUS7bD%;s#i zNtuU|6j8Ea{V4Nb{fHQhA7vhl9}$D?1Fi%o55B_o7uB*`wczX2H6btRzG7B?dz8GW zd$Bai_X#-GEBb4g(pNE~7j5p7n9*9R<(NaCGZIs}-!NFQBi@)&?#p`7VoYfbO(mM( zQ%h4y-YW$yfO)fm?*p2uCBUaN*Wo$f%%fEXKBe8}6H}Lusq5y+p($96DZnc`%^WiH zn9t|=d_EsLpNXK)_2H*!GGX5S4WG1pnzVeljjmcfW^n;#6JNxv!#C7faVnq5??$wp zG?T+XxSPh(q~!&wF$?&lT2*xZ>csrf1`2IYxB1I9=5HS6C_6fT^JxCEqw_b9<}W)s zfAf0GA59)+G4wOk9bjMtaf{){9E=d7= zTn#gAmx!m;V{7**P{#AUpwvvkr2pH#x(J5ouk(piUe$sWJb3%QOzR|!AhUi&vB15CG2^++DH zK&tBwtJ^0*7A%zN@og=LATPLk6)MB{hzVdYVAwbYLZF}XVRnC4~CS(k|4M-IpLmHvz=5J_#Ze z{(CM$TjL5|#)oa)r{F3E49$0VxmJHioL8oRd5E_!es70RLrl5D?3G2Jk5`5qg?50{ zA!g_p->^%k5x(6FCF4GabR1Fqf@LPUt2$i2u}OQdn*@taLVn6?`l6vVlc^a}E@-;s zHGLpcAy_%Q3D%+x>>2I|$K!Yn%_rdzp9*ay+%Gg0Goi9nxQ6o@0TSqp9POc83cb-$ z>Xm#t`GP`82Y|I{CsB@27I+C=LxZlNLD%5*R5DL+eEH!K7}LcLjYC(Vub9=p_p%+RpTp{Hwc#VHY(HnWiXiZ#rh7xj1Z$9LZ^>OM0R z9}UJ@iTLOMzVp}DSZrA?1-=}ikAEyu-GEQkvJDsPIbYf&+W6`!ps!)k^E)rFWefATn=YYWB1Ir1( zG>|zv#Ap6aTeZ_&_8;F*NBiIEu`MaM^!xx=4^0l~D=5-6v<>bE_zg^im43s&%J)-# ziQO5&iJf`DG>~_j>qO{B=q((5j+}FLd``eLjNi{M7By^IrRTt^@8OHBVuPT#w^Yr+ zO$&}1vSu~}_#Qoc)emYlMhnx;(N=HSaJLmsDtxv zVEMRgACAHre9Azxf>ZFF1y+50A30JjH$;G4bZfBwP`udv7#u&C9DL{SZB({lpFQV- zJ)X8_=5B^ng%M+Gqdh)%BSa~%aIK=fT;d#n?g|qtYzJukSl8N!FB@amrXAlVaY#@x zBf;O^Wk9yfOkB1?)u2T}^K1|PzKP(m7boh7#oMrJ0*XIS+K;c-AsKo&K9_9I+3S!l zxL1}!3E%Hv%5Dd<9u~SRd-Ex(5~`%QU_&3&mz5~RRF^M~)l zd~fE0su~zrV$%-Vv`e^|YNPD_0;<%;;OMxl0@`jZ_ zPTbFc(6;j4a* z+*Fy*#(STm9Zu8mgv+KP5jxgol1u4Tt_^%?uRQc)$Y7sNc&BZ}hpXwBwfh7uZMCX_ zFosOg%VLDx`U6B+r92v>hyAf2o#5c820oKSl+r|m(Jo;$$3I)oD_3c z0GqAADUM#O_+MNmaObZ=J#@AKQ4)!KQ+--f>-#ri9f*M`}-xd5CU+G75W+k7gScPK_38%Es1Ow8)Bet%HClkfhKp$-Z>*B7y$)a zS=oHJW#)_|WoR}J#X|}$$KIT3XfGA`t2Bo^`+Y`mfwnOT!BQk#1L(gLQZ%u=8R0FoIKPI6d`gZphEmr z_UEe~$eBPn`%_LH8bHnzUS}WV#9w7nsE?=<7E*Oz%AG{H={1iHM4nqh{3cwSuOdSY zOdE?|uVJyLLv^2Og?;)2lGdu5G41s4X&ab}#|QHWJgO8M7Qhu8HJnjI0$LrYT)h`s zhTs|6Og~ng`8DJC1T5;oevhMAUx03LKKy{t_q9)HV{PfXa9kE#4ZIDPabKjfwHl7n)*w+XZg7oA+3LDmb+4=$%G`y(Fnsri zZbbe%bQTf#2gvu;ToEr0L6B%|Cv@r3e_&8x7Ly1ek}y%mMHe_hDX05g$5DE{1tt?N zyC_#-{Au-kYsoQ)PB5*<0H06@?Zni_KNiN1y76w55dA5`ITE<~iIguXr zyAz}7${gCPf&BbozZ*6Z| z4h|sV+^_NdaWLkovUd={Z_pIkn>kVfZm@y2ABK8hIfx>qz^cUa={~S5g1p^&RuRuqVny^a^ zTm+XO1RO!@S%A@IRoj7k-Z87h7zF0oXv;CVNICe-K)pf0{7SmnoueMEdB;^pew)^+ zrtbjiWfUKFjZCR=0rD$Lhc36#9UIl5GL8$~@C)1v*2xK|C)g20Zc$iF@yv4yIfdl= z9wE_P;B&$rCW+50>)g+<%G{SGDJecW=Vk@$Tk7N|2U31oLW$nFlJD3f!P028)7V5^nrAF49bO=GK)21Kz% zMHRr7?XDB#7{SN9qN6On3uD7aqrn468Wm#9CXm@vUifj7p7c)P{#G#T^j23;wzT1U z?y3Yg=s6qRd45oUhwx8s*_TF#)k&T~kyypmiPxb{z(QR`iwtE2^h-`g6h=zBYcnqU;Z{IBERIQF&9?v4@ct)D}bSfRNm+j1(oIY8fcJBprTkJCxucz(ibgK*0dOr-Eg;@{{MeMlT% z9hqB04l1dgC>FbwHnTV90lzk5D+DeHw5B!UV*5OZlfZ?E+~kM>_vR&&#(e*Tl@0X{d!ChL zN#0?z@W8t5^Pr2Yc<-E9^u%KA^PrC`?D3yPPb_0T4?4*LE%+0W7EkmK0|)f5jp%`I z>ZQdUcy94&boORDNP=(bvf^_A+Hn~YKYUM@{Omq0?9HvnE;m=kJD(te%>ccEt<%Dd zQ2qf6=>IYdfKyoNvCujUR9PBd!H3}_zW)qs-H82T%aOF^v|22AQTgRm-fJ!}7Jimv zWRv2(N&!7-@n<=PHYouK^u(HtvK(U+^o~Shj8$>zJ6s!VmaU-rkOKH}KR^sRhvxU` zXNrzH?keLRl2_7myaz}<{%zVpPj&Ej$OGpP-u=UOkp;|4r2mMgS&`!WRJu1g{lvq{t}vF)1+EC^#Dx*I> z&UiCWyum`r<1gf+<64W+xr;NYXm#)?o^U5A4)6}@6q^a6j<*fTp@M@<-0WN=;WU;r9h zJhao1!5<@n;XB8|vlUFeOg3hbESw4BA7V zSTQYOfFakYo&$FM{vCO!jag6p8xBO6_@;(Gfw!B2OTH~2{yHyNjWH(z#DGR*@SYk> z8aaak$cPtrEWr!ka6gi*X>eO%xkOCBQz%RDdyt;K$49(K70`L_YP_ck!c+m_D>6x! z1`uA7o3FW@LyUkIM$nGyGr1`XXYG;TYkdX$?8qz^jvr}qP6ZhI(J=5uAQG33dWUw@ zp%FBHehZ*!!_K@DIK>G>JCu7H`Unqw@J&-c>TUQn`dNk_fclZRex~quP}>${i>)n) z0y9t*4EOMeSbL)?p7Q;LK1m*I0>rA~N5R8+eU&X9IuhVrPYKf zxsVT$$l(7$5e#_?UekF^cQ@B&clySBj?J^NRruP=8C&2?iq-Rl3*VByY%(=H?Hr${ zvQ-e#@GOK=uwsqRxPT|FK98Hc-X4g%8MLN;O-_8~^|V}sjX9CkauIH8ZCd@x-RE&r zNFGZK;%^I@k71w{?8knz!QKrN2V8sQB5d|;TK(z{PcwbNnn#@Fz^E1GwA%1(f26Gw zNQR9$iT&U`MDR7v;?DsX((JJ@1=mwMHsZ%x8mxN1AN1q=APry`)P?)ep{FO%Fj(<} zD8Wza-irV(j2!`2H1>EvtEf@>9d%By(UE8q3PjMDWI8IN->%aCP21amM_F8r-y29I zK;peY7EwW?28|ymv2Fz=nuRQGBvGuOP(`s3#99O~DOe38CaGC&*V3vjty*cTE%l?K z6+{$F2(STBK~O~ z)Q7L#L%CNZzihsB-?@^z2B=+^S@-Yam|9F;Dh77a+&$I}U+%GP{4&XXJ%7OiXH;(qxno{(I#f6zH9rF8Qq?Z`I%rV0j{c z5t<72)*SrZoX#HWzR?g;bMQ9{yL+tKA%wM?#w3Jczt)50a<`X;&iH5do*rt(ZJ+s$ zboFq)*cdfY3Tg~=jaqeSLim2J4zx&^U|rY$0mzMYQYdcA6<#ft^C~F=XTGmJSPyjU&<`*>R5G8iV2~@cG=Wnq58dd zQ`cQgKPJawVNDWAx~%dlkr4Yr$S>t$B`OaX5v)iLMn9-eqp&1#Ql>t*5frm@0XLQOk!!|#N;9wg$9 z?VKEp6wXw3dN1TI?#auM8ZN-fe~a$2Mku`4P#7a_BZPeA%1k>9u42HEb;xh zN!ynA-fq&N%fNqN(nSb0|2yV;uY6O+dT>g)Yx$)<`7y%$dHcPnaHBsXemnQ5jND43 z|0xssEd+kY-+KU4=`kP~Lpp$5#>4Nol3_O=D*3*X~@yggj%Pj<47UKxsHpQlOQJ`g&(nLoKjePkm5;Jslxf1mIN2X6Q_5MRZC z{;u1shnrB>3$+yQxvQD;uPr@Q+268MJn{@3eU!&~-k z32}m{4gjN&?Ku_M55*?M)x~j!#99?jDA}tH;i^8j!6OTy|MK& z6b+-mWm7M!-#oJ`3hv8TKR~HK|5=n3>uo+V`f9;roYrGQP1|x=+w3aRa7QDAIk9ip zOrdOlqm-?(JqG#qW-sC!0MP*1FD1iX-+T=V&CO6^c~tFWBo`I=qJ%+l4DLPLX&r^^r^uk*T^ci=d~%a^C$z z8Yq@~$2Nl)&&r4QBgyRYh)9w{s)MF&ae`cge}(VK|y%CWIhK2z;C!B@~&d$1d(&e-M&TK+X7 zu$Xnrdg(X@9w+p@CFX9$*`e^zanYe8xv*bM$#1WRJ7UkjMRJ(wEv(ACer)W7^%jpY zI@|Y2txQ~VJNg%)0pequb^S}qr`)9fwtNS!3tSr*6&QI9@6F3DOUTan=rt^En__}% zYiHieEmYg_xGV|d({$^&kbQqOQ1(FQCWjl5!YfMb8B;=$1+r(exQLX3RZhPlncU5S z#rj%T+SrhnynYH&4j&;8T^j3Gb1~(e=fKbiHi_in*s@3_khb< zsLn@&S&|=t1vt2qRW}DkH#n_QCL0y6*Bzu)3DKq`Gp&EnpO8lXkY8(u_(Z#YS&UO0`WKxbcVErj|f!L=bdY}v(d3@Dd+w@ z&eYVDbT@^AJ|1UuYD$KiLTMi7($th=+!QGDIC+|))HFIc*(e1Z)AKmpB<1x-7J$ghl(SO7~syh=y4kilo-8xG)XFw<6t=74=akjZ6lH=_+ zX8)^`-VK@Y4}PulTBdd9>PzdqrfHq!(!GWC!iw6)MswZmTDMin=bL8oW#6v()=9oq z)_JQX-|BGF-gS+!E@Z01^IfboE|l~IfQ(J$BSEi=ZEzQ}tsTgeDMBZb8xgwYz^&lYTwB6#Ac9GeW1&< zdz-d(E_ppoSj-C}CF^&Eu#Y@x5)oSOl)Pr*(@6Q^Rf!I*Z*Bb<8Lj(&3y5TXtu6Bx z?J|cJCo+fD;{#%jR=h4qC?+NoFI_H>rI^jG8sIS;kJCAxCC-j4b?sW(T_W~qldP9- zSxIrW^9{fTiQvGX$5}@N4=Rhc<%T=ay)d&)0oKWNScz6d$o{VQw38;AP#EBZ+Y;KE zP-Sd#YDz*ms*H_FO-U$6x{JrTBsC?W9A$)aPEAcoC`UBD$LXReN_(4fWI*ybUw*H0 z*`~znFQHbkHT)+WY?N2U)&CTxrgC!u`4Y@hZa!%ul)cK%hZM6mPm-fEiTeRZ+q!q% zsZ6s|I6A_h5P%oPFCx%jH3Xl=PJCwZ$+R9qSGJmkw@BqY)al|=r9q$l zOB#;Vr&b(`ITpA^&#jhxndu2s-<#LlQ<*8hCwMAO5GwjO=O?N7R{BkSe8#By&3EUN z*uSj?mpwp~bZgY|>|5W|%2rfHmzRuHgKuu-8EngRbRcQwRDhka?Y~K=iVvLQFYVzG zt>07nf*_oQfK$pdt#f35B4IyWBWq{yWHi4N@p25Ngx zZYVlb2ayTUp}jpGV>9h_0;{?slP?cDvCume8~5x$^zw<^rbp?Q4;EV_5WT;VAJJJT zOEcE@-NSO@NdhSdJ3!Keai{y8oju{9Sta(3d+6nooE4_eMYRW5VXFh8c-Cp9 z_C4dA34cuU1augrxvyLqr;jE!2Gz4Fc4(&;T z$8jb}7wMyF>)c1uJg-W}fpO!spA1T2oAwlBYr$e2 z-QM#d_=Jx=VZ)tQDj)B5WIn^?5Ta}oHYh^YnDMj8N=h8u~f7|>F9YdZXH;+ut z4xBP|08#yuXm~tj9kfu~M`co+!FWSptPz*PJ1Lw?p18&4J9j?k418F+h|Uu0S5;2q z)|{2-?Ba$={|?Mb&r`jfm51UkV2`eHVlG5kz=wbL9Tq zQ*K@^9;f%uQzmDZYC-8WA&$jvrJ!*mOhLyt{bKpdpV!2DUvV=C<&C|XxO26Hr)l`A z2Y&(brwNnk6GdJVpAL0a-AxLR+eIk3LBn0T3nf(sc$f>^n-Z+LVg*>cM#2FNFX;o4 z`Vj_rfLrfYcxBa{r2zRqd*TwS{(J*)tV?fPm{6Ca0G^*pamN~fD-{DoJ^^P@gOQBs ziNL5t;QU0OYa+0%)CFFW2>dw_xF->~CJ{I{5$KW#yv7=mmerUDEK3AdCIV{`f#VVs z?n?yHltqx*BM}&vAnc(8%)vxizC=vF1kA~am}Pcl8R2gqOtKdf)mB`7Pne`z{R?=1V=tU_Hcd-qxrOQNQz zk>O_g{+-kTHS;e}gEPbxydQw_QBaDRbb71hX}yr;sw)gwb$hT1z*>DW)rmX#pAqf~ z34w5zvhY6cn5OT06C+&n55`;3_OjPE6EX)Kf7kI4aSzxFHizGXfD@%ox059IZAt$L zgx50C)gDZ@?%OWBVaF05j@m=qCL|Yd1=-c*V*HZGjfYG00482G%Yxx`0i2+L%DOAP zU~}uZlG^Quxm;?t02#G6_ zxDgUJPU5CW+&GDw!WKOz1C|}GoF^x6hm=Noe$1zr7h5*ra_g0wjLeNz$@My3p(;LU zH~(jy6adeO1aq=Z6d%r#L7OVKl?_^1aXT-4mh4+sCWqEBTR2yFV%vJ(6?Xd9SA^5| zmf)1nHQgLnIM8|OpdY4RVHba$c}2K*Z>EI267ou@w}g7j5xBBJyDQg)kAD>od%_zr z(!}CP+QW(U#Qmgl33iD%x*cK>Gnbwu9t$``MEN|o?Q;d6!Ng}M9GuJdH7Va*c;KIs z@?Fh$P0IIdzWQo;`7Tu;Riei}R#m+({Vsko4z*`A92;wwQ1 z>R0NXl!z4m2RzQzf6UTl*k0l+F!D=`^YF^nEQDQ*;YX_Ux1%_&x|Y%29Yf zX$6}R!-uvqq#^z%IjqiZ*2#wOBE^Biu396maTl=>*xBj1)AY6rT%0hVQTv-9&IfU& zAZ~O93tGEbTMI#y%D-)`@2|iM}NUHTNW>A!qJ4k2a>#`CAlaHlTj*>yl zWQ;`oVR;&U`V)acEARRXn@8zfL0RMkcW8C2I?-){3{M1nYUNf|bO>0j`hP=1ZPg+O zeS(l!k&*NwLBOM3bIRsDmN`!@t2`2VbM;&PsduGne+K z(BrE73|2fLA-~DR*Ej;18fhE)zm0YkH$48D%y%dYUG`AH*9I_y@ z_!3&)9Ga=bo+^Avl^2xU^f9VSo+Xdg4*<=&b$_`eq|+d_PA&_D^^ys!#>fImRl$qv z0a-+ZCy$-2ayx0Ha4zW3#^AFAUk&(}IY3?S(4e&ycMiIHf90;?L4m`SF}q;U$Hms= zpIeuI-1;G0nN7|FR~`~Wn2LE~MS{Stn&XTR#zYEB8AM_yN@S$)2?-x-!VeLq(7$|S z27uFmjvYk#i$_Pp18PPs5yBT2ffeKM>c!n@c1N1M#LmJ+n^PMsI@lvuN~5o&r}>`- zr4ocq3hFr4ql_)lPlXV9t)Xfju0Nw1q>&3Lfn$i$$QNi~{uPPbWL-{HdHu6#XSy@* z6Ssk{Ryc!4HBNY$i|jBpSD%EsJ%psIb16ovh1O)lw`9;ti^~+G-)x{Nki;d62!8G0 z&Yp@7g{Wc<`9(%;5CNP`4{EW?Hqe8bv?^4q7Q%|ddmyX7lC?oqKu&_J7eOsvUTug} z?7(Ez|A#a?$artn{ez&)A@IB&RQi#p0?$a^4cl1xb+}nN#NR=8$=D4-xK%e4&W7v- z!eE0IcY}z7e8)#s3);zoHqwXhLE_BPlK>~-bLD4H@FnZM&KeQP(+D8$-$P!zKA&$% zzhBHB?pvmAA{|;!Q^8WU;?NIP!%`SkY|gDoUx#0Iap%mid(+w$=bP=8C#qXJkm9lH zg}7HF$Od7qI=;;7RC)X>GS!}!UU}>*vizrxWAidAGR-BQyi6JK4@r~{ci(205vTmH z?ikP+%{4T!DaIl>uSDhb^AA*BTMH29sYJ#8$l@X4|C;1CNQPx|TV*EvDw~PmeOcn@ z%$Gs4sMpwWl7)!#h(H-%_n}eJu|sVCl5MR)RjnoMax#HxeTMjb#J4`*w)yJrM{2e2 z$Bml{Js)nw!t5|V#{N;QaDNv%{!f|3VW6Do?uSzPpw=9ZrU&jn1^{2}p;Kl$@#b%4 zw?$UArjFOLMJEduKiCg_g6fWqoi(82erMR-FP*9Bw_VUNJyJMc7`1n7tc+V^e_+2A zV=BHqHWpyBqvQVPXj?He*3| z&q}>eu(QTOEpufj+AouJH>++5>)fGQRe~N)#_?4W8I@HMiRff9tgnfcM9Pju750`g zB9Zx^=1ck+2{{DU(l1C@ZW1<{FB!#2+iJdKFy~8p5RkfZ6prjRU+F zr&-<-OysMvkjG#k|D3;{VIyDRwQ@QM50y<~^hfjrDB2x1Ui8vY*vPYwN1Q5lZG@9| zv6sN_gMZ+cfsi3_1XP5VIS;S{Ti-b2NfuJaX4M`_tGt8TDukI_cqE&8UqU;3#dQI@ z{#k;7OM+fj^rc0ux-&FP2i1CtG+J?0&!D}x<~E?mYo=(W^XgQ)Gd4m_O8rL5KzCyalQ}VEb>XeLZC$$ZpkbrDYbfvgeemgV9yW5DbuaiP_JY0r zpCHQ0=VAI~Yt!Uq$Wc7I_O5m9TGIT_EBF{3yFTU7IbI1o7YD9zy_o*szdWsD0ZGJ1 zN67ovDOlbD3#Ya_L3)u@HyOzmnvr*@VnaYq3SXYq5I9DDIpG=Y+z{xJXtKI8z{Rmq z*erciw7}Ib;BUG6y_y0b1BC!QoCNSz^i;18a(fUHNt`B$ zwhC^^CH0x8E32+E|0lKW1T^w#+psaolDVg9><%A zHQSv#m+GSX!7VPV*&f}wRJWBsO~e`>gPltmTs_WP#M%^=rH%(X)nUMS#f?1HjZ{CM zC*8j6=9~#%9_QYton`~S zpndZ0jd12MP0o_sJ=|pJDdbK`*4_PYJ~qhRP7jebuxMZbGZo6ISMvLf4q&C|iH&SHJz-qgl zCegK3a@)pEMm#Ynu!vZQ4A`SG1D!|l_yoVGH8D{b5E|(jzD*y?fG}nm;p}xLjDpIk zFGh?6_5)yzo&#LKM1SSfhuq|iM^BdPe`E_)$PGmv7i6LErobYl^XFZ%wbf+2Ponnv zu1ZoeS}4oD{3z6jU69No)Cg#Mie$xc-^L#S61s#NiS6AsqE;M}?TO81eow0f`-v(R zE@7FRNl@7qI)h-N zX6eIi8#R8m(Zz~RS=nm00sqT+Sm}*q3b$pdc*A-9=8AX+4*Z#4KMAD+_4_!mkeRr6cB z)*i~VA~VUl*eCHitH=kCJ>1T26bs}>oH|MgZ;CfnSH0-LnH#w)*(Cc?rJJyR7jsRH zDT~KYFp8(4;&|0E5D9V^qv)}xdbAgu1JO7#2-7_m9!RiCGi>Mc!T=Ww*7w33(i` z?^eC+5Rq2xu^>^9f_LQlOqReR%^(Oxdj6q$a8CD1Rt9p?#FHdF(Kj?K+AuA}B_u&)ZpM*;G;lQ!=F!DKMt? zcWsQR+exv`f)nt9NX(~G{U27l{tvGINLu1seAkZxzYWgodWs9bF7e&wKTz{UgAgw_ zk%-^Pz6X=59wGbkaqbE;?Jy2LiFZf}M^~x`*?*IQZSckCdDZ_=Lbmpw;?sEh9PFJ)1?E_XwP;?_y3)NMRDHWIg{aBd}2Xf)sf=0 zz_}EgCeb17X<}0;{w2s^(i;yXaLZ zf_{X?w(ph&=J<^M!SMH`k;48Yuw|OEU%K$ZKGKSf&dorwL|!uJqska4x(Z~YGn`oM z?G%BSzVgWGvn(to&_dk z56>)#)O$QbxZaHm_lB|#HS8E{^Ovv9stisDU(<)bk@9&gfs^^WRsgCie;yq=0#u%T zO&(7tPsP=xr^Z4xt2jytNfsAW1ojr^b*iomw1&ttfOpYhj2ky!ONLLsMK z1d*G;+j_h`d_;J-*L+uW4KW461u@(uXuUka%WcBtJqgX|LFgWyy4}SZ)$*aE{ohMaesYGCifZB2$LjQK)_2SsaBHC(zRWQ8z^zR z{vvU~YKb^UB0eU916E~?69U%qHJwSL_^I1iEo-uRHj;gci}L$*Ko0<=K+hNGx4FAS zAy-*FS6OGV$8uf9E}+0MSMa|fIgTjJ!PyeASRy6~1^N0imesSY+R7g_*Xp^}>b2S$ z1BQI9oz+vRCauxxIcm1mYZ>b^LI|hsI0wg#JVP@lSW_B{IUbhr09e1VuIF6duQTQn zCSmP&k~-HM9@~=f8;w1}fxX+Q+q+LJ618>$a9Cg8m;R#e`DRW ziRgZBua)(@FIdluv7Yy)HR=s(zL*-(qVVTK=JkXpC znj1gR!yh-TH<);uD*q#E)CY>GwF8DTe(2_F4<8vG-p2@&RsTFzMeM))m)QSce??Bc zb29+@R8DTVx#knNHB(LndyA)@Cchj@&yj7dx@x4D1M+`FuFJlVu}ia*Jf&bJ?^a`Tgv& zX}5BQPY$fgU&dpg;5R!DR&kOM$JW+qoR)61p5R<+#vK~#O>aq%F|%{gv|*5u@u?vL z9AmP#nsB!Broo~9s;vVAtk9sBqOw;dl4Uq+&5`7jHTlLSohd`sR?uzbcLTrtd9xo; z)MGfQIXe6IDd9*;IGhr$PYKs(*xT3qj`;u_eXC5moCVhJO7pGZJ5$1w+QOS$?q`#S zlcYB^D=$KkY!|P@^?_O0S8E<`7M10QDkoISI4e$1xGsAqH5aC9&UV{#YF}Y1;Sk(* z{{{9bTPN?0jjhNzsy{36y*t47R`^GL6h5~De6GTe|55n-4)FO3@BdNw0Uh9RM27y1 zAB7*-0e+yuzw7<6`WAJ7FH-oYeiS~`0Y0Sgl|KqUq67R0g%AEH{OAtwqZQuwqwwR} z!H2JF|7~ABv0Zv?bfV&0Vf`3CrgVUxqVSLWDE#zx@Zsy)f13lCNq?(Q_)pbz(d4&% zd8ULVPVKSqb?v|PyeUFE1)HD;Byc2QBEc>uIGW($V>NaJ!LLm)L~w@*77^TRf&&Sz zHNgP{SD0Wv!Nn$+OYnIU>`m}V3F6qM7PFdEV`H<4YqQtHp83)KHC{m5&-YyT-tG8R z8#VpQ|D*7^9pFv>$~Zc_eR);~ezyO%mI}k$^g%-hev{s{eL9~h?L&R@Q`1A?>)L&j zzgud0!*zVN&wup(?9cu&elexGt_Yk)pM|fZKVOynPRNHe>7Fc=1Zl^eCMfOrp#(d$ zV+(NxU+R1_#F}bAj>UY>9OC}!Bi=*X!nM zoca2j`5Iwz_PfvIe5y#lXVwoezmZ(?`-s>4KJJm%e z&XJY6y2lu`ZCxklRRH#*D^6g}bILg~J7U)J-OHIAOJD*1UA8ZZ!%J?!{89JcrTekI zos~<~1H-Bt3l^?%V&{Jx5McPp*@=VhQ?t8L5XZSEl44xkow`h9K<(|B^>bNsR?fM< zjqdMSe(|V``*LQAH2BZ%BWL^{5pWg)t3ejfJNamiDN?3@zBdC9y2L45q^5Z`GSygG#c~z2E-#c3)!e_5WyJI%Ls;_)Y_^C@ESOWkjuZ2T{W93o_C^L-q!zC%Ee1l z{9eDHMMVJY!aezNnHKlNA90h`k)&6BIMnG>3ckx=hlShj)f=ne8tf4c+WtQ(E%4&qP$9k8QyG-I#S$%GN;3^n zIkxq33U(fT4T+8vK7OX#0ls}nTrJsXlgm|2#@1uoV}RLl-z`$OK_yJgJ|)L(Z>w$` zxw&Ox`&ryFaVPADuB9R(BC!3)rfqSh07=a0#NhK>60XbJO&2Q*Kbxn%sMIe{nBH&C zJt9in!TAAB_TcK#S8!2B+;5`JEffH$>K5pK{WL8m$=5w5$H3F22Yd>hdLNqYzwQLN zY;Kpi8|^fe5N?Q+>*V@LnH<{}Z(I?{xbGe*-uCx235dm3>0sf{S?D!9e+PQp27sOo z$0QoR$H__zK;kPas0J8RuRsnNpwdxPP|4lR{`(SmRK6Za;@K{hiuk%ORW_)MZK3r) z`HjdTjb2zIjc)sA(a$wC>Rgq~Jjs-0yo;4e7guNXPin;4{6*_Ai82AkfdU@K;M^b%t-}3~@xW3okko(Oqa*L}m}- zLWPZt{TIyCNwNy!IzCmf_!NR||1xA<(%^1XQK(#rG8ayKPEvxUxm1V@+Z2V!gO|GU z+y+J|4^_149H0bZ3*4A1e#?9g)5g1ri8j%xmTpGYi9F@#zv@)9ew#A`8SOaEsXD#2#R^n#UHjmeNwajaL8tw4_$=1=$d{_}h3Vp$eE{ zV5EAqJ}QV#d^^x0DqA`UXnhE5+OS-=*a{fe$W1Q1s*!mzfsA2ICg2+@0sbY|Us>9k z9ObUu-JN7*V}jM1eYTrvBRO09p6hmg@K-flKhE;`W<>*az1slnpt1u!4g{Ed2MlQIcR&vG z>=Ae_uo~#`c}z{-`vw+$5(n*V!qb7CzWWrBTwKh@K{xwm&Hk}uZ%5BJ#7tVQiH(vW zJ7&me(WupmG5a%#qlH#|Gt8Pex$<*w?g06@CD$uI=jHm^|jD^HoIn^4MpRve%%@>ILjK$`w(R{sTzSf#A!AHKWd_}8w z^Z$YPA*`&YjI8fOj?X>57kzh&>B#4MRIh9IeI?iQKww4#V>EQQeuVZC-YfP0rotU) z{99G+?$nX^ec`~vXAFW;U?*#O^hzRRC3slh|&No z{9G;peM#pd18n1C;%waUzV89#kS0YzCODnoGOq+{t3?bV8MmjWb`3=IakX)wCA#HS!|;+G@W3Xucf2Sf$;4b}xEK z?QTi4GcGtsTE4c35r?#%e33T5eC;)mx#nx5`SS9`6OI|L@X4c)wK7&kYxjdqeCndL z;~1le@|gLe#4Tn!MsEGOYPXqUg!$xIK$%nq8h3RHRPW^dwZ4BoPJ}|oB|I@?P-Z-Q z;IK%d+^@WcUddwr`*;jXcP3HCSbW9&Tc&8&6xm8O@=(l zkQlxuH8U9}CZdTGgV2P;);6Ij29B!o-TD)mx@>yhlAam&ZJg}$w4N-^^0t2sVN+KD zS*ReA1*Z&K=jvjeY&!^#>;}q|CSTT-0%Et z+;=S)jc&N5n>1=)zmmf(%f@&-gQlhm@%0>;#2@JtHtaDQBL8n`FcOpI*FKcNJ zuJEsH4Mc8C3zavAZrd$UGS7PCKkfoVA)w$aDQ7o^=M8S#FA(9e8-_>v;2==d!adk` z=yZ9pVw2M$&i>l&o~y#Q6neOH|9tM^M``#fP818CP2_FCf<}~((|n;Pkxmcx{VJIr zSR}$7ct!qq9&dvh4b8{yvX{lI?deq5w&zbez&xNj(!&4u3; zJmBPiRy4Wo?@O!>ojOl=LNm!c!Qb8Ov)uH0Zet)E6k(40_Wnwi4dNAp0r{oDu$ibf z3}cfRz7fHbUN0E97_5sTSYV*zzGn#_A8VbD_T`BCVf*d-AFCfPE$(w-7k6XHGRlFY zn=X;iazcI$tsrzrQ&$qYlelnj1ED`jYW!`S7`n-`Lh&^`enDti?rPq#;N98`jeUzJ zoQQ4CeIs{02Lj`(Y7Yo_yoH;}tUom7w&ZTK7Ivhx9skW8L*L=N<781S?SU@)m)|Z8 z+Z?c~GHc>x*A`qr<226fTN6*u{b{d?f%5z7UKJPB#IL;ef`W=uV~c4t`6#%cqGwHf zjQnQR#7oAEy4I@yD`|^GueW9`9w9#&>OsJS@eF2&CFNz_vhrY0n&?baHjO-xvguMZ zg=qA}dtHt0Yakh@oP_D|UR`6wX$6fq0cUmMU>iwS`hbY^te3t z#l<)gj7HVJWnKs<17jnO2d`&Sr)VE@HXJ1Y98LNnT1lFBJ1I3q14ZMcv<*B z=DI?uGm$F^Tu@*=++39TO~a^niv}KS82esB+56ld4T_?Msut+`C*4jt0dZ9HDoUbY zaCXo>PvvuLo+6ew1-##VyDq@ z8)FaYcVXw_)k`J#ceyi0S@h0rK2PjdfV&k~rZs|}1D8og$eag+Rrg(6HMaDiEKHO( z@{UIT3I8+wk&NAH)v@F%Rgl5h_Aj9yOMPhfW#5`sQj@V?mhi%~l9^AQ1X0}VK-(;m z9^P|S+56$uv&O!c$&yD^W6>;h71!z)9)~9p>(itDruDV`pH9?%JYP$ca$}Pa7U#1* zdduo-KAD`#QRh6(5F1G%r>`54{zW|DG*_M-D4sR`-N1mui0@?drL*!I85I4;p(&02 zpeFPrq%v0;;3UyZk?bt_v5FCb0=ItKC7&*yWokQOizFA%E>$Z1UEBm-X_ic^3rK4U zqj>jIBi^MYtc9cSXENixKb~Xtv*k6)m-GJvZdlDr~q%kuI%Zgoy3Va-elaC8LDaWATR~*;2|8chDhd8j3&xt z-H*&=;i@T&E7J+0GZ)F&QZ-+Pl=ylvC^))L8^wLs0YD}vyeCKeIon^*)3*PW952vU zpoxao@V2Y-GcwaWvqRyraQB`mabG5Ajot9iuG%PZ-)9p` zA4?CPS7r~(6iQ0NlQ_%p6%Byep^4`PMv7bou5$_p(u=q}1pTe!!BgOQmGu`6p~tO; zDKLS$_m>)U;q^Jk`imb@hX-%KYyRJFrWhZz_4JOSg zY5FX;r0WXn`L{ylO|&0xm&!va|3o;obv_zz_%Qx!nAY?Oupi1>j>-d`x>|Cjb@yeFKwa&#d7f=>pGSR?)2Zf%%mX3o{XHC^hq7DPrBa{^6Ialg4hvzN~Nz$qF z#fb3z!Y%r9jQXP#7z}?+c{JjpYn-S|O(;?{6eSKIXZ>bnyVY=5^ce4#NOx17cOzAJ zzFZTI#>hbU?LgD6Qvzvk^CIq#GBeUAC*Hj7kZ>i`6`Nwz+{h63@!U?rHVU5Z@VBerRpfRnIQSTjPCh*#STFRv|%|ZLt%wRps|CMvC2jzAR_j-b$JuOQF;6d3E4A@=5!Pf%z z<>{g!ZU2SGK)RS-cPWynbLcDSp0Z6)Vq0an5@3#pcp2Jsws_^dcx9vW9_DFkH@lR~ z+QZ~Yaf+25$K@E|X6X?$5|@O~BTb{qGsir^;lAR`@4EfGyrtcR9>Ig<=kgfXiom+> z-M#^lf6Aac=mRF02&;c#n(k*13Jaw5!kbIGin)toU|o3!q;hhGPC@fARF8;P&Uf;X z6tkJhT|pMQz({AI%-q{L#3|%te=7V82#ntxyqA|H$7b!p@S(Pgg)`G`ATexXVhy)6p%U*LpQLHk#EnFX8WK8^ zC%dW-%0{5rivc@5FC1K>2L)8k`F-i4h~U>qAq$24p&~{$vhvC}Pmoy_KCDa^M!;@Z z9j{#LEWDt-e4I?~HZ}Yj+(v7!ipKk5?zQ3}w zOXsuW44oH3r_39Xj^gmP(yj-jADZ?u{n`k|BB#4cs$QBA_f?QT(Y24KvA#uRzyPvcNAC_6)C?n>Kp@G^NS)Lh#1NL>9_3u<%5nflbjdFJL90cx(6&LGO z88rvTj2d%6#ekZFqsCl2rXs&!6*1S28O7@r@upVs1XzLl1!mKie-c;u<*_bEfVFV7 z^*k+*l_&MafKz$A9%||uWyG!QP5c9$-1wmyZw`})+yv|^v%;(OeRUj>pEsX@`aM}pie}fXhWnFg0r-T6{%N1maLqyaW=fc|lV@+%F?wMqf z;p;UC*#1HpDda{j>>kBn-aZ%2Vm;5e&hNVKc>%s*UDcv>RgLSa=9Jp~w;s{5uqflc zUn#<<^X<+yy2eSI=l{ZmHqrlt#fEJ+BIf!c}gIUOI+AlOkMbwCY#zkcN|BNn0 zs;beHBA&c&re(=27m^uqs!eq4`UE*Hiit@SGxnvT9-;BUd8Ky0CFFq*_yMRtgSIl1 z-uS)g8qjgN0@qKJMlHwW!vZfUkCrsWb3@_!x$Ga(;&KX#4et5;AhyC!pR#6`OURZT zZXFSda%L6>B<~{06pl2Sye<5YRq_@HAMARG32~T@%Rm&CTkG-$5HF=jJhy{r`CO=% zC*EKr=azucww5B}d$D36yEot z89EXUDVvREN_>`@PqovMjbyuHSl_>bM4HHLH&$dgJ_rZfM)KH#ZL$N>{(PW&UQMjD z$4I74ID`I-taq1i|NInYJR$b;_Cs(ad$atoU{q=kf@;4~P50GO85bC4a)_g5Z4Pv^ z6{jqRFI4I=2N@aO#Z3BYl+bH7V@1QkFV%BgVApOTI~L!X)85~r-TYvLP`(`y)g$go z@n68L1QqT!qX`6I_Yy1eco^t}K`>F`>Ni)+fcTM0(atvF*Smn|jYNwHxZ%!jMGbd$my}FN z$&wKNv(cWlU#aaJ5;?|5s%E*p;U;qE{=ltI( ze=7Q7M#Gq^yj6OVMLN$MM-uQ!LD(zYa;BL(yL(v+-fx3YC2N+e9_*OZQS~CwB*Tx!!(3< z=x+WS{w@Dqv!DO2KWv@%MrEJhaOrU4w>;8)-dgKV9H;VK@t8=yH+@#?Db{(*Do^`O zt|V?UiTx9aWCF=(Al-i4yG;jkrlGz575N0PY%Tu^$v!=5eu}E&h8bGyrVW?-VA8HE46>&!7wu06JF0qz9m$? z83o}@@56~iQ3#?gyv2PGd%Y8;D4kpQt>@W2;?kGFmxiZv!uI)fq4IY$Qx7uGrjnzF zbd(}551+%mo+X3cs2GU!R6JaJq*H}ednCQ`L@rH@cv{2oj{~(M%RI4rWaO6p{P60S zJOLGWMMS@~Gd1R2ThvP`+d)A^QmR!k1=LpEYAR1bR{hCn$zXU7nM=y|m6Y#SLwtbZ zr@lQiX^)Wg{Kx-uWr27fI(?q-h)h$JtPd_b`u|4%Gg#Io@ST2f0>*3iIW|1HC-tO%M?00KeNdXVw`9=4%6|v;Hgd^a4wRL` zyKjbCV|v249Iu2*g=smVbQ|>x*uS&PQ;W&f&KpXnzbbSk=TiG=d$Y*>oL0d$SRWm_g@M2z9*(q^f)-x81oPRTye@QqJMn28aINU zbsDlIYcMGZf0vVh7rRgZuZC;@U0?r8+P=!_Keg&k=CU$uhLKu~nS|RJ=Lt!=5|h!o zM}lTD$@?LiV5X*a#`~Ja79I0ZF>Av*S>@|N1J;{n;mc#bWFpGftS=Q(rdfQYE4lU3 z@%Wlx3iFz;0m{zc+|o$@=U8fLJ*z}kl0)HOb(=sW?l&p3Z^_Ho3Y7sGu>0gihH{Bf z*J(RS%8ToHsojZh<+AWR?<-=;F)c+nb`-qBgk)`LM6V`wZsXoH?!jHa;h@?>T-*4_ z3NB)Raj@{KFQD1(JM9XcV<0i#zboy-LXkA{T-kEHa>T|_ zostM;oBQx0OKu>-`Q=UBnI33`RDPp+i%EMSkI4h%k~J%lRi)QgNri%j@)g=MZT+#K}omD!*!{ znWTw08FswingIN6gOO9=gMa^L9Rc6NfET$l*&5w1I;?bd>8OkNrF5M^{vUUE^!p6f zgE&CO^#kK@&c3;cYeubn-}?{Y_Iu+p>*sP-P}Zu@+QoT2CRp;MZ5v<$LROZ{-EN3O zh@)jHpk-^Ft4_fvi1Z(r&Xs8YK;f0xH{|jD0*{k=tU7%VCH#1!aN3?Uzl6&XndmX^ zzb)i0`2<_anD*t$sytInoo83AB_tg>JhoA%z6)fzi}OF^Vd{r0hL@@AB!uz9Jft|h zg2^2X(*>ybdfAVuvs8LjGjc;eY1hzkY0wWZ7hjHpP=cY&5}hvZ)P1iyZ#r8$Ye-iU z{BxpYzG-&BSRH4PBjIFu=6Y4xrEH-~!6FnHwPZBQs$EGnQ$8wNLA1`FWi5@XQXpZB z6k+#WCcTzrF{^$yMa8~S65Q^l20^mJ?LS>F=dCNktIGaQ1 ziEwrBe}ai>UTBC=FGj7aQo_C`5L7envkA!Jgzr8Li1XmqozlV?wwQa=CUtAtlz?PuR+f>F2-R>fN+fECA*a1K;i4`bT0vN8cn=x6SfuwUxtN{F zDRO-uXjPMmtSu3{!uj{xIytFXF4j-``H7dC-iPxy3IzA?`!K)qHznooO$0PCezl)( zoA;HOQ!^WUGa$RQmGi`=x|9M_*J$<*RhvpL5QArUG_7*}aH8o|%S9`NC-MHpcpe{- zmo@xn?oeGZpIorS<;Ml!q?ZS)2 zim?5y($Hd|v3JKIqz~~GtQ2vP#i{p)=>D}*zh1&(VUHuz8J|gBQNk($m$}8-{!t$* zHaGrEQvogbA@Y;6lu{u{&v-EU?Ih}zts;r?5%*0JD0Di~y6jV7uJVcfV;AGQZzd|f zIi)0oyWda9soOB9z6A8YlF)Ce$>cVLIkh=U6uo;!4=V0T`J~^^D=9ywr2NYClJXlf zOUh?tF{VzZr?Hn&jZxfyEDN1znW{N_&lNKRkC;x__J^FtYS)QcmS@DODd)8a|1YT~ zYrBGld29pI*g00t$h=%0Bw{ay1#%W>8(^JlXN@%Lj=Cf-3#_ZsnL-^qKNk-~Sr zl78k)yjz_8T2Ephw(mU>q)G8Mixmmuc}veQAOClWz(Kd$8r^aK!RwtroWJOsoQIt) zZ%Av=>Fn3^@GXAOpc0PQeOtGyq%d~GeUph5Rk9Cw9n_<7UpaAsCBj#Xs>+FQ;?Lv| zLG~57;4LZO7ZNAdSC;l&Dq8SP>sdMx3eKg0=7Wc;ALW1c>@S0;MXXxPRcl3nS2@r0 zat(y>tTp%h=rS!!M>ahNe1ld+dUdyi;1N%+eicY!dqNxrMa38>ADoc)T6P8tepb|h7U%A^7H*8cp{0SSs>R8oxc|l9g7?9~ z-#D>Vu2K~jn8z-Kn&{9e!gpjyZuW^S1E9TrR(Xj#&udP$<)07}P#1z)MeExAmu%Ha z=~i(-P{P<%ZaK1t?k7%~zW~K?s-~mCzLKE~z_|*@%-MhChniIeBpHI^g?!?dxCtiN z{+N8}F&5(#xk=SGj0AYnT0K>Nv5+O|DLkG*uxh?I@#GK}ZbYKy6*Qt&p8-qjNwZ7r zDv$H0Dinc@0LB|R1TxR6`waF1IX84$%UT#ByGx~!b2Ce7S1=7LYpK0A)9aaWsct&4 zav6&B$&}UBz|u^B*)~mCpX5aZc}Z#j+Y=@6<)QM2byH(C$y@5lNrQzFqmxg(gI^xTz z(lTfahM^}FKI(Ln0wX?OGR>Tel8qoyX|2mOxmQ~o^{dpkuNE##Q>5NT` zBC-w=WRteAmNc1xut{%r;yVd3>S~vTievYTP2HvU!aXav2H!i@2l)sY*ZVU-rYf5K zZrN%_ATLpTlji8e$G_kM8FxvII!`w%-jecRUhJmyY2CrQcL;^sc}?ULxdK=ZOW^Y+ z2N>hNuPy?=UHAkxm(xq~+y3(RRVoyz4F8ufvP;*&DN^FNFJz0-#E`%wf4jyNPEh;U ze?BIxOHCiJiK|}ifixx$^KswQaR4`NtFD%|V~48#EEc?QUI6D`H)^vzDiH#`;J zuiNmU5?nS5K7{%mznM;{Hv^Llvl*BhctT_eej5eH1 zy-dZItxZ;ZXQNg;1@+@?s8^Fn-F1fzN%6NH#~{2 zslBMA@*dIq=B-rG^QGcj3#*e=KD0DZ>*q&zw)L_-Mz-Llb-T*1aFuE|_)e{*J zuRYjJ&ly-l#bxaNBo+Y)BtcB-ouD;kNa{6-)C`mQ2`$u?Ix3Oc&7}5ghxyhHsa8A8 zcav%k`3~6#QD-B-AU5}WwRR^ccIvn1OZ^L%FdVsT$OU$S%Cj=7{8eF=91c5G*^QJ< z;&=-8ENODFCd-1xi(mq&*gYQsZ9|K;m8_+)wr0jlR=M0=#6t{8%&X_Pcn)K%OEJ;l zY?w@n{|bgxyen8@VsQQdRPzCqX5%;$cGPf+Q`-WoN^d5(KqF*gOSHmW5-PtdGt{($ z7gASxoyB)BcBp)KCgHXpSRaE0gW|N>P zsyuO%o*~JI}6F-2k#M4*IE2+eL=`cc=x}vjMK0uf~ zP;e`=KcUXldnd%qFIdIuyD~+)XIVHVJVk%BxJ;96Nf?xv0TeAruzFYucf`K`>sewA z2sHbl`mnoXWg0wwtwzt+y)RJ(66iY_aA=UN8paWM{i0^MD8e>{$#Tij=ik#y!feG< zvcJXSU4733Q7HU2NSP+P>p$v#LoKGhp)JULr}-LiYIuWGBt;ffzLYq+eOERB8e?~7 zh{yGBLv#f*a@f#I*df_&SD%{)#~^>bV`1 zI<|^Q%C@zvr!x80y9HQkO;GmjnT84Xx`hc79Ep(Bzw+oKgInRJ8;A)9Bh(ez2Os0*&Kt zHvtYBICbC*sh*7BW;91aWz23pi&0<2U^Y~~ zBjzI6(0z`fdoE#m3cX9NHz58vrAk*HZ6Vgge*c0of7pj(%m9vlsO|^-uUEvzR|d5w zdl48G*ik8Ez3%3gY?W>~&uARSVLBG|2NH~8%s1mSMX~8k?~xw+ML%P|YbTVO&}@H6 ziz}6YM4fArlwQ3|Db=h|=Mv)483ywiI`D~9CJ{g6A~rZbi>Bg?&)3?!b#f7Yu933j zlPR(x{v%*hqw{T&OhGGjI4}i~BsDnOElAfXD2*1r$&{uWql(}`L4YmDDyD1>lE45E z%ab0XmAu0cMAoE##<%>^R(~i zs#SQUQ~VOcknMk*z5-IyWD?+>wH2;HiaJ)Zgg2X988YPboh0NK^&fam#zz`-3~`_^ z8~BV0au#-ayCI>t<9ck(7cx~V6aUe&x#3aI>gn{u%o==(i;gb~sB;qgvgWg;*uI@} z@Bwq4XS9DF$TU%2NiepUpW(;n_7IW4}k8OnXPK?@u~-CjjV2o*mo zmFu@Ok0}0IUe_ezeHaTj3 z!A^ru4J-&XomdKFrF|Hb5|$#UVP zw9{yCj&G?LN&yX~fE)lAlodYeJY)(ev9BEmNEv+?&dOwu;=%UCDT-~hU?aVLvF2sp zi+EL*4DM?+9ONE_XE~cwT^bqO%v;Zyc5$i&T& z@vYGw_$v7JEIk&Lh5{?x#vhS}&M4iu`mR^C0EY8kbaLPfW0OC~b z5NkK;tk85uSjZ|M5Bg}X)+3LPvP&+lxD52wO_I>BtKt-~keoI-%@}es;~Oz%m4eJt zSlsu?$ujd{FWMg1oe*^>bdn)W&k>C2fAMp z`u}0=UErgtuEqZhBoHw1Od!!{p@d%0#EKd#UUDHdgEKHA6AkhT2);roS_Q<3Pu|H? zPRGI6YQF9wy?FlH~(y9S~ z4u}J~+(QF1Do)BG2Qv3aItKm8grqnOo z-5X4AM49yyyM^; z{xtRLd$iE>KAsT0??pqlaFg|gk@CH!Q=)HK+I^JnTCvZ&SQvCy@vu zYqHO&nNk1sN>fAVzAX8x4u9|d%U(U6QgW`>_*3NGOlB~g%DTfx|IT|gr3bi`cucM; ze&b!8w8Wl6VLvM!*h;2eNo-}#Uno2z%!=9EX03l-ra5eRlxk%!s;UQt3zR|p^Jd9G^d^Z07xF_jHnqgdEdI zqyAc9NtsTSE$#jDB^&>XpL)>-9%9<2EU0WFWV&9F+S0n&*#tT5(z9Mu=^aj)4leP3 zM-R03)HVW;uhmX<9!A|~uKeYS=fNBe$**6QF81rJAWkXyT{e^GD zyU#{``~YU!xbt+n>UVO&@Y5yas)PYx@G{!9mrmcKL7^QnFgzll7JXDXh#o%7vVfd^ zbQL@27k`Wo_$RLm+zqe!ZyYuBRryglm<~gv0>MnN3Wz&|v`qpkdL)%S^%B7_XZ99I zRqa1IOuD}+F@N~ptPugJFN@Of#;fX~2B+uS0ul^D+drsP+dn3~qBdsJWnMB60qK>Yng` z*Bkn+C6pQ5Udg0Yk+Gb?l0)>KA}Jn9`(utgl(%IgSR~CM*MTZYu48XsjKt>dB>icM zUDIJoYRhE_sVr5l(2qR*aPpx3!P!#3jOwkb|2JtdOdsOGLp9sc!YVNvS0i=QO6j=y|Cj5C+M*7vZH+V^O-g3rpI!tlz0IC@0J@&Ye`dJ4S+`o2fvMrWq#b4&OgfPBy;o<^`ml`?7SE zWP7MODfnO@X%YynkgmjX4tEpq)SQU^jSqmV-#(+gTYMLP<)og{7*^};Tn218cT(hVCpfd-&8eBzxmhew9;!*FH^EJ_ zet<&g6sGgDP2A}?sm2>}7nT8MCF)iEWG`Pse|BhSNl9g~RafOqY3YRsb+lXnf*uA} zsztqXYujL1wY2BkvA#Ew(R#0%!n+TZl#~QM5NxiI_f7Wq`xBxU4eOeu-^qP~8?0Y5 zn2C7|P8u9WY!4^HsINq2K%)M|@D9 zF>G{~eu@g&jljxFAyBJktY9SVo^z#n$^M9BCxz^L42dlMR_TrXZ)W1N-dAya!7522 zV64gvgo_|TojA3A_VnrJ3;Gw{Lpe7n6CqSwO(n1O zPax}Y(yX?wa$KU3c&&oI_SblRJ(gXEcan|F7a3Br`^}wkT{*V%6#gB&)?n4bYEV8o zlj&OZ;}j$KsQP%hI3|ivs9!B|4)znv*&vvrQ?YBg3pmS**0q8;3ETKWrz*RnPPpmFiQfNKV2es z0$nEik;{!ox+}h3yjzqa{76$R_`HfbY*fC=C}`CDMaU(A%0CbD^M7aH(IAPl@W{J9WFiU6N?fs~Y4SYN+@#5|ss6vFXbb zJ?TeoY%;aXa8yUW$5U$Mmie-aQandB#!|p$Ich;b7<>AbIWwCn$X5n@FMLi;O5lR% zb8N<`KKdwTC;cx;YUHYaPAdJln|@g1K_9UF^&gV2xSIw^AxSm^Wt6T~a)IrHE!I2d zP!Nb8rjWvtXpqHyrJihEkK+aE3HQ5hghGwJBS))$hFU`umyx0mJ4i)WN-1$$6Uw}p zF`~7}f01;t_~08>^`pVMMAcoqMyZ$mfBdfmQonpkjUwb%po=90AgH(=3Q==mGlO>I zM(I~tH`V$lw39*s+mgrEAyQAMc%p9L-~UWB@JqV^b*>>US{Vd(W{WQ)x7AZ+5KDAt z!C<(5nKYyha|n6Kag1=z8!Ap({l%Z9RX$U2z0<2L% zl{p#q1{glwWiY$tc>xH$Vq06cpO%uLOgDJ}uh`COe%_X2Y@+T()XfQ?{wurc-h}#x z{{>r1Ny*it1FV^^OUJ@F*@=o6s?Ng`qi~68u6T`55a($i6dQsspNxY}{6%!M-4KO~ zKcWs&o)84K!M#G4(sYM!Oc~A01LUFAjg*ix9J0CJ|AXhGMum9L^_&z76<$YFaFwF_5d2>CgtKUwY0ODduO<}; zZ-{5=`R$)1JKF?`8rDc1q0F6-F`0cj^X>9bU!&W(ey?+F(zz-U$y7Z0h6F4Rs$9j{ z(zkDZrRrS@uczMOy52i^=$>v}Z1#PHWlx)*SXK zxB{R*$q2`zdPB^zQepp30jO;O4+{-&;v$=Ye?$>=e+vqV<%}ai^Y-l`tE!62xp@T{ z{kD=^#TDeWrvFj~qW?-7mp%8~aq3PXVu))|-dO0g{A%_%MwkPe6@Ag!E>v zRH7^sf)Kir2{QKKEW5r09rZRU+9CtZdDDL;%9Pq=LOH9%t9B^!4VkH-{%eFTX@9x0 zR@gQR(P?8jzXWT#@tnt0nf~QurVlcNRjZTyvPb{$`04ejxP8YZ=UtH4*GjcW_fT3> zDx->i7V3XF$Bt%2vM8fX^|Y6Y*73w}5=`4YA9?S{DJhVSY{jaa$hwvUq( zH{65?t1clogtpsyhPO@KGusN(Qlm#jl#rz~Jg2w}U#lsV&v9oPd*2GBL!~xzjkV!N zVwe@5hwA)APA}rcDr-Cws5_jQhBFp z;bTFex!Ss0wV>xSCp>ai5U=dMKT6boZ#UZKsE2jWkFfiGPwWt$L|bC~Rf+G87UM5g zn<_P0efM?H2+=k{>^@SlkV^#tm-?uU9^wa`S2+;X-k8|Kf4FY)4hLr(O1Wk~LUrePg{W{yhY& zR5E~A^*!#DWNL3O&XezWd+VwJytArW8SLm?5!{>E^%^55W?}Aig#E~Bj}v$4Tt^78 zro6`W<|=MXlQCu!t634GwYEtZbZ6TA!tZQ~fGmRZajId)s1Mzgy_s%Kpb@$Wrt;#; znP^owD@FNVOpLeqtCMZFsic4mUub0tD~edo#X?*-eF^n_;V){KA9bcw%L@z*V(UzMaIh@pFFdiyf@r6BeQwN_&c3^ta`4{ZIiW z?e|nGSY{7{@4r>2WE;OmM+Q=9<)_srCh4z!8{r-;d%Q8so@Bd3h=s$myN55~uI#w5(*UXkmlv4=L zbM!o%^QO;6*Ks??1agQDB&5?sSv*52>-8w9HBrxh>w2i**%K@1kyOEaHRS!j_=A*% z6-<+NmXO!c%{QnJuwS4bcGJ5^FzLHFT`Ch)3z0G5;ahdDzLMR8rk8^%~om^SvX?|@EHHv*C8%I;d%7)@zHL=+2 zQLgYKhi7wVeAVIH`_DCAseRSqU}eo-+4M?0Ej1M9%}q%O+*$0b;ZYII6X6st?jS4Z zaQ{lxC5Aq~jfF&i{onMD>(DyS`o28U1O4RT3|yqDb2_Q#dr`5A>FTB4bBgmG7qy~J z#jaeVyLP2396U|ehEaBn?plfNT2XWXg=y*A&a*fpQ}u0n;39cA1HDvU)oymnUAmw& z+F3PPIgX1JjAd_y$HuC@NuS;Y;NInARLfnsSb3Mrnbx_(x5v2BO($)Xq~TRF-%XkI zLq5#rq(#5EGr95Pnw07ND47pFTCOB;tK=&naJK~V2)rbL^9j5sfpd#hnI61noC=3G zUd`r~IjYu+pZ!T5b5<%pQ#!dC;3(j&VThs*UwGD~>W(%B)zO_ntDmtIQ884Kc01!6~IyCdAIT=EQX$<{YLdV>JTis%_DPn z#rES^pls(a-sq*Sr0;cMiIwSoSG+#yD! zdKGQ>!^Jy6g}>-xGckTZoxSqkpY@K_xofgEv zeL{FlEoiR?<70>5+`fqy{_G*Z+|0V8vKFYhWx?7+cZ0PL z^abx<3!=L5Wmm9Pq3VHa3J-ClXhup2jyGK9)h(B+=$8DjmremeI8(agGyV0_w|dn# zC5@6eON?qUYZ1ybs`HREgq%43#FFd|-O|IwrwhhBu`9c{ zaVa#^=?M>GMjSDWd26KMSftc!^i}OV;0t>X_{_Dw$fv2kSRLmcjOuTx&2Mh>;@Xy@ zNXFE(r%S||W}hGDqS=fxenyr#`5j-D$M3|lE94?-ZVMlff}hpdl3_L(Kt2_uN{xOgFg53gs;Rc?wot z7fvm4o9`EHs+kl?75AidMH?%>iuNMa20z`HCk{4Tk#9O`_^$>2!yS!z?mcD(2}mv!o31QARXgqIZoDg1d>Y^ zlj);I@KNIweAFm>)SQ41GR!7JdwfXN*%NC7AAES<9v@PpUkZSar%%L()J7us2=vyt zn6Gf5^qEjbjnQOg)Y!pZLODz16Lues*ZG-ercQq z&k_$9lmFJnesiwCk5WWFJCiT^=XWL0x=K7`2Cj_C-Op`|;~SinwPzfvl+JAgJCfPl z+BdeJ4U?74#w(3;kM^1qi_N-f?vcDXqK|$;6DST&qq+lG38fpsy~M$QYt;RpN~O9Y zx{0{CN77XpalbtGh*QF9i-x>+CGr~8e<3-+n8yRz0#4b*1ygqoH%eEp@1t64J0Il^4TS@P*m-{dGj6js!ZnVe8=N@#O~-LHe%H;l_^YV= zQFJcp-tchz`#RI+4OITPec~Y*-_B!kxn3T@@vp`>#i!gl_2J4*NO>o7{%4$rU-$5wy>68To176tPM+BXNFUIMWShne(7AW3Ag< zOIM7nF7EJk$7o%ofV1jo=h@tF)>N4lZ5Cv((;-4=HDOQK6>}YmbPQbMG1uakxntob z0esy5zyK2SjTqo6_u44P>O!Rgn#crK(Wc5Bu7Zui_@`HT%tl?o1yVu0f0P&gUG8s= z*O2izasFnh)!%GmFU$Wp$;3KUY_`TJvE(8ar|0DDk%+|;dtIvV-akMI_U%g>kC-=n zH*yo}uMysg8+!P|slajshAoFoU0@(`6rMc>QGOkct65=w)G^@lo3#LoMIdslaJ%?Z zqd%!#8GUyLI-Hf-A;zYxPInb;uiWKzG`kA6c^%;7NXL86Z<$I^3L`)|NJfdCKF-y; zO+>$(_mlcSNS0ghla&gpobJc*Z%u^$#XCGP{1SuDd43P57#-fHVmM`1cT7g(pYGF8 zSZ65gCb+MhYdndcj_^Zp{)$_Acrd_&1z*)S&KV~TrvoWrejY9?sFWCUtZ&w!Z3k`n_G3%K;4IPY0&w!c5QS zU|;gd-Kf7nK9AiXH&h%~tOPzdYYI6Z;v8FCCR|J=Sxzhz$_`yWqv}ZKnbWyMhqcdL za>08T)0c=veRRZY&QGO9Y}G2|+^gKq!M;%h1!vY*oj-Z>UUEmlybc zTro(f0__luf+MQbXj;de`1I=&s?>kc)t*URU3*b_imEkO`(Xa7NbXom?>6=6je{qu zPb#n37}ps7&PB^{jo~u}liJ5oJ5IK=&hRs;KT+S~{J!?Tk3CTi7(E4cJ>1_}P58Hj z@f>S@=`v&Zx{^yVw9B>mBv_gKlye1+_VI?vk?R>Y7rkR{HU@v$Fh}%u{)@>sVs)(A z*~?h6%4G)SEDE-T6`~iq=0AHS50Cl$RXn(*-fYxa<=(Uto(xm{*>kYtb74)ew}+xCP0!igU@j_|iA%B?ZT#Me73D%Trht&C29+vdGRZTol+S zOJ~;5G*wQnAjT-65%%#bj=Y&l&?>mp0JPw(#ETwQ{bwRwA(b0&!_v5}LqSG8xvHL7 z-7$i`@IzJBsmlhYsD2l%GlH*5B@G^aWihhfTeW`<7h$p%Z#9;^17&*N#gA#T72c-| z7iNDdh^kwo!^KB_t_)#wI8fGdF2ftu?=yMFFu2R6je3h9>hsdO>4B2U5}>ac)nZ6Zt|Yb{TyH)b8^OT9lJ&29FHcNGkLNG|R? zbuAaOoy&aR+S;P6Ey8GhRV$`ZBBgSeuVRHDSmX4)OB7xv6QOXbj=6@@Wcq_@DZ%XC zsox&ZZwK|;93D2p1eqXBVe3t4+}x&+R&KX%((Xzjh&NO60LT@S-J)O$70_no_%`fR zI@z?zZF>*2$JSvfXk+UQ>9~!pr8=yz^&DZr)-yc8mOh!DeCdfK%H}}JE(u|jN{Rki zrYGjpa$&L+~+FaRxw6MH@h{Z&BsRy-w5dP6G}Jw$eQC_FSF`bP@J^>vjnA$m;#pK+*vC&_!P z{esFt;xL8JVcjlsOJS4fKLe@RXQI0te!5j1gX0q0Yne5ZIDppXjxjp2xBB|#*(x=+ zeoUg8TVeg)zkTM5$?U2c)F-8~w~LP)1#PZ@)qMnsm4>V8jXrY(b^1aZxu$x-GG4Vl z>Z^F8PY=mYxm=!fx-!jG)G%}8;Bdw@MUfd33l94_zR^cUn%f-NV_<8@`uVqA;TF}Z zq*Uz-y`*xuLQkk#F#EH6GKUnFszZH_4_yU2Wf9mLb&%5+{*mh+dwB}nxgnPRZKX64d`M^p;&Ro8H(Q2-y$6Y}8AJK(k& z$3a0c2I^+FS-CE7mB(22ve2*8Y;Jwp)p}fnxyW$E@vR$LyQUm;8<+0%7)$oz(P^FA z@sX=)#T;px+Kna8E+XW1e96?$lX{At&F3-mB5%c)9AC|oZLEhcvL)QFNP&H*eB8gn zn;EIvWw_K$Xug8=7$5!I>Ev_N2OhwXk8fIJ2o4NN!+r3m4aztY!o}dPf5T8#&7=cA zEH!`P^q4cb=xJsT{I;rXnDY<{%F>P~s7!@b#F{;!nLXNLfbUQ%zt3)uFRWkzTa^z* zAm$EmiI2B}uY|W*-zN)w zrOW5Bk6o~B)=%gGgU#*qTv4^!6?<|TMVakwEwh#g#%2|ln$OqJEMi@hVjj=%0Ii~M z2|Me7d_G24{sG#{)jS0>l@CVVEZ?l18*(re+(zkPcfn!PA&yutqq`}zsW7+~E|O$b zj&AtIDMvrcd)ex4O9!RPCuQNtI84D-V&#J`m@MQdGf-W=CDv5#zk9m%b5|jImW- z608khL4PRv#*(T5QoU!N&BOhUR&T|xWd8dq>b(VZ?54bUq$?coMVa>@m4Xi}yejOl z~%O4=lckGi$O7ctsDzBOjcl&~c$1d!df4(6Q&(v8lwWO+@yjsmWYx z{qdMHg-u1;>ZX{!POyIVtwa~r$`*l06ViuCx-Ab?X>Y}gqT6{LhpZ0{iy*9eKwcA4 zvJJ#Gu(cSJP0Xg5s=s$~D2?I!+4oM;f3a5#6?;VqyGz(B4uC2bJ||9LukiaZepN-j zlC^1@y`n>dyKB0jT9&v#jAHo?Q)r+yXIJfOHC*uT(XvSv3e%@aDz(#kiNKNCGE0Q^j8h8 zJ@M$B68!;f(!RE9JbgBHjg#yaGrXXsIx z1Yuj-8+tB`J|<1Iv-KQM2zy8)ETIob{f~PaO5)X*2*Sh)gw==W!!`~|#MDrtEj@>c zx8m`8Bpw8j|109R#^c|Wco{G3RT^hco(<0Q{LJABMN zU2y?(?y-i!ijJuKD`|v!2ZNZb!TYEcov-$|SYci{9kgw>)nxj>4jay3&otF{#yK@g z&nac^VNQ(^b5c9{&*&i23QJ{{UrnwIJ-KWH(e}y@PMlm-f~t0t%Tly5MbV0CAsIjH zuw=QUdNEyRbpa{5_~d+d@_anHHV4YDz8EdzGfBo6>+ul`iA^0XDk-Q>Erp+ zVJz8jrRXDWFO?IHDLzE9GMioii#v_kbex`2d-RkNfZD;+6?}C_XO87cg>=lXjHwyg zn5s(29DBF@9Q%G$_Ceauu|0w}W1bvyfDqD8gTKd_VGSjULTSt^Rz5Er$?1O_G?wgX zD2daRcc&zMppw95Nn_gt^RAX8P)R9}TJn#Ek~i$$dlyU6b9A64j$89=aGOkz${wxo ztC5>`dgR`$k-M`ExhK-2#;-83QzBTE6a>F>B7*;R5`uSX1alH4r46|!wg-Mo(qTsN z)?~9F3xc%~Y>{+0j;lR_E6_}u!f+A~I}yc;Nn0K-_nef2c5COvaU47w9LMQ5X`8^U zCq27IhC;FkQnruAIJvVj+4eu0##k0czLF~#67<_9N}XCVD1qus<(|r{R5kH+A%$Np zQf2zfZa~lI?-YK8OCQ#Btc0pD@8@y!PHGdSPQ4=_0@W$o0$GlPJS9nJSfnaJEn5>( zl^Bs7B3lUxk8oKD*-DI(xiSFmX4u9Fa(3?7;Itk8Q>qg3!)4aG*yVCLYCV{1WreLa z=$;eElrZV&7Zht@a@beV?00Z&PThgU>6Pci<;i6&541@Tr&1+Ej5yIJ5~73=sT0ZS z2>6vKNh+W%`llxxeWIf5X>i%{mUQ7`J|zw`wm%?4V}oleb*CtNDx|MgL4|ZqGrRuL;Id^eH7ErL z2^_~ga=1=*A#2zVHG=ZJ^?!_ix$mSMOLIkbc7UhBdj$VtT1nvl1}FFRIJmC|o>uF1 zFhsRGMT)3xOzfFzAK4fAs3VtukEvx$vfK-imF|UlK-hfre_xQ~UzjR;j2Yi2oWZwC zY-+9&>67O+w>h@qKh*J|x1do=W6^_z`ALoKM6cAgUTQ-EOJ(Z`rjw&h0;?Q?bnhO? z;a@K_?%heA#)KqR@q%{*vI-00z0%U+ghW>Hf_m?BI*-tOTs}wG7hP)v<@CQ>%gHKE5Xn&wyu(GRjyft!qDv(q zEUJeytu>&Idc+ScIGt@LGsc#rbC{rx-llL&g2hQ~2IT{sUTD&%7hb1qlDwz7Q&r>i zQjMJZDCY=WmO9ell~#yxmSwax=k#VL<>QnC)F}r6a$Ov#`;(B&9kruJjbheEypiZN z-iVdwXgtjxenJ){>tDhzz6)PpD}3FMgs(=yS6TD}66mZfEXJm-y;mVDvtB>5h~tP$ zc{8v{SomZ)pusRPzQ~ME!ktkq+9CJ@tZa?LhwbX_=PBAkdwiBbTXKrVSq=e>eV?kg zQFRX*be11TiW$FA22-%AGDE3}%;PuGZD%=zoD?OeLK3)r>NL1@)Sd-)llmLSZ|NP4 zGERQLk673EBGEjTgEjK54yPv6z+^d)@va#(qKC@PT4L7H#|_qRm^LtZuNmS8BuY!(C!jn-)dX%Pt< zRV#Z}M%;uZF~Y(5At;)!gF`V=AFxA%b7=F?Gt%aNz>hkf znjaa}8xSz@}e zQ|o{Gyr|QdC(=-z7frR#i#n6fiw=*bu{QjPp~B5d?+ExC9(Bfo_%TD)8}n7|i6@wJgJO2DTCKWBU|Wu-S3ZNPb#tY61Q ziIyTed45dt#180Bwdt{@%Ej#gI=`T=RhvYE4=1erPT4S0rhca~b&I_}!u+q>DpUWd zGc(PEeN`57$@p7pUF~pp-G2~1#L!BN)VvukI9%#oO6Zkr- z%1(tan$}XA&M1sAp=^u^rxc7e3&u{nACx4sOVszqC*liiC0QUKtA$`eaRDWo#g@l% zwGJh>5o(sPOndsLdJ1J`sAo=?_c;HH&mWoiFoUd15>qMbP6~@gKXw;0{v*cu6NLn{$Q8L7(uiGI6(7B7xZzs5@?`3vq zr2mj|#`X9KD{zsRjnLCtRN1Ty(;H(cR-4V?>lgJJ@u$?ESbrbx{eNA5p9&s5hyv5A zqLU&p-9R>RqMjTx^fTuH{p=Z#r|8~Yj>+TFF7g}bBInV^suSolx-bS~j{wVYBOjqS zb~nLKjQnp2enU`-WerkC+9!6A=^@i-FV9sxSMwA(Ye}ZN_=tncud5>2?45>Afd>mb zoLQ>s^BLOyaBBF~K>}7qm}W$vqy;K8?9=o!=PsTnjIS(zoxKxG!Fi7WeF|kEpJ>q) z?hr^%R26Q8^3}3At2|x6WXLmEE-yL-s50bdBWn}#BwXw) zR~yP`Ac}xq3JY}!duZ$b|FLE%Cd^RO5qr7DDA~(3&ZfjAtQ^VEdut`gAhy<^tF3g0 zb2F^u=ADrn+WMNZzqG?IL@4%`w)OC-kt~}=TIkl=(pFnxq}yqIZq@X*FjYNsa`k(B zKG9(%Z}SsVD{Hb%UI}@7t3WN*rmXU>8cO0&E4mcHD;7IVw(3owNAO1WL4LnJBkb+w z5B4;Hzs;W3TierEzs4bNCm1SZ!B$$a5&IMKxfWeReOFb(vile~5pl+!-V;5^D3r7k zXNECqMm+r@;unAxrf$ z=N~+i>m!fiK3fUgCLGLO8948NNhy6s3+WRn`Kn0@xg`{NH42CqPw%2+&-3 zfC$hhPJ@KA5uoktCEvjxW+ubFdYp#6mS>!v0Ax5kO6vy#Z(JS76-)?-@d%|Kh%S*; zCc{2l0A;3R$@Y^nR;d?k3ktw&0JQg;PGS+5{m-Z&#QP`XYwHKPp16LHcY^$ivyb*l zf}DUkt^AreR^wyqx7~z$(p`=Jf* ztFnsMA}+IF3{Z=R>thGfdf9=V7fQfz_C1d$`+111@$KcCl1oPUF z?$)xemiK0P_iK5_^0$1WC~4#sf%mDAzZuNDOYlA7vT#G7DpSHzSElxA#U?!V19EMX zk|OoKlwDrN^G84@G0^?ncsg0{j36wHrvZpLh!&Sjm*pz34qj3^t0zj zJWr^fWFMT(S->9)LEw^^{Gh_45{A5CIV4`Nc-Y8C0-U@oHnIkg5BWhpTQZjKB;#9@ zS;te>#i$oqlSMcxD;ftHt0Fy+42VY~c;9y-?QEoEGXE6$@E!P)otk8PWj2qriSI2t zkXA1N^s74k?E5B9Tfa)e*Mm0YAsmwEP624+tJ%o^0`P@Y4pJY|ganZrSMYX^LKpGn zt^6HmGcz0~!vkOnqBWF~wU!8VAOZ$d4lc7Mi(D1#AyRy)O%AXp z<1g*G5ei$Gi}W++8U5_JP(Rh0ueSi4OkW9I%d+WXKRF&$2s#Xe`Mli$xXSSGxsfk| zMo{%NY14#?#43?BS-7AWUmAFkb?#V%fB*OFxXpn^Sl zqejo;`k51!rzorQb;NDJ>%2!zLL;BCm*t^TR+5UP?*JIQL7+_uA9p?|IFX5oJxUQt zLTS<3mq_F+B@Ye?tuYD3j+-^jNims)6wjKBwMOA4S8(&tX{krpzoYhSW?y^y5&gw~ zM?|EFj{`R@N27Mp!U5I}9AM?NS4YuWL>#`>CJuKiaTvJ&wCc-*;oVbeK!H#2lLZ{W zq|`EXszXeW>ezXf>|{E90=4&mg!sww0=H8g=J$eFr<~~Lh!*65xizu}N&c5J>m`Zx zwY|TUXUzLGL#_7f(%SaxUMthXy^Nv>d&jSeO_<3qACRE;M zo)E8CUzyL&yXIxcD*~kaVeGQb z{PW~|##lIMxs-idULX;*ZXL@2ly8<8W?%VH39KO?JcTppV3ZwEBPdRT+hg@Cgn9D* zIP@Z>ls0^_AKF7Pg1=v{F`D^jJCO4SJJ9nPJJ9zj2^h|Pzv7v+9wh2k;7~R-=QLp= z1NbXbq6OM=mhTa86kQql>m;mDVB~L=FrQ-9pSf(eE7{+m`yoFvM!_o<_j4` zWfJ?o;;*|TAV!4Mo%o%nd=YE~i_g*Uez4HoUEm(dWA7YbY6)f!1{!3uNL}X) zcB+XNM!Utx7d1~wA0$xLRYFc9WzQ#`Te66yMBxOyXy--LEt5Dx6;P7W8zJqi@g11< zq{)Haoc{@Hh-Jj;VVIJUk=k4+pnKFE&AE>6P_pQ zhhpw?=J7X8QPlxL4>0HAwh}t7Bn$F8>k`r?ON7kT6QuTZp^M3s&bku}h}3pYhH_O_ z0sc;5fHK|XG><~fYGT=N(=?PVSebGXR?cQ^ed7A04L@?~?u7XWgIju?Mo)>2ozpQth{tQ_rHJUkf&r(-g+RSq-r~3*Pu876 zIkLa4z@*HOkm@JM%?|P&69BO!)`YJWfnY zf{-495V1EVF=*L9$LY-Bg8%ruuX#{8F`b}3Iz3@N$oiIae8_N%>QsJDot~=FZ#Zpw zCzXErY18F&;e@Dh>hy#^5ApwPj(XQ6Zt=ef&AuyiZ-9Hu`NrLY51@+I`D;AD^o}zkbk%mvQs3KU7*<>e%2as23L@Zu66nTy8pw`-`G- z^UY}2m@?~Lst{Kp=C!QN_FDm|A@s1*TQP$7t@dp>Onh6eQob!O#SH>3 z!*@_L$(u@SCl?pAi;0fd(OK$G%Ct)S$;o)N;cM)T08ZSFW{~1)J?dQu9&2zYljjcikcolEE8@R#;SPMEuVR}QZ$|zK+;i0VyBy>g zZ=N4#MIg{Cx3ZZp%MAp9uHL78tz3st-_ogYQ|lqKp0hxFYdzs5>M1&4_z!^iMR;6V zP=>49s+o-`#)2V)kR_Mw=AMmQFV24Pws2iITXg{U%yVLmvaxJ>=7&6syk_tLnqg-2 zvs$|Gxo!UyQ@Z1C8xI)^{pORhF7%quPE%R3ezMeWt|%egQl2#b@kucU;;|O=Q(sB< zTSPsen<{^@6t@fu=>hkh531s(y>h88R_`77vNY-s>H0&eexrH;Q^JeiUt@{B^4zTR zcG)Iq;fk`Sy{%lDhfB5EmJ3dpFG6hxO&o{Uaf}c!Wng%u)aFMm{3` z*(-?f6mDXU2z@YG%kk77n(*%2Z=`mAXhIFw+5W`SJ!SUoBmlQmp8c#rsuC0o86Y&d&d4SU*3sJzFye1XSHkEdW(@Aw$Dx%DYb>$$6B z0?z%$L1Q!i$PUPQHbM7IY~k(_nDx2i!LCi_E*B1(&n%2;z1hY@VS zDN*!X@dBsTJFdB^q!E4xN3sgVwc^x7<9HNK`}ug2e+hZwGmqeRI>el%Hf|5+A}?=T7v%r(>^gH15W3vT+YrV0zylD!3^$MKh3Y>rW zP0{+rX{La)suZVtYCRh*rMDr^OU4o=$=ua4>D#=;uS#-PJ8)Ye$@X`=EnUUAN6*gL?|C<+-t!)RoB7)UdmZ95OW)u_63&r9 zk3z|x<{8yJphs>XZT&*z#-WZK0_oDT5%* zM!?>cwbqwMC*c2A%OMU-I#}k(jS>|5B5E<_4c! ziF7K8UztyZR>22KSuv`A457=-8Rik$|7aP_WYpiwAeCaZG{9I4^gP3qSZqA{Gn&CWWYxD0;|Wsz zAxJi&6z0{oLjEe1sxro0h>)p;N`Xs7S&+1)~&-pOF-nH>KGph!D%@x^C zM1yN1cM*G*H&9TN&ToB@kMnTRdzn|UaiI;ApUhHeOvA| zUFlTO=q@-wDrVF#I+nstOKW{y)=+k-x64{x0wS|^A*_g`&|oKAbH2y%t@H<1T3m9G zhnt}*xUbk}ZkBG4Z;`(X_xP#i{z6Hd*5>*R0ZDR(5H_|TeCM7!Y&b@rM=or#Pl-ZYQmXH6Vjx#UWxYE=PB z0}&~q@^q;{JRyY2GGz1kb%HML+M3HjdzQa*V?27XCJbci@a0DEZ)7pI;_S9C<{B83 zdz%gaVQ;vy)>^ri9;+gk2fEm0D=!eD{-L{1zS;wJL^dAjSX%2c{eAMdnaOPKEA15X zb2+!!NMll9ofNnYbXDh!&qFtLUZ09ha@<-{awh+~TMEtz$75t1w@YqkVVUF`tMWkTM}+J@sepckuwRidj!G zZc$mumJ>N>+(K5+w)A=B9#4AUp|cY_bS$Zs;dU+bE?*FROR1!{ui|d1kTs3CRuoTr z?gB>XmUMT)PM0|}!(;xp$NXt3)z=tf(&m29Eyd{G$;h`s&FV~bD1id@&6&S_MDV;9 zlk8sFx~#GC{)Z~1IckmYaf|x)r)t+Rv#wxm>-)h?VRw3};j3HhsO;-8r>5h%*k#_3 zQP|YF^@66VCI^dI?FmpC8B^PGk0c-WwX0{)^#g_%7p#1|#?}S>_z&vW*W2xXqVKsL2(o zOy?@t<*v}E489F_ha82mSJO$ia&Dvoso70m(7C{*!a9`9HNsr~k=P4GuYR zJ9s7j7J9)bMiYOd{a2D6N}X?}{zASfNG??2^cHQL!Ih&!R3#6lF24x^M zJyU3Ts3b#NWmc`u#=&>C@I3|ky*Fi~yy%GjuRyM<_6oEtFyW( z1aAUXSGGIk%XNo__WVCxGzuMS)D!p0;{u1gmFC}sbiWq2@lH=@NNzRKXb-v3Cz|~g z*X6p+wXNI4kcDU0jfICoGuO55P>ZY!VpSU)RYy8No!Caz_csR!pnnIurb+qI=8(^c zvRkm$^%`)dxL%iEaoQTqCIg-u-#7rsUyfJr@nWoL67P%}#GfeN|(OQzUW)u?-$MnHFF*JWIa*u4rhOjsuWW|engiQkmq3O6(IZaw1GsWUt6$NxfxfZ=nhR- z7yS|G=%(TTrTT6$2I7gbdLjWxF!(OEq6Uwwvl;(rE`rk)+n`b4&346_aL-yAnv~}W z-OP<(_vH=_r#>q%VUE?{ere3Q!Wg%n@lRVfPli7KeFzXvy0&@Ja&cj5J9&>ce`BSiTC1#bJg^L2$eArGB0fm zjasMt?&8}PC-|=%MYK)@2b1^G&3%)M+diLU+_86($C$dBp8+ZL>i3gL#!(WdAP%QB z3Ea~@Lr8xWmC)N3zXV-GO7Ql#2~OYWBzSzC)V^zyvHc^eIl5Z%SYJ!_hy>|Qr9%pYLxXEp}4`2az7t{uu zU=X#q;C&pf9&raU3uZ_#4U|)t$cQC9>fw|!)h3f zYF3{bP!3`Dd5qJZ7btY@1_gKRVK8LE-AkWZzE?xkt$X+xkka>y+1g)=rq zcMGqt*ib09F;)wc@>evL@{zOOTrVrTs=b{9J=?AKjb+{E>#o*%W9usqu+8M-?wjd1 z+xA11ZY;|_hhEPwa}c^fg*qfc9TTC{L?|s0!UeuvqO%}`vmSD*<6i-!CUixtp{Uge zUq+vS2ABlAP>C2lgKinl9feK8yoFIdiGotu%#Pb=XZWhOMGm+MHYpG4ZgZ219YZz# zWjH#IkN*z0W0Q(ilE7sim8x1UD}QL9WBlq zx+Txt(7Hpq;XY!1(fYpHNpi0b#u)yl2k=p^hX22#6Op*mO>f10d_>pdMVY|CrU!RO z8<4~)2;fRegfoH+6m-x?KAR4>iRR&}$nJwBk14X>+Vm{$*F)KTf}8vp zX%Gu9+)7S&=vfh(e!abBEQpA?O~}ma6x-y#c!ldK5h*%j=EF+#G$L@<_zFJMayP#j zq1x<#VaZ~$!vsS0Wg{OsEa&Fp+%cF^)CT_*Pfw##FbX&KM(i3bEdlLx|%Lr{fWq`Jce?$LvJG zN2-n8jo4@DG4=rRk~L@f7bNmy>^;QpB;d82XU|_m$=8UIqV+~t{FzNMW*v+iMNOO8 zJaCNjUXe$88Od3nL}ElvXdd`*_Py(1cN^V~Bcgc0@yw&Go7@hibQ*4^7b_TL%ijdz zw|F~_$W!Lij4aoDfBzKF+VUtW$28i)Uq6;UV}V>cqI4Y(0j15jjlCQFqQ>N-w$!fz zvzx$d=Hj<)%>MU!9mrhpAeY63W-e02KNgAwHDK|_;D&uLjzf&wi>eIL&^tZ@X_g?1 zL=J(R$N4mcJT!p(kK@Su7^I<`blcC9HGcU%LENYE69s!;7jAFq(T+cYzk{r8Qe&&! zMcZfI0;&!maAiUdbS2?$Z{)a+ya)Vo%WgqLV-J&JW5EHH+yMukeSbA{mGv13Tn7Whf>(!)1iEk{`~Ob+2$eMPZDMfAd53u3qJP*mRN6d(W}2=x$&Q zboaSjb+ih*lQo9u*6p4P5G}2imulDbU9$497foU;b77QRB3Bw~ z+KA!4$sbNDAAsk0NK^dNvtu%{_<$cCA!mYYn^aUHck);cj0oWx&o9RV`}{Rhz0w))^}HQv!{YSxcF9lAjUNDRj6kKZ_R~3v3Ft z^zAk}dOO&;>#&eg0~+)(S#eCI3m>N4SP6byMu3;88$ej*aEUOcZX|Nsdmx9E#CAZY z97v+KQ|ZMvEQtZ0I+Bst9^qyEBx8T(?tm0;A-tWE_Z;j@FE z+U>w|&lf5ab?#?WCQ8f4AkOWK$PNgiWhdRUU1wX)oigY^BEi|E7HZ&!xP}xMx?oG`Eq&{W-sBM0k3PmW}*W zG)d?!$->YvI5Kp#yiSy+wnNGMd5j&aNo%QBPzkL5DQWzUoYIBg8B;R(4NU1A*_+;F zy-MsD*_GafK2PCqb-hN;If5L>WOc1Zjv?>NuGO_2fdZ@@gMOxpn(`r2EdURiY7yCQ zkj4O5`LMV|g#(23%-=$Q+4P~X37$k6$8vtCGVSCy4x_LusqX=+|Stu3ga$8u;6tBJlA-x@a;1@4*5YXIe@7+m# zBg!cKy`th=Da|p6wDYC(5nZ}GPZj@Dy!fzo#r1gu{1tP)GHvVZ9L#aE`guc{?-3Lq zk!XKcZS)p>pOb!|ksEXOx11Z?^g!35=2@NmB()5+F8RBh7uslU&DW z?R=?oigk`8hstxU4iYdMV(+wcC*RPde9Otl?yK_TEAUu975*c)-(WzWuu5%zacoHG zCn|ktTY83Ue5u50GzRT25`2DX{g<8R;^6iNvWm(xW@UIoCAsGN-cXOm7R=ex zw20=pSt)T!Nlqx8dOx&`JzmaGu^Adl`}-_~tRHwo#fu4|eQ0|@C}W4esCS^dP*l-Y z@Rdc5pOd3Swl+6!80N$WWGAPZauD(H`GcYl{jqBJIqaG$Dne_Vp!G&|>XhB)ctrHy;HI5EB=~PTkEQn$IdC`X2{DhBfpeZ} zCxlZVoLlj!qq~sg2M@|^uYl-jw&pW?70_~rIU5MpPjBbaqpEMvd?(Czn=`A8>Q$sv zEwAMl!>!ydR~r0GJ8%9)nrmhb>lyY7J|ccG7r|e~x`zA3@+WyknYgLZw&EGtPfCZ> zXAC#3rE?s2gkfPCp0o{yBTtBGT5Z`RqwD|+i}yl$=R0}Y-idkW#p?Rx&xNI zS{Av=o>92T`uR_sU|+u~Yre8^SjPR%l$J|fD`_X+0#TlOo@fKNDzFIb27(ahVH5#~xqjP@q(?TrjQ|(Q&sfu(slsoDP>o-t`bj&qyh|>ser7Y%4 zS+m9GOw%j&oDqMia;#%zE&=NYL<=CkiqUL|r*4$6w`$Nv5dIeFtm(|rY#$8Ch|cF# z_uU9i1PzL|dO<`h9qe4HF}B=h7a6lbkXJD&4W5OPriaI~h|Q$Mvia>vhxR>7Rge!I zvOF(&8$8RY9_cp4!@G?;}!I zNjhO6Unm}#bW^KDYw$li%jU^^!NSUvM8`w(6CK}13LTfU4u!&o3EcYGm#9~s-4 zxW15?;1}w)MmWP4K#xIgL6j%NzEMel4|p;1N6q1Ydl~d@pXDE4oebuKdA6 zdB$a1E5G;91uzKD6J#xMlGbEg7OCuHgoX*C3Z4~XBU`14RI|aGGJ&jE{Yx z8GUlCn~0WBo;941Xd*tzSdli4?%??@W@eU2D8%|&9$dGB+H-_1#I0M=a^E@h0CQ2R zRc!YvcqeehGn}NqjUM5z=zlbjBU3ey?>E0>L15cw8K5W$5ad>GXn?f>oRa8bE9PVL zw)G@gfBh%@Ye;*Ou>2D>HTreQIVsA>Cj4aM#T$Q`Dk?tqvlIEtLMDgn4Z*q+0N3{x zhs{KHL7lPW9rGJUoq3qmPHSX;x;b-xq{V4I zTSLVWixv(L;5!_-z?^=FoRT2jm_vdD$+L(c*I-Au+g1d9iutn42fiIDI#79^{%*ur zhPlQwzld`*eLFCtm%S`tgq{@ue)Ozr#FJ|*tNoFurVDret|%uSOXG?fc@`e;a==*j ztTbM@gMc*cF8qdXHzZq^Z@R1sseb-Q^`y&I1=*p8$!G_)Fv|qo-&MAN2E0 z${LSx!x~pnJ;8cUQ9W<Mq!4p!CQF#pvo-T=PZ(XICG>9NSas0EtynB=g!Y6U~U_!s39HMb174nNgFIEtbOr_?| zqym%^ITW9`x_BF-SbHI%@v$cg%>?@eE425Z_XZ^NO`)tykkCh^7u|wF6}OYY9%g~$ zL7cU6MFKYGoF1X)$;axyt+f_>;6VV-p+(MmK@FtY?k`$tE#SD^A%783n5dgQSf&M9 z1NN(dq89@m#BDDGidF{%beQNzz31Bj)G~YT926*76X{j5 zR0_OvY;$0tP*vi5Lao|GJQBi}P7?upavg>UVukVs>pr28`24O|ffCfb=}{u1{NuEj z?mDYE&>|THO4=%UR*)MgS?a;}u`Wj*jxV9pzOW<@1==G8SrWBM*#n zqr3?Ep3=%CQ=HAAZIRw?Yi1U9)v%Ihw>531hBFHjBf44}Y46#BJE%wlrNGixiK7q8 zUn`s{=*-BOP{YjIN7Jmud#uFRmMGB72csR#VvfqkMr;Gq*ikmnJ#r@k7m19h( z%vXjg&_C|yYH>d%4<(ytK9000hE(MZbnor-Z+)HjT(?e%R&7}@*|H(pGA=3ZTg6k* z9Qg^_O01pj47@ZD2>Ib)F@=lX%xgf@!mso0L^zzPFgRFI&h&mn2rXD42OF{CU`Sg- zSer13f*wX%HOL%rstQ*G<_7IGA$x7mj%JWVB6F&d)2pJ0Cc$P-<~ijoN87lEp;MkAEgkG!#hk_nfJU!zPwi5(!kuoPqbu9$m z5O9FfSB5N7$Tm1yP=td-*)*Z>Lm+>{c>D11epw_IO;4gyJw{w{f(!&NRcE zGsWD+bTm0^AW5v$f43NJ#ZzAF6A9CuzrbAwa? zX!rsDIiI+AHB7EC7CIY{z`>)5b>3okQezP^nW0G^Hj%qk zj=<3t$-8o_Rykw~p#*a|KpiWr94F7x5>9Q0+26XsUzTSRyex4MM*|g3a8A1`X#{jA zhcMkQX{jTCg;>{@W%L3tp~cNRY|~;pf^pRnT4J{(BgPl<%Axtj_=kwTTxwz?Bo-Xj z{cSkPH4GoPbpLAJfJBBoRcK~!u6_$lv0t!|U55B{r+MO}D6(FK>KdTtqUcv{MXNS_ zw`jextMHG>FPgBAMBKR^h0u5V{@4U=ClCqg^lb$G7vj>p6vY!^;J3RX5UvrvJK{zY z_#Uay7Kuft^zFpFz zVY}-Q>6>Ic)J19WP!gxblUYT)?|+=d-&^060zQ=jK9c4(O6DJ-VVb^5GHxN`s8F|r zqU4&sOuxU)lNyKWcbPzZ|9%HGzcsLsZ>=iSFLC?Us|`)(`e3 zCh3Mcr9bdzO_>WBG-j1C_QE1kD=>UWh%@Nn#3a@&;~tR_$I81uu>C;JZ3Bx}A){nz zFXwPlTfkl)KSeM)=|yzuS%+;8xs}fjM7<}vR3C`uoj_%qr15RqyQmuv>C7kSknYB4 z(yc2c0wjRS@-6xBn07J`%G}FrQR&@!Kq76?NUJ51=`bGVNY7x6kvL!MJ)j6<_RN6Lemkf96@F~I zR$t9xicYI!W0}1N0VDh)Yi5H#i=&iTWedd~4iS#u(;4uz2R!khSc~6692SZhZ{a;{ z#!jHzt58w>O}6*4#74NaEM>ZmASTT4u_J6swgWsZ?eN)aOhZ^t>6%lz%4RD^L zy{o&Ke+70f^Sna7uZFW8k?My%+XW@!r=$wpuA3l(o>!-kv*0oO*U+~;kTbMf1r4k= z==sGi^!)jt^S>81YbSmNY?l7+37da(j0>CR|I1m6ynt5)%=-l}t4I|+^ZoO4VS6)?8Yt>z%iG8do-T~5f}O%L2$>W5 z0CEA!vUhHlZDmq&5U4_WfaG9V$X-sM5R;oAWUqE3J7q`>Rs}1juw2b?x3}wqo@L?{ zgDQn8R+Lpd&m`N;>388HWU!A-^xUwggFP)G1Gd?(kr$3&RP@6mUKkKya$eN4U+^I^ zahbD5Y@p2$w*+FXj5UzB%J4L?2bWE%`0G#xE`mrCu$2J(CA5~=Tkwu0LJR_EBr9{; zW}M=py0x|zyd)JwkuVd087`TQ8!mALL+*auVxzB>acA(!d`>pH>plB8-O?BzktJuA98%a9SGSR zj!U?*fQ`%&5e2vsg4hMaa)^k8s0>-*;JOl$df`6eUf>K1fkK*iqp`u!BoPUtlFokE9$0Xy!c<_-C1OSIIi=y zc$KTAGc`PpDMy29g&`gR+Piaj6BX>Eey=aLL~wJcOY0v@-j0^l;UlTHgVuW8Cz8vW0PGg5rCkp_<^Nu zO|mp=!CN8E3t@Xb;j7uy3Qh7zbs;?AZbp`<^v+wW)W)!{4#O=PU6~t#5b?{#cetaG z&f@z@E>X8t*m@WXV+O1vN0G0(!p}0hnRzKg1lRf$9s?uW1yQSdlAuIL+|MW@3mQpn zSA|uI>!^T^Dj-zefh0<1Cq=M!baAqBI2lb-oR(x}L%v}sHJPjPn6f`p6g+dGG&;%9=FjGh$!-{01pT0qvx?kvC1_QL zJ4+WXq@dF!a@Ksq)Rr2CW`MF`X#SGDR#c4d*sk9B6!W#glQaY?ni?vP7 zIH_lw4lpuOj_?)lWmiVEq_g7>nkJ^?H}0H2=yEnr7$|3p-B2K)%^ene7U8T2`9uo6 zX@9wSGHk3U!hNR9hGK-IjI=Yzt`B|n=$BA z`;9>bV#wIE#8>gnDeK`|a`2I0|k@T?&Zv zxM6fr>;XPQffC=>K!$1zcnfEF`N#sp7~I%`yaN?KQ}A0`@vz)B9MT ztZjO)AYku8QXH@rzv*jwH^B*R93N$>qfo=ERLvk#F$4&i>Gk z!q#6bA3i)!QBCf4o?kBBn!A?YwZ$zc7kFvP{eY$Nyg+?!3$D!U+IPq?af;X_&P4yw ztnc&$r$KM5O7!V^r|+b*nTh#MzF!3iml4bTv>^B%F>xyO0an3iqC3|@1nwu*) z0oWo=g2U)Fu4pOQXoWYTQNLnM(QYy9*hjfV>(?K!=g5ITvHHj$`}O)w(UE8J4D+wQQg*yk&0vtM=# zZVO=c<15+7>qcM6HlMu}Lz6Wn>+U=m@4C^U*b)0m4p=oK#nc!sQ!+M^qmDCL?6J6X z2~rnd$$B895DA+A8KpZg3mtzm|UHsp;b|EGu7+vi`IJueJw?$ksZa=>2UD_X%>cwE=6#(2Y7By~`W5wYjk&gRAE`N*X?993gpve#d9 z2t$&hCNPZOInJ+kA@)IxPOJsnJy@4)EP|C{z_lACEF_L4m%pe3c;h)}m$&+{uPN&E zbQ*P*7?2co$lJ9v&Tn`4i+0GHP`GD1rCC18>DwC zCgR*gwY)Ok!HQAA3NeV933Tku2U$6}##`dl^BAao_s+6F3HD2m?dH{ve#GBM7A6&U zUga8P1aQ866@D(*+DK>5ysBB%azYbP0aX*b#Xgsj!>pU5}eQ$sRM5?UBb*dA2$-cIt}Dx_=ni$Hkl*AF#|mTPL5)liD`? z7DO+>s@OYRT3s^Msu5QP@mBu$@W6{|(r;hu)rl&TqxNM`VCH9vRPH>{&Xtc9bIm?>MZF zSI<19TVJ}pQF%(L`P&nP-Fn825!s%Kk=8+Cy>g#aJ6N_;$o!B9M66EUZb$LgiR;aJ2Tn?X)i?Jab7$noWH!o%$8f=(#sJkK#|@&c=_ zQPynLOp>AJlnIu1hg!yGIg5mxoH;^H);$AR=w#Oz?K`N;TBNg`&5&?ajGf%&E^M!{ z?w^K!!cn#>1|sWuEk;NnJS1E(UuGNIeT8UULJd%{bfi=&Yi5fx zrj~KI#`)Uhpy8ju*Qc+A`Z!ZvcAXsd(e-(Z@MDa*$iuMg+$JY5ivC3~ zrQdQ}fCRHyUNK@)L5jV4)*ea3UagJl0!?Oh$b0UVTzmzq5N5h5jR$AacZ}trUHb~JbY70uQCBoa7YX>J`7+9Ush4EB+Q3Zpi`u~i*`gv) z5P_d>)>v=h1%sM(ix0_XRC1^UIltk>grq)@BeH6#@%Fjy}!fDPNwH zB6tzPV8nSU(5HPo74oD(lX;LHU~sSPXXum9BMEhsMes68Uxbc$8Ou*GlTj^T6PI`C z%S=aQ=^|&kD{GNVVbMKCg_AOXb0rUtu?TZ&C-BzUI8H5Ytr|dc2Kh@Mn*^yA&>G#N z&t7e7@7ouC>@V67dgyYNpit>+1`HGANRV#7aSl$nDka>zV~7;PQcp-M$+4v|ItIUbAg5(~fN6a|i`(qqU;l=veO zdC8E(m9#}z72tEE=nIS?BR*^f+9nABV#$vPqRH z2hHL)k*70+jlaq8;^ADsaMQ4XESKIU=js6`zichOd}MIrE`Ew6w|soJk8rLoIQeA) zC6eTx?_50e6>3grYEIsK5~W&SyOMgK0*v=I z9k2>@`ZkqxNL$ZIwRJLtzAFpqpS5^8H2xls+qJ1e{+>2`vwTe&;xdxkhdbA3?XMU~ zVOJDUFavSlP!4CxRT%hJ8Gu>;B_o{M3r^k+_6=@)FO)TUnRAIYg0%t*E(>0jW}^l@&QNRq3FV9xRf2`t4mCf#mSlRU6;3 z586!|U(fw8cjI{~WT;geJ9@#Y`3v3QmkO#NsCua|W0=B}`pQW&ra777=2r-9l|1B8 z75U`^=;EEhXy3<&2%&{WG3}wUJde9UvTDT3di=Y(nNpT%rorzi%24(DEZb?*ATutu z*R(>`XA@Wa^q9C$c8_~P{L6eonj~?7=uY`Om#5S|eh?%YLza=ws;FugpMrS0_>{GH zc;*vyqHgM}nhLUw|BZ?}nTeB%S0RUynXxMMUC>(mfB0@K$wasTFT8BHA6XOkT|9b% zQ1F1&&TRuuUP(9_he0qGnNJQmuwq_-XIz z;@Wb$(2nZP)K%eF3+BkW2jfQ~E9@OqIwyk=PSgZ3ZBco?F0x^#DpnvtDAd-i-W-7`EKE@aDIRnW$d_7@DwjS|aZxWNdaL?Zu1czHBugO{ zN4s@zpv4mz%-_sN8GlDb{>xRj8GBWB>GNAi&@ij2O6(tEp{93FC(sz>iejVbz0<7) z3V5jouH@f8T{5eDl1Pt8QOT5Tp{9g<8dZ6&Z`MIsP;M^@pa)2P*PIFXkWw^P{Gf`( zw`PghtomS%bepOLM_QXB^qO5KruSFkqRqOwtWjEQQ;@|)0vLJ_1cCvwY%Nee>4rB{u~{6vxq3WI_fIjx6;-=)JOV@f zm0{0Tj)C~IRMHqK*@OgI>WGEnR+J+%HsR4?#yal6pt-UY3g@=S^b&2wZeim4arL3R zU4zYihKUpG-MZtz#x(ug6wa%lVKEXL5kXzy zipPxjM>TY0A{KTpg*;?#gs2rNHscJ7DQ6=;+vF%vQu4#0AdHWUHIf$4$RO5J2+JMn zVr*+vUA>8HpBL*DY+AyUUa@GTlO5mP0?K}u$TV}5>vtKK--{EGKmY&2Ftk_~L@lJM$OYGdfj|Nl@Qekn! z!6MJ=St=JTgQjZ=sUKH|%y?B!c(n0?iU?)%$Xq_WnZvZ6tC+Sq%9?B{1%b#L9ugO|r}* zUtGot$DuSa{c40XQesA)l*W)Y3XMS|#An10KqRh+QHQL;*iLY23vv_gKz?Gi_KBSO zs!;JPW!G!jDrO`b?4X3?K1PHnibz9lctDjx(#fqoXk#WYv!1wET*x6YNFySMNRn^j zvOkfQlD*Pf7J?rmbHw-hjq?&Wxt)|^WMXlpVr_(SIx!q`2nWmQ?kr8&S$#Om%%Uvp zUb1u&q_Z>5R9jK;A|dBlWnMH2KSL;}b+JtWdhMGQ2|r_#5}(OxF83Acah?5s`?a1_ z7pgdfKkd8Nkc@@;N70{kd4q7SHr7)Y9>m7kKNf$MgD?ztt?!^-9$Ru)KJg!cuLyibBSP9(ffs+y$F z0C5sS*aIY)U;0OBw$ZCcHpNes+)^wr{)7F@Uez*k_B0i2-G4pd>GXOz?=B|{SE#*S zu!12D%nMf>lCyGb(J`zk!=ej?Q^>@Wg_f0ii9qKc-V80Z;4p-et=1_Yd%C4$gspbi8~(D z7*Qq#1%GNvJsDlllK${+9x= ze&hbiv;2R7_cOqfUdoDMmvITd^9ipfY$osJ{C-$pQ68Ymu^ zVXh3hh4WLL>Ts`$Aya=G_=7tbyY1FPcs#(&qyP(=%Hv83Zu4?h`WUo+O|PT)3>W0c zP$e(KO41Gpgfm2Ch1nQ?LUMTJJUBS{tJ{iRRyjVPvy&W4*rR=5#1`owTWDu)yt7&4HeaBEP zdi&1M{GRn$ewf#{w{Pm5Jnxij|5qo+il-fd;2JBhhL9X!XXR+|q=G9^Kty7oYu_5` zY{uwF{fn-<4PS)Ea7Mmz7ak?{b*}e0y>Kbt8JkN+a=JNnv040LX>;oJ2>x4QAHD3! zK*AlYF8$9hiNmz>=;Nt8#m3!Bt*T2e)6jmgS0;&;IVMv$}K(j~S8ES7xu4uYCJ8zh;&`&k3c@#+BI%C5oN>XMWu8 zv8PGvWdD*7v9oGqI{BS3QC?#Uzs(fh1{bc(lR@k4FBx^)AP!?QsSDN9UX2(isy_=H z_=K2Kmpa#t;tHm1k@jG8N-P*HYsc-$-q<(4d2EJLS|Wuuuav2ROTXg)e9w*~eKAZW zCi#~@Z%<1I*pfthzO45@#DX?XOq@VFzlBceM`uaR2L?3S_SlQS#Kf1J(pL$Vqh7IR z1UE*rv!yIMd$YzK)+|5G*)Q-@r3u?0{`{2xOS#`~U(mUWns;*e(O%v;xlnBPz_H4o zI;R$<=ruV%@h1+=g`K;uCE`C%W^vC0BXRPf%aS+;%hjlzi#Gmo4%U@{9TP7Z$y8J&~^;MZ8Y9A;L zL!s_D+wwDFui#Kq3cpa8S#zL`>O(&f8QiB4@MOe({GC1-RownKSQJc7pp9d|wcxJc z`l_)yRq<5HU9xZMm60FBUKJdwwBvey7kVgvT)Dh#RJZ_B2jGR&3{wcT0 zRh}ZF(8R~C!m`o|>$ve)b<@Qah~28nAcS9LU6xBI_r!i9LlG_gYFEflO-N=cM63Qo z@qwD$@Ak~^ldY-zo>;8;Wu;Qber-bjl8U4G*@Sk>k4jv%JU@wFp440(C5^o@R&L%F zn71p;+kfd>d3*w|QXeNWa@PLqz3|#EaWzw8>3=g7<#v_QKk&fKEfWg&mk!3Y9d|?4 zv_y_E#-e*8ndQr?_jqRQodwwyH|B1}zMy=$lq{ zF@hi93ET}=9aBtYVm}yjEY35@=UK5siEXJc^Km@u6SHk9qcj~NZ-1Jph(ERZUJPbl zWJ2?#t0awHghr-+JvHelZ+GR8#6+EX<=4|2PWG?5K1GV)gw-nwzEO@_nbOua@RfK) zuDnhoM!F(aZi)SAzBUB-aMtnlWikzfVM{#q*8H7420Kw<*j6f@m)_wRd2)BpFBWUuUt^rGQ~<;!CmAJ6ZJ z&yx2oT&rg^v!}VK5axuP?@q10>kd3ahn#z=s1R=M_LhkUy_Jb9pi9WPO9p55(-ZiH zPq3#c*JrN~tE$^!+M#Fw2G7BRX!-2K>Fl>VV)bK4O)5>nWFk>*S0eFli!(TGKK>*# zGGTm9WIS*GZ8xEQMr!UWDa)zE6>C{eO`}zpOhyXvAQq3f1$>!yUhMyQE6-9(&VJ+QKRZKmEoUW1JlwGzIJ$Ko2f8M!Cp6*^IsXU%v5l;8w>}@h$X&hN^IKI%MFHeWW+XUaNyy_7^A55%aP!v zCirL6|9Eq!QL6qN#>|L4VsiUgs{Xph-Q$LK)gL)_Mr?X2*sUn5_jReTWG#hd!~&_{ zWGxkboTI^kpLNv|0?UXUZ-VE_Jj8SUtPccsSv&chz4-=dbl~Slil9|nBoUsQ z@(WT>so$HoUv{t(yEj!nWP*Mr0a}%66EM%j(P~U5=xID#F|B7ZpCS*%?jPMJBmM-) z6QU=eCickaV>9CO2tZ}^!vZrk`gNNcx11|5J^Q{BlWd_iGT7I#$=CGGNpcjTdd0PA z`UiNe;eg%NbCzyld9r*v*^}Iil(GNE)R5oQ z9oDVC-1T9wn@rb-?BDlKGX2MRg6Y>q-mRPV9<_7%_XALt-NdcT`}4T0Ia=EOHxUKI z)=ZIws_zR!r4G5lab;a>{gdD2>w5m2&}4c1Kdnmn>$RUSttE5spJj_bLCeG8eYf_eum4(2S?iHkuQPi$`;Wad#!bp+ar|6E z|NVYC^zBaH={(tGvA;9)uj|l{*HnRaC;LK46^N}2ye>oUVu%~(>Eig4A<2>49qH|& zg4m+R@{Mm+anLI3Juolm%uR(+VkWh_xbbBjE>PJ4ar} zvip~Kv765mZ{IPws_kzwWfXAb0Jz-!4P4_TH%$oZ$!`4_EEyXXU-?emJm@TJx0E4< z+J%(7^2AV->yYhUp;?V$7Z|%L=ma#kIJo(XB~oK~To}E<@7MUQR(vzrXK$W$ zU>4!uA4O%ar4q3rRF;zdsjK6I6&hwW%C!H8M zL&TT9dwX5jJ93hGQQRB*$=M=XDZPjMVwX~Bl z$7pGhq^x4yq&B^%ALVq-Pn}P_iNVr+7I6?4eu5caMkPD_(t|w3ejroGDScav`=XJL zVuL;)R&(}7iN!xYy(7`C7{$amtvkIt<7m!|XJwwm-WOpHJJZ{*ku`eQLdg!{R7r5$ zuwU{VIfgucn#!|!o@8xj+Y-&GR?4FK^MlUcgtR(a6ThY4+xQwgpMrV5LSoXD`LP=x zq{7YF7p5{Ry)5 zBlq=HzcT^W*MFc{bL;?@(;*N?kO5or=|v~Ls!u!-OC*#bf5~mZ%1M4iOV3S)lNkbe z?=qby|4Ns-F_Y!Z z=RG#rl=mC+P0BkrRo+>t@=kNh>zdE>$TUrZq{yCu@`iN;k_%o$UK|9#1>%pmfwn zJStL@Px>J2pgVq|elJQ2CUf7Cv6UyK@~`g9sT@?@nORv-+Zh?^WM83GpH6QO`ecU?9jFit@?&qb?q68Y@rZDss`CT1DnW zToD&a6qV1mif)`|6-`@c72$)jNL&kMU)(=Q%NWrcTM|Kf(Exe`1U(Ho6g!IlytNzY z`LiO0bjdb#oXO*cZvg07@zf)fN9zBozL`{o#+Log{m)U$WrV>O;M(d+wLu z>e9fA__wrbs(91G)mxI|Hgiz2KMN`gQ~e2B8H`zF<*@35nUT|3X%Dcu;pUKP8Ka8#XI2BWG~e^$;HAX%1!>hrGcBRY$^CiSR=h(S||~=Nrb2#!U>f;UkT)SKej|F z>ST}1PqLlXNPosw#x8wx8UBUYuLP6yDb`XGls^Ai!klj<>Ep7jx zOz;OceGjty#m`-VU^jgK1=RoDWBNKW?IN3Q?ZfA(+c|M_|UApMAx zO6gzEf@Du~)AyjCUp)M8s{gyk{Dbuul%e#G-ICD1o4!Z=U!L(Mk1rpu)kzHDpcM<-`(vY^5>Zcz{#}lY5#z-tB{G|_J)Hx8uB|Qo%HIg`>;MC^wRq`0 z9kz=ltl2BfKo*#bOccH^((k3`rve@&AlCU~l)ui1k%V%`&#AGKPLai`Z=uApy~kWy zJ^obCz+;k`)a92vgq_k{{k$XW>5TpPzw^1&aQrxA8c#|r#D9M!=yC}HSKr0}Q27au z4j|pxJ98!5W?v^>;8zIvzsh_r;L9kd%%HoObaUl0Am#FApQk%^u!YDXtqm>V1#wf6#A{BiDZR7Ip6}u>lX!8_KgqlF1EH}G9+c?Ku~+q1k}V*aiBF#)YeD55`|zg{3#GA9 zXm^e{mrRpy%MBjRDt)P8fDv$&$A5$sTF?Fzig!vE5{W*dZRZmQJNZGBIqr8_C$kUk z9PvVLUd^63)gK}smkh>SFkhNArk*&y&dmfIN=^g4thBS;?5Dc!!>oSiW^AP~#DIz~ zl+qoqCEI|?pwrN%)O+?VnwgLw`Tam9o-^zcsf1jOD&4dC0qrIwQ%s4QV{0V98MBPe zRG_)1bEAN?r!{!kairx{!{pD~&SUA+=T0PRSwXIky74dP!?uG6NTR zTnBC?VP+ttz#uuB0o?ot35Q*z2Jx((wL9C??uOqaYo}EIeryQgkVGXpQ#~O8XH0Lp zkCE;ic(o}nwq2$b6eP29Qy7;ZH76>+DV_6_bj+B&zZ;OzIdCMgYZ|d$ZmqnEz~3y? zTmZ$L1N-tRE_{LE{!f!;nWp(DThdrHd-dCxX(kO08mm{_+%+2+f8sF$Q{)GZ;WP98 zM12j+Z6LK;&9Z4YMQSFu8AY?dbezN%H&^(l#Ik1K!zO+s!lSv8%`zckj^TF>tknEV zm47;87Mpo;4T0{Ycx8672Ra7^2@aQhNC6N3F9k&VE)nvu{BY}H!&Jg*7mXvuVMB>4 z!;M)F1u;OP6i;tiJCW}4npWK+g*e$keO2>ow_)lyl=4pj7Hq(WGiTcA z@RO8Xh{eR1rxp+`IL;ex_3&B}>`rNMcze=WG z`dR6d<3DB{+^Tp(=fLB&;-&w)glb2}lmNn5jn93MTcn*a333M#oF~$)zOi510EA}m zdGvvNe74)i*4vIv|M-V)AJ03%N_{l_l3E|=gQ&E@ISPHSd{2|__U7_=(0VQJGKvtzP3RvU-YT_e0WaMm&X^7*%9bn>=9WGHB#)y zn*lw|)sjH|K{lcpI!vBy>``XDBb3Nw7YjHidrK#(K!z))d##*?YkrlInNB2f?~ZWG}K(9FIs9ed->D&2eWI2&la{E&91pAS6}Cv*X(ba z*Lmjk2Y)k>>&@%&OU>&-^SbXY6S>j64xVLRTg>Y(o-vVI&Ff|EYa6e4kzm0Ud_iS= za;+J@0_E>t<&V1`0lC)xH;o{sj7EZ}v|9vsB**>+03H7x--AwYYVg^qB&^WHdH}2X zfamFqa}ghBuw%9Sd+bHmlCZhMz&G4Iv#2qRv+#18ZA=dP!DLgcBbH_4tQ(Z~Lh@~s3J50Mi?+^825N1Cv~?WPQGW`@1Y-q>8DCz`I}vr`iLat$_r zHIGOK@j>cGICN3^GoWAW`Z^|zGv>)(3d_~bW?}6dc+98FDQKV&93|EGr8eb)*nO3`d2O1~uKy?2k6S1sj%=9Aup zaoekoZP_Sx4!r*pE!?UZEtA6;rtbn|DY3bBbgBhomIBJ)zt>Cr=p6a**X`0a0e+if zKb4})oG^$+Hx>KqwPYfMOJbZNb;hhC7nmNGhZ{KlU5&y1La_O+NAzRo!2Jg)M0Pv- z0RsEh!CMm6?R^nLEHc1D^{^NsW94#G5`ouSQ zsC+^OWiLq=p4VG;XKqKh&d?n_Gl(xDl781Dokog8p#)rS0`8RnO9IMFz+(iYaw6xe z$(dt8W2p#Uk3>Wp;+T>%Z1aKR;7huB=t!YS^<^6SxK@TgdpI$KWy=-Y<2ZIId<#*q zu=Oq&y*x6&QSE_m91NK@Tle*scw)2uh@?o|9Xko)PU1h&=d+&_H!&Tt2PjCS5(x9B z(uB@|At_QRphL$SB0o*)S+Wmc<&0Sk(qdzAoW_C{4w$_~g`o}evi*NtT6lNAOAGJt zz-@+3=_H{UXUtg-3tn4Gs36xI>L5#`Yed}>f13LGi1;S0pt7+sKQ*&!nDi2LWda82 zt($Z|#}0f%f4)1V7t6cINN}tYd*W5P#3?<)gmLv}?AIESJt~>%3Q{HdK@%4(l={Se zU5qIc8%61rGu^6|Qv(dW(&{QJc6a=s`u$jmTUYyjQ`hhD?$%X0;G7)2mXlc zWH)K=02iH2p|Q4CROwo?03wp+Ioan(T|{#6ZoUQlePc#N5})uf*Zs(2FMS-H6?^O! zk#Lm0C4)&DenO5v_jP#t^f#LHzjM=HtTn3KK$Z`h zAjZo>AZZ?OlgFN*ZV=wr|5xbm><2rfmqcEqo9X7*xqODOPKB^&s{}e@))Lpebc^~; zlhd^(3*8ACVNply&bzxzEw1yGn|?py_=2ipR})({VNPlIK`n{(fJ|kS5l7jFItRY9 zS0_MhA%iXKMU}7xtX<4)z?0-w zTg4YV4Ke4IxkD-(9g{~%xJSWT@<(YmX5$2bGv8%ZTswV()@jY<(eY<;bEd5)?>XhF-?@qpdMYcx|0B+{ zLmrOnYCl*@Jb0S5miRJlJr&NA*RXt^dfByM@(gkc8DCgNu}d($Ca6GMm%Yo0wd4h% zGh1c{xlk}@&uqBFT0HbizUt*w6LI5kW_4o~QyQl$GdKC|Z8)-#6TO^24f5k@Bm5Cl zN<^X$y%krEqCu8x!=1;ZAiT1?!o_kY`DQg{6f#MhV!eE`+B;d~Cvlv5RQ1k%7}7?^ zXU%Gs&rR?5n)SAPB(w1s%z9hwKBIa2ebMnljuZh0YPsuh0xar}M;1JykPJYwZG-89J#{{aV>PjR3$Gt~J! z=1E>oFyFla&8Yar<^mRcE+9?gKyd=X=du*M2gvDaoEG4nw5);S)AdQ;RE|3PaFnv~ zv>^mv61|zfY-&DXVZXh{elZ{$Jw3P&m9=vd6$^B5{Vp7#=3g2ejn}*g#V%vjG$)sL*-N1F%c+f=Iyny{8F1vF5 zMR;S~L&Vz-QR1O!-UU5q5xVbZNO59x=t;Ad>lh_^&3au139347*6W7uw|bg;P(4K* zuS8FIjW^jPl--9r!*OavQMhf`>{&Z&rRMiuuUT)I{6-JrTF<7pawbN{4>sAA*~?QC zO>%VS*=YPqcY0csW*Bs4s*(*{ARo7Vxts>q5p>5Bnryhq?iGItHKE>sYdCjw*yy+5 z=;q1_M|rcjix>9*jxt{1{XRTA_lqw+3pi?#+`!?5YJlTcf2?gkl$W-UzOh+M2_;?N6wcdS)PzJ8VUBw@+lKuSqx7$ zEM5@GlzOh(gpljGEm-1G(M?_W2gck$R=8mrFt&ObWD%H+_qnmvE30f=YX=(b^|&Bt z!N)+AXDv?ey>|qPVmPppnU&FF#98O=f0M%eOs25YOX$N|z*zIjNb|aqXcq+WOM}nHqRrNls~l$P=IGE1dvp_< ztYayKUOKP(^?gmR%UtMV=7Og=Z7MKT^{7EKZ_UK0H?te}q|-*pG-#oV<@D6#v`q_| znqn?bZnbL0)9S>|lzcB8{~(kOa7R}Q7)Td$oc4sHqXh$HzTQ9M(x~@IgMqjhNw{K= z%encnY6MI8qjz;`4D68rI@j{SK%l^VcH|)iKhoa{egd<_A%J?Iz@Zr+2O{^Yza3qg zvGI~!TVkk;8^huAG-XBdx%qnBBa($x{T0f?ji#@9wI^V|0y6~w(${Y@0SdT88wc}x zj}Bb54R0kub2$JQ%Bm5G5RP^Q!TI$9;WhYAv^&b8XN?u#(=cU>c*SEN_o_Q;Vx|bD zRS}E=8Q{wdsf5CpJ9wf{1{ae?W;fU+P$P~Q(OF;gT7Qa~){us0nXfF8WerfU2MU4} z59sY<;&S0F)#nD#5BR%@NA-Z{^Q^{opAhgy3>G&gl3J>>8jOKm$DBm)flat&z$(8aun9R97s1))%&R2Kc@GO>venaN8%#X&rsEQHl1Io+5a>E{9G!WF}V+xB}KeW8-!vm!jc^kL1saMjx)GQrv(ziiB&U~#F;FfBn!Gn`Ifb~H*AZ` z99ZpSmIkaPCB)yyY1*&Bo3``*Ex`{lpXXJ=d;kbxV&{vG8Ef&lqC-Ro32yj+LHcqJ zB4879$qu;vy+hCQ)eRj^jB|R#FrTg)?(wYbfdlw*z7UrTmJW;<&(iw=O&k$iT8R(`RXQS#vi~EDtUEC zbl8CHiVuXjIgy9xr>Q*oNJ9E$jbz$;srZ;_O4g^14vf6 z=WAH&h8D98B7O_c-cbxJm%QLp$lk$rXf7C_)w2&sKK?eY)L_Uy@khNE9C4pBV5G0E ze{?`^GgDGifLsTh;j8LfG32eX8KMu}$x9nnByJc)xyXE#U4_7e)v~_d* za@QbU@k)Qh1ud{!x!mGWvvQBEZr0v1Yj>D?ChhGPJ6Am^1m8+`U-zV};X5X>h(DRb zd-zFN#MfDi@u_Rp@Qn=ARg0M@8zH#jGYltU@+IJoPu?3_+yP zF;gi?-1-`ENWfmLa=+qjcG;uA)+&%h9ow$iiEGl=KUvRJ0pl#Xjyydp{aH8Wi=3iX z@PyB^+&HiDG$V-{r(W{t_A1%S0@CorJZ9I+uCzH$HA_##T)~ zgcm_u{Q@({xZ1VVJlt=;j!&VJkYD&=EgCGVITt@E;F0^}rnIIc7}7hs{sZ8VU<6*^ z=SboU0QlkJ3w67`fsI`QB8x`FTV%fQVrCSwi)B?j3_VkX7;tnZD%TK!TFPI5+*FF} z^Wd_5!5k4?;GtE>UAFVz@f%l~+@<40MRbH z1y1O(Tr)lMiV=Bu_Rne(rA!EFa3ZY}?Y#G7cmExxIT!i79L*~@a>9SQz=?MFJul2! zMn-tWt)@Vqz3Gc9bCR7Grz|8i;!Ke1gD4YT_R5h26gbcYM!B+y6cli~EkBp-mG=a9 z!QpZWr@SGZ&yA8jO-r_PtW);rB-3ogLk@)5Zup50}u-2^9g6sY!+{P9FzMJUAL^-S^*GKkr(>xSIKyk#1iMw z9_*sF2iL#Hf|1Xxz?eeHQRxGhZ~3ZMfv(pPlg-c;dxx%R`{)|v6c(xbKo_^^;yF!pN? z+j@fA2Q|GV^zDi%(l%yDJ(y2i>#IzOJ**6Z3`R;^@o16^SncwK3ic@#2(j6j@pchX zIEG(G`#$iJA`n4_=FUkYp%Ba_!v_?xR5($*O@PS!BLNZ6pNJ;V76uA%uFfR|_P)** zkcL%rp9@Ex0FE>W@OT0!(x?wPMjoxteau#e4CW@;xv+NK?6BSL*EhIHUiKKj@E?qv+pz?`EHaWuHK97hZu}Oz|FuM~*oBNB8ETUix zhn`S|V{94s4fhj6C>8mp>fuvigNQ&_|$7WfRar zl2UHo*gpe(rBz#R5Y7cgG$BA|qT_$U%Pv81%oDx9G(Kw`J}#;`ltMMqnI|^w%+K9=m|Q}dUC_n$ ze72yRU^kQ_EvWf2ZBD$Ah8M(sEnPkV-s#fMOyS158}nV<^IscMxCb3gPu$b=*|eHc!9DdxMFUcIRWz62X)LLqStQ`fvohe> zsc=UK-iM-QsluQxxFgah5kyf?=X!xUFDldl$rO^pR#O6|LE?&Ri&iFDe>zHUo-`uwx@cSkA>gF4EymVUCZx zSQePmea0ny67UGlVL3)3FXh0Qw;mbrFlqDh4d6Mh2QXKuw2OCoF5Jmwpc~w&>jrnE z%)_yVNhr&~KT(_uc9O~|MIB#MS%94P7>^{#ndyR@tvx`FS)T;s9M^+mnid;~GsIzMK~(tLK$PA4cD5-m3HLbEe|*YuQ38| zxE!~j=`hA!VN@s9xa?o4YVRsuk@pmLFY;tN@6D zc1F-nqmS!fQPBiaDw-~|gBIA+0fp|SCP|gd2!nQ9l}rGMp+cWga9(OB(uL#E-fPmd3V*s-stb`!L#ElL;>7X0NdB-SX zx)!fLy^scTDrK6d6fweGk(3lD)cG@j#Xy}$yF(oYb49uq=4G^DKDmF)NrN~B*@zw{ z32_8NyATIzgP$dNwqhH&Vmh`#C8MgC27_-P#%Xobb5jc6uzq^S!s6ho0(DB*+}WG$ zCZl^%Di=v^pz80dV2+_b7_Gr6aFc&T{mUC`T>VQI#({{Vd82wvS9C9bC8{jVo-~m2 zj{uz2N09hrHocagyDaK0K03f@JvzW??g?-jn3_G6FKGbhp4Fm!*=N=M!2q13@8%XsFIvtHMx?U$G%WW&hIJ4#W@iF(Iq)KN0a2_ zwzzFRiWo=SOC{b&`V0Jg@|)i_rf|*?MbWH!d%;};;a`I*RU&`$Z0WPUO7nlb-(E`@OxVPp7jCGir_e9w^mI%Qv^d+yKEDhR?4rlYCgac+it|x z561|BDjQ?vz&tJh9K|K7C~F@RNF*N8vp8KKQpqL#>?u!KORmhcr!?^6wWmD8PcM!^ zSc|Xx#GbN3Z2GupwRi*Gh{MsocS{p&bCaB_Yr_5z5~sc1|Fgm*+F$ zOCKf`K654p1I>Mlb?%HVrdIFp>{@=0?m&lx%yazEBjqUv5ISzM$LBNa?&zQCFWLe7 zIRx6h$mlHt_WS9I%hAW0^9N$_qDK?bPpaf54X)QlN1tSpV}L1|sP0)by_c1{_9nYB zACq&{&iOb5jcEra=P~QAFOgecG{rZt%L|c-~{XWRN_C9*jju%5@~Dkv5XlhW;>%q z@vvkDy51nl2vJj9D^_nWTZ@NSizk0lw9#5J`49$fNjtt&J23?R)*|6}qfc}@Y>VlA z&$={A2=ouGiTYZ!14&DmDRpV8fdVyC7a6+G4rIjTZo4#f@R8-CGUsk#&LQFFd>;Gz z0%jd2aKh1{6T;DfQ=jV3d95Y>Ux7dVhfxga*ig3t#68 zR*jf)`k1FOK?9t**ihVv*(H-xwYf}trv8+9*r-2~n9z0p0(<5 z2DwE(TKdV8G7D9)tK%O+=R)US=|j`R6dV6lA2RTO{TjW%_`R;_11or(*@AMJsApXb zakU1Do~Nq`j-$*zONI7nV=>lO=OO${M+o@2aNK@*&lMzAEDTRY5TiZ z*q5y~Q&C?pf5`^)iA*lG{LchR-nMGL$qRjRC0!#MimyWTKAYRY2V8CML!Poi)G}vI zY2~=erlf(Y*h_y%ue|^mJJ+xP&jDBQkz@t1qG^A@v@@@mTJ=g+N9~7wy;F9p_j=Fu z)%kMbBLDN*d(arE(+d&#gKz!z4#tRa8Sjyi6G)H&KShkk(PL9L6z7Y_UwGzB>Nj%} z7DB>~^bq5;MmqFMJ+yvU1h+k57Q-`XgESz?;{05j#T>y3`=VrJVYgyt>%Yj8n$Z%3 zDX#ybOe`@A{T#ChV5!bACe_2I%}K3)H+{uqu?b>kVC6Gqu1wBv9d$umv9Q~MSY;MO zv0%^zQMeupB8@qQ#)x}>Rk|>8kc0VlYS(;Yee`=)1w5P0;wb5?nmwt-F=)H%B@QPt z(8^}Xf~}UqIGb+7VZLxbcacQLr zc_EedKLa*7bgIjxjysE<8pYJUBrE2H*gNWhN?9-Grq;{U_;;!jeDpb340;Y@4$d#Sh*!cDW8gTv48Rj;T@PD;V6_S;OsrW+sdi!DK!Bh;|d!nN)gABXPjbn8t%8Xyg7+-YQ)XM2H1;l+; zayp*l!qt68oQ|X^I5JEXT4EV?%W=;LF<-Gx(OyX>D=pa=Au}Uy^}4f>!xm;XE?2Y~ zKwupUdv@t;+>F_S(vAyLnR_oNNtV}fYAyvh<1+WY?CxiLoWBDbgc)>O5IB}+vP&`J zZEp|Q957n&p$vB_{U3Dx^;f`Zxq#L06wrxV4P@0B2=}v=Oviv`4{K<_XMgMdgA& z2o){4uG)*W91mAjvmJx*2+6U_U(g3J)EQ7MM-o7`)dsD;$Wd{t=CA31b+*A7f?6@a zZD5KnWcF9FID;u?K9vY2_m__Gfym)Br);5EPQ+rAZDBc;*)0Z$7*w^xIl;uFxA$cV0? zN0#ig^&HD$=4jqzpSxgwC2hgvKmq<@}_=-Meu5Nl;_?^xKK>d%NK+WpCcld{{T>dZl(qPx1FRmFKUDWSzn4xJ&s9o-)O)vUJf`t<3jmlwPel~GXAN~{{PrJ7x=2GGwtU< zqF{+TDp+iZq*H0JH7!`Er9vfoqDf7ZDrs#?+LH?8q@o9=#M%l?AY{sE%nWUHiZe2$ zQ~6|U9qEi(TT2a~5bzd+C>T+^puuQC@Iurh-~V~nK9}6MNKnQCzns1I+H0@-<$a&` zvIrRaN$YNz$JM8w*=04(>A#2ZWetqE%iw7G$-%y?cyW^W5wEtC!J9JWJK;l`@9S*7 zzoYq%KAafTyr@6l2i?2G&G)(Kn(TA^$v$yzzi7!u3pp-Y!a8u*z`4;9&HmtA=6h4# z-iMevi*3#?v^oF0V^ZhimjIe@GpPzkl7{^uvma}yJK82lV<6!#i8W{;cJRr` zUzfkMZ$4Asj7oxiXXoe?Zqg|@dp0xQR)EDyQ;3sUd0}Ut^ zYf(V482Kjf5sQSTIgG2;g4FyOa;N2KKi1eBudyiuljv4|nip@x(wlKKr4dc){OI3^ zb;bo466Br!Q1pqqQVp@TE)!in4UL&q6nzYpOXmCOo#s0opP1*o_ZeMuJ;Ar*!-X_P zBxiOF)IjjuKBu$%tmjI?#u{wh7i>ls$vyI}_|)o<25@GBG%J8$Z zWk$x#PEKl`D;t@gXLXv@jJGp8PUjK(na*d%r?W`3bE5;Rw=c0N{TdS)y1d}Gn$l>4 zgNts|=t~)YVt%7<(L5)J>!q|=;)0`ZM>n(Ph~|Po0H3^TV4u&HJP3o{6t|Jos*ld> z?WK+NV?WlZe>Jl|&k7rFUJZ!hsslb5fCz&L^V7IlHxUMYrvJ+5PPZy)V~!3ywr?eK zeKzdx!-W7swO^w{Q|EeD`Wi>CU*g;rv%eG`h4Ul$MyRAL-*42zzcI2}exuOcV>(Q* zSz*wjH%~HcHtB|rzN3UZ$L%qJbt|tk204dNMs9zc3vl^3d^gj~39$=!#agPv^JHuj zy3MbRmXISY1yoZ{5w&vV{$0;}=^ZA>t1Nb&*=b;~8hafX(6Dt)i!IbRFUKN`m* zKhau~^+ZeWaBi5qd4pNvqMOZhvUov$^yv$Mb&LAWra1MpNG1pr4S&wsK!X$p8gb4Q zcz_9_ipiAHoz-Lhpk!6*>-)_Ee{#gp6G1jIpb(##+Kkh4MKzp2$h|dgL zDa}6!Dr*z^Xri1Kb^wIKU3}7>fT*n8+~)?{*HD#3@4C`E#uQh3wTofG+bTP*ZyeynN?xErXBGqONN*Od-vNOd!@1MN^=H^jiN0C$ zNPuPVcI-E?NhoQG?lRlTCaJp@1uz+A4ZM911vL`|Dy%gn`h;bBI@w~O$arU*$&mvR zUN^VCK$gCh0RTleE}*_5iqb4P@7j;C0d&QjMMfg;!wnSux-UOayiPiT!VS|Ha&Iy- z2Yf-bGZwmmZDLH&E(B2%v^BJ2AAJ1Koom{!XvfCKTI#e3Xu$>+{*rSA zMfXjv!|lUbw$t{1hrZ+V$7%>@N-E2%xUE40`+p$3pBJYd4%iF^Y zz#wZ)Ui1ML)lG$gRW-9WlHqdA*J$Nm3~8JyHf59Z;?!6ay+P|hKKn6q?V|eA(uyHU zaI)6~@vxXdp=z0r2f#%6c(~6<5_9Inq@BlCVD@)?i8)#L?#M?wuJ_2`&KQ_ibHCPN z$b-1^m0)zc=vk&sHKKgT2~sKL=B|M!<)8i*1z*qHIJwi#uDLOCzQ>;5r`tCdBcvPf zneJcp!CLtw=AD++wZ+ku^+S&DBq$>FAzzsP-M;lh0^Pq!4+ge(pEzEd@)uLV0a<WnIQ>K-D&Mw*L%`MPs5h!Ua3~Vf95WrZ7mW}&jG7D4qVYmL< z(5b8ZOI`kTXXE^gdD9;*IiTs*gkO? zP@-M5Fe4i8dZ{i7_GjwgyzBP+aCDaDxcmB1gIzX0|DO;~^P#zO z>YFO37)bt?q<7BPJTJ+W+1YrIoNFG=9eQkg>{?953j+_J!T{2YE3dSxUhxI`60BANJ@Ii1IfPU^%KQ|rrC8E?2oUp$vkSl^E+R)fuwWN6S?ttxQFNWgFzuTGa zEn&kY{&oO@5k!e|{{{%9Xtn3?&bC_f9Bs~+jA0$w0q#V7P)jld{JMPbPf&49vJz0=I0w~CjKENz3MKl7UWEt{k z&XgSdXaG%d^kr~?X@k<7rz(jWy2S-->p>=06kP)QK-4*2QHp-%r=TgG`6x1HX%!0KKmZ&bYa%%ZOJ@QEKq&m!_pS7;6yHkc z%C{2Ja=v$$`0)i04}t<99{#Zh|4JHXpRjS(#S)KKLq6GqYbF1)gkPN~M}kU?hTOV$ zt;7eTKGnT%C0>pFw7DMed&Qh9732OPzZ>UD#FpeI>0PO^36%-yvm;SJcCFQz#d_p* zMqOx8PP%|*D}&Ne2SW2A_AG8N?*qStWNeTmTDr$zcKNRv!xx@uq!9 zipijYh6f-gi;siTf98V$|4p&IyGA-{MZN{jtE2aDEkG|6Eji{qyeBQ`r@rSoxWv3C zkuFsDNG3H~6aEG0%85&Q^q};4a-yAj!@mF-FEm78dVQ5O?Ma3srkXtS_PfE6=p>CU8U!6ZC zrBvr!hQ;ZZ{AzQiBt*Xh@v;u$g%ef^qCWLv_P5b|C>POA-n_S&rjRV=l)v6dIz+Xw zaJNIWG(fZz2Q~pO3?{ZYPC_v$uuHTHCpsFy=>3t2y}j!Mf4`U(phGq^*v6nIMs(47H58x^MCQHTG^B+g6J0}1shgBNEoI*KJr<3DYupq z7;ST#)Pu_;<|oUo$d`pa`N9W19b}=6Nsb}A8sKRu?$KkC|JlKjFLDj(cX!GFPI^sJ zpP1LA{8X<=e&;(1lg9PpjstOJ&7Sit#EdPqgF~5M+f}51GQ2=;0xWrq0l&k zyQfI9`Zw+?C&$}GgMaQwuCzIFMLVn`SNzRK9q33E)NkTF{*yUAsq#CTGC`_n2H^(j z7E$>tr6-uBKbyV5E2bvd zg=#U3<;?`ua;O-~a>xXoxs}jge82FOAQ`h_zK{3{UD6Z2(ygl_5h$OCn}{DMxT1dV z?CXex1gT`9S*cFYCRZnDll>qoI)I~Bk(FOjUXdv9 z%PB+&TUT%4DOo+@DgE||r}Td{?#k+5z?7_>z?6R7gDJiPfG$YN&Vxl#p1!6#^5k$J zDci`&r%)Ku@7;qDecU6Aa<*s_d{OIPV*TktpX?J)dH9F>!c+dYxABxm$nJ3CDfb=4 zQ#$E|G7dR(P3q^8|LhY_ar8*{c*=XGM|yxCj2`I*OnFcA$a~G>VCa#3;`5A0j$Mxaw22aWA5l`vfqmjs!6Ap@8kri|IV2bliF{E(59oih>wpu~Ozz0%8gN>-0}3gp8+ z@s$4Sehs$`_{lw2BVRIDAmbShDGcQ0W4t z?9bKWesC0{RXEYJi@aw9CuxQuWYE8qydy8VGjA`)iG2cn4f#kvg==wiois%2)2p$r zD2kxh^v9WV`+(M>raW^l?u#nXh?+U~7!J`ip!nWNbFofc=y5$RT6&YN1EL%Z$o2SW z>CL)kMN60JdSbNn_w0^ybz;zpt;ZCY3KPO53_BZqLsGM8!B4@7_(YLGVCHd@0NWNB zk)hndA)%&%7oB~*FCQ_-It=?JC4pxXU2Z6#ZaRM4)m2UdOphOkM5BR4*@8ysel0j< zHLY?P47yjl0gQwPoHZ&C#lR3(L!59o3inCZq3q-!^Yz$D z^1p)?Vm~l!WpwWR^v|LlI&oBAd}=Ex9wv=SNB;#(vVn)0qcS+BQ5rF50Ictn$hq@_ zpABFGA+z-Kv1rC}1nNqq!t+FYhXmfv3v5tAJkJ`7>yFCn@&b75X}2T;ds3lfN_3|d zOG@-Pq6f$JwM5cM0e2*5m)%6#?(DIJW=eTC(_CtWx0l?UFURbq_|74h43~p)RlQxo zOR&nqS!3Xdnw5R|qVo6goNM=bg^y#5cjkHZLr$())px~9eSm4lb9{Q-3QIAbuA6p(bGRcS;*Tu7Lff&Z5zGapy3K^$}jneFT3Txw*F?Z%oXadyX+IZh)BG z(=w(_Qvl`TVk|4H$Af)2Dz?tX3ny&q2u>RzGEge6Cg$09UPDWHbFYVJKt*gsigeY+ zUq||X&daT=9{Evpyl^Yxy9m-T-*r=P=`lN}W^ax+xAIu&F}Lk~0AcG=Z{7xbyz;tW z{WqSuus(e#!qEKD*wbHGC>)ZqAB?_vv@JS zjh)$8Ui3i>DV!cx9*6&#uJ))jJO?a5qfHZ>qss}!r0o9a4H9W_G-zR9g-qWXFa~q- zg{gU7G)X|?uB-O)v~ z24_aQoML-OWt548?b z?SIvc7t6jX%s?lxj48VDBDYz))6nXL=G`RTyoR3`UpL!vM+8T<@Kd&h;7AicWptWr z=>`RD<7H^r7yXQKbKOn*lx0eAit5#VrQKg?(O*;QyHyoR$>;Cr`7J$LeIvAHyhVdv z`5U|-hHNi%|R<|QxD9Xl%@E8<0q86;Lp|^ zsRfFuUa@BVFxJAOuT+#|uaMYtv~9eR$$pD6V3d&8YTeS==Dt(CHr_^_Brto|pOp2C-2}E|Z=0(AX=|fQPw3N4++;Sn z80+;JXSjQzr{b@M-RWMvrjLg$bss;-+sHZVBS%P8+8bRs*3Ux54tE#`fe4Wp_cfoaer{HC?N&B*?qmn z)=z4@jZ8JCDW{4_$P?cX}cJQcfqH1(SB>N)8B3#SZj9u0g8&u_& z7;9D27NzM@v?xoLiHmahqGTBhQPt!{BNR01MnWnZbQ`=ei~EeHCZA~EOujKkjb-YGGl33kG?C#y~^CLR0O=vgpO3K{N(ApWaWOqD*LA z`$Mvrb6-C)PN5D)zA@%0Z=T4)wx9Nh7xogp@WabBG>>R{Vcz$S(hG+`FHE^ZD^WP3 z)UNM8y|C?nE&tJ5?Arc5(F+mf#`2ai)v}Fce@( zg#5y#5HOwTg>j1VUg?FM-=R?tgkE_356Yzzy|B^+I(p$wCDoZ;SnOhSM=#X6SB_q| z#(kWm7s}n+PV~apQZo#?Z+fH`PE+J0y)a18MK28S!w;5T*tpD^pd-C-uM2cd@IR&2 z1fA%Gn_QIc=!H4%m7^DCx~~tIUI@DQ`=J+3Rjgj57yf(FhmBr%Cvw>7g&UQ{d!-ll zIDDZviYW*H0uG4lt^`_`;-H1Aj+658uDreLqLmvRys(m>`ir0WYJK{Zd}>x`^@Gm; zw#H_XU;srB9MBnA5cEK#B(kuzGqND`p(C(BQmvhl1;QHBFbqUrSvJ#BcBbQwZ~FAy2swuUwyjZ7305Z&pc$ zoJu4jhB6=fofRYdVY{{$FQa<2yw_f;yV3?efq#u}B|eY=+YI($*hTDZZs4#kj@}`~)_ogCm(gANOwwSpx>P_Q=*UB@4 z4D_^(Cx;$PJk^H6O5TJrE>XD{0?=aA3h>5Y34S)Is`Pkx(C1yz1-mtu&^-pls4Xd= zP$7^GSJHB|3}6l6;2?QkIn7aJsI^jsXZOpylB6TA5;rpJ@>|G0-)nh|7*rH~cq8HE z06xqZp59To_)@~Xa;vB|XFbtu+`LS%zMHYWpMIPBky`mfWYuKPkL$O5jb3f&N9e|W zO8!X|;4$T^bYA3b%kv6X-jSCSuCzhS;xEW0qIpU*!Ue}z#=`YxJf?KXhwm8-Gaj{k ztu*BtvaTFtPB~U7-*rmgsFGJ)I($fh>2*@I`f4ax`Z1M9Kwt}_7l6@%iEeO>%g9xj zA)>0e(vZ;$t{|4Xa2#uIl6j3}#Ql>x$q0jrSB5)-WXPzzP1y>=qBx0Q;@gm)_sZBG;Ul~FfPB#KC3+I8EZ)4fQotq|0%QMD83suh}SNdWXTvfM2ei4o^R zxWclCrncEYEUigyglHYKU~m-mv>OfOtBJIe2a2Or+3yD7pKg@em?&2nA}dr7wU6KW z6ofUCwS$D8=f*H1W&9iuersus_48HxC{b&2R|(AlzZ^p0v^ZNUC|3Dq<*D&tBVVJC zR^U5EYRZIL>%!HBUPPOKHC24#(Nbh;wRO|Uuc0dmqi+RSS|OA#qbWJ)6LZ;bZ@(UN zf0J_29A^wA9um#K%p`RNS$ybeJ?z+)eu&)&ocXZ0g#Eg^1}y`(!WAK>os zE_HCYrV03Fyk)5c#nrYEfjWrKaGQSRA}b<}n(+HU?LyZ=i+IBqX_)7ECk#pFUPGGu zN$Ixw8sR~xMzV$GKowNYOdp}ktn~4e$!HQiPD-D!JI|{+ZIpgzjmpwx+9>;=Xw(Rm zptwO{6Gx5LgHbtpE*dp~WHK-Q+KFj^ZaH`?$wICb${X{5H}_j_LO$ZU1jn6ufmmMP zt-9G+d4cx2**69D1l}z;yQJEidkk?f9-S}3Py}Kf)F9Xx&Mg*jIzr`FgV9Ihm>O$s9iFlwdG1jAS=mEn3`zQwy$=Nsp0akFz^U&jtj7~ zEJ0?o5-_bGx*69f0@EyUL({HR`g86Z+zCy4RHr)33)1Fo*QL^To#k)6Lmz)?!VyUy zpL6k1`gq^;@wnd@(Uv({*AI?9zH6}+Bm2MY`u@_#Usj%?k4L(j*r0yJK7G8ms2Azu zM}KW~%w1>KBac2lQ{~z>eeAiS9~S!fyqn0L-TEkfe3U-+38bU+F+|N#`q&8gcrzTO zk0E#8D}DU=^N&3G_@3__Ui$dkO8>pn#|NOFw&|D-`e|o%)lWM%zax3)pRs%c=x zK8WC}sCiY(4XprPHdsQsX}(hHLF=P^iHr_NAI*z^k;3b}V+gP5qYW^9wDp9B4Di{m zyHChT=}~%I+8U{wzOb`l*n*Q;J5~ z8K#jo$u!bnqeJ8R{;MPB-o8QCb^uxsRIeR)q*-7Dx+)21QqXB!0}6N$sL8>d0=GaP zeY6(XBM#DosPhI`-Ql<5%PyArWS*myGdJjl z7JQr^)ct5=;hxP-4GDntVaio+!-hz^h*T!{)bO1$VKtz+{1_s?iVs5>|9QR3D*Hxv zlLT%dQf*8KI47}IeiEQE&s+ICCc&Ol0F3B1-WR|d26$Q+A_%8;RxbRBr!xL10-p=0 zQ&Vv(T$Z@e>S|QtK8>l>6J+k+4Zu z!1|;{?y^4)|L#rb{k(yWq-Ey_m^dytHT9|Lxq%=ZjLsHQUOF~cExQ3zM7!F<;e>mniSHC2FA1{P5M?7w`A!uX-keSMO#Mb65KML zsZup_i?AWowg{TGC8VIqTc#6atD7DNBHD@AlBTCwn@#^~+U6WWbKm(25?j8UyxG#6 zxp};b;uO7z9NbLeJ1p&4n?rnHE2NSs+B`i~1#A>1GpLb|r`QLi0;ct`qY9YTaBuE) zsFL|UOS(}3(}I7mIJ^r~yK=N5>xBj}Lx7{=q+M9}eeUVb>3CKW?kHa%4YeSLrGr&i#0{a?yS~ z)3S?Y7Jb>@kI&N$OMS2H$0zz(W%qYCN92Bd<#qetj|=@cNB86ZgZuHcv;OY(+Q5a*g<=fsCqxxmOJS!>()@j}%~$w2Wq;4z^tern zyTVq>F{2cqGutfPpE&A3J110VWN78E15-2Lsf<6zHVZL05Vm>sysq1{v~?WYEM=f@ z_J8_uQnzWTcJ;(It8os1ZI1KEu+K6|bnNq5Mg^!1R*hcRblk)?)AUKUSte%PvCXKz zT`ldVu(T*laubpQBwREDx+B~CI^ks!Z&k4G8r%Gq3SewAqZB;K3!xVhX0!=D0*3M` zOb?7eaH>?cnMvx{=7*Gx^iC)`g%Ijs3YeHzlF$8m)Oacbyg3B6dFGaoQnEEpyzMmj zXP#~G)AMO!pogvhyi;!W8R&_|Ks&ZN$w1G7fyNF&tE9e6;h(2%Hr~7w-+V?d@y+uN zKi~ZGNr!)*&Q%^g=t4Wb*|wXce(rnVpZC9CpY^#TdcQ8nJ-T1N2Z+1New|b0_UplR z{ebuDU;e}jlU--m6!nS2vR@BVF5;_)Saz|@*FNL#*KNA##r^u8*)FH-|8X}*+vYk3-q7#gRMzD2wrr zvJ?xZWu5(_yq>~e-|fwt==kfKQv9R*^iv)8YtQ$OBJpllHhT{YO45ocZs~MfQdVu^ z>rQg$?rfOMJxVt+=<5+h;~r%pc1s9PM0=0BVOWn__Hv)IzQO0Lm*hB3+bl||oUKZd z-bu)#7dZbY%j6%W_&VP?%Ix{hGs@D7>diCC;>1~B3C}1c^HSZSED%+1(x>HWEb-I$ zMB#Uo$)Kew9g+afd8iPn9g`$0wnJNlL9YnE(7`ujBltQQslY&SXLb?NFE7)N84VyP zs9amd% za$mG-JK|6)1tvgt2Zu%L_!dplYe(Kma$o~4IRw@085W4u(J#GdwbH|^L7(dLg4)?RA2Pbsp=aK%abeo~A% zmB`dp$81sJ)kreesg6o$dYPh?@rRcb8bg{2&a5aV2N%9bdIQ2q6G_v#rVnsMrTRcE z?ls>QQjhViIO^Co8b#9AaP|d?;|fgEm@HK(B8lc###Ab03ODWBn56hbQTrr{LH7tO z5Ca==gG7oMWJDR{8-+d43&{h@R-PGss*^vOyb1}vH7sS$S5<3PDR8=GC?m6)&^8JZ z*1*6(B%TsU?<9TFrk7f1Ao(pZbEdMtaaV!Cm~<{8wKiZ(wjIVM1^zvrf){R70`k99 zh7n!GZarzBl&QZN;ARXG(j*NVHU>j}wYnh$oP#L~(^f^SkV#2c5EOcPj2#(RRqQ}K zt*PRRr{QuDPkY17Jdd!6PDmYeLh4CQNIltv)V8$6<<#)Z6Sqv)(eMLBL$5Bh>?jR3taGC}oPeK6TE+S4{q=YuO7Ql-?#cjmUQ zuPa@Eqmtt5oR^Z>^W~xhiv;s9Ci!&9Jo8WDgws{sGTAp3)Xlyd|0G?6)9hp&{gW(p z{z(?6_$Rr$lYf!{U$;&B?#^Ji_Q^J1IL$$Ho&A$6b^b}PYi-=WaC&KpZQ8>-nN*mA zl5=R!wtq_QH=X(GUfHi7KlMo8ueW6%-LIwC!m@KP`}M;S+aSlS*7bwmug`JC$vw-i z@7I34_9|-kCkI(ziVJ?__?+>fRxcQ1n?hmX*|_fvjt*7Rb-D*K{D&sEZZZoE`;iqQoIAr6CMn5|>z+~Z z1g9V8wn-08#+PNs`EK|;DayksIzAA_4(7aSc^AH$e8YnRF5isyscMASp!Fx&KAy2w zSDN!-HMZC+yoz|uwZ?FhEh@jw&VGP6NsfCH5zFL?!#Hkn(qJNV?Vx{C^6cQbKX*6n zm>-fRd^bBHRpg#QN_461JxHaz5^)G1t}LI9)cg>c^xW}GpHtUhrS ziHcpM1t8^fx+@Y)H+2!W8+w@h!!M|6xL6?-imx9hMnyjK7X7abJ}7OZIFU8>76(}UwsB&O}@rSZ{Y=QL1n`Mn=L&H_RHqujB?2mV5vFFw8 z(--KMU^u%|1ph&|yms6dXcu1lz4!vHzS#EerTgNw_w5UG|Gf4PE+b*jxMe`5`UX;bC8~Yx@VgfB)&bR+!vB*fmA6owA=Cj{Q5& z<(o0auCYNU3~>8*e_dJQdujiE;ybqYg>%=tnW<4)Zf&jBF+@7V4)@Cgu4odn!**|#H`lX7nJ zx!K9!nlKEtJ4w3D;@ZSqofvXrw<4?GV{CV1*#CT8i^>l9M;v$8F*=inb2jjwiMsNY zi}hPvt=}mNSZj#|l{xO5Z}5rzOYqy#l|_MFK~9vfA3Lg`Z)IbCbe%j+;pmeiJ2-E1 z_qq7ljOaHQ$hiqJBpIzlXyUKlb z)d)(WZ}&q_Vj9q*`OYZ*}~BmMSp$`#F5x zqI_DAE1M5DG5qi_d0zWNF5x=RKg=bpWC3FE;M%V`g-m00_uY1<5^4RbWUCu&cS+6mLpq zs+1BTrmzq=ycT5n=7cWv0_occ4Njk#u8{9e4qEV95a72F3Nxwr^Z-QH40CNQ{Rcl8 zf@#SaJM{q#)h5LWleUHwY)+sJvyuIN$D|dkv^C#I9~M-DKpAlMgU}-SiD!4_gXA`C z>%_91_I-*z?AS|BNYhgh#Bd08J7F1nHPF`Sr(U?_U?fJYaioP9vB3M_v5ozXnCNaWJ9JUokSK=*h<%RVF z(u+81s;)ApAiC4LeUpx3;JB*0gVDVv@zfHSS2E$!yh~dD^i}e~bzEKLeL*{tA?TmU zptZAYyv|!F46Nqt9}Zw>Eab6{lN|!9^6c~lim|IG`izyMq%J>a!lmXlZi>>JbKg=@ zNI8R{%lT(>UhbXs`53ifivQ&JBK$$F&nJE@xjvs9IH2|U*ZSn>`uu-&eIBuw?$i4G zY2EzaUZ3Z^tI-=7H_fge^7XmAcpvNYw_?_-AKdzUN`CLJ&-dfG^8nW8nwPH;@r-wS zM>|K~E~>k7u#wJl&?mJ zMjfZBg*wu>vwxzVsAUn`ov7vb79bLmeT(wl?Fi>_Ke~|eKobiB9zE-A*Sq6BS#*L( zXim0d3MXl22*|#8@5G8p9RIZ4c7F-Hn0Z~!DQXiagseN{-`|MKp*`@jn>5hE{ zMcd&sk$vd4VVwohYbKc?A>2BiEhcyCb~Ib_(^`t;1O;IUKS*5Au!PDJksOh#pH$qC zWO-$FFyB@_EYlBafxZv+1{G}JCHkFwi4||=B}N*H(1Moq{e27i4~_mRlZo`)c>vIe zg7TZ?izg-z%=qbns(j7J>r1Fxc+kfze!IkJ7?t?6vU#QvjZAIi&)LzJ<&-GtBV8o2 zjtF!D6nQ!iXFNnNa?QQpuCa_o?Rt*o-k>Yhg-UGZFEYED8>9-&S1#Z+?c1Dh-TVX@ za$q3Ms!hoGY%&`-DK_F;hU&ga1*kJ(5}X@L{1F=W4a==vPHoJ?y)!dh!y`Zs-9W#w zg38^KXkuJ}e#(6yV?ApcS3OB%Om36vk{0-AS%t#ewmmbkf@` z-%7#E3%L4+0b=1Iym?yfKRNH^)LeXr?|U5o%v6g;?&J}g_V3`Eohr%ym4-7c1*uC4 zrF5Le=;oP|9j<+kdAV&#xoqv1RxjK$cE1zq7 z^=kPGyS=J3{w~Yn=b9W+8~63|*$`O5xW6z z*z3Hx?;tkfxYuCc(v2_z2$qV@&cEBMz2BrsC7dh#XbQ`MuWKUd@Hp`+IJ$;iDU9N% z`}PgRftTPj8lq1dw*nF~ArD@~c#CLWd_Qc8Zqf;In<|fif4QdZy!ruY92Zv@c(^dY zS*6aqHK&o*JU2A@wBu87Z>{{5o|u(9SQbuKRo}O)cvqv#}Tz3{^-lSy&ryBDIVB< zcv;WFl|Lg%=_Fjav^(KS;or0-b=VK3jM(|`vnCfQdH9)30z0_pfoJS`ta<~VRpl?} z#2p%YnUJOAP93KrI4MbH#Vb6p1!iY`#kRn>R0Sj-lIY560dxl?KN*lJKbe>+KS72d z9Qukzt}MkZNQ8|aTqjm*NUHo~qLZIYMt)+^>@#eh?6YlrhA0NQmtwErM{qWjqMTjA zZJBUFns83!ZiK7w>}GKW%?K$tP#hjj{EAV_WjezK>KKold}FGMNv3dZ2c~e8$xEhz zYl}B@@)D`UwO}hI?LzZ-uCdI2Y14Bo`=`26 zS-x!+J#A7XF)7Uw$s?4J1cdU+QUIoyJGqQSRg61xcOpi7*sEug3c{>mt-67MkX%Hb zRnT684?b6!CMyCXD}@I;6&$NTQeq_WEBTO)nF|j)!T-SY*|LA>5=D3gK~HrPvLQBy zNB9I99!*Bx8Ph0!FoyI^j3g0&1Cr{Tlm=%mUWmaa&Al*njBMpu(vp?j(~1b&Wou@x zi{Sme3PzS$)iI86KjV9!5q}bTl}d&+#v+;HU!sQMcDyoLvVyp#ep;q@74i*LHSksw zd)#VbkIA>1A=#u`M<{UCt>aA=a_a3+HhS&A!05rYYQfr3zW{_FPt!>G2w@FpW=|IF5PQ7$U>@NH@ff_y|A9Px2jt{ z(Dn4>FR2LrdU}e=!+6PVAT&iveRMr#Dw#I29du|Q+kvg8FETgOq6e~`-lMq5W$2LB z(}>byJuSCuEc2Wf^c>4ROV>kQPk-}8Qqg+4P&ZxH(_I=<$%^cMJze2{;MUXgT%t$v zdb;y@YIwNT)0$Bqzp6AH2fCiFK2t^T*VDDn z@}Tu}`WKF_rw2rzPImO^v=sXEIp|XeBRRDX4f_>yBe|Z+cYiZvoX%M_y_MMWDfHlK1JdoR}Tqag+SQmt56U-!ZIl``SdB|D3UbiA5nC9B=feXtyH2(;eF7` z5mCC6kKiQm^6!LXWy0qjfqGghfjY4RfjaZn@o|zg=!n!=w}w&()H6SyvY_7CGlBZ! z-Xu_$k32jJ>J*o5>VoR@|2pH}`=Cz`bUpp%Q}odXyPjU1t0MU8>5sPXp!GE8b4S3YcPY2XY}(R#Y)vzA<^ z_4E>DnykqF*V9kD+WsM<=K|&ug2Kdg!A+GhEs4kQ6%ibDKJ>pr(gh z1)qO#cpJ@8#KyxkZ=vM$wwV>bIg7)tfkOk$N1wT4{^CG8j-T^P=6Gb<* z8$M}y!N*Hwj2tl^YfvmA6GA$FNItR6akb%tQsm~Oc}PN2p@EKw2?E2vniLVdGX6wF zmdTlyok3m(Ng_bcyn4aj3qn=#&PY`)p9m>R-otMDw9PL&16_*nX#v!pn`xkk^kvM!8Tv8~y+yx>nh4u0qm8AikDiR7 z&m5+N#)b}rLfPLGziA7#c_?F;vdQ-y%B|uq)~GT`%SHy=8cnnx^qYL#wM(D6St=L; zLW#D^RRo}u9HmhsG*rZ-gF}e{u4%w%xus~InjSj#=jtUdgatxaT?nzs`BYwrk%b1g z0i$K`1{G4MLa`rRAXy~S08K=a!FX7RwKRG#NZ?6TrZ{D^ZH0LeYvnZ#%RzQlh*)$4 zX3!y^lN^Crp7M&R@dHNA2XEA(e;tV zb@aNS2eUr@{*e!0eY|DZ;aMLqcIobGecT5>es5R$@v`pd$F&b@D0f&N-O_gqp{sY9 zA~kei7q>!9-N@fJb#Knto%}t;mNEB*Y!v~19L2Mj9^ziK(a%rquvnHZCbX*3#P0`A zPiik+WzzH>iArFpgftymND}oVQ8_SG2w#*cgeRJP24T>m&m@Ew1t*I+M^yT>L1^?@ zIaVb(r?t~NIf=&ip1Yd0quEqVrQwM#u+)1Yc2EfLCGaAxL|IV}a|bBW!VW}9l9);A zQb6bVA`Wv%%`KXk0aBXee8r!C?r#aGcuHq6) z03Qa1zMxrDrMYlLvpFGnPa!QOollaMWE##Mql8fO9%yw`_!zn=LqkQO-pS~xc zxKg@TE(QJ66L6uRbufz&lhE_X(WOl6g%}uNDGoqw;vmYa;2l16oPDaP=|4lHZ7Llj zE#)K`p*0?7v3M2cZ3wCq2emk_VaPaP`Vhl6Cpz-8$dRAHgaDqj#$CJ4Ew7W4_4s6 zb8OHbbUmc?bm&J(LF?(sy6L)}MwH`0ucu@5RboB8=VW{O(5|PSy}!HlG-J>Qx1P42 zdU)2;-?()5wVuv-c@sKL_}*B^;SwA$QL;4Ua0%I(4;{I-W=|mR&r*fTKjl%gEd2Ml zKTL1lx!mRj-pZ?4`HVO3WgeoluMbAATySB1`efX4c=s`uQdU|Ksa+LE_qaH|;;6aY z=%P2;nQn#NZ6K-O+&-k=;AmhYgwZ8!z$>P#3Zt6}qP4O-#2se;X#RZX74tgyd-m1r z4JWB=JJw=wKeB;iAi_ipM%Uq_W38MnX7R{Wt6H9;8?S1~2tQ!ac>gAUnKyJiCYJT` zwH7Vq*oaL9b(J_8-x)2b&Wk=?7MHd}$<{HigCv9Q zlIn{+2Pi%@s~jBzKFJgdmD23`vzgxnPQhT^0VnQ`ZsR0;}T9y8(|ItVdsRn!6u zW-Wh01vz6Vv4|NO^tFNN@o;XTUFC+#yhwKN`y^{QlX}MyN^(c0ZRzO%1>bvynxV=+ zP9l}iCN_=Z#OCA~9=%1Q46-nDqYby%=-)TE2G9JhZmhv+1<1$9ZEmDBi$H9y_lKLE z|7fSi6B^M`fn}z}D&HSQiR#ILH2N--JI&8<^yTg*=^+zS&&p*=yHYLdykYun{8WT1qj z*PUoBkSq)t3!F!8rW-8l#mb7eZW!_Kg*XS~)|pA2=MwCQ!2M08e7 z%dqyps&rvS^o$KeYh&<-UgyQ=t$IOcOP^alOvC~`sjxh+O~c-JJi6MsNO?gah%3<8 z^=7=G{6^nyDYv~q>aXye`!9Zi?Mm=XOK@DBA7;(ntgtp65!1GV{&22*%@t2e?j@F( z{F!R1&v;x#g%dGfJuo6OURRd6V_lZK-~>yahuAYy6|+Qrp;;MXn6%{fac^LWoPU;# zfcsR_7^_uN^>8j)41q`35lUv$yj*S8rZ=3Y!B`l!%0eQee`nVg1M8*YJ>xN}lWAb* zYrN9XgzoN3CGlTGO?MmPQ%ZUfTc#OdRg+4!&}6@x>2L0(=D}rJ=?FsOOLxT9a>X9| zP5n;%rj1Hl(DfYrrhPQ?nZ+=9z@7S)xoNA0Q~h$8^D{J^UyO5;Cf zXTjyWFzCc_%5JR%(WpuyV@DEw@q>@3Y=7_c#qvMV3V$c`#jDoi;oR+ZeSheS*~&}w#Z1dI zHoE9;*Wj7w>4ueAo)CJGz8K(VIJ&R9Ir8X>?;mF^urK=J0!8U<`r_HUEMK3#c)q_i ze;4}VL4|uheQ~e*q!WE{qe8o*FRESi4)nz=g∈aj~VGq%S`2CzwiKeAW-!FMYA= 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

Hn+7PcvUu(GReT?UCc`oGnG|$C6|G;xmx$(+m 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 EYt>Jy&Vd=d|#!IW&05V1fGkj_C14Z9Qp(DOk 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®hQA-oz;35?GB(nwLps_xxmHcb!nf{2Pl1d<$(+lJWZ_?cy4Da z>R&Sy=7CeK!|D-g;lWC608X`1(8J7Dt(=W z$I5!i0Se_(M~4tf}zDK167K)cU4 z7D~JIdT=Rcf7L;8xhOtGH+UcF2TV;FHJn?9Heg0flW%kt?kl_6!5TuoavqvuT(~o( z%^Ysu5uTkWRyBH#+hoflJvFJ(7h*}wie^A^ldmokJ%9Y)S?$H&8Mc$;^VXY*LD1+D zjRvQ`m72KG#f}E#A>@B!G20U<;jmL2-T4R5qw7o7(ryq|m zP31b}z@#_q_>ak`$Cptmr_%A7VZ*n~GESyDGFCaJp0W8|Drb&nPaKk-qViqDUVcjW zd-5t7>(k`l;MLq-xsScnHG$P~DmQ%Dh02#<&E75yN_snGQ45ga4WFdx-I-q!&!FSP z{v7>zs(gMk{`o2Ona!K@D`}0#Zw$Mw=0=3yvbo3-k#NOwfgP2eiKW0zIDG*rJSwbey`qKT=eVe%g2AyuLB5< z>8FY+BIxR`f@28&{w5WCgy7gBmC+oX(b{3^ZLWUXqu-=QN%`Dx^{r07U3{B*YtnCD z*Kf`G?K@ueZ8L91c6#xT*~l`wRv(s+!St7TrHw`4osUzkk8-6euivy@bM@;G>or@y zUS++CS%9Olx`hnopU-^rFdgJG-*NLnI`}bnI%RZX78q3@ov-3pAB9T>>V98Clv(@- z_PP4ZWB2X)!IFBIn;T1+Ha)`+e0)Z%{d4%nzFN9G%q48JEsLIsp$H5OzD%Hw4^mKa z_zajn8fNF43g(nN6ijU#=2N1=OEk>A8s?J&s+>P)m<B74D?L z>Jn}1ufaZkUA3(t0rpZHtWLnz6e^S`I-yEyr82Z_o(6j{0ah9ZlU9dkX)r}l6j-AM zo1(!UPk?q=W;RM)~8f@#I6iRL-jmG4RIM{YF3@_ARiXN)AMQH;l`IQEHOA1vTFe(mK z^h?01HJDI6-L^M0*mpHp57KC`9&xaVQrZX&CNxunP10cfHQ2q0(mvd0q2$eP;aK-# z4JN{n1{HDqsN(_DBNkbq)5I2J4vsyEG1Vk$`zM*ti7P(;Dn68tkYvQDJh=9t$N0 zhzfVpU=tExP7QYEkE(4=39vuJ!IlWvc8r5S$=0Ccrw!!DJwW3pLoR1lS`QELVeFnE-3v zZK0&6fTe1%*$J=$4Ho%>Ldj`CsKVq6aj+Jm!YjX`P%HlNxT;QWBuE(E+tOO0-O(hx?HEO8A z2P6WP6r!wbWEVC{D@ahFRFq0nKNh3oH;XdMx|`B=YEz6j>%JEjmgpIeerY_{6kjO_ad;E3oEPD(8FzA?y&St^1sJ=4^6@O%^IP+k|B3CHK z+jN6e$GPQcm{midFK>B<7Odvr7!?k||AzR7;s+#B=Sphy*oF1JhZM9~0&VR6;`)kK zzjTOKWaZDi$+zmS*AZ&oj+MXer92-NnBXa)j@5lijM_^nqP|^g<0a-hEZZB@r7K!1 z61R7!s2!3kx=SO5a=b}W<*lV0658!Q<$&d3*L2?6DZfW*Xs23W)XJR@|Kj&qXDPtV z8%pYX;)%>smXzzpNuaxBo({Y!Cf`FVUe=tbXZL z==Y&tZhY!RXod1PYtTM;02H$eC)&G}v24rz&L7jN0V8@YCmpo8?97$2R2!q$q}tw2 zwO8@AM*T$qdpPkT*e{WW(8NFWr->JpN+*S-$uEfCP=2FU)~=-OBMp{3U!uFJKg>TN z0_aQV#p0bIQ>~o%_((}1*?**v^(Ct3ufd-q{#)_GgIXjB2*1$V^l&q7DLW8*X&c}A z-4yKP;G&I&GBQrWO#^MojHI;Y4S0y_Fzx173EPhdHclMR2voOM%+?*b)=yk zt&<2sV~S8m47(+ruib-Jo|^B*ug!PkEmxOjq%~tsp{lB3BW@YNyBGam&ryq0x%cE( zr&(~&+GvRcaMPPs*gxr^&^v*C=_fcOJXgZ^cUNfMMHoS6O3*GHWb2@_BsJ<#BIbBx3r~Y1+u()N(Q18od=W)y1 z3HMslN*pIojk$0Aq(hcb+-wx{G{`n@@|KD9NiwgHf69X25^<5fj*nlCV@?-k75&~H zkOEB)hxkYcOZZj4Zygx5$UsT^%d2=DMh($Q^eiXsw~78}#tpf-?fRV-&huN3$YQ;z z+QWZZk~M0T#QUv!KR&wwN&K76SE~D`LwLOMkR7=11ZT@uqu{Dnt~I#k;_{<*!+EO; zT#Ktkxteet6jze#qQ^0+)QGt^>QgA?!6`{gG9exQj-iYG<5o! zq@w6(Q8os)mqsbvtXQyk2@day?^VM)XOnsHk0Lt4yP}G)nq>QeTh5+7X7T&VBS)h{ zch@Av>}KeW_;xrRWc};ksiVM=)m5z;!uXQy$CEWl8DODY`2tb&Po!V$V!D!=y(>DN zi&y?7&ZS7|k(Akm_n&P3)nvLgp z0ksnA*~2lG`UUn2_LU0;Lmfz2dUg1+*w0;!pI_v9E7`Q^^VkSiW8xy$h9ozGjpuf{ zcKFAl-yPM$y@qmWFqx$N;UW%|HQE<(puS;~ZLUwQZ2b5l*QR9SrnvE3vumAyY$JBS zRU_?5Sa(N7hkXq6Qlsg4-9U7bQ|nMRZVca5VNK>C9418Tw*HAT()M_6^QgBQd}Teu z`+Q{&WQRXV^sg@vlY;0jn3y0#+dw<@Y@&wG$ z{V}S)19Jt70_G^cSV^d~{!%2giREpK-_>5Mow+z=CRX;iv8_nxv=AEWylXjr5$n2n zfw24w&STvv&(*c=ucN#!xY5ep3-R1Yq&^3@>{)U_pjX{uf?r-Tgh{~UmM4S$b z!E(z1%@NCK8W(a+ko^ z>_>twISMw0$mA{@Kf;lCjPr0c$4aZwhDPNo8R35>JU&Ichl=}d?f$8_WmASUA#sbL zN8A0+7xd4H-P^4 z0R_7Hxj+=VU?m^16Lk@ko2I7|l0=;=U2=@9nx3u{P{l^nH_%fG49p8Oghn`Ywd{0< zutV2RyR7Z~p)`GsefMkV>qY`krZ3tuEeLY}7Y{JHlOeZ#ndD{Kxk!?$eV_O>Qe}z= zLtTUbyT+c9Huv7DKIQvJ5r0HsaukDe^h6ArU=d+zFQ{MhzZ>+nkaa_6c;~#P0dV{3 z>tuR=;6r--Ja7U9xMx7Vt>e+5-*>5lwa5cfmAPBtj~iSp+w8c~SiG8$9r@261iNZ;WnK zxg>`~DHN$kSTApuNXT=sB*-xbJya~w?TB95qegXiDogv5!Z_L&nU*UrK-8>X z!89%TUXkfq*PIFKxIr9k`Uj*^zdA)`RsII^s+7#$phzhH7qAEEI&1B58#fy zL~s3#kmyw({8|mmEAT0H-%4KrYha4skCwFNo}l^hk_x5^Jw9h{cE;zxOn#pU#|~sj z2M(4mVy1TvUQbr&8qMzqYJR`vZD%|VO!52a1@;O8y-fohem_w0dp+Q!DUUX?1W8=x zO+IeZCRmsrc4yNV+B8~ydOt>;@e&bt*cL|az*x4D3xd|vme3hWHo&Bf;FBTVG@utQ zM$)8yiUm^iF75B1>9;2JgWq6{=p%1(I8^kJq9SY5Y;!v~G*Nt{=%`IV2IZs^Wl)X^ zlP>4V3POi3*2~4-uXoc4!seyIt|V-YcN6Dtg-kwDWP%Yav7{nILaP>dhbP$|R*XAE zC-@dw6Z?}vg%3%?Z1O~^aQL<`w+%~!-8MK4d28^gKna#p)C*K#Cj+EZcZkF#*rz*0 z>N2A1!FkhwKB_C&Cj#xWy19g=QIMp(KTPMCCn z*_><;v9A$H4>PgD=9vh9s!Oulac$4Li3>=A{zIh)m!6KOt6Df-#N+Ye&1j_;JKyf( zJJ-ca*FBp|)+gEaj;w2E4(=RzpjVbG3HmTRN6SdHrh2^Cb+@k=v>zz~%RfSR2*^fl zN1_orqTk`GE@MbuBPs{dc^|4~YK{`o=QhN$t0N5^;++VGH@_QUNqCWBC&+5cA6N6k zPx#3EAmg{vv}JzS@LFnqP@_o8H*6zUrdkso49u_oip9x6`{PS7Qg_(3n1ygw zqGYi_(N(NHjM}>i zHfCMKf5et{J(Uc(YOdmsXHfnr{4p)RTuZDYzbqoR=8t#3`mf~|qgEbX(L7B{FVSb{ zzr~f@5Y5BM2 z>*QZaq~+f^$iD)AB`4WM{@s|O4^^Y4j}8K}BmYXyQ{>;;plcTdFosAi|Kj*s`Iqpt z{44I1{44I1{44I1{3~vef9wCwbgB-4(DV|TT>mB7k<0*4DB*PdBCCI)*SaMKi}SU@ zTFf_V_VC$TbAtaKqxK~}HAiKMiG}u!GRcO{tvRaJnt7^3B3W!2(Rn0P=TPFaaA`_n zA}gPEi5R@BCQQk*YW>oF%h$-4pKU%>zSKu_GDLU|2t}oH)k<<27STjJH)=z;(%nqA z-+|wFXWBt(1?sbL+1vpM;s7j zzBXzfIh+DxDlQmYn)>d+51(1QFPZGJKbh>$FUYTo-yQtM0OgDPHu2leZx6qH{Km6b zTF&one!Ka7#_uS?Ot-Y4l6y6V?TwT9s?tzo#G>x4?b;5Ftn@wiLkdtH?R z&1?z}WNF=ubn(iB(`9g-iFhG{>lchEr5{3B?C^kPj3N7;sM;rp!@$C>jT9>{+=wMZ z`_d~QmZoS*N5uTM7`YTnPikHpHslm~M&ek6;io6OhmuY|I~}IxeCr&qbyIc)I+P0Q zrd*$ObFMW23lGjL#VTo@_m&~v?~_H=-y%B-+pQe?AtE;K?%hM6*aH*6Lt0pAepwOg zm96CuRUN1DAfM*sY#CJ8`OFO%&#ex)*08wbS@oKq1R!)14uh$h}YsK z{^V>^DNcBl40E0Fi(Fr9IwIO0D0OY)X9zmk=rUzi6_rUkFqgna@1`S`2=w8_)@aon ziiT2$-8@7ClWL60$#gBHGkH@KHZ3d7&y>+f9zF5T3%Fz*oB`@w@h!GOHT{$vH|+lc zR)AV;_0NP?$!J_Zll~o&fqhao=-K}%hB`cFQ40ND@Sa?|>4d_%)5Wd$UW@c&je5h} z=}rFMKn#gsis7L5mQ49Y6A2&+p&&Fn8l2X-Q(lMD(^c(K;7`q+Ed(30rtzP#(SEiX z8;{IVbLWSTs<|^`y?-Vl&RF?0Jzw@)d&+#tc*)cs6-d=;(e2EaV(#zM`LcpgJzvUG zRjv2mGA2%W(Gdh|R%X}qx~O%nJ%BRQO{D-MyTs&J&_ zsnOzgc0py`nmC-hp^r~x^=4GVl+ z&G9n7@wzPYk9e)KEbL2J19EsIKDWZUB^MooViG(FrN$j^g({x+c#2J^F=d5O=BWa_ z*8O_$4ZH7WDlI@C=l>;m{i^2NS+ zS|4zuCF57=1HPqn`bz)1@)Ui*NtLVdyBuR$7_0Y-V*I5fiC_|0k z892UX{Jt*1GJYQrhm7BOI8x*Hx8ioj?*wtH@vHD6*z~<-|URvOnu2L z0#DYLXglf!ts6Y6{y)ZVQ=9Soj2^#t7wG|9b%_k%+M+fi_;YV^Xi=LXJf|pQ44?2O zwf|oXV(bckUV1P!i02fgMzK6@CW3>jb(Yj+>G7;<{$GwNEjp>{8!~6cRw(qaTA+l^ z$b&_)qC5?@=EW^Kx7BK3`HIxY`c#dqU#XE*o~TpgIpGmCvf7(!WToWWfaNPnDcn9K zg_5)!ax7O6p|V$>iTMzEeF2jdd{ zE#2bC_6OqENIB^MqxReQ)zb2XhgA~>s+N=&5uB)mzVDhOx@q}K-!FCM%W~D&-g{Mx z_NnGL<83e&LyVeI$?f`+-ks`izD&0lDD1t@*!&ffrQFYTQ4fKjU;~|iU=KNuPnfTKC<nOW06XwJOzX*wFdT+V!l`gL>iG-Et{nK5R3OA zxHksG3K@nCN-NA9wI!dTKV3hIr`QlG_w%T0RdH}^|3aTNq)08KPTibUTd;clRG`;S zd8O;r@(FEMvQcf$Qt$douD64(b-YKwa`Dvt^dai4Nwt%Xffbm`PbWr>y1Xm2 z3jaOC%rKb!D0y>Qe<_CPAInr;rUPVw(Pjg9B)Mg_{||GAWqSS((^6CBu5tOlsL5|d zP68L=&v@ws%WZA^+FVcTcv9Yn9&8kQpzAD|HLQt9Xg?bBl+%COU;)o%KsGbyl+dn1>8)RxU={^ai3(gQjE@3g{G3 zBt)i`K#-M;m|=Z5BDV>|tYN8w{l@RYZ4W6r2SLeY4uWJlmO~xZJ^f1?7_3I^*%Bhf z$f&I}nTvS!%EpYAF>4i3GM}L6q7&nyglxqZvwz7A#!E$gPz~{{CyEZy_ko&h*M4I} zMGKI($LDiFsv|0-Ap^2?QjZM6_UshJ9>`hBR&$m;`!NXAcOZcB1zEZ(x6)lce5uwC` zli`24XiB`VM9#)2SiBUM>Z5owU}>zh!N~IjSC}WjMq>Qely|-Ha`qIn(Ri-%4gc76 z?B6JSoZbc>r)S^;yq$`S$S=`?s`lkpmYoP)Crt}oteW*3)vT`4tn01p#fdqY@{R;z z)22`S0o5KlE-r7Ps52OC39gz}w0+M4VW|owCDe6*3#X1o(>`*x+W)EhOm>H@h#v-> zI>X3e(+a<}OitIy1x(2A75i2$K#Cfw@)d92Xde=XJ9_)Z`r!zj%f-4OI7rTByNdLh zDvD!Ri->HUKRCZJjIEYHEIO17(B1-^owaizT9Iae5k+Cbr=Ch(aT=RnOLHhUXnujN zt2z1DVrqf4AM}|Y^K>$PBC#n*Ue=P3`5i^YT#_|vKZEwXR+l1WtG?spJ&wGW+!e4w zMTM2t-N?CCu&7uGtdCM?*||pa5x!nTuQbwo~7j4VV4e`v3vezSnPu7}Xpw7`6&$EVbykI{{(`Jquv&6M;pbJPaJJ9#H zvdA%N|3@%r-Jn&?qvnY&HPqi5Ss^EJvqHJ`D{F~Q{;CD9HK{*JOAciY$%t>vj2C^W z#EU*KRQT^wWyCjRl+x2F1gf0P!A=3Q5(MT1+lRSeTjw@vZ-&EXbQT@fwzC4U8*`K? z&K0tgxm4nlkIm*kCh>Al&6s>lGzEztRkEoJ5~Ir~9_=uzJv#8~b+WSeM<8=5e)L0qAAbyKe016ggQI5AP8l=w9w-`I( zAf*gO>GD(s3!DnVP6hcVRdAKAAT}=^B6m-L z+0^)v$K25PK~BeG9k+Dc@9q1PG~B2~3S<9=*HC!-YBTwGF=wu{-D|1@@n2^aJyaDP zY%Q8n3#5FHxkZZJ-*H37V-!6_+85;Pt8+4km*$*9HoP`x4ByOY9i|jdSNHE^Iv=r` zA9KoxH>jU1JBZ$f_Z^he6M;iY^G22nuGs9xCFsfuoma0UD;BShmP;o|<%PutBoQ+*7iH@2wdS6qP6EpcCPuI!XF;P^ z5OAs%Uj~;}P#gqe*3fBvJv*QuNF!SH_ix|@=9|t^+uj~pfEshV02%A;rJO`LDuK1P zD~USY9y7a$)y;3Exjfiy9#u_IM?dZ7|9ZT2!!bU0-_v8x# zV{>N(U0+c6y+kJ8$1w#*;t!%vDVO7(>iArPgo$2XibyoRoKunUuCH!Hogo z2|?>+AypQD2-g_zm^wQ&(W=S`njhK6IOSn(uQ?{C<&9Yn)5kSO^@;f{$}QWDBJvuw zJCt9anwLjjwHm~To&_)PE|+8T-g-GRzf^YiEpJZg4yJ&p7-WtQfPSU2Sybj-E(hto z_3u}cRF3CK>FMN;O7hMm*U4&*s#EqC>Ety><(R#s4_$$qyrE0ub7+`E+@d3LB|;9$ zKS;Q@UQWt8g@><+i}mB0qjCsJ6+&8dwnqtV-sLhad+X)ceF~h~8D#K}{aLPhXHg^_ zbCW(fZ?Y$Q1Xw*`xAD^U#3hbyDBsZybyCYNtsV-yWve>N9JUb!jejhrP%9R2eEzUK z=6Og+w%5_feFyon7Ws0Xpy`qNuafm{aHUR1Am@l;H(Yi{9C{b4!Sc%5&+}67Iig)wLnI<+rC;^laz-N#Y>S70)KzgMx9-=gqDSKns* zsr?ZfrqcaB;i0{MLK>dzT=G|lM(q*WRnH2KT*Ia=8r(GxZfpYpM*v>I&Yj+!*(fxk z4oj9zyHL)UfaR3_e~~l3+vxuZJX!zGgD%tVMKD`rPb793<24z-nR3my?CC|UN3BjR z6QqO0KoM6lCv;?S<72qJYGG>8{|N zPSrnZ3^~MML|>q@g+SshIAD1_M#*V4A64u9)lT3S-1U$mIj^R1r_QUL4*=3@4iNf0 z(gifCRb?#anVmhFoq(oP#(QvNoL8GEbyA1Y7w?cb(H9@ak;MhH4A$s!J0rR5(rz^0=y=!lvTT{?HZf;9_i=h-S zU$c+=Rc?+n$vz%y)dgIc^%Fe(G%_8%ObSwjPF6BYg^VUkAvej9Ld4W*#4wQ2goR!^+P^0{er% z2y@+O@8HX2z=^6{rTYEm_n;XZ#Y!=tHsI9i`C2BoK%`$$RtTAOr~N7iDudPwGMTCi z#B#kVd{(@M(ko4fkvqi_6q+PQ(6d4TK5Tm2IqhOLJ=FL^VXWnc0Ro@gzhO&V-@lnw zV0R~wi;^Az7N83h(A=9!TnZny@%fo5&QaG%@^pDj4ib){;!C|V7AkMxRYZ8<(f)$VsIe$)M@!XxfP z6QMU`X8ifq)oG=>u=vqIt~^glcdUhUok3u3jom zt-jFW)HdH=Xq>Zk^oMEp@RWo3WhHl5V&x@3r}#BHLP0Bc8v_f5_V*lwQ*+;vT>43E zfZ2n84?hz;vj!AIv!6GL9rKLJxRuLECZpENcu7_31|nUpQ7i9(8ncoN3f`M(-LHCx zJA0W0|17`2uz7lo`jhQP1!HG z*vnFSI|y zS-K9~&Tr&W^I@7F*>x|Ordu*JL2dO-D&fD-H=P=vp-EC&sB1FHZmX;MmwDx84KPx5)5CWFF;ohf z|52E%JdJ`1)-xbmH1cAkuSJ+eM+p*bGP_H3L&i>6>wc29-|p8}Y=hRci9TymiM?A5 zf$1P(bYz*WE07EZV_Wzy#6iAvP zf*bkExFnovzT*DhKp*h`f=U)s`*~^?1bUoPJvAqS53$I6z#R4l^urd##>%ljLQgWi zfET^6(~4@p>mMO>&|Mfv@*)M1=D-59EB2?ql@W1M0k>v7e$%()rJptFT8=3#fHs9r@h+I+7PDO*JBjMSJ|>pl8k zm3C~{mn+{t3P;CnwujQ+`~_W>Pw`sSw{c9|(pUrXT0@-!EYR=^07iHic3IZWGoe?5zqCA(+D|L+swYgC)qU2uE|GeVP=-oJK@YoEuu;7Ybw5%~ganNA1rJ@y%w zH}iX23gflF;hPgV={&O(QR|usbe0KRJyezaV1-tBC2$1^!5F{7&|a(MUhm$o7*JnlBy^T zl8*^b^;-kRu-aw(d}OaJh21xM>$6z1Es=kb!yPB*vbPrNWW;i^tlS#2ay3`zxPT6rEIxPiN+E%dKCHk0a+2e?%9yT*}c!wx(@Nr~SxwT`iTi#yzd#uB@@9u0~Ap znMZvLr(wtj4^&C952<1mh>^qD4s=hDhpI91!ro$Y;xx_re5PtULnS3&75K{jEU#no zW|8@sJ#fV_cBWMT@?W96Zq#7RZ7j2dPlYa#t>b6|7CKqD@Lh4Fg3-G^!U~Gc+qjh#-vqR_V+%K7vx}c z!#2wPmp#FDXT|CYP^d+YoH6-QC3yhy8Xq@GK z>Idm%9-1s>hLaY0cF}xU)UKrwf(Nl)JN~1S(Qp? z5fwTcwN20}A4NOjk7@k9NWBVwNAAEO_&Z%f1b+qM5d3{x9D=`I;t>2@D-OZmKye8E zhT{N#A@%89N@3vdj>i$6BgsPJp_drtvS8l*+xA)UXYrt$S!kcP2XiyYHB7sxgp9~A z$lu>o(Ewyw1FU|3vse66nW=e4d0tkY@axJm6Axo4)JR(ws$DYsnWyw@|MUPW_iqF* zGIJy;D!c|ekBXL#S1n$?joKm5g_C&2Nh-OSqRgfhasR|N@&Ktk595iWq47Y z6reC!jfiGd7gOz&KZM+L=S1mFtZ!j(fP2-t>fSm^r1RFQow##VT$AnQiwS8U)VXJK zFAA8B&XwXS7HFXE02;|>Etj&iODe>b;AK{o&?>)Hfj)JfeeVZq;h@r0EC4t`q3CM4 zgtL$ml|r<1b1)Y5Q;7Wb%u z8F{W$oarr22YOkUql{(WUgb*l-gb)z|19N$4zGD8OPET z{H6A23SN)rBntlLufLgsZ=#};D0mNDrYQIq6qTaj`2vul;DH@8DR}n}(-i!fB66W% z$U!K0o~Ga%Zc9<{Mm-EPvGgFAwwI{b|Ac~Pk^37cc#@84rC_OA=n4`YuHu^P0eruP zg8Ohz#}CKTK>hC4e@DTKA%F)-MK>+5pWBr|!3@}cL&3_5fJ4E%-`5oUQ@;O~6kK3_ z4F#`y!lB@$IB38NBOD5js0jf^dJmVB<9}!G%D$PNM%OZ!faQmiNjKj!`JKb>IQ~Mu z-S}PY`1|tp@w<(@bNJ@V{ujT?_~r5|;aA4*ddEMQ?@)fH-fyY-qz5lXk-<4%r=WWB)>&XX4z)LA|9Ip4n$y*(@*kUBi=& zS3_X-T|^>|8B2E;-gmK#kuC`0i0Ui%`IXE*x>2%Dce0w5K=G6&sYCYTJEd+}a6SG^ z$1HUwLx}6(dup@=&A-Y78oIV^{7(B#9Uqc)-)~zp?zEQ^p+rOP^6bLzob59z;)yfG zea+b%Z(QEa(=%Trgc~K<4rOY>g#C$>EU!VHEp7DxQr8ITLu|wu(H|4d(5v=a`E!SN zRELG^SKgID%XJ|J{;2+vC)`Qv2{kpTfJO$6>lQ< za>S`Fael^nlp|rmvgK7^&Zr$L`Q_lq3Huxc_G-cJmDFff%mENNIdlmTJc-vVo%tCKEW7a?MKq!7RRo#? zB7P_l3!R9oGa|-I#G^VwL9tlq#qc$wok)0^Dq0lDbig4rBWj5ANG!FVN$o-QK)hw! zIXiwy<<{yWt{`1wRc_=k7L%J6?dA$veAcKZ!#Awm964^9$^<$YzVL z?4AaW4+YItQsAhK;Z9O^PA#{R{t8aLys5y3NY8LX&tZ#wrLX%+x9Foe#++5=_DhDn zdC9Ohs*k$Dxhn5zzP=SLp()j0xC%E^A7f%y)XWYTld&W)qR-+&8&+1)Y($^Jtxvt! z3%0wn;xYX7IaF$Ic}&lU-Fe!=;x3&vSB9^7I+VM>9F#2tY!1o+QRbjrzj?h!ZSW>e z7wo=5Nu@i~`xnBlS~p&K9eQeAV&}>G_c!Z(hAkY28)KFDV^dq~{2emT_EhZRUuDZU zqjU2(Bkv5Q3M!U2!B5fGq}E5GFW|7O-*W%>W|@H)Fev_{;4I8s(gFm`0+HaY-ghB( z!06YL&Y1^qf?c45Xc)&^CX0}fVUp#!c7FwgRT>+r}_3l0sHi?;+3{H1RxXoq=%;No952*FNx;;O_E< zeLTXU2-ti|+E2_I#AsnbMHUm98cRcfM#j<@=R48)R`XRDxkZ81d%~yEPje;tNdrj_ z9yOi-S;$VU;eN>p6i8ai)k8>Vgl67?d5jx8qgajm6p~SnDq1%KwgzVVCu{mLS$46gbe2AK_bIgWQ=P_np)Sss6dY8|MIDH^f^)z ztWfa;X#?3fJD@ns1@}=*atk0QVeo3O`1+O@(Vzxyk*ZxSLml1(iux0$jBe6E=>UK1 zMZYAE&6Sv-<$kYHD74c~KK6xgxDonzqckeG;0%fVAt4%CJH7?TMD|)o925+4&uue) zWXH1XJ)>3>Bf!Y%1$!BJGy}BXp(KYFOz4z%xA2178|jTs`N};~+-aTwg{!BpM6h^D zfv`rLe~>ba;tO{FM6yrFUoT&WzpR9}@OE@&8M^18*+wJ!16pg$7{UK>0pq7@sQha( zbW_WDsp%4GdKR|Wj>FN+6>UOz7GtHn+@^*>|;fXGBe;iYp?R{ z72I0xcMmIH7ICOmSp%g<->LNVE)2n;uN$p?dj-3CzVTZZ3=0ZT2x;vgReHKnwZ!tj z^P5!cauqA$IeDelO6|@Cbz1&W~)P4eG5W^u-+IfQ!|qh9ZiOlN9^fw zn$U*HB=gq}R?R9Txll{=AgxXGVR&Eg5rhWm=Kp~dF#DMBynV(9n0=n(_QYgJrozMx z)ye=%=1-PlHO*Un>@}NVoj&7AHQ~@XE#i4mXNc|+{IcE}K_wUbAS|R(ymFs0deuJT zR^g|LviQyw6p?1GbPw@cI4(_+_2^~AVv4!SKJVjffi#s+Wn{mzJ%DU;Dk+3dvnwiw z5l6U>hU93qR5F?hZ{_Yvo&c?85CBT0T`Or{YfZ~SFqPJ6tvN_qyS#-;?3Wcsa_0q)EEsr8>4%dGz<W$OE)W~hOzk{ zzpmgE@Zndzs6~bVr+m(lS|21f(TPZOr3E@p7U@%Ej2B2w?D~&~!C`kdcF&?j=S=)5 zezr3dAg%DS&tH=kRdNrZsq`SHv^WD|Kl{1D0waeN<7f8Irzs>LKvgsd5>BWrC=j2o zYoC>PPAX04poR7jjSmBSq`H;8fz|%Z9=!%KZ=EmO>|YE~w_L`J30gm9StjSFp*)ZK z!TUHR6r1{n-GRo@b>FM7dKCrx{-ikca~QkbQ-vC}uaVr|3n=N$4dao`grOvUv{GsI zEm@ga{KUMT$FQMpE&Ebc!|C?q1=~a#G zz8Utmra~F-*}o!2%{ptjXZHm;MX=u>&@iD$)(MhT&ewS50LTO7YLGT~Yno(x zi2Z>xj7P+5ZeT2rO>{brkn11YxyJ8WAD06^QZ;R*flrcC0s9Qq2z0{VRKUjsfL+cu zC&S^mT*Rb1cCgc=b~Y{&hwN;Wh(mTZt`&#uYy`z2I~%u(Lv}Xq5Qpq++#?Rz*_euh zosD0sPw(l2)y~F@X~&b)s1BC0e|&{>>>i8jw}z+FN-XKHot*Ai2G9q9PICJv0LqfI z?U4`a7)q&$^IDtw{02Jba+*inS-Sr7bp7Ab^`B1ts_DO>WT^FY`*ezq-<871HiF}~ z;hSB-ziCXwa#SjZPaZ#+S^S#&$Qv8*6}#VeHT?Ncf4W?h=#3v==WjfGi3{_ej31wI(_vriuH^Nx z?5`**3*)B!&AmPstKJuIJ%_b9hg9K(jkysWuqyPzBMDk8%Ln@{w zkuBxyyWYsFeOCmAO7jEW=ky+W2l&qlnlV2uW7RiCeU{5@w8^~{*7~hc@`dYjcGKH0 zT_7##wo)d99rpQEA{g&r;+FJ&OXs!}mi%Mi^qJdy-S(Q%c|>w`-_LvK=GJf8PV_1c6@{i@b$Ow%K{43@9J4hFS z+F!OWyvloUE%r=*20;#pWnWGKxre&#mEuOsOqJ0Xzm;f(q+V-8@r9m1pcT~I%7AD^ z&45^!OCzgn?_$y?mz0pyQdsHMXvQXzV@VH!#1q0Jt9Rc0kY>kjpiiQGa8{U{N&Tk? zVuC;}#YZ2cD8CS8bchP!Y!Is-oZiTuhQ#!)?rUfX{&6a~JA#UN(aj|ls&MTU4a`)eV=smsM zGEudO*g0Y?dN(A&Jq_2#`bq6GRk2$0F``Lujb`Jp`ASS$Kpv#Q);#`5!wHi_4ltx{ zAzE^gj9d@Ks{OHkXL7KBani^y=?XvMPp$*JP_L5#kj^Cc>*QWf?oH;@ke2<=p)E~0ZC$?YqKY57?^8go)3QrF+VJcvM@ z7nKMqbnokvlVy+Uc0zf&{#ZJpN=G8Lv*_E?41SQkM>a-xAdZb)?X%{n4)vLvEkzMq zj(T02w(RzH+w3!Sl%z^9y(BZg#$%eiP-YM|AV_Y4IaW#T;H0 zo=AtLb9DL{DMCHGvb#!rcXu4WQ?3+vyHlWiC-q@K#uurXJ`Jb0@#r}j>92Ou%a@9c zSv4e|&A!{T!9MeSMMV=z8%j5e&5OQPFj~C=TxUf$hdarYCYRXI%10g3?KLwLtybFk z$Z{dmtm)^)S1J(YzD4O~C)AjwblZ``=Nh$hh=zroXGEXC#Q?i5D=s|Pd`%2fP-mhr z)&6d8nGZ&5^>%^qS>8{nl^Mr+Fj_4lfdJG|4s*DW4Z3$bW{!+jm+r8JMr-ROwsuEo zdA*9=9R3GZJaiG^#`w31eZiHHF1#)A7?4ayHrjY`t)g?W4;eYyF8mWHW)mIXqH!PH z92!MPqotY)^Geg&5B3X5c@*LCEr07rs*ig&@pU@V=>T1l*L+)wO`Ms@4~rR--ShuJ z79-kBUmG)4^5552aROtO7$uWqQdcOZQo2r_b&ed)F&=u4W(LfLKxEh9K+F$2TF)HW z-k)5lF1CN4GW^^ejeLYjkk~|8KPZ;FMDt_e!6|(2Hzo{yo-4Q$Mn1ob|93pUm;YBj zKhBu=>G|V~gpK1valDUXl{nB+Ok6LHjc{Z3ikeP@m%(3TY+sJWl%VSb1y33bP*Mobr;+~TT1hDr`rpN@!`RJGMeSCZ zhNJ7IEeVW$!yj2LlS2DRT{PA!u`nO4rqdGhGvI?!s!V>@=QqZYha>{_>1mJ8cZdvCjabqsq>GLR$_|E?&_hyx?Zxzl zzuP{H-8i*=jJUYJlpb>U4`t+@ppes55n``m<>5ftSK*K1duW;lk^jQWjc6`GaXB{F zI_e)i9f>pkcm7qFZ&sMEs+VVc-I|06`_Nuox%VKYba%gU2Wt^)?s%Fysk3O&uQz?m zt2wK#M_J;20O>THM8HCeuY@-CtkVp6M5hTVTrhFvy6es0@@o1?^4FR>DIxJ)UA0&p zX`O?EZ1z!^F1~gAMVf3LdW!UcM*1HQeL<~mS2dSOYCk{7Ec+oHUM;;*cbtx^Fy9ZF z>%0e7yTU~x;$3fC9*k8h0Fi=bzADodK6mrj91L9qBtPZlFToq~JMxa?Yt5FCOYX%J zGgEOQ-Drvwu?!EAPvZ%H5K)SDNb+7q|9bUhP-?>5@R~dc^d` z!w@O%!ESF!2L^d{k*j}tzM)@0qo*B}WW$^wo3i~=m-%D?mmNdp zbl>*GLT_wjkt=fStjUFP39H{4sREj9D{tC=;~FnxtO}@OUNJk5u|VS?xhF2u#}f=x zuA&*yqby$p5)fp}8c8hYPnCcovyc(ZW}5LQ8a=I(R;N8P zw>s^axz%aU%&ks)W^UE(S$R18cR+5W9idzt?t7;y*c)NOc^znFR9Z=wkOH!jTf8O~ zrM@Sl;Dm_59q8r`MntZPYH1jRL`4r07lVVUwW5AO7}DMKL5I+{W=ns(Dg_HgB{%5y z84ro(1ri;n<5T_hYO23pb=p_^s?)yOS5y7JOc3ofl*{HY z?6@ct{E^*;JFVzz)=y|byNOvhRK)t~h_CE5_)#G4b?+T5KGuEzi;p@B)*JfPBjH;^bY!YqYi%_JZ^KvD62hn*? zs%*^SCjw>r!!HEN4ja+k$RhEs03t@}U|pZJ^BV)+WD>*YEqlXws1I>Kqh|pc*SH(| zB3u03P`8{23Wm-h!Hu!b{}c=bKx3Q8qZFUf4!QB8vGN&9?n%W&IlTYlO4r6fx8s9i zT~t8|)hDC}9(tJ~l*OE8gj1~1!2z+Iz7jQx-rEnjfUnC}f{}nL!5Q3Gmvg{MZ3;&X zF1U~Q;5}wT~_Z!Qo=!FmRwC_PvB`Of%hRrQPLiM(|*#~oD3M>K0d1QyY61O*IqeCzFz1^~zwAVKBSzyw-}T@1 zx_}sTH4-J2`S04S8p3OP8S-XRcBv|&X02|}zVN61M*BK3ut;(GJ`pDc-tB)n_S+`1 zOVZ?i6}S9Jnzr|ihFI=JL~=w0o$;(^NrMhkU9f!$cj-YQ^mc43KS6HxBZrs0Hgzfp zzn|RxyWSK~BCq6i;gdD(UB4M_3C4=@0yV28gtLDc@~Pa~&Gx(AQ?|jD^e2OC^!#ed z@gy3M$YIPnGw&tzMStnD+;3k; zv)G22#s<$O+@asIm+1!}J~$0a~UH&4TUYptsgcN={B%NEP=_fRLl zTR>r!swVNlwL0TY7lujjmg!GF=lO}>w{K)7XAR|m?})xyYEA$N81|_-D9OY;)lQ~7>|o} zVf3Lb$a1Za3bNy2v6uj=AG)0+Bn`%%mQ;zZqOVFewMi{!78mOb*BK9sEsRL{1J^=O z)3!n#rRXKg@5LK*@yx{@d$iQa35T)nDgpyFYc!FrdT?9fk1$<^%rD3E7s^WS*Z5;I zWSIENma30YvB4jENQMg`>SI(O(tZ~cJ1hOMU+dzQs*h2@Zoygx(n=XffwH~f7b>~D zcCr61H8cXQm7?Dalwonvw>_X4KmZBnQ+0AQ29~}SI~zh8JNNlpF_Y0>?Egta!(>0y z!s8fT*Qxlb(?wi2d9xgJ&4UO$z0}sogge=qFq`zzA?fLi$&yr?dP*wh(Y8_XK4eSD z`)%ok`=5+9u1;~9~dx?DyBKmBQ_=cdOHb zM(um}*xL-4k4VZJNrIZLWU0_RW3Abq$u0B2vFu)GVse+dvEWw9Dh_+7!%=rA`y8C* zYuw}ZyD+Tk2{vOH)ibpD@P0pbCa>Gi(JS%4?Z5b#zvC9aYd=#ulNx!pOZYw+ zJvv>B__wQc`~5EFyL37!`?$n@(V9A=RGs=g4as}Jkn2Qpcr62jP5z6I`a5p-yY?YI zq1R-TM*AjdpgE_PwAhW6YY*f8mJTGsiER#Utn*_-Ea8 z;yFs^AKU3RvIWXsHDdP?#7Ui-#DCYjn&H%5C>?~|(BN2Z*S>OLAwHRH8$awgIM(ZU zs)r(+hL!^dzYWB4FJwxPOnxklaxWzNCepR(COKEI`#Pp$a~rDFo^3lTf66fFtlBL3 z6Em;r{_?5*3hMr1;~>>vD+SZrzM;P|dSJbz)BSo%fBAHO?QQL^j8aeOuWZ#{+ZbI= zf2qVR-`rm%nnEiYk{Ahk1N56Uh$Bk(f6^U5E-SXVaU6ekEF(Nt{%naFZEfRT{o!$$ z&Rgd@8E@*YF^sORj0tG0d#Zfy+N+q5o`&r=$Lr3z$#1%ESE)J;SE-JuRPYG-vfEjC zEu77AU#rvfRB1M;G-ekMZ~B?;iwKh$L@bu9Qm~8Zk}q!;7T{~WFMKm|_kljhE)CPz z>g)6=PGt|sUse`6S6Fb3n&13o+rpn{sVy;??K4;{cNtcNegY6n$YZ`8yz2|8e~|S` ziBO__n>58Lf0D?c>kvFJ1^O?`0e!4{IuZV4v+2Gc2PIuh?GtbYT(6~&;(ATxk-4Ul zOv3KewywU)F6eEGUu6$k+1IW4WU*pA?#j#3`;AtISX~ykGGvYaNYfc?>*OE%ju!it z;PYEIQbJ?txLV-Ro+fH z&t=e-yTlo-Qc3gvTFdmvxtpg&mo#oba%PVLP&FX(N)Hj#$UP8+2!pc6fTmgY?$jgm{POsatf?2zXo8@lib68mJRl*JLmuVqGfnH1FU^WgOUa{2 zCi;7bVS4`~p8-~_f+X2syxh!68FPy(#|Q&-4@i6Log7YMJ z0E)&QnDDK_X5;9U5{lQq7$B9HJJ|H~@JQ(0JqqM=M~^P?K`=vbHo1_0(~Aa=_4VlN zFHh3+6l(Y?R2h%Xpct}wd_8gkvFs*gblEKh0aC8`g6=MSM*7?y`2^jafs>hKL<11< zva33}^rCF_Q0DSEeC>99#N$yOzD}ga=^Kyg8+GPs0EWFa?0g0!fzp9wfbp_}8nIfb zVKIuCE=F&s)@_93jqH(Q6z_CG-qsxO zA8|sQ6E6oCpE3YtT4Zh>ftT_+{o=-)tR(^oryudVqxiWpEK2{xtpq3#P$jEf0PDqK zg&oh+8XKd)j3?Sp!Moau^}*pa2EMl67`2N-i-X73s@jZVuHgzO&Hi;nFkK+re{?I{E^5#nRHZOLf z1jS&_y-ot3>?vx9?(WrijEChMjFbt&uwU)D;Maum&7Z|rviwnf^P+yIh-(K)c%ItL z{w6GVVp3t^ZoQrok`zB*)mfAt9jX1!PAqp+Rp}#DsrIp}C9y`S0D8U#Ng*CxHBnDh zsr-7|&3L$$dE4l|(Rf(w!YMM$o2yggseaL8hjW%1Y*Enf465d-^Az|yH7UOu6p)uZ z4DGg z>N7CmQIIGe`_6IsWW&LP%eG}BPwQS&sL>3nszs!T$T39ZW_pMW`TYkg>QX!<{sG{y zUId>{IrO0DMDqvP%2MPYz159uv?|?O7b|}TjCtz#P^u&9q~PJ}q_>cFDBs~>Cn2s) zf8D^bUqRfz@2@8v#QmT2*G&$Y{QLfTx`!qcrxX9z{q-dchC&o-oc?M)xxYHi4ygW8 zof_}SmYySQh+y`QFHo+{VZ^bqQ+GZ*b}+JpFfEe}6?UR`cSNDQ-fumbBMi7cE5+gI z4>c<7RXt9mArOxL7G*U>Tj)GVJJ`zZ!BLrQcx9qR3?O54Z`zCCkrzFHmzxc{B$RIc zgl~F^PBxfPTjFEOrOfywil@O24;r~C?EZOs#K}QcB-8F zVP=)%Oa-7*qka4LP9)>QsTNhAKlX%H^)*FAy~mV;=^9a3XjjWl$Av6}*rwEbs~W0t zrqp{^`R_WUmjYj$tlmSTr*dUz^f*>lIoO)1`-2r9r{|foBKWCtCg(gTFH_dE+&?;BOZjr4>RaeNMEK88iP+ZD>hSqD zuNNYpjQ7eLGKVlE40ZGXGNbz%Yhd<$<4Sjk)HX9p2db-&j((Khzo!L0=<&THPr!JB z?}#`mTv5c(cbG-nilMf3l|b#ehYdrK+p27anHcBGmeZ8aJGERyEm(qGK=ZD;@CLSY zV-vDDy3B%09bGnx*BHe}R8*b#wk&^I*C$5towE@xREcbkAz2u)X6S*$@@z*Qmq5GS zIa^SjeLx}nKsKL|z5^n`j|?7wtWN@XJI7W5SUviYhPv74{_6dYi80?;_8K9#pbL?Y zf(=i&xh*^*`62U+Zr(?woe#+Wkq2^&k;us3T4#*dz(xmf`N8+uEGY7LZ{~e+d}$Pu zsj3;(Lr!uPwM~98UIZOQj$Mld+Xd4vQ`?ul5b#)ffB#|(3%;jTx#L^=J3i$5*uk~3 zMHzJ%gc>8dp70^%Nc)YmH*$MNj=>-y7@b%1-pc~eC7m{qK0~A|-Y6ae_d0trCJ>F{ zFq>`CWl9LBXwh=STBeDLYHr?0S*f@>nQUqWE$We=?41Mq&-~-bGe6` zd2dm^l(QK0RY-z1rHQCZqN}e^EWbj$m5Z4OE6FXl5UVPyQ&Is7q3oSHd3%+dGPO69 zZo-JRCCI6Xs>-^I5_|wE`z?g1%VjkPUJBFC@YUWkw4T8!d<8f$kKVZzH;`G(6_ z`2laicy=3Wo3o6e8;xQAG;VnxEH6k;AcsUGD;@?ppS_-QA8g4QYa9OLqlIkuem{`+g??1Xzu_fD@mI#$V|B*b#Jk4G6XbFa9FRl85r>V@N9dzC zPFpQGb{hHb8lAra3)k`cfrsT4P?K{vIo~7MHe>YLjVdx+HC-zffsD#`o-nLpEYP*q0eca8jajLx4(zW!2zkP)e$R`HPg_^UMOi|5ZVfK?-sTnBSuOo@W~P{#OM_1}VrXVE$g^ z_dK(U?|)U0WRQZK0_J-d%7P`*^1^y?r z+xZhHP?{t)31m*q^Ji-ao~c#^{d+o2H%({En=cuqX^WhK7W{_=r3S=vl0hJI3Yg#G z6x8tF79<&@Ag6%&yPSgds)7>6+D}04J8g$(D{|KuomUz83BiqI;QNRafc`LJqF@g# zecvIqA0jpi`mkrl4oHewZ-Yn5T^#vKrMH32BY`>DSM@ZQj zYa^M*VPd)RZrMoQEn~W8N^84#vlZkr)p;sElu20TEgYVT57R6?TTOQ(+z*y>ZZERB zk7I>0ecuBeHwSXdu{&9PT~?^Kma0(4uPA3Y+YfUaSd2klz>Y+iEhqNCPH>r^RjnI; z<+pA*7>wZ9s_K>fH!0PSPNLXRA$NS^lh~eUSe3qUB2j)yV&6GdKIGgES)=05EW1Q|ew|;!U-Y{Qj_uV8l*N%$6f;Y4Or988__cUxT`plIz`@Vz7 zKCa_Rc55SF{LEXkS8Q01^LA`zA3CRzH*TB_+cf=1{!D$fSTK-HbIbi}Pg-TYwqpKS z^^k4WiZOz{@k5-=wgM_+t0rLHFeVtA!ex>B>9gtmv)A?y<~8*nNm?lWw?DT5Y@M9^-f(%dVbipX$-eX4zNY%54apXu;C1gp{tcXOT>8 z?Mub6!Sr0rFMSjnT!M3mcIL3HR7cQ-1XbyvYvh)Sc49oFayGF=1dZ20{cwu-6pW2U zyFHleJ+Ubg!*Q)h7=UjovH)Y zq#UZQkgA8LDiI9ns%tW;7G&wFf1<0tL{-feYMp(T)P0WBjfMY1_8{u!E@xd+mQ(!; zCslv8Q~e-oQtm0$OBd+sglRZ!FCt9 z>IR$xCSIXx)dhv?>uw%wP4ZAb2OO~r(hHF=Rhx9ShG81DIiXXlo%U-0x;v=fWB-`? z<6pA&lX7ZhkuO;A0fx6Jn>Mhxe~ZA<9qfUe>1Xg-?wdNL*M(SjXCTF8Beki$3@Lx? zfdW;f)Bl$UIX_UMgH-3o32M{%wqQK=z=avv*63{4WMuoh&PK;!pFc-nT%_|AW#o(L zeEl-={aoh*x}WGz=&%m2_>E>`ybK_}rC z+wI4Hqj=i$OSj zSGuDf#W@Vwo^$+wV1DZv>5QQ!`;1?G?fTnq4IfjwuI#?-(531iX4!o?p>x%#+_L*} zL&jq1(tg`z&;dW;8$@YLw_P6p=*7E={!~sHC1{yfVZ&uX#&8gLXYr1g2*-QIV zbmB*ukCO2e8QT(<^Y|Obuv3qcU9h^n(tmZGax(|QZ|>4QYd`1Ijrta_wE_m4WltZX zPy1xZ2aHTAnle#UBDKM^{IfOF+Ju+EsU3j{bJL{k=-tJ&D$>iKHQz4#*f<(hNZ|lj8Rv)Q>Qbu%jFa5Rr?I{pw(g zcSi6#=k;mSZ8%T2>FPc!bsMi%Z9|F#s>gc$C$)8PYHPWP z+Ww4akTFgb5x*5owQio&c0sDP3v_M0`?MGjf6Ad)p_$(1%J}=Z9ep1{hVjs4=)S9` z&c4`)UVsY|g`ljS$FsOoF!c$nQ70y*<;kz_`%JF#)1X+wR!`m>uCv^D0BdwfFalINR{ZWS%DyDaLDlp9p71tY<3U-Bvup%J@2_4#1*q#c7?WxdjaSGQ=k>wtilUK8xeV1yVTIDJuXrDM=%rT+1QH5ERH6UA`VWukX3xX$gFUHj z^@=Ob_v@CQpoZY3=S$0_23VrhAfZDq?U||<#;8L7eZ6-(^%hFK$9PUKgI_7`c$rgg zQq?QWQPm4`lo}*-=%vCURVXY{h5q|`4;$dl>gj7)!q)OTH%ssNOR$m zR3L#vFIB9v00#8`i2D=xsEVxd8}EcPg!KjlL;(#N6;zZcC=ps|=+=%T4h|wPiZY^z z+YCZCiwJb=pt)WHxHIF%sH2W6jtU4$5`qK}SrkP?0R{BNMn#Y{kbb|X>fY`SGV{Fe z|M~sjw?Ci0wVYZ{ovJ!@s_K*g7%Bx&n~hueme{0gJmF5E^07rMQl+~uQvK$(+TRj2 z1FoS%GKG5I$w+dDk+$kE{4v5A`*RDfF@62+zjm-vEHiPW{R#MCRh7Te-)BNrB#WEF zr>g}m&g^gpbyXT`i!iFT7YQnH3ZJT z9?kAYHKK10Q4zVdmjs=liKB}KW#;a2{#qO4+n zO(5?Y;q6oTa2MA-52)%hqIUfyM-p0|bM0WImFdQj_6Um40~|a}=2aN-TUTZG8JHDm z9i7tF6KSq$7o8IFM854aFgwyXI;EW_+_}%d7GiDB8)AJ1=7{w~_4a~F!HH7niM$#A z!f{;biToqJ!Ep@qL>`NOn%@3S`SRWJIqojUxLdn!WKq_QBV$vb#&)c!iZmI1_kD^C z_322FFNi!whX;eR3CYT47>JT(Q{`;6Y#Q1`EvDLNUnQR!QTrk=EuUH$?&Kt5a#?aM z17@iFNWvU&y$-1l>^G4A=<}fFT0O>{tU?cSLQ7J{eD5trv($YH+{4q|#4qnW5Fe4R zNvqn|ZkN@U?=t-C2Tw%%H2|5pZ6APy_k0Pf>+III^9lG_-gbQDFlI~4sPE@iOgfRa z$mo#E_-b+4El7Y>NGnowYOd0+@vfDy3ME_Zi8@Osz^3+D4f`(y8)b5T0sNc;Ac>!g zzEk))6+ioSikHMsX8;MWf&X&v?v|XYv|np?0D*w7OJmjOACefS#jbrwD8YLc??EJT zMDt;}cOW`P#g1YnZ^b5U=f1Ib;3Bb`)qyVC16}H>;-_-B^kq`Ey#L}Wxc&!b)OR1> z6t1V@vgdxQaE*@Lgq=qz;~lwubE|~oC!PkLVos#)vL8C9GPgRv5-q@yX7+`IQ7dP6 zAW6M)(;PeYt#76xI=!eJR;cKc&TaDfuf3^GY~=qT2ZlJjHB>8RYnO z#*skA_TQ=1I;OrLeSNcLT7EvFcGZ^O68{MwW*rZ@K1^5<0w^MRn$Qr*4E*eMZ6xyp zdgO`$NO&Xo&)7U^49~&7ifT$;a?dXKa{5(tyKdF^Er(FV&u@P1@3!pTi$EE^J-*Ps z+~f_I+q+fWdkUWK%x}u8dVX`Ygf}+<@E0sI$}K8xZpE(y3iskC%3DI^zRdd@%e^KP zE+W}FoG&uP&f9tO!Se3pD;WL;GwNHyH-+K%aoJygqcD835XwkZALsD;_5Kn1;V!7@ zQHjS-0`(z~m@l-ZIo1a=>irpOc#yR=0{y1*BXYidkiy^9#7^Sxdh!E*LCJeINhI+% z06@aq3x5ZHxAX4CvG}_mO8Y(jc5gTi{>Hy|T>L%f;x9K1e@jc#@VBUk!ru$og1>+A z75qJe8TC!$o5J5@T=vsnEBtj6l;lz$c8wy<)P!&6UvLD`?{Ux>kYpTm?#j{VyarR^ zu8A*A;q=eoRCe=@p!V4LR~tur;zbVAjPm(duaRdYllJ_es8jjaisc-&npWY}|p% zo=HZ!zaFsLPy*Fohe$Yn6vsYlsAAc-U^9AO4T`B@{hzRYB^U(EYIm zIa23+jmfXkhlO7o-4yW4Wdue|fV#_YMFFUY?2JVjE2D2CXM(d0#6*PR`^Npk{*f2Pw4Iy0*RS}DP8ghf5uww z>1kBdjuRqkz`rENd-jk+e)S~%C%=h$6H-B+X?d^bylGVR>L!KZNAa__v`nL_hXEwK zG5nP-f_h3L1x36D(bbmuO)w_vW?Z`i|M8*nDdRetz@DY=6xI?_!k^9&06rqMoUU*Zf}JfgLCND(t=5cPzsDzMg5#3uDv!v00EwI{1XN&mer% z=@_K`+Giv_q7RBNW377H%p`T7XXyhU2wr%uTi>iBoM-k`nvH=jR1ML>?_ENw#=7K{V|1*@x=0W`&IW* zPLCQhx{{!tTteyFTs7VwGExJ>EaFNU2bwZ4EDD&vT9L;B8TEmT{Y=<{*o0(mUyv65 zMjgKPducvJ3zYfq1c>@#5-id==6gh0gjy$Kv!DK4Q|n9ASF-9P#f8-`m4{FK*3iD9 zuHX&qypY;2R6Z_Yu2)yM>l=;FLepaJ*moQ@o-`<_U$N#2C5@=LLeA58YOb)A(L}!L z_H(Req^MH-QXU;0jtYzk9Ps3c)ynKp6*t4nTNI)QA$`8A$;#1jm!b}IePlPXh#GIT zCxxRsz>O6Avus`P8CTHt=`{AZwg;s1%dnB`!`^3z$#KnXcovzyS-AYxbCtN#hK*QV zBHXj038EW42bme_#PZ2C!8zjTx30)GgLBOhFQQ|3jvYU}o@`Va5Q;zXcvRB1dYw+% zmiG+4LMojxqrQ6HLr9UzAzXH+4T@B{$mBYgDnKV0zoh7-R8FMZ7fxoSQR7`L(Is`l zh6yX?*G*KMPkv5|^CEHLX!mgCEt=opq!FE^lr)l^W!7h^vrLkLRFjYZ)WA6bfaM*7 zKgXxdmN#ON0lP)0yyeTR+zSf~X*}O^rjlPQIG~11Kid}2+t~!RyyxXd>_Ka1$a;*RI(}mz4km-fM ziP>dX3Tqx%C*k-N)`-Ae+NzjrW!UatRB({DtwewQ>}>)ocdWh-yjQsNuDC}TF`z2h9aygLIr4r9;wrWR4kbEVa{huwoxTM$ENv}`Pjx>cV`Y92fec=RoA1z9lhWbD##V|C+ z`b}Pp`Aya;cSRQsBM>V}#9|L;Q1Y5!G{ZC69C6?1fO$(PpQ-oriImBrGl!sLGAwNX zcIA;&fzC1%AwjaU+_X-0mVx-$PoOd^*;xt!B)om_7vkG|_#kwP_VdnN@Ugt7^OcU! z5i{yL!snkw>( zL`)X>t+lGib0nMX#7-9Z2>=Oi8UDOVRwms7w(9*_wZ1R-(wOxuK5EU2_os2?-L2Yq z=mF&|(kNez<9Y7{c^|UeyNs9C5E}@)Cpx7lZf3oUhz{gqc~9mmh-iZu_3dRPonoAR z#$~srP{KH=;*h|@l(_a)64Q(1Zzc#kE-U0OPg4U;6_G4&HD5_~F=o{FG~X0{pTuP^ zTBGpGX|b*Lr6kF?wP}wGSgzozwoKAP&LeU8Nx*gz5OZoK4e|*qx?sllvPup!JQB2j zTF@T}B0>L%39Ij>nkMf~^6Pp%ok8Se6Sbgpvi@OVZ1*FDWE1WEM4D))ESM{#RIGpg z2%g*88qZ%&9|GdLaWKZ4&-)sn9`?IGZHC9(k6e#@^lIR77MHI@rlVK_dVOcs7{QER zSYv>U8N6SsmpRccN8}zVq&u2y8UOhTYDZ#5eSW?v)b_A zyHN_;lq?rZezgx$4Zl&b5nm|Lo?Uk^A=0p37Zb(u7Vwos^D(2oHhfcww!~%k(21T) z8{6-Cz<>`@I>6%9MbC41N{&r1RgP*b_}mF0(WU|sb0^o>%`a25)^L2*<3Tz;%Sj`N z&p96}e3sy6uO^`+KBognc<;vF#pnC1)m?nPU83;0@)w2A!KW&G_9Za-A^1wwFT#xa zPUM@adK+AJFH&~#`94{u<8!`?&q{_)h0h;&FpBqG`AVYSVn%&S`KA*65SP7el}c3M z^JWrN_L0KlC&d2~eELWuiO&$_pbzIuneHW_ zBtFjvknncF-^J%`Ec;!2{yD1fIr(RW&qk*xeC}eQZFzs@D^>pRfg z#Z1v>FDHcH^BW*y1~HF|PZ8X=6QMP%vi_a?vC!Nn!+~$jZ-Q<| zWVC68LibYq?3OA&M_5z|AmRNt{<4(&KuXQ1Ihi*wMJV#scOtB~R^+(|O+FIIQLp_w zw4Wd0Pq&(TdoZNpJF-&y22cZN)(PN5e7~EkL`S3`(%d?KLCw@QFqu|loj>u!9P$#; z5hLp^(e|6MOix-}$I9UPJ(JeyomBg_pmdyf$vYJO4 z$;9$|8PW$5kDrkE%>)v2bsg=t{`dTvVh$c407dj-&EWhT=tL4Q@#E#Qd=2C-#f~RhHiuv%NbbQ_Dgb+M6 z(bcv8N{Ii4ud|4g#McGn3%)u^8AcN^iLa9YSl;IND|}^Qaq)E}A_*5?{ii5={i#;r zYX=X^z?gi(>tU96EnmS`4QAB$3f~mIUchB9UzWnxmC0&>uVLWJB!ua;RNOlo#JyGG zKB(g=e6=F3!q?Rj&cWBAgBo9d#!S)I`A!JI*G3>>UWWPK@O9vqG<;=}FZhb%XJ4cf z(EYKtTJW_Qe}%74vAFm;8L@(kuQvB6e4TA8e7$?3!q+ndw!F{r6?{F38TC!#o5I(4 zT=o-W;r7Rqlhp!WW5CyNLYUs`RNTG|;$AFq|D@w8d~G@4;H!&-bMUniPob}T%oM&7 zKkE>JrUjk@4ZS?kaiPh)Hi@{3Tc<(vj0pDAWdx@?cCpp9hlm= zRM{HeH&C#DT7JkH*spNZ7s$B&Xe_vXeP+BD<5W{ghM(Z$ZQ_V|l8PI@l`(aKlw&iq z#lChN^6~!g6E(GZeTg9@5i{z0pKq!p@8YsIR;iM(&3eGTj?@&J^Q?s9C!Uw%DdwB| z8hMP0^zEAD{_!=O!Qqib6hjLCJ%Y$d{$>oxLz!1gR!@^clE3)_0L$ygUvON2>EgKL zsK)V4RBG}>h2w{J$|jwx-#Sn^`f>*0EpH=sLTq?BT!4@(kBo?FSsWnZI9*H+T|lJwG7 zf@IrTVmR5p4_JbA!HjPdY3H%>m4@`bo&|W4-oLI;ZSfI)b`A*$K+W3K04(o&vRJ1r z-oSL*Vjl}`m)?JhsJ8G@OB!O<392C`5!mwHBT=d1ILxSTFyB-aufk>DO%Ble=~DK6 zdlkL^ohn)5LqhN8fd4_z`-7cYD@s3A5^!o=r8lPxmiH)YSSbBx zS;|rdF{8eZ~&HfApU~s0hlhPEmrn|X_1Y_!V1$* zeWx&eMjM6cRs^=ZITDpxW@AQuwTN9(wcLTrZlY@$5}a9NtwzmS5d&D`hXo40p9Z2= zi$Ipwvj>l~+OG1OCyGsIzljxIl_g|fleJ2a!b4KMA;8&^3qMJ+H%W>)_g8m7ma*qN zUD7G7IZRd!|3?H`ZZ^Cba(g4m6_ zHG(h01pk8F_%?^$J5mPA+mg^=xBdrR1~H?)t$b5u_zIVOba4v1C8VaXyG+9I6Rh5e zrC;-dCd*7Abdq15R4yA^5| zZFL7szoD>uHsO)~^A+soVIu$M>xul4ZPKfV>A_{6u4|@f{AIFdIFC;VSntR_E(7k4 z?}h33o-gZPzA3yc#bxhYr0~K;gRS;$#E$oY#$T6k5*^QL@D%fdpLNo5wC$lZcuxoZ zG;lRmt2KZ=pQ+COD*m4cNqpTzmf&lkWd8)QlK3hF0RNA_=Kry{__{}y{tl}l=LI?J z`QR2sifvmdWF6fp$V%`PWF5eS|L2>k?q|5{{qL*ls`b)6V_IjTX@c%0A z(+%Q2DRCF+xSIbbuIB$GoP(-vcnYc>{>e>PkaeRIf@<1Lbam~&65@FL*|o^-xDVa= zEaH%ormqXg7kqV;GK?mo02F9~3kPcXV%OK%=98$qk z(&zU;!Ib0GZ{K#Q-xj{Aem^OT)Ncbe`@n)!{iaY5Rlg+?#;MwmsN&u3w>{^y&b=SH~fGj)Yz^Ur>jycs0Ng{7d5-&D+%xa?i? z6)JeK>3}_!nDI-X)psNuKS}O7g@Ubi^^Yo9A?3#$u*B)BYihp;I7tb|@?S2#h7vJ} zubaqO`oEOo31TPlRS1CokH5@B7h<~Tnj)eAr~8k;Q=!ZHN};PA&lW)<_1_A*JQ5Xj z9mEy&ZQ`4%^afn^f%jCUZ;<*;QT3`drMlL29AViU$PKm7HKL(-Y(%BM7B{F+G^iZn?&S52P}x(i?^89VY-NP<##UrP9%I1 zf2WZl_-ihiU#lbQe$*6z<*nQ1(Ayp?E&?wR*#HO>hU$Vl6auf@q!73vTOsg60$bh+ zzEar*m{H#xzNyMSip!q=u0r4dLEt6itr;p=U05yuP5_?JlFRcHuM}7Mdn5%tpA7d< z?~$yJ?B(GjIerk33>+-&vZeaWH<)@p|D1izvsPA0VJ?Zh|gJGwQ!Xa{lG z9d*&v+U+?KQGNS63CB+m{2-oU?)f1(_#R8I4c80*Aaas_di@=R^~WWvZKRM~FFXn$ z;hllMgKY07tl332eIm&I=r)DyZ#F7q-`eCzBHkPX$@9s#OU zkAfU1<1p@rG9oh=x7Rj*!Io*w8IR`^?sDtgx#A82ZjImb;#bgju2H&@QJ%9d)24HT z@*#ZD5RzXhvr!s;0|k9c!Xrb8N}hj+XNKu$>C_y+k^TNV`n{<}wkQ zJCO=LGRj3xnvyR=5$2Y})ja~%EgLvSIQiW8ga-JNW6gjdsm{aQeZ~%6_8DjFm{ded zcA`GKxMBVvhmK~-+ip}c@wIrW^DD8wbI`)jUi{@y>z2sR9OkTTjGL!O1C6GxQ^zH1 z;(tFzJnm>B=hBou23Z z;?(2SZ~zJKK>Qt9gZEKZ_k{(G!#7Y(YqaV)FKkdfr+bzfrrHzO@^;`Woh1h|>ic!G zbQbsM;4WOYLCQi%bES(hsLUc;&2*?cDC|0n4i>yA%^him?Il@`gfA+z?w5lqXkyvN ze*eazU2%g%mFjT!1h#6zT~hQzfJj-O;U(aCJOA`~?LCn+lkI)qo2tF|e? zRSSp!|HD@*dm(1j*H#iq3JMHd_62XGT6I3@sa8GoWh%3O;3=6l#r%D%rl0?D`HKa_ zPVyH^Usvt-8h-ZvZE5`3zW^k>PvP&*blX{d%S`tt`s?PKRQv5+=PqOK@u(&oMR?15 z3ty?#2+XMOQof$Z?I3zIF$-|n*ONH&+ej(+HgXlIq}=fcSuyF9cqaypl;hB`@436w zxg~KdufbPRZGsu~*&EYwwH=q;Sf{F%w-1u4THbyl;dGjI1W(EGo2{wk?Hg(EArAaQ z;Hl+p;F$fbiNr|a@4nYG{Y(Dyi6#I|{{WzW{9XLLzyeB?7!ts-wF4onvpWBjTZO5j8 zJ2>Dd;M8JK=DlO^cQKKY`0G!ua0ll|2__ITiN9_D65fvZyZ9R=A_510*Ns&88^6ZE zU)@oKza5`TRlnyeRo#La^;Pgqk>4U*_Ba31Jlj?~d8ou44E<(OC7X>bsk7YCOIZmpzM=WjvO{-_pAbvegV_?az1xdcW{G zM&#^3@5OQ?I?^T3`yE+CL^=el*XCideI@&0OlrGT@u;z8B#Uyf|OeG&EQ;7%4RMHfF(`Qon&3vWspJ7IQ@A6GG+FQ8nPhVD~ z&|M0C?bkHgrL@Z5Bpg5S^y4Y!zc#zIQVlmDEyyWOkoyS|FzsV_s^6X05>3W>zo|YPr3KRm*+-sZ@Ro zU#a{Tm{H#XzNyOp8<+k0ORDmtq<+K6QZMjkO3jl4vDN{Y7&KO$F^Un*^3LEZ2~Wk0 z`flKxN_aRf`(B-}lAd`;SV_+YNH_XX*pzRr>=Eo>kkkc&7Ip z^~NRvydg6q-YirjLM)k(f@Zig3#D5pabqTm*D=ldU-%`_J_&m)g(@2LRvB@N%Wsi# z&Bm(B<+V*I0@+?1LRDbZPI9l|d9_8k1mP5J^DpWXmzzD$5%rE6_VR9V;GFEB`Ld){ zXexcO$0<%~ebIn_llx9wdWRk=+;hk4>`SO7own>{Qrz!-Ze3FkY6gWfX6a&%c#IoK z+m^@zX9%m;?OY7toMb>Pe7Ya3)c)KXGq;+-*>bI^8{tPj?S|(D-2uY4#dG_;vKUg= zn#`>Q)l>gOid|<^S|c8tbcb1ko|!+Qp`I%OUd}jI$VX3}MeEh+=a!s4o~!N)EZ%!m zmN=c98i*?Kzk-4ETOd|swtLHiZn1Nq>JQrw)FsGFZZ^!>zCQuJAF*0)S*v6hXN9bG zA7jn0oE__XpKJ@sdbKLD$6Nts%n?lEwQ?6Rzq0mf;b^yqet(`?&R=rtt@9|-p%>{j z&|h9qJ$Wd8_VXJVHdLhqtT=-|08V)Q0u5KQ{^o5bkS;n*ljjlXkB4eltZ_WPX`e^~GFpV;(L90r_@ss|38=hjW z|H9#QoDSCD{)3utb=$@R9cT8XZi$c;-yeqn#>n9&i zJ(Jg)`t^_X&G&@A?{8FGlYhjRzZcCTv+W(~g3#32BpCnLx?&7?pZO34M0#BwnGKNNx+z22XdzU5VEcq+dta3wKxq;Kdcd&nmU_f_Rm@Bc1qcZ7ncYBsfL{^f7QTvsdWY2)R-x!xSe7( zn=R$xBEZy$TacegevmH6_NXuViL^(1JCa@ydvLNKgZfKBDl(JwetoJaFH%JT{H{a` zc~?P-8^6!GVv>~T9=b4WL>t!U8sFgBD8CusBJ1U-YG!#^FAIGrZ9UVzRu6i9Jat21 z#s(SPSn8WYqVW!@z12&cE%HcMt~eAHteyHsXpU6y`;et>LWD-OP~Kk@S$F1$Qu>@g zFLd9pO4-lCwT3^#kbmg}$>XnTO zt6nXrx2IxQ60@0~994SqC81zhUq<1nvr)zsMcpc$5nM}9jce{Eana!wDaY$FgwLx9 z%C;KfC@w5r@{3@9NL1q2ep0UlE;D&UQ?8H7Xk;)N4U<{Qxj$~d7dTcwj?2F}{b`UB z8+j9I7AN*KW{M=t{0wOw?;I3aqP=|n#v;yS@TB8DDM(Sq&jVuj?&F>Mo?^D}M6O(z z5lti-HI}!lCi;wuI@%O1ijmp&;nnq&HzIW{^VOf~@k~F3Hv@?)$=IXKQ+Pq_`hA(| zn`Lf_pC(X29#CF_C<0WlDbhmnY3o6hMA2&0O;Pd5;W|*%_xDw_T6n5voyk-3rU*tw zRks@Z9`g77jabt=Q;k60MZA&JBP7@3_)UO&Sz*km!YbLyluWix`Za-lZHWhFgR_l_ z9M~YGU-f-(P6JaKeo5qrF%0e>j`y_&BbG9c}) zPTJ53{gxY2olzxX%n&Y($~2-fL1X?e!Gb&U#!PP;zXv}VA(MX7#uQT5vHg2@>KYyq z_3d0Ccz66i*)LA(4EXEZq+iM=dziG+@x>Wj(v5jj)GTsA@?2tI<{NQ_=djycj5p z=*kR>OJzjgGL@;JKyS@&P#F=JrSlv1XZ?Q94>;{NhUjCR=(;}0Y0EO1?aaM&?t+Pv zjG4bd zw0m-mp_`5KK8|#_r#<)O=w4_I&k1D6w1u+dLm{|+^D~U| zZf>0w>2c3_#(CGb&W@aQ&l$#ffz~Y|rx=!8WsSGbuOwDKQG?6elBiJ%lppd1MRnz+2 z?P*17rufgHAQDPY8hkP`j*GOd17%&wjW58 ziwM(2PEeJWIfEHS$~{kP6tQ*iUDZwMd7r2OWes`vca$|IeeRfisn*Dwtr*a0z-NEmTsKy`j3SY&N{^T^D}d4cXKU^nn{FQIwS(e^ZrFZt4b+ zEM86dLM2mIL@C`kcBFo=Z=_nFc-`ABiiLYAzeTOFUGC*TAECeo^yg0A2~ViYuc1XG z$8UnVin3l^ML8yX^8TL8XXH21$xn@kI|?QaGiF9f!M%yPk2Px4cllC1t@lBl6@9sx z{qK;T)`xL}3~C-Y5^m!2jI8xImuCdlXH{f?B~7O%Rx3I^k0D+>)s_`6<|`>U_W z{nb}hcl_&4>5e<}K);NVEuWXd1hdw*V+Z;lFVWqxAwKl|@CtdT%f9|BQF>;S{#{1v z^3Fr5SoNx>0qAjhP57tB)tYbs5PRlIwe-@Z_5()faAkP%@nVEOSX$EhAmISJiUhwkp=V=Q<__R)+5kBX>(B-k@!npfLpej`w0s(4oH z6`+ET0E4zl!I;Ifo~$_BJfGUh;`&VSD)&x&leO$1j_r7#ndjP0c*wQ=<4$d}IyXV^ zV0oMJm6dM>X4Lmxh0se|gyVAT=NnwM=P|YNl?u|3*;>I)?L8~NdD2;pu<2cis%v3i zFVF_z7u7UM+pm@JckrNCA`!loTiU`vBD#3F@@PVlANHrjE{p~CSz;Hy40}xM!jEB} zD0b=8*zXX#46)d66uVsV#y%K(?OaNg#=l;MpHlhG1AL_-Pfw%y(}DHP2;ZH?>Evjy z8&nZAjUBB}p$4jwXs;i&SMM~T%SP>WM%vK7OnbFSyO{nqUdH?{oinL&1<2VS;UxUw z!m1y0j0H8ZgSmd=k!qjp+Z&Hn2eLN{huJ&CrX$)(BIldCl~NN1*2w8{=f6p)>X+Qn z<|U%uqS0tGzgVVmw4mg261_+K^wQ1Yvm}^zbdAUh2!xHECczqy_ScY0@r;#`vw2GU ze-0Mj6y&5z&}>cU-`@v!_&3yyam4v^mSQLhvZtK_b&wZ)Rt+@NAvIOkzQ8D6JmV+& z{F*Dho+2XL~16%7w$1svpXq4XCNMwLqCvR6hABGIEp;=#K*77Jk zqy64J^@(_=(v?Q3$i^j|3`!`$r8}NWRFSEEvxUW>S)D3RC>GBcmy15r#)({xC53u5VO@sk?|@&82qT?t0+`O2?5A;ofn=Eju>cXHK}Qb-0C2xTlW|_nH&# zLLKf!CtUd0a4{!b7ai_dCtT67;jVMS$zvFl&ve4&9UJaKC)`f(O}M`};f{QLOnsX> z;V#wbjc~$kI5yn&Uo>7i>u^^(;a)#B++ru(5uI-jCtT^V;U3lDW`U%x}hlL<+z z9b#{#?X~w{&(!uq;=dn-@D;6yY2RmSej-nIp$qP8>{%iJ`Vooj#A`3LQ{KdgrzMH6@5bM1d(FQ|?fxB}zXZ#dCJ7E4y9}IQd6KWJ$!LAiOv~ey^LX`(OGqg06SmTc!&0xQ6`gQ~{ z>qIo(Cs@hTP_S=|ZjB2Q%P8CoS(U}N$e425SM?n7l@)*5_$YUiZv|Jy2Z`H$s) zFaI+B)%@M^C)YRJE!k-99^Ld{xIK*F=vX2na^vV&eMV$Bd)%TMIe#-ZIE>Ol)hfL% z|F`t-gneX}kZt&EPKvu;wc3kgdA*9AP+ur7V@3-iFIIFU8oQXU7Bik;uJPRfokd!d z9ID5|DBXdtuka+Sk1zGf+cd`G)umrWS}&GHFFC|olt2{{XnhCbwO%X)UUJ9-o$6*= z++2Y2%#$SAI9L2|OK zqU!a86a1HLkQyO-FBbV-JYNTIxws{+l0(_V33v7lp=^=UnRx4%lovMxWGtxk<&49( zrF*|budw>HYvhSlej7Vz7!N!^8$sEH1a}77{LP7NiW!NoR9K5IT`avczId^8(fGS8 z@ey@AURmBL8h?4Q>LhbHsV08aRogS;kIr5S$*knRj{ipfkEH$YC%@ylw-6@Ie-HoT z$&b+YR=lj(Ty7Ru`b{~Rrgmkfu2>|ZMHaRnERtz@KhyMC19(4+=~&hTD`b9Lzp*|c zvhXd^KLgk8PmDH$tE7kIqsV(l_#6V>wHk#uYd99fcGNnopR%|JRuXQ56I%79= zn_H7T$U${YMj&NWHK_@1leD+mjnk_#`A_?4x~V%T=6A{5OJ!8Df=CR8$ToG3bBSA> z?;CAS%u*~-K%dvZoqdeE#WC*8bhlm)>Bsprrw0?bV6Et!d&JROhg>y#lRN^4f;;%a z+>bdR8LFzy8O`(5k5%RGFa6jEEJtCR5m;j^IA|>RRnPoeI8{gQ7CC^!&R2&Pf=_-4 zPf?fM?#gtMh?T<^x=tl!4xi&X#|SiXI>SW~`cjff)vjBSspp^gb9!u_gLe4GWciii zk7Rsu(`m5&o%EmAzsC(f=0AtGYg%(G1o3k&xKPh2HO#*xp+={CHEWj7^z1{B96NN{ z#1o7KD?^LAfDGw@A>)Nra#pN^4W^O0rtcm9=VtDpYXXCy?fpt_7yV2>4(%vfKdCHDz$VAD372PTQ z{!B{7iRGsCN@|f@zc{Gq>EO4HWjR@Np2&h`<)V^)p5B7m@q!sa?lzDcMzi8kG2;%3 z8^}xS1BPzT(~jSs_C^QZ{rK>b14T?6CHwa5-$U+ly`>p#Rl(Sdh8KD^|BOnfE#Wzsrc`CYh7 zP{)JY3tCaXZS}f*x=W;&@3{SIB1xg~@Obj57p!}CS1F)Ku3C3S`8O+Ce!b+QWESHhIeQuan~ z4DD=`#w4L3%ER#7?loriRi)aUc>HkeU^C;sQ3|wPK&3;Ky;UQz50rSFl}Fi-ubLXO zUQ!vqn~!~F2bJ-Imx=#7%Ko1Cm$p~opDYl&D2%QBS^=9@-vv5^K`W1yD|B3@(Ls`) ztf)rES1PC{8_bo;{z&ay<Enz+D8JmJ1A2&k5BAz+e9B`7r#lI4QSfGh zrc(G2Pwk7!qf!;IO4-}&mdNiZ``LTN{x9tDX(e^0G*9VM3Ub;Mu?sg^QrCUD*kclE zSV`TLPzfV=UHATTbHjJXFE6RHXuj~RC3U}Djd^3dXGz^?@EaadQg@%2#qrbdp#=Vx^sp|?h!uch2&u6ST6MYXnRq+yMa`xNC+496em~)ay0b~(kAN^>*thHuT z`q>-O+lEZ^$-VTFx)V?KHlKcSN!|7i-sa&gC3QQ+{Gz08*h!dc;_sDI+dB{c7OTse z`07IDA3DaD;}*o9{m=3prKsl3*U}E6zCT?FXrIT={^^~xgQ#->B)pH{&t;OkIMY<~ zH+|44UB&(Or?g)~75BvxwQmCz_v?nT)$w~3_s>&orA!+!8SJ4sWL-QDoPf5I&yp)3 zq5`7bXPoXUPqDQ--x7AN^Utq}V01TM5sccHQQu0wDZ%J6T=oyslwkB!VHNM7hW~*L zmGh4hnV*F8OGwOr{hLEXt5aIqM=|F#z_0xz+<++Wtg6j57VH*DpH@N)cP(m&*Ot^P zd0^mBte#Qv5bG|H9!4c2;jiqW#1{p~L^Qw9qpCz*ZUi^F8jKGs4aSF6)MNQG`$U!h z`u|_^m%FU?XCgE}%4dFIccomAX%odNj;IC&*M7J^VOHf=!mU2eIvr;8SpHX^&(%{z z??PD`@=JIMyBu&C)(KpJs0m-{IwvaU`L1)4I3s7(ujIXuLnj!q1w;=SOR89d9jb2P zv9d~3e>YduJ|hs>Os-Gy+G`ZAz0^S#y!QGKEBvY-;kB3MuF|D)cx@Uezp``{8l(fp zg6(LM-X@Ets+~E(raP4|hOMQmmfn>$t&_jJ{B7SOb+JQ56Z;@@{6g{_)#AZW#`?s! zz+Nbv2drS?g`q{U95l#!Jei75I$d+v$v#YajaJ>26}GXo_9j|~x5j1r>gEoUJ>d;z zWCL5Rc6(Sgvr0*Q5a%utuSelVt*IOEm89`~MM;r}nU(d2tnlBlba}palkmeX2FEB2 zo`gg~y|*e02Dc2g6F$hKBYkh*(3m5ov}5ehDKuoQ9K%3P@du14|I5Fm;r@@8*70D+ z^E+PL|1bQGEt~6h&2)ZDum9A+=3dvlls2;7c#j%cL-^T`zL_?%UJk(W_QqdbnLZzj zbHcgh#QAcRSECQCSe zl4=(`#WddlIG4fmdIu;mvQ%{w_MHGlIA(s8T6iA&zCHRD|99i(#Q){^dGY^l{7mV8 zcrmTdap$SVfADG5_-$9K#y|Rk zG=74wH2wih^gr-THU4L~?EMo}Tmp2w%*PA;ri-Dv6M8$lzLCn8N%nx)- zb(NzZG1XO$n1pj${Tw`{)gOH=d6na42Q0$S7P_W(7_hORS}PwuMxKzw*I7g)lHMo2 zfSkDn&{0Y;n%DwhP)XP)0YLv7{t922SX_Kv`A!O7{ktoC{pl%%uN|utzCL+g@U@n& z;Hw4`{cn6z_<8}Cy?jCnUsvjiiGG1x@MQrvz2z$AUmC=`O=3QzV=8>*5L4l6u!M8) zRrjjK*CPt@tEcp5wZ!rTZ7$*_XD{}1ouJL6*T$h}o??1@8%UsSr&J4Yu((CJg zq@nVMh(hH${Opc81C7cx04#4M{tA@~u(+s9ysc3ws#*@5qflx5-M!=X#7c$D>4dku zC42>&lQE;dKk@ZMh9iX?Ld+q!>`CMT|L_MPlOzAq7tW?K{=^n5*_E)m@NO3n)b#dL ziL_IRxSQEIlE{TR5p|_)0g0$9ZHMQk5c@oyl0!2m2f0S^RT}(02ma$LsVi;z{LF~j z(am`SDk(1*QMJ4v4pkX({J9|Z@$)yMy`j zXDg&Gnxp75utH(9JAu)E!B;SP7AE>H_@?Ny5ia{ovH+unQr}m}d$Dwk_(bceN~jDX z{r)+@rOg-qmv1WiGFC+tSW64hx#g3(eKCnE{J-lrttb%}kz4iuy*X!kuUjL8TNGYGtoJ!`a;3 zPEk1N=eK5*VN+`&W9E9SMdr7~)<0)s2i0rO?6M#HJc@Vjm ztR!NG8*y4G>aS>o!yNJ$kAxidSN*_F@(&@C%T&c>vhI5P1tkuS7Mg*)7Hm{iaM|2B zOtb1ab(m&2hiSyqZw0f>pnkq##4C6+URB=U+>PuV4NI|W)%Lg(Id_w!Pe)$asPP?br~670H+fnb#>}}? zuO#s=vCpa$d(AV6J-cIxZpH&wvZ@ZfU*gI2M3FDRlpZo-vV0#=U6Sw&S)MojqLM_$ zzBdq*NW}74_09gcLqv+r7U>n_s&Su}B-*|FMQ->LA`Dud7yhVrzhsd}9WR z<@x5D&tiufP4vbNWkg;iMN$qwU6N=e=3})VsR-E_e{E&VdR#^L{)hV$h)j+9!Vqss zVt=bPEsWAJ*lYi$;3r7=59K5EP-oYq@WN0V_sLnBlEkZ0RV~^~lxB!sM4R!EC5bE$ zW0anvLV21Y{wQsu?7rR9v9z&-x}>DWvzhWH8cjT(tu<6tMI=TqTM2 zDhKW#VehEytFS8xX9M}B(;m5}^=`t_Jdr8@>yTifA_Tr ziT9Qyx)4}POJ_Iux%+?aeG@LkAaCO=VkJ1?gy}MEsIyI>@>f5( z@Lg8XT6_mNzBg;%4=UP-?wEF54)DvGgSslpeB#~l{h73`oJ3O=9ZH0Sv#(ctx=~ntRJLj8)a{@ zeo+U(mK-FS9a!b`^FQEEhcid4&`@@z8Q)y!Wk5NfVdQu_-i`#pXkD5oVlBGNb+`-7 z(!72UGT^>0SPtUi?&P|2wfo3zPIP$=2Kd*m+k@L*Q_6VZK^dx)<>|cLl%d%CAWvk4 zf}#Vbh+g$ZA?i`OhCul7IFY@Z_uiyx@8HE;_uk`j2xaOzd!c$MaX^j=KZ7v?;A$86 zlm^P%QBb=EE^&d=G%!~Ixwj=TAAHD3_RkvFRRPb_z`waM0~**v0b6U}U)-2yX<%;! z{0&(&$=>1un`vM_1>C5CgIwTG>b1WCAqA9oX^H7`^OW}wL*{@%3iyl$_HcpkXy7mf zL{quMJlzF8p@Ab6aFhnNbAgjJaEt<8u7TMu@Olj#tAO1!aEs+&=rRqQq<}4s0iLFS zv8a%b;C>gxOqo7>%!!<-;WFDO_-Y64CjK3*9WrAw@hJG~8ot1VFV*llF8m=4pX8?h zyoS$p;dg5II2V4OhQH#%i!}T?7k-n5%V4YWKUc&5`rjAO!zDo@k! zN*BJ136c7jbaCsi;VWGDY7PI#WC#A8dZ{qB&V|3O;h#L}z?W+HmoEGv4gbJ}Kd<52 zT=<G z&(v@k^Hln)HGF~#|4zL!7#rlmU)S*4T=-HAALhaz((r3t`12Y*(uLot;a{0f`R>#3 zF)qAF!_Rf&-=yJVUHG{geu@k4ui=wicnb}0=fY3Z@Td#lC4^G$YvsZ-HN4D)uh#HJ zF8n**K9v6N!e7_$0}s3OuizjuIpbp+iglRQ)E|9F&6k|@ima|^OGWJ+j2^7{ zTJ8_7&ImWD8IVo3uq%Q@j^h#PLN;$XZjg9X1`sQ_+V9NWPMG7u15);y*a}IDAGs~8 zcnQ3^i7Yf@>m*3I7q!I9+=0Ao>^v%_?CKn~WAA|f)y#?#CKvlY7$mXN3f}i&p~OB3 zd-o1vFU^ap?7Ziltet97DEH2CoU=8w(s9nw&Z>?&@LcWe-$^ISxwk-G57PEK9<-qM zz0Mlg4|~C>+CCEdH(j)S4E8Q(i@h{Y%?Rb*N7%9#=RBSK3yyQ4cD{I?hE{6ll{vcy6exuDw9sD_kO+=b|1KB$2@r->m6QP0zu6NM+{c^oQW!T%)V^$yb|b z-Y!?hEG72FqH5bik7ApdHaOZv8_qOufH7@Sk#g|w8+DDkKiutIKcrn&PI ziAU#3c!}g#CHcgo(yZK2@^)Mym%CPQXV>WZWnwTSH--SL6Q}zeitk`;2@rwS~v}})2Dw{gIf&JYERW?bD&orFtR=SKfEngA*NdA)uCt>^-5Kecwsw`% zL&uf(*;VJTScu8-5pw2&Qoaz)>K@>538Akq>V@`wW& z?m!s89LOXGa+w2Rh;tw}IFK_O2&07q2{@4E4urA8ft>9?e#J-1CMWxJ3343BMh8Nh zI*|S6>r#K{Kt$4_<9zKvUT`3?1ksSC4#adItb`oMD+&@GFS$eNj_)JdcZB%TAspX( zweJ<;%ef`TceM6Z9o9(t4${6IC2UU8_Y!{mpyc@yxxZ$j4?!gq;(RTFral9Yif9wsd|TOSuswhc z@CvL&%5xdErONgZHXEB+3 zH)L}_%-5*Hwe5{rGEDliI<#*e?&izNy{LWov|2fM<5S~t>0UYrDP53n%=n3-616E& z_42$o9`*xV`%^sPK|-=TuaO!tlU$LlQh5KCatQ5Ph|mbEHwR}~#T(3lT-&{)g(?__ zq*Te+i_KnT%wJ^=?4-&q{wmj`e{QH|K%PoEHa(YP-)DlLO&$(@^H^mIgf`OAcw;t) zNnx;ARq`#)-JCl1cyhu6-WOE)h7TEjLHH8ikm1)34_}zSl6;2`A)iE5{0!<3DoW2_ zr~wBPu%3*SVL4jH0e9YPL;wE@RnUIif>tHxI&`J+76tB5IBICy(5PQS##?&=y=x-v zRl!v_X#s-u>s=GhEAO9CWuKa{E>XGOHdiHO5%GV8dB_0Tg;l!O}0IOb?Q z<1ErM&d9$xGtR5huZqe?ca2T!M9CUaNFM9WQ&kID!Fh?M%xp+C}ver=9Z==Um?mP(GE?|sbt+yKA3lKB1STj}_HhS@NQ-|)>1@H_BH7r(J-xvI^j zp^ehNK-6y8HPTi2(+ENze@m79h%S4kF8feQ3sHOz&jcIQOUiyOXB8Thw=P-UeQ&0h z_b2?5~VTi!@-j}f3a*&aP_YS13dA9vg1f52t2`P+Z&p2ezvxPA8jC^nOwlFpeeGjL5- zUNfdg7+5h<9ktNXf@C$Nk9WyBd>h^I{D{KlH(@c(IAOZN=1ugw_EkEGp0{dWmUH;EDvA<+$wq|ht ztq>DjVNJ^NTg5p+E7#8=*p4cfErVYfY5UNQBz$c*$Ww&u%#AGD@Y_Pg3rG7*u8LUY>tI+%#f z;oLw$pU9p-!5vwVUGYLL$ic=c;XA4WX77MG264{VY&Ax+ z0G$W85Y5meER0E^sq&CzA?rE8EQ+J(H510#-+1BQWgquK;owi@4R@D;2MdH=sF?U4 zcsLFwzO(jAPR8LDqi4H>65-UUX541>qW4NedW@N8W0mW|H4mgX`-}Y6G}R0I)`YB} zb!|3W16*z~_F#6jk=#J0@H)S)Kcu$J zmnW82{Vd#056$i1*}`-^Ti{vcmyo*JlnMrTp`Y4v8(Q&6JUA^nLe?|$?#jMBL&_{g z9(KA@WJ%6puU5cwAM_h<)r960Wo(nRWW#blmMV9VbqjOvHF^KXO7FKWr_pF6N(r+q z1x-ZO4IWhc2yFvibHVFutPSz1@i?KYLgNGmCPC%YG*liER336rS(B)#`bALLI}Met zXA3+9l`h@_8Q_l#Bu-=Bo;k>W%@~=x#>kXqcQ{SsPsq2(nkOB=k!Y1jfweG7G`k4H z=?SA-)OXfjRZkwKc(d-SrqH1;R_7B`7UjO;zW~=v`Wx<`H`u=MpRi9{wo6Mgd`5Z9 zk!PLrCwlWi@5B$#5>wu?5l12rXH~`D;1ZfwX@VhYx@0MN9-@K#ph(>dmJzDBk{1a% zbKzs5?Up=|{vX!kAF8h0i8t}|di)u|!+%+iOMe!z-^`tK5vmOL5WBQ=?Pcmx;;VV3-9^= z*L-uxcb(+>1tM%UXjm8fEwa|xw)b0CQQXTJwXSLb8bAeNi}a!=A}bP+%E5!|$DIU< zt@qN%@4n-a-(<+|6-1v*B%2f;)%`}cC|Ss))88j|B|{=d=RYbftZ(O>Mr zWH>F23{&F@Wathd zsc{7|bUod1#U0o(2h;v(1Ib!;HU3v*Fw;q(AsHYS{@o~KlupAJQh4TeMG9*a^VR*1 ziI9RXO@8K#M<3pnq=%*m2NY91*j_vLztO`}L(=JCeA)kPdI(vUj}2Lqa;$zGibnBt zOaH8Z)rN^2#Vx(`eGbG_a=j@he1=cS7qbAd5DrClntL`^~+X5U6H4Xj2EfpNB-&C70&B`ev6{K zlTlS@t~G-7M)22SGn|)$4gfuxCWt! z5=KK?C?{X-%pq{wvO(<#+@8QEhGLZ+&}W`mSgCyTbl4#CodS)-a_w`vMm2kbF&a*Sc^`agi8VWa(0>T&}A0n}$o zcG*DCH@;cf;O6XvWEu~>CJi5}hNHIOi7WjdKyaS2;*Cl9uu8B$7}{nGYx&FlC^GI= zJlD8>6)E#}4@yYU19jAHKfWGa!mWer?A6$eZd%dfI{VTHuC7Doabh4~*36?lT&R;g*|BB5u0W-*f z}QSW9k7bI;WA6Q2OU#%W_7d*vr7)iz6XMOEV_>@^Jg!U_Sqp7+rX!IU8wx3 z>`-iK4>qR*n?j?iL+0f!7|N8)}~xsOSr0E!D%A-?IQ!4{sH(MnnzH-Wrk<8uclyetr84biH2R zzLD`(BzLdh$jLJH8pD_37iiD%%=vBGQ%sKl0!CJ_bVtCfGJ>o8Mvz>FR{`snRW>NQ zY*^E>5ItyE^U$a@DwU=JYN6saRkWWILP2J%vTb3(VXewkRNfe+H_`;yGQ%hF%|b&N zg|&LVUn`fMocoHZ{0n+cuI;1zJZ60@`|WI_^y~*xT0QF^WgGQPBIQdQew1{53NDH@ zLgM$Nr#HW6Yx98d)>QD3pz2^_zhL7c!A8+VjZ_^j6HMS+bdg}9=S4|OTtiKZ(L~5djtCYR~r@mL$Ugy;J z3#Af2e`VaOUSLz&k<+=vW8ya$zZpL!FElf z9xt>a+$Go@IU(MI?OFT6l$XdUX1H>SLTB@JfO8JF1oo#;&u(gQ(?Jz5*`HGK3Z_fx zGlk}ik$Pr{406)q9L_xWiFfT^SS+!&a?=xdIp(0KFeaauh63+A2%y8#UtYQ3Q zsPUUBoZnQT*w~s|JY$DZ8iYqLET7R&GBRh31+};)X_qKgqJ=rCFKfDJ&kSRJC1Y1v zk$G2T{JeY!G~q>)ZVhMp^Vy&Nk?n>`L`Sl~Mt)dq-JI7|vUCCi_3LPjYFlHQ;!ZQMQV&5r!{t6Y`oomea zBLZy{XK>;8`ZpVALV3__Y4vP#sfZJDaY&EgeI z!pNTH7^Qbod0OAPDqE>o6(!++6MP^uMKB_|+pOY+_Dmjs;l%_7?Kz=7F_9rT=N`@K zkTqd-yD^S?$k+ z(O{|2e!KO!`a~Ml)cTz?SUMtV_ZQ3|wH7S2MA2r=F4@#w ziAof$h%GhZtrf&w(JGL*iDsCtqE-8DxxH;Ky?<|^w+e`F*#Jp+5fVV;MG;VOmPO=6 zLwJ$>f1fimn_U9Fw6(YW|C`TeGc#w-nK^ULbIy6r@BE(Uc=Gu_x|ls41C5;d{q*(t zYd^)KBU^=fOLTj_z9#xsPVT91jG# zmMg4b)VJ&E+h5KolRMRAu~YdBe66L`$z+&VFl8DJ;&rUjkgCKKMtk5Zl$f%G8PaLD zlGu7;FiTfd0?Px0q7!Hj&m*q2G+$pqW-LCziPj>1gZQmjNc+i%-OAhR4hRuJd-!CM z)Ey8ug7)x#sB^U-Uf;)wU3Wm?hV>VzL_$>1>d)mo)%EW=l+J$bsmj+M@Re$E9b`DxDAi~OG)ce| z0{r@03a?MrCGU&n%J<1aNAPwF8<-X30-8M}qZ3x(7a`!;7xa$cUGtlI9tMv?wW z^$SyJ&auEjA~FJH#4aMDdS37=Ds!+j6bqx_3*3lH80?gDtr-37TSp`{-FQaq139Ck z&4}%gGpV=O7S5>mS$<>oZlq17B#J2UI5(4P30l2W9xD@rI-#ybhW!?sE>MI=SQG|O z`tGg32N$LG?`i830p1Hy>6yVGTY*I`)yF8|x#Bx=_{y8NAVU{B^L2SH?cq|eMH>(QSvUSP>fxUF zlQ)Tnf3Z9jf7%yv@TX)UXbq>UlA#*e^5MN;fi^F+g3)Vke5ewz*jKr&04Ae)g@rN6 z-QcM<&eSg*XVT{E_852O>7n2H#%~TEnvQnXIAtIn;eC37$eG1Zpz zH<@giUqkJ~jthu4&$>PN`!Mi4sPFh>Unv}rfWE8J#eRLQZdNX2DTj3&v!AyTv2wiVgXldQl-`0v)7*iW9 z*Y5RXho{eFk<6Hs$M>^x35jZt$MC+ujBr*WRO`OZoHiV(p^~XasD@Q4O|R%R-Nu+F z(MZ$eXOX%6jqIcRVcY!1v9Yhlah0w9lKOPAeU8Q}G+%Nkbv0so>^Nw!&v;&~Mm!9w z7BsjRujkUGDTVzsc|r2|-THc<^clqu44x!sqO%9jz@KKQBt9h-4|Z;b-jYy>CV%31 zv&yFD91-~b9@sF&xZtmhOtE-ePT(LbaFD%DOw3ASdcIlk<4goRVdinHY#ljC9x7d% z@}!xP-(-2%{-x18r?%U$qw;48vj%%cQwruA$5?Z1ch+3*+Ng@Agi0o?d(HK@^BK4C z@><#hA1bS>lek=;ekp#pQtoa^zkECW(oDbHnSQxD{ZckKNqKTt`laxkQtoC@04bN* z>6ba_mwD-z`RSJh>6e8mmrMZ%aVb=Rl2myzE}?KH_zmUV9%b6R{cvSuY`#5*tj-Tarm}brYr(ji zrOs++`dFPGKa*5N8Nnf`sVrqaEfrAzX_h(1DFFrmA!HL-<}m1eE;?;2Lgyx&(&LB66ILYM~g@;j@7QK;?C2M{OgEFD=>)=p89k~=sUd2+<3rx{L7+V zn>($mzy9G`{Rcb`<-x80@*(Mn(blf>Cr8>~No~2E(tvhk^tz}!lGaco zpU`7SKF`iFU%vq8nJ>IK`SnsUpX%$G&xHI^02{ij0{Cm6CN9hK=vdfCh&=FV)w3z{ z`tCAk9y^<<(X?B!Lzq70v`YOQ!D4JxYl&aqiHolIDWV9kn?X-WFLx zDsPK=^re6JwsMU}FURa;f0*8_?r<%)CVx?Uu-^@W6F-T<{SPY|an=w=3Bx2@bsD`^ zd@ETMY~I3D%{;OeJ*UV1Lc_geW0XfP7mSTy?T~j&71+J z?B2z`@rPLd{K#CctNFqLDUL}@1Lo>u*EVdLcBU~FfGf1X(h(^Jvw56&liw9^9ZoC{ z;p2H{4s@p>ov4D)mrw&2qXw=8E?B@K_UuGxmS~HKnRcd%82Zw46}yN!P@LbCti}TM zhZI7b9B-WdCh5PSQh$YY6Sa@wG@cq-V2m7qzwGeKRU(;My||I9#0GByrQtSSC@v#d zG<>C*fp#(dkhzW9_))Q+V|;*fCU;O+x%0S+A#)iym-$hG{_{ubj9U7>7~n}-N^BgU z6AJ_ReS?^l@6&E-14}>YN5!+aJ7j6{wV)6flx+>AJT2?4>oBi! zhg*8bp6tH&JMJMa-@|2V@K#K}LKo3_jPTJjgWm$C$(B(sok;xn&GysovY(b~J*{8- z3j4+l+#vB8>~W{J(DB?b{ZJw%=#yL7ipI}&v%NA8`XZ4wR;V}ZUu(Ys6C%Yw@ET7S z%b0;T`q1fgh>o@3Q_Anv5*aNg@I*!zukk{?6*Cc{>w6b>p_Vz_T`Fp;M7@-#GOd>} zAH7x|+aApKmfnHEm$!6Uj#l4d-ydY%4>A+p7eCqN7a6}0K^DDvf@0V1@|50}6EZ7H zH)DH20`Lke0^W>#h9S!kKD|*L>?@jNAD>>QVznxN62w6&l*$dyR^o~m5_x^Bn15=j z_0lYY&Att4AkgZsp)?e6cS5#Dzb8j#XJhm%ovk}|$$6o12@A0H8Etv-Xen5^E;7V< z<;z?vtIF=6XC#QXp%JK9B79w3O8n{-FFl~ft;dVk6BM4hf}U%GeRJ4DzH}i{wlad?4$-QvUQ+6D4@R;-oOUP?KSMGy zx_E-jfJ*5^kj-CTLlHKazqtQULT1j6!e}8a;w)Nvgu(J$9VOhVKIwUj2omFJOrPbH z_Iv-;k_CxsK-AnC#VCwy{ zT*w++Z{JTn#)vR}P0g^1mkb=L0$;KczbNsacM|0(e&`iE$QV#3N!yZ1`>I=mx#ck~ zsADrmn!mo0{RtD*a|6cx#e*e!WlD~~>&_>({p{>1eSAN48#gwHr&aUc?Z>K6uMuoO zdFFZU#B1{Tlt!Fp_jqxwd^q(jpQFcQgeO4@v=vnS<;FCw6}4b3Tk;8NVC(JU(bRi09=GM4P)k75&v3en}2s&TI47up&o$;J@Wkn-@o&Gb_VOvMR&x9ImXR zP7~Ab9u|9%yR?mUoA8Yh8TMV~&hdU+w^-L>xMppdR&&d}boxIhGJ}@Yo!!iLnwK%s zs=1DE7}*Lh ziN(OkB9(s`QQfuufZAK}^9GE0Y4wqW>B~JVpD2Elf*zKMbHevBM?S;wO^`3qDBAF{ ze7$Ny=`z{9u+>~oe0S?e=@oHHPVx4sa>}*uJ#1sw1R1lmuRD$sloJ`&a6zfI~DtW^U=k!ark}IY$A9L*IUudnPTUv=Y7C) zg4yR;Tj8ot&>(b@p|j2C9w6R(Xu+6R-z3N5o67m=HdaGvypMm_Zk~UNYr4vJSW9 z$G>7ZV2BS3w-v>UEF9o_EJ&f*NuG>~3Gw`JTUoqU-&&ILFyzit+C`~eNN!QWRBkK` z#N>5z`Mtp}tDr?9rF$QFBbE_^b)C z)saxl+`3gf>V2_1*3BrU%#+n%y(@UgDLpGY$?~!MlhYr5%jyrWVckr*+B?jvA9gw8v|B?pGa)`2{+@8gavc$N2F5Fe^mW-ZJ0Q!LB%ydkS?%k}0&vz3Op z_nZ(MA~jgL>~7gp;A-nte?HBA!`{1SNNV^0*^ka(AQd4M%6M7Oz;urr*Dh@S@BnTj3;ijbN4;p^5|_|mUh(cAc754rW@pk zE{B?<&0E2kGPx4NdcK>zr4sj6sSfSQS5>i{bp^$AE#LB>bzLaeBiX%|i08$>%8kB+ zsPZe|>*7Q8rScqfJjyRd`6a9}ImpH*s!T4kp7ZNd?Npm5e|(v&WRlRcOeRq#;G$_| zGRZ0vB~MmcgEcl?+6MS7TYN=DLK5#M649-BxgGkb2}3rOMuT}~UiRTcyq8iM?Yc?# z?<@VmDXJ4PDyodK2~jgIyu~HG3iMNt&DVyXOtgzBdDXZpa%3VY`R?T@9enrgb|Wq8 zY{?9r18zS;sv<$RPc}-Up|UtztX+CG@D4+EZA-6=IC~Y;EzQWMElUJ)S(BxDWBD9) zi++n+9(~H~-0o#oaNDLS^P~-H)RTTwNg-Rj<|%g`O7a7Hd{0h~?~#xBf^2NxS$3N% zbPkWaK|O11>_Q&I@B;i+E;fr zX3{|;@myb5HRI~ZjVFz@Hua`vQ{>|UJ3n^~X)3FQCi_H_F^T~{yzQe%_T_Y<2uK@6 zA7@nTk&W*41IY`!$4hSdSzxUBm);2RrgEa?D%tP9CXqin=jA6K3oc9DDH@*1}`9I;pu}jLVZ|I8k`aQCbCv2 z5QK~i~gl8$Mby9Cs+x7*d`Hb#}jv-POn?s1v!tWmy_ zHg^4${bjCf=AK7cq%AAiJ1yT`!ghgIX1iS-xK#0wW|_XnU9!aE+Um}_&R^2eu+*cC z>ahEkKV+a72hTYt!9)Pr1)yEQ#)Iu1y?U)#f(8c+ycT@5oxyYkpv|;V-jcNfbypA* zh(7QF+I$W^PMXlMqzyKVbC+V-VfH1X>opj`rX$gfV|uDifi23 zpsh99n62^L8twh1)}>dw>6IFfHt22s^?$p@3m;Mh{SKeeyT-@E_G#O96Z<`Wysf5- z-}^lLBchMl#UrlYBa5D@FVaS}v+Ye0lfO}IHQGd?y&0>~ZWP}7_7FPyXtFt|g*44e zTs2x%6BC4UdEuZ}<6l1l}YOmXMS8IIe;mDiN>q)o2%PyE~ttZ4zgzJbP_Co9C^S z(|3u#i6|TH?k}0xDw){2SG#G2+}xnzZD6wLARH0Qvq#ncJ?o%c5 zR{5-@d#R|c{JU{yyq7$1#a=0Yt>nLjoy+;Uz1m6D6vvo1IT<^blU1Aq+T{uI@1*LP zk~+?7O8$GWq#U^YOzi6&NSy+S2Ovp21#cAUL_b* zO-MmIp%F>Rd7!pN+m0}b3>HxTC6Sx$M<`YHH++A@N6p=l1y?j_o!S1*v+J&jGMG)mKD4idV`NE zpV3go!Qj#_mys7GjxX|rWLh>(8n=!~VWfJN&v;R)LW2ARNpm`p{Ca0m2`6P2@6)Dv zXY(&2&d+PK+oK46-#>r5PXuwrijad0CtI;O!Ia8}*Pb5Z}FF=-4FN%;o)xy2{ zZWAAq89kbL%KqjuYNy)E46mD(Bi}XsYzFE&&_X$9DRKn{{_6ZhcisKPEL*rT?icr> z@ANyy*!R$_^!WNB%iP*lgVhKT>f2Wa3PuR?lmm>9hPTSNXM(_m+fga^x9;PA=%z}e zI>$Jn(zrY4l768oh3Kr5U9TJ~$&jY6jP5E7Z`Tql!$-0vf2H<^CuN7u6ISXsP7R)^ zNMiVd+ABR=`nbKa51!x-)NK`&NA#W5DXPu`H(07pb^8q8q{hIy8NNFk1Fz2TO~xE* zM%i7BUU=I1eGuYVWILz!9$uMOH(Xw+HEa=ucl3)T$YQb&aDY&G5e3SaIi!>em{tn{14mP}Ek`K4j?# zrR}cA{69A;`u&DrzWLyO@E+p_Fma|<5phOfZR05P(%J)}mg*bAThU3~)LQ9!B43{# znNc0U(18(v2p<|Lr6DdTzbs2oDM&&rz#Y4mzfoxfa*W(c>|ifBAyh&w7o_8MTEj-Z zuN%9|(!xs#@Rtsj1sLH0nrD&|MutWq35hI;=6L+tPi#rm0s7jSfz}XVCL~pAPny{J zj{sXk&>ALk5fh9IB@h>bYI`xk=o~dP&r(CR25GGFP4*2uToGWYqgulioX5uU&srWh zV%4%zagQOUr)7PV5UgdOg|&1+r%u)mU`yXLu!TCwHJ1QMNEBo0Gx8}2nqAB|5*(T1 zxgd6j(D_CO&OpBN{pma1uA}) z6w?`2F?D>;e$TOrsF(Sh574%f4HOF!7-d4*&x1@*X^gA#mwqjH9t$BNSS`dw+XRdq zr?gEKEairKS)h+0QmD=xJIA;}X_!2uTkl+ET%i=qIq@b{ED(9dJ2mG zw*IQ1MWX^dHgx)sCP8FRVZcxeKIY*+ew3&^F%z^l(WI9TRx=+#5*>U}o~M!qPZE%I zlz^<$dmDXbXUf*d0<-oR8*BaVkDU3w#P=Cfa*Wf)#;Clb^yl!-F>p<89%OM%aLOX8 z^tZ%*7IpDzxBe6QNRH zA}SkNza9S?1Jo6Zly*J)S#S+minzqO?tP>e@Hmay+;}rf5nsn}Wyn&%kUXN?UW&uV zn^eoViFNjA1sLeuUz{)Pq(It9q1*5m5AY&8Mds^URTor0i0Fbx9uz3;C)=rMS+DRC zN_&#^FNMckRB4QII*8yoKI2|4Cgu3X=li1DGR>k(kI+zvYS5cm@pMz6u;J^u$m#ASYyr4YRvwc z&v2{O*y5R+l^}3#pGMEuTvq5kIW3;~eZa$8GJU0cLo1Z&cfpKfB=j~eOMi9n3#rXK zuaZ&{Kbsl~3{<4K_TDQ2W28(}wfgf^xVWM;AKI!h^3J|;Eho4ZTZTC5bF9*ywGC85Y7JfI& zhX!=lsTAu~^lc&o_QQk!5q}}P?eLIJfor<)B5hvw*BU*4!i5Ay#7Q4H$>iijImzOL zN^HrNvRW&R@k_o)-k$(evwW_7Lsr+!B>gFk*^i37Z0T#EJ@k21GpgGft0v7D`%2@O zJIiK-R$^K^*)zkt%F|eO7dF>Tz~psX-+vhC^s%x%t*Y_5NsZ&~1c{sMX{@-*qfeY* z_I@9N$J7NGTI0X-rSAPpr237qFR<&cw4jvU_F|_yz>bkyG@VOMnodhXs*O8yR5QxG z&a(9ru8&h`_Yt?%+s4B=%#wpVRGWuWj!6YZRiWVUJ(!SnIk>HnS?Ps=IlDpuTEyupMjcNel@}d1P%$fDT=hI0elin~vwzYgWV`s!Sg8T^vUxq`D<8fJxc zX}$$^_cHIL_jA|1BlvgttxQjD973=K<)_2qz06U>Wc->nFv*n+ec7*f`O+;!?7HB4 ztRc42q$bbho#y}fKTs;u+h=kB` zWbnh#ml*2ZoqaNc{gZF|@_*tlyH?ATD7Xgm>J@`)53xnIm)7mBT~`^CZubn_P9+rTmh0M%1OD+H#4PeguE75K zKp!o9Jr5F#`haV791E2s9`ARxs~0`Rv$grY4?F|6mhK5<*XWZzz&ywuKI96%PIzZ` zcqf6G!Bzshx&yli%nJSwfd{(-4-%Li{1t(Ry8{ms*elpb;F0dYBLw!=>L*eO+WZ_9 zt~Gpzs~UZ9?0Sw~V-y8~!FMOcgk%uF%*TZOO7sIlEcTvgPc1 za@L!(V75MbK2B36j-H=?bi&cegkzEkZ%ih9F#cWPv+MFg>-oW1JPWMKdPne=T;({? zLqCoGT&-6T$cyX*v$-lrCipE^g-!yk{wzwAkO8qTNWD1vUL^qLB`M!8ON&>DD6%63 z8dqhTR95srrWhMWMm%Jfd&3iSIq@~2+6{k^%NK~nrMOX|D2KcXV1Vrr5&O7 z^@2agci8PIc(yxI#xgf8N7UT@Zqajt{m^pVdLQYZHvi_Mw9dR&csRt3?%tw%l`S~H z9B9%N_NU`pz?RJ{8`NE>I=&mOO-@^6T`sjV3gsr(FPxLurgw>+i2CvL6MnbLU2;gI zZLuS5E0wg-=)C$S#N{3k*46RTQ_73>=Xb49P4J79t2o7%2AU#I&B)VhTKzsto(5C_ zI=xk+ePKUvh9r!(TD?wvc*S%YrCsSD#?*W@EuYB^ zmRAbB;(+GID%LBQpTqQ!09kj^JL5}Kt9a@8AURcmF zlKl@ot=_J_*ZQ=1&5BE>dDH6@=!x#lrWC3G~H6V!zZkhtAU5qh?`vi_8 ztG0jB)l7aeNyCJq4Z}wu<02#xT)23HQbZfy;gbjzxOm~soTJX=lCM^U<&%(`3T6l0 zw@~I^-9uDkY`gv|0i-nkcUj$QVZMcU(`NP6xcB^-; z{n$p7O@HKxMsE5ektPoMn|!>uRM8LkF~X|C)8p-u1$a)ZAigM%2wv)7EKDywdT6no zc~Ee9g5a2JvueJxmA*$`;xnesHgn&iU+irqM+ADvM$i3@o%T`X*O&Jw?Sbi~eX_`A z38gLi@~$dgHN_36AXXS3Ku{qE`4soFuc;Z^4XTVSt@$@!p=e|m4Agrs3)1Ciq~9;{ z=y$=284m;GzCu-wJfM(D2@;!lg{@_3A}-q?ww5b~-t+PZ+WMv*+?$^EU<_sxRSW+w z5@EhV3rCcH&jpW`mj7E$>kcZ96b=8*x!ds=@hiE|_eu1pP`yNTe3D~eyy+Xi+Y`AJ zCF3vzxKNuGew3)p=yEDi9pYy)5Z$=BS4M0+q4Z~dR}3TSHl?go^8j~Zx#8{-AEo)) zyw%#g58!?_>5HQALT%0(&uz=IrV!^Wv|_T9El!lFAg7*VK1I4WF!+ddVv z>$GzyibU@2+;&fHn_C~*g^##k#Bd+}oSuI;oXFJbOAt%L_4&M_cWk+m>S0%(M?ZHK zg?Wvf0JaXhQcm(Y86_uuIJt@wr181Avh7Vuk2>Z`8PXSvtzKpL?ZbMPr(_EzLFn=< ztWE5-)XmBdCw<#-h|7T6e?h)l3Ob`nZfNhzD(l4lr)YhcD69(Td-00I0+8AwWG=QP z3*tjl$A9Ao3+U0r4Sc0*Z>3BK#B>Wk0JEeqB6D-K`Wr=<63hL16DC$me6BXX-VCv7 zo!_(4SX^7i9-ZU&m}vM8dmP zIhL!BQG;%M(U48j9zleEm4Snw_w(_Hyyk-KzLXjbe#-j-VXiyUUQbyV{|u?J=dK7_E0 zXk(a_J;C;xkBYb2$fXybgA}O{=aLln-!e^Y6>iyN2BaTByyx>jZsI-JT3=5{9hKjk3d#e$61Wjd`D5 zet|?3FX$@f4Vr z(JQM5jXw%vsK*i>%S}G5SvM}7cJ+0ZXx#3ty#Y3U4-%H@~w&cWNp(W0lqb+ zPq8!P(zj-ZPk%zR4)+UkUAbl_>{q{GKYG8~lFS^62BXbeLt!a1F|(L!VD+^UKp|(C zr>F?(ITA(|GR(wvWX@2T)8>2i=$78YGHOK+Z>u}dgx2?bf`6K4k@j-Cq@l($%>Pp@ z5xho^$ldXJNxZPcd%3!Rr@k=F%9qPsBpeaPoC}$0w@mAHJsyn$){cUj3kz#H=?{|_ZP>LzWT_hGF827AVEfcrV*qSz%hqCWBI zYo#8lAMV%@-UiKgzx9Pr+M&@MnRc-H!s*H2EIU|z;e=#xwjG=+AAVIbxR)I)o7b5a zCxd(2!K$9lR>9tfn@k{RRedbMWSDtY@FVWw72~vetdouTaz7*F#eebD^{=K_dw* zrZh=YU1w)f3CT2h?)5}aF{?PCaO-BXFa1=ahqq*@eelFBbGQ@uK>@y+XLsy-+*L`= zP#LMNPkm^KJTzPK5}ux)sXcUne8-x3yGjw~ipuP-HHf3~+NnPVP*^A}1YEY>XFN+Y zNtoxBDMPL77Vl%^+4~r!H6nNiwLflnEDN)oZ>mI+2K!qq|iM#g;rRJd@&lmSs~_d{0wv+Ptx0MtVpFAlzJ2n66m&!idN`ZP>AaDk2FkcvYv@PAu=3yF z;!9%#$x2G|3XoF@@2KYW4LcN0zx`RNc@-stopz*}S8g)cX)vmJ?Y&x+eM*B-&1)0E zsU=+hl*qF<>j{0K$;@{0rVM}0KU&Xtq{+-m-k_#3%qP^1>PMnGoVJU6W|-5G!A@3G zbGuaq2OhBt;u}`Gm|5)VjAqm9ta-LKYPV}utwTvdbgHoaK~;nw6Yu(5nRJImUQxo=TS%jTWaQ=x6GFbwhNAQvj;&A5g)}Mw1=1s{8K~ zY}I@HIh0@c&{wsGw(^atTNqyPU9CZO502$>@A-k8EjXKhsv1KBSzxwt#rDch4J z{Am>~*`Ny}&k^1=mW9^+iNuk%5q-1=vp5s1V8~LR9+9%f19a@m1cncl1y85@(CWW~ zfP@bX4hXRAT&zkF+B`|#GOE_@`6{{sFuIyf3o$N24_sdkKk%xgE?-5<5)B9xELhDf- zDq%+r+Mu^Xo8Nq?XiW>Od(KnTKo{aEXhSo2EG^|$>*`1Q)oaLZhB?{_dRX48+DEw+ zFw=^o+QwjlC?%!%Xyxlu^d2#FynKMTTCEt&(-_OnC?^T}55-oeM>|=m7#zCA_nfOJ z1DP#if)i*0NLs=vQ3AE}sSh+(H#Y{Ba29T?Zmm6#9m*N8JH!yUyw zz2)4TjEhIFEYKQmg>3$jDqlAlozQ6$QLd7W``{#Mlr*k&ob*@S$_H`Wq;= z@S%ZP!%6gx%7jY|;E~W{<^&d37xH1a7L=mI%^?4+>5p_?e8|`1r4-C8^c4|JXNKU`fx9hl#2KClBBMk`V*!mEuQ|h6c_(VIRXTTL^3vDd#$*#`m^67Zx zTVcoWt0AgA(Ojm@>(pNqypZbk;7pb?^8soTM(ZTb!%g`Nh|(BvgWDJH<_!^vLP}e0 zxHdH|4s+Av%7eS(p0DDn{M1HI<_*?!J-y_)4U$0>S7|Rt;LWARkVYG8Vys^%jTz63 z$1I8;Gh*za)MN6G{blmwXC>DU>wvl$jVWE>3V$;&RJPxJWG}zFKyU_`vw#l zd3b!4n%;KL*H|enGXFFBVZvP^PBJb6Yo5N)QG4QZXR7-T+4t*OF5n>&77Y$~j^+(TY7TFd=%@I~$e z3Ka}K!GJa_AZ zO{RC405`t2=hM5;%%IE4F|HY}ZuRa&r|5;oyPJ(2s`oYq_IVn;AJ9wgR1SJg!`#Q_*h8Aa z2Xa+UdCMuPr(9eL>|^v@k|EE`^<5I^!VoXKxJc}nd(Bay8NN%rT_H_M_ST_EK9r-#wULyQKoejc!onhyQ z*Ys0rXrPK_S;k$^ZHAI3kcS;R-_Q)}a=)XX%>3xw!M5=aZu(sg*Uc10xbZf$<`k80eP6s!uZA@HNg`By};2@E_;puaUU^rBqjE54O&t!{6{ z+10Cb^fS$C`eX4h&pUI3EBHfg-W3BPSGgLm8PFJbY{Us6vHbl5mcO)NkY9cA0vtUk zD}Zu$?FhVVj-W$$=|aNHz84D*=UrJ&JjHDH9KkB%`d(dM?vt@syPzpvV9nlt%2OJe zo|A`Y-Y8@Juf0z+dY{B?UafhU&Ot9PGCgmr5%MN^SR^!)MI3X;JNpuzQZw`|76Lx1 zl4AS;gAn5;2C&r2L}rB7CIFhP~ePW*(L*^zhLsov2y_)BWxlwZmkgL!0_YQ>4eQU}tC zw}eilsTR^#y2p)OWS;+!O+ZSk55*5Qn-_}Y_>ypKJ+DdPwU$eSrNR4HX|65J2;L=C z2ZvY*?HDG6T!_$~V}22%8WGy^5=&@Xy*R}c7M^)RQ3jaF^rHAVmKb-;5HSu8Y4PrK zZmWjT;(gE6=-pLm;0`)uDsSPcJjq$U>h#ke8DE!*sHfqp!b7gei*Cs`Miu{T{{hxm z@Zs+f`f(s2X}M)5zumD{z>-ElnnyVJxU+(j~|sE zz~(*Riiv};sM*gQ-g3Cy7@FhOhd$z3Z=ji{$ef2GL03>wM!Y20_Y)Yc2l0 zU84%Y(4_gKbO$N?2<2bFs3`UrQ+#35rB_hS*HXO3s3KuE2z}aJx1BMH*4eU~QqJ}p zr_uZi{gJ*SxG8RdCE^-lPy|VNb?eJvYIu|Soi=BWvrNOhnWe`~b+zaLak*H0Ta&sl zPovspy9MI<8$&)E8pXBEvh?Yop12Cwp?nRMq@vu zq$ECzZtWC{k7}%RE#ok#(zVJepvir$!f7a!@_xgwpXS%67sk()xKc&1suNAB@U=P3 zK9}ZmRUEqxZX&(t>nHQuNtZ51=O@>x<(bxAJjN)+-S5$6jB(Or_8+37avIH_sU%^z z{a7m1+pZ^fe63!=+OSozQ7Sf;&B7ad0Jx(&X-JFR9fu{=Fj6V`!}hn0Tdc9)!Zs%O zMH2@~Qwqht$vbz*CcHJquS?A@4#nHOx2=|Xbw_tdEx&TxQdP^b)4bZ8MP94UX&9%u zqucVMTXQ_QQBQ7%ThDtctGba#savRxC;gLcXxT7XJD9xkU9q2O!-}M#w zu(B!X-M*~Q0-+Z`0XuAD4`w+W2N%R#PXdy8^;Nh%ewJrlF@ER^e%JQIcCWr3{s8y&xv~>FOik(UJsw$hn|-EvT>GG zK8aO+;~T283@7?%59DzJ69Rt;PGq`@v zsZsntmQdmhhIX6}yY)zDE>1OE!Luat$3Hbt%34g6%zH~(Q5eHlM20@-j$G&JY|aW@ zEM_C&MAlv7W4|UwT7BDv5qppuQvOmF_#CrR23zC=UPgFZmMmYR>KOez13PqfDTBk$ zWJ=_FV`v92DA_2lnCwn8%L09}|1|QRk_34_HT+Ly%bEYD*_^_OmD3zf^Q=?$mtB<2 zvsOxTP}0`Nk~>-^ayPNqHF=~{-3?;Ngfm)U(MbVm4VxsOi+`W3^QwW{$RfTlX*si~ zv~sqFu+@Mdb+xs%iX-v6BAX-eG^-Iv)>jI4aTH#}7wwZX&f-MLnvCkn@q*m~{4zM- zS}4Wi$lDfw2_9m*@-2D8xZc$*Y`%yu+c&VoU9u_=8Tun%Bs)UYz?(5KNI6qBUz-?w zR-ZtRiI{)ixfUwIhhnt72@1rAkQyc(`mjd(;0;bTVGIAkN1P-$`R<$W z7WU;zMCg)}4ojqWIC(oQ(z`XX+Zl3+f4&KFLzz;X0(%s(H-3QBzW4A zDAT9g61ByVDD8pWAXrJMlJ&RPx5;&i{HBdpMg^n93);LXRdhsGY4a+s#>UUX{>bTC z-wGKCJkZrWdOLbwmotQ&P2Z&0SDDgD>3fr7m=RbZ7RP70R-*QGL}UHJTT%N0vrzr! zM)ET8NUS!PhZ;z z$XyjSr5vup+QpK>6&$YVq%2>y#&&N~=<1NQ&gQ||6N}t+VqlR`rajR@UdT%Q<=iV{ z%%L3X-m+AvMW|45T)ZBs>y*gi7F+b>io%zqFVw4>8ppnd{4J2=uhG$=B#Ppch}Ee& z64lJ@YC$vl5T}5hm9$2;rLaD4WvqOkD=IFuv^gtrp@mJo1Z(BX-L5E!R*-0ACE@T6 z?fA>lh4p1#oksOeesmk^)izJ=4!2&gfITEjr_QC`S&xNKemS{8#ad{oSZ$VywY#&~ z6+BmVg<0(6hkY-_8<=`MHv--7G_n^+lgzK*6f7n)`<)cX!73*O;j5fXqK@EVY%PZ^ z*n9NR9umtA*~T?;hKvD8b^v9yTgL_-Jx4kmDlY3iZ zVt$((KZtA>prg<2c6B(VhB~*kyQJD;9f;OZ{XuF?q?CJVS;u}(GDm+wh!-Gc(q&e< znngq_T}}2Zt*<3E4Z`uY=L;2TzEEM!7wpNJOxTwBTz!r^XWLEs3;0MG#bw?gN9XrC z9dfEZn%@78vW0)HCH&7=!oNTXe>8KUk|pK_)%aT<<#ftZn2H|}#3QzS@a9f#bi?a*pw>4B#kt6x)(J%z_Ip6g>@V5GwV zy)_w`DVlZ;$ga0X>*RyZ5{DN z-#^c4@>+S9+qINBUrwT<+E*LszfK3g9M~edo#wSUx20SkTJOo4x)}PVr12X%BYmGsP%ETHg=mI=N++)n}Z{aU-z6$x*p6 zpk9}GPW|fOx#BTjn-l9!bRZ?oQYVR8m)_6o*m>{MG8cuvOOQojt#wr{(@Rjgx5DiFAKEPulsq&#+L?>DSNuA?0q(<())ODi6)0W zn%@8XJ@BRIZEZHbz_^o!FMW_io@{(+`O)}NHu%!(R`X-!)WMgs!IutO_|g^!NJzn# zq6%NyZsSXB3PQ5srD!_5wA~uYft~bdOqNyIkMbWGU-IFwRUoG6IXJfySoTT>mVGzh zxT#3*>V}xEWE_}FuOX5>ljCQDm;|2%6&EXTdBAxbllZKKH{qI$J{_!S8anwK7SI%+ z|EFVE=e=#Og)i+ojqdsQ@Dd%gz)O2Tn9#0&ZNW?K(l@Z+khW-K|Ju@hc3Zj+OA-oR zGQ1EK%V=fW?GF1Wh=~qV`dtp~jE!h55BXeO35>JW>wCQVy7+^sG%^(p zzOt}&}isg&G@8nesCqDtRRk8K7523T9xI z(cPaZ4-iV2MAvHhrN4)#5gnQP2(0n4&v+a|So=ycDf%({Q&m*ky;LT$tdy-2%;MU{p*!_r5 zw?3l^BL(llbJ`YnVo56AgB{G89(d1r41ask(*)8fa&?NRC~L1ZgdH^{-z<}I8}E6= z!F$l3Y`lk_#S$Iuflh_@SdF^jlkuK$0zOv=_h<8i#;8IyXLXd#+{OM57mzzh$zxXT?1)cO?^#I!{)0o7jz&E($$H z&aeYDfV>p00%g+1Rlb}RYPVOfmPsezRh<9}h99pH{|iqkPr*~(w(yi4Kq~(zc*-^l zPci?6r?CF|x#KCaST6k=+hKD6O=ONQn6|(x*SK-#ZcPKcZF*pFPecVoP7syrY((WC z-I>$E59_9UOBLt=Zi zav*Z1+^$U^19VTa{&1eP&hFOAH!|(#0ZU2SmI79i3i^d9UfPyYGJq+$EvicsETzfD zQk2uFpD-$jeq*rp^)WFNStNEa6w1*R{4($R!R)jg1D-rh>NbHZUI%j9$7TI%@1edxP%?H`~&DwMN` zzSb-IU~KlYtv#P|#rOe#M%VYdHYMJY@}>V@WWA8LG~1vHfwDleS5OxzTNj#5cQ$~h zVq(8P^B8!G729DstS4$J<|$xGN`Cp4^oo_#DV50mWWB|%RB6-3Q^8{b&wMf-69CY^ zj=8~Vt>NBJi^sgp>txarCxOgUO=xrWWk|Dpvfp0qLBI1*uy&;MMsf}z72AZEBR#m^CR{MT1x;T z0`mya9yc5(z`sl!VO_2dcvwK^ak6H#8F@;o7kOXsdLCUL^j0Z2WA)$Kq!_>mwcisiC-Se$jAFkIOF-&acBS zVgXZ@?2`Ju#V-mZ%ZEnsVG`!i=Ct1CP>KKwws>!Q+X4!9o)&$pP(Yw9-~n53ctBxh zJ3OQN-Nt~QC@2*SNSoJ6U-B0I6cieSe}2U_A`DGY=KL`jWR>IdbiZq9Vym@CqwmtY za0L_p1@m){Yganq$kpX=jJ&XG>JCeP3Cm<_?B6KXPlpHPNCo^Ad?T6h$+|%{zt?F~ za&&%jom#$W_?-fS(lJhpqvv3pDSV?fRGMHp!aMq`U=Yh=q`ZohVB<&gjpoW~nnL(z zTQJa#srjXvUrXm3b&CV{HhV3?8H;qMMYk4uayKZ}5kt*NkD3Ji)FBP%Yx9Im#M~QU02+D;haw9E8ZxE|`>4y8HFa(``)IfV4L>4*jVE=14naR^;i;A5 zv+F^q6I+ym;MJLU?DFadW4BQgd`*gcdtC>Q#*307rIqjYG7MNfJ2JFBCayHn)7$G& zDR@x@?OX71I>}5qa4C1BTH#U` z*c=k(r>sVgDvVF;#-nf(qVTByV)a1qsL@c6pvnl4CGwv=PhW&Kb&kA7*7?DkHb|!l z{FVJ@+;Plfw-OLg>%PLra+k|}x>V1f!J}F-0X1kQpA1LcjLazhh(uNl%1@=iQ>=Hi zQU8;+Qu#LZNWySoHfa-Nwj>Fu=&&s(=k-@|GVGD1RzUwJ?UOTp#R)@A8=F+4iLnI= z2xW-~QL;P)pZX@OOBWpAtSCC_-f<4WbgJ*T8mmXYoTTtHe#9_>NKQ zBjSIh_#vd@Fj*G=D{k$>!(8IE?ao()kFnH)(~$f%9Z>mXZ(RJ(Jf87YRC(634^)F4v}y zc(9TW@Rvfq2+-Vpr7YdHh1fr9YFo@eMpFALyKv%n+wz5@6hDqq#M?fYRntr(FHA3r zLAe4j4=`MJp{pG9Mc*%qzMG4i7Ql`aRW}v55-!PVS@QSfzMH!@7f;Rw55llz3!cy) zBrgJuTVe)arJyUHO}d2qraiC>4bkaM8it9eVJVwP8{ZT^NvI&q=$h!ACQ27I$vU>j17~J-pqmcc5N6z1S>7z#ZLE*y&x7DV}#Q@$>GM0c|2Ty60hmwd{_^ zdY{L&tmB|;#)C61i8Vt?G^yW+-!UmG%GF}1zfRfnWLGF8XjTBK?%ve$x9}x)wH7?< zkj$hM8_KZpEJXmzu<$Ht#@2e^k6D0Jc-C6Mv(~|Gm%V@#rX?>`Gr%OCrQWK*Ea~5^ z_cilA@GL&Vd0z^i)k%H6LWE=CS?8S?THK9fVN+^Hi*C&&lR_5~OiS{IqfKw=+R!7C zGuXc5(Na@4bYohSq`gSlBGoJWMj7fH9N;)4`1J81T^<;(oEbi}HJRZeAv*04vSyY5|!_|OXR;eGf*tLyfPCI~^z zXPhP`3&N^aU6&qOU~z`#3TG%w2E7#hK=FrW!yjrSHTov17T_eB&Jw1x&6ToXZ}F8K z{?H=f53Qt})%4X_d9wLK%Soi>u-!96@UA5?iCONBzFnv|M2h6#$=&72-41H}lA;mK zHbSsSghupjgdDx74Kh#~lc-5CafQs_eZk2Zvu>$zl@o3R7AIeCWWQuh!7VCLvy%c* z67G{q!ACAjCQyX+LR#uB%Lm$e=%P>>Dv$x_6)=jvEctT$jZjK5(IvH-&wE{_zzFv2 znq_nl3+`>SISpJ2!DyRBFj^bip>!K-d?cw|zz%_=DQ!J(Lw8BGSyYE~c}uOSlzJgJ zSr^J5vorqC(ap8_MLw68HXsC}mZJzp@5;pZb*Tk9Lcc!cGn0&JX3Dys*pbM-24WxV z>~SE+1!}HseSdm;aT<#NU^JFgevvemZa54!#?fS*=dwVY`PL)jbMm>8-%s0@i#k?0k{kW!?E@kJo9Rc@KGDvnX^k=zz|M#o|q zg>075ElS!!$O6JLYV&0Um`NpBMmew?Xe!RMCfPFCblc9fHfOBRj8q=Um!cV|jFlUC z^=dw(Xhzl2j8=Ci+L)4NS@K(?@4z3Sc)?)gKOhrn?IGC+!`jbQYzvZ`hERSM*=UJ{ zdo^2RqYo9?XrDGmh)f@$Ex12Zqw{-4 zwL#my+wr$~l>OYl_(y*`{t=XInz@5Qy<#`(fZzVDJ^=v1pfG2J=5jA!n0)@W7c=Ea1w|$3K3Eot|Pwd&`==?s`zU?28 ze{?r%%IW;0))X7IqxeT_yti$%Y8(Sc>AZ!1gxW3qBip&%i$tnLuWa z;vcOM{!!P_{G+aq)mJv!!<87mdG$4)f`4>3c#`msuy6Y(;vX&EX+uQ+g#05#KJw(! zjQ>9TBgH;a#L;8(j}-eT7ox>K8vp34J8Zz`>sbo$`N~uCZNTSu_Q@GfbMkrfj|K?; z=q;d^;Tc;1a$pHfRNit0-q|CF3`mt2p?x}Yvm*lC@UzUwk~V4kfpSSflex{qVID|t_c1w^N(^jCc<{kBZXanp6tXBcFzX)QVCNyBw`R!8M;iK}w%Lr_VpZYyKDP zyR^THeOEJ>z*=C4bt#idM(H)SeHUf|pUS@LxipS*`zP9WRf~O>^-driX$zlZ-}Rc4 z0FC5tZ{M};v)OlTOVMYJH9w?Kla_WCwxkT(Qp@`I_FYj6emS0fm*!`MP5eQ8memY& z@_*TP0fYZF_FV#{w1Etynrb=lT-)*NyI!Hr<0MKo3Zs3QtlElwSKPv0J|Fw8fB-Kl zw@2A`u^E7!qhr{2bsKUiSVS4D@#WoSUxK)NcKfdA$Jlqh(bK*wYGYO11)OT%^+r$o zu4K)m+jk|){-4Ia>tFtf{(1ZpeLQ~C?Vm_ApCo{z&3Q8wze({=#8m#RoZNl6i_-lQ z+4f^X_yD4D?8h9&P|RWsZB2!4Ab#j9(`|`AZLJ3<$sGdVxDKV_HN#zS2h2NyRC$jOIj!(jGuyYnP=Ck8BxFYIdKX&kF{H6yV zC~dtd)qbqoJyAEl-P3;T9~Hm(H2#TpZIs#jzx)&Z%RkYvovVR|d^-O`z1G`EQQn?j zEapx8O7M3!Qe@aCXH4eg@8h57M&+OAuLO*g!P+NbMff=SB&_HI#VZmYMiyZ7*ZLxw2l6Ilz;uz+5`N6`w8n6(M}48q4z__TO1viLywCldQM{1Y`D z?Vo5_ihrUKi=mU^pJ=w@pC~sFxhmZ~(e)|riERDC@=y7<@K3ZtTojF68~YWoRC2vc z;Z;H+bNEG$b0U3>xFf<|P8@Ga?!_086s7p|#6>136_vD+N!v!INNNoj-R%PqMOiCO z^2V62S;(X|r}_nMzA8?y(wq?u)p4^Vp03)kmm4ba?dSf5SACp4fkPPj|IB_)%-`A^YqV4wxTO6YUHHe@&xrwE z44gI9_D-zs1gwHA6#G2v=K@LlIhA8rL8kJozd3(T&Ci&x}|6j_+`xdg{#GOYV?WzvOgbx zM&iE4wr2~74p^7wFWchvwkrcWEDZdS{$q$Fi;V9p^~biiQ2w&nY2C5ENX4U&;b_vJ zjf)kY+qPQtl8-ZJ)9N4M1s`M7hSNtl)p?I9FWRu`<_S=RcM-3?8!y@q_+76h-gPY7 z=wM(W#UFL@m&B`-<3z1|zsF^HK+?)vJ+7?|zjzgiV&dLUi2AlaZJ#TkRIQ#4wfCc5 zDgLUsFZoNHYS+vZZolwWWs8|MesXkva_!_lZT;~73Hvs+mopC9E&H}TpWVI<^VQF0 z-)6Iq1idhb$Yn(OVQQ(SLT|cMC*3#V*-0I_aR>HxL82wPN5_DF$vSd|2_HQ@l|A-@eeXZyTQB7`Ry*Mz6q@ zO}2K%jA$aHlTCsuKt~y#0ctQjL#*7Oy~MFCiktj)Dc;F*^8fbd@V(TU<10NF`Uw_p z(l@Z}q;yu;Nr!GWPSx9!%o5AOtsSnBC-;!x?q3u~$(HXWPqA2GhrSULSI_DE0LR|V zu}2E%_+P@_4LfZ7FKr=N@Y~{l3GdvsB+kIcyw0v!LX8H&wMLrUW-%MjJ)peO|HAM* zr7YeA<&`Lw$y-!h7Uv$!UB=c8zrgBk5nh_RQ}Z|!2)_8>R9Q8BT96Q|uC@!AdYwL)y4#4|E6pCp+je;CEt{uI*e z-`aq@>WIV&lVt`6jkyv_xS5sXzXe`&T>Cf6OP1AUEq_jj6ahQM0`5h>{u%~m7@Dkz z&6Rwl$*Z!5`x(IwUS+?2Z2QZWe<%Dr_{LX~hvV49rE;ts%eYlXd3xF})($w5wOCfl zMoL9Vr&*;~#p#k;H59TBhH~|kW)`>7HjA4hH7{OXg}3qvW^wlSrRhfuw4Z1Xr)+!} z+1ea)$TWL6Ww`Tc?BSOEuiL{3-)aqW+SNVyR>~f3&0lH{*JP~@wkNG_j%yEBy*T;$ zqwL|L+^~%M=oY|69ecQrWP;Dp9&RIZ+!TAb6`#o-E|p*Y+3ewxb@BhGJzPajk6jS9 z*bcXw9EaQX23Vh)JzUb`_H)Ozhx=rI+sC(u>qu!z4qd3-v4`7mls%j{>3$z*KbGQN z%Hm@wd${-i_V#f0y1kifnaUncW!kofQ+Xs`ik77^b{u;+JCWGKIcatzzvVBohl{4! z!|h46hdW@|!{KT~*~4x4YwY1ZI<`HW{XJs0=zLGIZqn`H7$QE-AGeZV@yC5kd$^DH zDE-;(;f}U3{agEgVkos{VM~-ofIZk>>HldUJ2U*H{+|YZy#J?x{}BG4a3`$?);fDo zeUIs_jhKC%Q)cmN-F0tUmhp?RjNh59{2oj!l-V%e(qzL8LCoGjleG0iOq{(0LWG zc#*ZoSnzzZxjMyP5w0+9O9-SFeg8CW?e$t*G=Xyf=?cow89R}Q1#P$PO09y_hi4bdmSpi+1=^-T z4nrV{xFD;rySm#|pNDd>EmxDYP16f)(w1I<-n3+zQqo&`rTM=<-`_cB&LrstTwHhm z^z};5nVEC_-G86o=ll5#dDxWW+?z8Nu(#&LOxccLWQDam8Cc}{nMbto$)YZJS07Hv z&&N2vSHNxJl&r?A1=8o3~Kn@_TdAskEbh ze`f9%TqeNdG_eZ(_LgZZTM>J)hu>b{pYhp@H|g#8?XBW|LrA^PuobsW+u-lm{u!Dd zE$IBL7d}{Qwpg_JUy{uj5!YRAdOg<)V;+| z9M0WmDZ^{-Q>{zsP!LVR{Z^2SaF+)J{4QG9mejjdMex2b}xq=GahZ`|mP*nVd2K~4?uDPf&A z&5QU8$`4d}UTY$HUig9Dgn-c~0479xS`=`8f_|W~@3@%68pif({#N_?YvnqH^TAQ) z{eJ#}pLo*eRK4pj_^!WTALgjSI2#QR*WNMw1yeJ9j5D*)@%Ns(&Br*O^>@y0V&@OT z-+R|z@LhjF>$^9oD=x$j-}M*#pY1OQT{MlP<<&U-$#K^kJCDs5(eskdCDhIU6}?X* z!f`{s%$GR)q^dFqn@c!irAA=Ppq?-CHZ;C5fZr~zx@hXbBfRacAJG&k ze?Bkl1^|nM> zOsUw?_+y8-_F>HwV@DXmt>@Fr!mCKK+y;h53qwyCUHy|AoRdpN_q?bbdFDp^Cq5hZSPq<0aTM0s)ST8T& zOG&EtvlWj*+u-l0`d{KtxYZ-H-y{Gg(L8y)viTCCd3nt*-~2;(3~Lj}aXYVa-%zlb zVy(4=e(~Z)_Z2zB&;*LKf_$2t;9k0JH3j9dT?jd8>r=r!x^d%t@O$ zX``g#^5V{TLGAT+r@YM;qrHXtvjXLxOm=MjNN>oGQMYHpG&eb7{G;S9y2Ic0CrnwM zT2u9YV;{_mcMTdKiD4lLovwCmP6RH2)e081=cRUu>}-!mQNBUd&YsC?SEH+4s(*$9 zK-l}SyacFRjlC#=_j{@s6TKfyvgaf}*_(L)6h{t3Is#S=ftK|1(Fifd0iafurwP<^w2;lNMLbZ_=_2eM1jHhtrgw@6E`;*M5h-vdB9EgktE4 z1T|MBOS=l;#82`}f)f)SxZj&jZyvbJM-v@Bve3Z9i~R`fDuvK23?UId903~=wUoxII1TY%Wd5yDD$`KU?mJT9af z8`eM0aOvdCWk)WGg=pfz06U3~Y|3?59lQcj$H#y}7A9|ObLhu5@DTvSWjF3Ld}PO& z9MA(m$<4NNUH^L`_~BrVmwx`+#Sb@g{>OOHtJn%Z)He9rPCbske-FImt>K3fwzP>v zy~=e#M|i^c;YFMp&5z^ahxe=8hxwP7x<~k7Dz=q|yE6dPqn)C)>kJZMer{6D@PX%$ z`3Ve0DUm2hYaxWVI_Y%^LR_6_d`%EyX%hshJ`u!meusEe1aV#zLEN545GmoE1|bgj zJL9U0c$Pg8RGs3qB&;#~wlV_7bM`?%#Q3bah9Qn6s|`bxO-MSAAzA`)op}Z5DlXo9 zx02*I3WliO06dVxT=$h9Ttxk;gJ@q8xYa?3)**)Zqg)Z59@2tc{c+W&(cr|@!sC-S z9&i=vjWcuiaObeUdmDJ7#(yV@CvM_iGQ2sDt?)!`gTDr@)1!VI15aE`st5Yrz5OKj z{8Z@9yMB`Yqx~c&{F9IJP5iY(`Ig@3qkO;fcg|kI&O5E=_O72~l$IEXxJ9BW-}RHE z*?-qhQY6FU&4~)ze|1Lxv+=Vn4nJE4g!bPCKilB&v&HY?XD4bZ`L^-1Q9gbq<$Uln z!D!%Tg3-XwP;v|jO#y%=L>451&>Mr$mIMxxD>SnO27A(G4of1m>lPN@BUm$Z1-J*{ z?=Da?0MWi+lZWVh1}96?!)I+@1O)K3(FJ%~OYWY6`GcXLCv!xa@paDkxx7Csn6K?>$t8FA<5b9wwMk57mA+0I0vCEWu$wQ#->&BaKbMf0f_ zo>n<8il>eC@id5A5j?H(ZQyC*0}dyZ-Y%XNFn92S>@+_}pI-YHlp2ezI*T3Ikem~1 zZaadCYJ$iiKEazxv>gdzQ)Sko_>Q_kClkS7=gp=H_C{d zogLfYt*|Jh^AdSC$Q2aQb(vTPKeuEDeIVhzud?nt#RP(z735zNLx~e)VSZ$;A3cDA zu&6SYOL%MWsmBj;BYu#>;nfVk4`mCd-+_3>j)-^$K}z=(^Wz_0zpW6j`wz8F4zK%; zcE_)bI@pFzI9O78w>1c;JI`;B!ucO8%($t2DP~0_{iPxf3N7CmmF~ee5e1T zMh7O=mD#dK!TB5+aG{X_@#_SfDEs#yn7P^TJHQF^2{Le^DWWD1fRLvH@=%LX4yq7q zF5xYuEaIxM+_@6w%v)Ac``+409JlKF|CKdplUV(U3>{_NOSN z4j7`sTn8ZHJrM~QMwXeSi`3s(>aC~d=RoMwWnf?SdW^Wzpt$AqQ5mw1q z%%ixsdZV$XeVOuJ+lBR?YDa2bxYot;G9|2_8=oVWXXJU$i8ZwyG*ntAW?Y2{^T!+e zT(BONBH*%w)nitjzCGCMq#n(19Kr_Y>gMAA9R8P#ZKaItb728OfFtW(yOXhvg114K zLs}t>LWldkM9GQL{>gXwUwKU_?AEYuLHEHRoaY#XEQTqlp4!Ap zCqA2%S`ZV1@XZ3ACdplI6>18V*pfb*W=+gI zZmw`yL3ttIkSzJ!h3Ob(d!g^c#r?(-hQ^5U=Ajh6+WV*o9WT7hu=+w_a=4Sxv-DE8eVyP)*aWR z;_nmnfzonW7FjNnD!dezTv>&TgrxYbyNlIMH+RhVO{zBjt?k) zGCm;l_VbbO5u+MPVEyHRHp zWryGI4X@8u-Cyig)fclZVOzqsjBOd)0c;1b9mIAJ+rexHvmL^A2rpK`EuP7zXT|lY z0Tr>iY~W2aCTeavkBn?2V^uyf2pIU8Tk{bLV@F%X^_2rEt{;0L6zgtT)wS@~R1vEz zs)(fqCl;iv5a&G3&v-XAB$-TML0Y*|CCS`KmuW9&f&ELgyR+yn9ALkN9W1}6pAO5H z>yT?2i)oJ))IF*HE#LF8&VP8+u+GajkMXh2oWFB+r*`6#_ngCjzda{kGH)4{f8R{@ zriMP>`Ne+jomG@4uO-b1?*1&rSZPqc#+jM^DW8+xLGmf>wWU9TwORSHjJLnC?qgnM z-JmS2qk6?}mpx0swu~$!3_zeZUbd5P8>*n%%r%4Vr@zpCj=nZysmHa{2Tjaei&?30GNyn{bXSt3u2?bq@%$U5K zXzodky0yMuqXUEA^B2@zTXo>e6XP3j;#iNQLC0dg+{vSMn6?2gdPmvQ6*UVmLOp=_ zFfBuR#G(qw>(fQg?kIEX$CciTmEO8U_kv*yJ3d1B#Rt?8 z<#&s-)7|EDsE#T=ixv#`pTW#JS2BmQ@fZt8?7EQ}tRwb~Euki<>Yrgwwen4aI^K@^ zeXm=bkbnI}S6KQVu2mVCbawHbCl|C`|3TJ@Z{XUmKZ#~MF39hXWc-TsxrY+v8*n~; zsG_dyVHzj?h2se+L!9@d{{P!22XG_ue)1|34gcf#Qmv}>J66Zax|Nr)J zG$oo#(j#`qYbRJHt&2~8*4pp|vFc2AnC5MR=@yl4nz0Y9**v9j^T4TFIk>2FRl@r- zS~r9xnu`;46VR3Du0E&Z_K@FI=`GE8YZF}yVpUHiy+iz5_4V$#dB5ar@#7kV^>Ksq z?fQ7d7SGC#dAwNIgN_n#AZozSnvGK$Hx8V-*$z`dndQurcUS+ij|x0_fEq08hiWcW z`CDJE=lm~7jvQ7|%Sa!QoB?FCH4w;1zF1jbsQz_>yKzMS|zs&9I}<$6AE zsr85H>nCt;#c(gq#14478#_*~*>X5r_8xDsJQE)qFAn5-$wSm^nbNpr;M7f4J`jJ% zJW!<9XiAJ|t$sQ;o%C_yy{x%ozS;V;S|of zbpUtJ3A&@*eE6plUKLlz-r{IK7V~3G6B;M2)z25S2Ry@t^f@yWwT12SkoP>R$jgYzp|cW@8z!)j-?Cw_U(V^CS2KgLnA0 zo5Z(W;ATiZ=e8TpEz1Vv>x_hV+1>OagjnGhtrE--J3Hv^fOoq!VD9XmWwY#g$QkPQZ7h4IXUVv!W-JYY}Hebw(&nTeY3c2(zDnK*1W>fe=jHTTC z$!FjmvK532D8b%bAY2BLXHUH1p5gz{#w|dhBWhuT* zv|O_+jp2&pr=Yh!H;a-MjIX(fk0a+ZC(6&=pR4BReE$~BRmab@*NoY|V>=KRABwxVLN)GqHXnPkAW`xs^+apQ~-~cbCnT)FSlszYOFy`)vN7 z>)rel-B+-@5Jol@GkVnW!f#cr3W!Pb3Tl>@`ju7}0$3uX=sv2G6%|RBV0c8{U)Ntx zc+l~4=jBWbCLC`Vs#M+@TR?WdNp?q~cl{ah0imZcd}D)!=?fgX#+(>By7eu9DO~)=@Ufwy>ydw2Mp4j1Cbll^jT`JYti-!k zGr;&J2oHj4gGu`n<);;lj{%bk*C*a0pZJoa@rj46&rPvBKooSR0fgoe-WFhlQG_&D z6kQ%NicR0c)tdN7ShHdjOW`UCw>FtPL4rnt(SjBxP>*61_Y)?Yb4QFvo#0cd-`TQ9 z7s3`UC-`xSU$m7U4v4>!Xm0O`pIt*&V0&7IFcF zy{oPtbY~{EtD9J8dvh+Zuz*G_#Q`D8{)(tAKP(0dHKkx)HuqsJ6wbf$`UFA$-IiZp zIFO933D8hu6i=+DaXO|Rfs)eVvDY|yWXGAgXVhv$`t#%J5&XV<;;r0JeBw&B;uC8d z{Qal$i65oIwOQL8y}IodTp}46ZFbrlO=xdylO{pfbF(7Rryc4Y{^3sbmc_}mhimhP?(4scj1c`&|`*LHrPRa`SELPYc%f z5o<9$f_7Wq5A=S<=H&<$sz+U|gN`%h>*6k2-~V&A>QA)|{#N$cpB_t(U^rzybj%vlZ z4Hb1)fb)as7|x%Tg~#`ly-XZyHXU*3S>%2~&Wa5`1LFtiYQ+?Ia$AXztl}s1f98n+ zItI*N8&LnkgOX3^dyWECZwC2lJW~BDMO&VyqmOst$`Ot6>CaJ6QswinsvAD-s=7fn ziMmv5M!)Jy;M()z{cf3%dzb^l_Rvoglf4w4ftYFrywgsqTC6SNsWqGWq4VkR{tq;E zlz1NkED)Mi42nLYv3eU9F9&>ov)|+dIDbPVJ+ecl>4YJ7X0M%Ati5aREM~XF?Ut}x z=61`pg21(wsvevAg~?u;*ebjdVGpSwyKDcHl4E`y!@5YEc&$Pp;ji@bg|Bx1F8W z3of>Ui4`tqB;-G)YPzM9EiAcgdfoBZ)=rFSIbZA^5}AGXkyry+NF>xf+f zSD@cHhU4^df9^Ciwp=Q{G4UQmF*8h^(GfuJ@W65U7p@F#Ogrh+jMg+=8H!JPlZGZN zM_*96k&Jm*A9{=*Swx4#HQ{Pn`BB$6@*X|wxPk@$gon=0X07-W_05uhfTgomeyjUSMDtfydMlWL&GZ)A6!k&}A&LtEeR+$Zrfk_+jX6f{r&iYe zb#YBIL2LV<=_nZeG@ern9m}KbrwUcx565plI-}FFhAT2 zbnyZ}np^Gd{bztC<1gsbZ@$8WRXTY?LD)(YQ@5Z}8*}Bus10%rG6{U9>6(Nuj0&`B zU_JZ?i5N?QfUm2o@8KC*kzVqZR{;n|yY}azRIHs`)=IcQrJQtiPN3VG$x6fc<79KdTJ$%F(WJ8?RtC$&6T+5{WqQOBzS==?h6jS?w^ zfq!;PyusdTBmt;v;EP8RU2}c%rlOtgsTj&s&I_Ia^hLZ#yDg_2l#O2?B5Cu%7w?362d(RSRLY<^Ii% zwfe&2hMC0e@;MU8gxnqZ&_jIz{2RQun##9oay_yBO>Qat@+`K( zFSQN+j;b%fJ)TNuaH?~ z1nB_6bW;{Y2JGbVz3PiUABys$oj{u}IM9--S49fuLvFTTzTD{!?g<9_ejbOhm5CVq zqsQ9$xraUV8?hCX!ZoyauZsQarb*0_Qr@1V*KU+hY_>L1pBj>-8%KJ@y-CuZ>Xjx# zV?~ngAvaJwz@n6Q4Ax9gRSie?ml-+xH0j`ZdAOVA1W(7R)pNlEL6hdB)-E&$RM*Bf zaFDslkIW8w$oSXN9H6Q>MGsZAUBN}!-xgexms}TIlM8N)&uV7VWK8L^RMieLkCGQc z`uaitn2sIn-W;SXciqfYY?cJI$}!b!!YQRay|6!%jIGEuQwr7m<=bD8vD|`9fXnRC zX;a_S{EF%5wq$H>km&1jclJJ?X! zFF&7J%c2mk(~^#j?n6y$2e(nPw3idA{H^x&*C)TK2R``@`Tv}-{s3qd%gb9!rf#LX zE@IH&blgkZN_WcshkW_N`~Uo2c;VSc!wd6zraqxC8ACPmu|+|IaYUps&>u*}c2d5U zQr4D9v?kvppiHpKm2wM24(9)`Fd?Har3%vDngT&-bD;piFlrME58n&WkWLLHeLMs` zQ+O(B4;WEO&(yCZ#;#oISjv!;sliL5oMmcSh=*9XLqvl>C9+V1AfQsN3d9*#D}dZ- z5NL$APwVdqOBo3)n5bo}DfbaB6t=IS{(uiGEz|K~Z@Dbi6r{&$0}O?S^w1wrs)C0s z3>64SOyH0k8w?(4KQs5NDt*wN(|`WK@IuW-gcoWX{GAA1*pq*}vVeaauJJX}w`n3F z71P2szLxCxB~hZjiI=ii{RW{C3leRtD`DfnnVVbz0E*Fh+Tf4=`cfR{?=<4&3|u1gMeD{ zN+D|aVpxNW-@k{tV)TB=m{xd82q39D?GyG$mpz@1E$e>GPbNz5{D7nF3x+rI-Ck;k z&1(`dCgFIX`ZVMOaybGGBl**Z9)V5@;ny{s6Iq~hg+Fq>a*5iK*CSAt@Wt+sajl%- zizOk$KR1O(24xN-wc^1TwpM>|F9$PC}9FlEiYYcUMw})%(PgnNeozxiKrfZyfiKHxXT-#O#c>=@vuc_4gz z!O8}43I2>5a~w)-rhKEL+=@9~Q8%{0OX+63lvX9m_d>y(T~Sy36!h#c{RQ*>XW)IS zVZR<1>H|DH9@Mwja6`bwj&~mKlibmqucTh51M zYKW?Izx(Ix`t_TUD=UdSeFx+W z2Yd8!|IO-wSQTc`I^XVy-~I|bneAMbdC;u zYLY+{g!xk=7F5^qJoA!_Sm4O<_B0R+Lxk>Qq_2xVtbI~h{RwL!MqLPQc+8npzW)9H z5T7IRQTSXF5Z!+-e2z#-;d4&S>0Nw|5b@Y4eIo_$;&Z`xG(eHwL41z+xA3`*47vWt z;Bzd337^~iE$$_`Gd`zeRN5KMqT`mjX&5!-+-AdljqkQ z$7%r_t2dDPK2rh`qD=)F2SbIL1np0tZ_pL$8~A#R8<|Hp1>&4dk@$gN%>WA3CXQJM z>S0v62j6z%FQ2xHl3_r0(=qf7T0%_{aQhB1co;iKvstcmCw zaQg>y|43>|FU0W0WUPZCvLV3E%;U~sUOtiTRfjIFq12eaULFyHRJVOFPNO2e0&sqgn^NFtzKrdI!ZN0U+P*A=)iK-qa3S93BtW z=+q7z)>zJ?z2X>&5E6SMjW6X3qR0HpG)1V-1TI*$wx#UL$bWBVrtXZZsBowq+?|QF zN$mi+fn5g9vX&e$nSHf`L)=#Fiw{E1<;H?vH~CaWKCa@U(Vj(Z2~sNMt;#J`g$wgD z89U_i!H@1(n~2TLr~O)Jk3o93<+7ZqT#V0N9MLSdl%aB719I?4TVWa2}xL zU=B+E<}i;y2J1TlE?bJ#3r*_(%j^0RIJ~>Udo@w>I)R!hpV9Wv$dQZHGJ)Y+;5g(+ z#oMO593mc>x^agq&s|he_eD5W)Q=qM2aRdbhyJ%(Z=x=1HXkvvpyPi@X`qJx#?-)u zytD{n&!t7J(j2&x|Hj-ofS)ooL+t>VkdXs2ck(Sqz=Ldn2ibI_`YA0_>(FCfuyRBj zMgw}@@|QkeH~dG)7u@gD8Am!gV?)ixeqx_Z;h>`I`xt0=?{^Xg&BeUTh!*h~+sj*w zE;+bkd;#8}MR@TXM}dKIjiT(JtS&I<-t3rcvG&H?Tg+~W+bv!(R;9sGlwmb0+Z`>#8VsJ^!G~Na8C@YF zR!`z%MJ!$sgA%l0l!|3{?rF+JhP51#u23ylAO(X?6El!0(?;7lt02PbH8Lz#DON$UW*bCzkd4u@hEf=X02?Em^Sg%w;;UFQ20}>6519ms?B_an&sT}am z$Q&f&>-&G;eI$fQ9dL-Rb&x+eeqAVbu!oa6IyrQmUD%g9h#tCvXGHISXPnPrXdUq5 z0`?lBw|5!~s2zYDuQ#~^NStUL^wc}R_r7du1tiblsg$ZqI)O5 zOz4etl(+!GA$GC{Zv4g&2@uc?-r#|-zd>XdHB?nU^&?tsF}S0?!dq71omt`C8jXW@ z6iM>tw2zNBF^w}G7$`Y}-Dz)~Yt@nz35TZ|D!+=Fo;GGP!T#y;o#?a-h)+`kK(B|S z3qUK$KjltvZP%|=PP{_;ZxJ;Xo~)zLZf57VlBa-F zJ9!1T`{dn&`A^L6j=8j9#Xq*zWyG55Cn`puys@kLeYu};YkNKtJB_HSx677rF3%1l zWT%-PO)>)3*~Wj?$wcVnK*JzaH`dl|KG^XMJHL_^!)vqk8A5QkX?^CZM0b+}4D@Je1v0zCo*C{4BY^(6EHS`rA?{Xhu{sKCOu&GO<3YPe9W` zqgwqj$W8Iu6(k;#kMyQzabSYZPyz)|KQG~9t~MxN5q*Ls9Uo=|F zlA5JS5-?6YscH&`jTQfKg{T#|Z_(-(_BSW2R}i1IHlkK=LHuWnRWu?R1@kQguJAob zBQy#IHa2o>p-e$n)mSYXb}5jWCuXtWpcW`hpJ0&sU?%&&Hi?2`{B9}*&8!l3R?qg! zH}}8rc=`mE-+zSq1Zl=@C#+A9r91}u1jg5uK!LPWEn>fC4E%BUx^lnj$=BUzeBDDT zz#(UMom&^i;wdPCq&|%S4iUJO~R$Dq*0$kPA@YX z!Xy1e^w#CH05!2b6`R*PZwmRn8*+cop?-OeW-2#}@_WNfi}DNmjQG9U27gD_Cy+iO5=f%>{)`O@$TQfWfcz`Xa9{|rs9F$9p=baIY^H$R zVDQ3o4qj+6`NR)1Bo@4Igl-_4dM@k+ys@Yyu8b&v5VjGOS2U8ZPORg^g7G&_Vqjd} z*hdw7?(`GuO+Qiig0ERH2YlhK+@1gua=9PD_~dE{)Lh5(Xlr;v*L&VlR?? zdAh5k3h~Rf*y0FP)Xjwx@saCN9+4i~B>B3L`Ul5%vl*ytrUsJ7cd;_}2qc;3oE-9l z2tivVF=mQt(@X>eP?o%aec4M7C)l2A7E%;0oiv^a9Ij+{_P`VU!S7Fl{cF_R)YyJ zo~*hl0Y>Tf_yUZUY2BL=hS;Ra<>S7UtNX;?O$=P5zi2_D(5d+-(x4H6W5OpoIo1L# zQ&_8EVzPpRK?Ep7s<+=`iqzJ8#~X=`0~)82-kj|n%AKT5XT=^gt5MfdrNux zan6!oi?+ev)$I2euN73r|7w0PQwSHeqkylXB2dTDRTiuhp$7j(q5`Mq^RsU~feTZy zCg0!fZ%Bj_(|@q>bz%A#e~cI{XJ8+nrg5pScl>AU9@n2t>RRG^yh15=^DSEsXvp(} z9Rin#EvGQGnTjB#D{8b96w|i8)sEe|=1xxPjKuLkY~N{u0vLY=f&xoRmlpDa6Fijh zgXuL7tL8IvqZU-o_^|z_?4~X{2{#gXV_lrZ?&(#m#NdFNZ7vhD8F=SOL{~B1gngroND@hG%te)#$)RX zj7MK!i(C7e3!LBapQSJGeRZ@!dzqNJPmpvnCOxR;0ME}WWd!;H2=cm;V!T)v;em%) zDt3?@TS;|@N^+3-k{9rHr3}n>{16^T8>FuP`Z8xA z;3p7gJ2hus)l`QO4j{!Ot6-}b^nn=O@}mLzBunlPrGa)W-7_BMKTls^ zFSij5=n}T#18W=ny>)$oWBZeh`Q#rfA9yb1%<+Mf*^?l?0ltY8Jb*=o1{Yw%0K2pW zc1j;~;Nd1b7->HOKJd+c{#AOt_`o)?ZwT_YY?`+?-*FocSRJ>?*9`Zmz+el0$G+7% z_ALWScb6^(UdXe6XP*cQ_&zc?_t)gKP>6RR?Eg1^>cH*On$ymo>=SP~*!zr2{GGEe zW5*U|q$k1r{GH$f54i^batq+&r9~S7rNJ8~0V4n1Dk0Q6`5Is{z88S<=0n0I1yD+Q zcMpoKCIoODIQ8V+#^V)cc|-^C=Tuw6gOKjcYw&XUn_t#(zhg((W_Z=>ws5hPfSes$ z75{%;U-AFnr341;cM$*oH(~kd5&u8vE^9oU|LJm?7df9ujch29+%AxtFQrGQF+gZk zRw{GhP!X7ejUj=Ym8u~6zl-iM>93{LUajKu6^c)!ychPD6Vf!p zqps$^Z(hTHlOl9rjD?Byr?bqnfuRC}EPA)HW|yTjXrT8uY$LPOl`LC$t7Jg3s_h7? zFb&@Ld0whTN7h)P0d6jlplzQ1OSM={By{!PgK8X=|9gmLzL5VrB3r#A_fxw)`XBiJ9ct09H&-J~iUv;a`^WLp)#PIpNW!-Y!c1 z6;;WD3rcjX)#w=B5a01ztb5#oW{Aq zj2k2@`m!xK#n$8`9utl?IoO{e1QV^Dv8bNtn%vKIcsRahRJAjoCi{Xn;A<%X*c;?- z=Zv5|>;tc>h`rPUuX~MFDxxRq_&zMeXnofgEmTPE6@V{$lO6&1g9dn-SW~PwhP5jQzn?>qv1vOsO)@1m>!m20+;5;J zno#V$YL|3>Z6?g5{l}sX4dAEVmCL_i(1WVBhOfv|1UjMy!)aFOEyHVQAg>Uphh8=( z9b3@-nxC?q{sxcfn+f4mwt>em_0X8QWGR7|hAWAgn@^#$<~CAaVmo?eM(9`8iCSn* zpwZ`bB0&wXBj%XudTZi&9>$$H-+FA~ zhctc=YG%4#cd)9)>f@%2C-v|-=&?W#s=6SRcPLZXHC|$`YH>3=Xjt-GxLapd)ZJRl zK*dbTz5;ZLi%{4;W>^p=`%&>6X+vU=jA{p58><0 z9a|rv7vJjl)dM|deE$@+LGTYv6*CEklm@y$7}G_m2l4%(8t6gwN`Y?9A*Ti^Bs)sw zol9`Phg1{6$Y>#2bbqq6s}R1E?zZ5&gx3gu2jfD-3*di;-?{O1gTZ$f`-pdy0`3-u zNEaWDA_b~302*Cv;2<4_wp&dWMA5rI1(i`@Kw(~b$N{c#J$Lc>~o z#Z>a7bl)B$oDX>%v$CuGef2=Kb|yX0tJn&!(>C}!k@)_e{M(fj0*T<5%V89+dz?Pg zXcG0kI^Gs)+SG_*l!f@uPc*(xi2wXV+nX$LIX%#eI5nCd-c78?y$)YX_MpV}Pv}z) zG|az1?Gmjn`mX@Mj$+Z)kAT4KOU5>74C6z+fnxMB=QFmNQqrm-l!u^J6Ws4DN_hx^ zz7{Nx9USQm%Ju^6#!(eC2}G9AF5j;bUy6pvy4bw+mFELknZsLR!?hrD(_fw<1RfYfe67Yfwp zay+kbq|CHXcwKh|&4chd^**#Opn#aOa@DSUmqt(RhC8H!Dn=K^e1b7tfD=^G$hyP>nZFRKIx>_tJXR zd2F>_rET!nz;z1eYsZS`m)Aowd&f{S3G2@XBTRmj9ad@SH$hSQ-~J(?c-`^o@?>>< zvF>FSc{>4_Py!VEcdk&uu z3rnx;M~d)~0hZxxbKcEA1~bHAyBW`1PqpksanCpLdb=6=%#9drN1@L>nQ zi#<|3(`5cWtm_^7swNHENEekVUvO1jaSigIcP8q_#k!jMRsRK^P%@0V<@($s>cpb$ zv7ZBmbKATU(*`w5u(>1FiBEg59A;j(^g)}3 zt&g-X*|MMNgt7;-nV%MGFY{nAyCrV7gxxZ?3x9TQG1v0-LD3iS zqe7`T-j=XyikLgV3HHUgnSo(ghLxQm$Hxy3{{{Wuq?m}+rttCav0!+vMUTr)$#E{@m-iK z-zvm#f)K;eQN+-BFwGTU=rrtFqZUl1v`p4{w^Ke6-Y(HL&WSa)9Z=77PHY`=p-cx( zui1)RX!VRhF0>`_oEkI7WlCbjgt!2cY+%LlEA49Qtwx9KKh$as%JcZ*GN&LqkHZpm zS0f?1q7o9nNr;O6SXHhXqX`5+M<&)KDi|(A$#aPiE3K@%#(aoU-dt$HSP}hI0`IKl zi8-!)ReRv;hwkIlh<<4D+(s0>eh})1F2iqA@nL#9^h53E%nw5S&=u8l2>MsRKT@T+ zpXiN(_SEo7$Bmo9_wae)8)Tjeja$`IRELH=5#43CAgX$^hr1QUPphoj`@sf z6Hr+8FmW+)f>;+y6Cjp>Ho%%3ERoUD*Hq&&Mmb3}}3futgaq{kOp@H^gUkQ}-8}FUz}l zrAZjRLwMyVAFn*FfT+J()6)QHNdQ@{p!F5(_#|6}C5DY}B|0q)1d8*%06TkgsAR{foKcA z+$H!uz%O?tVoYj`6TCTMTE@H3bp>a>{JC4 z2{lKrwv7RlEopX_wk1n*(hBtrAU9P1*YW`$QtM%$(e%I3?)a5aS;bHr0EiR0M6LQN zoKpoRtp9;Nz;8o+02h)QYo*9E1$atBL?0knr)oqg8tjXdGyFY36c3~fN_Y_{p(Vmp zrd3!-T)cM#wN}M5JH5nY>5kG>hAa;Mcc;@$1oMrmPprYh`h65J0Y?r5O#xjLJFx8E zgRE&WbP?#pNJA!z*c1^5V0e|M2U0HgA~#Lsvn6^4(bkMSgFL+OvO``v&7#R*)KeJTe_4)X@OR zWjz4N)dE!HH%KVtDH#uYg^#?&d2Rg*+;cF=TgLXw{#N_?o5AIS=P4L(%A7OXQ*E@h zKy7qMz#VL&WJ@#jUsMkwasDjm6`FOzKa8#s>YP!WGac(?97Q2Q3iR>!-DqY+LfVZ37auv-fsZdyUV88aS71`$HKn|l zoQ0 z)uU`WwzeC&)SW30LF_=8_lWcH)p9wgBb-WZCX&4cn8jMT+YXYZ!}X%u__&*o7KtWZ zZ9j!l-fotiaw{lF;urd>=hjR?Lk{IM8YL7E;TIY&zh1c(pS?5!Kaxuj4x{`+xc=f7 zwmW{|>u2T^jp&z`p8iEDFPdbf3-C$S|5|;y(MbP!JU_tY+(!Lpf41TmY8(9h%<4=} zKfqDv0Uj_!9euS|Np_FE#;a@=tPR~H{HP5{e@M2lgS~jfb+>Ah4?Q}h<_$~ zik7@#d3|d>;l%`L%d47jeh#X5`Y=zyj=m#g@nglR1(W)hoO&`o;M<9D9LJ{k`yW-QOC7^Z3>Z=pkGrd(F3E-2xG{Y_`I-lRWX+xj@t|(=p z>qGKnmtA+N?%MN+b^UGiIl1p~jH};x%vO2}Y#nnZ5;6Q-b(27cAf7*w9e$s;+uL;o zVYEIO$%&B)`r$rMAJ>$2mZIEPd~YI~yswx(5Soj`uf>nFKm(r3e+}Nl+1peXjsy{=0}u_j+aiLP0l^fd4$@hmMC-E zZMRjsgyr+?N-(%JK`_2$zEw~TnAHEnr}&U#`A~x#FaQ2ZA98%q-#Pmc?ZhYVIfws# zdyXFMmf=<$^7(m`*EuKhI+NE^Xn-cKp)iGohVW^{3m}KU6_VaoK<^4~Z~B>_L{^;p zQmTCW=(@6BjIJ9#qY(ctuBVi?P^7K&>?KxxQm5lH`qB99{I*^p`Fo)rPHrWd`sSC! zMpQJtxe@uX^6~2sCY>BglsZFth>VWf7#;*lnWr|2`Pin5En{b)sEy%qi?~=Du;-*! z-CAkCO$P?Qhqu4(B@QGmKR#(Y@%B8zdejs;2+^P1$)k3lrO?r=s!;p`Q`;T!QoOc5 z6*V(rN7`G4TM&AmDj%n6{j$<)t7KWXd)~0+9Ulh2ZQL~2P102I#EBj9eG}>3omz;hf1!1Kk#8)9xZ{V; zwVl^E?Jt*G5jx{DZhQ9M_YYc-H&pW?_1_hRJNY)_wPnh24L>ko@;|T^OmK7BTa!7r zB~d<)rehjS$CP1R^=c`KXL65?B+p9ITlg&ryIl#pi5(-CqPt-EdL4Ar$$JKppm1C- zEt*S0&a;Gk!hyz})icv0=2j2vxHiQ9{PsZU=lcKb@PDNKcT)dBOO1@^>OW#uy#0JX zorczIoYJ^)Aao3=7?cW){EgW5c5|e>!gW9cigpRctFP8DHiOLf6<{Jd@?|ss# z(6Njim_LehN6-?~d~APs(dFifQ%Aj*lw+8n;;V zW1{qBB&Ozuh|S(DSKayqsRM>2P+)Knql2R3)yWQyP=+tMq2=KQ9H zEwt$@?VAn1%U2{~3SZwumh>6EE>K2XNk~u8-x^2v48$)+^D?UEQ zwcEkQTCqrYm)#viuis4}^rP2}ugpNq=ecfX*zNEvBiz}OQI5p3vj?Fd8PC=3ZeW)0 z>#f#T3j-G3A*F%ONUqC^$xOLh( zNU!4gq`Vz{MX!gvS2O8K#g;hUt3~?9j_?GBxRp6$r7WIGG+5_Hg;)9}Z(oX$mA5`O zi$WI6|F}rc`1N2!&tRU*bHa#$kP`c-PM*Ta)LY}j&Tx2gz1F{s59`OO&&&NtJ$6|C48)?kY^i<%d$mQ~{D2m+kf*3!MvPir2pou@OvDH(eMb}V-?hAd4{iy7&)^1HE{AiR<>%^c96(Hr0s z3Aow;dq0DjthveDC<0JRGYeX17QTq-%JNJ!9{fcJ003(Kp!OaS?mfOzFUBrn! z<_9*PZiw<}NBevqke86}6XDZ-MRnEjX^%Ib7Sb*P;9O48d|KP!?;Gs*F`g>Pjw)k( z%u`8sA5K?Zi8AQ9)>8geTb^bM7c#*rI%AMT8-3G2<;^;K26zD0m;cgx{$ ze!LCC*1zjtHT^{jx0`S0o#Z(ikxr+2yV^nl-5&W+ka zK}^c~&O#<%Inr)vAf ze?i{veq9f{`#inX7}9wJbhXr)*FtaAQjDaU50tiz^vdq-#cox&fV$E?*{x+I5eer- zTA^XM0KfI#K*3>M4}L2Jr~pom`rT8Qqv&!d-h9YpWF>KG{MNztKtmo$#}0KP+H8W> zTy|wpQyigH%Q6ZG^fj9UxBJ($R86AfM_BUG05xe_!sVKd5xzSsDpu^OU zLbH2bL3~!=;{C3I;C3&hIjA4K`K-74{TmF!uzxG$v$m*hyo*gE3l#1cR^iKWUF2iL4GV ztp65|e5OW;XlTM`UBZtUuO(yJnebWV7GGJH0?KI2+uo<4XO+KLSvSP1s2g;5fuFnZ z90PhM0rd93f2Rto88g+#e;cb;RE%hePd_n#s-p#@zoY(C4q!WuKb5Im{-OM-e9X7O zq*%ctZ(eA7E7)7^4>t|`J%6VGcIW@(1&8^b_A`Iyj9;?D>T-((rGH3eL;v#am;9>Y zin4K2(i;Zuw(|*S z@9$PCP<=nIa6c5{D9k=-J zgFk(xw?w-BvZ!aglP$hSYu+z=EGPID_4$~$f*AGX46HT#I1z_>rf;{gxQq6$?9F^8 z^L}e_Kz`!W+G!ess$QF>&B#gqgZ8Aby?ER4=|3jh#XtB5w&83Om#U-3r{7OQ!TpaG zpB}HB#sT>l^&ov6Ue-H4{aF4~PFME(`5<-tsVqo+2Dh-{oG;JD|C9r>pMP&TUR|j0 zUQH}}hNAO@AFECeO1Qe;eHFyB_X=09Kap_tIm*wG0in;K>n`A;j;1ie31$kKZXwqOiRP{NlTEw=41M4ZlNwQV5+uEQ{B6476Z{ zHxXM;H@txD;0f=tz~~5o=V2X&$90p&KH__>E?o`XGcc(@bMhM$RHnW% zi+?IBm zNQ`uJ_{Y=ud*r=_OE^MJ)wQ%1J+w|M)(ZcN6W`#d7FgJR?y^_oMGWq+DS?F zp4GW>J_^R*@&n3wrUQ9vgRo#-8%RAAoG`J+5S1kA%3axajc3s(O& zMW3eds_Tc`nThQdLSd9zF1N_oG(5TyB4W$*~`L+VWlB(#Lke-*8{%@LUzOcMDv8>;dd8OpMM`c$u~G( z_}y37Dn4D?;O{VvO?3Vk9gk*B-Z|T|(RjH>c>0>4-RJ?|t%*!LTC>$F3&Yc24u2I_ z8fD;bQI@U0K8u|Y-(bnwX^;bl-GC~tqSR+9oYHl=K1;OKI$e#QLVu`sQvO)@oxJDQ zQrvsvcj7%NJpE|+orR}EUVxi^008eE0K7FmE0o-%@TbF0SN)IH!U~w79;?4HYl7JB z0K7K<@CMyuVS9YNAz)cML#T@=rSrq0&!fE(v7YDSONE+}2jImhVD||0YE3DT*+`Y;Bhmq<1xK7ZY{TJYOLq?!&3=5YtgAdqAUcTjHUiO`ED-&BDsN2WYBn7i z*41OYBK)TKN&TOB5Qb2+tI|;m&W30Y@2-7rmy5nWIzdRI37HB@+%G=y!{tGJotdW zbH;bs3E{y$_*jM){}JMY=4XFAXb`aRc+g;|gZT%+2j8}%{qgWYDa3`P>*)BPI_Np{ z856GNze!q67}Yx<-TB$y3g^)I*&hk|Yk6@g9Ai7}N60vg_}F{Cfr~;gf_U_K&YOt{ zbVZ`eFlTzfdIT7wAAf#h4}Nc8gnHCU9@=b$<%$NxTYCtq%#?|(!dHeiZY>otUGfEb5@zHY z;WB>UfQ8IqLy^tWrQY!Su~jra>+0&dls7-+K_ML5pqGGONa%-YYl&lcQ8KpNkA(QT z8YPVbZED#^*I3XJ`FbYN@!*$iF)hF+=V|>4tui+73sDjjzpx=FTR)_1`S|2ScKgC7 z8O^a42hT9%7|s-&87t^74WFC=eO2IK$8Ejv$q0kcUsK$b$0uFXzw_W=Dzh$+Pxc@f zHU;>kv>N~@OIHI?Ug=%-xHHj3^UvXvV+oQQ^u)37$tam{y!8I;85nD(6e(-BrItqU zNhxj`WlzW_i^Fdm1)j7QWxOYN(yqyVNR{N0$PyjVz;8bTzds|By}6mX^FKh%uDE{4 zKe>w4%G~HV>3yfl4^yzj9XD2EY!#ml^T~*WfRkKWj49(XreYg&uTpaS@*m)n`NWRk zlPuu&jZX$t$mqihCbsnGiBHbVb>TcI@1PqY3ofiaBR5U;q`n`r84fU*%;$hT_$xP2f<1WaU}N}%?7<)O zXy1&`kSte=+!{N;OqpU}Bs>QI`0&8uMC?t zs?^33!g5-HD1VBYCfdJqlOx9a%)wu1^eTvQtek12rdgklNiQA{K$KG7rfg@?cE-)KgH9tp)r=fKLviB80p_x;#b1 zZ40jJ*9yCA$9w$xpo6$YeAWVVm~GZ|nkwJEN^cFO*C}sVCGLN9rzvJVEL0gjd*kv-ABu5tJ5BfrOJrGmD5_uk_yXL$#x~xe>k1;U#e?c^?(N)U^xH z%UQIV9sQ~CiiaGBUfa4fL~7R^GYaSz5!jTg%8Bw@3e#WljuX-WU*%afU#{_y?-uUs z(Wc8q!?#+1CVU08ckYuT$YSAP_cz!=9ygakqhwSBH#s1B7R&JATL%{n{b^?jKCVM z^va%e{XfyZRcfW^Xb6&@8Hte>V}QusCj<5s3aoQ2vUk6p+U!8~hn6`sAT80Dc?FLGwGtCjuvS=Gq5$~{sJpu}b(jA&Pe5P(NJcCy8WKdAA~Es>h>o+%TFm?Ukj_GG zy@G^U?L<4(ti8;~4O+iV#pZ?yk@8-q)yi$R%07iRATTE|%d#GyQPei9(em){qCBOs zDfdfjTMEjzat%NI3tymR=F_O9~?9=TQflk++(`oqBxDndYeKq~?Vf zC>=Kgfyfd*^SWqMz0SFYbLtssQ{-^9vr$jBg#PDI^Rt7_mSUW&nE3`1_;>38As&h* z%B}$akA%wy*VtmZoq1Sv zZ-}zi-gaI>J!Q{YSY}X9Z^>C1^S+w93K*Uo@?#a!TNuy)%@w66Q+8F%M|BN zN9F42Pj@lHOJ!U3=Ao3p+B>KS9WN@l>IAImCf3j9zJo|&k)6i)TkY#_I)A;!*WyQx z^TX*GQYoCCxHW~-6I_357)}3yleIK9dT2_0%0aSj*g_l$67e54q_gLwv!h_CeXChP z)*FjJ4apXraabW;VrFEuqjO+NSe`FuhJ#aNYT7?kB} ziHG%Bl_{LGyXRKc-F~?8+zl0V<6w8OT<*(*GLOBQ>)`vGuGxGfqOUD``z-&B$wt|g z1lQk%lk}Lo2JllRJJb#Ui4DW=!D;W}TaEySZ3KsHI#T_V;U_xwm{+VEaVS3h0SZ{E z{J`hyisyX3ZpgEVx{6p=W523|c7PcKsJi&t?5E;OJ?=3VIJKb|h+#xqbqBp9l2tVa z`rUF?#}^9AqdHK2nEdD9tX!ceJN$kwFuXonb$>BCRrST}F_vMkguOD`16yq>=EBP- z)@$V7GuHl7Ei+JakmBfDJCi}Au>kfGxq)X{Axvux+P}uVtxuwO-PGH?91=|NIooo z^s82u&Y1lJm7GauKjOCMpV?g4Bpsyo2Kb{D3&j9Ni-qF#lip&B(O;J@7U^@F66I|~ z>i+;*Z~d?a>ZdK+OyOpbcbx>oc2e7bcZj!6eE~fM%gpO`D5DjwPmW(&WFiPk=HhAA zHjHShemp$_8P1zlR=>C7uiSW}(pz2W&C_>ERZ_Pz5VK&YPQku>{7pTB7XH2ndmXG z!moaLyjJsq+^_l1;>)Fv3NTjL;4SUAkoT9}Hvmksbh*WxY{IwRgM;DgsjZ1m{|;xW z70uA95R4?>_8{86Y#<{i->jaQtL7(+H*T22U`ka0jl#;OAc_fvv3kJPh!)Iew`f2l z$9gEp)I?5;xYmmg7>uX&yux;AotN5p#PnPj@+j!T!7&L0;s%}S>?kNli@X((cbt@q z-fN3W4n?RG{#T_cpHX;gHce^VG_X|DWQi0sBVZz5`A2ehQ&-#zFXb+v^zzQY)qYr< zsbHb0{qm}>$<%&%wEcEuBApg2k7S3_XC}O=2Z~~i{&Ga0KbyNfRRo^gO$SBqzC&%$%%6#|$^fa9YpQD|;Yi|6??<9Qb|J)0r=WA_nW z|JL(p0YljXM(W`^vL9mkzPo+MICi#J8th0U;CDnXfG2*Ow@7*0`w|HtajB0~10UOu zXawMz#2bVL_bEJH91Yn-0x-A_lM#RW$7xiF*Yf>B^OU3Lbr&49ke{`=|E+ii%G};MjW_+t zKdf6P0FDv6w{vQNZB_*Kw;3oiAv^aT&SeB1j_(3IfCXh%K@1N7SO2n4kMc!m8vxhp zt>Fv(?PI>eYy=AM;p2V2wLN7%Cn2~3C^-mt_n zrK*`I?_I93x?3F&S;}N`*xLuG zi@iPFWbPj+%R&Dc^TlfO^)tZhz!P#k^lSf8Rl0Eg#!xkQYZ5SgYxXw=Z=E|QazBR# zum(_oAAET*^BS@k<8a;6pusue*HS zMg59iApeTm*MIO}HzlO?fBB_!&GxI)+5TPkoJ?oJ>@wB6_vGJRiCTO{{79`xjbDr{?TWy;P5nZ1YPakzZ^zD z>Ct}n6@%Th_iFp^1|8_G*?%#R#+2Ls4^f7<{3vi$EQ z?)Q({@1OC1|7`yEQ{C^U+V2UzFX}j@xmFL(OWbjDy6)Fkv;WK#UgGHidXq;7C=;%z z9-LS(D#I5=9UmXIepq+=ocRa3bIrW$-54sM*~YI*Ldy5Ozhr01fno95e_ZYfBcWitXTp10WXVuDSh;5xf zG`0_zRd{^XPrk@!HfFR@v%Mr;cgCl$EiUqNtPLFN_;8t#r9O2@@(GF=%ZZ0 z@9t4f2_I!>P%iZ-U$aN~#COZ$vunT0ttKYC&;2dsdeq>{GyRK-sy`IJu>UNz%<&iMlw#8x;&;{Y!?1=a2TE=|6^-E!qQjXj zzKcg4!1qNR6RGHb_Lbrya^tsWTD5O~Sk=CL6`y$7kEzM}46RV^WUj}Xj~;BVH}$|L z&*1%Gf6X5KfvJsq-ym&j4#aMKe~<|2r*(b(Rd`<*U>_1Sw+}9=9>``$QT3_AK+SF+ zS`>c(Wx6k1nD9njO(`043MWL;_agRh{lIUO*6m{eO=}x?hwA&4!S|h)sq@rQs3|t4EU%>o!4lm76~2%t0AG~gY)k_2#Sr(!6-+7J7gik7 z`ONTcao-QsftD%pJHM&K)pAe!8w2|>gSGkk9A2b*{9K#QTKk26=6Czl>cak z(pgJVI=@Wauk~}r+tt2!%tw^-Dj)hggg^POsROwxjehy`r6i*{N8uBmJy?)?w)t9h449 zlrgK*t;+be{qMMyf9v59mC7cbdMt%)aX*^`}o$ey<5% zuvAB%&e7hQ*7oq*Q}yls#V&>N2}fZnYTx949VXlhtg{rgFY>?6r=6Oq_9yu|pLQks z>QTPxGykU-6+Ro4rl@@~N4IuN*+S-7@{`p??c?ndJqk+oX%pvk-_cd8B3E1;XYrUt zK@i)PONypYu6|>AZ?ABqMNd$tAvxtNdS1!V&a-D}w)1LL>>$Dt+tE06r@M9=DNh0V zxjW#bz7KGvX{tM>-%*aS!a3d@Q+$+TtO$Fo1rQ8XSL``}@QK?RM$NhLw6 zbl>hnw4&eR27V=~`Oe3Rs^63G-cT?80qP1b;VPD1Ko#f#N}wuMRk{BY-~BTKhMH%E z)5NOp@3<)c!-Mamubi6yd>5bn1LL(5xnf0j{MTx}GpML)z|?1-E_UT2={r|9jY@=fdiqiJ0ow4H@bYmd|a z&Yf-}gj8+U9nW^09C@p%%b5s(SJU-Wf08qYwtpYV1-j((NeoKZ{S16M&hj%bJM!j> ztgGt3hg7I-xV@4K{vRYg)Nu_AICM$E zMkZDj+0@r+zWuSHs!P&!w@rEG3mnc9#C~+Rd*XuBlwl{ePrP9lqmAmj)jx3)JEHxX ziMzUURb;9?M*Q9zE$3^eaCX)nrGXbR9SchWKkrm&bD!bA_R~)7R}}WwU%I-&>$0f` zUGpi^-lSCCQqum@%ju&>-ke@A@?x%9G;zVm@2c477W(H3koMAb&#KRT<_iAf(LeXV zVJ@(*{X>t@vW=`_SoifG6#EmpQ%^t0ci(0#g(ivyRP7}jG?uD5l|jq@qH+{<46gak zc}4E?Kz%OJFKUn2UZzG6x%N+w%AD0u(^8!9?rh+j`0SDYA9sHq-*mD4kK;+(&=gx< zEwYroC}0bS6h#P7X=p+dX#r(d3Mg7}M@T4GT2hlhU%UvSf}&RiuX^>m+>0BnpwLq2 z0*Yl3Srp15ykgivXxZ|8o|#vYR|;N#zCVw9|M;QlYt}Q{nKNh3oH_Fp@x%RTuGv~t zW%NWK@EX;)Ab$WTzE-Hk>n|~8EfX`#BJPztp(+U7#6uraLSqohdJGJ@9veBjn-sQx zHI6fmHI5!dT#Pfny~dV-9i}56c+|;}U!bwKLCYBhg2`Xpm6L1ecw9VW5*vzV&Mkhj zfTC&A1=u<7he)uVW@RwsXlVm&nN1qTf3dh6?=}ST{k1e=igON{*)nyzb50_-)(xH^ z5zaa7HG*kFPDN^2qx#|q9_W>*u_aeI94H3Jrzu|IqQAv%{52Ij=Hs)D7L6P)o#rbg zPNr&v%O`^S*D=%s&f~Lz>y82yXGcXPYjBb+erFYbLeCIl+x3JEN!Z1y5j^RYE5O~t zERAh2$Mdy>`NnUlb9@5<_%;RbKr<#0?de#(Ff6k}lgGQJqygJ?N5on}Q6t^F)!geD zbh`s6Zqf3ol9lqCb?Qco0UBo+Se&lOuf7~8c~qr)Hd6i_EGB&wK2RQ0aS<%$0dXHO zf;8*ID%prI(LJ5udIt5d6jjk4%tVi+d_{q4Xawa!fGn3hbQbFtW1F$+o z#p8JjAL@`h9;Rsx0ffXVF)-2I2Wt!g8?w-JyJN_Js5|UQ`1BqfZ;UdsE9pFS2i|zvqAkI&E3_Iw8C2YR)y~`-nsnWbervx3NZvJ;9 zZ6a?K7NI2Yo935<)!8p&ITzM9#6UmS{F;=#oQ}bS_2tHxG6cMi1aGheHLww$0%a5P z-=yp}d75p;7^ozf-x5}jdAs}&fNYP!aVmI2^9pIq%0LLb?+B~ye}_>+Vf}@e%9OJR zc~`Q(7YKm&eH8PLKrz}g=Y;O%LW%hUlTecV@i}3FF7rbj2uk)p#md~2t#Et_-I82m z$`&Ljpl4&dLzr1&{a zg0>tfwlx@2P*l9`A0MES$<;`@8A*qYM;XH=F6Z^Ah6Oey3qlBFE&6y{y)mUsNZySs zdywV9DaexX2z(o;tZ7vl{b};ZUoX1iPtyRK=Ov?@jCAUeG!%AD7_U269)<4%W%Buj zSe%4jy7OgGnpx4vikx8m@=fyd;n^*e{n|fx_P+K%U7g8<)MfZuS;b)CT5Ihl^(2Q8{8<{M0rzqwo6EGPMDZ6g=Nz#+4POF zJt8j-&sL#io5r$j6L}YH1Jw$4kx87{+fwCRLfwUbm~TU7bLvTZ{l2MqAcUlc%0?g2 zx2mFB1?XQeh4-7!8~k!c1nt!w1d!2eT z^AuW@LBwCfRy?d8q4Nxahk)SuMu7ek?eCB3x$=1JMRQ$%TG$?O=3@nzgsWK~{~-9Q z*4zQuU<>Z>fb3qVO0>muvLC~_)(HCpw2lg{A|zXwG1paQZ$c}n?Fpe|*i%Ifw_-ua zvnfchp1_p1kUP*a>bqCUu(``-cZGi1i&u;qkWHo%u-`+ij>qyfc5c z#+JwnNpRLhBI_1pT^Oa0O#;BOV)H&^NwVpYSX*f>1(MB#EON{$EID7(NXY%_u?$IZ z)pi;?S{>@_H(}_NZmW>b`6JZ$#P}U$y-$XoQ-D*{Enom>siyG10zTxL$g8{sVov7M6CO1ey0M;m~E0-H2vH)zV{aj|CryQzIa_v)Z z$NlS=sNnG0Fj0Yj9TOFN&q6~o7C+z3tyY2qq5?k`6|7K#L;b`=1;q#s^%G5e*^VIf zFu5j#SBdS)M>23h>4kqC6A=th3W-pJ8vb=)^EC3UN^n4^;a^9ryd0|phiVG0TOib=J^8=gdYYS zQBDTWW2T$9jRX)Rs_mjgYi|(Eu`xnP5pkmw#Nx_zI7dgd%#k-r!9)-1D221IHwe-b z$YPYT+gYXgw0PiD2-4Th#vZROBA>R_7ikfzts;+H^YKUgpXK5qD-^=T#gvN55~v@@ z-Yr-OuvpU2{s45dQCL5APzu=k{>-A;7j=4Avv_? zs*txe&?~e%9uwGw z-tv=C2)w2IP!zDED&{Qyf{&e`yK@O^Z`@CB(l@@tvn5d)u&}P0*^xr>4wxawc%@!Q z-7dd?`L%G^ts*uFqq+cg*T%5B0d~w;J}OlNdiRT1U^$=8DuuAP=_tlUZ1-$EN^7a5 z(v&jTUQlj_Vys1#%h4ibYeNUZj8S5u0q?youzA<>M@oO77kHOc1Hi&z&_oIJM`zUe zmd16y^}7DJ6_uunR{f3l$K=(2&>u5ED;5sx!uq2tV0UW_`?kjYQN8&3{+NPdRQ+-0 ztH%9t6N<4)O`Nl_ZEwFYJjY8f%5Z0eIz3+})*#EkjM?^RB?V+-$juf}C3`UnB;5-7 zNBJ${X{Uc)UR-){e|D4!W-$i_z>55SEbn<8%e_q;HD$&6bjPv5>5d;9>BY0PUlWC6 z>5vMiVR=2vy|Ip(x?;W9K- z=E$!}8p1MPFF(R@>7#GyG^zeIBz%UTm$(v=S~b=W#`$3)*b@+=4o?QQ8MV-RC|-p@ zhRH?GT?3)~#tySyd<#K%5l{4dchT>6`ytvD{r7rWd<)PJI`yre7md%iwTP6LJFfWY zY!QR|Z5aZFdj_!xtM*jZRA|Z`iNL65i6^ll$WI|HUh(`iKN_a2uK7{OyzbVim5>0r z2^J(w7SCNyOHpMk8qC^bO2G?Pha%)Y$SJv>0;}yTt8~`?E-avHtdiTpLTa7$O@$ZU zXCYat5QuD%W~3^lh=q&}hRm2LxyOfmk4o-|A>TO3JtgFWVEU1eZ=mF!7V_N=Wr6jt zfdC}18o^i2eFWQ5YCx$ZP{TPHWrBo?ddlKykG57&TbX*qHR_@{Z(ae;OK$3TTbp3G zSRvmr4>9{}I(h!PmuX2E_jqVYX$~_b++PoG&%hhBhu(*VJxVDp5g7^0TsKc~* zDni4WCqD}p(w&|itzkQlR9x7RySF*-UmuCNy$+PXFYlXk8JZckcJiTDwT!Dwut>$@ z(Pb8QjZJ3}tNb`}>-#A{kgk-KXeG|7Gz`>%#4u1xIH<1jYYM1#05wtpB>)toXKdB< z9}Kx6ZU|pLM~zI~M+9yZ>)-*n#v`>azhEklinOJZ9yC8lSaXo7Q6oQqPbid)cxE6- z!GM17uchR^n;WI<&?qIH=`tA%$To&AJ^a1`WF8hH?)gYMPi~MN89i<~PEFmHro~5i z;X%}pZa6~!+2yzOH#+<{${&hASYH6XOwEhdIKI)-xM~)T);G0{PhYJ~cU`jIpRT`D zjDXaA-o#+)zN*xMi_pB%q;HB1tQG^9y06NN(0YXFkmsr$o({P;>CTg*1wf|*^rv{iEH77mx2iVNP8%u9>S@8ji?4^5)|6QM-+0n27y1w>d1C+)>_ zQo5dmFQR!RBwowqsMiS!R8&?}5C+&SP~nKN54oUw5*Z?G24tO}WW8NVPrq3EPc7PF z?+mHkg@V9Q*@3f+n~236?uo?mik~n=C0+a@Au@_9JD5opH5Ki9GD5SY3b;56KT-x- zg5O*CeSjZnk*~#X)BoVt3jN9GB+*;K_f*i^k8ww?(R>%T1u1fl7ZTO$;x93|Cu5fg z#55#P^IzC~IMZ4=z(v^7*+Su;iNQ`_`xDjr&~}Jp?ww7e?8g~2g*3DWEZ^QL-A?ca z^iS%r9WE?d3GzEh=lv-aMHO_=?cP_YV=G9N?q5nu=4II<#rF-b1|A?;heOUCb+duL1sC2RrLSp1AfYU~SgM+E{5O^!=S39(i4!s-= zAhRE`ilw!-L5FZ3*zvbdu?ciHbS30NIBg_Tjx&<0%qw+D`=8^p*NWMT>-x|nvsox@ zCEDdnM>;A8MgL1l7b%U`!}yv>EcgzjpcZ}b3F{2f>*xcO5MLru0D@yLWdchW8Z9VA z(r=J-rF?2BuPY>fKMo3|LxqF_n8 z^2f6LQ(mH#y(pMB&|dVMCvG5sgMTu7!{FQQf+HS_l$vQPq%mRWY#kuUk>)bO=t%7fNug=GJ6bQ zO~?jy9p)La!joC&Y-kI^EzbIRdG{9UR)Rn08&Z#MDcqG&TJ$4wbVBK*OA~huz|9I@2FtaBHjOy0R-d72-DFfUoz$;M>@SeL=Ej$++CR0J(07>(3m5ov5oYf!ed zafyh4NHw^vjnfD7`@u5veXU1#25w%((Ec{=X9QB-z#cd5J0&2nM~?dj0lYF_z{U5u z9^HFzb6~kkXuWNQZl*gBlNgdR zPKtCM9voBQCG9WpFm*Hf%5QTxk%F7{)f|pcUKbmJ(}cm96hT?Hcwa**`Eg`I{<0aE zsP!=P@Io+aClo~mX?@EOrM1T!J(=r`p2Y6MVJ zaFOn8HWoJ*ZQG#=vG`MbaShfA!5S>Rz$hZ9|Jm^Ma;P*hHEIa{#G17GjD{UXA!~=( zz0W9Ewizmf5fz4W!iY+%vob#0aMr#(bze$t;d4fs&jfiSw3}w@jbeH%(--$)W~V*) zJ8RdmC!#dId*C0&{lAdE7yJXcf7?v>iNf{Z{wne}gTEd3e*-_G=WAbXfJ!Q3W&-pC zvNzDOsYI8ak;du4#%?d1i;H#8d$UW!_3oO&XH3%2SX>|~eAFZfChcaE)XJpYW;Sd# z3nMlgwh7srO@^96i!>riTP=-^GHPoLn-OC)l$nI=vQ%_LH5g;xZK#iQp0!6Fqtq{- z`}3bt>er6dk5N64UB+**`Ux(=Bh*oF(X9jvsiu%ZG_3#NHPXdyIC1ljRdTL0R8Ms` zNyFieS-wrEP+8RT-Frr)>5@j}& zn}zIZV@kP6yf+r>chYW{Aiz1aC#@P{3y|ur)P(NvmvVpUlkm5-R1JX`fi`Qt)`)wP z#|;fEhl5_C?pK5y-gs6F8Ly3XAFBRT`@&oTLLz zrJ=a~!aS`pHYTZ~NxRo<*kJ|&Vlal|`OkP$%64(29;0MbhG`pOvNnqr-rC`4ZH-B^ z#Da)>(hi+vtsFd>7K$9Na|unSwC{N6cR)W1eVT`^=Al#AqLSkshfrssUQ^i2Ss1G+ z)C=)Vgaj-NYp{ER@T4mBLXP+5ry&52k7nVG_6KVIH<5MDkH|+;^A~)rxPVK2bAq*X z2+);owk`e)giaa)oD~-T15UBrBsG^Fh=N5-?H;3e0W6xBvlAxJ5SIl@_NirNWTZ)a z0z5CR+e6s?!DN6!?yuF`urKz z&poCq6XFT(zXg6aVVk~)+fF-B5}F{mHnCQBg6)MU=d}pog(dJC#nV;jt#eB@^z-QTS#w3TsFfESsP?W%g=c4C{4DmWP3 zE`bA9oEeIo5Eidz-aOC*pwj2e)6Fa;m?VQy(m)wNik9X@4fV87HhNmzV>E0O7Ew87 z!_R_;_FG0nm9U7;Rn3M2g2%~1F3l}88nzeAF%*=}wHd~g7CalG-0z%X1H0sSB&Xaj zasP;CFwjJ~i@1LX`H6Br$NhcDPn7#1?oWoFA%fPUkPh|kKTEWKXp-!uM#C=QO`M$? zuHmy0_Q_B!qwr>>MJ!lpf>CIr;S#(XQ1x`-O<3N8nHvM%EGK8qDl`!atMF~Ki00*Z z^1-kHo(gl)WuxP=*0#{7zhZNnZW*&taOZ;;F*UX0-O1!!|u62vs&0G!$P=0Y=Y@gaKA}R@csy1$%2>5ai8@=ZN0x5 zceU}(03KYaH5m@Ue90>NKs?lLsF$+8l*ViXpz66z4fSHJkX2VIVG&6_Okx`^-F`x&Fdwj)G)V=>kJkSryj^Cv#BLy>BA$^^CeL`i*+6q)x7o0Z zrUWt=4&eL_DNTmUfuttSbfi0u1gEj>FdK**oW_a{C0w)$w$=pKt6)%Rgg{78^HSff zM(36&dOJp}H;cb#VRQoN513*u@}qsTd%xiBg{qP<{~U~BDJ&O)Sz1Z>C7y%_+gq7% z>_P?DxPc%waN)KWnHzyw4zloKO8E^&>r7J4cczrxu&szIz^0S~uahS0Mzi)f;=FWj zMwhVdbLjTA;HHCGxBzhij{(G)1QB!&^Awm=4UKh-L<&78y9p3eehL5tj-2)mMPiIB zFLW>VCnoU}uZxTt7{Q39oI(Z@UZNAPc-NsgN=i9WC^a5_OsS`YDOd60(N!fGY1)K< zW{X!aY_P;z9|8>P5<$Qq#M$C8Xj=R3Q^A%VMUJ}b;j>*(sKa1{o!9*a9YzM)*V1M~ z#H@I9r`d39UIJDLli|@Xjl$a%JQNcN(g5MbM2wx$GfHnLSOty(R(NQ*LDRi4gnvqR zinV{(m9<8ug&=|&{z@gqgPl}Ls$_wzpxQ#*SlkM36R)Np7wf%r_1fqetCYGc5DrZD zE=QDMi?Apkmr;yjyccp3)Z=Mp#;^(I5~dAI6o^{0nCu;gxRAcN!e5a+4xEh= zCy3*7q1R@?NxU(FGGm2a)q=B#`zGmyaYuw+hiBRlH5^d~XFdVfZBQKDiEl4_e>o@Q zKwoz9aiN!QW;O!H;rM?%^iSg_kz)&@s}a3d=(T5NFHSm%Nz8>b1RPeyFohJ3<^Hh` zE2Qwk0u>i^-Fl(4=gUBQNXLt<5LD4=3V&J48#oRv=HpBPHPl)e=Qp@7FwTOrk_RXqLaZkeHyZEB z81EeFkYqFzpNw%Q)JPal9Rfs1Q25R#WY+d7E7}7N^CmP0JusSwj-J9p ze|Iy=502jlDTJB6Q&3qZ7)ybWn_ zv2h%x)OItvI~7mak1O-_fSPzYlXSyTEhKM)zBUj#C?ACpE{ma-Kk@+RQ9lX2PUroG zy5#)|Z`MyyLa&BAOrP)be#G|ebD`JnSvr95H8l#o%4bC}puM)uYRZZLc;CMeQOzQF zvA(y^VHb|FKL6lRWxgHd{LrIu9Xer@xwbQa5Q^ zGG!W+4juaB4Ik2bH9~ysPxxb^D(?~Ik3fG2$$Px_;Y*u3;-}D2_QAeqQft5lHskaO zW`it-YTIPwjQWAvev;bmB|tv_P<`Hhj6~iZpCM2d5UCA*_eGsEF|>-;b-;~nc*a-b zPl8oX;Ty1D=p5W*DM$Jhqc1j9{V*Y_2W>y6=Zr5FrtXxWv$?9 z4_1gOh{4%CD~`Iqc|cwh8iqjIYiHdAAU>F%Bz-Exm$A_(WAS=|fcV|2cx4z_Jn*ho zSdfSED5Ef+?v9}4W!}elPz{5Hxm-I-k5arJ(JIAKuB2s&Qj+zO5Pqrf|1cW?48?EE z0gn0%9}~e<4+rC@p-Mti;xSG^F(E$U0ePrcrQoCuIih=^XX7L2Pv>)HA)e-cG=3v! zj$mHIw`^*HB0@5#=y*_o@wkvNewWaToA8)%yU^>G8ObK0SKW+TQ1zc@w1>NV2K4ZH z)xzkU(5q$!A@?@HNpb*;{w&CpfD^Z3iJ8>|@rUzp&kQ(D!8LiY2-z^}3H;qW>k*7D z$yB0`Fm%6Ar*P&M4>SK)SY8-sevJD+BtLQHKXL!x$WNSk756U=EJu&Q{(Ep!Z$@qH zw?E&5@KQ&0YI#oBAZvx>??L2+F+O1|us5L>)p?c?F0Bvxl)aAIP0tUZYUfcCHq2^^ z-rG>FHDbhs(XgvMW`ju>%P=;Anl)<>^fnXpK9Slx%SlM@B|~pU#7f zF)}o!o@#4!ZjSPGpw1BH-;4AFCElA37pgEL3ekEalebbKc>qy^v|9m!$$1gD5#8#n ziSji?_z}ubqbHUs1{;EWuuf)d#FmwTvhBlfyRS2)MLo=*Jox?0qfH{7_xM3@-ODm; z6WosiB|#$|FfzliB;0@t-0JV#1#Z<0DuFO?tJBCOBsZYu6YGJ{JJ3-Rf5e{&KOy)E z){?96O!^6kH@+6}`@FQ}$1?*F_PO{AsKf=p1*lVa44}@13ppm@qE7&#S(vbmVE>Bn zNjpQ}h+v^DJ6X9%zK8Pd#-9m$gY}{s96$}n!>BW)+SMqLfeO?cQ4_9EzG}E8H30wd zyhHLa{A#>hV#`~CfV~_%+IOH4c#yDPkYKxSJcAudi>mz0furVo5XsXq>1+@NlGjqc z|Il^2gV+S2S+Wm}-asgE9aaG&fK@R;3_?Qc`Cq(o7*|%2P+>Rj)!jj)gG4d;Fn*hF zhmBS9mW=N$P9Jmo$v|%D8U>_f>OWi!2sb%YE~+nQu4w$SlnTs*`sltHlA*hE1(u zA@_WKnP1op@(W?|66heEM@!`uKSV%EQfZaG=|YRRzvWm{69iN_*YYk%vPgZOJk*4) z&-z<-M;r>pA}F6)ciHb{j3c_@mXBFiY#G9;rgX*ayknHE7|eZ2S3JahN>|LZvV2Nc zwB#M5bVUjGDP0l6J4We>eBLqC6_C}TVmRi_L>(abZ^ruOs9X=PRoujCZ_A)&T$KN@ zH3DCmpPmJu9OUw3etyD6__FLoLUaZ1X8HDt%cKGtI&|~qAYR3f1^O3z4DlS!UE~ZU zzqFR|M^fKg4mLp#9~r{xLB06+Mw|jy0IHmTv|;BEq59zb+Y0;D1oMh~>U&-%s3qVO zEdaQtjsQyl45(bu7Pl_X%6rNJ@IOO7lI<(E$pZ3ywfroR-T7wLru;2O02c5<{s4L= zu)iYzK>8+Ph1I#9O$d8uRGMR(yz}3e(d9xhJ&S0pTJR;N4qPNkt%Y$rJSEllmS53g z>2{xyHQea`5rSU%Y19Z15&g=3sy8hEvhXpig%CF#@V6{S4kS3l5bzih&;X!TTJ#&j zKa!Q6+(3Dy4jT?A{{7^KGD0_b{dd$~o0thc1mO9WQZ^Xket*jc2|D_#1=j7l2WUee zm(Ia*U4gTEQdNd6v}*a)^}GvD$JnTiyc4b#h8Jnjc>Fuf@uV$D%_t zhVUcDYeDlu`|BL<(aliNVgD#TXfMr<`s8@UAK2w@+J5u%{9ybT7LO~S;rhpD$x3c|FcO)fyX>Y=--ak-zINvI2DAYmg%1(s;l_2-GMpf1 zqHxPp^K zQkFOHRl}mN>)J>65umGwyJ}Fm)E&Hs@Ck!%u48JE>&639G7P+*JM`Zaw8^X4@z&~0Qc?BiZhd|GU(71clXZF zMV|PWGer#vAMC;fyrKrT_St53T#seunuL;idE(n-5g{H0yElT}!4)%YdOH0qVury| zWiA6C)HbpzJ&U=-18k?pI5v4j2KGi}wtm9u43kB=3C_8La288q38BQ;Hnk?LO%j|- z%RNyw&az0~Tx{0-^6Rs)S#wfh3@n?b9&;Jy8k0CNP0p{d^`Or92P@rCyX*!bIZ&0xW(KXZZocP zX6BZc!#}K#5`LHO?mq>C%@r)*S2kZmt1_xB|8zfDUzs#T%IJxc8XO(R2@5))T|is5 zf&|bOxOqM^ilOW1;S6op(YUUOL51bd5n^0Vqv$L*dlj&0>e!A{r%HsF#lq1GGkO|}hXQ|w^@f5#Mk@Xc z>w`a|?!=!5@4~My<_#IHdm#=L^AwaZt93;76~lFlULZ|^jY+69-SGbufZ1JMt5is~ z&9c#WMn$k3lWntac~@eM&bSXE0kUm&|3E$+2b$~bag31SW)U;8A?I%*r6Hx?~Bib17^RyXotV z?v9f%Po~krO;)hO!g@qlJqtDh4uZ!62vXq5NApU2Tj0A2-y!%qkgANOGMB=+i)R?g zGA!7_ePp#499Wk4{uH=;eHHnPJD)Mpz}@rimTT`f>UPTJz#R zsWuXnfM!o$lTI)tW=8`m-6iYliMd$(22z;Cl9h<$?ZnHfM#07U7?&Ubdq85A`1EqY z{VQk=G)X28F%DR<3CRVwK8l5m$S@9gv66*&cu1znIA8&3Sm4PK%zos`G$VxeWPnNh9M5>EQ0%RG;g7^ zl#XRJ(D9SZrOy6<@x(2>z9@Oc9z@yj*qCyE_87m?dl-+q(52|eU@(AbGY z)3q9*)O=KX#a<*6T&wX{1(L{-yo7-a-rqgOuPZ;V6co6>s~9_*ssxA1k0TgaN^sy> z@3D34qHbR$IB>1^7{Be?Q3(!Q>pjNrHb*14>~gfQZb#8sje{;(DUIGbm$f4^6O9>x z_p^muV~+(*FduQ%Q45`_N-w^Z_4M;2ULz=FvmZh+wn$k4i% z3F|jNyb4#fK(`^8F$~C@I?TU=T?p$sU|y6)ZfPMwRZk>_eHbz@W>RWmDVL+DGFGZd zEC81ugiZ_9gx36EO~}J*atjMqYC@hrugR5Oye6v(Q4=YX*W@BBc2Hf|^6y=sCv-Dm z{)1hV%qxLJ44YOlY+8lkh3e6sGH-Ij%H1@6p(y zN^WL(mX&Fcq1GErkD}yfDRBf#*esB6DH6tN33g;y+6<&+DG8~0HF~2Ot0Hk`2n~KKukp{r9Ql^;!zh@r2~cq4qvt8w z!K0N3%u$W}5+bssrJXy1 zuEnUYu(~WTHECYPw=7L&_}}4t4?Yh*%*Q-%0@=f6Trgijp zP9nmm@!UE8i9VqE0Q**52(hfNV9lS+!IDh>d|v*@^Fk>kT|FW z2gt)Q#*50EmEh2t0xZUU4#ADr6gDHDpA{ktf#p_kbppe1JqdV5fgK_NY_5+Z*uJRH zqRRjq5$c76giW*HFu0F{YS6?BmgPRIOvTXZT#Op4h!UG-XEEMkHDYt^XBMg^O3kRX zo0Q-XQDPJCUrKPOZ!qUI@@oig+&7F6PO|ek^}kqeTk(n1b#opN{{3|I1j2f|)5dG^ zzgTY<@hR9foodofsY%#+E1Q+-+)Gq@n8JuO$5;m$kz{y+%RhPe^52aGE6YE5{(Skr z+KrRF&t{=Iiw3JZhEtZ(nY?d?DZEG)@gj+U9pptwttVI+^6<)ZXTeHk$n)ownXXi( z3suH{53fwHZx~@pQL2-{7}XE8_Rgr6v#y!o+6km$#MN0JIpZc+O%GTDAlh*@oe0AE zUftBlsDF_`-MHTD+t9SPoqzQYmsYUhoM%5NLqqBUhS?dd%oA zYkcQ$^#^_NAp&i!9tX2bXX?g_C6o$@N%0SW$VdN-;)|5hD6OCftF)jLAB%Q3HatuC z2RGm=tl|m^XFC%I@$E)wTu&w`8VB&~FwA+0xP17Wm%!zJ0r~@5Cz;PEs~V1Q;$Iwz znhVJ-uiD630~xk}dP71sPWIMkP7kG0Rfs(l?@XvL;7%TGnSi5nzFFsu8?V}oQnR= zI|u(l%O_8rlTd)*Eur4jZ=n84U7`uI>QBnAb`aLd@&B5c7I6jCr*(p#|B~ zvhFysRL0#8Ehg=vJhQs49gJ>JK z9qA^#rpzFQ!{ac62#5DF9Og49gu~7TOj~-^4Q~SoZsGuFTDx13BY?Lt@BnYkD3#;w zIi#n9fn##&AQb^~4+aD8EdcL~QzgP{D9T>Xcy&t*Y|KJjmxA1p)BhN`!|{;H{t@W$ zM<}kEIF$4wByEJ@{{XS&8#5K>rPL!I$qBs!EQ5l_k03alWjMto-g1wpLx>t=aa zBsZ3o5{9n-k0jTYLRX_6R*_o!m_U`YfU0jmADq?PXFw|#!PmHz>a5qd_5q%sw-(5b zxe&I%w0(`Y_F?q`qfE|@thDgfKB8V=)RQxFih6-*JUNvG=FeLD$c)l*?QnHt|Bpj^7&oRujr|e6zt-4yd4AQqj&QJOhm*sqFoUXk^q%tn)_-T#3h%!*c&7!xK$w!->URt!OB*JJb%7b+0=&b zo8~-@t;*;=>U|S7l+IkLb4g}qu;jbcC6kAj+(%t9dH%fQVM@vVX()Mbs=8z@TWX>d zZVeXRUtKtPc;TdrmTOR&O`bn5d}|_a_6t;aPI%#9UNo|Zqa&3GIxLbF$3G;Hw1^RsF6^`pvOrs?#Zwa5-H(H|dS!v-j`@g$H#qipizhevXWhkBhwbs@kN3gZTNujlB zqAkA2TYIA=%EL+vZ|#3~iE77dtF$)mFSm9dbjpLRRmN7`+P^L4t-a9_wE}q??F};j zyGzvVytYbfJF)V^SxObry#Z@^;t^GA+1Q3r?SFZAV{f!XeU7Y+8~fi~qSAR~mB#jA z<^Pq&YSfKoLmSrE@+QsOB5~*+(I5O*#W5vxv}qK2YKYiPLChuLEf=~7!KO< zeLy^kkbL|6snl1vY%+m%f)f@HO9Ld!p?fyO{o}60goAKD3TvXrn62bS6s0Tb_D3v! z3IiTK$Nt}>Du2cXmO!zbYR)OjKjHgp6eW-6=k$|g*Ns}+PvWh;5&ay`}thDgf{&(r;KHOjmwf1}X{#tAQ#`A}b zt(ty5DDu|ch<;9HrG>Zlze_()Ojft{0DOO~wV(3*s<90tDbE!1#@>j2&R~UwH}=0v zKQ&>EJv-^IHnt2ofEucy4Qp)C0%Emr_KWxU;w|w){KzDn0h5xBkT5a{_vhkaOu_5? znaR`5K1Qblw<$Oz?=*MQ2xZQjIg|Kh{lYJZjq?KvPJEC8TfyQ!#-9 z<;Ew~?;*89h9&~RAq0XTStFm~qZK?lwq=AJ2(#I`1!<`4ko=ShO20(#^+(iiE5rZ4 zIL5rYDaXd&CSdqC-NJ`orNbnj8Ow3;e{qcY&lp~r9I8zJu*#%f@EQ)|;6dvx#(os% z4-rS{*3f!7Zp7i^M^FO6Z4sO-R^Z_AJ%pv~)|Eo)K`M(LL}p9#SFnm1~pCc7>j!B86A7}OVi5VH41>5EgeIE!3Cu!&rF`vEGd^CL{Np*mw^=vC6h z@DAV40=Cdc>s>{uBD_2KCmJ`L5ZD(VRLpeKwtBd^JgfgI&~kJeYsiDJ@wWjiCBRk+X=J#L{KC3 znIBnKvd*zLMW@pFsm383RcXgcHhI1Dc zA5s(bM~7aNHEAFSqB#loS7xO|kx^qrZ~@w{f1{^A&FvXb``wl1<>(AsOFV#*{FWrO2nk?s zcQc`idnMfXyhooZ_bPno#Z^F`i+gk!oc^q`?lMH6pJv3WM*Vpp7R-=9VSJiuxI?!- ztfJWftp_|(z^`7wG%KKJa1n$s1n;ZP#uScs!0a=7@f~kivNr^?JZ9EpT1dVI`=pW2 zV*#l$JJO~gsoB*WeS+s$&BfF&p+r9*5mAdx$N^(J%VFjKCh$pLTX50cTF1PbKNsBF zn5)G*g1d^+c}BE!%jwf`6p>=eCBMKQYFIkkl1zn9gyAJ|Y{T0T6ImvUkpzCLM z<2NYM7Qg{RJKo>*RM)hpvAkozH?`sep7sXrzCb!iGRb1t+r62ZVsGJ?*XbRs@y@Cw zvPQ{c&>=`s)m~U_)H>^6)le_2PKen6J>zBc^euuT%Il(p)%R)3e~aSb@jN^#ko>+# z9!?s|!s_RA3Cc%^9c+yG0TJJlIuarxpamqX&eP&Sm6)w4zMk9Hmw$`4Z!PegP%9Rsk1qwdXDBC1cTL9!LlRA@uHme=q!?+<`m|JbD@RU?40S*n=!T z2eNeK{;D(%(ZszQ6z?eRg{e?h33{MXD5+F@uP`6anZ;k!gz-EU$TQeGB5^?522aDJ zU8Aj5&+0&LK=xAxJpw50#Opevv8RRzdJQEf9kW1k_?IQa z&ud8vU&8vTMm3>4Jt+q2ctdn(MuMA;TZ|G&c3A^-wuBen#!>+a#3&I6QPLEmDT`o~ zc1-d0geM;dKtxk)7||@y6gqjhIaf5lN{*IryiAVPa4aQ9CpebCF}X8P=CNA=zMF%A z$9>Ejfp4#XAH@+S^X9bA-=TsS)e`p#CH5tFl=EewBxfmJ+aasIi;(&Gg9P&kkc&H=yUPRLu2f94*|sxN??nkJLH`cbe*mM zJ4`~)-Ix*_%|n>&?#9w$mNC66mse5#WdK$PJ za7P_8MFnpq!4rDc((uxRL5{#AaqnZP%T%a5Ln*xur8DAzL+<45faq!j>mKoi^h?#cYC*$12A{vVh{xh zaDs;f!??%11nq_@d;)ylmiY6>h(vcqXhiXgj~md3wi6R^g9Hyr(OasR`hmy}uirzF zllBNL5CNj1O#FDA3lTzc9WJ0ClZ^Za*?X-MzXy_Z_$dqGpjO`r$z4TCHt~>9xvh(k z94C=)(q`xmzQkNR@%Gbem)Ycg|%?&-0q#K1uIRb%! z9<@EgGi&X4QRX|9%%CGUAH`&%%%Hv~Jzm#}GH*g)Fmo!{f}Rm}7|e>-)dS%uHQVd1 zP_hz-Ly`LsDKA7I_(3fe{Q&1@L40t-^&3>4i6HGnARbo7s$fZ^*Q!c;BVY~GYjJD0 zmfwGdqj(J2xDNoLItBr~qX44)h{B_-g3~Hx1Ew)iD6zK1OTRIj1y?MN({XD$Ee=bO zT@XrYiW)9ZIj(bfxd}XLPcry)3~pyb6T!6~jQuOFjepnMml!_SYi z+-Chbyu;wE=;+=zFF%;bW;J5ZMPsAv6On9+W0Ny>*kC4J%=#+4{zW-1K59nT~}PDb+LAa#XryDYhVC4JRbHR-VEA*Sj6l< zj6hOm{{i0X<}0&~5U`U=%fwyuzj{B}#4-hr(n+7F>+d6SDI? zV;LAT>?FrSSUkyuHwIx;)m?;G;8a@xFvrZb&UwiiVKMEuVT0T%UL`x# z-=UMTJq1QC|MGPT!v~|s)J1C^_-Hb0_zIqbNXk}lizjC}NE)Oj`-CgR4mnK4_SYdd z!P}%W?#r15UKBK2``0KN38`ttESTj+*cdy3ZX?XJt zU4EjzQJ42eA$SQHbS_IY<9s~RpcqEL^Xnp$vLTF_KFIPsYcw)S=es#~iP4j(H4V&1 z_g4uX+G{J_U$7i~Ke-v}d+oxEyNk`QuhFBuc<1L0#gKvA8`13Tu)mX_{ANVG3$d0( zVj?`bIbxBKHUW`KQlTCG@b2V!WPJgf##+5j~)5L zHFMt2lF&s^;)97tdyKDXY7HE=NUNyF(4eqobdh?vxnP8aI)Ea_8 z`D=We<#&tzaJ($c{**3_L1R+7W z;vZtK;Em5gw=bc_YfsTNjkEG*1frXb;?H2(yWo*p<;Vkgx>No%zuxcb30u)D&VB?2 zw&WOemsrl2EZ7^R2eNn4>4&&qK7|rslTx@Z%wp{Ln)`lVE28Y_d6Y)>t<-jvD zZBunn@f=-zer7V}pT*hmn5`@M>u26dpDQzO$u+bno(Y)cQ7qkzeQ;j&H8ZZNhIGJ2S}V zjqC-Bzn%Db1?Oj&S=|i`#ukSGEDPDdAQMnv{d&PEue<}cYcS6Mv$s5Tz!m>l2x~ru zM(bHf{#-S-97jWXUN>QNITo+S%f1I)hV8{DO}Tut&%}=TXIzH}gSaOj6+2jh04^Gf6BhMfmd3u)7+klnkL%A4Wk$Y23K;^JUDw9{@s8PuqG-yWaTaLFICbY_ane%u$ zXzrYI0h(LCUIR9H9cHCp&e!ob&+tB*y$#v7A_f|Uh2%rG@dywU_88g#mYpbmy`4<+ zq~}z~PZR{o2~>csuVY~w59SyzuaBo;{bwIQq=vzS7i?BpM2p@cMk+{?>Su-#m)%a- z0{Th$(VuwVW(WukWg8Gaf2gO+EuPtW3*Ll7y!`~MWW!bv^qEEc9VoZG6U9~0G{j_P z9SZh>k8FyL?{cN4p@hom00Q>Rwm!Y5i6y7OAQ6o@geU5h>nnKT&g~Oxq zXAtQGhT4i}b_4qZ?9lY`0_p)m?0p1})k)o7xfY?Y3>qLwMD^#T`Tc|M$!keCk69fD z0aD9<_lGPhc>_Ibmb@F20>AjKZ$KRr?!#w=@m*h4xnEYf7pvS0Rc^AaLV45r+___L zUUxXlIj9L8Dp1y0VPYMAKU3Lva{mq#jS8e`HQvE9%HXOAj8!v2(wtuI}<7xRZlJb%|2U7b!0*l-o z96k6b+IuFZ01T`a&x=IJHPmU`FK4ji@wp12K@NYI{yEe?*xpfS>qYT0UGtzvfZdj> zL|U6cdchEe8{jfB3Ipk8+7sBd6?RM8)CKQdXQr)9!Y1s+zXA7zl8Uq^5ofDR>(dh3 zsvi-S)(;veg;{COKvXZhxI{_SAAz=&Y0YEtdENUd3*C~|xhJJr0AEoZ+PPvWio|q+OG{CSMGd!5m0ag=yjav=wv+o9+yL(-8)Jko zkfk2R4|k|1Kz(rHHpoyRTOD5!c#n$Kd(epSU?%9jGXBzY9%l3bIp;36$4P^ph+eM4 zDnxGUNX*A_HhCs?9B~ zGj1#|iJH@#cCK&T$?E^4RhpNCCCo3kM;j>Oy>8To%p~wp(0>>PL)yXjR;^Pr=UNOE z1$X0yy#w&2LCa-b8`KF1S7&w3OVZf(kiKP2wXV*Md@VO^~}jDetHA@0hIi03`%ZF{9LHKA*%9h>hdniW0mrJ zO{Ly6;@wb1G6ZKUQ!K#ILUY9Tc~By7-FUJ6By37$o}DcnrhUkcweS)uGZe( zIU9dlS*67eL}2eEEg{FirdfjNG$p~#^DV6H^te@GVEw>*de*5!=UVZWk;g%MBxycn z8fxfLYCnuOk>z2n`N#pCtK|J4jj)h87rVc)R%sojw0K&$@xj}^Y<)EuZnFu*Y7#qZ zF>JP<^z|&Si%6+;H+8T2AT#U{!9)N&kGWC|w{&vk2C46cKF0i-SO8!t3vkTNoX!ailH4UkKO=Kw_wu zTiy*@GSlIy(mg{l_{Zl#keVO%;gJf3-wntYz!%WsbwwU~9K8T>IJFz?n?yq#&&Gq^ zOPpG5HT+OuwMvV+tVDw0QqP9$srI>q%XL}eIg5Ww2;Z#|YoBx%>6gfbBv|opG5WXK zj|SlTK9N7bG{lCO>_A073KT4U)QDyz3%Oo4<<8}P`spv&8$i6&%_nsy zNQut1i{OCzpGC@_Cbx;u!c=DdY$7ZL-!pZ&rt2XP*2wevur*tLEG+bKCG@_q&`}5t zhx-tWDp;fpEGq{f^YSmD?Gd_wDkCpTCRChHZu+O9nGD@Rc7&@%sq87KOlX5h(Zfg1?Y-dk_F(3n_?-9$F*^r>|wU<`(B{qOXSW zqwO-Mq;eXv`sgqRG?fuE&Tl)?-UTq=JLx^h)sHaqj>V)#0nX;7N*r5xI@}L49B8V4 zEE!1s{TRXmp3)U6Pdl&5^AEM>OqnX?n;j~T@V?3uu~Ox^{fNp_s`g~Se08t}cmG}G zx$j+-=c#v8p7qocrPgU3B5`OS?#BUAshx>nPrJzWH3fWt0Qm*nA>ciIHY;iHno3_TE_iC-rm3c-$};lcG0EZFdNc<@0U{4$0}4P-M9z8U7Z z)xlrz;L+>DgWu%AEw_gUyLs>=bg>%9Gdwu6QBB72;AyZFu1=lKgT0M{Q+V(bhr?4h z=fR_Z7HS}uwXE@vV0_iVM|iLuD5(zqo(Hen7#_SD!CZ%r^}N)K>_?Gf&Y<1v8QUNoy%(tmhHv}$_3|%LD zeX)%GtL7^nsVQAaknO)!If$6hKi__5nn2lv#oK@@cxn2Ayc?Lw$Q?;REuy&^w$ve( zX7I2oFh$t&;Qq6vr!Cp;6M}0o(q&7J(#cT{Dbo}*l{fwhDV)@InFcj!uEN)BX*JOg zT6@0CH5w)*+E3(~4TWv(N5LY;LvAN`$LC)9KC{?#4~fZ6X7vRQC)~~)3q1^(Op<47^>~<*ohO?Q^YS7 z*2T8QM2N=QN_bl61m31~bw+Zz_pQY1!oE;T+Hb|OeWmpe>l-mIZz5jd$B2h6kK>%! z&sJw4cxVVjH!>btyoL9W9N&(3a#NQi-`8|dB2Rx5<0y4V@PjJhEX}2X&?3vzRSUl_ zMcGdfFK6B-6z1QguzOa+Cc)DS!=|u%!=*v8e9vLFk_oImWwvcuhI-rW zVf6!(O!$cRy=-5Q;76>@GF-BI@p=j0Z>8eh_adI6#wwULS|w&f4AL5_lsO*bZYyA0 zAlq$xekgk$ibx=3aKAhNIvXsB{V-)g5S}1Gk=Clr@%T`Sr^)sP=9o?>8YkcOc)cId z)0OBcJoKF;mT8I-I!#_lnLLwcV}#_WO^oqq#Tkz#-D#;gAfMdGP6B>2O0O~25bp!i z^O$JFNUW=X?jUDeB2z4H+PrVT2hb_{eGnSAZyhWOOM&HOE-^icX z$e+~6pWMjbyOF=Y+V8B?TMTCfw~ftTOyn)Zl6qp#;O#V$=UJq?wpps!R*3qAKaXbj zdf!7b`B@ODDqV*w9I?GA6xQS56~8m>&HV@yTvxROp~I=m3cjC!AIwXZr(kE6hgsPs zENzEBL3$J1?+GqO9@!q#i#KCvOf`1QmHcGvH8J#;V0#2FGM3@dB>BhQP?mR}utRI8 zU?-Focge5ZLlPLlRzT+YRR>g@q6Z=xLaHn= zIZK?bUo#TWK!-rYE6%a!Sy%>P!BKE>60wrdvzKBgOI@dA(R}v?I5=$^Hm;Q zM0@632@p*43yqMQ#w$gw18m0f39fJ9ln)-Dp1l7T){|ebW}x*Q{(h;624-sUk6SD! zLgJ?9UA-i12)2I*l>aeF@SaJ&9@Mk~w)^BxiI}cvmD`8p=yakQZa-x`gg?Qo%X!xJ zO4g=mqI?9(Oz1I|n{32m6hlj=;2wh@A0!%n`9bs?o-M{^_C9Eq%Zv7-$Z+laF#6D# zze==-Ta4mQIK4Gu-_;RHR;X|BlNbd&5sEibORm6P`*-+WK>fvnYS9h}<6dCE&A6(A zqdd^xhO0Vua85fk=p=5^TZ^tb&^5L`!z5EzjdM1P)XPjBgl9^nY&_^{-f0#ap3t!W z{Qi*;Y|vS^t-?15JvZem8sP)-p;oN(?8ykrujgS~l`tsR_I+9jTf@U_ow1ZPZD^vA zCk#+F0;|v(1pZ!+z%LOf-|-70pS1``-N(@FW;7I4Dr%TSg1ADwW-8ft`r0~YkA`Wr zGiXGJ-w<3!$wJwragXOPXSV3+-~cD7knGs6hKZULh*Z{sVjMKsNt;1-J4r zE^2K9x^ET0A9{}jxKpqjTlPA67u0q!Rq`%2A##HmV(SH(vzz2eo|(z)ZA!w`PH{~7 zhRcWnp_cuC4=)MN94YSv1TMEiiR|?RzW&^}yj)&h^q-XXZycQhudXj|wEW0_C~wqA z`9~_ileXppP$#B8!>8xbz*pgKynhTd#g-W)n!j<$*-`2@!|zQrwwpxV8GPmU&a%1Sg*(Ul0TQb8=SGdhcKYyM8p60QkpRrM5LzEZgQslXS_X>yi$o~Z%PKlYAR}C+N!Aolac$f}B zehf$|t*08|r~|ylodJbRJM6R zMIUH>@$uiy$NyXt4eJm^-X`v~NDKqS9n_g!gE(-MD7AdMY zID8>`f%m^~U_&yf=UG7=hM^$FlmCEhcnjNyBS7#!U|BhFfF29+_@5Eb05fuk&#Qf6 zd5>Xp3!u#@u`*$oy-SgN3&ADsMQ{}%6W8t2!zC{V+r+5-3-GZMutYZ9YEO~|=AX{W zm{T-8gL12pBQeJyt%EII^%dh@~x_HtiosC4(aH17Zef4%| z)_|jtpm(c)y_R^ugl*zsnb;w}ETOV&00N2V_%wv?L3#+;`7ZP*PL1VcDh)I@3BvbU zG!bpJwXjJ2seZBGf}+l%s}0dM+;~ZwH!U(Ce&MHTQXHzFu>J>dMhtDm61+57vX#zn zXd1F){yG)D^7EEZ`5*53&*i($gv$3n)~NiO8kIlg&&y}}19G1~DYcnWYD_@dgvWaL z4hKh>>C*zu!+g9^|1x~t$~dF*)W;it{LgJ%d78HoHyYFKVQmbIpEo5o)WZi+^mNk5 z!S4sNuo`-%`vVE7k3;J#jjxrDujNn5?xK`U3IOZ z`T3BXjS5uix}zAa{LmWGUP^0DWs+|1r{Jx!JZTZ|`;r3d6$vdYnDt2LJ*gywoD%Z( z4~TY>;@W|bynY*PhbF7X-&(~sSL`0V<2R5Ch-&1E3Cy9FPjW}R{3~;;TM3Zz9=J*D zu#LiK|IWqzYy4KPKV%tB+j^+_<3{`UvwysQ$C<@q zwm#GTeQ03+4rxqi|32S=N)kz6`}d3T^G9g^jwG~yABz3^#lZf3sIq^D34pJ>ti{Uy z{jmwOe;+y>fT%;J5Mhav55~h+HFSy+I!&&lOrA-=umiH`EA{?;Xj{I2@5MsrVgLSW z`2KzINHOW8WdEND6M3mH7$vBG*J{# zRPaO5jOe%wc8j9|iJd6zYa=rwF5~Dpjth<(?hynMKoS%%2qFjquDqcY5R_HZ|8sA> z-RWj=<~!ei{&Ri~>9^|EcB|^vty{NlRY8-{9&$4xtrWkMA?scH5wL{k@Asv6;*BYu z`&XoRKAD-~d1_9IXXgVco^MlgJ924C$lp^vCoW3~Ip+QpkJn1^42z_A{v|bWu=Zuf zWPK)E0YCo_>?Z14g>K9MVgT%KFW7^|{@R$1Ep`Pi7uRCfRq`=xD6uc7vt7z~5Pp!) znUBQy7QgWS4+HSVsCViX*2)b>sfP6^&@m=uXN|_B%oU+li(SoI;2rfYn~(f+M3Z!W zm)L(q4&#kQrq!Qh6LQ5z4ArRXX;R8&aFwPniF_2WSl}mgXrZk}(3nN2eHv$*RM7ZL zN#Y)NaGqU=AsvPcIU1!SOsObx(|h%5CMe4SCcdIPd0Viny4vG9MqOQT zb>}v?qPzj_BZmxBSbtyvb)Amue0#t*QsR*7%d9`-<)U8+UM>5b%j2RnNosn3`)9f- z>OF>!n48}EI(;QN!eV5t+K^XL{5?HI({xQS^%;}mY*NISP@9&4J@YClrNBO_&{<3! zB#X<_vv|&A@hl%HbpLCnPzvlTu}@BqeTRvCv{T?R6I%*F2hKs8vfAJuCE1V7X*Khk zWQ9&44@)wutX5RY6m+hnSdgB=ZBo4QFN4;#Eh%D0VIZ7RVCX@NqTKJ?g|6$iW4L?= zi~TM3Lp@Pmv*9F7oh{j~Jc16eCe^|li>#a83%cw&ATr;0{S||;+dZ{3GA>uFTf~a^ zbdewJe`uP!a_oo20oR=6m;(5P^w8~T`;i78Zx-Zx}eY+QWVL`vv;_Vwug-1iVpX*CB!a@yeK@mH1ft% z>T3!_FOEkVRGqr7?QL24AII(tf3YY3<1~4+#2Ub>zE8^BT4DuPqliknb5h)>3X<^L z6gTK5;aHL+-2)wWAiMy5>59;!bYt*@l4yt32b8b+Qj^Znm443ye=;RvRD)gd*X#iX z+z@yKW6f27833Zf+Gy{fi8xg@X_XjcFN81j5kbt@nqfGYa$d=?m#OE$Jrg%Yu)cKUTZCI9=s9ZwV=czeLaV2ze~y>4UX^>ZbJ2+%4Idv&bdJ1O zmNqnord?v_dup>&VL`9;S0mO;K3TUMC{OnrtSLxlNUSsIBzd#b95xEX7qb-*`drlB z(+E+D5y~6|WeSCD<^6Kt8KF}R6=WO<6>D5l7ct*n%s;V~sd^iO3T5L&hc&nVG)n0!f-sC#C2k zQtPy$r?b%$2KuddMA0=U3n&cB^e)etX zgQoU4&g|Wt7s#CWi9*jO0cXduCoXwc&J=QV@3#3YS3dmKC1zk<68fF+!t6lh{tB=T zKEVoM5Td#0%LRdKKM0H3r57Y5ZE~za+AcV`l!!J#k764fluljtP}T>MJ)-A$B;P87fp$BKQ2| zm3#l)8Pp$qnuwKqF&bf8eYLvPICk1IRIGCESu6zH51s%ULv7GB6c{$})rI(-GThZ? zh$p;vsJpr^E?*;gxT|~O)U&)=lH9Q4o`y<>9K}x8{h(gs@(xJ+BtccOnN_)0%yivV zU#Q#I#D0Ri>0<><{SB78w^#1{BvHLf^oi*SMyP$JHIz@?2n`vW zQn|OJ8{dhQdtd%7-&6gx>l1L@OXkIKDESTzSdG43{@$;5V9o*9>_gjyl>ztik~XGduS6Ynui z|2*aw=X^NJ&-U=-LQoDwIP|bfy?*t!k*#kDJy*T0L~AMDA?nQ(ZV=?AIsHQy$(K>>j?E8gpcHPhSX?? z)B`*0CBbnrW&;slo!WzW7wE^cP(K|P@safrYpx?lGd)DTg&RZ<)AYt(m}J!V^OXub z%K)D=z|97DssTm}@M8l!!2p8*Q}!3GqnI&Gw>D=@W^#gvoXXLwC^jnAZJ zci{XkXH42{Pv#Z({F#I@U1E{+8?o0B+@i_M!ej=2*SRl+KBPaoOC{r;%LR|9?+Qr* zql}Mfx`;FjQ%_^GoX3#;v4B6)3|Zv!D7!f>yNS%u&AZNGkGVAJ%HtF3guj>Z=kSqb zE%y{eK45OOdz~Qr8k|uL4xXREIMHJ5y^Z_ggELt@MJLUiJrJ@+ZH!3p^s4>w`r?@q zFEVBp$7kOZb#m#>eWGuAd7i;R9w|S9>5$WY=85t(0Vq4AzEV}O|K|u4%6d}X=A?|U zgAo0n5h6fb|1Xh3gEy5#Cl9l)R8MHE=#f0l>!b#9jJFG51?>bhKQoE^V1s-<2YzQM z@+SH>D+T#k63=h7i4@l`4UW!m&nSLR3cPQJR>Gc}sDvGAMjfR#_4-|9_o`#yV5PxV#%u8sc z6N-sZA$s(#?kcod^r(rmHFjj6UW=}G4Iw6MoiN|Eng}&npx_@cKN#;ULI@asP{1Q5 z;M{`(CYyl#g95HI0l5bS$UOj*;XWwf3=`1&nN&0tE16?S@%=#o80$*F`hx;&Q^5}p z3XqK)Qp`Rm;B6D|!a)H~n1DwQ3Xr}etNWaQc1|M(ZvlAcfxs&O-gF?aIECgKmg#^w z>wp3C#})fI`Lv5MBV-5lQK*odj+-vq_r+r_n}Z3Wb1q*C#bka0Qb^LCKKP)E%jYD> zaZ@NiWlSZ>VIc8nMXAY1Nx~AK`g?44ntl?)ovVr=+Z6lk_($Qmd*ZQht!T#+w1n<; zva90`-!&R_E}Un^n${Vy({bFlR#?2VD63(l{F+X20ig z60xnp4dT~ANw0STMwt;%jSe~2sNS$ zjAJqInZ0#oW=7wIle?E>*0aHJ`)QHS;6W;Vo5GtvLTi)UR7&g@>v{JP!%YKRr47)V zLQAc@I?d@dD z2$r2uUx_ryI@)jg4lI_}B(`5#<|B5LC6BQYLaT|utQ4EvTr1I)p)Ta~vO^=-HFL?bBkJBQ*JFKF8;2Ej1T$L;8BureAF0_n(@ z1{L30U#HHHrbiX~tbhvM z4;>{w-4WYjzxK<1nbywdu)JOEgmV$@IZp6jOmKg2c|MWNRYc=#isW=0DmsG&e< zff zAW#;i`h(bW{Kj9wv=DTc#20harC78Id!aQP0c%VHmR0WRb|ev_vp>*{O_%cHe=}3= zhVf>QL9sQtE0Kdm_;Vk^vMoHhYew)oM%2gn!gq9~;r~LBn)68{F0T68U6q3a#GYLx z6l0ItwkO`y$$(zsT!Pk(O65{1)YNUAFVtK_y``?t$U8gV@% zp_Z$od?akXbVt~ig`XNPGrnf5_wlVWzCFgrrk2FqVSKxd?>pn;JiUZ{YkWr;-zMWb z*7!a%zSE3vmGN;bSkf&wz6*@6!T2sWz6Hkjd*gf0_(J&NjY#)11sruv?!hPGI*U-U zlMl=4GlbhjJ5J~+VI7Y*Ve%nNPD~S4Zo=FqOg@AiZNjcFVf$sfDeRLEVeL%Vg(hsX z36l?D`-RsCH(~N2Opc?H?j#fTq6w1^VJl2nPZRct36l?D z3r$#O6BagM@*(Uk6V}Fr-D1MzL)i0a5w9 zE);9`I$GU1;y%i_JBYijac7HrKZ|kVXNh~8ac7A8E93r|TR&u zi~9}Z{!ZM_8@Da)$Bp}IaX)C>o5US9?)BoHXxwYWeWSX248{%DcUM0o1E}8B2fzHQ zcm2k3VP4lO5$RPE>4-#7v_}z}r1h??{K~($=Ox)RwS3F?*lRxE8XM)Wy7YLgUO0pA zOM+%s5IKLBDl+c@Tt3}CSq$Nr6prT$2Njdtsy_&ITZ2li+X_WGZWH$uYxY?34!SER z_@TY)2Z?Z3POR3BiIenS@lB+cqulA~UFqrHPNqL_eW~lM#Qx(j2HX|PwcACKXC}3L zG5q!k)UbM8WXvjeRg@Zqed|pusUGdN86VS-NQ+~bDAuU=dpW@j_vIwv=LXSWq1G@w zC?jN-M2idAyOJXSdd-AW)pqs~4ytx5aZu5H+Y=QH)fPp3w~%?g>vAcdf7X~)(y7nk z4Ert+pu6fZJRo(xVxdS~4^o5F`@NnHNm+0HukpJPbfhcnYs3M5SES?jA-lfyuDSfm zKgBQPi5=sgPanl&J&P>g3xv^9ZE-%0lQzDOk9{1QVA!D<@ieL6O|FN1b?lf^J5i^p zbs*_3l63b&dHGA^`u`aVXp5;Y5CPWwSE5f{VZAw3mKBj5eLr(g6BU~i6A21E2ma`V z@q)FJ$3`~p{xq{Wyr4P!ZQJ0{`7QV1$ucuuU(g)d)pu`rU)u?19w`6FGW1ve!gYHJ z)=pU)utsIa`Z6khUh2q}f8ET@LB|96tfUqAdfO~>0`4S$y4?o;b|>nF!p0D7QeTre zZ_iy{y3rl>J^P`yO^gb$e=e(T$)dkxaU+Z4{3SHZj0GZ7Ox;KvnkPsKn&%H8!sx@GkGirUTL9y+#VGEvTe|lkFZ)nbb9Z0X`g+x z&z|t!wiC`esC_P^eM%1V_s7C;?H=-nc@O0Rt@F1~ zQdTxAnGxSA!+-h11K@)VyxJstO@r+d0V3d9zMjO_;fOOYDW)bNesa;z3Mrs-Y0&J~z9)0YR&H%2>>i*|$s zoVj!6y5n0RGln`D-y^&w&e2*f0PsDoIEYnS>;tE&xynw5OQ8&-JUL>=Jyn6oT7Qk3 z2K4KFJN7u7v7&c%)D@xaY1Gzbz#=H_uA_aE$v9Htq&bZ=)UuORw%#APu*3ajpZcd> z*p?dz_hfckfREo~Lm{j%y5N-U!@P7A1 zR_Lyq0j0NhWNjckxFI8WOnhN@e@vT>{=6c=_xcS)f!oVZ9S!8BUrzOqwnU zxV=pfcUQ^I3uCc$0^aDrW%mX64jNQ(s&U}w8u%9p_)`wNtARHr;8PVYSh=e@o3NTh z*dGWZq(aKyCA1awK9vX?reV1nri?J^wGv?ioU-n1uW9Z~z`Hx}i3UDC0nbu+`Rv>Z zvl&b|7bn8(t)~8^CQV@i-sr%627X!sUgN;K8+gwI{3+n&?@C=Lr!sU(tdIC&dF8XS zGnkiWXII32BXy1C@S78B&+qhD7QY#h6$jBtc_fhKkYV+o&}Ts{Sq)IjoQG3LZr=C% z<5jiqLY+!-tzK(&P(D)wZG_<16tC7bS=6_yo@|0nHdhJdP9z&vE@V=DFIgq>h&nV| z7Z{fj7+<@x>>5l?>H>95=WsdH37HKy)}C6p#M6n z29wqFNMp1M7uD5GNJBKnwc@F=#3bAlc9DTy4}5^I&eq|R;~-qfokII(O(Sd~ng8o8_k<}V>Po$~biwB`vj#74cId!B;*!aj>r z-E7Cptur@4XWHG zS(FC32FUC*$S@$Y(jaF8c`gld3Xs32L5>0P7XxuuF-4=Gq1CFoY18{YU+BzH^`EQA zR=a>UzjB^p_}()KvMLVuyd$QDe zvrbav*NSTMtU#o=BGy%>x0dl#hWsU=JxXMP`a#TbxWmi#q8LM-_<{?EC0VJZ`8SO> zT{sj(TZo|QdLCP$P+0DXip5N>m88#ZD%8Ec_>Z9Znh~6=bvwo3V|*iw zuY>wrp$;S{aBX1kG}PI?Z#KTj5X^bNLdn_}Cj{7-iV&6ncjd?)m0c^V4{J;X2Cgvn zjnGxxBlm8QYO2_KI8<92y-mz89Zp>0F8;)Cb;`%~^OJ)1p^?^GdeqvQdp#A3T?=b^ zj4bQ{bI6-R3$?JOE<6Je2v4ejABo=Hj0&USc}T*Me^?H1Sy-?2$bx^xClrujaxUDp zI5S{!54Q0~$`~zJX?7?txGXE^R#BK3t%7aJBbQ}G>h2%TVZ`F81BbNsjhtFO==|(p7jtbdQL=+aC^T|@Hd^6;^@Q|}EPkV6yOGn{og>M{ zRJf14U?3*KeMG~1RUkT~Lm<4c6Wv>C>6O5x=*O9aN-do>O4(#~7q4Uzqs^A{SIghp zGI#M$?sv|1zkRyJedqFcQtM)?lb!Vj#}FxjZVSk;8Hoj1*Njk+U~b*oA#>OKj9h4| z<6Cmak3=)KpGpT`L}P&i;_*LtnGoJm^9>)h$-DqN&npWB+d}KE0WqIc>33Pu>%N_H z>7{A!!hO~?og!C=64c8Ct&yPH2%-a9V*}eXoGS_Px#zx1!5;U}JrNAXuG>forB(k} zrLvhyv94t#<-%ei^gyITW7u~afQ-;Y(Vm3oieQf!_Cxh0b(?9=;))_mFs~Ux;&+Gf zBS=R*%jO|yMqPfyD-;`lgS462H;Ib3^89c2BhhoQ?^ZcG4>IU=_KQ*Y&zCB{@m0RhrOha zngg`(ch!HW05_&-Iw~{q4Y)m8Po4nbarwK@^oWAOKAj>7 zk_BnJcSjBOZJi@)WL+PhL7^%7T&u?=5`_worCi|~_pF$GV3r#zQ?i_`!M?{^vfT8^ z9&LYvY&S*rXNhGEW~VqFYzrcHn^f0nsxeJ3lO#?4mHI+g?@Kf%Nr_2vx|8HiNs^S8 zC4Opo4;)Zl7nAs>*;4T_O}@jFH!`KXFW!}U`xZD!+8G?+qd^i zI@!Kmu?ndtv8&m{Xy6WYsg%14)}V@XJt!FWT(1Qt=BGO=XyoW!!_55j2jd%oR^n=L zO2-sReCsZTC~Zo>s1N~;rL4=o;Y}Htca62bSSLK@u7G|0Yun>iYsT}@ao9u0@shlt zdmYxc^;vbG!aj<*O#?gvLdt-N( zhvRK07x0@Myqw>h;AN6XRwVA~dn6iKg^bup0cJ~1=lF8?gldXBz z@JnjiN&Mc_luyr^Z226G1;J4@@Nh13(#bF8s$u@hh`8P+UZl3(^$K5R3&cn*x~cpVXBZ+mb1U|-8~CBE>!_SpK2 zTM%Cm@mzo(yYmRVd@x1eyq{t)w56B>UGz zg)@u1L$2;v!kGnL`m&8B8-=TV1=3#ccciy#gKmGMA+mzE-cA|QboF1cf`b0vF+=U+ z6^zrQJw|f>y%a@bq>Nh>xlf4~8RGK;w3t0|4YVqgvFt-~Dn{0OuVMcp*DIOxNSz4q z*JDsYbYgH4iMfl5BfBEqBbPO(QYy%Sg_wowR-0qHXfNt-{{j~IVzQDFy{YTR z!rH5(p<4Fq^vdw_9!aPjQK|Xd_llg*(NES``<>1QZ3INS%RUe3Qq20!jx0VNm7oA5JVP(+uz)%9ZC3TH3==KL60T$Jpy0c)s_4 z>p$@PUk#it_5OcRdqr<>O&iZ? z>F4}<`t^rM|DW(v`zJY%fXyNTF;^iEbw`Sq!bWn&*K&^#&m8Zbg5bZ%8rmgNysFfi z$VT2R1LsTs+ArSxL)<<=kcw!fbcQ+ebzyLK4GTmj&9vYBlgdiRYe=bt$RzYz9BTbD zFhwE2wV$I{HelshJWKBXDUF0`c-X!+)-%z+nzpTEVv+S#nsw+|8NZj9VtUH;ua|C+ zWx!pm6ym{U_9*7Z*kWU!%MRpNlFqV^H_=a*16Y$wI5M}2cdOwSvd;UqD6%E)dF(Y^ z>P=fiH6wK;nM?hB-=DHE)GRACj9vVZ_elj`dywTEG+3A@)w~G|v*IcpJNrdh zyD(9|I*W;V_<(}OB8$3N)Xlo7cGB5RszmEmK^Bt!R{NcoWN{g{ry#GxgfCEFtCux2 zV2@Aa;(lPatP-W3)XM(iRVVl0Y+z&EZ{Oy&JH7y`d@*Hyl9-^tpz_B*i9JVk?Z_&* zGj|K@#tJR9*Ue=2+BBWJdJu%Jh4*$a`hKEdL<82aJmEZ#X0i!`p?%FCAf(UzJ7L22NmI}OanJX!VlWk*B7{_9->QWN z&tRf#p-exd86BKqk6X{Jv65r~NtCcs&(raI`G}Gz*DpkhYhwda+M{gHEo0qP6XA=R zcm|2pQH4XQY45*XY8b zJm&+RGG$yPz@noYc)N^z!a=RO}I_e=}X4xwjsQ6Hp`3)-V>15)6kMlPfv*kzRi8nq`Q@!fiGI!C>WtrO? zqc66Th&x-vQ1G!|CYIFTc+J+k?bVd9KRaO}DN)8c36oWaqzgG=d+`&tFg5IQC+uqz z_F`(7&k6g;g#A^*L~@oqk9EROmPwwK5++i(gt;_K*X1?XI`IT(U2J&WS2;!PcB({< z*m2xzyr?sM(B+$gxq~j>9z1qXH!g??*S6*&^Zo%}2PTiumzp-l#ZI-&F&^beiRtO4 zH+2p5z+zoP*LrC?--(ii4*in>wg-qQZNi=*QJy^_CH<`?>c;mqeIJv)zyLo0n3mpM^*3rS z4WWh_2o=2c^{EUB;Q$Es`L)@=fP&>;d-KFVW%QJz2r;Y4Fp+ zdj^NPn>C-bNBN1`0u$emK4{7|)p}8V_P#|_QpwC*1DDQUTiW*$@=vtybd%A1NgDNK zo7}q@;J*RVKF%>6Lm${RSeS{jFCO*XqS1^b*ffdA^{%@Jlz)USxd_JQ^?)wbIF;eB z(qd#3@V?NG!k|5b5Fn-lw;S{a8T6got_K2){nMKCqiuE3n1$l5Htt@Lh122Z1(d{R z8bArWo^NC!)6>`DyF;L^t@kq<8d+7RR>?i(yi>w{jIQqLp9g1WWiXp0OkiKZto)H* z>_SeE!`P~^H)pW)D0_hnS)miuF?0qSPBm0uze%3pa-suTuoFIruRa(R1XdE zq{fUOMmFBZfzYB2lHWTfQur;6)Sr8QiEyWhu+)A`s}bsEO|tH_ic~F$Qz|Bb*^p+HRASn=N((Di`FWrru7NlX{^^o#UkD%|nt!UA51P z%+v8*`9%M0I$#Ml8BDMp|1Ln(&!v&mOC$M3mUrD$F|DQxyen`euTD%Fu7TuHS`2iP zx_EuOPKMW{+6;Hq{fXK~y`Kp7CkYy`N;-!N(zwbZ>YcO(c;_TM_*?sNJhQc7_4aN~ zsZ9h@rBX7ISPmXK$FAk9I&COzHP#G_<0x2eaehui+*PBIFQA5-32l<~Fz)YO$Nf9w zep=k8;!Yp`GJY-BhWk?QKh*Wph~Z)1V!&}T0NhmzwRSzmJ*SlJu96#Fu}e!3e6xMD zLGiReG%WSu*a64;Ri5C`rH_q|{FrZgOLUvwr)7>TiLB>}I@3GrxWAHp7ERxhIJD5< zP!fG0PvUWig^BL7XSD}c5Kj|F+6M;pSOzfEwlvav5srArHdMeGXorOYVF^>}Wo5vb zMCajTXa3BuMKqmy5A`YVt-7~O#^gH#mg_DufQoO4UKEe)6C1fM`MX3PYE?*S@x|OU zu(R)OF_9~cf7GJib;AGGpK$%2aJ+d!LSdG+UUt9T7Bb%Qj4a=RHy2?55m_vDjh*v9 zM&6DnJ_`y~gHNMByr=Di3*rsQ`QHiuUw^RU3-19R>$ME3JEkd%)=8Xaap(i?I95#F zINC|Hi9H;D~Y2?zLdOSugp8k#QJ zma9xLza{_U45#>ZuD&o4*#}xpay;ECUgQ_m9kaH4yI5l$ima*I)McOFkw(jX`iv#HuM zA{2c8*#0;%Yh@^o&g&XGg{B;jh)z{+Kn{;}!hgB(NAa7cwcnH4-!VeliF*x==Kg%j zr!#U$aiU4_0upj8FBwbv(9Sclt|nHdiS<0OOuo~}Hxb+JO~kbR3wE;O3n2=0qErkN z(SL;v)eI_L6B?mf#Ieb-DUZhF7>RUnh5gL}Lr&Q$Hk6Djm9Q_6th+=+$`o02$D^{) zcOBJ|XYeJvgsz8L-lo5su7-{reQ?Jo{^?xHDF?z&<0>AHBQM4mB!&tByom6w%vhNr z_Tb)?*{4-#L!|LQ{Zqhtkezi|qz~#CyvK#j5n{FVpiJFdi1Q~*v1Z7)PTKnhtZB*k zMalR>bD7>PeX_;6HQQct1Y!%9q-E*}EzzLsM9xin_cMv4;)5u! zuXc&9O)mSekEXY{IwYGScuZU9hTa~M3#r+i+QW+FuBM%J8Yfo+jVPAnFPt{EdhGj$ z!TU6su#)_+)OthsotZ}Le@kvKlIO_G*yM*c)Vn%V!uy43)Vp3I6D@(g5XWgOUQ_XB zAL5+J7t1bBoUGjs%1i*P&|UQ&F4>BykZ%oq zBCH;=@yaD|;9&yCOW%enqjzL!qvwXMK~ic14aE-ecfuiHsqu#Vhw#+6hjOc_P>TLP zsn6z(JMJ*$GQIfxQBsGG<_cFV76TG@)mk7ZpU$@B83Tm~y`l*!u|fgN@!5Z3jO?(t z0EPRX#bXmPB1^2Y05_8n`mKE$Z6aBTh6Dzm+W`uS`ks+TN_0+s^=)DBV**^8gSFjV z1MO4i=^)lUE&zS(9tO~d3|Ow*77$am{$N$FL>uy8&z58F5wz>iQ@$XPWRCtC7%U?o z3CXFyz0v^s3xLhBxV?kU;TiIP{jMf2)~L$!bS2kv*BHB^->31X)b=xP*6-Jc5V#wH zd1Llpm^W&MQ4E8P_G%NTkuq~m6wi4b=6AtkU-zEVrVG(*Vfi^*pl05=lk{bg$^HHH zZ3XDBxH~Vab?B(F=*`{z_2S7_wC?o702V|Y}zxs}~Mk@fXt9pLd@ z_uCg|M{@k(Ng1ssc<{7~49gN<>j`b$Z~JGtsL>t1h59+?5s;~rLVkifqP)#tmm;A3`_FQWbUuQH z{n51j@$t3N5`jkpY}jj{>XXe_Q$S?Y|ab#txLN@aseyUXqUP5 zZ0}SzNB@P~%hx zo1c#fTW#fDotUPvF9`S7IRTYSVovC;PKjLoJC{&psBwN*n#rEUX%X$_PJrp=*#b30 z`~HK{$#37C*V7-FBsE7UOB7yg`sp~DJezLWqf~k=dBJLOh&m$gIFgp;^(62Ea@vfo`b3K=&bbXom4A@e~r!}cUlyA2R)WbO^dXg-16 ziHaRWMdxdy9gg}Ut(Epb{nw)n$r9R;0!kuR9iDcIyM6C(x2!mF^M6S_?v93fI1g&5 z=eQ*GoB;JKH{f7i-v5Pq`uw-lb3)VHUwFN?f?5WTaO9M}v^|ena$-!oLaqZ4`arI3 z9f%Gtw4?7hBoc#&U;{}CfydcTMIjOr8yX@hrUIyoyKrS>QXZrIgChoy-=*z8ZdYJ@ zv*8lkaxyO`Q#FPGW#O)ff|9_77BcvD{(R0OCC+hfSGqASh_HACV zHM6;HYp2K`_h_WNUyt;&MmqCXBjw9&nBlsvfdcHm+cLqU*MWiLFNwMG*J14#&H9{n z&xmFf!g2;O9~_Fx^xRdr_Oy1ew+nxT#^6p|{_$FSLtQdNm^b^|wQuXZsZ%2SVXTZM z{xaJYpyo^cZ^6QKR5m#x0JhY{T>14)}23LS7mo88r2Md)pnANTL7 z&2(2)Kty2DL2Aur)OB@Kkne;|QftrV*R_q-Qv1)S{RaeoDDZ7b_>aJET_>&Zg|xz# zI95q30NzK`2`i)()FG|VNGq(M6MJ%`P z#ueK#H`Z2aLpD0^ zR|a{i7_yj|LWamxQtA-tpBy3s7$VgM9LziY|1w0*{BMWIfTrMXZ1U+)**HoWC0zUy zZwkrsKgs_^9}>qxNL# z0#H`V2mrl6f(2m1qlpFJD>K;#a=&wy>}J^cvj|P>REY^vt^v#;kRR#ouCQ z@yEI@$KL;{q)I4-h=lrPv%(U4T^OmX2B7q(H)xhvSILs|L|t;uG3f`ILRfPC+W`6q zpcF$NIff@o&PB;3=ad|~nn=8uD60pJBzyjUGzkL&(f3^kFIbK-rNtYkHGmfBTOn!>%AR!en?$B18MD=VUpp4a;UVYx!$l z(T-_p*ozI|*BkZ}A|2SUT}{H4hHYyA$%eIey{wXq#z<++BD2koh9}2q6G-!C`@NsE zU5=+3NTkxH8y`+kWOu5O;8ZzshgNvf&!TUopYS^NzvOr0;%g(t>{O`E1LgbAM(KT} z$+{<5pKh{#Ihl3cv$C@%*=V=(b@qz{KNPcEP*Hn8o{S-Gk7>zsgPbji`u>#6^QMFH z)afampE_91Q`zo~ACp8e-Q;$0BDXP3J;_cKR)c3oKRJL(3qwt51Bqy-|{o}%#HG^@wD7&SNByb8SuY(k#=F2T*Wd&g;crh zF27O~DR<}fVRhMt1!L=pBvue)@K7gwOuI$)7nr{wT zAP~-Ix)mOM34bz|Jj;yZaELVI=W%IeG-di}K ze`Rw<#`Y-_$}7Kw)gw>#X`s3OlvVD&Y)QKX?y9FLVuyPa5>=murWtrDn}?jb`kV=6 zmCdg`y&VnEeZVm2iF($*kVVYVSqpG)Qg=>=1-wGAJ+m*Hgnb&D{z1%g_o=QhfwvFZ z;m+w;#~zuxPu-Y>;u(#Hk{ZOM=+utSv4XCWZ9u^hx-)d!f%)C9-v$aL0((@4FPYo#OsF#l6XKlgB3V`o_s?Jp_0m`MDajj-wata9>6K zqd(+NaPZWyvn74CA`n?FI-baax-Yx8w~5g7-4%xh|NxyY?K5d#oJ+`PK=N3V(L{7=m#ZPSB)i$r_r6qC-zfmHY;FkTf3g7qDoNEbnUhMiBN5*`!MSby8`>nz6&&o^a6oKQ#A%`0xedUw7E}eGZ73-~=4+u~9V;7wk9GP?>O!*!yza#Q>_0d%6H(XV!HjcTDo~duR`G;r17iCJ+d&ysUPpnt;NupyGuX0mgJ1`j_)3e%zAvFFuXT6Si_N6u?Vjv&^-^G zgBT(iqrSBDm~J;nk2>_QzM#Cib5twW!T}=Nv@_mbZU~ zm|XGfr1!}z&5<(jWBb$x*uM>odtAr4#2$(l7`+=3CBFqsj-VRXBg;xjQTJm&AHMH^ac2c;jHXw!)?FVR4Gn$c09Paa#3V=;J$*8)v z)OxlMu)FFfi5{uWmW(X#!Zu(S_56snvn1x;Ig-U!O2S57j4)(=Ha*8}0kX?3(*fbYpx_?UG-)etb+LE?!ML2sik}?obRp9SB`1u0C`@TS18Rp zm&W8G0|^O4qr=F{U&DZsc8Gg!)o7}@qCMPI46$IvE3nPq&deijs}Ym9H6@oh4`TlZ_2ZG2BFombZy-)IxofKMJs zv3x5jJcXW<_(c`Df^1$SwdM*!cE|68eyXo0>G@Wd?NHlBw@}+#2EiVc#K7}s1vntueTKU=nMgJV}(?fyTnLh%@t7GbCEQJb6=Mxkm|)(R@Fia{c$;0EpflM zDOl>u<6iko;+`x`T5mrPlcMExLhygU&?ga{*SFryP`Z6f+NCt|B}ErY$`AfW3az&< z(Uf{2aWCbObsB(9YFpg%GH$t-(enKZml=6xh$s=iWm>n#WCBeSWRaWXx_wI~+Pv?i zHMB<3@LFS`J61XN$^YD?@3Kd>$#}E$P6J#fbGh(-3YW1+<>dz9g15R#GgMznE)Jnt zhFY+3x4fqb8KhBT+!MP>+f>q}49e;!*ve7nwo<~)Ft9Ir8eHDVjGe%SgEM?%MciJY z^caB&KS$)2FgWlG&3&VC*}2)2feU)0Vy&K=aD-2`sM8nPjhki4EL5}k1J4^K`77$GX8V5jdxab> z3s{eK6$(IWbO9aNN;zr2l@yjn|8v$ruzGii;z1t{1UI3nNIhr3$_jqe2g*hM6npFC zEvFEY+WrIPgH(KISMO9E$*}nUk&1HNxz(>&T^yI)MG-R#f!@thfV&)z$`~ed_>2TqtCfs+p@P|zJO@|BbV!~aA3(qp) zKV5zp{MWZt{FfareDHtB|4ozr*~6uG%0F!WcboJ#9WMPJ2$z?qrIDB% zLRTK{eNE%;6BgusLgQ`IcyX@W5kchz>LhNMl+ulJC1_%cPo9G|{3tozWgW{yU0fFf zBVv@_LJr7wf{GmH)IrTSP!X2n|4fmtq9Yh_6@$4Xz3M07L#@3h0ijU)A+EeqAh+!}FI zG197prCHu%br$h_Od4>0QDec^b%ge#BqRB(+aq-mj>r*bok=1ZbGIGi42wbZEEmKm zD3uc=2Zwof$$9)P#*KRQ^F#xf&tp-xr`=BGWG31oV$#+=&5M~*Fr`B{RdV1h00*@9 zh~aut*3}wr1Lq?X-*(124AQiy|u4(=e1{W8I(PW5||aI517q!#wb zRPn0DhXpe&Ltc9lD&_d5^!ps-*e&Oj`%NTiN#-w9$lmZ}g4O+HpOo#rGEug!Sw1J& zlzl;>Y@V}SOqqjH%2ZKYHasj>9$7EWYMn_f`rliJ*bA1rlAvC&>abW`g|LZ2FsU;85`8`((uint}# zJeiEC)BB7~GLuOE)<`mW^#4H<$5%4DUv8DHs#+2(MqgUEyYYoggzyln0#^qR^}o$L zIH_S^hqgg^A1D)0#o)FX!BX;Ax*ghI68xhX>7KbGS@(%9w#dmOI0rGA3co~v(xOo5 zN`#WdW<{77{R_=(>-`Z5n_U6Y8ZTgZ#=*2Gr-+II;_@yPd1Ei>Z4YrzsTBB+1J;k0 zYb2b|Juj;*OUr}%gF5*BLwIk(BV9;75`A#8|3n^QT&!UUR+_onK6g{18+Pp$+Uz%f zgwq>3*8K#l{v5gDWeKsoSJC2zTS-skYI>HdtUE47o^`ej0T!puMgQ##=SyTkK>4};$dGWR!XqKk39_h zhf7SZ2gZN*F!0L5zz-My^25Zx_%QJN!@&P|7JlpHHW^DUBBG z_|ieZSU37?hLS4_Bn0HrI2ifCWDdekf!%O`IB}rZpfmYTqfa2aUoLC z!!pT+Iuo%>7%V1DxIWh!Jg5@UK0YOQBCP#O1r0b}c4z=~;k}st=hkN( zFFwA5!sgo%3GGl!^LL)1Eui|U9iq$366elJS~Dz8b(b}cC-$y80Uv~?iQ zD4aA^t%=V5PcfTKIc2rBziLn1Ub7lyY<&v!5diaHfAGyq2R2QhQH9|jrvECxdz6@} zFPtwkW8Bl7vQ^k}-Bad5C6r~h6)3P#dyHOt3GO>1DsJcX12A475e!rc{TE0f0 z2sAn=qyP9U(W;Mb)5ZiYmsiTV{}o~uSH(ljj752cFQ|!dwVXR4d6V28L8h!^v5r2%^VV)RI4W7D8TZP+ zFcTq3G3!Fi;;LQgnBAwCK|Z@^6X89WiWRd#c5A~h?8QDVcb8)lHmq)N>rermJcjFX z1n|doz7MrqS+8;WXBQ(A5Vz(P>raih!?zfVD@qx-@}^NvASX6l zwkc5_MsFpme8=kdvL)v&43*RcTcHlwHTU^(LwM!AOitM`DB`K_$)?B;-L%{t21&;Z7s@o)Rg3Gg*hp zxk>yddrG43r zK*`bWc=i5x(+0q)_D<~QwD!FLJF;^>O;Fw+jCdaRJbnRavUKT0!75N+@$(L&NsAET zZ1BrepbSvw1I=%o3SQerTple(g1lUM=mBlt)<~-vKjYz!#IQB(oW6 zv|sup(MEfANiBSR6SZKQqIf2#<))yv+rB#)zyJ46b#*`E9^giN1$!CcYz%mwu!$0# zR3Ud>UnB`F&pkZwoi@^Bpb=-5#5tKbv7=z??!Lv-`K#b>7Js#%ajftvIrFqN?x`-( zqV0|b8T*Gu84z|YAK8Fsv|r;|@q5{TAMIMJU)iwth@Ap|qswaKM@LkRvNfONXSps# z=0O|4t%}v#ppUR`)bH7k<|PI^c4eEL@snLcfz-Qv0_UG^Cu81y-@Q1wA!H_urZ87f zHh9v|>jTo~%2uyt&_axMvB9-VDz3d9T>JeOxc-?ep`lhxD#9UV33K2UGKgk%Y_ROP z+%!vmuLHK*UJhfB5kTYk1xcA*hG_aO)MyK~OQjb`fv|MD@ihULB86rl~Tb>9tKsj6C3;OsSt z#+;ArgYe1a19}qQ@?K7%X!RxH0eei&=A10E6ZI2w8#ZYqyHYE+d^&~y@jD$xr|%Tq z{r9?@Y>_V#aSL*FqbEQ*I}hZ5iGu>8v1fh6z-<-Nf}P!sh{@lcNYG*UQ9{1@MR#Cpr3}@|Eoark!8GUr$fS%+BCFrFtwL?lTm)2t3Y=e@eB8H0Uj3eN*^heQ|?S zS_NN3W#>DqzIdtA7WXdfB&TWEe7!CwBMvdAa+Bw6Gu*BBQ0wtmxDB&dxp zLuBe(HVZ0=dyXML;VU7*xwuhQ7RV|u{cF2gFNyo9Yxh94+w3b$iBkA7F~XG8>xT$h zo0a8QBbOFMez5=iqp+OK^Q0TCkquT^qdghWtac(&6y^qx7W!r^YHc1OJumt^RNEoj z{q}Z}sVs1zWS9^R+Fm39N= zV?1|EhT&X1&5yR%m6JE3YGWM=X9#Zl z(vyV3QH+P^)ZO-3Ymw`aTg{sCba76V){$#(yj#9>x+Ig7^2idG!tzY26Wd)aH%$r^ zj7XN7{f(rU)WCpS=GPW;mOvK~Metx>>Z=4?sGr&SNJL@F_Z-ndNTcg0MXd<+mDON_ za48dRV?m(LWL8+kjaH#!eSp9`8mT#9deFb9pmy@fel92(27NSQdGNb_aH?+35^zM` zz!uc2iWzW%`eREIc+E8;4*MSlar^HC2}^;t^RNAhrtaNJL%?p8Vv2a@Y76T}jDWB( z#TML>D$?IDw;d_n!2HcX73Iq8Lh<@yMudD%TG#SD3y|fpR(xUQS6o@4ZJME_i@^$O zXm2ja=? zG8n-BNUIaVqz3b8RnV*r1LFxtwJ>|N)rUy4Ro9l>L=DUORq4t&&vB;}2q}3^0 zV+hNY&+&+X_Hu^~t$xq2x-HB6Nl-rmGz}NOjG2|{#Xa|)BLr;L%J<+dEBHAiXUd-> zy*++)Ge=u#gl%@?2Z`RIlHEuh_gtV!*<5CX57nfbRZBgb0(B!OIGEnJN%|fA>t?je zNF*W=rJS3I_jZwz@;Xrz{e5&IZD>(?#D(em70BO=Ph(@Y@@%Ps=xh737@*5v2SDYt z%j@j{4(68YB%h#?L&QB_NDLVV#IrjSLwl5pOqR5k>k&jkt%JK-Zo(l+@p>T<*$0qu zRf}5p0?|ce?i7yp`VyfkuA>%HChs+xd!qa|31g}=qw~JCidx*$iE<>PhSCV)rPaF) ze#oUvcH4YEfT)gwZL%5^mvtQ@nKdjblH!I?tGlk3QU`0!TzVjcSFLiP6k1={2b3i@ zi0>863aNRc-I3^Kz!CjYqHEk!B(AoFNNn!_rj}AHh9=TJ*gud3u#~;S6iSu7td{kW z^5ZiYmG)B&2~zux(W#{NTWNlH{E-x>JpQxq(|CMq!VkAz#NJHwL8=0Doj+Lm2oJ-z zb&o}=S=nfxDkX}bJPtB5ByAr9%#g<7jSdzwBr%=dLxbL@i7W%rA-Y+A{uM}wnf+#Syfv0je4ytd7WkQq9sRCAlXP!uM?aYV?7mj?>RyT(HWXSs`XWA zMCDN?YHk~ro?)%Y<+pJP*{q{#>N!cr4ek*Ce}a z@JCMGql|1-NxZ(aV1MxWL^%b0g6jf~1p47(Sp71`7x#=BL|K-r?sxKO5oM)|QbpNs z79B!f9qz3CI|$EZ?SDI28>X}X9-)--1NkNz?0a!rsxzD?rq6bsw1(yS9v)=Y>z1o2 z=~m{VhMx!V3+z@yY$HFbdCQ2ILxVuxRZ9k znL>uDIAI_->XVX!^}$glQ6@#et1i(9_R3rMi|Ahx^s`i074&mvvZ#BIj+B008`wfWFXQ%y=RXD2 zaQNR$DoP-JE;pAal|nu8Yx(9N5%U;CA;%e7ag|x19owYKv#_My$UXqk@Fh<7z_5EwN|z7hOsiFFh|KURpHX+fTf-^+9TX zb=NBHw(nh#sN%;)RK@Otbcyl)%b8lmPNs_5%IzI@CeOF-8d_+2YCs|V)4}PRmL_j< zaR?>3-;`SZ-(_hFy|hV|e@UYJO3F->KMD6C=_QQ`{XCDvTw^7fOQc;hH( zabcZ}8J_nX;fm2Ng<3v#l)XjXJJ-rOp2KRqd%GtybhhlYIn?=2coH}|mJ6-HyXkKP zrNr31TI(XD`Sk$kcd~z1abYe6T?pUOhh5ZEL9Q${MKXq3D{u7vNamU|EtANxq`o*o z((fD54~fc1I3o4bIWUoUR!d1)yb0G~oXAjH?T5^Wx`~mZ*-{?%z92>8+n=)f5uuMw zhGJ@6yGqc;R)W2?Q;5PXtf%I$V@MQn7KckKGVJFjAy@zN>V2|0(!~Wv{h{_e91`9? zF0ydKXMpMVJ!crcp5TxNbHxMRW5IrBr`<}CVK!1jP}W1_VkWIdnv-lF10Xy_r@HPM zTPDIwz*@neGNF{m7=SfvO{9Ek`2$Bnjc9xHr%qHVJDl7=7q(s|JJsGZJ`q1euTvI) z+2mm|n57xWJlWF_qeR&(eIV2d|JSV4Jk8k;Pg^B49Y^}a`bYTxa<(~^!iDSt%~#Y#XJvWe+ zA;coh-ngPUUT1gAUo$f^`IZOm$CbSW(yN;=j^@HUack~lnwA4mg+-cv;lT42|H+@a z-=Oa)$gJ^IzH}>+Ywsmcd|BqtG^O2tZeqCKy}@aS7l~JD&8iioWR3PO{Hhtg7{p7( z1PXa|C6TQj6%v)#H|Wmz%96+i(Hb$<)IiN|v;8+s2P+d1K~ix0tHDPU`aNP4{ ze?fA3gH$9M(rt#3vv`n$k;r0cDWNP>pgdi!OoF67mZv6Nu>cAX~CQj3#AJ<>m( zbp*NJmP1Y{>#&2@$AQH9_zmK-2(ssJsf4a4IOPI>O7|NEuLMhN<-4`SdOOQONygHx z0uxi_nbP)Fk5TxY_{td8&@zTGG=HeoGQ+(Nu+)m9G?*0zJ*aaxEF+w)DY5yUPH^l9 zql%U7sae#wjh1feD~oJs^YKP4jQ&5B3ilZ~%iU*8t^3H)c{~%^g~#CSfozFz!UA!a zs#G&ExT}t$Y9!tBu_VRd@k`_%Qe!GI0E5)Wj7V>{cJOoP>mFjzCG+I?i!Mz48+XK; z=9?;y`9QG%@3`l3i5T9~3S+&uTI0y%JtS@jMa|*8FoCR>I9$%b+v(i%;oCY!Po@sj zdu4+sLL|MxK}CjGAOBmeV#m{*n)fgLbX5DB-;Xh&x|(5U5-r33RwkHl#7l+jl6OtZ zs%ZZg*uI2&O?an6h9~*`Fwt}fv)^^H zki}xV8OqkdyP1A9lloE8T(V`iBkq|`G>Cj4`j9tufx6M|`HmqK%X@<}=XxF^RvMv? zS`VRf$^^#LFIcb5r@Y`+i714Atp80z=mUh%QChpMBm0WMtuunXFy`ekcmJEMVn^#( zgHsPwY!`83ZmhNc%}lU4!NF$w+X-yeJ0gVV2qHtcVnmJt0>Z_bdSc>m&#sdU<)q00 z@!lH&r>v)FPuDVS?|B3qJl_)j%~B12@{r-l_C}w`%Wh^>7A7h!Y+Ie3CNC4F5?N>! zLiUiH?-JpfEY{w8E5X~dsS{0DKuV=jBycv`Wz3u^AncZuHaC}HG7#B^%tK%C;`XH4 z7M`>0vmNMsHaBh3-ngl@h$ouDb9Cton0s}BlhM5&O1mI|F6*mAj`$uE8uzu-E;d*iV(aZ|C;3=B3=Xz)fo9UvTRe?v1!(;$DDz6>cob zzFk03N4ANL&9B`x#Ge@)!>!ZS1$owOeKMP^;iqJNP*kvaio2-b+sW<8eTu87VBeI2 z_y_Ujfc);V9|?9}v>PZMwBaW$CKd#EWE=NID-6F~Al~z`Vc#@Scu{UbMR1^fCuHYa zqT{pqgu{&A9wvOl;lh7uFysG_;nJUGkFs@-zbhAnrT&YkDs*nN_q~=N@AHfxi2Wa- zP(B>VKIRH`VJ+W{Kp4v+lnA%oLxr66LwwT#{69fI4)ZQ>N^0Gsmln#Y5fKHw zzbQ_pG=`$g*FX0LJ)`iH@lG^VoYmVmlGbqkwJV&lxC+{LaeH~}Xrc}Wsyyd)awxB^ z<#}mVTs>aGCmci6glhl4DA^m-GrTV|)WKfGAhEyTC-%DCnNg9j7jEH?mEYO)Wl7{0 zSjz`_6z}NYWsbT;FxCy2{)?qj-h3^RgWBl)R;$%OFTuE8tv(oU@cYeydagp}05iv( zl+#2honEP07rKzT^s3dm(E8s{m^OXAeFIU9usn5v(*U}Ea|v)_E)=vPEtVzHU8Gbw zQ|(gH75DhWFhyHzx+WF#hUe^*Ft33) zarQy$uA;OfNu`4veA4t$*@nU;5bn@AlvGOQP3jO<|x65nO_5dOTtp3vMYC8%{ zh3dO`)y^MZ?hiL-P87@gF7zRCxGY7{gnSYA>_1Kl>hZIF6mQiMu%xhDmnpDir$LCZ zW%^iX-}MqZ4TqTjBRqoQ{Ws05hgOiw9wsBBj}d(W_U?q=FX7q$4{dKAA7zm|{wE}X zpx^{G2r3YjC@3gVqC^SrdCfPTLJ{CK^{JWoH})z#J2)m7Ei-9Y5~orn2; zlYAHBfbW;L_?|dE2GEw`Aj6oADrx^dN!kKCYSeg+U?2Qc*;tsYlV}50-y<{`_Ia_3 zvd=eW?;q1{`Rg(m#9y*$i4Fu!MOKg~v0A*{$$;lAT`;oJGM4F^#FWAOY<+rL23XFTy_|(K zXFT_0?RsT*>-BN?-<$W8uG3WvS1`_r10h{ybIt>hCfmQiiXgG{c!CnE&-&teIg2V< z{=Sek$xo~@KDf8DBrS7XmS9qE@1%%IXvDx(q?tT|yz1W(((HR&S20Y9@4jj^wCyJ&VdP2kcsKDu7z1K|FdF`~2%|M~fV2s2sRg{uRMK00B#oW>mzRXNRo-%M z#2}%-+wY1D$ZpG5XMVSwLhNJxK*4A_8o>|U$m7ar%l}L8eGpPFfxh;I|3;|a0k!um z7Pf&AV7vw76$~y&z~B{01B1a({Wf{#wvq8KsDwcZRghvzs~o7eQ{s5MyHtT`Bmg1; zRIbzFY4bl79c56v#S-cz(!Hf^98UU#OHPrmssJXOx8vwX;!q$S`$U7v*U#(B4^4VY zL#*sQd;lYdEI#*B<-+;auxaG@kHZKi-43 zUk=uBf3n^;iceYic4mz<7?oxkfDyou=SG7J#C6E?Eo3+NT+h4!tqpl7eUWBG>*Bp)X-&!6ybI2|R1$#$|ME`UV!NPSs zFk7HHLtolEW~1+B{BF0sqh;{oHribTbITnNOU}yu8IDD3syrdCUmX!|*??9L6j#v!_TaRAnH$j;*D7gsh_)Et&Es?W z4xw$ans4yhamP!Wg^&&Qh8Lv+oylPlCt5IYAC&Lr{1$Xm`}V6HCyVQ`tzOn6he(nQ%Sh0&RnvvMA*t##f|hhnavXcO4N zx;V4Qiqtq}FIH19cKlGeKKIshf~4VNocG}h9B)W3fYUk;>;>T@xwT3nGn$IcAG?r8 zX3$yMj|5XFI0+4R^_ndt9p^fBwopy!BoC3{iQ_A-uP8{?OJTs4m4c!Iie{EmSq!ZB zv!&jXsh9DQ4OgRsw4bT^_1C_6F+}pDZ?(J}z@_H^*)Jfg-#elhL2MhHeI!@;$$LE)$!Fu0)5R%JHqAc zE-$f^AETMOI~ya2xN^}Ft=uc#)0tsC>CUuJCUvN7Ih3)&bfL0ImT01x?~)C9yhh|D z>j)y~WO|fo10}7K+5%?EWB&_z$@KJp8Rxjk&IBaHC zE9uz(t&Oa=pK-ESnnf1jr@Y~0`B^FrxyL@o^*MUC)QA#J+Lgf4Zi0^tTZ6IPkHYvE z^jIq;Pxx5c%5b(j^F=Tj{FL}|)QQ|u-yxn-e1_r@)-zsyR{f{%45?d>c@d!?Iy;k2 zQMEmfR`O7bUrOdnO~#OQ*J7R8)A-2T_!0c9?7=!fKj0WAhBsI?!&T86s?o-kI#Rzu z#dB#(7_*~@hL)wIgE3A}-OkEgEb1|LsE%4^zF!*~zVx88Q>D>*!#H`xv^2{kXTwPfV5fhNjFEt!W}TBfVJJ z%radbW>20If2#SJQKgvK&^MRx30cA)$pod8Q2ju9oW|OxKc@P@{y7Qy!4dt8esHw@ zw$Kks=g1xv^_$P3-{F0KCkz_g(BBu$P z@*aXkP2JYE4pefAPC;W{?CKCHs^a>g}@6dqTKnO10y!HBv{$YJ${h zxn40!ZoG{7XB+9d(_KPxP(<0?`M7pXsr80fMjF&?G4DEaIclqT6&R35Nt>`CM$>TMdffDnoHnRy6YhfnhC{RQvQ&a@1=MUZp#tncex0eqgvx$x9AlP5B3< z(E~b=gBs7IMtZGGUK89ztv$cf|0PpgVJmwc8=81;A{SV`o6=z0k4ndJa2fl7M069c zJx_kzRX|tMo|v1yXTPpBLk(l+GWvTf(*GcrnaGcOS+d~OxkRz7w?79m7DJ>2(68w9 zf}cPvaS_r#jhNxQK<#^GKwr zd=_aMQ;LWOBlik>E@UnYZo%&Ek|2l@?X6MxdmR6c1S9$>pq51ePA?5egiEmQzY=$j zt7tvApZ|vRL3RpN>dabi&(K0x1n$L<$j;`Kd?&xEZB*yCGn2a*?J{BO1PqM&BP0vM zo%j%DCD}k0_xXG`TR6n%Kb%e-Tx)+xicxUv&nF3I)Z0f%RVWE?G7Ix*+tY#(?0>BOww(QS6MrpMgzOc}y{o-L%+IZE&z&Zl^ylzb{y~q=pa*)iEVvVp zRa#5U!ETfJ4&m)ydfPA^fYen#7#m4pnS_=8@D-2z!FZh{^tzC*$~8_1YZLuoMqbC) zgjxE2E*;}6S=8I3H9IGhIOLki;&uVfm7;Qzh6>S28z9tN@a_wjrje@P?S&OPlF;o>W) z&3H*KcK(mIL#=PkY6BV8cdC_$c;y64GwcDDtn@&NHx z0!mpX$TxaNbUEW}wo`@p!XQrMML2`Z;!bb5z7yvUt#c2f8ZtLHJWT%s#)PZZ{99_z zok4;M1=V$rP#h7;*-0-+ea=c68SGsOO0>32gPXKp2L2@if%E)dlma67h@qEw&~r@! z`W_ijBziHaJk&<=%A_*yX-7>~GUo0#nT_t6SnZ^EwR#S!$URYRzf2LdO-~qMOH8En zM}whIY{?<~!vi90TiO3u3v|e5d}{6xdg3+O%zj`6Eg_e;=#v@J%)0eK^oNQC})R73;-xQ{S_mHkU{9HYC)Vg|(g z=VI-EmCp2r(xyElRriDVqPW*lM!B(;2UShXj;!zx_ltxW!VwT#sNofbLStr;4L~0O zs5_HPk(Q*a$-} zv4;@Wsva`g^qmI`9Wd-^L@$w@jrJ#&`p8<1m}*j+<3r-|1bd9;h$@YTg|qY4R4ci=F?<~}RBP28Ijpn&nX2ImUeWwi!% zBulQxy7T{a)1po-cH=V93vz27SAs+{{}oMDcdCDd?_@dGm~RJQyw+Q)aHrftPPqG4 zejJSgs{k2O>(~Z7RztjmJqY2u?^EI(B5yoFgymlQdOj3K z7v^x;gp6?j>va?KSAkv2Thl7GrG_K&MO0~`7%khWEu=21|C^!oG?e&ToxHYI< zHxru9jZX@X0L^gCE82b86Ep$oszT-$Qw9w_w+###L!;i_$OqHyR~ZI$3M|ufnadZ- zAPts@hUk2or{BcR>a3Np6-#VhV{Db?edns!2G+E_FzA2FRdIs2O<5t=AQ-{Z_-=)d*c2{lNQv3G` z)q+3bC%%~Y^$A7`{!V{eYQeI4Xb!Zg)eb2ZcvjlN19GEUMv`4qrDyYW{14}U=@L{R ziT)pP%OTAMdnZe_OTR zSW4n_yaZ_02zE?1E@|FD{6m|-H>{L$E%vHZsb94TChB#vA~XVBt%2d_4ZSa&C}*`z zgIt1!5L&K^x8=V&?j1mBO&Gs8ibO zi2e6Tr}reUl|BCnK|faHIV~d5LFjTFsamu;RUW+zXSf$EfppK?=uTElU1JHD?_)W`$~r)`t2Hybi@cNuz< z0tJkfZ-2O8Pc)b|3lM=RZzcJ1?N=U^r8($Uyq|OaD&B?>?N#NFV=O9nZXc1R(q*Uc z6@T~4umsH8We6Fa-3Z{fJQ-f=UDbcoH?&xsFlO@a{$#wt6SM>Z)%`L9$`Fs zs@yo!-wxDs)pK zTK|`|g7glwTHK=`opzv68peCk7P|%zNJQY;w+s-< zFC1II{p1aJuJD^C|U^PptHK1GTAMH)k^?`Txy~ zCxD0y5w~PXsB#M#7Rxt#+*G~t^=Q^d@6VP?N$qpb;s*MqW^ZJZ{p)n$jkMlQiv|{L z@n^7idipYHuoJ0d4}(Qx{y_EzX#AJ>i;IJdrM>ohz<>mC{lKTdazoPZR`%ucCZ6QD z6|zq2%>7tTFm9X^Q((!z_{)=gO2c|g^#_=Kk50GL-N>_9gjmpZc6|z{lLB61WiR}z&j-)0t zVv}W>RbyMy_bNQIIpaD?Fp0Y=^!{}#w;i2HI~@os$!Q=wN(F@b_9{pO^a`I#*muo# zDWl&PBW+AQa&tydw};_u=iJY|(pz-rE_slH&&tz@q^PW&+MnIbNY`Knuiil27($bd zHuj3dKL_f@d-K+FEV|Xn%k{!L3iHnPZ;!|osgaX)xU}md!$o`M5kN=Mu-rwAurN@; zJ2==27-Ox^8;G3`FS4VHksa&^Wu(>Y5&XclXtzDEe@tM=s+JkSyUhsR%?K_Dg?7XT z^0d2jARhx}GYn?8p0O_){x>XdX*O@=N>>H4IVrF|^^VMtCz_pv#-lp{`xm>-{-pdi;`S*^;{+NRJ$wz5=q@p{UCq(n1CmfzK7V9_v{65T zd*a7nQ(*gV&)LeRP&HB0kgo{oC<_?ndjc_|bQhb#*=& z+Nz8~tN5678J(lzWf#qnqaKpVX)3e#_Jr9RFi(@6#AxPI`T&4O^uh5d#yw`$kc4WU zd059a(&|RCVfRu~ginlHd;3JPsESiejRJISnEC=v^AT}BHr-Q0XC*~CGc>FoB5R}OvY}f0;$9+DX~UPhq%lqQkw7SH zzSKt})(;;KOaC3PzhTfd&uj?Wu24Ig`7qFE7rpXNp1`cxi@%Q&MxY&hu(@Mo+3Ipd zL3}Aj3(eU;B!Fu+qNU09QA#BU&e|AZ4?UltmnYaLSd}PNc!C^povP@F{e05{T4ywK z>&{eSFp=Mt4I=jN+cGCH8LuQA*|kszW~Q(qOpGegbz;mj=;y3aZ^9A^o<>1hh%1Nu zF`wXlfWar|s*qtK0-C9zv$U7XH9wx zaz6vvcm1M_)5HMIt)WSde?0o3Z>V;){m^+RqM;L-&xFDCR&P%Ru1pgG*TCdqJ6Mbb z3+}=FQIIBd!@ZOz|9=ESJ*-m7=ErgJGQEOOp=Mvr2>rE_N5&x=O-a_VW$Jv3EFAq# z=CdKXpOrRg2lRSa%PNh##LKp()173p${^7uEtK7vwz?|LR|Y|0(9&Na2vqM9VtmZl zmfcxj$n=WBl?wp5nyj5ELf^kiyG&O~7d<6XL{&bjHUu$v{}xfaIseahZH#SZ+)tN( z=)1)5%k{aCqpWL;91b=miVf0O_=S6q03+w&%f1HpTwbD?&l$*2BnwphZ?x#3j*0lR zV40gKX1K-IuQfk>ac6TYa#tbS4L@iHoI^Q>yVmn1k}5CCd!}NszuQS3(LUPh17~^w zP-RDgU$ObV=0CnK(`?kXqyAPR?sHli&7A*(2sX92<=pgH`ilRH%9y~|4(S_;dD#XP zpD};4e6_GlbN^E*Vy5r)Bsf;xc7-o9)yFUu#5FEvZEpeDI7|z5i~as0pv3q+RT8c2 z(*$PA_=HxD=L>=SC+k@rW1RG8(Y|Qr7h#=(siAC!N;bGPn)x46MalQjnr^nVrVFwO z^*Z-az6eW*q>u=!cW5DaX)EOYO_iT&m9o&}Zz!t#(KngXblUjx^h}+xK>TpKK$K;y zt|FkVZWjS`p`30d{^8tP3M}_-+snd+i@5wBm?mmT<(=fHad{g%Bul z(o3Nhm<3(1Xx(1+$ARDsX{eg;45q6U8>T*lK+H;+PA#ZcEfJg9;@>EVkI~!Fv!KYm zN)dn-**d5f=S!nUpJuGHBI;+m*m`O7iJ-%;Dgkz;;?@S9{{ls}EaYs!==$s=F}l(^JM|4Lvi%**ZBtno#AQqE{C|i!oDahg>Mls?hIzXR z@WL6=q_XgJfHWK8;`&8Azdc?tDdQ5ykUL*d2|v?gAA1C(M2q}g1-^ZOlmCdoz6^i+ zYMG7j_;a1QySpj<7fR1;hJS1V{1Z%$3l0240t;wwaF3UrQz7@!WGf5*)4vbbrQ@$? z@qJHc`Tp+2*55&Y5iUKYNe*TnV+yqwy=ujw2d$xfu${-xl7 zg#Mht$GB%QIjIA@)sx270#-Y zg?Og-DlWnVjWx>fNpDljL-BSg$&PVSo7)A|lkDGm zYjYo}`ytjY8C~{wBum{-oo?#>(r{{K=nJXa;gyPYoHG>I>MGygZeststtsAWiY6yR zM(&+x%FN z*y}o-pOyAw+!}>vqt;c^pl8Fu8p}@=suay0G|hKri_B6((5c}AGu*QONe%W$17y9c zM)6cuDmPI6HE5bYJ*PHuw)!g)s}^Vj9cU9BXlDqtw#_I>Bb5WsHqagg8ib4VH~y+a zu#0@=wBLcZp%?HL{1k7Zz*E-!CR^J$rI#vu>`v0W{qQ>D!4N=#KODa!Xem zKDvK67Ew{Ph7V?T=_X%nPEmyoqbmdZ+qtT`L9IiWQ5H=cX56{ZFeC2SQ8S9)Yi7tD z;oWpw3xe8H*a+tE23!hKVDoZMB^=!3JF7)*q2Dd*4Eg6VPkV3E`zJgAnMIA)SFZU>lN^g< zqY-WR=h4MhMbC2RYW2e@W6y*;n%34udZ2T?w!!FJ1B)8`oz#>ao!|zuSKlb=cA*n5 zF7fExF*|XL{qffaqKDOp|!FV}!roMnn)%gk3@>i&;8nY_zt@Tkgoyx*n zGtr+#A9UVV$KG4p&(8P%#J)T4&$fD>6?<>3Z*1%iqpS@@qy9(`F#yMV+&5Q2< zd3$8$0nv$F701F)UJio9G@Xz2U2&gShPjoK#OBW4`BiGn!85@DV7dP(HZE~&lg)}1 zUX&~NCWbxt8%=XeG<6DHsAWDtxn><0P>dtH>aXPGoV$C)G-n0>SF_56U1w(q81^TM zy&se#u~|Wur95+HeZ9S#PLm}h_KgU7K^F2@{?N}X{+>X7yN)b;U%+=DMl<_Tt1kLs zefg{HWjCm+0n_(HMaPL0)QGAT`d8wrEdPAjx{6V-$$rR`5EJkeV4H)-61^hLq}L~* ze`R!Pujr@2eXH&E`+{|K``fgy3$9>wy!{G!OE+&B?K!EpY^iclLI+CuY8lIpeG!Nz zPwXs-oOl-MxcCGieQF)nM41?C3I1-0x8nSa-@O6%#3qE8FU_unP3?hM9JH5|&(nW~ z5{CF5TD2Z~Gm?I{&%9L+#hc-lmy>E`mB2OQ40)-z+MJHll^1Ld4xJ3S-@m0zl702K zePX64@8t2(Q$7V5S#cbXbehf@eT2dG9xXdymWkbUB>tF^-jT>r_!Fg*x*Q4biD{jC z!3Ki%tPAY6l9ES?y8|v8KjZoW-MRCX-J$yd(Dj{JY+Yz?IpRRnqf;AsCDVmYrtRG{ zQ`ekYqW%4SBA$}qPsr%#r5W;mVkF0-v%M#Jg(Ub+PSEGMm91xTlFwBfT_)#e%ZSK> zLOd8!xhn6WH8lP@mj2+O29{jC8JuXi?Z(|vyZd@t+LhyW4291siEYnG^o)QBA)X_? z!r?JIL+EilDUma|RUY39U-IH#{NM9>1YTd0(N(cd2&}k!gK5wHLg$A%F6^3?bg|Xp zCt33frX%Wtq}P}Cp|i=IWFK)a_qkZ^36eWlwFO@C)>l=_RLMV9z`kOE&ef^POMc!q znzzyNMqGNQs!8(HscJkwl$+0wK=rE4D|`ve86?(M&2&E1SIyx`{$a~*A+t2GyEpXc z{Um!s4@y37=pD(#zCX+T)z6??^@vlZzUnpS31qG_$UI4kJ(h#YSlxS#+`;J$pl@HQ zDelK5rD`21(JRu~Y0lpMw0lVlRMSK7eF2@-4$~g-eH|CLfy`ypdILGcmoW(>CkahR zza`qh1WuP%4#5bDl-VqkC4~pdnp~wcC*+>pR$MwQ9ZKQiqr{ivKH7nJYM^Gf5XS#l zeU&^YxvVO$Q%NA&5S|Q2*>`{))rB{pLdZzbwT|a`p`K&39(z|uR$reZ=@0w~!x`L< z?`3eiD!!u{`?|64;Nze1G}{;B!B>k#0=j)##b;=E6$j4rXNGpMTc=I_T39ed4b z9fpPaoK_t8fKju-H(Q*iQXT8SSC@qPe}D=Royo?@^Xwr&mM<6Ar=F+41Iz8`hyHEi zI}Kke!`YfCa9NFaRZJ#F<;tnUz1I2mQ4|D?A)sN{r_JO6X1pyLPd4NgN2O~?Yfu+^ z%P~}=cz15b+Z$Lq9^5D6w^iKjh2#R}-k)e%y%rXf>NRvgp2*h^T3lQA9h&w>AEyA^+5`xuY5DO-Bj;bWKSiA^p1YtnwFJTVsW;haKNQLRLQ zY>~evh02Y+_xiT|(V8~#*Qa@9_%$Ie%=f-yRALOIinE<6F7{gQm_gC#J7p#tecJdr zd~Ja(eN)-!-zi72Rh2uVy^V^vrd_6Wg57ZEi(tn*Fa3vW*GgNfc{n(fWdV&1naUu; zS6pj{+lvEvz41mGcW=w~PL@UWpiHX@d$Cp3rYjl?Sw>T#CXT**zn%Gdpv;>B%kW}r)EIAYWS23L zlrKs7@+1ehm1gi~R2F~A`f+}J7ygXwl0}$omkbVa>*5WTbQ$dpPM6WHQijbF$CZR` zonI)%-%j;4*w>D<)nqXqmhodlE0uw zJvGQ75e!Fv+H9E|P22$eoTyLQ=U&MYR15xPy@H`WL!xcyG}du`OiRks+0OMql_Y*y za`R8)9cps9j&tCeUH-02p=p03yAk2hm3d!IWj0i)bg?zL-x#}tOOYxfkJp-^jZgk0 zG$Pr1^PchEI|85*IlM)Cf&Mn7W7E!5C~U-cV96Y!AX|)YZ(s?*R=@g=kjS9CI{z*s z0b0P*@ix}M=VWWXG^jE<>GZsVQ%`k>5!~;+c_k#gCVfnV%e&n_r8<~i)0XhMqobdY z_Q}CEW`KH0Yc)Vy)JNVAC2wO{`0J~6xuRu%n(-eo^f@VxPjB$aZiUZ@>59(vF?2po zi=%U444rpLYlTkB`gA;w93i~pzDBE!`YvM=jrERFV#B1X@-|JqT;dhSmsmBz1D@bU zuQjBX^j}8t%|DMXk*n4BL>qXYhLE^6`k`#CZ?vC=r9IZ*bWd{I2#3bG7b0nqV5fnR zDvXg4O1VdVhZ?nZMm%{Cc`p+~FqG>d+##nnzKdi>D&|GKSlUU&H!mB{Nh0m~dxDpw zb5KdU0iNLC4$XNHfBDV(y+;z!pEmUeL)05+ohSHPoU}K{G1}Kj3-97`@RFPNk1t8l z*_uUXS4BCMK^l(~wubc6Rug^WwAh4z7Rur3jd3(zL`kF#tC&h?*m)ow$vC$FzU<0m0Z!p$ZQ$i#s2y6iR9m_9fVT3& z=48ib@gwbSF+St+V4MAa^E<=OtNeb4R4a4g*KOkbK1}MAw3VdAg-3k8k^Ov}pTxzT z!!k<7PU}z<+(#(f)X60h)A?!6N@sn#gj3TiKBvR2D^fjYjO>}}FSV{nm#1`pfyYYi ziTlnITx0ccE%>6a_Zt6Mb#_Kzi;LTb0^3}{uX-=>ceAeOAo)9(v*cAAHIFyqJ?|#u zuZuVOiT~lEfm74{XB3aE_10}k@rJl8ZTfQY9f6Qt&|YUb-_YV`4g3`zB$!*D%g2xwU@*MhID&aMT^d$0F*s|#n~0Go1bw5vpVnO#?zrjKL;G9W?|lF9>%)8(c{F0U za_Pt48!o*v&Yai5oL84v%8kOB>yZJ4-8*2BT*ctbm%({Waj1Xy($Jvp#ew<`QEY6jpKNv(+w=4HNf_D!0x`ijUHi{hBh36lH6pWa|-{c({LRr9Z~? z8PVHLP>gGR87NTWZN4$@dGhmV!sUP$*tWzBnLKy?TLQu|0Z$)=-()UzO@m$EQ-ri zW~Bl94)gUTz6wCQFOVI}?1J=GrbM&64p+d*i)w8@`1@;8*M+ME~%u zhQaU5fW24Cg$3G4)65*P<6u)vlwRAUo%9tc37r%VWsGsdEneAPSlSS6z|0&3Blr=q z9aFKQ4JVvmDd$76rN;6nfz*Q{Skc=Hkdec_rKJv25lf1pSN%7Ai5Rebax`j@rB;J1|?*2 zC%m>(Ax~kaE|5nB@fb6&eEhpZ32EA+KITca{AvV13}g6I*RffG|* z_b(?|V5TG7x_br=NuSas{?Y7l2yTwdQ+~QQ)Zt{Y(;lUwffG_EKP0~e>67o{n#Yp| zrno9(H{n3qRB;CnOlAW|eRN0dITD4n`DLmhT;du&gh$F(i8r#`#ao+40qZC`MWRlT zanwP%pTYDFOH%fp=?9}iBd0C*_Xk46#kobXgi}Zm)bgwpNS=c9m0cyCU|VZwDy(;! zH6fi=WueWb>U?DahJ$yeTN64kAbUo-i))F^)y&Mn%jvR->A|0v@|^FI&_QNEuQfr% z2gEv_em)7f5Gv>D;+;jeoPJesHQ7==Ay*Jg1A3GV*c4{3vq0 zV2f~Qt*={Lu4g0HPZGo6OE^?*JJn4-7lA8!i04;Cl`#$ex5r8AOIouo?%3y6J8NQU zuwL7%EiXeiqbuU;Pciu`{2OejvwI{rtlpQr53`$f1Kw8fwp$K~w9=m3%&N;`C~dUF zRlso^pRNbq=f!-}^ERgujS!krTN1jlA(9*8&tOyU)xGz*-dyQ=vo?7}VV+&+D&aKb z(hu0TVs*Sgpa(w~_?QT(DL0#Ql;33s1j}pcAYr|RMYz-cCd&r?F}e!|^|H>+qNnpd znRW~p4XyC7>mj%*@6&1R3X_*dKSA;IFUwm#t&(pa6@@zVBZ4ol&h?;=HfV)NxC@7 z(Nb_J3UyU4TItP8(dfPYKeaL2ry3Ed^zK+NXr6YE!B$lkd?PG^-+hzVLjU}hD|>?b zvhmtQ-TXPr*G_(V_|shPd>T2yn$R=2`_PXky59K&|IFI2#XmFfKB2U$q|Wj7SR;B_ zL;Kj@Gkc-@SRG#{m+^bx0eIja((TqP5tiQ2#lu-w$m{B3PYjo7%9f)h|E{ovQRVG+ zRSf1A=Xg)!RhfMD@Ff2c-sC-)%WOh8-disUqwy`WO=h=KyTh+`JrtyHXAtNE0-}c1 zG6vK)BB~%xpBO)>{vD5}Jh;&eq7%it1f`Gkrp0L7o6c?6<Ha4-K1Ex{a z%_bJo8@hXpOp6&_YcQ^;AxwmAU7gxRj5xyiG;i&%QL7+7SQpq@gvbc&PxIGg%jKeO z`Q!T^(R1r1ux|`agiW89=bxdd)1)gwQkoQ>cu<_Nzx?a%XP}BK2gtF`)~JnE=@yEb zh=8|l6<4Lf7)|Jk(vmu4O_ZO3kvreE#KC>X;PJ&3I-B*h`AEYDSUQ6P8p{hA62uI${>B0otk>xKt8k4{P?$(4*ub*M z7qEoT(pB-bKCS0zn?7yiDa;d>g@N#9!Fet!HaPqHa6h3nYCSkzx>s=;0#3x>hXn>b z1c8enaDft-ceJOXTHgCn|9l*#4KUYyqe*t$`74xkRXndH-Jg63zgR=OLYcejtMa84 zaU75_bnmNVsh=)iz5ZdPv!vrbj z3JA05(lESrO>)1;`a|?hiSM@3?rYdv9B1vW56SZP0f!FG$y zhITFHtGGSMd_TG<_$gO>dV(LZ8;S)k;a4(aIIB${#3AaK{`^;I}rq=Y!dPn`|Ut#{b$g{kNoi zCZDR0$u<2zvOEXscorZur=J7lMUof=1L>%r!}L$1-EN4ilK6YmCmlefTBz#{ygN_G z>CX_6@@|Htadu4ImTsQ*^`6H1HgfN(`|HnXSfEC8`tG)>-h!`XJUm8jE-u!0Pg6Z_ z8LoL%#-d4OcF^y6&rH0t5#1ohBs z9Y^-BnUHX-y-4QpO07*&>rLvvB=vuqTE&@U%Hky$eT+(XCO8S+8PqM?%&e-pPL3j$ zRoU@TWjpT$QUYSZlJ3o)F`FBF3uM?S4zI9i3=Stz8`$pHr2|m5$_3?!|M2lN+hm+> zGDdC9xRi{-5WiB7p;(q2fS-0Zb;u+ z3tdI~O}zYW$Y_t2fOu)0?EKZOifP#bH8eve^Wxx9){H(pgf2}E&Xfo7&$7~rZk{D4 zg$FP1Sri<{!q2sRJi%W))4!veqMqr$i)!RM**u)(>l$oG(2b5%#mQB<0JLS1p{S97 zFbI_S+BzZhqzhs*+&!ZFL~^8SqxLkqHk<{OWTQ~X?P5NIlHYBQb^S9t`7ZH=OkApH zvF>}4*Lp}5C|OKke}k?cERpqtdT-u-)(=D#AX3PV;e3{_y@R~JvsF}E*n106JmDV6 zb*uNMlvdOBEVgCEo6^JRfM@xSvx=7WULRai_d}25C98i;8TFnJCV~}nc~8!d%JNv3 z^ul!xiS8`n3rBrjG7|sxXod>gc0YmgLI?LRh7KKHSgUk6E{OBR#(Vv;(&0$x5bl94 zKqQG{S=Ua@YTlSm3q>_7$qPFT+~+iKuDxx$XkGi78eUeV>B7Ri8|V4c^2%QG^=Hbe z*2x7<8MNwGvfcQeoPQM>RW31ELY~Uq5FL?|&U9YkoR2R+VLd+FA$9Y^+FS$V; zqxv`=^J3cIEDZvU%Qgv{4JWxEY@;6GWhA?E$wmK%MhGY0=@I+<@?$N zw$um?Vg?YKLq_xXeE2O1^eaE)fDO~0eJ4oQcbfok{}P3 zbklAmIa)5Y=4^=1t6odCH=n*kN6oX}CR8(yYMSk10_w6I?9Wl`MdBv;1_}0;f<31( zDE9pf_TsZVUZq)CxSQY`azAH;n~OKKsl=Rmz(~lIz8(pUAPfL(-)RtRr4~^l44MIS z1O|7qqFEMR_JcUsob?}_@9&|IV00pj00}xqab8>B37{~NT_`#;bXHtsS`JSGh{Iv@ zB*(AOxt>!7=d-Hf8)X0FJ;=%1*iw~zvs0deLFDaz-Z-~2pPerc^9Z`>re;^AI9S5p z%J=$vWwlm-!Y2%)ObP0++?zht-l-*BP)$?LbTX4BnHP)THus-jzlXR@2Z_qNnJ^G} z@@`KAxZqMLHZ+OyZcwVYRp*s7KNXea&98-o{>}!4Jp&Zks|5w>&Nrr+kf%N5$^8cM zoWp5)GZnX}@67Vk4%lz}gFQ+0_ez@l1JgO?30EkEK19+oXAKAoQ@WFZ9H?P}fj7Fq zgQID_)Wo$QX42g9iMBr9Nq1T=q{L%qx$ERJMq{s-S}?T_8c6U#;acw3^y4Ot&$36u z*MdQ@!C-++M>Y;F$WTC&ngIz9abAZ3Brh>Q5~?rA#Q-H4K(_)&M)n7s>makMY#~6) zITeVp8Az?*lDyl8`_sMk`NM@C@IWd#Ab1wIx+=aT&7r=lLim9fyheQ4#Y=2?lZ6~R zM94BLI$i9-+o80zxSa3yBu#v}foBm>=b&=N^+yTMKsM?(YoJ|9Rx!hhS`_hrS!}8J zlolRUY(20=Km}*WkMp)r721@{l8+&J=s!kpU5O`?t$S^ufR2w{gvN6p5N&no<%QuR zg}ds@rIqq8*2c;cO}em~ldjFJ>}1mAMgE18c~=EG-kzBKY^5#v$S~$%Y-bt2k8F0v z@8#bK(+*r_Ci_KY2Bcwa}Cs+~J*6cTzN@7GDmtaH;CS7a@nLHpS z7ydTZmvb*X_YQt&n7q5JilDTp4~jv^W_{tvko&bwPCIW?NoQ~PPFTA>-p{k^TqSZzesDKe zrq%6i+w}QK%LCuDA+O1v0UDy-$|X(Jl2c@U`}Lv{sHZ_De?)l(hO!va9pzCzO4&YV zz{VX(6?vQLCp4uBEk;F&k!LZwI`=UW2&^shT|;1&ZcNry#+LrG1pn`7`n7tc842B- znG9E@(Y*7HLVXCigBu*D{V_9W$qgzFNN0cz;((F~; zr1bvMWI}IB^L!nL6KqzPx5c0B4XzSOqUaXp)ER%2tKv#X2N)s}Tor2Cumr=xXm4+z zcDPsXhDdvtJwaY8W^ogK0eTvzA$|tD*>fUit9FV{nwj;98X4c4*-LNVzC(p}1p!n5 zh}q(>|1u#n=$9!qwFz=iNqA(M=+zd9pbl}9IhK(W9{l|%~U2KT=&RD>(B zTav=(14`%>gIy^CN4h0X(R9stS_F{Q@$q^=Rl1|Zteb^rNJgOxOCzyX`~EI1-qqY< zNWR(LiB;oxK}RT<1jjC3P;Km@1ma$>I8NMSB2v`<6z;BpMNhga0}#V1=rgcruH0}Q zxl6V_BJ=F4=>&wp&&#C~t3=j_xIKcQt7`{hJ#%iGSoo%OuM$cqt(;H_?Sx%048rGN z(g5U51@epm!YLkmr6Xg2)`qw6%8DIrjMHpBP#HmYQZVimG-;)*Y87@AS6wY}6@?we zSvOyw#7$Q&AM^P*6XRz-CQi9h!7lqs74q9b=43@ieRZx14getFRlIUMAZtg>CtyhZ zbq79Z>92Fm_zNyl8V#Ed>P2WoKcG9_z)#=9ad#~5b7W`CNlIbYj2zAH{x5(MDAY+bbWB=3}8O?nI8VMm=e9EM&~{y^s=i+C#K5Z@vHa7Zu$E9^pJjpz(a} z*o^0ML%0_So|+_blXteMaP>J-Va#RcUb9pyHEyl`OzLg?cQre=UUaGzoi(g}X>}I$ zq49|CpFd{?=w#eNT}_frk|OlV*B~SgHkc>ow(9G+t*)g`=FCm@g62`6 z8J5rn1NUg=d8!Hu+**4iP=iZ7N&q4~f*h$34HLmm=D4dX+i`W}Leig?#9dvvwNwf)(7TNM*cNB8_))EHW<%AFks6!XwuFboU=uqgU_gHETe5t^or4l zOCn4*+yC2!W>J9WA+0NQ6YeA8Sro7Q1by(5w-2umo=bX69|RbuzBuQCyboDp>&4C$ zzSMQvPY`zjGO+djF4hyNHRhO=866KBE@O06Phfi+bpYN~Cwx_{E>>5?Bjn+*mTZ19 zSPsw}qfHLwJY(H@nm!;y7Hf%C+WF?IIuLzR5w4tHzZ`2N$M&| zpd-1?Gf5o}2kX7B)WP8SQn~aEd9%_c)(U#HSfR1yM_0u%!8GJ970l$6OqVG!SxdN! zC~;WZRhN3<=bi%6s>+vf1>_@`^!;i25${-oHDw*^vyX6Ix?Gl59NfrZ)WOdK-?u3W z9xTi|$cb$IKAipy7-Z!A>T%7k_w=i;*x>g8_oEs?HR`)6CUK@-+rsD_o-j}g8L0VQ zYtc+;3N=-T6IsmkcGv%gSr(9V`PV!Vgin$Y8gicuvoeSu{IV&^X=Q~R@>v+%TN?b{ zFLrmagF>&E^!a}ku@r5ztmut)$bBrVCA8k|gh9urUsp+TpDEz78x6hmH%=%N$|a z2~Z->ITt4>QJ}gidO~%!eRUJ!H;c#f9Pu~=G(LMjE*?+ST(a&kmtI2R9=BR)`^^`~ z@%3?m889D{&BqV;NZm6&1Xmf}tvsuaQ%hT9xyMr(cCR=@eMifs5Ey^z5p~UwxsDWH zny35{56)coAd`2DWsIMq_PdG$i)*D` zl{7owLsUA3W^`r)l+}sz>B%u1YXSL7KeAg18?8D*6=#My-;^A5!!Vmi-|HJ%VJ_|{}Mtm z?O}2Vc86O}9{;gJyVIoxiPf4-6>-0}bzOR7PYZga6*1MG7{a=?@cc+WuH@YM^Aw6<0 zI92u6cpCer7)GapQTT6+Rms<@rVG{COOWNV>m5t)v^8Q@r%3r?wj79ivN(8RPg)c1 zPod&akwlGqt)UskuEJ%y%X^@G{g=kodlkRxfoefNm3h_c79J+Nz3>&(Y zuTG$wx}{>B>nXoLoq^8?p~xKR5F77a>uUIGgO9^D2MT34&6D$W*aZM(*l&AxdgOH~ zyYn0+$QOT$Rh3Cqk%yi5vUq=MysnkDVu91;68xZDZv0)|yd!-g3LjhPpnf$%TV-`Z zJYaZX1A;Ngb+}E58IIGTQaS<``0nxMkw+Bnt6}jHop0l!W;9QBkD|D4^ z#iXrWm_b9)5=vi}<<9MxUQ#dxo7pk!W929@ly&SOe)F#UTz+H_&o@4O*F4X43y<>%Rm`&J8b7K zj+E#JUn&MnNsGL`vkQY0hDZAFA*Qs4xw?!3Rk2Ni4sf^roY-6(latb z(%ROG^j1@;9YMMBY>)d~{ZQvZPYF*|>Kk|7N3Ti;Fr2@)Ju8`O6)17A3bd^pfEsK| zlj3L`c7LpHW4PljX;;*jC5^*{`k*mV(&cOd_uzVIPg!`%Cu%;l(dLzfZ{xMl^5%OQ z>yrHgbJoc9M@w>6^2)U`b$P3OrXzY)?^2t-7WCpPVd0h&2?MT z{x5tk`!jq_b?_-O_M(eh^4nfJ$ zhjhI~2EXNg@4tphhs5ZfM6b>Kz+uPB6dxn-)xG}qN9e+COh~@N?I&pRi*K_gEta<$W%hS5dt1lOR_Z z4IPaY*SG|a?Q)Z=u)k_e9sw0VJx2Q6IyV^ksbh zS3#~@JOy*hJ;|xKr!+sYV)62oP_dEZ#6M6eNvVp00ep)jH8);VNt%oHF1}@vr0F=H z6&q`CuV5Pjn1adXz1jbYE}~<3_Zx8nw2ZeG18iBHLx6i#6azy}xcza3jN_@NRIZtN zmQ^r-`cm_DPd?Hr7{ud%yoMUlMIBj#6~05i*Xxyj z$3eeS@+S0~mXU94b5aUA3B~td+m?M^D8xmep{C-{l+2mWjwEuS3|!6arzDV zGy2`Gl^kZjhwxt^wJ81CDtw22w^9jhPWAVKPpX|Z8z+&thD0{T7k10S&s^Xv>dJIq z!M7xH9*2&?J+GSHL;q+w3Pt}|j+aRq_4^0f#(S2T*PXn|y0RR@QMCeaGUANA+(Ms_ zQU1`M!5`hj(Jlk7&HJCvSx zzHbQl`ZA^G+0K;kG_TOJR_VFrkJ=kwFS<~xIBW=+Y+va_CEDb*Dq!qLa;7o)_bOJm$#e^g?amZp9hyr|3+gIRuS{b4wkxbo18WC2oqUy(yEg<6|%{W zY!=nn_gXwKp|Jfv2|kF-j>~(s^&WoNjG)$PyTsFvf6qbmbU{@8A4?PbADkf&sFCRf zpUTpReaQHf`1!z&ej5GaK11ta5Q$bFn@l8XOf0kLBB!D{5g$@fA1X2n8vTqS5LhfT z2VqA~OO5_*qS2R>pK?Gnq+vtpz@>o`4u!FN8!dij8UW(AO0CiQB( zvmkxbrzUDbmqJ3hO`T2h2q#$uCF@^YZ5^oDA-aHn8tcPs`7T{w5-Qpu_HzB1AY{24 zB+tI6?>f9SZ%IY#C~^~HM@Wl^aE`DDjoLyj z->P#r+!aRxb=*Q7&4nnUHAoTh&cg>%N0O`J9eHbsro_w=b-)Lw^Q7zg76-K>olrn2 zTz+I~xVvstBC2OF0&h96l6jcT|)4iFp{*oaw2Vv9GMWH z$ja+9oWZT;8{uZzjte=;UXoE0^<5xsxhk%crT8y_#|*E%tidfkiqVFt>%;!A)jC|55E~ zG1YP5h1`EzsAV_Tz^W!Oaehfq^+GS2_8_90N2iz3DU-}!z(D2IDLNb2GXdv>-#Vj` zsBliGq7%!Ixh$=}E7g{T|4PP$`9|cy^c`6+9-8=wdt=8q*}Qes`VZ@6C(Ovb`5gy? zXH`DiN5wE;4egN{$lRz68I`IN)%IE$oMwzr#wq_5~qVEj|I`X>t{Fc0fyKQ=b^hI}xIY zi>ntqM2k5-xZkZh-3*#}GB$!=aPWvXu&A6Dj;_=xPUClxPOJ}2S|UeI9_zIzCf7R|4%+|I42{07HA$&tNJ%W-XwT*=x7~7|m#bo|8R_>t zPur|2LCtGDEZD$ZF{GW1S+Un}k@he)pTu9%k3~`#!nB@E#OgkNfzyc_jQ}lvze&z^ zPn(UCqD(I67&5t~{u9$5c0U(q&X)SWxR#c^?LfWPK;8RZ^Eg3o$C3TuTxkPFc0Q-9 zyUtuO@mSZHX<1b2>b2s|bn5MR3@BC(@WZ5-J{vcj#2y$* zf41TeX}_X+X!~Ut9UsGVqZyUOF-&DEtc<(%LW4bu9O?69KX z@>oq>Oih&uHCa{j4~5?|0e;+HEB^Ttv>Nr#|1Od=?w>D8(%{4$|8v^(h6)q=1Zrxb zB*k~=Gxp5jDGt0}4hDo5aKbK!)pClz{Rmg%6$dLNU0Oca%UxH~>yvOF76;!qb8N?% zbA{s{%Mgx7oS(;02znqaSKcu0?kl#mc(JAV!(zqDc9_IPg0P#uWa~=i2Y1Rf%YX0q zHNWqsGa|HX(s|g!Ln99n9wMX;NQ%gxz2jWB z?A+^`_L^6&V>Ayc-=^K--A%D2Y?C=y%fnCdASnj{)FcpX2Q*5WD?;jkqyrAvTYd-7 zdtP&sqC7C$k}}9U&UNr3{xf&hWq7CW7bmx?QZ_Cx6yo8Yw6FY^h#q88vGuml*AY3} z?R@(W3m=PbQSOkp+)qC( zJ^qfwpI5B(A17-6c}j!> zikR*qG4oN}vz4NoGUm=_EKTJEMJPVIj!>MJMfJm2=(oz>EoY_Pr&pI9h1eXW&#}@& z^F=`=5K;UNlm5&6MLZ^F$})iPSf-6JHKMu4!eac78yE^&0-go5?>L=?0TDs+IidC= z-yyCoUSo6@H69zQQ9XCZP;1Oyv(kQfQX6+z|H!I0jh2xNNGiEkD=7=_S)eXl+Bqbl zoj&|^jvqOpp~Ld=?}?(P`-^E><)74dl~dm=Dxkj3PJQ>Zs4w35#QNgRl={w&*C+ia z+GLu`sr4+t{`>}W5mM;%W_^MkD|vH-hx{j+t;UT77iIV|^l+J(2xPR2-`^HvByIT< zhFmdATf@C&`Ae+1$APSB+%=S8wVz_kDHaO@koAA38r0_r`7A)Cdx&(8Y>LefYA=p$ zu0n)%OzClH73amO*pKv9JMIQ*h%cC9Fy>WjLv~o#<<~`y4Qxw}Y;9?eru-TFFJ5<= z@K_9f>Yu?+ZwVg)z4$l;vUKB#Ob16c<>x11Rx5W97SKxHqkq`{Ek($CnEha)e-y@0 zYAYz!+7sT2&r{0&#i7MA?dsB$2$XjANwbL7ZO4%6#RDRwlj2m>iy;YtsObZ>ydsNR z`@59>+a5FMwAQc$m+IFX^4uk3R?O({{s&*g=^v<(89Hey+x1iz$k`C6k$@=H_lK>I ze8G7|Yg^a{j{0%CR;m84Lyd#NSeK>cp2EhM(|-*vZ$+ z{JFH)`d7J-9tEunTyUfTqiQ!iVB(-e5O@NMbSCo+5DRAA4aB%D62&FScbZtrY>Vg< zT+U)~^77ROW%BEhylVBYWL1OE{IkXC=r^qBrz~{$ziG8nM`84iXR935C0<6O%Ld3V(}>%NEM*ubYO^> zcR}#885#&)IZiD4%2x9wKwbohAaQa+d`@TKpT>N19&G;k8oP#ucv$6U%d2z{Sy#VG zv-+9mpX6CW9%JJfZXt19etJkdf((oku zzM!u+J}iWRUlheSrml)vpzL7ls(4E959L;~zQq8hjwiXqq^3;|;z#tA%^>ymr3-)M z{MVEzH`b)^K`z1+ZSwDQ1ewVoZidjCOjVLRTKX!uG?LYrwAocLLg1SmH%kt}S0&Rq zWD=|={+qPq^(A=+d=2GyN3(pZBCG3*Hqve+ru+Y6?_J=dEUw1?-6RV^2v5*NqXr2I z8ZJ_zpr*1lD_PlZPc=g32YhiRAHdk*auUwPI_%w6;>K2r80*5I~FJ zqN1RH7kt*WT$Q`*?|WvR-E2_WzHjUM{(k?z`DFH)%b7E0X3pHs%$zw^XMw&TMSiF# zSwhOaj}kevNwM5hut&VJF7pyX^x31VKXD+a6NTOMLj+R3XNm7_riXf#7yA-x zdVj6gKf2E$$K!}-KM4#AWS8qz;ZIt3A3|=Dkh>*>`Vmirgx>Mu8OD>#V+uI3j%Oi# zW*48?QT3vFjgcm=qXP*4Qumi#BZ=e3_d9lTP`zaKi~jF4rYzNI&v^G zRAtTVld{c9*`7?= zfSHdG6>BRo>oA{TxWAp)i^-%3%Jovw&?JZVdtu}P%{iDLW+J`i$nbb9X!4d>97xksPHqCp4l)h(_%vgbHs+6CmwH~(U8 zz4~4|l4kTu2E|CD<$7c^r^F*nlr=TrUYgkGn?F=R9R*aZKy_K(iS5<)a(|U^*t1wf zj#?#SEcaQ(Uo#bd9TN7{Go0d^e~H4EC-|09ioW^7lt;dJ$PPu5pW}A&kx)J|$nufF znqDEi23-j4$+$izO@~nbaE1z4s%{h6Qpn$Pw50t&!oFLHb@ z#h1f>nf^7I{lpFMz>Csr z>CBAU)kI5mXuC+v9L5$&|K;dAN;GTQ1JawV1CHw&;m&D2ezHMDV>5ll~P{`jP|ejsdSwxf!m2*F0X7URb$?=B%063Vmg|QxKn6i5*Y2j zH#>!f!=6I8xkQLQ8HaD`K{t%TEDBg0E^*YouOfQS`yJB-HY7me&HAkxgLglbJlh`o zoZ|4!A3^!WMEj6${z$P}%6getYn1hJtnmrH`KMD2@o~QS&)^*&h4_WYVC6f= zH-G<~QlFptUUsLIP~E9;iyka4ctT~VTPjO&x!TczjKPR}?SMU+SPguO$zm zfldu`p)}fm^zBaV%55dN0e%4t!>pG!w&1CIL{f9 z>=Tj{9G~)Pj~A0*%e(4soyAE=`t^KmS?Kl@mqn%U0qhRw{;FMltjFn7S-9 zv!T3b&j5G$hy~9=5O-^a&0SCyrGn+u?Z*N0eF#KxpNP&Hd__&Zngl2Lj;0C}JkYUr zI3V4VM*57$Rqc&_k`aBB)G5QE_8KZ)LGASf6p_0!yx{uS>Du=X_%gpB;1nm|I0BG~ zWpSZ*Ehl1%5&xEA&d036e25W|a9`*+8*?7!BFsq4PcdULH(~C?L@_flk753Z`77pC z%p%O27?J;Wz$Eo)hegNr;>FP*rzAvBkt=J9|JIQ?M_#JrLyM;A68Mq1 z-&uD~J)0t+On9Tj`+EuH!jY3~VcJm{L|M=mmu2`fzj3Ox35&DRtcpGIgzRyopHH$p z!<^JkcGAjs(n95{w^XOK)JaR$Trxvyk>@LVk8&_@rsrFS_C==k=_3v;PwDn^6jUhr z5+x@4dnx|9>oEY2an|C|ACu?Owd|Khy{D#UVhzeTq3yA|R5>&YZ7pSR$a+%IcZ)z$ zdf!E#I{%fVuZ^NlQx&^`WKxuUDJ|qvhq9fenlfn;_Y28yLQcoSkkeWo1wDufPzvbz zs7@2rpF(p={?{6BxE)tnxPP!!#u4uvf#YaY>ufqD_pS3fDSez%6#DNF_{oKyq0EI; zd(T(pYTx;|v+zZbb#&9YGFO%~>ys>|SIp1xzA=4pGetoMae)&@-*tCUrHV5SDStBX zb**GHq0U{6k+GhdNG;yKwSKp}i__r8rNKMsTbHMP&x?6p!v1hP7ps@?T>Jw(u?del z`vKmtgO96Q(?&S>>%0if?>hvEk4VItOykbHGn$8>oQsStiM+sP+G0-utR= z!KtXB>Mn*9^|Y9X8~r#^@&hfO_&Cy1Bv++nQN$sw^Cty&f{yg3v`913B1yTl;E#Hv zz*WT-Am$P7I0RqI{D10~>co)ciT*5kii4RTE9j@xaJxS;rO0K}%Xz6F_sXN*GeD~g z>k?4g8}@(0@cV}S^vz6R{I$%s|2Br9H(~D@%f2m)T0%VGrmqq1#^lm?HSVR9(wOFy2z9!syIilH98Yg;1}KRGTwl)=NVK3!LU1 z-Q=&&C|u&dI}=`f#lgVZKY3!@s8xzwquzTTaN6)iifH@wUki<@XyshlIdAL|jxMrK zh8U#-K7r6SEV8{3bayo1C=udJK6!W4JCcN6hXnM;4cex5g!_{G*-rAZ*HBDT2$pj3 zZYbbKCDVRKqdFH<+|;p;yN)^6q*{B&wTcy99Zjk7ZsgUeItu@S8_FE;XdUYVJRumRTCf&m|?+k3QTz+(SbQ2Y( zltbA&<4pa#)CdkWA4=1&6iA&qF!%Gi+YH5#XtksPUo?JS!mOH6VO}$lV2pS zaL6RC1x%9nksnr@K|r1YWKHGLOjw|hUNvBHtWBYqE~;B1Zvp}&MZNYzPA^my zdu1!b^S90`sWI&NDZ)(OJ%*h^mDJqlu*11fLG3>ONctG7d9%WNwSl}=n17Y3;2hQK$-4&0Yan^lw#?Uz;^v*k$YmJ5BUZ}u zl6@B5a)~P!l+T97Gyf|{Vje*5rVXTNKKsAj8*{Spr~zAW%4 z_td0&=#T|%@Uh3?0qgIbq$xowLQ;uU=#1q2OOo%9O#VuTo_0x(3l5+Q*&cynsTOtJ1==q zpbgkL|I7#!7nPx_K^o5yeTy8wh;cE-@$;oUxwa^O0c6qY((comm0 z>7xrKDDVsi{M+MI`ds}vK>}IdI@Kgonwoo){I4l^{y|NFqD&@g?@OPxSqL(u0UQT8 zE*gU-XXPG6&PIWen-GoKeL`IBP1)5BE=6AJ_K6s+)p{b^q47J{6YHl-ZWTkv3~-Xr z1EiSrIxtg)jcEu|R7?L)ttZs-Z`>WJvTJ?*t_UK^p-W8%+bC-6TOcI4WLTungSd)} zI=PMZOh)KOk&WM&1IsL>j1w)&U7{By%!giNe2DCIhpFv*XHm^k#vZv2C+hQDxuNq# zOAuSPWpKkMw`*dGlR7>A1uY}j-LE)h?E||LHG>Bhf#os5Vol4H;yUd7KW+YWgOjS< zcPMbmSkFV##s@vsI@bZ^sOGdH2Q*uT=X}jBOXzIji@^}1xSZ>V$nN0hXLP`6PQZ8Y z^CA4Q_BLG<-^nk}-P6Jx8}3*9@-vlyW}&yl%bHgFALkeQ#Pi4vORwbKI|JV~