Version 3.1

This commit is contained in:
Gary Scavone
2013-09-25 14:44:17 +02:00
committed by Stephen Sinclair
parent 868787a5f9
commit 4b6500d3de
140 changed files with 5171 additions and 632 deletions

1
ragamatic/GUIRaga Executable file
View File

@@ -0,0 +1 @@
wish < tcl/TCLRaga.tcl | ragamat -ip

70
ragamatic/Makefile Normal file
View File

@@ -0,0 +1,70 @@
# STK Makefile - Global version for Unix systems which have GNU
# Makefile utilities installed. If this Makefile does not work on
# your system, try using the platform specific Makefiles (.sgi,
# .next, and .linux).
OS = $(shell uname)
# The following definition indicates the relative location of
# the core STK classes.
STK_PATH = ../STK/
O_FILES = Object.o Envelope.o ADSR.o Noise.o \
Filter.o DLineA.o DLineL.o DLineN.o \
OnePole.o OneZero.o DCBlock.o SKINI11.o \
swapstuf.o Tabla.o Instrmnt.o Sitar1.o \
StrDrone.o VoicDrum.o WvOut.o WvIn.o RawWvIn.o \
RTSoundIO.o RTWvOut.o MIDIIO.o Reverb.o \
NRev.o JCRev.o PRCRev.o threads.o
RM = /bin/rm
ifeq ($(OS),IRIX) # These are for SGI
INSTR = ragamat MD2SKINI
CC = CC -O2 -D__OS_IRIX_ # -g -fullwarn -D__SGI_CC__
LIBRARY = -L/usr/sgitcl/lib -laudio -lmd -lm -lpthread
endif
ifeq ($(OS),Linux) # These are for Linux
INSTR = ragamat MD2SKINI
CC = g++ -O3 -Wall -D__OS_Linux_ # -g
LIBRARY = -lpthread -lm
endif
%.o : $(STK_PATH)%.cpp
$(CC) -c $(<) -o $@
all: $(INSTR)
ragamat: ragamat.cpp $(O_FILES)
$(CC) $(INCLUDE) -o ragamat ragamat.cpp $(O_FILES) $(LIBRARY)
MD2SKINI: $(STK_PATH)MD2SKINI.cpp Object.o MIDIIO.o
$(CC) -o MD2SKINI $(STK_PATH)MD2SKINI.cpp Object.o MIDIIO.o $(LIBRARY)
clean :
rm *.o
rm $(INSTR)
cleanIns :
rm $(INSTR)
strip :
strip $(INSTR)
# $(O_FILES) :
threads.o: threads.cpp
$(CC) -c threads.cpp
Tabla.o: Tabla.cpp
$(CC) -c Tabla.cpp
Sitar1.o: Sitar1.cpp
$(CC) -c Sitar1.cpp
StrDrone.o: StrDrone.cpp
$(CC) -c StrDrone.cpp
VoicDrum.o: VoicDrum.cpp
$(CC) -c VoicDrum.cpp

23
ragamatic/README-raga.txt Normal file
View File

@@ -0,0 +1,23 @@
This is RagaMatic (tm).
by Perry Cook
Written for Ken Steiglitz's birthday, 1999.
Sitar and Drones are physical models.
Vocalize drums and Tabla drums are samples.
In the RagaMatic directory, type:
> make
to compile and then
> GUIRaga
to have fun and achieve inner peace.
If you ask me, I think this band needs a flute player too. If you like, team up and see if you can add the flute model to the project. This requires adding a few files to the Makefile, a few lines to the ragamat.cpp file (including how the flute player should play, etc.), and another slider to the TCL script to control the flute's contributions. This might only run on the fastest machines once you've added the flute.
Since latency isn't much of an issue in raga-land, you might bump up the RT_BUFFER_SIZE in Object.h to something around 1024, depending on the speed of your machine. If you don't have the GNU makefile utilities on your system, take a look at one of the system-specific makefiles (example: Makefile.sgi) in the syntmono directory to see what changes you need to make.
All is Bliss...
All is Bliss...

100
ragamatic/Sitar1.cpp Normal file
View File

@@ -0,0 +1,100 @@
/******************************************/
/* Karplus-Strong Sitar1 string model */
/* by Perry Cook, 1995-96 */
/* */
/* There exist at least two patents, */
/* assigned to Stanford, bearing the */
/* names of Karplus and/or Strong. */
/******************************************/
#include "Sitar1.h"
Sitar1 :: Sitar1(MY_FLOAT lowestFreq)
{
length = (long) (SRATE / lowestFreq + 1);
loopGain = (MY_FLOAT) 0.999;
loopFilt = new OneZero();
loopFilt->setCoeff(0.01);
delayLine = new DLineA(length);
delay = length/2;
delayTarg = delay;
envelope = new ADSR();
noise = new Noise;
envelope->setAllTimes(0.001,0.04,0.0,0.5);
this->clear();
}
Sitar1 :: ~Sitar1()
{
delete loopFilt;
delete delayLine;
delete envelope;
delete noise;
}
void Sitar1 :: clear()
{
loopFilt->clear();
delayLine->clear();
}
void Sitar1 :: setFreq(MY_FLOAT frequency)
{
delayTarg = (SRATE / frequency);
delay = delayTarg * (1.0 + (0.05 * noise->tick()));
delayLine->setDelay(delay);
loopGain = (MY_FLOAT) 0.995 + (frequency * (MY_FLOAT) 0.000001);
if (loopGain>1.0) loopGain = (MY_FLOAT) 0.9995;
}
void Sitar1 :: pluck(MY_FLOAT amplitude)
{
envelope->keyOn();
}
void Sitar1 :: noteOn(MY_FLOAT freq, MY_FLOAT amp)
{
this->setFreq(freq);
this->pluck(amp);
amPluck = 0.05 * amp;
#if defined(_debug_)
printf("Sitar1 : NoteOn: Freq=%lf Amp=%lf\n",freq,amp);
#endif
}
void Sitar1 :: noteOff(MY_FLOAT amp)
{
loopGain = (MY_FLOAT) 1.0 - amp;
#if defined(_debug_)
printf("Sitar1 : NoteOff: Amp=%lf\n",amp);
#endif
}
MY_FLOAT Sitar1 :: tick()
{
MY_FLOAT temp;
temp = delayLine->lastOut();
if (fabs(temp) > 1.0) {
loopGain = 0.1;
this->noteOff(0.9);
delay = delayTarg;
delayLine->setDelay(delay);
}
temp *= loopGain;
if (fabs(delayTarg - delay) > 0.001) {
if (delayTarg < delay)
delay *= 0.99999;
else
delay *= 1.00001;
delayLine->setDelay(delay);
}
lastOutput = delayLine->tick(loopFilt->tick(temp)
+ (amPluck * envelope->tick() * noise->tick()));
return lastOutput;
}

43
ragamatic/Sitar1.h Normal file
View File

@@ -0,0 +1,43 @@
/******************************************/
/* Karplus-Strong Sitar1 string model */
/* by Perry Cook, 1995-96 */
/* */
/* There exist at least two patents, */
/* assigned to Stanford, bearing the */
/* names of Karplus and/or Strong. */
/******************************************/
#if !defined(__Sitar1_h)
#define __Sitar1_h
#include "../STK/Instrmnt.h"
#include "../STK/DLineA.h"
#include "../STK/OneZero.h"
#include "../STK/ADSR.h"
#include "../STK/Noise.h"
class Sitar1 : public Instrmnt
{
protected:
DLineA *delayLine;
OneZero *loopFilt;
ADSR *envelope;
Noise *noise;
long length;
MY_FLOAT loopGain;
MY_FLOAT amPluck;
MY_FLOAT delay;
MY_FLOAT delayTarg;
public:
Sitar1(MY_FLOAT lowestFreq);
~Sitar1();
void clear();
virtual void setFreq(MY_FLOAT frequency);
void pluck(MY_FLOAT amplitude);
virtual void noteOn(MY_FLOAT freq, MY_FLOAT amp);
virtual void noteOff(MY_FLOAT amp);
virtual MY_FLOAT tick();
};
#endif

77
ragamatic/StrDrone.cpp Normal file
View File

@@ -0,0 +1,77 @@
/******************************************/
/* Karplus-Strong StrDrone string model */
/* by Perry Cook, 1995-96 */
/* */
/* There exist at least two patents, */
/* assigned to Stanford, bearing the */
/* names of Karplus and/or Strong. */
/******************************************/
#include "StrDrone.h"
StrDrone :: StrDrone(MY_FLOAT lowestFreq)
{
length = (long) (SRATE / lowestFreq + 1);
loopGain = (MY_FLOAT) 0.999;
loopFilt = new OneZero();
delayLine = new DLineA(length);
envelope = new ADSR();
noise = new Noise;
envelope->setAllTimes(2.0,0.5,0.0,0.5);
this->clear();
}
StrDrone :: ~StrDrone()
{
delete loopFilt;
delete delayLine;
delete envelope;
delete noise;
}
void StrDrone :: clear()
{
loopFilt->clear();
delayLine->clear();
}
void StrDrone :: setFreq(MY_FLOAT frequency)
{
MY_FLOAT delay;
delay = (SRATE / frequency);
delayLine->setDelay(delay - 0.5);
loopGain = (MY_FLOAT) 0.997 + (frequency * (MY_FLOAT) 0.000002);
if (loopGain>1.0) loopGain = (MY_FLOAT) 0.99999;
}
void StrDrone :: pluck(MY_FLOAT amplitude)
{
envelope->keyOn();
}
void StrDrone :: noteOn(MY_FLOAT freq, MY_FLOAT amp)
{
this->setFreq(freq);
this->pluck(amp);
#if defined(_debug_)
printf("StrDrone : NoteOn: Freq=%lf Amp=%lf\n",freq,amp);
#endif
}
void StrDrone :: noteOff(MY_FLOAT amp)
{
loopGain = (MY_FLOAT) 1.0 - amp;
#if defined(_debug_)
printf("StrDrone : NoteOff: Amp=%lf\n",amp);
#endif
}
MY_FLOAT StrDrone :: tick()
{
/* check this out */
/* here's the whole inner loop of the instrument!! */
lastOutput = delayLine->tick(loopFilt->tick((delayLine->lastOut() * loopGain))
+ (0.005 * envelope->tick() * noise->tick()));
return lastOutput;
}

40
ragamatic/StrDrone.h Normal file
View File

@@ -0,0 +1,40 @@
/******************************************/
/* Karplus-Strong StrDrone string model */
/* by Perry Cook, 1995-96 */
/* */
/* There exist at least two patents, */
/* assigned to Stanford, bearing the */
/* names of Karplus and/or Strong. */
/******************************************/
#if !defined(__StrDrone_h)
#define __StrDrone_h
#include "../STK/Instrmnt.h"
#include "../STK/DLineA.h"
#include "../STK/OneZero.h"
#include "../STK/ADSR.h"
#include "../STK/Noise.h"
class StrDrone : public Instrmnt
{
protected:
DLineA *delayLine;
ADSR *envelope;
Noise *noise;
OneZero *loopFilt;
long length;
MY_FLOAT loopGain;
public:
StrDrone(MY_FLOAT lowestFreq);
~StrDrone();
void clear();
virtual void setFreq(MY_FLOAT frequency);
void pluck(MY_FLOAT amplitude);
virtual void noteOn(MY_FLOAT freq, MY_FLOAT amp);
virtual void noteOff(MY_FLOAT amp);
virtual MY_FLOAT tick();
};
#endif

155
ragamatic/Tabla.cpp Normal file
View File

@@ -0,0 +1,155 @@
/*******************************************/
/* Master Class for Drum Synthesizer */
/* by Perry R. Cook, 1995-96 */
/* */
/* This instrument contains a bunch of */
/* RawWvIn objects, run through a bunch */
/* of one-pole filters. All the */
/* corresponding rawwave files have been */
/* sampled at 22050 Hz. Thus, if the */
/* compile-time SRATE = 22050, then */
/* no interpolation is used. Otherwise, */
/* the rawwave data is appropriately */
/* interpolated for the current SRATE. */
/* You can specify the maximum Polyphony */
/* (maximum number of simultaneous voices)*/
/* in a #define in the .h file. */
/* */
/* Modified for RawWvIn class */
/* by Gary P. Scavone (4/99) */
/*******************************************/
#include "Tabla.h"
#include <string.h>
Tabla :: Tabla() : Instrmnt()
{
int i;
for (i=0;i<TABLA_POLYPHONY;i++) {
filters[i] = new OnePole;
sounding[i] = -1;
}
/* This counts the number of sounding voices */
numSounding = 0;
/* Print warning about aliasing if SRATE < 22050 */
if (SRATE < 22050) {
printf("\nWarning: Tabla is designed for sampling rates of\n");
printf("22050 Hz or greater. You will likely encounter aliasing\n");
printf("at the current sampling rate of %.0f Hz.\n\n", SRATE);
}
}
Tabla :: ~Tabla()
{
int i;
for ( i=0; i<numSounding-1; i++ ) delete waves[i];
for ( i=0; i<TABLA_POLYPHONY; i++ ) delete filters[i];
}
void Tabla :: noteOn(MY_FLOAT freq, MY_FLOAT amp)
{
int i, notDone;
int noteNum;
int vel;
char tempString[64];
RawWvIn *tempWv;
OnePole *tempFilt;
char waveNames[TABLA_NUMWAVES][16] = {
"Drdak2.raw",
"Drdak3.raw",
"Drdak4.raw",
"Drddak1.raw",
"Drdee1.raw",
"Drdee2.raw",
"Drdoo1.raw",
"Drdoo2.raw",
"Drdoo3.raw",
"Drjun1.raw",
"Drjun2.raw",
"DrDoi1.raw",
"DrDoi2.raw",
"DrTak1.raw",
"DrTak2.raw"
};
noteNum = (int) freq;
vel = (int) (amp * 127);
#if defined(_debug_)
printf("NoteOn: %i vel=%i\n",noteNum,vel);
#endif
notDone = -1;
for (i=0;i<TABLA_POLYPHONY;i++) { /* Check first to see */
if (sounding[i] == noteNum) notDone = i; /* if there's already */
} /* one like this sounding */
if (notDone<0) { /* If not, then */
if (numSounding == TABLA_POLYPHONY) { /* If we're already */
delete waves[0]; /* at max polyphony, */
filters[0]->clear(); /* then */
tempWv = waves[0];
tempFilt = filters[0];
for (i=0;i<TABLA_POLYPHONY-1;i++) { /* preempt oldest */
waves[i] = waves[i+1]; /* voice and */
filters[i] = filters[i+1]; /* ripple all down */
}
waves[TABLA_POLYPHONY-1] = tempWv;
filters[TABLA_POLYPHONY-1] = tempFilt;
} else {
numSounding += 1; /* otherwise just add one */
}
sounding[numSounding-1] = noteNum; /* allocate new wave */
strcpy(tempString,"rawwaves/");
strcat(tempString,waveNames[noteNum]);
waves[numSounding-1] = new RawWvIn(tempString, "oneshot");
if (SRATE != 22050) {
waves[numSounding-1]->setRate((MY_FLOAT) (22050.0/SRATE));
}
waves[numSounding-1]->normalize((MY_FLOAT) 0.4);
filters[numSounding-1]->setPole((MY_FLOAT) 0.999 - ((MY_FLOAT) vel * NORM_7 * 0.6));
filters[numSounding-1]->setGain(vel / (MY_FLOAT) 128.0);
}
else {
waves[notDone]->reset();
filters[notDone]->setPole((MY_FLOAT) 0.999 - ((MY_FLOAT) vel * NORM_7 * 0.6));
filters[notDone]->setGain(vel / (MY_FLOAT) 128.0);
}
#if defined(_debug_)
printf("Number Sounding = %i\n",numSounding);
for (i=0;i<numSounding;i++) printf(" %i ",sounding[i]);
printf("\n");
#endif
}
MY_FLOAT Tabla :: tick()
{
int j, i = 0;
MY_FLOAT output = 0.0;
OnePole *tempFilt;
while (i < numSounding) {
output += filters[i]->tick(waves[i]->lastOut());
if (waves[i]->informTick() == 1) {
delete waves[i];
tempFilt = filters[i];
for (j=i;j<numSounding-1;j++) {
sounding[j] = sounding[j+1];
waves[j] = waves[j+1];
filters[j] = filters[j+1];
}
filters[j] = tempFilt;
filters[j]->clear();
sounding[j] = -1;
numSounding -= 1;
i -= 1;
}
i++;
}
return output;
}

46
ragamatic/Tabla.h Normal file
View File

@@ -0,0 +1,46 @@
/*******************************************/
/* Master Class for Drum Synthesizer */
/* by Perry R. Cook, 1995-96 */
/* */
/* This instrument contains a bunch of */
/* RawWvIn objects, run through a bunch */
/* of one-pole filters. All the */
/* corresponding rawwave files have been */
/* sampled at 22050 Hz. Thus, if the */
/* compile-time SRATE = 22050, then */
/* no interpolation is used. Otherwise, */
/* the rawwave data is appropriately */
/* interpolated for the current SRATE. */
/* You can specify the maximum Polyphony */
/* (maximum number of simultaneous voices)*/
/* in a #define in the .h file. */
/* */
/* Modified for RawWvIn class */
/* by Gary P. Scavone (4/99) */
/*******************************************/
#if !defined(__Tabla_h)
#define __Tabla_h
#include "../STK/Instrmnt.h"
#include "../STK/RawWvIn.h"
#include "../STK/OnePole.h"
#define TABLA_NUMWAVES 15
#define TABLA_POLYPHONY 4
class Tabla : public Instrmnt
{
protected:
RawWvIn *waves[TABLA_POLYPHONY];
OnePole *filters[TABLA_POLYPHONY];
int sounding[TABLA_POLYPHONY];
int numSounding;
public:
Tabla();
~Tabla();
virtual void noteOn(MY_FLOAT freq, MY_FLOAT amp);
virtual MY_FLOAT tick();
};
#endif

152
ragamatic/VoicDrum.cpp Normal file
View File

@@ -0,0 +1,152 @@
/*******************************************/
/* Master Class for Drum Synthesizer */
/* by Perry R. Cook, 1995-96 */
/* */
/* This instrument contains a bunch of */
/* RawWvIn objects, run through a bunch */
/* of one-pole filters. All the */
/* corresponding rawwave files have been */
/* sampled at 22050 Hz. Thus, if the */
/* compile-time SRATE = 22050, then */
/* no interpolation is used. Otherwise, */
/* the rawwave data is appropriately */
/* interpolated for the current SRATE. */
/* You can specify the maximum Polyphony */
/* (maximum number of simultaneous voices)*/
/* in a #define in the .h file. */
/* */
/* Modified for RawWvIn class */
/* by Gary P. Scavone (4/99) */
/*******************************************/
#include "VoicDrum.h"
#include <string.h>
VoicDrum :: VoicDrum() : Instrmnt()
{
int i;
for (i=0;i<DRUM_POLYPHONY;i++) {
filters[i] = new OnePole;
sounding[i] = -1;
}
/* This counts the number of sounding voices */
numSounding = 0;
/* Print warning about aliasing if SRATE < 22050 */
if (SRATE < 22050) {
printf("\nWarning: VoicDrum is designed for sampling rates of\n");
printf("22050 Hz or greater. You will likely encounter aliasing\n");
printf("at the current sampling rate of %.0f Hz.\n\n", SRATE);
}
}
VoicDrum :: ~VoicDrum()
{
int i;
for ( i=0; i<numSounding-1; i++ ) delete waves[i];
for ( i=0; i<DRUM_POLYPHONY; i++ ) delete filters[i];
}
void VoicDrum :: noteOn(MY_FLOAT freq, MY_FLOAT amp)
{
int i, notDone;
int noteNum;
int vel;
char tempString[64];
RawWvIn *tempWv;
OnePole *tempFilt;
char waveNames[DRUM_NUMWAVES][16] = {
"tak2.raw",
"tak1.raw",
"bee1.raw",
"dee1.raw",
"dee2.raw",
"din1.raw",
"gun1.raw",
"jun1.raw",
"jun2.raw",
"tak3.raw",
"tak4.raw"
};
/* Yes I know, this is tres kludgey */
noteNum = (int)freq;
vel = (int) (amp * 127);
#if defined(_debug_)
printf("NoteOn: %i vel=%i\n",noteNum,vel);
#endif
notDone = -1;
for (i=0;i<DRUM_POLYPHONY;i++) { /* Check first to see */
if (sounding[i] == noteNum) notDone = i; /* if there's already */
} /* one like this sounding */
if (notDone<0) { /* If not, then */
if (numSounding == DRUM_POLYPHONY) { /* If we're already */
delete waves[0]; /* at max polyphony, */
filters[0]->clear(); /* then */
tempWv = waves[0];
tempFilt = filters[0];
for (i=0;i<DRUM_POLYPHONY-1;i++) { /* preempt oldest */
waves[i] = waves[i+1]; /* voice and */
filters[i] = filters[i+1]; /* ripple all down */
}
waves[DRUM_POLYPHONY-1] = tempWv;
filters[DRUM_POLYPHONY-1] = tempFilt;
} else {
numSounding += 1; /* otherwise just add one */
}
sounding[numSounding-1] = noteNum; /* allocate new wave */
strcpy(tempString,"rawwaves/");
strcat(tempString,waveNames[noteNum]);
waves[numSounding-1] = new RawWvIn(tempString, "oneshot");
if (SRATE != 22050) {
waves[numSounding-1]->setRate((MY_FLOAT) (22050.0/SRATE));
}
waves[numSounding-1]->normalize((MY_FLOAT) 0.4);
filters[numSounding-1]->setPole((MY_FLOAT) 0.999 - ((MY_FLOAT) vel * NORM_7 * 0.6));
filters[numSounding-1]->setGain(vel / (MY_FLOAT) 128.0);
}
else {
waves[notDone]->reset();
filters[notDone]->setPole((MY_FLOAT) 0.999 - ((MY_FLOAT) vel * NORM_7 * 0.6));
filters[notDone]->setGain(vel / (MY_FLOAT) 128.0);
}
#if defined(_debug_)
printf("Number Sounding = %i\n",numSounding);
for (i=0;i<numSounding;i++) printf(" %i ",sounding[i]);
printf("\n");
#endif
}
MY_FLOAT VoicDrum :: tick()
{
int j, i = 0;
MY_FLOAT output = 0.0;
OnePole *tempFilt;
while (i < numSounding) {
output += filters[i]->tick(waves[i]->lastOut());
if (waves[i]->informTick() == 1) {
delete waves[i];
tempFilt = filters[i];
for (j=i;j<numSounding-1;j++) {
sounding[j] = sounding[j+1];
waves[j] = waves[j+1];
filters[j] = filters[j+1];
}
filters[j] = tempFilt;
filters[j]->clear();
sounding[j] = -1;
numSounding -= 1;
i -= 1;
}
i++;
}
return output;
}

46
ragamatic/VoicDrum.h Normal file
View File

@@ -0,0 +1,46 @@
/*******************************************/
/* Master Class for Drum Synthesizer */
/* by Perry R. Cook, 1995-96 */
/* */
/* This instrument contains a bunch of */
/* RawWvIn objects, run through a bunch */
/* of one-pole filters. All the */
/* corresponding rawwave files have been */
/* sampled at 22050 Hz. Thus, if the */
/* compile-time SRATE = 22050, then */
/* no interpolation is used. Otherwise, */
/* the rawwave data is appropriately */
/* interpolated for the current SRATE. */
/* You can specify the maximum Polyphony */
/* (maximum number of simultaneous voices)*/
/* in a #define in the .h file. */
/* */
/* Modified for RawWvIn class */
/* by Gary P. Scavone (4/99) */
/*******************************************/
#if !defined(__VoicDrum_h)
#define __VoicDrum_h
#include "../STK/Instrmnt.h"
#include "../STK/RawWvIn.h"
#include "../STK/OnePole.h"
#define DRUM_NUMWAVES 11
#define DRUM_POLYPHONY 4
class VoicDrum : public Instrmnt
{
protected:
RawWvIn *waves[DRUM_POLYPHONY];
OnePole *filters[DRUM_POLYPHONY];
int sounding[DRUM_POLYPHONY];
int numSounding;
public:
VoicDrum();
~VoicDrum();
virtual void noteOn(MY_FLOAT freq, MY_FLOAT amp);
virtual MY_FLOAT tick();
};
#endif

19
ragamatic/miditabl.h Normal file
View File

@@ -0,0 +1,19 @@
#include "../STK/Object.h"
double __MIDI_To_Pitch[128] = {
8.18,8.66,9.18,9.72,10.30,10.91,11.56,12.25,
12.98,13.75,14.57,15.43,16.35,17.32,18.35,19.45,
20.60,21.83,23.12,24.50,25.96,27.50,29.14,30.87,
32.70,34.65,36.71,38.89,41.20,43.65,46.25,49.00,
51.91,55.00,58.27,61.74,65.41,69.30,73.42,77.78,
82.41,87.31,92.50,98.00,103.83,110.00,116.54,123.47,
130.81,138.59,146.83,155.56,164.81,174.61,185.00,196.00,
207.65,220.00,233.08,246.94,261.63,277.18,293.66,311.13,
329.63,349.23,369.99,392.00,415.30,440.00,466.16,493.88,
523.25,554.37,587.33,622.25,659.26,698.46,739.99,783.99,
830.61,880.00,932.33,987.77,1046.50,1108.73,1174.66,1244.51,
1318.51,1396.91,1479.98,1567.98,1661.22,1760.00,1864.66,1975.53,
2093.00,2217.46,2349.32,2489.02,2637.02,2793.83,2959.96,3135.96,
3322.44,3520.00,3729.31,3951.07,4186.01,4434.92,4698.64,4978.03,
5274.04,5587.65,5919.91,6271.93,6644.88,7040.00,7458.62,7902.13,
8372.02,8869.84,9397.27,9956.06,10548.08,11175.30,11839.82,12543.85};

262
ragamatic/ragamat.cpp Normal file
View File

@@ -0,0 +1,262 @@
/************** Test Main Program Individual Voice *********************/
#include "../STK/WvOut.h"
#include "../STK/RTWvOut.h"
#include "../STK/SKINI11.h"
#include "../STK/SKINI11.msg"
#include "../STK/Instrmnt.h"
#include "../STK/Reverb.h"
#include "../STK/NRev.h"
#include "../STK/PRCRev.h"
#include "../STK/JCRev.h"
#include "StrDrone.h"
#include "Sitar1.h"
#include "Tabla.h"
#include "VoicDrum.h"
#include "miditabl.h"
#define RATE_NORM (MY_FLOAT) (22050.0/SRATE)
int numStrings = 0;
int notDone = 1;
char **inputString;
// The input command pipe and socket threads are defined in threads.cpp.
#include "threads.h"
// Return random float between 0.0 and max
MY_FLOAT float_random(MY_FLOAT max) {
MY_FLOAT temp;
#if defined(__OS_Win_) /* For Windoze */
temp = (MY_FLOAT) (rand() * max);
temp *= ONE_OVER_RANDLIMIT;
#else /* This is for unix */
temp = (MY_FLOAT) (random() * max);
temp *= ONE_OVER_RANDLIMIT;
#endif
return temp;
}
void usage(void) {
/* Error function in case of incorrect command-line argument specifications */
printf("\nuseage: ragamat flag \n");
printf(" where flag = -ip for realtime SKINI input by pipe\n");
printf(" (won't work under Win95/98),\n");
printf(" and flag = -is for realtime SKINI input by socket.\n");
exit(0);
}
int main(int argc,char *argv[])
{
long i, j, synlength;
int type, outOne = 0, useSocket = 0;
MY_FLOAT reverbTime = 5.0; /* in seconds */
MY_FLOAT byte3, outSample, temp;
MY_FLOAT drone_prob = 0.01, note_prob = 0.0;
MY_FLOAT drum_prob = 0.0, voic_prob = 0.0;
MY_FLOAT droneFreqs[3] = {55.0,82.5,220.0};
int tempo = 3000;
int counter = 3000;
int key = 0;
int ragaStep, ragaPoint = 6, voicNote;
int ragaUp[2][13] = {{57, 60, 62, 64, 65, 68, 69, 71, 72, 76, 77, 81},
{52, 54, 55, 57, 59, 60, 63, 64, 66, 67, 71, 72}};
int ragaDown[2][13] = {{57, 60, 62, 64, 65, 67, 69, 71, 72, 76, 79, 81},
{48, 52, 53, 55, 57, 59, 60, 64, 66, 68, 70, 72}};
WvOut *output;
Instrmnt *drones[3];
Instrmnt *sitar;
Instrmnt *voicDrums;
Instrmnt *drums;
Reverb *reverbs[2];
SKINI11 *score;
if (argc != 2) usage();
if (!strcmp(argv[1],"-is") )
useSocket = 1;
else if (strcmp(argv[1],"-ip")) {
usage();
}
output = new RTWvOut(SRATE,1);
drones[0] = new StrDrone(50.0);
drones[1] = new StrDrone(50.0);
drones[2] = new StrDrone(50.0);
sitar = new Sitar1(50.0);
voicDrums = new VoicDrum();
drums = new Tabla();
score = new SKINI11();
reverbs[0] = new JCRev(reverbTime);
reverbs[0]->setEffectMix(0.5);
reverbs[1] = new JCRev(2.0);
reverbs[1]->setEffectMix(0.2);
// Start the input thread
if (useSocket)
startSocketThread();
else
startPipeThread();
drones[0]->noteOn(droneFreqs[0],0.1);
drones[1]->noteOn(droneFreqs[1],0.1);
drones[2]->noteOn(droneFreqs[2],0.1);
for (i=0;i<SRATE;i++) { /* warm everybody up a little */
outSample = 0;
for (j=0;j<3;j++)
outSample += drones[j]->tick();
output->tick(reverbs[0]->tick(outSample));
}
/* Finally ... the runtime loop begins! */
notDone = 1;
synlength = RT_BUFFER_SIZE;
while(notDone || numStrings) {
if (numStrings > 1) synlength = (long) RT_BUFFER_SIZE / numStrings;
else synlength = RT_BUFFER_SIZE;
for ( i=0; i<synlength; i++ ) {
outSample = 0;
for (j=0;j<3;j++)
outSample += drones[j]->tick();
outSample -= sitar->tick();
output->tick(reverbs[0]->tick(outSample)
+ reverbs[1]->tick(voicDrums->tick() + drums->tick()));
counter -= 1;
if (counter == 0) {
counter = (int) (tempo / RATE_NORM);
if (float_random(1.0) < drone_prob)
drones[0]->noteOn(droneFreqs[0],0.1);
if (float_random(1.0) < drone_prob)
drones[1]->noteOn(droneFreqs[1],0.1);
if (float_random(1.0) < drone_prob)
drones[2]->noteOn(droneFreqs[2],0.1);
if (float_random(1.0) < note_prob) {
if ((temp = float_random(1.0)) < 0.1)
ragaStep = 0;
else if (temp < 0.5)
ragaStep = 1;
else
ragaStep = -1;
ragaPoint += ragaStep;
if (ragaPoint < 0)
ragaPoint -= (2*ragaStep);
if (ragaPoint > 11)
ragaPoint = 11;
if (ragaStep > 0)
sitar->noteOn(__MIDI_To_Pitch[ragaUp[key][ragaPoint]]
,0.05 + float_random(0.3));
else
sitar->noteOn(__MIDI_To_Pitch[ragaDown[key][ragaPoint]]
,0.05 + float_random(0.3));
}
if (float_random(1.0) < voic_prob) {
voicNote = (int) float_random(11);
voicDrums->noteOn(voicNote,0.3 + (0.4 * drum_prob) +
float_random(0.9 * voic_prob));
}
if (float_random(1.0) < drum_prob) {
voicNote = (int) float_random(TABLA_NUMWAVES);
drums->noteOn(voicNote,0.2 + (0.2 * drum_prob) +
float_random(0.7 * drum_prob));
}
}
}
if (numStrings) {
score->parseThis(inputString[outOne]);
type = score->getType();
if (type > 0) {
if (type == __SK_ControlChange_) {
j = (int) score->getByteTwo();
byte3 = score->getByteThree();
if (j == 1) {
drone_prob = byte3 * NORM_7;
}
else if (j == 2) {
note_prob = byte3 * NORM_7;
}
else if (j == 4) {
voic_prob = byte3 * NORM_7;
}
else if (j == 11) {
drum_prob = byte3 * NORM_7;
}
else if (j == 7) {
tempo = (int) (11025 - (byte3 * 70));
}
else if (j == 64) {
if (byte3 == 0) {
key = 1;
droneFreqs[0] = 55.0;
droneFreqs[1] = 82.5;
droneFreqs[2] = 220.0;
}
else {
key = 0;
droneFreqs[0] = 82.5;
droneFreqs[1] = 123.5;
droneFreqs[2] = 330.0;
}
}
}
}
outOne += 1;
if (outOne == MAX_IN_STRINGS) outOne = 0;
numStrings--;
}
}
printf("What Need Have I for This?\n");
drones[1]->noteOn(droneFreqs[1],0.1);
for (i=0;i<reverbTime*SRATE;i++) { // Calm down a little
outSample = 0;
for (j=0;j<3;j++)
outSample += drones[j]->tick();
output->tick(reverbs[0]->tick(outSample));
}
printf("What Need Have I for This?\n");
drones[2]->noteOn(droneFreqs[2],0.1);
for (i=0;i<reverbTime*SRATE;i++) { // and a little more
outSample = 0;
for (j=0;j<3;j++)
outSample += drones[j]->tick();
output->tick(reverbs[0]->tick(outSample));
}
printf("RagaMatic finished ... \n");
drones[0]->noteOn(droneFreqs[0],0.1);
for (i=0;i<reverbTime*SRATE;i++) { // almost ready to think about ending
outSample = 0;
for (j=0;j<3;j++)
outSample += drones[j]->tick();
output->tick(reverbs[0]->tick(outSample));
}
printf("All is Bliss ...\n");
for (i=0;i<reverbTime*SRATE;i++) { // nearly finished now
outSample = 0;
for (j=0;j<3;j++)
outSample += drones[j]->tick();
output->tick(reverbs[0]->tick(outSample));
}
printf("All is Bliss ...\n");
for (i=0;i<reverbTime*SRATE;i++) { // all is bliss....
outSample = 0;
for (j=0;j<3;j++)
outSample += drones[j]->tick();
output->tick(reverbs[0]->tick(outSample));
}
delete output;
delete score;
delete drones[0];
delete drones[1];
delete drones[2];
delete sitar;
delete drums;
delete voicDrums;
delete reverbs[0];
delete reverbs[1];
return 0;
}

306
ragamatic/ragamat.dsp Executable file
View File

@@ -0,0 +1,306 @@
# Microsoft Developer Studio Project File - Name="ragamatic" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 5.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=ragamatic - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "ragamat.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "ragamat.mak" CFG="ragamatic - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "ragamatic - Win32 Release" (based on\
"Win32 (x86) Console Application")
!MESSAGE "ragamatic - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "ragamatic - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir ""
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__OS_Win_" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib dsound.lib winmm.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "ragamatic - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir ""
# PROP Intermediate_Dir "Debug"
# 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" /YX /FD /c
# ADD CPP /nologo /MT /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__OS_Win_" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib dsound.lib winmm.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
!ENDIF
# Begin Target
# Name "ragamatic - Win32 Release"
# Name "ragamatic - Win32 Debug"
# Begin Source File
SOURCE=..\Stk\ADSR.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\ADSR.h
# End Source File
# Begin Source File
SOURCE=..\Stk\DLineA.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\DLineA.h
# End Source File
# Begin Source File
SOURCE=..\Stk\DLineL.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\DLineL.h
# End Source File
# Begin Source File
SOURCE=..\Stk\DLineN.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\DLineN.h
# End Source File
# Begin Source File
SOURCE=..\Stk\Envelope.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\Envelope.h
# End Source File
# Begin Source File
SOURCE=..\Stk\Filter.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\Filter.h
# End Source File
# Begin Source File
SOURCE=..\Stk\Instrmnt.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\Instrmnt.h
# End Source File
# Begin Source File
SOURCE=..\Stk\JCRev.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\JCRev.h
# End Source File
# Begin Source File
SOURCE=..\Stk\Noise.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\Noise.h
# End Source File
# Begin Source File
SOURCE=..\Stk\NRev.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\NRev.h
# End Source File
# Begin Source File
SOURCE=..\Stk\Object.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\Object.h
# End Source File
# Begin Source File
SOURCE=..\Stk\OnePole.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\OnePole.h
# End Source File
# Begin Source File
SOURCE=..\Stk\OneZero.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\OneZero.h
# End Source File
# Begin Source File
SOURCE=..\Stk\PRCRev.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\PRCRev.h
# End Source File
# Begin Source File
SOURCE=.\ragamat.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\RawWvIn.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\RawWvIn.h
# End Source File
# Begin Source File
SOURCE=..\Stk\Reverb.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\Reverb.h
# End Source File
# Begin Source File
SOURCE=..\Stk\RTSoundIO.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\RTSoundIO.h
# End Source File
# Begin Source File
SOURCE=..\Stk\RTWvOut.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\RTWvOut.h
# End Source File
# Begin Source File
SOURCE=.\Sitar1.cpp
# End Source File
# Begin Source File
SOURCE=.\Sitar1.h
# End Source File
# Begin Source File
SOURCE=..\Stk\SKINI11.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\SKINI11.h
# End Source File
# Begin Source File
SOURCE=.\StrDrone.cpp
# End Source File
# Begin Source File
SOURCE=.\StrDrone.h
# End Source File
# Begin Source File
SOURCE=..\Stk\swapstuf.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\swapstuf.h
# End Source File
# Begin Source File
SOURCE=.\Tabla.cpp
# End Source File
# Begin Source File
SOURCE=.\Tabla.h
# End Source File
# Begin Source File
SOURCE=.\threads.cpp
# End Source File
# Begin Source File
SOURCE=.\threads.h
# End Source File
# Begin Source File
SOURCE=.\VoicDrum.cpp
# End Source File
# Begin Source File
SOURCE=.\VoicDrum.h
# End Source File
# Begin Source File
SOURCE=..\Stk\WvIn.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\WvIn.h
# End Source File
# Begin Source File
SOURCE=..\Stk\WvOut.cpp
# End Source File
# Begin Source File
SOURCE=..\Stk\WvOut.h
# End Source File
# End Target
# End Project

53
ragamatic/ragamat.plg Executable file
View File

@@ -0,0 +1,53 @@
--------------------Configuration: ragamatic - Win32 Release--------------------
Begining build with project "C:\gary\STKRelease\ragamatic\ragamat.dsp", at root.
Active configuration is Win32 (x86) Console Application (based on Win32 (x86) Console Application)
Project's tools are:
"32-bit C/C++ Compiler for 80x86" with flags "/nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__OS_Win_" /Fp"Release/ragamat.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c "
"Win32 Resource Compiler" with flags "/l 0x409 /d "NDEBUG" "
"Browser Database Maker" with flags "/nologo /o"ragamat.bsc" "
"COFF Linker for 80x86" with flags "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib dsound.lib winmm.lib /nologo /subsystem:console /incremental:no /pdb:"ragamat.pdb" /machine:I386 /out:"ragamat.exe" "
"Custom Build" with flags ""
"<Component 0xa>" with flags ""
Creating temp file "C:\WINDOWS\TEMP\RSP53A0.TMP" with contents </nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "__OS_Win_" /Fp"Release/ragamat.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
"C:\gary\STKRelease\Stk\RTWvOut.cpp"
>
Creating command line "cl.exe @C:\WINDOWS\TEMP\RSP53A0.TMP"
Creating temp file "C:\WINDOWS\TEMP\RSP53A1.TMP" with contents <kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib dsound.lib winmm.lib /nologo /subsystem:console /incremental:no /pdb:"ragamat.pdb" /machine:I386 /out:"ragamat.exe"
.\Release\Sitar1.obj
.\Release\StrDrone.obj
.\Release\Tabla.obj
.\Release\threads.obj
.\Release\VoicDrum.obj
.\Release\ragamat.obj
.\Release\DLineA.obj
.\Release\DLineL.obj
.\Release\DLineN.obj
.\Release\Envelope.obj
.\Release\Filter.obj
.\Release\Instrmnt.obj
.\Release\JCRev.obj
.\Release\Noise.obj
.\Release\NRev.obj
.\Release\Object.obj
.\Release\OnePole.obj
.\Release\OneZero.obj
.\Release\PRCRev.obj
.\Release\RawWvIn.obj
.\Release\Reverb.obj
.\Release\RTSoundIO.obj
.\Release\SKINI11.obj
.\Release\swapstuf.obj
.\Release\WvIn.obj
.\Release\ADSR.obj
.\Release\WvOut.obj
.\Release\RTWvOut.obj>
Creating command line "link.exe @C:\WINDOWS\TEMP\RSP53A1.TMP"
Compiling...
RTWvOut.cpp
Linking...
ragamat.exe - 0 error(s), 0 warning(s)

29
ragamatic/ragamatic.dsw Executable file
View File

@@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 5.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "ragamatic"=.\ragamatic.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
ragamatic/rawwaves/ahh.raw Normal file

Binary file not shown.

Binary file not shown.

BIN
ragamatic/rawwaves/bee1.raw Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
ragamatic/rawwaves/dee1.raw Normal file

Binary file not shown.

BIN
ragamatic/rawwaves/dee2.raw Normal file

Binary file not shown.

BIN
ragamatic/rawwaves/din1.raw Normal file

Binary file not shown.

Binary file not shown.

BIN
ragamatic/rawwaves/gun1.raw Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
ragamatic/rawwaves/jun1.raw Normal file

Binary file not shown.

BIN
ragamatic/rawwaves/jun2.raw Normal file

Binary file not shown.

View File

@@ -0,0 +1,55 @@
/**********************************************/
/** Utility to make various functions **/
/** like exponential and log gain curves. **/
/** **/
/** Included here: **/
/** Yamaha TX81Z curves for master gain, **/
/** Envelope Rates (in normalized units), **/
/** envelope sustain level, and more.... **/
/**********************************************/
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i,j;
double temp;
double data[128];
/*************** TX81Z Master Gain *************/
for (i=0;i<100;i++) {
data[i] = pow(2.0,-(99-i)/10.0);
}
data[0] = 0.0;
printf("double __FM4Op_gains[99] = {");
for (i=0;i<100;i++) {
if (i%8 == 0) printf("\n");
printf("%lf,",data[i]);
}
printf("};\n");
/*************** TX81Z Sustain Level ***********/
for (i=0;i<16;i++) {
data[i] = pow(2.0,-(15-i)/2.0);
}
data[0] = 0.0;
printf("double __FM4Op_susLevels[16] = {");
for (i=0;i<16;i++) {
if (i%8 == 0) printf("\n");
printf("%lf,",data[i]);
}
printf("};\n");
/****************** Attack Rate ***************/
for (i=0;i<32;i++) {
data[i] = 6.0 * pow(5.7,-(i-1)/5.0);
}
printf("double __FM4Op_attTimes[16] = {");
for (i=0;i<32;i++) {
if (i%8 == 0) printf("\n");
printf("%lf,",data[i]);
}
printf("};\n");
exit(1);
}

View File

@@ -0,0 +1,33 @@
/**********************************************/
/** Utility to make various functions **/
/** like exponential and log gain curves. **/
/** Specifically for direct MIDI parameter **/
/** conversions. **/
/** Included here: **/
/** A440 Referenced Equal Tempered Pitches **/
/** as a function of MIDI note number. **/
/** **/
/**********************************************/
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i,j;
double temp;
double data[128];
/********* Pitch as fn. of MIDI Note **********/
printf("double __MIDI_To_Pitch[128] = {");
for (i=0;i<128;i++) {
if (i%8 == 0) printf("\n");
temp = 220.0 * pow(2.0,((double) i - 57) / 12.0);
printf("%.2lf,",temp);
}
printf("};\n");
exit(1);
}

View File

@@ -0,0 +1,116 @@
/**********************************************/
/** Utility to make various flavors of **/
/** sine wave (rectified, etc), and **/
/** other commonly needed waveforms, like **/
/** triangles, ramps, etc. **/
/** The files generated are all 16 bit **/
/** linear signed integer, of length **/
/** as defined by LENGTH below **/
/**********************************************/
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#define LENGTH 256
#define PI 3.14159265358979323846
void main()
{
int i,j;
double temp;
short data[LENGTH + 2];
FILE *fd;
/////////// Yer Basic TX81Z Waves, Including Sine ///////////
fd = fopen("halfwave.raw","wb");
for (i=0;i<LENGTH/2;i++)
data[i] = 32767 * sin(i * 2 * PI / (double) LENGTH);
for (i=LENGTH/2;i<LENGTH;i++)
data[i] = 0;
fwrite(&data,2,LENGTH,fd);
fclose(fd);
fd = fopen("sinewave.raw","wb");
for (i=LENGTH/2;i<LENGTH;i++)
data[i] = 32767 * sin(i * 2 * PI / (double) LENGTH);
fwrite(&data,2,LENGTH,fd);
fclose(fd);
fd = fopen("sineblnk.raw","wb");
for (i=0;i<LENGTH/2;i++)
data[i] = data[2*i];
for (i=LENGTH/2;i<LENGTH;i++)
data[i] = 0;
fwrite(&data,2,LENGTH,fd);
fclose(fd);
fd = fopen("fwavblnk.raw","wb");
for (i=0;i<LENGTH/4;i++)
data[i+LENGTH/4] = data[i];
fwrite(&data,2,LENGTH,fd);
fclose(fd);
fd = fopen("snglpeak.raw","wb");
for (i=0;i<=LENGTH/4;i++)
data[i] = 32767 * (1.0 - cos(i * 2 * PI / (double) LENGTH));
for (i=0;i<=LENGTH/4;i++)
data[LENGTH/2-i] = data[i];
for (i=LENGTH/2;i<LENGTH;i++)
data[i] = 0;
fwrite(&data,2,LENGTH,fd);
fclose(fd);
fd = fopen("twopeaks.raw","wb");
for (i=0;i<=LENGTH/2;i++) {
data[LENGTH/2+i] = -data[i];
}
fwrite(&data,2,LENGTH,fd);
fclose(fd);
fd = fopen("peksblnk.raw","wb");
for (i=0;i<=LENGTH/2;i++)
data[i] = data[i*2];
for (i=LENGTH/2;i<LENGTH;i++)
data[i] = 0;
fwrite(&data,2,LENGTH,fd);
fclose(fd);
fd = fopen("ppksblnk.raw","wb");
for (i=0;i<=LENGTH/4;i++)
data[i+LENGTH/4] = data[i];
fwrite(&data,2,LENGTH,fd);
fclose(fd);
/////////// Impulses of various bandwidth ///////////
fd = fopen("impuls10.raw","wb");
for (i=0;i<LENGTH;i++) {
temp = 0.0;
for (j=1;j<=10;j++)
temp += cos(i * j * 2 * PI / (double) LENGTH);
data[i] = 32767 / 10.0 * temp;
}
fwrite(&data,2,LENGTH,fd);
fclose(fd);
fd = fopen("impuls20.raw","wb");
for (i=0;i<LENGTH;i++) {
temp = 0.0;
for (j=1;j<=20;j++)
temp += cos(i * j * 2 * PI / (double) LENGTH);
data[i] = 32767 / 20.0 * temp;
}
fwrite(&data,2,LENGTH,fd);
fclose(fd);
fd = fopen("impuls40.raw","wb");
for (i=0;i<LENGTH;i++) {
temp = 0.0;
for (j=1;j<=40;j++)
temp += cos(i * j * 2 * PI / (double) LENGTH);
data[i] = 32767 / 40.0 * temp;
}
fwrite(&data,2,LENGTH,fd);
fclose(fd);
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
ragamatic/rawwaves/tak1.raw Normal file

Binary file not shown.

BIN
ragamatic/rawwaves/tak2.raw Normal file

Binary file not shown.

BIN
ragamatic/rawwaves/tak3.raw Normal file

Binary file not shown.

BIN
ragamatic/rawwaves/tak4.raw Normal file

Binary file not shown.

304
ragamatic/tcl/TCLRaga.tcl Normal file
View File

@@ -0,0 +1,304 @@
# Tcl/Tk GUI for the RagaMatic
# by Perry R. Cook
# Set initial control values
set cont1 10.0
set cont2 7.0
set cont4 0.0
set cont11 10.0
set cont7 3.0
set outID "stdout"
set commtype "stdout"
# Configure main window
wm title . "STK RagaMatic Controller"
wm iconname . "raga"
. config -bg grey20
# Configure "communications" menu
menu .menu -tearoff 0
menu .menu.communication -tearoff 0
.menu add cascade -label "Communication" -menu .menu.communication \
-underline 0
.menu.communication add radio -label "Console" -variable commtype \
-value "stdout" -command { setComm }
.menu.communication add radio -label "Socket" -variable commtype \
-value "socket" -command { setComm }
. configure -menu .menu
# Configure bitmap display
if {[file isdirectory bitmaps]} {
set bitmappath bitmaps
} else {
set bitmappath tcl/bitmaps
}
frame .banner -bg black
button .banner.top -bitmap @$bitmappath/ragamat2.xbm \
-background white -foreground black
frame .banner.bottom -bg black
label .banner.bottom.ragamat -text " * * RagaMatic * *\n\n \
by Perry R. Cook\n for Ken's Birthday\n \
January, 1999\n\n (thanks also to\n \
Brad for rough\n riff inspirations)" \
-background black -foreground white -relief groove \
-width 20 -height 10
# Bind an X windows "close" event with the Exit routine
bind . <Destroy> +myExit
proc myExit {} {
global outID
puts $outID [format "NoteOff 0.0 1 60 127"]
flush $outID
puts $outID [format "ExitProgram"]
flush $outID
close $outID
exit
}
proc mellow {} {
global cont1 cont2 cont4 cont7 cont11
set cont1 10.0
set cont2 7.0
set cont4 0.0
set cont11 10.0
set cont7 3.0
printWhatz "ControlChange 0.0 1 " 1 $cont1
printWhatz "ControlChange 0.0 1 " 2 $cont2
printWhatz "ControlChange 0.0 1 " 4 $cont4
printWhatz "ControlChange 0.0 1 " 7 $cont7
printWhatz "ControlChange 0.0 1 " 11 $cont11
}
proc nicevibe {} {
global cont1 cont2 cont4 cont7 cont11
set cont1 6.0
set cont2 72.0
set cont4 21.0
set cont11 50.0
set cont7 60.0
printWhatz "ControlChange 0.0 1 " 1 $cont1
printWhatz "ControlChange 0.0 1 " 2 $cont2
printWhatz "ControlChange 0.0 1 " 4 $cont4
printWhatz "ControlChange 0.0 1 " 7 $cont7
printWhatz "ControlChange 0.0 1 " 11 $cont11
}
proc voicSolo {} {
global cont1 cont2 cont4 cont7 cont11
set cont1 2.0
set cont2 37.0
set cont4 90.0
set cont11 10.0
set cont7 120.0
printWhatz "ControlChange 0.0 1 " 1 $cont1
printWhatz "ControlChange 0.0 1 " 2 $cont2
printWhatz "ControlChange 0.0 1 " 4 $cont4
printWhatz "ControlChange 0.0 1 " 7 $cont7
printWhatz "ControlChange 0.0 1 " 11 $cont11
}
proc drumSolo {} {
global cont1 cont2 cont4 cont7 cont11
set cont1 3.0
set cont2 37.0
set cont4 0.0
set cont11 100.0
set cont7 120.0
printWhatz "ControlChange 0.0 1 " 1 $cont1
printWhatz "ControlChange 0.0 1 " 2 $cont2
printWhatz "ControlChange 0.0 1 " 4 $cont4
printWhatz "ControlChange 0.0 1 " 7 $cont7
printWhatz "ControlChange 0.0 1 " 11 $cont11
}
proc rockOut {} {
global cont1 cont2 cont4 cont7 cont11
set cont1 1.0
set cont2 97.0
set cont4 52.0
set cont11 120.0
set cont7 123.0
printWhatz "ControlChange 0.0 1 " 1 $cont1
printWhatz "ControlChange 0.0 1 " 2 $cont2
printWhatz "ControlChange 0.0 1 " 4 $cont4
printWhatz "ControlChange 0.0 1 " 7 $cont7
printWhatz "ControlChange 0.0 1 " 11 $cont11
}
proc raga {scale} {
global outID
puts $outID [format "ControlChange 0.0 1 64 %f" $scale]
flush $outID
}
proc noteOn {pitchVal pressVal} {
global outID
puts $outID [format "NoteOn 0.0 1 %f %f" $pitchVal $pressVal]
flush $outID
}
proc noteOff {pitchVal pressVal} {
global outID
puts $outID [format "NoteOff 0.0 1 %f %f" $pitchVal $pressVal]
flush $outID
}
proc printWhatz {tag value1 value2 } {
global outID
puts $outID [format "%s %i %f" $tag $value1 $value2]
flush $outID
}
frame .banner.butts -bg black
frame .banner.butts.ragas -bg black
button .banner.butts.ragas.raga0 -text "Raga1" \
-bg grey66 -command {raga 0}
button .banner.butts.ragas.raga1 -text "Raga2" \
-bg grey66 -command {raga 1}
frame .banner.butts.presets1 -bg black
button .banner.butts.presets1.warmup -text "Warmup" \
-bg grey66 -command mellow
button .banner.butts.presets1.nicevibe -text "NiceVibe" \
-bg grey66 -command nicevibe
frame .banner.butts.presets2 -bg black
button .banner.butts.presets2.voicsolo -text "VoiceSolo" \
-bg grey66 -command voicSolo
button .banner.butts.presets2.drumsolo -text "DrumSolo" \
-bg grey66 -command drumSolo
button .banner.butts.rockout -text "RockOut" \
-bg grey66 -command rockOut
button .banner.butts.noteOn -text "Cease Meditations and Exit" \
-bg grey66 -command myExit
frame .controls -bg black
scale .controls.cont1 -from 0 -to 128 -length 300 \
-command {printWhatz "ControlChange 0.0 1 " 1} \
-orient horizontal -label "Drone Probability" \
-tickinterval 32 -showvalue true -bg grey66 \
-variable cont1
scale .controls.cont2 -from 0 -to 128 -length 300 \
-command {printWhatz "ControlChange 0.0 1 " 2} \
-orient horizontal -label "Sitar Probability" \
-tickinterval 32 -showvalue true -bg grey66 \
-variable cont2
scale .controls.cont4 -from 0 -to 128 -length 300 \
-command {printWhatz "ControlChange 0.0 1 " 4} \
-orient horizontal -label "Voice Drum Probability" \
-tickinterval 32 -showvalue true -bg grey66 \
-variable cont4
scale .controls.cont11 -from 0 -to 128 -length 300 \
-command {printWhatz "ControlChange 0.0 1 " 11} \
-orient horizontal -label "Tabla Probability" \
-tickinterval 32 -showvalue true -bg grey66 \
-variable cont11
scale .controls.cont7 -from 0 -to 128 -length 300 \
-command {printWhatz "ControlChange 0.0 1 " 7} \
-orient horizontal -label "Tempo" \
-tickinterval 32 -showvalue true -bg grey66 \
-variable cont7
pack .banner.top -pady 10 -padx 10
pack .banner.bottom.ragamat -padx 5 -pady 5
pack .banner.bottom -pady 10
pack .banner.butts.ragas.raga0 -side left
pack .banner.butts.ragas.raga1 -side left
pack .banner.butts.ragas
pack .banner.butts.presets1.warmup -side left
pack .banner.butts.presets1.nicevibe -side left
pack .banner.butts.presets1
pack .banner.butts.presets2.voicsolo -side left
pack .banner.butts.presets2.drumsolo -side left
pack .banner.butts.presets2
pack .banner.butts.rockout
pack .banner.butts.noteOn
pack .banner.butts -side left -padx 5 -pady 10
pack .banner -side left
pack .controls.cont1 -padx 10 -pady 10
pack .controls.cont2 -padx 10 -pady 10
pack .controls.cont4 -padx 10 -pady 10
pack .controls.cont11 -padx 10 -pady 10
pack .controls.cont7 -padx 10 -pady 10
pack .controls -side left -padx 10 -pady 10
# Socket connection procedure
set d .socketdialog
proc setComm {} {
global outID
global commtype
global d
if {$commtype == "stdout"} {
if { [string compare "stdout" $outID] } {
set i [tk_dialog .dialog "Break Socket Connection?" {You are about to break an existing socket connection ... is this what you want to do?} "" 0 Cancel OK]
switch $i {
0 {set commtype "socket"}
1 {close $outID
set outID "stdout"}
}
}
} elseif { ![string compare "stdout" $outID] } {
set sockport 2001
set sockhost localhost
toplevel $d
wm title $d "STK Client Socket Connection"
wm resizable $d 0 0
grab $d
label $d.message -text "Specify a socket host and port number below (if different than the STK defaults shown) and then click the \"Connect\" button to invoke a socket-client connection attempt to the STK socket server." \
-background white -font {Helvetica 10 bold} \
-wraplength 3i -justify left
frame $d.sockhost
entry $d.sockhost.entry -width 15
label $d.sockhost.text -text "Socket Host:" \
-font {Helvetica 10 bold}
frame $d.sockport
entry $d.sockport.entry -width 15
label $d.sockport.text -text "Socket Port:" \
-font {Helvetica 10 bold}
pack $d.message -side top -padx 5 -pady 10
pack $d.sockhost.text -side left -padx 1 -pady 2
pack $d.sockhost.entry -side right -padx 5 -pady 2
pack $d.sockhost -side top -padx 5 -pady 2
pack $d.sockport.text -side left -padx 1 -pady 2
pack $d.sockport.entry -side right -padx 5 -pady 2
pack $d.sockport -side top -padx 5 -pady 2
$d.sockhost.entry insert 0 $sockhost
$d.sockport.entry insert 0 $sockport
frame $d.buttons
button $d.buttons.cancel -text "Cancel" -bg grey66 \
-command { set commtype "stdout"
set outID "stdout"
destroy $d }
button $d.buttons.connect -text "Connect" -bg grey66 \
-command {
set sockhost [$d.sockhost.entry get]
set sockport [$d.sockport.entry get]
set err [catch {socket $sockhost $sockport} outID]
if {$err == 0} {
destroy $d
} else {
tk_dialog $d.error "Socket Error" {Error: Unable to make socket connection. Make sure the STK socket server is first running and that the port number is correct.} "" 0 OK
} }
pack $d.buttons.cancel -side left -padx 5 -pady 10
pack $d.buttons.connect -side right -padx 5 -pady 10
pack $d.buttons -side bottom -padx 5 -pady 10
}
}

View File

@@ -0,0 +1,101 @@
#define prc_width 100
#define prc_height 112
static char prc_bits[] = {
0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xb5,0x6a,
0xad,0x55,0xfd,0xff,0xff,0xbf,0xaa,0x6a,0x6d,0x55,0xfd,0xff,0xff,0xff,0xff,
0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd5,0xb6,0xb5,0xd5,0xff,0xff,
0xff,0xff,0x6f,0xad,0xb5,0x6d,0xfb,0xbf,0xdf,0xdf,0xff,0xff,0xff,0x7f,0xff,
0xff,0xff,0xff,0xbf,0xff,0xf6,0x75,0x7d,0xf5,0xff,0xff,0xf7,0xfb,0xff,0xd5,
0xda,0xea,0xfd,0xbd,0xfe,0xef,0xff,0xff,0x7b,0xdf,0xae,0xff,0xff,0xff,0xbf,
0xfe,0xef,0x57,0xbb,0xff,0xff,0xde,0xf5,0x75,0xfd,0xdb,0xb6,0xed,0xfb,0xbb,
0xfd,0xef,0xff,0x57,0xab,0x2e,0x5b,0xf5,0xbf,0xff,0xdf,0xfe,0xee,0x57,0xfd,
0x7f,0xab,0x6a,0x55,0xad,0xaa,0xff,0x6a,0xf5,0xfb,0x7b,0xfd,0xf7,0xff,0x75,
0xad,0x6a,0xb5,0xa5,0xff,0xff,0x5f,0xff,0xde,0x57,0xfd,0x3f,0x95,0x55,0xab,
0xd5,0xaa,0xfe,0x6f,0xfb,0xfd,0xb7,0xfd,0xff,0xaf,0x5a,0x55,0x55,0x55,0xab,
0xfe,0xfb,0x6e,0xff,0xfb,0xaf,0xfe,0x5b,0x55,0x55,0x55,0x55,0xad,0xfa,0xbf,
0xbb,0xfb,0xae,0xf5,0xff,0x6b,0x55,0x55,0xa9,0xaa,0x6a,0xf5,0xef,0xef,0xfd,
0xfb,0xbf,0x7f,0xad,0x55,0x52,0x4a,0x55,0xb5,0xf6,0xbf,0xba,0xfe,0x6f,0xed,
0xff,0x55,0xa5,0x4a,0xa5,0xaa,0x56,0xeb,0xff,0xef,0xfb,0xfb,0xf7,0x5f,0x5b,
0x95,0x2a,0x29,0x55,0xd5,0xda,0xff,0xdd,0xfe,0xad,0xfd,0xbf,0x55,0x55,0x52,
0xa5,0x54,0x55,0x6d,0xbf,0xbb,0xfb,0xff,0xef,0xef,0x56,0xaa,0x4a,0x95,0xaa,
0xaa,0xb5,0xff,0xef,0xfe,0xd5,0xfa,0x5f,0x55,0x49,0xaa,0x54,0x55,0xb5,0xda,
0xfe,0x7b,0xff,0xff,0xff,0xbf,0x55,0x55,0x55,0xaa,0xa4,0xaa,0x6d,0xff,0xaf,
0xfb,0xd5,0xfa,0xef,0xaa,0xaa,0x24,0x45,0xaa,0xaa,0xd6,0xfe,0xfb,0xfe,0xff,
0xff,0xbf,0xad,0x92,0xaa,0x28,0xa5,0xaa,0x7a,0xff,0xae,0xfb,0xda,0xfa,0xdf,
0xaa,0x4a,0x45,0x55,0x29,0x55,0xd5,0xfe,0xfb,0xfe,0xf7,0xff,0x6f,0x55,0x55,
0x28,0x82,0x94,0xaa,0xaa,0xff,0xaf,0xfb,0x7d,0xfd,0xbf,0x55,0x55,0x93,0x54,
0x52,0xaa,0xf6,0xfe,0xff,0xfe,0xd7,0xff,0xdf,0xea,0x57,0x49,0x22,0xd5,0x75,
0xab,0xff,0xb7,0xfb,0xfd,0xfd,0x6f,0xfd,0xff,0x2b,0x95,0x74,0xff,0x7d,0xff,
0xef,0xff,0x6f,0xff,0xbf,0x6e,0x7f,0x95,0x40,0xda,0xff,0xaf,0xff,0xbf,0xfa,
0xf5,0xfd,0x6f,0xff,0xef,0x5b,0x94,0xea,0xff,0x6f,0xff,0xef,0xff,0xbf,0xff,
0xdf,0xba,0x7a,0xab,0x4a,0x74,0xbd,0xbf,0xff,0xff,0xfa,0xea,0xfd,0x6f,0xd7,
0xaa,0x2a,0x21,0x95,0x67,0x7d,0xff,0xaf,0xff,0x7f,0xff,0xbf,0xad,0x5d,0xab,
0x94,0xea,0xba,0xb6,0xff,0xf7,0xfb,0xda,0xfd,0xaf,0xf7,0xff,0x5d,0xaa,0x7a,
0xdf,0xfb,0xfe,0xaf,0xfe,0x7d,0xff,0x6f,0x79,0xf7,0x6f,0x45,0xdf,0x77,0xad,
0xff,0xff,0xfb,0xef,0xfb,0xdf,0xee,0x7f,0xbb,0x52,0xf7,0xfe,0xf7,0xff,0xaf,
0xfe,0xf5,0xfe,0xaf,0xbe,0xbf,0xaf,0xaa,0xff,0xff,0xaf,0xfe,0xfb,0xfb,0xbf,
0xff,0x77,0xfb,0xbe,0xf5,0xda,0xb6,0xff,0xdf,0xff,0xaf,0xfe,0xf5,0xf5,0xaf,
0xbd,0x7f,0x5f,0xb7,0xdf,0xbe,0xaf,0xfe,0xfa,0xfb,0x7f,0xef,0xaf,0xd6,0xd4,
0xb5,0xd9,0x75,0x6b,0x7b,0xff,0xaf,0xfe,0xd5,0xdf,0xb7,0x2a,0x6b,0xdf,0x6e,
0xdf,0xad,0xad,0xbf,0xfa,0xfb,0x7e,0x6b,0x5f,0x55,0xbd,0xb5,0xaa,0xfb,0xb6,
0xd6,0x7e,0x6f,0xff,0xeb,0xdd,0xaa,0xd5,0x52,0xd5,0x75,0xad,0xdb,0x5a,0xdb,
0xbb,0xfb,0xff,0x6b,0xb7,0x6a,0x5f,0xad,0xae,0xf7,0x6e,0xab,0x76,0xed,0xfe,
0x6a,0xaf,0x5d,0xb5,0x55,0x75,0xb3,0x95,0xb5,0x75,0xbb,0xbf,0xfb,0xff,0xbb,
0xb6,0xda,0xaa,0xda,0xaa,0x5e,0xda,0xaa,0xd7,0xea,0xfe,0xdb,0xae,0xdb,0x4a,
0x55,0xad,0xaa,0xb6,0xaa,0xaa,0x6e,0xbf,0xfb,0xf6,0xdb,0x56,0x55,0x8a,0x56,
0xa5,0x7a,0x51,0x55,0xad,0xeb,0xfe,0xbf,0xbf,0x5b,0x55,0x51,0x55,0xa9,0xca,
0xaa,0x6a,0xff,0xfe,0xfb,0xf5,0xd5,0x6f,0xab,0x8a,0xeb,0xa6,0xbf,0x45,0xad,
0x5a,0x57,0xff,0xdf,0xff,0x5a,0x55,0x68,0xfd,0xfb,0x7f,0x93,0x6a,0xef,0xfb,
0xfd,0x7b,0xb5,0x6e,0x95,0xaa,0xfe,0xef,0xdf,0x4d,0x52,0xbb,0xae,0xff,0xfe,
0xdf,0xba,0x25,0x69,0xff,0xff,0xff,0x26,0xea,0xed,0xfb,0xfa,0x6b,0x75,0x5d,
0x95,0xb4,0xff,0xff,0xff,0x5f,0xa9,0xd6,0xde,0xff,0xff,0x7f,0x6b,0x55,0xea,
0xff,0xff,0xff,0x4f,0x6a,0xfb,0xfb,0xfd,0xb6,0xda,0xbd,0x2b,0xfd,0xff,0xff,
0xff,0x7f,0xd5,0x6d,0x5f,0xff,0xdf,0xff,0xd6,0x94,0xfe,0xff,0xff,0xff,0xbf,
0x6a,0xfb,0xf5,0xfb,0xf5,0xda,0x7d,0xab,0xfe,0xff,0xff,0xff,0xff,0xb4,0xbf,
0xdf,0xfe,0x5f,0x7f,0xd7,0xaa,0xff,0xff,0xff,0xff,0xff,0xd6,0xfa,0xfb,0xff,
0xfb,0xf7,0x7f,0xd5,0xff,0xff,0xff,0xff,0xff,0xe9,0xef,0x5e,0xfb,0x5f,0xbd,
0xed,0xd5,0xff,0xff,0xff,0xff,0xff,0x5a,0xbf,0xf7,0xff,0xf6,0xef,0xbe,0xd6,
0xff,0x7f,0x55,0xfd,0xff,0xea,0xfd,0xdf,0xfe,0xdf,0xfe,0x6b,0xd3,0xff,0xaa,
0xb7,0xb7,0xff,0xb6,0xff,0xfa,0xff,0xfb,0x6b,0xff,0xda,0x5f,0xb7,0xd4,0xea,
0x7e,0xea,0xdb,0x6f,0xfb,0x5f,0xff,0xad,0xd7,0xbf,0xfd,0xff,0xff,0xff,0xfd,
0x7e,0xff,0xff,0xfb,0xd7,0xff,0xa9,0xd7,0xfe,0xff,0x5f,0x7d,0xd5,0xf7,0xbb,
0xfd,0x6e,0xfb,0xb6,0xd6,0x6f,0xff,0xff,0xff,0x7e,0x7b,0xff,0xef,0xff,0xfb,
0xaf,0xfb,0xdf,0xbf,0xfe,0xff,0xbf,0xfe,0xee,0xdd,0x7e,0xff,0x5f,0xfb,0xdf,
0xea,0xbf,0xff,0xff,0xdf,0x7e,0xfb,0xfb,0xfb,0xfd,0xf7,0xdf,0xf6,0xbf,0xff,
0xfe,0xff,0xaf,0xff,0xdd,0xff,0xdf,0xff,0xdf,0xf6,0xff,0xab,0xff,0xff,0xff,
0xff,0x7f,0xff,0xbf,0xfd,0xfe,0xfb,0xbb,0xdb,0xfe,0xfe,0xfe,0xff,0xef,0xff,
0xee,0xf6,0xef,0xff,0xdf,0xef,0xff,0xaf,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,
0xbe,0xfb,0xfd,0xfd,0xf6,0xfb,0xff,0xff,0xff,0xff,0x7f,0x5f,0xf7,0xfb,0xff,
0xb7,0xd7,0xff,0xae,0xfe,0xff,0xff,0xff,0xff,0xbb,0xde,0xef,0xfe,0xff,0xff,
0x9b,0xfa,0xff,0xff,0xff,0xff,0xbf,0xbd,0x7e,0xff,0xff,0xdb,0xf6,0x4f,0xef,
0xfe,0xff,0xff,0xff,0xff,0xff,0xfa,0xbb,0xfd,0xfe,0xdf,0xe2,0xb7,0xff,0xff,
0xff,0xff,0x5f,0xf5,0xfc,0xff,0xff,0xef,0x7b,0xf9,0xf7,0xfe,0xff,0xff,0xff,
0xff,0xfd,0xd9,0xdd,0xff,0xbd,0x3f,0xfe,0xab,0xfd,0xff,0xff,0xff,0x6f,0xfb,
0xf8,0xf7,0xfd,0xff,0x9d,0xff,0xff,0xfb,0xff,0xff,0xff,0xbb,0xfd,0xf9,0xbf,
0xff,0xed,0xcf,0xff,0x57,0xef,0xff,0xff,0xff,0xef,0xf6,0x70,0xff,0xff,0xff,
0xdd,0xff,0xaf,0xbd,0xff,0xff,0x7f,0x5b,0xfb,0xfa,0xdb,0xfd,0xb7,0xcf,0xff,
0xf7,0x76,0xdd,0xff,0xd7,0x6e,0xfd,0xd0,0xff,0xff,0xfe,0xcb,0xff,0x5b,0xef,
0xb6,0xd4,0x7a,0xb7,0xfe,0x01,0xfa,0xfe,0xff,0x8e,0xff,0xaf,0xba,0xdb,0x56,
0xd5,0xda,0x7b,0x84,0xd0,0xff,0xed,0xa7,0xff,0x7b,0xdb,0xaa,0xaa,0xae,0x55,
0x3f,0x10,0x82,0xfe,0xff,0x8b,0xff,0xaf,0x6d,0x55,0xd5,0x6a,0xab,0xbf,0x40,
0x10,0xf8,0xf7,0x0a,0xfe,0xbf,0xb6,0xb7,0x55,0x55,0xd5,0x1f,0x02,0x40,0xf2,
0x7e,0x41,0xfe,0xdb,0xda,0x54,0xaa,0xaa,0xfa,0x0f,0x20,0x05,0xf0,0x17,0x00,
0xfc,0x7f,0x6b,0x55,0x55,0x55,0xd5,0x01,0x04,0x10,0xf2,0x47,0x12,0xfc,0xdf,
0xaa,0x56,0xa9,0xaa,0xfe,0x00,0x20,0x81,0xf0,0x00,0x80,0xf8,0xff,0xd7,0x52,
0xa5,0xaa,0x7d,0x22,0x01,0x08,0xf2,0x00,0x08,0xf0,0x7f,0xad,0xaa,0x2a,0x55,
0x2f,0x00,0x24,0x02,0xf0,0x24,0x21,0xf0,0xff,0x57,0x15,0x49,0xe9,0x0f,0x00,
0x00,0x48,0xf0,0x00,0x00,0xe1,0xff,0x7d,0xa5,0x24,0xf6,0x03,0x42,0x90,0x00,
0xf2,0x92,0x08,0xa0,0xff,0xaf,0x12,0x49,0x7d,0x01,0x00,0x02,0x04,0xf0,0x00,
0x42,0x80,0xff,0xff,0xaa,0x24,0x57,0x40,0x08,0x08,0x90,0xf0,0x08,0x08,0x04,
0xff,0xb7,0x4a,0xd2,0x00,0x09,0x20,0x80,0x00,0xf2,0x40,0x40,0x01,0xfe,0xff,
0x55,0xa9,0x40,0x02,0x00,0x11,0x02,0xf0,0x02,0x01,0x10,0xfc,0x7f,0xaf,0x6a,
0x28,0x50,0x02,0x00,0x48,0xf0,0x08,0x24,0x42,0xe4,0xff,0x5d,0x3b,0x82,0x00,
0x08,0x42,0x00,0xf2,0x20,0x80,0x00,0x8a,0xfe,0xff,0x7d,0x00,0x52,0x40,0x08,
0x20,0xf0,0x01,0x01,0x08,0x34,0xfc,0xff,0x3f,0x00,0x48,0x00,0x20,0x82,0xf0,
0x08,0x10,0x82,0xf4,0xf1,0xfe,0x3f,0x49,0x20,0x84,0x00,0x00,0xf2,0x40,0x42,
0x10,0xe0,0xd3,0x60,0x7f,0x00,0x52,0x10,0x82,0x08,0xf0,0x02,0x00,0x42,0x84,
0x87,0xc1,0xff,0x25,0x00,0x00,0x08,0x20,0xf0,0x48,0x08,0x10,0x00,0x0a,0x80,
0xff,0x81,0x28,0x01,0x20,0x00,0xf2,0x00,0x21,0x81,0x10,0x24,0x84,0xff,0x07,
0x00,0x48,0x00,0x42,0xf0,0x00,0x00,0x10,0x00,0x10,0x00,0xfe,0x07,0x92,0x01,
0x81,0x00,0xf1,0x24,0x09,0x40,0x42,0x48,0x00,0xfc,0x27,0x88,0x05,0x08,0x08,
0xf0};

View File

@@ -0,0 +1,60 @@
#define prcFunny_width 100
#define prcFunny_height 65
static char prcFunny_bits[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xf0,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0x07,0xf0,0x00,0xa8,0xea,0x7d,0xef,0x7f,0xfb,0xdb,0xb5,0x5e,0x55,0x05,
0xf0,0x00,0xfc,0xff,0xf7,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0x07,0xf0,0x00,
0x58,0xd5,0x5f,0x5f,0xf7,0xff,0xdb,0xbb,0x7f,0x55,0x05,0xf0,0x00,0xf4,0x7f,
0x01,0x39,0x76,0xbc,0x91,0x13,0xe3,0xff,0x07,0xf0,0x00,0xbc,0xed,0x01,0x39,
0x76,0xb2,0x11,0x12,0xe3,0x6d,0x05,0xf0,0x00,0xd8,0xfb,0x00,0x00,0xf6,0xb3,
0x0d,0x62,0x83,0xdf,0x07,0xf0,0x00,0xec,0xfe,0x00,0x00,0x80,0x0f,0x0c,0x00,
0x83,0x77,0x05,0xf0,0x00,0x7c,0x1f,0x00,0x00,0x80,0x0f,0xe0,0x0f,0x00,0xdf,
0x07,0xf0,0x00,0xd4,0x03,0x00,0xff,0x07,0x02,0x1e,0xf0,0x00,0x7f,0x05,0xf0,
0x00,0x7c,0x03,0xf8,0x00,0x78,0xc0,0x01,0x00,0x03,0xec,0x07,0xf0,0x00,0xd4,
0x03,0x1f,0x00,0x80,0x73,0x00,0x00,0x04,0x7c,0x05,0xf0,0x00,0xfc,0x03,0x00,
0x00,0x00,0x3e,0x00,0x00,0x18,0xd8,0x07,0xf0,0x00,0xa8,0x00,0xc0,0xff,0x3f,
0x8e,0xff,0x7f,0x60,0x78,0x05,0xf0,0x00,0xfc,0x00,0x20,0x00,0x70,0x40,0x00,
0x80,0x00,0xe0,0x07,0xf0,0x00,0xd8,0x00,0x1e,0x00,0xc0,0x31,0x00,0x00,0x07,
0x40,0x05,0xf0,0x00,0xec,0x00,0x07,0x00,0x00,0x0e,0x00,0x08,0x1c,0xe0,0x07,
0xf0,0x00,0xfc,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x78,0x60,0x05,0xf0,0x00,
0xe4,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x07,0xf0,0x00,0x64,0xe4,
0x80,0x02,0x08,0x10,0x00,0x00,0x80,0x23,0x04,0xf0,0x00,0x64,0x24,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x20,0x04,0xf0,0x00,0x60,0x38,0x00,0x00,0x00,0x10,
0x04,0x00,0x80,0x20,0x04,0xf0,0x00,0x60,0x38,0x00,0x00,0x00,0x02,0x00,0x00,
0x80,0x20,0x04,0xf0,0x00,0x60,0x18,0x08,0x00,0x00,0x00,0x04,0x00,0x81,0x00,
0x04,0xf0,0x00,0x60,0x18,0x00,0x00,0x3f,0x04,0x00,0x20,0x00,0xc0,0x04,0xf0,
0x00,0x64,0x18,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0xc3,0x04,0xf0,0x00,0x64,
0x18,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0xc3,0x04,0xf0,0x00,0xe4,0x18,0x00,
0x00,0x0e,0x80,0x03,0x00,0x00,0xc3,0x07,0xf0,0x00,0xfc,0x38,0x00,0x00,0x00,
0xc0,0x0f,0x00,0x80,0xc3,0x07,0xf0,0x00,0xfc,0x23,0x00,0x00,0x00,0xc0,0x0f,
0x00,0x80,0x00,0x05,0xf0,0x00,0xa8,0xe3,0x80,0x00,0x00,0x80,0x03,0x00,0x80,
0x00,0x07,0xf0,0x00,0xfc,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,
0xf0,0x00,0xac,0x03,0x40,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x06,0xf0,0x00,
0xf8,0x03,0x01,0x00,0x02,0x02,0x00,0x00,0x78,0xc0,0x07,0xf0,0x00,0xac,0x03,
0x07,0x00,0x00,0x0e,0x80,0x00,0x1c,0x60,0x03,0xf0,0x00,0xfc,0x03,0x20,0x00,
0x72,0x40,0x00,0x80,0x00,0xc0,0x06,0xf0,0x00,0xa8,0x03,0xc0,0xff,0x3f,0x80,
0x7f,0x7f,0x00,0xc0,0x07,0xf0,0x00,0xfc,0x03,0x00,0x00,0x80,0x31,0x00,0x00,
0x00,0x40,0x05,0xf0,0x00,0x58,0x03,0x00,0x00,0x80,0x31,0x00,0x00,0x00,0xc0,
0x07,0xf0,0x00,0xf4,0x03,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x40,0x05,0xf0,
0x00,0xbc,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x07,0xf0,0x00,0xd8,
0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x05,0xf0,0x00,0x74,0x1d,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x07,0xf0,0x00,0xdc,0x37,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x60,0x05,0xf0,0x00,0x78,0xfd,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xe0,0x07,0xf0,0x00,0xdc,0xd7,0x00,0x07,0x81,0x03,0x10,0x00,0x00,
0x40,0x05,0xf0,0x00,0xf4,0xfd,0xc0,0xf8,0xff,0x3f,0xfe,0x0f,0x00,0xfc,0x07,
0xf0,0x00,0x5c,0xaf,0x00,0x00,0x70,0xc0,0xed,0x0f,0x00,0x6c,0x05,0xf0,0x00,
0xf4,0xf5,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x07,0xf0,0x00,0x5c,0xbf,
0x1e,0x00,0x00,0x00,0x00,0x00,0x80,0x77,0x05,0xf0,0x00,0xf4,0xd6,0x3b,0x00,
0x00,0x00,0x00,0x00,0x80,0xdd,0x07,0xf0,0x00,0xdc,0xfd,0xfe,0x01,0x00,0x00,
0x00,0x80,0xff,0x77,0x05,0xf0,0x00,0xb8,0xb7,0xd7,0x0f,0x00,0x00,0x00,0xf0,
0xaf,0xde,0x07,0xf0,0x00,0xec,0xee,0x7a,0xff,0xff,0xff,0x9f,0xff,0xfb,0x7b,
0x05,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xf0};

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

View File

@@ -0,0 +1,768 @@
#define ragamat_width 290
#define ragamat_height 310
static char ragamat_bits[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x3f,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xc0,0x7b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x77,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,
0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xdf,0xaa,
0xe9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x3f,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x1f,0x01,0x00,0x02,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xc0,0x7d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x04,0x00,0x10,0x88,
0x60,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xef,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x0b,0x40,0x48,0x02,0x20,0x02,0x28,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xc0,0x6b,0xbf,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc8,0x40,0x08,0x52,0xf5,0x07,0x00,
0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xef,0xff,0x16,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x26,0x10,0x61,0x04,0x00,0xd0,0x08,0x80,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0xf8,0xef,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,
0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x81,0x84,0x08,0x51,0x25,0x01,0x30,0x00,
0x18,0x00,0x00,0x00,0x00,0x80,0x03,0x40,0xdf,0x7d,0x0f,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0x00,
0x50,0x04,0x00,0x10,0x48,0xc2,0x01,0xd0,0x00,0x00,0x00,0x00,0xc0,0x03,0x40,
0xf7,0xef,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,
0x00,0x00,0x00,0x00,0x00,0x38,0x40,0x0a,0x51,0xa5,0x44,0x22,0x00,0x04,0x60,
0x00,0x00,0x00,0x00,0xc0,0x07,0x80,0xde,0xbe,0x17,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x12,0x48,
0x48,0x88,0x8a,0x08,0x09,0x60,0x00,0x02,0x00,0x00,0x00,0xc0,0xbe,0x2a,0xff,
0xfe,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,
0x00,0x00,0x00,0x40,0x82,0x88,0x92,0x02,0x51,0x20,0x40,0x20,0x80,0x22,0x0e,
0x00,0x00,0x00,0xe0,0xf7,0xbf,0xf6,0xb7,0x17,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x20,0x25,0x20,0x04,0x54,
0x00,0x84,0x12,0x04,0x05,0x81,0x10,0x00,0x00,0x00,0x70,0xff,0x3f,0xdf,0xff,
0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
0x00,0x00,0x58,0x00,0x85,0x50,0x11,0x55,0x11,0x00,0x41,0x10,0x08,0x50,0x00,
0x00,0x00,0xc0,0xfd,0x5f,0x7d,0xb5,0x2d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x20,0x91,0x08,0x41,0x84,0x00,
0xa2,0x54,0x12,0x41,0x40,0x12,0x00,0x00,0x00,0xc0,0x07,0x40,0xef,0xf3,0x27,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,
0x00,0x36,0x04,0x22,0x0a,0x51,0x94,0x08,0x41,0x08,0x04,0x09,0x60,0x00,0x00,
0x00,0xc0,0x07,0x40,0xfb,0xba,0x2f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x09,0x20,0x88,0x28,0x84,0x22,0x01,
0x14,0xa1,0x00,0x44,0x49,0x01,0x00,0x00,0xe0,0x1f,0x40,0xdf,0xf7,0x2e,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x80,
0x2e,0x81,0x22,0x42,0x21,0x08,0x54,0x41,0x02,0x22,0x10,0x40,0x01,0x00,0x00,
0xe0,0xfe,0xbf,0xbf,0xd2,0x2f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xfc,0x00,0x00,0x00,0x00,0x80,0x0a,0x10,0x08,0x11,0x94,0xa2,0x04,0x08,
0x08,0x88,0x04,0x92,0x00,0x00,0x00,0xd0,0xfb,0xbf,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x26,
0x45,0x45,0xa4,0x82,0x5e,0xbb,0x22,0x21,0x01,0xa0,0x04,0x02,0x00,0x00,0xf0,
0xff,0x3f,0xd2,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xfc,0x00,0x00,0x00,0x00,0x20,0x0a,0x00,0x90,0x14,0x70,0xab,0x6d,0x09,0x04,
0x48,0x22,0x00,0x02,0x00,0x00,0x40,0x2f,0x80,0x01,0x00,0x20,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x50,0x42,0x01,
0x22,0x91,0xde,0xd5,0x56,0x53,0x49,0x02,0x40,0x12,0x09,0x00,0x00,0xe0,0x07,
0x10,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,
0x00,0x00,0x00,0x00,0xf0,0x1a,0x98,0x08,0x89,0x6a,0x7b,0xbb,0x9d,0x00,0x90,
0x48,0x00,0x21,0x00,0x00,0xe0,0x06,0x02,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x58,0x84,0x20,0x44,
0x54,0xbd,0xd7,0xea,0x16,0x94,0x00,0xa2,0x84,0xb8,0x00,0x00,0xe0,0xff,0x00,
0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,
0x00,0x00,0x00,0xd8,0x16,0x01,0x91,0xa2,0xee,0xde,0x5f,0x57,0x22,0x48,0x00,
0x10,0x19,0x00,0x00,0xb0,0xff,0x28,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0xb8,0x0b,0x84,0x04,0x94,
0xbb,0x77,0xb5,0x3b,0x81,0x12,0x90,0x44,0x42,0x00,0x00,0xf0,0xfe,0xb2,0x46,
0x3f,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,
0x00,0x00,0xf4,0x56,0x20,0xa8,0xc2,0xee,0xdd,0xef,0x16,0x14,0x00,0x11,0x81,
0xc1,0x00,0x00,0xe0,0x17,0x00,0xf8,0xff,0x43,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0xb4,0x17,0x01,0x01,0xa8,0x7b,
0x77,0xbb,0x3d,0x01,0x24,0x20,0x00,0xa8,0x01,0x00,0xe0,0x07,0x80,0xff,0xff,
0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
0x00,0x6a,0xad,0x14,0x24,0x85,0xac,0xdb,0xed,0x06,0x28,0x01,0x04,0x6a,0x38,
0x02,0x00,0xe0,0x03,0xc0,0xbf,0xed,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0xfb,0x54,0xa2,0x40,0x50,0xff,0xbd,
0x7f,0x93,0x02,0x04,0x82,0x10,0x79,0x00,0x00,0xc0,0x03,0x40,0xfb,0xff,0xdf,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,
0xc9,0x1c,0x48,0x8a,0x04,0x74,0xf7,0xab,0x41,0xa4,0x90,0x28,0x60,0xf8,0x01,
0x00,0x00,0x00,0x80,0xf6,0xf6,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x06,0xeb,0x02,0x11,0x91,0x08,0xdf,0x9e,
0x28,0x01,0x40,0x00,0x04,0x50,0x02,0x00,0x80,0x03,0x80,0xdf,0xbd,0x1f,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x80,0x46,
0x25,0x29,0x00,0x04,0x81,0x20,0x21,0x45,0x24,0x11,0xaa,0x04,0x71,0x05,0x00,
0xc0,0x03,0xc0,0x7a,0xef,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xfc,0x00,0x00,0x00,0x80,0x83,0x9f,0x07,0x49,0x50,0x54,0x54,0x4a,0x08,
0x02,0x84,0x00,0x21,0x23,0x08,0x00,0xc0,0x07,0x60,0xef,0xbf,0xbf,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xc0,0xa0,0xbb,
0x69,0x02,0x02,0x20,0x92,0x04,0x91,0x90,0x20,0x42,0x44,0xe1,0x01,0x00,0xc0,
0x07,0xa0,0xfe,0xfb,0xb1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xfc,0x00,0x00,0x00,0xc0,0xa0,0xfe,0x8c,0xa8,0x90,0x0a,0x45,0x44,0x04,0x44,
0x92,0x20,0x12,0xa3,0x02,0x00,0x40,0xff,0x9f,0x5b,0xed,0x1f,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xe0,0xe7,0xb7,0x6e,
0x12,0x05,0xa0,0x10,0x12,0x51,0x28,0x21,0x1a,0x42,0x42,0x05,0x00,0xe0,0xff,
0xff,0xef,0xbf,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,
0x00,0x00,0x00,0xf0,0xbe,0xff,0x58,0x4d,0x68,0x12,0x40,0x41,0x08,0x85,0x04,
0x40,0x48,0x4e,0x01,0x00,0xf0,0xff,0x3f,0xbd,0xf7,0x7b,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xf0,0x9f,0xff,0xe2,0x10,
0x81,0x84,0x0a,0x92,0xa2,0x28,0x78,0x05,0x40,0x84,0x15,0x00,0xa0,0xfd,0xaf,
0xfe,0xfe,0x37,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,
0x00,0x00,0xb0,0xfa,0x37,0xfd,0xd6,0x14,0x50,0xa4,0x00,0x12,0x42,0x50,0x92,
0xd0,0x84,0x02,0x00,0xc0,0x07,0x40,0xdf,0xab,0x2e,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x70,0xdf,0xff,0x5e,0x37,0xa2,
0x0a,0x11,0x5a,0x14,0xc0,0x12,0xe9,0xa0,0x48,0x2b,0x00,0xc0,0x07,0xc0,0x6b,
0x7f,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,
0x00,0xd0,0xdf,0x3b,0x7b,0x6d,0x11,0xa8,0x4c,0x21,0x80,0xc0,0x47,0xf5,0xa8,
0x58,0x07,0x00,0xe0,0x0f,0x80,0xfd,0x3d,0xfa,0x01,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xb0,0xdd,0x7f,0xed,0xdf,0xdb,0x01,
0x40,0x00,0x42,0x0b,0x01,0xd0,0xa0,0xca,0x41,0x00,0xa0,0x0d,0x20,0xef,0xff,
0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
0xf0,0xdf,0xbf,0xde,0xf7,0x74,0x76,0x39,0x7d,0x15,0x09,0x10,0x90,0x40,0x91,
0x11,0x00,0xe0,0xff,0xbf,0x7e,0xdb,0x71,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x70,0xef,0xf7,0xfe,0xad,0xe0,0xad,0x1a,
0x7c,0x45,0x0a,0x08,0x90,0x50,0xb5,0x05,0x00,0xf0,0xed,0x9f,0xeb,0x1f,0x4e,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x30,
0xd9,0x7d,0x7e,0x7f,0xba,0x6a,0x2d,0xbd,0x93,0x10,0x00,0x90,0x50,0x31,0x05,
0x00,0xd8,0xff,0x7f,0x7f,0x15,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xfc,0x00,0x00,0x00,0x70,0xdc,0xbf,0x5f,0x7b,0xd5,0x2e,0x31,0x44,
0x58,0x1a,0x00,0x00,0x41,0x23,0x08,0x00,0xe0,0xff,0xdf,0xd6,0x7f,0x7f,0x03,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x70,0xcc,
0xb7,0xff,0x6c,0x51,0xd9,0x2a,0x34,0xa5,0x1a,0x08,0x00,0xa1,0x22,0x09,0x00,
0xe0,0x0f,0x20,0xff,0xef,0x6b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xfc,0x00,0x00,0x00,0x70,0xec,0x5e,0x5f,0x65,0xbc,0x6f,0x25,0xd0,0x5b,
0x1a,0x00,0x00,0x21,0x0a,0x0b,0x00,0xe0,0x0e,0xa0,0x7f,0x0d,0x5f,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x70,0xd4,0x7f,
0xaf,0xb7,0xba,0xb4,0x3f,0x0c,0x80,0x3a,0x40,0x22,0xa3,0x41,0x0a,0x00,0xc0,
0xfb,0xff,0xda,0x4f,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xfc,0x00,0x00,0x00,0x70,0xee,0x5d,0xff,0xaa,0x59,0x59,0x3a,0x0a,0x24,0x18,
0x00,0x20,0x83,0x44,0x08,0x00,0xe0,0xff,0x7f,0x6f,0x9b,0xff,0x03,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xc0,0xee,0x3f,0xaf,
0xbd,0x6a,0x6d,0x3d,0xc4,0x02,0x3c,0x00,0x20,0x27,0x55,0x08,0x00,0x00,0xf7,
0x87,0xfa,0xff,0xb5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,
0x00,0x00,0x00,0xb0,0xef,0xae,0x5b,0xab,0x1a,0x42,0x3f,0x76,0x02,0x34,0x00,
0x20,0x86,0xa2,0x0b,0x00,0x00,0x0e,0x20,0xbf,0x87,0xcf,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xa0,0xb5,0xaf,0xef,0x6d,
0xd9,0x5a,0x3f,0x9a,0x08,0x33,0x00,0x20,0x06,0x89,0x0a,0x00,0x00,0xdf,0xdf,
0xdd,0x27,0x7b,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,
0x00,0x00,0xa0,0xf7,0xdd,0xbb,0xb6,0x5a,0x6d,0x1d,0x6c,0x2a,0x38,0x00,0x20,
0x86,0x14,0x08,0x00,0x80,0xff,0xff,0x77,0x85,0xff,0x03,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xa0,0xef,0xaf,0xef,0x6d,0x6a,
0xaa,0x3f,0x56,0x05,0x26,0x01,0x42,0x48,0x14,0x01,0x00,0x80,0xfb,0x1f,0xdb,
0xeb,0xff,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,
0x00,0xa0,0xf6,0xaf,0xb5,0x5b,0xa9,0xf5,0x3f,0x5c,0x4d,0x3c,0x10,0x40,0x08,
0x32,0x04,0x00,0x00,0x9f,0x22,0x77,0xd3,0xda,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xe0,0xb7,0xad,0xef,0x76,0x5d,0x55,
0x1f,0xdc,0x10,0x24,0x40,0x40,0x0c,0x29,0x00,0x00,0x80,0x6d,0x80,0xdf,0xc3,
0xf7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
0x40,0xfb,0xaf,0xb5,0x9d,0x4a,0xd5,0x2b,0x6c,0x02,0x05,0x00,0x49,0x98,0x24,
0x02,0x00,0x80,0xff,0x9f,0x7a,0xd7,0xdf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x40,0x7a,0xd3,0xdf,0x6e,0xba,0xaa,0x5f,
0xb8,0x49,0x24,0x04,0x40,0x90,0x92,0x0a,0x00,0xe0,0xff,0x9f,0xfd,0xff,0xfd,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x40,
0xf5,0xdf,0x6a,0x5b,0x4a,0x55,0x4f,0xa8,0x4a,0x49,0x00,0x40,0x10,0xa8,0x0a,
0x00,0x80,0xef,0x0d,0xbf,0xe1,0xd7,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xfc,0x00,0x00,0x00,0x40,0xbf,0xeb,0xb7,0x55,0x2d,0xd2,0x6e,0xb8,
0x44,0x54,0x10,0x82,0x00,0xa2,0x00,0x00,0x00,0x0e,0xe0,0xd7,0xa9,0x7f,0x05,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x40,0xf9,
0x49,0xdd,0x5e,0xa4,0x6a,0x49,0xd4,0x2a,0x41,0x40,0x88,0x00,0x25,0x04,0x00,
0x00,0xf6,0x6f,0xfb,0xff,0xfa,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xfc,0x00,0x00,0x00,0x40,0xfe,0x7d,0xef,0x65,0x5d,0xd5,0x4c,0x78,0x4b,
0x42,0x00,0xa0,0x08,0x31,0x01,0x00,0xc0,0xff,0xaf,0xbe,0xe1,0xcf,0x07,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x40,0xeb,0xcb,
0xb5,0x4e,0xa5,0x6a,0x48,0x58,0x25,0x40,0x08,0x80,0x20,0x44,0x05,0x00,0x80,
0xff,0xdf,0xef,0x50,0xff,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xfc,0x00,0x00,0x00,0xc0,0xba,0xb7,0x5e,0x5b,0x55,0xb5,0x4a,0xe0,0xaa,0x4a,
0x00,0x81,0x20,0x2a,0x01,0x00,0x00,0x00,0x70,0xdb,0xff,0xdb,0x03,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xc0,0xfd,0x9b,0xeb,
0xa5,0x55,0x5b,0x49,0x88,0x23,0x62,0x20,0xa0,0x20,0xa2,0x00,0x00,0x00,0x00,
0xa0,0xfd,0xff,0xf7,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,
0x00,0x00,0x00,0x80,0xee,0xd5,0xb6,0xaa,0xae,0x6d,0xc5,0x00,0xb8,0x80,0x80,
0x80,0x40,0x94,0x00,0x00,0x00,0x00,0x00,0x5f,0x50,0x3d,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x80,0xba,0x96,0x5b,0x67,
0xa7,0xd6,0x84,0xa8,0x00,0x81,0x00,0x88,0x50,0x50,0x00,0x00,0x00,0x02,0xe0,
0x75,0xb0,0xef,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,
0x00,0x00,0x80,0xfd,0xfd,0xd6,0xaa,0xa5,0xf5,0x87,0x00,0x48,0x84,0x00,0x01,
0x40,0xac,0x08,0x00,0x80,0x2f,0x70,0xdf,0xff,0xdd,0x07,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x80,0xfe,0xd6,0x6d,0x27,0x5b,
0xdb,0x47,0xb2,0x42,0x91,0x40,0x20,0x88,0x24,0x01,0x00,0xe0,0xff,0x9f,0xfb,
0xfb,0x77,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,
0x00,0x00,0xf5,0xb5,0xb7,0xa9,0x6b,0xd5,0x57,0x80,0x14,0x80,0x00,0x02,0xa0,
0x54,0x01,0x00,0xe0,0xff,0x8f,0x6e,0xa9,0x5e,0x03,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0xbe,0xea,0xda,0x66,0xab,0x6a,
0x47,0xb0,0xca,0x82,0x20,0x54,0x88,0x48,0x02,0x00,0xc0,0xfd,0xef,0x3b,0xdc,
0xf5,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
0x00,0xf5,0xd7,0x4e,0x29,0x57,0xb5,0x67,0x72,0x55,0x81,0x81,0x00,0x88,0x20,
0x01,0x00,0x80,0x0f,0xb0,0xee,0x7f,0xbf,0x07,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0xfe,0xea,0xfb,0x52,0xd3,0xde,0x97,
0xb0,0x8b,0x04,0x09,0x4a,0xa0,0xa8,0x02,0x00,0x00,0x00,0x80,0x7b,0xf5,0xc7,
0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,
0x5b,0x5b,0x5d,0x23,0x5b,0xa5,0xc6,0xf4,0x77,0x8b,0x21,0x20,0x00,0x90,0x00,
0x00,0x00,0x00,0x10,0x1f,0xdc,0x7e,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0xfd,0xde,0xf7,0xd6,0xaa,0xfa,0x07,0x71,
0xab,0x00,0x01,0x89,0xa1,0xa8,0x00,0x00,0xc0,0x07,0xe0,0x9b,0xb6,0xff,0x03,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x7a,
0x75,0xad,0x43,0xd3,0x4e,0x87,0xf0,0xad,0x02,0xa1,0x24,0x25,0x20,0x01,0x00,
0xe0,0xfd,0xb9,0xf5,0xff,0xe5,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xfc,0x00,0x00,0x00,0x00,0xfe,0xdb,0xfb,0xaa,0xaa,0xf5,0xa7,0xc8,0x36,
0x85,0x01,0x90,0x51,0x58,0x01,0x00,0x70,0xff,0x83,0x7e,0xb4,0x1f,0x1b,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x68,0xb6,
0x5e,0x83,0x5b,0x5b,0x97,0x64,0x97,0x02,0x41,0xab,0x10,0x40,0x01,0x00,0xe0,
0xff,0x87,0x0b,0xfe,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xfc,0x00,0x00,0x00,0x00,0xf4,0x6b,0xeb,0x56,0xea,0xee,0x96,0xf0,0x6b,0x05,
0x25,0x84,0x41,0x58,0x01,0x00,0xc0,0x07,0xe8,0xcf,0xae,0xf5,0x07,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x58,0xdd,0x6e,
0x43,0x5b,0xdb,0x87,0x65,0x55,0x81,0x40,0x51,0x21,0x28,0x02,0x00,0x40,0xfb,
0x27,0x4d,0xf4,0xdf,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,
0x00,0x00,0x00,0x00,0xf0,0x66,0xdb,0x96,0xea,0xfa,0x15,0xe9,0x57,0x25,0x00,
0x8e,0x51,0x50,0x00,0x00,0xe0,0xff,0x8f,0xcf,0x5f,0xfd,0x16,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x68,0x5b,0xed,0x93,
0x6e,0x6f,0x27,0xb1,0x5a,0x05,0x51,0xa1,0x11,0x90,0x00,0x00,0xd0,0xff,0x8f,
0xfa,0xff,0xc7,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,
0x00,0x00,0x00,0xf8,0xb6,0x7d,0xa5,0xda,0xdd,0x07,0xd1,0xad,0x92,0x40,0xad,
0x21,0x10,0x01,0x00,0x60,0xfd,0x8f,0x0f,0xb5,0x3e,0x06,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x50,0xf6,0xa6,0x4b,0xf5,
0xf7,0x56,0xc1,0x56,0x83,0x40,0x52,0x41,0x28,0x01,0x00,0xe0,0xf7,0xef,0x85,
0xdf,0xfb,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,
0x00,0x00,0x70,0x5b,0xdd,0xa5,0xbb,0xba,0x27,0x51,0x6b,0x05,0xa1,0xc4,0xa1,
0x80,0x00,0x00,0xf0,0xdf,0x3f,0xff,0x7f,0xdb,0x0f,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x60,0x77,0xb7,0x8a,0xda,0xad,
0x0d,0xf3,0xb6,0x92,0x05,0xd2,0x29,0x90,0x00,0x00,0xa0,0xf7,0x9f,0xbc,0xe5,
0xaf,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
0x00,0xe0,0xaa,0xaa,0xc3,0x6f,0xeb,0x46,0x51,0xad,0x05,0xc1,0xd4,0x50,0x48,
0x00,0x00,0xc0,0x07,0xc0,0x83,0xbe,0xfe,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0xc0,0x5c,0xbf,0x55,0xb2,0xf7,0x66,
0xc1,0x2a,0x15,0x21,0xd5,0x88,0x00,0x00,0x00,0xe0,0xf7,0xff,0xc3,0xf7,0xbb,
0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,
0xc0,0xfb,0xa5,0xa1,0xee,0x5d,0x2d,0x31,0x55,0x85,0x84,0xd4,0xa0,0x00,0x00,
0x00,0xe0,0xff,0xb7,0xfb,0xff,0xc7,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x80,0xb6,0xba,0x4b,0xbb,0xae,0x63,0x85,
0xaa,0x86,0x22,0xe5,0x88,0x34,0x00,0x00,0xa8,0xfe,0x0d,0x4e,0xd5,0x3e,0x76,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x80,
0xad,0xd7,0x94,0xf4,0xd5,0x8a,0x71,0x55,0x12,0x88,0xea,0xa0,0x14,0x00,0x00,
0xe0,0xfd,0xef,0xc9,0xbf,0xfd,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0xf5,0xae,0x25,0xbb,0x5e,0x35,0x85,0x8a,
0x42,0x41,0xea,0x90,0x08,0x00,0x00,0xe0,0x97,0xb0,0xf5,0xf7,0xcf,0x0f,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x2e,
0x7b,0xd5,0x6a,0xab,0xc5,0xb1,0x54,0x92,0x40,0xf5,0x91,0x00,0x00,0x00,0x70,
0xff,0x5f,0x4f,0xdd,0x7d,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xfc,0x00,0x00,0x00,0x00,0x00,0xd2,0x8d,0x4b,0x55,0xdb,0x1a,0x91,0x2a,0x43,
0xa0,0x72,0x48,0x04,0x00,0x00,0xf8,0xff,0xcf,0xe9,0x77,0xd7,0x59,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0xb4,0xb6,
0x91,0x6a,0xd5,0x8a,0x11,0xa5,0x22,0x05,0x78,0x52,0x02,0x00,0x00,0xf0,0xfe,
0xef,0x60,0xb5,0xbd,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,
0x00,0x00,0x00,0x00,0x00,0x18,0x6b,0xa9,0xba,0x5a,0x55,0x51,0x55,0x82,0x40,
0x6b,0x48,0x01,0x00,0x00,0xe0,0x13,0xb0,0xec,0xff,0x77,0x7b,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x60,0xaf,0xa5,
0x6c,0xeb,0x2e,0x23,0xa5,0x0a,0x20,0x3d,0x24,0x00,0x00,0x00,0xc0,0x01,0x80,
0x36,0x57,0xfd,0x5e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,
0x00,0x00,0x00,0x00,0xf0,0xaa,0xb5,0x56,0xad,0x95,0xa2,0x2a,0x43,0xa5,0xba,
0x2a,0x00,0x00,0x00,0x80,0x00,0x10,0xf4,0xff,0x8f,0x0f,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0xa0,0xac,0xa2,0xd4,
0xd5,0x4a,0x49,0x55,0x02,0x80,0x1c,0x08,0x00,0x00,0x00,0xe0,0x03,0x80,0x5f,
0xb5,0x7d,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,
0x00,0x00,0x00,0xa0,0xfe,0x6a,0x6a,0xad,0x4a,0x91,0xaa,0x92,0x91,0x9e,0x12,
0x00,0x00,0x00,0xf0,0xff,0xdf,0xf5,0x77,0xf7,0x13,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x70,0x4d,0x23,0x55,0xd5,
0x66,0x45,0x95,0x49,0xe1,0x16,0x0d,0x00,0x00,0x00,0xb0,0xff,0x77,0xb8,0xda,
0xdd,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
0x00,0x00,0xd0,0x7b,0xe9,0xd6,0x6a,0x89,0x30,0x55,0x01,0x21,0x4f,0x02,0x00,
0x00,0x00,0xf0,0xfe,0x37,0xd5,0x7f,0x7b,0x7d,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0xf4,0xee,0xc6,0x72,0xad,0x22,
0xc1,0xaa,0x91,0xa1,0x87,0x02,0x00,0x00,0x00,0xf0,0xf7,0x8f,0xfa,0xd6,0x8f,
0xf7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,
0x00,0x5a,0x7f,0x49,0x95,0xd5,0xa2,0x15,0x55,0x42,0xad,0x40,0x01,0x00,0x00,
0x00,0xc0,0x03,0x00,0x5f,0x77,0x7d,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0xf4,0xbf,0x53,0xed,0x6a,0x97,0xc0,
0xaa,0x48,0x91,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xf4,0xda,0xf7,0x13,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,
0x5e,0xfb,0x8d,0x2a,0x5b,0x55,0x4a,0xd5,0x88,0x50,0xbd,0x00,0x00,0x00,0x00,
0x00,0x00,0xb8,0xbc,0x6f,0xfd,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x75,0xff,0x5f,0x55,0xa5,0x3a,0xa1,0xaa,
0xa1,0x42,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xd5,0xda,0xb7,0x7b,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0xbb,
0xef,0x1f,0xd2,0xda,0x4a,0x51,0xab,0xd0,0x38,0x23,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x7e,0xef,0xee,0xde,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xfc,0x00,0x00,0x00,0x00,0x00,0xed,0xec,0xbf,0x46,0x6d,0xad,0x01,0xfa,0xed,
0xa8,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xd6,0xb5,0xbb,0x1b,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x56,0xbf,
0x7f,0xd4,0xda,0x36,0x92,0xf6,0x51,0x52,0x09,0x00,0x00,0x00,0x00,0x00,0x00,
0x20,0xfa,0xfe,0x7f,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,
0x00,0x00,0x00,0x00,0x00,0xfb,0xf5,0xff,0xab,0xaa,0xd5,0x43,0xed,0x2a,0x38,
0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xae,0x0f,0xff,0x2b,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x95,0xde,0xfe,
0xb3,0xfd,0xeb,0x45,0x15,0x38,0xed,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x50,
0x75,0x10,0xd8,0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,
0x00,0x00,0x00,0x00,0x6d,0xab,0xfe,0x77,0x6a,0x1d,0x2c,0x3c,0x0d,0xf7,0x81,
0x02,0x00,0x00,0x00,0x00,0x00,0x30,0x5f,0x82,0xe2,0x77,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0xd7,0x5d,0xef,0xdf,
0xd5,0x27,0x87,0x92,0xcc,0x59,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x43,
0x20,0x0d,0xbf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,
0x00,0x00,0x00,0xb3,0x6a,0xf5,0xff,0xae,0x4f,0x44,0x0f,0x7b,0x56,0x01,0x00,
0x00,0x00,0x00,0x00,0x00,0xc0,0x08,0x8b,0x20,0x3c,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x55,0x55,0xbb,0xff,0xfd,
0x4e,0x2f,0xd5,0xfd,0x2b,0x10,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x04,
0x14,0x39,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
0x00,0x00,0xad,0x56,0x6d,0xfd,0xbf,0xbf,0xde,0xe7,0xee,0xd5,0x04,0x04,0x00,
0x00,0x00,0x00,0x00,0x40,0x2c,0x41,0x40,0x22,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0xa5,0x6a,0xa5,0x55,0xff,0x7f,
0x7b,0xf3,0x6b,0x0a,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x14,0x2a,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,
0x00,0x5a,0xa9,0x5a,0xeb,0xfb,0xff,0xd5,0x5d,0xd7,0x24,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x40,0x90,0x01,0x58,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x4a,0xa5,0x55,0xb5,0xac,0x6a,0x55,
0xef,0x95,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x20,0x82,0x02,0x20,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,
0xa8,0x5a,0x4a,0x95,0xda,0xbe,0xbb,0x2a,0x2a,0x10,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x84,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0xac,0xa4,0x92,0xa4,0xaa,0x52,0x4a,0x95,
0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x50,0x02,0x52,0x22,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0xa8,
0x2a,0x09,0x15,0x44,0x4a,0x55,0xc5,0x88,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x80,0x08,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xfc,0x00,0x00,0x00,0x00,0x00,0xa0,0x52,0x44,0x42,0x21,0xa1,0x20,0x00,0x20,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x52,0x89,0x18,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x50,0x4a,
0x29,0x14,0x08,0x0a,0x82,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x42,0xa0,0x16,0x20,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,
0x00,0x00,0x00,0x00,0x00,0x60,0xa9,0x92,0x42,0x22,0x01,0x00,0x00,0x00,0x00,
0x80,0x04,0x00,0x00,0x00,0x00,0x00,0x82,0x48,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x80,0x2a,0x25,
0x89,0x00,0x48,0x10,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,
0x91,0x80,0x02,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,
0x00,0x00,0x00,0x00,0xc0,0x4a,0x89,0x00,0x82,0x00,0x82,0x00,0x00,0x00,0x02,
0x00,0x00,0x00,0x00,0x00,0x00,0x41,0xa9,0x0a,0x28,0x44,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x80,0xa9,0x22,0x55,
0x10,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xa7,0x10,
0x51,0x10,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,
0x00,0x00,0x00,0x00,0x2a,0x49,0x00,0x41,0x85,0x10,0x20,0x00,0x82,0x00,0x01,
0x00,0x00,0x00,0x00,0x40,0xfb,0x82,0x4a,0x80,0x60,0x02,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x94,0x04,0x12,0x04,
0x00,0x00,0x00,0x01,0x10,0x02,0x00,0x00,0x00,0x00,0x00,0x60,0xab,0x42,0x91,
0x08,0xd4,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
0x00,0x00,0x00,0x48,0x52,0x81,0x10,0x11,0x42,0x00,0x08,0x10,0x80,0x00,0x00,
0x00,0x00,0x00,0x78,0xfd,0x0f,0x48,0x12,0xb8,0x0f,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x05,0x14,0x81,0x40,
0x00,0x02,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0xba,0x57,0x75,0x04,0x81,
0xfc,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,
0x00,0x00,0xc0,0x50,0x09,0x48,0x02,0x11,0x00,0x00,0x04,0x00,0x00,0x00,0x00,
0x00,0x80,0x6f,0xbb,0xda,0x21,0xc0,0x7f,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x0a,0x42,0x02,0x04,0x80,
0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0xf0,0xf7,0xdd,0x6b,0x0f,0x60,0xed,
0xbf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x4c,0x91,0x48,0x11,0x04,0x24,0x00,0x01,0x02,0x00,0x00,0x00,0x00,
0x7c,0x7d,0x77,0x75,0x3b,0xff,0xbf,0xf5,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x04,0x12,0x40,0x20,0x00,
0x42,0x90,0x00,0x00,0x00,0x00,0x00,0xd7,0x6d,0x5b,0xd7,0xf6,0xff,0x77,0xdf,
0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xa0,0x52,0x20,0x05,0x02,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0xe0,0x6e,
0xff,0xfa,0x6b,0xdf,0x7f,0xfd,0xbb,0x4e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0x04,0x10,0x90,0x52,0x04,
0x0a,0x00,0x00,0x00,0x00,0xf8,0xdb,0x76,0xaf,0xba,0xd5,0xed,0xd7,0xff,0x7e,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x51,0x41,0x04,0x00,0x22,0x01,0x00,0x00,0x00,0x80,0x4e,0xed,0xdf,
0x5b,0xd7,0xb6,0xfe,0x7f,0xf5,0xf3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x04,0x00,0x10,0x10,0x00,
0x00,0x00,0x00,0x80,0xff,0xb6,0xf6,0xfe,0xea,0xde,0xb7,0xfa,0x7f,0xef,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xc0,0x04,0xc1,0x15,0x00,0x00,0x00,0x00,0x00,0x70,0x95,0xdb,0xff,0x5a,
0xbf,0x76,0xff,0x7f,0xdb,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x3f,0x00,0x00,0x00,0x00,
0x00,0x00,0xfd,0xed,0xfe,0xdb,0xff,0xd5,0xd6,0xfd,0xef,0xff,0x75,0x0f,0x00,
0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4e,0xbb,0x15,0xfd,0x5a,0xef,
0xdf,0xb7,0xfd,0x77,0xff,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xd0,0xbb,0x15,0x92,0xe8,0xef,0xab,0x72,0xff,0xb7,0xde,0xef,0x77,0x00,0x00,
0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xd7,0x7e,0xa9,0x3a,0xda,0xff,0xdf,
0x6d,0xfd,0xfb,0xff,0xee,0x09,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x5d,
0x5e,0x87,0x50,0x38,0x00,0x00,0x00,0xf2,0xdf,0x03,0xf0,0xbf,0x23,0x00,0x00,
0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0xd6,0x6e,0xf9,0x3f,0x1e,0x20,0x00,0x00,0x00,
0x78,0x01,0xc0,0xf6,0x0e,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0xef,0x6b,
0xd8,0xee,0x1f,0x20,0x02,0x00,0x00,0xf0,0xa1,0xe6,0xdf,0x5d,0x00,0x00,0x00,
0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xb8,0xf5,0x76,0xae,0xfb,0x0d,0x00,0x40,0x00,0x00,0xd0,
0x13,0x50,0x7b,0x7b,0x01,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,
0x00,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xd4,0x2f,0xdb,0xfb,
0x5e,0x1f,0x00,0x02,0x40,0x04,0xb0,0x9f,0x7f,0xec,0xbd,0x06,0x00,0x00,0x00,
0x00,0xfc,0x00,0x00,0x00,0x00,0xc0,0xb8,0xa0,0x0d,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x20,0x6b,0xda,0x5a,0xdb,0xef,0x0d,0x00,0x80,0x00,0x21,0xf0,0xfd,
0xff,0xfb,0xf7,0x09,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x4c,0xaa,
0x56,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd0,0xba,0xb7,0xed,0xba,0xbb,
0x0f,0x00,0x02,0x04,0xf8,0xff,0xff,0xff,0x71,0xbd,0xb7,0x00,0x00,0x00,0x00,
0xfc,0x00,0x00,0x00,0x20,0x55,0x45,0x00,0xb8,0x04,0x00,0x00,0x00,0x00,0x00,
0x00,0xa0,0xf6,0xda,0x6e,0x77,0xf7,0x0e,0x00,0x00,0x00,0x00,0xf1,0x7f,0xab,
0xe7,0xd7,0x4e,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xd0,0x10,0x00,0x1a,
0x82,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0xaa,0x7a,0xad,0xb5,0xbd,0xff,0x4f,
0x6d,0x52,0x51,0x12,0xb0,0xd6,0xbd,0x9e,0xde,0x5e,0x01,0x00,0x00,0x00,0xfc,
0x00,0x00,0x00,0x4c,0x41,0x44,0x94,0x24,0x0c,0x1a,0x00,0x00,0x00,0x00,0x80,
0x58,0xb7,0xb5,0x56,0xad,0xd6,0xae,0x90,0x6d,0x55,0xed,0xf3,0x6e,0xf7,0xf5,
0x77,0xa9,0x12,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x67,0x41,0xf1,0xf7,0x83,
0x52,0x08,0x00,0x00,0x00,0x00,0x00,0x56,0x6b,0xd5,0xda,0xdb,0xfb,0x0f,0x01,
0x00,0x80,0x08,0xb2,0x7b,0x7f,0xfa,0x7d,0x7d,0x0b,0x00,0x00,0x00,0xfc,0x00,
0x00,0x80,0x57,0x05,0xbe,0xd5,0x1e,0x49,0x29,0x00,0x00,0x00,0x00,0x20,0xb5,
0xdd,0xaa,0x6e,0xd6,0x6d,0xfb,0xff,0xff,0x5f,0x00,0xf0,0xbe,0xe5,0xba,0xd7,
0x9a,0x14,0x00,0x00,0x00,0xfc,0x00,0x00,0xa0,0x12,0xc4,0xaa,0xaa,0xfb,0xa0,
0xc0,0x02,0x00,0x00,0x00,0x90,0xda,0xf5,0x6f,0xb5,0xfb,0xfe,0xff,0xdb,0xff,
0xff,0xff,0xdb,0xef,0xaf,0xed,0x76,0xfb,0x2a,0x00,0x00,0x00,0xfc,0x00,0x00,
0xf0,0x0a,0x61,0x55,0xbb,0xd6,0x15,0x4a,0x00,0x00,0x00,0x00,0xc8,0x55,0xab,
0xfe,0xdf,0x7c,0xbf,0xef,0xfe,0xff,0xfe,0xff,0xff,0x7b,0xef,0xff,0xdb,0x5a,
0xab,0x00,0x00,0x00,0xfc,0x00,0x00,0xf8,0x92,0xf0,0x56,0xad,0x5a,0x01,0xd1,
0x03,0x00,0x00,0x00,0x44,0xea,0xee,0xaa,0xfa,0xef,0xeb,0xff,0xdb,0xff,0xef,
0xff,0xdb,0xde,0xdb,0xdd,0x76,0x75,0x51,0x01,0x00,0x00,0xfc,0x00,0x00,0xa8,
0xaa,0x5c,0xeb,0xd6,0xda,0x5b,0x04,0x09,0x00,0x00,0x00,0xb2,0x56,0x5b,0xd5,
0xfe,0xff,0xbf,0xff,0xfe,0xff,0xff,0xff,0xff,0x7b,0x5f,0xaf,0xdd,0x56,0xad,
0x02,0x00,0x00,0xfc,0x00,0x00,0x94,0x2a,0x6a,0xb5,0x75,0x5b,0x87,0x12,0x06,
0x00,0x00,0x00,0x54,0x5b,0xb5,0xbe,0xde,0xab,0xfd,0xef,0xfb,0xff,0xff,0xff,
0x6f,0xef,0x7f,0xff,0x3e,0x5d,0x55,0x25,0x00,0x00,0xfc,0x00,0x00,0xda,0x8a,
0x58,0xd7,0xaa,0xaa,0x13,0x29,0x12,0x00,0x00,0x80,0x6a,0xb5,0x5a,0xf3,0x7f,
0xb6,0xf7,0xfd,0xdf,0xdf,0xff,0xff,0xff,0xbf,0xfb,0xf9,0xf7,0xa5,0x4a,0x05,
0x00,0x00,0xfc,0x00,0x00,0x7b,0x55,0xf1,0xba,0xb7,0xef,0x48,0x82,0x04,0x00,
0x00,0x40,0xaa,0xaa,0xad,0x6d,0xd2,0xed,0xfe,0xff,0xfa,0xff,0xef,0xff,0xf7,
0xfb,0xee,0xd7,0x5f,0x1b,0x63,0x55,0x00,0x00,0xfc,0x00,0x00,0x19,0x95,0xa2,
0xd5,0xda,0x55,0x30,0x95,0x16,0x00,0x00,0x40,0xb6,0x5a,0x77,0xb7,0x6d,0xf7,
0xff,0xff,0xff,0xdf,0xff,0xff,0x77,0xef,0xff,0xff,0x5a,0xcd,0xb6,0x8a,0x00,
0x00,0xfc,0x00,0x80,0xf7,0x2a,0x0c,0xbb,0xd5,0x1b,0x85,0x42,0x2b,0x00,0x00,
0x20,0x55,0xab,0xd9,0xfa,0xd6,0x5d,0xbb,0xf7,0xdb,0xff,0xef,0xff,0xdf,0xbf,
0x6d,0x7f,0xaf,0xb2,0x4a,0x15,0x00,0x00,0xfc,0x00,0x00,0x5b,0x55,0x68,0xce,
0x77,0x26,0x50,0xc8,0x0c,0x00,0x00,0x40,0xa9,0xad,0x56,0x5d,0x6b,0xf7,0xfe,
0xff,0xff,0xfe,0xef,0xff,0xff,0xfa,0xff,0xfb,0xe9,0x6a,0x55,0x55,0x02,0x00,
0xfc,0x00,0x80,0x6f,0xaa,0x42,0xf8,0xff,0x89,0x24,0x05,0x21,0x00,0x00,0x10,
0xb8,0x6a,0xb5,0xa5,0xba,0xda,0xf7,0xdd,0xfa,0xff,0xef,0xff,0xff,0xdf,0x6d,
0xdf,0x9e,0xaa,0xaa,0x2a,0x00,0x00,0xfc,0x00,0xc0,0xfa,0xb5,0x84,0x04,0x10,
0x12,0x92,0xd0,0x33,0x00,0x00,0x08,0x64,0x55,0xab,0xb6,0xd5,0xf7,0x7e,0xff,
0xff,0xdb,0xbf,0xdd,0xee,0x77,0xff,0x7d,0xd5,0x54,0xad,0xd5,0x04,0x00,0xfc,
0x00,0x40,0xce,0xaa,0x36,0x10,0xa1,0x64,0x49,0x74,0x25,0x00,0x00,0xa0,0x80,
0x6e,0xad,0xda,0xea,0xda,0xfb,0x6f,0xba,0xdf,0xed,0xff,0xfb,0xfe,0xbb,0xf7,
0xaf,0x6b,0x55,0x55,0x00,0x00,0xfc,0x00,0x40,0xd4,0x55,0xa9,0xa1,0x06,0x82,
0x34,0x1b,0x63,0x00,0x00,0x14,0x4c,0xb5,0xda,0xaa,0xae,0x7f,0xbf,0xfd,0xef,
0xdf,0xef,0x6e,0xbf,0xdf,0xfe,0xde,0xd7,0xae,0xaa,0xaa,0x02,0x00,0xfc,0x00,
0x60,0x6a,0xbf,0x2a,0xad,0x68,0xb5,0x67,0xfe,0xca,0x02,0x00,0x44,0xa2,0xd5,
0x6d,0xf5,0xd5,0xfa,0xf7,0x5f,0xfb,0xf9,0xf6,0xfb,0xef,0xf7,0xdf,0xff,0x5e,
0xa5,0xaa,0x56,0x15,0x00,0xfc,0x00,0x70,0xb3,0x96,0x52,0xb5,0x36,0x55,0xa0,
0xa2,0x57,0x00,0x00,0x00,0x7a,0x55,0x55,0x5b,0xea,0xde,0xfe,0x76,0xbb,0xbf,
0xbf,0x7f,0xbb,0x7e,0x7b,0xdb,0xab,0x5a,0x55,0x55,0x00,0x00,0xfc,0x00,0x70,
0xfb,0x7b,0xa5,0xaa,0x4a,0x4a,0x59,0xc1,0x06,0x01,0x00,0xf2,0xac,0xab,0x56,
0x55,0xaf,0xf7,0xff,0x7f,0xef,0xd6,0xf5,0xdf,0xff,0xdb,0xff,0xff,0xae,0xaa,
0xaa,0x8a,0x20,0x00,0xfc,0x00,0xb0,0x72,0xcf,0xff,0x54,0x80,0x74,0xa6,0xc3,
0x1e,0x02,0x00,0x12,0xaa,0x5a,0xb5,0xbd,0x59,0x7d,0x7f,0x7b,0xbb,0xdb,0xdd,
0xf6,0xed,0xff,0xd6,0xbb,0x57,0x55,0x55,0x29,0x08,0x00,0xfc,0x00,0x18,0xfa,
0xb6,0xb5,0x8b,0xe8,0x4e,0x7b,0xcd,0x19,0x02,0x00,0x84,0x55,0xd5,0x56,0x55,
0xfb,0xef,0xed,0x7f,0xff,0xd7,0xf7,0x7f,0xff,0xde,0xff,0xee,0x55,0xd5,0x56,
0x05,0x02,0x00,0xfc,0x00,0x58,0xea,0xdb,0xaa,0xd5,0x6b,0xd9,0xbd,0xc6,0xa5,
0x00,0x00,0xc2,0xb6,0xb7,0xad,0xdd,0xaa,0xbd,0xff,0xf7,0x75,0xeb,0x7f,0xeb,
0xff,0xff,0xb6,0xff,0x6b,0x55,0x55,0x65,0x00,0x00,0xfc,0x00,0x6c,0xec,0x4b,
0xfd,0xbd,0xab,0xdf,0xf0,0xcb,0x58,0x07,0x00,0x56,0xd5,0xaa,0xb6,0x56,0xd7,
0xf6,0xbb,0x7e,0xdb,0xdf,0xd7,0xbf,0xdb,0xbb,0xff,0xbb,0xb6,0xaa,0xaa,0x0a,
0x11,0x00,0xfc,0x00,0xac,0x7b,0xd3,0xff,0xe1,0xea,0x77,0x61,0x87,0x63,0x05,
0x00,0xa8,0x5a,0xad,0xda,0xaa,0x7a,0xbf,0xff,0xef,0x77,0x6b,0xfd,0xfd,0xff,
0xef,0xdb,0xfe,0x55,0x5b,0x55,0x15,0x50,0x00,0xfc,0x00,0xfa,0xf4,0x6b,0x9b,
0xba,0x57,0xde,0x91,0x9e,0x32,0x06,0x00,0xc6,0x56,0xd5,0xaa,0x56,0xbd,0xfb,
0xfe,0x7b,0xfb,0xd7,0x77,0xef,0xdd,0xbe,0xfe,0xf7,0xaf,0xaa,0x6a,0x55,0x02,
0x00,0xfc,0x00,0xf6,0xfe,0xf7,0xff,0x20,0x51,0xfd,0xe1,0x86,0x6f,0x14,0x00,
0x22,0xb5,0xb5,0xda,0xed,0x75,0xef,0x6b,0x7f,0xf7,0x5a,0xf6,0xbd,0xff,0xff,
0xef,0xde,0x7a,0x55,0x55,0xd5,0x14,0x00,0xfc,0x00,0x7e,0x75,0xeb,0xfd,0xf4,
0xab,0xb7,0xd3,0x1c,0x6e,0x1c,0x00,0xc4,0xae,0x5b,0xab,0x36,0xef,0xfd,0xff,
0xed,0xb7,0xd7,0xdf,0xff,0x77,0xdb,0xbb,0xff,0x5f,0x55,0xab,0x12,0x91,0x00,
0xfc,0x00,0x79,0xfd,0xd3,0xfb,0x91,0xc3,0xfa,0xc3,0x0d,0xcd,0x2c,0x00,0x06,
0x6d,0xd5,0xba,0xab,0xb5,0x6f,0xff,0x7f,0xff,0x7b,0x76,0xdb,0xfe,0x7f,0xff,
0x76,0xbb,0x6a,0x55,0x65,0x02,0x00,0xfc,0x00,0xd6,0xfe,0xe9,0xdf,0xd0,0xa3,
0xe9,0xe2,0x19,0x9d,0x58,0x00,0x30,0xab,0xad,0xaa,0x5c,0x5d,0xff,0xdd,0xfb,
0xf7,0xce,0xf7,0xff,0xdf,0xfe,0xed,0xdf,0x7f,0xad,0x2a,0x9b,0x04,0x00,0xfc,
0x00,0x7f,0xed,0xf9,0x6f,0xf8,0xcd,0xfb,0xa3,0x1d,0x9e,0x60,0x00,0xc4,0x6e,
0x6d,0xab,0xb6,0xee,0xfb,0x7f,0xef,0xb6,0xd7,0xbf,0xdb,0xf6,0xef,0xff,0xfd,
0xed,0x55,0xd5,0xa4,0x14,0x00,0xfc,0x00,0xef,0xfe,0xaa,0xbe,0xf4,0x85,0x72,
0xe3,0x19,0xbc,0x31,0x00,0x14,0xd5,0x56,0x6d,0xdb,0x7d,0xbf,0xff,0xff,0xbe,
0xdf,0xf5,0xfe,0xdf,0xfb,0xb6,0x77,0xff,0xaa,0x56,0xab,0x26,0x00,0xfc,0xc0,
0x7f,0xfd,0xf4,0xb7,0xf0,0xa5,0x7d,0xc2,0x39,0x7e,0xa9,0x00,0xa6,0xb8,0xda,
0xd6,0xa9,0xee,0xef,0xee,0xfb,0xf7,0xe6,0xfb,0x6f,0x7f,0xbf,0xff,0xdf,0xb7,
0x55,0x55,0xb5,0x48,0x00,0xfc,0xc0,0x7e,0xef,0xf6,0xbf,0xd4,0xa5,0x76,0xc7,
0x3b,0x7e,0x62,0x00,0x1a,0x63,0x5b,0x5b,0xd6,0xb3,0xfd,0xff,0xde,0xf6,0x77,
0xbf,0xfb,0xf7,0xef,0xd7,0xfd,0xfd,0x56,0x55,0x95,0x0a,0x00,0xfc,0xc0,0xbb,
0xfe,0xdc,0xb7,0xf0,0x93,0xff,0x86,0x3b,0x7e,0xf2,0x00,0x6e,0xab,0x6a,0xb5,
0x6d,0xfe,0xff,0xed,0xff,0xff,0xaf,0xeb,0xdf,0xdf,0x7d,0x7f,0x6f,0xef,0xda,
0xaa,0x6a,0x65,0x00,0xfc,0xe0,0x2a,0x7f,0xf9,0x7e,0xf9,0xa5,0xf5,0x8c,0x33,
0xfe,0x84,0x00,0x5a,0xa4,0xaf,0xd5,0x55,0x5b,0xdf,0xff,0xfb,0xb6,0x6e,0xf9,
0x7d,0xfb,0xf7,0xfb,0xfd,0xfb,0xaa,0x56,0xad,0x12,0x00,0xfc,0x60,0xd7,0x7f,
0xfd,0x5b,0x70,0xc5,0xfe,0x84,0x33,0xfa,0xa4,0x00,0xbc,0x4a,0xa9,0x6e,0xba,
0xfd,0x7b,0x7f,0xef,0xf7,0x6b,0x68,0xef,0xdf,0xbf,0xdf,0xef,0x5e,0xab,0xaa,
0xaa,0x00,0x00,0xfc,0xa0,0x5a,0xff,0xfe,0xbf,0xf0,0x86,0xef,0x8d,0x37,0xfe,
0x85,0x00,0xef,0x2a,0xb5,0xb5,0xeb,0xd6,0xff,0xf7,0xff,0xb6,0xbf,0xc0,0xbd,
0x7f,0xff,0xf6,0xbd,0xf7,0x56,0x55,0x55,0x04,0x00,0xfc,0xa0,0x5d,0x3f,0xfd,
0xaf,0xf2,0xb2,0xbb,0x0d,0x27,0xec,0xeb,0x00,0x79,0x95,0xba,0xb6,0x34,0xeb,
0xee,0xdf,0xff,0xf7,0x4f,0x80,0xff,0xf7,0xf5,0x7f,0xff,0xbd,0x6a,0xb5,0xaa,
0xd0,0x00,0xfc,0xe0,0x6e,0x1b,0xfd,0x7f,0xf2,0x86,0xff,0x0d,0x67,0xfc,0x03,
0x00,0xef,0x56,0xe9,0x6a,0xd7,0xed,0xff,0xfe,0xfb,0xbe,0x3b,0x80,0xdb,0xfd,
0xdf,0xdb,0xb7,0xdf,0xaa,0x55,0x15,0xaa,0x00,0xfc,0xa0,0x4b,0x5b,0xdd,0xbf,
0xf0,0xf5,0xff,0x19,0x67,0xbc,0xd3,0x00,0xfb,0x5b,0xa5,0xd7,0x6a,0x5e,0xdf,
0x7f,0xdf,0xb7,0x47,0x02,0xfe,0xbf,0x7f,0xff,0xfd,0x76,0xab,0xaa,0x85,0x84,
0x00,0xfc,0xa0,0xba,0x59,0xfd,0xbf,0xf0,0x8a,0xff,0x1b,0x47,0x54,0x27,0x00,
0xbd,0x2f,0xb3,0x7c,0xbb,0xf3,0xff,0xf5,0xff,0xfe,0x15,0x02,0x7c,0xf7,0xf7,
0x75,0xdf,0x5f,0x55,0xb5,0x02,0x62,0x00,0xfc,0x60,0xab,0xfc,0xfe,0xdf,0xf8,
0xc5,0xdd,0x13,0x47,0x6c,0x85,0x00,0xef,0xeb,0x44,0xaa,0xbb,0xbd,0xfe,0xff,
0xfb,0xb7,0x15,0x02,0xd8,0x7f,0xdf,0xdf,0xf7,0xf6,0xaa,0xd6,0x64,0x51,0x01,
0xfc,0xe0,0x55,0x2c,0xfe,0xbf,0xe2,0x66,0x76,0x13,0x47,0xf8,0xd8,0x00,0xbb,
0xdf,0x43,0x41,0xef,0xee,0xbf,0xff,0xff,0xfe,0x11,0xfd,0xff,0xf5,0xfd,0xff,
0xbe,0xdf,0xad,0xea,0xff,0xff,0x01,0xfc,0xc0,0xa6,0x8f,0xff,0x9f,0xb0,0x84,
0xfe,0x03,0xcb,0x99,0x8b,0x00,0xff,0x7f,0x9f,0x2c,0xcc,0xf7,0xfb,0xee,0xff,
0x77,0x16,0x04,0xf4,0xdf,0xef,0xef,0xf7,0xfb,0x6a,0x15,0x42,0xac,0x00,0xfc,
0xc0,0xd5,0x95,0x5f,0xdf,0x78,0x47,0x7f,0x23,0x8e,0x68,0xd5,0x00,0xf5,0xff,
0xff,0x8e,0xa1,0x79,0xef,0xff,0xef,0x3e,0x10,0x61,0xe8,0xff,0xbf,0xbd,0xdd,
0xbe,0x5d,0x13,0x10,0x52,0x01,0xfc,0xc0,0xd5,0xaa,0xd5,0x9e,0xe4,0xa4,0xfb,
0x27,0x8e,0x50,0xcf,0x00,0x7f,0xff,0xb7,0xe7,0x3a,0x96,0xff,0xde,0xff,0x56,
0xec,0x26,0xc0,0xf6,0xff,0x77,0xff,0x6f,0x6b,0x90,0x24,0x5b,0x01,0xfc,0xc0,
0xea,0x96,0x62,0xcd,0x78,0x8a,0xef,0x65,0x0c,0x61,0xd9,0x00,0xfd,0xff,0xff,
0x2a,0x95,0xea,0xae,0xff,0xfd,0x3e,0x6f,0x26,0x80,0xbf,0xfd,0xff,0xb7,0xfd,
0x17,0x00,0xc1,0x4d,0x01,0xfc,0xc0,0x52,0x53,0xab,0x9f,0x72,0x46,0x7d,0x47,
0x1c,0x51,0x55,0x00,0xef,0xff,0xff,0xf7,0xba,0xf4,0xd6,0x22,0xff,0x06,0xac,
0xc6,0x85,0xff,0xbf,0x6f,0xfd,0x5f,0xa4,0x51,0x78,0x6a,0x01,0xfc,0x80,0xa5,
0xd9,0xd6,0xca,0x64,0xd5,0xf7,0xc7,0x18,0xf0,0x4d,0x00,0xfb,0x7f,0xff,0x6f,
0xf7,0x59,0x59,0x6a,0x81,0x80,0xe8,0xaa,0x47,0xdb,0xf7,0xfe,0xff,0x4b,0x49,
0x86,0xba,0x95,0x02,0xfc,0x80,0x65,0xe5,0xab,0x6f,0x74,0x24,0xbf,0x07,0x30,
0x70,0x55,0x00,0xff,0xfb,0xff,0xff,0xfc,0x97,0xb7,0x7b,0x49,0x6f,0x29,0x16,
0x11,0xfe,0xfe,0xff,0x0f,0x0a,0x84,0x18,0xdf,0x6a,0x01,0xfc,0x80,0xb4,0x09,
0xf5,0x8e,0x70,0x48,0xfe,0x8d,0x38,0x90,0x4b,0x00,0xdb,0xff,0xff,0xff,0xff,
0x7f,0x15,0x96,0x1a,0x48,0xf4,0xab,0x04,0xfe,0xff,0x80,0x12,0xb4,0x35,0x55,
0x6b,0xad,0x02,0xfc,0x00,0xa5,0xea,0x52,0xcb,0xf0,0xa2,0xfa,0x0f,0x30,0xf0,
0x26,0x00,0xff,0xff,0xfd,0xff,0xbf,0xff,0xef,0xd7,0x34,0xd0,0x56,0x29,0xb0,
0x65,0x21,0x05,0x90,0x16,0xd0,0xf6,0x56,0x55,0x01,0xfc,0x00,0x65,0x29,0x65,
0xcd,0x5e,0x91,0x7e,0x0f,0x30,0x60,0x27,0x00,0xfd,0xff,0xf7,0xff,0xff,0xff,
0xff,0xff,0xd3,0x5e,0x54,0x96,0x4e,0x16,0x09,0x28,0x27,0x89,0xad,0xfc,0xad,
0xaa,0x02,0xfc,0x00,0x64,0xa9,0xd6,0xd7,0xf0,0x4c,0xf5,0x1b,0x00,0x23,0x35,
0x00,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x7e,0x40,0xad,0x12,0xe9,0x58,
0xaf,0xa4,0x4a,0x60,0xa4,0xff,0xef,0xaa,0x02,0xfc,0x00,0x69,0xdb,0x2a,0x97,
0xa8,0x40,0xfa,0x1f,0x08,0x66,0x37,0x00,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,
0xff,0x9f,0x40,0x48,0xf1,0x52,0x35,0x96,0x12,0xa0,0x3a,0xfd,0xd7,0x7d,0x55,
0x01,0xfc,0x00,0xe5,0xa8,0x53,0x97,0x50,0x44,0xfa,0x1e,0x21,0x80,0x12,0x00,
0xf7,0xfb,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0x4b,0x14,0xec,0xef,0xf7,0x7f,
0xc8,0x55,0xd5,0xff,0x6f,0x97,0xad,0x02,0xfc,0x00,0x8b,0x94,0xff,0x95,0x64,
0x20,0xfa,0x1b,0x41,0x04,0x04,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0x5f,0x97,0x58,0x7f,0xed,0xbb,0x57,0xeb,0xfe,0xed,0xff,0x7d,0x55,0x01,
0xfc,0x00,0xad,0xa9,0xff,0x97,0x60,0x89,0x74,0x9f,0x41,0x44,0x15,0x00,0xfb,
0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x53,0xaf,0xa5,0xfa,0x77,0xbf,
0xff,0xff,0xff,0xff,0x5f,0xab,0x02,0xfc,0x00,0x99,0xa5,0xbf,0x82,0x74,0x60,
0xf9,0x3b,0x51,0x14,0x0c,0x00,0xef,0xbf,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,
0xf5,0xef,0x7a,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xb5,0x02,0xfc,
0x00,0xc6,0xd5,0xff,0xda,0x60,0x8c,0xf9,0x0e,0x41,0x44,0x1d,0x00,0xfd,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xf7,0xff,0x7f,0xff,0xff,0xef,0xef,
0xff,0xff,0xff,0xff,0x56,0x01,0xfc,0x00,0xc2,0xdb,0xbd,0xc5,0x70,0xd5,0xff,
0x1b,0x51,0x54,0x16,0x00,0xf7,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0x7f,
0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xdf,0xb7,0xab,0x02,0xfc,0x00,
0xde,0x53,0xb7,0x92,0x61,0x94,0xef,0x1f,0x41,0x44,0x0a,0x00,0xde,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,
0x7f,0xff,0xff,0x54,0x01,0xfc,0x00,0x0e,0x2b,0x3f,0xc5,0xf0,0xc4,0xfe,0x1f,
0x71,0xc4,0x17,0x00,0xfd,0x7b,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xfb,0xfb,
0xfd,0x7f,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0x7f,0xdb,0x02,0xfc,0x00,0x36,
0x85,0x7f,0x95,0x64,0x84,0xfb,0x1f,0x31,0xc4,0x0f,0x00,0xf6,0xff,0xff,0xff,
0xfd,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,
0xff,0xff,0x57,0x01,0xfc,0x00,0x1c,0x8b,0x7e,0x95,0x70,0xb7,0xde,0x5e,0x31,
0x84,0x0a,0x00,0xde,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xaf,0x55,0x01,0xfc,0x00,0x14,0x81,
0xff,0x8d,0xb1,0x0c,0xff,0x1f,0x39,0xd6,0x0f,0x00,0xfa,0xff,0xff,0xff,0xdf,
0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,
0xff,0x55,0x01,0xfc,0x00,0xdc,0x5a,0xfd,0xa6,0x71,0x25,0xff,0x0b,0x38,0xc6,
0x05,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfb,0xff,
0xbf,0xef,0xef,0xef,0xff,0xff,0xff,0x7f,0x56,0x01,0xfc,0x00,0xac,0x0e,0xff,
0x9a,0x74,0x84,0xff,0x0f,0xb8,0xd2,0x0b,0x00,0xea,0xfe,0xef,0xff,0xff,0xff,
0xff,0xf7,0xfe,0xef,0xef,0xf7,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,
0x55,0x01,0xfc,0x00,0x38,0xb3,0xfd,0xab,0x71,0x87,0xed,0x0f,0x38,0xc6,0x07,
0x00,0xfc,0xbb,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xf7,0xff,0xd7,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xab,0x00,0xfc,0x00,0x28,0x67,0xef,0xaf,
0x71,0xaa,0x7f,0x0f,0x38,0xd2,0x05,0x00,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0x5f,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0x54,
0x01,0xfc,0x00,0x28,0x35,0xbf,0x95,0xe1,0x8d,0xd6,0x8f,0x78,0xc6,0x07,0x00,
0xdc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xd7,0xff,0xff,0xff,
0xff,0xff,0xff,0xf7,0xff,0xbf,0xaf,0x00,0xfc,0x00,0x58,0x97,0xfe,0xa7,0x71,
0x08,0xff,0x8f,0x18,0xe2,0x01,0x00,0xf4,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xdb,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xdf,0xef,0xb5,0x00,
0xfc,0x00,0x68,0x26,0xfb,0xb6,0xf1,0x2a,0xef,0x8d,0xb8,0xea,0x02,0x00,0xfc,
0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xdf,
0xbf,0xff,0xff,0xff,0xff,0xca,0x00,0xfc,0x00,0x10,0xb7,0xef,0x8d,0x23,0x79,
0xfd,0x87,0x19,0xe2,0x01,0x00,0xac,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xdf,
0xff,0xff,0xff,0xf7,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x7f,0x5d,0x00,0xfc,
0x00,0x50,0x56,0xfe,0xd7,0x61,0xc9,0xb7,0x8f,0x58,0xeb,0x01,0x00,0xf8,0xde,
0xff,0xff,0xff,0xff,0xdd,0xff,0xff,0xff,0x6f,0xff,0xbf,0xfb,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0x55,0x00,0xfc,0x00,0x30,0x65,0x7d,0xa7,0xe1,0x0a,0xfe,
0x85,0x18,0x63,0x01,0x00,0xa8,0x7f,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,
0xd7,0xff,0xff,0xff,0xde,0xff,0xff,0xfe,0xff,0xfd,0xff,0x55,0x00,0xfc,0x00,
0x30,0x5e,0xdd,0xad,0x69,0xad,0xee,0xc7,0x18,0xeb,0x01,0x00,0x78,0xff,0xff,
0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,
0xff,0xdf,0xff,0x6a,0x00,0xfc,0x00,0x30,0x6c,0xfd,0x87,0x65,0x4a,0xba,0xc7,
0x09,0x73,0x00,0x00,0xb8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xef,
0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x55,0x00,0xfc,0x00,0xb0,
0xaa,0xbe,0xb5,0x69,0x09,0xff,0x46,0x18,0x73,0x03,0x00,0xe8,0xfe,0x7f,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xf7,0x2a,0x00,0xfc,0x00,0x60,0x5c,0xfd,0x87,0xe3,0x2a,0xd6,0xc7,0xa8,
0xf3,0x02,0x00,0xd8,0xfd,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xef,0xff,0xff,
0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x17,0x00,0xfc,0x00,0xe0,0xac,
0xfd,0xa6,0x61,0xa9,0xfe,0xc3,0x88,0x71,0x03,0x00,0xb0,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0x7b,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,
0xff,0x29,0x00,0xfc,0x00,0xf0,0xff,0xbd,0x97,0xf2,0xa2,0xda,0x43,0xa8,0x71,
0x02,0x00,0xf0,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7e,0xff,
0xff,0xfe,0xfb,0xff,0xbf,0xff,0xff,0x4f,0x36,0x00,0xfc,0x00,0xe0,0xbc,0xfe,
0x85,0x63,0x15,0x7e,0xeb,0x88,0x75,0x01,0x00,0x50,0xf7,0xff,0xff,0xf7,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,
0x1a,0x00,0xfc,0x00,0x40,0xdd,0xdd,0x97,0x73,0x55,0xea,0x63,0xd4,0x71,0x01,
0x00,0xa0,0xff,0xff,0xff,0xff,0xfb,0xff,0xfe,0xff,0xff,0xff,0xff,0xef,0xff,
0xff,0x7f,0xff,0xff,0xff,0xdf,0x5f,0x0b,0x00,0xfc,0x00,0x40,0x59,0xfc,0x86,
0x63,0x52,0xf6,0x63,0xc4,0x75,0x01,0x00,0x60,0xfd,0xff,0xff,0xff,0xdf,0xff,
0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xef,0x15,
0x00,0xfc,0x00,0x40,0xbd,0xfe,0x8f,0xe3,0x92,0xbc,0x63,0xc4,0x71,0x01,0x00,
0x60,0xf7,0xfd,0xff,0xff,0xff,0xfe,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xbf,0xff,0x3f,0x15,0x00,0xfc,0x00,0xc0,0xdc,0xb8,0x85,0x67,
0xb0,0xec,0x63,0xe4,0x37,0x03,0x00,0xc0,0xfd,0xf7,0xfb,0xff,0xff,0xfb,0xff,
0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x0b,0x00,
0xfc,0x00,0xc0,0x3a,0xf9,0xc6,0x73,0x16,0xf7,0x6b,0xd4,0x71,0x01,0x00,0x40,
0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbd,0xff,0xff,0xff,0xf7,0xff,0xff,
0xff,0xff,0xff,0x7f,0xdf,0x0a,0x00,0xfc,0x00,0xc0,0x5e,0xbd,0xa7,0x63,0x15,
0xbd,0x63,0xcc,0xb5,0x02,0x00,0x80,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xf7,
0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xbd,0x05,0x00,0xfc,
0x00,0x80,0x58,0xd5,0xa5,0xf7,0xb0,0xd6,0x23,0xd4,0xd3,0x1a,0x00,0x80,0xfe,
0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xfb,0xfe,0xff,0xff,0xfe,0xff,0xff,
0xff,0xff,0xff,0x7f,0x05,0x00,0xfc,0x00,0x80,0xb3,0xf9,0xd7,0xa2,0x16,0xba,
0x6b,0xd4,0x9b,0x0a,0x00,0x00,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xef,0x06,0x00,0xfc,0x00,
0x80,0x98,0xb5,0xc5,0xe7,0x18,0xd6,0x23,0xcd,0xd9,0x15,0x00,0x00,0xff,0xff,
0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0x5f,0x01,0x00,0xfc,0x00,0x80,0x91,0xf9,0xc7,0xa7,0x90,0xaa,0x29,
0xae,0x79,0x2a,0x00,0x00,0xda,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xf7,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0x7f,0x03,0x00,0xfc,0x00,0x00,
0xd1,0xb5,0xd6,0xa6,0x08,0xee,0x21,0xc6,0xa8,0x5a,0x00,0x00,0x76,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0x7f,
0xff,0x5f,0x01,0x00,0xfc,0x00,0xc0,0x33,0xf7,0xe5,0xa7,0x8b,0xaa,0x31,0xf2,
0xa9,0x55,0x00,0x00,0xfc,0xff,0xff,0x7f,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xbf,0x01,0x00,0xfc,0x00,0x40,0xae,
0x6b,0xd7,0xb7,0x09,0xdc,0x35,0xea,0x5a,0x55,0x00,0x00,0xf8,0xf7,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x57,0x00,0x00,0xfc,0x00,0xb0,0x45,0xab,0x57,0xad,0x8d,0xeb,0x51,0xa6,0xa9,
0xaa,0x00,0x00,0x88,0xdf,0x7d,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xbf,
0xef,0xff,0xff,0xff,0xff,0xff,0xbf,0xaf,0x00,0x00,0xfc,0x00,0xa8,0xae,0xf7,
0xce,0xe7,0x00,0xae,0x14,0xea,0xda,0xb6,0x00,0x00,0x70,0xff,0xff,0xfd,0xfb,
0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xfd,0xfb,0xff,0xff,0xff,0xff,0xb6,
0x00,0x00,0xfc,0x00,0xa8,0x2a,0xeb,0xe7,0xad,0x4d,0xd2,0xb2,0xe2,0xad,0x55,
0x00,0x00,0xb0,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,
0xff,0xef,0xff,0xff,0xff,0xfd,0x57,0x00,0x00,0xfc,0x00,0xa8,0xbd,0xf7,0x6f,
0xef,0x21,0xae,0x14,0xbb,0xaa,0xaa,0x00,0x00,0xe0,0xfd,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xbf,0xff,0xff,0xf7,0xff,0x35,0x00,
0x00,0xfc,0x00,0xd4,0x3a,0xca,0xcd,0xaf,0x25,0xfe,0x10,0xe9,0x57,0xd5,0x00,
0x00,0xc0,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xfb,0xff,0xff,0xff,0x16,0x00,0x00,0xfc,0x00,0x5a,0xf5,0x97,0xe6,0xef,
0x29,0xbc,0x88,0xf7,0x5a,0x55,0x01,0x00,0x80,0xef,0xff,0xff,0xef,0xff,0xf7,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2b,0x00,0x00,
0xfc,0x00,0xab,0xee,0x14,0xcd,0xad,0x2d,0x52,0x1c,0x69,0xa5,0x5a,0x01,0x00,
0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfb,0xff,0xff,0xff,0xff,
0xbf,0xff,0xff,0xef,0x1c,0x00,0x00,0xfc,0x00,0xf9,0xbb,0x5b,0x77,0xaf,0xa9,
0x74,0x5a,0xbd,0xaf,0xaa,0x00,0x00,0x00,0xf6,0xfb,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0x3f,0x07,0x00,0x00,0xfc,
0x00,0xaf,0x7a,0x6f,0xcf,0xea,0x35,0x3e,0x5d,0x6e,0xa9,0x54,0x00,0x00,0x00,
0xfe,0xef,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,
0xff,0xbf,0xdf,0x02,0x00,0x00,0xfc,0x00,0x51,0xed,0x5e,0xb7,0x3f,0xa3,0x58,
0x95,0xbf,0x2a,0xbb,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xbf,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0x53,0x05,0x00,0x00,0xfc,0x00,
0xad,0xaa,0x7b,0xa7,0xae,0x3d,0x6d,0xe5,0x5f,0xab,0xca,0x00,0x00,0x00,0xd8,
0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xfe,0xbf,0x02,0x00,0x00,0xfc,0x00,0xab,0xb5,0x56,0xce,0x6f,0x27,0xbd,0xfe,
0xa5,0xaa,0x32,0x00,0x00,0x00,0xb0,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0x6b,0x01,0x00,0x00,0xfc,0x00,0x6a,
0xd5,0xad,0x3d,0x2b,0x35,0x5d,0x75,0x75,0x55,0x4a,0x00,0x00,0x00,0x60,0xbf,
0xff,0xfe,0xef,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xfd,0xff,0xfb,0xfe,0xff,
0xaa,0x00,0x00,0x00,0xfc,0x00,0xaa,0xaa,0x3e,0xdf,0xbf,0xb6,0xed,0xbf,0x55,
0x25,0x71,0x00,0x00,0x00,0x40,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xf7,0xff,0xff,0xfb,0xbf,0xd5,0x00,0x00,0x00,0xfc,0x00,0xaa,0x55,
0xc9,0x7a,0xff,0xf7,0xd7,0xd5,0xaa,0x92,0x52,0x00,0x00,0x00,0x80,0xfe,0xff,
0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdd,0xff,0xff,0xff,0x3f,
0x00,0x00,0x00,0xfc,0x00,0x54,0xad,0xd6,0xe2,0xff,0xeb,0x7b,0xaf,0x55,0x40,
0x2c,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0x7f,0x6b,0x05,0x00,0x00,0x00,0xfc,0x00,0x54,0xd5,0xca,
0xfa,0xbe,0x7e,0x75,0xa9,0x0a,0x89,0x2a,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,
0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x0d,0x00,
0x00,0x00,0xfc,0x00,0x58,0x55,0x35,0x2d,0xeb,0xd5,0x56,0x55,0x29,0xa0,0x14,
0x00,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xfe,
0xff,0xff,0xff,0xff,0xda,0x06,0x00,0x00,0x00,0xfc,0x00,0x50,0xab,0xda,0xaa,
0x35,0xae,0xaa,0x2a,0x01,0x40,0x0a,0x00,0x00,0x00,0x00,0xf0,0xfe,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xfb,0xfb,0xff,0xff,0xee,0x47,0x4b,0x01,0x00,0x00,
0x00,0xfc,0x00,0xa0,0xaa,0x52,0xb5,0xc4,0x32,0xab,0x14,0x84,0x04,0x0d,0x00,
0x00,0x00,0x00,0xe0,0xff,0x7f,0xff,0xff,0xfd,0xfb,0x7f,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xb5,0x00,0x00,0x00,0x00,0xfc,0x00,0x50,0x95,0xaa,0xaa,0x9a,
0x8a,0x14,0x44,0x00,0x10,0x05,0x00,0x00,0x00,0x00,0x80,0xf5,0xff,0xef,0xff,
0xf7,0xff,0xff,0xff,0xff,0xff,0xdf,0xfb,0xff,0xff,0x56,0x00,0x00,0x00,0x00,
0xfc,0x00,0xa0,0xaa,0x52,0x55,0x01,0x91,0x02,0x11,0x20,0xc0,0x00,0x00,0x00,
0x00,0x00,0x00,0xdf,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x7f,0x5f,0x15,0x00,0x00,0x00,0x00,0xfc,0x00,0x40,0x55,0xaa,0x4a,0x01,0x48,
0x29,0x98,0x84,0x24,0x01,0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xab,0x0a,0x00,0x00,0x00,0x00,0xfc,
0x00,0x80,0x55,0xa9,0xaa,0x01,0x20,0x41,0x00,0x00,0xa0,0x00,0x00,0x00,0x00,
0x00,0x00,0xf8,0xff,0x7f,0xff,0xff,0xdf,0xff,0xff,0xff,0xbf,0xff,0xef,0xff,
0x6d,0x03,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x55,0x52,0x65,0x92,0x50,0x08,
0x00,0x10,0x42,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0xff,0xff,0xff,0xff,0xff,
0xfb,0xff,0xff,0xff,0xff,0xff,0x6e,0xab,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,
0x00,0x54,0x5b,0x05,0x02,0x84,0x00,0x92,0x02,0x14,0x00,0x00,0x00,0x00,0x00,
0x00,0xc0,0x7b,0xff,0xff,0xdf,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xbf,0x55,
0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0xaa,0x48,0x32,0x21,0x04,0x42,0x00,
0x80,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfd,0xff,0xf7,0xff,0xff,0xff,
0xff,0xff,0xff,0xde,0xff,0xbf,0x1a,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,
0xac,0x4a,0x49,0x89,0x84,0x08,0x11,0x10,0x05,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x68,0xfb,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0x7f,0xff,0xca,0x06,0x00,
0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x40,0x8a,0x12,0x20,0x4a,0x00,0xa0,0x22,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xdf,0xbf,0xff,0xfe,0xff,0xbf,
0xfb,0xff,0xff,0xff,0x6b,0x01,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0xc0,
0x62,0x05,0x11,0x00,0x82,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xf6,0xff,0xff,0xef,0xf7,0xff,0xef,0xff,0xff,0xbf,0x55,0x00,0x00,0x00,
0x00,0x00,0x00,0xfc,0x00,0x00,0x80,0x1a,0x65,0xc4,0x52,0x18,0x50,0x18,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe8,0xfc,0xfe,0xff,0xff,0xff,0xbf,
0xff,0xff,0xad,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x50,
0x8a,0xa2,0x54,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x5f,0xf3,0xff,0xff,0xff,0xff,0xfe,0xff,0x5b,0x03,0x00,0x00,0x00,0x00,
0x00,0x00,0xfc,0x00,0x00,0x00,0x40,0x2a,0x42,0x02,0x40,0x61,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xff,0xff,0xfb,
0xef,0xeb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x13,
0x8a,0x10,0x05,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xdf,0xff,0xff,0x7f,0x7f,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xfc,0x00,0x00,0x00,0x00,0xf8,0x35,0x4e,0x74,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xff,0xff,0xff,0xf5,
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0xe8,
0xa2,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xc0,0xff,0xff,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xfc,0x00,0x00,0x00,0x00,0x00,0x20,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc};

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -0,0 +1,200 @@
#define ragamat2_width 145
#define ragamat2_height 155
static char ragamat2_bits[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,
0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x0f,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,
0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,
0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x70,0x01,0x10,0x00,0x00,0x00,
0x00,0x80,0x0f,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x03,0x00,
0x04,0x00,0x00,0x00,0x00,0xb8,0x6b,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,
0x00,0x20,0xc0,0x54,0x08,0x10,0x00,0x00,0x00,0xc8,0x5f,0x00,0x00,0x00,0x00,
0x00,0xfe,0x00,0x00,0x00,0x0c,0x08,0x00,0x91,0xc1,0x00,0x00,0x18,0xf0,0x3b,
0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x81,0xa2,0x5a,0x04,0x08,0x01,
0x00,0xb8,0xea,0x3e,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x10,
0x00,0x20,0x10,0x04,0x00,0xfc,0xb7,0x7f,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,
0x00,0x40,0xa0,0x4a,0xa5,0x8a,0x02,0x05,0x00,0x38,0xf8,0x35,0x00,0x00,0x00,
0x00,0x00,0xfe,0x00,0x00,0x10,0x12,0x00,0x00,0x00,0x48,0x18,0x00,0x78,0xd1,
0x3f,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x50,0x40,0xaa,0x2a,0x55,0x20,
0x00,0x00,0xec,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x20,0x92,
0x85,0x77,0x01,0x01,0x02,0x00,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,
0x00,0x00,0x8c,0x00,0xe8,0x5a,0x2b,0x88,0x10,0x00,0x28,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xfe,0x00,0x00,0x2c,0xa4,0x6a,0xb7,0x07,0x01,0x42,0x00,0xfc,
0x02,0x80,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0xbe,0x40,0xb0,0xdd,0x46,
0xd4,0x90,0x00,0x78,0xe0,0x1f,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x58,
0x12,0xea,0xbf,0x13,0x00,0x40,0x00,0x18,0xf8,0xff,0x00,0x00,0x00,0x00,0x00,
0xfe,0x00,0x00,0x69,0x88,0x50,0x7b,0x89,0x20,0xc8,0x01,0x00,0xe0,0x5f,0x00,
0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0xab,0x11,0x44,0x08,0x20,0x44,0x52,0x02,
0x18,0xb8,0xfa,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x80,0x70,0x8a,0x00,0xa5,
0x8a,0x10,0x31,0x01,0x38,0xe0,0x5f,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x80,
0xeb,0x53,0x25,0x08,0x20,0x44,0x8a,0x01,0xf8,0xff,0xf7,0x00,0x00,0x00,0x00,
0x00,0xfe,0x00,0xc0,0xf7,0x4c,0x80,0x42,0x09,0x15,0x28,0x02,0xf8,0xd3,0x5f,
0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0xc0,0x7e,0xff,0x2a,0x10,0x84,0xd4,0x88,
0x01,0x38,0x70,0xfd,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0xc0,0xff,0xee,0x1d,
0x4a,0x50,0xc2,0x88,0x09,0x38,0xd0,0xef,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,
0x40,0xdb,0xbe,0x78,0xe5,0x2b,0x40,0x74,0x03,0xf4,0xff,0x67,0x01,0x00,0x00,
0x00,0x00,0xfe,0x00,0xc0,0x7a,0xf7,0xae,0xa2,0x4c,0x00,0x11,0x00,0xf8,0xaf,
0xff,0x01,0x00,0x00,0x00,0x00,0xfe,0x00,0xc0,0xfe,0x9f,0xb4,0x83,0x62,0x00,
0x11,0x01,0x38,0xf0,0xb2,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0xc0,0x7a,0xeb,
0x46,0x25,0x44,0x00,0xa9,0x00,0xf8,0xb7,0xf7,0x01,0x00,0x00,0x00,0x00,0xfe,
0x00,0x00,0x6b,0x9f,0x5c,0xe7,0x61,0x00,0x12,0x01,0x20,0xf0,0xb2,0x00,0x00,
0x00,0x00,0x00,0xfe,0x00,0x00,0x7d,0xeb,0xac,0x47,0x54,0x00,0x42,0x00,0xf0,
0xdf,0xf3,0x01,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0xbf,0xbd,0xd2,0x67,0x63,
0x84,0x68,0x02,0x70,0x71,0xfd,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x80,0x35,
0x6b,0x29,0xa7,0x20,0x90,0x10,0x00,0xf0,0xd7,0xd9,0x00,0x00,0x00,0x00,0x00,
0xfe,0x00,0x80,0xdf,0x77,0x55,0xcb,0x9a,0x80,0x44,0x00,0xb0,0xf3,0xb9,0x01,
0x00,0x00,0x00,0x00,0xfe,0x00,0x80,0xbf,0xad,0xd6,0xa8,0xa2,0x00,0x50,0x02,
0xe0,0xdb,0xff,0x01,0x00,0x00,0x00,0x00,0xfe,0x00,0x80,0xbc,0x37,0xab,0xca,
0x82,0x10,0x80,0x03,0xf0,0xf7,0xd8,0x02,0x00,0x00,0x00,0x00,0xfe,0x00,0x80,
0x5d,0xad,0xdb,0x08,0xa9,0x00,0x40,0x00,0x00,0xd0,0xff,0x03,0x00,0x00,0x00,
0x00,0xfe,0x00,0x00,0xad,0xb7,0xd6,0x02,0x00,0x84,0x28,0x00,0x00,0xd8,0xac,
0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0xee,0x2d,0xb9,0x4b,0x15,0x10,0x60,
0x01,0xf8,0xf7,0xdd,0x03,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x9d,0x56,0xcb,
0x8b,0x12,0x40,0x80,0x00,0xf8,0x5b,0xfe,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,
0x00,0xae,0x5b,0x75,0xcf,0x0b,0x81,0x44,0x00,0x00,0xf0,0xba,0x05,0x00,0x00,
0x00,0x00,0xfe,0x00,0x00,0xef,0x96,0x8d,0x53,0x2b,0x29,0x88,0x00,0x38,0x6c,
0xee,0x01,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0xdc,0x5b,0xf4,0xc3,0x15,0xc1,
0x45,0x01,0xfc,0xf1,0x76,0x05,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x6e,0x17,
0xb5,0x46,0x2b,0x29,0x81,0x00,0x38,0x28,0xba,0x03,0x00,0x00,0x00,0x00,0xfe,
0x00,0x00,0x3c,0x5b,0xd5,0x93,0x15,0x21,0x8d,0x00,0xf0,0xb3,0xef,0x07,0x00,
0x00,0x00,0x00,0xfe,0x00,0x00,0xc8,0x5d,0xfd,0x93,0x2b,0xa8,0x41,0x01,0xf8,
0x33,0x6b,0x02,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0xec,0x2e,0x5d,0x5b,0x35,
0x48,0x05,0x00,0xec,0xef,0xdf,0x03,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x58,
0x95,0xad,0x52,0x2b,0xd1,0x80,0x00,0x38,0x58,0xfb,0x02,0x00,0x00,0x00,0x00,
0xfe,0x00,0x00,0xd8,0x1b,0xf5,0x52,0x35,0xa1,0x08,0x00,0xf8,0xd7,0xbf,0x07,
0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x70,0xee,0xbc,0x95,0x4a,0xd0,0x64,0x00,
0xf8,0xbb,0xd6,0x01,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0xa0,0x2b,0xab,0x9a,
0x06,0xa9,0x01,0x00,0xdc,0x27,0xff,0x06,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,
0x40,0x55,0xaa,0x55,0x51,0xc2,0x0c,0x00,0xfc,0xcb,0x55,0x03,0x00,0x00,0x00,
0x00,0xfe,0x00,0x00,0x80,0xb7,0xda,0x12,0x0d,0x60,0x02,0x00,0x18,0x68,0xff,
0x0e,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x4a,0xaa,0x5a,0x15,0x68,0x00,
0x00,0x18,0xf0,0xe7,0x02,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0xc0,0x96,0xaa,
0x12,0x95,0x71,0x03,0x00,0xfc,0x8f,0xba,0x03,0x00,0x00,0x00,0x00,0xfe,0x00,
0x00,0xe0,0xaf,0x5d,0xa5,0x55,0x35,0x00,0x00,0xfc,0xe3,0x7f,0x0f,0x00,0x00,
0x00,0x00,0xfe,0x00,0x00,0xa0,0xb6,0xaa,0x15,0x8a,0x49,0x00,0x00,0x00,0x68,
0xb5,0x05,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0xd0,0x7f,0xb6,0x16,0x45,0x2a,
0x00,0x00,0x00,0xe4,0xff,0x0f,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0xf0,0x7a,
0xaa,0x59,0xbe,0x44,0x00,0x00,0x00,0x40,0x55,0x05,0x00,0x00,0x00,0x00,0xfe,
0x00,0x00,0x50,0xff,0xaa,0x16,0x4b,0x36,0x00,0x00,0x00,0xe0,0xf7,0x07,0x00,
0x00,0x00,0x00,0xfe,0x00,0x00,0x60,0xeb,0xcb,0x2b,0x56,0x1f,0x00,0x00,0x00,
0x74,0x90,0x05,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0xb0,0xf5,0x6f,0xbb,0xda,
0x4a,0x00,0x00,0x00,0x10,0x01,0x06,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x50,
0xad,0x7f,0xa7,0xe9,0x0b,0x02,0x00,0x00,0x20,0x89,0x00,0x00,0x00,0x00,0x00,
0xfe,0x00,0x00,0xa0,0xaa,0xfa,0x6f,0xbf,0x00,0x00,0x00,0x00,0x88,0x40,0x00,
0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x80,0x54,0x4b,0xb5,0x25,0x04,0x00,0x00,
0x00,0x20,0x12,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x80,0x12,0x24,0x49,
0x88,0x00,0x00,0x00,0x00,0x0a,0x80,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,
0xc0,0x54,0x11,0x01,0x01,0x00,0x00,0x00,0x00,0x80,0x0a,0x02,0x00,0x00,0x00,
0x00,0xfe,0x00,0x00,0x00,0x15,0x04,0x10,0x00,0x00,0x00,0x00,0x00,0x58,0x00,
0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x49,0x91,0x40,0x80,0x00,0x00,
0x00,0x00,0xc3,0x4d,0x08,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x26,0x02,
0x01,0x00,0x10,0x00,0x00,0x80,0x1b,0x09,0x3e,0x00,0x00,0x00,0x00,0xfe,0x00,
0x00,0x00,0x90,0x24,0x08,0x01,0x00,0x00,0x00,0xe0,0xef,0x02,0x6e,0x00,0x00,
0x00,0x00,0xfe,0x00,0x00,0x00,0x40,0x82,0x22,0x00,0x00,0x00,0x00,0xbc,0x5b,
0x83,0x5f,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x21,0x00,0x92,0x10,
0x00,0x00,0xdb,0xf5,0xfe,0xfb,0x03,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,
0x14,0x41,0x20,0x02,0x00,0xc0,0xff,0x5e,0xff,0xfe,0x0a,0x00,0x00,0x00,0xfe,
0x00,0x00,0x00,0x00,0x20,0x04,0x44,0x00,0x00,0xf0,0xea,0xb6,0xb5,0xdf,0x0f,
0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xae,0xde,
0xdd,0xfe,0xf5,0x3d,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x6b,0xe8,0x6e,0xed,0x7f,0xff,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xe8,0x36,0x4d,0x00,0x40,0x1b,0x7c,0x03,0x00,0x00,
0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb8,0xcb,0x7e,0x00,0x10,0x1c,
0xea,0x0d,0x00,0x00,0xfe,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0xba,0xfe,
0x3b,0x80,0x80,0x74,0xbf,0x27,0x00,0x00,0xfe,0x00,0x00,0xa2,0x14,0x00,0x00,
0x00,0xc0,0x4d,0x4b,0x3f,0x00,0xc0,0xff,0xdf,0x5f,0x00,0x00,0xfe,0x00,0xc0,
0x04,0x44,0x01,0x00,0x00,0x40,0xb6,0xfd,0xaf,0x8a,0x14,0xfc,0xee,0x6a,0x01,
0x00,0xfe,0x00,0x70,0xc9,0x1d,0x0c,0x00,0x00,0x50,0xdb,0x5a,0x3d,0x00,0x42,
0xdc,0xaf,0xef,0x02,0x00,0xfe,0x00,0x08,0x6a,0xf5,0xa1,0x00,0x00,0xac,0xbd,
0xf6,0xf6,0xfe,0xff,0xf5,0xf3,0xdb,0x04,0x00,0xfe,0x00,0x5c,0xbc,0xaa,0x82,
0x01,0x00,0xaa,0x57,0xdd,0xdf,0xfd,0xff,0x5f,0xdb,0xee,0x15,0x00,0xfe,0x00,
0x24,0xd4,0x5e,0x33,0x00,0x00,0xb4,0xda,0xbe,0xff,0xff,0xff,0xff,0x7f,0xab,
0x2a,0x00,0xfe,0x00,0xad,0x6d,0xeb,0x48,0x02,0x00,0x55,0x75,0xfd,0xbe,0xfd,
0xfb,0xef,0xfb,0x57,0xa9,0x00,0xfe,0x00,0x57,0xd2,0x3b,0x84,0x01,0x00,0xb7,
0xd5,0xb6,0xff,0xfe,0xff,0x7f,0xef,0xbb,0x56,0x00,0xfe,0x00,0x4d,0x88,0x8f,
0x29,0x01,0x00,0x54,0xad,0xd5,0xed,0xfd,0xfb,0xdb,0xbf,0xaa,0xaa,0x00,0xfe,
0x80,0x7a,0x45,0x30,0xca,0x03,0x40,0xb0,0xd5,0x6d,0x7f,0xfd,0xef,0xfe,0xfd,
0xb7,0xaa,0x00,0xfe,0x80,0x2a,0xb5,0xad,0xea,0x08,0xa0,0xd8,0x6a,0xdd,0xef,
0x5d,0xbd,0x77,0xef,0x56,0x55,0x05,0xfe,0xc0,0xdd,0xaa,0xaa,0x98,0x12,0xc0,
0x52,0xb7,0xf5,0xbf,0xf7,0xfe,0xdd,0xbb,0xab,0x2a,0x00,0xfe,0x40,0x3c,0x2f,
0xe8,0xbe,0x05,0x00,0xbd,0xaa,0xb6,0xfd,0xdd,0xef,0x7f,0xff,0xaa,0x15,0x01,
0xfe,0xa0,0xda,0xeb,0xb1,0xac,0x34,0xc0,0x4d,0xed,0xea,0xef,0xbd,0x7f,0xff,
0xed,0xad,0x2a,0x04,0xfe,0xe0,0x9e,0x4f,0xef,0x24,0x0a,0xa0,0xb6,0x35,0x77,
0xff,0xdd,0xef,0xed,0xff,0x55,0xad,0x00,0xfe,0xf0,0xdd,0xce,0xf5,0x69,0x6b,
0xa0,0xda,0x56,0xdf,0xbb,0xf7,0xbe,0x7f,0xb7,0xaf,0xaa,0x05,0xfe,0xe0,0x9e,
0x5f,0xd1,0x79,0xc7,0x00,0xab,0xda,0xfa,0xff,0xbf,0xfe,0xdf,0xfd,0xdb,0x2a,
0x02,0xfe,0xf0,0xdf,0xe7,0xcb,0x58,0x56,0x40,0xdb,0x5a,0xef,0xdb,0xf6,0x6d,
0xf7,0x6f,0xaf,0xaa,0x02,0xfe,0xe8,0xea,0xce,0xf3,0x5a,0x8e,0x20,0x54,0xb5,
0xfa,0xff,0xbe,0xfd,0xbd,0xfe,0x5d,0x55,0x01,0xfe,0x28,0xcf,0xd7,0xf1,0x52,
0x2e,0xe0,0xb5,0xd6,0xbe,0xdf,0xb7,0xed,0xf7,0xef,0xaf,0xaa,0x04,0xfe,0xb0,
0xf7,0xcb,0xf2,0x53,0xbe,0x50,0xe0,0xaa,0xf5,0xfe,0x5e,0x78,0xbf,0x7b,0xdb,
0x56,0x01,0xfe,0x28,0xe5,0xc7,0xfb,0x33,0x9a,0xf0,0x97,0xb5,0xfa,0xff,0xb7,
0xd0,0xff,0xee,0xaf,0x5a,0x08,0xfe,0xb0,0xfd,0xcf,0xb4,0xb5,0x16,0xf0,0x55,
0xde,0xfe,0xdb,0x5e,0xe2,0xfd,0xbf,0xad,0x0a,0x04,0xfe,0x58,0xe2,0xcf,0xea,
0xb5,0xcc,0xb0,0x1f,0xd9,0xbb,0xff,0x56,0xfe,0xef,0xff,0x5f,0xfd,0x1f,0xfe,
0xb8,0x5b,0xcf,0xf2,0x21,0xb4,0xf0,0xff,0x12,0xfe,0xfe,0x26,0x89,0xff,0xdb,
0x6a,0xc1,0x14,0xfe,0x90,0x95,0xc7,0xda,0x2a,0xd5,0xd0,0xff,0x75,0xa9,0xff,
0xb6,0x02,0x7b,0xff,0xbf,0x92,0x0b,0xfe,0xa0,0xda,0xe8,0xf5,0x6b,0x2c,0xf0,
0xff,0xeb,0xdd,0x08,0xc8,0x3a,0xff,0xed,0x13,0xc9,0x14,0xfe,0x70,0xa1,0x83,
0xe8,0x41,0x9c,0xd0,0xff,0xff,0x77,0xce,0xa8,0x03,0xfe,0x41,0x64,0x3b,0x0b,
0xfe,0x20,0xb9,0xeb,0xe5,0x03,0x30,0xf0,0xff,0xff,0xff,0xaf,0x54,0xae,0x02,
0x30,0xa1,0xbe,0x15,0xfe,0xb0,0x95,0x86,0xd2,0x07,0x52,0xf0,0xff,0xff,0xff,
0xff,0x2a,0xcd,0x67,0x04,0xf5,0x7f,0x0d,0xfe,0x10,0xf5,0xc5,0xc0,0x96,0x62,
0xb0,0xfb,0xff,0xff,0xff,0x57,0x74,0xfd,0xb7,0x7e,0x6f,0x15,0xfe,0x90,0x75,
0xa3,0xd8,0x97,0x2a,0xf0,0xff,0xff,0xff,0xff,0xfd,0xde,0xff,0xff,0xff,0xff,
0x0a,0xfe,0xa0,0xfd,0xca,0xf6,0x97,0x6a,0xd0,0xff,0xff,0xff,0xff,0xdf,0xff,
0xff,0xff,0xff,0x7f,0x15,0xfe,0x60,0x71,0xc2,0xb2,0xd7,0x7a,0x60,0xff,0xff,
0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0x0b,0xfe,0xe0,0xf1,0xc5,0xee,0x56,
0x12,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x15,0xfe,0x60,
0xf6,0xd3,0xf3,0x43,0x1a,0xe0,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,
0xff,0x16,0xfe,0x00,0xf3,0x92,0xf2,0x43,0x3a,0xa0,0xfb,0xff,0xff,0xff,0xff,
0x7b,0xff,0xff,0xff,0xff,0x0a,0xfe,0x40,0xf7,0xdb,0xf2,0x43,0x3a,0xe0,0xef,
0xff,0xff,0xfd,0xfb,0xfd,0xff,0xff,0xef,0xff,0x0a,0xfe,0x80,0xb2,0xd7,0xb0,
0xc3,0x18,0xa0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0x05,0xfe,
0xc0,0xee,0x95,0xf9,0x43,0x09,0xc0,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,
0xff,0xfb,0x0a,0xfe,0x40,0x6a,0x97,0xa2,0x4b,0x19,0x40,0xff,0xff,0xff,0xff,
0xdf,0xff,0xbf,0xff,0xff,0xff,0x0d,0xfe,0x40,0xfa,0x93,0xe9,0x09,0x0d,0x40,
0xff,0xfe,0xff,0xff,0xff,0xff,0xfd,0xde,0xff,0xff,0x05,0xfe,0x80,0xe6,0x93,
0xe4,0x49,0x1d,0x40,0xff,0xff,0xfb,0xf7,0xff,0xf7,0xff,0xff,0xff,0x7f,0x02,
0xfe,0x80,0xf6,0x96,0xa5,0x29,0x1d,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0x05,0xfe,0x80,0xee,0x93,0xed,0x89,0x1d,0x00,0xff,0xf7,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x03,0xfe,0x80,0x45,0x93,0xe4,0xa9,0x15,
0x80,0xfd,0xdf,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0xfe,0x80,0xde,
0x9b,0x76,0xad,0x07,0x00,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x02,0xfe,0x00,0x74,0xbb,0xa4,0xe9,0x5d,0x00,0xfe,0xff,0xff,0x7e,0xff,0xff,
0xff,0xff,0xff,0xff,0x02,0xfe,0x00,0xdd,0x3b,0x85,0xa1,0x54,0x00,0xfc,0xff,
0xff,0xff,0xff,0xff,0xff,0xf7,0xbf,0x7f,0x01,0xfe,0x80,0xd5,0x3b,0x60,0xa5,
0x55,0x00,0xfe,0xff,0xff,0xff,0xff,0xdf,0xff,0xbf,0xff,0xfd,0x01,0xfe,0xc0,
0x3a,0x3f,0xb3,0x05,0xa9,0x00,0xb4,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,
0x3f,0x00,0xfe,0x80,0xd2,0xbb,0xa2,0xa6,0xae,0x00,0xf4,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xbf,0x00,0xfe,0x60,0xa5,0x3b,0xe5,0xd0,0xab,0x00,0xd8,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0x00,0xfe,0xb0,0x5a,0x2a,0x83,
0xb6,0x4a,0x01,0xf0,0xff,0xff,0xff,0xf7,0xff,0xef,0xff,0xff,0x3f,0x00,0xfe,
0xb0,0xbd,0xbf,0xe5,0xee,0xe2,0x00,0xe0,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,
0xfe,0x25,0x00,0xfe,0x90,0xd6,0x53,0x75,0xbb,0x52,0x00,0xc0,0xee,0xfe,0xff,
0xff,0xff,0xff,0xff,0xff,0x17,0x00,0xfe,0xc0,0x5a,0x37,0x67,0xaf,0xaa,0x00,
0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0a,0x00,0xfe,0x60,0xaa,0xfe,
0xfb,0x5b,0x85,0x00,0x80,0xfe,0xf7,0xfe,0xff,0xff,0x7f,0xff,0xff,0x07,0x00,
0xfe,0x80,0xd5,0xed,0xbe,0xaa,0x40,0x00,0x00,0xfe,0xff,0xfb,0xff,0xff,0xff,
0xfb,0xef,0x01,0x00,0xfe,0x80,0x56,0x55,0x54,0x15,0x30,0x00,0x00,0xfc,0xff,
0xff,0xff,0xff,0xff,0xef,0x33,0x00,0x00,0xfe,0x40,0x55,0x4a,0x55,0x0a,0x28,
0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0x00,0x00,0xfe,0x00,0x55,
0x19,0x10,0x80,0x14,0x00,0x00,0x60,0xff,0xff,0xff,0xfd,0xff,0xff,0x35,0x00,
0x00,0xfe,0x00,0x95,0x12,0x0c,0x04,0x08,0x00,0x00,0x80,0xff,0xff,0xff,0xff,
0xfe,0xdf,0x0f,0x00,0x00,0xfe,0x00,0xca,0x14,0x42,0x20,0x02,0x00,0x00,0x00,
0xfe,0xff,0xff,0xff,0xff,0xff,0x04,0x00,0x00,0xfe,0x00,0x90,0x44,0x08,0x04,
0x00,0x00,0x00,0x00,0xe8,0xff,0xef,0xff,0xff,0x5f,0x01,0x00,0x00,0xfe,0x00,
0x50,0x92,0x05,0x48,0x00,0x00,0x00,0x00,0x80,0xde,0xff,0xff,0xf7,0x2b,0x00,
0x00,0x00,0xfe,0x00,0x80,0x15,0x20,0x09,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,
0xfb,0xbf,0x0d,0x00,0x00,0x00,0xfe,0x00,0x00,0x7c,0xaa,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0xff,0xef,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xfe};

279
ragamatic/threads.cpp Normal file
View File

@@ -0,0 +1,279 @@
// Thread functions for use with syntmono.
//
// No mutexes are currently being used when accessing
// the global variables shared between these threads
// and the main() routine. In a single processor
// environment, no problems have resulted from such data
// sharing. However, if STK is to be run on a true parallel
// processing platform, it is likely that mutexes will be
// necessary. While the mutex calls are simple to code, I
// am trying to keep the code as generic as possible. A
// quick investigation of threads under Windoze indicates
// that mutex functionality is not available, at least with
// the standard libraries.
//
// Gary P. Scavone, 2000.
#include "threads.h"
#if defined(__STK_REALTIME_)
// Default STK socket port ID number
#define SERVICE_PORT 2001
// Do OS dependent declarations and includes
#if (defined(__OS_IRIX_) || defined(__OS_Linux_))
#include <pthread.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <arpa/inet.h>
#include <unistd.h>
pthread_t string_thread;
#elif defined(__OS_Win_)
#include <process.h>
#include <winsock.h>
unsigned long string_thread;
#endif
// The thread function protocols are slightly different
// under Windoze ... but of course!
#if (defined(__OS_IRIX_) || defined(__OS_Linux_))
void *newStringByPipe(void *)
#elif defined(__OS_Win_)
void newStringByPipe(void *)
#endif
{
extern int numStrings, notDone;
extern char **inputString;
int i;
// Malloc inputString.
inputString = (char **) malloc(MAX_IN_STRINGS * sizeof(char *));
for ( i=0;i<MAX_IN_STRINGS;i++ )
inputString[i] = (char *) malloc(STRING_LEN * sizeof(char));
int inOne = 0;
while (notDone) {
fgets(inputString[inOne],STRING_LEN,stdin);
if (inputString[inOne][2] == 'i' && inputString[inOne][3] == 't'
&& inputString[inOne][1] == 'x' && inputString[inOne][0] == 'E') {
notDone = 0;
}
else {
numStrings++;
if (numStrings > MAX_IN_STRINGS) {
fprintf(stderr,"Losing MIDI data ... try increasing MAX_IN_STRINGS.\n");
numStrings--;
}
inOne++;
if (inOne == MAX_IN_STRINGS) inOne = 0;
}
}
// Free inputString.
for ( i=0;i<MAX_IN_STRINGS;i++ ) free(inputString[i]);
free(inputString);
#if (defined(__OS_IRIX_) || defined(__OS_Linux_))
pthread_exit(NULL);
return NULL;
#elif defined(__OS_Win_)
_endthread();
#endif
}
#if (defined(__OS_IRIX_) || defined(__OS_Linux_))
void *newStringBySocket(void *)
#elif defined(__OS_Win_)
void newStringBySocket(void *)
#endif
{
extern int numStrings, notDone;
extern char **inputString;
int inOne = 0, i=0, m=0, n, parsing;
int soc_id, accept_id;
int maxfd, fd;
fd_set mask, rmask;
struct sockaddr_in sockname;
char socBuf[STRING_LEN];
static struct timeval timeout = {0, 10000}; // ten millisecond
// Malloc inputString.
inputString = (char **) malloc(MAX_IN_STRINGS * sizeof(char *));
for ( i=0;i<MAX_IN_STRINGS;i++ )
inputString[i] = (char *) malloc(STRING_LEN * sizeof(char));
memset(socBuf, 0, sizeof(socBuf));
#if defined(__OS_Win_) // Stupid Windoze only stuff
WSADATA wsaData;
WORD wVersionRequested = MAKEWORD(1,1);
int nRet = WSAStartup(wVersionRequested, &wsaData);
if (wsaData.wVersion != wVersionRequested) {
fprintf(stderr,"\n Wrong Windoze socket library version!\n");
exit(0);
}
#endif
// Create the server-side socket
soc_id = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(soc_id < 0) {
fprintf(stderr,"Couldn't create socket ... aborting!\n");
exit(0);
}
sockname.sin_family=AF_INET;
sockname.sin_addr.s_addr=INADDR_ANY;
sockname.sin_port=htons(SERVICE_PORT);
/* Bind socket to the appropriate port and interface (INADDR_ANY) */
if (bind(soc_id,(struct sockaddr *)&sockname,sizeof(sockname)) < 0) {
fprintf(stderr,"Couldn't bind socket ... aborting!\n");
exit(0);
}
/* Listen for incoming connections */
printf("Listening for socket connections on port %d\n", SERVICE_PORT);
if (listen(soc_id,SOMAXCONN) < 0) {
fprintf(stderr,"Couldn't set up listen on socket ... aborting!\n");
exit(0);
}
FD_ZERO(&mask);
FD_SET(soc_id, &mask);
maxfd = soc_id;
while (notDone) {
rmask = mask;
// Need to reset the timeout values because of linux "select" implementation
timeout.tv_sec = 0;
timeout.tv_usec = 10000; // 0.01 seconds
select(maxfd+1, &rmask, (fd_set *)0, (fd_set *)0, &timeout);
if (FD_ISSET(soc_id,&rmask)) { // a new connection is available
// Accept and service the incoming connection request
accept_id=accept(soc_id,NULL,NULL);
if (accept_id < 0) {
fprintf(stderr,"Couldn't accept incoming connection on socket ... aborting!\n");
exit(0);
}
printf("New socket connection made ... ready to receive SKINI messages.\n");
FD_SET(accept_id, &mask);
if (accept_id > maxfd) maxfd = accept_id;
FD_CLR(soc_id, &rmask);
}
for (fd=0;fd<=maxfd;fd++) { // look for other sockets with data
if (FD_ISSET(fd, &rmask)) { // process the data
parsing = 1;
while (parsing) {
i = recv(fd, socBuf, STRING_LEN,0);
if (i==0) {
printf("Closing a socket connection.\n");
FD_CLR(fd, &mask);
#if defined(__OS_Win_)
closesocket(fd);
#else
close(fd);
#endif
parsing = 0;
}
n = 0;
while (n < i) {
inputString[inOne][m++] = socBuf[n];
if (socBuf[n++] == '\n') {
if (inputString[inOne][2] == 'i' && inputString[inOne][3] == 't'
&& inputString[inOne][1] == 'x' && inputString[inOne][0] == 'E') {
notDone = 0;
n = i;
parsing = 0;
}
else {
m = 0;
if (n >= i) parsing = 0;
numStrings++;
if (numStrings > MAX_IN_STRINGS) {
fprintf(stderr,"Losing MIDI data ... try increasing MAX_IN_STRINGS.\n");
numStrings--;
}
inOne++;
if (inOne == MAX_IN_STRINGS) inOne = 0;
memset(inputString[inOne], 0, STRING_LEN);
}
}
}
}
}
}
}
#if defined(__OS_Win_) // Stupid Windoze only stuff
closesocket(soc_id);
WSACleanup();
#else
shutdown(soc_id,0);
#endif
// Free inputString.
for ( i=0;i<MAX_IN_STRINGS;i++ ) free(inputString[i]);
free(inputString);
printf("Socket connection closed.\n");
#if (defined(__OS_IRIX_) || defined(__OS_Linux_))
pthread_exit(NULL);
return NULL;
#elif defined(__OS_Win_)
_endthread();
#endif
}
void startPipeThread()
{
#if (defined(__OS_IRIX_) || defined(__OS_Linux_))
if (pthread_create(&string_thread, NULL, newStringByPipe, NULL)) {
fprintf(stderr, "unable to create input pipe thread ... aborting.\n");
exit(0);
}
#elif defined(__OS_Win_)
string_thread = _beginthread(newStringByPipe, 0, NULL);
if (string_thread == -1) {
fprintf(stderr, "unable to create input pipe thread ... aborting.\n");
exit(0);
}
#endif
}
void startSocketThread()
{
#if (defined(__OS_IRIX_) || defined(__OS_Linux_))
if (pthread_create(&string_thread, NULL, newStringBySocket, NULL)) {
fprintf(stderr, "unable to create input socket thread...aborting.\n");
exit(0);
}
#elif defined(__OS_Win_)
string_thread = _beginthread(newStringBySocket, 0, NULL);
if (string_thread == -1) {
fprintf(stderr, "unable to create input socket thread...aborting.\n");
exit(0);
}
#endif
}
#endif

30
ragamatic/threads.h Normal file
View File

@@ -0,0 +1,30 @@
// Thread functions for use with syntmono.
//
// Gary P. Scavone, 1999.
#include "../STK/Object.h"
#define STRING_LEN 60
/*
#if (defined(__STK_REALTIME_) && defined(__OS_IRIX_) )
void newStringByPipe(void *);
void newStringBySocket(void *);
#elif (defined(__STK_REALTIME_) && defined(__OS_Linux_) )
*/
#if (defined(__STK_REALTIME_) && (defined(__OS_IRIX_) || defined(__OS_Linux_)))
void *newStringByPipe(void *);
void *newStringBySocket(void *);
#elif (defined(__STK_REALTIME_) && defined(__OS_Win_) )
void newStringByPipe(void *);
void newStringBySocket(void *);
#endif
void startPipeThread();
void startSocketThread();