zlib v1.2.11 license update.

conversion tool updated.


git-svn-id: svn://svn.code.sf.net/p/hxcfloppyemu/code/HxCFloppyEmulator/HxCFloppyEmulator_software/trunk@1861 63fa2f70-6a9b-4bc4-b855-9c6a949b1d69
This commit is contained in:
Jean-François DEL NERO
2019-12-07 17:37:11 +00:00
parent e92f850318
commit ca025ebcaf
21 changed files with 935 additions and 822 deletions
@@ -0,0 +1,33 @@
CFLAGS = -O3 -I../../.. -Wall
LDFLAGS =
EXEC=bmptoh
all: $(EXEC)
bmptoh: bmptoh.o lzw.o pack.o rle.o
$(CC) -o $@ $^ $(LDFLAGS)
bmptoh.o: bmptoh.c
$(CC) -o $@ -c $< $(CFLAGS)
lzw.o: ../../packer/lzw.c
$(CC) -o $@ -c $< $(CFLAGS)
pack.o: ../../packer/pack.c
$(CC) -o $@ -c $< $(CFLAGS)
rle.o: ../../packer/rle.c
$(CC) -o $@ -c $< $(CFLAGS)
clean:
rm -rf *.o
mrproper: clean
rm -rf $(EXEC)
rm -rf Debug*
rm -rf Release*
rm -rf *.obj *.ncb *.plg *.opt
.PHONY: clean mrproper
@@ -0,0 +1,42 @@
#pragma pack(1)
typedef struct bitmap_data_
{
int16_t xsize;
int16_t ysize;
int16_t nb_color;
uint8_t * palette;
uint32_t * data;
}bitmap_data;
typedef struct tagBITMAPFILEHEADER {
uint16_t bfType;
uint32_t bfSize;
uint16_t bfReserved1;
uint16_t bfReserved2;
uint32_t bfOffBits;
} BITMAPFILEHEADER;
typedef struct tagBITMAPINFOHEADER {
uint32_t biSize;
uint32_t biWidth;
uint32_t biHeight;
uint16_t biPlanes;
uint16_t biBitCount;
uint32_t biCompression;
uint32_t biSizeImage;
uint32_t biXPelsPerMeter;
uint32_t biYPelsPerMeter;
uint32_t biClrUsed;
uint32_t biClrImportant;
} BITMAPINFOHEADER;
typedef struct tagRGBQUAD {
uint8_t rgbBlue;
uint8_t rgbGreen;
uint8_t rgbRed;
uint8_t rgbReserved;
} RGBQUAD;
#pragma pack()
@@ -1,11 +1,18 @@
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <string.h>
#ifdef WIN32
#include "stdint.h"
#include <windows.h>
#else
#include <stdint.h>
#include "bmp_file.h"
#endif
#include "../../packer/pack.h"
#include "../../packer/lzw.h"
#include "../../packer/rle.h"
typedef struct {
uint32_t xres;
@@ -16,13 +23,12 @@ typedef struct {
uint8_t pack;
} bmpinfo;
char * extractbmpdata(char *bmpfile,bmpinfo *info)
uint8_t * extractbmpdata(char *bmpfile,bmpinfo *info)
{
FILE * file;
int p,m,i,j,o,k;
int32_t s;
uint32_t taille,taille2;
uint32_t filesize,adj_filesize;
uint8_t * dbuffer;
uint8_t vc;
@@ -30,52 +36,69 @@ char * extractbmpdata(char *bmpfile,bmpinfo *info)
BITMAPINFOHEADER bmih;
uint8_t pallette[256*8];
dbuffer = NULL;
memset(&bmph,0,sizeof(BITMAPFILEHEADER));
memset(&bmih,0,sizeof(BITMAPINFOHEADER));
s = 0;
file=fopen(bmpfile,"rb");
if(file!=NULL)
if( file )
{
//Determination taille fichier
//Get the file size
fseek(file,0,SEEK_END);
taille=ftell(file);
filesize = ftell(file);
fseek(file,0,SEEK_SET);
// lecture entetes
// read header
if(info->type!=0xff)
{
fread(&bmph,sizeof(bmph),1,file);
fread(&bmih,sizeof(bmih),1,file);
if(fread(&bmph,sizeof(bmph),1,file) != 1)
goto error;
if(fread(&bmih,sizeof(bmih),1,file) != 1)
goto error;
info->xres=bmih.biWidth;
info->yres=bmih.biHeight;
info->xres=bmih.biWidth;
info->yres=bmih.biHeight;
if(info->type==9)
{
fread(&pallette,256*4,1,file);
if(fread(&pallette,256*4,1,file) != 1)
goto error;
}
s=bmih.biWidth;
do
{
s=s-4;
}while(s>=4);
if(s!=0)
s=4-s;
}
//info->type=bmih.biBitCount;
s=bmih.biWidth;
do
{
s=s-4;
}while(s>=4);
adj_filesize=((filesize-bmph.bfOffBits)-(s*bmih.biHeight));
if(s!=0)
s=4-s;
if(info->type==0xff)
adj_filesize = filesize;
taille2=((taille-bmph.bfOffBits)-(s*bmih.biHeight));
if(info->type==0xff) taille2=taille;
if(info->type==9)
adj_filesize += (3*256);
if(info->type==9) taille2=taille2+(3*256);
if(info->type==1) info->size=taille2/8;
else info->size=taille2;
if(info->type==1)
info->size = adj_filesize/8;
else
info->size = adj_filesize;
//mem data
dbuffer=(char *) malloc(taille2+100);
dbuffer = (uint8_t *) malloc(adj_filesize+100);
if(!dbuffer)
goto error;
memset(dbuffer,0,adj_filesize+100);
p=0;
j=0;
@@ -86,24 +109,20 @@ char * extractbmpdata(char *bmpfile,bmpinfo *info)
dbuffer[(i*3)]=pallette[(i*4)];
dbuffer[(i*3)+1]=pallette[(i*4)+1];
dbuffer[(i*3)+2]=pallette[(i*4)+2];
}
p=3*256;
j=p;
}
fseek(file,bmph.bfOffBits,SEEK_SET);
m=0;
k=0;
vc=0;
for(i=0;i<(int)(taille2-j);i++)
for(i=0;i<(int)(adj_filesize-j);i++)
{
if(info->type==1)
@@ -135,15 +154,21 @@ char * extractbmpdata(char *bmpfile,bmpinfo *info)
m=0;
}
}
}
fclose(file);
return dbuffer;
}
return NULL;
error:
if(file)
fclose(file);
if(dbuffer)
free(dbuffer);
return NULL;
}
char buildincludefile(char *includefile,bmpinfo *info,unsigned char * dbuffer)
@@ -160,12 +185,18 @@ char buildincludefile(char *includefile,bmpinfo *info,unsigned char * dbuffer)
{
if(temp[i]=='.') temp[i]='_';
}
if(info->type!=0xff) sprintf(temp2,"data_bmp_%s.h",temp);
else sprintf(temp2,"data_%s.h",temp);
if(info->type!=0xff)
sprintf(temp2,"data_bmp_%s.h",temp);
else
sprintf(temp2,"data_%s.h",temp);
printf("Create %s :",temp2);
file2 = fopen(temp2,"w");
if(!file2)
return -1;
file2=fopen(temp2,"w");
if(info->type!=0xff)
{
fprintf(file2,"//////////////////////////////\n//\n//\n// Created by Binary2Header V0.6\n// (c) HxC2001\n// (c) PowerOfAsm\n//\n");
@@ -207,48 +238,52 @@ char buildincludefile(char *includefile,bmpinfo *info,unsigned char * dbuffer)
}
fprintf(file2,"};\n");
if(info->type!=0xff) fprintf(file2,"\n\nstatic bmaptype bitmap_%s[]=\n{\n\t{ %d, %d, %d, %d, %d, data_bmp%s, 0 }\n};\n",temp,info->type,info->xres,info->yres,info->size,info->csize,temp);
else fprintf(file2,"\n\nstatic datatype data_%s[]=\n{\n\t{ %d, %d, %d, data__%s, 0 }\n};\n",temp,info->type,info->size,info->csize,temp);
if(info->type!=0xff)
fprintf(file2,"\n\nstatic bmaptype bitmap_%s[]=\n{\n\t{ %d, %d, %d, %d, %d, data_bmp%s, 0 }\n};\n",temp,info->type,info->xres,info->yres,info->size,info->csize,temp);
else
fprintf(file2,"\n\nstatic datatype data_%s[]=\n{\n\t{ %d, %d, %d, data__%s, 0 }\n};\n",temp,info->type,info->size,info->csize,temp);
fclose(file2);
return 0;
}
unsigned char mi_pack(unsigned char * bufferin, unsigned long sizein,unsigned char * bufferout, int * sizeout)
int mi_pack(unsigned char * bufferin, int sizein,unsigned char * bufferout, int * sizeout)
{
unsigned char* buffer;
unsigned char* buffer2;
unsigned long newsize;
unsigned long newsize_lzw;
unsigned long newsize_rle;
int newsize;
int newsize_lzw;
int newsize_rle;
int mode;
buffer = (unsigned char*)malloc(sizein * 10);
buffer2 = (unsigned char*)malloc(sizein * 10);
mode = -1;
if( buffer && buffer2)
{
memset(buffer, 0, sizein * 10);
memset(buffer2, 0, sizein * 10);
newsize_lzw = sizein * 10;
lzw_compress(bufferin,buffer,sizein,&newsize_lzw);
rlepack(bufferin,sizein,buffer2,&newsize_rle);
mode=0;
mode = 0;
// Note : only lzw mode for this project.
//if(newsize_rle<sizein && newsize_rle< newsize_lzw)
// mode=1; //rle
if(newsize_lzw<sizein && newsize_lzw< newsize_rle)
if( newsize_lzw >= 0 && newsize_lzw<sizein && newsize_lzw< newsize_rle)
mode=2; //lzw
printf("mode : %d\n",mode);
switch(mode)
{
case 0:
memcpy((buffer2+1),bufferin,sizein);
buffer2[0]=0x0;
@@ -264,6 +299,7 @@ unsigned char mi_pack(unsigned char * bufferin, unsigned long sizein,unsigned ch
break;
case 2:
newsize = sizein * 10;
lzw_compress(bufferin,buffer+1,sizein,(int*)&newsize);
buffer[0]=0x1;
memcpy(bufferout,buffer,newsize+1);
@@ -271,6 +307,7 @@ unsigned char mi_pack(unsigned char * bufferin, unsigned long sizein,unsigned ch
break;
case 3:
newsize = sizein * 10;
rlepack(bufferin,sizein,buffer2,(int*)&newsize);
lzw_compress(buffer2,buffer+1,newsize,(int*)&newsize_lzw);
buffer[0]=0x3;
@@ -283,7 +320,7 @@ unsigned char mi_pack(unsigned char * bufferin, unsigned long sizein,unsigned ch
free(buffer2);
}
return 0;
return mode;
};
@@ -293,33 +330,38 @@ int main(int argc, char* argv[])
bmpinfo infoo;
unsigned char * dbuffer;
unsigned char * cbuffer;
int size,i;
printf("Binary2Header V0.6\nHxC2001\n");
if(argc==1)printf("Usage:\n");
int size,i,mode;
printf("Binary2Header V0.6 - (c)HxC2001\n");
memset(&infoo,0,sizeof(bmpinfo));
if(argc==1)
printf("Usage:\n");
else
{
i=argc-1;
do{
if(strcmp("-BMP8",argv[i])==0) infoo.type=8;
if(strcmp("-BMP8P",argv[i])==0) infoo.type=9;
if(strcmp("-BMP8P",argv[i])==0) infoo.type=9;
if(strcmp("-BMP1",argv[i])==0) infoo.type=1;
if(strcmp("-DATA",argv[i])==0) infoo.type=0xff;
i--;
}while(i);
dbuffer=NULL;
dbuffer=(unsigned char *)extractbmpdata(argv[1],&infoo);
dbuffer = (unsigned char *)extractbmpdata(argv[1],&infoo);
if(dbuffer!=NULL)
{
printf("%d\n",infoo.size+100+1024);
cbuffer=(unsigned char *)malloc(infoo.size+100+1024);
if(cbuffer!=NULL)
{
printf("Pack...\n");
memset(cbuffer,0,infoo.size+100+1024);
mode = mi_pack(dbuffer,infoo.size,cbuffer, &size);
printf("Generate header file... (Pack mode : %d, Source size : %d bytes, Final data size : %d bytes)\n",mode,infoo.size,size);
mi_pack(dbuffer,infoo.size,cbuffer, &size);
printf("build include file...\n");
infoo.csize=size;
buildincludefile(argv[1],&infoo,cbuffer);
@@ -42,7 +42,7 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Yu"stdafx.h" /FD /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
# ADD CPP /nologo /W3 /GX /O2 /I "..\..\.." /I "." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
# SUBTRACT CPP /YX /Yc /Yu
# ADD BASE RSC /l 0x40c /d "NDEBUG"
# ADD RSC /l 0x40c /d "NDEBUG"
@@ -67,7 +67,8 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FAs /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\.." /I "." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FAs /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x40c /d "_DEBUG"
# ADD RSC /l 0x40c /d "_DEBUG"
BSC32=bscmake.exe
@@ -138,9 +138,9 @@ exceptions:
the FLTK project (http://www.fltk.org).
-----------------------------------------------------------------------------------------------
ZLIB DATA COMPRESSION LIBRARY
zlib 1.2.8 is a general purpose data compression library.
zlib 1.2.11 is a general purpose data compression library.
(C) 1995-2013 Jean-loup Gailly and Mark Adler
(C) 1995-2017 Jean-loup Gailly and Mark Adler
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
@@ -5,7 +5,7 @@
// (c) HxC2001
// (c) PowerOfAsm
//
// File: COPYING_FULL Size: 44290 (19766)
// File: COPYING_FULL Size: 44290 (19767)
//
//
@@ -326,11 +326,11 @@ unsigned char data__COPYING_FULL[]={
0x42,0xc4,0x08,0x26,0x94,0x28,0x0c,0x38,0x0a,0x00,
0xa4,0x97,0x20,0xa6,0x09,0x20,0x9e,0x09,0xc5,0x7a,
0x09,0x20,0x84,0x65,0x80,0xa4,0x0b,0x28,0x42,0x0f,
0x50,0xcc,0x04,0x03,0x0c,0x06,0x40,0x5c,0x07,0x08,
0x50,0xcc,0x04,0x03,0x0c,0x06,0x40,0x5c,0x7c,0x28,
0xfa,0x72,0x22,0x38,0x9a,0x02,0x56,0x58,0xa0,0xe4,
0xb2,0x48,0x98,0xd0,0x04,0xa6,0x72,0x46,0x74,0x42,
0x65,0xf8,0xea,0x2e,0xa6,0xd3,0x2c,0x81,0x37,0x60,
0x72,0x07,0x20,0x6a,0x2a,0x22,0xe0,0xb9,0xc2,0xae,
0x65,0xf8,0xea,0x2e,0xa6,0x8f,0x2c,0x81,0x37,0x60,
0x72,0x07,0x20,0x6a,0x2a,0x22,0xe0,0xe5,0xe2,0xae,
0x2b,0x20,0x5a,0x21,0x23,0xd6,0x56,0x6b,0x72,0x0d,
0x8e,0xa8,0xb1,0x80,0x9a,0x51,0x62,0x68,0x08,0x2c,
0x02,0x23,0xec,0x9c,0xbb,0x44,0xac,0xcb,0x07,0xec,
@@ -920,7 +920,7 @@ unsigned char data__COPYING_FULL[]={
0x53,0x60,0x39,0x87,0x33,0x5f,0x94,0xfc,0xd9,0x02,
0x58,0x11,0x13,0xd0,0x8f,0x31,0x0b,0x03,0x78,0x9b,
0xf6,0x07,0xe6,0xbc,0x80,0xe0,0x90,0x95,0x20,0x01,
0x43,0xe1,0x37,0xc1,0x24,0xc6,0xce,0x90,0x36,0x5b,
0x49,0xbf,0x49,0xe9,0x24,0xc6,0xce,0x90,0x36,0x5b,
0x88,0x22,0x82,0xa7,0x54,0x3d,0xf9,0x1c,0x26,0x26,
0xe5,0x59,0x2e,0x07,0x60,0x7f,0x02,0xdd,0x5f,0x70,
0x0d,0x91,0x44,0xea,0x31,0x3b,0xd5,0xc1,0x14,0x72,
@@ -1683,329 +1683,329 @@ unsigned char data__COPYING_FULL[]={
0x02,0x61,0x96,0xcc,0x02,0x58,0xcc,0x7e,0xd2,0x43,
0xe8,0x7d,0x55,0x79,0xe6,0xa4,0x81,0x8c,0x94,0x9f,
0x79,0x8d,0xe2,0xb3,0xe4,0x19,0x5e,0xa2,0x47,0x43,
0x26,0x00,0x32,0x26,0xfc,0xb0,0x91,0xf8,0xce,0x4e,
0x1a,0x65,0xae,0x27,0x9d,0xa8,0xe6,0x96,0x1e,0x12,
0x66,0x15,0x5e,0x93,0x08,0x21,0xf7,0x88,0xfb,0x1e,
0x28,0x31,0x9e,0x35,0x55,0xc3,0x58,0x97,0x1d,0xf4,
0x2f,0x71,0xaf,0x8b,0x93,0x5d,0xd5,0xb4,0x03,0xa9,
0xd6,0x54,0x0d,0xed,0x10,0x28,0x01,0x67,0x62,0x84,
0x18,0x83,0x34,0xb0,0x07,0x65,0x9f,0x15,0x19,0x14,
0x38,0x68,0x78,0x32,0x62,0x4e,0xe6,0x03,0xa3,0xb0,
0x5e,0x2e,0x7d,0xe3,0xb1,0xe5,0xa0,0x2a,0xf1,0x85,
0x01,0x66,0x16,0x4a,0x4a,0x90,0x2a,0xe0,0x13,0xcf,
0xc2,0x42,0x7c,0x45,0x63,0xb3,0x28,0xf5,0x1f,0x0a,
0x1b,0x73,0xaf,0xe6,0x92,0x62,0x1e,0x9d,0xc7,0xc0,
0x8e,0xb9,0x5d,0x5c,0x88,0x71,0x5d,0xcb,0x85,0x70,
0xfa,0x64,0xd6,0x15,0xe8,0x02,0x04,0xf9,0x00,0x75,
0xde,0x01,0x4b,0x40,0xcc,0xed,0x90,0x4c,0x51,0xbd,
0x66,0x19,0x6a,0x43,0x34,0x68,0xa2,0x19,0xd1,0x0c,
0x80,0x4c,0x25,0x04,0x1d,0xf8,0x17,0xc2,0x25,0xc6,
0x5b,0x89,0xce,0x11,0x76,0x68,0x52,0x6f,0x51,0x6c,
0xdf,0xa4,0x8b,0x48,0x79,0x6f,0x05,0x72,0x2a,0x32,
0x98,0x53,0x29,0x3c,0xb4,0xa0,0x92,0xc9,0x73,0x91,
0xb4,0x27,0x73,0x8a,0x64,0x5c,0x65,0x3a,0x1c,0x06,
0x42,0x5d,0xc6,0x22,0xaa,0x6f,0x58,0xcd,0x07,0xf7,
0x6a,0xb8,0xeb,0x93,0x24,0x95,0xa5,0xa0,0x0a,0xa8,
0x55,0x1a,0xe4,0x32,0x24,0xcc,0xc4,0x20,0xba,0x67,
0x67,0x97,0x8a,0x1e,0x89,0x61,0x1b,0xc1,0x10,0xd9,
0x9f,0xc0,0x1b,0x1e,0xab,0x25,0x6d,0x00,0xd9,0xf0,
0x4d,0xfa,0xa9,0x5c,0x70,0xd8,0xe7,0xc2,0x25,0x13,
0xf8,0x2b,0xb6,0xe3,0x0f,0xc8,0x42,0x46,0x72,0x76,
0x94,0x26,0x97,0x9e,0x98,0x6c,0x33,0x82,0xa6,0x7a,
0xa3,0x21,0xe2,0xb5,0x88,0x85,0x07,0x54,0x74,0x1c,
0x06,0x6e,0x13,0xaa,0x3b,0x72,0x14,0xe2,0xb8,0x40,
0x6e,0x2d,0xb9,0x44,0x86,0x2a,0x8b,0x99,0x77,0x62,
0xa7,0xd1,0x22,0xce,0xb8,0xa7,0x8a,0x3b,0x63,0xa9,
0x49,0x75,0x8d,0x65,0x8d,0xe9,0xcf,0x07,0x0d,0x3f,
0x68,0x15,0xd1,0x46,0x61,0x5f,0x7e,0xac,0xfc,0x4a,
0x6b,0xe3,0x1d,0x66,0x9d,0x48,0x16,0x0e,0x1e,0x41,
0x66,0x94,0xe9,0x30,0xac,0x80,0x41,0x78,0x24,0x50,
0x73,0xd7,0x46,0xe2,0x3d,0x7c,0x46,0x7a,0x84,0xa1,
0xd5,0x08,0x3e,0x1d,0x79,0x82,0xc3,0x42,0x87,0x6a,
0x44,0x17,0x87,0xe5,0xe9,0x1a,0x2c,0xa8,0x41,0x39,
0x4c,0x91,0x85,0xc6,0x8e,0xe1,0x01,0x05,0x17,0x9a,
0xe0,0x18,0x94,0x60,0x05,0x66,0x95,0xda,0x9d,0x75,
0x54,0xa8,0xff,0x4b,0x49,0x2a,0x28,0x55,0xc2,0xa8,
0x49,0xa5,0x17,0xb0,0xe5,0xea,0xdd,0x42,0x0a,0xad,
0xf1,0xbe,0xd2,0x6e,0x5e,0xd0,0x25,0x22,0x93,0xdf,
0x23,0x0e,0x89,0x87,0xa2,0x91,0x2a,0xf8,0x96,0xde,
0xac,0x8a,0xaa,0x9d,0x17,0x7f,0x41,0x2f,0xd6,0x5b,
0x65,0x78,0x68,0x85,0xbc,0xfa,0xb2,0x4f,0x19,0x43,
0x7d,0xf7,0x64,0x46,0x07,0x0d,0x66,0x11,0xe0,0xb5,
0x4f,0x1e,0x5e,0x5b,0x3a,0x9c,0x2a,0x45,0xe7,0x58,
0x64,0x0e,0x93,0x10,0x97,0xa0,0x3a,0xa5,0x19,0x06,
0x6a,0xc1,0x41,0x1f,0xac,0x1c,0xf1,0x71,0xbf,0x54,
0x4f,0x3a,0x8d,0xd1,0x00,0xf9,0x4c,0x73,0x94,0x71,
0x59,0x25,0x3e,0x93,0xc8,0x97,0xd0,0x06,0x82,0x00,
0x11,0x15,0x73,0x1e,0x07,0x64,0xeb,0x64,0x05,0x8e,
0x85,0x39,0x5a,0xc4,0x24,0x0a,0x1a,0x19,0x28,0xb6,
0xcd,0xa5,0xa0,0x23,0xe0,0x62,0x14,0x6a,0x03,0x0a,
0x67,0x4d,0x81,0xf8,0x86,0xea,0xe3,0x52,0x1c,0xe5,
0x83,0xc4,0x07,0x13,0x70,0xca,0x1b,0x41,0x9d,0xc8,
0x7a,0xad,0x40,0x39,0x00,0x9a,0x0c,0x86,0x1c,0x26,
0x50,0xc7,0xd5,0x8e,0xdc,0x49,0xb0,0x67,0x13,0xc6,
0x28,0x8c,0x97,0x0a,0x4a,0xc6,0x32,0x64,0xac,0x28,
0x1c,0x59,0x81,0xf8,0xcf,0xa2,0x9d,0xc5,0xb2,0x72,
0x83,0x67,0x48,0x10,0xa5,0x89,0x15,0x39,0x08,0xed,
0x3d,0xc8,0x3b,0x27,0x68,0x94,0x60,0x29,0xea,0xb7,
0x23,0xc4,0xc3,0x1e,0x85,0x46,0x27,0x04,0xfa,0xc6,
0xe9,0x16,0xe4,0xca,0x96,0x5e,0x89,0xcd,0xad,0x89,
0x1d,0xd0,0x7a,0x51,0x8f,0xab,0xda,0xb3,0xa4,0x98,
0x04,0x21,0x9e,0x56,0xb7,0xf6,0xaf,0x64,0x18,0x06,
0xd5,0xc8,0xc0,0xa5,0x48,0x57,0x25,0xe0,0x2c,0x82,
0x56,0x8e,0x00,0x44,0x61,0x88,0xb0,0x1c,0xa3,0x1c,
0x31,0x4e,0x12,0x5a,0x5e,0xd3,0xbd,0x84,0x78,0x25,
0xf7,0x97,0x0f,0xe2,0xae,0x78,0x74,0x77,0xd8,0xe1,
0xdc,0x11,0x10,0x76,0xb0,0xdd,0x40,0x0a,0xac,0x24,
0xe7,0xc0,0x08,0x8a,0xf3,0x8b,0xa4,0x69,0x6a,0xe4,
0xd3,0x14,0x3c,0x81,0x3b,0xd1,0x41,0xe3,0x22,0x92,
0xb8,0x86,0x35,0x1a,0x98,0xc0,0x9f,0x55,0xe3,0xb4,
0x8f,0x0e,0xd1,0x5b,0xed,0x81,0xf8,0xf6,0x15,0x3d,
0x1c,0x24,0x1b,0xfa,0xea,0xc2,0x72,0x38,0x01,0xb4,
0x06,0x16,0xc6,0x95,0x29,0x44,0xe0,0x07,0x83,0x8c,
0xa2,0x97,0x8c,0x2d,0x53,0xc3,0xcc,0x46,0x37,0x00,
0x3b,0xd3,0xc4,0x8a,0xff,0xa9,0xca,0xad,0x59,0xb7,
0x69,0x5b,0x1f,0x85,0x67,0x98,0xf9,0xeb,0x9d,0xaf,
0x2d,0x37,0x39,0x27,0x2b,0x66,0x3d,0x78,0xe9,0x79,
0xd2,0xe3,0x41,0x17,0x64,0x1d,0xa5,0x8e,0x4c,0x39,
0x38,0x00,0x94,0x45,0x5c,0xd9,0x56,0x08,0x85,0xff,
0xf0,0xb3,0x86,0x7c,0x39,0x6a,0xb5,0x91,0x1e,0x28,
0x30,0x6b,0xa6,0x6d,0xda,0xe9,0x1a,0xf0,0x55,0x7c,
0x65,0x10,0x1e,0x0e,0xd8,0x0a,0x4a,0x63,0xf4,0x44,
0x1e,0x5e,0x46,0xc0,0x53,0xc9,0x27,0x62,0xd4,0x4b,
0x86,0xbe,0x9a,0xb8,0x6b,0xeb,0x67,0xfc,0x29,0x21,
0x23,0x09,0x86,0x9c,0xe8,0x90,0xbb,0x01,0x19,0x05,
0x83,0x4a,0x3b,0xfa,0x08,0x55,0x09,0x94,0x6a,0x59,
0xa9,0xa0,0x43,0x91,0xaf,0x4e,0x4f,0xc9,0x24,0xc7,
0x54,0x87,0xae,0x6f,0x23,0xe3,0xd2,0xd6,0x08,0x41,
0x7c,0x70,0x89,0x4e,0x00,0x50,0xce,0x6d,0xc1,0xa7,
0x86,0x99,0x14,0xe8,0xa5,0x15,0xdd,0x4d,0xd7,0x85,
0x45,0xc6,0x79,0xe6,0xe3,0xb4,0x83,0xf1,0xb4,0x98,
0x83,0xdf,0x20,0x87,0x48,0xed,0x69,0x09,0x9d,0x70,
0x42,0xd2,0x39,0xd8,0x6e,0x2a,0xa6,0x9a,0xbd,0x6f,
0xc2,0xf1,0xa2,0xf7,0x70,0x10,0x47,0x34,0x30,0xc7,
0xd8,0xab,0xda,0x1e,0xf0,0x51,0xe6,0xef,0x69,0x79,
0xb6,0x02,0x08,0x04,0x43,0x5f,0xe2,0xc2,0xa9,0x53,
0xd9,0x13,0x20,0x51,0xc3,0x91,0x1d,0x6b,0xb8,0x96,
0x80,0x03,0x51,0x32,0x22,0x04,0x63,0xa6,0x6c,0x7a,
0xf9,0xc1,0x8c,0x67,0x0d,0x23,0x83,0x5c,0x4c,0xdd,
0x33,0xa8,0xd4,0x13,0x47,0x0c,0xf3,0x35,0x90,0xd1,
0xb3,0x38,0x00,0x47,0x0c,0xb0,0xd9,0x43,0x46,0x4d,
0xa1,0x33,0x5c,0xcf,0xc0,0x15,0x0d,0x45,0x0c,0x94,
0x05,0x04,0x94,0x83,0x20,0xb1,0xe0,0xce,0x50,0x10,
0x89,0xb7,0x01,0x04,0x05,0x03,0x41,0x00,0x43,0x35,
0x84,0xd5,0xf0,0x10,0x40,0x57,0x4a,0xa0,0x05,0x83,
0x8f,0xc0,0x50,0x0c,0x94,0x05,0x73,0x5c,0x49,0xb1,
0x36,0x28,0x05,0x23,0x63,0x0c,0xd7,0x01,0x4c,0x34,
0xab,0x1f,0x8d,0x99,0x01,0x5c,0xd3,0xa0,0xd7,0x85,
0xb0,0xb1,0xd4,0x9a,0x93,0x55,0x0d,0x56,0x35,0x60,
0x00,0xa3,0x56,0x8d,0x5c,0x0d,0x58,0x32,0xd0,0x11,
0x00,0x2f,0x36,0x24,0xda,0xe1,0xb5,0x0d,0x05,0x33,
0x7c,0x16,0x93,0x38,0x81,0x63,0xb2,0x7a,0xc7,0x0b,
0x1c,0x93,0xf3,0x33,0xa4,0xce,0xb0,0xc7,0xcc,0xef,
0x12,0x58,0xcd,0xc3,0x47,0x49,0xb7,0x36,0x5c,0x6b,
0x43,0x3d,0xcc,0xf9,0x0b,0xac,0x04,0x51,0x25,0x0d,
0x72,0x33,0xf0,0xcf,0xe0,0xd5,0x4d,0x18,0x1b,0x48,
0xd0,0x23,0x41,0x0d,0x06,0x0f,0x04,0xd0,0x93,0x42,
0xcd,0x0d,0x16,0xc0,0x3d,0x63,0x44,0x4d,0x13,0x26,
0xc8,0xd1,0x6b,0x26,0x0d,0x86,0x36,0x14,0xd7,0x12,
0x82,0x0d,0x03,0x0d,0x38,0xd1,0x8b,0x2e,0xc3,0x49,
0xb2,0xb4,0xd8,0x03,0x48,0x84,0xb2,0x34,0x94,0x4b,
0x5b,0x29,0xc4,0xb7,0x1b,0x38,0xcf,0xf3,0x59,0x04,
0xbd,0x34,0xb8,0x4c,0x10,0xca,0xab,0xb1,0x34,0xc8,
0x4c,0x72,0xd3,0xac,0xdb,0xb1,0xe4,0x04,0x93,0x37,
0x4d,0x3a,0x01,0x4c,0x73,0xe3,0x3a,0x2c,0x74,0x34,
0x6c,0x05,0x10,0x15,0x4d,0xb1,0xb3,0x9c,0x04,0xe3,
0x39,0x6c,0x7b,0x01,0x48,0xd2,0xb0,0xf7,0x0d,0x09,
0x36,0xa0,0xcf,0x5b,0x1b,0xc1,0x69,0xb1,0xc4,0xd6,
0xb0,0x02,0xac,0x6a,0x36,0x7c,0x8f,0x90,0xc8,0xeb,
0x6e,0x12,0x54,0xd5,0xbb,0x2c,0xad,0x0d,0xb2,0xd0,
0xce,0x03,0x51,0x0d,0xaf,0x01,0x18,0x04,0x53,0x67,
0x0d,0x44,0x0b,0xac,0x05,0x90,0xc8,0xc1,0x19,0x0d,
0x54,0x05,0x50,0xd1,0x6c,0x9e,0x35,0x4a,0xc9,0x63,
0x48,0x0d,0xb1,0x05,0x94,0xd9,0xb2,0x6b,0x43,0x2a,
0x0c,0xa0,0x36,0x90,0x14,0x8c,0xe2,0x01,0x0c,0xd0,
0xe0,0xba,0xc9,0xac,0x0d,0x72,0xcf,0x73,0x66,0x0d,
0x52,0x0c,0xae,0xd1,0xf4,0x95,0xe5,0xa0,0x6e,0x78,
0x44,0xa3,0x1b,0x22,0x26,0x0a,0xfa,0x01,0xe8,0xb8,
0xa3,0x7f,0x26,0xc4,0xd1,0x20,0x43,0x8d,0x44,0x35,
0x18,0x05,0x50,0x13,0x8d,0x62,0x12,0xe8,0x9a,0xcb,
0x3f,0xec,0xf7,0x34,0x62,0xc8,0x00,0x46,0x6c,0x83,
0x18,0x66,0xc8,0x60,0xaf,0x6c,0x88,0x36,0x60,0x04,
0x1b,0x1c,0x40,0x45,0x34,0x60,0xd8,0x6b,0x26,0x6c,
0x9b,0x34,0x38,0x00,0xa1,0x24,0xcd,0x49,0x33,0xd8,
0xd5,0x2b,0x28,0x00,0x49,0x35,0x5c,0xd5,0x90,0x13,
0xcd,0x5b,0x05,0xa0,0xd9,0x51,0x2f,0x03,0x27,0x2f,
0xea,0xca,0xb0,0xd7,0x44,0x98,0x0c,0x88,0x4a,0xe0,
0x13,0xcd,0x0d,0x0d,0x48,0xd1,0xfb,0x29,0xec,0xa9,
0x0d,0x64,0xd5,0x20,0x13,0x8d,0x44,0x01,0x65,0x25,
0x9b,0x43,0x00,0x4f,0xb4,0x38,0x04,0xdb,0x49,0x43,
0x5b,0xb1,0xf0,0x05,0x4b,0x26,0x03,0x4b,0x33,0x84,
0x04,0x50,0xf5,0x8d,0x5f,0x01,0x26,0xd5,0xbb,0x58,
0xed,0x23,0x0a,0xc8,0xd6,0x43,0x5a,0x8d,0x6c,0x12,
0xe6,0xcc,0xe3,0x42,0x8d,0x0c,0x36,0x44,0x6b,0x40,
0x02,0x85,0xb1,0x05,0x9c,0x32,0xc0,0x13,0x07,0x20,
0xb1,0xee,0xd3,0x63,0x6c,0x6d,0x9f,0x33,0x8e,0xc7,
0x93,0x8e,0x8d,0x51,0x26,0xc0,0x36,0x9b,0x3f,0xec,
0xf6,0x38,0xea,0xd9,0xcb,0x57,0xed,0x7f,0xb3,0xe4,
0xd9,0x13,0x65,0xad,0x0b,0x36,0x88,0xda,0xb3,0x66,
0x06,0x1e,0x35,0xd0,0x6c,0xbb,0x58,0xed,0xbf,0xb6,
0x22,0xd8,0xa0,0x52,0x06,0x1e,0xb6,0x82,0xcd,0x13,
0x43,0xc0,0x42,0xb3,0x50,0xd1,0x43,0x40,0x8d,0x17,
0x33,0x96,0xd6,0x30,0x13,0x03,0x68,0x35,0x40,0x04,
0x60,0x02,0x8d,0x6a,0x26,0xa0,0x6d,0x2b,0x76,0x41,
0x1a,0x01,0x0a,0xcc,0x3b,0x27,0x49,0xac,0xb4,0x0c,
0x16,0x83,0x46,0x2d,0xc1,0x01,0x0c,0x36,0x00,0xcb,
0x2c,0x78,0x36,0x62,0xdd,0x4b,0x32,0x03,0x56,0x01,
0x4c,0x3e,0x90,0xd2,0x86,0x1e,0xb5,0x58,0x32,0x8b,
0x66,0x4d,0x98,0x0c,0x86,0xcf,0x70,0x11,0x2b,0xb1,
0x34,0xb8,0xd1,0xf1,0xb4,0x81,0x1a,0x37,0x04,0x34,
0xd0,0xd9,0x6d,0x0a,0xb4,0x62,0xd8,0x9b,0x2d,0x2d,
0x63,0x35,0x4c,0xe3,0x9b,0x7a,0x6d,0x12,0xb2,0xfe,
0xc9,0x20,0xd6,0xed,0x19,0x35,0xac,0x05,0x33,0x16,
0x00,0x0a,0x35,0x0c,0xd4,0x52,0x82,0x0c,0xf5,0xb7,
0xb8,0x34,0x70,0x40,0xed,0x70,0x35,0x70,0xd9,0x8b,
0x82,0xc6,0xd4,0x0c,0xa0,0x34,0x80,0xd5,0xad,0xde,
0xb8,0x4c,0x41,0xb3,0x38,0x83,0x69,0x33,0x94,0xd9,
0x7b,0x1b,0xed,0xd5,0x26,0xcc,0x4b,0x41,0xb2,0xcc,
0xd9,0x36,0x8c,0x05,0x5b,0x85,0xed,0xb7,0x35,0xb6,
0x5a,0x08,0x3c,0x95,0x63,0x04,0x7d,0x5c,0x68,0x89,
0x83,0x6e,0x95,0xee,0x21,0x68,0x86,0x1b,0x9e,0xaf,
0xf5,0x09,0xb8,0x81,0x6c,0x63,0x7b,0x81,0x43,0xe2,
0xde,0x58,0xf0,0x31,0xb5,0x14,0x58,0xba,0x86,0xc3,
0x77,0xcc,0x5d,0x38,0x61,0x2a,0x74,0x2b,0x1c,0x11,
0xba,0xe5,0x82,0xf8,0x5b,0xd0,0x12,0xb6,0xdb,0x98,
0xd3,0x37,0xd9,0xd0,0xb6,0xf2,0xd0,0x28,0x22,0x99,
0xa8,0x78,0xcf,0x54,0x54,0x20,0x56,0x64,0x67,0x62,
0xea,0x17,0x4a,0x06,0xe5,0x16,0x47,0xd8,0x6e,0x87,
0xd0,0xf1,0xb0,0x9d,0x51,0xab,0x5c,0x19,0x95,0xd0,
0x1e,0x16,0x85,0x47,0x5c,0xf2,0x60,0x80,0xc1,0x8f,
0x6d,0x0c,0x29,0x96,0x2c,0xa8,0x5f,0x21,0x64,0xc8,
0x94,0x22,0x2e,0x53,0xa3,0x8e,0x20,0xd5,0xed,0x69,
0xd1,0xa7,0xb6,0x78,0xea,0xec,0x50,0x17,0x61,0xa5,
0xf1,0xa5,0x47,0x22,0x08,0x77,0x49,0xe9,0x48,0x43,
0xc4,0x43,0xb9,0x22,0x73,0x04,0xdc,0x5b,0xfb,0x51,
0xb8,0x6f,0x79,0xbd,0xe6,0xdd,0x14,0x64,0x1a,0xa4,
0x6c,0x42,0x1a,0x52,0x35,0x9c,0x84,0x93,0xce,0x43,
0x35,0x16,0xe2,0x6b,0x42,0xd2,0x52,0xb2,0x9a,0xd0,
0x34,0x95,0x43,0x20,0x36,0x75,0x25,0x93,0x90,0x83,
0x6c,0x58,0x30,0xc9,0x88,0x8e,0xca,0xcb,0x14,0xc0,
0x44,0xc8,0x3d,0xd0,0x32,0x14,0x1c,0x4d,0xf0,0x45,
0x80,0x4e,0x94,0x31,0x9d,0xd1,0xd9,0x04,0x21,0xa0,
0xc5,0x4f,0x60,0x42,0x84,0xea,0xad,0xc5,0x1c,0x89,
0xaa,0x04,0xe0,0x0a,0x29,0x47,0x55,0x0e,0x5d,0x77,
0x4b,0x85,0xb5,0x58,0x25,0x82,0x9b,0x27,0x1e,0x5d,
0x92,0x85,0xca,0x36,0x55,0xca,0x0d,0x24,0x89,0x01,
0xfe,0x1f,0x7d,0xd3,0xf2,0x93,0xdb,0xc4,0x1a,0xed,
0xbd,0x05,0xb3,0x92,0x76,0x4e,0xfc,0x19,0x13,0xe9,
0x06,0x57,0x3c,0x15,0xe5,0xe2,0x51,0x22,0xca,0x25,
0x90,0xb8,0xf1,0xa8,0x9d,0xff,0x3e,0x5c,0xed,0x36,
0x7b,0xd0,0x55,0x83,0xe0,0x64,0xe9,0x67,0x82,0x6d,
0x1e,0x8c,0x19,0x79,0x89,0xc7,0x78,0x29,0x84,0x77,
0xb2,0x56,0x9a,0x28,0xac,0x8d,0x9a,0x75,0x16,0xdf,
0xcb,0x04,0xa4,0xf4,0xf0,0x81,0xe5,0x57,0x43,0x8a,
0xee,0xc0,0x8f,0xa9,0x29,0x37,0xbc,0x25,0x37,0xee,
0x83,0x95,0x6b,0x59,0x65,0xd2,0xe9,0x8e,0xfb,0x3c,
0x6e,0xe5,0x54,0xfa,0x60,0xc4,0x65,0xb0,0xa8,0x79,
0xe7,0x9b,0x0c,0xb9,0x0d,0x99,0x81,0x63,0x1a,0xd6,
0x1e,0x9c,0x6e,0xe2,0xe6,0x48,0xfe,0x53,0xf1,0xc4,
0x43,0xb7,0x13,0xa8,0xb1,0x3c,0x81,0x00,0xf3,0x2e,
0xe1,0x2a,0x58,0x16,0x04,0xfb,0x0c,0x98,0x8e,0xac,
0xa8,0x71,0x23,0x81,0x2b,0x92,0xc4,0x28,0x3a,0xf6,
0xc8,0x4f,0x00,0xf1,0xa6,0x7b,0xc7,0x0c,0x98,0x71,
0x9d,0xef,0x51,0xa7,0x99,0x39,0x8a,0x19,0x0a,0x01,
0x22,0xc4,0x07,0x0e,0x54,0x88,0x50,0xe4,0x5d,0xb6,
0x20,0xce,0x95,0xa8,0x03,0x80,0x2e,0x39,0x9d,0xd5,
0x99,0x22,0x86,0x3f,0x39,0x50,0x03,0xc7,0x11,0xc2,
0x8b,0x00,0xf8,0x15,0x50,0x0f,0x2f,0x32,0x21,0x64,
0xf3,0x31,0x83,0x04,0xad,0x2b,0xa5,0x20,0xf1,0x95,
0x82,0x85,0x2a,0x30,0xdd,0xa3,0xe5,0x56,0xaf,0x3f,
0xb0,0x43,0x6a,0xd8,0x23,0xe6,0x68,0x55,0x06,0x4a,
0x14,0x2a,0xc7,0x49,0xac,0xe9,0x44,0x9b,0x6b,0x68,
0x65,0xc2,0x0c,0x2a,0xfd,0x66,0xcb,0x8a,0x9c,0xf0,
0xea,0xfe,0x4a,0x39,0xaf,0xed,0x2e,0xfa,0xf2,0x2b,
0x02,0x24,0xf6,0x35,0xa8,0x8b,0xc5,0x4b,0x85,0xfc,
0x69,0x11,0x1c,0x53,0xb0,0xb1,0x72,0x7d,0x22,0x0a,
0xef,0x4e,0x9b,0xf8,0x6a,0x07,0x0c,0x63,0xc0,0x0c,
0xe0,0x48,0x47,0x21,0x46,0xa9,0x33,0x09,0x22,0xf1,
0x23,0x84,0x90,0x0d,0xb0,0x6b,0x0b,0x2e,0x46,0xb3,
0xb5,0xd6,0xce,0x01,0x27,0x03,0x31,0x4e,0x29,0x36,
0x95,0xcd,0x06,0xbd,0x28,0x04,0xb9,0x3b,0x90,0xc9,
0x8e,0x0d,0xb2,0xce,0x41,0xb2,0x2c,0xe6,0x1b,0x2c,
0x35,0x13,0x4a,0x46,0xd0,0xb7,0xf0,0xd2,0xd1,0x2f,
0xcd,0x2f,0x13,0x08,0x36,0x41,0xb6,0x6c,0xf3,0x0d,
0xb4,0x6d,0xd2,0xab,0xec,0x0f,0x3a,0x58,0xee,0x15,
0xd0,0x8e,0xb3,0x1b,0xa0,0xe1,0xf1,0x37,0x08,0x4f,
0x1b,0xb4,0x38,0x7b,0xc5,0x11,0x75,0x74,0x06,0x17,
0x8b,0x03,0xaf,0x5f,0xad,0x9e,0xb3,0x42,0x42,0x1a,
0x83,0x66,0x91,0x12,0xd2,0x7b,0xec,0x30,0xaf,0x78,
0x70,0xa0,0xb0,0x41,0x93,0x39,0x80,0x81,0xc0,0x67,
0x01,0xc6,0x20,0x78,0xb4,0xc0,0x1d,0x4e,0x65,0x00,
0xbc,0xeb,0x10,0x1c,0xc0,0x2f,0x00,0xf8,0x2f,0xe0,
0x10,0x4f,0x23,0x8d,0x71,0xf6,0xc2,0xf2,0x82,0x1a,
0x7f,0x8e,0xb1,0x43,0x86,0xe1,0x7f,0x24,0xdc,0x7a,
0xc1,0xfc,0xc1,0xe9,0x04,0x94,0x44,0x95,0x03,0x48,
0x5a,0x0b,0x74,0x53,0x2a,0xa7,0x2e,0x3e,0xbc,0xbc,
0x70,0x66,0xe3,0x64,0xdf,0x86,0xe1,0xae,0xc9,0x89,
0x4a,0xcc,0x37,0xf9,0x8f,0x15,0xcc,0x15,0x5f,0x0e,
0x1c,0x80,0xe9,0x59,0xca,0xeb,0x95,0x6d,0xbd,0x08,
0x6a,0xc2,0xa5,0x08,0xba,0xe6,0x06,0xab,0x5a,0xcf,
0x6b,0xb4,0xb9,0x10,0x19,0x62,0x01,0x17,0xf9,0x1c,
0x8b,0xd1,0x85,0x5a,0xb1,0x3c,0xe5,0x30,0x52,0xef,
0x43,0x42,0xab,0x00,0x8b,0xd2,0x16,0xd1,0xbd,0x28,
0x7d,0x8b,0xcf,0x9a,0xa0,0x53,0x95,0x93,0x30,0x9e,
0x14,0xef,0x0e,0x94,0x34,0xb3,0x69,0x0d,0x0b,0xb1,
0xe0,0x04,0xc0,0xca,0x2d,0x4b,0xbe,0x2c,0x32,0xf0,
0xa3,0x4e,0x0a,0xbe,0xbc,0x78,0xd0,0x1e,0x43,0x0f,
0x00,0x80,0x06,0x04,0x14,0x02,0x4d,0x00,0x9c,0x95,
0x5c,0x05,0x6f,0x50,0x41,0xec,0x80,0x6b,0xaf,0x14,
0x40,0x4e,0x94,0xa4,0x4a,0xb3,0x5b,0xf5,0x19,0x7c,
0x43,0x40,0xa6,0x84,0xad,0x19,0xa6,0x1a,0x73,0xf8,
0xa1,0x17,0x0a,0x35,0xec,0x60,0x64,0xf0,0x2b,0x6a,
0x64,0x06,0x34,0x4d,0x49,0x2d,0x48,0x74,0xe2,0x03,
0x75,0x41,0x93,0x70,0x98,0x59,0x20,0x9a,0x96,0xb5,
0x51,0x9c,0x26,0x80,0x95,0xb0,0x45,0x3e,0xb0,0x07,
0x74,0x27,0xc2,0x43,0xc1,0x55,0x05,0x1c,0x11,0xef,
0x13,0x13,0x8f,0x02,0xc2,0x31,0x22,0x3c,0x31,0x2e,
0x81,0x9a,0xcb,0xaa,0xe0,0xbe,0xaa,0xa7,0x12,0xfe,
0x9e,0xa8,0x22,0x1e,0xae,0xe3,0xcf,0x09,0x2b,0x64,
0xe5,0xcf,0x85,0x1a,0x11,0x09,0x39,0x48,0x31,0x7a,
0xe0,0xc2,0x31,0xc0,0x91,0x30,0xf0,0x11,0xc0,0x55,
0x01,0x25,0xad,0x30,0x78,0xe6,0x8f,0xa6,0xfc,0x89,
0x70,0xa4,0x9b,0x53,0x32,0xcc,0x4a,0x03,0x2c,0xc0,
0x78,0x9c,0x48,0xf3,0x51,0x38,0x2f,0xb3,0x13,0x8d,
0x9f,0xa3,0xe3,0x0b,0xb6,0x1c,0x68,0x10,0x97,0x11,
0xde,0x73,0xa6,0x1d,0x2d,0x26,0x97,0x91,0xc8,0x29,
0x19,0x08,0x03,0x21,0xeb,0xee,0x0f,0xfd,0xbd,0x2a,
0xf4,0x1a,0x88,0x3b,0x04,0x4e,0xab,0xc6,0x65,0x80,
0x50,0x6a,0x75,0xd0,0x47,0xdf,0x34,0x83,0x46,0xe8,
0x13,0xe3,0x98,0x34,0x91,0xf4,0xb6,0x60,0x9e,0x90,
0x9a,0xa5,0xda,0xfd,0x72,0x31,0xd5,0x83,0x8e,0x60,
0x58,0xcb,0xf6,0xae,0x62,0x09,0x0e,0x7d,0x5a,0xeb,
0x88,0xeb,0x9b,0x40,0x2c,0x2b,0xf1,0x81,0xa4,0xbf,
0x20,0x1c,0x7b,0xf2,0xef,0xcd,0xbf,0x3e,0xfd,0x15,
0x40,0x2a,0xdb,0xae,0xbe,0xbe,0xab,0xea,0xc6,0xe5,
0xaf,0x86,0x14,0x62,0xe0,0x9e,0x7f,0x04,0x56,0x58,
0xf3,0xf3,0xcd,0xe6,0x47,0x21,0xe8,0x24,0x6e,0xd2,
0x1c,0xbb,0xfd,0xa0,0xa2,0x51,0xe4,0xf2,0xc3,0x46,
0xf7,0xa8,0xf0,0xc2,0xb9,0x20,0x02,0xa8,0xd2,0x73,
0xc5,0x80,0x8e,0x36,0x15,0x18,0xc3,0x02,0xa8,0x0c,
0x4e,0x97,0x61,0x23,0x41,0x11,0x45,0xf4,0xe6,0xda,
0xbd,0x14,0x99,0xc1,0x85,0x21,0xd3,0x72,0x18,0x6c,
0x22,0xa8,0x4f,0xb3,0xb7,0x0b,0x65,0x28,0x1a,0xbd,
0xe2,0x8d,0xc1,0x61,0x76,0xde,0xfd,0xdb,0xaf,0x94,
0x39,0x47,0xe4,0xf1,0x40,0xdc,0x03,0x97,0x4f,0xe5,
0x07,0x6c,0x31,0x95,0xde,0xae,0xc9,0x74,0x26,0x40,
0x86,0x22,0xa9,0xc2,0x98,0x08,0x02,0x45,0xb5,0x21,
0xf4,0x20,0x79,0x94,0x24,0x2a,0x83,0xac,0x27,0x2c,
0x2f,0x01,0xc4,0xc2,0xfa,0xfc,0xa4,0x46,0x2f,0xcd,
0x20,0xa0,0x17,0x60,0xf6,0x01,0x0a,0x70,0x98,0x98,
0x17,0x09,0x80,0x2d,0x09,0x90,0x9d,0xc0,0x19,0xc3,
0x3b,0x00,0xb8,0x14,0x60,0x1b,0x40,0x6c,0xbf,0x48,
0x00,0xa0,0x33,0x41,0x00,0x00};
0x26,0x00,0x32,0x00,0xe1,0x52,0xf2,0x22,0x04,0xfc,
0x39,0x38,0x69,0x96,0xb8,0x9e,0x76,0xa3,0x9a,0x58,
0x78,0x49,0x98,0x55,0x7a,0x4c,0x20,0x87,0xde,0x23,
0xec,0x78,0xa0,0xc6,0x78,0xd5,0x57,0x0d,0x62,0x5c,
0x77,0xd0,0xbd,0xc6,0xbe,0x2e,0x4d,0x77,0x56,0xd0,
0x0e,0xa7,0x59,0x50,0x37,0xb4,0x40,0xa0,0x05,0x9d,
0x8a,0x10,0x62,0x0c,0xd2,0xc0,0x1d,0x96,0x7c,0x54,
0x64,0x50,0xe1,0xa1,0xe0,0xc9,0x89,0x3b,0x98,0x0e,
0x8e,0xc1,0x78,0xb9,0xf7,0x8e,0xc7,0x96,0x80,0xab,
0xc6,0x14,0x05,0x98,0x59,0x29,0x2a,0x40,0xab,0x80,
0x4f,0x3f,0x09,0x09,0xf1,0x15,0x8e,0xcc,0xa3,0xd4,
0x7c,0x28,0x6d,0xce,0xbf,0x9a,0x49,0x88,0x7a,0x77,
0x1f,0x02,0x3a,0xe5,0x75,0x72,0x21,0xc5,0x77,0x2e,
0x15,0xc3,0xe9,0x93,0x58,0x57,0xa0,0x08,0x13,0xe4,
0x01,0xd7,0x78,0x05,0x2d,0x03,0x33,0xb6,0x41,0x31,
0x46,0xf5,0x98,0x65,0xa9,0x0c,0xd1,0xa2,0x88,0x67,
0x44,0x32,0x01,0x30,0x94,0x10,0x77,0xe0,0x5f,0x08,
0x97,0x19,0x6e,0x27,0x38,0x45,0xd9,0xa1,0x49,0xbd,
0x45,0xb3,0x7e,0x92,0x2d,0x21,0xe5,0xbc,0x15,0xc8,
0xa8,0xca,0x61,0x4c,0xa4,0xf2,0xd2,0x82,0x4b,0x25,
0xce,0x46,0xd0,0x9d,0xce,0x29,0x91,0x71,0x94,0xe8,
0x70,0x19,0x09,0x77,0x18,0x8a,0xa9,0xbd,0x63,0x34,
0x1f,0xdd,0xaa,0xe3,0xae,0x4c,0x92,0x56,0x96,0x80,
0x2a,0xa1,0x94,0x6b,0x90,0xc8,0x93,0x33,0x10,0x82,
0xe9,0x9d,0x9e,0x5e,0x28,0x7a,0x25,0x84,0x6f,0x04,
0x43,0x66,0x7f,0x00,0x6c,0x7a,0xac,0x95,0xb4,0x03,
0x67,0xc1,0x37,0xea,0xa5,0x81,0xc3,0x63,0x9f,0x08,
0x94,0x4f,0xe0,0xae,0xdb,0x8c,0x3f,0x21,0x09,0x19,
0xc9,0xda,0x50,0x9a,0x5e,0x7a,0x61,0xb0,0xce,0x0a,
0x99,0xea,0x8c,0x87,0x8a,0xd6,0x22,0x14,0x1d,0x51,
0xd0,0x70,0x19,0xb8,0x4e,0xa8,0xed,0xc8,0x53,0x8a,
0xe1,0x01,0xb8,0xb6,0xe5,0x12,0x18,0xaa,0x2e,0x65,
0xdd,0x8a,0x9f,0x84,0x8b,0x3a,0xe2,0x9e,0x28,0xed,
0x8e,0xa5,0x25,0xd6,0x35,0x96,0x37,0xa7,0x3c,0x1c,
0x34,0xfd,0xa0,0x57,0x45,0x19,0x85,0x7d,0xfa,0xb3,
0xf1,0x29,0xaf,0x8c,0x75,0x9a,0x75,0x20,0x58,0x38,
0x79,0x05,0x9a,0x53,0xa4,0xc2,0xb2,0x01,0x05,0xe0,
0x91,0x41,0xcf,0x5d,0x1b,0x88,0xf5,0xf1,0x19,0xea,
0x13,0x87,0x54,0x20,0xf8,0x75,0xe6,0x0b,0x0d,0x0a,
0x1d,0xa9,0x10,0x5e,0x1f,0x97,0xa4,0x68,0xb2,0xa1,
0x04,0xe5,0x32,0x46,0x17,0x1a,0x3b,0x84,0x04,0x14,
0x5e,0x6b,0x80,0x62,0x51,0x80,0x15,0x9a,0x57,0x6a,
0x75,0xd5,0x52,0xa3,0xfd,0x2d,0x24,0xa8,0xa1,0x57,
0x0a,0xa1,0x26,0x94,0x5e,0xc3,0x97,0xab,0x79,0x08,
0x2a,0xb8,0x06,0xfb,0x49,0xb9,0x7b,0x40,0x94,0x8a,
0x4f,0x7c,0x8c,0x3a,0x26,0x1e,0x8a,0x44,0xab,0xe6,
0x5b,0x7a,0xb2,0x6a,0xab,0x74,0x5d,0xfd,0x04,0xbf,
0x59,0x6d,0x95,0xe1,0xa2,0x16,0xf3,0xea,0xca,0x3c,
0x65,0x0d,0xf7,0xdd,0x91,0x18,0x1c,0x35,0x98,0x47,
0x82,0xd5,0x3c,0x79,0x79,0x6c,0xea,0x70,0xa9,0x17,
0x9d,0x61,0x90,0x3a,0x4c,0x42,0x5e,0x80,0xea,0x94,
0x64,0x19,0xab,0x06,0x04,0x7e,0xb0,0x83,0xc5,0xc6,
0xfd,0x51,0x3c,0xea,0x37,0x44,0x03,0xe5,0x31,0xce,
0x51,0xc5,0x64,0x94,0xfa,0x4f,0x22,0x5f,0x40,0x1a,
0x08,0x00,0x44,0x55,0xcc,0x78,0x1d,0x93,0xad,0x90,
0x16,0x3a,0x14,0xe5,0x6b,0x11,0x90,0x28,0x68,0x64,
0xa2,0xdb,0x36,0x96,0x80,0x8f,0x81,0x88,0x51,0xa8,
0x0c,0x29,0x9d,0x36,0x07,0xe2,0x1b,0xab,0x91,0x48,
0x73,0x96,0x0f,0x10,0x1c,0x4d,0xc3,0x28,0x6d,0x06,
0x77,0x21,0xea,0xb5,0x10,0xe4,0x02,0x68,0x32,0x18,
0x70,0x99,0x43,0x1f,0x56,0x3b,0x71,0x26,0xc1,0x9c,
0x4f,0x18,0xa2,0x32,0x5c,0x29,0x2b,0x18,0xc9,0x92,
0xb0,0xa0,0x71,0x66,0x07,0xe3,0x3e,0x8a,0x77,0x16,
0xc9,0xca,0x0d,0x9d,0x20,0x42,0x96,0x24,0x54,0xe4,
0x23,0xb4,0xf7,0x20,0xec,0x9d,0xa2,0x51,0x80,0xa7,
0xaa,0xdc,0xcf,0x13,0x0c,0x7a,0x15,0x18,0x9c,0x13,
0xeb,0x1b,0xa4,0x5b,0x93,0x2a,0x59,0x7a,0x27,0x36,
0xb6,0x34,0x77,0x41,0xe9,0x46,0x3e,0xaf,0x7a,0xce,
0xd2,0x60,0x10,0x86,0x79,0x5a,0xe0,0x1a,0xbd,0x90,
0x60,0x1b,0x57,0x23,0x02,0x95,0x21,0x5c,0x97,0x80,
0xb2,0x09,0x5a,0x38,0x01,0x11,0x86,0x22,0xc0,0x72,
0x8c,0x70,0xc5,0x38,0x49,0x69,0x7b,0x4e,0xf6,0x11,
0xe0,0x97,0xde,0x5c,0x3f,0x8a,0xb9,0xf1,0xd1,0xdf,
0x63,0x87,0x70,0x44,0x41,0xda,0xc3,0x75,0x00,0x2a,
0xb0,0xa3,0x9f,0x00,0x22,0x2b,0xce,0x2e,0x91,0xa5,
0xab,0x94,0x4c,0x50,0xf2,0x04,0xef,0x45,0x07,0x8c,
0x8a,0x4a,0xe2,0x18,0xd4,0x6a,0x63,0x02,0x7d,0x57,
0x8e,0xd2,0x3c,0x3b,0x45,0x6f,0xb6,0x07,0xe3,0xd8,
0x54,0xf4,0x70,0x90,0x6f,0xeb,0xac,0x09,0xc8,0xe0,
0x06,0xd0,0x18,0x5b,0x1a,0x54,0xa5,0x13,0x80,0x1e,
0x0e,0x32,0x8a,0x5e,0x30,0xb5,0x4f,0x0f,0x31,0x18,
0xdc,0x00,0xef,0x4f,0x12,0x2b,0xfe,0xa7,0x3a,0xb5,
0xa6,0xdd,0xa5,0x6c,0x7e,0x15,0x9e,0x63,0xe7,0xae,
0x7a,0xbc,0xc4,0xdc,0xe4,0x9c,0xad,0x9c,0xf5,0xe3,
0xa5,0xe7,0x4b,0x8d,0x04,0x5d,0x90,0x76,0x96,0x39,
0x30,0xe4,0xe0,0x02,0x51,0x15,0x73,0x65,0x58,0x22,
0x17,0xff,0xc2,0xce,0x19,0xf0,0xe5,0xaa,0xd6,0x84,
0x78,0xa0,0xc1,0xae,0x99,0xb7,0x6b,0xa5,0x6b,0xc1,
0x55,0xf1,0x94,0x40,0x78,0x3b,0x60,0x29,0x29,0x8f,
0xd1,0x10,0x79,0x79,0x1b,0x01,0x4f,0x24,0x9d,0x8b,
0x51,0x2e,0x1a,0xfa,0xaa,0xe2,0xaf,0xb1,0x9f,0xf0,
0xa4,0x84,0x8c,0x26,0x1a,0x73,0xa2,0x42,0xec,0x05,
0x64,0x16,0x0d,0x28,0xef,0xe8,0x21,0x54,0x26,0x51,
0xa9,0x66,0xa6,0x81,0x0e,0x46,0xbd,0x49,0x3f,0x24,
0x93,0x1d,0x52,0x1e,0xb9,0xbc,0x8f,0x8f,0x4b,0x58,
0x21,0x05,0xf1,0xc2,0x25,0x38,0x01,0x43,0x39,0xb7,
0x06,0x9e,0x1a,0x64,0x53,0xa2,0x94,0x57,0x75,0x37,
0x5e,0x15,0x17,0x19,0xe7,0x9b,0x8e,0xd2,0x0f,0xc6,
0xd2,0x62,0x0f,0x7c,0x82,0x1d,0x23,0xb5,0xa4,0x26,
0x75,0xc1,0x0b,0x48,0xe7,0x61,0xb8,0xaa,0x9e,0x6a,
0xf5,0xbf,0x0b,0xc6,0x8b,0xdd,0xc0,0x41,0x1c,0xd0,
0xc3,0x1f,0x62,0xaf,0x78,0x7b,0xc1,0x47,0x9b,0xbd,
0xa5,0xe6,0xd8,0x08,0x20,0x11,0x0d,0x7f,0x8b,0x0a,
0xe5,0x4f,0x64,0x4c,0x81,0x47,0x0e,0x44,0x75,0xae,
0xe6,0x5a,0x00,0x0d,0x44,0xc8,0x88,0x11,0x8e,0x99,
0xb1,0xeb,0xe8,0x06,0x31,0x9c,0x34,0x8e,0x0d,0x71,
0x33,0x74,0xce,0xa3,0x50,0x4d,0x1c,0x33,0xcc,0xd6,
0x43,0x46,0xcc,0xe0,0x01,0x1c,0x32,0xc3,0x65,0x0d,
0x19,0x36,0x84,0xcd,0x73,0x3f,0x00,0x54,0x35,0x14,
0x32,0x50,0x14,0x12,0x52,0x0c,0x82,0xc7,0x93,0x39,
0x40,0x42,0x26,0xdc,0x04,0x10,0x14,0x0d,0x04,0x01,
0x0c,0xd6,0x13,0x57,0xc0,0x41,0x01,0x5d,0x2a,0x80,
0x16,0x0e,0x3f,0x01,0x40,0x32,0x50,0x15,0xcd,0x71,
0x26,0xc4,0xd8,0xa0,0x14,0x8d,0x8c,0x33,0x5c,0x05,
0x30,0xd2,0xac,0x7f,0x36,0x64,0x05,0x73,0x4e,0x83,
0x5e,0x16,0xc2,0xc7,0x62,0x6a,0x4d,0x54,0x35,0x58,
0xd5,0x80,0x02,0x8d,0x5a,0x35,0x70,0x35,0x60,0xcb,
0x40,0x44,0x00,0xbc,0xd8,0x93,0x6b,0x86,0xd4,0x34,
0x14,0xcd,0xf0,0x5a,0x4c,0xe2,0x05,0x8e,0xc9,0xfb,
0x1c,0x6c,0x73,0x4f,0xcc,0xce,0x93,0x3a,0xc3,0x1f,
0x33,0xbc,0x49,0x63,0x37,0x0d,0x1d,0x26,0xdc,0xd9,
0x71,0xad,0x0c,0xf7,0x33,0xe4,0x2e,0xb0,0x11,0x44,
0x94,0x35,0xc8,0xcf,0xc3,0x3f,0x83,0x55,0x34,0x60,
0x6d,0x23,0x40,0x8d,0x04,0x34,0x18,0x3c,0x13,0x42,
0x4d,0x0b,0x34,0x34,0x5b,0x00,0xf5,0x8d,0x11,0x34,
0x4c,0x9b,0x23,0x45,0xac,0x99,0x36,0x18,0xd8,0x53,
0x5c,0x4a,0x08,0x34,0x0c,0x34,0xe3,0x46,0x2c,0xbc,
0x0d,0x26,0xca,0xe3,0x60,0x0d,0x22,0x12,0xc8,0xd2,
0x51,0x2d,0x6c,0xa8,0x12,0xdc,0x6c,0xe3,0x3f,0xcd,
0x64,0x12,0xf4,0xd2,0xe1,0x30,0x43,0x2a,0xae,0xc8,
0xd3,0x21,0x31,0xcb,0x4e,0xb3,0x72,0xc7,0xa0,0x12,
0x4c,0xdd,0x34,0xe8,0x05,0x31,0xcf,0x8c,0xe8,0xb1,
0xd4,0xd1,0xb0,0x14,0x40,0x55,0x36,0xc6,0xce,0x80,
0x13,0x8c,0xe5,0xb1,0xf0,0x05,0x23,0x4a,0xc3,0xdc,
0x34,0x24,0xda,0x83,0x3d,0x6c,0x70,0x05,0xa6,0xc7,
0x23,0x5a,0xc0,0x0a,0xb1,0xac,0xd9,0xf2,0x3e,0x43,
0x23,0xad,0xbc,0x49,0x53,0x56,0xec,0xb3,0xb4,0x3a,
0xcb,0x53,0x38,0x0d,0x44,0x36,0xbc,0x04,0x60,0x11,
0x4d,0x9c,0x35,0x10,0x2e,0xb0,0x16,0x43,0x23,0x04,
0x64,0x35,0x50,0x15,0x43,0x45,0xb2,0x7c,0xd5,0x2b,
0x25,0xcd,0x20,0x36,0xc4,0x16,0x53,0x66,0xc9,0xad,
0x0c,0xa8,0x32,0x80,0xda,0x40,0x52,0x33,0x88,0x04,
0x33,0x43,0x82,0xeb,0x26,0xb0,0x35,0xcb,0x3e,0x0d,
0x98,0x35,0x48,0x32,0xbb,0x48,0x12,0x57,0x96,0x81,
0xb9,0xe1,0x12,0x8c,0x6c,0x88,0x98,0x2b,0xe8,0x07,
0xa2,0xe2,0x8d,0xfc,0x9b,0x13,0x44,0x81,0x0e,0x35,
0x10,0xd4,0x60,0x15,0x40,0x4e,0x35,0x88,0x4b,0xa2,
0x6b,0x2d,0x00,0xb3,0xe0,0xd1,0x8b,0x20,0x41,0x19,
0xb2,0x10,0x61,0x9b,0x21,0xc2,0xbd,0xb2,0x24,0xd9,
0x80,0x10,0x6c,0x72,0x01,0x14,0xd1,0x83,0x61,0xac,
0x9a,0xb2,0x70,0xd0,0xe0,0x02,0x84,0x93,0x35,0x24,
0xcf,0x63,0x54,0xac,0xa1,0x01,0x24,0xd5,0x73,0x56,
0x40,0x4f,0x35,0x6c,0x16,0x83,0x65,0x44,0xbc,0x0c,
0x9c,0xbf,0xab,0x2b,0x03,0x5d,0x12,0x60,0x32,0x21,
0x2b,0x80,0x4f,0x34,0x34,0x35,0x23,0x47,0xec,0xa8,
0xb2,0xa8,0x35,0x93,0x54,0x80,0x4e,0x35,0x10,0x05,
0x94,0x96,0x6d,0x0d,0x01,0x3e,0xd0,0xf0,0x13,0x6d,
0x26,0x0d,0x6e,0xc7,0xd0,0x15,0x2c,0x99,0x0d,0x2c,
0xce,0x10,0x11,0x43,0xd6,0x35,0x7c,0x04,0x9b,0x57,
0x2d,0x64,0xb4,0x90,0x2b,0x23,0x59,0x0d,0x6a,0x35,
0xb0,0x4b,0x9b,0x33,0xcd,0x0a,0x34,0x30,0xd9,0x11,
0xad,0x00,0x0a,0x16,0xc4,0x16,0x70,0xcb,0x00,0x4c,
0x1c,0x82,0xc7,0xcb,0x4d,0xcd,0xb1,0xb6,0x80,0xce,
0x3b,0x1e,0x8e,0x3a,0x35,0x44,0x9b,0x00,0xda,0x6d,
0x00,0xb3,0xdc,0xe3,0xab,0x67,0x6d,0x60,0xb6,0x02,
0xcf,0xa3,0x64,0x4d,0x96,0xb4,0x30,0xda,0x23,0x6a,
0xcd,0x98,0x18,0x78,0xd7,0x41,0xb2,0xed,0x64,0xb7,
0x02,0xd8,0x9b,0x62,0xc1,0x48,0x18,0x7a,0xda,0x1b,
0x34,0x8d,0x0f,0x01,0x0a,0xcd,0x53,0x45,0x0d,0x02,
0x34,0x5c,0xce,0x5b,0x59,0x00,0x4c,0x0d,0xa0,0xd5,
0x00,0x11,0x80,0x0a,0x35,0xa8,0x9a,0x81,0xb4,0xad,
0xda,0x04,0x68,0x04,0x2b,0x31,0x2c,0x9e,0x26,0xb2,
0xd0,0x40,0x5a,0x0d,0x18,0xb7,0x08,0x04,0x30,0xd8,
0x03,0x2c,0xb1,0xe4,0xd9,0x8b,0x75,0x6c,0xc9,0x0d,
0x58,0x05,0x30,0xfa,0x43,0x4a,0x18,0x7a,0xd5,0x70,
0xca,0x2d,0x9a,0x36,0x60,0x32,0x1b,0x3e,0x00,0x44,
0xae,0xc8,0xd2,0xe3,0x47,0xc6,0xd2,0x04,0x68,0xdc,
0x10,0xd3,0x43,0x65,0xb4,0x2e,0xd1,0x9b,0x62,0xac,
0xb5,0xb5,0x90,0xd5,0x33,0x8e,0x6d,0xea,0xb4,0x4e,
0xcc,0x0b,0x24,0xc3,0x5b,0xb4,0x68,0xd6,0xb0,0x14,
0xcc,0x58,0x00,0x28,0xd4,0x33,0x51,0x4a,0x08,0x33,
0xd6,0xde,0xf0,0xd1,0xc1,0x03,0xb5,0xc4,0xd5,0xc3,
0x66,0x2e,0x0c,0x1b,0x50,0x32,0x80,0xd2,0x03,0x56,
0xb7,0x7e,0xe1,0x41,0x06,0xcc,0xe2,0x0d,0xa4,0xce,
0x53,0x65,0xec,0x70,0xb7,0x58,0x9b,0x31,0x2d,0x06,
0xcb,0x33,0x64,0xda,0x30,0x15,0x6e,0x18,0xb6,0xe0,
0xd6,0xd9,0x68,0x20,0xf2,0x55,0x8c,0x11,0xf5,0x71,
0xa2,0x26,0x0d,0xba,0x57,0xb8,0x85,0xa2,0x18,0x6e,
0x7a,0xbf,0xe4,0x26,0xe2,0x05,0xb1,0x91,0xee,0x05,
0x0f,0x8b,0x79,0x63,0xc0,0xc6,0xd4,0x51,0x62,0xea,
0x1b,0x0d,0xdf,0x31,0x74,0xe1,0x84,0xa9,0xd4,0xac,
0x70,0x46,0xeb,0x97,0x0b,0xe1,0x6f,0x40,0x4a,0xdb,
0x6e,0x63,0x4c,0xdf,0x67,0x42,0xdb,0xcb,0x40,0xa0,
0x8a,0x66,0xa1,0xe3,0x3d,0x51,0x50,0x81,0x59,0x91,
0x9d,0x8b,0xa8,0x61,0x28,0x1b,0x94,0x99,0x1f,0x61,
0xba,0x1f,0x43,0xc6,0xc2,0x75,0x46,0xad,0x70,0x66,
0x57,0x40,0x78,0x5a,0x15,0x1d,0x73,0xc9,0x82,0x03,
0x06,0x3d,0xb4,0x30,0xa6,0x58,0xb2,0xa1,0x7c,0x85,
0x93,0x22,0x50,0x88,0xb9,0x52,0x8e,0x38,0x83,0x57,
0xb5,0xa7,0x46,0x9e,0xd9,0xe3,0xab,0xb2,0x40,0x5d,
0x86,0x97,0xc6,0x95,0x1c,0x88,0x21,0xdd,0x27,0xa5,
0x21,0x0f,0x11,0x0e,0xe4,0x99,0xcc,0x13,0x71,0x6f,
0xed,0x46,0xe1,0xbd,0xe6,0xf7,0x9b,0x74,0x51,0x90,
0x6a,0x91,0xb1,0x08,0x69,0x48,0xd6,0x72,0x12,0x4f,
0x39,0x0c,0xd4,0x5b,0x89,0xed,0x0c,0x49,0x4a,0xca,
0x7b,0x41,0x12,0x55,0x0c,0x80,0xd9,0xd4,0x96,0x4e,
0x42,0x0d,0xb1,0x60,0xc3,0x26,0x22,0x3b,0x2b,0x2c,
0x53,0x01,0x13,0x20,0xf7,0x40,0xc8,0x50,0x71,0x37,
0xc1,0x16,0x01,0x3a,0x50,0xc6,0x77,0x47,0x64,0x10,
0x86,0x83,0x15,0x3d,0x81,0x0a,0x13,0xaa,0xb7,0x24,
0x72,0x26,0xa8,0x13,0x80,0x28,0xa5,0x1d,0x54,0x39,
0x75,0xdd,0x2e,0x16,0xd5,0x60,0x96,0x0a,0x6c,0x9c,
0x79,0x76,0x4a,0x17,0x28,0xd9,0x57,0x28,0x34,0x92,
0x24,0x07,0xf8,0x7d,0xf7,0x4f,0xca,0x4f,0x6f,0x10,
0x6b,0xb6,0xf4,0x16,0xce,0x49,0xd9,0x3b,0xf0,0x64,
0x4f,0xa4,0x19,0x5c,0xf0,0x57,0x97,0x89,0x44,0x8b,
0x28,0x96,0x42,0xe3,0xc6,0xa2,0x77,0xfc,0xf9,0x73,
0xb4,0xd9,0xef,0x41,0x56,0x0f,0x81,0x93,0xa5,0x9e,
0x09,0xb4,0x7a,0x30,0x65,0xe6,0x27,0x1d,0xe0,0xa6,
0x11,0xde,0xc9,0x5a,0x68,0xa2,0xb2,0x46,0x69,0xd4,
0x5b,0x7f,0x2c,0x12,0x93,0xd3,0xc2,0x07,0x95,0x5d,
0x0e,0x2b,0xbb,0x42,0x3e,0xa4,0xa4,0xde,0xf0,0x94,
0xdf,0xba,0x0e,0x55,0xad,0x65,0x97,0x4b,0xa6,0x3b,
0xec,0xf1,0xbb,0x95,0x93,0xe9,0x83,0x11,0x96,0xc2,
0xa1,0xe7,0x9e,0x6c,0x32,0xe4,0x46,0x66,0x05,0x8c,
0x6b,0x58,0x7a,0x71,0xbb,0x8b,0x99,0x23,0xf9,0x4f,
0xc7,0x11,0x0e,0xdc,0x4e,0xa2,0xc5,0x02,0x04,0x03,
0xcc,0xbb,0x88,0xa9,0x60,0x58,0x13,0xec,0x32,0x62,
0x3a,0xb2,0xa1,0xc4,0x8e,0x04,0xae,0x4b,0x10,0xa0,
0xeb,0xdc,0x21,0x3c,0x03,0xc6,0x99,0xef,0x1d,0x32,
0x61,0xc6,0x77,0xbd,0x46,0x9e,0x64,0xe6,0x28,0x64,
0x28,0x04,0x8b,0x10,0x1c,0x39,0x52,0x21,0x43,0x91,
0x76,0xd8,0x83,0x3a,0x56,0xa0,0x0e,0x00,0xb8,0xe6,
0x77,0x56,0x64,0x8a,0x18,0xfc,0xe5,0x40,0x0f,0x1c,
0x47,0x0a,0x2c,0x03,0xe0,0x55,0x40,0x3c,0xbc,0xcc,
0x85,0x93,0xcc,0xc6,0x0c,0x12,0xb4,0xae,0x94,0x83,
0xc6,0x56,0x0a,0x14,0xa8,0xc3,0x76,0x8f,0x95,0x5a,
0xbc,0xfe,0xc1,0x0d,0xab,0x61,0x8f,0x99,0xa1,0x54,
0x19,0x28,0x50,0xab,0x21,0x26,0xb3,0xa5,0x12,0x6d,
0xad,0xa5,0x97,0x08,0x30,0xab,0xf6,0x9b,0x2e,0x2a,
0x73,0xc3,0xab,0xfa,0x28,0xe6,0xbf,0xc4,0xbb,0xeb,
0xc9,0xac,0x0c,0x93,0xd8,0xd6,0xa2,0x2f,0x15,0x2e,
0x17,0xf1,0xa4,0x44,0x71,0x4e,0xc2,0xc5,0xd9,0xf4,
0x88,0x2b,0xbd,0x3e,0x6f,0xe1,0xa8,0x1c,0x31,0x8f,
0x00,0x33,0x81,0x21,0x1c,0x85,0x1a,0xa4,0xcc,0x24,
0x8b,0xc4,0x8e,0x12,0x40,0x36,0xc1,0xac,0x2c,0xba,
0x1a,0xce,0xd7,0x6b,0x38,0x44,0x9c,0x0c,0xc5,0x38,
0xa4,0xda,0x57,0x34,0x1a,0xf4,0xa0,0x12,0xe4,0xee,
0x44,0x26,0x38,0x36,0xcb,0x39,0x46,0xc8,0xb3,0x9c,
0x6c,0xb0,0xd4,0x4d,0x29,0x1b,0x42,0xdf,0xd3,0x4b,
0x44,0xbf,0x34,0xbc,0x4c,0x20,0xd9,0x06,0xd9,0xb3,
0xd0,0x36,0xd1,0xb7,0x4a,0xaf,0xb0,0x40,0xe9,0x63,
0xb8,0x57,0x42,0x3a,0xcc,0x6e,0x83,0x87,0xc4,0xdc,
0x21,0x3c,0x6e,0xd0,0xe1,0xef,0x15,0x45,0xd5,0xd0,
0x18,0x5e,0x2c,0x0f,0xbd,0x82,0xb6,0x8a,0xcd,0x49,
0x08,0x6a,0x0d,0x9a,0x44,0x4b,0x49,0xef,0xb0,0xc6,
0xbd,0xf1,0xc2,0x82,0xc1,0x06,0x4c,0xe6,0x02,0x07,
0x01,0x9c,0x07,0x18,0x81,0xe2,0xd3,0x00,0x75,0x39,
0x94,0x02,0xf3,0xac,0x40,0x73,0x00,0xbc,0x03,0xe0,
0xbf,0x80,0x41,0x3c,0x8e,0x35,0xc7,0xdb,0x0b,0xca,
0x08,0x69,0xfe,0x3a,0xc5,0x4e,0x1b,0x85,0xfc,0x93,
0x71,0xeb,0x07,0xf3,0x07,0xa4,0x12,0x51,0x12,0x54,
0x0d,0x21,0x68,0x2d,0xd1,0x4c,0xaa,0x9d,0xb8,0xfe,
0xf3,0x01,0xc1,0x9b,0x8d,0x93,0x7e,0x1b,0x86,0xbb,
0x26,0x25,0x2b,0x30,0xdf,0xe6,0x3c,0x57,0x30,0x55,
0x7c,0x38,0x72,0x03,0xa5,0x67,0x2b,0xae,0x55,0xb6,
0xf4,0x21,0xab,0x0a,0x94,0x22,0xeb,0x98,0x5a,0xad,
0x6b,0x3d,0xae,0xd2,0xe4,0x40,0x65,0x88,0x04,0x5f,
0xe4,0x72,0x2f,0x47,0x15,0x6a,0xc5,0x03,0x94,0xc1,
0x4b,0xbd,0x11,0x0a,0xac,0x02,0x6f,0x49,0x5b,0x46,
0xf4,0xb1,0xf6,0x2f,0x3f,0x6a,0x81,0x4e,0x56,0x4c,
0xc2,0x78,0x53,0xbc,0x3a,0x50,0xd2,0xcd,0xa4,0x34,
0x2e,0xc7,0x90,0x13,0x03,0x28,0xb5,0x32,0xf8,0xc0,
0xcb,0xc2,0x8d,0x38,0x2a,0xfb,0x01,0xe3,0x40,0x79,
0x0c,0x3c,0x02,0x00,0x18,0x10,0x50,0x09,0x34,0x02,
0x72,0x55,0x70,0x16,0xbd,0x45,0x07,0xb2,0x01,0xae,
0xbd,0x51,0x01,0x3a,0x52,0x91,0x2a,0xce,0x6f,0xd4,
0x65,0xf1,0x0d,0x02,0x9a,0x12,0xb4,0x66,0x98,0x69,
0xcf,0xe2,0x84,0x5c,0x28,0xd7,0xb1,0x81,0x93,0xc0,
0xb1,0xa9,0x90,0x18,0xd1,0x35,0x24,0xb5,0x21,0xd3,
0x88,0x0d,0xd5,0x06,0x4d,0xc2,0x61,0x64,0x82,0x6a,
0x5a,0xd5,0x46,0x70,0x9a,0x02,0x56,0xc1,0x18,0xfa,
0xc0,0x1d,0xd0,0x9f,0x09,0x0f,0x05,0x64,0x14,0x70,
0x48,0xbc,0x50,0x4e,0x3c,0x0b,0x48,0xc4,0x88,0xf0,
0xc4,0xba,0x06,0x6b,0x2f,0xab,0x86,0xfa,0xba,0x9c,
0x8b,0xfa,0x7a,0xa0,0x88,0x7a,0xbb,0xcf,0x3c,0x24,
0xad,0x93,0x97,0x3e,0x14,0x68,0x44,0x24,0xe5,0x20,
0xc5,0xeb,0x84,0x08,0xc7,0x02,0x54,0xc3,0xc0,0x47,
0x01,0x54,0x04,0x96,0xb4,0xc1,0xe3,0x9a,0x3e,0x9b,
0xf2,0x25,0xc2,0x92,0x6d,0x4c,0xcb,0x31,0x28,0x0c,
0xb3,0x01,0xe2,0x71,0x23,0xcd,0x44,0xe0,0xbe,0xd0,
0x4e,0x36,0x7e,0x8f,0x8c,0x2e,0xd8,0x71,0xa0,0x42,
0x5c,0x47,0x79,0xce,0x98,0x74,0xb4,0x9a,0x5e,0x47,
0x20,0xa4,0x64,0x20,0x0c,0x87,0xaf,0xbc,0x3f,0xf6,
0xf4,0xab,0xd1,0x6a,0x20,0xec,0x11,0x3a,0xaf,0x1a,
0x96,0x01,0x41,0xa9,0xd7,0x41,0x1f,0x7c,0xd2,0x0d,
0x1b,0xa0,0x8f,0x8e,0x60,0xd2,0x47,0xd2,0xd9,0x82,
0x7a,0x42,0x6a,0x97,0x6b,0xf6,0x08,0xc7,0x56,0x0e,
0x39,0x81,0x63,0x2f,0xdb,0xb9,0x8c,0x24,0x39,0xf5,
0x6b,0xaf,0x23,0xae,0x6d,0x00,0xb0,0xaf,0xc7,0x06,
0x92,0xfc,0x90,0x71,0xef,0xcc,0xbf,0x3a,0xfd,0x0b,
0xf4,0x95,0x00,0xab,0x72,0xbb,0x0a,0xfa,0xef,0xac,
0x1b,0x96,0xbe,0x28,0x51,0x8b,0x82,0x79,0xfc,0x11,
0x59,0x63,0xcf,0xcf,0x37,0x99,0x1c,0x87,0xa0,0x91,
0xbb,0x48,0x72,0xf0,0x06,0x82,0x89,0x47,0x93,0xcb,
0x0d,0x2b,0xde,0xe3,0xc3,0x0a,0xe4,0x80,0x0a,0xa3,
0x89,0xcf,0x16,0x02,0x38,0xd8,0x54,0x63,0x0c,0x0a,
0xa0,0x31,0x3a,0x5d,0x84,0x8d,0x04,0x45,0x17,0xd3,
0x9b,0x6a,0xf5,0x52,0x67,0x06,0x24,0x87,0x4d,0xc8,
0x61,0xb0,0x8a,0xa1,0x3e,0xce,0xdc,0x2d,0x94,0xa0,
0x6a,0xf7,0xca,0x37,0x05,0x85,0xdb,0x7b,0xf7,0xae,
0xbf,0x50,0xe5,0x1f,0x93,0xc5,0x03,0x70,0x0e,0x5d,
0x3f,0x94,0x1d,0xb0,0xc7,0x57,0x7a,0xbb,0x35,0xd0,
0x99,0x02,0x18,0x8a,0xa7,0x1a,0x60,0x20,0x09,0x16,
0xd4,0x87,0xd0,0x81,0xe6,0x50,0x90,0xaa,0x0e,0xb0,
0x9c,0xb0,0xbd,0x07,0x13,0x0b,0xfb,0xf2,0xd1,0x18,
0xbf,0x38,0x82,0x80,0x5d,0x83,0xd8,0x04,0x29,0xc2,
0x62,0x60,0x5c,0x26,0x00,0xb4,0x26,0x42,0x77,0x00,
0x67,0x0c,0xec,0x02,0xe0,0x51,0x80,0x6d,0x01,0xb2,
0xfd,0x30,0x02,0x80,0x00,0x04,0x00};
static datatype data_COPYING_FULL[]=
{
{ 255, 44290, 19766, data__COPYING_FULL, 0 }
{ 255, 44290, 19767, data__COPYING_FULL, 0 }
};
@@ -473,7 +473,7 @@ unsigned char data_bmphxc2001_backgnd_bmp[]={
0xd7,0xad,0x9a,0xdb,0xad,0xda,0xdf,0xae,0x1a,0xe3,
0xae,0x5a,0xe7,0xae,0x9a,0xeb,0xae,0xda,0xef,0xaf,
0x1a,0xf3,0xaf,0x5a,0xf7,0xaf,0x9a,0xfb,0xaf,0xda,
0xff,0xb0,0x1b,0x03,0xa0,0xe1,0x9a,0x20,0x00};
0xff,0xb0,0x1b,0x03,0xa0,0xe0,0x00,0x20,0x00};
static bmaptype bitmap_hxc2001_backgnd_bmp[]=
@@ -5,7 +5,7 @@
// (c) HxC2001
// (c) PowerOfAsm
//
// File: hxc2001.bmp Size: 23418 (2066) x:150 y:151
// File: hxc2001.bmp Size: 23418 (2064) x:150 y:151
//
//
@@ -234,10 +234,10 @@ unsigned char data_bmphxc2001_bmp[]={
0x33,0x77,0xf1,0xfd,0x99,0x74,0xb9,0x1e,0xa2,0xaa,
0x3c,0x5b,0x93,0x6e,0x38,0xfb,0xca,0xaa,0xff,0x12,
0xe5,0xb0,0x83,0x96,0x73,0x08,0x85,0xbf,0x79,0x9d,
0x47,0x79,0xa3,0x34,0x80,0x00};
0x47,0x7a,0xc4,0x00};
static bmaptype bitmap_hxc2001_bmp[]=
{
{ 9, 150, 151, 23418, 2066, data_bmphxc2001_bmp, 0 }
{ 9, 150, 151, 23418, 2064, data_bmphxc2001_bmp, 0 }
};
@@ -1541,7 +1541,7 @@ unsigned char data_bmpsob_bmp[]={
0xaf,0xe6,0xb5,0x97,0xf6,0x59,0xf9,0xb1,0x26,0xc8,
0x99,0xfa,0x57,0xf9,0xa4,0xa6,0xc9,0x9a,0x66,0x5b,
0x49,0x6d,0x65,0x35,0x9b,0x36,0x6a,0x69,0xb3,0xe5,
0x99,0x95,0xfa,0x6d,0x29,0x9a,0x80,0xcd,0x04,0x00
0x99,0x95,0xfa,0x6d,0x29,0x9a,0x80,0x00,0x04,0x00
};
@@ -974,7 +974,7 @@ unsigned char data__jozz_cognition_mod[]={
0x2e,0x69,0xc0,0x81,0x9a,0x9c,0xd5,0xe6,0xb6,0x4a,
0x52,0x64,0x92,0x02,0x59,0xf3,0x24,0x07,0xc0,0x12,
0x02,0xb0,0x13,0x00,0x24,0x03,0xe0,0x0d,0x00,0x64,
0x09,0x89,0x0d,0x83,0x34,0x20,0x00};
0x09,0x89,0x0d,0x80,0x00,0x20,0x00};
static datatype data_jozz_cognition_mod[]=
@@ -5,7 +5,7 @@
// (c) HxC2001
// (c) PowerOfAsm
//
// File: maktone_class_cracktro15.mod Size: 13766 (5876)
// File: maktone_class_cracktro15.mod Size: 13766 (5875)
//
//
@@ -613,10 +613,10 @@ unsigned char data__maktone_class_cracktro15_mod[]={
0x10,0x78,0x84,0x01,0x1a,0x21,0x51,0x0a,0x20,0x78,
0x32,0xa2,0x1d,0x10,0xf0,0x1a,0x44,0x46,0x22,0x22,
0x28,0x07,0x74,0x45,0x62,0x2c,0x01,0x18,0x8c,0x44,
0x60,0x01,0x40,0xcd,0x08,0x00};
0x60,0x68,0x01,0x00,0x00};
static datatype data_maktone_class_cracktro15_mod[]=
{
{ 255, 13766, 5876, data__maktone_class_cracktro15_mod, 0 }
{ 255, 13766, 5875, data__maktone_class_cracktro15_mod, 0 }
};
@@ -5,7 +5,7 @@
// (c) HxC2001
// (c) PowerOfAsm
//
// File: vim_not_again.mod Size: 27514 (17445)
// File: vim_not_again.mod Size: 27514 (17443)
//
//
@@ -1770,10 +1770,10 @@ unsigned char data__vim_not_again_mod[]={
0xa4,0xc2,0x94,0x56,0x30,0x29,0xba,0xf7,0x60,0x28,
0x5c,0xf1,0x15,0xa0,0x98,0xeb,0xe0,0x5c,0xa2,0x03,
0xfa,0xfd,0xe0,0x41,0xaf,0xa5,0x73,0x96,0xaa,0x82,
0x7f,0x03,0x34,0x10,0x00};
0x82,0x04,0x00};
static datatype data_vim_not_again_mod[]=
{
{ 255, 27514, 17445, data__vim_not_again_mod, 0 }
{ 255, 27514, 17443, data__vim_not_again_mod, 0 }
};
@@ -5,7 +5,7 @@
// (c) HxC2001
// (c) PowerOfAsm
//
// File: zandax_supplydas_booze.mod Size: 9226 (4994)
// File: zandax_supplydas_booze.mod Size: 9226 (4993)
//
//
@@ -525,10 +525,10 @@ unsigned char data__zandax_supplydas_booze_mod[]={
0xa7,0xda,0x9d,0xab,0xda,0xdd,0xae,0x0b,0xe1,0xfe,
0x16,0x12,0xd7,0xdb,0x9d,0xbb,0xdb,0xdd,0xbf,0xdc,
0x1d,0xc3,0xdb,0x81,0x64,0x1b,0x36,0xc5,0xc8,0x44,
0x08,0x19,0xa2,0x00};
0x0a,0x20,0x00};
static datatype data_zandax_supplydas_booze_mod[]=
{
{ 255, 9226, 4994, data__zandax_supplydas_booze_mod, 0 }
{ 255, 9226, 4993, data__zandax_supplydas_booze_mod, 0 }
};
@@ -50,6 +50,9 @@
#ifdef WIN32
#include <windows.h>
#endif
#include <stdint.h>
#include "hxcmod.h"
#include "microintro.h"
@@ -265,10 +268,10 @@ uintro_context * uintro_init(unsigned short xsize,unsigned short ysize)
ui_context->blurbuffer=(unsigned int *)malloc(ui_context->xsize*ui_context->ysize*sizeof(unsigned int));
memset(ui_context->blurbuffer,0,ui_context->xsize*ui_context->ysize*sizeof(unsigned int));
bitmap_sob_bmp->unpacked_data=mi_unpack(bitmap_sob_bmp->data,bitmap_sob_bmp->csize ,bitmap_sob_bmp->data, bitmap_sob_bmp->size);
bitmap_sob_bmp->unpacked_data=data_unpack(bitmap_sob_bmp->data,bitmap_sob_bmp->csize ,bitmap_sob_bmp->data, bitmap_sob_bmp->size);
convert8b16b(bitmap_sob_bmp,(unsigned short)0xFFFF);
bitmap_hxc2001_bmp->unpacked_data=mi_unpack(bitmap_hxc2001_bmp->data,bitmap_hxc2001_bmp->csize ,bitmap_hxc2001_bmp->data, bitmap_hxc2001_bmp->size);
bitmap_hxc2001_bmp->unpacked_data=data_unpack(bitmap_hxc2001_bmp->data,bitmap_hxc2001_bmp->csize ,bitmap_hxc2001_bmp->data, bitmap_hxc2001_bmp->size);
convert8b16b(bitmap_hxc2001_bmp,(unsigned short)0xFFFF);
ui_context->modctx = malloc( sizeof(modcontext) );
@@ -285,19 +288,19 @@ uintro_context * uintro_init(unsigned short xsize,unsigned short ysize)
switch(rand()&3)
{
case 0:
data_maktone_class_cracktro15_mod->unpacked_data=mi_unpack(data_maktone_class_cracktro15_mod->data,data_maktone_class_cracktro15_mod->csize ,data_maktone_class_cracktro15_mod->data, data_maktone_class_cracktro15_mod->size);
data_maktone_class_cracktro15_mod->unpacked_data=data_unpack(data_maktone_class_cracktro15_mod->data,data_maktone_class_cracktro15_mod->csize ,data_maktone_class_cracktro15_mod->data, data_maktone_class_cracktro15_mod->size);
hxcmod_load((modcontext*)ui_context->modctx, (void*)data_maktone_class_cracktro15_mod->unpacked_data, data_maktone_class_cracktro15_mod->size);
break;
case 1:
data_jozz_cognition_mod->unpacked_data=mi_unpack(data_jozz_cognition_mod->data,data_jozz_cognition_mod->csize ,data_jozz_cognition_mod->data, data_jozz_cognition_mod->size);
data_jozz_cognition_mod->unpacked_data=data_unpack(data_jozz_cognition_mod->data,data_jozz_cognition_mod->csize ,data_jozz_cognition_mod->data, data_jozz_cognition_mod->size);
hxcmod_load((modcontext*)ui_context->modctx, (void*)data_jozz_cognition_mod->unpacked_data, data_jozz_cognition_mod->size);
break;
case 2:
data_zandax_supplydas_booze_mod->unpacked_data=mi_unpack(data_zandax_supplydas_booze_mod->data,data_zandax_supplydas_booze_mod->csize ,data_zandax_supplydas_booze_mod->data, data_zandax_supplydas_booze_mod->size);
data_zandax_supplydas_booze_mod->unpacked_data=data_unpack(data_zandax_supplydas_booze_mod->data,data_zandax_supplydas_booze_mod->csize ,data_zandax_supplydas_booze_mod->data, data_zandax_supplydas_booze_mod->size);
hxcmod_load((modcontext*)ui_context->modctx, (void*)data_zandax_supplydas_booze_mod->unpacked_data, data_zandax_supplydas_booze_mod->size);
break;
case 3:
data_vim_not_again_mod->unpacked_data=mi_unpack(data_vim_not_again_mod->data,data_vim_not_again_mod->csize ,data_vim_not_again_mod->data, data_vim_not_again_mod->size);
data_vim_not_again_mod->unpacked_data=data_unpack(data_vim_not_again_mod->data,data_vim_not_again_mod->csize ,data_vim_not_again_mod->data, data_vim_not_again_mod->size);
hxcmod_load((modcontext*)ui_context->modctx, (void*)data_vim_not_again_mod->unpacked_data, data_vim_not_again_mod->size);
break;
@@ -334,22 +337,22 @@ void uintro_reset(uintro_context * ui_context)
{
case 0:
if(!data_maktone_class_cracktro15_mod->unpacked_data)
data_maktone_class_cracktro15_mod->unpacked_data=mi_unpack(data_maktone_class_cracktro15_mod->data,data_maktone_class_cracktro15_mod->csize ,data_maktone_class_cracktro15_mod->data, data_maktone_class_cracktro15_mod->size);
data_maktone_class_cracktro15_mod->unpacked_data=data_unpack(data_maktone_class_cracktro15_mod->data,data_maktone_class_cracktro15_mod->csize ,data_maktone_class_cracktro15_mod->data, data_maktone_class_cracktro15_mod->size);
hxcmod_load((modcontext*)ui_context->modctx,(void*)data_maktone_class_cracktro15_mod->unpacked_data,data_maktone_class_cracktro15_mod->size);
break;
case 1:
if(!data_jozz_cognition_mod->unpacked_data)
data_jozz_cognition_mod->unpacked_data=mi_unpack(data_jozz_cognition_mod->data,data_jozz_cognition_mod->csize ,data_jozz_cognition_mod->data, data_jozz_cognition_mod->size);
data_jozz_cognition_mod->unpacked_data=data_unpack(data_jozz_cognition_mod->data,data_jozz_cognition_mod->csize ,data_jozz_cognition_mod->data, data_jozz_cognition_mod->size);
hxcmod_load((modcontext*)ui_context->modctx,(void*)data_jozz_cognition_mod->unpacked_data,data_jozz_cognition_mod->size);
break;
case 2:
if(!data_zandax_supplydas_booze_mod->unpacked_data)
data_zandax_supplydas_booze_mod->unpacked_data=mi_unpack(data_zandax_supplydas_booze_mod->data,data_zandax_supplydas_booze_mod->csize ,data_zandax_supplydas_booze_mod->data, data_zandax_supplydas_booze_mod->size);
data_zandax_supplydas_booze_mod->unpacked_data=data_unpack(data_zandax_supplydas_booze_mod->data,data_zandax_supplydas_booze_mod->csize ,data_zandax_supplydas_booze_mod->data, data_zandax_supplydas_booze_mod->size);
hxcmod_load((modcontext*)ui_context->modctx,(void*)data_zandax_supplydas_booze_mod->unpacked_data,data_zandax_supplydas_booze_mod->size);
break;
case 3:
if(!data_vim_not_again_mod->unpacked_data)
data_vim_not_again_mod->unpacked_data=mi_unpack(data_vim_not_again_mod->data,data_vim_not_again_mod->csize ,data_vim_not_again_mod->data, data_vim_not_again_mod->size);
data_vim_not_again_mod->unpacked_data=data_unpack(data_vim_not_again_mod->data,data_vim_not_again_mod->csize ,data_vim_not_again_mod->data, data_vim_not_again_mod->size);
hxcmod_load((modcontext*)ui_context->modctx,(void*)(data_vim_not_again_mod->unpacked_data),data_vim_not_again_mod->size);
break;
@@ -22,72 +22,66 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
* $Log: lzw.c $
* Revision 1.8 1994/02/01 13:23:51 john
* *** empty log message ***
*
*
* Revision 1.7 1993/10/22 17:50:43 yuan
* Fixed the hard to track down bug
*
*
* Revision 1.6 1993/10/18 18:00:13 yuan
* Fixed memory alloc errors.
*
*
* Revision 1.5 1993/09/21 17:22:24 yuan
* *** empty log message ***
*
*
* Revision 1.4 1993/09/21 17:16:25 yuan
* cleaning up
*
*
* Revision 1.3 1993/09/14 13:11:57 yuan
* cfread and cfwrite have been changed into lzw_expand and lzw_compress.
* the new cfread and cfwrite functions are now in library.c
* lzw_compress returns the compressed buffer and a parameter *size.
*
*
* Revision 1.2 1993/09/09 17:45:56 yuan
* tab added to ERROR messages
*
*
* Revision 1.1 1993/09/08 16:15:03 yuan
* Initial revision
*
* Revision 1.3 1993/07/24 19:05:22 yuan
* *** empty log message ***
*
*
* Revision 1.2 1993/07/22 11:27:29 yuan
* No change
*
*
* Revision 1.1 1993/07/21 15:28:48 matt
* Initial revision
*
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include "lzw.h"
//#include "mem.h"
//#define DEBUG_ON 1
//#include "error.h"
#define BITS 15
#define MAX_CODE ( ( 1 << BITS ) - 1 )
#define TABLE_SIZE 35023L
#define END_OF_STREAM 256
#define BUMP_CODE 257
#define FLUSH_CODE 258
#define FIRST_CODE 259
#define UNUSED -1
#define BITS 15
#define MAX_CODE ( ( 1 << BITS ) - 1 )
#define TABLE_SIZE 35023L
#define END_OF_STREAM 256
#define BUMP_CODE 257
#define FLUSH_CODE 258
#define FIRST_CODE 259
#define UNUSED -1
unsigned int find_child_node( int parent_code, int child_character );
unsigned int decode_string( unsigned int offset, unsigned int code );
typedef struct {
int code_value;
int parent_code;
char character;
int code_value;
int parent_code;
char character;
} DICTIONARY;
DICTIONARY * dict;
@@ -97,142 +91,139 @@ unsigned int next_code;
int current_code_bits;
unsigned int next_bump_code;
#define PACIFIER_COUNT 2047
BIT_BUF *OpenOutputBitBuf( ) {
BIT_BUF *bit_buf;
BIT_BUF *OpenOutputBitBuf( )
{
BIT_BUF *bit_buf;
//MALLOC( bit_buf, BIT_BUF, 1 );//Compile hack again -KRB
bit_buf = (BIT_BUF *)malloc(1*sizeof(BIT_BUF));
if ( bit_buf == NULL )
return( bit_buf );
bit_buf->current_byte = 0;
bit_buf->rack = 0;
bit_buf->mask = 0x80;
bit_buf->pacifier_counter = 0;
return( bit_buf );
if ( bit_buf == NULL )
return( bit_buf );
bit_buf->current_byte = 0;
bit_buf->rack = 0;
bit_buf->mask = 0x80;
bit_buf->pacifier_counter = 0;
return( bit_buf );
}
BIT_BUF *OpenInputBitBuf( ubyte *buffer ) {
BIT_BUF *bit_buf;
BIT_BUF *OpenInputBitBuf( ubyte *buffer )
{
BIT_BUF *bit_buf;
//bit_buf = (BIT_BUF *) calloc( 1, sizeof( BIT_BUF ) );
// MALLOC(bit_buf, BIT_BUF, 1);//Compile hack again -KRB
bit_buf = (BIT_BUF *)malloc(1*sizeof(BIT_BUF));
if ( bit_buf == NULL )
return( bit_buf );
bit_buf->buf = buffer;
bit_buf->current_byte = 0;
bit_buf->rack = 0;
bit_buf->mask = 0x80;
bit_buf->pacifier_counter = 0;
return( bit_buf );
if ( bit_buf == NULL )
return( bit_buf );
bit_buf->buf = buffer;
bit_buf->current_byte = 0;
bit_buf->rack = 0;
bit_buf->mask = 0x80;
bit_buf->pacifier_counter = 0;
return( bit_buf );
}
void CloseOutputBitBuf( BIT_BUF *bit_buf ) {
if ( bit_buf->mask != 0x80 )
bit_buf->buf[bit_buf->current_byte++] = bit_buf->rack;
free( bit_buf );
void CloseOutputBitBuf( BIT_BUF *bit_buf )
{
if ( bit_buf->mask != 0x80 )
bit_buf->buf[bit_buf->current_byte++] = bit_buf->rack;
free( bit_buf );
}
void CloseInputBitBuf( BIT_BUF *bit_buf )
{
//free( bit_buf->buf );
free( bit_buf );
//free( bit_buf->buf );
free( bit_buf );
}
void OutputBit( BIT_BUF *bit_buf, int bit ) {
if ( bit )
bit_buf->rack |= bit_buf->mask;
bit_buf->mask >>= 1;
if ( bit_buf->mask == 0 ) {
bit_buf->buf[bit_buf->current_byte++] = bit_buf->rack;
bit_buf->rack = 0;
bit_buf->mask = 0x80;
}
}
void OutputBits( BIT_BUF *bit_buf, unsigned int code, int count ) {
unsigned int mask;
mask = 1L << ( count - 1 );
while ( mask != 0) {
if ( mask & code )
bit_buf->rack |= bit_buf->mask;
bit_buf->mask >>= 1;
if ( bit_buf->mask == 0 ) {
bit_buf->buf[bit_buf->current_byte++] = bit_buf->rack;
bit_buf->rack = 0;
bit_buf->mask = 0x80;
}
mask >>= 1;
}
}
int InputBit( BIT_BUF *bit_buf ) {
int value;
if ( bit_buf->mask == 0x80 ) {
bit_buf->rack = bit_buf->buf[bit_buf->current_byte++];
if ( bit_buf->rack == EOF ) {
printf( " ERROR : Fatal error in InputBit!\n" );
exit(4);
}
}
value = bit_buf->rack & bit_buf->mask;
bit_buf->mask >>= 1;
if ( bit_buf->mask == 0 )
bit_buf->mask = 0x80;
return( value ? 1 : 0 );
}
unsigned int InputBits( BIT_BUF *bit_buf, int bit_count ) {
unsigned int mask;
unsigned int return_value;
mask = 1L << ( bit_count - 1 );
return_value = 0;
while ( mask != 0) {
if ( bit_buf->mask == 0x80 ) {
bit_buf->rack = bit_buf->buf[bit_buf->current_byte++];
if ( bit_buf->rack == EOF ) {
printf( " ERROR : Fatal error in InputBits!\n" );
exit(5);
}
void OutputBit( BIT_BUF *bit_buf, int bit )
{
if ( bit )
bit_buf->rack |= bit_buf->mask;
bit_buf->mask >>= 1;
if ( bit_buf->mask == 0 ) {
bit_buf->buf[bit_buf->current_byte++] = bit_buf->rack;
bit_buf->rack = 0;
bit_buf->mask = 0x80;
}
if ( bit_buf->rack & bit_buf->mask )
return_value |= mask;
mask >>= 1;
bit_buf->mask >>= 1;
if ( bit_buf->mask == 0 )
bit_buf->mask = 0x80;
}
return( return_value );
}
/*
void FilePrintBinary( FILE *file, unsigned int code, int bits ) {
unsigned int mask;
mask = 1 << ( bits - 1 );
while ( mask != 0 ) {
if ( code & mask )
fputc( '1', file );
else
fputc( '0', file );
mask >>= 1;
}
} */
void OutputBits( BIT_BUF *bit_buf, unsigned int code, int count )
{
unsigned int mask;
mask = 1L << ( count - 1 );
while ( mask != 0)
{
if ( mask & code )
bit_buf->rack |= bit_buf->mask;
bit_buf->mask >>= 1;
if ( bit_buf->mask == 0 )
{
bit_buf->buf[bit_buf->current_byte++] = bit_buf->rack;
bit_buf->rack = 0;
bit_buf->mask = 0x80;
}
mask >>= 1;
}
}
int InputBit( BIT_BUF *bit_buf )
{
int value;
if ( bit_buf->mask == 0x80 )
{
bit_buf->rack = bit_buf->buf[bit_buf->current_byte++];
if ( bit_buf->rack == EOF )
{
//printf( " ERROR : Fatal error in InputBit!\n" );
//exit(4);
return -1;
}
}
value = bit_buf->rack & bit_buf->mask;
bit_buf->mask >>= 1;
if ( bit_buf->mask == 0 )
bit_buf->mask = 0x80;
return( value ? 1 : 0 );
}
unsigned int InputBits( BIT_BUF *bit_buf, int bit_count )
{
unsigned int mask;
unsigned int return_value;
mask = 1L << ( bit_count - 1 );
return_value = 0;
while ( mask != 0)
{
if ( bit_buf->mask == 0x80 )
{
bit_buf->rack = bit_buf->buf[bit_buf->current_byte++];
if ( bit_buf->rack == EOF )
{
//printf( " ERROR : Fatal error in InputBits!\n" );
//exit(5);
return 0xFFFFFFFF;
}
}
if ( bit_buf->rack & bit_buf->mask )
return_value |= mask;
mask >>= 1;
bit_buf->mask >>= 1;
if ( bit_buf->mask == 0 )
bit_buf->mask = 0x80;
}
return( return_value );
}
void InitializeDictionary()
{
@@ -242,157 +233,170 @@ void InitializeDictionary()
dict[i].code_value = UNUSED;
next_code = FIRST_CODE;
current_code_bits = 9;
next_bump_code = 511;
current_code_bits = 9;
next_bump_code = 511;
}
void InitializeStorage()
{
//MALLOC( dict, DICTIONARY, TABLE_SIZE );//won't compile, hack below -KRB
//MALLOC( decode_stack, char, TABLE_SIZE );
dict = (DICTIONARY *)malloc(TABLE_SIZE*sizeof(DICTIONARY));
decode_stack = (char *)malloc(TABLE_SIZE*sizeof(char));
}
void FreeStorage()
{
free(dict);
free(decode_stack);
}
ubyte *lzw_compress( ubyte *inputbuf, ubyte *outputbuf, int input_size, int *output_size ) {
BIT_BUF *output;
int character;
int string_code;
unsigned int index;
int i;
ubyte *lzw_compress( ubyte *inputbuf, ubyte *outputbuf, int input_size, int *output_size )
{
BIT_BUF *output;
int character;
int string_code;
unsigned int index;
int i;
output = OpenOutputBitBuf();
output = OpenOutputBitBuf();
if ( outputbuf == NULL ) {
//MALLOC( output->buf, ubyte, input_size); //Another compile hack -KRB
if ( outputbuf == NULL )
{
output->buf = (ubyte *)malloc(input_size*sizeof(ubyte));
if (output->buf == NULL) {
printf(" ERROR : OpenOutputBitBuf - Not enough memory to read buffer.\n");
exit(1);
}
outputbuf = output->buf;
} else output->buf = outputbuf;
if (output->buf == NULL)
{
//printf(" ERROR : OpenOutputBitBuf - Not enough memory to read buffer.\n");
//exit(1);
return NULL;
}
outputbuf = output->buf;
}
else
{
output->buf = outputbuf;
}
InitializeStorage();
InitializeDictionary();
string_code = ( *inputbuf++ );
for ( i=0 ; i<input_size ; i++ ) {
InitializeStorage();
InitializeDictionary();
string_code = ( *inputbuf++ );
for ( i=0 ; i<input_size ; i++ )
{
if ( output->current_byte+4 >= *output_size )
{
CloseOutputBitBuf( output );
FreeStorage();
free( outputbuf );
*output_size = -1;
return NULL;
}
if (output->current_byte+4 >= input_size) {
CloseOutputBitBuf( output );
FreeStorage();
free( outputbuf );
*output_size = -1;
return NULL;
}
character = ( *inputbuf++ );
index = find_child_node( string_code, character );
character = ( *inputbuf++ );
index = find_child_node( string_code, character );
if ( dict[ index ].code_value != - 1 )
{
string_code = dict[ index ].code_value;
else {
}
else
{
dict[ index ].code_value = next_code++;
dict[ index ].parent_code = string_code;
dict[ index ].character = (char) character;
OutputBits( output,
(unsigned long) string_code, current_code_bits );
string_code = character;
if ( next_code > MAX_CODE ) {
OutputBits( output,
(unsigned long) FLUSH_CODE, current_code_bits );
InitializeDictionary();
} else if ( next_code > next_bump_code ) {
OutputBits( output,
(unsigned long) BUMP_CODE, current_code_bits );
current_code_bits++;
next_bump_code <<= 1;
next_bump_code |= 1;
}
}
}
OutputBits( output, (unsigned long) string_code, current_code_bits );
OutputBits( output, (unsigned long) END_OF_STREAM, current_code_bits);
*output_size = output->current_byte+1;
//printf("Outputsize %d\n", *output_size);
CloseOutputBitBuf( output );
OutputBits( output,(uint32_t) string_code, current_code_bits );
string_code = character;
if ( next_code > MAX_CODE )
{
OutputBits( output,(uint32_t) FLUSH_CODE, current_code_bits );
InitializeDictionary();
}
else if ( next_code > next_bump_code )
{
OutputBits( output,(uint32_t) BUMP_CODE, current_code_bits );
current_code_bits++;
next_bump_code <<= 1;
next_bump_code |= 1;
}
}
}
OutputBits( output, (uint32_t) string_code, current_code_bits );
OutputBits( output, (uint32_t) END_OF_STREAM, current_code_bits);
*output_size = output->current_byte + 1;
CloseOutputBitBuf( output );
FreeStorage();
//mem_validate_heap();
return outputbuf;
}
ubyte *lzw_expand( ubyte *inputbuf, ubyte *outputbuf, int length )
{
BIT_BUF *input;
unsigned int new_code;
unsigned int old_code;
int character;
unsigned int count;
int counter;
ubyte *lzw_expand( ubyte *inputbuf, ubyte *outputbuf, int length ) {
BIT_BUF *input;
unsigned int new_code;
unsigned int old_code;
int character;
unsigned int count;
int counter;
//printf("Input Size %d\n", length);
input = OpenInputBitBuf( inputbuf );
input = OpenInputBitBuf( inputbuf );
if ( outputbuf == NULL )
//MALLOC(outputbuf, ubyte, length);//Another hack for compiling -KRB
outputbuf = (ubyte *)malloc(length*sizeof(ubyte));
InitializeStorage();
counter = 0;
for ( ; ; ) {
//mem_validate_heap();
InitializeStorage();
counter = 0;
for ( ; ; )
{
InitializeDictionary();
old_code = (unsigned int) InputBits( input, current_code_bits );
if ( old_code == END_OF_STREAM ) {
CloseInputBitBuf( input );
old_code = (unsigned int) InputBits( input, current_code_bits );
if ( old_code == END_OF_STREAM )
{
CloseInputBitBuf( input );
return outputbuf;
}
character = old_code;
}
character = old_code;
if (counter<length) {
//printf("%x ", ( ubyte ) old_code);
outputbuf[counter++] = ( ubyte ) old_code;
} else {
printf( "ERROR:Tried to write %d\n", old_code );
exit(1);
if (counter<length)
{
outputbuf[counter++] = ( ubyte ) old_code;
}
else
{
//printf( "ERROR:Tried to write %d\n", old_code );
//exit(1);
return 0;
}
for ( ; ; ) {
//mem_validate_heap();
for ( ; ; )
{
new_code = (unsigned int) InputBits( input, current_code_bits );
if ( new_code == END_OF_STREAM ) {
//printf("\nEND OF STREAM at %d bytes\n", counter);
CloseInputBitBuf( input );
FreeStorage();
if ( new_code == END_OF_STREAM )
{
CloseInputBitBuf( input );
FreeStorage();
return outputbuf;
}
if ( new_code == FLUSH_CODE )
break;
if ( new_code == BUMP_CODE ) {
current_code_bits++;
continue;
}
if ( new_code >= next_code ) {
decode_stack[ 0 ] = (char) character;
count = decode_string( 1, old_code );
}
else {
count = decode_string( 0, new_code );
}
character = decode_stack[ count - 1 ];
if ( new_code == FLUSH_CODE )
break;
if ( new_code == BUMP_CODE )
{
current_code_bits++;
continue;
}
if ( new_code >= next_code )
{
decode_stack[ 0 ] = (char) character;
count = decode_string( 1, old_code );
}
else
{
count = decode_string( 0, new_code );
}
character = decode_stack[ count - 1 ];
while ( count > 0 ) {
// This lets the case counter==length pass through.
// This is a hack.
@@ -408,44 +412,42 @@ ubyte *lzw_expand( ubyte *inputbuf, ubyte *outputbuf, int length ) {
}
dict[ next_code ].parent_code = old_code;
dict[ next_code ].character = (char) character;
next_code++;
old_code = new_code;
}
}
next_code++;
old_code = new_code;
}
}
}
unsigned int find_child_node( int parent_code, int child_character ) {
unsigned int index;
int offset;
unsigned int index;
int offset;
index = ( child_character << ( BITS - 8 ) ) ^ parent_code;
if ( index == 0 )
offset = 1;
index = ( child_character << ( BITS - 8 ) ) ^ parent_code;
if ( index == 0 )
offset = 1;
else
offset = TABLE_SIZE - index;
for ( ; ; ) {
offset = TABLE_SIZE - index;
for ( ; ; )
{
if ( dict[ index ].code_value == UNUSED )
return( (unsigned int) index );
return( (unsigned int) index );
if ( dict[ index ].parent_code == parent_code &&
dict[ index ].character == (char) child_character )
return( index );
if ( (int) index >= offset )
index -= offset;
else
index += TABLE_SIZE - offset;
}
return( index );
if ( (int) index >= offset )
index -= offset;
else
index += TABLE_SIZE - offset;
}
}
unsigned int decode_string( unsigned int count, unsigned int code ) {
while ( code > 255 ) {
while ( code > 255 ) {
decode_stack[ count++ ] = dict[ code ].character;
code = dict[ code ].parent_code;
}
decode_stack[ count++ ] = (char) code;
return( count );
}
decode_stack[ count++ ] = (char) code;
return( count );
}
@@ -14,4 +14,3 @@ typedef struct bit_file {
ubyte *lzw_expand( ubyte *inputbuf, ubyte *outputbuf, int length );
ubyte *lzw_compress( ubyte *inputbuf, ubyte *outputbuf, int input_size, int *output_size );
@@ -1,31 +1,47 @@
/*===========================================================================--
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-----------H----H--X----X-----CCCCC----22222----0000-----0000------11----------
----------H----H----X-X-----C--------------2---0----0---0----0--1--1-----------
---------HHHHHH-----X------C----------22222---0----0---0----0-----1------------
--------H----H----X--X----C----------2-------0----0---0----0-----1-------------
-------H----H---X-----X---CCCCC-----222222----0000-----0000----1111------------
-------------------------------------------------------------------------------
----------------------------------------- http://jeanfrancoisdelnero.free.fr --
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
------------------- official Infoticaires 2006 invitation ---------------------
------------------ French Retro-Gaming party in Courcelles --------------------
--------------------------- www.obsolete-tears.com ----------------------------
---------------------------- Jeff - 14/06/2006 -----------------------------
--===========================================================================*/
/*
//
// Copyright (C) 2006-2019 Jean-François DEL NERO
//
// This file is part of HxCFloppyEmulator.
//
// HxCFloppyEmulator may be used and distributed without restriction provided
// that this copyright statement is not removed from the file and that any
// derivative work contains the original copyright notice and the associated
// disclaimer.
//
// HxCFloppyEmulator is free software; you can redistribute it
// and/or modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// HxCFloppyEmulator is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with HxCFloppyEmulator; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string.h>
#include <stdint.h>
#include "lzw.h"
#include "rle.h"
unsigned char * mi_unpack(unsigned char * bufferin, unsigned long sizein,unsigned char * bufferout, unsigned long sizeout)
unsigned char * data_unpack(unsigned char * bufferin, uint32_t sizein,unsigned char * bufferout, uint32_t sizeout)
{
unsigned char* buffer;
buffer=(unsigned char*)malloc(sizeout+100);
buffer = (unsigned char*)malloc(sizeout+100);
if( !buffer )
return NULL;
if(bufferin[0]&0x01)
{
lzw_expand(bufferin+1,buffer, sizeout );
@@ -35,5 +51,5 @@ unsigned char * mi_unpack(unsigned char * bufferin, unsigned long sizein,unsigne
memcpy(buffer,bufferin+1,sizeout);
}
return buffer;
return buffer;
};
@@ -1,21 +1,3 @@
/*===========================================================================--
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-----------H----H--X----X-----CCCCC----22222----0000-----0000------11----------
----------H----H----X-X-----C--------------2---0----0---0----0--1--1-----------
---------HHHHHH-----X------C----------22222---0----0---0----0-----1------------
--------H----H----X--X----C----------2-------0----0---0----0-----1-------------
-------H----H---X-----X---CCCCC-----222222----0000-----0000----1111------------
-------------------------------------------------------------------------------
----------------------------------------- http://jeanfrancoisdelnero.free.fr --
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
------------------- official Infoticaires 2006 invitation ---------------------
------------------ French Retro-Gaming party in Courcelles --------------------
--------------------------- www.obsolete-tears.com ----------------------------
---------------------------- Jeff - 14/06/2006 -----------------------------
--===========================================================================*/
unsigned char mi_pack(unsigned char * bufferin, unsigned long sizein,unsigned char * bufferout, int * sizeout);
unsigned char * mi_unpack(unsigned char * bufferin, unsigned long sizein,unsigned char * bufferout, unsigned long sizeout);
unsigned char data_pack(unsigned char * bufferin, uint32_t sizein,unsigned char * bufferout, int * sizeout);
unsigned char * data_unpack(unsigned char * bufferin, uint32_t sizein,unsigned char * bufferout, uint32_t sizeout);
@@ -25,156 +25,149 @@
//
*/
#include <stdlib.h>
#include <string.h>
#include <string.h>
#include <stdint.h>
void rlepack(unsigned char * bufferin,int sizein,unsigned char * bufferout,int * sizeout)
{
unsigned char c1;
unsigned char count1;
unsigned char c1;
unsigned char count1;
int i,j,k;
int mode;
mode=0; //retit
// 1 0000000 BBBBBBBB ...........
// 0 0000000 OOOOOOOO OOOOOOO
//
count1=0;
if(bufferin[0]==bufferin[1])
if(bufferin[0]==bufferin[1])
{
c1=bufferin[0];
mode=0;
k=0;
}
else
else
{
c1=~bufferin[0];
c1 = (unsigned char)(~bufferin[0]);
mode=1;
k=0;
}
i=0;
j=0;
do
{
switch(mode)
{
case 0:
if(c1==bufferin[i])
{
count1++;
if(count1==0x7F)
case 0:
if(c1==bufferin[i])
{
bufferout[j]=count1&0x7F;
j++;
bufferout[j]=c1;
j++;
count1=1;
count1++;
if(count1==0x7F)
{
bufferout[j] = (unsigned char)(count1&0x7F);
j++;
bufferout[j] = c1;
j++;
count1=1;
}
}
}
else
{
bufferout[j]=count1&0x7F;
j++;
bufferout[j]=c1;
j++;
c1=bufferin[i];
count1=1;
if(c1==bufferin[i+1]) mode=0;
else
{
mode=1;
k=j;
bufferout[j] = (unsigned char)(count1&0x7F);
j++;
bufferout[j] = c1;
j++;
c1=bufferin[i];
count1=1;
if(c1==bufferin[i+1]) mode=0;
else
{
mode=1;
k=j;
j++;
}
}
}
break;
case 1:
if(c1!=bufferin[i] && (bufferin[i]!=bufferin[i+1]) )
{
count1++;
bufferout[j]=c1;
c1=bufferin[i];
j++;
if(count1==0x7F)
break;
case 1:
if(c1!=bufferin[i] && (bufferin[i]!=bufferin[i+1]) )
{
bufferout[k]=(count1&0x7F)|0x80;
count1++;
bufferout[j]=c1;
c1=bufferin[i];
j++;
if(count1==0x7F)
{
bufferout[k] = (unsigned char)((count1&0x7F)|0x80);
k=j;
count1=1;
}
}
else
{
bufferout[j]=c1;
j++;
c1=bufferin[i];
bufferout[k] = (unsigned char)((count1&0x7F)|0x80);
k=j;
count1=1;
}
}
else
{
bufferout[j]=c1;
j++;
c1=bufferin[i];
bufferout[k]=(count1&0x7F)|0x80;
k=j;
count1=1;
if(c1==bufferin[i+1]) mode=0;
else mode=1;
}
break;
if(c1==bufferin[i+1]) mode=0;
else mode=1;
}
break;
}
i++;
i++;
}while(i<=sizein);
*sizeout=j;
}
unsigned char * rleunpack(unsigned char * bufferin,int sizein,unsigned char * bufferout,int * sizeout)
{
unsigned char c1,c2;
unsigned char c1,c2;
int i,j,k;
i=0;
k=0;
do
{
c1=bufferin[i];
switch(c1&0x80)
{
case 0:
i++;
j=c1&0x7F;
c2=bufferin[i];
while(j)
{
bufferout[k]=c2;
k++;
j--;
}
i++;
case 0:
i++;
j=c1&0x7F;
c2=bufferin[i];
while(j)
{
bufferout[k]=c2;
k++;
j--;
}
i++;
break;
case 0x80:
i++;
j=c1&0x7F;
while(j)
{
bufferout[k]=bufferin[i];
k++;
case 0x80:
i++;
j--;
}
j=c1&0x7F;
while(j)
{
bufferout[k]=bufferin[i];
k++;
i++;
j--;
}
break;
}
@@ -25,4 +25,4 @@
//
*/
void rlepack(unsigned char * bufferin,int sizein,unsigned char * bufferout,int * sizeout);
unsigned char * rleunpack(unsigned char * bufferin,int sizein,unsigned char * bufferout,int * sizeout);
unsigned char * rleunpack(unsigned char * bufferin,int sizein,unsigned char * bufferout,int * sizeout);