Add units to best diff

This commit is contained in:
Stefan Berger 2023-08-05 14:13:38 +02:00
parent d42fc0c9fa
commit 7204e56259
4 changed files with 335 additions and 178 deletions

View File

@ -1278,175 +1278,273 @@ const unsigned char NotoSans_Bold[] PROGMEM = {
0x2b, 0x2b, 0x2b, 0x00, 0x2b, 0x2b, 0x18, 0x00 0x2b, 0x2b, 0x2b, 0x00, 0x2b, 0x2b, 0x18, 0x00
}; };
// Digital Numbers is a fixed width (web)font in a cool liquid-crystal display (LCD) style.
// https://github.com/s-a/digital-numbers-font/blob/gh-pages/dist/DigitalNumbers-Regular.ttf
// License: https://github.com/s-a/digital-numbers-font/blob/gh-pages/OFL.txt
// Supported glyphs: 0123456789 ,.:;KMGTPE
// This font is a subset of the full font to reduce array size, ONLY these characters are present: // array size is 4184
// 0123456789 ,.:;
// array size is 2644
const unsigned char DigitalNumbers[] PROGMEM = { const unsigned char DigitalNumbers[] PROGMEM = {
0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x80, 0x00, 0x03, 0x00, 0x30, 0x63, 0x6d, 0x61, 0x70, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x80, 0x00, 0x03, 0x00, 0x50, 0x46, 0x46, 0x54, 0x4d,
0x0d, 0x24, 0x11, 0x80, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x02, 0x2c, 0x63, 0x76, 0x74, 0x20, 0x8c, 0xbf, 0x2d, 0x05, 0x00, 0x00, 0x10, 0x3c, 0x00, 0x00, 0x00, 0x1c, 0x4f, 0x53, 0x2f, 0x32,
0x00, 0x21, 0x02, 0x79, 0x00, 0x00, 0x02, 0xe8, 0x00, 0x00, 0x00, 0x04, 0x67, 0x6c, 0x79, 0x66, 0x57, 0x08, 0x60, 0xb5, 0x00, 0x00, 0x01, 0x58, 0x00, 0x00, 0x00, 0x56, 0x63, 0x6d, 0x61, 0x70,
0xc0, 0x73, 0xb8, 0x3c, 0x00, 0x00, 0x02, 0xec, 0x00, 0x00, 0x04, 0x61, 0x68, 0x65, 0x61, 0x64, 0x2b, 0x1d, 0x57, 0xf6, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x01, 0x8a, 0x63, 0x76, 0x74, 0x20,
0x22, 0x9e, 0x74, 0x25, 0x00, 0x00, 0x07, 0x50, 0x00, 0x00, 0x00, 0x36, 0x68, 0x68, 0x65, 0x61, 0x00, 0x21, 0x02, 0x79, 0x00, 0x00, 0x03, 0x7c, 0x00, 0x00, 0x00, 0x04, 0x67, 0x61, 0x73, 0x70,
0x02, 0x96, 0x03, 0x14, 0x00, 0x00, 0x07, 0x88, 0x00, 0x00, 0x00, 0x24, 0x68, 0x6d, 0x74, 0x78, 0xff, 0xff, 0x00, 0x03, 0x00, 0x00, 0x10, 0x34, 0x00, 0x00, 0x00, 0x08, 0x67, 0x6c, 0x79, 0x66,
0x2b, 0xc0, 0x08, 0x89, 0x00, 0x00, 0x07, 0xac, 0x00, 0x00, 0x00, 0x40, 0x6c, 0x6f, 0x63, 0x61, 0x54, 0x33, 0x1d, 0x9f, 0x00, 0x00, 0x03, 0xb4, 0x00, 0x00, 0x07, 0x64, 0x68, 0x65, 0x61, 0x64,
0x00, 0x00, 0x20, 0xd0, 0x00, 0x00, 0x07, 0xec, 0x00, 0x00, 0x00, 0x44, 0x6d, 0x61, 0x78, 0x70, 0x14, 0xb4, 0x99, 0xc0, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x36, 0x68, 0x68, 0x65, 0x61,
0x07, 0x4e, 0x11, 0x4e, 0x00, 0x00, 0x08, 0x30, 0x00, 0x00, 0x00, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x06, 0xda, 0x01, 0xcf, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x24, 0x68, 0x6d, 0x74, 0x78,
0x7b, 0xb1, 0x4f, 0xe5, 0x00, 0x00, 0x08, 0x50, 0x00, 0x00, 0x01, 0x8c, 0x4f, 0x53, 0x2f, 0x32, 0x0f, 0x23, 0x06, 0x12, 0x00, 0x00, 0x01, 0xb0, 0x00, 0x00, 0x00, 0x3e, 0x6c, 0x6f, 0x63, 0x61,
0x56, 0xf0, 0x61, 0xa3, 0x00, 0x00, 0x09, 0xdc, 0x00, 0x00, 0x00, 0x56, 0x70, 0x6f, 0x73, 0x74, 0x13, 0x80, 0x11, 0xfa, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x32, 0x6d, 0x61, 0x78, 0x70,
0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x34, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x03, 0x00, 0x62, 0x00, 0x73, 0x00, 0x00, 0x01, 0x38, 0x00, 0x00, 0x00, 0x20, 0x6e, 0x61, 0x6d, 0x65,
0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x41, 0x6d, 0x32, 0x9a, 0x00, 0x00, 0x0b, 0x18, 0x00, 0x00, 0x04, 0xc5, 0x70, 0x6f, 0x73, 0x74,
0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x01, 0x7c, 0x00, 0x04, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x20, 0x00, 0xd9, 0x01, 0x5c, 0x00, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x52, 0x00, 0x01, 0x00, 0x00,
0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x2c, 0x00, 0x2e, 0x00, 0x30, 0x00, 0x31, 0x00, 0x01, 0x1a, 0x1c, 0xcc, 0x53, 0x37, 0xdb, 0x5f, 0x0f, 0x3c, 0xf5, 0x00, 0x0b, 0x03, 0xe8,
0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x98, 0x6e, 0xf9, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf3, 0xcd, 0x87,
0x00, 0x3a, 0x00, 0x3b, 0xff, 0xff, 0x00, 0x00, 0x00, 0x20, 0x00, 0x2c, 0x00, 0x2e, 0x00, 0x30, 0x00, 0x00, 0xff, 0x0b, 0x03, 0x09, 0x03, 0x34, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00,
0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0xce, 0xfe, 0xc3, 0x00, 0x00, 0x03, 0x20,
0x00, 0x39, 0x00, 0x3a, 0x00, 0x3b, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe4, 0x03, 0x09, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x42,
0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00,
0x00, 0x40, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xdd, 0x01, 0x90, 0x00, 0x05,
0x00, 0x00, 0x02, 0x8a, 0x02, 0xbb, 0x00, 0x00, 0x00, 0x8c, 0x02, 0x8a, 0x02, 0xbb, 0x00, 0x00,
0x01, 0xdf, 0x00, 0x31, 0x01, 0x02, 0x00, 0x00, 0x02, 0x00, 0x05, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x50, 0x66, 0x45, 0x64, 0x00, 0x40, 0x00, 0x20, 0x00, 0x54, 0x03, 0xce, 0xfe, 0xc3,
0x00, 0x00, 0x03, 0xce, 0x01, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x6c, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x01, 0x4d, 0x00, 0x00, 0x03, 0x20, 0x00, 0x00,
0x00, 0x64, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x03, 0x20, 0x00, 0x90, 0x00, 0x90, 0x00, 0x93,
0x00, 0xb1, 0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0xb4, 0x00, 0x90, 0x00, 0x90, 0x01, 0x51,
0x01, 0x50, 0x00, 0xa0, 0x00, 0x90, 0x00, 0x9c, 0x00, 0x56, 0x00, 0x91, 0x00, 0x17, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x84, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x04, 0x00, 0x68,
0x00, 0x00, 0x00, 0x16, 0x00, 0x10, 0x00, 0x03, 0x00, 0x06, 0x00, 0x20, 0x00, 0x2c, 0x00, 0x2e,
0x00, 0x3b, 0x00, 0x45, 0x00, 0x47, 0x00, 0x4b, 0x00, 0x4d, 0x00, 0x50, 0x00, 0x54, 0xff, 0xff,
0x00, 0x00, 0x00, 0x20, 0x00, 0x2c, 0x00, 0x2e, 0x00, 0x30, 0x00, 0x45, 0x00, 0x47, 0x00, 0x4b,
0x00, 0x4d, 0x00, 0x50, 0x00, 0x54, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xd8, 0xff, 0xd7, 0xff, 0xd6,
0xff, 0xcd, 0xff, 0xcc, 0xff, 0xc9, 0xff, 0xc8, 0xff, 0xc6, 0xff, 0xc3, 0x00, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b,
0x00, 0x0d, 0x00, 0x0e, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x04, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x20, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12,
0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x2c, 0x00, 0x2e, 0x00, 0x30, 0x00, 0x31, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x15, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00,
0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39,
0x00, 0x3a, 0x00, 0x3b, 0xff, 0xff, 0x00, 0x00, 0x00, 0x20, 0x00, 0x2c, 0x00, 0x2e, 0x00, 0x30,
0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38,
0x00, 0x39, 0x00, 0x3a, 0x00, 0x3b, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04,
0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x0c,
0x00, 0x0d, 0x00, 0x0e, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x04, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x20,
0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x2c, 0x00, 0x2e, 0x00, 0x30, 0x00, 0x31,
0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38, 0x00, 0x39,
0x00, 0x3a, 0x00, 0x3b, 0xff, 0xff, 0x00, 0x00, 0x00, 0x20, 0x00, 0x2c, 0x00, 0x2e, 0x00, 0x30,
0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00, 0x38,
0x00, 0x39, 0x00, 0x3a, 0x00, 0x3b, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x0d, 0x00, 0x0e, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x21, 0x02, 0x79, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x58, 0x08, 0x00, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x58, 0x00, 0x00, 0xfd, 0xad, 0x02, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xfd, 0xb2, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x07, 0xf6, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xff, 0x0b, 0x00, 0x80, 0x00, 0x5e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x02, 0x79,
0x00, 0x0d, 0x00, 0x00, 0x35, 0x33, 0x15, 0x23, 0x17, 0x0e, 0x04, 0x23, 0x22, 0x26, 0x27, 0x7f, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x2a, 0x00, 0x2a, 0x00, 0x2a, 0x00, 0x4c, 0x00, 0x58, 0x00, 0x8a,
0x7f, 0x80, 0x16, 0x27, 0x18, 0x12, 0x0c, 0x03, 0x04, 0x03, 0x02, 0x5e, 0x80, 0x21, 0x09, 0x2c, 0x00, 0xa2, 0x00, 0xd2, 0x01, 0x00, 0x01, 0x28, 0x01, 0x56, 0x01, 0x8c, 0x01, 0xa8, 0x01, 0xe6,
0x31, 0x2e, 0x1e, 0x46, 0x6c, 0x00, 0x01, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x7e, 0xff, 0xbf, 0x00, 0x02, 0x16, 0x02, 0x28, 0x02, 0x52, 0x02, 0x82, 0x02, 0xb8, 0x03, 0x28, 0x03, 0x62, 0x03, 0x92,
0x03, 0x00, 0x00, 0x15, 0x33, 0x15, 0x23, 0x7e, 0x7e, 0x41, 0x80, 0x00, 0x06, 0x00, 0x90, 0xff, 0x03, 0xb2, 0x00, 0x00, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x01, 0x2a, 0x02, 0x9a, 0x00, 0x03,
0x2b, 0x02, 0x90, 0x03, 0x23, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x13, 0x00, 0x00, 0x07, 0x00, 0x2e, 0xb1, 0x01, 0x00, 0x2f, 0x3c, 0xb2, 0x07, 0x04, 0x00, 0xed, 0x32, 0xb1,
0x17, 0x00, 0x00, 0x17, 0x37, 0x33, 0x17, 0x01, 0x17, 0x15, 0x07, 0x21, 0x27, 0x35, 0x37, 0x01, 0x06, 0x05, 0xdc, 0x3c, 0xb2, 0x03, 0x02, 0x00, 0xed, 0x32, 0x00, 0xb1, 0x03, 0x00, 0x2f, 0x3c,
0x21, 0x07, 0x23, 0x03, 0x11, 0x17, 0x15, 0x01, 0x11, 0x27, 0x35, 0xb1, 0x67, 0xf7, 0x61, 0xfe, 0xb2, 0x05, 0x04, 0x00, 0xed, 0x32, 0xb2, 0x07, 0x06, 0x01, 0xfc, 0x3c, 0xb2, 0x01, 0x02, 0x00,
0x23, 0x6c, 0x6c, 0x01, 0xfd, 0x6c, 0x6c, 0xfe, 0x20, 0x01, 0xbf, 0x63, 0xf5, 0x87, 0x6c, 0x01, 0xed, 0x32, 0x33, 0x11, 0x21, 0x11, 0x27, 0x33, 0x11, 0x23, 0x21, 0x01, 0x09, 0xe8, 0xc7, 0xc7,
0x91, 0x6c, 0xd5, 0x6c, 0x6c, 0x01, 0xeb, 0x68, 0xf5, 0x62, 0x67, 0xf6, 0x62, 0x02, 0x0d, 0x6c, 0x02, 0x9a, 0xfd, 0x66, 0x21, 0x02, 0x58, 0x00, 0x00, 0x02, 0x00, 0x00, 0xff, 0x0b, 0x00, 0x80,
0xfe, 0x82, 0x01, 0xbf, 0x61, 0xf8, 0x01, 0x59, 0xfe, 0x41, 0x61, 0xf7, 0x00, 0x03, 0x00, 0x90, 0x00, 0x5e, 0x00, 0x03, 0x00, 0x12, 0x00, 0x00, 0x35, 0x33, 0x15, 0x23, 0x17, 0x0e, 0x01, 0x07,
0xff, 0x57, 0x02, 0x90, 0x02, 0xf8, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x13, 0x01, 0x06, 0x07, 0x0e, 0x01, 0x07, 0x06, 0x23, 0x22, 0x27, 0x26, 0x27, 0x7f, 0x7f, 0x80, 0x17, 0x26,
0x27, 0x35, 0x37, 0x03, 0x11, 0x27, 0x35, 0x90, 0x02, 0x00, 0x6c, 0x6c, 0x03, 0x6c, 0x02, 0x24, 0x0c, 0x09, 0x0c, 0x03, 0x0a, 0x02, 0x06, 0x03, 0x04, 0x02, 0x01, 0x02, 0x5e, 0x80, 0x21, 0x09,
0xfd, 0x33, 0x67, 0xf6, 0x62, 0x01, 0xe2, 0xfe, 0x41, 0x61, 0xf7, 0x00, 0x05, 0x00, 0x93, 0xff, 0x2c, 0x18, 0x12, 0x1e, 0x08, 0x1a, 0x04, 0x0f, 0x23, 0x22, 0x6d, 0x00, 0x00, 0x01, 0x00, 0x00,
0x2b, 0x02, 0x8d, 0x03, 0x23, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x12, 0x00, 0x16, 0x00, 0xff, 0x3f, 0x00, 0x7e, 0xff, 0xbf, 0x00, 0x03, 0x00, 0x00, 0x15, 0x33, 0x15, 0x23, 0x7e, 0x7e,
0x00, 0x17, 0x37, 0x33, 0x17, 0x01, 0x17, 0x15, 0x07, 0x13, 0x26, 0x27, 0x37, 0x21, 0x17, 0x07, 0x41, 0x80, 0x00, 0x00, 0x00, 0x06, 0x00, 0x90, 0xff, 0x2b, 0x02, 0x90, 0x03, 0x23, 0x00, 0x03,
0x01, 0x21, 0x07, 0x23, 0x25, 0x11, 0x27, 0x35, 0xb1, 0x67, 0xf7, 0x61, 0xfe, 0x23, 0x6c, 0x6c, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x0f, 0x00, 0x13, 0x00, 0x17, 0x00, 0x00, 0x17, 0x37, 0x33, 0x17,
0x74, 0x23, 0x24, 0x47, 0x01, 0x11, 0x46, 0x46, 0xfe, 0x98, 0x01, 0xbf, 0x63, 0xf5, 0x01, 0x76, 0x01, 0x17, 0x15, 0x07, 0x21, 0x27, 0x35, 0x37, 0x01, 0x21, 0x07, 0x23, 0x03, 0x11, 0x17, 0x15,
0x6c, 0xd5, 0x6c, 0x6c, 0x01, 0xeb, 0x68, 0xf5, 0x62, 0x01, 0x9b, 0x1c, 0x1b, 0x35, 0x35, 0x37, 0x01, 0x11, 0x27, 0x35, 0xb1, 0x67, 0xf7, 0x61, 0xfe, 0x23, 0x6c, 0x6c, 0x01, 0xfd, 0x6c, 0x6c,
0x02, 0x31, 0x6c, 0x41, 0xfe, 0x41, 0x61, 0xf7, 0x00, 0x05, 0x00, 0xb1, 0xff, 0x2b, 0x02, 0x91, 0xfe, 0x20, 0x01, 0xbf, 0x63, 0xf5, 0x87, 0x6c, 0x01, 0x91, 0x6c, 0xd5, 0x6c, 0x6c, 0x01, 0xeb,
0x68, 0xf5, 0x62, 0x67, 0xf6, 0x62, 0x02, 0x0d, 0x6c, 0xfe, 0x82, 0x01, 0xbf, 0x61, 0xf8, 0x01,
0x59, 0xfe, 0x41, 0x61, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x90, 0xff, 0x57, 0x02, 0x90,
0x02, 0xf8, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x13, 0x01, 0x27, 0x35, 0x37, 0x03,
0x11, 0x27, 0x35, 0x90, 0x02, 0x00, 0x6c, 0x6c, 0x03, 0x6c, 0x02, 0x24, 0xfd, 0x33, 0x67, 0xf6,
0x62, 0x01, 0xe2, 0xfe, 0x41, 0x61, 0xf7, 0x00, 0x00, 0x05, 0x00, 0x93, 0xff, 0x2b, 0x02, 0x8d,
0x03, 0x23, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x12, 0x00, 0x16, 0x00, 0x00, 0x17, 0x37,
0x33, 0x17, 0x01, 0x17, 0x15, 0x07, 0x13, 0x26, 0x27, 0x37, 0x21, 0x17, 0x07, 0x01, 0x21, 0x07,
0x23, 0x25, 0x11, 0x27, 0x35, 0xb1, 0x67, 0xf7, 0x61, 0xfe, 0x23, 0x6c, 0x6c, 0x74, 0x17, 0x30,
0x47, 0x01, 0x11, 0x46, 0x46, 0xfe, 0x98, 0x01, 0xbf, 0x63, 0xf5, 0x01, 0x76, 0x6c, 0xd5, 0x6c,
0x6c, 0x01, 0xeb, 0x68, 0xf5, 0x62, 0x01, 0x9b, 0x13, 0x24, 0x35, 0x35, 0x37, 0x02, 0x31, 0x6c,
0x41, 0xfe, 0x41, 0x61, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0xb1, 0xff, 0x2b, 0x02, 0x91,
0x03, 0x23, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x12, 0x00, 0x16, 0x00, 0x00, 0x17, 0x37, 0x03, 0x23, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x12, 0x00, 0x16, 0x00, 0x00, 0x17, 0x37,
0x33, 0x17, 0x37, 0x27, 0x35, 0x37, 0x05, 0x26, 0x27, 0x37, 0x21, 0x17, 0x07, 0x01, 0x21, 0x07, 0x33, 0x17, 0x37, 0x27, 0x35, 0x37, 0x05, 0x26, 0x27, 0x37, 0x21, 0x17, 0x07, 0x01, 0x21, 0x07,
0x23, 0x25, 0x11, 0x27, 0x35, 0xb4, 0x65, 0xf8, 0x61, 0x1f, 0x6b, 0x6b, 0xfe, 0x77, 0x22, 0x24, 0x23, 0x25, 0x11, 0x27, 0x35, 0xb4, 0x65, 0xf8, 0x61, 0x1f, 0x6b, 0x6b, 0xfe, 0x77, 0x21, 0x25,
0x46, 0x01, 0x11, 0x46, 0x46, 0xfe, 0x98, 0x01, 0xc0, 0x62, 0xf7, 0x01, 0x76, 0x6b, 0xd5, 0x6c, 0x46, 0x01, 0x11, 0x46, 0x46, 0xfe, 0x98, 0x01, 0xc0, 0x62, 0xf7, 0x01, 0x76, 0x6b, 0xd5, 0x6c,
0x6c, 0x2c, 0x67, 0xf6, 0x62, 0x24, 0x1c, 0x1b, 0x35, 0x35, 0x37, 0x02, 0x31, 0x6c, 0x41, 0xfe, 0x6c, 0x2c, 0x67, 0xf6, 0x62, 0x24, 0x1b, 0x1c, 0x35, 0x35, 0x37, 0x02, 0x31, 0x6c, 0x41, 0xfe,
0x41, 0x61, 0xf7, 0x00, 0x04, 0x00, 0x90, 0xff, 0x57, 0x02, 0x90, 0x02, 0xf8, 0x00, 0x03, 0x00, 0x41, 0x61, 0xf7, 0x00, 0x00, 0x04, 0x00, 0x90, 0xff, 0x57, 0x02, 0x90, 0x02, 0xf8, 0x00, 0x03,
0x0a, 0x00, 0x0e, 0x00, 0x12, 0x00, 0x00, 0x05, 0x27, 0x35, 0x37, 0x05, 0x26, 0x27, 0x37, 0x21, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x12, 0x00, 0x00, 0x05, 0x27, 0x35, 0x37, 0x05, 0x26, 0x27, 0x37,
0x17, 0x07, 0x25, 0x11, 0x17, 0x15, 0x01, 0x11, 0x27, 0x35, 0x02, 0x90, 0x6c, 0x6c, 0xfe, 0x77, 0x21, 0x17, 0x07, 0x25, 0x11, 0x17, 0x15, 0x01, 0x11, 0x27, 0x35, 0x02, 0x90, 0x6c, 0x6c, 0xfe,
0x23, 0x24, 0x47, 0x01, 0x11, 0x46, 0x46, 0xfe, 0x78, 0x6c, 0x01, 0x91, 0x6c, 0xa9, 0x67, 0xf6, 0x77, 0x17, 0x30, 0x47, 0x01, 0x11, 0x46, 0x46, 0xfe, 0x78, 0x6c, 0x01, 0x91, 0x6c, 0xa9, 0x67,
0x62, 0x24, 0x1c, 0x1b, 0x35, 0x35, 0x37, 0x47, 0x01, 0xbf, 0x61, 0xf8, 0x01, 0x59, 0xfe, 0x41, 0xf6, 0x62, 0x24, 0x13, 0x24, 0x35, 0x35, 0x37, 0x47, 0x01, 0xbf, 0x61, 0xf8, 0x01, 0x59, 0xfe,
0x61, 0xf7, 0x00, 0x05, 0x00, 0x90, 0xff, 0x2b, 0x02, 0x90, 0x03, 0x23, 0x00, 0x03, 0x00, 0x07, 0x41, 0x61, 0xf7, 0x00, 0x00, 0x05, 0x00, 0x90, 0xff, 0x2b, 0x02, 0x90, 0x03, 0x23, 0x00, 0x03,
0x00, 0x0e, 0x00, 0x12, 0x00, 0x16, 0x00, 0x00, 0x17, 0x37, 0x33, 0x17, 0x37, 0x27, 0x35, 0x37, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x12, 0x00, 0x16, 0x00, 0x00, 0x17, 0x37, 0x33, 0x17, 0x37, 0x27,
0x05, 0x26, 0x27, 0x37, 0x21, 0x17, 0x07, 0x01, 0x21, 0x07, 0x23, 0x03, 0x11, 0x17, 0x15, 0xb1, 0x35, 0x37, 0x05, 0x26, 0x27, 0x37, 0x21, 0x17, 0x07, 0x01, 0x21, 0x07, 0x23, 0x03, 0x11, 0x17,
0x67, 0xf7, 0x61, 0x20, 0x6c, 0x6c, 0xfe, 0x77, 0x23, 0x24, 0x47, 0x01, 0x11, 0x46, 0x46, 0xfe, 0x15, 0xb1, 0x67, 0xf7, 0x61, 0x20, 0x6c, 0x6c, 0xfe, 0x77, 0x17, 0x30, 0x47, 0x01, 0x11, 0x46,
0x98, 0x01, 0xbf, 0x63, 0xf5, 0x87, 0x6c, 0xd5, 0x6c, 0x6c, 0x2c, 0x67, 0xf6, 0x62, 0x24, 0x1c, 0x46, 0xfe, 0x98, 0x01, 0xbf, 0x63, 0xf5, 0x87, 0x6c, 0xd5, 0x6c, 0x6c, 0x2c, 0x67, 0xf6, 0x62,
0x1b, 0x35, 0x35, 0x37, 0x02, 0x31, 0x6c, 0xfe, 0x82, 0x01, 0xbf, 0x61, 0xf8, 0x00, 0x06, 0x00, 0x24, 0x13, 0x24, 0x35, 0x35, 0x37, 0x02, 0x31, 0x6c, 0xfe, 0x82, 0x01, 0xbf, 0x61, 0xf8, 0x00,
0x90, 0xff, 0x2b, 0x02, 0x90, 0x03, 0x23, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x12, 0x00, 0x00, 0x06, 0x00, 0x90, 0xff, 0x2b, 0x02, 0x90, 0x03, 0x23, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b,
0x16, 0x00, 0x1a, 0x00, 0x00, 0x17, 0x37, 0x33, 0x17, 0x01, 0x17, 0x15, 0x07, 0x21, 0x27, 0x35, 0x00, 0x12, 0x00, 0x16, 0x00, 0x1a, 0x00, 0x00, 0x17, 0x37, 0x33, 0x17, 0x01, 0x17, 0x15, 0x07,
0x37, 0x05, 0x26, 0x27, 0x37, 0x21, 0x17, 0x07, 0x01, 0x21, 0x07, 0x23, 0x03, 0x11, 0x17, 0x15,
0xb1, 0x67, 0xf7, 0x61, 0xfe, 0x23, 0x6c, 0x6c, 0x01, 0xfd, 0x6c, 0x6c, 0xfe, 0x77, 0x23, 0x24,
0x47, 0x01, 0x11, 0x46, 0x46, 0xfe, 0x98, 0x01, 0xbf, 0x63, 0xf5, 0x87, 0x6c, 0xd5, 0x6c, 0x6c,
0x01, 0xeb, 0x68, 0xf5, 0x62, 0x67, 0xf6, 0x62, 0x24, 0x1c, 0x1b, 0x35, 0x35, 0x37, 0x02, 0x31,
0x6c, 0xfe, 0x82, 0x01, 0xbf, 0x61, 0xf8, 0x00, 0x03, 0x00, 0xb4, 0xff, 0x57, 0x02, 0x94, 0x03,
0x23, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x05, 0x27, 0x35, 0x37, 0x01, 0x21, 0x07,
0x23, 0x25, 0x11, 0x27, 0x35, 0x02, 0x94, 0x6b, 0x6b, 0xfe, 0x20, 0x01, 0xc0, 0x62, 0xf7, 0x01,
0x76, 0x6b, 0xa9, 0x67, 0xf6, 0x62, 0x02, 0x0d, 0x6c, 0x41, 0xfe, 0x41, 0x61, 0xf7, 0x00, 0x07,
0x00, 0x90, 0xff, 0x2b, 0x02, 0x90, 0x03, 0x23, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x12,
0x00, 0x16, 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x00, 0x17, 0x37, 0x33, 0x17, 0x01, 0x17, 0x15, 0x07,
0x21, 0x27, 0x35, 0x37, 0x05, 0x26, 0x27, 0x37, 0x21, 0x17, 0x07, 0x01, 0x21, 0x07, 0x23, 0x03, 0x21, 0x27, 0x35, 0x37, 0x05, 0x26, 0x27, 0x37, 0x21, 0x17, 0x07, 0x01, 0x21, 0x07, 0x23, 0x03,
0x11, 0x17, 0x15, 0x01, 0x11, 0x27, 0x35, 0xb1, 0x67, 0xf7, 0x61, 0xfe, 0x23, 0x6c, 0x6c, 0x01, 0x11, 0x17, 0x15, 0xb1, 0x67, 0xf7, 0x61, 0xfe, 0x23, 0x6c, 0x6c, 0x01, 0xfd, 0x6c, 0x6c, 0xfe,
0xfd, 0x6c, 0x6c, 0xfe, 0x77, 0x23, 0x24, 0x47, 0x01, 0x11, 0x46, 0x46, 0xfe, 0x98, 0x01, 0xbf, 0x77, 0x17, 0x30, 0x47, 0x01, 0x11, 0x46, 0x46, 0xfe, 0x98, 0x01, 0xbf, 0x63, 0xf5, 0x87, 0x6c,
0x63, 0xf5, 0x87, 0x6c, 0x01, 0x91, 0x6c, 0xd5, 0x6c, 0x6c, 0x01, 0xeb, 0x68, 0xf5, 0x62, 0x67, 0xd5, 0x6c, 0x6c, 0x01, 0xeb, 0x68, 0xf5, 0x62, 0x67, 0xf6, 0x62, 0x24, 0x13, 0x24, 0x35, 0x35,
0xf6, 0x62, 0x24, 0x1c, 0x1b, 0x35, 0x35, 0x37, 0x02, 0x31, 0x6c, 0xfe, 0x82, 0x01, 0xbf, 0x61, 0x37, 0x02, 0x31, 0x6c, 0xfe, 0x82, 0x01, 0xbf, 0x61, 0xf8, 0x00, 0x00, 0x00, 0x03, 0x00, 0xb4,
0xf8, 0x01, 0x59, 0xfe, 0x41, 0x61, 0xf7, 0x00, 0x05, 0x00, 0x90, 0xff, 0x57, 0x02, 0x90, 0x03, 0xff, 0x57, 0x02, 0x94, 0x03, 0x23, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x00, 0x05, 0x27,
0x23, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x12, 0x00, 0x16, 0x00, 0x00, 0x05, 0x27, 0x35, 0x35, 0x37, 0x01, 0x21, 0x07, 0x23, 0x25, 0x11, 0x27, 0x35, 0x02, 0x94, 0x6b, 0x6b, 0xfe, 0x20,
0x37, 0x05, 0x26, 0x27, 0x37, 0x21, 0x17, 0x07, 0x01, 0x21, 0x07, 0x23, 0x03, 0x11, 0x17, 0x15, 0x01, 0xc0, 0x62, 0xf7, 0x01, 0x76, 0x6b, 0xa9, 0x67, 0xf6, 0x62, 0x02, 0x0d, 0x6c, 0x41, 0xfe,
0x01, 0x11, 0x27, 0x35, 0x02, 0x90, 0x6c, 0x6c, 0xfe, 0x77, 0x23, 0x24, 0x47, 0x01, 0x11, 0x46, 0x41, 0x61, 0xf7, 0x00, 0x00, 0x07, 0x00, 0x90, 0xff, 0x2b, 0x02, 0x90, 0x03, 0x23, 0x00, 0x03,
0x46, 0xfe, 0x98, 0x01, 0xbf, 0x63, 0xf5, 0x87, 0x6c, 0x01, 0x91, 0x6c, 0xa9, 0x67, 0xf6, 0x62, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x12, 0x00, 0x16, 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x00, 0x17, 0x37,
0x24, 0x1c, 0x1b, 0x35, 0x35, 0x37, 0x02, 0x31, 0x6c, 0xfe, 0x82, 0x01, 0xbf, 0x61, 0xf8, 0x01, 0x33, 0x17, 0x01, 0x17, 0x15, 0x07, 0x21, 0x27, 0x35, 0x37, 0x05, 0x26, 0x27, 0x37, 0x21, 0x17,
0x59, 0xfe, 0x41, 0x61, 0xf7, 0x00, 0x02, 0x01, 0x51, 0x00, 0xa3, 0x01, 0xcf, 0x02, 0x49, 0x00, 0x07, 0x01, 0x21, 0x07, 0x23, 0x03, 0x11, 0x17, 0x15, 0x01, 0x11, 0x27, 0x35, 0xb1, 0x67, 0xf7,
0x03, 0x00, 0x07, 0x00, 0x00, 0x01, 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23, 0x01, 0x51, 0x7e, 0x61, 0xfe, 0x23, 0x6c, 0x6c, 0x01, 0xfd, 0x6c, 0x6c, 0xfe, 0x77, 0x17, 0x30, 0x47, 0x01, 0x11,
0x7e, 0x7e, 0x7e, 0x01, 0x20, 0x7d, 0x01, 0xa6, 0x80, 0x00, 0x04, 0x01, 0x50, 0x00, 0x22, 0x01, 0x46, 0x46, 0xfe, 0x98, 0x01, 0xbf, 0x63, 0xf5, 0x87, 0x6c, 0x01, 0x91, 0x6c, 0xd5, 0x6c, 0x6c,
0xd0, 0x02, 0x52, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x15, 0x00, 0x1a, 0x00, 0x00, 0x01, 0x33, 0x15, 0x01, 0xeb, 0x68, 0xf5, 0x62, 0x67, 0xf6, 0x62, 0x24, 0x13, 0x24, 0x35, 0x35, 0x37, 0x02, 0x31,
0x23, 0x15, 0x33, 0x06, 0x07, 0x06, 0x23, 0x22, 0x27, 0x23, 0x11, 0x33, 0x15, 0x23, 0x17, 0x32, 0x6c, 0xfe, 0x82, 0x01, 0xbf, 0x61, 0xf8, 0x01, 0x59, 0xfe, 0x41, 0x61, 0xf7, 0x00, 0x00, 0x00,
0x31, 0x35, 0x23, 0x15, 0x15, 0x23, 0x36, 0x36, 0x01, 0x50, 0x7f, 0x7e, 0x6e, 0x2c, 0x28, 0x0d, 0x00, 0x05, 0x00, 0x90, 0xff, 0x57, 0x02, 0x90, 0x03, 0x23, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x0e,
0x03, 0x07, 0x03, 0x01, 0x7f, 0x7f, 0x7f, 0x01, 0x01, 0x10, 0x03, 0x0a, 0x01, 0x49, 0x74, 0x0b, 0x00, 0x12, 0x00, 0x16, 0x00, 0x00, 0x05, 0x27, 0x35, 0x37, 0x05, 0x26, 0x27, 0x37, 0x21, 0x17,
0x1f, 0x69, 0x20, 0xa8, 0x01, 0x88, 0x80, 0xfe, 0x01, 0x01, 0x0a, 0x01, 0x08, 0x00, 0x00, 0x00, 0x07, 0x01, 0x21, 0x07, 0x23, 0x03, 0x11, 0x17, 0x15, 0x01, 0x11, 0x27, 0x35, 0x02, 0x90, 0x6c,
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xe0, 0x86, 0xa0, 0x5f, 0x0f, 0x3c, 0xf5, 0x6c, 0xfe, 0x77, 0x17, 0x30, 0x47, 0x01, 0x11, 0x46, 0x46, 0xfe, 0x98, 0x01, 0xbf, 0x63, 0xf5,
0x00, 0x0b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x30, 0x16, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x87, 0x6c, 0x01, 0x91, 0x6c, 0xa9, 0x67, 0xf6, 0x62, 0x24, 0x13, 0x24, 0x35, 0x35, 0x37, 0x02,
0xe0, 0x30, 0x16, 0x4c, 0xff, 0x8f, 0xfe, 0xc3, 0x03, 0x91, 0x03, 0xce, 0x00, 0x00, 0x00, 0x06, 0x31, 0x6c, 0xfe, 0x82, 0x01, 0xbf, 0x61, 0xf8, 0x01, 0x59, 0xfe, 0x41, 0x61, 0xf7, 0x00, 0x00,
0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x51, 0x00, 0xa3, 0x01, 0xcf, 0x02, 0x49, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00,
0x00, 0x00, 0x03, 0x20, 0x00, 0x00, 0xff, 0xe4, 0x02, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23, 0x01, 0x51, 0x7e, 0x7e, 0x7e, 0x7e, 0x01, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x02, 0x58, 0x00, 0x00, 0x7d, 0x01, 0xa6, 0x80, 0x00, 0x04, 0x01, 0x50, 0x00, 0x22, 0x01, 0xd0, 0x02, 0x52, 0x00, 0x0c,
0x03, 0x20, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x03, 0x20, 0x00, 0x90, 0x00, 0x10, 0x00, 0x15, 0x00, 0x1a, 0x00, 0x00, 0x01, 0x33, 0x15, 0x23, 0x15, 0x33, 0x06, 0x07,
0x03, 0x20, 0x00, 0x90, 0x03, 0x20, 0x00, 0x93, 0x03, 0x20, 0x00, 0xb1, 0x03, 0x20, 0x00, 0x90, 0x06, 0x23, 0x22, 0x27, 0x23, 0x11, 0x33, 0x15, 0x23, 0x17, 0x30, 0x33, 0x35, 0x23, 0x1d, 0x01,
0x03, 0x20, 0x00, 0x90, 0x03, 0x20, 0x00, 0x90, 0x03, 0x20, 0x00, 0xb4, 0x03, 0x20, 0x00, 0x90, 0x23, 0x3e, 0x01, 0x01, 0x50, 0x7f, 0x7e, 0x6e, 0x2c, 0x28, 0x0e, 0x02, 0x07, 0x03, 0x01, 0x7f,
0x03, 0x20, 0x00, 0x90, 0x03, 0x20, 0x01, 0x51, 0x03, 0x20, 0x01, 0x50, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x01, 0x01, 0x10, 0x06, 0x04, 0x01, 0x49, 0x74, 0x0b, 0x20, 0x68, 0x20, 0xa8, 0x01,
0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x7f, 0x88, 0x80, 0xfe, 0x01, 0x01, 0x0a, 0x03, 0x04, 0x00, 0x05, 0x00, 0xa0, 0xff, 0x2b, 0x02, 0x80,
0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x01, 0x6c, 0x00, 0x00, 0x01, 0xc7, 0x03, 0x23, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x13, 0x00, 0x17, 0x00, 0x00, 0x17, 0x37,
0x00, 0x00, 0x02, 0x16, 0x00, 0x00, 0x02, 0x71, 0x00, 0x00, 0x02, 0xdb, 0x00, 0x00, 0x03, 0x12, 0x33, 0x17, 0x01, 0x17, 0x15, 0x07, 0x13, 0x2e, 0x01, 0x27, 0x37, 0x21, 0x17, 0x07, 0x01, 0x21,
0x00, 0x00, 0x03, 0x8b, 0x00, 0x00, 0x03, 0xe9, 0x00, 0x00, 0x04, 0x0d, 0x00, 0x00, 0x04, 0x61, 0x07, 0x23, 0x03, 0x11, 0x17, 0x15, 0xc0, 0x67, 0xf7, 0x62, 0xfe, 0x23, 0x6b, 0x6b, 0x73, 0x0e,
0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x04, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x02, 0x2f, 0x09, 0x46, 0x01, 0x11, 0x46, 0x46, 0xfe, 0x98, 0x01, 0xbe, 0x61, 0xf7, 0x85, 0x6b, 0xd5,
0x00, 0x00, 0x00, 0x01, 0x00, 0xff, 0x00, 0x00, 0x00, 0x40, 0x00, 0x2e, 0x00, 0xff, 0x00, 0x1e, 0x6c, 0x6c, 0x01, 0xeb, 0x68, 0xf5, 0x62, 0x01, 0x9b, 0x0b, 0x25, 0x07, 0x35, 0x35, 0x37, 0x02,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x96, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0d, 0x31, 0x6c, 0xfe, 0x82, 0x01, 0xbf, 0x61, 0xf8, 0x00, 0x06, 0x00, 0x90, 0xff, 0x2b, 0x02, 0x90,
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x07, 0x00, 0x0d, 0x00, 0x01, 0x03, 0x23, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0b, 0x00, 0x12, 0x00, 0x16, 0x00, 0x1a, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x21, 0x00, 0x14, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x17, 0x37, 0x33, 0x17, 0x01, 0x17, 0x15, 0x07, 0x21, 0x27, 0x35, 0x37, 0x05, 0x26, 0x27, 0x37,
0x00, 0x04, 0x00, 0x0d, 0x00, 0x35, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x21, 0x17, 0x07, 0x01, 0x21, 0x07, 0x23, 0x03, 0x11, 0x17, 0x15, 0xb1, 0x67, 0xf7, 0x61, 0xfe,
0x00, 0x42, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0d, 0x00, 0x45, 0x00, 0x03, 0x23, 0x6c, 0x6c, 0x01, 0xfd, 0x6c, 0x6c, 0xfe, 0x77, 0x17, 0x30, 0x47, 0x01, 0x11, 0x46, 0x46,
0x00, 0x01, 0x04, 0x09, 0x00, 0x01, 0x00, 0x1a, 0x00, 0x52, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0xfe, 0x98, 0x01, 0xbf, 0x63, 0xf5, 0x87, 0x6c, 0xd5, 0x6c, 0x6c, 0x01, 0xeb, 0x68, 0xf5, 0x62,
0x00, 0x02, 0x00, 0x0e, 0x00, 0x6c, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x03, 0x00, 0x42, 0x67, 0xf6, 0x62, 0x24, 0x13, 0x24, 0x35, 0x35, 0x37, 0x02, 0x31, 0x6c, 0xfe, 0x82, 0x01, 0xbf,
0x00, 0x7a, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x04, 0x00, 0x1a, 0x00, 0xbc, 0x00, 0x03, 0x61, 0xf8, 0x00, 0x00, 0x00, 0x08, 0x00, 0x9c, 0xff, 0x57, 0x02, 0x83, 0x02, 0xf8, 0x00, 0x03,
0x00, 0x01, 0x04, 0x09, 0x00, 0x05, 0x00, 0x06, 0x00, 0xd6, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x0e, 0x00, 0x18, 0x00, 0x1c, 0x00, 0x23, 0x00, 0x27, 0x00, 0x32, 0x00, 0x41, 0x00, 0x00,
0x00, 0x06, 0x00, 0x1a, 0x00, 0xdc, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x25, 0x15, 0x07, 0x11, 0x05, 0x30, 0x17, 0x16, 0x17, 0x16, 0x17, 0x14, 0x33, 0x1f, 0x01, 0x03,
0x6f, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x37, 0x36, 0x37, 0x36, 0x3f, 0x01, 0x36, 0x35, 0x37, 0x01, 0x17, 0x15, 0x07, 0x13, 0x26, 0x27,
0x74, 0x65, 0x64, 0x46, 0x6f, 0x6e, 0x74, 0x20, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x3a, 0x37, 0x33, 0x17, 0x07, 0x27, 0x11, 0x17, 0x15, 0x17, 0x33, 0x1e, 0x01, 0x17, 0x07, 0x2f, 0x01,
0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x31, 0x2e, 0x30, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x26, 0x35, 0x27, 0x03, 0x3f, 0x01, 0x36, 0x37, 0x36, 0x3f, 0x01, 0x36, 0x35, 0x37, 0x17, 0x0e,
0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x6e, 0x74, 0x31, 0x2e, 0x30, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x01, 0x07, 0x01, 0x09, 0x6b, 0x01, 0x3c, 0x02, 0x02, 0x02, 0x05, 0x01, 0x01, 0x01, 0x92, 0xa0,
0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x6e, 0x74, 0x00, 0x47, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x65, 0x02, 0x02, 0x02, 0x05, 0x01, 0x01, 0x01, 0x92, 0xfe, 0x24, 0x6b, 0x6b, 0x73, 0x03, 0x41, 0x44,
0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x64, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e, 0x05, 0x45, 0x45, 0x7a, 0x6b, 0x3c, 0x95, 0x29, 0x6a, 0x18, 0x09, 0x92, 0x01, 0x01, 0x0c, 0x97,
0x00, 0x74, 0x00, 0x52, 0x00, 0x65, 0x00, 0x67, 0x00, 0x75, 0x00, 0x6c, 0x00, 0x61, 0x00, 0x72, 0x97, 0x02, 0x02, 0x02, 0x05, 0x01, 0x01, 0x01, 0x92, 0x09, 0x18, 0x6a, 0x29, 0x96, 0xdd, 0x62,
0x00, 0x47, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x65, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x01, 0xbf, 0xf3, 0x01, 0x02, 0x02, 0x05, 0x02, 0x01, 0x02, 0x96, 0x02, 0xb0, 0x02, 0x01, 0x02,
0x00, 0x64, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x20, 0x00, 0x52, 0x00, 0x65, 0x05, 0x02, 0x01, 0x01, 0x01, 0x96, 0xfe, 0x43, 0x68, 0xf5, 0x62, 0x01, 0x9b, 0x02, 0x35, 0x35,
0x00, 0x67, 0x00, 0x75, 0x00, 0x6c, 0x00, 0x61, 0x00, 0x72, 0x00, 0x3a, 0x00, 0x56, 0x00, 0x65, 0x35, 0x37, 0x47, 0x01, 0xbf, 0x61, 0xf8, 0xde, 0x29, 0x72, 0x18, 0x90, 0x96, 0x01, 0x01, 0x01,
0x00, 0x72, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x31, 0x00, 0x2e, 0x0c, 0x01, 0x6d, 0x9e, 0x02, 0x01, 0x02, 0x05, 0x02, 0x01, 0x01, 0x01, 0x96, 0x90, 0x18, 0x72,
0x00, 0x30, 0x00, 0x47, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x65, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x29, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x56, 0xff, 0x57, 0x02, 0xca, 0x03, 0x03, 0x00, 0x03,
0x00, 0x65, 0x00, 0x64, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x31, 0x00, 0x2e, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x12, 0x00, 0x16, 0x00, 0x1d, 0x00, 0x00, 0x13, 0x17, 0x15, 0x07,
0x00, 0x30, 0x00, 0x47, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x65, 0x00, 0x72, 0x00, 0x61, 0x00, 0x74, 0x21, 0x27, 0x35, 0x37, 0x01, 0x17, 0x2f, 0x02, 0x1f, 0x01, 0x01, 0x11, 0x17, 0x15, 0x25, 0x11,
0x00, 0x65, 0x00, 0x64, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x01, 0x03, 0x20, 0x27, 0x35, 0x07, 0x3f, 0x02, 0x0f, 0x02, 0x65, 0x6c, 0x6c, 0x02, 0x61, 0x6c, 0x6c, 0xfe, 0xb9,
0x01, 0x90, 0x00, 0x05, 0x00, 0x08, 0x02, 0x8a, 0x02, 0xbb, 0x00, 0x00, 0x00, 0x8c, 0x02, 0x8a, 0x05, 0x57, 0xc9, 0x0e, 0x57, 0xc9, 0xfe, 0xed, 0x6c, 0x01, 0xf5, 0x6c, 0xb7, 0x09, 0xc9, 0x57,
0x02, 0xbb, 0x00, 0x00, 0x01, 0xdf, 0x00, 0x31, 0x01, 0x02, 0x00, 0x00, 0x02, 0x00, 0x05, 0x03, 0x0e, 0xc9, 0x57, 0x01, 0x16, 0x68, 0xf5, 0x62, 0x67, 0xf6, 0x62, 0x01, 0x00, 0x2c, 0x08, 0xbb,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x08, 0xb9, 0xfe, 0xf7, 0x01, 0x47, 0x62, 0x7f, 0xe1, 0xfe, 0xb9, 0x61, 0x7f, 0x03, 0x2c,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x66, 0x45, 0x64, 0x00, 0x40, 0x00, 0x00, 0x00, 0xff, 0xb9, 0x08, 0x56, 0xbb, 0x08, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x91, 0xff, 0x57, 0x02, 0x8f,
0x03, 0xce, 0xfe, 0xc3, 0x00, 0x00, 0x03, 0xce, 0x01, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0x23, 0x00, 0x03, 0x00, 0x0a, 0x00, 0x0e, 0x00, 0x12, 0x00, 0x16, 0x00, 0x00, 0x13, 0x17,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x07, 0x13, 0x26, 0x27, 0x37, 0x21, 0x17, 0x07, 0x01, 0x21, 0x07, 0x23, 0x03, 0x11, 0x17,
0x15, 0x01, 0x11, 0x27, 0x35, 0x94, 0x6c, 0x6c, 0x73, 0x26, 0x20, 0x46, 0x01, 0x12, 0x46, 0x46,
0xfe, 0x98, 0x01, 0xbe, 0x61, 0xf7, 0x86, 0x6c, 0x01, 0x92, 0x6c, 0x01, 0x16, 0x68, 0xf5, 0x62,
0x01, 0x9b, 0x1f, 0x18, 0x35, 0x35, 0x37, 0x02, 0x31, 0x6c, 0xfe, 0x82, 0x01, 0xbf, 0x61, 0xf8,
0x01, 0x59, 0xfe, 0x41, 0x61, 0xf7, 0x00, 0x00, 0x00, 0x02, 0x00, 0x17, 0xff, 0x57, 0x03, 0x09,
0x03, 0x34, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x00, 0x05, 0x27, 0x35, 0x37, 0x01, 0x26, 0x27, 0x37,
0x21, 0x17, 0x07, 0x23, 0x11, 0x27, 0x35, 0x37, 0x01, 0xc7, 0x6c, 0x6c, 0xfe, 0x96, 0x0e, 0x38,
0x46, 0x02, 0x66, 0x46, 0x46, 0xff, 0x6c, 0x3b, 0xa9, 0x67, 0xf6, 0x62, 0x01, 0xb3, 0x0c, 0x29,
0x36, 0x36, 0x35, 0xfe, 0x70, 0x61, 0xf7, 0x38, 0x00, 0x00, 0x00, 0x12, 0x00, 0xde, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0x00, 0xd6, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x0f, 0x01, 0x61, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x07,
0x01, 0x81, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x2a, 0x01, 0xdf, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0f, 0x02, 0x2a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x05, 0x00, 0x0f, 0x02, 0x5a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x16,
0x02, 0x98, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x4c, 0x03, 0x49, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x1a, 0x03, 0xcc, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09,
0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x01, 0x00, 0x1e,
0x01, 0x41, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x02, 0x00, 0x0e, 0x01, 0x71, 0x00, 0x03,
0x00, 0x01, 0x04, 0x09, 0x00, 0x03, 0x00, 0x54, 0x01, 0x89, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09,
0x00, 0x04, 0x00, 0x1e, 0x02, 0x0a, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x05, 0x00, 0x1e,
0x02, 0x3a, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09, 0x00, 0x06, 0x00, 0x2c, 0x02, 0x6a, 0x00, 0x03,
0x00, 0x01, 0x04, 0x09, 0x00, 0x0d, 0x00, 0x98, 0x02, 0xaf, 0x00, 0x03, 0x00, 0x01, 0x04, 0x09,
0x00, 0x0e, 0x00, 0x34, 0x03, 0x96, 0x00, 0x43, 0x00, 0x6f, 0x00, 0x70, 0x00, 0x79, 0x00, 0x72,
0x00, 0x69, 0x00, 0x67, 0x00, 0x68, 0x00, 0x74, 0x00, 0x20, 0x00, 0x28, 0x00, 0x63, 0x00, 0x29,
0x00, 0x20, 0x00, 0x32, 0x00, 0x30, 0x00, 0x31, 0x00, 0x35, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x53,
0x00, 0x74, 0x00, 0x65, 0x00, 0x70, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x41,
0x00, 0x68, 0x00, 0x6c, 0x00, 0x66, 0x00, 0x20, 0x00, 0x28, 0x00, 0x68, 0x00, 0x74, 0x00, 0x74,
0x00, 0x70, 0x00, 0x73, 0x00, 0x3a, 0x00, 0x2f, 0x00, 0x2f, 0x00, 0x67, 0x00, 0x69, 0x00, 0x74,
0x00, 0x68, 0x00, 0x75, 0x00, 0x62, 0x00, 0x2e, 0x00, 0x63, 0x00, 0x6f, 0x00, 0x6d, 0x00, 0x2f,
0x00, 0x73, 0x00, 0x2d, 0x00, 0x61, 0x00, 0x2f, 0x00, 0x64, 0x00, 0x69, 0x00, 0x67, 0x00, 0x69,
0x00, 0x74, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x2d, 0x00, 0x6e, 0x00, 0x75, 0x00, 0x6d, 0x00, 0x62,
0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x2d, 0x00, 0x66, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74,
0x00, 0x20, 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, 0x00, 0x70, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6e,
0x00, 0x2e, 0x00, 0x61, 0x00, 0x68, 0x00, 0x6c, 0x00, 0x66, 0x00, 0x40, 0x00, 0x67, 0x00, 0x6f,
0x00, 0x6f, 0x00, 0x67, 0x00, 0x6c, 0x00, 0x65, 0x00, 0x6d, 0x00, 0x61, 0x00, 0x69, 0x00, 0x6c,
0x00, 0x2e, 0x00, 0x63, 0x00, 0x6f, 0x00, 0x6d, 0x00, 0x29, 0x00, 0x00, 0x43, 0x6f, 0x70, 0x79,
0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x63, 0x29, 0x20, 0x32, 0x30, 0x31, 0x35, 0x2c, 0x20,
0x53, 0x74, 0x65, 0x70, 0x68, 0x61, 0x6e, 0x20, 0x41, 0x68, 0x6c, 0x66, 0x20, 0x28, 0x68, 0x74,
0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
0x2f, 0x73, 0x2d, 0x61, 0x2f, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x2d, 0x6e, 0x75, 0x6d,
0x62, 0x65, 0x72, 0x73, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x68, 0x61,
0x6e, 0x2e, 0x61, 0x68, 0x6c, 0x66, 0x40, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x6d, 0x61, 0x69,
0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x29, 0x00, 0x00, 0x44, 0x00, 0x69, 0x00, 0x67, 0x00, 0x69, 0x00,
0x74, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x20, 0x00, 0x4e, 0x00, 0x75, 0x00, 0x6d, 0x00, 0x62, 0x00,
0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x00, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x20, 0x4e,
0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x00, 0x00, 0x52, 0x00, 0x65, 0x00, 0x67, 0x00, 0x75, 0x00,
0x6c, 0x00, 0x61, 0x00, 0x72, 0x00, 0x00, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x00, 0x00,
0x46, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x67, 0x00,
0x65, 0x00, 0x20, 0x00, 0x32, 0x00, 0x2e, 0x00, 0x30, 0x00, 0x20, 0x00, 0x3a, 0x00, 0x20, 0x00,
0x44, 0x00, 0x69, 0x00, 0x67, 0x00, 0x69, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x20, 0x00,
0x4e, 0x00, 0x75, 0x00, 0x6d, 0x00, 0x62, 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x20, 0x00,
0x3a, 0x00, 0x20, 0x00, 0x36, 0x00, 0x2d, 0x00, 0x36, 0x00, 0x2d, 0x00, 0x32, 0x00, 0x30, 0x00,
0x31, 0x00, 0x35, 0x00, 0x00, 0x46, 0x6f, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x67, 0x65, 0x20, 0x32,
0x2e, 0x30, 0x20, 0x3a, 0x20, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x20, 0x4e, 0x75, 0x6d,
0x62, 0x65, 0x72, 0x73, 0x20, 0x3a, 0x20, 0x36, 0x2d, 0x36, 0x2d, 0x32, 0x30, 0x31, 0x35, 0x00,
0x00, 0x44, 0x00, 0x69, 0x00, 0x67, 0x00, 0x69, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x20,
0x00, 0x4e, 0x00, 0x75, 0x00, 0x6d, 0x00, 0x62, 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x00,
0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x20, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x00,
0x00, 0x56, 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x20,
0x00, 0x30, 0x00, 0x30, 0x00, 0x31, 0x00, 0x2e, 0x00, 0x31, 0x00, 0x30, 0x00, 0x32, 0x00, 0x00,
0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x30, 0x30, 0x31, 0x2e, 0x31, 0x30, 0x32, 0x00,
0x00, 0x44, 0x00, 0x69, 0x00, 0x67, 0x00, 0x69, 0x00, 0x74, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x4e,
0x00, 0x75, 0x00, 0x6d, 0x00, 0x62, 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x2d, 0x00, 0x52,
0x00, 0x65, 0x00, 0x67, 0x00, 0x75, 0x00, 0x6c, 0x00, 0x61, 0x00, 0x72, 0x00, 0x00, 0x44, 0x69,
0x67, 0x69, 0x74, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2d, 0x52, 0x65, 0x67,
0x75, 0x6c, 0x61, 0x72, 0x00, 0x00, 0x54, 0x00, 0x68, 0x00, 0x69, 0x00, 0x73, 0x00, 0x20, 0x00,
0x46, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x20, 0x00, 0x53, 0x00, 0x6f, 0x00, 0x66, 0x00,
0x74, 0x00, 0x77, 0x00, 0x61, 0x00, 0x72, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, 0x00, 0x73, 0x00,
0x20, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x65, 0x00,
0x64, 0x00, 0x20, 0x00, 0x75, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00, 0x20, 0x00,
0x74, 0x00, 0x68, 0x00, 0x65, 0x00, 0x20, 0x00, 0x53, 0x00, 0x49, 0x00, 0x4c, 0x00, 0x20, 0x00,
0x4f, 0x00, 0x70, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x46, 0x00, 0x6f, 0x00, 0x6e, 0x00,
0x74, 0x00, 0x20, 0x00, 0x4c, 0x00, 0x69, 0x00, 0x63, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x73, 0x00,
0x65, 0x00, 0x2c, 0x00, 0x20, 0x00, 0x56, 0x00, 0x65, 0x00, 0x72, 0x00, 0x73, 0x00, 0x69, 0x00,
0x6f, 0x00, 0x6e, 0x00, 0x20, 0x00, 0x31, 0x00, 0x2e, 0x00, 0x31, 0x00, 0x2e, 0x00, 0x00, 0x54,
0x68, 0x69, 0x73, 0x20, 0x46, 0x6f, 0x6e, 0x74, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72,
0x65, 0x20, 0x69, 0x73, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x64, 0x20, 0x75, 0x6e,
0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x49, 0x4c, 0x20, 0x4f, 0x70, 0x65, 0x6e,
0x20, 0x46, 0x6f, 0x6e, 0x74, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2c, 0x20, 0x56,
0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x31, 0x2e, 0x31, 0x2e, 0x00, 0x00, 0x68, 0x00, 0x74,
0x00, 0x74, 0x00, 0x70, 0x00, 0x3a, 0x00, 0x2f, 0x00, 0x2f, 0x00, 0x73, 0x00, 0x63, 0x00, 0x72,
0x00, 0x69, 0x00, 0x70, 0x00, 0x74, 0x00, 0x73, 0x00, 0x2e, 0x00, 0x73, 0x00, 0x69, 0x00, 0x6c,
0x00, 0x2e, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x67, 0x00, 0x2f, 0x00, 0x4f, 0x00, 0x46, 0x00, 0x4c,
0x00, 0x00, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73,
0x2e, 0x73, 0x69, 0x6c, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x4f, 0x46, 0x4c, 0x00, 0x00, 0x00, 0x00,
0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x83, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00 0x00, 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x0f, 0x00, 0x11, 0x00, 0x13,
0x00, 0x14, 0x00, 0x15, 0x00, 0x16, 0x00, 0x17, 0x00, 0x18, 0x00, 0x19, 0x00, 0x1a, 0x00, 0x1b,
0x00, 0x1c, 0x00, 0x1d, 0x00, 0x1e, 0x00, 0x28, 0x00, 0x2a, 0x00, 0x2e, 0x00, 0x30, 0x00, 0x33,
0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0xda, 0x32, 0xf0, 0x84, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x98, 0x6e, 0xf9,
0x00, 0x00, 0x00, 0x00, 0xe0, 0xf3, 0xcd, 0x87
}; };

View File

@ -233,24 +233,24 @@ void show_MinerScreen(unsigned long mElapsed){
shares, totalKHashes, CurrentHashrate); shares, totalKHashes, CurrentHashrate);
//Hashrate //Hashrate
render.setFontSize(70); render.setFontSize(35);
render.setCursor(19, 118); render.setCursor(19, 118);
render.setFontColor(TFT_BLACK); render.setFontColor(TFT_BLACK);
render.rdrawString(CurrentHashrate, 118, 114, TFT_BLACK); render.rdrawString(CurrentHashrate, 118, 114, TFT_BLACK);
//Total hashes //Total hashes
render.setFontSize(36); render.setFontSize(18);
render.rdrawString(String(Mhashes).c_str(), 268, 138, TFT_BLACK); render.rdrawString(String(Mhashes).c_str(), 268, 138, TFT_BLACK);
//Block templates //Block templates
render.setFontSize(36); render.setFontSize(18);
render.drawString(String(templates).c_str(), 186, 20, 0xDEDB); render.drawString(String(templates).c_str(), 186, 20, 0xDEDB);
//Best diff //Best diff
char best_diff_string[8] = {0}; char best_diff_string[16] = {0};
sprintf(best_diff_string, "%.4f", best_diff); suffix_string(best_diff, best_diff_string, 16, 0);
render.setFontSize(36); render.setFontSize(18);
render.drawString(String(best_diff_string).c_str(), 186, 48, 0xDEDB); render.drawString(String(best_diff_string).c_str(), 186, 48, 0xDEDB);
//32Bit shares //32Bit shares
render.setFontSize(36); render.setFontSize(18);
render.drawString(String(shares).c_str(), 186, 76, 0xDEDB); render.drawString(String(shares).c_str(), 186, 76, 0xDEDB);
//Hores //Hores
char timeMining[15]; char timeMining[15];
@ -261,23 +261,23 @@ void show_MinerScreen(unsigned long mElapsed){
int mins = (secElapsed - (days * 86400) - (hours * 3600)) / 60; //Remove the number of hours and calculate the minutes. int mins = (secElapsed - (days * 86400) - (hours * 3600)) / 60; //Remove the number of hours and calculate the minutes.
int secs = secElapsed - (days * 86400) - (hours * 3600) - (mins * 60); int secs = secElapsed - (days * 86400) - (hours * 3600) - (mins * 60);
sprintf(timeMining, "%01d %02d:%02d:%02d", days, hours, mins, secs); sprintf(timeMining, "%01d %02d:%02d:%02d", days, hours, mins, secs);
render.setFontSize(27); render.setFontSize(14);
render.rdrawString(String(timeMining).c_str(), 315, 104, 0xDEDB); render.rdrawString(String(timeMining).c_str(), 315, 104, 0xDEDB);
//Valid Blocks //Valid Blocks
render.setFontSize(48); render.setFontSize(24);
render.drawString(String(valids).c_str(), 285, 56, 0xDEDB); render.drawString(String(valids).c_str(), 285, 56, 0xDEDB);
//Print Temp //Print Temp
String temp = String(temperatureRead(), 0); String temp = String(temperatureRead(), 0);
render.setFontSize(20); render.setFontSize(10);
render.rdrawString(String(temp).c_str(), 239, 1, TFT_BLACK); render.rdrawString(String(temp).c_str(), 239, 1, TFT_BLACK);
render.setFontSize(7); render.setFontSize(4);
render.rdrawString(String(0).c_str(), 244, 3, TFT_BLACK); render.rdrawString(String(0).c_str(), 244, 3, TFT_BLACK);
//Print Hour //Print Hour
render.setFontSize(20); render.setFontSize(10);
render.rdrawString(getTime().c_str(), 286, 1, TFT_BLACK); render.rdrawString(getTime().c_str(), 286, 1, TFT_BLACK);
// pool url // pool url
@ -305,7 +305,7 @@ void show_ClockScreen(unsigned long mElapsed){
shares, totalKHashes, CurrentHashrate); shares, totalKHashes, CurrentHashrate);
//Hashrate //Hashrate
render.setFontSize(50); render.setFontSize(25);
render.setCursor(19, 122); render.setCursor(19, 122);
render.setFontColor(TFT_BLACK); render.setFontColor(TFT_BLACK);
@ -321,7 +321,7 @@ void show_ClockScreen(unsigned long mElapsed){
background.drawString(getBTCprice().c_str(), 202, 3, GFXFF); background.drawString(getBTCprice().c_str(), 202, 3, GFXFF);
//Print BlockHeight //Print BlockHeight
render.setFontSize(36); render.setFontSize(18);
render.rdrawString(getBlockHeight().c_str(), 254, 140, TFT_BLACK); render.rdrawString(getBlockHeight().c_str(), 254, 140, TFT_BLACK);
//Print Hour //Print Hour
@ -383,11 +383,11 @@ void show_GlobalHashScreen(unsigned long mElapsed){
background.drawString(gData.difficulty.c_str(), 302, 88, GFXFF); background.drawString(gData.difficulty.c_str(), 302, 88, GFXFF);
//Print Global Hashrate //Print Global Hashrate
render.setFontSize(34); render.setFontSize(17);
render.rdrawString(gData.globalHash.c_str(), 274, 145, TFT_BLACK); render.rdrawString(gData.globalHash.c_str(), 274, 145, TFT_BLACK);
//Print BlockHeight //Print BlockHeight
render.setFontSize(55); render.setFontSize(28);
gData.currentBlock = getBlockHeight(); gData.currentBlock = getBlockHeight();
render.rdrawString(gData.currentBlock.c_str(), 140, 104, 0xDEDB); render.rdrawString(gData.currentBlock.c_str(), 140, 104, 0xDEDB);

View File

@ -394,4 +394,63 @@ miner_data calculateMiningData(mining_subscribe& mWorker, mining_job mJob){
Serial.println(""); Serial.println("");
#endif #endif
return mMiner; return mMiner;
}
/* Convert a double value into a truncated string for displaying with its
* associated suitable for Mega, Giga etc. Buf array needs to be long enough */
void suffix_string(double val, char *buf, size_t bufsiz, int sigdigits)
{
const double kilo = 1000;
const double mega = 1000000;
const double giga = 1000000000;
const double tera = 1000000000000;
const double peta = 1000000000000000;
const double exa = 1000000000000000000;
// minimum diff value to display
const double min_diff = 0.001;
char suffix[2] = "";
bool decimal = true;
double dval;
if (val >= exa) {
val /= peta;
dval = val / kilo;
strcpy(suffix, "E");
} else if (val >= peta) {
val /= tera;
dval = val / kilo;
strcpy(suffix, "P");
} else if (val >= tera) {
val /= giga;
dval = val / kilo;
strcpy(suffix, "T");
} else if (val >= giga) {
val /= mega;
dval = val / kilo;
strcpy(suffix, "G");
} else if (val >= mega) {
val /= kilo;
dval = val / kilo;
strcpy(suffix, "M");
} else if (val >= kilo) {
dval = val / kilo;
strcpy(suffix, "K");
} else {
dval = val;
if (dval < min_diff)
dval = 0.0;
}
if (!sigdigits) {
if (decimal)
snprintf(buf, bufsiz, "%.3g%s", dval, suffix);
else
snprintf(buf, bufsiz, "%d%s", (unsigned int)dval, suffix);
} else {
/* Always show sigdigits + 1, padded on right with zeroes
* followed by suffix */
int ndigits = sigdigits - 1 - (dval > 0.0 ? floor(log10(dval)) : 0);
snprintf(buf, bufsiz, "%*.*f%s", sigdigits + 1, ndigits, dval, suffix);
}
} }

View File

@ -22,7 +22,7 @@ double le256todouble(const void *target);
double diff_from_target(void *target); double diff_from_target(void *target);
miner_data calculateMiningData(mining_subscribe& mWorker, mining_job mJob); miner_data calculateMiningData(mining_subscribe& mWorker, mining_job mJob);
bool checkValid(unsigned char* hash, unsigned char* target); bool checkValid(unsigned char* hash, unsigned char* target);
void suffix_string(double val, char *buf, size_t bufsiz, int sigdigits);
#endif // UTILS_API_H #endif // UTILS_API_H