[comp.sources.games] v04i095: xconq5 - version 5 of the strategy game for X-windows and curses, Part07/18

games@tekred.TEK.COM (07/01/88)

Submitted by: "Stanley T. Shebs" <shebs%defun@cs.utah.edu>
Comp.sources.games: Volume 4, Issue 95
Archive-name: xconq5/Part07



#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 7 (of 18)."
# Contents:  input.c lib/xconq.bdf map.h
# Wrapped by billr@saab on Wed Jun 29 08:55:39 1988
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f input.c -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"input.c\"
else
echo shar: Extracting \"input.c\" \(19011 characters\)
sed "s/^X//" >input.c <<'END_OF_input.c'
X/* Copyright (c) 1987, 1988  Stanley T. Shebs, University of Utah. */
X/* This program may be used, copied, modified, and redistributed freely */
X/* for noncommercial purposes, so long as this notice remains intact. */
X
X/* RCS $Header: input.c,v 1.1 88/06/21 12:30:17 shebs Exp $ */
X
X/* To accommodate simultaneous movement by several players, our setup must */
X/* be a little elaborate.  Basically, the program keeps the initiative; */
X/* when a side's movement phase needs input, it posts a "request" and a */
X/* handler for that request.  When X gets an event, data about it is */
X/* preprocessed and then stuffed into the request structure.  At the end */
X/* of a movement subphase, the requests are fulfilled by calling the handler */
X/* and passing it the side and a pointer to the request. */
X
X/* The bad part about all this is that *every* *single* interaction must */
X/* be handled this way - no more calling a routine to get a value and */
X/* waiting until it is complete! :-( */
X
X#include "config.h"
X#include "misc.h"
X#include "dir.h"
X#include "period.h"
X#include "side.h"
X#include "unit.h"
X#include "global.h"
X#include "map.h"
X
X/* Magic values (unlikely to show up as player input) */
X
X#define DFLTFLAG (-12345)       /* flags when default arg to be used */
X#define NEGFLAG  (-12346)       /* flags when default arg to be used */
X#define ITERFLAG (-12347)       /* flags args that are "itertime" */
X
X#define ESCAPE '\033'           /* standard abort character */
X#define BACKSPACE '\010'        /* for fixing strings being entered */
X
X/* The following structure is used only for the dispatch table. */
X
Xtypedef struct func_tab {
X    char fchar;                 /* character to match against */
X    int (*code)();              /* pointer to command's function */
X    int defaultarg;             /* default for argument */
X    bool needunit;              /* true if cmd always applies to a unit */
X    char *help;                 /* short documentation string */
X} FuncTab;
X
Xextern int giventime;           /* flags use of chess clock */
X
X/* Predeclarations of all commands. */
X
Xint do_sentry(), do_delay(), do_wakeup(), do_wakemain(), do_embark(),
X    do_exit(), do_resign(), do_message(), do_follow(),
X    do_redraw(), do_disband(), do_return(),
X    do_sit(), do_product(), do_idle(), do_help(), do_version(),
X    do_save(), do_standing(), do_ident(), do_moveto(), do_coast(),
X    do_survey_mode(), do_unit_info(), do_printables(), do_occupant(),
X    do_options(), do_name(), do_unit(), do_give_unit(), do_center(),
X    do_mark_unit(), do_add_player(), do_patrol(), do_give(), do_take();
X
Xchar dirchars[] = DIRCHARS;     /* typable characters for directions */
X
X/* The command table itself.  Default iterations of ITERFLAG actually turn */
X/* into the value of "itertime", which can be set by options cmd. */
X
XFuncTab commands[] = {
X    's', do_sentry, ITERFLAG, TRUE, "put a unit on sentry duty",
X    'w', do_wakemain, 0, FALSE, "wake units up from whatever they were doing",
X    ' ', do_sit, 1, FALSE, "(Space Bar) make unit be on sentry this turn only",
X    'r', do_return, 1, TRUE, "return unit to nearest city/transport",
X    'd', do_delay, 1, TRUE, "delay unit's move until later in turn",
X    'f', do_follow, ITERFLAG, TRUE, "follow a designated leader",
X    'm', do_moveto, 1, TRUE, "move to given location",
X    'z', do_survey_mode, 1, FALSE, "toggle between survey and move modes",
X    'a', do_occupant, 1, TRUE, "look at the occupants",
X    'e', do_embark, 1, TRUE, "embark units onto transport occupying same unit",
X    'x', do_mark_unit, 1, TRUE, "mark unit for later reference",
X    'g', do_give, -1, TRUE, "give supplies to the transport",
X    't', do_take, -1, TRUE, "take supplies from the transport",
X    'c', do_center, 1, FALSE, "designate current location as center of action",
X    'o', do_options, 5, FALSE, "set various options",
X    'p', do_printables, 1, FALSE, "put various data into files for printing",
X    ' ', NULL, 0, 0, "",
X    'P', do_product, 1, TRUE, "set/change unit production",
X    'I', do_idle, ITERFLAG, TRUE, "set unit to not produce anything",
X    'W', do_wakeup, 0, FALSE, "wake ALL units in area, including occupants",
X    'D', do_disband, 1, TRUE, "disband a unit and send it home",
X    'F', do_coast, ITERFLAG, TRUE, "follow a coastline",
X    'Z', do_patrol, ITERFLAG, TRUE, "go on a patrol",
X    'O', do_standing, 1, TRUE, "set standing orders for occupants",
X    'G', do_give_unit, -2, TRUE, "turn unit over to another side",
X    'M', do_message, -2, FALSE, "send a message to other sides",
X    'C', do_name, 1, FALSE, "call a unit or side by a name",
X    'X', do_resign, -2, FALSE, "resign from the game",
X    'Q', do_exit, 1, FALSE, "kill game for all players",
X    'S', do_save, 1, FALSE, "save the game into a file",
X    'A', do_add_player, 1, FALSE, "add a new player to the game",
X    '?', do_help, 1, FALSE, "display help info",
X    '/', do_ident, 1, FALSE, "identify things on screen",
X    '=', do_unit_info, 1, FALSE, "display details about a type of unit",
X    'V', do_version, 1, FALSE, "display program version",
X    '\\', do_unit, 1, FALSE, "build a new unit (Build mode only)",
X    '\022', do_redraw, 1, FALSE, "(^R) redraw screen",
X    '\014', do_redraw, 1, FALSE, "(^L) redraw screen",
X    '\0', NULL, 0, FALSE, NULL   /* end of table marker */
X};
X
X/* Just to get everything off on the right foot. */
X
Xinit_requests(side)
XSide *side;
X{
X    side->reqvalue = DFLTFLAG;
X}
X
X/* Post a request - need only know the handler that will be called to */
X/* fulfill the request later, and sometimes a relevant unit. */
X
Xrequest_input(side, unit, handler)
XSide *side;
XUnit *unit;
Xint (*handler)();
X{
X    if (Debug) printf("Making %s request ", side->name);
X    if (!humanside(side)) fprintf(stderr, "Gack!\n");
X    if (!side->reqactive) {
X	if (Debug) printf("(accepted)\n");
X	side->reqactive = TRUE;
X	side->reqhandler = handler;
X	side->reqtype = GARBAGE;
X	side->requnit = unit;
X	/* any other data slots are setup by callers of this routine */
X    } else {
X	if (Debug) printf("(ignored)\n");
X    }
X}
X
X/* Make a request go away.  Careful about using this! */
X
Xcancel_request(side)
XSide *side;
X{
X    if (side->reqactive) {
X	if (Debug) printf("Canceling %s request\n", side->name);
X	side->reqactive = FALSE;
X	erase_cursor(side);
X	clear_info(side);
X	flush_output(side);
X    }
X}
X
X/* Handle all requests at once.  This routine *will* wait forever for */
X/* input (polling is evil).  This is also the right place to draw the */
X/* unit cursor, since it is unwanted unless we are waiting on input. */
X
Xhandle_requests()
X{
X    bool waiters = FALSE;
X    Side *side;
X
X    for_all_sides(side) {
X	if (side->reqactive) {
X	    waiters = TRUE;
X	    /* wasteful to call this for everybody... */
X	    show_info(side);
X	    draw_cursor(side);
X	}
X    }
X    if (waiters) {
X	get_input();
X	for_all_sides(side) {
X	    if (side->reqactive && side->reqtype != GARBAGE) {
X		if (Debug) printf("Fulfilling %s request with input type %d\n",
X				  side->name, side->reqtype);
X		side->reqactive = FALSE;
X		(*(side->reqhandler))(side);
X		erase_cursor(side);
X		clear_info(side);
X		flush_output(side);
X	    }
X	}
X    }
X}
X
X/* Acquire a command from the player.  Command may be prefixed with a */
X/* nonnegative number which is given as an argument to the command function */
X/* (otherwise arg defaults to value in third column of command table). */
X/* This routine takes in both keyboard and mouse input, other kinds of */
X/* devices should be handled here also (rriiiight...).  Don't do any of */
X/* this if the clock ran out, just supply an innocuous command. */
X
Xx_command(side)
XSide *side;
X{
X    int dir, terr, sign = 1;
X
X    switch (side->reqtype) {
X    case KEYBOARD:
X	if (Debug) printf("%s keyboard input: %c (%d)\n",
X			  side->name, side->reqch, side->reqvalue);
X	if (isdigit(side->reqch)) {
X	    if (side->reqvalue == DFLTFLAG) {
X		side->reqvalue = 0;
X	    } else if (side->reqvalue == NEGFLAG) {
X		side->reqvalue = 0;
X		sign = -1;
X	    } else {
X		side->reqvalue *= 10;
X	    }
X	    side->reqvalue +=
X		(side->reqvalue >= 0 ? 1 : -1) * (side->reqch - '0');
X	    side->reqvalue *= sign;
X	    sprintf(side->promptbuf, "Arg: %d", side->reqvalue);
X	    show_prompt(side);
X	    request_input(side, side->curunit, x_command);
X	    return;
X	} else {
X	    clear_prompt(side);
X	    if (Build && ((terr = find_terr(side->reqch)) >= 0)) {
X		if (side->reqvalue == DFLTFLAG) side->reqvalue = 0;
X		do_terrain(side, terr, side->reqvalue);
X	    } else if (side->reqch == '-') {
X		side->reqvalue = NEGFLAG;
X		request_input(side, side->curunit, x_command);
X		return;
X	    } else if ((dir = iindex(side->reqch, dirchars)) >= 0) {
X		if (side->reqvalue == DFLTFLAG) side->reqvalue = 1;
X		do_dir(side, dir, side->reqvalue);
X	    } else if ((dir = iindex(lowercase(side->reqch), dirchars)) >= 0) {
X		if (side->reqvalue == DFLTFLAG)
X		    side->reqvalue = side->itertime;
X		if (side->mode == SURVEY) side->reqvalue = 10;
X		do_dir(side, dir, side->reqvalue);
X	    } else {
X		execute_command(side, side->reqch, side->reqvalue);
X	    }
X	}
X	break;
X    case MAPPOS:
X	if (Debug) printf("%s map input: %d,%d (%d)\n",
X			  side->name, side->reqx, side->reqy, side->reqvalue);
X	clear_prompt(side);
X	if (side->reqx == side->curx && side->reqy == side->cury) {
X	    if (side->curunit) do_sit(side, 1);
X	    break;
X	} else {
X	    if (side->teach) {
X		cache_moveto(side, side->reqx, side->reqy);
X	    } else {
X		switch (side->mode) {
X		case MOVE:
X		    if (side->curunit) {
X			order_moveto(side->curunit, side->reqx, side->reqy);
X			side->curunit->orders.flags &= ~SHORTESTPATH;
X		    }
X		    break;
X		case SURVEY:
X		    move_survey(side, side->reqx, side->reqy);
X		    break;
X		default:
X		    case_panic("mode", side->mode);
X		}
X	    }
X	}
X	break;
X    default:
X	break;
X    }
X    if (giventime && !side->timedout && side->timeleft <= 0) {
X	side->timedout = TRUE;
X	notify(side, "You ran out of time!!");
X	beep(side);
X    }
X    /* Reset the arg so we don't get confused next time around */
X    side->reqvalue = DFLTFLAG;
X}
X
X/* The requester proper, which just sets up the hook to call the main */
X/* command interpreter when some input comes by. */
X
Xrequest_command(side)
XSide *side;
X{
X    request_input(side, side->curunit, x_command);
X}
X
X/* Search in command table and execute function if found, complaining if */
X/* the command is not recognized.  Many commands operate on the "current */
X/* unit", and all uniformly error out if there is no current unit, so put */
X/* that test here.  Also fix up the arg if the value passed is one of the */
X/* specially recognized ones. */
X
Xexecute_command(side, ch, n)
XSide *side;
Xchar ch;
Xint n;
X{
X    struct func_tab *cmd;
X    
X    for (cmd = commands; cmd->fchar != '\0'; ++cmd) {
X	if (ch == cmd->fchar) {
X	    if (n == DFLTFLAG) n = cmd->defaultarg;
X	    if (n == NEGFLAG)  n = 0 - cmd->defaultarg;
X	    if (n == ITERFLAG) n = side->itertime;
X	    if (Debug) printf("... actual arg is %d\n", n);
X	    if (cmd->needunit) {
X		if (side->curunit != NULL) {
X		    (*(cmd->code))(side, side->curunit, n);
X		} else {
X		    cmd_error(side, "No unit to operate on here!");
X		}
X	    } else {
X		(*(cmd->code))(side, n);
X	    }
X	    return;
X	}
X    }
X    cmd_error(side, "Unknown command '%c'", ch);
X}
X
X/* Help for the main command mode just dumps part of the table, and a little */
X/* extra info about what's not in the table.  This may go onto a screen or */
X/* into a file, depending on where this was called from. */
X
Xcommand_help(side)
XSide *side;
X{
X    FuncTab *cmd;
X
X    wprintf(side, "To move a unit, use the mouse or [hlyubn]");
X    wprintf(side, "[HLYUBN] moves unit repeatedly in that direction");
X    wprintf(side, "Mousing unit makes it sit, mousing enemy unit attacks");
X    if (Build) wprintf(side, "Terrain characters set what will be painted.");
X    wprintf(side, "  ");
X    for (cmd = commands; cmd->fchar != '\0'; ++cmd) {
X	wprintf(side, "%c  %s", cmd->fchar, cmd->help);
X    }
X}
X
X/* The handler for unit production needs to make sure valid input has */
X/* been received, will put in another request if not. */
X
Xx_product_type(side)
XSide *side;
X{
X    int u;
X
X    if ((u = grok_unit_type(side)) >= 0) {
X	set_product(side->requnit, u);
X	set_schedule(side->requnit);
X    } else {
X	request_input(side, side->requnit, x_product_type);
X    }
X}
X
X/* This is called when production is to be set or changed.  Note that since */
X/* the user has a pretty dull choice if there is only one possible type of */
X/* unit to build, in such cases we can bypass requests altogether. */
X
Xrequest_new_product(unit)
XUnit *unit;
X{
X    int u;
X    Side *us = unit->side;
X
X    if (humanside(us)) {
X	sprintf(spbuf, "%s will build: ", unit_handle(us, unit));
X	u = ask_unit_type(us, spbuf, utypes[unit->type].make);
X	if (u < 0) {
X	    make_current(us, unit);
X	    request_input(us, unit, x_product_type);
X	} else {
X	    set_product(unit, u);
X	    set_schedule(unit);
X	}
X    } else {
X	set_product(unit, machine_product(unit));
X	set_schedule(unit);
X    }
X}
X
X/* Prompt for a type of a unit from player, maybe only allowing some types */
X/* to be accepted.  Also allow specification of no unit type.  We do this */
X/* by scanning the vector, building a string of chars and a vector of */
X/* unit types, so as to be able to map back when done. */
X
Xask_unit_type(side, prompt, possibles)
XSide *side;
Xchar *prompt;
Xshort *possibles;
X{
X    int numtypes = 0, u, type;
X
X    for_all_unit_types(u) {
X	side->bvec[u] = 0;
X	if (possibles == NULL || possibles[u]) {
X	    side->bvec[u] = 1;
X	    side->ustr[numtypes] = utypes[u].uchar;
X	    side->uvec[numtypes] = u;
X	    numtypes++;
X	}
X    }
X    if (numtypes == 0) {
X	type = NOTHING;
X    } else if (numtypes == 1) {
X	type = side->uvec[0];
X	side->bvec[type] = 0;
X    } else {
X	side->ustr[numtypes] = '\0';
X	sprintf(side->promptbuf, "%s [%s] ", prompt, side->ustr);
X	show_prompt(side);
X	draw_unit_list(side, side->bvec);
X	type = -1;
X    }
X    return type;
X}
X
X/* Do something with the char or unit type that the player entered. */
X
Xgrok_unit_type(side)
XSide *side;
X{
X    int i, type = -1;
X
X    switch (side->reqtype) {
X    case KEYBOARD:
X	echo_at_prompt(side, side->reqch);
X	if (side->reqch == '?') {
X	    help_unit_type(side);
X	} else if (side->reqch == ESCAPE) {
X	    type = NOTHING;
X	} else if (iindex(side->reqch, side->ustr) == -1) {
X	    notify(side, "Unit type '%c' not in \"%s\"!",
X		   side->reqch, side->ustr);
X	} else {
X	    type = find_unit_char(side->reqch);
X	}
X	break;
X    case UNITTYPE:
X	if (between(0, side->requtype, period.numutypes-1) &&
X	    side->bvec[side->requtype]) {
X	    type = side->requtype;
X	} else {
X	    notify(side, "Not a valid unit type!");
X	}
X	break;
X    default:
X	break;
X    }
X    if (type >= 0) {
X	clear_prompt(side);
X	for_all_unit_types(i) side->bvec[i] = 0;
X	draw_unit_list(side, side->bvec);
X    }
X    return type;
X}
X
X/* User is asked to pick a position on map.  This will iterate until the */
X/* space bar designates the final position. */
X
Xask_position(side, prompt)
XSide *side;
Xchar *prompt;
X{
X    sprintf(side->promptbuf, "%s [mouse or keys to move, space bar to set]",
X	    prompt);
X    show_prompt(side);
X    side->tmpcurx = side->curx;  side->tmpcury = side->cury;
X    side->tmpcurunit = side->curunit;
X}
X
X/* Restore the saved "cur" slots. */
X
Xrestore_cur(side)
XSide *side;
X{
X    side->curx = side->tmpcurx;  side->cury = side->tmpcury;
X    side->curunit = side->tmpcurunit;
X}
X
X/* Interpret the user's input in response to a position request.  All we */
X/* have to comprehend is direction keys and mouse hits.  Space bars and */
X/* unmoving mice both mean that a position has been decided on. */
X
Xgrok_position(side)
XSide *side;
X{
X    int dir;
X
X    switch (side->reqtype) {
X    case KEYBOARD:
X	if (side->reqch == ' ') {
X	    clear_prompt(side);
X	    return TRUE;
X	} else if ((dir = iindex(side->reqch, dirchars)) >= 0) {
X	    side->reqposx = wrap(side->reqposx + dirx[dir]);
X	    side->reqposy = side->reqposy + diry[dir];
X	} else if ((dir = iindex(lowercase(side->reqch), dirchars)) >= 0) {
X	    side->reqposx = wrap(side->reqposx + 10*dirx[dir]);
X	    side->reqposy = side->reqposy + 10*diry[dir];
X	}
X	break;
X    case MAPPOS:
X	if (side->reqx == side->reqposx && side->reqy == side->reqposy) {
X	    clear_prompt(side);
X	    return TRUE;
X	} else {
X	    side->reqposx = side->reqx;  side->reqposy = side->reqy;
X	}
X	break;
X    default:
X	break;
X    }
X    side->curx = side->reqposx;  side->cury = side->reqposy;
X    side->curunit = NULL;
X    show_info(side);
X    return FALSE;
X}
X
X/* Prompt for a yes/no answer with a settable default. */
X
Xask_bool(side, question, dflt)
XSide *side;
Xchar *question;
Xbool dflt;
X{
X    sprintf(side->promptbuf, "%s [%s]", question, (dflt ? "yn" : "ny"));
X    show_prompt(side);
X    side->reqvalue2 = dflt;
X}
X
X/* Figure out what the answer actually is, keeping the default in mind. */
X
Xgrok_bool(side)
XSide *side;
X{
X    bool dflt = side->reqvalue2;
X    char ch = side->reqch;
X
X    if (side->reqtype == KEYBOARD) {
X	if (dflt ? (lowercase(ch) == 'n') : (lowercase(ch) == 'y'))
X	    dflt = !dflt;
X    }
X    clear_prompt(side);
X    return dflt;
X}
X
X/* Prompt for a single character. */
X
Xask_char(side, question, choices)
XSide *side;
Xchar *question, *choices;
X{
X    sprintf(side->promptbuf, "%s [%s]", question, choices);
X    show_prompt(side);
X}
X
X/* The char has already been processed, so just pass it through. */
X
Xgrok_char(side)
XSide *side;
X{
X    if (side->reqtype == KEYBOARD) {
X	clear_prompt(side);
X	return side->reqch;
X    } else {
X	return '\0';
X    }
X}
X
X/* Read a string from the prompt window.  Deletion is allowed, and a */
X/* cursor is displayed (this should definitely be a toolkit call...) */
X/* Some restrictions on what strings can be read - for instance can't */
X/* read or default to a NULL string. */
X
Xask_string(side, prompt, dflt)
XSide *side;
Xchar *prompt, *dflt;
X{
X    if (dflt == NULL) {
X	sprintf(side->promptbuf, "%s ", prompt);
X    } else {
X	sprintf(side->promptbuf, "%s (default \"%s\") ", prompt, dflt);
X    }
X    show_prompt(side);
X    side->reqstrbeg = strlen(side->promptbuf);
X    side->reqcurstr = side->reqstrbeg;
X    write_str_cursor(side);
X    side->reqdeflt = dflt;
X}
X
X/* Dig a character from the filled-in request and add it into the string. */
X/* Keep returning NULL until we get something. */
X
Xchar *
Xgrok_string(side)
XSide *side;
X{
X    if (side->reqtype == KEYBOARD) {
X	if (side->reqch == '\r' ||
X	    side->reqch == '\n' ||
X	    side->reqcurstr >= BUFSIZE-2) {
X	    if (side->reqcurstr == side->reqstrbeg && side->reqdeflt != NULL) {
X		strcpy(side->promptbuf+side->reqstrbeg, side->reqdeflt);
X	    } else {
X		(side->promptbuf)[side->reqcurstr] = '\0';
X	    }
X	    clear_prompt(side);
X	    return copy_string(side->promptbuf + side->reqstrbeg);
X	} else {
X	    if (side->reqch == BACKSPACE) {
X		if (side->reqcurstr > side->reqstrbeg) --side->reqcurstr;
X	    } else {
X		echo_at_prompt(side, side->reqch);
X		(side->promptbuf)[side->reqcurstr++] = side->reqch;
X	    }
X	}
X	write_str_cursor(side);
X	(side->promptbuf)[side->reqcurstr+1] = '\0';
X    }
X    return NULL;
X}
END_OF_input.c
if test 19011 -ne `wc -c <input.c`; then
    echo shar: \"input.c\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f lib/xconq.bdf -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"lib/xconq.bdf\"
else
echo shar: Extracting \"lib/xconq.bdf\" \(29701 characters\)
sed "s/^X//" >lib/xconq.bdf <<'END_OF_lib/xconq.bdf'
XSTARTFONT 2.1
XCOMMENT The X10 name for this font was "/site/Chris/Xconq/lib/xconq.onx"
XFONT /site/Chris/Xconq/lib/xconq.onx.bdf
XSIZE 11 75 75
XFONTBOUNDINGBOX 20 22 0 0
XSTARTPROPERTIES 2
XFONT_DESCENT 8
XFONT_ASCENT 14
XENDPROPERTIES
XCHARS 127
XSTARTCHAR C000
XENCODING 0
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X800010
X406020
X209040
X108080
X088100
X049200
X026400
X3108c0
X489120
X486120
X586120
X489120
X3508c0
X020400
X049200
X089100
X10d080
X20b040
X409020
X809010
X000000
X000000
XENDCHAR
XSTARTCHAR C001
XENCODING 1
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C002
XENCODING 2
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C003
XENCODING 3
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C004
XENCODING 4
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C005
XENCODING 5
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C006
XENCODING 6
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C007
XENCODING 7
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C010
XENCODING 8
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C011
XENCODING 9
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C012
XENCODING 10
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C013
XENCODING 11
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C014
XENCODING 12
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C015
XENCODING 13
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C016
XENCODING 14
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C017
XENCODING 15
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C020
XENCODING 16
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C021
XENCODING 17
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C022
XENCODING 18
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C023
XENCODING 19
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C024
XENCODING 20
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C025
XENCODING 21
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C026
XENCODING 22
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C027
XENCODING 23
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C030
XENCODING 24
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C031
XENCODING 25
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C032
XENCODING 26
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C033
XENCODING 27
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C034
XENCODING 28
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C035
XENCODING 29
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C036
XENCODING 30
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C037
XENCODING 31
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C040
XENCODING 32
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR !
XENCODING 33
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR "
XENCODING 34
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR #
XENCODING 35
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR $
XENCODING 36
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR %
XENCODING 37
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X00e000
X0d2000
X120600
X20e900
X1c21c0
X36c640
X424940
X4d2220
X0128a0
X560820
X088240
X1c3100
X256860
X448ca0
X451420
X180a40
X028800
X022300
X019000
X004000
X000000
XENDCHAR
XSTARTCHAR &
XENCODING 38
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR '
XENCODING 39
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR (
XENCODING 40
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X00f800
X838610
X760360
X0c0180
X3800c0
Xe00070
X000010
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR )
XENCODING 41
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR *
XENCODING 42
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR +
XENCODING 43
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X040100
X040100
X040100
X040100
X040100
X040100
X040100
X040100
Xfffff0
X040100
X040100
X040100
X040100
X040100
X040100
X040100
X040100
X040100
X000000
X000000
XENDCHAR
XSTARTCHAR ,
XENCODING 44
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X003800
X000000
X07ce00
X000000
X73ffc0
X000000
X3ff1f0
X000000
Xff3fe0
X000000
X3ffe70
X000000
Xffcf30
X000000
X3f7fe0
X000000
X1cfe00
X000000
X00f800
X000000
X000000
XENDCHAR
XSTARTCHAR -
XENCODING 45
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR .
XENCODING 46
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X004000
X00a000
X031880
X1c0700
X000000
X080200
X360d80
Xc1f070
X000000
X004010
Xc1b060
X3e0f80
X000000
X080200
X360d80
Xc1f070
X000000
X004000
X00a000
X011800
X000000
X000000
XENDCHAR
XSTARTCHAR /
XENCODING 47
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 0
XENCODING 48
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000380
X000280
X000280
X000280
X000380
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 1
XENCODING 49
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000100
X000100
X000100
X000100
X000100
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 2
XENCODING 50
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000380
X000080
X000380
X000200
X000380
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 3
XENCODING 51
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000380
X000080
X000380
X000080
X000380
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 4
XENCODING 52
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000280
X000280
X000380
X000080
X000080
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 5
XENCODING 53
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000380
X000200
X000380
X000080
X000380
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 6
XENCODING 54
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000380
X000200
X000380
X000280
X000380
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 7
XENCODING 55
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 8
XENCODING 56
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR 9
XENCODING 57
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR :
XENCODING 58
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X008000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000100
X000000
X000000
X080000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR ;
XENCODING 59
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR <
XENCODING 60
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR =
XENCODING 61
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X01f000
X000000
X000400
X7e4440
X002480
X1fa480
X001500
X7f1570
X000000
X07ff80
Xf00000
X0207e0
X222000
X124fc0
X124000
X0a8000
X0abf00
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR >
XENCODING 62
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR ?
XENCODING 63
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR @
XENCODING 64
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR A
XENCODING 65
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR B
XENCODING 66
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR C
XENCODING 67
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR D
XENCODING 68
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR E
XENCODING 69
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR F
XENCODING 70
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR G
XENCODING 71
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR H
XENCODING 72
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR I
XENCODING 73
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR J
XENCODING 74
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR K
XENCODING 75
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR L
XENCODING 76
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR M
XENCODING 77
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR N
XENCODING 78
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR O
XENCODING 79
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X006000
X01f800
X07fe00
X1fff80
X7fffe0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
Xfffff0
X7fffe0
X1fff80
X07fe00
X01f800
X006000
XENDCHAR
XSTARTCHAR P
XENCODING 80
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR Q
XENCODING 81
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR R
XENCODING 82
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR S
XENCODING 83
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR T
XENCODING 84
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR U
XENCODING 85
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR V
XENCODING 86
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR W
XENCODING 87
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR X
XENCODING 88
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR Y
XENCODING 89
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR Z
XENCODING 90
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR [
XENCODING 91
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X1fff80
X3fffc0
X3fffc0
X3801c0
X3801c0
X3801c0
X3801c0
X3801c0
X3801c0
X3801c0
X3801c0
X3801c0
X3801c0
X3fffc0
X3fffc0
X1fff80
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR \
XENCODING 92
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR ]
XENCODING 93
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X0fff00
X100080
X100080
X100080
X100080
X100080
X100080
X100080
X100080
X100080
X100080
X100080
X100080
X0fff00
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR ^
XENCODING 94
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X006000
X007000
X00d000
X019800
X014c00
X034600
X065380
X1c88c0
X32a660
X641120
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR _
XENCODING 95
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X001000
X001000
X003000
X003800
X002800
X065800
X065800
X0a5400
X19d400
X11da00
Xf34bf0
Xe24df0
Xc445f0
X448280
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR `
XENCODING 96
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR a
XENCODING 97
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR b
XENCODING 98
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X005000
X019000
X00e800
X017000
X00a800
X012000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR c
XENCODING 99
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X025000
X012800
X02aa00
X0ca400
X029800
X056500
X0af200
X04f400
X036c00
X0c9300
X015400
X029200
X024800
X002800
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR d
XENCODING 100
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X004000
X01a000
X029a00
X1eb500
X2a5280
X452a40
X3a5520
X09fa20
X65f9c0
X13fca0
X09fa20
X6ffdc0
X19f860
X42af40
X5452a0
X054540
X1aad00
X029400
X005000
X000000
X000000
XENDCHAR
XSTARTCHAR e
XENCODING 101
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR f
XENCODING 102
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR g
XENCODING 103
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR h
XENCODING 104
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR i
XENCODING 105
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR j
XENCODING 106
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR k
XENCODING 107
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR l
XENCODING 108
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR m
XENCODING 109
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR n
XENCODING 110
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR o
XENCODING 111
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X006000
X01f800
X07fe00
X1fff80
X7fffe0
Xffffe0
Xffffe0
Xffffe0
Xffffe0
Xffffe0
Xffffe0
Xffffe0
Xffffe0
Xffffe0
Xffffe0
Xffffe0
X7fffe0
X1fff80
X07fe00
X01f800
X006000
X000000
XENDCHAR
XSTARTCHAR p
XENCODING 112
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR q
XENCODING 113
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR r
XENCODING 114
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR s
XENCODING 115
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR t
XENCODING 116
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR u
XENCODING 117
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR v
XENCODING 118
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR w
XENCODING 119
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR x
XENCODING 120
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR y
XENCODING 121
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR z
XENCODING 122
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR {
XENCODING 123
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR |
XENCODING 124
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR }
XENCODING 125
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
X000000
XENDCHAR
XSTARTCHAR ~
XENCODING 126
XSWIDTH 1 0
XDWIDTH 20 0
XBBX 20 22 0 -8
XBITMAP
X004000
X002000
X008800
X061200
X094280
X490c20
X1a8280
X485250
X10a200
X8a0920
X08a500
Xe7f6f0
X050100
X895220
X2c0a80
X2a2a10
X889480
X090280
X045200
X00a000
X000000
X004000
XENDCHAR
XENDFONT
END_OF_lib/xconq.bdf
if test 29701 -ne `wc -c <lib/xconq.bdf`; then
    echo shar: \"lib/xconq.bdf\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f map.h -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"map.h\"
else
echo shar: Extracting \"map.h\" \(3444 characters\)
sed "s/^X//" >map.h <<'END_OF_map.h'
X/* Copyright (c) 1987, 1988  Stanley T. Shebs, University of Utah. */
X/* This program may be used, copied, modified, and redistributed freely */
X/* for noncommercial purposes, so long as this notice remains intact. */
X
X/* RCS $Header: map.h,v 1.1 88/06/21 12:29:42 shebs Exp $ */
X
X/* Definitions of levels of detail in mapfiles.  These values must be */
X/* ordered, so careful about fiddling with them. */
X
X#define SIDEBASIC 1
X#define SIDESLOTS 2
X#define SIDEVIEW  3
X#define SIDEMISC  4
X#define SIDEALL   9  /* guaranteed max */
X
X#define UNITBASIC  1
X#define UNITSLOTS  2
X#define UNITORDERS 3
X#define UNITALL    9  /* guaranteed max */
X
X/* These limit the junk in mapfile headers. */
X
X#define MAXINCLUDES 9     /* max number of included files */
X#define MAXMAPNOTES 40    /* max lines of notes */
X
X/* Theoretically, there is no maximum size to xconq maps, but the minimum */
X/* size is set by mystical properties of display, and is not negotiable. */
X
X#define MINWIDTH 5
X#define MINHEIGHT 5
X
X/* Letters for hex and outlined hex.  Exact use is up to the interface - */
X/* the X interface has hexagonal shapes in its xconq font for these.  No */
X/* problems about conflicting with unit or terrain characters. */
X
X#define HEX 'O'
X#define OHEX 'o'
X
X/* This structure should be as small as possible, since it is an */
X/* individual entry in the array containing the entire world. */
X/* The "type" and "people" slots could be combined, but this might */
X/* slow accesses undesirably, because of bit field extraction. */
X
Xtypedef struct a_hex {
X    char type;            /* terrain type at this spot */
X    char people;          /* alignment/number of people in this hex */
X    struct a_unit *surf;  /* pointer to unit if any */
X} Hex;
X
X/* Just for convenience, global variables about map live in this structure. */
X
Xtypedef struct a_world {
X    int width, height;    /* size of the world */
X    int scale;            /* scale in km (not really very important) */
X    bool known;           /* true if everybody knows what world looks like */
X    Hex *terrain;         /* pointer to array of hexes */
X} World;
X
X/* The type of a hex in the world is a small number representing the */
X/* terrain type.  Only about 10 types are defined, in terrain.h */
X
X#define terrain_at(x,y) ((world.terrain[(y)*world.width+(x)]).type)
X
X#define set_terrain_at(x,y,t) \
X  ((world.terrain[(y)*world.width+(x)]).type = (t))
X
X/* The people only have a side alignment, no mention of population */
X/* (at least for now). */
X
X#define people_at(x,y) ((world.terrain[(y)*world.width+(x)]).people)
X
X#define set_people_at(x,y,p) \
X  ((world.terrain[(y)*world.width+(x)]).people = (p))
X
X#define NOBODY 0
X
X#define unpopulated(x,y) (people_at((x),(y)) == NOBODY)
X
X/* The unit is a raw pointer - this macro is used a *lot*. (Any prospects */
X/* for optimization?) */
X
X#define unit_at(x,y) ((world.terrain[(y)*world.width+(x)]).surf)
X
X#define set_unit_at(x,y,u) \
X  ((world.terrain[(y)*world.width+(x)]).surf = (u))
X
X/* This little macro implements wraparound in the x direction. */
X/* The stupid add is for the benefit of brain-damaged mod operators */
X/* that don't handle negative numbers properly. */
X
X#define wrap(x) (((x) + 4*world.width) % world.width)
X
X/* Constrain y to northern and southern edges. */
X
X#define limit(y) (max(0, min((y), (world.height-1))))
X
X#define interior(y) (max(1, min((y), (world.height-2))))
X
X/* Declaration of the world itself. */
X
Xextern World world;
END_OF_map.h
if test 3444 -ne `wc -c <map.h`; then
    echo shar: \"map.h\" unpacked with wrong size!
fi
# end of overwriting check
fi
echo shar: End of archive 7 \(of 18\).
cp /dev/null ark7isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 18 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0