diff --git a/Builds/MacOSX/Dexed.xcodeproj/project.pbxproj b/Builds/MacOSX/Dexed.xcodeproj/project.pbxproj index 407b453..5c4b8fc 100644 --- a/Builds/MacOSX/Dexed.xcodeproj/project.pbxproj +++ b/Builds/MacOSX/Dexed.xcodeproj/project.pbxproj @@ -262,6 +262,7 @@ 2CA19470CA427333F8CAC0A5 /* juce_ImagePreviewComponent.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ImagePreviewComponent.cpp; path = ../../JuceLibraryCode/modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp; sourceTree = SOURCE_ROOT; }; 2CA60524355CF872ADB42EA4 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CAVectorUnit.cpp; path = Extras/CoreAudio/PublicUtility/CAVectorUnit.cpp; sourceTree = DEVELOPER_DIR; }; 2CB4C73C121FCDEF65CBAC79 /* juce_mac_MainMenu.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_mac_MainMenu.mm; path = ../../JuceLibraryCode/modules/juce_gui_basics/native/juce_mac_MainMenu.mm; sourceTree = SOURCE_ROOT; }; + 2CBFFF86BDEB0B89734D6956 /* Switch_32x32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Switch_32x32.png; path = ../../Resources/ui/Switch_32x32.png; sourceTree = SOURCE_ROOT; }; 2D26E2304C0F6FC633936014 /* lfo.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = lfo.cc; path = ../../Source/msfa/lfo.cc; sourceTree = SOURCE_ROOT; }; 2D8A5B5929909ADD898D7E00 /* juce_HashMap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_HashMap.h; path = ../../JuceLibraryCode/modules/juce_core/containers/juce_HashMap.h; sourceTree = SOURCE_ROOT; }; 2D9932D322EDA14CC872D08B /* juce_MemoryOutputStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_MemoryOutputStream.h; path = ../../JuceLibraryCode/modules/juce_core/streams/juce_MemoryOutputStream.h; sourceTree = SOURCE_ROOT; }; @@ -2581,6 +2582,7 @@ F472964B0FFEE5615B72CE3D /* Resources */ = { isa = PBXGroup; children = ( + 2CBFFF86BDEB0B89734D6956 /* Switch_32x32.png */, 0D5761BE1D2DEA319B57D740 /* Switch_48x26.png */, E6F65C031FCBB192F3927D4C /* ButtonUnlabeled_50x30.png */, 8B19E0BEAD29F2C0D46FA89C /* Knob_34x34.png */, @@ -2881,7 +2883,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; DEBUG_INFORMATION_FORMAT = dwarf; GCC_C_LANGUAGE_STANDARD = c99; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; diff --git a/Builds/MacOSX/Dexed.xcodeproj/project.xcworkspace/xcuserdata/asb2m10.xcuserdatad/UserInterfaceState.xcuserstate b/Builds/MacOSX/Dexed.xcodeproj/project.xcworkspace/xcuserdata/asb2m10.xcuserdatad/UserInterfaceState.xcuserstate index a513efb..1ea9a03 100644 Binary files a/Builds/MacOSX/Dexed.xcodeproj/project.xcworkspace/xcuserdata/asb2m10.xcuserdatad/UserInterfaceState.xcuserstate and b/Builds/MacOSX/Dexed.xcodeproj/project.xcworkspace/xcuserdata/asb2m10.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Builds/VisualStudio2012/Dexed.v11.suo b/Builds/VisualStudio2012/Dexed.v11.suo index 4025059..2df1aaa 100644 Binary files a/Builds/VisualStudio2012/Dexed.v11.suo and b/Builds/VisualStudio2012/Dexed.v11.suo differ diff --git a/Builds/VisualStudio2012/Dexed.vcxproj b/Builds/VisualStudio2012/Dexed.vcxproj index 0e7a1e6..d63545c 100644 --- a/Builds/VisualStudio2012/Dexed.vcxproj +++ b/Builds/VisualStudio2012/Dexed.vcxproj @@ -1555,6 +1555,7 @@ + diff --git a/Builds/VisualStudio2012/Dexed.vcxproj.filters b/Builds/VisualStudio2012/Dexed.vcxproj.filters index abfc540..359c67d 100644 --- a/Builds/VisualStudio2012/Dexed.vcxproj.filters +++ b/Builds/VisualStudio2012/Dexed.vcxproj.filters @@ -2723,6 +2723,9 @@ + + Dexed\Resources + Dexed\Resources diff --git a/Dexed.jucer b/Dexed.jucer index 425c742..75f45da 100644 --- a/Dexed.jucer +++ b/Dexed.jucer @@ -12,6 +12,8 @@ buildRTAS="0" buildAAX="0" pluginManufacturerEmail="support@yourcompany.com"> + - + diff --git a/Documentation/TX802-SYSEX.pdf b/Documentation/TX802-SYSEX.pdf new file mode 100644 index 0000000..58fc9b0 Binary files /dev/null and b/Documentation/TX802-SYSEX.pdf differ diff --git a/Documentation/sysex-format.txt b/Documentation/sysex-format.txt new file mode 100644 index 0000000..69e544a --- /dev/null +++ b/Documentation/sysex-format.txt @@ -0,0 +1,292 @@ +Sysex Documentation +=================== + +(Message GUS:472) +Received: from mailhub.iastate.edu by po-3.iastate.edu + id AA06806; Sat, 25 Sep 93 16:13:53 -0500 +Received: from Waisman.Wisc.EDU (don.waisman.wisc.edu) by mailhub.iastate.edu + id AA23002; Sat, 25 Sep 1993 16:14:09 -0500 +Received: from Waisman.Wisc.EDU by Waisman.Wisc.EDU (PMDF V4.2-10 #2484) id + <01H3DDLUXLDSBMA3H1@Waisman.Wisc.EDU>; Sat, 25 Sep 1993 16:13:40 CDT +Date: Sat, 25 Sep 1993 16:13:40 -0500 (CDT) +From: "Ewan A. Macpherson" +Subject: DX7 Data Format +To: xeno@iastate.edu +Message-Id: <01H3DDLUY4O2BMA3H1@Waisman.Wisc.EDU> +Organization: Waisman Center, University of Wisconsin-Madison +X-Vms-To: IN::"xeno@iastate.edu" +Mime-Version: 1.0 +Content-Type: TEXT/PLAIN; CHARSET=US-ASCII +Content-Transfer-Encoding: 7BIT + +Gary: + +I don't know anything about the differences between the DX7 and DX7s, but this +DX7 info may be useful. I posted this to r.m.s. before xmas. + +I've seen many requests for public domain / shareware DX editors, but I've +never seen a definitive reply. They're usually along the lines of "I was +roaching around on CompuServe last month, and I think I remember seeing one..." + +Anyway, hope this helps ... + +========================================================================= + +For those interested in unpacking the uscd.edu DX7 patch data, here is +DX7 data format information. + + compiled from - the DX7 MIDI Data Format Sheet + - article by Steve DeFuria (Keyboard Jan 87) + - looking at what my DX7 spits out + +I have kept the kinda weird notation used in the DX7 Data Sheet to reduce +typing errors. Where it doesn't quite make sense to me I've added comments. +(And I will not be liable for errors etc ....) + +Contents: A: SYSEX Message: Bulk Data for 1 Voice + B: SYSEX Message: Bulk Data for 32 Voices + C: SYSEX Message: Parameter Change + D: Data Structure: Single Voice Dump & Voice Parameter #'s + E: Function Parameter #'s + F: Data Structure: Bulk Dump Packed Format + +//////////////////////////////////////////////////////////// +A: +SYSEX Message: Bulk Data for 1 Voice +------------------------------------ + bits hex description + + 11110000 F0 Status byte - start sysex + 0iiiiiii 43 ID # (i=67; Yamaha) + 0sssnnnn 00 Sub-status (s=0) & channel number (n=0; ch 1) + 0fffffff 00 format number (f=0; 1 voice) + 0bbbbbbb 01 byte count MS byte + 0bbbbbbb 1B byte count LS byte (b=155; 1 voice) + 0ddddddd ** data byte 1 + + | | | + + 0ddddddd ** data byte 155 + 0eeeeeee ** checksum (masked 2's complement of sum of 155 bytes) + 11110111 F7 Status - end sysex + + + +/////////////////////////////////////////////////////////// +B: +SYSEX Message: Bulk Data for 32 Voices +-------------------------------------- + bits hex description + + 11110000 F0 Status byte - start sysex + 0iiiiiii 43 ID # (i=67; Yamaha) + 0sssnnnn 00 Sub-status (s=0) & channel number (n=0; ch 1) + 0fffffff 09 format number (f=9; 32 voices) + 0bbbbbbb 20 byte count MS byte + 0bbbbbbb 00 byte count LS byte (b=4096; 32 voices) + 0ddddddd ** data byte 1 + + | | | + + 0ddddddd ** data byte 4096 (there are 128 bytes / voice) + 0eeeeeee ** checksum (masked 2's comp. of sum of 4096 bytes) + 11110111 F7 Status - end sysex + + +///////////////////////////////////////////////////////////// +C: +SYSEX MESSAGE: Parameter Change +------------------------------- + bits hex description + + 11110000 F0 Status byte - start sysex + 0iiiiiii 43 ID # (i=67; Yamaha) + 0sssnnnn 10 Sub-status (s=1) & channel number (n=0; ch 1) + 0gggggpp ** parameter group # (g=0; voice, g=2; function) + 0ppppppp ** parameter # (these are listed in next section) + Note that voice parameter #'s can go over 128 so + the pp bits in the group byte are either 00 for + par# 0-127 or 01 for par# 128-155. In the latter case + you add 128 to the 0ppppppp byte to compute par#. + 0ddddddd ** data byte + 11110111 F7 Status - end sysex + + +////////////////////////////////////////////////////////////// + +D: +Data Structure: Single Voice Dump & Parameter #'s (single voice format, g=0) +------------------------------------------------------------------------- + +Parameter + Number Parameter Value Range +--------- --------- ----------- + 0 OP6 EG rate 1 0-99 + 1 " " rate 2 " + 2 " " rate 3 " + 3 " " rate 4 " + 4 " " level 1 " + 5 " " level 2 " + 6 " " level 3 " + 7 " " level 4 " + 8 OP6 KBD LEV SCL BRK PT " C3= $27 + 9 " " " " LFT DEPTH " + 10 " " " " RHT DEPTH " + 11 " " " " LFT CURVE 0-3 0=-LIN, -EXP, +EXP, +LIN + 12 " " " " RHT CURVE " " " " " + 13 OP6 KBD RATE SCALING 0-7 + 14 OP6 AMP MOD SENSITIVITY 0-3 + 15 OP6 KEY VEL SENSITIVITY 0-7 + 16 OP6 OPERATOR OUTPUT LEVEL 0-99 + 17 OP6 OSC MODE (fixed/ratio) 0-1 0=ratio + 18 OP6 OSC FREQ COARSE 0-31 + 19 OP6 OSC FREQ FINE 0-99 + 20 OP6 OSC DETUNE 0-14 0: det=-7 + 21 \ + | > repeat above for OSC 5, OSC 4, ... OSC 1 +125 / +126 PITCH EG RATE 1 0-99 +127 " " RATE 2 " +128 " " RATE 3 " +129 " " RATE 4 " +130 " " LEVEL 1 " +131 " " LEVEL 2 " +132 " " LEVEL 3 " +133 " " LEVEL 4 " +134 ALGORITHM # 0-31 +135 FEEDBACK 0-7 +136 OSCILLATOR SYNC 0-1 +137 LFO SPEED 0-99 +138 " DELAY " +139 " PITCH MOD DEPTH " +140 " AMP MOD DEPTH " +141 LFO SYNC 0-1 +142 " WAVEFORM 0-5, (data sheet claims 9-4 ?!?) + 0:TR, 1:SD, 2:SU, 3:SQ, 4:SI, 5:SH +143 PITCH MOD SENSITIVITY 0-7 +144 TRANSPOSE 0-48 12 = C2 +145 VOICE NAME CHAR 1 ASCII +146 VOICE NAME CHAR 2 ASCII +147 VOICE NAME CHAR 3 ASCII +148 VOICE NAME CHAR 4 ASCII +149 VOICE NAME CHAR 5 ASCII +150 VOICE NAME CHAR 6 ASCII +151 VOICE NAME CHAR 7 ASCII +152 VOICE NAME CHAR 8 ASCII +153 VOICE NAME CHAR 9 ASCII +154 VOICE NAME CHAR 10 ASCII +155 OPERATOR ON/OFF + bit6 = 0 / bit 5: OP1 / ... / bit 0: OP6 + +Note that there are actually 156 parameters listed here, one more than in +a single voice dump. The OPERATOR ON/OFF parameter is not stored with the +voice, and is only transmitted or received while editing a voice. So it +only shows up in parameter change SYS-EX's. + + +//////////////////////////////////////////////////////// + +E: +Function Parameters: (g=2) +------------------------- + +Parameter +Number Parameter Range +--------- ---------- ------ +64 MONO/POLY MODE CHANGE 0-1 O=POLY +65 PITCH BEND RANGE 0-12 +66 " " STEP 0-12 +67 PORTAMENTO MODE 0-1 0=RETAIN 1=FOLLOW +68 " GLISS 0-1 +69 " TIME 0-99 +70 MOD WHEEL RANGE 0-99 +71 " " ASSIGN 0-7 b0: pitch, b1:amp, b2: EG bias +72 FOOT CONTROL RANGE 0-99 +73 " " ASSIGN 0-7 " +74 BREATH CONT RANGE 0-99 +75 " " ASSIGN 0-7 " +76 AFTERTOUCH RANGE 0-99 +77 " ASSIGN 0-7 " + +/////////////////////////////////////////////////////////////// + +F: +Data Structure: Bulk Dump Packed Format +--------------------------------------- + +OK, now the tricky bit. For a bulk dump the 155 voice parameters for each + voice are packed into 32 consecutive 128 byte chunks as follows ... + +byte bit # + # 6 5 4 3 2 1 0 param A range param B range +---- --- --- --- --- --- --- --- ------------ ----- ------------ ----- + 0 R1 OP6 EG R1 0-99 + 1 R2 OP6 EG R2 0-99 + 2 R3 OP6 EG R3 0-99 + 3 R4 OP6 EG R4 0-99 + 4 L1 OP6 EG L1 0-99 + 5 L2 OP6 EG L2 0-99 + 6 L3 OP6 EG L3 0-99 + 7 L4 OP6 EG L4 0-99 + 8 BP LEV SCL BRK PT 0-99 + 9 LD SCL LEFT DEPTH 0-99 + 10 RD SCL RGHT DEPTH 0-99 + 11 0 0 0 | RC | LC | SCL LEFT CURVE 0-3 SCL RGHT CURVE 0-3 + 12 | DET | RS | OSC DETUNE 0-14 OSC RATE SCALE 0-7 + 13 0 0 | KVS | AMS | KEY VEL SENS 0-7 AMP MOD SENS 0-3 + 14 OL OP6 OUTPUT LEV 0-99 + 15 0 | FC | M | FREQ COARSE 0-31 OSC MODE 0-1 + 16 FF FREQ FINE 0-99 + 17 \ + | > these 17 bytes for OSC 5 + 33 / + 34 \ + | > these 17 bytes for OSC 4 + 50 / + 51 \ + | > these 17 bytes for OSC 3 + 67 / + 68 \ + | > these 17 bytes for OSC 2 + 84 / + 85 \ + | > these 17 bytes for OSC 1 +101 / + +byte bit # + # 6 5 4 3 2 1 0 param A range param B range +---- --- --- --- --- --- --- --- ------------ ----- ------------ ----- +102 PR1 PITCH EG R1 0-99 +103 PR2 PITCH EG R2 0-99 +104 PR3 PITCH EG R3 0-99 +105 PR4 PITCH EG R4 0-99 +106 PL1 PITCH EG L1 0-99 +107 PL2 PITCH EG L2 0-99 +108 PL3 PITCH EG L3 0-99 +109 PL4 PITCH EG L4 0-99 +110 0 0 | ALG | ALGORITHM 0-31 +111 0 0 0 |OKS| FB | OSC KEY SYNC 0-1 FEEDBACK 0-7 +112 LFS LFO SPEED 0-99 +113 LFD LFO DELAY 0-99 +114 LPMD LF PT MOD DEP 0-99 +115 LAMD LF AM MOD DEP 0-99 +116 | LPMS | LFW |LKS| LF PT MOD SNS 0-7 WAVE 0-5, SYNC 0-1 +117 TRNSP TRANSPOSE 0-48 +118 NAME CHAR 1 VOICE NAME 1 ASCII +119 NAME CHAR 2 VOICE NAME 2 ASCII +120 NAME CHAR 3 VOICE NAME 3 ASCII +121 NAME CHAR 4 VOICE NAME 4 ASCII +122 NAME CHAR 5 VOICE NAME 5 ASCII +123 NAME CHAR 6 VOICE NAME 6 ASCII +124 NAME CHAR 7 VOICE NAME 7 ASCII +125 NAME CHAR 8 VOICE NAME 8 ASCII +126 NAME CHAR 9 VOICE NAME 9 ASCII +127 NAME CHAR 10 VOICE NAME 10 ASCII + +///////////////////////////////////////////////////////////////////// + +And that's it. + +Hope this is useful. + +ewan. diff --git a/JuceLibraryCode/AppConfig.h b/JuceLibraryCode/AppConfig.h index ae82088..7b3357a 100644 --- a/JuceLibraryCode/AppConfig.h +++ b/JuceLibraryCode/AppConfig.h @@ -83,23 +83,23 @@ // juce_audio_formats flags: #ifndef JUCE_USE_FLAC - //#define JUCE_USE_FLAC + #define JUCE_USE_FLAC 0 #endif #ifndef JUCE_USE_OGGVORBIS - //#define JUCE_USE_OGGVORBIS + #define JUCE_USE_OGGVORBIS 0 #endif #ifndef JUCE_USE_MP3AUDIOFORMAT - //#define JUCE_USE_MP3AUDIOFORMAT + #define JUCE_USE_MP3AUDIOFORMAT 0 #endif #ifndef JUCE_USE_LAME_AUDIO_FORMAT - //#define JUCE_USE_LAME_AUDIO_FORMAT + #define JUCE_USE_LAME_AUDIO_FORMAT 0 #endif #ifndef JUCE_USE_WINDOWS_MEDIA_FORMAT - //#define JUCE_USE_WINDOWS_MEDIA_FORMAT + #define JUCE_USE_WINDOWS_MEDIA_FORMAT 0 #endif //============================================================================== @@ -178,7 +178,7 @@ // juce_gui_extra flags: #ifndef JUCE_WEB_BROWSER - //#define JUCE_WEB_BROWSER + #define JUCE_WEB_BROWSER 0 #endif #ifndef JUCE_ENABLE_LIVE_CONSTANT_EDITOR diff --git a/JuceLibraryCode/BinaryData.cpp b/JuceLibraryCode/BinaryData.cpp index bdea883..7d788a0 100644 --- a/JuceLibraryCode/BinaryData.cpp +++ b/JuceLibraryCode/BinaryData.cpp @@ -7,8 +7,25 @@ namespace BinaryData { -//================== Switch_48x26.png ================== +//================== Switch_32x32.png ================== static const unsigned char temp_binary_data_0[] = +{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,64,8,6,0,0,0,123,142,117,174,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,4,103,65,77,65,0,0,177,143,11,252,97,5,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,2,222,73,68, +65,84,104,67,237,153,77,79,19,81,20,134,177,206,208,66,233,116,166,45,29,98,218,41,165,223,45,138,9,229,163,124,136,11,91,18,117,33,223,110,132,4,113,225,194,53,174,136,63,130,21,236,216,251,31,52,254,13,227,214,144,184,237,250,120,222,59,67,236,144, +178,243,140,49,153,55,121,194,237,123,223,48,151,211,222,233,153,203,72,168,80,161,254,55,117,25,186,139,104,108,140,242,78,1,25,49,189,97,40,26,141,13,101,246,225,35,234,246,54,145,17,147,90,128,145,52,135,178,186,182,78,187,123,251,225,2,194,5,136, +46,224,208,182,109,42,149,43,84,156,41,249,128,247,252,197,75,218,218,222,57,244,178,34,58,58,61,253,72,199,199,111,21,39,39,239,20,55,175,207,206,62,209,171,173,237,35,47,43,162,233,100,210,162,106,181,70,149,74,213,7,60,219,158,162,76,38,51,237,101, +69,84,54,77,139,74,165,50,21,139,92,250,226,140,7,191,5,236,101,179,83,148,76,38,203,94,86,68,77,84,160,211,89,97,58,222,207,63,227,201,73,155,18,137,68,211,203,138,168,133,5,160,10,134,193,159,252,1,224,121,11,104,121,89,17,181,112,161,245,245,39,180, +198,91,110,16,120,120,11,196,23,128,10,128,68,194,240,1,47,176,10,44,47,119,20,75,75,46,55,175,3,171,64,173,214,80,219,110,16,120,217,172,124,5,28,211,76,245,177,239,75,165,138,218,122,46,21,117,47,72,167,39,251,186,174,59,94,86,68,182,101,165,126,205, +205,61,166,86,107,150,26,141,134,2,99,120,152,67,198,141,202,8,191,252,27,243,157,249,113,11,120,152,19,93,64,150,233,49,239,153,15,183,128,135,57,100,196,100,50,115,12,26,79,92,108,16,120,152,67,70,76,163,140,197,60,184,3,204,33,19,42,84,40,49,69,206, +207,207,63,95,93,93,125,185,188,188,252,122,113,225,130,49,60,204,33,227,70,101,164,165,82,153,159,171,171,107,170,1,217,216,120,170,192,24,30,230,144,113,163,50,154,176,172,244,117,161,80,36,199,153,166,66,193,197,29,23,249,203,40,125,141,140,27,149, +81,142,47,210,175,213,234,67,250,129,58,87,32,221,191,23,137,228,188,172,136,84,67,210,110,47,208,252,124,219,7,188,76,38,75,227,241,184,124,71,196,77,9,247,128,166,15,120,129,180,100,184,208,226,226,18,45,44,44,250,128,23,104,87,108,24,73,31,240,2,234, +138,83,220,9,47,171,191,120,16,120,129,85,32,159,119,40,151,203,251,128,23,68,5,154,168,192,93,219,208,171,128,236,179,161,166,233,212,108,182,168,94,199,179,1,30,203,171,106,12,111,124,60,46,95,1,134,116,125,148,52,93,247,1,15,39,37,210,21,168,51,234, +68,52,26,139,221,98,76,29,84,26,134,129,140,152,112,250,65,241,248,196,80,218,124,63,176,44,75,244,132,4,239,47,37,120,223,15,99,133,191,17,203,229,138,232,103,32,60,39,252,247,11,208,52,141,28,52,33,67,120,214,237,209,254,193,107,185,5,68,34,247,187, +57,190,229,118,123,155,67,217,219,63,160,157,221,61,209,127,88,132,10,21,234,47,107,100,228,55,171,12,230,253,182,31,107,115,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; + +const char* Switch_32x32_png = (const char*) temp_binary_data_0; + +//================== Switch_48x26.png ================== +static const unsigned char temp_binary_data_1[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,48,0,0,0,52,8,6,0,0,0,204,147,187,145,0,0,0,6,98,75,71,68,0,0,0,230,0,0,84,44,23,109,0,0,8,138,73,68,65,84,104,222,237,153,203,146,92,71,17,134,191,204,170,115,122,46,109,100,89,8,73,182,9,155,192,198, 17,108,88,176,100,207,130,61,15,192,139,16,65,240,28,108,216,178,231,21,88,177,99,225,0,54,88,72,8,203,88,30,205,69,211,167,170,50,89,84,157,75,247,140,100,141,199,14,135,35,166,38,58,230,116,247,233,83,121,253,51,243,47,184,89,223,238,146,245,122,253, 35,224,215,223,81,249,255,20,129,119,223,190,127,255,23,63,255,217,79,126,21,52,68,4,220,253,162,166,8,142,79,215,230,142,224,32,2,108,255,102,186,22,104,63,169,159,45,174,139,27,102,142,153,227,14,230,142,91,221,97,126,214,184,15,184,8,120,253,190,148, @@ -42,10 +59,10 @@ static const unsigned char temp_binary_data_0[] = 170,245,214,237,55,249,225,59,239,112,112,112,192,217,233,233,52,29,93,135,153,123,217,82,160,3,86,237,117,11,184,211,94,183,129,239,181,215,173,198,238,189,206,122,12,252,161,177,119,95,47,51,119,69,2,44,2,107,224,141,166,192,123,192,7,141,16,123,31, 184,15,220,5,30,52,229,199,245,219,147,147,147,223,127,99,204,220,215,172,220,26,120,19,120,183,41,247,33,240,199,147,147,147,191,222,112,46,223,133,245,127,146,199,98,107,0,177,99,238,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; -const char* Switch_48x26_png = (const char*) temp_binary_data_0; +const char* Switch_48x26_png = (const char*) temp_binary_data_1; //================== ButtonUnlabeled_50x30.png ================== -static const unsigned char temp_binary_data_1[] = +static const unsigned char temp_binary_data_2[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,50,0,0,0,60,8,6,0,0,0,36,53,233,193,0,0,7,1,73,68,65,84,120,218,237,152,89,115,84,85,16,199,17,2,162,200,50,36,72,162,147,9,165,24,182,84,48,40,22,123,50,89,36,179,79,112,65,4,67,74,32,9,168,133,143, 190,248,96,41,1,13,202,146,109,88,50,201,100,82,128,154,68,95,172,242,73,191,134,96,197,42,31,228,107,92,187,207,237,190,211,119,155,185,153,12,84,160,50,85,255,234,62,203,61,221,191,219,231,222,153,57,75,150,44,126,22,238,231,25,208,82,208,178,39,68, 75,41,103,211,7,59,107,64,97,208,177,39,68,97,202,121,169,4,41,3,237,121,117,207,91,3,215,102,166,238,95,154,6,161,157,153,249,43,231,79,235,109,101,167,105,142,244,229,117,22,31,116,17,174,237,3,219,7,253,104,47,76,235,234,147,18,227,60,71,182,251,212, @@ -73,10 +90,10 @@ static const unsigned char temp_binary_data_1[] = 234,97,47,5,140,189,191,119,126,191,197,138,5,241,178,248,163,248,237,229,26,251,81,109,173,82,192,120,134,120,220,32,115,253,255,50,167,255,41,133,64,214,84,84,140,188,25,105,255,187,185,243,248,131,214,147,39,30,180,128,90,79,118,42,191,149,253,174, 78,234,235,52,181,219,186,230,39,199,117,173,125,164,22,200,175,252,229,170,97,39,144,167,230,56,232,169,57,160,91,252,44,148,207,255,202,67,236,221,252,78,22,31,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; -const char* ButtonUnlabeled_50x30_png = (const char*) temp_binary_data_1; +const char* ButtonUnlabeled_50x30_png = (const char*) temp_binary_data_2; //================== Knob_34x34.png ================== -static const unsigned char temp_binary_data_2[] = +static const unsigned char temp_binary_data_3[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,6,96,8,6,0,0,0,27,7,149,159,0,0,50,154,73,68,65,84,120,218,237,221,247,87,215,87,186,47,240,156,115,79,38,55,197,134,8,118,64,58,130,40,72,17,68,122,239,189,87,41,138,32,54,84,84,80,84,236,189, 247,154,88,99,65,177,247,26,77,76,98,98,108,201,76,214,202,111,103,221,123,255,128,204,50,115,223,247,121,30,192,51,51,119,206,36,103,38,223,207,39,201,121,246,90,123,209,249,236,239,254,236,189,191,159,231,181,118,121,227,13,77,191,161,244,175,148,223, 162,220,147,178,13,229,1,93,217,166,235,123,111,117,253,142,197,210,191,81,238,71,217,119,128,173,117,149,155,203,176,53,163,70,120,30,25,61,210,171,99,180,183,87,199,8,15,215,35,46,195,236,215,88,91,91,85,241,239,116,253,238,191,253,220,53,208,231,205, @@ -263,10 +280,10 @@ static const unsigned char temp_binary_data_2[] = 77,171,124,207,139,98,100,83,196,40,159,6,192,245,171,91,165,48,203,22,207,198,8,7,187,191,60,43,205,72,49,226,54,178,108,113,147,104,209,194,230,105,84,8,7,243,206,74,27,65,183,132,11,33,133,89,48,3,163,232,205,207,180,157,175,93,135,57,72,33,62,186, 119,22,113,49,97,212,232,221,204,219,199,104,184,155,51,98,162,67,209,215,170,207,255,237,221,171,199,238,55,204,156,99,100,55,100,240,171,46,182,242,84,49,82,49,82,49,250,77,166,255,7,121,17,68,51,15,166,168,239,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; -const char* Knob_34x34_png = (const char*) temp_binary_data_2; +const char* Knob_34x34_png = (const char*) temp_binary_data_3; //================== LFO_36_26.png ================== -static const unsigned char temp_binary_data_3[] = +static const unsigned char temp_binary_data_4[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,36,0,0,0,156,8,6,0,0,0,23,153,9,128,0,0,6,109,73,68,65,84,120,218,237,92,123,136,84,85,24,183,44,123,63,169,168,232,101,81,68,4,21,81,66,255,100,6,217,238,206,185,119,52,55,165,39,244,36,130,176,210, 160,168,88,144,94,68,86,235,158,115,238,180,115,207,89,23,45,148,94,246,128,77,49,72,169,68,147,202,48,43,202,178,76,55,50,67,114,181,172,109,250,125,231,158,187,141,53,59,51,123,157,189,119,179,243,131,195,157,157,189,51,247,119,191,243,184,223,239, 251,190,51,163,70,57,56,56,56,84,135,175,197,53,158,230,87,102,207,164,84,218,199,83,226,70,180,223,208,250,88,40,175,202,148,143,37,211,135,182,214,11,197,231,56,238,240,180,188,41,43,50,215,69,150,145,171,189,112,206,137,147,59,219,79,242,84,240,33, @@ -293,10 +310,10 @@ static const unsigned char temp_binary_data_3[] = 56,228,32,36,63,163,27,161,64,195,48,16,250,187,213,71,200,88,168,100,171,214,75,13,35,68,131,149,72,237,222,58,198,213,94,163,130,230,242,207,80,156,146,126,25,204,121,0,14,14,14,35,21,127,1,145,198,91,134,223,250,76,248,0,0,0,0,73,69,78,68,174,66,96, 130,0,0 }; -const char* LFO_36_26_png = (const char*) temp_binary_data_3; +const char* LFO_36_26_png = (const char*) temp_binary_data_4; //================== Light_14x14.png ================== -static const unsigned char temp_binary_data_4[] = +static const unsigned char temp_binary_data_5[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,14,0,0,0,28,8,6,0,0,0,81,86,142,65,0,0,0,6,98,75,71,68,0,0,0,230,0,0,84,44,23,109,0,0,2,209,73,68,65,84,56,203,213,146,203,111,19,87,20,135,191,59,115,103,236,120,252,8,13,142,19,18,89,136,180,69,168, 60,20,30,18,109,36,216,176,101,211,69,55,149,186,52,255,64,255,0,254,4,182,201,178,93,119,67,54,221,33,36,42,40,175,144,200,60,20,129,148,132,36,216,14,6,143,51,227,204,227,142,47,11,59,144,144,68,8,169,155,206,242,232,124,115,206,253,157,15,254,55,159, 216,175,56,61,93,177,210,233,161,60,64,16,52,219,215,174,205,196,95,4,43,149,171,229,215,75,141,63,83,182,117,9,32,138,212,237,241,163,197,223,102,102,102,87,14,4,167,167,43,150,215,30,191,213,122,183,58,101,73,5,192,219,166,199,234,122,235,110,156,52, @@ -309,10 +326,10 @@ static const unsigned char temp_binary_data_4[] = 183,14,212,13,165,215,59,15,223,45,203,68,127,151,217,112,76,115,20,54,159,117,88,253,187,233,13,198,221,53,3,106,253,222,64,10,208,26,86,66,40,89,144,29,112,163,220,218,157,134,8,230,228,88,2,50,242,85,39,163,244,211,67,240,192,132,87,118,79,4,45,251, 22,184,30,84,77,208,69,240,187,74,215,106,110,124,52,128,84,6,54,198,160,58,12,11,10,170,233,190,61,98,63,229,52,148,146,94,122,66,131,103,65,221,62,72,185,175,149,252,3,249,209,60,170,202,77,183,53,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; -const char* Light_14x14_png = (const char*) temp_binary_data_4; +const char* Light_14x14_png = (const char*) temp_binary_data_5; //================== Meter_140x8.png ================== -static const unsigned char temp_binary_data_5[] = +static const unsigned char temp_binary_data_6[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,140,0,0,0,16,8,6,0,0,0,196,100,151,6,0,0,1,89,73,68,65,84,120,218,237,152,205,74,195,64,20,133,211,141,174,74,43,21,236,127,10,182,197,133,184,85,215,1,27,17,74,23,198,133,89,233,3,248,48,250,66,77, 147,186,117,209,62,138,136,187,235,157,144,208,97,96,200,116,145,54,166,103,241,49,39,135,36,220,59,28,152,203,88,39,213,42,157,214,235,0,100,114,214,104,144,117,222,233,208,197,96,0,64,38,87,227,241,38,48,126,179,25,3,13,173,211,8,12,52,2,3,141,192, 64,23,49,48,0,24,13,189,15,142,67,51,215,5,32,147,167,233,148,172,244,30,166,197,244,107,53,178,153,93,175,42,69,169,163,136,53,237,163,142,150,122,15,115,107,219,244,216,235,209,139,1,175,255,124,205,131,178,239,137,200,134,200,72,124,36,93,182,219, @@ -320,10 +337,10 @@ static const unsigned char temp_binary_data_5[] = 104,224,31,194,158,4,154,126,231,172,69,54,190,25,103,56,220,4,134,238,172,24,241,114,170,23,146,142,36,29,228,224,47,115,254,127,164,233,43,52,240,15,97,79,2,77,191,115,73,199,129,193,145,132,35,105,171,35,9,67,47,134,222,173,134,222,244,30,198,99,158, 39,19,242,153,93,175,42,69,169,163,136,53,237,163,14,79,186,135,249,3,16,33,129,174,117,203,43,132,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; -const char* Meter_140x8_png = (const char*) temp_binary_data_5; +const char* Meter_140x8_png = (const char*) temp_binary_data_6; //================== Scaling_36_26.png ================== -static const unsigned char temp_binary_data_6[] = +static const unsigned char temp_binary_data_7[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,36,0,0,0,156,8,6,0,0,0,23,153,9,128,0,0,5,201,73,68,65,84,120,218,237,92,91,143,84,69,16,94,197,75,68,209,168,120,125,48,241,138,215,68,125,23,89,140,36,235,206,57,103,119,117,222,20,81,162,70,12,18, 244,145,32,171,139,24,111,171,238,78,119,159,227,204,233,158,93,118,21,135,7,227,79,0,89,80,76,140,15,42,183,40,222,163,49,17,137,10,202,101,198,175,186,207,4,246,129,4,77,118,186,140,93,73,103,118,178,15,243,77,87,157,174,175,190,170,158,174,174,96, 193,254,75,214,106,157,18,233,202,237,44,176,244,143,171,139,99,157,174,143,181,60,28,231,114,158,87,48,125,70,45,0,144,189,37,45,247,39,90,61,230,13,200,163,89,118,122,108,212,26,128,57,130,245,65,100,178,235,189,129,33,183,0,196,54,172,163,177,22,175, @@ -347,10 +364,10 @@ static const unsigned char temp_binary_data_6[] = 27,71,242,197,170,226,98,219,86,10,222,80,6,181,31,101,123,175,204,168,35,136,21,255,133,34,220,179,210,186,201,164,203,185,136,13,244,91,102,57,15,57,198,168,77,36,90,177,144,99,220,47,50,169,38,170,135,126,22,73,17,1,60,66,169,128,133,164,215,22,61, 233,174,51,139,221,41,100,225,191,104,166,158,5,32,118,194,57,187,214,66,176,96,39,105,127,3,136,107,241,8,229,27,0,90,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; -const char* Scaling_36_26_png = (const char*) temp_binary_data_6; +const char* Scaling_36_26_png = (const char*) temp_binary_data_7; //================== Slider_26x26.png ================== -static const unsigned char temp_binary_data_7[] = +static const unsigned char temp_binary_data_8[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,26,0,0,0,26,8,6,0,0,0,169,74,76,206,0,0,0,6,98,75,71,68,0,0,0,230,0,0,84,44,23,109,0,0,2,157,73,68,65,84,72,199,229,150,65,111,212,86,16,199,127,243,252,236,221,77,130,68,4,148,74,105,65,81,133,84,42, 33,56,113,172,184,114,234,169,23,14,124,22,62,74,63,70,41,170,90,137,83,175,72,109,69,4,17,80,137,68,172,150,144,44,235,181,159,61,51,61,120,9,40,106,118,183,155,67,15,29,201,146,237,247,252,255,121,222,127,222,216,240,191,138,59,119,190,94,122,238,189, 123,223,205,29,151,69,2,247,239,127,127,187,109,249,220,172,69,21,218,182,197,221,81,109,81,53,154,166,17,240,253,71,143,126,253,109,158,78,92,4,186,116,105,243,65,93,213,119,15,14,142,8,226,228,49,162,170,52,45,4,113,54,207,159,35,198,248,35,112,119, @@ -363,10 +380,10 @@ static const unsigned char temp_binary_data_7[] = 209,232,232,65,149,210,15,101,85,93,41,203,233,13,119,187,172,234,225,131,247,239,39,226,102,94,1,9,208,211,26,223,220,156,47,92,232,51,26,85,31,46,123,192,117,224,234,63,124,115,4,104,128,103,192,14,208,254,235,159,147,19,145,3,197,156,231,210,12,232, 252,87,241,55,44,143,105,246,6,50,28,31,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; -const char* Slider_26x26_png = (const char*) temp_binary_data_7; +const char* Slider_26x26_png = (const char*) temp_binary_data_8; //================== NotoSans-Regular.ttf ================== -static const unsigned char temp_binary_data_8[] = +static const unsigned char temp_binary_data_9[] = { 0,1,0,0,0,17,1,0,0,4,0,16,71,68,69,70,114,119,111,105,0,4,1,248,0,0,1,246,71,80,79,83,237,98,240,38,0,4,3,240,0,0,162,22,71,83,85,66,124,176,53,44,0,4,166,8,0,0,8,92,79,83,47,50,247,201,153,79,0,0,1,152,0,0,0,96,99,109,97,112,88,98,29,225,0,0,39,160, 0,0,14,210,99,118,116,32,25,175,26,197,0,0,64,68,0,0,0,254,102,112,103,109,54,11,22,12,0,0,54,116,0,0,7,180,103,97,115,112,0,22,0,35,0,4,1,232,0,0,0,16,103,108,121,102,170,127,220,169,0,0,102,240,0,3,150,146,104,101,97,100,245,231,74,201,0,0,1,28,0,0, 0,54,104,104,101,97,14,175,12,74,0,0,1,84,0,0,0,36,104,109,116,120,220,134,79,22,0,0,1,248,0,0,37,168,108,111,99,97,16,223,58,96,0,0,65,68,0,0,37,172,109,97,120,112,11,236,5,22,0,0,1,120,0,0,0,32,110,97,109,101,103,90,145,24,0,3,253,132,0,0,4,66,112, @@ -3972,10 +3989,10 @@ static const unsigned char temp_binary_data_8[] = 9,43,0,4,4,229,4,243,2,96,9,44,0,4,4,229,4,243,2,97,9,45,0,4,4,229,4,244,2,96,9,46,0,4,4,229,4,244,2,97,9,47,0,4,4,231,4,243,2,96,9,48,0,4,4,231,4,243,2,97,9,49,0,4,4,231,4,244,2,96,9,50,0,4,4,231,4,244,2,97,9,55,0,4,4,233,4,229,2,96,9,56,0,4,4,233,4, 229,2,97,9,57,0,4,4,233,4,231,2,96,9,58,0,4,4,233,4,231,2,97,0,2,0,3,1,126,1,126,0,0,1,134,1,134,0,1,1,146,1,146,0,2,0,2,0,12,0,3,0,243,2,55,6,3,0,2,0,2,0,76,0,77,0,0,4,87,4,87,0,2,0,0 }; -const char* NotoSansRegular_ttf = (const char*) temp_binary_data_8; +const char* NotoSansRegular_ttf = (const char*) temp_binary_data_9; //================== NotoSans-Bold.ttf ================== -static const unsigned char temp_binary_data_9[] = +static const unsigned char temp_binary_data_10[] = { 0,1,0,0,0,17,1,0,0,4,0,16,71,68,69,70,114,119,111,105,0,4,18,180,0,0,1,246,71,80,79,83,163,246,48,16,0,4,20,172,0,0,163,204,71,83,85,66,124,176,53,44,0,4,184,120,0,0,8,92,79,83,47,50,248,245,156,138,0,0,1,152,0,0,0,96,99,109,97,112,88,98,29,225,0,0,39, 160,0,0,14,210,99,118,116,32,39,8,39,208,0,0,64,212,0,0,1,18,102,112,103,109,54,11,22,12,0,0,54,116,0,0,7,180,103,97,115,112,0,17,0,35,0,4,18,164,0,0,0,16,103,108,121,102,161,3,188,9,0,0,103,148,0,3,166,130,104,101,97,100,246,93,74,203,0,0,1,28,0,0,0, 54,104,104,101,97,15,36,13,50,0,0,1,84,0,0,0,36,104,109,116,120,60,227,229,135,0,0,1,248,0,0,37,168,108,111,99,97,17,55,17,102,0,0,65,232,0,0,37,172,109,97,120,112,12,8,5,21,0,0,1,120,0,0,0,32,110,97,109,101,106,81,151,19,0,4,14,24,0,0,4,108,112,111, @@ -7625,10 +7642,10 @@ static const unsigned char temp_binary_data_9[] = 0,4,4,231,4,244,2,96,9,50,0,4,4,231,4,244,2,97,9,55,0,4,4,233,4,229,2,96,9,56,0,4,4,233,4,229,2,97,9,57,0,4,4,233,4,231,2,96,9,58,0,4,4,233,4,231,2,97,0,2,0,3,1,126,1,126,0,0,1,134,1,134,0,1,1,146,1,146,0,2,0,2,0,12,0,3,0,243,2,55,6,3,0,2,0,2,0,76,0, 77,0,0,4,87,4,87,0,2,0,0 }; -const char* NotoSansBold_ttf = (const char*) temp_binary_data_9; +const char* NotoSansBold_ttf = (const char*) temp_binary_data_10; //================== builtin_pgm.zip ================== -static const unsigned char temp_binary_data_10[] = +static const unsigned char temp_binary_data_11[] = { 80,75,3,4,20,0,0,0,8,0,235,124,51,68,91,179,46,131,152,9,0,0,8,16,0,0,12,0,28,0,68,101,120,101,100,95,48,49,46,115,121,120,85,84,9,0,3,249,55,220,82,77,94,228,82,117,120,11,0,1,4,245,1,0,0,4,20,0,0,0,93,151,219,87,26,217,18,135,139,238,6,26,108,185,5, 161,81,130,45,87,229,38,23,81,80,146,128,8,104,64,32,92,4,21,21,168,100,77,178,214,76,226,36,153,153,117,230,101,254,229,243,118,94,79,237,110,64,152,78,92,43,249,252,85,213,174,221,181,107,87,255,183,2,38,5,140,165,4,38,16,212,39,15,244,15,115,41,141, 201,23,32,192,230,58,0,176,18,136,175,42,60,4,50,171,138,218,126,26,113,188,4,28,32,61,25,122,118,173,1,66,105,185,55,253,143,82,254,101,250,229,107,242,178,105,86,112,208,129,52,147,138,125,39,52,175,204,94,28,223,65,134,128,44,220,9,144,126,111,86, @@ -8875,10 +8892,10 @@ static const unsigned char temp_binary_data_10[] = 227,193,80,81,117,120,11,0,1,4,245,1,0,0,4,20,0,0,0,80,75,1,2,30,3,20,0,0,0,8,0,198,139,121,66,196,112,97,144,143,10,0,0,8,16,0,0,16,0,24,0,0,0,0,0,0,0,0,0,192,129,57,69,1,0,83,121,110,112,114,101,122,70,77,95,51,50,46,115,121,120,85,84,5,0,3,227,193, 80,81,117,120,11,0,1,4,245,1,0,0,4,20,0,0,0,80,75,5,6,0,0,0,0,33,0,33,0,18,11,0,0,18,80,1,0,0,0,0,0 }; -const char* builtin_pgm_zip = (const char*) temp_binary_data_10; +const char* builtin_pgm_zip = (const char*) temp_binary_data_11; //================== about.png ================== -static const unsigned char temp_binary_data_11[] = +static const unsigned char temp_binary_data_12[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,44,0,0,1,64,8,6,0,0,0,6,75,65,84,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,46,35,0,0,46,35,1,120,165,63,118,0,0,0,7,116,73,77,69,7,223,12,27,4,11,5,249,195,188, 93,0,0,32,0,73,68,65,84,120,218,236,157,119,152,85,197,249,199,63,231,220,190,189,247,94,89,122,7,233,29,65,4,236,177,70,77,136,137,141,88,126,150,244,196,36,166,154,152,98,162,49,106,162,6,43,54,80,16,84,122,239,109,129,93,118,217,93,216,222,203,237, 247,158,223,31,203,94,89,216,122,238,221,101,209,249,60,15,143,114,57,103,206,204,59,51,223,51,243,158,153,119,164,27,150,204,83,16,8,4,130,203,0,89,152,64,32,16,8,193,18,8,4,2,33,88,2,129,64,8,150,64,32,16,8,193,18,8,4,2,33,88,2,129,64,8,150,64,32,16, @@ -9234,671 +9251,419 @@ static const unsigned char temp_binary_data_11[] = 69,16,4,65,130,69,16,4,65,130,69,16,4,9,22,65,16,4,9,22,65,16,4,9,22,65,16,36,88,4,65,16,36,88,4,65,16,36,88,4,65,144,96,17,4,65,144,96,17,4,65,144,96,17,4,65,130,69,16,4,65,130,69,16,4,65,130,69,16,4,9,22,65,16,4,9,22,65,16,4,9,22,65,16,36,88,4,65,16, 36,88,4,65,16,36,88,4,65,144,96,17,4,65,144,96,17,4,65,130,69,16,4,81,69,248,63,125,98,180,101,153,101,182,227,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; -const char* about_png = (const char*) temp_binary_data_11; +const char* about_png = (const char*) temp_binary_data_12; //================== GlobalEditor_864x144.png ================== -static const unsigned char temp_binary_data_12[] = -{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,3,96,0,0,0,144,8,6,0,0,0,110,232,8,32,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,0,7,116,73,77,69,7,223,12,26,19,57,32,254, -98,238,251,0,0,0,29,105,84,88,116,67,111,109,109,101,110,116,0,0,0,0,0,67,114,101,97,116,101,100,32,119,105,116,104,32,71,73,77,80,100,46,101,7,0,0,32,0,73,68,65,84,120,218,236,157,121,124,19,85,215,199,127,73,147,73,193,164,64,83,160,105,145,166,72, -23,164,45,210,22,100,81,1,217,119,215,215,229,113,71,81,20,87,220,64,81,196,5,55,220,247,29,220,21,149,125,115,97,81,64,160,69,161,69,104,43,52,5,219,0,77,202,146,64,233,52,205,188,127,164,9,89,38,201,76,50,147,76,210,123,158,15,159,199,102,238,204,220, -153,57,247,222,243,189,231,220,115,101,112,136,12,128,28,128,2,0,5,32,177,245,95,59,0,42,0,74,0,9,173,101,100,32,66,132,8,145,216,18,6,128,29,64,11,128,102,0,77,0,78,187,253,163,91,127,183,183,150,39,253,33,17,34,164,61,18,33,66,244,153,136,40,250,32, -115,131,47,101,171,18,168,1,116,104,253,151,4,224,172,214,223,157,74,65,20,130,8,17,34,177,216,33,182,0,176,181,118,128,39,1,88,0,28,111,253,103,5,208,216,218,49,130,244,135,68,136,144,246,72,132,8,209,103,34,98,233,131,162,245,3,43,90,63,122,71,0,41, -0,186,102,245,232,62,160,231,57,250,65,186,212,174,61,50,186,159,173,183,217,108,0,0,153,140,159,62,240,45,31,238,121,98,93,39,22,239,207,48,76,116,53,80,160,251,135,114,29,190,231,240,41,207,165,172,16,101,194,61,78,196,87,154,155,155,81,91,103,172, -105,104,56,122,224,96,173,177,116,79,101,245,58,0,135,0,152,188,138,170,252,245,135,250,140,238,174,254,48,156,118,31,74,223,32,86,127,34,214,117,197,210,81,49,251,132,112,218,93,40,199,248,252,30,111,109,62,220,246,152,166,75,245,176,79,184,234,179, -88,237,51,146,99,127,56,186,32,68,91,224,123,76,200,223,164,218,14,194,209,231,172,158,153,156,236,237,64,122,21,169,49,69,104,251,74,40,61,112,255,155,207,177,104,233,131,204,141,196,59,2,232,170,81,183,207,29,114,193,249,55,246,43,234,59,226,224,193, -131,0,128,67,135,14,137,254,65,133,232,172,34,1,59,209,6,186,104,116,230,177,2,145,124,6,132,80,7,22,41,130,24,17,126,146,154,154,10,0,72,73,73,193,158,138,202,237,27,254,216,254,246,201,83,141,123,91,59,70,43,28,161,3,106,182,254,80,38,147,193,104,52, -70,212,176,139,149,190,81,168,246,29,13,24,12,54,216,243,133,33,161,64,172,45,180,253,80,219,227,127,255,253,7,0,62,237,49,92,3,85,74,19,35,161,232,184,119,93,220,255,22,98,60,101,107,23,124,116,55,84,192,138,149,182,16,138,62,247,47,46,116,217,219,70, -163,209,175,62,241,253,61,82,186,234,254,109,248,94,159,75,223,203,21,172,2,245,219,209,210,159,64,250,32,107,133,47,13,128,174,0,244,151,79,26,51,179,115,74,167,65,78,99,67,170,208,21,107,51,193,82,148,88,50,202,196,6,157,64,157,128,80,128,68,60,94, -210,19,173,86,139,38,218,86,241,195,210,53,143,2,48,0,104,128,35,124,160,19,128,238,206,254,208,105,236,69,202,176,147,98,223,24,139,125,79,184,109,147,43,152,9,225,221,106,203,16,198,167,61,118,233,156,60,200,105,172,70,11,188,164,208,198,196,172,131, -16,240,228,109,56,183,37,8,11,71,159,133,246,122,137,173,171,225,92,159,175,30,248,211,45,169,67,152,31,125,168,78,104,5,176,36,0,93,178,207,201,24,213,183,79,239,171,15,28,56,192,185,195,114,254,227,243,177,100,50,25,228,114,185,199,249,193,174,197, -165,12,95,165,225,122,239,88,4,43,247,127,129,222,117,52,254,133,250,109,248,232,7,91,217,64,101,248,28,99,211,125,46,207,22,172,76,184,199,137,240,151,198,198,70,180,107,151,152,34,147,161,233,136,233,104,37,28,49,250,20,0,109,246,57,25,35,156,253,97, -184,223,76,172,254,84,140,190,81,140,126,40,18,125,80,56,253,188,191,227,225,244,7,129,140,19,62,191,183,165,118,207,165,61,214,212,212,8,102,160,70,162,125,10,217,150,196,104,71,124,250,148,80,218,3,215,118,17,200,115,23,75,147,75,225,232,51,159,103, -142,150,189,16,174,46,6,107,83,129,108,43,62,125,44,219,251,139,182,254,56,245,65,46,151,53,29,169,111,216,171,192,153,245,95,73,231,230,102,15,100,155,89,10,183,17,4,122,1,108,238,113,161,95,146,212,26,173,144,245,137,198,172,93,184,179,8,129,234,193, -229,218,108,231,251,59,143,75,217,64,101,248,204,156,122,135,127,248,155,29,151,201,100,156,66,62,25,134,193,17,211,81,127,47,138,208,19,79,233,156,210,137,245,247,250,250,122,156,147,169,239,87,190,103,223,98,56,66,68,24,0,29,2,245,135,66,205,58,74, -53,220,73,140,122,137,189,214,32,156,126,33,80,159,16,40,188,134,45,228,203,187,157,187,183,103,182,190,197,223,189,131,245,27,245,254,250,134,54,212,30,157,239,170,185,217,134,211,77,52,108,54,27,232,230,102,199,177,96,249,11,56,245,237,2,180,165,80, -243,40,8,8,32,188,198,236,96,145,24,96,184,157,230,237,149,0,227,115,200,81,175,96,33,101,210,30,255,148,74,5,20,138,4,80,74,37,40,74,25,178,62,187,127,91,151,62,183,180,160,153,110,230,165,152,161,234,44,223,246,18,76,23,57,233,28,155,7,12,76,224,98, -238,30,45,48,126,245,201,211,243,21,57,221,225,170,15,101,255,252,251,131,19,192,84,0,206,82,159,213,46,235,216,177,163,130,67,23,27,173,114,33,125,174,33,96,209,132,173,104,25,67,209,132,74,62,247,230,11,107,254,174,29,236,58,66,26,95,193,202,248,59, -22,108,86,155,79,72,197,17,83,3,183,206,144,128,24,103,113,26,172,222,134,31,69,81,144,203,152,30,112,100,160,106,215,218,131,179,246,135,209,2,175,104,77,218,132,58,177,22,169,186,242,237,23,184,244,9,92,97,204,95,219,246,55,33,195,118,220,89,198,95, -31,196,118,191,35,245,13,164,61,182,190,11,187,157,193,201,83,141,56,213,216,24,178,33,25,81,35,150,227,77,35,49,9,237,183,237,184,151,101,211,203,214,103,244,54,148,125,134,36,175,31,220,207,59,115,11,103,34,238,51,198,179,183,222,203,100,210,30,230, -154,155,109,104,110,182,161,177,177,9,170,68,10,234,246,237,33,151,203,120,233,179,243,251,184,235,51,171,46,9,4,94,156,245,148,163,151,41,228,190,151,197,142,97,211,47,15,29,112,59,199,245,28,50,198,67,159,28,253,170,187,109,230,117,190,136,10,197,67, -31,218,43,224,150,130,254,244,233,198,212,112,6,107,46,174,82,54,119,99,160,142,33,208,0,21,8,244,132,154,37,138,36,232,132,243,44,254,222,35,215,107,136,21,27,27,174,183,43,164,1,36,12,227,139,139,30,4,243,160,113,241,158,121,207,142,187,27,100,238, -240,21,148,179,8,136,133,100,248,121,27,125,245,245,245,206,189,88,168,214,1,178,157,119,127,24,233,204,106,82,202,194,22,14,108,9,213,7,132,211,198,185,180,227,112,96,44,88,36,7,91,91,119,142,133,222,94,50,239,235,186,255,125,196,116,84,250,22,105,4, -218,163,243,125,89,79,158,66,227,233,211,220,12,75,17,192,75,22,110,150,112,14,6,46,223,58,113,85,13,78,201,57,2,192,152,144,32,198,48,206,250,248,26,207,172,54,179,68,219,64,211,105,26,118,59,131,142,73,106,206,250,236,254,29,156,250,204,7,190,184,234, -7,47,93,13,26,222,200,95,231,2,234,27,7,16,99,213,43,55,157,242,6,123,167,78,49,140,61,226,16,198,81,31,84,78,0,75,104,133,48,193,13,133,64,241,193,161,0,146,144,192,229,15,18,35,1,39,50,30,51,11,66,100,190,17,195,88,19,35,20,49,84,40,227,27,186,200, -53,235,35,95,239,24,31,35,205,255,122,15,185,179,148,91,89,14,32,70,32,44,92,73,104,253,7,247,254,48,146,224,37,165,228,27,161,174,99,18,186,206,225,76,212,132,211,206,221,203,4,234,7,248,122,197,188,255,102,27,211,220,163,63,88,39,32,219,70,123,15,216, -30,105,186,89,48,248,18,197,123,192,211,184,21,170,249,178,93,39,152,170,240,130,177,8,129,216,153,208,68,198,13,202,164,223,6,154,233,102,156,62,221,132,196,68,85,80,125,118,127,239,78,125,22,18,190,120,235,170,143,131,68,28,157,243,219,175,178,124, -83,39,92,177,22,241,242,134,121,194,154,179,82,114,151,14,73,76,31,20,206,125,192,228,173,255,4,53,20,194,73,196,224,61,24,5,91,55,35,134,1,18,202,160,30,9,67,38,148,111,36,38,68,10,9,102,161,214,57,90,48,198,213,72,11,6,99,206,223,14,215,55,184,233, -186,187,222,184,187,210,25,246,206,141,120,195,56,11,219,172,123,235,224,40,119,235,181,35,150,89,77,42,107,193,252,45,148,142,166,132,211,255,6,106,155,124,202,69,2,196,216,158,213,125,252,59,116,196,28,183,16,22,74,123,108,162,233,136,129,151,76,136, -253,112,67,52,110,133,134,50,174,48,22,16,196,120,134,38,250,128,19,103,16,115,255,111,166,213,144,150,126,27,104,106,110,246,7,96,30,250,236,113,14,77,243,130,175,173,165,101,100,32,143,162,20,230,231,132,171,15,114,133,171,237,0,50,161,13,10,239,76, -41,92,96,132,109,240,9,100,224,139,157,130,147,207,128,27,200,136,17,162,46,161,26,70,92,1,86,76,48,11,229,222,161,26,94,98,195,88,40,161,75,92,12,181,192,215,242,28,184,207,12,84,140,239,160,74,188,97,97,169,239,153,79,32,126,234,223,104,174,5,243,215, -95,133,122,15,49,67,13,195,237,23,132,110,227,145,2,49,119,15,153,115,29,129,199,4,76,252,183,117,191,237,145,110,182,133,12,95,161,130,87,115,115,51,106,254,59,132,122,115,100,18,160,164,36,119,68,247,244,84,180,111,223,206,127,219,2,223,9,97,110,48, -22,176,45,4,152,236,243,246,88,248,85,83,175,31,189,61,24,206,67,238,19,146,206,177,79,234,109,160,185,217,198,91,159,89,207,9,226,41,109,167,82,65,46,151,147,81,59,130,34,151,203,145,148,148,36,136,62,40,196,24,248,253,165,168,228,3,94,222,131,143,59, -68,4,3,17,33,54,130,227,50,216,203,229,242,128,51,151,66,27,86,98,24,70,98,27,75,161,66,145,80,215,8,21,198,162,225,21,243,55,174,249,94,203,119,22,213,61,102,222,49,86,17,8,139,212,228,130,216,224,37,246,90,46,49,251,30,174,231,11,225,53,231,219,39, -136,9,98,124,146,106,112,5,177,51,30,113,175,246,142,182,217,214,91,108,45,33,209,21,23,85,246,7,118,251,106,106,113,244,216,9,36,82,20,18,18,18,68,125,62,134,97,96,106,56,134,198,211,77,232,155,159,203,185,174,124,128,140,75,208,68,192,201,219,0,222, -176,160,33,137,28,32,204,89,222,221,27,230,221,6,164,168,250,140,157,127,148,148,205,91,159,131,192,87,130,76,6,149,74,5,133,66,1,34,145,181,1,84,42,149,32,250,160,224,114,51,190,3,97,176,61,32,248,92,143,75,34,137,104,44,86,15,5,184,162,189,190,131, -171,23,76,236,181,112,225,134,116,134,98,116,241,61,39,18,161,75,129,142,7,2,49,118,24,99,220,218,89,235,113,247,65,139,192,152,36,224,43,218,73,56,100,156,22,253,203,36,241,110,67,13,245,230,3,98,92,218,119,48,80,11,215,27,198,118,29,54,16,243,13,77, -62,99,114,67,38,107,83,237,220,175,142,134,233,245,10,22,106,120,244,216,9,168,219,183,119,100,50,19,217,243,96,183,219,145,152,152,8,138,162,248,189,27,183,103,224,10,99,193,230,235,66,241,134,241,10,73,244,3,97,222,135,61,219,0,227,10,77,140,229,73, -8,86,93,22,113,141,32,17,233,136,66,104,240,98,3,48,247,99,90,109,10,250,13,24,236,51,123,212,98,179,225,207,45,127,224,216,209,6,191,16,38,6,140,249,243,96,249,27,32,185,110,184,27,41,163,143,245,28,185,28,231,15,24,12,109,74,103,159,99,7,15,24,176, -243,175,210,168,129,147,80,48,21,175,32,198,113,108,11,232,21,115,135,49,31,3,13,4,198,226,25,188,66,129,46,169,110,110,26,106,191,32,116,251,230,210,118,249,30,243,231,13,227,2,102,158,109,222,189,173,183,13,16,19,3,190,184,174,241,146,3,80,40,20,17, -9,251,114,222,163,93,187,118,161,191,43,63,16,196,103,172,225,60,33,193,211,27,22,12,194,220,235,237,31,194,220,189,97,113,50,217,72,224,171,237,2,88,168,134,66,160,12,135,238,127,235,210,186,225,154,255,221,4,85,98,162,71,153,198,83,167,96,168,222,143, -227,173,251,34,176,13,58,124,214,208,132,219,153,115,93,195,37,166,241,18,170,225,71,41,41,12,31,57,22,249,125,250,250,28,251,237,151,213,40,219,249,23,236,118,187,224,245,19,50,43,162,216,179,223,98,130,88,88,198,28,203,96,197,15,196,220,97,204,123, -114,225,76,252,6,129,177,200,192,151,216,224,197,197,147,37,181,164,26,145,234,23,248,182,239,112,218,182,88,33,137,220,32,12,109,6,196,162,9,95,8,49,123,115,184,207,43,72,244,11,79,16,147,2,132,121,159,199,14,97,222,19,17,173,186,111,103,98,83,159,9, -124,181,93,0,11,117,253,66,160,208,67,127,238,85,95,197,227,62,152,242,173,167,191,115,2,13,138,124,246,213,138,198,70,209,65,83,255,203,253,188,123,70,188,22,45,100,214,197,72,204,126,243,49,190,248,26,106,193,234,16,208,152,11,48,88,10,1,98,30,105, -237,193,35,61,22,129,47,94,237,56,90,25,16,133,200,100,40,180,161,25,77,111,57,159,208,107,49,67,18,195,249,221,241,77,61,13,80,207,247,32,243,104,231,174,54,30,71,32,198,23,190,132,4,47,9,60,60,91,163,10,9,196,162,5,97,156,138,6,57,151,11,132,49,12, -3,153,92,250,122,31,14,124,9,146,149,147,136,180,0,44,84,240,226,5,95,34,26,69,124,207,17,227,119,62,128,40,150,8,101,108,68,3,160,132,170,167,24,11,243,249,150,21,194,27,22,41,16,243,128,49,2,98,97,245,65,209,200,128,24,142,183,43,18,253,149,88,222, -114,161,219,119,184,147,39,161,194,22,219,61,217,61,100,190,235,66,3,121,195,92,251,39,197,107,219,22,19,190,164,238,122,8,113,219,17,174,222,176,176,32,44,12,248,11,109,77,24,11,132,201,16,227,107,195,8,124,197,187,200,185,41,130,44,124,175,23,49,206, -36,89,87,177,191,153,16,215,14,231,26,98,206,252,243,217,11,47,44,131,30,252,195,107,216,175,41,131,103,6,69,223,125,105,156,179,230,36,238,65,60,248,10,101,47,196,64,147,63,254,54,186,231,115,78,52,251,158,72,246,183,66,193,113,168,199,133,168,175,239, -196,185,140,165,157,123,143,211,110,109,187,13,195,151,172,245,127,65,175,27,75,239,41,196,250,114,49,228,67,126,13,254,190,13,56,122,121,188,237,77,200,252,30,246,212,127,153,143,222,199,194,247,244,181,175,9,124,17,0,67,240,69,221,238,255,188,83,207, -19,137,61,227,82,76,207,101,180,64,44,20,163,71,104,47,6,23,131,45,160,135,35,68,8,243,15,98,224,14,98,164,45,7,255,62,28,65,59,18,224,21,233,182,29,237,190,33,94,32,140,223,122,100,254,16,22,75,6,105,168,223,38,24,124,133,14,117,50,215,62,108,241,4, -98,225,66,152,76,198,127,31,182,168,64,88,88,52,25,29,93,38,240,213,134,1,44,216,102,194,222,224,229,189,225,50,145,248,54,56,163,13,98,145,184,111,164,33,44,216,32,17,104,246,54,208,216,203,197,27,198,86,206,115,76,35,94,237,112,190,171,80,224,197,6, -83,129,250,234,88,234,147,165,234,233,22,227,58,81,135,176,24,110,211,162,192,87,128,14,212,185,254,46,134,94,144,36,1,66,144,123,129,235,186,220,216,130,176,96,159,143,192,87,27,2,48,174,51,185,36,236,176,237,128,152,208,223,55,26,16,38,166,161,22,41, -8,11,62,8,241,189,47,71,111,88,48,202,35,240,37,136,110,4,3,47,231,68,151,191,242,241,208,31,75,169,109,135,91,38,148,99,194,122,3,57,64,88,140,133,205,139,2,95,126,219,155,3,190,56,133,46,198,40,132,197,82,40,34,191,195,210,135,48,46,161,135,4,190,226, -87,20,124,13,0,111,207,151,251,239,20,69,65,73,169,144,144,144,0,134,177,131,110,162,209,68,55,129,17,32,229,121,91,51,38,220,197,125,161,171,66,161,132,74,165,130,82,169,4,100,50,216,108,205,104,58,221,4,155,173,57,34,207,34,100,226,142,112,175,23,78, -130,142,104,101,81,227,92,46,88,54,168,0,11,154,253,157,234,63,193,192,153,12,106,254,234,232,177,222,91,214,54,146,117,120,183,221,37,171,214,147,17,131,72,196,100,210,152,33,65,219,60,91,91,247,237,95,124,51,36,250,156,43,147,126,178,130,72,195,151, -243,80,204,26,192,124,178,17,114,77,144,33,178,109,192,165,202,220,147,114,248,214,207,85,86,2,250,206,105,114,7,252,183,93,32,18,163,0,198,69,89,188,103,88,147,181,41,232,213,59,31,89,217,185,232,118,118,119,36,37,117,128,66,161,68,75,139,13,39,173, -86,212,214,30,68,85,197,94,236,46,223,9,83,253,17,2,89,33,136,82,73,161,103,86,54,114,207,205,131,62,243,28,164,116,238,2,149,42,17,12,195,160,153,110,130,201,108,130,97,223,191,216,93,190,19,251,254,173,140,200,179,10,153,86,58,26,16,22,109,72,141,22, -132,249,191,55,59,132,121,127,107,31,163,173,13,128,152,187,180,83,169,34,178,9,43,145,182,43,114,185,28,73,73,73,156,219,124,91,130,176,72,192,151,115,173,151,207,249,177,104,244,10,248,77,67,190,20,143,189,193,132,184,49,91,102,68,169,66,88,72,234, -69,224,171,237,1,152,115,96,112,194,151,74,149,136,97,195,71,97,240,69,195,208,163,71,79,40,41,138,21,68,206,205,43,192,176,225,163,81,189,175,10,235,127,251,25,71,142,28,226,165,244,137,137,237,144,160,72,224,5,59,206,198,119,242,228,201,96,5,131,77, -63,32,216,6,101,50,0,103,157,165,70,40,147,100,45,182,22,156,62,221,24,176,76,238,185,121,24,50,108,4,138,138,207,135,38,169,3,235,243,159,147,149,131,254,231,15,194,241,227,199,176,117,243,31,248,99,227,111,130,108,180,28,41,240,137,6,132,137,229,5, -139,125,8,3,184,120,195,248,236,221,18,47,146,32,147,65,165,82,65,161,80,128,8,17,49,251,86,149,74,197,179,207,225,215,4,227,9,194,120,195,87,40,94,175,54,96,244,74,197,11,22,74,93,249,235,191,180,32,140,117,141,39,9,61,36,0,118,166,99,58,163,12,90,109, -10,46,189,242,26,12,31,49,6,10,165,50,248,77,20,10,100,229,244,66,70,230,57,216,251,79,57,231,206,172,87,239,124,140,26,51,1,186,180,116,222,15,102,181,88,176,110,211,6,108,248,167,204,239,38,134,242,134,6,200,27,27,3,54,115,187,90,3,123,7,63,179,145, -205,54,12,237,93,128,33,23,13,131,90,163,225,93,71,99,93,45,214,174,94,238,120,39,44,50,228,226,145,152,48,233,114,116,59,187,59,167,181,40,29,59,118,194,168,177,19,160,207,236,129,78,201,218,136,116,26,4,194,162,63,24,133,106,152,249,175,35,207,144, -196,54,4,97,68,136,196,138,161,28,200,11,22,15,16,22,82,170,110,190,240,37,17,240,10,235,147,196,152,23,140,181,168,192,94,176,152,157,64,32,222,175,182,5,96,222,235,190,146,146,58,224,255,174,185,1,195,70,140,230,29,122,71,81,20,242,251,244,229,116, -94,94,193,121,248,191,107,110,64,78,238,185,33,63,92,151,238,25,56,181,99,43,54,215,84,179,28,101,144,96,48,64,81,94,14,57,195,248,204,68,48,0,236,42,21,108,185,185,104,73,77,101,61,127,76,70,79,92,117,94,17,180,218,148,144,234,151,217,163,39,58,37,107, -241,221,87,11,177,231,159,50,79,248,26,54,2,87,93,115,3,146,121,94,91,38,147,33,167,87,239,200,205,68,73,8,194,98,229,158,188,239,31,134,23,44,244,65,51,56,132,177,26,110,30,84,70,132,8,17,49,250,7,33,66,17,99,25,194,100,60,146,59,112,179,113,164,11, -95,136,224,39,9,215,11,22,205,137,136,192,239,135,109,60,147,134,23,140,179,29,77,224,43,238,68,206,87,49,198,78,184,36,36,248,226,163,108,221,206,238,142,201,151,253,95,88,240,5,0,93,59,37,99,92,175,124,116,235,212,9,178,4,185,215,191,4,180,116,239, -142,150,179,207,246,89,215,230,108,138,45,221,51,208,146,166,99,57,87,142,129,221,51,113,121,81,191,144,225,203,41,189,206,205,195,132,75,46,71,231,206,93,92,191,229,158,155,135,9,147,46,231,13,95,33,53,234,72,118,32,113,80,15,161,55,106,230,92,46,140, -204,136,66,190,51,46,233,176,227,113,160,32,89,94,137,180,13,224,139,227,118,236,119,171,6,233,195,87,216,213,138,208,243,8,183,189,131,136,144,46,241,45,25,88,199,114,50,254,196,165,40,248,40,239,121,133,197,24,49,106,172,95,197,182,183,180,224,208, -33,35,234,235,15,163,153,110,70,187,118,237,160,77,233,140,148,206,93,56,175,155,72,72,72,192,200,209,19,80,208,167,144,253,30,118,59,140,198,90,28,57,124,8,141,39,79,66,149,152,136,206,93,186,34,45,253,108,214,123,228,235,210,49,54,167,55,62,219,190, -5,54,239,25,16,165,18,45,122,61,90,142,159,64,194,137,227,30,199,90,186,118,69,139,158,61,244,175,75,187,179,48,174,87,30,186,118,76,102,173,35,77,211,168,171,61,136,250,35,135,209,220,220,140,179,206,82,67,151,150,142,206,93,186,178,94,175,176,168,63, -106,170,247,227,187,175,23,66,73,81,184,120,248,104,116,235,158,225,247,29,157,56,126,12,198,186,90,88,173,22,36,36,40,208,161,67,71,116,238,218,21,103,157,165,142,154,161,40,92,22,164,216,8,17,136,69,219,67,136,80,68,127,229,227,121,93,24,129,47,34, -209,214,191,112,214,130,241,241,130,197,114,123,228,27,122,232,132,175,88,91,239,21,237,174,53,106,247,15,251,198,210,11,69,12,117,108,145,252,166,224,68,66,7,48,207,25,2,135,103,72,169,84,98,224,224,33,126,215,22,213,31,57,140,181,171,151,99,235,150, -63,112,244,104,3,24,59,131,4,69,2,58,118,232,132,130,190,69,24,50,108,4,122,102,229,4,173,80,223,162,254,184,96,200,48,214,99,13,102,19,214,174,94,142,63,55,255,14,147,169,30,246,150,22,200,229,9,72,74,74,66,255,129,131,49,122,236,36,159,245,98,50,153, -12,195,207,201,65,165,177,14,27,14,236,135,204,43,131,25,211,177,35,108,250,12,200,202,203,33,183,219,29,161,135,137,137,176,101,232,129,246,103,249,86,162,165,5,67,186,103,162,32,237,108,214,58,86,236,253,7,191,253,178,26,127,239,40,129,213,106,1,99, -183,35,65,161,64,106,106,26,46,184,104,24,198,142,159,12,74,165,242,169,227,224,11,135,98,219,214,77,72,73,233,130,126,3,6,177,54,76,134,97,240,251,250,95,177,113,253,175,216,183,175,18,205,116,51,100,50,71,162,18,125,230,57,24,120,193,69,24,58,108,36, -228,9,9,68,179,69,132,190,88,76,200,65,32,140,192,23,145,56,235,183,68,10,23,147,114,40,98,180,224,203,229,37,35,123,158,10,14,80,225,232,113,184,201,56,60,206,145,66,106,122,14,222,47,162,127,113,12,96,254,62,174,62,243,28,20,22,245,99,61,118,252,216, -49,124,247,205,231,248,125,253,175,30,191,219,108,205,56,124,218,136,159,87,47,199,193,154,106,92,125,221,77,200,237,149,231,183,50,74,165,18,231,15,28,236,200,42,232,37,199,142,29,197,183,95,47,196,134,223,126,246,248,221,110,183,163,161,193,140,213, -43,150,194,106,177,226,198,41,183,67,163,241,76,154,209,94,165,194,192,46,169,216,250,79,25,154,146,60,147,101,200,228,114,180,156,221,29,178,19,39,160,172,174,6,3,160,37,35,3,246,174,93,88,187,244,84,218,134,193,105,221,88,223,83,85,197,30,124,243,197, -103,62,235,185,236,52,141,131,7,12,248,230,171,5,160,155,105,92,126,229,181,62,169,172,187,116,77,69,113,191,1,72,78,78,65,187,118,237,89,225,107,221,47,107,240,237,87,11,112,252,248,49,143,99,205,205,205,40,219,245,23,42,246,238,198,241,99,199,48,249, -178,255,139,74,170,108,41,120,193,136,7,77,156,97,1,161,26,122,36,57,7,17,34,82,176,115,3,182,233,128,153,78,99,185,13,7,9,59,228,3,95,0,144,152,152,24,113,3,152,109,44,15,233,147,112,60,41,150,214,129,9,110,15,196,192,218,71,214,137,3,34,177,15,96,129, -58,150,115,123,23,160,67,199,78,172,96,176,254,183,181,62,240,229,126,28,0,246,252,83,142,95,214,172,66,102,143,158,80,169,18,89,203,158,221,61,3,231,230,245,241,11,31,238,240,197,214,168,54,253,177,30,89,217,185,24,61,110,162,207,177,28,93,58,210,79, -159,198,62,21,5,153,183,7,74,145,0,91,134,30,242,227,199,193,168,18,97,211,235,125,60,101,0,32,107,104,64,159,46,105,232,158,238,235,253,58,221,216,136,181,171,151,251,192,151,199,115,216,237,248,109,237,42,228,229,159,135,94,231,230,249,52,172,193,23, -14,67,187,118,237,88,207,61,120,192,128,213,43,151,250,192,151,187,208,52,141,213,43,151,162,103,86,14,242,251,244,37,218,221,38,81,73,12,47,24,247,242,66,100,176,146,210,96,71,132,72,60,232,98,60,76,76,9,145,120,131,239,154,47,239,159,211,211,116,56, -213,120,26,45,45,45,17,121,102,165,82,137,206,157,83,0,216,72,35,16,104,132,12,186,31,94,148,244,153,155,247,139,192,87,220,2,152,223,66,10,37,178,114,114,89,103,98,26,204,38,108,253,115,83,64,248,114,202,223,59,182,195,80,189,223,111,114,141,172,156, -94,232,212,201,119,93,85,253,145,195,216,178,105,99,64,248,114,2,206,206,191,75,49,228,226,145,72,76,244,132,60,141,38,9,221,33,71,141,193,0,91,86,150,47,96,37,105,96,203,206,2,163,80,66,150,232,11,136,12,77,67,117,224,32,206,237,211,15,9,44,33,126,255, -236,46,195,182,173,155,131,190,203,163,71,27,176,187,236,111,228,246,234,237,211,0,83,117,105,126,67,15,75,182,255,137,3,172,217,28,61,229,248,177,163,248,107,199,118,244,206,239,195,238,5,35,109,87,52,248,8,183,44,231,100,28,209,9,192,71,200,161,136, -49,12,97,68,136,196,242,132,11,159,54,29,119,94,48,150,208,173,112,224,11,0,146,146,218,65,155,146,130,164,164,14,172,118,128,224,194,48,104,104,56,210,70,199,228,40,141,35,18,213,117,50,33,216,70,1,76,173,209,32,189,27,251,154,39,131,97,63,14,30,48, -4,133,47,0,176,88,78,160,122,223,191,172,0,150,144,144,128,204,30,61,89,161,161,182,246,32,142,29,109,64,187,246,237,3,2,152,19,64,78,90,45,62,0,166,164,40,116,77,213,33,225,175,18,48,73,26,216,117,105,158,202,45,151,195,222,165,43,171,231,139,177,219, -145,80,83,131,78,39,78,32,51,243,28,214,103,253,239,96,13,228,114,185,171,142,129,196,108,50,193,102,107,134,82,73,113,106,96,141,141,167,240,79,249,46,206,31,245,223,202,189,56,117,242,100,72,123,147,17,105,219,70,153,112,97,164,132,183,136,16,145,154, -1,23,111,225,217,92,247,75,18,2,190,0,32,81,69,1,104,198,73,139,41,114,70,26,89,210,29,214,216,19,179,122,239,147,139,193,77,119,9,140,181,29,0,235,208,161,3,146,58,116,100,5,143,131,53,6,52,211,52,231,27,214,254,119,0,118,187,221,7,180,148,10,37,82, -58,119,102,61,39,43,59,23,15,206,124,146,243,61,216,188,104,206,141,138,229,167,79,35,193,96,128,93,211,1,80,159,229,3,97,108,34,175,63,2,69,181,1,29,186,118,69,71,63,215,238,63,112,48,114,207,205,227,84,191,118,137,237,160,80,40,57,63,207,177,99,71, -97,172,253,143,115,121,147,169,30,199,143,31,35,0,70,68,96,56,226,238,5,35,84,70,132,72,236,181,241,120,93,11,38,4,124,17,145,46,132,11,49,225,24,77,245,14,230,221,34,58,25,87,134,20,63,0,59,75,173,97,93,183,197,216,237,56,124,216,200,235,134,71,27,204, -176,217,108,160,40,79,239,143,60,33,193,47,0,169,213,26,100,231,244,10,251,125,37,38,182,131,76,46,71,194,145,122,216,13,213,176,245,234,5,89,144,48,2,230,212,41,40,13,6,36,52,158,66,135,164,142,160,84,20,107,185,212,212,52,164,166,166,137,242,157,79, -28,63,134,83,167,78,113,46,223,216,120,10,39,79,90,73,3,33,34,189,254,41,142,33,108,240,224,243,194,58,127,211,166,191,201,61,200,61,34,110,190,34,70,19,46,240,241,126,5,44,79,12,221,54,135,108,65,117,94,66,227,148,143,254,18,37,141,27,225,148,42,175, -125,251,246,172,251,14,180,216,91,96,57,113,130,215,13,79,158,58,9,187,159,5,172,98,199,184,202,228,103,186,96,133,161,6,9,255,5,246,42,49,118,59,20,213,6,40,14,29,118,128,96,82,18,40,74,21,241,143,116,210,106,69,115,115,51,231,242,54,155,13,167,27,27, -137,118,199,51,217,68,160,195,23,251,28,34,68,136,144,190,71,236,190,140,79,198,67,34,68,164,214,206,72,226,141,54,12,96,50,153,12,10,133,18,114,121,2,11,160,48,160,121,132,31,2,64,139,205,6,59,99,143,146,78,159,121,92,89,139,13,242,186,58,32,0,168,200, -78,28,71,194,129,26,215,223,148,82,25,149,102,208,212,212,4,187,157,123,214,37,198,206,160,165,133,100,77,226,35,36,117,61,231,86,20,190,189,70,140,31,34,68,36,13,45,82,111,174,92,38,124,132,90,247,197,38,231,245,45,114,253,119,106,170,14,169,169,58, -214,99,231,246,206,199,121,125,139,92,17,63,221,51,244,72,118,219,75,85,173,86,163,103,86,182,195,190,160,40,156,215,183,200,227,90,81,25,11,57,120,68,41,138,66,223,194,34,244,206,203,143,120,253,230,62,247,34,146,181,218,184,153,95,8,164,203,62,199, -200,216,217,182,0,76,104,133,141,182,161,235,126,127,166,115,103,48,42,255,30,45,70,163,129,61,45,45,234,31,41,20,239,66,52,94,179,80,223,150,192,80,36,116,138,188,3,177,219,32,17,34,17,209,77,158,105,216,219,90,199,38,134,247,96,230,227,115,92,160,52, -227,225,89,152,241,240,44,23,140,221,62,109,58,0,96,236,184,137,184,120,196,72,244,45,44,194,183,63,44,3,69,81,232,153,149,141,187,239,157,225,186,206,181,215,221,132,243,7,12,2,0,60,251,252,124,92,60,98,20,110,154,50,21,15,60,52,83,140,1,90,176,75,37, -107,181,152,247,226,171,184,227,206,123,240,213,183,63,98,222,11,175,64,173,86,71,228,19,231,229,23,64,37,96,36,146,223,54,33,129,182,66,188,95,241,109,72,41,184,40,102,115,115,51,171,81,44,147,203,124,50,249,5,37,62,121,2,175,65,128,97,24,28,168,169, -198,65,55,79,84,168,82,85,177,199,21,219,107,59,251,108,216,50,50,252,174,59,3,0,89,130,2,205,122,61,100,39,44,80,52,152,29,239,129,165,156,189,165,5,229,101,59,113,226,196,241,208,73,88,46,71,126,159,190,62,155,72,3,142,217,38,185,60,1,118,187,157,179, -78,248,221,136,57,206,217,38,82,240,70,32,145,189,191,224,252,94,72,66,14,34,68,36,131,112,188,6,134,24,104,187,225,108,182,204,69,126,223,184,14,125,11,139,241,251,198,117,0,28,158,44,138,162,112,254,128,65,216,182,117,11,0,96,213,202,101,174,242,103, -169,213,232,63,96,16,254,216,184,30,183,79,187,27,20,69,129,166,105,12,31,57,26,211,110,187,9,61,179,178,97,181,88,240,202,75,243,0,0,31,127,246,21,146,147,181,104,104,48,75,246,29,87,85,86,224,238,59,111,3,0,220,115,223,131,24,55,97,18,190,251,230,43, -143,50,106,181,6,106,141,6,42,138,66,178,54,5,53,134,253,176,90,44,232,157,87,128,6,179,9,53,53,6,143,242,125,11,139,1,0,53,53,213,104,48,159,121,246,12,189,30,90,109,10,12,134,192,91,241,232,116,105,208,165,165,163,174,182,22,70,99,157,203,126,234,157, -87,0,99,157,231,111,186,180,116,208,77,77,208,165,165,195,80,189,31,102,243,153,204,150,122,125,38,180,41,41,142,235,212,213,70,197,168,39,222,175,248,23,5,151,89,129,198,83,39,209,98,179,1,94,137,51,18,228,9,172,192,16,72,84,137,42,191,112,192,48,12, -43,156,237,252,123,7,190,253,242,179,176,31,214,206,48,96,236,118,216,59,118,68,139,62,19,50,101,240,76,132,178,14,29,96,203,212,67,110,181,192,98,57,1,155,173,217,103,255,15,155,205,134,159,215,172,192,142,146,173,33,215,141,162,84,184,231,129,71,208, -183,168,191,207,177,118,237,207,130,82,169,132,205,198,109,29,152,60,33,1,10,165,146,104,119,27,131,66,41,79,18,17,214,34,66,132,136,80,112,197,21,190,196,242,30,252,253,215,14,92,112,225,16,0,142,61,64,149,74,10,253,7,12,66,255,243,7,226,251,239,190, -6,0,92,60,98,20,46,188,112,40,146,181,90,116,207,208,99,95,85,21,104,154,198,239,27,215,97,248,136,209,48,26,235,112,160,198,128,134,6,51,134,143,24,141,115,243,242,241,250,91,239,3,0,172,86,11,146,181,254,1,44,154,253,41,219,189,27,26,204,232,158,161, -247,249,61,43,59,7,247,222,255,32,106,106,12,104,48,155,112,254,163,143,161,170,98,47,26,204,102,100,232,245,216,93,94,134,143,63,124,15,0,48,247,153,23,160,214,104,96,52,214,161,176,168,31,238,191,103,26,140,117,117,200,202,206,193,11,47,191,134,159, -215,174,198,157,211,239,245,91,175,171,175,189,30,189,243,242,81,99,48,224,210,203,174,196,220,57,143,131,166,105,188,56,255,13,24,235,106,65,169,40,88,44,22,188,250,242,11,208,106,83,240,242,43,111,194,96,216,143,202,138,10,60,251,252,203,120,236,209, -25,40,45,217,142,107,255,119,3,178,114,114,97,172,171,197,229,87,100,98,206,236,153,188,151,218,8,200,97,254,109,105,149,10,137,137,137,254,39,219,137,136,34,114,185,220,39,137,160,224,0,230,46,86,171,21,167,79,55,250,236,113,37,147,203,209,165,107,42, -175,27,118,236,152,204,154,130,221,110,183,163,165,197,198,186,55,86,138,54,5,0,194,222,125,158,1,128,4,5,108,122,61,152,228,78,190,199,237,118,86,143,152,61,61,29,54,139,5,39,142,31,199,233,198,211,62,25,33,21,74,37,186,116,77,13,171,126,167,79,55,226, -104,67,3,43,132,118,236,212,9,237,219,183,71,99,35,183,76,136,42,149,10,26,117,100,83,208,199,114,248,97,204,1,146,72,245,85,171,53,24,53,102,44,178,178,114,240,225,251,239,128,162,40,92,118,197,255,193,106,181,98,193,167,31,185,183,74,196,189,43,149, -135,193,71,132,8,17,137,204,244,132,112,60,148,230,189,237,207,53,239,184,18,0,0,32,0,73,68,65,84,205,184,253,14,71,168,225,87,95,44,64,114,178,22,99,198,77,64,207,236,28,252,253,87,41,212,106,53,238,190,119,6,174,186,124,34,104,154,198,75,175,188,233, -58,119,245,202,229,184,125,218,221,48,26,235,92,94,50,115,131,9,7,106,12,120,232,129,187,99,230,117,235,116,105,184,229,214,219,65,81,20,198,77,152,132,153,15,63,192,94,46,45,13,55,93,127,53,0,224,149,12,61,118,239,46,195,119,95,127,137,140,12,61,158, -122,246,5,124,252,225,123,72,214,106,161,75,75,195,109,183,92,15,0,152,114,219,52,92,127,227,45,120,113,222,51,24,63,97,18,94,123,229,69,108,92,191,14,106,181,6,191,172,223,196,122,159,190,133,197,216,93,190,11,11,63,251,216,53,68,230,229,23,192,108, -54,225,133,121,79,131,97,24,124,241,205,34,151,241,172,207,236,129,155,111,184,6,86,171,5,102,83,61,134,12,29,142,210,146,237,24,50,108,56,182,108,254,3,159,125,242,161,232,164,43,243,171,147,193,51,119,230,231,231,35,57,57,153,0,88,20,0,76,169,84,194, -176,127,111,100,0,236,196,137,99,56,118,236,40,58,37,107,125,148,164,187,62,19,74,138,242,217,11,204,95,56,82,90,122,55,86,133,105,110,166,97,54,153,144,150,222,205,231,152,190,71,79,116,233,146,10,163,49,116,87,176,179,38,205,250,12,180,116,235,198, -170,214,178,99,199,192,40,20,144,37,37,249,60,139,45,83,15,243,129,255,208,208,96,66,135,142,29,125,62,72,207,236,92,40,149,74,94,217,10,189,33,224,208,161,58,63,208,218,9,186,244,110,30,46,242,64,210,169,147,214,167,142,109,1,96,72,88,160,175,80,20, -133,129,131,46,192,134,245,191,5,45,59,97,210,37,200,200,208,227,231,181,171,97,54,155,240,250,91,239,97,195,250,223,80,190,107,151,56,149,35,174,49,34,68,194,239,247,34,48,25,18,43,77,53,18,222,47,0,160,105,26,13,13,102,100,100,232,113,160,198,128,3, -53,6,204,124,124,14,254,173,172,112,29,167,105,26,23,92,52,20,25,94,137,55,254,173,170,116,36,177,232,91,132,183,94,159,15,0,248,99,227,122,252,239,186,155,240,192,67,51,241,199,198,245,232,63,96,32,222,122,253,21,63,227,92,72,131,163,40,186,68,211,52, -182,254,185,25,239,189,243,166,223,49,120,71,105,137,171,14,102,179,25,85,21,142,119,212,68,211,208,180,238,85,90,88,212,15,229,101,187,220,206,217,142,41,183,77,115,29,251,246,235,47,1,56,60,131,117,126,66,2,95,152,55,23,119,77,191,31,223,46,90,138, -183,223,124,13,27,214,255,134,129,131,46,64,126,126,1,222,253,224,19,199,249,22,11,244,250,30,176,88,142,163,162,98,15,172,86,75,107,93,154,92,209,92,179,30,153,129,233,247,62,128,69,139,87,224,173,215,230,99,253,186,95,163,63,151,192,2,106,148,162,5, -214,19,245,81,180,183,194,47,228,79,223,216,78,99,216,127,12,122,77,159,34,94,63,184,151,119,63,228,121,63,70,20,59,83,17,144,190,91,255,255,164,213,138,255,14,30,64,102,143,158,62,101,51,51,207,65,247,140,76,236,171,170,96,189,142,123,101,219,181,111, -143,115,178,178,89,169,191,165,165,5,251,255,173,68,106,170,14,114,175,16,191,84,93,26,250,15,24,140,37,63,125,23,214,195,182,116,233,12,155,94,207,190,247,215,201,147,80,84,84,0,148,10,205,5,5,144,41,61,95,141,44,177,29,26,180,90,252,123,216,200,250, -30,242,242,251,160,224,188,66,148,110,15,61,12,241,224,1,3,104,186,201,199,195,214,174,93,123,228,229,159,135,242,93,220,246,140,201,202,206,133,38,169,67,236,25,18,49,98,140,139,85,79,174,215,165,40,10,121,249,5,0,0,131,161,26,86,139,5,25,250,76,84, -181,14,254,201,90,45,212,26,13,106,12,213,24,63,241,18,12,25,122,49,44,22,11,42,43,246,186,66,91,244,250,30,96,24,199,64,7,56,188,95,35,71,141,113,193,151,78,151,134,236,156,92,44,248,244,99,206,224,207,69,212,26,13,52,26,13,232,38,26,250,204,76,148, -110,223,230,152,100,209,103,66,155,210,25,165,37,219,60,202,231,23,244,1,69,169,28,131,165,197,49,88,106,181,41,208,103,246,0,77,55,161,108,215,78,98,129,19,33,18,13,11,49,150,38,79,68,216,116,121,126,235,122,45,167,60,246,232,12,87,31,69,211,52,238, -189,107,42,46,188,104,24,118,151,151,97,201,79,63,120,148,157,247,204,28,168,53,26,87,104,27,77,211,184,119,250,84,12,31,49,26,189,243,242,177,237,207,45,146,127,165,70,99,29,190,88,248,105,208,114,206,119,18,200,8,55,155,76,200,206,201,117,253,150,157, -147,235,26,119,42,43,247,34,67,159,9,163,177,14,20,69,65,219,26,17,229,45,13,102,51,158,126,234,113,36,107,181,120,237,205,247,97,48,84,163,180,100,59,82,117,105,120,122,206,227,30,227,171,78,167,243,91,47,179,217,132,167,158,152,5,173,54,5,95,125,247, -35,202,118,237,20,116,12,228,50,137,16,162,58,147,137,163,24,19,78,30,48,155,205,134,170,138,61,24,56,248,34,40,20,158,167,116,74,214,98,240,5,67,176,127,95,21,24,150,36,17,238,202,84,84,124,62,206,57,39,219,239,125,42,246,254,131,236,94,189,209,165, -75,87,143,223,229,114,57,134,14,31,133,154,154,106,252,189,99,59,63,101,150,203,145,150,214,13,167,229,50,212,165,118,133,140,37,83,15,99,183,67,97,48,64,121,228,8,236,50,25,236,29,146,208,210,163,135,79,56,162,173,83,71,148,159,180,96,104,115,51,148, -94,107,172,52,154,36,12,31,57,174,117,209,230,127,188,234,168,84,42,209,61,35,19,102,147,9,245,71,14,163,219,217,25,62,239,176,248,252,129,40,217,254,39,254,173,12,236,246,76,74,234,128,162,126,231,251,172,83,147,58,140,132,123,157,80,207,23,27,250,132, -190,62,69,81,248,232,211,47,96,48,84,227,128,161,26,20,165,66,141,161,26,247,205,120,4,119,221,126,11,0,96,224,160,11,208,183,176,24,175,206,127,1,3,6,14,134,86,155,130,194,162,126,174,56,248,143,63,251,10,91,54,253,1,93,90,58,46,187,252,74,60,62,235, -97,12,29,118,49,180,41,41,200,202,206,129,177,174,22,89,217,57,80,169,84,40,42,238,7,171,197,34,216,0,148,147,147,139,107,254,119,3,52,154,36,108,88,247,43,74,183,111,195,196,201,151,98,194,164,75,80,90,178,29,51,30,158,137,25,247,77,135,177,174,22,207, -189,48,31,117,117,181,160,105,26,67,134,13,199,43,47,205,131,94,159,137,55,223,253,16,235,126,251,21,153,153,61,96,50,213,227,169,39,102,69,117,48,36,66,132,136,20,24,43,50,222,47,167,28,240,74,32,241,111,85,165,199,223,135,14,25,241,253,119,95,177,158, -123,232,144,17,56,100,244,4,21,171,21,75,22,255,16,100,60,9,105,16,18,112,60,19,231,93,238,46,223,5,139,197,130,135,30,125,28,7,106,12,184,234,234,255,225,225,7,239,3,0,172,92,190,20,247,61,240,48,116,105,105,232,157,151,15,154,110,98,189,198,213,215, -94,15,139,229,204,190,180,198,186,90,212,24,170,113,255,131,143,224,145,153,179,177,118,205,42,12,25,118,49,94,125,249,133,128,117,185,251,222,251,97,168,118,36,251,176,8,56,246,241,157,40,144,114,246,67,49,205,166,72,206,235,68,27,2,21,193,140,71,167, -1,242,207,238,50,28,109,48,163,179,23,28,201,100,50,12,27,49,26,245,71,14,99,205,170,101,126,51,245,229,247,233,139,81,99,39,162,253,89,103,249,189,223,127,7,15,224,175,146,109,24,53,118,130,143,225,163,75,75,199,21,87,253,15,137,137,137,216,190,117, -115,208,245,86,29,58,116,68,86,118,46,242,207,43,68,94,193,121,248,122,231,14,28,60,92,203,170,210,242,218,90,40,90,59,83,153,221,14,69,77,13,236,29,59,2,41,41,62,48,247,183,185,30,21,166,35,200,211,165,251,92,167,176,184,63,104,186,9,43,151,253,132, -202,138,61,1,235,39,151,203,161,77,233,130,115,243,242,209,231,188,34,232,51,207,193,7,239,188,134,242,93,59,145,222,173,187,207,243,167,167,159,141,241,19,47,197,15,223,125,137,255,14,30,96,189,166,38,169,3,38,92,114,5,206,43,236,23,83,240,21,83,179, -54,81,126,230,145,163,198,162,178,98,47,158,121,106,246,153,182,161,99,223,42,193,106,181,96,227,134,223,80,88,216,15,31,125,240,14,0,224,134,155,166,96,225,103,31,227,199,69,14,111,242,226,229,107,144,151,95,128,229,203,150,96,252,196,201,88,177,108, -9,118,148,110,199,250,117,191,98,194,164,75,240,225,251,239,8,54,174,56,95,93,78,78,47,92,126,201,56,215,236,239,168,209,227,48,235,225,25,48,155,77,48,155,76,24,61,102,28,190,250,98,1,6,13,190,16,51,238,155,238,225,21,187,241,150,219,240,217,39,31,225, -135,239,191,1,0,44,90,178,18,106,141,38,232,44,43,17,34,68,226,154,190,200,59,136,160,49,218,96,54,227,141,87,95,10,90,174,170,178,2,95,184,1,204,23,11,62,129,185,53,187,97,131,217,132,39,30,123,4,128,195,3,248,204,83,179,49,96,208,96,232,116,105,184, -243,142,41,48,214,57,150,100,236,40,45,193,125,247,76,195,200,81,99,241,249,103,159,224,219,175,190,240,128,34,103,189,75,75,182,33,47,191,15,104,186,9,15,63,112,143,107,124,153,118,219,205,24,57,122,12,138,138,251,225,207,205,142,245,99,102,179,9,175, -188,244,188,235,26,91,54,253,129,242,214,104,138,245,235,126,67,118,78,46,44,22,11,110,159,114,99,244,85,57,86,117,59,26,235,249,99,204,171,166,96,155,69,98,147,131,7,12,40,221,254,39,198,140,159,236,115,172,93,187,246,184,234,218,27,145,154,150,142, -191,74,182,161,182,246,32,108,54,27,148,173,201,41,122,231,245,193,128,65,23,66,151,150,30,176,50,118,187,29,91,54,111,68,223,162,126,172,201,61,122,102,229,224,214,219,239,70,97,81,127,236,222,189,11,181,255,29,196,169,147,86,0,142,44,130,106,141,6, -157,59,119,69,119,125,38,178,179,115,145,126,118,6,18,19,19,177,126,95,37,74,143,154,216,83,206,159,56,1,165,161,6,242,102,155,235,249,229,86,43,20,6,3,154,53,73,144,169,60,147,130,28,59,221,136,223,13,251,144,219,37,21,10,22,47,211,128,65,23,34,67,223, -3,59,74,182,162,178,98,15,14,31,50,162,169,233,52,228,50,57,84,237,218,33,41,169,3,116,186,52,232,123,156,131,158,89,185,232,154,170,131,66,161,128,213,106,133,221,110,199,142,146,173,24,116,225,16,36,121,133,16,202,100,50,12,24,116,33,146,58,116,196, -159,155,54,98,207,158,114,156,58,121,18,50,153,12,26,77,18,206,233,153,141,194,226,254,40,44,62,63,34,179,246,140,160,179,106,241,233,253,18,163,46,58,157,14,85,44,225,190,92,59,161,194,162,126,120,251,205,87,93,127,151,150,108,135,94,159,233,17,127, -207,165,155,11,71,202,118,253,237,26,28,41,138,66,81,191,254,120,238,197,249,30,131,33,77,211,184,251,206,219,48,245,142,233,152,58,237,46,204,127,113,30,42,43,246,34,45,61,29,95,127,185,240,204,181,118,254,141,226,226,254,81,137,211,39,66,36,214,38, -126,226,117,210,204,111,218,249,56,130,179,104,123,191,220,133,166,105,84,121,121,252,216,116,203,106,181,56,214,89,181,30,115,79,59,79,211,52,118,151,151,121,148,253,101,237,106,191,192,247,237,215,95,4,124,158,170,202,10,87,24,190,123,49,171,213,226, -154,112,116,191,119,165,91,52,145,217,108,114,65,93,121,217,206,168,133,182,75,37,226,130,162,40,156,219,59,31,52,77,227,159,221,101,126,85,202,89,206,93,254,254,171,212,247,90,121,249,248,167,188,204,111,54,201,57,115,231,97,206,19,194,237,125,55,96, -224,96,36,107,83,176,114,249,146,216,2,176,64,112,244,199,198,245,200,239,83,136,244,110,103,251,28,79,108,215,14,163,198,76,192,5,23,13,195,73,171,21,182,22,27,148,10,37,206,82,171,209,174,93,123,15,197,242,151,110,30,0,246,254,83,142,95,215,174,194, -85,215,222,224,179,22,12,112,172,33,185,104,216,8,12,186,112,40,78,55,54,130,110,118,124,80,69,66,2,40,85,34,148,74,37,228,114,185,235,250,251,205,38,172,172,216,141,83,44,41,220,153,150,22,40,13,213,72,240,74,245,42,3,144,80,91,11,123,82,18,90,122,246, -244,1,183,13,251,171,144,157,210,5,195,179,114,217,141,228,180,116,140,155,120,41,70,142,153,128,211,141,167,96,179,217,32,147,201,161,80,42,160,162,84,80,180,214,145,77,202,203,254,198,150,63,54,178,122,1,101,50,25,122,231,21,32,183,87,111,28,63,126, -12,167,79,55,66,46,151,163,93,98,123,168,53,26,159,176,195,64,239,153,192,23,35,250,57,98,24,59,22,171,5,89,89,57,30,191,53,209,77,208,106,181,110,144,118,102,162,131,110,242,236,240,156,177,246,149,173,11,161,179,115,114,241,203,218,85,17,237,116,154, -220,58,97,154,166,97,168,222,239,242,128,121,130,218,78,220,125,231,109,40,42,238,143,231,94,124,5,87,76,118,132,248,230,228,246,66,101,133,99,240,204,201,237,229,119,177,122,164,101,211,166,191,201,61,200,61,136,68,218,64,245,30,39,227,112,227,90,177, -185,153,139,231,64,140,58,240,73,194,208,166,244,60,202,58,156,156,172,197,179,207,207,199,191,85,21,72,78,214,226,64,141,1,243,158,157,3,171,213,234,83,238,229,87,223,244,128,180,123,238,186,221,97,171,171,213,120,242,233,121,174,53,223,169,186,52,44, -89,188,8,95,46,252,204,231,187,247,206,43,224,111,75,5,80,146,100,109,10,116,186,180,160,9,56,98,2,192,156,15,95,177,119,55,126,89,179,2,255,187,97,10,235,62,83,50,153,12,103,157,165,198,89,103,5,222,17,189,174,246,63,151,231,135,77,214,172,90,134,100, -173,22,163,198,78,244,11,16,10,133,2,106,77,224,84,235,77,182,102,172,170,216,141,138,250,195,190,207,100,183,67,126,240,32,20,53,7,253,52,0,64,97,168,1,211,161,3,152,174,158,97,151,141,182,102,44,221,179,11,29,219,181,71,81,183,238,126,7,10,138,162, -120,239,23,96,183,219,241,235,207,171,208,61,67,143,94,94,51,11,78,73,72,72,240,200,170,196,38,39,142,31,7,100,240,241,164,17,248,138,212,128,201,8,95,150,97,240,243,154,85,184,244,178,43,49,109,250,189,104,104,48,99,71,201,118,84,85,86,192,106,177,224, -214,169,211,96,177,90,48,96,224,96,212,180,110,88,89,90,186,13,119,222,125,31,134,12,189,24,165,37,219,241,205,215,159,227,137,57,207,130,162,84,232,157,87,0,186,169,9,91,54,111,138,234,187,250,225,251,111,241,220,139,243,177,124,233,98,0,128,161,122, -63,234,106,107,113,227,45,183,97,71,201,54,228,21,244,65,217,78,135,161,251,227,162,111,93,157,122,86,118,46,234,234,106,35,27,163,79,132,136,148,250,25,65,66,110,98,219,218,141,247,117,154,33,15,115,36,195,108,172,41,178,164,170,243,111,85,5,238,157, -238,128,169,233,247,62,128,177,227,38,225,187,111,125,215,52,54,52,152,93,208,229,20,74,169,196,27,239,124,136,47,63,255,12,191,254,188,134,183,202,246,206,203,7,221,212,228,242,178,102,101,231,160,198,80,237,242,160,165,234,210,0,134,193,33,99,29,146, -181,90,100,100,100,162,166,166,58,230,108,1,121,240,23,194,248,192,209,242,165,63,194,30,226,158,87,149,123,255,193,134,117,63,163,185,217,255,198,118,167,79,55,226,135,239,190,194,234,149,75,97,179,217,66,54,128,215,86,238,193,175,251,216,195,181,100, -199,142,65,105,48,64,102,111,241,11,96,242,198,83,72,48,24,96,111,108,244,57,110,56,218,128,175,255,222,142,173,134,125,130,131,192,129,154,106,44,91,188,8,213,251,255,13,233,252,150,150,22,252,178,118,37,246,121,133,8,196,19,124,69,250,222,82,129,189, -6,179,25,87,95,49,25,255,86,86,128,110,162,93,29,206,125,119,79,131,209,88,7,179,201,132,251,238,190,3,11,23,124,236,42,255,240,140,123,144,149,237,240,214,86,85,86,224,177,153,15,129,162,84,248,171,116,59,166,77,189,217,117,237,87,95,126,1,149,21,123, -93,207,250,216,163,15,10,110,68,84,84,236,197,130,79,62,244,2,176,111,240,193,187,111,187,66,148,235,106,107,97,177,156,192,134,117,191,66,159,217,3,229,187,118,98,222,51,115,0,56,188,98,15,222,123,23,0,71,6,199,89,126,246,158,33,66,164,77,131,89,91, -177,189,93,25,155,201,119,12,245,68,33,188,95,1,199,71,161,148,145,107,42,125,38,54,219,78,192,48,218,40,203,209,134,6,156,157,145,193,185,124,247,12,61,212,106,13,43,124,5,211,183,89,179,159,194,228,75,175,192,216,241,147,240,230,59,14,91,97,248,136, -209,24,55,97,146,171,204,220,103,158,135,86,171,69,178,86,139,87,94,127,7,231,15,28,132,185,207,190,128,75,47,187,82,212,239,46,180,29,168,224,94,57,199,141,109,54,27,22,125,251,5,78,159,110,196,168,177,19,131,122,98,220,207,175,220,251,15,126,90,244, -13,78,55,157,14,90,246,248,241,99,248,106,225,199,48,29,57,140,97,35,70,179,38,166,8,36,123,143,28,194,202,138,221,104,97,73,10,194,52,55,67,97,48,32,225,248,241,192,13,2,64,130,209,8,69,135,142,104,201,206,242,9,69,172,50,215,227,147,141,191,225,112, -90,21,134,246,27,0,77,82,135,144,102,227,154,155,105,28,168,217,143,83,110,27,45,239,40,221,134,22,123,11,198,142,191,4,125,250,22,113,190,110,99,227,41,172,92,182,24,43,150,253,136,123,238,127,52,110,225,43,94,66,15,189,203,166,118,209,226,208,17,115, -208,243,126,246,138,149,183,90,45,88,177,108,137,171,115,115,238,111,226,132,46,103,108,60,0,212,24,170,93,30,50,143,201,145,74,207,201,10,126,235,194,184,137,213,98,97,77,152,81,90,178,205,39,5,61,219,111,128,35,245,190,129,165,254,124,164,115,74,39, -98,165,19,137,17,35,156,120,50,56,27,177,113,20,126,72,62,187,48,240,72,36,52,73,213,165,225,230,41,83,161,84,82,24,59,126,34,102,61,194,62,33,155,156,172,197,27,111,191,15,0,48,155,205,120,106,246,76,244,206,43,192,214,63,207,68,214,92,121,213,181,80, -107,52,56,100,172,195,202,21,75,253,222,147,162,40,100,100,232,113,251,173,142,228,39,79,61,61,15,231,246,206,195,170,21,75,241,216,19,115,177,248,199,69,72,213,165,65,173,209,96,119,121,25,254,239,154,255,97,241,143,139,176,248,199,239,209,73,155,140, -183,223,251,4,63,253,248,125,204,188,99,206,33,136,238,0,64,211,52,126,90,244,13,170,247,255,139,65,131,135,32,255,188,66,116,236,208,17,50,183,181,87,78,105,105,105,65,131,217,132,237,91,55,99,195,186,95,96,168,222,135,94,189,243,113,242,228,73,143, -76,134,141,167,78,129,97,236,30,131,13,77,211,88,177,236,39,236,46,223,133,254,3,6,163,79,223,34,164,165,119,131,74,149,232,119,13,149,221,110,71,75,139,13,101,7,12,168,171,175,103,109,158,138,131,7,160,252,143,91,170,120,185,76,6,101,141,1,76,146,6, -118,150,253,39,140,96,240,197,178,31,81,190,249,119,20,247,31,136,222,249,125,208,185,115,87,40,149,74,86,104,98,24,6,12,195,128,166,105,152,77,245,168,172,248,7,229,187,254,118,101,153,116,151,157,127,149,162,246,224,1,92,56,100,56,138,207,31,136,179, -207,206,128,146,162,124,174,203,48,12,26,27,79,161,114,239,30,252,177,113,29,254,248,125,29,20,10,5,78,157,58,233,97,136,3,8,10,191,4,190,226,123,52,14,255,50,100,192,35,66,132,72,244,96,212,125,252,11,55,252,144,97,164,233,61,11,171,159,142,17,239,23, -89,255,5,193,244,88,44,113,108,180,189,5,239,191,251,150,223,50,108,33,136,13,102,19,178,198,79,112,253,189,187,188,12,189,243,242,49,118,220,68,191,0,198,48,64,223,194,98,232,210,210,92,158,47,0,46,216,2,128,140,12,61,70,140,26,131,85,203,29,215,232, -221,59,31,25,250,76,140,24,53,218,117,95,225,237,84,241,20,82,193,71,65,156,27,43,59,255,255,239,29,37,40,223,181,19,221,206,238,14,125,143,115,144,150,222,13,201,157,180,80,170,84,104,166,105,28,109,48,163,246,191,3,216,247,111,21,254,251,239,128,107, -159,176,127,43,247,98,254,243,115,125,238,225,189,175,134,243,69,24,170,247,193,80,189,15,107,87,47,67,122,183,238,232,214,173,59,186,116,77,69,135,14,29,161,164,40,7,208,52,53,193,98,57,129,134,6,51,142,28,62,132,125,7,107,64,157,180,178,67,213,201, -147,144,241,104,229,242,211,167,65,149,151,131,241,183,158,235,212,73,236,58,120,16,101,187,254,70,151,206,93,113,118,247,12,232,210,186,161,115,151,46,80,171,53,144,39,36,192,222,210,130,38,186,9,39,142,31,135,201,84,143,195,135,234,96,172,253,15,102, -179,201,111,234,126,0,48,153,234,241,211,15,223,96,253,186,159,145,217,163,39,206,238,158,129,148,206,142,235,2,14,79,199,225,67,70,24,170,247,97,223,191,149,56,117,242,36,0,160,153,166,177,232,219,47,177,108,241,34,143,235,89,173,22,214,253,218,34,1, -44,209,132,175,72,221,79,136,181,95,62,94,48,174,161,23,136,238,251,141,21,192,37,222,47,34,177,4,28,66,25,176,225,181,109,73,90,173,238,255,23,176,76,108,125,115,233,192,87,188,183,33,34,254,229,144,177,14,95,126,254,25,63,125,108,45,188,187,188,12, -61,179,114,144,170,211,225,144,209,136,127,118,151,129,82,81,184,224,162,161,1,79,175,170,172,128,217,108,198,221,119,222,230,243,253,86,174,88,138,17,163,198,96,248,200,209,152,126,199,20,7,75,84,85,226,223,170,74,124,190,224,147,224,250,236,245,32, -82,208,127,69,176,25,38,239,151,224,13,97,54,91,179,11,144,0,184,50,16,50,12,227,23,44,154,155,155,177,127,95,21,239,89,175,99,71,143,226,216,209,163,216,93,182,211,227,94,0,96,103,24,31,176,16,114,43,98,121,99,35,192,178,22,204,163,158,118,59,14,31, -54,226,240,97,163,7,180,6,170,35,87,105,48,155,208,96,54,161,116,251,159,144,201,229,144,115,184,102,237,127,7,36,211,105,69,27,190,164,30,122,200,6,97,0,56,133,35,18,33,224,69,132,72,136,61,99,188,91,223,49,5,97,145,130,47,161,46,25,114,52,10,95,189, -19,244,217,24,238,207,16,33,120,147,241,220,128,89,74,106,173,86,107,112,243,148,169,174,191,63,253,232,125,52,52,152,49,239,153,57,120,227,237,15,177,106,229,50,252,83,94,134,139,71,140,10,110,231,54,152,113,192,80,141,89,179,159,194,239,27,215,33,53, -53,13,191,252,188,26,13,102,51,126,89,187,6,31,124,178,16,135,234,234,208,208,186,151,220,207,107,87,227,149,55,222,1,69,81,168,172,220,11,173,54,37,254,66,16,221,33,194,27,208,188,255,182,135,8,24,92,33,204,93,196,186,151,144,117,22,35,211,31,99,183, -163,69,196,58,75,241,154,241,4,95,124,164,107,231,100,193,238,31,172,140,88,199,3,206,226,147,217,73,34,68,4,51,96,179,178,115,48,126,194,100,188,58,255,69,193,250,203,236,156,92,84,239,223,239,185,135,15,195,64,171,77,193,140,135,103,98,214,35,51,162, -242,14,132,10,219,146,130,49,27,118,55,200,119,188,138,68,218,249,144,198,221,240,158,33,150,135,19,41,205,19,52,52,152,241,230,235,243,131,190,207,134,6,179,91,251,247,44,252,235,207,107,176,187,124,23,206,31,48,24,231,230,229,227,175,191,74,80,245, -45,123,82,188,39,103,63,234,246,223,51,49,124,228,104,100,101,229,184,50,60,3,142,232,173,39,31,127,20,150,19,39,92,101,15,25,235,240,192,61,119,98,196,168,209,200,208,103,226,207,45,142,117,103,127,110,249,3,148,82,21,31,0,22,12,136,196,218,111,138, -11,132,197,229,224,26,165,94,68,138,94,175,88,128,175,88,120,207,177,246,76,82,106,139,109,161,207,33,18,31,227,128,90,157,132,236,156,92,65,219,231,132,137,151,224,135,239,191,133,193,80,141,129,131,47,192,150,77,127,0,0,40,149,10,249,5,125,98,26,190, -164,0,97,145,238,58,133,10,189,138,77,239,87,60,245,15,226,233,44,77,211,168,170,172,228,84,238,239,191,74,253,126,163,67,70,35,150,252,180,40,232,119,119,223,144,219,9,111,108,58,86,85,89,225,115,175,67,198,58,124,190,224,19,143,223,204,38,115,76,168, -152,34,152,209,17,168,163,139,134,113,18,175,6,81,172,165,101,143,196,53,163,177,79,152,216,231,136,85,86,236,119,45,85,29,145,146,12,30,124,94,88,231,115,217,212,151,220,163,237,221,195,159,36,107,181,208,235,123,192,108,54,177,102,53,5,0,173,86,139, -12,125,15,212,213,58,146,78,89,44,22,87,98,166,12,125,38,180,90,45,172,22,11,42,43,247,182,2,156,6,90,173,22,22,139,5,250,204,76,148,150,108,199,242,101,139,81,87,87,235,240,120,61,52,19,243,154,230,192,92,95,239,218,80,93,151,150,142,180,180,116,24, -170,247,187,182,197,208,182,38,172,210,166,164,64,163,73,66,69,197,30,0,64,78,78,47,212,213,213,194,88,87,219,166,12,90,209,140,62,17,60,95,92,46,203,48,140,224,15,39,202,70,207,49,48,198,72,205,158,141,228,134,219,129,238,39,232,183,227,177,254,139, -219,132,182,136,0,198,71,65,216,42,43,182,66,185,175,71,35,208,21,127,224,69,224,139,123,89,169,123,191,226,5,178,136,23,140,136,100,198,13,48,160,40,10,247,207,120,4,53,6,3,178,178,29,161,58,31,125,240,142,15,124,125,254,245,15,173,251,233,101,66,151, -150,142,167,158,120,12,59,74,183,99,224,160,11,240,232,99,79,96,249,210,197,24,53,122,44,22,124,250,17,150,47,91,140,236,156,28,76,191,231,1,52,53,209,216,81,186,13,165,37,219,241,192,131,51,49,231,137,153,40,46,238,143,20,109,10,138,138,251,163,114, -239,30,84,84,236,133,70,147,132,57,79,63,135,210,146,237,152,57,123,14,230,191,248,28,182,108,250,3,131,46,184,16,19,38,93,2,179,201,4,139,229,4,102,60,60,19,117,117,181,48,84,239,199,208,139,71,96,193,39,31,98,217,146,159,218,36,132,9,214,37,70,9,190, -194,185,128,96,222,183,144,195,15,153,200,124,155,24,213,215,144,158,63,216,228,45,24,81,43,40,110,50,13,70,84,91,70,193,215,232,224,98,136,120,87,84,44,227,197,253,62,177,96,32,73,197,24,21,171,30,92,175,107,60,92,47,90,39,24,242,179,133,2,95,96,196, -185,133,192,89,15,195,95,72,29,186,119,44,224,165,35,220,30,66,77,194,65,194,16,137,72,77,104,154,198,236,89,15,3,112,120,173,222,253,224,83,124,248,190,39,128,141,28,61,14,63,253,240,29,62,120,239,109,0,192,170,159,215,187,142,93,125,237,117,184,231, -174,169,168,49,84,99,249,210,159,240,236,243,243,177,124,217,98,0,128,94,223,3,19,199,143,240,217,175,111,217,210,197,152,122,199,116,199,245,24,6,186,180,116,104,146,146,48,103,246,44,24,235,106,81,185,119,15,134,14,27,238,10,81,212,104,146,112,251, -20,199,126,62,107,126,251,29,31,188,251,22,214,175,251,21,165,37,219,48,116,216,240,200,1,24,79,43,213,217,45,9,221,228,133,205,35,17,111,17,51,209,121,78,41,76,130,75,101,43,5,49,224,43,212,211,219,202,218,112,69,52,26,172,24,198,140,20,97,76,106,74, -20,207,224,213,214,224,43,6,198,105,201,85,172,222,116,52,36,16,35,240,69,68,50,205,166,181,223,73,214,106,113,215,244,251,65,169,40,232,116,233,80,107,52,62,101,11,139,138,177,98,217,18,215,223,165,37,219,93,255,157,157,147,235,10,91,52,26,235,160,77, -73,113,109,109,178,121,243,239,172,155,165,179,181,93,147,169,222,21,78,104,177,88,64,81,103,22,190,151,108,63,179,137,58,221,212,132,138,138,189,173,255,77,123,148,227,43,145,106,143,66,128,152,40,221,156,136,227,149,152,161,135,145,246,126,49,225,27, -20,210,25,43,131,40,97,56,16,22,242,99,114,137,190,1,35,220,125,57,122,191,124,138,49,210,245,122,202,227,17,54,156,217,7,133,200,66,200,247,94,145,186,111,40,117,36,240,37,113,248,18,184,14,92,238,27,53,239,87,20,197,9,98,68,136,196,34,124,1,192,213, -215,92,143,170,170,10,204,158,245,48,94,123,229,5,214,242,85,149,21,208,233,210,92,127,231,184,37,231,160,105,218,117,76,173,214,184,246,209,116,2,82,160,54,76,185,237,135,73,55,53,249,173,175,115,173,153,24,194,27,194,194,220,3,205,251,31,151,50,241, -6,95,98,131,174,248,21,146,222,128,196,186,229,83,136,245,228,163,115,97,235,168,136,202,34,186,205,46,114,72,36,31,81,4,83,12,177,188,85,145,156,85,110,139,169,174,99,37,235,157,16,151,137,27,248,18,48,244,80,24,248,146,206,123,151,218,32,73,132,72, -52,165,161,193,140,190,133,197,48,155,76,24,48,112,48,43,8,173,93,179,10,175,191,245,30,44,22,11,242,242,11,64,169,206,120,157,190,249,114,33,158,156,251,28,214,174,89,133,81,163,199,186,194,15,131,73,73,201,54,220,52,101,42,214,174,90,225,74,194,209, -38,97,152,137,141,27,10,9,95,82,245,126,9,53,126,69,107,88,18,35,163,167,20,116,81,108,239,151,24,207,30,105,86,80,240,85,8,161,224,137,172,171,104,59,224,229,207,251,21,213,198,18,199,240,37,224,215,142,29,3,133,167,212,155,142,146,141,153,137,196,108, -191,254,205,87,159,195,88,87,11,93,90,58,222,126,243,85,87,214,193,202,138,189,120,245,101,135,71,204,80,189,31,15,221,127,15,134,12,187,24,203,151,45,134,90,163,1,77,55,1,96,240,245,87,159,163,172,108,39,6,14,186,16,11,62,253,8,91,54,59,214,109,85,84, -236,133,217,244,161,199,189,230,191,52,15,102,147,35,187,225,252,23,159,195,232,49,227,161,75,79,71,233,246,109,30,123,128,85,84,236,129,249,19,71,95,191,249,143,223,61,128,111,214,35,51,96,54,213,251,148,19,218,88,101,192,248,223,200,54,198,54,101,110, -11,240,37,132,247,75,148,240,67,41,234,128,20,116,87,100,59,133,87,162,50,48,97,215,55,240,97,246,4,28,66,170,150,66,216,111,195,15,170,226,37,155,97,188,67,151,208,247,136,119,175,87,180,225,75,210,161,135,100,79,23,34,68,4,145,13,235,127,115,53,39, -179,217,177,239,141,213,106,65,101,165,99,179,83,173,54,5,77,116,19,62,124,255,29,232,116,105,200,47,232,131,199,103,62,228,58,191,188,108,23,202,203,118,121,180,103,171,197,226,90,255,229,188,118,101,235,218,45,231,241,31,190,255,198,245,119,217,174, -157,30,199,156,231,58,211,209,7,43,215,102,13,89,9,128,87,36,224,75,200,211,194,155,124,148,230,222,99,49,101,251,10,100,167,136,229,253,18,95,135,132,23,133,240,223,136,191,103,139,120,195,164,9,93,98,220,135,120,189,98,1,190,164,161,123,82,16,210,47, -17,137,197,190,158,97,24,104,181,41,184,235,158,251,160,82,169,96,50,153,240,252,179,115,33,197,117,48,68,164,11,95,81,49,120,35,224,253,146,74,248,97,204,76,30,68,0,190,194,245,126,197,90,248,33,39,0,139,20,28,17,111,152,180,20,132,145,96,54,62,2,95, -145,130,47,145,66,15,137,247,139,8,17,193,250,188,96,205,169,178,114,47,238,157,126,71,72,247,96,189,182,196,18,75,5,234,47,253,134,33,186,63,135,20,109,141,112,146,133,136,0,95,82,9,61,140,168,247,43,10,186,236,109,247,6,213,225,24,209,201,176,219,179, -128,54,159,183,14,113,13,63,20,243,189,248,0,24,215,125,190,196,90,39,70,64,44,122,68,46,214,198,204,177,230,245,34,240,37,29,157,36,66,132,136,80,253,37,19,167,207,27,34,75,73,41,28,49,220,168,4,137,193,87,180,94,89,40,222,47,169,60,23,39,117,140,164, -206,10,188,209,183,80,175,85,12,239,23,87,125,17,250,62,10,49,43,29,14,68,197,218,38,203,177,8,92,98,131,87,212,175,17,195,235,189,98,17,190,136,247,139,8,145,200,244,161,252,55,48,101,56,151,151,170,247,139,111,136,18,39,15,66,12,132,117,9,57,94,69, -10,190,164,227,253,138,200,103,136,145,25,7,105,194,87,36,188,95,82,181,189,21,33,119,112,28,0,75,200,140,137,241,8,99,76,156,237,102,47,228,117,99,193,235,69,224,43,190,225,139,175,14,110,218,244,183,232,117,34,247,104,123,247,32,115,25,161,195,9,103, -8,59,99,96,196,204,199,139,43,248,226,121,45,238,222,47,233,54,22,231,254,172,254,108,218,160,25,61,197,208,87,17,38,173,133,90,247,229,239,94,156,108,32,161,195,15,197,0,48,190,32,197,21,194,132,4,167,88,133,49,169,132,110,17,240,138,2,120,197,56,124, -133,85,15,98,45,18,33,18,17,251,40,158,189,95,92,222,11,155,57,192,123,45,141,24,134,173,208,235,169,69,28,175,162,6,95,76,100,146,135,4,77,190,17,107,227,149,80,222,48,145,108,39,33,55,122,230,172,247,2,122,191,252,134,31,10,164,39,138,200,233,9,35, -194,134,115,236,47,33,90,96,38,213,245,49,82,135,46,65,174,69,224,75,52,248,10,39,17,64,124,24,189,36,75,43,17,233,235,104,60,140,85,146,105,151,108,239,39,216,189,196,222,131,83,228,177,74,76,248,10,229,186,252,214,181,197,150,247,139,43,79,113,154, -64,8,117,210,64,228,132,47,193,213,41,252,208,67,225,189,95,145,21,5,215,206,45,28,47,152,247,11,23,219,152,33,137,2,196,125,7,4,188,162,7,94,82,130,47,49,59,120,34,68,136,8,209,156,194,236,87,98,168,13,11,230,5,147,96,127,22,117,248,18,235,213,49,225, -135,81,114,133,175,88,245,126,133,20,74,43,49,93,12,87,223,56,135,30,134,253,14,34,171,3,138,112,128,42,212,115,72,166,195,216,132,206,120,0,47,2,95,194,193,23,9,61,36,66,36,250,253,187,16,161,135,177,246,46,120,219,40,173,239,66,50,169,189,69,54,118, -5,11,57,228,120,49,33,215,125,9,101,228,19,251,45,122,250,24,242,186,47,145,195,117,189,47,31,205,240,67,86,0,11,181,227,11,21,220,8,136,181,29,232,106,19,224,37,18,124,9,58,160,18,248,34,66,132,192,87,176,38,27,19,107,191,188,35,117,2,71,98,73,106,127, -165,40,130,151,36,224,139,103,232,97,91,241,126,177,233,112,180,245,86,168,73,226,80,224,43,94,189,95,65,1,140,117,131,184,32,16,22,10,80,17,16,147,214,44,137,36,211,210,71,24,188,66,186,165,192,169,91,9,124,7,18,212,7,0,0,32,0,73,68,65,84,73,199,192, -35,97,205,68,98,7,190,4,232,182,36,188,158,57,120,226,175,224,16,6,72,207,27,198,136,153,12,41,14,225,75,106,118,83,36,244,35,26,58,43,180,157,34,132,62,132,82,239,80,189,95,81,3,176,80,59,193,80,23,199,182,197,189,191,164,212,105,136,229,237,138,230, -58,162,88,246,122,17,248,34,66,132,140,1,252,219,105,124,134,30,250,123,22,246,137,98,14,57,51,36,224,13,19,102,61,141,8,227,124,20,224,139,111,241,80,19,111,72,213,251,229,174,199,162,175,103,140,130,157,34,212,126,95,145,158,48,18,43,252,208,47,128, -121,42,66,104,201,55,194,245,106,121,127,172,120,6,178,120,219,15,76,144,107,70,1,188,66,186,173,72,94,47,2,95,68,136,16,17,27,190,98,205,251,197,183,107,230,2,97,46,27,67,130,134,109,196,193,43,138,240,37,70,214,67,38,6,195,104,131,233,175,216,30,92, -49,246,151,99,4,218,95,140,107,127,197,223,251,37,145,141,152,249,132,29,70,107,51,230,88,133,50,41,116,6,146,79,73,31,43,224,197,243,164,232,129,23,129,175,72,233,244,224,193,231,133,117,63,46,155,250,146,123,180,189,123,240,233,253,226,21,190,132,54, -98,35,9,99,66,39,148,8,41,169,69,140,194,23,247,117,95,33,62,94,148,39,191,195,177,143,133,4,49,49,237,38,161,214,125,69,170,189,69,34,249,6,43,128,5,234,208,164,180,25,51,151,15,27,13,56,107,107,251,128,17,240,146,58,124,9,147,102,190,173,123,190,200, -62,96,68,164,223,151,11,0,95,177,214,30,189,232,74,8,8,227,218,103,59,141,222,72,102,235,19,21,188,56,220,32,172,77,119,5,130,47,62,99,93,208,196,27,49,48,214,136,233,197,13,11,114,132,176,83,132,88,7,24,130,253,34,21,239,87,64,0,19,195,64,137,228,26, -175,182,188,104,94,252,61,61,24,33,47,70,192,11,98,236,217,66,224,139,192,23,145,182,12,95,145,238,139,165,220,30,67,129,48,177,140,215,72,125,150,72,121,189,194,170,35,79,248,18,52,244,80,82,153,15,25,65,116,55,18,122,41,72,200,161,72,240,37,164,247, -43,42,0,230,238,173,226,234,5,243,62,143,207,131,18,227,38,54,96,83,74,208,21,113,240,146,8,124,73,38,228,176,141,192,87,52,59,102,34,68,194,133,175,182,16,122,200,213,11,230,254,136,177,98,114,136,14,94,145,130,47,129,50,30,10,26,122,24,99,147,12,66, -79,32,136,249,14,67,133,47,49,190,93,56,222,47,177,195,15,1,64,206,247,101,58,227,86,133,50,84,156,215,35,6,78,104,239,76,236,240,66,65,239,193,48,130,120,188,66,205,108,24,178,215,139,231,90,47,62,105,91,9,124,17,240,34,66,68,104,29,140,119,248,242, -120,62,22,27,69,228,97,200,71,198,142,159,136,243,7,12,18,108,136,12,53,220,144,151,215,75,130,240,37,196,4,68,44,121,191,60,190,153,87,102,79,41,85,57,18,240,197,75,39,66,72,188,33,197,177,94,206,165,50,236,202,192,8,211,17,68,1,44,98,25,182,34,17,94, -40,228,125,152,112,70,20,47,168,137,23,240,226,219,161,113,15,57,100,194,190,22,129,47,2,97,68,98,69,247,218,206,186,47,190,99,19,215,240,106,161,222,137,78,151,134,100,173,54,108,232,26,199,1,228,188,203,240,30,175,57,150,101,27,207,40,138,66,223,194, -98,244,206,43,240,185,76,134,94,143,172,236,28,159,151,171,211,165,161,119,126,129,171,92,239,252,124,20,22,245,131,78,151,22,166,142,250,183,75,213,26,13,244,250,76,143,107,170,53,26,20,21,247,3,165,84,250,60,83,81,113,127,168,53,26,71,125,211,210,81, -84,220,31,249,5,125,36,216,6,34,219,142,5,157,36,22,106,29,96,136,161,135,82,243,126,1,44,89,16,157,255,207,37,19,34,73,69,31,251,70,158,100,211,208,35,50,139,68,195,61,81,140,148,173,252,223,99,4,214,123,181,65,248,34,224,69,36,238,225,43,198,116,220, -99,139,28,247,61,145,88,98,180,58,37,39,67,175,207,132,217,108,198,129,26,3,40,138,66,70,134,30,22,171,5,58,93,154,235,119,151,129,174,86,35,59,39,7,53,6,3,26,26,204,174,235,168,213,106,100,101,231,192,104,172,195,33,163,209,231,119,139,197,34,216,24, -144,202,2,37,254,202,48,252,167,248,195,30,211,146,181,41,120,225,229,215,80,89,81,1,109,74,10,106,12,213,120,122,206,108,88,173,22,92,127,227,45,24,57,106,44,46,157,56,26,13,230,51,239,239,241,57,207,64,151,150,134,203,38,142,1,3,6,79,63,247,18,204, -38,19,104,186,9,90,109,10,118,148,110,199,219,111,190,230,247,61,134,178,238,235,218,255,221,128,81,163,199,225,242,75,198,187,126,203,201,201,197,7,31,47,196,252,23,159,195,87,95,44,116,253,62,122,236,120,204,121,122,30,166,222,114,3,74,75,182,97,226, -228,75,49,113,210,37,168,171,171,5,0,104,52,73,152,247,204,28,148,237,218,41,126,251,118,211,227,96,225,180,98,153,195,145,222,87,78,12,248,226,27,122,24,173,177,94,238,111,150,137,173,82,124,61,97,33,207,208,112,152,1,139,69,79,153,191,250,71,250,25, -196,186,175,16,215,12,199,219,21,214,12,81,8,39,242,245,120,69,195,235,197,165,141,6,173,91,164,167,221,36,218,102,137,16,145,128,70,182,89,248,226,99,228,93,52,100,24,30,159,61,23,125,11,139,113,203,173,183,35,57,89,139,100,173,22,243,94,124,21,247, -222,247,16,206,31,48,8,175,188,246,54,250,22,22,57,192,34,89,139,55,223,253,8,253,207,31,132,89,179,159,194,228,75,174,0,195,56,188,35,47,191,246,54,46,184,104,24,238,185,239,33,220,62,237,110,0,142,223,63,93,248,45,198,142,155,132,235,174,191,25,195, -71,140,14,216,117,6,10,4,73,78,214,162,111,97,17,178,178,178,89,96,75,135,190,133,69,160,40,202,175,249,152,149,157,131,190,133,197,174,50,169,186,52,15,144,83,171,53,172,215,14,105,76,99,128,202,138,10,220,117,199,20,92,125,197,100,24,235,106,49,126, -226,100,215,225,242,178,93,24,57,122,172,235,111,119,47,151,251,181,103,207,122,8,119,222,126,11,174,186,98,146,227,239,57,207,132,5,95,222,50,106,244,56,236,218,181,19,69,197,253,60,126,47,217,190,21,19,38,93,234,241,219,132,73,151,160,100,251,86,143, -223,150,45,93,140,219,167,220,136,219,167,220,136,121,207,204,193,203,175,189,5,173,54,69,180,73,22,255,109,151,9,58,44,11,181,237,106,40,215,138,40,124,137,4,144,1,207,23,185,143,148,243,85,12,127,16,198,7,196,196,50,252,131,253,139,52,84,73,5,20,197, -172,135,80,215,13,7,186,162,1,94,209,205,112,200,109,16,34,33,135,68,136,196,27,124,241,235,55,226,17,190,60,38,137,193,176,62,87,223,194,34,212,212,84,227,243,5,159,224,201,199,31,133,217,108,114,192,142,86,139,39,103,63,138,247,222,121,19,175,191,246, -18,134,143,116,128,211,128,129,131,176,106,197,82,188,247,206,155,120,242,241,71,241,127,87,95,11,0,232,63,96,16,254,42,45,193,27,175,190,140,39,31,127,20,35,70,142,129,82,73,225,220,222,249,168,170,172,192,179,79,63,137,39,103,207,132,217,108,6,56,192, -150,183,80,20,133,15,62,94,136,177,227,39,225,186,27,110,198,136,145,103,64,46,43,43,27,243,94,124,21,125,11,139,49,255,181,183,113,94,223,34,159,239,124,209,144,97,24,55,126,34,10,139,138,241,245,119,63,33,89,171,133,78,151,134,135,31,121,204,245,62, -46,189,236,10,215,115,134,51,166,177,61,79,67,131,25,25,25,122,151,122,174,92,190,4,227,39,156,1,178,75,46,191,18,43,151,47,9,120,221,5,159,126,140,161,195,134,67,173,214,132,56,22,122,150,29,56,232,2,84,84,236,193,242,165,63,225,242,43,174,242,104,62, -117,181,181,176,88,78,32,59,39,23,0,160,215,103,130,110,162,97,54,153,252,94,187,108,215,78,44,91,242,19,134,94,60,66,84,93,246,247,162,249,132,211,114,213,59,190,229,67,181,249,5,133,47,145,66,15,253,238,251,21,1,9,184,15,216,210,213,27,200,152,71,132, -179,92,58,254,98,222,32,35,216,76,69,4,78,142,149,112,67,62,157,54,129,47,110,239,146,100,107,37,18,109,29,36,240,229,191,95,246,216,255,136,97,240,241,135,239,227,186,27,110,198,103,95,124,139,95,127,94,131,143,63,124,15,12,3,24,141,117,160,105,26,0, -80,85,89,129,91,110,189,3,0,112,254,128,65,232,174,207,196,133,23,13,3,0,7,80,1,232,219,183,24,3,6,14,66,239,60,199,26,38,163,177,14,106,181,6,189,243,10,80,85,85,225,186,229,238,242,93,33,213,189,111,97,49,118,236,40,193,115,79,63,9,0,120,243,157,15, -93,199,38,95,118,5,94,127,229,37,252,181,163,4,189,243,242,113,201,165,87,224,175,29,37,30,231,111,220,176,14,27,55,172,3,224,8,137,44,44,44,198,47,63,175,193,67,143,62,134,212,84,29,14,25,235,48,124,228,104,60,249,216,35,97,141,107,238,42,163,75,75, -195,173,83,167,65,73,81,152,48,97,50,30,126,240,62,87,1,99,93,45,44,22,11,178,178,115,80,85,89,129,33,67,47,198,195,15,222,27,240,186,70,99,29,42,42,246,66,159,153,137,242,178,93,65,244,61,120,20,214,229,87,92,133,69,139,190,69,105,201,118,204,124,124, -14,180,218,20,152,77,245,174,227,203,151,46,198,132,73,151,226,149,151,230,97,194,228,75,177,108,233,79,184,252,202,171,2,62,63,77,211,208,166,164,68,86,143,195,24,131,196,108,226,66,36,57,17,11,190,130,135,30,242,56,30,129,126,50,232,62,96,237,84,42, -200,229,114,16,33,226,79,228,114,57,146,146,146,8,120,137,10,94,220,224,75,16,240,34,240,21,230,119,34,66,132,192,151,216,19,34,238,235,96,188,141,87,171,229,4,222,123,231,13,124,177,240,83,204,125,230,121,92,52,100,24,42,43,43,160,215,103,66,169,84, -130,166,105,23,36,0,192,238,221,101,168,170,170,196,23,11,63,245,184,87,67,131,25,59,118,148,224,229,23,158,243,248,189,166,166,26,35,220,194,14,51,50,50,113,160,198,192,251,89,122,231,229,227,95,47,144,99,90,159,113,192,128,65,173,222,165,219,61,160, -208,93,206,31,56,8,227,198,79,130,182,213,243,85,85,89,1,48,12,22,255,248,61,46,185,236,10,172,90,190,20,52,77,163,134,165,110,124,178,245,250,2,73,19,182,108,222,132,119,223,122,221,167,128,211,11,182,99,71,9,118,148,110,7,221,212,20,244,186,90,109, -10,140,173,107,174,194,129,47,173,54,5,3,7,95,8,181,38,9,55,221,124,27,52,26,13,70,143,25,135,175,190,88,224,42,179,102,213,10,76,189,227,46,124,240,222,91,24,122,241,8,124,240,238,91,65,1,172,168,184,31,214,174,94,21,73,37,247,89,228,21,237,173,155, -132,218,87,46,82,240,197,215,134,138,70,215,24,16,192,18,100,50,168,84,42,40,20,10,16,33,226,79,100,173,122,34,38,116,133,213,64,66,60,49,150,192,75,48,248,34,160,65,0,140,8,129,47,137,190,139,51,240,197,248,179,83,1,0,227,38,76,2,69,169,96,181,90,144, -172,213,162,188,124,23,40,74,5,139,229,4,158,122,230,121,252,181,163,20,87,93,125,45,222,125,251,13,48,12,131,95,214,174,193,91,239,126,8,138,162,176,187,188,12,58,93,26,22,255,180,8,43,151,47,197,91,239,126,136,123,238,123,16,91,255,220,140,172,236, -28,124,177,240,83,108,221,178,25,211,238,188,7,183,220,122,59,40,138,66,86,118,14,126,223,184,142,247,51,85,85,85,160,111,223,98,215,243,116,207,208,187,96,105,71,105,9,86,174,88,230,227,245,114,10,69,81,184,247,254,135,112,211,117,87,129,110,106,194, -99,79,204,61,3,65,203,150,226,173,247,62,106,5,162,165,33,141,109,254,212,197,88,87,135,133,159,125,226,183,192,207,107,86,97,202,212,105,200,200,204,196,71,31,188,19,244,218,19,38,58,214,146,153,205,230,176,211,205,143,26,237,128,173,183,222,120,21, -128,35,196,240,185,23,230,123,0,24,77,211,40,217,190,13,51,30,154,137,210,237,91,93,30,81,127,162,75,75,71,126,193,121,152,247,244,28,209,219,120,176,196,50,238,19,16,108,250,112,199,157,247,32,43,59,7,119,223,121,155,104,125,80,170,46,13,211,238,114, -220,135,110,106,194,175,191,172,193,231,11,62,13,107,91,131,64,125,86,239,252,2,220,58,117,26,40,74,5,21,69,97,227,134,117,88,240,217,71,33,244,157,60,66,59,91,143,77,157,54,29,19,39,93,130,137,99,71,136,242,237,21,108,29,92,52,41,155,72,252,25,15,81, -201,102,40,81,240,226,103,204,71,16,188,8,124,5,52,248,184,200,166,77,127,139,94,39,114,143,182,115,15,2,95,254,159,157,173,77,186,27,175,187,203,118,161,119,126,1,212,106,13,158,124,236,17,52,152,205,72,109,245,16,125,242,209,251,184,104,200,48,60,51, -247,73,23,220,152,205,38,220,53,237,86,140,159,48,9,89,217,57,216,186,101,19,0,135,7,108,250,180,219,48,98,212,104,244,206,203,199,214,63,55,187,140,248,155,174,191,26,35,70,142,134,197,106,193,119,223,124,21,210,183,221,81,82,130,123,239,123,16,13,13, -38,36,39,107,145,151,87,128,223,55,174,7,0,44,254,105,17,230,62,243,60,62,95,248,41,172,22,11,40,149,202,3,166,104,154,134,138,162,48,110,252,36,104,52,26,244,206,47,112,61,143,213,106,193,238,242,93,24,57,106,12,174,185,242,18,222,99,91,56,19,117,52, -77,99,71,201,118,228,229,23,160,188,108,23,107,186,249,171,175,189,14,0,48,100,216,112,152,77,38,60,62,243,161,176,225,139,97,128,203,174,188,10,15,222,55,221,245,155,161,122,63,154,154,154,124,82,202,47,95,186,24,31,124,178,16,55,93,199,238,249,42,42, -238,135,169,211,166,163,168,184,31,114,114,122,97,206,236,153,48,24,170,197,177,143,2,141,49,1,32,204,219,78,127,243,157,15,177,187,188,76,244,190,199,106,177,96,241,143,139,240,215,142,18,80,20,133,175,191,251,9,43,150,45,241,200,124,201,199,166,10, -214,103,25,235,106,241,226,115,79,195,104,172,3,0,44,252,234,123,108,222,252,187,203,123,205,118,13,190,161,135,108,197,243,11,250,184,182,50,16,75,20,225,27,137,68,136,8,171,51,97,95,134,128,151,96,131,41,17,178,6,140,72,108,244,179,109,38,219,33,220, -246,151,244,19,138,88,83,99,96,13,187,3,28,107,191,220,141,55,167,52,152,205,142,153,124,47,49,155,77,172,128,69,211,52,86,174,88,22,86,31,109,181,90,112,205,255,93,138,17,163,198,160,178,178,2,159,187,133,64,238,46,47,195,3,247,222,133,17,163,198,128, -162,84,46,40,92,177,124,41,232,166,211,0,195,224,174,59,110,197,69,67,135,161,198,80,141,169,55,95,15,74,69,121,156,79,81,42,208,52,45,24,120,153,205,38,188,54,255,5,214,99,159,47,248,4,38,83,61,24,48,120,251,173,87,161,209,36,185,206,153,61,235,33,215, -181,31,159,249,16,40,202,17,49,179,97,253,58,236,40,221,46,8,124,81,20,133,167,102,207,58,3,74,173,229,102,61,50,3,0,96,177,156,128,249,19,199,90,176,210,146,109,152,122,203,13,174,212,242,243,95,156,231,74,59,191,108,201,79,40,221,190,205,81,110,251, -54,84,84,236,129,149,231,86,3,124,199,22,199,100,159,67,143,217,214,52,66,38,11,170,95,51,31,126,0,148,138,194,99,179,231,138,106,191,89,173,22,23,232,211,77,77,48,155,205,208,233,210,252,2,88,56,240,229,108,151,78,81,82,74,104,181,41,30,94,203,112,67, -15,217,238,77,81,20,30,120,104,38,102,61,50,3,31,124,188,32,242,0,70,132,72,100,7,212,216,128,46,113,193,75,88,248,34,94,47,233,77,46,16,33,34,134,14,182,37,248,98,123,23,129,214,131,185,128,169,233,52,170,42,42,36,215,254,105,154,102,13,19,4,128,154, -26,3,62,254,240,61,143,111,121,168,21,20,0,224,144,177,14,223,125,253,165,155,117,236,248,63,138,162,240,127,87,255,15,207,204,157,45,168,215,139,110,106,98,133,87,0,48,24,246,123,24,205,78,195,153,166,105,148,237,58,147,164,196,153,104,35,248,187,229, -183,237,17,77,211,40,43,219,233,243,48,70,183,247,229,14,82,165,37,219,92,255,93,89,177,215,163,188,251,57,145,208,101,159,61,118,121,64,152,59,28,59,182,31,8,28,201,38,152,46,51,12,178,178,115,64,81,148,95,157,8,23,190,156,146,149,157,131,75,47,191, -18,121,249,125,240,234,252,23,80,211,10,217,236,91,169,241,11,61,100,75,59,63,227,225,153,248,250,203,133,162,127,123,146,93,131,72,212,193,203,217,0,178,178,115,112,195,77,183,132,126,1,22,153,251,220,139,72,214,106,89,59,134,80,60,94,124,215,121,241, -243,122,9,151,90,158,147,215,139,64,5,17,34,4,190,98,21,186,224,217,135,185,31,102,235,223,27,204,102,188,254,234,75,177,213,247,133,144,43,124,220,132,73,120,229,141,119,240,237,55,95,250,53,140,67,26,47,2,142,94,161,37,55,16,2,190,226,73,205,189,117, -56,220,49,91,148,237,144,90,235,145,170,75,195,99,79,204,197,179,115,159,240,89,71,23,204,190,226,219,103,153,204,245,216,176,254,55,108,88,255,27,110,184,105,10,116,186,52,225,225,171,85,134,14,27,14,138,82,97,237,234,149,145,5,48,50,203,75,36,146,227, -137,183,186,105,52,26,116,119,238,41,34,208,160,148,151,95,0,21,165,18,13,188,40,138,66,118,118,14,107,167,119,227,205,183,34,59,59,151,245,188,103,230,189,4,0,208,106,181,174,255,14,5,188,178,115,114,161,214,104,248,13,70,164,157,135,109,244,18,33,66, -224,43,186,239,194,245,159,1,246,241,9,216,215,11,185,147,109,148,161,203,253,121,87,44,95,130,187,238,152,18,116,255,45,161,38,234,36,7,95,49,162,251,158,186,124,230,61,7,132,176,104,61,159,151,78,166,234,210,240,252,75,175,226,217,185,79,248,64,126, -40,251,201,5,58,192,128,65,131,217,140,63,183,108,194,71,31,188,131,242,178,157,24,57,106,172,240,227,117,235,249,211,239,155,129,156,220,94,120,255,227,5,120,238,133,249,208,166,116,198,251,34,133,33,42,136,209,65,36,146,179,58,124,36,89,171,133,94, -159,137,202,138,10,88,45,39,160,86,107,160,75,75,243,104,240,133,69,197,216,81,234,136,71,206,202,206,1,165,82,97,183,119,136,67,136,155,60,115,169,183,46,45,29,87,93,123,61,158,158,243,184,79,219,201,208,235,93,49,230,222,226,88,20,236,136,53,246,94, -32,204,165,61,222,116,243,109,24,57,122,44,44,22,11,52,26,13,214,175,251,21,31,188,247,54,1,47,145,6,73,178,6,140,136,148,224,43,96,83,142,243,118,238,30,178,229,10,213,114,11,209,242,142,214,114,246,253,254,246,88,242,121,103,145,110,235,2,124,47,62, -227,27,247,160,12,38,172,123,250,59,61,176,141,217,54,224,203,91,151,153,32,27,22,251,232,174,179,188,216,186,202,82,47,127,240,21,50,120,5,129,175,12,125,166,43,228,80,173,214,32,47,191,15,126,92,244,29,7,29,225,31,122,8,0,87,76,30,231,97,223,125,240, -241,2,220,62,229,198,200,0,24,17,34,98,26,14,124,224,235,181,55,222,197,150,205,127,224,250,27,111,193,202,101,75,176,97,253,111,120,237,205,247,112,213,229,147,96,181,90,208,59,191,0,119,78,191,15,183,222,124,29,110,184,105,10,250,22,21,163,178,98,47, -30,153,57,27,119,78,189,5,22,235,137,144,251,27,181,90,3,141,70,3,74,165,130,86,155,130,26,195,126,52,53,209,200,206,201,133,217,108,114,117,8,102,147,9,223,124,249,185,235,121,117,186,52,232,210,210,97,54,155,124,174,157,157,157,11,181,70,237,17,111, -238,45,20,69,33,47,191,15,234,234,254,131,177,174,142,181,204,229,87,92,133,145,163,199,226,230,27,174,70,83,19,45,216,136,171,214,104,160,209,36,65,69,81,208,166,116,118,100,144,162,155,144,147,211,11,102,83,189,79,22,168,162,226,254,0,224,177,72,89, -175,207,68,93,93,45,242,11,206,3,77,55,249,0,104,126,65,31,80,148,10,117,17,142,179,143,182,62,19,33,66,224,75,216,119,227,120,63,50,64,230,107,160,178,45,153,9,180,209,109,208,119,40,132,161,43,240,183,17,45,105,84,24,233,196,131,157,78,224,43,0,132, -129,129,140,129,79,98,153,128,186,43,198,196,65,144,247,56,229,182,59,144,157,147,139,5,95,158,129,160,21,203,22,227,153,185,79,8,14,95,0,48,100,232,197,184,225,166,41,48,214,213,193,98,57,129,159,215,172,66,101,208,208,90,254,161,135,209,16,2,96,68, -164,101,164,58,118,161,196,132,9,147,241,237,215,95,96,197,178,37,72,214,106,241,244,115,47,225,231,181,171,177,97,253,175,24,50,236,98,172,88,182,4,35,71,142,193,138,229,75,65,81,20,46,185,252,74,92,125,249,36,52,209,142,77,31,47,26,54,12,43,150,45, -9,185,207,201,206,201,197,253,15,62,130,202,138,189,176,90,78,96,224,160,217,168,171,171,67,141,97,63,242,242,251,96,249,178,197,248,113,209,119,200,202,206,193,212,59,238,196,29,183,221,12,173,54,5,159,44,252,10,27,214,253,6,109,74,10,178,115,114,177, -124,169,163,14,19,38,78,198,109,119,220,133,181,171,87,98,234,29,119,193,98,57,193,10,95,159,44,248,26,165,37,219,160,77,73,129,217,100,194,43,47,63,239,83,110,224,160,11,240,195,162,111,131,195,23,207,239,145,147,211,11,51,30,158,137,138,189,123,96, -177,88,48,115,246,28,24,107,107,81,93,189,31,249,5,125,176,124,233,98,252,240,253,55,0,128,247,63,94,0,179,201,4,139,229,4,102,206,158,131,219,111,185,1,102,179,9,55,222,114,27,52,73,73,48,155,234,65,81,42,76,191,247,1,215,236,209,212,105,211,49,112, -208,5,40,45,217,134,209,99,198,97,206,236,89,30,11,161,137,16,33,18,98,147,110,163,19,4,30,9,12,188,172,86,127,16,6,128,27,136,73,240,253,138,154,52,42,76,240,10,29,190,152,240,39,32,226,98,143,187,86,125,101,201,238,201,105,2,129,97,112,168,174,22,211, -239,184,149,59,144,133,240,222,158,157,251,4,158,109,133,173,112,246,147,227,2,95,0,176,240,179,143,177,240,179,143,253,22,15,123,221,87,128,10,26,235,106,69,219,3,204,7,192,200,44,47,145,168,90,21,110,250,119,254,192,193,208,104,52,24,55,97,178,71,209, -21,203,151,226,206,233,247,97,197,178,37,184,104,216,197,184,225,154,43,145,154,150,6,141,70,131,87,223,124,215,85,206,106,181,132,221,247,104,52,26,60,61,231,113,0,64,94,126,31,252,185,101,19,190,254,114,33,178,179,115,113,215,61,247,249,184,193,7,14, -186,0,107,215,172,194,171,47,59,210,244,46,89,177,214,73,148,24,57,122,44,30,186,255,110,84,86,238,69,97,81,63,60,57,247,57,159,78,34,47,191,0,165,37,219,92,208,181,116,197,47,120,235,141,87,124,82,174,230,21,244,193,203,47,205,19,197,96,208,104,52,120, -234,137,89,0,28,222,170,45,155,127,199,87,95,44,68,118,78,46,238,190,119,6,126,248,254,27,215,222,24,206,244,190,83,167,77,199,208,139,71,184,224,172,174,182,22,175,180,214,111,209,146,149,80,107,52,176,90,44,152,56,233,18,92,62,121,28,104,154,70,105, -201,54,76,191,247,1,220,124,253,213,241,61,161,64,132,8,129,47,1,141,84,150,140,113,12,206,120,193,56,64,152,183,129,199,27,198,98,0,186,120,171,5,129,175,168,143,47,12,195,128,145,121,234,99,72,225,180,17,120,47,97,131,23,71,248,10,86,60,24,124,73,125, -98,197,239,26,48,178,230,129,72,116,172,137,255,111,239,236,131,162,186,242,188,255,229,237,182,73,184,108,34,157,153,162,153,173,116,83,181,128,85,65,83,65,168,21,100,35,49,35,134,17,145,199,228,73,38,235,70,215,25,204,240,4,55,174,68,39,16,77,200,38, -43,137,17,86,35,179,38,48,58,129,85,19,215,24,124,139,81,39,70,83,130,60,133,144,21,218,45,105,166,22,152,231,121,186,153,9,183,243,226,37,243,76,95,149,222,63,110,247,165,111,191,191,211,47,191,111,85,151,210,125,251,220,219,247,254,206,57,191,207,249, -157,243,59,162,254,99,224,42,140,70,35,186,142,201,33,231,63,181,67,72,79,79,199,223,44,41,197,117,237,32,248,169,155,226,139,231,177,105,227,47,60,238,106,239,75,157,187,110,51,125,78,16,76,208,13,223,0,32,238,39,162,80,40,28,142,127,48,111,62,122,175, -116,75,13,129,237,244,187,188,249,11,48,50,34,78,61,252,114,224,170,188,177,177,92,79,254,194,66,20,21,151,32,59,103,158,8,50,6,61,212,154,44,105,202,162,245,186,141,28,7,150,77,195,4,12,65,111,80,180,14,191,121,216,242,155,121,105,143,153,162,197,37, -210,251,0,48,50,124,3,43,42,171,36,0,251,210,38,170,101,228,38,193,178,105,208,104,178,96,48,232,165,231,163,29,26,132,82,169,140,138,78,210,219,182,176,184,248,161,128,206,229,205,166,190,116,142,248,59,135,217,108,142,88,7,34,18,234,164,108,10,151, -11,8,19,125,26,247,206,100,36,129,152,191,208,21,61,224,21,223,240,229,177,127,113,179,166,209,250,76,194,109,175,65,91,103,232,97,189,155,255,240,229,13,228,70,214,243,167,141,152,73,17,3,93,182,250,228,212,9,252,203,222,125,96,89,22,227,227,99,200, -80,169,240,225,225,127,19,63,59,125,2,219,27,223,192,182,250,45,210,241,191,61,247,41,118,239,125,23,93,199,142,34,149,101,241,251,241,49,57,232,248,97,206,38,193,228,83,61,248,253,248,40,178,115,114,241,197,165,11,0,0,181,102,102,23,245,17,221,176,180, -152,52,35,67,5,49,131,178,217,1,126,50,50,50,241,218,171,13,110,111,91,127,127,31,86,172,92,133,150,183,223,12,122,203,98,50,153,60,30,163,27,30,198,195,150,245,95,226,239,204,146,193,42,239,100,211,202,177,177,81,228,88,192,18,16,167,59,154,188,128, -229,72,233,36,73,164,136,178,189,56,183,73,241,190,88,214,128,217,56,169,50,8,179,163,46,111,65,204,170,112,57,184,129,192,150,223,230,16,4,240,10,23,124,197,122,228,87,150,84,198,69,52,215,221,116,218,80,218,106,208,215,25,134,20,190,130,55,245,112, -214,1,12,0,20,10,5,230,204,153,131,196,68,218,46,140,228,90,137,137,137,96,24,198,117,37,241,210,208,71,116,58,24,141,7,0,0,19,19,6,252,227,198,26,60,86,182,28,15,168,213,54,145,37,224,227,143,254,29,215,181,67,50,192,250,215,214,221,248,235,69,197,120, -48,111,1,38,38,244,24,31,31,133,217,12,108,171,223,2,142,227,124,110,16,125,119,186,205,184,116,241,2,222,249,85,27,4,193,132,140,12,21,210,211,103,34,60,95,92,188,128,250,151,95,197,249,179,103,240,240,194,2,8,130,35,232,12,244,247,161,110,75,61,94, -122,249,85,252,246,220,25,252,205,146,165,114,200,178,168,227,192,175,241,222,254,14,20,21,151,72,123,85,92,250,252,51,183,201,61,130,41,237,208,53,108,96,159,71,253,182,87,49,97,48,96,69,101,21,54,214,84,187,253,206,20,207,227,226,231,159,97,215,238, -86,124,217,223,135,21,43,171,208,182,175,149,42,15,137,68,240,21,192,253,16,33,204,154,144,67,6,97,46,60,87,47,246,180,117,235,16,250,227,236,6,3,178,130,98,6,94,126,41,160,140,118,240,125,202,97,188,194,151,253,111,119,23,205,117,103,183,193,132,177, -144,172,51,12,18,120,197,18,124,57,0,152,253,69,231,229,229,97,238,220,185,4,96,36,143,0,150,146,146,130,219,127,254,38,160,114,166,166,120,76,77,241,82,133,52,76,232,165,197,151,246,199,217,194,151,85,255,187,183,7,189,87,122,100,239,93,183,75,73,239, -109,227,63,162,27,70,199,111,102,192,173,229,237,183,96,176,100,237,51,26,57,180,188,253,22,0,51,70,116,55,36,72,154,152,48,224,239,159,253,41,150,45,47,199,64,255,113,116,252,230,215,82,52,232,240,161,78,92,233,185,140,69,197,37,104,125,167,5,44,155, -38,150,197,113,104,120,73,92,75,37,8,2,214,254,221,211,40,91,94,142,135,243,11,241,197,197,11,78,175,213,104,228,240,204,147,171,196,233,138,185,243,48,197,223,132,209,71,200,116,38,157,238,6,140,7,38,165,191,155,119,54,205,252,102,110,18,205,59,155, -164,235,172,219,84,139,162,226,18,168,84,153,216,88,83,45,101,52,236,56,208,14,206,38,3,100,243,206,38,24,57,177,204,215,94,105,192,162,226,197,200,155,255,16,26,182,110,118,200,170,24,53,14,48,137,52,123,70,25,247,80,234,56,101,203,118,255,36,239,33, -76,114,88,125,205,199,1,115,116,61,126,31,190,20,58,240,114,13,95,62,103,251,140,161,200,151,243,193,4,59,155,180,131,48,79,54,235,205,192,65,176,108,56,208,125,71,227,25,190,28,0,204,254,226,211,255,130,1,238,76,193,124,199,115,65,9,9,9,82,195,104,223, -64,186,91,67,225,235,90,51,90,155,22,57,14,164,84,254,29,224,182,27,27,249,225,15,210,241,199,175,140,33,235,212,252,253,153,238,238,143,21,6,37,32,27,25,150,174,84,16,76,24,25,185,33,29,55,243,153,248,247,199,31,29,113,122,142,241,241,49,9,58,172,235, -183,4,65,192,117,237,160,244,27,166,120,30,199,142,30,241,248,99,5,65,192,165,139,23,112,201,5,164,249,5,192,60,47,165,147,183,66,168,85,130,32,200,254,158,226,121,167,59,197,219,67,149,125,84,174,183,167,27,189,61,221,179,94,55,238,87,222,231,147,141, -80,187,67,154,245,182,156,6,4,60,180,219,114,7,214,1,194,92,120,174,225,218,82,41,236,204,29,68,240,138,8,248,138,65,251,119,28,80,48,75,3,9,178,237,21,124,92,215,24,234,129,131,64,193,43,92,240,21,233,74,246,182,66,121,114,64,156,101,40,154,153,215, -234,218,137,241,229,28,174,110,112,60,59,71,225,50,56,243,44,239,97,18,204,182,216,191,223,98,14,73,249,193,76,17,76,138,254,122,70,34,145,237,249,235,188,2,102,243,52,18,18,18,157,67,152,151,32,54,227,87,68,25,112,69,17,120,17,124,185,135,48,105,109, -163,151,145,220,112,216,106,56,54,240,14,54,124,69,114,244,203,35,128,249,3,74,182,176,101,15,94,158,70,147,125,133,49,111,26,128,104,135,179,217,234,124,131,125,222,31,220,63,23,127,156,52,198,44,116,17,120,69,143,188,141,126,145,72,4,94,145,125,63, -156,249,20,210,58,26,27,8,3,224,53,136,185,107,122,131,233,78,4,245,241,250,88,88,232,193,203,117,255,25,175,83,14,125,185,151,102,243,52,128,68,175,166,211,134,18,196,130,157,220,197,87,248,242,118,45,97,52,194,151,3,128,185,218,103,195,87,80,178,45, -199,29,136,121,11,99,129,128,148,47,157,88,168,97,45,18,59,212,80,93,147,179,114,127,120,127,58,0,248,4,98,113,9,93,4,94,17,1,94,222,182,135,36,18,41,188,253,149,99,228,203,246,125,235,166,182,242,245,52,78,83,119,251,232,185,70,84,179,28,2,232,242,182, -216,176,68,189,98,188,31,116,182,15,152,163,159,156,224,215,116,90,127,6,13,66,57,213,53,120,81,175,216,129,47,7,0,243,22,176,188,5,37,111,34,96,190,70,214,66,9,75,177,62,226,24,202,223,231,75,217,86,16,11,197,53,250,243,253,80,127,199,219,99,105,196, -59,254,234,13,137,68,10,94,157,156,241,49,224,18,194,0,184,6,49,95,60,214,8,7,174,240,131,151,107,248,114,247,189,120,155,114,104,127,95,156,13,38,88,7,18,92,174,105,244,97,240,32,100,183,50,132,123,200,121,51,229,48,218,225,203,37,128,5,2,62,246,64, -229,12,176,60,141,98,249,3,126,161,4,51,114,22,67,119,142,217,0,174,72,130,46,114,240,73,36,18,201,127,255,207,249,62,182,102,151,16,230,22,196,34,9,198,2,232,23,130,182,105,110,128,224,229,30,150,195,77,12,209,227,179,205,76,163,117,156,78,27,104,20, -55,92,54,233,79,212,43,158,224,203,1,192,124,221,89,218,91,72,242,148,156,195,19,140,249,2,86,180,30,44,178,207,25,140,242,34,21,186,8,188,104,48,131,68,34,133,174,62,58,143,24,56,247,63,157,65,152,253,113,110,65,204,149,3,55,235,11,109,2,135,174,217, -4,47,130,47,231,247,199,97,144,64,218,108,60,209,243,154,198,80,14,28,4,121,170,107,160,83,14,99,5,190,28,0,204,95,192,242,230,120,119,89,18,109,203,10,229,154,48,90,15,22,254,107,154,77,224,34,232,34,5,203,246,104,29,24,137,20,217,253,148,83,192,178, -131,48,103,142,174,87,32,22,161,142,93,40,160,43,80,240,242,230,25,197,51,120,57,14,18,120,74,47,239,195,154,70,87,247,51,196,11,193,2,77,234,18,143,240,229,20,192,2,129,30,127,146,107,216,31,239,237,57,67,157,142,222,28,71,139,63,35,177,236,88,130,46, -2,175,248,168,51,61,61,215,66,126,29,116,142,248,59,7,201,131,71,231,33,34,102,11,97,86,63,193,101,212,204,198,225,243,10,198,34,28,184,34,5,188,8,190,188,135,48,251,65,2,87,211,17,125,26,56,8,85,178,181,48,130,87,172,193,151,3,128,121,170,124,193,78, -206,97,251,89,168,214,133,197,227,200,117,52,238,13,22,110,224,10,7,168,17,116,81,61,34,145,72,33,174,143,30,64,204,234,208,137,31,39,200,28,94,183,235,200,236,156,192,112,3,89,56,247,202,244,174,173,163,233,134,161,178,103,105,163,117,151,209,48,179, -204,118,93,173,105,12,135,157,6,43,169,75,188,195,151,3,128,5,210,24,250,155,52,195,21,136,121,130,49,111,225,202,219,243,146,83,24,186,115,158,62,127,153,188,135,24,82,89,233,95,211,77,32,145,72,145,214,57,186,164,41,241,35,57,132,217,246,253,222,44, -159,113,229,120,6,226,240,6,10,89,179,9,93,222,148,65,240,229,199,3,116,58,144,224,56,128,16,174,40,110,176,167,185,250,186,133,129,87,224,21,165,54,149,28,60,187,241,31,142,252,73,210,225,239,57,35,5,106,226,13,238,238,82,40,144,152,152,72,55,57,138, -149,152,152,136,180,180,52,186,17,36,18,41,234,64,204,222,145,181,237,243,60,175,195,9,31,68,133,10,184,130,9,94,158,202,33,240,10,174,253,138,1,50,51,68,23,202,255,40,238,108,218,162,63,123,199,197,50,124,5,21,192,2,133,35,87,25,142,124,89,27,70,169, -233,103,31,54,157,149,159,148,144,0,133,66,129,228,228,100,122,0,81,172,4,203,115,36,145,72,145,35,181,90,131,159,174,121,22,191,31,31,195,225,131,157,1,149,181,110,125,214,212,104,90,0,0,22,38,73,68,65,84,53,174,244,92,198,136,110,24,155,183,212,227, -244,201,46,140,232,134,3,42,115,243,150,122,116,28,104,135,209,200,205,30,157,200,156,85,179,141,179,234,25,196,236,138,136,8,223,60,116,253,126,136,192,139,224,43,72,32,230,124,42,173,63,3,7,225,178,199,96,110,218,29,107,123,198,37,134,239,65,153,29, -94,158,142,115,246,183,171,227,124,61,183,183,223,141,70,192,10,215,239,141,135,251,73,34,145,72,145,172,250,237,141,24,232,191,138,254,171,125,1,151,245,128,90,3,150,21,163,220,57,185,185,210,255,3,81,78,110,46,152,217,30,184,177,174,177,193,76,52,97, -198,1,52,59,244,105,238,138,176,125,133,250,114,3,57,159,111,253,178,217,163,51,236,205,189,241,253,67,146,47,148,51,99,187,102,151,246,26,74,251,244,197,30,61,219,158,217,167,239,57,93,239,21,229,118,149,60,187,118,229,60,105,134,171,104,151,171,41, -137,129,36,223,136,164,212,244,129,92,91,60,92,7,137,68,34,145,102,148,161,202,132,90,147,5,35,199,193,96,208,3,0,210,211,149,80,107,178,160,211,221,192,20,207,75,199,90,223,31,31,27,149,69,163,172,239,27,185,73,135,242,25,5,131,252,133,133,0,128,129, -254,25,192,99,24,6,121,243,31,130,32,152,160,29,26,148,125,39,111,254,2,48,140,2,70,110,18,227,227,99,14,215,171,96,24,135,247,195,237,204,154,197,237,149,108,250,117,49,201,129,179,62,207,253,246,58,145,228,167,251,122,49,230,128,203,164,136,87,152, -33,76,90,251,229,121,42,173,179,71,224,139,11,27,186,104,107,124,71,189,108,149,24,121,118,54,51,210,50,61,61,45,189,236,169,216,151,72,90,176,162,51,158,162,75,193,126,205,214,125,15,230,117,16,188,145,72,36,82,104,84,81,89,5,5,163,64,126,65,33,88,54, -13,217,57,185,216,187,175,29,249,5,133,104,222,221,138,37,165,75,37,200,218,187,175,29,139,138,23,163,241,245,38,172,126,242,105,0,64,42,203,226,240,209,46,44,91,254,56,234,182,54,32,39,119,158,172,252,13,191,168,197,35,165,75,177,110,125,53,94,253,167, -29,210,251,181,47,212,33,191,160,16,63,46,43,199,123,251,59,108,222,223,140,250,109,141,200,47,40,68,209,226,18,89,89,217,57,185,104,222,221,10,147,32,68,134,175,49,109,118,17,13,243,127,182,205,108,246,217,222,67,151,25,222,36,215,240,52,213,144,34, -94,179,4,98,102,179,93,36,204,236,243,115,243,230,229,175,45,122,182,61,239,237,45,150,225,11,152,229,8,152,175,15,55,144,245,97,158,96,32,214,215,137,133,163,243,32,216,34,145,72,164,240,169,109,95,43,42,86,174,66,219,190,86,17,200,106,106,209,182,175, -21,151,46,94,128,90,173,65,221,214,6,92,186,120,1,107,215,87,227,216,209,35,56,118,244,67,164,178,44,222,63,40,254,191,168,184,4,231,62,61,131,150,183,155,0,0,167,62,253,76,86,254,111,207,157,145,214,149,125,116,226,12,24,134,129,32,8,210,241,0,112,238, -243,203,72,101,89,8,38,19,202,150,151,163,226,241,199,28,174,83,173,209,96,227,11,117,168,219,84,139,9,75,164,46,82,28,90,51,18,36,199,112,198,15,176,246,101,9,30,251,184,80,251,14,129,247,171,230,160,157,135,34,94,145,103,183,129,68,112,195,99,151,190, -111,95,16,235,224,21,85,0,230,9,196,236,141,204,159,70,50,146,167,34,70,26,236,16,104,145,72,36,82,228,105,81,209,98,44,42,90,140,159,174,121,22,0,96,228,196,169,134,170,204,76,44,44,40,196,178,229,143,91,222,23,167,27,62,152,183,0,191,27,153,73,178, -97,191,142,108,108,108,84,250,255,248,216,40,114,114,231,65,59,52,136,218,23,54,35,61,93,9,85,102,38,88,54,13,44,155,6,165,70,41,77,131,180,87,221,214,6,104,7,175,69,22,124,57,56,179,112,3,98,142,48,230,107,127,232,201,71,9,226,15,10,122,127,78,224,21, -45,16,230,121,208,192,31,255,53,216,211,91,125,78,228,18,163,54,150,28,157,118,231,251,222,94,193,28,185,138,7,0,33,200,34,145,72,164,232,146,118,104,16,191,27,25,198,169,19,93,178,247,175,15,13,226,250,208,32,222,63,208,46,123,255,119,35,195,120,64, -173,145,254,86,107,178,100,159,107,52,89,232,237,233,22,33,78,149,137,177,177,81,44,42,94,12,181,38,11,47,110,170,5,195,48,56,255,185,248,185,110,248,134,195,247,173,106,216,186,25,27,106,106,81,81,89,229,112,109,145,226,204,138,110,99,2,18,18,92,173, -169,241,12,99,179,211,167,154,67,114,45,158,151,242,144,143,16,73,16,54,99,175,230,160,12,24,132,194,22,105,235,130,24,0,48,79,15,211,93,34,15,95,12,49,86,167,37,206,70,42,122,18,137,68,34,133,86,167,79,118,97,199,206,22,176,44,11,131,94,15,70,161,192, -249,179,103,112,238,236,25,236,221,215,14,70,161,128,118,232,26,84,170,31,225,216,209,15,209,127,181,15,107,215,87,227,107,35,135,7,212,26,168,50,51,101,229,173,88,89,5,64,204,142,104,228,56,76,241,60,166,120,30,106,77,22,150,148,46,197,162,226,197,224, -249,155,0,0,65,16,112,165,251,50,118,188,213,140,129,254,171,16,4,147,4,91,60,207,163,113,123,61,222,63,120,4,218,193,107,179,151,132,195,107,135,22,50,16,115,15,99,254,67,89,168,65,203,159,62,153,192,43,58,33,204,106,175,190,68,111,195,101,147,4,94, -206,149,24,59,54,232,62,129,132,63,201,37,34,49,89,70,32,215,25,236,235,141,151,212,254,36,18,137,20,169,106,248,101,157,244,255,17,221,48,54,214,84,131,97,20,80,101,102,98,100,248,6,0,96,194,160,199,198,154,106,8,38,19,114,114,230,65,59,116,77,122,127, -221,154,167,96,50,9,56,127,246,83,172,91,243,52,116,58,241,59,205,59,155,176,177,166,26,60,207,99,68,167,67,221,166,231,1,136,81,182,166,215,27,145,157,59,15,31,28,236,196,198,154,106,105,74,227,107,175,52,160,109,95,43,88,150,133,110,120,166,28,35,55, -137,41,158,199,198,154,234,176,222,27,134,97,144,157,147,235,240,126,134,42,19,249,11,11,165,151,218,38,10,8,179,25,25,25,42,60,156,95,32,243,1,237,251,184,244,116,37,222,104,218,101,231,140,134,242,229,127,255,236,13,116,121,76,190,96,119,64,118,78, -174,252,190,217,221,247,188,249,11,92,22,101,205,172,233,76,235,214,87,99,81,241,98,170,216,190,66,152,121,38,77,189,227,51,15,220,158,124,45,195,239,173,11,226,40,137,75,114,108,218,162,119,201,54,130,181,113,115,44,67,7,1,21,137,68,34,69,174,236,211, -192,79,24,244,14,83,13,221,189,63,197,243,56,118,244,67,135,247,173,27,48,59,155,50,56,208,223,39,75,75,111,171,241,241,49,217,121,108,55,114,14,247,26,176,116,229,253,168,219,90,143,231,126,182,86,246,126,69,101,21,42,86,174,146,214,172,245,246,116, -227,253,3,237,200,80,101,98,199,91,205,80,101,102,194,160,215,35,39,119,30,26,95,105,192,249,179,103,100,41,188,205,102,51,82,152,20,228,229,45,136,218,126,218,187,237,193,28,15,90,182,188,28,13,219,26,193,25,57,40,24,6,0,80,183,169,86,122,206,235,214, -87,227,145,210,165,16,4,19,84,170,76,217,103,155,183,212,99,97,65,33,120,254,38,84,170,29,216,187,167,5,231,207,158,145,149,255,128,90,19,254,77,187,99,4,194,172,105,234,221,71,111,109,129,42,252,118,24,207,17,175,184,0,48,87,6,225,108,106,162,51,227, -140,135,169,137,148,21,145,68,242,77,10,133,2,115,230,204,65,98,98,34,221,12,82,200,148,152,152,8,198,226,216,146,66,167,83,39,143,75,217,35,173,170,219,90,143,47,46,94,144,0,50,67,149,137,182,253,29,24,31,253,47,140,140,232,108,124,0,199,126,46,59,39, -23,70,142,131,209,200,73,251,164,77,24,244,152,152,48,0,0,30,206,47,192,151,3,87,165,239,101,103,231,194,96,208,99,106,138,151,93,67,106,42,139,236,156,92,76,241,60,70,70,134,241,96,222,124,140,232,134,33,8,2,204,102,51,50,84,42,233,88,158,231,161,86, -103,65,161,96,48,208,127,85,86,142,90,173,65,186,82,105,137,96,14,123,239,223,186,57,48,61,93,137,198,215,155,240,220,207,158,149,192,127,217,242,114,52,239,110,197,234,202,114,8,130,128,21,149,85,120,230,201,85,16,236,182,27,216,188,165,30,44,203,226, -153,255,89,229,245,51,74,101,89,104,52,89,210,185,196,223,116,191,4,255,25,170,76,25,216,167,178,44,84,170,76,25,244,75,247,59,71,220,88,92,167,187,1,5,163,0,203,178,178,169,176,249,11,11,49,208,223,39,61,71,181,38,11,6,131,94,54,104,96,125,174,0,28, -246,217,139,24,8,3,100,211,104,157,249,193,17,3,93,113,10,94,113,3,96,238,12,197,85,26,123,79,70,234,47,88,204,134,225,19,100,145,72,193,81,94,94,30,230,206,157,75,0,70,10,57,128,165,164,164,224,251,239,254,64,55,35,140,74,101,89,148,62,250,24,26,183, -215,75,239,77,24,244,232,191,218,135,101,203,203,103,156,122,75,148,193,182,235,91,177,114,21,150,149,149,227,197,127,20,19,147,252,166,243,67,12,244,247,33,93,169,132,145,227,208,178,235,77,84,63,247,60,90,223,105,193,117,237,32,24,134,193,158,95,189, -135,39,170,126,34,235,67,179,115,114,81,255,242,171,232,189,210,141,140,140,76,124,112,184,19,63,94,246,56,30,204,91,128,15,14,137,219,1,188,250,90,19,90,223,105,65,81,177,152,241,210,96,208,131,231,121,212,191,220,136,39,170,126,34,93,207,134,231,106, -113,238,236,39,34,44,12,15,7,224,33,207,168,104,113,9,198,199,70,101,81,215,243,103,207,160,97,91,35,242,230,63,132,129,254,62,240,55,111,162,168,184,4,151,46,94,144,125,183,244,209,165,248,169,143,240,181,247,95,219,209,246,174,101,139,133,202,42,172, -88,185,10,3,253,87,81,183,181,30,117,155,106,161,214,104,240,204,223,174,197,198,255,37,78,109,125,226,201,167,145,202,178,14,0,182,107,119,43,198,199,70,33,8,2,30,41,93,138,142,3,237,216,187,175,93,218,50,97,81,241,98,60,243,183,107,49,208,223,135,182, -253,157,232,239,239,195,136,110,24,117,165,75,241,193,161,78,156,58,209,5,134,97,112,248,232,113,140,12,223,144,34,167,174,162,192,17,1,98,210,166,205,206,7,12,124,245,77,131,30,101,37,223,49,190,0,204,91,32,243,100,108,241,148,61,145,0,139,68,18,117, -111,106,18,166,133,239,48,29,193,215,232,174,109,138,134,200,125,32,237,77,44,181,85,2,85,183,144,171,98,229,42,228,47,44,0,0,156,62,121,28,227,99,163,24,27,27,117,136,106,92,215,14,225,193,188,249,46,29,199,31,151,149,99,217,178,114,212,109,170,133, -32,8,200,95,88,128,129,254,62,180,236,122,19,0,112,242,147,207,208,250,78,11,62,254,232,8,86,63,241,20,174,107,7,81,84,92,130,129,254,62,135,115,229,47,44,132,193,160,199,225,67,157,210,103,31,155,142,224,159,223,108,198,7,135,58,145,161,82,65,169,84, -90,202,88,12,35,199,225,229,151,94,132,217,12,236,253,85,27,30,124,112,1,180,218,65,172,168,168,194,134,159,63,139,9,131,33,168,14,112,134,42,83,90,63,104,43,237,208,32,84,153,153,24,232,7,154,222,104,68,221,214,122,108,168,169,197,222,61,205,232,237, -233,70,122,186,18,140,66,225,117,196,136,97,20,18,124,89,179,112,46,43,43,71,195,214,58,24,141,28,140,28,135,138,202,42,180,237,107,69,195,182,70,164,167,43,97,52,114,88,81,89,133,23,95,120,222,161,188,188,249,11,240,193,193,78,25,48,233,116,195,88,84, -188,24,189,61,221,168,88,89,133,83,39,197,169,182,108,90,26,218,246,181,98,68,55,140,222,158,203,88,187,190,26,167,78,116,33,191,160,16,218,193,107,120,237,149,134,104,113,222,100,3,6,51,253,128,119,109,167,117,29,159,201,36,224,186,118,208,205,179,154, -89,239,103,45,198,62,26,107,61,70,59,52,8,193,100,162,198,135,0,204,251,14,220,215,41,138,145,238,240,132,203,81,33,120,35,145,102,183,110,135,122,80,105,54,219,4,106,95,72,129,168,255,106,31,78,159,60,14,0,48,24,244,16,76,226,154,37,235,102,211,86,61, -160,214,128,119,6,14,102,128,101,89,212,109,121,9,173,123,90,164,239,228,47,44,196,162,226,18,188,155,51,79,42,251,1,117,22,46,126,254,25,106,255,97,51,82,89,22,63,46,123,92,58,183,173,142,29,253,16,10,70,129,247,59,63,196,149,158,203,104,125,167,5,227, -227,99,224,121,30,127,149,157,139,162,226,18,156,58,121,92,138,192,13,244,95,149,156,94,206,200,129,81,136,83,87,213,26,141,35,124,5,161,190,140,143,141,74,208,106,43,181,70,3,206,146,136,101,68,55,140,231,126,182,22,217,57,185,104,124,93,220,176,187, -183,167,27,10,70,225,245,121,214,173,255,57,120,158,199,128,101,95,58,171,3,191,99,103,243,12,64,89,162,122,199,142,30,65,69,101,149,20,125,115,150,97,243,197,77,181,88,187,190,26,181,47,108,70,235,158,22,12,244,247,225,216,209,15,81,177,178,10,218,161, -65,228,23,20,74,145,79,254,230,77,41,130,198,113,28,88,150,5,0,44,42,42,145,237,153,23,69,157,130,140,188,236,205,192,85,211,159,174,84,98,87,75,43,116,186,97,40,149,74,140,143,141,162,241,213,6,25,68,155,205,192,220,116,37,222,249,85,187,44,42,250,220, -207,197,53,151,169,44,139,166,55,155,197,141,218,45,107,2,143,29,61,226,116,45,170,47,178,130,51,1,24,129,89,220,58,8,228,0,145,72,209,11,100,209,82,151,169,157,33,133,66,19,19,6,135,41,100,227,99,163,210,84,58,171,138,22,151,160,117,119,179,211,50,76, -130,9,207,60,89,133,247,14,116,74,233,245,181,67,215,144,161,202,116,26,41,57,119,246,19,44,43,43,71,94,222,67,104,248,229,139,142,229,153,4,252,230,64,59,14,29,236,64,253,182,70,172,126,226,105,28,62,212,137,15,14,117,98,89,217,227,88,242,232,99,178, -132,34,214,45,0,236,101,228,56,100,100,168,130,158,244,100,224,106,31,26,182,53,202,32,53,67,149,137,116,229,253,24,177,155,230,56,162,27,198,165,139,23,144,147,51,15,189,61,221,24,27,27,197,146,210,165,14,83,19,157,201,58,221,178,126,91,35,94,123,165, -65,58,87,227,246,6,135,223,116,234,68,23,118,236,20,157,124,103,80,11,136,17,186,23,55,213,34,59,39,23,123,247,181,163,236,209,18,244,246,116,163,110,107,3,202,150,255,4,151,62,255,76,58,135,171,123,122,93,59,136,69,69,81,156,157,209,69,24,204,85,243, -106,54,139,81,66,43,76,109,222,242,18,42,42,170,112,216,242,108,236,237,205,122,156,85,76,74,10,218,126,221,129,247,15,180,59,36,90,113,38,107,132,44,127,97,33,198,199,70,97,52,114,200,80,101,66,165,202,148,173,197,91,82,186,20,171,159,124,26,130,73, -144,214,225,165,178,44,114,114,230,73,223,35,0,139,99,48,243,22,208,200,225,33,145,72,145,80,183,103,187,173,162,54,135,20,42,169,84,153,216,80,83,43,253,109,159,120,195,86,205,59,155,208,248,250,14,28,59,122,4,6,131,30,21,43,171,112,165,251,178,75,104, -16,76,38,24,141,28,94,219,94,143,29,59,91,176,110,205,83,24,184,218,135,186,173,13,168,127,249,21,156,63,251,41,30,41,93,138,150,183,155,44,96,241,111,56,252,239,31,227,216,209,35,78,203,91,82,186,84,114,56,213,26,141,4,34,87,122,46,99,195,47,158,119, -238,96,90,235,142,217,108,201,14,110,198,233,147,93,104,124,125,7,78,159,60,14,150,101,113,248,96,103,80,238,165,209,200,161,237,221,86,188,183,191,19,167,79,30,135,66,193,96,197,202,42,52,110,175,135,209,200,33,59,39,23,43,86,86,225,186,118,16,42,85, -38,86,63,249,20,158,121,82,92,247,213,186,167,5,205,187,91,161,29,26,132,214,50,165,237,212,137,46,167,144,200,243,60,78,157,232,194,174,221,173,210,230,221,109,239,182,162,121,119,171,116,79,172,107,209,140,70,14,60,207,163,108,121,57,86,87,150,59,189, -238,205,91,234,241,101,127,31,212,54,9,61,0,224,244,137,46,108,168,121,222,171,237,17,46,125,254,25,54,212,212,98,67,77,45,166,248,155,232,191,218,231,52,217,71,52,195,152,59,125,109,52,202,54,109,119,91,38,196,77,221,89,150,245,10,190,0,96,199,91,205, -208,14,13,130,227,56,9,130,55,190,176,25,227,227,99,216,176,176,0,167,79,30,199,169,19,93,120,164,116,41,210,149,74,228,23,136,211,117,21,140,2,123,247,181,227,74,207,101,172,91,95,141,75,23,47,56,205,234,74,0,70,206,78,80,228,42,155,35,137,68,34,133, -187,173,162,246,136,20,169,50,114,147,104,220,238,24,137,114,150,90,31,16,147,42,172,91,243,52,138,22,151,64,173,201,66,219,187,173,14,105,254,109,203,182,238,193,166,29,26,68,227,246,122,176,108,26,140,70,14,235,214,60,133,178,229,63,65,126,65,33,122, -175,92,150,125,71,48,89,54,168,118,82,103,116,195,55,192,48,12,84,42,21,154,94,111,148,28,124,193,100,194,248,216,168,232,204,90,190,119,234,68,151,108,61,77,199,129,118,112,22,56,59,124,176,19,23,63,191,128,178,229,229,46,175,223,95,29,62,216,137,43, -221,151,81,180,184,4,38,147,128,134,173,155,165,105,127,6,131,30,95,92,188,128,188,249,11,96,48,232,177,186,178,92,154,178,54,208,223,135,213,149,229,200,47,40,132,90,147,133,9,131,222,105,180,169,227,64,187,52,229,179,113,123,61,52,154,44,233,188,218, -161,65,44,42,46,193,132,65,15,131,126,6,220,122,123,186,193,223,188,233,144,121,209,42,235,53,141,143,141,226,35,27,231,124,160,223,46,193,10,228,251,234,25,185,73,52,239,20,225,89,16,4,60,81,89,142,101,203,203,197,231,204,197,72,170,124,151,33,48,64, -165,82,97,195,47,158,7,195,48,168,168,172,194,139,155,106,29,143,55,139,211,21,223,219,223,97,185,103,28,26,126,89,135,188,249,15,225,74,207,140,237,63,179,230,89,164,178,105,152,48,232,93,214,191,222,43,221,178,207,172,207,34,59,39,23,27,106,106,113, -234,68,151,20,229,180,14,164,84,84,86,225,244,201,46,28,62,216,137,84,150,69,219,254,78,2,48,82,244,129,29,137,68,34,81,123,68,138,21,9,130,224,52,83,157,187,169,121,70,35,231,210,65,180,47,219,22,110,108,157,120,87,123,171,45,179,0,145,171,243,79,216, -165,61,183,74,173,214,64,173,201,146,57,180,246,199,217,175,125,114,181,239,91,48,52,62,62,230,116,173,213,20,207,187,221,35,206,104,228,60,70,68,108,203,157,226,121,217,61,214,14,13,58,0,37,195,48,88,177,114,21,154,222,104,116,89,166,171,107,250,31, -79,60,229,112,143,108,203,23,4,193,33,202,229,109,68,39,102,234,144,201,132,222,158,203,104,221,211,226,118,160,195,126,175,61,35,55,137,236,149,171,100,247,53,111,254,2,172,88,185,202,101,253,58,247,233,39,50,155,183,70,174,51,84,153,16,4,231,201,59, -30,206,47,64,78,238,60,60,82,186,20,128,235,41,164,4,96,36,18,137,68,34,145,72,1,42,49,41,17,211,119,166,163,230,122,223,219,223,1,35,199,73,17,21,111,181,121,139,24,5,106,122,163,209,101,132,39,94,101,77,77,255,241,71,71,124,154,14,152,157,147,139,186, -173,245,232,237,233,14,13,80,37,196,134,61,27,2,128,120,237,208,32,114,114,231,33,67,149,137,9,131,30,218,161,65,48,140,66,2,37,87,131,26,86,109,168,169,197,165,139,23,112,254,236,25,228,47,44,196,134,154,153,236,150,10,197,76,66,23,158,231,113,233,226, -5,183,83,139,103,93,9,238,1,204,140,80,108,139,77,34,145,72,209,37,179,221,191,36,18,41,2,235,99,74,74,50,76,119,162,7,72,236,35,4,222,202,186,126,140,228,168,83,39,186,188,138,86,218,203,154,169,49,84,74,73,78,142,121,123,182,21,203,166,57,172,179,52, -26,57,52,110,175,71,219,254,14,156,58,121,28,218,161,107,88,86,86,238,117,153,28,199,33,127,97,1,20,10,5,30,206,47,176,1,187,107,216,177,179,25,75,74,151,66,59,52,136,15,14,117,162,109,127,7,24,134,193,64,127,31,84,170,31,69,220,20,68,87,246,144,108, -3,95,211,84,157,73,161,144,66,161,192,156,57,115,104,3,219,40,87,98,98,34,24,134,137,229,159,120,199,210,14,38,80,123,72,138,52,221,175,188,15,147,220,55,49,251,219,124,173,143,76,114,50,76,180,99,26,41,2,149,146,146,28,245,246,108,187,254,205,211,113, -117,155,106,157,126,118,254,236,25,104,135,196,125,239,242,230,63,132,47,7,174,74,73,84,236,101,187,246,14,0,90,247,52,99,201,163,143,65,169,84,162,249,237,38,40,211,149,0,196,40,217,115,235,159,197,146,71,31,131,78,55,140,9,131,30,235,214,60,141,178, -199,203,145,147,51,79,54,77,55,194,237,97,218,10,96,119,0,220,166,106,67,10,133,242,242,242,48,119,238,92,2,176,24,0,176,148,148,20,124,255,221,31,98,245,39,78,91,94,102,106,15,73,164,200,174,143,115,230,40,240,103,147,128,91,183,168,170,146,34,71,73, -73,73,184,251,174,57,81,111,207,206,214,191,185,58,206,213,154,63,64,92,139,232,77,68,202,126,109,159,32,8,178,233,161,182,251,143,141,143,143,201,166,70,26,141,92,208,50,125,134,209,30,238,36,219,192,151,160,215,27,190,85,42,211,239,165,42,68,10,166, -238,77,77,194,180,240,29,133,20,98,64,177,58,222,60,49,49,113,27,128,9,192,45,75,7,105,162,246,144,20,105,138,197,40,152,179,232,151,183,245,49,53,245,110,240,252,159,112,251,54,65,24,41,50,156,237,52,246,110,135,109,61,200,158,201,30,156,216,131,144, -104,1,48,19,128,239,191,249,246,187,255,74,74,74,162,187,70,34,145,226,7,42,5,1,9,137,73,255,23,192,255,7,240,103,203,191,212,30,146,34,22,88,92,76,217,139,137,223,225,75,125,76,78,74,194,125,247,178,184,231,158,187,144,156,76,57,197,72,179,163,228,228, -36,220,117,215,28,220,119,47,235,96,135,100,207,100,15,174,236,33,25,98,244,235,207,0,248,164,20,230,250,228,228,100,254,220,185,115,233,14,146,72,164,184,145,25,137,55,0,124,7,224,123,136,35,148,55,169,61,36,69,58,192,80,125,20,117,247,93,115,92,77, -243,33,145,200,158,73,145,104,15,124,18,0,235,43,229,235,111,110,126,165,72,73,40,184,115,231,246,125,247,220,115,15,221,37,18,137,20,243,250,242,203,255,152,156,252,246,79,187,166,167,167,245,0,190,133,56,35,32,225,235,111,110,254,145,218,67,18,137, -234,35,137,68,246,76,10,150,61,124,245,205,247,187,166,167,167,255,95,18,128,68,136,89,89,18,0,36,48,140,226,15,119,110,11,185,211,119,238,252,197,183,223,126,139,180,180,52,186,99,36,18,41,230,164,215,235,161,211,141,76,38,207,73,221,195,79,253,105, -8,192,87,0,166,44,29,228,52,181,135,36,18,213,71,18,137,236,153,20,2,123,152,76,128,37,250,5,224,30,0,247,1,248,33,128,12,245,143,126,176,230,206,109,225,225,91,130,233,47,111,221,186,69,119,143,68,34,197,140,146,146,83,38,82,24,197,245,175,190,158,234, -188,117,235,246,255,1,240,71,0,95,3,248,19,196,41,34,119,81,123,72,34,81,125,36,145,200,158,73,161,176,7,107,228,43,9,0,3,224,110,0,172,197,48,238,5,144,102,121,143,177,28,147,64,183,146,68,34,69,169,172,91,110,8,16,23,66,243,16,167,132,124,3,224,166, -165,115,52,89,142,165,246,144,68,162,250,72,34,145,61,147,66,98,15,214,7,108,27,9,83,88,232,252,46,0,115,44,127,39,67,156,170,8,50,10,18,137,20,197,13,226,52,44,219,110,96,38,35,149,53,59,213,45,204,236,211,66,237,33,137,68,245,145,68,34,123,38,133,196, -30,254,27,85,172,246,247,12,176,42,230,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; +static const unsigned char temp_binary_data_13[] = +{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,3,96,0,0,0,144,8,6,0,0,0,110,232,8,32,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,4,103,65,77,65,0,0,177,143,11,252,97,5,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,67,75,73,68,65, +84,120,94,237,157,9,152,36,85,149,239,25,71,7,26,92,112,235,215,44,190,65,6,121,46,131,11,208,128,52,34,52,116,45,93,221,244,66,131,208,208,236,32,139,200,38,251,14,54,139,130,32,32,139,195,174,192,115,97,20,7,25,70,6,29,65,118,81,92,16,70,133,39,155, +172,202,34,155,58,51,247,197,47,168,211,117,234,214,201,234,140,170,172,172,204,172,127,124,223,239,203,200,27,247,156,184,247,198,137,136,251,207,123,35,114,153,254,229,111,10,254,182,96,217,130,55,21,188,179,224,93,5,107,22,172,85,176,118,193,212,130, +245,11,54,16,66,136,54,131,107,23,215,48,174,101,92,211,184,182,253,239,130,201,5,111,46,88,174,128,107,32,215,66,93,15,133,24,91,116,62,138,78,66,241,44,60,245,198,195,146,96,32,97,197,130,85,11,62,80,176,97,65,79,193,150,5,219,21,236,84,176,107,193, +110,66,8,209,102,112,237,226,26,182,125,193,130,130,222,130,141,10,184,56,114,97,124,91,193,164,2,174,133,186,30,10,49,182,232,124,20,157,132,226,89,120,234,141,135,101,94,87,128,18,39,24,86,43,88,183,160,239,31,86,91,245,196,174,77,167,221,184,195,182, +243,254,223,81,135,236,155,14,59,112,47,33,132,104,107,14,218,119,183,180,205,150,125,191,235,218,116,195,155,222,183,230,187,207,40,174,117,91,20,172,87,176,122,129,93,20,65,215,67,33,198,24,157,143,162,147,80,60,11,79,29,241,176,204,27,10,24,6,101, +8,116,221,55,174,48,105,251,158,205,55,190,129,32,216,113,219,185,37,221,155,110,32,132,16,29,129,93,215,184,56,206,236,218,248,206,21,150,159,180,99,113,237,99,202,192,223,23,188,189,224,173,5,186,30,10,209,4,116,62,138,78,66,241,44,60,75,137,135,114, +40,148,57,168,255,88,48,107,78,223,230,183,236,186,104,65,232,72,8,33,58,137,133,11,250,210,150,91,116,223,95,92,251,230,22,124,184,128,233,1,220,28,63,88,160,235,161,16,77,68,231,163,232,36,20,207,194,147,197,195,135,10,150,121,99,1,65,49,109,141,119, +191,235,212,79,238,188,77,104,40,132,16,157,200,214,115,187,211,90,239,95,227,210,226,26,56,189,224,253,5,239,43,216,248,31,86,91,85,215,67,33,154,140,206,71,209,73,40,158,133,199,197,195,199,11,202,185,168,188,161,163,183,175,123,147,155,102,110,62, +45,52,18,162,19,88,123,173,255,35,38,40,81,60,192,166,211,214,78,115,251,54,191,183,184,6,242,171,20,243,179,121,123,209,236,153,93,31,215,245,80,180,44,81,140,183,19,81,157,96,36,231,227,244,141,214,77,211,214,251,80,90,127,237,15,132,251,18,98,172, +32,230,166,173,247,193,34,110,215,9,99,83,241,60,177,168,16,15,179,11,150,121,71,1,111,230,88,176,245,188,222,199,35,3,33,218,157,232,68,17,19,147,40,62,230,207,218,236,149,226,26,200,219,167,248,85,106,227,130,109,182,154,219,163,235,161,104,57,162, +152,110,103,162,58,214,123,62,206,248,248,250,101,71,53,242,43,68,179,249,232,212,181,202,152,204,227,84,241,60,49,89,74,60,124,162,160,124,47,61,239,170,223,126,139,158,143,15,201,40,68,187,19,157,24,98,98,147,199,200,199,214,255,96,42,174,129,188,58, +118,70,193,230,5,59,207,238,222,120,72,62,33,198,147,40,150,59,129,188,158,245,158,143,27,78,253,96,232,79,136,241,98,253,117,254,113,72,156,42,158,39,46,195,196,195,14,5,203,76,41,96,72,116,103,9,48,209,137,68,39,133,152,216,228,49,210,127,65,220,163, +128,255,98,129,61,36,192,68,171,17,197,114,39,144,215,179,158,243,113,211,141,214,9,125,9,49,222,124,252,163,31,25,20,171,138,231,137,77,141,120,216,165,96,153,149,10,120,37,226,174,18,96,162,211,136,78,6,33,192,199,73,255,5,113,175,130,153,253,236,41, +1,38,90,137,40,134,59,9,95,215,122,206,71,158,179,136,252,8,49,222,108,176,238,224,81,143,177,136,231,194,135,24,71,162,99,82,139,26,241,192,31,54,151,2,108,3,190,72,128,137,78,35,58,25,132,0,31,39,238,6,217,215,207,94,18,96,162,149,136,98,184,147,240, +117,173,231,124,92,239,35,239,15,253,140,37,107,189,239,31,210,219,86,124,243,146,78,216,88,243,214,183,188,41,189,239,61,171,133,101,17,173,203,58,31,122,239,160,88,29,139,120,38,62,38,45,187,108,90,97,210,36,209,68,222,180,194,10,105,149,149,86,10, +143,73,45,106,196,131,4,152,232,108,162,147,65,8,240,113,34,1,38,90,157,40,134,59,9,95,215,122,206,199,200,199,88,243,150,55,191,177,236,248,46,247,119,127,23,118,206,26,201,242,203,45,247,90,39,123,185,101,195,178,136,214,198,199,234,88,196,243,223, +254,205,223,164,21,223,252,230,244,142,183,189,77,52,145,119,190,253,237,105,245,213,170,255,40,226,143,181,4,152,152,16,68,39,130,16,224,227,68,2,76,180,58,81,12,119,18,190,174,173,42,192,138,114,164,55,46,191,124,122,219,138,43,134,157,179,70,194,62, +96,202,228,201,97,89,68,107,227,99,85,2,172,115,144,0,19,162,78,162,19,65,8,240,113,34,1,38,90,157,40,134,59,9,95,215,86,21,96,175,43,4,88,179,59,189,239,254,251,191,15,203,34,90,27,31,171,18,96,157,67,91,10,176,190,25,27,165,163,15,63,40,157,125,230, +231,135,176,248,248,35,211,188,190,233,161,157,24,204,126,251,236,22,182,225,105,167,156,152,22,110,53,43,180,153,200,68,39,130,16,224,227,68,2,76,180,58,81,12,119,18,190,174,173,42,192,154,221,233,29,105,103,79,140,63,62,86,37,192,58,135,182,20,96,243, +102,109,150,110,254,225,15,210,203,47,191,60,132,123,127,249,243,180,227,194,249,161,157,24,160,119,179,105,233,138,203,47,14,219,240,177,71,31,73,159,217,111,207,208,110,34,19,157,8,66,128,143,19,9,48,209,234,68,49,220,73,248,186,74,128,189,134,4,88, +251,226,99,85,2,172,115,104,91,1,118,199,109,183,164,104,249,237,111,254,51,237,180,112,203,208,78,12,128,0,251,218,149,151,167,255,254,239,255,238,111,185,129,229,153,103,158,78,7,239,191,87,104,55,145,137,78,4,33,192,199,137,4,152,104,117,162,24,238, +36,124,93,37,192,94,67,2,172,125,241,177,42,1,214,57,72,128,77,80,36,192,170,19,157,8,66,128,143,19,9,48,209,234,68,49,220,73,248,186,74,128,189,134,4,88,251,226,99,85,2,172,115,144,0,155,160,72,128,85,39,58,17,132,0,31,39,18,96,162,213,137,98,184,147, +240,117,149,0,123,13,9,176,246,197,199,170,4,88,231,32,1,54,65,145,0,171,78,116,34,8,1,62,78,36,192,68,171,19,197,112,39,225,235,42,1,246,26,18,96,237,139,143,85,9,176,206,65,2,108,130,34,1,86,157,232,68,16,2,124,156,72,128,137,86,39,138,225,78,194,215, +85,2,236,53,36,192,218,23,31,171,18,96,157,131,4,216,4,69,2,172,58,209,137,32,4,248,56,169,231,6,89,164,9,209,52,124,236,65,20,195,157,132,175,171,4,216,107,72,128,181,47,62,86,37,192,58,135,182,21,96,183,223,246,163,126,185,48,120,145,0,171,15,4,216, +85,87,92,42,1,86,129,232,68,16,2,124,156,212,43,192,38,45,187,108,90,97,210,36,33,198,140,55,173,176,66,90,101,165,149,6,197,30,68,49,220,73,248,186,74,128,189,134,4,88,251,226,99,85,2,172,115,104,57,1,182,245,220,158,180,247,30,59,164,35,15,217,63,29, +119,212,33,233,240,131,247,75,123,237,182,40,45,152,211,181,36,207,220,153,211,211,205,55,253,160,95,46,12,94,150,38,192,182,220,98,70,218,125,167,109,211,193,7,236,157,142,57,226,51,229,62,142,56,100,191,180,239,94,59,167,237,182,222,34,205,234,122, +45,144,187,54,89,63,117,117,109,84,155,233,31,29,226,59,167,107,122,65,100,107,244,231,235,221,108,195,178,222,159,220,101,97,58,244,192,79,165,99,143,60,56,29,127,244,107,117,255,212,39,119,74,11,23,204,42,202,245,177,33,254,107,129,64,197,215,97,159, +217,183,172,223,81,135,30,80,214,111,155,45,251,82,79,127,185,17,96,151,95,242,101,9,176,10,68,39,130,16,224,227,164,158,27,164,110,120,162,25,216,13,222,199,30,68,49,220,73,248,186,74,128,189,134,4,88,251,226,99,85,2,172,115,104,25,1,198,159,39,159, +127,206,25,233,238,187,238,72,79,62,241,120,122,241,79,127,74,47,189,244,98,122,225,133,231,211,227,191,127,44,221,126,235,205,233,172,47,156,154,182,219,106,118,41,146,174,191,238,59,161,120,136,4,24,98,227,211,123,237,146,46,185,240,188,116,215,157, +183,165,71,31,125,56,61,247,236,179,233,197,23,7,246,241,244,83,79,166,251,239,187,55,125,247,95,190,149,62,123,220,17,105,171,133,243,82,207,65,123,167,158,19,142,24,66,239,9,135,165,238,79,238,48,172,8,43,5,220,142,91,167,158,227,14,13,125,116,31,121, +64,154,185,85,95,58,240,211,159,76,95,189,236,194,244,147,187,239,76,191,127,236,209,244,252,115,207,13,42,215,83,79,62,153,238,187,247,151,233,154,111,125,163,20,83,91,206,158,17,238,15,16,169,159,63,249,248,116,243,15,191,95,214,241,249,231,159,43, +253,208,150,248,249,217,61,119,167,139,255,233,220,66,128,110,83,10,177,243,206,249,66,250,175,255,250,175,254,150,27,88,36,192,98,162,19,65,8,240,113,34,1,38,90,5,9,48,9,48,67,2,172,125,241,177,42,1,214,57,180,132,0,251,204,126,123,166,31,221,244,131, +244,242,75,47,133,162,138,5,161,128,144,248,247,239,253,107,218,127,159,221,211,85,95,141,167,207,229,2,108,225,86,179,210,69,95,254,82,250,127,15,62,144,94,125,245,149,210,166,214,62,72,255,235,95,255,154,158,125,246,143,229,126,14,62,255,172,212,247, +229,179,210,172,139,206,25,66,239,233,139,83,247,39,182,24,84,143,65,204,237,78,51,23,31,157,250,46,57,55,180,223,185,176,255,202,87,46,73,143,60,252,80,81,174,87,107,150,137,229,181,114,253,37,253,225,153,103,210,117,215,94,83,138,201,124,127,136,170, +107,175,249,231,178,236,180,85,228,143,180,87,94,121,165,20,185,71,31,126,96,58,249,196,163,203,125,231,139,4,88,76,116,34,8,1,62,78,36,192,68,171,32,1,38,1,102,72,128,181,47,62,86,37,192,58,135,113,23,96,251,237,179,91,57,250,19,141,196,68,203,159,255, +252,231,116,235,143,126,152,190,243,173,111,164,191,252,229,47,253,169,3,139,23,96,59,111,191,32,93,251,157,127,78,127,42,132,91,213,133,242,252,234,183,191,73,199,92,251,205,52,187,16,76,91,92,122,222,32,16,81,61,135,31,144,186,250,167,44,122,186,54, +219,48,245,236,191,71,154,121,193,89,161,221,94,87,94,156,110,184,243,214,244,242,203,47,15,43,188,162,133,58,211,94,76,85,180,253,81,223,27,254,237,186,80,76,69,11,62,24,237,67,196,62,247,220,179,253,169,3,139,4,88,76,116,34,8,1,62,78,36,192,68,171, +32,1,38,1,102,72,128,181,47,62,86,37,192,58,135,113,21,96,140,78,49,210,196,168,83,149,5,17,198,20,59,70,133,242,197,4,216,54,243,103,150,211,246,16,57,209,130,240,65,136,224,171,214,254,255,167,224,206,223,61,152,118,251,230,87,75,225,148,139,169,190, +115,79,79,221,187,108,59,180,110,11,231,165,89,95,60,105,72,126,124,236,116,213,197,233,198,95,253,34,253,165,134,224,164,44,86,174,72,96,178,32,14,127,124,231,237,105,239,221,119,72,115,122,55,77,87,92,126,81,205,122,214,90,216,15,109,248,74,32,2,37, +192,98,162,19,65,8,240,113,34,1,38,90,5,9,48,9,48,67,2,172,125,241,177,42,1,214,57,140,171,0,251,194,231,23,151,207,98,213,90,16,88,60,199,244,212,83,79,166,63,254,241,15,75,166,16,178,212,26,57,66,128,237,186,195,39,210,57,103,126,62,61,251,199,63,246, +167,14,94,158,126,250,169,114,202,35,35,64,151,93,124,65,57,117,239,190,95,253,50,28,65,122,181,16,65,87,221,125,71,90,112,217,249,161,160,234,89,124,84,234,218,98,224,185,172,174,162,222,61,71,127,38,205,188,240,236,33,249,231,21,92,122,215,109,233, +229,96,63,212,135,103,223,126,248,131,127,47,4,213,197,101,185,174,187,246,219,69,125,126,29,10,68,4,218,213,95,191,170,124,46,236,225,135,126,215,159,58,116,65,172,49,2,136,168,250,227,31,158,25,52,205,179,86,27,74,128,197,68,39,130,16,224,227,68,2, +76,180,10,18,96,173,43,192,94,255,186,215,165,183,190,229,45,225,113,27,11,36,192,218,23,31,171,18,96,157,195,184,10,176,91,110,254,143,154,34,0,97,134,0,57,233,132,163,210,33,7,236,83,190,177,144,23,72,252,242,23,247,212,28,25,98,65,128,241,22,193,95, +252,252,158,254,148,129,133,125,61,250,200,195,233,244,83,63,155,182,158,215,155,102,110,62,173,124,3,33,193,187,207,39,119,44,95,192,129,200,203,151,199,10,241,119,196,119,174,46,159,231,202,69,213,172,139,206,74,61,251,237,158,186,54,253,104,249,226, +141,238,61,22,165,153,231,157,25,228,59,39,237,127,245,149,233,129,66,76,230,11,229,250,245,127,222,87,62,147,181,213,156,238,242,165,33,148,107,139,222,77,202,231,189,110,188,225,250,82,140,230,203,147,79,62,145,126,126,207,79,66,129,198,130,216,186, +249,135,63,72,167,127,238,179,233,176,131,246,45,223,44,249,165,47,158,150,110,187,229,230,114,91,173,69,2,44,38,58,17,132,0,31,39,18,96,162,85,144,0,107,93,1,246,198,229,151,79,111,91,113,197,240,184,141,5,196,194,26,171,175,30,150,69,180,54,62,86,37, +192,58,135,113,21,96,191,249,245,253,253,93,254,193,11,211,233,120,99,33,175,140,247,249,17,37,188,78,253,214,31,221,84,243,153,177,7,126,251,155,114,100,136,183,255,229,11,35,92,231,127,233,204,82,224,120,191,6,35,103,119,221,113,235,16,81,200,190,174, +46,196,226,188,115,79,31,50,21,145,239,189,103,158,146,186,183,153,147,186,230,23,162,238,115,199,13,201,3,115,11,81,118,217,141,223,11,133,20,111,62,100,52,16,65,24,149,107,207,93,183,79,191,186,247,23,67,202,197,247,90,98,148,253,240,252,91,254,70, +72,216,105,187,45,203,233,153,81,89,88,36,192,98,162,19,65,8,240,113,34,1,38,90,5,9,176,214,21,96,239,89,253,221,233,93,171,172,146,86,158,50,165,41,252,253,187,222,149,54,88,111,106,88,22,209,218,248,88,149,0,235,28,198,85,128,33,150,242,5,81,193,168, +205,214,243,122,66,27,56,230,240,131,210,51,79,63,213,111,49,120,121,226,241,223,167,95,223,127,95,40,86,16,124,59,108,59,47,244,9,8,188,115,207,254,66,56,21,241,167,63,251,105,218,238,184,195,211,204,47,127,113,136,184,234,187,248,220,114,218,97,207, +161,251,165,190,139,134,78,61,196,102,225,73,71,167,59,127,122,119,191,183,129,133,114,221,253,227,59,202,215,235,71,101,50,46,189,232,252,97,71,254,242,133,186,238,181,251,162,208,23,240,63,97,180,83,180,72,128,197,68,39,130,16,224,227,68,2,76,180,10, +18,96,173,43,192,214,122,223,26,165,32,234,233,234,74,125,189,189,99,206,204,158,238,180,246,135,62,16,150,69,180,54,62,86,37,192,58,135,150,19,96,136,159,51,62,127,82,152,223,96,154,222,29,183,221,50,68,100,177,48,122,22,141,126,49,138,245,189,235,191, +155,250,102,108,20,250,52,16,30,60,43,149,47,76,93,220,179,216,214,115,252,161,133,224,250,210,80,145,117,225,217,133,208,138,223,122,216,123,202,177,233,83,135,31,88,254,159,89,190,80,174,111,126,253,202,37,127,0,93,11,166,85,214,251,54,71,218,229,27, +255,247,171,195,214,149,109,140,20,70,109,40,1,22,19,157,8,66,128,143,19,9,48,209,42,72,128,181,174,0,19,162,94,124,172,74,128,117,14,45,37,192,16,3,188,136,130,41,119,81,126,131,169,122,95,191,234,43,161,120,32,45,74,71,232,32,218,62,127,242,241,233, +115,39,29,87,147,175,92,250,79,233,15,133,0,201,23,94,220,81,138,146,237,231,167,190,51,79,9,167,25,70,244,157,115,122,234,217,117,97,58,254,232,67,67,1,197,168,214,127,124,255,134,116,218,41,39,134,229,49,174,186,226,210,242,127,208,234,89,94,122,233, +165,180,248,248,35,195,182,243,156,118,202,9,229,203,60,242,69,2,44,38,58,17,132,0,31,39,18,96,162,85,144,0,147,0,19,237,143,143,85,9,176,206,161,229,4,24,211,226,120,133,124,148,223,232,153,254,209,116,246,153,159,175,249,12,83,180,224,219,94,241,190, +52,34,1,199,75,65,14,63,120,191,212,181,217,180,212,179,223,39,211,172,96,180,43,7,145,214,115,200,167,82,79,209,22,103,159,241,185,112,106,35,11,245,136,202,145,19,149,43,95,200,195,8,94,244,103,205,57,252,151,88,36,234,36,192,98,162,19,65,8,240,113, +210,8,1,54,103,246,244,81,17,249,204,137,236,170,16,249,204,137,236,170,16,249,204,137,236,170,16,249,204,137,236,170,16,249,204,137,236,170,16,249,148,0,147,0,19,237,143,143,85,9,176,206,161,229,4,216,207,238,185,59,205,155,181,89,152,223,115,234,226, +99,107,10,154,177,88,120,81,198,81,135,30,80,238,187,107,246,230,105,230,9,71,134,162,203,211,123,234,113,175,189,152,99,243,105,233,162,47,127,169,146,96,28,233,66,27,50,213,145,23,138,228,109,150,195,11,77,120,189,127,190,72,128,197,68,39,130,16,224, +227,68,2,108,128,200,174,10,145,207,156,200,174,10,145,207,156,200,174,10,145,207,156,200,174,10,145,79,9,48,9,48,209,254,248,88,149,0,235,28,90,78,128,221,125,215,29,229,159,11,71,249,61,159,61,238,136,66,128,13,125,101,252,88,45,94,128,117,207,216, +40,245,28,126,64,248,95,95,6,163,95,51,143,59,36,205,40,218,1,1,118,249,37,95,46,71,224,198,122,161,13,31,121,248,161,240,237,135,57,123,239,177,67,41,182,176,241,139,4,88,76,116,34,8,1,62,78,36,192,6,136,236,170,16,249,204,137,236,170,16,249,204,137, +236,170,16,249,204,137,236,170,16,249,148,0,107,125,1,182,251,206,139,150,172,247,117,79,47,137,182,237,184,221,214,229,247,13,214,89,171,252,62,127,118,79,154,177,201,180,37,219,55,222,112,221,180,205,130,57,229,58,121,200,235,125,181,42,86,86,234,23, +109,31,75,174,191,238,218,65,109,216,170,248,88,149,0,235,28,90,78,128,253,228,238,59,211,220,153,75,23,96,252,63,88,21,1,134,239,103,159,253,99,249,140,217,72,224,255,197,152,178,87,254,215,215,162,5,169,247,139,167,132,194,203,51,235,156,211,83,247, +174,11,83,239,230,27,165,75,46,60,191,166,0,227,153,179,104,159,75,227,149,87,134,214,191,20,96,143,60,148,118,89,180,85,216,110,30,254,251,236,15,207,60,35,1,86,39,209,137,32,4,248,56,145,0,27,32,178,171,66,228,51,39,178,171,66,228,51,39,178,171,66, +228,51,39,178,171,66,228,83,2,172,245,5,216,99,143,62,178,68,40,221,114,243,77,37,172,147,246,179,123,126,90,174,31,123,212,97,233,171,151,95,154,206,63,247,236,242,121,116,68,203,97,7,31,80,10,8,243,115,241,133,23,164,179,206,56,109,137,159,111,124, +237,202,116,205,183,174,46,63,45,79,43,66,61,95,120,254,249,116,215,157,183,167,7,31,124,32,125,255,198,27,74,49,25,229,109,52,190,237,91,25,31,171,18,96,157,67,203,9,176,123,127,249,243,242,45,135,81,126,131,103,192,120,83,98,149,41,136,60,67,245,205, +175,93,145,246,219,123,215,17,177,239,158,59,151,83,35,187,182,232,74,189,199,31,81,215,75,56,202,81,176,147,143,77,189,91,205,42,95,111,31,189,240,130,183,54,50,58,182,223,62,187,133,251,173,5,127,172,28,189,9,146,239,79,63,245,100,57,186,21,181,157, +231,160,79,239,89,142,236,229,139,4,88,76,116,34,8,1,62,78,36,192,6,136,236,170,16,249,204,137,236,170,16,249,204,137,236,170,16,249,204,137,236,170,16,249,148,0,107,125,1,134,176,66,96,33,58,16,78,136,46,4,214,226,19,142,45,5,87,148,255,192,79,239,93, +230,65,64,240,73,58,235,140,230,48,10,230,133,217,253,247,253,170,165,71,121,16,64,136,47,251,78,253,78,59,117,241,160,60,64,251,144,151,145,63,70,204,168,147,141,158,145,150,231,39,221,242,249,116,111,63,156,0,35,157,124,126,187,237,47,79,195,167,229, +175,181,191,90,251,169,7,31,171,18,96,157,67,203,9,176,71,31,125,56,237,178,104,235,48,191,193,31,41,243,182,194,232,207,152,241,145,139,18,22,70,159,174,184,252,226,208,95,189,204,40,95,192,177,71,154,117,193,208,255,2,67,108,69,162,108,230,63,157,149, +122,15,217,55,157,116,202,9,233,197,23,135,190,240,2,81,118,254,57,103,148,255,65,22,237,179,22,156,112,215,252,243,215,195,54,96,63,199,28,113,80,104,231,97,26,103,52,138,38,1,22,19,157,8,66,128,143,19,9,176,1,34,187,42,68,62,115,34,187,42,68,62,115, +34,187,42,68,62,115,34,187,42,68,62,37,192,90,95,128,33,166,24,169,66,132,33,184,24,201,34,141,145,32,58,238,228,177,209,46,132,10,35,96,228,37,221,196,27,249,108,228,12,241,130,176,32,175,97,83,19,91,17,132,137,23,96,140,226,69,163,118,212,17,49,73, +59,80,111,70,203,108,157,186,123,177,74,186,141,2,146,207,196,15,237,64,219,208,198,8,221,90,2,140,54,196,7,62,249,52,145,235,71,22,217,47,105,216,219,200,157,141,80,218,113,195,15,121,115,63,85,241,177,58,22,241,188,252,114,203,165,41,147,39,135,127, +224,45,198,142,85,87,94,57,189,119,205,53,195,99,50,28,254,88,55,76,128,177,188,252,210,75,165,48,136,242,27,243,250,166,151,175,110,143,132,22,130,226,197,23,135,254,15,24,121,111,187,229,166,210,54,242,89,23,139,22,164,190,96,234,33,194,171,247,11, +39,165,222,211,78,72,125,151,156,59,100,59,175,162,223,255,244,147,211,227,79,60,222,95,154,129,133,114,253,219,191,94,91,215,139,71,60,8,54,94,236,17,141,2,34,202,46,187,248,130,82,168,70,182,240,154,136,189,48,20,112,18,96,49,209,137,32,98,248,181, +146,95,112,185,89,241,139,32,55,41,63,69,166,211,240,113,34,1,54,64,100,87,133,200,103,78,100,87,133,200,103,78,100,87,133,200,103,78,100,87,133,200,167,4,88,235,11,48,58,229,116,224,233,168,219,104,9,235,136,3,182,115,45,181,105,135,124,71,4,152,0,67, +80,152,40,64,164,145,198,39,105,172,183,3,220,27,168,171,137,79,234,26,61,15,70,187,48,85,209,190,83,71,27,41,163,221,16,103,172,115,191,177,169,155,128,95,19,116,136,38,196,45,235,180,43,75,36,192,16,83,249,189,138,50,113,92,236,59,251,227,152,96,207, +130,63,210,185,239,153,56,67,88,54,226,158,231,99,117,44,226,121,253,169,83,83,111,119,119,248,7,222,98,236,152,221,215,151,230,207,157,27,30,147,225,240,199,186,161,2,12,65,242,175,223,189,102,88,161,196,20,188,135,31,250,93,191,197,224,229,201,39,159, +72,191,249,245,253,161,56,227,141,127,199,31,125,72,232,115,56,202,209,169,45,102,164,153,199,31,54,100,148,171,20,95,23,156,145,186,247,88,148,186,119,250,68,234,253,210,105,97,158,237,47,248,98,250,201,3,67,235,203,194,159,60,243,124,89,180,239,225, +56,241,216,195,203,215,227,71,203,61,63,249,113,218,113,225,252,208,14,182,219,122,139,196,11,79,162,69,2,44,38,58,17,150,134,221,20,59,1,110,54,118,243,90,26,220,24,185,233,217,47,129,220,44,185,49,181,242,47,177,163,193,199,137,4,216,0,145,93,21,34, +159,57,145,93,21,34,159,57,145,93,21,34,159,57,145,93,21,34,159,18,96,173,47,192,128,142,186,23,13,8,18,68,0,235,92,119,249,206,189,4,49,65,199,223,4,152,217,34,224,76,160,241,73,30,174,191,251,236,185,235,18,49,208,170,152,0,67,168,12,247,34,14,238, +37,214,38,128,24,178,251,139,249,96,157,118,242,117,38,143,141,176,209,46,94,112,97,19,9,48,68,28,254,105,87,187,231,209,246,124,199,151,193,253,12,123,19,127,192,177,49,161,22,249,25,9,62,86,219,33,158,197,216,226,143,245,136,5,24,47,182,136,22,132, +210,153,167,159,156,34,31,8,135,239,254,203,183,194,145,27,22,68,221,213,223,184,42,189,244,82,60,10,118,231,237,183,150,47,159,224,57,178,220,119,14,251,231,79,161,143,60,252,160,52,231,144,125,195,169,135,125,23,158,157,122,142,254,76,234,42,78,128, +25,155,79,75,61,7,127,42,245,93,52,244,63,194,230,92,118,126,186,236,174,91,211,159,131,87,209,83,174,31,254,224,223,211,238,59,109,19,150,195,67,185,121,75,36,207,164,157,119,206,23,210,67,191,123,176,223,203,224,133,169,141,87,125,245,210,180,245,220, +158,33,62,182,156,61,35,93,114,225,121,229,243,103,209,34,1,22,19,157,8,195,193,205,143,11,51,55,0,27,5,242,23,123,126,181,179,95,205,184,144,115,227,36,111,36,82,184,49,141,133,120,177,125,90,25,249,238,247,67,26,229,100,29,1,133,144,34,175,149,155, +237,102,111,54,108,163,51,129,8,195,150,58,219,180,12,242,91,190,209,194,126,240,109,101,176,116,246,233,191,27,180,33,233,86,118,48,219,225,110,252,245,224,227,68,2,108,128,200,174,10,145,207,156,200,174,10,145,207,156,200,174,10,145,207,156,200,174, +10,145,79,9,176,246,232,176,114,205,178,235,44,88,199,222,190,179,206,245,148,123,10,215,44,127,29,101,91,126,111,224,26,103,207,144,97,227,183,181,26,148,223,4,210,112,112,157,246,35,80,181,4,24,105,222,31,237,198,244,63,179,177,246,224,94,199,12,34, +223,206,57,180,51,247,112,187,167,248,253,27,121,249,189,0,51,240,195,61,208,31,183,42,248,88,149,0,19,254,88,143,88,128,69,47,145,176,229,177,199,30,45,5,4,66,0,97,194,75,37,78,249,236,49,229,212,195,87,106,8,7,22,68,221,49,133,96,250,249,61,63,9,125, +147,198,200,207,169,139,143,75,219,127,98,78,218,162,119,147,52,171,107,227,242,153,42,70,221,182,93,48,171,20,104,167,157,114,98,186,238,218,111,167,7,31,248,109,186,254,103,63,73,91,93,60,244,249,46,70,182,102,158,121,114,234,94,56,111,73,157,186,182, +236,75,51,63,119,226,144,81,48,216,239,219,255,55,61,240,204,83,253,37,25,188,240,140,218,173,63,186,169,156,126,185,221,86,179,7,151,107,214,102,105,97,81,46,254,183,11,97,250,189,235,175,45,71,0,17,147,223,255,247,127,171,41,70,95,120,225,249,116,237, +119,254,57,29,117,216,129,105,143,157,23,22,98,114,187,116,204,17,159,73,255,242,237,171,195,255,255,178,69,2,44,38,58,17,134,131,139,48,55,5,110,130,220,32,249,4,191,221,110,32,92,192,249,117,143,95,45,185,89,216,13,3,176,97,27,191,234,213,115,163,170, +23,251,165,148,125,217,141,186,214,205,132,27,58,101,32,63,121,201,199,205,132,250,81,102,132,153,149,25,27,210,177,227,87,63,242,51,117,132,207,70,138,72,218,142,50,81,94,155,138,194,190,249,206,190,40,171,221,92,41,27,211,91,72,183,95,71,185,169,82, +78,190,83,254,252,166,89,5,31,39,18,96,3,68,118,85,136,124,230,68,118,85,136,124,230,68,118,85,136,124,230,68,118,85,136,124,74,128,169,195,218,234,228,247,156,90,228,2,200,223,63,241,97,2,140,251,154,221,75,185,47,144,110,247,29,242,115,95,64,156,98, +207,125,201,238,17,30,236,184,151,0,249,241,73,58,235,54,179,195,238,35,121,249,237,158,201,58,247,28,243,195,40,152,229,169,138,143,85,197,179,240,199,122,196,2,236,156,47,126,62,28,169,178,5,81,194,43,218,249,99,225,167,158,124,178,124,62,12,1,101, +68,11,2,108,231,237,23,148,111,73,124,230,233,167,251,83,135,46,127,250,211,159,210,175,255,243,190,82,244,32,98,24,129,186,235,142,91,139,19,236,222,114,26,35,175,184,103,31,143,63,255,92,58,254,123,215,14,17,83,48,235,203,103,165,158,253,247,72,51, +54,29,24,77,43,95,83,191,231,142,169,239,188,51,135,228,159,119,217,5,233,162,59,110,73,175,252,249,207,97,249,73,123,238,185,103,203,50,220,114,243,127,148,229,186,233,63,110,76,63,46,78,238,255,188,255,190,242,237,134,252,98,99,245,191,249,135,63,72, +39,159,120,116,122,252,241,199,250,61,12,93,200,247,124,81,7,242,240,234,250,23,139,122,219,190,237,51,95,36,192,98,162,19,97,56,184,72,251,11,51,157,127,176,239,254,6,98,162,193,182,241,107,25,159,38,146,44,221,46,254,246,125,52,248,27,133,49,220,205, +36,207,207,148,17,110,100,246,157,27,157,141,36,225,195,151,211,110,142,141,4,255,248,181,155,35,32,164,236,87,70,202,70,25,217,206,141,54,111,55,234,226,203,207,13,210,143,142,85,193,199,137,4,216,0,145,93,21,34,159,57,145,93,21,34,159,57,145,93,21, +34,159,57,145,93,21,34,159,18,96,234,176,182,58,92,159,235,249,97,142,107,179,31,37,100,221,174,215,248,240,179,24,72,103,42,34,215,255,92,96,113,127,64,96,97,207,126,253,253,195,32,157,123,3,247,60,111,143,95,210,185,87,251,145,52,95,126,252,91,57,41, +19,249,41,203,72,71,191,192,199,170,226,89,248,99,61,98,1,198,8,20,34,162,234,194,212,185,7,31,248,77,40,32,16,96,252,9,49,211,236,174,186,226,210,82,180,141,116,193,255,21,63,185,51,205,191,252,130,33,98,170,28,253,90,124,116,234,154,211,53,164,94,93, +51,55,77,61,199,28,18,142,130,109,115,197,69,233,154,95,220,83,115,212,170,222,133,178,209,118,180,225,55,191,126,101,101,127,188,150,159,103,229,162,255,38,147,0,139,137,78,132,225,160,195,95,69,128,249,169,34,38,88,216,142,24,99,187,193,77,193,242, +141,6,202,98,35,71,70,21,1,134,216,241,55,30,182,89,217,240,225,5,207,88,9,48,63,82,200,141,144,31,40,124,91,217,3,208,220,8,41,47,105,86,102,191,14,148,127,164,243,244,125,156,72,128,13,16,217,85,33,242,153,19,217,85,33,242,153,19,217,85,33,242,153, +19,217,85,33,242,41,1,166,14,171,104,127,124,172,182,91,60,115,95,230,94,189,180,105,254,150,207,83,43,15,159,249,54,195,247,9,26,1,253,178,70,245,185,26,133,63,214,35,22,96,112,200,1,251,148,255,253,85,239,130,248,226,255,188,152,74,247,228,19,79,244, +167,14,44,38,192,240,205,243,79,87,126,229,146,242,207,134,171,46,255,243,63,255,147,110,127,232,193,180,243,215,47,27,34,162,160,239,60,254,100,121,219,33,245,89,194,118,91,166,190,179,78,29,98,55,251,226,47,165,69,133,8,251,118,209,249,123,225,79,47, +212,28,133,90,218,98,2,108,254,172,205,203,63,93,102,189,94,95,136,46,70,214,248,47,177,251,238,253,229,16,59,9,176,152,232,68,24,14,46,56,116,242,237,59,191,132,249,135,131,121,78,202,46,50,228,243,23,28,19,44,92,104,70,51,117,97,56,16,95,94,80,1,191, +210,249,253,33,210,44,15,191,226,249,252,94,112,1,35,117,38,34,107,213,167,145,224,63,47,63,101,24,238,151,70,108,172,126,81,249,71,250,43,165,143,147,70,8,48,33,26,129,4,152,4,152,104,127,124,172,182,91,60,243,163,110,61,127,180,77,190,252,7,84,219, +70,126,126,64,165,207,68,58,253,9,251,113,53,167,209,125,13,250,8,254,135,243,86,192,31,235,81,9,48,94,42,113,212,161,7,148,211,236,254,26,188,160,194,22,68,2,211,17,25,237,97,212,103,238,204,233,229,20,189,92,60,120,1,6,228,251,220,73,199,149,254,249, +127,172,122,68,10,226,235,137,23,158,79,39,220,240,221,33,2,10,24,217,234,57,124,255,212,213,253,177,65,117,241,148,47,228,56,104,175,52,235,194,179,67,251,5,95,60,57,157,121,209,121,69,64,221,189,100,106,101,189,11,163,87,4,217,165,23,157,95,62,43,198, +254,246,218,109,81,186,241,134,235,75,129,58,156,47,246,69,187,241,156,27,111,119,228,85,244,249,40,152,4,88,76,116,34,12,7,226,137,227,100,211,15,128,239,8,49,166,18,218,139,41,200,203,69,165,150,96,33,47,23,45,70,103,16,77,126,212,102,52,152,216,98, +158,186,247,203,69,206,70,199,88,55,145,99,229,167,28,92,16,201,143,104,161,62,228,33,175,249,30,174,62,141,34,18,96,148,133,125,115,209,4,68,48,229,70,248,82,110,234,106,54,108,163,254,38,68,105,99,239,171,10,62,78,36,192,68,171,32,1,38,1,38,218,31, +31,171,237,40,192,188,152,226,94,204,61,215,231,1,242,69,253,4,250,81,244,51,232,71,229,219,34,114,31,220,231,125,159,137,117,63,130,198,126,129,117,250,10,244,43,248,180,237,29,45,192,0,17,182,235,14,91,151,255,93,197,203,51,120,214,137,103,149,16,76, +207,63,247,92,122,228,225,135,202,103,180,78,93,124,108,154,63,123,243,37,118,188,134,157,255,246,186,235,206,219,150,192,159,19,47,220,106,214,16,255,139,62,49,183,20,98,215,95,247,157,244,171,123,127,145,158,120,252,247,165,111,246,193,115,104,60,19, +198,119,246,253,219,223,254,58,93,248,157,111,166,45,78,58,58,245,126,246,168,33,244,28,117,80,234,206,246,17,50,175,187,16,106,7,132,62,122,79,60,60,245,238,188,77,218,105,209,86,229,243,106,223,187,254,187,69,144,221,91,62,235,198,51,91,148,11,172, +92,164,255,246,55,191,78,55,255,240,251,229,255,127,29,176,239,30,105,110,246,170,126,94,32,194,115,117,183,223,246,163,242,153,47,94,194,129,15,62,127,255,251,71,203,103,220,206,61,251,11,229,155,36,205,6,33,246,131,27,191,55,168,13,17,114,8,58,239, +91,140,236,162,198,92,112,63,15,157,79,46,62,156,228,172,219,47,65,92,20,252,175,66,249,112,61,23,31,46,2,124,70,191,30,141,6,124,34,92,236,162,131,127,46,58,182,47,63,239,158,114,82,14,43,3,219,168,15,249,253,69,109,105,245,105,4,121,217,12,218,150, +50,82,38,234,68,185,72,227,56,32,194,124,57,107,149,191,42,62,78,36,192,68,171,32,1,38,1,38,218,31,31,171,237,46,192,184,15,243,163,178,207,3,228,139,4,24,125,137,42,63,224,250,188,252,176,10,136,62,43,3,63,194,210,223,177,60,252,112,108,63,212,34,244, +216,78,94,203,211,241,2,204,152,213,245,177,114,116,235,160,79,239,153,142,63,250,208,180,248,248,35,203,55,248,241,6,196,5,115,186,134,188,58,158,63,19,222,114,139,25,131,96,74,158,207,147,195,136,216,14,219,206,75,251,237,179,91,233,155,183,14,158, +116,194,81,165,152,227,251,129,133,176,217,101,209,214,105,139,89,155,165,25,69,80,71,116,21,229,236,10,124,71,116,205,248,88,232,163,100,243,141,202,60,140,68,241,6,70,70,238,14,248,212,238,233,232,195,7,202,117,194,49,135,149,35,132,251,23,229,101, +170,33,207,182,205,220,124,184,63,88,222,48,109,51,127,102,249,95,105,199,30,121,112,217,134,124,242,29,129,22,217,226,115,80,59,22,223,203,255,62,203,242,9,221,168,197,80,242,24,145,0,19,173,130,4,152,4,152,104,127,124,172,182,163,0,67,20,33,98,16,55, +204,252,137,126,144,37,159,159,130,104,207,114,33,132,188,96,227,7,83,251,129,213,210,60,38,192,248,65,213,207,202,193,31,251,229,71,87,75,103,159,246,72,2,126,77,116,33,198,44,125,194,8,48,33,90,157,232,100,16,19,155,60,70,36,192,68,171,32,1,38,1,38, +218,31,31,171,237,42,192,24,249,26,110,38,76,173,17,48,102,173,120,33,133,15,196,146,31,85,243,152,15,158,71,207,95,96,102,207,168,227,15,33,134,176,178,103,201,16,104,140,128,249,252,164,75,128,9,209,66,68,39,132,152,152,68,241,33,1,38,90,5,9,48,9,48, +209,254,248,88,109,71,1,102,98,102,56,106,9,48,70,163,242,63,204,230,145,130,90,62,205,135,77,41,204,183,3,35,93,136,42,70,185,200,71,26,66,204,196,152,71,2,76,136,22,36,58,49,196,196,32,138,7,67,2,76,180,10,18,96,18,96,162,253,241,177,218,201,2,140, +183,37,34,118,12,219,198,243,232,8,43,210,24,197,226,185,174,165,9,48,96,84,139,188,246,2,51,19,91,60,63,142,248,226,205,138,150,151,253,147,198,62,200,63,225,158,1,19,66,136,118,71,2,76,180,10,163,17,96,60,252,238,255,54,163,17,224,51,122,217,13,29, +163,70,254,127,143,175,171,4,152,104,119,124,172,182,91,60,115,190,115,222,71,219,60,228,99,100,203,227,183,35,144,108,228,10,81,84,203,103,62,205,209,94,96,150,191,128,11,123,63,170,6,124,183,145,48,243,207,181,41,207,55,222,248,99,45,1,38,132,16,253, +72,128,137,86,97,52,2,108,184,105,62,35,5,65,103,111,46,181,231,49,128,14,78,52,253,104,164,248,186,74,128,137,118,199,199,170,226,89,248,99,45,1,38,132,16,253,52,66,128,205,153,61,125,84,68,62,115,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68, +62,115,34,187,42,68,62,115,34,187,42,68,62,235,21,96,252,202,139,224,242,127,235,144,11,48,203,131,88,2,255,55,19,216,177,205,255,42,109,127,19,97,118,164,177,157,95,161,73,99,186,143,237,211,4,24,159,164,177,221,252,176,14,216,178,13,191,192,58,249, +45,159,199,215,85,29,86,209,238,248,88,85,60,11,127,172,37,192,132,16,162,31,9,176,1,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,235,17,96,8,34,166,255,49,77,135,63,35,183,231,29,16,56,38,192,16,64,188,81,140,215,65,147, +134,88,98,59,219,24,201,178,231,51,16,85,76,15,50,123,222,54,70,126,243,201,58,162,137,60,246,188,7,83,131,72,227,187,229,197,143,141,144,145,151,116,202,200,254,121,176,158,114,242,74,107,191,63,143,175,171,58,172,162,221,241,177,170,120,22,254,88,75, +128,137,113,35,10,78,33,198,154,40,22,13,9,176,1,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,171,78,65,100,100,201,222,28,230,5,152,253,247,142,229,67,140,153,0,227,65,118,27,57,67,72,217,43,163,217,142,168,242,35,101, +38,192,88,247,83,14,73,99,177,109,136,50,251,239,31,4,150,127,155,25,251,102,59,235,136,180,232,79,93,125,93,213,97,21,237,142,143,85,197,179,240,199,90,2,76,52,157,40,40,133,104,54,81,108,74,128,13,16,217,85,33,242,153,19,217,85,33,242,153,19,217,85, +33,242,153,19,217,85,33,242,89,143,0,99,116,139,55,133,49,194,132,120,50,97,228,5,24,35,78,38,122,128,188,38,192,16,68,150,14,216,219,20,193,252,197,26,195,9,48,239,7,91,202,196,58,2,204,191,12,4,59,243,225,243,121,124,93,213,97,21,237,142,143,85,197, +179,240,199,90,2,76,52,149,40,32,133,24,47,242,248,148,0,27,32,178,171,66,228,51,39,178,171,66,228,51,39,178,171,66,228,51,39,178,171,66,228,179,30,1,198,84,62,70,184,88,231,13,98,145,0,99,244,203,242,128,61,191,197,186,23,68,8,47,182,177,30,137,163, +92,128,217,91,201,72,243,130,44,23,96,126,244,77,2,76,76,52,124,172,42,158,133,63,214,18,96,162,169,68,1,41,196,120,145,199,167,4,216,0,145,93,21,34,159,57,145,93,21,34,159,57,145,93,21,34,159,57,145,93,21,34,159,245,8,48,132,21,35,92,188,174,25,49,227, +5,148,9,48,166,24,34,124,16,67,76,249,99,221,4,24,246,228,227,21,209,124,218,159,153,46,77,128,177,13,97,229,95,194,97,249,36,192,132,24,192,199,170,226,89,248,99,45,1,38,154,70,20,140,66,140,55,62,70,37,192,6,136,236,170,16,249,204,137,236,170,16,249, +204,137,236,170,16,249,204,137,236,170,16,249,172,247,25,48,166,23,34,164,236,109,131,164,49,154,229,223,106,200,58,66,136,81,50,166,22,250,255,219,97,157,109,254,213,242,216,219,179,97,134,189,5,209,182,35,218,176,33,205,251,243,182,148,201,4,23,144, +207,251,200,247,1,190,174,234,176,138,118,199,199,170,226,89,248,99,45,1,38,154,70,20,140,66,140,55,62,70,37,192,6,136,236,170,16,249,204,137,236,170,16,249,204,137,236,170,16,249,204,137,236,170,16,249,172,250,18,142,90,32,130,76,232,228,163,85,173, +136,175,171,58,172,162,221,241,177,170,120,22,254,88,75,128,137,166,17,5,163,16,227,141,143,81,9,176,1,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,27,37,192,24,185,226,109,135,76,33,100,244,203,143,116,181,34,190,174,234, +176,138,118,199,199,170,226,89,248,99,45,1,38,154,70,20,140,66,140,55,62,70,37,192,6,136,236,170,16,249,204,137,236,170,16,249,204,137,236,170,16,249,204,137,236,170,16,249,108,148,0,107,55,124,93,213,97,21,237,142,143,85,197,179,240,199,90,2,76,52,141, +40,24,133,24,111,124,140,74,128,13,16,217,85,33,242,153,19,217,85,33,242,153,19,217,85,33,242,153,19,217,85,33,242,41,1,166,14,171,104,127,124,172,42,158,133,63,214,18,96,162,105,68,193,40,196,120,227,99,84,2,108,128,200,174,10,145,207,156,200,174,10, +145,207,156,200,174,10,145,207,156,200,174,10,145,79,9,48,117,88,69,251,227,99,85,241,44,252,177,150,0,19,77,35,10,70,33,198,27,31,163,141,16,96,66,52,2,9,48,117,88,69,251,227,99,85,241,44,252,177,150,0,19,77,35,10,70,33,198,27,31,163,18,96,162,85,144, +0,83,135,85,180,63,62,86,21,207,194,31,107,9,48,209,52,162,96,20,98,188,241,49,42,1,38,90,5,9,48,117,88,69,251,227,99,85,241,44,252,177,150,0,19,77,35,10,70,33,198,27,31,163,18,96,162,85,144,0,83,135,85,180,63,62,86,21,207,194,31,107,9,48,209,52,162, +96,20,98,188,241,49,42,1,38,90,5,9,48,117,88,69,251,227,99,85,241,44,252,177,150,0,19,77,35,10,70,33,198,27,31,163,18,96,162,85,144,0,83,135,85,180,63,62,86,21,207,194,31,107,9,48,209,52,162,96,20,98,188,241,49,42,1,38,90,5,9,48,117,88,69,251,227,99, +85,241,44,252,177,150,0,19,77,35,10,70,33,198,27,31,163,18,96,162,85,144,0,83,135,85,180,63,62,86,21,207,194,31,107,9,48,209,52,162,96,20,98,188,241,49,42,1,38,90,5,9,48,117,88,69,251,227,99,85,241,44,252,177,150,0,19,77,35,10,70,33,198,27,31,163,141, +16,96,115,102,79,31,21,145,207,156,200,174,10,145,207,156,200,174,10,145,207,156,200,174,10,145,207,156,200,174,10,145,207,156,200,174,10,145,79,9,48,117,88,69,251,227,99,85,241,44,252,177,150,0,19,77,35,10,70,33,198,27,31,163,18,96,3,68,118,85,136,124, +230,68,118,85,136,124,230,68,118,85,136,124,230,68,118,85,136,124,74,128,169,195,42,218,31,31,171,138,103,225,143,181,4,152,104,26,81,48,10,49,222,248,24,149,0,27,32,178,171,66,228,51,39,178,171,66,228,51,39,178,171,66,228,51,39,178,171,66,228,83,2,76, +29,86,209,254,248,88,85,60,11,127,172,37,192,68,211,136,130,81,136,241,198,199,168,4,216,0,145,93,21,34,159,57,145,93,21,34,159,57,145,93,21,34,159,57,145,93,21,34,159,18,96,234,176,138,246,199,199,170,226,89,248,99,45,1,38,154,70,20,140,66,140,55,62, +70,37,192,6,136,236,170,16,249,204,137,236,170,16,249,204,137,236,170,16,249,204,137,236,170,16,249,148,0,107,191,14,235,177,71,29,150,246,217,115,215,112,155,152,152,248,88,149,0,19,254,88,75,128,137,166,17,5,163,16,227,141,143,81,9,176,1,34,187,42, +68,62,115,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,37,192,218,175,195,122,254,185,103,151,34,44,218,86,133,122,132,220,120,138,189,13,214,89,43,237,190,243,162,180,227,118,91,15,217,54,127,118,79,218,102,193,156,33,233,125,221,211,7,229, +103,29,31,164,251,124,141,100,227,13,215,45,203,147,167,177,95,234,224,211,173,78,108,231,59,229,170,85,199,42,248,88,149,0,19,254,88,75,128,137,166,17,5,163,16,227,141,143,81,9,176,1,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,115,34,187, +42,68,62,37,192,26,211,97,157,177,201,180,178,35,109,29,113,58,218,8,4,235,96,215,234,160,99,23,165,231,130,193,210,241,217,40,1,86,143,159,70,237,107,36,208,6,47,60,255,124,186,235,206,219,211,131,15,62,144,190,127,227,13,75,132,203,53,223,186,58,189, +250,234,171,67,218,143,188,143,61,250,200,146,239,172,255,236,158,159,46,241,241,141,175,93,185,196,71,163,160,141,240,237,211,56,86,44,167,157,186,120,80,58,109,201,194,118,190,99,75,25,41,31,220,127,223,175,70,36,198,124,172,74,128,9,127,172,37,192, +68,211,136,130,81,136,241,198,199,168,4,216,0,145,93,21,34,159,57,145,93,21,34,159,57,145,93,21,34,159,57,145,93,21,34,159,18,96,163,239,176,30,248,233,189,211,45,55,223,84,118,166,175,191,238,218,82,20,32,30,232,88,35,26,46,190,240,130,114,221,58,221, +108,167,163,77,58,118,139,79,56,182,76,71,180,33,22,190,122,249,165,75,236,44,29,123,68,7,254,233,236,143,84,20,153,80,140,132,156,137,69,63,106,147,231,193,206,231,193,198,139,69,196,77,52,50,53,18,240,139,40,177,239,180,139,9,26,218,130,109,94,224, +88,126,218,202,210,88,247,229,67,128,209,182,246,189,17,112,60,40,143,29,95,96,221,4,149,207,75,26,88,94,218,23,108,59,226,235,233,167,159,26,34,44,151,134,143,85,9,48,225,143,181,4,152,104,26,81,48,10,49,222,248,24,149,0,27,32,178,171,66,228,51,39,178, +171,66,228,51,39,178,171,66,228,51,39,178,171,66,228,83,2,108,244,29,86,132,1,120,225,66,167,159,17,26,75,67,164,209,249,103,29,65,99,194,1,193,98,163,39,228,201,69,23,159,116,214,189,104,160,3,63,18,1,102,62,35,33,135,104,66,44,32,6,114,129,96,121,40, +31,245,36,13,63,38,230,16,145,182,143,179,206,56,109,73,29,70,75,46,192,240,109,109,72,29,40,151,23,56,236,151,180,225,4,24,235,44,141,26,5,99,122,38,109,73,59,240,105,233,124,55,145,104,130,148,81,80,218,202,242,147,150,11,48,160,30,38,202,235,197,199, +170,4,152,240,199,186,46,1,86,164,9,81,55,62,118,60,81,48,10,49,222,248,24,149,0,27,32,178,171,66,228,51,39,178,171,66,228,51,39,178,171,66,228,51,39,178,171,66,228,83,2,108,244,29,86,58,243,116,154,17,52,214,153,166,163,111,194,202,190,155,88,160,3, +206,58,157,115,131,116,196,13,54,62,29,145,131,240,240,157,116,19,26,246,189,94,16,11,136,2,251,142,127,243,131,176,49,81,192,40,140,229,99,191,209,190,40,235,97,7,31,80,174,83,102,19,57,212,43,159,110,57,82,240,137,128,162,12,212,153,145,33,155,158, +71,249,40,47,117,48,129,67,57,216,247,112,2,12,40,227,104,159,185,50,16,198,246,140,28,251,183,145,43,19,96,180,29,109,69,26,117,160,205,40,243,112,2,44,74,91,26,62,86,37,192,132,63,214,117,11,176,73,203,46,155,86,152,52,73,136,154,188,105,133,21,210, +42,43,173,52,40,118,60,81,48,10,49,222,248,24,149,0,27,32,178,171,66,228,51,39,178,171,66,228,51,39,178,171,66,228,51,39,178,171,66,228,83,2,172,113,29,86,132,24,35,28,140,20,209,233,103,241,35,96,38,106,24,253,66,84,121,91,240,35,60,30,108,253,232,10, +157,254,145,8,48,58,245,126,202,158,23,114,8,21,19,125,96,251,195,198,242,216,104,15,219,201,111,233,248,196,23,226,135,41,148,164,53,2,19,96,180,75,46,152,76,128,153,192,161,141,104,59,179,177,124,145,0,27,201,20,191,8,124,48,202,105,109,134,95,107, +95,19,96,54,234,104,35,157,124,39,239,112,2,140,237,26,1,19,163,193,31,235,186,4,216,210,58,28,66,64,173,14,131,17,5,163,16,227,141,143,81,9,176,1,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,37,192,70,223,97,69,4,208,97, +102,116,131,209,21,58,230,116,250,121,129,4,98,137,78,57,157,112,27,49,98,59,157,113,58,222,136,26,235,108,91,58,130,130,116,19,105,116,218,45,63,66,7,95,38,126,170,96,83,8,237,187,23,114,38,104,108,155,97,2,204,202,96,130,210,70,119,88,71,92,80,111, +202,86,85,56,12,7,109,136,24,137,182,89,121,77,224,32,124,17,105,75,19,96,148,185,81,34,209,132,167,125,71,128,210,14,172,155,0,99,157,79,48,113,61,156,0,163,172,136,186,170,163,136,62,86,155,33,192,104,119,98,169,214,241,105,20,180,7,162,159,216,163, +109,163,31,46,26,9,49,68,44,81,47,226,100,172,247,231,33,14,124,236,142,6,127,172,37,192,68,195,144,0,19,237,136,143,209,70,8,48,33,26,129,4,216,232,59,172,116,150,233,216,35,62,172,227,108,226,129,233,113,116,172,114,113,131,216,162,115,7,254,165,21, +164,211,177,199,198,143,250,208,225,101,31,136,40,242,128,109,171,23,132,18,29,60,246,73,231,153,17,27,19,81,236,139,109,38,36,45,157,114,216,186,109,199,158,14,177,165,3,226,130,237,38,208,26,129,181,97,180,205,4,152,173,83,30,214,177,241,157,88,214, +169,43,176,78,167,154,60,182,125,52,176,207,92,40,225,159,182,244,2,140,117,22,59,158,185,0,227,187,125,34,218,77,168,87,193,199,106,51,4,24,245,108,134,0,35,102,173,173,76,108,143,36,246,235,5,223,62,62,16,125,254,252,28,43,136,13,132,166,143,221,209, +224,143,181,4,152,104,24,18,96,162,29,241,49,42,1,38,90,5,9,176,177,233,176,14,39,30,198,19,19,114,140,176,229,66,14,49,129,16,64,0,122,33,105,121,88,103,27,34,144,142,177,183,197,167,9,142,70,65,89,107,117,126,41,31,101,96,157,114,88,121,177,241,194, +213,196,144,97,233,163,37,223,143,65,27,1,101,243,226,204,239,155,58,89,217,201,235,203,103,233,85,241,177,218,12,1,70,155,83,246,102,199,184,9,220,104,91,163,225,24,243,35,133,63,142,99,1,251,177,31,6,36,192,68,75,35,1,38,218,17,31,163,18,96,162,85, +144,0,27,155,14,43,29,84,70,8,162,109,157,6,29,200,102,141,20,136,24,31,171,205,16,96,208,108,1,70,124,17,103,196,91,180,189,81,176,31,70,116,217,215,72,70,35,171,194,190,216,143,4,152,104,121,36,192,68,59,226,99,84,2,76,180,10,18,96,205,235,176,118, +34,140,124,209,9,247,211,17,69,243,241,177,218,137,2,140,125,53,75,228,243,227,9,35,196,140,6,179,79,246,29,229,107,4,140,38,219,200,177,4,152,104,121,26,37,192,56,145,27,253,128,37,115,120,253,180,140,70,195,47,63,181,46,64,249,179,4,30,123,163,21,101, +179,245,145,128,255,145,78,145,152,232,248,24,149,0,19,173,130,4,152,4,152,104,127,124,172,118,154,0,107,166,248,202,97,116,170,209,253,68,143,189,92,132,118,100,26,162,189,85,51,202,91,5,127,172,37,192,68,195,104,148,0,99,190,117,163,231,172,243,235, +197,88,254,90,194,92,228,90,101,38,221,207,51,247,216,175,42,35,253,133,133,11,144,93,36,248,228,151,161,40,159,168,141,143,81,9,48,209,42,72,128,73,128,137,246,199,199,106,39,9,176,102,139,47,255,188,23,63,54,55,115,223,35,237,159,69,248,99,45,1,38, +26,198,88,9,48,70,135,252,67,176,124,230,39,158,23,56,108,203,31,6,29,169,0,99,95,216,113,242,179,15,202,66,26,235,249,5,193,151,9,27,203,147,11,48,242,241,29,155,90,2,140,17,53,242,12,87,102,222,122,197,69,168,209,243,174,235,173,179,65,186,213,199, +210,200,103,117,136,30,204,181,7,176,135,171,95,179,240,49,42,1,38,90,5,9,48,9,48,209,254,248,88,237,36,1,70,191,38,95,106,253,8,221,8,248,177,153,55,81,218,15,206,99,57,250,149,147,247,207,70,131,63,214,18,96,162,97,140,133,0,163,243,207,9,199,127,122, +240,31,16,60,16,73,199,158,55,224,88,135,159,206,60,67,196,172,115,82,146,143,252,216,89,158,145,10,48,202,130,31,202,195,131,219,12,75,227,159,117,246,105,255,173,66,62,187,224,81,102,202,199,16,57,255,231,194,190,217,206,54,230,227,243,157,242,217, +168,21,233,254,4,167,126,164,179,15,166,37,214,122,96,28,223,182,255,70,82,111,157,129,58,80,70,234,74,62,234,78,58,182,148,143,116,214,253,205,128,81,58,252,208,6,190,109,198,11,31,163,18,96,162,85,144,0,147,0,19,237,143,143,85,197,179,240,199,90,2, +76,52,140,177,16,96,8,42,123,136,152,206,189,117,228,233,216,91,58,194,0,81,128,112,161,67,111,35,66,116,240,45,15,233,35,21,96,38,140,0,225,192,235,126,89,103,36,11,97,98,249,172,108,236,211,139,38,47,50,200,111,35,101,222,183,23,96,164,231,246,86,39, +15,34,111,36,117,90,26,245,214,153,81,174,92,88,153,56,51,241,102,219,16,103,94,12,91,125,120,160,22,255,150,111,60,240,49,42,1,38,90,5,9,48,117,88,69,251,227,99,85,241,44,252,177,150,0,19,13,99,44,4,24,29,124,70,99,248,52,72,103,212,203,214,233,208, +211,185,71,16,48,68,237,243,218,48,53,121,70,42,192,252,203,49,240,73,26,235,248,179,50,144,102,235,136,67,222,160,99,54,216,155,13,229,179,116,48,161,227,5,24,66,6,193,98,117,0,63,189,209,160,93,162,244,209,82,111,157,17,101,94,100,81,103,70,189,88, +231,248,249,54,192,6,91,127,220,128,227,102,245,30,47,124,140,54,66,128,205,153,61,125,84,68,62,115,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,37,192,212,97,21,237,143,143,85,197,179,240,199,90,2,76, +52,140,177,16,96,126,84,37,7,145,66,39,223,139,5,58,243,209,104,209,104,4,152,149,5,106,137,17,210,188,48,241,47,195,64,40,153,13,121,236,57,42,47,186,252,58,163,66,126,159,181,64,252,120,1,212,40,170,212,217,4,23,32,118,77,240,98,111,54,128,13,182,8, +46,47,66,201,195,113,180,239,227,129,143,81,9,176,1,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,37,192,212,97,21,237,143,143,85,197,179,240,199,186,46,1,182,252,114,203,165,41,147,39,167,149,167,76,17,162,38,171,174,188, +114,122,239,154,107,14,138,29,79,20,140,17,94,0,208,105,167,131,78,199,30,177,101,83,225,128,52,58,243,8,22,75,179,103,171,120,86,12,225,102,34,160,153,2,204,151,153,209,48,166,10,154,13,229,39,31,101,67,56,154,248,192,198,4,24,2,146,116,108,177,171, +37,178,152,146,73,62,64,240,65,35,70,196,234,173,51,229,100,157,114,82,87,202,97,109,92,75,128,217,54,132,27,109,129,56,109,198,31,42,14,135,143,81,9,176,1,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,37,192,212,97,21,237, +143,143,85,197,179,240,199,186,46,1,182,254,212,169,169,183,187,59,245,245,246,10,81,147,217,125,125,105,254,220,185,131,98,199,19,5,99,132,77,39,180,239,116,220,233,224,131,23,24,228,243,157,124,195,254,168,143,103,177,236,165,16,76,125,139,70,198,150, +70,94,22,246,79,26,235,248,179,242,144,150,151,13,145,197,126,41,191,217,0,254,16,31,164,155,13,190,200,155,219,83,143,168,142,6,118,8,83,242,225,211,234,59,26,216,119,61,117,182,188,8,40,142,141,9,44,192,222,215,25,27,223,254,118,140,252,126,198,11, +31,163,18,96,3,68,118,85,136,124,230,68,118,85,136,124,230,68,118,85,136,124,230,68,118,85,136,124,74,128,169,195,42,218,31,31,171,138,103,225,143,117,93,2,76,136,70,17,5,164,16,227,69,30,159,18,96,3,68,118,85,136,124,230,68,118,85,136,124,230,68,118, +85,136,124,230,68,118,85,136,124,74,128,169,195,42,218,31,31,171,138,103,225,143,181,4,152,104,42,81,64,10,49,94,228,241,41,1,54,64,100,87,133,200,103,78,100,87,133,200,103,78,100,87,133,200,103,78,100,87,133,200,167,4,152,58,172,162,253,241,177,170, +120,22,254,88,75,128,137,166,19,5,165,16,205,38,138,77,9,176,1,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,115,34,187,42,68,62,37,192,212,97,21,237,143,143,85,197,179,240,199,90,2,76,140,27,81,112,10,49,214,68,177,104,72,128,13,16,217,85, +33,242,153,19,217,85,33,242,153,19,217,85,33,242,153,19,217,85,33,242,41,1,166,14,171,104,127,124,172,42,158,133,63,214,18,96,66,8,209,143,4,216,0,145,93,21,34,159,57,145,93,21,34,159,57,145,93,21,34,159,57,145,93,21,34,159,18,96,234,176,138,246,199, +199,170,226,89,248,99,45,1,38,132,16,253,72,128,13,16,217,85,33,242,153,19,217,85,33,242,153,19,217,85,33,242,153,19,217,85,33,242,41,1,166,14,171,104,127,124,172,42,158,133,63,214,18,96,66,8,209,143,4,216,0,145,93,21,34,159,57,145,93,21,34,159,57,145, +93,21,34,159,57,145,93,21,34,159,18,96,234,176,138,246,199,199,170,226,89,248,99,45,1,38,132,16,253,72,128,13,16,217,85,33,242,153,19,217,85,33,242,153,19,217,85,33,242,153,19,217,85,33,242,41,1,166,14,171,104,127,124,172,42,158,133,63,214,18,96,66,8, +209,79,35,4,152,16,141,64,2,76,29,86,209,254,248,88,85,60,11,127,172,37,192,132,16,162,31,9,48,209,42,72,128,169,195,42,218,31,31,171,138,103,225,143,181,4,152,104,26,69,108,137,14,34,58,198,237,142,4,152,104,21,36,192,212,97,21,237,143,143,85,197,179, +240,199,90,2,76,52,141,34,182,210,164,101,151,77,43,76,154,36,218,152,55,173,176,66,90,101,165,149,194,99,220,238,72,128,137,86,65,2,76,29,86,209,254,248,88,85,60,11,127,172,37,192,68,211,80,199,181,51,168,213,49,236,4,36,192,68,171,80,85,128,205,159, +221,147,190,241,181,43,211,105,167,46,14,183,87,225,172,51,78,75,219,44,152,83,174,127,245,242,75,151,172,143,6,252,204,216,100,90,184,205,227,235,170,14,171,104,119,124,172,42,158,133,63,214,18,96,162,105,168,227,218,25,72,128,41,142,197,216,83,85,128, +221,117,231,237,233,176,131,15,104,136,88,186,230,91,87,167,221,119,94,84,174,227,215,214,71,3,126,250,186,167,135,219,60,190,174,234,176,138,118,199,199,170,226,89,248,99,45,1,38,154,134,58,174,157,129,4,152,226,88,140,61,85,4,24,194,230,233,167,159, +42,133,210,198,27,174,91,166,49,218,228,191,27,150,158,143,70,89,58,35,105,185,0,219,103,207,93,203,239,150,102,108,176,206,90,101,218,142,219,109,61,40,29,72,51,127,124,247,2,140,79,75,207,241,117,85,135,85,180,59,62,86,21,207,194,31,107,9,48,209,52, +212,113,237,12,36,192,20,199,98,236,169,34,192,206,63,247,236,244,194,243,207,151,159,136,27,70,193,238,191,239,87,229,119,132,207,129,159,222,187,204,135,200,34,253,226,11,47,72,183,220,124,83,90,124,194,177,101,58,34,13,1,199,20,70,210,201,227,5,216, +207,238,249,105,57,133,144,109,136,51,219,47,105,236,131,79,242,89,58,254,109,255,54,37,210,4,152,149,205,196,88,142,175,171,58,172,162,221,241,177,170,120,22,254,88,75,128,137,166,161,142,107,103,32,1,166,56,22,99,79,21,1,6,143,61,250,200,146,117,132, +143,137,46,70,154,16,78,172,35,148,188,232,122,240,193,7,202,117,166,46,178,141,117,192,151,23,96,254,185,50,108,24,249,178,239,6,2,14,159,108,243,101,49,240,195,72,218,112,226,11,124,93,213,97,21,237,142,143,85,197,179,240,199,90,2,76,52,13,117,92,59, +3,9,48,197,177,24,123,70,35,192,24,177,2,68,15,92,127,221,181,101,250,247,111,188,161,20,64,150,14,164,35,190,142,61,234,176,37,246,209,20,68,219,134,15,155,114,200,72,23,121,201,243,234,171,175,150,194,138,109,230,215,67,26,226,205,143,160,69,248,186, +170,195,42,218,29,31,171,138,103,225,143,181,4,152,104,26,234,184,118,6,18,96,138,99,49,246,140,70,128,229,130,202,224,237,134,144,167,147,23,49,101,223,17,111,181,70,192,16,112,140,116,33,202,16,99,164,49,234,197,20,72,4,24,235,140,134,89,126,3,63,76, +63,196,38,42,155,225,235,170,14,171,104,119,124,172,42,158,133,63,214,18,96,162,105,168,227,218,25,72,128,41,142,197,216,51,26,1,134,208,97,180,9,225,196,84,68,166,24,146,142,64,34,157,41,138,8,40,155,142,104,233,228,231,57,48,123,161,7,219,16,78,136, +46,219,102,211,25,25,233,194,6,255,164,179,127,155,90,200,40,23,163,110,248,55,177,133,31,182,219,212,71,189,132,67,76,4,124,172,42,158,133,63,214,18,96,162,105,168,227,218,25,72,128,41,142,197,216,83,85,128,229,111,34,68,236,48,218,133,112,242,98,199, +210,253,127,125,1,194,8,193,132,240,50,161,68,58,121,120,121,7,66,138,237,254,249,47,242,34,230,240,15,126,27,223,253,62,248,180,237,248,111,166,0,99,191,190,174,6,229,160,14,70,94,38,219,238,211,114,104,27,155,226,57,17,161,93,107,29,75,218,61,143,75, +207,112,109,75,236,248,169,175,237,138,143,85,9,48,225,143,181,4,152,104,26,234,184,118,6,18,96,138,99,49,246,84,21,96,157,130,175,107,163,58,172,8,41,70,224,242,116,196,35,35,119,108,3,58,253,150,159,105,152,140,4,242,201,243,109,54,138,152,67,94,63, +250,56,81,160,61,152,118,202,104,38,245,7,47,114,105,75,123,14,49,223,198,20,89,123,22,145,109,81,219,50,138,58,220,84,213,118,193,199,170,4,152,240,199,90,2,76,52,13,117,92,59,131,137,46,192,150,95,110,185,52,101,242,228,180,242,148,41,66,140,25,171, +174,188,114,122,239,154,107,14,138,61,136,110,234,157,132,175,107,51,4,24,228,233,60,167,102,98,12,76,100,213,26,69,99,155,125,39,143,253,199,26,35,64,140,242,144,199,182,231,163,62,228,183,209,70,15,105,228,181,125,50,146,228,71,24,241,105,144,151,237, +209,136,18,163,83,222,79,35,160,126,136,82,63,186,133,136,162,29,172,140,8,51,95,94,3,241,181,180,23,177,128,23,96,86,63,219,102,117,178,239,214,14,246,157,252,181,234,75,58,182,228,161,30,249,232,157,249,37,31,219,249,238,125,131,29,87,243,227,183,229, +248,88,149,0,19,254,88,75,128,137,166,33,1,214,25,76,116,1,182,254,212,169,169,183,187,59,245,245,246,10,49,102,204,238,235,75,243,231,206,29,20,123,16,221,212,59,9,95,215,241,16,96,116,168,89,242,142,53,130,192,191,168,196,192,183,9,48,4,3,207,200,209, +65,7,70,121,16,28,76,81,228,147,60,148,195,196,4,121,236,245,253,230,15,232,252,51,122,68,217,216,47,223,177,247,47,67,49,63,228,33,47,251,224,89,60,132,143,229,161,60,148,141,114,71,101,31,41,248,165,110,121,58,35,98,38,96,40,147,253,21,130,135,242, +44,77,180,128,9,48,242,226,203,166,35,146,70,221,169,55,101,160,253,217,102,207,38,2,226,57,170,47,194,154,116,108,105,79,4,150,23,207,222,15,117,33,191,237,135,253,146,206,49,163,141,105,111,124,89,125,107,225,99,85,2,76,248,99,45,1,38,154,134,4,88, +103,48,209,5,152,16,227,73,116,83,239,36,124,93,155,33,192,232,128,179,13,232,100,35,106,188,136,49,120,254,45,26,185,49,1,198,8,144,137,47,210,233,152,155,232,2,242,176,141,124,230,7,129,18,61,63,134,208,34,221,11,21,70,106,76,244,176,79,43,35,117,176, +183,81,2,101,48,129,71,157,200,107,219,26,5,251,68,236,229,233,236,219,132,10,162,145,253,83,102,19,79,8,158,232,13,153,17,180,17,109,238,197,23,176,15,252,176,206,118,202,194,58,237,107,233,180,77,244,92,154,127,185,140,65,219,153,127,218,220,166,67, +178,80,7,214,105,79,107,99,242,70,113,80,11,31,171,237,40,192,136,89,218,204,98,170,22,150,207,83,43,143,157,35,19,17,127,172,37,192,68,211,144,0,235,12,36,192,132,24,63,162,155,122,39,225,235,218,12,1,70,103,218,58,140,228,163,19,207,244,186,188,147, +136,152,242,130,202,192,134,209,18,58,247,38,62,0,223,8,1,19,119,64,135,30,191,136,5,196,21,29,126,47,46,12,242,48,138,131,61,251,180,178,152,15,182,217,20,73,246,227,71,198,172,62,172,215,43,118,170,130,72,137,218,147,122,229,245,161,188,94,132,209, +86,126,123,45,168,7,254,176,181,250,243,137,189,111,83,59,38,214,38,8,5,68,155,247,101,152,144,98,187,181,17,229,50,177,75,123,217,190,124,57,125,252,176,63,223,222,75,195,199,106,59,10,48,139,111,234,79,60,210,126,209,8,38,249,56,111,252,177,177,109, +228,71,56,211,238,164,115,92,45,126,71,67,116,238,180,58,254,88,75,128,137,166,33,1,214,25,72,128,9,49,126,68,55,245,78,194,215,181,25,2,204,70,80,60,116,250,173,131,110,208,249,140,166,212,225,155,142,59,194,205,143,188,208,57,172,53,82,194,212,53,70, +111,232,136,70,219,13,196,0,62,172,195,207,254,177,101,63,54,218,67,249,189,240,243,2,140,122,80,62,219,214,40,216,55,157,114,19,43,96,29,112,43,151,135,50,90,135,155,78,120,212,142,57,86,111,240,237,200,126,163,58,177,95,142,177,181,109,190,221,131, +40,244,226,148,246,196,198,143,234,249,99,227,227,199,143,96,214,131,143,213,118,21,96,254,220,169,37,64,201,23,197,51,49,66,28,218,200,226,210,176,145,54,98,216,98,9,223,124,247,199,157,24,66,212,145,110,130,144,79,111,215,138,248,99,45,1,38,154,134, +4,88,103,32,1,38,196,248,17,221,212,59,9,95,215,70,10,48,58,135,38,184,76,116,249,117,15,157,56,251,149,158,142,35,29,189,104,244,11,124,199,147,206,163,141,216,0,29,123,58,245,248,243,246,116,16,17,0,209,190,129,206,37,157,92,62,17,44,54,21,206,58,179, +126,202,33,62,106,9,48,124,208,121,102,123,212,105,30,13,248,163,108,8,23,214,125,39,155,242,82,95,190,211,134,38,80,217,70,217,16,81,180,169,181,191,239,88,27,212,195,234,69,125,109,221,246,197,119,240,83,227,200,199,177,240,194,208,67,153,104,83,202, +228,219,208,202,104,237,12,94,76,80,62,19,33,118,92,41,55,101,241,54,17,62,86,59,65,128,209,86,209,244,83,127,30,120,104,159,40,189,22,228,101,68,146,99,133,45,113,195,119,218,219,98,153,124,196,7,113,96,241,67,62,190,35,192,137,173,165,137,240,241,194, +31,107,9,48,209,52,36,192,58,3,9,48,33,198,143,232,166,222,73,248,186,54,170,195,74,167,153,142,191,135,116,58,110,144,231,7,58,116,116,246,232,224,249,78,126,14,190,253,118,235,52,178,206,47,242,116,4,241,145,79,151,162,163,89,107,223,164,35,94,162, +14,62,157,81,63,130,100,157,79,251,206,8,156,159,34,198,118,58,205,86,231,70,194,190,40,35,117,244,207,92,217,72,4,251,165,30,190,60,64,121,73,167,93,104,227,124,59,224,207,183,163,111,99,214,205,214,215,157,114,12,55,58,101,101,162,253,252,62,241,71, +231,221,231,245,251,227,24,231,199,129,242,179,63,191,255,8,31,171,237,42,192,136,85,218,27,113,131,80,245,109,227,243,249,41,136,196,41,233,180,145,23,108,196,139,29,59,75,243,176,175,90,219,56,6,38,156,57,150,254,88,99,131,111,214,57,182,249,241,108, +21,252,177,150,0,19,77,67,2,172,51,144,0,19,98,252,136,110,234,157,132,175,107,59,118,88,235,129,206,187,117,80,171,128,40,161,99,89,107,132,103,34,67,155,248,209,194,42,208,145,231,152,68,219,70,139,143,213,118,22,96,8,215,72,120,25,150,47,79,183,81, +92,251,142,15,132,146,31,85,243,224,195,199,55,49,207,185,2,248,49,187,92,128,217,136,152,9,192,90,254,199,27,127,172,37,192,68,211,144,0,235,12,36,192,132,24,63,162,155,122,39,225,235,90,207,249,184,238,135,223,23,250,105,85,232,24,210,153,92,218,200, +73,14,83,178,152,90,53,92,39,120,162,194,232,7,237,90,107,228,164,22,136,53,236,16,23,209,246,81,243,193,246,143,103,132,85,61,98,166,150,0,35,206,25,25,99,187,165,33,158,106,249,204,125,112,174,152,56,246,118,172,251,31,49,56,63,24,89,179,239,45,73, +28,15,75,4,216,250,5,187,74,128,137,177,64,2,172,51,152,32,2,108,102,63,123,74,128,137,86,34,188,177,119,16,190,174,245,156,143,31,157,170,209,32,209,154,172,191,246,7,6,197,106,59,198,115,21,1,198,179,125,136,32,195,182,33,160,16,86,164,217,203,105, +234,21,96,8,43,166,48,34,174,189,29,163,100,76,135,100,132,13,145,103,2,144,105,146,236,131,169,143,222,79,43,80,35,30,74,1,54,165,96,189,130,157,37,192,196,88,176,252,114,203,165,41,147,39,167,149,167,76,17,109,204,170,43,175,156,222,187,230,154,225, +49,110,119,250,47,136,123,20,244,20,244,178,46,1,38,90,141,232,230,222,9,228,245,172,231,124,252,248,71,63,18,250,18,98,188,217,104,253,15,13,138,213,118,140,231,232,249,183,8,242,49,42,229,241,219,17,72,136,34,68,24,98,170,150,207,124,132,23,191,8,56, +166,45,242,108,151,127,214,144,117,70,47,109,116,13,33,70,62,210,70,50,21,117,172,169,17,15,187,20,44,243,191,10,214,41,88,36,1,38,198,130,245,167,78,77,189,221,221,169,175,183,87,180,49,179,251,250,210,252,185,115,195,99,220,238,184,95,164,186,10,102, +20,236,34,1,38,90,141,232,230,222,9,228,245,172,247,124,228,151,229,200,159,16,227,197,212,15,191,63,117,109,178,254,160,56,85,60,79,92,134,137,135,29,11,150,121,71,193,135,10,62,177,206,90,239,121,214,103,18,66,136,137,192,26,255,251,157,127,45,174, +129,139,10,54,45,216,164,96,187,181,255,113,13,93,15,69,203,17,221,228,219,153,168,142,245,158,143,155,109,60,53,173,247,17,117,90,69,107,64,103,123,179,143,173,59,40,70,65,241,60,49,89,74,60,108,91,176,204,91,11,222,91,48,107,245,119,77,254,241,204, +205,167,13,201,44,132,16,157,202,166,211,214,78,239,89,109,202,131,197,53,112,65,193,71,11,120,38,118,238,187,87,125,167,174,135,162,101,137,110,248,237,68,84,39,24,201,249,248,177,13,62,172,142,171,24,55,214,251,200,251,211,180,245,62,52,100,164,3,20, +207,19,143,58,227,97,110,193,50,111,42,88,173,224,227,239,89,125,213,75,167,126,168,51,159,241,16,66,136,8,46,136,107,172,182,242,119,139,107,32,83,67,62,88,176,86,193,244,53,222,189,138,174,135,66,52,25,157,143,162,147,80,60,11,143,139,135,205,10,150, +153,84,192,115,96,31,46,152,255,238,85,223,241,192,71,62,176,122,104,40,132,16,157,198,219,222,248,250,167,222,240,134,215,111,87,92,255,166,22,188,187,128,31,164,214,214,245,80,136,230,163,243,81,116,18,138,103,225,113,241,192,187,55,150,249,187,130, +183,20,16,20,27,78,126,199,91,15,90,109,149,183,63,68,80,252,227,154,239,10,29,8,33,68,187,195,245,141,139,225,228,119,172,120,100,113,237,251,88,193,63,20,76,46,224,185,88,110,148,186,30,10,209,36,116,62,138,78,66,241,44,60,53,226,97,153,191,45,88,174, +224,237,5,107,20,76,43,88,176,218,170,147,191,253,174,41,43,62,60,229,109,147,210,219,223,244,122,33,132,232,24,38,191,117,210,239,87,249,95,43,126,239,13,111,120,253,246,197,245,110,227,130,255,83,240,206,130,21,10,150,47,208,245,80,136,38,161,243,81, +116,18,138,103,225,25,38,30,150,249,155,130,215,23,16,20,166,204,25,30,157,94,192,67,98,11,11,118,42,216,181,128,215,104,10,33,68,59,194,53,140,107,25,215,180,121,5,155,23,172,91,192,47,81,118,115,228,90,168,235,161,16,99,143,206,71,209,73,40,158,133, +167,158,120,40,23,19,97,60,15,182,98,193,74,5,171,23,188,191,224,35,5,204,93,229,205,45,176,129,16,66,180,33,92,191,184,150,113,77,251,64,1,23,194,149,11,120,19,44,215,62,174,129,175,43,208,245,80,136,177,71,231,163,232,36,20,207,194,179,148,120,88,230, +245,255,31,190,10,252,25,242,221,162,193,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; -const char* GlobalEditor_864x144_png = (const char*) temp_binary_data_12; +const char* GlobalEditor_864x144_png = (const char*) temp_binary_data_13; //================== OperatorEditor_287x218.png ================== -static const unsigned char temp_binary_data_13[] = -{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,31,0,0,0,218,8,6,0,0,0,159,5,70,254,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,0,7,116,73,77,69,7,222,9,16,3,31,30,140,250,111,181,0,0,0,29,105,84,88,116,67,111,109,109,101,110, -116,0,0,0,0,0,67,114,101,97,116,101,100,32,119,105,116,104,32,71,73,77,80,100,46,101,7,0,0,32,0,73,68,65,84,120,218,237,157,123,124,19,85,250,255,223,147,164,147,82,18,46,77,87,155,254,190,75,139,210,214,181,173,75,91,86,145,149,155,34,119,81,89,92,117, -215,239,42,42,138,171,130,178,224,34,184,32,10,138,11,11,138,178,162,40,136,43,138,138,168,220,4,111,8,42,23,191,189,32,109,193,94,118,105,171,54,181,144,172,154,64,201,180,73,126,127,76,50,77,218,180,180,64,41,109,207,251,245,138,210,201,204,153,147, -121,206,124,230,57,207,121,230,28,9,136,244,127,76,64,119,255,167,27,208,213,191,61,2,208,3,18,2,129,64,208,52,62,192,3,212,2,39,128,99,128,19,248,201,255,113,1,213,128,98,240,11,76,15,32,6,56,63,241,130,248,254,125,122,39,12,176,198,158,127,193,47,255, -231,255,37,136,107,41,16,8,78,133,111,191,251,190,236,200,81,123,121,105,249,183,217,121,135,138,118,0,149,192,209,128,72,73,192,47,129,243,205,166,174,23,13,236,255,155,91,127,147,153,62,204,102,179,1,16,248,191,64,32,16,180,20,171,213,170,253,255,224, -161,111,254,111,219,39,59,151,59,143,29,255,198,47,66,63,74,64,42,144,48,126,204,136,135,99,44,61,7,8,193,17,8,4,173,33,68,110,165,166,112,205,186,119,102,2,135,129,74,61,144,152,116,97,194,240,139,47,74,188,201,86,105,83,35,59,226,35,62,226,35,62,103, -240,227,114,185,232,209,163,123,12,248,220,182,31,142,124,3,28,51,0,221,146,19,47,188,188,41,143,199,235,245,114,226,132,155,154,90,15,62,159,15,165,166,70,72,185,64,112,138,24,244,122,244,122,61,70,57,2,89,150,209,233,58,199,88,142,205,102,227,162,164, -62,191,201,254,186,224,29,160,139,1,232,218,37,210,152,88,125,188,182,193,206,62,159,15,167,235,56,39,220,110,209,98,4,130,51,68,173,199,67,173,199,131,91,81,128,99,116,137,52,210,53,42,170,83,136,80,132,193,112,1,16,5,200,6,32,242,68,245,241,88,73,146, -26,8,207,207,174,99,40,74,13,245,191,19,8,4,103,142,19,110,133,154,218,90,122,118,239,134,78,167,235,208,191,213,225,176,71,2,70,32,66,135,154,199,211,128,99,199,171,81,20,209,189,18,8,206,6,30,143,151,159,126,118,117,154,158,39,160,51,0,186,250,249, -131,94,175,151,227,213,110,154,202,43,220,155,253,181,104,49,109,76,255,204,95,159,181,115,37,38,37,83,86,122,24,69,81,58,204,245,139,181,198,113,253,239,38,160,40,10,91,54,109,68,81,220,56,236,246,211,42,51,218,98,225,129,105,51,152,51,123,102,139,143, -173,169,245,224,118,215,96,52,202,29,189,233,234,0,201,16,78,97,154,235,241,116,49,26,59,188,155,120,78,90,78,167,163,91,183,110,173,122,142,248,132,4,220,110,133,74,91,5,0,55,222,252,7,254,181,102,53,101,165,165,29,230,58,62,244,240,108,62,223,185,131, -252,188,60,50,50,251,161,40,110,62,254,112,251,105,149,41,203,70,82,211,210,78,249,248,106,183,187,51,136,15,1,241,105,216,7,109,198,211,77,47,73,24,141,70,12,6,131,80,131,179,109,53,255,181,111,41,38,147,25,75,140,5,167,211,73,124,66,111,10,242,14,160, -40,10,41,169,105,200,70,35,197,133,133,184,92,78,100,89,230,142,73,147,41,200,207,163,168,168,144,220,236,44,222,125,103,61,182,138,10,173,172,192,49,101,165,135,79,219,91,104,43,175,39,41,41,153,127,173,89,141,221,126,20,103,182,19,69,113,99,50,153, -137,79,72,160,32,63,79,243,100,204,102,179,38,186,41,169,170,176,4,190,15,144,158,217,15,32,228,26,157,90,247,203,211,121,30,162,225,54,214,214,214,138,59,188,3,146,152,156,204,35,115,31,99,233,178,229,254,39,189,194,232,177,227,24,54,124,4,25,153,253, -120,245,245,117,196,90,227,72,73,187,132,248,132,4,18,147,146,200,240,223,84,143,63,177,144,104,75,12,0,51,102,206,230,129,191,204,96,208,224,33,44,127,225,37,250,95,62,160,221,93,139,49,215,140,67,54,202,100,100,246,195,98,137,97,204,53,227,232,127, -249,111,81,20,55,15,252,101,6,233,153,253,144,101,153,167,22,47,197,100,50,3,48,117,218,116,254,247,182,137,12,27,62,130,53,107,215,33,203,170,135,114,207,125,83,120,96,218,116,6,13,30,194,67,15,207,62,237,216,79,103,10,252,52,192,235,245,137,59,181, -131,18,159,144,192,248,107,198,224,114,57,1,216,186,121,99,80,151,65,102,240,144,161,188,249,198,90,138,139,10,217,178,121,19,185,217,89,13,60,134,193,67,134,50,118,228,48,0,118,237,252,140,235,199,79,96,239,158,221,237,234,58,188,252,226,10,198,140, -189,134,151,95,92,1,192,160,33,67,253,33,7,133,249,243,230,176,112,241,82,114,178,178,216,187,103,55,5,249,121,218,239,30,63,110,140,38,56,195,134,143,100,235,230,141,140,25,59,142,241,227,70,163,40,10,131,134,12,229,129,105,211,69,67,107,174,248,212, -15,250,136,129,245,118,210,253,58,133,253,247,238,222,205,49,151,83,59,118,216,240,17,12,28,60,20,139,197,130,53,46,142,173,155,55,105,223,73,245,206,33,1,214,184,56,242,243,15,104,219,247,103,103,241,212,226,37,237,182,205,212,255,173,18,80,94,90,202, -190,221,95,50,250,154,113,140,24,58,8,9,72,72,72,64,150,141,44,95,177,82,59,246,152,203,73,82,82,50,118,251,81,106,20,5,9,40,46,44,60,237,123,72,234,84,226,83,47,143,71,164,245,180,151,216,79,203,27,181,162,184,181,227,76,38,51,83,167,205,96,194,181, -234,83,123,250,204,217,33,229,26,141,114,200,57,36,9,42,109,21,36,37,37,107,219,19,147,146,41,200,203,107,183,109,166,254,239,147,36,213,187,235,63,224,183,124,252,225,118,238,184,107,50,171,86,174,96,127,78,22,46,151,147,251,239,153,20,114,188,44,203, -88,44,49,90,57,113,113,113,167,125,15,117,150,188,58,17,45,238,196,40,138,27,69,113,51,108,248,72,76,102,51,137,73,201,236,243,119,159,246,231,100,115,203,173,19,81,220,10,185,57,117,93,175,74,91,5,57,217,89,204,154,51,143,131,249,121,92,59,126,2,171, -86,190,208,97,174,137,44,203,204,91,176,144,69,79,46,160,32,255,0,207,174,120,137,220,236,44,114,115,178,200,201,206,226,201,69,75,248,248,163,237,152,77,106,16,58,55,39,139,189,123,190,228,201,69,75,216,183,103,55,233,25,253,68,195,106,38,122,32,227, -162,62,189,199,5,111,60,118,188,250,164,7,126,111,251,1,163,24,106,111,163,167,181,58,218,101,138,138,108,209,113,46,167,147,226,162,66,126,250,233,71,64,29,89,217,181,243,51,18,147,147,177,85,84,176,102,213,75,148,149,149,226,114,169,251,185,156,46, -18,147,147,57,240,245,126,10,242,243,248,254,187,111,241,120,60,236,219,179,155,234,234,106,226,19,122,179,246,213,213,33,226,212,158,40,200,207,227,72,85,21,0,54,91,5,101,101,135,1,137,60,255,239,245,120,60,236,254,98,23,6,131,1,135,221,206,238,47,62, -7,9,226,227,123,83,117,228,7,190,57,116,144,234,234,106,62,223,249,25,149,182,10,44,150,24,222,90,183,150,221,95,124,126,90,35,128,93,163,162,58,116,251,253,166,228,240,38,160,74,2,238,188,110,228,149,43,131,191,172,58,122,242,11,183,47,251,0,102,179, -89,12,181,183,145,248,152,205,102,98,99,186,139,139,209,1,57,47,198,210,161,127,223,123,219,62,157,4,228,27,180,96,128,64,32,56,71,158,46,157,227,103,138,62,147,64,32,104,19,78,185,207,100,52,26,137,140,140,20,49,159,182,120,98,232,116,90,130,155,64, -208,233,196,39,45,45,141,232,232,104,33,62,109,36,62,17,17,17,84,126,119,88,92,12,65,251,22,159,6,121,5,205,200,51,208,83,195,79,142,31,196,21,108,211,216,128,8,214,117,76,179,118,14,187,10,183,69,32,16,8,241,17,8,4,66,124,4,2,129,64,136,143,64,32,16, -226,35,16,8,4,66,124,4,2,65,251,197,63,159,79,189,41,53,196,251,22,2,65,155,209,89,238,63,225,249,8,4,130,54,244,124,26,76,38,38,60,31,129,160,205,60,31,145,100,40,16,8,4,66,124,4,2,129,16,31,129,64,32,16,226,35,16,8,132,248,8,4,2,129,16,31,129,160,93, -162,215,119,158,91,82,136,143,64,112,14,33,71,68,116,154,223,218,200,100,98,162,17,8,4,109,65,151,200,200,78,182,104,160,16,27,129,160,205,137,48,24,144,141,157,199,243,17,221,46,129,224,28,64,146,36,186,117,51,117,170,223,44,86,252,19,8,218,218,3,208, -233,232,217,163,27,17,157,108,1,78,33,62,2,65,91,117,179,34,12,68,26,141,68,117,137,236,148,239,83,10,241,233,164,46,190,209,40,19,41,203,232,13,250,78,247,196,21,156,67,226,83,95,115,69,252,185,227,138,142,169,107,23,186,70,69,137,139,33,16,158,143, -224,236,9,79,143,238,102,140,98,165,83,193,57,130,24,237,234,36,116,55,155,132,240,8,206,193,110,151,152,76,172,67,163,215,235,233,210,37,50,236,119,74,77,13,110,183,66,77,109,45,138,82,35,46,150,224,148,145,229,8,12,6,3,70,57,162,89,15,58,209,237,234, -4,116,137,52,54,216,230,245,122,57,118,188,154,99,199,171,197,5,18,156,17,20,165,6,69,169,225,248,241,106,186,68,26,49,155,186,162,211,233,78,38,62,34,228,220,145,137,136,136,104,96,83,215,177,106,142,87,159,16,182,22,180,10,213,39,20,188,94,31,61,123, -116,111,116,31,17,243,233,12,221,174,122,79,31,69,169,241,11,143,64,208,122,184,149,26,170,79,156,16,226,211,153,49,212,203,227,57,161,184,197,69,17,156,21,78,184,21,33,62,130,80,207,71,32,104,235,182,38,196,167,19,82,91,235,17,23,65,112,86,240,249,124, -141,123,228,103,226,4,151,246,191,156,232,104,11,219,182,110,22,87,219,79,108,172,149,113,215,143,71,81,20,182,109,217,140,162,40,56,28,118,113,97,4,130,51,233,249,68,71,91,136,181,90,155,220,71,150,101,250,166,103,116,154,11,59,237,161,153,84,86,218, -248,98,215,78,250,102,100,210,55,35,83,180,54,129,224,76,120,62,38,147,137,62,137,73,40,138,18,86,140,122,197,199,83,82,92,132,203,229,2,96,194,141,55,211,43,62,30,128,131,5,249,97,143,59,25,178,44,115,113,74,42,0,149,54,27,149,149,54,0,46,78,73,69,150, -101,202,203,202,66,188,139,216,88,43,177,86,107,200,190,177,177,86,20,69,65,150,101,162,45,22,14,22,228,135,148,187,63,55,71,59,190,87,124,60,209,209,150,22,215,55,54,214,74,159,164,36,94,255,215,26,28,118,59,251,157,217,218,241,125,18,147,40,47,43,229, -226,148,84,20,69,225,96,65,126,200,177,129,122,212,223,46,16,116,52,244,64,70,74,114,159,113,193,27,93,199,142,159,84,4,86,175,93,135,201,108,38,237,215,191,230,242,223,94,65,121,89,25,251,115,115,232,147,152,196,188,39,22,162,40,10,19,110,188,25,189, -222,128,203,233,228,198,63,222,130,201,108,6,160,240,155,67,167,36,62,207,174,88,73,239,11,46,68,54,26,49,153,205,148,20,23,49,243,145,57,92,61,114,20,93,186,116,225,142,187,239,161,240,155,67,28,57,82,69,159,196,36,254,240,167,91,49,153,205,76,184,233, -102,0,74,138,139,152,112,227,205,92,61,114,36,131,135,94,133,82,83,67,165,205,198,223,151,46,195,227,241,208,43,62,129,95,156,119,62,37,197,69,140,28,61,150,123,238,159,138,162,40,220,115,255,84,74,138,139,56,114,164,170,89,245,156,112,227,205,164,253, -186,47,14,135,157,35,71,170,184,242,234,225,116,239,209,131,146,226,34,230,60,190,128,203,127,123,5,177,214,56,250,102,100,112,253,132,223,107,221,213,153,143,204,33,243,55,151,242,139,243,206,227,174,63,223,199,182,173,155,241,120,78,63,62,99,234,26, -250,34,233,201,236,43,16,156,73,234,183,191,130,194,146,77,64,213,41,121,62,23,167,164,82,82,84,196,194,249,143,105,55,77,128,43,135,93,205,43,47,175,228,139,93,59,137,142,182,240,247,165,207,176,109,235,102,246,231,100,3,240,202,203,43,57,213,115,58, -236,118,30,153,57,35,196,251,234,155,145,201,77,227,175,85,99,79,251,246,50,238,250,241,28,44,200,167,164,184,174,126,151,22,228,51,238,186,241,218,77,30,107,141,227,207,147,110,7,160,111,122,6,38,147,153,109,91,54,107,222,81,224,119,60,244,224,84,28, -14,59,229,101,101,140,28,61,182,217,222,200,43,47,175,100,228,152,177,218,111,189,98,208,224,144,239,75,138,139,180,239,94,125,227,109,162,163,45,184,92,78,122,197,39,104,245,154,54,99,38,87,12,26,194,167,31,127,40,90,175,64,116,187,52,33,72,77,163,164, -184,72,251,251,96,65,62,209,209,22,245,166,189,122,56,125,51,50,153,112,163,234,109,4,186,93,167,75,223,140,204,144,115,2,92,218,127,0,37,69,65,245,200,207,211,132,240,226,148,84,38,220,120,147,191,251,148,16,82,143,128,16,6,186,89,175,188,188,146,191, -47,93,70,73,113,33,47,254,115,57,14,135,157,190,25,153,204,121,124,65,157,96,20,21,158,177,139,30,44,98,14,135,93,141,135,101,100,18,107,181,242,244,242,21,97,247,19,8,58,164,248,248,8,29,14,171,255,119,125,202,202,74,185,106,216,213,218,126,191,236, -21,207,49,151,11,31,62,114,115,178,249,106,239,158,6,79,108,69,81,232,106,50,157,180,236,198,40,200,207,227,134,27,111,14,57,190,172,236,48,125,146,146,180,109,23,38,38,177,63,39,27,31,62,238,123,96,26,207,62,253,15,14,22,228,115,229,176,225,92,123,253, -120,109,63,69,81,66,202,249,228,227,237,124,242,241,118,174,189,254,119,76,123,104,38,51,166,77,161,188,172,148,39,31,127,52,196,27,106,41,161,191,213,231,255,219,135,219,237,14,250,78,221,94,92,84,136,203,233,98,234,189,119,159,113,35,183,212,190,2, -65,107,182,191,211,242,124,190,218,187,155,187,239,185,143,137,119,220,5,192,101,253,7,104,98,179,241,221,119,120,248,145,71,177,90,227,40,43,43,197,106,181,242,246,155,111,144,155,147,197,220,199,159,96,127,110,54,7,243,243,90,236,17,29,44,200,35,218, -114,31,247,77,157,198,183,229,101,148,149,150,114,176,32,143,242,210,82,102,62,50,151,67,254,174,213,11,207,63,167,122,20,118,59,87,12,26,66,124,124,2,151,246,191,188,209,114,47,237,127,57,41,41,105,228,230,100,211,55,61,131,175,246,237,81,127,199,123, -27,88,240,212,98,214,191,249,6,0,118,135,157,175,246,238,105,53,3,57,28,118,74,138,11,89,176,112,49,31,108,221,140,197,98,33,55,39,155,242,178,82,209,122,5,29,146,83,10,56,123,60,30,182,108,122,143,243,206,59,15,187,195,206,139,207,63,75,121,89,41,46, -151,139,35,71,170,200,206,250,138,248,248,4,122,244,232,65,214,255,125,165,5,94,75,138,138,184,228,215,125,57,88,144,215,226,128,179,122,206,247,65,2,179,217,76,225,161,131,252,244,211,79,236,220,241,9,213,213,213,196,199,39,176,250,229,149,90,87,229, -171,189,187,233,209,163,7,178,209,200,218,127,189,194,193,130,124,28,14,59,149,182,138,144,81,184,234,227,213,120,188,30,46,249,117,95,62,219,241,169,38,162,133,223,28,162,164,184,136,139,126,117,49,74,141,210,98,193,60,152,159,167,5,168,43,109,21,148, -151,149,81,93,93,77,73,113,17,229,101,165,218,239,47,41,46,162,178,210,134,199,227,97,231,142,79,1,184,224,130,11,169,170,170,162,164,184,240,148,2,243,39,11,248,53,101,95,89,150,233,125,193,133,103,53,39,233,210,254,151,51,100,232,48,242,14,236,23,119, -100,7,164,126,251,59,88,248,239,77,64,149,4,220,121,195,184,17,33,81,224,170,163,14,188,94,175,184,106,29,132,216,243,98,66,254,174,172,58,218,232,190,163,70,143,101,218,67,15,51,102,248,208,51,34,124,205,97,212,232,177,252,58,35,147,133,243,231,157, -211,215,177,79,98,18,151,245,31,192,218,127,189,210,102,117,184,111,234,52,53,133,163,5,15,135,214,168,119,75,234,81,191,253,189,189,113,251,36,32,63,108,146,161,193,160,23,119,108,71,113,109,245,45,179,229,132,27,111,230,131,45,155,24,53,230,154,70, -247,185,56,37,85,29,105,76,207,212,242,146,122,197,39,208,55,61,19,147,41,116,237,169,192,246,62,137,73,161,79,195,122,199,55,229,137,245,77,207,164,111,122,102,216,114,235,223,100,64,216,114,27,43,167,69,79,112,147,153,95,250,115,213,218,138,196,164, -36,228,22,206,72,217,26,245,62,149,122,132,141,249,212,159,209,37,66,175,167,6,241,242,97,71,32,82,142,104,246,108,77,125,18,147,112,216,237,188,243,214,58,230,60,182,128,141,239,190,19,118,191,185,143,63,65,73,145,218,125,236,155,145,73,165,173,2,147, -73,205,187,90,240,212,98,238,252,211,31,168,172,180,113,105,255,203,185,111,234,95,248,98,215,103,244,205,200,228,171,189,123,120,229,229,23,1,88,180,244,89,28,118,187,150,98,80,94,86,218,160,94,106,170,198,50,190,216,181,19,147,201,132,213,106,101,219, -214,205,140,28,61,150,145,99,198,178,63,39,135,187,255,124,31,75,254,254,36,37,197,69,220,255,192,52,20,183,162,214,199,108,38,218,98,225,129,123,39,55,40,199,104,148,79,41,126,39,5,125,2,34,28,8,55,168,73,183,201,148,151,149,226,112,216,49,153,76,196, -90,227,66,70,104,131,247,15,8,112,83,251,244,138,79,32,58,218,194,254,220,236,176,245,56,213,122,183,180,174,167,91,143,198,246,9,235,249,68,134,153,249,78,208,78,197,199,216,124,91,6,114,161,2,49,169,250,222,74,48,95,236,250,140,23,159,127,142,231,158, -254,7,87,12,26,194,35,51,167,243,226,243,207,177,241,221,119,184,98,240,16,127,121,191,99,201,223,159,228,197,231,159,227,129,123,239,102,220,245,227,145,101,217,159,25,239,230,145,153,211,89,56,127,30,7,243,243,194,123,88,169,105,184,92,78,182,109,217, -196,115,207,44,209,242,180,38,220,120,51,143,252,117,58,175,188,252,34,235,223,124,131,145,163,199,106,199,124,181,111,15,75,22,45,228,177,57,179,233,21,159,160,229,130,185,92,78,94,255,215,43,60,247,204,146,51,50,112,112,219,29,119,49,238,250,223,225, -114,185,136,142,182,240,244,242,23,184,180,255,229,76,123,232,97,254,240,191,183,161,40,10,243,159,90,172,165,160,168,2,248,108,72,87,86,81,20,254,190,116,153,230,45,70,71,91,152,255,212,98,20,69,97,228,232,177,76,123,104,38,125,51,50,121,105,205,90, -122,197,39,156,145,246,208,88,93,207,118,61,26,21,31,57,34,162,193,28,48,130,246,135,193,96,64,150,155,183,246,183,201,100,98,228,152,107,152,112,227,205,60,189,124,5,209,22,11,227,174,27,223,232,254,129,192,190,195,110,167,164,184,72,187,169,20,69,193, -100,82,51,217,47,237,127,185,246,180,84,20,133,242,178,82,250,36,38,169,57,91,65,249,89,245,243,183,130,5,238,211,143,63,226,233,127,190,192,204,71,230,170,79,232,88,43,189,226,19,152,255,212,98,158,94,190,130,113,215,135,214,49,56,135,43,80,151,79,63, -254,144,47,118,237,228,213,117,235,181,114,78,87,120,98,173,86,45,70,117,197,224,33,108,124,111,3,47,62,255,28,143,205,153,165,137,225,167,31,125,200,149,87,15,7,96,228,152,107,216,182,101,83,3,241,81,247,25,1,168,57,114,159,126,244,161,246,118,64,64, -96,55,190,183,129,43,135,13,63,35,109,226,15,255,123,43,219,182,110,110,164,174,103,175,30,90,183,43,28,61,187,155,113,252,248,243,25,73,239,23,156,125,36,73,162,123,11,214,254,30,57,230,26,54,190,251,14,207,61,179,68,139,145,108,216,188,157,231,158, -89,18,54,240,172,184,221,65,55,81,248,201,201,2,98,19,16,151,94,241,9,148,20,23,33,203,198,144,216,75,172,53,174,209,122,109,124,247,29,54,190,251,14,183,221,113,23,211,30,122,152,199,230,204,198,225,176,243,216,223,102,135,13,118,186,156,206,176,229, -172,127,243,13,214,191,249,6,183,221,113,23,119,221,115,31,75,22,45,60,165,235,218,55,35,19,147,201,28,18,28,191,114,216,213,152,76,102,174,28,118,181,42,200,142,163,152,76,102,54,190,251,14,243,253,233,26,35,71,143,229,177,57,179,26,148,183,109,235, -102,166,61,244,48,27,223,125,135,43,135,13,103,225,252,121,33,2,171,9,116,81,209,25,105,23,234,107,61,153,90,214,125,160,174,103,187,30,154,248,132,155,115,67,167,211,209,179,187,153,31,127,118,82,83,83,43,238,230,118,68,96,237,111,131,94,31,214,182, -225,182,141,28,61,150,39,31,127,84,251,206,237,118,243,201,71,219,25,57,122,44,239,215,143,253,248,252,169,145,62,127,226,164,47,184,76,159,118,142,245,111,190,193,204,71,230,178,109,203,102,250,102,100,176,111,207,110,220,110,55,185,57,89,76,123,104, -38,147,38,223,75,77,141,194,165,253,251,83,86,90,218,160,94,125,51,50,73,73,77,163,32,63,143,139,83,82,249,106,239,30,181,220,117,111,48,255,169,69,108,124,119,3,0,78,167,147,47,118,125,22,82,175,224,122,14,29,118,53,86,107,156,86,206,167,31,127,216, -228,60,51,141,225,195,71,73,81,33,207,62,253,15,158,89,254,34,197,69,223,80,105,179,177,63,71,125,113,120,237,171,175,52,56,166,210,86,193,111,7,14,70,81,220,20,135,201,146,47,46,42,68,150,101,117,31,183,155,178,210,195,154,71,57,239,145,89,13,5,182, -254,111,108,102,189,125,62,245,115,176,32,143,131,5,121,13,234,106,183,31,109,181,122,52,182,79,80,158,143,68,253,143,78,167,35,170,75,23,34,34,34,208,73,58,60,94,31,106,57,146,248,156,131,159,136,136,8,186,70,69,209,163,155,217,63,202,21,126,63,215, -177,234,144,191,101,217,72,225,161,67,20,126,243,77,200,246,194,67,135,112,56,28,252,244,211,79,33,219,15,230,231,241,253,119,223,225,241,120,81,20,133,194,111,212,253,64,162,210,102,211,242,168,74,138,139,56,152,159,79,124,66,111,14,28,248,154,127,189, -178,74,43,227,221,245,111,211,189,103,79,126,250,233,39,94,121,233,69,74,138,139,27,156,71,241,79,193,121,209,175,82,248,96,203,38,127,30,148,196,193,130,124,190,255,238,59,18,147,146,81,20,133,188,3,251,181,243,85,218,108,120,60,222,144,122,186,92,46, -244,122,3,137,73,201,124,176,101,19,123,190,252,226,148,174,111,172,53,142,94,241,9,108,219,186,133,74,155,141,251,31,252,11,31,109,251,128,239,191,251,142,63,223,255,0,191,248,197,249,232,13,6,134,143,28,205,254,156,28,245,55,40,53,60,252,183,71,121, -253,95,107,40,252,230,80,216,114,37,36,238,188,251,30,214,190,182,134,195,255,249,143,127,27,252,105,226,29,72,146,68,98,82,50,177,214,255,71,121,89,25,163,198,140,229,139,93,59,253,65,235,230,215,187,79,98,50,95,236,218,201,145,170,170,144,186,14,185, -114,24,121,95,127,221,170,245,48,117,237,26,218,126,138,130,243,124,174,25,177,82,248,11,157,135,166,242,124,4,77,199,197,162,45,49,90,214,121,240,136,80,172,213,202,192,65,67,48,153,205,236,219,179,91,139,137,201,178,204,150,143,118,112,253,152,17,141, -38,169,202,178,204,197,169,105,28,204,15,77,190,237,155,145,73,122,70,38,14,187,157,125,123,119,83,105,179,105,83,178,180,36,7,171,126,189,155,170,107,107,212,163,65,158,207,38,53,207,71,136,143,16,31,65,43,50,241,206,187,136,136,144,121,209,255,218, -79,103,164,49,241,17,115,56,11,4,173,64,159,196,36,158,89,190,130,243,99,173,90,110,147,32,76,192,89,32,16,156,89,74,138,139,152,122,239,100,113,33,78,71,124,106,106,106,56,33,214,242,110,23,200,114,4,17,254,220,30,227,105,166,190,11,4,103,71,124,194, -228,63,135,93,203,91,172,172,123,78,163,212,212,160,212,212,112,172,250,36,107,101,11,59,10,206,38,82,19,226,19,110,28,222,233,58,38,150,212,109,199,28,175,62,129,199,227,165,103,143,110,13,190,59,149,28,23,129,224,84,105,172,189,133,13,56,139,181,188, -59,6,110,69,105,114,173,108,129,160,237,187,93,97,26,109,115,248,98,95,142,184,130,109,200,21,151,157,124,29,52,183,91,161,75,100,164,184,88,130,246,33,62,45,9,44,119,49,26,195,199,21,4,173,134,78,167,163,91,183,110,205,218,87,169,17,131,4,130,115,88, -124,234,199,131,106,107,107,155,21,147,212,75,18,70,163,81,188,1,127,150,145,252,215,189,57,54,242,121,125,205,158,207,71,32,104,149,246,218,216,67,84,92,26,129,64,208,38,30,188,184,4,2,129,64,136,143,64,32,16,226,35,16,8,4,173,73,216,36,67,145,130,214, -62,104,174,157,132,125,5,109,218,78,91,146,100,40,16,8,4,162,219,37,16,8,132,248,8,4,2,129,16,31,129,64,32,196,71,32,16,8,90,138,255,189,8,145,112,223,177,17,246,21,156,123,237,79,120,62,2,129,160,237,60,159,6,227,240,34,17,164,125,208,76,59,9,251,10, -218,180,153,138,60,31,129,64,112,46,33,196,71,32,16,180,93,183,75,18,19,190,180,79,154,105,39,97,95,65,155,54,83,73,120,62,2,129,64,116,187,4,2,129,16,31,129,64,32,16,226,35,56,27,232,197,132,255,130,179,68,83,225,197,70,242,124,68,34,72,187,160,153, -118,170,111,223,136,8,3,158,19,110,113,253,4,173,78,68,68,132,200,243,17,212,33,71,68,136,139,32,56,75,226,99,16,221,46,65,29,93,34,141,66,128,4,173,223,189,215,235,233,26,213,69,136,143,32,20,179,169,43,17,98,189,53,65,43,10,79,247,110,38,36,169,241, -168,143,104,125,157,20,131,65,79,116,207,238,28,59,94,141,219,173,80,83,91,43,46,138,224,140,180,43,89,150,49,69,117,105,82,120,132,248,8,232,26,213,165,73,215,88,32,104,45,68,183,75,32,16,8,241,17,8,4,66,124,4,2,129,160,85,9,191,104,96,51,147,215,140, -70,35,145,145,145,232,68,198,236,217,125,98,232,116,200,178,220,108,59,53,181,95,77,77,45,110,69,161,166,166,22,165,166,70,92,92,193,41,35,71,68,104,1,103,163,124,242,84,142,211,10,56,167,165,165,17,29,29,45,196,167,13,196,39,34,34,130,31,190,47,61,229, -50,188,94,47,199,171,79,112,236,120,181,184,160,130,51,130,82,83,131,82,83,195,241,234,19,68,70,26,49,119,141,106,82,27,78,75,124,12,212,240,179,227,7,113,213,219,33,174,227,213,84,87,159,16,23,66,208,42,156,56,225,198,235,245,210,179,123,183,198,31, -162,226,50,117,206,39,148,16,30,65,171,183,51,165,134,234,38,222,33,20,226,211,9,113,187,149,118,255,27,250,36,37,113,203,173,19,91,173,252,101,207,175,108,149,114,163,45,22,162,45,150,206,211,214,20,69,136,143,32,216,243,105,255,217,204,102,147,153, -94,189,18,90,173,252,140,204,126,173,82,110,122,70,63,210,51,78,94,246,85,87,143,232,48,222,79,187,23,31,89,150,73,207,200,12,249,200,178,28,198,184,225,183,7,120,116,254,147,103,244,201,115,217,229,3,24,53,246,154,118,213,32,106,59,208,171,20,189,226, -19,72,207,200,36,214,106,13,217,102,50,153,232,21,159,64,159,164,164,144,182,17,252,119,253,118,213,212,57,130,203,15,246,190,130,143,175,223,238,82,82,211,72,207,200,12,105,111,5,249,7,40,200,63,208,224,248,148,212,52,109,159,88,171,149,41,15,78,39, -61,35,147,94,241,9,237,218,62,77,141,180,250,39,144,15,125,7,227,100,239,100,180,5,150,152,24,22,63,179,156,131,249,121,117,66,242,200,195,56,28,118,76,38,19,115,231,63,137,217,100,70,81,20,162,45,22,114,115,178,248,199,83,79,54,40,39,37,245,18,140,70, -227,25,251,141,22,75,12,177,214,184,115,242,154,53,102,207,115,185,174,45,248,81,164,164,165,113,251,164,187,113,216,237,12,28,60,148,89,15,77,163,164,184,136,91,110,157,72,180,197,130,226,86,248,98,215,103,252,187,184,152,135,255,246,40,0,46,167,147, -148,191,166,49,249,206,219,0,152,124,239,20,92,46,23,178,44,51,125,230,108,110,185,241,119,33,215,233,178,254,3,152,120,231,93,76,127,224,190,6,215,109,234,131,51,112,43,110,42,109,21,68,71,199,112,187,217,204,148,63,223,5,192,253,15,252,133,148,212, -52,10,242,243,152,126,249,0,158,93,250,15,246,237,221,205,232,177,215,2,176,250,165,23,152,250,224,12,156,78,39,14,199,81,100,217,200,148,7,167,51,249,206,219,200,200,252,13,150,152,24,210,51,127,67,73,113,33,223,150,151,181,115,83,73,141,139,207,169, -230,249,156,109,5,117,216,237,220,127,207,164,6,79,174,101,255,92,201,107,175,174,230,147,143,182,55,187,172,192,111,12,60,113,10,252,162,150,146,154,70,113,81,33,138,191,175,26,109,177,96,50,153,41,47,43,197,100,50,145,152,148,76,89,89,41,14,187,93, -45,11,159,250,223,115,120,2,182,246,96,223,83,248,81,218,3,8,160,184,184,144,145,99,174,225,217,165,139,193,7,142,163,118,158,120,124,174,102,195,88,107,28,83,252,109,231,209,249,79,210,55,61,131,220,156,108,150,45,93,172,21,217,55,35,147,11,19,19,41, -41,42,82,255,78,207,224,182,59,239,226,47,83,239,197,229,114,53,172,2,112,48,63,143,85,43,95,0,96,197,203,107,56,63,54,86,19,195,27,174,27,163,122,92,59,51,185,118,252,4,246,238,249,146,192,138,141,62,159,218,114,74,138,11,181,227,215,190,181,129,158, -209,209,108,221,188,145,89,115,230,177,106,229,138,14,225,157,54,214,222,218,253,139,165,41,169,105,56,93,206,102,11,79,48,179,254,54,15,0,167,203,201,244,191,206,230,238,59,254,196,168,49,215,208,39,41,153,247,55,172,7,96,202,131,211,249,228,163,237, -184,92,78,254,241,244,114,246,238,249,146,27,110,250,35,7,11,242,120,109,205,106,17,64,106,67,236,254,7,0,64,110,118,22,191,191,241,143,117,127,231,102,133,116,141,227,227,19,66,130,200,177,113,113,144,147,205,221,127,190,31,107,92,28,209,150,24,226, -19,122,99,54,153,181,125,166,207,156,77,110,118,86,88,225,9,80,92,84,24,212,165,202,35,37,245,18,92,46,103,200,246,220,156,108,158,88,180,52,236,241,5,65,158,188,221,110,111,50,100,208,209,104,87,226,19,109,177,132,52,160,41,247,76,34,37,237,146,16,67, -143,26,123,13,86,107,28,46,167,147,183,214,189,222,100,12,169,87,66,2,147,239,184,85,109,104,127,157,197,192,193,67,121,239,221,245,76,255,235,108,222,223,176,30,147,201,68,74,234,37,60,241,216,92,126,127,243,31,121,239,221,245,188,191,97,61,178,44,179, -250,181,117,188,245,198,90,161,0,109,72,98,82,178,246,239,248,132,222,90,44,165,62,170,128,56,53,207,39,88,148,18,147,146,153,254,192,125,154,231,17,204,253,247,76,226,137,191,47,97,212,216,107,248,96,243,166,70,235,240,249,206,207,180,127,191,191,97, -61,138,226,14,169,91,159,164,36,10,242,194,215,77,113,135,31,138,118,187,221,66,124,206,37,28,118,123,131,6,100,171,168,224,138,65,67,66,158,68,138,91,97,242,189,83,154,20,159,244,204,126,88,173,113,33,98,86,80,144,71,73,81,17,70,217,168,6,50,51,251, -177,107,231,14,20,69,225,210,254,3,48,155,204,218,40,132,221,110,199,100,54,11,5,104,99,30,157,255,36,7,243,243,24,53,102,28,203,150,46,10,187,79,165,205,70,89,105,41,179,254,54,143,207,119,237,192,106,141,35,39,39,11,187,253,40,214,184,56,6,14,30,66, -223,48,35,80,14,187,157,89,15,77,227,133,151,95,165,32,47,143,242,178,210,6,251,92,117,245,8,20,69,161,87,175,4,44,22,139,182,79,110,118,22,179,254,54,143,130,130,60,174,187,126,2,171,94,106,89,23,42,55,59,139,219,39,221,205,174,157,59,180,110,160,16, -159,115,140,220,156,44,102,205,153,71,172,213,74,165,205,70,73,81,17,46,167,243,164,199,21,23,21,134,125,26,2,124,176,101,35,195,134,143,160,111,70,63,22,47,92,0,192,254,156,44,20,69,17,93,173,115,132,226,162,66,38,222,114,35,38,179,153,65,131,135,178, -248,169,5,90,23,230,181,87,87,227,114,133,182,129,71,31,153,201,192,193,67,73,76,74,166,184,168,144,202,138,10,92,46,23,115,31,153,201,160,193,67,249,244,163,237,188,189,110,173,214,118,238,159,124,167,38,64,247,223,115,39,178,108,12,91,143,101,75,23, -19,107,141,163,164,184,48,68,252,22,63,181,128,244,204,126,164,164,166,177,224,241,57,154,128,108,221,188,49,232,216,69,84,86,84,132,252,29,136,37,62,241,248,92,6,14,30,138,213,26,39,196,231,92,192,100,54,115,251,164,187,181,191,223,122,99,45,14,187, -157,197,79,45,224,217,231,95,226,131,45,27,41,200,207,227,210,254,3,154,229,69,21,23,21,242,196,223,151,240,193,150,141,88,173,113,236,221,179,155,242,178,82,182,110,222,200,11,171,94,197,233,116,106,79,178,173,155,55,242,143,103,150,211,181,171,137, -253,185,217,164,164,166,105,129,66,193,217,199,229,114,169,177,24,255,3,39,152,112,30,138,162,40,97,227,130,37,69,69,97,111,238,220,156,236,16,207,169,49,20,183,91,139,15,214,63,223,190,61,187,217,183,103,119,3,47,44,248,220,245,235,18,220,62,195,149, -219,145,208,3,25,191,74,188,96,92,240,198,115,241,101,67,69,81,200,251,58,151,74,91,69,208,199,134,199,227,161,164,168,136,207,119,238,240,7,13,19,168,180,217,216,240,246,155,28,169,170,106,80,206,193,252,60,190,255,238,91,60,30,15,159,125,250,9,0,23, -92,216,7,155,205,70,137,127,148,75,81,20,14,124,157,203,135,219,182,106,193,70,151,203,197,238,47,118,113,254,249,231,243,63,191,252,37,251,246,236,230,72,85,21,14,187,157,255,252,187,164,201,160,100,155,139,118,215,40,206,117,251,182,71,250,36,37,83, -80,144,167,121,43,130,230,181,191,67,197,135,55,1,85,18,112,231,248,209,87,133,228,146,255,112,68,92,204,142,196,249,191,8,77,170,20,246,21,180,101,251,219,176,245,147,73,64,190,152,195,89,208,110,169,245,120,240,212,122,58,102,151,196,160,199,160,215, -119,104,251,181,155,36,67,193,169,211,81,237,235,58,118,28,215,177,106,186,117,51,171,191,41,36,145,86,7,120,155,56,250,76,124,79,43,156,67,194,249,179,19,83,215,46,116,55,155,58,100,251,11,17,31,129,160,61,34,33,209,37,42,146,56,107,28,62,124,120,106, -106,33,36,149,223,71,211,171,133,7,237,70,208,174,62,95,93,57,129,34,66,182,249,15,168,191,79,232,29,87,175,46,52,171,30,122,191,96,81,138,0,0,28,104,73,68,65,84,131,158,50,119,13,82,39,176,159,16,31,65,59,127,172,170,255,59,118,188,154,138,242,111,209, -27,12,72,146,20,164,7,62,124,170,122,248,247,151,66,116,163,161,160,213,105,81,176,166,168,165,72,33,251,5,235,86,227,85,243,249,247,149,78,162,119,62,140,178,204,121,231,157,23,168,162,16,31,129,224,92,71,39,73,56,28,255,229,191,63,254,136,193,104,36, -210,40,135,127,153,81,146,192,235,5,157,206,47,50,62,255,102,9,9,73,21,24,73,2,159,132,215,235,5,201,167,149,227,243,169,231,209,202,241,249,37,68,242,59,66,65,221,190,192,63,181,242,53,25,244,31,26,210,13,145,252,213,242,97,140,52,214,149,33,196,71, -32,104,31,158,143,94,175,67,142,144,233,214,221,76,183,110,102,116,146,206,239,117,72,33,226,227,243,121,209,73,58,36,73,194,235,243,250,183,249,208,235,116,32,73,232,144,240,225,197,227,241,106,229,34,73,120,60,94,36,80,203,149,84,193,82,95,14,245,225, -245,120,144,116,122,36,212,185,177,125,254,46,151,20,44,122,190,58,183,202,231,243,161,211,73,117,106,132,15,175,207,7,94,95,167,138,183,10,241,17,116,8,253,209,73,58,12,6,29,166,174,81,244,232,102,70,175,215,251,5,66,187,191,241,249,125,17,157,36,33, -73,18,58,157,14,143,199,163,121,55,122,189,94,245,120,252,222,144,215,171,138,132,78,167,3,159,143,90,143,7,73,39,161,247,139,151,199,191,175,42,56,18,58,29,90,121,234,121,37,240,121,85,9,148,212,137,255,3,101,6,234,67,80,183,203,229,58,222,169,236,38, -196,71,208,129,36,72,2,36,116,58,61,122,189,30,159,175,78,72,2,65,227,128,215,19,216,174,238,231,67,167,211,161,247,127,188,62,31,94,175,23,189,94,135,215,235,197,235,245,162,147,36,109,232,91,242,119,219,130,69,43,32,66,129,242,180,238,149,4,58,41,208, -189,146,208,235,85,143,73,210,73,117,221,49,159,207,223,245,235,92,163,204,98,26,85,65,7,65,82,93,28,73,21,162,128,240,4,255,91,146,164,160,1,171,186,120,79,157,64,133,11,13,251,143,243,139,146,79,43,179,97,250,66,112,156,201,231,243,214,117,205,252, -93,173,128,87,21,124,108,232,210,50,58,58,83,150,75,216,60,31,65,7,243,9,58,129,125,125,106,48,37,100,60,42,48,105,156,36,233,252,2,36,249,5,72,210,60,21,157,78,135,78,167,83,247,163,97,160,87,239,23,135,64,92,200,227,245,226,241,248,130,186,102,222, -16,145,10,17,67,234,98,67,154,151,21,180,191,118,94,255,62,106,128,187,243,180,63,209,237,18,180,123,135,39,248,31,190,160,255,170,55,127,157,240,224,143,241,250,188,30,191,16,233,180,27,67,175,243,119,177,130,60,20,0,143,63,128,28,232,90,249,124,62, -53,248,44,161,197,149,60,30,143,38,36,117,49,159,192,140,133,117,2,164,117,225,252,251,226,171,19,48,85,184,164,78,101,58,33,62,130,246,31,234,169,243,51,144,36,112,29,171,230,251,138,74,124,18,72,62,9,73,39,225,243,250,2,250,163,142,68,249,71,190,234, -198,164,36,144,124,218,104,84,64,190,116,146,132,87,139,201,168,98,226,245,121,67,134,224,37,80,207,225,243,169,251,227,67,242,213,13,182,7,60,42,41,48,44,239,223,106,208,235,249,229,255,196,97,54,117,213,196,167,211,117,187,36,73,180,225,14,237,28,116, -22,251,74,62,124,62,9,167,235,24,199,142,87,243,11,75,52,17,17,17,212,212,214,162,215,233,52,17,146,36,9,157,94,237,78,121,61,94,106,106,106,137,136,48,224,241,120,212,124,30,157,14,175,215,131,199,235,213,68,74,39,233,208,235,245,232,244,58,106,106, -106,209,249,149,204,171,6,116,212,64,118,96,100,204,31,243,169,245,120,208,75,122,144,64,175,211,83,235,243,32,249,212,99,60,181,30,116,122,29,158,218,218,208,174,91,39,106,127,194,243,17,116,168,62,152,26,115,150,136,136,136,160,155,217,76,215,168,46, -106,44,72,175,3,159,127,68,202,160,215,186,59,94,79,93,87,72,169,169,65,246,139,149,207,231,195,231,245,250,61,22,73,243,128,34,34,34,208,235,116,212,212,214,226,118,187,49,248,51,170,117,58,29,114,68,132,150,251,227,169,245,168,195,250,58,29,110,183, -27,163,209,72,77,77,13,58,255,16,125,96,132,45,34,34,66,187,65,131,131,222,162,219,37,16,180,171,216,143,218,103,49,155,187,82,235,169,69,111,208,225,245,121,209,251,99,44,6,189,30,189,94,167,138,130,94,205,221,209,69,24,240,249,61,28,157,94,13,62,7, -146,8,61,30,47,122,157,42,58,129,46,150,33,66,175,230,249,232,36,53,1,209,47,120,90,80,217,160,211,226,60,30,143,58,92,31,25,105,68,146,116,68,26,101,124,72,232,60,181,126,193,81,69,50,48,34,38,225,235,84,189,16,33,62,130,142,228,247,160,147,116,116, -51,155,233,222,205,28,50,140,30,220,181,1,48,232,245,120,245,122,188,254,81,44,157,127,40,93,146,36,60,181,181,106,66,162,191,11,230,241,168,211,118,4,70,198,128,208,192,113,32,252,164,141,174,129,193,160,215,226,59,6,189,94,75,72,172,59,198,71,96,244, -45,80,22,157,44,232,44,242,124,4,29,3,127,100,55,240,38,67,132,193,128,20,52,76,30,60,2,21,8,0,123,181,104,177,164,5,148,213,46,154,62,200,123,169,27,201,10,94,239,77,231,31,29,147,130,142,213,233,116,254,191,117,254,110,149,90,53,111,189,209,50,181, -155,166,215,70,192,130,135,227,133,231,35,16,180,195,110,151,68,96,196,200,27,146,183,227,13,242,58,116,254,55,222,9,74,10,212,105,121,54,146,63,232,236,11,201,7,2,117,88,93,231,207,108,38,100,120,28,237,88,175,127,8,62,224,253,120,189,117,229,4,11,85, -176,8,5,188,168,186,115,117,50,207,199,31,176,215,62,130,14,230,20,52,195,190,178,44,135,172,23,222,28,18,147,146,153,242,224,244,51,86,207,41,15,78,15,89,215,188,229,191,81,253,129,250,128,7,18,184,157,195,101,49,7,9,129,218,37,146,252,163,86,146,118, -124,168,40,248,223,225,10,18,139,96,111,200,231,245,170,239,108,17,20,60,14,58,79,176,247,21,120,249,52,248,245,12,205,131,210,53,79,124,212,53,222,251,145,30,102,201,159,166,136,182,88,206,184,205,130,215,40,107,73,251,19,221,46,129,191,81,198,48,111, -193,194,22,29,99,50,153,73,76,78,62,229,115,246,138,79,8,105,184,137,201,201,141,46,81,19,14,189,161,238,109,40,45,92,18,184,217,131,68,39,208,29,10,126,197,193,227,79,248,171,243,72,234,142,13,188,231,165,211,233,66,186,75,129,248,79,64,112,130,179, -163,67,186,80,65,30,140,65,111,104,32,98,170,7,166,171,19,28,255,249,165,22,244,185,162,45,49,252,99,217,114,110,191,235,110,86,191,182,142,245,239,111,57,169,8,168,162,101,60,45,155,69,91,44,13,108,102,50,157,218,250,117,162,219,37,104,17,170,135,116, -73,227,98,148,148,140,205,191,186,72,160,177,202,178,17,89,150,177,88,98,180,239,100,89,230,150,91,39,226,176,219,49,153,204,228,230,100,133,60,209,235,47,57,28,182,241,234,245,72,120,26,4,127,130,3,204,129,0,113,96,202,140,218,218,90,205,211,8,116,185, -164,160,119,186,124,1,145,242,11,138,26,243,241,79,123,17,36,34,193,175,74,4,191,13,175,150,163,230,0,25,12,134,144,132,196,64,125,2,1,236,128,103,164,197,146,36,169,69,157,46,135,253,40,247,79,86,215,157,251,253,205,127,100,202,180,233,218,223,245,9, -120,72,54,91,69,88,123,6,219,204,100,50,107,11,98,90,173,113,216,237,71,41,47,43,85,109,246,167,137,40,138,130,201,100,14,89,33,54,61,163,31,138,226,14,89,254,89,136,143,224,140,50,123,206,99,68,199,88,40,43,45,37,62,33,33,228,137,248,220,138,151,216, -187,251,75,172,113,113,148,149,150,178,98,249,50,250,95,254,91,110,184,233,15,148,151,150,98,183,31,101,208,144,161,60,60,99,154,38,84,149,182,10,20,69,209,196,103,234,180,25,216,108,21,152,77,102,100,163,204,195,51,166,53,222,120,13,186,32,215,222,167, -102,49,251,189,32,189,78,79,77,109,109,136,247,131,20,24,30,175,123,3,61,248,101,46,31,80,235,63,70,231,15,28,27,12,146,63,118,163,211,222,31,11,196,126,124,18,218,219,237,190,224,248,143,63,238,4,254,243,249,131,225,94,175,7,41,48,151,144,215,131,78, -210,7,29,131,230,125,157,10,46,167,19,199,209,240,171,146,204,155,191,80,179,89,98,82,50,138,226,214,132,231,217,21,47,81,144,119,0,139,37,6,187,253,40,203,150,46,86,187,211,211,166,55,176,89,192,211,113,57,157,40,138,162,61,28,110,191,235,110,202,74, -85,113,154,124,223,148,70,5,80,136,143,224,148,49,153,204,164,164,165,49,225,218,49,106,163,155,52,153,244,204,76,0,250,95,254,91,222,219,176,158,183,222,88,139,44,203,188,254,246,187,172,90,89,183,68,240,220,71,102,2,80,89,105,99,224,224,161,172,90, -185,130,226,162,66,246,231,100,135,172,226,185,111,239,110,222,122,99,45,0,235,223,223,130,201,100,110,176,250,104,128,136,8,189,250,174,150,207,71,143,238,221,57,225,58,70,141,187,134,31,108,71,181,87,25,130,187,83,146,20,152,12,76,141,253,4,2,208,58, -157,206,159,227,163,247,103,41,171,175,72,104,19,20,74,161,211,176,214,122,124,120,188,30,127,128,59,48,75,80,64,116,8,204,137,232,31,45,83,189,40,117,207,192,203,101,234,247,30,143,71,11,126,251,240,225,243,130,100,104,190,248,168,139,104,78,38,214, -106,197,26,23,199,178,37,139,195,199,134,50,251,49,110,212,48,0,174,27,63,129,171,134,171,75,126,15,28,50,148,220,236,44,86,44,95,166,93,239,192,191,205,102,179,102,179,146,226,34,70,141,185,134,101,75,23,147,155,157,77,165,173,34,196,102,185,217,217, -154,173,95,127,251,93,162,45,150,102,173,101,38,196,71,208,108,210,51,251,145,147,157,21,212,232,178,52,241,185,172,255,0,122,37,36,48,112,240,16,205,189,15,184,238,229,165,165,218,49,197,133,133,220,114,235,196,70,207,145,27,84,126,224,6,107,76,124, -244,6,29,17,178,58,137,152,217,20,69,84,159,222,154,72,132,143,159,4,36,64,170,251,51,240,151,68,19,199,157,57,2,1,215,186,23,79,125,161,65,88,157,58,41,89,176,87,215,24,138,91,33,55,59,139,203,46,87,87,232,13,215,77,77,76,74,14,233,30,229,100,103,105, -226,115,89,255,1,164,166,93,66,74,90,154,102,179,248,132,222,0,148,5,219,172,168,144,27,110,250,67,163,245,8,46,223,110,63,218,236,184,157,16,31,65,179,41,46,42,12,89,174,58,184,219,85,80,144,71,89,89,105,136,183,163,5,150,131,246,75,76,78,214,110,18, -69,81,26,236,235,116,58,155,93,31,79,173,7,217,32,225,58,230,64,242,129,164,15,140,24,129,116,14,14,89,251,124,62,188,158,192,219,237,170,167,83,27,232,46,250,188,120,124,32,121,37,60,181,53,72,242,201,215,236,82,20,55,185,57,89,20,228,31,224,149,181, -111,146,146,154,214,32,230,18,232,106,5,95,255,0,251,115,178,81,20,133,197,11,23,52,136,15,133,28,147,148,28,82,174,44,203,13,68,240,84,16,226,35,104,224,198,7,216,186,121,163,22,132,4,168,180,85,224,114,57,153,62,115,54,229,101,165,140,26,115,141,230, -149,124,252,225,54,94,92,245,42,178,44,179,111,207,110,82,210,210,120,109,205,106,0,44,150,24,102,205,153,71,121,89,41,191,191,233,143,60,60,227,65,213,203,201,201,226,247,55,253,17,91,69,133,22,243,105,9,53,138,132,132,1,215,207,213,180,175,55,194,125, -13,60,161,96,223,204,28,213,21,131,161,249,11,6,42,138,194,51,75,22,49,125,230,108,238,190,253,79,33,162,30,8,220,207,154,51,143,131,249,121,154,215,19,176,217,45,183,78,100,202,131,211,249,124,231,103,12,28,60,132,101,75,213,174,155,108,148,153,53,103, -30,37,197,69,252,254,166,63,176,96,222,92,205,51,157,50,109,58,101,165,165,33,30,207,169,160,7,50,146,47,76,56,231,215,106,23,156,58,93,163,186,112,50,251,42,110,55,7,190,222,143,205,86,81,247,169,168,208,130,147,193,130,228,241,120,208,235,245,60,255, -220,50,10,242,243,176,219,143,82,125,252,56,31,127,184,13,107,92,28,241,9,9,252,223,190,189,84,85,253,64,98,82,50,30,143,135,143,63,220,142,53,46,142,23,159,95,206,55,135,14,2,240,159,127,151,240,211,79,63,146,152,156,204,215,251,115,41,46,42,196,86, -241,189,54,26,84,144,119,128,239,190,45,15,25,29,10,185,81,253,19,116,5,62,134,246,248,49,132,255,132,206,112,72,120,123,237,207,165,170,234,7,0,190,251,246,91,138,139,10,113,58,157,13,108,246,241,135,219,81,20,5,89,150,121,249,197,21,154,205,60,30,15, -59,62,249,136,30,61,123,114,193,133,23,146,147,157,205,119,223,150,19,27,23,135,44,27,217,186,121,35,241,9,9,252,235,149,85,28,248,58,87,235,154,149,149,149,146,154,118,9,249,121,7,248,230,208,65,202,74,15,107,231,172,111,195,112,237,175,240,223,165, -117,107,181,95,59,98,72,200,90,237,85,71,29,226,142,237,64,156,23,19,77,91,217,119,244,216,113,164,103,246,99,193,188,57,194,16,237,40,182,55,122,236,184,51,102,179,250,237,239,253,237,159,213,173,213,46,133,9,203,9,58,14,109,105,95,135,221,78,121,89, -169,104,83,237,136,99,78,231,25,181,153,36,98,62,130,182,96,223,158,47,217,183,231,75,113,33,218,17,197,69,133,39,77,240,60,19,136,215,43,4,2,65,155,32,196,71,32,16,180,9,103,188,219,117,203,109,183,115,221,248,9,76,24,55,186,213,42,29,107,141,227,158, -251,166,208,203,159,16,149,155,157,197,178,37,139,90,237,124,189,18,18,184,231,190,169,152,76,102,100,163,145,226,194,111,26,228,70,180,22,215,253,238,6,102,60,252,8,191,237,247,107,209,90,5,29,80,124,206,80,68,242,201,69,75,235,146,145,90,49,194,232, -114,57,121,111,195,122,45,55,100,245,107,111,146,158,217,239,148,114,69,154,131,195,110,231,249,231,158,161,188,172,84,251,157,3,135,12,229,243,157,59,90,213,56,189,226,19,24,53,118,28,182,138,239,79,239,122,138,17,5,65,91,34,157,133,110,215,51,75,22, -241,218,154,85,173,254,91,92,46,103,136,208,148,151,30,62,173,105,2,154,115,190,128,240,4,60,175,112,217,185,103,18,89,150,153,61,247,113,22,204,251,91,139,166,153,16,8,58,101,183,171,178,222,235,250,103,131,88,107,28,41,105,151,240,204,210,69,173,122, -158,196,164,100,174,29,63,129,140,204,223,240,218,154,85,173,62,130,115,251,164,201,124,242,209,54,202,203,74,177,196,196,136,150,42,16,226,115,46,17,107,141,99,201,178,127,178,104,225,130,102,189,69,123,58,216,237,71,249,228,195,237,56,236,118,174,29, -127,195,41,191,18,208,28,210,51,250,17,159,208,91,123,195,88,32,16,226,115,14,10,207,51,75,22,157,149,60,18,135,221,142,195,110,39,55,39,11,69,81,184,110,252,132,86,19,159,41,211,102,0,240,236,138,151,180,109,207,174,120,137,185,179,255,218,234,34,43, -16,8,241,57,135,132,167,87,124,130,22,243,81,103,218,203,12,153,114,224,76,51,241,150,27,67,254,254,242,255,190,230,254,201,119,138,214,218,14,153,242,224,12,94,123,117,21,14,187,157,196,164,228,179,146,188,215,206,196,167,53,134,67,90,111,72,229,246, -73,147,137,79,232,205,146,101,255,212,182,229,100,255,95,179,103,80,107,41,131,134,92,201,45,183,78,196,86,81,65,82,242,69,108,217,244,62,171,86,190,192,217,29,54,18,195,93,167,251,0,81,20,229,172,199,37,213,121,169,35,1,137,219,39,77,110,114,102,198, -142,139,116,246,60,159,192,76,119,173,197,19,143,205,229,137,199,230,158,181,75,247,218,154,213,218,244,16,109,193,111,127,211,87,60,38,195,96,50,153,137,182,88,112,185,156,196,199,247,166,32,255,0,138,162,144,146,154,134,44,27,41,46,42,196,229,114,34, -203,50,119,76,154,76,65,65,30,197,133,133,90,119,185,87,124,2,22,75,140,118,92,99,231,8,76,61,26,60,167,77,224,28,129,249,141,131,183,53,86,94,160,13,5,234,173,40,10,86,107,28,101,101,135,67,186,211,177,214,56,172,214,56,109,190,101,151,211,217,232,132, -106,237,25,145,225,44,104,183,36,38,37,51,123,238,99,252,227,153,229,164,103,246,67,81,20,70,143,29,199,85,87,143,32,61,179,31,175,172,93,167,142,134,166,94,66,175,132,4,250,36,38,145,158,169,78,164,62,122,236,56,102,60,60,155,244,204,126,188,176,234, -213,176,203,6,37,38,37,243,228,226,37,164,103,246,99,212,216,113,218,4,91,83,30,156,206,244,153,234,177,131,134,12,213,202,11,156,119,253,251,91,195,46,1,20,88,29,36,49,41,153,133,139,151,50,117,218,116,210,51,251,241,226,170,87,181,217,8,19,147,146, -121,110,197,74,6,14,30,194,236,185,243,120,114,209,146,102,173,74,33,98,62,130,118,77,77,77,13,165,223,217,56,98,255,239,89,61,111,76,207,30,252,79,220,249,68,117,137,108,241,177,241,9,9,76,24,55,70,243,12,130,231,22,150,101,153,65,67,134,242,214,27, -107,41,46,42,228,131,205,155,52,175,231,170,171,71,48,119,246,76,28,118,59,101,101,135,25,53,118,92,131,89,0,7,14,30,138,227,168,61,100,118,70,89,150,25,54,124,164,54,39,114,128,224,243,154,76,38,210,51,251,241,201,135,219,27,173,119,172,53,142,219,254, -120,35,138,162,80,86,118,152,129,131,135,178,111,207,110,6,14,30,202,91,235,94,215,230,177,222,248,193,199,29,214,126,66,124,4,26,255,46,251,14,199,143,63,19,41,203,218,122,85,173,141,207,231,227,232,127,127,228,248,137,19,244,77,105,249,19,126,223,238, -221,33,93,146,171,134,143,96,208,160,161,68,199,88,176,90,227,216,186,121,83,131,99,2,147,170,7,175,83,86,92,88,24,166,155,180,138,91,110,189,157,215,223,126,151,189,187,191,100,197,242,101,164,103,246,11,59,131,223,85,195,71,112,89,255,1,88,227,212, -46,83,73,113,81,147,245,46,46,42,212,186,102,142,163,118,109,106,210,148,212,180,144,20,139,250,115,90,119,36,251,25,26,15,7,9,58,10,205,181,175,227,199,159,49,69,69,33,203,242,73,103,210,59,83,120,189,94,34,35,35,27,204,11,220,92,220,65,179,246,153, -76,102,166,62,56,131,9,215,142,70,81,20,166,207,156,29,42,58,70,245,28,138,162,80,86,122,152,5,243,230,54,25,128,86,20,133,85,43,87,240,218,154,85,76,159,57,155,223,223,252,71,222,123,103,61,83,253,169,16,1,162,45,22,238,185,119,10,127,184,225,122,20, -69,97,214,156,121,39,173,119,253,217,6,131,69,41,120,84,44,120,254,235,246,106,63,49,159,143,224,164,232,80,23,186,59,91,13,23,234,22,245,235,210,165,203,105,151,165,40,110,20,197,205,176,225,35,49,153,213,64,241,190,61,187,1,117,178,244,91,110,157,168, -174,248,144,147,197,251,27,214,243,228,162,37,188,189,238,117,64,77,34,13,236,27,224,186,241,19,144,141,70,108,21,234,170,14,111,175,123,29,151,203,73,126,222,1,230,205,95,200,190,189,234,254,31,127,184,13,89,54,50,112,200,80,226,227,123,19,159,208,155, -253,57,217,167,244,27,62,223,185,131,217,115,31,195,173,184,73,207,232,135,53,46,174,195,218,79,15,100,252,170,79,111,49,135,115,7,198,212,140,57,156,1,190,183,85,97,52,26,207,106,227,5,117,46,102,163,209,136,41,170,101,49,3,151,83,157,28,253,167,159, -126,4,192,227,241,176,107,231,103,36,38,39,99,171,168,96,205,170,151,40,43,43,213,38,81,119,57,93,36,38,39,115,224,235,253,124,115,232,32,37,69,133,92,244,171,20,109,36,171,254,136,210,241,227,199,233,18,21,197,121,231,159,207,134,183,223,212,188,145, -207,119,126,198,127,254,93,194,69,23,95,204,129,175,247,115,164,170,138,47,191,216,69,106,218,37,124,115,232,32,175,173,89,141,205,86,65,117,117,53,37,69,69,84,218,42,240,120,60,20,228,231,113,164,170,10,151,211,201,193,252,60,109,132,43,248,119,28,169, -170,226,192,215,251,185,228,215,233,124,246,233,199,244,232,222,147,3,95,231,114,164,170,234,164,215,227,92,181,95,253,246,247,77,73,208,28,206,215,143,28,26,50,135,243,15,98,14,231,14,197,249,245,230,208,109,204,190,251,178,15,96,54,155,49,24,12,103, -189,241,154,205,102,98,99,186,119,122,91,5,150,151,174,180,85,208,43,62,129,231,86,188,164,117,35,79,26,255,58,71,237,87,191,253,189,187,109,71,221,28,206,2,129,224,220,192,98,137,97,202,180,233,106,12,231,168,157,69,11,23,180,250,12,10,109,133,161,201, -136,144,160,99,32,236,219,110,40,46,42,108,181,76,253,115,173,253,137,36,67,129,64,208,38,8,241,17,8,4,66,124,4,2,129,16,31,129,64,32,16,226,35,16,8,132,248,8,4,2,129,16,31,129,64,32,196,71,32,16,8,132,248,8,4,2,33,62,2,129,64,16,150,70,38,144,23,116, -44,132,125,5,231,94,251,19,158,143,64,32,16,221,46,65,27,63,159,36,9,73,18,94,146,176,159,16,31,193,89,38,50,50,178,205,26,239,217,158,0,75,216,175,237,237,39,230,243,17,104,196,89,99,169,62,225,198,227,241,156,213,243,70,68,68,240,139,152,24,240,186, -133,17,58,145,253,194,78,32,47,28,239,14,230,142,55,211,190,221,186,70,18,19,19,67,183,238,61,206,218,234,7,160,174,128,224,56,82,137,78,52,188,211,226,92,181,159,152,64,94,112,82,140,114,4,120,220,56,29,63,156,245,115,235,133,240,116,58,251,137,142, -182,64,32,104,19,132,248,8,0,117,33,189,112,75,6,11,206,125,187,165,103,244,35,61,163,159,16,31,65,251,36,218,18,195,163,65,43,120,10,218,143,221,22,47,91,206,196,187,238,102,245,107,235,120,251,253,45,244,105,39,107,187,171,226,35,137,143,248,248,91, -68,51,246,75,207,236,71,122,102,63,117,53,77,255,223,193,223,167,164,165,129,4,38,179,153,94,9,9,152,204,102,210,51,251,209,39,57,153,232,24,139,182,159,201,108,166,79,114,50,72,234,106,162,193,101,138,79,243,63,14,251,81,166,220,51,137,137,255,123,19, -111,175,123,93,93,253,162,145,125,83,210,210,66,174,115,192,86,193,182,13,216,163,190,237,98,227,226,180,253,100,163,28,114,108,96,159,102,183,51,218,105,192,89,237,34,92,18,178,173,32,255,64,131,37,70,210,51,250,133,221,46,56,117,30,157,191,144,88,107, -28,95,237,221,141,203,233,164,188,172,148,103,87,188,196,21,151,246,13,217,231,134,235,198,144,152,148,204,196,73,119,3,234,138,161,118,251,81,210,51,250,241,232,35,51,1,184,238,119,19,232,218,213,76,73,81,33,79,252,125,169,182,116,113,180,197,194,172, -135,166,137,139,125,10,56,93,78,109,49,194,250,76,255,235,108,82,82,211,248,124,215,103,40,138,155,215,214,172,214,108,21,32,96,203,104,75,12,243,230,47,196,233,114,178,63,39,155,178,210,195,140,26,51,142,233,15,220,11,192,168,177,227,232,21,159,64,65, -126,30,139,159,94,174,217,174,87,66,2,83,238,105,222,234,27,237,82,124,162,45,49,44,126,102,57,5,249,7,234,26,252,35,51,113,216,237,152,76,102,30,157,191,16,147,217,140,162,184,177,88,98,200,205,206,98,241,83,11,78,235,156,151,93,62,160,193,114,186,157, -141,148,212,52,82,82,211,66,26,235,201,143,185,132,107,71,13,195,229,114,34,203,50,183,252,105,34,38,147,25,151,203,201,168,49,227,248,203,212,123,73,73,77,195,97,63,170,217,104,197,203,175,18,107,141,107,114,29,117,65,29,38,179,153,219,39,77,38,54,214, -74,108,92,28,203,150,46,110,176,79,172,53,142,171,134,143,96,212,85,131,154,93,110,98,242,69,76,184,118,180,102,135,219,39,77,38,218,98,193,97,183,51,106,204,56,22,63,181,128,88,107,28,138,226,214,108,183,248,233,229,164,164,166,81,144,159,215,49,197, -7,234,92,205,250,30,209,179,207,175,228,181,87,87,243,201,71,219,155,117,51,21,228,231,145,146,154,134,221,110,167,210,86,65,180,197,66,124,124,111,236,246,163,148,151,149,2,48,112,240,80,174,189,126,2,138,91,161,172,236,176,38,114,137,73,201,216,108, -21,157,230,38,137,181,198,145,155,157,213,162,99,138,139,10,181,101,136,21,69,97,215,206,29,92,53,124,4,37,69,133,216,237,71,169,180,85,48,122,236,56,210,51,251,177,236,249,149,254,253,220,196,39,36,8,241,105,38,138,91,33,55,59,139,75,251,15,0,160,196, -191,172,115,48,214,83,176,93,126,222,129,16,27,124,242,209,118,6,14,30,74,110,118,22,70,89,166,164,168,144,107,199,79,32,49,41,89,179,93,64,12,59,172,231,211,212,83,214,233,114,54,75,120,2,221,131,226,162,66,28,118,59,159,124,180,29,69,113,51,229,193, -25,148,151,149,210,39,49,137,146,226,34,222,122,99,45,3,7,13,193,98,177,144,158,217,15,167,255,70,122,246,249,151,216,187,231,75,172,214,56,202,74,75,121,225,159,203,58,124,35,175,180,85,144,24,38,152,105,63,122,84,243,102,234,7,59,21,37,52,235,245,131, -45,155,152,242,224,116,18,19,147,121,127,195,122,0,114,179,179,184,56,37,77,115,233,5,45,20,31,197,77,110,78,22,5,249,7,88,253,218,155,97,61,15,167,203,25,214,118,138,162,104,222,76,172,53,174,73,219,189,183,225,109,30,157,191,16,139,37,134,247,222,93, -239,15,119,228,97,179,85,52,187,171,213,33,196,39,218,18,19,162,182,83,238,153,68,74,90,26,197,65,170,63,106,236,56,172,214,56,92,78,39,111,173,91,27,182,156,207,119,125,198,7,155,55,134,116,223,0,122,197,39,48,111,254,66,86,173,92,193,7,91,54,1,176, -106,229,10,173,220,247,55,172,231,173,117,107,145,101,153,181,111,189,203,234,151,86,180,251,216,82,192,125,15,176,117,243,198,144,39,95,65,126,30,78,151,147,89,127,155,71,65,65,30,138,162,240,193,230,141,124,190,115,7,83,30,156,78,65,65,30,3,7,13,109, -242,58,4,158,202,233,153,253,88,182,116,145,42,62,57,89,220,125,239,20,166,255,117,54,159,239,218,65,74,234,37,188,183,225,237,70,99,23,130,198,68,72,97,217,210,69,76,255,235,108,238,190,227,79,33,118,40,41,42,164,172,180,148,71,231,47,100,223,94,53, -124,240,193,230,141,236,250,108,7,83,30,156,65,110,78,22,151,245,31,128,211,249,115,19,189,13,59,138,91,97,212,152,107,152,120,203,77,90,185,178,108,100,214,223,230,241,201,199,219,73,76,74,102,235,230,141,205,178,93,135,234,118,217,42,42,184,98,208, -208,16,151,95,113,187,153,124,239,148,70,197,39,216,21,237,21,159,192,237,147,38,163,184,221,244,74,232,221,168,251,120,89,255,1,196,199,39,112,197,224,33,234,121,109,21,152,204,230,118,125,179,56,236,71,153,53,35,52,200,235,114,58,27,236,55,229,158, -73,164,164,170,35,38,123,253,49,176,197,79,45,96,224,224,161,88,173,113,60,241,248,28,162,45,49,218,245,15,23,127,120,226,177,185,254,152,92,221,205,49,125,234,189,12,28,50,148,148,212,75,212,174,90,152,115,11,194,219,45,240,192,4,216,183,71,29,8,144, -101,99,131,135,192,244,7,238,165,87,124,2,131,134,12,213,108,247,194,63,151,105,182,91,182,116,177,214,230,29,246,163,97,109,183,248,169,5,152,204,102,173,43,173,182,137,59,185,106,248,200,22,219,174,67,117,187,114,115,178,152,53,231,49,45,88,89,210, -194,70,124,251,164,201,124,190,115,7,159,124,180,157,148,212,52,30,157,95,151,247,34,27,141,218,191,15,230,231,81,94,86,170,121,66,29,229,169,153,155,211,188,152,64,65,126,94,3,183,254,243,157,59,66,158,144,0,46,151,51,108,252,161,210,86,1,182,208,109, -46,151,51,196,3,21,52,223,110,245,109,209,84,176,183,188,172,148,215,214,172,110,212,118,1,187,40,138,210,108,219,5,60,224,51,210,237,210,235,245,103,253,205,216,211,237,34,188,245,198,90,28,118,59,139,159,90,192,179,207,175,228,131,45,155,40,200,63, -160,5,225,154,131,221,126,148,203,252,251,95,214,127,128,246,228,40,200,63,192,163,243,23,114,213,213,35,200,205,201,226,227,143,182,241,194,203,175,18,17,33,243,213,222,221,164,164,165,53,48,232,185,66,184,41,22,218,131,125,5,29,131,166,166,248,208, -3,233,191,74,236,61,46,120,99,77,109,45,181,181,231,110,227,84,20,55,121,95,239,167,210,63,210,20,248,120,60,30,74,138,10,249,124,231,103,234,168,85,66,111,42,109,21,108,120,251,77,142,84,85,53,40,231,96,126,30,223,127,247,173,118,35,238,207,201,66,111, -48,96,177,196,240,214,155,107,217,183,119,55,14,187,29,143,199,195,238,47,118,145,154,118,9,182,138,10,42,109,54,62,249,104,59,113,113,255,143,248,132,222,100,125,181,47,108,249,231,2,114,68,4,93,34,141,180,39,251,10,58,14,225,218,223,161,226,195,155, -128,31,36,96,226,248,209,87,174,10,254,178,250,132,155,159,157,46,113,229,58,0,93,163,186,96,234,26,133,176,175,224,92,105,127,27,182,126,122,7,144,111,0,106,165,122,51,110,68,69,70,226,62,161,160,212,212,136,171,215,142,209,235,245,152,162,162,16,246, -21,156,75,237,15,240,0,94,29,160,124,247,125,197,143,245,191,53,155,186,18,17,33,166,251,105,207,134,239,222,205,212,104,159,91,216,87,208,22,237,175,162,162,162,22,80,0,143,14,56,246,227,79,63,255,187,254,193,6,131,158,232,30,221,49,117,141,18,141,180, -29,97,48,24,136,138,234,130,165,103,119,34,12,134,38,246,19,246,21,156,253,246,231,241,250,190,5,170,1,197,0,56,13,178,49,191,162,162,34,51,46,46,46,108,159,173,107,84,23,113,85,59,112,159,92,216,87,112,182,168,241,120,15,1,78,224,132,30,232,121,196, -254,223,170,40,217,240,27,79,109,109,79,115,51,223,203,16,8,4,130,150,240,245,129,188,35,255,254,214,182,216,227,241,126,7,56,244,64,36,32,69,118,233,82,89,171,156,184,200,83,91,219,221,233,116,34,68,72,32,16,156,9,42,42,42,248,207,225,210,35,39,106, -121,230,191,63,57,15,0,71,0,167,4,88,128,158,192,249,128,245,162,11,126,121,139,167,70,201,168,81,220,191,20,151,77,32,16,156,14,134,8,217,102,144,141,249,135,191,171,124,213,173,212,148,3,63,0,14,192,37,1,81,254,143,217,47,66,61,128,110,254,109,50,106, -34,162,88,91,64,32,16,52,23,31,234,112,186,130,26,92,118,2,63,2,255,5,126,6,142,3,238,255,15,177,173,18,134,62,227,250,56,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; +static const unsigned char temp_binary_data_14[] = +{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,31,0,0,0,218,8,6,0,0,0,159,5,70,254,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,4,103,65,77,65,0,0,177,143,11,252,97,5,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,42,68,73,68,65, +84,120,94,237,157,107,136,101,89,149,231,179,180,91,243,209,86,101,101,102,101,101,70,190,51,35,34,51,50,51,30,25,239,136,27,239,136,140,200,168,200,180,179,170,108,203,71,217,85,150,218,182,35,232,96,151,96,183,14,66,53,66,13,136,130,80,32,20,72,33, +130,130,136,35,50,162,51,142,72,139,126,80,63,40,50,168,31,212,153,193,154,129,41,161,177,190,116,194,124,216,179,127,251,198,138,92,113,98,159,251,136,251,136,115,206,93,1,63,206,57,123,175,189,247,185,103,173,253,63,235,156,115,227,158,125,254,111, +191,231,176,231,180,231,154,103,218,115,203,243,164,231,221,158,103,61,239,243,188,223,48,12,163,10,104,5,154,241,180,231,109,158,117,207,140,167,223,115,214,115,196,115,192,243,70,79,16,158,243,158,81,207,70,239,165,115,255,188,177,186,240,223,222,255, +204,83,127,248,231,255,240,188,251,244,63,254,123,195,48,140,186,248,167,231,63,236,254,246,157,143,255,15,175,37,255,114,189,175,231,243,94,91,222,234,25,247,92,244,32,64,36,61,251,206,120,70,223,242,87,7,159,190,179,190,252,95,17,156,191,123,246,169, +192,91,111,205,27,134,97,236,10,209,17,132,232,238,198,202,79,189,198,60,227,181,102,194,115,206,243,144,103,223,117,207,237,191,185,187,254,227,127,247,254,119,71,59,49,12,195,104,132,247,190,251,9,247,206,183,221,249,141,215,154,187,158,65,207,163, +158,125,165,203,221,231,255,227,71,254,254,153,104,35,195,48,140,102,240,158,167,222,234,110,12,92,121,197,107,206,188,135,91,61,251,214,31,191,189,250,47,143,111,44,69,27,192,198,234,172,91,158,27,119,115,83,195,110,102,242,134,155,24,190,110,24,198, +46,153,30,31,12,115,233,230,194,164,187,189,58,23,157,115,69,228,214,210,148,123,251,227,235,255,221,107,206,29,79,31,226,243,182,247,60,245,215,255,39,102,124,103,109,206,205,79,143,68,15,160,97,24,205,97,161,52,218,49,34,244,206,39,31,251,55,175,57, +79,121,184,244,218,247,244,223,252,245,234,14,35,132,103,214,178,28,195,104,11,83,99,3,29,33,64,43,115,99,206,107,206,223,122,120,186,190,239,189,49,241,89,156,25,139,30,36,195,48,90,67,105,98,104,199,60,44,26,155,226,243,156,135,199,238,251,222,151, +20,31,20,56,118,112,52,190,157,177,199,196,252,210,42,158,126,199,147,209,242,60,243,246,39,238,184,111,124,253,107,238,115,159,125,209,221,221,88,117,235,55,231,163,118,245,192,113,250,234,87,190,28,173,171,133,213,197,169,109,115,177,104,108,138,15, +95,70,228,145,251,190,247,39,197,135,27,97,177,3,163,33,248,15,188,249,205,238,208,129,3,70,155,121,203,161,67,238,212,201,147,81,191,52,11,38,17,19,82,182,191,253,173,111,186,229,185,169,109,54,121,231,231,63,251,169,251,212,39,158,15,159,21,1,250,232, +135,63,24,181,171,135,15,125,224,217,208,111,172,174,22,184,213,161,231,98,209,80,226,51,25,21,159,90,238,245,188,241,129,7,220,225,7,31,116,199,142,28,49,218,204,35,71,143,186,139,231,207,71,253,82,9,196,67,206,240,76,18,41,127,238,153,119,133,237,217, +201,225,176,205,242,123,223,253,78,152,144,212,137,141,216,235,54,205,200,22,246,2,142,195,159,94,123,45,124,6,142,11,89,16,159,133,117,157,229,97,167,69,152,207,29,203,2,233,71,104,68,124,184,247,163,231,98,209,168,42,62,83,163,3,209,3,163,49,241,217, +59,118,43,62,76,140,31,254,224,251,97,114,32,44,148,189,240,233,79,134,203,132,151,191,248,82,152,140,8,15,118,175,190,250,199,144,237,136,29,219,210,15,229,63,249,241,143,66,59,202,245,228,204,11,124,222,215,95,255,115,88,178,255,124,38,142,5,159,255, +183,191,249,117,16,25,132,72,127,62,108,128,207,173,5,230,149,47,189,28,182,185,132,99,217,136,248,128,158,139,69,163,170,248,196,14,72,18,19,159,189,163,17,241,97,50,73,134,147,132,108,231,227,31,251,72,88,103,2,97,47,117,34,62,76,200,63,252,254,119, +91,229,47,126,230,133,48,129,101,59,79,36,5,21,241,97,157,44,8,1,226,120,72,25,199,236,87,191,252,197,150,61,117,146,13,234,126,16,107,19,159,116,76,124,114,78,35,226,195,164,209,101,220,243,96,226,49,97,200,124,100,178,165,137,15,246,100,79,82,206,37, +136,158,148,121,34,77,124,100,91,215,115,63,136,227,195,113,17,40,227,243,179,46,118,28,51,189,189,27,244,92,44,26,38,62,57,167,17,241,97,82,201,182,92,86,72,38,196,165,148,76,64,214,99,226,195,100,35,43,144,114,196,136,203,14,217,206,19,105,226,163, +51,31,50,59,202,184,31,164,51,62,129,99,167,251,161,15,19,159,116,76,124,114,78,179,196,135,137,195,217,28,1,225,210,137,9,39,19,240,165,47,124,62,100,56,201,75,11,218,32,76,244,195,37,6,19,50,118,3,54,15,196,196,71,46,175,248,76,172,243,249,16,35,108, +16,35,236,184,52,229,179,203,205,118,202,0,161,226,216,152,248,164,99,226,147,115,118,43,62,242,84,71,151,177,141,208,112,9,193,100,146,9,197,196,67,148,228,204,47,34,36,117,76,64,185,89,43,229,121,67,127,38,142,67,218,211,46,125,204,68,168,249,252,28, +7,41,71,216,17,175,100,251,221,160,231,98,209,48,241,201,57,187,21,31,35,31,232,185,88,52,76,124,114,142,137,79,177,209,115,177,104,152,248,228,28,19,159,98,163,231,98,209,104,138,248,28,220,191,223,157,56,126,220,117,157,56,97,180,153,211,93,93,238, +74,111,111,212,47,70,254,209,115,177,104,52,69,124,38,198,198,220,250,218,154,219,88,95,55,218,204,157,141,13,247,196,221,187,113,191,24,185,71,207,197,162,209,28,241,49,12,163,37,232,185,88,52,76,124,12,35,195,232,185,88,52,76,124,12,35,195,232,185, +88,52,76,124,12,35,195,232,185,88,52,76,124,12,35,195,232,185,88,52,76,124,12,35,195,232,185,88,52,76,124,12,35,195,232,185,88,52,76,124,12,35,195,232,185,88,52,76,124,12,35,195,232,185,88,52,76,124,12,35,195,232,185,88,52,76,124,12,35,195,232,185,88, +52,76,124,12,35,195,232,185,88,52,76,124,12,35,195,232,185,88,52,76,124,12,35,195,232,185,88,52,76,124,12,35,195,232,185,88,52,76,124,12,35,163,116,252,235,146,99,7,197,48,140,214,179,80,26,221,54,23,139,134,137,143,97,100,148,91,75,211,219,230,98,209, +48,241,49,140,12,82,26,31,220,54,15,139,136,137,143,97,100,141,145,235,110,125,165,180,109,30,22,17,19,31,195,200,16,83,163,3,29,33,60,96,226,99,24,25,160,52,49,228,150,231,198,221,157,181,185,109,243,175,200,152,248,116,58,62,197,159,159,30,118,171, +11,147,29,115,198,53,178,129,137,79,167,226,69,135,51,173,246,181,97,180,19,19,159,78,196,11,207,218,210,212,54,63,27,70,187,49,241,233,64,184,196,210,62,54,140,189,192,196,167,195,168,244,149,253,245,229,146,91,156,25,115,51,147,55,162,109,13,163,86, +136,161,197,153,209,138,25,182,137,79,135,17,187,207,115,123,117,46,136,78,204,222,48,26,101,126,122,36,196,88,50,238,76,124,58,140,216,153,136,255,33,138,217,26,70,179,152,245,153,80,50,238,76,124,58,140,199,86,102,182,249,151,255,31,138,217,25,70,179, +185,153,184,215,104,226,211,97,104,223,2,215,229,49,59,195,104,54,115,83,195,219,98,207,196,167,195,208,190,5,254,129,49,102,103,24,205,102,114,180,127,91,236,153,248,116,24,218,183,230,95,163,221,232,216,107,186,248,188,240,233,79,186,143,126,248,131, +209,186,78,229,237,79,220,113,223,248,250,215,220,231,62,251,162,187,187,177,234,214,111,238,221,164,215,190,221,141,127,13,163,17,116,236,53,93,124,94,254,226,75,65,128,98,117,2,147,239,67,31,120,54,90,87,68,126,254,179,159,186,79,125,226,121,247,244, +59,158,12,2,180,151,226,172,125,187,27,255,26,70,35,232,216,107,138,248,136,152,48,185,146,226,195,153,158,186,217,201,225,173,178,87,190,244,178,251,246,183,190,185,163,188,30,104,71,123,208,153,68,172,12,200,62,146,229,146,133,80,199,190,83,166,251, +21,59,160,62,89,86,11,140,241,167,215,94,11,109,151,231,166,194,88,178,15,244,41,227,201,248,154,180,242,70,208,190,173,213,191,134,209,44,116,236,53,44,62,76,158,87,95,253,99,16,147,239,125,247,59,238,15,191,255,221,150,248,48,113,126,251,155,95,7,65, +226,236,207,100,98,50,178,14,148,51,33,147,125,86,131,49,233,151,241,232,67,50,9,182,127,242,227,31,133,75,28,246,73,79,114,246,15,91,218,137,136,176,141,253,15,127,240,253,176,207,216,203,254,126,245,43,95,222,234,151,58,246,23,209,164,158,207,64,121, +45,208,215,235,175,255,57,44,105,199,126,200,241,161,79,246,153,177,216,15,234,164,29,235,192,103,193,78,202,27,69,251,182,22,255,26,70,51,209,177,215,176,248,48,65,245,164,97,162,200,228,98,226,200,68,127,238,153,119,109,217,49,17,65,218,212,11,253, +235,49,129,254,17,28,217,126,241,51,47,184,151,190,240,249,109,54,82,206,100,103,157,125,208,19,155,125,101,91,103,71,240,171,95,254,98,75,36,233,51,214,111,37,244,126,177,223,90,124,184,12,99,29,65,69,164,88,71,44,25,83,218,32,76,124,62,217,110,4,237, +219,90,252,107,24,205,68,199,94,195,226,195,4,150,9,4,100,7,50,185,152,116,76,48,129,179,188,180,105,68,124,146,99,2,247,84,180,32,49,129,153,180,172,139,240,145,225,144,153,105,17,68,140,164,13,176,239,98,131,224,32,10,247,238,221,219,246,57,154,41, +62,250,178,138,63,150,31,255,216,71,194,165,154,30,179,89,247,137,180,111,107,241,175,97,52,19,29,123,13,139,15,19,69,50,9,144,75,24,214,153,104,146,249,104,152,188,141,136,15,194,35,2,34,200,37,158,108,179,15,50,6,89,132,76,114,198,214,226,35,251,154, +4,17,37,115,99,29,49,74,102,67,245,80,73,124,244,37,156,136,15,99,49,166,148,55,19,237,219,90,252,107,24,205,68,199,94,195,226,67,118,192,228,98,82,35,66,156,177,101,114,201,165,16,217,5,153,137,46,103,114,113,54,39,179,208,253,213,130,76,78,4,2,33,66, +88,232,71,238,155,48,30,245,220,220,197,158,114,201,114,244,189,149,164,248,32,148,124,14,246,11,59,132,149,114,198,64,40,176,165,143,122,47,129,234,21,31,64,196,177,101,31,24,191,17,241,211,104,223,214,226,95,195,104,38,58,246,26,22,31,96,226,51,161, +152,180,76,18,61,81,16,0,38,57,19,72,196,0,100,162,239,70,124,4,4,13,49,144,241,16,66,38,43,253,234,73,77,61,118,236,35,54,178,31,216,232,125,101,157,207,64,251,164,192,80,46,98,165,219,212,130,238,43,246,180,75,234,116,150,40,199,148,49,249,76,141,28, +39,141,246,109,53,255,234,99,213,46,36,142,98,117,70,254,209,177,87,85,124,248,53,253,88,39,70,62,209,190,133,152,141,128,240,181,234,242,47,141,100,54,154,85,56,113,112,146,138,213,181,11,238,161,214,123,34,108,197,126,215,179,31,58,246,170,138,143, +253,176,84,113,136,253,144,88,204,78,64,120,184,244,139,221,183,19,8,102,50,36,108,88,151,178,88,27,178,40,109,39,232,246,149,196,71,236,146,89,41,237,98,101,100,139,149,198,171,247,242,89,67,123,185,124,223,43,184,156,215,25,126,45,180,98,191,235,217, +15,29,123,85,197,199,126,235,165,56,196,222,253,29,179,3,46,125,56,163,17,172,242,148,50,6,2,69,61,247,223,68,172,216,230,254,159,206,154,232,143,32,149,108,138,203,96,169,163,92,218,241,208,32,38,62,156,89,229,59,88,60,8,144,75,51,108,185,119,198,248, +250,43,17,148,201,126,232,251,124,244,131,157,244,147,20,166,90,73,78,98,182,229,210,152,49,216,150,125,97,153,28,135,122,189,93,205,134,186,164,88,54,67,124,234,221,215,70,247,67,199,94,85,241,225,167,53,99,157,24,249,35,246,238,239,152,29,112,195,91, +38,56,98,145,150,86,19,120,114,99,158,123,112,250,137,35,147,92,218,33,0,250,94,27,95,95,96,157,64,102,44,105,163,159,150,106,232,27,65,73,222,251,98,60,41,211,89,147,60,32,96,157,122,249,14,149,136,85,218,231,169,21,61,137,89,50,54,235,244,203,62,33, +134,124,102,246,155,241,57,78,50,193,249,204,250,123,92,128,13,15,107,98,54,92,38,209,23,125,210,183,216,52,42,62,105,251,218,202,253,208,177,87,85,124,192,126,118,33,255,164,189,251,59,102,75,80,234,239,54,17,140,60,48,136,217,234,73,149,60,171,210, +86,130,146,62,164,28,36,96,233,87,38,46,104,1,73,130,45,66,72,54,195,36,161,61,162,34,251,9,114,63,131,117,125,179,92,63,73,76,246,35,229,245,32,159,149,236,73,239,63,227,203,254,115,28,217,15,214,25,75,178,61,189,174,161,47,105,43,54,34,92,178,159,76, +124,177,105,84,124,210,246,181,149,251,161,99,175,38,241,217,184,57,19,238,23,196,58,51,114,64,133,119,127,199,236,153,156,4,151,108,51,137,57,211,105,27,129,192,147,245,74,226,163,3,20,177,226,143,64,166,141,190,172,163,189,4,117,26,236,155,236,31,34, +34,19,66,163,199,6,254,116,61,48,150,136,85,189,176,223,8,42,232,203,16,198,37,83,96,41,80,206,49,148,12,130,99,33,130,173,161,31,177,23,27,218,165,9,108,61,147,94,208,62,162,47,252,170,251,166,188,149,251,161,99,175,38,241,1,4,136,87,186,198,58,52,178, +75,181,119,127,199,218,48,161,117,214,0,76,28,61,201,4,2,79,214,43,137,15,130,194,54,103,81,150,34,30,8,7,227,145,61,0,235,49,241,161,111,130,157,75,65,82,127,185,212,163,140,254,228,107,23,216,81,174,199,6,17,31,236,164,31,62,147,216,215,11,237,184, +68,228,56,177,207,34,38,149,50,55,217,79,45,182,73,232,139,207,166,109,56,198,49,129,109,84,124,216,215,88,6,6,173,218,15,29,123,53,139,143,192,15,144,115,227,210,30,193,103,155,90,223,253,157,108,71,112,197,68,134,224,138,5,152,182,149,51,164,108,115, +115,82,7,43,182,4,188,220,75,18,176,97,194,18,236,164,255,160,235,129,50,234,17,142,228,13,81,250,147,73,47,109,147,99,139,200,240,25,232,135,236,46,217,79,61,232,73,204,184,114,223,138,254,153,140,236,167,140,35,109,16,30,50,165,74,130,71,59,50,12,125, +140,16,234,152,192,54,42,62,180,69,100,98,251,218,170,253,208,177,87,183,248,24,197,34,22,32,70,117,146,66,139,176,138,216,49,17,153,188,160,5,78,132,73,182,99,208,111,76,156,98,2,171,199,172,149,228,126,167,237,107,171,246,67,199,158,137,79,135,19,11, +16,163,53,112,35,87,103,23,157,136,142,61,19,159,14,39,22,32,70,115,33,163,224,114,133,39,71,177,250,78,66,199,158,137,79,135,19,11,16,195,104,21,58,246,234,18,31,123,151,119,126,168,229,93,217,16,107,107,24,173,66,199,94,77,226,99,239,242,206,55,105, +239,202,134,152,189,97,180,10,29,123,53,137,143,253,127,87,254,137,189,43,27,98,182,134,209,42,116,236,85,21,31,123,151,119,113,72,190,43,27,98,118,134,209,42,116,236,85,21,159,90,223,229,237,219,26,123,72,204,39,73,146,239,202,134,152,157,97,180,10, +29,123,85,197,167,214,127,42,101,2,28,120,243,155,221,161,3,7,140,54,242,150,67,135,220,169,147,39,163,62,73,146,124,87,54,196,236,12,163,85,232,216,171,42,62,177,14,98,188,241,129,7,220,225,7,31,116,199,142,28,49,218,200,35,71,143,186,139,231,207,71, +125,18,67,251,182,30,255,26,70,51,208,177,103,226,147,115,76,124,140,60,161,99,207,196,39,231,152,248,24,121,66,199,158,137,79,206,49,241,49,242,132,142,61,19,159,156,99,226,99,228,9,29,123,38,62,57,199,196,199,200,19,58,246,76,124,114,142,137,143,145, +39,116,236,153,248,228,28,19,31,35,79,232,216,51,241,201,57,38,62,70,158,208,177,103,226,147,115,76,124,140,60,161,99,207,196,39,231,152,248,24,121,66,199,158,137,79,206,49,241,49,242,132,142,61,19,159,156,99,226,99,228,9,29,123,38,62,57,199,196,199, +200,19,58,246,76,124,114,142,137,143,145,39,116,236,153,248,228,28,19,31,35,79,232,216,51,241,201,57,38,62,70,158,208,177,103,226,147,115,76,124,140,60,161,99,207,196,39,231,152,248,24,121,66,199,158,137,79,206,49,241,49,242,132,142,61,19,159,156,211, +168,248,76,141,13,68,237,12,163,233,140,152,248,20,138,70,197,135,183,153,198,236,12,163,217,240,10,111,29,123,38,62,57,167,81,241,225,69,130,49,59,195,104,54,75,179,99,219,98,207,196,39,231,52,42,62,192,25,41,102,107,24,205,98,122,124,208,221,89,155, +219,22,119,38,62,57,167,25,226,243,216,202,140,43,77,12,69,237,13,163,81,16,158,245,149,210,142,184,51,241,201,57,205,16,31,97,121,110,220,68,200,104,26,188,237,120,113,102,108,71,198,35,152,248,228,156,102,138,143,97,180,19,19,159,156,99,226,99,228, +21,19,159,156,99,226,99,228,21,19,159,156,99,226,99,228,149,166,137,207,193,253,251,221,137,227,199,93,215,137,19,70,27,57,221,213,229,174,244,246,70,125,18,67,251,54,201,250,114,41,220,32,180,71,239,70,163,16,67,139,51,163,110,109,105,42,26,107,208, +52,241,153,24,27,115,235,107,107,110,99,125,221,104,35,119,54,54,220,19,119,239,198,125,18,65,251,86,184,189,58,23,68,39,102,111,24,141,194,183,232,137,177,100,220,53,79,124,140,92,160,125,43,44,148,70,163,182,134,209,44,102,19,255,90,1,38,62,29,134, +246,45,220,90,154,142,218,25,70,179,225,95,121,116,236,153,248,116,24,218,183,192,117,121,204,46,79,60,253,142,39,221,75,95,248,124,180,174,25,124,239,187,223,137,150,55,202,221,141,85,183,126,179,115,230,216,220,212,240,182,216,51,241,233,48,180,111, +129,111,161,198,236,242,196,135,62,240,172,251,246,183,190,25,173,107,6,175,190,250,199,104,121,163,188,240,233,79,186,79,125,226,249,104,157,230,163,31,254,96,180,60,111,76,142,246,111,139,189,92,138,207,236,228,112,8,56,77,154,77,178,92,211,236,51, +26,65,66,64,197,234,178,130,246,109,86,253,91,47,248,25,241,121,251,19,119,194,186,206,38,40,35,22,200,142,88,215,109,244,54,72,204,60,247,204,187,182,149,107,241,161,159,88,182,66,185,142,203,100,61,125,38,247,77,103,62,186,61,235,218,230,183,191,249, +117,40,103,93,202,243,138,142,189,92,138,15,78,120,253,245,63,187,159,255,236,167,91,232,58,93,254,167,215,94,75,21,132,102,159,209,24,231,229,47,190,20,173,203,10,218,183,89,245,111,189,48,49,241,37,39,147,111,124,253,107,97,93,38,53,162,244,195,31, +124,63,44,63,254,177,143,132,50,226,2,59,208,39,160,175,126,229,203,193,127,44,117,76,73,156,144,165,252,228,199,63,10,34,33,117,2,246,140,35,109,117,38,198,58,237,168,163,47,17,61,198,146,216,164,13,54,236,147,236,47,229,212,19,235,216,198,68,45,111, +232,216,203,173,248,232,224,16,150,231,166,130,115,37,200,170,33,65,37,224,92,125,54,228,108,165,3,141,58,9,106,150,216,51,166,212,155,248,236,13,248,129,236,64,182,241,193,231,62,251,98,88,103,18,191,242,165,151,183,234,136,29,38,183,108,255,234,151, +191,136,102,20,156,180,196,183,196,9,89,45,237,98,194,3,196,163,140,9,180,199,150,62,254,240,251,223,109,149,191,248,153,23,182,4,47,41,62,210,158,118,58,54,147,113,154,103,116,236,21,74,124,228,12,152,44,79,67,219,18,164,32,103,30,202,88,39,88,196,134, +32,18,1,34,216,9,106,206,86,114,221,110,226,179,55,224,119,157,193,112,242,17,31,226,83,125,207,4,31,225,119,226,71,144,122,252,137,61,101,247,238,221,219,18,37,50,15,218,104,113,73,162,251,145,109,78,94,196,6,125,74,57,151,84,212,177,158,20,31,125,185, +165,99,179,158,152,206,58,58,246,10,113,217,37,129,199,19,15,4,67,236,8,22,237,224,36,226,84,206,78,18,16,128,160,16,8,4,143,148,179,205,89,146,117,198,145,62,181,16,154,248,236,13,201,147,14,254,145,167,95,76,124,234,165,14,97,210,190,22,36,179,97,157, +204,131,248,18,241,145,44,136,19,78,242,126,144,64,159,201,204,135,54,196,141,206,202,228,210,141,245,164,248,200,120,96,226,227,137,117,176,215,232,9,175,193,177,186,156,64,33,32,98,182,32,78,37,32,9,22,236,4,57,139,145,237,48,30,103,69,201,130,168, +71,136,180,61,229,38,62,123,3,226,130,255,56,241,224,111,252,42,151,207,73,241,65,88,240,157,100,68,226,47,98,5,95,19,11,244,67,31,34,6,18,39,244,137,141,92,142,105,136,1,68,6,209,67,196,68,96,24,143,117,198,99,223,104,47,251,83,171,248,80,71,191,250, +150,64,94,209,177,87,40,241,225,114,136,116,89,7,7,142,142,217,130,56,88,2,47,89,15,56,93,130,70,250,213,65,163,49,241,217,27,240,11,49,129,31,57,254,122,146,178,158,20,11,4,65,124,165,47,149,136,21,105,15,216,81,174,179,29,202,229,190,159,134,24,67, +184,136,21,78,82,210,22,88,167,142,88,210,2,195,186,244,69,134,164,219,232,49,177,161,79,45,162,121,69,199,94,110,197,7,225,32,80,4,169,195,73,8,5,142,198,225,156,113,170,137,15,96,131,45,109,232,79,130,130,37,41,184,190,167,32,227,203,24,4,28,229,38, +62,157,11,241,83,4,113,104,53,58,246,114,41,62,156,33,112,180,70,215,115,118,66,16,16,2,4,65,223,200,211,232,179,11,125,138,120,32,40,201,179,80,242,108,135,0,33,62,32,253,99,163,207,108,89,68,251,54,171,254,205,35,60,70,79,139,51,227,62,58,246,114,41, +62,198,238,209,190,53,255,26,237,70,199,158,137,79,135,161,125,91,36,255,142,12,246,185,161,235,189,133,132,207,22,251,204,121,68,199,158,137,79,135,161,125,91,36,255,246,245,92,112,103,79,159,116,215,175,246,186,107,87,122,220,181,62,205,229,196,118, +146,102,212,55,127,12,62,203,153,83,39,195,103,139,125,230,60,162,99,207,196,167,195,208,190,45,146,127,175,246,94,112,151,253,36,93,91,94,116,171,203,11,110,121,110,198,45,207,207,42,146,219,41,204,109,178,181,173,218,73,249,182,50,191,30,179,209,236, +216,151,26,240,253,172,46,45,184,222,75,23,194,103,139,125,230,60,162,99,207,196,167,195,208,190,45,146,127,131,248,116,151,197,167,52,53,225,46,156,234,114,221,231,206,186,158,243,231,92,183,135,101,207,249,179,97,189,59,44,61,231,252,186,167,92,183, +147,94,181,126,191,143,114,123,89,7,236,180,109,12,25,151,125,136,215,169,109,191,223,215,122,186,221,98,105,218,245,120,241,233,51,241,49,138,128,246,109,145,252,43,226,179,190,178,228,250,46,247,186,195,135,14,186,99,71,30,118,167,79,62,234,206,116, +157,216,137,191,156,57,67,157,95,158,101,253,20,101,39,194,165,219,185,211,93,229,229,153,46,191,126,202,219,151,235,41,3,218,96,19,56,115,42,216,148,215,105,231,161,79,101,187,173,255,173,109,169,47,151,151,41,151,157,246,251,119,237,114,143,91,156, +217,20,31,187,236,50,138,128,246,109,145,252,27,196,199,79,84,196,231,250,213,43,238,248,225,195,174,251,194,89,55,60,120,205,141,14,245,123,174,187,49,191,220,226,198,64,40,27,247,203,137,225,65,191,237,203,134,125,153,95,78,140,12,186,137,209,33,55, +53,122,195,77,142,110,214,121,88,159,28,27,10,118,227,158,201,145,33,95,230,237,198,176,27,242,109,176,245,125,210,222,67,27,198,160,79,233,131,182,140,45,75,246,141,190,216,143,113,191,31,172,99,63,58,120,221,45,148,166,76,124,140,226,160,125,91,36, +255,138,248,220,242,226,51,112,237,170,235,58,118,196,13,93,191,226,150,102,39,221,205,133,146,91,93,156,241,203,153,176,92,245,75,202,86,54,203,215,150,102,189,104,205,111,173,195,99,55,23,220,173,229,185,0,117,107,75,229,229,198,234,162,219,240,117, +216,220,90,153,11,235,183,125,25,117,101,187,89,223,79,185,221,246,113,125,185,223,150,125,160,158,178,48,134,239,91,198,45,183,159,113,211,99,195,38,62,177,14,140,252,162,125,91,36,255,110,23,159,62,47,62,71,189,248,244,185,149,249,82,152,224,107,75, +229,73,127,127,130,151,194,50,76,126,15,98,131,120,200,250,157,181,165,0,98,67,185,136,81,16,32,191,46,220,222,180,163,94,35,253,106,65,41,143,121,95,236,100,60,89,151,109,40,249,108,202,196,39,210,129,145,95,180,111,139,228,223,29,153,207,35,199,220, +80,63,226,51,189,57,225,203,147,95,68,135,237,91,203,101,241,97,91,139,6,130,115,231,214,114,16,21,201,106,164,142,37,130,35,101,183,215,22,131,141,180,7,45,36,101,225,41,143,121,115,97,122,83,132,238,11,144,44,129,113,105,3,165,177,17,55,63,109,226, +99,20,8,237,219,34,249,87,139,79,255,102,230,115,99,75,124,202,153,199,253,201,95,190,28,98,146,139,72,128,22,144,183,70,196,103,43,227,241,101,250,82,75,234,165,31,221,175,140,93,94,114,217,85,30,27,251,245,205,122,108,233,51,148,109,182,43,141,219, +101,87,180,3,35,191,104,223,22,201,191,65,124,186,69,124,184,231,227,47,187,130,248,76,109,9,0,32,64,8,192,77,4,33,76,254,178,48,220,90,190,47,36,8,139,100,51,90,76,164,31,177,163,92,238,225,72,25,235,210,230,254,61,159,157,75,234,181,237,198,205,197, +173,204,135,126,74,227,35,38,62,177,14,140,252,162,125,91,36,255,238,188,225,124,204,221,24,232,11,79,161,120,180,126,154,71,217,93,60,202,238,218,124,116,94,126,228,205,54,143,203,121,196,189,245,248,156,71,231,225,49,123,249,177,57,182,192,118,249, +113,184,212,117,133,199,226,82,127,154,126,101,12,177,231,145,187,183,219,122,188,46,203,205,199,240,242,136,253,194,217,211,110,110,122,188,156,85,249,140,171,52,62,106,151,93,177,14,140,252,162,125,91,36,255,238,188,231,67,230,115,53,252,171,197,145, +195,15,133,186,235,87,122,125,118,116,209,219,118,135,242,176,188,220,227,250,175,94,14,176,222,123,241,66,88,94,241,118,151,47,93,244,19,191,59,180,237,190,112,206,245,92,60,31,30,223,247,250,101,95,207,165,208,7,223,64,190,226,237,176,103,157,58,182, +67,189,239,7,174,246,94,242,117,190,77,247,165,80,126,253,114,175,187,226,203,88,103,127,248,130,33,109,185,212,146,12,10,241,89,48,241,137,119,98,228,19,237,219,34,249,55,118,195,249,198,192,213,32,56,143,250,245,177,161,1,63,153,39,220,194,212,184, +91,156,153,116,139,165,73,55,239,215,151,102,167,220,242,220,116,40,99,123,118,194,103,28,126,201,119,124,88,242,200,59,124,223,103,152,247,155,13,134,239,246,76,179,237,151,179,147,99,161,79,46,145,248,94,14,101,216,178,77,255,212,205,251,108,102,198, +111,83,134,61,223,231,97,41,253,208,39,101,108,47,148,38,130,240,60,118,115,222,205,76,248,190,229,27,206,38,62,70,17,208,190,45,146,127,183,137,207,245,114,230,131,248,240,5,192,43,61,23,195,229,215,220,212,152,23,5,47,64,158,21,47,56,128,240,112,255, +103,121,83,132,150,188,8,177,142,24,177,141,120,96,95,22,154,241,208,7,176,189,56,59,25,250,192,182,92,62,30,236,89,95,154,153,10,55,187,233,99,171,189,95,82,55,143,8,122,59,150,51,19,35,129,217,201,209,112,255,72,238,1,33,130,246,13,231,72,7,70,126, +209,190,45,146,127,147,226,115,202,103,59,35,62,27,225,203,129,114,19,183,156,85,108,127,42,5,225,230,178,175,99,157,167,89,242,253,158,240,72,61,216,148,191,171,67,123,110,18,203,141,98,250,146,254,228,73,149,64,89,249,70,182,124,207,167,124,179,154, +113,216,150,254,176,147,71,254,108,75,121,16,183,153,146,137,143,81,28,180,111,139,228,223,228,101,215,169,227,199,194,191,54,172,122,241,9,95,2,244,98,34,194,32,147,60,76,120,143,60,101,10,223,88,246,235,60,102,223,122,226,229,17,91,17,29,158,86,137, +72,36,5,40,176,89,30,250,247,235,229,118,101,241,17,187,173,241,55,109,217,150,50,32,139,90,154,53,241,49,10,132,246,109,145,252,155,204,124,78,31,127,36,252,223,20,151,84,136,8,162,34,162,35,194,65,150,195,196,103,201,54,32,84,225,251,61,100,61,126, +91,196,128,117,17,15,144,118,210,47,80,22,214,253,82,50,46,40,127,193,241,254,23,11,165,92,218,233,50,177,43,139,207,140,137,143,81,28,180,111,211,252,203,239,87,215,251,123,196,188,5,130,223,192,142,213,237,134,239,125,247,59,59,126,55,187,18,90,124, +248,158,15,151,93,220,4,102,66,235,47,11,178,205,228,14,226,225,203,88,134,12,103,83,56,88,222,89,43,103,62,65,92,54,203,69,180,68,36,64,183,97,91,139,136,172,175,251,108,42,150,245,72,189,244,121,223,190,188,228,126,16,191,235,83,139,248,200,111,154, +235,223,36,175,5,124,198,111,144,199,234,118,3,191,99,93,205,103,58,246,76,124,58,12,237,219,52,255,242,35,248,105,111,252,72,163,209,55,119,240,163,255,250,199,247,121,59,72,61,63,198,223,223,199,227,108,117,207,39,92,118,245,135,201,44,255,127,197, +186,22,10,217,150,9,143,16,108,93,118,109,10,150,22,46,105,139,157,136,136,244,197,54,109,41,19,66,191,65,124,202,25,205,237,213,165,176,46,109,182,218,174,148,51,48,233,7,193,90,40,77,214,44,62,28,39,121,137,38,239,36,227,189,97,181,8,55,62,227,141, +45,177,186,90,192,103,250,36,197,248,213,124,166,99,207,196,167,195,208,190,77,243,111,173,226,163,207,184,73,241,33,248,169,211,147,128,117,250,38,96,117,29,253,144,233,240,198,17,57,123,35,62,4,55,118,44,165,143,52,110,244,247,110,191,225,188,121,207, +135,201,44,32,14,129,205,117,17,145,242,132,71,4,202,66,181,245,175,21,155,194,67,189,8,72,249,6,242,253,203,47,192,78,250,20,91,160,79,65,143,163,203,180,88,73,59,214,23,194,211,178,218,197,71,251,139,12,68,94,231,148,68,251,44,249,42,103,222,111,150, +230,51,241,133,136,11,253,208,150,151,105,82,78,25,251,32,118,105,153,179,142,61,19,159,14,67,251,54,205,191,181,138,143,156,101,9,66,222,149,38,226,67,192,202,187,236,233,71,222,244,138,64,209,6,161,145,183,130,74,192,99,79,63,50,105,168,227,77,159, +76,36,150,244,37,227,198,24,189,113,69,93,118,149,255,183,11,241,217,88,45,255,159,22,147,93,196,7,97,225,31,71,249,62,141,136,69,89,148,202,79,184,36,243,17,1,41,95,122,33,30,229,108,133,127,197,40,255,107,70,57,187,161,63,198,65,168,36,75,130,45,219, +32,46,155,151,105,155,255,198,161,5,140,255,249,226,103,53,88,23,33,90,156,245,226,179,48,183,43,241,193,15,105,199,139,99,143,45,199,90,222,220,74,185,246,25,199,91,191,139,14,223,106,159,97,139,184,96,143,255,197,239,244,203,54,62,147,184,144,113,5, +29,123,38,62,29,134,246,109,154,127,107,17,31,108,8,62,217,38,208,36,8,9,62,17,28,2,85,222,6,75,32,235,126,177,227,236,203,58,237,229,12,10,4,57,246,172,115,150,149,62,210,152,30,187,22,46,187,248,25,213,217,233,73,215,115,238,172,27,236,187,236,70,251, +175,187,177,1,47,78,155,203,177,193,126,55,62,52,224,38,110,12,184,169,225,33,55,53,114,195,77,141,14,135,111,20,207,78,140,185,249,169,9,183,232,179,14,126,119,121,101,97,214,173,46,33,20,243,97,121,115,177,188,228,9,90,96,113,206,151,177,142,13,89, +204,130,170,199,62,105,163,203,102,195,250,77,63,198,202,2,191,3,93,114,75,48,59,29,132,135,255,235,98,188,90,197,135,227,197,241,71,36,16,15,202,146,118,8,61,118,178,205,241,23,129,160,173,8,14,118,218,103,218,207,216,137,111,105,43,62,2,124,43,125, +224,51,61,150,160,99,207,196,167,195,208,190,77,243,111,45,226,147,76,217,9,72,17,31,206,122,4,44,125,8,148,19,168,156,61,165,13,219,76,0,214,99,226,163,47,183,98,129,172,153,157,238,119,215,250,46,185,141,53,159,209,172,46,121,17,242,147,157,76,130, +236,130,44,100,7,62,227,241,75,50,154,0,89,137,207,124,30,3,159,189,192,6,25,77,11,97,63,129,113,129,125,90,91,190,15,101,252,40,62,247,179,98,159,89,144,19,1,199,143,227,152,118,19,153,151,97,226,27,217,230,248,139,15,17,173,164,207,56,113,96,67,157, +238,67,218,176,76,138,143,190,220,50,241,49,182,161,125,155,230,223,90,196,135,32,35,109,151,109,68,68,196,71,222,228,42,117,2,129,154,108,35,193,75,32,235,247,166,19,184,250,236,93,77,124,166,199,174,186,27,3,221,110,110,102,200,205,151,134,124,246, +48,236,51,137,17,183,180,56,226,150,51,200,210,194,72,216,199,185,210,160,155,153,26,116,165,9,159,141,141,241,19,174,124,158,107,110,100,248,106,184,108,236,190,120,218,13,92,173,46,62,226,47,201,56,16,142,152,93,50,139,17,33,209,39,15,13,254,73,203, +124,56,145,36,197,167,154,207,116,236,153,248,116,24,218,183,105,254,37,128,8,28,2,77,136,217,33,36,8,8,66,163,239,249,208,94,182,17,20,9,86,2,245,79,175,189,22,130,150,58,214,37,88,169,227,114,65,178,159,122,197,103,116,232,170,27,186,126,121,243,69, +123,151,221,224,181,222,92,48,116,173,103,139,193,171,9,40,243,140,12,84,126,105,32,199,73,159,44,56,150,58,195,209,96,199,241,231,242,40,121,207,135,99,204,61,31,124,38,190,164,47,158,164,97,135,159,181,95,200,126,233,67,124,102,226,99,84,68,251,54, +205,191,242,68,68,19,179,3,2,16,8,94,29,120,172,75,6,36,169,56,129,76,80,147,186,179,212,246,64,63,114,207,128,167,49,236,135,212,213,251,29,150,78,130,227,148,124,186,84,201,103,28,127,124,193,189,29,125,105,139,15,57,254,248,70,142,55,118,146,149,82, +158,124,242,72,95,146,229,178,15,213,124,166,99,207,196,167,195,208,190,109,183,127,69,124,98,117,70,54,17,241,137,213,237,6,29,123,38,62,29,134,246,109,187,253,203,217,147,96,142,213,25,217,4,159,73,102,211,12,116,236,153,248,116,24,218,183,230,95,163, +221,232,216,51,241,233,48,180,111,205,191,70,187,209,177,103,226,211,97,104,223,154,127,141,118,163,99,175,101,226,195,93,111,30,195,234,71,128,173,128,39,38,124,9,138,71,187,124,31,161,153,215,167,49,184,131,207,35,97,62,23,143,25,91,61,158,134,155, +181,213,30,57,87,67,251,182,17,255,26,198,110,208,177,215,50,241,145,239,128,180,90,124,228,127,131,88,71,240,152,156,177,47,88,53,139,228,35,101,4,47,249,152,179,21,32,122,136,172,137,143,145,103,116,236,181,76,124,100,146,182,90,124,146,32,122,237, +250,78,8,98,199,23,229,146,223,125,104,54,140,195,231,226,120,154,248,24,121,70,199,94,75,239,249,180,91,124,200,64,200,68,244,23,157,90,1,227,240,45,81,198,226,139,113,49,155,102,194,88,140,99,226,99,228,29,29,123,133,17,31,198,106,215,37,16,89,157, +124,227,147,49,25,59,102,215,12,244,63,242,153,248,24,121,71,199,94,33,196,167,157,194,147,132,172,164,149,55,157,229,70,58,199,145,75,175,123,247,238,53,116,76,181,111,27,245,175,97,212,139,142,189,220,139,79,187,133,71,223,223,225,102,119,59,199,182, +204,39,223,240,192,64,30,134,180,235,190,100,214,208,177,151,123,241,225,146,36,249,215,204,255,69,73,66,150,195,127,249,74,54,210,206,71,237,38,62,205,129,147,5,199,50,86,215,74,240,157,140,203,215,53,146,245,157,128,142,189,150,138,143,145,61,180,111, +139,228,95,178,80,38,54,153,133,254,143,110,50,12,182,229,33,4,75,50,16,254,123,91,103,31,8,82,181,108,68,250,78,102,186,148,129,22,52,41,211,118,90,124,100,44,217,111,50,106,236,217,214,109,168,163,156,177,177,105,245,195,148,86,163,99,207,196,167,195, +208,190,45,146,127,153,160,252,134,13,217,168,252,44,7,255,196,42,63,114,198,87,34,152,184,216,33,2,100,199,218,142,118,252,150,13,247,213,228,210,72,131,224,144,173,208,23,109,197,134,117,218,80,46,191,91,68,54,76,95,160,51,85,45,62,82,206,254,112,95, +15,65,196,94,255,198,17,99,178,205,103,96,12,93,151,87,116,236,153,248,116,24,218,183,149,252,59,220,127,197,29,59,114,152,224,104,43,71,30,126,200,245,247,117,71,247,169,18,34,42,105,153,1,147,155,39,135,172,35,52,216,75,29,19,91,50,14,132,67,68,73, +35,162,163,203,104,131,112,232,178,36,8,162,100,57,105,226,195,101,188,216,235,241,17,29,249,21,0,198,226,97,67,173,226,147,85,255,233,216,51,241,233,48,180,111,43,249,247,225,135,222,18,130,105,255,155,222,228,14,29,56,208,22,14,238,223,31,198,60,120, +96,127,116,159,42,193,36,70,96,116,25,223,141,66,48,16,27,178,6,153,200,90,124,100,82,83,38,196,238,227,33,106,8,16,162,193,146,50,253,53,8,13,227,176,47,50,174,140,149,38,62,201,223,85,150,254,147,15,51,16,201,90,197,39,171,254,211,177,103,226,211,97, +104,223,86,242,47,65,244,87,7,15,186,35,135,15,251,51,232,145,182,192,88,112,226,248,241,232,62,85,130,73,172,133,0,81,97,130,75,38,196,37,147,136,143,254,185,86,64,124,98,151,90,49,232,143,246,242,235,141,8,132,174,79,150,105,161,75,19,31,189,223,90, +124,40,151,108,141,113,201,144,106,21,159,172,250,79,199,158,137,79,135,161,125,91,201,191,111,240,193,123,248,193,7,163,65,214,106,46,156,59,23,221,167,74,36,39,49,147,149,172,3,145,96,50,35,8,34,62,100,54,250,114,136,122,68,130,122,238,219,104,97,18, +164,14,49,160,47,17,43,250,97,92,234,169,99,92,132,133,117,46,155,176,221,173,248,80,199,101,29,101,216,212,115,207,39,171,254,211,177,103,226,211,97,104,223,86,242,239,27,31,120,96,79,130,247,145,163,71,221,197,243,231,163,251,84,9,50,157,228,255,216, +177,141,208,240,109,116,196,66,4,3,129,64,148,228,6,49,200,55,214,153,232,98,167,161,47,105,147,28,7,17,227,62,141,148,203,184,136,7,125,177,111,98,199,216,178,206,50,185,223,216,107,129,161,15,246,11,155,180,155,225,49,178,234,63,29,123,38,62,29,134, +246,109,37,255,230,77,124,138,8,34,36,66,132,88,33,62,73,155,52,76,124,140,204,161,125,91,201,191,38,62,123,15,89,143,220,4,231,178,75,178,165,90,48,241,49,50,135,246,109,37,255,154,248,228,27,19,31,35,115,104,223,86,242,175,137,79,190,49,241,49,50,135, +246,109,37,255,154,248,228,27,19,31,35,115,104,223,86,242,175,137,79,190,49,241,49,50,135,246,109,37,255,154,248,228,27,19,31,35,115,104,223,86,242,175,137,79,190,49,241,49,50,135,246,109,37,255,154,248,228,27,19,31,35,115,104,223,86,242,175,137,79,190, +49,241,49,50,135,246,109,37,255,154,248,228,27,19,31,35,115,104,223,86,242,175,137,79,190,49,241,49,50,135,246,109,37,255,154,248,228,27,19,31,35,115,104,223,86,242,175,137,79,190,49,241,49,50,135,246,109,37,255,154,248,228,27,19,31,35,115,104,223,86, +242,239,95,188,225,13,238,225,135,30,138,6,88,43,49,241,105,14,89,245,159,142,61,19,159,14,67,251,182,146,127,219,253,19,156,2,193,219,125,241,98,116,159,140,218,201,170,255,116,236,153,248,116,24,218,183,149,252,219,115,233,162,59,115,234,148,235,58, +113,162,173,156,59,115,198,77,142,143,69,247,201,168,157,172,250,79,199,158,137,79,135,161,125,91,201,191,55,174,95,113,83,19,227,238,214,234,170,219,88,95,111,27,143,221,186,229,198,134,7,162,251,100,212,78,86,253,167,99,207,196,167,195,208,190,53,255, +26,237,70,199,158,137,79,135,161,125,107,254,53,218,141,142,61,19,159,14,67,251,54,205,191,188,97,33,249,62,114,35,251,224,55,126,247,185,158,223,122,110,55,58,246,76,124,58,12,237,219,52,255,242,198,4,126,180,60,86,103,100,23,252,198,139,5,241,29,111, +186,224,157,98,181,190,106,167,93,232,216,51,241,233,48,180,111,211,252,91,143,248,112,166,5,253,138,23,169,211,25,20,239,167,194,134,201,128,61,239,161,210,19,131,117,121,127,149,156,193,165,79,163,54,146,126,227,165,133,177,247,206,11,248,74,31,103, +214,165,14,31,136,47,229,221,98,105,190,163,94,252,92,205,119,58,246,114,47,62,242,97,53,105,54,201,242,78,68,251,54,205,191,201,32,78,67,222,71,46,47,219,163,76,222,196,9,186,31,142,63,235,98,207,11,248,190,241,245,175,109,217,178,206,11,249,240,21, +111,249,100,226,208,63,75,177,49,42,147,244,27,199,249,149,47,189,188,205,70,224,85,60,100,71,216,200,203,19,249,147,122,250,210,111,85,213,190,227,5,139,250,189,248,140,33,239,183,231,85,210,248,146,254,181,127,5,29,123,185,23,31,14,146,164,154,130, +174,211,229,188,110,86,38,73,35,112,240,99,229,121,64,251,54,205,191,201,32,142,193,153,79,191,147,92,168,36,62,248,73,222,222,137,200,240,42,96,150,64,59,234,176,211,130,67,57,245,178,109,164,35,130,129,64,32,14,8,1,101,73,59,142,51,199,62,89,94,73, +124,120,159,189,248,14,180,95,88,39,30,200,126,180,40,233,215,74,11,58,246,10,33,62,177,137,194,129,226,160,200,139,246,171,33,105,35,7,90,14,24,125,179,173,29,72,127,56,149,114,113,6,246,186,93,150,209,190,77,243,111,218,49,213,144,185,232,119,140,11, +18,176,160,251,225,248,232,192,4,206,140,8,185,62,147,50,113,152,24,180,19,236,230,119,109,112,188,229,221,240,248,70,178,145,36,196,48,247,131,146,229,149,196,39,249,182,84,178,29,78,228,212,49,31,40,227,18,143,54,149,124,167,99,175,176,226,195,65,209, +19,161,26,4,60,19,128,179,46,7,12,33,97,155,201,64,255,28,104,196,6,167,226,96,202,25,27,59,182,113,6,118,250,253,223,89,68,251,54,205,191,105,199,84,35,129,158,44,231,152,203,25,145,32,151,126,100,66,104,91,238,41,80,6,146,77,18,192,73,59,163,54,180, +223,36,155,140,157,16,41,139,205,13,174,12,228,132,138,63,196,6,223,37,227,129,251,62,114,137,197,137,136,50,150,34,68,105,232,216,43,220,101,151,156,65,81,125,125,205,73,80,35,24,105,151,93,28,232,180,203,41,202,229,76,145,156,68,136,149,8,14,78,141, +165,179,89,66,251,54,205,191,28,83,142,7,199,75,136,217,113,188,57,22,124,126,201,48,217,230,184,83,198,217,82,130,54,38,62,128,141,158,8,4,63,199,144,62,104,147,118,246,54,118,146,60,105,16,235,177,12,7,40,199,31,216,136,239,136,101,241,39,253,84,18, +31,160,12,95,201,201,134,37,39,36,201,104,99,247,235,116,236,21,54,243,65,133,117,57,103,89,4,40,102,11,28,104,57,136,128,178,227,8,196,140,3,42,237,146,147,8,39,74,189,32,117,89,68,251,54,205,191,28,7,62,167,38,102,7,4,25,199,85,63,169,226,216,19,192, +8,137,164,221,172,139,141,134,178,100,57,182,180,71,244,244,211,51,163,50,28,251,228,101,78,37,223,201,156,208,199,31,33,226,216,115,34,213,79,187,98,151,190,204,189,100,185,246,93,236,100,174,99,175,176,226,195,193,75,222,36,195,17,105,226,160,207,190, +128,232,200,25,65,11,25,125,104,241,225,204,156,167,179,179,246,109,30,252,107,20,11,29,123,85,197,103,106,44,219,255,228,87,233,18,1,5,38,45,68,28,16,18,68,163,86,241,33,117,4,210,82,132,72,218,33,102,216,210,31,235,140,207,24,162,244,140,169,251,201, +20,35,59,197,39,235,254,53,10,68,34,254,146,226,243,190,164,248,204,79,143,196,59,202,8,213,46,17,72,41,245,253,158,88,250,8,201,244,30,97,193,30,49,97,93,183,99,157,254,228,102,30,2,36,25,80,90,255,89,96,102,242,198,54,223,230,193,191,70,113,72,198, +159,18,159,9,196,231,189,73,241,185,185,48,25,237,200,200,31,75,179,99,219,124,107,254,53,218,73,50,254,54,197,231,57,207,56,226,243,158,164,248,0,138,21,235,204,200,15,211,227,131,238,206,218,220,14,223,154,127,141,118,16,139,191,77,241,121,198,51,138, +248,60,53,53,122,237,95,181,1,60,182,50,227,74,19,67,209,78,141,236,131,227,215,87,74,219,124,170,49,255,26,173,36,45,254,174,245,156,254,127,94,115,222,233,185,129,248,220,190,124,233,244,207,31,223,88,218,97,8,203,115,227,22,164,57,162,228,157,190, +56,51,150,154,241,36,49,255,26,205,164,82,252,221,90,154,114,215,122,207,254,222,107,206,93,207,53,196,103,254,106,239,133,87,102,198,251,119,24,27,134,97,52,11,196,167,175,231,220,127,246,154,179,236,185,132,248,12,121,158,184,124,177,235,119,147,195, +125,209,70,134,97,24,141,114,226,232,161,255,251,166,55,253,229,187,189,222,140,120,78,34,62,231,61,211,39,31,61,246,15,189,23,78,254,79,4,104,164,191,59,218,216,48,12,163,94,208,19,132,231,228,163,71,63,233,181,102,214,67,214,243,176,103,223,81,79,183, +167,228,121,91,207,133,83,255,169,251,236,241,255,117,238,228,97,215,117,236,144,97,24,198,174,57,253,232,67,255,251,252,233,71,254,139,207,120,158,246,250,50,231,185,236,121,196,115,192,179,239,160,231,152,231,130,103,216,179,228,225,134,208,187,60, +207,122,222,231,225,75,65,134,97,24,181,128,102,160,29,104,200,227,158,21,15,143,214,201,120,16,158,67,251,246,237,251,139,255,15,171,227,103,50,233,85,150,225,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; -const char* OperatorEditor_287x218_png = (const char*) temp_binary_data_13; +const char* OperatorEditor_287x218_png = (const char*) temp_binary_data_14; const char* getNamedResource (const char*, int&) throw(); @@ -9911,6 +9676,7 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw switch (hash) { + case 0xb5f9cc57: numBytes = 841; return Switch_32x32_png; case 0xb808cdf7: numBytes = 2261; return Switch_48x26_png; case 0x5fe3afed: numBytes = 1850; return ButtonUnlabeled_50x30_png; case 0x6e76c9d9: numBytes = 13011; return Knob_34x34_png; @@ -9923,8 +9689,8 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw case 0x654b711b: numBytes = 311508; return NotoSansBold_ttf; case 0x796d1c9c: numBytes = 88890; return builtin_pgm_zip; case 0xb02b7677: numBytes = 24863; return about_png; - case 0xff44b02a: numBytes = 30438; return GlobalEditor_864x144_png; - case 0x081c7d0e: numBytes = 15614; return OperatorEditor_287x218_png; + case 0xff44b02a: numBytes = 17334; return GlobalEditor_864x144_png; + case 0x081c7d0e: numBytes = 10927; return OperatorEditor_287x218_png; default: break; } @@ -9934,6 +9700,7 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw const char* namedResourceList[] = { + "Switch_32x32_png", "Switch_48x26_png", "ButtonUnlabeled_50x30_png", "Knob_34x34_png", diff --git a/JuceLibraryCode/BinaryData.h b/JuceLibraryCode/BinaryData.h index edde5e6..baf1365 100644 --- a/JuceLibraryCode/BinaryData.h +++ b/JuceLibraryCode/BinaryData.h @@ -9,6 +9,9 @@ namespace BinaryData { + extern const char* Switch_32x32_png; + const int Switch_32x32_pngSize = 841; + extern const char* Switch_48x26_png; const int Switch_48x26_pngSize = 2261; @@ -46,16 +49,16 @@ namespace BinaryData const int about_pngSize = 24863; extern const char* GlobalEditor_864x144_png; - const int GlobalEditor_864x144_pngSize = 30438; + const int GlobalEditor_864x144_pngSize = 17334; extern const char* OperatorEditor_287x218_png; - const int OperatorEditor_287x218_pngSize = 15614; + const int OperatorEditor_287x218_pngSize = 10927; // Points to the start of a list of resource names. extern const char* namedResourceList[]; // Number of elements in the namedResourceList array. - const int namedResourceListSize = 14; + const int namedResourceListSize = 15; // If you provide the name of one of the binary resource variables above, this function will // return the corresponding data and its size (or a null pointer if the name isn't found). diff --git a/README.md b/README.md index 96a787e..49e3cc7 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,15 @@ in the source folder) stays on the Apache 2.0 license to able to collaborate bet Changelog --------- +#### Version 0.9.2 +* Mark I engine is now the default engine +* Added operator mute switch +* Added Tune (MASTER TUNE ADJ) knob +* Correct feedback implementation for Algo 4 and 6 +* Single click program select +* Fix sysex issue with wrong machine ID +* Fix for parameter hosts values. thanks @Sentinel77 + #### Version 0.9.1 * Mark I engine now uses 10-bit sine/exp tables. Still a work in progress but we are getting there * More accurate FM feedback on the Mark I and OPL Series engine @@ -42,28 +51,6 @@ Changelog * Fixed some of mono mode ticks on lower frequencies * SynprezFM preset are now in a submenu -#### Version 0.7.0 -* Preliminary Algo 4 & 6 feedback support -* DX Engine 'Dirty DX' emulation, including one based on OPL chips -* DX Engine LFO amplitude. This still needs tuning. -* Monophonic mode -* Added the 'INIT' button to re-initialize a program -* Fixed stucked notes when programs where changed -* Fixed engine envelopes wrong timing if it was not 44100Khz -* Fixed only .syx are shown when we are using the Dexed_cart.zip cartridges collection -* The DX7 Sysex port are now only used for sysex messages. This is used to avoid any midi note feedback. - -#### Version 0.6.1 -* Mouse over + LFO type fix + pitch eg values - -#### Version 0.6.0 -* Added external midi interface to send / receive sysex messages -* Fix Tracktion crash upon startup -* Middle C (transpose) now works -* Identify the parameter knob/switch by simply moving the mouse over it -* Knobs now works with vertical mouse drags -* User DX7 zip cartridges - Credits & thanks ---------------- * DX Synth engine : Raph Levien and the [msfa](https://code.google.com/p/music-synthesizer-for-android) team @@ -73,6 +60,7 @@ Credits & thanks * DX7 program compilation : Jean-Marc Desprez (author of [SynprezFM](http://www.synprez.com/SynprezFM)) * DX7 programs : Dave Benson, Frank Carvalho, Tim Conrardy, Jack Deckard, Chris Dodunski, Tim Garrett, Hitaye, Stephan Ibsen, Christian Jezreel, Narfman, Godric Wilkie * falkTX [distrho](http://distrho.sourceforge.net/) +* Sentinel77 for parameter host value fix TODO - Dexed ------------ diff --git a/Resources/ui/GlobalEditor_864x144.png b/Resources/ui/GlobalEditor_864x144.png index eed2784..8b9269b 100755 Binary files a/Resources/ui/GlobalEditor_864x144.png and b/Resources/ui/GlobalEditor_864x144.png differ diff --git a/Resources/ui/OperatorEditor_287x218.png b/Resources/ui/OperatorEditor_287x218.png index 5697261..d583752 100644 Binary files a/Resources/ui/OperatorEditor_287x218.png and b/Resources/ui/OperatorEditor_287x218.png differ diff --git a/Resources/ui/Switch_32x32.png b/Resources/ui/Switch_32x32.png new file mode 100755 index 0000000..aa035c9 Binary files /dev/null and b/Resources/ui/Switch_32x32.png differ diff --git a/Resources/ui/source/Dexed-skinman.skin b/Resources/ui/source/Global.skin similarity index 55% rename from Resources/ui/source/Dexed-skinman.skin rename to Resources/ui/source/Global.skin index a7faf9a..93ff0fe 100644 Binary files a/Resources/ui/source/Dexed-skinman.skin and b/Resources/ui/source/Global.skin differ diff --git a/Resources/ui/source/Operator.skin b/Resources/ui/source/Operator.skin new file mode 100644 index 0000000..86f71ca Binary files /dev/null and b/Resources/ui/source/Operator.skin differ diff --git a/Resources/ui/source/render_template.png b/Resources/ui/source/render_template.png deleted file mode 100644 index c416cb7..0000000 Binary files a/Resources/ui/source/render_template.png and /dev/null differ diff --git a/Source/CartManager.cpp b/Source/CartManager.cpp index efcfb85..bb182cd 100644 --- a/Source/CartManager.cpp +++ b/Source/CartManager.cpp @@ -31,7 +31,7 @@ class SyxFileFilter : public FileFilter { public: SyxFileFilter() : FileFilter(".syx") {} bool isFileSuitable(const File &file) const { - return file.getFileExtension().toLowerCase() == ".syx" && file.getSize() == 4104; + return file.getFileExtension().toLowerCase() == ".syx" && file.getSize() >= 4104; } bool isDirectorySuitable(const File &file) const { return true; @@ -117,7 +117,7 @@ CartManager::CartManager(DexedAudioProcessorEditor *editor) : Component("CartMan * * I've removed this since it only works on the DX7 II. TBC. * - + addAndMakeVisible(getDXPgmButton = new TextButton("GET DX7 PGM")); getDXPgmButton->setBounds(656, 545, 100, 30); getDXPgmButton->addListener(this); @@ -125,7 +125,6 @@ CartManager::CartManager(DexedAudioProcessorEditor *editor) : Component("CartMan addAndMakeVisible(getDXCartButton = new TextButton("GET DX7 CART")); getDXCartButton->setBounds(755, 545, 100, 30); getDXCartButton->addListener(this); - */ } diff --git a/Source/DXComponents.cpp b/Source/DXComponents.cpp index 39ed1e5..59b172f 100644 --- a/Source/DXComponents.cpp +++ b/Source/DXComponents.cpp @@ -1,4 +1,4 @@ -/** +/** * * Copyright (c) 2014 Pascal Gauthier. * @@ -408,5 +408,35 @@ void ComboBoxImage::setImage(Image image, int pos[]) { itemPos[i] = pos[i]; } +void ProgramSelector::mouseDown(const MouseEvent &event) { + if ( event.x < getWidth() - 8) { + ComboBox::mouseDown(event); + return; + } + + int cur = getSelectedItemIndex(); + if ( event.y < getHeight() / 2 ) { + if ( cur == 0 ) + cur = 31; + else + cur--; + } else { + if ( cur == 31 ) + cur = 0; + else + cur++; + } + setSelectedItemIndex(cur); +} + void ProgramSelector::paint(Graphics &g) { + int x = getWidth(); + int y = getHeight(); + + Path path; + path.addTriangle(x-8, y/2-1, x-4, 2, x, y/2-1); + path.addTriangle(x-8, y/2+1, x-4, y-2, x, y/2+1); + + g.setColour(Colours::white); + g.fillPath(path); } diff --git a/Source/DXComponents.h b/Source/DXComponents.h index b20c3f5..cf75638 100644 --- a/Source/DXComponents.h +++ b/Source/DXComponents.h @@ -63,7 +63,7 @@ class ComboBoxImage : public ComboBox { public: ComboBoxImage(); - virtual void paint(Graphics &g); + virtual void paint(Graphics &g) override; virtual void showPopup() override; void setImage(Image image); void setImage(Image image, int pos[]); @@ -71,6 +71,7 @@ public: class ProgramSelector : public ComboBox { public: + void mouseDown(const MouseEvent &event) override; virtual void paint(Graphics &g) override; }; diff --git a/Source/DXLookNFeel.cpp b/Source/DXLookNFeel.cpp index e314197..0e3e74c 100644 --- a/Source/DXLookNFeel.cpp +++ b/Source/DXLookNFeel.cpp @@ -1,6 +1,6 @@ /** * - * Copyright (c) 2013-2014 Pascal Gauthier. + * Copyright (c) 2013-2016 Pascal Gauthier. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -64,6 +64,7 @@ DXLookNFeel::DXLookNFeel() { imageKnob = ImageCache::getFromMemory(BinaryData::Knob_34x34_png, BinaryData::Knob_34x34_pngSize); imageSwitch = ImageCache::getFromMemory(BinaryData::Switch_48x26_png, BinaryData::Switch_48x26_pngSize); + imageSwitchOperator = ImageCache::getFromMemory(BinaryData::Switch_32x32_png, BinaryData::Switch_32x32_pngSize); imageButton = ImageCache::getFromMemory(BinaryData::ButtonUnlabeled_50x30_png, BinaryData::ButtonUnlabeled_50x30_pngSize); imageSlider = ImageCache::getFromMemory(BinaryData::Slider_26x26_png, BinaryData::Slider_26x26_pngSize); imageScaling = ImageCache::getFromMemory(BinaryData::Scaling_36_26_png, BinaryData::Scaling_36_26_pngSize);; @@ -119,6 +120,10 @@ DXLookNFeel::DXLookNFeel() { imageSwitch = findImage(path); continue; } + if ( name == "Switch_32x64.png" ) { + imageSwitchOperator = findImage(path); + continue; + } if ( name == "ButtonUnlabeled_50x30.png" ) { imageButton = findImage(path); continue; diff --git a/Source/DXLookNFeel.h b/Source/DXLookNFeel.h index f35efd3..85f5dc6 100644 --- a/Source/DXLookNFeel.h +++ b/Source/DXLookNFeel.h @@ -1,6 +1,6 @@ /** * - * Copyright (c) 2013-2014 Pascal Gauthier. + * Copyright (c) 2013-2016 Pascal Gauthier. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -35,11 +35,12 @@ public: Typeface::Ptr defaultFontBold; Image imageKnob, imageSwitch, imageButton, imageSlider, imageScaling, imageLight, imageLFO; + Image imageSwitchOperator; Image imageOperator, imageGlobal; /* overriden methods */ - virtual void drawRotarySlider(Graphics &g, int x, int y, int width, int height, float sliderPosProportional, float rotaryStartAngle, float rotaryEndAngle, Slider &slider ); - virtual void drawToggleButton(Graphics& g, ToggleButton& button, bool isMouseOverButton, bool isButtonDown); + virtual void drawRotarySlider(Graphics &g, int x, int y, int width, int height, float sliderPosProportional, float rotaryStartAngle, float rotaryEndAngle, Slider &slider ) override; + virtual void drawToggleButton(Graphics& g, ToggleButton& button, bool isMouseOverButton, bool isButtonDown) override; virtual void drawLinearSliderBackground (Graphics&, int x, int y, int width, int height, float sliderPos, float minSliderPos, float maxSliderPos, const Slider::SliderStyle, Slider&) override; @@ -49,8 +50,8 @@ public: virtual void drawButtonBackground (Graphics&, Button&, const Colour& backgroundColour, bool isMouseOverButton, bool isButtonDown) override; virtual Font getTextButtonFont(TextButton&, int buttonHeight) override; - virtual Typeface::Ptr getTypefaceForFont(const Font &); - virtual void positionComboBoxText (ComboBox& box, Label& label); + virtual Typeface::Ptr getTypefaceForFont(const Font &) override; + virtual void positionComboBoxText (ComboBox& box, Label& label) override; static DXLookNFeel *getLookAndFeel(); static Colour fillColour; diff --git a/Source/Dexed.h b/Source/Dexed.h index c17bd55..51aa10a 100644 --- a/Source/Dexed.h +++ b/Source/Dexed.h @@ -23,15 +23,17 @@ void dexed_trace(const char *source, const char *fmt, ...); +#define DEXED_ID "0.9.2" + #ifdef DEBUG - #define DEXED_VERSION "0.9.1 DEBUG" + #define DEXED_VERSION DEXED_ID " DEBUG" #ifdef _MSC_VER #define TRACE(fmt, ...) dexed_trace(__FUNCTION__,fmt,##__VA_ARGS__) #else #define TRACE(fmt, ...) dexed_trace(__PRETTY_FUNCTION__,fmt,##__VA_ARGS__) #endif #else - #define DEXED_VERSION "0.9.1" + #define DEXED_VERSION DEXED_ID #define TRACE(fmt, ...) #endif diff --git a/Source/EngineMkI.cpp b/Source/EngineMkI.cpp index 351e8d3..83737fa 100644 --- a/Source/EngineMkI.cpp +++ b/Source/EngineMkI.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 Pascal Gauthier. + * Copyright (C) 2015-2016 Pascal Gauthier. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -57,6 +57,8 @@ static const uint16_t SINEXP_BITDEPTH = 10; static const uint16_t SINEXP_TABLESIZE = 1<> 4) & 3; - int outbus = flags & 3; - int32_t *outptr = (outbus == 0) ? output : buf_[outbus - 1].get(); - int32_t gain1 = param.gain_out == 0 ? (ENV_MAX-1) : param.gain_out; - int32_t gain2 = ENV_MAX-(param.level_in >> (28-ENV_BITDEPTH)); - param.gain_out = gain2; - - if (gain1 <= kLevelThresh || gain2 <= kLevelThresh) { - if (!has_contents[outbus]) { - add = false; - } - if (inbus == 0 || !has_contents[inbus]) { - // todo: more than one op in a feedback loop - if ((flags & 0xc0) == 0xc0 && feedback_shift < 16) { - // cout << op << " fb " << inbus << outbus << add << endl; - compute_fb(outptr, param.phase, param.freq, - gain1, gain2, - fb_buf, feedback_shift, add); - } else { - // cout << op << " pure " << inbus << outbus << add << endl; - compute_pure(outptr, param.phase, param.freq, - gain1, gain2, add); - } - } else { - // cout << op << " normal " << inbus << outbus << " " << param.freq << add << endl; - compute(outptr, buf_[inbus - 1].get(), - param.phase, param.freq, gain1, gain2, add); - } - has_contents[outbus] = true; - } else if (!add) { - has_contents[outbus] = false; - } - param.phase += param.freq << LG_N; - } -} - -const FmAlgorithm EngineMkI::algo2[32] = { - { { 0xc1, 0x11, 0x11, 0x14, 0x01, 0x14 } }, // 1 - { { 0x01, 0x11, 0x11, 0x14, 0xc1, 0x14 } }, // 2 - { { 0xc1, 0x11, 0x14, 0x01, 0x11, 0x14 } }, // 3 - { { 0xc4, 0x00, 0x00, 0x01, 0x11, 0x14 } }, // 4 ** EXCEPTION VIA CODE - { { 0xc1, 0x14, 0x01, 0x14, 0x01, 0x14 } }, // 5 - { { 0xc4, 0x00, 0x01, 0x14, 0x01, 0x14 } }, // 6 ** EXCEPTION VIA CODE - { { 0xc1, 0x11, 0x05, 0x14, 0x01, 0x14 } }, // 7 - { { 0x01, 0x11, 0xc5, 0x14, 0x01, 0x14 } }, // 8 - { { 0x01, 0x11, 0x05, 0x14, 0xc1, 0x14 } }, // 9 - { { 0x01, 0x05, 0x14, 0xc1, 0x11, 0x14 } }, // 10 - { { 0xc1, 0x05, 0x14, 0x01, 0x11, 0x14 } }, // 11 - { { 0x01, 0x05, 0x05, 0x14, 0xc1, 0x14 } }, // 12 - { { 0xc1, 0x05, 0x05, 0x14, 0x01, 0x14 } }, // 13 - { { 0xc1, 0x05, 0x11, 0x14, 0x01, 0x14 } }, // 14 - { { 0x01, 0x05, 0x11, 0x14, 0xc1, 0x14 } }, // 15 - { { 0xc1, 0x11, 0x02, 0x25, 0x05, 0x14 } }, // 16 - { { 0x01, 0x11, 0x02, 0x25, 0xc5, 0x14 } }, // 17 - { { 0x01, 0x11, 0x11, 0xc5, 0x05, 0x14 } }, // 18 - { { 0xc1, 0x14, 0x14, 0x01, 0x11, 0x14 } }, // 19 - { { 0x01, 0x05, 0x14, 0xc1, 0x14, 0x14 } }, // 20 - { { 0x01, 0x14, 0x14, 0xc1, 0x14, 0x14 } }, // 21 - { { 0xc1, 0x14, 0x14, 0x14, 0x01, 0x14 } }, // 22 - { { 0xc1, 0x14, 0x14, 0x01, 0x14, 0x04 } }, // 23 - { { 0xc1, 0x14, 0x14, 0x14, 0x04, 0x04 } }, // 24 - { { 0xc1, 0x14, 0x14, 0x04, 0x04, 0x04 } }, // 25 - { { 0xc1, 0x05, 0x14, 0x01, 0x14, 0x04 } }, // 26 - { { 0x01, 0x05, 0x14, 0xc1, 0x14, 0x04 } }, // 27 - { { 0x04, 0xc1, 0x11, 0x14, 0x01, 0x14 } }, // 28 - { { 0xc1, 0x14, 0x01, 0x14, 0x04, 0x04 } }, // 29 - { { 0x04, 0xc1, 0x11, 0x14, 0x04, 0x04 } }, // 30 - { { 0xc1, 0x14, 0x04, 0x04, 0x04, 0x04 } }, // 31 - { { 0xc4, 0x04, 0x04, 0x04, 0x04, 0x04 } }, // 32 -}; - -// exclusively used for ALGO 4 with feedback -void EngineMkI::compute_fb3(int32_t *output, FmOpParams *parms, int32_t gain01, int32_t gain02, int32_t *fb_buf, int fb_shift) { - int32_t dgain[3]; - int32_t gain[3]; - int32_t phase[3]; +// exclusively used for ALGO 6 with feedback +void EngineMkI::compute_fb2(int32_t *output, FmOpParams *parms, int32_t gain01, int32_t gain02, int32_t *fb_buf, int fb_shift) { + int32_t dgain[2]; + int32_t gain[2]; + int32_t phase[2]; int32_t y0 = fb_buf[0]; int32_t y = fb_buf[1]; phase[0] = parms[0].phase; phase[1] = parms[1].phase; - phase[2] = parms[2].phase; - + + parms[1].gain_out = (ENV_MAX-(parms[1].level_in >> (28-ENV_BITDEPTH))); + gain[0] = gain01; - gain[1] = parms[1].gain_out; - gain[2] = parms[2].gain_out; - + gain[1] = parms[1].gain_out == 0 ? (ENV_MAX-1) : parms[1].gain_out; + dgain[0] = (gain02 - gain01 + (N >> 1)) >> LG_N; - - parms[1].gain_out = Exp2::lookup(parms[1].level_in - (14 * (1 << 24))); - dgain[1] = (parms[1].gain_out - gain[1] + (N >> 1)) >> LG_N; - parms[2].gain_out = Exp2::lookup(parms[2].level_in - (14 * (1 << 24))); - dgain[2] = (parms[1].gain_out - gain[2] + (N >> 1)) >> LG_N; + dgain[1] = (parms[1].gain_out - (parms[1].gain_out == 0 ? (ENV_MAX-1) : parms[1].gain_out)); for (int i = 0; i < N; i++) { + int32_t scaled_fb = (y0 + y) >> (fb_shift + 1); + // op 0 gain[0] += dgain[0]; - int32_t scaled_fb = (y0 + y) >> (fb_shift + 6); // tsk tsk tsk: this needs some tuning y0 = y; - y = Sin::lookup(phase[0] + scaled_fb); - y = ((int64_t)y * (int64_t)gain[0]) >> 24; + y = mkiSin(phase[0]+scaled_fb, gain[0]); phase[0] += parms[0].freq; // op 1 gain[1] += dgain[1]; - y = Sin::lookup(phase[1] + y); - y = ((int64_t)y * (int64_t)gain[1]) >> 24; + y = mkiSin(phase[1]+y, gain[1]); phase[1] += parms[1].freq; - // op 2 - gain[2] += dgain[2]; - y = Sin::lookup(phase[2] + y); - y = ((int64_t)y * (int64_t)gain[2]) >> 24; output[i] = y; - phase[2] += parms[2].freq; } fb_buf[0] = y0; fb_buf[1] = y; } -// exclusively used for ALGO 6 with feedback -void EngineMkI::compute_fb2(int32_t *output, FmOpParams *parms, int32_t gain01, int32_t gain02, int32_t *fb_buf, int fb_shift) { - int32_t dgain[2]; - int32_t gain[2]; - int32_t phase[2]; +// exclusively used for ALGO 4 with feedback +void EngineMkI::compute_fb3(int32_t *output, FmOpParams *parms, int32_t gain01, int32_t gain02, int32_t *fb_buf, int fb_shift) { + int32_t dgain[3]; + int32_t gain[3]; + int32_t phase[3]; int32_t y0 = fb_buf[0]; int32_t y = fb_buf[1]; phase[0] = parms[0].phase; phase[1] = parms[1].phase; + phase[2] = parms[2].phase; - gain[0] = gain01; - gain[1] = parms[1].gain_out; + parms[1].gain_out = (ENV_MAX-(parms[1].level_in >> (28-ENV_BITDEPTH))); + parms[2].gain_out = (ENV_MAX-(parms[2].level_in >> (28-ENV_BITDEPTH))); + gain[0] = gain01; + gain[1] = parms[1].gain_out == 0 ? (ENV_MAX-1) : parms[1].gain_out; + gain[2] = parms[2].gain_out == 0 ? (ENV_MAX-1) : parms[2].gain_out; + dgain[0] = (gain02 - gain01 + (N >> 1)) >> LG_N; + dgain[1] = (parms[1].gain_out - (parms[1].gain_out == 0 ? (ENV_MAX-1) : parms[1].gain_out)); + dgain[2] = (parms[2].gain_out - (parms[2].gain_out == 0 ? (ENV_MAX-1) : parms[2].gain_out)); - parms[1].gain_out = Exp2::lookup(parms[1].level_in - (14 * (1 << 24))); - dgain[1] = (parms[1].gain_out - gain[1] + (N >> 1)) >> LG_N; for (int i = 0; i < N; i++) { + int32_t scaled_fb = (y0 + y) >> (fb_shift + 1); + // op 0 gain[0] += dgain[0]; - int32_t scaled_fb = (y0 + y) >> (fb_shift + 2); // tsk tsk tsk: this needs some tuning y0 = y; - y = Sin::lookup(phase[0] + scaled_fb); - y = ((int64_t)y * (int64_t)gain[0]) >> 24; + y = mkiSin(phase[0]+scaled_fb, gain[0]); phase[0] += parms[0].freq; // op 1 gain[1] += dgain[1]; - y = Sin::lookup(phase[1] + y); - y = ((int64_t)y * (int64_t)gain[1]) >> 24; - output[i] = y; + y = mkiSin(phase[1]+y, gain[1]); phase[1] += parms[1].freq; + + // op 2 + gain[2] += dgain[2]; + y = mkiSin(phase[2]+y, gain[2]); + phase[2] += parms[2].freq; + + output[i] = y; } fb_buf[0] = y0; fb_buf[1] = y; } -/* void EngineMkI::render(int32_t *output, FmOpParams *params, int algorithm, int32_t *fb_buf, int feedback_shift) { - const int kLevelThresh = 507; - const FmAlgorithm alg = algo2[algorithm]; + const int kLevelThresh = ENV_MAX-100; + FmAlgorithm alg = algorithms[algorithm]; bool has_contents[3] = { true, false, false }; + bool fb_on = feedback_shift < 16; + + switch(algorithm) { + case 3 : case 5 : + if ( fb_on ) + alg.ops[0] = 0xc4; + } for (int op = 0; op < 6; op++) { int flags = alg.ops[op]; @@ -382,11 +309,11 @@ void EngineMkI::render(int32_t *output, FmOpParams *params, int algorithm, int32 int inbus = (flags >> 4) & 3; int outbus = flags & 3; int32_t *outptr = (outbus == 0) ? output : buf_[outbus - 1].get(); - int32_t gain1 = param.gain_out == 0 ? 511 : param.gain_out; - int32_t gain2 = 512-(param.level_in >> 19); + int32_t gain1 = param.gain_out == 0 ? (ENV_MAX-1) : param.gain_out; + int32_t gain2 = ENV_MAX-(param.level_in >> (28-ENV_BITDEPTH)); param.gain_out = gain2; - if (gain1 >= kLevelThresh || gain2 >= kLevelThresh) { + if (gain1 <= kLevelThresh || gain2 <= kLevelThresh) { if (!has_contents[outbus]) { add = false; @@ -394,44 +321,38 @@ void EngineMkI::render(int32_t *output, FmOpParams *params, int algorithm, int32 if (inbus == 0 || !has_contents[inbus]) { // PG: this is my 'dirty' implementation of FB for 2 and 3 operators... - // still needs some tuning... - if ((flags & 0xc0) == 0xc0 && feedback_shift < 16) { + if ((flags & 0xc0) == 0xc0 && fb_on) { switch ( algorithm ) { - // two operator feedback, process exception for ALGO 6 - case 5 : - //compute_fb2(outptr, params, gain1, gain2, fb_buf, feedback_shift, controllers); - params[1].phase += params[1].freq << LG_N; // yuk, hack, we already processed op-5 - op++; // ignore next operator; - break; // three operator feedback, process exception for ALGO 4 case 3 : - //compute_fb3(outptr, params, gain1, gain2, fb_buf, feedback_shift, controllers); + compute_fb3(outptr, params, gain1, gain2, fb_buf, feedback_shift); params[1].phase += params[1].freq << LG_N; // hack, we already processed op-5 - op-4 params[2].phase += params[2].freq << LG_N; // yuk yuk op += 2; // ignore the 2 other operators break; + // two operator feedback, process exception for ALGO 6 + case 5 : + compute_fb2(outptr, params, gain1, gain2, fb_buf, feedback_shift); + params[1].phase += params[1].freq << LG_N; // yuk, hack, we already processed op-5 + op++; // ignore next operator; + break; default: // one operator feedback, normal proces - //cout << "\t" << op << " fb " << inbus << outbus << add << endl; - compute_fb(outptr, param.phase, param.freq,gain1, gain2, fb_buf, feedback_shift, add); + compute_fb(outptr, param.phase, param.freq, gain1, gain2, fb_buf, feedback_shift, add); break; } } else { - // cout << op << " pure " << inbus << outbus << add << endl; compute_pure(outptr, param.phase, param.freq, gain1, gain2, add); } } else { - - // cout << op << " normal " << inbus << outbus << " " << param.freq << add << endl; compute(outptr, buf_[inbus - 1].get(), param.phase, param.freq, gain1, gain2, add); } has_contents[outbus] = true; - } else if (!add) { has_contents[outbus] = false; } param.phase += param.freq << LG_N; } } -*/ + diff --git a/Source/EngineMkI.h b/Source/EngineMkI.h index 8478b90..9f355fe 100644 --- a/Source/EngineMkI.h +++ b/Source/EngineMkI.h @@ -26,8 +26,6 @@ class EngineMkI : public FmCore { - //refacter this when it is working - const static FmAlgorithm algo2[32]; public: EngineMkI(); diff --git a/Source/GlobalEditor.cpp b/Source/GlobalEditor.cpp index 40f7026..abc229a 100644 --- a/Source/GlobalEditor.cpp +++ b/Source/GlobalEditor.cpp @@ -63,7 +63,7 @@ public: class AboutBox : public DialogWindow { public: Image about_png; - + AboutBox(Component *parent) : DialogWindow("About", Colour(0xFF000000), true) { setUsingNativeTitleBar(false); setAlwaysOnTop(true); @@ -71,11 +71,11 @@ public: setSize(about_png.getWidth(), about_png.getHeight()); centreAroundComponent (parent, getWidth(), getHeight()); } - + void closeButtonPressed() { setVisible (false); } - + void paint(Graphics &g) { g.drawImage (about_png, 0, 0, about_png.getWidth(), about_png.getHeight(), 0, 0, about_png.getWidth(), about_png.getHeight()); @@ -260,6 +260,12 @@ GlobalEditor::GlobalEditor () Image(), 1.000f, Colour (0x00000000), Image(), 1.000f, Colour (0x00000000), Image(), 1.000f, Colour (0x00000000)); + addAndMakeVisible (tune = new Slider ("tune")); + tune->setRange (0, 1, 0); + tune->setSliderStyle (Slider::RotaryVerticalDrag); + tune->setTextBoxStyle (Slider::NoTextBox, true, 80, 20); + tune->addListener (this); + //[UserPreSize] //[/UserPreSize] @@ -321,6 +327,7 @@ GlobalEditor::~GlobalEditor() lfoType = nullptr; programSelector = nullptr; aboutButton = nullptr; + tune = nullptr; //[Destructor]. You can add your own custom destruction code here.. @@ -379,6 +386,7 @@ void GlobalEditor::resized() lfoType->setBounds (583, 8, 36, 26); programSelector->setBounds (153, 115, 112, 18); aboutButton->setBounds (8, 11, 135, 46); + tune->setBounds (190, 9, 34, 34); //[UserResized] Add your own custom resize handling here.. //[/UserResized] } @@ -491,6 +499,11 @@ void GlobalEditor::sliderValueChanged (Slider* sliderThatWasMoved) //[UserSliderCode_output] -- add your slider handling code here.. //[/UserSliderCode_output] } + else if (sliderThatWasMoved == tune) + { + //[UserSliderCode_tune] -- add your slider handling code here.. + //[/UserSliderCode_tune] + } //[UsersliderValueChanged_Post] //[/UsersliderValueChanged_Post] @@ -584,14 +597,15 @@ void GlobalEditor::bind(DexedAudioProcessorEditor *edit) { processor->fxCutoff->bind(cutoff); processor->fxReso->bind(reso); processor->output->bind(output); + processor->tune->bind(tune); algoDisplay->algo = (char *) &(processor->data[134]); pitchEnvDisplay->pvalues = &(processor->data[126]); editor = edit; midiMonitor = new MidiMonitor(&(processor->sysexComm)); - addAndMakeVisible(midiMonitor); - midiMonitor->setBounds(155, 21, 80, 45); + //addAndMakeVisible(midiMonitor); + //midiMonitor->setBounds(155, 21, 80, 45); repaint(); } @@ -759,6 +773,10 @@ BEGIN_JUCER_METADATA resourceNormal="" opacityNormal="1" colourNormal="0" resourceOver="" opacityOver="1" colourOver="0" resourceDown="" opacityDown="1" colourDown="0"/> + END_JUCER_METADATA diff --git a/Source/GlobalEditor.h b/Source/GlobalEditor.h index 6a843b3..b6f86ae 100644 --- a/Source/GlobalEditor.h +++ b/Source/GlobalEditor.h @@ -113,6 +113,7 @@ private: ScopedPointer lfoType; ScopedPointer programSelector; ScopedPointer aboutButton; + ScopedPointer tune; //============================================================================== diff --git a/Source/OperatorEditor.cpp b/Source/OperatorEditor.cpp index d3c4053..ef5332f 100644 --- a/Source/OperatorEditor.cpp +++ b/Source/OperatorEditor.cpp @@ -7,12 +7,12 @@ the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded and re-saved. - Created with Introjucer version: 3.1.0 + Created with Introjucer version: 3.2.0 ------------------------------------------------------------------------------ The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-13 by Raw Material Software Ltd. + Copyright (c) 2015 - ROLI Ltd. ============================================================================== */ @@ -25,13 +25,30 @@ //[MiscUserDefs] You can add your own user definitions and misc code here... #ifndef M_LN10 -#define M_LN10 2.30258509299404568402 +#define M_LN10 2.30258509299404568402 #endif + +class OperatorSwitch : public ToggleButton { + Image image; +public : + OperatorSwitch() : ToggleButton("opSwitch") { + image = DXLookNFeel::getLookAndFeel()->imageSwitchOperator; + setSize(32, 32); + } + + void paintButton (Graphics& g, bool isMouseOverButton, bool isButtonDown) { + g.drawImage(image, 0, 0, 32, 32, 0, getToggleState() ? 0 : 32, 32, 32); + } +}; + //[/MiscUserDefs] //============================================================================== OperatorEditor::OperatorEditor () { + //[Constructor_pre] You can add your own custom stuff here.. + //[/Constructor_pre] + addAndMakeVisible (s_egl1 = new Slider ("egl1")); s_egl1->setRange (0, 99, 1); s_egl1->setSliderStyle (Slider::RotaryVerticalDrag); @@ -173,6 +190,7 @@ OperatorEditor::OperatorEditor () //[UserPreSize] + addAndMakeVisible(opSwitch = new OperatorSwitch()); //[/UserPreSize] setSize (287, 218); @@ -233,6 +251,7 @@ OperatorEditor::~OperatorEditor() //[Destructor]. You can add your own custom destruction code here.. + opSwitch = nullptr; //[/Destructor] } @@ -246,7 +265,7 @@ void OperatorEditor::paint (Graphics& g) //[UserPaint] Add your own custom painting code here.. g.setColour (Colours::white); g.setFont(Font (30.00f, Font::plain)); - g.drawText(opNum, 242, 8, 30, 30, Justification::centred, true); + g.drawText(opNum, 250, 14, 30, 30, Justification::centred, true); bool state = opMode->getToggleState(); @@ -259,6 +278,9 @@ void OperatorEditor::paint (Graphics& g) void OperatorEditor::resized() { + //[UserPreResize] Add your own custom resize code here.. + //[/UserPreResize] + s_egl1->setBounds (5, 128, 34, 34); s_egl2->setBounds (33, 129, 34, 34); s_egl3->setBounds (61, 128, 34, 34); @@ -284,6 +306,7 @@ void OperatorEditor::resized() kbdLeftCurve->setBounds (128, 170, 36, 26); kbdRightCurve->setBounds (240, 170, 36, 26); //[UserResized] Add your own custom resize handling here.. + opSwitch->setBounds(226, 13, 64, 32); //[/UserResized] } @@ -439,6 +462,7 @@ void OperatorEditor::bind(DexedAudioProcessor *parent, int op) { parent->opCtrl[op].sclRate->bind(sclRateScaling); parent->opCtrl[op].ampModSens->bind(ampModSens); parent->opCtrl[op].velModSens->bind(keyVelSens); + parent->opCtrl[op].opSwitch->bind(opSwitch); int offset = parent->opCtrl[op].egRate[0]->getOffset(); envDisplay->pvalues = &(parent->data[offset]); @@ -507,7 +531,7 @@ void OperatorEditor::mouseDown(const MouseEvent &event) { case 3: processor->pasteOpFromClipboard(internalOp); break; - + case 4: processor->sendCurrentSysexProgram(); break; diff --git a/Source/OperatorEditor.h b/Source/OperatorEditor.h index 4d22d49..48c9540 100644 --- a/Source/OperatorEditor.h +++ b/Source/OperatorEditor.h @@ -7,12 +7,12 @@ the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded and re-saved. - Created with Introjucer version: 3.1.0 + Created with Introjucer version: 3.2.0 ------------------------------------------------------------------------------ The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions" - Copyright 2004-13 by Raw Material Software Ltd. + Copyright (c) 2015 - ROLI Ltd. ============================================================================== */ @@ -56,10 +56,10 @@ public: void mouseDown(const MouseEvent& e) override; //[/UserMethods] - void paint (Graphics& g); - void resized(); - void sliderValueChanged (Slider* sliderThatWasMoved); - void buttonClicked (Button* buttonThatWasClicked); + void paint (Graphics& g) override; + void resized() override; + void sliderValueChanged (Slider* sliderThatWasMoved) override; + void buttonClicked (Button* buttonThatWasClicked) override; @@ -68,10 +68,9 @@ private: String opNum; int internalOp; Image light; - DexedAudioProcessor *processor; - Image background; + ScopedPointer opSwitch; //[/UserVariables] //============================================================================== diff --git a/Source/PluginData.cpp b/Source/PluginData.cpp index 2482439..dc975f6 100644 --- a/Source/PluginData.cpp +++ b/Source/PluginData.cpp @@ -1,6 +1,6 @@ /** * - * Copyright (c) 2014-2015 Pascal Gauthier. + * Copyright (c) 2014-2016 Pascal Gauthier. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -55,7 +55,7 @@ void exportSysexPgm(uint8_t *dest, uint8_t *src) { /** * Pack a program into a 32 packed sysex */ -void Cartridge::packProgram(uint8_t *src, int idx, String name) { +void Cartridge::packProgram(uint8_t *src, int idx, String name, char *opSwitch) { uint8_t *bulk = voiceData + 6 + (idx * 128); for(int op = 0; op < 6; op++) { @@ -70,7 +70,10 @@ void Cartridge::packProgram(uint8_t *src, int idx, String name) { // kvs_ams bulk[pp+13] = (src[up+14]&0x03) | ((src[up+15]&0x07) << 2); // output lvl - bulk[pp+14] = src[up+16]; + if ( opSwitch[op] == '0' ) + bulk[pp+14] = 0; + else + bulk[pp+14] = src[up+16]; // fcoarse_mode bulk[pp+15] = (src[up+17]&0x01) | ((src[up+18]&0x1f) << 1); // fine freq @@ -158,7 +161,7 @@ void Cartridge::unpackProgram(uint8_t *unpackPgm, int idx) { unpackPgm[142] = (lpms_lfw_lks >> 1) & 7; unpackPgm[143] = lpms_lfw_lks >> 4; memcpy(unpackPgm + 144, bulk + 117, 11); // transpose, name - unpackPgm[155] = 1; // operator on/off + unpackPgm[155] = 1; // operator on/off (DEPRECATED) unpackPgm[156] = 1; unpackPgm[157] = 1; unpackPgm[158] = 1; @@ -173,6 +176,7 @@ void DexedAudioProcessor::loadCartridge(Cartridge &sysex) { void DexedAudioProcessor::updateProgramFromSysex(const uint8_t *rawdata) { memcpy(data, rawdata, 161); + lfo.reset(data + 137); triggerAsyncUpdate(); } @@ -249,18 +253,27 @@ void DexedAudioProcessor::sendCurrentSysexCartridge() { void DexedAudioProcessor::sendSysexCartridge(File cart) { if ( ! sysexComm.isOutputActive() ) return; - String f = cart.getFullPathName(); - uint8_t syx_data[4104]; - ifstream fp_in(f.toRawUTF8(), ios::binary); - if (fp_in.fail()) { + + FileInputStream *fis = cart.createInputStream(); + if ( fis == NULL ) { + String f = cart.getFullPathName(); AlertWindow::showMessageBoxAsync (AlertWindow::WarningIcon, "Error", "Unable to open: " + f); + } + + uint8 syx_data[65535]; + int sz = fis->read(syx_data, 65535); + delete fis; + + if (syx_data[0] != 0xF0) { + String f = cart.getFullPathName(); + AlertWindow::showMessageBoxAsync (AlertWindow::WarningIcon, + "Error", + "File: " + f + " doesn't seems to contain any sysex data"); return; } - fp_in.read((char *)syx_data, 4104); - fp_in.close(); - sysexComm.send(MidiMessage(syx_data, 4104)); + sysexComm.send(MidiMessage(syx_data, sz)); } @@ -285,6 +298,8 @@ void DexedAudioProcessor::getStateInformation(MemoryBlock& destData) { dexedState.setAttribute("currentProgram", currentProgram); dexedState.setAttribute("monoMode", monoMode); dexedState.setAttribute("engineType", (int) engineType); + dexedState.setAttribute("masterTune", controllers.masterTune); + dexedState.setAttribute("opSwitch", controllers.opSwitch); char mod_cfg[15]; controllers.wheel.setConfig(mod_cfg); @@ -324,6 +339,13 @@ void DexedAudioProcessor::setStateInformation(const void* source, int sizeInByte fx.uiGain = root->getDoubleAttribute("gain"); currentProgram = root->getIntAttribute("currentProgram"); + String opSwitchValue = root->getStringAttribute("opSwitch"); + if ( opSwitchValue.length() != 6 ) { + strcpy(controllers.opSwitch, "111111"); + } else { + strncpy(controllers.opSwitch, opSwitchValue.toRawUTF8(), 6); + } + controllers.wheel.parseConfig(root->getStringAttribute("wheelMod").toRawUTF8()); controllers.foot.parseConfig(root->getStringAttribute("footMod").toRawUTF8()); controllers.breath.parseConfig(root->getStringAttribute("breathMod").toRawUTF8()); @@ -331,6 +353,7 @@ void DexedAudioProcessor::setStateInformation(const void* source, int sizeInByte setEngineType(root->getIntAttribute("engineType", 1)); monoMode = root->getIntAttribute("monoMode", 0); + controllers.masterTune = root->getIntAttribute("masterTune", 0); File possibleCartridge = File(root->getStringAttribute("activeFileCartridge")); if ( possibleCartridge.exists() ) diff --git a/Source/PluginData.h b/Source/PluginData.h index f5a8579..b10e099 100644 --- a/Source/PluginData.h +++ b/Source/PluginData.h @@ -1,6 +1,6 @@ /** * - * Copyright (c) 2014-2015 Pascal Gauthier. + * Copyright (c) 2014-2016 Pascal Gauthier. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,15 +22,16 @@ #define PLUGINDATA_H_INCLUDED #include "../JuceLibraryCode/JuceHeader.h" -#define SYSEX_SIZE 4104 #include +#include #include "Dexed.h" uint8_t sysexChecksum(const uint8_t *sysex, int size); void exportSysexPgm(uint8_t *dest, uint8_t *src); -#define SYSEX_HEADER { 0xF0, 0x43, 0x00, 0x00, 0x20, 0x00 } +#define SYSEX_HEADER { 0xF0, 0x43, 0x00, 0x09, 0x20, 0x00 } +#define SYSEX_SIZE 4104 class Cartridge { uint8_t voiceData[SYSEX_SIZE]; @@ -89,6 +90,11 @@ public: return rc; } + /** + * Loads sysex stream + * Returns 0 if it was parsed sucessfully + * Returns -1 if it cannot open the stream + */ int load(InputStream &fis) { uint8 buffer[65535]; int sz = fis.read(buffer, 65535); @@ -97,7 +103,17 @@ public: return load(buffer, sz); } + /** + * Loads sysex buffer + * Returns 0 if it was parsed sucessfully + * Returns 1 if sysex checksum didn't match + * Returns 2 if no sysex data found, probably random data + */ int load(const uint8_t *stream, int size) { + const uint8 voiceHeaderBroken[] = { 0xF0, 0x43, 0x00, 0x00, 0x20, 0x00 }; + // I've added a stupid bug that saved the wrong sysex data for dx7 sysex (0.9.1) + // This is there to support this version. One day we will be able to remove this. :( + uint8 voiceHeader[] = SYSEX_HEADER; uint8 tmp[65535]; uint8 *pos = tmp; @@ -111,14 +127,14 @@ public: while(size >= 4104) { // random data if ( pos[0] != 0xF0 ) { - if ( status != 0 ) + if ( status != 3 ) return status; memcpy(voiceData, pos+6, 4096); return 2; } pos[3] = 0; - if ( memcmp(pos, voiceHeader, 6) == 0 ) { + if ( memcmp(pos, voiceHeader, 6) == 0 || memcmp(pos, voiceHeaderBroken, 6) == 0) { memcpy(voiceData, pos, SYSEX_SIZE); if ( sysexChecksum(voiceData + 6, 4096) == pos[4102] ) status = 0; @@ -139,12 +155,63 @@ public: stream += i; } + // nothing good has been found, map it then to random data + if ( status > 1 ) { + memcpy(voiceData, pos+6, 4096); + return 2; + } + return status; } int saveVoice(File f) { setHeader(); - return f.replaceWithData(voiceData, SYSEX_SIZE); + + if ( ! f.existsAsFile() ) { + // file doesn't exists, create it + return f.replaceWithData(voiceData, SYSEX_SIZE); + } + + FileInputStream *fis = f.createInputStream(); + if ( fis == NULL ) + return -1; + + uint8 buffer[65535]; + int sz = fis->read(buffer, 65535); + delete fis; + + // if the file is smaller than 4104, it probably needs to be overriden. + if ( sz <= 4104 ) { + return f.replaceWithData(voiceData, SYSEX_SIZE); + } + + // To avoid to erase the performance data, we skip the sysex stream until + // we see the header 0xF0, 0x43, 0x00, 0x09, 0x20, 0x00 + + int pos = 0; + bool found = 0; + while(pos < sz) { + // corrupted sysex, erase everything : + if ( buffer[pos] != 0xF0 ) + return f.replaceWithData(voiceData, SYSEX_SIZE); + + uint8_t header[] = SYSEX_HEADER; + if ( memcmp(buffer+pos, header, 6) ) { + found = true; + memcpy(buffer+pos, voiceData, SYSEX_SIZE); + break; + } else { + for(;posloadCartridge(cart); rebuildProgramCombobox(); processor->setCurrentProgram(0); @@ -297,7 +307,7 @@ void DexedAudioProcessorEditor::storeProgram() { } if ( externalFile == NULL ) { - processor->currentCart.packProgram((uint8_t *) processor->data, programNum, programName); + processor->currentCart.packProgram((uint8_t *) processor->data, programNum, programName, processor->controllers.opSwitch); rebuildProgramCombobox(); processor->setCurrentProgram(programNum); processor->updateHostDisplay(); @@ -316,7 +326,7 @@ void DexedAudioProcessorEditor::storeProgram() { processor->activeFileCartridge = destination; } } else { - destSysex.packProgram((uint8_t *) processor->data, programNum, programName); + destSysex.packProgram((uint8_t *) processor->data, programNum, programName, processor->controllers.opSwitch); if ( ! destSysex.saveVoice(*externalFile)) { AlertWindow::showMessageBoxAsync(AlertWindow::WarningIcon, "Write error", "Unable to write file"); } diff --git a/Source/PluginEditor.h b/Source/PluginEditor.h index 703d03d..ed731d6 100644 --- a/Source/PluginEditor.h +++ b/Source/PluginEditor.h @@ -1,6 +1,6 @@ /** * - * Copyright (c) 2013-2015 Pascal Gauthier. + * Copyright (c) 2013-2016 Pascal Gauthier. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -31,11 +31,7 @@ //============================================================================== /** */ -class DexedAudioProcessorEditor : public AudioProcessorEditor, - public ComboBoxListener, - public Timer { - PopupMenu cartPopup; - +class DexedAudioProcessorEditor : public AudioProcessorEditor, public ComboBoxListener, public Timer { MidiKeyboardComponent midiKeyboard; OperatorEditor operators[6]; Colour background; diff --git a/Source/PluginFx.cpp b/Source/PluginFx.cpp index 99312a0..6ac4245 100644 --- a/Source/PluginFx.cpp +++ b/Source/PluginFx.cpp @@ -81,6 +81,10 @@ void PluginFx::init(int sr) { pCutoff = -1; pReso = -1; + + dc_r = 1.0-(126.0/sr); + dc_id = 0; + dc_od = 0; } inline float PluginFx::NR24(float sample,float g,float lpc) { @@ -97,6 +101,18 @@ inline float PluginFx::NR(float sample, float g) { } void PluginFx::process(float *work, int sampleSize) { + // very basic DC filter + float t_fd = work[0]; + work[0] = work[0] - dc_id + dc_r * dc_od; + dc_id = t_fd; + for (int i=1; icontrollers.masterTune / (1.0/12); + tune = (tune >> 11) + 0x2000; + return (float)tune / 0x4000; + } + + void setValueHost(float v) { + int32_t tune = (v * 0x4000) - 0x2000; + processor->controllers.masterTune = ((float) (tune << 11)) * (1.0/12); + } + + String getValueDisplay() { + String display; + display << (getValueHost() * 2) -1; + return display; + } + + void updateComponent() { + if (slider != NULL) { + slider->setValue(getValueHost(), dontSendNotification); + } + } +}; + +class CtrlOpSwitch : public Ctrl { + char *value; + public : + CtrlOpSwitch(String name, char *switchValue) : Ctrl(name) { + value = switchValue; + } + + void setValueHost(float f) { + if ( f == 0 ) + *value = '0'; + else + *value = '1'; + } + + float getValueHost() { + if ( *value == '0' ) + return 0; + else + return 1; + } + + String getValueDisplay() { + String ret; + ret << label << " " << (*value == '0' ? "OFF" : "ON"); + return ret; + } + + void updateComponent() { + if (button != NULL) { + if (*value == '0') { + button->setToggleState(false, dontSendNotification); + } else { + button->setToggleState(true, dontSendNotification); + } + } + } +}; // ************************************************************************ // @@ -186,17 +254,11 @@ float CtrlDX::getValueHost() { } void CtrlDX::setValueHost(float f) { - if ( f == 1 ) - f = 0.999; - setValue((f * steps)); + setValue(roundToInt(f * steps)); } void CtrlDX::setValue(int v) { TRACE("setting value %d %d", dxOffset, v); - if (v >= steps) { - TRACE("WARNING: value too big %s : %d", label.toRawUTF8(), v); - v = steps - 1; - } dxValue = v; if (dxOffset >= 0) { if (parent != NULL) @@ -288,28 +350,31 @@ void DexedAudioProcessor::initCtrl() { output = new CtrlFloat("Output", &fx.uiGain); ctrl.add(output); - algo = new CtrlDX("ALGORITHM", 32, 134, 1); + tune = new CtrlTune("MASTER TUNE ADJ", this); + ctrl.add(tune); + + algo = new CtrlDX("ALGORITHM", 31, 134, 1); ctrl.add(algo); - feedback = new CtrlDX("FEEDBACK", 8, 135); + feedback = new CtrlDX("FEEDBACK", 7, 135); ctrl.add(feedback); - oscSync = new CtrlDX("OSC KEY SYNC", 2, 136); + oscSync = new CtrlDX("OSC KEY SYNC", 1, 136); ctrl.add(oscSync); - lfoRate = new CtrlDX("LFO SPEED", 100, 137); + lfoRate = new CtrlDX("LFO SPEED", 99, 137); ctrl.add(lfoRate); - lfoDelay = new CtrlDX("LFO DELAY", 100, 138); + lfoDelay = new CtrlDX("LFO DELAY", 99, 138); ctrl.add(lfoDelay); - lfoPitchDepth = new CtrlDX("LFO PM DEPTH", 100, 139); + lfoPitchDepth = new CtrlDX("LFO PM DEPTH", 99, 139); ctrl.add(lfoPitchDepth); - lfoAmpDepth = new CtrlDX("LFO AM DEPTH", 100, 140); + lfoAmpDepth = new CtrlDX("LFO AM DEPTH", 99, 140); ctrl.add(lfoAmpDepth); - lfoSync = new CtrlDX("LFO KEY SYNC", 2, 141); + lfoSync = new CtrlDX("LFO KEY SYNC", 1, 141); ctrl.add(lfoSync); StringArray lbl; @@ -320,26 +385,26 @@ void DexedAudioProcessor::initCtrl() { lbl.add("SINE"); lbl.add("S&HOLD"); - lfoWaveform = new CtrlDXLabel("LFO WAVE", 6, 142, lbl); + lfoWaveform = new CtrlDXLabel("LFO WAVE", 5, 142, lbl); ctrl.add(lfoWaveform); - transpose = new CtrlDXTranspose("MIDDLE C", 49, 144); + transpose = new CtrlDXTranspose("MIDDLE C", 48, 144); ctrl.add(transpose); - pitchModSens = new CtrlDX("P MODE SENS.", 8, 143); + pitchModSens = new CtrlDX("P MODE SENS.", 7, 143); ctrl.add(pitchModSens); for (int i=0;i<4;i++) { String rate; rate << "PITCH EG RATE " << (i+1); - pitchEgRate[i] = new CtrlDX(rate, 100, 126+i); + pitchEgRate[i] = new CtrlDX(rate, 99, 126+i); ctrl.add(pitchEgRate[i]); } for (int i=0;i<4;i++) { String level; level << "PITCH EG LEVEL " << (i+1); - pitchEgLevel[i] = new CtrlDX(level, 100, 130+i); + pitchEgLevel[i] = new CtrlDX(level, 99, 130+i); ctrl.add(pitchEgLevel[i]); } @@ -360,81 +425,86 @@ void DexedAudioProcessor::initCtrl() { for (int j = 0; j < 4; j++) { String opRate; opRate << opName << " EG RATE " << (j + 1); - opCtrl[opVal].egRate[j] = new CtrlDX(opRate, 100, opTarget + j); + opCtrl[opVal].egRate[j] = new CtrlDX(opRate, 99, opTarget + j); ctrl.add(opCtrl[opVal].egRate[j]); } for (int j = 0; j < 4; j++) { String opLevel; opLevel << opName << " EG LEVEL " << (j + 1); - opCtrl[opVal].egLevel[j] = new CtrlDX(opLevel, 100, opTarget + j + 4); + opCtrl[opVal].egLevel[j] = new CtrlDX(opLevel, 99, opTarget + j + 4); ctrl.add(opCtrl[opVal].egLevel[j]); } String opVol; opVol << opName << " OUTPUT LEVEL"; - opCtrl[opVal].level = new CtrlDX(opVol, 100, opTarget + 16); + opCtrl[opVal].level = new CtrlDX(opVol, 99, opTarget + 16); ctrl.add(opCtrl[opVal].level); String opMode; opMode << opName << " MODE"; - opCtrl[opVal].opMode = new CtrlDX(opMode, 2, opTarget + 17); + opCtrl[opVal].opMode = new CtrlDX(opMode, 1, opTarget + 17); ctrl.add(opCtrl[opVal].opMode); String coarse; coarse << opName << " F COARSE"; - opCtrl[opVal].coarse = new CtrlDX(coarse, 32, opTarget + 18); + opCtrl[opVal].coarse = new CtrlDX(coarse, 31, opTarget + 18); ctrl.add(opCtrl[opVal].coarse); String fine; fine << opName << " F FINE"; - opCtrl[opVal].fine = new CtrlDX(fine, 100, opTarget + 19); + opCtrl[opVal].fine = new CtrlDX(fine, 99, opTarget + 19); ctrl.add(opCtrl[opVal].fine); String detune; detune << opName << " OSC DETUNE"; - opCtrl[opVal].detune = new CtrlDX(detune, 15, opTarget + 20, -7); + opCtrl[opVal].detune = new CtrlDX(detune, 14, opTarget + 20, -7); ctrl.add(opCtrl[opVal].detune); String sclBrkPt; sclBrkPt << opName << " BREAK POINT"; - opCtrl[opVal].sclBrkPt = new CtrlDX(sclBrkPt, 100, opTarget + 8); + opCtrl[opVal].sclBrkPt = new CtrlDX(sclBrkPt, 99, opTarget + 8); ctrl.add(opCtrl[opVal].sclBrkPt); String sclLeftDepth; sclLeftDepth << opName << " L SCALE DEPTH"; - opCtrl[opVal].sclLeftDepth = new CtrlDX(sclLeftDepth, 100, opTarget + 9); + opCtrl[opVal].sclLeftDepth = new CtrlDX(sclLeftDepth, 99, opTarget + 9); ctrl.add(opCtrl[opVal].sclLeftDepth); String sclRightDepth; sclRightDepth << opName << " R SCALE DEPTH"; - opCtrl[opVal].sclRightDepth = new CtrlDX(sclRightDepth, 100, opTarget + 10); + opCtrl[opVal].sclRightDepth = new CtrlDX(sclRightDepth, 99, opTarget + 10); ctrl.add(opCtrl[opVal].sclRightDepth); String sclLeftCurve; sclLeftCurve << opName << " L KEY SCALE"; - opCtrl[opVal].sclLeftCurve = new CtrlDXLabel(sclLeftCurve, 4, opTarget + 11, keyScaleLabels); + opCtrl[opVal].sclLeftCurve = new CtrlDXLabel(sclLeftCurve, 3, opTarget + 11, keyScaleLabels); ctrl.add(opCtrl[opVal].sclLeftCurve); String sclRightCurve; sclRightCurve << opName << " R KEY SCALE"; - opCtrl[opVal].sclRightCurve = new CtrlDXLabel(sclRightCurve, 4, opTarget + 12, keyScaleLabels); + opCtrl[opVal].sclRightCurve = new CtrlDXLabel(sclRightCurve, 3, opTarget + 12, keyScaleLabels); ctrl.add(opCtrl[opVal].sclRightCurve); String sclRate; sclRate << opName << " RATE SCALING"; - opCtrl[opVal].sclRate = new CtrlDX(sclRate, 8, opTarget + 13); + opCtrl[opVal].sclRate = new CtrlDX(sclRate, 7, opTarget + 13); ctrl.add(opCtrl[opVal].sclRate); String ampModSens; ampModSens << opName << " A MOD SENS."; - opCtrl[opVal].ampModSens = new CtrlDX(ampModSens, 4, opTarget + 14); + opCtrl[opVal].ampModSens = new CtrlDX(ampModSens, 3, opTarget + 14); ctrl.add(opCtrl[opVal].ampModSens); String velModSens; velModSens << opName << " KEY VELOCITY"; - opCtrl[opVal].velModSens = new CtrlDX(velModSens, 8, opTarget + 15); + opCtrl[opVal].velModSens = new CtrlDX(velModSens, 7, opTarget + 15); ctrl.add(opCtrl[opVal].velModSens); + + String opSwitchLabel; + opSwitchLabel << opName << " SWITCH"; + opCtrl[opVal].opSwitch = new CtrlOpSwitch(opSwitchLabel, (char *)&(controllers.opSwitch)+(5-i)); + ctrl.add(opCtrl[opVal].opSwitch); } for (int i=0; i < ctrl.size(); i++) { @@ -513,6 +583,7 @@ void DexedAudioProcessor::setCurrentProgram(int index) { index = index > 31 ? 31 : index; currentCart.unpackProgram(data, index); + strcpy(controllers.opSwitch, "111111"); lfo.reset(data + 137); currentProgram = index; triggerAsyncUpdate(); @@ -632,4 +703,3 @@ void DexedAudioProcessor::savePreference() { prop.save(); } - diff --git a/Source/PluginParam.h b/Source/PluginParam.h index 2ee7553..df7968b 100644 --- a/Source/PluginParam.h +++ b/Source/PluginParam.h @@ -121,6 +121,7 @@ struct OperatorCtrl { ScopedPointer sclRate; ScopedPointer ampModSens; ScopedPointer velModSens; + ScopedPointer opSwitch; }; #endif // PLUGINPARAM_H_INCLUDED diff --git a/Source/PluginProcessor.cpp b/Source/PluginProcessor.cpp index d90a9e6..6eee7e5 100644 --- a/Source/PluginProcessor.cpp +++ b/Source/PluginProcessor.cpp @@ -54,6 +54,8 @@ DexedAudioProcessor::DexedAudioProcessor() { resolvAppDir(); + TRACE("controler %s", controllers.opSwitch); + initCtrl(); sendSysexChange = true; normalizeDxVelocity = false; @@ -61,10 +63,12 @@ DexedAudioProcessor::DexedAudioProcessor() { showKeyboard = true; memset(&voiceStatus, 0, sizeof(VoiceStatus)); - setEngineType(DEXED_ENGINE_MODERN); + setEngineType(DEXED_ENGINE_MARKI); controllers.values_[kControllerPitchRange] = 3; controllers.values_[kControllerPitchStep] = 0; + controllers.masterTune = 0; + loadPreference(); for (int note = 0; note < MAX_ACTIVE_NOTES; ++note) { @@ -199,7 +203,7 @@ void DexedAudioProcessor::processBlock(AudioSampleBuffer& buffer, MidiBuffer& mi val = val >> 4; int clip_val = val < -(1 << 24) ? 0x8000 : val >= (1 << 24) ? 0x7fff : val >> 9; - float f = ((float) clip_val) / (float) 32768; + float f = ((float) clip_val) / (float) 0x8000; if( f > 1 ) f = 1; if( f < -1 ) f = -1; sumbuf[j] += f; @@ -319,7 +323,6 @@ void DexedAudioProcessor::processMidiMessage(const MidiMessage *msg) { controllers.values_[kControllerPitch] = buf[1] | (buf[2] << 7); break; } - } void DexedAudioProcessor::keydown(uint8_t pitch, uint8_t velo) { diff --git a/Source/PluginProcessor.h b/Source/PluginProcessor.h index c034f1d..1950fe8 100644 --- a/Source/PluginProcessor.h +++ b/Source/PluginProcessor.h @@ -155,6 +155,7 @@ public : ScopedPointer fxCutoff; ScopedPointer fxReso; ScopedPointer output; + ScopedPointer tune; void loadCartridge(Cartridge &cart); void setDxValue(int offset, int v); diff --git a/Source/ProgramListBox.cpp b/Source/ProgramListBox.cpp index db1b122..bd5202c 100644 --- a/Source/ProgramListBox.cpp +++ b/Source/ProgramListBox.cpp @@ -29,6 +29,7 @@ ProgramListBox::ProgramListBox(const String name, int numCols) : Component(name) selectedPgm = -1; hasContent = false; dragCandidate = -1; + pgmCandidate = -1; readOnly = false; programNames.clear(); } @@ -101,29 +102,36 @@ int ProgramListBox::programPosition(int x, int y) { return (y / cellHeight) + ((x / cellWidth) * rows); } -void ProgramListBox::mouseDoubleClick(const MouseEvent &event) { +void ProgramListBox::mouseDown(const MouseEvent &event) { + pgmCandidate = -1; + if ( ! hasContent ) return; - if ( ! event.mods.isLeftButtonDown() ) - return; - int pos = programPosition(event.getMouseDownX(), event.getMouseDownY()); - if ( listener != nullptr ) - listener->programSelected(this, pos); + if ( event.mods.isRightButtonDown() ) { + int pos = programPosition(event.getMouseDownX(), event.getMouseDownY()); + if ( listener != nullptr ) + listener->programRightClicked(this, pos); + return; + } + + pgmCandidate = programPosition(event.getMouseDownX(), event.getMouseDownY()); } -void ProgramListBox::mouseDown(const MouseEvent &event) { - if ( ! hasContent ) - return; - if ( ! event.mods.isRightButtonDown() ) +void ProgramListBox::mouseUp(const MouseEvent &event) { + if ( pgmCandidate == -1 ) return; int pos = programPosition(event.getMouseDownX(), event.getMouseDownY()); - if ( listener != nullptr ) - listener->programRightClicked(this, pos); + if ( pgmCandidate == pos) { + if ( listener != nullptr ) + listener->programSelected(this, pgmCandidate); + pgmCandidate = -1; + } } void ProgramListBox::mouseDrag(const MouseEvent &event) { + pgmCandidate = -1; if ( ! hasContent ) return; if ( dragCandidate != -1 ) diff --git a/Source/ProgramListBox.h b/Source/ProgramListBox.h index e9b592a..9df3578 100644 --- a/Source/ProgramListBox.h +++ b/Source/ProgramListBox.h @@ -45,6 +45,7 @@ class ProgramListBox : public Component, public DragAndDropTarget { Cartridge cartContent; int dragCandidate; + int pgmCandidate; public: StringArray programNames; @@ -54,9 +55,9 @@ public: void addListener(ProgramListBoxListener *listener); void paint(Graphics &g) override; void resized() override; - void mouseDoubleClick(const MouseEvent &event) override; void mouseDown(const MouseEvent &event) override; void mouseDrag(const MouseEvent &event) override; + void mouseUp(const MouseEvent &event) override; void setSelected(int idx); Cartridge &getCurrentCart(); diff --git a/Source/msfa/controllers.h b/Source/msfa/controllers.h index 12d04c0..6f5f719 100755 --- a/Source/msfa/controllers.h +++ b/Source/msfa/controllers.h @@ -20,6 +20,7 @@ #include "synth.h" #include "../Dexed.h" #include +#include #ifdef _WIN32 #define snprintf _snprintf @@ -77,6 +78,8 @@ class Controllers { public: int values_[131]; + char opSwitch[7]; + int amp_mod; int pitch_mod; int eg_mod; @@ -86,6 +89,8 @@ public: int foot_cc; int modwheel_cc; + int masterTune; + FmMod wheel; FmMod foot; FmMod breath; @@ -95,6 +100,7 @@ public: amp_mod = 0; pitch_mod = 0; eg_mod = 0; + strcpy(opSwitch, "111111"); } void refresh() { diff --git a/Source/msfa/dx7note.cc b/Source/msfa/dx7note.cc index 1aa56c0..a04f5cf 100644 --- a/Source/msfa/dx7note.cc +++ b/Source/msfa/dx7note.cc @@ -202,6 +202,7 @@ void Dx7Note::compute(int32_t *buf, int32_t lfo_val, int32_t lfo_delay, const Co } } pitch_mod += pb; + pitch_mod += ctrls->masterTune; // ==== AMP MOD ==== uint32_t amod_1 = ((int64_t) ampmoddepth_ * (int64_t) lfo_delay) >> 8; // Q24 :D @@ -215,19 +216,24 @@ void Dx7Note::compute(int32_t *buf, int32_t lfo_val, int32_t lfo_delay, const Co // ==== OP RENDER ==== for (int op = 0; op < 6; op++) { - //int32_t gain = pow(2, 10 + level * (1.0 / (1 << 24))); - params_[op].freq = Freqlut::lookup(basepitch_[op] + pitch_mod); - - int32_t level = env_[op].getsample(); - if (ampmodsens_[op] != 0) { - uint32_t sensamp = ((uint64_t) amd_mod) * ((uint64_t) ampmodsens_[op]) >> 24; + if ( ctrls->opSwitch[op] == '0' ) { + env_[op].getsample(); // advance the envelop even if it is not playing + params_[op].level_in = 0; + } else { + //int32_t gain = pow(2, 10 + level * (1.0 / (1 << 24))); + params_[op].freq = Freqlut::lookup(basepitch_[op] + pitch_mod); - // TODO: mehhh.. this needs some real tuning. - uint32_t pt = exp(((float)sensamp)/262144 * 0.07 + 12.2); - uint32_t ldiff = ((uint64_t)level) * (((uint64_t)pt<<4)) >> 28; - level -= ldiff; + int32_t level = env_[op].getsample(); + if (ampmodsens_[op] != 0) { + uint32_t sensamp = ((uint64_t) amd_mod) * ((uint64_t) ampmodsens_[op]) >> 24; + + // TODO: mehhh.. this needs some real tuning. + uint32_t pt = exp(((float)sensamp)/262144 * 0.07 + 12.2); + uint32_t ldiff = ((uint64_t)level) * (((uint64_t)pt<<4)) >> 28; + level -= ldiff; + } + params_[op].level_in = level; } - params_[op].level_in = level; } ctrls->core->render(buf, params_, algorithm_, fb_buf_, fb_shift_); } @@ -235,8 +241,8 @@ void Dx7Note::compute(int32_t *buf, int32_t lfo_val, int32_t lfo_delay, const Co void Dx7Note::keyup() { for (int op = 0; op < 6; op++) { env_[op].keydown(false); - pitchenv_.keydown(false); } + pitchenv_.keydown(false); } void Dx7Note::update(const uint8_t patch[156], int midinote, int fb_depth) { diff --git a/Source/msfa/fm_core.cc b/Source/msfa/fm_core.cc index b083ab3..408d0de 100644 --- a/Source/msfa/fm_core.cc +++ b/Source/msfa/fm_core.cc @@ -30,9 +30,9 @@ const FmAlgorithm FmCore::algorithms[32] = { { { 0xc1, 0x11, 0x11, 0x14, 0x01, 0x14 } }, // 1 { { 0x01, 0x11, 0x11, 0x14, 0xc1, 0x14 } }, // 2 { { 0xc1, 0x11, 0x14, 0x01, 0x11, 0x14 } }, // 3 - { { 0xc1, 0x11, 0x94, 0x01, 0x11, 0x14 } }, // 4 ** EXCEPTION VIA CODE + { { 0xc1, 0x11, 0x94, 0x01, 0x11, 0x14 } }, // 4 { { 0xc1, 0x14, 0x01, 0x14, 0x01, 0x14 } }, // 5 - { { 0xc1, 0x94, 0x01, 0x14, 0x01, 0x14 } }, // 6 ** EXCEPTION VIA CODE + { { 0xc1, 0x94, 0x01, 0x14, 0x01, 0x14 } }, // 6 { { 0xc1, 0x11, 0x05, 0x14, 0x01, 0x14 } }, // 7 { { 0x01, 0x11, 0xc5, 0x14, 0x01, 0x14 } }, // 8 { { 0x01, 0x11, 0x05, 0x14, 0xc1, 0x14 } }, // 9