diff --git a/.gitignore b/.gitignore index 5a20ee9..8ee59c6 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,6 @@ .vagrant/rgloader/loader.rb *.mxfw *.bin -.vscode/arduino.json -.vscode/arduino.json *.json -WIP \ No newline at end of file +WIP +.vscode/ diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index 70d8f1e..fc41632 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -1,18 +1,412 @@ { + "version": 4, "configurations": [ { "name": "Win32", + "compilerPath": "/usr/bin/gcc", + "compilerArgs": [], + "intelliSenseMode": "msvc-x64", "includePath": [ "C:\\Users\\caine\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\**", "C:\\Users\\caine\\AppData\\Local\\Arduino15\\packages\\stm32duino\\tools\\**", "C:\\Users\\caine\\AppData\\Local\\Arduino15\\packages\\stm32duino\\hardware\\STM32F1\\2018.12.3\\**" ], "forcedInclude": [], - "intelliSenseMode": "msvc-x64", - "compilerPath": "/usr/bin/gcc", "cStandard": "c11", - "cppStandard": "c++17" + "cppStandard": "c++17", + "defines": [] + }, + { + "name": "Arduino", + "compilerPath": "C:\\Users\\caine\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\4.8.3-2014q1\\bin\\arm-none-eabi-g++", + "compilerArgs": [ + "-std=gnu++11" + ], + "intelliSenseMode": "gcc-x64", + "includePath": [ + "C:\\Users\\caine\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system\\libmaple", + "C:\\Users\\caine\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system\\libmaple\\include", + "C:\\Users\\caine\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system\\libmaple\\stm32f1\\include", + "C:\\Users\\caine\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system\\libmaple\\usb\\stm32f1", + "C:\\Users\\caine\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system\\libmaple\\usb\\usb_lib", + "C:\\Users\\caine\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\cores\\maple", + "C:\\Users\\caine\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\variants\\generic_stm32f103r", + "C:\\Users\\caine\\Documents\\Arduino\\libraries\\USBComposite_stm32f1", + "C:\\Users\\caine\\Documents\\Arduino\\libraries\\FastLED", + "C:\\Users\\caine\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\libraries\\EEPROM", + "c:\\users\\caine\\appdata\\local\\arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\4.8.3-2014q1\\arm-none-eabi\\include\\c++\\4.8.3", + "c:\\users\\caine\\appdata\\local\\arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\4.8.3-2014q1\\arm-none-eabi\\include\\c++\\4.8.3\\arm-none-eabi", + "c:\\users\\caine\\appdata\\local\\arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\4.8.3-2014q1\\arm-none-eabi\\include\\c++\\4.8.3\\backward", + "c:\\users\\caine\\appdata\\local\\arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\4.8.3-2014q1\\lib\\gcc\\arm-none-eabi\\4.8.3\\include", + "c:\\users\\caine\\appdata\\local\\arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\4.8.3-2014q1\\lib\\gcc\\arm-none-eabi\\4.8.3\\include-fixed", + "c:\\users\\caine\\appdata\\local\\arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\4.8.3-2014q1\\arm-none-eabi\\include" + ], + "forcedInclude": [ + "C:\\Users\\caine\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\cores\\maple\\Arduino.h" + ], + "cStandard": "c11", + "cppStandard": "c++11", + "defines": [ + "DEBUG_LEVEL=DEBUG_NONE", + "BOARD_generic_stm32f103r", + "VECT_TAB_ADDR=0x8002000", + "ERROR_LED_PORT=GPIOB", + "ERROR_LED_PIN=1", + "F_CPU=72000000L", + "ARDUINO=10809", + "ARDUINO_GENERIC_STM32F103R", + "ARDUINO_ARCH_STM32F1", + "SERIAL_USB", + "GENERIC_BOOTLOADER", + "MCU_STM32F103RE", + "__STM32F1__", + "MCU_STM32F103RE", + "__STM32F1__", + "__DBL_MIN_EXP__=(-1021)", + "__HQ_FBIT__=15", + "__UINT_LEAST16_MAX__=65535", + "__ARM_SIZEOF_WCHAR_T=32", + "__ATOMIC_ACQUIRE=2", + "__SFRACT_IBIT__=0", + "__FLT_MIN__=1.1754943508222875e-38F", + "__UFRACT_MAX__=0XFFFFP-16UR", + "__UINT_LEAST8_TYPE__=unsigned char", + "__DQ_FBIT__=63", + "__INTMAX_C(c)=c ## LL", + "__ULFRACT_FBIT__=32", + "__SACCUM_EPSILON__=0x1P-7HK", + "__CHAR_BIT__=8", + "__USQ_IBIT__=0", + "__UINT8_MAX__=255", + "__ACCUM_FBIT__=15", + "__WINT_MAX__=4294967295U", + "__USFRACT_FBIT__=8", + "__ORDER_LITTLE_ENDIAN__=1234", + "__SIZE_MAX__=4294967295U", + "__ARM_ARCH_ISA_ARM=1", + "__WCHAR_MAX__=4294967295U", + "__LACCUM_IBIT__=32", + "__DBL_DENORM_MIN__=double(4.9406564584124654e-324L)", + "__GCC_ATOMIC_CHAR_LOCK_FREE=1", + "__FLT_EVAL_METHOD__=0", + "__LLACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-31LLK", + "__GCC_ATOMIC_CHAR32_T_LOCK_FREE=1", + "__FRACT_FBIT__=15", + "__UINT_FAST64_MAX__=18446744073709551615ULL", + "__SIG_ATOMIC_TYPE__=int", + "__UACCUM_FBIT__=16", + "__DBL_MIN_10_EXP__=(-307)", + "__FINITE_MATH_ONLY__=0", + "__ARMEL__=1", + "__LFRACT_IBIT__=0", + "__GNUC_PATCHLEVEL__=3", + "__LFRACT_MAX__=0X7FFFFFFFP-31LR", + "__UINT_FAST8_MAX__=4294967295U", + "__DEC64_MAX_EXP__=385", + "__INT8_C(c)=c", + "__UINT_LEAST64_MAX__=18446744073709551615ULL", + "__SA_FBIT__=15", + "__SHRT_MAX__=32767", + "__LDBL_MAX__=1.7976931348623157e+308L", + "__FRACT_MAX__=0X7FFFP-15R", + "__UFRACT_FBIT__=16", + "__ARM_FP=12", + "__UFRACT_MIN__=0.0UR", + "__UINT_LEAST8_MAX__=255", + "__GCC_ATOMIC_BOOL_LOCK_FREE=1", + "__UINTMAX_TYPE__=long long unsigned int", + "__LLFRACT_EPSILON__=0x1P-63LLR", + "__DEC32_EPSILON__=1E-6DF", + "__CHAR_UNSIGNED__=1", + "__UINT32_MAX__=4294967295UL", + "__ULFRACT_MAX__=0XFFFFFFFFP-32ULR", + "__TA_IBIT__=64", + "__LDBL_MAX_EXP__=1024", + "__WINT_MIN__=0U", + "__ULLFRACT_MIN__=0.0ULLR", + "__SCHAR_MAX__=127", + "__WCHAR_MIN__=0U", + "__INT64_C(c)=c ## LL", + "__DBL_DIG__=15", + "__GCC_ATOMIC_POINTER_LOCK_FREE=1", + "__LLACCUM_MIN__=(-0X1P31LLK-0X1P31LLK)", + "__SIZEOF_INT__=4", + "__SIZEOF_POINTER__=4", + "__GCC_ATOMIC_CHAR16_T_LOCK_FREE=1", + "__USACCUM_IBIT__=8", + "__USER_LABEL_PREFIX__", + "__STDC_HOSTED__=1", + "__LDBL_HAS_INFINITY__=1", + "__LFRACT_MIN__=(-0.5LR-0.5LR)", + "__HA_IBIT__=8", + "__ARM_NEON_FP=4", + "__TQ_IBIT__=0", + "__FLT_EPSILON__=1.1920928955078125e-7F", + "__APCS_32__=1", + "__GXX_WEAK__=1", + "__USFRACT_IBIT__=0", + "__LDBL_MIN__=2.2250738585072014e-308L", + "__FRACT_MIN__=(-0.5R-0.5R)", + "__DEC32_MAX__=9.999999E96DF", + "__DA_IBIT__=32", + "__ARM_SIZEOF_MINIMAL_ENUM=1", + "__INT32_MAX__=2147483647L", + "__UQQ_FBIT__=8", + "__SIZEOF_LONG__=4", + "__UACCUM_MAX__=0XFFFFFFFFP-16UK", + "__UINT16_C(c)=c", + "__DECIMAL_DIG__=17", + "__LFRACT_EPSILON__=0x1P-31LR", + "__ULFRACT_MIN__=0.0ULR", + "__LDBL_HAS_QUIET_NAN__=1", + "__ULACCUM_IBIT__=32", + "__UACCUM_EPSILON__=0x1P-16UK", + "__GNUC__=4", + "__ULLACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-32ULLK", + "__GXX_RTTI=1", + "__HQ_IBIT__=0", + "__FLT_HAS_DENORM__=1", + "__SIZEOF_LONG_DOUBLE__=8", + "__BIGGEST_ALIGNMENT__=8", + "__DQ_IBIT__=0", + "__DBL_MAX__=double(1.7976931348623157e+308L)", + "__ULFRACT_IBIT__=0", + "__INT_FAST32_MAX__=2147483647", + "__DBL_HAS_INFINITY__=1", + "__INT64_MAX__=9223372036854775807LL", + "__ACCUM_IBIT__=16", + "__DEC32_MIN_EXP__=(-94)", + "__THUMB_INTERWORK__=1", + "__LACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-31LK", + "__INT_FAST16_TYPE__=int", + "__LDBL_HAS_DENORM__=1", + "__cplusplus=199711L", + "__DEC128_MAX__=9.999999999999999999999999999999999E6144DL", + "__INT_LEAST32_MAX__=2147483647L", + "__ARM_PCS=1", + "__DEC32_MIN__=1E-95DF", + "__ACCUM_MAX__=0X7FFFFFFFP-15K", + "__DEPRECATED=1", + "__DBL_MAX_EXP__=1024", + "__USACCUM_EPSILON__=0x1P-8UHK", + "__DEC128_EPSILON__=1E-33DL", + "__SFRACT_MAX__=0X7FP-7HR", + "__FRACT_IBIT__=0", + "__PTRDIFF_MAX__=2147483647", + "__UACCUM_MIN__=0.0UK", + "__UACCUM_IBIT__=16", + "__GNUG__=4", + "__LONG_LONG_MAX__=9223372036854775807LL", + "__SIZEOF_SIZE_T__=4", + "__ULACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-32ULK", + "__SIZEOF_WINT_T__=4", + "__SA_IBIT__=16", + "__ULLACCUM_MIN__=0.0ULLK", + "__GXX_ABI_VERSION=1002", + "__UTA_FBIT__=64", + "__SOFTFP__=1", + "__FLT_MIN_EXP__=(-125)", + "__USFRACT_MAX__=0XFFP-8UHR", + "__UFRACT_IBIT__=0", + "__INT_FAST64_TYPE__=long long int", + "__DBL_MIN__=double(2.2250738585072014e-308L)", + "__FLT_MIN_10_EXP__=(-37)", + "__LACCUM_MIN__=(-0X1P31LK-0X1P31LK)", + "__ULLACCUM_FBIT__=32", + "__GXX_TYPEINFO_EQUALITY_INLINE=0", + "__ULLFRACT_EPSILON__=0x1P-64ULLR", + "__USES_INITFINI__=1", + "__DEC128_MIN__=1E-6143DL", + "__REGISTER_PREFIX__", + "__UINT16_MAX__=65535", + "__DBL_HAS_DENORM__=1", + "__ACCUM_MIN__=(-0X1P15K-0X1P15K)", + "__SQ_IBIT__=0", + "__UINT8_TYPE__=unsigned char", + "__UHA_FBIT__=8", + "__NO_INLINE__=1", + "__SFRACT_MIN__=(-0.5HR-0.5HR)", + "__UTQ_FBIT__=128", + "__FLT_MANT_DIG__=24", + "__VERSION__=\"4.8.3 20140228 (release) [ARM/embedded-4_8-branch revision 208322]\"", + "__UINT64_C(c)=c ## ULL", + "__ULLFRACT_FBIT__=64", + "__FRACT_EPSILON__=0x1P-15R", + "__ULACCUM_MIN__=0.0ULK", + "__UDA_FBIT__=32", + "__LLACCUM_EPSILON__=0x1P-31LLK", + "__GCC_ATOMIC_INT_LOCK_FREE=1", + "__FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__", + "__USFRACT_MIN__=0.0UHR", + "__ULLACCUM_IBIT__=32", + "__UQQ_IBIT__=0", + "__INT32_C(c)=c ## L", + "__DEC64_EPSILON__=1E-15DD", + "__ORDER_PDP_ENDIAN__=3412", + "__DEC128_MIN_EXP__=(-6142)", + "__UHQ_FBIT__=16", + "__LLACCUM_FBIT__=31", + "__INT_FAST32_TYPE__=int", + "__UINT_LEAST16_TYPE__=short unsigned int", + "__INT16_MAX__=32767", + "__SIZE_TYPE__=unsigned int", + "__UINT64_MAX__=18446744073709551615ULL", + "__UDQ_FBIT__=64", + "__INT8_TYPE__=signed char", + "__ELF__=1", + "__ULFRACT_EPSILON__=0x1P-32ULR", + "__LLFRACT_FBIT__=63", + "__FLT_RADIX__=2", + "__INT_LEAST16_TYPE__=short int", + "__LDBL_EPSILON__=2.2204460492503131e-16L", + "__UINTMAX_C(c)=c ## ULL", + "__SACCUM_MAX__=0X7FFFP-7HK", + "__SIG_ATOMIC_MAX__=2147483647", + "__GCC_ATOMIC_WCHAR_T_LOCK_FREE=1", + "__VFP_FP__=1", + "__SIZEOF_PTRDIFF_T__=4", + "__LACCUM_EPSILON__=0x1P-31LK", + "__DEC32_SUBNORMAL_MIN__=0.000001E-95DF", + "__INT_FAST16_MAX__=2147483647", + "__UINT_FAST32_MAX__=4294967295U", + "__UINT_LEAST64_TYPE__=long long unsigned int", + "__USACCUM_MAX__=0XFFFFP-8UHK", + "__SFRACT_EPSILON__=0x1P-7HR", + "__FLT_HAS_QUIET_NAN__=1", + "__FLT_MAX_10_EXP__=38", + "__LONG_MAX__=2147483647L", + "__DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL", + "__FLT_HAS_INFINITY__=1", + "__USA_FBIT__=16", + "__UINT_FAST16_TYPE__=unsigned int", + "__DEC64_MAX__=9.999999999999999E384DD", + "__CHAR16_TYPE__=short unsigned int", + "__PRAGMA_REDEFINE_EXTNAME=1", + "__INT_LEAST16_MAX__=32767", + "__DEC64_MANT_DIG__=16", + "__UINT_LEAST32_MAX__=4294967295UL", + "__SACCUM_FBIT__=7", + "__GCC_ATOMIC_LONG_LOCK_FREE=1", + "__INT_LEAST64_TYPE__=long long int", + "__INT16_TYPE__=short int", + "__INT_LEAST8_TYPE__=signed char", + "__SQ_FBIT__=31", + "__DEC32_MAX_EXP__=97", + "__ARM_ARCH_ISA_THUMB=1", + "__INT_FAST8_MAX__=2147483647", + "__ARM_ARCH=4", + "__INTPTR_MAX__=2147483647", + "__QQ_FBIT__=7", + "__UTA_IBIT__=64", + "__EXCEPTIONS=1", + "__LDBL_MANT_DIG__=53", + "__SFRACT_FBIT__=7", + "__SACCUM_MIN__=(-0X1P7HK-0X1P7HK)", + "__DBL_HAS_QUIET_NAN__=1", + "__SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)", + "__INTPTR_TYPE__=int", + "__UINT16_TYPE__=short unsigned int", + "__WCHAR_TYPE__=unsigned int", + "__SIZEOF_FLOAT__=4", + "__USQ_FBIT__=32", + "__UINTPTR_MAX__=4294967295U", + "__DEC64_MIN_EXP__=(-382)", + "__INT_FAST64_MAX__=9223372036854775807LL", + "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1", + "__FLT_DIG__=6", + "__UINT_FAST64_TYPE__=long long unsigned int", + "__INT_MAX__=2147483647", + "__LACCUM_FBIT__=31", + "__USACCUM_MIN__=0.0UHK", + "__UHA_IBIT__=8", + "__INT64_TYPE__=long long int", + "__FLT_MAX_EXP__=128", + "__UTQ_IBIT__=0", + "__DBL_MANT_DIG__=53", + "__INT_LEAST64_MAX__=9223372036854775807LL", + "__DEC64_MIN__=1E-383DD", + "__WINT_TYPE__=unsigned int", + "__UINT_LEAST32_TYPE__=long unsigned int", + "__SIZEOF_SHORT__=2", + "__ULLFRACT_IBIT__=0", + "__LDBL_MIN_EXP__=(-1021)", + "__arm__=1", + "__UDA_IBIT__=32", + "__INT_LEAST8_MAX__=127", + "__LFRACT_FBIT__=31", + "__WCHAR_UNSIGNED__=1", + "__LDBL_MAX_10_EXP__=308", + "__ATOMIC_RELAXED=0", + "__DBL_EPSILON__=double(2.2204460492503131e-16L)", + "__UINT8_C(c)=c", + "__INT_LEAST32_TYPE__=long int", + "__SIZEOF_WCHAR_T__=4", + "__UINT64_TYPE__=long long unsigned int", + "__LLFRACT_MAX__=0X7FFFFFFFFFFFFFFFP-63LLR", + "__TQ_FBIT__=127", + "__INT_FAST8_TYPE__=int", + "__ULLACCUM_EPSILON__=0x1P-32ULLK", + "__UHQ_IBIT__=0", + "__LLACCUM_IBIT__=32", + "__DBL_DECIMAL_DIG__=17", + "__DEC_EVAL_METHOD__=2", + "__TA_FBIT__=63", + "__UDQ_IBIT__=0", + "__ORDER_BIG_ENDIAN__=4321", + "__ACCUM_EPSILON__=0x1P-15K", + "__UINT32_C(c)=c ## UL", + "__INTMAX_MAX__=9223372036854775807LL", + "__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__", + "__FLT_DENORM_MIN__=1.4012984643248171e-45F", + "__LLFRACT_IBIT__=0", + "__INT8_MAX__=127", + "__UINT_FAST32_TYPE__=unsigned int", + "__CHAR32_TYPE__=long unsigned int", + "__FLT_MAX__=3.4028234663852886e+38F", + "__USACCUM_FBIT__=8", + "__INT32_TYPE__=long int", + "__SIZEOF_DOUBLE__=8", + "__UFRACT_EPSILON__=0x1P-16UR", + "__INTMAX_TYPE__=long long int", + "__DEC128_MAX_EXP__=6145", + "__ATOMIC_CONSUME=1", + "__GNUC_MINOR__=8", + "__UINTMAX_MAX__=18446744073709551615ULL", + "__DEC32_MANT_DIG__=7", + "__HA_FBIT__=7", + "__DBL_MAX_10_EXP__=308", + "__LDBL_DENORM_MIN__=4.9406564584124654e-324L", + "__INT16_C(c)=c", + "__STDC__=1", + "__ARM_ARCH_4T__=1", + "__PTRDIFF_TYPE__=int", + "__LLFRACT_MIN__=(-0.5LLR-0.5LLR)", + "__ATOMIC_SEQ_CST=5", + "__DA_FBIT__=31", + "__UINT32_TYPE__=long unsigned int", + "__UINTPTR_TYPE__=unsigned int", + "__USA_IBIT__=16", + "__DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD", + "__ARM_EABI__=1", + "__DEC128_MANT_DIG__=34", + "__LDBL_MIN_10_EXP__=(-307)", + "__SIZEOF_LONG_LONG__=8", + "__ULACCUM_EPSILON__=0x1P-32ULK", + "__SACCUM_IBIT__=8", + "__GCC_ATOMIC_LLONG_LOCK_FREE=1", + "__LDBL_DIG__=15", + "__FLT_DECIMAL_DIG__=9", + "__UINT_FAST16_MAX__=4294967295U", + "__GNUC_GNU_INLINE__=1", + "__GCC_ATOMIC_SHORT_LOCK_FREE=1", + "__ULLFRACT_MAX__=0XFFFFFFFFFFFFFFFFP-64ULLR", + "__UINT_FAST8_TYPE__=unsigned int", + "__USFRACT_EPSILON__=0x1P-8UHR", + "__ULACCUM_FBIT__=32", + "__QQ_IBIT__=0", + "__ATOMIC_ACQ_REL=4", + "__ATOMIC_RELEASE=3" + ] } - ], - "version": 4 + ] } \ No newline at end of file diff --git a/Matrix.ino b/Matrix.ino index f32f028..37324f0 100644 --- a/Matrix.ino +++ b/Matrix.ino @@ -9,8 +9,7 @@ Copyright © 203 Industries 2016–2020. All rights reserved. #include "src/Parameter/MatrixVariable.h" #include "src/Parameter/MatrixParameter.h" #include "src/Core/MatrixSystem.h" -#include "src/Core/MatrixSystem.h" -#include "src/HAL/KeyPad.h" +#include "src/HAL/KeyPad.h"p0 #include "src/HAL/Touch.h" #include "src/HAL/LED.h" #include "src/HAL/Timer.h" @@ -20,7 +19,7 @@ Copyright © 203 Industries 2016–2020. All rights reserved. UI UI; MIDI Midi; LED LED; -KeyPad KeyPad; +KeyPad KeyPad; Touch Touch; Timer keypadTimer; Timer ledTimer; diff --git a/src/Components/Redacted.cpp b/src/Components/Redacted.cpp new file mode 100644 index 0000000..1feee98 --- /dev/null +++ b/src/Components/Redacted.cpp @@ -0,0 +1,46 @@ +#include "Redacted.h" + +extern KeyPad KeyPad; +extern LED LED; +extern Timer keypadTimer; +extern MicroTimer microTimer; + +void Redacted::run() +{ + // LED.enableOverlayMode(); + LED.fill(0, true); + LED.update(); + u32 progress = 0; + u32 length = sizeof(data); + while(1) + { + if (keypadTimer.tick(20)) + { + if (KeyPad.scan() && KeyPad.fn.state == RELEASED) + { + break; + } + } + if (microTimer.tick(33333)) + { + u8 bufferOffset = 1; + for(u8 x = 0; x < 8; x ++) + { + if((data[progress] >> x) & 0x01) + { + for(u8 y = 0; y < 8; y++) + { + LED.setXYW(xytoxy(x, y), ((data[progress + bufferOffset] >> y) & 0x01) * 255, true); + } + bufferOffset ++; + } + } + LED.update(); + progress += bufferOffset; + if(progress > length) + break; + } + } + LED.fill(0, true); + LED.update(); +} \ No newline at end of file diff --git a/src/Components/Redacted.h b/src/Components/Redacted.h new file mode 100644 index 0000000..d557245 --- /dev/null +++ b/src/Components/Redacted.h @@ -0,0 +1,2126 @@ +#ifndef REDACTED_H +#define REDACTED_H + +#include "../Parameter/MatrixParameter.h" +#include "../Core/MatrixSystem.h" +#include "../HAL/KeyPad.h" +#include "../HAL/LED.h" +#include "../HAL/Timer.h" + +namespace Redacted +{ + void run(); + + const u8 data[] = + {192, 8, 48, 192, 0, 0, 128, 127, + 192, 63, 255, 0, 32, 31, 224, 14, + 31, 127, 224, 6, 15, 63, 128, 31, + 224, 2, 3, 15, 32, 0, 64, 2, + 0, 65, 3, 0, 1, 0, 64, 4, + 67, 15, 2, 0, 3, 31, 0, 0, + 131, 63, 2, 11, 134, 15, 4, 15, + 131, 127, 31, 13, 132, 8, 1, 131, + 255, 63, 7, 134, 31, 0, 134, 6, + 127, 1, 4, 11, 134, 255, 31, 6, + 0, 128, 14, 0, 0, 128, 15, 132, + 15, 31, 2, 127, 4, 6, 224, 192, + 2, 127, 194, 63, 11, 255, 64, 15, + 32, 0, 2, 31, 68, 4, 31, 4, + 0, 37, 127, 4, 4, 100, 0, 12, + 63, 0, 96, 14, 127, 0, 64, 255, + 32, 30, 2, 15, 32, 31, 0, 34, + 14, 63, 0, 18, 12, 4, 2, 28, + 2, 30, 5, 255, 32, 6, 63, 96, + 36, 64, 31, 36, 128, 15, 2, 127, + 22, 255, 0, 0, 4, 2, 4, 6, + 0, 100, 46, 14, 63, 0, 0, 0, + 32, 6, 4, 174, 4, 158, 44, 222, + 4, 4, 12, 159, 0, 0, 4, 191, + 32, 36, 0, 40, 4, 4, 32, 0, + 8, 12, 8, 4, 0, 100, 159, 2, + 127, 64, 255, 32, 134, 36, 31, 142, + 8, 0, 16, 1, 0, 32, 15, 4, + 15, 16, 33, 0, 32, 31, 0, 48, + 1, 159, 0, 0, 36, 14, 191, 44, + 6, 1, 255, 0, 16, 5, 4, 4, + 16, 13, 0, 4, 6, 16, 5, 4, + 2, 0, 20, 14, 4, 4, 142, 32, + 31, 4, 143, 16, 0, 0, 0, 4, + 15, 40, 33, 15, 16, 1, 0, 12, + 159, 1, 4, 223, 0, 16, 0, 32, + 14, 32, 6, 8, 0, 64, 127, 40, + 6, 4, 24, 4, 1, 8, 13, 32, + 6, 8, 5, 0, 68, 159, 255, 40, + 4, 14, 32, 143, 4, 31, 8, 0, + 0, 0, 0, 36, 15, 15, 16, 33, + 8, 1, 32, 31, 0, 24, 0, 1, + 0, 32, 15, 0, 32, 12, 80, 0, + 63, 36, 31, 140, 36, 63, 108, 96, + 64, 31, 164, 127, 0, 127, 80, 1, + 28, 132, 255, 63, 64, 24, 88, 8, + 0, 152, 8, 112, 192, 192, 61, 200, + 126, 128, 184, 200, 255, 0, 56, 128, + 48, 128, 32, 24, 127, 16, 150, 127, + 127, 25, 0, 16, 57, 164, 63, 1, + 1, 130, 191, 97, 16, 59, 132, 191, + 65, 66, 255, 1, 136, 63, 99, 4, + 159, 128, 67, 164, 31, 0, 99, 0, + 128, 115, 128, 99, 128, 227, 0, 0, + 132, 95, 231, 52, 31, 27, 1, 0, + 0, 0, 128, 255, 0, 0, 0, 0, + 0, 16, 51, 128, 239, 132, 95, 231, + 16, 49, 0, 0, 0, 0, 32, 0, + 128, 227, 4, 223, 0, 0, 128, 99, + 0, 0, 0, 0, 0, 136, 31, 97, + 0, 128, 65, 0, 32, 16, 8, 15, + 192, 0, 1, 0, 0, 0, 32, 0, + 0, 4, 255, 128, 0, 0, 0, 0, + 0, 16, 17, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 16, 145, 32, + 1, 0, 0, 0, 32, 0, 0, 0, + 0, 144, 177, 1, 0, 0, 0, 0, + 0, 0, 0, 4, 223, 8, 11, 0, + 16, 49, 4, 207, 0, 144, 32, 65, + 132, 223, 67, 128, 99, 8, 27, 0, + 20, 159, 0, 8, 59, 0, 128, 227, + 8, 57, 8, 56, 10, 191, 112, 140, + 63, 120, 99, 150, 63, 127, 64, 35, + 8, 240, 86, 127, 254, 0, 1, 144, + 192, 71, 146, 255, 224, 7, 0, 4, + 252, 44, 253, 241, 32, 16, 225, 0, + 164, 255, 97, 3, 56, 245, 193, 193, + 136, 255, 1, 16, 161, 80, 247, 65, + 32, 195, 112, 255, 163, 225, 224, 243, + 193, 0, 224, 255, 225, 1, 64, 241, + 192, 251, 17, 192, 255, 1, 192, 127, + 5, 224, 127, 63, 31, 122, 127, 127, + 63, 63, 95, 127, 239, 255, 31, 31, + 31, 31, 79, 255, 253, 157, 135, 135, + 143, 239, 47, 15, 127, 255, 231, 227, + 193, 193, 247, 39, 122, 251, 195, 194, + 225, 239, 246, 255, 255, 199, 199, 207, + 191, 248, 191, 15, 31, 7, 127, 248, + 255, 127, 63, 63, 255, 240, 255, 255, + 255, 127, 128, 255, 0, 0, 8, 254, + 0, 24, 252, 254, 0, 16, 253, 24, + 249, 249, 0, 0, 24, 241, 241, 24, + 243, 243, 0, 24, 247, 227, 8, 231, + 16, 231, 32, 239, 16, 199, 8, 239, + 48, 207, 207, 8, 207, 0, 8, 223, + 48, 143, 223, 0, 0, 32, 159, 8, + 159, 0, 8, 223, 32, 223, 40, 207, + 207, 0, 16, 207, 0, 48, 199, 239, + 0, 40, 231, 231, 16, 231, 0, 16, + 227, 32, 247, 8, 227, 0, 0, 0, + 32, 243, 8, 243, 0, 40, 227, 247, + 0, 0, 0, 32, 231, 32, 227, 8, + 231, 0, 32, 231, 0, 0, 16, 199, + 0, 32, 199, 0, 8, 239, 0, 0, + 8, 231, 0, 8, 239, 8, 231, 0, + 0, 8, 199, 0, 0, 255, 254, 254, + 254, 198, 198, 198, 254, 254, 192, 252, + 252, 183, 255, 255, 255, 196, 196, 228, + 255, 0, 0, 0, 59, 63, 59, 3, + 7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 110, 25, + 63, 63, 31, 15, 123, 29, 63, 31, + 15, 15, 7, 141, 61, 31, 15, 3, + 199, 63, 7, 7, 15, 7, 159, 15, + 15, 15, 31, 31, 15, 255, 31, 31, + 31, 63, 15, 30, 30, 31, 253, 63, + 127, 30, 28, 62, 60, 60, 255, 62, + 127, 62, 56, 56, 56, 56, 120, 127, + 126, 126, 112, 60, 120, 120, 120, 187, + 254, 120, 112, 112, 112, 240, 65, 252, + 112, 67, 120, 112, 240, 129, 248, 112, + 163, 252, 248, 240, 240, 5, 254, 96, + 22, 252, 232, 240, 63, 255, 254, 252, + 240, 224, 224, 214, 255, 255, 240, 224, + 224, 120, 255, 243, 240, 240, 113, 223, + 255, 251, 224, 227, 253, 223, 255, 249, + 193, 199, 216, 185, 223, 255, 217, 143, + 140, 216, 185, 223, 251, 158, 140, 209, + 191, 223, 255, 159, 128, 12, 140, 113, + 191, 247, 191, 0, 0, 12, 209, 187, + 159, 255, 56, 129, 115, 191, 60, 8, + 9, 211, 63, 112, 147, 123, 191, 100, + 0, 115, 63, 48, 25, 243, 104, 25, + 247, 127, 48, 27, 231, 0, 0, 4, + 1, 88, 27, 59, 255, 32, 207, 16, + 51, 0, 16, 55, 0, 8, 19, 0, + 0, 0, 32, 223, 16, 63, 0, 16, + 55, 28, 3, 7, 54, 18, 1, 62, + 8, 6, 6, 2, 7, 0, 10, 7, + 15, 10, 5, 47, 14, 7, 6, 44, + 160, 255, 253, 2, 6, 128, 251, 138, + 4, 12, 250, 0, 120, 14, 126, 126, + 254, 138, 0, 22, 218, 24, 20, 254, + 192, 250, 216, 176, 238, 254, 248, 16, + 110, 223, 128, 128, 2, 132, 238, 248, + 240, 28, 128, 134, 254, 144, 190, 224, + 223, 64, 0, 0, 6, 254, 232, 192, + 206, 192, 64, 70, 248, 224, 186, 64, + 76, 94, 120, 96, 13, 0, 0, 12, + 87, 32, 0, 64, 124, 120, 78, 32, + 32, 4, 104, 216, 36, 44, 40, 32, + 105, 0, 38, 124, 48, 42, 0, 2, + 60, 32, 52, 164, 0, 48, 48, 24, + 0, 28, 66, 16, 16, 32, 56, 140, + 16, 16, 16, 32, 24, 2, 0, 40, + 0, 16, 4, 0, 0, 48, 12, 0, + 32, 8, 128, 0, 0, 64, 0, 0, + 64, 8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4, 8, 0, + 0, 0, 0, 0, 0, 0, 8, 8, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 8, 12, 8, 4, 72, 0, 0, 0, + 4, 0, 0, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 24, 4, 24, 0, + 0, 0, 0, 0, 0, 0, 8, 0, + 0, 16, 28, 0, 0, 16, 12, 32, + 8, 0, 0, 0, 4, 64, 64, 8, + 4, 0, 0, 4, 8, 8, 16, 8, + 0, 0, 8, 8, 0, 0, 0, 0, + 0, 1, 12, 33, 0, 12, 128, 8, + 20, 0, 8, 64, 12, 112, 2, 14, + 8, 16, 0, 96, 78, 12, 96, 6, + 8, 121, 4, 0, 16, 14, 26, 113, + 0, 0, 4, 14, 3, 2, 32, 35, + 0, 0, 0, 128, 0, 128, 8, 128, + 12, 128, 24, 64, 30, 64, 28, 130, + 2, 16, 2, 0, 32, 4, 33, 226, + 20, 35, 192, 64, 28, 2, 208, 70, + 192, 192, 24, 0, 128, 0, 0, 0, + 0, 64, 16, 0, 0, 0, 0, 0, + 0, 128, 16, 192, 24, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64, 8, 0, 0, 0, 64, 24, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 64, 16, 0, 0, 0, 0, + 0, 0, 0, 8, 64, 8, 192, 1, + 224, 0, 0, 0, 0, 8, 224, 0, + 0, 0, 0, 0, 0, 32, 12, 0, + 0, 0, 0, 64, 24, 0, 0, 0, + 32, 14, 0, 0, 64, 8, 72, 192, + 24, 0, 2, 224, 32, 12, 10, 192, + 128, 0, 32, 30, 7, 192, 128, 128, + 128, 16, 1, 128, 136, 0, 24, 6, + 0, 0, 97, 0, 22, 28, 160, 20, + 56, 160, 16, 24, 64, 30, 224, 24, + 62, 56, 32, 8, 224, 42, 127, 126, + 160, 40, 62, 224, 42, 62, 63, 224, + 2, 102, 127, 160, 10, 255, 64, 198, + 96, 8, 206, 208, 8, 203, 207, 208, + 0, 9, 143, 144, 24, 141, 24, 8, + 8, 232, 24, 24, 24, 9, 8, 48, + 4, 8, 8, 56, 32, 8, 0, 4, + 0, 64, 16, 128, 24, 0, 0, 72, + 8, 24, 8, 24, 0, 16, 24, 144, + 56, 16, 0, 0, 0, 152, 8, 60, + 24, 16, 44, 4, 8, 80, 12, 8, + 56, 36, 68, 12, 20, 0, 4, 44, + 4, 100, 4, 8, 68, 200, 196, 12, + 12, 252, 2, 194, 6, 2, 6, 6, + 120, 65, 3, 3, 3, 180, 33, 1, + 1, 3, 236, 32, 64, 0, 0, 1, + 152, 0, 0, 0, 12, 16, 32, 0, + 8, 48, 8, 16, 8, 24, 8, 8, + 0, 8, 0, 0, 4, 0, 12, 4, + 8, 0, 0, 0, 8, 4, 16, 4, + 21, 128, 0, 0, 63, 240, 224, 224, + 196, 130, 128, 255, 254, 252, 252, 252, + 242, 240, 224, 224, 255, 255, 255, 255, + 249, 254, 254, 252, 252, 248, 251, 255, + 255, 255, 255, 24, 255, 251, 16, 249, + 16, 253, 32, 253, 16, 255, 32, 254, + 16, 253, 0, 0, 16, 255, 0, 0, + 96, 255, 254, 0, 64, 255, 16, 254, + 32, 254, 16, 255, 96, 252, 252, 32, + 254, 96, 252, 249, 240, 251, 251, 255, + 243, 240, 223, 255, 239, 239, 240, 127, + 63, 159, 255, 112, 255, 47, 207, 96, + 135, 167, 112, 247, 199, 223, 80, 243, + 255, 40, 251, 231, 92, 247, 243, 247, + 231, 72, 247, 255, 32, 247, 0, 4, + 231, 0, 32, 255, 2, 239, 18, 207, + 255, 4, 247, 2, 239, 10, 207, 251, + 2, 199, 12, 243, 255, 2, 143, 2, + 135, 6, 3, 247, 5, 239, 255, 0, + 1, 175, 1, 47, 1, 3, 2, 23, + 1, 131, 3, 3, 55, 0, 0, 2, + 51, 0, 2, 23, 0, 3, 1, 7, + 0, 2, 1, 0, 1, 5, 1, 37, + 5, 39, 247, 5, 111, 119, 0, 4, + 55, 4, 23, 5, 239, 3, 0, 1, + 255, 4, 1, 2, 5, 2, 1, 0, + 2, 37, 0, 10, 45, 119, 10, 109, + 19, 10, 111, 3, 2, 239, 10, 255, + 1, 0, 4, 5, 4, 37, 20, 45, + 247, 20, 109, 227, 16, 35, 20, 255, + 33, 16, 17, 16, 1, 16, 21, 16, + 1, 0, 0, 0, 40, 7, 247, 40, + 15, 119, 0, 40, 31, 103, 40, 63, + 119, 40, 127, 55, 8, 255, 32, 51, + 32, 49, 32, 33, 0, 32, 1, 0, + 0, 8, 247, 32, 17, 32, 19, 32, + 5, 32, 1, 4, 247, 0, 0, 0, + 0, 0, 0, 64, 247, 0, 64, 231, + 0, 2, 247, 8, 215, 8, 247, 0, + 0, 8, 215, 9, 247, 247, 89, 255, + 245, 0, 247, 18, 231, 1, 2, 255, + 76, 255, 247, 151, 12, 239, 255, 0, + 76, 255, 239, 135, 68, 239, 7, 4, + 255, 8, 207, 72, 223, 3, 0, 72, + 255, 1, 0, 16, 9, 0, 16, 25, + 0, 0, 0, 0, 0, 8, 127, 88, + 63, 9, 3, 0, 8, 59, 16, 1, + 0, 8, 27, 76, 191, 155, 7, 8, + 159, 8, 223, 4, 159, 64, 3, 2, + 191, 30, 255, 223, 239, 9, 64, 1, + 14, 223, 207, 175, 66, 255, 129, 12, + 239, 239, 2, 239, 2, 255, 16, 11, + 12, 231, 231, 90, 247, 247, 15, 1, + 2, 255, 20, 247, 7, 0, 4, 243, + 8, 243, 128, 63, 128, 31, 28, 253, + 251, 5, 128, 25, 20, 255, 7, 192, + 0, 17, 72, 249, 1, 136, 243, 1, + 16, 15, 8, 227, 8, 103, 24, 199, + 31, 88, 239, 23, 0, 152, 159, 15, + 0, 24, 79, 47, 0, 24, 15, 63, + 8, 31, 4, 223, 28, 199, 63, 123, + 4, 207, 0, 20, 199, 59, 4, 207, + 40, 39, 0, 8, 47, 8, 15, 8, + 47, 8, 55, 24, 63, 123, 16, 121, + 48, 123, 32, 52, 143, 59, 33, 2, + 247, 6, 255, 207, 36, 199, 1, 36, + 207, 0, 0, 8, 47, 8, 15, 28, + 239, 143, 123, 12, 207, 191, 120, 63, + 59, 57, 32, 84, 143, 123, 0, 48, + 127, 123, 128, 32, 194, 215, 113, 0, + 66, 255, 123, 172, 207, 15, 127, 48, + 152, 143, 63, 113, 212, 239, 7, 253, + 121, 244, 255, 15, 123, 255, 253, 176, + 7, 103, 252, 176, 15, 99, 254, 184, + 135, 7, 127, 255, 28, 207, 15, 3, + 24, 9, 15, 12, 143, 7, 26, 223, + 15, 31, 6, 219, 135, 30, 223, 139, + 7, 15, 62, 255, 207, 13, 7, 95, + 60, 239, 15, 15, 7, 84, 255, 7, + 125, 200, 207, 71, 253, 136, 255, 251, + 232, 143, 15, 121, 255, 124, 239, 7, + 3, 79, 127, 126, 223, 143, 3, 15, + 127, 255, 28, 141, 7, 31, 4, 139, + 0, 12, 143, 15, 86, 251, 135, 15, + 127, 2, 255, 172, 207, 7, 63, 127, + 60, 203, 135, 7, 31, 96, 15, 63, + 28, 251, 199, 143, 0, 28, 255, 135, + 15, 76, 247, 143, 127, 52, 183, 31, + 31, 188, 143, 31, 15, 63, 63, 208, + 31, 31, 31, 168, 159, 31, 28, 232, + 143, 15, 29, 12, 240, 143, 31, 28, + 8, 228, 223, 29, 8, 0, 48, 159, + 24, 104, 207, 0, 0, 6, 223, 207, + 24, 223, 155, 148, 239, 129, 136, 156, + 207, 159, 1, 220, 75, 223, 207, 155, + 129, 130, 239, 221, 100, 223, 1, 193, + 200, 139, 221, 223, 10, 207, 9, 9, + 207, 1, 33, 239, 137, 64, 223, 38, + 255, 251, 201, 48, 9, 233, 178, 223, + 1, 237, 207, 32, 253, 37, 207, 235, + 221, 132, 251, 223, 32, 217, 5, 223, + 219, 132, 223, 207, 0, 4, 203, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 219, 36, 219, 217, 1, + 207, 4, 223, 32, 249, 0, 37, 239, + 255, 221, 4, 251, 4, 255, 4, 223, + 160, 253, 223, 0, 32, 249, 1, 207, + 0, 32, 153, 32, 157, 0, 32, 141, + 128, 239, 67, 239, 207, 255, 32, 137, + 0, 128, 255, 227, 207, 223, 133, 223, + 223, 33, 239, 137, 2, 207, 0, 0, + 32, 133, 32, 213, 36, 159, 209, 64, + 221, 4, 155, 0, 66, 239, 217, 2, + 207, 128, 191, 1, 255, 4, 159, 84, + 143, 0, 253, 238, 223, 135, 8, 192, + 252, 189, 133, 223, 143, 191, 205, 255, + 159, 0, 220, 188, 72, 24, 216, 140, + 223, 25, 190, 160, 128, 254, 40, 159, + 0, 80, 24, 192, 152, 155, 25, 238, + 130, 255, 228, 152, 223, 57, 216, 128, + 208, 48, 187, 1, 96, 17, 128, 64, + 0, 0, 144, 59, 144, 236, 207, 159, + 25, 16, 128, 18, 239, 63, 160, 59, + 0, 32, 187, 4, 239, 96, 155, 17, + 16, 191, 0, 0, 0, 0, 0, 0, + 32, 159, 0, 0, 8, 223, 32, 157, + 8, 207, 16, 159, 34, 231, 221, 16, + 223, 100, 231, 223, 13, 72, 239, 30, + 217, 247, 231, 207, 222, 8, 251, 255, + 227, 247, 239, 207, 223, 14, 150, 231, + 195, 231, 207, 126, 243, 211, 243, 247, + 231, 207, 254, 255, 215, 209, 243, 243, + 231, 239, 214, 253, 155, 249, 243, 231, + 254, 252, 60, 184, 248, 249, 241, 243, + 238, 255, 63, 56, 248, 248, 241, 188, + 126, 126, 252, 252, 248, 76, 127, 125, + 253, 250, 127, 126, 254, 254, 254, 252, + 160, 255, 254, 216, 127, 255, 255, 255, + 2, 255, 28, 63, 63, 191, 0, 20, + 191, 159, 28, 223, 159, 223, 28, 207, + 143, 207, 12, 239, 207, 60, 231, 199, + 199, 247, 28, 247, 231, 231, 56, 227, + 227, 251, 36, 251, 255, 56, 243, 243, + 251, 24, 241, 241, 36, 253, 253, 24, + 249, 249, 0, 24, 248, 248, 4, 254, + 48, 252, 255, 0, 0, 0, 0, 32, + 253, 16, 249, 44, 252, 249, 249, 36, + 253, 255, 56, 241, 243, 251, 12, 251, + 243, 56, 227, 247, 247, 60, 247, 231, + 231, 255, 56, 199, 207, 239, 44, 239, + 143, 223, 20, 207, 159, 255, 0, 0, + 224, 224, 224, 64, 64, 0, 0, 0, + 0, 72, 192, 192, 40, 224, 96, 0, + 0, 4, 192, 8, 176, 42, 32, 160, + 224, 36, 208, 160, 174, 48, 200, 128, + 224, 128, 20, 192, 208, 32, 160, 18, + 40, 192, 34, 8, 128, 66, 0, 64, + 18, 4, 64, 144, 96, 0, 2, 36, + 3, 2, 32, 16, 64, 1, 34, 128, + 128, 160, 144, 160, 64, 96, 33, 32, + 208, 194, 96, 0, 32, 189, 35, 64, + 192, 0, 192, 128, 203, 2, 64, 0, + 128, 192, 204, 192, 128, 224, 128, 243, + 0, 0, 128, 0, 160, 0, 149, 2, + 128, 0, 128, 199, 0, 2, 0, 0, + 64, 10, 6, 0, 134, 0, 4, 0, + 4, 12, 0, 4, 4, 8, 8, 4, + 0, 12, 8, 0, 4, 0, 8, 16, + 16, 8, 16, 0, 8, 0, 0, 24, + 8, 16, 8, 0, 16, 24, 8, 16, + 16, 8, 0, 8, 8, 0, 16, 24, + 16, 16, 8, 24, 4, 8, 20, 0, + 0, 52, 16, 8, 8, 60, 0, 16, + 24, 0, 8, 24, 24, 56, 28, 24, + 24, 24, 24, 20, 56, 24, 8, 24, + 0, 44, 8, 24, 16, 4, 0, 60, + 16, 8, 8, 0, 44, 32, 24, 8, + 32, 0, 60, 0, 56, 24, 4, 56, + 24, 28, 0, 16, 48, 56, 28, 24, + 32, 44, 4, 24, 0, 36, 0, 16, + 36, 8, 0, 44, 0, 16, 8, 44, + 16, 24, 4, 36, 32, 0, 20, 0, + 30, 24, 58, 24, 24, 28, 88, 28, + 4, 8, 24, 44, 0, 24, 32, 38, + 8, 8, 16, 38, 16, 0, 0, 102, + 0, 16, 8, 8, 116, 32, 8, 0, + 0, 60, 0, 56, 24, 4, 56, 88, + 28, 0, 24, 24, 122, 56, 30, 24, + 96, 124, 18, 60, 60, 16, 32, 230, + 2, 20, 0, 16, 16, 231, 4, 4, + 52, 24, 8, 8, 255, 8, 8, 56, + 126, 126, 52, 0, 4, 71, 16, 16, + 104, 4, 185, 32, 254, 254, 100, 0, + 39, 64, 32, 216, 228, 103, 0, 64, + 176, 224, 0, 38, 0, 224, 200, 36, + 0, 144, 16, 246, 60, 128, 252, 244, + 0, 16, 252, 36, 0, 64, 0, 0, + 0, 0, 40, 220, 0, 32, 64, 32, + 32, 16, 248, 16, 240, 16, 252, 0, + 32, 64, 0, 32, 32, 8, 252, 4, + 16, 0, 32, 0, 0, 0, 0, 0, + 0, 8, 244, 0, 4, 48, 16, 220, + 4, 0, 4, 16, 0, 0, 2, 16, + 2, 0, 28, 0, 252, 222, 6, 8, + 8, 0, 0, 0, 2, 0, 20, 24, + 220, 14, 4, 16, 248, 0, 0, 0, + 2, 0, 0, 4, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 8, 252, 4, + 24, 16, 222, 24, 244, 220, 28, 8, + 254, 222, 16, 254, 36, 48, 64, 36, + 32, 192, 36, 48, 144, 36, 52, 240, + 4, 22, 0, 4, 6, 64, 16, 64, + 80, 0, 96, 248, 88, 108, 4, 190, + 252, 92, 68, 0, 223, 72, 158, 241, + 232, 134, 254, 240, 24, 192, 224, 28, + 192, 248, 92, 216, 4, 190, 252, 94, + 136, 0, 255, 208, 158, 254, 241, 144, + 150, 240, 16, 134, 0, 128, 224, 0, + 0, 0, 128, 240, 0, 0, 0, 128, + 116, 48, 132, 255, 16, 196, 16, 198, + 252, 48, 48, 222, 254, 252, 192, 125, + 16, 32, 44, 252, 252, 232, 31, 0, + 16, 16, 60, 124, 30, 0, 0, 12, + 60, 248, 8, 28, 124, 248, 200, 248, + 0, 8, 28, 124, 252, 240, 0, 0, + 28, 60, 192, 0, 8, 128, 0, 0, + 1, 16, 2, 16, 4, 16, 0, 9, + 0, 16, 0, 16, 16, 2, 0, 0, + 32, 16, 0, 4, 0, 0, 0, 56, + 0, 0, 0, 64, 24, 0, 192, 0, + 24, 128, 0, 0, 0, 0, 0, 0, + 0, 224, 16, 240, 240, 184, 16, 16, + 240, 80, 222, 16, 16, 80, 240, 16, + 240, 237, 16, 80, 240, 16, 240, 232, + 254, 80, 240, 80, 80, 240, 64, 104, + 254, 240, 80, 112, 240, 0, 120, 248, + 191, 240, 112, 16, 240, 0, 248, 24, + 254, 16, 240, 0, 112, 120, 24, 124, + 127, 16, 240, 48, 32, 120, 24, 124, + 255, 112, 112, 0, 240, 8, 120, 60, + 56, 255, 240, 0, 240, 8, 120, 0, + 120, 240, 255, 48, 32, 32, 56, 16, + 120, 240, 64, 247, 16, 112, 8, 120, + 112, 68, 239, 255, 32, 32, 56, 8, + 48, 224, 236, 231, 251, 112, 0, 120, + 112, 0, 111, 255, 127, 32, 56, 8, + 48, 224, 236, 231, 127, 0, 120, 56, + 112, 0, 110, 255, 62, 24, 112, 224, + 224, 238, 63, 48, 8, 0, 96, 110, + 246, 190, 24, 16, 0, 46, 254, 247, + 143, 56, 48, 96, 64, 246, 216, 224, + 238, 254, 244, 153, 8, 232, 230, 228, + 136, 106, 224, 6, 16, 32, 0, 0, + 0, 0, 2, 0, 24, 74, 246, 0, + 0, 128, 96, 0, 0, 192, 246, 64, + 0, 138, 16, 106, 0, 0, 0, 136, + 110, 32, 19, 24, 48, 254, 0, 20, + 96, 246, 46, 56, 112, 108, 255, 8, + 100, 64, 254, 145, 56, 254, 36, 128, + 32, 18, 24, 246, 5, 24, 48, 0, + 72, 36, 246, 0, 16, 254, 0, 0, + 0, 0, 0, 128, 0, 0, 16, 246, + 0, 8, 96, 16, 247, 222, 56, 112, + 102, 255, 228, 32, 47, 56, 48, 48, + 166, 246, 207, 24, 16, 16, 134, 48, + 48, 236, 20, 150, 182, 16, 16, 252, + 148, 246, 254, 242, 48, 48, 231, 16, + 24, 144, 240, 32, 8, 116, 166, 222, + 16, 16, 223, 32, 16, 62, 255, 246, + 8, 0, 231, 96, 48, 150, 8, 0, + 16, 215, 128, 192, 246, 254, 16, 0, + 103, 0, 0, 134, 248, 0, 228, 6, + 146, 136, 240, 228, 10, 18, 16, 8, + 142, 8, 0, 254, 0, 35, 8, 0, + 2, 96, 6, 0, 164, 128, 14, 16, + 72, 246, 16, 19, 16, 16, 246, 0, + 165, 0, 192, 134, 0, 128, 16, 128, + 0, 11, 16, 0, 254, 140, 64, 246, + 16, 40, 254, 142, 2, 160, 6, 96, + 100, 38, 64, 36, 206, 34, 80, 222, + 8, 246, 8, 254, 0, 145, 80, 254, + 0, 21, 16, 0, 246, 0, 0, 16, + 254, 0, 128, 16, 0, 64, 48, 64, + 16, 32, 238, 4, 32, 44, 0, 246, + 206, 0, 0, 64, 0, 0, 32, 78, + 18, 64, 246, 64, 144, 64, 208, 96, + 94, 80, 32, 30, 0, 2, 80, 128, + 80, 0, 128, 16, 0, 0, 0, 64, + 112, 2, 112, 2, 48, 2, 32, 0, + 0, 0, 0, 0, 0, 128, 48, 66, + 0, 80, 4, 16, 128, 16, 64, 16, + 0, 18, 16, 247, 8, 247, 32, 94, + 4, 48, 0, 0, 133, 128, 112, 0, + 0, 128, 128, 0, 0, 32, 86, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 129, 0, 0, 227, + 64, 64, 118, 80, 64, 2, 80, 0, + 66, 0, 64, 193, 72, 0, 72, 129, + 192, 200, 97, 136, 126, 8, 255, 119, + 255, 143, 8, 8, 133, 247, 119, 4, + 141, 0, 0, 0, 0, 4, 133, 1, + 127, 2, 247, 72, 0, 245, 32, 132, + 16, 0, 64, 253, 132, 197, 127, 64, + 249, 2, 255, 96, 128, 241, 96, 132, + 240, 64, 112, 4, 199, 161, 119, 192, + 119, 6, 191, 198, 36, 196, 196, 2, + 183, 12, 198, 4, 133, 103, 68, 103, + 238, 167, 4, 0, 100, 32, 119, 124, + 6, 2, 20, 20, 48, 14, 135, 22, + 16, 147, 119, 151, 16, 115, 195, 123, + 147, 17, 121, 192, 19, 120, 0, 5, + 127, 18, 96, 16, 23, 88, 17, 18, + 151, 153, 119, 16, 16, 112, 33, 51, + 18, 0, 195, 19, 211, 147, 48, 197, + 17, 17, 146, 16, 224, 16, 147, 17, + 2, 19, 64, 19, 34, 17, 17, 193, + 19, 17, 19, 165, 147, 16, 16, 18, + 129, 146, 16, 3, 144, 16, 192, 16, + 144, 129, 16, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 120, 0, 0, + 0, 0, 134, 0, 0, 0, 1, 0, + 128, 24, 0, 128, 0, 128, 8, 236, + 8, 8, 8, 8, 24, 208, 8, 0, + 16, 66, 8, 8, 0, 160, 136, 24, + 193, 8, 0, 56, 0, 192, 128, 248, + 96, 8, 152, 0, 48, 72, 0, 64, + 248, 128, 249, 160, 136, 208, 128, 2, + 144, 136, 192, 40, 136, 216, 128, 128, + 224, 248, 240, 130, 192, 144, 2, 65, + 0, 128, 72, 8, 130, 16, 200, 64, + 131, 8, 136, 96, 249, 161, 8, 168, + 72, 232, 226, 129, 32, 0, 64, 194, + 1, 0, 80, 201, 66, 0, 32, 233, + 1, 8, 2, 0, 34, 8, 201, 32, + 249, 29, 0, 0, 192, 200, 2, 0, + 0, 48, 249, 233, 74, 4, 224, 2, + 44, 68, 161, 193, 60, 5, 64, 125, + 113, 46, 1, 4, 116, 97, 43, 1, + 2, 124, 65, 51, 2, 0, 124, 1, + 81, 0, 248, 0, 21, 48, 100, 240, + 80, 96, 1, 2, 18, 20, 72, 0, + 142, 50, 76, 116, 1, 13, 49, 108, + 112, 6, 2, 124, 10, 0, 114, 4, + 62, 133, 48, 58, 3, 8, 50, 9, + 56, 118, 12, 120, 62, 8, 126, 132, + 112, 1, 56, 124, 24, 33, 112, 26, + 1, 9, 244, 64, 14, 17, 41, 65, + 80, 108, 33, 192, 1, 1, 52, 0, + 120, 16, 32, 48, 212, 16, 121, 33, + 3, 208, 120, 35, 1, 176, 122, 16, + 0, 16, 120, 196, 0, 33, 64, 128, + 65, 16, 104, 208, 40, 1, 128, 112, + 48, 240, 193, 156, 96, 252, 240, 0, + 118, 28, 124, 248, 224, 1, 61, 48, + 63, 127, 46, 4, 54, 4, 7, 39, + 7, 206, 0, 0, 126, 3, 3, 240, + 36, 1, 7, 7, 215, 32, 4, 8, + 37, 13, 60, 240, 36, 57, 61, 56, + 242, 0, 52, 61, 57, 32, 213, 0, + 0, 60, 1, 0, 52, 32, 44, 4, + 21, 32, 96, 204, 66, 32, 0, 20, + 64, 206, 104, 120, 0, 1, 30, 34, + 80, 124, 238, 210, 32, 230, 5, 3, + 33, 0, 4, 225, 16, 12, 4, 1, + 26, 0, 252, 206, 21, 0, 208, 238, + 181, 64, 240, 254, 76, 4, 96, 64, + 12, 193, 192, 8, 0, 45, 64, 224, + 254, 80, 166, 64, 128, 88, 8, 5, + 16, 130, 38, 80, 128, 216, 64, 24, + 0, 46, 16, 224, 250, 200, 18, 0, + 250, 195, 144, 2, 16, 0, 0, 2, + 0, 32, 192, 8, 254, 0, 4, 240, + 0, 64, 80, 0, 0, 0, 55, 16, + 128, 248, 234, 208, 5, 0, 184, 118, + 160, 218, 235, 80, 16, 245, 32, 254, + 219, 112, 19, 7, 243, 0, 32, 79, + 63, 31, 31, 94, 0, 160, 255, 255, + 63, 44, 31, 63, 255, 214, 31, 63, + 63, 255, 253, 227, 16, 63, 63, 254, + 56, 161, 56, 191, 245, 225, 60, 250, + 62, 250, 98, 62, 240, 25, 240, 59, + 164, 18, 252, 243, 56, 124, 190, 54, + 16, 236, 228, 62, 10, 5, 104, 232, + 62, 12, 16, 72, 225, 48, 56, 12, + 24, 240, 62, 16, 24, 16, 236, 60, + 126, 24, 12, 48, 230, 120, 124, 56, + 16, 56, 96, 32, 28, 64, 12, 224, + 184, 60, 16, 241, 112, 63, 160, 48, + 2, 176, 254, 232, 16, 242, 124, 126, + 248, 16, 0, 161, 120, 252, 2, 229, + 248, 126, 120, 24, 0, 64, 12, 241, + 252, 254, 48, 52, 16, 96, 32, 32, + 254, 127, 127, 254, 124, 28, 0, 17, + 253, 255, 255, 126, 60, 36, 16, 0, + 62, 255, 126, 60, 36, 16, 62, 127, + 60, 4, 16, 0, 94, 252, 16, 0, + 0, 0, 5, 254, 168, 5, 252, 252, + 63, 254, 254, 254, 128, 128, 128, 56, + 200, 0, 0, 8, 212, 8, 208, 0, + 0, 8, 144, 0, 0, 11, 255, 255, + 128, 0, 12, 126, 144, 8, 128, 1, + 254, 38, 254, 92, 2, 0, 36, 252, + 0, 6, 255, 254, 0, 8, 192, 0, + 1, 255, 1, 254, 8, 240, 0, 8, + 248, 0, 0, 10, 254, 252, 0, 0, + 8, 254, 16, 128, 1, 222, 0, 23, + 212, 255, 255, 192, 32, 32, 0, 57, + 148, 255, 208, 0, 26, 254, 254, 248, + 1, 132, 5, 128, 254, 16, 216, 17, + 192, 208, 5, 196, 255, 17, 244, 144, + 19, 238, 255, 16, 65, 254, 16, 80, + 0, 0, 0, 2, 254, 16, 225, 24, + 212, 224, 16, 192, 8, 196, 12, 254, + 192, 16, 224, 0, 8, 128, 32, 96, + 8, 160, 42, 255, 224, 224, 0, 68, + 126, 64, 0, 68, 124, 192, 6, 254, + 92, 128, 128, 20, 252, 236, 30, 255, + 254, 192, 228, 48, 192, 192, 0, 64, + 128, 112, 128, 128, 136, 192, 128, 0, + 72, 224, 0, 40, 240, 0, 0, 104, + 248, 128, 128, 48, 192, 192, 202, 254, + 252, 192, 128, 0, 0, 0, 9, 222, + 254, 0, 0, 69, 212, 255, 128, 32, + 128, 128, 0, 112, 208, 132, 64, 113, + 148, 240, 128, 128, 181, 128, 254, 248, + 192, 128, 80, 216, 192, 16, 208, 1, + 224, 1, 192, 21, 214, 255, 192, 9, + 254, 238, 8, 236, 56, 252, 208, 200, + 40, 228, 192, 112, 128, 128, 128, 132, + 254, 0, 128, 128, 120, 196, 192, 192, + 192, 8, 192, 0, 8, 196, 8, 192, + 0, 2, 255, 64, 200, 4, 252, 192, + 128, 0, 60, 228, 128, 128, 128, 64, + 0, 68, 196, 128, 58, 254, 192, 192, + 192, 4, 204, 66, 255, 192, 4, 236, + 0, 6, 254, 238, 136, 196, 128, 129, + 126, 0, 65, 254, 128, 12, 254, 193, + 48, 128, 128, 8, 196, 0, 240, 192, + 192, 192, 128, 9, 252, 204, 0, 9, + 254, 236, 0, 8, 228, 0, 8, 236, + 20, 255, 224, 25, 230, 238, 192, 96, + 128, 128, 0, 13, 132, 254, 254, 241, + 196, 224, 192, 192, 192, 49, 132, 192, + 224, 17, 140, 228, 29, 204, 255, 252, + 192, 17, 236, 224, 13, 239, 254, 228, + 1, 254, 0, 48, 192, 192, 128, 128, + 0, 120, 224, 128, 128, 128, 40, 228, + 192, 80, 192, 192, 24, 196, 224, 48, + 226, 224, 48, 240, 192, 16, 224, 12, + 236, 192, 2, 255, 16, 192, 6, 254, + 228, 192, 128, 0, 60, 196, 128, 128, + 128, 120, 0, 0, 0, 0, 63, 255, + 252, 192, 128, 128, 128, 94, 220, 128, + 192, 192, 128, 55, 254, 204, 192, 196, + 192, 21, 222, 128, 192, 1, 254, 2, + 220, 32, 128, 24, 136, 128, 72, 128, + 0, 57, 222, 0, 0, 0, 7, 254, + 204, 0, 0, 1, 252, 34, 132, 16, + 33, 188, 0, 1, 248, 2, 128, 2, + 0, 1, 120, 0, 1, 24, 1, 28, + 1, 76, 1, 12, 0, 0, 8, 8, + 1, 8, 1, 0, 0, 0, 0, 8, + 0, 8, 8, 8, 24, 16, 16, 0, + 0, 0, 20, 8, 24, 4, 16, 20, + 0, 8, 4, 16, 16, 24, 0, 12, + 0, 56, 0, 16, 28, 0, 16, 60, + 24, 60, 56, 8, 28, 0, 0, 32, + 32, 0, 36, 4, 48, 24, 24, 24, + 4, 12, 0, 4, 8, 100, 12, 16, + 16, 4, 8, 2, 8, 32, 24, 4, + 24, 0, 64, 24, 66, 0, 8, 2, + 16, 0, 0, 0, 34, 24, 8, 0, + 78, 16, 56, 16, 0, 0, 10, 0, + 24, 8, 56, 4, 48, 12, 56, 48, + 12, 48, 56, 4, 32, 4, 0, 48, + 56, 0, 0, 0, 0, 0, 16, 60, + 4, 16, 40, 48, 32, 32, 48, 0, + 32, 32, 48, 52, 48, 64, 16, 0, + 2, 16, 0, 0, 32, 56, 0, 20, + 48, 48, 16, 32, 65, 16, 48, 0, + 128, 8, 0, 0, 162, 48, 60, 0, + 0, 0, 176, 40, 56, 16, 0, 16, + 56, 17, 48, 58, 48, 56, 60, 32, + 126, 0, 232, 54, 127, 50, 24, 248, + 55, 125, 126, 48, 56, 104, 53, 124, + 112, 120, 48, 124, 127, 121, 72, 112, + 120, 16, 118, 60, 115, 116, 119, 126, + 4, 119, 22, 112, 112, 127, 40, 126, + 123, 135, 112, 115, 124, 120, 130, 123, + 56, 175, 120, 121, 122, 127, 121, 60, + 0, 6, 248, 250, 33, 248, 123, 192, + 56, 56, 1, 240, 6, 240, 242, 12, + 246, 119, 32, 122, 104, 247, 120, 120, + 128, 120, 43, 241, 244, 246, 114, 4, + 244, 114, 240, 255, 246, 248, 105, 225, + 254, 254, 240, 135, 227, 232, 252, 248, + 143, 231, 224, 236, 255, 240, 44, 232, + 237, 252, 36, 224, 244, 45, 239, 248, + 253, 252, 100, 240, 232, 224, 35, 207, + 192, 237, 173, 206, 208, 222, 225, 224, + 77, 212, 240, 254, 225, 169, 220, 250, + 192, 225, 97, 136, 200, 193, 166, 128, + 176, 203, 192, 111, 168, 160, 240, 255, + 195, 194, 35, 128, 224, 224, 168, 245, + 160, 194, 229, 65, 241, 244, 130, 192, + 231, 1, 225, 224, 230, 132, 128, 43, + 129, 193, 255, 224, 131, 1, 192, 132, + 236, 192, 235, 232, 4, 128, 231, 0, + 128, 194, 236, 12, 0, 102, 130, 192, + 204, 8, 172, 128, 254, 192, 8, 123, + 2, 128, 222, 254, 208, 0, 66, 0, + 8, 200, 214, 24, 0, 36, 132, 216, + 65, 0, 16, 32, 200, 0, 4, 128, + 32, 192, 2, 4, 72, 212, 0, 0, + 136, 148, 16, 40, 156, 224, 4, 0, + 8, 140, 0, 2, 0, 8, 172, 32, + 240, 8, 140, 1, 4, 0, 32, 208, + 0, 0, 8, 158, 128, 0, 64, 16, + 1, 0, 34, 4, 216, 0, 0, 8, + 222, 68, 132, 24, 0, 160, 208, 8, + 1, 128, 0, 34, 0, 240, 0, 0, + 0, 0, 4, 128, 0, 35, 192, 128, + 248, 9, 196, 206, 6, 0, 132, 208, + 222, 152, 24, 105, 204, 142, 250, 216, + 41, 252, 140, 254, 8, 132, 197, 124, + 4, 248, 152, 146, 128, 142, 136, 204, + 0, 4, 254, 216, 19, 126, 132, 132, + 178, 196, 4, 158, 248, 2, 204, 171, + 62, 252, 0, 134, 254, 99, 56, 254, + 6, 190, 165, 0, 128, 4, 255, 84, + 134, 0, 142, 194, 126, 14, 191, 68, + 206, 6, 236, 254, 2, 0, 4, 190, + 194, 124, 0, 14, 146, 60, 2, 6, + 8, 130, 170, 24, 134, 2, 0, 20, + 255, 0, 74, 0, 207, 2, 184, 255, + 1, 0, 2, 64, 0, 160, 1, 0, + 208, 3, 1, 1, 96, 0, 0, 144, + 199, 0, 16, 255, 32, 1, 32, 3, + 32, 255, 64, 1, 64, 135, 68, 127, + 255, 132, 63, 3, 132, 12, 255, 4, + 0, 0, 0, 8, 127, 8, 4, 8, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 24, 128, 127, 0, 0, + 36, 128, 127, 36, 0, 255, 24, 192, + 63, 0, 0, 4, 64, 32, 191, 8, + 224, 52, 0, 31, 255, 0, 0, 60, + 32, 240, 15, 223, 32, 255, 4, 0, + 0, 44, 16, 248, 239, 16, 7, 36, + 0, 255, 0, 0, 36, 8, 247, 0, + 0, 8, 252, 52, 0, 3, 255, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 40, 248, 223, 0, 0, 32, 191, + 0, 0, 40, 252, 183, 0, 0, 32, + 127, 32, 95, 104, 248, 87, 223, 48, + 7, 255, 64, 255, 64, 207, 40, 240, + 239, 16, 15, 96, 255, 255, 0, 16, + 7, 48, 15, 127, 16, 31, 56, 250, + 95, 255, 24, 254, 31, 0, 8, 252, + 0, 0, 0, 4, 128, 0, 0, 0, + 0, 0, 0, 0, 20, 64, 63, 0, + 16, 127, 16, 255, 0, 8, 248, 4, + 192, 0, 12, 224, 31, 0, 0, 0, + 0, 0, 12, 240, 15, 4, 248, 20, + 251, 127, 20, 123, 255, 4, 114, 12, + 146, 7, 28, 178, 3, 127, 28, 152, + 5, 103, 28, 151, 7, 235, 52, 191, + 239, 127, 20, 223, 143, 52, 127, 7, + 239, 28, 119, 3, 79, 4, 83, 4, + 19, 48, 87, 255, 20, 3, 95, 48, + 211, 247, 16, 215, 58, 128, 47, 255, + 255, 10, 200, 171, 11, 8, 248, 139, + 14, 252, 17, 167, 10, 248, 163, 28, + 126, 177, 223, 30, 232, 124, 57, 231, + 31, 0, 72, 252, 49, 227, 29, 8, + 248, 129, 201, 62, 8, 104, 252, 57, + 231, 52, 8, 17, 235, 120, 248, 254, + 43, 231, 248, 24, 252, 17, 223, 247, + 240, 124, 252, 49, 239, 248, 8, 24, + 248, 1, 155, 241, 0, 8, 24, 252, + 17, 226, 0, 8, 108, 252, 192, 8, + 236, 132, 0, 40, 136, 0, 8, 16, + 0, 0, 32, 0, 0, 64, 0, 0, + 0, 0, 0, 128, 0, 0, 0, 128, + 16, 0, 0, 64, 16, 128, 48, 0, + 64, 48, 128, 112, 32, 16, 160, 24, + 224, 96, 56, 112, 0, 64, 240, 144, + 8, 192, 48, 12, 120, 144, 28, 128, + 160, 248, 0, 80, 60, 192, 80, 124, + 128, 88, 4, 252, 0, 8, 6, 56, + 14, 254, 8, 40, 250, 0, 16, 252, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8, 254, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4, 64, 0, + 0, 0, 32, 16, 4, 0, 0, 4, + 32, 0, 2, 64, 32, 0, 0, 0, + 0, 18, 32, 254, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 16, 0, 2, 16, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 16, 0, 0, 0, 0, + 32, 32, 0, 0, 1, 0, 32, 48, + 32, 16, 16, 255, 32, 80, 33, 16, + 96, 0, 32, 112, 3, 24, 24, 0, + 16, 254, 32, 40, 32, 56, 100, 8, + 40, 64, 0, 35, 8, 8, 160, 2, + 12, 5, 24, 56, 5, 16, 16, 6, + 8, 48, 66, 12, 0, 0, 33, 24, + 32, 0, 74, 8, 255, 32, 0, 2, + 12, 0, 0, 5, 16, 0, 128, 32, + 0, 128, 0, 0, 0, 0, 4, 32, + 1, 24, 5, 20, 48, 0, 4, 16, + 1, 16, 2, 8, 2, 12, 4, 48, + 130, 8, 32, 4, 16, 2, 28, 0, + 1, 24, 0, 0, 0, 2, 24, 1, + 28, 128, 48, 0, 1, 24, 1, 16, + 1, 28, 73, 24, 254, 48, 3, 0, + 28, 192, 32, 16, 192, 8, 8, 0, + 194, 30, 12, 0, 64, 28, 6, 12, + 20, 34, 4, 48, 98, 6, 16, 14, + 102, 10, 22, 20, 4, 66, 8, 12, + 102, 0, 23, 22, 4, 70, 2, 30, + 0, 32, 30, 2, 0, 0, 36, 31, + 31, 0, 64, 2, 2, 2, 80, 255, + 3, 90, 3, 255, 254, 7, 34, 7, + 63, 44, 63, 254, 55, 54, 15, 127, + 255, 63, 76, 63, 255, 15, 37, 5, + 191, 191, 129, 13, 7, 37, 15, 111, + 127, 198, 31, 239, 31, 6, 6, 63, + 255, 240, 254, 255, 63, 15, 22, 127, + 223, 255, 129, 31, 31, 98, 255, 223, + 127, 32, 255, 69, 63, 255, 255, 160, + 191, 63, 0, 129, 127, 127, 0, 161, + 255, 127, 255, 0, 2, 127, 193, 127, + 127, 127, 192, 255, 255, 50, 255, 223, + 255, 17, 255, 254, 16, 255, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6, 127, 127, 0, 4, + 63, 4, 111, 7, 254, 121, 127, 6, + 248, 255, 4, 252, 2, 120, 6, 248, + 254, 6, 126, 255, 2, 127, 4, 127, + 0, 2, 121, 0, 6, 120, 255, 2, + 124, 2, 127, 1, 255, 0, 2, 123, + 3, 253, 248, 3, 252, 254, 2, 255, + 2, 127, 0, 2, 255, 0, 1, 254, + 0, 1, 255, 0, 1, 254, 0, 4, + 127, 5, 255, 255, 0, 0, 0, 0, + 12, 191, 63, 14, 251, 31, 191, 10, + 249, 159, 31, 254, 248, 15, 143, 223, + 28, 7, 7, 255, 12, 3, 3, 28, + 0, 49, 7, 28, 48, 120, 3, 52, + 24, 33, 127, 124, 0, 16, 0, 55, + 127, 168, 0, 0, 254, 65, 238, 120, + 0, 0, 0, 64, 248, 128, 126, 1, + 254, 1, 238, 0, 64, 120, 0, 196, + 64, 124, 254, 3, 254, 252, 2, 254, + 197, 220, 224, 252, 126, 129, 76, 127, + 68, 248, 254, 0, 128, 236, 65, 204, + 255, 166, 255, 250, 8, 228, 34, 254, + 10, 100, 254, 138, 254, 34, 246, 159, + 166, 244, 255, 23, 196, 37, 140, 254, + 54, 222, 252, 182, 16, 16, 252, 204, + 61, 136, 62, 48, 48, 60, 189, 152, + 126, 1, 0, 124, 152, 8, 5, 153, + 184, 4, 4, 184, 0, 20, 252, 6, + 17, 176, 4, 129, 240, 240, 144, 196, + 176, 17, 176, 100, 153, 224, 69, 36, + 224, 153, 128, 5, 4, 128, 16, 0, + 16, 64, 24, 1, 0, 8, 5, 8, + 4, 16, 4, 32, 252, 129, 192, 192, + 0, 12, 254, 7, 56, 39, 6, 254, + 17, 64, 38, 0, 136, 38, 224, 49, + 0, 36, 252, 132, 255, 192, 88, 36, + 37, 254, 28, 254, 37, 36, 204, 255, + 36, 255, 128, 64, 254, 0, 0, 0, + 66, 253, 252, 0, 66, 249, 248, 0, + 88, 52, 116, 250, 90, 241, 124, 124, + 242, 82, 225, 60, 226, 8, 60, 2, + 224, 90, 192, 124, 124, 194, 0, 64, + 192, 0, 0, 66, 128, 128, 0, 66, + 140, 140, 6, 141, 254, 78, 189, 255, + 252, 156, 26, 253, 124, 120, 152, 188, + 248, 0, 216, 60, 240, 188, 3, 193, + 128, 124, 2, 170, 252, 62, 255, 6, + 8, 126, 11, 224, 253, 255, 162, 255, + 252, 8, 53, 112, 127, 244, 248, 211, + 120, 254, 247, 126, 24, 6, 126, 255, + 40, 239, 240, 193, 124, 120, 56, 56, + 255, 231, 245, 250, 127, 247, 239, 247, + 112, 58, 225, 126, 238, 240, 126, 163, + 62, 255, 239, 124, 192, 228, 120, 192, + 239, 112, 32, 255, 57, 126, 231, 207, + 223, 192, 223, 98, 24, 239, 199, 184, + 207, 247, 255, 230, 177, 255, 183, 191, + 239, 192, 255, 143, 216, 167, 167, 191, + 31, 180, 207, 237, 255, 95, 120, 183, + 239, 127, 63, 172, 183, 247, 255, 31, + 241, 253, 103, 127, 127, 63, 222, 239, + 191, 227, 119, 255, 62, 15, 126, 207, + 251, 107, 90, 214, 111, 115, 127, 158, + 222, 127, 127, 255, 126, 6, 254, 255, + 42, 190, 255, 255, 2, 191, 128, 60, + 34, 255, 127, 64, 126, 129, 127, 28, + 97, 255, 255, 127, 128, 62, 0, 0, + 0, 224, 127, 63, 28, 144, 127, 0, + 111, 127, 127, 127, 127, 63, 14, 112, + 63, 31, 0, 60, 63, 63, 31, 15, + 59, 63, 63, 31, 15, 0, 20, 31, + 7, 27, 31, 31, 15, 0, 12, 15, + 7, 10, 15, 3, 13, 15, 7, 0, + 0, 128, 4, 0, 0, 128, 132, 0, + 128, 196, 128, 252, 0, 0, 0, 64, + 4, 64, 36, 64, 164, 64, 228, 64, + 196, 64, 228, 192, 252, 248, 0, 0, + 0, 0, 0, 0, 0, 128, 216, 128, + 208, 0, 0, 32, 128, 160, 132, 240, + 0, 128, 176, 0, 32, 196, 192, 236, + 160, 0, 32, 228, 0, 32, 244, 224, + 252, 252, 128, 128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 64, 248, + 16, 32, 0, 16, 0, 0, 16, 16, + 0, 24, 16, 0, 0, 8, 0, 80, + 8, 240, 0, 8, 8, 0, 0, 0, + 0, 4, 3, 4, 7, 0, 0, 4, + 3, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 4, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4, 15, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 7, 8, 0, 0, + 0, 80, 0, 248, 0, 0, 0, 0, + 0, 0, 8, 16, 64, 252, 8, 0, + 0, 48, 16, 204, 48, 0, 196, 160, + 208, 128, 0, 128, 192, 160, 128, 244, + 0, 128, 252, 0, 0, 0, 96, 0, + 248, 0, 0, 64, 184, 64, 176, 64, + 128, 64, 0, 136, 1, 216, 128, 248, + 136, 3, 176, 128, 128, 128, 0, 12, + 15, 7, 0, 16, 1, 16, 3, 0, + 24, 15, 7, 0, 32, 3, 0, 48, + 15, 7, 0, 64, 3, 0, 96, 15, + 7, 128, 1, 129, 7, 3, 64, 15, + 128, 7, 3, 3, 7, 1, 0, 134, + 3, 7, 15, 2, 1, 2, 0, 12, + 3, 7, 4, 0, 0, 25, 192, 3, + 7, 9, 248, 0, 1, 252, 50, 224, + 3, 7, 2, 248, 19, 0, 252, 0, + 4, 240, 100, 248, 3, 7, 6, 0, + 252, 40, 240, 0, 8, 248, 76, 0, + 252, 3, 128, 7, 16, 192, 16, 224, + 16, 240, 0, 0, 16, 248, 8, 244, + 0, 0, 8, 212, 8, 148, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 8, 212, + 0, 0, 0, 0, 64, 1, 0, 16, + 252, 64, 0, 0, 0, 0, 128, 3, + 0, 0, 0, 0, 0, 128, 1, 0, + 0, 8, 244, 136, 180, 0, 0, 32, + 64, 0, 40, 244, 192, 32, 224, 0, + 32, 240, 48, 254, 248, 40, 228, 252, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 254, 0, 0, 0, 0, 0, + 0, 8, 230, 0, 0, 0, 0, 0, + 0, 0, 0, 32, 252, 0, 0, 8, + 238, 0, 8, 254, 64, 128, 12, 128, + 252, 20, 192, 252, 192, 192, 128, 2, + 128, 64, 220, 231, 128, 192, 224, 254, + 252, 192, 87, 64, 224, 240, 254, 254, + 3, 224, 240, 75, 192, 208, 254, 238, + 133, 224, 248, 193, 71, 56, 176, 252, + 224, 195, 96, 240, 192, 129, 163, 64, + 248, 220, 3, 115, 192, 252, 252, 208, + 129, 41, 112, 252, 192, 81, 248, 216, + 1, 176, 192, 128, 7, 112, 128, 0, + 3, 8, 176, 30, 248, 248, 128, 0, + 4, 160, 44, 96, 0, 1, 70, 240, + 0, 7, 131, 240, 96, 15, 98, 0, + 129, 135, 161, 192, 131, 143, 113, 0, + 128, 195, 199, 16, 192, 136, 128, 15, + 32, 227, 88, 192, 224, 207, 36, 128, + 231, 72, 224, 15, 148, 192, 241, 31, + 122, 128, 240, 249, 255, 31, 120, 232, + 253, 223, 15, 52, 224, 255, 143, 56, + 248, 249, 7, 16, 251, 114, 192, 255, + 15, 31, 152, 252, 151, 63, 61, 128, + 192, 253, 159, 31, 92, 240, 251, 31, + 63, 12, 248, 191, 12, 252, 151, 174, + 240, 240, 15, 63, 127, 70, 248, 171, + 127, 29, 224, 63, 31, 63, 34, 112, + 127, 143, 240, 113, 31, 63, 255, 87, + 224, 47, 63, 127, 255, 59, 227, 127, + 127, 255, 255, 15, 79, 63, 127, 255, + 7, 63, 127, 255, 3, 127, 255, 1, + 255, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 129, 127, 127, 0, 129, + 63, 63, 0, 0, 8, 127, 8, 255, + 16, 127, 0, 0, 16, 63, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 16, 127, 0, 128, 31, 0, 128, 191, + 16, 255, 144, 191, 159, 16, 63, 16, + 31, 0, 129, 31, 31, 0, 16, 127, + 0, 128, 15, 136, 223, 31, 8, 31, + 11, 15, 127, 63, 26, 255, 31, 255, + 24, 175, 127, 128, 15, 1, 143, 1, + 31, 16, 111, 131, 191, 191, 143, 209, + 159, 119, 239, 135, 8, 239, 80, 55, + 255, 80, 31, 239, 129, 151, 199, 83, + 215, 159, 223, 255, 11, 223, 31, 255, + 211, 199, 95, 159, 223, 215, 144, 143, + 199, 64, 215, 131, 207, 223, 195, 81, + 255, 135, 223, 83, 239, 207, 199, 215, + 16, 195, 0, 18, 143, 227, 194, 131, + 223, 131, 32, 251, 16, 235, 64, 255, + 64, 247, 144, 227, 195, 0, 18, 195, + 235, 192, 255, 227, 16, 227, 16, 225, + 128, 235, 146, 131, 227, 239, 34, 163, + 255, 0, 2, 131, 1, 231, 1, 247, + 2, 195, 0, 16, 225, 1, 255, 18, + 199, 241, 3, 247, 231, 2, 199, 130, + 193, 231, 16, 245, 10, 195, 253, 2, + 199, 2, 215, 8, 245, 0, 144, 229, + 227, 144, 237, 225, 26, 223, 247, 239, + 1, 249, 80, 255, 251, 0, 131, 233, + 255, 193, 193, 225, 215, 205, 200, 227, + 199, 221, 200, 225, 195, 253, 197, 197, + 251, 227, 255, 9, 199, 241, 73, 207, + 225, 225, 41, 239, 227, 235, 13, 255, + 249, 199, 76, 193, 255, 161, 100, 225, + 139, 137, 112, 251, 131, 249, 98, 235, + 193, 255, 30, 137, 131, 251, 211, 62, + 225, 251, 255, 215, 1, 52, 255, 5, + 155, 59, 200, 129, 247, 129, 191, 63, + 193, 217, 231, 151, 1, 255, 27, 1, + 253, 1, 139, 23, 153, 231, 165, 63, + 21, 189, 1, 255, 11, 167, 103, 9, + 15, 255, 55, 0, 63, 15, 119, 49, + 1, 255, 2, 0, 5, 115, 0, 9, + 114, 251, 24, 249, 253, 1, 123, 8, + 121, 1, 243, 1, 245, 1, 255, 18, + 32, 249, 43, 245, 48, 59, 253, 1, + 241, 49, 243, 251, 249, 27, 255, 56, + 3, 255, 114, 112, 251, 251, 251, 122, + 114, 32, 115, 247, 255, 218, 231, 4, + 119, 247, 247, 154, 239, 1, 115, 255, + 52, 1, 119, 231, 160, 227, 247, 252, + 53, 0, 37, 231, 231, 255, 180, 119, + 1, 243, 247, 30, 255, 247, 1, 0, + 96, 119, 239, 206, 247, 251, 0, 247, + 255, 238, 243, 247, 4, 115, 243, 251, + 232, 7, 48, 251, 255, 72, 39, 255, + 202, 251, 55, 127, 253, 44, 243, 119, + 32, 46, 255, 247, 245, 0, 92, 251, + 241, 1, 124, 93, 127, 255, 247, 49, + 48, 217, 31, 255, 113, 0, 255, 176, + 247, 1, 113, 225, 3, 113, 1, 33, + 178, 63, 255, 247, 0, 83, 33, 15, + 251, 51, 99, 51, 3, 243, 115, 199, + 103, 1, 7, 247, 35, 183, 255, 49, + 3, 255, 247, 51, 238, 119, 1, 55, + 255, 255, 119, 254, 127, 49, 1, 251, + 247, 247, 255, 182, 255, 55, 243, 255, + 239, 52, 127, 3, 243, 204, 255, 49, + 253, 247, 232, 121, 115, 255, 255, 104, + 251, 51, 243, 168, 255, 7, 251, 48, + 51, 3, 80, 113, 119, 208, 255, 39, + 247, 96, 1, 7, 96, 51, 3, 160, + 119, 127, 225, 127, 255, 1, 39, 192, + 3, 11, 129, 7, 3, 65, 3, 127, + 67, 1, 127, 255, 2, 7, 130, 3, + 15, 134, 1, 127, 31, 135, 9, 0, + 111, 63, 135, 89, 1, 75, 255, 13, + 31, 1, 127, 2, 9, 21, 63, 0, + 127, 10, 29, 107, 46, 31, 1, 1, + 127, 8, 9, 12, 9, 1, 2, 63, + 84, 29, 107, 127, 20, 31, 67, 8, + 9, 16, 65, 16, 9, 144, 8, 127, + 18, 127, 1, 8, 1, 126, 63, 95, + 3, 3, 255, 255, 149, 127, 127, 1, + 255, 16, 3, 8, 19, 18, 127, 1, + 34, 95, 211, 44, 95, 31, 145, 18, + 127, 3, 34, 111, 131, 38, 127, 79, + 129, 40, 95, 1, 4, 207, 20, 199, + 1, 76, 207, 223, 223, 64, 23, 68, + 223, 7, 118, 111, 207, 147, 0, 1, + 144, 219, 31, 252, 239, 255, 223, 144, + 0, 17, 170, 127, 143, 219, 1, 120, + 207, 191, 223, 128, 248, 239, 143, 191, + 219, 0, 221, 255, 127, 255, 207, 159, + 131, 246, 255, 255, 239, 159, 191, 155, + 240, 255, 223, 159, 191, 160, 207, 63, + 224, 255, 223, 31, 128, 159, 128, 223, + 64, 255, 128, 255, 60, 63, 63, 63, + 63, 126, 63, 31, 31, 31, 31, 63, + 219, 127, 127, 15, 15, 127, 127, 231, + 63, 63, 15, 15, 63, 63, 195, 159, + 31, 31, 159, 201, 223, 7, 159, 223, + 211, 239, 143, 7, 143, 239, 129, 255, + 255, 90, 207, 15, 15, 207, 102, 159, + 31, 31, 31, 2, 31, 0, 6, 159, + 15, 161, 223, 15, 223, 0, 0, 0, + 0, 1, 255, 66, 207, 15, 185, 239, + 7, 7, 7, 239, 195, 255, 239, 7, + 255, 62, 255, 7, 3, 3, 3, 68, + 199, 3, 60, 227, 129, 1, 1, 198, + 243, 193, 131, 239, 96, 129, 193, 254, + 251, 241, 225, 224, 241, 249, 171, 254, + 254, 248, 240, 240, 248, 253, 163, 193, + 247, 254, 129, 165, 241, 252, 252, 128, + 219, 240, 250, 248, 248, 250, 0, 195, + 208, 248, 248, 64, 129, 192, 192, 0, + 253, 64, 248, 240, 240, 248, 240, 64, + 131, 0, 240, 0, 0, 64, 248, 2, + 248, 0, 0, 0, 0, 0, 109, 64, + 252, 248, 252, 252, 210, 224, 248, 254, + 64, 11, 32, 96, 252, 183, 0, 48, + 120, 252, 254, 6, 210, 8, 254, 255, + 3, 164, 56, 255, 161, 222, 0, 28, + 126, 255, 127, 33, 180, 60, 127, 127, + 1, 250, 4, 30, 31, 63, 63, 15, + 130, 12, 63, 109, 4, 30, 31, 31, + 31, 31, 0, 28, 31, 15, 15, 103, + 2, 30, 15, 15, 159, 67, 14, 15, + 143, 131, 15, 143, 159, 195, 95, 239, + 175, 223, 253, 239, 31, 31, 31, 31, + 239, 239, 64, 79, 194, 207, 95, 207, + 131, 223, 223, 223, 131, 159, 95, 159, + 1, 191, 195, 63, 159, 31, 63, 131, + 127, 31, 127, 129, 255, 255, 128, 127, + 156, 15, 15, 15, 63, 226, 159, 15, + 15, 31, 246, 207, 7, 7, 7, 7, + 143, 168, 7, 3, 207, 150, 239, 199, + 3, 255, 158, 255, 231, 131, 1, 191, + 254, 243, 193, 129, 3, 131, 135, 143, + 247, 247, 241, 225, 129, 227, 99, 239, + 255, 255, 253, 241, 225, 225, 241, 155, + 63, 231, 247, 255, 249, 249, 143, 15, + 79, 231, 239, 252, 224, 205, 247, 241, + 199, 254, 224, 252, 135, 3, 255, 240, + 195, 255, 240, 240, 254, 131, 1, 195, + 208, 1, 3, 0, 33, 64, 238, 131, + 0, 3, 1, 252, 254, 224, 224, 252, + 6, 6, 230, 6, 220, 216, 8, 8, + 134, 4, 252, 16, 38, 12, 220, 248, + 198, 4, 252, 136, 24, 129, 4, 8, + 195, 6, 6, 140, 12, 225, 3, 252, + 132, 4, 135, 1, 3, 254, 6, 5, + 0, 255, 78, 0, 231, 254, 196, 220, + 227, 255, 240, 230, 2, 244, 241, 248, + 254, 227, 3, 224, 255, 241, 1, 252, + 185, 254, 255, 251, 248, 0, 36, 25, + 252, 156, 29, 255, 254, 128, 16, 252, + 0, 0, 4, 13, 20, 12, 254, 128, + 0, 8, 253, 68, 140, 240, 68, 8, + 192, 4, 0, 76, 1, 221, 128, 8, + 204, 76, 129, 205, 0, 8, 239, 4, + 128, 52, 64, 252, 248, 36, 96, 240, + 44, 48, 238, 224, 8, 230, 12, 0, + 176, 24, 48, 254, 40, 232, 192, 40, + 112, 0, 40, 32, 138, 56, 192, 252, + 202, 40, 224, 208, 72, 64, 8, 48, + 124, 240, 104, 0, 248, 0, 48, 96, + 252, 80, 0, 32, 80, 8, 240, 96, + 140, 248, 48, 12, 144, 112, 8, 0, + 124, 128, 112, 16, 0, 192, 252, 120, + 192, 228, 248, 64, 224, 64, 192, 0, + 16, 8, 0, 16, 0, 128, 120, 0, + 64, 0, 0, 128, 124, 160, 8, 252, + 160, 0, 128, 192, 8, 0, 64, 0, + 128, 8, 128, 0, 0, 1, 48, 3, + 8, 48, 3, 20, 8, 7, 26, 4, + 24, 6, 26, 4, 9, 31, 8, 15, + 63, 11, 10, 12, 10, 31, 4, 23, + 30, 63, 12, 8, 12, 31, 0, 25, + 28, 14, 4, 15, 24, 31, 59, 10, + 30, 30, 127, 26, 0, 13, 16, 95, + 31, 11, 0, 17, 28, 30, 32, 127, + 60, 8, 12, 62, 62, 4, 63, 4, + 55, 28, 49, 126, 12, 20, 48, 132, + 28, 112, 124, 228, 54, 0, 48, 236, + 4, 4, 112, 28, 49, 120, 252, 36, + 33, 140, 80, 248, 8, 38, 8, 1, + 200, 164, 9, 216, 8, 32, 248, 137, + 8, 124, 24, 64, 24, 96, 232, 152, + 68, 11, 248, 0, 65, 24, 232, 128, + 56, 220, 15, 126, 184, 200, 232, 12, + 79, 254, 2, 24, 128, 200, 0, 128, + 136, 0, 75, 56, 88, 255, 216, 48, + 188, 72, 4, 111, 4, 79, 32, 8, + 0, 112, 252, 24, 152, 71, 24, 24, + 95, 24, 0, 208, 253, 8, 152, 132, + 223, 24, 130, 16, 16, 38, 20, 159, + 25, 74, 52, 223, 16, 63, 16, 56, + 191, 255, 255, 57, 2, 187, 242, 57, + 191, 59, 17, 24, 140, 63, 191, 16, + 155, 0, 121, 255, 255, 17, 119, 16, + 125, 127, 127, 119, 51, 10, 127, 127, + 185, 48, 255, 255, 127, 1, 231, 49, + 123, 255, 63, 55, 33, 98, 191, 255, + 63, 97, 113, 127, 110, 67, 97, 63, + 62, 131, 113, 127, 35, 225, 243, 255, + 127, 63, 72, 127, 125, 201, 99, 255, + 127, 123, 130, 255, 127, 65, 119, 251, + 64, 127, 137, 231, 191, 247, 201, 255, + 127, 247, 127, 200, 31, 255, 255, 72, + 127, 239, 72, 223, 255, 144, 127, 223, + 136, 255, 255, 8, 175, 8, 223, 8, + 207, 16, 255, 0, 8, 31, 8, 15, + 0, 8, 39, 8, 167, 0, 0, 8, + 231, 0, 0, 0, 0, 8, 151, 8, + 159, 0, 8, 239, 24, 255, 159, 24, + 247, 31, 16, 159, 16, 135, 48, 199, + 127, 16, 195, 0, 0, 16, 131, 8, + 255, 0, 0, 0, 0, 32, 255, 48, + 3, 223, 32, 183, 48, 19, 151, 56, + 251, 23, 135, 0, 56, 253, 31, 3, + 8, 255, 16, 23, 8, 127, 24, 63, + 87, 16, 7, 8, 223, 0, 16, 167, + 16, 165, 0, 64, 231, 88, 95, 5, + 227, 72, 31, 67, 64, 3, 16, 69, + 16, 93, 24, 95, 13, 8, 31, 128, + 247, 128, 103, 128, 35, 144, 15, 3, + 0, 0, 0, 8, 63, 2, 254, 2, + 255, 0, 16, 13, 0, 8, 47, 0, + 16, 29, 0, 16, 31, 0, 0, 16, + 63, 0, 0, 0, 0, 8, 15, 0, + 20, 239, 31, 24, 31, 159, 0, 6, + 251, 175, 4, 143, 0, 4, 15, 2, + 255, 0, 0, 14, 239, 31, 63, 0, + 0, 0, 0, 1, 223, 2, 175, 3, + 143, 143, 1, 159, 99, 143, 7, 1, + 1, 3, 131, 15, 1, 0, 0, 131, + 1, 12, 7, 1, 129, 139, 139, 8, + 31, 39, 23, 203, 0, 15, 155, 157, + 207, 13, 7, 27, 119, 203, 143, 128, + 131, 3, 255, 4, 1, 23, 159, 140, + 0, 19, 8, 143, 2, 142, 18, 143, + 3, 27, 191, 159, 139, 1, 77, 255, + 129, 128, 7, 72, 8, 127, 102, 191, + 131, 3, 255, 14, 255, 139, 0, 6, + 223, 203, 6, 207, 143, 107, 223, 223, + 128, 7, 223, 47, 255, 159, 159, 136, + 13, 120, 140, 0, 141, 159, 32, 159, + 64, 191, 10, 191, 15, 38, 255, 31, + 15, 76, 191, 13, 255, 8, 156, 72, + 157, 191, 116, 255, 129, 143, 159, 56, + 155, 0, 139, 172, 191, 159, 137, 223, + 172, 255, 29, 136, 159, 124, 159, 157, + 9, 0, 31, 144, 1, 191, 92, 191, + 31, 5, 7, 184, 191, 29, 8, 127, + 84, 255, 31, 3, 120, 255, 43, 9, + 1, 176, 255, 20, 63, 160, 60, 31, + 224, 226, 0, 7, 240, 247, 255, 16, + 3, 240, 255, 223, 12, 1, 224, 255, + 28, 16, 192, 115, 12, 192, 127, 60, + 64, 255, 192, 239, 111, 224, 239, 255, + 251, 160, 255, 215, 224, 223, 223, 223, + 224, 255, 255, 175, 192, 191, 191, 192, + 127, 255, 64, 255, 0, 8, 207, 0, + 0, 8, 199, 0, 0, 8, 195, 8, + 131, 0, 0, 0, 0, 0, 0, 12, + 159, 147, 8, 159, 4, 15, 12, 131, + 191, 8, 255, 4, 3, 0, 0, 0, + 2, 127, 2, 63, 2, 31, 0, 2, + 15, 2, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 5, 0, 0, 0, + 0, 4, 11, 6, 7, 3, 0, 4, + 11, 0, 4, 27, 0, 0, 0, 0, + 0, 132, 19, 127, 4, 3, 0, 192, + 127, 255, 0, 0, 0, 64, 255, 4, + 11, 0, 0, 0, 0, 0, 0, 0, + 0, 64, 127, 64, 63, 64, 31, 96, + 223, 15, 96, 255, 47, 100, 27, 239, + 15, 32, 119, 100, 19, 223, 23, 0, + 160, 247, 223, 192, 7, 255, 100, 3, + 103, 15, 16, 239, 160, 231, 239, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 144, 255, 255, 132, 19, + 223, 34, 3, 239, 160, 207, 255, 96, + 223, 7, 36, 59, 127, 0, 0, 0, + 32, 95, 0, 96, 223, 39, 0, 0, + 0, 0, 64, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 43, 0, 0, 4, + 35, 0, 32, 215, 4, 19, 0, 32, + 23, 64, 39, 44, 17, 239, 55, 70, + 1, 49, 7, 96, 7, 87, 212, 33, + 191, 23, 191, 88, 207, 183, 87, 242, + 9, 55, 3, 83, 255, 76, 1, 203, + 51, 8, 131, 72, 129, 179, 72, 137, + 103, 16, 7, 72, 1, 231, 0, 64, + 239, 64, 235, 128, 239, 0, 0, 0, + 128, 255, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 132, 0, 239, 2, + 8, 8, 0, 96, 1, 227, 0, 64, + 225, 111, 223, 0, 128, 1, 3, 99, + 31, 93, 1, 65, 11, 15, 255, 155, + 129, 195, 139, 143, 135, 167, 255, 62, + 131, 131, 207, 207, 199, 111, 199, 199, + 199, 199, 207, 199, 127, 231, 231, 231, + 239, 239, 239, 239, 127, 255, 255, 255, + 255, 255, 255, 255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 90, 239, 223, 223, 239, 36, 239, 207, + 4, 207, 36, 199, 199, 126, 231, 195, + 219, 219, 195, 231, 0, 0, 0, 36, + 199, 199, 4, 231, 0, 32, 231, 24, + 223, 223, 26, 239, 255, 255, 0, 0, + 0, 0, 64, 239, 64, 231, 0, 0, + 2, 231, 1, 239, 0, 128, 231, 1, + 231, 0, 24, 251, 251, 60, 227, 219, + 219, 227, 32, 195, 70, 227, 195, 227, + 192, 195, 227, 35, 227, 195, 211, 49, + 195, 251, 219, 248, 217, 249, 217, 193, + 195, 132, 193, 193, 18, 193, 221, 31, + 131, 129, 153, 153, 253, 241, 129, 188, + 216, 192, 192, 40, 156, 156, 5, 1, + 152, 6, 16, 56, 10, 24, 28, 82, + 56, 60, 128, 3, 0, 48, 43, 48, + 112, 60, 152, 1, 112, 35, 96, 240, + 24, 51, 224, 224, 56, 16, 201, 192, + 56, 129, 195, 228, 120, 1, 131, 199, + 117, 128, 248, 49, 3, 3, 238, 192, + 240, 57, 35, 7, 7, 27, 0, 128, + 49, 51, 172, 208, 113, 39, 3, 112, + 55, 7, 3, 46, 0, 176, 243, 35, + 164, 144, 3, 1, 132, 160, 0, 68, + 0, 1, 0, 112, 23, 19, 0, 48, + 151, 17, 16, 247, 56, 147, 211, 16, + 8, 151, 16, 243, 0, 0, 8, 147, + 0, 0, 0, 8, 211, 32, 0, 0, + 48, 211, 16, 32, 0, 0, 8, 251, + 16, 147, 0, 16, 19, 16, 27, 0, + 24, 123, 11, 16, 43, 0, 16, 59, + 16, 11, 0, 56, 251, 139, 8, 16, + 203, 4, 128, 16, 201, 4, 0, 8, + 249, 0, 32, 0, 0, 56, 121, 105, + 8, 0, 48, 125, 0, 8, 105, 0, + 8, 73, 0, 32, 8, 0, 0, 40, + 9, 0, 0, 0, 0, 8, 73, 0, + 56, 72, 124, 8, 0, 0, 0, 0, + 0, 0, 32, 0, 0, 0, 8, 104, + 0, 0, 48, 120, 8, 16, 104, 48, + 72, 0, 8, 124, 0, 0, 24, 252, + 200, 52, 128, 204, 8, 28, 8, 124, + 76, 56, 252, 92, 0, 52, 136, 252, + 12, 80, 254, 8, 68, 4, 12, 160, + 14, 8, 36, 12, 15, 172, 4, 220, + 95, 24, 224, 206, 30, 8, 196, 0, + 14, 24, 8, 156, 204, 4, 150, 31, + 8, 236, 0, 214, 238, 15, 24, 136, + 86, 8, 236, 2, 82, 254, 30, 26, + 204, 0, 114, 15, 31, 204, 2, 118, + 159, 15, 200, 111, 207, 31, 28, 3, + 79, 255, 108, 8, 95, 255, 199, 12, + 16, 245, 132, 112, 15, 6, 16, 240, + 4, 241, 74, 0, 247, 135, 0, 196, + 49, 199, 31, 12, 17, 245, 0, 192, + 231, 15, 0, 0, 4, 16, 12, 24, + 253, 4, 56, 2, 8, 12, 28, 237, + 12, 60, 229, 66, 12, 199, 128, 31, + 4, 61, 14, 8, 37, 245, 64, 207, + 2, 0, 204, 33, 117, 239, 15, 68, + 17, 255, 15, 24, 28, 16, 101, 142, + 16, 0, 32, 143, 157, 16, 16, 16, + 247, 255, 17, 48, 85, 17, 56, 144, + 49, 120, 145, 87, 51, 124, 48, 16, + 147, 98, 56, 144, 87, 98, 120, 16, + 144, 134, 124, 56, 87, 194, 252, 16, + 144, 15, 56, 254, 124, 24, 137, 24, + 56, 16, 143, 0, 126, 254, 60, 24, + 120, 124, 24, 24, 24, 190, 124, 255, + 126, 56, 16, 8, 58, 60, 254, 60, + 24, 146, 24, 124, 24, 62, 0, 126, + 255, 126, 56, 48, 254, 60, 32, 124, + 116, 62, 255, 126, 56, 100, 60, 254, + 60, 100, 28, 127, 62, 180, 60, 127, + 63, 28, 248, 63, 31, 31, 30, 12, + 252, 4, 31, 15, 15, 15, 14, 252, + 0, 29, 3, 3, 3, 6, 248, 28, + 0, 1, 1, 3, 32, 0, 0, 128, + 1, 64, 0, 0, 128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 8, 60, + 0, 24, 124, 64, 24, 60, 32, 0, + 0, 28, 128, 252, 160, 28, 64, 124, + 96, 0, 0, 28, 192, 252, 64, 4, + 200, 0, 0, 16, 96, 0, 0, 16, + 120, 4, 64, 16, 248, 20, 0, 252, + 0, 0, 0, 8, 248, 0, 32, 64, + 0, 0, 8, 216, 0, 40, 208, 96, + 32, 104, 8, 192, 32, 232, 0, 8, + 64, 32, 224, 0, 40, 0, 232, 0, + 8, 128, 0, 8, 0, 104, 64, 248, + 64, 0, 56, 68, 254, 120, 104, 96, + 104, 96, 104, 112, 40, 32, 36, 32, + 44, 104, 50, 60, 0, 56, 254, 246, + 12, 52, 36, 54, 36, 8, 246, 116, + 32, 52, 32, 32, 4, 36, 44, 44, + 254, 36, 22, 8, 108, 120, 34, 72, + 104, 16, 104, 78, 64, 120, 126, 0, + 61, 64, 248, 254, 232, 64, 26, 192, + 252, 224, 2, 208, 52, 250, 232, 0, + 20, 254, 216, 24, 254, 152, 23, 0, + 192, 250, 144, 10, 208, 252, 18, 0, + 0, 0, 20, 242, 128, 20, 240, 224, + 12, 224, 254, 0, 20, 192, 248, 4, + 194, 16, 252, 0, 32, 112, 20, 192, + 254, 32, 240, 68, 96, 64, 4, 224, + 0, 64, 0, 32, 242, 100, 32, 250, + 128, 0, 32, 254, 4, 0, 64, 0, + 0, 64, 128, 0, 4, 128, 4, 160, + 12, 224, 126, 0, 8, 118, 64, 0, + 8, 246, 4, 96, 8, 254, 64, 4, + 0, 2, 64, 0, 71, 32, 96, 112, + 0, 103, 48, 48, 48, 246, 4, 102, + 56, 56, 228, 0, 0, 37, 56, 126, + 230, 2, 40, 37, 32, 246, 226, 34, + 56, 224, 1, 48, 7, 32, 48, 252, + 0, 6, 32, 62, 5, 96, 54, 0, + 1, 64, 0, 64, 128, 0, 0, 64, + 0, 0, 7, 96, 228, 254, 51, 254, + 254, 128, 0, 30, 224, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, + 128, 224, 240, 224, 254, 254, 254, 156, + 224, 254, 254, 0, 70, 96, 244, 0, + 36, 52, 224, 4, 48, 4, 32, 0, + 0, 0, 0, 0, 0, 0, 4, 36, + 2, 64, 38, 96, 164, 240, 38, 224, + 254, 224, 51, 254, 254, 0, 0, 14, + 244, 0, 0, 3, 0, 0, 0, 0, + 0, 0, 0, 192, 64, 230, 248, 64, + 230, 254, 254, 254, 222, 64, 228, 254, + 252, 246, 0, 110, 224, 236, 252, 252, + 196, 96, 68, 0, 0, 0, 0, 0, + 0, 32, 196, 0, 0, 24, 254, 254, + 0, 52, 252, 252, 68, 2, 228, 34, + 100, 0, 19, 192, 102, 254, 23, 228, + 254, 254, 246, 17, 230, 68, 25, 254, + 230, 0, 8, 0, 4, 70, 4, 0, + 2, 206, 4, 4, 1, 255, 6, 142, + 0, 195, 223, 134, 4, 7, 192, 6, + 15, 227, 159, 6, 6, 7, 223, 2, + 14, 32, 4, 64, 6, 4, 2, 66, + 6, 7, 128, 159, 128, 223, 32, 0, + 32, 2, 0, 0, 36, 0, 6, 128, + 255, 1, 191, 0, 32, 2, 0, 2, + 22, 3, 255, 150, 66, 148, 167, 64, + 175, 98, 212, 0, 191, 34, 208, 1, + 98, 240, 3, 255, 4, 128, 0, 2, + 248, 0, 4, 160, 4, 192, 16, 128, + 54, 240, 0, 192, 1, 0, 18, 224, + 224, 49, 251, 192, 129, 75, 255, 160, + 128, 127, 82, 193, 224, 191, 50, 192, + 225, 193, 99, 254, 128, 195, 223, 74, + 208, 0, 159, 75, 252, 224, 1, 223, + 18, 240, 131, 127, 248, 233, 129, 3, + 3, 199, 207, 6, 240, 193, 37, 224, + 131, 7, 149, 48, 195, 7, 223, 11, + 32, 244, 135, 71, 0, 229, 227, 79, + 66, 65, 15, 6, 41, 231, 147, 8, + 65, 135, 95, 158, 1, 103, 199, 7, + 79, 5, 9, 107, 200, 231, 7, 15, + 4, 3, 29, 25, 65, 199, 135, 121, + 27, 231, 7, 15, 15, 31, 31, 0, + 1, 239, 135, 11, 143, 9, 203, 24, + 195, 199, 11, 175, 25, 65, 23, 207, + 27, 0, 207, 43, 223, 31, 1, 135, + 23, 207, 143, 9, 195, 20, 25, 131, + 59, 239, 207, 0, 65, 207, 20, 59, + 1, 103, 255, 223, 159, 195, 135, 14, + 207, 143, 25, 100, 207, 1, 199, 58, + 239, 57, 0, 65, 64, 207, 170, 255, + 155, 1, 135, 8, 159, 80, 8, 203, + 200, 207, 195, 199, 64, 203, 80, 25, + 67, 128, 231, 0, 16, 24, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 143, 0, 0, 0, + 8, 159, 16, 8, 0, 16, 24, 132, + 223, 199, 80, 25, 65, 0, 160, 0, + 231, 16, 9, 24, 143, 25, 0, 16, + 29, 0, 4, 207, 4, 223, 48, 31, + 1, 64, 64, 2, 239, 0, 128, 199, + 0, 0, 0, 0, 0, 64, 192, 16, + 15, 130, 255, 135, 4, 255, 128, 199, + 20, 191, 13, 2, 223, 0, 0, 64, + 64, 144, 31, 135, 132, 183, 199, 78, + 255, 191, 71, 0, 4, 255, 134, 191, + 127, 193, 40, 199, 9, 0, 18, 127, + 223, 132, 255, 128, 40, 135, 17, 160, + 25, 0, 54, 255, 251, 159, 29, 20, + 255, 191, 64, 16, 40, 131, 31, 56, + 3, 119, 63, 72, 7, 49, 248, 15, + 103, 127, 57, 32, 24, 159, 39, 240, + 15, 255, 123, 33, 232, 255, 207, 255, + 113, 128, 115, 176, 31, 143, 243, 176, + 7, 223, 255, 56, 143, 15, 255, 58, + 253, 207, 7, 239, 56, 159, 31, 127, + 27, 254, 255, 191, 159, 49, 255, 63, + 31, 40, 255, 127, 16, 127, 16, 255, + 32, 255, 32, 127, 32, 255, 0, 0, + 1, 252, 5, 255, 247, 12, 251, 247, + 12, 255, 255, 28, 247, 247, 247, 28, + 239, 255, 255, 44, 255, 239, 247, 56, + 255, 239, 255, 16, 159, 16, 255, 48, + 247, 191, 56, 247, 239, 255, 88, 255, + 223, 191, 136, 223, 191, 248, 191, 191, + 191, 255, 255, 216, 255, 127, 191, 223, + 48, 255, 127, 160, 255, 239, 192, 63, + 255, 64, 251, 224, 251, 207, 63, 248, + 251, 247, 239, 223, 191, 56, 255, 239, + 223, 0, 72, 247, 159, 128, 63, 0, + 0, 0, 16, 231, 44, 251, 251, 207, + 196, 255, 31, 31, 8, 243, 66, 253, + 15, 196, 253, 143, 15, 74, 255, 247, + 15, 60, 249, 243, 247, 199, 244, 251, + 231, 7, 7, 7, 8, 247, 24, 255, + 199, 24, 251, 7, 216, 243, 3, 3, + 227, 168, 115, 3, 249, 200, 19, 51, + 252, 200, 3, 241, 253, 196, 255, 249, + 254, 132, 127, 255, 98, 127, 17, 254, + 100, 61, 16, 255, 47, 127, 63, 63, + 19, 50, 52, 31, 1, 59, 60, 159, + 3, 0, 123, 2, 31, 4, 31, 44, + 159, 19, 127, 57, 63, 3, 1, 31, + 8, 1, 44, 137, 0, 159, 48, 3, + 223, 79, 159, 143, 131, 2, 127, 8, + 1, 52, 163, 7, 191, 68, 3, 255, + 36, 130, 127, 19, 143, 207, 15, 52, + 131, 31, 255, 53, 207, 129, 91, 127, + 28, 139, 0, 83, 63, 199, 135, 11, + 3, 81, 63, 30, 7, 7, 1, 82, + 27, 231, 167, 3, 0, 54, 103, 23, + 1, 59, 54, 231, 87, 3, 58, 35, + 227, 167, 57, 38, 163, 215, 49, 71, + 243, 227, 211, 254, 106, 99, 7, 51, + 253, 98, 227, 35, 249, 42, 243, 23, + 3, 0, 3, 251, 241, 8, 19, 64, + 121, 0, 0, 64, 241, 0, 128, 254, + 0, 0, 0, 0, 128, 255, 0, 0, + 64, 243, 0, 64, 247, 0, 0, 0, + 129, 255, 253, 2, 249, 4, 209, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 64, 119, 0, 64, 115, + 0, 0, 4, 193, 0, 0, 0, 4, + 209, 0, 0, 0, 64, 99, 128, 255, + 0, 16, 131, 16, 135, 0, 0, 0, + 132, 193, 251, 0, 0, 32, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64, 103, 0, 68, 209, 231, 16, + 7, 132, 217, 243, 14, 241, 233, 27, + 2, 249, 14, 252, 232, 59, 0, 64, + 227, 0, 0, 0, 140, 224, 41, 231, + 142, 254, 240, 40, 239, 2, 62, 130, + 191, 255, 2, 255, 2, 191, 134, 255, + 242, 247, 18, 127, 5, 0, 10, 255, + 8, 0, 0, 4, 50, 0, 0, 4, + 114, 0, 12, 242, 40, 0, 0, 0, + 0, 0, 0, 0, 12, 240, 8, 0, + 0, 28, 112, 40, 4, 64, 199, 0, + 4, 240, 128, 243, 4, 241, 0, 144, + 0, 227, 144, 8, 231, 128, 199, 0, + 64, 135, 72, 8, 199, 70, 63, 225, + 135, 128, 135, 18, 191, 0, 94, 69, + 228, 24, 4, 7, 14, 40, 230, 88, + 138, 72, 92, 7, 146, 232, 12, 135, + 194, 240, 3, 7, 4, 238, 41, 63, + 28, 6, 37, 255, 206, 14, 49, 79, + 8, 12, 131, 71, 224, 3, 1, 138, + 1, 204, 33, 240, 14, 14, 195, 158, + 60, 97, 224, 6, 7, 86, 207, 30, + 12, 15, 75, 192, 143, 62, 7, 88, + 30, 28, 15, 11, 129, 15, 94, 39, + 131, 31, 62, 14, 73, 15, 62, 7, + 140, 63, 190, 11, 175, 31, 63, 127, + 62, 15, 15, 128, 7, 31, 63, 127, + 255, 63, 60, 192, 15, 3, 187, 255, + 255, 127, 124, 30, 15, 112, 126, 62, + 31, 184, 254, 254, 126, 31, 96, 254, + 63, 208, 246, 255, 127, 128, 255, 56, + 255, 254, 255, 16, 255, 24, 239, 239, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 24, 207, 207, 8, 223, + 16, 223, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 255, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8, 255, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 8, 191, 16, 223, 0, 16, 159, 0, + 0, 0, 16, 143, 0, 16, 7, 0, + 0, 0, 0, 48, 3, 63, 8, 127, + 8, 111, 8, 71, 40, 199, 31, 48, + 1, 19, 64, 127, 32, 17, 16, 5, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 16, + 1, 8, 207, 0, 0, 0, 32, 1, + 8, 143, 0, 4, 191, 0, 12, 175, + 159, 0, 4, 143, 0, 8, 191, 0, + 0, 72, 159, 255, 0, 4, 15, 120, + 31, 13, 0, 249, 8, 95, 0, 0, + 16, 15, 0, 0, 72, 223, 240, 8, + 255, 8, 191, 0, 64, 224, 64, 232, + 64, 104, 192, 120, 253, 64, 104, 66, + 191, 96, 128, 252, 132, 31, 248, 0, + 2, 63, 8, 63, 40, 127, 4, 82, + 127, 47, 32, 0, 0, 64, 0, 16, + 63, 16, 191, 2, 255, 128, 120, 32, + 5, 160, 6, 112, 0, 32, 7, 160, + 3, 48, 12, 223, 63, 128, 56, 128, + 16, 36, 159, 87, 132, 143, 0, 48, + 63, 95, 8, 31, 80, 31, 1, 32, + 207, 32, 79, 12, 223, 15, 12, 255, + 135, 40, 199, 47, 96, 15, 5, 112, + 15, 47, 39, 64, 55, 32, 15, 32, + 7, 176, 143, 23, 8, 216, 227, 207, + 19, 9, 32, 159, 248, 243, 231, 143, + 27, 25, 192, 73, 29, 224, 207, 207, + 13, 152, 251, 247, 140, 248, 249, 243, + 231, 199, 206, 160, 227, 247, 80, 251, + 231, 168, 253, 243, 231, 8, 249, 48, + 243, 231, 8, 251, 48, 247, 239, 192, + 207, 207, 152, 243, 231, 239, 32, 207, + 152, 231, 239, 255, 48, 207, 223, 72, + 239, 159, 56, 223, 223, 159, 80, 191, + 255, 36, 223, 191, 8, 159, 0, 40, + 223, 159, 0, 4, 255, 0, 4, 239, + 32, 31, 48, 159, 223, 8, 207, 0, + 0, 64, 191, 12, 255, 239, 44, 247, + 207, 159, 64, 255, 8, 239, 8, 231, + 0, 56, 239, 143, 223, 40, 231, 159, + 36, 251, 143, 32, 207, 40, 243, 223, + 32, 159, 0, 36, 255, 223, 48, 135, + 95, 8, 179, 32, 223, 0, 8, 195, + 8, 193, 16, 143, 16, 207, 0, 0, + 0, 8, 65, 0, 24, 193, 199, 0, + 8, 197, 24, 217, 195, 8, 201, 24, + 137, 193, 48, 225, 255, 44, 223, 141, + 223, 16, 193, 4, 255, 8, 9, 16, + 129, 0, 44, 191, 149, 159, 16, 1, + 56, 153, 129, 151, 8, 25, 64, 191, + 24, 157, 1, 108, 63, 25, 23, 63, + 12, 191, 29, 36, 127, 21, 44, 119, + 21, 7, 100, 127, 39, 127, 12, 239, + 41, 12, 255, 121, 104, 73, 7, 239, + 72, 107, 79, 120, 239, 33, 3, 7, + 160, 1, 111, 8, 237, 136, 239, 207, + 16, 97, 216, 253, 65, 71, 79, 252, + 247, 251, 1, 3, 3, 95, 192, 15, + 159, 16, 129, 20, 239, 195, 24, 255, + 211, 24, 191, 243, 156, 255, 207, 203, + 15, 82, 247, 195, 7, 176, 193, 1, + 79, 88, 239, 217, 3, 0, 0, 24, + 207, 201, 176, 235, 129, 15, 92, 247, + 191, 175, 1, 248, 111, 111, 227, 129, + 7, 254, 255, 255, 239, 127, 107, 65, + 3, 252, 247, 255, 239, 255, 233, 1, + 252, 255, 247, 255, 239, 239, 193, 192, + 237, 232, 112, 247, 255, 247, 192, 246, + 240, 32, 247, 36, 247, 255, 16, 255, + 242, 251, 239, 239, 230, 232, 74, 255, + 239, 238, 192, 239, 236, 128, 238, 156, + 255, 247, 247, 239, 248, 253, 251, 243, + 247, 199, 224, 251, 243, 231, 212, 254, + 249, 235, 227, 242, 254, 253, 249, 251, + 243, 114, 255, 249, 251, 243, 126, 254, + 253, 249, 251, 243, 247, 200, 251, 231, + 231, 254, 253, 251, 243, 243, 231, 135, + 151, 211, 253, 251, 247, 39, 39, 221, + 251, 247, 247, 231, 239, 239, 251, 247, + 231, 239, 239, 239, 207, 207, 207, 255, + 247, 231, 247, 239, 239, 118, 255, 255, + 247, 247, 231, 132, 251, 231, 44, 243, + 243, 231, 32, 247, 4, 247, 164, 243, + 231, 239, 252, 239, 231, 239, 207, 207, + 207, 252, 223, 207, 223, 159, 191, 191, + 252, 255, 159, 191, 63, 127, 127, 248, + 127, 127, 127, 255, 255, 56, 255, 255, + 255, 0, 0, 0, 0, 0, 0, 224, + 223, 223, 223, 240, 223, 255, 255, 233, + 248, 223, 255, 239, 232, 240, 248, 255, + 239, 236, 240, 252, 124, 223, 254, 236, + 240, 252, 60, 220, 236, 240, 252, 196, + 216, 254, 254, 152, 232, 248, 255, 20, + 249, 252, 68, 243, 255, 56, 192, 248, + 254, 4, 246, 12, 244, 208, 12, 245, + 241, 20, 249, 252, 4, 251, 8, 224, + 8, 192, 32, 255, 4, 255, 24, 241, + 253, 0, 0, 8, 240, 16, 255, 4, + 251, 8, 248, 0, 0, 0, 8, 240, + 0, 4, 255, 0, 4, 251, 12, 255, + 224, 0, 8, 192, 8, 129, 8, 1, + 28, 223, 131, 247, 247, 127, 127, 127, + 127, 127, 127, 127, 251, 63, 63, 199, + 63, 63, 63, 63, 28, 191, 247, 31, + 247, 31, 31, 159, 63, 31, 31, 31, + 28, 15, 241, 79, 58, 15, 224, 71, + 15, 213, 15, 7, 135, 15, 15, 42, + 7, 192, 7, 81, 7, 3, 7, 164, + 3, 3, 7, 24, 144, 1, 79, 3, + 3, 1, 128, 3, 168, 176, 1, 3, + 26, 0, 128, 0, 69, 1, 0, 1, + 168, 32, 0, 1, 24, 0, 16, 16, + 12, 16, 0, 136, 32, 0, 0, 8, + 0, 72, 64, 0, 17, 0, 32, 24, + 96, 0, 8, 0, 16, 16, 28, 16, + 16, 0, 12, 0, 128, 24, 144, 4, + 56, 0, 0, 16, 48, 64, 64, 48, + 66, 0, 56, 8, 0, 8, 42, 1, + 0, 0, 50, 0, 64, 32, 56, 64, + 0, 104, 120, 0, 16, 0, 198, 98, + 1, 32, 4, 242, 0, 0, 0, 0, + 132, 144, 16, 0, 208, 64, 1, 32, + 216, 2, 0, 2, 0, 216, 0, 16, + 64, 32, 240, 0, 64, 0, 0, 32, + 0, 192, 11, 16, 64, 66, 230, 4, + 4, 16, 0, 0, 38, 0, 0, 0, + 131, 32, 1, 64, 179, 1, 0, 64, + 4, 0, 55, 0, 1, 8, 2, 0, + 23, 128, 8, 16, 0, 135, 0, 0, + 0, 16, 225, 4, 64, 32, 48, 229, + 64, 64, 16, 0, 0, 165, 0, 16, + 128, 64, 0, 165, 16, 0, 0, 0, + 1, 1, 7, 0, 32, 1, 4, 0, + 130, 0, 32, 128, 0, 145, 128, 16, + 64, 20, 128, 0, 175, 0, 32, 0, + 16, 16, 0, 163, 1, 160, 0, 128, + 11, 0, 0, 0, 128, 0, 8, 32, + 26, 1, 0, 16, 2, 0, 17, 4, + 0, 145, 0, 32, 32, 144, 0, 0, + 35, 12, 4, 16, 41, 92, 2, 0, + 131, 252, 0, 128, 139, 124, 12, 64, + 0, 8, 0, 19, 252, 28, 80, 80, + 0, 1, 86, 252, 12, 1, 0, 2, + 254, 0, 68, 14, 32, 97, 220, 128, + 0, 29, 222, 30, 4, 0, 160, 0, + 16, 141, 206, 158, 6, 0, 0, 0, + 4, 254, 1, 204, 32, 32, 48, 2, + 0, 20, 239, 7, 144, 15, 16, 152, + 7, 7, 0, 20, 255, 6, 0, 10, + 255, 23, 16, 2, 66, 254, 16, 80, + 0, 0, 16, 16, 25, 206, 19, 0, + 2, 238, 2, 230, 8, 17, 66, 198, + 2, 64, 0, 34, 214, 1, 34, 198, + 0, 8, 16, 128, 48, 193, 222, 64, + 0, 65, 206, 0, 0, 0, 8, 144, + 0, 73, 204, 208, 4, 88, 241, 16, + 16, 64, 0, 130, 214, 32, 131, 140, + 198, 0, 2, 206, 0, 9, 156, 249, + 1, 140, 0, 4, 246, 0, 0, 8, + 253, 133, 136, 230, 8, 128, 0, 0, + 137, 8, 255, 2, 161, 2, 1, 0, + 33, 0, 0, 17, 64, 17, 6, 198, + 198, 48, 19, 4, 98, 196, 3, 1, + 70, 224, 194, 2, 18, 192, 31, 17, + 0, 19, 120, 254, 31, 7, 6, 30, + 194, 192, 255, 159, 154, 192, 254, 158, + 4, 48, 142, 6, 98, 128, 14, 14, + 0, 216, 252, 238, 12, 8, 96, 30, + 28, 48, 236, 28, 128, 0, 0, 80, + 248, 24, 112, 232, 56, 56, 16, 248, + 16, 224, 80, 232, 48, 176, 252, 48, + 16, 128, 0, 2, 0, 192, 32, 32, + 32, 32, 8, 244, 128, 0, 0, 2, + 2, 2, 0, 32, 34, 40, 246, 32, + 8, 244, 8, 228, 20, 128, 253, 28, + 144, 196, 252, 4, 192, 137, 8, 224, + 64, 161, 0, 48, 0, 168, 192, 32, + 8, 192, 112, 0, 96, 40, 0, 32, + 8, 32, 0, 64, 64, 96, 12, 0, + 32, 4, 37, 4, 64, 132, 97, 0, + 192, 2, 96, 224, 0, 32, 226, 52, + 0, 236, 234, 48, 238, 233, 32, 225, + 36, 128, 224, 16, 254, 0, 0, 12, + 136, 200, 6, 128, 128, 6, 0, 192, + 4, 200, 10, 8, 204, 7, 8, 136, + 136, 14, 8, 152, 206, 12, 136, 222, + 40, 150, 240, 12, 8, 142, 6, 12, + 24, 7, 24, 8, 8, 11, 8, 24, + 14, 83, 40, 8, 190, 128, 120, 10, + 158, 254, 192, 65, 56, 240, 152, 8, + 14, 64, 128, 128, 255, 16, 56, 0, + 0, 0, 150, 254, 240, 34, 16, 22, + 32, 4, 132, 16, 252, 96, 0, 188, + 80, 64, 156, 80, 0, 20, 8, 16, + 194, 24, 16, 188, 194, 16, 0, 20, + 0, 144, 48, 16, 144, 16, 0, 48, + 24, 16, 80, 16, 32, 192, 16, 40, + 128, 48, 128, 16, 0, 0, 24, 48, + 48, 36, 48, 48, 64, 48, 2, 48, + 129, 0, 48, 0, 67, 32, 32, 49, + 96, 49, 48, 36, 32, 51, 184, 32, + 55, 49, 32, 112, 37, 33, 32, 24, + 44, 35, 120, 45, 99, 99, 96, 188, + 56, 47, 103, 97, 98, 136, 62, 114, + 140, 124, 110, 116, 142, 96, 120, 126, + 126, 68, 56, 104, 126, 112, 120, 127, + 99, 112, 124, 49, 96, 103, 80, 57, + 64, 95, 71, 193, 168, 93, 225, 127, + 160, 243, 95, 144, 79, 127, 8, 92, + 176, 71, 115, 95, 0, 62, 96, 112, + 125, 79, 113, 0, 223, 32, 32, 48, + 57, 47, 127, 79, 128, 71, 96, 33, + 63, 132, 32, 67, 152, 49, 63, 3, + 128, 1, 160, 35, 39, 89, 0, 33, + 57, 59, 40, 32, 39, 240, 49, 7, + 51, 239, 160, 15, 255, 25, 32, 0, + 18, 86, 0, 0, 2, 39, 113, 0, + 0, 31, 231, 78, 16, 16, 16, 247, + 1, 16, 112, 16, 63, 255, 32, 62, + 34, 0, 190, 36, 0, 252, 41, 0, + 0, 249, 32, 248, 6, 8, 8, 25, + 8, 8, 0, 96, 240, 254, 150, 0, + 0, 8, 190, 9, 0, 0, 7, 4, + 4, 4, 184, 4, 0, 184, 62, 64, + 252, 1, 12, 160, 188, 60, 139, 28, + 0, 0, 36, 33, 184, 248, 161, 248, + 252, 52, 132, 0, 48, 64, 188, 0, + 80, 128, 60, 48, 136, 254, 84, 4, + 140, 62, 64, 58, 216, 4, 206, 56, + 16, 0, 80, 254, 24, 64, 8, 72, + 132, 0, 96, 154, 16, 33, 232, 24, + 137, 192, 196, 0, 9, 128, 198, 0, + 4, 0, 0, 129, 0, 32, 1, 8, + 40, 206, 16, 0, 0, 0, 0, 0, + 32, 48, 0, 0, 8, 222, 0, 0, + 0, 208, 246, 48, 0, 64, 32, 0, + 8, 254, 4, 12, 0, 0, 0, 2, + 8, 0, 64, 96, 0, 0, 164, 14, + 112, 64, 0, 0, 0, 32, 96, 0, + 0, 8, 255, 16, 242, 6, 12, 30, + 64, 224, 0, 64, 192, 20, 63, 240, + 0, 16, 241, 2, 14, 0, 0, 0, + 8, 254, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 224, + 0, 0, 0, 64, 128, 0, 21, 0, + 31, 243, 26, 12, 255, 242, 4, 30, + 0, 16, 246, 0, 0, 20, 14, 254, + 2, 8, 0, 0, 240, 255, 226, 160, + 192, 36, 12, 230, 0, 66, 0, 224, + 4, 8, 32, 246, 32, 247, 160, 255, + 128, 141, 4, 0, 30, 160, 10, 4, + 14, 192, 242, 224, 64, 243, 68, 4, + 211, 200, 6, 247, 225, 128, 241, 128, + 113, 152, 4, 55, 115, 80, 23, 255, + 146, 0, 6, 243, 132, 0, 227, 136, + 0, 255, 22, 2, 2, 4, 25, 0, + 2, 0, 49, 2, 2, 15, 32, 7, + 12, 0, 0, 60, 1, 1, 0, 3, + 51, 1, 1, 1, 2, 96, 1, 139, + 8, 0, 116, 0, 0, 0, 3, 3, + 3, 0, 64, 1, 192, 0, 135, 128, + 131, 128, 129, 1, 7, 128, 0, 0, + 0, 0, 0, 0, 1, 135, 0, 1, + 199, 1, 255, 0, 0, 0, 3, 127, + 128, 0, 2, 192, 3, 63, 96, 2, + 112, 3, 31, 56, 7, 15, 63, 64, + 0, 7, 7, 31, 32, 5, 3, 48, + 6, 15, 24, 5, 1, 28, 7, 0, + 7, 31, 4, 15, 10, 3, 16, 12, + 7, 0, 10, 1, 8, 0, 12, 3, + 4, 2, 0, 0, 12, 1, 6, 8, + 2, 0, 8, 3, 4, 0, 8, 1, + 0, 0, 0, 8, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 8, 2, + 8, 0, 0, 8, 4, 0, 8, 8, + 0, 8, 16, 0, 0, 16, 16, 24, + 48, 48, 0, 0, 36, 32, 32, 0, + 24, 112, 112, 36, 96, 96, 0, 126, + 32, 80, 48, 48, 112, 32, 126, 96, + 112, 112, 112, 80, 96, 60, 48, 248, + 240, 48, 36, 176, 184, 219, 64, 160, + 120, 80, 160, 64, 108, 112, 80, 112, + 168, 95, 192, 16, 96, 96, 112, 8, + 177, 128, 96, 96, 128, 219, 0, 8, + 32, 32, 0, 0, 90, 72, 160, 160, + 64, 36, 128, 128, 197, 16, 160, 72, + 16, 122, 224, 32, 32, 168, 232, 181, + 0, 32, 40, 40, 0, 75, 176, 128, + 40, 160, 251, 240, 0, 64, 8, 32, + 0, 208, 145, 192, 64, 192, 129, 64, + 64, 165, 0, 0, 0, 0, 24, 192, + 208, 20, 128, 192, 32, 128, 24, 64, + 64, 36, 192, 192, 66, 128, 128, 36, + 64, 64, 0, 24, 160, 0, 83, 128, + 0, 128, 0, 136, 224, 128, 16, 192, + 44, 0, 240, 0, 129, 0, 0, 0, + 0, 0, 36, 128, 128, 0, 0, 0, + 74, 128, 208, 128, 36, 0, 0, 24, + 240, 240, 0, 66, 0, 0, 129, 128, + 128, 0, 129, 0, 0, 0, 8, 224, + 0, 8, 240, 8, 224, 0, 0, 0, + 0, 0, 0, 8, 240, 0, 0, 24, + 248, 248, 0, 0, 0, 8, 240, 0, + 0, 8, 248, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 16, + 252, 0, 0, 12, 64, 252, 0, 0, + 0, 16, 244, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 96, 0, 0, 4, + 116, 2, 64, 16, 240, 0, 4, 52, + 0, 0, 0, 4, 60, 32, 64, 0, + 0, 0, 2, 192, 4, 124, 33, 128, + 0, 0, 1, 0, 0, 0, 36, 252, + 64, 2, 128, 0, 0, 16, 244, 0, + 32, 192, 4, 236, 4, 204, 50, 0, + 252, 224, 0, 4, 196, 32, 240, 0, + 68, 192, 192, 32, 244, 80, 254, 224, + 60, 128, 236, 252, 252, 236, 0, 226, + 254, 240, 192, 200, 240, 244, 224, 208, + 254, 254, 240, 24, 244, 246, 144, 244, + 254, 32, 250, 32, 224, 0, 96, 192, + 240, 64, 224, 160, 0, 240, 192, 192, + 96, 192, 128, 224, 192, 0, 192, 128, + 0, 0, 36, 255, 255, 0, 0, 0, + 8, 246, 0, 16, 240, 66, 255, 255, + 0, 0, 0, 0, 32, 251, 0, 145, + 255, 242, 255, 56, 242, 226, 243, 80, + 224, 251, 100, 251, 241, 255, 0, 8, + 243, 28, 255, 247, 226, 8, 255, 0, + 8, 230, 52, 247, 224, 225, 12, 255, + 238, 0, 4, 239, 4, 231, 8, 236, + 0, 34, 223, 224, 88, 252, 225, 239, + 80, 224, 235, 10, 255, 248, 0, 4, + 199, 128, 239, 196, 207, 227, 231, 74, + 191, 240, 225, 0, 10, 255, 242, 0, + 0, 72, 240, 229, 136, 248, 255, 64, + 231, 4, 199, 8, 232, 76, 231, 224, + 247, 100, 247, 228, 251, 116, 246, 240, + 247, 255, 4, 240, 46, 207, 224, 240, + 255, 18, 199, 247, 2, 247, 30, 244, + 240, 242, 255, 138, 240, 243, 0, 9, + 239, 247, 9, 231, 255, 5, 227, 243, + 1, 242, 5, 244, 251, 68, 255, 0, + 2, 249, 0, 2, 253, 1, 240, 0, + 33, 242, 0, 128, 192, 129, 240, 64, + 129, 248, 192, 2, 255, 0, 129, 250, + 64, 16, 0, 1, 242, 0, 0, 1, + 250, 0, 0, 0, 0, 0, 1, 254, + 128, 96, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 128, 64, 0, 0, 0, + 0, 0, 0, 128, 96, 0, 1, 250, + 0, 1, 254, 0, 0, 0, 0, 0, + 0, 0, 0, 128, 32, 0, 1, 250, + 0, 128, 96, 128, 32, 0, 0, 0, + 0, 129, 251, 0, 0, 0, 128, 64, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 96, 0, 0, 0, 2, 251, 0, + 131, 255, 255, 192, 145, 253, 1, 64, + 152, 63, 3, 128, 2, 253, 24, 31, + 7, 70, 255, 253, 128, 103, 252, 253, + 125, 1, 0, 166, 254, 63, 3, 192, + 220, 62, 29, 15, 64, 64, 126, 126, + 30, 12, 13, 103, 65, 218, 60, 14, + 108, 195, 192, 56, 110, 238, 193, 255, + 124, 28, 110, 238, 142, 136, 197, 225, + 205, 60, 238, 142, 193, 227, 46, 124, + 252, 206, 192, 249, 28, 204, 204, 197, + 227, 231, 174, 120, 220, 220, 193, 199, + 188, 216, 216, 200, 225, 207, 95, 12, + 252, 248, 248, 232, 193, 177, 30, 228, + 192, 143, 65, 127, 129, 197, 71, 216, + 193, 159, 0, 17, 103, 224, 128, 31, + 33, 119, 200, 4, 252, 148, 236, 192, + 19, 3, 127, 248, 170, 252, 252, 152, + 3, 96, 144, 129, 196, 252, 128, 35, + 134, 254, 246, 1, 16, 128, 8, 254, + 100, 254, 32, 0, 6, 251, 251, 26, + 255, 223, 132, 24, 159, 6, 164, 249, + 96, 129, 61, 126, 253, 15, 15, 64, + 60, 255, 13, 79, 2, 37, 255, 31, + 7, 8, 77, 254, 191, 15, 79, 13, + 15, 7, 0, 2, 31, 230, 15, 79, + 13, 15, 2, 157, 159, 111, 15, 15, + 7, 231, 15, 7, 39, 27, 31, 15, + 219, 7, 39, 7, 31, 27, 31, 102, + 55, 7, 31, 59, 231, 3, 19, 3, + 63, 55, 63, 82, 27, 63, 119, 239, + 1, 9, 1, 3, 127, 111, 127, 122, + 13, 1, 127, 255, 239, 215, 0, 4, + 4, 255, 223, 255, 126, 0, 6, 96, + 249, 223, 255, 56, 240, 240, 191, 60, + 226, 242, 176, 253, 36, 224, 248, 126, + 224, 240, 178, 242, 240, 248, 43, 64, + 240, 176, 242, 221, 240, 176, 240, 240, + 240, 248, 230, 248, 216, 230, 224, 240, + 255, 248, 216, 248, 248, 224, 228, 228, + 224, 103, 252, 204, 252, 224, 204, 226, + 236, 192, 200, 192, 255, 254, 246, 254, + 252, 192, 128, 152, 128, 79, 255, 247, + 255, 254, 48, 250, 251, 255, 128, 0, + 32, 0, 62, 255, 251, 159, 7, 96, + 124, 253, 15, 15, 64, 0, 60, 31, + 13, 79, 71, 104, 77, 15, 3, 94, + 31, 15, 79, 13, 7, 231, 31, 15, + 79, 13, 15, 7, 253, 15, 111, 15, + 15, 29, 31, 15, 231, 7, 39, 39, + 27, 27, 31, 254, 51, 7, 7, 31, + 63, 59, 63, 71, 3, 19, 3, 55, + 255, 1, 25, 1, 3, 63, 127, 111, + 127, 243, 0, 12, 127, 255, 239, 255, + 94, 4, 0, 1, 255, 223, 124, 6, + 224, 249, 223, 191, 126, 0, 66, 240, + 240, 191, 255, 60, 226, 242, 176, 248, + 94, 224, 240, 243, 178, 252, 121, 192, + 48, 243, 240, 248, 255, 224, 240, 176, + 240, 242, 242, 240, 248, 247, 240, 248, + 184, 240, 226, 242, 240, 255, 248, 216, + 248, 248, 224, 224, 230, 224, 199, 252, + 204, 252, 204, 192, 227, 238, 238, 192, + 200, 200, 255, 246, 246, 254, 252, 192, + 128, 144, 144, 255, 255, 243, 255, 254, + 128, 0, 48, 0, 90, 251, 255, 6, + 96, 62, 253, 253, 31, 7, 64, 122, + 255, 15, 15, 67, 0, 60, 31, 12, + 207, 71, 126, 63, 15, 207, 205, 15, + 7, 215, 63, 31, 79, 12, 15, 7, + 187, 31, 15, 15, 15, 13, 15, 231, + 15, 103, 71, 29, 29, 31, 125, 7, + 7, 7, 31, 31, 27, 231, 51, 51, + 3, 63, 51, 59, 195, 17, 17, 119, + 119, 255, 25, 9, 1, 3, 63, 127, + 239, 239, 255, 12, 12, 0, 1, 127, + 255, 207, 255, 91, 4, 6, 0, 255, + 223, 93, 0, 2, 224, 249, 159, 122, + 2, 240, 240, 191, 191, 102, 0, 227, + 60, 255, 62, 192, 225, 243, 48, 248, + 118, 224, 240, 49, 240, 248, 153, 192, + 49, 243, 252, 203, 224, 240, 48, 240, + 248, 173, 240, 48, 176, 243, 240, 126, + 248, 56, 240, 240, 227, 224, 231, 248, + 184, 184, 226, 226, 224, 24, 248, 224, + 231, 252, 156, 248, 224, 198, 192, 36, + 252, 192, 131, 222, 220, 196, 194, 222, + 132, 132, 62, 206, 254, 252, 192, 128, + 129, 207, 12, 66, 239, 8, 61, 239, + 255, 254, 128, 0, 128, 8, 1, 231, + 216, 255, 0, 0, 24, 0, 0, 2, + 255, 2, 247, 0, 0, 0, 2, 255, + 64, 24, 0, 136, 0, 0, 1, 255, + 32, 24, 68, 0, 16, 64, 0, 128, + 16, 80, 8, 16, 0, 28, 16, 16, + 24, 0, 56, 0, 8, 28, 6, 0, + 0, 80, 0, 24, 192, 16, 48, 128, + 16, 32, 24, 0, 160, 56, 48, 128, + 16, 0, 64, 0, 128, 32, 160, 24, + 0, 48, 8, 56, 160, 48, 32, 1, + 0, 65, 255, 32, 0, 0, 48, 0, + 56, 0, 0, 0, 64, 48, 0, 32, + 40, 64, 56, 0, 40, 16, 32, 32, + 0, 8, 0, 16, 16, 18, 255, 0, + 48, 16, 16, 240, 0, 0, 28, 16, + 16, 8, 112, 0, 8, 12, 240, 4, + 0, 14, 8, 244, 255, 0, 4, 5, + 14, 225, 231, 0, 0, 7, 200, 255, + 2, 2, 194, 231, 1, 0, 209, 247, + 255, 0, 1, 165, 255, 231, 255, 0, + 2, 247, 74, 255, 231, 255, 20, 247, + 247, 148, 255, 231, 255, 0, 0, 0, + 8, 227, 63, 127, 127, 127, 51, 227, + 191, 63, 31, 31, 31, 67, 195, 239, + 63, 15, 15, 15, 99, 227, 255, 24, + 103, 231, 57, 31, 71, 199, 239, 14, + 31, 31, 31, 48, 207, 207, 16, 223, + 1, 14, 19, 0, 30, 31, 34, 12, + 223, 2, 8, 102, 0, 29, 159, 239, + 37, 32, 9, 31, 5, 241, 1, 3, + 255, 1, 10, 113, 219, 10, 241, 203, + 10, 243, 27, 0, 2, 247, 8, 25, + 0, 2, 255, 8, 1, 0, 64, 255, + 0, 36, 3, 15, 0, 4, 35, 12, + 51, 3, 36, 115, 47, 0, 20, 243, + 27, 8, 1, 16, 25, 0, 16, 17, + 20, 241, 1, 32, 15, 60, 240, 0, + 8, 14, 116, 192, 0, 30, 207, 230, + 248, 0, 28, 143, 223, 227, 159, 0, + 0, 30, 31, 65, 0, 0, 128, 0}; +} + +#endif \ No newline at end of file diff --git a/src/Components/UI.cpp b/src/Components/UI.cpp index 1df5cee..6515ea0 100644 --- a/src/Components/UI.cpp +++ b/src/Components/UI.cpp @@ -122,7 +122,8 @@ void UI::fnKeyAction() if (konami_progress == 9) { konami_progress = 0; //Easter egg Entence Point - UI::scrollText("Hello there", 0x00FFFF); + // UI::scrollText("Hello there", 0x00FFFF); + Redacted::run(); } break; case 0x56: @@ -315,7 +316,8 @@ void UI::fnKeyAction() case 0x34: case 0x43: case 0x44: - UI::scrollText("Brightness Setting", 0xFFFFFF); + // UI::scrollText("Brightness Setting", 0xFFFFFF); + UI::brightnessControl(); break; //rotation @@ -1095,4 +1097,98 @@ void UI::standbyMode() LED.disableOverlayMode(); LED.update(); return; +} + +void UI::brightnessControl() +{ + LED.fill(0, true); + u8 unsafe = 168; + u8 brightnessList[] = {4, 8, 14, 20, 28, 38, 50, 63, 79, 98, 119, 142, 169, 198, 231, 255}; //Length has to be multiples of 8 + u8 height = sizeof(brightnessList) / 8;// + ((sizeof(brightnessList)) % 8 > 0); + u8 offset = 8 - height; + while(true) + { + //Text Render + u32 accent_color = brightness < unsafe ? 0x00FF00 : 0xFF0000; + //L + LED.setXYCRGB(0x00, accent_color, true); + LED.setXYCRGB(0x01, accent_color, true); + LED.setXYCRGB(0x02, accent_color, true); + LED.setXYCRGB(0x03, accent_color, true); + LED.setXYCRGB(0x13, accent_color, true); + //E + LED.onXY(0x20, true); + LED.onXY(0x21, true); + LED.onXY(0x22, true); + LED.onXY(0x23, true); + LED.onXY(0x30, true); + LED.onXY(0x31, true); + LED.onXY(0x33, true); + LED.onXY(0x40, true); + LED.onXY(0x43, true); + //D + LED.setXYCRGB(0x50, accent_color, true); + LED.setXYCRGB(0x51, accent_color, true); + LED.setXYCRGB(0x52, accent_color, true); + LED.setXYCRGB(0x53, accent_color, true); + LED.setXYCRGB(0x60, accent_color, true); + LED.setXYCRGB(0x63, accent_color, true); + LED.setXYCRGB(0x71, accent_color, true); + LED.setXYCRGB(0x72, accent_color, true); + + //Control Render + for(u8 y = 0; y < height; y++) + { + for(u8 x = 0; x < 8; x++) + { + u8 i = y * 8 + x; + + u32 color = 0; + if(brightnessList[i] >= unsafe) + { + color = 0xFF0000; + } + else + { + color = 0xFFFFFF; + } + + LED.setXYCRGB(xytoxy(x, y + offset), toLowBrightness(color, brightness >= brightnessList[i]), true); + } + } + LED.update(); + //Keypad + while (true) + { + if (uiTimer.tick(ui_fps_micros) && KeyPad.scan()) + { + if (KeyPad.fn.state == RELEASED) + { + LED.fill(0, true); + return; + } + u8 newBrightness = 0; + for (int i = 0; i < MULTIPRESS; i++) + { + if (KeyPad.changelist[i] == 0xFFFF) + break; + if (KeyPad.getKey(KeyPad.changelist[i]).state == PRESSED) + { + u8 x = xytox(KeyPad.changelist[i]); + u8 y = xytoy(KeyPad.changelist[i]); + if(y >= offset) + { + u8 brightnessID = (y-offset) * 8 + x; + newBrightness = brightnessList[brightnessID]; + } + } + } + if(newBrightness != 0) + { + setBrightness(newBrightness); + break; + } + } + } + } } \ No newline at end of file diff --git a/src/Components/UI.h b/src/Components/UI.h index 891b226..69d0177 100644 --- a/src/Components/UI.h +++ b/src/Components/UI.h @@ -10,6 +10,7 @@ #include "../HAL/LED.h" #include "../HAL/Timer.h" #include "../Components/UIelement.h" +#include "../Components/Redacted.h" //#include "../protocol/MIDI.h" //#include @@ -46,6 +47,8 @@ class UI void fnKeyAction(); void fnRender(); + void brightnessControl(); + void enterSettingMenu(); void settingMenu(); void exitSettingMenu(); diff --git a/src/HAL/Keypad.cpp b/src/HAL/Keypad.cpp index e4d73e8..c840302 100644 --- a/src/HAL/Keypad.cpp +++ b/src/HAL/Keypad.cpp @@ -171,6 +171,7 @@ bool KeyPad::scanType2() } } digitalWrite(keypad_pins[x], LOW); + delayMicroseconds(10); // To make the Keypad Matrix happy } return changed; diff --git a/src/Parameter/Device/MXFE/FE1.cpp b/src/Parameter/Device/MXFE/FE1.cpp index e9d07f0..d20a462 100644 --- a/src/Parameter/Device/MXFE/FE1.cpp +++ b/src/Parameter/Device/MXFE/FE1.cpp @@ -19,7 +19,7 @@ void loadConfigMXFE1() PB1, PB0, PA2, PA1, PC3, PA3, PC5, PC4}; // Y (RECIVE) // for(u8 i = 0; i < 16; i ++) // { - // keypad_pins[i] = type2keypad_pins[i]; + // keypad_pins[i] = type2_keypad_pins[i]; // } memcpy(keypad_pins, type2_keypad_pins, 16); diff --git a/src/Parameter/Device/MXPT/V210.cpp b/src/Parameter/Device/MXPT/V210.cpp index bc6f8dd..5ed5941 100644 --- a/src/Parameter/Device/MXPT/V210.cpp +++ b/src/Parameter/Device/MXPT/V210.cpp @@ -15,11 +15,11 @@ void loadConfigMXPTV210() //KeyPad keypad_type = 2; - u8 type2keypad_pins[16] = {PB15, PB14, PB13, PB12, PC6, PC15, PC14, PC13, //X (SOURCE) + u8 type2_keypad_pins[16] = {PB15, PB14, PB13, PB12, PC6, PC15, PC14, PC13, //X (SOURCE) PB1, PB0, PA2, PA1, PC3, PA3, PC5, PC4}; // Y (RECIVE) for(u8 i = 0; i < 16; i ++) { - keypad_pins[i] = type2keypad_pins[i]; + keypad_pins[i] = type2_keypad_pins[i]; } velocity_sensitivity = 1; diff --git a/src/Parameter/MatrixParameter.h b/src/Parameter/MatrixParameter.h index 498b228..1159106 100644 --- a/src/Parameter/MatrixParameter.h +++ b/src/Parameter/MatrixParameter.h @@ -57,7 +57,7 @@ typedef volatile const int64_t vsc64; const u8 SYSEXID[3] = {0x00, 0x02, 0x03}; #define EEPROMVERSION 2 //Each EEPROM change will cause this to increase -#define FWVERSION_STRING "0.8.0 beta 9 pre release" //String(MAJOR_VER)+ "." +MINOR_VER+"." +PATCH_VER+(BUILD_VER == 0)?"":("b"+BUILD_VER) +#define FWVERSION_STRING "0.8.0 beta 9" //String(MAJOR_VER)+ "." +MINOR_VER+"." +PATCH_VER+(BUILD_VER == 0)?"":("b"+BUILD_VER) #define MAJOR_VER 0 #define MINOR_VER 8 #define PATCH_VER 0 @@ -73,7 +73,7 @@ const u8 SYSEXID[3] = {0x00, 0x02, 0x03}; #define NUM_BOTTOM_LEDS 32 #define NUM_TOTAL_LEDS 96 //64+32 #define NUM_POWERCORD_LEDS 100 -#define LOW_STATE_BRIGHTNESS 100 //40%ish +#define LOW_STATE_BRIGHTNESS 75 //30%ish #define XSIZE 8 //Max 256 key support due to the m2p and libary data type limition #define YSIZE 8 // need tp change data type in keypad.h