leocad/common/minifig.cpp

1191 lines
103 KiB
C++
Raw Normal View History

2011-09-07 23:06:51 +02:00
//
// Minifig Wizard base class, calculates position/rotation of all pieces.
//
#include "lc_global.h"
#include "lc_colors.h"
2012-05-19 03:13:05 +02:00
#include "lc_math.h"
2011-09-07 23:06:51 +02:00
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <zlib.h>
2011-09-07 23:06:51 +02:00
#include "minifig.h"
#include "opengl.h"
#include "pieceinf.h"
#include "globals.h"
#include "project.h"
#include "system.h"
#include "library.h"
#include "lc_application.h"
// =============================================================================
// Static variables
// Settings for the 2012.1 update (from holly-wood@holly-wood.it).
static const unsigned char sDefaultSettings[] =
{
0x78,0x9C,0xED,0x7D,0x79,0x73,0xDB,0x46,0xB6,0xEF,0xDF,0x77,0xAA,0xE6,0x3B,0x60,0xF8,0xEA,0x26,0x4E,0x95,0x28,0x13,0x0B,0xB7,0x4C,0x26,0xF5,0x28,0x6A,0x8D,0xB5,0x30,0x24,0x6D,0x25,
0x33,0x99,0x72,0x81,0x24,0x24,0x62,0x04,0x02,0x0C,0x00,0x5A,0xD6,0xD4,0xFB,0xF0,0xEF,0x9C,0xEE,0x06,0x08,0x62,0xED,0x03,0xCA,0x9E,0xDC,0x5B,0x54,0x62,0x9B,0x22,0x89,0xFE,0xF5,0x72,
0xF6,0x3E,0x7D,0xFA,0xAF,0xCA,0xCD,0xF5,0xD0,0x5C,0x1C,0xDB,0xAE,0xFD,0xE7,0x3F,0xFD,0x55,0xF9,0x60,0xF9,0x81,0xED,0xB9,0x8A,0xD6,0x52,0xB5,0x66,0x4B,0x85,0xB7,0xF0,0x5D,0xAD,0xD5,
0x32,0x9A,0xAD,0x4E,0x53,0xD5,0x94,0x4B,0xCF,0x71,0x5E,0x94,0x7B,0xCF,0x5B,0x28,0xE6,0x62,0x61,0x2D,0x94,0xEB,0x53,0xDF,0x7C,0x56,0xD6,0xA6,0x1F,0x06,0xCA,0x66,0xBD,0x30,0x43,0x4B,
0x7C,0x5D,0xDB,0x3E,0xD9,0x85,0x87,0x95,0x6B,0x73,0xBE,0x5C,0x99,0xAE,0xAB,0xDC,0xD8,0xF3,0xA5,0x69,0x39,0x8A,0xB5,0xB0,0x43,0x68,0x20,0x98,0x9B,0xAE,0xE2,0xF9,0x0B,0xCB,0x57,0x02,
0x6B,0x1E,0x02,0xFA,0xF6,0xC1,0x7E,0x53,0xED,0x11,0x20,0xF5,0xF8,0x49,0x55,0x05,0x54,0xC2,0x93,0x86,0x78,0xB2,0x0D,0x63,0x6C,0xEA,0xAA,0xEC,0x93,0x6D,0x3E,0x47,0xF8,0xB2,0xD3,0x6C,
0xF5,0x9A,0xAD,0xB6,0x32,0x70,0x1C,0xCB,0x55,0x26,0x2B,0x3B,0x5C,0x2A,0x0F,0xF6,0x67,0x78,0xF4,0x93,0xE9,0xDB,0xDE,0x26,0x50,0x66,0x9B,0xC7,0x40,0x7C,0xB9,0x0F,0xD3,0x83,0x5F,0x96,
0x84,0xE9,0x6F,0x61,0xFA,0x6C,0x52,0x3A,0x84,0x27,0xB5,0xF8,0x49,0xB5,0x95,0x3B,0x9D,0x51,0xFF,0xAE,0x27,0x2F,0x2E,0x74,0x3A,0xC0,0xBF,0xAD,0xC0,0x0E,0xAC,0x6D,0x6F,0x61,0x52,0xB4,
0x3E,0x01,0x53,0x2C,0x04,0x00,0xB6,0xD4,0xA6,0x66,0x50,0x30,0x95,0xB9,0x6F,0x99,0x48,0x17,0xB3,0x17,0xE5,0xA7,0xE3,0xE1,0xB1,0x32,0x05,0x6A,0x71,0x1F,0xB7,0x0D,0x22,0x25,0x4A,0x76,
0x85,0xE1,0x6F,0x9F,0xEC,0xD2,0x9E,0x14,0x13,0x87,0xA4,0xA4,0xD2,0x9E,0xD4,0xB7,0x4F,0x02,0x59,0xE4,0x4C,0x5C,0xDD,0xE1,0x23,0x55,0x37,0x35,0x59,0xBA,0x61,0x3D,0x17,0x4F,0x6A,0x6C,
0x10,0x3A,0xE1,0x49,0x6D,0xFB,0x24,0x4C,0xB9,0x2C,0x4B,0x08,0xB1,0x81,0xFF,0xFD,0x55,0xF9,0xDB,0x2B,0xFE,0x60,0x7B,0xD3,0xA5,0x1D,0x00,0x53,0x39,0x96,0x02,0xFF,0xC2,0x3C,0xB1,0x59,
0x62,0xF2,0x4B,0xF9,0xA0,0x1F,0xB7,0x5A,0x20,0x46,0x94,0xA5,0xFD,0xB8,0xB4,0xFC,0x2F,0x81,0x7E,0x6D,0xBB,0xB0,0x3E,0x33,0xEB,0xD1,0x76,0x5D,0xDB,0x7D,0x54,0x9E,0x91,0xC5,0xFF,0xAA,
0x98,0xBE,0xA5,0xCC,0xBD,0xD5,0xCA,0x72,0x61,0x1E,0x8E,0x8F,0x8F,0xF1,0xAB,0x67,0xAB,0x75,0xF8,0xA2,0x38,0xEC,0x01,0xFC,0xDC,0x7E,0x74,0x3D,0xDF,0x5A,0xF0,0x59,0xB9,0xBA,0x9D,0x8E,
0xEF,0x4E,0xDF,0x0F,0xA7,0x57,0x77,0xB7,0xFC,0x9D,0xE9,0xD2,0xDA,0x8A,0x61,0x3E,0xC0,0xD0,0x72,0x9C,0x80,0xBF,0xF9,0x6D,0xA0,0xAC,0xE0,0xFD,0x07,0xFB,0x51,0x79,0xB4,0x5C,0xCB,0x37,
0x43,0x18,0xE6,0xF3,0x12,0xA4,0xA8,0x98,0x7C,0x44,0x30,0x3F,0x99,0xB6,0x63,0xCE,0x1C,0xEB,0x08,0x1B,0x34,0x03,0xE5,0x19,0x1A,0xC0,0x7F,0x81,0xB0,0x6C,0x5F,0x59,0x7B,0x81,0x8D,0xA2,
0x55,0x31,0xDD,0x85,0xE2,0x7B,0xA1,0x89,0xBF,0x1C,0xF3,0x09,0x7D,0xB4,0x3F,0x41,0x37,0x5F,0xBC,0x8D,0xF2,0xB0,0x81,0x67,0xD6,0xDE,0x33,0x88,0x62,0xEF,0x13,0xFC,0x05,0xCF,0x62,0x6B,
0x81,0xE5,0x80,0x60,0xC6,0xC6,0x15,0x78,0xC5,0x06,0x7A,0x04,0xD2,0x2C,0x54,0x4C,0x27,0xF0,0x94,0x95,0x65,0xBA,0x08,0x63,0x86,0xF8,0x7D,0x05,0xC8,0xD5,0x0F,0x95,0x25,0x22,0x7B,0x30,
0x59,0x82,0x32,0x16,0x8A,0x05,0x0D,0xBE,0x60,0x6B,0xA1,0xBD,0xB2,0x04,0xED,0xF8,0xD0,0x9C,0x89,0x44,0x6F,0x2A,0xAE,0x95,0x22,0xA5,0xB9,0xE7,0x86,0xA6,0xCD,0x26,0x3A,0x1A,0x3D,0xFB,
0xFC,0x58,0xF9,0x15,0x7A,0x8A,0x3A,0x03,0xA8,0x90,0xB5,0x07,0xA0,0xF8,0xF4,0xDC,0x5B,0x58,0x48,0x0F,0x30,0x10,0x1F,0x7A,0xFC,0x70,0x84,0xD4,0xF0,0xAF,0x4D,0x10,0x2A,0x0B,0xEF,0xD9,
0x75,0x3C,0x20,0x12,0xFC,0x6A,0xD4,0x1F,0x36,0xCB,0x0F,0xBE,0xB7,0xC2,0x36,0x9E,0x9F,0x9F,0x8F,0x97,0x48,0xDF,0xCD,0x67,0xA0,0xEF,0x63,0x3B,0x7C,0xBB,0x72,0xE6,0xE6,0xA2,0x69,0xB9,
0xC7,0xCB,0x70,0xE5,0x1C,0x2B,0xF7,0xB0,0xD6,0x36,0x40,0x2A,0x0F,0x80,0xB4,0x30,0x5F,0xB0,0xCB,0x39,0xF4,0x0F,0xC3,0xC6,0xE6,0x66,0x16,0xA8,0x00,0x31,0x38,0x8E,0xCA,0xD0,0x9E,0x6D,
0x98,0x5E,0x36,0x25,0x38,0x37,0xF8,0xC0,0x31,0x5B,0x7A,0x77,0xB3,0x9A,0x81,0xDE,0x55,0x00,0x20,0xFA,0xAE,0x6B,0xC2,0x24,0xF9,0xD6,0x03,0xA7,0x64,0xF8,0xF6,0xB6,0xEB,0x47,0xDB,0x06,
0x83,0xD0,0x9E,0x3F,0xE1,0x44,0x33,0xA2,0x1B,0x2C,0x16,0x6C,0x8D,0x4D,0xE4,0xD3,0xF8,0x3B,0x0B,0xEB,0x81,0x91,0x21,0xBE,0xC1,0xB5,0xAC,0xF7,0xC0,0x74,0xAE,0x8B,0x93,0xE0,0x39,0x0B,
0x44,0x5E,0x6C,0x7C,0x9C,0x68,0xFC,0x8E,0x63,0x6E,0xDC,0xF9,0x12,0xDB,0x83,0xEF,0xE1,0x1B,0x6B,0xDF,0x7B,0xF4,0xCD,0x55,0x8A,0xA6,0x80,0x28,0xC2,0x10,0x9E,0x01,0x7E,0xF4,0xFC,0xE8,
0x7B,0x6B,0x68,0xDD,0x76,0x43,0x20,0x51,0xA6,0xC7,0x39,0x87,0x70,0x19,0x77,0xAC,0x70,0x52,0xBF,0xB9,0xBA,0xBD,0x3A,0xBF,0xBA,0x78,0x3F,0x3E,0x53,0x2E,0xCE,0x6E,0xCF,0xC6,0x83,0xE9,
0xDD,0x58,0x99,0x9C,0x31,0x66,0xF8,0x3E,0xE6,0x06,0x9F,0x71,0xB8,0xE7,0x5A,0x91,0x49,0xA0,0x60,0xD3,0x11,0x1D,0x08,0x22,0x3C,0x8E,0x58,0x27,0xFA,0x0E,0x4E,0x1A,0xE7,0x06,0xB0,0x33,
0x16,0xC8,0x26,0x2F,0x4A,0x53,0xB1,0xD9,0x30,0x5E,0xF8,0xFB,0x76,0x10,0xE0,0x40,0x91,0x81,0x7C,0x0F,0x5E,0x70,0xE1,0xB1,0x11,0xBA,0xCE,0xE4,0xBD,0x87,0x19,0xC4,0x69,0x33,0x37,0x4E,
0x08,0x6F,0x04,0x21,0x08,0x9A,0x23,0xC1,0x70,0xD0,0xAB,0x85,0xFD,0x00,0xCB,0x02,0xF8,0x8C,0x7A,0x38,0xCD,0x03,0xAD,0xE2,0x1B,0xD8,0xF1,0xBF,0x30,0xFE,0x07,0x5B,0x87,0xB1,0x3F,0x67,
0x04,0x5C,0x0B,0xA0,0x2E,0xEF,0x19,0xB1,0x61,0xBE,0x56,0x66,0xF8,0x3D,0x7E,0xAD,0xF1,0xC3,0xA9,0x1D,0xAC,0x1D,0xF3,0x85,0x75,0xFD,0xC7,0x06,0xBE,0x31,0x98,0xBE,0xBD,0x3E,0x1D,0xF3,
0xB5,0x13,0xEF,0xFE,0x70,0xEE,0x98,0x8F,0xC1,0x8F,0xCA,0x0F,0x37,0x66,0xE8,0xDB,0x9F,0xE1,0xC5,0xDD,0xC3,0x03,0xCC,0xFF,0x8F,0xD8,0xC6,0x6E,0x13,0x9C,0x9E,0x90,0x78,0xC4,0xEA,0x89,
0xB9,0xC2,0x55,0xB3,0x43,0xDE,0x7D,0xF6,0x75,0x58,0x7C,0x41,0x6E,0xE2,0x1B,0xD8,0x56,0xEA,0xC7,0xB1,0x83,0x90,0x43,0x64,0x3A,0xC5,0x70,0xE2,0x5F,0xD3,0x60,0x30,0xBD,0x8D,0x06,0x23,
0x8C,0xA5,0x0D,0xAA,0xC2,0x4D,0x62,0x44,0x83,0x31,0x9D,0x67,0x64,0xA3,0x16,0x50,0x79,0x60,0xF9,0x9F,0x18,0x31,0xFA,0x20,0x81,0xC2,0x0D,0xAC,0x13,0x2C,0x08,0xFB,0x6E,0x34,0x60,0x33,
0x96,0x59,0xB0,0xB4,0xF8,0x96,0x62,0xAA,0x2A,0xFC,0xD1,0xE0,0x8F,0x8E,0x42,0x57,0x31,0x75,0x9D,0x35,0xE0,0xAD,0x41,0xBE,0xC0,0xFA,0x99,0xEB,0xB5,0x65,0xFA,0xA6,0x3B,0x07,0xD1,0xB8,
0x3B,0xB6,0x16,0xAC,0xED,0xA3,0x6F,0x59,0xDB,0x26,0x41,0xBF,0x3A,0x1C,0x4F,0xCC,0x2B,0x1B,0x9D,0xC7,0x5E,0xC7,0x5C,0x80,0x52,0x8D,0x4B,0x34,0x98,0x37,0x98,0xC1,0xB9,0xF5,0xA5,0x74,
0x1C,0xCC,0x47,0x44,0xD2,0x9C,0x9A,0x33,0x9A,0x4E,0xFD,0xA2,0x9A,0x0E,0x5B,0x9C,0x0C,0x07,0xB7,0xCA,0xDD,0xF8,0xF4,0x2C,0x87,0x39,0x41,0x06,0x9A,0x6C,0x95,0x90,0xB6,0x99,0xA8,0x0B,
0x97,0xDE,0xE6,0x71,0xC9,0xE6,0xC7,0x76,0xE7,0xCE,0x06,0x04,0xF1,0xC6,0x85,0xF9,0xB3,0xE7,0x36,0x2E,0x05,0xA8,0x9C,0x39,0xC8,0x61,0x2E,0x6A,0xB9,0xBC,0x04,0x3E,0xF3,0xF8,0x78,0x8E,
0x98,0x94,0xF0,0x36,0xA1,0x10,0xE4,0x28,0x30,0x41,0xA9,0xC0,0x12,0xC3,0xEF,0x2B,0x2E,0x42,0x42,0xBE,0x1C,0xBC,0x39,0x26,0x76,0x93,0x2D,0xB1,0x8F,0x7F,0x1B,0x0D,0xC6,0xD3,0x09,0xC3,
0xFA,0x6D,0x14,0xC9,0xB5,0x63,0x05,0x28,0x97,0x91,0x29,0x8A,0xA9,0x8D,0x1B,0xD3,0x3C,0xF3,0x39,0x50,0x1C,0x73,0x69,0x1D,0xF5,0x3A,0xFE,0x9C,0x37,0xED,0xD8,0x33,0xDF,0x04,0x19,0x82,
0x8D,0x36,0x81,0x6A,0xD6,0x96,0xBB,0x60,0xD2,0x43,0xC8,0x69,0x20,0x64,0x78,0x3F,0x58,0x7A,0xCF,0x28,0xD2,0x6D,0x37,0xD2,0x46,0xFC,0xE9,0x10,0x69,0x2C,0xD9,0x04,0x7F,0x7B,0xED,0x5B,
0x9F,0x6C,0x50,0x22,0x20,0x0B,0x40,0x2F,0x71,0x19,0x66,0x3E,0xC1,0xC8,0x3D,0x10,0xE6,0x56,0xA4,0x47,0xD1,0xCE,0x11,0xB3,0x0C,0x2F,0x6F,0xEF,0xA6,0x8A,0xF5,0xFB,0x06,0x06,0x2F,0x34,
0x41,0xE3,0x1C,0x59,0xEF,0x47,0x65,0x82,0xE3,0x18,0x61,0xBB,0x0D,0x66,0x83,0x00,0x0C,0x93,0x63,0x2E,0xD3,0x3A,0xA0,0x3F,0xC0,0xEA,0xE0,0x6A,0x07,0x9B,0xF0,0xAD,0x67,0x1F,0x5C,0x2E,
0xD6,0x02,0x7B,0xE8,0xD8,0x01,0xED,0x88,0xD3,0x73,0xAC,0xDC,0xE1,0xF7,0x85,0x4A,0x0B,0x3D,0x0F,0x6C,0x8F,0x78,0xBC,0x4C,0x17,0xB8,0x39,0x4F,0xC1,0x2A,0xE1,0xAA,0x43,0xCF,0xA1,0xE9,
0xB9,0xF7,0xE8,0x82,0x01,0xAB,0xA0,0x9C,0x00,0xE2,0xBC,0x19,0x9D,0x8A,0x89,0x4F,0x28,0xF2,0x60,0xC3,0x35,0x4B,0xC3,0xFA,0xCC,0xC5,0x6C,0x83,0x4F,0xCA,0x5F,0x94,0x58,0x94,0x87,0xF0,
0x7B,0x13,0x66,0x13,0xD8,0x8E,0x93,0x7B,0xA4,0x34,0x03,0x10,0x9F,0xB0,0x40,0xA8,0xCB,0xB3,0x4B,0xC1,0x35,0x28,0x3C,0x84,0xED,0x44,0x4A,0x0D,0x67,0x21,0xD8,0xCC,0xA2,0x5F,0x39,0xF3,
0x0A,0xCD,0xC7,0x15,0x2F,0xDA,0xDD,0xE6,0x67,0xF8,0xD2,0x7A,0xED,0xE1,0xDA,0x60,0xB7,0x5C,0x24,0x83,0xC1,0x64,0x78,0x75,0xD5,0x44,0x8B,0xE2,0x18,0x24,0x86,0xF0,0x82,0x61,0x0A,0xCF,
0xFE,0x12,0x9B,0xA1,0x36,0x9A,0x00,0xA1,0xB5,0x82,0x27,0x71,0x81,0x03,0xCF,0xD9,0x30,0x61,0xB2,0x71,0x43,0x5B,0x10,0xE9,0xB1,0xE7,0x3F,0x32,0x26,0x31,0x51,0xDE,0x2C,0xB0,0xB3,0x26,
0x33,0xAC,0x4C,0x4E,0x78,0xD1,0x33,0x91,0x72,0x61,0x43,0xE5,0x6A,0x14,0x34,0x38,0x57,0xDC,0x38,0xBC,0x00,0xFF,0x66,0xBA,0x16,0xC8,0x73,0xAB,0x7E,0x22,0x5B,0xF1,0x38,0xEA,0xE0,0x24,
0x64,0x14,0xC6,0x58,0xE6,0x1F,0xC8,0xC1,0x1F,0x19,0x07,0xFF,0x93,0x11,0xD9,0x9D,0x6B,0x71,0x8D,0x84,0x9A,0x74,0x61,0xC3,0x82,0x31,0xFD,0x08,0xB3,0x82,0x53,0x12,0xEB,0x52,0xAE,0x9D,
0x70,0xFA,0x4D,0xFE,0x75,0x3B,0xF8,0x5E,0x71,0x95,0xBF,0x29,0x3F,0x4C,0x2E,0xEF,0xEE,0xFF,0xDF,0xE5,0xD5,0xE9,0xD9,0x8F,0xCA,0x3F,0x7E,0x80,0x55,0x1E,0xDC,0x9F,0x5E,0x8D,0x7F,0xFC,
0xE7,0x3F,0x1A,0xFF,0x1C,0x99,0xE1,0x12,0xD5,0x00,0xBC,0x64,0xDD,0x80,0x2F,0xA2,0x4C,0x66,0x3F,0x60,0x39,0xC1,0xA0,0x84,0xD2,0x49,0x70,0x47,0xC4,0x8E,0x81,0xBD,0xB0,0x38,0xBD,0x6F,
0xFB,0xC4,0x99,0x30,0xAB,0x90,0xF0,0xC9,0x66,0x82,0xA3,0xDE,0x02,0x9D,0xB1,0xF7,0x76,0x79,0x0A,0x1F,0xC4,0x7E,0xA6,0xFA,0x80,0x1C,0xC0,0x78,0xF5,0xAB,0x75,0x62,0x3B,0x4B,0xD0,0x15,
0xE5,0xC9,0x7A,0x79,0x06,0x03,0x8C,0x0B,0xC9,0x85,0x3D,0x47,0x7B,0x11,0x6C,0x44,0x50,0x41,0x9F,0xB0,0x3F,0xE1,0x32,0x00,0x61,0xC2,0x3A,0xB1,0x35,0x9E,0x83,0xB5,0x35,0x07,0x93,0xC7,
0x5A,0xB0,0x45,0x85,0x36,0xFF,0xEB,0xBF,0xB0,0xF7,0x00,0x3E,0x7F,0xB2,0x60,0x00,0x3F,0x28,0xCC,0x06,0x88,0x16,0x80,0x8D,0x58,0x99,0x6C,0x66,0xC9,0x61,0xB0,0xC1,0x39,0x0B,0x64,0xEC,
0x19,0xD8,0xA3,0x0C,0x0A,0x39,0xD4,0x9C,0x31,0xFA,0x13,0x6F,0x70,0x09,0x28,0xB8,0x7D,0xF7,0x67,0xE1,0x63,0x0F,0xB1,0xFD,0x63,0xE5,0xD6,0x0B,0x85,0x8C,0x02,0xB3,0x0A,0x2D,0xED,0xAD,
0xB5,0x2A,0xF8,0x3C,0x80,0x4E,0x83,0x72,0x0C,0xB8,0x99,0x0A,0x74,0x0A,0x5D,0xC9,0xB6,0x19,0x3F,0xB5,0x42,0x03,0x7D,0x86,0x5F,0x9C,0x3B,0x5E,0xC0,0x25,0xF0,0xC2,0xDB,0xA0,0xAF,0xF1,
0xFB,0x06,0xC0,0x40,0x86,0xBF,0x89,0xF8,0x0D,0x84,0x03,0x98,0x75,0x3E,0xB3,0x14,0xB2,0x4D,0x9A,0x2E,0x78,0xA7,0x6C,0xEE,0x83,0x48,0x16,0x72,0x0A,0x66,0xFC,0xE0,0xA0,0xB5,0x17,0xA1,
0x06,0xDF,0x09,0x8E,0xF9,0x6D,0x74,0xB4,0xA3,0x39,0x6E,0xEE,0x4E,0xCF,0xAE,0x27,0x29,0x13,0x92,0xAF,0x0D,0x7E,0xCE,0x1C,0x2D,0x6E,0xB7,0xAC,0xD1,0x6C,0x01,0x26,0x04,0xB7,0xC6,0xC5,
0xB9,0x00,0x21,0xC8,0x58,0x3A,0x5A,0xB0,0x63,0xE5,0x8A,0xBD,0x09,0x6C,0x3C,0x77,0xE0,0x39,0x14,0xC8,0x30,0xBE,0xAD,0x38,0x03,0xA6,0x83,0x37,0x61,0x22,0x1D,0x33,0x08,0x63,0x16,0xBE,
0xE2,0xD6,0x46,0x44,0x2B,0x09,0x0A,0x42,0x7B,0x78,0xB5,0xB2,0xC3,0x50,0x78,0x14,0x7C,0xD5,0xA0,0x5F,0x41,0xB0,0x59,0x71,0xA5,0x09,0xCD,0xA2,0x5B,0x94,0x5C,0xD7,0x63,0xD1,0xEE,0xD9,
0x67,0x73,0xB5,0x76,0xAC,0xEF,0xC5,0xAF,0x49,0xE9,0x80,0xBF,0xAB,0xC0,0xE0,0x8C,0x65,0x46,0xCC,0xE9,0x8F,0x7E,0xDB,0xC2,0xBF,0x8F,0xD5,0xF9,0x6F,0xEC,0x2B,0x3A,0x7C,0x85,0xF1,0x79,
0xFE,0x57,0x90,0xBB,0xF0,0x6B,0x46,0xF6,0x6B,0x37,0x2F,0x1F,0xE3,0x8F,0xDB,0xD9,0x8F,0x1B,0x83,0x0D,0x4C,0x14,0x7A,0x23,0xBF,0xDD,0x7B,0xFE,0x13,0x33,0xB6,0xD0,0x01,0xB1,0x82,0xA0,
0x81,0x8F,0x74,0xA2,0x47,0x4E,0xBF,0xFF,0x2D,0xF0,0x60,0xE0,0xB6,0xCF,0xFE,0x05,0x41,0x1F,0x45,0x1D,0xAE,0x27,0xBF,0xDE,0x4E,0x2F,0x95,0xD3,0xB3,0x73,0xF0,0x35,0xD0,0x74,0x99,0xF0,
0xF7,0xC7,0xD6,0x23,0x10,0x0F,0xA8,0xA4,0x20,0x32,0xEA,0x62,0x7F,0x28,0xE4,0xAA,0x27,0xE4,0xCE,0x6D,0x64,0x05,0x24,0xBC,0x71,0x66,0xE4,0xAF,0x66,0x30,0xC7,0xDE,0xE7,0xD8,0x70,0x08,
0x40,0x69,0x28,0x9C,0xCC,0x82,0x90,0x9B,0x2B,0xE8,0x23,0x3A,0xEB,0xA5,0x39,0xB3,0x40,0x9B,0x83,0xBE,0x66,0x08,0xC7,0x79,0xF2,0x99,0xF7,0x92,0xCB,0xE6,0xFF,0x1E,0x0D,0xA0,0xC3,0x20,
0x63,0xD9,0xA2,0x72,0x03,0xFB,0x78,0xFB,0xA3,0x9C,0x26,0x7C,0xB8,0x5D,0xB6,0x85,0x55,0xE7,0xFE,0x55,0x8E,0xF9,0x9E,0xF9,0x61,0x0A,0x4C,0x79,0x83,0x82,0x90,0x49,0x11,0xA6,0x4D,0x84,
0xA0,0xF8,0xCB,0x77,0x59,0x0D,0xC0,0xDD,0xBC,0xD8,0xF7,0x4F,0x32,0x55,0xC0,0xF4,0xC2,0x0F,0xD3,0xAB,0xE9,0x35,0xE8,0x03,0xE8,0xF9,0xF0,0xEE,0xE6,0x66,0x70,0x7B,0xAA,0x4C,0xA6,0xE3,
0xAB,0xDB,0x8B,0x1F,0xB9,0x42,0xC7,0x4F,0x77,0x06,0x12,0x7B,0x27,0x19,0x2F,0x64,0x3B,0xBB,0x02,0xB8,0x01,0xEE,0x6C,0x14,0x1F,0x1B,0x72,0xE4,0x46,0xFE,0x20,0x17,0x40,0x72,0xDE,0x23,
0x9B,0xC8,0xDD,0x5E,0x28,0x02,0x31,0xEA,0xB8,0x60,0x11,0x16,0xBC,0x12,0x86,0x14,0xD0,0xD6,0xBF,0x60,0x7C,0xC7,0xCA,0x88,0x39,0xEB,0xDC,0xE5,0x86,0x0F,0xF3,0x91,0x78,0x77,0x40,0x4B,
0x78,0xF3,0x0D,0x52,0x0A,0x77,0x1F,0xD0,0xED,0x30,0x81,0xCF,0x2D,0xEE,0xFE,0x06,0x68,0x14,0x15,0xF1,0x9D,0x58,0xF5,0xE4,0xA2,0x37,0x86,0xDF,0xFF,0x36,0xE2,0x3E,0x76,0xF0,0x1B,0x47,
0x60,0x03,0x6D,0xA9,0xA0,0x0F,0xCE,0xAE,0xC1,0xFA,0x1E,0x5F,0x0D,0x3F,0xDE,0xFE,0x32,0xFD,0x38,0x1C,0x9C,0xC0,0x7C,0x66,0x7F,0x80,0x23,0x18,0xC5,0x9F,0x9C,0x5D,0x5C,0xDD,0xE6,0x3D,
0xA2,0x76,0x58,0x83,0x5A,0xB2,0xC1,0xD1,0xDD,0xFD,0xD9,0xF8,0xE3,0xF9,0xFB,0x5B,0x66,0xDD,0x4F,0x76,0x1A,0x2F,0x68,0x30,0xFF,0x11,0xD1,0xB8,0x9E,0x6C,0x7C,0x3C,0xFC,0x85,0xDA,0xDB,
0xED,0x23,0xA2,0x41,0x03,0x1A,0x3C,0xBF,0x3A,0x01,0xC4,0xBB,0xD1,0xF4,0x6A,0x38,0x91,0x6C,0x30,0xE7,0x11,0x6C,0x50,0xB8,0x35,0xEF,0x47,0xA3,0xBB,0xF1,0x54,0xF8,0x32,0xE7,0x96,0xE5,
0x80,0x13,0x0F,0x66,0x3A,0x7A,0x1C,0x1E,0x58,0x56,0xDB,0xB8,0x09,0x0F,0x70,0x5D,0x81,0x78,0x7D,0x62,0xA1,0x31,0xB4,0x93,0xC0,0x36,0x54,0x80,0x76,0x4D,0x20,0xA8,0xF5,0x0B,0xD2,0xA9,
0x1D,0x8A,0xE8,0x0C,0x92,0x15,0xB2,0x08,0x86,0x75,0x40,0x16,0xF8,0xF6,0x0C,0x39,0xD4,0x66,0x1E,0x91,0xC7,0x2C,0x6B,0xF0,0x68,0xD1,0x24,0xE5,0x31,0x14,0xD0,0xD1,0xD8,0x16,0x34,0x63,
0x23,0x57,0x33,0x6A,0xDB,0x86,0x9F,0xFE,0xEF,0x4E,0x24,0x8A,0x8B,0x0B,0xC0,0x04,0xA3,0x91,0xDB,0xD0,0xB3,0x1D,0x8A,0x5D,0x78,0x4C,0xCD,0x04,0xDB,0x06,0xB1,0x35,0xD0,0x48,0x1B,0x16,
0xE9,0x48,0xF8,0x61,0xCC,0xE6,0x39,0x12,0x41,0x3B,0x74,0x39,0x02,0x74,0x2F,0x70,0x70,0x26,0x73,0xB9,0xB7,0x11,0x20,0x50,0xBB,0x21,0xFB,0x3A,0x36,0xC5,0x6D,0x1D,0xEC,0x28,0x8B,0x77,
0x60,0xA8,0x2C,0xB6,0x6E,0x8F,0xF9,0x44,0x0E,0x86,0xEF,0x6E,0xEF,0xEE,0xAF,0xCF,0x4E,0x2F,0xCE,0x6E,0xCE,0x6E,0xA7,0x93,0xD8,0x57,0xFC,0x8C,0x13,0xF0,0x26,0x57,0x28,0x7E,0x17,0xEF,
0x03,0x5D,0x5A,0x60,0xA1,0xE0,0xCE,0xD0,0x51,0xFC,0x56,0xB4,0x57,0x74,0x94,0x8C,0x81,0x33,0x51,0x3B,0x70,0x17,0xE0,0xC6,0x28,0xF7,0xD0,0x43,0x1F,0xFA,0xC9,0x17,0xF6,0xCF,0x7F,0xFA,
0xC7,0xE5,0x60,0x3A,0x01,0xB6,0x6A,0x0C,0xCD,0x75,0xA3,0x52,0x10,0xE6,0xFF,0x34,0x0C,0xA3,0xD7,0x3E,0x06,0x8F,0x31,0xD1,0x40,0x0B,0xFE,0xA8,0xF0,0x37,0xFE,0xB7,0xFD,0x97,0xBF,0xE0,
0x68,0xCA,0xE0,0x93,0x8D,0x76,0x02,0x15,0xB5,0xA1,0xB7,0xD4,0xAE,0xBA,0x0B,0x57,0x89,0x16,0x84,0x40,0x64,0x97,0x96,0xB3,0xB2,0x04,0x5D,0x0C,0xC1,0x2F,0x68,0x5E,0x6C,0x40,0xAF,0x95,
0xE3,0x37,0xF4,0x5E,0xBF,0x43,0x1D,0x5B,0x06,0xED,0xD6,0x9A,0x3F,0x29,0x20,0xAB,0x42,0xA6,0x33,0x8A,0x11,0x01,0xCD,0x30,0x88,0x68,0x9E,0x0B,0x2B,0xBA,0xE1,0x81,0x3C,0x8E,0x29,0x3B,
0xA3,0x80,0xA6,0xEB,0x54,0x34,0xEF,0xE9,0xDB,0x40,0xB9,0x34,0xA5,0x41,0x92,0x68,0xFD,0xDE,0xF1,0x62,0xE7,0xC9,0x0A,0xB4,0x73,0x50,0xB2,0xC4,0x31,0x25,0xC7,0x46,0x9C,0xC9,0x04,0x1A,
0x5F,0x35,0xF6,0xC6,0xB5,0xF7,0xE8,0x29,0x93,0xA5,0x6D,0x39,0x0B,0x74,0x17,0xD0,0xFD,0xCE,0xF6,0x85,0xA1,0xAD,0x5B,0x3B,0x54,0x59,0x85,0xE6,0x81,0x69,0x16,0x02,0xAF,0x2A,0x64,0xCE,
0x6B,0x74,0xBB,0x69,0x76,0x23,0xA1,0xF1,0xD1,0x4D,0x56,0x20,0x18,0x41,0x18,0x82,0x42,0x56,0xDE,0x4C,0xC0,0x74,0x0C,0xE7,0x9B,0xF0,0xBB,0x9C,0xB1,0x01,0xDA,0x7C,0x77,0x68,0x15,0x68,
0x28,0xC2,0xDE,0xA7,0xF6,0xB5,0x1A,0x17,0x60,0xC5,0x87,0x30,0x91,0xBE,0xB7,0xA9,0x60,0xB9,0x6C,0x0F,0xB4,0x76,0xAF,0x47,0x5A,0x4B,0xC0,0xBB,0x34,0x6D,0x1F,0x14,0x15,0x0C,0x52,0x38,
0x32,0x23,0xFB,0x11,0xDC,0x2C,0x27,0xA8,0x06,0x6F,0xE8,0x1D,0x8D,0x28,0xCF,0x18,0xDA,0x55,0xE0,0x80,0xA4,0xB5,0x88,0x12,0xAD,0xD1,0x69,0xD5,0x42,0xBB,0x81,0x91,0xD1,0x25,0x76,0x43,
0xEF,0xA7,0xD6,0x52,0x0E,0xED,0x1A,0xDD,0xC0,0x09,0xA8,0x0E,0x34,0xD2,0xA4,0x61,0x1B,0x46,0x4B,0xD3,0xFB,0xBB,0x4C,0x2F,0x8D,0xC6,0x79,0xD0,0x07,0x07,0x77,0xA9,0x9C,0x00,0x70,0x25,
0xD9,0x34,0xDA,0x7D,0xBD,0xA3,0x93,0x34,0x43,0x0A,0xED,0xD2,0x32,0x17,0x33,0x34,0x98,0xA5,0x66,0xB2,0xA5,0xAA,0xC6,0x6B,0xA0,0x31,0xFD,0x7C,0x6E,0x99,0x68,0xEF,0x04,0x05,0xBC,0xC8,
0xD1,0x86,0x3B,0x6B,0x27,0x8D,0x76,0x6F,0x7E,0x7A,0x21,0x91,0x0A,0xAE,0x5B,0x9B,0xA6,0x63,0x19,0xDA,0xC8,0x73,0x5F,0x90,0xC9,0xC8,0x1C,0xD0,0xD7,0xCD,0xFA,0x68,0x62,0xBB,0x0C,0x47,
0x7A,0x02,0xE6,0x4E,0x05,0x87,0x37,0x3A,0x5A,0x27,0xAD,0xD2,0xA5,0xD0,0x36,0x8E,0x03,0xFE,0xCF,0x89,0x39,0x7F,0x22,0x0C,0xAF,0xD1,0xD7,0xBA,0xED,0x1A,0x68,0x40,0x04,0x1B,0x0C,0xBF,
0x2A,0xD7,0x96,0xFB,0x08,0x8E,0x8D,0x24,0x9A,0xD1,0xD6,0x5B,0x35,0xB8,0x7B,0xB2,0xB6,0x9F,0x5E,0xD8,0x0C,0x52,0x56,0xAE,0xD1,0xD6,0xFB,0x3D,0x8D,0xCE,0xDD,0x1C,0x8D,0x91,0x39,0x65,
0x26,0x11,0x4D,0xA5,0xA3,0x31,0xE2,0x98,0x3E,0x7B,0xCA,0xC9,0xC6,0x95,0x10,0xFE,0x11,0x9A,0xDE,0x32,0x5A,0x7D,0xE2,0xBA,0x85,0xCA,0x89,0x3D,0xF7,0x7C,0x97,0x2C,0x97,0x41,0xC3,0x69,
0x34,0x0D,0x97,0x44,0xE3,0x43,0x3C,0xFB,0x04,0x9C,0x30,0x79,0xC2,0x4C,0x04,0x94,0x27,0x43,0xDF,0x0B,0x82,0x99,0x87,0x11,0x87,0xB4,0xD9,0xC2,0xD0,0x46,0xBB,0x84,0x22,0x81,0x36,0xF4,
0x9E,0x67,0x1E,0x4D,0x8E,0xF0,0x99,0xEC,0x68,0x7D,0xFA,0xD8,0x38,0x9A,0x30,0xD6,0xCD,0x4F,0xA6,0xE3,0xBF,0x70,0x5B,0xAC,0xD0,0x08,0xDB,0xA2,0x8D,0xEE,0x29,0x96,0x58,0x1A,0x6D,0x62,
0x3B,0x98,0xC3,0x81,0x41,0xA7,0x0A,0xB0,0x08,0x4D,0xA3,0xA2,0xF9,0xDE,0x73,0x61,0x9B,0x25,0x33,0xD9,0x55,0x5B,0x6A,0x9B,0x4C,0x93,0x57,0xAB,0xB5,0xE5,0xA3,0x1F,0xCB,0xDC,0x1D,0xE0,
0x3B,0xF3,0xC9,0x93,0x00,0x07,0x2A,0x31,0xC8,0x76,0x49,0x08,0x7A,0xEC,0xDF,0x75,0xFC,0xC8,0x46,0xAF,0xDD,0x07,0xAB,0x56,0x8E,0xBB,0x9B,0xAA,0x11,0xE3,0xBD,0xB3,0xD6,0x76,0x0D,0x40,
0xD4,0xA7,0xBA,0x2C,0xDE,0x76,0x74,0xEF,0x5C,0x3B,0xA4,0x1B,0xEC,0x20,0x97,0x55,0x3D,0xED,0x8E,0x48,0xA0,0x8D,0x4D,0x92,0x3C,0x8E,0xD1,0x60,0xE5,0x88,0x7E,0x1D,0xA2,0x4D,0xFD,0x5A,
0xC2,0x0B,0xD1,0x88,0x9E,0x56,0x12,0x4D,0x18,0xE7,0x95,0x6E,0x48,0x12,0x6D,0x48,0xF2,0xB4,0x10,0xED,0x1E,0xF7,0x72,0x4E,0x7C,0x7B,0xA5,0x9C,0x3B,0x04,0xDF,0x15,0xA9,0xA4,0xD3,0xA5,
0xAC,0x5B,0xAE,0xEF,0x83,0x86,0xDE,0x02,0x23,0xF1,0x60,0x3D,0xA0,0x13,0x46,0xD2,0x7A,0xED,0x6E,0x8B,0x44,0x39,0x3B,0x78,0x97,0x9E,0xBF,0x91,0x57,0x7A,0x88,0xD7,0xD7,0x35,0x83,0xA8,
0xF7,0x76,0xD1,0x84,0x36,0x7A,0xB1,0xAA,0x84,0x67,0x8C,0x36,0xFA,0xB9,0x25,0x6D,0xD5,0x56,0xCC,0xEF,0xAD,0x85,0x99,0x4C,0xD3,0x97,0xB5,0xA5,0xA8,0x52,0xC3,0x66,0x2B,0xDC,0xAB,0x39,
0xDE,0x04,0x9A,0x26,0x87,0xD6,0x6F,0x19,0x1D,0xAD,0xF6,0x6A,0x72,0x3C,0x36,0xBF,0x9A,0x72,0x6A,0xFA,0x4F,0x33,0x67,0x63,0x29,0x13,0xD7,0x7C,0xCA,0xD1,0xF2,0x5B,0x3C,0xCA,0xFC,0xE6,
0xA3,0x6D,0xB1,0x42,0xDF,0x5E,0x17,0x80,0xC5,0x68,0x14,0x1F,0x25,0x46,0x9B,0xDC,0x2B,0x7F,0x37,0x67,0xBE,0xF9,0x84,0x54,0x24,0x63,0xA8,0xA1,0x65,0xDD,0x21,0xF9,0x28,0x15,0xB4,0x33,
0xDD,0xF8,0x33,0x1A,0x6F,0xA2,0x77,0x4B,0xD4,0xC7,0x31,0xDA,0xBD,0xE5,0x5B,0xCF,0x9E,0xF3,0x40,0xF0,0xA5,0x35,0x23,0x2D,0xD6,0x25,0x68,0x87,0x85,0xB3,0x06,0xFE,0x8A,0x6C,0xB8,0x35,
0x7A,0xDD,0x7E,0x9F,0xCA,0x19,0x31,0x1A,0xA7,0x9B,0xFB,0x25,0xA6,0xCD,0x4C,0x42,0xF0,0xE1,0xC1,0x38,0x65,0x26,0x69,0x81,0x54,0xE0,0x68,0x6B,0x92,0x7F,0x2B,0xD0,0x1C,0x1B,0xCF,0x0D,
0x30,0xC3,0x97,0x87,0x0C,0x24,0x7C,0x40,0xB0,0x36,0xD2,0xC6,0x8D,0x1C,0x5A,0x1C,0x3E,0xBB,0xB7,0x2B,0x51,0x62,0xB4,0x4E,0xAB,0x6B,0x90,0xB4,0xC8,0x16,0x8D,0x85,0x92,0x39,0x0F,0xFA,
0xE6,0xA3,0xE7,0x72,0xDB,0x51,0x99,0x7A,0x85,0x26,0x48,0xA3,0xA3,0x6A,0x1A,0x49,0x1F,0x17,0xF0,0xC5,0x4E,0x0F,0x8E,0x33,0xF8,0xCA,0x89,0x03,0xAE,0x70,0xE2,0x13,0xA6,0xC3,0x1B,0x51,
0x0F,0xE6,0x14,0x1D,0x2D,0x85,0x07,0xEF,0x0D,0x81,0x76,0x1C,0x0B,0x8C,0x04,0x97,0x93,0x56,0x63,0x3B,0xE2,0x79,0x8B,0x64,0x85,0x67,0xE7,0xF7,0x9C,0x9D,0x39,0x39,0x37,0xE7,0x96,0x72,
0xE1,0xDB,0x4E,0x61,0x70,0x0D,0x7C,0xEC,0x16,0xD5,0xBA,0x12,0x68,0x8E,0x19,0x04,0xF6,0x5C,0x78,0xA4,0x98,0x16,0x8D,0xBB,0x10,0x4A,0xE9,0x2E,0x04,0xEE,0x08,0x68,0xC4,0xD8,0x48,0x3E,
0x1A,0xAC,0x55,0x25,0x1C,0x43,0x9B,0xD5,0x41,0x03,0x0D,0x01,0x30,0x1F,0x4C,0x4A,0xF8,0x13,0x74,0xAF,0x4E,0xD6,0xBD,0x0C,0x2D,0x76,0x69,0x06,0xD3,0xE6,0x64,0xAA,0x8C,0x6C,0xC7,0xAB,
0x34,0xEA,0x1A,0xED,0x6E,0xBF,0xD5,0xAA,0x83,0x76,0xE3,0x2D,0xCA,0xCD,0x98,0x3C,0x34,0x10,0xD6,0xC4,0x7D,0xA3,0x18,0xCD,0xB7,0x3D,0x2A,0x9A,0xDE,0x6A,0x19,0xA4,0x99,0x2C,0xE3,0xF9,
0x11,0x9E,0x65,0x23,0x69,0x42,0x94,0xA8,0x3D,0xAD,0x47,0xB7,0x53,0x19,0xDE,0xC4,0x5C,0x6D,0x7C,0x93,0xE6,0xC5,0xB1,0x5D,0xC0,0x5A,0x12,0x5C,0xA0,0x89,0x10,0x2C,0x8A,0x92,0x6A,0xB7,
0x83,0xA3,0xCD,0x6B,0x68,0xA7,0xC9,0x13,0x4C,0xF1,0xCC,0xAB,0xDC,0x67,0xDC,0x41,0x33,0x3A,0x7A,0x5A,0xC4,0x48,0xA2,0x61,0xCC,0xE2,0xDE,0xF4,0x03,0x65,0x6C,0xCD,0x2C,0x47,0x8A,0x31,
0x90,0x0B,0xBB,0xB5,0xF8,0x22,0x17,0x8D,0xCF,0xEB,0x09,0x1A,0x8B,0xE2,0xDD,0x1D,0x7D,0xCF,0xD1,0xD6,0x81,0x4E,0x9F,0xC9,0x62,0xB4,0x31,0x08,0xEE,0x3C,0xB0,0x18,0x4D,0x7B,0x4D,0xB4,
0x5F,0x2D,0x3C,0x91,0x80,0x4A,0x22,0xB5,0x23,0x18,0xA1,0xD5,0xA0,0x92,0xD0,0xF3,0x57,0xA1,0xEF,0x61,0x06,0xAB,0x2C,0x9D,0xB0,0x08,0x65,0x2D,0xE9,0x99,0x44,0x13,0x21,0xAF,0xE4,0x3B,
0xF9,0xB6,0x3D,0x43,0xAB,0x63,0x9F,0x65,0xD1,0xA6,0x57,0x67,0xCD,0x73,0xDC,0x47,0x42,0x30,0x36,0xAF,0x99,0x08,0xA5,0x40,0xA3,0xAF,0x5B,0xBC,0xB9,0x8F,0x69,0x0E,0x6B,0x16,0x09,0x8D,
0x7D,0xFF,0x12,0xEE,0xD6,0xBA,0xB5,0xF8,0x4D,0x6C,0xE3,0x7C,0x46,0x4B,0x05,0xB4,0x11,0x58,0x29,0x47,0x20,0x52,0x02,0xAB,0xCC,0x30,0x44,0x59,0xA2,0xD5,0xE2,0xB7,0x42,0xB4,0x23,0xE5,
0xC2,0x73,0x16,0xC2,0x12,0xCE,0xF0,0x1B,0xA0,0x8D,0x6A,0xAC,0x5B,0x09,0x9A,0x88,0x90,0x66,0xF1,0x22,0x34,0xCA,0xBA,0x79,0x1E,0x75,0x3F,0x38,0x31,0x93,0x7A,0xEF,0x15,0x3C,0x40,0x3C,
0x99,0x79,0x63,0x2D,0x6C,0xEB,0x13,0x8C,0x73,0xE8,0x3D,0xCB,0x6F,0x5F,0xA1,0x2D,0xD8,0x26,0x59,0x67,0x80,0x37,0xF2,0x1C,0x3C,0xB0,0x50,0x2F,0x87,0xA2,0xA3,0x11,0x63,0x6D,0x68,0x39,
0xD7,0x81,0x62,0x68,0xBD,0x2E,0x71,0x57,0xE2,0xDE,0xFE,0x37,0xA8,0xBA,0x5A,0x09,0x22,0x60,0xC5,0xEB,0xC4,0x9D,0xE9,0xE6,0x2B,0xFF,0x6C,0xE5,0x4F,0x4E,0xE7,0x2B,0xFA,0x72,0xEB,0xD1,
0xB7,0x7D,0x6A,0xA3,0x45,0xB9,0x5B,0x67,0x83,0x53,0xCC,0xDD,0x9A,0x84,0x9B,0x85,0x32,0x01,0xB2,0xA2,0x73,0x12,0x52,0x54,0x67,0x40,0x92,0x46,0x5B,0xB4,0x48,0x79,0x88,0xEC,0x72,0xD0,
0x88,0x69,0xF1,0x93,0x8B,0x46,0x92,0x46,0x84,0xD6,0x73,0xD1,0x4E,0x48,0x68,0x83,0xC5,0x27,0xCB,0xC5,0xD3,0x43,0xA0,0xF8,0x6F,0x36,0xAB,0xD5,0x8B,0x3C,0xA2,0x40,0x1B,0x10,0x64,0x1F,
0xB3,0x92,0x26,0x1B,0xF7,0x11,0x5D,0xB5,0xA2,0xA8,0x5A,0x09,0xDA,0x6C,0xDD,0x9D,0x11,0xD1,0xEE,0x41,0x2B,0x36,0x07,0x3E,0x3B,0xBF,0x21,0x8F,0x1C,0xA1,0xCD,0x09,0x68,0xF6,0x23,0x06,
0x81,0x41,0x5B,0x0C,0x37,0xEC,0x94,0x22,0xFC,0x32,0x03,0x5F,0x1E,0xDE,0xB8,0xF3,0x4D,0xF7,0xD1,0x02,0x47,0x67,0x83,0x91,0xFF,0x2C,0x72,0x34,0x93,0x77,0xFB,0x45,0x85,0x4F,0x58,0xE4,
0x60,0x0B,0x3B,0x59,0xD9,0xFE,0x13,0xE6,0x6A,0xA2,0x8F,0x7F,0xA4,0x8C,0x36,0x6B,0xDB,0x29,0x8A,0x64,0xF2,0x1E,0xF4,0xE4,0xAD,0xD4,0x18,0x8F,0xED,0x39,0xB3,0x43,0xE0,0x18,0x02,0x47,
0xFB,0x83,0xC7,0x49,0xA2,0x7E,0xE4,0xC7,0x69,0x39,0x5E,0x77,0x40,0x98,0xDF,0x18,0xED,0x08,0xDB,0x86,0x75,0x5C,0xE2,0x64,0x23,0xE0,0xB5,0xBD,0x66,0x07,0x9C,0x8B,0x56,0x35,0x9A,0xDF,
0x8E,0x3C,0x1A,0x06,0x80,0x81,0x03,0xAD,0x17,0x9C,0x3C,0x74,0xBC,0x79,0x4A,0x84,0x0C,0xBD,0x0A,0x34,0xBD,0x2F,0x8F,0x26,0xB6,0xB2,0x2D,0xC7,0x0A,0xBD,0x28,0xB4,0x27,0xC9,0x1B,0xD1,
0xD8,0x7A,0xF2,0x68,0xE7,0xBE,0x35,0x7F,0x72,0x2C,0xE5,0x16,0x8F,0x99,0xE0,0xFC,0xC9,0x8B,0x1C,0xC1,0x17,0xAD,0xAE,0x3C,0xDA,0x85,0xE0,0x38,0x66,0x99,0xB2,0xF0,0xE8,0xCD,0x26,0x84,
0x61,0xCE,0x97,0xDE,0xBA,0x82,0x0F,0xA3,0xB1,0x11,0xE4,0x19,0xB3,0x0B,0x47,0xA6,0xED,0xF2,0xF3,0x16,0x13,0xC7,0x74,0x43,0xCE,0x8B,0x72,0x3C,0x7F,0x32,0xEA,0xBC,0x27,0xA2,0x8D,0xBD,
0x59,0x8E,0x45,0x5F,0xF5,0x13,0xA1,0x19,0x04,0x34,0x1F,0x8F,0xD0,0x62,0x66,0x18,0xAF,0xCE,0x20,0xFC,0xB2,0x42,0xB1,0x92,0x83,0xF6,0xEB,0x7E,0x12,0x86,0xF7,0x00,0xD9,0x8D,0x75,0x60,
0x9C,0x90,0x72,0x92,0xB3,0x7B,0xD2,0xA6,0x48,0x98,0x4B,0xD3,0x79,0x68,0xDE,0x78,0xC0,0x13,0x49,0x2A,0x62,0x6C,0x59,0x85,0x2B,0xF0,0x2E,0x09,0x12,0x06,0xF7,0x2A,0xF0,0x20,0xF7,0x1D,
0x0A,0xB3,0x84,0x70,0xFB,0xA6,0x7A,0x90,0xD1,0xFC,0x12,0x78,0xFE,0x0A,0x4C,0xE2,0x11,0x90,0xA7,0x15,0x46,0x59,0x9B,0x38,0x9D,0x52,0x62,0x26,0x42,0x93,0x9F,0xCB,0x24,0xDA,0x8D,0x15,
0x04,0x2F,0x82,0x15,0x65,0xE0,0x22,0x34,0x82,0x9E,0x4F,0xA2,0x79,0x9B,0x20,0x34,0xE7,0x4B,0x2E,0x69,0xAA,0xA9,0x25,0x42,0x23,0xF0,0x7C,0x94,0x86,0xCA,0xC7,0xF4,0x96,0xA9,0x7D,0x26,
0x02,0xA2,0xF0,0x76,0xF1,0x00,0x23,0x59,0xFD,0xAE,0x36,0x1A,0x2E,0x9A,0x24,0x58,0x8C,0xF6,0x93,0x3C,0xDA,0xB5,0xE9,0x83,0xE5,0xC0,0x86,0x74,0x83,0x27,0x4C,0xA8,0x16,0x13,0xCC,0xE4,
0x87,0xFD,0x78,0xFE,0xDA,0x7A,0x08,0x5F,0x84,0x90,0xE1,0xCA,0x62,0x33,0xC3,0x13,0x2C,0x12,0x3D,0x89,0xAC,0x0A,0xF9,0xB5,0x04,0x3C,0x4E,0x9E,0x8C,0x30,0x05,0xC5,0x20,0xD4,0xBC,0x4A,
0xC2,0x25,0xE7,0x97,0x40,0x3B,0x29,0xB4,0x2D,0xB5,0xCA,0xA3,0x11,0xF6,0x9A,0x13,0x68,0x82,0xE7,0xA9,0xD6,0xB6,0x51,0x0B,0xED,0x48,0x39,0xB1,0x50,0xBF,0x4B,0x4F,0x68,0x34,0x36,0x82,
0x76,0x4A,0xA2,0xC5,0xD3,0xC8,0xED,0x33,0x0E,0x5E,0xCD,0x85,0x84,0x18,0x69,0x09,0x5A,0xD5,0x00,0x23,0x34,0x82,0x3C,0xBB,0xF1,0x5C,0x6F,0x8E,0x47,0xBD,0x26,0x73,0xD3,0x3F,0x22,0x51,
0x4A,0x64,0xC3,0xC8,0x5A,0x4C,0x58,0x44,0xA0,0xC1,0x3D,0x31,0xAD,0x39,0xB1,0xF1,0x04,0xA2,0xC6,0xCC,0x97,0xB7,0x2A,0x1B,0xD9,0x9B,0x07,0xDF,0x73,0xCB,0xF2,0x85,0x38,0x1E,0x25,0x03,
0xA2,0x0C,0xCD,0x87,0xA5,0x2B,0x06,0x2B,0x44,0x6B,0xA6,0xE1,0x9A,0x55,0x78,0xCC,0x94,0x3A,0xC5,0x9C,0x70,0x2E,0xE8,0xF2,0xC7,0x19,0xE1,0x51,0x38,0x5C,0x0A,0x2D,0x77,0x9C,0x45,0x68,
0xA5,0xA3,0x1B,0x83,0xB5,0x72,0x6F,0x99,0x81,0x63,0x11,0x7C,0xE9,0x04,0xDE,0x6C,0xBD,0xD4,0x13,0x69,0x7A,0x15,0xA3,0x13,0xAE,0xE5,0x96,0xBD,0x45,0x06,0xC2,0xCA,0xAE,0x14,0x2E,0x91,
0x74,0x26,0x50,0xCA,0x08,0x0B,0x66,0x2D,0xB6,0x06,0x20,0x07,0xC3,0xB3,0x36,0x4B,0xAC,0x3C,0x53,0xE9,0x39,0x80,0xFD,0x47,0x58,0xB9,0x71,0x12,0x8A,0x3B,0x95,0xEF,0xD7,0xC1,0xB3,0xB5,
0x0E,0xB7,0x0E,0x60,0x19,0x8F,0xCF,0xD6,0x9D,0x07,0x42,0xDC,0x05,0xEB,0x8E,0x6D,0x02,0xCC,0x2E,0x5A,0x13,0xE4,0x72,0x62,0x6C,0x97,0x27,0x04,0x34,0xA0,0xC6,0xD9,0xC6,0x77,0xF9,0xE0,
0x4E,0x71,0xB7,0xE0,0x25,0x21,0x53,0xF8,0x68,0xCB,0xE5,0xD7,0xED,0xEB,0xA1,0x31,0x5B,0xB7,0x1C,0xED,0x67,0x0A,0x1A,0x8B,0x96,0x33,0xC6,0x12,0xA2,0x12,0xF8,0x8C,0xE7,0x18,0x48,0xFA,
0x29,0xBF,0x90,0xD1,0xEA,0x78,0x61,0x11,0x1A,0x41,0xEF,0x70,0xDF,0x9C,0xE7,0xDB,0x29,0x6F,0x2E,0xCD,0xF5,0xFA,0xE5,0x3B,0x49,0xD4,0x46,0x4F,0xD3,0xDB,0xB4,0x4C,0x43,0x7E,0x64,0x6D,
0x2F,0xEB,0xEF,0x7E,0x3F,0xEB,0x8F,0x0B,0x12,0xE6,0x75,0xA1,0xC8,0x9C,0x7A,0x5E,0xA5,0xAF,0x99,0xEA,0x41,0x8F,0x10,0x75,0x61,0x68,0x47,0xE9,0x00,0xD2,0x56,0xD2,0x94,0x84,0xB0,0x22,
0x34,0x82,0xC5,0x12,0xA1,0xED,0x84,0xCD,0x68,0x68,0x24,0x6F,0x96,0xC5,0xE3,0xA2,0xD1,0x51,0x2C,0xCD,0xAD,0x15,0x41,0x89,0xCF,0xE5,0xAF,0xE6,0xB6,0x07,0xB1,0xD1,0x7B,0xE1,0xC1,0xB7,
0x64,0xB5,0x85,0xBC,0xD5,0x94,0x89,0x65,0xCB,0x39,0x80,0xBB,0x78,0x2D,0x82,0x8F,0x9B,0x45,0x1B,0x79,0xDC,0x31,0xAB,0x9C,0xEC,0x08,0x8D,0x22,0x09,0x32,0x68,0xD2,0xE1,0xE5,0x08,0x8D,
0x42,0xAB,0x49,0xB4,0xA3,0x5D,0x6A,0xBD,0xB1,0xE7,0xBE,0xB7,0x5E,0x62,0x11,0xC4,0x12,0x5A,0x6D,0x51,0xF8,0x30,0x42,0xBB,0xF7,0x56,0x26,0x6D,0x13,0x22,0x42,0x23,0x58,0xD7,0xC2,0xA3,
0x3C,0x4A,0xC5,0x0A,0x18,0xB1,0x4A,0x5A,0xD7,0x14,0x2A,0xB9,0x17,0xFB,0xB8,0xFC,0x10,0x9D,0xF0,0xAF,0x85,0xC0,0x29,0x5F,0x39,0x81,0x36,0xA1,0xE8,0xF9,0xFB,0x3C,0x69,0x86,0x6E,0x84,
0x6C,0xC4,0x6C,0x42,0x88,0xB5,0x22,0x5A,0x56,0x9A,0x55,0xB9,0x5F,0x3B,0x68,0x84,0x08,0x56,0x16,0x8D,0xEA,0xCD,0x4E,0x28,0x54,0x72,0x2F,0x72,0xEE,0x6E,0xCC,0x8D,0x74,0x74,0x7C,0x17,
0x8D,0x10,0x23,0x07,0x34,0x16,0x66,0xDC,0xF1,0x9B,0x49,0x92,0x6B,0x42,0xE1,0xEE,0xFB,0x54,0x50,0xF3,0x1B,0xCC,0xF8,0xC3,0xD8,0xB5,0x34,0xDA,0x90,0x84,0x36,0x99,0x63,0x1D,0xC5,0xA9,
0x48,0x52,0xE1,0x14,0xFA,0xC1,0x0E,0xBC,0xAA,0x60,0x60,0x84,0x76,0x46,0x43,0x13,0x66,0x4C,0xE5,0xB6,0x50,0x01,0x1A,0x45,0x2A,0xDF,0x0B,0xB9,0xC1,0x08,0x9F,0x44,0x9D,0x11,0x1A,0x4D,
0x96,0x4C,0x37,0xC1,0x13,0x08,0x93,0xB1,0x69,0x2F,0x8A,0x52,0x89,0x4A,0xD1,0xA6,0xF2,0x68,0x53,0x33,0xC5,0xD8,0xE7,0x25,0x76,0x7B,0x2E,0xDA,0x25,0x81,0xDF,0xA6,0xBE,0x3D,0x33,0x9D,
0xC4,0x5E,0x0A,0x19,0x6D,0x40,0xA0,0xC9,0x0F,0xE0,0x1C,0xD8,0x30,0x3E,0x4E,0x24,0xA4,0x3D,0xB7,0x08,0x8D,0xC0,0x6F,0x88,0x06,0xE3,0xC2,0xC2,0xEA,0xD1,0xC6,0xC2,0x37,0x92,0xD0,0xC2,
0xB3,0x34,0x09,0x72,0xF2,0x83,0xED,0xCE,0xB1,0x02,0xDC,0xD0,0x37,0x67,0x33,0xEB,0x2D,0x25,0x40,0x10,0x45,0x04,0xDA,0xF2,0x11,0x81,0x6D,0x60,0xFF,0x28,0xB1,0x17,0x2C,0x15,0xB2,0x12,
0x33,0x79,0x4B,0xF0,0xD1,0xEF,0x6D,0xFF,0x25,0x19,0x80,0x13,0xB6,0xA4,0x8C,0xC0,0x14,0x63,0xD3,0x2D,0x79,0xB4,0xBC,0x1C,0x96,0x5B,0xCF,0x6D,0xC6,0xF5,0xFE,0x30,0x0C,0x11,0x7C,0x95,
0xFC,0x97,0x5C,0xFB,0x7A,0xE0,0x6E,0x66,0x76,0x50,0x9E,0xE0,0x5E,0xB4,0xD2,0x78,0x32,0x4C,0x36,0xBB,0x51,0xE3,0xC7,0x41,0x93,0x70,0x78,0x5A,0x80,0xB9,0x68,0xD1,0x2E,0x7C,0xE9,0xC9,
0x25,0x01,0x27,0x19,0x26,0x14,0x70,0x67,0x84,0xC3,0x3B,0xE9,0xD1,0x19,0x7A,0x57,0xFA,0xFC,0xC9,0x16,0x8E,0xDB,0x68,0x7C,0xD7,0x51,0x66,0x0B,0x77,0x17,0x4E,0x32,0x11,0x46,0xC0,0x5D,
0x78,0x33,0xC7,0xAE,0x71,0x48,0x99,0xC1,0x69,0xAA,0xF4,0xD9,0x79,0x0E,0x87,0x81,0x49,0xB0,0x66,0x50,0xE4,0xE1,0xB6,0xA3,0x48,0xE3,0x74,0x6C,0xB9,0x83,0xB6,0x0D,0xBD,0xD5,0x4E,0x9F,
0x31,0x2F,0x04,0xD4,0x35,0x1E,0x07,0xCD,0x85,0x8B,0x0F,0x2F,0x06,0xB8,0x61,0x57,0xB0,0xFB,0xCF,0xE1,0x24,0xA7,0x53,0x0E,0xAE,0x2C,0x7A,0x17,0xC1,0x49,0x29,0xAB,0x08,0xCE,0xC2,0xCA,
0x5F,0xAC,0x68,0x18,0x43,0x44,0xDB,0x94,0x9D,0x9D,0xC1,0x68,0x57,0x79,0x9A,0x18,0xCB,0x62,0x96,0xE5,0x3C,0x01,0x87,0xA5,0xAD,0xBC,0xB9,0xE7,0x54,0xB7,0x9E,0x07,0x67,0xF4,0x64,0xD3,
0x61,0x05,0x6D,0x4E,0xD6,0x9E,0xFB,0x68,0x9D,0x78,0x33,0x3A,0x79,0x36,0xDA,0x46,0xAF,0x2B,0x7B,0x02,0xB3,0xB7,0x8B,0x26,0x52,0x62,0x31,0xC8,0x25,0x1B,0xF3,0x61,0x68,0x92,0x59,0xD3,
0xBD,0x6D,0x76,0xDD,0x25,0x2B,0x7A,0x4F,0x1D,0x1D,0xD7,0x57,0x7B,0xE7,0xC3,0xFE,0xEA,0x2D,0x4C,0x41,0xA2,0x22,0x73,0x0B,0xBC,0x33,0x49,0xCF,0xC2,0x50,0x7B,0xC4,0xC5,0x3C,0xA4,0x71,
0xFE,0xE3,0xE4,0xEE,0xF4,0x57,0x4C,0xE3,0x64,0x12,0xA7,0x1E,0x78,0xA3,0x9F,0x4E,0x60,0xAF,0x1C,0xE9,0xFF,0x51,0xC1,0x4A,0x9F,0x63,0x3E,0x1C,0x35,0x57,0x87,0xA1,0x8D,0x52,0xEB,0x5C,
0x81,0xF6,0xED,0xE4,0x5B,0x5E,0xBE,0x83,0x39,0x76,0x6F,0x15,0x91,0x95,0x20,0xC5,0x44,0x88,0xA6,0xE9,0xB5,0xD0,0x70,0xCF,0xE4,0x6D,0xE9,0xF6,0x41,0x2E,0x5A,0xAA,0xAE,0x53,0x05,0x9A,
0xC6,0x0E,0x1C,0x60,0xB5,0xF1,0x6B,0x0B,0x21,0x82,0x28,0x15,0x89,0xDB,0x1C,0xA5,0x1B,0xCB,0x88,0x36,0xF8,0x99,0x82,0xA6,0x37,0x47,0xB6,0x35,0xC7,0xBC,0x51,0x3B,0x3C,0x8A,0xF6,0xB7,
0x96,0xB6,0xA8,0xA8,0x8B,0x03,0x9E,0xDA,0x05,0x98,0x0C,0xED,0xF4,0x84,0x82,0x36,0x00,0xBB,0xFF,0xC2,0xDC,0x3C,0x5A,0x22,0x80,0x88,0xE5,0xB3,0x49,0xEB,0xD6,0x27,0xA2,0xA1,0x9B,0x2F,
0xAA,0xEE,0x21,0xE2,0xB7,0x83,0xAB,0xF1,0xB7,0xA0,0xBB,0x16,0x8F,0x15,0xE4,0xC2,0x69,0xB2,0x5D,0x1F,0x8D,0x16,0x42,0x61,0x54,0xD2,0x21,0xA1,0x61,0x8A,0x9F,0x0F,0xCE,0x41,0x68,0x3F,
0x50,0x37,0x66,0x10,0xAD,0x45,0x9B,0x49,0x7F,0x1E,0xDA,0x73,0xBC,0x77,0xE0,0xC9,0x54,0x06,0x2A,0x69,0xAB,0x04,0xD1,0xBA,0x83,0xFA,0x68,0x1A,0x1D,0x8D,0x46,0x93,0x41,0xE8,0x13,0xD7,
0x6B,0x07,0xAD,0x73,0x4E,0x42,0xDB,0x84,0x9E,0xEF,0x61,0x59,0xDA,0x7A,0x72,0x52,0xEB,0x52,0xD0,0x4E,0xD0,0x73,0x7B,0x4C,0x6C,0x31,0x61,0xE9,0x50,0xA7,0x22,0x91,0x2A,0x81,0xF6,0x33,
0x49,0x2A,0x0B,0xB4,0xA3,0x14,0x54,0x0C,0x7E,0x62,0x39,0x45,0xDC,0xCE,0xD1,0x28,0x65,0x21,0x1B,0xBC,0xF8,0x09,0x6E,0x4D,0x52,0x33,0xF9,0x39,0xDA,0x4C,0x23,0xA1,0x31,0xA1,0x3F,0x04,
0x4B,0xCA,0xF4,0x13,0xC2,0x4B,0xC6,0x69,0x42,0xB4,0x75,0x10,0xD2,0xD1,0x4E,0x6D,0x71,0x5A,0xEA,0xEF,0xF6,0x5A,0x5A,0x60,0x32,0xB4,0xD6,0xAC,0x06,0xDA,0xC6,0x7D,0x34,0xFD,0xCA,0xAD,
0xAA,0x9C,0x99,0x54,0x49,0xDC,0x1D,0x45,0x82,0x9C,0xB9,0x57,0x6B,0xDD,0x0C,0x92,0xEE,0x16,0x68,0x78,0x9F,0x11,0x15,0x8E,0x73,0x37,0x49,0x96,0x30,0xB4,0x10,0x91,0xAE,0xC8,0xE9,0x29,
0x88,0xD6,0xA6,0xD3,0x24,0x47,0xA3,0xC2,0x71,0x34,0x1A,0xBF,0xA1,0x8D,0xC5,0x77,0xC4,0xDC,0x50,0x84,0x0D,0xCA,0xC3,0x20,0x3B,0x68,0x6B,0xCD,0x22,0xA3,0x89,0x82,0x0A,0x27,0xDE,0xC2,
0x96,0x11,0x59,0xC9,0xB1,0x19,0xB7,0x64,0xB4,0x5A,0x0C,0x20,0x38,0x80,0x48,0x25,0x80,0x56,0x8B,0x24,0x05,0x4D,0x0E,0xE9,0x68,0x78,0x6D,0x8F,0x8F,0x77,0xB9,0xA1,0x3D,0xB7,0x10,0x26,
0x5E,0x65,0x80,0x94,0x69,0x9C,0x8B,0x9D,0xBA,0x66,0x32,0x68,0x97,0x9E,0x6F,0xFF,0x1B,0xEF,0x21,0x71,0x64,0x29,0x24,0x42,0x5B,0xAB,0x0B,0xF2,0xD8,0x52,0x15,0xE9,0xEE,0xB0,0xD0,0x7A,
0xF5,0x6E,0x01,0x1B,0x9B,0x3E,0xDE,0x17,0x4D,0x36,0x66,0xC6,0xD0,0x28,0x34,0x99,0x7F,0x08,0x89,0xF9,0x39,0xE0,0xD8,0x89,0x15,0x24,0x98,0x2B,0xDC,0x5A,0x3F,0x25,0xF5,0x40,0x1C,0x29,
0x8B,0xDD,0x81,0x89,0xF9,0x60,0x85,0x2F,0x72,0x6B,0xCA,0x2D,0xE8,0x0B,0xF2,0xFC,0xF2,0xC6,0x17,0x31,0x37,0xCA,0x85,0x25,0x39,0x17,0xD2,0x57,0xF3,0x3D,0x26,0x9B,0x07,0x6C,0x80,0xE2,
0x00,0x08,0x38,0x5A,0xCC,0x60,0xD9,0x94,0xB0,0x26,0x43,0xBB,0x27,0x79,0x07,0x27,0x1E,0xBB,0x1A,0xEB,0x27,0x76,0x63,0x50,0xBC,0x1F,0x22,0xC5,0x86,0xDC,0xA6,0xA5,0x59,0x62,0x49,0xB4,
0x23,0x66,0x78,0x1D,0x49,0x82,0x72,0x1F,0x92,0x36,0x36,0xB6,0x77,0xF5,0xC1,0x0A,0x00,0x64,0x10,0xCC,0xBD,0x50,0x6C,0x8C,0x17,0x5A,0x7B,0x29,0x34,0x9D,0x26,0x3D,0x13,0x68,0x27,0x1B,
0x76,0xD6,0x2A,0x8A,0xC8,0x63,0xC9,0x5E,0xEF,0x39,0x2C,0x72,0x58,0xC5,0xBA,0x91,0x3C,0x9F,0x13,0x76,0x9C,0x8A,0xEF,0x08,0xDE,0xE1,0xE9,0x27,0x7E,0xDC,0x5A,0xC2,0x85,0x14,0x34,0x49,
0xF2,0x0E,0x86,0x20,0x52,0x8E,0x84,0x2F,0xCE,0x47,0x18,0x1B,0xCF,0xE7,0xDE,0xAC,0x3C,0x7D,0x82,0x8D,0xAD,0x47,0x43,0xE3,0xEA,0xD5,0xB7,0xE0,0xC5,0x1A,0xEF,0x9B,0x20,0xEA,0x58,0x12,
0x4D,0xEE,0x2A,0x73,0x56,0x54,0xD6,0xF1,0x4C,0xA9,0x40,0x0A,0x47,0xBB,0xAC,0x81,0x36,0x5C,0x9A,0xB6,0xBB,0xC2,0xAA,0xCE,0x84,0xCD,0x63,0x86,0x46,0xB2,0x8D,0x22,0x34,0x2C,0x49,0x86,
0x47,0x56,0xEC,0xA2,0x12,0x7A,0x45,0x68,0x24,0xBB,0x4F,0xA0,0x89,0x43,0x0E,0x03,0x7F,0x55,0x99,0x59,0x90,0x42,0x23,0x49,0x65,0x81,0x36,0xB6,0x16,0x6F,0x2F,0x7C,0x93,0x94,0x76,0xCD,
0xD1,0x48,0x1E,0xEB,0x70,0x69,0x51,0xE3,0x19,0x49,0xB4,0x75,0xAA,0xBA,0x55,0x15,0x9A,0xA8,0x6A,0x35,0x59,0x4B,0xF9,0xC4,0x99,0xB1,0xF5,0x69,0x1C,0xE0,0xF9,0x81,0xB5,0x2D,0x32,0xB3,
0xB0,0x83,0xA5,0xC8,0xA2,0xB8,0xC6,0xAB,0xDA,0xAA,0x22,0x7B,0x6B,0xE3,0x99,0x84,0xC6,0x5A,0x06,0x83,0x0F,0x4F,0xDB,0xA2,0xB2,0x7B,0x8B,0x55,0x29,0x36,0x2B,0xA6,0xF7,0x7E,0x06,0xE3,
0x85,0xC5,0x16,0x0B,0x23,0x7B,0x6B,0xE3,0x5F,0x14,0xB4,0xD3,0x27,0x9E,0x48,0xBB,0x09,0xE6,0x4E,0x74,0x92,0x50,0x32,0xE0,0xC0,0xD0,0x7E,0x27,0x71,0xC0,0xE9,0x13,0xD7,0xD6,0xC9,0x19,
0xBD,0xE6,0x25,0xEF,0xAB,0xF4,0x0E,0x1F,0xDB,0x67,0x2A,0x9A,0xF9,0x22,0x32,0x3B,0x8F,0x92,0xA7,0x43,0x45,0x0C,0xA2,0x1C,0x6D,0x37,0x2D,0xBF,0x1A,0x8D,0x57,0xAA,0xBB,0xAC,0xCA,0xF9,
0xCF,0xF9,0xE1,0xFC,0x46,0xD2,0xA6,0x67,0x9F,0xD7,0x0E,0x58,0xEB,0x78,0xF0,0x94,0x1A,0xB6,0x64,0x33,0xD9,0x26,0x59,0x0A,0x67,0x9F,0x43,0xDF,0x5A,0x59,0xCA,0xD4,0x32,0x57,0x91,0x2D,
0x24,0x89,0xCB,0xED,0x49,0x52,0xA4,0xE1,0xDC,0x04,0x17,0x24,0x78,0x51,0xCE,0x7C,0x53,0x19,0x81,0x8E,0xC3,0x8C,0xAF,0xB1,0xB7,0xB6,0x24,0x4C,0x13,0x4E,0x25,0x9F,0x48,0x68,0xE2,0xCC,
0x99,0xED,0x53,0x14,0xE9,0x76,0x6C,0x3A,0x45,0x77,0xE7,0x7A,0x07,0xA2,0x07,0x89,0x20,0xFE,0x91,0x72,0xB7,0x86,0xA5,0x15,0x33,0x5D,0xB9,0x73,0x70,0x46,0xF3,0x0E,0xCE,0xF1,0x42,0x4A,
0x6E,0x20,0xF1,0xDB,0x6D,0xE2,0x32,0x4C,0x72,0xAB,0xA9,0x91,0xF8,0x62,0x7B,0xE9,0x0C,0x0B,0x85,0xE1,0x61,0x19,0x9A,0xD6,0x23,0xC5,0xD7,0xB7,0x68,0x3B,0x91,0x3F,0x69,0x5F,0xA4,0x4D,
0xD2,0x0C,0x49,0x34,0x8C,0x7B,0xC8,0x83,0x89,0xB1,0x91,0x6C,0xDA,0x2D,0xDA,0x8D,0xE9,0xE3,0xF9,0x6F,0x79,0x3C,0x8E,0x46,0xB2,0x32,0xCF,0xF1,0x7A,0x52,0x41,0x25,0x68,0xD9,0xB2,0xE5,
0x9B,0xB2,0x73,0xF6,0x55,0xAC,0xCF,0x79,0x9E,0xB4,0x7B,0x16,0xDB,0xCA,0x88,0xA2,0xB6,0x5A,0xCA,0x29,0x1F,0xDB,0x89,0xED,0x14,0x95,0xE7,0xD8,0x41,0xBB,0x27,0x49,0x18,0x86,0x96,0x38,
0x8F,0x4D,0xB5,0x8D,0x3A,0x24,0x0E,0x60,0x68,0xD7,0xFC,0xAA,0x74,0xE1,0x5F,0xC1,0x6B,0x34,0xCC,0x38,0xCB,0x0B,0xA5,0x9E,0xD7,0x0B,0xBE,0x6E,0xD7,0x64,0xB4,0x9D,0x20,0xBE,0x50,0x7A,
0x09,0x9F,0xB9,0x28,0xF9,0x8C,0x79,0xAC,0x24,0x8D,0xCE,0x36,0x72,0xB7,0x3B,0x05,0x55,0x7A,0x35,0x8D,0xB6,0x9E,0x91,0xF8,0x4D,0x58,0x0F,0x75,0xC2,0x8B,0x7C,0x26,0x49,0x7B,0xAC,0x1C,
0x6D,0x8F,0xF8,0xFA,0x4F,0xFB,0x6A,0x86,0xDD,0x68,0x2D,0xAB,0xEA,0x22,0xAC,0xA5,0x09,0x2B,0x6C,0x57,0xC5,0x83,0xFA,0x94,0xA6,0x19,0x2E,0xFC,0x97,0x87,0x07,0xBC,0x04,0xD8,0x07,0x6A,
0xB1,0xF1,0x2A,0x53,0x9A,0x67,0x79,0x49,0xE2,0x8B,0x4B,0xEF,0xF1,0x99,0x5D,0xE9,0x4A,0xC5,0x8A,0xD0,0x48,0xB4,0x83,0x05,0xDE,0x30,0x82,0xFA,0x0C,0x33,0xC8,0xB8,0x40,0xD4,0x44,0x60,
0x7B,0x33,0x6F,0xF1,0x4A,0xC6,0x80,0x87,0x22,0xB2,0xBD,0x60,0x94,0xDA,0xA5,0xD8,0xD5,0xB9,0xAB,0x19,0x87,0x20,0x27,0xC0,0x2B,0x36,0x2D,0x31,0x9A,0xAD,0xE6,0x7B,0xCA,0x78,0xAF,0x3E,
0xBD,0x28,0xA7,0xAC,0xC8,0x78,0xBD,0x1D,0xCB,0x13,0x92,0x85,0x18,0x87,0xAC,0x58,0x80,0xA5,0x32,0x07,0x21,0x83,0xD6,0xA5,0xC4,0x00,0x13,0x78,0xE2,0xA8,0x2F,0x0F,0xBA,0x70,0x76,0x41,
0xD9,0xD7,0x9C,0x2F,0xED,0x22,0x87,0x94,0x8F,0x8E,0xB4,0x1B,0x15,0xA1,0x8D,0x6C,0xF7,0x29,0xB2,0xD0,0xC6,0x48,0x2B,0x9E,0x5B,0xE5,0x29,0x71,0xDA,0x59,0xEE,0x4B,0x3B,0x71,0x0F,0xBC,
0xC4,0x3C,0x1F,0x71,0xB3,0xA3,0x62,0x96,0xF9,0xFC,0x52,0x24,0x5F,0x02,0x0F,0xDB,0xE6,0x5B,0x98,0xA4,0xF8,0xD9,0xBA,0x4B,0xB2,0xDA,0x22,0xB4,0x1D,0x13,0x18,0x61,0xAB,0xDD,0x50,0x6E,
0x01,0x93,0x2C,0x1B,0x61,0x56,0xB3,0xF2,0x5C,0xDB,0x20,0xF9,0xC8,0xB7,0x03,0xAF,0x6A,0x6B,0x8C,0x8F,0x8D,0xB4,0x27,0xFC,0x13,0x46,0xB1,0x92,0x22,0xFC,0x5B,0x4D,0xEF,0x76,0x7A,0xDF,
0xCA,0x5A,0xDB,0xDD,0x77,0x14,0xB4,0x6B,0x73,0x83,0x37,0xE5,0x89,0x2B,0x9F,0xB7,0x19,0x34,0x67,0xBF,0x6F,0xEC,0x35,0x5E,0xBA,0x5C,0x3E,0x93,0x6B,0xF5,0x77,0x12,0x9A,0xD0,0x46,0xD5,
0x8E,0x4A,0xFE,0xD8,0xB4,0xBD,0x7D,0xA7,0x54,0x0F,0x98,0x81,0x25,0x41,0xA3,0xDB,0xD9,0xA5,0xC8,0xD4,0x7C,0xBC,0x6B,0xF4,0x9E,0x14,0x16,0x63,0x2B,0x0D,0xD1,0x73,0x4A,0x25,0x59,0xFC,
0xD7,0xF6,0x03,0xD6,0x1D,0x0E,0xB7,0xEB,0x78,0x75,0xAA,0x0C,0xA5,0xF6,0xAF,0xF8,0xE8,0x28,0x68,0xB9,0xF3,0x7B,0x63,0x3E,0xE2,0x4D,0xDD,0x60,0xA3,0x82,0x84,0x05,0x13,0x76,0x65,0x56,
0x1E,0x3F,0xDC,0xE9,0xC1,0x09,0x45,0x0E,0x30,0x3C,0xE0,0x16,0x56,0x8F,0xBB,0x9E,0xD6,0x52,0x27,0x94,0xF9,0xE5,0x7E,0x14,0x2B,0x57,0x14,0x47,0xD6,0xAA,0x6E,0x79,0x4D,0xA2,0x19,0x24,
0x8D,0x7C,0x63,0xBE,0x98,0x5B,0x7D,0x71,0xA4,0x88,0xC3,0x44,0x42,0xDC,0x7D,0xA3,0xDC,0x9A,0x9F,0xB2,0xC5,0xAB,0x13,0x68,0x03,0xD2,0xFE,0xF1,0x8D,0xB5,0xC0,0x3B,0xAF,0x3D,0x37,0xDA,
0x47,0x1A,0xE0,0x6E,0x0B,0xAF,0x0B,0x10,0xED,0x8E,0x94,0x50,0xEA,0x5A,0x27,0xED,0xE8,0xF2,0xEA,0xF8,0x2C,0x9C,0xF0,0x20,0xA2,0x09,0xA2,0x1E,0x80,0x14,0xA5,0xAE,0xBB,0xA4,0x68,0x73,
0x11,0x9A,0x44,0xCE,0x19,0x47,0x23,0xE9,0x8B,0x9B,0x29,0x6E,0xF8,0xD3,0xD3,0x03,0xA3,0x75,0xEB,0x90,0xD0,0x6E,0x6D,0xF7,0x5F,0x26,0xAB,0xD0,0x29,0x12,0xB2,0x26,0xCB,0x8D,0x6F,0xE3,
0x71,0xBA,0x6F,0xD8,0x9E,0xC1,0xA6,0xD8,0x6E,0x64,0x68,0xB7,0x24,0xCD,0x5B,0x86,0x76,0x6A,0x3E,0x3E,0x96,0x58,0xA9,0x1C,0x8D,0xB4,0x6E,0x49,0xB4,0xE8,0x82,0x3D,0x49,0x3C,0x8E,0x46,
0xB2,0x49,0xEF,0xE6,0x21,0xF0,0xDB,0xDD,0xD5,0x35,0x57,0x09,0x94,0x6D,0x09,0x1E,0xC1,0x20,0x79,0x33,0x1C,0xAD,0x3E,0x95,0x4C,0x49,0x7E,0x37,0xEE,0x69,0xDE,0xCD,0xEC,0xE6,0x3D,0xF1,
0x24,0x7A,0x84,0x36,0x21,0x51,0x49,0x32,0x1A,0xC9,0xCD,0x26,0xB1,0xDB,0x8F,0x76,0xB7,0x44,0x74,0x46,0x27,0xC5,0x82,0x46,0xA6,0xB3,0x02,0xE1,0x48,0xCD,0xE8,0x89,0xD1,0xB4,0x4B,0x4A,
0xE6,0xCB,0x88,0x57,0xC5,0xA2,0xE4,0x34,0xEF,0xA2,0x91,0x66,0x72,0xB4,0x34,0x7D,0xD3,0x5B,0xD6,0xD9,0xBC,0xE5,0x3A,0x80,0x44,0x25,0x22,0xA8,0x3D,0x34,0xD7,0x61,0xD1,0x31,0xA6,0x52,
0x34,0x9D,0x36,0x36,0x8E,0xC6,0xBD,0x30,0xEE,0x91,0x25,0x4C,0xF9,0xD2,0xE0,0x3D,0x47,0x23,0xE9,0x37,0x81,0x96,0x21,0xCD,0x6D,0x9E,0x41,0x05,0x1A,0xC9,0x12,0x8B,0xB6,0x07,0x36,0xFE,
0xDA,0xE1,0xEE,0x26,0x1B,0x94,0x48,0xE7,0x9E,0x02,0x90,0x57,0xC4,0xF7,0x1C,0x8D,0x14,0xAB,0x10,0x68,0x63,0x14,0x88,0x8B,0x84,0x8F,0x52,0x21,0x91,0xB7,0x68,0xA4,0x68,0xA8,0x40,0x4B,
0x79,0x3E,0xCA,0x1B,0xB6,0xF9,0x38,0x04,0x42,0x5D,0x15,0x5F,0x89,0xC2,0xD0,0xEA,0xD0,0x64,0x06,0x0D,0xE3,0xA1,0x2C,0x66,0x5F,0x52,0xC6,0x8D,0xA1,0x91,0x3C,0xF7,0x32,0xB4,0xF2,0xA1,
0x09,0x34,0x92,0x0E,0xE0,0xA7,0x05,0xF9,0x7A,0xF1,0x1B,0x2D,0x49,0xD9,0xC6,0xA3,0x2E,0x69,0x87,0x9F,0x7B,0xAC,0x16,0xCF,0x6B,0xFE,0xB6,0xDD,0xD2,0x7B,0x2D,0x19,0xAF,0x72,0x8B,0x46,
0xB2,0x95,0x05,0xE9,0x03,0x77,0x83,0xC0,0xF4,0x4C,0x8A,0xAC,0x64,0x36,0xD7,0x92,0x94,0xDB,0x2C,0x0E,0x25,0x25,0xDC,0x2C,0xBC,0xBC,0x19,0xEF,0x63,0x91,0xCA,0x5A,0x1D,0xA9,0xA4,0xAC,
0x93,0x32,0x34,0x5E,0xCB,0xB4,0x3C,0xBA,0xA2,0x92,0xB2,0x56,0xB1,0x45,0x7E,0x0B,0x1E,0x4F,0x80,0xB2,0xC2,0xA5,0x17,0xCC,0x3D,0x99,0x02,0x6B,0x5C,0xE3,0x90,0xAC,0xA0,0x2D,0x5A,0x4D,
0x6D,0x4A,0xD2,0xDD,0xE3,0x44,0x0A,0x60,0x1D,0x6D,0xAA,0x92,0x74,0x00,0xA2,0xD5,0x4B,0xC8,0x15,0x96,0x39,0x25,0xAF,0x92,0xA1,0xD5,0x4B,0x91,0x15,0xB1,0x15,0xCA,0x3E,0x2D,0x43,0xAB,
0x97,0x22,0x2B,0x24,0x17,0x89,0xBB,0x73,0xD0,0x48,0x91,0x7F,0x9D,0xB4,0xB3,0x82,0x68,0x3B,0x5B,0x54,0xE9,0xA4,0xCE,0x8A,0xCC,0x8C,0x2E,0x49,0x2A,0x8F,0x77,0x74,0x28,0xDB,0xCB,0x24,
0x8D,0x4D,0x23,0xE9,0x37,0x44,0x4B,0x8C,0x84,0x17,0x09,0xB1,0x5D,0x99,0x90,0x14,0xDF,0xC9,0x24,0x79,0x54,0x88,0xF6,0xA1,0x89,0x73,0xC9,0xE7,0xB1,0xDC,0xB1,0xCF,0xA2,0xA9,0x74,0xB4,
0xC8,0xF6,0x91,0xDB,0x0B,0xDE,0x41,0xEB,0x51,0x66,0x32,0x37,0x1E,0x85,0x3D,0xF8,0x26,0x11,0x6C,0xC3,0x88,0x78,0x88,0xB6,0xA5,0xF3,0x72,0x54,0x11,0x86,0xE4,0xF6,0x33,0x25,0xAF,0x93,
0xE3,0xBD,0x1D,0x59,0x26,0x78,0x08,0xD4,0x00,0x91,0x88,0x10,0x51,0x76,0xE0,0x1A,0xE3,0xB3,0x49,0xF3,0xE7,0x68,0x4F,0x23,0xB2,0x1D,0xE2,0x38,0xAE,0x44,0xDE,0x36,0x29,0x87,0x68,0x6C,
0x2F,0x12,0x5A,0xAF,0xC6,0xE9,0x09,0x1A,0x5F,0xD4,0xBA,0x11,0x60,0x8B,0xD6,0x21,0xD9,0x7D,0x63,0x98,0x3C,0x51,0x7F,0x28,0x50,0x7E,0x22,0x0D,0x8F,0xD3,0x09,0x65,0xEF,0x16,0xD0,0x5E,
0x40,0x6C,0xBE,0x73,0x31,0x16,0x15,0xF0,0xAD,0x7E,0x96,0x07,0xF6,0x0D,0xDF,0x8C,0x62,0xD9,0xAC,0x65,0xDE,0x81,0x41,0xD3,0x0C,0x19,0xB4,0x26,0x2F,0xEF,0x50,0x4D,0x98,0x1C,0x8D,0x76,
0x9A,0x20,0x8F,0x0B,0x37,0x2B,0xB0,0x05,0x17,0x11,0x0B,0x6A,0x60,0x24,0x7D,0xF2,0x30,0x9C,0x13,0x28,0x30,0xD0,0x6A,0x4F,0x6F,0x40,0xF1,0x4F,0x00,0x6F,0x62,0x3E,0x98,0xBE,0x1D,0xC1,
0xF1,0xCC,0x9E,0xA9,0x25,0x4A,0x5B,0x5F,0x7A,0x4E,0x50,0x9C,0xBD,0xC4,0xF1,0x48,0x52,0x6E,0x17,0x0D,0x4F,0x14,0x7C,0xC3,0xAC,0x40,0x76,0x4E,0xD2,0x35,0xAB,0xF3,0xB1,0x48,0x94,0xBA,
0x83,0xC6,0xF7,0xF3,0xC0,0x74,0x92,0x42,0xE4,0x68,0x24,0x1F,0x3D,0xBA,0xF7,0x52,0x64,0x2B,0x02,0x53,0xD2,0xE2,0x0F,0xB7,0x24,0x3F,0x36,0x42,0x43,0x98,0x23,0x65,0x62,0x06,0x4B,0x59,
0x37,0x56,0xA0,0x51,0xF4,0x7C,0x7E,0x71,0x4F,0x6B,0xBE,0xF1,0xED,0xF0,0x85,0x68,0xD3,0xC4,0x3D,0x38,0xA1,0x58,0xBF,0x88,0xB7,0x04,0x55,0xB4,0x4F,0xAC,0x98,0x36,0xBF,0x4B,0x30,0xD8,
0x1E,0x6A,0x25,0x5E,0x73,0x5B,0x83,0x64,0xDB,0x8B,0x88,0x6D,0x9D,0xBC,0x29,0x3E,0x36,0x92,0xBE,0x98,0xD8,0x9F,0x33,0xE9,0x67,0xF1,0x59,0x7D,0x89,0x1D,0xE8,0x96,0x41,0x89,0x02,0xE6,
0xA2,0xF1,0xE0,0x8E,0x8C,0xB5,0xBD,0x6E,0x91,0x7C,0xB2,0x89,0xF3,0x82,0xBB,0x88,0x20,0x2B,0xC9,0xA9,0x2F,0x3C,0xF3,0x65,0x6F,0x3B,0x6A,0xE2,0xCD,0xE7,0xF1,0xF6,0xF7,0xB7,0x6A,0xEB,
0x5B,0x1E,0x44,0xF8,0xFB,0xD5,0xE9,0xE0,0xF6,0xAC,0x3C,0x8A,0xC0,0x7A,0x70,0x41,0xA1,0x53,0xC4,0xE3,0x99,0xFA,0x3C,0x8B,0xE0,0xEA,0x8A,0x67,0x88,0x98,0x0B,0x5B,0x82,0x4D,0x38,0xED,
0x90,0xA2,0x75,0x69,0xB4,0x21,0x66,0x83,0x10,0x2C,0x9B,0x0E,0x29,0x7E,0x36,0x59,0x7B,0x21,0x16,0xD4,0x9D,0x80,0x35,0xE5,0x88,0xF8,0x81,0xE4,0x81,0x7D,0x7E,0xF6,0xE1,0x81,0x44,0xA9,
0xEB,0x17,0xDF,0xDE,0xD4,0xF0,0xE6,0xA3,0xB1,0xD1,0xF4,0x45,0x22,0x3A,0x91,0x38,0xCA,0xCE,0x83,0x5B,0x56,0xA9,0xA7,0xC1,0x2D,0x52,0x22,0x1A,0x68,0x0B,0xDC,0x4D,0xFF,0xBB,0xBD,0x5E,
0xD3,0xF2,0x0A,0xB8,0x45,0x4A,0xD3,0xBC,0x98,0x43,0xE7,0x60,0x86,0xD4,0x64,0xE3,0x86,0x5E,0x69,0x3A,0x5D,0x1E,0x9A,0x46,0x8A,0x55,0x44,0x5B,0x26,0x09,0x4F,0x54,0x6A,0x33,0x36,0x42,
0xD3,0x49,0x27,0xD2,0xB0,0x80,0x14,0xA6,0xBB,0x91,0x4E,0x19,0x25,0xD0,0x0C,0x9A,0x3C,0x8B,0xF3,0x83,0x65,0x12,0xBE,0xB2,0x68,0x2A,0x69,0x87,0x74,0x07,0x8D,0xDF,0x25,0xEC,0x4B,0x6E,
0x6F,0x70,0x9A,0xA4,0x51,0xC9,0x26,0x58,0x5B,0xCC,0x9F,0x8F,0xD3,0xDA,0x4A,0x0F,0x2B,0xA6,0xD1,0x06,0xA4,0x58,0x45,0x5C,0x1A,0x99,0xB9,0xD9,0xDF,0xEC,0x54,0xF6,0x91,0x89,0x7B,0x4E,
0x68,0xEB,0xC6,0xD0,0x00,0x88,0x93,0xC9,0x1B,0xBE,0x75,0x33,0xC2,0x5D,0xA9,0xA0,0xA2,0x82,0x3F,0x47,0x23,0xF9,0x9B,0x69,0x34,0x41,0xFF,0x32,0x70,0x1C,0x6D,0xEF,0x7C,0x5A,0xE8,0xC1,
0xD0,0x64,0x66,0x35,0x79,0x6F,0x91,0xF7,0xE0,0x9E,0x20,0xA9,0x23,0xBC,0x95,0xB7,0x79,0x70,0xB0,0x9A,0xCB,0x64,0xE5,0x49,0x17,0xA0,0x12,0x78,0x37,0xC4,0xF9,0x1D,0x3A,0x5E,0xB0,0x23,
0x63,0xF8,0x6E,0x58,0xE5,0xC1,0x19,0x86,0x36,0xA6,0xD9,0x9E,0xAC,0xF4,0xF4,0x13,0xBF,0x76,0x9D,0xE0,0x46,0xC4,0x63,0xFB,0x85,0xA4,0xF5,0xA2,0x42,0xD7,0x1F,0x4C,0x5A,0x49,0xE1,0x08,
0x8D,0xE6,0x01,0xEE,0xA2,0xF1,0x3B,0x71,0xD8,0x65,0xF0,0x72,0x3C,0x3F,0xF9,0x3B,0x71,0x6C,0x97,0x1E,0x93,0x62,0x25,0x57,0xAF,0x97,0xA1,0x91,0xF6,0x3A,0x00,0x2D,0x0E,0xF4,0xCA,0x06,
0x94,0x77,0xD0,0x48,0x91,0xDE,0x24,0xDA,0x64,0xB9,0x61,0xC5,0x27,0xF3,0x6F,0x7B,0x2F,0x40,0x23,0xED,0xAC,0x00,0xDA,0x4F,0xE6,0x73,0xA9,0x87,0x5E,0x8E,0x46,0x8A,0x99,0x23,0x9A,0xB5,
0xE0,0xDE,0xAD,0xD8,0xCB,0x41,0x0F,0x57,0xDA,0x5A,0x99,0xEC,0x6F,0xC5,0xDF,0x2B,0xD7,0xE6,0x8B,0xE5,0x6F,0x43,0x31,0x92,0xFC,0x1E,0x71,0x3C,0x45,0x13,0x0A,0x3C,0x0F,0x2F,0x48,0xE5,
0x89,0xE5,0x3C,0xF3,0xF1,0xC4,0xD9,0xE0,0x89,0x58,0x7E,0x2F,0xAC,0xE7,0x2C,0x0A,0x2E,0x07,0x61,0x23,0xFE,0x95,0x38,0xBF,0x37,0x9E,0x1D,0xE0,0x45,0xCC,0xCA,0xB9,0xE9,0xAF,0x08,0xAC,
0xC1,0xD1,0x3E,0x10,0xD1,0xB8,0x71,0xDB,0xDC,0x46,0xB8,0xAD,0xF9,0xD2,0xF5,0x9A,0xA2,0x5A,0x41,0x85,0x7D,0x36,0xA1,0x59,0x83,0x80,0xB6,0x53,0x2E,0x95,0xE6,0x01,0xAE,0x03,0x9F,0x28,
0x61,0xC6,0x98,0x48,0xAA,0x0C,0x9A,0xF7,0xEC,0x88,0x83,0x1C,0x07,0x6E,0xC7,0x46,0xD5,0x0C,0x1C,0x2D,0xAA,0x3F,0x4B,0xF4,0x6E,0x27,0x34,0xEF,0x2B,0x42,0x23,0x0C,0x6A,0x07,0x6D,0xFF,
0x18,0xD3,0x7D,0x3A,0xC0,0x25,0x2C,0x1B,0xB6,0x2D,0x83,0x67,0xD5,0x0B,0x5D,0x0B,0xCE,0x85,0xB4,0x1E,0x64,0xAF,0x2A,0xA0,0x6A,0x5E,0x52,0xB4,0x19,0xD1,0x98,0x39,0xF1,0x86,0xA5,0xDA,
0xF0,0x33,0x87,0x47,0xCA,0xAD,0xC7,0x4C,0xD4,0x52,0xB3,0x8D,0xA3,0xD1,0x62,0x4C,0x80,0x16,0x7A,0xFE,0x2A,0xAC,0xAB,0x0B,0x49,0xD9,0xF2,0xEC,0xAA,0x02,0x24,0x50,0xE9,0xC2,0x27,0x3B,
0x68,0xEB,0x80,0xE6,0xB9,0xDF,0xEF,0x5C,0xBC,0xCE,0x91,0x09,0xF9,0x1A,0x13,0x92,0xDF,0x32,0x35,0xDD,0x27,0x65,0xEA,0x61,0xA6,0x25,0x26,0x7F,0x05,0x47,0x00,0x6E,0xB9,0xF3,0x25,0x0F,
0x9A,0x57,0x67,0x2C,0x0D,0x48,0xB6,0xFD,0xD4,0x72,0xAC,0xE2,0xDB,0x76,0xAA,0xC7,0xD6,0x23,0x79,0xB7,0xDC,0xDF,0x1B,0x2E,0xAD,0x4F,0xF5,0xAA,0xC3,0xA9,0xA4,0x68,0xD2,0xD4,0xB7,0x9B,
0x40,0xF6,0xDE,0x46,0xE8,0x59,0xDC,0x64,0xD9,0x5E,0xFE,0xE5,0xDB,0x25,0xD1,0x3B,0x46,0x25,0x46,0xB0,0x2F,0x1A,0xBF,0x90,0x47,0x72,0xC7,0x91,0x54,0x4D,0x69,0xFA,0x61,0x27,0x58,0x2D,
0x8B,0x14,0x8F,0x4D,0x5D,0xED,0x83,0xC6,0xEF,0x40,0x91,0xD7,0x43,0x2A,0x89,0xBB,0xDF,0x9F,0xDF,0x89,0x5B,0x8D,0xC4,0x8E,0x6A,0x42,0x34,0xCB,0xF8,0xD2,0x6D,0x92,0xE4,0xDA,0xA2,0xC1,
0x0A,0x02,0xDC,0x06,0x8F,0x2F,0x5F,0xB9,0x81,0xFD,0xE8,0xDA,0x15,0x16,0x29,0x8F,0xCB,0x91,0xCE,0x12,0x6C,0xD1,0xC4,0xE9,0xDE,0x08,0xE9,0x48,0xD1,0x79,0x36,0xC5,0x49,0x51,0xAA,0x14,
0x47,0x23,0xD9,0x46,0x5B,0xB4,0xA1,0xED,0xCF,0x37,0x76,0xE8,0xBF,0x1C,0x31,0xC7,0xEF,0xDA,0x2A,0x3C,0xB2,0xB0,0x83,0x76,0x4F,0x45,0x13,0xCB,0x14,0xB3,0x59,0x8C,0x2B,0x33,0x93,0xBF,
0x90,0xD0,0x5C,0x3B,0xAC,0x91,0x3F,0xB4,0x45,0xA3,0x51,0xC9,0x44,0x19,0x9A,0x9F,0x4C,0x07,0x06,0x72,0x61,0xB9,0x96,0x6F,0xCA,0x57,0x38,0xE2,0x3B,0x36,0xA4,0x68,0x52,0x02,0x8D,0xE8,
0xEA,0x09,0x34,0xD2,0x8E,0x4D,0x02,0x8D,0x7A,0xC2,0x95,0xA3,0x91,0xF4,0xDB,0x07,0x80,0xB0,0x56,0x9E,0x1F,0x52,0xA3,0x0F,0xD1,0x1E,0x0A,0x0D,0xCD,0xF2,0x43,0x76,0x91,0x42,0x14,0xC6,
0x65,0xC9,0xB1,0x15,0xB9,0x81,0x09,0xB4,0x16,0x69,0x26,0x33,0x68,0x3C,0x39,0x56,0xA6,0x58,0x3A,0x47,0x23,0x51,0x09,0xF3,0x77,0x78,0x44,0x3F,0x91,0x0B,0x2F,0x5D,0xFB,0x71,0xD4,0x25,
0xCE,0x24,0x26,0x86,0xEF,0x22,0x49,0x9E,0x30,0xE5,0x68,0xB4,0x1D,0xD9,0x1C,0x7B,0x5D,0xA4,0xA6,0x3B,0xE0,0x09,0x05,0x4B,0x70,0x19,0xAA,0x52,0x16,0xD2,0x3D,0x18,0x10,0xAB,0x31,0xDE,
0x9B,0x76,0x71,0x7E,0x42,0xF9,0x0F,0xDF,0x67,0x20,0x79,0x5F,0x3C,0x62,0x7C,0xE2,0xB3,0xD2,0x54,0xAC,0x5C,0x9B,0xE9,0x03,0x15,0x2D,0x1E,0xAB,0xEB,0xE7,0x70,0x2E,0x24,0xED,0xD8,0x70,
0xB4,0x3D,0x2A,0x1E,0x9B,0x14,0x0B,0x9A,0xA3,0xB1,0x5A,0x40,0xDF,0x70,0x12,0xC2,0xE4,0x56,0xA9,0x2A,0x28,0x0C,0x6D,0xF1,0x28,0x3D,0x36,0x25,0x86,0xDB,0x06,0x53,0xA9,0xDB,0x51,0x2D,
0x12,0x63,0x08,0x34,0x56,0x44,0x30,0x71,0x88,0x41,0x66,0x5B,0x85,0x93,0x25,0x49,0x11,0xDD,0xDB,0xEE,0x22,0xD8,0xF8,0x0F,0x33,0x8F,0x9A,0x17,0x21,0x88,0x92,0x94,0x3A,0x7B,0xEF,0x39,
0x0F,0x6B,0xF9,0xEB,0x17,0x32,0x68,0x06,0x69,0x6C,0x51,0x95,0xAF,0x44,0x0D,0x48,0x71,0x6F,0x21,0xD0,0xFF,0x04,0x24,0xEB,0x93,0xE5,0x97,0x84,0xC5,0x4E,0x69,0xC2,0x5A,0xA0,0xD5,0xC9,
0x43,0xE6,0x06,0x04,0xC9,0x1D,0x17,0x3B,0xA3,0x35,0xEA,0x5A,0x0A,0x13,0x9A,0x74,0xC4,0x60,0x77,0x1F,0x36,0x21,0xA6,0x25,0x13,0x12,0xBB,0x94,0xED,0xA8,0x3F,0x4B,0xDC,0x65,0x16,0x7A,
0x7E,0x60,0x7F,0x9D,0x4B,0x60,0x12,0xB7,0x27,0x4D,0x01,0xD5,0xA3,0xD0,0x2C,0xDE,0x9E,0x24,0x7B,0xB3,0x97,0x91,0x0F,0xC7,0x35,0x32,0xAF,0x5D,0x2C,0x6C,0xFB,0xC2,0x85,0x65,0x70,0x92,
0x57,0x42,0x96,0xC2,0x09,0x47,0xA9,0x1C,0x30,0x82,0x93,0xBA,0xCF,0xA8,0x14,0x0E,0x2F,0x6F,0xAC,0x1A,0x5C,0x0C,0x27,0x75,0xF3,0x55,0x29,0x9C,0xA1,0xE0,0x9D,0xEF,0xCA,0x20,0xC4,0x7B,
0xF9,0x58,0x31,0x84,0xE1,0x0B,0x58,0x01,0xB8,0xB7,0xBB,0x45,0x6F,0xB4,0x0D,0x4D,0x7A,0xED,0x54,0x0E,0x37,0x79,0xB2,0x1C,0x0B,0x73,0x87,0xA8,0x84,0x02,0x70,0x1D,0x2D,0x95,0xF3,0x55,
0xED,0x45,0x6F,0x47,0x74,0xE5,0x86,0xD6,0x23,0x3A,0x11,0x03,0x7F,0x25,0x73,0x3B,0x53,0x23,0x95,0xEF,0x2D,0x81,0xF6,0x5A,0xF7,0x31,0xBD,0x06,0x4B,0xFE,0xA7,0xEE,0x65,0xD2,0xF6,0xBD,
0x98,0x49,0xEF,0xA9,0x6D,0xDA,0x22,0x6F,0x6F,0xDE,0xE0,0x19,0x93,0xBC,0x16,0x28,0xC8,0x5D,0xDB,0x9D,0x3B,0xE5,0xF7,0xCD,0x33,0x34,0xBC,0x03,0x24,0x61,0x59,0x91,0xD0,0x84,0x14,0x18,
0x9A,0xB3,0xD2,0x6D,0x8F,0x24,0xDA,0x6E,0xF4,0x42,0x06,0xED,0xAE,0x19,0xE3,0xC9,0x0C,0x6A,0x77,0x6C,0x9A,0xFC,0xD8,0xF2,0x0B,0x6B,0x61,0x0F,0x7E,0xD9,0xF6,0xE0,0xD4,0x9A,0x7B,0x78,
0x50,0x30,0xD1,0x97,0x62,0x61,0xCB,0x7A,0xA0,0x52,0x7A,0xD0,0x88,0x72,0x94,0xE9,0x71,0x66,0x81,0xB7,0x5B,0x37,0xA4,0x62,0x7E,0xAF,0xCD,0x19,0x8E,0xC6,0x43,0x47,0x9C,0x92,0x73,0x10,
0xA3,0x9D,0x9E,0x11,0x68,0x67,0xA7,0x80,0xEB,0x1B,0x76,0xD8,0x26,0xDC,0x2C,0xAA,0xF2,0x47,0xB6,0x68,0x6B,0xE3,0x81,0x30,0xB6,0x7D,0x8E,0x21,0x32,0xB4,0xE5,0x8C,0x30,0xB6,0xFD,0x0E,
0x2D,0xB4,0x88,0x87,0x16,0xA2,0x84,0x30,0x1A,0x81,0x6C,0xC7,0x96,0x8A,0xB3,0x11,0xD0,0xF8,0xE6,0xB5,0xB3,0xC2,0xA2,0x92,0x12,0x5C,0x2F,0xD0,0x3E,0x50,0xD0,0xEE,0x31,0x93,0x7E,0x56,
0x63,0x68,0x7C,0x26,0x69,0x89,0x4D,0x79,0x8A,0x67,0xF7,0x4E,0x5C,0x7B,0x4D,0xB8,0x12,0x77,0x2F,0xA5,0x75,0x09,0x50,0xA2,0x76,0xDF,0x23,0x9E,0x1E,0xF2,0xE4,0xEF,0x7F,0xC0,0x9B,0x14,
0xBB,0xB2,0x57,0x9A,0x46,0xDC,0x08,0x20,0xE0,0x19,0xD4,0x50,0x54,0x8D,0x8C,0x8E,0xAA,0xB6,0x91,0xC5,0x85,0xA6,0x88,0x4A,0x44,0xC4,0x0B,0x4D,0x75,0xD9,0x5B,0x22,0x8D,0x5E,0xDA,0xAC,
0xA3,0x22,0x32,0x2B,0xB2,0x23,0x0B,0xD7,0x11,0x69,0xDA,0xAC,0xEA,0xB0,0x0F,0x0E,0xA3,0xD2,0x69,0x2B,0xDA,0x67,0xF8,0x4F,0x12,0xB3,0xA1,0x77,0xBA,0x3D,0x33,0x0B,0xD7,0x4C,0xE3,0x35,
0x77,0xD2,0xC2,0xB3,0x78,0xDC,0xCE,0x3B,0x7D,0xBA,0x70,0x4B,0xAB,0xF9,0x31,0xBC,0xD9,0x6E,0x81,0xEC,0x3D,0xF0,0x7E,0xDE,0x58,0x96,0xFB,0x6D,0x50,0x0C,0xC9,0xF0,0xD6,0xC6,0x32,0x2D,
0x01,0x6A,0xE2,0xF1,0xD8,0xC7,0x60,0x5D,0xE8,0x40,0x47,0xE3,0x7B,0x7E,0x9D,0xF1,0xDD,0xDB,0xE1,0x7C,0x59,0x39,0x3E,0x33,0x7B,0x67,0x6B,0x29,0xDE,0x2B,0x59,0xC8,0xAF,0x22,0x75,0xFE,
0x13,0xA6,0xF2,0xED,0xD9,0xF0,0xDD,0x3F,0xBF,0x36,0xF6,0x1F,0x6A,0xD6,0xA3,0x02,0x4D,0x98,0xD2,0x4A,0x95,0x87,0x5A,0xBB,0x97,0x76,0xCE,0xE4,0xD0,0xC4,0x29,0x2B,0x9A,0xDB,0xA9,0xB7,
0xD4,0x54,0x24,0x5D,0x16,0x6D,0xE9,0x6D,0x9C,0x45,0x61,0x00,0xAD,0x10,0x2D,0x55,0x35,0xBC,0x92,0xA2,0xF2,0x6E,0x92,0x17,0x3D,0x60,0x79,0xAE,0xAE,0x95,0xC8,0x7F,0x81,0x1E,0x81,0xE8,
0x28,0xB3,0x34,0x3B,0xAA,0xDA,0xA7,0x5D,0xAF,0x57,0x84,0x36,0x35,0x83,0xC0,0x2A,0x57,0xE1,0x1C,0x6D,0x4E,0x41,0x3B,0x31,0xE7,0x4F,0x2C,0x42,0x8A,0x59,0x36,0xCC,0x04,0xE3,0xB9,0xBC,
0x52,0x76,0x6D,0x4B,0x6D,0xF7,0xE6,0x72,0xF7,0x4B,0x8B,0xD9,0x6D,0x88,0xA3,0x85,0x75,0xD8,0x14,0xF1,0x52,0x55,0x58,0x2A,0x47,0x67,0xA1,0xD1,0x75,0xED,0xB9,0x8F,0xCA,0xB9,0xE7,0x3F,
0x49,0x0D,0x2B,0x42,0xEB,0xB4,0xBA,0x6D,0x59,0x3B,0x21,0x83,0xC6,0xA4,0x3D,0x2F,0x78,0x0F,0x2C,0xB2,0xA8,0x34,0x19,0x10,0xCD,0xA0,0x59,0x5C,0xB8,0xD5,0x82,0xD1,0x51,0x55,0xF9,0x0C,
0x7F,0x9A,0xFC,0x5F,0xC9,0x48,0xBA,0xA1,0x19,0x86,0xAC,0x51,0xC2,0xD1,0x86,0xE6,0x9A,0x91,0x46,0xB1,0x83,0x5A,0x8C,0xD6,0x4E,0x55,0x32,0x28,0x43,0x6B,0xF2,0x3B,0xDD,0xCF,0xD6,0xC0,
0x5B,0x78,0x9F,0x31,0x9D,0x50,0x40,0xA0,0xA5,0x6A,0x63,0x55,0xC3,0x0D,0x6C,0x1F,0x2C,0xF4,0x27,0xAA,0x2D,0xC9,0xE0,0xF4,0x5E,0xEA,0x2A,0x06,0x09,0x38,0xDF,0xF7,0x9E,0xC1,0xD8,0x01,
0xFA,0x20,0xC9,0x33,0x84,0x33,0x8C,0x7E,0x1E,0x5C,0xA9,0x81,0x10,0x33,0x39,0xFA,0x22,0xC8,0xE8,0xB6,0xFB,0x28,0x6B,0x50,0xC2,0x6C,0x1A,0x34,0xF5,0x80,0xA4,0x52,0x57,0x0D,0x1B,0x04,
0x34,0x31,0x99,0x43,0x2C,0x8B,0x62,0x63,0x3D,0xA2,0xD3,0xE6,0x89,0x19,0x3C,0x55,0xC8,0xC8,0x34,0x5C,0xFA,0xE6,0xF2,0xE2,0x98,0x2B,0xF7,0xAA,0x4C,0x1B,0x7D,0x57,0x60,0x74,0x3A,0x1F,
0x74,0x54,0x3D,0xCD,0x08,0x35,0xB4,0x11,0xAF,0x2A,0x00,0x8B,0xC9,0x64,0x8C,0xA6,0x60,0x01,0x40,0xBE,0x0B,0x7A,0xEB,0xFD,0xFB,0xDF,0x8E,0x55,0x42,0xC4,0x20,0x65,0xE4,0xC7,0x1B,0x49,
0x6C,0xC0,0x6B,0x6E,0xF1,0x30,0xC6,0xA2,0xDC,0xB9,0xCA,0x39,0xE8,0xBD,0xCA,0x89,0x6E,0x18,0x5D,0x5D,0x9A,0x15,0x39,0xF1,0x60,0xE9,0xD9,0x4F,0x56,0x20,0xBF,0x86,0x09,0x34,0xAD,0xA3,
0x12,0x43,0xDA,0x13,0xB6,0x97,0xEB,0x28,0x6F,0xC0,0xFE,0xF7,0x59,0x56,0x79,0x20,0xCC,0x8C,0xE2,0xFA,0x5C,0x11,0x5A,0x47,0xED,0x4B,0x3B,0x76,0x59,0x34,0xC7,0x7A,0x20,0x80,0x15,0xA2,
0x95,0xFB,0x21,0x73,0x73,0x36,0x43,0x95,0xF4,0x80,0xB5,0xE2,0xB0,0xB2,0xD4,0xB3,0xE7,0x57,0xEB,0x22,0x86,0xD7,0xEB,0x69,0x7D,0x9A,0xF6,0x9B,0xCC,0x37,0x33,0x13,0xB7,0x56,0x9E,0xE8,
0x9C,0xA1,0xB7,0x5A,0x7D,0x92,0x9D,0xC6,0x92,0x29,0xEA,0x0A,0x19,0xBD,0x67,0x10,0xE9,0x64,0x9B,0xAA,0xB2,0x73,0x4D,0x96,0x28,0xCC,0x5E,0xBE,0xB3,0x8B,0x68,0xA7,0xBB,0x99,0x31,0x74,
0xB4,0x0F,0xB6,0x87,0x47,0x7C,0xCB,0xA1,0xB6,0x68,0xED,0x5A,0x68,0xE2,0x9A,0x0B,0x9E,0xDE,0xCA,0x2E,0x7F,0x15,0x7B,0xCC,0x45,0xB0,0x02,0x4D,0x7F,0x55,0xB4,0xE3,0xEB,0x90,0xED,0x9A,
0x67,0x40,0x05,0x5A,0xB7,0x16,0x1A,0xF7,0xF4,0x6F,0x4C,0x27,0xB4,0x02,0x71,0xF3,0x9E,0xB8,0x0D,0xA5,0x60,0x74,0x02,0x4D,0x7B,0x65,0xB4,0xB7,0xF9,0xA3,0x13,0x68,0x9D,0x5A,0x68,0x62,
0x95,0xA6,0xBE,0xF5,0xE0,0xD9,0x0E,0x43,0x12,0x77,0xA3,0x16,0x50,0x8B,0x40,0x33,0x5E,0x0B,0x4D,0xDC,0xE6,0x56,0x80,0x27,0xD0,0x7A,0xF2,0x68,0xC2,0xAF,0xBF,0x1E,0x8C,0x6F,0xD0,0xAF,
0x1F,0xA3,0x64,0xAE,0xBF,0x03,0x26,0x6D,0x9D,0x09,0x63,0xC9,0xF6,0x5C,0x7B,0xCE,0x6F,0x4A,0xC4,0x6C,0x56,0xDF,0x7C,0x92,0xF5,0x71,0x1B,0xED,0x6E,0xBB,0xD7,0x23,0xC9,0xB1,0x44,0x68,
0x11,0xF0,0xA8,0xBE,0xB4,0x9E,0xAA,0x5F,0x4D,0x43,0x53,0xA2,0x73,0xEF,0x52,0x1A,0xA1,0xDD,0xD7,0xA4,0xE3,0xA6,0xB9,0x68,0x5C,0xA2,0x39,0x22,0x55,0x6B,0xEC,0xB1,0x12,0x3A,0x05,0x96,
0x62,0xA3,0xAD,0xF7,0x7B,0x39,0xFE,0x50,0x84,0x84,0x7F,0x84,0xEE,0x8B,0xE1,0xE2,0xDD,0x70,0xEA,0x44,0xF2,0xDD,0x70,0xC9,0x8D,0xD2,0x66,0x07,0x5F,0x1D,0xB7,0xFF,0x60,0x11,0xA0,0xFF,
0x44,0xDC,0x6D,0x2C,0xF8,0xF3,0x1A,0x6C,0x99,0xFA,0xBA,0x38,0x75,0x28,0xE2,0xC0,0x9F,0x07,0xFE,0xCC,0xC2,0xC9,0xF3,0xE7,0x81,0x3D,0x63,0xF5,0x79,0x39,0xB8,0x3D,0xFD,0x27,0xF3,0x59,
0xDD,0x3A,0xFB,0x72,0x0C,0x5C,0xEF,0x69,0x44,0x5B,0xF9,0x92,0x17,0x47,0xF3,0xE8,0x6E,0x00,0x06,0x1B,0x52,0x85,0x8F,0xCB,0xD0,0x8E,0x8D,0x3F,0x5C,0x1C,0xFE,0x3F,0x22,0x85,0xFF,0xD7,
0x2C,0x73,0xC6,0x99,0x3D,0xAC,0x73,0x9A,0x9D,0x07,0x5F,0x66,0x9F,0xEB,0x7F,0xCA,0x36,0x97,0x6B,0xAF,0xF0,0x74,0x8A,0x6B,0x3E,0x91,0xB7,0xB9,0xF4,0x96,0xAA,0xB6,0x77,0x92,0xFE,0x99,
0x6E,0x3A,0x36,0x3A,0x7D,0xA3,0xAB,0xA1,0xBA,0x6A,0x1D,0x63,0xD0,0x03,0xB7,0xFC,0xE3,0x17,0x3B,0x9F,0xAB,0x5C,0x99,0x35,0x0D,0xF8,0x3F,0xD1,0x99,0xD0,0xF4,0x1F,0xEC,0x80,0x14,0x16,
0x6F,0xE8,0xBA,0xAA,0x69,0x99,0xCE,0xC4,0xF4,0xBF,0xD5,0xA1,0x88,0xA7,0x75,0xC0,0xE8,0x64,0x51,0x5C,0x2C,0x63,0x61,0x7E,0xAE,0x13,0x13,0x07,0x17,0xAC,0xB7,0x8B,0xB7,0x03,0x98,0x1F,
0x34,0xF6,0x51,0x91,0x5E,0x47,0x09,0xC1,0xE6,0xC2,0x52,0xF4,0x6B,0x29,0xEC,0x46,0x07,0xA6,0xAC,0x9B,0x19,0x5F,0x7E,0x14,0xB7,0x97,0x83,0x36,0xDC,0xF8,0x9F,0xD8,0x61,0x27,0x04,0xD5,
0x2A,0x40,0x1B,0xBD,0x6E,0xD7,0xD8,0x07,0xED,0xDC,0x9C,0x5B,0xAC,0x90,0xDA,0xDA,0x7E,0xB2,0x14,0xB5,0x1C,0xAE,0xD1,0xEB,0x75,0xFA,0x59,0x42,0xAA,0x42,0x53,0xB7,0x63,0x03,0x0B,0x8B,
0x10,0xA1,0xEE,0x75,0xB5,0xBE,0x24,0x9A,0xB6,0x5D,0x38,0xC9,0x85,0xCA,0x0E,0xAE,0xDB,0xEF,0x1B,0x92,0x70,0x46,0x12,0x2E,0x19,0xF7,0x38,0x73,0x0B,0x8A,0x71,0xE4,0xC3,0x61,0xB6,0xC3,
0x16,0x51,0x06,0xCE,0xB8,0x16,0x35,0x40,0x26,0xE6,0xCC,0xB7,0x38,0x99,0xC8,0x6D,0x58,0xEA,0xDD,0xE2,0xD1,0x35,0x77,0xB9,0x40,0xD5,0xB6,0x78,0xB8,0x78,0x14,0x63,0x5C,0xE0,0x75,0x55,
0xB5,0x27,0x39,0x9B,0x89,0xB5,0x33,0x62,0x52,0x41,0x1D,0x5B,0x64,0x81,0xE7,0x4D,0x66,0x47,0xED,0x15,0x0B,0x95,0x66,0x8A,0x34,0xB7,0x80,0x1D,0x01,0x37,0x5D,0x62,0xC6,0xCA,0x24,0xF4,
0xE4,0xE8,0xB3,0xD1,0xD1,0xFB,0x1D,0x3A,0x27,0x74,0x8E,0x23,0x3C,0x69,0x24,0x86,0x66,0xB4,0xD2,0x6C,0x57,0x81,0x96,0xBB,0x7B,0x02,0x3D,0x98,0x01,0xAB,0xDF,0xE3,0xFD,0xE3,0xD7,0x1E,
0x01,0x9F,0x39,0x21,0xDD,0x56,0x2B,0xAB,0x42,0xF8,0xCC,0x26,0x84,0x77,0x33,0xB1,0x3D,0xC5,0xE5,0xB6,0x89,0x99,0xCD,0x75,0xB6,0x34,0xDA,0xED,0x6E,0xAB,0x3B,0x4F,0x9F,0x55,0xDB,0xF1,
0xAF,0x12,0xFC,0xCF,0xE7,0x18,0x93,0x06,0xAA,0x64,0x66,0x01,0x5C,0x5F,0x57,0x3B,0xD9,0x11,0x96,0x39,0xE3,0x08,0xD6,0xAE,0x09,0xA6,0x75,0xFA,0x2A,0x0D,0x8C,0xD5,0x71,0xE2,0x87,0x27,
0x7C,0xF4,0x5B,0xE5,0xA9,0xA7,0xDF,0xD6,0xB4,0x2C,0x73,0xE4,0x53,0x4F,0xC4,0xF9,0x19,0x38,0xA1,0x0A,0xF9,0xFB,0x93,0xA5,0x5D,0x52,0x5F,0x05,0xE1,0x24,0x05,0x5B,0x0C,0xF7,0xCC,0xDB,
0x67,0xBB,0xC3,0xB4,0x48,0x83,0x61,0xF4,0xFB,0x59,0xDE,0x88,0xB9,0x5E,0x8D,0x31,0x15,0xB1,0x8F,0x99,0xCF,0x1B,0xBE,0xE7,0x51,0x3D,0xF3,0xB8,0x07,0xBA,0xAE,0x49,0x1B,0x18,0xCD,0x6E,
0x27,0xE2,0x8D,0xCD,0xA3,0xB4,0x80,0x4B,0x43,0x76,0x55,0xDD,0xC8,0x1A,0x51,0x25,0xF4,0x33,0x34,0x57,0x96,0x6F,0x2A,0x37,0xDE,0x27,0xBB,0x8E,0xF9,0x98,0xB6,0xA0,0xA4,0xC0,0xC0,0x56,
0x5D,0xE3,0x69,0x5F,0x9A,0x79,0xD8,0x6A,0xF5,0xB2,0x4A,0x1F,0xAD,0xD1,0x36,0x1A,0xA7,0x9D,0x4E,0x4B,0x6B,0xB3,0x5F,0xC5,0xCB,0x26,0x7E,0x10,0x85,0x5B,0x9A,0xC6,0x71,0xAB,0xA3,0x29,
0x1A,0x7B,0xAB,0xB7,0xED,0x09,0x17,0xB9,0x78,0x10,0x69,0x22,0xAD,0xC6,0x60,0x59,0xD3,0xF2,0x20,0x22,0xAC,0x6C,0x94,0xA7,0xA9,0x19,0x20,0xDC,0xDB,0x0C,0x91,0xDD,0x94,0x7E,0x6D,0xBA,
0x73,0xFA,0x44,0xF7,0x8C,0x1C,0x52,0xDE,0xB5,0x8C,0x23,0x53,0x5C,0x98,0x04,0xAC,0x48,0x03,0x9E,0xC5,0xE5,0xF6,0xE2,0xC4,0x94,0xE7,0x1E,0x5C,0xD7,0x1C,0x83,0x67,0xAB,0x34,0xC1,0x01,
0xD0,0x34,0xD0,0xAB,0x30,0xD9,0xFD,0x56,0x47,0x6F,0x71,0xA7,0x20,0x7A,0x19,0x7D,0x88,0xFD,0xC2,0xE9,0xEE,0x16,0x70,0xD6,0xD0,0xB3,0x5D,0xBE,0x00,0xDF,0xAA,0xDF,0x2A,0x17,0x5E,0x08,
0x9A,0x96,0x5D,0x1D,0x59,0xDD,0xD1,0x46,0xBF,0xD3,0x6F,0x65,0x7B,0xB8,0xC3,0x52,0xF1,0xD2,0x6B,0xCC,0x3B,0x51,0x5B,0xBB,0x90,0x5A,0x1D,0xC8,0x1C,0x5F,0x89,0x00,0xD9,0xAE,0x03,0xD9,
0xD9,0x0B,0x12,0x8B,0x49,0x53,0x30,0x19,0x64,0xD6,0x6D,0xA8,0x82,0xCC,0x82,0x4E,0x4C,0x37,0x68,0x06,0x58,0x11,0xBD,0x1A,0xB8,0xD1,0x6D,0xB5,0x5B,0x6A,0xE6,0xF0,0x39,0x69,0x35,0x6B,
0x41,0xCE,0xF6,0x81,0xD4,0x6B,0x41,0x16,0x98,0x2D,0x72,0x90,0x46,0x2D,0xC8,0x45,0x0D,0xC8,0xD5,0xDA,0x0C,0xEA,0x24,0x7E,0xA1,0x27,0xD8,0x9F,0xB7,0xD4,0x34,0x64,0xBE,0x92,0xD7,0xB9,
0xA4,0xC2,0x9D,0xE0,0x19,0x51,0xBB,0x0B,0x34,0x0D,0x4C,0x41,0x59,0xFB,0x57,0xA0,0x6D,0x28,0xE6,0xED,0x2E,0x9A,0xDE,0xCB,0xB3,0x28,0x0A,0x0C,0x98,0x36,0xFA,0x9E,0x00,0x78,0x6A,0xBB,
0xAE,0x55,0x33,0x0D,0xB9,0xA3,0xB5,0x3B,0x39,0x9A,0xE6,0x18,0xAC,0x7E,0xA3,0x65,0x30,0x1D,0xB7,0xD5,0x76,0x46,0xBF,0xD5,0x53,0x0D,0x14,0xC4,0x3D,0x15,0xAC,0x72,0x26,0x93,0x55,0x78,
0xAF,0xD5,0xC7,0x4F,0xD5,0x4E,0x5B,0x33,0x84,0x56,0x84,0xA7,0x80,0x2E,0xE0,0xBB,0x4A,0x57,0x69,0x62,0x3F,0x31,0x92,0x72,0xFA,0xE2,0x9A,0x2B,0x56,0xF5,0x00,0x77,0xAC,0x03,0xE5,0x64,
0x23,0xED,0x67,0xB1,0xD0,0x46,0xD6,0x10,0x60,0x50,0x49,0xDD,0xAC,0x72,0xE5,0x91,0xD0,0xD5,0x6D,0xAE,0x23,0x7B,0x4A,0xB3,0x0F,0x5D,0x38,0xB7,0x1F,0x37,0xBE,0x32,0x74,0x36,0x33,0xF2,
0x12,0x35,0x3A,0xAD,0x4E,0x5B,0x32,0x26,0xC0,0x09,0xE1,0xDC,0xF3,0x16,0xCA,0x60,0xBD,0xAE,0x61,0x6A,0x35,0x74,0xBD,0xD5,0xCE,0x5A,0xE9,0x38,0xAD,0x5D,0xB5,0xD3,0xC5,0x71,0xA9,0x78,
0x05,0x20,0x1F,0x6E,0xF4,0x3A,0xFE,0x34,0xEA,0x09,0x2C,0x80,0x9E,0xE8,0xCB,0x89,0xE9,0xD6,0x48,0x02,0xC6,0xBE,0xF4,0xF2,0xF4,0x52,0x6C,0xE4,0x66,0xAC,0x30,0x86,0x36,0x34,0xC1,0xA2,
0x26,0xEF,0x50,0x62,0x90,0xAE,0x2B,0x69,0x5F,0x36,0xDB,0x19,0x38,0xAC,0x81,0x47,0x8D,0x09,0xF6,0x74,0x39,0x38,0x55,0x2B,0xB4,0xE1,0x93,0x3D,0xE0,0xDE,0x0A,0xCB,0x6B,0xFB,0xC8,0xB3,
0x6D,0xAE,0x2D,0xF3,0x53,0x61,0x82,0x20,0x1F,0xF0,0xBC,0xA5,0x49,0x38,0x2D,0x6A,0x76,0xBC,0x89,0xA4,0x9E,0x52,0x98,0x14,0x9A,0x8C,0x8B,0xC4,0xD1,0x62,0xBC,0xA5,0xE5,0xFB,0x2F,0xE4,
0xE5,0x04,0x4B,0xAD,0x23,0x1B,0x25,0x54,0xD5,0xC4,0xF0,0x7C,0xCF,0x0E,0x02,0xB3,0x3A,0xDB,0x31,0x33,0x3C,0xAD,0xC8,0x86,0x42,0xC1,0xA0,0xF6,0xD5,0xB6,0xC6,0x05,0x43,0x57,0x6F,0xA3,
0x43,0x14,0xBF,0x50,0xE2,0x8F,0x15,0x50,0x53,0x20,0xDE,0xB8,0xC4,0xC0,0xCE,0x9C,0xB3,0x5A,0x8A,0xEC,0x1A,0x5F,0x4A,0x2E,0xBB,0x91,0xF1,0x94,0x04,0xE3,0xB4,0x8E,0xB5,0xBE,0xA6,0x63,
0x7C,0xFB,0xB8,0xDF,0x06,0x9B,0xB6,0xBD,0x65,0xA3,0xE8,0x8D,0xF8,0x2B,0x18,0x98,0x82,0x0F,0xDA,0x51,0x5F,0xF0,0x42,0x16,0x76,0x97,0xA9,0x32,0x24,0x6C,0x48,0xB0,0x89,0x91,0x8C,0x31,
0x88,0x88,0x06,0x43,0x1B,0x79,0xEB,0x00,0xB7,0xFD,0x69,0xEB,0x0E,0xF6,0xBD,0x96,0x13,0x69,0x2F,0xD3,0x9A,0x0C,0x6D,0x62,0x6E,0x02,0x93,0x76,0x77,0x37,0x1F,0x5B,0xAB,0x9B,0xA3,0x1C,
0xAA,0x04,0xD4,0x74,0xE3,0x3F,0x59,0x2F,0x78,0xB6,0x90,0x28,0x31,0x5A,0xED,0x3C,0x03,0x16,0xD5,0x22,0x53,0x7F,0x6A,0xD7,0xE0,0xAA,0xB1,0x6B,0x88,0x37,0x85,0x05,0xD4,0x67,0xCE,0x5A,
0x93,0x09,0x0C,0xFF,0x65,0x6D,0xD6,0xAB,0x2F,0x80,0xE9,0xD3,0x39,0xBB,0x0A,0xC9,0x69,0x8D,0x7D,0x52,0x06,0x18,0x25,0x50,0xCF,0xFC,0x0D,0x6D,0xC3,0x24,0x1A,0x70,0xAF,0x2D,0x1B,0x64,
0xD0,0x8E,0xBB,0x51,0xD0,0xF1,0x92,0xDF,0x1A,0xB8,0x99,0x3F,0x29,0x6F,0xD8,0x31,0xD8,0xF9,0x26,0xAC,0xCE,0xB8,0xE5,0x88,0x9A,0xD1,0x6F,0xA7,0x6C,0xBC,0x02,0x6F,0x54,0xE3,0x46,0x65,
0xBB,0x57,0x20,0x98,0xB1,0x17,0xF3,0xCD,0xC3,0x43,0x0D,0x53,0xB3,0xD1,0x51,0x8D,0x9E,0x14,0x11,0xC3,0x1C,0xAB,0x1D,0x50,0x0F,0xFC,0xF0,0xBF,0xE9,0xAF,0xBD,0xD2,0xD3,0x49,0xC5,0x88,
0xED,0xAE,0x21,0x2B,0x2C,0x35,0x31,0xCB,0x58,0x9F,0x9B,0x67,0xA0,0x27,0x43,0x0D,0x21,0xDE,0x41,0x59,0x92,0x48,0xC2,0xD1,0x7A,0xBA,0xB4,0x68,0xD6,0xE4,0xD0,0xE0,0x8D,0xD5,0xDA,0xB1,
0x1F,0xEC,0xCC,0x99,0x1F,0x30,0x9F,0x32,0x21,0x86,0x0A,0xB4,0x0B,0x6F,0xE6,0x10,0x8E,0x15,0xEC,0xA0,0x69,0xBA,0xA1,0xCB,0x1A,0xD2,0x1A,0x3F,0xFF,0x8B,0x57,0xBF,0x9D,0x3B,0xB6,0x1B,
0x3A,0xAC,0x88,0x82,0x1D,0x84,0x9E,0x6C,0xA4,0x13,0xBC,0x84,0x4E,0x0E,0x8B,0x14,0x68,0xB9,0x18,0xED,0xDA,0x0C,0xD0,0x6E,0xA7,0x20,0x31,0x34,0xDC,0xBF,0x91,0xB4,0x59,0x9A,0x46,0x8C,
0x76,0xB3,0x21,0x9D,0xD2,0x48,0x8E,0x4D,0xCD,0x13,0x37,0xAD,0xE3,0x6E,0xAB,0x1B,0xFD,0x2D,0xFE,0x6D,0x8A,0x7F,0x62,0x97,0xAF,0x7D,0x0C,0x0E,0xA0,0xAE,0x83,0x58,0x88,0xBA,0x11,0x5D,
0x1E,0x58,0x23,0x14,0x98,0x8E,0x75,0x56,0xA8,0x14,0x86,0x66,0x3F,0xD4,0x89,0x74,0xB2,0xC0,0x63,0x8E,0xFD,0xAD,0xE4,0x46,0xE0,0x7A,0x31,0xDC,0xC4,0x5A,0xD9,0xE6,0x26,0xF4,0x56,0x66,
0x88,0xD5,0x9E,0x65,0x57,0x96,0x6F,0x38,0x64,0xE2,0x13,0xA5,0xFB,0x8D,0x0C,0xEE,0x9E,0x57,0x18,0xE0,0x37,0xAD,0x48,0xCF,0x29,0x70,0xBE,0x26,0xBD,0x75,0xAB,0xEF,0xA0,0xB1,0x12,0xBE,
0x02,0x4D,0x39,0x1D,0x36,0xD5,0x6E,0x75,0xC4,0x87,0x1D,0x8F,0x94,0x1C,0x1C,0x47,0x43,0x1B,0x67,0x50,0x67,0xC7,0x5D,0x84,0x16,0x25,0x99,0x83,0xF3,0x3D,0x96,0x3B,0x5B,0x9A,0xAB,0x15,
0x99,0x24,0x85,0x9D,0x93,0xE7,0x96,0xEA,0x1A,0x37,0x28,0xFB,0x46,0x87,0x99,0x9D,0x7D,0xE6,0x21,0xEB,0xE0,0x28,0xC3,0xDF,0x2A,0x37,0xEE,0xF0,0x9D,0x7E,0x1B,0x7F,0x51,0x5B,0x4C,0x75,
0xB2,0xC8,0x31,0xFC,0xAD,0xA2,0xE2,0x7A,0xE7,0xDA,0x0F,0x75,0x43,0xF4,0x7A,0x6A,0x6D,0x4B,0xA6,0x80,0xD3,0xD2,0xB5,0x29,0xBF,0xE1,0x99,0x06,0x33,0xF4,0x0C,0x5C,0xF1,0xEA,0x76,0xC4,
0x69,0x23,0xF0,0x8D,0x08,0xA7,0xE1,0x92,0x70,0x98,0x6F,0x29,0x2B,0xFB,0xB8,0x1A,0xB9,0xF6,0x36,0x8B,0xA5,0x69,0x3B,0x75,0xD6,0x17,0x2C,0x78,0xF9,0x78,0x4C,0x47,0x14,0xC9,0x98,0x2F,
0x6D,0xD7,0x62,0x37,0x89,0xF2,0x6A,0x0E,0xFE,0x66,0xA5,0xDC,0x98,0x8F,0xE6,0xBF,0xED,0x0A,0x7B,0x9D,0x8B,0x81,0x4C,0xCC,0xB0,0x02,0xEE,0x11,0x24,0xCD,0x7D,0x9D,0x24,0x34,0x60,0x4C,
0xCD,0x90,0x1C,0x5D,0x2F,0x2A,0x00,0x62,0xCE,0xCD,0x7A,0x61,0xBB,0x7E,0xAB,0xDD,0x22,0x6D,0xE5,0xDC,0x58,0x78,0xEF,0xFA,0xA9,0x15,0x5A,0xF3,0xD0,0xA3,0xAD,0x5D,0xC3,0x30,0xBA,0xD2,
0xEB,0x26,0x2C,0xE4,0x9B,0x4D,0x9D,0xAD,0x62,0x0E,0x87,0x2E,0x81,0x6C,0xFE,0x86,0xAA,0x89,0xB0,0xDD,0x68,0x09,0xB3,0xE9,0x61,0x5D,0x8A,0x49,0x68,0x3E,0x3C,0x88,0xA4,0x18,0x76,0x5E,
0x1A,0x73,0x39,0xCA,0x3A,0xD3,0xE8,0xEB,0x5A,0xDA,0x26,0x2F,0xB6,0x00,0x38,0x1B,0x8C,0xEC,0xB5,0x25,0x2E,0x05,0x20,0x3B,0xF1,0x86,0x9E,0xE7,0x71,0x94,0xAC,0xDD,0x08,0x2B,0x6E,0x3C,
0xC0,0x58,0x6A,0x70,0xB8,0x61,0xF4,0x73,0x42,0x92,0xA5,0x9B,0xB8,0x23,0x30,0x3D,0x4D,0x7F,0xA5,0x5C,0x9A,0xCE,0xCC,0xA2,0x9D,0x11,0x45,0x26,0x90,0xB5,0x14,0xF9,0xD8,0xF8,0x45,0x96,
0x6C,0xB5,0xD8,0xA1,0x73,0x42,0xBA,0x48,0x43,0xEF,0x77,0xB4,0x59,0xAE,0x59,0x91,0xDD,0x31,0x16,0x86,0x62,0x02,0x8E,0xEB,0x7A,0x79,0x3C,0x06,0x67,0x12,0xE1,0xEC,0xE8,0x1C,0x3D,0x2F,
0x6C,0x4F,0xD0,0x0B,0x2C,0x23,0x2C,0xCF,0x0F,0xCF,0x8B,0xCA,0xEE,0x84,0x6E,0x3B,0x42,0x5C,0x83,0xBD,0x98,0xDB,0x05,0x11,0xE5,0x62,0x65,0xEB,0x4C,0x4C,0x73,0x62,0x95,0x8E,0x7D,0x73,
0x96,0xCE,0x04,0xE0,0x5D,0x18,0xA5,0xC3,0x5B,0x5F,0xAA,0x0B,0x37,0xA6,0x1B,0x9A,0xCA,0xD8,0x4C,0xD6,0xA9,0x8F,0xBA,0xD0,0xFE,0x3A,0x5D,0x98,0x2C,0xD9,0x89,0xC8,0x9D,0x69,0x88,0xBA,
0xA0,0x7F,0xA5,0x2E,0xFC,0xBE,0xC9,0xDC,0x68,0x14,0x75,0xC1,0xF8,0x3A,0x5D,0x88,0x3F,0x4C,0xF4,0x22,0xEA,0x42,0xE7,0x2B,0x75,0x61,0xE3,0x87,0xE9,0x52,0x6A,0xBC,0x0B,0xEB,0x74,0x6C,
0x97,0xDE,0x05,0xF4,0x48,0x15,0x2C,0x35,0x01,0x7F,0x5D,0x58,0x2B,0x9E,0x3B,0x19,0xCA,0x14,0xD6,0x60,0xE5,0x42,0x64,0x0D,0xA6,0x9E,0x38,0x30,0xBD,0x99,0x5B,0xF5,0xA2,0x53,0x18,0x9B,
0xCA,0x4D,0x89,0xC9,0xC6,0xA6,0x3A,0xB1,0xE6,0x9D,0x58,0x9F,0x43,0x6A,0xA0,0x37,0x39,0xBA,0xBC,0x6D,0xFA,0x5C,0x3F,0x4D,0x6F,0x73,0x3C,0x7E,0xCD,0xCA,0xF6,0x04,0x7F,0x7C,0xC4,0xBE,
0xDA,0x97,0x31,0x7A,0x46,0x4E,0xE2,0x02,0xC7,0xDB,0xCD,0xF9,0x53,0x62,0x03,0x34,0x17,0x0F,0x6F,0x74,0xAA,0x86,0x04,0xED,0xD4,0x4B,0x6F,0xD0,0xD5,0xC3,0xC3,0x82,0x36,0xE0,0xBA,0x4D,
0x9E,0x36,0xF0,0x77,0x74,0x90,0x3A,0x73,0xA3,0x01,0xC7,0x1B,0x19,0xAD,0x34,0xC1,0x96,0xE0,0xE5,0xDF,0x92,0x25,0xFA,0xF0,0x89,0x90,0x2D,0x16,0x8D,0xB9,0xAF,0xE5,0x25,0x16,0xE7,0xF6,
0x81,0x6D,0x28,0xEF,0x0C,0xFA,0x53,0xBC,0x9E,0xAC,0x04,0xE1,0xA3,0xC9,0x4A,0x8C,0xC1,0xD8,0xC5,0xED,0x3A,0x39,0xBD,0xE1,0x80,0x99,0xB4,0xB1,0x72,0xC0,0x24,0xA4,0x67,0x53,0x8D,0x6F,
0x2C,0xFF,0x94,0xB7,0xEF,0x2A,0x39,0x46,0xBC,0x41,0x8E,0x27,0xAD,0x81,0xD7,0x6A,0xCF,0x59,0x5D,0xE5,0x85,0x6D,0x96,0x94,0x23,0x67,0x80,0x78,0x9F,0xC8,0x6E,0x48,0x95,0x0C,0x78,0x62,
0x86,0x8E,0x27,0x53,0x42,0x9E,0x03,0x1A,0xE7,0x7B,0x03,0xE2,0x11,0xE7,0x53,0x1F,0x29,0xB9,0xA2,0x02,0x39,0x07,0x1C,0xEE,0x0D,0x88,0x0C,0x72,0x69,0x99,0x95,0x63,0x14,0x80,0x17,0xA9,
0x03,0xD6,0x64,0xC0,0x9D,0xDA,0x06,0x6F,0x6F,0xC4,0x6D,0x23,0xCA,0xCF,0x1B,0xD3,0x0F,0xAD,0xE4,0xAD,0x3E,0x02,0xF0,0xA7,0x7D,0x01,0x4F,0x9F,0xF8,0x7E,0xA1,0x98,0x55,0xF8,0xFF,0x66,
0x71,0xFA,0x74,0xEE,0x58,0xC1,0xF2,0xED,0x34,0x49,0x44,0x02,0xF0,0xDD,0xBE,0x80,0xA8,0x29,0x71,0x7F,0xD2,0x96,0x5B,0xC3,0xCB,0x74,0xD5,0x86,0x5A,0x80,0x1C,0x4E,0x1C,0xFF,0xE7,0x19,
0xF2,0x85,0x53,0x7A,0xBD,0x37,0x60,0x72,0x42,0x4B,0xEF,0x6E,0xE0,0x80,0x27,0xFB,0x52,0x29,0xF2,0xFB,0xA3,0xA7,0x5C,0x05,0x8E,0xC9,0x6F,0xAB,0x2E,0x02,0xE5,0x80,0x7A,0xBA,0x3C,0x34,
0x19,0x70,0xEC,0xBD,0x80,0x64,0x7D,0xE7,0x62,0xE8,0x26,0x28,0x5B,0x4A,0x31,0xC2,0xD3,0x7D,0x01,0x45,0xC1,0xDA,0x0A,0x85,0xB5,0x05,0xBC,0xDC,0x77,0x0D,0x23,0x40,0x3C,0xE6,0x24,0xB1,
0x86,0x97,0xE9,0x1A,0x15,0x74,0xC0,0x48,0x43,0x05,0x91,0x8A,0x2A,0xCA,0x6B,0x66,0x80,0x93,0x7A,0x6C,0x31,0xC6,0xEB,0x07,0xC9,0xC1,0xF6,0x5E,0xB7,0x50,0x3D,0x65,0xCC,0x2A,0x55,0xCB,
0xE0,0x29,0xE7,0x8E,0x49,0x30,0xE8,0x58,0x54,0x4F,0x2E,0xDC,0xDE,0x54,0x4B,0x10,0xE5,0x29,0x87,0x23,0x22,0xD5,0xE4,0xE8,0xFC,0x4A,0xC4,0xED,0x9D,0x6F,0x84,0x31,0xEA,0x3D,0xA3,0xEE,
0x9C,0x26,0xEE,0x98,0x93,0xD6,0xC2,0x0C,0x0F,0xAB,0x6D,0xE7,0xF1,0x21,0x15,0x8F,0x5D,0x52,0x7F,0x6E,0x3A,0xF3,0x62,0xF1,0x26,0xF0,0xF4,0x57,0xC7,0xE3,0xF7,0xDB,0xC1,0x70,0x77,0x6F,
0x55,0x12,0x78,0xED,0x57,0xC7,0x8B,0xEE,0x93,0x49,0x21,0x0A,0xBC,0xCE,0xEB,0xE0,0x55,0x1B,0x35,0x02,0x6F,0xFE,0x6A,0x78,0x91,0x3E,0x8C,0xC6,0x07,0x43,0x7E,0xF4,0xB7,0xC2,0x41,0xE0,
0x3D,0xBE,0x06,0x5E,0x85,0x49,0xD3,0x88,0xF1,0xD0,0x9A,0x79,0x6D,0xBC,0x66,0x7E,0x79,0x28,0x86,0xB7,0xC8,0x24,0x15,0xEC,0x87,0x57,0x52,0x20,0x4A,0xE0,0xBD,0x0A,0x7D,0x56,0x5A,0x6A,
0xDB,0xF9,0x7C,0xF7,0x1A,0x78,0xE7,0x9E,0x6F,0x05,0xE1,0xAA,0xCC,0xA1,0x88,0xE8,0xA5,0xB7,0x2F,0xDE,0x71,0xA9,0xB5,0x76,0xCC,0x7A,0x70,0xDC,0x88,0xC7,0x77,0xFD,0x1A,0xE3,0x93,0x29,
0xB9,0x25,0xD6,0xEF,0x55,0xE4,0x59,0x69,0xD1,0x2D,0xF3,0x65,0xBB,0x7E,0x8B,0xD6,0xAB,0xC8,0x17,0x36,0x99,0xE8,0xC3,0x1C,0x71,0xC6,0xFB,0x26,0x1A,0x5F,0x56,0x7E,0x5A,0xAF,0x81,0x77,
0x63,0xFA,0x9E,0xE7,0xB2,0x0B,0x12,0xB3,0x36,0xF6,0x2E,0xBD,0x6C,0x5E,0x03,0x0F,0x81,0xF8,0x3D,0x5F,0xDB,0xD0,0xAB,0x18,0xEA,0xB9,0x6F,0xAE,0xAC,0xC4,0xF8,0xBA,0xAF,0x85,0xC7,0xCB,
0x89,0xB1,0xF2,0x0B,0x96,0xB3,0xCA,0x26,0x52,0x70,0xBC,0xD7,0x91,0x2F,0xC8,0x04,0x23,0xCB,0x9C,0x2F,0x8B,0xA7,0x33,0x1A,0x5F,0xF8,0x2A,0x78,0x12,0xC6,0xBD,0xC0,0x5B,0xBC,0x06,0x9E,
0x4C,0x59,0x38,0xC1,0x0F,0xE9,0xBB,0x5F,0xEA,0xE1,0x49,0x5C,0x48,0x27,0xC6,0x67,0xBC,0x06,0x9E,0xE0,0xB6,0x48,0xA6,0x89,0x1B,0x7A,0x73,0xF5,0xED,0xF2,0x15,0xF1,0x4A,0x4B,0xD1,0x89,
0xF9,0x7C,0xCD,0xF1,0x95,0x16,0xA3,0x13,0x78,0x54,0xFE,0xF3,0x3E,0x59,0xE4,0x88,0x61,0x34,0x9F,0xF2,0x89,0x08,0x11,0x9C,0xFD,0x88,0xF1,0xD1,0x4B,0x8F,0x5A,0xE2,0x9C,0xED,0xAD,0xA5,
0x4F,0x25,0x27,0xE1,0x12,0x3B,0x6C,0x0A,0x4F,0x7C,0x68,0x6A,0x69,0xC0,0x1D,0xDD,0x60,0xFB,0x58,0x5C,0x0B,0x26,0x52,0x5C,0x0C,0x99,0xB1,0x28,0x18,0x60,0xD6,0x7E,0xA9,0x02,0x7C,0xB2,
0xF1,0x12,0xBF,0x3A,0xC9,0x1D,0xB8,0x63,0xAF,0xCA,0xEE,0x6A,0x8B,0x9D,0x03,0x60,0x32,0xE8,0xFB,0xDC,0x64,0x07,0x52,0xA6,0x1E,0x21,0xAD,0x0D,0x4F,0x5F,0xEA,0xB2,0xC7,0xDA,0xD5,0xBE,
0xC2,0xCF,0x11,0x4D,0xD6,0x16,0xC5,0x07,0xDB,0x01,0x34,0x8C,0xBE,0x34,0xBD,0x88,0x23,0x8F,0x0C,0x2E,0x32,0x91,0xB0,0x5A,0x3C,0xA6,0x3F,0xB2,0xE3,0x8F,0xD5,0xA5,0xC6,0x8D,0xEC,0xD9,
0x9E,0xE2,0xF1,0x19,0xC6,0x16,0xEF,0x71,0x53,0x6B,0x27,0x06,0x4F,0xB3,0x4A,0x1F,0xBD,0xE6,0x69,0x57,0x93,0xD0,0x0C,0x37,0x35,0xCB,0x7F,0xF7,0x5B,0x7A,0x5F,0x1A,0x8E,0xA3,0x6D,0xEC,
0x70,0x6E,0x06,0xB5,0x48,0xD3,0x30,0xF2,0xF2,0x72,0x04,0x17,0xEC,0x06,0x44,0xD8,0x6B,0x84,0xC3,0x2A,0xBC,0xCA,0x70,0x13,0x3A,0xE4,0x83,0x67,0x58,0x39,0x49,0xFA,0x10,0x98,0x96,0x40,
0x63,0xF7,0x56,0x05,0xF8,0x92,0x00,0xD8,0x48,0x9F,0x32,0x2A,0x41,0x4B,0x0E,0xED,0x9D,0x19,0x9A,0xAE,0xC9,0xCE,0xEC,0xC1,0x87,0x6F,0xEE,0xE6,0xA1,0xC7,0xB7,0x7F,0x2E,0xC0,0x86,0x58,
0x14,0xA4,0x5E,0xB3,0x9B,0x21,0x74,0xB9,0xE4,0xBC,0x4E,0x01,0x98,0xA6,0xBC,0x99,0xFC,0x0E,0x18,0x56,0x29,0x52,0x0C,0x26,0x97,0xDF,0xB4,0x03,0xB6,0xF4,0xD6,0x16,0x35,0x75,0x1D,0x73,
0x64,0x88,0xF5,0x69,0x38,0xDA,0xD8,0x5C,0xDB,0xF4,0xF4,0xD4,0xBE,0xDE,0x6E,0xD3,0xCE,0x57,0x70,0xB4,0x89,0x39,0x8B,0x34,0x01,0x2B,0x02,0x38,0xF2,0x56,0xAB,0x4A,0x0D,0x88,0xD1,0x2B,
0xF9,0xFA,0x34,0x49,0xB4,0xB9,0xBD,0xB2,0x43,0xA2,0xC8,0x44,0xD1,0xD5,0x93,0x3E,0xC3,0x93,0x9C,0x4A,0x96,0xB0,0x42,0xA6,0x7F,0x30,0x1C,0xC8,0x8A,0xFC,0x05,0x53,0xD0,0xEB,0x25,0x8C,
0xF6,0xBA,0xFD,0x9C,0x63,0xFF,0x25,0xEC,0x36,0xB5,0xC0,0x01,0x9F,0x7B,0x75,0xCA,0xED,0x37,0x3A,0x46,0xC7,0x90,0xCE,0x14,0x53,0x05,0x9C,0xEB,0xDA,0x01,0x90,0xE5,0x9C,0x9C,0xBE,0x8D,
0x3C,0xA0,0x66,0xB7,0x8F,0xF3,0xE1,0xB8,0x0E,0x40,0xA5,0xAD,0x9C,0xD8,0xAE,0xC7,0xCE,0xF6,0x07,0x0A,0x53,0xE9,0x72,0xA8,0x58,0xE8,0x27,0xE7,0xCC,0x7C,0x9E,0x85,0xD2,0x6C,0x47,0x5A,
0x20,0x8D,0x37,0xF5,0x9E,0x65,0xD5,0x1D,0x8A,0x93,0x74,0xDA,0x7D,0x19,0xDE,0x71,0x27,0x81,0xE8,0x7D,0xAE,0x91,0x0C,0xD7,0xE8,0x68,0x60,0xD3,0xCA,0xCE,0x67,0x02,0xEE,0xB2,0x56,0x7E,
0x31,0x83,0xCB,0xA6,0x8B,0xC9,0xC0,0xB9,0x0B,0x7A,0xC5,0x32,0xB4,0xA0,0xA5,0x6B,0xFD,0xA8,0x09,0xB8,0x64,0x55,0xA8,0x4B,0xDB,0x91,0x24,0xD2,0x46,0xBB,0x9B,0xC9,0x53,0x2E,0x16,0x62,
0xAD,0x7C,0xB8,0x26,0xDE,0x8A,0x20,0x75,0xBE,0x08,0xE1,0xA4,0xCF,0x8D,0x17,0xC3,0x9D,0x6E,0x40,0xA3,0x4A,0x60,0x72,0x38,0x8D,0x0E,0x77,0x63,0x3E,0xBA,0xF6,0xC3,0x0B,0x26,0x1D,0x5D,
0xC8,0x9B,0x2A,0x2C,0x11,0x46,0xFA,0xD8,0xAC,0x96,0x84,0x73,0x6A,0x1C,0xB2,0xC1,0x3C,0x9F,0xDC,0xA3,0x8D,0xB9,0xCE,0x9D,0x38,0xAB,0xC4,0xF0,0xEE,0x6A,0xD9,0xEB,0x60,0x81,0xE5,0x1D,
0xA5,0xDC,0xDD,0xFB,0x8A,0x07,0x68,0x24,0xA6,0xF3,0xCE,0x76,0xE6,0xF4,0x54,0xA6,0x46,0xBB,0xAD,0xF5,0xB3,0x17,0x3F,0xE4,0x4F,0x67,0x82,0x13,0xF0,0x96,0x17,0x4C,0xDE,0xA5,0xC9,0x16,
0xC6,0xE7,0x56,0x0D,0x3E,0x1F,0x81,0x93,0x58,0x8B,0xCF,0xD3,0x67,0x5B,0x4A,0xF8,0x3C,0x41,0x2B,0x23,0xEF,0x19,0x4F,0x7D,0xF8,0xB6,0x43,0x3A,0xAE,0x84,0x73,0x29,0x6B,0x3E,0x24,0x06,
0x37,0x99,0xFB,0xD6,0xF3,0xC2,0x27,0xDE,0xD6,0xC3,0xE6,0x32,0x9B,0xF3,0x5A,0x30,0x97,0x46,0x02,0x6E,0xCD,0xBC,0xD6,0xB7,0x34,0xD8,0x86,0xD1,0x4A,0x17,0x50,0x89,0x18,0x21,0x2F,0xC5,
0x36,0x81,0x37,0xDA,0x04,0xCB,0x19,0xB9,0xF4,0x13,0xCA,0xE8,0x32,0xBC,0xE6,0x2E,0xEB,0x19,0x09,0xC0,0x73,0x3B,0x58,0xA2,0x54,0x19,0x7B,0x24,0x6B,0x4C,0xEB,0xA4,0x83,0x00,0x85,0xF3,
0x99,0x60,0xBB,0xCC,0x49,0x41,0xA9,0xAC,0xE5,0x86,0xA1,0xA9,0xAD,0xEC,0xE2,0xE5,0x1E,0x35,0x4D,0xD2,0xA6,0x4F,0xCF,0x69,0x17,0x80,0x7A,0x3F,0xE3,0x6D,0x55,0x79,0xC9,0x0C,0x2E,0xCE,
0xE1,0xBB,0x80,0x25,0xAC,0x3C,0x75,0x1F,0xC3,0xF5,0x3A,0x9A,0xEC,0x21,0x88,0x08,0xEE,0x3D,0xE6,0x77,0x3C,0x9B,0x78,0xDE,0x6A,0x32,0xF7,0x3C,0xF9,0x53,0x5E,0x3C,0x06,0xD0,0x2F,0x29,
0x78,0x9A,0x9C,0x4E,0x0D,0xE5,0xB4,0x06,0x9E,0x10,0x2B,0x25,0x75,0x6F,0x99,0x6B,0x16,0x44,0x34,0x17,0x18,0xFA,0x76,0x28,0xB5,0x9D,0x7A,0xBD,0x9E,0x2A,0x59,0x60,0xAE,0x38,0x7F,0x50,
0x74,0x60,0xE8,0x83,0xA5,0x6D,0xB9,0x61,0x54,0x63,0xCA,0xF2,0xF9,0xBD,0xDD,0x62,0x17,0x9C,0x97,0x13,0x4D,0x75,0xAD,0xD1,0xEF,0xE5,0x9D,0xDD,0x2B,0xEB,0x40,0x04,0x77,0xC9,0x6F,0x5F,
0x7F,0x7C,0xA4,0x4C,0x32,0x8E,0x57,0x52,0xF3,0x72,0x7A,0xBD,0x5F,0x12,0x4A,0x91,0xA6,0xC0,0x34,0x23,0x1D,0xD4,0x29,0x26,0xA0,0x5E,0x8C,0xA6,0xD8,0x78,0xD8,0x14,0xAF,0x41,0xC2,0x13,
0xFD,0x81,0x1D,0x62,0x60,0xBA,0xDA,0x6A,0x62,0x68,0xC5,0xE7,0xB0,0x0B,0xD1,0x86,0x9E,0xED,0x50,0x2E,0xFD,0x13,0x68,0x78,0xD9,0x52,0x5E,0xED,0x86,0x5C,0x51,0x2A,0xE0,0xD8,0x49,0x2B,
0x7A,0x44,0x47,0xE1,0x87,0x76,0xD2,0x07,0x5B,0x8B,0x15,0x05,0x5F,0xB9,0xBF,0xC3,0xE0,0xAE,0x11,0x92,0x54,0x22,0x54,0xC0,0xB5,0xE4,0x5D,0xF6,0xA8,0xD2,0xC8,0xB6,0xD2,0xF8,0xA1,0x02,
0xF5,0xEB,0x56,0xA0,0x6E,0x26,0x4A,0x4C,0x57,0x54,0xA0,0x8E,0x42,0xEA,0x86,0x72,0xA8,0x3F,0x5D,0x0E,0x77,0xA8,0x3F,0x7D,0xA8,0x3F,0x7D,0xA8,0x3F,0x7D,0xA8,0x3F,0x9D,0xC7,0x09,0x87,
0xFA,0xD3,0x04,0xC8,0x43,0xFD,0xE9,0x43,0xFD,0x69,0x89,0xD1,0x1D,0xEA,0x4F,0xC7,0x90,0x25,0xF4,0x73,0xA8,0x3F,0x7D,0xA8,0x3F,0x9D,0x81,0x7B,0xFD,0xFA,0xD3,0x87,0x6A,0xD3,0x52,0x90,
0x87,0x6A,0xD3,0x52,0xAB,0x79,0xA8,0x36,0x5D,0x08,0x79,0xA8,0x36,0xFD,0xBF,0xAC,0xDA,0x74,0x73,0x5B,0x6E,0x7A,0xAB,0xE6,0xA2,0x62,0xD3,0xCD,0x44,0xB5,0xE9,0x66,0x75,0xB9,0xE9,0xE6,
0xA1,0xDE,0xF4,0xA1,0xDE,0x34,0x11,0xED,0x50,0x6F,0xBA,0xB0,0x07,0xD9,0xF1,0x1E,0xEA,0x4D,0xA7,0x87,0xF7,0xC7,0xAF,0x37,0x2D,0x51,0x6E,0x7A,0x5B,0x92,0x1A,0x3D,0x89,0x43,0xC1,0xE9,
0xAA,0xB1,0xFD,0x11,0x0A,0x4E,0x37,0x79,0x71,0xE9,0xBC,0x82,0xD3,0xB1,0x15,0x74,0x28,0x39,0x2D,0x87,0x4E,0x28,0x39,0xDD,0xFC,0x43,0xD4,0x9C,0x6E,0x7E,0xC9,0xA2,0xD3,0x85,0xA8,0x87,
0xBA,0xD3,0x15,0x93,0x79,0xA8,0x3B,0x1D,0xED,0xDB,0xC4,0x68,0x87,0xBA,0xD3,0x34,0xB4,0x43,0xDD,0xE9,0xD4,0x5C,0x1E,0xEA,0x4E,0xE7,0x80,0x95,0xD5,0x9D,0x6E,0xF2,0xC2,0xD3,0xD9,0xBA,
0xD3,0xCD,0x9D,0xC2,0xD3,0x4D,0x51,0x79,0xBA,0x79,0x28,0x3D,0x2D,0x05,0x77,0x28,0x3D,0x9D,0x86,0x3B,0x94,0x9E,0xCE,0x82,0x1D,0x4A,0x4F,0x27,0x8C,0x80,0x43,0xE9,0xE9,0x32,0xB8,0x43,
0xE9,0xE9,0x5D,0xB8,0x2F,0x50,0x7A,0x9A,0x5B,0x4B,0xDB,0x00,0x6D,0xF3,0x3F,0x50,0x7B,0xFA,0x0B,0xF5,0x81,0x54,0x7C,0xFA,0x0B,0xF5,0x81,0x54,0x7D,0xFA,0x4B,0xF5,0x81,0x52,0x7E,0xFA,
0x0B,0xF5,0x81,0x54,0x7F,0xFA,0x4B,0xF5,0x81,0x52,0x80,0x9A,0xDC,0x87,0x43,0x05,0xEA,0x92,0xD1,0xFD,0x31,0x2A,0x50,0xE7,0x94,0x3E,0xF8,0xA2,0x15,0xA8,0x89,0x78,0x7B,0x57,0xA0,0x2E,
0xC4,0xFB,0x8A,0x15,0xA8,0x33,0x7D,0xF8,0xC2,0x05,0xA8,0x0B,0xF1,0x92,0x88,0xAF,0x5A,0x7F,0x5A,0x62,0x84,0x35,0xCB,0x4F,0xAF,0x9F,0xF3,0x8A,0x63,0x51,0xF0,0x5E,0xA3,0xFA,0x34,0x09,
0x8F,0x54,0x7C,0x3A,0xBF,0x58,0x23,0x09,0xEF,0x15,0x6A,0x4F,0x53,0xF0,0x5E,0xA3,0xF4,0x34,0x05,0xEF,0x35,0x2A,0x4F,0x53,0xF0,0x68,0x85,0xA7,0xD7,0xCB,0xBC,0x0A,0xBB,0x54,0xBC,0x7D,
0xEB,0x4E,0x93,0xF0,0x48,0x65,0xA7,0xD7,0xC6,0x6C,0x4F,0xFA,0x7C,0x8D,0xAA,0xD3,0x14,0x3C,0x5A,0xD1,0xE9,0xFC,0xE2,0x74,0x14,0xBC,0xD7,0xA8,0x39,0x5D,0x07,0x6F,0x9F,0x92,0xD3,0x24,
0x3C,0x52,0xC5,0xE9,0x75,0x50,0x8B,0x1F,0x5E,0xB9,0xE0,0x74,0x9E,0xBB,0xF8,0x25,0x0B,0x4E,0xA7,0xF1,0xBE,0x78,0xBD,0xE9,0x6A,0xC0,0x57,0x2E,0x37,0x5D,0x39,0xA3,0xAF,0x5C,0x6E,0x9A,
0x8E,0xB7,0x5F,0xB9,0xE9,0xFD,0xF0,0xE8,0xE5,0xA6,0xF7,0xC3,0xA3,0x97,0x9B,0xAE,0x81,0xB7,0x57,0xB9,0xE9,0x7A,0x78,0xF5,0xCB,0x4D,0x93,0xF1,0xF6,0x2C,0x37,0xBD,0x1F,0x1E,0xBD,0xDC,
0x74,0x7D,0xBC,0x7A,0xE5,0xA6,0xC9,0x78,0x7B,0x96,0x9B,0x26,0xE3,0xED,0x59,0x6E,0x9A,0x84,0xF7,0x0A,0xE5,0xA6,0xC9,0xE3,0xDB,0xB3,0xDC,0xF4,0xAB,0xE1,0x49,0x96,0x9B,0x26,0xE3,0xED,
0x59,0x6E,0x9A,0x8C,0xB7,0x67,0xB9,0x69,0x32,0xDE,0x9E,0xE5,0xA6,0x6B,0xE1,0xED,0x51,0x6E,0xBA,0x0E,0xDE,0x3E,0xE5,0xA6,0xE9,0x78,0xFB,0x95,0x9B,0x26,0xE3,0xED,0x59,0x6E,0x9A,0x8E,
0xB7,0x5F,0xB9,0x69,0x32,0xDE,0x9E,0xE5,0xA6,0xEB,0xE2,0xD5,0x2D,0x37,0xFD,0x1A,0x78,0x94,0x72,0xD3,0x65,0x78,0x87,0x72,0xD3,0x87,0x72,0xD3,0x95,0x68,0x87,0x72,0xD3,0xD5,0xC3,0x3B,
0x94,0x9B,0x8E,0xF6,0x24,0xC4,0xDA,0x1D,0xCA,0x4D,0xE7,0x81,0x1D,0xCA,0x4D,0x27,0xC4,0xD7,0xA1,0xDC,0x74,0x2E,0xDA,0xA1,0xDC,0xF4,0x0E,0xBB,0x1D,0xCA,0x4D,0x17,0xA0,0x1D,0xCA,0x4D,
0xEF,0xCC,0xE7,0xA1,0xDC,0x74,0x39,0xDC,0xA1,0xDC,0x74,0x1E,0xDC,0xA1,0xDC,0x74,0x1E,0xDE,0xA1,0xDC,0x74,0x1E,0x9F,0x1F,0xCA,0x4D,0x67,0xD1,0x0E,0xE5,0xA6,0x13,0xAC,0x77,0x28,0x37,
0x5D,0x01,0x78,0x28,0x37,0x2D,0xA6,0xB3,0x79,0xA8,0x37,0x7D,0xA8,0x37,0x9D,0x8B,0x76,0xA8,0x37,0xDD,0xFA,0xCF,0xD6,0x9B,0xBE,0xBE,0x3E,0xBB,0xC0,0x6A,0xD3,0x23,0xC7,0xC4,0x65,0xA4,
0x15,0x2B,0x88,0xC0,0x7B,0x6A,0xCA,0x9C,0x41,0xF0,0x32,0x31,0x3E,0x08,0x42,0xDF,0x93,0x2A,0x1F,0x9B,0x8F,0x36,0xEA,0x9C,0xA7,0x92,0x95,0xCA,0xD0,0x4E,0x36,0x61,0xE8,0xB9,0x8C,0x3A,
0xD1,0xCD,0xA5,0xE0,0x72,0xB4,0x81,0x4E,0x40,0xC3,0x34,0x01,0x9E,0x13,0xE1,0xD9,0xEE,0xDC,0xF1,0x40,0x96,0xC8,0x02,0x72,0xB4,0x9F,0xD3,0x89,0x74,0x52,0x68,0x6C,0xCB,0x92,0x6D,0x76,
0xCB,0xC2,0x0A,0xB4,0x34,0x03,0x96,0xA1,0x89,0x14,0x4B,0x56,0x8C,0xCF,0x26,0x4D,0x64,0xB4,0x6E,0xF7,0x84,0x99,0xBC,0xF0,0x81,0xF5,0x94,0xC9,0x93,0xED,0xD3,0xA0,0x22,0xB4,0xB5,0xFE,
0x2F,0x12,0x1A,0xEE,0x95,0xBC,0x03,0x17,0x93,0x1F,0xB0,0xF0,0x2C,0xB9,0x02,0xC7,0x31,0x9A,0x99,0x4E,0xD8,0x2B,0x43,0xBB,0xF4,0x1C,0x76,0xBA,0x19,0xA1,0x4E,0x2C,0x87,0x32,0x40,0x41,
0x93,0x7D,0x02,0xDA,0xB5,0x39,0xF3,0x40,0xB7,0x79,0xFE,0x8B,0x32,0x59,0x79,0xE5,0x7B,0x95,0xB9,0x68,0xA7,0x67,0x14,0x34,0xCB,0x0C,0x97,0x68,0x52,0x84,0xBE,0xB9,0x0E,0x94,0x37,0x7C,
0xEB,0x75,0xB3,0x08,0xBE,0xAB,0xC4,0xE5,0x33,0x69,0x3C,0x10,0xD0,0xEE,0xB0,0xEE,0xAE,0xA5,0x0C,0xCD,0x59,0xFA,0x3C,0x8C,0xE4,0xD8,0x3A,0x1B,0x02,0xDA,0x68,0xE3,0xAF,0x01,0x87,0x05,
0xDF,0xE7,0x9E,0x49,0x5E,0xB7,0xF5,0x32,0x9D,0x96,0x5B,0x86,0x36,0xF6,0x66,0x1E,0x99,0xF6,0x05,0x5A,0xBF,0xAB,0x8E,0x3A,0x3B,0x82,0xAB,0x0A,0x6D,0x62,0x3A,0x2B,0x34,0x8B,0xEA,0xCF,
0xE4,0x07,0xC2,0x4C,0xF2,0xF4,0xD4,0x19,0x8D,0xF6,0x13,0x63,0x9B,0xB4,0x09,0x63,0xCB,0x3F,0x34,0x72,0x2F,0x36,0x44,0x41,0xED,0x3D,0x82,0xF7,0x22,0xCD,0xEF,0xD1,0x78,0x27,0x14,0x49,
0x9D,0x77,0x4D,0xC2,0xAD,0xE7,0x36,0x83,0x10,0x03,0x6A,0xFE,0x42,0x71,0xAC,0xC7,0xE0,0x2B,0x5D,0xB1,0x00,0x03,0x06,0xB9,0x6A,0x39,0x56,0x48,0x2E,0x23,0x03,0x3E,0x70,0x47,0x52,0xDB,
0x37,0xD5,0x24,0xDE,0xBD,0xE7,0x81,0xEE,0xA0,0x5B,0x52,0x5A,0x5B,0xD7,0x68,0xD6,0xC5,0x8D,0x35,0x5F,0x9A,0x2E,0x2B,0xE6,0x4C,0x35,0x68,0x1A,0x6D,0xBD,0xDF,0x33,0x32,0xB1,0x99,0xA2,
0xD1,0x19,0x51,0xD1,0xC9,0x57,0xB9,0x34,0xE3,0x95,0x16,0xF7,0xD2,0x5E,0xF3,0x5C,0x22,0x18,0x7C,0x20,0xCE,0xF2,0x36,0x7F,0x54,0xF0,0xED,0xEF,0xAB,0x7C,0xE4,0x5A,0xA4,0x14,0x28,0x77,
0x60,0x77,0x48,0x42,0xEC,0x87,0xB6,0xBB,0xB4,0x01,0x05,0xB4,0x06,0x1A,0x33,0x3D,0x40,0x81,0x4D,0x1C,0x6F,0x6D,0x61,0xD5,0x3D,0xD0,0x9C,0x9D,0x36,0x38,0x5A,0x9F,0xF9,0x9F,0xEF,0x8A,
0xF1,0x6B,0xA0,0xFD,0x91,0x68,0xE8,0xF5,0x2F,0x9F,0x29,0x15,0xCE,0xFC,0xEA,0x9B,0xD7,0x71,0x45,0xBA,0x5F,0xD5,0x15,0xE9,0x7E,0x55,0x57,0xA4,0xFB,0x55,0x5D,0x91,0xEE,0x57,0x75,0x45,
0xBA,0x5F,0xD5,0x15,0xE9,0x7E,0x55,0x57,0xA4,0xFB,0x55,0x5D,0x91,0xEE,0x57,0x75,0x45,0xBA,0x5F,0xD5,0x15,0xE9,0x7E,0x55,0x57,0xA4,0xFB,0x55,0x5D,0x91,0xEE,0x57,0x75,0x45,0xBA,0x5F,
0xD3,0x15,0xD1,0xBE,0xAE,0x2B,0xD2,0x25,0xB9,0x22,0x5F,0xC2,0x39,0xE8,0xFE,0xCF,0x76,0x0E,0x5E,0xD9,0x58,0xCF,0xDD,0x15,0xD8,0x01,0xFC,0xF2,0xDE,0x48,0xEC,0x8C,0x7C,0x1D,0xF7,0xE0,
0xE0,0x1D,0x1C,0xBC,0x83,0x83,0x77,0xF0,0x0A,0xF3,0x9C,0xD8,0xA8,0xF8,0x42,0xF7,0x62,0xFE,0x4F,0x99,0xF6,0x73,0xC7,0x5E,0xAF,0x6B,0x54,0x17,0x54,0x98,0x60,0xEE,0xF7,0x73,0xE4,0x64,
0xEB,0xB8,0xDF,0xE7,0xD5,0xC9,0x5B,0xBD,0xAE,0x40,0x6D,0x46,0xBF,0xF0,0x0F,0x59,0xA0,0x03,0xAF,0x38,0x60,0x5A,0xF1,0xC9,0x7C,0xB2,0x66,0x1E,0x6A,0xA4,0xC4,0xE1,0xD6,0xFB,0xA5,0x65,
0x39,0x41,0xC5,0x9E,0x5F,0xC3,0xD0,0xDA,0xAA,0x8A,0x1B,0x7E,0xDB,0x6E,0x14,0x0E,0x18,0xF0,0x18,0x9C,0xEB,0x3D,0x07,0x4B,0xAF,0x56,0x1A,0xB7,0xDE,0xD2,0x08,0x91,0x9C,0xED,0x00,0xED,
0x9A,0xC4,0xC5,0x2A,0xBC,0xB5,0xE4,0x23,0x63,0xD1,0x10,0x9F,0x6C,0xA5,0x53,0xF3,0x26,0x47,0x2C,0x75,0xD8,0x27,0x0F,0x31,0x8F,0x2C,0x77,0x6C,0x0D,0x73,0x3E,0xB7,0x82,0xC0,0xF3,0x6D,
0x4B,0xCA,0xE4,0xD8,0x87,0xA4,0xD9,0xC5,0x22,0x8A,0xF6,0xD9,0xD8,0xBD,0x13,0xD4,0xFA,0x04,0xD6,0xC0,0x82,0x1D,0x81,0x28,0xDC,0x7B,0x6D,0xF4,0x7A,0xAD,0x56,0x4B,0x6A,0xF4,0x51,0x21,
0xEB,0x44,0xA0,0x61,0xF0,0xCF,0x6D,0x4B,0x07,0xA1,0xF2,0x65,0x84,0x4A,0x33,0x29,0x55,0x52,0x42,0xE5,0x7F,0xBB,0x4C,0x79,0x4D,0x91,0x92,0xC9,0xC8,0x28,0x06,0xFC,0x7A,0x12,0xE5,0x20,
0x50,0xB6,0x02,0x65,0x32,0x1C,0xDC,0x7E,0xBC,0x1B,0x9F,0x9E,0x8D,0xC1,0x40,0x51,0x95,0xBF,0x29,0x93,0xCB,0xBB,0x7B,0xE5,0x87,0xEB,0xD3,0xF1,0xE0,0xFE,0xF4,0x6A,0xFC,0xE3,0xC8,0x04,
0x43,0xF1,0xCF,0x7F,0xD2,0xE0,0x93,0xCB,0xAB,0xD3,0xB3,0xE4,0x27,0xE8,0x7B,0xEA,0xD9,0x27,0xDE,0xBB,0xDE,0xC3,0x83,0x3D,0xB7,0x4D,0xE7,0xB7,0xEB,0xC9,0x8B,0x1B,0x2E,0xF1,0x7B,0x46,
0xE9,0xF7,0x04,0xC8,0x5F,0x95,0x76,0x16,0x26,0xF9,0x35,0xFC,0x4A,0xA7,0xB4,0xA5,0x4B,0xCB,0x01,0x89,0x80,0xDF,0xEB,0x96,0x7E,0x6F,0xB8,0x09,0x42,0x6F,0x15,0xD9,0x67,0x93,0x5F,0x6F,
0xA7,0x97,0x30,0xFE,0xFF,0x1E,0x0D,0xA6,0x97,0xF0,0x5C,0xE3,0xD4,0x7A,0xC0,0x6C,0x16,0x73,0x16,0x78,0xCE,0x06,0x16,0x65,0x6D,0xC2,0x82,0x84,0x9E,0xC2,0x07,0xD4,0xC0,0xF6,0x07,0x9F,
0x2D,0xE7,0x48,0x99,0x33,0x2F,0x7F,0x89,0x59,0x7D,0xE8,0x98,0x04,0xBC,0xD2,0x7F,0xF8,0xB2,0xB6,0x02,0xF1,0x65,0xE5,0x09,0x99,0x16,0x9A,0xF2,0x36,0xE1,0xF7,0x7F,0xFE,0x53,0x0B,0x64,
0x8B,0xF2,0xE1,0x6C,0x3C,0xB9,0xBA,0xBB,0x55,0xF4,0x63,0xB5,0x98,0xA0,0xFF,0x96,0xFC,0x1A,0x3C,0xA8,0xC2,0x83,0x27,0xE3,0xAB,0xE1,0xBB,0x8F,0x83,0xF1,0xB0,0x8C,0x13,0x60,0xDC,0x38,
0x1E,0xE5,0xE4,0xEC,0xE2,0xEA,0x36,0xF1,0x88,0xDA,0x81,0x56,0x34,0x68,0xE5,0xEC,0xFA,0x6C,0x38,0x85,0xB7,0x3F,0xDE,0xFE,0x32,0xFD,0x38,0x1C,0x9C,0x5C,0x9F,0x55,0xB6,0x92,0xF3,0x08,
0x6B,0x4E,0x4F,0x36,0x37,0xBA,0xBB,0x3F,0x1B,0x7F,0x3C,0x7F,0x7F,0x3B,0x9C,0x42,0xB7,0x27,0x3B,0x4D,0x17,0x34,0x97,0xFF,0x08,0x6B,0xDA,0xA8,0x6C,0xFA,0xE3,0xE5,0xE0,0xFA,0x9C,0xD6,
0x34,0x7F,0x84,0xB5,0xDF,0x4E,0xB6,0x3F,0x1E,0xFE,0x42,0x9D,0x89,0xED,0x23,0xAC,0xB9,0x0E,0x34,0x77,0x7E,0x75,0x02,0x90,0x77,0xA3,0xE9,0xD5,0x70,0x22,0xD9,0x5C,0xCE,0x23,0xAC,0xB9,
0x6E,0x6E,0x73,0x1F,0xEF,0x91,0x39,0x48,0xCD,0xF1,0x47,0x58,0x9B,0x20,0xF3,0x94,0xCB,0xBB,0xC9,0xD9,0xC7,0xF3,0xEB,0xB3,0x5F,0xAE,0xF0,0xB3,0x1E,0xDE,0xE5,0x5C,0xD5,0xC5,0x9C,0x47,
0x58,0x73,0xFD,0x4C,0x73,0xAA,0x96,0xD7,0x5A,0x69,0x73,0xF8,0x08,0xB6,0x86,0xC5,0x84,0xD2,0x1F,0xF5,0xE9,0xAD,0xF5,0x45,0x6B,0xC8,0x2C,0x37,0x57,0xB7,0x57,0xE7,0x57,0x17,0x1F,0x87,
0x97,0x83,0xAB,0xDB,0x8F,0x6A,0x47,0xA2,0xB5,0xEC,0x23,0xAC,0x35,0x64,0x9A,0x09,0x2C,0xFA,0xED,0xC5,0x47,0xC4,0xCB,0x6B,0x27,0xAF,0xB5,0xE4,0x23,0xAC,0x1D,0x7D,0xDB,0x8E,0xAA,0xE6,
0x76,0xA7,0xAC,0x1D,0x7C,0x84,0x35,0x63,0x6C,0x9B,0xD1,0xE8,0xCD,0x68,0x51,0x33,0xED,0x6D,0x33,0x3A,0xBD,0x19,0x3D,0x6A,0xA6,0xB3,0x6D,0xC6,0xA0,0x37,0x63,0x44,0xCD,0x74,0xB7,0xCD,
0xDC,0x5F,0x4D,0x2F,0x3F,0x5E,0x8C,0xAF,0x46,0x93,0xBC,0xF1,0xE5,0x36,0x93,0x7A,0x84,0xB5,0x88,0xE4,0x3E,0x3D,0x1B,0x5E,0xDE,0x02,0xB3,0x0E,0x7E,0xB9,0xDE,0x92,0x49,0x79,0x8B,0xF9,
0x8F,0xB0,0x16,0xFB,0x89,0x16,0xF1,0x93,0xE6,0xE4,0xD7,0xC9,0xF4,0xEC,0x26,0xCB,0xEA,0xF9,0x2D,0x66,0x1F,0xC1,0x56,0x31,0xC1,0x38,0xF7,0x2B,0x19,0x52,0xAB,0x6E,0x35,0x26,0x35,0x4D,
0x4D,0x34,0x3A,0xBA,0x3D,0x7B,0x7F,0x33,0x00,0x91,0xC0,0x3E,0xFF,0x78,0x72,0xF6,0x01,0x84,0xD8,0x69,0x69,0xA3,0x05,0x8F,0xB0,0xA6,0xB5,0x44,0xD3,0xE3,0xAB,0x93,0x93,0xB3,0xD3,0x02,
0xAE,0xC8,0x6F,0x3A,0xF9,0x08,0xB6,0xF7,0x57,0x56,0x1A,0xF8,0x48,0x61,0xE9,0x34,0xA8,0x44,0x43,0xBC,0x4D,0xAC,0x4C,0x87,0x6A,0xC8,0x47,0xE3,0xF7,0x27,0x28,0xEA,0x4E,0x06,0xB7,0xA7,
0x59,0xE4,0xFC,0x1E,0x24,0x1F,0x61,0x23,0x31,0x12,0xED,0x9C,0x5D,0x4F,0xA9,0xED,0xE0,0x23,0x7C,0x04,0x82,0x0A,0x29,0x9D,0x49,0x3E,0xC2,0x3A,0xD3,0x4E,0x4C,0x2B,0x97,0x3F,0xD7,0x57,
0xB7,0xEF,0x2A,0xDB,0xC9,0x79,0x84,0x35,0xD7,0xC9,0x6D,0x8E,0x33,0xCA,0xF4,0xFE,0xEE,0xE3,0x64,0xFA,0xFE,0x74,0x22,0xD3,0x5C,0xFA,0x11,0xD6,0x7A,0x37,0xD3,0xFA,0x74,0x7C,0x36,0xC8,
0x19,0x7C,0x59,0xEB,0xFC,0x11,0xD6,0x5E,0x2F,0xBF,0xBD,0x8F,0x7A,0x8F,0xDA,0x1E,0x3E,0xC2,0x9A,0x4C,0x32,0x6B,0x41,0xE7,0xCA,0x9A,0xDC,0x76,0x4E,0x6F,0xA5,0x5B,0xFA,0x38,0x04,0x8B,
0xF2,0xFA,0x6C,0x4C,0x68,0x29,0x7E,0x84,0x13,0x0C,0xDE,0xF4,0xEA,0x58,0xCC,0xB2,0xC4,0x40,0x6C,0x2E,0x99,0x1B,0x88,0x3B,0xBA,0xBE,0xFA,0x98,0x35,0xBE,0x3E,0x6A,0xAD,0xE1,0x4D,0x11,
0x6E,0xD9,0x23,0x88,0x6E,0xA8,0xC5,0xED,0xEA,0x6D,0x72,0xBB,0xEC,0x11,0xD6,0xAE,0x56,0xDC,0x6E,0x9B,0xDE,0xDF,0x76,0xDC,0x5F,0x3D,0xDD,0x2E,0x9A,0x5E,0xE3,0xBB,0xE9,0xC7,0xC9,0xD9,
0xED,0xE4,0x6E,0x2C,0xD5,0x6E,0xEA,0x11,0xD6,0xAE,0x91,0xD7,0xEE,0xF5,0xD5,0xC5,0x65,0xBA,0xE5,0x8A,0x76,0x77,0x1E,0x61,0x2D,0xB7,0xF3,0x5A,0xE6,0xC3,0x52,0x75,0xC9,0x99,0x48,0x3D,
0xC2,0xDA,0xED,0x94,0xB4,0xDB,0xA5,0xB7,0xDB,0x8D,0xDA,0xED,0x16,0xB7,0xAB,0xD1,0xFB,0xAB,0xC5,0xFD,0xED,0x15,0xB7,0x6B,0xC8,0x52,0x44,0xEA,0x11,0xD6,0x6E,0xBF,0xB8,0xDD,0x0E,0xBD,
0xDD,0x4E,0xD4,0x6E,0x3B,0xC3,0x71,0x89,0xC9,0xDA,0xE9,0xB0,0xDC,0xFC,0xC6,0x1D,0x6E,0x67,0x58,0x6E,0xFB,0x2D,0x5D,0xEB,0x51,0x1B,0xE6,0x8F,0xB0,0x86,0x23,0x9E,0xCB,0x1A,0xE9,0x42,
0x6E,0x0F,0x4E,0x26,0x05,0x0D,0x97,0x3E,0xC2,0x1A,0xD7,0xCB,0x1B,0xBF,0x7B,0x3F,0x15,0xED,0x4B,0x37,0x1E,0x3F,0xC2,0xDA,0x37,0x72,0xDB,0xCF,0xF1,0x22,0xAA,0xDA,0x8F,0xBC,0x88,0x76,
0x3B,0xBF,0xC5,0xAC,0x27,0x51,0xD9,0xA2,0xF0,0x24,0xDA,0x11,0xCB,0x55,0x7A,0x13,0xD9,0x16,0xF3,0xBD,0x89,0x76,0xC4,0x6C,0x95,0x9E,0x40,0xB6,0xC5,0x94,0x27,0xD0,0xEE,0xED,0x36,0x55,
0xEC,0x0D,0x14,0x36,0x15,0x59,0xCB,0xED,0xFE,0x6E,0x53,0xC5,0x36,0x78,0x61,0x53,0x39,0x36,0x78,0xA7,0xB5,0xDB,0x6A,0xB1,0x83,0x50,0xD8,0x6A,0xE4,0x20,0x74,0x22,0x16,0xCA,0xB5,0xCF,
0x3F,0x76,0xCB,0x9A,0x2A,0x7A,0x84,0xB5,0xAB,0x95,0xB6,0xAB,0xAA,0xE4,0x76,0xE1,0x11,0xD6,0xB0,0x5E,0xDE,0xB0,0x46,0x6F,0x58,0xE3,0x0D,0x1B,0xE5,0x0D,0x1B,0xF4,0x86,0x0D,0xDE,0x70,
0xBB,0xBC,0xE1,0x0E,0xBD,0xE1,0x0E,0x6F,0xB8,0x53,0xDE,0x70,0x9F,0xDE,0x70,0x9F,0x37,0xDC,0x4D,0x35,0x5C,0x68,0xE8,0x15,0x37,0xBC,0x35,0xF4,0x3A,0xBD,0xBC,0xD6,0xF2,0x8C,0xBD,0xE2,
0xD6,0x92,0x66,0xDE,0x14,0x53,0xAA,0x5C,0x2C,0x83,0x6A,0x86,0xD6,0x0A,0x5E,0x7D,0xAF,0x5C,0xDD,0x4E,0x32,0x11,0x9C,0x44,0x7B,0xFC,0xE3,0xDC,0x27,0x41,0x72,0xE6,0x3D,0x1A,0x3D,0x29,
0x3E,0xCE,0x7D,0x74,0x38,0xBE,0x9B,0x4C,0x8A,0xA7,0x84,0x7D,0xFC,0xE7,0x3F,0x7D,0xB0,0x03,0x7B,0x66,0x3B,0x76,0xF8,0x92,0x7C,0x96,0x85,0x50,0x0B,0x1E,0xC4,0xCF,0x8A,0x9E,0xBB,0x2C,
0xE9,0xEB,0x25,0xEB,0x28,0x9A,0xC1,0x58,0x12,0xC0,0x7B,0x50,0x1E,0x6C,0xC7,0xFA,0xF3,0x9F,0xFE,0x3F,0xE2,0x51,0x7F,0xAF
};
static int lcGetMinifigSettings(lcMemFile& File)
{
#ifdef LC_HAVE_ZLIB
2012-06-22 00:03:30 +02:00
const size_t CHUNK = 16384;
int ret;
unsigned have;
z_stream strm;
unsigned char in[CHUNK];
unsigned char out[CHUNK];
int pos;
strm.zalloc = Z_NULL;
strm.zfree = Z_NULL;
strm.opaque = Z_NULL;
strm.avail_in = 0;
strm.next_in = Z_NULL;
pos = 0;
ret = inflateInit(&strm);
if (ret != Z_OK)
return ret;
do
{
2012-07-06 03:18:55 +02:00
strm.avail_in = lcMin(sizeof(sDefaultSettings) - pos, CHUNK);
strm.next_in = in;
if (strm.avail_in == 0)
break;
memcpy(in, sDefaultSettings + pos, strm.avail_in);
pos += strm.avail_in;
do
{
strm.avail_out = CHUNK;
strm.next_out = out;
ret = inflate(&strm, Z_NO_FLUSH);
switch (ret)
{
case Z_NEED_DICT:
ret = Z_DATA_ERROR;
case Z_DATA_ERROR:
case Z_MEM_ERROR:
(void)inflateEnd(&strm);
return ret;
}
have = CHUNK - strm.avail_out;
File.WriteBuffer(out, have);
} while (strm.avail_out == 0);
} while (ret != Z_STREAM_END);
(void)inflateEnd(&strm);
return ret == Z_STREAM_END ? Z_OK : Z_DATA_ERROR;
#endif // LC_HAVE_ZLIB
}
2011-09-07 23:06:51 +02:00
// =============================================================================
// MinifigWizard class
MinifigWizard::MinifigWizard (GLWindow *share)
: GLWindow (share)
{
char Filename[LC_MAXPATH];
strcpy(Filename, lcGetPiecesLibrary()->GetLibraryPath());
strcat(Filename, "mlcad.ini");
2012-03-23 00:44:56 +01:00
lcDiskFile DiskSettings;
2011-09-07 23:06:51 +02:00
if (DiskSettings.Open(Filename, "rt"))
{
ParseSettings(DiskSettings);
}
else
{
2012-03-23 00:44:56 +01:00
lcMemFile MemSettings;
lcGetMinifigSettings(MemSettings);
2011-09-07 23:06:51 +02:00
ParseSettings(MemSettings);
}
m_MinifigCount = 0;
m_MinifigNames = NULL;
m_MinifigTemplates = NULL;
2012-07-21 02:31:21 +02:00
memset(m_Info, 0, sizeof(m_Info));
2011-09-07 23:06:51 +02:00
2012-02-01 03:07:54 +01:00
int Version = Sys_ProfileLoadInt("MinifigWizard", "Version", 1);
if (Version == 1)
2011-09-07 23:06:51 +02:00
{
char *ptr, buf[32];
m_MinifigCount = Sys_ProfileLoadInt ("MinifigWizard", "Count", 0);
2012-02-01 03:07:54 +01:00
m_MinifigNames = (char**)realloc(m_MinifigNames, sizeof(char**) * (m_MinifigCount+1));
m_MinifigTemplates = (char**)realloc(m_MinifigTemplates, sizeof(char**) * (m_MinifigCount+1));
2011-09-07 23:06:51 +02:00
2012-02-01 03:07:54 +01:00
for (int i = 0; i < m_MinifigCount; i++)
2011-09-07 23:06:51 +02:00
{
sprintf (buf, "Minifig%.2dName", i);
ptr = Sys_ProfileLoadString ("MinifigWizard", buf, buf);
m_MinifigNames[i] = (char*)malloc (strlen (ptr) + 1);
strcpy (m_MinifigNames[i], ptr);
m_MinifigTemplates[i] = (char*)malloc (768);
sprintf (buf, "Minifig%.2dColors", i);
ptr = Sys_ProfileLoadString ("MinifigWizard", buf, "");
if (ptr[strlen (ptr) - 1] != ' ')
strcat (ptr, " ");
strcpy (m_MinifigTemplates[i], ptr);
sprintf (buf, "Minifig%.2dPieces", i);
ptr = Sys_ProfileLoadString ("MinifigWizard", buf, "");
if (ptr[strlen (ptr) - 1] != ' ')
strcat (ptr, " ");
strcat (m_MinifigTemplates[i], ptr);
sprintf (buf, "Minifig%.2dAngles", i);
ptr = Sys_ProfileLoadString ("MinifigWizard", buf, "");
strcat (m_MinifigTemplates[i], ptr);
}
}
else
Sys_MessageBox ("Unknown Minifig Preferences.");
}
void MinifigWizard::OnInitialUpdate()
{
MakeCurrent();
const int ColorCodes[LC_MFW_NUMITEMS] = { 4, 7, 14, 7, 1, 0, 7, 4, 4, 14, 14, 7, 7, 0, 0, 7, 7 };
const char* Pieces[LC_MFW_NUMITEMS] = { "3624", "None", "3626BP01", "None", "973", "3815", "None", "3819", "3818", "3820", "3820", "None", "None", "3817", "3816", "None", "None" };
for (int i = 0; i < LC_MFW_NUMITEMS; i++)
{
m_Colors[i] = lcGetColorIndex(ColorCodes[i]);
m_Angles[i] = 0;
m_Info[i] = lcGetPiecesLibrary()->FindPieceInfo(Pieces[i]);
if (m_Info[i] != NULL)
m_Info[i]->AddRef();
}
Calculate();
}
2011-09-07 23:06:51 +02:00
MinifigWizard::~MinifigWizard ()
{
char *ptr, buf[32];
int i, j;
Sys_ProfileSaveInt ("MinifigWizard", "Version", 1);
Sys_ProfileSaveInt ("MinifigWizard", "Count", m_MinifigCount);
for (i = 0; i < m_MinifigCount; i++)
{
char *value;
ptr = m_MinifigTemplates[i];
sprintf (buf, "Minifig%.2dName", i);
Sys_ProfileSaveString ("MinifigWizard", buf, m_MinifigNames[i]);
value = ptr;
for (j = 0; j < LC_MFW_NUMITEMS; j++)
ptr = strchr (ptr, ' ') + 1;
*(--ptr) = '\0';
sprintf (buf, "Minifig%.2dColors", i);
Sys_ProfileSaveString ("MinifigWizard", buf, value);
ptr++;
value = ptr;
for (j = 0; j < LC_MFW_NUMITEMS; j++)
ptr = strchr (ptr, ' ') + 1;
*(--ptr) = '\0';
sprintf (buf, "Minifig%.2dPieces", i);
Sys_ProfileSaveString ("MinifigWizard", buf, value);
ptr++;
sprintf (buf, "Minifig%.2dAngles", i);
Sys_ProfileSaveString ("MinifigWizard", buf, ptr);
free (m_MinifigNames[i]);
free (m_MinifigTemplates[i]);
}
2012-02-01 03:07:54 +01:00
2011-09-07 23:06:51 +02:00
free (m_MinifigNames);
free (m_MinifigTemplates);
for (i = 0; i < LC_MFW_NUMITEMS; i++)
if (m_Info[i])
m_Info[i]->DeRef();
2011-09-07 23:06:51 +02:00
}
2012-03-23 00:44:56 +01:00
void MinifigWizard::ParseSettings(lcFile& Settings)
2011-09-07 23:06:51 +02:00
{
const char* SectionNames[LC_MFW_NUMITEMS] =
{
"[HATS]", // LC_MFW_HATS
"[HATS2]", // LC_MFW_HATS2
"[HEAD]", // LC_MFW_HEAD
"[NECK]", // LC_MFW_NECK
"[BODY]", // LC_MFW_BODY
"[BODY2]", // LC_MFW_BODY2
"[BODY3]", // LC_MFW_BODY3
"[RARM]", // LC_MFW_RARM
"[LARM]", // LC_MFW_LARM
"[RHAND]", // LC_MFW_RHAND
"[LHAND]", // LC_MFW_LHAND
"[RHANDA]", // LC_MFW_RHANDA
"[LHANDA]", // LC_MFW_LHANDA
"[RLEG]", // LC_MFW_RLEG
"[LLEG]", // LC_MFW_LLEG
"[RLEGA]", // LC_MFW_RLEGA
"[LLEGA]", // LC_MFW_LLEGA
2011-09-07 23:06:51 +02:00
};
for (int SectionIndex = 0; SectionIndex < LC_MFW_NUMITEMS; SectionIndex++)
{
ObjArray<lcMinifigPieceInfo>& InfoArray = mSettings[SectionIndex];
InfoArray.RemoveAll();
Settings.Seek(0, SEEK_SET);
char Line[1024];
bool FoundSection = false;
const char* SectionName = SectionNames[SectionIndex];
int SectionNameLength = strlen(SectionName);
// Find start of section
while (Settings.ReadLine(Line, sizeof(Line)))
{
if (!strncmp(Line, SectionName, SectionNameLength))
{
FoundSection = true;
break;
}
}
if (!FoundSection)
2012-07-21 02:31:21 +02:00
{
lcMinifigPieceInfo MinifigInfo;
strncpy(MinifigInfo.Description, "None", sizeof(MinifigInfo.Description));
MinifigInfo.Description[sizeof(MinifigInfo.Description)-1] = 0;
MinifigInfo.Offset = lcMatrix44Identity();
MinifigInfo.Info = NULL;
InfoArray.Add(MinifigInfo);
2011-09-07 23:06:51 +02:00
continue;
2012-07-21 02:31:21 +02:00
}
2011-09-07 23:06:51 +02:00
// Parse section.
while (Settings.ReadLine(Line, sizeof(Line)))
{
if (Line[0] == '[')
break;
char* DescriptionStart = strchr(Line, '"');
if (!DescriptionStart)
continue;
DescriptionStart++;
char* DescriptionEnd = strchr(DescriptionStart, '"');
if (!DescriptionEnd)
continue;
*DescriptionEnd = 0;
DescriptionEnd++;
char* NameStart = strchr(DescriptionEnd, '"');
if (!NameStart)
continue;
NameStart++;
char* NameEnd = strchr(NameStart, '"');
if (!NameEnd)
continue;
*NameEnd = 0;
NameEnd++;
strupr(NameStart);
char* Ext = strrchr(NameStart, '.');
if (Ext != NULL)
{
2012-02-01 03:07:54 +01:00
if (!strcmp(Ext, ".DAT"))
2011-09-07 23:06:51 +02:00
*Ext = 0;
}
PieceInfo* Info = lcGetPiecesLibrary()->FindPieceInfo(NameStart);
if (!Info && *NameStart)
continue;
float Mat[12];
int Flags;
if (sscanf(NameEnd, "%d %g %g %g %g %g %g %g %g %g %g %g %g",
&Flags, &Mat[0], &Mat[1], &Mat[2], &Mat[3], &Mat[4], &Mat[5], &Mat[6],
&Mat[7], &Mat[8], &Mat[9], &Mat[10], &Mat[11]) != 13)
continue;
2012-05-19 03:13:05 +02:00
lcMatrix44 Offset = lcMatrix44Identity();
2011-09-07 23:06:51 +02:00
float* OffsetMatrix = &Offset[0][0];
OffsetMatrix[0] = Mat[0];
OffsetMatrix[8] = -Mat[1];
OffsetMatrix[4] = Mat[2];
OffsetMatrix[2] = -Mat[3];
OffsetMatrix[10] = Mat[4];
OffsetMatrix[6] = -Mat[5];
OffsetMatrix[1] = Mat[6];
OffsetMatrix[9] = -Mat[7];
OffsetMatrix[5] = Mat[8];
OffsetMatrix[12] = Mat[9] / 25.0f;
OffsetMatrix[14] = -Mat[10] / 25.0f;
OffsetMatrix[13] = Mat[11] / 25.0f;
lcMinifigPieceInfo MinifigInfo;
strncpy(MinifigInfo.Description, DescriptionStart, sizeof(MinifigInfo.Description));
MinifigInfo.Description[sizeof(MinifigInfo.Description)-1] = 0;
MinifigInfo.Offset = Offset;
MinifigInfo.Info = Info;
InfoArray.Add(MinifigInfo);
}
}
}
2012-02-01 03:07:54 +01:00
void MinifigWizard::OnDraw()
2011-09-07 23:06:51 +02:00
{
int i;
2012-02-01 03:07:54 +01:00
if (!MakeCurrent())
2011-09-07 23:06:51 +02:00
return;
float aspect = (float)m_nWidth/(float)m_nHeight;
2012-02-01 03:07:54 +01:00
glViewport(0, 0, m_nWidth, m_nHeight);
glMatrixMode(GL_PROJECTION);
2012-06-21 02:41:53 +02:00
glLoadMatrixf(lcMatrix44Perspective(30.0f, aspect, 1.0f, 20.0f));
2012-02-01 03:07:54 +01:00
glMatrixMode(GL_MODELVIEW);
2012-06-07 00:34:38 +02:00
glLoadMatrixf(lcMatrix44LookAt(lcVector3(0, -9, 4), lcVector3(0, 5, 1), lcVector3(0, 0, 1)));
2012-02-01 03:07:54 +01:00
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
2011-09-07 23:06:51 +02:00
float *bg = lcGetActiveProject()->GetBackgroundColor();
2012-02-01 03:07:54 +01:00
glClearColor(bg[0], bg[1], bg[2], bg[3]);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glDisable(GL_DITHER);
glShadeModel(GL_FLAT);
2011-09-07 23:06:51 +02:00
2012-02-01 03:07:54 +01:00
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
Calculate();
2011-09-07 23:06:51 +02:00
for (i = 0; i < LC_MFW_NUMITEMS; i++)
{
if (m_Info[i] == NULL)
continue;
glPushMatrix();
glMultMatrixf(m_Matrices[i]);
m_Info[i]->RenderPiece(m_Colors[i]);
glPopMatrix();
}
glFinish();
2012-02-01 03:07:54 +01:00
SwapBuffers();
2011-09-07 23:06:51 +02:00
}
void MinifigWizard::Calculate()
{
float HeadOffset = 0.0f;
2012-05-19 03:13:05 +02:00
lcMatrix44 Root, Mat, Mat2;
2011-09-07 23:06:51 +02:00
bool DroidTorso = m_Info[LC_MFW_BODY] && !strcmp(m_Info[LC_MFW_BODY]->m_strName, "30375");
bool SkeletonTorso = m_Info[LC_MFW_BODY] && !strcmp(m_Info[LC_MFW_BODY]->m_strName, "6260");
2012-02-01 03:07:54 +01:00
if (m_Info[LC_MFW_BODY3])
Root = lcMatrix44Translation(lcVector3(0, 0, 2.96f));
else
Root = lcMatrix44Translation(lcVector3(0, 0, 2.88f));
m_Matrices[LC_MFW_BODY] = lcMul(mSettings[LC_MFW_BODY][GetSelectionIndex(LC_MFW_BODY)].Offset, Root);
2011-09-07 23:06:51 +02:00
if (m_Info[LC_MFW_NECK])
{
2012-05-19 03:13:05 +02:00
m_Matrices[LC_MFW_NECK] = lcMul(mSettings[LC_MFW_NECK][GetSelectionIndex(LC_MFW_NECK)].Offset, Root);
2011-09-07 23:06:51 +02:00
HeadOffset = 0.08f;
}
if (m_Info[LC_MFW_HEAD])
{
2012-05-19 03:13:05 +02:00
Mat = lcMatrix44RotationZ(-LC_DTOR * m_Angles[LC_MFW_HEAD]);
Mat.SetTranslation(lcVector3(0.0f, 0.0f, 0.96f + HeadOffset));
Mat = lcMul(mSettings[LC_MFW_HEAD][GetSelectionIndex(LC_MFW_HEAD)].Offset, Mat);
m_Matrices[LC_MFW_HEAD] = lcMul(Mat, Root);
2011-09-07 23:06:51 +02:00
}
if (m_Info[LC_MFW_HATS])
2011-09-07 23:06:51 +02:00
{
Mat = lcMatrix44RotationZ(-LC_DTOR * m_Angles[LC_MFW_HATS]);
Mat = lcMul(mSettings[LC_MFW_HATS][GetSelectionIndex(LC_MFW_HATS)].Offset, Mat);
m_Matrices[LC_MFW_HATS] = lcMul(Mat, m_Matrices[LC_MFW_HEAD]);
2011-09-07 23:06:51 +02:00
}
if (m_Info[LC_MFW_HATS2])
2011-09-07 23:06:51 +02:00
{
Mat = lcMatrix44RotationX(-LC_DTOR * m_Angles[LC_MFW_HATS2]);
Mat = lcMul(mSettings[LC_MFW_HATS2][GetSelectionIndex(LC_MFW_HATS2)].Offset, Mat);
m_Matrices[LC_MFW_HATS2] = lcMul(Mat, m_Matrices[LC_MFW_HATS]);
}
if (m_Info[LC_MFW_RARM])
{
Mat = lcMatrix44RotationX(-LC_DTOR * m_Angles[LC_MFW_RARM]);
2011-09-07 23:06:51 +02:00
2012-02-01 03:07:54 +01:00
if (DroidTorso || SkeletonTorso)
2012-05-19 03:13:05 +02:00
Mat2 = lcMatrix44Identity();
2011-09-07 23:06:51 +02:00
else
Mat2 = lcMatrix44RotationY(-LC_DTOR * 9.791f);
Mat2.SetTranslation(lcVector3(0.62f, 0, -0.32f));
2011-09-07 23:06:51 +02:00
Mat = lcMul(mSettings[LC_MFW_RARM][GetSelectionIndex(LC_MFW_RARM)].Offset, Mat);
2012-05-19 03:13:05 +02:00
Mat = lcMul(Mat, Mat2);
m_Matrices[LC_MFW_RARM] = lcMul(Mat, Root);
2011-09-07 23:06:51 +02:00
}
if (m_Info[LC_MFW_RHAND])
2011-09-07 23:06:51 +02:00
{
Mat = lcMatrix44RotationY(-LC_DTOR * m_Angles[LC_MFW_RHAND]);
2012-05-19 03:13:05 +02:00
Mat2 = lcMatrix44RotationX(LC_DTOR * 45);
Mat = lcMul(mSettings[LC_MFW_RHAND][GetSelectionIndex(LC_MFW_RHAND)].Offset, Mat);
2012-05-19 03:13:05 +02:00
Mat = lcMul(Mat, Mat2);
Mat.SetTranslation(lcVector3(0.2f, -0.4f, -0.76f));
m_Matrices[LC_MFW_RHAND] = lcMul(Mat, m_Matrices[LC_MFW_RARM]);
2011-09-07 23:06:51 +02:00
}
if (m_Info[LC_MFW_RHANDA])
2011-09-07 23:06:51 +02:00
{
Mat = lcMatrix44RotationZ(LC_DTOR * m_Angles[LC_MFW_RHANDA]);
2012-05-19 03:13:05 +02:00
Mat.SetTranslation(lcVector3(0, -0.4f, 0));
Mat = lcMul(mSettings[LC_MFW_RHANDA][GetSelectionIndex(LC_MFW_RHANDA)].Offset, Mat);
m_Matrices[LC_MFW_RHANDA] = lcMul(Mat, m_Matrices[LC_MFW_RHAND]);
2011-09-07 23:06:51 +02:00
}
if (m_Info[LC_MFW_LARM])
2011-09-07 23:06:51 +02:00
{
Mat = lcMatrix44RotationX(-LC_DTOR * m_Angles[LC_MFW_LARM]);
2011-09-07 23:06:51 +02:00
2012-02-01 03:07:54 +01:00
if (DroidTorso || SkeletonTorso)
2012-05-19 03:13:05 +02:00
Mat2 = lcMatrix44Identity();
2011-09-07 23:06:51 +02:00
else
Mat2 = lcMatrix44RotationY(LC_DTOR * 9.791f);
Mat2.SetTranslation(lcVector3(-0.62f, 0.0f, -0.32f));
2011-09-07 23:06:51 +02:00
Mat = lcMul(mSettings[LC_MFW_LARM][GetSelectionIndex(LC_MFW_LARM)].Offset, Mat);
2012-05-19 03:13:05 +02:00
Mat = lcMul(Mat, Mat2);
m_Matrices[LC_MFW_LARM] = lcMul(Mat, Root);
2011-09-07 23:06:51 +02:00
}
if (m_Info[LC_MFW_LHAND])
2011-09-07 23:06:51 +02:00
{
Mat = lcMatrix44RotationY(-LC_DTOR * m_Angles[LC_MFW_LHAND]);
2012-05-19 03:13:05 +02:00
Mat2 = lcMatrix44RotationX(LC_DTOR * 45);
Mat = lcMul(mSettings[LC_MFW_LHAND][GetSelectionIndex(LC_MFW_LHAND)].Offset, Mat);
2012-05-19 03:13:05 +02:00
Mat = lcMul(Mat, Mat2);
Mat.SetTranslation(lcVector3(-0.2f, -0.4f, -0.76f));
m_Matrices[LC_MFW_LHAND] = lcMul(Mat, m_Matrices[LC_MFW_LARM]);
2011-09-07 23:06:51 +02:00
}
if (m_Info[LC_MFW_LHANDA])
2011-09-07 23:06:51 +02:00
{
Mat = lcMatrix44RotationZ(LC_DTOR * m_Angles[LC_MFW_LHANDA]);
2012-05-19 03:13:05 +02:00
Mat.SetTranslation(lcVector3(0, -0.4f, 0));
Mat = lcMul(mSettings[LC_MFW_LHANDA][GetSelectionIndex(LC_MFW_LHANDA)].Offset, Mat);
m_Matrices[LC_MFW_LHANDA] = lcMul(Mat, m_Matrices[LC_MFW_LHAND]);
}
if (m_Info[LC_MFW_BODY2])
{
Mat = lcMatrix44Identity();
Mat.SetTranslation(lcVector3(0, 0, -1.28f));
Mat = lcMul(mSettings[LC_MFW_BODY2][GetSelectionIndex(LC_MFW_BODY2)].Offset, Mat);
m_Matrices[LC_MFW_BODY2] = lcMul(Mat, Root);
2011-09-07 23:06:51 +02:00
}
if (m_Info[LC_MFW_BODY3])
2011-09-07 23:06:51 +02:00
{
2012-05-19 03:13:05 +02:00
Mat = lcMatrix44Identity();
Mat.SetTranslation(lcVector3(0, 0, -1.28f));
Mat = lcMul(mSettings[LC_MFW_BODY3][GetSelectionIndex(LC_MFW_BODY3)].Offset, Mat);
m_Matrices[LC_MFW_BODY3] = lcMul(Mat, Root);
2011-09-07 23:06:51 +02:00
}
if (m_Info[LC_MFW_RLEG])
2011-09-07 23:06:51 +02:00
{
Mat = lcMatrix44RotationX(-LC_DTOR * m_Angles[LC_MFW_RLEG]);
2012-05-19 03:13:05 +02:00
Mat.SetTranslation(lcVector3(0, 0, -1.76f));
Mat = lcMul(mSettings[LC_MFW_RLEG][GetSelectionIndex(LC_MFW_RLEG)].Offset, Mat);
m_Matrices[LC_MFW_RLEG] = lcMul(Mat, Root);
2011-09-07 23:06:51 +02:00
}
if (m_Info[LC_MFW_RLEGA])
2011-09-07 23:06:51 +02:00
{
2012-05-19 03:13:05 +02:00
lcVector3 Center(-0.4f, -0.04f, -1.12f);
Mat = lcMatrix44RotationZ(LC_DTOR * m_Angles[LC_MFW_RLEGA]);
Mat2 = mSettings[LC_MFW_RLEGA][GetSelectionIndex(LC_MFW_RLEGA)].Offset;
2012-05-19 03:13:05 +02:00
Mat2.SetTranslation(lcMul31(-Center, Mat2));
Mat = lcMul(Mat2, Mat);
Mat.SetTranslation(lcMul31(Center, Mat2));
m_Matrices[LC_MFW_RLEGA] = lcMul(Mat, m_Matrices[LC_MFW_RLEG]);
2011-09-07 23:06:51 +02:00
}
if (m_Info[LC_MFW_LLEG])
2011-09-07 23:06:51 +02:00
{
Mat = lcMatrix44RotationX(-LC_DTOR * m_Angles[LC_MFW_LLEG]);
2012-05-19 03:13:05 +02:00
Mat.SetTranslation(lcVector3(0, 0, -1.76f));
Mat = lcMul(mSettings[LC_MFW_LLEG][GetSelectionIndex(LC_MFW_LLEG)].Offset, Mat);
m_Matrices[LC_MFW_LLEG] = lcMul(Mat, Root);
2011-09-07 23:06:51 +02:00
}
if (m_Info[LC_MFW_LLEGA])
2011-09-07 23:06:51 +02:00
{
2012-05-19 03:13:05 +02:00
lcVector3 Center(0.4f, -0.04f, -1.12f);
Mat = lcMatrix44RotationZ(LC_DTOR * m_Angles[LC_MFW_LLEGA]);
Mat2 = mSettings[LC_MFW_LLEGA][GetSelectionIndex(LC_MFW_LLEGA)].Offset;
2012-05-19 03:13:05 +02:00
Mat2.SetTranslation(lcMul31(-Center, Mat2));
Mat = lcMul(Mat2, Mat);
Mat.SetTranslation(lcMul31(Center, Mat2));
m_Matrices[LC_MFW_LLEGA] = lcMul(Mat, m_Matrices[LC_MFW_LLEG]);
2011-09-07 23:06:51 +02:00
}
}
int MinifigWizard::GetSelectionIndex(int Type) const
{
const ObjArray<lcMinifigPieceInfo>& InfoArray = mSettings[Type];
for (int Index = 0; Index < InfoArray.GetSize(); Index++)
if (InfoArray[Index].Info == m_Info[Type])
return Index;
return 0;
}
void MinifigWizard::SetSelectionIndex(int Type, int Index)
{
if (m_Info[Type])
m_Info[Type]->DeRef();
m_Info[Type] = mSettings[Type][Index].Info;
if (m_Info[Type])
m_Info[Type]->AddRef();
Calculate();
}
void MinifigWizard::SetColor(int Type, int Color)
{
m_Colors[Type] = Color;
}
void MinifigWizard::SetAngle(int Type, float Angle)
{
m_Angles[Type] = Angle;
}
2012-02-01 03:07:54 +01:00
void MinifigWizard::GetMinifigNames(char ***names, int *count)
2011-09-07 23:06:51 +02:00
{
*count = m_MinifigCount;
*names = m_MinifigNames;
}
2012-02-01 03:07:54 +01:00
void MinifigWizard::SaveMinifig(const char* name)
2011-09-07 23:06:51 +02:00
{
2012-02-01 03:07:54 +01:00
char tmp[LC_PIECE_NAME_LEN];
int i, j;
// check if the name is already being used
for (i = 0; i < m_MinifigCount; i++)
if (strcmp(m_MinifigNames[i], name) == 0)
break;
if (i == m_MinifigCount)
{
m_MinifigCount++;
m_MinifigNames = (char**)realloc(m_MinifigNames, sizeof(char**)*m_MinifigCount);
m_MinifigTemplates = (char**)realloc(m_MinifigTemplates, sizeof(char**)*m_MinifigCount);
m_MinifigNames[i] = (char*)malloc(strlen(name) + 1);
strcpy(m_MinifigNames[i], name);
m_MinifigTemplates[i] = (char*)malloc(768);
}
strcpy(m_MinifigTemplates[i], "");
for (j = 0; j < LC_MFW_NUMITEMS; j++)
{
sprintf(tmp, "%d ", m_Colors[j]);
strcat(m_MinifigTemplates[i], tmp);
}
for (j = 0; j < LC_MFW_NUMITEMS; j++)
{
if (m_Info[j] != NULL)
sprintf(tmp, "%s ", m_Info[j]->m_strName);
else
strcpy(tmp, "None ");
strcat(m_MinifigTemplates[i], tmp);
}
for (j = 0; j < LC_MFW_NUMITEMS; j++)
{
sprintf(tmp, "%f ", m_Angles[j]);
strcat(m_MinifigTemplates[i], tmp);
}
2011-09-07 23:06:51 +02:00
}
2012-02-01 03:07:54 +01:00
bool MinifigWizard::LoadMinifig(const char* name)
2011-09-07 23:06:51 +02:00
{
2012-02-01 03:07:54 +01:00
char *ptr;
int i, j;
// check if the name is valid
for (i = 0; i < m_MinifigCount; i++)
if (strcmp(m_MinifigNames[i], name) == 0)
break;
if (i == m_MinifigCount)
{
// Sys_MessageBox("Unknown Minifig");
return false;
}
else
ptr = m_MinifigTemplates[i];
for (j = 0; j < LC_MFW_NUMITEMS; j++)
if (m_Info[j] != NULL)
m_Info[j]->DeRef();
for (j = 0; j < LC_MFW_NUMITEMS; j++)
m_Colors[j] = strtol(ptr, &ptr, 10);
for (j = 0; j < LC_MFW_NUMITEMS; j++)
{
char *endptr;
ptr++;
endptr = strchr(ptr, ' ');
*endptr = '\0';
m_Info[j] = lcGetPiecesLibrary()->FindPieceInfo(ptr);
*endptr = ' ';
ptr = endptr;
if (m_Info[j] != NULL)
m_Info[j]->AddRef();
}
for (j = 0; j < LC_MFW_NUMITEMS; j++)
m_Angles[j] = (float)strtod(ptr, &ptr);
return true;
2011-09-07 23:06:51 +02:00
}
2012-02-01 03:07:54 +01:00
void MinifigWizard::DeleteMinifig(const char* name)
2011-09-07 23:06:51 +02:00
{
2012-02-01 03:07:54 +01:00
int i;
// check if the name is valid
for (i = 0; i < m_MinifigCount; i++)
if (strcmp(m_MinifigNames[i], name) == 0)
break;
if (i == m_MinifigCount)
{
Sys_MessageBox("Unknown Minifig");
return;
}
free(m_MinifigNames[i]);
free(m_MinifigTemplates[i]);
m_MinifigCount--;
for (; i < m_MinifigCount; i++)
{
m_MinifigNames[i] = m_MinifigNames[i+1];
m_MinifigTemplates[i] = m_MinifigTemplates[i+1];
}
2011-09-07 23:06:51 +02:00
}