From 842932c322614a9a53b0b2699c97275cd7b3df3d Mon Sep 17 00:00:00 2001 From: Chris Moeller Date: Tue, 15 Oct 2013 07:49:53 -0700 Subject: [PATCH] Implemented a MIDI plug-in --- .../Resources/English.lproj/Cog.helpindex | Bin 6812 -> 6812 bytes .../Contents/Resources/English.lproj/Cog.html | 1 + Cog.xcodeproj/project.pbxproj | 43 + .../midi_processing.xcodeproj/project.pbxproj | 342 +++++ .../en.lproj/InfoPlist.strings | 2 + .../midi_processing/midi_container.cpp | 1114 +++++++++++++++++ .../midi_processing/midi_container.h | 244 ++++ .../midi_processing-Info.plist | 30 + .../midi_processing/midi_processor.h | 61 + .../midi_processing/midi_processor_gmf.cpp | 52 + .../midi_processor_helpers.cpp | 68 + .../midi_processing/midi_processor_hmi.cpp | 209 ++++ .../midi_processing/midi_processor_hmp.cpp | 147 +++ .../midi_processing/midi_processor_lds.cpp | 1038 +++++++++++++++ .../midi_processing/midi_processor_mids.cpp | 120 ++ .../midi_processing/midi_processor_mus.cpp | 140 +++ .../midi_processor_riff_midi.cpp | 134 ++ .../midi_processor_standard_midi.cpp | 148 +++ .../midi_processing/midi_processor_syx.cpp | 35 + .../midi_processing/midi_processor_xmi.cpp | 277 ++++ Info.plist | 24 + Plugins/MIDI/MIDI.xcodeproj/project.pbxproj | 412 ++++++ Plugins/MIDI/MIDI/BMPlayer.cpp | 351 ++++++ Plugins/MIDI/MIDI/BMPlayer.h | 52 + Plugins/MIDI/MIDI/MIDI-Info.plist | 30 + Plugins/MIDI/MIDI/MIDI-Prefix.pch | 9 + Plugins/MIDI/MIDI/MIDIDecoder.h | 27 + Plugins/MIDI/MIDI/MIDIDecoder.mm | 167 +++ Plugins/MIDI/MIDI/MIDIPlayer.cpp | 313 +++++ Plugins/MIDI/MIDI/MIDIPlayer.h | 54 + Plugins/MIDI/MIDI/en.lproj/InfoPlist.strings | 2 + .../General/English.lproj/Localizable.strings | 1 + .../General/English.lproj/Preferences.xib | 23 + .../General/General.xcodeproj/project.pbxproj | 10 + .../General/GeneralPreferencesPlugin.h | 4 + .../General/GeneralPreferencesPlugin.m | 6 + Preferences/General/Icons/midi.png | Bin 0 -> 4575 bytes Preferences/General/MIDIPane.h | 17 + Preferences/General/MIDIPane.m | 42 + ThirdParty/BASS/bass.h | 990 +++++++++++++++ ThirdParty/BASS/bassmidi.h | 301 +++++ ThirdParty/BASS/libbass.dylib | Bin 0 -> 499028 bytes ThirdParty/BASS/libbass_mpc.dylib | Bin 0 -> 128448 bytes ThirdParty/BASS/libbassflac.dylib | Bin 0 -> 107560 bytes ThirdParty/BASS/libbassmidi.dylib | Bin 0 -> 173880 bytes ThirdParty/BASS/libbassopus.dylib | Bin 0 -> 226848 bytes ThirdParty/BASS/libbasswv.dylib | Bin 0 -> 139980 bytes 47 files changed, 7040 insertions(+) create mode 100644 Frameworks/midi_processing/midi_processing.xcodeproj/project.pbxproj create mode 100644 Frameworks/midi_processing/midi_processing/en.lproj/InfoPlist.strings create mode 100644 Frameworks/midi_processing/midi_processing/midi_container.cpp create mode 100644 Frameworks/midi_processing/midi_processing/midi_container.h create mode 100644 Frameworks/midi_processing/midi_processing/midi_processing-Info.plist create mode 100644 Frameworks/midi_processing/midi_processing/midi_processor.h create mode 100644 Frameworks/midi_processing/midi_processing/midi_processor_gmf.cpp create mode 100644 Frameworks/midi_processing/midi_processing/midi_processor_helpers.cpp create mode 100644 Frameworks/midi_processing/midi_processing/midi_processor_hmi.cpp create mode 100644 Frameworks/midi_processing/midi_processing/midi_processor_hmp.cpp create mode 100644 Frameworks/midi_processing/midi_processing/midi_processor_lds.cpp create mode 100644 Frameworks/midi_processing/midi_processing/midi_processor_mids.cpp create mode 100644 Frameworks/midi_processing/midi_processing/midi_processor_mus.cpp create mode 100644 Frameworks/midi_processing/midi_processing/midi_processor_riff_midi.cpp create mode 100644 Frameworks/midi_processing/midi_processing/midi_processor_standard_midi.cpp create mode 100644 Frameworks/midi_processing/midi_processing/midi_processor_syx.cpp create mode 100644 Frameworks/midi_processing/midi_processing/midi_processor_xmi.cpp create mode 100644 Plugins/MIDI/MIDI.xcodeproj/project.pbxproj create mode 100644 Plugins/MIDI/MIDI/BMPlayer.cpp create mode 100644 Plugins/MIDI/MIDI/BMPlayer.h create mode 100644 Plugins/MIDI/MIDI/MIDI-Info.plist create mode 100644 Plugins/MIDI/MIDI/MIDI-Prefix.pch create mode 100755 Plugins/MIDI/MIDI/MIDIDecoder.h create mode 100755 Plugins/MIDI/MIDI/MIDIDecoder.mm create mode 100644 Plugins/MIDI/MIDI/MIDIPlayer.cpp create mode 100644 Plugins/MIDI/MIDI/MIDIPlayer.h create mode 100644 Plugins/MIDI/MIDI/en.lproj/InfoPlist.strings create mode 100644 Preferences/General/Icons/midi.png create mode 100644 Preferences/General/MIDIPane.h create mode 100644 Preferences/General/MIDIPane.m create mode 100644 ThirdParty/BASS/bass.h create mode 100644 ThirdParty/BASS/bassmidi.h create mode 100644 ThirdParty/BASS/libbass.dylib create mode 100644 ThirdParty/BASS/libbass_mpc.dylib create mode 100644 ThirdParty/BASS/libbassflac.dylib create mode 100644 ThirdParty/BASS/libbassmidi.dylib create mode 100644 ThirdParty/BASS/libbassopus.dylib create mode 100644 ThirdParty/BASS/libbasswv.dylib diff --git a/Cog.help/Contents/Resources/English.lproj/Cog.helpindex b/Cog.help/Contents/Resources/English.lproj/Cog.helpindex index 4f0e16eda1c8364939bf2cd4ca7064e98c2d6a24..f61a7b5bf7a67502aee972cc6941705413528787 100644 GIT binary patch delta 25 dcmbPZI>&T_5+ieL=&{YJjJ3>Q#!{B=q5yKI2`vBs delta 25 dcmbPZI>&T_5+if;?46rc8EcurjHN8!MFDrN37Y@_ diff --git a/Cog.help/Contents/Resources/English.lproj/Cog.html b/Cog.help/Contents/Resources/English.lproj/Cog.html index 4c623ca78..82ee5f174 100644 --- a/Cog.help/Contents/Resources/English.lproj/Cog.html +++ b/Cog.help/Contents/Resources/English.lproj/Cog.html @@ -62,6 +62,7 @@ td.icon { width: auto; }
  • Apple Lossless
  • WMA Standard, Pro, Lossless, and Voice
  • TrueAudio
  • +
  • MIDI Sequences
  • Sequenced Module formats (IT, XM, S3M, MOD, STM, PTM, MTM, 669, PSM, AM, J2B, DSM, AMF, OKT/OKTA, and UMX)
  • Emulated Console formats supported by the Game_Music_Emu library (AY, GBS, HES, KSS, NSF/NSFE, SAP, SGC, SPC, and VGM/VGZ)
  • Many Emulated Console formats utilizing the PSF format (PSF, PSF2, SSF, DSF, QSF, GSF, NCSF, 2SF, and their respective mini variants)
  • diff --git a/Cog.xcodeproj/project.pbxproj b/Cog.xcodeproj/project.pbxproj index d3d3a08cc..69380b1e0 100644 --- a/Cog.xcodeproj/project.pbxproj +++ b/Cog.xcodeproj/project.pbxproj @@ -179,6 +179,7 @@ 838491871808591F00E7332D /* NDHotKey.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8384917E1808585D00E7332D /* NDHotKey.framework */; }; 838491881808593200E7332D /* NDHotKey.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8384917E1808585D00E7332D /* NDHotKey.framework */; }; 8399D4E21805A55000B503B1 /* XmlContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 8399D4E01805A55000B503B1 /* XmlContainer.m */; }; + 83B06704180D579E008E3612 /* MIDI.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83B066A1180D5669008E3612 /* MIDI.bundle */; }; 83BCB8DE17FC971300760340 /* FFMPEG.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = B09E94350D747F7B0064F138 /* FFMPEG.bundle */; }; 83E5E54C18087CA5001F3284 /* miniModeOffTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 83E5E54A18087CA5001F3284 /* miniModeOffTemplate.pdf */; }; 83E5E54D18087CA5001F3284 /* miniModeOnTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 83E5E54B18087CA5001F3284 /* miniModeOnTemplate.pdf */; }; @@ -464,6 +465,20 @@ remoteGlobalIDString = 32F1615514E6BB3B00D6AB2F; remoteInfo = NDHotKey; }; + 83B066A0180D5669008E3612 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83B0669C180D5668008E3612 /* MIDI.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 83B06687180D5668008E3612; + remoteInfo = MIDI; + }; + 83B06702180D5776008E3612 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83B0669C180D5668008E3612 /* MIDI.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 83B06686180D5668008E3612; + remoteInfo = MIDI; + }; 83BCB8D817FC96F800760340 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 8360EF0017F92B23005208A4 /* HighlyComplete.xcodeproj */; @@ -531,6 +546,7 @@ dstPath = ""; dstSubfolderSpec = 13; files = ( + 83B06704180D579E008E3612 /* MIDI.bundle in CopyFiles */, 8375B36517FFEF130092A79F /* Opus.bundle in CopyFiles */, 8359009D17FF06570060F3ED /* ArchiveSource.bundle in CopyFiles */, 83BCB8DE17FC971300760340 /* FFMPEG.bundle in CopyFiles */, @@ -816,6 +832,7 @@ 838491791808585C00E7332D /* NDHotKey.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = NDHotKey.xcodeproj; path = Frameworks/NDHotKey/NDHotKey.xcodeproj; sourceTree = ""; }; 8399D4E01805A55000B503B1 /* XmlContainer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XmlContainer.m; sourceTree = ""; }; 8399D4E11805A55000B503B1 /* XmlContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlContainer.h; sourceTree = ""; }; + 83B0669C180D5668008E3612 /* MIDI.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = MIDI.xcodeproj; path = Plugins/MIDI/MIDI.xcodeproj; sourceTree = ""; }; 83E5E54A18087CA5001F3284 /* miniModeOffTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = miniModeOffTemplate.pdf; path = Images/miniModeOffTemplate.pdf; sourceTree = ""; }; 83E5E54B18087CA5001F3284 /* miniModeOnTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = miniModeOnTemplate.pdf; path = Images/miniModeOnTemplate.pdf; sourceTree = ""; }; 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; @@ -1119,6 +1136,7 @@ 17C808660C3BD0F8005707C4 /* CoreAudio.xcodeproj */, 8359FF2C17FEF35C0060F3ED /* ArchiveSource.xcodeproj */, 8375B05117FFEA400092A79F /* Opus.xcodeproj */, + 83B0669C180D5668008E3612 /* MIDI.xcodeproj */, ); name = PlugIns; sourceTree = ""; @@ -1484,6 +1502,14 @@ name = Products; sourceTree = ""; }; + 83B0669D180D5668008E3612 /* Products */ = { + isa = PBXGroup; + children = ( + 83B066A1180D5669008E3612 /* MIDI.bundle */, + ); + name = Products; + sourceTree = ""; + }; 8E07AAEA0AAC90DC00A4B32F /* Preferences */ = { isa = PBXGroup; children = ( @@ -1616,6 +1642,7 @@ buildRules = ( ); dependencies = ( + 83B06703180D5776008E3612 /* PBXTargetDependency */, 838491861808591400E7332D /* PBXTargetDependency */, 8375B36217FFEF010092A79F /* PBXTargetDependency */, 8375B36417FFEF010092A79F /* PBXTargetDependency */, @@ -1726,6 +1753,10 @@ ProductGroup = 8E8D40830CBB036600135C1B /* Products */; ProjectRef = 8E8D40820CBB036600135C1B /* M3u.xcodeproj */; }, + { + ProductGroup = 83B0669D180D5668008E3612 /* Products */; + ProjectRef = 83B0669C180D5668008E3612 /* MIDI.xcodeproj */; + }, { ProductGroup = 17C8089F0C3BD1AB005707C4 /* Products */; ProjectRef = 17C8089E0C3BD1AB005707C4 /* Musepack.xcodeproj */; @@ -1900,6 +1931,13 @@ remoteRef = 8384917D1808585D00E7332D /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; + 83B066A1180D5669008E3612 /* MIDI.bundle */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = MIDI.bundle; + remoteRef = 83B066A0180D5669008E3612 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; 8E8D40870CBB036600135C1B /* M3u.bundle */ = { isa = PBXReferenceProxy; fileType = wrapper.cfbundle; @@ -2213,6 +2251,11 @@ name = NDHotKey; targetProxy = 838491851808591400E7332D /* PBXContainerItemProxy */; }; + 83B06703180D5776008E3612 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = MIDI; + targetProxy = 83B06702180D5776008E3612 /* PBXContainerItemProxy */; + }; 83BCB8D917FC96F800760340 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = HighlyComplete; diff --git a/Frameworks/midi_processing/midi_processing.xcodeproj/project.pbxproj b/Frameworks/midi_processing/midi_processing.xcodeproj/project.pbxproj new file mode 100644 index 000000000..d663052c2 --- /dev/null +++ b/Frameworks/midi_processing/midi_processing.xcodeproj/project.pbxproj @@ -0,0 +1,342 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 83B066BA180D56B9008E3612 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 83B066B8180D56B9008E3612 /* InfoPlist.strings */; }; + 83B066F1180D5724008E3612 /* midi_container.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83B066E3180D5724008E3612 /* midi_container.cpp */; }; + 83B066F2180D5724008E3612 /* midi_container.h in Headers */ = {isa = PBXBuildFile; fileRef = 83B066E4180D5724008E3612 /* midi_container.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 83B066F3180D5724008E3612 /* midi_processor_gmf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83B066E5180D5724008E3612 /* midi_processor_gmf.cpp */; }; + 83B066F4180D5724008E3612 /* midi_processor_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83B066E6180D5724008E3612 /* midi_processor_helpers.cpp */; }; + 83B066F5180D5724008E3612 /* midi_processor_hmi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83B066E7180D5724008E3612 /* midi_processor_hmi.cpp */; }; + 83B066F6180D5724008E3612 /* midi_processor_hmp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83B066E8180D5724008E3612 /* midi_processor_hmp.cpp */; }; + 83B066F7180D5724008E3612 /* midi_processor_lds.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83B066E9180D5724008E3612 /* midi_processor_lds.cpp */; }; + 83B066F8180D5724008E3612 /* midi_processor_mids.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83B066EA180D5724008E3612 /* midi_processor_mids.cpp */; }; + 83B066F9180D5724008E3612 /* midi_processor_mus.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83B066EB180D5724008E3612 /* midi_processor_mus.cpp */; }; + 83B066FA180D5724008E3612 /* midi_processor_riff_midi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83B066EC180D5724008E3612 /* midi_processor_riff_midi.cpp */; }; + 83B066FB180D5724008E3612 /* midi_processor_standard_midi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83B066ED180D5724008E3612 /* midi_processor_standard_midi.cpp */; }; + 83B066FC180D5724008E3612 /* midi_processor_syx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83B066EE180D5724008E3612 /* midi_processor_syx.cpp */; }; + 83B066FD180D5724008E3612 /* midi_processor_xmi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83B066EF180D5724008E3612 /* midi_processor_xmi.cpp */; }; + 83B066FE180D5724008E3612 /* midi_processor.h in Headers */ = {isa = PBXBuildFile; fileRef = 83B066F0180D5724008E3612 /* midi_processor.h */; settings = {ATTRIBUTES = (Public, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 83B066AC180D56B9008E3612 /* midi_processing.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = midi_processing.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 83B066B7180D56B9008E3612 /* midi_processing-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "midi_processing-Info.plist"; sourceTree = ""; }; + 83B066B9180D56B9008E3612 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 83B066E3180D5724008E3612 /* midi_container.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = midi_container.cpp; sourceTree = ""; }; + 83B066E4180D5724008E3612 /* midi_container.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = midi_container.h; sourceTree = ""; }; + 83B066E5180D5724008E3612 /* midi_processor_gmf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = midi_processor_gmf.cpp; sourceTree = ""; }; + 83B066E6180D5724008E3612 /* midi_processor_helpers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = midi_processor_helpers.cpp; sourceTree = ""; }; + 83B066E7180D5724008E3612 /* midi_processor_hmi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = midi_processor_hmi.cpp; sourceTree = ""; }; + 83B066E8180D5724008E3612 /* midi_processor_hmp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = midi_processor_hmp.cpp; sourceTree = ""; }; + 83B066E9180D5724008E3612 /* midi_processor_lds.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = midi_processor_lds.cpp; sourceTree = ""; }; + 83B066EA180D5724008E3612 /* midi_processor_mids.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = midi_processor_mids.cpp; sourceTree = ""; }; + 83B066EB180D5724008E3612 /* midi_processor_mus.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = midi_processor_mus.cpp; sourceTree = ""; }; + 83B066EC180D5724008E3612 /* midi_processor_riff_midi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = midi_processor_riff_midi.cpp; sourceTree = ""; }; + 83B066ED180D5724008E3612 /* midi_processor_standard_midi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = midi_processor_standard_midi.cpp; sourceTree = ""; }; + 83B066EE180D5724008E3612 /* midi_processor_syx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = midi_processor_syx.cpp; sourceTree = ""; }; + 83B066EF180D5724008E3612 /* midi_processor_xmi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = midi_processor_xmi.cpp; sourceTree = ""; }; + 83B066F0180D5724008E3612 /* midi_processor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = midi_processor.h; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 83B066A8180D56B9008E3612 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 83B066A2180D56B9008E3612 = { + isa = PBXGroup; + children = ( + 83B066B5180D56B9008E3612 /* midi_processing */, + 83B066AE180D56B9008E3612 /* Frameworks */, + 83B066AD180D56B9008E3612 /* Products */, + ); + sourceTree = ""; + }; + 83B066AD180D56B9008E3612 /* Products */ = { + isa = PBXGroup; + children = ( + 83B066AC180D56B9008E3612 /* midi_processing.framework */, + ); + name = Products; + sourceTree = ""; + }; + 83B066AE180D56B9008E3612 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 83B066B1180D56B9008E3612 /* Other Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; + 83B066B1180D56B9008E3612 /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 83B066B5180D56B9008E3612 /* midi_processing */ = { + isa = PBXGroup; + children = ( + 83B066E3180D5724008E3612 /* midi_container.cpp */, + 83B066E4180D5724008E3612 /* midi_container.h */, + 83B066E5180D5724008E3612 /* midi_processor_gmf.cpp */, + 83B066E6180D5724008E3612 /* midi_processor_helpers.cpp */, + 83B066E7180D5724008E3612 /* midi_processor_hmi.cpp */, + 83B066E8180D5724008E3612 /* midi_processor_hmp.cpp */, + 83B066E9180D5724008E3612 /* midi_processor_lds.cpp */, + 83B066EA180D5724008E3612 /* midi_processor_mids.cpp */, + 83B066EB180D5724008E3612 /* midi_processor_mus.cpp */, + 83B066EC180D5724008E3612 /* midi_processor_riff_midi.cpp */, + 83B066ED180D5724008E3612 /* midi_processor_standard_midi.cpp */, + 83B066EE180D5724008E3612 /* midi_processor_syx.cpp */, + 83B066EF180D5724008E3612 /* midi_processor_xmi.cpp */, + 83B066F0180D5724008E3612 /* midi_processor.h */, + 83B066B6180D56B9008E3612 /* Supporting Files */, + ); + path = midi_processing; + sourceTree = ""; + }; + 83B066B6180D56B9008E3612 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 83B066B7180D56B9008E3612 /* midi_processing-Info.plist */, + 83B066B8180D56B9008E3612 /* InfoPlist.strings */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 83B066A9180D56B9008E3612 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 83B066FE180D5724008E3612 /* midi_processor.h in Headers */, + 83B066F2180D5724008E3612 /* midi_container.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 83B066AB180D56B9008E3612 /* midi_processing */ = { + isa = PBXNativeTarget; + buildConfigurationList = 83B066D4180D56B9008E3612 /* Build configuration list for PBXNativeTarget "midi_processing" */; + buildPhases = ( + 83B066A7180D56B9008E3612 /* Sources */, + 83B066A8180D56B9008E3612 /* Frameworks */, + 83B066A9180D56B9008E3612 /* Headers */, + 83B066AA180D56B9008E3612 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = midi_processing; + productName = midi_processing; + productReference = 83B066AC180D56B9008E3612 /* midi_processing.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 83B066A3180D56B9008E3612 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0500; + ORGANIZATIONNAME = "Christopher Snowhill"; + }; + buildConfigurationList = 83B066A6180D56B9008E3612 /* Build configuration list for PBXProject "midi_processing" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 83B066A2180D56B9008E3612; + productRefGroup = 83B066AD180D56B9008E3612 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 83B066AB180D56B9008E3612 /* midi_processing */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 83B066AA180D56B9008E3612 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 83B066BA180D56B9008E3612 /* InfoPlist.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 83B066A7180D56B9008E3612 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 83B066F4180D5724008E3612 /* midi_processor_helpers.cpp in Sources */, + 83B066F3180D5724008E3612 /* midi_processor_gmf.cpp in Sources */, + 83B066FB180D5724008E3612 /* midi_processor_standard_midi.cpp in Sources */, + 83B066FC180D5724008E3612 /* midi_processor_syx.cpp in Sources */, + 83B066F5180D5724008E3612 /* midi_processor_hmi.cpp in Sources */, + 83B066F8180D5724008E3612 /* midi_processor_mids.cpp in Sources */, + 83B066F6180D5724008E3612 /* midi_processor_hmp.cpp in Sources */, + 83B066F9180D5724008E3612 /* midi_processor_mus.cpp in Sources */, + 83B066FA180D5724008E3612 /* midi_processor_riff_midi.cpp in Sources */, + 83B066F1180D5724008E3612 /* midi_container.cpp in Sources */, + 83B066FD180D5724008E3612 /* midi_processor_xmi.cpp in Sources */, + 83B066F7180D5724008E3612 /* midi_processor_lds.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 83B066B8180D56B9008E3612 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 83B066B9180D56B9008E3612 /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 83B066D2180D56B9008E3612 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.7; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + 83B066D3180D56B9008E3612 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.7; + SDKROOT = macosx; + }; + name = Release; + }; + 83B066D5180D56B9008E3612 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "midi_processing/midi_processing-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = framework; + }; + name = Debug; + }; + 83B066D6180D56B9008E3612 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "midi_processing/midi_processing-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = framework; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 83B066A6180D56B9008E3612 /* Build configuration list for PBXProject "midi_processing" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83B066D2180D56B9008E3612 /* Debug */, + 83B066D3180D56B9008E3612 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83B066D4180D56B9008E3612 /* Build configuration list for PBXNativeTarget "midi_processing" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83B066D5180D56B9008E3612 /* Debug */, + 83B066D6180D56B9008E3612 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = 83B066A3180D56B9008E3612 /* Project object */; +} diff --git a/Frameworks/midi_processing/midi_processing/en.lproj/InfoPlist.strings b/Frameworks/midi_processing/midi_processing/en.lproj/InfoPlist.strings new file mode 100644 index 000000000..477b28ff8 --- /dev/null +++ b/Frameworks/midi_processing/midi_processing/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Frameworks/midi_processing/midi_processing/midi_container.cpp b/Frameworks/midi_processing/midi_processing/midi_container.cpp new file mode 100644 index 000000000..a5912b141 --- /dev/null +++ b/Frameworks/midi_processing/midi_processing/midi_container.cpp @@ -0,0 +1,1114 @@ +#include "midi_container.h" + +#include + +#include + +midi_event::midi_event( const midi_event & p_in ) +{ + m_timestamp = p_in.m_timestamp; + m_channel = p_in.m_channel; + m_type = p_in.m_type; + m_data_count = p_in.m_data_count; + memcpy( m_data, p_in.m_data, m_data_count ); + m_ext_data = p_in.m_ext_data; +} + +midi_event::midi_event( unsigned long p_timestamp, event_type p_type, unsigned p_channel, const uint8_t * p_data, std::size_t p_data_count ) +{ + m_timestamp = p_timestamp; + m_type = p_type; + m_channel = p_channel; + if ( p_data_count <= max_static_data_count ) + { + m_data_count = p_data_count; + memcpy( m_data, p_data, p_data_count ); + } + else + { + m_data_count = max_static_data_count; + memcpy( m_data, p_data, max_static_data_count ); + m_ext_data.assign( p_data + max_static_data_count, p_data + p_data_count ); + } +} + +unsigned long midi_event::get_data_count() const +{ + return m_data_count + m_ext_data.size(); +} + +void midi_event::copy_data( uint8_t * p_out, unsigned long p_offset, unsigned long p_count ) const +{ + unsigned long max_count = m_data_count + m_ext_data.size() - p_offset; + p_count = std::min( p_count, max_count ); + if ( p_offset < max_static_data_count ) + { + unsigned long max_count = max_static_data_count - p_offset; + unsigned long count = std::min( max_count, p_count ); + memcpy( p_out, m_data + p_offset, count ); + p_offset -= count; + p_count -= count; + p_out += count; + } + if ( p_count ) memcpy( p_out, &m_ext_data[0], p_count ); +} + +midi_track::midi_track(const midi_track & p_in) +{ + m_events = p_in.m_events; +} + +void midi_track::add_event( const midi_event & p_event ) +{ + auto it = m_events.end(); + + if ( m_events.size() ) + { + midi_event & event = *(it - 1); + if ( event.m_type == midi_event::extended && event.get_data_count() >= 2 && + event.m_data[ 0 ] == 0xFF && event.m_data[ 1 ] == 0x2F ) + { + --it; + if ( event.m_timestamp < p_event.m_timestamp ) + { + event.m_timestamp = p_event.m_timestamp; + } + } + + while ( it > m_events.begin() ) + { + if ( (*( it - 1 )).m_timestamp <= p_event.m_timestamp ) break; + --it; + } + } + + m_events.insert( it, p_event ); +} + +std::size_t midi_track::get_count() const +{ + return m_events.size(); +} + +const midi_event & midi_track::operator [] ( std::size_t p_index ) const +{ + return m_events[ p_index ]; +} + +void midi_track::remove_event( unsigned long index ) +{ + m_events.erase( m_events.begin() + index ); +} + +tempo_entry::tempo_entry(unsigned long p_timestamp, unsigned p_tempo) +{ + m_timestamp = p_timestamp; + m_tempo = p_tempo; +} + +void tempo_map::add_tempo( unsigned p_tempo, unsigned long p_timestamp ) +{ + auto it = m_entries.end(); + + while ( it > m_entries.begin() ) + { + if ( (*( it - 1 )).m_timestamp <= p_timestamp ) break; + --it; + } + + if ( it > m_entries.begin() && (*( it - 1 )).m_timestamp == p_timestamp ) + { + (*( it - 1 )).m_tempo = p_tempo; + } + else + { + m_entries.insert( it, tempo_entry( p_timestamp, p_tempo ) ); + } +} + +unsigned long tempo_map::timestamp_to_ms( unsigned long p_timestamp, unsigned p_dtx ) const +{ + unsigned long timestamp_ms = 0; + unsigned long timestamp = 0; + auto tempo_it = m_entries.begin(); + unsigned current_tempo = 500000; + + unsigned half_dtx = p_dtx * 500; + p_dtx = half_dtx * 2; + + while ( tempo_it < m_entries.end() && timestamp + p_timestamp >= (*tempo_it).m_timestamp ) + { + unsigned long delta = (*tempo_it).m_timestamp - timestamp; + timestamp_ms += ((uint64_t)current_tempo * (uint64_t)delta + half_dtx) / p_dtx; + current_tempo = (*tempo_it).m_tempo; + ++tempo_it; + timestamp += delta; + p_timestamp -= delta; + } + + timestamp_ms += ((uint64_t)current_tempo * (uint64_t)p_timestamp + half_dtx) / p_dtx; + + return timestamp_ms; +} + +std::size_t tempo_map::get_count() const +{ + return m_entries.size(); +} + +const tempo_entry & tempo_map::operator [] ( std::size_t p_index ) const +{ + return m_entries[ p_index ]; +} + +system_exclusive_entry::system_exclusive_entry(const system_exclusive_entry & p_in) +{ + m_port = p_in.m_port; + m_offset = p_in.m_offset; + m_length = p_in.m_length; +} + +system_exclusive_entry::system_exclusive_entry(std::size_t p_port, std::size_t p_offset, std::size_t p_length) +{ + m_port = p_port; + m_offset = p_offset; + m_length = p_length; +} + +unsigned system_exclusive_table::add_entry( const uint8_t * p_data, std::size_t p_size, std::size_t p_port ) +{ + for ( auto it = m_entries.begin(); it < m_entries.end(); ++it ) + { + const system_exclusive_entry & entry = *it; + if ( p_port == entry.m_port && p_size == entry.m_length && !memcmp( p_data, &m_data[ entry.m_offset ], p_size ) ) + return ((unsigned)(it - m_entries.begin())); + } + system_exclusive_entry entry( p_port, m_data.size(), p_size ); + m_data.insert( m_data.end(), p_data, p_data + p_size ); + m_entries.push_back( entry ); + return ((unsigned)(m_entries.size() - 1)); +} + +void system_exclusive_table::get_entry( unsigned p_index, const uint8_t * & p_data, std::size_t & p_size, std::size_t & p_port ) +{ + const system_exclusive_entry & entry = m_entries[ p_index ]; + p_data = &m_data[ entry.m_offset ]; + p_size = entry.m_length; + p_port = entry.m_port; +} + +midi_stream_event::midi_stream_event(unsigned long p_timestamp, unsigned p_event) +{ + m_timestamp = p_timestamp; + m_event = p_event; +} + +midi_meta_data_item::midi_meta_data_item(const midi_meta_data_item & p_in) +{ + m_timestamp = p_in.m_timestamp; + m_name = p_in.m_name; + m_value = p_in.m_value; +} + +midi_meta_data_item::midi_meta_data_item(unsigned long p_timestamp, const char * p_name, const char * p_value) +{ + m_timestamp = p_timestamp; + m_name = p_name; + m_value = p_value; +} + +void midi_meta_data::add_item( const midi_meta_data_item & p_item ) +{ + m_data.push_back( p_item ); +} + +void midi_meta_data::append( const midi_meta_data & p_data ) +{ + m_data.insert( m_data.end(), p_data.m_data.begin(), p_data.m_data.end() ); +} + +bool midi_meta_data::get_item( const char * p_name, midi_meta_data_item & p_out ) const +{ + for ( unsigned i = 0; i < m_data.size(); ++i ) + { + const midi_meta_data_item & item = m_data[ i ]; + if ( !strcasecmp( p_name, item.m_name.c_str() ) ) + { + p_out = item; + return true; + } + } + return false; +} + +std::size_t midi_meta_data::get_count() const +{ + return m_data.size(); +} + +const midi_meta_data_item & midi_meta_data::operator [] ( std::size_t p_index ) const +{ + return m_data[ p_index ]; +} + +void midi_container::encode_delta( std::vector & p_out, unsigned long delta ) +{ + unsigned shift = 7 * 4; + while ( shift && !( delta >> shift ) ) + { + shift -= 7; + } + while (shift > 0) + { + p_out.push_back( (unsigned char)( ( ( delta >> shift ) & 0x7F ) | 0x80 ) ); + shift -= 7; + } + p_out.push_back( (unsigned char)( delta & 0x7F ) ); +} + +unsigned long midi_container::timestamp_to_ms( unsigned long p_timestamp, unsigned long p_subsong ) const +{ + unsigned long timestamp_ms = 0; + unsigned long timestamp = 0; + std::size_t tempo_index = 0; + unsigned current_tempo = 500000; + + unsigned half_dtx = m_dtx * 500; + unsigned p_dtx = half_dtx * 2; + + unsigned long subsong_count = m_tempo_map.size(); + + if ( p_subsong && subsong_count ) + { + for ( unsigned long i = std::min( p_subsong, subsong_count ); --i; ) + { + unsigned long count = m_tempo_map[ i ].get_count(); + if ( count ) + { + current_tempo = m_tempo_map[ i ][ count - 1 ].m_tempo; + break; + } + } + } + + if ( p_subsong < subsong_count ) + { + const tempo_map & m_entries = m_tempo_map[ p_subsong ]; + + std::size_t tempo_count = m_entries.get_count(); + + while ( tempo_index < tempo_count && timestamp + p_timestamp >= m_entries[ tempo_index ].m_timestamp ) + { + unsigned long delta = m_entries[ tempo_index ].m_timestamp - timestamp; + timestamp_ms += ((uint64_t)current_tempo * (uint64_t)delta + half_dtx) / p_dtx; + current_tempo = m_entries[ tempo_index ].m_tempo; + ++tempo_index; + timestamp += delta; + p_timestamp -= delta; + } + } + + timestamp_ms += ((uint64_t)current_tempo * (uint64_t)p_timestamp + half_dtx) / p_dtx; + + return timestamp_ms; +} + +void midi_container::initialize( unsigned p_form, unsigned p_dtx ) +{ + m_form = p_form; + m_dtx = p_dtx; + if ( p_form != 2 ) + { + m_channel_mask.resize( 1 ); + m_channel_mask[ 0 ] = 0; + m_tempo_map.resize( 1 ); + m_timestamp_end.resize( 1 ); + m_timestamp_end[ 0 ] = 0; + m_timestamp_loop_start.resize( 1 ); + m_timestamp_loop_end.resize( 1 ); + } +} + +void midi_container::add_track( const midi_track & p_track ) +{ + unsigned i; + unsigned long port_number = 0; + + std::vector data; + std::string device_name; + + m_tracks.push_back( p_track ); + + for ( i = 0; i < p_track.get_count(); ++i ) + { + const midi_event & event = p_track[ i ]; + if ( event.m_type == midi_event::extended && event.get_data_count() >= 5 && + event.m_data[ 0 ] == 0xFF && event.m_data[ 1 ] == 0x51 ) + { + unsigned tempo = ( event.m_data[ 2 ] << 16 ) + ( event.m_data[ 3 ] << 8 ) + event.m_data[ 4 ]; + if ( m_form != 2 ) m_tempo_map[ 0 ].add_tempo( tempo, event.m_timestamp ); + else + { + m_tempo_map.resize( m_tracks.size() ); + m_tempo_map[ m_tracks.size() - 1 ].add_tempo( tempo, event.m_timestamp ); + } + } + else if ( event.m_type == midi_event::extended && event.get_data_count() >= 3 && + event.m_data[ 0 ] == 0xFF ) + { + if ( event.m_data[ 1 ] == 4 || event.m_data[1] == 9 ) + { + unsigned long data_count = event.get_data_count() - 2; + data.resize( data_count ); + event.copy_data( &data[0], 2, data_count ); + device_name.assign( data.begin(), data.begin() + data_count ); + std::transform( device_name.begin(), device_name.end(), device_name.begin(), ::tolower ); + } + else if ( event.m_data[ 1 ] == 0x21 ) + { + port_number = event.m_data[ 2 ]; + limit_port_number( port_number ); + device_name.clear(); + } + } + else if ( event.m_type == midi_event::note_on || event.m_type == midi_event::note_off ) + { + unsigned channel = event.m_channel; + if ( device_name.length() ) + { + unsigned long i, j; + for ( i = 0, j = m_device_names[ channel ].size(); i < j; ++i ) + { + if ( !strcmp( m_device_names[ channel ][ i ].c_str(), device_name.c_str() ) ) break; + } + if ( i < j ) port_number = i; + else + { + m_device_names[ channel ].push_back( device_name ); + port_number = j; + } + device_name.clear(); + limit_port_number( port_number ); + } + + channel += 16 * port_number; + channel %= 48; + if ( m_form != 2 ) m_channel_mask[ 0 ] |= 1 << channel; + else + { + m_channel_mask.resize( m_tracks.size(), 0 ); + m_channel_mask[ m_tracks.size() - 1 ] |= 1 << channel; + } + } + } + + if ( i && m_form != 2 && p_track[ i - 1 ].m_timestamp > m_timestamp_end[ 0 ] ) + m_timestamp_end[ 0 ] = p_track[ i - 1 ].m_timestamp; + else if ( m_form == 2 ) + { + if ( i ) + m_timestamp_end.push_back( p_track[ i - 1 ].m_timestamp ); + else + m_timestamp_end.push_back( (unsigned)0 ); + } +} + +void midi_container::add_track_event( std::size_t p_track_index, const midi_event & p_event ) +{ + midi_track & track = m_tracks[ p_track_index ]; + + track.add_event( p_event ); + + if ( p_event.m_type == midi_event::extended && p_event.get_data_count() >= 5 && + p_event.m_data[ 0 ] == 0xFF && p_event.m_data[ 1 ] == 0x51 ) + { + unsigned tempo = ( p_event.m_data[ 2 ] << 16 ) + ( p_event.m_data[ 3 ] << 8 ) + p_event.m_data[ 4 ]; + if ( m_form != 2 ) m_tempo_map[ 0 ].add_tempo( tempo, p_event.m_timestamp ); + else + { + m_tempo_map.resize( m_tracks.size() ); + m_tempo_map[ p_track_index ].add_tempo( tempo, p_event.m_timestamp ); + } + } + else if ( p_event.m_type == midi_event::note_on || p_event.m_type == midi_event::note_off ) + { + if ( m_form != 2 ) m_channel_mask[ 0 ] |= 1 << p_event.m_channel; + else + { + m_channel_mask.resize( m_tracks.size(), 0 ); + m_channel_mask[ p_track_index ] |= 1 << p_event.m_channel; + } + } + + if ( m_form != 2 && p_event.m_timestamp > m_timestamp_end[ 0 ] ) + { + m_timestamp_end[ 0 ] = p_event.m_timestamp; + } + else if ( m_form == 2 && p_event.m_timestamp > m_timestamp_end[ p_track_index ] ) + { + m_timestamp_end[ p_track_index ] = p_event.m_timestamp; + } +} + +void midi_container::merge_tracks( const midi_container & p_source ) +{ + for ( unsigned i = 0; i < p_source.m_tracks.size(); i++ ) + { + add_track( p_source.m_tracks[ i ] ); + } +} + +void midi_container::set_track_count( unsigned count ) +{ + m_tracks.resize( count ); +} + +void midi_container::set_extra_meta_data( const midi_meta_data & p_data ) +{ + m_extra_meta_data = p_data; +} + +void midi_container::apply_hackfix( unsigned hack ) +{ + switch (hack) + { + case 0: + for (unsigned i = 0; i < m_tracks.size(); ++i) + { + midi_track & t = m_tracks[ i ]; + for ( unsigned i = 0; i < t.get_count(); ) + { + if ( t[ i ].m_type != midi_event::extended && + t[ i ].m_channel == 16 ) + { + t.remove_event( i ); + } + else + { + ++i; + } + } + } + break; + + case 1: + for (unsigned i = 0; i < m_tracks.size(); ++i) + { + midi_track & t = m_tracks[ i ]; + for ( unsigned i = 0; i < t.get_count(); ) + { + if ( t[ i ].m_type != midi_event::extended && + ( t[ i ].m_channel - 10 < 6 ) ) + { + t.remove_event( i ); + } + else + { + ++i; + } + } + } + break; + } +} + +void midi_container::serialize_as_stream( unsigned long subsong, std::vector & p_stream, system_exclusive_table & p_system_exclusive, unsigned clean_flags ) const +{ + std::vector data; + std::vector track_positions; + std::vector port_numbers; + std::vector device_names; + std::size_t track_count = m_tracks.size(); + + track_positions.resize( track_count, 0 ); + port_numbers.resize( track_count, 0 ); + device_names.resize( track_count ); + + bool clean_emidi = !!( clean_flags & clean_flag_emidi ); + bool clean_instruments = !!( clean_flags & clean_flag_instruments ); + bool clean_banks = !!( clean_flags & clean_flag_banks ); + + if ( clean_emidi ) + { + for ( unsigned i = 0; i < track_count; ++i ) + { + bool skip_track = false; + const midi_track & track = m_tracks[ i ]; + for ( unsigned j = 0; j < track.get_count(); ++j ) + { + const midi_event & event = track[ j ]; + if ( event.m_type == midi_event::control_change && + ( event.m_data[ 0 ] == 110 || event.m_data[ 0 ] == 111 ) ) + { + if ( event.m_data[ 0 ] == 110 ) + { + if ( event.m_data[ 1 ] != 0 && event.m_data[ 1 ] != 1 && event.m_data[ 1 ] != 127 ) + { + skip_track = true; + break; + } + } + else + { + if ( event.m_data[ 1 ] == 0 || event.m_data[ 1 ] == 1 ) + { + skip_track = true; + break; + } + } + } + } + if ( skip_track ) + { + track_positions[ i ] = track.get_count(); + } + } + } + + if ( m_form == 2 ) + { + for ( unsigned long i = 0; i < track_count; ++i ) + { + if ( i != subsong ) track_positions[ i ] = m_tracks[ i ].get_count(); + } + } + + for (;;) + { + unsigned long next_timestamp = ~0UL; + std::size_t next_track = 0; + for ( unsigned i = 0; i < track_count; ++i ) + { + if ( track_positions[ i ] >= m_tracks[ i ].get_count() ) continue; + if ( m_tracks[ i ][ track_positions[ i ] ].m_timestamp < next_timestamp ) + { + next_timestamp = m_tracks[ i ][ track_positions[ i ] ].m_timestamp; + next_track = i; + } + } + if ( next_timestamp == ~0UL ) break; + + bool filtered = false; + + if ( clean_instruments || clean_banks ) + { + const midi_event & event = m_tracks[ next_track ][ track_positions[ next_track ] ]; + if ( clean_instruments && event.m_type == midi_event::program_change ) filtered = true; + else if ( clean_banks && event.m_type == midi_event::control_change && + ( event.m_data[ 0 ] == 0x00 || event.m_data[ 0 ] == 0x20 ) ) filtered = true; + } + + if ( !filtered ) + { + unsigned long tempo_track = 0; + if ( m_form == 2 && subsong ) tempo_track = subsong; + + const midi_event & event = m_tracks[ next_track ][ track_positions[ next_track ] ]; + unsigned long timestamp_ms = timestamp_to_ms( event.m_timestamp, tempo_track ); + if ( event.m_type != midi_event::extended ) + { + if ( device_names[ next_track ].length() ) + { + unsigned long i, j; + for ( i = 0, j = m_device_names[ event.m_channel ].size(); i < j; ++i ) + { + if ( !strcmp( m_device_names[ event.m_channel ][ i ].c_str(), device_names[ next_track ].c_str() ) ) break; + } + port_numbers[ next_track ] = i; + device_names[ next_track ].clear(); + limit_port_number( port_numbers[ next_track ] ); + } + + uint32_t event_code = ( ( event.m_type + 8 ) << 4 ) + event.m_channel; + if ( event.m_data_count >= 1 ) event_code += event.m_data[ 0 ] << 8; + if ( event.m_data_count >= 2 ) event_code += event.m_data[ 1 ] << 16; + event_code += port_numbers[ next_track ] << 24; + p_stream.push_back( midi_stream_event( timestamp_ms, event_code ) ); + } + else + { + std::size_t data_count = event.get_data_count(); + if ( data_count >= 3 && event.m_data[ 0 ] == 0xF0 ) + { + if ( device_names[ next_track ].length() ) + { + unsigned long i, j; + for ( i = 0, j = m_device_names[ event.m_channel ].size(); i < j; ++i ) + { + if ( !strcmp( m_device_names[ event.m_channel ][ i ].c_str(), device_names[ next_track ].c_str() ) ) break; + } + port_numbers[ next_track ] = i; + device_names[ next_track ].clear(); + limit_port_number( port_numbers[ next_track ] ); + } + + data.resize( data_count ); + event.copy_data( &data[0], 0, data_count ); + if ( data[ data_count - 1 ] == 0xF7 ) + { + uint32_t system_exclusive_index = p_system_exclusive.add_entry( &data[0], data_count, port_numbers[ next_track ] ); + p_stream.push_back( midi_stream_event( timestamp_ms, system_exclusive_index | 0x80000000 ) ); + } + } + else if ( data_count >= 3 && event.m_data[ 0 ] == 0xFF ) + { + if ( event.m_data[ 1 ] == 4 || event.m_data[ 1 ] == 9 ) + { + unsigned long data_count = event.get_data_count() - 2; + data.resize( data_count ); + event.copy_data( &data[0], 2, data_count ); + device_names[ next_track ].clear(); + device_names[ next_track ].assign( data.begin(), data.begin() + data_count ); + std::transform( device_names[ next_track ].begin(), device_names[ next_track ].end(), device_names[ next_track ].begin(), ::tolower ); + } + else if ( event.m_data[ 1 ] == 0x21 ) + { + port_numbers[ next_track ] = event.m_data[ 2 ]; + device_names[ next_track ].clear(); + limit_port_number( port_numbers[ next_track ] ); + } + } + } + } + + track_positions[ next_track ]++; + } +} + +void midi_container::serialize_as_standard_midi_file( std::vector & p_midi_file ) const +{ + if ( !m_tracks.size() ) return; + + std::vector data; + + const char signature[] = "MThd"; + p_midi_file.insert( p_midi_file.end(), signature, signature + 4 ); + p_midi_file.push_back( 0 ); + p_midi_file.push_back( 0 ); + p_midi_file.push_back( 0 ); + p_midi_file.push_back( 6 ); + p_midi_file.push_back( 0 ); + p_midi_file.push_back( m_form ); + p_midi_file.push_back( (m_tracks.size() >> 8) ); + p_midi_file.push_back( m_tracks.size() ); + p_midi_file.push_back( (m_dtx >> 8) ); + p_midi_file.push_back( m_dtx ); + + for ( unsigned i = 0; i < m_tracks.size(); ++i ) + { + const midi_track & track = m_tracks[ i ]; + unsigned long last_timestamp = 0; + unsigned char last_event_code = 0xFF; + std::size_t length_offset; + + const char signature[] = "MTrk"; + p_midi_file.insert( p_midi_file.end(), signature, signature + 4 ); + + length_offset = p_midi_file.size(); + p_midi_file.push_back( 0 ); + p_midi_file.push_back( 0 ); + p_midi_file.push_back( 0 ); + p_midi_file.push_back( 0 ); + + for ( unsigned j = 0; j < track.get_count(); ++j ) + { + const midi_event & event = track[ j ]; + encode_delta( p_midi_file, event.m_timestamp - last_timestamp ); + last_timestamp = event.m_timestamp; + if ( event.m_type != midi_event::extended ) + { + const unsigned char event_code = ( ( event.m_type + 8 ) << 4 ) + event.m_channel; + if ( event_code != last_event_code ) + { + p_midi_file.push_back( event_code ); + last_event_code = event_code; + } + p_midi_file.insert( p_midi_file.end(), event.m_data, event.m_data + event.m_data_count ); + } + else + { + std::size_t data_count = event.get_data_count(); + if ( data_count >= 1 ) + { + if ( event.m_data[ 0 ] == 0xF0 ) + { + --data_count; + p_midi_file.push_back( 0xF0 ); + encode_delta( p_midi_file, data_count ); + if ( data_count ) + { + data.resize( data_count ); + event.copy_data( &data[0], 1, data_count ); + p_midi_file.insert( p_midi_file.end(), data.begin(), data.begin() + data_count ); + } + } + else if ( event.m_data[ 0 ] == 0xFF && data_count >= 2 ) + { + data_count -= 2; + p_midi_file.push_back( 0xFF ); + p_midi_file.push_back( event.m_data[ 1 ] ); + encode_delta( p_midi_file, data_count ); + if ( data_count ) + { + data.resize( data_count ); + event.copy_data( &data[0], 2, data_count ); + p_midi_file.insert( p_midi_file.end(), data.begin(), data.begin() + data_count ); + } + } + } + } + } + + std::size_t track_length = p_midi_file.size() - length_offset - 4; + p_midi_file[ length_offset + 0 ] = (unsigned char)( track_length >> 24 ); + p_midi_file[ length_offset + 1 ] = (unsigned char)( track_length >> 16 ); + p_midi_file[ length_offset + 2 ] = (unsigned char)( track_length >> 8 ); + p_midi_file[ length_offset + 3 ] = (unsigned char)track_length; + } +} + +void midi_container::promote_to_type1() +{ + if ( m_form == 0 && m_tracks.size() <= 2 ) + { + bool meter_track_present = false; + midi_track new_tracks[17]; + midi_track original_data_track = m_tracks[ m_tracks.size() - 1 ]; + if ( m_tracks.size() > 1 ) + { + new_tracks[0] = m_tracks[0]; + meter_track_present = true; + } + + m_tracks.resize( 0 ); + + for ( std::size_t i = 0; i < original_data_track.get_count(); ++i ) + { + const midi_event & event = original_data_track[ i ]; + + if ( event.m_type != midi_event::extended ) + { + new_tracks[ 1 + event.m_channel ].add_event( event ); + } + else + { + if ( event.m_data[0] != 0xFF || event.get_data_count() < 2 || event.m_data[1] != 0x2F ) + { + new_tracks[ 0 ].add_event( event ); + } + else + { + if ( !meter_track_present ) + new_tracks[ 0 ].add_event( event ); + for ( std::size_t j = 1; j < 17; ++j ) + { + new_tracks[ j ].add_event( event ); + } + } + } + } + + for ( std::size_t i = 0; i < 17; ++i ) + { + if ( new_tracks[ i ].get_count() > 1 ) + add_track( new_tracks[ i ] ); + } + + m_form = 1; + } +} + +unsigned long midi_container::get_subsong_count() const +{ + unsigned long subsong_count = 0; + for ( unsigned i = 0; i < m_channel_mask.size(); ++i ) + { + if ( m_channel_mask[ i ] ) ++subsong_count; + } + return subsong_count; +} + +unsigned long midi_container::get_subsong( unsigned long p_index ) const +{ + for ( unsigned i = 0; i < m_channel_mask.size(); ++i ) + { + if ( m_channel_mask[ i ] ) + { + if ( p_index ) --p_index; + else return i; + } + } + return 0; +} + +unsigned long midi_container::get_timestamp_end(unsigned long subsong, bool ms /* = false */) const +{ + unsigned long tempo_track = 0; + unsigned long timestamp = m_timestamp_end[ 0 ]; + if ( m_form == 2 && subsong ) + { + tempo_track = subsong; + timestamp = m_timestamp_end[ subsong ]; + } + if ( !ms ) return timestamp; + else return timestamp_to_ms( timestamp, tempo_track ); +} + +unsigned midi_container::get_format() const +{ + return m_form; +} + +unsigned midi_container::get_track_count() const +{ + return (unsigned) m_tracks.size(); +} + +unsigned midi_container::get_channel_count( unsigned long subsong ) const +{ + unsigned count = 0; + uint64_t j = 1; + for (unsigned i = 0; i < 48; ++i, j <<= 1) + { + if ( m_channel_mask[ subsong ] & j ) ++count; + } + return count; +} + +unsigned long midi_container::get_timestamp_loop_start( unsigned long subsong, bool ms /* = false */ ) const +{ + unsigned long tempo_track = 0; + unsigned long timestamp = m_timestamp_loop_start[ 0 ]; + if ( m_form == 2 && subsong ) + { + tempo_track = subsong; + timestamp = m_timestamp_loop_start[ subsong ]; + } + if ( !ms ) return timestamp; + else if ( timestamp != ~0UL ) return timestamp_to_ms( timestamp, tempo_track ); + else return ~0UL; +} + +unsigned long midi_container::get_timestamp_loop_end( unsigned long subsong, bool ms /* = false */ ) const +{ + unsigned long tempo_track = 0; + unsigned long timestamp = m_timestamp_loop_end[ 0 ]; + if ( m_form == 2 && subsong ) + { + tempo_track = subsong; + timestamp = m_timestamp_loop_end[ subsong ]; + } + if ( !ms ) return timestamp; + else if ( timestamp != ~0UL ) return timestamp_to_ms( timestamp, tempo_track ); + else return ~0UL; +} + +/* TODO: Use iconv or libintl or something to probe for code pages and convert some mess to UTF-8 */ +static void convert_mess_to_utf8( const char * p_src, std::size_t p_src_len, std::string & p_dst ) +{ + p_dst.assign( p_src, p_src + p_src_len ); +} + +void midi_container::get_meta_data( unsigned long subsong, midi_meta_data & p_out ) +{ + char temp[32]; + std::string convert; + + std::vector data; + + bool type_found = false; + bool type_non_gm_found = false; + + for ( unsigned long i = 0; i < m_tracks.size(); ++i ) + { + if ( m_form == 2 && i != subsong ) continue; + + unsigned long tempo_track = 0; + if ( m_form == 2 ) tempo_track = i; + + const midi_track & track = m_tracks[ i ]; + for ( unsigned j = 0; j < track.get_count(); ++j ) + { + const midi_event & event = track[ j ]; + if ( event.m_type == midi_event::extended ) + { + std::size_t data_count = event.get_data_count(); + if ( !type_non_gm_found && data_count >= 1 && event.m_data[ 0 ] == 0xF0 ) + { + unsigned char test = 0; + unsigned char test2 = 0; + if ( data_count > 1 ) test = event.m_data[ 1 ]; + if ( data_count > 3 ) test2 = event.m_data[ 3 ]; + + const char * type = NULL; + + switch( test ) + { + case 0x7E: + type_found = true; + break; + case 0x43: + type = "XG"; + break; + case 0x42: + type = "X5"; + break; + case 0x41: + if ( test2 == 0x42 ) type = "GS"; + else if ( test2 == 0x16 ) type = "MT-32"; + else if ( test2 == 0x14 ) type = "D-50"; + } + + if ( type ) + { + type_found = true; + type_non_gm_found = true; + p_out.add_item( midi_meta_data_item( timestamp_to_ms( event.m_timestamp, tempo_track ), "type", type ) ); + } + } + else if ( data_count >= 2 && event.m_data[ 0 ] == 0xFF ) + { + data_count -= 2; + switch ( event.m_data[ 1 ] ) + { + case 6: + data.resize( data_count ); + event.copy_data( &data[0], 2, data_count ); + convert_mess_to_utf8( ( const char * ) &data[0], data_count, convert ); + p_out.add_item( midi_meta_data_item( timestamp_to_ms( event.m_timestamp, tempo_track ), "track_marker", convert.c_str() ) ); + break; + + case 2: + data.resize( data_count ); + event.copy_data( &data[0], 2, data_count ); + convert_mess_to_utf8( ( const char * ) &data[0], data_count, convert ); + p_out.add_item( midi_meta_data_item( timestamp_to_ms( event.m_timestamp, tempo_track ), "copyright", convert.c_str() ) ); + break; + + case 1: + data.resize( data_count ); + event.copy_data( &data[0], 2, data_count ); + convert_mess_to_utf8( ( const char * ) &data[0], data_count, convert ); + snprintf(temp, 31, "track_text_%02lu", i); + p_out.add_item( midi_meta_data_item( timestamp_to_ms( event.m_timestamp, tempo_track ), temp, convert.c_str() ) ); + break; + + case 3: + case 4: + data.resize( data_count ); + event.copy_data( &data[0], 2, data_count ); + convert_mess_to_utf8( ( const char * ) &data[0], data_count, convert ); + snprintf(temp, 31, "track_name_%02lu", i); + p_out.add_item( midi_meta_data_item( timestamp_to_ms( event.m_timestamp, tempo_track ), temp, convert.c_str() ) ); + break; + } + } + } + } + } + + if ( type_found && !type_non_gm_found ) + { + p_out.add_item( midi_meta_data_item( 0, "type", "GM" ) ); + } + + p_out.append( m_extra_meta_data ); +} + +void midi_container::scan_for_loops( bool p_xmi_loops, bool p_marker_loops ) +{ + std::vector data; + + unsigned long subsong_count = m_form == 2 ? m_tracks.size() : 1; + + m_timestamp_loop_start.resize( subsong_count ); + m_timestamp_loop_end.resize( subsong_count ); + + for ( unsigned long i = 0; i < subsong_count; ++i ) + { + m_timestamp_loop_start[ i ] = ~0UL; + m_timestamp_loop_end[ i ] = ~0UL; + } + + if ( p_xmi_loops ) + { + for ( unsigned long i = 0; i < m_tracks.size(); ++i ) + { + unsigned long subsong = 0; + if ( m_form == 2 ) subsong = i; + + const midi_track & track = m_tracks[ i ]; + for ( unsigned long j = 0; j < track.get_count(); ++j ) + { + const midi_event & event = track[ j ]; + if ( event.m_type == midi_event::control_change && + ( event.m_data[ 0 ] == 0x74 || event.m_data[ 0 ] == 0x75 ) ) + { + if ( event.m_data[ 0 ] == 0x74 ) + { + if ( m_timestamp_loop_start[ subsong ] == ~0u || m_timestamp_loop_start[ subsong ] > event.m_timestamp ) + { + m_timestamp_loop_start[ subsong ] = event.m_timestamp; + } + } + else + { + if ( m_timestamp_loop_end[ subsong ] == ~0u || m_timestamp_loop_end[ subsong ] < event.m_timestamp ) + { + m_timestamp_loop_end[ subsong ] = event.m_timestamp; + } + } + } + } + } + } + + if ( p_marker_loops ) + { + for ( unsigned long i = 0; i < m_tracks.size(); ++i ) + { + unsigned long subsong = 0; + if ( m_form == 2 ) subsong = i; + + const midi_track & track = m_tracks[ i ]; + for ( unsigned long j = 0; j < track.get_count(); ++j ) + { + const midi_event & event = track[ j ]; + if ( event.m_type == midi_event::extended && + event.get_data_count() >= 9 && + event.m_data[ 0 ] == 0xFF && event.m_data[ 1 ] == 0x06 ) + { + unsigned long data_count = event.get_data_count() - 2; + data.resize( data_count ); + event.copy_data( &data[0], 2, data_count ); + + if ( data_count == 9 && !strncasecmp( (const char *) &data[0], "loopStart", 9 ) ) + { + if ( m_timestamp_loop_start[ subsong ] == ~0u || m_timestamp_loop_start[ subsong ] > event.m_timestamp ) + { + m_timestamp_loop_start[ subsong ] = event.m_timestamp; + } + } + else if ( data_count == 7 && !strncasecmp( (const char *) &data[0], "loopEnd", 7 ) ) + { + if ( m_timestamp_loop_end[ subsong ] == ~0u || m_timestamp_loop_end[ subsong ] < event.m_timestamp ) + { + m_timestamp_loop_end[ subsong ] = event.m_timestamp; + } + } + } + } + } + } + + // Sanity + + for ( unsigned long i = 0; i < subsong_count; ++i ) + { + if ( m_timestamp_loop_start[ i ] != ~0UL && m_timestamp_loop_start[ i ] == m_timestamp_loop_end[ i ] ) + { + m_timestamp_loop_start[ i ] = ~0UL; + m_timestamp_loop_end[ i ] = ~0UL; + } + } +} diff --git a/Frameworks/midi_processing/midi_processing/midi_container.h b/Frameworks/midi_processing/midi_processing/midi_container.h new file mode 100644 index 000000000..a44bd0ab1 --- /dev/null +++ b/Frameworks/midi_processing/midi_processing/midi_container.h @@ -0,0 +1,244 @@ +#ifndef _MIDI_CONTAINER_H_ +#define _MIDI_CONTAINER_H_ + +#include +#include +#include + +struct midi_event +{ + enum + { + max_static_data_count = 16 + }; + + enum event_type + { + note_off = 0, + note_on, + polyphonic_aftertouch, + control_change, + program_change, + channel_aftertouch, + pitch_wheel, + extended + }; + + unsigned long m_timestamp; + + event_type m_type; + unsigned m_channel; + unsigned long m_data_count; + uint8_t m_data[max_static_data_count]; + std::vector m_ext_data; + + midi_event() : m_timestamp(0), m_type(note_off), m_channel(0), m_data_count(0) { } + midi_event( const midi_event & p_in ); + midi_event( unsigned long p_timestamp, event_type p_type, unsigned p_channel, const uint8_t * p_data, std::size_t p_data_count ); + + unsigned long get_data_count() const; + void copy_data( uint8_t * p_out, unsigned long p_offset, unsigned long p_count ) const; +}; + +class midi_track +{ + std::vector m_events; + +public: + midi_track() { } + midi_track(const midi_track & p_in); + + void add_event( const midi_event & p_event ); + std::size_t get_count() const; + const midi_event & operator [] ( std::size_t p_index ) const; + + void remove_event( unsigned long index ); +}; + +struct tempo_entry +{ + unsigned long m_timestamp; + unsigned m_tempo; + + tempo_entry() : m_timestamp(0), m_tempo(0) { } + tempo_entry(unsigned long p_timestamp, unsigned p_tempo); +}; + +class tempo_map +{ + std::vector m_entries; + +public: + void add_tempo( unsigned p_tempo, unsigned long p_timestamp ); + unsigned long timestamp_to_ms( unsigned long p_timestamp, unsigned p_dtx ) const; + + std::size_t get_count() const; + const tempo_entry & operator [] ( std::size_t p_index ) const; +}; + +struct system_exclusive_entry +{ + std::size_t m_port; + std::size_t m_offset; + std::size_t m_length; + system_exclusive_entry() : m_port(0), m_offset(0), m_length(0) { } + system_exclusive_entry(const system_exclusive_entry & p_in); + system_exclusive_entry(std::size_t p_port, std::size_t p_offset, std::size_t p_length); +}; + +class system_exclusive_table +{ + std::vector m_data; + std::vector m_entries; + +public: + unsigned add_entry( const uint8_t * p_data, std::size_t p_size, std::size_t p_port ); + void get_entry( unsigned p_index, const uint8_t * & p_data, std::size_t & p_size, std::size_t & p_port ); +}; + +struct midi_stream_event +{ + unsigned long m_timestamp; + uint32_t m_event; + + midi_stream_event() : m_timestamp(0), m_event(0) { } + midi_stream_event(unsigned long p_timestamp, uint32_t p_event); +}; + +struct midi_meta_data_item +{ + unsigned long m_timestamp; + std::string m_name; + std::string m_value; + + midi_meta_data_item() : m_timestamp(0) { } + midi_meta_data_item(const midi_meta_data_item & p_in); + midi_meta_data_item(unsigned long p_timestamp, const char * p_name, const char * p_value); +}; + +class midi_meta_data +{ + std::vector m_data; + +public: + midi_meta_data() { } + + void add_item( const midi_meta_data_item & p_item ); + + void append( const midi_meta_data & p_data ); + + bool get_item( const char * p_name, midi_meta_data_item & p_out ) const; + + std::size_t get_count() const; + + const midi_meta_data_item & operator [] ( std::size_t p_index ) const; +}; + +class midi_container +{ +public: + enum + { + clean_flag_emidi = 1 << 0, + clean_flag_instruments = 1 << 1, + clean_flag_banks = 1 << 2, + }; + +private: + unsigned m_form; + unsigned m_dtx; + std::vector m_channel_mask; + std::vector m_tempo_map; + std::vector m_tracks; + + std::vector m_port_numbers; + + std::vector< std::vector< std::string > > m_device_names; + + midi_meta_data m_extra_meta_data; + + std::vector m_timestamp_end; + + std::vector m_timestamp_loop_start; + std::vector m_timestamp_loop_end; + + unsigned long timestamp_to_ms( unsigned long p_timestamp, unsigned long p_subsong ) const; + + /* + * Normalize port numbers properly + */ + template void limit_port_number(T & number) + { + for ( unsigned i = 0; i < m_port_numbers.size(); i++ ) + { + if ( m_port_numbers[ i ] == number ) + { + number = i; + return; + } + } + m_port_numbers.push_back( number ); + number = m_port_numbers.size() - 1; + } + + template void limit_port_number(T & number) const + { + for ( unsigned i = 0; i < m_port_numbers.size(); i++ ) + { + if ( m_port_numbers[ i ] == number ) + { + number = i; + return; + } + } + } + +public: + midi_container() { m_device_names.resize( 16 ); } + + void initialize( unsigned p_form, unsigned p_dtx ); + + void add_track( const midi_track & p_track ); + + void add_track_event( std::size_t p_track_index, const midi_event & p_event ); + + /* + * These functions are really only designed to merge and later remove System Exclusive message dumps + */ + void merge_tracks( const midi_container & p_source ); + void set_track_count( unsigned count ); + void set_extra_meta_data( const midi_meta_data & p_data ); + + /* + * Blah. + * Hack 0: Remove channel 16 + * Hack 1: Remove channels 11-16 + */ + void apply_hackfix( unsigned hack ); + + void serialize_as_stream( unsigned long subsong, std::vector & p_stream, system_exclusive_table & p_system_exclusive, unsigned clean_flags ) const; + + void serialize_as_standard_midi_file( std::vector & p_midi_file ) const; + + void promote_to_type1(); + + unsigned long get_subsong_count() const; + unsigned long get_subsong( unsigned long p_index ) const; + + unsigned long get_timestamp_end(unsigned long subsong, bool ms = false) const; + + unsigned get_format() const; + unsigned get_track_count() const; + unsigned get_channel_count(unsigned long subsong) const; + + unsigned long get_timestamp_loop_start(unsigned long subsong, bool ms = false) const; + unsigned long get_timestamp_loop_end(unsigned long subsong, bool ms = false) const; + + void get_meta_data( unsigned long subsong, midi_meta_data & p_out ); + + void scan_for_loops( bool p_xmi_loops, bool p_marker_loops ); + + static void encode_delta( std::vector & p_out, unsigned long delta ); +}; + +#endif diff --git a/Frameworks/midi_processing/midi_processing/midi_processing-Info.plist b/Frameworks/midi_processing/midi_processing/midi_processing-Info.plist new file mode 100644 index 000000000..02c2a8310 --- /dev/null +++ b/Frameworks/midi_processing/midi_processing/midi_processing-Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + NoWork-Inc.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSHumanReadableCopyright + Copyright © 2013 Christopher Snowhill. All rights reserved. + NSPrincipalClass + + + diff --git a/Frameworks/midi_processing/midi_processing/midi_processor.h b/Frameworks/midi_processing/midi_processing/midi_processor.h new file mode 100644 index 000000000..20c289901 --- /dev/null +++ b/Frameworks/midi_processing/midi_processing/midi_processor.h @@ -0,0 +1,61 @@ +#ifndef _MIDI_PROCESSORS_H_ +#define _MIDI_PROCESSORS_H_ + +#include "midi_container.h" + +#ifndef _countof +template +char ( &_ArraySizeHelper( T (&array)[N] ))[N]; +#define _countof( array ) (sizeof( _ArraySizeHelper( array ) )) +#endif + +class midi_processor +{ + static const uint8_t end_of_track[2]; + static const uint8_t loop_start[11]; + static const uint8_t loop_end[9]; + + static const uint8_t hmp_default_tempo[5]; + + static const uint8_t xmi_default_tempo[5]; + + static const uint8_t mus_default_tempo[5]; + static const uint8_t mus_controllers[15]; + + static const uint8_t lds_default_tempo[5]; + + static int decode_delta( std::vector::const_iterator & it ); + static unsigned decode_hmp_delta( std::vector::const_iterator & it ); + static unsigned decode_xmi_delta( std::vector::const_iterator & it, std::vector::const_iterator end ); + + static bool is_standard_midi( std::vector const& p_file ); + static bool is_riff_midi( std::vector const& p_file ); + static bool is_hmp( std::vector const& p_file ); + static bool is_hmi( std::vector const& p_file ); + static bool is_xmi( std::vector const& p_file ); + static bool is_mus( std::vector const& p_file ); + static bool is_mids( std::vector const& p_file ); + static bool is_lds( std::vector const& p_file, const char * p_extension ); + static bool is_gmf( std::vector const& p_file ); + static bool is_syx( std::vector const& p_file ); + + static bool process_standard_midi_track( std::vector::const_iterator & it, std::vector::const_iterator end, midi_container & p_out, bool needs_end_marker ); + + static bool process_standard_midi( std::vector const& p_file, midi_container & p_out ); + static bool process_riff_midi( std::vector const& p_file, midi_container & p_out ); + static bool process_hmp( std::vector const& p_file, midi_container & p_out ); + static bool process_hmi( std::vector const& p_file, midi_container & p_out ); + static bool process_xmi( std::vector const& p_file, midi_container & p_out ); + static bool process_mus( std::vector const& p_file, midi_container & p_out ); + static bool process_mids( std::vector const& p_file, midi_container & p_out ); + static bool process_lds( std::vector const& p_file, midi_container & p_out ); + static bool process_gmf( std::vector const& p_file, midi_container & p_out ); + static bool process_syx( std::vector const& p_file, midi_container & p_out ); + +public: + static bool process_file( std::vector const& p_file, const char * p_extension, midi_container & p_out ); + + static bool process_syx_file( std::vector const& p_file, midi_container & p_out ); +}; + +#endif diff --git a/Frameworks/midi_processing/midi_processing/midi_processor_gmf.cpp b/Frameworks/midi_processing/midi_processing/midi_processor_gmf.cpp new file mode 100644 index 000000000..b8fdc8899 --- /dev/null +++ b/Frameworks/midi_processing/midi_processing/midi_processor_gmf.cpp @@ -0,0 +1,52 @@ +#include "midi_processor.h" + +bool midi_processor::is_gmf( std::vector const& p_file ) +{ + if ( p_file.size() < 32 ) return false; + if ( p_file[ 0 ] != 'G' || p_file[ 1 ] != 'M' || p_file[ 2 ] != 'F' || p_file[ 3 ] != 1 ) return false; + return true; +} + +bool midi_processor::process_gmf( std::vector const& p_file, midi_container & p_out ) +{ + uint8_t buffer[10]; + + p_out.initialize( 0, 0xC0 ); + + uint16_t tempo = ( p_file[ 4 ] << 8 ) | p_file[ 5 ]; + uint32_t tempo_scaled = tempo * 100000; + + midi_track track; + + buffer[0] = 0xFF; + buffer[1] = 0x51; + buffer[2] = tempo_scaled >> 16; + buffer[3] = tempo_scaled >> 8; + buffer[4] = tempo_scaled; + + track.add_event( midi_event( 0, midi_event::extended, 0, buffer, 5 ) ); + + buffer[0] = 0xF0; + buffer[1] = 0x41; + buffer[2] = 0x10; + buffer[3] = 0x16; + buffer[4] = 0x12; + buffer[5] = 0x7F; + buffer[6] = 0x00; + buffer[7] = 0x00; + buffer[8] = 0x01; + buffer[9] = 0xF7; + + track.add_event( midi_event( 0, midi_event::extended, 0, buffer, 10 ) ); + + buffer[0] = 0xFF; + buffer[1] = 0x2F; + + track.add_event( midi_event( 0, midi_event::extended, 0, buffer, 2 ) ); + + p_out.add_track( track ); + + std::vector::const_iterator it = p_file.begin() + 7; + + return process_standard_midi_track( it, p_file.end(), p_out, false ); +} diff --git a/Frameworks/midi_processing/midi_processing/midi_processor_helpers.cpp b/Frameworks/midi_processing/midi_processing/midi_processor_helpers.cpp new file mode 100644 index 000000000..0fec3bee5 --- /dev/null +++ b/Frameworks/midi_processing/midi_processing/midi_processor_helpers.cpp @@ -0,0 +1,68 @@ +#include "midi_processor.h" + +const uint8_t midi_processor::end_of_track[2] = {0xFF, 0x2F}; +const uint8_t midi_processor::loop_start[11] = {0xFF, 0x06, 'l', 'o', 'o', 'p', 'S', 't', 'a', 'r', 't'}; +const uint8_t midi_processor::loop_end[9] = {0xFF, 0x06, 'l', 'o', 'o', 'p', 'E', 'n', 'd'}; + +int midi_processor::decode_delta( std::vector::const_iterator & it ) +{ + int delta = 0; + unsigned char byte; + do + { + byte = *it++; + delta = ( delta << 7 ) + ( byte & 0x7F ); + } + while ( byte & 0x80 ); + return delta; +} + +bool midi_processor::process_file( std::vector const& p_file, const char * p_extension, midi_container & p_out ) +{ + if ( is_standard_midi( p_file ) ) + { + return process_standard_midi( p_file, p_out ); + } + else if ( is_riff_midi( p_file ) ) + { + return process_riff_midi( p_file, p_out ); + } + else if ( is_hmp( p_file ) ) + { + return process_hmp( p_file, p_out ); + } + else if ( is_hmi( p_file ) ) + { + return process_hmi( p_file, p_out ); + } + else if ( is_xmi( p_file ) ) + { + return process_xmi( p_file, p_out ); + } + else if ( is_mus( p_file ) ) + { + return process_mus( p_file, p_out ); + } + else if ( is_mids( p_file ) ) + { + return process_mids( p_file, p_out ); + } + else if ( is_lds( p_file, p_extension ) ) + { + return process_lds( p_file, p_out ); + } + else if ( is_gmf( p_file ) ) + { + return process_gmf( p_file, p_out ); + } + else return false; +} + +bool midi_processor::process_syx_file( std::vector const& p_file, midi_container & p_out ) +{ + if ( is_syx( p_file ) ) + { + return process_syx( p_file, p_out ); + } + else return false; +} diff --git a/Frameworks/midi_processing/midi_processing/midi_processor_hmi.cpp b/Frameworks/midi_processing/midi_processing/midi_processor_hmi.cpp new file mode 100644 index 000000000..9581f016b --- /dev/null +++ b/Frameworks/midi_processing/midi_processing/midi_processor_hmi.cpp @@ -0,0 +1,209 @@ +#include "midi_processor.h" + +bool midi_processor::is_hmi( std::vector const& p_file ) +{ + if ( p_file.size() < 12 ) return false; + if ( p_file[ 0 ] != 'H' || p_file[ 1 ] != 'M' || p_file[ 2 ] != 'I' || p_file[ 3 ] != '-' || + p_file[ 4 ] != 'M' || p_file[ 5 ] != 'I' || p_file[ 6 ] != 'D' || p_file[ 7 ] != 'I' || + p_file[ 8 ] != 'S' || p_file[ 9 ] != 'O' || p_file[ 10 ] != 'N' || p_file[ 11 ] != 'G' ) return false; + return true; +} + +bool midi_processor::process_hmi( std::vector const& p_file, midi_container & p_out ) +{ + std::vector buffer; + + std::vector::const_iterator it = p_file.begin() + 0xE4; + + uint32_t track_count = it[ 0 ] | ( it[ 1 ] << 8 ) | ( it[ 2 ] << 16 ) | ( it[ 3 ] << 24 ); + uint32_t track_table_offset = it[ 4 ] | ( it[ 5 ] << 8 ) | ( it[ 6 ] << 16 ) | ( it[ 7 ] << 24 ); + + it = p_file.begin() + track_table_offset; + + std::vector track_offsets; + track_offsets.resize( track_count ); + + for ( unsigned i = 0; i < track_count; ++i ) + { + track_offsets[ i ] = it[ 0 ] | ( it[ 1 ] << 8 ) | ( it[ 2 ] << 16 ) | ( it[ 3 ] << 24 ); + it += 4; + } + + p_out.initialize( 1, 0xC0 ); + + { + midi_track track; + track.add_event( midi_event( 0, midi_event::extended, 0, hmp_default_tempo, _countof( hmp_default_tempo ) ) ); + track.add_event( midi_event( 0, midi_event::extended, 0, end_of_track, _countof( end_of_track ) ) ); + p_out.add_track( track ); + } + + for ( unsigned i = 0; i < track_count; ++i ) + { + unsigned track_offset = track_offsets[ i ]; + unsigned long track_length; + if ( i + 1 < track_count ) + { + track_length = track_offsets[ i + 1 ] - track_offset; + } + else + { + track_length = p_file.size() - track_offset; + } + std::vector::const_iterator track_body = p_file.begin() + track_offset; + std::vector::const_iterator track_end = track_body + track_length; + + if ( track_length < 13 ) return false; + if ( track_body[ 0 ] != 'H' || track_body[ 1 ] != 'M' || track_body[ 2 ] != 'I' || track_body[ 3 ] != '-' || + track_body[ 4 ] != 'M' || track_body[ 5 ] != 'I' || track_body[ 6 ] != 'D' || track_body[ 7 ] != 'I' || + track_body[ 8 ] != 'T' || track_body[ 9 ] != 'R' || track_body[ 10 ] != 'A' || track_body[ 11 ] != 'C' || + track_body[ 12 ] != 'K' ) return false; + + midi_track track; + unsigned current_timestamp = 0; + unsigned char last_event_code = 0xFF; + + unsigned last_event_timestamp = 0; + + if ( track_length < 0x4B + 4 ) return false; + + uint32_t meta_offset = track_body[ 0x4B ] | ( track_body[ 0x4C ] << 8 ) | ( track_body[ 0x4D ] << 16 ) | ( track_body[ 0x4E ] << 24 ); + if ( meta_offset && meta_offset + 1 < track_length ) + { + buffer.resize( 2 ); + std::copy( track_body + meta_offset, track_body + meta_offset + 2, buffer.begin() ); + unsigned meta_size = buffer[ 1 ]; + if ( meta_offset + 2 + meta_size > track_length ) return false; + buffer.resize( meta_size + 2 ); + std::copy( track_body + meta_offset + 2, track_body + meta_offset + 2 + meta_size, buffer.begin() + 2 ); + while ( meta_size > 0 && buffer[ meta_size + 1 ] == ' ' ) --meta_size; + if ( meta_size > 0 ) + { + buffer[ 0 ] = 0xFF; + buffer[ 1 ] = 0x01; + track.add_event( midi_event( 0, midi_event::extended, 0, &buffer[0], meta_size + 2 ) ); + } + } + + if ( track_length < 0x57 + 4 ) return false; + + uint32_t track_data_offset = track_body[ 0x57 ] | ( track_body[ 0x58 ] << 8 ) | ( track_body[ 0x59 ] << 16 ) | ( track_body[ 0x5A ] << 24 ); + + it = track_body + track_data_offset; + + buffer.resize( 3 ); + + while ( it < track_end ) + { + int delta = decode_delta( it ); + if ( delta > 0xFFFF || delta < 0 ) + { + current_timestamp = last_event_timestamp; + /*console::formatter() << "[foo_midi] Large HMI delta detected, shunting.";*/ + } + else + { + current_timestamp += delta; + if ( current_timestamp > last_event_timestamp ) + { + last_event_timestamp = current_timestamp; + } + } + + buffer[ 0 ] = *it++; + if ( buffer[ 0 ] == 0xFF ) + { + last_event_code = 0xFF; + buffer[ 1 ] = *it++; + int meta_count = decode_delta( it ); + if ( meta_count < 0 ) return false; /*throw exception_io_data( "Invalid HMI meta message" );*/ + buffer.resize( meta_count + 2 ); + std::copy( it, it + meta_count, buffer.begin() + 2 ); + it += meta_count; + if ( buffer[ 1 ] == 0x2F && last_event_timestamp > current_timestamp ) + { + current_timestamp = last_event_timestamp; + } + track.add_event( midi_event( current_timestamp, midi_event::extended, 0, &buffer[0], meta_count + 2 ) ); + if ( buffer[ 1 ] == 0x2F ) break; + } + else if ( buffer[ 0 ] == 0xF0 ) + { + last_event_code = 0xFF; + int system_exclusive_count = decode_delta( it ); + if ( system_exclusive_count < 0 ) return false; /*throw exception_io_data( "Invalid HMI System Exclusive message" );*/ + buffer.resize( system_exclusive_count + 1 ); + std::copy( it, it + system_exclusive_count, buffer.begin() + 1 ); + it += system_exclusive_count; + track.add_event( midi_event( current_timestamp, midi_event::extended, 0, &buffer[0], system_exclusive_count + 1 ) ); + } + else if ( buffer[ 0 ] == 0xFE ) + { + last_event_code = 0xFF; + buffer[ 1 ] = *it++; + if ( buffer[ 1 ] == 0x10 ) + { + it += 2; + buffer[ 2 ] = *it++; + it += buffer[ 2 ] + 4; + } + else if ( buffer[ 1 ] == 0x12 ) + { + it += 2; + } + else if ( buffer[ 1 ] == 0x13 ) + { + it += 10; + } + else if ( buffer[ 1 ] == 0x14 ) + { + it += 2; + p_out.add_track_event( 0, midi_event( current_timestamp, midi_event::extended, 0, loop_start, _countof( loop_start ) ) ); + } + else if ( buffer[ 1 ] == 0x15 ) + { + it += 6; + p_out.add_track_event( 0, midi_event( current_timestamp, midi_event::extended, 0, loop_end, _countof( loop_end ) ) ); + } + else return false; /*throw exception_io_data( "Unexpected HMI meta event" );*/ + } + else if ( buffer[ 0 ] <= 0xEF ) + { + unsigned bytes_read = 1; + if ( buffer[ 0 ] >= 0x80 ) + { + buffer[ 1 ] = *it++; + last_event_code = buffer[ 0 ]; + } + else + { + if ( last_event_code == 0xFF ) return false; /*throw exception_io_data( "HMI used shortened event after Meta or SysEx message" );*/ + buffer[ 1 ] = buffer[ 0 ]; + buffer[ 0 ] = last_event_code; + } + midi_event::event_type type = (midi_event::event_type)( ( buffer[ 0 ] >> 4 ) - 8 ); + unsigned channel = buffer[ 0 ] & 0x0F; + if ( type != midi_event::program_change && type != midi_event::channel_aftertouch ) + { + buffer[ 2 ] = *it++; + bytes_read = 2; + } + track.add_event( midi_event( current_timestamp, type, channel, &buffer[ 1 ], bytes_read ) ); + if ( type == midi_event::note_on ) + { + buffer[ 2 ] = 0x00; + int note_length = decode_delta( it ); + if ( note_length < 0 ) return false; /*throw exception_io_data( "Invalid HMI note message" );*/ + unsigned note_end_timestamp = current_timestamp + note_length; + if ( note_end_timestamp > last_event_timestamp ) last_event_timestamp = note_end_timestamp; + track.add_event( midi_event( note_end_timestamp, midi_event::note_on, channel, &buffer[1], bytes_read ) ); + } + } + else return false; /*throw exception_io_data( "Unexpected HMI status code" );*/ + } + + p_out.add_track( track ); + } + + return true; +} diff --git a/Frameworks/midi_processing/midi_processing/midi_processor_hmp.cpp b/Frameworks/midi_processing/midi_processing/midi_processor_hmp.cpp new file mode 100644 index 000000000..6e0ec068c --- /dev/null +++ b/Frameworks/midi_processing/midi_processing/midi_processor_hmp.cpp @@ -0,0 +1,147 @@ +#include "midi_processor.h" + +const uint8_t midi_processor::hmp_default_tempo[5] = {0xFF, 0x51, 0x18, 0x80, 0x00}; + +bool midi_processor::is_hmp( std::vector const& p_file ) +{ + if ( p_file.size() < 8 ) return false; + if ( p_file[ 0 ] != 'H' || p_file[ 1 ] != 'M' || p_file[ 2 ] != 'I' || p_file[ 3 ] != 'M' || + p_file[ 4 ] != 'I' || p_file[ 5 ] != 'D' || p_file[ 6 ] != 'I' || + ( p_file[ 7 ] != 'P' && p_file[ 7 ] != 'R' ) ) return false; + return true; +} + +unsigned midi_processor::decode_hmp_delta( std::vector::const_iterator & it ) +{ + unsigned delta = 0; + unsigned shift = 0; + unsigned char byte; + do + { + byte = *it++; + delta = delta + ( ( byte & 0x7F ) << shift ); + shift += 7; + } + while ( !( byte & 0x80 ) ); + return delta; +} + +bool midi_processor::process_hmp( std::vector const& p_file, midi_container & p_out ) +{ + bool is_funky = p_file[ 7 ] == 'R'; + + uint8_t track_count_8; + uint16_t dtx = 0xC0; + + std::vector::const_iterator it = p_file.begin() + ( is_funky ? 0x1A : 0x30 ); + + track_count_8 = *it; + + if ( is_funky ) + { + dtx = ( p_file[ 0x4C ] << 16 ) | p_file[ 0x4D ]; + } + + p_out.initialize( 1, dtx ); + + { + midi_track track; + track.add_event( midi_event( 0, midi_event::extended, 0, hmp_default_tempo, _countof( hmp_default_tempo ) ) ); + track.add_event( midi_event( 0, midi_event::extended, 0, end_of_track, _countof( end_of_track ) ) ); + p_out.add_track( track ); + } + + uint8_t buffer[ 4 ]; + + buffer[ 0 ] = *it++; + + while ( it < p_file.end() ) + { + if ( buffer[ 0 ] != 0xFF ) + { + buffer[ 0 ] = *it++; + continue; + } + buffer[ 1 ] = *it++; + if ( buffer[ 1 ] != 0x2F ) + { + buffer[ 0 ] = buffer[ 1 ]; + continue; + } + break; + } + + it += ( is_funky ? 3 : 5 ); + + unsigned track_count = track_count_8; + + for ( unsigned i = 1; i < track_count; ++i ) + { + uint16_t track_size_16; + uint32_t track_size_32; + + if ( is_funky ) + { + track_size_16 = it[ 0 ] | ( it[ 1 ] << 8 ); + it += 2; + track_size_32 = track_size_16 - 4; + if ( p_file.end() - it < track_size_32 + 2 ) break; + it += 2; + } + else + { + track_size_32 = it[ 0 ] | ( it[ 1 ] << 8 ) | ( it[ 2 ] << 16 ) | ( it[ 3 ] << 24 ); + it += 4; + track_size_32 -= 12; + if ( p_file.end() - it < track_size_32 + 8 ) break; + it += 4; + } + + midi_track track; + + unsigned current_timestamp = 0; + + std::vector buffer; + buffer.resize( 3 ); + + std::vector::const_iterator track_end = it + track_size_32; + + while ( it < track_end ) + { + unsigned delta = decode_hmp_delta( it ); + current_timestamp += delta; + buffer[ 0 ] = *it++; + if ( buffer[ 0 ] == 0xFF ) + { + buffer[ 1 ] = *it++; + int meta_count = decode_delta( it ); + if ( meta_count < 0 ) return false; /*throw exception_io_data( "Invalid HMP meta message" );*/ + buffer.resize( meta_count + 2 ); + std::copy( it, it + meta_count, buffer.begin() + 2 ); + it += meta_count; + track.add_event( midi_event( current_timestamp, midi_event::extended, 0, &buffer[0], meta_count + 2 ) ); + if ( buffer[ 1 ] == 0x2F ) break; + } + else if ( buffer[ 0 ] >= 0x80 && buffer[ 0 ] <= 0xEF ) + { + unsigned bytes_read = 2; + switch ( buffer[ 0 ] & 0xF0 ) + { + case 0xC0: + case 0xD0: + bytes_read = 1; + } + std::copy( it, it + bytes_read, buffer.begin() + 1 ); + it += bytes_read; + track.add_event( midi_event( current_timestamp, (midi_event::event_type)( ( buffer[ 0 ] >> 4 ) - 8 ), buffer[ 0 ] & 0x0F, &buffer[1], bytes_read ) ); + } + else return false; /*throw exception_io_data( "Unexpected status code in HMP track" );*/ + } + + it = track_end + ( is_funky ? 0 : 4 ); + + p_out.add_track( track ); + } + + return true; +} diff --git a/Frameworks/midi_processing/midi_processing/midi_processor_lds.cpp b/Frameworks/midi_processing/midi_processing/midi_processor_lds.cpp new file mode 100644 index 000000000..050ab5f2b --- /dev/null +++ b/Frameworks/midi_processing/midi_processing/midi_processor_lds.cpp @@ -0,0 +1,1038 @@ +#include "midi_processor.h" + +#include + +const uint8_t midi_processor::lds_default_tempo[5] = { 0xFF, 0x51, 0x07, 0xA1, 0x20 }; + +#define ENABLE_WHEEL +//#define ENABLE_VIB +//#define ENABLE_ARP +//#define ENABLE_TREM + +#ifdef ENABLE_WHEEL +#define WHEEL_RANGE_HIGH 12 +#define WHEEL_RANGE_LOW 0 +#define WHEEL_SCALE(x) ((x) * 512 / WHEEL_RANGE_HIGH) +#define WHEEL_SCALE_LOW(x) (WHEEL_SCALE(x) & 127) +#define WHEEL_SCALE_HIGH(x) (((WHEEL_SCALE(x) >> 7) + 64) & 127) +#endif + +#ifdef ENABLE_VIB +// Vibrato (sine) table +static const unsigned char vibtab[] = { + 0, 13, 25, 37, 50, 62, 74, 86, 98, 109, 120, 131, 142, 152, 162, + 171, 180, 189, 197, 205, 212, 219, 225, 231, 236, 240, 244, 247, + 250, 252, 254, 255, 255, 255, 254, 252, 250, 247, 244, 240, 236, + 231, 225, 219, 212, 205, 197, 189, 180, 171, 162, 152, 142, 131, + 120, 109, 98, 86, 74, 62, 50, 37, 25, 13 +}; +#endif + +#ifdef ENABLE_TREM +// Tremolo (sine * sine) table +static const unsigned char tremtab[] = { + 0, 0, 1, 1, 2, 4, 5, 7, 10, 12, 15, 18, 21, 25, 29, 33, 37, 42, 47, + 52, 57, 62, 67, 73, 79, 85, 90, 97, 103, 109, 115, 121, 128, 134, + 140, 146, 152, 158, 165, 170, 176, 182, 188, 193, 198, 203, 208, + 213, 218, 222, 226, 230, 234, 237, 240, 243, 245, 248, 250, 251, + 253, 254, 254, 255, 255, 255, 254, 254, 253, 251, 250, 248, 245, + 243, 240, 237, 234, 230, 226, 222, 218, 213, 208, 203, 198, 193, + 188, 182, 176, 170, 165, 158, 152, 146, 140, 134, 127, 121, 115, + 109, 103, 97, 90, 85, 79, 73, 67, 62, 57, 52, 47, 42, 37, 33, 29, + 25, 21, 18, 15, 12, 10, 7, 5, 4, 2, 1, 1, 0 +}; +#endif + +bool midi_processor::is_lds( std::vector const& p_file, const char * p_extension ) +{ + if ( strcasecmp( p_extension, "LDS" ) ) return false; + if ( p_file.size() < 1 ) return false; + if ( p_file[ 0 ] > 2 ) return false; + return true; +} + +struct sound_patch +{ + // skip 11 bytes worth of Adlib crap + uint8_t keyoff; +#ifdef ENABLE_WHEEL + uint8_t portamento; + int8_t glide; +#endif + // skip 1 byte +#ifdef ENABLE_VIB + uint8_t vibrato; + uint8_t vibrato_delay; +#endif +#ifdef ENABLE_TREM + uint8_t modulator_tremolo; + uint8_t carrier_tremolo; + uint8_t tremolo_delay; +#endif +#ifdef ENABLE_ARP + uint8_t arpeggio; + int8_t arpeggio_table[12]; +#endif + // skip 4 bytes worth of digital instrument crap + // skip 3 more bytes worth of Adlib crap that isn't even used + uint8_t midi_instrument; + uint8_t midi_velocity; + uint8_t midi_key; + int8_t midi_transpose; + // skip 2 bytes worth of MIDI dummy fields or whatever +}; + +struct channel_state { +#ifdef ENABLE_WHEEL + int16_t gototune, lasttune; +#endif + uint16_t packpos; + int8_t finetune; +#ifdef ENABLE_WHEEL + uint8_t glideto, portspeed; +#endif + uint8_t nextvol, volmod, volcar, + keycount, packwait; +#ifdef ENABLE_VIB + uint8_t vibwait, vibspeed, vibrate, vibcount; +#endif +#ifdef ENABLE_TREM + uint8_t trmstay, trmwait, trmspeed, trmrate, trmcount, + trcwait, trcspeed, trcrate, trccount; +#endif +#ifdef ENABLE_ARP + uint8_t arp_count, arp_size, arp_speed, arp_pos; + int8_t arp_tab[12]; +#endif + + struct { + uint8_t chandelay, sound; + uint16_t high; + } chancheat; +}; + +void playsound( uint8_t current_instrument[], std::vector const& patches, uint8_t last_note[], uint8_t last_channel[], uint8_t last_instrument[], uint8_t last_volume[], uint8_t last_sent_volume[], +#ifdef ENABLE_WHEEL + int16_t last_pitch_wheel[], +#endif + channel_state * c, uint8_t allvolume, unsigned current_timestamp, unsigned sound, unsigned chan, unsigned high, midi_track & track ) +{ + uint8_t buffer[ 2 ]; + current_instrument[ chan ] = sound; + if ( sound >= patches.size() ) return; + const sound_patch & patch = patches[ current_instrument[ chan ] ]; + unsigned channel = ( patch.midi_instrument >= 0x80 ) ? 9 : ( chan == 9 ) ? 10 : chan; + unsigned saved_last_note = last_note[ chan ]; + unsigned note; + + if ( channel != 9 ) + { + // set fine tune + high += c->finetune; + + // arpeggio handling +#ifdef ENABLE_ARP + if(patch.arpeggio) + { + short arpcalc = patch.arpeggio_table[0] << 4; + + high += arpcalc; + } +#endif + + // and MIDI transpose + high = (int)high + ( patch.midi_transpose << 4 ); + + note = high +#ifdef ENABLE_WHEEL + - c->lasttune +#endif + ; + + // glide handling +#ifdef ENABLE_WHEEL + if(c->glideto != 0) + { + c->gototune = note - ( last_note[ chan ] << 4 ) + c->lasttune; + c->portspeed = c->glideto; + c->glideto = c->finetune = 0; + return; + } +#endif + + if ( patch.midi_instrument != last_instrument[ chan ] ) + { + buffer[ 0 ] = patch.midi_instrument; + track.add_event( midi_event( current_timestamp, midi_event::program_change, channel, buffer, 1 ) ); + last_instrument[ chan ] = patch.midi_instrument; + } + } + else + { + note = ( patch.midi_instrument & 0x7F ) << 4; + } + + unsigned volume = 127; + + if ( c->nextvol ) + { + volume = ( c->nextvol & 0x3F ) * 127 / 63; + last_volume[ chan ] = volume; + } + + if ( allvolume ) + { + volume = volume * allvolume / 255; + } + + if ( volume != last_sent_volume[ channel ] ) + { + buffer[ 0 ] = 7; + buffer[ 1 ] = volume; + track.add_event( midi_event( current_timestamp, midi_event::control_change, last_channel[ chan ], buffer, 2 ) ); + last_sent_volume[ channel ] = volume; + } + + if ( saved_last_note != 0xFF ) + { + buffer[ 0 ] = saved_last_note; + buffer[ 1 ] = 127; + track.add_event( midi_event( current_timestamp, midi_event::note_off, last_channel[ chan ], buffer, 2 ) ); + last_note[ chan ] = 0xFF; +#ifdef ENABLE_WHEEL + if ( channel != 9 ) + { + note += c->lasttune; + c->lasttune = 0; + if ( last_pitch_wheel[ channel ] != 0 ) + { + buffer[ 0 ] = 0; + buffer[ 1 ] = 64; + track.add_event( midi_event( current_timestamp, midi_event::pitch_wheel, last_channel[ chan ], buffer, 2 ) ); + last_pitch_wheel[ channel ] = 0; + } + } +#endif + } +#ifdef ENABLE_WHEEL + if ( c->lasttune != last_pitch_wheel[ channel ] ) + { + buffer[ 0 ] = WHEEL_SCALE_LOW( c->lasttune ); + buffer[ 1 ] = WHEEL_SCALE_HIGH( c->lasttune ); + track.add_event( midi_event( current_timestamp, midi_event::pitch_wheel, channel, buffer, 2 ) ); + last_pitch_wheel[ channel ] = c->lasttune; + } + if( !patch.glide || last_note[ chan ] == 0xFF ) +#endif + { +#ifdef ENABLE_WHEEL + if( !patch.portamento || last_note[ chan ] == 0xFF ) +#endif + { + buffer[ 0 ] = note >> 4; + buffer[ 1 ] = patch.midi_velocity; + track.add_event( midi_event( current_timestamp, midi_event::note_on, channel, buffer, 2 ) ); + last_note[ chan ] = note >> 4; + last_channel[ chan ] = channel; +#ifdef ENABLE_WHEEL + c->gototune = c->lasttune; +#endif + } +#ifdef ENABLE_WHEEL + else + { + c->gototune = note - ( last_note[ chan ] << 4 ) + c->lasttune; + c->portspeed = patch.portamento; + buffer[ 0 ] = last_note[ chan ] = saved_last_note; + buffer[ 1 ] = patch.midi_velocity; + track.add_event( midi_event( current_timestamp, midi_event::note_on, channel, buffer, 2 ) ); + } +#endif + } +#ifdef ENABLE_WHEEL + else + { + buffer[ 0 ] = note >> 4; + buffer[ 1 ] = patch.midi_velocity; + track.add_event( midi_event( current_timestamp, midi_event::note_on, channel, buffer, 2 ) ); + last_note[ chan ] = note >> 4; + last_channel[ chan ] = channel; + c->gototune = patch.glide; + c->portspeed = patch.portamento; + } +#endif + +#ifdef ENABLE_VIB + if(!patch.vibrato) + { + c->vibwait = c->vibspeed = c->vibrate = 0; + } + else + { + c->vibwait = patch.vibrato_delay; + // PASCAL: c->vibspeed = ((i->vibrato >> 4) & 15) + 1; + c->vibspeed = (patch.vibrato >> 4) + 2; + c->vibrate = (patch.vibrato & 15) + 1; + } +#endif + +#ifdef ENABLE_TREM + if(!(c->trmstay & 0xf0)) + { + c->trmwait = (patch.tremolo_delay & 0xf0) >> 3; + // PASCAL: c->trmspeed = (i->mod_trem >> 4) & 15; + c->trmspeed = patch.modulator_tremolo >> 4; + c->trmrate = patch.modulator_tremolo & 15; + c->trmcount = 0; + } + + if(!(c->trmstay & 0x0f)) + { + c->trcwait = (patch.tremolo_delay & 15) << 1; + // PASCAL: c->trcspeed = (i->car_trem >> 4) & 15; + c->trcspeed = patch.carrier_tremolo >> 4; + c->trcrate = patch.carrier_tremolo & 15; + c->trccount = 0; + } +#endif + +#ifdef ENABLE_ARP + c->arp_size = patch.arpeggio & 15; + c->arp_speed = patch.arpeggio >> 4; + memcpy(c->arp_tab, patch.arpeggio_table, 12); + c->arp_pos = c->arp_count = 0; +#endif +#ifdef ENABLE_VIB + c->vibcount = 0; +#endif +#ifdef ENABLE_WHEEL + c->glideto = 0; +#endif + c->keycount = patch.keyoff; + c->nextvol = c->finetune = 0; +} + +bool midi_processor::process_lds( std::vector const& p_file, midi_container & p_out ) +{ + struct position_data + { + uint16_t pattern_number; + uint8_t transpose; + }; + + uint8_t mode; + /*uint16_t speed;*/ + uint8_t tempo; + uint8_t pattern_length; + uint8_t channel_delay[ 9 ]; + /*uint8_t register_bd;*/ + uint16_t patch_count; + std::vector patches; + uint16_t position_count; + std::vector positions; + std::size_t pattern_count; + std::vector patterns; + + std::vector::const_iterator it = p_file.begin(); + + mode = *it++; + if ( mode > 2 ) return false; /*throw exception_io_data( "Invalid LDS mode" );*/ + /*speed = it[ 0 ] | ( it[ 1 ] << 8 );*/ + tempo = it[ 2 ]; + pattern_length = it[ 3 ]; + it += 4; + for ( unsigned i = 0; i < 9; ++i ) + channel_delay[ i ] = *it++; + /*register_bd = *it++;*/ it++; + + patch_count = it[ 0 ] | ( it[ 1 ] << 8 ); + it += 2; + patches.resize( patch_count ); + for ( unsigned i = 0; i < patch_count; ++i ) + { + sound_patch & patch = patches[ i ]; + it += 11; + patch.keyoff = *it++; +#ifdef ENABLE_WHEEL + patch.portamento = *it++; + patch.glide = *it++; + it++; +#else + it += 3; +#endif +#ifdef ENABLE_VIB + patch.vibrato = *it++; + patch.vibrato_delay = *it++; +#else + it += 2; +#endif +#ifdef ENABLE_TREM + patch.modulator_tremolo = *it++; + patch.carrier_tremolo = *it++; + patch.tremolo_delay = *it++; +#else + it += 3; +#endif +#ifdef ENABLE_ARP + patch.arpeggio = *it++; + for ( unsigned j = 0; j < 12; ++j ) + patch.arpeggio_table[ j ] = *it++; + it += 7; +#else + it += 20; +#endif + patch.midi_instrument = *it++; + patch.midi_velocity = *it++; + patch.midi_key = *it++; + patch.midi_transpose = *it++; + it += 2; + +#ifdef ENABLE_WHEEL + // hax + if ( patch.midi_instrument >= 0x80 ) + { + patch.glide = 0; + } +#endif + } + + position_count = it[ 0 ] | ( it[ 1 ] << 8 ); + it += 2; + positions.resize( 9 * position_count ); + for ( unsigned i = 0; i < position_count; ++i ) + { + for ( unsigned j = 0; j < 9; ++j ) + { + position_data & position = positions[ i * 9 + j ]; + position.pattern_number = it[ 0 ] | ( it[ 1 ] << 8 ); + if ( position.pattern_number & 1 ) return false; /*throw exception_io_data( "Odd LDS pattern number" );*/ + position.pattern_number >>= 1; + position.transpose = it[ 2 ]; + it += 3; + } + } + + it += 2; + + pattern_count = ( p_file.end() - it ) / 2; + patterns.resize( pattern_count ); + for ( unsigned i = 0; i < pattern_count; ++i ) + { + patterns[ i ] = it[ 0 ] | ( it[ 1 ] << 8 ); + it += 2; + } + + uint8_t /*jumping,*/ fadeonoff, allvolume, hardfade, tempo_now, pattplay; + uint16_t posplay, jumppos; + uint32_t mainvolume; + std::vector channel; + channel.resize( 9 ); + std::vector position_timestamps; + position_timestamps.resize( position_count, ~0u ); + + uint8_t current_instrument[9] = { 0 }; + + uint8_t last_channel[9]; + uint8_t last_instrument[9]; + uint8_t last_note[9]; + uint8_t last_volume[9]; + uint8_t last_sent_volume[11]; +#ifdef ENABLE_WHEEL + int16_t last_pitch_wheel[11]; +#endif + uint8_t ticks_without_notes[11]; + + memset( last_channel, 0, sizeof( last_channel ) ); + memset( last_instrument, 0xFF, sizeof( last_instrument ) ); + memset( last_note, 0xFF, sizeof( last_note ) ); + memset( last_volume, 127, sizeof( last_volume ) ); + memset( last_sent_volume, 127, sizeof( last_sent_volume ) ); +#ifdef ENABLE_WHEEL + memset( last_pitch_wheel, 0, sizeof( last_pitch_wheel ) ); +#endif + memset( ticks_without_notes, 0, sizeof( ticks_without_notes ) ); + + unsigned current_timestamp = 0; + + uint8_t buffer[ 2 ]; + + p_out.initialize( 1, 35 ); + + { + midi_track track; + track.add_event( midi_event( 0, midi_event::extended, 0, lds_default_tempo, _countof( lds_default_tempo ) ) ); + for ( unsigned i = 0; i < 11; ++i ) + { + buffer[ 0 ] = 120; + buffer[ 1 ] = 0; + track.add_event( midi_event( 0, midi_event::control_change, i, buffer, 2 ) ); + buffer[ 0 ] = 121; + track.add_event( midi_event( 0, midi_event::control_change, i, buffer, 2 ) ); +#ifdef ENABLE_WHEEL + buffer[ 0 ] = 0x65; + track.add_event( midi_event( 0, midi_event::control_change, i, buffer, 2 ) ); + buffer[ 0 ] = 0x64; + track.add_event( midi_event( 0, midi_event::control_change, i, buffer, 2 ) ); + buffer[ 0 ] = 0x06; + buffer[ 1 ] = WHEEL_RANGE_HIGH; + track.add_event( midi_event( 0, midi_event::control_change, i, buffer, 2 ) ); + buffer[ 0 ] = 0x26; + buffer[ 1 ] = WHEEL_RANGE_LOW; + track.add_event( midi_event( 0, midi_event::control_change, i, buffer, 2 ) ); + buffer[ 0 ] = 0; + buffer[ 1 ] = 64; + track.add_event( midi_event( 0, midi_event::pitch_wheel, i, buffer, 2 ) ); +#endif + } + track.add_event( midi_event( 0, midi_event::extended, 0, end_of_track, _countof( end_of_track ) ) ); + p_out.add_track( track ); + } + + std::vector tracks; + { + midi_track track; + track.add_event( midi_event( 0, midi_event::extended, 0, end_of_track, _countof( end_of_track ) ) ); + tracks.resize( 10, track ); + } + + tempo_now = 3; + /*jumping = 0;*/ + fadeonoff = 0; + allvolume = 0; + hardfade = 0; + pattplay = 0; + posplay = 0; + jumppos = 0; + mainvolume = 0; + memset( &channel[0], 0, sizeof( channel_state ) * 9 ); + + const uint16_t maxsound = 0x3F; + const uint16_t maxpos = 0xFF; + + bool playing = true; + while ( playing ) + { + uint16_t chan; +#ifdef ENABLE_VIB + uint16_t wibc; +#endif +#if defined(ENABLE_VIB) || defined(ENABLE_ARP) + int16_t tune; +#endif +#ifdef ENABLE_ARP + int16_t arpreg; +#endif +#ifdef ENABLE_TREM + uint16_t tremc; +#endif + bool vbreak; + unsigned i; + channel_state * c; + + if(fadeonoff) + { + if(fadeonoff <= 128) + { + if(allvolume > fadeonoff || allvolume == 0) + { + allvolume -= fadeonoff; + } + else + { + allvolume = 1; + fadeonoff = 0; + if(hardfade != 0) + { + playing = false; + hardfade = 0; + for(i = 0; i < 9; i++) + channel[i].keycount = 1; + } + } + } + else if(((allvolume + (0x100 - fadeonoff)) & 0xff) <= mainvolume) + { + allvolume += 0x100 - fadeonoff; + } + else + { + allvolume = mainvolume; + fadeonoff = 0; + } + } + + // handle channel delay + for(chan = 0; chan < 9; ++chan) + { + channel_state * c = &channel[chan]; + if(c->chancheat.chandelay) + { + if(!(--c->chancheat.chandelay)) + { + playsound( current_instrument, patches, last_note, last_channel, last_instrument, last_volume, last_sent_volume, +#ifdef ENABLE_WHEEL + last_pitch_wheel, +#endif + c, allvolume, current_timestamp, c->chancheat.sound, chan, c->chancheat.high, tracks[ chan ] ); + ticks_without_notes[ last_channel[ chan ] ] = 0; + } + } + } + + // handle notes + if(!tempo_now) + { + if ( pattplay == 0 && position_timestamps[ posplay ] == ~0u ) + { + position_timestamps[ posplay ] = current_timestamp; + } + + vbreak = false; + for(unsigned chan = 0; chan < 9; chan++) + { + channel_state * c = &channel[chan]; + if(!c->packwait) + { + unsigned short patnum = positions[posplay * 9 + chan].pattern_number; + unsigned char transpose = positions[posplay * 9 + chan].transpose; + + if ( patnum + c->packpos >= patterns.size() ) return false; /*throw exception_io_data( "Invalid LDS pattern number" );*/ + + unsigned comword = patterns[patnum + c->packpos]; + unsigned comhi = comword >> 8; + unsigned comlo = comword & 0xff; + if(comword) + { + if(comhi == 0x80) + { + c->packwait = comlo; + } + else if(comhi >= 0x80) + { + switch(comhi) { + case 0xff: + { + unsigned volume = ( comlo & 0x3F ) * 127 / 63; + last_volume[ chan ] = volume; + if ( volume != last_sent_volume[ last_channel[ chan ] ] ) + { + buffer[ 0 ] = 7; + buffer[ 1 ] = volume; + tracks[ chan ].add_event( midi_event( current_timestamp, midi_event::control_change, last_channel[ chan ], buffer, 2 ) ); + last_sent_volume[ last_channel [ chan ] ] = volume; + } + } + break; + case 0xfe: + tempo = comword & 0x3f; + break; + case 0xfd: + c->nextvol = comlo; + break; + case 0xfc: + playing = false; + // in real player there's also full keyoff here, but we don't need it + break; + case 0xfb: + c->keycount = 1; + break; + case 0xfa: + vbreak = true; + jumppos = (posplay + 1) & maxpos; + break; + case 0xf9: + vbreak = true; + jumppos = comlo & maxpos; + /*jumping = 1;*/ + if(jumppos <= posplay) + { + p_out.add_track_event( 0, midi_event( position_timestamps[ jumppos ], midi_event::extended, 0, loop_start, _countof( loop_start ) ) ); + p_out.add_track_event( 0, midi_event( current_timestamp + tempo - 1, midi_event::extended, 0, loop_end, _countof( loop_end ) ) ); + playing = false; + } + break; + case 0xf8: +#ifdef ENABLE_WHEEL + c->lasttune = 0; +#endif + break; + case 0xf7: +#ifdef ENABLE_VIB + c->vibwait = 0; + // PASCAL: c->vibspeed = ((comlo >> 4) & 15) + 2; + c->vibspeed = (comlo >> 4) + 2; + c->vibrate = (comlo & 15) + 1; +#endif + break; + case 0xf6: +#ifdef ENABLE_WHEEL + c->glideto = comlo; +#endif + break; + case 0xf5: + c->finetune = comlo; + break; + case 0xf4: + if(!hardfade) { + allvolume = mainvolume = comlo; + fadeonoff = 0; + } + break; + case 0xf3: + if(!hardfade) fadeonoff = comlo; + break; + case 0xf2: +#ifdef ENABLE_TREM + c->trmstay = comlo; +#endif + break; + case 0xf1: + buffer[ 0 ] = 10; + buffer[ 1 ] = ( comlo & 0x3F ) * 127 / 63; + tracks[ chan ].add_event( midi_event( current_timestamp, midi_event::control_change, last_channel[ chan ], buffer, 2 ) ); + break; + case 0xf0: + buffer[ 0 ] = comlo & 0x7F; + tracks[ chan ].add_event( midi_event( current_timestamp, midi_event::program_change, last_channel[ chan ], buffer, 1 ) ); + break; + default: +#ifdef ENABLE_WHEEL + if(comhi < 0xa0) + c->glideto = comhi & 0x1f; +#endif + break; + } + } + else + { + unsigned char sound; + unsigned short high; + signed char transp = transpose << 1; + transp >>= 1; + + if(transpose & 128) { + sound = (comlo + transp) & maxsound; + high = comhi << 4; + } else { + sound = comlo & maxsound; + high = (comhi + transp) << 4; + } + + /* + PASCAL: + sound = comlo & maxsound; + high = (comhi + (((transpose + 0x24) & 0xff) - 0x24)) << 4; + */ + + if( !channel_delay[ chan ] ) + { + playsound( current_instrument, patches, last_note, last_channel, last_instrument, last_volume, last_sent_volume, +#ifdef ENABLE_WHEEL + last_pitch_wheel, +#endif + c, allvolume, current_timestamp, sound, chan, high, tracks[ chan ] ); + ticks_without_notes[ last_channel[ chan ] ] = 0; + } + else + { + c->chancheat.chandelay = channel_delay[chan]; + c->chancheat.sound = sound; + c->chancheat.high = high; + } + } + } + c->packpos++; + } + else + { + c->packwait--; + } + } + + tempo_now = tempo; + /* + The continue table is updated here, but this is only used in the + original player, which can be paused in the middle of a song and then + unpaused. Since AdPlug does all this for us automatically, we don't + have a continue table here. The continue table update code is noted + here for reference only. + + if(!pattplay) { + conttab[speed & maxcont].position = posplay & 0xff; + conttab[speed & maxcont].tempo = tempo; + } + */ + pattplay++; + if(vbreak) + { + pattplay = 0; + for(i = 0; i < 9; i++) channel[i].packpos = channel[i].packwait = 0; + posplay = jumppos; + if ( posplay >= position_count ) return false; /*throw exception_io_data( "Invalid LDS position jump" );*/ + } + else if(pattplay >= pattern_length) + { + pattplay = 0; + for(i = 0; i < 9; i++) channel[i].packpos = channel[i].packwait = 0; + posplay = (posplay + 1) & maxpos; + if ( posplay >= position_count ) playing = false; //throw exception_io_data( "LDS reached the end without a loop or end command" ); + } + } + else + { + tempo_now--; + } + + // make effects + for(chan = 0; chan < 9; ++chan) + { + c = &channel[chan]; + if(c->keycount > 0) + { + if( c->keycount == 1 && last_note[ chan ] != 0xFF ) + { + buffer[ 0 ] = last_note[ chan ]; + buffer[ 1 ] = 127; + tracks[ chan ].add_event( midi_event( current_timestamp, midi_event::note_off, last_channel[ chan ], buffer, 2 ) ); + last_note[ chan ] = 0xFF; +#ifdef ENABLE_WHEEL + if ( 0 != last_pitch_wheel[ last_channel[ chan ] ] ) + { + buffer[ 0 ] = 0; + buffer[ 1 ] = 64; + tracks[ chan ].add_event( midi_event( current_timestamp, midi_event::pitch_wheel, last_channel[ chan ], buffer, 2 ) ); + last_pitch_wheel[ last_channel[ chan ] ] = 0; + c->lasttune = 0; + c->gototune = 0; + } +#endif + } + c->keycount--; + } + +#ifdef ENABLE_ARP + // arpeggio + if(c->arp_size == 0) + { + arpreg = 0; + } + else + { + arpreg = c->arp_tab[c->arp_pos] << 4; + if(arpreg == -0x800) + { + if(c->arp_pos > 0) c->arp_tab[0] = c->arp_tab[c->arp_pos - 1]; + c->arp_size = 1; c->arp_pos = 0; + arpreg = c->arp_tab[0] << 4; + } + + if(c->arp_count == c->arp_speed) { + c->arp_pos++; + if(c->arp_pos >= c->arp_size) c->arp_pos = 0; + c->arp_count = 0; + } + else + { + c->arp_count++; + } + } +#endif + +#ifdef ENABLE_WHEEL + // glide & portamento + if(c->lasttune != c->gototune) + { + if(c->lasttune > c->gototune) + { + if(c->lasttune - c->gototune < c->portspeed) + { + c->lasttune = c->gototune; + } + else + { + c->lasttune -= c->portspeed; + } + } + else + { + if(c->gototune - c->lasttune < c->portspeed) + { + c->lasttune = c->gototune; + } + else + { + c->lasttune += c->portspeed; + } + } + +#ifdef ENABLE_ARP + arpreg += +#else + int16_t arpreg = +#endif + c->lasttune; + + if ( arpreg != last_pitch_wheel[ last_channel[ chan ] ] ) + { + buffer[ 0 ] = WHEEL_SCALE_LOW( arpreg ); + buffer[ 1 ] = WHEEL_SCALE_HIGH( arpreg ); + tracks[ chan ].add_event( midi_event( current_timestamp, midi_event::pitch_wheel, last_channel[ chan ], buffer, 2 ) ); + last_pitch_wheel[ last_channel[ chan ] ] = arpreg; + } + } else + { +#ifdef ENABLE_VIB + // vibrato + if(!c->vibwait) + { + if(c->vibrate) + { + wibc = vibtab[c->vibcount & 0x3f] * c->vibrate; + + if((c->vibcount & 0x40) == 0) + tune = c->lasttune + (wibc >> 8); + else + tune = c->lasttune - (wibc >> 8); + +#ifdef ENABLE_ARP + tune += arpreg; +#endif + + if ( tune != last_pitch_wheel[ last_channel[ chan ] ] ) + { + buffer[ 0 ] = WHEEL_SCALE_LOW( tune ); + buffer[ 1 ] = WHEEL_SCALE_HIGH( tune ); + tracks[ chan ].add_event( midi_event( current_timestamp, midi_event::pitch_wheel, last_channel[ chan ], buffer, 2 ) ); + last_pitch_wheel[ last_channel[ chan ] ] = tune; + } + + c->vibcount += c->vibspeed; + } +#ifdef ENABLE_ARP + else if(c->arp_size != 0) + { // no vibrato, just arpeggio + tune = c->lasttune + arpreg; + + if ( tune != last_pitch_wheel[ last_channel[ chan ] ] ) + { + buffer[ 0 ] = WHEEL_SCALE_LOW( tune ); + buffer[ 1 ] = WHEEL_SCALE_HIGH( tune ); + tracks[ chan ].add_event( midi_event( current_timestamp, midi_event::pitch_wheel, last_channel[ chan ], buffer, 2 ) ); + last_pitch_wheel[ last_channel[ chan ] ] = tune; + } + } +#endif + } +#ifdef ENABLE_ARP + else +#endif +#endif +#ifdef ENABLE_ARP + { // no vibrato, just arpeggio +#ifdef ENABLE_VIB + c->vibwait--; +#endif + + if(c->arp_size != 0) + { + tune = c->lasttune + arpreg; + + if ( tune != last_pitch_wheel[ last_channel[ chan ] ] ) + { + buffer[ 0 ] = WHEEL_SCALE_LOW( tune ); + buffer[ 1 ] = WHEEL_SCALE_HIGH( tune ); + tracks[ chan ].add_event( midi_event( current_timestamp, midi_event::pitch_wheel, last_channel[ chan ], buffer, 2 ) ); + last_pitch_wheel[ last_channel[ chan ] ] = tune; + } + } + } +#endif + } +#endif + +#ifdef ENABLE_TREM + unsigned volume = last_volume[ chan ]; + + // tremolo (modulator) + if(!c->trmwait) + { + if(c->trmrate) + { + tremc = tremtab[c->trmcount & 0x7f] * c->trmrate; + if((tremc >> 7) <= volume) + volume = volume - (tremc >> 7); + else + volume = 0; + + c->trmcount += c->trmspeed; + } + } + else + { + c->trmwait--; + } + + // tremolo (carrier) + if(!c->trcwait) + { + if(c->trcrate) + { + tremc = tremtab[c->trccount & 0x7f] * c->trcrate; + if((tremc >> 7) <= volume) + volume = volume - (tremc >> 8); + else + volume = 0; + } + } + else + { + c->trcwait--; + } + + if ( allvolume ) + { + volume = volume * allvolume / 255; + } + + if ( volume != last_sent_volume[ last_channel[ chan ] ] ) + { + buffer[ 0 ] = 7; + buffer[ 1 ] = volume; + tracks[ chan ].add_event( midi_event( current_timestamp, midi_event::control_change, last_channel[ chan ], buffer, 2 ) ); + last_sent_volume[ last_channel[ chan ] ] = volume; + } +#endif + + } + + ++current_timestamp; + } + + --current_timestamp; + + for ( unsigned i = 0; i < 9; ++i ) + { + midi_track & track = tracks[ i ]; + unsigned long count = track.get_count(); + if ( count > 1 ) + { + if ( last_note[ i ] != 0xFF ) + { + buffer[ 0 ] = last_note[ i ]; + buffer[ 1 ] = 127; + track.add_event( midi_event( current_timestamp + channel[ i ].keycount, midi_event::note_off, last_channel[ i ], buffer, 2 ) ); +#ifdef ENABLE_WHEEL + if ( last_pitch_wheel[ last_channel[ i ] ] != 0 ) + { + buffer[ 0 ] = 0; + buffer[ 1 ] = 0x40; + track.add_event( midi_event( current_timestamp + channel[ i ].keycount, midi_event::pitch_wheel, last_channel[ i ], buffer, 2 ) ); + } +#endif + } + p_out.add_track( track ); + } + } + + return true; +} diff --git a/Frameworks/midi_processing/midi_processing/midi_processor_mids.cpp b/Frameworks/midi_processing/midi_processing/midi_processor_mids.cpp new file mode 100644 index 000000000..3807a3f4b --- /dev/null +++ b/Frameworks/midi_processing/midi_processing/midi_processor_mids.cpp @@ -0,0 +1,120 @@ +#include "midi_processor.h" + +bool midi_processor::is_mids( std::vector const& p_file ) +{ + if ( p_file.size() < 8 ) return false; + if ( p_file[ 0 ] != 'R' || p_file[ 1 ] != 'I' || p_file[ 2 ] != 'F' || p_file[ 3 ] != 'F' ) return false; + uint32_t size = p_file[ 4 ] | ( p_file[ 5 ] << 8 ) | ( p_file[ 6 ] << 16 ) | ( p_file[ 7 ] << 24 ); + if ( size < 8 || ( p_file.size() < size + 8 ) ) return false; + if ( p_file[ 8 ] != 'M' || p_file[ 9 ] != 'I' || p_file[ 10 ] != 'D' || p_file[ 11 ] != 'S' || + p_file[ 12 ] != 'f' || p_file[ 13 ] != 'm' || p_file[ 14 ] != 't' || p_file[ 15 ] != ' ' ) return false; + return true; +} + +bool midi_processor::process_mids( std::vector const& p_file, midi_container & p_out ) +{ + std::vector::const_iterator it = p_file.begin() + 16; + + uint32_t fmt_size = it[ 0 ] | ( it[ 1 ] << 8 ) | ( it[ 2 ] << 16 ) | ( it[ 3 ] << 24 ); + it += 4; + + uint32_t time_format = 1; + /*uint32_t max_buffer = 0;*/ + uint32_t flags = 0; + + if ( fmt_size >= 4 ) + { + time_format = it[ 0 ] | ( it[ 1 ] << 8 ) | ( it[ 2 ] << 16 ) | ( it[ 3 ] << 24 ); + it += 4; + fmt_size -= 4; + } + if ( fmt_size >= 4 ) + { + /*max_buffer = it[ 0 ] | ( it[ 1 ] << 8 ) | ( it[ 2 ] << 16 ) | ( it[ 3 ] << 24 );*/ + it += 4; + fmt_size -= 4; + } + if ( fmt_size >= 4 ) + { + flags = it[ 0 ] | ( it[ 1 ] << 8 ) | ( it[ 2 ] << 16 ) | ( it[ 3 ] << 24 ); + it += 4; + fmt_size -= 4; + } + + it += fmt_size; + if ( fmt_size & 1 ) ++it; + + p_out.initialize( 0, time_format ); + + if ( it[ 0 ] != 'd' || it[ 1 ] != 'a' || it[ 2 ] != 't' || it[ 3 ] != 'a' ) return false; /*throw exception_io_data( "MIDS missing RIFF data chunk" );*/ + + it += 4; + + { + midi_track track; + track.add_event( midi_event( 0, midi_event::extended, 0, end_of_track, _countof( end_of_track ) ) ); + p_out.add_track( track ); + } + + uint32_t data_size = it[ 0 ] | ( it[ 1 ] << 8 ) | ( it[ 2 ] << 16 ) | ( it[ 3 ] << 24 ); + it += 4; + + std::vector::const_iterator body_end = it + data_size; + + uint32_t segment_count = it[ 0 ] | ( it[ 1 ] << 8 ) | ( it[ 2 ] << 16 ) | ( it[ 3 ] << 24 ); + it += 4; + + bool is_eight_byte = !!(flags & 1); + + midi_track track; + + unsigned current_timestamp = 0; + + for ( unsigned i = 0; i < segment_count; ++i ) + { + it += 4; + uint32_t segment_size = it[ 0 ] | ( it[ 1 ] << 8 ) | ( it[ 2 ] << 16 ) | ( it[ 3 ] << 24 ); + it += 4; + std::vector::const_iterator segment_end = it + segment_size; + while ( it < segment_end && it < body_end ) + { + uint32_t delta = it[ 0 ] | ( it[ 1 ] << 8 ) | ( it[ 2 ] << 16 ) | ( it[ 3 ] << 24 ); + it += 4; + uint32_t event; + current_timestamp += delta; + if ( !is_eight_byte ) it += 4; + event = it[ 0 ] | ( it[ 1 ] << 8 ) | ( it[ 2 ] << 16 ) | ( it[ 3 ] << 24 ); + it += 4; + if ( event >> 24 == 0x01 ) + { + uint8_t buffer[ 5 ] = { 0xFF, 0x51 }; + buffer[ 2 ] = (uint8_t)( event >> 16 ); + buffer[ 3 ] = (uint8_t)( event >> 8 ); + buffer[ 4 ] = (uint8_t)event; + p_out.add_track_event( 0, midi_event( current_timestamp, midi_event::extended, 0, buffer, sizeof( buffer ) ) ); + } + else if ( !( event >> 24 ) ) + { + unsigned event_code = ( event & 0xF0 ) >> 4; + if ( event_code >= 0x8 && event_code <= 0xE ) + { + unsigned bytes_to_write = 1; + uint8_t buffer[2]; + buffer[ 0 ] = (uint8_t)( event >> 8 ); + if ( event_code != 0xC && event_code != 0xD ) + { + buffer[ 1 ] = (uint8_t)( event >> 16 ); + bytes_to_write = 2; + } + track.add_event( midi_event( current_timestamp, (midi_event::event_type)( event_code - 8 ), event & 0x0F, buffer, bytes_to_write ) ); + } + } + } + } + + track.add_event( midi_event( current_timestamp, midi_event::extended, 0, end_of_track, _countof( end_of_track ) ) ); + + p_out.add_track( track ); + + return true; +} diff --git a/Frameworks/midi_processing/midi_processing/midi_processor_mus.cpp b/Frameworks/midi_processing/midi_processing/midi_processor_mus.cpp new file mode 100644 index 000000000..d65385a20 --- /dev/null +++ b/Frameworks/midi_processing/midi_processing/midi_processor_mus.cpp @@ -0,0 +1,140 @@ +#include "midi_processor.h" + +const uint8_t midi_processor::mus_default_tempo[5] = {0xFF, 0x51, 0x09, 0xA3, 0x1A}; + +const uint8_t midi_processor::mus_controllers[15] = {0,0,1,7,10,11,91,93,64,67,120,123,126,127,121}; + +bool midi_processor::is_mus( std::vector const& p_file ) +{ + if ( p_file.size() < 0x20 ) return false; + if ( p_file[ 0 ] != 'M' || p_file[ 1 ] != 'U' || p_file[ 2 ] != 'S' || p_file[ 3 ] != 0x1A ) return false; + uint16_t length = p_file[ 4 ] | ( p_file[ 5 ] << 8 ); + uint16_t offset = p_file[ 6 ] | ( p_file[ 7 ] << 8 ); + uint16_t instrument_count = p_file[ 12 ] | ( p_file[ 13 ] << 8 ); + if ( offset >= 16 + instrument_count * 2 && offset < 16 + instrument_count * 4 && offset + length <= p_file.size() ) return true; + return false; +} + +bool midi_processor::process_mus( std::vector const& p_file, midi_container & p_out ) +{ + uint16_t length = p_file[ 4 ] | ( p_file[ 5 ] << 8 ); + uint16_t offset = p_file[ 6 ] | ( p_file[ 7 ] << 8 ); + + p_out.initialize( 0, 0x59 ); + + { + midi_track track; + track.add_event( midi_event( 0, midi_event::extended, 0, mus_default_tempo, _countof( mus_default_tempo ) ) ); + track.add_event( midi_event( 0, midi_event::extended, 0, end_of_track, _countof( end_of_track ) ) ); + p_out.add_track( track ); + } + + midi_track track; + + unsigned current_timestamp = 0; + + uint8_t velocity_levels[ 16 ] = { 0 }; + + std::vector::const_iterator it = p_file.begin() + offset, end = p_file.begin() + offset + length; + + uint8_t buffer[ 4 ]; + + while ( it < end ) + { + buffer[ 0 ] = *it++; + if ( buffer[ 0 ] == 0x60 ) break; + + midi_event::event_type type; + + unsigned bytes_to_write; + + unsigned channel = buffer[ 0 ] & 0x0F; + if ( channel == 0x0F ) channel = 9; + else if ( channel >= 9 ) ++channel; + + switch ( buffer[ 0 ] & 0x70 ) + { + case 0x00: + type = midi_event::note_on; + buffer[ 1 ] = *it++; + buffer[ 2 ] = 0; + bytes_to_write = 2; + break; + + case 0x10: + type = midi_event::note_on; + buffer[ 1 ] = *it++; + if ( buffer[ 1 ] & 0x80 ) + { + buffer[ 2 ] = *it++; + velocity_levels[ channel ] = buffer[ 2 ]; + buffer[ 1 ] &= 0x7F; + } + else + { + buffer[ 2 ] = velocity_levels[ channel ]; + } + bytes_to_write = 2; + break; + + case 0x20: + type = midi_event::pitch_wheel; + buffer[ 1 ] = *it++; + buffer[ 2 ] = buffer[ 1 ] >> 1; + buffer[ 1 ] <<= 7; + bytes_to_write = 2; + break; + + case 0x30: + type = midi_event::control_change; + buffer[ 1 ] = *it++; + if ( buffer[ 1 ] >= 10 && buffer[ 1 ] <= 14 ) + { + buffer[ 1 ] = mus_controllers[ buffer[ 1 ] ]; + buffer[ 2 ] = 1; + bytes_to_write = 2; + } + else return false; /*throw exception_io_data( "Unhandled MUS system event" );*/ + break; + + case 0x40: + buffer[ 1 ] = *it++; + if ( buffer[ 1 ] ) + { + if ( buffer[ 1 ] < 10 ) + { + type = midi_event::control_change; + buffer[ 1 ] = mus_controllers[ buffer[ 1 ] ]; + buffer[ 2 ] = *it++; + bytes_to_write = 2; + } + else return false; /*throw exception_io_data( "Invalid MUS controller change event" );*/ + } + else + { + type = midi_event::program_change; + buffer[ 1 ] = *it++; + bytes_to_write = 1; + } + break; + + default: + return false; /*throw exception_io_data( "Invalid MUS status code" );*/ + } + + track.add_event( midi_event( current_timestamp, type, channel, buffer + 1, bytes_to_write ) ); + + if ( buffer[ 0 ] & 0x80 ) + { + int delta = decode_delta( it ); + if ( delta < 0 ) return false; /*throw exception_io_data( "Invalid MUS delta" );*/ + current_timestamp += delta; + } + } + + track.add_event( midi_event( current_timestamp, midi_event::extended, 0, end_of_track, _countof( end_of_track ) ) ); + + p_out.add_track( track ); + + return true; +} diff --git a/Frameworks/midi_processing/midi_processing/midi_processor_riff_midi.cpp b/Frameworks/midi_processing/midi_processing/midi_processor_riff_midi.cpp new file mode 100644 index 000000000..1670512b9 --- /dev/null +++ b/Frameworks/midi_processing/midi_processing/midi_processor_riff_midi.cpp @@ -0,0 +1,134 @@ +#include "midi_processor.h" + +#include + +bool midi_processor::is_riff_midi( std::vector const& p_file ) +{ + if ( p_file.size() < 20 ) return false; + if ( p_file[ 0 ] != 'R' || p_file[ 1 ] != 'I' || p_file[ 2 ] != 'F' || p_file[ 3 ] != 'F' ) return false; + uint32_t riff_size = p_file[ 4 ] | ( p_file[ 5 ] << 8 ) | ( p_file[ 6 ] << 16 ) | ( p_file[ 7 ] << 24 ); + if ( riff_size < 12 || ( p_file.size() < riff_size + 8 ) ) return false; + if ( p_file[ 8 ] != 'R' || p_file[ 9 ] != 'M' || p_file[ 10 ] != 'I' || p_file[ 11 ] != 'D' || + p_file[ 12 ] != 'd' || p_file[ 13 ] != 'a' || p_file[ 14 ] != 't' || p_file[ 15 ] != 'a' ) return false; + uint32_t data_size = p_file[ 16 ] | ( p_file[ 17 ] << 8 ) | ( p_file[ 18 ] << 16 ) | ( p_file[ 19 ] << 24 ); + if ( data_size < 18 || p_file.size() < data_size + 20 || riff_size < data_size + 12 ) return false; + std::vector test; + test.assign( p_file.begin() + 20, p_file.begin() + 20 + 18 ); + return is_standard_midi( test ); +} + +static const char * riff_tag_mappings[][2] = +{ + { "IALB", "album" }, + { "IARL", "archival_location" }, + { "IART", "artist" }, + { "ITRK", "tracknumber" }, + { "ICMS", "commissioned" }, + { "ICMP", "composer" }, + { "ICMT", "comment" }, + { "ICOP", "copyright" }, + { "ICRD", "creation_date" }, + { "IENG", "engineer" }, + { "IGNR", "genre" }, + { "IKEY", "keywords" }, + { "IMED", "medium" }, + { "INAM", "title" }, + { "IPRD", "product" }, + { "ISBJ", "subject" }, + { "ISFT", "software" }, + { "ISRC", "source" }, + { "ISRF", "source_form" }, + { "ITCH", "technician" } +}; + +bool midi_processor::process_riff_midi( std::vector const& p_file, midi_container & p_out ) +{ + uint32_t file_size = p_file[ 4 ] | ( p_file[ 5 ] << 8 ) | ( p_file[ 6 ] << 16 ) | ( p_file[ 7 ] << 24 ); + + std::vector::const_iterator it = p_file.begin() + 12; + + std::vector::const_iterator body_end = p_file.begin() + 8 + file_size; + + bool found_data = false; + bool found_info = false; + + midi_meta_data meta_data; + + std::vector extra_buffer; + + while ( it < body_end ) + { + uint32_t chunk_size = it[ 4 ] | ( it[ 5 ] << 8 ) | ( it[ 6 ] << 16 ) | ( it[ 7 ] << 24 ); + if ( it[ 0 ] == 'd' && it[ 1 ] == 'a' && it[ 2 ] == 't' && it[ 3 ] == 'a' ) + { + if ( !found_data ) + { + std::vector midi_file; + midi_file.assign( it + 8, it + 8 + chunk_size ); + if ( !process_standard_midi( midi_file, p_out ) ) return false; + found_data = true; + } + else return false; /*throw exception_io_data( "Multiple RIFF data chunks found" );*/ + it += 8 + chunk_size; + if ( chunk_size & 1 && it < body_end ) ++it; + } + else if ( it[ 0 ] == 'D' && it[ 1 ] == 'I' && it[ 2 ] == 'S' && it[ 3 ] == 'P' ) + { + uint32_t type = it[ 8 ] | ( it[ 9 ] << 8 ) | ( it[ 10 ] << 16 ) | ( it[ 11 ] << 24 ); + if ( type == 1 ) + { + extra_buffer.resize( chunk_size - 4 ); + std::copy( it + 12, it + 8 + chunk_size, extra_buffer.begin() ); + meta_data.add_item( midi_meta_data_item( 0, "display_name", (const char *) &extra_buffer[0] ) ); + } + it += 8 + chunk_size; + if ( chunk_size & 1 && it < body_end ) ++it; + } + else if ( it[ 0 ] == 'L' && it[ 1 ] == 'I' && it[ 2 ] == 'S' && it[ 3 ] == 'T' ) + { + std::vector::const_iterator chunk_end = it + 8 + chunk_size; + if ( it[ 8 ] == 'I' && it[ 9 ] == 'N' && it[ 10 ] == 'F' && it[ 11 ] == 'O' ) + { + if ( !found_info ) + { + it += 12; + while ( it < chunk_end ) + { + uint32_t field_size = it[ 4 ] | ( it[ 5 ] << 8 ) | ( it[ 6 ] << 16 ) | ( it[ 7 ] << 24 ); + std::string field; + field.assign( it, it + 4 ); + for ( unsigned i = 0; i < _countof(riff_tag_mappings); ++i ) + { + if ( !memcmp( &it[0], riff_tag_mappings[ i ][ 0 ], 4 ) ) + { + field = riff_tag_mappings[ i ][ 1 ]; + break; + } + } + extra_buffer.resize( field_size ); + std::copy( it + 8, it + 8 + field_size, extra_buffer.begin() ); + it += 8 + field_size; + meta_data.add_item( midi_meta_data_item( 0, field.c_str(), ( const char * ) &extra_buffer[0] ) ); + if ( field_size & 1 && it < chunk_end ) ++it; + } + found_info = true; + } + else return false; /*throw exception_io_data( "Multiple RIFF LIST INFO chunks found" );*/ + } + else return false; /* unknown LIST chunk */ + it = chunk_end; + if ( chunk_size & 1 && it < body_end ) ++it; + } + else + { + it += chunk_size; + if ( chunk_size & 1 && it < body_end ) ++it; + } + + if ( found_data && found_info ) break; + } + + p_out.set_extra_meta_data( meta_data ); + + return true; +} diff --git a/Frameworks/midi_processing/midi_processing/midi_processor_standard_midi.cpp b/Frameworks/midi_processing/midi_processing/midi_processor_standard_midi.cpp new file mode 100644 index 000000000..084da5066 --- /dev/null +++ b/Frameworks/midi_processing/midi_processing/midi_processor_standard_midi.cpp @@ -0,0 +1,148 @@ +#include "midi_processor.h" + +bool midi_processor::is_standard_midi( std::vector const& p_file ) +{ + if ( p_file.size() < 18 ) return false; + if ( p_file[ 0 ] != 'M' || p_file[ 1 ] != 'T' || p_file[ 2 ] != 'h' || p_file[ 3 ] != 'd') return false; + if ( p_file[ 4 ] != 0 || p_file[ 5 ] != 0 || p_file[ 6 ] != 0 || p_file[ 7 ] != 6 ) return false; + if ( p_file[ 14 ] != 'M' || p_file[ 15 ] != 'T' || p_file[ 16 ] != 'r' || p_file[ 17 ] != 'k' ) return false; + return true; +} + +bool midi_processor::process_standard_midi_track( std::vector::const_iterator & it, std::vector::const_iterator end, midi_container & p_out, bool needs_end_marker ) +{ + midi_track track; + unsigned current_timestamp = 0; + unsigned char last_event_code = 0xFF; + + std::vector buffer; + buffer.resize( 3 ); + + for (;;) + { + if ( !needs_end_marker && it >= end ) break; + int delta = decode_delta( it ); + if ( !needs_end_marker && it >= end ) break; + + if ( delta < 0 ) + { + /*"MIDI processor encountered negative delta: " << delta << "; flipping sign.";*/ + delta = -delta; + } + + current_timestamp += delta; + unsigned char event_code = *it++; + unsigned data_bytes_read = 0; + if ( event_code < 0x80 ) + { + if ( last_event_code == 0xFF ) return false; /*throw exception_io_data("First MIDI track event short encoded");*/ + buffer[ data_bytes_read++ ] = event_code; + event_code = last_event_code; + } + if ( event_code < 0xF0 ) + { + last_event_code = event_code; + if ( !needs_end_marker && ( event_code & 0xF0 ) == 0xE0 ) continue; + if ( data_bytes_read < 1 ) + { + buffer[ 0 ] = *it++; + ++data_bytes_read; + } + switch ( event_code & 0xF0 ) + { + case 0xC0: + case 0xD0: + break; + default: + buffer[ data_bytes_read ] = *it++; + ++data_bytes_read; + } + track.add_event( midi_event( current_timestamp, (midi_event::event_type)(( event_code >> 4 ) - 8), event_code & 0x0F, &buffer[0], data_bytes_read ) ); + } + else if ( event_code == 0xF0 ) + { + int data_count = decode_delta( it ); + if ( data_count < 0 ) return false; /*throw exception_io_data( "Invalid System Exclusive message" );*/ + buffer.resize( data_count + 1 ); + buffer[ 0 ] = 0xF0; + std::copy( it, it + data_count, buffer.begin() + 1 ); + it += data_count; + track.add_event( midi_event( current_timestamp, midi_event::extended, 0, &buffer[0], data_count + 1 ) ); + } + else if ( event_code == 0xFF ) + { + unsigned char meta_type = *it++; + int data_count = decode_delta( it ); + if ( data_count < 0 ) return false; /*throw exception_io_data( "Invalid meta message" );*/ + buffer.resize( data_count + 2 ); + buffer[ 0 ] = 0xFF; + buffer[ 1 ] = meta_type; + std::copy( it, it + data_count, buffer.begin() + 2 ); + it += data_count; + track.add_event( midi_event( current_timestamp, midi_event::extended, 0, &buffer[0], data_count + 2 ) ); + + if ( meta_type == 0x2F ) + { + needs_end_marker = true; + break; + } + } + else if ( event_code == 0xFB || event_code == 0xFC ) + { + /*console::formatter() << "MIDI " << ( ( event_code == 0xFC ) ? "stop" : "start" ) << " status code ignored";*/ + } + else return false; /*throw exception_io_data("Unhandled MIDI status code");*/ + } + + if ( !needs_end_marker ) + { + buffer[ 0 ] = 0xFF; + buffer[ 1 ] = 0x2F; + track.add_event( midi_event( current_timestamp, midi_event::extended, 0, &buffer[0], 2 ) ); + } + + p_out.add_track( track ); + + return true; +} + +bool midi_processor::process_standard_midi( std::vector const& p_file, midi_container & p_out ) +{ + if ( p_file[ 0 ] != 'M' || p_file[ 1 ] != 'T' || p_file[ 2 ] != 'h' || p_file[ 3 ] != 'd' ) return false; + if ( p_file[ 4 ] != 0 || p_file[ 5 ] != 0 || p_file[ 6 ] != 0 || p_file[ 7 ] != 6 ) return false; /*throw exception_io_data("Bad MIDI header size");*/ + + std::vector::const_iterator it = p_file.begin() + 8; + + uint16_t form = ( it[0] << 8 ) | it[1]; + if ( form > 2 ) return false; + + uint16_t track_count_16 = ( it[2] << 8 ) | it[3]; + uint16_t dtx = ( it[4] << 8 ) | it[5]; + + it += 6; + + std::size_t track_count = track_count_16; + + p_out.initialize( form, dtx ); + + for ( std::size_t i = 0; i < track_count; ++i ) + { + if ( it[0] != 'M' || it[1] != 'T' || it[2] != 'r' || it[3] != 'k' ) return false; + + uint32_t track_size = ( it[4] << 24 ) | ( it[5] << 16 ) | ( it[6] << 8 ) | it[7]; + + it += 8; + + intptr_t track_data_offset = it - p_file.begin(); + + if ( !process_standard_midi_track( it, it + track_size, p_out, true ) ) return false; + + track_data_offset += track_size; + if ( it - p_file.begin() != track_data_offset ) + { + it = p_file.begin() + track_data_offset; + } + } + + return true; +} diff --git a/Frameworks/midi_processing/midi_processing/midi_processor_syx.cpp b/Frameworks/midi_processing/midi_processing/midi_processor_syx.cpp new file mode 100644 index 000000000..5e99bf626 --- /dev/null +++ b/Frameworks/midi_processing/midi_processing/midi_processor_syx.cpp @@ -0,0 +1,35 @@ +#include "midi_processor.h" + +bool midi_processor::is_syx( std::vector const& p_file ) +{ + if ( p_file.size() < 2 ) return false; + if ( p_file[ 0 ] != 0xF0 || p_file[ p_file.size() - 1 ] != 0xF7 ) return false; + return true; +} + +bool midi_processor::process_syx( std::vector const& p_file, midi_container & p_out ) +{ + const size_t size = p_file.size(); + size_t ptr = 0; + + p_out.initialize( 0, 1 ); + + midi_track track; + + while ( ptr < size ) + { + size_t msg_length = 1; + + if ( p_file[ptr] != 0xF0 ) return false; + + while ( p_file[ptr + msg_length++] != 0xF7 ); + + track.add_event( midi_event( 0, midi_event::extended, 0, &p_file[ptr], msg_length ) ); + + ptr += msg_length; + } + + p_out.add_track( track ); + + return true; +} diff --git a/Frameworks/midi_processing/midi_processing/midi_processor_xmi.cpp b/Frameworks/midi_processing/midi_processing/midi_processor_xmi.cpp new file mode 100644 index 000000000..6cb4c7daa --- /dev/null +++ b/Frameworks/midi_processing/midi_processing/midi_processor_xmi.cpp @@ -0,0 +1,277 @@ +#include "midi_processor.h" + +#include + +bool midi_processor::is_xmi( std::vector const& p_file ) +{ + if ( p_file.size() < 0x22 ) return false; + if ( p_file[ 0 ] != 'F' || p_file[ 1 ] != 'O' || p_file[ 2 ] != 'R' || p_file[ 3 ] != 'M' || + p_file[ 8 ] != 'X' || p_file[ 9 ] != 'D' || p_file[ 10 ] != 'I' || p_file[ 11 ] != 'R' || + p_file[ 0x1E ] != 'X' || p_file[ 0x1F ] != 'M' || p_file[ 0x20 ] != 'I' || p_file[ 0x21 ] != 'D' ) return false; + return true; +} + +const uint8_t midi_processor::xmi_default_tempo[5] = {0xFF, 0x51, 0x07, 0xA1, 0x20}; + +unsigned midi_processor::decode_xmi_delta( std::vector::const_iterator & it, std::vector::const_iterator end ) +{ + unsigned delta = 0; + uint8_t byte = *it++; + if ( !( byte & 0x80 ) ) + { + do + { + delta += byte; + byte = *it++; + } + while ( !( byte & 0x80 ) && it < end ); + } + --it; + return delta; +} + +struct iff_chunk +{ + uint8_t m_id[4]; + uint8_t m_type[4]; + std::vector m_data; + std::vector m_sub_chunks; + + iff_chunk() + { + memset( m_id, 0, sizeof( m_id ) ); + memset( m_type, 0, sizeof( m_type ) ); + } + + iff_chunk( const iff_chunk & p_in ) + { + memcpy( m_id, p_in.m_id, sizeof( m_id ) ); + memcpy( m_type, p_in.m_type, sizeof( m_type ) ); + m_data = p_in.m_data; + m_sub_chunks = p_in.m_sub_chunks; + } + + const iff_chunk & find_sub_chunk( const char * p_id, unsigned index = 0 ) const + { + for ( std::size_t i = 0; i < m_sub_chunks.size(); ++i ) + { + if ( !memcmp( p_id, m_sub_chunks[ i ].m_id, 4 ) ) + { + if ( index ) --index; + if ( !index ) return m_sub_chunks[ i ]; + } + } + /*throw exception_io_data( pfc::string_formatter() << "Missing IFF chunk: " << p_id );*/ + return *this; + } + + unsigned get_chunk_count( const char * p_id ) const + { + unsigned chunk_count = 0; + for ( std::size_t i = 0; i < m_sub_chunks.size(); ++i ) + { + if ( !memcmp( p_id, m_sub_chunks[ i ].m_id, 4 ) ) + { + ++chunk_count; + } + } + return chunk_count; + } +}; + +struct iff_stream +{ + std::vector m_chunks; + + iff_chunk fail; + + const iff_chunk & find_chunk( const char * p_id ) const + { + for ( std::size_t i = 0; i < m_chunks.size(); ++i ) + { + if ( !memcmp( p_id, m_chunks[ i ].m_id, 4 ) ) + { + return m_chunks[ i ]; + } + } + /*throw exception_io_data( pfc::string_formatter() << "Missing IFF chunk: " << p_id );*/ + return fail; + } +}; + +static bool read_iff_chunk( std::vector::const_iterator & it, std::vector::const_iterator end, iff_chunk & p_out, bool first_chunk ) +{ + std::copy( it, it + 4, p_out.m_id ); + it += 4; + uint32_t chunk_size = ( it[ 0 ] << 24 ) | ( it[ 1 ] << 16 ) | ( it[ 2 ] << 8 ) | it[ 3 ]; + it += 4; + bool is_cat_chunk = !memcmp( p_out.m_id, "CAT ", 4 ); + bool is_form_chunk = !memcmp( p_out.m_id, "FORM", 4 ); + std::size_t chunk_size_limit = end - it; + if ( chunk_size > chunk_size_limit ) chunk_size = (uint32_t) chunk_size_limit; + if ( ( first_chunk && is_form_chunk ) || ( !first_chunk && is_cat_chunk ) ) + { + std::vector::const_iterator chunk_end = it + chunk_size; + std::copy( it, it + 4, p_out.m_type ); + it += 4; + while ( it < chunk_end ) + { + iff_chunk chunk; + if ( !read_iff_chunk( it, chunk_end, chunk, is_cat_chunk ) ) return false; + p_out.m_sub_chunks.push_back( chunk ); + } + it = chunk_end; + if ( chunk_size & 1 && it < end ) ++it; + } + else if ( !is_form_chunk && !is_cat_chunk ) + { + p_out.m_data.assign( it, it + chunk_size ); + it += chunk_size; + if ( chunk_size & 1 && it < end ) ++it; + } + else + { + /*if ( first_chunk ) throw exception_io_data( pfc::string_formatter() << "Found " << pfc::string8( (const char *)p_out.m_id, 4 ) << " chunk instead of FORM" ); + else throw exception_io_data( "Found multiple FORM chunks" );*/ + return false; + } + return true; +} + +static bool read_iff_stream( std::vector const& p_file, iff_stream & p_out ) +{ + std::vector::const_iterator it = p_file.begin(), end = p_file.end(); + bool first_chunk = true; + while ( it < end ) + { + iff_chunk chunk; + if ( !read_iff_chunk( it, end, chunk, first_chunk ) ) return false; + p_out.m_chunks.push_back( chunk ); + first_chunk = false; + } + return true; +} + +bool midi_processor::process_xmi( std::vector const& p_file, midi_container & p_out ) +{ + iff_stream xmi_file; + if ( !read_iff_stream( p_file, xmi_file ) ) return false; + + const iff_chunk & form_chunk = xmi_file.find_chunk( "FORM" ); + if ( memcmp( form_chunk.m_type, "XDIR", 4 ) ) return false; /*throw exception_io_data( "XMI IFF not XDIR type" );*/ + + const iff_chunk & cat_chunk = xmi_file.find_chunk( "CAT " ); + if ( memcmp( cat_chunk.m_type, "XMID", 4 ) ) return false; /*throw exception_io_data( "XMI CAT chunk not XMID type" );*/ + + unsigned track_count = cat_chunk.get_chunk_count( "FORM" ); + + p_out.initialize( track_count > 1 ? 2 : 0, 60 ); + + for ( unsigned i = 0; i < track_count; ++i ) + { + const iff_chunk & xmid_form_chunk = cat_chunk.find_sub_chunk( "FORM", i ); + if ( memcmp( xmid_form_chunk.m_type, "XMID", 4 ) ) return false; /*throw exception_io_data( "XMI nested FORM chunk not XMID type" );*/ + + const iff_chunk & event_chunk = xmid_form_chunk.find_sub_chunk( "EVNT" ); + if ( memcmp( event_chunk.m_id, "EVNT", 4 ) ) return false; /* EVNT chunk not found */ + std::vector const& event_body = event_chunk.m_data; + + midi_track track; + + bool initial_tempo = false; + + unsigned current_timestamp = 0; + + unsigned last_event_timestamp = 0; + + std::vector buffer; + buffer.resize( 3 ); + + std::vector::const_iterator it = event_body.begin(), end = event_body.end(); + + while ( it < end ) + { + unsigned delta = decode_xmi_delta( it, end ); + current_timestamp += delta; + + if ( current_timestamp > last_event_timestamp ) + { + last_event_timestamp = current_timestamp; + } + + buffer[ 0 ] = *it++; + if ( buffer[ 0 ] == 0xFF ) + { + buffer[ 1 ] = *it++; + int meta_count; + if ( buffer[ 1 ] == 0x2F ) + { + meta_count = 0; + } + else + { + meta_count = decode_delta( it ); + if ( meta_count < 0 ) return false; /*throw exception_io_data( "Invalid XMI meta message" );*/ + buffer.resize( meta_count + 2 ); + std::copy( it, it + meta_count, buffer.begin() + 2 ); + it += meta_count; + } + if ( buffer[ 1 ] == 0x2F && current_timestamp < last_event_timestamp ) + { + current_timestamp = last_event_timestamp; + } + if ( buffer[ 1 ] == 0x51 && meta_count == 3 ) + { + unsigned tempo = buffer[ 2 ] * 0x10000 + buffer[ 3 ] * 0x100 + buffer[ 4 ]; + unsigned ppqn = ( tempo * 3 ) / 25000; + tempo = tempo * 60 / ppqn; + buffer[ 2 ] = tempo / 0x10000; + buffer[ 3 ] = tempo / 0x100; + buffer[ 4 ] = tempo; + if ( current_timestamp == 0 ) initial_tempo = true; + } + track.add_event( midi_event( current_timestamp, midi_event::extended, 0, &buffer[0], meta_count + 2 ) ); + if ( buffer[ 1 ] == 0x2F ) break; + } + else if ( buffer[ 0 ] == 0xF0 ) + { + int system_exclusive_count = decode_delta( it ); + if ( system_exclusive_count < 0 ) return false; /*throw exception_io_data( "Invalid XMI System Exclusive message" );*/ + buffer.resize( system_exclusive_count + 1 ); + std::copy( it, it + system_exclusive_count, buffer.begin() + 1 ); + it += system_exclusive_count; + track.add_event( midi_event( current_timestamp, midi_event::extended, 0, &buffer[0], system_exclusive_count + 1 ) ); + } + else if ( buffer[ 0 ] >= 0x80 && buffer[ 0 ] <= 0xEF ) + { + unsigned bytes_read = 1; + buffer[ 1 ] = *it++; + midi_event::event_type type = (midi_event::event_type)( ( buffer[ 0 ] >> 4 ) - 8 ); + unsigned channel = buffer[ 0 ] & 0x0F; + if ( type != midi_event::program_change && type != midi_event::channel_aftertouch ) + { + buffer[ 2 ] = *it++; + bytes_read = 2; + } + track.add_event( midi_event( current_timestamp, type, channel, &buffer[1], bytes_read ) ); + if ( type == midi_event::note_on ) + { + buffer[ 2 ] = 0x00; + int note_length = decode_delta( it ); + if ( note_length < 0 ) return false; /*throw exception_io_data( "Invalid XMI note message" );*/ + unsigned note_end_timestamp = current_timestamp + note_length; + if ( note_end_timestamp > last_event_timestamp ) last_event_timestamp = note_end_timestamp; + track.add_event( midi_event( note_end_timestamp, type, channel, &buffer[1], bytes_read ) ); + } + } + else return false; /*throw exception_io_data( "Unexpected XMI status code" );*/ + } + + if ( !initial_tempo ) + track.add_event( midi_event( 0, midi_event::extended, 0, xmi_default_tempo, _countof( xmi_default_tempo ) ) ); + + p_out.add_track( track ); + } + + return true; +} diff --git a/Info.plist b/Info.plist index a2e0d1a63..acff25bbb 100644 --- a/Info.plist +++ b/Info.plist @@ -22,6 +22,30 @@ CFBundleTypeRole None + + CFBundleTypeExtensions + + lds + xmi + mus + hmp + hmi + mds + mids + rmi + kar + midi + mid + + LSTypeIsPackage + + CFBundleTypeRole + Viewer + CFBundleTypeIconFile + song.icns + CFBundleTypeName + MIDI Audio File + CFBundleTypeExtensions diff --git a/Plugins/MIDI/MIDI.xcodeproj/project.pbxproj b/Plugins/MIDI/MIDI.xcodeproj/project.pbxproj new file mode 100644 index 000000000..dc2247dc4 --- /dev/null +++ b/Plugins/MIDI/MIDI.xcodeproj/project.pbxproj @@ -0,0 +1,412 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 83B0668B180D5668008E3612 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83B0668A180D5668008E3612 /* Cocoa.framework */; }; + 83B06695180D5668008E3612 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 83B06693180D5668008E3612 /* InfoPlist.strings */; }; + 83B06701180D5747008E3612 /* midi_processing.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83B066E0180D56BA008E3612 /* midi_processing.framework */; }; + 83B06709180D64DA008E3612 /* MIDIPlayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83B06708180D64DA008E3612 /* MIDIPlayer.cpp */; }; + 83B0670C180D6665008E3612 /* BMPlayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83B0670A180D6665008E3612 /* BMPlayer.cpp */; }; + 83B0670F180D6F7F008E3612 /* libbass.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 83B0670D180D6F7F008E3612 /* libbass.dylib */; }; + 83B06710180D6F7F008E3612 /* libbassmidi.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 83B0670E180D6F7F008E3612 /* libbassmidi.dylib */; }; + 83B06712180D6FAA008E3612 /* libbass.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83B0670D180D6F7F008E3612 /* libbass.dylib */; }; + 83B06713180D6FAA008E3612 /* libbassmidi.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83B0670E180D6F7F008E3612 /* libbassmidi.dylib */; }; + 83B0671C180D6FD8008E3612 /* libbass_mpc.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83B06714180D6FC8008E3612 /* libbass_mpc.dylib */; }; + 83B0671D180D6FD8008E3612 /* libbassflac.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83B06715180D6FC8008E3612 /* libbassflac.dylib */; }; + 83B0671E180D6FD8008E3612 /* libbassopus.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83B06716180D6FC8008E3612 /* libbassopus.dylib */; }; + 83B0671F180D6FD8008E3612 /* libbasswv.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83B06717180D6FC8008E3612 /* libbasswv.dylib */; }; + 83B06722180D70FE008E3612 /* MIDIDecoder.mm in Sources */ = {isa = PBXBuildFile; fileRef = 83B06721180D70FE008E3612 /* MIDIDecoder.mm */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 83B066DF180D56BA008E3612 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83B066DA180D56B9008E3612 /* midi_processing.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 83B066AC180D56B9008E3612; + remoteInfo = midi_processing; + }; + 83B066FF180D573D008E3612 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 83B066DA180D56B9008E3612 /* midi_processing.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 83B066AB180D56B9008E3612; + remoteInfo = midi_processing; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 83B06711180D6F87008E3612 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 6; + files = ( + 83B0671C180D6FD8008E3612 /* libbass_mpc.dylib in CopyFiles */, + 83B0671D180D6FD8008E3612 /* libbassflac.dylib in CopyFiles */, + 83B0671E180D6FD8008E3612 /* libbassopus.dylib in CopyFiles */, + 83B0671F180D6FD8008E3612 /* libbasswv.dylib in CopyFiles */, + 83B06712180D6FAA008E3612 /* libbass.dylib in CopyFiles */, + 83B06713180D6FAA008E3612 /* libbassmidi.dylib in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 83B06687180D5668008E3612 /* MIDI.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MIDI.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 83B0668A180D5668008E3612 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + 83B0668D180D5668008E3612 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 83B0668E180D5668008E3612 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; + 83B0668F180D5668008E3612 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; + 83B06692180D5668008E3612 /* MIDI-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "MIDI-Info.plist"; sourceTree = ""; }; + 83B06694180D5668008E3612 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 83B06696180D5668008E3612 /* MIDI-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MIDI-Prefix.pch"; sourceTree = ""; }; + 83B066DA180D56B9008E3612 /* midi_processing.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = midi_processing.xcodeproj; path = ../../Frameworks/midi_processing/midi_processing.xcodeproj; sourceTree = ""; }; + 83B06706180D6471008E3612 /* MIDIPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MIDIPlayer.h; sourceTree = ""; }; + 83B06708180D64DA008E3612 /* MIDIPlayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MIDIPlayer.cpp; sourceTree = ""; }; + 83B0670A180D6665008E3612 /* BMPlayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BMPlayer.cpp; sourceTree = ""; }; + 83B0670B180D6665008E3612 /* BMPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BMPlayer.h; sourceTree = ""; }; + 83B0670D180D6F7F008E3612 /* libbass.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libbass.dylib; path = ../../ThirdParty/BASS/libbass.dylib; sourceTree = ""; }; + 83B0670E180D6F7F008E3612 /* libbassmidi.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libbassmidi.dylib; path = ../../ThirdParty/BASS/libbassmidi.dylib; sourceTree = ""; }; + 83B06714180D6FC8008E3612 /* libbass_mpc.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libbass_mpc.dylib; path = ../../ThirdParty/BASS/libbass_mpc.dylib; sourceTree = ""; }; + 83B06715180D6FC8008E3612 /* libbassflac.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libbassflac.dylib; path = ../../ThirdParty/BASS/libbassflac.dylib; sourceTree = ""; }; + 83B06716180D6FC8008E3612 /* libbassopus.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libbassopus.dylib; path = ../../ThirdParty/BASS/libbassopus.dylib; sourceTree = ""; }; + 83B06717180D6FC8008E3612 /* libbasswv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libbasswv.dylib; path = ../../ThirdParty/BASS/libbasswv.dylib; sourceTree = ""; }; + 83B06720180D70FE008E3612 /* MIDIDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MIDIDecoder.h; sourceTree = ""; }; + 83B06721180D70FE008E3612 /* MIDIDecoder.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MIDIDecoder.mm; sourceTree = ""; }; + 83B06723180D714F008E3612 /* Plugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Plugin.h; path = ../../../Audio/Plugin.h; sourceTree = ""; }; + 83B06724180D792E008E3612 /* Logging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Logging.h; path = ../../../Utils/Logging.h; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 83B06684180D5668008E3612 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 83B0670F180D6F7F008E3612 /* libbass.dylib in Frameworks */, + 83B06701180D5747008E3612 /* midi_processing.framework in Frameworks */, + 83B06710180D6F7F008E3612 /* libbassmidi.dylib in Frameworks */, + 83B0668B180D5668008E3612 /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 83B0667E180D5668008E3612 = { + isa = PBXGroup; + children = ( + 83B06690180D5668008E3612 /* MIDI */, + 83B06689180D5668008E3612 /* Frameworks */, + 83B06688180D5668008E3612 /* Products */, + ); + sourceTree = ""; + }; + 83B06688180D5668008E3612 /* Products */ = { + isa = PBXGroup; + children = ( + 83B06687180D5668008E3612 /* MIDI.bundle */, + ); + name = Products; + sourceTree = ""; + }; + 83B06689180D5668008E3612 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 83B06714180D6FC8008E3612 /* libbass_mpc.dylib */, + 83B06715180D6FC8008E3612 /* libbassflac.dylib */, + 83B06716180D6FC8008E3612 /* libbassopus.dylib */, + 83B06717180D6FC8008E3612 /* libbasswv.dylib */, + 83B0670D180D6F7F008E3612 /* libbass.dylib */, + 83B0670E180D6F7F008E3612 /* libbassmidi.dylib */, + 83B0668A180D5668008E3612 /* Cocoa.framework */, + 83B0668C180D5668008E3612 /* Other Frameworks */, + 83B066DA180D56B9008E3612 /* midi_processing.xcodeproj */, + ); + name = Frameworks; + sourceTree = ""; + }; + 83B0668C180D5668008E3612 /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + 83B0668D180D5668008E3612 /* Foundation.framework */, + 83B0668E180D5668008E3612 /* CoreData.framework */, + 83B0668F180D5668008E3612 /* AppKit.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 83B06690180D5668008E3612 /* MIDI */ = { + isa = PBXGroup; + children = ( + 83B06724180D792E008E3612 /* Logging.h */, + 83B06723180D714F008E3612 /* Plugin.h */, + 83B06720180D70FE008E3612 /* MIDIDecoder.h */, + 83B06721180D70FE008E3612 /* MIDIDecoder.mm */, + 83B0670A180D6665008E3612 /* BMPlayer.cpp */, + 83B0670B180D6665008E3612 /* BMPlayer.h */, + 83B06708180D64DA008E3612 /* MIDIPlayer.cpp */, + 83B06706180D6471008E3612 /* MIDIPlayer.h */, + 83B06691180D5668008E3612 /* Supporting Files */, + ); + path = MIDI; + sourceTree = ""; + }; + 83B06691180D5668008E3612 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 83B06692180D5668008E3612 /* MIDI-Info.plist */, + 83B06693180D5668008E3612 /* InfoPlist.strings */, + 83B06696180D5668008E3612 /* MIDI-Prefix.pch */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 83B066DB180D56B9008E3612 /* Products */ = { + isa = PBXGroup; + children = ( + 83B066E0180D56BA008E3612 /* midi_processing.framework */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 83B06686180D5668008E3612 /* MIDI */ = { + isa = PBXNativeTarget; + buildConfigurationList = 83B06699180D5668008E3612 /* Build configuration list for PBXNativeTarget "MIDI" */; + buildPhases = ( + 83B06683180D5668008E3612 /* Sources */, + 83B06684180D5668008E3612 /* Frameworks */, + 83B06685180D5668008E3612 /* Resources */, + 83B06711180D6F87008E3612 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + 83B06700180D573D008E3612 /* PBXTargetDependency */, + ); + name = MIDI; + productName = MIDI; + productReference = 83B06687180D5668008E3612 /* MIDI.bundle */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 83B0667F180D5668008E3612 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0500; + ORGANIZATIONNAME = "Christopher Snowhill"; + }; + buildConfigurationList = 83B06682180D5668008E3612 /* Build configuration list for PBXProject "MIDI" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 83B0667E180D5668008E3612; + productRefGroup = 83B06688180D5668008E3612 /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 83B066DB180D56B9008E3612 /* Products */; + ProjectRef = 83B066DA180D56B9008E3612 /* midi_processing.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 83B06686180D5668008E3612 /* MIDI */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + 83B066E0180D56BA008E3612 /* midi_processing.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = midi_processing.framework; + remoteRef = 83B066DF180D56BA008E3612 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXResourcesBuildPhase section */ + 83B06685180D5668008E3612 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 83B06695180D5668008E3612 /* InfoPlist.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 83B06683180D5668008E3612 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 83B06709180D64DA008E3612 /* MIDIPlayer.cpp in Sources */, + 83B06722180D70FE008E3612 /* MIDIDecoder.mm in Sources */, + 83B0670C180D6665008E3612 /* BMPlayer.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 83B06700180D573D008E3612 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = midi_processing; + targetProxy = 83B066FF180D573D008E3612 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 83B06693180D5668008E3612 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 83B06694180D5668008E3612 /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 83B06697180D5668008E3612 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.7; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + 83B06698180D5668008E3612 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.7; + SDKROOT = macosx; + }; + name = Release; + }; + 83B0669A180D5668008E3612 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "MIDI/MIDI-Prefix.pch"; + INFOPLIST_FILE = "MIDI/MIDI-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + /Users/Chris/Source/Repos/cog/ThirdParty/BASS, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + 83B0669B180D5668008E3612 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "MIDI/MIDI-Prefix.pch"; + INFOPLIST_FILE = "MIDI/MIDI-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + /Users/Chris/Source/Repos/cog/ThirdParty/BASS, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 83B06682180D5668008E3612 /* Build configuration list for PBXProject "MIDI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83B06697180D5668008E3612 /* Debug */, + 83B06698180D5668008E3612 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83B06699180D5668008E3612 /* Build configuration list for PBXNativeTarget "MIDI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83B0669A180D5668008E3612 /* Debug */, + 83B0669B180D5668008E3612 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = 83B0667F180D5668008E3612 /* Project object */; +} diff --git a/Plugins/MIDI/MIDI/BMPlayer.cpp b/Plugins/MIDI/MIDI/BMPlayer.cpp new file mode 100644 index 000000000..895defafa --- /dev/null +++ b/Plugins/MIDI/MIDI/BMPlayer.cpp @@ -0,0 +1,351 @@ +#include "BMPlayer.h" + +#include + +#include + +#include + +#define SF2PACK + +#define _countof(arr) (sizeof(arr) / sizeof((arr)[0])) + +static const uint8_t sysex_gm_reset[] = { 0xF0, 0x7E, 0x7F, 0x09, 0x01, 0xF7 }; +static const uint8_t sysex_gm2_reset[]= { 0xF0, 0x7E, 0x7F, 0x09, 0x03, 0xF7 }; +static const uint8_t sysex_gs_reset[] = { 0xF0, 0x41, 0x10, 0x42, 0x12, 0x40, 0x00, 0x7F, 0x00, 0x41, 0xF7 }; +static const uint8_t sysex_xg_reset[] = { 0xF0, 0x43, 0x10, 0x4C, 0x00, 0x00, 0x7E, 0x00, 0xF7 }; + +static bool is_gs_reset(const unsigned char * data, unsigned long size) +{ + if ( size != _countof( sysex_gs_reset ) ) return false; + + if ( memcmp( data, sysex_gs_reset, 5 ) != 0 ) return false; + if ( memcmp( data + 7, sysex_gs_reset + 7, 2 ) != 0 ) return false; + if ( ( ( data[ 5 ] + data[ 6 ] + 1 ) & 127 ) != data[ 9 ] ) return false; + if ( data[ 10 ] != sysex_gs_reset[ 10 ] ) return false; + + return true; +} + +class Bass_Initializer +{ + pthread_mutex_t lock; + + bool initialized; + + std::string base_path; + +public: + Bass_Initializer() : initialized(false) + { + pthread_mutex_init( &lock, NULL ); + } + + ~Bass_Initializer() + { + if ( initialized ) + { + BASS_Free(); + } + pthread_mutex_destroy( &lock ); + } + + bool check_initialized() + { + pthread_mutex_lock(&lock); + bool initialized = this->initialized; + pthread_mutex_unlock(&lock); + return initialized; + } + + void set_base_path() + { + Dl_info info; + dladdr( (void*) &BASS_Init, &info ); + base_path = info.dli_fname; + size_t slash = base_path.find_last_of( '/' ); + base_path.erase( base_path.begin() + slash + 1, base_path.end() ); + } + + void load_plugin(const char * name) + { + std::string full_path = base_path; + full_path += name; + BASS_PluginLoad( full_path.c_str(), 0 ); + } + + bool initialize() + { + pthread_mutex_lock(&lock); + bool initialized = this->initialized; + if ( !initialized ) + { +#ifdef SF2PACK + set_base_path(); + load_plugin( "libbassflac.dylib" ); + load_plugin( "libbasswv.dylib" ); + load_plugin( "libbassopus.dylib" ); + load_plugin( "libbass_mpc.dylib" ); +#endif + BASS_SetConfig( BASS_CONFIG_UPDATEPERIOD, 0 ); + initialized = !!BASS_Init( 0, 44100, 0, NULL, NULL ); + if ( initialized ) + { + BASS_SetConfigPtr( BASS_CONFIG_MIDI_DEFFONT, NULL ); + BASS_SetConfig( BASS_CONFIG_MIDI_VOICES, 256 ); + this->initialized = initialized; + } + } + pthread_mutex_unlock(&lock); + return initialized; + } +} g_initializer; + +BMPlayer::BMPlayer() : MIDIPlayer() +{ + _stream = 0; + bSincInterpolation = false; + + if ( !g_initializer.initialize() ) throw std::runtime_error( "Unable to initialize BASS" ); +} + +BMPlayer::~BMPlayer() +{ + shutdown(); +} + +void BMPlayer::setSincInterpolation(bool enable) +{ + bSincInterpolation = enable; + + shutdown(); +} + +void BMPlayer::send_event(uint32_t b) +{ + if (!(b & 0x80000000)) + { + unsigned char event[ 3 ]; + event[ 0 ] = (unsigned char)b; + event[ 1 ] = (unsigned char)( b >> 8 ); + event[ 2 ] = (unsigned char)( b >> 16 ); + unsigned port = (b >> 24) & 0x7F; + unsigned channel = b & 0x0F; + unsigned command = b & 0xF0; + unsigned event_length = ( command == 0xC0 || command == 0xD0 ) ? 2 : 3; + channel += 16 * port; + BASS_MIDI_StreamEvents( _stream, BASS_MIDI_EVENTS_RAW + 1 + channel, event, event_length ); + if ( command == 0xB0 && event[ 1 ] == 0 ) + { + if ( synth_mode == mode_xg ) + { + if ( event[ 2 ] == 127 ) drum_channels[ channel ] = 1; + else drum_channels[ channel ] = 0; + } + else if ( synth_mode == mode_gm2 ) + { + if ( event[ 2 ] == 120 ) drum_channels[ channel ] = 1; + else if ( event[ 2 ] == 121 ) drum_channels[ channel ] = 0; + } + } + else if ( command == 0xC0 ) + { + unsigned channel_masked = channel & 0x0F; + unsigned drum_channel = drum_channels[ channel ]; + if ( ( channel_masked == 9 && !drum_channel ) || + ( channel_masked != 9 && drum_channel ) ) + BASS_MIDI_StreamEvent( _stream, channel, MIDI_EVENT_DRUMS, drum_channel ); + } + } + else + { + unsigned long n = b & 0xffffff; + const uint8_t * data; + std::size_t size, port; + mSysexMap.get_entry( n, data, size, port ); + if ( port > 2 ) port = 2; + BASS_MIDI_StreamEvents( _stream, BASS_MIDI_EVENTS_RAW, data, size ); + if ( ( size == _countof( sysex_gm_reset ) && !memcmp( data, sysex_gm_reset, _countof( sysex_gm_reset ) ) ) || + ( size == _countof( sysex_gm2_reset ) && !memcmp( data, sysex_gm2_reset, _countof( sysex_gm2_reset ) ) ) || + is_gs_reset( data, size ) || + ( size == _countof( sysex_xg_reset ) && !memcmp( data, sysex_xg_reset, _countof( sysex_xg_reset ) ) ) ) + { + reset_drum_channels(); + synth_mode = ( size == _countof( sysex_xg_reset ) ) ? mode_xg : + ( size == _countof( sysex_gs_reset ) ) ? mode_gs : + ( data [4] == 0x01 ) ? mode_gm : + mode_gm2; + } + else if ( synth_mode == mode_gs && size == 11 && + data [0] == 0xF0 && data [1] == 0x41 && data [3] == 0x42 && + data [4] == 0x12 && data [5] == 0x40 && (data [6] & 0xF0) == 0x10 && + data [10] == 0xF7) + { + if (data [7] == 2) + { + // GS MIDI channel to part assign + gs_part_to_ch [ port ][ data [6] & 15 ] = data [8]; + } + else if ( data [7] == 0x15 ) + { + // GS part to rhythm allocation + unsigned int drum_channel = gs_part_to_ch [ port ][ data [6] & 15 ]; + if ( drum_channel < 16 ) + { + drum_channel += 16 * port; + drum_channels [ drum_channel ] = data [8]; + } + } + } + } +} + +void BMPlayer::render(float * out, unsigned long count) +{ + BASS_ChannelGetData( _stream, out, BASS_DATA_FLOAT | (unsigned int) ( count * sizeof( float ) * 2 ) ); +} + +void BMPlayer::setSoundFont( const char * in ) +{ + sSoundFontName = in; + shutdown(); +} + +void BMPlayer::setFileSoundFont( const char * in ) +{ + sFileSoundFontName = in; + shutdown(); +} + +void BMPlayer::shutdown() +{ + if ( _stream ) BASS_StreamFree( _stream ); + _stream = NULL; + for ( unsigned long i = 0; i < _soundFonts.size(); ++i ) + { + BASS_MIDI_FontFree( _soundFonts[i] ); + } + _soundFonts.resize( 0 ); +} + +bool BMPlayer::startup() +{ + if ( _stream ) return true; + + _stream = BASS_MIDI_StreamCreate( 48, BASS_SAMPLE_FLOAT | BASS_STREAM_DECODE | ( bSincInterpolation ? BASS_MIDI_SINCINTER : 0 ), (unsigned int) uSampleRate ); + if (!_stream) + { + return false; + } + if (sSoundFontName.length()) + { + std::string ext; + size_t dot = sSoundFontName.find_last_of('.'); + if (dot != std::string::npos) ext.assign( sSoundFontName.begin() + dot + 1, sSoundFontName.end() ); + if ( !strcasecmp( ext.c_str(), "sf2" ) +#ifdef SF2PACK + || !strcasecmp( ext.c_str(), "sf2pack" ) +#endif + ) + { + HSOUNDFONT font = BASS_MIDI_FontInit( sSoundFontName.c_str(), 0 ); + if ( !font ) + { + shutdown(); + return false; + } + _soundFonts.push_back( font ); + } + else if ( !strcasecmp( ext.c_str(), "sflist" ) ) + { + FILE * fl = fopen( sSoundFontName.c_str(), "r" ); + if ( fl ) + { + std::string path, temp; + char name[32768]; + size_t slash = sSoundFontName.find_last_of('/'); + if ( slash != std::string::npos ) path.assign( sSoundFontName.begin(), sSoundFontName.begin() + slash + 1 ); + while ( !feof( fl ) ) + { + if ( !fgets( name, 32767, fl ) ) break; + name[32767] = 0; + char * cr = strchr( name, '\n' ); + if ( cr ) *cr = 0; + cr = strchr( name, '\r' ); + if ( cr ) *cr = 0; + if ( name[0] == '/' ) + { + temp = name; + } + else + { + temp = path; + temp += name; + } + HSOUNDFONT font = BASS_MIDI_FontInit( temp.c_str(), 0 ); + if ( !font ) + { + fclose( fl ); + shutdown(); + return false; + } + _soundFonts.push_back( font ); + } + fclose( fl ); + } + else + { + return false; + } + } + } + + if ( sFileSoundFontName.length() ) + { + HSOUNDFONT font = BASS_MIDI_FontInit( sFileSoundFontName.c_str(), 0 ); + if ( !font ) + { + shutdown(); + return false; + } + _soundFonts.push_back( font ); + } + + std::vector< BASS_MIDI_FONT > fonts; + for ( unsigned long i = 0, j = _soundFonts.size(); i < j; ++i ) + { + BASS_MIDI_FONT sf; + sf.font = _soundFonts[ j - i - 1 ]; + sf.preset = -1; + sf.bank = 0; + fonts.push_back( sf ); + } + BASS_MIDI_StreamSetFonts( _stream, &fonts[0], (unsigned int) fonts.size() ); + + reset_drum_channels(); + + synth_mode = mode_gm; + + return true; +} + +void BMPlayer::reset_drum_channels() +{ + static const uint8_t part_to_ch[16] = { 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15 }; + + memset( drum_channels, 0, sizeof( drum_channels ) ); + drum_channels[ 9 ] = 1; + drum_channels[ 25 ] = 1; + drum_channels[ 41 ] = 1; + + for ( unsigned long i = 0; i < 3; i++ ) + memcpy( gs_part_to_ch[ i ], part_to_ch, sizeof( gs_part_to_ch[ i ] ) ); + + if ( _stream ) + { + for ( unsigned i = 0; i < 48; ++i ) + { + BASS_MIDI_StreamEvent( _stream, i, MIDI_EVENT_DRUMS, drum_channels[ i ] ); + } + } +} diff --git a/Plugins/MIDI/MIDI/BMPlayer.h b/Plugins/MIDI/MIDI/BMPlayer.h new file mode 100644 index 000000000..7f450003e --- /dev/null +++ b/Plugins/MIDI/MIDI/BMPlayer.h @@ -0,0 +1,52 @@ +#ifndef __BMPlayer_h__ +#define __BMPlayer_h__ + +#include "MIDIPlayer.h" + +#include "../../../ThirdParty/BASS/bassmidi.h" + +class BMPlayer : public MIDIPlayer +{ +public: + // zero variables + BMPlayer(); + + // close, unload + virtual ~BMPlayer(); + + // configuration + void setSoundFont( const char * in ); + void setFileSoundFont( const char * in ); + void setSincInterpolation(bool enable = true); + +private: + virtual void send_event(uint32_t b); + virtual void render(float * out, unsigned long count); + + virtual void shutdown(); + virtual bool startup(); + + void reset_drum_channels(); + + std::vector _soundFonts; + std::string sSoundFontName; + std::string sFileSoundFontName; + + HSTREAM _stream; + + bool bSincInterpolation; + + enum + { + mode_gm = 0, + mode_gm2, + mode_gs, + mode_xg + } + synth_mode; + + uint8_t gs_part_to_ch[3][16]; + uint8_t drum_channels[48]; +}; + +#endif diff --git a/Plugins/MIDI/MIDI/MIDI-Info.plist b/Plugins/MIDI/MIDI/MIDI-Info.plist new file mode 100644 index 000000000..845d65c31 --- /dev/null +++ b/Plugins/MIDI/MIDI/MIDI-Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + net.kode54.midi + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + NSHumanReadableCopyright + Copyright © 2013 Christopher Snowhill. All rights reserved. + NSPrincipalClass + + + diff --git a/Plugins/MIDI/MIDI/MIDI-Prefix.pch b/Plugins/MIDI/MIDI/MIDI-Prefix.pch new file mode 100644 index 000000000..35d76409f --- /dev/null +++ b/Plugins/MIDI/MIDI/MIDI-Prefix.pch @@ -0,0 +1,9 @@ +// +// Prefix header +// +// The contents of this file are implicitly included at the beginning of every source file. +// + +#ifdef __OBJC__ + #import +#endif diff --git a/Plugins/MIDI/MIDI/MIDIDecoder.h b/Plugins/MIDI/MIDI/MIDIDecoder.h new file mode 100755 index 000000000..5580af063 --- /dev/null +++ b/Plugins/MIDI/MIDI/MIDIDecoder.h @@ -0,0 +1,27 @@ +// +// MIDIDecoder.h +// MIDI +// +// Created by Christopher Snowhill on 10/15/13. +// Copyright 2013 __NoWork, Inc__. All rights reserved. +// + +#import + +#import "MIDIPlayer.h" + +#import "Plugin.h" + +@interface MIDIDecoder : NSObject { + MIDIPlayer* player; + midi_container midi_file; + + BOOL soundFontsAssigned; + + long totalFrames; + long framesLength; + long framesFade; + long framesRead; +} + +@end diff --git a/Plugins/MIDI/MIDI/MIDIDecoder.mm b/Plugins/MIDI/MIDI/MIDIDecoder.mm new file mode 100755 index 000000000..6f228dc54 --- /dev/null +++ b/Plugins/MIDI/MIDI/MIDIDecoder.mm @@ -0,0 +1,167 @@ +// +// MIDIDecoder.mm +// MIDI +// +// Created by Christopher Snowhill on 10/15/13. +// Copyright 2013 __NoWork, Inc__. All rights reserved. +// + +#import "MIDIDecoder.h" + +#import "BMPlayer.h" + +#import "Logging.h" + +#import + +@implementation MIDIDecoder + +- (BOOL)open:(id)s +{ + //We need file-size to use midi_processing + if (![s seekable]) { + return NO; + } + + std::vector file_data; + + [s seek:0 whence:SEEK_END]; + size_t size = [s tell]; + [s seek:0 whence:SEEK_SET]; + file_data.resize( size ); + [s read:&file_data[0] amount:size]; + + if ( !midi_processor::process_file(file_data, [[[[s url] absoluteString] lastPathComponent] UTF8String], midi_file) ) + return NO; + + int track_num = [[[s url] fragment] intValue]; //What if theres no fragment? Assuming we get 0. + + midi_file.scan_for_loops( true, true ); + + framesLength = midi_file.get_timestamp_end( track_num, true ) + 1000; + + unsigned long loopStart = midi_file.get_timestamp_loop_start( track_num, true ); + unsigned long loopEnd = midi_file.get_timestamp_loop_end( track_num, true ); + + if ( loopStart != ~0UL && loopEnd != ~0UL ) + { + // two loops and a fade + framesLength = loopStart + ( loopEnd - loopStart ) * 2; + framesFade = 8000; + } + else + { + framesFade = 0; + } + + framesLength = framesLength * 441 / 10; + framesFade = framesFade * 441 / 10; + + totalFrames = framesLength + framesFade; + + DLog(@"Length: %li", totalFrames); + + DLog(@"Track num: %i", track_num); + + BMPlayer * bmplayer = new BMPlayer; + player = bmplayer; + + bmplayer->setSincInterpolation( true ); + bmplayer->setSampleRate( 44100 ); + + unsigned int loop_mode = framesFade ? MIDIPlayer::loop_mode_enable | MIDIPlayer::loop_mode_force : 0; + unsigned int clean_flags = midi_container::clean_flag_emidi; + + if ( !bmplayer->Load( midi_file, track_num, loop_mode, clean_flags) ) + return NO; + + framesRead = 0; + + [self willChangeValueForKey:@"properties"]; + [self didChangeValueForKey:@"properties"]; + + return YES; +} + +- (NSDictionary *)properties +{ + return [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithInt:0], @"bitrate", + [NSNumber numberWithFloat:44100], @"sampleRate", + [NSNumber numberWithLong:totalFrames], @"totalFrames", + [NSNumber numberWithInt:32], @"bitsPerSample", + [NSNumber numberWithBool:YES], @"floatingPoint", + [NSNumber numberWithInt:2], @"channels", //output from gme_play is in stereo + [NSNumber numberWithBool:YES], @"seekable", + @"host", @"endian", + nil]; +} + +- (int)readAudio:(void *)buf frames:(UInt32)frames +{ + if ( !soundFontsAssigned ) { + NSString * soundFontPath = [[NSUserDefaults standardUserDefaults] stringForKey:@"soundFontPath"]; + if (soundFontPath == nil) + return 0; + + ((BMPlayer *)player)->setSoundFont( [soundFontPath UTF8String] ); + + soundFontsAssigned = YES; + } + + player->Play( (float *) buf, frames ); + + if ( framesRead + frames > framesLength ) { + if ( framesFade ) { + long fadeStart = (framesLength > framesRead) ? framesLength : framesRead; + long fadeEnd = (framesRead + frames > totalFrames) ? totalFrames : (framesRead + frames); + long fadePos; + + float * buff = ( float * ) buf; + + float fadeScale = (fadeStart - framesLength) / framesFade; + float fadeStep = 1 / framesFade; + for (fadePos = fadeStart; fadePos < fadeEnd; ++fadePos) { + buff[ 0 ] *= fadeScale; + buff[ 1 ] *= fadeScale; + buff += 2; + fadeScale -= fadeStep; + if (fadeScale < 0) break; + } + + if (fadePos < totalFrames) + frames = (int)(fadePos - fadeStart); + } + else { + frames = (int)(totalFrames - framesRead); + } + } + + framesRead += frames; + return frames; +} + +- (long)seek:(long)frame +{ + player->Seek( frame ); + + return frame; +} + +- (void)close +{ + delete player; + player = NULL; +} + ++ (NSArray *)fileTypes +{ + return [NSArray arrayWithObjects:@"mid", @"midi", @"kar", @"rmi", @"mids", @"mds", @"hmi", @"hmp", @"mus", @"xmi", @"lds", nil]; +} + ++ (NSArray *)mimeTypes +{ + return [NSArray arrayWithObjects:@"audio/midi", @"audio/x-midi", nil]; +} + +@end diff --git a/Plugins/MIDI/MIDI/MIDIPlayer.cpp b/Plugins/MIDI/MIDI/MIDIPlayer.cpp new file mode 100644 index 000000000..d753f3472 --- /dev/null +++ b/Plugins/MIDI/MIDI/MIDIPlayer.cpp @@ -0,0 +1,313 @@ +#include + +#include "MIDIPlayer.h" + +MIDIPlayer::MIDIPlayer() +{ + uSamplesRemaining = 0; + uSampleRate = 1000; + uTimeCurrent = 0; + uTimeEnd = 0; + uTimeLoopStart = 0; +} + +void MIDIPlayer::setSampleRate(unsigned long rate) +{ + if (mStream.size()) + { + for (unsigned long i = 0; i < mStream.size(); i++) + { + mStream[i].m_timestamp = mStream[i].m_timestamp * rate / uSampleRate; + } + } + + if (uTimeCurrent) + { + uTimeCurrent = uTimeCurrent * rate / uSampleRate; + } + + if (uTimeEnd) + { + uTimeEnd = uTimeEnd * rate / uSampleRate; + } + + if (uTimeLoopStart) + { + uTimeLoopStart = uTimeLoopStart * rate / uSampleRate; + } + + uSampleRate = rate; + + shutdown(); +} + +bool MIDIPlayer::Load(const midi_container & midi_file, unsigned subsong, unsigned loop_mode, unsigned clean_flags) +{ + assert(!mStream.size()); + + midi_file.serialize_as_stream( subsong, mStream, mSysexMap, clean_flags ); + + if (mStream.size()) + { + uStreamPosition = 0; + uTimeCurrent = 0; + + uLoopMode = loop_mode; + + if (uLoopMode & loop_mode_enable) + { + uTimeLoopStart = midi_file.get_timestamp_loop_start( subsong, true ); + unsigned long uTimeLoopEnd = midi_file.get_timestamp_loop_end( subsong, true ); + uTimeEnd = midi_file.get_timestamp_end( subsong, true ); + + if ( uTimeLoopStart != ~0UL || uTimeLoopEnd != ~0UL ) + { + uLoopMode |= loop_mode_force; + } + + if ( uTimeLoopStart != ~0 ) + { + for ( unsigned i = 0; i < mStream.size(); ++i ) + { + if ( mStream[ i ].m_timestamp >= uTimeLoopStart ) + { + uStreamLoopStart = i; + break; + } + } + } + else uStreamLoopStart = ~0UL; + + if ( uTimeLoopEnd != ~0UL ) + { + uTimeEnd = uTimeLoopEnd; + } + + if (!(uLoopMode & loop_mode_force)) uTimeEnd += 1000; + else + { + unsigned long i; + unsigned char note_on[128 * 16]; + memset( note_on, 0, sizeof( note_on ) ); + for (i = 0; i < mStream.size(); i++) + { + if (mStream[ i ].m_timestamp > uTimeEnd) break; + uint32_t ev = mStream[ i ].m_event & 0x800000F0; + if ( ev == 0x90 || ev == 0x80 ) + { + unsigned long port = ( mStream[ i ].m_event & 0x7F000000 ) >> 24; + unsigned long ch = mStream[ i ].m_event & 0x0F; + unsigned long note = ( mStream[ i ].m_event >> 8 ) & 0x7F; + unsigned long on = ( ev == 0x90 ) && ( mStream[ i ].m_event & 0xFF0000 ); + unsigned long bit = 1 << port; + note_on [ ch * 128 + note ] = ( note_on [ ch * 128 + note ] & ~bit ) | ( bit * on ); + } + } + mStream.resize( i ); + for ( unsigned long j = 0; j < 128 * 16; j++ ) + { + if ( note_on[ j ] ) + { + for ( unsigned long k = 0; k < 8; k++ ) + { + if ( note_on[ j ] & ( 1 << k ) ) + { + mStream.push_back( midi_stream_event( uTimeEnd, (uint32_t)(( k << 24 ) + ( j >> 7 ) + ( j & 0x7F ) * 0x100 + 0x90 )) ); + } + } + } + } + } + } + else uTimeEnd = midi_file.get_timestamp_end( subsong, true ) + 1000; + + if (uSampleRate != 1000) + { + unsigned long rate = uSampleRate; + uSampleRate = 1000; + setSampleRate(rate); + } + + return true; + } + + return false; +} + +unsigned long MIDIPlayer::Play(float * out, unsigned long count) +{ + assert(mStream.size()); + + if ( !startup() ) return 0; + + unsigned long done = 0; + + if ( uSamplesRemaining ) + { + unsigned long todo = uSamplesRemaining; + if (todo > count) todo = count; + render( out, todo ); + uSamplesRemaining -= todo; + done += todo; + uTimeCurrent += todo; + } + + while (done < count) + { + unsigned long todo = uTimeEnd - uTimeCurrent; + if (todo > count - done) todo = count - done; + + unsigned long time_target = todo + uTimeCurrent; + unsigned long stream_end = uStreamPosition; + + while (stream_end < mStream.size() && mStream[stream_end].m_timestamp < time_target) stream_end++; + + if (stream_end > uStreamPosition) + { + for (; uStreamPosition < stream_end; uStreamPosition++) + { + midi_stream_event * me = &mStream[uStreamPosition]; + + unsigned long samples_todo = me->m_timestamp - uTimeCurrent; + if ( samples_todo ) + { + if ( samples_todo > count - done ) + { + uSamplesRemaining = samples_todo - ( count - done ); + samples_todo = count - done; + } + render( out + done * 2, samples_todo ); + done += samples_todo; + + if ( uSamplesRemaining ) + { + uTimeCurrent = me->m_timestamp; + return done; + } + } + + send_event( me->m_event ); + + uTimeCurrent = me->m_timestamp; + } + } + + if ( done < count ) + { + unsigned long samples_todo; + if ( uStreamPosition < mStream.size() ) samples_todo = mStream[uStreamPosition].m_timestamp; + else samples_todo = uTimeEnd; + samples_todo -= uTimeCurrent; + if ( samples_todo > count - done ) samples_todo = count - done; + render( out + done * 2, samples_todo ); + done += samples_todo; + } + + uTimeCurrent = time_target; + + if (uTimeCurrent >= uTimeEnd) + { + if ( uStreamPosition < mStream.size() ) + { + for (; uStreamPosition < mStream.size(); uStreamPosition++) + { + send_event( mStream[ uStreamPosition ].m_event ); + } + } + + if ((uLoopMode & (loop_mode_enable | loop_mode_force)) == (loop_mode_enable | loop_mode_force)) + { + if (uStreamLoopStart == ~0) + { + uStreamPosition = 0; + uTimeCurrent = 0; + } + else + { + uStreamPosition = uStreamLoopStart; + uTimeCurrent = uTimeLoopStart; + } + } + else break; + } + } + + return done; +} + +void MIDIPlayer::Seek(unsigned long sample) +{ + if (sample >= uTimeEnd) + { + if ((uLoopMode & (loop_mode_enable | loop_mode_force)) == (loop_mode_enable | loop_mode_force)) + { + while (sample >= uTimeEnd) sample -= uTimeEnd - uTimeLoopStart; + } + else + { + sample = uTimeEnd; + } + } + + if (uTimeCurrent > sample) + { + // hokkai, let's kill any hanging notes + uStreamPosition = 0; + + shutdown(); + } + + if (!startup()) return; + + uTimeCurrent = sample; + + std::vector filler; + + unsigned long stream_start = uStreamPosition; + + for (; uStreamPosition < mStream.size() && mStream[uStreamPosition].m_timestamp < uTimeCurrent; uStreamPosition++); + + uSamplesRemaining = mStream[uStreamPosition].m_timestamp - uTimeCurrent; + + if (uStreamPosition > stream_start) + { + filler.resize( uStreamPosition - stream_start ); + filler.assign( &mStream[stream_start], &mStream[uStreamPosition] ); + + unsigned long i, j; + midi_stream_event * me = &filler[0]; + + for (i = 0, stream_start = uStreamPosition - stream_start; i < stream_start; i++) + { + midi_stream_event & e = me[i]; + if ((e.m_event & 0x800000F0) == 0x90 && (e.m_event & 0xFF0000)) // note on + { + if ((e.m_event & 0x0F) == 9) // hax + { + e.m_event = 0; + continue; + } + uint32_t m = (e.m_event & 0x7F00FF0F) | 0x80; // note off + uint32_t m2 = e.m_event & 0x7F00FFFF; // also note off + for (j = i + 1; j < stream_start; j++) + { + midi_stream_event & e2 = me[j]; + if ((e2.m_event & 0xFF00FFFF) == m || e2.m_event == m2) + { + // kill 'em + e.m_event = 0; + e2.m_event = 0; + break; + } + } + } + } + + for (i = 0; i < stream_start; i++) + { + if (me[i].m_event) + send_event(me[i].m_event); + } + } +} + diff --git a/Plugins/MIDI/MIDI/MIDIPlayer.h b/Plugins/MIDI/MIDI/MIDIPlayer.h new file mode 100644 index 000000000..9332f63eb --- /dev/null +++ b/Plugins/MIDI/MIDI/MIDIPlayer.h @@ -0,0 +1,54 @@ +#ifndef __MIDIPlayer_h__ +#define __MIDIPlayer_h__ + +#include + +class MIDIPlayer +{ +public: + enum + { + loop_mode_enable = 1 << 0, + loop_mode_force = 1 << 1 + }; + + // zero variables + MIDIPlayer(); + + // close, unload + virtual ~MIDIPlayer() {}; + + // setup + void setSampleRate(unsigned long rate); + + bool Load(const midi_container & midi_file, unsigned subsong, unsigned loop_mode, unsigned clean_flags); + unsigned long Play(float * out, unsigned long count); + void Seek(unsigned long sample); + +protected: + virtual void send_event(uint32_t b) {} + virtual void render(float * out, unsigned long count) {} + + virtual void shutdown() {}; + virtual bool startup() {return false;} + + unsigned long uSampleRate; + system_exclusive_table mSysexMap; + +private: + unsigned long uSamplesRemaining; + + unsigned uLoopMode; + + std::vector mStream; + + unsigned long uStreamPosition; + unsigned long uTimeCurrent; + unsigned long uTimeEnd; + + unsigned long uStreamLoopStart; + unsigned long uTimeLoopStart; +}; + +#endif + diff --git a/Plugins/MIDI/MIDI/en.lproj/InfoPlist.strings b/Plugins/MIDI/MIDI/en.lproj/InfoPlist.strings new file mode 100644 index 000000000..477b28ff8 --- /dev/null +++ b/Plugins/MIDI/MIDI/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Preferences/General/English.lproj/Localizable.strings b/Preferences/General/English.lproj/Localizable.strings index 4d2a9e87a..dc8cbaff3 100644 --- a/Preferences/General/English.lproj/Localizable.strings +++ b/Preferences/General/English.lproj/Localizable.strings @@ -12,6 +12,7 @@ "Playlist" = "Playlist"; "Growl" = "Growl"; "Appearance" = "Appearance"; +"MIDI" = "MIDI"; "Press Key..." = "Press Key..."; diff --git a/Preferences/General/English.lproj/Preferences.xib b/Preferences/General/English.lproj/Preferences.xib index fd13c62c2..277174e4a 100644 --- a/Preferences/General/English.lproj/Preferences.xib +++ b/Preferences/General/English.lproj/Preferences.xib @@ -10,6 +10,7 @@ + @@ -267,6 +268,11 @@ + + + + + name @@ -442,5 +448,22 @@ + + + + + + + \ No newline at end of file diff --git a/Preferences/General/General.xcodeproj/project.pbxproj b/Preferences/General/General.xcodeproj/project.pbxproj index 005c90740..329f8e0c9 100644 --- a/Preferences/General/General.xcodeproj/project.pbxproj +++ b/Preferences/General/General.xcodeproj/project.pbxproj @@ -22,6 +22,8 @@ 8384917718084D9F00E7332D /* appearance.png in Resources */ = {isa = PBXBuildFile; fileRef = 8384917518084D9F00E7332D /* appearance.png */; }; 8384917818084D9F00E7332D /* growl.png in Resources */ = {isa = PBXBuildFile; fileRef = 8384917618084D9F00E7332D /* growl.png */; }; 8384918C1808596A00E7332D /* NDHotKey.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 838491841808588D00E7332D /* NDHotKey.framework */; }; + 83B06729180D85B8008E3612 /* MIDIPane.m in Sources */ = {isa = PBXBuildFile; fileRef = 83B06728180D85B8008E3612 /* MIDIPane.m */; }; + 83B0672B180D8B39008E3612 /* midi.png in Resources */ = {isa = PBXBuildFile; fileRef = 83B0672A180D8B39008E3612 /* midi.png */; }; 83EF495F17FBC96A00642E3C /* VolumeBehaviorArrayController.m in Sources */ = {isa = PBXBuildFile; fileRef = 83EF495E17FBC96A00642E3C /* VolumeBehaviorArrayController.m */; }; 8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; }; 8E07AA880AAC8EA200A4B32F /* HotKeyPane.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E07AA810AAC8EA200A4B32F /* HotKeyPane.m */; }; @@ -89,6 +91,9 @@ 8384917518084D9F00E7332D /* appearance.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = appearance.png; path = Icons/appearance.png; sourceTree = ""; }; 8384917618084D9F00E7332D /* growl.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = growl.png; path = Icons/growl.png; sourceTree = ""; }; 8384917F1808588D00E7332D /* NDHotKey.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = NDHotKey.xcodeproj; path = ../../Frameworks/NDHotKey/NDHotKey.xcodeproj; sourceTree = ""; }; + 83B06727180D85B8008E3612 /* MIDIPane.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MIDIPane.h; sourceTree = ""; }; + 83B06728180D85B8008E3612 /* MIDIPane.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MIDIPane.m; sourceTree = ""; }; + 83B0672A180D8B39008E3612 /* midi.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = midi.png; path = Icons/midi.png; sourceTree = ""; }; 83EF495D17FBC96A00642E3C /* VolumeBehaviorArrayController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VolumeBehaviorArrayController.h; sourceTree = ""; }; 83EF495E17FBC96A00642E3C /* VolumeBehaviorArrayController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VolumeBehaviorArrayController.m; sourceTree = ""; }; 8D5B49B6048680CD000E48DA /* General.preferencePane */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = General.preferencePane; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -197,6 +202,8 @@ 8E07AA810AAC8EA200A4B32F /* HotKeyPane.m */, 17C6433D0B8A783F00C53518 /* OutputPane.h */, 17C6433E0B8A783F00C53518 /* OutputPane.m */, + 83B06727180D85B8008E3612 /* MIDIPane.h */, + 83B06728180D85B8008E3612 /* MIDIPane.m */, ); name = Panes; sourceTree = ""; @@ -245,6 +252,7 @@ 8E07ABD90AAC95AF00A4B32F /* Icons */ = { isa = PBXGroup; children = ( + 83B0672A180D8B39008E3612 /* midi.png */, 8384917518084D9F00E7332D /* appearance.png */, 8384917618084D9F00E7332D /* growl.png */, 17C7E5AF0DCCC30A003CBCF7 /* playlist.png */, @@ -333,6 +341,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 83B0672B180D8B39008E3612 /* midi.png in Resources */, 178E386E0C3DA64500EE6711 /* InfoPlist.strings in Resources */, 8E07ABDD0AAC95BC00A4B32F /* hot_keys.png in Resources */, 172D72AD0B8926CA00D095BB /* apple_remote.png in Resources */, @@ -355,6 +364,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 83B06729180D85B8008E3612 /* MIDIPane.m in Sources */, 8E07AA880AAC8EA200A4B32F /* HotKeyPane.m in Sources */, 8E07AA890AAC8EA200A4B32F /* GeneralPreferencePane.m in Sources */, 8E07AA8A0AAC8EA200A4B32F /* GeneralPreferencesPlugin.m in Sources */, diff --git a/Preferences/General/GeneralPreferencesPlugin.h b/Preferences/General/GeneralPreferencesPlugin.h index 271167938..65cc6de6a 100644 --- a/Preferences/General/GeneralPreferencesPlugin.h +++ b/Preferences/General/GeneralPreferencesPlugin.h @@ -12,10 +12,12 @@ #import "HotKeyPane.h" #import "OutputPane.h" +#import "MIDIPane.h" @interface GeneralPreferencesPlugin : NSObject { IBOutlet HotKeyPane *hotKeyPane; IBOutlet OutputPane *outputPane; + IBOutlet MIDIPane *midiPane; IBOutlet NSView *playlistView; IBOutlet NSView *scrobblerView; @@ -23,10 +25,12 @@ IBOutlet NSView *updatesView; IBOutlet NSView *growlView; IBOutlet NSView *appearanceView; + IBOutlet NSView *midiView; } - (HotKeyPane *)hotKeyPane; - (OutputPane *)outputPane; +- (MIDIPane *)midiPane; - (GeneralPreferencePane *)remotePane; - (GeneralPreferencePane *)updatesPane; diff --git a/Preferences/General/GeneralPreferencesPlugin.m b/Preferences/General/GeneralPreferencesPlugin.m index 8a82e8b50..832137fc7 100644 --- a/Preferences/General/GeneralPreferencesPlugin.m +++ b/Preferences/General/GeneralPreferencesPlugin.m @@ -24,6 +24,7 @@ [plugin scrobblerPane], [plugin growlPane], [plugin appearancePane], + [plugin midiPane], nil]; } @@ -37,6 +38,11 @@ return outputPane; } +- (MIDIPane *)midiPane +{ + return midiPane; +} + - (GeneralPreferencePane *)remotePane { return [GeneralPreferencePane preferencePaneWithView:remoteView title:NSLocalizedStringFromTableInBundle(@"Remote", nil, [NSBundle bundleForClass:[self class]], @"") iconNamed:@"apple_remote"]; diff --git a/Preferences/General/Icons/midi.png b/Preferences/General/Icons/midi.png new file mode 100644 index 0000000000000000000000000000000000000000..ffca4bf99e33321ad2a8a79c0b3ffb5c5eb31419 GIT binary patch literal 4575 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 literal 0 HcmV?d00001 diff --git a/Preferences/General/MIDIPane.h b/Preferences/General/MIDIPane.h new file mode 100644 index 000000000..f98ccb618 --- /dev/null +++ b/Preferences/General/MIDIPane.h @@ -0,0 +1,17 @@ +// +// MIDIPane.h +// General +// +// Created by Christopher Snowhill on 10/15/13. +// +// + +#import +#import "GeneralPreferencePane.h" + +@interface MIDIPane : GeneralPreferencePane { +} + +- (IBAction)setSoundFont:(id)sender; + +@end diff --git a/Preferences/General/MIDIPane.m b/Preferences/General/MIDIPane.m new file mode 100644 index 000000000..cef8b769b --- /dev/null +++ b/Preferences/General/MIDIPane.m @@ -0,0 +1,42 @@ +// +// MIDIPane.m +// General +// +// Created by Christopher Snowhill on 10/15/13. +// +// + +#import "MIDIPane.h" + +@implementation MIDIPane + +- (NSString *)title +{ + return NSLocalizedStringFromTableInBundle(@"MIDI", nil, [NSBundle bundleForClass:[self class]], @""); +} + +- (NSImage *)icon +{ + return [[[NSImage alloc] initWithContentsOfFile:[[NSBundle bundleForClass:[self class]] pathForImageResource:@"midi"]] autorelease]; +} + +- (IBAction)setSoundFont:(id)sender +{ + NSArray *fileTypes = [NSArray arrayWithObjects:@"sf2",@"sf2pack",@"sflist",nil]; + NSOpenPanel * panel = [NSOpenPanel openPanel]; + [panel setAllowsMultipleSelection:NO]; + [panel setCanChooseDirectories:NO]; + [panel setCanChooseFiles:YES]; + [panel setFloatingPanel:YES]; + [panel setAllowedFileTypes:fileTypes]; + NSString * oldPath = [[NSUserDefaults standardUserDefaults] stringForKey:@"soundFontPath"]; + if ( oldPath != nil ) + [panel setDirectoryURL:[NSURL fileURLWithPath:oldPath]]; + NSInteger result = [panel runModal]; + if(result == NSOKButton) + { + [[NSUserDefaults standardUserDefaults] setValue:[[panel URL] path] forKey:@"soundFontPath"]; + } +} + +@end diff --git a/ThirdParty/BASS/bass.h b/ThirdParty/BASS/bass.h new file mode 100644 index 000000000..f49e061a9 --- /dev/null +++ b/ThirdParty/BASS/bass.h @@ -0,0 +1,990 @@ +/* + BASS 2.4 C/C++ header file + Copyright (c) 1999-2013 Un4seen Developments Ltd. + + See the BASS.CHM file for more detailed documentation +*/ + +#ifndef BASS_H +#define BASS_H + +#ifdef _WIN32 +#include +typedef unsigned __int64 QWORD; +#else +#include +#define WINAPI +#define CALLBACK +typedef uint8_t BYTE; +typedef uint16_t WORD; +typedef uint32_t DWORD; +typedef uint64_t QWORD; +#ifndef __OBJC__ +typedef int BOOL; +#endif +#ifndef TRUE +#define TRUE 1 +#define FALSE 0 +#endif +#define LOBYTE(a) (BYTE)(a) +#define HIBYTE(a) (BYTE)((a)>>8) +#define LOWORD(a) (WORD)(a) +#define HIWORD(a) (WORD)((a)>>16) +#define MAKEWORD(a,b) (WORD)(((a)&0xff)|((b)<<8)) +#define MAKELONG(a,b) (DWORD)(((a)&0xffff)|((b)<<16)) +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#define BASSVERSION 0x204 // API version +#define BASSVERSIONTEXT "2.4" + +#ifndef BASSDEF +#define BASSDEF(f) WINAPI f +#endif + +typedef DWORD HMUSIC; // MOD music handle +typedef DWORD HSAMPLE; // sample handle +typedef DWORD HCHANNEL; // playing sample's channel handle +typedef DWORD HSTREAM; // sample stream handle +typedef DWORD HRECORD; // recording handle +typedef DWORD HSYNC; // synchronizer handle +typedef DWORD HDSP; // DSP handle +typedef DWORD HFX; // DX8 effect handle +typedef DWORD HPLUGIN; // Plugin handle + +// Error codes returned by BASS_ErrorGetCode +#define BASS_OK 0 // all is OK +#define BASS_ERROR_MEM 1 // memory error +#define BASS_ERROR_FILEOPEN 2 // can't open the file +#define BASS_ERROR_DRIVER 3 // can't find a free/valid driver +#define BASS_ERROR_BUFLOST 4 // the sample buffer was lost +#define BASS_ERROR_HANDLE 5 // invalid handle +#define BASS_ERROR_FORMAT 6 // unsupported sample format +#define BASS_ERROR_POSITION 7 // invalid position +#define BASS_ERROR_INIT 8 // BASS_Init has not been successfully called +#define BASS_ERROR_START 9 // BASS_Start has not been successfully called +#define BASS_ERROR_ALREADY 14 // already initialized/paused/whatever +#define BASS_ERROR_NOCHAN 18 // can't get a free channel +#define BASS_ERROR_ILLTYPE 19 // an illegal type was specified +#define BASS_ERROR_ILLPARAM 20 // an illegal parameter was specified +#define BASS_ERROR_NO3D 21 // no 3D support +#define BASS_ERROR_NOEAX 22 // no EAX support +#define BASS_ERROR_DEVICE 23 // illegal device number +#define BASS_ERROR_NOPLAY 24 // not playing +#define BASS_ERROR_FREQ 25 // illegal sample rate +#define BASS_ERROR_NOTFILE 27 // the stream is not a file stream +#define BASS_ERROR_NOHW 29 // no hardware voices available +#define BASS_ERROR_EMPTY 31 // the MOD music has no sequence data +#define BASS_ERROR_NONET 32 // no internet connection could be opened +#define BASS_ERROR_CREATE 33 // couldn't create the file +#define BASS_ERROR_NOFX 34 // effects are not available +#define BASS_ERROR_NOTAVAIL 37 // requested data is not available +#define BASS_ERROR_DECODE 38 // the channel is/isn't a "decoding channel" +#define BASS_ERROR_DX 39 // a sufficient DirectX version is not installed +#define BASS_ERROR_TIMEOUT 40 // connection timedout +#define BASS_ERROR_FILEFORM 41 // unsupported file format +#define BASS_ERROR_SPEAKER 42 // unavailable speaker +#define BASS_ERROR_VERSION 43 // invalid BASS version (used by add-ons) +#define BASS_ERROR_CODEC 44 // codec is not available/supported +#define BASS_ERROR_ENDED 45 // the channel/file has ended +#define BASS_ERROR_BUSY 46 // the device is busy +#define BASS_ERROR_UNKNOWN -1 // some other mystery problem + +// BASS_SetConfig options +#define BASS_CONFIG_BUFFER 0 +#define BASS_CONFIG_UPDATEPERIOD 1 +#define BASS_CONFIG_GVOL_SAMPLE 4 +#define BASS_CONFIG_GVOL_STREAM 5 +#define BASS_CONFIG_GVOL_MUSIC 6 +#define BASS_CONFIG_CURVE_VOL 7 +#define BASS_CONFIG_CURVE_PAN 8 +#define BASS_CONFIG_FLOATDSP 9 +#define BASS_CONFIG_3DALGORITHM 10 +#define BASS_CONFIG_NET_TIMEOUT 11 +#define BASS_CONFIG_NET_BUFFER 12 +#define BASS_CONFIG_PAUSE_NOPLAY 13 +#define BASS_CONFIG_NET_PREBUF 15 +#define BASS_CONFIG_NET_PASSIVE 18 +#define BASS_CONFIG_REC_BUFFER 19 +#define BASS_CONFIG_NET_PLAYLIST 21 +#define BASS_CONFIG_MUSIC_VIRTUAL 22 +#define BASS_CONFIG_VERIFY 23 +#define BASS_CONFIG_UPDATETHREADS 24 +#define BASS_CONFIG_DEV_BUFFER 27 +#define BASS_CONFIG_VISTA_TRUEPOS 30 +#define BASS_CONFIG_IOS_MIXAUDIO 34 +#define BASS_CONFIG_DEV_DEFAULT 36 +#define BASS_CONFIG_NET_READTIMEOUT 37 +#define BASS_CONFIG_VISTA_SPEAKERS 38 +#define BASS_CONFIG_IOS_SPEAKER 39 +#define BASS_CONFIG_HANDLES 41 +#define BASS_CONFIG_UNICODE 42 +#define BASS_CONFIG_SRC 43 +#define BASS_CONFIG_SRC_SAMPLE 44 +#define BASS_CONFIG_ASYNCFILE_BUFFER 45 +#define BASS_CONFIG_OGG_PRESCAN 47 + +// BASS_SetConfigPtr options +#define BASS_CONFIG_NET_AGENT 16 +#define BASS_CONFIG_NET_PROXY 17 +#define BASS_CONFIG_IOS_NOTIFY 46 + +// BASS_Init flags +#define BASS_DEVICE_8BITS 1 // 8 bit resolution, else 16 bit +#define BASS_DEVICE_MONO 2 // mono, else stereo +#define BASS_DEVICE_3D 4 // enable 3D functionality +#define BASS_DEVICE_LATENCY 0x100 // calculate device latency (BASS_INFO struct) +#define BASS_DEVICE_CPSPEAKERS 0x400 // detect speakers via Windows control panel +#define BASS_DEVICE_SPEAKERS 0x800 // force enabling of speaker assignment +#define BASS_DEVICE_NOSPEAKER 0x1000 // ignore speaker arrangement +#define BASS_DEVICE_DMIX 0x2000 // use ALSA "dmix" plugin +#define BASS_DEVICE_FREQ 0x4000 // set device sample rate + +// DirectSound interfaces (for use with BASS_GetDSoundObject) +#define BASS_OBJECT_DS 1 // IDirectSound +#define BASS_OBJECT_DS3DL 2 // IDirectSound3DListener + +// Device info structure +typedef struct { +#ifdef _WIN32_WCE + const wchar_t *name; // description + const wchar_t *driver; // driver +#else + const char *name; // description + const char *driver; // driver +#endif + DWORD flags; +} BASS_DEVICEINFO; + +// BASS_DEVICEINFO flags +#define BASS_DEVICE_ENABLED 1 +#define BASS_DEVICE_DEFAULT 2 +#define BASS_DEVICE_INIT 4 + +typedef struct { + DWORD flags; // device capabilities (DSCAPS_xxx flags) + DWORD hwsize; // size of total device hardware memory + DWORD hwfree; // size of free device hardware memory + DWORD freesam; // number of free sample slots in the hardware + DWORD free3d; // number of free 3D sample slots in the hardware + DWORD minrate; // min sample rate supported by the hardware + DWORD maxrate; // max sample rate supported by the hardware + BOOL eax; // device supports EAX? (always FALSE if BASS_DEVICE_3D was not used) + DWORD minbuf; // recommended minimum buffer length in ms (requires BASS_DEVICE_LATENCY) + DWORD dsver; // DirectSound version + DWORD latency; // delay (in ms) before start of playback (requires BASS_DEVICE_LATENCY) + DWORD initflags; // BASS_Init "flags" parameter + DWORD speakers; // number of speakers available + DWORD freq; // current output rate +} BASS_INFO; + +// BASS_INFO flags (from DSOUND.H) +#define DSCAPS_CONTINUOUSRATE 0x00000010 // supports all sample rates between min/maxrate +#define DSCAPS_EMULDRIVER 0x00000020 // device does NOT have hardware DirectSound support +#define DSCAPS_CERTIFIED 0x00000040 // device driver has been certified by Microsoft +#define DSCAPS_SECONDARYMONO 0x00000100 // mono +#define DSCAPS_SECONDARYSTEREO 0x00000200 // stereo +#define DSCAPS_SECONDARY8BIT 0x00000400 // 8 bit +#define DSCAPS_SECONDARY16BIT 0x00000800 // 16 bit + +// Recording device info structure +typedef struct { + DWORD flags; // device capabilities (DSCCAPS_xxx flags) + DWORD formats; // supported standard formats (WAVE_FORMAT_xxx flags) + DWORD inputs; // number of inputs + BOOL singlein; // TRUE = only 1 input can be set at a time + DWORD freq; // current input rate +} BASS_RECORDINFO; + +// BASS_RECORDINFO flags (from DSOUND.H) +#define DSCCAPS_EMULDRIVER DSCAPS_EMULDRIVER // device does NOT have hardware DirectSound recording support +#define DSCCAPS_CERTIFIED DSCAPS_CERTIFIED // device driver has been certified by Microsoft + +// defines for formats field of BASS_RECORDINFO (from MMSYSTEM.H) +#ifndef WAVE_FORMAT_1M08 +#define WAVE_FORMAT_1M08 0x00000001 /* 11.025 kHz, Mono, 8-bit */ +#define WAVE_FORMAT_1S08 0x00000002 /* 11.025 kHz, Stereo, 8-bit */ +#define WAVE_FORMAT_1M16 0x00000004 /* 11.025 kHz, Mono, 16-bit */ +#define WAVE_FORMAT_1S16 0x00000008 /* 11.025 kHz, Stereo, 16-bit */ +#define WAVE_FORMAT_2M08 0x00000010 /* 22.05 kHz, Mono, 8-bit */ +#define WAVE_FORMAT_2S08 0x00000020 /* 22.05 kHz, Stereo, 8-bit */ +#define WAVE_FORMAT_2M16 0x00000040 /* 22.05 kHz, Mono, 16-bit */ +#define WAVE_FORMAT_2S16 0x00000080 /* 22.05 kHz, Stereo, 16-bit */ +#define WAVE_FORMAT_4M08 0x00000100 /* 44.1 kHz, Mono, 8-bit */ +#define WAVE_FORMAT_4S08 0x00000200 /* 44.1 kHz, Stereo, 8-bit */ +#define WAVE_FORMAT_4M16 0x00000400 /* 44.1 kHz, Mono, 16-bit */ +#define WAVE_FORMAT_4S16 0x00000800 /* 44.1 kHz, Stereo, 16-bit */ +#endif + +// Sample info structure +typedef struct { + DWORD freq; // default playback rate + float volume; // default volume (0-1) + float pan; // default pan (-1=left, 0=middle, 1=right) + DWORD flags; // BASS_SAMPLE_xxx flags + DWORD length; // length (in bytes) + DWORD max; // maximum simultaneous playbacks + DWORD origres; // original resolution bits + DWORD chans; // number of channels + DWORD mingap; // minimum gap (ms) between creating channels + DWORD mode3d; // BASS_3DMODE_xxx mode + float mindist; // minimum distance + float maxdist; // maximum distance + DWORD iangle; // angle of inside projection cone + DWORD oangle; // angle of outside projection cone + float outvol; // delta-volume outside the projection cone + DWORD vam; // voice allocation/management flags (BASS_VAM_xxx) + DWORD priority; // priority (0=lowest, 0xffffffff=highest) +} BASS_SAMPLE; + +#define BASS_SAMPLE_8BITS 1 // 8 bit +#define BASS_SAMPLE_FLOAT 256 // 32-bit floating-point +#define BASS_SAMPLE_MONO 2 // mono +#define BASS_SAMPLE_LOOP 4 // looped +#define BASS_SAMPLE_3D 8 // 3D functionality +#define BASS_SAMPLE_SOFTWARE 16 // not using hardware mixing +#define BASS_SAMPLE_MUTEMAX 32 // mute at max distance (3D only) +#define BASS_SAMPLE_VAM 64 // DX7 voice allocation & management +#define BASS_SAMPLE_FX 128 // old implementation of DX8 effects +#define BASS_SAMPLE_OVER_VOL 0x10000 // override lowest volume +#define BASS_SAMPLE_OVER_POS 0x20000 // override longest playing +#define BASS_SAMPLE_OVER_DIST 0x30000 // override furthest from listener (3D only) + +#define BASS_STREAM_PRESCAN 0x20000 // enable pin-point seeking/length (MP3/MP2/MP1) +#define BASS_MP3_SETPOS BASS_STREAM_PRESCAN +#define BASS_STREAM_AUTOFREE 0x40000 // automatically free the stream when it stop/ends +#define BASS_STREAM_RESTRATE 0x80000 // restrict the download rate of internet file streams +#define BASS_STREAM_BLOCK 0x100000 // download/play internet file stream in small blocks +#define BASS_STREAM_DECODE 0x200000 // don't play the stream, only decode (BASS_ChannelGetData) +#define BASS_STREAM_STATUS 0x800000 // give server status info (HTTP/ICY tags) in DOWNLOADPROC + +#define BASS_MUSIC_FLOAT BASS_SAMPLE_FLOAT +#define BASS_MUSIC_MONO BASS_SAMPLE_MONO +#define BASS_MUSIC_LOOP BASS_SAMPLE_LOOP +#define BASS_MUSIC_3D BASS_SAMPLE_3D +#define BASS_MUSIC_FX BASS_SAMPLE_FX +#define BASS_MUSIC_AUTOFREE BASS_STREAM_AUTOFREE +#define BASS_MUSIC_DECODE BASS_STREAM_DECODE +#define BASS_MUSIC_PRESCAN BASS_STREAM_PRESCAN // calculate playback length +#define BASS_MUSIC_CALCLEN BASS_MUSIC_PRESCAN +#define BASS_MUSIC_RAMP 0x200 // normal ramping +#define BASS_MUSIC_RAMPS 0x400 // sensitive ramping +#define BASS_MUSIC_SURROUND 0x800 // surround sound +#define BASS_MUSIC_SURROUND2 0x1000 // surround sound (mode 2) +#define BASS_MUSIC_FT2MOD 0x2000 // play .MOD as FastTracker 2 does +#define BASS_MUSIC_PT1MOD 0x4000 // play .MOD as ProTracker 1 does +#define BASS_MUSIC_NONINTER 0x10000 // non-interpolated sample mixing +#define BASS_MUSIC_SINCINTER 0x800000 // sinc interpolated sample mixing +#define BASS_MUSIC_POSRESET 0x8000 // stop all notes when moving position +#define BASS_MUSIC_POSRESETEX 0x400000 // stop all notes and reset bmp/etc when moving position +#define BASS_MUSIC_STOPBACK 0x80000 // stop the music on a backwards jump effect +#define BASS_MUSIC_NOSAMPLE 0x100000 // don't load the samples + +// Speaker assignment flags +#define BASS_SPEAKER_FRONT 0x1000000 // front speakers +#define BASS_SPEAKER_REAR 0x2000000 // rear/side speakers +#define BASS_SPEAKER_CENLFE 0x3000000 // center & LFE speakers (5.1) +#define BASS_SPEAKER_REAR2 0x4000000 // rear center speakers (7.1) +#define BASS_SPEAKER_N(n) ((n)<<24) // n'th pair of speakers (max 15) +#define BASS_SPEAKER_LEFT 0x10000000 // modifier: left +#define BASS_SPEAKER_RIGHT 0x20000000 // modifier: right +#define BASS_SPEAKER_FRONTLEFT BASS_SPEAKER_FRONT|BASS_SPEAKER_LEFT +#define BASS_SPEAKER_FRONTRIGHT BASS_SPEAKER_FRONT|BASS_SPEAKER_RIGHT +#define BASS_SPEAKER_REARLEFT BASS_SPEAKER_REAR|BASS_SPEAKER_LEFT +#define BASS_SPEAKER_REARRIGHT BASS_SPEAKER_REAR|BASS_SPEAKER_RIGHT +#define BASS_SPEAKER_CENTER BASS_SPEAKER_CENLFE|BASS_SPEAKER_LEFT +#define BASS_SPEAKER_LFE BASS_SPEAKER_CENLFE|BASS_SPEAKER_RIGHT +#define BASS_SPEAKER_REAR2LEFT BASS_SPEAKER_REAR2|BASS_SPEAKER_LEFT +#define BASS_SPEAKER_REAR2RIGHT BASS_SPEAKER_REAR2|BASS_SPEAKER_RIGHT + +#define BASS_ASYNCFILE 0x40000000 +#define BASS_UNICODE 0x80000000 + +#define BASS_RECORD_PAUSE 0x8000 // start recording paused + +// DX7 voice allocation & management flags +#define BASS_VAM_HARDWARE 1 +#define BASS_VAM_SOFTWARE 2 +#define BASS_VAM_TERM_TIME 4 +#define BASS_VAM_TERM_DIST 8 +#define BASS_VAM_TERM_PRIO 16 + +// Channel info structure +typedef struct { + DWORD freq; // default playback rate + DWORD chans; // channels + DWORD flags; // BASS_SAMPLE/STREAM/MUSIC/SPEAKER flags + DWORD ctype; // type of channel + DWORD origres; // original resolution + HPLUGIN plugin; // plugin + HSAMPLE sample; // sample + const char *filename; // filename +} BASS_CHANNELINFO; + +// BASS_CHANNELINFO types +#define BASS_CTYPE_SAMPLE 1 +#define BASS_CTYPE_RECORD 2 +#define BASS_CTYPE_STREAM 0x10000 +#define BASS_CTYPE_STREAM_OGG 0x10002 +#define BASS_CTYPE_STREAM_MP1 0x10003 +#define BASS_CTYPE_STREAM_MP2 0x10004 +#define BASS_CTYPE_STREAM_MP3 0x10005 +#define BASS_CTYPE_STREAM_AIFF 0x10006 +#define BASS_CTYPE_STREAM_CA 0x10007 +#define BASS_CTYPE_STREAM_MF 0x10008 +#define BASS_CTYPE_STREAM_WAV 0x40000 // WAVE flag, LOWORD=codec +#define BASS_CTYPE_STREAM_WAV_PCM 0x50001 +#define BASS_CTYPE_STREAM_WAV_FLOAT 0x50003 +#define BASS_CTYPE_MUSIC_MOD 0x20000 +#define BASS_CTYPE_MUSIC_MTM 0x20001 +#define BASS_CTYPE_MUSIC_S3M 0x20002 +#define BASS_CTYPE_MUSIC_XM 0x20003 +#define BASS_CTYPE_MUSIC_IT 0x20004 +#define BASS_CTYPE_MUSIC_MO3 0x00100 // MO3 flag + +typedef struct { + DWORD ctype; // channel type +#ifdef _WIN32_WCE + const wchar_t *name; // format description + const wchar_t *exts; // file extension filter (*.ext1;*.ext2;etc...) +#else + const char *name; // format description + const char *exts; // file extension filter (*.ext1;*.ext2;etc...) +#endif +} BASS_PLUGINFORM; + +typedef struct { + DWORD version; // version (same form as BASS_GetVersion) + DWORD formatc; // number of formats + const BASS_PLUGINFORM *formats; // the array of formats +} BASS_PLUGININFO; + +// 3D vector (for 3D positions/velocities/orientations) +typedef struct BASS_3DVECTOR { +#ifdef __cplusplus + BASS_3DVECTOR() {}; + BASS_3DVECTOR(float _x, float _y, float _z) : x(_x), y(_y), z(_z) {}; +#endif + float x; // +=right, -=left + float y; // +=up, -=down + float z; // +=front, -=behind +} BASS_3DVECTOR; + +// 3D channel modes +#define BASS_3DMODE_NORMAL 0 // normal 3D processing +#define BASS_3DMODE_RELATIVE 1 // position is relative to the listener +#define BASS_3DMODE_OFF 2 // no 3D processing + +// software 3D mixing algorithms (used with BASS_CONFIG_3DALGORITHM) +#define BASS_3DALG_DEFAULT 0 +#define BASS_3DALG_OFF 1 +#define BASS_3DALG_FULL 2 +#define BASS_3DALG_LIGHT 3 + +// EAX environments, use with BASS_SetEAXParameters +enum +{ + EAX_ENVIRONMENT_GENERIC, + EAX_ENVIRONMENT_PADDEDCELL, + EAX_ENVIRONMENT_ROOM, + EAX_ENVIRONMENT_BATHROOM, + EAX_ENVIRONMENT_LIVINGROOM, + EAX_ENVIRONMENT_STONEROOM, + EAX_ENVIRONMENT_AUDITORIUM, + EAX_ENVIRONMENT_CONCERTHALL, + EAX_ENVIRONMENT_CAVE, + EAX_ENVIRONMENT_ARENA, + EAX_ENVIRONMENT_HANGAR, + EAX_ENVIRONMENT_CARPETEDHALLWAY, + EAX_ENVIRONMENT_HALLWAY, + EAX_ENVIRONMENT_STONECORRIDOR, + EAX_ENVIRONMENT_ALLEY, + EAX_ENVIRONMENT_FOREST, + EAX_ENVIRONMENT_CITY, + EAX_ENVIRONMENT_MOUNTAINS, + EAX_ENVIRONMENT_QUARRY, + EAX_ENVIRONMENT_PLAIN, + EAX_ENVIRONMENT_PARKINGLOT, + EAX_ENVIRONMENT_SEWERPIPE, + EAX_ENVIRONMENT_UNDERWATER, + EAX_ENVIRONMENT_DRUGGED, + EAX_ENVIRONMENT_DIZZY, + EAX_ENVIRONMENT_PSYCHOTIC, + + EAX_ENVIRONMENT_COUNT // total number of environments +}; + +// EAX presets, usage: BASS_SetEAXParameters(EAX_PRESET_xxx) +#define EAX_PRESET_GENERIC EAX_ENVIRONMENT_GENERIC,0.5F,1.493F,0.5F +#define EAX_PRESET_PADDEDCELL EAX_ENVIRONMENT_PADDEDCELL,0.25F,0.1F,0.0F +#define EAX_PRESET_ROOM EAX_ENVIRONMENT_ROOM,0.417F,0.4F,0.666F +#define EAX_PRESET_BATHROOM EAX_ENVIRONMENT_BATHROOM,0.653F,1.499F,0.166F +#define EAX_PRESET_LIVINGROOM EAX_ENVIRONMENT_LIVINGROOM,0.208F,0.478F,0.0F +#define EAX_PRESET_STONEROOM EAX_ENVIRONMENT_STONEROOM,0.5F,2.309F,0.888F +#define EAX_PRESET_AUDITORIUM EAX_ENVIRONMENT_AUDITORIUM,0.403F,4.279F,0.5F +#define EAX_PRESET_CONCERTHALL EAX_ENVIRONMENT_CONCERTHALL,0.5F,3.961F,0.5F +#define EAX_PRESET_CAVE EAX_ENVIRONMENT_CAVE,0.5F,2.886F,1.304F +#define EAX_PRESET_ARENA EAX_ENVIRONMENT_ARENA,0.361F,7.284F,0.332F +#define EAX_PRESET_HANGAR EAX_ENVIRONMENT_HANGAR,0.5F,10.0F,0.3F +#define EAX_PRESET_CARPETEDHALLWAY EAX_ENVIRONMENT_CARPETEDHALLWAY,0.153F,0.259F,2.0F +#define EAX_PRESET_HALLWAY EAX_ENVIRONMENT_HALLWAY,0.361F,1.493F,0.0F +#define EAX_PRESET_STONECORRIDOR EAX_ENVIRONMENT_STONECORRIDOR,0.444F,2.697F,0.638F +#define EAX_PRESET_ALLEY EAX_ENVIRONMENT_ALLEY,0.25F,1.752F,0.776F +#define EAX_PRESET_FOREST EAX_ENVIRONMENT_FOREST,0.111F,3.145F,0.472F +#define EAX_PRESET_CITY EAX_ENVIRONMENT_CITY,0.111F,2.767F,0.224F +#define EAX_PRESET_MOUNTAINS EAX_ENVIRONMENT_MOUNTAINS,0.194F,7.841F,0.472F +#define EAX_PRESET_QUARRY EAX_ENVIRONMENT_QUARRY,1.0F,1.499F,0.5F +#define EAX_PRESET_PLAIN EAX_ENVIRONMENT_PLAIN,0.097F,2.767F,0.224F +#define EAX_PRESET_PARKINGLOT EAX_ENVIRONMENT_PARKINGLOT,0.208F,1.652F,1.5F +#define EAX_PRESET_SEWERPIPE EAX_ENVIRONMENT_SEWERPIPE,0.652F,2.886F,0.25F +#define EAX_PRESET_UNDERWATER EAX_ENVIRONMENT_UNDERWATER,1.0F,1.499F,0.0F +#define EAX_PRESET_DRUGGED EAX_ENVIRONMENT_DRUGGED,0.875F,8.392F,1.388F +#define EAX_PRESET_DIZZY EAX_ENVIRONMENT_DIZZY,0.139F,17.234F,0.666F +#define EAX_PRESET_PSYCHOTIC EAX_ENVIRONMENT_PSYCHOTIC,0.486F,7.563F,0.806F + +typedef DWORD (CALLBACK STREAMPROC)(HSTREAM handle, void *buffer, DWORD length, void *user); +/* User stream callback function. NOTE: A stream function should obviously be as quick +as possible, other streams (and MOD musics) can't be mixed until it's finished. +handle : The stream that needs writing +buffer : Buffer to write the samples in +length : Number of bytes to write +user : The 'user' parameter value given when calling BASS_StreamCreate +RETURN : Number of bytes written. Set the BASS_STREAMPROC_END flag to end + the stream. */ + +#define BASS_STREAMPROC_END 0x80000000 // end of user stream flag + +// special STREAMPROCs +#define STREAMPROC_DUMMY (STREAMPROC*)0 // "dummy" stream +#define STREAMPROC_PUSH (STREAMPROC*)-1 // push stream + +// BASS_StreamCreateFileUser file systems +#define STREAMFILE_NOBUFFER 0 +#define STREAMFILE_BUFFER 1 +#define STREAMFILE_BUFFERPUSH 2 + +// User file stream callback functions +typedef void (CALLBACK FILECLOSEPROC)(void *user); +typedef QWORD (CALLBACK FILELENPROC)(void *user); +typedef DWORD (CALLBACK FILEREADPROC)(void *buffer, DWORD length, void *user); +typedef BOOL (CALLBACK FILESEEKPROC)(QWORD offset, void *user); + +typedef struct { + FILECLOSEPROC *close; + FILELENPROC *length; + FILEREADPROC *read; + FILESEEKPROC *seek; +} BASS_FILEPROCS; + +// BASS_StreamPutFileData options +#define BASS_FILEDATA_END 0 // end & close the file + +// BASS_StreamGetFilePosition modes +#define BASS_FILEPOS_CURRENT 0 +#define BASS_FILEPOS_DECODE BASS_FILEPOS_CURRENT +#define BASS_FILEPOS_DOWNLOAD 1 +#define BASS_FILEPOS_END 2 +#define BASS_FILEPOS_START 3 +#define BASS_FILEPOS_CONNECTED 4 +#define BASS_FILEPOS_BUFFER 5 +#define BASS_FILEPOS_SOCKET 6 + +typedef void (CALLBACK DOWNLOADPROC)(const void *buffer, DWORD length, void *user); +/* Internet stream download callback function. +buffer : Buffer containing the downloaded data... NULL=end of download +length : Number of bytes in the buffer +user : The 'user' parameter value given when calling BASS_StreamCreateURL */ + +// BASS_ChannelSetSync types +#define BASS_SYNC_POS 0 +#define BASS_SYNC_END 2 +#define BASS_SYNC_META 4 +#define BASS_SYNC_SLIDE 5 +#define BASS_SYNC_STALL 6 +#define BASS_SYNC_DOWNLOAD 7 +#define BASS_SYNC_FREE 8 +#define BASS_SYNC_SETPOS 11 +#define BASS_SYNC_MUSICPOS 10 +#define BASS_SYNC_MUSICINST 1 +#define BASS_SYNC_MUSICFX 3 +#define BASS_SYNC_OGG_CHANGE 12 +#define BASS_SYNC_MIXTIME 0x40000000 // FLAG: sync at mixtime, else at playtime +#define BASS_SYNC_ONETIME 0x80000000 // FLAG: sync only once, else continuously + +typedef void (CALLBACK SYNCPROC)(HSYNC handle, DWORD channel, DWORD data, void *user); +/* Sync callback function. NOTE: a sync callback function should be very +quick as other syncs can't be processed until it has finished. If the sync +is a "mixtime" sync, then other streams and MOD musics can't be mixed until +it's finished either. +handle : The sync that has occured +channel: Channel that the sync occured in +data : Additional data associated with the sync's occurance +user : The 'user' parameter given when calling BASS_ChannelSetSync */ + +typedef void (CALLBACK DSPPROC)(HDSP handle, DWORD channel, void *buffer, DWORD length, void *user); +/* DSP callback function. NOTE: A DSP function should obviously be as quick as +possible... other DSP functions, streams and MOD musics can not be processed +until it's finished. +handle : The DSP handle +channel: Channel that the DSP is being applied to +buffer : Buffer to apply the DSP to +length : Number of bytes in the buffer +user : The 'user' parameter given when calling BASS_ChannelSetDSP */ + +typedef BOOL (CALLBACK RECORDPROC)(HRECORD handle, const void *buffer, DWORD length, void *user); +/* Recording callback function. +handle : The recording handle +buffer : Buffer containing the recorded sample data +length : Number of bytes +user : The 'user' parameter value given when calling BASS_RecordStart +RETURN : TRUE = continue recording, FALSE = stop */ + +// BASS_ChannelIsActive return values +#define BASS_ACTIVE_STOPPED 0 +#define BASS_ACTIVE_PLAYING 1 +#define BASS_ACTIVE_STALLED 2 +#define BASS_ACTIVE_PAUSED 3 + +// Channel attributes +#define BASS_ATTRIB_FREQ 1 +#define BASS_ATTRIB_VOL 2 +#define BASS_ATTRIB_PAN 3 +#define BASS_ATTRIB_EAXMIX 4 +#define BASS_ATTRIB_NOBUFFER 5 +#define BASS_ATTRIB_CPU 7 +#define BASS_ATTRIB_SRC 8 +#define BASS_ATTRIB_MUSIC_AMPLIFY 0x100 +#define BASS_ATTRIB_MUSIC_PANSEP 0x101 +#define BASS_ATTRIB_MUSIC_PSCALER 0x102 +#define BASS_ATTRIB_MUSIC_BPM 0x103 +#define BASS_ATTRIB_MUSIC_SPEED 0x104 +#define BASS_ATTRIB_MUSIC_VOL_GLOBAL 0x105 +#define BASS_ATTRIB_MUSIC_VOL_CHAN 0x200 // + channel # +#define BASS_ATTRIB_MUSIC_VOL_INST 0x300 // + instrument # + +// BASS_ChannelGetData flags +#define BASS_DATA_AVAILABLE 0 // query how much data is buffered +#define BASS_DATA_FLOAT 0x40000000 // flag: return floating-point sample data +#define BASS_DATA_FFT256 0x80000000 // 256 sample FFT +#define BASS_DATA_FFT512 0x80000001 // 512 FFT +#define BASS_DATA_FFT1024 0x80000002 // 1024 FFT +#define BASS_DATA_FFT2048 0x80000003 // 2048 FFT +#define BASS_DATA_FFT4096 0x80000004 // 4096 FFT +#define BASS_DATA_FFT8192 0x80000005 // 8192 FFT +#define BASS_DATA_FFT16384 0x80000006 // 16384 FFT +#define BASS_DATA_FFT_INDIVIDUAL 0x10 // FFT flag: FFT for each channel, else all combined +#define BASS_DATA_FFT_NOWINDOW 0x20 // FFT flag: no Hanning window +#define BASS_DATA_FFT_REMOVEDC 0x40 // FFT flag: pre-remove DC bias +#define BASS_DATA_FFT_COMPLEX 0x80 // FFT flag: return complex data + +// BASS_ChannelGetTags types : what's returned +#define BASS_TAG_ID3 0 // ID3v1 tags : TAG_ID3 structure +#define BASS_TAG_ID3V2 1 // ID3v2 tags : variable length block +#define BASS_TAG_OGG 2 // OGG comments : series of null-terminated UTF-8 strings +#define BASS_TAG_HTTP 3 // HTTP headers : series of null-terminated ANSI strings +#define BASS_TAG_ICY 4 // ICY headers : series of null-terminated ANSI strings +#define BASS_TAG_META 5 // ICY metadata : ANSI string +#define BASS_TAG_APE 6 // APE tags : series of null-terminated UTF-8 strings +#define BASS_TAG_MP4 7 // MP4/iTunes metadata : series of null-terminated UTF-8 strings +#define BASS_TAG_VENDOR 9 // OGG encoder : UTF-8 string +#define BASS_TAG_LYRICS3 10 // Lyric3v2 tag : ASCII string +#define BASS_TAG_CA_CODEC 11 // CoreAudio codec info : TAG_CA_CODEC structure +#define BASS_TAG_MF 13 // Media Foundation tags : series of null-terminated UTF-8 strings +#define BASS_TAG_WAVEFORMAT 14 // WAVE format : WAVEFORMATEEX structure +#define BASS_TAG_RIFF_INFO 0x100 // RIFF "INFO" tags : series of null-terminated ANSI strings +#define BASS_TAG_RIFF_BEXT 0x101 // RIFF/BWF "bext" tags : TAG_BEXT structure +#define BASS_TAG_RIFF_CART 0x102 // RIFF/BWF "cart" tags : TAG_CART structure +#define BASS_TAG_RIFF_DISP 0x103 // RIFF "DISP" text tag : ANSI string +#define BASS_TAG_APE_BINARY 0x1000 // + index #, binary APE tag : TAG_APE_BINARY structure +#define BASS_TAG_MUSIC_NAME 0x10000 // MOD music name : ANSI string +#define BASS_TAG_MUSIC_MESSAGE 0x10001 // MOD message : ANSI string +#define BASS_TAG_MUSIC_ORDERS 0x10002 // MOD order list : BYTE array of pattern numbers +#define BASS_TAG_MUSIC_INST 0x10100 // + instrument #, MOD instrument name : ANSI string +#define BASS_TAG_MUSIC_SAMPLE 0x10300 // + sample #, MOD sample name : ANSI string + +// ID3v1 tag structure +typedef struct { + char id[3]; + char title[30]; + char artist[30]; + char album[30]; + char year[4]; + char comment[30]; + BYTE genre; +} TAG_ID3; + +// Binary APE tag structure +typedef struct { + const char *key; + const void *data; + DWORD length; +} TAG_APE_BINARY; + +// BWF "bext" tag structure +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable:4200) +#endif +#pragma pack(push,1) +typedef struct { + char Description[256]; // description + char Originator[32]; // name of the originator + char OriginatorReference[32]; // reference of the originator + char OriginationDate[10]; // date of creation (yyyy-mm-dd) + char OriginationTime[8]; // time of creation (hh-mm-ss) + QWORD TimeReference; // first sample count since midnight (little-endian) + WORD Version; // BWF version (little-endian) + BYTE UMID[64]; // SMPTE UMID + BYTE Reserved[190]; +#if defined(__GNUC__) && __GNUC__<3 + char CodingHistory[0]; // history +#elif 1 // change to 0 if compiler fails the following line + char CodingHistory[]; // history +#else + char CodingHistory[1]; // history +#endif +} TAG_BEXT; +#pragma pack(pop) + +// BWF "cart" tag structures +typedef struct +{ + DWORD dwUsage; // FOURCC timer usage ID + DWORD dwValue; // timer value in samples from head +} TAG_CART_TIMER; + +typedef struct +{ + char Version[4]; // version of the data structure + char Title[64]; // title of cart audio sequence + char Artist[64]; // artist or creator name + char CutID[64]; // cut number identification + char ClientID[64]; // client identification + char Category[64]; // category ID, PSA, NEWS, etc + char Classification[64]; // classification or auxiliary key + char OutCue[64]; // out cue text + char StartDate[10]; // yyyy-mm-dd + char StartTime[8]; // hh:mm:ss + char EndDate[10]; // yyyy-mm-dd + char EndTime[8]; // hh:mm:ss + char ProducerAppID[64]; // name of vendor or application + char ProducerAppVersion[64]; // version of producer application + char UserDef[64]; // user defined text + DWORD dwLevelReference; // sample value for 0 dB reference + TAG_CART_TIMER PostTimer[8]; // 8 time markers after head + char Reserved[276]; + char URL[1024]; // uniform resource locator +#if defined(__GNUC__) && __GNUC__<3 + char TagText[0]; // free form text for scripts or tags +#elif 1 // change to 0 if compiler fails the following line + char TagText[]; // free form text for scripts or tags +#else + char TagText[1]; // free form text for scripts or tags +#endif +} TAG_CART; +#ifdef _MSC_VER +#pragma warning(pop) +#endif + +// CoreAudio codec info structure +typedef struct { + DWORD ftype; // file format + DWORD atype; // audio format + const char *name; // description +} TAG_CA_CODEC; + +#ifndef _WAVEFORMATEX_ +#define _WAVEFORMATEX_ +#pragma pack(push,1) +typedef struct tWAVEFORMATEX +{ + WORD wFormatTag; + WORD nChannels; + DWORD nSamplesPerSec; + DWORD nAvgBytesPerSec; + WORD nBlockAlign; + WORD wBitsPerSample; + WORD cbSize; +} WAVEFORMATEX, *PWAVEFORMATEX, *LPWAVEFORMATEX; +typedef const WAVEFORMATEX *LPCWAVEFORMATEX; +#pragma pack(pop) +#endif + +// BASS_ChannelGetLength/GetPosition/SetPosition modes +#define BASS_POS_BYTE 0 // byte position +#define BASS_POS_MUSIC_ORDER 1 // order.row position, MAKELONG(order,row) +#define BASS_POS_OGG 3 // OGG bitstream number +#define BASS_POS_DECODE 0x10000000 // flag: get the decoding (not playing) position +#define BASS_POS_DECODETO 0x20000000 // flag: decode to the position instead of seeking + +// BASS_RecordSetInput flags +#define BASS_INPUT_OFF 0x10000 +#define BASS_INPUT_ON 0x20000 + +#define BASS_INPUT_TYPE_MASK 0xff000000 +#define BASS_INPUT_TYPE_UNDEF 0x00000000 +#define BASS_INPUT_TYPE_DIGITAL 0x01000000 +#define BASS_INPUT_TYPE_LINE 0x02000000 +#define BASS_INPUT_TYPE_MIC 0x03000000 +#define BASS_INPUT_TYPE_SYNTH 0x04000000 +#define BASS_INPUT_TYPE_CD 0x05000000 +#define BASS_INPUT_TYPE_PHONE 0x06000000 +#define BASS_INPUT_TYPE_SPEAKER 0x07000000 +#define BASS_INPUT_TYPE_WAVE 0x08000000 +#define BASS_INPUT_TYPE_AUX 0x09000000 +#define BASS_INPUT_TYPE_ANALOG 0x0a000000 + +// DX8 effect types, use with BASS_ChannelSetFX +enum +{ + BASS_FX_DX8_CHORUS, + BASS_FX_DX8_COMPRESSOR, + BASS_FX_DX8_DISTORTION, + BASS_FX_DX8_ECHO, + BASS_FX_DX8_FLANGER, + BASS_FX_DX8_GARGLE, + BASS_FX_DX8_I3DL2REVERB, + BASS_FX_DX8_PARAMEQ, + BASS_FX_DX8_REVERB +}; + +typedef struct { + float fWetDryMix; + float fDepth; + float fFeedback; + float fFrequency; + DWORD lWaveform; // 0=triangle, 1=sine + float fDelay; + DWORD lPhase; // BASS_DX8_PHASE_xxx +} BASS_DX8_CHORUS; + +typedef struct { + float fGain; + float fAttack; + float fRelease; + float fThreshold; + float fRatio; + float fPredelay; +} BASS_DX8_COMPRESSOR; + +typedef struct { + float fGain; + float fEdge; + float fPostEQCenterFrequency; + float fPostEQBandwidth; + float fPreLowpassCutoff; +} BASS_DX8_DISTORTION; + +typedef struct { + float fWetDryMix; + float fFeedback; + float fLeftDelay; + float fRightDelay; + BOOL lPanDelay; +} BASS_DX8_ECHO; + +typedef struct { + float fWetDryMix; + float fDepth; + float fFeedback; + float fFrequency; + DWORD lWaveform; // 0=triangle, 1=sine + float fDelay; + DWORD lPhase; // BASS_DX8_PHASE_xxx +} BASS_DX8_FLANGER; + +typedef struct { + DWORD dwRateHz; // Rate of modulation in hz + DWORD dwWaveShape; // 0=triangle, 1=square +} BASS_DX8_GARGLE; + +typedef struct { + int lRoom; // [-10000, 0] default: -1000 mB + int lRoomHF; // [-10000, 0] default: 0 mB + float flRoomRolloffFactor; // [0.0, 10.0] default: 0.0 + float flDecayTime; // [0.1, 20.0] default: 1.49s + float flDecayHFRatio; // [0.1, 2.0] default: 0.83 + int lReflections; // [-10000, 1000] default: -2602 mB + float flReflectionsDelay; // [0.0, 0.3] default: 0.007 s + int lReverb; // [-10000, 2000] default: 200 mB + float flReverbDelay; // [0.0, 0.1] default: 0.011 s + float flDiffusion; // [0.0, 100.0] default: 100.0 % + float flDensity; // [0.0, 100.0] default: 100.0 % + float flHFReference; // [20.0, 20000.0] default: 5000.0 Hz +} BASS_DX8_I3DL2REVERB; + +typedef struct { + float fCenter; + float fBandwidth; + float fGain; +} BASS_DX8_PARAMEQ; + +typedef struct { + float fInGain; // [-96.0,0.0] default: 0.0 dB + float fReverbMix; // [-96.0,0.0] default: 0.0 db + float fReverbTime; // [0.001,3000.0] default: 1000.0 ms + float fHighFreqRTRatio; // [0.001,0.999] default: 0.001 +} BASS_DX8_REVERB; + +#define BASS_DX8_PHASE_NEG_180 0 +#define BASS_DX8_PHASE_NEG_90 1 +#define BASS_DX8_PHASE_ZERO 2 +#define BASS_DX8_PHASE_90 3 +#define BASS_DX8_PHASE_180 4 + +typedef void (CALLBACK IOSNOTIFYPROC)(DWORD status); +/* iOS notification callback function. +status : The notification (BASS_IOSNOTIFY_xxx) */ + +#define BASS_IOSNOTIFY_INTERRUPT 1 // interruption started +#define BASS_IOSNOTIFY_INTERRUPT_END 2 // interruption ended + +BOOL BASSDEF(BASS_SetConfig)(DWORD option, DWORD value); +DWORD BASSDEF(BASS_GetConfig)(DWORD option); +BOOL BASSDEF(BASS_SetConfigPtr)(DWORD option, const void *value); +void *BASSDEF(BASS_GetConfigPtr)(DWORD option); +DWORD BASSDEF(BASS_GetVersion)(); +int BASSDEF(BASS_ErrorGetCode)(); +BOOL BASSDEF(BASS_GetDeviceInfo)(DWORD device, BASS_DEVICEINFO *info); +#if defined(_WIN32) && !defined(_WIN32_WCE) +BOOL BASSDEF(BASS_Init)(int device, DWORD freq, DWORD flags, HWND win, const GUID *dsguid); +#else +BOOL BASSDEF(BASS_Init)(int device, DWORD freq, DWORD flags, void *win, void *dsguid); +#endif +BOOL BASSDEF(BASS_SetDevice)(DWORD device); +DWORD BASSDEF(BASS_GetDevice)(); +BOOL BASSDEF(BASS_Free)(); +#if defined(_WIN32) && !defined(_WIN32_WCE) +void *BASSDEF(BASS_GetDSoundObject)(DWORD object); +#endif +BOOL BASSDEF(BASS_GetInfo)(BASS_INFO *info); +BOOL BASSDEF(BASS_Update)(DWORD length); +float BASSDEF(BASS_GetCPU)(); +BOOL BASSDEF(BASS_Start)(); +BOOL BASSDEF(BASS_Stop)(); +BOOL BASSDEF(BASS_Pause)(); +BOOL BASSDEF(BASS_SetVolume)(float volume); +float BASSDEF(BASS_GetVolume)(); + +HPLUGIN BASSDEF(BASS_PluginLoad)(const char *file, DWORD flags); +BOOL BASSDEF(BASS_PluginFree)(HPLUGIN handle); +const BASS_PLUGININFO *BASSDEF(BASS_PluginGetInfo)(HPLUGIN handle); + +BOOL BASSDEF(BASS_Set3DFactors)(float distf, float rollf, float doppf); +BOOL BASSDEF(BASS_Get3DFactors)(float *distf, float *rollf, float *doppf); +BOOL BASSDEF(BASS_Set3DPosition)(const BASS_3DVECTOR *pos, const BASS_3DVECTOR *vel, const BASS_3DVECTOR *front, const BASS_3DVECTOR *top); +BOOL BASSDEF(BASS_Get3DPosition)(BASS_3DVECTOR *pos, BASS_3DVECTOR *vel, BASS_3DVECTOR *front, BASS_3DVECTOR *top); +void BASSDEF(BASS_Apply3D)(); +#if defined(_WIN32) && !defined(_WIN32_WCE) +BOOL BASSDEF(BASS_SetEAXParameters)(int env, float vol, float decay, float damp); +BOOL BASSDEF(BASS_GetEAXParameters)(DWORD *env, float *vol, float *decay, float *damp); +#endif + +HMUSIC BASSDEF(BASS_MusicLoad)(BOOL mem, const void *file, QWORD offset, DWORD length, DWORD flags, DWORD freq); +BOOL BASSDEF(BASS_MusicFree)(HMUSIC handle); + +HSAMPLE BASSDEF(BASS_SampleLoad)(BOOL mem, const void *file, QWORD offset, DWORD length, DWORD max, DWORD flags); +HSAMPLE BASSDEF(BASS_SampleCreate)(DWORD length, DWORD freq, DWORD chans, DWORD max, DWORD flags); +BOOL BASSDEF(BASS_SampleFree)(HSAMPLE handle); +BOOL BASSDEF(BASS_SampleSetData)(HSAMPLE handle, const void *buffer); +BOOL BASSDEF(BASS_SampleGetData)(HSAMPLE handle, void *buffer); +BOOL BASSDEF(BASS_SampleGetInfo)(HSAMPLE handle, BASS_SAMPLE *info); +BOOL BASSDEF(BASS_SampleSetInfo)(HSAMPLE handle, const BASS_SAMPLE *info); +HCHANNEL BASSDEF(BASS_SampleGetChannel)(HSAMPLE handle, BOOL onlynew); +DWORD BASSDEF(BASS_SampleGetChannels)(HSAMPLE handle, HCHANNEL *channels); +BOOL BASSDEF(BASS_SampleStop)(HSAMPLE handle); + +HSTREAM BASSDEF(BASS_StreamCreate)(DWORD freq, DWORD chans, DWORD flags, STREAMPROC *proc, void *user); +HSTREAM BASSDEF(BASS_StreamCreateFile)(BOOL mem, const void *file, QWORD offset, QWORD length, DWORD flags); +HSTREAM BASSDEF(BASS_StreamCreateURL)(const char *url, DWORD offset, DWORD flags, DOWNLOADPROC *proc, void *user); +HSTREAM BASSDEF(BASS_StreamCreateFileUser)(DWORD system, DWORD flags, const BASS_FILEPROCS *proc, void *user); +BOOL BASSDEF(BASS_StreamFree)(HSTREAM handle); +QWORD BASSDEF(BASS_StreamGetFilePosition)(HSTREAM handle, DWORD mode); +DWORD BASSDEF(BASS_StreamPutData)(HSTREAM handle, const void *buffer, DWORD length); +DWORD BASSDEF(BASS_StreamPutFileData)(HSTREAM handle, const void *buffer, DWORD length); + +BOOL BASSDEF(BASS_RecordGetDeviceInfo)(DWORD device, BASS_DEVICEINFO *info); +BOOL BASSDEF(BASS_RecordInit)(int device); +BOOL BASSDEF(BASS_RecordSetDevice)(DWORD device); +DWORD BASSDEF(BASS_RecordGetDevice)(); +BOOL BASSDEF(BASS_RecordFree)(); +BOOL BASSDEF(BASS_RecordGetInfo)(BASS_RECORDINFO *info); +const char *BASSDEF(BASS_RecordGetInputName)(int input); +BOOL BASSDEF(BASS_RecordSetInput)(int input, DWORD flags, float volume); +DWORD BASSDEF(BASS_RecordGetInput)(int input, float *volume); +HRECORD BASSDEF(BASS_RecordStart)(DWORD freq, DWORD chans, DWORD flags, RECORDPROC *proc, void *user); + +double BASSDEF(BASS_ChannelBytes2Seconds)(DWORD handle, QWORD pos); +QWORD BASSDEF(BASS_ChannelSeconds2Bytes)(DWORD handle, double pos); +DWORD BASSDEF(BASS_ChannelGetDevice)(DWORD handle); +BOOL BASSDEF(BASS_ChannelSetDevice)(DWORD handle, DWORD device); +DWORD BASSDEF(BASS_ChannelIsActive)(DWORD handle); +BOOL BASSDEF(BASS_ChannelGetInfo)(DWORD handle, BASS_CHANNELINFO *info); +const char *BASSDEF(BASS_ChannelGetTags)(DWORD handle, DWORD tags); +DWORD BASSDEF(BASS_ChannelFlags)(DWORD handle, DWORD flags, DWORD mask); +BOOL BASSDEF(BASS_ChannelUpdate)(DWORD handle, DWORD length); +BOOL BASSDEF(BASS_ChannelLock)(DWORD handle, BOOL lock); +BOOL BASSDEF(BASS_ChannelPlay)(DWORD handle, BOOL restart); +BOOL BASSDEF(BASS_ChannelStop)(DWORD handle); +BOOL BASSDEF(BASS_ChannelPause)(DWORD handle); +BOOL BASSDEF(BASS_ChannelSetAttribute)(DWORD handle, DWORD attrib, float value); +BOOL BASSDEF(BASS_ChannelGetAttribute)(DWORD handle, DWORD attrib, float *value); +BOOL BASSDEF(BASS_ChannelSlideAttribute)(DWORD handle, DWORD attrib, float value, DWORD time); +BOOL BASSDEF(BASS_ChannelIsSliding)(DWORD handle, DWORD attrib); +BOOL BASSDEF(BASS_ChannelSet3DAttributes)(DWORD handle, int mode, float min, float max, int iangle, int oangle, float outvol); +BOOL BASSDEF(BASS_ChannelGet3DAttributes)(DWORD handle, DWORD *mode, float *min, float *max, DWORD *iangle, DWORD *oangle, float *outvol); +BOOL BASSDEF(BASS_ChannelSet3DPosition)(DWORD handle, const BASS_3DVECTOR *pos, const BASS_3DVECTOR *orient, const BASS_3DVECTOR *vel); +BOOL BASSDEF(BASS_ChannelGet3DPosition)(DWORD handle, BASS_3DVECTOR *pos, BASS_3DVECTOR *orient, BASS_3DVECTOR *vel); +QWORD BASSDEF(BASS_ChannelGetLength)(DWORD handle, DWORD mode); +BOOL BASSDEF(BASS_ChannelSetPosition)(DWORD handle, QWORD pos, DWORD mode); +QWORD BASSDEF(BASS_ChannelGetPosition)(DWORD handle, DWORD mode); +DWORD BASSDEF(BASS_ChannelGetLevel)(DWORD handle); +DWORD BASSDEF(BASS_ChannelGetData)(DWORD handle, void *buffer, DWORD length); +HSYNC BASSDEF(BASS_ChannelSetSync)(DWORD handle, DWORD type, QWORD param, SYNCPROC *proc, void *user); +BOOL BASSDEF(BASS_ChannelRemoveSync)(DWORD handle, HSYNC sync); +HDSP BASSDEF(BASS_ChannelSetDSP)(DWORD handle, DSPPROC *proc, void *user, int priority); +BOOL BASSDEF(BASS_ChannelRemoveDSP)(DWORD handle, HDSP dsp); +BOOL BASSDEF(BASS_ChannelSetLink)(DWORD handle, DWORD chan); +BOOL BASSDEF(BASS_ChannelRemoveLink)(DWORD handle, DWORD chan); +HFX BASSDEF(BASS_ChannelSetFX)(DWORD handle, DWORD type, int priority); +BOOL BASSDEF(BASS_ChannelRemoveFX)(DWORD handle, HFX fx); + +BOOL BASSDEF(BASS_FXSetParameters)(HFX handle, const void *params); +BOOL BASSDEF(BASS_FXGetParameters)(HFX handle, void *params); +BOOL BASSDEF(BASS_FXReset)(HFX handle); + +#ifdef __cplusplus +} + +#ifdef _WIN32 +static inline HPLUGIN BASS_PluginLoad(const WCHAR *file, DWORD flags) +{ + return BASS_PluginLoad((const char*)file, flags|BASS_UNICODE); +} + +static inline HMUSIC BASS_MusicLoad(BOOL mem, const WCHAR *file, QWORD offset, DWORD length, DWORD flags, DWORD freq) +{ + return BASS_MusicLoad(mem, (const void*)file, offset, length, flags|BASS_UNICODE, freq); +} + +static inline HSAMPLE BASS_SampleLoad(BOOL mem, const WCHAR *file, QWORD offset, DWORD length, DWORD max, DWORD flags) +{ + return BASS_SampleLoad(mem, (const void*)file, offset, length, max, flags|BASS_UNICODE); +} + +static inline HSTREAM BASS_StreamCreateFile(BOOL mem, const WCHAR *file, QWORD offset, QWORD length, DWORD flags) +{ + return BASS_StreamCreateFile(mem, (const void*)file, offset, length, flags|BASS_UNICODE); +} + +static inline HSTREAM BASS_StreamCreateURL(const WCHAR *url, DWORD offset, DWORD flags, DOWNLOADPROC *proc, void *user) +{ + return BASS_StreamCreateURL((const char*)url, offset, flags|BASS_UNICODE, proc, user); +} +#endif +#endif + +#endif diff --git a/ThirdParty/BASS/bassmidi.h b/ThirdParty/BASS/bassmidi.h new file mode 100644 index 000000000..727f7aec9 --- /dev/null +++ b/ThirdParty/BASS/bassmidi.h @@ -0,0 +1,301 @@ +/* + BASSMIDI 2.4 C/C++ header file + Copyright (c) 2006-2013 Un4seen Developments Ltd. + + See the BASSMIDI.CHM file for more detailed documentation +*/ + +#ifndef BASSMIDI_H +#define BASSMIDI_H + +#include "bass.h" + +#if BASSVERSION!=0x204 +#error conflicting BASS and BASSMIDI versions +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef BASSMIDIDEF +#define BASSMIDIDEF(f) WINAPI f +#endif + +typedef DWORD HSOUNDFONT; // soundfont handle + +// Additional BASS_SetConfig options +#define BASS_CONFIG_MIDI_COMPACT 0x10400 +#define BASS_CONFIG_MIDI_VOICES 0x10401 +#define BASS_CONFIG_MIDI_AUTOFONT 0x10402 + +// Additional BASS_SetConfigPtr options +#define BASS_CONFIG_MIDI_DEFFONT 0x10403 + +// Additional sync types +#define BASS_SYNC_MIDI_MARK 0x10000 +#define BASS_SYNC_MIDI_MARKER 0x10000 +#define BASS_SYNC_MIDI_CUE 0x10001 +#define BASS_SYNC_MIDI_LYRIC 0x10002 +#define BASS_SYNC_MIDI_TEXT 0x10003 +#define BASS_SYNC_MIDI_EVENT 0x10004 +#define BASS_SYNC_MIDI_TICK 0x10005 +#define BASS_SYNC_MIDI_TIMESIG 0x10006 +#define BASS_SYNC_MIDI_KEYSIG 0x10007 + +// Additional BASS_MIDI_StreamCreateFile/etc flags +#define BASS_MIDI_DECAYEND 0x1000 +#define BASS_MIDI_NOFX 0x2000 +#define BASS_MIDI_DECAYSEEK 0x4000 +#define BASS_MIDI_NOCROP 0x8000 +#define BASS_MIDI_SINCINTER 0x800000 + +// BASS_MIDI_FontInit flags +#define BASS_MIDI_FONT_MEM 0x10000 +#define BASS_MIDI_FONT_MMAP 0x20000 + +typedef struct { + HSOUNDFONT font; // soundfont + int preset; // preset number (-1=all) + int bank; +} BASS_MIDI_FONT; + +typedef struct { + HSOUNDFONT font; // soundfont + int spreset; // source preset number + int sbank; // source bank number + int dpreset; // destination preset/program number + int dbank; // destination bank number + int dbanklsb; // destination bank number LSB +} BASS_MIDI_FONTEX; + +// BASS_MIDI_StreamSet/GetFonts flag +#define BASS_MIDI_FONT_EX 0x1000000 // BASS_MIDI_FONTEX + +typedef struct { + const char *name; + const char *copyright; + const char *comment; + DWORD presets; // number of presets/instruments + DWORD samsize; // total size (in bytes) of the sample data + DWORD samload; // amount of sample data currently loaded + DWORD samtype; // sample format (CTYPE) if packed +} BASS_MIDI_FONTINFO; + +typedef struct { + DWORD track; // track containing marker + DWORD pos; // marker position + const char *text; // marker text +} BASS_MIDI_MARK; + +// Marker types +#define BASS_MIDI_MARK_MARKER 0 // marker +#define BASS_MIDI_MARK_CUE 1 // cue point +#define BASS_MIDI_MARK_LYRIC 2 // lyric +#define BASS_MIDI_MARK_TEXT 3 // text +#define BASS_MIDI_MARK_TIMESIG 4 // time signature +#define BASS_MIDI_MARK_KEYSIG 5 // key signature +#define BASS_MIDI_MARK_COPY 6 // copyright notice +#define BASS_MIDI_MARK_TRACK 7 // track name +#define BASS_MIDI_MARK_INST 8 // instrument name +#define BASS_MIDI_MARK_TICK 0x10000 // FLAG: get position in ticks (otherwise bytes) + +// MIDI events +#define MIDI_EVENT_NOTE 1 +#define MIDI_EVENT_PROGRAM 2 +#define MIDI_EVENT_CHANPRES 3 +#define MIDI_EVENT_PITCH 4 +#define MIDI_EVENT_PITCHRANGE 5 +#define MIDI_EVENT_DRUMS 6 +#define MIDI_EVENT_FINETUNE 7 +#define MIDI_EVENT_COARSETUNE 8 +#define MIDI_EVENT_MASTERVOL 9 +#define MIDI_EVENT_BANK 10 +#define MIDI_EVENT_MODULATION 11 +#define MIDI_EVENT_VOLUME 12 +#define MIDI_EVENT_PAN 13 +#define MIDI_EVENT_EXPRESSION 14 +#define MIDI_EVENT_SUSTAIN 15 +#define MIDI_EVENT_SOUNDOFF 16 +#define MIDI_EVENT_RESET 17 +#define MIDI_EVENT_NOTESOFF 18 +#define MIDI_EVENT_PORTAMENTO 19 +#define MIDI_EVENT_PORTATIME 20 +#define MIDI_EVENT_PORTANOTE 21 +#define MIDI_EVENT_MODE 22 +#define MIDI_EVENT_REVERB 23 +#define MIDI_EVENT_CHORUS 24 +#define MIDI_EVENT_CUTOFF 25 +#define MIDI_EVENT_RESONANCE 26 +#define MIDI_EVENT_RELEASE 27 +#define MIDI_EVENT_ATTACK 28 +#define MIDI_EVENT_REVERB_MACRO 30 +#define MIDI_EVENT_CHORUS_MACRO 31 +#define MIDI_EVENT_REVERB_TIME 32 +#define MIDI_EVENT_REVERB_DELAY 33 +#define MIDI_EVENT_REVERB_LOCUTOFF 34 +#define MIDI_EVENT_REVERB_HICUTOFF 35 +#define MIDI_EVENT_REVERB_LEVEL 36 +#define MIDI_EVENT_CHORUS_DELAY 37 +#define MIDI_EVENT_CHORUS_DEPTH 38 +#define MIDI_EVENT_CHORUS_RATE 39 +#define MIDI_EVENT_CHORUS_FEEDBACK 40 +#define MIDI_EVENT_CHORUS_LEVEL 41 +#define MIDI_EVENT_CHORUS_REVERB 42 +#define MIDI_EVENT_DRUM_FINETUNE 50 +#define MIDI_EVENT_DRUM_COARSETUNE 51 +#define MIDI_EVENT_DRUM_PAN 52 +#define MIDI_EVENT_DRUM_REVERB 53 +#define MIDI_EVENT_DRUM_CHORUS 54 +#define MIDI_EVENT_DRUM_CUTOFF 55 +#define MIDI_EVENT_DRUM_RESONANCE 56 +#define MIDI_EVENT_DRUM_LEVEL 57 +#define MIDI_EVENT_SOFT 60 +#define MIDI_EVENT_SYSTEM 61 +#define MIDI_EVENT_TEMPO 62 +#define MIDI_EVENT_SCALETUNING 63 +#define MIDI_EVENT_CONTROL 64 +#define MIDI_EVENT_CHANPRES_VIBRATO 65 +#define MIDI_EVENT_CHANPRES_PITCH 66 +#define MIDI_EVENT_CHANPRES_FILTER 67 +#define MIDI_EVENT_CHANPRES_VOLUME 68 +#define MIDI_EVENT_MODRANGE 69 +#define MIDI_EVENT_BANK_LSB 70 +#define MIDI_EVENT_MIXLEVEL 0x10000 +#define MIDI_EVENT_TRANSPOSE 0x10001 +#define MIDI_EVENT_SYSTEMEX 0x10002 + +#define MIDI_EVENT_END 0 +#define MIDI_EVENT_END_TRACK 0x10003 + +#define MIDI_SYSTEM_DEFAULT 0 +#define MIDI_SYSTEM_GM1 1 +#define MIDI_SYSTEM_GM2 2 +#define MIDI_SYSTEM_XG 3 +#define MIDI_SYSTEM_GS 4 + +typedef struct { + DWORD event; // MIDI_EVENT_xxx + DWORD param; + DWORD chan; + DWORD tick; // event position (ticks) + DWORD pos; // event position (bytes) +} BASS_MIDI_EVENT; + +// BASS_MIDI_StreamEvents modes +#define BASS_MIDI_EVENTS_STRUCT 0 // BASS_MIDI_EVENT structures +#define BASS_MIDI_EVENTS_RAW 0x10000 // raw MIDI event data +#define BASS_MIDI_EVENTS_SYNC 0x1000000 // FLAG: trigger event syncs + +// BASS_CHANNELINFO type +#define BASS_CTYPE_STREAM_MIDI 0x10d00 + +// Additional attributes +#define BASS_ATTRIB_MIDI_PPQN 0x12000 +#define BASS_ATTRIB_MIDI_CPU 0x12001 +#define BASS_ATTRIB_MIDI_CHANS 0x12002 +#define BASS_ATTRIB_MIDI_VOICES 0x12003 +#define BASS_ATTRIB_MIDI_VOICES_ACTIVE 0x12004 +#define BASS_ATTRIB_MIDI_TRACK_VOL 0x12100 // + track # + +// Additional tag type +#define BASS_TAG_MIDI_TRACK 0x11000 // + track #, track text : array of null-terminated ANSI strings + +// BASS_ChannelGetLength/GetPosition/SetPosition mode +#define BASS_POS_MIDI_TICK 2 // tick position + +// BASS_MIDI_FontPack flags +#define BASS_MIDI_PACK_NOHEAD 1 // don't send a WAV header to the encoder + +typedef struct { + const char *name; // description + DWORD id; + DWORD flags; +} BASS_MIDI_DEVICEINFO; + +typedef void (CALLBACK MIDIINPROC)(DWORD device, double time, const void *buffer, DWORD length, void *user); +/* User MIDI input callback function. +device : MIDI input device +time : Timestamp +buffer : Buffer containing MIDI data +length : Number of bytes of data +user : The 'user' parameter value given when calling BASS_MIDI_InInit */ + +HSTREAM BASSMIDIDEF(BASS_MIDI_StreamCreate)(DWORD channels, DWORD flags, DWORD freq); +HSTREAM BASSMIDIDEF(BASS_MIDI_StreamCreateFile)(BOOL mem, const void *file, QWORD offset, QWORD length, DWORD flags, DWORD freq); +HSTREAM BASSMIDIDEF(BASS_MIDI_StreamCreateURL)(const char *url, DWORD offset, DWORD flags, DOWNLOADPROC *proc, void *user, DWORD freq); +HSTREAM BASSMIDIDEF(BASS_MIDI_StreamCreateFileUser)(DWORD system, DWORD flags, const BASS_FILEPROCS *procs, void *user, DWORD freq); +HSTREAM BASSMIDIDEF(BASS_MIDI_StreamCreateEvents)(const BASS_MIDI_EVENT *events, DWORD ppqn, DWORD flags, DWORD freq); +BOOL BASSMIDIDEF(BASS_MIDI_StreamGetMark)(HSTREAM handle, DWORD type, DWORD index, BASS_MIDI_MARK *mark); +DWORD BASSMIDIDEF(BASS_MIDI_StreamGetMarks)(HSTREAM handle, int track, DWORD type, BASS_MIDI_MARK *marks); +BOOL BASSMIDIDEF(BASS_MIDI_StreamSetFonts)(HSTREAM handle, const void *fonts, DWORD count); +DWORD BASSMIDIDEF(BASS_MIDI_StreamGetFonts)(HSTREAM handle, void *fonts, DWORD count); +BOOL BASSMIDIDEF(BASS_MIDI_StreamLoadSamples)(HSTREAM handle); +BOOL BASSMIDIDEF(BASS_MIDI_StreamEvent)(HSTREAM handle, DWORD chan, DWORD event, DWORD param); +DWORD BASSMIDIDEF(BASS_MIDI_StreamEvents)(HSTREAM handle, DWORD mode, const void *events, DWORD length); +DWORD BASSMIDIDEF(BASS_MIDI_StreamGetEvent)(HSTREAM handle, DWORD chan, DWORD event); +DWORD BASSMIDIDEF(BASS_MIDI_StreamGetEvents)(HSTREAM handle, int track, DWORD filter, BASS_MIDI_EVENT *events); +HSTREAM BASSMIDIDEF(BASS_MIDI_StreamGetChannel)(HSTREAM handle, DWORD chan); + +HSOUNDFONT BASSMIDIDEF(BASS_MIDI_FontInit)(const void *file, DWORD flags); +HSOUNDFONT BASSMIDIDEF(BASS_MIDI_FontInitUser)(const BASS_FILEPROCS *procs, void *user, DWORD flags); +BOOL BASSMIDIDEF(BASS_MIDI_FontFree)(HSOUNDFONT handle); +BOOL BASSMIDIDEF(BASS_MIDI_FontGetInfo)(HSOUNDFONT handle, BASS_MIDI_FONTINFO *info); +BOOL BASSMIDIDEF(BASS_MIDI_FontGetPresets)(HSOUNDFONT handle, DWORD *presets); +const char *BASSMIDIDEF(BASS_MIDI_FontGetPreset)(HSOUNDFONT handle, int preset, int bank); +BOOL BASSMIDIDEF(BASS_MIDI_FontLoad)(HSOUNDFONT handle, int preset, int bank); +BOOL BASSMIDIDEF(BASS_MIDI_FontUnload)(HSOUNDFONT handle, int preset, int bank); +BOOL BASSMIDIDEF(BASS_MIDI_FontCompact)(HSOUNDFONT handle); +BOOL BASSMIDIDEF(BASS_MIDI_FontPack)(HSOUNDFONT handle, const void *outfile, const void *encoder, DWORD flags); +BOOL BASSMIDIDEF(BASS_MIDI_FontUnpack)(HSOUNDFONT handle, const void *outfile, DWORD flags); +BOOL BASSMIDIDEF(BASS_MIDI_FontSetVolume)(HSOUNDFONT handle, float volume); +float BASSMIDIDEF(BASS_MIDI_FontGetVolume)(HSOUNDFONT handle); + +BOOL BASSMIDIDEF(BASS_MIDI_InGetDeviceInfo)(DWORD device, BASS_MIDI_DEVICEINFO *info); +BOOL BASSMIDIDEF(BASS_MIDI_InInit)(DWORD device, MIDIINPROC *proc, void *user); +BOOL BASSMIDIDEF(BASS_MIDI_InFree)(DWORD device); +BOOL BASSMIDIDEF(BASS_MIDI_InStart)(DWORD device); +BOOL BASSMIDIDEF(BASS_MIDI_InStop)(DWORD device); + +#ifdef __cplusplus +} + +static inline BOOL BASS_MIDI_StreamSetFonts(HSTREAM handle, const BASS_MIDI_FONTEX *fonts, DWORD count) +{ + return BASS_MIDI_StreamSetFonts(handle, (const void*)fonts, count|BASS_MIDI_FONT_EX); +} + +static inline DWORD BASS_MIDI_StreamGetFonts(HSTREAM handle, BASS_MIDI_FONTEX *fonts, DWORD count) +{ + return BASS_MIDI_StreamGetFonts(handle, (void*)fonts, count|BASS_MIDI_FONT_EX); +} + +#ifdef _WIN32 +static inline HSTREAM BASS_MIDI_StreamCreateFile(BOOL mem, const WCHAR *file, QWORD offset, QWORD length, DWORD flags, DWORD freq) +{ + return BASS_MIDI_StreamCreateFile(mem, (const void*)file, offset, length, flags|BASS_UNICODE, freq); +} + +static inline HSTREAM BASS_MIDI_StreamCreateURL(const WCHAR *url, DWORD offset, DWORD flags, DOWNLOADPROC *proc, void *user, DWORD freq) +{ + return BASS_MIDI_StreamCreateURL((const char*)url, offset, flags|BASS_UNICODE, proc, user, freq); +} + +static inline HSOUNDFONT BASS_MIDI_FontInit(const WCHAR *file, DWORD flags) +{ + return BASS_MIDI_FontInit((const void*)file, flags|BASS_UNICODE); +} + +static inline BOOL BASS_MIDI_FontPack(HSOUNDFONT handle, const WCHAR *outfile, const WCHAR *encoder, DWORD flags) +{ + return BASS_MIDI_FontPack(handle, (const void*)outfile, (const void*)encoder, flags|BASS_UNICODE); +} + +static inline BOOL BASS_MIDI_FontUnpack(HSOUNDFONT handle, const WCHAR *outfile, DWORD flags) +{ + return BASS_MIDI_FontUnpack(handle, (const void*)outfile, flags|BASS_UNICODE); +} +#endif +#endif + +#endif diff --git a/ThirdParty/BASS/libbass.dylib b/ThirdParty/BASS/libbass.dylib new file mode 100644 index 0000000000000000000000000000000000000000..85d810a2fd419fc83a0c6d34d37792abc93c57f4 GIT binary patch literal 499028 zcmeFa3w%`7wLd=3WC9823Hff;F$xM;U+?0>4cLovx~CQHhr<0GIwfNij$LCH!PKFylvW`m3t) z-?7QBxi$aA^nOnX<8PIU#PCOc&BeSrokG@Ol;3O4YxM3)5J~zI=oj;<(OY}>hLH?k zD!=A0GjPBtJ76$ zA=;DbT^10ks$9Y%VN}R)eM{7iq+hG9Nh6jHRha!%RV}}FO(IPK{5^V!=sF$fjpj?E zGV-jdx@#>7ZI!=jMd0q5FVW)@{8$oE$UmB1lCLDis;awDhqbD_&cFUk^s*B4f{6&^ zPvo3IsJOQz!su01wPx8rqW46C9-k;o@{guR#r>0u=+#_Ok1sBdXP(k>cQ{c`$p4S) zNzIDU4eiqMX!^ZI&z5LsdMFKbZEc2a{TB|qXZt|uEy^X{Qllwu+yl^ zM1%soS=#{L0{moruEvkj((0#1bwo=JvIlzB--J7%UYn9WUG?`8f^WKg`cPcho?NU!8&$1`5Rg zy3uqEuYVm~t%RIw?_RO$&cOO*e#rl;6Zr~6mR`ZA^h|mhosf^fhV@h*>8Hh;UOc*9 zeo4*~-i4sIe_eT&t_|Fc2LE?iq&hW%15UpA`$huaNZ=a@{C^>V3bE#IqWrhmzn(Ja zM7c!_Mf_vW=SM{OEm3~E|Gz}JYiVn9^UW2abkZWq=k|7i$yj?l9v9{PVt7+_Z0kvi zcq`vtVxv(=RLsA5(x@Xk<3)uRLkIn45K;R@Ia^H?Sy;rV zuLO1ZQ$c=1*iB=z-1Spoa7b?3O+<70PIK3FoaU?^dx6|R0fO9Kl0N`wCxd3g^(u4O z`ng*oaJlSRrv>i1w$t2gE<1vGL_N(_f(UP3^evYKgBRb z#PZl}gqzK9y&7&g3(aB)dEs{1MQ%yw3T{T!e>n)c?B3Weh=ZjG8el@hDvw1m1x196 z-pMR!V#8$zId24L>Gs%vuyCKbn}ze~b_4;*o6(^~@DQb2qWuDAHQBW+dciYG!x7)_ zmiC!kg{SVn0(8v*76ri?3u13Jic3Br%7+nAV-68-iS%<;ohU_2@mB)J!^LqiTq&7^ zcw0%~1@6Jfg?L;DFN_P^&R5(u`^9LFL6qMSb6S+*^RiKtT1}#K!W8ced?HHwRxZ6& zs1$A$ZWF3TmudaUCrG3bF+A(Q#|B+L$4{Pn6$(F`G4BT^ye2Nk3s6%dm)+6N`SA0; z)X&}2$z>nv=Wgo;f0^}gMBy-P5#te28nOgl6~ogge*O`X=N~7LJg;kw^_?IAvrLuf z;;o{z-&B8&v*~n!!-#Op9+U2cgAhYMcO8=OWlRPmkOpcGZ=M4hv1h(2z6X_$Yq$$~ zu8N9u-AgFrj53xYZ%)PAC8L_f0$S8AK{{`6DS*^jkc`J(uBNc}BIL2b{s3fwlv`Ma zP>d-+A6JL6yv}9!XaR^L!oSE~4*!89BC_+6TWT}8ktONeJ}$JLT3^_FPpe5Mv^S)l z2VweS^d>;8x4zB-E>8xC@%=(P;;wIp%7X&`!penygDGBqXZ`><%ed@Hqs|k~C_@L} z37c*2Q_;-v;f277e?(yY1r9B;?s~bS{!APRZBE@y>T^zq_yp?XbtaUNFDllwvC0{w z!rCf#NIg@++x6$;acO7@=Q>S*8>OKe14eGifq1n33{mi#r8b-TBpR|OJm=f0Nw?bp z@~);&521bU7ouMnoZ&Uo;vV^2N&W|re;6-(s|?$|L1!p)P-r; z_ybWBHEJ18z%!cON@O_f{4AMrJ>gDD;I6p@w;9vEu=C9%?yZFTD#P`e9Sj#e-MX+d zJ&ADx!#K`lg(X=*!FPHp> zYVGv|C=W}<$%Q_L^#4Z>GOSE@5Sc3y2`R~hs>9BdWI~M$BbiY3a6)LS4R!~_58~9% zO6RWN8g4+E>aP`pyrmh{0xhN3#4VvJx8+gzr6>xh#Uh=t2i}dhNf%69XaXXjt_i0u zscTu3>aRc4s&D`07Zp;;NPZ@;e(!q39?8;&z>cj5^mJ zL&;)IB|^6(2_?o)-W&m@qv2HG3i7> zQiR*Tih79fyWUTTja4fX@Smq?rhHiL{^{Tu>1bPvuMLhPr*gPc7Wp|+r;nTp2?6%lqmI4nahE=E#Xlu81qofW}|NJPU2ndLv>@+5j zhQM?Piy(b*HAV-toObhRRJMN8tQ-GK!p=X4LE$q%FqohE1TQ)LEio)W3pBkMF4l|s zPBGphN@pE`55*_Mc2gU=rMOtXk2HW$+ClyR$h`O=8(T7NhLA99h^r!`If~)Tg8a_j z|HP1ye@b9#UrBykkWXT$D?+P;SWP?7z_gK6WIBljqutuSP`#MRL#C|c1BcDK6boEYmo1NMXe*S zX59T4imx33nwq>R^|XkNT^%oW$E0I=F|CXFHI)wiBCr9-jmYM}F$^K%xz^#72`avfA7-^5$Slbg@DjlI3l6*N_5 zJ-QjlDAOM6IjWJ)W2C+2ClGQP>6CRuchXaAeMFBZxOjS%!9i8ry};HJ=A#kXlrfVkWV$ zEAUZ%Cu-%L{ZuPEps8l%9}GqA9V_Z1;;iQ;M@^~`&UlM-))M$gHa#fDqaySVlJ9Gt z@T{Hpn9-G-f}E!gnshJPz?`e8_t1y)_-0ZJ=xn@8`wc)a>zBC)M$~z;%1jvtUM86nn1+Z@Fc_ z2`nq-h9ig~=jvjUOi^mLR3VT;I>b%}*xrS|sGEi*bxlj-;;MhcCv86RM5HQ2D z5>fTcwGOT^%(bbt{sOD$7E#$sk>J-;#V3E0=BHiS%uk98!i`Bkb={zp!UCVvJgLmH zgFK1s7C^i4Pu`d+T`&f6RSr6}KNE@Qbiu%6l@k?50Wcla^zfpxZCa^={H4fBq!j0L zx_c&t8+Cp0c+u9~Ai80k91&MXvP9$7XDAI+E=(V#I{-&^df!>>Smou@4rD=Vv^39{MRa}(vZ}Nks5rTYoWZ6ug7sJedrm#9a?-zz6|hnRvJwBr6@2qa*Yn3}d{TI$d<7 zT!R_iu-ZUr2Y5-t_S36uEBYHxVYfd`l%kH_I&?WArg=Nu;fFPPyyGOY=;%R;4kXJv zV&wgRyvyO8`YnPA2c{2$x3#<$_1}hpiwjkOb&=|WJ6s>6Omh5|2KM%D(fn2e zU=yWx8H)*6Wdet63D#m0MIs4n$#0`(4ftFO(%hnXG{kgFNqF>KfuE9mnuulKcpd4$ zc38j@0=ojS;Xs}OvnUWQo?Ko>CVAoF$>nvRURfQPiR=WRg}|s4Lx9UZgb?Ni1a3f( zeL&y_1a2>xu>gRRCnqo{x=_DoF2hJM?b(;QX4G{CRFDn5d^3D1$x2UJCR6Or?{X z-0}rc_S*|Y%vkbdk3E+x(@0l0P$n7zX-e7bcmz`xhgjpsBRuI(2!bkr381KdTU>pJ zL&rM-b0Eyfx<$mVF3CSwlHci;KXXSvNCm<;qHKeNbK@N}rbK&Sl!wjI9d=E|0EO9* zs32*N{s1ACi@*dkF8fMAa{+OA`BL^;pCL}y{T0RjE9^IZ#2ic*z z^2Izn)Cp<6Eb`%@`E2CFL-S>m4-d_kM?O3>Ujg~>(0sGWhest#VJ7+T(0sY%!$b3d zF`oku%{PgBcxb*%^5LQR(#eO1<};BG5AyjkvP?98u+E18HWoxr>=5;Tjlaf)QrHmC zNPUACei)i7uy_)IkA%TfwtXZ3#x+9&pkBjcFcO8YI4KVjg|9d%4-$p17!M7TBt^67KDob=5kAE;}oBiBC1zNBw9`68Onm$BBs3M!4-lXSu%7M|up7ch0A zmLQ5om)#~xYwRn79{qB=NDuFP{YUgJk9+JcE_9sweKd+JQNPGuAdtqiAGZ4_v?iCm z+T!20tuA4P-0~cR2P@Mr{Bf#OB{H5m(0e~%G~@~ za(mYnQ0PW_dNtC^Rd%_%gV>Wtl`DF1`*fZygUWx%fNb^4^&a zFS+(#%7=F$G0C{EBZe5KWt6z4Yk(uLFz4;JOu7Uqek<2x;;&xa|F?FzDSYqb^dsN~mUm&j>|AUGlyH^ftUvo|Sm}%ypm&STFoB zq__r}4^TVsK)!}RI+=kdju}gWr3I-cLMy4v)(6_8D^8j_74Gk>nZ_8^{s*Cvf;aAtC_0 zM5!HS51^BvAX5~@2cQ=xcFrTrH)jDc49w-M^nFu{Sq8kPhy+seP5a^v%8|Dg;Xwa3 zW0+P-E5QN%Kr#jb-ZL6aav<#Dw{#MtswsFrH_*Kc zvI*2go4r}h0F!MAl71qYOC+m_WEK*y1TwWXpFkZ^X_m$$XrvCzqIfCJ2Iz z$&u=tdFNQzPpJx_7~B0yPDbWQXAO?$`1yCnui{BH$sq=v~pI2&wXoL{$RFTWVs2 zwT$_00={>#gFwxs+CWn6L^hfrs~Hfib6rGM1X%+W`)fcWPW6bKLUEZW-E4GN;382r z(Il@`NfBh7Qfd<9Af>02THw+lOG;@v!I+CD7)nDa%_Nwn!dIb``7%3~-Ge0FhnogH zFVf^UrgPaB;6?-GXW)&l&s#;}IgIArM(rYk2R~8nM%zQ5cNXmUAboTzm9JCCv>Jr4 zYFpV#2$}@Rl3&@CC;(~+rA#P6P2cmmCjqozCgrtBt0k;$GJ#&yif*DhwwSe|W@<&0 zVun7!%Ta`V$Yr0z>l3O*l>FQ9yhm75+q;M_;t5$m$UcHj{xhKPp}Pj?2n`pUm+}(h zvau%MeHqU86KvoOJS8Xs8v$xQNT89w+a3O^lyk1tcT=o}mQ(g9*rpH-Szz*ab-2`a^$#NvwppUKWNYroEV@|`zsqdz0_XF*i`v9 za-f8W?Gx~$HqjVQK`0@x>vN-otaBkk)?r!=3F+C0O$(r_Pzu%`K@f<8#)Wi))WyMp z4vQSD004fHl`p`|k;pCe7>GdK1B<}=3ExfBKY3Z95|}x}@J3iw>Qm3z7wN_eBN75~G~n_W!zovXL#VfH2CViTeZ-=u-d1Ix#93&N~+m zD;^N>|Mdbvsb~dK4AqRZ27#3b9*GixIJ6Ssyaup=pVkm=M^RdD&m5LNxJEH*WeK@+ z-XG#&{b9Pck58!*#hODfs~0YDa1XwQ4pCGV+FXk1VPP;r&BlMZ7W9fPfMp)o^vJl2{y^pYOM)ZtQY1BGwFmhxBd4I!0gdBXPn9nV)tmVa=SJWB6 zE8zAl(#Ku;cjT^U%m}-X{xBpU9ZQuLTRdTRy!TE>h$6s@`CXb!Rot+=9XTKtNB9wfJ^S0ubA2~r#+AO z9{Dsy&%8J@9&87_x&^b^^H`u0qp=(PV+HA~zAn<+1tCORcyQcfnW~HH;?Wb9`eS(O z(z@i9=rL3Mu|E7^6=f=izqFRbV#L&!@fST|s6TcC{?fW!Va$o@d;SZ5-La`R<4;J7 zsMm{fRO~)8H=LP9Meiy!HFJ+s;fb_M@#+q@J}M5rBVK(#%y~nUV;*colZNzlog~a+ zZjZ_0D(tGeqBxwH^%WvjuX2Vnul$Mtx73N9W*wtu;#dGp?g^03x#a;j_NK}&W2spF zn0CxQ`vq-oi~BvOg4|A{7@irT${`vz*swbR*5gLDa{?V1TB_Ie;CX7Z;o1yX*}!m% ziPoWujJ1Dr6@FA}%8#fP`3vrS!8n+nV0OMOf52VyI!ryk zWZc8BXAzC2x4i6l@FtQ8C^o76o**9iGDe+JC17x_wzmo?*bC zg+b*qMR&bnR0iDgpj&>EERr#g@-&Yz8>Lk(DtMLW!HJ)#<#}`~v`EG>0Gnf9eq?@V zfNNNa79c1;z+TiB$%u;8Tv$av0}u=MALJkD{g|TFge?rs^q|~=x`?(`*usTgLJ;CT zM)6?1JYS+b6?T!kJLgP^{JxNLg!U85-9mn+kkgHw#pmQUwA!@r;yBQU)YR|-J(wPn z`#`1jr&z#?=5&iStsbIzxd(KxA-Ze!k<|&yH|bkkau3+ThJXr?Q>`dU0hP~Z+78Bq^R$mP zYAS+wYd=hMn8Ukwfw}}EEnj9~s)DAD!p}@Msa*EEs1k>vNk9={h64~Jn@=TlKnVzDUEDAsvwEstP+4MW?r&gG20o-jh20Ycx}SKbJ;LV zkeP>HIFrq{D=DjF3nCL-(hh|nQX3%~#z`6EM>@6db)YfPEGZz8kS||0o6SKg?}VI4 z-)53PsF&noEt?H8w6sWNXT5V$Y!=xo<-aZM&4uHlUG`XDIFGidq{=PbXUUu|)}UKW ze+at;Kx=0oVr!TXtm1I+>cRb3X$}$Vx<|60iV|v@I>_5Jd%;fv8Vn zN|F}!Jh+587Au$13Eoq9hLZwhPDkSa|1ldihyu595qdNjwO4}BTu}3ovdny|XTs}@EM7DS7xT0AVcf(I#@;BJVMXsOx_ z?jSnYf=d*?-6TjKr<93w)VYDGX-w)|=3qTriIQV5TB968+O#EbmIBJDP z92j1zBUU$p7;&^{M%P8Tw zotL0JGeKKNr1OY0AR1{{?5X@(9ITe1!_4EPd#ORO?Wet6C@^;ohC8$tPdKxlib$Lr zc8%{LP&pKUF*HhKiRieYBGSkWcr{qP{nA35dubsS4;LZ@5yN_oU#g5Fg@~@*=L2M< z5N}5jT~vs3FD*oBi&`O45Sz0?bO&hUA_*l+5neXU@eY%xV!Zv*Vw`(vF%}OOBLxxX z7&fRBsdLqcQz>4KU)3;aD#Y6_Da5Gm*mAyN=gPSGeYNK&RUybQnFh6$TI*qF*n z@q}%@zQdz`&7*(SgRK`*00kLu74&LRrQOawa08Vqos)PKjdAlTtZcey7vLA#K2w~1 z!D$^CyNb~^*-;p*1+kq*hk7(f{t?W9pq1E3D><~>ZucZLENZx-9%({h59 zi1ABTQc~Gm_WR(1N^IVmL{hnkk3z9Jf#ID8pOu1;I2+*1Hb%(m%tq+zlme##DuBt? zR1;M+cZ4t-_q^p?HjEpUOYJ~s832ZN9(>k$%Ykb?%60_PejGldTXUn5X&JB)`P~|D z^0Vx%WdPCn3NIc@v+$TV2?@-rWL1f23{DDiR)UNZK~{2E=K+(ot_pzoc|2j1YrGwX zyCM_86^oK7ms2qLoPb-&#hY&!#p%CX!YRo4CSRrjCyvoLg$`p~is*a=+6nIzhqW4h z9-2wzJP*i|I^`58n0!vatxk`oEK$2K{|`3p6ATncH}PfsN&^rDek{dvjLL(F^59D5 z!9l^~a{_K97jIt8qHEHw(cDRC8z~EA8f>DIy}c|8CYmGNG=Skae4isG!XfQPZ>k21 z(6+b-#$ZC?uF15|M;D2SB(<#h;qE9Q{|92s~d~c-8JQw1aIm83*PRfBK~pu zKV}Z>V2SVVF-A+NjI(j07(+2@jA00i@|Z?I1!>3ju0d|gbLi+uLCSVxDH|gaDRs1a z;|w^N*a|6=Dg`%FxkxQSMPjBfP2-{pM4K8Ih-qrTft{WdKWhrb1BQ>OMWhI^#R)AY zWtB8T2GZ0+LQBTQf&e0;-fMauX=XkFUM(^O(mo3Y;zbH%_P9jCSf)T^v`}VhW_#7x z+7gRAhT>8ftv2zb{AmX1WL&6eZIDkCm6NvRb#q(JFd5;%D2kFJV+2VFaWj66qZJrV zm_i3Xt-@Fx>Ds{`JpsT6_R?tpvLCVy5>`jzY!EG}kTJljOJE>rXorQ}>;H=-p%kZ+ zir|%nKBd?q3!f>)CRrH5DI)=zE;jE;y*w%BUQNR-jBb48lFb9niNmycQ1j(}W@ZZe zN&BE9iP&5hzd2he(amZ0SYi3czB{fV0|VB^tLDh3(#LZRJSO0CRvON4<24t{|W0=kE9ZaC?B`8;Eet}T;C4j$WKr9m5dtU=cI%ndx zz6A%%(M7yuBF#VIHv_-9_*LOY4iSG?1h%aLxuemT8Wb6G=BB(SG^ew!5 zzn1{!CxB@L{62t;9T5)34&5v>EShHG=W6_>!9OE(gbUHV-bD4`M4T|iu_Tge zNC21Pt(FtoJq%K5UQdw4L@K8)C3M6;PTfQ#XG-UcfxFcb65NC&7yLT5_AOWvT z0Kd!LD5FeuI?=t3`Mu_AlkhB+6u$(%*E}u>pCnTKcav2selyM&sAgvJK(omslhr5- z6&-|d%U?(rrf?4(LoPiv1Mbyr*`DxUQf;VIV$H<=s4?mk^W%8Jvb3N@HaEj5D%0+# zm;R0V`*jQFd$9xPDa3{?=eJ96-shmAr+xf|B__X>4oF1{aKwvis0WJrfmrhnj-6}< zp1Ar*fif$-#H>^181Q74Fd@EZlEuCH&1~43MR`j$xbW!T7v-Pj!6nqs&(-O0fIGa6 z*i%X@@)pgJ-VnLhBK6c^qo82QKZ17N@Jm{kmEXg78ar|h{eQd_Oda=)GTP;LZd+mr zo5nYlSsEe%oZL^{#?$sdITaHcJ)qp4mS}8BI9>c2yoQ6D{`55{!=&P`240stU{b`f z57TCI??%+4Z41Fh+9)fDEv<@4FrIYB9&tQ9{eCRxml*k{+UBAPhD5u+TsOUwkf9l9u{88+3`uL@t6GL!nrx!U*PPJ0SBSg7jLUd7S+WS z7B*p)_8XU`P1BJ9fhF(K(tjK+3h57M>9>7V`Y@Ptdk=txOndi`E2l3!N#ypn7Pk7+ zqUWa6_mfFA{)(S34d+f5lFYrT{`)27-+xv#SZPX#CJ0sVYeWNMel}Ze_$mRtp*|;g zh2h%#zY`I$kr2@k_T>E&BHD96J`g=-xmZqnNKPq`lhj}L6+-&uB|@V0DRd5VP$|qC zxv6-OZ~np?bljsYINDNQXDI?_Tw@w~eo^6+hYR4XKf7T1qUjFq(RQxkA@B`<#rz7c zL1OMw&!U73BNxer9a%*g{ZFatgvhXtURMLNc=a375xRS5uL@HAYefOi+EVd+1Tn&<;oDMz&$i z@X*jwIvMz>{H9WtyF>4v@;q&K&p91Ema@YVSg+Jmgzljn-ovB&0q9JoYWJXt-m5Nl{itSOG9@K$8RB5$X4UX>px%e8PJIu58X$i?Ca0!|gw6c~%{AZI(_sVVwKhR>cj zj61HKxe$Z{qiUu!doS(d%l=s%?iHw9RIp{!v6XkxT@kvlcrEgdOG-dlQ;DgPt!2zGNXCHjJ01v>w zQBMJ}H4;dWUZgsq^N)cmmt27>;G!C$!(lf>6$VPC>ABEZ0HhbF3F-XTOD|Ady&^^M z3Rp0h|vFzkU)gzX*K*x;w9vKX>JP=%SMsPzOJW-9lqt8*W3v>G+&u z$&RK)?v0+Af@4gvoQ}el+LwyMuBkeWgJDI)Eq84*NImsUDFX&Q*YI-)2&bx1?E*h? zDGPAHO4KDUFmb!a3`9--8QXq{PP0WQj0Wt%qiEYgLAfE2!cKNhz`hcPNiH>sPYB#| zu3!rGcPNWZ@fL#Xab9h)SOYggOz39i(#-bKEM!R+UtnsLIvhkjNYF@Y^jF2w@SEO7J--(keaYf1cOnecEbpAsUbfMV3OFbXpw#F;dUorj*|IAUGUX=0a~U2MUtfeDIjTzn0>1 zp$Fh?h;U5}cuPHBG^L0&B-rQt%_;JR(fOFi7k;|=sxM_D=TpjslXBr?#U|D`DZUH2 zKxsNN6=%Baw5Z?4#!F*q7BYhFBCWkN6Y1&HadV(d;KCv1cj)3y%Ye}k$Wlr{fns)Mw3MSd^lg=Wd^op%|wbzF29yuHke>WWLsu(@D69PMRUpKV4@(HKGJ zE0Iop^WrAeZ#3EM)1+a!%)ZbEO8NWE*4#^TBC3hf6-mUsqA$8$iU!Nn0s zZIh@sPxws%Yn${ryt;PjDSF|rU3yt_=ma{7zOAtrUT#-Mykqt_ZtH(BPvpz?nb`=q z^fw={O8g$fZ~0gJ?g8u}{NkNVhdI=f!+LgARM=Y|dESUn_1f+|Y#_*&deah!+K`}5 zSLbD4_Tv-(*4{2D`Q61SC1L0ab&o_*urxSPlD0lo|j3qTm#)FD@vQOjMzYv zpK*TWK7E@A^jCn}U9GOnW1R z(x1X$M&`$g5w4~%HufNF#UL;3VMu{Yv4%yzD6mzKJB8iUa9r1K?ZQ~3{D5vTf#%yr zbKLgA_JBED7F1K^A?S#MT}=id4*dcOt@;My9uWS_v$zi><92Fs1$l_ui`f2gETSMs zRtWWd@wyc*859oqQ($j2sIP)V$Dc`$zn&3DlqA%>2-Lug+E>V$bXy1fF#Y-OJk3}rlyFqSm-_p-GtYvVHrlJ-1>r_Rp} zhglmbD(h%PWdV$}_ZA?}O8`?E3-Bz$CWkPoGRjSMdHZ2FL`5hNWmXU1bif&-U?EFx z?1O_eRXfeVUaLQ*L#v9OFkzCxVk$zp%xaV(EK<`IVN%j(lQBU74T)03ey_ll3IpJx z8_9zHrCmzLlcw@2KN^CppnsW#NP2%}yOaqe`fHc660SCh8j8MMdIB%{8!XFZvyXAg zBfkKMy4!J>l3_!y6oFrs{=%NS+4EUE$(2aM;xCb2Aa-dY$5}4}32E?-*_BTd{IPnQ?uc?gN*`h~% zMxE3jpw^MC9vvO5MHr1#qCX70z&kW%$maz45SD|pU_!($*+uqjc_=Lw$QM9fz`jnG zd^nkqQ-+qYvrB&&o>4vY840(&=wG7d^gZ>h5yVUxS6gb4-k{aCD;-4<4462^u2=q2xP+cN48ebjyd@yaKV#EY>@jr z63G0Th(=56;<&x(soY*yfq~oGozo>g;gJt$JM*vyu|*_a^&M_*XGANV68+mGDv$b? zFVk2=G@>~e^KtD($5g7npn*-PXF&s-S%<|*#Y}{#1P=sup@Kkss3h`BE@inUI}&1^ z9CM}h1a2BB#e+l&d!h6P!SVNzTIS^%%iW1ByC_p)S&#WDBnzIIe3OOtjsUCO67@Ok z(EXi?KKs9+mCOz*6su>f zK8>bXqVIL-KcX>Whc=;L-KN62g8!r@?sqDWPzRxP3b40_A4KEVM{u(X>&Mu{)hfL} zy_wE$N%j_r&Lr@I-kX5F!{)yuNoELska?gC?;My?Mv+PT5}Eq{Np>}ZKc_V@1x`gb^Y@VK;wF)UwRi^~;8oi{CZ^-3jf0-!Vhl`PJA*OT~ zH_k4+*z55lTg_=byHctTYE)B}1-h&b>lA*QT^NmWpONooSP z^Z*@0Lf8hcOZk%>FLgXd2v6DpuHka%FgU~jON2H&glDHQ zqy5o7d-~VncsjW4E-M?C>Ko2$^)s%dL9<%k{B~72KD#g$PbRH6C7m`M_>zEXDAR$Ntiv9$X!I3)hCTQ8FPDYL7ZXf zwSW;Y=vKCpgt!L!Sj$BsxJZ!ku76&JE_sAmOq`i)z_SBq5|ZV?gfFv#P?+##tst~= zl36+R{w~Q85lm!#SkCdTUg~>>MT~rq1pU5C1_H zXjB^`{H5|wmSDU~dXd_W&i`$f9OHI|s5$6E)KWA*wF`ZS+Kemb4}?iqY}Y(S1 zSTCSO=vlL6%8oHaRYzt|QbJf0tp5!Gsdshdpv?-(L)3EOox-6HlUH`@X(u!um}Y!T ztH0ZE(IxJ)yGE+D=j!}dxfGTrYw|eSgOX20_uIRj)`+Ej-lVM$hdSu~cdT^wC+5rk z`;|u4@V8SY(pvm?CAzs3WO|wM(4$~PevooDc$n-zjU)l3k&qJr5<&fghfxceRq{Y= z@!5F1{?`PE$3KaWOgu(UMwn0$L0Gz!EiUw9>yjAi)Mi=RtWB4dgd%kw>42l@vUbfV zC=4DJ$e0GZ64q&qushYmzL*ZT8J0A-7h`j~L=8wRYzs`INe#AC`0Y4pgcE5hEJ02i z8XE!y?$M}pK;Lwk5OyHUq^6*1APB}oP}9fBP`Vj#uz*P+Ae7d{7Rzmyak~x-L=FD& z15PilmBUHoBJdLaDY8@o+hsxUs3`&Exv&K2rK6{`Ia3$7i^j~=7&8;Yv05n|uryt! z-i*1mr>3Krd#)Bo=xPpvfrnFa+C%ZpS%A4@3v&FhW?V#Xf3al|nILSKUWxy)Q9s6~ERS-nsNBuBx$ILg9e$mP(x2ujT4CWH1xOey&7~y_t|84#!^LWB z=evFY`=QNTg9nA*E;UdL{LK%Y@>eSre(CJSITIp>YG6cWJQB&8!tJF^xtp0Eax z%$T5r*l{Px3lx$#Zj7WwE6Rw0Yj};EN~jW}G1Qzi>=c1zADDnukA^)-FzH1PU?@bY zqwbngi?}LA+fUrar>VCpQT9-q4!%gn0iA!95+V($NTO$8si*KRUEpTWB^ufti9<%N z;Q;CbH2>L3iNDC{S52P6JNUr#-v0r(J(MgHbu#O+24g?Ny|5}@e}7VqEMaP-5PuD; zh4uT17c~e`PQj|lMOBJxm04(!Y#MBjf)+D z$?eYSAo9`fT!|;7OZG_m>&-$6N-^1}t;pAG(0~&ri)Lh4c2<+L9f65T zu}7Aesiznw?v*klln_5{EmP)t1m&?s6dQWwD)Yh{N0#u);FjOQ#h`<`mm}$%E=)Y1 z{|;O@dv~M9MZlreRcJb%CkwaF{@1xWXpvj-YiVTJjhS5n8M(R8z3VHi)=nmA@pe zW~i^2E$r?YiTf%hK3d!<6nFL@77Ri!BQhq58OfBthe^>5AWCrTH4f8T3_ns0X8aam zw+^GHnu0e5$zcH}@F+Ft z6aR%E7Jo*5gnBZp#QY7Y^Ftr_$D>Pxk(BCe1FN%vjASR)yA9D<<&AmW#=9M&bU)b| zX>TPJ4A$3gGTxjnoxNwXTboT!7vO z)B;87LISeWFDk3Gy$Y&_C|nW^435O)5p(n+CDwVfsGqdxcOzNoHLe(u=%wyQ44vW{ z+TduH&Ql=%pp|T<%Gz-7-V8z7Jc$dW43uF0`(3RsE-J~YT|$@XVtp|k8&JqbPhSJU zWyFN$AFpQ2Ay~l5yknJ;#H9CYdj93eXQE@KaxnQbJo0f`-+6^bjoDNV-xCHJ>{K81 zfn4dnEM4GQOl4`gsNFd!h$Pj^M!H_8ErbYY{wbn|?v}&UpBk_TuoX#Fh9};77x_0kEBkFbaPiKj;@+*z^a) z(#eg_;Hi#b7Msv-5GY80v1cRKFtTh?neZ zE+$y=)dZ(Af)r2B2#yp>?*s(NPoG3kFU_*IHPR9w_G78((GN{YAD0$uVrzrFA0WpU zZN~^51VqamO{nEqvZQ0%df*(6KldqE%9bjhjY^g}8>Pe8NaxMCDz8G%ANLqOuP@jmq^B zg=ix&2BmQ$gZs#a6qcL=XxfGp=Sl?)f!mqPO&3*&f38(5)FfJ4HnQ)fy>ulgqYS9o z(4Tr;B1eI%<)?EsF_>e^-bZ7p!Cg_i8cbC7=%5iqO=o!1DKv0wI2GkXqWp?W`BCP! z@mO=-f#yeR_&YFyyh3k>|8nWr-lhq(-tOX_TT^clq90-+v>FqkvGS|Zaf6>nCsgE2 z4`3UF%kI?&?65|<6sHOIabN-v8iN_l66g`wT0p`6^rDLNTC0oORbo&V&{V}-RKeeW zqaZ~LqTGwmL!s9p9lQqj(UbPiW>Q70%bbNsG(~cn?!T_L7Nasnw;_7%RYVV~g^`O$ z*g!%}!*W0FT-Q4@@hKp19!qv0!)y7UE4xUVVhs)>uZoZ^h?~PnFI65QwKV@oaQDk3 zZU0qDGa(kfS&NU6waRZ|4P>lnX3FEc0EpOWLN%1X8BMtPV>GE_r_%+aSzaLvj(}RK-eW(X_qSCeQxZvWG zSj!23ua4yt7_iIhH)$H~xONBAa8+|`EB0I_=6INk@2k$|_rpH8o;3$2HKzMm-{(F$Auq7-95}EJh0!ik4`Lxf=R* zn*9A(Jtmzo1-?zF?<7&#)vZ7^;UJWTi&M)He~EfjI%5p{V08=bzevY+QCvaMND==7 z5pi6_$nDbOju7s-oAlVTl7_`rS~+F}N^zv+W428E7VS1GC-$;d;O+>i-LN7Wv8=!x zR%$a~MQD~9BZe|rn2GCP0VV`YQcp@}EP;u1V{#O^)QJri)r`NnZ!;evcXI<2SS zt@MDXEGY=P(k{rw*cWP>ilU2Pi>FI2v%z1`?(l$sW*sMjfyFEd8;sx!Z3tjUafhf* zqHh$yP@AT~d39_eI@Q(P^q{S-*nk*4gMqkyKOu7scOp5qHxdJ4s&c6@gX+cO&T$&ZB&f65E=Ck zmyqeZm`q=i49w=AVJiB$(4@m_KxlI4@gBq*g~l~ZA0cm4pGN6&Tdx8LtEmD$hQ~EL z4#rC4cc|FsP`XRNKG)WXEa5g2+_u5%QBPKIOCu||)%d-M+c4-PeFW=K2Le4p*on_x zx!NqMiy~h)68TFpYY=;LWL6M=$T?A=921q-6I2>aFuI&N>7znV8Zvb_s^E*or;-_BtBDHrmvPEEz94RSj0{RHfV#sQHVX7ubjN1K-Ly^)d6Op4*V(WE~d66F|H!`6vKWt%q7$A=*B^@!>0!syt6e+AbH<}Lb1 zf~ZNN@(3x`qFfHKRNzP>jFplGS-pw6+n*6W=Hi$_tplPK7yXqHpzxxJ2&-6!Qx-`> z=Q&Y63sD>5(G?2qX)&z81m*PVGbwRgyAzLjK+P>j+;UVkx(NrC#UXqZ(ICa^HjWXR z3JLwVx>UeHi#=nJ-181RR7>|+!D5x#%<>Rz{*D3Z)bl9_!QOBB{8P@G^65m7V9|rH zbOH;gP2GoL^!2Moo;0v#<8ebJmBNT z3x~+=9!kT$es_`6>*o>VU_tGr)f$Qu3v&+9EfrxNYsT2^RyJjeiV3UTQFnJQeUSxY zXZOc!-qelH1MbT|=$1AWpg+OdR7p&b-*R!TA>4E>ZL;aGeJK>@9*bf}C(al*V)u3D zI5UbIJH=tR>}$YvI>$KIn{c0Z*R-SYLxFMGJN}GxVWICKi*>tP0Z6%o7R@XE%1V-Z&Zb>WLrSSIPh(wLQjJzPl#tt>qWMHL2D5JnG^-bg2c z)9c}+bEZDiR_tTKW+*F;P-90kPMY=76+h=|U!{bK(s@6c;%PK_gQy<_v0voi7Nbrv zdeq!wKeKeVc2X$%Fsi{-<#5&`H`lf>Goo<)Eji%)~vAOJz%C;2(qX zETH_Wskny-1z8|q**YE=QzEa-!Y@;uRU&W7q6#7^>8*QBK&4x-aCH@QqA1`tly$4- z$F~@SuqjoL9hq+Bo@$Z4h=T-5t62j18ghE8@aJJFZn^-As8Edo74p*;9rS%}%zaSZ zVITn!(XCXJ1ZMUCWE_b+<(rWq=$AeoyT#)V)VZj!2x`Z4@rn;USMn@JH$r6bp2D1mjBAlxcjY(?oy-VOq3Q{OgW^612P)W zBD6auVXz$i>9mVhv9X?W&ZA8CD4ThYvLZ{^R$^*$*}sih!+bNUTDE{SQ)u{Zr6h$a zphZyTj{`hYP)f$bpDS#ee`S-$j*Gh1iqJjSca7}OZopZKh;uBolATU{e0XMRY-0dj zXL9#0W?61D!UC}{=EtJgeKs)%cTQ!pRsigsF*ji=_dyU91tP{GHW1DHB$iL`oYjD> zc7U2lrAcii6L;5%Mbai@mkUwLhn4QzaGoW=E|)zO{Ms-*cmiEDQg!Cl!I)D(IweKS%4vY>3qVxjAj^lnrptqZvb*O-}ksB!&h;gR_v!raj zzl3ExbZ~PHq1D$mpC`P)boGkjZHscQ!c@(zZ+GYH1N{pv{;~1>>bU$)ZkHb!eMKz% zH1Iao$FaBV6xnTN(FaS>v-jarIh+&UV7VX1(KlFV)E51eWeni=@uIQlJg#~3$VdC1 z^5|>u%_`hJ=QpE1cf{3d$F|L|HqFDjbcM~q?P`}z+Zcz6GaKLO>!RKlSDw(vnvo0Y z360>|LN*~sFdp~gsxiRnM^iLsf#X8EA6Gj#@zG)20|#DlorA6RX9BI(@NTFCL>CZ^(V8KI)Sm_GxYmz`4tb8|7C7<=^kD-5AUtE$i=)!G~zF~Zy^;7jH7EsOo%A_>BnCgxy_I?kRS;pWm@Q3*smIHP;)cNoxQ(|h#&L#oer zU~{6$PK|;t%doj+*WZSO!oSwNmLI227MocAf!q5;Wqt>8R*$aaa<^il833*qE5_}K zn2=eE&r?@|UPUN;rLG5!#$7bi&Tf1(yY!!^&xzqX4lhmKz}HD994*gViPP|`H`YP8 zsMNh{4OFez$wmPSvWaUcJ<6<4Q_NULn05>=Tm|aNiMhhnxZh*)Q2@xQk>}WUy$tP< z(?^8DeSxbT!7o19cooziH%$V<_vvF{MmvxiF5#Pu>I|qq_?~44FEo{)u21_Z(U)g! z!K)-K84VIm(zW_}QhvoAKTb`CrFS@=} zHcuyKyZL&&=nu~9q%(Y*8B3?QyYy!W=(R(~+~z!o6O+NS)f=bIu14aYn$5b6mNuQf zsa&t7;@#%Z!`Ms~Df1f$+g5QN=P<4WW;=XsI!sN0nLv1!5S(Ak=D5c1pe@ZV-#9T` zj#gs+Im6|E*?R&hH$|nRTm+wli>1s?EL{%;L@jRsbKOt62`VB;8UqFPNb>L(EW zEG~X*(@j*}4W0gfh5rQePf=&X{T_4M)I6F3DCXCgcdU9fP#40#m-(+!t?=In|4z*h ztZqN*}*lfn1h;eRV(+vAzGtU%tsMM-Sagtc7@mJbI?D3GW>B+p{jQp)@FidxqBW^ zU&MC$WaFjr7W<}Y&yOd(+-`XuV*t8=Lg;b6gB;Q2!$paKebYd%de1N>+crB|IF2Yf4AkB|;mgvo4(5(4 zezi9Cm|IW@Pr1r9N#()=v@fe41$g8NV50AOA*>jdis=tdQQ{PJH++c4vJDbj+RNe^r0GqwnMY3LM>S zEm$mx^nO$N98?`d#Z1L6c~qrI?+i30Q{@5uP=-~vj=~@ZAdO@jhr`-*JTlQ0I+hv< zRzp=wq^ekhHBw~>zra8VQ01UV{7{{gJ)G3-=}`WrVf3crNMa$$Z_bjFxW? zOP}R|zEe*1tEh{Kod1w_iTWy0TV2=SqITWw*phijfnYUM8jxH(pynD=OY|u&7R@k$*z3vn z{tPo}8l;eE8B$1~>E4n+?!Ar^74gGA%X~5EApzrF6x)A$_-6y8{m+aCRu4h8;+-71 zBpX{hcv1O!q7j1f2Qe=9LB(XCy52x;)XCiIiAaq6^+ZHGPW~{K+}bIe1eg!69;rsm z*dq&P^XO9IWYj<$+eS-*bbYyD46b+c=!rzDiZS|I%4`*14&g4LQ$e8d>K~PToVDFb zJDYYec~*e_>^S`6DX}YrTguk^GStA@*re6c?JuB9&}#%;itDpB8((+iJ}J!y?-YN? z`k!lapK?pDvh0oF#;nbPCjDZMY&AP-P3aqN?MHv|krx~^pVZl}!Xa~@tT z;esPk7Xf%(!tc$zgwC%uo^s0=VQ$Cv1FP+OJ+>dH&Z9$I`RekN5fy1ecEJ*S-YJRg z{Xt`cRB%dIJLRa$6k?W|lW9W8C53*^Yqk9V>{E*Ss3)o#Lk&qe*#r8^A|L!!{dni` zGerMH->q%!s_cSBEIN65=e*XBP^_!g^QS`Q^;d3RzBgb*Wx#_*R3?E@_hJxg;}KXv z^-e;De`9Jy^eS}q6)zw)OpwQPFDvShuBxUd9x>Uje_C-w+X{o_3~NU3t}_Su?#e$m zC(TaSLdBVGe4!IwV~tzpTEKWt0D%dV#7{-fHQHSosG74uYgd*|;f*hl39q&Nf?vh| zWR%wut|h;K95R&iG51}W(2w0ALPp(YP~c1EJOuTe&uiR|$!BdWhG?;&CuW?51JsC_ zKrtpgzFSwV7e>5HnVj&rzn2Sbz=r+g+GgfLC+UYIFC1t?q1gtnu}YPe-f7I)y!VgU z8KS=tFlNP>#oqK9cQMFG77n$>X4M~ffBz~+=jllKsaucnq%4U*OtG{#H2?`Vyqj*x z!2*-JJ+6qkny*W5pDS?im$t`$)uP^S;k~E5o?m*1ta*Z`-acPa)j4uwvhZZDxqYWh z43<2*{^6hT!&UfUA9Ed2$k_Qh2&V+w#;%j>Q|Ia{gs+bzlVTOG5LR)|ipTg}&UZ0a z5IQHiRgx?Z7xqk5q}Cplg<~TvqzlxjTYIF+D!-%oA+N9**;$}M_vhMwS&W>QvSD9k z|5w7$5t?2$w@>@`c=wm@M7Ln%N`gx+;8H&t+08)HmG|-<$i4D59$ca!KU+si7@Z(a zB*7^h`e#BzcQgqNeH&Z>y(h7P_5}6)Sn=UxgAwpo*E)#9pL2*ps+t=xxJ}Pm8!)DE zde*JOuXMe+V<;Q)o%&P{dyVej7-*UT9j7RB={vxs@0EaltK0+I2i*gSTAjTP%J&Yn zF$GwHSv&NU6{*#GYC8|+RJ>K&FZn^U>yP7_BMwtPNBIvcy-$o>gH`s+6O?z`r^;TU_AFuW7gWLDYoVx za3ofwQ!X@++o-BGmVbYs=?85N2^Rgp$Qh0gS=|aVLev_oHoGNJ^PY;gxGUXXhydXq z*pkpHs0^*Lg)e|C<27)6Z?vq|Z4a9j+j@BgP`20My~n)NjhREU?wxe-F`w!n@NH`Q zUMbbqo$6VG^o%?2YBHeHhamrTF0=LCDx14G>SZI9_M~5C7Z~~N?~DHIo2jL>2F@>= zUaM_tThpNmp9FE9Foi>z@8o=ftPL5vunrYnr+C6H^!G+vdM(R}qAf34mgQmUrk}N`vUQA0OP_qSPi_J9e{0Zl^5dq5+*#W{Pb-G-Y2Sk&@CV?w6lWE zjR420oriyhazRl4ZSwZV)9FEsGW`?qAHgDKZhC}e&R+D}uY*VRR68sli)E|)B%YKQ zNQFJsO}4yBySLZUo({v-B0wLltvl!b90t ztG^I5)_2gx=so#x?xXjh%>_-n#pTx8>)>g5@9@vhO${@=&}~HQ)&h-gzt^aCdm%7# zLC?nhiMS%*$6_6MQNG~+S2zPkLF5k63<}~tLBGY_?~VR8UGYJ3gKSi|6AX_eQ?Z$8 z^q+^TOvS0Q`ShponS3hAl(*OX1heHDr0uvq&!YeliManoXbC=TYax78TH-BXAkVHf zu5+b(y*k>|49w`f+iAf?Mct`ONl;8DbZ@b;ty62Xb(Xg>Yqj25-Rtu9cuVB=FVwXJ z4pW47K2$lViR0u}1TClsH#18fMC%wzjMkPEs2$V7cjDASKgN>%;kR(jVwChqODcP6 zjqkV?JN3>oCPQtBIP}DiPaKS!r*|BIG z#b7#B_)D%e`7F^dcA0jZIiGf1RMhi7?y?9M$B$wc3~Z4eSFpLjXTy|${-IK}wrOo5 zxOb}4VjmIs23h$3FFGB(03MEX+81k4Zi+@1Z}^)X2Q25@_P;sSf1~45Y|-r?HTc+Y zc&qNPY4_C#ZY6a2k~Y6Fqud+qa@FD|Cm6f($$2(Q@>75Vm-3>axy*xLjzim8F=%Fv z7(6o>pB?|>@sTMh_XF%ss3|!QXH8rC+m9@H6h?JuvHl@jnn&yn%+1V<|MMypWYmPX zgh_$wRIhIJqI-$&k=-XlwscSG{^)j8-n*T$AfJr4ettEJbNR5gxYqs=$}Opjxh7sD z&GD7R15Le~)EX<>73e&a=e1r}3`bm+YHFs)Azh1T51Kx?-V%xHOyqgXyv5$=H%hLC zUxl_vwXJgd;<39EmD@FCz2S&`!bdg)de8F4u0<9?F+$ZreDLtkWUuk*$I_7Tb#_7T zM#1(c%MV(SaYk=EPJJm7r`AjJq5r(k*unpOg$Mg@MVigyj(wv7u}ijdqpds{UO+nb zMt}6=MX;{mc)j8^n%f08fqN5l?=x(zxxR-iKG^&ilZRJ0Q4YfU^kb=c-m0)`<50@g z{A6PTeMMPUfhF;Zx;UZhZ_I3;8=G{!SAWevF4R8zuf8J)A{C0e?tP#DD+Vf=x!0p= zfz$fGe3fypc5PgcZgI*EZVo$)k?W@iz@cae;7v^fXC?qT2t73pLqayHA4L4?(1#FKq2-Ruyw|J>!%MeaTZ^OI9I~9$xe*E7yX>Wy3GxGWYc>& z={plS!kCP{lM5n~573ecmGiLVoY0z-i<#ul`C@)E4>~6#u_VRlbgVU>T~V!XQxhmt z6YY~U-i`Fll3c-$zH9fP*5kh>w7Be9w?v?obMzz9KdWSo%r_s6gdOPJ$Ov0f*S8)& zEE&ef?hDEq?}{F{8hbOaEhVVovrT#x-JdHR@+wQ8sqcWh{alM*|=b`^{#;f!OnL9%lUI#KWKygQbJEu+`8npDiX)bZZ;G zmhf3>6r;=8nChk$3C5PMz!ivXTF3Vj6-PWB{g5xGxT>aTY=vtl(!|DHL1aN2M_>85jm(Q(Y3Gwq>Q+IG) zbmZyh6+ONrd`MA;rHrbDCC%H- zBTj6gd=_0U2NKq2we?erbR=||W?&#}X)z-EVmybLF==DK`g*{cPE-!Gt-);DG}=~7 zWzyVwl`&QXkz__dPU?!C74docRU*>}3qD>|?P%_&$@TMkYz~i5tGN+XEi7t&V^CvG zJbMO^tGjRy|Dujp}k?a43onx5BOEBuV_I`qB-q;nq5w-*sk`5A_)Zx!9`2#*g` z-B`R3k+><8=M{CTFa~4`{+vsyA!aNe3IqByhp^6aBmp297SOLFzE@=VSFaX&6kZfL zIQ5gzp;GlZmPS(uG&*?#C8fhiRmy^iU3mdJY~tTZpysG-(wC3av{OYqSlK(hwi+ z)cfTy@*Kl{3hCZEf!qxfrD5!% zh-A{g?iq<0Re^&FkjpVf z2N{~wyD}Fk%3&78GhxgzCre_SeN=o5xh-`@3Zrk4s6Ar!26m z-j`r(mP@H%A527Fz>Mbl?#^R*di$VMrk?GrNtsl0NF_TYh9(XsF8zrNj4I4jqJ3zt zlxcpvoRmk}CBliZp!MxSuA0b4&u1}B2p0xX!=A|m@Y?u2b=zhzmDCGmPtaXU%!G3pRHIUgja0A;-47l5~A zl-2yjor$5wLnfdfG69XxgF>^DW*nisQl^<|p#u>2_I#;9#=Q z#^6UIjvtM$iMG+jVu(DLx&#}uP!S54vp63<`bMhKy7S0(Yv{7pBs>Qc&N{$K#hmoc z@|~&Cx7+twPN|*u5mwZ#7#a!eMh^*Asjc7D`KgnN^LfF_Y`cnl`XN!y!y32<&aS0p zx=NfBlc8VUNcg`wp(~}4UrmiM8#$l)%tnrjeu`0RO57+F>z&%QyHaN<3+A$2Sa-%+ z#Xc1MKn|MXrEX;e9WzJL9H4MMw1sTbq^0`avTkkt3wp0<(~YbZ$O6yy|CSva;Q+FkfhZNO68I*+Ooj1 zd`ORfffQ=YTA&soMTXWnLS80j`x@ezn{uTVg)DTUxPHL?Qq%NN6*i~o^C(0l%BQJm zYI8G7kEOo3#RB49_Sz<(q?7{`0>4AKf4)?Xok^=Z(~f!1=3B}>+M7;YuJoZZ3ebvU zgM!etyEa|bybr07K@qDLzsYUDly86D#+>jrimV)$>J5z51@!>COlMH7U{x zZ2*z|%=oq=x;@ue(F-3fcSS!5qKQ%y=aWr=(DuZA0R>rm4PgElN6cy?=!;D$G8T>( zMJ(h){e2a2AXeM;Y!O8WcwX0|eZrfIit(;7V!ew+=RZ4+Mwzgdy{+-%JYrL^;=Ddi z2A?%99psX;i43M)eKcqF=p($E*yZVHIGlG>Yd(Qdv;@1K9pvFa*V^9YC=vBtj9Dn7 zp~MSuNe&pfP!WV@DZxJxl*V$Y`E8o8x}+xmg&{@IvMLtg%RxmpMMx~p# z$nkMn`=t{71ku>>(A)b6w0@SR#4sJ=4EQjy|Ch)K9Py9GiniJT8SfIcjgCU^$E`in zcHa>)Rr*Vp*;&B;Qf16M{I%%wlZdv2(f2_xEL0;|!k!*wfS!01jpnO|I*KF|iHTlu z4r+Cuo#ZuKa>|N`z>8+0c_Sey)`xs)av`CfcEKj(58jo!)mF_ZX~x8YUjbX$8xx6D z6UDF1^-qKo=txQ?r0B)Q!U!ZHwf2jN5C^Vp=MeyRaLH~m0y!w7T}1f7W;Dyt?o=)@ z`r{HK-E@XVV#&r~37=u6vZ}^l$yMdi)td}3$t}t4{D_rNTlAP+Yk!6}ul}|-dJvnR z2W@6sw6?Vp9XT3-eA*#9k2m^ZBxy*15n!w%1ha*N7b#KPk)c^!O0{PuO-bDvZJBKe zorNyHSibiTZx`)q48JKBav)>g1=@(bhXt0h^Qxj9VT>;QDU9cN5g_&<#jTdD-{IXX zNm9ex-`dENdVFB6Y8nQr+9Sj)9Epn|4B`fKjvS;Q_h{{2uqo-#Perm%YrC4wPehh| zLqA5e#I8=47x|*MzrwFy{|j&r5AhkdhPbkOTTjU7FZ(Khbz+KNZjEW(A5w7E+E$UB zU_NS|tpp72ul_qr2Kx=eLr#0ws-#1KXwM<@5pwjOQ zFQnZVOB&%tCLK&xtlDP$K{xi z0knlZKD{NBx=QYsj_kaZNsz5JhibnBGGmasGuvUbuO)SrY8hL$dLx3(Wt%+sOP@KP7$tL{euU{WfjL+Ef~*R#v6of{KPYFiR;$5#3USn=T}i z^u>X{ok0z+rO4!?M0i_Is#W3O@JN16Vm0gjVpauL0xe56+3;6DTFx5O{Oo!1LN=k+ z7AHtzme#q^mXIYh^2j!4$hk>IEYq%67(<}NJ$05N^mR2oIyjb0wB%Y@rsl|JlK+(B zVPMEjpa80DVJj$X@Q4o{JfBWcv+hdo@>#jItI7I(?$hRw{Jp_YyWDkuwaa;BGC9Im z0sDM92bFHPKNMOFpx6L2qs821D^rKp&4c0m&aYTJK}kB5?7+s8%`pfrn@I$Te2Lqq zKQB|>m=(&Mbyue0Z#*ImH)poOU*uRYRrUpf0_3@}5!|GJJ}bMAAW=LE`j}}jR;}-< zS(ea6%4BSwn2Ze%7rU?KvBIX4J?m2WgOZe+v*NKoHc4^SDSq|RW#V(3GFDJ4ke2zH@2ntiggy`tjlmQ=q`+>&<3xCMEF{53CB+)AqyVjkA3461s)nO#dVO=Zu@tHgQ3%Pn zO>IN(#(QsHI8Wiz6?OWc5bX={mXX)+|E>bFH)kz^eW~Ol;Uy?~i72SNb6R>I2vvU-Sx_`$_jW+a+nKWG z-rKJljPH%`VWFkpx<8{zvU5O_8TjOvW+6F!q5v}g+0dQy7OE~hCS@)~c`8vUx3B8C z4L3r@m=V;wk=;scB(BxiOzt=khTMlBw^$=j+$lZRd$w?Ib0p^R0-L32pNJ|~Oct@O z?a#^=Y=S`g5_-Ttkwl(nsb@kp@{7`_(a9%1q#muUhTk6h`|`qHz_4G}&u|Xu@wm)) zL6*ZG5wA=9u)mIv&3RD-vj4F4qD8mfk{Cx9!L8drVon-}qKY8uDL^CiwIQG%7)X8e zDtgxAS4ay3*Bgwr#FIZJEBo+9R^0}lG5$Vk-b&+AdA`c|j?e`GLpA7QqK`@RP!-M2 zZAPc^X`n2KWCOoF{$A%uWsu6fPYthZ5k;z}De=3vU&Tstlf^3@iE7hz= z(W51vxKok1dJ=QsO+ak)>GK_#EUsH_4`;JHOBR*p?&w~ zwBU;k8I*LcYD>mAwY2B=ia^%AwSk<8AJvIA)wV!vNonGn^sE+RzD_T*QGo(bz4T|= z#ll4OP$`^Znx!vwIH;+@OzWF+oGUx`lM@BvdcG#Uz2JfYEPHW~Z73)IEa9#hX7 zUdT*8nr+_`==bs?JU^@hogD3y}5c~;_HB3MDXK{ zH=C;^e!5KX>zRXX^|JLST|3$Q7bthCpaIJl1;}RyR;kL(k8sHXfy>m zeeNaNgziuw6-b#l`ZxrZmrOaxbIHm1a(kIj(8W`0I|6uGmp0$VaAQP_Uy>9YMpZy7 z?J>PA``kEg-$nwo=bCl zZUNKu*#v`Y?NaZS%_gS;kw$++Q#+?dg9L?d)h&YZYRhd(e?KGtsR*Cyb9+^K4G zsv4bUjr3Y-bmqGk4WqoD%M43Z>wN^}f5J~u$ZX-r0!EMh4N`EJV^_W|b51=G3ZSF@@=7xO&9y4ZbCPuqq z^uGzHOJ9-rHSVVdXWL*V!ZkuRn{1%eOe+d!x@RlK;dk9KE?%g!G-pqS#$=|sk)!!K zz%!d;`9?TYkm2&CQrQhh=p6aUFtZEVQp0XDn+=Lu1O3Zg6|m86uqRdPq`8fI_{S@71M}j>T|gaD`OVyq)HnOtDqW%4 zBB;|j+ubak%adrDFw-59Wv^z+YH28opO;l`bIzUG0#>;N)1?+^QnzI7RK&#Dy=sy+ zHZ352>3k9#WUe<>-$fD;>u>y{qoO9Ux>O(09Hv6SbqCd1_7CV%^+=BYR+s8Q zscv9rN8_D6TrpXpEF=Oo>bMW;Yn?)iFxuezOXD2s?FzTxz$ujReQRvq+*NH603e#v zuPuK+c6*NgbM!aSltJg^N2d1;IkBC!MNAaZKr)T zZ9lbfGYBE*{$_DE+WsYR-30mE5NC{fMaq;~3iBUD!NgnnyXCKoS9k{E7Bvuvo8B07 z-$gj+X4+w+VSGDN4%^=2FO>#ypn&d#1geSS5dBXT3r0obM>e84pjMWsd7Nt^A)aI8 z!V?>VG23&3a391nkWqi7YD@Y*y%mQMz&nanz_XLXI966klDFC0tjj!+@ zPhBLjErViDArS@hRJ06#1Bb9o0YNC3tP|z@rY4SV+#xW;_Jsg1QKR}|f+rBLCPjti z5wvT>exa4xD5%hy?uJ2y$g-&5`7n9&M_=V<+N#$EE*7oZWRVXN=`tl+0>*>@3YCY! z`2e4@;QE`@yFbMk+btujz~2r-?? zH2h_$x9U{hQP64fGAdX9GgNakQ` zi{;weZkwUC@1o(sSlv0;-#jO_1l_J4tY@+N6(s-67xc}_&aqaPppKFTv40vztj#H1 zThJ+MucF>933GOEWviWg3bik-pO=r^vm!Dz&v_+_>-gg{^xdoM4F zQdF>VXY+ereMIH!A-h+Hq)zB4$tngIOQ(Yv5qx6wW z#3R;fXT}~;Pj!iWNO?|wuf<3NLV4CL*YYv(V|Z2~yaml*2;xwfoI6wR8;9v+u3rgk zF^Q!U@gFZX=(4soxSY++D4prAVos@64=YC8olSQw5Q>VNj`NJ`G0c731?86*k=RX* z*eLi0kxmiW&S#P5^G)$_48JXd!ow5Rp7D!pXbI0Vc)EB>Vj)3^Yna)kloE*H_6KoP zx1$z?BW{JW71<_p2~Hd+!;GhVRdXhB?+1`?@cN>yXIXY8L{L-q7*A~s9))Ss`upTi z8j1koQokN{8upeyfL^Zm+vaT|hcYlP`JG-tpn4K-PnNs22&pK0Jae=2e82*UNvuQc z`juM!WoSk{VjII!7n@&SXLtfasDekbbRuN9xk5#&)jtaANoY+WTB3K+3`i%{z?mx9 z1`yr{Ucx`JRtM^s7rAx%rK)DvshUl@1TL?B0(&C*3re>2J5Dk(Q4S)*FVeg}|2ZyP zq$P$|pz45(fczM~aRQJMr9~c)fLeXO(5GToPGHAQe5({X*bJw(o+fitm%!8tO{+Y# zum%c1@#L%TXu2x|kE=>ltu9YE&R22=V})#UF!8HeIiPn`?2(r{cwrmHtX?0?>+)9W zqa6|HouU*fa|jvxEuaW4r{qPq5wvTwTQsuGlUR9(Mx3e3Tb%*S} z%Kf3&^?kKv+hO!Yq+(-Y;=8~#$SP~y<|6CBFe*$NSvAKNfWJI(BdNqtQI~2^Ria;> zJs?_A$Wq5m$x9?bw5K$=jr2-BvKOywm{4M$y*eRZX=~x+)iH!{l$o5E&yr4!z&d=j zBPRqUt}2m3B5@hXoMk~wPGe9>zp@n@ZUJNRRXh^!P^oGT%AA!%cyCI6U)5&PX%a7d zg*K>dTcHdiaN^&NH*o?KG!5hbk{oV$7%DH69Ajo%V*T)pAkUaEV=1Rm{L=d)t z#MdXj_K#Nj+c$G8m}j8Sg(J7fZb>h4sXFm8!-HF#pKOvnMen;w=)0!aW~o?sygKnV z{q|x|F^+6A`l+%QmC>qG2a-(eaez-RVNW?=#>?PH{F!QGpy4A#GT6??3H=jg@#lO< zWtgUBH7ZkF?Jp2w(a#sk9|9pW?lKk@$rz{meEK18F5V>32dwNu4yb0Aw*Hc}ZvY*k zePJs=dBqU#3e`Ez&~(|8Ln<|LLe&_<7eXQ=du))2P0~&Pm&%O}w`EQSV@8Q8Sex3# z#$Q=ogq(nRs-(`;rz2n6Dcg|C6j|kDXu{$e#Uf>L+hT+qo7?Sj zF$u($22h}aX0Z_3CfnQXAJ9o!Ip@PrUTZ%(7w!xB8Xmwo538gH<9yh zC-{!NQOXcHVX$I8ahGVyr27VG=G<(qZSxMDvBfqXrwLC z(-AkE#Xe(&$Y+>J^(>Y*K$h$uAS=&;*(bn?fI)pzj^inUKg!}>k$ zNs||oTzMrIzwCQ3>*?|tPby%ncLEZCLEoMB{WBCW5(11*Y3VTu(78tb$KsKOP=D67 zYz98Lzz5G0S@^v9rSRGJ55q^W@qZLPq&4A_rN}Y!01+jCzYDac*#0qarC$yeiN#Tn z`49Pj&udL3M+(GDhq&rO{Tg!4Od>8w4-4FU#(yZl0iT3G?%%J^Ku#Mggw+h_-XUOu zu9Og{H2K9hn-)2@f@UX(=v#xRFmgIBkOVXNh7Un}4FusSITDZi1Wk|`1%-m%a4Q#n*$0o@eBe5lwg&PZ!64%s%M_l;Nv+BJ{~}G3O=6G z;Nuw#pD%B(S4SoZ(ph!PHbS&ru4t`|b;Q8~XnurtUUNdbq2SDVwZw<=uB;%}9LoU2 zE4`@sOZH8`TGO9>lYZ5_pM4V`*CeuU(xI9^W#0tkHT$z~(!HABW#41~YW8K{q_Z`z zWZz^sYWlKo()F4bvu{_(TW|JF08z6o`!-45;^y0zg9WHq-)0m&L9XBJ{fwZjmp~v_ z7@*Mw?)j0R^%iK1{4~^A56ZJX9d!G&_PAKJVd*#nRvc%d&FiT}N1fe4>8a1n;nSqb znQo7^s!39c3B|H~Tv?W6adwQtX*ZyKH34Flc-_IuR$Z*V)O&}g$X*wl9Vyj&#rfA= z7)=QbNC%3b9zfbz6s&xsR`ZGHcziT28wPXP z+LJtw-BcM^6D*Xz2Dqr#U$OUq7;;y#+MI;W$yW!3MOk{3{|{?p^BcsNUcd16?0TL0 zBFqnG!4)Kv!03M?;MYn8c2@}O%IKdHc)*v$1jZ87TUsPWfeG&mbbP-+;N27od^zC> zIDQ9;0@qU+f<$@&f%x6v#xaoRz0_qw)fpIxQ#sBd-kbR_IFr_RuvSlD;hdIW^E>Zw zwdQoM;U#E+70%1dz7lx^`&@!!$!HZr5tIQFDqXc!IGY42T5XI(kTi9f+?Guk6@8 zFh4w)(Ma!@ARIu`ZA*;Li|dy?&y49vWSfk7K084FXB%$c_*eC{cGV5erD_>35uD*n=`=k2h{ z1gN#5C|&RLVy3AUg9BBb^2PZm5!S^@qDf_(%kUJ5RT57T-<-{2Gh7kL#Eh=?z_W-& z$ja^3UuL0FUXd@B54|W*?A`m0=wPu@OLPo4@8MfXcA=j2r3)47K>-JtlD^A3Ze|4c zYg1xH4h-btJK6+WFmeS@&5pW2uS>Z=sf5 zsJmIHUvhr+&eOHOvry|xFv;MrsxO8YDD;V`ePZ*6wc00Z_1x@Q1d8qBVMXMaE2WoZEeRTh9oiU>t`b$K`Hcpd zmc=Tzh{Ze}9|PhdMDOxd>?-R@*{pk{O`*K@J@@=2W#iWYZpr;1y+iNwb-b}R@hn6o zi?8gBz3&a}XQ#Pm$kDz6Vj@g9wc|A~%bZhfQiFn|L^@?dbl%`F6*XwdY;I6OKNk{s zA&Jq*KvVBj#|qEMPRzZ3dtwgzn-ddm8bdHRD9} zO}0g5R>zO&f!A2Qj>oCZ(W`gY#u}7q(Z9&HD0|1-J%0L3nu`8<}GDLH684h-F?Z)XrWC9}gNQn^~`pX>B@ zD$>)MW)8t}(1F}(xig12vES?r4siuyp%zP^=^D(w%1LJH5cqeoM+4^(*@^Bwfsy&8 z$YlAJa@aeII`}xvCU+nbcd9wUau_OaNMeXIM&Yn*ne@VYBAbrlF&GWEp{E!}HI6_u zU9PpG-kTM$2Aq(O5XQl#7c8d4RtZk|f;+w#u;_Io1J+aWXTIF3pyPDm9 z5jl@9=3GF|Tgcg(&A}Yh|K}Cp! z2}R6ypHTdoFBBo)YnxWDk%tlKkknGpBPv^_7ZrP^7`~j6bR0t&IVDr7d^yFAGzEu(YxR5e95w0aP|)2UM%L@gQ8kzxDG*3Lei?q@?O-jbb)omMda|{Lu8$r! zx1hotR_bvp4ZU`(v_xtqC!An0+ zA*X{Wd>eyS+D&`3#*zPW5u_{xvqrqB-GDuA`^xtq26CD~lp$Gg>T#yVJnb8uxNFi% z-=C-5p44u72|Cr7{mWr8S>x=N?3PZ%K|a=+p;a{#!w$9V4Aa5WNgO@Bmd9Z#7gj5% z)~@iscK;8W_t}M~H!t<>|7r7>6}0b?xLm+hvutLweyW<~5`ZN#029Cozyxr@zc~$X z-#EQx1=mT-I2ZmK!1ZPT*ZVgBCk@kf#KHCmUn@*x~EjIz(j})j|EQj>?OHmd; zXz%Ho3lO70dAkO?Xz+(5=3EKoOXwU46;^}BkMRZI_GdyvTI5p5A!cwAq>^MFRFwYdp$5Ni*dD>p%;Rj=P- zIvT~$8&u^v@O3^=7UMU&>*;e+l%=+e;U}o46Bqrbnf7gnMO%bfDUn}$Qo5MiQw=Fr z2-{&jvr`knUOUf3Vj(Ek> zZEjI7gT^euy9tUVnEkdZBGE)duXglQ7XjMzkv4aTZ}@;9mv#5j;@wM2b}w~#t*@F^ zyc>K~x0YzDt|sZ$2&E_DzffZ_S9<-{^JY&*(q`cjIyZSJ%QO}JTMdSbacjdS54ptW z7U}O|9FfOxd$*Ddflz^Mt^T_}tQwhHVMD}z?dMBCzrvlA?c5mon{AM5G3S|E@FXD& zjvMwT2xM$wKTJ@2x)5h+*f3j(E`P!{w6CM)#7aUr9W|f9y~vBkiwW_O?swFjT^|~1zgi7O#Xpi)rfGV+ujr{zq|cky8KzCdV30mA1dNd;?1oS%7peria=W z0SScAJqZ76hFzn1)+wb*1)!m-&ei9tLpTwh zjEp+&5(kq7Cn`bWPqx;RB=N@iGA=Ona)ZW_@}PbvXLU=F-r}e=R+OTo#SVe6nZFoS zv-;ZHY*eu!B2A^rw&cUA1Qs|%KuQ!w`gnOF98`^UFp(2V*_rpd6R?Dj3hVXWX)&A9 zh?4n<21YlN#Z}vMLKPQK#pNQ$WoF-d483ctHTYd3*j*ejieTqZ73M{iKILf*vt0)5 z!!01&fiTKD&CmNPZ*h#=XMNhL*#I2G5}GH!90?iGjaDemiL3ZQ zZ2^eRI4E>cx4tiu4V3laxwBnyC&eHJqoy(o;gt0Wu zbR>=}{S3C&d*M1w4>V0H7S+S4_ymdzlXiK1x(}{745sO&Og9yax(+No<^|3yX7B~e zHY7$2rVC>z=xqlocWV#A))l5OoLtYA3==nzH%$65@?s)Vg@M=1JYo09v7a@ELk_+DHnr2z z79v;)72rqCf_*5;q^A2SzvT#DO|es)!rIMWNa2Xc<);dWo9X8AcQYI;nU*-YoY1)_ zKP?thZgeFhv?+RTzPMfQLOLVU;SGRJlpa6qJU9$fjIl}2yGWNS0oGukhX@v^ zM~TfUg%Va{o*W)2$oBR(HcP+gB~=%CoM{i$HMqt85H@$gC*8?CYSJ8sS_*yacT;N>CTWb*;RMu&l0-G3+G)4Or2X!z%fGc?*= z)I3TRJWQI}Y^&V2aD-5t{6!*>)_Po85bpDyLfe4Ec-b;AQ-<}gkFY438!8g*60u>i z_tB%Dc{+|oac+{c!GjNvOV{y%V-Gt))a7VKfat@71(jRD^xme6^8Ot(S>^q=yeD7f z$Lj9|6L<(Ccg6FbAqqf4Evu6WG2Evf*>HEDJwx*@I%}Y?PTf@ zCCEv%TZMBwqT2`vQB)8%hxYV!)}ei&DeU`kCV0VE6gpUMB1xFIDo?_V_H$I6$aFN? zFBO#>t-*fjM0t*nr{f*bI0fRCNIfk(qFubIX`<-xjzC&hgbb{fLxu2kPZs%~aFt{oAUW2$KpI*9I3*#J>j8dan40f zqH=H(6CM)zHwB}#|EWN0w;-Lytf!b94h&jTka&fNZnJx%Cov5-hX@Qk^m5RtQ?V9w zkC9vFFF&GiQ&1uq;8z|J>>?K8;YrfuI( z-xzPq=eFzBrOG0$5))FEU;VLLY$IEzyTzG6D%Wp4k@mlcQ1W>wz_FG}T80A8hU7Z{ zE!wi#iu#)L6uEkv)~*9Hg;B835iqvN;TygglQSA0E_f}dOfq!oAEi8!HT;#8Q>>F< z+~rx}AsS>kTwL zC?En6eC-%IFvkF4KsPL)1tfZK1KA84xLVX<#@zM?S#41#Z(aahEKpic%S9vj8nlRy zM4zWL%+Dyhp9>wizb>Yu8N~L}K&~PEjy$UjK!oO*shy#*Mk{Lp+hBRQt-Z{RO=*7g zS23*9dPv9#ie*>P1$jNs_?{$yKVq~+U!f|!6}dD>8_Sp5IiwK;ODxycM>q1N^H_o2 zI-ZXTqRRON7cXs92wY4#E3C3fG!+MohPl)lOtfRngW;$G}SjniBLpt&}MT1zfuGo`oqAeYLmN?SY z9r4s~@5(|vM*CvE5mqI(haW7bccoS3;6qX{Szkw-^tO(!)NubwaWGvSn`yzY(Uy2; z;`~^C;LD4nq#anfP2}D)L{B2{ks8N-H9N800ElvWXM{WRUo+mmr$ zY<7<{lYtzHD;3=~vyHD&3^r zSZzBWiA16w)m3n*p!@_SV?hh(_T^GDMPfrYq{{SFt`e`i&)T`E3MuR zvBwOd3WC~4;wm0qK%Uj#0lNly{6A>-t&uZH?=3rqRFb*zL{H{vE82l6m$leP76UWV zb|139%J*Ff@ALRy!oLjZZvH>we*ziA)iwxtrBTiN&BN z4~yA`;ltgg`T8Imm&I`cjw(Qtr#Qv!Xlg0Mhg73k5=NaU8T}C#BKC$RGY?-3r>;_{ z31s~K4x{gjn15Z^L=;;#uSq_VJCAq~vm7Rl9kljNi5z!>E4fjXNC}WkGVp;s{?6Q2xN}Xa7icp7O+#pNRv|?&wR{3KPLky(dvmlmQ6d zPW+0Hekg_Qon2`>P)sSNqI(`rJpn;l99j%q^zfk^d&U9qgQli*z<92Y?rl+*vK}e! zxf80pGfHvQ#Qw>KgE4yj)3VOaq!#@&XCu3aMVs2YMGlO;?-|i!yd!4WqpkQ6A;XY& zBdQ9?H4E4UF-QcukHUT4UHP(Ce-Ux&_qf{Di}J~&JfHqvdWJ{e4tq6xzL}K{4oB+1 zEIHWbn=5p8FMP)~Iv$Iy!&ZGw*WZ;qLBCP_7;A_kG2tvMO*pceF7$)4w5-|PIsq5Tn zTPJo%#l#sRT=|g8u|NY2Z%q03vGuHvso;SCm|GlxUP2hJpJRE*AHj>W!Pp!efF4Q8 zZ3<7G>0OcIpD%{KV?X{q8!jJnPPy_-60vf|XOZLS&=ry6Cou$T*k2_sHIgiZcM=W{ z&G-jRZw?vNLt>XMDt|EHq_Edf3c(aPDP;r+<4=qeh ziX4wG@<)#ETI`~lOVo-(@TuTZ=ol-DphMVgDsf(FMCAA@i_eXAf#uu#S4$&@oa)Wn zM69enIf>4MXkof{(%ISyG{(7cf*yZiPnu8X?&Dv0Z~xA}tZ&f_`W^qG2PCsz)agZ? zLX5v$$NvKUm+`-v{~z%$0FMU!_`o zL2?_fd?BV(#hj7+)j-TB72`~<9f+~1m>m{ji=IaCMb$F`8e2u8rOH&2r>vz=agj3URE)j{FaOcG>jys4w5WC|u zUscGRudTXD}R~pqm}^Zl`vd;Ce9PipVzwCtr!4j zhOrJh{)|%}ogrJaZoJcI$xj?cv4mF4h58B3Va%EftIU}eg3D!CX@$Rg}As6=q95dW*P|AO3$3v~NBo?AV9OU;`n zN;&Fm*FTEBb3POv7v^u8b_0~6J_=rUS9o|&+Zw5Zg=2}@?;vju$vmOFwEgS6c-oHK zb3VO}Y_>^;bcpnAr_xtRdZXY<9#sY7_-&EmnaXDoUReZF?PKUg*aGKOOa_J-*Yt10 zFM-S({vzCrsH<;IvP{PNkwDWd(Zs5aHTx}K7qO>Q?}M>6HAAA4?ze=#39Vl*x*sVk z@b<`N_jVd}B77zkuu6=T3jX?A!TRps(Po#I2xg0H_e(3YEYA*;tyu>og*kTyuEGTPlQZwj|5d%WR|up_ z`GL>sw=gDE_H%yI-&j}5Y2oCm4gpD--zY|cN!Dm~TyDRCTVQBNBo87`)%Lz-0oJ@MF zO7G0@L`7oN*aYKA|-tQ<7M zcl`$dooeslq1!w8MK3VvB~4I}*z*l@CM!3`;5?%{_viVny~60RMWCMJ@8IdpYT9Fs z^Dgg^xJ%5&rNg&Z?5w)-+mzPA^4`Igcav1}bbbz;CEb1_FCDu&w8*EQFFvzFyh?L2 z-x1Hp%?5r1I))ep6G>6Ar>bClrU-V3k;STrq8v5(&ypf;u%?E_YI1b@P~NEA6S~YO z`263^tRL}|+9m7n3FC&v%=$ZCHhAQOs_E*On!{!2o|#6$j!d>qgR=em;A}tPrQ?QN zqu{Yj%GHBXHV;m@RHd{T1$PsuDwr?nE;Ji5lkiGg4p587zGKy|tmnNguC+hFV0zIq zj(&RevL4)FX83%8+?D|@Haiu}USa0$@KuG2nlr9ZOTAWf@wewB#dpB!~WTKZI&g|Rcr~e&U`4bX!oyV zCV_*CshtAdr3k+TV=j=VX}@{$MbPW+>bFAmRaOd6^;8UzlGF@j)W5A#qFX;u;<78V zrB!80dtE)v(muS9(k}dx(y-!k5oK`}mUiPo0Pf0(A7?p8=X}VG=k3JLe+7>OACi*~ z@Fg)^A~8xo=(vo&KVJ+|xV-vby!ugZXF8|0>Fw&+q>F_^iD0=HZ@7zWvW`m8?0Ced zzq9*OpS~YmL|eK`@n?^vcY)H+78apPuebShR}i~nB3jP1q~3`Gkg?l@gY{=Rg`6D9 z_gF1JkP6Lv=g70^-9U^7;eISlh*=~tumg+&OcV~Pc1y(vUUk&f#{Ar4U;)Q$|0(;5 znVL~UsUNEZ<%#(qoC@wDZ~6g2XZD*XF_xa3`eu`sy-YT$frd|g`R+tnHaj-C$eZsL z>i);4BCBn<3HL^KASB-nMfyYSfraek85<6@u?2QcWnnp6yV;FQOIv=N%XX%7rM6d9 z$LrzHWm>!G18GsCeHgIG%oe}d=6aRFlUStcZnP)PA4rialU`4IquUV-+>THn3O#Uc zoJC*(}DK9=S76w3C(vj1>_cTLAxZQ7pdreWod9yPT&KreP1m z-PT`|`!!yV!KRHHW?va;yI zRg#ADfHc$VB}u6y;R-%CpxfMHnR0xPz7>N@tu=ED-C$+k7>^n1fNA(k8XHMjaUJqQ z=^7MBL4OqwUTF}RI`m?(zTRx~j6&8ww)K46_)+mmAD{5cW)52JkU!^!HffMcu_wwXnYVH9?&2#z6&>y)@CC zU@3eMK2wydV^`kssCkSgzkATC&QsAQ|6;uzWHJ`kD^pZwG8)usgCN)Cpz2UHR+T<# zPSUD9;+Y3WTYL~g-udb6mDt2z8fZ=;7r(GR&~zlw`Ce|~M(M6jAx$#R13}#l@8Rvl zZ-1I;qDyL1&3h3vHu3IzvUp8H0BX=N?4gVXOy2iH`W*gNAi6a!fDO%M2!2DH39P+z z354kvL|}0#RgoFCuLwD`EIRpzDzmG{{s4i@G+0eA@gL+HkSf_lk>4ctrsPV2P=+$h zxQMm?tsd-pnU&4sEA!H-h8T$#_;5QzqjG;PYgPsRS1#QvJtKy-2;z`;&FB+9=ubE%PRvB{rHg1k}7=sU(;uJorRcm#LKiu*1axi1CvBM=cDNv!#n zteb}WNnT3h*HIN!hU13s2PG@(HY#bsDzk|-02Vf;f#+^x5*A_8p$n(St{B3elS9sq zK<*W97Su1LsSf6RpHc7`&|MhHV$3T6^$-2`a{*VWg~g`8!DeheohuF1bMXRroI7 zlMHbus)%?0&&x3G9w?*SEaSB6MFYm6#h48@gmO^{M{dFAb_b3BLg>B3mhFPQVhbMUaFk zDrSM0pzn_Un-g@K+HqxlA=Y*A;OUS^sKn?kKKF*7qA7tjKkhZFv85KaHHGl{Ovxh(ned1xxAJlxgN|~-WWC}&MH4M4~ zXK*1-k;&`UWOvG!_siBf`ru-?CyvTH93d8u@}GvWn8~dqOZ-Yw==;7t!1jdCV@#em zP{Jy{8wJxXV+lkc(w5ReBB*Q9P<*w$p#eUu73#9z( z&GNl8RSBOa5OPzSN33HaCkfqX-xJXMo!-WQ!}YNKYC>&R?26zKxZK*XRz|H7TOc)u zF)Rb)FZsl3iovs-;_}bX4=28=%I%Rj8IX%;U*1j0CyyaDvsK|>V%mPiItl_wGFC{5 z+4CGbp%#^UyP5@0N@YgGDRYtf3(<;Il);nHcy3aV=IHZsBwIp-P}H7RWrLn1!KEz5 zLvmhXsi+IwUCw*4&$4(!&XF!#xViNJH$_YM+w86A+|JKr6=7#}sG4V6$=ibC$=Uvk z!zKa1JaLB+kKzv#%0DqR3XqEjS!v#g=n|JD3|i(XM!XiDtw@Z^Bj5A}oAI?QCpG;n z&g9A?{lwJyl(UVMFXc!~ajGEkBJ|B3;rLrpXG{F3=tkAsa6#gi>eEQo!vTAy$^z5j zfEZSL$!FYFZhVcK>KM{^hAS)FAy4Z8-qoxFyyC3Jpt@`DlxkLt0nAdtZWJ0#(gBt*mvci;Cw z_snO0r1d`hOp4HkdDqiFhxEc!+9&cf#v^fQ>;l7dm3phT+EOpAt+mp6<5D3(AgEXotD@M7s5t9*M*%_D@AsaW z-6W`O|IgR|^YM_KnR9v1Iq$i>=RNNwq%UMJ9An0J0mY0pl1f~MhrCE_q48neEgj~} z*@qPQ+hK`jBR|x-q@GOjkG&JEin{pv5dUFgB2qbhUlpDeuNG#i0$Mh@ zaDEp^A3s?=_84JTUhBAa#a$~^@Y|(`WBJW^1>J3TGSpKfXYt9D8|h_mJk}J*&av$) zy+~)M>x9b^2CVw;^LjLsc0DE4mn)1>vW~R1s4o6g5v3&F6DIBh;Lbp59)*6 z&Wtz7wTpdmGl!Te_5`ML3UU7;~HkWRQ1X>b~ z4ndhIgDxU#*0Yir%lk<#t+>^=OE3qAOP3}q?BH}n!kmVgYIr9%XwPgn_0;6rVB95T zDW_mgsG+jBu(jAF#J0vHjr>apbH;dLs9>UkSACyX-{Uo&m_b0R9_Cm6wdyn7x5Nn~ zYCPB@awZ+}2NBqd^whuUy`Z~cP9cdAZzMjkk35X9WBbaWP#$v}x0klB@!(03u7)|8 zw25s*D&K3eW01U)Gax(mLD51{OVeTxk|uFCKM3!!B1;D>=ga=F_X(N&37rp6lu>6K ztktSthqZK0D1Kg+S(!zLbf!Zpv+PV`R+bQ#$7|1IAloKGKrq{?1_Jppyy>6}L!_Nt zTYd39-I@UnK)PRg;| zllB&uW5HV7x+El31Y+E1E%p)L_L=T< z;eu1m9#f%++R)qBzuc!{@3-MT~p1g3aRJ9l5zkFt>YQs^YdAjU_ACsH!CR86`$ zfk-b0sbvcC0qN|EYEF zKABV3DS~Iw4>ZwG9W0Y*_kQtB^?syEUn{f56FJ-I)UK*N;el-pvx{1F8N1TR)IgHu zJ$9J+nK%v_?7O4}r$HpZIJp_G?ptypnKQzjVa_ZNK@iSh9OPrN3RypWRSp!24Yi_^ z!-n!K{cqV&H%gBG#D;3xu!Vv+mDX`m9LlSQGg6(LF$0NVr?OBu#MG-cXT>^ur&GJg zakXa5=>f5uRJwcx`80iiq}QL74xj;br|`8u_BZ+J#7LePM4%v;d6&pHi??+^2)%?y z_(GYt{DYlco2dfzRT~AJk-XMMNiP3d8}r;Z*s+ehcj@c%*HE5}F#MC@y-dcu(kkjk zuFM>rU2z~cYAS=uwdkmAiHYMFsH-C*3=ZMY;_ho~T; z=5^|^t>vTcc4o^*xyBvR)%sd>nG}{@l}vDD_i2&cx!O=K%zNnvf{E;(*=3O$w^n*PX z^hacOi+&)W-L?o2@yajywI~OA#ulXxuA_=I1DgSnh?PZ`Ko)B4XPlx}v&n@ZwO6OO0eL8YI@OeW#_m&`(EI z-Am9>*;Ti481s==d-@I;F+p?8Kv?jfFWlGS=g7KD|B4nPjuqt)22k8eFu9CMk!dBDH-zE;~&jNUS)#XA+ z`v&puIH+GPDVp9@aIo6f_?4Hc(E!o0dR}iqX-eTldwj#I2QpKuXRP@q40TMSPB;V7 z4^%9GK{Ks_ucOv+cf0tHEBP{AknC}UA0iia z#q_O7`mXQY8Tt~-!?wA!mMHuZmZ0xxFt$F zOpr{&Y#JdX7b~r)UO23;-AaIGE(gW`Md=`17R}_AV5!>p=gZDMln@%+n_8H<6vtWi zWR7g^yB6~i6V%_=g8TnL4JAe5%RHfo(n*%?<~!K(ZI-BBa?Vg`{!Um;>BF*DpbR4k zQdC6j3BKIf{OM4Kn(nXmYSU~4yj`#?puDY{q(g^Ri!PE3!kH@FGV8sNUPgUyAV|mx zEp|0;tqMQn^|&LpRabN(0V&L%L$Zz|F2Z#J1cF;=o+|Xl?8bwI@Lk#!_#yq(auBI4 zwfM1oSU`oA>a_HZ1aHh82`E(_vb3Mw#XDrbjCB63VgF7w^}{k)z9}zUsX(1oFJ#W1 z3kT{PEpq;{k>1r6WEpYp9P}i%7^dp>(H#ffEC21F!(c~7sO*VG0M1&GR7EGw!u&`_ zG~j%jFq#K%E|M!fUES|NDcA1gRcLhvAIm|vHZ&tSh=I}yIbTcC3jWk|`GE;?()X_p z4vCj|5Q-#C@Fniz>!=#Wnh5)USwnA!8t#RvI=Y7Ms4!W)Fi^x2)d)tk+ny(MND>nG zq9Ob2^FqcKwV81t&&>k*jXTWKytn#l-KAE<9 z>~6};nC$D5Wk)5}(A75D<9o_I!m;B23h1){II5#Oj)lDcn^V_6QJF~p7 zBXE78AJi(eI}tRMl{4HOHH|P%6P-hIWHR*G0ZqHJg`FZ0MHng_GtxdM{Vp`-z^q6X z2?jZft$iw7&CU{>5iU%p%W=~Aq>N7e?vN$-|Myinm$PKss+`PmdP;C1J*99VFYR|n zFcL{uT8q6%9?lBxvE*64bWCm>mui(3`y)Ya>~DBYM?`yJUBltS10{sYbV^8F@tpcK!pQ?bH;4rKi>FZq?VZWiqsW9-RDs9=`Bu!h3U;Hm} z{NBmomT@m%sYZ671-W|V;OgL7b_>7x#8yfU4~^|xc!KuK=9VLYraj4p&>^4Czo2Dz zz_>%A?U7Ctfg@Tz3~=m)9Wh74EgbqjDC5AVdCHahM_3X|2-ut zP0*r$gtd`$$i?6ADh=b#;8&C`Nazi=Id7_qY78ekgqM(+)k_}~%4?tEYBa3N_Wp4+zDPA9aDNOL%3+%Kw==NG-9$ehNR?^m)#K8j&>Z|KyTXe`&Dsk&FE1}h zE(LnxLf&OC;i-F+q&=LYEjfo5gh#)t&pVWQrT(7bz5U-NzCY&gYyOV#*BR)?@F&(+ z>aN`-WXPDzhXXun%%_AQ9Yjw{4ZZM~AWC0CrIqRO8!6Whd&9@-hcm*x5v&*##NAj5 z$@WREWuIN}Htf7$6Efv8mm}HY{Jr1^ufgQswdg!L2#Y_8l)F1#bJ)=9ft-*_(Z+_N zBl^60j#?M-)ih7#*J8DN;LS-OB+4b(=pt`IPJE3GBaS2nsE`rfL?3y1a5BJ-Bznrb zDevAy7v3uxUusNa`bNBWCcc6}sUPkZK3PAkg-=Vqq{Vg@YHD$3qn2nW}rRt-}loT@B62BtFRO8VT`A*!%d#GU(7BZr~uZTAEJ0*B7 z!ABDjQwU>M5{elwSscz4sfQ?rOIP=9v9hbR#~&2Rn&+-y%g5bGF9da>guE?QuAz>L ziR1Z7Ex+T4R-2r>IP=X}ej~@E=0jwp+LpsLb~&qMTdZe%Wruv0G%V||_f)s&Jv4G1m$yY(Z_wru;{pqU4M-x-*^u$?wNfXJuX9gyOp?5xle|dM z=qhz!kx(TNF63UjZWqh^j zQGWUFS!NnMw5QQw)@8lbcV(gvp;({IDb^>>sUd(^HBXbuz?qe*!n$lZ;4}1}@xED?>UoZ+ zM`9$aGWB#4ZEHE`GwzT?%T${@P8zwYIeJyWKrO@L+lAU~LN%DCEI;r|BRMP`_wkodpA#u6VH@LrS;$fbn*iy41`*P3}FMZ>gBw3k!l;tejUxCdh@1^7v@z4-qC@a*P*Is>t1#cL)e~3%=nv zibIgevj&1mhJ&)C1_k3c?wCL@(<1Xhc>z(`3yWl;~p?9(z=Djc^P1 z*~5wK@4IG*M8)TkDW{OzqFy~qors}!nvZpU#b-$17 z@@}7BE*IbnM>X#DhAW+LF9G(MNVbNDq;f9o&NPX*`9QYE?pf|B29(yg$19Q)DLNv3 zgNsVF7L{Sk_K7ExF$4Ftc*Dc#x85zgJN4V<-0>m^H?uqw>TTh*tyMF!c(ErpzUz-% zT0TeuClEMT0!Nc?R9cG^oy7ilW0;hCIdoh~pZ7F$N30c3Dost)7R8n$W#|Wfvap+M zg?`kys%A{5K8O&EaP04JVU$@l!>vgmd}8@zj+?@Ym?1As^Jd8QyimS3@uJV0;bCyd zb+R{-kICG2ttN>e1&QwAp(d`vg*>91;bI|E``L%P&>t|>ow(?m3Q-t7&OIK414??d z9jsJDvA$N2>It9V&V(Noi$ykt=rGnPw@PHl9Dt0h7CoL1^DeYW#?ry(syez{5QqYX&kZ($W);G)n@39+MY%MZRgQ(6s|ZR=M)9 z9VBBGzAD^lM>6JiX-YtZBfpZyM{-R4b6z-s@T+<`jP*-}7;Hc|P3wmv4y;~EkD!rT zQx>5^97jBl39*c};FwgFvs{cvkR?E(H_wIebRU%L9CX`x>GADGzR{U`Kc42UOY!%&nOK|#K zLKU5^mU3t#>3ecZku_KnsL6~=Wg6G1(zNJRe7KTF(TTh>{TFAc=Oo|0T`U3YQgH!{ zp;!F23~XLQpDbj9tKDYYEkO4zev1L(4g2@M`nsG(TLJ<6ydR7TLeGxiTaG`{N%_c87klZNri zMy^U1WX3C-1>w>y{cz8b5m#hnzZdM>_-dgd`@PZcg_eUE z)$v90g;GYth8i=fidZip)%{v+|N2JWU~ku&@s&VVIJrk&K$fgyte0Dm_NjJWbDGds zOU>lanya&Cyfyaj=HH>$vZ1yC*W=!8q|a#*D9yaJh;Jlb#EF);#u<2^o$!>SU#va7 zSn$NTYHaJ`lr&W9V(Ccv7u**UTasDfl2F6legZ@0V!FJy_oolFk)rLxnr#MuGovV#R6M}I}-MJKjJS-zZrnDGQc7&D6 zV)cB_?;_TWKeMiWjTOcbjEnw8nrhx9bwd)WZop;5LrY)PM!gj@A6rfsFlD4=MDkui zyZIF>g~b98QDgOcD`+@bCln8@j*mFTKCjdc8Xt@6Zq9v5n@S4&xJLGPwQ$xLdxEd- zNv$#wt=3UFs5bUlXKxZ=hR;LZYV^7Ky%*aV`D-;+B!;4_R99M8Jao2jNmUCmpteJ` zSE|kN{Ym+9MeC-J0ol8wRFKAtg6L{L{b#kj0efdd(+lKmEZw11Zg7mc8~d%hUqoAN zyJ(i6s--uRAY|OLi^pHRnDld%fRss$cdtw-eRTelC~dryEbFz2uv@x?F!gBq{=$36 z9JmeDj;DFGK73Rp4=vH)Zl?_Ot2C4ri8p&4taOy2>N_Yyg$2UH3c?Olb5jrwVavdJ z?*(DJiM}JocPsqbteNK6I(_TeBUnpEwR9TD zuje{PUqLPq7`Y;a>tFrRi&^VJZ^Va5VY??{WcLy$Vq+fb7sNpWc^LB5;_%#eYY=mP za=ye2;3D2p?n4w7OQ>j$d|hW00r>=STXkftGj=&rrERwPi%?$?9U9{`>{lkYpuEDK ztu5(K%R=VG#EK*4-Xam&zgfJjO~r1?fVaJvvG90yEey3B%#W}67y(pk3h-SU9I&O3 z(L(d*d-8s^^Lz4^w9i{8_G+}p%arw$Kj8+g*4TvA2{}Zbs3h@k1rh4PP`mgOtYY;2 z86Xok5GYq;FV16%V0T@tcMxCKz#oOG%O$8V4fTX^jP_O?{v{x6vT7T$L{$;{s9Bv@%DYd9;i&R)6cbTR z>KZEj`}`(RIORsSY#vmRXtX4RQj^-}oFA{lpo`SrMi4qx>4be<#~M@JR0(v3Q^O7a zO%0o+hMBbu-c)wCf^C(%TiJ1SD<`VFb!`SAzH7JAA2bfvVjahLT@;J^3-msy(Qi@h z*%|IxjZ!2;u$bXw7|%xK%{;;W08&OY%4VX0AeMm<>yB))o_ZAybxrgUR=>-5&X?{f<(>Oa)`P zKQWA^sSAe00Ny%keIbg?v|&Kh8ZXzS>=++eeMF`{6V|#UHDUMs&Y7?rtWdMt#cWC< zDU=gz5-OB^paILqv#Iht=Gt^D8@FrI9b|>VYZgoynYG6K^5&+n<`anqdythfUFQx} z#BnT&!>>`lF~(-=0X7|3c4UdPreBo8qf)=AHtZ%&r%6w|>X6L-#eJ9+`XTOMj#DqW zh&-v6u80EhQVa9Ch^MTvebHGA$xC4^?pX@PU;@?nCM4>FpC-4_Yg$YrC41aS=d^A-*oD7GjmR+AS=UnX>-0fU6c^M1!(;Lc0 z=G}5y$Vi0Hf10X)lMLfkf=N7b+|<&XakDG!?o%0|Ib9n(W?Uh#$P?4dA43Uzh4`&YZmdW++x zb^XKCt+bb~EXx!A1d|$VwSMbCnT#sH`Umf7m9;gzz3hu*>%0GIsA6f9xV98y;Koaq zm&Q1Ico?VXjjG$bE|GB;?r#^DUg3`%t1rk&hL1B6b;fSX%XoIc=7-EPWq*Df+@oLo zOfxOAKb2;-!4FZuiVf)kFih0GfJkA}dt^%LFHS)#whrf&+l_w-fP|l&&9TSpz+xf$ z%DPwqQnbifX+Vplrjb+a>X3P1fn6&-*^@|TmBSlP=`?@%cnsgzUnHMH`h6!`)t#bR zA`9Dg`&hgdl};{+(D~yE?5=gC56JuqKOrie+f-A;-byIGejD|)8Xf?>@jG_#K4hOm z7FjPxB9+Z+<;EWBag8%tj3a*mgB0?Z`k1Orzc=<3gT7M=3OHOws1j~J3 zkp#YUGYvO=dAx@V-{Ij9FlO1MiIspl%DfsLZjLDGWJ0kYtCtz!8}(%O@VQM%Pb2m0 zswa`Gj&iCMb=Y3fF&Q2bdBbNXUL;IjMRnhg{e9oG3978Cc-RFUVlHxG#;V72TpS=Z zcm~;>tVThiSL(wIpztzKPxgRg3nOmMLOsb6`7(DVbB5{3EG=q)sX0A`y_N+&^dyiz z^g~{ptG+sE(b-v0@k^S>kr>Gg(vvKxUrGLB^<=gdUBRoK?4rf~BDwyozF2!r3ey&4 z@vA2_)K4U`hx+QPMPHHZ=jzFxT2!vo1ky2>Dpt|?TI?E0{3G?nsrh;;qAmJFeV(kv z&XdSOe)Qx(EqX3z49VV4i~g2ZJvl&&l}HM?=+l#fwCGQHX-awp_1*O3X<95>qE9AN zFsj8S@@Z+~=-haHLE?47>6LTFJH4VsHxYonUcO5=%*jH;tn8R8qjftor>U(Ecy7m@<))zN%1FTuU5e%!6&vQzyl9FdQCBJt8C0|NGPLXo@TP6Nj znhtj7H{CF!Sx8plAo%WjS$MVGeUFio+I`Bysa>8xG*3H?T8QzvI1$R0V;+YDyMds( z;yeJ1!63rr1^5i2io`1;C6+pMFE|74u(I>`+rLX0lXA;dS&n7KiLbyHUP>A1Q$q>3 zC^4!k^w9wns2t8By7J|hQnK~4`vpY6*GYkxmTn8q`F@*kW3@uY|y8C_y9Lji)hcgtiDF_U` zAn++~v3i0bjPjlK7$5%`LtzI)nDR_v=rsq(_hD!j{6!fq-Bf)X44p#1Ta&2Ae~Y2M zz_%{?m4l&e4n*J9^BFa79sz~%UK2>*pk@Gzv5{ZRccO?_;wnzha^o}=H<<54mJ?T! zj@!#jHS!B2&f=APfppv(1SkSU{GO&3H^cYY5E8F-5?4_frviUefXg zsa&p#J6kHA;l$mZ&i4fq(8ymT`MBm04BVWKdyRmmgCBx4XN?u2(a!tfHNS$K04Nn; z_d39aq=79ZfaP5+*1QTJ50z;;=;b$!UuQ8rRHp!a#UnA!0rWBNPHSW{{+?Q`SPWm{ z;BWao3fNyAV2=v0Ob6KPG_WtJiILwRaUaS85$|>E;1t^AUct!k%y&Xv=)`*sNatHa z986;*Y5RIU=aA_s!b|~d7OW?46C%UNPmTuW9S+Ph()kuCm?!gX-yCdwpFQ_oNrK%& zf}E*(#XamPxkY?KVs+<%LARZDZV0sleP=RlALuh;XAgp1UP5`E@JN;e90x0XI!G`Q zVT`5P*iVrj5+w6V;ccuDa~B-PB_KW(AjJ7PB{NV1YOXFlBUU zc5$r+#E&A*G5DQOoHgW=*uJ^lDxMOBriGo1Iddxpf5KXv<5|#!fs$kB zQIJP~-w8l)b14C_?Q=_F&(AGxIyjB)UU+QNH|nXCzOb;XF@C;bHj>EpJxio)-k5io zJEa^R>$wX$t1$Z_wHIWWzP(7TsrnRBNTFw87AKT5Xu8@GZ*6tfxc*z@>8x>;FR;c% ze$j4?E2M-%Bo`>FX>>qJRxUH|Y~~1AA}q=_PF_GvReo)q8DeoWHojh1f7}@rxDKoH{Pi{i_>h&7Q3oAZVFyxKmN` z*#IuRtT-p!Dfl-zPmJN@S%r8`*C?!EFfjMkj5AZ&cds&n{mU93JSJ#<|`;1 zav61;_am?16}KBqtr(<4T4x1xwpykBv~Y_(zv9MGJ7h!Hbb9VJtod8;cUg43L^4|az8mrWl!OS8tQOoA%v z(9;U0VK}xzD?%9fQ(k{2D(<-cae<{dVAOCE@mzf_Mp*(@r*vx)F#(5Fq#4DGt|`Si z>CraNKgM`>jA5xU!m0aH>(blRFsrm$t5V~E>BMZ+2Ki3i==FrF_3~eil2xWmc&*kq zU_eYjzr0zV^}adkc}cTfC|2H(sEpih%~znLw}f~Z0~B!K@??}nwCQ8>e4&duRWMG$XUr zU>&Soyj>f#;l>jrNLD6pZL|r#*Qo|=`n>?@VZB+Inw&$L6H^$@`U3IQegfF;hDSv~8hD0PGY^ZnMzKwQB0FtQfb4!XxFoNOeVM44o%CX4#M!ubyIo&To| zw6NsOy;}WS3L=T>@vVEsb7T?g;8cz`OhNElSZsZQT$5D&a>^lnVKFs*v90#qt3W4C zdIQQq?`73erUF&v$CCVnVv4*1hJE+(Id(RWW37{g$`gtmXOoz^H>!%Q*}>G9a`qNw zzRz7l$748JSk040e_EzOeHQ z?yDRotXiyuNp$#qHMf`)Ooc-gQm&jaF^y-BjIoa%Xq&y)+6m>%h4w6tJ#TW0T0grdrwypK>w{ z!a)n%`^jsB%cMKj?y%J`E}-u&(qAaZegTKz)>8@u37qxJwS2qRx?Rdq&AX$0Ap>Eh z!JM8PGH3eDP+{o{+Q=6$@rwKSclJJHP3s6u-Hq@Nssl% zkL9|TffcZ3wM$97+!RU)GW0{nmx@Ve&1*|ul}_&L-`lQC!_Hy%xqy`Tgafi>6{M3w z@8z_?Ex=w4POS-BCj^t#s}1@G<*CNH(9?CXUPwo+@^s0{2-Z96FSn(KtchScwe^R8 zBHj6@{KG(?6u{P!0~<;RnOd0PY`ZzD!?R{zpCV%pnGP8vCT_BdaVtwgr)EpXCX+3@ z3XG~Ovt}rlHC9bqB?Pk6E_Ewip!NZW^}7Ck2fbSKNm3c_#CB>+@0avuud{=6cQ&Rl zHSV;MFAFXEWui&Nac{>3HvL7LYM6gTMhyaIgFTo_*}~O!K-xh1e-F>`dUNNP(o(@6_m(S#@*ptQYN0P<;M97CQ>XpcNC2; zmnuo)sb8w`_K&2EEKZ5C6lnVt>uo-`3lCVYs!(aRT1=>BiwaTI#3_9+MRYJ)Wh3V1 z05i=_)rW>Qd7ih04K5=b}cwLq?{#NT_`}S}sqp5xhu< zZ0Qtp(VY@e|JZJx+41+?Zs!%gwpK_!7e|9WfR72FT1Q? zD-l7?Fd@Cd*kYyOj0A!>P*MW&4>)c z@JM$EdQ?_-2o8}U=rb$B$b>MgI+>Mo8E-PoI-8aA+3Sm~ZKx|9Rg|o`CC)~{Z~Am= z{emH)#CW)QpqBbvHRf+q091k7?Xa_rsLYNR9Xe4sn<^YU^PZ;;rwh8KlU9TYDe%m7 zLL@`QTtf0vA(E|Pe$&!4dJ5BZZd=GpT=5<23lPvY!V^-_@(ap@fIm%N+svmYT->Uw z7v8a1&x&yj1lC7zZmgd!mfNM7k_zU;c(ScaB0*@~v_$Bp{M%22fq^hVCDz31$37Rlb{2;nI25N`sY2LP-p^1{HblwK+em0nU385YuS#sch*%w;kL@WQ(* zm)p?Z`tu<}g#dQAb0d0lyBpEuCTN#!Z>c_4*LZ)njzI&eUFSLOkJD?GwFf+f8C?kSDup;V4{Ja7yAG21jLE0Ta7y$(9 zIx=%KuYFch@vkxQ2YwlET2yUDrPE8anDCR#JEW2OHdJWQC@*sN`;4Qps_*vUns*jO zz}!xTJ6n&P&iVGoR-c%Vy2_l~1&n`a^xVIc!e08%UJZm5jW+{dAF|B~;L*TWAOIw| zZioe;>Igr%vL4Yl)kqOsYBA13$<|miHDpba-CS)X@nNr?&#;&f<>z<9IwITk=A5P! z4qKv-);9DW1kSgs(b}dlpY45ApNFsS*;1FP;YQ6+ksVr%2~7MHrnX$hVtZc5_2C(c z39wq1^GSb2!An z^sZ4e*!mY%PTCEc?~)lqlGdenQM2}x#q#0*pDBw4KS)^!2_fXg`fz0I6sv~zvHhng zi&LZ|-w#q2MICF;mfcN-I9s;cnDLfPXVDePGWgDLUn{{7b{fqze(tRQKuSD7g6}6K z7Uo*NR-lARft2{UObw&nZ!Jw1pq6avb)yRT4k=M0N4~Fv#y_~XUHU5)4W{7flxG~U zmGRxU3>XL)1h;lZK26+23M5M+qZlQHL73r@FIuuiYp1$=nkuv6*OEh~SBo^^%nJrR|ePz9yo_LL3L(}ql|{z7@(J5oHJIrn*G2`BBuJ8KqKJH?Sfv~A0Yj9Qg zx~a3pSq-Oz-;!L#zQwAZH=5c_cK}o>=x^dl;cZw&ZSXI2qEAjoKP%B`-y~y+Z^?nUtM)l^>S4#&eCT`9{@Tqbi)TOw+jDS?C&jqkr(&(X-GoRztjGQZ#^d?x z+ND^jQmiCIfMbn1o?m~JD=u+9qsUt544QM*!HrAnQVIO^B$nZUP_RK(f(w4`xU&>1 z?Y1rLZ-7+=M?Oo7b)t_GefhDL(cfwsH1X1Lae-?rtcrHDG)xbX%oBZ;F#AqgGVfR= znU{n1N{J_u@=$(){l2?gzxJw>;fUsKv#i@@Y9vJ4r0QF@#*ef3jRtoO*B(?4wlxpl+!7p=u zkqQyU3lcXwQai-aVsZ$K?&H=a$C|Bnb8$hyv>Tbun>ZG5*lP1@OJpw<+3k3KPp-^R z&>OzC4?+3}QSkXEZ`_*%{A*-E(94hH^NeI-z|@RnnYVb7NWF>Jkcjy>l8MhOKrVGP ziEE6{#{eu8_x&B6gIaSa)6e$=uVdoXo&qGpbA(g!mj!~eG%{}@xAmJJr5bHs>bGa< zbO$k&$-E-tIgrk(%gy5wfN!pg(8CJc(enBNA+&u{PLmJlDU;4`YR_k#UB}*GK zLWJeE@oFj{_-=VS#eg!tF5Rz1_Yi0O{yqn5avky-0jVl!F_{?&B^Io&QME+GUZAOq zp{|Rfyu&mpS0$bzX@AQP^FiDNI5cC9`Gizo`QA z3nXdVtw&Dwc6V5gcq27NrnU}XFRH$Cft@Cok`;12Q)|5GNa{J#j@C^ucCEWQ!j|#q ztaZUF9Bk+x2jK3iLyvn;XuM{;$TxR|)>Z9G3UU}C(0J4Mh&OfQ5|$m;nAXo=5i*4} z>l9U79=*aq3|Pl@Ed3HCm#fO9Oit)Cto+xd4`g)-Ux~8{S@EPJMpc(K_#-0_qLUt0 zt0pPv3>LaTsI^Kq)bz|-d^5A-PyIU}(Pk>2U_Y6foDGu1P)VH8ppcxH#UN?ppKwzs zVwW#kjjyFDMU%$2%ViHnXGy#p?XD98@vYX-n@%i>9is_TC39MrnvTA2h^Z#BF z(+nik8=I-WeN}0_KQc+5iv;KR)`}dNBakD;X(>YH_kd%GY9zqcO6vn?g^G<@X}O#< zA|I3bQX;LWl>0|4lV%&y5Csldm9#s`q^l&;(_*nyE@Y9v3Z8*mv zrcMU5?X&tw389W9II^li<6HRJ7YjheBh#Y!tZg*0NFFqo^=Mv!@u|p|D`X_!Lx4Ea zFQl*a%Oa>n)qMUKo1{+dL#8efp@#aLL>FH4!tgrLx3a=Esz zst+=cKj+PQxE&Z}fmBht`kI+4_1H!73^nXX{Ds6Q4oprJMm_!JJ@0p=SI#Ev0MSx+ zWM}V@;&5!3u7C=x0FKQ{pnvYBM6k6UVSUyR>!frY>@ilJ`sgb#Mu_nKH!r3T6~U&) zht}J7tDX>M8_d2v*fVjkU|w1P7yEVfEj<^~Uj)HB)VP(k#X=<)#cV#VjVsfTr)D$H5961yo>uJ4Z#K4+&I^J>`0 zwdSZmwK*Ba=*}>vEgJ?B$551%#>2uT65S&WR|$yt3; z?yuF;k;QoW5mtdjMED)98|ng@!1aIsBN-t3^azJ@ZB$G&?MTO%=9fzVRlaO_Us$DI8P$T&}!B8%7I-IMraa_t) z3|HZBmz~ZGa0#h+8V(u;hQ%BA6;NaESjYcF^_~{J6|ktD(p>Z~?~(e6bhE(eMwR7*ok)w^=%%m51a>sRw2D^~@)p#QIyU>Pt- zgvvP0QN}~`13qmDdSlLPW3_CXZBv&Q@OdqNvS^>hpIq7B${!Uf>!8E)@+_|yz?h;f ziGC|;pAT;73?Q(#gsn5B%d?V1i5?UVf^4k*PXK^gRA!a~qr!o)Rl)ez5aFKp z{f1iup1nSBp83OgVyu@Wx^+4Lg&Vb%r)UUs^)5VmxwRkoiuWK`Vf=;g8@X`hLT&6e z7QnWnv#u@QVEdT4@fNqeqth{n-&*}$&IA47s(0fkZPty zZYB6GiPZ<2L%YOcFiTq^>RsSObj}k!K%XR5ABUJKKt9g3=d3Lm>7<-2DJ}9!O7-!I zld?pdXvnsS0#iF%r`nQSC!^TPQKY_PR3G<{(dlf^T%IKBoCT^4Hy+~zGlt8m3TI!N zS>?BVWmW#!S5l**l$?>a+InLU=Z*$v5B6f`>7Va8{QJb+NE zm?oP67df{Sh$73EnDop^ZiB$-VP9gsS|pP~PFjhp08Vjd$`BvI7;PrdJ{i|$xsl_s z9kYT@=TxZd((P4Tfe8Ab>R7zPG87~dIY$OgXzsaRxd|Wgd?NG>YmvI5R#($np{U@f#opzTb4#lkcMC4Bp z-I2=~;UW&S4vU%*ln}$^3ZvQOv?0+W`l!AFg_c0>mK9E8w{&zGyrsR<;1-ww1M!j) zGF}yZJC1}ehWfo~O-)w_T8jaK;DC}0<3jptsX>l4j~WQCAkszf`VvLj1=gT+HmTA} z*nW8qA)PJU%sFfTXzoMSP>2H==jDo0OtApQT3_}`Apy2;AsFQ7bo31}4v=sTq7s*2n&L2a8s(&TsX%R zVaNgxPI1yv`x*t5H>?`!@lxM?u6tvS^C5$qW{WEJzSu2+Pt)IggAyLB^_#8V2cD0o&Ug?f+p3 zC2>mfi75T0mwUt_@E&XYD><&jI&gey=L(~qN3~Y7tJ?Tr|7#~BRat$~d)faKuIgGtkRb9Ka1h*ir$uX3 z_Rp+KB~}1Sn-lv1v!8o^9-3T9v{T?b?kD)BQ*PmWA0z$ds&Zx%nmWpcOQjx1p7(?Y zcgXq9wKC4taTm)N2z0K#hB93MTZpuKbCN8ge5s@OOr0z*ph^zT$!$zN)7(Xs#C`iI z<^_}S-Od$d#*l4BaIzx@hXsi463W={Bb{b=@iw}D1Lr~P4mqi_2(2n|>FdbpW>wLU zO-&zQV;`7m5B-6th>* z0pgs2;V7?bF(DJFPI@5~;<)LsEUyuNo!KWLXM?80Uir?cGavA0Fw&n_VX}%vvg^zr zPfiHoizyibw8g?6F)Isw9L3w5=0YRI%n6UKGgnkl9h+S-9e5^zsB(F1?n=@O zmXqqt$%8Tc;q;{NQ8k9@V9XkT1;j--=seO>&?TKIcQ<{kd(=0dswYwmDfrnkLbvjh zvi+fC{mdnQB4x;c|FGmq^)}LPO-zGOOVpJqrs-gukV6wd;+&{m+^h}SF=r6(=Vu}3 zJf|;jBmG?Q+sMDqI##|!Qv09smCehvUnueBgZWZhm*sFeJt(K`al|3x%ME$J7rIy8 zMGW}Hsp`lrW;;X#cv7#^oMeas2Ye?v$&doJ&Ueyrk`b}xfbSfN7H4hxJb8n^A zzwTsc#z}R>15=eZ?}1gY?rK%R#oKDj8QKUWZHIwZ%>2$EC*->>hI`qkG!X-@J* zd&3S?|`KP)=QD`t&9SKb1hfS%XwH;Y(j2vN%oM4QcVJsFVgR%HNey!Qx0STEeI{41+gPIJY=;y0Mok-77c@vNI z&62mz97Z};oE}-h7fS@j8t!a1mOR8)wefpl9C8V=kIUR%*GNPAFOhV#aZ=VwvHTU9 z{(6B?eRhGjC7y*oj#oQ>ix?Eqk93M`H=L$4e1XUMr<%!Tt>!!(VjGJum(P&VB9gWj z;C((=fOowNTr*=iB?B-aTpJ0PmI8salPlbHj0-tmpUXBX&zBhcDQ2P?`*M3XXW+N1 zeF}2x-iNKrj_H7Dq)i1WBrXc2Ly0l)c*JzA;FYGeDZ1p*zWUm~U&xkKIwF zBI; zc*&iY9uuE3CPLjij0t96QAe5$N%?PuW_xY=kxWztDi}@Hk=ZgwHgSe6GU_>8PAduO zhw*1B_*ejf?Bj78@ChkBtI_rI^lMSgO4Yu5O&;U-3N`dUvu;x3*Gh|z%GjMgwm8$( zQ>k$DRDK)iP|e^avOFM(A!EF#{TQEnR6->sE*;fPsi(X!>pV1Cb}wgK%iWg@_YJeo zVgSD^K}wrN66f#WQ=$rqT8YBOoMR+4Oa2D6+}}?SOGsB$n7iD|22CPgj5zw2F6yrF zRN674vW9Hunu+M#KLXi4$sCoZSjQx2k;S8WFvSjResz~o{R@As-kfD@GshN$k{e35 z-1sUKVo!ZRfIC`qR1SJLTqa+fgX^hL7;&9>2yj`bp6Hm)-Jw%! zRH`Sd>B#~v0_LD0<@V$dy2~d)B@*OE{pe!Vkv_RFaQZMW)rVie$D|KOsj}QYyhtrs z0bdKr+xjqYKAodFbS$&n?NNdPzJCHkLh{T}>MCFhAFNBve>&=-K=4U#*~N9}zKtv> z8#N)Q-L)~c9sXSyan(y|a%8RXP(9%(C0IP=#2Y?#7Jlh6F-eO5pLzDR&OPdSd!{kI*v4{fF&Wkyqf6{7 zsjsYftc_Bhvl@3-MTD!M6A>D!D&)}65$tgSw%9(w70a}bb6(E1T|v$DQbr+VAjdH; z-G{QUe8$~pyKUWBRNNczl=hJ`95<x7Zn=gW+%uWsp*>I%skPl7{t~?2OfBwZN!bHf6MHycLlI&f&3VYsGN- zoZ1hIUn%KZt>tcdXK*%*Wywqp>A|TXU7sG({*KLLPgM((IjRtL9Uh5a}>bWnD`%#ZVQTzB5BjA9GChwAQ@+75yKIN8S#R;Pa4o&-IE> z$544UK3qo@k98KQ7(X?!Pj1Q;p>`BkKeQ?&P{}cVoh^vqtm8?@1Yl@gt#ZF(Ws%0Y zCe@<%5;Y{r=@$&ngU@<|D@-%@p3gG@eNZTelTBRx?TF;ddb=J>TlXutO1fqiR7FVN z5D1oToxdXp6VvO+*JN4OsJi)90$l-Zn73HqD>(okaoGcm;_Hc#wtz z{A2-tjtU$gfyYSTXbJ460{an2mEZ`3;#XTr1@L)S?j6ce)V0DFn+s9f874-GEc0R| zdCp0>isSwWOAdBEt2gk_RV|%9bj}_QyGr)jXJt#MIWOd-IaJSAeBR&`!*cJVj%<1R zi)Ts{5msf|!8~m}TtY-xy9u|);R;-ba~3#MkxvrG(g#R`2+%ILG6 z5!O#Qtsd+wU9Ut~IZ)BC^4sW$bZiKNJ_Hn|=tg*xp#}twfR0Sl@KD19X&Qd%jfoY` zN6SYU#>AljtHtfyQNaE&QN-!@(YbYKEwj|2R~usTBN0Boc(^?$1j+_e5EA9WKO54_ zmH6IAMRZp1$WtsQ(axITb>3Z)5q6{;_IMNd^5I3qQnJ#JKd}1xhS@XL&^km(txG6* zbiA-QlzBOWWPb5r>vb4VA?*L@8?z8StW9n%s~M^-LK-L8S~FO3fzArBZ(R!ptlN+R z72~4TVqV&9G_Z}}XkE!7zLtwE$&({_hDn}FNs1_6v)yC8z_UJ{%H1+)gpn+(N#wzF?T`tz)X zD(1^ShxWe`ieDi9|5n3};W!L5sY_*ck^gRW;2pgl}ljYKb z*n8V2b@B}cnsqO!*+>R@!b4=b3|zF&yi=&)_iri|KIJ;O*^q5} zm5P1G`j}_pekb!=-v|a+o_B-DzMZ%?Nm>htM=C{d_Jzu#q*lu1d#CzVOy#~zJWBsL z0P0}UE8#vdww$z1SBc)SqU!mXHJ_(s4$HSW>_aJKJLSw&@e0`Sf~WYfjodE?gbWq) zj#bH%yUl@+_k)mg*+le^eYiDgw$66*s%$U0*EvpTM5ciY!?UTS^hk4MXPEM2d^QF3znv^O??rh(zQmfTro?F6A zJZ17`_e)LQ9I2A&yS*)KU(zsSMB+{6uPyaq)_ycrDv1c}ht?SaO~gQUskqOqzY!PZzx`$VQ;E67qHn4I~^=ox9(9KKOw}XSr-Td!--d9%QUHY>&O5ARU>ac6>$od z!XPrEvehwz^B7*z{^t=AkYmLs;h@y=N9456S}TO0#0JS|m#h_%-98CZMZJQXvx+I} zGpm&5U>GPX`5fHFIqxT~WXn@m)pOfzNXjrKyO4RVHJWV;n#u3bOgqO=V=fQmtJ9^4 zRRD8IVwY+XvUqr{@rrr6@FN%BLj^+dN`Gt3lf21d^}O9RGxWJx|CRUhCzau(KZ9IO}iJ8JjUWy7!@4*f!p`P(A!;jCXf!5?;fOnzG|&J!N+>D|3vR zC+o~vkP#F4ySc=noql@0kSU+E)^Jc2qFq?R1aQo|d~3+K{1NDPuKgn`5*rA2vQ~!9 zGYcUynJvE~(2P83M7FlpY!SLeAQ%FQaHk}q zeQ#~h`z;|dAWuj^F94)wzgIkQ8-FMMUuoEvsI-j%B1$t_b^)ACJ za?fB7fiFBb6=xuNAa;|HCKxzXUb;<9EOX63vu^%Y+9Y5Znm|hqR0jR2Yry5zsExR+PLJ)R?FwB|?EtsJ_v%Tdbs{Oq7 z_$v~VLxA@9>%94=vZb(waIxrbI#N-od2YXD@x34^$AvM@GEM+LO#Z3KnP z8%pG)u&{^qkV>cM?@toTSWi%cqBF1OO}~ZyjZNXrTA)&iLbSbuJ8Qp(O$GZ0Dzv|Z zZcsPsuo01@D3WVr8$Y(Y5E{s?;u>dOAQ?G+J>ed!_Z8Ap%Fz!SYk{@%Jk}?qLJoLw zOoQ`88;(Jfjof>`T1c{j_?CzG@Ig;nIRTL^HDE%OMF9d9LSwPtQF!b#sv z9>zh&Jt`F$Fb8C6gbS0;mA*LtQwTMOL6B*Uq{<<~_s+LGun*RIbodquvC66|a6 z0@Fd6f88j7X89%_*1iyXSq~SrTI@cMpLk65fR(;7P&<^q5T&6ra3N9Q>`vvQ1jxMM z)}7AFWGA?XYUI2U=POITjCU?g9HJP-%}H-vO&>qPid}0Yji*9LDXd>gyR8M6D#lKo zFi)~poJ?6hj5jE`AmMz++&YgR&B zuAeb==2YuzCJzbC$jZ?4eS<^Ze>uz=NSwV7+r8OgOUUn5=?ew^x~WsF-#WQukjsYV z)XvGd_ueyvKHPmlwYy$6saZ{Crvm}XR zJ2GPRD%CiCTVt|skceKJfUZ{jDW_S_3ev5~)lTv6gTwE1Qp2^^TxZ>*QbfkkJ9O+w zh^UUF)_3|y<+_Yqf_kT|6?EUahHI{yVtres!u4mRrkx_CU|EJ(if04ECMMsVJU3CD zxV%dLRIDkY{_BcnG~8gVaUe83EJ(l4TYRqQbNfYPE#T>Tmjs$m32+fORXtc2&z=7@ z1c|T&bAOG{m-Va(u8qwswYf6EJ|$1$9uSc3rptGfi_#Z4Q7w=_t5^=`6ji?`Wey98bkN764cVl5(fb+ zNUMRxk-t^Ny<>et@j~VG6e{myK5SHMNN@X8SuQfEcQdrF8uAQ-x7N*`dF@>5y`VEZ zZfUl5lT-3dCIe)LjKUS}lz(g84O6e5X$2}B+&u#A0I|73txsYXpy^rZifIj3U4z^6 zC9Ko9*;WgkH`v%A?dAsWikg))bBBGce#q5%3OT2XYtoA5Q}R0u}!4k7TmJMf-GC!V|7ezv$;Fx5gOb128Dl)MHgN1l+; z`>j1Jo+5YC2+o81*fG7~3FgFRL-iGPcADN+GqI>R@N-xTS*3dyWEgwnSr?W*r&aC{ zzY)^?Rm^)Ktz^C*LHHX^a^hiN>(9!r*3wtg-| zp$ea6)-0E5=IL?S0J5BgT1IZ-!h>v{6D0<3wTu3x$r-enIQuN_JD~-4H9*ziJ*c)OH5)j$qej~ zfKfrC#Tt!8ELy3|07?RhlhJH8Q|%{O+iL6iYENxzt34_pa!CRtfVTi@@m8a#>|sRk z7V!e}{ob`_0@`y<`~3fTp3GkN`+C>A-rKt9lIdFfYmO>_bnBM^i7Zgx8ZG`F!Kqx8 zCh9dqo3*V*XtUlEXBg5_te%J$%PKeGy@b#o4&8gViqm{b(u7@*-=yyE&=^_b4|1ff zRU62BO0q~?9qp2hvz*G3O(ZbmehQ^7^+jqIU*!$gomY%{S~z%Ku@?Ui8A49U`3^1q zV<3Q{q*13-Ekz!tIy3aR=y*9K3(0CoHsSRNJ3IGasURTlmW72^*%|Zp58KaYOd0VKRUlvW@2}!1D=14HTloIc8|h9HScLya;iz?jgo& z$>)h}ZSIhv*5X_7RMv(sovFo>G(5Imy64vJc%1NXY@NS_Kw9`8c$IwuI+7imiFBlO zy$nEj#*~Y+cr$6t2PJ-Ctujs?$mnD>R?3fL{QE@%HA*@juZavd@0H<}G5rHq z7&{*;L5_?B7A172+6`kh~bf%kM5WbLNYsM4Nj2v zf!%UwsJ&Zmrl9O@k>t{d(`bb3mY;xFCow$_*J8aYTx*j9!c0hOxtkx9X_}BO2amj; z@IWj*JX(>c{^Hwco3V%Yu4O&#g9io?X|L76&bBvQ%<^`-VeiH^xl_Z#jXfYvzqABj zDe6?x_AFGp>3c1cOs&mNUUyC88ZACq8WMV3pvB`noUYw*1_9NHiDJT6SWHK8jL2{h zyLJ9Y7#Zt_6|$Dwlm`I{Jy9`P=);Lg^_6PjT}FI$q6mejH_cg($MyllKMcE`ROzMN zUTHTKT0ZCQu(?u&ce`_Fme5X|k@x`MI^u11$R2%E4>SVJC%Mc5BTOwC#3f+((}-rh?MWUBVcBjO=9iBN?)d zxG+(1W~S#K|Ml}7!Nj-|vCtz;ON|JK9$$x>>EQtxR$tm)ZmnP5bo0#%wYG;r9b3PQ zUdO1m32I9Ck0RGZ#gswJd3|bkv(5wXE#iE1uw(AUk6y0l@X40d&7w- zZaZ(S7Cd-#$=t!YR9pU(B-3se!M1R$!p}ynq^>X&UP#VQh%T^<@3p{Zf#GudtWEqy z7R}nb#4WVsy_NyS8csB8rjjwYLGR4KR7Z3v>!)Qy3n{HX0Cxq1&L!cXwUozxm~;n2 zWgRF}xWXkFo`}G#`_7m3&>c)H)>wOCWOr59-`THVv;IJ0sn0sCHnVAi{>8OM z3RoE7(Ed`|^chva^WgyBYyD2;(b`-JH^1p|Ra2(C=SjzG+KoOh7H0IrfD+x(_?V0RVlZCQ+ULjfP!dH*BnZI7N#Ehw;)i1;*^7LmKz7G^n0R zrM-y-ed2Xx+Se$1I`Nbm-eN{b;?9zOtO?YG7|>8XfJS23XC!T1FY24UxdL8GBx_?F zjwD;`RlO8sKH*TF7o-$N@j$JuS2W&<#33drj}oc8Y|5!y)E?pr=IRo&^1uyadlUchYg3!JHxw<8wK zPRw^gY$y~+^EjbatI7xd(5C#^)R1~nDlEz|pOS81C`6iKwQP|U?P8tC5#tm(FglUG zK-#V%tp+esVArpkYJiZuPV&fMTJb)m+J~q%oQOL0(j%6O+6N}hd{AaS%v%AzNWI+A z3R4%iHgBF2xph8>pj?83u!X>0Y}Bx+pO72)vCj!@yJ4RfU*>9ewvaHnjVv}i(&BeZ z_S^XR7NI{w=WqR>kjd3Ws@=?egrn(Ays@obBeyp32LVF5xlsr!>3d~S!wHG6BSEcs z6PFLiALVMV#TOFt2=5WTOaIn-C0eMad#xuXF*Ati3%}H>HzKl&12Zi)9xq}ch2(IE zqgXk}v+h%=k{AIRsF&R!9_E_soK4=eVkM*X8reDz0+mT6oOsIZ8SB6GBa?3v_tMPm)8qc{=7Wlmn zQ8Kaz_S^9;G|#zUc{BRXuj#FuWy)=~;D7|yXT~n;PnR&%>LxC#L>V0{^;n_SMBU}LNVeVD6jHG)#KPbRxg;Nb?rL?H%+9{ZttTT3fj6@pve!} zDavS?vOtcGEU(|1_o$6?&twu9U5V;+?9kzb*a8>o&r(VhW725Y9xIoIpbgBT&#)=N zFci2JTArCD<|Q-Pj%t8wX0Da> zg&2TTcfIUg5{)KodC;%5;l7<{ZI#veo;wlE!N{_?q~5y8uBP7DH>bz#Qv!QDPg?qp zut8i4>ZPcnOi^;32sk$f%09T|jasvDjR-NG8#W*HcMyU0eRG~WdZOT458;=^sL+Ik zEHS!7k!jSKRr4Y2W+^;a3!Ekv`?Yvu|}H~}`3 z4m*g4dgtqnOGvrItCS%vS4}=F!15YjbXb2)jxT~#u`tRVvD3fO8@K3Ak5}`URVy3TAlV=b*AGWn8ACrgkdawMHo-HRFoRhAIiZ#(Q`xy za3q^{=SG$4M}nljvXi!f z=~-sQ&w(5o`hkHD0NUk8vCf&8DIJuVYeq)_;jgavS7!bTZ z*UfX3%*J8z1kLGK*X&g1N?Qv7=5!y>^;WKI0l)(YmO#YDXrUR(FFlyZ_p+*IbOp;g zLh#tNDVDLl^kZWOxO}i|pRUzx)m>4qNN;@daG>nvg(GFRCn_+wlq}t$n^Es450lgt zDuh9Z+Wf4-@>%&>{AG}_*mQ?G`5cb^nueU{sSFqs-ybP7XF&u5u)s$AL@(XMY?i$m z)TVYL@jf<`&xOhn?_YXSAojL5ICQ!Xpvz>R#9j~5-r(4fojF=~v{^xCsF1cN8>FtO z)WygyQgs1jrj{5xcxyl}?JDio%XUabO6&kB4HWw^dTcHzk>&uiOFu3>Xea5Aki^9A z+1-}1_c0qmV@qc4w6@n6SGfZxl!a|)kdO3?(2biR*6BiXqB&r6ou52h z>#Qk(7Z)sjFXViWUXlA4cL6!GM^4(vqAJ}ljrarQm`@zyx9l^;VQ?n|Mt2EmtgAwPTJ5M|3kL z&z9X9O@Yj3u$yNbRSXhf#9O9Q1{ z1|mXO(`@950j3~V4j0y0%&UBBrGV1c0%b38CcQ*gR00@74r>DKckbrli4;@=G5KeW zmL7#Tv^jJ_>P?NFkk`Q<5;%d`8C1(wE&wE`qa?9${Qm`AcKA6R`>mB{iXGjFk_B_R z@?mX_|G6Z9pHG4XB#@w13F2fXs6pi^wDYKwt|zueeEjv))Y+d}`y<^Yu*CipRpH|u z;ab=A#iE&T5|@Ua8cHS9c&i?9pkzWo_A#sDE3lHw^OTJDS=WEpD6~ZtN)i$haskuD-v9p z9oS=0C^i;vMtlw|bw-4kxZgKK@;x4Fc>pEKVI`AQ4H`ugs~nf&pvsA2JuQ>+=qAI~Y3^Nhwws2`b`$%T8 znEGXd)zB{C5H4siFP$v!y!@32G57IDN8XWiw50W&4gy-glwaCl?E6N*%C5=1T6{Ng zhBdyU(gF1?`n?UZ#-;4NfI4=JOo8kP33`bjxHf^#cXI=SH)9Q1Y4Y|3OB?I@J%M#D zM^5wt4yE(WX?5vNV;YC2%eFxp8M;6!tr7^E|pkX{OLmB-J5&6JjF1aqSrtfTqKaH|vEbZcox~A$xr(lP?^ch&wg575w zYJB6g2Hn^$j0m(;l+fV3ooAsur8~Ka7W|IeRZx4(eLGE>uP5@tx|73i(&ULk^H0{GNxq3aPLt# z*!qEm4y2rv#*_Z7bir8Z-z>w@=Kqur0}QsQ=S1_&sTBZcI}~1wq;cF@NU}a00K;WC z-^D38QcKOaEO9OkJ}!2WmSX!P=8Cd5<DNW>dMz z^MJ~rJ@$a=xbcAh4Jm259(&uF?%cH}6F_67m)xGgT4j_h@$rXqw)EY0eqg&eiR0tD zWqfVI5F#RSFzbxQL!>}HMtZK(gZq{D!I>)d0h`*CX!FmX8P-O=0KGb+t(riY_}D5 zKx?N=qm-p1KqiN*6jLR|G$@Z!UCZX~0#iX4LHBqE+f{&7BV0y{yd&*Wij%)Uunh_y z_fsVHhMAt5UUE7rSHmk?=vlLd4{{bk*7cKW4(M-(1N21%<1(tb_S#CWU{7X=Y%(ke zy(8A4P?zk)L>ffV&5TmrAi+M%gC-Y6%0m{l6bn{d5>Kl&^Z&alCjM`ee9HCxTc3$hzDs`ta&bd$iTS+R$Az*q3c*+ zTKrSGqMJ|pTSz8{or#=+0Gj)ON@nx_1RLZ$8GsG58Un@+?u9^xo^T^Ht7ry3Yy&=Q zRq$b0j4O@6hgQe|z=!-xxW?tkeI+q0e>^-a0L0&nZdWv7e53$Gp3op6s&9)Nw-zjs z9xQgPDaN6NdQ-j$JH@Zv+m*uK2oiSEA;K^ivD%Mp8XL9rA(?mxmNycEI{2 zv{#0<#%#`S-77?MTIp5TX6ct8vZV((y)No4driA&7wUq#%cf|{?&gA5g&?|fme)Be zzjRmhk6^)6=}1qff}&X8AtS`aAUY%+D(nf_z7v#z9BkT!zC^1-z;dXt^`?Bm zZnLwl#l^xS7dZ5GJNpJ1JB6Eo7+s*0du88PpcEU2D@t>j&PJDIqqCt8Q8Q~^HoERw zVF!<0p@M~J0SJ;5pZqC#?(u-9VlWb#QrbmF)_h;`ly0StL0rsZ?|k2w#ettIgO7Q(!$E~9*_%2k;jVHqU-yF|t(5GEf;+w=$hzoH-YYwN?R+{3-4A)W z2J26!5C=ioZfu)s3P477ru^x+t1|AjJ~o=2Z?bg@`Fi3lDiO&V?JQzTDZAl$QrPFK zHLvqG)S{7vNpjY2;h3}xirKbB0Vr)NqFBWN^OPVhkSc@57l>CXdOcS@m>l88&-EK# zSR*aT!jVMn2%n6jG)upsUx5QA97Alo1En28Tw+UHvO!5mpVSj#Psr}gw?AsKlRsg0 z;j4yQyQO3>CAr3jTepZWSl$e_bTMZQ>y>+bKj0zO+~m;OKESnBpnB{Dz=JJeVEuR$ z$8M+z2_7%ewWbk5ra*LKzAUa-_glco9BWBxiz0?O5##-`{y6H7oplSW98;7}p*t)j4B7ztlk=_>Hw$z>8o=T=)0MTC7nON!!lpPLgwFeUJWm6LF;?!l+ z8@E=+)~yJ#KOE6&fQ~9ZG1aNxA21`g&n|t1o0az1W@<^~`N~!2n#bskJF3mL6_1?b zaJ0AO%PE!aOurECU-o{wClKp!#nO38e;-i22r^-UZEJV6(6Of{Q4e?dfkx)0x5d6l zM?YY|CiJIr(%nj)++DVH>8EJdHg=QHZrd3FGw*gDVogi|G#;`W(Dsc61j_T)Hoc$j zjvdKex<#43{nl{Nhd`pnsXf;D?V<7=J5=yax)~{ZhzkGhA=>o+Wr)(7WR#Z8HU5!m zH`li?I6N!g*fTIZgVHa?)3;*HmEQkXX7tO;zF2y;9P$mZbx&}RGI66B4;5mzJt13W zU{V6*wg2UAdfPS&b$s+`6cI*su$(9CO#Vq`0`Mo0XSsVwTgPGu%^XF+ia|@O*f}uj z+EkL+@}{uQeGfk??~z@to))YZ`y=wuLmm;z0J6M6+@=zwX6V|64k=uA8To>p9Hy$A zE2NxEvTW@ncB7K`KsL1-o-il|<-6}DvHNb3a=*8Q#%On4$a3lr={b>clBR^RDZjqu z5T`KdJ@b+7CyVlnbcW6|;Kfm%%Xri;;{wpEl>y^VAfveT8+rx03?M&=nL~hLnJo&U z=Cji%Xoi^BWZn4+0NlYa)Y4)Zys(q@KA;jp$N&sTr)$mMOI(Q4bqT1)=(TsNN}5E_ z0luxZu@D>9O7FUsfho+kruGJ_8XyvG>QQlAdz<>8W{o8VdRAAcdXL|qL+tmzy|>ledyuF`-LmIyX>hJ+Oh1nfi)Z% zaMgbq`23Ku0~2Izem|{-e_Fz(u`x*Q-a(_Qbi45186ZmKDZ7u;J>Wr-)~=q6CCX!u zl&zKJJDI$|AW(D|wcac8%@LW6h}7DFZ=*| zI%s-rqQW~P@o1$`=3*ZMkFx1&6BCJec#=fO;VlIkb>mTw2I$L5l97R&!jMcy>oPHH z=7}!O3iTWa2bXl%`b`ir=nZy#vdk__temu%@-9p~St(yR;na}Fdi3lL;x)0MSO*w( zFU46`QGm3rgT&Gp`ATDCJ=P{>yS&fj;F7FrZ8u(=7yD8$l||F2I5F%Lsb32*DQ$ih zDH~-I*n?i1nGhtEYH#?mn21yuQ5C^dZ`dY_yVm&yg~STgSxN8gZgGKD3qHM46_(zl zmU|cy3Vs)RJoYt3peS?$Uom%Jjw;^m*HKFfrlF{0a19!ZtIf+Hjw! zt}wA=iw;`I07a8hRQd%h?^A5*6=W^c#*W$J?`G&frF~^9Rj{@q2dc-@vH)dL4yo^x z_6^H8ke&tevWF5J(sN1>#GpPyld(g!yH4k1musoyO)dlSaK(fU&8P}yf(fQjQ@R6e z5gpU%6{<(r+KOj^X~VH}#Lj)`bi1M>qMBO%dr8yu4!HvBi*W{ay%%nTQ39yfotsi8 z4A85VOSYOL?KK>&n^C~ploKlZps7zpLou!~>BwQo3|zt*0?Ui?+Fp;0+knWSx{+K= zMs3wDp%%U~2*Hzp>Ap{Zm#htj_IF^*;q>NE*?Y@2a@~)&5UdDLZDZ+k7TbSwN<-C(F}}oDOD*RcKfTl-brsS?G?Lq z**;-8@(TA8wpqxpA?!LLSohfyEdPs)^n%bg3#~d@Xz9OOXj5v4=#XLuDClppANX=p zyfk0CUHJOyu=@lTB-%?8OvMLqQfAk{Bsst-W(l8GN zV^)0j?wjlaUsf_v-v#4S;<@SwKV5H}ej}`s`HwrthQvZkoo$?FI~(*g?gvOm<_OSA z42vkA+sTrXH7d=ii$ zE`@{S8k*0+(Km3S8u^_N%GKbPW|D9Jm&r3rCo)ynHr4>0iejmi1I|n-ZU3T_L=am= zQagJjv-WOz21#-#>2Js=OK&fXRlMVfoG?K49#5Io?KZu{*qz=~{-C6~<@xMxU?sA_ z9^99s_;bKei59V1rTzUwpv4@sCTC8(_LnFW+-84e}%n(2e_fen) zZl@p?N3A4c3~NCc7n5gvCJ&nj>V)jx$EAb^R77?q>ZbcOC|0&T30BNx{u^>a@po^X z!J^Y$52#GQkhTZp!UgPT^G~GUpos1quok_`#5?Uc^KBBE3j15at%s$x zktwP5nG91TgRyrY#E&Y;WZ*=YA|FLU2rDapefYUJl&;vQ7-?sn9(~esr^E z&dp#)omzaShhD963ZYhrf?}_{%LTt3zPGck*bL2ecCdnJ*+cXZ9;2SPQuw;p<}!(x z32{c!oZhh=!#fdu|#V~(+&C7~gyBt+&Ykokp z7#c@euXgAE#gVDp9XSPo;%LFz>xe_xQ4r|+aa!d=ImTj}uG14W?m)}CUa;QX=B4?_ z$@VIF^2nG@E6+26u{7ecVO!r3V&{a8)_oGDg}V&(v?YQR(UaNb-=hCZOOhw^E0quF zi3^SlK9Ek^jEkW0sLGLii?aS5vTU_m27iUk8z}8;ExWAxlCTzknqsw8fkBX}v{e`9 z@)mDqG4Fxe(Qk6^evz< z^@>F28W|pFrN+H#umCa8}(_XL}u9{Xp4 z`X;VG#}L#%wmEK!pzd6$xIcjLcNvJX2kh~^{m*!ka&ZDA_DMvWqA)MKre&S~b^H!i zbR(ihPYGw}SVk8F2}!Rf+B`PXDBgjW?Ixk6D{Y39O|CW)YY1bCBuf60k5XZ_g6MFe z4sW$%IO}PMqH#OzKpHIG(g##-hPO{rF0GYQ({fk<>O!otK(dHEC@ zmfIqlf(C;D5egt6?TtkAWyLg33KlVFoEC-euml}-=g>~^vIImD?IR9gNtmk2G%Owc zuBowNqO8+rRWW*oFfnN&F42x1BHsX&E zf!X&MAL{Gl!!rsp*yVjP*wGm_x3pZf09zI!Iu!m&@tn`In>ALkQ(g9S)5gsdp5CNEqmtl|Hc0$fJ3OVyjR5vEy!YfI{2mm1uJu}!wb7dKqZqkR7o)Z zAo(+j%shhxr|_%(sR*;$PxTD71vmk@krQ|hl577fws7}wAm(t_0$<8wF7TDUqUxjg zFLtW&Iw5uG2716osob*E&*kg-~N0iwClveX}u>GeiNm^DSNn!>WKTXNG|Vu$mW ze&1YBv_rkV@`NfSqD|N@8NAe9eyOhsJNwdu;V(-6Z3*JjMRZuK zTrgj$vZ}{A|N0X8G0sL7>wBpPRu0@sSEQ|lGDQCGTyUJDO^co`s#CV!ROukmuRT_8 z>SbvYYWm2B>`WDe8$Uz#nsVj;Ez7~f<*DOZc(f@jax5KXA2(N}4uThC2SO5^N@K)m zgBHI9I4>dn@*bCI7qOms3Djq8vm>S;H&leNDQb0U=P@!17~ZvCPSfQb<`;w9yuGn> z4n~gl{+Ec}3r8t6#W)CW+)+hjUep`dAl$+fSjnU>pMvn3xWmgNY!uv%VbFqytX~v} z@S#{DjE=N^tI8o#_N{;{^oXz%>lGKu1HZ2|79$s(PJU&=dCaDaLVJeUVA> zfmuNK4QQdww4)H4JW`{r2R}HrHOKbD7|DsA92??H9UnB5*eLQ;d5#F>zGYo?HRvOK zbK2ftfZ^G%iWMHSd2ONd!?BARz}rTPX}-(3oJ%|3vI5VMLrK98))Px~%kw6E9I)l~ zl~XS9OX_X2IQwniWZUOB9O2fh5rMSaUsXHnDr; z$dN*uk-!%-y!WeOno+wJ-*Vfx*!DFk-})A5tBRgy2ec0aTxkagDqyDw+W`V}?10HC zpgGfpGwtYy2BJ^20|frs>AeyVTQ3005h+*KL=Y44Vmi3cPV+9fjIwyVsSujM8sct& zdaLr-2{w_SKi)?KypkT}z)cD3ck{8v5v?cIZx#1S1piREmuUV-VezqsND6a(uecAP zTFg-(6Po<7)O=Jl2Sa+m5;3L!cM-)vkdC#W%)qL3YrQv8G%~wu6A#JCsx^vbks>B^ z>R+503%asU8xZS2sw_x8kGn6#EMtqChL zlf(E9k(TEF&$HB^ADtxzRKdT%P&XE`+KjjiH-3oYVDETWVLH@9LP8W)b4&%Rtv$7d-(yiIJqwr+;-<`&76}c}>%#<_j6ot;AT`)eF-N8V zjM=dvqfe1;6@47*sz0DsIpsuIzzqc-c(T{(`bq+?0+zo{VTtCEyrEUM64+_u3*yWAhh8L(g8S*t*|NDis@zNBAb@P3OoSl&qK zONwEitElZnQRDc5COoYImT)Rc&OeKf3I&w^7PmMu)!vQQ?u)ss*iPMS=Pj{)H`~4{ z+jkAVwRH?_27{K;)JT}iGM)dvo!)1spMdY{r&-gWE41K~Kii19wNAglL1@fVdJwfuOuca?!^!M+!;mYr9$0stz4`aZqT&6I$jjcP-Y84*Pg@}}1QR;I zVn>TIVlIXgx;bB-E~Z6+v3cFQuDh4V0|bl3Bz4mpAiUg}WU#Vmm;DGt1{!4_f(RS^ znK`o#usOo!46NP?h=zOsx@=BCgRr94q5ZZ)Th-wVJtsAkZEwQLZ7mk?8*h4Ux`9#r zusJ9UT)Z$*v|qAfe`2h4yA;Q%P;y}+Uk02}oCQ2bB@XjgnJ6VzUci{AF3@qq(kLKQpl*q@&IB6UEcEP&o%8qk|#ghSo;*C zfEEI*g4I0Zj0{Ry^tokwL7c5+ypst-*A%OTpIe=^(pm&H;LY@>E@1V2Cf&@8*<{C3 zWD+(3;NrkX`X`pJCN9r7={O^6x+k~0homtF)EzEg=xtgjJUJvAQ|@%v4whi_5Xp*tv;ix^BpmCmu9dm?-)Mv4r?#u zgE0sB>)hvVeMjSOaBm_%F7>s(^BjLzHy(2yf0A~GHD(rniHRdy-~SVT6VijbLkZoP zDliVU?|_H*@!&3LM^#XWY(3c~<=b5>-NE(M;n>wz*3`cyiS;xd2vm^uV>_jx?sSKG3+_DK&A}c8&gqS}V&HqP+xqJ#HcUgQiU&dVqa+k|&E|5_ z2(GX8Uao2Yk`YSrN8Mb4<@4Q5FNfKS#ZrklO2i>mtQ9m0@}B-n{qrwm9FaN&N2NbS z&~yuRXAh;itnaC6r`ACaMoc#!5PG@D7QoR>!7#`|-LUKGx(gfI{!-$Ro$l_w(0p=# z2@(`ceHsD_dS8i|veY&~Yo_ruD`-SV zq#B1;-*M<@7XR%bSqzXUb@z}(UZ?j|HApmbKb&g)V#o#z{-M-|;L*pD z48XRsc-3T4kW|>q{*PoJu@9PKnV$E;^{Vph_Q8O7Bt#nrYAU$|Jc{8=u znnT0pPm6=5JX9T`j*du~Ia#iS-;m|6`lc*@Rm)ymmR~GlmUfCPzpiBYr=vg|Ee<5A z4~q`^OGFkPHN*M<{^NO#5h zoQb@gUB7#r2AMIzxi}Nl7qadncwI4xVhGB5b!{pN;i#yqi0p%&8B8;S)xLZnGpEmq zL#8>|h3i-yBIt1n(g~r${Nq8XID`$2&ryCdx&y`*v}w`dhr?63aGbLAiyEIhpw)CE zSKMP8-DW*JK&kSK2p8L>j9M5Sa;(&8k9A8)7~|+shN0e9)bZULSu>pyk#9U(x=U-r zP7`+0P!7brzi_bo6BX+Gl&QNvoS5hqZHh#m+njP(kvr8v9BVFiYN0M8z~ea|A}*P9 z*Ot8EPQ9yufRDRwv3yXm52j-FuGCTihE7sBy! zHtf3j2to;7SM*AVd*0~T2q?ha(O zt28Oac3};8SbdQg^uJ=*ng^lXWvv?XUf4IR8e=I}-sqGUw|&FTmK^`eNH9;Y+O)(Q z1KdJNwA;T=D}-{{z!kfHiq9E6SvUXskaSh9>O{1uWZ%%pD9)G%0IgL!Ke(VGwRb_T5aGm}wF#$dn{D_l)diw$-s&&wSymKr8$GEL z|J$r6>JMa-t2)p0ZC6+kLN|}M6TtV8Hv9Wfi~Sw-3p8^Hzqp>C@JxOJb+KC)v+xlh z-^~B>{J(;v4sW4f(SZcHXgnZUG zyxF@g(8-!XYw1k)<01`&=D+e9UQz- zw$Ep^etrZQr4cp3*fbuPVCH;As00Rhp}4(9HI#c$PM)KvqFh4MJFn)Xo0iHRqY8Op zcE+0kA+p4717?rvsrF0D&FbRv>Y@d?J=MkH?Wr!2k6kU}J|g57(WvOJghg^yq3Ln` zS_w(9Y#6q}Z$2{W`3-U#lAI^d`Cf^wZ=dIqli1(!y<%`%J#0%(8dwN&XLlun-RJi? zk(&#xYnHN8L&XfOBLw)mQ3&Motwj(utq1RuO)P(0E>fePkyfTW&y3__r@B~DEh3e? z@pn`)KSNx^@W`^vu0M^0bcN0L4+yZ6;K0|KrwiSQU6_5Ca?k4muHUlelD5{^liCG2 z7HjJEIb}A_S5W7z_l|)&UU}B`Gb>dlOGE%@w3O3xgeMD!KpA6ee9|)@YcGtI3`7#V zI%s?-OwaauwWiMcQ5=){j*(K!ZaWO9u$oMJ}L^nQ=IY=1U*xDyyQVA-2X|$?ll$tI~~m zb&^yO6qPLqy(|SRJzkYLT*`ckAChDqX?pHm@ik|B8}NzY#K|LIl_*&Is0!g4C}&H> zH|mo4n`|x`Pmg)7{L0W|7T=k9EIXF$uV3RL4!5f+OHTdd&tX%TY66@kj z11uef^%J-w_Ht2I{nRLHwhEEgIpsdaNNI7gD3BaY^9G*&k>`7@GbY<84|AwlV^lVe zovpz7D+i=C;+utEnX$zu)@>?R{vvx4uH7ReGU}7tlyaAx;brscql>_A0bzTE#JBrwa@`lmA*f-B}qy@1haG}pt6nz#L*jh#A{yKu#qcr_O==lR|@BVjGMi%gG7^kb^ zGN0m=AAlRoS5^+#9YoXvgBXM7BxM@oA#m*93Y!&vyXL0|w#EMIgXQyzn?xp_LO=ww z9EE#Sip_fKmborAUwLB@)lY8vhn+tv#hTCXMkd=y*a+9DfO6Y&xgF~ph@D~wJd&GD zK8XONgUxlLlnGgi;B0LhHJ%*lI$E)Al$e^eOB*biV_Qn}*299IM3MV_rg)&F)Z4@w zZw2aYoGbY{euP`(mC|Exdpwdufl#-4Jm;`@L!L;(53KIdv0nd|DI}b+5ve&e>7XW|eu%3IR2uNQ6 zEbHV;Po;CtUUUM>J^x9hcGvGEq32h)5$2uIX?X6zNiDp&)GRIr!WZVrUdG8D8uWkk z#5#Wi^9e4Y7)Y@E2q`AyZ$8{q=&Mc4yxR>aIAB&QTR?-TH=*a04;xRRize`z<7gc4 z5e(01ILv}Ve#?574l)Wx;-UdTZMAz)p!E>gAy1J7daB_<0@2s=6Z7n6I^D@faVIWM zqex%XmcI2nSU(@OgNWu4WDjVoDx8TaIfkc;Af$q-+Sj?Ii8!$WrJVg;*icA&{(}Vl zT{)5A-ED5^mNV`7nF?}CYz(I?04*CE^W02OjydTDKIN0H=C}DY^dEVeavJWya<@}k zbto~zX$+f+A8VNL%LRU?w}t>)TOkdHp(%&TXEP%!kO@PSzBbXO22>3!{jF}Pa5|#7 zEwyD;EvZWtu2kLbb|&ha!hlC)w`2LrvKD$DXrJkxyF6G{RdHRlwrZj?IyBJTHt`W+ zmZeT68P=UdiohYomsnP0t z-pA-hS;ze&iyd9znW_ouG_E6n9HEeI1o0e=oejA;&ZH#q-)$;?{386x@AD%k^kjQ8 zFvwy>0A_Q4@*_4&0OD5pumU!)c4t0GjbX!ZXZK4Q;@6~uY<08XV}7+eLDn3J)-x#u zq3s#HM!{PI%bHD$8w4x5c*9Aw$(nhioH(wY*kmAR3n3FQ@E)9A#r4w!c+8w0;I?TF z*H(AQJ}SnhM|E1_hNH^T!-u0z+5cV~-Kwn$on*wSC`VfzD(vj@7_km&C-`I|R!eYy zXoNG8+hTq|%ba*}vK}`cch-}$Je1!a`;autLj~=z1IjV7J$6tzj%$yJoh7I}JC?W2 zI)t+#9XW#;m}9iv^D$n)*sL%3ivLr-i3=f^i}c@#(dXLD{e&d%qb-TnvyP6;7H0IH zM&|r^YGjs&POPX}1hkZ8V#F%QyGGVY>oek1D`tiYwd3e*p`iv7*ZD?lHi>YR8?gpl z|Gx%z#K7R@A06Bcq2rBMP%7CFI>CtPc6B4|0jJ{Qj98r=#@x)bT_>xa)Z^)o3)*?i zq$vL}^P>Dmr^Zh2%}!PE^7usZXJ#utNx9X8#m`l4HD~ejlv}24d3=I$%QS%J=tdH* z6l8=*|fJm{t|_#84=s3bWHrJW8$Y{ z;#VCLKOGal>X`WH*lzsou@~?xkH4ziFDmyd%H6Bne^>4u%Kfr(KaU&cGjnmL6hJRb zDS}?zDT&1|S&i*#yZ6XkNEYc;%X(>o<5uQEnjpO4bRkZOe0b47*)j(_s5QmCu>n1_w&^reDN1&0caC5O6I9EB=IX1`LE^rc@QoU95 z5Y^kj@lZk_-{*ta-+?-_Ac;2v{NBMSTiiVBIdM6+WUvu;w2)^3!!B;|6FLBFx95qW zo7kbnQOwLY=i5N?oa-~7;G*^#eR*g`drf$GXnK3ig*1O;%MxBj$dfmX&UQxJ-8JF# z@=$Gi%``UO2&1MJWj4r>{h^W0$SG!MJXT1}&_qbHW@xg3Ipk24QB!Azf|x^AyS2v0 z=Nu@N%R}e1b=-OiqQbIUYw~TNvn1b!ILgj)O3W*BXkugrs%}Y7jh|_7v^1Zcjt*8H z-qJXUnpqvn>jna!&C+R|MnW&1k&2z-2Ns|0jKWy)=Ma`jz=4CuhxquVexo-AhrPy6 zKoy!o+s7N1in}-ysYuTLmgbR;TL-ng;385z;IXM*CJ}=(GM_erRo0`exI}KL_h->8 zVgG=U$(*+8iP`?*wN=cf&4tPNJDV+oGabD(f?+DooIUxvQREN6!jePvb5>BIE~mWU zBa>w?wctZOi3@W~&)YaMh}&y8MeEA+Y?ef;i+tMZO`vauG0z49+=}=zr`jkQ4}w+* zg%t`6Y^oN$(UObV#jnWzhlsv!gG_{VweoL)moIj_yvg&W35(LP_rEU&QvTKwJZ*(r zmS-0AD!7bF1ogtq_Noe2DX7;})uisDs8@Gz`2z~|;w)3Rmb9YKxm&d((d2Q2v{jn| z{T& zQI9-7$c)p)XrO*aoxaG3ww)2I!l*RMgYM$?T!M=uBMBaUH2Bo^sm?%4U)8t6Pivo= z6KZ??R+!sKQ3fo6%)>`fx(Ud0sxwT?~QT zb1G}}DfQ7Qa)b1WTvF=Y!(6C|GOD_z>Fg@U;*r{_ytBoUzJ#0ZCv2H3%J5SL zGDKwu7rmS+o>NI#aL|@~nU#>XcG4{M{>#r#hhS{qak|wxbZQrEH-<&=a5cV`kIP%OL%Z`?k{ZK)h+kV>pUb7S!GmC#e@^S- z^K+bwPHf#Hkg0PIGP8Y1Zw=lAaNHbBG{A2kDx$|>6S)#uaC3r&A3^fHz-1I95)~V* z^Y_Rqg&8C7T5P2hTk0kGUpS53NVa)6LfkFF!Yx5&T!7my(6lV1+=zPsQf|Q0-rKhG z)~PUiV|}Bm+PhPes`|T~m^U2uA4E#-dymO22;V^N7Rh}=Rquy-x~HnGKiZx0wI8oz z?Mj&zv3|!z3-cJxJ%RF@z0E#zSRLuvqJe=*Qf`?I3PnLI(W|>|l zq7JO`66=RAvV>9HDfes#*JZo)@G(4{{05zn@PQ)8Q*zgXpPld5R##7fv*goOjG+DY z(z5O4PX6zgQI?2xxX1Hj!KL|=bG>Rqoh%n9Sih2cRbt7A4M?e^t(UG6s!fP>0l|p0 z0V716Kq}i^BJMWZt>{j7*zSDxVhc{Wmtw4Z4m@Hl5NpmyS0>OC%9DEW%ANftb}R@& zo*)R<;I4EKsoixMPKASzvaGAw9l#2?)YUFIF_p;fS&kEtYswp!Ew6Z~H_$qL9N`Kv z5q8)HDbLz7TXmy>=L2Dx9|^mn4RcT^mey*kj@MRqqAura=Nb*2j<7UD0p8-l@JLy6 z-m(`0J#mZBD*l<7rdUTsx#uh{98Aucd<>7D-#O@*-R5#GEYK5}dK8ZS_W|nCt>xgm z=2;HXOnALE@vwhB+g80bxZzYv6f(nieryAYd8C{J^f5`n*v!V8DvepEx;$Onr^-ER z_+344+c#gC>=`G5ix7pz97AUdP%^xAhdQ%nP ztAdsb7@I6#z=WQ_776t$@S&^(u(gWy#7adL74-)cWV#xZ9)xV2LcO&|W?YAt>P`L< zq*jfuy{k6QJ(AvlElZA=CV#PY_)42F%bnuraGybzwcxaZ-b#7asn0QSPuh)$eR!(g zdPHK^$PWTU2hqV$$>vfvlOb&_-K}OTpPrU`hVaYi-<7o`TFTR)y0V4_sQ>}gvrGhYMEasI(RS1cop%c&3|deE0=g;XJ))Y2>352 z8r5|KNQ8W~ppf1C`-zjvW)t)`bR!V%Q5DJEJhrt(lF0p?OtbiiSKZ+4Q1PmZdz)Xb z)8du8J2hR*M>5G5CHO%5N|k~TNiPXE^TjLa#k*m_85# zSCjtCImVwOlZO@^0&5;}PhGo4iP-dONGLJ}92n4U9n zWYDJ5ae}<~Jk(j1*9?nww2V1K z_hEl)8){%SL)NR&06+aT!;2$BTBrLR-1T-e7vlFthQ+4)op^RM7wu>+CdkDlZ&v08 z81fSUC0=fTvyiNbmb5HkXXl$P+1Vl4+ESc@duMLYbsj~z)lG0qeYVp9xdDpIrIUS_ z9g-=*@<|sUnYO4hXiO@@k(xLMMgpr5;-Y;SKag4fYV{val5$TTzpVbjd<>6^UkngHiqrCj^Bh@^QYLX<=nVo?{KbG8L<3=^pD8uoA>l!bV)s zXi`bIo~Q*eF+NNUUp}Z}NW_!TTH}eC7jD_lYD+DyoF2yL`w)R=&v3Y;uD4Ou5=;z8 z0Re0=3&MK-YlqWFLvtfV1N+ra9;O<>Q8UP>9~#C0GWr7=BFHGJY$pmbYM*1N;gvNr z0@EY8m34fgA=9(E3AD{_Cj1XPjPmdJ7@i0DO?k6NOa=wrYi(_`PZusFHVRr~;|T@X zNjp@e-FY8^%*nMP&HTS3p-8}eZFWyDnYr18WyAc?W2M&uknsj5*+e;{A)E<6$a#H8=>k{-2~WJ?*$NJG2!iJM<^=;d)WS zJ3O$$*lNcK1d!uhTji24?;P_|r@~w4ABYP^cG-Vf7DFFyZFP-G2|`k%)E~HG)#OUv zLL7q?+YQH1amYp=CJvZ;HN(YG^555uOd##}K-#gPra;`nlMs&lT;%+YS61SzHn2?r zzjE8+Ih_0Wto6}TYaS6o!YQHxF9?CM%vP*gBKU>Az&>$LqxIr{`WD+i5`S_AKa5+$ zZ35QZrsq-|nL(??soMhTFqJ(M@R}7qYv(lznFWUxWwB5>_-xa9Meo_46r8fw*dGST zoov-{%nJCk=h9 zms5;hzsqOskLkJ_~TAHCEp&~aqY#Q;ur z``PkwcA1boy+TtR*B-@O!XbRxhHAG_!{Jr!!7_lhv3d|xQM1}B6xHfHp{Q0vqb%ma zk`JkJdG+x^tF1mkXtmXa&}x@gpQxy^)h7v6w)$kDyH<~e?rK(_Zq$sUz%z`R@n(&G zjH6Dj3H(ICpb8#YB|5+!!ZAP$@rAHlx?m z0$>sDAhL#@8K1GPwslIt6`r57&pw7jNbh1x#yJ+BYRn_UIQCZo?Er~;+u3OiK|0jg zi6rH&KIax0|JauLP&r7ZwgM5Jv?4rX_TvvMSaaA{JOo-k>?3}gf1(T*d)~yoJm05C zf#Qa;HFJR6al;P<#U8C+Nw0zXh z_|>M4GWi&zITMgK*)v|Kr7|(f!0s#c4}Uyx74e z0u4p!wqOFG3}Bw&ImdRftPUEU@8FrxA<|F{>b;hL&G3IzT^&*E7V$eIo*x5Qbn@Iy zlV7(c5vPLffI7=h02gMoBY!HET4LXL?&a=TqH2gx4mJT0FDu*tg0jrov{71?5f>?u zX7;cHI3sGj_Qxk5sBqa=4iP>n6eAnSyT~b0wMcRsyAa$jWGRSPoL%lbV$nddU)6j) zay)uhjYvJaqVn_@&*V9;$}7FfC)W3($Ez!?Psrh@`qHY_XQ{G9iP)V?La6)byo@8VErVkqI1T8iq3_SM;^FSazYi7Q|bHK5}@CDAruv|!z9G| zJwse;evh_KN8-&r-JCO?t7e^&DmAHBrpYdG9|9TpGE!b|h%eS$=ZMUe3w!1Eo3Ibj z*!F-ujQKsNt3d9m*qy$l&{p>n)_Y;o8!GW%vWe9os>B?f-%4DBZmro&OJqQ9qPnmU zLu?7I*FkpC`pFvQxQJLapqn^o=U~u0EU$d1j1#4uSt|1xcrxmBppaQPJ0T(_uaqJ( zFM-)qMbNjD#BXBbkWYRw-}W3yTT9_!6@6w7*knQtvxuLwo{LpPsjkr87Y&%pT2 zVkTp*b*Ny=`lnQwn%Qj7el%^)>fx3O2G47(%qs7YA~xA{tc z!aJa4l~`76>Dx)2c;<1=TWh`KOgtmkO3MR$#a$)t9+B#6-6S|XtLq2Jb}kmGs#TH! zRq$a0u;S}yNMk;;cwjT7BtSB~gTn?4SSS0fU{;b76*XJ6o+Z8j(Y>8V()~3J&d7;9 zH4V}&qU)`5q>RLpI_pgheC#ImGT>X5PG~qw91)q!gHkceAlI6L8d>UM36pE29rlB5gjGtIkiYD( z4;iggsf5YKu)}`ycfwH7=7>>Y9TB)1Al@kZNy5HNfgbCwHE=+<+bB>;`%j^Xh1SHi z6qE(QzZVZ3eUPtY?j6W%s*p#O{j?N0k*5Y=43hnq_8}omwgc82mHkawZf{CW9b`|P zf?0WQlm@Q!KZHN?V)I_>Vi6m*^%F?E&Q3fOGeFj8yA^aVde8>GM@i_dAIwEeRu=(c zRCr!Co}F%VPd8pflzeSH5h$jfLvE$^fffj_QVeK*=pqUWahpr^jp(m{WY?nMieVbY zN`waXTH|k$X;$*c%;jF|DOryw6LI0C=qzjtT)pWV`b1uN%(!2SIXyq!*i2h2pAu^k z{gud1lMJEGTFt{X&Dbc~G4rHJoNos8)DxZOx14>EtdmC)9&n8TK=Z@TgJ zbi-2GCh&&(Wvi&>MNX(S*2rvIPe8ZoAs@$G&G^)C9X3#2-(vj;s-;|QY3f+j)Y8v4sivN4)vKaaQ+?L7Z`5-J^_&hzA$*jX6sjS<)Z&$R{qDltjKTAYQd%q{NSXw@xiFU{^Skx3MDVB zfyfCv3m;lB?RR6Hr-)L@&(UZRHI|QlEZ9=V;#@RT&ir51Sgw~G|4NOe^yNfw z7~H?5LvJ`_0i>);*GMyCebQP6`^1>u;OuV^2!O_hZmzMUksZ=V^O>W9;J-T>U_EHN ztLT-D@v%(F%&HMzhf4>QR{M~w;Kg7@eP*l6J{k!_dsSaRP+c)m>R8arki}h^0WR* zs-`$uqeVTQ2l2?C_4JRjD}N0w;NcPL4=TiiXF|uod#Xnv2NtP}!^S58<0Z_lDRWd- z5u8qp1?WQIe^8d1@pkLmg4K!bz+$?LK&0oB-G|f0YeM_!u@=biD#JQj+l`WL?s%#j zZ|lL2+^RI?P&`+sjsdXg8{=pJg{-MnTsNPh^M`p}??hA%Ux;;FmpVyX-MdDbjB$sh zJS{e3uG6vOkbODerZnA+AUg{4X!c_KVP!`m=x`!IX;J}VRl?oA{eD@ngg(jH|MHg&DiaR-yAsx_8O zp3b3Gg?b~#f;KWr+{T^|oW4QawTZ?$v4fB(xPGo|X}R_M>Pg|0M~7`t2?$t^45#&X zXkHoE78;*XsXLYUX854s+|3ET))1_7^ ziv%DlM6A~%m9pHP66C_H^Z|MPA8+RZA4PRN{!Oxh012~T(5RsXTr>e}69pxP)NHZ~ zv$_#fP*AkAQPg59gtmJ` z#1{!Z*#Gz3*-ZjPYyY*sd_LKoow;)#=bn4+x##JutFO~pc@Vf(J!oS}>>}>jqdGdI zP%h;|Zfub0c17T!Hgv9B(T=9vok+W`GS+5>%Z;ZVqo_-ZuI3YRuu{HEV-;V`hCGs* zSijB|4gb4@-zdrFr`PoTRC}ampgV$x%u}k}a1U!v>2>i3h-l!@#|uTKYpH;JdM~nu zQDH9?e4H<#H+&V*Ol0J7l%|}DWzZ{HWLHjiAly?;iG9iYQl}zJ*TwTG+8Gk_Gh;&| zwYtLI<|XQaYeMUR0jJ<2cHtc0CgJCr1Jk4wfc~$W(tzIb2f5Mz7&4SZAMv;$b`M>c z2{V*p3=UBKcFNl;DT;3)wf54>Z!eBy+Y)zL&G5Hy8q8|2D5I;T3zW zl%|@B?JR&jD4e_WR~%0qoVO*!7_YV2LugJe0OLKpFGxLHw}!A}QwOcxs`)voL(&%K zSF!!gR6A?bcOtQs3Vwdl3Vw841r6y6J_CcLqcb`ysC>LmdLZYa>s7JJajHhS5pr&v z(s850xzV@d#$dS->t8N6V&^Sl(mS|PO&%GW3dE~QFyeZ7sM_fv(6=f>G;B|m9$A&T zpv$+M>ydK*sxJ3Ob8Th+={wkmv?s%7LD7du-3|kkZU0&xS3baFdyvz=OR0fyLolUx zNj2s^+Kn8hnR2PR{rB994Ie{V;0)u zZfF4B>#eve6C^m}u!v}V#_Qev=6DXz4g*@o?48=0HHv<01PuAX`f;m^lTt=Bpu-&_YCh zNd}GQafr+tM{6AE{jt$lz)3reUE8TO4|Ggl$jUFRT6#3N`#|l0?UZvGiH!so=JDQE zBBl4X;HY&rZt38biAEizox(oU73Sni0B zSxc48#@pRZ#0`k{IL}VNLhcEwj?K(A4-;>w<>VD#YPoahrmDD6RcszsT@7W>4$1)4 zO=r&sLw!B4tGkL&2n688kX3}KI}b!Y@@4E0Yh%(H1uACXW5S_3NopmrY zKs5FP=4KwryZ~9pFh#1yAl1x-tf3?POSc7g9}Jz1mLk;=J)^y|BLQ<&AzPZH7sHb$ zQ2z1Uhn4dWnNo?TQGQv$-26nLj}x+#3L2Y9&^Ip^TR;lNL*~8&DnR`I9)-X|kR@>A zae)fDvXI0Ik>C+&Q(26dK6sSb`UC}qV45#Btsq1kBL&;mG;EJsz?Y(Z=~%$2!CW45 z!;*D?wLV#0b2UuDy$ArQ{06B!b~Q#>t;|^C=hZ6NP+Ek$NZ}*o%yeYyTpU`WB8OeA#H?v6B|L7ea|C6S-4bM zD|s>vnOS(xL~w2Ix-^b!Pu2#Ian^>}o?05iSQ-&j{OvwtKWh-O#<`;pHW`jR&UC1%(#x^SbOeph=<#)K z5#7M!2MP0Zsp;;U$P*)1&!x?7kIYU`xqao-;`WuJEtBYJ@r4S0{eJ#gN#8eNj9NGXu$51ElAz?gs!x5R8w8ik+IU1?SwU}#U3wb?hoU+&YTUVP3A27 z-<`8iY)l686pEeq*cvFm%+-So)?Y$EozD1UW^1iAZi||_Q6wF9XtfZY&b^i$9>T*G zB3rH7*=p?&g1rHR@Nt0NvD>}{KEkpZ7<)IofzXB3`I>+jCy!GU%tI!2KZJ54w4Xtu z>GGrVx+}ON0p>2Vk`qKlvFvIl0Sq{mo~MY2c=(@461y%Y0KG0rXja?7 zy4T3QsIW&Yj%$DAP|y*I7VStTeo(8N7FpM&Lf!JV{~?n}%x`k=Wf-`6BEE=R^LS1{ ztynmP)~*}+ar>y+&@VIH&kA~$zdZLY2@ZdTAnFKIgWWhqt08>-5fwl%btErHOZiR| zjLKfAi-Fzf$stQ3dAn4@AvvE{lBkRjWpFyZ^w_){Cpx{v>URib0ps(q zsb++%>vLpNb?-$|l;Vh67vx=LjXYfq3vT$Oj?FX|eeA&Sc6$#I+Hh>h*U2wTon4?x(A~@iaR4Z(D99HLbZ6#p-b?qz~ zA}1~c0lggD*Y*A&!9T5W&Bf{wGBZc0Y4sKLtr;kl8xKJkHWs;}UH*6 zP;9j*pH$4VHd}uc0pBJhC36pjzm`f8et~nYehr&15tR9hmFVjQM;Yw99u4PlCp=x9 z@X#jc)?yDVi6DA`Aif~I1V^+MD(xw^g_h<2UNC#KN4OOo6Y>s%GdeZ#9S1&wJALkf z59=l#Udfw0&DrAg}erLJ52D9 zGvu23Ms7GEcKu7=^X-09EOF4J`lJ@gf9y!urZ%!BCW#vaH4P)N$v*oK)`KDjN4Ef0 z6Mwrd|6XDZDz3Rjx`7iyQ7|^Nf!=y)gj3A(qM;(%sO(O$pE;S+&&Upzeyv0rbhm}wAdgsP6 zCV7i=ZjYcb2U6u8?Vin?;@Fnr@A0PcE4;MsX)_n(BWkFb1NW&wVy#gw(moiH%iB8>iWywk65$ z{6fjrm|KJM*Mf&to7N8nkxSl><@SxaFD!pwt8J+vK41<~;LFK}+`Ih!`RzhVNm1#hhdx`xKRh$P`> z{ook)d@{ZXyb4+UeY8uPSx$p&+|LW9)td1x4dyxxvJ<_0k_IK6w$D^65kSRPb&P`v z_=j;Mx>T#qCc)i_+5yj=q}qV_KqEb2lVZ`O%w~sT%d%zdis8^5fa~HfYQL+{NASSya00M$dlg4@l2Hn^NVfRQ z4CI{JvL|UNXf(NKZS@qO69dB4tdA?#?E zKGej9vH6{V06Oj*f?%@sb%j3>n+G(V1p2<1-%DV5b6HgASajR0a({Vz-Y|e3DF1M7 zjPszs{CYg3egM3iRT;YC%mk7yNo9<-04CyH;{U>ZXe6KcGLorJh~gizE+@)eut4qV z5C2M?64=#8!$psT+rBQxWXkgQGLY1!-oazm6kKWzD^T3D@R(^~1wPTTp{M09H3YM5 zlY9xn-})?H0W1vxe}aXQ2!P*3|G-+DmFmQ(SYe8-5X3p$*#n2!`3JVbIdZ3QC&gAM zb3P zs7tBGh`pFeV8tc^0A|K=FVdlTtRRV~Q4w$vudA*}A_Rt_pZcs(?((L2ZgWTC8NIGm zLbvTu>+dd{6nF1W5~6W1p&DeZ=EGY5hSseN$fR_FZNHHd8SqhCl@y8Rnn z36KTRAM=UWJcW~L-wmeLdulkj3@08OK+xB&^7@LDxPC@Xz`V4O?p#fG{IMI{Dar^a zQk6NdQJXlh5sAG69txg>GWudw?0eNkKI3AScK0H1FKFDEar&aJw}9nC^+EIN$6F;oaTj_omCL1h!oB1t0F@oN3XcH zXzqU@`x5#1OSZW@MTOEl&hbZ}2~JpLvf8biqfXmc-Zb`Qsnv}K`-mAHLq62?oF9VW zhQ%I%Mq=cDgQz&p`eWCy--NwIiVt!hcFy{UV#_(}2d%;~rISGD2*1(gya5C4a6qK% z!0U(jhY~AdhuQk*lt)9cU`CMWs0-t1Q4dO##e3Gp-9EG9$-#N)=wdhiwVZAE3!RK+QEK5l{$YrfH zzI5FJs;Cvg!DQ}$c_`%jNed*7 zr3Mo)uXn8z8_$45e>{Thn3nGQFNNZ)m%WZEBGo`z!{IalHR-C1aF85o0%28i`?Ao1 z5ZyKBxvBIRmBwZl{X?IfWkaraC8awlO`$r6s!&@kf)HwZ>?^BHNX&P>vf4N@SLQ45 z`9SX!x#^f6hrdXVHAQfa9#3#sKPi#}uGN~gMfC6Whfbh59W^@8OV9Y{Q605(WK-qP zs&*pw|K0mJWSXRZ&ufs{0e>+JADo$*ywv7>(uqIeh?1sm?A`y+4lCJdry32Cc#+?| z7&~$t%8A@@_Z%*Rh{%kOFVXJ)K0hD;+OnJEqS95wvFo0RT*p7mV?7D6acXF|f}8aE z_no~K(RP}g2+Q$hdi^M;ZhwIULtp#^9#}9<8g>)Md#R)7z162JgCk*h!VSU z##l%SAx_W4=Nx)EsYqaHPvVp$pGAtOV6VKLL&zaUM1BVU-Rd*~$vUo))QS-72($c#Hn5yfsu2x+3_}^SHwZ42@a$V74FL73nfmEq*Di^5BQ*y9K++QxfV+V zD6IJ!)MII1ny8M2hZBzm=aG?KJ8`%0C~j|U-J#24xe$WAa#-y@>}OpFvl_QE$}SW4 zk6nN+vm?CHbzAEkrf=!#a%$%&B<4X6>UHE1%=ao0$`qv#8%4J=aQP8;AFLd}^-g$e z%ieX)JU2d|&O8WcPkQEYfd2W19tDupB4cMtzMwVy8W#-F2K@O2^l!`g(G`zPe&glf z5PIe6FjI;nH>4k_^(d)wzaq@WY65R&QJ&rCE!t284%nmrO9T{TMRu~{NKZdf>7KRd zzMiarjtn`i^y>RR?d%n19A8nd{IPGL(c31fJh1-SbQ^4OoWN+~#O=a-wG%f(me<+g z-l-k%=k!4)y~By599{!^QZ3q-!T6F*0dyS?Fp`JwXC$#}x`ECoY;Vpf$(d-5Ng_hm zcXLd7A&vQIR-l6skppg^K$x^0Niy^VD+rt*0H&FkG$W{nfP}$7*H1w6TJz(sgZUg? zUniE+3BS4gA#rX&$Csfkxwr=l`F>>a_#(fB02>p1nM(K(U2I*?gu09u;;KcEI6^i#y>EO*i;e!y!k(AyZp&K36A!gFr{%a0-vpaKMp01&5#i_&)}R zd}TBAf4rF(XBa)&4XR3a^Ld*P_MOy?LO05N*BJM@x}N3ry94GvakdXm-YoAg~{m2x37FVK9h0*Kz!J^ z$36t^xckP$D;(ii5KA$C#V-YN+A=~2h#~EJKT6Fyhg?`v@Z*HD+Ht5VCQIs|E2x^{ z2u=Wv9GvbUf`H4Y$e2G}Y|*UB2fH-FiR5IB9FM$CBVE+NCp0q3oOB+#d$bzkm~R`otu}ImK?(v)Ito;mBw1^l>`!%kc(hABQ=#lA!zgqavBs}$ZBG>BB;QuFE0lwMbCuI34fux$jB z%@xG-U$z6&b_iy7)me2I8T-|-8ESj-II@%tVjyK-_G87`Lo8oo3i58bS7799))32+ zZPtJ9oD0s@j#A@9?L#MF3z%nwtZ}ODhAwq~4kPfd)_pDb>r{U3f1q-Z#HswQdpe;4 zC;C-D?-5#2zLVb|TM_8k@aSHyD)bG{>t zjmx`s?#5(N@#N5HV>5Q$l1bnnZ*dhn&St>t&CqA$EK+~Gz1FgrR^0w^K$X(&w-nMV)rGk7cEs*=MhxV$+ zf0ZZqJ%xorixxd5%}Sm(>=fGU@4h3tS&=U-eN#P9WpAb|<_+4io!lcSI>U<-5KlND zT+rz?Uj0(%$2|#x^K55rh14chJwPFjNIoN(8TqZH!dKvP(A$dUG6E-@MIxs{{fhj6 zZaTIVIMna6e{HekW9uKIV9Gn#zGtEI_#uyII4noeVcp*-{eUK1s9TT9bz-0~FE=-W z(B!_A{1m5A9I*D;h5xM#F%Xn|kMaj2FROTr*#b8tW?d~plnc5&catJH_Gr+Cp{!^m z67q?@=8knf&ZO2)RAi3TKapr1ejG1%{4CiO$WSN{1Kzu62IfR+X!BvNa~xTHvv&^M_OyL>m|Ms9N}z zJCc=E?I}5$(NdW_iyQ|dgV_0CdoaxM9NCx?InUDbhv)@u8&w6l(QONI7QQa;=$@%n zh3Bukk><=jWPm(U-ZXuPba@P`86NTUUG=X^hw6FLRh8%)GLOl!{&x3c$@twADcj}D zy0%&cnkOK~W?#t`e~$y?OzRpQK)3!Rql=%yJI5I+Nni!Ml{YM8r1rP(QDz9Fo=iq^ zn-|Ko16o(&bSzy5$@|iyMq~dmjOxv(JPw(^b6^yKuDxrwTqb}HpG`PO-ou?7r;~V(kkfOlY)2bp~UMoa~VA15??3!DY zGdBA{O=&Xz-zj~#klQsstzhyvv)f!B#GxCzEe_z&FM|Dc|x0NGvIEVoKiWT(W^J)p_JkX3bJir}}L6v4p~ zcn2K*F^nuoAf6vxtY-LIMTBAhr7vT=$a^QnJR0(z(>*Whi9z5Cs(&I$}D>0ss z{e}iT{7%!5o+l?ADxY#sabw*ThS_XA3F!zFN&Z5%+=+P=Y;N)cBLYkZxY#Pz1ll+9 z&f&p~-V$u0i4`QhN(>@DWL|IQg^s)WT6!jb3-vNp>;$L+(G)11O3smSPgn=~988=c z8;KUZ2&$gS8Mgws#y=L|ns(Q4HeEHx_3!9FEJ#Gc(FL(_uHM!d@07MC*WqxFn7i-7 zH?jI_)$2aCEAEg&%{q%$Z7X1t))16kAO@9Z$*SCr-YLIv9o8E5QKOZ8C03r2Qy}ZS zkz7gUsi9WCaxPQ(D$bX?tZUvJ=k>v=6`HcBG| znfGH;I<;{^wG}QZ*0YBHVsM6pq$0NDP6A8Tk;V%~>Vt;L`R*5?UPk z4T-=v5hvI%R;ReHp8t{D-)Fx_Y!|0(t>FT70w+zN@?aXoFZ=m0%kfOEQq}dxg2t&% zYY?e`I4hKz$^+eTBH#Ia>_I!)*=H|dclDRs^G<=?2-ZEX*R@Nm#{!NoA3P%M|9%lO zy$-ZGvb89D-on>2!uclIXH_rXwZBeeg!qFz?Q(B80r}%g)f-h>!vZc&d~3SAHRbrX z>gBB~x%V5{p0tL|z?^7zHh9%uHq7*UKL-#4DwrxS!AHB(f8Cs$P&J% z+%G#)kyp%jI#hW+*JQ79k~*Bi4@`NC{hCjE#+~WUXf)av`n1rdKVc^dYqUTc)1)$S zPcg6Q)^v;znR_Uh-#4Q*RgNM)v&FAn-Y7zu{iLlPjm36TrfxK2TY+7%789?W_%!;% za8P_U{1s#qpO6B4D24etXuR2OY{7B_t7I{jz`TKp64djU2X=nUo!t1l^oIB~Ae_fu zxgAsXt;Q$aW?m4x%n2pFdw==XNLVJ=o2vAPF!8GR4=A2&EZbGSSG#XxVn}&n#?a2! zVq=p-sK0#A9T&#jgUh$h_(sVd^Zl~M^1o{LHO2}(iMzCDKlcI{eI%|!fguIE76uDI=WZ7DkCnQ zVgjp;oL{)cDmsa@S&R0eW=Q~gw=7I#Sd-6{Ri1qlUnC~6@+NRmzTMoTjd{-;K87D8 zcj#`mlpIFjIHonaYyOQf_xS`qxxB^9D^>4GUWx7kQ!K}JNwO4Ke9##`fR$j@Rq`!P zBVK|9k{WBRi#uX5xy7elzJ~F;-WRh!lN$g^*143#ts=a>b`m z<{2@KQM-KOOvN#ro!U+{ z#fkTTJy*Y%)5f}X7(69ef8gLG6w%VLJZ+iBsRVS%gd`hVy%`a_8IM$;8V09KNuU? zO^KDZz5jc?Z6`??6WJttaCeK1^JFJqAU*bh?u^O_!CSifz&|{UaP$qc_c9b3< zT(Q9=Gi!dInK83hW@jM=*^E%a4X;4hmmU2nJ1#Sa-OQ?7#8b8@B6JLf zgk~lQhSSV;qKD9k_++LUkr?plM&$bVMnsf0C1a7it{QRbp%E#1Vk5iMy|P_2;N<_B zSE@a^_|M#}gu1$99O{=V2WB!oj>RwVd`iY*d0CoJ7u-n|#aTpzK9bvS6`FFrzUdZr zUw=g{`qK3fIxG4i{pb~KSD&A%PdO#_in{rX6mM0}Gsxytwk_oZu<*IeDdr-1tWvXO z8b>{mH;l?DSyW6W6+Ve4C)osUqc&IkW^Q0gDg2&@AS8|O~JfV z6BrQBD2U}=$WDU&@=OUu{=viYy5#mnzi&Sz%`iCH8Id^G%AQyx!Q031sl^6Jll1?t z4~64P_2X>S|AO+GqC2vP=WEpzR@4+tcN=xy9SoqnW}Ms}XVr|Ys2MlCdwrcZNw_C? zr%SEyCLloc@9hFxxPfi4*%?4$RS}YmIfYsC&sgON_mZmx*;tq-ijHi~B;Ng;u~`ec zGsw#`NtU)bBYcXwlV{b8E5V_OF^>}C<|$_NF_rr60NXy2%7;mdc4Q;W_>UD}i-1PB z2dQGTXp|de$%U^Mg|8^vrq;ff*2HbCZdbCUq{XQdI9{D>GLAAyz3Fb^)s8ZToq3W% zacWJxVqH}f%O!EwHnTmerVxGHPkn7ish3_}O^ugJ`UYxzS_ic}Nh;QP((Syzo!b>~xe{wUSk@QsQ6*Sl%hTz@b3 z^txB{I#TlGWCaQlb7VB@w{BX-Q@N6e{Y&qZEh;LZxRMbaEl~1VQWX3HAmceC9%5&l4#RdU`yn1o7d0yOZI@I;w_ zy9)@Xon3gkq#^DTBCpU~?_AdcH-W+~VA_X>h~-JFzX5dKRX{O4Pg4cZKL;MEDIy~g z9i0n(HZJqHk+Sb)Kv;kS4iD_r88=h>Zvs9%sGFlL4C8!8+Z=r^bwz9lftvLFy6-Tu zs6Y+vj=Vkmr^MCO&BqIvFCviL4-58izRZt%BWN#o5jm748O@+Z)m2ab-#Xv@K3xv% zRU?LdK1c~ROni>-X1+HuwvBvqZ|Kg9kJr*4m!`KGA1`=}lW{A?NPngek0nc5NlhxF z5r*iHTdz+pq-123^tGGoSW?ZqI?J~JVE@$hg82E?yxgX@bLqQCmdX?>FKXQqWjGf?KZ06l9THfFD|e+-H3Y zi2zmB!rf9J4~8ULs6<6=&fEihkazoq$Twg_kAw@*TY&saa1 zOUC=Z!tupq&G~k}L4$8_C4sp)6t&s6@V-n^=`ooG+}7Z^$e~i2LQeavHe%Xk_LV(E z{;&cnO?=&a+4m|$a8{vLpz@$>ErLO0;mh_BtKMc;Z4>C#R*hr7V9DlSMsvtwRTx`}h*m)OmCZBaDcxY8Abcq?4)rWia~;vM zkOSMLDLHTrs|0}8IQp%ceCJnz^Oe$X?X#B;mrn1q7yV6$9;z%;Wu)fP6Dm3E$Yq1t zU{=t?Cizth0lq=5hT4gFuvHN^Qq=G3)|1i)-Rgb(c@~+?)f{C{JjH(P4rvZ&;XwGS9RWfEOi-*J^C1{OH_w{`lY}~>CcH|xr)24@O4af_-Yj|fs0x$a`c_;K=EE4 zn@Strtdzm27VhVE>T+f3ve^hrRs2!8)T%dEO_nk#>jP=J_hfFzoTg2~u|rVP9*hn9 zx|;XHU;py+E=ab7@g1j_MR|!+I6_@?=WXw?wS=-BoebDzp`wD_94fbG3>H-RHmnI_ zC7`yWrmpT?p)}PbE3m4S_A=6%*uzr?B{Bs7+k~osyH$dL#bR-n#hnA*k4=z4hm5WIHI*EV_0_zJd)`JQ0lQcMfUgX&ytB; z#|FZ5>?EkN_-Uy!Vh2m!IUeBmhqTrEYct*sneE4gz3vR&R{ze3Dy3+^wtxT(OUHQ! zHtdQNVELe}9*y)Cx!>XRjOisW`pr-3{|+#U!ngX!FZY1(<7s>{!jOe?y#rm5w+LV2UCHgTU2-~{Mlrp7i)JLj zjQC4@h@5VqM~gnob&%YK!g4?a91m2fBV*<-5MTke2~#R=&DD%wP*8jFMcwjEM#AH1 z^9{}9m2j`hB&}!-29Md?^`=9F9_G~cV}4io^0nA^p*Gl<4518|10vuIW1Buc;{WeoWQPL&>qF3{~Em-h-k;C@S5}ihM`HzRPBf z{z_|jo$bR|cNE5qk(!$y;Bcd(t#8}-gQuI7)ZjQr= z7nL6(5UBZCd?Te4Y_;fOs#Dx0u~q2j@>F#FUEz>K^xpEmc0)A`ttW3)%n9G!0!Q04 z{nYohNlg;XyQQnT72o9RE$;s?|pj{SzcaB9zDAA~S)jjM%HYh_}Lqu*K3TkOE^=YE5_FMGx=-tL#P zOhR(N@HO(k4TkS!?!x#De!+2fp4j?9NE>=U`$oU5v@>1U-F{C?i*mOUpuw^&2@TER zi)>Y8yMl@!rc)D0VCl!_e8!^IqT+rO-@%8^TDX!golJI1IEjHgn1#M97b&3b#ETU< zu4ZiJW+--hGEQy- zz3wGFYiv$pO#Q{8&5Kl9kmALYcsrciyjW0Hpqn5d%%za!qsj09eaPKH(yhf4_|#S} zmem6>g}KwqpPxP?(IdG-Pi~JUXaCO5>mfu#Sg7~`0#nqjI!)<$5Ivj=L;v)Ss|qM_id&!%!{~#h+Klvw!TYW0I=l!4%EHxB&}M z^lyKZlT09*oaHs1nk5j3oar~)dl~O=`!}wIRj%+i(S2260|Qm-DO=)uA3*p^tgCXe z?h|o>V=re2qrSBv=Q)`LPUH1W!lrW|f5T@yBO*AL6Fd56?|z1WW}!61pCXxIsd=9E z!_TMuH5=;Cpst3c?wOXb#O8g%?FX&J zD|y(q*E9|@mUK7p=cS8|618nUW?Ql<3G}Vr_;Dj|D0Nn_d9hr}pJge2+C1pneGmx& zfqYsg=vns(mk$B5s>fluHv!%2%=h%zQ^nj>47)w@8hO6YuAj|$?~lUyCn}~|Yx$n% z3}}cN5a>Adsg8q4l2h~0-v07~GtN#OKla&I&`a|WOfauj)a1_VVLYX{{m37jo|zx* zev{Z4zVd^21e=Wy8LP}e2zPFReO)fv=#m4NE>#IV;X@nU>a*tK8*Z^-Xg@?}0Mu#<>B#X z_o0^T786IQ-QvzAUt+fq#TEqR!mwV3v5s}K8mQZa_t&y?3?4q)A- zhF|1jzG(2JgmsgzBEy? z2aW@PrC7K8laVH_36+0z$CWBzpm3^re(RP(ANrz8IK+1Itrz_8mwcpf2PE{H32hX) zUl27ZdkHaP25X3}WNy@+Yz$^>E&ofzUGidNcY1dJf3YGQ(Cb?CroXwhCx0w>ZY`E2 z+_c}*gWT53a|KDr4&`843eN2C&-{-#&t^fc?^~{k{RQ9GHJXLc^S!(*A>>B*{LrV)ZdcmWADoB zI4`e1`Q${e1gM0Ouiq^EZP%l*q=+)!@tDMg`OtjP{sV~w;YMU)$R4oPBh`f$KtisT z2i%xp}eM+_d=j0&V3VJNpz$#H2Hre8q^jIrExLau#LIu|6Vr6Tn_f+|YMRb`)3 zRr9S5^{ngMA>2a{QG_v9qcp2EJkBSgqaxrZQ0sBTg-T*2H`CjsV&R-f67 zi9r#ES!2Bb#1$z*XtkdUAx-)AB>~AM@^Srk?ktR=fDL>MGoUq$q&@fm*&Z&D3bfID z0OpaxS7Vg{r?y^JpoCtp_}2bpMi*q>X{iev9UL6AkFgFvBoJvQ6-S1%p zAg;4*w!H&>1lMp1*NSY3BQx+hm82+)P_rVXA=E8?lR)CHCpl3$tGTxPLo5;rLfUkY zNLfg=RGyPx@BECw9dC%Z>}|W8CV`cV2(bVu28;!mz+?x_PZOs}A#|06-UMQ>jy)%1vRli4|%osi@pUkUbf9 z`iB}-6|aazc2p)6%;#xOW34cRncDJ==;hx>8o|N7AXHIT5Gi9QBVFOa9q69Omk7FN zNS| z8;%5u+*peP<27XzsHs-vkv-br{*qRJt0u-#Y?9Gh{UK=Kx!-61n(8 zsKk=tcUf#QC@tCp2yj^lB{?ExhOrJ{OkGv7qRN?9zvgfE)xRybNDK}MDhJPJAcS?+ zYQq$c3{+4+1^+`Kd--LI@Sl-8t#~g?P5+(@8=9vm-$b0+IR2{p0~b2WNsfLkR=};T zCYAZ>sGOAK7Uw?+O64e-&RL+;K`k>**NR)IU?&fv!(h^AfZr2#C%S9JyE$<0M7zN` zvd;>62&&5g$KFG46Zw!LiN(*pxr5KDcrJv%S5ZsqFBL2T5#6Hdk0#=huWSZqG zh2Z2{GfTDAGYdBqfxYHoR(_kg)$%cTAIuz_9JdhRvDZQS?2=0rs6~!20p$z>&RdHI z7U=vX5{G?V-aypQdc5SJwez5?mu+N+D-2q0uWqgFJP$rdv%#3(J3%+yUi;x-M<;gA zbvkjum+J(LH_~|a!@M^A45lvo0jWT4>+6^Y`NQxR1|C~g$V(x+Qenv^LToWz_(*p4 z%hu?USRE3~;|09iAlr98!`oeoJj0YOu>VG9g=@q*3?psXavMIl~H?Uh2zOhQ~9AeMP7q)SPPjY!3 z4Ce?{_zMkJ$J|3m0MXWl5uH~j!j%?%1~E~WPTHd>Chyx5e<(UXe8@gG_X8}nWctI$ zkAWI3nWnnXjRhi8Xkv#kHl%jb_xZ8P9ggVMlA;uW#D=p9%0hBR$$pz`O^ihV zUPvO>@qLlwK2-WIxDR2AnaF$$o6APoIcL+bH5KHY>SnaFiA?sPukFSb8BcYUgORE8;Z|OO#b@b@LROa~z$t)m!`}@sbvQ`F?C@ zHz#_NN*a3K-MBN~r3JQdzGVv)qfFFgpOx%H=y~^V0iAWC@fjAe6zy_>)z3u-gH~zhO#+^hoaIY zQ6N@5gtv3Daz(mT_=gtE8}!UVUVx#GG710RL|qvrJ>hz zG422{x%QVk84Hu$ zP6=J8t=Uju;>zjGXDp!+T~8rhCGhvF<}pnVk_DPIS;}M$C4=XYQJyL}$l~qxu6=jz zv7`h{yuMiM9Bvva)|VsLN~%V%3+)faRy3$uu)Fjb>*X55VM$STF)V?~jk@CeETO=FfTyK?2^V_K5yjTAr8}3R=%}Yy({@ zxXTX*o6uHc;VQ?;Hv3ALf>dF91`iPqIJKw>6}_cjL!@7Q=$B~k`M+WF2Yzknet-Fm z-k}((%csc)8gV=q2*mXr7!w74YuaQW>p8L|Bhn*a1$2M;)|pJl@#7mRVq(~YNfPg} zPoP*NB4YuXS7>kqTdMKi_|aUcQ7mImVOr;6h?ob|!^+RlZ8T<@ANfnRFgKIXkez<= z5`OQb+Sspz1zlUfM|4-D?_-&Ccy6XvBSsXB;!s-~8-{^wKpZJTN1AfAhVz+dv&Gm? z0>}U{Oj~@$es{RL(Lz|ufJe}6d==%%*pL}f7BVd}gnvu6L{QRB?DzGsbQ_c-C}a5Y zU@W$mmSOH1%aVy#bM%H ziY-$&z_Aw+`IO>z#G@5I&qSo3Ox*rOed{fKTc!>Q0W)_oy@Q)9Z;!+hy_g%&vH_(% z*flRFVAXo*t}YV0Qax5!uTYzt_26yPm{~;f__t6KBdpVyI+&`B7aIHrb>HV0M8Y0Vn)xhq4JR>F zNnGxWbJrA!w*cy(sOpg?IrjxH~F=i?Suu>8gA@K_cA_+ zOYk4@aHp%OKA*J1+6MO(Om6GH*yon7w9k+AaQZxjKA#+}Xajp1jSK%jdb;H+?P<4E zPsK2di66Jq2IfK*^pa)~;G7P_QX6|{`H46(4!Y?_Hgoq6Ae5S?auMI!H3zlg;jLUb zi88vUh-Sk9-qwmCXA?0@8rrC+`F^ki;#x&K(5OPh$l21qR=h>?ApOFubYc&13lDaW zVPg-3>7gruGJy~Wx}c~kxd9v++@fu$mhV;~T8J8QXyV1YFEj}%Or*`UgD$MDu z&_|8o%My(p^*rI!^F(zH;g<>NYfj6O8VRtNT))65Nz+!&d<@e)(qIVZ*ecjUP)Qz9h+NsR(YjRHx{aUiMYmmy(&mC-FRjs!T` z63G?w|FPJ*z;qypIu;+-F92%td97hiwgc0@0aHN|MdB_OP)g(pcF0>q?57}k2Cfo* zw&%}eB9d@n`8K95d)0Z<+KQ4LW)1E5};2CB29J8wgf8X-un zf~}KYI03TjPQ=(R4cR28GX>b2|IYxsjcq{yJ1zd4gR`vtS0O)L)_$6g2*vWdmu*u7 z=`M3S6k#sjit;mmQJOR=3dS0>RHnu4KznJVsMFhRHKm{~sU_%*Wqk z5yE^71F{_}^K}_$2lK&B*h#jC#V%wn=I-NTh1Jw(8}e(8r}S#9Uy2}M^8r0lv}or4 z{2vS#;{LvjjNuMpxW|nUf_vUCZ&e$6ia^)k2#Hi(HVc@<2`@SmTOy8ZS!%>=M9$vz z<;ZW>(f;!PVzdZ)QX>^iyS_MJ)_Nh5L&Z7(|B2c6#+}}*)rsh0{pe|iYmRS`Dx2%& zhy3Z*?BZv@jRp2246-?(WDL!L&GO6&aCoaS1NU3wTW}YKK$zo~tJI%L<+Dmw5|!!Y zmlbQ#2h^{tu+xXfjPb*mcR$82#<~WnDoijR&t0`GIZd;>87)<2wa1vZ+!gLGauoqZ zO4cyA7qVf_$W3Q7G-SR{(ms#<>LHfC35ji=F*hal344)@-TuYGmPEN>tz|5Pd;4W0 z-wChMGj{6|GE3!hl9D%VCpAE7>L2u5 z-)r&JzbTU+|E+XIWt*5hHdJvFR+D1!Wz2g}P2^PtpF7u*(~tz|BL`hX`S*R=wMdtw zBCL&-_JivJYnn6h!4jGH83o9vGQt-#ht9-_`p$chg-Z(I_UWvFngU~%7X_p-tH`C& zd=&_Q%g3+LYR9iJ$FE5#CZm@L;UnJUTPQ-F$Av?%O}Azh+l~A%=B*JMXlwk+P{ni) zu5IFShx&+>W`(+uxJ6st#H7UX)j3*j>sjNvd3;tk(Ts{C+Ggb{%#pfnj4wZT8Kg|h(0NJ%NHvzl!|9!zg=(2>YX%x6-&9_M>ok2 zQSW%NPv;ty0?HtsaA#7Jj0ug9K8+hqtbSBN*OHB7JU9DPbJG)`l0Mb9KvrTm?Y%A? zS8v<#Du1N81gb)C|DwI)Z%QHQx26>!fsS-O*oCBB<%kYA;Ai!u2x~Z>6=(T7xMy*F}X+=)D3XB6IEGrD>q$-B>3B zpP0A#4Q_oYozKPc#y{2hz(cQC=?tku{+d5YP;VY2EE%3?iR+asdSpIy8FfR1yc7X+ zcS#+`*Mf#zy2Z@8@LqKfLm8Qq(!i{xi>wUUN6M@1YhfAujT zA`AI%jtam47NAq~EmDmG(g;_$LKaLvM~(SAzoI3@hI-9|XD!Max_A!cTDF{fQKc&>Y;0o1J zPD-&$ED=Y2_>*rS+Z0{g4P7=%W#^J(eq_IJxkFNz-%b;k*>-FnR)LPe$v5qV>c=3u zktl;ib%qI>E^M6hE zKR%>8s3+mktXb0>)L-y*M$%8OTPQdi>;*N`8v0O5Whgut8GtQ;)==Pe{vE0|kP1|5&UvAgIx z-HGl&q8V9L`HXs+h>d6IbrJ5xbenrWvd=kb9k7e<1v-hjo1m5A#e{s2 z69dy6@_IB>yCFlD6gvsX?7enYjowjMqiyS|LSH$48wa(~2MG9L&-S+MMTKwf(X(b0 z=_M~zzL{Gcs4u?xjzQjJj0igIc)mq2Kyyp{ z0eL;PMgc}xf_un8OF}Wsjb+h=d#3Ftarq$uo2*!S?_d_)0OkjpdP8bhSf2`L)x@eb zn!wO?G#k^b9IL93z%^TD_7J;wxPe3uACa_5V8}m~ksaX>b&)eHoty^3?uK)MVzsd6 zgNHw_3*+emV4vU$dzB&75U|6vaSj)YCl%=G$RnR61!t7qZ-_*Iy4LVL2nGF}K}61Y zNnEe{j4&hLRNd` zbur1S|A}hRlS=DE#>!~qbFwUyv@GQoaB&hvTr8rn@p_f$4E5MD??P_r==LP%QrOtP zaH-#WZf)JiA@jFh+1f(p!%h)r?e&y{jf#o#?gx)3asmKuMBO&mI}M6~)Y#MCbFHEn zd$nsCd06TS54X+_ncKDE7Lj>Q$Xz5t&E^FkCY#FNo7WxA%X>@WOg)#E&VK5d0jI#}WG}i+RQ1{alRhmfNQ<2syw zhYzV}>lNyKX77DTHa+ewqp|b6{-$pJouj3=(YD!3 zvDwDHVY?Ilc>%SgPSeeSMyi22i~gI4JMKt?SDM;0%aT@a681`jrMj2OLn|6*xJ^E> zV(4MCVePQho%pM4uqC)3@Ergzlr!tl*0rvM@RJ|Qr#5P%sh-qs=14WP$qa0+RQDG@ zPovTW3dNhaCV8y!DN!hd?Kavy^RHtx&2HJh7-Lg=mTta2MSFMG6kVIYQ@fqGAR9Rt z)UMKQ=l=kz<~`fw5wQ>UY}XF8XbWmrac?KHL!2vZPp!+xtsHIUpFC8EZT-%p#Q53J z?Wbj}C9N_(zZxH($!+1`&iFDDf7PDILU)!bwCA`&ImQuUByCE(+H_N6PSZ`Bb9@Wm z&ItFl#&5O)jbgORP!n0^_(uEm7t`pgJvqM73T#%^=151r;LuYLloQV$yE|;Q!wbrJ zWucr2I{CKS_+>x!=MIkWU4~{qs(uTC$M^B!H$PHa{{pe(64!)rUbksGWiNZH|<<)U6xCTEsXOr?24M4 z`O}EOMR?H)qMBfoQNpWjXT+kl5if0b%kseVoP4K{!QnEFI!? zdmAqa^GjWG3he(ro7S6m%a|FxOM*kq*Uc=yIW-3+MV6u1PUv-Wa`h~l#zdD$Aa&2P zH6Hum;f$#s70%YR&~MH_h(&!@P+t%-&+*2?POQu{We1;)kGXZ7$DX8`l4=vD3Txw7 zHer=^AH*vDb3S0-jN`(MpD3?mE{~~Hso@;_yTtJqe~!J>h>?Sw;@w-m#*Yp$+nYi2 zjU&pS%pK_wB$2Zu3(85YR=qjUBArnj2aZRr@+NXHYoy11#n*Al( zX4WLNWym28H}%8GWJ+um@r#jh(Ab=lxET3!hIn8#+k1X@y~eJ7^aDaz}CZ;te}Z&7#T^g`&5Kk@~r=2vxW0<&3&4u{*w>AET; zc&J;8)UDVw&Z)C<>{pRuC8nk&PkDAfRpmL9Ogw7bC1^^yYS^^KaKMqk-PuI~XRH&@ zVfOrtFhx2kH&=1OOq@wS*1%cHTUv9K7!=ZQRe@As|FJbqWfWs@-KNx0_%nNxyy8R* zEi%?RHRq+AzMAdJ|7l7}qvu=kJ#CFq}Lr*^B(x&joC$aA5E3N=qkuo&`EvgZ|D99|^vwNoc7n z-ptfVhB-OK5@ny5ob0h;m1!U9FLNrgx4iyW$N_U=-aOt0-2cpUIBm6iXl&YQ_YJNb ztKC0ItNdZL+d?Pv#irKdoD~m?PgOptpqKy{8eiKU74R(js$2T34A9M1uC;4+;aI9= z2t_UuS!}}(sSxHozhsl#^OkR#ca~_*Ft&6wYJ;C;)5q#tY`t#a8~XsQ4|*!cx{%RB z!-e}e@@rXa=%1xUrzS1-eSVbeHQIZw>q#@(=#9kX%};oIfUpPz5i5~=qp_zC-`~Yy z)%E7MY6qcjouL0w%F;jBpl&YQ}{#E=B{IKVCRO*E5R*pJCB>ys8TKfx8s5y1buS*NL z&V%=;WS3W>vomhpDEMWK$DV#XR=F#L8+3MI88u_{Yopr}dBWv$-UC16o4F})h3AOe zpn$9c62mh;{A%L6jCX1)U0Pl!IEDe1Z09&6`|_?jiG+Qo9H(AEwff z`6gqJ{2?vd^K#FqY!+6?iA6`n`=z|#_F}oP3dFK>zA>lD6`p0g&yc#*O244iS?Txj zGR42_N_X>`W1s(V=wvH>NKI8m_C?e=y{EIK_j?m>&Loj^+w8IUVW+ez;e4Y~mu^RT zNnfK9m^QIj){$T(`#ozt%44H)pei-j4xZl8^;yy~L~1WA`@hijAg?)Hzoet<>u5v% z#I?ZOh?c$V6|m%vzJ%B)*;j?v&aLmT$wVA1hV* zEPM7A#l)PNVq$C;A*`ESP(cwUmm@lT=sB*#XBm|b%0=YV=Ind90CS~#KjhM0Rlr9J z;jp{xk3M`RH~Gf<94Akdxu5zFfIlxe>(#EWHQ1_#RSwf~kbng-!TotT_V2#o&}C7W zH3vd`;@wMosbek&+DWP{VO$7cB5^N-X*1R~N>Q!hF+Nj^!knN12hRA&qBt7z!ABxp^W_(f|fO_=sxk;>4OK~#_gpArZvt6`Oo)iQYHX^{$k0tyVGqj2i>Z)~>NvE92Pt*Q zpyn@9mn6C!sYdbZY4#QIIzyjbVE=N{XGwdws#ESM@oi$DeYUzId{lfRJx$y3n6Da*W{a)cA#n9JH#8JzWcU4en@tS5xJQQ~IYqNi+ zN=$4)fwx`!xkNM;l^a$|`Pl4WbmQ z_M3L!Q>C3v?3-gLKv!5&;yzT~zlz_w7RVkU-)43hUv{2)S({N!Px%fsu{!`D&|2`#c- zYUFRBmHiR~r0f-0m1Fjn_uoR9JNhH8OxikaTiI*4!494MTfWQp-cghI`;1G_$i@0y zL_4xr-?rbSb{1>#Gf->B_qN@aIaF?7ukggm{()4{XlCE4sz_|GD!)aW8A-c0oP-_k zD=(pk@nkRLw$-niPoUhB(hwGlIt3j+4XC}Rarem0*zkVbbP(ZZ^2Avc4h~J{ zM%U%j(@|9p+t#^y##6+e+=mzc8F`U)^70mEo&1JA(ewj+ao({9Qb}CGs+Kig4>lh! z{HTAYKrN5;?Qz@&%#Y07y44L&WY+x4xK zJXU#SaMY-9_sT0rT{tY#qki66EUE(Gft91iTv?) z5y`OvYqS8Uo!SL#_@s0G|mLbGypVQ6Qesy{My|`}gRhQ9~ z!giR^R{3Q;E-weOoD^Eo{mx$e5mUZS);`arDjCCS40eTY>y0l(T*7!GV3FR4tnvS` z_dW1AmGA%edG>6EvC;B(X*7lWnW)gT&4#IA7^#%a{;7CL{BwC<;mP(I=u% zL_$-FqM}qPl}fcmQK_iq`Mt0Ey3To?=h)`Y_xpXlzTe;LbHASJT=#XZKlgS2zt4Tn zb58d`gZjk>7rW6h$A@;$9ODXiC3H_OxS@0K^a4m8YuY`of8V~r#m8W>dwQxXHF)}+ zIA8uA6t-d^Pw9|5lumD?lQ?_RDq0}jK*{voHT4XwK!P6}i;J|9JzG&rcu`dS1iah@ zTd>U%cK+zZrvo`cwJ?o;wZCSROk8x*_9WbzcUh0BY~X{QI{wO>dRv83SQLlo=Y ze`N4JT@qLC#*NYmxrXbfRqaHvP~C3N7*&3XPW9^K0l5*rA;{T|c-t zUf1?j*}i2Yh(9!!-wSJaP%e^P(mo@TR0Cvi1U$mqlyNnIRzNjf*mEl_!XQHRMIzDU zbkBX=GqXEghc=U$jW&Z1Fzl}3hwb^;Z7{F87vzq2x$1WB*S}xS;OTDM`^L`R>?!jy zckagbJ??d6&hGhG=FZZ7B&&vSXu`c$DpjsIwFzslT_(*NwJS#-|#*q zeZ%QC&y9GKfV2zORdh4jb;azSkDzb79vi&5cThs`y8ZE8e|7mIGX;KqN60KC;T&CdxSUm;n`7n z*-%330|_Pl@OQ=Wf#n-9JI}tNW+`xDN#_{}u*PWxIeP;8R z^vmbCkBvW8>z>@^3lP)0Aj?yuBKSi`%h2qDUyhGxg8!sD!=`o_mzzH#c=}A7ogH&o z$@D-fwN2EQsZ&jPn97V^H5_AhneM*S_P5wI0&8}avFcMn$+SU$?TRPE4rFI1fL7+s1-W!`R=VC`95>2u@!VrK<8OYn~zr?b;^%FJr_S-i96mTB9!K-n*N;p?U40Yzv0 z@C}VFue&cXpzcivww{-*8ZRzWPgmERRPqhgcdpn)ZAuBR+M zKw0dk;+T7RN37mwJ0IYd*R$j-)lkWkRQuRrkScwkmUaTSv<9M1X6t(OSE$#nZv;<^ z#wpw{z+cm5(lfpIc%0EQ+|z_lG&GxV7qbcblaZKsX{dVn(UKP9SXz6&m`THjUhw~+ z1ssL`vwK9jOGoS0KE-Uzb-MYHc|EG&&EMgagxP7^(3?U}l=*+7w-CZ)@l+Pp7j10I z7P=xqnyS1UUBGKZ#CveC`GxnjwmO9S5m(WpbJ}mWt0tCQe>kuU1d;93A3<;ZH#+Lv zXK3s*v;0F@%WdX90=<*$hcf!$U-@g4Oi3K>Y)vnvWY^#{yzsYYja63ganU zc7E0QlZ7qhl6kF= zwes0Gl)bkZ7bhs%)_8E_w0ke!j5BRl$g!1{cG+(`Fh)T?c=`~?&-P!w3}ee_hpRbi zbUMx3W`PD5zW@q%h=yVc_!pw|bkB)01z+%8P#Prk`w{5ebtt=%(zlBJ>8xb{k5})W z-Uvm7%+fkAT%yNt!|F*|r6$b2a}?HnB!U{@GckD>{YaAR*7OHw?vrHom>+H>&+;qA zn{uMAyzjTInCfVa-42@+w6ggFG_3?)z-g1$Sa_ca?-Al*?L>P1!rP&Fu1Wg!0txQD ziCupi7f^JsJLdjhA@w8LJXv1`DY?h&_ZDsWY7ep2CfD((6YtGrqKtIS)G5nvshdRk zD@d*ErkABk@E7XSp;RyQfX1*sbB9G3$1YFgvW%boJk0|96x#jRgQsQtv`LZbzD{st zIvgNJnrlp-whNv<09O>p8gN^pHid~oujUV;i)8RoHa;-nt$QGV~5M!8_5KP*>REPV<_H_hfX_=O#w`3cskUnpALN=uSh7{ ziXu0+_MV3_ImZ7~*7tkDK`g=PvgO)5u9Z~z3>;9Em@fS_c%In}P?xx_)1KrPJlo^K?j%X%!S5)~)9D0`E?NCSXp64Pw z$~kq9QZ3L$zQMySwEK@M82UE}4I8^4i#mC=xqg;pc7k(uQsC@J%)WTr2xi`RWn{vu zke%Q7W#VRKGc>l)Ogv3iKX~&8JAcHr$=ku}4iF~{CxX{~j94SO%nPSMlU|wj&rBLL z@zxVKgu78ew8s0YY3glkv=Zb$EEtXOdpr);|hIT zsgM8G$5s0HoIbAA#~1W*y*|FEj~n&zWqsVDk6ZO|n?CN)$5MTKT_1Pp<6HW;M<3tO z$9?+vo<8o^#}D-Jpgw-AkB9W}GkrX)k6-HJ5q%cgqlctgnxu`q)4p z8|h;ceGJpbX8IVek1g~uLLaZz$5#5-MjzYiV|#s!)W_@ev9mtjppRYjv70_d>Eq4% z7^9Cp^f6u^d+B3>KHj2_iTc=2ACvTPpgtz+;}Crus*iW*<1l@^TOU*OafCjm>tm)q zj?%|_^f6l>bM!G!AM^FmrH|wEae_Wh(#OgAcpr{EC%7_l(lgS-`{t$>W@mH@SN(Fs z3vvr{(p7AHQe0ovBX-cByzIh}Svjg(hYl*!m8W|5Ojd&nGVcn<^GhC_h*iKRj$;nAc`MDD&ax6FBr6WCaQb%NGs8KFgUO_jN zotu{G%F4~@rdk$+w=7UC+joY^_H7U==&o88;@1Jk#M=kXDmU;L6BXIx)(`RT&dpV>%V8JM*$rCuV0A zxb9N5>Zs%_7aWSscj1J(EkBD?VzWmSj#0=*hDy%O%~o-_W5!UPduQb2<5YfX+Gr$E zkfxF|#^mLKoi{N*Yvd>wD~c^D!VcH9?~E5&=cJBV9Xl|2_4s_(>eTEJtJ6~_u6E_- zu1*`{T1|zSKRPEpt6+2t#bGclFW;34d8lPzR8+M;>Kip}hbwB+7tZdJ1`X)mqgJ!- zfyTt{#Pbc4;&bcc&k^dcp7=9BtcRD-L#aK0gx9gpe>0{K3Ne^OB@mzBuQ&$tyou-S zR4Nbl8o(|A+4l~l8xH=S*mw8Mq01$NqFB0iqp;?==c3=;w=cTuL*GWX?DI%;$;_G2 zfz6Afn+HA+?Q~3yo?28C9UfB@9T;8|?FcD~HUf*Hl@s6q7)8-V_}G>uxsz z?kc;nD%60FE4%TetQ-Hubz}YL#){63^^zM8%DM64MmPTI=f=g7y9|JTHMze9&@-}M z06qhJ0{9T{K4354Ex=B|Ho#`U2EZD?Gk~W6ivaThvjNiplL3VQJdEYe1Plk<2EeT5 z#*FCh0f++J0Eh%!3%DB40&peZ3P6|u#pywss{pM5B;N%P2j~yD3xJP1yQcyk13VAd z4WK+xdx-!f0CE9~0dE3M0q{9mbthmxU@xEsgnI&}1L&!z+Gq?(fX4w}0a{^mbu56k z9sT^Vj0Y?Ld-rIZ6@ae*jcX{?4{$%=Ilut`ZT!^?RH`YUCEyxBI3O7CJ9zs6 z^j7r@Kr_Hz*vSUCVSffd0Y)S3ci>ACz+Lc>-gQcsFH~2wQo{eW+#gi9-LIfQEI@-u zM}ugC#_&BF!eTUpc)GekLwFF&#O7!WoAF=WL^Ou4j$xkyS2i_qJ@YR-5)g+*QGOIU zD8xayd(i}q@THiVF9g&mjSYv>K|Rafkb zO$#&B?q-JC7>@6Ew=mQUESE=N_x>cH8GT8^7EtvHSylA`*bh>)+a3WxHq{M)9)Ki3 z3cv-J16T#v1Na$$3Plf^&Jv&Kn~PQXgdIPf-$>w_0hHHK0J6CePzs=MF+TlQ%c&}# zX21{ca`GpK8wmWu39dF=vF9ipiy+5uVtsH~jGHoAds8?AuJ zW)DCz;2r>#RVjeN`Fx_fzYY)uNB|54kc}b$U10A3d=ChPFSh`S&f`-UWUmI0%@_dH zUpnAEKq-L2`F!$j>jNR52_Sv)=XJnI0Bx($^OU84s~zVrC(36xKtI4Jz%0Nn;%TRA;7rsxK<* z6u@M_a=;3}O2EGXr2riqIv{FLz)PlKl;b8%0xU~M?>NzZIv^tY^l4%*{ie+VgPM_? zCm6~BEs}8a%Lbsk~0I@COI=;x>R)mrjBrElgHQElJME7AWOf&nMIfm#Ov)w~H_Ek=doJhk^OfEYj$AO(;IC<4p_EC;Ly zlmdiEwdpBc0b1m?zI5|bBde=g} zJ<_^Ti&=+Hn)zSZ@yeVl*IZeCWvlR^;cLRb2oG*Pp!xLXdz)X@;`$cKKcGfnt=e@$ zE^E*v{MwkJ-<;RK28i|oqRn%!!7ydr1BNp&Bs?ai2x}M$PV{Vlv=Tq{kK3uvULIe)LZ zU&Eg5r`WSS0ng9qd=ADg1|G9g*W)-y#p~1u;tvZ06gC9im*Z@bio?+#&{=iDS+d;& z*NL$>6N(wgv=k%WP(Dm=C_l}$rONX28g{$i#18n^I$vg~3|2ki)AiaD@@SxrwZxT@ z$EP^#!H^&R@TiCQL>`6evoY|>?WVH*Q*ufEU{4z*)dHBxmCLxEmN)BmCwAdKLFxR2 z(&2nk=?sD_l}=B1KxvXkZa0+>QJ3q|>5Mb}xJKeKrP6V`J83V-C$>fYbi{en6F%$R z&d46MMzg-AxgW%S|MTv*amU~oYM!l+SK}ZtQWfg-Z^LelOUHVv44faL3Xp5EbR+hG z2vd3908YNT26e@$_QLgM4V=3gKsltkPC@*7l=oP50#a^wL(pkzgm}+wf?I@H`l;9z zbK{DI+K9iRQuED!3^-<;IIY$}K5>0eZLmh=?fpUb!|rF%LOybThZgIb``dKhDDQ4} zZ$P0MES_d4Dg(~HS^vo>18U#bt9;;V08|2IF2|xQ$g4D6PLv<2V=8YhEpB^PYnc(a z3QpCUly|CqvSRiQ?in?Q zOH}(KAzi3^OJIohE(19y3pb)P@}+FAK|7%Qj!Q!kHDTH z<%{x|ssgl4Dm~moz}R5c#Q^N);4TLGBIk&DKo6Xuo=8?Z>D*Jhr}AJKCq^wl=?Byo zspd@{l>n~Jah6NK?`+MpEzgcV`_kDz&vtT;bk9X!*eiX3YL+dYQ17d+)RziRa=6c` ze{{+}s|rv*slTN!yrzzWei!hUT886$>I-mKf1Nt4j^W%6bw=wxg*|4s`*XD&`Q*|$ ztscgieSjZTxh|J7#Q#)3sQWebJgCpqUah?icfkI@bv)PqL+W?%K2=X@-f--yy4~-n zSH-JSs=q$J7Q52X;QR(Sq~@w)lJ2i~Js_3i_v&rz!LqkY)pu&EKKlu_GLBk3dX5^S zzJ>l1fLGLWIR2upROJ{os2+nsuTghvy?(fN;dXzFU2)>HNBkS?p5V?T_T@~!>#C1% z<}S5cYfM%LL2Xg9rA76{Cz##tCF(64v(<;{bBs=AX?9ne)dx7=P94zp??wDgHB8%C zte(X_uUT)C)I{tEU!ghsRUOE!!Y;Adb9SjjoOxM|#_m) z9zE+?NKslFu=7ZGJ$6am?kwyTbB+EByV`E|LUlWiD{v?00KDK<^0aEAHJ0Q4LM`!N zlv<#=>a&lk>ChO8-pkUDsMh*C_2X&UgD&9P$MPG+oB67-mY#=Io!ecE-E1mF9?8;G zFZBSa8BCeMHryR3@U4)Hwev3h6Y z&OUke%-KHZ`7h~Nz?=i!>MT+`f!^+R{|xvF{hfVzU;PC7OZ0rV`!&FE^`3CPP=A45 zhrUj!>_D%l5#fy0<~{wM_-3Ck7wu*0Psrb|KGWLIqqpO}Kj267Oq%&fhx$I@GW8HR zzpGC*H5}uF+kKyUM{0g8`aelMsSe=|ImP-b>iN;=`Cnn4SB7&+)-z4}_Wy=LGY z!QMXZJ*&HLpZf=EwXqv_OmHU||6{;?Wx#CoeNNxg|K0BHs+~2SexUZF@8hnwx>wu2 z0`WI>{~m@rr{>%-3wPgeS6scUWvG`g);;(Qj1XJ`&#Fl{dk-K8yW!OP-R{>h0=$hC znwiHtF%ICl2vwr<7>4o0yZ^t0{(qC^OvF7p>iOmva4o1i)CL@z0%~J4;5<=3r*Yvy ztu;YWZ#O;m^m(ccPj9b<{?6Le+wtUudQ|7BE8^p^pO1ev;4a@@cx|@cM`Q)p8ob7U z`RLVbfqJ%QZl8voeI65-`v7+Q@dO6$_b}ZXyYX)96lZ8}J*ytmV_Na?%ugNcr z&Hia(fyMzI1xVs*tZWEVuOEcA_>&&hc@;o?pJ#uPpuSI-)_rketFz4goghcOJ{GG1 zu1V_mBu#UFM;*INuf)yOnfL0Chav4m*|q)4EkR5(wikM&uBoFJfpxSy&g4F zUTv)bNQ&n9{i08EIrZsX+LO_k`QOmxLvow+{LQm<3HqqH3i;X^ySmF7;tK5>&EeF8 z4~T6VHSlDU9v@yutgX6JuXMPS!t^+@QQfLj{x|Nf-y}8g44wd>+5cMfd|nq(@244_ zyn0M!fm(?t1-N!-WzbD?{-qY;e(_VdcBVdI&abzl-}8(=N{v^2L~8-A%f?|{Ky~>v z>@CMyfUG}?bpVe9zVrV`j1cp+G>rr`ao?My6R;}4GhXQb$E@@+G0V5oTs&}yxt`=2 z$!uMOF@Uc7DAgOGIYh7dssD3cdf|E?532!lJ=hR3GzyT7bH@Pg@iYpsMOydMl{oi* zz6KnC>x8ec_Ay&RWorQM`JZQhO3&OI;Oiec~);4=S*`_}4cGJ516v- zjR@59c?3AD-Uam|t{KeniLM;zYN1?fFT;ufPs?Gwz^!u|o@Q{nACk4flh)e6tuA+u z#VUv9Uegk-6!?mOYmxfoeq1XsMOOt&!T%1upX=#vP+Kv|xZP8*4xs$f8i4Ro^$o@X z)9%N(R&cv-#+X1n8V#riek~q0t77f{wdI#*{ZIOI1wbo+4@93<{yh5=_X<1-=yv`ZucawRlnO!GyQH{`~4*KMsq%`{5MKz&>G<-ZK*cy zPd}||^HxYu|0ny8<7$I&E%djVC@+fNgfWFMtqZP|w9QokT_0pÐumm-kAn3MSwz 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 >j~b2ec~ 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 z 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

    p;#5cn!$7dmWena>31DBFF>zpa4t)lR+Vv0;U4~ zl8gA628uxmCUvecs zRp5585G(>da0l>%#UKFg1WN#a$xHdU3)~Iv0rvv=EaDH~K5#!^n}78n_#=1-JPaNI zkAmgkPv9}|ICug)3H}0}0{kUE&CfI7S@0Zq9{d%&0A2(yfxm&5!7G5j;4k@ee*OV= zgIe$f_!4{t_JFU!H{e?k1a;s$P!INk@4*jXAJ`8LfP=sRN%?ZA37{ju zPMz4O6Z>>xn@;S~iA_4OM<=%E#15UP&WX)Au{S5S=DZAGV@~YLiETNt zDra#gNYyyV$FFL{XcLf}ELT-nYr%ZGgPCrhHA>|{B3iAq!CpC>avt;7brY_mJ zp7P_uW^=w>Q%@uErlFXrA-x(Q<^6S2U>QQ zR#sM0hSd!!$qPHBkL5Z$w~XWbIBPI$>gi)gTCkIQQ)+uTC_Q(7jgoq$xX`;cfoA|eBHr$MiSL0JWd4(mYW_o@ZEd~dVmX=8S-_)7l zMFTwr1tRZ>cR0ZmJDPcN4+zV7t);|HAJR1J(EJ(4JDGN>sXq$hxG1c0O3BL`GK@R) zA38vTYuI-t$FAlVHwbOrKT)6)+%0>v#c6d_CrQk@@h{W+J?V`(*;28rT02O24Jv9Z z3Ask_!9^uE=N8$-Gwxvlj3SP6J>JXPfp0YAdmCfMn+fjwmWa((QAueQQ;#4g87EgZh#IPk~7%lBGi48t2-vjSgQ?h^GjhxING@f1Zefu=rMby%%Np$g zB)z6lG^s-3wJ1MV8YyArU}oXSFr!;bE!vzdhm+kRi`a1E9RweAyl>nZ4Z*sJQ&#TG z!fBpqBPmcKNh_XMVhyPWrK1fg@9f<2@)?X0By!^^?GoT5jp&5{`<-Ybu&>(}N%H)pBp*HH}lP zv6|z3rp+vLpXfTWa8hw@QIqgvatqzVifvBAMy9w+rWH=48uYqMjUPEEbrz>c7fz%V zE6dlq;F#`0dE6R5bR@bM&v0fcVbC7 z8lj?6!V~igc`TA&oF-a!&3$;S(D4NY?(%%Mhw*YARjI6GmffYu1js9*CnB=EqVieO z)cE|Fc;|;02|j*yA(sV3B_;H71$rb|fOHtj)IsSS>5b79r{@-l;WavpDwA5twN#p> z&B4ftlk=zL56op;+TgENWc=jO5i=*Hi+CqQ5l%#G`Q$z@Trp=JB{|6bWPTdYVm~njs|{f=QCyyH zwPGhpWaP+9s=a#N1o=G8 zP9sVgeN4-rHgPgWBXk-zB(xO0L*+SHGrEkXQFpoW6l-ePVrdDZpi=i_EFsSrbK`X$ z?b}2uOZfgIdg9XjiIUq!$0;R}=dhQl`Lj-lM%?mrThZum8WE2-$rdA3IDC1&)Ud`Y zTY|Tgm&n6|NUDFW+?Px0{1A#?ge@->Ey<<3OzTCc=mVN3H56JrkrrGli;L2m%g`oF zgLioC;4bk{>vaQQL@g~TDx5fLyjG{DyeL1vRFUeWqWpwuC3zlfq%1eD?5ayIz5I%v My)W;58S_a09}{?|6951J literal 0 HcmV?d00001 diff --git a/ThirdParty/BASS/libbass_mpc.dylib b/ThirdParty/BASS/libbass_mpc.dylib new file mode 100644 index 0000000000000000000000000000000000000000..2269a37a6e16c2d6c8055e418e43eae988759279 GIT binary patch literal 128448 zcmeFa4_H)X+CTox%wcALfivi+n50x=L6SkyCTRr-h=n#PAQYySvS?=hnNch%@IZ1r zOj%lMyS=;ZuDfqr?z_H8W<>?~2Xoy*Y0GWhBD0ziD>73wb$*}wdCoyl+qC`d`@Y}n z@?6(p&Uyaa|L^;`pXZ$Ou>It#Z!pHpIBhsBj5+c1?MD1@n2a(Lm3`VsWjHS!7bI{& z0v9B3K>`;fa6tkWByd3j7bI{&0v9B3K>`;fa6tn9k4fO|V_%%qC;rR|+QV_ihA~!y zbpXu&SsngNotmFrlz$pyjru))sXw~#lS-#f_0BB!(v>()@86D9g#0ST=vOit(XYfR zjoYbH?_TI#Fl+8l^@7u3q&~`66=D5u}=hcUBkYUzUM_s$f6Pp89+zO|^L-=6eG zGB!>0U_Eq^m64xel;XD$XZ)#OLzkovI;KvYv1HB+aV_r8>~E)v#@@K8$T+4>z4ty6 zz%1|7Qs3OW0kby@d!yi;etXhSwqzV<>Y_IcMTmR+Tk=cem^yW~@7{S+z0>cS!>#Fb7?tge<)AVB z_Us28OArnBQKEkY&Z$%L#*V)=J8P`LK__Dy$#C>vqP-{IQF_1F?sBR%vGh6jO`kDy z!PI%vy=7O=nRVA)(-$tBdhfiuhr{${-6eRTKF=Ox%!S|jLm&oSVc*PylMVq%*b$K+ z<8)Cw{HEfU>dWv;JgoSJu}kpVeSqG4+|c4=Do(;BjXs06Gy0exL~j$j+P824 z@j~aMB@4YX?;W0L^g)9Q#{~&okiZ2AT#̾#oC|6vJCQV!SyMBg2Or`i~63OGw| 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 dV&QR_Z&@n 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 Brt1Iz literal 0 HcmV?d00001 diff --git a/ThirdParty/BASS/libbassflac.dylib b/ThirdParty/BASS/libbassflac.dylib new file mode 100644 index 0000000000000000000000000000000000000000..c738d3558a75e9b3a2ff74695bc66427d6d3c678 GIT binary patch literal 107560 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%0DHOPT`#B zq0(kltD7NlM1qdCT0=WW8rjpZly;#%7SP(5xoQqOU`S`~?mv>bJEymqw2S!M-^!lx>Uu>0y?@C zi*I<4ZJEU(wIhOTae`IA4cGHhX`>oQOLDckh#Tx=qR`G|+<9vtif4%SDJ);5T97sg zwD5t-m0JFY4~z@)ME}P`Tmf}b6C;h;q?W6h9bDoQLvJ81*v`@rRD2Ns8HQl%3FhVK zHZl>xz^;|3L{8^}Wghh)P=J~s3pEllSiC_NK#>x!xRT^{;t~Vx)3Ob=9@c!w3NgcM zfbgh)t<&JPj_1+A*6o^)C4X0Y;o^#35<`zURG-zzM&1VbiWb2oP!^QTWi@>0X|yoA z;d2;1W)-m%%p_sH6eBiU^9`d$Q%|)9ou{7ogGRF6lo+9U0|HN7JXfkK8J3S@8Sy4* zPRxL<1tONfubIeB6#aKlEl(G!s{>ucmGWT?j5puk#)83D>1QgWf=HPjTOsrkQz69b z=}Z>)G-?(X-WB&cH!Af^#7e5&quR7=5KJYeiUg2<-F}!%fSU|BkNWR59G80?sti)Z zqsa^SV(FyS_h&}RK?=f;y{OzzFNO>!Fd5F14MeUyAUP*jdSs2J5vU#43vkr{~m?%IO*1GX)F2jQz>IlI{TlY)F9kX;RRVrvmoa=1JXuFt_Syc$_D~V zDK~Wf*%*$c0ZQ8Hh%9oc!|x)mN2i0D&nB2(rqE~jM;X@(_>UgNCVOye8u>D056KpF zYO;q3Or5>a@Ya4~RWlstZE0GJb5f*GcRXecY)2Lp8HdGY7 ztU*EOM>!@$bq+=8bKfx1`WVH8xNO9wE4ouKMaMD?Jp%b7QTyM? zn3e25Wt^vFjH0oIHVb3#6p-cwDXGv(XmY+uipPNt`pmMj$inPuGJavWct`MKwL)FQ zn5!V44^u&qVk6_7H&NP1n%B{MA2r)c%gZToK&mDix~59u-B58m2@P(LCG}6>mRYyEzz#`T=4VZkFm3Yt5NK5CWod-)bhO}|iE0HEg79#l*;13_w zIsiT+$>$|-eL;o#7t|=aTcx!WX?WrIIOwv~?424B?~NDTscAq2E!bwW6bi%q$l9Z> za$(B^(Fh&(IU*xXg8IYnXpne`dIV3ZOth0(b3&ivjVlcYXZU<842jnXhAhI&uc*&1 zf>6kBdOY=g@F4p46rI3G^9@7x;qwu<58OqZL~+~XB4QC5Uov6$nbdm`TwA4j@yPrN zQK2IsRNZ|$fQwy_YH6{{9MxjM8b z20G+3pxXgmrAV`MFrJKOx+MxW3t+IckHN&IVY;%?S%Um<&tL}~w4wN&G5E?BEPd0l$9Il{-qnqqJPnlbV)2-jh@brbX7*WKS$GD zIV4>&OP8Rh>qNRJowrBR#SclB!qPSC>0r*s(D{pKx_8hDqD*ng?M{|Zq=c!SDxD*i zXo}TCQ>3yK*HH@UvdgLi?db^eL>gUca*H7yb(C&8#@hBk7a2Ox!!EV!ZX@1J@s-XN zRBUR%KfDzbTR4O9Ab#ON#m9q6V^*uG%zcpiG|cK?6h}4#gPq%%LOr7hGzL zbf9o}zaVyWAV%6qmM=Pu#duLX$#mQ0?eJ0$GmJzp)Qf-8aSPcf&oIdpJ6=Ihux%~= zlU+fw$OQ8l1mHzpyN*2939pYqtgK=vcua0vPhri1@+k8xr3U(n1M%v&M=%Cw@1$_= z84fV%eqL>u%T}bBx<5;iChC6bu+x#+6jJ}s)v

    0)~h^!I}9F==m#{<%n1U0p?G zaW2+txMK!FLnH7{+DM1xpdQx|19?5tQVpv|swq!RWOt|wAsF3neu!84O42_mFlCZu zzjGCm%PXBL>G6yc9WIXTWSS(7ubU`R1#v$Ece!|~11p_t2@s}LdE_pax+AJGmjFl3 z_hS1xD-L1$9%6vHS**0tmDf;0%?8pNVM zoD-N~&g{|M_kw+wJ2O7w?7G%_V< z6qNGbh9mwkdl4n9stPo%LyVsMZG&h2rzkn6n2>!6D1PV8iLcOh{my3)fVy8=r2R| zELTEa7RiV#q)`nuwJRV~;0^&D0b2|pOnNE2+zG*A2o-vM&JI`R&jbrWa9x1(!x+bq5$%DPsUn5w8uKaPAUt}+Jg7xN9O?u$WNY-O}pYP5eB zsz76(WyZKZU*USK!aPx!YIUZt9IqqI)MaY`OaP0EDcEbnFVQV|PI9 z0YFQJE@(ovr%Wr?+Zc>$b<#>%8;X`%6)9S5cv5%?crT+1*R%7Cgwy{sO_#;cL>jgO zG|e1LQ@KG?c9f>WG^pSjP9vXa0#`55X^K_MXGUpyku(1}9c&|z>ZE^LZ;-x%gWaiv zZH@tZI|_CS2m754)*S=(=O`GR*9Y2`>0n!9!0wBJjRzPCMYveS!EPukiutbLZMKwz3BzX?;=PNNVg(iBR*r_Pzuu>)%w-cd>`sk`Nf+@pqV z{0%dE_Ot=?lTMTyTNNCNbO9*hgLrh2@Q24J(sP~Bu$OgzI+EB-KJ*ea@UrK0QT9!j zghxVu+H*>s&ZY|xrHkcAn(v!$s)~40NEC}qoLQm!L8ZsD5&b_+dOPC9Ld=ztVsB6n zrE9$L<|)$0I$8&cmPDn+Gnt;a<1~*hg$-bwhLR95&MDlK4~<3c43`yvAv$c8vZiq= zNML5#^L0iA{0JBYGqOEj#-RvvmC*{!dRdqTCZ*>9Nz)8k*Ay}cDJ#2oxROPTOTsb9 zNa&<2G1#j{Y9|sk1RM|2=sMz|MP%yYpiNA)Ln?d^k&zTb#)Uc=-o?N=myAS?oFf{6 z?Cl&=T;?&9Fc~=N0(lRGFQlAYa9HVQ1?p}9bwNJ+=beIFvgPR~iqWqn=Yqt>o$w`r zxD=EqN$mIv-5Zm8S_PA~mNJ=QdtB{uuQC%m_DFn9-b|&9Y&_*5YJu|miQBvra~>ic z(m1}^n$z|j`9>-hKFu0Bj92J38j>xl)%feX2qD@m+Cmm+^PtKc9xW{OW(`pE??>|2 zfrqLVS5RX~lFiI}$BP@y=bI|H@Q2b6LfmG%Bl+ZSx{7SjfVX8vAlD?VB;Pj1 z1R5Aat^=jm-e_}%?Lz_BqU|XhN{->snJ6}i2r;Sqmj;t=NA^sXlu^)0xRg96XNzyd zbSYw4^t(_#MPiqzxWPYS1WYDGwd6y!Sfw8oclFVH&p>46SDD1@ z7=YNdf+Xv1Q1%4dWTch z0LB!a#@ROr3p7}VrPhE%An{Wa=kA>)-SKmvS-TIL0^eD-E}J0-yjX*<{`-FOfZdCRUt7?A*R3EQU^*vy9FRn#I&vB5K+ ziP5B+jB5M?dR`b!>ycKg$;+VzX%*^pwHd7+vEyBIC$s`I-%K?V+QLVdWMOr#6gu&6 z!8D^+EHYzW>29>g<$fou08_V$J&V{E%CP2%;xaT07(P$CQH$oi5UNz=9wD;7%a8Xi zxYa`()dji#`VTJiE67VWfK1`k;4J$j>)__V-41s*TnF4ka5SR%E8I(P zJ#hbkJ09acgkO4t>3-ixoz&1~V#YEuEaYW$<5B2o1O%D4v({`1k=4Xs?a#-VLa-0D zSJT&+=eeIpxhA4`P2As#Rh#f_+&>xe9G=Df-8aI29rv4-z+cGy?q}e?jQd+(g@1|$ z(`+_{CrWRyrAD#iSx{dVX-54+|71mKQbNB$NaitAGSS2;nWimBwARvh3RJ7!n}f^d zqELV&Q1-5fv5{tbd6kthHq$1jIwWAVcqPlFKntQgun(0gLx*BYCCMc- z9D{%Xi+0CJllG6=rD~K(0}0}?2M`H6eJhg3)Na>7y#EN70Q{H1jfI;CH${8b>dreu zS(eJGs~!!r)8=>f( zvJnbn(PZ|W51o(-ogi&u(j)pwMijQnliTh<8g2#!v}ry(R{+4Hzk@SbN&!;^mN|wh zcyuhho7u=B;=52AZ$x}4jKgKLmPD<2xnEd@M<+89LK5Mns-;S4K(UElWd;GSCErSx zo!qt%QSw7x{15#e;W{BPgpt^@WfXT*ISHI1l9Gtl=zK*(=vYR54if;q%fZWFgVk_Tn85r9Lo(Ws*<&39^oi}}`6rHU9$?7?Cd={GWtb`qY` z5`JM6<5Q#m6X7RmM-8btZxwnEu%VmsjWoN|&zWJ#Z0(x|Wpg^hS1|H=KC>q7!u$$r z?Lb{0h(EOlG=a9mfWfdivHwX{@NkoE=w~QxcI2MhMorb%q{YX! z61~l_#vD%9Y8lo>T9CCRA}QEL?TLPjd)ULrWI%2wn!{uI|3DHEn<Pc}8#n2l>(heS88@tuno4g#)2?l5-P{x7QTns&mORj_d#*t;uD$O@;{%(Ppi~GzFl^| z;MREV3D{nu+yn06b)LY=;rpRq%B$2!zSin77-xD!n?9P0Nt|Mg`dq#a#;*b_iV{1h z=%v_2)k!>2q=oJHPlGBKz?X7=D01zg0hx8X$>G~tPUCU zXHy{kG~8=jy{Q_z4PDR2f90C4Cs8$r)hITENCUQWw>;&Z_a+e#$g&5QwvdqE zM?-vC1IAY^M(6n9Y=dyzJFaVbe4B$bnY+QP6ceTi+p$&yvZxrc@K}M?NOIX!P2-oL zn-Pr~5Ia@@K;sSs4_}2YtDDzNbeIQ%twaXACV4H({8%{EAc#iz*F`D$W<(U7`z2E` zV*{xhYKl4A8iR~3(I19EjxQ4CVap#OsrE$HkEgsr0+!03cdMWARVikm^Nyi;D zlB;Rma|jWsn`)s3Jk6q-Ea6|)dO#%vw!LlvCb4XRm2rf-9E8*Q8HHe%~T0x)r11F((YDY^0EZkNPsYx1!2`yyuV3P z$*L)hc$e3yUt_2&ZA}T?MyLkpa~tYun=|x6i!dNiXsxF;O3dU=pR6oI+Fh!&f1(TO zq!yEo^|~+x964N&(5MYTq89C53qe{14FTF}<#r}amCpLW`r&jWTIN@L0*_iZtH?OA zgA6hHy%p&+4O)DnD7V2`%UE-_;M<|E0WvifzK#mV?4AWY4K?{(sA^vtE2%Mg;nOB! zXjVBw61Fm|Bryg1f?I99i`7&* zKH*&qSx!~fQT^P63aV58kd59B%dh5bKqj3`5t*e4Y*}`3+3!fcD=}}ki4q`SIRX$@ zYtA&W zQL(%(Qtk{tiwtNOi<~HnhUF*%=FcM=^t8Z4d*m_#{*goT03dYE3&cKx?OS=*MR1s# z=ahJ~V0osV+)vBg7=p9pqThwL=-iucB%61`_d&7hMe8xnpoBmcwPL=%3PpyPVF$~0 zSd?sc%2tpRI~WzCm>-086<^+#%Ll$<$9qIQ+i~Tm;R;GYvx5qol_AUW46-Z}OT><2 z01S`F{3`TocyNq{8*Y4n4vYl;U6zs(#pPB6`xLWmE@bR25^`5D_I?!F1eh35x8f=R zs2PBjKv$px?h8FcfO)LTl7F<+x|IHW7St#ks<=whj_x`x zJF<&3!gJY>rSaA942_1t_G6qj2GY&DGs2UVP9n1BvpA)t%Z;(aw@*cFJd%LMPmr}U z7!T&?O+#U0FpT};<#rkcGO4l4J@j2&E2WV!Iv7nuDaJ;*z^c75!@aH-!!BuFr1mam$}=*#)D(o+=|TBh-9{Aq*d9ARAqMv7$z*1-gM(ZpENEW#`1DI z8^GSh(k4Em=f^P>s3>LALLgF}^3s1cqRiY4?X?hd%3gDebK&R)r&syS+cZ9WekcA1 z+xFr=D?G2OVJ#REmDiV`ABP(9dep@YOsug}a2e@`Mr+Qe;xbw%#IVULE~BAv*CxF z#^oOyKh<(e>msT&-pM;NcbnT*B4G4Gt0=fyz$bS#fp&ty*2MCpa5J$<+IWJ{;UmCS zV^b~f1f)&;lcvk5sjYYV0i`UZ%9FYiXoFZ}193RAfv5lz+<|uf-Q2Sm5i3$48B;Xz z!wfnAGKf~`sm{ds*E`H>i!XcZ^WeBM*+{aZ6%h*EO6`RYk-`<(~}X$mIm2ENh20Y+#PHe z!>wHfh=MI-nhSS3+zL3V4RYj1FRI}BVw7V`I0r9x?4%cdHc&Vd0jAGc?33Y%w7u9Q zA4k|`T>MLuC6HTul_j%64`YRvVm|U|J6wtsDiWDy!Dy=^aarlC#{(i-3lW`-*SQpm zq6^}(&qu;LLy+#aqHlN~FZvWr>M3ij<6sQU7MDE_pvK|Ys8lOTe}+HUMy&%mnv~5v zXWE%yh(irF4>!^t5EnqO2c+E2YS24|Z7^UB3rRz>h>j>_=H_w;PPuyX7n-pF8Ddml zD|pj%5~mI#@q@&m_iQ2&i^1_kUZcoKBVL4lv>|^#&jZuKm(!OF*~Es;e4jIx5MfE% zME^U`?pW9uKq7gwlf+w_L-wApyuenUH?h^{^-d}?K&VB+#+*xox5R$mIq1_U20d;B zUW#R2KmdRmSS=R5XUi{;f{-^c1p(zjamWRu2==Vko(=5jcUtvq{A@Xva?Cu&R%z=9 z0y0r&^19I^XXkK;=F6}WP6q5smbN(+akU7TJ%wj>)=HLlxacX?i)gNwlo&$upA}4ybzHPe|b`E_~aa0@)y8Z?C z;WI4Y)6GuOxp*T;@PXdI2kPF#*9RoZ^r$%7^nWSKz+>QVD-J8rT*DHxje? z9c0yot|v6wjsZV?NvCvCAE0znAAngbl0r;U(}nTjLX?ekSN{>QPdT671XrqR3Z4Q?&-^d&;Z=(P2AaigN9Fmqx z5C|d(3XdBMOKlN^kuh2q`W$BppvhU$;n%d7#v}+o1Fv; z(ijg!|5WHy5KcHj2;oGot(0ITw^cmv1>30b~8tYMak2&Rx&A+44A0P>q3Ts^;yiU*>s1!cC#64z-mxl_$tPKo8^!|Ds>#sLbf6eqQ z3~WXmCL{uWP7#fMImy7sTF6Qk0p3%~K-F!eQmtSMrU)d~r^2BCG=sgF#FfQfe=pXIqA06OM9|f&+euoEi zwQd4X?l1v}DbYSOps-%s{4>3FOodP3^qrE!-oa^ItnYTAP*iX*bu%7meG`sHaSln5 z&HC-^|MQO3&-?0?tgkln;*Zvf&j;+_Eit1d>wY^ZBEn!J5tkY#4<=OVj!3&BLs-Z` z!FI|6d|gYA6>Jed=ZE_pEke%Grcn@47S8ty0GJ6AZ7s@17rqWjveyg-MB4!J!WNA-8rxwc>v!%)0E%`H5A%BVHhMFA1HaxyAoxXbjW;#hQ8p3_ zNb!COxu)YQ-_>XX&)@}eN^QXB0PVyLh%q%7(XVNVH3&2BhMpvkX`>zgux%aa={@u! zI&P#O0cHAjJ!=q6qjYAPL(d`#wgyHd?eI0mLxa>d-NQbzATBomm%3UvlzbyV6=O?$ zcriFc8U&@GW;uoL#DFXl)#mQeyK%IP1&8MhF9we>_t;Gzm#sk@((R`QFFpdP=wKA_ zBzzykoTp=+Y+xP@c!n9HRZNm%cMC%1{|MH@t_<3c3pTvF$8MR_`yTl~SDz(DU z!`ZGelA@2Uu&s8tyt8d

    R6v(NvDh~op^!$Om6VP>WG!kU^YI$EHI!nWYJKps4nR*^rDL*G6nH(6Ome0MKD zkis~T$bvB~-^o7*>5&xsR*j&UJSb>kG!}AF3$65aeeEobTK$Y68sFgyKMqBZ1`~Am zC^hNgbJcGv({V^x@lNv=B>~R?Jg4Ktu;O>glLF6P@+8Bvk32Z;tav|p9Pk_@j~yPB zJg~8f50l3VPak;%c)l}lS&pTRJ;zZsPK#reTz#StOE5WMamBqD?1f&X`Slu*P`xvX z*r4Qpl7N=Z(3L>$wFLzy@i7z!CTafgy-JN!v4Ihl5A0=pa6drh2Vw39PEgsv5%&X( z6JUw^0mcgO#Qgx{1(@P~fH4DHaX-Mg0k*gw06Q38+z)`$8e;?}h8W;Yo9tNXk_Bf@ zy0fJ<^heaDQj?+xM8wj4z{u#~NTYQ8k6>RGasoRY`nmLFCOPrq(t}KFH2y%kymyAE znJP8O8j1TM9U6(mjVOu#7uoVqNI_dsYEbIRCk`?xbU#5HCu~o!iXqlNVX*!QgY{1s ztbZcPdQB!BPZZ{aTh@jyM&?m@cmc)J<)K2UacJ_OGMVSq8!hDjVLh)6(Xl}P<286~^U71WjXQoRO>uFKFL=uZ4s^2e$$4HMp&Ce}~%*_aWSVxPQZa4fj3V z4{$%hnV~a=!6m|tgc}Wa23+Q`(A8)wnY%;3;E&1tK_|i?@C4Pv?ofz7-sg{A{vg8% zakO572QB%5J@>%Phr0o82HfRv7s8zhH(aS{VH_)KRi-aivQUA=e$p&n7MkBl{)Iez z1^F9zco+HWdH725*YWUG4_`z6S|0u+`73$&TJn2%_%q}$<>Bkdk3|`x zXFd7dJbWYhT|9g<`SW;qH~F)9_*U{~@$l_|tT?46g9)hzJybdm-U$%YdOmCC=rZ!( zr8Gd6zn47dEb{k}2f8_5SIzmPi>SBC*A;WVt{n1p-H@-VhJ0uSEF)<$g-<#lGLWkm zfL=Bi%LtHq1li`qb`zVp;&=ES0R6f#kKT6JkE&DQ*cA1Xc;Yk-GQOzGJ_r4E3&rvN zx-KA%#}t>0NuAJnFi=^4oeTZL`s-gnWU0SSl*2H9#^8;4sE1OT-j@4dEv`XU{qxe1 zfd}(Vl}gi2B|o+QYct+Qv-bhT9Q*pNlJAUt->c-O#J=xS@{?oV_bd5HvF`_!d`IlN zs^r^a-w!MKw%GSRCEptR{v8&*V%}-$6J%oR=2{d){M*hw$K?-tA`_4Gq`+Dhi#{+4 zMvyDnB#%XSN-jK6B=rip&#5&&5Iy7|`W{2Y@~>#65^1L*;^(fFN~-{8n~9ZlW(> zSCcTUh$qW(KbjX6Gp6_{D1J7IkE8D&H%ga{;!}WLeEr=htsY>MRu3>rs|OgR)dP&u z>H$V+c>u^kY4Zk^c4+l;f(i0xN;{rPdo+ zUL_@h^2hLnzJQ}|mT(UI<3_PFz!wV8`J%rYY|sM?Hs}Ec8}tB!4SImV1|C2YOh7h> z4MQuP(?^g$!-iC1Ll|Qy*h5~$8#owKz$6qf6$PX-|GY}eORNmvKv$-skmD!d2{~p3 zyyA+{ROWsR_gK5Xfw%j=A{zCk#+2WI@~0rR6X8aYQc!jZ(95mA8^zNDjH2lQMzMGR z@?GnCFEO50)bF$24dH?zfHI%{Tv=wAVE=v>~+`eKS=Ls9I= z-2uuCO6@2L1?aV)zZ;bE0Hg%vjzN?U{Sw1ZO~eWU$q+&Uqlxe^#39@^h^C?3F_k@LVuwAcjx@LuAk?7(5f4pb(b56T}FEh#AZvEg9fW%bu3U*j_Ki{n`oLyh@AB zjd#hQm$%5*W%p~Q>6pr+*4VNmbQf$lTDqnsYYaM^cm+Lm;PhNv21J97Tf1&Um(&9H z5ZrI!Xh-r!xPQRC4;O~}4lWTr`53qh;4M-CQ1A7?PR|B9Mxc z#qI;;EawgIoRafWEjE1f(5UdGlnS2)`&zY1RPtN;zvf5g`}KOAN4qj>Aw+beO6_P& zwkp0(1K!Kwu`!?)8v|x5MJtSS3r|hgWu$8unr@|$uKv_?tBiDYL({D`(#<_J-5Mj^ z?4jwNG}6_cnr^L;u5xI)XN+{7Q`4<8(v=QPx86usa%#GbMmqP8|m_f zrrTd{qwBcH_$&% zARnZw9@5odXqc0GB22^dLu<5vNYXN-IQnn{1$F!_(wjn5S+lbG+g3loj1j1G zxD-pn%3`ZhYg2~HI8H#pfl8wmKRN#c3|s$^e*J^l^63y~AU+$2Cy(x0a0=oqMCJkU!*{LvX)t2*5k!?JGqUk; z0rvxicmEgRJ{O@Hzb!2QD9?iwxC1NBm}FglHH4%j^XR1GnMZMpNY7it1Id>wn3M>t zzxY?@opVh7DD(Ka1aaK_e$P8+nLi*{0M13Vrj<*Y|{{*71%t! z?1nk#%Womyk1~&%Kj``A81p}o${JWb<*DF?kbFGztw~2S-wHU!_Pk{yj4+e}>&M+_ zpZY#wob*-{Ujx{uy;z|Op?LY4M_vvt@1J{@T_-xXtxLm;X ze!^wFr^Dp{u4N3j- z{pTk$PsM?fOr1OP)nh|(WB|v)&2PMZDh_b$;%)c+E_EmlD{vgY;17pR#etfc+L7_i zyF+oL0LQSiJB3qmKmsn#+4=5=LvdsS#}~i(_{&pqK+>iTwES`6P#kvPxTX4;t*7F! z0*8BY8sw#acOrOC+&Yuhh!a>Ii(FVJA4d#$&sxtoUMFa{Q~z@A%BSUz5C{HKt&C>1 z0yQ@_XU)Tq7sP=7tX@X&dV#jMxcB;5x15U00bIX++xFn;a6v&$UGm*GkyCL&myg|b zqrc;HxS$d*zV5!Ycb4qd6`XpZl5x_vgGRF8j9;_zl8Qs)af8W;a#R>hfK+>Y^(!liQ0) zW!ZicK)!S4(7Cg?cy-7BwAIhpqE8L4r>Z zgsxj<_rr0}Jif!BM_}MnR`?3o?VRbGoVmk~%RoafA`>=g60ZoIx5~oI{G1~W3jm# z7Mm+Pjit?c6vhgTz_Cgdk8o?JP|<^ryRFN~@2)TxVE5Ky-yX|srwbX0{*N$%(2%2x zv|)kd6X_(5Q3`_^@MAhU>yL@N#|M*_f1Iev|B?Maq0yNC6MH?${znR>p7@*}eOp5~ z0mX#tI%nc`O$<3O-;B*?pqmas%?sZGy|W`cK`(e`X93HkfMrq;$(OcRP~QC^8uFl6 z>5TtE8{kWEi{23E2mp|PxB@Xt_q~H+<{{9AJs~#H|1~h9N^Ly{;!xI7`6G~%PUM8& z(tX#89aL+qT2jInoLVh2_4=4;ri%C^^cx1Axto_z#HExZA!Z0jr*I~T$2Z}-L68># zD6oTwMmVbl733{OF5cQe7OQ@6|4Wt}m)W9CqmZb^%ueB9;;8#!GkV^HMMuH5s5=LN zyZ{hsn@bA2&|0J)uWJ6lQ^DcZ0**CPYDVlxx7p10rn^FBgD-_1Y5!FLhhzt_Sj{eaJLe$Te9Z(_|nPRQBqZ z&%)#fORe~{WaPAh2+oRK?zfCS&t$r~K>8u#JB)x?>=Ii5m|eRL`F`vLZ=pspp@E#~ zAG;QePFB;_x*AY)oOcH>%*i=ZXc~IiR)FDToeS{bb062jHv_I1t^h6<4vQ44=&>Vw z8^p#9m#XP4RDQDDfQdh^6Zd%BbYtiu6pL!%kD8l@kp8-S74Irs^%*pp=|q^=;lX~EkGje-{nDxJkT6qQ{cr%;g`4f z>`$UgLGDg8cmLw$vwMVaoVlCb@DY}U2lCr~AaLJa9CYd$hjdsfr?#ZrDP-=zc^MD0 zJTO&;d{mkawTT-X<1%;Rs202km)P2ibG~jlpxkK#u*86&ccI>}(!T+he!kUnC`pI5 zYS5pfB(~0yaY_P?HR~)HuRW8r=L9Z-H}*m?2qb)#GAk~D%PkY`A10SU6g3gU2f&n>cE$1hv28-2*zBDk7dj=0GBryNvm8;<&>sON zZa6OIIpz1-zMumU0(or;&Kn$Gj3w<2+mCIH+eo2ek!rR%al&NV542Cq`x&}q+z~w; z{7shYZEXjrYUxU+LYu_`PA1E73PYwaT;OlAoS!6@B`dhUwz3c1ZXd3mmdhLpFyD<= zr@7DuGEX6r$t7+D#`WP`+UZt3NV`%&SGJt56k5}E%7wV3?!K|gSlkA^(^6=|l~ljW zV$vNfWOb%gfG~mXFurd>VEr@`YS4qP>Ml|51DI@)n`jFiva(o6`uW+6`nPBJJRW<< zh%#rKoQ3OGXl+E0 z`z*}ErmJC?1t8BJ^;T@w1jV^?#(9UybH;@WQ5#vf0vxrGC4*c#Y$gj|bXuAnGCmZU zo+KC8g43DYBGNKF$vhqJT!5!D0S@O5e)j~5pwq8Ijd)boC0tW%!S{2+u;a%vUfww+ zK?YO$(sst~F&tDuWo6LA&$BZRacPt3KJ7xMaX$KZ5Le{dO}>4>LOY2u1d;B2=5{9x zN-w*KIzxSJ8beHnX4-mdP(~~6OGm#1rEaCua`4OSMhBu@wus9dry>tjs~-t#>8{>; zxyPY4vaD?N^}vTCIn`D@Yq~g5&j55FkLx`K)D3_NVi%+f5A0OJL%kS5vL#rUWJ13~ zf#9k-fdX+ob72ztMj2MJl?6CZA5K~F04J3J*VO7;DD%)*J&3KuHxnMJTdPuUTYjC; zS?at%+%SC@sy-E$Av5(@6R%u193V7tz-tOyN;VA+CiM ztZ9YT0_=Iotw?V93ej>!vh*rbohWyqJt%Zh^#lr_Pm&{rDaXK0Gs;|nD`xJS0)V!b zt`h{|%Lpegue|asal;l`QA&IBN4;v+j$xl|R1AAigrPvkBU zSJ7fEXdKekJf?^d1G`J>4Yj_JD-+%~GM&x3PVr@kHr?Roamb!zrdc)H3@Ti@&tdWw zE7f*f^_kbDJpJ&+sNjp0;-ptdC8h0>kMB9uc7VDYb}DJ+TgGvuWK$I68LH@wC7O5uZ}vFm!-oF)XAj zK@Vz;TeGAF@Y6b!Am0-mEab&5gc6{*6#ih1qZaqfLa{i|(v$z!sRTNjvEGWr>duQa z2_iGfdjS|-idx0PgN`v!kqY(i;CC**1W0D*fkJ+%EpW}Bi>u%kBSyj}c}oilqhv?R#ywy<ptCT4lSu?}1B8;~Zg$qIc;B_IjbdQ9+WN}bbxYcd%C28;nm7dx953JiBD$`v*yNW6#PLj_IK$5hg9(*HY^gd6$nsHji{ za^c;6DVI-%8O^WWgj-cp`@Fy!XqCEZW6jUJ2 zG=NKmbHcIv8}UpE^`j}FCC*jofRYR)y;D}P!+$@`pqzy$81VS`!g&QreDg@04Qi1l zpm5zu;b}c8oye@c+ryK|);BfVdsOHTJ=hu^0lQg$59DPByzyq~Ys^g#Qu^b#l@(8{zmx_h5HNHYTA;#v`TSbXRQ60w=yXdD+d(i7;r+}4d_zp!$e+p39n51fGI!7K@j`Vx> zOaH{W*`9AEeS_?>rywXa70Fm^c1&zykPs*fbxG6P$tvVc?c^FJY0L2zp3B?GQQl6z zw6@{62&0{3wad62&q~5*=Uo`u($Bzz#0~GAHuea{tg_05tp};)K6V(l))Zkfph=?} zB<==_3|T{H!xXT=+k^uD8wYT_!WeUeaZgygM@$3MRJa-*T$Q0d zNq2heT&q{^Aud@GJ{}jaVdGtlY{*vT^W=j^V!ZmZ_*9Sb@Z9rJfn;9Ll!3z; zN+3D9#(@$m!bYxDFF_rjs#W{O!Zh?mwJLu>t zsMu;Q#DpBC3@!^O8l-1e4w4^g^pKwc(zB`yjdMZ^`mvW6>s%cFBjt=>?QWc_A`0jyJ zp)jZFULmS_(I!sUZD4Lk>o)qt4JR^>N4pJZ;b`0twaZKK(CJE{EV1V*@5ZE;hQp)x~D0zKzNa>D!fK zncToUFw>n}F>(_=PwtySdY`e`j3WX_=N8l1U2IjQ<5K8U`i>CB95ZcsYe?4&=mw_? zI<~~*I~R@1%^OAN6^J3rCi1B8qIC5`faajO71T%P2qhKevoQFsHN(J@#i?1_L;K%g`-Cx+kax9HMe7c8E;! zo~^ieC()gnGUTL(qE(_lcde2pVS2UCETRBIEP&(>iFu}}sJzb6qb1?O`9|H!Ry z4wEA9cufk<6*d_qO*<0it&Su|5jO2n4F;8%uW@h=Yd2(YVb4G>LPv*V9)%8rEL8{i z%omwXe*!yM3&02$3JUWDBx#)vvkTo0YA1PZt8XmXar%%Lv-;DKW^K3k?6oPr2{_O* zHkP)Zn?mOkz``3AK&w3JhadLtDuCAB=(^F zTIC;bYC78TOx#of4uf`~<72U7A(Em3=tvq`I(Ex;xkTW-JX?)QkI`RLrKP|ys9GmQ z3vdL)VTuLUp;47~Ru02a@(DDE&OCOkw^j6SMEtSdZtv)0y(vDM^!dbFU&kF3#Is|) z`@Lh1_1b+SrO(CJS#2pSxX&vd>$UoZOP?paPIVM+KGr)xVFHC&UZ-ja-+Zk1gm?O} z-Z)(R{ki#ds)_J*{K#ns6TKxctN8%8>{R*&GnO$S$ma3GXZL&_j|IWRJ=YpMv*9S2 zKQlf>mtCYma-R$aWuPiZuVw`roVIWZNU5q(2Y!e|0u^S>Dknn%`Pe!OBG<}$Fvf3T z)6?&Ui-Foq>F_JRP$Hus1p_^ssjpn(1lnER5@{u;9Zb>1zR#vUI?~ zoBEY!-YHnDZr;GK(^W#ieh;u0avqFgcnc%fqAUkab2geb`+!*})SWW`i3*QFCN&Xaz$G=CI!@LayZ{q8)M zku$>r<&Uik2L}Af2DLI^p>I0=G;oX#n)(9--$Poo_vmxu{7{irxb1ZAG;@#t5t=Hq$K&&;y7^+_8S0jBFlfkH&pu#IbD(SdJTkbfjS* zM@~5|rb%M;k}asv{8S22hRjl>fs{p8mrH62zoV-{m5mH<@XSv^Y3-g0)oTP65e3i= zTc}Z**bp=~aw(_KGI&8FJ zVOVHx<%r>*&S% zE22K_edRSOT~5EkQZ!F4tDz2TuKE+EbU;eI`EndxSr_bJiI6Tlxf}SB-6GJ2MU+l=m|6m7W5U2?a;2$o*pab~f)Ls0XL0TA^BfYi~ zuqIr8fyEmzPhEm3C%H(FJ8D@TEEWJDtc=dTrX1|*ix_Wfq^?FJM@9KWdCD$>5j&no zAXN&61sCeNnHo(Syp!^unP{uIZO!c*p`yqG*Wtvl0atOz}N&M zUH2Vzw`qYlUy7?7LQM){j2cG2D@_alpFUe zRfpvd_Z(7+RB^*K`}gd}CYP#xitq5AFBKsAaE~eIQAkt5DAyF;1O3P3AhO4!NB%K1 zoh4{RCZ^mfwfQXNn!`EQ9Bdkkd%dtn;^WW-(Rg-HDS{lt+MQK2_NGu+%A#8uo95klM@s6ni?dSZHKjD(a+hyj<1KY* z!%fAFx7?CadS_Ep!!1osDfzy-d3UB1-dT6c&87=4zO~_(H|Mg)&x56;UU%DVX#l?S zwqFAF&f9J?A)vxUbWpjXzt*dwe$98a8*9z2H$}tu7v5U>OSUROD-%hYqp1pNCS;^J z;ZopSnj<*!li5u0x_>VGBxU68fMaGgRG3Q(8;<}AOZg9u(kH-C-h?X-jx-@TqKBLa zHxW(`gO@b{R8@rh+OJjj&=XPj$G)2qMkOYnHRg=$t1iuSo_pa%3!Cq|yJ5kvZYjC0 zIKQ&uh8y?)`|Hq&ACG>&_tW=xZS8&QA6<_<@tYM&d&k=6{_79xU)=OsuzSZlAMbl_ zcVytmvCj{Fb?D`Fue|>BGk^Z$gPms>Tt8=K zX;HzQ^}oEe$-Cqp`GIAvkNo;~tDoQS#>T%r^`|F)IN9I##ewkQo^Ai!{;!YrygToX z+vfTj?`)NYb)61)7&sucX;``^{UU&1A zIT@EtJ}-SryxA(AdA4KhvwvOlmls~z{OY3*t@{1)fM5FL!<`>&dGqbRfBBjE&GDbU z`_`HeA3qE~LHk*T{Nnz@&-~x~4XTU(4_*cf1D9Kx4sp;eQfK2|fLk$-MGum=tDpUQL* zo)^GPhW}DhdAO2prZScPhw*&sY zc>W8|58!sg-v{?S{1Le0@Q3mI8qb4ppTWNd&p+e&9Nbgzzl!JUc&>+g9{z{n9)+L! zwco(siDv-MWpM5AOKm38QdA3dv@-nEsXmV9V{pHQe;wRQ@V@~^^VCn{`7EAK!u+=efUg?%Fxeb9d!? zyyQ^S$s_h?+9(e0R7fGG<7s#@j3;M9E_n&$k>}ufcqU9IS7H+fU=z6>@5B+PBbP!s zc|EKpFT*QwF%*!y;5NAz?vkJ37x)o8B!7l4WEqYBjXZ!q;CJwfd=|Ii4meMizx!_C zYjBC&1V_lH;5hjJK7<=#H@Sf~*j^5V!yuoPJ%L+s3pA52!&UN4xIu2mo%kG_A-~3N z@gTe>599CnD|{mN!DI4EcuKy9AK)J7CKrNSG+qJA$rX45UIQiMAVkT#U^{s;uEjp^ zkTdZtoCUMVi|}G>f3lZ60VXk@0aM7ycnnSg`(xq>| zV5w)MjI$ZXoh4JbhT!Bn#&za9`5AeglhYV;P)*h~ooB@Q{Rwuix9^wD(8p?L-Ol@6 zx!IMExpJ#3x4H5KSC)So%y#W{N?(6G-*M$$SC%ma@y8Gwgd}c80aL^O%t&4w$B~u- zGQMLpq{0{&3*#US7)GKw!$|V^gkEe%V!Ozg?s9vQV??HYkewZ$m*@O!vJVJn0a?17 z6IfRQ&r6_fy6gkl7qn5nbyug2I&IWxqfQ%j+Nje;oi^&UQKyYM+p+Sb-yv>+f}mr+2vglrH*@C^UkwMT@M3m4#6; z#6trj*gL$~qPz)e(V~X6%NhpZhf5FgS^DU552hd-%U2TdjgCc2oGb1)j|Ls`Cc5bz zjUzb<$@zSYEr%Xy?SQ9uG>#|~$oGyV(G@zhEcHm6js*0+Fph@X9JdW(9g3q}#X;{2 z;~;)G7Pl-Po*$1PE%Afi(Ku2Dvqf2MU%fiUAIp!&kyfWsQb)@KYCG~rZZDoii)PHS z$}UFpga9G4CVEX7gVq9;ttqD8A#Hm(5uDgnc#M>3AmhtrUk+IIMF(V`~j@>Po* zx81&MF@+7qVF3+&$ld}R(di&-S}G5g$hUDkN}?YFI7y}YrZaSED1rW5|ED48Ctwy~zLT61ajDY|)%A+37U>@1uCXZP&tTQf*pJIo_ zt#I-`&|m0mXk2+=K3YJdK5NIDT?Oj(&(~|c^3pd^q=@yywbS> z3IhDQFj0drz<=@YA_p#V;35Yua^NBdE^^=^2QG5pA_p#V;QtK{Y}ryR95+Y~v#E)z zmgQ0LTmOB3VCC7#Os%nUX1qug6t2t9FGiOLoZoxd6-(@x15o8uYl;3Jj1Ie8D zn(rgs2#2{cc!y-uyS+}mc&4-6oDo9Ynv{I2Im1~ZwVNv?sb>U=Gb0W7^mcm_Ct1z8 zp)4ghRGwbv``9p|-JDeuk0fI%&6ySUkW&kw(oj|iUSWT_w48IFa6T&RFPOh@(Sm&n zrD-aqFN<#pyYHphJn#A`ekqHPlaquA$Tnn8mu5MTa~l7rSq6Gbp!3r=8sLB@`yKII zc1ZJS>X#Z{>Kl@KGtfxS60+uAqp;tQSAV_MnUJTy-jQMv`glVS&<@Cnu$2Qw0(X`JlDiE=|iiuq3SY{ zdN3nYZ5RC@2hw3eHE5;kQqgD*mU-srz$X)Ut#^(=qtI~Gc%o?AeDaY8d7+;6;lVXK&Jl9A-U*ffxh|{W{0bvJZ$o!v0J~ z^FE-~N|yBO!)gtf74i|B3#yD@XaNdgkd~P(jBH7IEE!c$ZWp`7w`|zahOWu-Z zr4!LeVSp&nViG6zAnMd51IRV6(yVP6HR;nlt(h+_Lox6GF}-tWM0W#VdNhYZV;ua*iygr+<7Ezw~%itT1Z5-NivBr{ZH zC}`;YY%gB>BFIF4<4oPtSaypqwSUe}o@u~Oq5gBet_P3w*lCWV0Fx3h*|Lfp!rE1w z<4UPW@9RsDTpH3cLjU>=l+=rO;c=F#u16|L`nZ(4i_h%*%B0Mzmo z;)-&pd`c_IR2jC+Y?Xwpvm6(0-ocbS*^we~A;=RN_h(SX7NJ|49SY7XFAq6Q{H|i1 z-BX-mmlCCF?X|Y_%c{&3_J3rWh5b7B;k7!C(DQGOJHowJZ%+G+HvkLtkzhv-!f_o` zlGY4y%MDc-36aNYw3>OxXrVvOF;Y0LZ<;6x zHzq-GrwZ#$X!hiGrm~2TLFfsIT@b6_1Pb5~u;0+pZss{hl2n|NeK?pX73WIT1;TzK zbRz^!OKqofAcO_~HJ3<*X$iD^pVzf|WOG+qe4$C|Fj|g<_GNpiG3fjjJvUNAs#+^m zXgiN_t2(%3yN*N$-B&~u8QlQNxUbBdd2gAS=XV}(A8_b}vvH0jMrbgLXm=)xhmw7c z8x#Wd(wZD$fNM46oeHMpR~NKg)|!xCoZDig6iJe>J`rupknN??C9qxuE~;3TZygaO zJoh_D1m_&%=^PD*`>MzrJNbmb0r}RI@BXjm|d<0 zKkGu<$s^B!oAOHx33tI?J8%9FWlSyfHF?69A+SCB1my3#;Hh3J)Oj+YWt`VY!u<(o zvu&l)jVMO7yd8xQUl#W3t4VR0Nb9|Y3`ALN(_!?YKieDBSe6I{C7iP#Nt?Zi7Q5_V z$(0(`6fKdG_+3W?f1L2;hSubJFI|EhKM59f$9Z3(g>Fc;-hy{<Z zcm(}{4A4N4a8mUNeYXfb9rwl+q0#*|C=Ze&95;hAtdl-U1%X)ak+G&P9(wf5*+%q^ zX@?QWd?nAlU?>KmSH3Z)@SMEX}74^tMNS@Ldtx9c(-I6_vI(M}3 z=)PZR^0f!hn1x#~Jo%ho=##3^+P(pj6vVt9sn{fOP;`1}g~iiuPW$RP+5yV;e*P4C z4L!%#c%7t-bqM76jNU*c1|?B`wBMgxg%MIU|U7zupUj9$T25GkbjXu$45MDMl7nhpii!FICJ4a=o2wp;MQPYp|X@M2Jp{^wn zzuK0~7%lmsb_h+c2K{4jnNLph^^HyLx?rw+1`V8Ek*Zk@0KxF2E$mS_e?bUz0$@1l z6aDEp@MJ&6UG5W(de1tOR3bB0)Erk>QF7{k#EO!BaX|1#n9L-YFd;0({H8VY_H#CqRx<|aG7?%*?|Y4y9b>ws7}F~K8<$CoCj;sL~7=W z`=qUpL$aX9S|#ZTxP0%&eUZS*|?uiq8_I0fSmdHh~+ zafQ&l&a3@`9VqC}FSt|}nwW4e+~_5R&3Fe#DR?}U@#)Y&Kbenl0j3#f!D;dt4O%sI zE>LqL7#YxYhR=T|_RgzA_bPtKx&gh?radz!2=AYo^eS2(FMNEex}pY?i&l^`?|F^fQ$O-nz{1*2moL(4x`p1p2c6Fq7JBvLoe-Qw$yZ}dL(yWjoJvq}R5r={oVrC80R)we}NsyQfgo>^0d#t1YrbMEFENO~)|Hkk`HLQl#@3Q_ClvBA5!KtdPG# zIS||2ZIb3%#LPJQZI9DQ-?u>eF=^1~5d!937P9OOmsklt&PhM|@O5mI$gnok~k%m2vky5eU z-|_fE${sIbs0~4zw3FhTT7y&M-#Kld0)qo(3a${FI#t2@LkLz(fUUEF~WgDC|Rn-tJLjX zuj}*^^5FX(LHK~Frnb3cLI%L#X!%!4C<}ltAhw0(TsqCKJF8 z0?dC;7PJ+3j@nTsS5YHf^gv>_+q*V0S+IUW3aJ*u{dvCd;CU%%!YoUEP$>mQ*%(yM zLwD*vz5X(2vDf$vni{a_K`Bd5?%G~H0~(9Qx>S>$$2S9wqM#rX?c$q_cPlfUHv8$K zOpPN!KK)rJbho4Rh(M{{X+j(W9u;fG>=h?kLXAzlm4^^9Z zDEsi4PuU=5Bwuqt=+~?tS*i?T>ZCUVtWdL!pYsc(F6LPz9cAx2=^%U0JAhHN=c%0_ zA0rSOeyAtM%mF`TW{dpwS8?2XkC}-Cl-I)JU|sE6m#GhdT}iMKx72HxtWIRzN=UnZ3_Kmv{YpL%@n zj|3#~36L5V&^5obV2<_n&?lE<`PxUEK=iSj}+H^HOoLP#m2j z7kEkt*_;AJ7ADUDyC>H`vg!^(8klq(Lk?0grlGYRE)YYhEl6$PT~EME1$LOEVr3$m zL`?zeY6A^Tdx8ms+5%+KM-e3VKEjaHNuN+qrMVrGV1UrHcOfJ=^@rQe$4VXk5Ue!) zjmG*IK%lbPrNUTjlpCl`=UvyLfk`!`j9{n_A~=3qk{9vF{V>pNJxLVR6kzypxm2|{~1i$@LN}Arb$e@WM@P23l0ov zWo{k@@u@$299c*;WkX2buaFGF>V(q~zIG7bC}@DuI4@cvXuU<2&W0%}Wnzt%mU<6~ zXXi`w3$=X9`V>D4Avc(2ajcX|>{2x?K@{c6YoRgWlFqRVsItNhGj;YVsiaZ`w90k{ zIM0iMOWmw-F6>eGqc<<*I7ZFa{b6b>j2a8cmBU}0NtAT%C%wZuf6PHMWD1+lcx{5( zV*E5M;ipOyKjJut8A>41^5x`6DRoTl@w*TcM`3@){OA>6@l8zVQiwnfID!t4WdM^Z zDwgj2b?}y@E!En~P(KkK%CjTnniyLA)(JW!1yxw|eF2kQ=!>X01BF&LA+2kGRlN8*ydm3C$d#=PEz7nFa$sxYrwWN5 zfSQd&3!>4oS4o9ANW(C6+!BSs6NQ1VIm}P(;$39diK#V^)fGdv0V6V)ZQ-Z-RzoMH z&LXc+OgT)owYAJfP*q#7gb{&`2w=R+0~APZbA$;Z@YYCbcL%ZsPmo2ur5-RWAdt!! z(T=XnaYM^^EJ5+Eg8&rz+^oxBGzSaAw4(}8`24oAHB&$%ILG3tJYYysWtbs|m|06~*CE8yfszR8GB7+i z0v8IqOe(iyN)D)5>0tJ(3_y{~V9O%jlh>Bji4>%qM(|T-nOE}xl52AEn;w9x@f1x# zJvrA)HnV6;_uBwWH8;$Qlv#+g!yD)e1bYf*9te|lPybl@m?aqF<;@((v}Jo$m3#E)p{t7 zctL)sFcR~Y6aWY_;R>cAXf_+kcel6PMRZUQ;yqi~JC*tWJ9JR`&Sxn#{yKosW}$3Vv@Vt< z@>U$Iito}1FR)wA5 z9t!2VSWuh6uQ(_=@GlI&F%MWu3wClJs6$!W1<`_F4O)qccKu7lfgBJ^DkfZNXdYpG z8|SDMUZiT{9CJvHm^ebN4aEShV--4_c>VL!FefsYcx5s1f}4q#%2z038fOEUQpt`h zi4Leb8mE8^Mat@CfsLvd1k(^H&0~C2gHT*mo}ic+bNse?qStS`m0r>|R&DuJcBfua zVDoL24yQZhyk4rZGG*2IBmnuBtai<#*}ao`p>&sFEl%f?M_EK0W?#m<-Zi{fRU1r! z$S#wLj0gp(VL7R{*-@pl5VVj8w?UI4PNBZu1~sAt-x|~<_wug!8m2WM^oAMG%Mr;h zY#@eqfRc#h6ADx{E1$y#KD!@B2&;m0_uMh zG!CloNsVLjlW~}squ+O=Qy(kMHUvkBJ>2!vy9e*+VXn&;$93u+9g{p2H`97y7=NQ zkkF1*wFW%P>{ZkjL-)IgW?SvGiZDU2&@M5oyJLtH+w2ojLmRRWi*F`(JCpo2JJKOx zWjGkiBhD#)TO|btCrUQ^2uS&N!nuWZm?@(w6tF$?5IKRen(K`2qXrmBJQ77NtJ#6wt=)RdW*#+R8JuprmK@m9Dn%Az4w z`y{X%PaE%+XlwK>O)X$ZsS1I5b4kU!D7@8)QS|EwF}Q!^M5lbRFrzdl18x zF!Y#oldk%KmUG;kecIln!4}tQt$f+ZIIK*1EKHI0Yg(@?a;C_=#{rzHbtV=I=NgzND1cZ-F@$aed2{8TtH_RKdpq}2GGN%UMO{_`6SKgQoRH)D z*kjQt#Izs<+hYOytm0dcqcftf@vxgid5;7an3}c?@Ka5q5Z5frFhtOq+A{2v%T2zNyR4Jmj(PbugA)T zg7Jt9FD#;3jS@CU=gP@QNNcP;T9K`^J{jkkp6M9Ds(ELS=wZ%1aEkTjbYZ_~e&8SQ zFv$Sl4F2L$hy~|am>DzybgtZiSijbcR*6}HN*0ALM>x2G@*fGZ{Zoznz7oVruqG1y zPnv3|RYRNlX6&eEQWZ&6*uAl8yx_4;x{oxZriZx~luEWTxUiIASO9HiSX}Qu&AS|+ z0iI_c0VLjk*oL>N1eKAZc+@w*YYwBnv}pM{ey=qpj^Arc6^&*LijQK&6Ag|3QLD;b;}r@f zy^EAdh@##qNm)a~fTR|RHWg3ZU*P^>2UZf{XKyT?VpklY@5a}|dIBahyz6e1H;{qR z%m1WYb)e+`n1X&3B-k0@@h{+2X^G;mK6O%0EORwr&i?{$_YwOQ-qwP*sYzg3G{+oe zfrW$If`pL-Tn`D*j~kXkFYp29u(+JhA%g{W2zb=qf=QL!9JIAusU}S-8BTgvmP#dI z>0L?Ednd*xh7t@}Fh)QZZ=j_#IF0Uic-I$-Oz%}?dKZ)Fy(Cu{d5%G(_{lfP^e5-b zG)iUoks_FNKT>7-M+(O55se2Q?t*XeY@4D9zCeeaAfY@8;)(QJC z(5PKToT_aw8{?O;=8(m^5-_9=oIr2)-)0G#F40fr_`h6+LTb_lv|b;sV?VX2|857j#UzPwMngG^=)`qtz%VhZHm%cs(3KH#YBY9cp1D=Qz}Y|&)6RoL{*JyM)eF= zH;(0jJZgCV?P4f$g1jS&5%p6$n=+eyq0F3*AeP!y>YbI;eGOXj6+kK3(ZSTB>DNo; zX;LAYXFOY4m)4d_j?OulYdi zpV)`)gSsW@{vD__O)t5{e)J}Akg;6G=ln{25jeMmzs<+b_hO`>=j+fb{B;T6c!-~W zkgqE>V9xy+-+q7|kkP5O)K0afcB-|gz76-s)*_omslAV=wp8kUM5U!t?;|Q0u+ITj zvdIz%z`Kr`W4QmJh8NraysY*=@5Q5cM*maEyN;2tCXlc)CYZ5m_AQuTR+-Q>lnKYc zg!lRRub#&Q)>ZwVlY0Y^JDs=R^DV^n+btmasq5t+qbUn@d zU#%zV$u5Avd3ZuoqhzeMhJ=;xwMV$0Ca-HJv;>#57a{hZp6(7V-8L&}2ip4Yo! zfx}R9D==1?bKM7cS3OiVf_|*LvHK#>+u#r6+)yU+*Murx= zQj13Rnp$+Fk?Hu1H&Ogvets9M6Jv}2|9^LgQd+63b?7QRa`nks|)D7kV+Z^s&^^!@cO+)Y41Q(%%s=Bw{U{iH}HvLoL0K&j=Tmwe-P) z4sGfGH~ZBg)$7<0xQ>(n73}bZ3l`S2tYAk`gKzWmU*YRw3Z`@c|DmTHlD%^?#5B^= zl1+2iW`5Axm&|djP#2}>{>nPfhSFj0`UA-Zd)F&q@9JB<5@E3RYrWI+4EK+7A?!q9 z7sZf-jhmAPFvQ*XcT}ZRWoqtDLta*cNvf*HQjO;s4S=N->~xP3&c-{E^IEh{tuQlF z15*nAhgc2ZI=gnG&V%p39=!R@G|3ug3fxaZ(8=|k3km($Y}yGZ>@@ump|sP~h4(2u znaELxsB?H|cZ$r-q$;w~OUA6FD=-26$T10JC9T#QpcEkf+8E+dL@b{PMcBIGHyPnU z8QcYc41AxEGN+gnxS6F@c6i=SdJjts&{<@-t}n%IHNWX7s1nw}fMo<$5A-~L4>-fs z)GS5SZwNj67*fmS@36@>>AHMd+3G7KTfJ0O3*PHtnbnd=gGgB8x(}~kkigjT;hM_o z>PE~lXww7dAnbDTyO{CY?9#fj#xoR%nGLLJWO?2ZSnSyBepeQm=3xO0duHVOJ@au~ zNoO~K=Yz7A*C>B1q6cW74y=Le6kOn<>z{bXl+92&?Q?KsO$t^6nv8)daF>@y7is-b ztW?-)!3LOm8}cwUT3sPI>l?jP0MBmf{ep>|{~{k$oe``ta_g50H*=nQD9m{UOy8>I z1Hj_Z-Yo3bFQrggb$T8_z!=;ob_e&axzTP1ADCGn_)srvz)2C@TSweWpLDkI0HtdT z(XXc<7sfxI{|>29QUk3NV(Ch$fxo_u#gp5p&{%{{O$si9G^j?`Rd#!H!F~lurGBzc z1Cx*oBXOZEMY{d-cUDN>8MmxI0 zR?o1Y%O<<5T(rdk5oTIg2cZQ=ETLY9Ho(COOXyGHH^E5_<0h1t8U}wkHxJH*QP1sg zx8M=fNBnm%Upy5w194Vo7aipRZhdehGRsPMguEme{|;W|DLzN%qqJr}Hph^ddyz6` zVB1tMm03h%=+8{J9Y;`38~~!HlkIROpR7ijGMw(&I*%eNOmuF=*kq8q-^4tlTWr&I zen{mKm(s$sK`hn-UmDDb6UFNnAfzDlG($ZBsj+xPl&Gji!#)p87JI{MXUdvky-YCk zF?(1ANo$XDjHgP#kpR`S>N6M1gv}kb!t;b-2jN=WhN2OUh z_klJH-zOgkjuCqf$w*D-xDe2TF#)sX*1k-wl6FGoVT!SE7A+L#NOr?FobTc@-o|#q z5dbowp~EwL2HVM)414K1p=UozH30vmfty}S{ocz#BIU8YUqRqS6kz~p1ah`(i0)8dQk-su27f*o$%sNJ^ zwiZ;m>_IyuJ42|aH{v)aPwgflWO!Sc(1re)sed$}w~MW4z^cuOa6GKApg-g?Lg2?b zGCPryAPK((9@2Y(%_t>_lURa7MJFI|XdGH;Yk*uZQG|}s1A+^FA3&r4bdr7}h77q< zV@CGr;B`{D8K%T}1qSC8QenL`qgFywfF;a8yhAILW@=`*53JX#{bh09N$2Zi#R^nf zbVmC2r>G!Mx(YR_(p8Ks6`RLbk+s4HkVP%rip?1d-j%}LMmiW|p+3G62(6&4^x7hm zuRpHQyKDJ7I}u(W3C9kjCQ9u{RVJ+}#a3E_WTAyaI|^1y1q*zLjSUR0tilE$tjIp? zdBMCF;oUCw!s!}K4U}dXPTD#6o!iW0B;)%i3A(LsLvlAntrHW2kcQvn1)h#$9nNkn zqu;w79?cH(2eF7eE;EfHkiEqo#(AHDlHW98)xVC9}4e+Qd#X8_qc79D7**lC42 zoAxgR@b}asu4CW~@A?v(;T;1Z$Ec2hQ@s0fWEik$W9UW}mT)%w&fhcAvqQ)RO)594 ze00bqwtOF}!Dx*74T*8oIAwd+j}*d$Ja?4t`fdZ!zkhFsl0nEMf`{%sO4Q`ZYz9U$Gd5`7}$WH zaDDJD>~L`6XQ*F`T-^&9hQTFmt7ReWSHgi%wilqce)h*Rhs2&zM-d8EtLd((@f63| zk;WccWt1Hx0T39m$T+VKC0&XhpusM?5nK#;p!s*DRA}thW>GJLv{hO_S@A4`)zufE z9++z7TaY{A13M?O0ISeuL|;@!V+C5FCjHQiq?lX?8?un}2UHj5U?J54M^#h2$7QCqu86o&6QDH% z-!TKf(`9~^oPE0FF7oVzC%J3kB5bP$##S`l44Va&eGT$rl>@Dm8(OQvJ{-uS1L6go zVv!|;w7mN)u#`7xhh|(mkFxj^BJJe(v*OsyC}4`?jXoAZV@wrEy(K)Y= z$vGvQ^W|{NtBcAxA)NDve^GL-N6zd(w9*>uh5b0C?F(H_XJBi>ZS+>E?dyrgNNt

    E|C|qYqwx??z>py>rNlryn-)BA+JXx5tW~ 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 Wv#(!p(YfcIf5GVT^UKe3x&9ka=S{u< literal 0 HcmV?d00001

    f5QpShW1TzX4X^Tn7K6%b`fZ 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�a|;3DWs5g)?i@jYAY+oDaD;Ep(xJ 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 z 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