vst3sdk-3.7.10.14+~4.13.3/000077500000000000000000000000001461511344300143505ustar00rootroot00000000000000vst3sdk-3.7.10.14+~4.13.3/LICENSE.txt000066400000000000000000000035001461511344300161710ustar00rootroot00000000000000//----------------------------------------------------------------------------- // LICENSE // (c) 2024, Steinberg Media Technologies GmbH, 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 the Steinberg Media Technologies 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 OWNER 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. //----------------------------------------------------------------------------- vst3sdk-3.7.10.14+~4.13.3/README.md000066400000000000000000000044421461511344300156330ustar00rootroot00000000000000# Welcome to VST 3 SDK cmake This repository contains Steinberg's [cmake modules](https://cmake.org/cmake/help/latest/manual/cmake-modules.7.html) and template files which can be used to create **VST 3** plug-ins for platforms like Windows, macOS, iOS and Linux. For more information about cmake visit [cmake.org](https:://www.cmake.org/). ## Dependency map In order to build a plug-in successfully, it only needs to link to ```sdk``` library. [VSTGUI](https://steinbergmedia.github.io/vst3_dev_portal/pages/What+is+the+VST+3+SDK/VSTGUI.html) is optional and can be used by linking to ```vstgui_support```. The following figure shows the dependency map by using AGain, [EditorHost](https://steinbergmedia.github.io/vst3_dev_portal/pages/What+is+the+VST+3+SDK/EditorHost.html) and [VST3Inspector](https://steinbergmedia.github.io/vst3_dev_portal/pages/What+is+the+VST+3+SDK/VST3Inspector.html): ```tree again +-- sdk | +-- sdk_common | +-- base | +-- pluginterfaces | +-- vstgui_support +-- base +-- vstgui_uidescription +-- vstgui ``` ```tree editorhost +-- sdk_hosting +-- sdk_common +-- base +-- pluginterfaces ``` ```tree VST3Inspector +-- vstgui_uidescription | +-- vstgui +-- vstgui_standalone +-- vstgui ``` ## Naming conventions and guidelines Steinberg module, macro, function and variable names have the prefix ```SMTG_``` or ```smtg_``` in order to avoid name clashes. ### File namings Steinberg module names are written in camel case and have the prefix ```SMTG_```. Examples: ```c SMTG_AddVST3Library.cmake SMTG_DetectPlatform.cmake SMTG_ConfigureCmakeGenerator.cmake ``` ### Macro and function namings Steinberg macro and function names are written in lower case and have the prefix ```smtg_``` followed by a verb. Examples: ```c smtg_detect_platform smtg_configure_cmake_generator smtg_setup_symbol_visibility smtg_detect_xcode_version ``` ### Variable namings Steinberg variable names are written in upper case and have the prefix ```SMTG_```. Examples: ```c SMTG_PLUGIN_BINARY_DIR SMTG_PLUGIN_EXTENSION SMTG_PLUGIN_PACKAGE_NAME ``` ## License & Usage guidelines More details can be found at [www.steinberg.net/sdklicenses_vst3](http://www.steinberg.net/sdklicenses_vst3) ---- Return to [VST 3 SDK](https://github.com/steinbergmedia/vst3sdk) vst3sdk-3.7.10.14+~4.13.3/modules/000077500000000000000000000000001461511344300160205ustar00rootroot00000000000000vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_AAXSupport.cmake000066400000000000000000000036261461511344300216710ustar00rootroot00000000000000 #------------------------------------------------------------------------ function(setupAaxSupport) # AAX SDK Location if(SMTG_MAC OR SMTG_WIN) if("${SMTG_AAX_SDK_PATH}" STREQUAL "") # Check if the AAX SDK is next to the vst3sdk folder: set(AAX_SDK_PATH ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/../../../external.avid.aax) if(NOT EXISTS "${AAX_SDK_PATH}/Interfaces/AAX.h") # Check if the AAX SDK is in the vst3sdk folder: set(AAX_SDK_PATH ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/../../external.avid.aax) if(NOT EXISTS "${AAX_SDK_PATH}/Interfaces/AAX.h") set(AAX_SDK_PATH "") endif() endif() if(NOT "${AAX_SDK_PATH}" STREQUAL "") get_filename_component(AAX_SDK_PATH "${AAX_SDK_PATH}" ABSOLUTE) endif() set(SMTG_AAX_SDK_PATH "${AAX_SDK_PATH}" CACHE PATH "Here you can define where to find the AAX SDK" FORCE) else() set(AAX_SDK_PATH "${SMTG_AAX_SDK_PATH}") if(NOT IS_ABSOLUTE ${AAX_SDK_PATH}) get_filename_component(AAX_SDK_PATH "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/../../${AAX_SDK_PATH}" ABSOLUTE) endif() if(NOT EXISTS "${AAX_SDK_PATH}/Interfaces/AAX.h") message(FATAL_ERROR "[SMTG] SMTG_AAX_SDK_PATH is set but does not point to an expected location!") else() set(SMTG_AAX_SDK_PATH "${AAX_SDK_PATH}" CACHE PATH "Here you can define where to find the AAX SDK" FORCE) endif() endif() if(EXISTS "${SMTG_AAX_SDK_PATH}") message(STATUS "[SMTG] SMTG_AAX_SDK_PATH is set to: " ${SMTG_AAX_SDK_PATH}) else() message(STATUS "[SMTG] SMTG_AAX_SDK_PATH is not set. If you need it, please download the AAX SDK!") endif() endif(SMTG_MAC OR SMTG_WIN) endfunction(setupAaxSupport) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_AddAAXLibrary.cmake000066400000000000000000000053611461511344300222300ustar00rootroot00000000000000 #------------------------------------------------------------------------ # Includes #------------------------------------------------------------------------ include(SMTG_AddSMTGLibrary) #------------------------------------------------------------------------ # Returns the Windows architecture. # # This name will be used as a folder name inside the Plug-in package. # The variable SMTG_WIN_ARCHITECTURE_NAME will be set. # @param target The target to which SMTG_WIN_ARCHITECTURE_NAME will be added. function(smtg_target_set_aax_win_architecture_name target) if(${GENERATOR_PLATFORM} MATCHES "win32") set(WIN_ARCHITECTURE_NAME "win32") else() set(WIN_ARCHITECTURE_NAME "x64") endif() set_target_properties(${target} PROPERTIES SMTG_WIN_ARCHITECTURE_NAME ${WIN_ARCHITECTURE_NAME} ) endfunction(smtg_target_set_aax_win_architecture_name) #------------------------------------------------------------------------ # Adds a AAX target. # # @param target The target to which a AAX Plug-in will be added. # @param pkg_name name of the created package # for example: # smtg_add_aaxplugin_with_pkgname(${target} "A Gain" ${again_sources}) function(smtg_add_aaxplugin_with_pkgname target pkg_name) add_library(${target} MODULE ${ARGN}) smtg_target_set_aax_win_architecture_name(${target}) smtg_target_make_plugin_package(${target} ${pkg_name} aaxplugin) # smtg_dump_plugin_package_variables(${target}) if(SMTG_MAC AND XCODE) # disable automatic signing for AAX set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "" ) endif(SMTG_MAC AND XCODE) endfunction(smtg_add_aaxplugin_with_pkgname) #------------------------------------------------------------------------ # Adds a AAX target. # # @param target The target to which a AAX Plug-in will be added. # @param PACKAGE_NAME The name of the package [optional] if not present # @param SOURCES_LIST List of sources to add to target project [mandatory when PACKAGE_NAME is used] # for example: # smtg_add_aaxplugin(${target} PACKAGE_NAME "A Gain" SOURCES_LIST ${again_sources}) # or # smtg_add_aaxplugin(${target} ${again_sources}) function(smtg_add_aaxplugin target) set(oneValueArgs PACKAGE_NAME) set(sourcesArgs SOURCES_LIST) cmake_parse_arguments(PARSE_ARGV 0 PARAMS "${options}" "${oneValueArgs}" "${sourcesArgs}") set(SOURCES "${PARAMS_SOURCES_LIST}") if(SOURCES STREQUAL "") set(SOURCES ${ARGN}) endif() set(pkg_name "${PARAMS_PACKAGE_NAME}") if(pkg_name STREQUAL "") set(pkg_name ${target}) endif() smtg_add_aaxplugin_with_pkgname(${target} ${pkg_name} ${SOURCES}) endfunction(smtg_add_aaxplugin) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_AddCommonOptions.cmake000066400000000000000000000027461461511344300231020ustar00rootroot00000000000000 #------------------------------------------------------------------------ # Includes #------------------------------------------------------------------------ include(SMTG_Platform_Windows) # Use by default SMTG_ as prefix for ASSERT,... option(SMTG_RENAME_ASSERT "Rename ASSERT to SMTG_ASSERT" ON) # Logging option(SMTG_ENABLE_TARGET_VARS_LOG "Enable Target variables Logging" OFF) # Create Bundle on Windows for the Plug-ins if(SMTG_WIN) option(SMTG_CREATE_BUNDLE_FOR_WINDOWS "Create Bundle on Windows for the Plug-ins (New since VST 3.6.10!)" ON) endif(SMTG_WIN) # Specific Windows Stuff # Create Symbolic Link for the Plug-ins if(SMTG_WIN) set(DEF_OPT_LINK ON) # be sure to start visual with admin right or adapt the user Group Policy when enabling this else() set(DEF_OPT_LINK ON) endif(SMTG_WIN) option(SMTG_CREATE_PLUGIN_LINK "Create symbolic link for each Plug-in (you need to have the Administrator right on Windows! or change the Local Group Policy to allow create symbolic links)" ${DEF_OPT_LINK}) # Specific Mac Stuff if(SMTG_MAC) if(DEFINED SMTG_IOS_DEVELOPMENT_TEAM) set(DEF_OPT_BUILD_IOS ON) else() set(DEF_OPT_BUILD_IOS OFF) endif() option(SMTG_ENABLE_IOS_TARGETS "Enable building iOS targets" ${DEF_OPT_BUILD_IOS}) set(SMTG_CODE_SIGN_IDENTITY_MAC "Apple Development" CACHE STRING "macOS Code Sign Identity") set(SMTG_CODE_SIGN_IDENTITY_IOS "Apple Development" CACHE STRING "iOS Code Sign Identity") endif(SMTG_MAC) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_AddSMTGLibrary.cmake000066400000000000000000000655531461511344300224020ustar00rootroot00000000000000 #------------------------------------------------------------------------------- # Includes #------------------------------------------------------------------------------- include(CMakePrintHelpers) include(SMTG_UniversalBinary) include(SMTG_CodeSign) include(SMTG_SetDebugExecutable) include(SMTG_AddCommonOptions) # Customize output location for binaries by setting SMTG_CUSTOM_BINARY_LOCATION via command line # cmd: cmake -GXcode -DSMTG_CUSTOM_BINARY_LOCATION="MyPath" set(SMTG_CUSTOM_BINARY_LOCATION "" CACHE PATH "Customize output location for binaries") # define the C++ standard version to use for plugins set(SMTG_CXX_STANDARD "" CACHE STRING "C++ standard version used for plugins: 14, 17, 20, 23") #------------------------------------------------------------------------ # Returns the windows architecture. # # This name will be used as a folder name inside the Plug-in package. # The variable SMTG_WIN_ARCHITECTURE_NAME will be set. function(smtg_target_set_vst_win_architecture_name target) if(SMTG_WIN) if(DEFINED CMAKE_GENERATOR_PLATFORM AND CMAKE_GENERATOR_PLATFORM) string(TOLOWER ${CMAKE_GENERATOR_PLATFORM} GENERATOR_PLATFORM) elseif(DEFINED CMAKE_MODULE_LINKER_FLAGS AND CMAKE_MODULE_LINKER_FLAGS) string(TOLOWER ${CMAKE_MODULE_LINKER_FLAGS} GENERATOR_PLATFORM) endif() if(${GENERATOR_PLATFORM} MATCHES "arm64ec") set(WIN_ARCHITECTURE_NAME "arm64ec") elseif(${GENERATOR_PLATFORM} MATCHES "arm64") set(WIN_ARCHITECTURE_NAME "arm64") elseif(${GENERATOR_PLATFORM} MATCHES "arm") set(WIN_ARCHITECTURE_NAME "arm") elseif(${GENERATOR_PLATFORM} MATCHES "win32") set(WIN_ARCHITECTURE_NAME "x86") else() set(WIN_ARCHITECTURE_NAME "x86_64") endif() set(WIN_ARCHITECTURE_NAME ${WIN_ARCHITECTURE_NAME}-win) set_target_properties(${target} PROPERTIES SMTG_WIN_ARCHITECTURE_NAME ${WIN_ARCHITECTURE_NAME} ) endif(SMTG_WIN) endfunction(smtg_target_set_vst_win_architecture_name) #------------------------------------------------------------------------ # Prints out all relevant properties of a target for debugging. # # @param target The target whose properties will be printed. function(smtg_target_dump_plugin_package_variables target) cmake_print_properties( TARGETS ${target} PROPERTIES SMTG_PLUGIN_PACKAGE_NAME SMTG_PLUGIN_BINARY_DIR SMTG_PLUGIN_EXTENSION LIBRARY_OUTPUT_DIRECTORY SMTG_PLUGIN_PACKAGE_PATH SMTG_PLUGIN_PACKAGE_CONTENTS SMTG_PLUGIN_PACKAGE_RESOURCES SMTG_PLUGIN_PACKAGE_SNAPSHOTS SMTG_WIN_ARCHITECTURE_NAME ) endfunction(smtg_target_dump_plugin_package_variables) #------------------------------------------------------------------------ # Strips all symbols on linux # # @param target The target whose build symbols will be stripped function(smtg_target_strip_symbols target) add_custom_command( TARGET ${target} POST_BUILD COMMAND ${CMAKE_STRIP} $ENV{CROSS_COMPILE} --strip-debug --strip-unneeded $ ) endfunction(smtg_target_strip_symbols) #------------------------------------------------------------------------ #! smtg_target_strip_symbols_with_dbg : Strips all symbols on and creates debug file on Linux # # @param target The target whose build symbols will be stripped function(smtg_target_strip_symbols_with_dbg target) add_custom_command( TARGET ${target} POST_BUILD # Create a target.so.dbg file with debug information COMMAND ${CMAKE_OBJECT_COPY} $ENV{CROSS_COMPILE}objcopy --only-keep-debug $ $.dbg COMMAND ${CMAKE_STRIP} $ENV{CROSS_COMPILE} --strip-debug --strip-unneeded $ COMMAND ${CMAKE_OBJECT_COPY} $ENV{CROSS_COMPILE}objcopy --add-gnu-debuglink=$.dbg $ ) endfunction(smtg_target_strip_symbols_with_dbg) #------------------------------------------------------------------------ # Creates a symlink to the targets output resp Plug-in. # # A symlink to the output Plug-in will be created as a post build step. # # @param target The target whose output is the symlink's source. function(smtg_target_create_link_to_plugin target destination) if(${destination} STREQUAL "") message(FATAL_ERROR "[SMTG] no destination defined!") endif() get_target_property(PLUGIN_PACKAGE_NAME ${target} SMTG_PLUGIN_PACKAGE_NAME) get_target_property(TARGET_SOURCE ${target} SMTG_PLUGIN_PACKAGE_PATH) set(TARGET_DESTINATION ${destination}) if(SMTG_WIN) get_target_property(PLUGIN_BINARY_DIR ${target} SMTG_PLUGIN_BINARY_DIR) file(TO_CMAKE_PATH "${TARGET_DESTINATION}/${PLUGIN_PACKAGE_NAME}" SRC_NATIVE_PATH) file(TO_CMAKE_PATH "${PLUGIN_BINARY_DIR}/Debug/${PLUGIN_PACKAGE_NAME}" TARGET_DESTINATION_DEBUG) file(TO_CMAKE_PATH "${PLUGIN_BINARY_DIR}/Release/${PLUGIN_PACKAGE_NAME}" TARGET_DESTINATION_RELEASE) add_custom_command( TARGET ${target} POST_BUILD COMMAND ${CMAKE_COMMAND} -E echo [SMTG] Delete previous link... COMMAND ${CMAKE_COMMAND} -E rm -rf "${SRC_NATIVE_PATH}" COMMAND ${CMAKE_COMMAND} -E echo [SMTG] Creation of the new link... COMMAND ${CMAKE_COMMAND} -E create_symlink "$<$:${TARGET_DESTINATION_DEBUG}>" "$<$:${TARGET_DESTINATION_RELEASE}>" "${SRC_NATIVE_PATH}" COMMAND ${CMAKE_COMMAND} -E echo [SMTG] Finished. ) else() add_custom_command( TARGET ${target} POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "${TARGET_DESTINATION}" COMMAND ln -svfF "${TARGET_SOURCE}" "${TARGET_DESTINATION}" ) endif(SMTG_WIN) endfunction(smtg_target_create_link_to_plugin) #------------------------------------------------------------------------ # Customizes folder icon on windows # # Customizes folder icon on windows by copying desktop.ini and PlugIn.ico into the package. # # @param target The target whose folder icon will be customized. function(smtg_target_add_folder_icon target icon) set(DESKTOP_INI_PATH ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/../templates/desktop.ini.in) get_target_property(PLUGIN_PACKAGE_PATH ${target} SMTG_PLUGIN_PACKAGE_PATH) add_custom_command( TARGET ${target} POST_BUILD COMMENT "[SMTG] Copy PlugIn.ico and desktop.ini and change their attributes." COMMAND ${CMAKE_COMMAND} -E copy ${icon} ${PLUGIN_PACKAGE_PATH}/PlugIn.ico COMMAND ${CMAKE_COMMAND} -E copy ${DESKTOP_INI_PATH} ${PLUGIN_PACKAGE_PATH}/desktop.ini COMMAND attrib +s ${PLUGIN_PACKAGE_PATH}/desktop.ini COMMAND attrib +s ${PLUGIN_PACKAGE_PATH}/PlugIn.ico COMMAND attrib +s ${PLUGIN_PACKAGE_PATH} ) endfunction(smtg_target_add_folder_icon) #------------------------------------------------------------------------ # Adds the Plug-in's main entry point. # # The variable public_sdk_SOURCE_DIR needs to be specified. # # @param target The target to which the main entry point will be added. function(smtg_target_add_library_main target) if(public_sdk_SOURCE_DIR) if(SMTG_MAC) target_sources (${target} PRIVATE ${public_sdk_SOURCE_DIR}/source/main/macmain.cpp ) elseif(SMTG_WIN) target_sources (${target} PRIVATE ${public_sdk_SOURCE_DIR}/source/main/dllmain.cpp ) elseif(SMTG_LINUX) target_sources (${target} PRIVATE ${public_sdk_SOURCE_DIR}/source/main/linuxmain.cpp ) endif(SMTG_MAC) endif(public_sdk_SOURCE_DIR) endfunction(smtg_target_add_library_main) #------------------------------------------------------------------------ # Returns the linux architecture name. # # This name will be used as a folder name inside the Plug-in package. # The variable LINUX_ARCHITECTURE_NAME will be set. function(smtg_get_linux_architecture_name) if(ANDROID) set(ARCHITECTURE ${CMAKE_ANDROID_ARCH_ABI}) set(LINUX_ARCHITECTURE_NAME ${ARCHITECTURE}-android PARENT_SCOPE) else() # Check if we are cross-compiling for a different architecture if(NOT $ENV{CROSS_COMPILE} STREQUAL "") string(REGEX MATCH "^[A-Z|a-z|0-9|_]*-" CROSS_COMPILE_PREFIX $ENV{CROSS_COMPILE}) # Strip trailing - from regex result string(LENGTH ${CROSS_COMPILE_PREFIX} CROSS_COMPILE_PREFIX_LEN) math(EXPR CROSS_COMPILE_PREFIX_LEN "${CROSS_COMPILE_PREFIX_LEN} -1") string(SUBSTRING ${CROSS_COMPILE_PREFIX} 0 ${CROSS_COMPILE_PREFIX_LEN} ARCHITECTURE) else() EXECUTE_PROCESS( COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE ) endif() set(LINUX_ARCHITECTURE_NAME ${ARCHITECTURE}-linux PARENT_SCOPE) endif(ANDROID) endfunction(smtg_get_linux_architecture_name) #------------------------------------------------------------------------ # Fatal error if PROJECT_VERSION is not defined # function(smtg_target_check_project_version target) if(NOT PROJECT_VERSION) # See: https://cmake.org/cmake/help/latest/variable/PROJECT_VERSION.html message(FATAL_ERROR "[SMTG] PROJECT_VERSION is not defined for target: \"${target}\". " "To fix this, set the VERSION option of the most recent call of " "the cmake project() command e.g. project(myPlugin VERSION 1.0.0)" ) endif() endfunction() #------------------------------------------------------------------------ # Prepare the target to build a Plug-in package. # # @param target The target whose output will be put into a package. # @param extension The package's extension function(smtg_target_make_plugin_package target pkg_name extension) smtg_target_check_project_version("${target}") if(${pkg_name} STREQUAL "") set(pkg_name ${target}) endif() set(pkg_extension ${extension}) if(SMTG_WIN) if(${extension} STREQUAL "bundle") set(extension dll) if(NOT SMTG_CREATE_BUNDLE_FOR_WINDOWS) set(pkg_extension dll) endif(NOT SMTG_CREATE_BUNDLE_FOR_WINDOWS) endif() endif(SMTG_WIN) string(TOUPPER ${extension} PLUGIN_EXTENSION_UPPER) if(SMTG_CUSTOM_BINARY_LOCATION) set(SMTG_PLUGIN_BINARY_LOCATION ${SMTG_CUSTOM_BINARY_LOCATION}) else() set(SMTG_PLUGIN_BINARY_LOCATION ${CMAKE_BINARY_DIR}) endif(SMTG_CUSTOM_BINARY_LOCATION) set_target_properties(${target} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${SMTG_PLUGIN_BINARY_LOCATION}/${PLUGIN_EXTENSION_UPPER} SMTG_PLUGIN_BINARY_DIR ${SMTG_PLUGIN_BINARY_LOCATION}/${PLUGIN_EXTENSION_UPPER} SMTG_PLUGIN_EXTENSION ${extension} SMTG_PLUGIN_PACKAGE_NAME ${pkg_name}.${pkg_extension} SMTG_PLUGIN_PACKAGE_CONTENTS Contents SMTG_PLUGIN_PACKAGE_RESOURCES Contents/Resources SMTG_PLUGIN_PACKAGE_SNAPSHOTS Snapshots ) get_target_property(PLUGIN_BINARY_DIR ${target} SMTG_PLUGIN_BINARY_DIR) get_target_property(PLUGIN_EXTENSION ${target} SMTG_PLUGIN_EXTENSION) get_target_property(PLUGIN_PACKAGE_NAME ${target} SMTG_PLUGIN_PACKAGE_NAME) smtg_target_add_library_main(${target}) if(SMTG_CXX_STANDARD) target_compile_features(${target} PRIVATE cxx_std_${SMTG_CXX_STANDARD} ) endif(SMTG_CXX_STANDARD) if(SMTG_MAC) set_target_properties(${target} PROPERTIES BUNDLE TRUE ) if(XCODE) set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_GENERATE_PKGINFO_FILE YES XCODE_ATTRIBUTE_WRAPPER_EXTENSION ${PLUGIN_EXTENSION} XCODE_ATTRIBUTE_GCC_GENERATE_DEBUGGING_SYMBOLS YES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT $<$:dwarf>$<$:dwarf-with-dsym> XCODE_ATTRIBUTE_DEPLOYMENT_POSTPROCESSING $<$:NO>$<$:YES> ) if(SMTG_CUSTOM_BINARY_LOCATION) set_target_properties(${target} PROPERTIES SMTG_PLUGIN_PACKAGE_PATH ${PLUGIN_BINARY_DIR}/${PLUGIN_PACKAGE_NAME} ) else() set_target_properties(${target} PROPERTIES SMTG_PLUGIN_PACKAGE_PATH ${PLUGIN_BINARY_DIR}/$<$:Debug>$<$:Release>/${PLUGIN_PACKAGE_NAME} ) endif(SMTG_CUSTOM_BINARY_LOCATION) else() set_target_properties(${target} PROPERTIES BUNDLE_EXTENSION ${PLUGIN_EXTENSION} LIBRARY_OUTPUT_DIRECTORY ${PLUGIN_BINARY_DIR}/${CMAKE_BUILD_TYPE} SMTG_PLUGIN_PACKAGE_PATH ${PLUGIN_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${PLUGIN_PACKAGE_NAME} ) endif(XCODE) target_link_libraries(${target} PRIVATE "-framework CoreFoundation" ) smtg_target_setup_universal_binary(${target}) smtg_target_codesign(${target} ${SMTG_IOS_DEVELOPMENT_TEAM} "${SMTG_CODE_SIGN_IDENTITY_MAC}") elseif(SMTG_WIN) if(SMTG_CUSTOM_BINARY_LOCATION) set(PLUGIN_PACKAGE_PATH ${PLUGIN_BINARY_DIR}/${PLUGIN_PACKAGE_NAME}) else() set(PLUGIN_PACKAGE_PATH ${PLUGIN_BINARY_DIR}/$<$:Debug>$<$:Release>/${PLUGIN_PACKAGE_NAME}) endif(SMTG_CUSTOM_BINARY_LOCATION) set_target_properties(${target} PROPERTIES SUFFIX .${PLUGIN_EXTENSION} SMTG_PLUGIN_PACKAGE_PATH ${PLUGIN_PACKAGE_PATH} ) if(MSVC) if(CMAKE_SIZEOF_VOID_P EQUAL 4) set_target_properties(${target} PROPERTIES LINK_FLAGS /EXPORT:GetPluginFactory ) endif() endif(MSVC) if(MINGW) # no "lib" prefix for MinGw set_target_properties(${target} PROPERTIES PREFIX "" ) endif(MINGW) # In order not to have the PDB inside the Plug-in package in release builds, # we specify a different location (only for MSVC). if(MSVC) if(CMAKE_SIZEOF_VOID_P EQUAL 4) set(WIN_PDB WIN_PDB32) else() set(WIN_PDB WIN_PDB64) endif() set_target_properties(${target} PROPERTIES PDB_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${WIN_PDB} ) endif(MSVC) # Create Bundle on Windows if(SMTG_CREATE_BUNDLE_FOR_WINDOWS) get_target_property(WIN_ARCHITECTURE_NAME ${target} SMTG_WIN_ARCHITECTURE_NAME) # When using LIBRARY_OUTPUT_DIRECTORY, cmake adds another /Debug resp. /Release folder at the end of the path. # In order to prevent cmake from doing that we set LIBRARY_OUTPUT_DIRECTORY_DEBUG and LIBRARY_OUTPUT_DIRECTORY_RELEASE # (or LIBRARY_OUTPUT_DIRECTORY_${CONFIG_UPPERCASE}) directly. get_target_property(PLUGIN_PACKAGE_CONTENTS ${target} SMTG_PLUGIN_PACKAGE_CONTENTS) foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES}) string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG_UPPER) if(SMTG_CUSTOM_BINARY_LOCATION) set_target_properties(${target} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG_UPPER} ${PLUGIN_BINARY_DIR}/${PLUGIN_PACKAGE_NAME}/${PLUGIN_PACKAGE_CONTENTS}/${WIN_ARCHITECTURE_NAME} ) else() set_target_properties(${target} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG_UPPER} ${PLUGIN_BINARY_DIR}/${OUTPUTCONFIG}/${PLUGIN_PACKAGE_NAME}/${PLUGIN_PACKAGE_CONTENTS}/${WIN_ARCHITECTURE_NAME} ) endif(SMTG_CUSTOM_BINARY_LOCATION) endforeach() if(EXISTS ${SMTG_PACKAGE_ICON_PATH}) smtg_target_add_folder_icon(${target} ${SMTG_PACKAGE_ICON_PATH}) endif() endif(SMTG_CREATE_BUNDLE_FOR_WINDOWS) # Disable warning LNK4221: "This object file does not define any previously undefined public symbols...". # Enable "Generate Debug Information" in release config by setting "/Zi" and "/DEBUG" flags. if(MSVC) target_compile_options(${target} PRIVATE /wd4221 $<$:/Zi> ) set_property(TARGET ${target} APPEND PROPERTY LINK_FLAGS_RELEASE /DEBUG ) endif(MSVC) elseif(SMTG_LINUX) smtg_get_linux_architecture_name() # Sets var LINUX_ARCHITECTURE_NAME message(STATUS "[SMTG] Linux architecture name is ${LINUX_ARCHITECTURE_NAME}.") get_target_property(PLUGIN_PACKAGE_CONTENTS ${target} SMTG_PLUGIN_PACKAGE_CONTENTS) set_target_properties(${target} PROPERTIES PREFIX "" LIBRARY_OUTPUT_DIRECTORY ${PLUGIN_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${PLUGIN_PACKAGE_NAME}/${PLUGIN_PACKAGE_CONTENTS}/${LINUX_ARCHITECTURE_NAME} SMTG_PLUGIN_PACKAGE_PATH ${PLUGIN_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${PLUGIN_PACKAGE_NAME} ) # Strip symbols in Release config if(${CMAKE_BUILD_TYPE} MATCHES Release) smtg_target_strip_symbols(${target}) elseif(${CMAKE_BUILD_TYPE} MATCHES RelWithDebInfo) smtg_target_strip_symbols_with_dbg(${target}) endif() endif(SMTG_MAC) smtg_target_create_resources_folder(${target}) endfunction(smtg_target_make_plugin_package) #------------------------------------------------------------------------ # Create "Resources" folder for a target # # @param target cmake target function(smtg_target_create_resources_folder target) get_target_property(DISABLE_CREATE_RESOURCE_FOLDER ${target} SMTG_DISABLE_CREATE_RESOURCE_FOLDER) if(DEFINED DISABLE_CREATE_RESOURCE_FOLDER AND DISABLE_CREATE_RESOURCE_FOLDER EQUAL 1) return() endif() get_target_property(PLUGIN_PACKAGE_PATH ${target} SMTG_PLUGIN_PACKAGE_PATH) get_target_property(PLUGIN_PACKAGE_RESOURCES ${target} SMTG_PLUGIN_PACKAGE_RESOURCES) set(resources_folder "${PLUGIN_PACKAGE_PATH}/${PLUGIN_PACKAGE_RESOURCES}") add_custom_command( TARGET ${target} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "${resources_folder}" ) endfunction() #------------------------------------------------------------------------ # Adds a resource for a target # # The resource which gets copied into the targets Resource Bundle directory. # # @param target cmake target # @param input_file resource file # @param ARGV2 destination subfolder inside the Resource folder [optional] function(smtg_target_add_plugin_resource target input_file) if(SMTG_LINUX OR (SMTG_WIN AND SMTG_CREATE_BUNDLE_FOR_WINDOWS)) get_target_property(PLUGIN_PACKAGE_PATH ${target} SMTG_PLUGIN_PACKAGE_PATH) get_target_property(PLUGIN_PACKAGE_RESOURCES ${target} SMTG_PLUGIN_PACKAGE_RESOURCES) set(destination_folder "${PLUGIN_PACKAGE_PATH}/${PLUGIN_PACKAGE_RESOURCES}") if(ARGC GREATER 2 AND ARGV2) set(destination_folder "${destination_folder}/${ARGV2}") endif() # Make the incoming path absolute. get_filename_component(absolute_input_file_path "${input_file}" ABSOLUTE) # Extract the filename and its extension get_filename_component(file_name_with_extension "${input_file}" NAME) # Create absolute output file path set(absolute_output_file_path "${destination_folder}/${file_name_with_extension}") # Add the file as a source to the target target_sources(${target} PRIVATE ${input_file} ) # CMAKE_VS_MSBUILD_COMMAND is not defined when using "-G Ninja" generator but resolves to msbuild.exe when using "-G Visual Studio..." if(CMAKE_VS_MSBUILD_COMMAND) # Hacky workaround: replace all SMTG_PLUGIN_PACKAGE_NAME (e.g. again.vst3) # occurences by a MSVS macro $(TargetFileName). Using the cmake only approach does not work. get_target_property(PLUGIN_PACKAGE_NAME ${target} SMTG_PLUGIN_PACKAGE_NAME) string(REPLACE "${PLUGIN_PACKAGE_NAME}" "$(TargetFileName)" absolute_output_file_path ${absolute_output_file_path}) endif() # Create a custom build tool for the specific file add_custom_command( OUTPUT ${absolute_output_file_path} MAIN_DEPENDENCY ${absolute_input_file_path} COMMAND ${CMAKE_COMMAND} -E copy_if_different ${absolute_input_file_path} ${absolute_output_file_path} COMMAND ${CMAKE_COMMAND} -E echo "[SMTG] Copied ${absolute_input_file_path} to ${absolute_output_file_path}" ) elseif(SMTG_MAC) target_sources(${target} PRIVATE ${input_file} ) set(destination_folder "Resources") if(ARGC GREATER 2 AND ARGV2) set(destination_folder "${destination_folder}/${ARGV2}") endif() set_source_files_properties(${input_file} PROPERTIES MACOSX_PACKAGE_LOCATION "${destination_folder}" ) endif(SMTG_LINUX OR (SMTG_WIN AND SMTG_CREATE_BUNDLE_FOR_WINDOWS)) endfunction(smtg_target_add_plugin_resource) #------------------------------------------------------------------------ # Adds multiple snapshots to target. # # Usage: # smtg_target_add_plugin_snapshots (target # RESOURCES # bitmap0.png # bitmap1.png # ) # This adds both bitmaps to /Resources/Snapshots # # @param target The target to which the resources will be added. function(smtg_target_add_plugin_snapshots target) cmake_parse_arguments( PARSED_ARGS # Prefix of output variables e.g. PARSED_ARGS_RESOURCES "" # List of names for boolean arguments "" # List of names for mono-valued arguments "RESOURCES" # List of names for multi-valued arguments resp. lists ${ARGN} # Arguments of the function to parse ) get_target_property(PLUGIN_PACKAGE_SNAPSHOTS ${target} SMTG_PLUGIN_PACKAGE_SNAPSHOTS) foreach(rsrc ${PARSED_ARGS_RESOURCES}) smtg_target_add_plugin_resource (${target} ${rsrc} ${PLUGIN_PACKAGE_SNAPSHOTS}) endforeach() endfunction(smtg_target_add_plugin_snapshots) #------------------------------------------------------------------------ # Adds multiple resources to target. # # Usage: # smtg_target_add_plugin_resources (target # RESOURCES # bitmap0.png # bitmap1.png # OUTPUT_SUBDIRECTORY # Graphics # ) # This adds both bitmaps to /Resources/Graphics # # @param target The target to which the resources will be added. function(smtg_target_add_plugin_resources target) cmake_parse_arguments( PARSED_ARGS # Prefix of output variables e.g. PARSED_ARGS_RESOURCES "" # List of names for boolean arguments "OUTPUT_SUBDIRECTORY" # List of names for mono-valued arguments "RESOURCES" # List of names for multi-valued arguments resp. lists ${ARGN} # Arguments of the function to parse ) foreach(rsrc ${PARSED_ARGS_RESOURCES}) smtg_target_add_plugin_resource (${target} ${rsrc} ${PARSED_ARGS_OUTPUT_SUBDIRECTORY}) endforeach() endfunction(smtg_target_add_plugin_resources) #------------------------------------------------------------------------ # Deprecated since 3.7.4 ----------------------------- function(smtg_add_folder_icon target icon) message(DEPRECATION "[SMTG] Use smtg_target_add_folder_icon instead of smtg_add_folder_icon") smtg_target_add_folder_icon (${target} ${icon}) endfunction(smtg_add_folder_icon) # Deprecated since 3.7.4 ----------------------------- function(smtg_create_link_to_plugin target) message(DEPRECATION "[SMTG] Use smtg_target_create_link_to_plugin instead of smtg_create_link_to_plugin") smtg_get_default_plugin_path() smtg_target_create_link_to_plugin(${target} ${SMTG_PLUGIN_TARGET_DEFAULT_PATH}) endfunction(smtg_create_link_to_plugin) # Deprecated since 3.7.4 ----------------------------- function(smtg_make_plugin_package target pkg_name extension) message(DEPRECATION "[SMTG] Use smtg_target_make_plugin_package instead of smtg_make_plugin_package") smtg_target_make_plugin_package (${target} ${pkg_name} ${extension}) endfunction(smtg_make_plugin_package) # Deprecated since 3.7.4 ----------------------------- function(smtg_strip_symbols target) message(DEPRECATION "[SMTG] Use smtg_target_strip_symbols instead of smtg_strip_symbols") smtg_target_strip_symbols (${target}) endfunction(smtg_strip_symbols) # Deprecated since 3.7.4 ----------------------------- function(smtg_add_library_main target) message(DEPRECATION "[SMTG] Use smtg_target_add_library_main instead of smtg_add_library_main") smtg_target_add_library_main (${target}) endfunction(smtg_add_library_main) # Deprecated since 3.7.4 ----------------------------- function(smtg_strip_symbols_with_dbg target) message(DEPRECATION "[SMTG] Use smtg_target_strip_symbols_with_dbg instead of smtg_strip_symbols_with_dbg") smtg_target_strip_symbols_with_dbg (${target}) endfunction(smtg_strip_symbols_with_dbg) # Deprecated since 3.7.4 ----------------------------- function(smtg_dump_plugin_package_variables target) message(DEPRECATION "[SMTG] Use smtg_target_dump_plugin_package_variables instead of smtg_dump_plugin_package_variables") smtg_target_dump_plugin_package_variables (${target}) endfunction(smtg_dump_plugin_package_variables) # Deprecated since 3.7.4 ----------------------------- function(smtg_add_plugin_resource target input_file) message(DEPRECATION "[SMTG] Use smtg_target_add_plugin_resource instead of smtg_add_plugin_resource") smtg_target_add_plugin_resource (${target} ${input_file}) endfunction(smtg_add_plugin_resource) # Deprecated since 3.7.4 ----------------------------- function(smtg_add_plugin_snapshot target snapshot) message(DEPRECATION "[SMTG] Use smtg_target_add_plugin_snapshots instead of smtg_add_plugin_snapshot") smtg_target_add_plugin_snapshots (${target} RESOURCES ${snapshot} ) endfunction(smtg_add_plugin_snapshot) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_AddSubDirectories.cmake000066400000000000000000000010701461511344300232110ustar00rootroot00000000000000 #------------------------------------------------------------------------ # add every sub directory of the current source dir if it contains a CMakeLists.txt function(smtg_add_subdirectories) file(GLOB subDirectories RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *) foreach(dir ${subDirectories}) if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${dir}") if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${dir}/CMakeLists.txt") add_subdirectory(${dir}) endif() endif() endforeach(dir) endfunction(smtg_add_subdirectories) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_AddVST3AuV2.cmake000066400000000000000000000103141461511344300215210ustar00rootroot00000000000000 include(SMTG_Bundle) include(SMTG_UniversalBinary) include(SMTG_CodeSign) if (XCODE AND SMTG_COREAUDIO_SDK_PATH) set(SMTG_AUV2_FOLDER FOLDER "AudioUnit V2") set(AUv2_sources ${public_sdk_SOURCE_DIR}/source/vst/auwrapper/aucocoaview.mm ${public_sdk_SOURCE_DIR}/source/vst/auwrapper/aucocoaview.h ${public_sdk_SOURCE_DIR}/source/vst/auwrapper/ausdk.mm ${public_sdk_SOURCE_DIR}/source/vst/auwrapper/auwrapper.mm ${public_sdk_SOURCE_DIR}/source/vst/auwrapper/auwrapper.h ${public_sdk_SOURCE_DIR}/source/vst/auwrapper/NSDataIBStream.mm ${public_sdk_SOURCE_DIR}/source/vst/auwrapper/NSDataIBStream.h ) #------------------------------------------------------------------------ # Add an AudioUnit Version 2 target for macOS # @param target target name # @param BUNDLE_NAME name of the bundle # @param BUNDLE_IDENTIFIER bundle identifier # @param INFO_PLIST_TEMPLATE the info.plist file containing the needed AudioUnit keys # @param VST3_PLUGIN_TARGET the vst3 plugin target #------------------------------------------------------------------------ function(smtg_target_add_auv2 target) set(oneValueArgs BUNDLE_NAME BUNDLE_IDENTIFIER INFO_PLIST_TEMPLATE VST3_PLUGIN_TARGET ) cmake_parse_arguments(ARG "" "${oneValueArgs}" "" ${ARGN}) if(ARG_UNPARSED_ARGUMENTS) message(FATAL_ERROR "[SMTG] The following parameters are unrecognized: ${ARG_UNPARSED_ARGUMENTS}") endif(ARG_UNPARSED_ARGUMENTS) if(ARG_KEYWORDS_MISSING_VALUES) message(FATAL_ERROR "[SMTG] The following parameter values are missing: ${ARG_KEYWORDS_MISSING_VALUES}") endif(ARG_KEYWORDS_MISSING_VALUES) foreach(ARG_NAME ${oneValueArgs}) set(tmp ARG_${ARG_NAME}) if(NOT ${tmp}) message(FATAL_ERROR "[SMTG] Missing ${ARG_NAME} argument and value") endif() endforeach() string(TIMESTAMP CocoaIdStamp "%Y%j%H%M%S") string(MAKE_C_IDENTIFIER ${CocoaIdStamp} CocoaId) set(SMTG_AUCocoaUIBase_CLASS_NAME "SMTG_AUCocoaUIBase_${ARG_BUNDLE_NAME}${CocoaId}") add_library(${target} MODULE ${AUv2_sources}) smtg_target_setup_universal_binary(${target}) smtg_target_codesign(${target}) target_compile_features(${target} PUBLIC cxx_std_17 ) target_compile_definitions(${target} PRIVATE SMTG_AUCocoaUIBase_CLASS_NAME=${SMTG_AUCocoaUIBase_CLASS_NAME} CA_USE_AUDIO_PLUGIN_ONLY=0 # TODO: If true will let instruments fail validation ) target_link_libraries(${target} PRIVATE sdk_hosting "-framework AudioUnit" "-framework CoreMIDI" "-framework AudioToolbox" "-framework CoreFoundation" "-framework Carbon" "-framework Cocoa" "-framework CoreAudio" ) target_include_directories(${target} PRIVATE "${SMTG_COREAUDIO_SDK_PATH}/**" ) smtg_target_set_bundle(${target} INFOPLIST ${ARG_INFO_PLIST_TEMPLATE} EXTENSION component ) set(VST3_OUTPUT_DIR ${CMAKE_BINARY_DIR}/VST3) set(outputdir ${VST3_OUTPUT_DIR}/$) set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_GENERATE_PKGINFO_FILE "YES" XCODE_ATTRIBUTE_PRODUCT_NAME "${ARG_BUNDLE_NAME}" XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER ${ARG_BUNDLE_IDENTIFIER} LIBRARY_OUTPUT_DIRECTORY ${VST3_OUTPUT_DIR} ${SMTG_AUV2_FOLDER} ) add_dependencies(${target} ${ARG_VST3_PLUGIN_TARGET}) add_custom_command(TARGET ${target} POST_BUILD COMMAND /bin/mkdir "-p" ${outputdir}/${ARG_BUNDLE_NAME}.component/Contents/Resources COMMAND /bin/rm "-f" "${outputdir}/${ARG_BUNDLE_NAME}.component/Contents/Resources/plugin.vst3" COMMAND /bin/ln "-svfF" "${outputdir}/$.vst3" "${outputdir}/${ARG_BUNDLE_NAME}.component/Contents/Resources/plugin.vst3" COMMAND /bin/cp "-rpf" "${outputdir}/${ARG_BUNDLE_NAME}.component" "~/Library/Audio/Plug-Ins/Components/" ) endfunction(smtg_target_add_auv2) else() message("[SMTG] * To add an AudioUnit v2 target, you need to use the Xcode generator and set SMTG_COREAUDIO_SDK_PATH to the path of your installation of the CoreAudio SDK!") endif(XCODE AND SMTG_COREAUDIO_SDK_PATH) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_AddVST3AuV3.cmake000066400000000000000000000264351461511344300215350ustar00rootroot00000000000000 #------------------------------------------------------------------------ # Includes #------------------------------------------------------------------------ include(SMTG_CodeSign) if(SMTG_MAC) if(XCODE) set(SMTG_AUV3_FOLDER FOLDER "AudioUnit V3") set(auv3wrappermacos_sources ${public_sdk_SOURCE_DIR}/source/vst/auv3wrapper/AUv3WrappermacOS/main.mm ) set(auv3wrappermacosextension_sources ${public_sdk_SOURCE_DIR}/source/vst/auv3wrapper/Shared/AUv3WrapperFactory.mm ) set(auv3wrapperios_sources ) set(auv3wrapperiosextension_sources ${public_sdk_SOURCE_DIR}/source/vst/auv3wrapper/Shared/AUv3WrapperFactory.mm ) #------------------------------------------------------------------------ # Add a AudioUnit Version 3 App target for macOS # @param target target name # @param BuildTarget must be either "macOS" or "iOS" # @param OutputName Output App name # @param BundleID Bundle Identifier # @param AudioUnitConfigHeader configuration header # @param EntitlementFile Code sign entitlements file # @param AppSources Application Sources # @param AppUIResources Application UI Resources # @param AppInfoPlist Info.plist for the application # @param ExtensionInfoPlist Info.plist for the app-extension # @param vst3_plugin_target the vst3 plugin target #------------------------------------------------------------------------ function(smtg_add_auv3_app target BuildTarget OutputName BundleID AudioUnitConfigHeader EntitlementFile AppSources AppUIResources AppInfoPlist ExtensionInfoPlist vst3_plugin_target) if(BuildTarget STREQUAL macOS) set(macOS TRUE) elseif(BuildTarget STREQUAL iOS) set(iOS TRUE) else() message(FATAL_ERROR "[SMTG] BuildTarget must be macOS or iOS not ${BuildTarget}") endif() if(macOS) set(link_frameworks "-framework Accelerate" "-framework AppKit" "-framework AudioToolbox" "-framework AVFoundation" "-framework CoreAudioKit" "-framework OpenGL" "-framework QuartzCore" "-framework CoreMIDI" ) set(app-extension-target ${target}_appextension_macos) set(app-target ${target}) set(app-extension-sources ${auv3wrappermacosextension_sources}) set(auwrapper-sources ${auv3wrappermacos_sources} ${AppSources}) set(auwrapper-lib auv3wrappermacos) else() set(link_frameworks "-framework UIKit" "-framework CoreAudioKit" "-framework AudioToolbox" "-framework CoreGraphics" "-framework QuartzCore" "-framework CoreText" "-framework Accelerate" "-framework AVFoundation" "-framework ImageIO" "-framework MobileCoreServices" "-framework MediaPlayer" "-framework CoreMIDI" ) set(app-extension-target ${target}_appextension_ios) set(app-target ${target}) set(app-extension-sources ${auv3wrapperiosextension_sources}) set(auwrapper-sources ${AppSources}) set(auwrapper-lib auv3wrapperios) endif(macOS) set(auwrapper-xib-resources ${AppUIResources}) get_filename_component(AudioUnitConfig ${AudioUnitConfigHeader} ABSOLUTE) get_filename_component(AppInfoPlist ${AppInfoPlist} ABSOLUTE) get_filename_component(ExtensionInfoPlist ${ExtensionInfoPlist} ABSOLUTE) get_filename_component(EntitlementFile ${EntitlementFile} ABSOLUTE) # app-extension add_executable(${app-extension-target} ${app-extension-sources}) target_link_libraries(${app-extension-target} PRIVATE ${auwrapper-lib} ${link_frameworks} ) add_dependencies(${app-extension-target} "${vst3_plugin_target}") set_target_properties(${app-extension-target} PROPERTIES # BUNDLE YES # MACOSX_BUNDLE TRUE XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER ${BundleID}.appex XCODE_ATTRIBUTE_INFOPLIST_PREFIX_HEADER ${AudioUnitConfig} XCODE_ATTRIBUTE_GCC_PREFIX_HEADER ${AudioUnitConfig} XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES XCODE_ATTRIBUTE_WRAPPER_EXTENSION appex XCODE_PRODUCT_TYPE com.apple.product-type.app-extension ${SMTG_AUV3_FOLDER} ) smtg_target_set_bundle(${app-extension-target} INFOPLIST "${ExtensionInfoPlist}" PREPROCESS) # application add_executable(${app-target} ${auwrapper-sources} ${auwrapper-xib-resources}) target_link_libraries(${app-target} PRIVATE ${auwrapper-lib} ${link_frameworks} ) add_dependencies(${app-target} "${app-extension-target}") set_target_properties(${app-target} PROPERTIES RESOURCE "${auwrapper-xib-resources}" MACOSX_BUNDLE TRUE OUTPUT_NAME "${OutputName}" XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER ${BundleID} XCODE_ATTRIBUTE_INFOPLIST_PREFIX_HEADER ${AudioUnitConfig} XCODE_ATTRIBUTE_GCC_PREFIX_HEADER ${AudioUnitConfig} XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES ${SMTG_AUV3_FOLDER} ) smtg_target_set_bundle(${app-target} INFOPLIST "${AppInfoPlist}" PREPROCESS) get_target_property(PLUGIN_PACKAGE_PATH ${vst3_plugin_target} SMTG_PLUGIN_PACKAGE_PATH) if(macOS) add_custom_command( TARGET ${app-extension-target} POST_BUILD COMMENT "[SMTG] Copy VST3 plugin into App-Extension" COMMAND rm -Rf "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/$.appex/Contents/PlugIns/plugin.vst3" COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/$.appex/Contents/PlugIns/plugin.vst3" COMMAND /bin/cp -a -v "${PLUGIN_PACKAGE_PATH}/" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/$.appex/Contents/PlugIns/plugin.vst3/" ) add_custom_command( TARGET ${app-target} POST_BUILD COMMENT "[SMTG] Copy App-Extension into Application" COMMAND rm -Rf "$/PlugIns/auv3.appex" COMMAND ${CMAKE_COMMAND} -E make_directory "$/PlugIns/auv3.appex" COMMAND /bin/cp -a -v "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/$.appex/" "$/PlugIns/auv3.appex/" ) smtg_target_codesign(${app-target} ${SMTG_IOS_DEVELOPMENT_TEAM} "${SMTG_CODE_SIGN_IDENTITY_MAC}") smtg_target_codesign(${app-extension-target} ${SMTG_IOS_DEVELOPMENT_TEAM} "${SMTG_CODE_SIGN_IDENTITY_MAC}") set_target_properties(${app-extension-target} PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${EntitlementFile}" ) else() add_custom_command( TARGET ${app-extension-target} POST_BUILD COMMENT "[SMTG] Copy VST3 plugin into App-Extension" COMMAND rm -Rf "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/$.appex/PlugIns/plugin.vst3" COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/$.appex/PlugIns/plugin.vst3" COMMAND /bin/cp -a -v "${PLUGIN_PACKAGE_PATH}/" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/$.appex/PlugIns/plugin.vst3/" ) add_custom_command( TARGET ${app-target} POST_BUILD COMMENT "[SMTG] Copy App-Extension into Application" COMMAND rm -Rf "$/PlugIns/auv3.appex" COMMAND ${CMAKE_COMMAND} -E make_directory "$/PlugIns/auv3.appex" COMMAND /bin/cp -a -v "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/$.appex/" "$/PlugIns/auv3.appex/" ) smtg_target_set_platform_ios(${app-target}) smtg_target_set_platform_ios(${app-extension-target}) smtg_target_codesign(${app-target} ${SMTG_IOS_DEVELOPMENT_TEAM} "${SMTG_CODE_SIGN_IDENTITY_IOS}") smtg_target_codesign(${app-extension-target} ${SMTG_IOS_DEVELOPMENT_TEAM} "${SMTG_CODE_SIGN_IDENTITY_IOS}") set_target_properties(${app-target} PROPERTIES XCODE_ATTRIBUTE_ENABLE_BITCODE "NO" ) set_target_properties(${app-extension-target} PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${EntitlementFile}" XCODE_ATTRIBUTE_ENABLE_BITCODE "NO" ) endif(macOS) set(AUV3_APP_TARGET ${app-target} PARENT_SCOPE) set(AUV3_EXTENSION_TARGET ${app-extension-target} PARENT_SCOPE) endfunction(smtg_add_auv3_app) # Deprecated since 3.7.4 ----------------------------- function(smtg_add_auv3 target BuildTarget OutputName BundleID AudioUnitConfigHeader EntitlementFile AppSources AppUIResources AppInfoPlist ExtensionInfoPlist vst3_plugin_target) message(DEPRECATION "[SMTG] Use smtg_add_auv3_app instead of smtg_add_auv3") smtg_add_auv3_app (${target} ${BuildTarget} ${OutputName} ${BundleID} ${AudioUnitConfigHeader} ${EntitlementFile} ${AppSources} ${AppUIResources} ${AppInfoPlist} ${ExtensionInfoPlist} ${vst3_plugin_target}) endfunction(smtg_add_auv3) endif(XCODE) endif(SMTG_MAC) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_AddVST3Library.cmake000066400000000000000000000321431461511344300223540ustar00rootroot00000000000000 #------------------------------------------------------------------------ # Includes #------------------------------------------------------------------------ include(SMTG_AddSMTGLibrary) set(SMTG_RUN_VST_VALIDATOR_DEFAULT ON) set(SMTG_CREATE_MODULE_INFO_DEFAULT ON) # Run the Validator after each new compilation of VST3 Plug-ins option(SMTG_RUN_VST_VALIDATOR "Run VST validator on VST3 Plug-ins" ${SMTG_RUN_VST_VALIDATOR_DEFAULT}) # Create the moduleinfo.json file after building option(SMTG_CREATE_MODULE_INFO "Create the moduleinfo.json file" ${SMTG_CREATE_MODULE_INFO_DEFAULT}) #------------------------------------------------------------------------ # Runs the validator on a VST3 target. # # The validator will be run on the target as a post build step. # # @param target The target which the validator will validate. function(smtg_target_run_vst_validator target) if(TARGET validator) message(STATUS "[SMTG] Setup running validator for ${target}") add_dependencies(${target} validator) if(SMTG_WIN) set(TARGET_PATH $) add_custom_command( TARGET ${target} POST_BUILD COMMAND ${CMAKE_COMMAND} -E echo [SMTG] Validator started... COMMAND $ "${TARGET_PATH}" WORKING_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" COMMAND ${CMAKE_COMMAND} -E echo [SMTG] Validator finished. ) else() get_target_property(PLUGIN_PACKAGE_PATH ${target} SMTG_PLUGIN_PACKAGE_PATH) add_custom_command( TARGET ${target} POST_BUILD COMMAND $ $<$:${PLUGIN_PACKAGE_PATH}> $<$:${PLUGIN_PACKAGE_PATH}> WORKING_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" ) endif(SMTG_WIN) endif(TARGET validator) endfunction(smtg_target_run_vst_validator) #------------------------------------------------------------------------ # Runs the moduleinfotool on a VST3 target. # # The moduleinfotool will be run on the target as a post build step and # generates a moduleinfo.json file inside the VST 3 bundle. # # @param target The target for which the moduleinfotool will create the file. # @param MODULEINFO_COMPATIBILITY The path to the compatibility json file [optional] function(smtg_target_create_module_info_file target) set(oneValueArgs MODULEINFO_COMPATIBILITY) cmake_parse_arguments(PARSE_ARGV 1 PARAMS "" "${oneValueArgs}" "") if(NOT SMTG_CREATE_MODULE_INFO) return() endif() if(SMTG_WIN AND NOT SMTG_CREATE_BUNDLE_FOR_WINDOWS) message(WARNING "[SMTG] No moduleinfo.json file for ${target} generated. Consider to enable SMTG_CREATE_BUNDLE_FOR_WINDOWS.") return() endif() message(STATUS "[SMTG] Setup running moduleinfotool for ${target}") add_dependencies(${target} moduleinfotool) get_target_property(PLUGIN_PACKAGE_PATH ${target} SMTG_PLUGIN_PACKAGE_PATH) set(SMTG_MODULEINFO_PATH_INSIDE_BUNDLE Contents/Resources/moduleinfo.json) if(DEFINED PARAMS_MODULEINFO_COMPATIBILITY) add_custom_command( TARGET ${target} POST_BUILD COMMAND $ -create -version ${PROJECT_VERSION} -path "${PLUGIN_PACKAGE_PATH}" -compat "${CMAKE_CURRENT_SOURCE_DIR}/${PARAMS_MODULEINFO_COMPATIBILITY}" -output "${PLUGIN_PACKAGE_PATH}/${SMTG_MODULEINFO_PATH_INSIDE_BUNDLE}" WORKING_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" ) else() add_custom_command( TARGET ${target} POST_BUILD COMMAND $ -create -version ${PROJECT_VERSION} -path "${PLUGIN_PACKAGE_PATH}" -output "${PLUGIN_PACKAGE_PATH}/${SMTG_MODULEINFO_PATH_INSIDE_BUNDLE}" WORKING_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" ) endif() if(SMTG_MAC) add_custom_command( TARGET ${target} POST_BUILD COMMAND codesign -f -s "-" -v "${PLUGIN_PACKAGE_PATH}/${SMTG_MODULEINFO_PATH_INSIDE_BUNDLE}" WORKING_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" ) endif() endfunction() #------------------------------------------------------------------------ # Set SMTG_PLUGIN_TARGET_PATH to default VST3 Path function(smtg_get_vst3_path) # here you can define the VST3 Plug-ins folder (it will be created), SMTG_PLUGIN_TARGET_DEFAULT_PATH will be set smtg_get_default_vst3_path() set(SMTG_PLUGIN_TARGET_USER_PATH "" CACHE PATH "Here you can redefine the VST3 Plug-ins folder") if(NOT ${SMTG_PLUGIN_TARGET_USER_PATH} STREQUAL "") set(PLUGIN_TARGET_PATH ${SMTG_PLUGIN_TARGET_USER_PATH}) else() set(PLUGIN_TARGET_PATH ${SMTG_PLUGIN_TARGET_DEFAULT_PATH}) endif() if(NOT ${PLUGIN_TARGET_PATH} STREQUAL "" AND SMTG_CREATE_PLUGIN_LINK) if(NOT EXISTS ${PLUGIN_TARGET_PATH}) message(STATUS "[SMTG] Create folder: " ${PLUGIN_TARGET_PATH}) if(SMTG_WIN) smtg_create_directory_as_admin_win(${PLUGIN_TARGET_PATH}) else() file(MAKE_DIRECTORY ${PLUGIN_TARGET_PATH}) endif(SMTG_WIN) endif(NOT EXISTS ${PLUGIN_TARGET_PATH}) endif(NOT ${PLUGIN_TARGET_PATH} STREQUAL "" AND SMTG_CREATE_PLUGIN_LINK) if(EXISTS ${PLUGIN_TARGET_PATH}) message(STATUS "[SMTG] SMTG_PLUGIN_TARGET_PATH is set to: " ${PLUGIN_TARGET_PATH}) else() message(STATUS "[SMTG] SMTG_PLUGIN_TARGET_PATH is not set!") endif(EXISTS ${PLUGIN_TARGET_PATH}) set(SMTG_PLUGIN_TARGET_PATH ${PLUGIN_TARGET_PATH} PARENT_SCOPE) endfunction(smtg_get_vst3_path) #------------------------------------------------------------------------ # Adds a VST3 target. # # @param target The target to which a VST3 Plug-in will be added. # @param pkg_name name of the created package # @param MODULEINFO_COMPATIBILITY The path to the compatibility json file [optional] function(smtg_add_vst3plugin_with_pkgname target pkg_name) #message(STATUS "[SMTG] target is ${target}") #message(STATUS "[SMTG] pkg_name is ${pkg_name}") set(oneValueArgs MODULEINFO_COMPATIBILITY) set(sourcesArgs SOURCES_LIST) cmake_parse_arguments(PARSE_ARGV 2 PARAMS "" "${oneValueArgs}" "${sourcesArgs}") #message(STATUS "[SMTG] PARAMS_UNPARSED_ARGUMENTS is ${PARAMS_UNPARSED_ARGUMENTS}") #message(STATUS "[SMTG] PARAMS_MODULEINFO_COMPATIBILITY is ${PARAMS_MODULEINFO_COMPATIBILITY}") #message(STATUS "[SMTG] PARAMS_SOURCES_LIST is ${PARAMS_SOURCES_LIST}") if(NOT EXISTS ${SMTG_PACKAGE_ICON_PATH}) set(SMTG_PACKAGE_ICON_PATH ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/../templates/VST_Logo_Steinberg.ico) endif() #message(STATUS "[SMTG] SMTG_PACKAGE_ICON_PATH is ${SMTG_PACKAGE_ICON_PATH}") if(DEFINED PARAMS_MODULEINFO_COMPATIBILITY) set(SOURCES "${PARAMS_SOURCES_LIST}") else() set(SOURCES "${PARAMS_UNPARSED_ARGUMENTS}") endif() add_library(${target} MODULE "${SOURCES}") smtg_target_set_vst_win_architecture_name(${target}) smtg_target_make_plugin_package(${target} ${pkg_name} vst3) #################### # Workaround for Xcode 15 not allowing to add adhoc_codesign linker setting #################### if(SMTG_MAC AND XCODE_VERSION VERSION_GREATER_EQUAL 15) get_target_property(PLUGIN_PACKAGE_PATH ${target} SMTG_PLUGIN_PACKAGE_PATH) add_custom_command( TARGET ${target} POST_BUILD COMMENT "[SMTG] Adhoc codesign workaround for Xcode 15" COMMAND codesign --force --verbose --sign - "${PLUGIN_PACKAGE_PATH}" ) endif() if(SMTG_ENABLE_TARGET_VARS_LOG) smtg_target_dump_plugin_package_variables(${target}) endif(SMTG_ENABLE_TARGET_VARS_LOG) if(DEFINED PARAMS_MODULEINFO_COMPATIBILITY) smtg_target_create_module_info_file(${target} MODULEINFO_COMPATIBILITY "${PARAMS_MODULEINFO_COMPATIBILITY}") else() smtg_target_create_module_info_file(${target}) endif() if(SMTG_RUN_VST_VALIDATOR) smtg_target_run_vst_validator(${target}) endif(SMTG_RUN_VST_VALIDATOR) if(SMTG_CREATE_PLUGIN_LINK) smtg_get_vst3_path() smtg_target_create_link_to_plugin(${target} ${SMTG_PLUGIN_TARGET_PATH}) endif(SMTG_CREATE_PLUGIN_LINK) endfunction(smtg_add_vst3plugin_with_pkgname) #------------------------------------------------------------------------ # Adds a VST3 target. # # @param target The target to which a VST3 Plug-in will be added. # @param PACKAGE_NAME The name of the package [optional] if not present # @param MODULEINFO_COMPATIBILITY The path to the compatibility json file [optional] # @param SOURCES_LIST List of sources to add to target project [mandatory when PACKAGE_NAME is used] # for example: # smtg_add_vst3plugin(${target} PACKAGE_NAME "A Gain" SOURCES_LIST ${again_sources}) # smtg_add_vst3plugin(${target} PACKAGE_NAME "A Gain" MODULEINFO_COMPATIBILITY compat.json SOURCES_LIST ${again_sources}) # or # smtg_add_vst3plugin(${target} ${again_sources}) function(smtg_add_vst3plugin target) set(oneValueArgs PACKAGE_NAME MODULEINFO_COMPATIBILITY) set(sourcesArgs SOURCES_LIST) cmake_parse_arguments(PARSE_ARGV 1 PARAMS "${options}" "${oneValueArgs}" "${sourcesArgs}") #message(STATUS "[SMTG] PARAMS_UNPARSED_ARGUMENTS is ${PARAMS_UNPARSED_ARGUMENTS}") #message(STATUS "[SMTG] PARAMS_PACKAGE_NAME is ${PARAMS_PACKAGE_NAME}") #message(STATUS "[SMTG] PARAMS_SOURCES is ${PARAMS_SOURCES_NAME}") #message(STATUS "[SMTG] PARAMS_MODULEINFO_COMPATIBILITY is ${PARAMS_MODULEINFO_COMPATIBILITY}") set(SOURCES "${PARAMS_SOURCES_LIST}") if(SOURCES STREQUAL "") set(SOURCES ${PARAMS_UNPARSED_ARGUMENTS}) endif() set(pkg_name "${PARAMS_PACKAGE_NAME}") if(pkg_name STREQUAL "") set(pkg_name ${target}) endif() #message(STATUS "[SMTG] target is ${target}.") #message(STATUS "[SMTG] pkg_name is ${pkg_name}.") #message(STATUS "[SMTG] SOURCES is ${SOURCES}.") if(DEFINED PARAMS_MODULEINFO_COMPATIBILITY) set(SMTG_MODULEINFO_COMPATIBILITY "${PARAMS_MODULEINFO_COMPATIBILITY}") smtg_add_vst3plugin_with_pkgname(${target} ${pkg_name} MODULEINFO_COMPATIBILITY "${SMTG_MODULEINFO_COMPATIBILITY}" SOURCES_LIST ${SOURCES}) else() smtg_add_vst3plugin_with_pkgname(${target} ${pkg_name} ${SOURCES}) endif() endfunction(smtg_add_vst3plugin) #------------------------------------------------------------------------ # Adds a VST3 target for iOS # # @param sign_identity which code signing identity to use # @param target The target to which a VST3 Plug-in will be added. function(smtg_add_ios_vst3plugin target sign_identity pkg_name) if(SMTG_MAC AND XCODE AND SMTG_ENABLE_IOS_TARGETS) add_library(${target} MODULE ${ARGN}) set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${SMTG_CODE_SIGN_IDENTITY_IOS}" XCODE_ATTRIBUTE_ENABLE_BITCODE "NO" SMTG_DISABLE_CREATE_RESOURCE_FOLDER 1 ) if(SMTG_IOS_DEVELOPMENT_TEAM) set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_DEVELOPMENT_TEAM ${SMTG_IOS_DEVELOPMENT_TEAM} ) endif(SMTG_IOS_DEVELOPMENT_TEAM) smtg_target_make_plugin_package(${target} ${pkg_name} vst3) if(SMTG_ENABLE_TARGET_VARS_LOG) smtg_target_dump_plugin_package_variables(${target}) endif(SMTG_ENABLE_TARGET_VARS_LOG) smtg_target_set_platform_ios(${target}) get_target_property(PLUGIN_PACKAGE_PATH ${target} SMTG_PLUGIN_PACKAGE_PATH) add_custom_command( TARGET ${target} POST_BUILD COMMENT "[SMTG] Codesign" COMMAND codesign --force --verbose --sign "${sign_identity}" "${PLUGIN_PACKAGE_PATH}" ) endif(SMTG_MAC AND XCODE AND SMTG_ENABLE_IOS_TARGETS) endfunction(smtg_add_ios_vst3plugin) #------------------------------------------------------------------------ # Deprecated since 3.7.4 ----------------------------- function(smtg_run_vst_validator target) message(DEPRECATION "[SMTG] Use smtg_target_run_vst_validator instead of smtg_run_vst_validator") smtg_target_run_vst_validator (${target}) endfunction(smtg_run_vst_validator) # Deprecated since 3.7.4 ----------------------------- function(smtg_add_vst3_resource target input_file) message(DEPRECATION "[SMTG] Use smtg_target_add_plugin_resources instead of smtg_add_vst3_resource") smtg_target_add_plugin_resources (${target} RESOURCES ${input_file} ) endfunction(smtg_add_vst3_resource) # Deprecated since 3.7.4 ----------------------------- function(smtg_add_vst3_snapshot target snapshot) message(DEPRECATION "[SMTG] Use smtg_target_add_plugin_snapshots instead of smtg_add_vst3_snapshot") smtg_target_add_plugin_snapshots (${target} RESOURCES ${snapshot} ) endfunction(smtg_add_vst3_snapshot) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_AddVST3Options.cmake000066400000000000000000000003771461511344300224070ustar00rootroot00000000000000 #------------------------------------------------------------------------------- # Includes #------------------------------------------------------------------------------- include(SMTG_SetupVST3LibraryDefaultPath) include(SMTG_AddCommonOptions) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_Bundle.cmake000066400000000000000000000132101461511344300210620ustar00rootroot00000000000000 include(CMakeParseArguments) #[=======================================================================[.md: Configures the macOS bundle The usual usage is: ```cmake smtg_target_set_bundle(yourplugin BUNDLE_IDENTIFIER "com.yourcompany.vst3.yourplugin" COMPANY_NAME "yourplugin" ) ``` #]=======================================================================] function(smtg_target_set_bundle target) if(NOT SMTG_MAC) return() endif(NOT SMTG_MAC) set(options PREPROCESS ) set(oneValueArgs EXTENSION INFOPLIST INFOPLIST_IN BUNDLE_IDENTIFIER COMPANY_NAME ) set(multiValueArgs RESOURCES PREPROCESSOR_FLAGS ) cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) if(ARG_UNPARSED_ARGUMENTS) message(FATAL_ERROR "[SMTG] The following parameters are unrecognized: ${ARG_UNPARSED_ARGUMENTS}") endif(ARG_UNPARSED_ARGUMENTS) # Adding the bundle resources to the target sources creates a warning, see https://cmake.org/Bug/view.php?id=15272 target_sources(${target} PRIVATE ${ARG_RESOURCES} ) get_target_property(type ${target} TYPE) if(type STREQUAL MODULE_LIBRARY) set_target_properties(${target} PROPERTIES BUNDLE TRUE ) elseif(type STREQUAL EXECUTABLE) set_target_properties(${target} PROPERTIES MACOSX_BUNDLE TRUE ) endif() if(ARG_EXTENSION) if(XCODE) set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_WRAPPER_EXTENSION ${ARG_EXTENSION} ) else() set_target_properties(${target} PROPERTIES BUNDLE_EXTENSION ${ARG_EXTENSION} ) endif(XCODE) endif(ARG_EXTENSION) if(ARG_RESOURCES) set_source_files_properties(${ARG_RESOURCES} PROPERTIES MACOSX_PACKAGE_LOCATION Resources ) endif(ARG_RESOURCES) if(ARG_INFOPLIST AND XCODE) set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_INFOPLIST_FILE "${ARG_INFOPLIST}" ) if(ARG_PREPROCESS) set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_INFOPLIST_PREPROCESS "YES" ) endif(ARG_PREPROCESS) if(ARG_PREPROCESSOR_FLAGS) set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_INFOPLIST_OTHER_PREPROCESSOR_FLAGS "${ARG_PREPROCESSOR_FLAGS}" ) endif(ARG_PREPROCESSOR_FLAGS) elseif(XCODE) # Build Copyright string: string(TIMESTAMP BUNDLE_INFO_STRING_YEAR "%Y") set(BUNDLE_COPYRIGHT "© ${BUNDLE_INFO_STRING_YEAR} ${ARG_COMPANY_NAME}.") # Check for custom info.plist template: if(ARG_INFOPLIST_IN) # dest Info.plist.in template file in cmake format # see: https://duckduckgo.com/?q=MACOSX_BUNDLE_INFO_PLIST set(SMTG_BUNDLE_INFO_PLIST "${PROJECT_BINARY_DIR}/smtg_mac/Info.plist.in") # Configure SMTG_BUNDLE_INFO_PLIST to cmake MACOSX_BUNDLE_INFO_PLIST template # Use @VAR@ for variables not defined in MACOSX_BUNDLE_INFO_PLIST configure_file("${ARG_INFOPLIST_IN}" "${SMTG_BUNDLE_INFO_PLIST}" @ONLY) set_target_properties(${smtg_target} PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${SMTG_BUNDLE_INFO_PLIST} ) endif() set_target_properties(${target} PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER ${ARG_BUNDLE_IDENTIFIER} MACOSX_BUNDLE_COPYRIGHT ${BUNDLE_COPYRIGHT} MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION} MACOSX_BUNDLE_LONG_VERSION_STRING ${PROJECT_VERSION} MACOSX_BUNDLE_INFO_STRING ${PROJECT_VERSION} ) endif() if(ARG_BUNDLE_IDENTIFIER) if(XCODE) set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "${ARG_BUNDLE_IDENTIFIER}" ) endif(XCODE) endif(ARG_BUNDLE_IDENTIFIER) endfunction() #[=======================================================================[.md: Creates the file projectversion.h and adds the directory as an include directory. #]=======================================================================] function(smtg_target_configure_version_file target) set(SMTG_PROJECT_VERSION "") if(NOT "${PROJECT_VERSION_MAJOR}" STREQUAL "") string(APPEND SMTG_PROJECT_VERSION "${PROJECT_VERSION_MAJOR}") endif() if(NOT "${PROJECT_VERSION_MINOR}" STREQUAL "") string(APPEND SMTG_PROJECT_VERSION ".${PROJECT_VERSION_MINOR}") endif() if(NOT "${PROJECT_VERSION_PATCH}" STREQUAL "") string(APPEND SMTG_PROJECT_VERSION ".${PROJECT_VERSION_PATCH}") endif() configure_file(${CMAKE_CURRENT_FUNCTION_LIST_DIR}/../templates/projectversion.h.in projectversion.h) target_include_directories(${target} PUBLIC "${PROJECT_BINARY_DIR}" ) endfunction() #[=======================================================================[.md: Deprecated since 3.7.4 #]=======================================================================] function(smtg_set_bundle target) message(DEPRECATION "[SMTG] Use smtg_target_set_bundle instead of smtg_set_bundle") smtg_target_set_bundle (${target}) endfunction() vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_CodeSign.cmake000066400000000000000000000050711461511344300213520ustar00rootroot00000000000000 if(XCODE) option(SMTG_DISABLE_CODE_SIGNING "Disable All Code Signing" OFF) set(SMTG_XCODE_OTHER_CODE_SIGNING_FLAGS "--timestamp" CACHE STRING "Other code signing flags [Xcode]") option(SMTG_XCODE_MANUAL_CODE_SIGN_STYLE "Manual Xcode sign style" OFF) endif() #------------------------------------------------------------------------ function(smtg_target_codesign target) if(XCODE AND (NOT SMTG_DISABLE_CODE_SIGNING)) if(ARGC GREATER 2) set(team "${ARGV1}") set(identity "${ARGV2}") message(STATUS "[SMTG] Codesign ${target} with team '${team}' and identity '${identity}'") set(SMTG_CODESIGN_ATTRIBUTES XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "${team}" XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${identity}" ) else() message(STATUS "[SMTG] Codesign ${target} for local machine only") set(SMTG_CODESIGN_ATTRIBUTES XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "-" ) endif(ARGC GREATER 2) if(SMTG_XCODE_OTHER_CODE_SIGNING_FLAGS) set(SMTG_CODESIGN_ATTRIBUTES ${SMTG_CODESIGN_ATTRIBUTES} XCODE_ATTRIBUTE_OTHER_CODE_SIGN_FLAGS "${SMTG_XCODE_OTHER_CODE_SIGNING_FLAGS}" ) endif() message(DEBUG "[SMTG] Code Sign Attributes: ${SMTG_CODESIGN_ATTRIBUTES}") set_target_properties(${target} PROPERTIES ${SMTG_CODESIGN_ATTRIBUTES} ) if(SMTG_XCODE_MANUAL_CODE_SIGN_STYLE) set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_STYLE "Manual" ) endif(SMTG_XCODE_MANUAL_CODE_SIGN_STYLE) if(SMTG_MAC AND (XCODE_VERSION VERSION_GREATER_EQUAL 12)) # make sure that the executable is signed before cmake post build commands are run as the # Xcode code-sign step is run after the post build commands are run which would prevent # using the target output on system where everything needs to be code-signed. target_link_options(${target} PRIVATE LINKER:-adhoc_codesign) endif() endif(XCODE AND (NOT SMTG_DISABLE_CODE_SIGNING)) endfunction(smtg_target_codesign) #------------------------------------------------------------------------ # Deprecated since 3.7.4 ----------------------------- function(smtg_codesign_target target) message(DEPRECATION "[SMTG] Use smtg_target_codesign instead of smtg_codesign_target") smtg_target_codesign (${target}) endfunction(smtg_codesign_target) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_ConfigureCmakeGenerator.cmake000066400000000000000000000045411461511344300244110ustar00rootroot00000000000000 #------------------------------------------------------------------------ # Specify Output directories # # XCode is creating the "Debug/Release" folder on its own and does not need to be added. macro(smtg_specify_output_directories) if(SMTG_WIN OR (SMTG_MAC AND CMAKE_GENERATOR STREQUAL Xcode)) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") else () set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE}") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE}") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE}") endif(SMTG_WIN OR (SMTG_MAC AND CMAKE_GENERATOR STREQUAL Xcode)) endmacro(smtg_specify_output_directories) #------------------------------------------------------------------------ # Specify build types # # Specifies what build types (configurations) will be available. macro(smtg_specify_build_types) set(CMAKE_CONFIGURATION_TYPES "Debug;Release") # This variable is only meaningful to single-configuration generators (such as make and Ninja). set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build type") endmacro(smtg_specify_build_types) #------------------------------------------------------------------------ # Group predefined cmake projects # # Put predefined targets like "ALL_BUILD" and "ZERO_CHECK" into a separate folder within the IDE. macro(smtg_group_predefined_cmake_projects) set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER Predefined) set_property(GLOBAL PROPERTY USE_FOLDERS ON) endmacro(smtg_group_predefined_cmake_projects) #------------------------------------------------------------------------ # Configure CMake generator macro(smtg_configure_cmake_generator) smtg_specify_output_directories() smtg_specify_build_types() smtg_group_predefined_cmake_projects() # Generates a compile_commands.json file containing the exact compiler calls. # (This option is implemented only by Makefile Generators and the Ninja. It # is ignored on other generators.) set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE STRING "Generate compile commands" FORCE) endmacro(smtg_configure_cmake_generator) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_CoreAudioSupport.cmake000066400000000000000000000043321461511344300231250ustar00rootroot00000000000000 #------------------------------------------------------------------------ function(setupCoreAudioSupport) if(SMTG_MAC AND XCODE) set(SMTG_IOS_DEVELOPMENT_TEAM "" CACHE STRING "Needed for building the InterAppAudio and AUv3 examples for iOS") if("${SMTG_COREAUDIO_SDK_PATH}" STREQUAL "") # Check if the CoreAudio SDK is next to the vst3sdk folder: set(COREAUDIO_SDK_PATH ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/../../../CoreAudio) if(NOT EXISTS "${COREAUDIO_SDK_PATH}/AudioUnits/AUPublic/AUBase/AUBase.cpp") # Check if the CoreAudio SDK is in the vst3sdk folder: set(COREAUDIO_SDK_PATH ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/../../external.apple.coreaudio) if(NOT EXISTS "${COREAUDIO_SDK_PATH}/AudioUnits/AUPublic/AUBase/AUBase.cpp") set(COREAUDIO_SDK_PATH "") endif() endif() if(NOT "${COREAUDIO_SDK_PATH}" STREQUAL "") get_filename_component(COREAUDIO_SDK_PATH "${COREAUDIO_SDK_PATH}" ABSOLUTE) endif() set(SMTG_COREAUDIO_SDK_PATH "${COREAUDIO_SDK_PATH}" CACHE PATH "Here you can define where to find the COREAUDIO SDK" FORCE) else() set(COREAUDIO_SDK_PATH "${SMTG_COREAUDIO_SDK_PATH}") if(NOT IS_ABSOLUTE ${COREAUDIO_SDK_PATH}) get_filename_component(COREAUDIO_SDK_PATH "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/../../${COREAUDIO_SDK_PATH}" ABSOLUTE) endif() if(NOT EXISTS "${COREAUDIO_SDK_PATH}/AudioUnits/AUPublic/AUBase/AUBase.cpp") message(FATAL_ERROR "[SMTG] SMTG_COREAUDIO_SDK_PATH is set but does not point to an expected location!") else() set(SMTG_COREAUDIO_SDK_PATH "${COREAUDIO_SDK_PATH}" CACHE PATH "Here you can define where to find the COREAUDIO SDK" FORCE) endif() endif() if(EXISTS "${SMTG_COREAUDIO_SDK_PATH}") message(STATUS "[SMTG] SMTG_COREAUDIO_SDK_PATH is set to: " ${SMTG_COREAUDIO_SDK_PATH}) else() message(STATUS "[SMTG] SMTG_COREAUDIO_SDK_PATH is not set. If you need it, please download the COREAUDIO SDK!") endif() endif() endfunction(setupCoreAudioSupport) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_CustomModuleTarget.cmake000066400000000000000000000044161461511344300234500ustar00rootroot00000000000000 # Custom target in order to get all cmake modules into a VST3 project. add_custom_target(cmake_modules SOURCES ${CMAKE_CURRENT_LIST_FILE} ${CMAKE_CURRENT_LIST_DIR}/SMTG_AddCommonOptions.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_AddSMTGLibrary.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_AddSubDirectories.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_Bundle.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_CodeSign.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_ConfigureCmakeGenerator.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_DetectPlatform.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_ExportedSymbols.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_GenerateSourceGroups.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_Global.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_PlatformIOS.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_PlatformToolset.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_Platform_Windows.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_PrefixHeader.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_SetDebugExecutable.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_UniversalBinary.cmake ) if(VST_SDK) add_custom_target(cmake_VST_modules SOURCES ${CMAKE_CURRENT_LIST_DIR}/SMTG_AAXSupport.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_AddAAXLibrary.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_AddVST3AuV3.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_AddVST3Library.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_AddVST3Options.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_CoreAudioSupport.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_ExportedSymbols.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_FindJack.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_SetupVST3LibraryDefaultPath.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_VST3_SDK.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_VstGuiSupport.cmake ) endif(VST_SDK) if(SKI_SDK) add_custom_target(cmake_SKI_modules SOURCES ${CMAKE_CURRENT_LIST_DIR}/SMTG_AddComponentLibrary.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_AddComponentOptions.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_SKI_SDK.cmake ${CMAKE_CURRENT_LIST_DIR}/SMTG_SetupComponentLibraryDefaultPath.cmake ) endif(SKI_SDK) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_DetectPlatform.cmake000066400000000000000000000052711461511344300225760ustar00rootroot00000000000000 # Detect the platform which cmake builds for. # # Needed for check_language(CXX) include(CheckLanguage) # The detected platform var is stored within the internal cache of cmake in order to make it # available globally. set(SMTG_PLATFORM_DETECTION_COMMENT "The platform which was detected by SMTG") #------------------------------------------------------------------------ # Detect the Platform # macro(smtg_detect_platform) if(APPLE) set(SMTG_MAC TRUE CACHE INTERNAL ${SMTG_PLATFORM_DETECTION_COMMENT}) elseif(UNIX OR ANDROID_PLATFORM) set(SMTG_LINUX TRUE CACHE INTERNAL ${SMTG_PLATFORM_DETECTION_COMMENT}) elseif(WIN32) set(SMTG_WIN TRUE CACHE INTERNAL ${SMTG_PLATFORM_DETECTION_COMMENT}) endif(APPLE) endmacro(smtg_detect_platform) #------------------------------------------------------------------------ # Check if c++ compiler is available # Handling cmake issue: https://gitlab.kitware.com/cmake/cmake/-/issues/20890 function(smtg_check_language_cxx) message(STATUS "[SMTG] Check C++ compiler") check_language(CXX) if(NOT CMAKE_CXX_COMPILER) if(SMTG_MAC) execute_process(COMMAND xcode-select -p OUTPUT_VARIABLE _xcode ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) cmake_path(SET _xcode NORMALIZE "${_xcode}/../..") string(FIND "${_xcode}" " " _pos) if(_pos GREATER "-1") message(FATAL_ERROR "[SMTG] Spaces in Xcode path are not supported by cmake: \"${_xcode}\"" ) endif() endif() endif() endfunction() #------------------------------------------------------------------------ # Detect the default Xcode Version # macro(smtg_detect_xcode_version) if(SMTG_MAC) # Check if CXX compiler is available smtg_check_language_cxx() if(NOT DEFINED ENV{XCODE_VERSION}) # find out Xcode version if not set by cmake execute_process(COMMAND xcodebuild -version OUTPUT_VARIABLE XCODE_VERSION ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) string(REGEX MATCH "Xcode [0-9\\.]+" XCODE_VERSION "${XCODE_VERSION}") string(REGEX REPLACE "Xcode ([0-9\\.]+)" "\\1" XCODE_VERSION "${XCODE_VERSION}") endif() if(XCODE_VERSION VERSION_LESS "9") message(FATAL_ERROR "[SMTG] XCode 9 or newer is required") endif() message(STATUS "[SMTG] Building with Xcode version: ${XCODE_VERSION}") if(NOT DEFINED ENV{SDKROOT}) execute_process(COMMAND xcrun --sdk macosx --show-sdk-path OUTPUT_VARIABLE CMAKE_OSX_SYSROOT OUTPUT_STRIP_TRAILING_WHITESPACE) endif() endif(SMTG_MAC) endmacro(smtg_detect_xcode_version) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_ExportedSymbols.cmake000066400000000000000000000030051461511344300230150ustar00rootroot00000000000000 #------------------------------------------------------------------------ # Setup symbol visibility # # Puts symbol visibility to default hidden. macro(smtg_setup_symbol_visibility) set(CMAKE_C_VISIBILITY_PRESET hidden) set(CMAKE_CXX_VISIBILITY_PRESET hidden) set(CMAKE_VISIBILITY_INLINES_HIDDEN 1) endmacro(smtg_setup_symbol_visibility) #------------------------------------------------------------------------ # Set exported symbols # # Specifies the exported symbols by file. function(smtg_target_set_exported_symbols target exported_symbols_file) if(MSVC) set_target_properties(${target} PROPERTIES LINK_FLAGS "/DEF:\"${exported_symbols_file}\"" ) elseif(XCODE) set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_EXPORTED_SYMBOLS_FILE "${exported_symbols_file}" ) elseif(NOT MINGW) set_target_properties(${target} PROPERTIES LINK_FLAGS "-exported_symbols_list \"${exported_symbols_file}\"" ) endif(MSVC) endfunction(smtg_target_set_exported_symbols) #------------------------------------------------------------------------ # Deprecated since 3.7.4 ----------------------------- function(smtg_set_exported_symbols target exported_symbols_file) message(DEPRECATION "[SMTG] Use smtg_target_set_exported_symbols instead of smtg_set_exported_symbols") smtg_target_set_exported_symbols (${target} ${exported_symbols_file}) endfunction(smtg_set_exported_symbols) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_FindJack.cmake000066400000000000000000000033731461511344300213330ustar00rootroot00000000000000 # - Try to find Jack Audio Libraries # libjack; libjackserver; # Once done this will define # LIBJACK_FOUND - System has libjack.so # LIBJACK_INCLUDE_DIRS - The jack.h include directories # LIBJACK_LIBRARIES - The libraries needed to use jack # Install jack on Ubuntu: apt-get install libjack-jackd2-dev # Add user to audio group: usermod -a -G audio # Install jack on Windows: winget install Jackaudio.JACK2 # Install jack on macOS: brew install jack #------------------------------------------------------------------------ # Uncomment to see all locations/paths which are searched # set(CMAKE_FIND_DEBUG_MODE TRUE) if(NOT PROJECT_NAME) message(FATAL_ERROR "[SMTG] Only include SMTG_FindJack AFTER the root \"project(...)\" call is done!") endif() find_path(LIBJACK_INCLUDE_DIR NAMES jack/jack.h PATH_SUFFIXES JACK2/include ) find_library(LIBJACK_libjack_LIBRARY NAMES libjack64 libjack jack PATH_SUFFIXES JACK2/lib ) find_library(LIBJACK_libjackserver_LIBRARY NAMES libjackserver64 libjackserver jackserver PATH_SUFFIXES JACK2/lib ) # For debugging # message(STATUS "LIBJACK_libjackserver_LIBRARY ${LIBJACK_libjackserver_LIBRARY}") # message(STATUS "LIBJACK_libjack_LIBRARY ${LIBJACK_libjack_LIBRARY}") # message(STATUS "LIBJACK_INCLUDE_DIR ${LIBJACK_INCLUDE_DIR}") set(LIBJACK_LIBRARIES ${LIBJACK_libjack_LIBRARY} ${LIBJACK_libjackserver_LIBRARY}) set(LIBJACK_LIBRARY ${LIBJACK_LIBRARIES}) include(FindPackageHandleStandardArgs) # handle the QUIETLY and REQUIRED arguments and set LIBJACK_FOUND to TRUE # if all listed variables are TRUE find_package_handle_standard_args(LIBJACK DEFAULT_MSG LIBJACK_LIBRARIES LIBJACK_INCLUDE_DIR) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_GenerateSourceGroups.cmake000066400000000000000000000023461461511344300237740ustar00rootroot00000000000000 #------------------------------------------------------------------------ # Generate Source Groups #------------------------------------------------------------------------ #------------------------------------------------------------------------ function(smtg_generate_source_groups root) foreach(source ${ARGN}) set(path ${source}) string(REGEX REPLACE "${root}/" "" path "${path}") string(REGEX REPLACE "[\\\\/][^\\\\/]*$" "" path "${path}") string(REGEX REPLACE "^[\\\\/]" "" path "${path}") string(REGEX REPLACE "\\.\\.[\\\\/]" "" path "${path}") string(REGEX REPLACE "/" "\\\\\\\\" path "${path}") source_group(${path} FILES ${source}) endforeach() endfunction(smtg_generate_source_groups) #------------------------------------------------------------------------ function(smtg_target_generate_source_groups target) get_target_property(_source_list ${target} SOURCES) foreach(_source IN ITEMS ${_source_list}) get_filename_component(_source_path "${_source}" PATH) string(REPLACE "/" "\\" _source_path_msvc "${_source_path}") source_group("${_source_path_msvc}" FILES "${_source}") endforeach() endfunction(smtg_target_generate_source_groups) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_Global.cmake000066400000000000000000000031361461511344300210570ustar00rootroot00000000000000 #------------------------------------------------------------------------ # Includes #------------------------------------------------------------------------ include(SMTG_DetectPlatform) include(SMTG_ConfigureCmakeGenerator) include(SMTG_ExportedSymbols) # Check for in-source build directory. # # In order not to pollute the source directory, using a separate build directory is mandatory. if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR OR EXISTS "${CMAKE_BINARY_DIR}/CMakeLists.txt") message(SEND_ERROR "[SMTG] In-source builds are not allowed. Please create a separate build directory and run 'cmake /path/to/folder [options]' there.") message(FATAL_ERROR "[SMTG] You can remove the file \"CMakeCache.txt\" and directory \"CMakeFiles\" in ${CMAKE_SOURCE_DIR}.") endif() #------------------------------------------------------------------------ # Global setup functions/macros # # Call macros/functions which setup the SDK's basics. smtg_detect_platform() smtg_configure_cmake_generator() smtg_detect_xcode_version() #------------------------------------------------------------------------ # Enable VST3 SDK # # This macro should be called from a 3rd party's plug-in CMakeLists.txt file. macro(smtg_enable_vst3_sdk) smtg_configure_cmake_generator() smtg_setup_platform_toolset() smtg_setup_symbol_visibility() # Needs to bet set for 'smtg_add_library_main' function. if(DEFINED vst3sdk_SOURCE_DIR) set(public_sdk_SOURCE_DIR ${vst3sdk_SOURCE_DIR}/public.sdk) else () get_target_property(public_sdk_SOURCE_DIR sdk SOURCE_DIR) endif() endmacro(smtg_enable_vst3_sdk) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_PlatformIOS.cmake000066400000000000000000000021771461511344300220220ustar00rootroot00000000000000 #------------------------------------------------------------------------ # Platform #------------------------------------------------------------------------ #------------------------------------------------------------------------ function(smtg_target_set_platform_ios target) if(NOT SMTG_MAC) message(FATAL_ERROR "[SMTG] smtg_target_set_platform_ios only works on macOS, use it in an if(SMTG_MAC) block") endif(NOT SMTG_MAC) set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "11.0" XCODE_ATTRIBUTE_SDKROOT "iphoneos" XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2" XCODE_ATTRIBUTE_SUPPORTS_MACCATALYST "NO" ) endfunction(smtg_target_set_platform_ios) #------------------------------------------------------------------------ # Deprecated since 3.7.4 ----------------------------- function(smtg_set_platform_ios target) message(DEPRECATION "[SMTG] Use smtg_target_set_platform_ios instead of smtg_set_platform_ios") smtg_target_set_platform_ios (${target}) endfunction(smtg_set_platform_ios) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_PlatformToolset.cmake000066400000000000000000000147361461511344300230250ustar00rootroot00000000000000 if(SMTG_WIN) option(SMTG_USE_STATIC_CRT "use static CRuntime on Windows (option /MT)" OFF) endif(SMTG_WIN) #------------------------------------------------------------------------ # setup the platform toolset (compiler options) macro(smtg_setup_platform_toolset) # deprecated if(SMTG_RENAME_ASSERT) add_compile_options(-DSMTG_RENAME_ASSERT=1) endif() # Add colors to clang output when using Ninja # See: https://github.com/ninja-build/ninja/wiki/FAQ if(UNIX AND CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_GENERATOR STREQUAL "Ninja") add_compile_options(-fcolor-diagnostics) endif() #------------ option(SMTG_ENABLE_ADDRESS_SANITIZER "Enable Address Sanitizer" OFF) if(SMTG_LINUX) if(SMTG_ENABLE_ADDRESS_SANITIZER) set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES};ASan") add_compile_options($<$:-DDEVELOPMENT=1>) add_compile_options($<$:-fsanitize=address>) add_compile_options($<$:-DVSTGUI_LIVE_EDITING=1>) add_compile_options($<$:-g>) add_compile_options($<$:-O0>) set(ASAN_LIBRARY asan) link_libraries($<$:${ASAN_LIBRARY}>) endif() set(common_linker_flags "-Wl,--no-undefined") set(CMAKE_MODULE_LINKER_FLAGS "${common_linker_flags}" CACHE STRING "Module Library Linker Flags") set(CMAKE_SHARED_LINKER_FLAGS "${common_linker_flags}" CACHE STRING "Shared Library Linker Flags") endif(SMTG_LINUX) #------------ if(UNIX) if(XCODE) set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") add_compile_options(-Winconsistent-missing-override) # Suggest override when missing add_compile_options(-Werror=return-type) add_compile_options(-ffast-math -ffp-contract=fast) if(SMTG_ENABLE_ADDRESS_SANITIZER) set(CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER ON) set(CMAKE_XCODE_GENERATE_SCHEME ON) endif(SMTG_ENABLE_ADDRESS_SANITIZER) else() set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") add_compile_options(-Wsuggest-override) # Suggest override when missing endif() if(SMTG_MAC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") link_libraries(c++) else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-multichar") if(ANDROID) set(CMAKE_ANDROID_STL_TYPE c++_static) link_libraries(dl) else() link_libraries(stdc++fs pthread dl) endif(ANDROID) endif(SMTG_MAC) endif(XCODE) #------------ elseif(SMTG_WIN) if(MINGW) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-multichar") set(common_linker_flags "-Wl,--no-undefined") set(CMAKE_MODULE_LINKER_FLAGS "${common_linker_flags}" CACHE STRING "Module Library Linker Flags") set(CMAKE_SHARED_LINKER_FLAGS "${common_linker_flags}" CACHE STRING "Shared Library Linker Flags") else() add_definitions(-D_UNICODE) add_compile_options(/fp:fast) # Floating Point Model add_compile_options($<$:/Oi>) # Enable Intrinsic Functions (Yes) add_compile_options($<$:/Ot>) # Favor Size Or Speed (Favor fast code) add_compile_options($<$:/GF>) # Enable String Pooling add_compile_options($<$:/EHa>) # Enable C++ Exceptions add_compile_options($<$:/Oy>) # Omit Frame Pointers #add_compile_options($<$:/Ox>) # Optimization (/O2: Maximise Speed /0x: Full Optimization) add_compile_options(/MP) # Multi-processor Compilation add_compile_options(/wd6031) # Return value ignored add_compile_options(/wd6308) # Realloc may return null pointer add_compile_options(/wd6330) # Incorrect type passed as parameter in call to function add_compile_options(/wd6385) # Invalid data add_compile_options(/wd6386) # Buffer overrun add_compile_options(/wd28125) # The function must be called from within a try/except block add_compile_options(/wd28251) # Inconsistent annotation for function #add_definitions("/analyze") # Enable Code Analyze set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /SAFESEH:NO") set(CMAKE_MODULE_LINKER_FLAGS_DEBUG "${CMAKE_MODULE_LINKER_FLAGS_DEBUG} /SAFESEH:NO") if(DEFINED CMAKE_GENERATOR_PLATFORM AND CMAKE_GENERATOR_PLATFORM) string(TOLOWER ${CMAKE_GENERATOR_PLATFORM} GENERATOR_PLATFORM) endif() if(${GENERATOR_PLATFORM} MATCHES "arm*") add_compile_options($<$:/Zi>) # Program Database add_compile_options($<$:/EHsc>) # Enable C++ Exceptions add_compile_options(/wd4103) # Alignment changed after including header else() if(SMTG_ENABLE_ADDRESS_SANITIZER) add_compile_options($<$:/fsanitize=address>) # Enable Address Sanitizer add_link_options($<$:/INCREMENTAL:NO>) # Enable Incremental Linking else() add_compile_options($<$:/ZI>) # Program Database for Edit And Continue endif() endif() if(SMTG_USE_STATIC_CRT) add_compile_options($<$:/MTd>) # Runtime Library: /MTd = MultiThreaded Debug Runtime add_compile_options($<$:/MT>) # Runtime Library: /MT = MultiThreaded Runtime else() add_compile_options($<$:/MDd>) # Runtime Library: /MDd = MultiThreadedDLL Debug Runtime add_compile_options($<$:/MD>) # Runtime Library: /MD = MultiThreadedDLL Runtime endif(SMTG_USE_STATIC_CRT) endif(MINGW) endif(UNIX) endmacro(smtg_setup_platform_toolset) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_Platform_Windows.cmake000066400000000000000000000024551461511344300231600ustar00rootroot00000000000000 #------------------------------------------------------------------------ # Create a given Directory with Admin permission on Windows function(smtg_create_directory_as_admin_win directory_name) if(NOT SMTG_WIN) message(FATAL_ERROR "[SMTG] smtg_create_directory_as_admin only works on Windows, use it in an if(SMTG_WIN) block") endif() if(EXISTS ${directory_name}) return() endif() set(TMPDIR "$ENV{TEMP}") if(NOT EXISTS ${TMPDIR}) set(TMPDIR "$ENV{TMPDIR}") endif() message(STATUS "[SMTG] TMPDIR is set to: " ${TMPDIR}) if(NOT EXISTS ${TMPDIR}) message(FATAL_ERROR "[SMTG] smtg_create_directory_as_admin does find TEMP Folder!") endif() # create the bat creating the Directory set(TMPFILE ${TMPDIR}\\smtg_mkdir_windows_as_admin.bat) file(WRITE ${TMPFILE} "md \"${directory_name}\"") execute_process( COMMAND msg * /time:60 /w VST 3 SDK: In order to create the subDirectory:\n\"${directory_name}\"\nyou will need to provide Administrator permission! ) # execute with powershell the bat file set(RUNAS "-Verb runAs") execute_process( COMMAND powershell.exe Start-Process ${TMPFILE} ${RUNAS} ) endfunction(smtg_create_directory_as_admin_win) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_PrefixHeader.cmake000066400000000000000000000013471461511344300222270ustar00rootroot00000000000000 #------------------------------------------------------------------------ # Prefix Header #------------------------------------------------------------------------ #------------------------------------------------------------------------ function(smtg_target_set_prefix_header target header precompile) if(MSVC) elseif(XCODE) set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${header}" XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER "${precompile}" ) else() target_compile_options(${target} PRIVATE -include "${header}" ) endif(MSVC) endfunction(smtg_target_set_prefix_header) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_SetDebugExecutable.cmake000066400000000000000000000025241461511344300233630ustar00rootroot00000000000000 #------------------------------------------------------------------------ function(smtg_target_set_debug_executable target executable) if(CMAKE_GENERATOR STREQUAL Xcode) set_target_properties(${target} PROPERTIES XCODE_GENERATE_SCHEME YES XCODE_SCHEME_EXECUTABLE "${executable}" ) if(ARGC GREATER 2 AND ARGV2) set_target_properties(${target} PROPERTIES XCODE_SCHEME_ARGUMENTS "${ARGV2}" ) endif() endif() if(MSVC) set_target_properties(${target} PROPERTIES VS_DEBUGGER_COMMAND "${executable}" ) if(ARGC GREATER 2 AND ARGV2) set_target_properties(${target} PROPERTIES VS_DEBUGGER_COMMAND_ARGUMENTS "${ARGV2}" ) endif() endif(MSVC) endfunction(smtg_target_set_debug_executable) #------------------------------------------------------------------------ # Deprecated since 3.7.4 ----------------------------- function(smtg_set_debug_executable target executable) message(DEPRECATION "[SMTG] Use smtg_target_set_debug_executable instead of smtg_set_debug_executable") smtg_target_set_debug_executable (${target} ${executable}) endfunction(smtg_set_debug_executable) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_SetupVST3LibraryDefaultPath.cmake000066400000000000000000000045561461511344300251150ustar00rootroot00000000000000 if(SMTG_WIN) option(SMTG_PLUGIN_TARGET_USER_PROGRAM_FILES_COMMON "use FOLDERID_UserProgramFilesCommon as VST3 target path" ON) endif(SMTG_WIN) #------------------------------------------------------------------------ # VST3 Folder (following the specification) function(smtg_get_default_vst3_path) if(SMTG_WIN) set(win64Found "1") if(NOT ${CMAKE_GENERATOR_PLATFORM} STREQUAL "") string(FIND ${CMAKE_GENERATOR_PLATFORM} x64 win64Found) if(${win64Found} EQUAL -1) string(FIND ${CMAKE_GENERATOR_PLATFORM} ARM64 win64Found) endif() elseif(${CMAKE_GENERATOR} STREQUAL "Visual Studio 15 2017" OR ${CMAKE_GENERATOR} STREQUAL "Visual Studio 14 2015" OR ${CMAKE_GENERATOR} STREQUAL "Visual Studio 12 2013" OR ${CMAKE_GENERATOR} STREQUAL "Visual Studio 11 2012" OR ${CMAKE_GENERATOR} STREQUAL "Visual Studio 10 2010" OR ${CMAKE_GENERATOR} STREQUAL "Visual Studio 9 2008") set(win64Found "-1") else() string(FIND ${CMAKE_GENERATOR} Win32 win32Found) if(NOT ${win32Found} EQUAL -1) set(win64Found "-1") endif() endif() if(${win64Found} EQUAL -1) # for 32bits OS if(EXISTS "$ENV{PROGRAMFILES} (x86)") set(SMTG_PLUGIN_TARGET_DEFAULT_PATH "$ENV{PROGRAMFILES} (x86)\\Common Files\\VST3" PARENT_SCOPE) else() set(SMTG_PLUGIN_TARGET_DEFAULT_PATH "$ENV{PROGRAMFILES}\\Common Files\\VST3" PARENT_SCOPE) endif() else() # for 64bits OS #FOLDERID_UserProgramFilesCommon if(SMTG_PLUGIN_TARGET_USER_PROGRAM_FILES_COMMON) set(SMTG_PLUGIN_TARGET_DEFAULT_PATH "$ENV{LOCALAPPDATA}\\Programs\\Common\\VST3" PARENT_SCOPE) else() set(SMTG_PLUGIN_TARGET_DEFAULT_PATH "$ENV{CommonProgramW6432}\\VST3" PARENT_SCOPE) endif(SMTG_PLUGIN_TARGET_USER_PROGRAM_FILES_COMMON) endif() elseif(SMTG_MAC) set(SMTG_PLUGIN_TARGET_DEFAULT_PATH "$ENV{HOME}/Library/Audio/Plug-Ins/VST3" PARENT_SCOPE) elseif(SMTG_LINUX) set(SMTG_PLUGIN_TARGET_DEFAULT_PATH "$ENV{HOME}/.vst3" PARENT_SCOPE) else() message(FATAL_ERROR "[SMTG] unknown platform") endif(SMTG_WIN) endfunction(smtg_get_default_vst3_path) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_UniversalBinary.cmake000066400000000000000000000037421461511344300227770ustar00rootroot00000000000000 if(SMTG_MAC) if(XCODE_VERSION VERSION_GREATER_EQUAL 12) option(SMTG_BUILD_UNIVERSAL_BINARY "Build universal binary (x86_64 & arm64)" ON) elseif(XCODE_VERSION VERSION_LESS 10) option(SMTG_BUILD_UNIVERSAL_BINARY "Build universal binary (32 & 64 bit)" OFF) else() # Xcode 10 and 11 can only build x86_64 for macOS set(SMTG_BUILD_UNIVERSAL_BINARY 0) endif() endif(SMTG_MAC) #------------------------------------------------------------------------ # smtg_target_setup_universal_binary #------------------------------------------------------------------------ function(smtg_target_setup_universal_binary target) if(SMTG_MAC) if(SMTG_BUILD_UNIVERSAL_BINARY) if(XCODE_VERSION VERSION_GREATER_EQUAL 12) set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_OSX_ARCHITECTURES "x86_64;arm64;arm64e" XCODE_ATTRIBUTE_ARCHS "$(ARCHS_STANDARD_64_BIT)" ) else() set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_OSX_ARCHITECTURES "x86_64;i386" XCODE_ATTRIBUTE_ARCHS "$(ARCHS_STANDARD_32_64_BIT)" ) endif() set_target_properties(${target} PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "$<$:YES>$<$:NO>" ) endif(SMTG_BUILD_UNIVERSAL_BINARY) endif(SMTG_MAC) endfunction(smtg_target_setup_universal_binary) #------------------------------------------------------------------------ # Deprecated since 3.7.4 ----------------------------- function(smtg_setup_universal_binary target) message(DEPRECATION "[SMTG] Use smtg_target_setup_universal_binary instead of smtg_setup_universal_binary") smtg_target_setup_universal_binary (${target}) endfunction(smtg_setup_universal_binary) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_VST3_SDK.cmake000066400000000000000000000007711461511344300211210ustar00rootroot00000000000000 #------------------------------------------------------------------------ # Includes #------------------------------------------------------------------------ include(SMTG_Global) include(SMTG_AddVST3Library) include(SMTG_Bundle) include(SMTG_ExportedSymbols) include(SMTG_PrefixHeader) include(SMTG_PlatformIOS) include(SMTG_PlatformToolset) include(SMTG_CoreAudioSupport) include(SMTG_AAXSupport) include(SMTG_VstGuiSupport) include(SMTG_UniversalBinary) include(SMTG_AddVST3Options) vst3sdk-3.7.10.14+~4.13.3/modules/SMTG_VstGuiSupport.cmake000066400000000000000000000103411461511344300224710ustar00rootroot00000000000000 #------------------------------------------------------------------------ macro(smtg_add_vstgui_subdirectory vstgui_SOURCE_DIR) set(VSTGUI_DISABLE_UNITTESTS 1) set(VSTGUI_STANDALONE_EXAMPLES OFF) set(VSTGUI_STANDALONE ON) set(VSTGUI_TOOLS OFF) add_subdirectory(${vstgui_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/VSTGUI.build) endmacro() macro(smtg_target_setup_vstgui_deprecated_methods target) if(VSTGUI_ENABLE_DEPRECATED_METHODS) target_compile_definitions(${target} PUBLIC VSTGUI_ENABLE_DEPRECATED_METHODS=1 ) else() target_compile_definitions(${target} PUBLIC VSTGUI_ENABLE_DEPRECATED_METHODS=0 ) endif() endmacro() macro(smtg_target_prepare_bundle target) target_compile_definitions(${target} PUBLIC SMTG_MODULE_IS_BUNDLE=1 ) target_sources(${target} PRIVATE ${public_sdk_SOURCE_DIR}/source/vst/vstgui_win32_bundle_support.cpp ${public_sdk_SOURCE_DIR}/source/vst/vstgui_win32_bundle_support.h ) endmacro() #[=======================================================================[.txt: Adds VSTGUI support. Usage: smtg_enable_vstgui_support(VSTGUI_SOURCE_DIR "") Exports: smtg_enable_vstgui_support exports "" as SMTG_VSTGUI_SOURCE_DIR to its parent scope. Deprecation: The usage wihout parameters is depricated. SMTG_VSTGUI_ROOT is exported for compatibility reasons and is also depricated. Replace "${SMTG_VSTGUI_ROOT}/vstgui4" with "${SMTG_VSTGUI_SOURCE_DIR}". The export of "${SMTG_VSTGUI_ROOT}" may be removed in future SDK versions. #]=======================================================================] function(smtg_enable_vstgui_support) if(${ARGC} GREATER 0) set(options) set(oneValueArgs VSTGUI_SOURCE_DIR) set(multiValueArgs) cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) if(ARG_UNPARSED_ARGUMENTS) message(FATAL_ERROR "[SMTG] The following parameters are unrecognized: ${ARG_UNPARSED_ARGUMENTS}") endif() get_filename_component(vstgui_root "${ARG_VSTGUI_SOURCE_DIR}" DIRECTORY) set(SMTG_VSTGUI_ROOT "${vstgui_root}" PARENT_SCOPE) set(vstgui_source_dir "${ARG_VSTGUI_SOURCE_DIR}") else() # See function documentation for more information. message(DEPRECATION "[SMTG] Use smtg_enable_vstgui_support(VSTGUI_SOURCE_DIR \"\") " "instead of set(SMTG_VSTGUI_ROOT \"\") and smtg_enable_vstgui_support()") set(vstgui_source_dir "${SMTG_VSTGUI_ROOT}/vstgui4") endif() # Export SMTG_VSTGUI_SOURCE_DIR to parent scope set(SMTG_VSTGUI_SOURCE_DIR "${vstgui_source_dir}" PARENT_SCOPE) message(STATUS "[SMTG] SMTG_VSTGUI_SOURCE_DIR is set to: ${vstgui_source_dir}") smtg_add_vstgui_subdirectory(${vstgui_source_dir}) add_library(vstgui_support STATIC ${vstgui_source_dir}/vstgui/plugin-bindings/vst3groupcontroller.cpp ${vstgui_source_dir}/vstgui/plugin-bindings/vst3groupcontroller.h ${vstgui_source_dir}/vstgui/plugin-bindings/vst3padcontroller.cpp ${vstgui_source_dir}/vstgui/plugin-bindings/vst3padcontroller.h ${vstgui_source_dir}/vstgui/plugin-bindings/vst3editor.cpp ${vstgui_source_dir}/vstgui/plugin-bindings/vst3editor.h ${public_sdk_SOURCE_DIR}/source/vst/vstguieditor.cpp ) target_link_libraries(vstgui_support PUBLIC base vstgui_uidescription ) target_include_directories(vstgui_support PUBLIC ${vstgui_source_dir} ) target_compile_definitions(vstgui_support PUBLIC $<$:VSTGUI_LIVE_EDITING> ) smtg_target_setup_vstgui_deprecated_methods(vstgui_support) smtg_target_setup_universal_binary(vstgui_support) smtg_target_setup_universal_binary(vstgui) smtg_target_setup_universal_binary(vstgui_uidescription) if(SMTG_WIN AND SMTG_CREATE_BUNDLE_FOR_WINDOWS) smtg_target_prepare_bundle(vstgui_support) endif() endfunction() vst3sdk-3.7.10.14+~4.13.3/templates/000077500000000000000000000000001461511344300163465ustar00rootroot00000000000000vst3sdk-3.7.10.14+~4.13.3/templates/VST_Logo_Steinberg.ico000066400000000000000000007603321461511344300225130ustar00rootroot00000000000000Vv 0XW 3 l :00 %"   hrPNG  IHDR\rf pHYsod IDATxyxՕ6n-k,۲d[eY K'@2IfL~3%I!@oH2IdI Vc"YYjn֩{VwSUUmsy{ulڴ 6lؘpNذac`,E~hhd?mѐt "66 @aAhh8F8B8t@nymlhT.<p\1lˌ@cFUю?̬Vm2QpDA @ vqF._a)d *Gs˫̝73E??W̷m2 eՋ]} vі04L0Ϯ5͛^jDƢoA6i FQЙK$ 04<(P DA6iсak_@gC=o0zmEaîH3WW+D_i AȟR%3! `{i+*ৃGCx~(>Q@og 2H]Xmө~f!1̬چ =aIB᜚h#.;ݗy^ ׹v `zICSV{"6?Q2v' x`}MlB]Xm#B$5;?FZxn?}^e= mpraratp08kȸ303PM{ѹ( ߁zb08OYUzm,^4`dA$w 2t -0sm' {N @QT04߀֍g/O4Ǔ G RD"Qtm"ՀI#H$*D3({!%y<[Z̄h}_{U}f/3 S"DJ'2詎h06vrfVDa`{܅uѳ)>!h\{F1z2=~w' Xi^t8b{L#K(}@~'c'}CfmƉ)# F< h/)Ȯh;g l0ΩCRpV-H?vN.E7F}N[Zl ~F@< Da?mI W@^l$.ӆAA̎Z$y1ß?Dh\t77D`LܓN!bl{fDF=}NOMJ`{q_1qՈ7ߨ}f$`<@?Þ}--`ɾD *?՘zgM>!HV WD{dq3x 0`M+FȘi> G&BD T>wyw"hO&:Qh #]dϦ3 (/ΛRmFd_30j'@%"VlVěTe ZSXն+ @x^7{3O. SVfC0eCx=`3E;{tN @ԓ x6 ''**]3ssr,‚)i30ցtwD0 F 0X` +.Ey(*,D~ CmE)bfq\.(x~@ii ~22ʚ,ء0SXնktb޾>ر {@S 3'#u ČBo<yϏWXXY2TTyƌph_tb4oF~g(S>=7 2VL?x?F$Qgu~OP]w*j`v1 + xsӍhCOKN4Tr'}} pH >4aVL }0XHD ;s;3)c0KmgGtW~DZ. H>4<ŵuҺ:x<> ?o:|f\uq`mؾc7yg+x~#3pZHV?jpG?ފ^xaF4E$D$NS W JfZOQد~-oq9sfKw}3KKzxz>¥ukyxOc$4?c+uGMJ)ֻb _ϣXcT'Jj7_o544ae2 ¹ ef7_ڽ5+W4y 8@Ki" ˅"o_ƍRC~gF`*x<JD5ڬ4 ܅uY{ױ@`.wl0yDW£`g,. 3w| bFN( 7ߴyyM+7/>' ꫮ暛O]6E`x=Zr+:ڊmww 1”rsaj0 xɾ<yըEk/m7mO?^zEsM]QÆuO&%zD @W 1-׋`puގ"ݵǾC 0o;}l&_r֮]YŦtxOʖV4:j|sw晸֘B~e7**pӇom3z~`aJ: UDaxd_BpqnF886o#_< Q^> -b_ 0ჇڊNtw(ex==,{̟g{U5XvcvYɸ1Շ+@Mu=xv=^B%l{ HnW Zho´7 WD[, Xs+ZZZuطg/?EQyZ}_\\;\.8GS yW2H8hi:6?-ҕbV}cÚ'77y]DƗt:D׏_ڗq}z~m]XpHMsppD5pX6R];5n|ϛ~CSks7v~S8Hsj%şˋÑgf_$14K,KdioVY6^{|/O=U!//~\(ESO?޿+V4 _Ja٠?cO݃Ͳ-hm /ťe֭K43q@߄<>pf⢵N~we^A$IGpuWk #cr( Z:"ϢJKJkonۅNig zǧM_@OOJ}[r{;pHo;2{񃼯;zmN8N,Y\5kVvqfz^9oDLܓ kf" ȁ)ZjЈ0j(9kjڅUS!Usn76o~ǎO_Ss%c9Xr9VhƘ9tX$\nj,ic5o|^<ܟqT'(KZHDC.~?{P(2y>.TPNP0bAz|cȾɬ䫞W.@_2 7],V6j_XXaω;qM7Y#P~0{Ѹ?y'O?ߺ^|gEpGHIfE=xpꕱ3&| AQqT+cFlE. rR(5(JCj+6-ͪDpMxI'>j ;^ +55UwŋkY,_^/sG~|bC {F"cV@Qٓ[㎔ߔ!b~thؚf(+)D_?[t3P߳l;22~Y[ocw{}Dyi!fĺbٲ:AadDA$5htp8hC݊amۆNbjLx ;vS+&ẫJQkxo>I'H9?~-(,.Չyvc۶uq\\3:nXUU\.,]/ӝx{pƜ9UOoY<3 xм=Ϗ܇/}l޾!',( 8:n7HLX3Lk>կ7{> j7 o%E7|W`F^P*224^X_E>_@>/!֌$Ӡ(hi=~f&V) .v&'Wl5gB[[;Z]dC P_EZ[Zu?а^/H$haY=*,\8>4C,H?n=qB쀢U:z9~#dWT#  ,!,S}{N6̨AF*!:zFg!ګQUUg^uw/i3NjW]ۏQS ǧE0<yyys_HAaAn).^n/<}J_rሹn|x笸դo>*3̵Bx~V=֫sz7}G-IhU(--ѹ5H$ kWS  8u_:Gri obO y. %ͻnl7"ɶ?q{%IBMud\\ % xQQB L& @8]IQyݓk})nF5te5)zG6iY Χ>~R}DxL6&KE2,~۴i {e6@Qd2ksWSaFFD0kNm?f"%G~2 W /)#Vy#@D} H@k[+qXHD g?%~p%#@}m֯]#ퟸyB{D"4GGWJ5lݦ[k Zـg2ӴcJCHw_*q$ s?өpx<?p ~g]2[nţkœXZd^3*'O?W^}=ߩVhI4p;DG4 pB)՛}KrB!<_p}zil/>sǧ˅G0 IDAToUwxakvPh$*$ĩN|{ %^|` (_}PHjN2Aݗ,e mw~cӜ \Z^./W!O$css –.+|TUU/K܎ɽgfgeU>|<Xl-IV\y.8 =mۉkcdYgoG߷nQxWD}}7,ÂE]\M}npu:K(8ىwM_T\\FCƇospT'~?F Q#Gt:~yRhHc\G٤ |B%-r,Y>ew|xt: ׿y;'>y*++c>M'?1< goӼ^M>) XEF\8ۉ~,صk/v ۍ;g6"x<]n. ũsaD[{. j\vz\r1::h|Ys-Q3z_{ĊPS]M!SAiQJfOy02i=88N9ք{{_u)GNc#pj{ص{uib\p ]ztJ$3wGY478xg:ۅ3o?{y-O{ܳ?C$\"гJ0>Nut$ΠgΠϏ9A(JXSΫm ۍYe317 ]^yXX5ۼW!ycr(':1<t2شiSR/G=։p8g֛7" zˆ/ŭ2~by 痱F ]~B XPH(ap69n7r<9p9]"Iۻo rl[\\ySQ8u5ס w \+?,1-H]8_ VXX]w5e?I:‰0fOWb<ΜJϓrP @JkZn:h՗(b)Ásx?ߺǎ`'y.+m[0P@IB6SSm]χ~˴ha#LS-6ӔO/kACEQ׿mvHc@_ UDZe<.`x<>{=~olnaTסdV90ƪuE`CGϾmRپ d ȯ @]|:ۋ<7,} KESO?7֪<ӊ$"ld]겋=#"m! EF օ<_1V6& ־ XX!BPBd(s A6_=xsƶgqO:R%@ (;_TTtM5DnCxƃZ[T0)8`0Ry& AHȱ&sxgZ3@"K>G2E2O#"/ DU|{pPyg={&#W0z( ?.' LAs@2!'HC  ݱcUy=!mzN5[LCJtl]^(>0Q &Z6,4DuI=N,:՚?H@2Ja"ŠaIkP|`CvX0 J24 (kb:PV6lt=>K #&E]e>kg!2uwYO]O<=Coھ?a*) uIueul+sEJ@3=2աх7oǁfDm$ [ݗ|' S5>>od_ԭH` cFiX]M٦KGҞt2#`'кÓYlAOȞQ;؊m{g}KQPtOXEM5\t @% ;j;0u} H@5ai@@>d3zb]T,`fˌ# x{') L!u_"8Ш@TgFtfRD!xCoy;;5v ( ftݗhZ1^A EQZslӰ 84{b='[glu!H/{ (=v!hxC ;L%EkB<>uu_BbxBӄTO@IPށA6ȩ6 !:ڄ7mE[g7h,꾖v[vT!H@Z fˁEo})OWxJ@:,# 7[E $LDK+ZN#DŽ8Q90`N/Ǯ'Kʮ/ȃ3`S/zp4^޼GG2 9>ں9.ц)RhFf2|E|"@4S@Bxpho|bupԍGsWݗ HI-0Y1v]> a @7Sc4{q'IBEvqhhBqYrl%$\.p(鋎 /#eȴ /DGepk;Dao<mBsk;.hR' ߏ3gaџ =ȰX61p%NY-OT(a>.^FĠ,D@?Z ?# 滻e^!9)tq`0}5p#1 !@ƑZxD[JА7SRS_6iIB4 w Ev`)0"ƫ tD}{$Ґ&Ӊom‘0h?gF*`xy"  |g` p!-zXD") gDdd}@Y>#RH4oľo]0 "PϊR3aIÂju_s[76q! v}@vV"%enfx2^JAzzM~Kǃs8{voW Qʶ෼Qdxi6}jOG{'okîQpddT,H' GSSա}X !@ƑL (#ԛ'@ 5,܈:d;|[|gVFJ@@_]cQ:+I$BPp;d^\K3J@ь,CAGv> ɘr yh{8g0?H H>Ɣ>v!"o\(8uH#:?Uw_%}7`CK9JAgp"R_t`"V!IhF (0CR.iǫ[kI Uu9~^ݧGgx5FgC`%,ul5"<hxd܆oР2"eYܘlnǛZUy8uʚPF}MǼ'ȿl24 ;{}>#(h@Oo/mz MǎeV H(ǓCx{u!Rj?30:E&s18Ш' 0QHO]vYO@Q!(5H;0R2 ()"yϢ~x $ g`^v#q/6/Uae.;MO|ӥR V4 vϩGhknt #DZdTwy*NيA`oŎ|(( Qow$!EI4';EYi%ϛ-HyO@e-O'Lw #W= +dʛyvd+*:%f0}DD䏹n`ӻJŽtQr[T\+7ktF)y!ȍw5 e= ҭey2`$N4 u))#L_6iHT='Sbfg H{E5DLöa P(6m0~ԁ8D1_~YlZH:~7C{[pDTuGکsyW 򱪾?d!H@Du ǟok،QC]iGClmn¾w6h˗;l˿fiC{gz;pN;$Qڻ/7ǫqN\{fd!9lq%ϛHIO@^UpoO@CfepE&P=5A.Kūm C7Og~z/2r8p9XzYjeF˜[6Օ]wrf)O3+2mxeEO+ ȮDO|v#mQX@tw]h,$Q݋q`<`0Ǯ/qu_ߢJ70)ϗ(Py#D)?YH D(F$$CU(,,@4Q+?A߆K|Q. x#~%-I D$*( E}!Ku(8}6kKtj|,-KHy-! AD\"( ΗwRZV7jAj?l`3d=FCۍ@ % ñufyz~!س0^`"Smn5it=s/ί_ߌq?WJ#Z^B;Kñsfx,AgfY}/NjKp P~fx#'x5?`u7^FKsl=i@:i@,xuEY/>_ßlXvk & (^gmkiƛ3Zoր#:8Vp~)aUm%B=)@ kDDǶ'^$ߘ=G< K}eҫPN>EH GfɾK}ضy35ܸ5OցW\gd t_)u(S}M)ŵEjD|RbYh:`[]R5.GQI)E wwa)DQ0# H؍!}OqYc WeJx NGJ>|13cd(OvB[MEDd!b~/[˛>km;ǣ3 0K!0~%> zNW^H[Β`##i0ϓ3iHQ- _dSb_` 9!c+-5\9*z7! a{oc5ke_#aaU}9 =q]yr,%lQ- g.:{{WH= Ybvzg@; aTU4"# gh ۭ#4..ƢUhjy=F$tg _y#=Xl#=sG#U ʍ!( >+**E]ʚ:O12^ P ]wnB=ϨX `奅i1"E cbֈ,3#cF$H$Sʲ1 r:hi_3˄AjPvo8#|C=OX }t]ZRYͶ2(](Z]OT;{|Io`lZt.Fy3f`kQAӆL#ChSh>C1bRDLfNiZ ~ ?DAFၬꏖRrhC^/|IDAT Q=mV~c?5yODl=ӟ9k6]qTIHQ1?Qx+✀uGOj8˅M&Lݗ,3FKlɘx}tUm잢% a[rdxq4mj5X}zN* '0 x>>~]9tVV"p%?`a re ;O++3q}&yƌɡDZoU|&'(OqL\tٕ]@bI1O$ҐFJQȖR1Lݧ( Xb:~W>4ިUiVPO #hʏ?GFP򞉬{81*>'OL7 lWQLCh;g+`ahzqaU}r}as429B Ctu_"?W53hҀF>6!:?2cоxw놫(ocp9Y>민s*bHOB~+JP?wS[+.9d)G#Ŧ`>WδG}w9*ՙE;"H,#E$/9E]A,YMTg`._ 7|@% hX-`0WW;<_P۟* } e W3}$vS k"0C+G6C.7EAKqlo h>䟑*I( Z.[&`72MIqDG`̟NDRwc>6r)(i(.獁?5* QkEuX{/, 'EBݧ( oҨx/Ԏ3JFID03 mY;1AwOD)hn0C)?-( Bhi:ՔPVIH//)օviH7@co87xFGϝ[nI{tW%ǦM&tsE7oݩl0zMS **C{_O$w6 Y([>[\TU>#k)&:F?ct-PiX{p:\1uk}_< Vz7zY1p3fHu8yE:~e*EQH@+kc##nq@ۮ~gb뛯 IB~<'*GhR,[y>V^N5pp:QPo t1>]zOmXsl *%}<9Y74x޾OYUQγl9ԘKxq*ho]*,,U(**1;:y s9 8,YP9HZ}'Nifw%>EhߢJ,5yN } }h+wѵd3|:MOdD4wv6H@?xe e!ssXl)go Mムp컲Teװh!f&Du_"NtD0~"~Z,NAs [@-_9bm@j4ECh.x3hO^;wY2 $f({LGߋ;h,a GBJKJxM.a\¬ j*4KR|"@ÅI''+ 3ZciI# gԥh ؟5T_Ov;{gmkh9GMED"P/fqFg~c}zfuCAFz<<}4iBJc<̄Ѩ_MjD<Y! hSXXKPZ6Khc~4:p0JAq~~Rۿ$oXrίRy4t{suaNepaO=Dq"vg܅ht|io@Ȗ7G;*y#S1Rb }]z<uc@xwh?:īt_8ݨ?wn{oEpH<fD2e}m2TW-aF5}/3l% eJd#=| +6_6B"ЁE?u~A!.1Q7Y?>&F̌ځ=;7F|[SqQKؾ}uαba<,4@ O1on05Yk/egKȚXƣw(ЯAh (da"!hqNM(xe'T ^X$zY (x??Ow3bYԃkࡆdd/,O}-,@Zg`#+EFťeXҰ3fk <-_ ='KS+/RIBJĉ27:%k.L (p8Bڻh,nu}">Cޛummc;ud}GrXY{^r{ 0% ÿv Y^R _|^Nηc}FFƞvy){2Acckc]kYHclKqq:4F@"KaX\YPO=g;~t]zfҁӢ<>D(- W]ucd!Q4=9 aǻ[78'_ϐ(2&ѧ{UU̵da977 k?nGiH8C4E*Yl.j4c˛)HS}x獗M*^r]a$l"sq _{ǍW_YMOz<،Xn4PW!{zz>0V彽g- & [GC^Ea+ڃ?>l ߪ\V4$l/=Ttee}DgCxo8; `ǁ1sBH$_D1%ӀЉOIa+?aPM=c<ޝ{ʌioGIúP-[3UYƮV6&貫7Zw>xZ0223B&#W^ gԡM)k}w|C`]JKJy{OcPk6\Ҹ}e]E*Bme!@Dex]9O3 Au_A=SxZEj{O2~i{{SwEF?Ϩ@.@yYiM v9Ktvƌ|%<9O# CpE]㪋W=OȲ"۲̬l /` B#e]aL (#۲`ㅽ,wz6V`$# jH0x|A[ @U9.XVcx&wpØLP=p6߅,-J!m2<{Ym Q܆8迉z/3`,㖵$aiXKRbp< !Bo}d1+kUd,ݻ/3a,V؋sf.l0Eq' `l` !W0ՅȬP^Zhp` "^_M(lu_v6SfZ<9/K`)xʩݗE VlOV66T*} Ё/{md+~GդIENDB`PNG  IHDR pHYsod IDATx]wE^KHO %@ 4R#]AP4)'ʇ; H ʽwwg{_ m;{~;7{g̜!!>D|PZC3Ck0388gA9 , v8Cz*,Yx10000H13fl7-o5eÎ:^&Ro >A!l)-~~a?ի#I,iʒFSFSq&H'є\Mi pǡXjuA m@!DA)ۖB6H|LYҔ%_hyhy)5M ~; OZ97 v:QϿ&~ Ob!O_'G|h%MYhh7LR^))4kNXj4<BC ۖ=m{u3]egum5D~z{>rߞK 6K--o5'tʚ,flیєNflیmS;4_yaXP5> 9K懵{}ϯ-mklKPJW_.+#{O=^|H)j fIS|m6Kk3ImvPxM^flt6c4fl7wq)_$_kf1?3[y:eegύ̘J f1c%GJ)IA+b7~jov@w<~<ԓXWmیm5ף)Οlی2MaSgBOՁR/+OO8AtIuOg>Q{U=/iޣP>Q8L B@O?o(l````14Md|MbO;n<{Z '?} (xh0JDuB,jo)YY]FV,G~PH!TV)b8jʒFSFSqd[)&۷;v8L~aq֚_{M XRأYSA,sXU{ZRh34 :aW%b˖.}'یєNfl)3@yj2&@ pmƂFOՁihfffZo/fH)Z9{Ԝ<@cY0xE1R9Sv @cjzB "R-z֭E?wseiӔ%_hyhyɌ[)&y[Z[܇}<Džy4 ~3XaKyv\NDލP1*JbB޶V Jk043)a .2uz \ϩ 1mhJ'o3YҔ_ f FSr5_cPe>Z P-Ψ'=Oc-o쿓T/ި/m9j/|`C[g D+-N<.4eW)Z^)Z8j27͚:/jMIچ1c#7s^Q:OA #:ZYVSGA}ַ4C3kAZ[1Ck*# o?? %ԃ mI@+~{݃_{pc婸'b̛fM7Ļ{7 M2bL |Zq1jpS/_;?ٗ Ŝz@;[u˶Re[*ugl|0$0c֎8Յ6h z`````0T0#53MvvQv\8Jk w 1 RxRL"ͤZ=XRAi@β~Uq  0֛y@rDab!I¶^W} ?g15)KQS|5یєNflیm߈O=RpR̠Z?;bWu5Z'݉郎ey7n+a)[s.\煾nHLl& W)\w{/.|+V,=flt6c%M`Fk4%W5bMeQ{Gλ S!, ?ű{ewy?@mh, %B-Ceǽ7C} 1 ?$L,)нn-YN>e{z64RtO$hJ,GMՌ[)&wl8[?;oې46X*]wKO=J}5ɇj``ఖ|N)D*EyM|-F / 'MBOw.] ЀT mhJ'o3YҔ_M^flJ`ij;͟y7;7t+T]JA^oC/.uMے;zQ G4gK2WYO O?BSI)I=?iSeQ&wXz49Eیm4W)X۵7@ĶImv4UflA$h@{6J$KB~y4l44{!8Ž;lv<%obYTImTon,H5o3YҴ{l5uΠJ0sk4%Wum8SqUADD.z&j+8w]Obf 9}^49@`VD8o[?Vo]O_=UW{W" NdHZuV8>h74b~O$hJ,GMTbLFbY-YKceCA0#5:D?7iq=(Z3zՍuU{YT+'93ϔ7hyJ;:^~((A A,,_Q|#Wc@MՔ%_)S9mhJ'o3Ik?qmm𔆧ţof4RY4QjA$ֿj^"YAxR{f֡¦*  AJkm`ˉ;#{"eMm6K2 یєNflok>q 5Z|Z󿐳 9K]uSZ,iT'=='{wޭ[^,Su=q HfIl-=+_G7^4K6c%MYۤ6c;(F8ij|osh5 Ҕ8jR_ǎqteAZL-`,%F]Bۖk:N)Ug(y ڪ7O풷vے+AZkVh7;IE?ciF3g1c믡s5یm4eWY hmm=_"FIl_36%s-!k+WzJҏ3g[h)>+[+é>4 >l)WW}0g F^)P( m?s6z.\n & _*U^5'^csee[Ŝu[wJ#! $eKo~_WFz,}׍hyhy㨉MN^)Mڎ%WxD^)k5eW3 Mm6[Mk?y+2Hif]_~ȡ--)eZGw"?GKd{J/(-AXnprhC?գOi~8woF#G ۤ6cgM5h9mx^[)ƞSw|G{vcKp[/~ m^U׻݌mRxU=ogA4W ْ-̫f^{p #LB)(}c8愓Ck?\OKIcXD3 ft( Mm62ޣ}~8IA#_3Sc34_rэѸ7λ)hD)Z WbP-#`1*0k6Z0~x&hJ'o3YҔ_ &(FSr5_ʏ9@U7<lg}c+{(@fb̻94Zx+%/I<G@h{}9IɏxK#є9MY52 k4%W5o0ߟ jlR^7iͻE(N BЫ]OR3Xo42"ĖԵv ݝ8cdb(FS&5e8jʔApGֻh67x]٭Bk?̓^` +.WD==܀^@0=$R¶$ܳ8ԓ䭷p 2tMՔi_wcOl5yk\s-P ͡ 䉂7FږpuWBF7x&W<7 kԛJk`PPxS5W"31"%?g?5WyY${e4%WS|LjtMՔY_ws/1aq\h q߻ ̟>I?Z ({8b#.s\6@C 1!gI^x} .d}Ҭ֔^)Z8j2@Jyjʤ3f½_*N [>~4@,f1:OCPFq\xJK"es$h-8BP_NBK<}Y|k_#^^MՔ%_)S FSr5ecЈ "43fOfZ-\oI)-J,_uzG"UeQ(41T=̚i\AC )@@_f KJ@{pa%l$}jʒqԔ)_`H0e4<᧿=ZJ-}ohؖ{U뾬iƿAc+E{]iI15gKk~`fr4 (aᇿ Cn괨]4000ج0[)nV)SO݁fDeǃ44ze,[R^Y^ qtbsFI^3sU2ܩ53 >S 31-FgIR)k ɛXєNfl)32CQG}J3P2}LI \)}R}qc\,/$H Bζ_xW\vok^)Z8j2l^܊W!>~_sN aY^+;SuNкM ;`UgzJA[4?Z?AZzv8ꄓU+v`6ck4۷ś/pٕ眏f#5VsZrR[vsY*SPDMB)=y DO!g-s\9hi㬊 IDAT)c/eh+)i )7OIm6K2|o W|#8 kϰ׿;J}XkS'Dvb5ʖryΒ+~1qR--\8И{5j47xc(}10003 FSr5%׋>t5N?/=;ڄmbꟈmیm4eW[)nPv'[oךz?Q*HW\o+ɾ^4@ɛFMDA$<;ڧ' Z58hvt:=!c̘x?npD?1Mo3YҔ_M^flt6c۫ؓNWb }Q7Rn#sʎQfBoc/+DD@{vԚw+Pk[z 2 ̙+;fϙukګ.7;ڄm럘&,iʌ3 FSr5y Ԇ|%HO0`5TS bMYu4)ne"z7]O-o8h!\(LADA֭^Tp٩Vu>/ ?1M-o51a#<<ßq=T]qO  Xo-) Aו ` k)S)-Ҁo!jApL"!` ے[slH|200H/@:yj{/qo`Đ$hsUVyIM,:TC +J@@ XJAO?{!Te'Ck5eW3 M}Ƕf'q6 9:Z!-J]k?=;.IͪoJMwݒb[Kttf?$~j4ypA`ܸ8q+jHFQ o3Im6K2+hJ:fX|џ`Vꐫ?ٷZ -y^wŹ~VIzoo5e(4p Z,xF#[RAntͽK,&f_v}r5%g[Ͻ(LC¡߹`#¶MC)U7@&Ee%MYۤ6c;( A!e*U'#ZXYk,i`vђ|-ŗgNB= QBs"HAO=;}}100Hf@yjr_KURZ#hזlX㟉BΖ+;ޅ:,{'ES|&&X]YtW/0DjDT l)ܵ?kFiHxhyH1o3FS:y7(;~~np ߿6@O? ` !Fvn*ɞs1LMY5/ZOw\RaU<|}pspxgۅ:z"a 6Eflیm4eW[)b;ǟr:vk_x j\@TcAd ݻ*U! įae4Ek42""+vm+ Z!X멠פ-?y;Jkzסc `I.\v׈l)K6c4fl`Rk4%WӐzgɧ= 凙 '* @cUJO9D cZa4Ek4m2au޶Ceּ05D#sA|aKKJ<'p־}]٩k)KQS|5 2o {BҚt-_=ؒPSRj\4fFSF!S|~0wV/|UUA0"@@ {ADN ҋܹz%wBĘkʒqԔ)_M￁A@D0aKuޅʫ!rT]&i>@^*\Tu'XW) 0q=싯݃R% f@zy5/~޵>]mCʏ? pi}:z(m)KQ%֚GmuZRT o}p/ARDi3f}X,)+y6ifISf|5@zy5{Gg$׃?=}kϟ6IP7uWQ87MCKDQO[ ~ ak$m]al"1/|`ۿifISf|%9i5iy~ncSЬQ_臙A'w=?mP5h'-oXB9-Мm'V`#  ^ |w?>/Չ Ԕ%_)S FSr5cb]w|nn{Z~J9;Wg2q4ѿ:Z wWGװ@ ((,$Y:׬ZuYĤNL,GMUn Ƙߞi債&?smmG# }ΞO5L=``Vy˞s$آUjTQkÁ?\0kb4r":}_qP.D䚁ŒhJͻ˼0~I詺fL$smmKL$.8gQ Qz{@GMY55?R|@u+)D Fvf" Y~a7!M-o5Sیs9;o4z[8fhVp1gg;⸧ A&@ ʚ,^)Z^)ZʃJfͲĖvnιrLD5Fº1}Lx;f,FEH,num3Im6K2+hJNz¸- &+hm=`I᭥=WDkg߬Mk4Evm * ¢m͖gNo z6r:Z+҈W]GMY52 k4%WSecƌb xJ49X8= *tN\f޲A@Yה%_).} UbOi  ߶fL ,){Xt1,^pXյqԔ%_)S6ck4Ōwm>LaGJþ~e23RИm|Q5655}'< Rb`up0R ^Gkf(ǝ| kotwveQ&,iʌ&H/o3FSx4)4o7T=RAWe˖hu=]DD@*qheYS|8%mʎO>''Ro2g1P'8gbxGaI0c˟ۤ6c%M "Kf̚Ӧ?39x0zXU=U -700H2\! ~^;cg{jG 9RH!`K_{᷿Ɨx$A0sk4%WRq~aʕ2|LjRی!O݁C8;7a{ `A#oY]S[*)"k5W@-pxk֚Wؖ\) (!ׂp.Ƴb+/oS@Fd4fl)3 MwtHy4O^0 " phoy\uW>7hCDõ0I4kx{CG{;{쯽ҴXCیm4eW[ixj\tٕ(u t^Dlyxwx@*ImES|$JЪީV[r)JD&437iy{O){|rIJflیm4eW[ix+pzpw^=}h)=O)}fQ^)Z^)ZޡRqWԁHeYI ȒqԔ%_)K6%:ZY<3obs c=ҥKL.FI㍣&py5F 考Uވ&ohͶ% m>v)X7Ctce4^)Z^)Z޴i,<\=4o[;Z U[Ɍj0Pk d e@R3vR-_ 垞>e eY7&A5@zy56R6|pvǝtEa؈~5-r:|\)=^8iFSFSiDD 㩙ۃ,S3/XWSɟ2@30a#qcʔ)xⱿnpX=ۤ6ckmیѴ/KW IDATz%>4Le0fi0 R*{z["3.$MMY ͼ֘h䰖 .'jqCkS6 sHo?ۤ6c;(ZZ[q=c}fi?:Yos/A4uMe=B. U)R>OU\wT_5 TQm7\Xbb`0t Ii56m[{;+a5ɦbavgѪ$NK--o5 U]=VJ/cf=wk/)$\g/eg]5eW^fl2!F|`n̳^{>bs}huw\@k O--o5޺R߶D9R効S%7_H±ǟHf#ˋiHy,u6c4fl``|qig{)][r9k?ѡu``Fیm5l\K'z\{pPoڢT:_Zv똱%Õ~'^)Z^)Zެk""ZYV=Uz3̙7rdPJc¤ɘ9{Z_ fPSqEe%Mm6Ӛ,9睏aǝ$'Ih-Vs j﹕pԼFSFSFSR s a0mt;C_;6s  ?;x^%d .=M,6K2+,j`Pig_{=eCk W5;[-)^i=;e```[ʜ-Iz@ A[Pa! @Y_xO3mX`M#Ѵ '>\z5hkԚyF?L9W铺+5<5|@dm8MMM/t-K_oZ'>D!  `I%񏧟{?$Dlu1፣LjRیm4-oݟ=vCu!j`"kʮrj\Ap`&hhh3k;vW-WuP?t @kF3ϽM>GJJ>e @Fd%Mm63kozq#y>)SIm6UϘIil3mk(]5ؒR wyG AM-6iFSFSFZUZ#yDdW]Ou40"`ifx:cW]dɶ$I{cc60!GB K )/=K H @B/.b޻zݽ%{t{vf-gfs‚硩 ?ܒ K3lHi` GL&?ٓG%am%D"䇉( ύs/m hVdyM1U{czeit͎[ɿJ`Loeֆ:W͛6*22h@FT_*&6%FoiPH: =NGAIEDhl!&%KQT4 ذ~]{fNF|C;(|0a#c*&`b4BK0w9.9w^MyaQ[8mMsAp6lذacXX g4Q0_r(SԲzA V92> %t66tK[x4&u {gc8`l##P5ɦV.|nՁH\[6lذa 嵹YEbhoNyX0W+ Eq{gm455;6 vwȔ ^&RurOff%Y,~{\ z<]"#2-Sj2L|p;W4!~㐤.9YA%:4c'aX$R$ &|/`=8?`7e|C2|o NxzJI@=FڿЁ,(Hk:42d4]XTbID$NLNR='qf|~?߰U7v,l 5:Asld${P3ut]$Túgy\H_QA6lذa cñ,]$bx՘mkv$pܚ3 0 0b؜sł0b<3)읍L0|6me$ 3"'N&㟤w`v:Ώ?Su<"r'yW+ޮtkt62{}g*RE{6wp-ӀU"]1U ~%DZ8 Y7ÀLF ]0T]GIXzM!}|m40|6-er\g} :qM7|V/:"S㖘>*k=n0쾦@&2@D$IRB_Odd^=c؍iu!J}M'( zy\fbDԤjzgo3b;Ѽ /݋A"K 2ohd##d2TL§" a O[29r+tg4蓼m(J7PNׂ:4MiPUCiUUqU#n~ghnC:|Y?,CVd888NM @.F̙'I6 m`̝;f΀iC&̅,CłdD"Zk@4(j.,x'?GGs~mF:`w7 Ѹ 3srVrkp\v~Kd*qUC(B0D(FG DDGDŠ*tMkдN/nngYY~dge@Q!8!Kؿ[xUU<^t|n[m8eHDEWhg$%rAY8e[9ܿ/uvPp*y2W^|eQ4ҏHS#ϫ.cv1%p4+M7Jޥpx[PЈP_߀fw(i]t-@^HIL#EOg$IDVi=>tP(q2_\kktS6:?{Wo?@ H d3"PIGY/;?q[F7eb;FZpٕKOH"1F6IȒ/ڷ4zK۰&HQUPu 8ǎ%Fz_5!t3̞n*m$9惀NC{&n+0 i<_>tS iCr|Ack:t7Lo:Sg]4vDdy@mH+F8O,C[[pA8pAkk;B06$p8:2>Ժ)SOF5hؾ}v!??%ţP\< %(Gvv|>\.' 9яu7⭷ޅi}[6l dc[|$ICJll%fzySpcw|3~{vĻ=H-lFZa10>r(ѿյ"B푳nb%"1;^b8x0 ij"ts򊆜?hmmCKK+vYv<*B" ??Y~?|>i 4VO,~&<Y$Kq)=T7#qTYybdaài: |;>$^yElܰ!}1 if{ƌC$vO j0ϫ.vJ$_OD9#@Wa*47`V޳FB$z{a9g+4A]>i4 7" "p8Drqnn.GaԨ"cԨ"dgtxCc1>|kměoDIO6RΏԫ%i l6WU"c52z;Ku ` X& qg?E^O6G lFZ`¤*?—c/$YÍmgmn{@ho# It]Cx-hhlvM&8/$'H(!p +׬Γ  C$ B5`8b8(B0BB004MЍLC#GMXƆIqUY]_ sXs3H0CU&@dcOϼS߂H$X4ʮdb„()-~n&~gNRm/==! 6l %vه5k#,ˉrT?eN>().FI(.)AQQzv!' i^2UUGZZ[QWWF465@HA̅{-[:"Q2С#]:6;YV+vtٓcñ]K=./4]~ٌbn< "r_Xu[w٧/XjIKL}lU5xbĠNswCV tc0q߆dHdؼe+֬Yv#3 Il4ƍqcǠt4 7၄5ĮE1X|^Ҳ1`ꬹTB`-PPt4#W3N_P)BmLTLFaWzLé,#֭;VaOhtrE8\;v,r:AD Z=ZɤPyPRRSk9S DKK+8}cChhhX,F_}lD䉩D`˩ʥ("DjYf Bu|/qkSi o=IOI:4jL#]j+O( .D<0pct׀3'WӉ#G⥗o@0sO}ҞIK*\p.SFNfofcPXX1ي[̉J934RbfG6 $B0^{m<_C9A(xPS3 ]ӧMá@4 d8`DiΛ&|C_{@(JUI{lذ Hb,Wo=ެ.ij-{Hbq=W;.V \ء}ܝBchinNa/m2N׫d3,4pF;>o>yrLߌ -`,CY< ޛ/I_m4(S&U2kB{ʫDPydbf$ &M5KW_`6<}ę4C&ϋ *1kt,(EcDuz3>1udL\mڜ1o4ϊ'bCQ;m0f$rFU|DRdc$Usa ˷?G~KJ1w)Vo,X#ҿTB$"^/曎2eZ_%IuZ}<غu;&Q-%.h)t:O%\ *# S[{;> [tkH$Q:6kBYۿD $|sd @0j&㊫f{uBOvAs,rDb*sBŀT>񭨪} bacP!b1Ն IDAT/2^$$RGcҫ0g,x=iv`fۍI_YsoիעK 6zU\"L 1_POeIWQ5;J Xh''c{Ѕ⪆[s>/<4}ƙ`1x<=_]t)]{c $=C؃vF\BGccyyZbЕN!UqGW`.;D$B0z6nB8I#.j#]l;BuѸ@eG@d|<ABGBSSw`W|S*2w=fi@ت3$df"v(5Mg|tFWk (S&u}xmێ^KgLl诚4 (..fMF.2TU-[ݻidl 2Sev5jV$i!dD c\M/,(8/[-tȑ^BzNR'|C/_;?Hܨ#,K%oYI74]&.i_/mMGҽ,cxgkH423~|n7n,TUW;9cF N-- dlb[t{v״9D(\P60ufR ⮩kk?/\w=ƌGWp8ԫX}|mȷ?6/О1߻*zǝt&t袳ħ@dLމ_E9>O$ݭ>!Ğ^R0&?t5sGR f8kl'o9t J6lD޸_8{$-p:d/`DZ;z2oB@ U_0c֜ldC- 6z7݌{M@V. @3` qBPu񀮋?iEQpxpБ^C׋.EAAm yy8q'?`%TyWlFTm&Β$ildf]ܚ-;A&Ei6}>`S_6 VSɣt)#:o9@~q~Ik)LL{\J|fqqF.|Qt$ICxxR%izjjiv ,\oQ5gBo&;`]k a:`4ұ>ß_P?^_}眷%ecJ?[^_`^u.KT `]d"S6zؾ}'z{e"&W{h  BO~ OM\{6lj3O5Sd+ n"1+ȬdVT5ec1oo'B\vt@9!6F"&VU=G8P`C]*eIz (Id6@u۰Y~*U7% @MMv!37#xOa۶C ),/u9|L0 @d& zg dac]/~wzoz ث6aic 6b|ICq=B{bvo#ADBBaM30E+ g Dؽg)ݻܿK]qŵX~RԆaˡĚ';XY,dYSq9;?>t*|ψG̣QUTŒ3t:i$9媶`䞸ϖz εӝo:ʔʾ IP:zt[f33u88|(ѱc1yrua8ŗP5'}'jFݍ+!&~z PWX #1 ,.]H DbD4G2LҪ@$:l %D j{߷`"sxגNPCl0&''̞XZRu2bRN}<ƎI @$I`!FuTWO:EG6h ;v~I+(ID4iGp݅``ŊkO!xIV"B{Gv܍X^$03E9t:|3'P7J-8/d=Wta9cN.!3@$ pk1 veWl`Eß F(w&Dv7aE G9:{eI2acÆMY]RbD@ I`&}Wv_e8|tw5hYVIPw2`|m >x<}N> C FwtQ.8n0[@Fn"`2(,ºe:~@{[[ ecoޏiBLd=; I$>wm0B0_a*M}m=tH"uذ\vi!A~̐iUPf3nƎɕ$_cǎc$4զTt5ˬwh&,\}ͩȋ`~EYz(l"$+((V2eڛxo ` ]K{7W]=]Or3dq~07S'"PȚ ֞NKV8}űrLBJ{{ADضm>.+-l|ec8xp6n$Ut1P$z&K[0#8+V`5V| سc7Ja0BÏ[nC8AM*=( 17;zM _0O"hjl{+W#ZYq9gvTH$w[uP̛7*DCॗ_^V:+ "3cmܔ΂K.j6DD FeeyY CQ(d"1V#AƦbp5CqW_z`Aj,ڑ$ӐᾯKn-_v$(kÞ#F!l=?D[髽{DZ+Q__'Q ӵ{B0c=kni]i?Y!í۠(]a1 qcxJhIիއ-7 ~~LSD{:|YLp7x ţp٥YF@!]pv܍&E_{8$$羦LQz]$./;tdd72XN:3/> t XrEކ榦EKޓg̜e@+۳/}׬(;"ҏfg<: "dy}#9CY ˲Lg·Ʒv$YӽOCW$)rpf,IL$%°`_Kkˉ+rhtDE+EE3{fKvÇPoD6x2$J<-!}ƿpRnXNSߧ=i7xO @q8A%QU{J"Wu3=ab3}lI'dY[CnZ_'X}444$!Ŀ݁XvMxc"0D۩̉=h*"&a I^}-pe@7 vʫ())Ƙ.c+@aa.x1zYD O#"8N88 YPt:4@QdU{C4M|f$I6m N'4Mu@\UqqA4i*T*7m1[w']gz8c=TG_u9Ų$=t(`Ć9 L&J(7\$d6* fL> xO?B` {>Y|ޯ@D桱jŦGG꣚.f䤞l0%62tc"iXf-;.\ ru !`6v)iY oיtuŜY3[qfI!vp$V$Y$$P76◿z uu3:`2[%ţj%ҪƧ!! " hkoGG{¡04MQ9IYZ%#D-S\rCV*q fA{00 X@bK^?;>?|{)P61dYMݎ dTU8!iK0p}xY4~S07P>vTU3-xCTk2&4IG@'eҪhb%@YbG"{ʊJ Ds;׵[:Wd>/QTAfꁃ=Ml_I ˊ{gX>sA:~g%&aWlV:ط;:xyy8s3$YF0DODz>ͤi B@:"(ZZ[چ:|Ass B0* "b漘]>w'Ѹ@S2ShL$s[y `u+Çk|_ a9s9s?4B$şvƣ&~s$Ih "83c̘R}קDhmmEkkZ[DŠzBʑI&"Ȳ   ۝8rv!;+ >/+,YY~|сx4P$hԸppppp@Hj\E,f߆N|ZH(0EANn6rsr| ''~n1gRUF$k7`ˇ0cT,\8&N;͈B?-I0_Q[[,MӦbڴZrMNNd׋AlmȘ֒~f$.  o?!Ş=g>5 w1ֆF D^BcD)iA3Ar#Z(vb,9PX2/s*Eغesz74 a˯ ?ů!dNoj`tȕ D@N:PE1'à ]FG،cǏ8~x!n7Ɣb2.)Faar %a@QD0B0eQVV$w݈V ށV45㨫GccS"^{5vQPRRb u¹9 8ּ[@MMΚ;&M@aA>G<|>0ၲ,cx7lU]ژ^æ  `zp(wgA[[;9]`8x0@rAFZ޹qlIa{\c`&Nu,]7V|Q,tj`f|Z uwƝ! q@b&c^Mذ M_%8C{*S_mgJkL'vxPXuH$v=r6}7s @_U<R+@vvf OZ\Mو.mK\kN. . لBtp--سg/~g%;}+CMMLqc ??^N#I`b{9E_&:gZ X~#v؅1cJvr MJ\΄ =ul& L,;Œ0~|EQ5U4V.IM^<9O&//ɇ~} gr^f@-Fnn&T {mO0jB?z:|O-U se{(%"/vy~ϟ;CQʬnbu^Y0?U{͹x=т]t]|ßWX\cM"4w0Ƅu M P2 r|^|^.)i<{ zAȲ|ҩB\.p5|EDfP'y{oT\ڭw~50,?7n &O_w{;OG&kl͛K/Ʋ1MZfՖΛcs_וy׮=wֻ\[Amm5XA= uMGd$r)+tefx\ WUR˻X:JJ{_}Ew<˧x&{x e7IPXX|657n Mg 8Y}df+d\$qiX00 dE$_qc[oC=p$r!`˱s!IruY\R5!I:O"サ VAII1OΚqcv{P3?`e6W6oي 桲'_tLZiӦoaٕ}z0s4L6[ndzϽ\0}@Q5}abJ IDAToٴOcRsJJH36^F 9s>DU͸aVIv!a,RSQ>&z=x7z0dYFeEEe m|,'au-\|)?.=+0CԺC5h'ֶ~:u8z}o&NĔ)4i,_⭷߃_q*Ȳb ƍu73tt nZ̙={"F9ATUC,C @ B(B0D0B8F$E4C,fcTy&2 7>؂mw"??cQ;&TbtI1^/`cB@Q̞5, cǎ0\VIFTUE~~. xb=. ܽL.Yn$Zr9y\OjB JCPL7ƎhL COm1,v(2vm|]DM)^, H׬KH 823A>=`p5Wcg)hM-8r(C]}ZZZ  Ši:л"9NB$Du hhhĖ-[q0edLZȲrBpz'q⒋/@^^pNsfDII1|ظishgFf¼'iod߼||b W aܬf +@278A%$<éo?-\7Hk_߯z'Sm?yt:OWȼ{M޻w՝t!p]X; /ὕkB6NY utx=6l܌\`JTM(+'l|6T}t2Zf&Á. O'`*cTQ!_-عsE>}Xڌ`'@53"B007 6틴ϤJcX/$&"jBeo֭L&7\v *`f8,[z:^w N5ȬmJ\rɅvruVx\8f9bZKMw[ M3\5~4ME}}yVnbj֠|,~?yHk}'Ι/Z $ocB1cя\cDѴ}P!ı֎mfη,}2@!QҶ/(w~_h \êOsI}k<~&Li(/%W]?>,h*x_Fy8L8~Ėn [(}F/Z }*2x+U6v a9p8;vbp8Uɓ1}j-ƍl8]NJ`)ڧÖQYY%K@nn.z<_ zYhHwW# p-?N҅&tS6y7KXH\5~ea\g"˒`ab'"B!/+ #DdGbu19z kn@A~JKGWb1ͱ523~?LwuI4LZyg1)CV-zJ`q*mDţx8mgNpqGo yǸ+ 'MپPǚ.eOp5Uqy gO8}ho7Au$J{+W ]Ǎ+~p̺qv)˜s;C~4MC]}yVx؂7Yy,:k:#">r^}MÑyOi_Yv|eꭝnNL}Qvsxˇ[6$2 "ߑ x(=2Rgzo-s`aUI}u _ h:Nsǝ""qEԬi,ED(tM0`%f1f23^/_AGG^ҡB0^m̚5kjeJ_"BKK+^}MC!rB./K,^DܤʒJ+WC{ u2o_x2{8W3A ` 渁UN%ז{-?{mg'gٲ%[NWծV.sΙ r Hd 09uy$HATtOus~]]]8w"0{v+%sX^^.Sa Z /1XVvbժAMm=rsa2xuz~!e@>Na pHF|A/\h3|Nמt_4mg<=7(6j+o-}hB@z2 "-ɚT7/*!0l>p8N|~̄j}dk( NH|pnA~~^${8IGՊ5WGLj;AS!4$!ttSUMi! !'13v= nҒAU]MȖc|ᜣu y$HL&ܼug^-@Qwc "p·Db\ &3tNܟ 立φ> nFrRs0'T| %sf#//A%o`*(yHƆiXP63fLC띶ILk<@πHU5-# r0p /b/B%!̬s7|9IFuJPȝ۷va'1:t%sQTT0Og,7"//w$4˖sxÏ"9F'#Arޝ..ZZSHKKB,]"779yIҥr@DۀoiB3@N&_zP;tYOz 'R0)mSb c=:O1,Y6G:1;mpQ|WhIիqE(;5VYjVX:՚=DjZ ywzzz 4 ]i݃.!--EXPVҲ1=III0@!t"|a~yCB_wo!(o\?Qm`"^py iE $R%|J41, nل5o0\|.cm҄‰OBcX,#""(cczd7;m `,f3n7oƭ`&J愊*,ßHh>=MM-C$c9w.l֓HmD`Mx><,9v@I LUMз@:yx?BF,Kc㓃G1r:jkAes K^Xt1RRRqu*w {8ܸi:$'!?/硴lg"#~QB pų2'af֏1 P=6{f!BLi* ?w,]&%!WYL`}/+Dӧ --w ;BNQOO/RSSP^^69zz[{XƧ_}II=1?HXpMXh fGCS3][ׇdd, >Ir p\6gXE--sƍj!((%A4lĴiдxPЄzc[RV\͉a8IC|Џ30\_^W/_pggH<}Ҷ ^mӼ@:gCFۯ^vC4(V7Z!tAU0 f%#Zmw'i+F7'?2 9\.7>w_瑜dU'E1P_߀'τq3ŋ*pa&Qhp޼|󛿊C&6 {uz@7n۵6-W`((TpvZ2vEگ|yg&|R=]Ҍ?`)-+g>ڂlB"> Cs3 fSYQ^pbgl9n ˖-FMmN:ڻ1(ƍ[x 6VUڜq1Njrly8#3UUHOK, "55= e8u,.^~(270"I;ى .cNI1,^2ɤ)<H>_OdΤx!'HvN TEDSGp^ׅY҉0DTlۺ u2xpI̛[3xpq5\~sTU&!VX㺕&Y3b2|k"Ճ<6:H8[?lpmL`ժ~dyWOgfCNgj)H(Fۻ~*y1Vci;bY1p6UC~40_ MY=}4Gmw99Y0Mzƨ]\0΃•4rՍ7z]]6ľ/ --Gn\ϧm+Wǁyk?Czv|AAUMN HQ);5yIQ-j_aY1,1B6VNJKiaW I& ?a H/G뚟L8&ˈsukQ[׀W!w 9DY<ĝlpys!V`)ڱlbTtCwӰ|,(GKK+N9˗f y6Qqٳ99qw/I$FE]*D2*b"' -- KK+[Xa |A5. sƔ._.KY+J "Bvv&ٳ139GgW7>w_g?x~gD"̙ӱm&$''"Af ee`A)>\FCS}"q-33֮ƒŋى[յqZZ>eҽ}zq1tuucs{`Ai8DbO6;,o?Ƨ|~AzȋH _BD+!2w3hljF04lk3={e0N9w* vmC^^.TU(DŽKhEql`s W^ǵ700BI pf5zmxa3\k$*/ Rtf3~ v5](?c'[8C?r 񤆈0mZ|>?cmΈ!p]C^^NXx39n߮Ż{UMӰj | (g]D9L> ˖-FP8d?&;18\.ܸY` b+e@% E{W;HʀJ}__c_HEVe00PH E^w+ru&tttb0lHdBum9s[lFlƕp͈PLkVx[y$"*8(*,@a,[ u himfC0BQK]8pq YdeeDE% ~lv'SUa%<>x _loBYfs^?BLOIcXx!jjp Phap0 8|8-AALsvzG5k֭[ 2i_&D~RRRPV6sAUU%Q[[۷kҊ;@E9us!8 xH$D90`w1MD&*'au30[j ߎ׿Aɾ%[-ie?BPal!"$%%amohDkkEYCÝ8r8^`1HR0 ySBUU(,5iA)HM9ؾm zz{Q[[K N+c)*"AUU;~ & zE$X,J"p M{lL]Mߙx9=ThD zCaYͦbMo _a q<%3{4MR1MpêUcm8ohG`2Dk"^yy/2$[" zlN81 S~uN|o./A~? H\SAgEnjX| ֬YS'ςأIF1݁Cadffl%1ˍcNfyKB$$$`mHKK5LRB 1`5k&*׭AwwZZZ܂;mi8>94Mþ>FQQV\6ev$Sf:eJO؅??Cbj TMD{|9) fkf7_`g|Kh<{'Z[vC1Br5u8q4^~y/`l!Z\v#trq~,zrTTO͕@L f͚Yf`ժ;B}}#vvAUIQ7dJ9ۿx9٘=HYɤ1?~xH.0)[`ӿ;Mܗ, f915!ɾ!!"jk ]JXl &Aatw?@Ssˈ4!/~3̐c?EArr2P:.-]%b R/1É@0O.H 0s)L:E'q |`(?iz6G=%lR-Xuǫi圳kr'O1iԏMCWƛoWh}A5d鳸r: ,f3܎#ILmsdJMMeŞ=;ӋFܺu}7F?%Ř9sF <|]*$cÆuɖSBܜl`Ų;F}C#Zvl~p1Tfɣpr/\‹/<ks$qcFog`Bws͇?'> Q8 4!2&æMqu\~sV1V>s/\T5u8ulp,(Ų#EA GvvQV:^6j444MӠ(!ݍc 䩳ؼ r"+kz|&DƉL#oVKbD#pVXBrb§{?0S4QZ2>^D[]C:J*;v eX"j },A8CJHMKų{v"-Ie?C6Vd1!"l޸v45jգ'&4+q^;_gvDHhBR'"_ /?  ;=K"XSikvi*U[?#-)FbRbTV)I.^[շG]4 [6mysX֭jT$''!! EQ'U|zc YYU+`;Ԍ:466  3HXXz ذIQ$hT5;`w# `HǣMHHolZŽBR?=L4 "h?X6E_ƀuQWWko\M&n߮Sgk678gxi^MTX8 [6o|p??re=viHIMANv233EDFf:RSR !hĮaMTE&)Xl1/nǽNk@cS3mG@?AU1v޽v4bQE9"`b>WpLlfxwҟɦ1JNj??½>\LYx|c `)'Dƕ6ŗMYغe#iU I !(//EA,4ml""p MaСBPBmۺ99?ι"?`GsF&Lf$'%"%5iii@ł2\Æ }6C?gddPff&+?. ]hll[L1؅湎m4vÃx?QY RԨM8]^~#3):P5 :{, f3Sh۟s1gYi)}N?a>ck%`Ѣ T[ 2.y^EB/߶8r`h>^(/Ǫ˟1r?ǀχ>[?[} ˂FcD) GFF:221\l\NܸUkWo(SPI.))roI$@/zp{},s&@Ӆ>lI@BBBdd69Ox| DFQJ$X,س{p֐@\x 碲r8){ 4lH8!;+۷mZ ( {zqul\%'jb9(-م6p oנ>&";c iiO.L,n}vO"yD !K$ ))3sgľ jc$qA4deebgS7". ǎDIL7&GsW򕫣Nz8Xl JK>{:W^ǪU+`MH+Q@4!`2)?%%C]}#kP[Wp{dp볡 H$r{gG tTǘ^!" |>?</7.7N.3'%%O71-hTUŢڰ.b@G19p1sߏOE"@nn6m܀ĉUIᜣ--MU@D5^7xQV6 @QJ$F]L7AS5~x^__2\I~ |e1-sڹ ų C0ѣ'z_Q렪b*$ p[*zb5%%x]o*~W%UUr@2Lb0ݽvt')rZYR d,^NMϿsfCZKHL> > 醍9眣oQW1;8z|>߰Cɹ*-[cꫪ]GT$E #3#֯{7CaYV+Ġ.ȀJ$}6'zP$g@X=MUՠ4[_$۷ҬY3(J|kJ&,^+p ݹ1ܹL&y6N:-Ϗږ1?@'O{aZߧ>mHmcщ7naƌ?ֹ>MFFkëK.Ƽy%z?E55CxN  g +6_pLlfx1=6 kci;~eW@?FB@4 jRԅfU*fJdeeBӴa%2)m""$%%a*7N]#,;\5!p1̝;";#Ukٹ Gկ,_뫢c:W q5kXfH6i}*V+֭]MeʼnSgoKuiQÃ?cs]Y>qRU 8#XڎG)\`RhBAAUӴ mx#ܼY0i/!PTT];l3wS#0Ơ8GVkCDƪJ$&&O -~S=H ?s K_,f.될;GIbChfLn&K25D 燪jc ~׮}ƛofɁ/ DJZ ҡaA4=wkF(8"\El6aU7w!ΝPOf3V\o|$؏'1\x Ξ8A&'TUx}>xXX[sχ_ov˛@2E/=3Cc:41l6 la9:AyEPTXM#bB& --wpY"BQQ~_ŊKCq4#99 &a?.\oMĀIVӈ yxxT(hjjS7 Qɀd"4 3gm[h5$1EQPSS'Oy0l<~4k1`2)زu#M˃f0%$EQp wtBQ&2QU ^EyyY\fdɥ$&>tItOǃ =p=FR<^/N>LJ`;d d`aXΌ {Q1V;qkV4*>7nVdY̚M[]Ʀ1 !`;07(!.MǦM2줅s˅g/rM(زe#Rb6Ua_kJCI'>M{X (<|[2LZА#P<!0 !elc AUի7qvmTŞٳ99YCǓ䗴ɸ6 A ;wn?Kml6(-G7g[8s>!V1ЖMYEyi8A:G:WAwttaCϧT6$ dӺuZ\pyHYM\'"bȉc2FiomNcCgm<^'):e@fTU'{/8q,۔D6VǂG %`G{0p\a" BA,߰^bńko˱6G2 DԔT[Vհ;5DQ:.,6G2Є@߀C9߼Ղoⵟ kdIB --{ihnn'P[W?jތ5!`u9qofIl PY|̚5p :Y(-c_h@_}NK@z> p8s<ž>lB! ;6o+ڤG`AUU?q‡ V{s>lPHOOCRNUUEϕ򒨢 pB$S9xIlopt$aǶͨKχ^xwňD+v؆rXXKCIB=e4M 5%6m0|$4>݆$@>=n~x'?{(E$'%;;;wlEvva=1ʿXb/[I 6E299HNN6 QXr9 BHAw pG? ! Cncc܊|RdEbP߱4ֶ&cCyY>>dؽk;fE{K ;,Dv2|'XDB 11Ip=}& 4sssj=8gh WH1q~Gy13?QxVJ?C4ώdF+:" !eԒS=Y};oAY MOVd~Vlݲ kꨩL&\)izIQ^12C]w IDATo{×9]ܰ"5Mf#(&YESDc2Fik~c=}vA]26:EI@ʀЩ `sǃs.߃R1D269s^|Y(ܘ AJF3g66oWGB82|T34DBD36VJOɸ=>tt D~'|c#,9nǛo dndLU+cӦ b|F"BjJ oۂX3np}G?~_1ܐo{v7fΜ7$> " 8=eCPHS pa6wuucDɜb0JDbwmGssn>c@EE/0@>9 K;oEbqPMcpp8Qcf,]H ɸ"Ã4M3@b,bt΁‘''> EQ*yb4MӰm&é GZZ*6VGFzz\0"E:@@9ZZb#CD4 K.Ʈ]a2&A}.;rAQ Q߽׎~?B]}C\J+/Œ% AZ mXatÏ>0$$zAܼUXGAk9ųW_ARR+=}P5!>%O  @ /7nΝ!}wAD4<.ݻ lj<ͦI⭷ށ/EJr"D646fsl^oD"Bql|˟GAI=%c CHY`=α'm( n7>w (GJr2=9Q6MDҦWEEعc ~סiҡ'"(ݻ#''$m1^c( >0</n7fL8&~?={SDD5k~S/bnI16146ױȇcbS4Nt1ApyԦXs9He( `Ųظi=JyOG"#q%MsS|k_eNظ=>O/%qB&N&\TmM0}4ëHb Æuhhh¥KWAD1s2Ӧc*$''MymjVU D}C#މ%+l]xS5(ĭk "pPQ~EGq pe&Dۋ>;AUqG )T;`;N> EQbmĐӰuFd%9C(.. XX?x7 R)W77ο`*׭ƗY̙3?"cKBڌI`wx{H90 Mx'o~p|HeAY)WYj5s&6m '˅C9?|==0@+7F |YV޵/aiQ~hvC;\A9Lj~lv'zlvUUHwsl,mGsN.'NFMmm݄m[7!11=M4Mck׬5"l1}RPss ࡣlǶ-Xx!2a2)$h1M8ؾ}n4m±t (..ix+Bn>Ɣ ܽA+|*ӧijzmppJ?\`S^T&zp]]ʵذ~-f͚)$`0b˖*4 D\lۺ fY?!sBkǯcNl,_V`ƌiV{#8|8#@ff6_gDzzZrcphniE08t!=( a2X}A}؝ yfK$T;X8?nwLJP[[JlXIIVqcE%͛Ќں&VE^%Q;SMP[WV:}U`Ѣ .Djj*SL&\rGG}C# saXd&,&ΝouIQz흘=9 F#jοdB8D@!Ԍk좢)Z8!"b۶Mh`ƌ\Vu9>WUmmwމgΡK,eK94U\Ј?r Aiعc 6T"'' 1'N!c 6.\Yf3&eA@@EW\oMLA _ NEuu nۄ͛6 ##΁ddgX|)q8-Dł0P: B6u\r JtBAvV&L&[9xhljƩgq5ݞRRR8/1 )1T`s{PTT!h®m(ǃk8Rj'NxvaQzR<߿CN9G~=ܼY={vba$&U٩!1ъ6 M-DhEʱnj% q;w9Y3e `Ldgg#%% yȩ5CXhAUAOO/jp 45 9&SUs!""0(+brX,s،?:KdyXlxB /*Wۋ>; FHL"BMM:;Pv56lXMA4M`س{M?GFKމT{2Ap{z݃K"== 99c: fa|deg"-5:D Hǒ1YB@4x< q^EkkkG_ sx_ 23P:.֭["-oXvz/_sWοc wǯىիW"55%r%`u_$V:qm4U:Jkys6TE҃SK7l~Xj.^gAW?~caETU3ĹAWu=TIڎ1}_4٨HH )) iih|dg#33iiiHJJ^XDh%\S4+|:uzNXbPU>v6[?I]=ŀχ`P@`uP:ƀd",[ (%%%rMw>ݿNp Immwqv-jkco9GgW7~j\ CVf&fq١ P1dONzmvUM&ޱ6R R kŧpmCҭmx7puK(*,4hxfxKD0³hFlMô|ٽq\>qCX,f2̚`W84M  BTRU AG#ZI|lhiCulFrr,LgiiHK $%&jMb:Wݱ/gi#UUT~x^x<^nr֏~8Nx<\nJD9~pyB0Պys zpRu&8WaN5vlC Aj0\.Ng(wE3˥OMbSCcUÅq dff`T\<"#= iiHINb8g UĠN{IaB_t)ڦȌ]LF \z --ضu36_\4EB`̙x]o>ֳu# gMm}?c4,(/ܒ96-Mc A4 ;COO/lp:n5r`';φֻ  APL &S8^ p}D4 A8 >Gd0 )) ӧ|A)-^مHLLD0 _c ^鷓yB45ʥOƣ1b~N8w"X,HH0d2#!kf92¡wTUCɜxaq4ۀVr0`d2p7mKM` Xl jjjqEw-ˡp>i_hBXv*ٻ/G^HZHHq)R"%Җu̙33s<d_ssmdٖ{e[ %.fKu( $% յP |?ئ_$̈_|LOO" fxxx[TtRtxvwBH&Ses(JT? ;>60s~zmՁB5㦃݉mNB`5iR ]|L&[WK7z>4Z(8߇ڼJEG\o_l4-ēih|M7r ڄյҒsvw{|k_E08$)%曯"Su>zzzk_Xv_ ~[w}uN2Et3 ϣ\.#!iEnXVoߵ3|L8Ԟu^]bww~01>`p<1:2^ڴsHM~{ˑqC'IZ&h~g%nH$ݗ\6#DQ~.ÿqy-/#k'>޲,)D57&&ge(KP("NCMJiHkih4t|^JeeK%Ӭ/ΕeG(a[Ozeu) O@]]DWg'zz1<4(148abhp==석ȞS.lI1K%屇{c:)S(jZ(7:%c= =HGeuSDITVul @:_9Nv!_ eatdDK^(z🸈ڔŝ +YTDX@PBP@P@._@.\^K%2^Mi,i@BZՓhVOw4B(J5ӏeջ tDGG::NBOWՔ=Aww#jEt\d-&4r̘zc]ieѪ{:W(UwuȘIi@OڌWMw}p-NyחKQ|嵗qn޼}Fog|uLL{lZ+#ڧ_%144ё쿻:;;ف~#6^]r˲`& Ài)DV=gRAE)IeN􊁡A4z2_루up@!P(kwW_2Ήcc;_C8ARMGx⋟ʥe\:fR;GuEm:}'A];'X&I,)ӃAM&!8!q@_b>/ko❷g{gW^}5O#xahhScA>Q?2:=GFI]/B0 Q0!Lhkt";#뷰^}o*xn)=Nj7|CuP0r١i;DSLN0M tI-?yԐ=@2ͯytwwj4=˲022cQÁ`&T- -S`xPpMηB=e"ϓ{mTn'F8po2˘1BF&Ww1ڢO=@O<QYQRz31)"J2~_o_~ CZ'|!yrS9']Z[S{Ս1S[[!&0MP,N|Lh4G#j@@ l6|k(JxYQk(+R˜C-kL|>LS[ M|affOsljc~~PB"AX]A"83S)TJOX[{6^EDD1 "4MΈs5\!Emmg??{蔈 #UQT't쎾eI|Uo⭷W^{ÞMڃeIyēiWԲ8B iGx` o~ϣ; XT:cZhirluKL՝-ܸy;ߐxkXXBǞyzS;Ս1S[S;1 !`ID*T:_AՊmuS}@Pz3bJ3q-/7zS;Ս1S[S;1YD4!W;թ-VtL>'TJtnD P's|n߁P^DDtquXZ&W}ᘈ. Ѕ|Rװ_~ _}5LNNOZ\\A"A._|j;#Pƃ˹ IDAT>Ytr""j! 2⪆B)Tv8 !`Y޻P7o};NHDD-DRp?X[oW_2FF!Ȧ 0> B!Oo}>r; QQESӵοd|@"j{O?^֛cffj@$!_,Ct,mirlmP$~?͛ヘ^}`P'7˘19[o;$j|EοxceLʘi@қ=&!r{gW^o~XX"_9O^;n19[/crv~KPBLժSBO泙1^tLmS%{W^{/ELNDDz" }N+'eH$ |5ɽZP:[@,FWo:G !]7p]+/| 0 .&"<)ežDOj9b*\.Oo~_~E8%ȋLBR"eaYC48Z)D"+ɟ9[aP""1 dT7r΀O !aY>*B^y%ʗ199˲N +:4d-?<=Ӕf˘ Q{Ou.[x/J!p&b^mWbj1vjcjXRYG$:߱V/c:P}@Pz3-czc躁{`}}S޾}Wۘq ƘکnƘکgq&b^lk˘19[c膌iW;vj1Ii@OPPr׮Çx+wtDDT D) jG}.D`LR"Ov&{m|CwwWq55V*W%Q,6"bj' jE`kk'TJDgSJ%^ʫad:-ވF:[%JIDm1O4eDm0pm躎:~wY $y=X*#P,?pB#_a&|>=\H\CTaO"c,6^ ) ~X{"{m J0}൶굘کnUڪ( 2< Miј}eLʘi@қcpoxzU/cr^lNĔ&u"a"r{wߤEuoC"Z$rEQ @(>>vqeI4T;D'D.$ v76/otDf0He]xLn19[/crIRh"B,đ<^ti@^(ʊ1VL|0,x"4V ˒'xɛ2&g=(K&4J) <ϓeL$4'TJDnTsֲy\_|tZ-y":'B %E}9Dk&B4./aui^ty2&geL{ܲ,$R$,쬿NzS;c%"cpEq:b*8:;8 aZt83QDt$L]DI\`?EaGȥh|mP9DDt,ӠַLepia eq@6劎;Z&k@8BQv.\\%ODG":#aIP4H~ۡ(Q}JDtzv&L#<ip@DXRJ)p@DJ6 w2XY$:; 9 zja"@'5dlᘊgV09>R]{Ł1LQUC6WNe矈DTBTt[(Y]9tviiPTEP? Ӏ6x4eg9Y2&tRp['~H?S]$+8DJ@Kh0M {l6w\CrQK.k""q\KX^`p @R"!4-ZOʕ BaDj5N!j*Ӕf˘IeMxc(ʸh<98?_M֚[/c^4ZnM,^dLv'P*a+xUyjk꽸}ئ}B\bjT/_mkAMez^DI{q/\^0)D禢%4d%Cq--Ńm QKSX(+yws; Z˄Fm/=˱ͨRѱ"OHγ{qOYZpJZH8HBdO<>pKJ2yT ud&P,W #L9Q۳;&劎$xf;ՙT -(W*xl8.DDxLz ;a|3O(.@4Mēi23sTPmds9(q:"rDD(B@ĒܧXY4{d&"q \R)b+l.EQ 2n@4,&9-MAT Dl=. #W(Ӏ6x4eg9Y2&tR` I,D),"|e ²cΓο[" B֧WE$6vCT7Aџ= zӁ2ezf*+Z15qИtÐB"H♕,gp,&7j1eIDϥ^7iֶveY~Wi@9+=R"":@Q%\q{Y bzb>r'y[PB8nr4'aO"cToG{hLEƒ}lH<]7a !O4M!jE~yl=4!EATx-<ڃanI 3yD) c0M [0B8 Nซi.> !ݺ"mve!jHi9cV04LA#JHe`V='U":ֶwWE""oc*26!`ayS:IqQ4L;U Ϯ.`in ]NG ؟_\MCղqB!$SiN"4Bk%4Q~>q)0jY$R?F&VhLzq,6^ݘN*B2MwM05eu:&{htI<`_{\TLYb;a @jֳ)-.r`>5|<^tpzf.[Z158[J\6wb|rݶ;kmm(ʸVDpn >E9,ǶoT&rY>U4eBh,onX.CNw9 ׄ=zwѸy=g&%W?)5?ٝAN5qPEױIT2 LR"&Pj$5p@B)%7BK_\  q Ǡxve S@Ke)J:OcW4b'>ZQ[ĘIk\D) >z[( 4t|:7:@iYEcڋRAԢك0 !Icv~ ꆔ!5E, ᘊT:^X?@&[@\M!LN8HeqPJ8 ja6ocģ,\4VlR;U<e |RZфhV4 ^;MYmVɻ1TVQ>-'$%45!o5L/`az-TuW[)&!'㙕 GPV2mzM#HGr[rR [0`t>wL૭u>;7\mp{ IDATӀ2 hPz3cj 41)>, ȤR]X,Umuo汊";{Q X]G_YbjoZZI- ኘ]+@Pnti>lϱyNz2 \D9'>ϙڌMv'd?'`Zjl1'@._9!jEGQB@B0t"{В W1Nv4$$"$ZI|zarpCR{$r"Gka6l;Vw9"j3znzJDt/ŕp4vg? :oc7 ^: '2 I%|LyjJNou~;@t w7>EFKRB0W|> >~z {L{T*U&/4b}{r ;DmOtl!Na.ytvuqzvbHiYg'ϓS*!-@GJeXAX9"q@DO퍇Hk)/^:;a 3X NNMXґHjK0)d:]K%'k);˱ͪ1y7=mf`A:D!b~qãc{c[-&>L6'"'F)RJy ۪(rX rn<ͬ(鹪g*n}!߾LZ !(|^__X"Uͩp\RLx ?U !P1j?a矈nQB@TTREp&gg l4N e4? ztTiէ#r;=7鐈ȃJQKIˤquT;0N~@&W{G7uQSt}w_zD(U* !WaYqx9.Y1 .R8\^AgW$`Z⪆}p]]@_o}Ӳ&3Hjz<R 7ζ_RJ|~x'e-0 hNSvcU/cnL' }cPmƣXZ}#;[H ,>O,p&Qϭ."8;Tv!JX0+$TlPuTHNG\eyD£|p)5م%/,]u:eW5{S,gE ӉFPB4Bb,Kb/n[..遉.D:⃡ZM#i::9p_ !e8$z{~6\1Us膁XHm:B( :MtQ8 "WӒI"9\p#-1!9\p,+;vZP:G,a]nWa!5vO`~z]NDV8 "ͨJ{ۛ0 $D(Jcuiӵo#V'a!J²d/wfji|>C"j;k);˱ͪ1y7DJ)equDvrpxtj 颎Br<^ Ϯ."83!}> ZχQqTí]$4 ʣtS079:pz;]VGc>^(˖1VLZiW &%f[@ocJV7ԬzS,>䶌T19> ÐEXLg91\ 6wCHfN@tvt`nzSh:~""Rmo0 4' !{Xַpgm?U l;He',Ncjl5DIBTѤS* RW104tht;6jeItvp)8Ӏ 8 "B@J0 w%[Zlp]@ /vQSlm\ѫSU[7\/݅y O%8 "O߁* 0V`tl 3 Xnj ci~}=D2UJ#bv~ hriEbz{'rmirleLލ2i@Lz,אT .bznNHz{c_r!`I)w"0j|oo/Rb|dKs3 "b:cV/c:P4LZ/LeŘZ+FLzc!DFK! E_,Zۊ߾4{tI0-KnE(ԩjSE3yuuꦘکN$O)@DԲiYC+]XDWwQ+++ !Lwnu>3L( o\S8 | A22'S2J Ns!8Eaן8 !x L)uzzBy<!_keRJ|>,`rt"j;Jm'ݭ h)˘ @r*z Bdym ;΅R"cqnSc_D%!Mks.]~C#NFbOjioP*=ԲZtwuay~#C!"EH- gNԐ$Ba2"{PۋŹ _oND4x4eg9Y2&tR>M;:-{we*lpS:`UsF_xL^~˾7>'H@$b{/,+nX9ǥY8ϓeLʸJoeLSz오D2G.b3$Z<5D8v(, |I/VrdpP,ϡ;{:uSLVc8R"r!)ecz *2viI,,bz.S2!4͖;R~/ ŝG"e2KP;Ttll4Mi:)%|q.tHDtS$f:=JEjiJmD,l&.,肕+l섐HiE<w&0?5OiJbvaSϾP,bcwjJʤ}$EL?D-"&-0v6ױJ(noJM ICŰzC,N jEB ElB˴)Lqw_4 ^;MYmVɻ1TVxH !݃ϽYlݗhi\XLn1b:BۛGøtYL)ku\hLn~˾7{.5O3XٕBq&s-mϒRvwubincɍk2eL4BTVbjT/_&|s_mloh4,B9j'==]]e[:uSLVcӀP)yeY]\F07ETr:f/G#fҘ2 PSwC(-?ƾN{{87A^?ڃC.~D<'7ʥv6"R\^|>?R"PARiPf1?Qk%I)1>=qlag!*ؔ :?VHk)*b"H˲ư0H XΡለ"  jխ}Q+e Zy3 YdS4 T\":+ !`CAK#XΡ#eY-nUiYEO_F{\GZKEG)BR݆T1щ ;-(؍İAH( &FG0;eAmz_ms4 ^;MYmVɻ1T&4? E !g :¡Tzn[4D,l&-'f0\;>z-4v'X*a+F"ƋrO㘝@G7کTK?^?cOgO 6^ 7SY1֊QxibBm_V{\d"^=^;n\*ݭu(.=f,B~ypyPX.c};d:}^=GKr~zJLç.ͧSiکN$LuO-!p*9* 6015 7vb>R>yBO>|7>5";X\(oy\`widqå<&F= j+RJHB)kMH)al<\.hNj7!03"zz1k2 acg|CՉ4&GGZDH)e TzmU0<2>ģڀTQh"{pU,>K?gNjil -7}tcaf#C{jclMLt ~"Q}@3A c{} [0 4Cuم8r &g\^Ec3lX2Jr[t%ۃ,I}C,+27?E.UwJh'==g1>5]]$`(!@\:V1_!as7 4Rb'JԶji Oq98lG5-K_Qd hqe!cOpg#3ܪn420Iʉ[k+omxA>{]YZ'YlS%Qr ^%K, (HT )i83ΡyTU&34:O[woݺu XEby RњAp^ȶKԻv+%{B3ry0;#-. Jr\v=ٮdR(1>5Ó3=ƺbہ<DMӐHm!rS]Q_0f&\vY4Hu= N&{]w動GM͉;gSQUE\|POėroƲ^z_tY8Y%Cany&cX[:|.<^]ՆFNjWΝ\&c7`tb5ZWt0h:V6Hg0L~.L"Տ 08f|x~^1 ( T{x{vYQreABBpܘ"?yŊVJ וi(xчOATh "8V{-1=1)xܮNS(LA~՚e Ux\ 7Uh; kljnA4>e`5V'ഩX[2 x8mTpnu B bzb cĀžυetL*? d;"qu׽?~ؐĵ&3#qAl'4>"kƪV'f0;ñ;@\ r0`f| c#N(wX4FSPe>nWKUyP)7_GpuMn3sG1Aby*4MN@`\1367Q)165#sr"V(U*s(0M$F#yh03L3s7WjOkYh$'ʿ3yp Uľ[ci(i#ejU;VGG/Z `fxnE$D_slHo}CTtڨw> 0M0!L-o'ũ~ r6M\np##q^:{r-hZ|#Ӝ)JKH\ }Q x=_󦦟e9s~V~>Oj@:8"$VJ$ 6iR}[M̟8PxbWku'Nt)br41(=t$$l(#O-rm6|.UA&>w㳟Dg+eġx1wVt;ww @j#r#?1"B\zbtULOc|dD {Go.ewl$' +ƿF4o2 ]M~dۥWr]NCCJ]H4Ɓ`(l/[mR gF.晹ᄝuBT`au r{*c\)cQ^ !4 z{Laʗ 8/kl 0a*&o>Oឯ%wɶE  %9u^]֫uuݘC49$VǹڿuZ9٢v 揟o}%"Ke]YEZw^9gOʘ^3SGYVY"BSӰPd'v˽fusv,v4>/TVf;sk?GQV/Q÷k#6r DADB`|jgN=B.ך'V7-hYdқ8r'x;\c9zi%;Gg gU,#љNӑ*ęɑE}*W`"AhaQ"wv/@n, 03M FnpcwHTeyqap(c3ArV=Jb0MKOWEFfAW(p<.^|/H*!W$$$ ia Dcq.cs} TԚ^3{fRuL,C<$̌d:d 6>14~o߯r\N+K8@rɶ lzCnU| Oh%R"q|;\ށt$$$ "#:♧Q*v6iZ3O#s]`f$6SXKn0SEptf~w`g|skgq%d6J v^p* ䷋%P3CUtKi"Db3d_ ̜}Q߿+lHl?.4?wy+eҩ+BwFN2DՀpd7©'P*>ld@9`F^n1'( *e,X.3 G&Bءmwce}L6e3b.sd7GaG:Gu*Rk1$$$zBMLyGOҨh9<ȏOv>gr^\ATNdűYGZI DZU$ә/1X`fh#W^Y2ľ/("Vx.}ya'\y ׃c'oFtڄn,iW4L1NN_f c)ZٚW[q BA콕?ADjX\I _dKUN _/V7 OG~,~|" > gWSv镜zneN@ԍzKB!arjgF>QNNhԱpc5G"yA~n"B<ʬ@&糳^Q|ݵW0v3kshbX>Y;'Y'@r!~_=;aG-zeP'Իҋ}|@À^lll!,W+e𔲯,V:6RV.-hc#QMOr4;^ět6:9}|/C9N3W?dž8: : whD8x_?{ *!!`ӄű7!:2ҩ 됰4 f+H 3p\cT&;`fy8pV3B/aEX:>\_t$$$!#BltgFTlś8` H*(&FW@vD6Rii0LԂ>5x{:WLث8NOapakc $V;I`  cq,/4 \#S I+ƿ)c" }[oh IUUZexOVʝ@:֖ft9@F+2~ۅ3Er߁X\M -_> |5QJKwV׍Go?dH@BBbaEM  XEbe J VJiH\@|xx`P7L"Ygf,X ;h%0tBsSC1rrloPTE _WԿbfvDd=\]_'8aP!ՔG]z%[َiu짺5h8:¡FFǰt4JM?S۟[w1# BSNٺ@(W*XX]CNNN{wc;uvpbL޹ ߉ &0@K{HmnvNȶKԻv+ .!!P*pǑJQ "vNݨ08a 7b(Abutu]mi2ǃqģ冷m둵XM%7:io}taHGÁכ'4]Y[uqYP~Bwvݏl[m]a@%䴗^ !:TcN@յ8=?260봺rq!nkCihv23^L! a϶ Azˉud 0lEs1ozuS`f0cSg^O_2@'r䑇zN1KbIt{6 B[(W@\a>̬]Cc7r{ku$$g "Ш:\Z9 !W 6_/Kg%!'}H4Ll-\h#ݰW169PɵU'VQ-nu/!@?EPʕ4p^ ;ceTf ͯ&SOA|4]?}o:~Abag~{t),~3| O-~& imhvs0槧:Mc \Kk(W#!U,mXN·TEQRx\*^7>q׾*H\#󳠭; Gxl%eMz,я !ku<ȏSеk;$cq<[0N@`n414|^O)u Dl Tk53910h09?_xOZVRUEQ* n^"!?;{*H\avѱ1<煷!Ele~M7g>΅{'7 ũF6]gF0a:[id)( ?E4J 0:> Js̘3`z| Gg(@y"aHqnem_I; # }:$>'4OE8AyA/UUsy%se x |^/j Älz <(WZ?o7S[7aY3Kr %$޵prz'M05;Cף:%nNI>'LD1$0w߲;/$'Ec8Q_]YuHma##y]7>a@"8_ ? ku- rj>¬=|K@ډ9{\JE,/ ^|qu] XG ENe#W`+Da]ytGYd%++ͨ^-'"琰R\`"nY) !Qhaqjg]Č9͉vpdj&#P.ڎϠ:66)anz& @pU;qxMxGȐU?ADqad(;o wݾv7N5m޾tR.!O>/uVdk.ѱj"y#3v/{蕜FA8;h,E=^}=N&'ۃH$H4]ӨR.BSv] K#3ⱿڭrD0pne LZ[c;i2,[[ǧo5(ky2-LW@'>}ֽ߸Dn_}JZe,R+ԩidWDd6[lzaK p[n+9ރt&U%Sh AU]-ZS͉1:1I@jfG;.O sF]qz5lrw3)Bй; bL@ a"(30(6ݏtW6πu "(P ݄i5j8!Lt&K/R,Vka"Rw>kKNi/,#rsY( EQz {3pQ*tMk+6up0[s={J+WP.t5e88Y p(Bmmtz""B~ aU/ʇ{N<~eO0n0  A`0~ rRCUGFb?!"Voru.9.Bz|6zC^tmpֆ=ˉnña4M45ٺ7ɩuE细˜B8hmgWTJ%,mP*w -Ț&qR_[kTjf"AABPUPDž/|Gr`6ݏtJ6V `ځ+.~@l6bp]?W/'R[#reJQz++9uv;;>i( euCP\K"u[:'"?B46ǃZJZ*;(N+: fF42Gf]کzAD],jjy8]t/kl.Ϛ~/OddM(HU\j+g?!|cicQ~d쥸`kXZ8}3s022Mס*Nk5 IDAT fq>o2UQy\-=j 8\?@Ӛg3(l1Cǡr!2CtdnR*{"Px,GfxZ< .`aezÌ;tGFS1MdwB|:P_?{«~yzrUU׿[Q(QQa&t`00i7<&Fc>'0fI tON땜F/VUt]?tNlgPU]nLbf0s'pBLby,JQW=Eh8zN EQxl$FG&'r'ڥ0M3Y^YO뗬R7 3|dj. zj/KkNӖ!AP(.B~/nGwlnԟyU4Mo"Z=xڏ A7V&Kgt[B1yǪj @n^_,AJN]Xf= ia;(PUp? `86(hkЛMk  (f&ȥWKmtz,#&4]otʲtͲl,EC\]&~K "V/!|#{KTi^؁v R ŷ\^$V πt@xs33 #@x9Uޭ^rvhfQT y_E$Ch(]P-aCpvr=ՍMЭ_W/k.'z\|)I [:秅 {Y|>||uGGV:!NsOTnIn)"CjlFG(ʳjuzgG*HrjN; "J\&Mn <^B׃$?H|.r4;UW`fILaOT8D0F*nmuY\[9ɑ_]7M/PG|[葇~t9 z#+Ô-H`z thy=86;XZ8Fk lfWF@izCo79;ˉ*2M4 ^=y_㡑0j*4;p:@3ӈEI%DZKud>w[]GV:{pʒ~}bfڟ+̧RU.{]y>{&amb ˋg1R1>1z!ZNp&:A(@T7Vfe(~n{z25U&H ΄ZY< $XJ5 NSjv8w R UUU|_{4;8FHtc — F&sl;%"k柬n>wl=jn$À^kYRA.oolBU";J aћB4}T|wfjajm\9a(vҦt0zu E۫&ʥ"eIh0UU[`ۿ8 !r琰}}[: WYcAo^FPS>Y[.{ U?(U3-vbåZC~o%w]980uu麆~ Ȥ7qmax8Bi0 qkﬣ!2S _vO^/9l6CD^w$9uVo/8麎\f lQ[#O}MH4F(Fzv8H Gg]LAeflX\Mh^t.Fn<L`%!*x<*b 7_iez6Yݏt:,{ٲ|.2uZndl<7dUz bÔd'MB켾 ɩz{pr[[h6pxtz;6bxd`^Ƶe*03`nf n CPz,Vhhd0dpl%#/ oʟeQkNBB|![Zhz=NO/b<}Y @$N{E "s|lr.{ȯۿW9 ! @QUkhMuow|P@8u[i"`u# MZ]GV:r|8HFfa}m<@:v8ģx[߄`@d]w?z7װ[n:<4ͦfπZ,n)FۅbV?i?<6$S .cE lU``f4 [T*`e -T д&U+`6ڨx@pR/nhk(aL!rva˚̈14aVygZ_ u)ƿ !^_ś^H'7Zw|e5mbkixEF+UA03L6عae&X&3"/~lnLtVz`fTJ%6֡5p\~@v&iaT%h恆Z vplvVv߃+ "45 kXOa`@8TU~(y~f28?|OUPU*jJ ѥ 0m;/_h, @VtMf2 `'d{Mc#bVEQZ! aG€^K3lbznp\9n !P,t[ %\}PǸzN/] \'}wjdҩ CdۍdvmkΦZ.bbjhuȭ0 {ћP*&?n6'LV67cF;0niSr:2NVE>A^s*vFND~{NjtMf y-@Nw #Ñj Pձ@&Uz59榧>x7O±aQE!UCA?=#x۝Gr=qYQβNȶEtAoP2忏zJFl=Ȗ`lLm ~0 1ٜb&؍P l7` 2 iR0׺ڍv !vT,@״+ƚߋA?`8e:s5,%cw2Fb*s:\{}- QaUSX|YЩV\Kcl8ƉY~}v:hRgWVQ,Wv8Öԫ?nN~B <5;ҷLf~fjCYd{M~daѫi6xzg?tÀP …Z@Dz-/@6`8ZW}|ԁuJGV:=p TUq a=ক8dMr@Jx?ipRB\0tvPi/,wry?岖:e;D\`86k5͙n@A(L\P>(OD`fX\Kh8ٱ;Ʃz/Wp]BNePwַ醳DB|ڿ+$HQ.+}7~z7N{Mf@eۢwiJ&Vp7Yz64ݰtSŠj7%UQ {+? 0 q嶱F|.j?H^cSz1C5 v=/v,0rq~W~a0M+uYsV:2AD+ .UЃ&U1EQZz۞$%۱5 <됰?!a !plR.O"F r3VjV66[ݲz2fFl8BS]i?ףZH$ƆyY_[E$GGxNlݏt:,[=GP*q3R'*b.?IR4?w硅窪"v/mrKt.-s F\v R`|>e˾vz]n7"#hU+`f?~ϸD!ЎCB58@6_`ze <>a2ʵts99{"z0œO<t!^ӻYtXczs,-o~Pz+ 6 @B^*$;L4ӹ|~~3M3+ a02JeDj3ʅ6dT'}d`STtq?z U]Jz=BكՉ8N¥tPעdֽ.c7Mb#%0P j?bvdfxF|S: kz#+v޵<떛kML,:Yc  jbc! ~k~v\k4Fj(]2`+*inX؆*z}hA幓}m$P$2x,qŇB5*WjS/3CULbvrr;̚6so gw6GۥZ<}bvrHw?msR,ex?ny3pɓ0 F(Ԛqsrbtxa0G= 3{$KcÀ^+j jU=m 88=^BA :MPAdmGn@Z `fbcPUe 7f@QĽ~?PL{f뽬8PYq&;ߌNWAAa@{V8O#_(lh^o0LVtfi<;51q'=oKtYS4}r82 548^eU4Pu[zXoRtj?z{XZ8tL.-W|c.U+#0\]4#'GqRқI ^ч©_: 0Jc9caݏ~>::3pp:vb|¶ Vb/{?){Ѩ;_}盃dGGV:zI$ !0tY"x}~!a@@S(La= a~f.߇0d/iRt(^0В8~^A( .>(f ,g?w?l]_[A2ёvmh4"B$5 {fddjR}Bs=zPZ/KtFZ W+fQU@ݜEsI;?{'U݋ϭyzzzrؠU"H010!dx6&0$#BjܕQU=vSvӷ;u"e٘3[\x h!6]nah 3iW1̌۫J:  IDAT.Vºt7ge[J>ϲzݤi2MFe?FV`ۊWS`pp{`8 Z&aW`ٶ9/o}޳:|trzm9}/V@-ֿqr9,΃1"8$iNpeD˶q3|5[o=س'1;H(lӟsZ&!`DsP~\5 ~y[~vBi?| 7|ླྀ{OJ6m5NۼMFe2ߊ!u mT,y}YB4m;Dn&ZENYI_|3~ۣfPl8$N4bgޛ͵4?KlAC &mmv/d\I u=\x S`b !]QsZ&!Wd ߞ/U+VПb_a3YXU~dΠJ6m7Nn`lGX؏z18#HlDx]JIHjOPkGO w"Aʥ"2K0Mp5[U[ZH:*?86=Sm`_ #CTkc3Fƣ;W&ed_cPe #|\ANݲ|pd\7- / ۶!;}=#w dYcSx&Id[E;oMatb/҃PE!:YarfRvI+41h?AȒTݮ`9B{-_/ D$$Hbb Dn$>]UO /k1Ax[QSW5Թ 9L;B3Sqճ Eu11r)Bj DمŋeIfqKK#Zm)3Uj" WȮ,\*!BhvkF?Y[|GNL\$m?cC46<v|N˹ѐv"Kos*ݬ1Rdɋ/!ܧ>?sRc&փm7z ݲ|u5KˋpYx1@Pt2lTe,d/4-lټO~3hpdeZ)cyNk5y]wHx3ozH)p/# iY^MVʄT{GG06CncQoigUz ;'"H K248>/ol1Axo=h2x ;=5|B(W*H8`Lx1Hk"!R&{ſgsyqt0D$mNmUxxB02,#Ml o#`XYZb>YQSvkؾq--,,Fb&!B=#K !~̗GA[ASGB 7'ϟg%ZvL˼`ۍl4n=zq?|Ȳ,(^H rC?Ndá]W]G>FD*cH$I l&cW5o#5DbٕFCCfhj5^vwqra3MT˄a]1=QvX!T<Eޝ/Ufޏ֖ǁ5\ 47\OçΠJVz&M]S\s 13} 3ԛJablE |"T r~jw_ɓ{˕j)f;v;w?ZT=BO*h,4R.;p749jHH$&jظ,`;Ζԭhgc0+ َ6Bvb0>Z,``߅Cq>WQo=v0`;L,<(~_M lICNN=/Q.W+c S&@hvFDۻҩ0&!!=0EQQ`A008R!P8~5+#v ǧg0 ޥD, EtLX;a>ZXv?rõI0|7~8lAN1Mw~%j./,&9,ۆmp!88 N~ПjRc'߲4"mC5깿LX2ưY8˲jS]IM@hz&atϞSfhj_ޮa@˕ Na%Z+n?_M/كc#_ִy2U2ir~k $Հm c-m7V`zr{ J |3j: Yֶ/iv~YZ?reUQCE͠=} X!P~0,DRpֆȱ-fVP *n-h-@1*8qr՜}C5mA7I'Ơ Mݨ UYzwմnnFk3A_$o_%5?[]Y,l7iꚺ@փ=,RaKx=Yf=aai9]ўx\_\SO/J9,#AOor!VkibJlfF=:CmWr FPmVy0Z,M{z9B4!MUpD,Ii ?v=,ӬQou,k4$3jlF?pm7z`fz H^v`n0=J?k~vTT?~ʓ.9253qzuZh޳u|SU4b{Hg:Xv;B.:cNྫr"y|7 Ͽ*M״[˅\S*]Q ~ψ4U!]U i&>Q*NY,l7iI~>ײͮ cۍeBz1MQEAD8 "lmO?x>թR0F,ۉ{8;V=W!cpdt=R2 {6Z OE0*gQeByߗִ%p!YőӨT Z펦f>^b+ȲcXݷ#[!)zk=p܎ Dk/?tͯw i]ϳYn5u {V=p\r饸m91慢dtDlh%t{z=ljVưB]ݩ=f$zz{ӛc0*% J<2Kd64]Mh^VvXX^YqM9 `0h0Ԭv@%nNDoZx}~dU't7-z+Y,l7iꚺa@˄:"1 b 0Uf؈/O&w^ċ3 K+ժ,|`n'Qг6H#0M;$X#`Yspěu];OI֊a@\p-.crfewe'4Fכp{+ $_{WG@߽Aq+cln;o#a@;)9/Ñeٰm qks^Og_e)꿀[5\^3xqa@E@Tq1y9e|-q;Qn/ox.@4Bkcf~pv䳶QBu7XU$8\$09i;\x}@D`v}wS~XY\hnUu u.o=-粴p/~8p{c*c䯵RX9}]~{N7MdyK{[6*'UE=jRs.ۭ [Yy DZ[`yaiկv+Z[mfw⳶g! x4{ǩ'F ns wBM?%c#/Bu(V&M]S\z[yb ~eTpUWAd2k /r:2":>uWk33(3Feh bkж΅w'(=0UQV`fmPa;h4B>Gz(M$iSNj&NZfjj$COǢxDkjs*_/0*!IdI)8?]k1As-9Ra7&cۍfeM)ek J.( rҦ^JC.e'gVuM 4M[dGAt^[S:WF8ތ?1IF"DOsTe8-ua;i?* ]YmY۱hP86}˙U?kF/T2BlnijB(|,)r4 >ȝ% ,A$5]oCT:z+M۔wʘؖqߍ &cۍ>| +0 ãpBȒΐ:-CDt{N/^dNR|d۵S:F/C!$S}G"0*ʦsmNd[rYc+Z "n gS;:oB!ґd4|a_BT n *!vk8?wV)1bۍl4n`wWpY̝ӟv9 h "&y{T(WRП453XάaD ֽ۱S:_pIbR$ /4ֆ GZ"TMkȗ8:5|I3: MUwP_OV BTüwd !]E_O'=Bo{ aIS5p:lCxƽwI?_|s_֠c@DqeO]#ܠiYi!; jNdEA 0U7w>y^l5y38eXZBdEQMdVs829RҲi#x-hlh{F_MT/|x=k2?ҏwkV__"Dr[ubIS5XSl!;PH0-Hһ6AKi5_W{̅aӲ{ضc0: ! JCt4 8_?q#"X2 4M עj3p>yxLDjZ *2Ɔ1:_k.j"/{B&ٳ88#gwYn`<6.bD=\ p˶`,ۆBpΉ ι;'^>9;Yǎ{X0z;^p)Bavz''OLAn|g !G08:=b^H֬nW2C0OZ;5WMU16< R ʶj'D3KG "b :8@Ę#k?|+7дk)`wMSfe'Q)6U ,Z`Pp{ 4lَsĶfWsIҲNˈZHGoX ryChz$jfL;Cͪ+[_\9b;VM8vNMmg_ t\/z{Kig/4,yR<A"}BFq׼ױxVJS`L9e M;4=y#i(=^RvP <|4OQ!VχU$IF/M=^ضRYVfB!"a(zKvlnv%l՞zy+H"Z,50Ú !0©Q~$ K $A%誂ɣ7a0@Mn`vTM?}!]Pb8K&nq l۶TE9ؓ=NVq0{cج i!P8޾~h{H0u6 .ܵ04P1$1D1׹0LLa~yփzʼD{FFZFNce$8'yWT4S9tp[oU4Ձ [6pm7zM$C0{ϼ mf |(2eEQ羾T2YMQ?je9%IBaLG"hPnnZy 9ȔE"P)xZlkP( LsTEӚ$dWs8>=CrŸoo,cdev {Z;XH薱仗s %nxOkŹY|#'?aS跒|e[4uM]syY=c7 sc cӎÝ!]3=m'7n#k'/ s3?W+0m[EmfP$ {HxH1jN:Xf193Raj3J!ͻPSr9n7,IPU`uC޹!Vϳyvkt.o=ضд0`b~*W* ^; "˕ w}ȉ|OSҭ8(h;`]$=P,qh_~+ib8稔K,-R)# UUkߍFh9DA0d˅Oa0Nr4yk\pܦJUg aDDD$_Se$":g. IDATܻ)Vϳyvkt.o=ض$j?3(.bI}@ۥ!ƈp|l7(1o4 ^"BRԱbfzLè},M,1I]x"߫F )l>_ۢukmNBSպڿz.X/(wĎ8@m/1wM !@2?]w֢\$@Ssy[QSyv&۶YDDGT~51 0b 󅥕 ;/3҅Rn` PyEAo:xO/ٶj8>)m4?#"*C,&ܶJej>O~(7WxY)Fi V@@UU7FW龜+vܐ p'cD7~c'ϠJ6m5Mй`;NcGq]w eq8 y?<4SUՊaCem;vD/ U`T+0MɚZviȮ,T*$+<$j'g/-mNB0" `|xv_uR]-'"QNŸs1y^j.꺙IbPe , p'oۛ2oi&M]S\zi1d`xl J1r~$\G dZϬuUyϾj.Yt8 =I${2 U][QӦej@X2 h<8+M8 ay53(gRT?c BvX],wi9cYcPe!ME4!2\7m`IS5p:ljB`j>7Cd6$I`*,7aaZ1".{م}$hi9^"J OR*Z)Ӻv]nbww݇d6 +ːHL>-q+U>>iOFʲDC0Vʅ{*3ҟ`baYBw֞"@%蚂d,DXy5fgfڶOEzݤk8[5ٶjG/j,Tup{(]̴,2L8|G7?dZ,lێѺUy^b D#`Q\m[MѴfCJ9Ehzo  "pi~iG&a9gىa ӠMvvB]*Bp{U3U*y׬]Jډ+1U-cuaz۟;[in`IS5XnoL㪫lۆeqoG-7(a,]|` ӚFBB`Q'=7B@$$sT+8limDB>=,6zOJDm K[6 : ݛ;| !#C}*bj;_s1R 7~cTX!ډ>ɗ!=8%8r$J动Td*U p !8炈pE*oq2LkB Wׂ0;KZN=b>$T]lȲL}ݳt?$I=uSb~ilǁփݱψtCO<廩]9y?Y`5_i~ucD@'/noB铺pV`z]iaaǏ~B.>pNf*]*=ʕ=OU#pyzѻy Fe,#Ao_;( ~Mͨk=V?BPTDvy aqH8u 'Nbvq so3uX4 &ƑEkō[ {sŰnɗ*p̌eASGuGއlbI}RW][!й`ZS>SHDB䒋) %^L:|1"T k~qiY_ 拥ҸiZ y^MבFQQҺ5MѴSؖ%cX]Y 9Uđi,,4^SŽ= 3X$of?KUʒF!pi "ra>% m?㫛m>8Mƶo=@ÇǏ~]Js% Cu#vyj<`]K ,{в; pї$!aC4m$/yVQ)j*TMpX8qr+]l@G4vZ]7++ֿW<?׸/Qp_ya>% U lG_Җγlփ&M]S\zue{s''>8p!8w K2765Z?FnS"B0|"ʧ_~(/$W1Ƙ8 7EDਖC>KD\Xc5۶(Ӄ\\Bž7Ï(8}SUHD$I]:raT7kB$1"4!]A4ꗺOꦺփm7zdlփ 4Vf[gpr.b${pZ[:Zw-\V9 'υH7 P$d*p8jJr64 V3MA0 \Z,>ܟ0)z$$Az7r}ruҽ['% IޖD$(>t]}R7յlփmq`R.cei> ^W Iacy{\adw ҵdP#M(z.F HXOC\, ?[Ff uݳ*IƇ164Yl9\7ReAx3%OU&$|mX` 5ByMiK؀jpp.,"*/^S5=3Bt!B hS0/ a(w/@O%{LMvP{FF0@Cڹە ! Ilz 0+R@;>_)hۊ0[6te ==-ysc #Ư"L O/{E K+~&aڪ-@b#zҤh2LoN/p՞zyuU ShH?X\HDvKق^FnG K_7J6'uS]o=؆@փ 4CYfiR\Ox⓽$6Njuen0TE4-;]$ƶ~I"ޓr 㸿6I79a]u}wUHb"Kʲo E޼?`"0"ȲU iƗnܧlem[4uM]syαl4f0>:+x0ֵ[vbDdVjR9lt噹K8r팛@}Xo0JD=F*ݏp$JèxESwR;@e@$ &ۓ8Iuݮ\b(oB|T1mFc Ib$y,1([_"nǏQnzۭ4mSn}R7յlփmv ,ͲL|o^J6FCP@$c^KF1*Wsk^/O$IҢk`tb/gcBQ~g'%"7[RSk(m]{+oA|?f% "ASek7݈]>TV$̂ho#%<m~(SI$)=>7E.(esg %+ ! 2z҈b 8nkjg^N]BDH&`bN9^׭ʽn7WKE8uOEH4Ѱ Qouۭ45 n`IS5p:lix-Ӡחw\Br 0bT ʈRR?エR5/4- `q3r} g$*zz'ȱmTe0vk82MUi|hnkiM ȴ7O])}Abļh? "!GO\^[4uM]syvcbQLLLಟ \]$( -jP,ӟb*W9Ybʲ{$o?B i!P/ MQ-aFlrI;Bh!윦VVeJWq!jR$#Id 1w [ɏ| [4uM]mH ,ZRF>>HUӑQ*8I2ʹ 3UUQp [zb,5{҃8q0fN.o{94]ǁLַI'{Ip*x螟׾|5,6`syvGM'Bz`cd(eL!K$$IʖqE{X(W烎#›LènVjaUAs64CS+ 5 }{ b&.ʣ.կ{{,KtMAD]ͯCF MAkw O|"\x$C40I e9VVЭ{G&(WPV,H j7l0Dx GFJN!D/ۮ~k ?_eD- ۶] l#a@;7Ծ=ۃB eôl8\;$D<!02BX4 ѓ m;h+l0 8_ba,.́;#r=LTCC nUƅ0b!h|~6.> "ȒXX}=tnƻX\X8mEMTVUu u.o=@Sy;8{~k~B@@prB4x Re/َsgX4X1QbLBMu$cpt?t=rn8CT׳HA^EXwES+>\ iH&b)[p\NMo⦷Jy5 n`IS5p:lxK?PU w':`َi']0着LKlj`C6m&IГC0R)]!1 ( qJϿR4}slvi=~}%o,WcqaP,lփ&M]S\zB`iq70\I2I^[p XKIDD+Y׿?xݟܥ*ZTGM$Dcq* Ov׿!dY@#*Ͽck9)q\1wl0#Y*2tMу}oJ~z[4uM]syZwa8FE)Oe#6?w"s݂*U*uUQ\1ƈHZ?h+ibHAQT2*!Nn @?"k힦Vx͢*BV0R?dY"U i8߃V)Mй`M-{A> τpD,Br\¹xs~@*Q䋗D @[MH${7Z^fiV@Iwt>H{Df55B EB9"!Z{mQd ,QHS8syıPoiXzݤk8[6¼mC܇M j!Ȫ "0u$ dB^Wӆi ՈS@DP)wXk * @*:`B=YϿ3tϛ P?|?1Y2"!E忉Ņ3ҴMyo,o=n5u X8V+܌;~=<+1:2 .1/8o՗Zo;N?m?!Y"ً0"TؖlI;j  cR==P IDATut9,=26|b5!~?*艅17y׼˭6Gy`#Ft"o}5K/qWPoV %ôppewVM!h$X8g7|x-hwA-MDqYZS'Rfqwܙ6ocQBOJhtxp]Unyg6_0m†ao ,no| L-މm7zݤk8[6Ԧˋ [?_xsQ5-0bBCЩhՊ#'a"ϯ.'"` P;" _^;u/[2B/bso5hPy*A?4X AU"z>* W_Z;~Ib%U(ҐY>n|3VbIS5p:lxn{, Ѐ |?p(kSO%By?"N{xjzzS8ʥbm[NhD@V164(vک B׸A=_"#*Tgs׆[v+Mu`sݤk ,.04qA{<d_ 1+qUU&7-{^f+/pj1DJCT dvKX€201}@Du \v߇?@7m<,D^I0oM^ qP*e,7lTRJ}Lōb9?{?TPtH)8¢, d2.r T07 W-bfdR),ζW-MefG׵ ݭM׏JY6w{P (򚕸Қ ol4WD7Vi&A1_Kcϟl:|45lѧeb/Y'~ҏ i0tq/_S_Y6 8iG )Sm  honD:@2a5hp !P 2Hra;r\ou^J&^df+UXN13 M?!c΂H$S#dn/BGk N?Ld.''e8gMU]`hR td-O^&eʔՏ2ʔ){=cxGd8::H[@ğ76.:8L\:20DT'A3R"LllBTlt@KK52- ɿ`f"uwb^_z'^-/3C2v~ϴʦ;fRO iB ahȥhm+.-,76NbJ4E44p^|˷0 ,fL.AJG/}Хe;s* @aY3L6>Q*P1D] 3#a߇nhBH^*byhPݕLD&@Aa j%=MvO+fGO[ӗm)?2Q(y)6 M~u7˃@o`8 2i .WE̜.,$Zڑ5*zM03t*}lkZ^).ib?/TțPƿuGw9-LISq'_`c4E7vڱ-bUHgҴdk͞6ˌ 8i9{7hEeDSz ®IlC#Z;(Labl e˶Nq&l:vmn=q4^fPEǑKW:~c/MhB@VG􇐎3grg&M5IS| oJj oM ilƾ{³鼷 ---5LQ&K402>Lђsxϥz ʢI jikG[glBXRV @cPw? 4tmE/wrr K M 4O=׏"{RCO=;3 'Mq56lAX2ef4q~oxP*hjnd ɘT24Ca9XGsM+)+cfittr}Zqe3̐ɄT\jen/!k CG*i m~wv{Mz?(S,;޵ln54?<>?kIGc8+g|cIS| oJj oM k^\G-Λ7}6lK&9iINIo;yRW47^dfݲ>)9;S\Vo^=j:^WmHeL f #%(aۍ.LqtboO[7R }CcECC[GU04 O?}/(kj86 X6 X)A'wÚA0OmnSELδP*o$O/߻}d0bY]et !C7P,2M7a @*l{ :04#a7S?0:^hb*t mceG\Г+H -m |ڻ{׋}=Ȧ']ӉN$MskFƋ+YVq4&Nhk#܇o㯠IQ'86lAq_U] X)A'w]ؼ%uwЂ H$a{^ "HV!_,{yg?/f?N[zx 0 pH j`2jȦ}O%7)e:|ÿo g=6Nklx`UPclx`ht^qO}u7_(UZlGvJxQPК@*F4ki[ިկdV4ؼW~dM]33i:ʸzdž76Nb*LU+Bg[6`l>PPרlZrx,!~bA_DߴtʂJ$DބInWkӍ ՗V`_ M5 kW=[ ZLA"^M,Zy\™\#eHf8Hҭ@ÒY2Sd(s9T{C6qؾ8m^jnl|h˰zdӉ[%7~H|% /<4eػ{'Ϥ ^I0oM غm[q*| q`躿`@uh<_m牦\ve;LeQYRK^T2 <ђ|b9ߗR{cߗ&_]NICGC&=~B=igOlx`)6-WL]۷z~ސDW[3i$ $tADu TL{7nm͍7 !HV\;*;1t4~w\r@ ahH{5ڊ]8Xk7)SSo4E7.ywn ,±*8eRض5'nCk+ y=/% =/Vz'zv&XژjP>V뚎t@S6C֬'?(JӞz&w>Aq'_`;+*.oM غ]nxp3HIqMd!~!lZ=shI4'xC0ɥOv4\;6QzĖҞ mM%u4fvճtUWb}Gα 8=`'MUPLYd,?>}Z\Dqd?JIÀkr$c$""AT,W*7_5}mgzIПE7@UoxUe;"wTk.OcvE2e15J)SQ뛻ՇBRJXۑpw2!{_KWwaڹoCeZ f*0c2V"Ou\y=+υĭ1lma5կL2e JSx5)_O0uo8=xyL2Mm.Kf kkGayɁw2ES/D#?>`,N!%ÖrHK@AuMkرeeXҋUj糮4ՖWi-o=jR}"4E76lVbώq$$X2p_7#1lg[BחgRݶ#X!}nmƤ# ڎ#~[ID5 ]GАM'<>e,6[ e<: ol4WD7Vi&ol&:IDATx_1>p`~k_ H)'pG@\q[眱BKư*8F,XܲrźM27O~a:R t٤]ر}3=x?u6 8i*.oM ذN;>>> k φm7dvr`7 IߟxjrK@Ƥk[;[( &s.\!5:wݳIQ#1olx`)6 AJS4y`{Tü7U=\}P} @¡pGMOhBXv{Ųt: U03; C_rDKӲ+D~~HSB4M ihʥqpv\ugiㆺk'Mq56lA*16lAJS4y`{Lاz֯iSO] )%l)=?g#"*WL +ZrㅹtՓY#13tM0f?M{ć 8r#~}ª@'76Nklx`g-82eʔE֊־ O<0{;ïπ< rdZ1~Es]dYvcxX5@ʀ2DX}¾yX~H/ BбOO=8Sw_eʔ)T(*Mդ|!V4`1}4`<_d ӴaK q$ݒ~dpogTp3)' !7,qxt"GAU0gfHfKcG:Yji2Nx!0M%ќ埸O=X$:IS| oJj oM ذN۵s֭yX`!.^LЄVr7e@ ui N1-002>בFvx0tӲjPuP-JC:AGO=g `)N7V%5Ɔ7Vi&olx`_18*?2MtwwI$~oXdIdshtbu.z)keN+MIU0&33뚶+eP6^"` Z|_T]q'_`c4E76lA3>hUx… H qߍ8~xvFۛѺL*R(UHTp24Ѥߏ :rż{dP޸}]Z 1_[PtVi&ol4W@2e^'Ʊez%u 3ƒ%x lD}e -i>W)s8/bx`Nz wguM 4|g5@2eʂA"^Mאiퟃy W^b J l3Ñ 0CBH%dw{>o`}.R' ]՚'˦e}Qè X[_ m1P*MGM|?ʔ)Slۻ{V<(ZrIi ]u DQ~aaeʔ)7U«IqM?-슫`@\m;lM&)%F0ë f9K߮߶}uٞ1{z 3hժ?pB$ /_oi{x*MGMD7Vi&olx`gUӁ}{fھo9Ag,*ӡ氡kϵ555aKKHS{4m.WF_MH'!?{Yyiku'Mq56lA«*M okڷwo~©Mh%L5HJDdJe={Dxe; DЦ031I^iizI?4!H4蚀ЅCVHku'Mq56lA*16lAJS4y`{R41K{i 8I8S f+Uq#qnǑ Tm:#0umec6 ?\xL~)M C#H 4p?m7m76Nklx`UPclx`h7kZIMB$ftx2J~P*/KU^}H:eRI4fq/~)3hXJS4y`)6 AJS4y`[Mmі kqp.wtR206$ /@ŲMӶ7gϱm՛\$L'/J&!AMׄ5 TZ?o2,˚B=i, 4E76Nb*L2eubB7mWC}l @z*ؤ,t*"J6L ~RdU}#ŗ,kP5r֦,M7Pȟ@Eʔ)S.#2QU«I4pS.\| .2.XDtRmHpˆ&oI_X:?=:Qx=PXK>rGePf.v4ڔv랁1CܣAp]x>C\m61ה*MGM hy`h7.413_݃R~=mIsYChuG߷G %&B8 cpPgk]٫ ENr'!iH& 9qz'^;IAq'_`;+*.oM ذ֝۶Y}{pDŴ FKCc/jݬkZP*/G#`w ^]nki|cqx Bx $ / ݴ qf76Nklx`UPclx`h7.5i#6[MV0t,X| GcL@J6)7;R>5sihft!ё|<Ex|tM#]n~n9*Lzsy`hISl|U @ty`h7n59bq_V36yK0^xb@HvK8*@Hyv#oonTT e""ݏG M aLHXjB?G X)Aq_+SL:3RW]+>v R ]i4MjL" "r9ㅦ\d:d.N1̎m _ ؀ͫ#] BБM'֔M/=JbPL4 AJS4y`Mmu/" jjjF #B59_@rżX-x8N3&M Tx1RXÅ]yp\]tMC&DkC{1\OT*M>G X)Aq_ -2eʔޖZ4x*R3ÖґpJ`^Pnon(ͷK)?hz@ (3;M GJ ?o}ˑ4tt4`'q_=WLHA"^MW)z.>&H.MlmÑ 5`vHf7,^(/|q+9HL7Y?[}2N=ӛl;R73v&Bp>c4<4tL#^Mq5W(AJS4y`jM{w~tرp[ ] $;8?~(4؎iLP= \ !9mAϥw49@$ȭ0t܋a~J_: U'MU% U6 HhzyZ4e('%²me?*x;' :CÆiNWA++=$[sBo9҈i! %o[GT75_q5WbN'`y`hISl|U @ty`h762V|+WpP&@S6zP*_ī4WS|GMU; 2eʔ)I4+XXxR$ǁ` ` aPP\o/y1̗ݶ-sGzP}Cp ]lhm^3Q('3SN7id6f|\~m)S,NDWi &txs{XbYmdr \>O[߸w`ݖm_48:q 3Gz e:a<ҐqPe;Iܷ7'xoƆcڵ/E^Mq5W AJS4y`M{v懶kW,5lǁ %0*4ǝ7 \&=TKG6 Q=ݔ=R2rQ_{GlKzV^M" RMW~78XB X)Aq_U] X)Aa &6܋d?$j QI$c8R>{yhisHä ;aO7\iٶ: 'ݗm\ُa:7Vi&ol4WD7Vi&olx`㤉Q(+_OY%Kv҄Wߺ9JptOS.=;*Y6T2a67pϼqzqitMs w/ !4A0 /\ /" X)Aq_U] X)Aa i֮zm-mz'k{4MV6ZlBMhlm?_(^{ff ͽ4~/5܏o/xgNAa U'MU% U6 8iv̶mN)_#cۖp@ f R*ۥL㰱 k׬iF_3Ň.f]ZX0LJ.f]ҭ-x94PrR!{Th=bBrd fc|r*//ӞW)>t1S|b¬+V6eYkGT J `ؖW1U. :X*5Dz~IZoef@n`w@{EشiV}LFWcŊeq >t1S|b}.r\9$eTO ʟ<Tcjkyf Ee=TY)-wEi uO?<8-)>t1S|b|bŴt{K/J`0:x/+@m3 @\[Xdտn)@ǒL|=B"V;oy aL񡋙C Li1㎀/%38 &WdQ\_1P"̔lX* (?$@ Hf$1X0֣L{C3Ň.f-,nC3Ň.?,x9ܭ|)!U˟È~]$8D(„Tb5 Ha##`()0h0t 1humhdL񡋙.Uߪ% Ŋ&rqй[=Vß >3?ӜkQ%,!WWD`*XxwXb*Bh]X]q]\kpW&q +ԃRQ}MʘhXXB<rR GmAXGVQa)>t1S|bqA>t1S|b~͂7/*`]XJ'V@$k۪3 Sݪ% `iNN-QAD˘9;&Kn8i4s,キo)>t1S|haq)>tVKCcs?C {'tR|k3R*p hTrG@*EJ0йk7][6o63l3Ň.f]-^n4vPXRbHC* {cqBB)/j ա "e;)B?̀083fAP^6 b2V8)>tO?J7݌S睅tևTц=gjfuTnԡD$&A FDzERRŬp|<D%ۢx/?jM\C3Ň.f],4ȇ.f]JRL; ^ (Gﷄ3/+! VJ&0ak->ghuچHv"1@JlPN^60f])>`]XuQ߄)'O@p?:G8՞Pt+2ٻ~46cqB*d@.Æ ¡={aY?JTcըǀ)uc)>t1S|eun%C&L񡋵HZϾ$$]''Ё@o.!Pm˱@n.mKcYx{8{ȤӦ|֍1S|bLq+^q\կǷHrKFO 0P\(9h7RRp]^ `dD (aRRk7\~7QTTϗ/EZ3+VC3Ň.i/& J1+EU?P%NW*5i1[]3J}/a l!KW/=y˖. )>t1S|b @|bŚ|^qqp8)K4-,f ~蟫io5q SS"-U+{r8nFi3fo>x3cL s|bŚtYqíwqG |_NbqR7漨78hL8UU:c9 Q$LaQ7l,/7 2S|b9>t1S|b{|މSC= Dܞ_'$`NekfZB1wd\ۮ`U÷p!`3hԘ1غy6F(3Ň.f-o+.eY&5 w?(ׅR rT?CӞ` hWm)7Tgw&\8(-!`[ ƫ.bje @|bv{LQQy|#(| `JI?xPJu@݇eSc>8xƲ-鬷L*N!Dײ{=ꪪ|8LALR)|(d}I|?I+O>=MSrg8Uj-+P>j x$}PJ?p`|.3Ň.=8nEV{0LJ.f]c&u4sOpؘJA*-}mw$DS)k@ R$\b:wh4c2jȲ0fD֭+u)>t*G0LJ.f]lc>Bѻ߀ppY?7LD@tODD|bT{Z31Q/00&Z^tQ#L):w톓c&O˗a PJ5HrbL+ƊUG=?&rڕ0ÁT S WfH׶1L1mc@^}pֹcc駟` NJoC3Ň.S'|{bӣ{kh=TtOx(k5YSfVEAD$"k ,zI"7C 򡋙CΝ GOF${+Ҟ o#Hux֗g}f΅SS1QXX_R?%{Lu1S|b9>t1S|haF?V <>`ױ ]Ǿ3#|BTa:}܄cS)DGʫyOew)>`]mξoH%B?sǰ4t?z R7@80ъ@IMIf0GN: ?iU;\!hi53S|b X.7pٕWC*b`!HJ- {ID4@h5G\ܰ ILukvMcj_"A&LfonLj1G z' ZoJ `D^K3S|Ti[ⷎmHD! X U53Ň.f,)M[h]ϼHCG@2T7 C,-!蕫L*o f,`W1:-؝4j[4r^ 9QNA"Ҋzixن>3f]uqfq)>Z |=@D tkdoQa [cW?@)N%,Ṣ̂ ѱ>f2͙{:\;oO%^s?cL!|bhUv?]ᒾa$`׶KVxlBx[0S|4Y;};|8j(-!Ȳ\ۂ28cL)>t1c܀Ͽ %x?l"ˢ#=_>H5NX3:RЉEIw E e`H ? T0|lP@X(0Ç.fgC ͣs.$( 9Ʉ}zMƿA*՟{ڍ{v8\yk[g{b ,j;;Ŷek^oiC3Ň.C3Ga cϾGKQWE/Sm}&D1[Ϙ6ޚ{â@a̘n ױmfV|{ u1!8e,ц2zhx}C3Ň7񡋙EaGGiNM}£wy:6ctWlmL\"<#؅Ie F!f ec 'ģ&XaUfu+2S|b9>t1S|4}W_z@3I g@`T fyG/ۖ3fQX.ݺcʉ'㤓,hf]Z!4>}3fE ԟ/șbcR4ZՆ-k7+Wt8 )>Ǝ??<v"ٖumu;]{LZ,Rrm[-A3&ۈ &۶1lLq* ;eSyYh!3Ň.f-,nC3G qEH$39:˶D7^OK( pw͢ހTjm:X@Et@pc('aq)h_`cyy.P0;)>`]{ ?7D\MB*%{b~—r pgmHy']\Z*?a%&31~Dd5(_lֈD3)>t1S|haJڍlƝN& #~ ոH1wybLI8vd%R t8GO:^&?H[bjq >t1S|{'qX1*_@s4XB&o @i'1._1sұM~ H@,!ض=h>}Al޴ 0{f]Xh];e;?Ы2ߏ@?f%Di{M:" '"  p@{hsT=| .%ҥ VZ[3Ň.f-,nC3Glʉ'Y|E]3j'D'WqwNR p^gG.XHX8lh:mzI_vlC`3Ň.f-,nC3G=֩sgt1S|bqA>t1S|`ʟ{]x.ܟ(BܐQq> <^GDTj3= Kea V ~нWo:P\ܔUSwL s|bF9g.|hd|"Aa? z:S/Qo<$ٖn R`h!+LcW Ų>.3C Ŵٳ'λ˸A(~u"05& : ``L+!UsSd L*D~?[ q:806u fυrO8be95*-f!Xft<SRe9SsTl#njNbJMc"A&ŴԹ _ ?):|qMֿ@)7;FR(5@ + ,AH:6|]{L&$!Xh]M)y\k v~vC۲: A?xP`?&u{f]ҷXְcV70C̐ѫo?yH&#MO} d9>t6眏oE%H* C꥘xD@bZ#} TxJ Y/ؖ;.gC;~:7+O} d9>t69~߽&dTMGcD@QUTQ[O =1S|b~2r\ϳ--kIT{nP"Ja܄o.`C)>80V~O =>#ty۪3O1s_cjyIx)3uh(X$c#qa#eF^>I @|b~>}'J8B4Iʵ@{>s L??jfOQ*qt7a /ME=v7C 򡋵JeaѸ J!7zk$2^p%`wf]_0ʶ:"gk ڱgѓ&+P~}42S!]ZX0LJ.۶}㛸󁇑**bUa;-AI3^0?T1S|b} m[Vk/g歊_Qn!лo?: }vsk™ ̔rH3ŇjQ%I\xWիA6  `?cҪTj/՜[ a@@t f@)/$L6d.Yz8V=!0.֢2Tر3)̠pq_00:=D%1`)>2fұc^ kܰQ\pmU؂޻I".1Z$ S/ť%d9< HYB\[n']ڙ)>t1S|XKNd̔l-4J"}…GA`cy9֯[ .7f-,nCkVZBLy*n~t%?_Ec0Vwfr))>t1S|bhȈH(nTl@}#Sfp IDATqC9]fC :-Mu?pI(V`F>/d#{~0m|M(dM򡋙C3.H58-!ۖ@b(俓 ZYq1:}7*| /3Ň+yqE#Q_m"*N%G b[⑊ymn ^ƌms"--,,} G~ں{ ĊBh]l=f,.J?i2)Ź.h74"d⌭U5wԹ@+|BũYfl DeO=AK)t1S|b75C' n@RnI_?rt|ڬ\6*8qװ,k۷R/RіyBBc[TvΝ7k׬6Lų y8 y nȈ" = 1Uj123Ň.faDf9Kr2+{̠hX@A*EE8‹ѯ_?[6mܸ%}C v{L" Wn2N -MP Y?8rW)>t1S|4RϗT!(1׃S̥CbCyYݥM)ڂC cR;pY`||fx\(K@a1۵%V2c w`]q0qiXf5֯y: EcL.ϙ m=33` H&*k?f NL+3G8e ~d`]I & <񷿡bk>9Q^43Ň.Ckc&OcϾa#Ta!#YDO-~T'bn 8ƾǝ@NV9Qsֽ'NI< Śիs=W-L5VڏED;a"|h,Pr¤t}NJkGxbKWR X!0zv1Rr(nACǎ7bH$_?_T8ޟMcpa]^ 'Xb$""/ޞcɭYw*R@*d??M۷ljaAEŘ9d<R)&1[BxRݞcŊ4 RumkL*9>g{uk`ӦMmo>VCc4~81i PX*;pmzu>0+)Wh}A}T*/Zf@,H%+6oo ]fk{LA= A Un?  ֍;Tg_C3Ň.fmGT Ѫ@rn fzMpʩq1͛qCyݩFkM`9>ڜM1 ?";CO б090d<"%dJ! f])>t1g$&k޳͚3Əǖ͛7ZX0GxWlRPN~ ᎭJ{I5jif])>tS8c ױ+H+@1V@E@Rڣ79t a4;t/C@TٯM ۶8݊nϱbj{1+.H<ߞ5Ϩ a kcr6]cq >ڄv<9 J)R1 ]۲]^EU5DTqhMI~~ W#|hd"Pmc " `?bL3Ň.Uŗ}w z?S +]^ADz e)>t1S|b;&QH5Q1&]ԗ2r%̤ 0fDIزy}bi41S|haq%wE"U@pQ$X1D*i 0jif])>t&'Y$*)@%.{ '/>_2(ۏp`g]ti[?eEy; @s `L񡋙Ckyso Abd±\aETn{qb2_oJ9i-,^ pUn_9C>`pj2CRzNJVC|%$2a/%?OưQ _*=f5ُG.]as/Aɗ*9  ሌ\Tgߔ`=?,Uh-Dz a9CD`)Dl[▛n_K)Nw:=z?^ p/ZV'?P5+VN΁Td<}ױpR*7|,H\pװ|wɺ_*0GU|ߺ:t(- ]ѿD`?IDSEf,z#"oS nbE L,`R~ $y2 L!ZH˲`ۖE :m%ضml"t9lh!ԍ^3гgvp(OYka)Uk.h\ -A{kx5.[9x%v s?%:v鎬C*m?Dc1sOݞcJ̌ f֊mشi3lق͛`[e%kPS]L&? JsbMBOB1`pd(((@qb%;S) QP8,+׋ Eq[13=8^{hP'A)_ ,Q DJK$N?PK%*|$eכ}Xq> 8`=,z^(,h93_(̩ }? QQQUbŊyuTa#*++NgAt"B49EϹy*md6 Pܡ]t=S^=ѫWOt;EuoveRb⫗"vm7$'lz*]@mCN&W ~Nj=[oK˾U>|t/! Fq:&!"+Da|K|ϖ.Æ d>QEin{$os.R*pVу3%ux\0!WTl_ ,[9jjlYMN.*eVJ5>Yye|U"@ii Ӌ~}W(--‚zyy<|?46lش=;g:},8 3QPgX% 3]/IG G7ނYꌇ@*OK*.HN\Y}3ڗA tr`{UUm5I7T-@*DiRt ]tFRtXBR)۲XkHd3Yd۫QQQ-[bغUUUƔ+`RJlڴ6mƻ.  tc;dزe ֬Y7OTDDq`:=E[?1cpRCf@JXx.Ŀl{ v^+:Ùtmt~o%O+.[lvﻵsEEӷ7 DϞ=PTTuQw\3ÃC?03 @&֊m([_W~W~ʰ2h63K.0hXmAݫX@ AiXЃqC`/clac'PڥϊsW!`Ƕ:HR^ .@)>RXsկK} |UpMbf8chѵK$nq>UTlÊW>§.MRug-{윙# *wlg%R}"b "D,^/6nܐOHߊ, ;T*FX.]H`P*H:=x8Q2X#I ٞ/3>PQ W/a͚u@~^}S@e᠃3avP*.*em|Z-QaaQFb14h m*C13o>7v4Rf}0S|aETc N\l > D$1ǝ@9maͪ/NvT)ۂ s|ce;d JvD6Xó~|QޜvZ)tM}'Q?BJ !'.=ѽ{7:30ol3=w^4nh; deed2{/ZK53G],`)eL1hP(#ƈԩKWL>DL6%޻(U2}bqI3f!E# @ d[Ԍޗ d|߯K?4**ɛ^?kҠA\E^ׅ1|t$hu f-r⸤l-$+DT\D꣔ :b1SЫwZslټe^k7,0?W}Gr4*F3Z H$\Ǿ2f.=32 ^ߚND8pƼH$\4c c >'c;Xz5|o5ljR{{M&%+\˚{ P0tp;l 2+ 6"Bh#:?/U4_G3R?|yA@m7oGj@B̞53g4r?3c5x_>"^Fsf`ĬTn %e! _sՕXh GM­ͧdAQ~~TSn_䀌, GDz5)V\n=^},qcG3D~U>3FD(-1GAaZ:5쒙⣉,H9Jɱ\}β)S&]2d2_}'?\v;D]XҞThjw@)ee`cXbewtK|:t(n F|B r <֭֭-rkfwy3wly93uj btڕN::Q~E 4_EqC^ަ̌!o^:$DkOD$)zcOT8(& RCu?{%v~8Pw<~pO1cG>l!d5Yftl9V̘`1>+`l¬SGdH$\>P?nV>gEJq/O3\>uV*J n!bRsW|+WKP]]5m-;6L Ph '̋x2@ p?Q)NEDN>8]߲xא {Usp=w=l5y_ahIFS2?ű_:}/{@zjx] b)1 qy/zUK3X'27 =xT*?9؃R/y~pթc}Rw^tlDbbf ~0t*"I?gf Ǿӵ~u`f(0c_?Nyh 6R]$H {tI> *c>Rl>NsR teLx=؞ s 8:2T@~Xv*>7lD.{f(aٲ嶻vT~!wmcŌ#'Cyy9~!w`nR[oUUU˲m,xnR)VZ\k:㝭g&{AD,"uҥ_c Q17ZX{~GnP *N%<nƽfc瞰=O'kmFmo~ /<' $m""ض "!̌˖qe_7ϖO>ۋk)6vu 3öAy 57pX \V8k`bpY]Oݍ?͹;pG^XS8`dJ6>ؖ8o[uffܰOoau}JJ)\pY֭kd/嗟5Emѳg!ڿ1d`9qlŻcBw_ ͙mƅn UU-m%"P@wmY:&Jg_RaPI[}_rVlWUm4?IKnw;h(g|*ZuKNTO^p!zȝ+FDزe+}w lҚfR*>ov>13KO>CYYym 8r {'zT:h${Za%F޽0qqzČS‹j/;;'V}O5@ދ1v 刭kHRWG2A3!ǟƒu;z 4up+&x%f%E_O; f_*`H7etN X.1nRN5! bv8!DMMsO;td`vGb5ѷ_ۧ7ؔɓeV;":S%IRIIÎMo=QI'Na!AlC:A&L:C5442,ԠŃ@_{l7$i?+Lf]Gxrߣ@*0|a~' IDAT_Mcq`sDD8YR]у?0@DCRx:"r52+ٖq8 4 oi ÷y@[O$V」1-dsBD3/}gMǐ!V &"l޼?W\N$9}*xp!<ߣ{SR߁}w,!<q4.7[d݉0s)ءR"A4*+ckE֭/úzZlظ 555ZR=Ƥ9ʢ䢂3Y/S**0!@ fR }8yLgqߝPK 0_y9? !%E)[*kcp֨ǎCC& ذq#֭[PVVjPk, %%ѥKgt*-EitEEE(,,DA* 7@2"HURwFMM jd3ԤӨBŶJlݲ7oMuk4*leJ`aau튞={O^ֽ+:cI)~2"G?2 SO>!1&xxcIӈ`ax?g"@"| ,B; !XR^( md%0Fon^5k?ƻ-U8fj݉P&s3}%ăY? U  @\\~ŕ89xտC#{ “Ͽ.=z!xvl۫o!"ڡ7ed6:Cqq>@.WJ&իwśom۴6ma8bXt h|.Ԉ%%]/ HTUUcժx㍷)~WU8GCB^PXXLs(W|GÏѷoL< FNk$"S)W~ѣF8\3˲,p;,'Ljy*,,СqAC0{ ^5;VY٬*&HsRv輂{'ϧ=`}EJLǘ GnO<6k%Jx!6_HE.yQ{7{dKܰl˖{6͸;!vo{ooBBIHJBIc0mܻdruz/fsv4_>ѳ3ϳ3ggv3}*3p̹Υ ?<ܿ^L<0-$2TVV4?݁SCGQ[[4#rsra45$z|r(ZIXn`ĉ㣣!??JKGc1&`q܅cohK.D!z~y2ef͜^.#==]EC0@P9Bu G0( 8nv:^kP0pB 0D|-c̨ c  C dq!33 %"jE@_@Ew;w1`#G >FQ!|qmsNDdY( ~ *jŮ{q2d0͘>͜1 h4(d6 B3ΉrrYnNNFv;"i1tѪl38ݷe#Ι[qZ5x҃r*I4W,AΉ)C3Tf?1 *<@H`,`16# +O)a4!==[6oD0(㝻2~#ґ v""aX-hlxmp"`ĈaxKǐ!ZI1 p=h6a6[`p8raw8T^,,( r*.]w%#cƌ8q (A[^WF=z$Ffh?Z1%F}}#r됖Ek8; zӍvYVHV8sG YYxK㡇 /sg~-;t|`3L&Nwr;^rrP2bVk !?|i3qgΜåWl,4ե/s8}1zt fΘ)'љc䜙3㳟yyy}jPgՈ-7pw:q;GxԤ_PV LDeũl} qſoEzn?e%Bѷ}/fqhWۦ/|ؔ4?#1Hs[׏|` @ )yʊW^}|gwm=I 544mE0}[,V'?'$I]z=ٳe`0xfLiSСhl#"6i| ^lsvmyKzE^@ϫx>w{gju:X1kݯFڿ3:֬׿=g +1E4ciPV*r9Ip ' U{~,)aO r}EEذvۍ>,L&dn( ._˗`[0i8L<ËE?`hd)~lk A!",v\Vް.|D8ݞ M֡StWmG!-=xC~iNb{_) MK?c +V,CYy%jjjl&M,V?IZInӽ됑W7 U4Z ^WGPPѣ0eD5Q'5oۉ$ 7m@~!3zk׬ $ &D]yȨЗ;HR쎰"xwz9/RQtIiMAEQtz+ut!+zmV?Kwli9~X̙=3h1p\vså}$Ve ؽg~Y]{Q_JLBD(> E~~Hƌ?A55DنKm£eUlW: P44w|b@j_KO3vz?f'hb)fpg)7=s$1ڷ f͜ɓ'FB1PSSw$ImNȠl"p-cTw&9 fq>r YY6K3b$ 2n{ %%#" oxvt:]84l6t4(={/.-rREV~[_ LO3OeF O(༭.''fϞΝۍZ /&dď^,lgw/[?>"t;F Zy{3D(Ћ#c`I4 hK8 Iٗ^.-AY GnAEy|߿|>PCFb /^|IJCwa8zDsEEX}ϊbIZ17?£?}_oOfn AQdt sB^nNuTI%SSoڝ`qiEgdg; o 7y_^'->UWBD;g&'N'2G0m^ {śoPPAA?IDvqI?~(> SL 0d`A酛Y2e"8+ZdYq5Yno4ߴw4Wp < 3HL@V^>;}[6"_rV[cpmoiZ(Iv܃kh݆s1vl)͝JKGk_ycƌ; Ʈ/IEyy^yu~/<:*+z;\Q8>mJ#2O#-cs>{VO<soYDfu=VtΝ+OR'0(*47\l>qA=ܡyy:e2|>Ɏ@,^elvTT^pYLf deeFY'K Qh={  %"'遾c ^Sd!?N:8ågq'Ikeϟ$CF pDt$N!Ƙ>z@#x::;ogq90(lR56mf٣FcY?~,>ƌM[_fK$}M6 j\rY3جQP}VW'lHe`~0ix466;`'I=uM)ӻaDׁ1{xW fLC@V#JMR_P__ S#hƍkqJ5\.WR4xxS_gro3ODHOdžkݬ0pۭ1~8l۶,ˉs>`aa0(**w0md,6NoB_bl{џ>gػ`T&ӸOmTNdT3rr_˜ XDmQQ/$%/N4V!",Zx&9kB;ϽT`c(+;߮/CeA✣d$߿c̘RIÕ+Wo}xDG@Obs,F M"ކo|a!oA˒$@6@je OMPlAnn.F*Q1dj ^ǧÇGI0p`!Ιp9]*BmnΜ9'`0`" D-0u!TѶ> $+<8 lbcjҊ@%^7bpZ|)ۺm;"[&ڷw&NCAm]}$IӬYXhO|h43a񨨬ž=\Y9s!Y5_˶kjŸJbkVرO>(싶ؿ9dsm @S9h^k- +1 dN?(ߏ[ څ1+ư["7 joװkvz khFS&O#˗ ?s!$AQ=W' ^&<GA74[Q9W=ƴ?ata.FGUq|%2LZVvmKHD7NvS:J"NCA~,X0͆bŋqY\bp;H@ؽ{/rsqZ1'!؝4LQȎNNt?U, G{#8"1c/]"/QT4֭|oDŽc[|/.]={yK&"dffb5)iYd₂| Psgtj8ueehjjF0^JuH'`[1}T]$"Xnj4",j{RBX8p#T8Cobt}?#͐f//C B]]=jj뒒,+:eb\ x/݇Ú+0s—£dFEE>m*V̘> p+0oldddtx"^Dɖ0o} |N?QHY~h b5Bu:{-(+?T/t:ٻO¦N}X$~I'ٲȎ~1 ˗<D0EQP\IIqTA߯lވ_KRex %%#ճf v^oz֮FZ/}3#Fnnn]0ρƥWqW)::?1Ip Q'O*`BMvJK`ՆM"Ø@' ̐foprW"#plYR|*>h֭??3fLS 8Eb)0yx}>̙2Gm]]taTɲ?څcKa0vGgdYA}n)0í*? r +hd ל^7(sU$ [6o@u58΄7 D?ڍӦnsJ5=n99ٸgrtn[UuFcr^G'USŠ )1jhljB 8}\ u$ +*qZ-JJF 2-)U'BOUlI?LE3}G#P;au/ IDATbWZËe7ۜn۶߾H;p8-oãG~t*rrQA!1t`0 ',d4P<^ŋd 8y/^L\7s?_N:#GcYDD1'N3X?ADTTTȖ-]tm~^.#d2Jyh4bKލk*ꬭׅ Xłsc>?R4kk$I(+@ z}s D)em0#(+.$yl•p57lnw(s>" CFFۼ ϋ1N/x}.]+2k-׭Z$AAAQ:tN[iw~+'}S(9"7,b V[=õzJjMEiM5DɌf\NЁ6Nj(9JJFbeIf1Ն[5}#"L0sfψ[l2E?1p9G^^.,^~ +/E5|0j!6upNB T"9nO_ASŋDQIyt:ܵ.޴dƎ9$͛7UNDط*HÇ?x3c!{Fev֘6M6()@Д@$ra0b-s|GfΘWR2"V#D0q%"LlٲIrcغu;FFFFqi+'?tߏu<5Sl1u<cDUU1qHo.6Կ_?,]ƾwRo5wXhѧbOo{C'lbs|vFUʂ 88`=,YK܅6mS:-?]]|E@lCXd!" _E"B^^.֯<$ |>k>76ᢲؒ'!;;+/iS'۶!*ˊBZB!ԨsN;\c=*$+D](,tmo᧏ec4 ~j X;g;c>on~1-]„-IpY\x)i"s 4qlXK \nvX6KF?> YE(Di&['Ñq؉{يv5׭p8yL"wqݸ6-iP8@h@ :\}+9[ MZj eK/GcuS:ŏu:sNo%#ϵkWRE7x䠌mo !33$I»}Ʀ6fΘJS&Olt6O]( ^}u&N^Z71Vލ'PUiDۿ? ((hǍ};1]/y$8EBPbl{bs+/t1Iڜ޵=7ے' ?[[Wv |*ۻ`\rssrLu+ۙkk5?nsjo-Nt: ֆHggOlsV:YYmjWVʿ#Cm䑨py c B;ϟ5?9@f͚9g&eǻxv7p;zPWaaAuuMM8'L0C JJ~3fLKJ^r{ZWL&"IV_>{?q| T%K&0갾+x<7a41~؄c̘b_cv(bi߄k:@(ď~8>p' 4֭NKӵ+ V#/77)~1 l럢san."I"’Ew"+ {VD}E.Du1vMğ_|ݏ>FVZݖ< ñpIjqNj„q?v!ӣbwZIbK "[nN6$+JBӄ0{HG4Ӻܗʿd#~7k^v|bD_I$v5_b᝷ceԿ+iFyt >Ο`^ l`г6oD,-aƺ"m}bD-aJ=lyO߄䑖ƶlY(![L{zŜWʟJv'"-3ՃEW@8pdYV۵>Ma_:pMj èQ#gG0xùs}~1Ւ)""VcqO_=CaԠWw"D:ux?<ں>U 9-c$owg"B~~^<靎nWT:ÅK ӈ̚5 ^]'(˨m4jAXdY~>_ۦU l޼YYIicXڂ1͎<;9[;6?NaTH|s0jШl =>U^) 1tחG[ѣ.$TG,Yo#JJF`᝷CQ֥=Nroz~~v[aރd#x-x/"';S#ڕʟ1?F EVK=Nr!TOx3$ITUu'pa{Gd1Z6|R;wHjSOXn52[mOGb@>g\|7h5$il2aD7#_2 sީ!D >5ZHƪRBu =~{%}SLfF6o^x1gLL8>w'+*{?o܆98qz> ޳?ܹYzD4#V,_{V \.wϜ,bd 蔊. 9`gb_&N:uk H7~eӊ9ٸo˽/~ӭy۳ 4,C'#w~<`=޳KES'OBffFU%Ij*>=ͣpۼfMQVV֛xa6Y1ͩLLV,6gTSY˖ B]`gιPu tl5ˍ>\"JdɴM8~|ڽ}U|6nXòCv\=IEp"]Ćâ3ۈp^֌1\xKʕꐾ1FӧOa߷  #v@^U(W$&LTsNh2`)4s/ѼPL12vڃcOSߋX-@DoF=WңƎDz իx7wn]0ÇNӤQn,=7Rx???6oZ]w$ ?9W%7pa\4abdyhu?gVN"IN'~wAlٴ#G degSo3{[K6-aAp?Đ!1cTL:ŷ ##s$Ie5ط 8bFEĢEwb}w܃-:j,77`5YVP`)t<׸kX~b把'3gL9o'ݺ`>JJF,R'uû}|]qcK1#333y|Z+2n7P^^gϡ~?z^w%<3{&/3cwcaA$( G}}=O9r,'}Ob YQ~=ɑ :Ay;ޥgb{0}ڔMڴG1kW"tmQa!VXڞ:9|k),`,$4l!mjv_AMhhh!== y(**Đ!iȐA0`rsrIiittFZ7s +Cer=p8h6P_߈Zjll@!4G`С1w,̞5e쵑픏, zXVCΕ|EeS\IFӮ]{QYYysgc„q(,,thH$;'{o"Թkն%8}!Mk"٪ksf ***T]ܒe4ܳXntwh'<~tAHDر5 grljef&N@8,S"++|~xMoh0I鐖f4̌ ddh4``$EHVd&}}~x^@}N~hR6olU1z;',ÏwS d\QB>pry&?M+ҁWcoRNN6Cnn233AiF#3tRS@$"77_LJf+AY{["c ±{>++5+`\F]KiƩgp 83f4nm>U!"5{k37=hjj+WQUu WVd6ovz9/v &ΤwdhG;S'O¨Q#b3yȲW^}~і6~G@,F X0-#'(`0b@phhBNI :qbۄ B lڸ_}Yz=֮YL-3hP/0$m9؆1,dggaԨXt f T_Ūx p8! $E?Y c{ lG32(9ƕt(`0s׍)mswj,z]㧉pdԦS+H  iEΟ~/֯Fff&~;_o۠Aix?Gډ͡uy: 7 Rx"^wo웩^GFz:edp@ a Eq08Y8yx&U_ڟϚ-GScha8#s~hCh4( c:}6߻͘1EGzln]0Źs)gffҚ+Xpn2$bCu8mmʔ4a¸r( 1Ƙ^À0ӦM&LQ*|E6Y6l6lvr=#P0(3ΕḈO\``L I =Ff4`L3"33Y~߿RNnȀA.c֝pGs~9Ph]眡u;dPMgVk$)4}H=hll3xfLǚ+p-CU,xMN^bYds}]_Pߣ5;Cs +0ȽCȲ Y`PF0p'IQ1N^%zN>ihD!tu>5鑝<lKAkD (F*ܽl c&窵̰a`exw@1X IJw׍3ʸ 0thqhbcNtcIͳ7,+h4pElϮހ$ I`X񷿿cO` (][)^#_K'`ڙ}F1UP=t,:[^h'f+_"89{tbg9"ôMWh)Vu'!'¦?Բil7:>(L# PM['`َȑcؼi=̞E0I}9^"qrXxɎ?6uVCt:LfMVvOӒ)^BUv{~W`=+sYs=xش⇈_ğ xي@@н4{- y  10d2<;T_Q-@Q^ji b%'_/ߎsNMf;9 Ȣ?}&~ C$X6+x귿 7@;Qf+l71/!D~gϖҥ+kXbrs!ABQ8jp~@$I;38q$Ao!qǧ+AV*$IfWٳg`4(꾩aӊjٴZ6c ^5(]k%l N_j"$I±c'\-DFF:8,V{bsle£})~  I.MsebP H!v-c@>BU%/;l6X0D 8f&Boj{#HEWĹsX~5fL 0DՁfCmw)1T[=3ލk1d`PM+~eӊjٴGENV+^i".l N_j"nvΑq+W,+1^aZhӊ"~gls5Y8o["@AZ;׶~^ IDAT(+?KA$(wB' !10PW߀_xOEs $@  jMxj"eS0 s^W`ʻ1Un@mbG BǴRchjjƟ_|O `ĈbUcM+~eӊjٴGkcGmdY{ZUM["ڄ0y9'ϰ*\ ˖.FzzZrJ7ش⇈LxaKBB(DD~(+;/6zFMXGPD@#ctOO?L& duɪ>  ~rWbժe;`0۝-i4`1T;}d^ñc'()ISͦ?Բc'BCv'zuxԎ_m["ڄ0yD9ShlS?r 'WӖ<P7a,$t{<ؾᣐEd&ef8]^]QD@p$IBMM-ݳxgl2NC Z߂@5D@"G[N]\eP]? `JE[d!rm`X/j%VP˖<cp{|m4CQ8⋚yjɖ6!LM-?bîONx&tFH/׊M+~.P8k͖<5/T1`PFj71yl oXDHЋ NmhwS P  cN7;GtG DC @CJmDcǖ`[vI DfKmWv"865 w(8v<\njchpQA/R=~-ٴZD_dyS6!LM-?SCcbscHJ+堖M+~QhMĚSŖ<P s\Zf  N'&Rڃ1YVP`n%h!h =^|r {jW- @B'H  %M7dclI1ƌ4Amx}~7YA DqL+mjn"Yz>NWZ}O,ŠvOjZil=M+4:C]=U+gӊjv&Dɳb?r;Yl|FJ&fibӊA}<JflKBB($oZ7cQ=b($ 0`9dO'Wpy|86HbV bG)/uMWy74[ ;[ ?f L s4lh8_@}0iM%CTASQX3%:ceVbms(M/DA^Ň{jsBJ侄Fu]3ܰ?U]bMIDtn$1448q >@m16'ꛬvgvCY%؝K>B*X X !1AF&+- ň0 &f3%.7*._nGqLBǴRѦF,E`9h3>t ĽOhc M&ٜ1-n lN*.]@09|h`mB1Z6@LG9xVL_B# bzZj8'5Y2XuL+6;*T,-N$_ @$χaB8稩7n4[Pq dYN !4d{C=QeWkvTգJ5$! c (fLTaCDG N0ƢE:X ūPlQsA"865LuKt=w %V򌧍ЦM V Nv aՕj4[tvjv&Dɳbʿ#VosNWjXņ񣇣dP 6 ~` C}ݦc"񛎳lK(fy5#GD"˘v L:ήJJ㹵@xLaMyq8"iFH\9v2]X"5ȲR:ӻ]?"@rzفj[Wd"_A>q/#K͌bNLTU?C:gI,XX]5FPE ADPk+E>~'t[:%\-;;d*QE%#*$D"X^&)4ar ^|W_;t2yIE$߹W/!k(w ",+#orMӰby}sS`P "A'18:I:]Ip[<5nK26 iV4ʅSXüӣ̛[|tRׯkΞC[gn#*G|+w=8 _#k/GDGZ]r3cauh g:o3EնE\A(JwAƧOSf-`L0[$?Cմbp[ZOeVX0A!*bF'g;0tbE@5v7 u7Rnē hMᇈP,pcqli?JdBw4&>ޛ& 4ƕtE$㱝c'k)j^DX25JIwb^\7E˙"qzفj[@x.Lk/=O}9 2C=PCߎ$iH- @h kPU:Tf5Êř"@[+>1EnI um D+R,GDfn:0aM (z H$C2Yh.8L` jFN2A"{qbcuF'?ôM#%.vNIb9McB1$%0H]Th" dPz:12Q<|ջzsu/geXe3i\BmL̜aǫ{4@h~2ƆzqfjہUUUbHg HV6 +a݅>ӻzs (0atߓ021X,M T - vBk( 8!fv(-?TU8 w3C `ph>&psåb.K# |rd+WLg+n&@y?k~t(P_3ќ0'&L!+P*qjVO=2έ@Uo rhByC.nbc;fefHavumcSXüӣL2^i4M2B-L~{ny(mx~#_ ?ypnQfz#"( m7gZ03> ]{M}s~9S8N/;Pmkr^Xk_&gk٩C#իqTFG{arw㊥/S9[hoiMy5#G$"{q2¡&OAE$hz;J^uW^{9"B"% bncC)}Iqꜿ)_6TۺIDwʱv[<}A?vdp`0-(U^Cs ("@s F beȥrbqm}gRf$TmoDaM*OPdkK `Ï"B:-l2 >/fF Ik055̫9=$"0m6;f8~,]G"=\6W_;`O/ƦN5]c=\=:ֹP,ݷ-wbrx(V;:oj35ڟH@{gZ_եŝtDZUN4046#c$IrԼ` @$&dFhfqOgAŝC'7 ׀2M j y X6PcU\x;H";O&F0JlA@o7w;' qGYMcx>stC:x,W_x ׯT,Ω̌` (`U$Xrvm7GDPUKFbw;^IZ_ZpFC/n`"@QڿzN _ky`smK\,nIl. 1<1qX,P,#OIvdžv71Uz)t[&$ax|]X^CȿeAKXpSh>ލb5$ә;?%f0.3I36tQUw SbpGps3qFuIcKr\Vg"BXĵe$iC >3㣦7z_$M˖nk Sh=h6WV" y}TE2" ƧOFr]Z݉g40M jOPRm^=^($7Sx)Gt8͆׏+9w~Fip>ŕ#r{nKZc=\=\ fWP*5%V(5#9ءW-+>+T*;}@Qx9!)4E/N/;PZw( m(pX $OAXQ@DXPTհ'RFqF)P<"He$nk^t"@,lX-gNi cuk{gKH`faC=zcBvc5UfDQ HEMܷu_C'N |^F+  SI\ye\ r oUU 7afс~ >3"kmO*74,fDQfM~ſ60WL;^Z3l IDAT۰ȥfD`9uģM͠??iֶ vVs$almm;hYTeOzz "ՌeRD,O>Ξ^,]G,6D9\>oK>u&$"(Սm'Sł!nkuE(m}(vylHZ=o0TTȏ>³_({3 g Fыj[.Z_她Ԩ H"K0"@E)Gmq4 ł3cq_Ug_Eo8~@(@yO|B~tmA&jA082~,\5~ʶ,ۛ: {nyæbU$}(;ݎ3pmzcBgX-WsQ*E "͊ f/T ĉ3jC߅x}-,gr .ο\6v.ǵo40=0=v"1+ Q~JcV^@Hl  W_7LnxԂe,T,MQMhd'v@#d1w{k &a604bW EӪuTہ>"ՌeVX+tbatr;z<`@;<_A8籩Shme ya=\=:fH0,TO twct-k<GD'SpDi#qwInJXBI.TB4F*?C qb8STUmiŃM,^B>m,T"NLjvo)"@033(H`qu0rᆴN ( MP[0`%Mc\O EY#"/s_{pЄ DC#hu67j HSkE<"&OEgwj#bHP+@{姎 m7A[VaCx &fy_8sT IaDX¯}p60{ 03l6;>]+Hc}Q4.z1u,nOCַ10:؏.pEjD;mnc34 Y~OA $n}cs`m`fut7/6V0 T:n;B><f$@& 7 v0HL.+LydX.-H`fx\Naۜ!Ҏ7Q0lZwS|mV |n'L B[{'^oC-~QuB6bF&݉t.+hy136 I6@HҘ]Z( YWkYrD _{=z[w"ՌeV+t(yOLׯ ev=(wE+<61u?~ S\wG;&k9zpDP4u%5B7#֏$?R5M CD\^I'xǁ3Eev^q֟Zڰ%&t E_W'9Nk[ 1YeobOeVRT HR~ceMn(0a ̰혘9utH0A$`|hM5M&6o`faaWI+ n\ & D_kzÛ1u y[@O0M)"8+ŵ Ch$Dn>EDоT~_\#{@"@T(s-N_ Mf!SF"azt>oC*- WתM,o4iwmHdr*Z1Q9U𞷿^t[v{ʙ"@VepST=ttGE0^F:d*auwIgnQ](_/K4t&{kw.퟽.OEmTGeOs p[-&7aOhcn߇3,f3rnohd9\[Xq&jffIq4HoA cج'?>i5 @dDz9zŹf(J>,@40'3l6T k(% fvE@4ʑ}-EPUUo íw2<,n\Kd ˭IMfF{k GI.οLsN3O(?h͂v_ K%6 ''V0OR˼ӣv]H(d<1b>r(b`x흝X^s=O&Rꟍv Cŝ, x ;O'%'%nǧ Esɒ$_o[I7?:8ÉT2i*pSlLT3rzT!%^^PЏ3Vޡq^t̹]~n@}?[˼"@fq_W'~ֽw-olUd׃cĈv|(~Q4+h8?/oKvӗ3([HD[\) [DL*W_|W/B>wbJ]x[ӧO&~@D@S fvK7_4Q0sdKUGe$ȥ/MM_U~[~J5F:(:^|X]ZV~" "ƧO@H{zn{1"4M6Chav$uEQY (X$6D& ՛T  /֖/0s_XxgEw<<ȣxGtODaĎ ok bnyH쯷A̒(^[?1P٬x\>ccmEo ͎+*e1@@$#O-NM]NgcB@D A8}!CпE.A ]}4LP!̌1ui`Zpj| >o]%%Y*bdCʔD=G,sv%ER_q1'MBy G#?5INgT*PR(MXU5]}3LX*pD0 Hy>:E==)X.bi'1 ?z~?Gp<56Lգ{|+kdjp4۬V_/d&,Q5f, $ fxwcyi8i3"喙!\*>7 CV5Ҙ. D6߳vm w}mAgN7;xS%"۔d`Zo~9]ntC,I%ʎѣ(D&U9fNgSl.dےֳOHx,?v<[O6+~H//{5An&?οvQJ YQM,+ [}OlEb3s?:nvbNom@ ֶavtRWO<2TU3q,& ǃcm!'vjW* ņ<`lV]{cl/( V=g?aNOΰHXF^7M%aɃ≔He.|_q#Ddinva@e@UUDBD^r8:fuЋbw`^o R8R鶤?j<@m"Uߛ7t]^,+5 qh̲mj.Y _Enr#|?w %pҫ(xM YQ5* $B/C/H*@cBGݟ^y6Q* rHn=L*Jܬk, $Q4ȓGUOyLEi_K%hwڭhqdž+F`"{q}Mͅ`\R5IUUŌmB-JB)E0ލCNN% 5J;҉XK7FXy@O:ժ̌`WI4TIDQzI_ff 6m^?߃R>x"{qt kDNXlvhC "jBsgz ۶LOG؏#"JEDBSI>lw=(pDt6TP%=Ѷ bC}k k}6( k}-MeJ:>{Wc n\V8{<\, ,*@Hr:CYVZcn=8? N#E ֣^:s(چ>g;~La$QP?lK#XV0}A0\˅&O)$ @oⓏ} A熍ƥ ~Nܟqzb i "/,s6%QڵYE4O((+BeUP}-n'!Ooo\E"aܸv S U+5f0I&1X.J/{=otux8N඀nv4` `7WSUH&p=hFp6}p8I2*c83r8 sPni2/.#W( rM nf Q9Uz@˯C,۷e8g8HMRװ4w=0Us])R)۟jo[Hgvm7{=22PU/DIŎFr AҊή^l6s˫l?8Z}^LnF@w4Ts+(KvNh 3Nڭ$2(C!~ 3d2zܱTdhsmj)^@;V?-T&{j2>ilqp׃'DUQ) nwrU!ڦjEgw/<^2yFM&GV _h"I (䝉Q13Z<taő:Sj(gnII㯾?ӝWc0JX \yetbbjtsDWb1-oxH41]({PFmP@p{ \vHՀǃT"~_u{:;01<Ij~H Kk;12[Z09:fs;?g(ݲ" pڬp$~O~z{b@8f"{q.~?D-? E*2TUC5ihkuŷ"UU;5(^v@AϚΓRӟQګ'"SI]ph[^Ě^ ?lXvQr#;~Hz]?\>^""H݊O2->PIɥӐY^x>4 QeK, rI_>=5w|djZ[ؚMDPU᠟0/'VmkfC\n7IrK[դC-3QY 0>a/ǕngfHD&7WzEex^_Ǘ}<_'7 4 -/afzzz`uH@'3crl.[Ff'|. \b1D{՚7<^uI%(>Iird= T9 R׽AUUZZ@ dGo!0{ۂf"]lyG8VH"6Vމ/CFs'Bp'W..fas(JU- |q%m6W{:t67K_D !" fN\#,+;kkG.A!- XL ׈Pe,m m=!I}PeI:[(V2OX,"6+yS tR@8a=oӉщ<d&GŢBRUXc4,l.!0}Չ e 'btj.ا]k]Yy}y6VP*w75vC^pb kOnIfvsb`bx-a>w@( PY-"/^_~1D¡ӡB؇#Pdd ]466YUi}7 k}=_lo Eb3Ͱ34t2p`(+#qI#;B\v'i<fF}9Ե E-"ζbShyRF6H6E+C&H(/,z^ IDATn,7r;Y%™=n\D]BQoeO$Kd從k 4 ̙GDPd`X"A}p ݎ81J%>}NOQ+`r- ضcfجV<0=IWXҘU7@?VUFO Dp9lD𮷿 pؐI ޸7twus砩1TV哉D 3ŒܳFPę;#WT,QЌo C#P5NLC/K3:@%~<.'NOa4b_|PD1+}Ï3Ur9IN X] v'J\yem냙lnelVkP((v9DA2Gȿ " jQٍ͹+@$*](lVk3a De$J?/;O޶)EO}n9M6S\6KsX[f8.Ȋrȶf'˹bNa=Sl%qMWIx!n:(w{Mc ZYm2L޾N8{"^㽊~ Dru_ g~տ5Xg;t }W* JmmЪqd(ʥΎTj 4* !܌$0L[ 1ֶiVNo{b@O7F:il-(qDP T([q?I< gߏ3p"ascz44fh*1@l.|bX.TM&sGڴ|u( oK E-0QA'̌5Ño;U?<Ї^÷?3E{:|9`yiQosMSX$ɂA c (2J UXEu>vmvEA":%x$CgqQЅ3'5?zzt(*U?.%&S#OmV9ޏz7Pw_?dYF> 7֊#*EX$D4L6vi'@0 `~e]i/3t&ݺwSY8_EՂTuT^[-WQb.9C,# qzfmp:wƉ@$(L5}h,1/r zM't.Lb*fK_PSGXjOF? 0R_^CX-ڟ+NMp:~J|9U~Q$L,Tx/ɷgh(v™":Z_$@L mnWz{Ì+$" OBxׇ@*o AT-!#߆d" %$"D .BVhxpzrY>]r_gUUk"ϧM4aeߋS g9*K PUUM3xfrl" .uH"rF6(cE$bdTnS뫮z6vۿ&G!BC=dSNCT"@ ʇ UG{'_8pFC/6͍5ח11:qb%DcB#}5M=5^l7<>I` nGlv2$YP\|.KP^_ -G a V6PuH޾.L R7܃r V;UMrIVX((j*Y/xGb.9hp\._@ga;f@A v&FH4Wbr;ҊΞ^JLiG2W9MӐE `roKjUӰ@p'Q˨`C}=n{U xd0eJ"㲓羽s3p@';foЍ$็dY'iƥ&g{K3 aHp'{qwTaZCޖ2i b@bHЏl&CnֲH6@QT,o b]%?cCBeP}l/'Ix[P|m7<[ {oܒ޼3pPG 7ALuÆ/D*t8:51ǓӊqAtSx/A p=!ICmǑL*$@EC-$"Ȳ5DbS+TtvP vڭO,,Lx_>&)43~?#M""˳(*j[Mմ33V Aq@!5EM/<hĩ3kiIF`YN-HOS{?̚ m^;UDX( E翍O\* 3N֐3zq@v K} {ߊ~%A .[!EEEU3x-8Á!;H&bP+! UUچZCbP-|Kj߿W6G(~ENj%_S~ODX$lV .}g+n'k]8s`;v/~5x^wj7dYؗDQ,&~eM$y[Z78 EUN&/lnA4$bQ lmnw^2:Het?jL]N'NOUnr|{4}?(aӅ{-pFCΜǎ[x,x<^hF9d oH,QTo T:3ʶa'9QՃd3i*Hp\B(l*VLb$VVQ*uG3cpm-)Cݿ!zoDtxpŧz?[,>&։3p`f,@<}=N(dDA@&o~qǺrFC/Ȏ{rha;9,+HVdshI:3=q)HVv;Pվps^tv`bx(roJSTOI!$E+9\|q:QЅ3'Ʊ@\:$@'5bfYwu0& 2$J-;?zgݳ ے((R%Ya- c+Qy-M F$D&4;VH3S5>[ݯnWݾ57N+CG.'*\9#ɢk r09DJM bx(b8œ~@9\p Cm-}"ROgƎDMj{]gDFDu>uD(r'),tqN@~l|)V E^=A丮3t|tޞmT匱qSމ&EVuQ;baLf$ &|{ 2c-FW{iGTak;3k;s AcLCG&CдP^7LRXmdx6<$3Yt@=.*K3m-v7 |3B OHkDJ:rHg$x>ADqz/~zciE[;  f4quW^-74FU1+첷^5DcyQ*W|r!tUo>:4BTG`iRމ# m]3Y|ZʵJXlƁ*KO270jiȦSʝLXDq(w "uߍGV6LX fdžbxoAc.?q/ tM{"ǻKr,04Cs=0BDd R8|>Y+˪bx9D* #X`} \b׾~ʕS6qNH!Jp Bp{S CD'5AQOzaPOo< ꣁyw]o_sSlXTWT:#"Y4wBPXoS(sc c9v i H[eܻe+sLN׮D<5J@[k{Q`:tMC4bFn͘zuȘ*:PGǬ828VZ 0?y`@rUӴ{:1D4k tuM-mm̡\.VoFDpÃGQ,)Fι.0/`׾~87it2Ik!v*0!FgQ㌈ ]XD" Eq;), \6п!tuuA@Aμ8w;xˮo{ 冦 @t9#b44_s=M-Kea;y^=H " I7n޴e2-7|:IAgfU*b4tUf.Jcڷ\sIE/$а8rr_7ښsX-4Iv&ƅi?#F7A"cJ4 ͧO!0pd9?*@}ݝд a"Nwܽd,}-#蚆i`tx_썴чd\2UtHayaeѡ~>]DZv\>>Qh5<6X(ָM cZ:iJ|dͦ~& 2 42<b T 59:Ǖcђ6tONm: q*7_w=PwxDs6GWNBhNlkMek;^"kLѶ9w%Q2*lx߸z?TA έ[#v]N}8;I~J&] !R+L 4Q,/L2LSWN0麎=hkn-LcxGsb߮{DA_g?y ]9B{S#A*NߊU])&CRy/8|Bt{\.!Z)cϮ:rbفas~!-hjmb2в_Je 2t!NrHq!G-EV{Oט+%ŧm}HSE,*C<|lm˨ !PidlR,hky8J.X^yB醁N446X,Uֿֆ ag[1FmcaCʤ;GrbKu:DUˑN&cl bqg}Ή ]ip*|ﮦRt0S>$C utbl}뫴s+hnnFORDq7*Fvq{G/L\3cJ!MfyȬ9GMx4rUٲwN8`DMcGap 7^w5^ߵaσAq>}|_wSڂ7BYe\BrE+mAps9G{kKK:vk;7bx&@Tc7fQT 3S]5׈KkڜY8~C*di!b$Z[[?Qnh2t·*. &bu-FC&=of\⃞ F$ <:"tIš*:d0P!جՕуDÕ|h 4DK JbmXI筎! n|nhjmC:HJU:-p!uǢXKt듡1F>Ru#g54!1P?| Y0eB@جo6rLtD0#Q2Lұk}ZxLx"Im]uXZC @"%Ǖ?Bklaz&9#Bg0 >kpA`] C utbsR<]=}8 ӄt|!|75m^*[1FI)^(c!ׄ֎Nؖr@MBuȤXr"f:7zE"5z>&#d"J|pخYf܇d1UtHaa`hsfb ϠKWB2Qju-z/XvB0Mw!Ѐ$(30אŚe} %$O"G U{8XƗh d :kk9|H.#A*mWo}?W`,_9-9 K񫎏qϕ 6{nx^)G}ݝ4Mjϒ9 /ѧ8 [1~FGFN*Er+T!A eCG'w6c .@\sR"]J媵TB2iƦ446V*edR0Sm]T/tsy^U`D/[~i 04~]_Z,_a),t!>}cسU:o} y|q%bGr^sLD P+FDhi@$R!sd w=nocL^E| Qg"N1Cݿ1,>y`܇d1UtHaYl91>ml"4V@7 buTTw:1/]TkƘLCZ;рr6 F1bayO7ڛ0!>B/L2v!"i 1鮟?N*;S}sTb Ф7^c܃?p. yBx.^sqnh~at|m`~cXl)6!Ph~PJ}4t4gSڼ! TA,3Yq?"3Džy}\ !Rxo&OLjTUyطA=b B4 fRJ'\\^`{.ccDOiMqۭ׉B~BN_SE,*CSBm[xz#4><&4657Yl\{!X* UcZ!DMm**էX k!L-ƶ6f͗}U_H4؏/|-@S`T66zolB]? ]׉@d;nISdb4f2Lͭd\*c[g[utfR_ScVi fdc<~D53tR( >[tlhP4SEG~I!cF.}GM ԓ#QŶtOogBJ!D~>/DVH$SZ4 ?l)!ZrX;k ~Ζ^?+}j;u`Cw _R"L*:PG,7eA&uضٟf0 ~Xy1}gS6/%@߿01ƐknA[g7*UʓA3C۰[ʱ;rB1 RvDĂi÷9s׿'ubB@*:Ίx)Jwχ8Mll9ΣmF9AG+؉3LmݔH&Q*&R@cDw{25𥳐zDAj_]c5 #jͯ|>IŧקSE,),  m8ص5l}y#S`zBe7S$bquWqӲϗR :!P*g5HBu]Dz%]hknAp?""\ !< F ?135_ţ+[nhAj>&;^nk|XiJ"F ~;;P8YLRXCSEJDo:[ Z?Yr\u-/WU \ cFM-hjmUZ)6>HkW.G*f8*9Au67 Ne 6Xᕗ_,>>ř*:d1UtHaYL/=\&ˮx;ALJ}^բx6f62VTlg |SÞKfF"hF2Ǟtf@D\>GvϤW״M?>QDL Cпg'}閏Z)TvfT!A-:snބz{ 4(Dm@ lw~<4^(_!h2 @2AGB~61e}BC5 e|h #ȁ7pWM]Zh j*T1g,H`eW|B> NB@D %ѕ#ێCVccسkjBroI'tkXW6nDDBELXvmM}D~T!C WTH,9ab!ز Tb+sQiw6Q7̐lg!f$BRS-Ju&V̅p3r?y|6@5J'cط5|OϓCSE:T1l|| nڈCvӻ=' bA/ ֶƇ(/[J!D\kLӐmQ\*v38*M n3"@Tov XԦ,\ۢ_|_L*:PG,yac֬ZKEs5c|d,QӴv<V0L""3AK{R qCO*>,h)wVnexmq(x'c`_{V*'U7T!C C(Ɩ6 w щtD\w)+b6qے4:{9G1?qR @MӰ- "@15o*Uo/jWO OZhna&@5t l"Qג%5ࢶMmDe{eݿB4**"iR 64 ͭmFJv]} LàK{@SPSYchÞCDj4`Ţ&[F0Utp @*:d1zcNl"֮Zp<rɫ@<\6ڶQX&+vV6yDhB,GӇd2M*mcZ8A:Cg9nt:pf&Zۨ 6 BiҐ~Dij!KvnvJu"aT!A6*2G T>-Pϧa9(VMCyxXsq,7 "dI1՗妡?GfP:`)_M` 7yTNNZha&@tbΪ%]|kߤ<*q}N>B bB^Mc&Nֻ؅%joA{s^S]SBDM@t X=S R )1͸c纪6烩CSE,&f-Ц60$c& ]V{Wcb_KڛS,bn+` %8c'БNDw|s]ْC m^-PG,Y=ؽm r&vtsA>~5\T,I{ӿjfUm!Dr ZJ򾵯Uiۛ2_v\˞~@XMű}ẏCSE:T!u9ql(^~YtI :ZM*i'\7a :d1UtbR׻?ޏD6'*9 \ .0uDϲF&+Hf@h05?QCwm/e1Utb!C۷ w D\1 .9SŲ{pYwbzP8p1v |jq~`WG<AC2[ yIԮCSE:T!J]6< 2YLy֮-9L勥}xξΖHx"0!=bY?gD!1߇W6o SE:T!jmS?cGڨ5n\ژyP䪶1OA !OeӉ/wSGTLMǮ6_"6ߧ2,  -Y6qx=rrͭ #09'@ŲG󑶦v8,S @l#C0G'}{Oy g#l"lP7> 4A+W\A b9"rڹsrB8Z6B@TRk;~x-T,gcNO??m[?lNCSE,6߯iF d1<׾DmR>_lL*:PG,Yl^.֯{{woG*Dymq/ulhdT"9#`AT҉7} Q^kk&xeSܭ7T̠5\h, eΆt"LmXd);XTm=w3bDb/ʝ*:d1UtHaa`hI[_݉%}|!.@0C@yxrYjٲֺT| `=|_W1B8z<9TZha&@tbŤ ]=~E B }.炸BhGj_[XWsΛ̋91Mc|Ω6e "FW>{#ٽ㬏9l*:d1Utba&@tbŤ#?1W^|]t6d* L $.8ٶ[BߐNיkM8IDATMW/>z1Q{M׊;YLX P!*:d1Ut7+wwQG[GLm1"9Yky>!S>e<9BеCP>kcM`hq|ȡ>&8*:d1UtHaYL*:.ط^ۄv,]HQ"0\&uO:xs!k[_z80 Ls8L*:00ڱ 7>C1-pj39kϦ/jYہ f}S\kI #@7:B;' 3#lYgVJ{zzsABDD7dbjB+ /25o/TV!c"F1tϯF}'&?l~m=+zĹ9x. MRպrܥLiiH04:(c`Ra1؇n8&Fj:d1UtbL T!C|A9+VE"& B,s^%6'hT 3okɦ9|ltac #NG|LJk":d1UtbB@*:d1Utb ޝAK/ @\—0Ԑy06 =&f!C4 :i0 /q  nLL*:d1UtHaYL*:d> y y.]3܎p~N}".3Nh@*E~d^ajLL*:d1UtHa?'IENDB`PNG  IHDR\rf pHYsod IDATx]w|UE{{) zĂ"*vݟUwX{/kY*^BB^^ڽs~%yw>|̙sL=3o @o #J~RR]y ǿN 9)0(}ɇtbk/BpMQ @H=q҅%`0_] &`Pj\"!cIK)59wf $!{&@'{$H@AGbԣ TvUI Eީ QHJI139u5WmE x_Pp=tsHٛ5!dP,6Dd!"IÚ&*$YҢBb維qB~@EW![w! E1MDff""ghgE&f%V@ZF\pe~Q(=Xhk H%Iv;!Pd&#U H3&T]bP:M\$a#pɂE{R'VzCj\JM7>s5 2U普zvD4O"0 4it\qd0sVe\@G?Q:mA҇ }'b{xw=ncYUT3 <^qyƼPap`Hp%ع}#D:@ڐel]Dz H"_ yX``l?4E#9>$!x`ZD[5ffnqIsOB}M5 @Lc] (DJ*k琔2SBU(?ИO_,у.3IA{ ,?M@Wgg o8Ԇg^cI8N12kMil  CIΔ$* °c輋#=;ɅlPNp(ׄp K`!ܝ!0utހ0"RSG3!8ܓ͌4!A"$= k06TQ^tQAm IYQ?p zqs"gWy,6iB#ICWPY S[︭n2m:^yo9tl Ykl3 YYT5q$\,Մ(b0LÕ^{ a#WAG8$Q_HϽ  H &\ hgMhKMrs-3pI/CC} /p @D%OA8fDk<.z!10A0_e~ ḽ,ɩ130SX_EҎPHX!ۣGOz/3C1R51DgvpFMLf ```eˢ3ϻ#p?jkjM~ Im\f g_{{<4MdVUB0@ڃUs t,I ̚`ƈQcEWo~cX_=6M1(Z@ASw?}8# 6U{@ Lؓ^JDJD"aXpԫGrsvbS=B}̯Jl i: ,_vk^'_zdh>"zܮ{~#LXόAWy*!(FL=uޅdn1  !Ulh" A ŨNe0qq% ߇mvZ<1,j%" K(9/WU[|&N՟ytʼ3a33 㑀3CVxV07$"2(2o\y;/^o"I@_VzO0qQ <,i30 )8 Ty,5 ]̚`?,'7I=Boh?1.yJxN8dѽG/hAdSW{4cF>De f@Bq8HNJB~^.t>K艈w_c f*KVz=9K@DAV(/MX""Y`m1O6'7`0d5q;&% !fV$w f^} 0vX,:ꪪ0؂X"EW~;g11XQdVv;f_ffY |& dBW_w^jkjBG\0|=ە{$nV去I6$C$QDծL;. &.&IYګ .a0XxUvض灶?(.oρ@ODŽ#aEQSay,Bi]No'S yDA&B}M%Y>P7Ǩ՟^}C8l}G By`%. Z&#̨ rxq['Һտ13]Dm:<̋8t48٧(5*̽=%G_>LDFU3RQdmo`e:mvlߊƆHcvx'Y6&9*d$zjWF| )t/9HD9w77toO~n.=$IROMjB `hUUaۡ%"`0@eȊqPYYV`Ab0dyDt&JH&?~MzW1g8D koY'7bGS+.jr>PTLe娬jiiaJߘD$$I( 8[*H޽{Q߾}08zǒt(7N"KDbM2ljBTq[|?wshX|?q6} ! rCͶ@)јmB77w} ޕKNFG֝G #ӀYܻWO֭;I&ifQSSeT\|PSSs|(ܣGV+*fρВij5dy3?/$ lY^~Iް~]9,p[Y~I$>̳'CbDHݬӵ@iY9c3{`8?~,cPT\MbMhhhlWVGЅ,7kqQQ !lpU 1}Ԁ:7ذq3[Uŷ+.`;eY`HD,IDTKOlkxJ/gU̐& 5M <&[_}KBvɤ;gg " |YiȠ<ٔ{f#M4:u n˿=h, Bp%33H´g`ˡm`ܿk^DOIIYCve Πib*3e)E``Ff~8 0ytA]m psF \'6c+ʻ)%-c+lx@稬%.8Wkn "4aC",˸s,wl=81?P&Z$$kaS5}܉7?ҳ#N#:(xgU$#m3>4q466W@PӿÇaп?lݺe%@# q$IH1~fƅP QkK+M}ͳ?6(:pff,^9~M7$MB| &` !ȹ$Io&S l6[~$IVx]Ru@4jhlbp7ٳGDdgEkfGo$ȲF ldzKkV,@Zhc [?JW&4f#v9 꿛NGtzy~u|75t@uu-L&c3 }GybT w]S|?f3Zf456EE%ؼy+ۤaf$%%a1=j$} ==In:"BEe~ ;杊I'@QBt"aM;޻ 0nuFN=ua~^k@;f lůEmm]MHv "d;&4M1g٘wyXpٹ#Y'q@G&` 6!Z 6:j*M6:OEHMMg <ȧMP]^ھ}zxW6(] @-ʫ' FMj} u఑98 $'# ±Aw울t>]qu\7|ZncP;_~7/Cݩ>2Y,V]x>sytǿGfwlCDD\: Ї2mzznwd0(8f3'"jsqilT~2mVi|ǽu$!4l:#P\ߡ138=odj J~{q_} 9;&Ӧ@4~`6[B> syE%XRmwW͛em{N;u G|=_ 4xΜ`>FQ`ť5lznݮC3Aѧ_8"KTC]aG<7m⃥~o}\DeU5 -\p1l=a\ACC#VYG^$3M)'Rffo1 #F E lY+\3睆+VB8Ɓcdb,5MȄp;| U;~>{4B0xMվQګ"aժPw_HSSS}=19ݞt'MS&E*"fÎ݅Y~5Kݺv%W3z!DdpKڠj4õI"lxk- `f"-V53 6b0>9~4 !kwOr IDATX,`fKNN?r#.w߻}/qʷsHO{Wx k h̬(M?Y.ppqIU/@}jjj*!d0>1x@o3/Y\;wO>w lήmw=ȷ?f暺&ӭ/ .zOhiL &Y5 #\XG[o8oqkQW_O39 D4X7""H~=e ܷO&p,L?f k }>|?D "f߰ #;{8ҺǤ-wFkh(@^pܸo5c&Ytg}p.zW"۰m΀dL&|ٗ rl͜y4FszI"=<>\|y'3}ݹ%X&˫깮Y? _nƛށoq'ɒ]՞.W\{q)ʅ e=GZ~_qcS[\^{yŏ<|?/))o. /8'O JW׿{S&a)'af2͇%DM?]hZ>³ utg0^'υi,a1VUDG. ]9lwfAv*>Nr] ƎƎ!m|.>XB۶-[SqA'Сi1GA2l63++ WC_ұ8,V]yuFN/TOi? M:iVu-EYV 8Yis˖+ 㑜D8YƢ+:PtTTZEvJDl/B`l-GzЄ`%d' Cpc0%w{ok;XA}XIJfgIdY~jW,L@_ye\Pf_f'|NӧM4t}^2 </YJVCYg RS1GOfも}a޼y+5;\׮g5.[,TVY !%@fuOKC^^ھc4M|mW}E+}>4߱+Wf .+]mm;"کshmL[fڻw?V S74a8\{ϷތӦ3*דn~hH*shš>7;wDž:035՞dj$icg"c~%"Yssh\?(_> ~&_A,cڴӭ7݋S.ب5z 4mZM]*kB*_/IϾY;. ఑lPqqI㣏=[l8TeY5W_WZ{fqy{ h-/ۙ,2L˯#>O}dѿ̧Ck.c03jɝP&{TjllDccki+W;u/֬ hAVV?\x9~TRZo[PU|ȑ#pܬ>""r騨}d^eu0@FYUCr/!YlڸHWc˞JqMpw\>|_i_}*+xժPT|ǃ \I:0m fٗQk<{➇\@TԠէ<7ﻡ ϥlɥ{}_|?KNQ檅PůVO>}/@?wq3){vy~#7܄ (+㫿8fƌG,и^bOcE}7,>f|}siC=Gj6l(ΘwKZ"BYY9`fNII\!oB<د)89A 6Ee0[l^: |5 @C/Ǟ«EMqi/8li矍tfOg^l 4GO/B,LPo<z}" b@λ/몁`5W_ 3 sO9)<O>֠ a>Ѳc郓O>1-}j۰sp\vӁIMxǞBii;}̲Hcǎ'w .ai} xPVVx \WWSӦk`dK&S+׸FL^_@j=>O>/Y֐e%_>}2}N;}L8ַK#?A )Qdf>x,b:rg8ф:ruH?W. FЇDUW>;sIB=ScLMMUW,)(|٥ʷc @_}o9l߱=ޒ@.{* .u^:=UWS'8I w33jꚸ! ]Q0OO' ˞x^|u465=R+?Piֱ3+o3R~}}\! Y˯kbTM|O#]:fƐ!_w g;Cuuuks5 ojsE ,ׁ}v&v!u7b\r8 `G4`؝Fa(Oݻ=猈凈PT|6}#ǃ"S'cldfv;+ue5jjjѶ]:ѷO&:kfx\w@^y-X,vyvAyOFz43{r@8foYr!:+]0PpҺӢ^J7 |(SnC'2 :dfk຺:jn6֙m6mڼ6oeY)==geQVV_ի'!%9eE&0خdXlz* jjjr_inpd4yt0eD6v{lpccUVVq}TXXM.~Gh򤉜=zT6 $Ƞ>}2!J+kYڟ\~!` IQ{B#tکsp )))3u7bэ53g*砖FtM4qk HUUTUB޽RHFjhhDnWtaDi3fM0Ǎ5MCKinl(fc歴q>u\u_,jsCv+`;Y @SUZabO:ph W]$"||rG>:t8a|2*;DV+*+Q]S ĭ-dZYU${]$AQ6 iݻSٛCARiu \B}N z_7~СC}2iii>ef2:t0 :M4 9C:.?ɒ Y!K2) IH8(O,08mE_l& ] .:ݎ iVڝ.͝{2$bpgcG3ԫgf gmp@`t߬( ɲ  HD:urD?oipie*? 3 ]\YoB}׮ÕW,#bIկͬ)?^7ZQVY[{@xf&j@D8p-Yw0&d$ Q`BYe]J3Ϋ4C~Gx~ŏ+q %G_>3PSׄچ  =DzWϡ&LЄ㨲5:Ȍ]Q0v ;v],毿v=gBM ]Q0e,V{/Q?!cL%h6Y+JmtY "bM`˪jM: 4^=pbdfZu}fzNj 8jsqi,V[҅􆋰fX3T^^qĚG|ņj9KU]Q0~4srr{~ŮweHMf>-wE„NUU|Wt=+'7nf|p&*sۇ]QW. 8bPQQe?_y]g ?`f8vVbPt!VY~\;I, >EeMW5v9]Q0uЇg27ߥK`IL `U֢DDSG]Q0<pA><#XglX-3@B~8M\R^&pYW@0vUAؙ33@Bw8C-8gY D,{Y<+vlvE>h$+pb =afyUjLG|l[ţ(]LEb #=l~@,E2D9{@%^wE`.<paaްu7lv=GK~Ss+,s3ͭGz+JHXM~nXm 4jnv;ĹtaP}W ]u}wHTPXj>i4 RGB *)jw$\Q&``ڰf.f  6EUTm 93.kJ[^Yw퇦iq8-6UnWH;y@g~t@躬 W4Mж{멲.V:Nw>m.  %"44xovs׍NP375`y 'HW+Jw(}ETVYFbĐqH3PhƐk7~lڰvsVLW_U׀ʚx3]Q08 '"TV7?öRU-ʫP[6Yv 껉cB0v)~^2+ 9Ԃ;x`f&伻$Co(fS+~^7rnƞ4!`y Mfvu%\\V)۟+Jw8o BsC<.SYE NI# $I18`Y jXdiB 5unt,,W0aCo`bö\MkhrˍsVGZ`j;xl:m$Co$5⻕eg>.8ņҪ=i۱3/5450`1{L?% q GOF;K>Ō:BfjsOϐx$Pz}#lrق_o_ֻK+hC; b]O Q^]O]ꛚ3/JD޽XxyҴ8 be |i/۵v-*30nWivz5Ƅ̨mʚɯiZZbfߋ+WPeY\"]C3e#mܖ gfWףY9*_z:K#8 $ vl^mע5zN?{?EQI%N!J+j>/̌r?XrG(p2PIU- .Zm @ Sq%7u}{rYu$'"-V^y~Z}nhjAiEMSzS0G.ᄦaߞݴQ_[U+蛟aG>>kh,r^OT8e)I4yhtKMR ;]:p`ِm3K1vTtOKJ^ep*(%|qEe( /fFn02F!$<>.q8@z}CeTcݪyonTUjcݖ|FWTS%,\PX!3#ƌt݄҅G@y |"3}DzڴzrwnjGB@1J+*(x̌4q( JKD&H#> Hx bb"9%O"3`>]#*JK"&4MCBTfF޽0yHYlqt:j ?N>fruΈO$ܱy=nXí-w|]Ů}\U@חG (,폈v&vEb4d E?e 0KotИ 19ѫagí+֮ jю=h2`>xQ'ˈ`peAO,QZz~) E?% 8l'.=>n64]4_06t숮lƎn5rjk>#Ơ~b)9%As%̏OЈo熮0wkZIhl@w$D`0Mؽw?TMsaqƌF{I~$(4$ZHsSwW`o))|LL?xv'Ci{,Xvm}v셪i!ɓ"˘0z$tfRD7h,wpvPC@^i]ĭ No2㙳OQcAe &޼789y PYSYP0 4f$guV5uqHKCDd%}{v];^qlR;t7p~Dbq09Գwfj'۳χuJ**@1q?)hɘ7wFGv\g~^9 Dl{vֱuz}|lڒV)S%@VX˴y)I4eF"ŜÐ< 5`؃Ahtn`=gnջ­W߽^Ufmh=c|td@B4_ڿj}CfƉA;W`UTjUQ^,U*;/?ӢEx@2[ p_غJu$cf4֜qJr='NP^Tj[ "cƨ"!S=__~g7Vk1_ @k!@3iDe%ODolZ޿{@+EMZQ%ѡc'0617R+13M| [U&F?NX޹NDg~E޿Tr\_D8Ù f(ض}~Fbuns, Mە c5o g S'}'=raA*`,]wavŵtHF#]B2a+DF84׋4ʡjZ\ eTЄtjfnB  l`*#EFP@qt`;t'Nn\jy1_A?fTt慠i|MU孊b΀ s.@3=on|p?Ǘ^y- 3f aN[ vFƲ |GISWqDA[ocWXWL"Xl?+mۘR2ҖkˡPnXV;l_ ;yة0=>h:1 0cQΩw_OLс#G!{K!"!7lG>+H ;ɤc(oEA\ Z&FiϮ7PQ8 uu]ip㸱3ܦBD2<Ƕ/(vյJLʤ,J4X63]m-P|8 '( cPl˖㾫 NO?y,H,=փޣeV#1d2\ f \ܬOR `|%&y$ Bosᙁ7rUpӆv"!XW͍DD?3x&Hшk{">yܣX(yBUQ <Ƕ>xv:6ne]W,?iڥt.`{bxӉIމTu tRAœd uDJcfDP/  yCSÕޠ"Iצo?#+J <ةa=HgBE#e_&p"4'"xY^2iچFbgDZWԏeꫫ0/Ǐ^9l^1`xT4/zzO ( utCL*0,v-y=>jS&cm$}#e| 13N өADbq2u GJ̌$=6@98sF'r?^m%^"kW</V2\7U6ٶB<w{W9[voʷD۶0׋L&XYHT"95L&Z. j|9Gbrj:v]Ȟ8/5K}*?G>1ڴ\WYo#+Wϓ}'a6op$ƖmʃH{˺s(o.b&'hp$\yapCs Qw/DaBe}gRֿ7`bfCMN#ë˅|GEү!\blWF) h$rt2ɩφ^둈fUش2¥ymMV&{02}" `kg ]Uo*XhMa& ~$2 ۻ: |9Oa"k< P=Џiѐc )=̤֋S?3s$m]5CWߕޔ*p p xgVk.Ok\)mY{ ScôT3# L*ld#xͿ6m S H%"/@c`( Pey /ǓG"{̌XtC\0$鱥*L鶛?@Sq*1ᅢX(K.qt ו~%W\M ͭp%E mPII&/`UUp{xrjh6^KhS{+sK M/;4A@oᜅ8cl)9uzqx{܄zrləp(imW2 j삦먮JL%&ɶ2 gK\xɩzOi⧳ ˶io$S%˔OjO!l]S?_#g > h|+V%tgp\tR/!6RME$ k+_VAခ~;a9c+++%(iHXS tߍHPǶ"c;p]r\GuU9{m;@"g$KS#,$DZyxS :~:5J23\Ҡ*olX{B irH{{XJ<ø_] \_vΑ燌y}t`.jinFM}ٶT¡`"\_-^d_+BU5u(TbL :9=E'{!@4^F^Ir@̌a:v?_ Fcv~K E"ڎ{\SBģ|xlx!o=+p! 8r3Z^@mw.0USvp%2A44B4$NJxf#F$Usqr`\4} ]}Z7]WJo}6zg+M.SjwwWF#C8]"a56= ce&EbO:m]J':5P T.+چfNg(LmWLzɶ,"-˸4tji%&Cmc[ 0Lc_;o;[Z3c ZDK S( tR; O4oD88)[>‘E,H)qwB](6w QqFTSӸwy (F4=5!2־cH])wƣg!.XV‘74VQ²K@O'&(^^MҏE8,LY( $V8`5< d  rǏ9:B@I:lhkV_QUU%gRW1s(G$52W#"A A @ڲJe2 f4֠۲к`MUJq\MU]oON8xp\E^E)y>@atl"#"˲e*~,37XEDFV\ 3fqH)} -E`ة "" 꾹y}XzW9fy@)|s7/\ڛVO MNwTX<^Վg \iBs]c3e2i$\ۦ'ʤ)^^(\Y}{|ݻj瀀o?'|vܿ\,UNap_Qmn߀}-14W>B4؁t-'+^NJe/hM33ItC6PJv]L$ܩLjN`!/ q}s+ faQB'%F8ZYMOTeFQĩO"fb9MkMcfS{[+54P:c㸃<\әI dٵUTU[Tl2w] uڶp(oKW-}CS2uz]w8̀X& ^D[4<>㼱k3BaX9NEEكe099gp%2 M-0$&!]$A…GČ` K6u"`>l4Eٯkw]yHU ??÷m ȡK[K +kW$qh{DM]4݀dEeͭm _FDj\<"B4^u'W/~`ӁW+ Ӷ̯'(H\}{軫k-vߺcB0_f݂=1CCB@(Z& ,L2_"=G R\UUT5P 8loZvfFyCӾ c^y  Scs+HNLy TVP׆VVؽ8MA"#f̨@<㋟o*̡$Wj]V~Ƕi`lw /'WzoMQMUmGO *k@j&IL4P{s#gf03 UESCtw[*P~Gj0<8@^}!S- RN A>8/LE%0P؄`(Q߂[\WoY9g1'>E r|" {5y>v.@:\sF&ޡ=*j =4Qn6K%QHV:L"hņ¿ϑً̻=n&"092Hwb=g_Dk@x-\) ͗;$,NSUk)sb|PnklZY&fv);HꚊޣc% ."5>}UjokVR!Ӹ_SՌ+0ӈp[̘tQ]u6u(`hOzL%&/_ spR*RR< oJ?(i82Iit%SϤ_v(.MMNbNTU*SPR{ 헞]V.:z+JH8p8c;f vu5Up:jxihYM<oG**q_ e򕲮+,oSgg'+H ۑ{@4\ @) |:jx5Rz*(0 ?~gw^41>Wphl#ʌ+s;+6f+ ]S3uÎ+{Ezν|Φ 9|64p]٫AӘlZ zD*ˊ׹5}g;37+[V&Cozҥ;v qt\Z,z @ \hu/3#dOcpBW;'<׿&'VΠSxP ][Dmw=^ Rzuxܧ(gi]S>xWKv1w8K){=566aeU`0{ޅh-\kwShB:\Ǐu,$y.!erI -41>7_zga;qeuݟNU؎۰[ ] DmN(ZD \ ` 9;t~45HR*B<0q:]#; ␩Sρݸ3&'&?ŬWN. `6T uW BQroFDŽu7[IkPM?='tUn7 J]ykZsH)̏M[ &pp+啮p ,}^QEǾ/v >*H.$9C kl&Ǖl9aU5M]X{9|q#ݪ* GGw% ]yh,yWbgrKشe;T݀JەBSSM4 |ih4E5DH'm`}˷7Kc/ĎG{g~ڪ*nh"!RуI3nJihrXS;>ƻЃ~)%vz܍˯ zғ+ 2>z5EʗyDaڷu444P]c F{TSjs[s3])?CkOm>'Qټ4yE$džйq3`^㚪ll *d4<+ost##R ^_ zg(4D 9eGC@kbX*ُďִ R,a=sVrW'ZXrc7epmo#ޛ/|mŒ{]ĤdIENDB`(0` %+'"zgB$  i^QrlĴ槛1B<4ocm뚅klĴĴﰣA ~p_,pllklĴĴĴT,*&WOD rllllio]Gp_HĴĴĴh961/*%}iHnܚkkkloXSB/H8&m[DcóóĴôHC=]SFrlkll~ddR=I9'H8&I9'm[DccóĴĴŶ[UN&!QC5\ZI6蛆llkkxeNM=*I9'I9'H8&K;(oXccb}óĴĴƶmf\  F<1'O@/H8&WF3llv^ZH5I9'I9'I9'H8&]L8yaccbx²ĴĴŶ{sh2+$ SE5~I9(H8&I9'WF3hmZEJ:'I9'I9'I9'O?,|iRklĴebcsĴĴŵɈsNC5BM=+I9'I9'H8&I9'O?,RA.I9'H8&I9'I9'hVAflklĴĴgccoĴĴŵח!  >6,RC2I9'I9'I9'I9'H8&I9'I9'I9'I9'H8&VE2s[lllku\s\ĴĴicckĴóĴ䤘.(#RD5cJ;)H8&H8&H8&H8&H8&H8&H8&I9'H8&K;)saJjkkkgjXCI9'm[Dnóólbb{óóóĴ><5-N?-H8&I9'I9'I9'I9'I9'I9'H8&I9'I9'_N:{bkllk~kSP@-H8&I9'm[DcjóĴpc{ĴóĴĴĴP)'#B90>I9'H8&I9'I9'I9'I9'I9'I9'H8&I9'VE2klkl{b_N9H8&I9'H8&I9'q_HcchĴĴt{ĴóĴĴĴĴd73/B90>I9'H8&I9'I9'I9'I9'I9'I9'H8&I9'WF3lljs`JK;)I9'I9'I9'L<*vcLzbcfĴĴòĴóĴĴĴĴĴ{HC=B90>I9'H8&I9'I9'I9'I9'I9'I9'H8&I9'WF3ls[VE2I9'I9'I9'H8&bP<|clócbdĴĴĴĴóĴĴĴĴĴóŶB>8B90>H8&H8&H8&H8&H8&H8&H8&H8&H8&H8&TC0hVAI9'H8&H8&H8&RA.mVkkkóócbcóóóóóóóóóóóaZQB90>I9'H8&I9'I9'I9'I9'I9'I9'H8&I9'I9'I9'I9'H8&J:'m[EhllklĴĴĴdccóĴóĴĴĴĴĴóóaZQB90>I9'H8&I9'I9'I9'I9'I9'I9'H8&I9'I9'I9'I9'ZI5w^llllo̾ĴĴófccĴóĴĴĴĴĴóóaZQB90>I9'H8&I9'I9'I9'I9'I9'I9'H8&I9'I9'M=+xeNklllkͻĴóĴhc{ĴóĴĴĴĴĴóóaZQB90>I9'H8&I9'I9'I9'I9'I9'I9'H8&I9'QA.~elklluɼñóĴĴk{ĴóĴĴĴĴĴóóaZQB90>I9'H8&I9'I9'I9'I9'I9'I9'H8&I9'WF3llkmǴĴĴĴĴóĴĴĴĴĴóóaZQB90>H8&H8&H8&H8&H8&H8&H8&H8&H8&H8&WF3kk~ƴʸĴóóóóóóóóóóóóaZQB90>I9'H8&I9'I9'I9'I9'I9'I9'H8&I9'WF3q´̻ŵĴĴĴóĴĴĴĴĴóóaZQB90>I9'H8&I9'I9'I9'I9'I9'I9'H8&I9'r`νϾƶĴĴóĴĴĴĴĴóóaZQB90>I9'H8&I9'I9'I9'I9'I9'I9'\M;ǸĴóĴĴĴĴĴóóaZQB90>I9'H8&I9'I9'I9'I9'K<*qȺóĴĴĴĴĴóóaZQB90>I9'H8&I9'I9'I9'k]KŻʼĴĴĴĴĴóóaZQB90>H8&H8&H8&SC1ŵziøw}{~{vdtctczi̾óóóóóóaZQB90>I9'I9'q`ɸvhWH8&zI9'_Q?ĺZK9eVEI9'I9'ĴĴĴóóaZQC;1>_P>H8&I9'qcQz[L;˻tcI9'aRAI9'I9'¸IJĴĴóóaZQxriʺUF4I9'r`~{iK;)I9'L=+I9'I9'¸ȵĴóóaZQ ~q`I9'SC1ɹziǷyhXI7H8&I9'I9'I9'{I9'I9'¸˹ĴóaZQ{vo ȠI9'I9'ƶ{jbSAH8&H8&I9'I9'RB0~q_I9'I9'¸ͼŵaZQSPKuʺZK9I9'cTBnun`NM>,WG5{jn`NƵI9'I9'¸qbQϿe_W 31.ŷLǽyqqsvziwiXwew|kk\Kk\Ks}ll^Lziɐ,}lH8&xI9'ɫ%430 Ⱦtcv~m{{jü;MJFsohɘɼTda[MKGlo|wp.-*µEȊ'ɤ!/.+ȷȾ5FD@khbȏǺN^[VEC?dhvrk ('$ž?ȃ"ʌ+)'( @ A;2k#!}n\]m蚅k²0-)XNB'nlkzaĴ?;5 0+% {flkiq_IK;(ió³NIB LB6>oؚklqYUD1H8&H8&bgĴĵaZQ% L>/SB/lffT?I9'I9'RA.mVceĴĵqi_% C8,[K;)I9'RA.zgPN>+I9'J:'mZEhk²dcĴĴvj21*"&M>-H8&H8&H8&I9'H8&H8&ZI5v^kkrZóecóĴwB  I<.}I9'I9'I9'H8&I9'I9'M=*xeNklfgU@I9'gógcĴĴU D9-zH8&I9'I9'I9'H8&I9'O>,~dkk{hQO>,H8&I9'ceĴjĴĴĴjD9-~H8&I9'I9'I9'H8&I9'RB/ly`]K7I9'I9'YH4v]edĴ²ĴĴĴĴ#!D9-~H8&H8&H8&H8&H8&H8&Q@-p^HJ:(H8&M<*vdMkk²gcóóóóóóóylTD9-~H8&I9'I9'I9'H8&I9'I9'I9'I9'cQ<}dlkzƷĴjcóĴĴĴóĴxk_D9-~H8&I9'I9'I9'H8&I9'I9'RB/nWllnȹómcĴĴĴóĴxk_D9-~H8&I9'I9'I9'H8&I9'P?-hkl˹ʻĴqĴĴĴóĴxk_D9-~H8&H8&H8&H8&H8&H8&RB/ktǺ̾ó²óóóóóóxk_D9-~H8&I9'I9'I9'H8&I9'SB/ĴóĴĴĴóĴxk_D9-~H8&I9'I9'I9'H8&dUCıóĴĴĴóĴxk_D9-~H8&I9'I9'O?-}ǵĴĴĴóĴxk_D9-~H8&H8&vhVóȸǽŵͼʸĴóóóxk_D9-~YJ8]N,~{iI9'²Ǹxk_ @cTBTE3ͽijwf[L;O?-{m\{iH8&²ƶsU{vo#Ӵĺ~mo̼qvetzҤJ('$TQLò˻{jyht平d@=:32.ŸµWTO ^οokd  :ƴz,soh͟C%$"MJF ᴮ^:84.,*~ƿxROJ (  @WL?WC>8)0+$#xb{bybTME8 =2'uktaKN=+pXpe^TH$9H9(K;)VE2^L8za~mvmaZ<2%I9'I9'J:(|iR~eeS>o]FĴ|noF9*I9'H8&M=*yfOO>,lZE}q²Ĵô|ouF9*I9'I9'I9'YH5v^xɼóuĴĴF9*I9'H8&M=*mϾŵĴóF9*I9'I9'oaOɷǸĴĴF9*TD2ȹó|qcʺʼ:84ǹ 31. zJHC${woPǹb_X9UQL/˽zumS vst3sdk-3.7.10.14+~4.13.3/templates/desktop.ini.in000066400000000000000000000000541461511344300211240ustar00rootroot00000000000000[.ShellClassInfo] IconResource=PlugIn.ico,0vst3sdk-3.7.10.14+~4.13.3/templates/projectversion.h.in000066400000000000000000000054201461511344300222010ustar00rootroot00000000000000//------------------------------------------------------------------------ // Project : VST SDK // // Category : cmake // Filename : cmake/templates/projectversion.h.in // Created by : Steinberg, 03/2022 // Description : cmake template file to generate the projectversion.h // //----------------------------------------------------------------------------- // LICENSE // (c) 2022, Steinberg Media Technologies GmbH, 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 the Steinberg Media Technologies 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 OWNER 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. //----------------------------------------------------------------------------- #pragma once #define MAJOR_VERSION_STR "@PROJECT_VERSION_MAJOR@" #define MAJOR_VERSION_INT @PROJECT_VERSION_MAJOR@ #define SUB_VERSION_STR "@PROJECT_VERSION_MINOR@" #define SUB_VERSION_INT @PROJECT_VERSION_MINOR@ #define RELEASE_NUMBER_STR "@PROJECT_VERSION_PATCH@" #define RELEASE_NUMBER_INT @PROJECT_VERSION_PATCH@ #define BUILD_NUMBER_STR "@PROJECT_VERSION_TWEAK@" // Build number to be sure that each result could identified. #define BUILD_NUMBER_INT @PROJECT_VERSION_TWEAK@ // Version possibly with build number (example "1.0.3.342") #define FULL_VERSION_STR "@PROJECT_VERSION@" // Version without build number (example "1.0.3") #define VERSION_STR "@SMTG_PROJECT_VERSION@"