From 4b715ac8bef0426e9616606f607c4557c50e3b0f Mon Sep 17 00:00:00 2001 From: dborca <> Date: Thu, 10 Jul 2003 12:16:56 +0000 Subject: [PATCH] shamelessness --- glide3x/h5/glide3/src/banner.inc | 495 +++++++++++++++++++++++++++++++ glide3x/h5/glide3/src/fxglide.h | 23 +- glide3x/h5/glide3/src/gbanner.c | 259 +++++++++++++++- glide3x/h5/glide3/src/gsst.c | 32 ++ 4 files changed, 801 insertions(+), 8 deletions(-) create mode 100644 glide3x/h5/glide3/src/banner.inc diff --git a/glide3x/h5/glide3/src/banner.inc b/glide3x/h5/glide3/src/banner.inc new file mode 100644 index 0000000..6c21c3f --- /dev/null +++ b/glide3x/h5/glide3/src/banner.inc @@ -0,0 +1,495 @@ +static unsigned long fxPlugWidth = 180; +static unsigned long fxPlugHeight = 90; +static unsigned long fxPlugStride = 360; +#ifdef GLIDE3 +static GrLfbWriteMode_t fxPlugFormat = GR_LFBWRITEMODE_565; +#endif +static unsigned char tga_16rle[] = { + 0xff, 0x00, 0x00, 0xb3, 0x00, 0x00, 0xff, 0x00, 0x00, 0xb3, 0x00, 0x00, + 0xff, 0x00, 0x00, 0xb3, 0x00, 0x00, 0xff, 0x00, 0x00, 0xb3, 0x00, 0x00, + 0xff, 0x00, 0x00, 0xb3, 0x00, 0x00, 0xff, 0x00, 0x00, 0xb3, 0x00, 0x00, + 0xe1, 0x00, 0x00, 0x04, 0x20, 0x08, 0x40, 0x10, 0x80, 0x1c, 0xa0, 0x20, + 0xa1, 0x28, 0x81, 0xc0, 0x2c, 0x05, 0xe1, 0x2c, 0xc0, 0x2c, 0xa0, 0x28, + 0xa0, 0x20, 0x60, 0x14, 0x20, 0x0c, 0xc4, 0x00, 0x00, 0xdb, 0x00, 0x00, + 0x0b, 0x00, 0x04, 0x40, 0x10, 0xa0, 0x24, 0x01, 0x35, 0x41, 0x49, 0xa1, + 0x5d, 0xe1, 0x69, 0xe2, 0x6d, 0x02, 0x6e, 0x01, 0x72, 0x02, 0x72, 0x22, + 0x76, 0x81, 0x02, 0x76, 0x00, 0x22, 0x72, 0x81, 0x02, 0x72, 0x06, 0xe2, + 0x6d, 0xe1, 0x6d, 0xc1, 0x5d, 0x41, 0x45, 0xe1, 0x30, 0x60, 0x14, 0x00, + 0x04, 0xbf, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x14, 0x40, 0x10, 0xc0, 0x2c, + 0x41, 0x45, 0xa1, 0x5d, 0x02, 0x6e, 0x01, 0x76, 0x22, 0x7a, 0x21, 0x76, + 0x02, 0x76, 0x22, 0x72, 0x02, 0x76, 0x01, 0x72, 0x02, 0x72, 0x01, 0x72, + 0x02, 0x72, 0x01, 0x6e, 0x02, 0x6e, 0xe1, 0x71, 0x02, 0x6e, 0xe1, 0x71, + 0x02, 0x6e, 0x81, 0x02, 0x72, 0x05, 0x02, 0x76, 0x01, 0x76, 0x02, 0x6e, + 0xa1, 0x5d, 0xe0, 0x34, 0x40, 0x10, 0xbd, 0x00, 0x00, 0xd5, 0x00, 0x00, + 0x21, 0x40, 0x14, 0x01, 0x39, 0xa1, 0x59, 0x02, 0x72, 0x22, 0x7a, 0x42, + 0x7a, 0x02, 0x76, 0x01, 0x6e, 0xe2, 0x6d, 0xe2, 0x65, 0xa1, 0x61, 0xa1, + 0x59, 0xa1, 0x5d, 0xa2, 0x59, 0xa1, 0x5d, 0xc2, 0x61, 0xc1, 0x69, 0xe2, + 0x69, 0x02, 0x72, 0x02, 0x76, 0x02, 0x72, 0x01, 0x72, 0x02, 0x6e, 0x01, + 0x6e, 0xe2, 0x6d, 0x01, 0x6e, 0x02, 0x6e, 0xe2, 0x71, 0x01, 0x6e, 0x02, + 0x72, 0x22, 0x76, 0xe2, 0x6d, 0x41, 0x45, 0x40, 0x0c, 0xbb, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x0f, 0x40, 0x10, 0x01, 0x39, 0xa1, 0x5d, 0x01, 0x72, + 0x22, 0x7a, 0x01, 0x6e, 0xa1, 0x5d, 0x41, 0x45, 0xe1, 0x34, 0xa0, 0x24, + 0x61, 0x18, 0x40, 0x0c, 0x20, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, + 0x81, 0x00, 0x00, 0x14, 0x20, 0x04, 0x20, 0x08, 0x60, 0x14, 0x80, 0x20, + 0xe1, 0x30, 0x61, 0x49, 0xc2, 0x65, 0x01, 0x72, 0x02, 0x76, 0x02, 0x72, + 0xe2, 0x6d, 0x01, 0x6e, 0xe2, 0x6d, 0x02, 0x6e, 0xe1, 0x71, 0x02, 0x6e, + 0x01, 0x72, 0x22, 0x76, 0xe1, 0x69, 0xe1, 0x34, 0x00, 0x04, 0xb9, 0x00, + 0x00, 0xcf, 0x00, 0x00, 0x08, 0x20, 0x08, 0xc0, 0x2c, 0x81, 0x55, 0x02, + 0x72, 0x01, 0x72, 0xa2, 0x59, 0x01, 0x3d, 0xa0, 0x20, 0x41, 0x0c, 0x91, + 0x00, 0x00, 0x0f, 0x20, 0x04, 0x81, 0x20, 0x21, 0x41, 0xe1, 0x65, 0x02, + 0x76, 0x02, 0x72, 0x01, 0x6e, 0xe2, 0x6d, 0x01, 0x6e, 0xe2, 0x6d, 0x01, + 0x6e, 0xe2, 0x6d, 0x02, 0x72, 0x22, 0x76, 0xa1, 0x59, 0x60, 0x14, 0xb8, + 0x00, 0x00, 0xcd, 0x00, 0x00, 0x06, 0x60, 0x14, 0x21, 0x45, 0xe1, 0x65, + 0x02, 0x6e, 0x61, 0x51, 0xc1, 0x2c, 0x40, 0x10, 0x98, 0x00, 0x00, 0x0d, + 0x40, 0x0c, 0x01, 0x39, 0xc1, 0x65, 0x22, 0x76, 0x02, 0x72, 0xe1, 0x6d, + 0x02, 0x6e, 0xe2, 0x6d, 0x01, 0x6e, 0xe2, 0x6d, 0x01, 0x72, 0x02, 0x76, + 0xe1, 0x69, 0xa1, 0x20, 0xb7, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x05, 0xa0, + 0x20, 0x61, 0x55, 0xe1, 0x69, 0x81, 0x55, 0xc1, 0x2c, 0x40, 0x0c, 0x9d, + 0x00, 0x00, 0x01, 0x40, 0x0c, 0x41, 0x45, 0x81, 0x02, 0x72, 0x08, 0x01, + 0x72, 0xe2, 0x6d, 0x02, 0x72, 0x01, 0x6e, 0xe2, 0x6d, 0x02, 0x6e, 0x01, + 0x72, 0x02, 0x72, 0xa0, 0x24, 0xb6, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x04, + 0xa0, 0x24, 0x81, 0x55, 0xc2, 0x61, 0x41, 0x45, 0x61, 0x18, 0xa2, 0x00, + 0x00, 0x0b, 0xc1, 0x2c, 0xe1, 0x6d, 0x02, 0x72, 0x01, 0x6e, 0xe2, 0x6d, + 0x02, 0x6e, 0xe1, 0x6d, 0x02, 0x72, 0xe2, 0x6d, 0x01, 0x72, 0x02, 0x6e, + 0x80, 0x1c, 0xb5, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x04, 0xc0, 0x28, 0x81, + 0x55, 0x81, 0x59, 0xe1, 0x30, 0x20, 0x04, 0xa5, 0x00, 0x00, 0x0b, 0x81, + 0x1c, 0xe1, 0x65, 0x02, 0x76, 0x01, 0x6e, 0xe2, 0x71, 0x02, 0x6e, 0xe1, + 0x6d, 0x02, 0x6e, 0xe2, 0x6d, 0x01, 0x76, 0xc2, 0x65, 0x40, 0x10, 0xb4, + 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xa0, 0x24, 0x81, 0x61, 0x51, 0x00, + 0xa1, 0x20, 0xa9, 0x00, 0x00, 0x06, 0x60, 0x18, 0xe2, 0x65, 0x02, 0x72, + 0x01, 0x6e, 0xe2, 0x6d, 0x02, 0x6e, 0x01, 0x72, 0x81, 0x02, 0x6e, 0x02, + 0x22, 0x76, 0x81, 0x59, 0x20, 0x04, 0xb3, 0x00, 0x00, 0xc3, 0x00, 0x00, + 0x03, 0x80, 0x1c, 0x41, 0x4d, 0x61, 0x4d, 0x81, 0x1c, 0xac, 0x00, 0x00, + 0x03, 0x80, 0x1c, 0xe2, 0x6d, 0x02, 0x72, 0x01, 0x6e, 0x81, 0xe2, 0x6d, + 0x04, 0x01, 0x6e, 0xe2, 0x71, 0x01, 0x6e, 0x02, 0x76, 0x01, 0x35, 0xb3, + 0x00, 0x00, 0xc1, 0x00, 0x00, 0x03, 0x40, 0x10, 0x41, 0x45, 0x61, 0x4d, + 0x81, 0x1c, 0xaf, 0x00, 0x00, 0x0a, 0xc1, 0x2c, 0x01, 0x76, 0x02, 0x6e, + 0x01, 0x72, 0xe2, 0x6d, 0x01, 0x6e, 0xe2, 0x6d, 0x02, 0x6e, 0x01, 0x72, + 0xe2, 0x6d, 0x40, 0x0c, 0xb2, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x03, 0x00, + 0x04, 0xe0, 0x34, 0x41, 0x49, 0xa1, 0x24, 0xb2, 0x00, 0x00, 0x09, 0x81, + 0x51, 0x02, 0x76, 0x02, 0x6e, 0xe2, 0x6d, 0x02, 0x72, 0xe1, 0x6d, 0x02, + 0x6e, 0xe2, 0x6d, 0x21, 0x76, 0x21, 0x41, 0xb2, 0x00, 0x00, 0xbe, 0x00, + 0x00, 0x03, 0xa0, 0x20, 0x41, 0x45, 0xc1, 0x2c, 0x20, 0x04, 0xb3, 0x00, + 0x00, 0x0a, 0x60, 0x14, 0xe2, 0x6d, 0x01, 0x72, 0x02, 0x6e, 0xe1, 0x6d, + 0x02, 0x6e, 0xe1, 0x71, 0x02, 0x6e, 0x02, 0x72, 0xc1, 0x69, 0x40, 0x0c, + 0xb1, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x03, 0x40, 0x10, 0x01, 0x3d, 0xe1, + 0x34, 0x40, 0x0c, 0xb6, 0x00, 0x00, 0x09, 0x41, 0x45, 0x02, 0x76, 0x01, + 0x6e, 0xe2, 0x6d, 0x02, 0x72, 0x02, 0x6e, 0xe1, 0x6d, 0x02, 0x6e, 0x02, + 0x76, 0xe1, 0x2c, 0xb1, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x02, 0xc0, 0x28, + 0x01, 0x3d, 0x80, 0x14, 0xb8, 0x00, 0x00, 0x09, 0x60, 0x14, 0x02, 0x6e, + 0x02, 0x72, 0xe1, 0x6d, 0x02, 0x6e, 0xe1, 0x6d, 0x02, 0x6e, 0xe1, 0x6d, + 0x22, 0x76, 0x81, 0x55, 0xb1, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x02, 0x40, + 0x10, 0x01, 0x35, 0xc0, 0x2c, 0xbb, 0x00, 0x00, 0x09, 0x61, 0x4d, 0x02, + 0x76, 0x02, 0x6e, 0xe1, 0x71, 0x02, 0x6e, 0xe2, 0x71, 0x02, 0x6e, 0xe1, + 0x71, 0xe2, 0x6d, 0x40, 0x10, 0xb0, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x02, + 0xa0, 0x24, 0xe1, 0x34, 0x40, 0x10, 0xbc, 0x00, 0x00, 0x09, 0xc1, 0x28, + 0x01, 0x76, 0x02, 0x6e, 0xe2, 0x6d, 0x01, 0x6e, 0x02, 0x6e, 0xe1, 0x6d, + 0x02, 0x6e, 0x22, 0x72, 0xc0, 0x28, 0xb0, 0x00, 0x00, 0xb6, 0x00, 0x00, + 0x02, 0x20, 0x0c, 0xe1, 0x30, 0xa0, 0x24, 0xbe, 0x00, 0x00, 0x09, 0x40, + 0x10, 0xe2, 0x69, 0x01, 0x72, 0x02, 0x6e, 0xe1, 0x6d, 0x02, 0x72, 0xe2, + 0x6d, 0x01, 0x6e, 0x02, 0x76, 0x21, 0x41, 0xb0, 0x00, 0x00, 0xb5, 0x00, + 0x00, 0x02, 0x80, 0x1c, 0xe1, 0x30, 0x40, 0x10, 0xc0, 0x00, 0x00, 0x05, + 0x81, 0x59, 0x02, 0x72, 0x02, 0x6e, 0xe2, 0x6d, 0x01, 0x6e, 0xe2, 0x6d, + 0x81, 0x02, 0x72, 0x00, 0x81, 0x55, 0xb0, 0x00, 0x00, 0xb3, 0x00, 0x00, + 0x02, 0x00, 0x04, 0xc0, 0x28, 0xa1, 0x24, 0x94, 0x00, 0x00, 0x06, 0x21, + 0x04, 0x00, 0x00, 0x21, 0x04, 0x00, 0x00, 0x21, 0x04, 0x00, 0x00, 0x21, + 0x04, 0x8c, 0x00, 0x00, 0x02, 0x63, 0x0c, 0x29, 0x25, 0xad, 0x35, 0x81, + 0x10, 0x42, 0x04, 0xce, 0x39, 0x8c, 0x31, 0x29, 0x25, 0xc6, 0x14, 0x21, + 0x04, 0x8f, 0x00, 0x00, 0x09, 0x21, 0x3d, 0x22, 0x76, 0xe1, 0x71, 0x02, + 0x6e, 0xe2, 0x71, 0x01, 0x6e, 0xe2, 0x6d, 0x01, 0x72, 0xe2, 0x69, 0x20, + 0x08, 0xaf, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x02, 0x40, 0x0c, 0xc0, 0x2c, + 0x61, 0x14, 0x94, 0x00, 0x00, 0x00, 0x4a, 0x29, 0x81, 0x39, 0x67, 0x00, + 0x18, 0x63, 0x81, 0x39, 0x67, 0x03, 0x19, 0x63, 0x38, 0x67, 0x39, 0x67, + 0x4a, 0x29, 0x88, 0x00, 0x00, 0x02, 0x29, 0x25, 0xb5, 0x56, 0xbd, 0x77, + 0x87, 0xff, 0x7f, 0x00, 0x08, 0x21, 0x8f, 0x00, 0x00, 0x09, 0xc1, 0x2c, + 0x22, 0x76, 0xe2, 0x6d, 0x01, 0x6e, 0x02, 0x6e, 0xe1, 0x6d, 0x02, 0x6e, + 0x02, 0x72, 0xe1, 0x69, 0x61, 0x14, 0xaf, 0x00, 0x00, 0xb1, 0x00, 0x00, + 0x02, 0x60, 0x18, 0xc1, 0x28, 0x20, 0x08, 0x95, 0x00, 0x00, 0x00, 0xce, + 0x39, 0x87, 0xff, 0x7f, 0x00, 0xae, 0x35, 0x87, 0x00, 0x00, 0x00, 0x31, + 0x46, 0x8a, 0xff, 0x7f, 0x00, 0x29, 0x25, 0x8f, 0x00, 0x00, 0x09, 0xa0, + 0x20, 0x02, 0x72, 0x01, 0x6e, 0xe2, 0x71, 0x02, 0x6e, 0xe2, 0x71, 0x01, + 0x6e, 0xe2, 0x71, 0x01, 0x6e, 0x81, 0x20, 0xaf, 0x00, 0x00, 0xb0, 0x00, + 0x00, 0x01, 0xa0, 0x20, 0x80, 0x20, 0x97, 0x00, 0x00, 0x00, 0xad, 0x35, + 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x86, 0x00, 0x00, 0x00, 0xef, 0x3d, + 0x8b, 0xff, 0x7f, 0x00, 0x29, 0x25, 0x8f, 0x00, 0x00, 0x05, 0x60, 0x18, + 0xe2, 0x6d, 0x02, 0x72, 0xe1, 0x6d, 0x02, 0x6e, 0xe1, 0x6d, 0x81, 0x02, + 0x6e, 0x01, 0x02, 0x72, 0xc0, 0x28, 0xaf, 0x00, 0x00, 0xae, 0x00, 0x00, + 0x02, 0x20, 0x08, 0xa0, 0x24, 0x61, 0x14, 0x98, 0x00, 0x00, 0x00, 0xad, + 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x85, 0x00, 0x00, 0x01, 0xa5, + 0x14, 0xde, 0x7b, 0x8b, 0xff, 0x7f, 0x00, 0x08, 0x21, 0x8f, 0x00, 0x00, + 0x09, 0x40, 0x10, 0x02, 0x6a, 0x01, 0x72, 0xe2, 0x6d, 0x01, 0x6e, 0x02, + 0x6e, 0xe1, 0x71, 0x02, 0x6e, 0x01, 0x76, 0xc1, 0x2c, 0xaf, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x02, 0x20, 0x0c, 0xa0, 0x24, 0x40, 0x0c, 0x99, 0x00, + 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x85, 0x00, + 0x00, 0x00, 0x31, 0x46, 0x8c, 0xff, 0x7f, 0x00, 0x29, 0x25, 0x8f, 0x00, + 0x00, 0x09, 0x40, 0x08, 0xe2, 0x69, 0x02, 0x72, 0xe1, 0x6d, 0x02, 0x6e, + 0xe2, 0x6d, 0x02, 0x6e, 0xe1, 0x6d, 0x22, 0x76, 0xe1, 0x30, 0xaf, 0x00, + 0x00, 0xac, 0x00, 0x00, 0x02, 0x40, 0x10, 0xa0, 0x24, 0x21, 0x08, 0x9a, + 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x31, 0x85, + 0x00, 0x00, 0x00, 0x39, 0x67, 0x8c, 0xff, 0x7f, 0x00, 0x29, 0x25, 0x8f, + 0x00, 0x00, 0x09, 0x20, 0x08, 0xe1, 0x69, 0x02, 0x72, 0xe2, 0x6d, 0x01, + 0x72, 0xe2, 0x6d, 0x01, 0x72, 0xe2, 0x6d, 0x22, 0x76, 0xc1, 0x30, 0xaf, + 0x00, 0x00, 0xab, 0x00, 0x00, 0x01, 0x60, 0x18, 0x80, 0x1c, 0x9c, 0x00, + 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, + 0x00, 0x01, 0x41, 0x08, 0xbd, 0x77, 0x89, 0xff, 0x7f, 0x03, 0xbd, 0x77, + 0x5a, 0x6b, 0x18, 0x63, 0xe7, 0x1c, 0x8f, 0x00, 0x00, 0x05, 0x20, 0x08, + 0xe2, 0x69, 0x01, 0x72, 0x02, 0x6e, 0xe2, 0x6d, 0x01, 0x6e, 0x81, 0x02, + 0x6e, 0x01, 0x01, 0x76, 0xc1, 0x2c, 0xaf, 0x00, 0x00, 0xaa, 0x00, 0x00, + 0x01, 0x80, 0x1c, 0x60, 0x18, 0x9d, 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, + 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, 0x63, 0x0c, 0xde, + 0x7b, 0x87, 0xff, 0x7f, 0x02, 0x9c, 0x73, 0x8c, 0x31, 0x42, 0x08, 0x92, + 0x00, 0x00, 0x06, 0x40, 0x0c, 0xe2, 0x69, 0x02, 0x72, 0xe1, 0x6d, 0x02, + 0x6e, 0xe2, 0x71, 0xe1, 0x6d, 0x81, 0x02, 0x72, 0x00, 0xc0, 0x28, 0xaf, + 0x00, 0x00, 0xa9, 0x00, 0x00, 0x01, 0x80, 0x20, 0x60, 0x10, 0x9e, 0x00, + 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, + 0x00, 0x01, 0x84, 0x10, 0xde, 0x7b, 0x87, 0xff, 0x7f, 0x00, 0x08, 0x21, + 0x94, 0x00, 0x00, 0x04, 0x40, 0x10, 0xe2, 0x6d, 0x01, 0x6e, 0x02, 0x72, + 0xe1, 0x6d, 0x81, 0x02, 0x6e, 0x02, 0xe1, 0x6d, 0x02, 0x72, 0xa0, 0x20, + 0xaf, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x02, 0x00, 0x04, 0xa0, 0x20, 0x40, + 0x0c, 0x9f, 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, + 0x35, 0x84, 0x00, 0x00, 0x01, 0x63, 0x0c, 0xde, 0x7b, 0x86, 0xff, 0x7f, + 0x00, 0x39, 0x67, 0x95, 0x00, 0x00, 0x09, 0x60, 0x14, 0x02, 0x6e, 0x02, + 0x72, 0xe2, 0x6d, 0x02, 0x6e, 0xe1, 0x6d, 0x02, 0x72, 0x02, 0x6e, 0xe1, + 0x6d, 0x81, 0x18, 0xaf, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x02, 0x20, 0x08, + 0x80, 0x1c, 0x20, 0x0c, 0xa0, 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, + 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, 0x84, 0x10, 0xde, 0x7b, + 0x86, 0xff, 0x7f, 0x00, 0xd6, 0x5a, 0x95, 0x00, 0x00, 0x09, 0xa1, 0x20, + 0xe1, 0x6d, 0x02, 0x72, 0xe1, 0x6d, 0x02, 0x6e, 0xe2, 0x6d, 0x01, 0x6e, + 0x02, 0x72, 0xe2, 0x69, 0x40, 0x0c, 0xaf, 0x00, 0x00, 0xa5, 0x00, 0x00, + 0x02, 0x00, 0x04, 0x80, 0x1c, 0x20, 0x08, 0xa1, 0x00, 0x00, 0x00, 0xad, + 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, 0x63, + 0x0c, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xf7, 0x5e, 0x95, 0x00, 0x00, + 0x09, 0xc1, 0x28, 0x02, 0x72, 0x01, 0x6e, 0x02, 0x6e, 0xe1, 0x71, 0x02, + 0x6e, 0xe2, 0x6d, 0x01, 0x72, 0xc1, 0x61, 0x00, 0x04, 0xaf, 0x00, 0x00, + 0xca, 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, + 0x84, 0x00, 0x00, 0x01, 0x84, 0x10, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, + 0xd6, 0x5a, 0x95, 0x00, 0x00, 0x05, 0x01, 0x35, 0x02, 0x76, 0x02, 0x72, + 0xe1, 0x6d, 0x02, 0x6e, 0xe1, 0x6d, 0x81, 0x02, 0x72, 0x00, 0x81, 0x51, + 0xb0, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, + 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, 0x63, 0x0c, 0xde, 0x7b, 0x86, + 0xff, 0x7f, 0x00, 0xd6, 0x5a, 0x95, 0x00, 0x00, 0x08, 0x41, 0x45, 0x22, + 0x76, 0xe1, 0x6d, 0x02, 0x6e, 0xe2, 0x71, 0x02, 0x6e, 0xe1, 0x6d, 0x22, + 0x76, 0x21, 0x41, 0xb0, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xad, 0x35, + 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, 0x84, 0x10, + 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xf7, 0x5e, 0x95, 0x00, 0x00, 0x08, + 0xa1, 0x59, 0x02, 0x72, 0xe2, 0x6d, 0x01, 0x6e, 0x02, 0x6e, 0xe1, 0x6d, + 0x02, 0x72, 0x02, 0x76, 0xc0, 0x2c, 0xb0, 0x00, 0x00, 0xaa, 0x00, 0x00, + 0x02, 0x21, 0x04, 0xe7, 0x18, 0x6b, 0x2d, 0x81, 0xad, 0x35, 0x02, 0x6b, + 0x2d, 0xc6, 0x18, 0x42, 0x08, 0x8f, 0x00, 0x00, 0x05, 0xa5, 0x14, 0x4a, + 0x29, 0xad, 0x35, 0x8c, 0x31, 0x08, 0x21, 0x21, 0x04, 0x81, 0x00, 0x00, + 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, + 0x01, 0x84, 0x10, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xd6, 0x5a, 0x85, + 0x00, 0x00, 0x00, 0x21, 0x00, 0x8d, 0x00, 0x00, 0x09, 0x40, 0x0c, 0xe2, + 0x69, 0x01, 0x72, 0xe2, 0x6d, 0x01, 0x72, 0xe2, 0x6d, 0x02, 0x6e, 0x01, + 0x72, 0x02, 0x6e, 0x81, 0x1c, 0xb0, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x02, + 0x21, 0x00, 0x8c, 0x31, 0x39, 0x67, 0x85, 0xff, 0x7f, 0x02, 0x7b, 0x6f, + 0x31, 0x46, 0x84, 0x10, 0x8b, 0x00, 0x00, 0x02, 0xa5, 0x14, 0x94, 0x52, + 0xde, 0x7b, 0x83, 0xff, 0x7f, 0x03, 0x7b, 0x6f, 0xad, 0x35, 0x00, 0x00, + 0x8c, 0x31, 0x87, 0xff, 0x7f, 0x06, 0xad, 0x35, 0x00, 0x00, 0x8c, 0x31, + 0xf7, 0x5e, 0x18, 0x63, 0xf7, 0x5e, 0x18, 0x63, 0x87, 0xff, 0x7f, 0x07, + 0xbd, 0x77, 0xf7, 0x5e, 0x18, 0x63, 0xf7, 0x5e, 0x18, 0x63, 0x94, 0x52, + 0x00, 0x00, 0xe7, 0x20, 0x87, 0x18, 0x63, 0x00, 0xef, 0x3d, 0x84, 0x00, + 0x00, 0x09, 0x81, 0x1c, 0x02, 0x72, 0xe2, 0x71, 0x01, 0x6e, 0xe2, 0x6d, + 0x01, 0x6e, 0xe2, 0x6d, 0x02, 0x72, 0xe1, 0x69, 0x20, 0x08, 0xb0, 0x00, + 0x00, 0xa7, 0x00, 0x00, 0x01, 0x63, 0x0c, 0xf6, 0x5e, 0x89, 0xff, 0x7f, + 0x01, 0xbd, 0x77, 0x8c, 0x31, 0x89, 0x00, 0x00, 0x01, 0xc6, 0x18, 0x9c, + 0x73, 0x87, 0xff, 0x7f, 0x01, 0x52, 0x4a, 0xce, 0x39, 0x87, 0xff, 0x7f, + 0x02, 0xad, 0x35, 0x00, 0x00, 0x10, 0x42, 0x90, 0xff, 0x7f, 0x03, 0x9c, + 0x73, 0x00, 0x00, 0x63, 0x08, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x01, 0x9c, + 0x73, 0x21, 0x04, 0x83, 0x00, 0x00, 0x08, 0xe1, 0x30, 0x21, 0x76, 0xe2, + 0x6d, 0x02, 0x6e, 0x02, 0x72, 0xe2, 0x6d, 0x01, 0x6e, 0x02, 0x72, 0x81, + 0x55, 0xb1, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x01, 0x83, 0x0c, 0x5a, 0x6b, + 0x8c, 0xff, 0x7f, 0x00, 0xef, 0x3d, 0x87, 0x00, 0x00, 0x01, 0x83, 0x10, + 0x7c, 0x6f, 0x89, 0xff, 0x7f, 0x00, 0x9c, 0x73, 0x87, 0xff, 0x7f, 0x02, + 0xad, 0x35, 0x00, 0x00, 0x10, 0x42, 0x90, 0xff, 0x7f, 0x03, 0x7b, 0x6b, + 0x00, 0x04, 0x00, 0x00, 0x73, 0x4e, 0x87, 0xff, 0x7f, 0x00, 0x6b, 0x2d, + 0x83, 0x00, 0x00, 0x08, 0x61, 0x4d, 0x02, 0x76, 0x01, 0x6e, 0xe2, 0x6d, + 0x01, 0x6e, 0xe2, 0x6d, 0x01, 0x72, 0x02, 0x76, 0x01, 0x3d, 0xb1, 0x00, + 0x00, 0xa6, 0x00, 0x00, 0x00, 0xf8, 0x62, 0x8e, 0xff, 0x7f, 0x00, 0x6b, + 0x2d, 0x86, 0x00, 0x00, 0x00, 0xd6, 0x5a, 0x93, 0xff, 0x7f, 0x02, 0xad, + 0x35, 0x00, 0x00, 0xef, 0x3d, 0x90, 0xff, 0x7f, 0x03, 0x7b, 0x6f, 0x21, + 0x04, 0x00, 0x00, 0x08, 0x21, 0x87, 0xff, 0x7f, 0x00, 0xd6, 0x5a, 0x82, + 0x00, 0x00, 0x05, 0x20, 0x08, 0xe2, 0x65, 0x02, 0x72, 0xe1, 0x6d, 0x02, + 0x72, 0xe1, 0x6d, 0x81, 0x02, 0x6e, 0x01, 0x02, 0x72, 0xa0, 0x20, 0xb1, + 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xce, 0x39, 0x8f, 0xff, 0x7f, 0x01, + 0x9c, 0x73, 0x63, 0x0c, 0x84, 0x00, 0x00, 0x00, 0x29, 0x25, 0x94, 0xff, + 0x7f, 0x02, 0xad, 0x35, 0x00, 0x00, 0x10, 0x42, 0x90, 0xff, 0x7f, 0x04, + 0x5a, 0x6f, 0x21, 0x00, 0x00, 0x00, 0x00, 0x04, 0x5a, 0x6b, 0x86, 0xff, + 0x7f, 0x01, 0xde, 0x7b, 0x84, 0x10, 0x81, 0x00, 0x00, 0x09, 0xa1, 0x24, + 0x01, 0x72, 0x02, 0x6e, 0xe2, 0x6d, 0x01, 0x6e, 0x02, 0x6e, 0xe2, 0x71, + 0x01, 0x72, 0xe2, 0x69, 0x20, 0x08, 0xb1, 0x00, 0x00, 0xa4, 0x00, 0x00, + 0x01, 0x21, 0x04, 0x9c, 0x73, 0x86, 0xff, 0x7f, 0x01, 0x5a, 0x6f, 0xbd, + 0x77, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x00, 0xb5, + 0x56, 0x87, 0xff, 0x7f, 0x03, 0x9c, 0x73, 0x52, 0x4a, 0x30, 0x42, 0x39, + 0x67, 0x88, 0xff, 0x7f, 0x02, 0xad, 0x35, 0x00, 0x00, 0x10, 0x42, 0x90, + 0xff, 0x7f, 0x01, 0x7b, 0x6f, 0x21, 0x04, 0x81, 0x00, 0x00, 0x00, 0xce, + 0x39, 0x87, 0xff, 0x7f, 0x00, 0x10, 0x42, 0x81, 0x00, 0x00, 0x08, 0x41, + 0x45, 0x22, 0x76, 0xe1, 0x71, 0x02, 0x6e, 0xe2, 0x71, 0x01, 0x6e, 0xe2, + 0x6d, 0x02, 0x72, 0x61, 0x4d, 0xb2, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x4a, 0x29, 0x85, 0xff, 0x7f, 0x04, 0xbd, 0x77, 0x4a, 0x29, 0x21, 0x00, + 0xa5, 0x14, 0x7b, 0x6f, 0x86, 0xff, 0x7f, 0x00, 0xf7, 0x5e, 0x83, 0x00, + 0x00, 0x01, 0x84, 0x10, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x01, 0xbd, 0x77, + 0xc6, 0x18, 0x81, 0x00, 0x00, 0x01, 0x01, 0x04, 0xb5, 0x56, 0x87, 0xff, + 0x7f, 0x02, 0xad, 0x35, 0x00, 0x00, 0xef, 0x3d, 0x82, 0xde, 0x7b, 0x89, + 0xff, 0x7f, 0x83, 0xde, 0x7b, 0x01, 0x5a, 0x6b, 0x21, 0x04, 0x81, 0x00, + 0x00, 0x01, 0x63, 0x0c, 0xde, 0x77, 0x86, 0xff, 0x7f, 0x0b, 0x7b, 0x6f, + 0x21, 0x04, 0x00, 0x00, 0xa1, 0x5d, 0x02, 0x72, 0x02, 0x6e, 0xe1, 0x6d, + 0x02, 0x6e, 0xe2, 0x6d, 0x01, 0x6e, 0x02, 0x76, 0xe1, 0x30, 0xb2, 0x00, + 0x00, 0xa4, 0x00, 0x00, 0x00, 0x52, 0x4a, 0x85, 0xff, 0x7f, 0x00, 0xad, + 0x35, 0x82, 0x00, 0x00, 0x00, 0x8c, 0x31, 0x86, 0xff, 0x7f, 0x01, 0xde, + 0x7b, 0x42, 0x08, 0x82, 0x00, 0x00, 0x00, 0x6b, 0x2d, 0x87, 0xff, 0x7f, + 0x00, 0x73, 0x4e, 0x83, 0x00, 0x00, 0x00, 0x8c, 0x31, 0x87, 0xff, 0x7f, + 0x03, 0xad, 0x35, 0x00, 0x00, 0x42, 0x08, 0xc6, 0x18, 0x81, 0xa5, 0x14, + 0x01, 0x08, 0x21, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0x18, 0x63, 0x84, + 0xa5, 0x14, 0x83, 0x00, 0x00, 0x00, 0xb5, 0x56, 0x87, 0xff, 0x7f, 0x0a, + 0x29, 0x21, 0x40, 0x14, 0x02, 0x72, 0x01, 0x72, 0xe2, 0x6d, 0x02, 0x6e, + 0xe1, 0x71, 0x02, 0x6e, 0x02, 0x72, 0xe1, 0x6d, 0x60, 0x10, 0xb2, 0x00, + 0x00, 0xa4, 0x00, 0x00, 0x00, 0x18, 0x63, 0x84, 0xff, 0x7f, 0x01, 0x9c, + 0x73, 0x21, 0x04, 0x82, 0x00, 0x00, 0x01, 0x63, 0x0c, 0xdf, 0x7b, 0x86, + 0xff, 0x7f, 0x00, 0xc6, 0x18, 0x82, 0x00, 0x00, 0x00, 0x52, 0x4a, 0x87, + 0xff, 0x7f, 0x00, 0x8c, 0x31, 0x83, 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, + 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, 0x63, 0x0c, 0xde, + 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xd6, 0x5a, 0x88, 0x00, 0x00, 0x00, 0x4a, + 0x29, 0x87, 0xff, 0x7f, 0x09, 0x95, 0x4e, 0x00, 0x3d, 0x02, 0x76, 0x02, + 0x6e, 0xe1, 0x6d, 0x02, 0x6e, 0xe2, 0x6d, 0x01, 0x6e, 0x02, 0x72, 0x81, + 0x55, 0xb3, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x06, 0x8c, 0x31, 0x31, 0x46, + 0x94, 0x52, 0xf7, 0x5e, 0x5a, 0x6b, 0xbd, 0x77, 0xb5, 0x56, 0x83, 0x00, + 0x00, 0x01, 0x21, 0x04, 0x9b, 0x73, 0x86, 0xff, 0x7f, 0x00, 0xe7, 0x1c, + 0x81, 0x00, 0x00, 0x01, 0x20, 0x04, 0x39, 0x67, 0x87, 0xff, 0x7f, 0x00, + 0xe7, 0x1c, 0x83, 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, + 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, 0x84, 0x10, 0xde, 0x7b, 0x86, 0xff, + 0x7f, 0x00, 0xf7, 0x5e, 0x88, 0x00, 0x00, 0x01, 0x21, 0x04, 0x7b, 0x6f, + 0x86, 0xff, 0x7f, 0x09, 0xdd, 0x7b, 0xe3, 0x69, 0x01, 0x6e, 0xe2, 0x71, + 0x01, 0x6e, 0xe2, 0x71, 0x01, 0x6e, 0xe2, 0x71, 0x02, 0x76, 0xe1, 0x2c, + 0xb3, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x81, 0x42, 0x08, 0x83, 0x00, 0x00, + 0x01, 0x01, 0x04, 0x5a, 0x67, 0x86, 0xff, 0x7f, 0x00, 0xe7, 0x1c, 0x81, + 0x00, 0x00, 0x01, 0x43, 0x08, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x01, 0xde, + 0x7b, 0x63, 0x0c, 0x83, 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, + 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, 0x63, 0x0c, 0xde, 0x7b, 0x86, + 0xff, 0x7f, 0x00, 0xd6, 0x5a, 0x89, 0x00, 0x00, 0x00, 0x31, 0x46, 0x86, + 0xff, 0x7f, 0x09, 0x55, 0x7b, 0xe1, 0x71, 0x01, 0x6e, 0xe2, 0x6d, 0x02, + 0x6e, 0xe1, 0x6d, 0x02, 0x6e, 0x02, 0x72, 0xe1, 0x69, 0x40, 0x10, 0xb3, + 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x59, 0x6b, 0x85, 0xff, 0x7f, 0x01, + 0xdf, 0x7b, 0xa5, 0x14, 0x81, 0x00, 0x00, 0x00, 0xc6, 0x18, 0x87, 0xff, + 0x7f, 0x01, 0xbd, 0x77, 0x42, 0x08, 0x83, 0x00, 0x00, 0x00, 0xad, 0x35, + 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, 0x84, 0x10, + 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xd6, 0x5a, 0x89, 0x00, 0x00, 0x00, + 0xc6, 0x18, 0x86, 0xff, 0x7f, 0x08, 0x8b, 0x76, 0xe0, 0x6d, 0xe2, 0x6d, + 0x01, 0x6e, 0xe2, 0x71, 0x02, 0x6e, 0xe1, 0x6d, 0x22, 0x76, 0x61, 0x4d, + 0xb4, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x01, 0x21, 0x04, 0x7c, 0x6f, 0x85, + 0xff, 0x7f, 0x01, 0xde, 0x7b, 0x62, 0x0c, 0x81, 0x00, 0x00, 0x00, 0x29, + 0x25, 0x87, 0xff, 0x7f, 0x01, 0x7b, 0x6f, 0x21, 0x04, 0x83, 0x00, 0x00, + 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, + 0x01, 0x63, 0x0c, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xf7, 0x5e, 0x8a, + 0x00, 0x00, 0x00, 0x18, 0x63, 0x84, 0xff, 0x7f, 0x02, 0xbb, 0x7f, 0x03, + 0x6e, 0xe1, 0x6d, 0x81, 0x02, 0x6e, 0x01, 0xe1, 0x6d, 0x02, 0x6e, 0x81, + 0x02, 0x72, 0x00, 0x80, 0x20, 0xb4, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, + 0xc6, 0x18, 0x86, 0xff, 0x7f, 0x00, 0x39, 0x67, 0x82, 0x00, 0x00, 0x00, + 0x8c, 0x31, 0x87, 0xff, 0x7f, 0x01, 0x7b, 0x6f, 0x21, 0x04, 0x83, 0x00, + 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, + 0x00, 0x01, 0x84, 0x10, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xd6, 0x5a, + 0x8a, 0x00, 0x00, 0x00, 0xad, 0x35, 0x84, 0xff, 0x7f, 0x08, 0xcf, 0x76, + 0xe0, 0x6d, 0x01, 0x6e, 0xe2, 0x71, 0x01, 0x6e, 0xe2, 0x71, 0x01, 0x6e, + 0x02, 0x72, 0xa1, 0x59, 0xb5, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0xd6, + 0x5a, 0x86, 0xff, 0x7f, 0x00, 0x10, 0x42, 0x82, 0x00, 0x00, 0x00, 0xce, + 0x39, 0x87, 0xff, 0x7f, 0x00, 0x5a, 0x6b, 0x84, 0x00, 0x00, 0x00, 0xad, + 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, 0x63, + 0x0c, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xf7, 0x5e, 0x8a, 0x00, 0x00, + 0x01, 0x63, 0x0c, 0xbd, 0x77, 0x82, 0xff, 0x7f, 0x09, 0xdc, 0x7f, 0x24, + 0x6e, 0xe1, 0x6d, 0x01, 0x6e, 0xe2, 0x6d, 0x02, 0x6e, 0xe1, 0x6d, 0x02, + 0x6e, 0x02, 0x76, 0xe1, 0x34, 0xb5, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x04, + 0x21, 0x04, 0x22, 0x08, 0x63, 0x0c, 0x29, 0x25, 0xd6, 0x5a, 0x86, 0xff, + 0x7f, 0x01, 0xde, 0x7b, 0xa5, 0x14, 0x82, 0x00, 0x00, 0x00, 0x10, 0x42, + 0x87, 0xff, 0x7f, 0x00, 0x39, 0x67, 0x84, 0x00, 0x00, 0x00, 0xad, 0x35, + 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, 0x84, 0x10, + 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xd6, 0x5a, 0x8b, 0x00, 0x00, 0x00, + 0xb5, 0x56, 0x82, 0xff, 0x7f, 0x04, 0x13, 0x77, 0xe0, 0x6d, 0xe1, 0x71, + 0x02, 0x6e, 0xe1, 0x71, 0x81, 0x02, 0x6e, 0x02, 0x01, 0x72, 0xe2, 0x69, + 0x40, 0x0c, 0xb5, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x03, 0x84, 0x10, 0x5a, + 0x6b, 0x9c, 0x73, 0xde, 0x7b, 0x88, 0xff, 0x7f, 0x00, 0xef, 0x3d, 0x83, + 0x00, 0x00, 0x00, 0x10, 0x42, 0x87, 0xff, 0x7f, 0x00, 0x18, 0x63, 0x84, + 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, + 0x00, 0x00, 0x01, 0x63, 0x0c, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xd6, + 0x5a, 0x8b, 0x00, 0x00, 0x00, 0x4a, 0x29, 0x81, 0xff, 0x7f, 0x09, 0xde, + 0x7f, 0x46, 0x72, 0xe0, 0x6d, 0x02, 0x6e, 0xe2, 0x6d, 0x02, 0x6e, 0xe1, + 0x6d, 0xe2, 0x71, 0x22, 0x76, 0x21, 0x41, 0xb6, 0x00, 0x00, 0xa9, 0x00, + 0x00, 0x00, 0xa5, 0x14, 0x89, 0xff, 0x7f, 0x01, 0x9c, 0x73, 0xce, 0x39, + 0x84, 0x00, 0x00, 0x00, 0x52, 0x4a, 0x87, 0xff, 0x7f, 0x00, 0x39, 0x67, + 0x84, 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, + 0x84, 0x00, 0x00, 0x01, 0x84, 0x10, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, + 0xf7, 0x5e, 0x8c, 0x00, 0x00, 0x0b, 0x5a, 0x6b, 0xff, 0x7f, 0x54, 0x7b, + 0xe0, 0x6d, 0xe2, 0x6d, 0x01, 0x72, 0x02, 0x6e, 0xe1, 0x71, 0x02, 0x6e, + 0x01, 0x6e, 0xe2, 0x6d, 0x60, 0x14, 0xb6, 0x00, 0x00, 0xa9, 0x00, 0x00, + 0x00, 0x84, 0x10, 0x88, 0xff, 0x7f, 0x01, 0xbd, 0x7b, 0xce, 0x35, 0x85, + 0x00, 0x00, 0x00, 0x73, 0x4e, 0x87, 0xff, 0x7f, 0x00, 0x18, 0x63, 0x84, + 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, + 0x00, 0x00, 0x01, 0x63, 0x0c, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xd6, + 0x5a, 0x8c, 0x00, 0x00, 0x0a, 0xef, 0x39, 0xff, 0x7f, 0x47, 0x72, 0xe0, + 0x6d, 0x02, 0x6e, 0xe2, 0x6d, 0x01, 0x6e, 0xe2, 0x6d, 0x02, 0x6e, 0x02, + 0x76, 0x61, 0x4d, 0xb7, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x01, 0xa5, 0x14, + 0xde, 0x7b, 0x88, 0xff, 0x7f, 0x02, 0xde, 0x7f, 0x18, 0x63, 0xc6, 0x18, + 0x83, 0x00, 0x00, 0x00, 0x73, 0x4e, 0x87, 0xff, 0x7f, 0x00, 0x39, 0x67, + 0x84, 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, + 0x84, 0x00, 0x00, 0x01, 0x84, 0x10, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, + 0xf7, 0x5e, 0x8c, 0x00, 0x00, 0x0a, 0xa6, 0x14, 0x34, 0x77, 0xe1, 0x71, + 0x01, 0x6e, 0xe2, 0x6d, 0x01, 0x72, 0xe2, 0x6d, 0x01, 0x6e, 0x02, 0x72, + 0xe1, 0x6d, 0x60, 0x18, 0xb7, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x01, 0x84, + 0x10, 0xde, 0x7b, 0x8a, 0xff, 0x7f, 0x01, 0xbd, 0x77, 0xc6, 0x18, 0x82, + 0x00, 0x00, 0x00, 0x73, 0x4e, 0x87, 0xff, 0x7f, 0x00, 0x18, 0x63, 0x84, + 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, + 0x00, 0x00, 0x01, 0x63, 0x0c, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xd6, + 0x5a, 0x8c, 0x00, 0x00, 0x04, 0x21, 0x00, 0xe3, 0x61, 0x01, 0x72, 0x02, + 0x6e, 0xe2, 0x6d, 0x81, 0x02, 0x6e, 0x03, 0xe1, 0x71, 0xe1, 0x6d, 0x89, + 0x76, 0x29, 0x21, 0xb7, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xa5, 0x14, + 0x8c, 0xff, 0x7f, 0x01, 0x39, 0x67, 0x21, 0x04, 0x81, 0x00, 0x00, 0x00, + 0x31, 0x4a, 0x87, 0xff, 0x7f, 0x00, 0x39, 0x67, 0x84, 0x00, 0x00, 0x00, + 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, + 0x84, 0x10, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xd6, 0x5a, 0x8c, 0x00, + 0x00, 0x0a, 0xa0, 0x24, 0x01, 0x72, 0xe2, 0x71, 0x01, 0x6e, 0xe2, 0x6d, + 0x01, 0x72, 0xe2, 0x6d, 0x01, 0x6e, 0xe1, 0x6d, 0xb8, 0x7f, 0x95, 0x52, + 0xb7, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x05, 0x21, 0x04, 0x6b, 0x2d, 0x8c, + 0x31, 0xce, 0x39, 0x73, 0x4e, 0xbd, 0x77, 0x88, 0xff, 0x7f, 0x00, 0x4a, + 0x29, 0x81, 0x00, 0x00, 0x00, 0x31, 0x42, 0x87, 0xff, 0x7f, 0x00, 0x18, + 0x63, 0x84, 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, + 0x35, 0x84, 0x00, 0x00, 0x01, 0x63, 0x0c, 0xde, 0x7b, 0x86, 0xff, 0x7f, + 0x00, 0xf7, 0x5e, 0x8b, 0x00, 0x00, 0x0c, 0x20, 0x04, 0xa2, 0x61, 0x02, + 0x72, 0x02, 0x6e, 0xe1, 0x6d, 0x02, 0x72, 0xe1, 0x6d, 0x02, 0x6e, 0xe0, + 0x6d, 0x8a, 0x72, 0xff, 0x7f, 0xbd, 0x77, 0x42, 0x08, 0xb6, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x01, 0xa5, 0x14, 0x39, 0x67, 0x87, 0xff, 0x7f, 0x00, + 0xb5, 0x56, 0x81, 0x00, 0x00, 0x00, 0x10, 0x42, 0x87, 0xff, 0x7f, 0x01, + 0x39, 0x67, 0x21, 0x04, 0x83, 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, + 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, 0x84, 0x10, 0xde, 0x7b, + 0x86, 0xff, 0x7f, 0x00, 0xd6, 0x5a, 0x8b, 0x00, 0x00, 0x04, 0x01, 0x39, + 0x21, 0x76, 0xe2, 0x6d, 0x01, 0x72, 0xe2, 0x6d, 0x81, 0x02, 0x6e, 0x02, + 0xe1, 0x71, 0xe1, 0x6d, 0x78, 0x7b, 0x81, 0xff, 0x7f, 0x00, 0xad, 0x35, + 0xb6, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x08, 0x21, 0x87, 0xff, 0x7f, + 0x03, 0x7b, 0x6f, 0x21, 0x04, 0x00, 0x00, 0xce, 0x39, 0x87, 0xff, 0x7f, + 0x00, 0x5a, 0x6b, 0x84, 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, + 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, 0x63, 0x0c, 0xde, 0x7b, 0x86, + 0xff, 0x7f, 0x00, 0xf7, 0x5e, 0x8a, 0x00, 0x00, 0x09, 0x40, 0x0c, 0xc2, + 0x65, 0x01, 0x72, 0x02, 0x6e, 0xe2, 0x6d, 0x01, 0x6e, 0xe2, 0x6d, 0x01, + 0x6e, 0xe0, 0x6d, 0xac, 0x76, 0x82, 0xff, 0x7f, 0x00, 0x18, 0x63, 0xb6, + 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x7b, 0x6f, 0x86, 0xff, 0x7f, 0x03, + 0xde, 0x7b, 0x63, 0x0c, 0x00, 0x00, 0x8c, 0x35, 0x87, 0xff, 0x7f, 0x01, + 0x7b, 0x6f, 0x21, 0x04, 0x83, 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, + 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, 0x84, 0x10, 0xde, 0x7b, + 0x86, 0xff, 0x7f, 0x00, 0xd6, 0x5a, 0x8a, 0x00, 0x00, 0x09, 0x21, 0x45, + 0x22, 0x76, 0xe2, 0x6d, 0x01, 0x72, 0xe2, 0x6d, 0x01, 0x72, 0xe2, 0x6d, + 0xe1, 0x6d, 0x03, 0x72, 0xbb, 0x7b, 0x82, 0xff, 0x7f, 0x01, 0xde, 0x7b, + 0xa5, 0x14, 0xb5, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0xd6, 0x5a, 0x87, + 0xff, 0x7f, 0x02, 0xc6, 0x18, 0x00, 0x00, 0x4a, 0x29, 0x87, 0xff, 0x7f, + 0x01, 0x7b, 0x6f, 0x21, 0x04, 0x83, 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, + 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, 0x63, 0x0c, 0xde, + 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xd6, 0x5a, 0x89, 0x00, 0x00, 0x09, 0x80, + 0x18, 0x02, 0x72, 0x01, 0x6e, 0xe2, 0x6d, 0x02, 0x6e, 0x01, 0x6e, 0xe2, + 0x6d, 0x02, 0x6e, 0xe0, 0x6d, 0xef, 0x76, 0x84, 0xff, 0x7f, 0x00, 0x31, + 0x46, 0xb5, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x81, 0x21, 0x04, 0x84, 0x00, + 0x00, 0x00, 0xd6, 0x5a, 0x87, 0xff, 0x7f, 0x02, 0xe7, 0x1c, 0x00, 0x00, + 0x08, 0x1d, 0x87, 0xff, 0x7f, 0x01, 0xbd, 0x77, 0x21, 0x04, 0x83, 0x00, + 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, + 0x00, 0x01, 0x84, 0x10, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xf7, 0x5e, + 0x88, 0x00, 0x00, 0x0a, 0x00, 0x04, 0x81, 0x55, 0x02, 0x76, 0x02, 0x6e, + 0xe1, 0x71, 0x02, 0x6e, 0xe2, 0x71, 0x01, 0x6e, 0xe1, 0x6d, 0x25, 0x72, + 0xdd, 0x7f, 0x84, 0xff, 0x7f, 0x01, 0x7b, 0x6f, 0x21, 0x04, 0xb4, 0x00, + 0x00, 0xa3, 0x00, 0x00, 0x07, 0xa5, 0x14, 0xef, 0x3d, 0x31, 0x46, 0x94, + 0x52, 0xd6, 0x5a, 0x18, 0x63, 0x5a, 0x6b, 0x10, 0x42, 0x84, 0x00, 0x00, + 0x00, 0xd6, 0x5a, 0x87, 0xff, 0x7f, 0x03, 0xe7, 0x1c, 0x00, 0x00, 0x84, + 0x10, 0xde, 0x7f, 0x86, 0xff, 0x7f, 0x01, 0xde, 0x7b, 0x84, 0x10, 0x83, + 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, + 0x00, 0x00, 0x01, 0x63, 0x0c, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xd6, + 0x5a, 0x88, 0x00, 0x00, 0x09, 0xe1, 0x2c, 0x02, 0x76, 0x01, 0x6e, 0xe2, + 0x6d, 0x02, 0x6e, 0xe1, 0x6d, 0x02, 0x6e, 0xe1, 0x6d, 0xe1, 0x71, 0x33, + 0x7b, 0x86, 0xff, 0x7f, 0x00, 0x2a, 0x25, 0xb4, 0x00, 0x00, 0xa3, 0x00, + 0x00, 0x00, 0x8c, 0x31, 0x85, 0xff, 0x7f, 0x00, 0x94, 0x52, 0x84, 0x00, + 0x00, 0x00, 0x39, 0x67, 0x86, 0xff, 0x7f, 0x04, 0xde, 0x7b, 0x84, 0x10, + 0x00, 0x00, 0x21, 0x04, 0x9c, 0x73, 0x87, 0xff, 0x7f, 0x00, 0xe7, 0x1c, + 0x83, 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, + 0x84, 0x00, 0x00, 0x01, 0x84, 0x10, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, + 0xf7, 0x5e, 0x87, 0x00, 0x00, 0x01, 0x40, 0x0c, 0xc1, 0x65, 0x81, 0x02, + 0x72, 0x06, 0xe1, 0x6d, 0x02, 0x72, 0x02, 0x6e, 0xe1, 0x71, 0x01, 0x72, + 0x26, 0x66, 0xff, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xd6, 0x5a, 0xb4, 0x00, + 0x00, 0xa3, 0x00, 0x00, 0x00, 0xe7, 0x1c, 0x85, 0xff, 0x7f, 0x00, 0x18, + 0x63, 0x83, 0x00, 0x00, 0x01, 0x42, 0x08, 0x9c, 0x73, 0x86, 0xff, 0x7f, + 0x00, 0x5a, 0x6b, 0x82, 0x00, 0x00, 0x00, 0xb5, 0x56, 0x87, 0xff, 0x7f, + 0x00, 0xad, 0x35, 0x83, 0x00, 0x00, 0x00, 0x8c, 0x31, 0x87, 0xff, 0x7f, + 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, 0x63, 0x0c, 0xde, 0x7b, 0x86, + 0xff, 0x7f, 0x00, 0xd6, 0x5a, 0x87, 0x00, 0x00, 0x02, 0x61, 0x51, 0x22, + 0x76, 0xe1, 0x6d, 0x81, 0x02, 0x6e, 0x05, 0xe1, 0x6d, 0x02, 0x6e, 0x02, + 0x72, 0xc1, 0x69, 0x82, 0x18, 0x5b, 0x6b, 0x86, 0xff, 0x7f, 0x01, 0xde, + 0x7b, 0xa4, 0x14, 0xb3, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x01, 0x42, 0x08, + 0xbd, 0x77, 0x84, 0xff, 0x7f, 0x01, 0xde, 0x7b, 0xc6, 0x18, 0x82, 0x00, + 0x00, 0x00, 0x6b, 0x2d, 0x87, 0xff, 0x7f, 0x00, 0x52, 0x4a, 0x82, 0x00, + 0x00, 0x00, 0xef, 0x39, 0x87, 0xff, 0x7f, 0x00, 0xf7, 0x5e, 0x83, 0x00, + 0x00, 0x00, 0x10, 0x42, 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, + 0x00, 0x01, 0x84, 0x10, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xd6, 0x5a, + 0x86, 0x00, 0x00, 0x0b, 0xc1, 0x2c, 0x22, 0x72, 0x02, 0x6e, 0xe2, 0x71, + 0x01, 0x6e, 0xe2, 0x71, 0x02, 0x6e, 0xe1, 0x6d, 0x02, 0x76, 0x01, 0x35, + 0x00, 0x00, 0x31, 0x46, 0x87, 0xff, 0x7f, 0x00, 0xef, 0x39, 0xb3, 0x00, + 0x00, 0xa4, 0x00, 0x00, 0x00, 0xb5, 0x56, 0x85, 0xff, 0x7f, 0x04, 0x39, + 0x67, 0xe7, 0x1c, 0x42, 0x08, 0xe7, 0x1c, 0x7b, 0x6f, 0x87, 0xff, 0x7f, + 0x00, 0x08, 0x21, 0x82, 0x00, 0x00, 0x00, 0xe7, 0x20, 0x88, 0xff, 0x7f, + 0x04, 0x52, 0x4a, 0x08, 0x21, 0x29, 0x25, 0x31, 0x46, 0xde, 0x7b, 0x87, + 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, 0x63, 0x0c, 0xde, + 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xf7, 0x5e, 0x85, 0x00, 0x00, 0x0c, 0x40, + 0x10, 0xe1, 0x69, 0x02, 0x72, 0xe1, 0x6d, 0x02, 0x6e, 0xe1, 0x6d, 0x02, + 0x6e, 0xe1, 0x6d, 0x22, 0x76, 0xa1, 0x59, 0x00, 0x04, 0x00, 0x00, 0xa5, + 0x14, 0x87, 0xff, 0x7f, 0x01, 0x5a, 0x6b, 0x00, 0x04, 0xb2, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x6b, 0x2d, 0x87, 0xff, 0x7f, 0x00, 0xbd, 0x77, + 0x88, 0xff, 0x7f, 0x00, 0x38, 0x63, 0x83, 0x00, 0x00, 0x01, 0x21, 0x04, + 0x7b, 0x6f, 0x94, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x01, + 0x84, 0x10, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xd6, 0x5a, 0x85, 0x00, + 0x00, 0x09, 0x61, 0x4d, 0x22, 0x76, 0xe1, 0x6d, 0x02, 0x6e, 0x02, 0x72, + 0xe1, 0x6d, 0x02, 0x72, 0x02, 0x6e, 0xe2, 0x71, 0x80, 0x1c, 0x82, 0x00, + 0x00, 0x00, 0x18, 0x63, 0x87, 0xff, 0x7f, 0x00, 0x08, 0x21, 0xb2, 0x00, + 0x00, 0xa5, 0x00, 0x00, 0x00, 0x39, 0x67, 0x90, 0xff, 0x7f, 0x00, 0x08, + 0x21, 0x84, 0x00, 0x00, 0x00, 0xef, 0x3d, 0x94, 0xff, 0x7f, 0x00, 0xad, + 0x35, 0x84, 0x00, 0x00, 0x01, 0x63, 0x0c, 0xde, 0x7b, 0x86, 0xff, 0x7f, + 0x00, 0xf7, 0x5e, 0x84, 0x00, 0x00, 0x09, 0xe1, 0x2c, 0x02, 0x76, 0x01, + 0x6e, 0x02, 0x6e, 0xe1, 0x6d, 0x02, 0x6e, 0xe2, 0x6d, 0x01, 0x6e, 0x02, + 0x76, 0x21, 0x41, 0x83, 0x00, 0x00, 0x00, 0xad, 0x35, 0x87, 0xff, 0x7f, + 0x00, 0x52, 0x4a, 0x82, 0x00, 0x00, 0x00, 0x21, 0x04, 0xae, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x01, 0xe7, 0x1c, 0xde, 0x7b, 0x8e, 0xff, 0x7f, 0x00, + 0x31, 0x46, 0x85, 0x00, 0x00, 0x01, 0x63, 0x08, 0x9c, 0x77, 0x8a, 0xff, + 0x7f, 0x01, 0x5a, 0x6b, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xad, 0x35, + 0x84, 0x00, 0x00, 0x01, 0x84, 0x10, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, + 0xd6, 0x5a, 0x83, 0x00, 0x00, 0x0a, 0x60, 0x14, 0xe1, 0x6d, 0x02, 0x72, + 0xe2, 0x6d, 0x02, 0x72, 0xe2, 0x6d, 0x01, 0x72, 0xe2, 0x6d, 0x22, 0x76, + 0xa1, 0x5d, 0x20, 0x04, 0x83, 0x00, 0x00, 0x01, 0x63, 0x08, 0xbd, 0x77, + 0x86, 0xff, 0x7f, 0x07, 0xbd, 0x77, 0x43, 0x08, 0x00, 0x00, 0xe7, 0x1c, + 0x52, 0x4a, 0xad, 0x35, 0x11, 0x42, 0xee, 0x3d, 0xab, 0x00, 0x00, 0xa6, + 0x00, 0x00, 0x00, 0x8c, 0x31, 0x8d, 0xff, 0x7f, 0x00, 0x73, 0x4e, 0x87, + 0x00, 0x00, 0x00, 0x4a, 0x25, 0x89, 0xff, 0x7f, 0x02, 0x5a, 0x6b, 0xa5, + 0x14, 0x9c, 0x73, 0x86, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, + 0x01, 0x63, 0x0c, 0xde, 0x7b, 0x86, 0xff, 0x7f, 0x00, 0xd6, 0x5a, 0x82, + 0x00, 0x00, 0x0a, 0x20, 0x08, 0xa1, 0x59, 0x02, 0x76, 0x01, 0x6e, 0xe2, + 0x6d, 0x01, 0x6e, 0xe2, 0x6d, 0x01, 0x6e, 0x02, 0x72, 0xe1, 0x6d, 0x81, + 0x1c, 0x85, 0x00, 0x00, 0x00, 0x94, 0x52, 0x87, 0xff, 0x7f, 0x06, 0x8c, + 0x31, 0x00, 0x00, 0x83, 0x0c, 0x32, 0x4a, 0xce, 0x39, 0xbd, 0x77, 0xb5, + 0x56, 0xab, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x01, 0x4a, 0x29, 0xbd, 0x77, + 0x89, 0xff, 0x7f, 0x01, 0xde, 0x7b, 0xef, 0x3d, 0x89, 0x00, 0x00, 0x00, + 0xad, 0x35, 0x87, 0xff, 0x7f, 0x02, 0x39, 0x67, 0x84, 0x10, 0x00, 0x00, + 0x87, 0xff, 0x7f, 0x00, 0xad, 0x35, 0x84, 0x00, 0x00, 0x00, 0x84, 0x10, + 0x87, 0xff, 0x7f, 0x00, 0x18, 0x63, 0x82, 0x00, 0x00, 0x09, 0x61, 0x4d, + 0x22, 0x7e, 0x22, 0x76, 0x02, 0x76, 0x22, 0x76, 0x02, 0x76, 0x22, 0x76, + 0x02, 0x76, 0x22, 0x7a, 0x01, 0x35, 0x86, 0x00, 0x00, 0x00, 0x29, 0x25, + 0x87, 0xff, 0x7f, 0x06, 0x38, 0x67, 0x00, 0x00, 0x63, 0x0c, 0x31, 0x46, + 0x6b, 0x2d, 0x39, 0x67, 0x94, 0x52, 0xab, 0x00, 0x00, 0xa8, 0x00, 0x00, + 0x02, 0x84, 0x10, 0x52, 0x4a, 0x9c, 0x73, 0x85, 0xff, 0x7f, 0x02, 0xbd, + 0x77, 0x94, 0x52, 0xe7, 0x1c, 0x8b, 0x00, 0x00, 0x02, 0x08, 0x25, 0xf7, + 0x5e, 0xde, 0x7b, 0x81, 0xff, 0x7f, 0x05, 0xde, 0x7b, 0x7b, 0x6f, 0xef, + 0x3d, 0x42, 0x08, 0x00, 0x00, 0x21, 0x04, 0x81, 0x31, 0x46, 0x00, 0x52, + 0x4a, 0x81, 0x31, 0x46, 0x03, 0x52, 0x4a, 0x31, 0x46, 0x52, 0x4a, 0xe7, + 0x1c, 0x84, 0x00, 0x00, 0x00, 0x42, 0x08, 0x83, 0x31, 0x46, 0x04, 0x32, + 0x4a, 0x51, 0x46, 0x31, 0x46, 0x52, 0x4a, 0x8c, 0x31, 0x81, 0x00, 0x00, + 0x01, 0x40, 0x0c, 0x21, 0x41, 0x81, 0x21, 0x3d, 0x06, 0x20, 0x3d, 0x01, + 0x3d, 0x21, 0x3d, 0x20, 0x3d, 0x21, 0x41, 0x01, 0x35, 0x00, 0x04, 0x86, + 0x00, 0x00, 0x03, 0x21, 0x04, 0x10, 0x42, 0x31, 0x46, 0x52, 0x4a, 0x84, + 0x73, 0x4e, 0x06, 0x52, 0x4a, 0x42, 0x08, 0x21, 0x04, 0x4a, 0x29, 0xc6, + 0x18, 0x4a, 0x29, 0x6b, 0x2d, 0xab, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x02, + 0x63, 0x0c, 0x29, 0x25, 0xad, 0x35, 0x81, 0xef, 0x3d, 0x02, 0xad, 0x35, + 0x29, 0x25, 0x63, 0x0c, 0x8f, 0x00, 0x00, 0x04, 0x84, 0x0c, 0xe7, 0x1c, + 0x08, 0x21, 0xa5, 0x14, 0x21, 0x04, 0xeb, 0x00, 0x00, 0xff, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0xff, 0x00, 0x00, 0xb3, 0x00, 0x00, 0xff, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0xff, 0x00, 0x00, 0xb3, 0x00, 0x00, 0xff, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0xff, 0x00, 0x00, 0xb3, 0x00, 0x00 +}; diff --git a/glide3x/h5/glide3/src/fxglide.h b/glide3x/h5/glide3/src/fxglide.h index a0a4e3b..626406e 100644 --- a/glide3x/h5/glide3/src/fxglide.h +++ b/glide3x/h5/glide3/src/fxglide.h @@ -541,10 +541,21 @@ #define HWC_BASE_ADDR_MASK 0x03UL #endif /* defined ( GLIDE_INIT_HAL ) */ +#include "fxsplash.h" + #if (GLIDE_PLATFORM & GLIDE_OS_WIN32) #define WIN32_LEANER_AND_MEANER #include -#include "fxsplash.h" +#else +FxBool fxSplashInit (FxU32 hWnd, + FxU32 screenWidth, FxU32 screenHeight, + FxU32 numColBuf, FxU32 numAuxBuf, + GrColorFormat_t colorFormat); +void fxSplashShutdown (void); +void fxSplash (float x, float y, float w, float h, FxU32 frameNumber); +const void *fxSplashPlug (FxU32* w, FxU32* h, + FxI32* strideInBytes, + GrLfbWriteMode_t* format); #endif /* (GLIDE_PLATFORM & GLIDE_OS_WIN32) */ /* ----------------------------------------------------------------------- @@ -1825,7 +1836,7 @@ typedef struct GrGC_s occur every 64K writes. */ } cmdTransportInfo; - + FxI32 (FX_CALL *triSetupProc)(const void *a, const void *b, const void *c); SstIORegs @@ -1985,11 +1996,12 @@ typedef struct GrGC_s texSurface[GLIDE_NUM_TMU]; /* Current texture surface */ #endif /* GLIDE_INIT_HWC */ -#if (GLIDE_PLATFORM & GLIDE_OS_WIN32) /* Splash screen/shameless plug crap */ struct { +#if (GLIDE_PLATFORM & GLIDE_OS_WIN32) HMODULE moduleHandle; +#endif /* (GLIDE_PLATFORM & GLIDE_OS_WIN32) */ GrSplashInitProc initProc; GrSplashShutdownProc @@ -1999,7 +2011,6 @@ typedef struct GrGC_s GrSplashPlugProc plugProc; } pluginInfo; -#endif /* (GLIDE_PLATFORM & GLIDE_OS_WIN32) */ } GrGC; @@ -3240,11 +3251,11 @@ extern GrChipID_t MultitextureAndTrilinear(void); #define _grTexFloatLODToFixedLOD(value) \ (FxU16)((( int )(( value + .125F ) / .25F)) & 0x003F) - + #if 0 /* [dBorca] moved to `gtex.c' */ static GrLOD_t g3LodXlat_base[2] = { GR_LOD_LOG2_256, GR_LOD_LOG2_2048 }; #define _g3LodXlat(someLOD, tBig) \ - (g3LodXlat_base[tBig] - someLOD) + (g3LodXlat_base[tBig] - someLOD) #endif #endif /* __FXGLIDE_H__ */ diff --git a/glide3x/h5/glide3/src/gbanner.c b/glide3x/h5/glide3/src/gbanner.c index fcff664..3df8adf 100644 --- a/glide3x/h5/glide3/src/gbanner.c +++ b/glide3x/h5/glide3/src/gbanner.c @@ -111,7 +111,6 @@ _grShamelessPlug(void) GR_BEGIN_NOFIFOCHECK("_grShamelessPlug", 80); GDBG_INFO_MORE(gc->myLevel, "()\n"); -#if (GLIDE_PLATFORM & GLIDE_OS_WIN32) if (gc->pluginInfo.plugProc != NULL) { FxU32 plugWidth, plugHeight, @@ -167,7 +166,263 @@ _grShamelessPlug(void) #endif /* GLIDE_PLUG */ } } -#endif /* (GLIDE_PLATFORM & GLIDE_OS_WIN32) */ GR_END(); } /* _grShamelessPlug */ + + + +#if !(GLIDE_PLATFORM & GLIDE_OS_WIN32) + +#if GLIDE_PLUG +#if GLIDE_PLUG_EXT +static FxU32 fxPlugWidth; +static FxU32 fxPlugHeight; +static FxU32 fxPlugStride; +static GrLfbWriteMode_t fxPlugFormat; +#else +#include "banner.inc" +#endif +static FxU16 *fxPlugData; +#endif /* GLIDE_PLUG */ + + + +void fxSplashShutdown (void) +{ +#if GLIDE_PLUG + if (fxPlugData != NULL) { + free(fxPlugData); + fxPlugData = NULL; + } +#endif +} + + + +FxBool fxSplashInit (FxU32 hWnd, + FxU32 screenWidth, FxU32 screenHeight, + FxU32 numColBuf, FxU32 numAuxBuf, + GrColorFormat_t colorFormat) +{ +#if GLIDE_PLUG + if (fxPlugData == NULL) { +#if GLIDE_PLUG_EXT + /* [dBorca] + * we should try to extract TGA resource from 3dfxspl3.dll + */ + FILE *f; + if ((f = fopen("3dfxplug.tga", "rb")) != NULL) { + int bpp, skip; + int i, j, decoded; + unsigned char header[18], b1[4], b0; + + /* read TGA header */ + if (!fread(header, 18, 1, f)) { + fclose(f); + return FXFALSE; + } + + /* fill in values */ + fxPlugWidth = ((unsigned short *)header)[6]; + fxPlugHeight = ((unsigned short *)header)[7]; + fxPlugStride = fxPlugWidth * 2; + fxPlugFormat = GR_LFBWRITEMODE_565; + + /* compute bits/pixel, then bytes/pixel; also check TGA type */ + bpp = header[16]; + if (((bpp != 16) && (bpp != 24) && (bpp != 32)) || ((header[2] & ~0x8) != 2)) { + fclose(f); + return FXFALSE; + } + bpp >>= 3; + + /* skip colormap + junk */ + skip = header[0]; + if (header[1]) { + skip += *(unsigned short *)&header[5] * header[7] >> 3; + } + fseek(f, skip, SEEK_CUR); + + /* allocate datablock */ + if ((fxPlugData = malloc(fxPlugStride * fxPlugHeight)) == NULL) { + fclose(f); + return FXFALSE; + } + + if (header[2] == 10) { + /* RLE */ + j = 0; + while (j < (fxPlugWidth * fxPlugHeight)) { + /* packet header */ + if (!fread(&b0, 1, 1, f)) { + fxSplashShutdown(); + fclose(f); + return FXFALSE; + } + if (b0 & 0x80) { + /* replicate pixels */ + b0 &= 0x7f; + if (!fread(b1, bpp, 1, f)) { + fxSplashShutdown(); + fclose(f); + return FXFALSE; + } + switch (bpp) { + case 2: + decoded = *(unsigned short *)&b1[0]; + decoded = ((decoded & 0x7c00) << 1) + | ((decoded & 0x03e0) << 1) + | (decoded & 0x001f); + break; + case 3: + case 4: + decoded = (b1[0]>>3) + ((b1[1]>>2)<<5) + ((b1[2]>>3)<<11); + break; + } + for (i = 0; i <= b0; i++) { + fxPlugData[j++] = decoded; + } + } else { + /* read pixels */ + for (i = 0; i <= b0; i++) { + if (!fread(b1, bpp, 1, f)) { + fxSplashShutdown(); + fclose(f); + return FXFALSE; + } + switch (bpp) { + case 2: + decoded = *(unsigned short *)&b1[0]; + decoded = ((decoded & 0x7c00) << 1) + | ((decoded & 0x03e0) << 1) + | (decoded & 0x001f); + break; + case 3: + case 4: + decoded = (b1[0]>>3) + ((b1[1]>>2)<<5) + ((b1[2]>>3)<<11); + break; + } + fxPlugData[j++] = decoded; + } + } + } + /* flip (RLE can cross scanlines, thus we can't use tricks) */ + if (!(header[17] & 0x20)) { + for (i = 0; i < fxPlugHeight / 2; i++) { + unsigned short *src = &fxPlugData[fxPlugWidth * i]; + unsigned short *dst = &fxPlugData[fxPlugWidth * (fxPlugHeight - i - 1)]; + for (j = 0; j < fxPlugWidth; j++) { + decoded = dst[j]; + dst[j] = src[j]; + src[j] = decoded; + } + } + } + } else if (header[2] == 2) { + /* normal (flip on-the-fly) */ + for (i = 0; i < fxPlugHeight; i++) { + int l = (header[17] & 0x20) ? i : (fxPlugHeight-i-1); + unsigned short *line = &fxPlugData[fxPlugWidth * l]; + for (j = 0; j < fxPlugWidth; j++) { + if (!fread(b1, bpp, 1, f)) { + fxSplashShutdown(); + fclose(f); + return FXFALSE; + } + switch (bpp) { + case 2: + decoded = *(unsigned short *)&b1[0]; + decoded = ((decoded & 0x7c00) << 1) + | ((decoded & 0x03e0) << 1) + | (decoded & 0x001f); + break; + case 3: + case 4: + decoded = (b1[0]>>3) + ((b1[1]>>2)<<5) + ((b1[2]>>3)<<11); + break; + } + line[j] = decoded; + } + } + } + + fclose(f); + } + +#else /* GLIDE_PLUG_EXT */ + + /* [dBorca] + * embedded image is always 16bit RLE and does not need to be flipped + */ + int k = 0; + int i, j, decoded; + unsigned char b0; + + /* allocate datablock */ + if ((fxPlugData = malloc(fxPlugStride * fxPlugHeight)) == NULL) { + return FXFALSE; + } + + /* RLE */ + j = 0; + while (j < (fxPlugWidth * fxPlugHeight)) { + /* packet header */ + b0 = tga_16rle[k++]; + if (b0 & 0x80) { + /* replicate pixels */ + b0 &= 0x7f; + decoded = *(unsigned short *)&tga_16rle[k]; + decoded = ((decoded & 0x7c00) << 1) + | ((decoded & 0x03e0) << 1) + | (decoded & 0x001f); + k += 2; + for (i = 0; i <= b0; i++) { + fxPlugData[j++] = decoded; + } + } else { + /* read pixels */ + for (i = 0; i <= b0; i++) { + decoded = *(unsigned short *)&tga_16rle[k]; + decoded = ((decoded & 0x7c00) << 1) + | ((decoded & 0x03e0) << 1) + | (decoded & 0x001f); + k += 2; + fxPlugData[j++] = decoded; + } + } + } +#endif /* GLIDE_PLUG_EXT */ + } + return FXTRUE; + +#else /* GLIDE_PLUG */ + + return FXFALSE; +#endif /* GLIDE_PLUG */ +} + + + +const void *fxSplashPlug (FxU32* w, FxU32* h, + FxI32* strideInBytes, + GrLfbWriteMode_t* format) +{ +#if GLIDE_PLUG + *w = fxPlugWidth; + *h = fxPlugHeight; + *strideInBytes = fxPlugStride; + *format = fxPlugFormat; + return fxPlugData; +#else + return NULL; +#endif +} + + + +void fxSplash (float x, float y, float w, float h, FxU32 frameNumber) +{ +} + +#endif /* (GLIDE_PLATFORM & GLIDE_OS_WIN32) */ diff --git a/glide3x/h5/glide3/src/gsst.c b/glide3x/h5/glide3/src/gsst.c index 8db493d..c4a20ed 100644 --- a/glide3x/h5/glide3/src/gsst.c +++ b/glide3x/h5/glide3/src/gsst.c @@ -1140,6 +1140,38 @@ doSplash( void ) if (!didLoad) FreeLibrary(gc->pluginInfo.moduleHandle); } + /* Clear all the info if we could not load for some reason */ + if (!didLoad) memset(&gc->pluginInfo, 0, sizeof(gc->pluginInfo)); + } +#else + { + FxBool + didLoad; + + gc->pluginInfo.initProc = fxSplashInit; + gc->pluginInfo.shutdownProc = fxSplashShutdown; + gc->pluginInfo.splashProc = fxSplash; + gc->pluginInfo.plugProc = fxSplashPlug; + + didLoad = ((gc->pluginInfo.initProc != NULL) && + (gc->pluginInfo.splashProc != NULL) && + (gc->pluginInfo.plugProc != NULL) && + (gc->pluginInfo.shutdownProc != NULL)); + if (didLoad) { + GrState glideState; + + /* Protect ourselves from the splash screen */ + grGlideGetState(&glideState); + { + didLoad = (*gc->pluginInfo.initProc)(gc->grHwnd, + gc->state.screen_width, gc->state.screen_height, + gc->grColBuf, gc->grAuxBuf, + gc->state.color_format); + if (!didLoad) (*gc->pluginInfo.shutdownProc)(); + } + grGlideSetState((const void*)&glideState); + } + /* Clear all the info if we could not load for some reason */ if (!didLoad) memset(&gc->pluginInfo, 0, sizeof(gc->pluginInfo)); }