# HG changeset patch # User darius # Date 881383021 0 # Node ID 2719a89505baeac49b8ef8c044e0b1afd5ad5824 # Parent 4d6502ffaa5e5b724eba8429dd91b08634700709 First entry of Paradise Server 2.9 patch 10 Beta diff -r 4d6502ffaa5e -r 2719a89505ba docs/CHANGES --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/CHANGES Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,69 @@ +2.4 patch 1b: (Brandon Gillespie / Rob Forsman) + + * Observer bug fix + * even better setup script. Note: it is now in the NETREKDIR, not + NETREKDIR/src (so you can remove NETREKDIR/src/setup). + * Galaxy Generator #6. This isn't really more than Heath's Galaxy + Generator #3 with a few tweaks on the settings, but I made it + another generator rather than a define in config.h so you can use + both generators. + * Made the robot actually say something in binary (before he didn't) + * Fixed the rank exemption for GODLIKE people (top to ranks of royalty) + on ships. Before it was backwards (i.e. Wesleys were exempt). + * Exempted GODLIKE people from cluechecker #2 + * Added the RSA exemption file (Rob's) + * fixed the WE ARE CLOSED message (wasn't displaying because line was + too long). + +2.4 patch 2: (Brandon Gillespie) + + * Adjusted default values per PLC decision + * fixed some problems in the setup script + * fixed a minor bug with announcing the end of a game. + +2.4 patch 3: (Bob Glamm) + + * Despite this patch having my name on it, I contributed no actual + code to this patch. Rather, it is a compilation of bug fixes + that people such as Sujal, Rob, and Joe contributed to the + mailing list but were too small to be considered 2.4p3 + individually. Maybe they should have been 2.4p2.1, 2.2, etc?? + +2.4 patch 4: (Mike McGrath) + + * Added support for terrain features. + * Implemented asteroids using the new terrain stuff. + +2.4 patch 5: (Bob Glamm) + + * I actually did the coding for this one. + * Socket code for Mike's terrains (nebula/asteroids) + +2.4 patch 6: (Mike McGrath) + + * Asteroids are completely finished -- fields have different + densities, thicknesses, distances from their parent star, etc. + * Asteroids affect ships, in addition to weapons. + * New PLC ship values turned default. + +2.4 patch 7: (Bob Glamm) + + * Added FEATURE_PACKETS so the server wouldn't hose the client if the + client couldn't understand terrain. Note that these are probably not the + same thing as Bronco feature packets. Define as FEATURE in config.h + (on by default). + +2.4 patch 8: (Gary Parnes, Ken Germann) + + * Added higher wtemp for butt torpers (Gary Parnes) + * Added ship-variable det distances (Ken Germann) + +2.4 patch 9: (Mike McGrath) + + * Added basic nebula code + * New orbital code, so planets don't end up same dist from stars, and so + orbiting planets don't overlap. + * New detdist (1750) made default, + Variable det dist stuff used for CVs, and UTs, to make them tougher. + * New low-fuel based explosion values made default. + * Self-hurting torps made optional. diff -r 4d6502ffaa5e -r 2719a89505ba docs/CREDITS --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/CREDITS Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,55 @@ +Netrek II (Paradise) + +Permission to use, copy, modify, and distribute this software and its +documentation, or any derivative works thereof, for any NON-COMMERCIAL +purpose and without fee is hereby granted, provided that this copyright +notice appear in all copies. No representations are made about the +suitability of this software for any purpose. This software is provided +"as is" without express or implied warranty. + + Xtrek Copyright 1986 Chris Guthrie + Netrek (Xtrek II) Copyright 1989 Kevin P. Smith + Scott Silvey + Paradise II (Netrek II) Copyright 1993 Larry Denys + Kurt Olsen + Brandon Gillespie + Rob Forsman + +Many people have had influences on the game. Before ParadiseII the major +developer was Larry Denys with help from Kurt Olsen and Brandon as his toadie. +When Paradise II was released Rob came onto the scene, then Mike McGrath and +Heath Kehoe. Others have made many small contributions, but I cannot remember +them currently. If stats can be found forward them to me (brandon@cc.usu.edu). + +ParadiseII: + Larry Denys, Kurt Olsen, Brandon Gillespie, and Rob Forsman +With help from: + Heath Kehoe, Mike Lutz, Mike McGrath, Ted Hadley, and Mark Kolb + +Patch History: + 2.3-1 3/??/94 Rob Forsman + 2.3-2 3/??/94 Rob Forsman + 2.3-3 3/17/94 Rob Forsman + 2.3-4 3/25/94 Rob Forsman + 2.3-5 4/3/94 Rob Forsman + 2.3-6 4/7/94 Rob Forsman (small hacks by Brandon Gillespie) + 2.3-7 5/7/94 Heath Kehoe + 2.3-8 5/27/94 Rob Forsman + 2.3-9 6/1/94 Rob Forsman + 2.3-10 7/7/94 Mike McGrath + 2.3-11 7/?/94 Bob Glamm + 2.3-12 7/22/94 Heath Kehoe + 2.3-13 8/9/94 Bill Dyess + 2.3-14 8/15/94 Mike McGrath (Help from Bill Dyess and Rob Forsman) + 2.3-15 8/22/94 Bob Glamm + +Server 2.4 release: Monday September 19th 1994 (9/19/94) Brandon Gillespie + 2.4-1 10/24/94 Brandon Gillespie (RSA Exemption by Rob Forsman) + 2.4-2 11/9/94 Brandon Gillespie + 2.4-3 04/??/95 Bob Glamm + 2.4-4 05/11/95 Mike McGrath + 2.4-5 05/??/95 Bob Glamm + 2.4-6 06/12/95 Mike McGrath + 2.4-7 07/13/95 Bob Glamm + 2.4-8 07/20/95 Gary Parnes, Ken Germann + 2.4-9 10/02/95 Mike McGrath diff -r 4d6502ffaa5e -r 2719a89505ba docs/Notes --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/Notes Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,2 @@ +1. Can't pass arguments to robots RoyaltyPlayers can create. + diff -r 4d6502ffaa5e -r 2719a89505ba docs/README.Admin --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/README.Admin Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,136 @@ +(9/19/94:Brandon) + + QUICK INSTALLATION + + To install the server onto your system, do the following: + + 1. Change your working directory to src/ + 2. execute the script called 'setup' + 3. follow the instructions, no guarantees! + 4. execute 'make install' + + If you have the expected directory structure (as created in the 2.4 + release) and you are on a common operating system, everything should + install appropriately. Read on for instructions on administrating + the server. + + ADMINISTRATION + + The server expects several files to be available in the appropriate + locations. These locations are based off a root level which is + specified with an environment variable of NETREKDIR (Note: if the + NETREKDIR environment variable does not exist, some scripts and + binaries may check for "../etc/conf.netrekdir" to specify the full + path). The following is an explanation of the different files and + directories. + + backups/ - This is where the dbbackup script places + it's files. + bin/ - where the binaries and various scripts are + located: + daemonII - the daemon binary. + dbbackup - database backup script + faucet + - used in combination with pl to create the + player listing port, not required. It is + not distributed with the server (it is + part of Rob Forsman's NetPipes). + init.shutdown - callable by the system (shutdown) + init.startup - callable by the system (startup) + listen - the listen process binary + mailcluecheck - the script used to mail letters to ejected + people, if MAIL_CLUELETTER is defined in + config.h + makemotd - builds a message of the day with player stats + mes + - tool used by ntstop, not required. + ntserv - ntserv binary + ntstart - script to startup the server + ntstop - script to shutdown the server (with message) + pl + - tool used to give a listing of players + robotII - robot binary, if it doesn't exist no robots + will enter the game. + snake - snake binary, if it doesn't exist no snakes + will enter the game. + docs/ - where documents are stored. + etc/ - the location of files used by the various + binaries and scripts. + ALLOW - if this file exists the server will ignore + conf.hours as well as DENY and will always + allow access. + DENY - if this file exists and ALLOW does not exist + the server will ignore conf.hours and will + always be closed. + clue.letter - the form letter used by mailcluecheck + cluephrases - the cluephrases file, if it doesn't exist the + server will use a builtin list of phrases. + conf.hours - hour configuration file (access) + conf.netrekdir - hardcoded NETREKDIR path. + conf.pics - configuration file for motd pictures. + the format is: + + + + + the picture location is based off NETREKDIR. + X and Y coordinates are explanatory, the page + is which page in the MOTD it should appear on. + conf.sysdef - the system configuration file. + db.global - database, globals. + db.players - database, players. + motd - the message of the day. Pages in the motd + are seperated by: + + [newline][tab]@@b + + motd.body - the body of the motd (without highscores), + used by makemotd to create the actual motd. + planets - planets file. + rsa.keys - a list of rsa keys (ignore without RSA). + logs/ + conquer - a record of all conquers on the server. + daemonII.pid - a log of the current daemonII's process ID + eject.log - a log of ejections via mailcluecheck + god.log - a log of all messages sent to GOD + listen.pid - a log of the current listen's process ID + server.log - a log of the daemon and generic server messages + startup.log - a startup log from ntserv and daemonII processes + pics/ - where motd pictures can be located. + pped/ - Heath Kehoe's player database editor. + rsa/ - the RSA files, these are not required for + server execution. + src/ - source code for the server. + + Note that the person who occupies player entry 0 in the player file + will *always* be given the rank of Emperor, so make sure the first + entry always has a password. + + OPTIONS + + Options can be found in most binaries with the '-h' flag. + + To manually connect a client to the server first run the client + and tell it which socket to try: + + netrek.paradise -s + + On the server machine, enter: + + ntserv -s -d + + CONTROLS + + The server has some online controls which are available to the + administrators, but only if they have the correct royalty. The + first person to be in the database file (0) is always the 'Emperor', + which is the highest royalty status. As an Emperor the player + can use the online controls. + + To use the controls you send yourself a message. To get a current + list of controls available send yourself 'help' and then try help + on each topic listed, such as 'control help'. + + Note: be cautious on using any of the controls which modifies actual + gameplay variables during Tmode. These modifications will be recorded + into the database and will have a global effect on all statistics + (for instance, do not give 1000 armies to a player as they will + inevitably be dooshed in 10 seconds). + diff -r 4d6502ffaa5e -r 2719a89505ba docs/README.Changes --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/README.Changes Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,52 @@ +(9/19/94:Brandon) + +This file is for people already experienced with the server, who may also +be currently running their own server. It only explains the changes from +the administration of a 2.3 server to the administration of a 2.4 server. +If you do not know how the server functions read the file README.Admin +instead, as this file simply explains what is different from the old setup +to this, and how to convert an old server's database and other config files +to the new setup. + +The server now uses the NETREKDIR environment variable as a pointer to the +root of the directory structure, rather than it being a pointer to the bin +directory. The various different directories are: + + backups/ -- where the dbbackup script stores backup files. + bin/ -- the bin directory, this ONLY has binaries and scripts. + docs/ -- this documentation directory + etc/ -- where the configuration files, database files and + other random files used by the server are stored. + logs/ -- where logfiles and pid files are stored. + pics/ -- where motd pictures can be stored, this is not enforced + pped/ -- Heath Kehoes player database editor. + rsa/ -- the RSA files, this directory is empty due to the + copyrights involved with RSA. If you desired RSA + security you may be able to get the files, however + it is not required to run the server (and very few + people use it). + src/ -- where the source files are located. + +For the server to run as it did before adjust the following files +appropriately: + + Old Location New Location Notes + ------------ ------------ ----- + bin/.global etc/db.global + bin/.players etc/db.players + bin/.hours etc/conf.hours + bin/.pics etc/conf.pics adjust the paths accordingly. + bin/.sysdef etc/conf.sysdef + bin/.motd etc/motd + bin/.motd.wc etc/motd.wc + bin/.cluephrases etc/cluephrases + bin/.rsa.keys etc/rsa.keys + +Some other files you may want to be aware of are: + + etc/conf.netrekdir a 1 line file specifying the location of your + NETREKDIR, which may be used by scripts and + binaries if they cannot find the NETREKDIR + environment variable. + logs/daemonII.pid The process ID # of the current daemon running. + logs/listen.pid The Process ID # of the latest listen process run. diff -r 4d6502ffaa5e -r 2719a89505ba docs/README.League --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/README.League Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,95 @@ +(9/19/94) + + Robert Forsman sez + +HOW TO SET UP A PARADISE LEAGUE SERVER: + + Compile the server. If you have a working server already, you're + good to go. There are no special options to turn on to configure a + league tournament server. + + Instead of invoking listen with "listen -p 2592" start two of them: + + % listen -H -p 3333 + % listen -A -p 4444 + + These processes automatically invoke ntserv with the proper + arguments and ntserv then invokes the daemon with the correct + arguments. A daemon running in league mode does NOT use the .sysdef + file. Any necessary adjustments will be made by the League Council + (you can modify sysdefaults.c or shipvals.c if you REALLY want to + change something, but we discourage it). + + People can connect to the port of their choice and they will be + forced onto the home or the away team. + + Once in the game players have a number of commands available to + them. To access these commands send yourself a message starting with + the word "league" (or any abbreviation down to "le"). + + One player will be captain and declare himself so by issuing the + command "league captain". The captain's next duty is to name his team + with "league teamname *string*". + + The away team has first choice of empires. To choose an empire the + captain issues the command "league *shortname*". The available + empires are FED, ROM, KLI, and ORI. The home team then chooses an + empire. + + Once empires are chosen both captains issue the command "league + start", everyone explodes, and the game enters the warmup. After 1 + minute of warmup everyone explodes again and the game begins + ("commence scumming, you twinks!"). + + Other commands are available under the league prefix. Some of them + are restricted to captains. Here is a section I put in my MOTD once. + I've got my roommate working on flashy graphics. + +HOW TO USE THE CONTROLS FOR LEAGUE PLAY. + + You can use a league control by sending a message to yourself + beginning with "league" (or any abbreviation down to "le"). The + following commands are usable by any peasant: + + "league help" gives you a short refresher on available league + commands. + + "league captain" makes you the captain of your team. "league + captain 0" will unmake you captain. + + "league info" tells you about each team. + + "league time" tells you how much time the game is configured for. + Overtime is not yet implemented. + + "league home" and "league away" can be used to defect to another + team. + +THE FOLLOWING COMMANDS ARE RESERVED FOR TEAM CAPTAINS: + + "league pass" can be used to pass the first choice of empire to + the other team. Away has the first choice of + empire when the server starts. + + "league start" signifies your team is ready to start. If you + decide you are NOT ready to start, use "league + start 0". You need a team name, a team captain + and an empire to start. + + "league teamname whatever" names your team `whatever'. + + "league empire" (where empire is "ind", "fed", "rom", "kli", or + "ori") sets your team's empire to that empire. + Ind actually stands for no choice of empire and + allows your opponents to choose that empire. + + "league time regulation overtime" (where regulation and overtime are + integers) sets the time in minutes of each period + of the tournament. Overtime is not yet implemented. + + "league home pnum" and "league away pnum" allow the captain of a team + to throw a player off his own team. + + "league galaxy" resets the galaxy with a new planetary + configuration. + diff -r 4d6502ffaa5e -r 2719a89505ba docs/README.Tools --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/README.Tools Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,33 @@ +(9/19/94:Brandon) + +PARADISE TOOLS + +These are tools used for working with the server and its db. +Most of them must be used while the server is running (set your +NETREKDIR environment variable). I would suggest checking out +all the options available to each tool with the -h flag. + +mes -- used to send messages to the message boards, via a regular + terminal. + +xtk -- has various options for controlling the game from a + terminal. + +wm -- watch messages sent back and forth. + +pl -- list players in the game. + +reset -- reset the galaxy. + +promo -- check for recent rank promotions. + +hs -- compares old db file with new player db file to create a + highscores ranking. + +trim -- used to clean up and trim the player db. + +hr -- creates a listing of the top n players. + +ds -- describe/dump ships; runs the daemon and dumps out + stats on each ship in a format dependant upon the given + options. diff -r 4d6502ffaa5e -r 2719a89505ba docs/README.sysdef --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/README.sysdef Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,347 @@ +Robert Forsman 3-3-93 + + If there is a file in the netrek directory called conf.sysdef, the +daemon will look in it for various configuration options. If the file +is changed in the middle of the game, the daemon will eventually +notice and reread the values from the file into the shared memory +segment. Note that some of the options will not affect players +immediately (PLKILLS=, SHIP=) + + The following options are of the form + +OPT=val + + +SHIPS=%s + + Sets which ships are available for flying. The string after the = +is a comma separated list of values from the list: + "SC", "DD", "CA", "BB", "AS", "SB", "AT", "FL", "JS", "WB", "CL", + "CV", "UT", "PT" + +WEAPONS=%s + + Sets which special "weapons" are allowed on the server. The string +after the = is a comma separated list of values from the list: + "PLASMA", "TRACTOR", "MISSILE", "FIGHTER" + +SUN_EFFECT=%s + + Sets which systems are affected by stars. The string after the = is +a comma separated list of values from the list: + "PLASMA", "MISSILE", "FIGHTER", "PHOTON" + +NEB_EFFECT=%s + + Sets systems affected by nebulous terrain. The string after the = is +a comma separated list of values from the list: + "PLASMA", "PHASER", "SHIELD", "SENSOR", "WARP", "CLOAK" + +ASTEROID_EFFECT=%s + + Sets systems afected by asteroids. The string after the = is +a comma separated list of values from the list: + "PLASMA", "MISSILE", "FIGHTER", "PHOTON", "IMPULSE", "TRACTOR" + +SHIP=%d + + The text following this has configuration values for ship class %d. +The ship configuration ends with the word "end" on a line by itself. +The format of each configuration line is + +%s %s %? + + The first string is currently ignored, but should be the 2-character +abbreviation for the ship. The second string is the value name. The +third string is the new value. Each value name can expect a different +type of value. The current value encodings are: + + CHAR %c + SHORT %hi + INT %i + LONG %li + FLOAT %f + STRING %s + LONGFLAGS %s (a comma separated list of values from a special list) + + The list of value names can be found in the file structdesc.c. +Their meanings are not yet documented. Take a guess :) + +RELOAD_SHIPDEFAULTS= + + Causes the initial ship defaults to be reread. Clears any changes +that may have been made by previous SHIP= directives. + +TOURN=%d + + Sets the number of players/team required for tournament mode. + +TESTERS=%d + + Sets how many slots are reserved for robots/testers. + +CONFIRM=%hhd + + A non-zero value means that binaries that do not authenticate +properly will be refused access to the game. + +MAXLOAD=%f + + Sets the maximum server machine load before the server refuses +access. This option might not be fully functional. + +UDP=%hhd + + Enables UDP protocol. This is customarily on. + +MINUPDDELAY=%d + +MINOBSUPDDELAY=%d + +PLKILLS=%f + + Sets the number of kills required for plasmas. The player must +refit to a ship that mounts plasmas before they are available. + +MSKILLS=%f + + Sets the number of kills required for missiles. The player must refit +to a ship that mounts missiles before they are available. + +EROSION=%f + + Sets the chance (<1) that a point of damage will cause irreparable +damage to your ship. + +PENETRATION=%f + + Sets the amount of damage (<1) that leaks through weakened shields. + +NEWTURN=%d + + A non-zero value enables new turn code. This is rarely enabled. +With newturn on, turning radii are linearly dependent upon speed. +With newturn disabled, turning radii are somewhat exponential with +speed. Current turning numbers on ships are tuned for NEWTURN=0 + +HIDDEN=%d + + A non-zero value means that enemy ships that are far away from all +teammates will not appear on the galactic scans during T-mode. + +PLANUPDSPD=%f + + Sets the planet update speed. This only affects how fast planets +orbit stars. Reasonable values range from 1 to 3. Anything above 10 +is probably too fast. Anything below 0.1 might as well be 0. + +GALAXYGENERATOR=%d + + Sets which method to generate the galaxy with. 1 is the original +Paradise 2.01 galaxy generator. 2 is Bob Forsman's compact galaxy +generator. 3 is Heath Kehoe's diamond galaxy generator. 4 is Mike +McGrath's Bronco emulator. 5 is Mike McGrath's small galaxy +generator. 6 is a hack on generator 3 to give 2 systems to each race. +Anything else is interpreted as 1. + +NUMNEBULA=%d + + Sets the number of nebulous cloud "seeds" to be placed in the galaxy. +Nebulae grow from these "seeds" when the galaxy is created. Higher +numbers mean more nebulous terrain. + +NEBULASIZE=%d + + Sets the amount of nebulous terrain each "seed" represents. See NUMNEBULA. +Higher is more. + +NUMASTEROID=%d + + Sets the number of asteroid belts -- maximum of one per star. + +ASTEROIDTHICKNESS=%f + + Sets the width of asteroid belts. 0.5 is skinny, 3.0 would be pretty fat. + +ASTEROIDDENSITY=%d + + Value from 0 - 100. 100 would be a solid belt of asteroids. 0 would be no +asteroids in the belt at all. + +ASTEROIDRADIUS=%d + + Distance at which an asteroid belt orbits it's parent star. + +ASTEROIDTHICKVAR=%f + + Maximum variance from the ASTEROIDTHICKNESS variable. + +ASTEROIDDENSVAR=%d + + Maximum variance from the ASTEROIDDENSITY variable. + +ASTEROIDRADVAR=%d + + Maximum variance from the ASTEROIDRADIUS variable. + +POPSCHEME=%hhd + + A value of 0 is the Paradise II exponential army growth algorithm. +A value of 1 is Bob Forsman's surface-based demi-uniform pop scheme. + +POPCHOICE=%hhd + + A value of 0 is the Paradise II 1/15 Hz planet sweep pop choice +algorithm. A value of 0 is Bob Forsman's 10Hz progressive empire scan +algorithm. + +POPSPEED%=%d + + Controls the speed of the planet popping. 100 is base speed, higher +numbers mean faster popping. + +RESOURCEBOMBING=%hhd + + If non-zero then allow facilities to be bombed. If zero then +facilities can not be bombed (like Bronco). + +REVOLTS=%hhd + + If non-zero then planetary revolts can happen. + +BRONCOSHIPVALS=%hhd + + If non-zero then the next time the daemon initializes the ship +values, they will get bronco values. You must follow this directive +with a line that says "RELOAD_SHIPDEFAULTS=". + +EVACUATION=%hhd + + If non-zero then you are allowed to beam the last armies off a +planet. + +AFTERBURNERS=%hhd + + If non-zero then you are allowed to use afterburners. + +WARPDRIVE=%hhd + + If non-zero then you are allowed to use warp engines. + +FUELEXPLOSIONS=%hhd + + If non-zero then the damage from a ship's explosion is fuel-based. +A zero value emulates Bronco's flat damage. + +NEWCLOAK=%hhd + +BRONCORANKS=%hhd + +NEWARMYGROWTH=%hhd + + If NEWARMYGROWTH=0 and POPCHOICE=0 then Bronco-like army growth is +enabled. + +WARPDECEL=%hhd + + A zero value means that ships instantly decelerate from maxwarp to +maximpulse when the user chooses an impulse speed. Otherwise, a +deceleration is required, during which weapons are still inoperative. +Afterburners can be used to decelerate more quickly, but watch your +etem. + +AFFECTSHIPTIMERSOUTSIDET=%hhd + + If this setting is non-zero then ship timers will be affected by the +destruction of a ship even outside of tournament mode. The default +value is 0 for league play. + +DURABLESCOUTING=%hhd + + If this setting is non-zero then a scouted planet is up-to-date +until taken from you by the enemy (bronco emulation). Zero is +paradise style. + +FACILITYGROWTH=%hhd + + If non-zero then facilities grow from surface properties. + +FIREDURINGWARPPREP=%hhd + + If non-zero then you are allowed to fire during the warp preparation +period. + +FIREDURINGWARP=%hhd + + If non-zero then you are allowed to fire while warp drive is engaged. + +FIREWHILEDOCKED=%hhd + + If non-zero then you can fire while docked to a base. + +WARPPREPSTYLE=%hhd + + If 0 then tractors (and pressors) do not affect warp preparation. +If 1 then they will cause an abort if the ship is being tractored at +the end of warp prep. If 2 then the ship will be unable to enter warp +until the tractors are disengaged. If 3 then a tractor will abort +warp prep at ANY time. If 4 then a tractor beam suspends the +preparation countdown. + +CLOAKDURINGWARPPREP=%hhd + + If non-zero then you are allowed to cloak during warp preparation. + +CLOAKWHILEWARPING=%hhd + + If non-zero then you are allowed to cloak while warp drive is engaged. + +ORBITDIRPROB=%f + + Probability that you will orbit the planet clockwise. + +PLANETSINPLAY=%d + + The maximum number of planets that can belong to teams in play. +3rd-race and independent planets don't count. + +BEAMLASTARMIES=%d + + If non-zero then you can beam up the last armies from the last +planet (surrender). + +TIMEOUTS=%d + + Number of timeouts allowed in a league game (NYI). + +REGULATIONMINUTES=%d + + Number of minutes in regulation league play. + +OVERTIMEMINUTES=%d + + Number of minutes in overtime league play (NYI). + +PING_PERIOD=%d +PING_ILOSS_INTERVAL=%d +PING_GHOSTBUST=%d +PING_GHOSTBUST_INTERVAL=%d + + Some goop about ping packets. + +VARIABLE_WARP=%d + + If non-zero then players can alter their warp speed. + +WARPPREP_SUSPENDABLE=%d + + If non-zero then warp preparation can be suspended and resumed. + +HELPFULPLANETS=%d + + If nonzero then planets help you refuel and regain etemp capacity. + +NUMWORMPAIRS=%d + + Number of wormhole pairs placed in the galaxy + diff -r 4d6502ffaa5e -r 2719a89505ba etc/clue.letter --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/clue.letter Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,54 @@ +Hello. In the netrek game you were participating the server ejected you +because you failed to pass a cluecheck. The Cluecheck is a simple thing +which the server sends to your message board, requesting a reply. It is +done because reading and responding to messages is such an important +aspect of the game. When players do not read and respond to messages it +is not only frustrating to those who do, but annoying as well. Therefore +the server will prompt you with a message somewhere during the first +30 minutes of the game, which may look something like: + +******************************************************************************* +***! Cluecheck !**! Cluecheck !**! Cluecheck !**! Cluecheck !**! Cluecheck !*** + Send yourself: "cluecheck impulse" + Answer within 5 minutes or be ejected from the game. +******************************************************************************* + +The 'cluephrase' is the word after "cluecheck", and it does change each time. +Incase you do not know how to send a message to yourself, the following +has been included in this mail message (from pippin's MOTD): + + Messages + -------- + + Messages are the root to playing in Netrek. The game is designed to use a + high element of teamwork. You _CAN_ survive without working as a team, but + those who learn to work together using the "buddy" system usually stomp + across the galaxy. All communication between players uses the message + system. + + + There are several 'boards' to the messages system. The main board + is the ALL board. Any message sent to this will be seen by everybody. + Following the ALL boards are the team boards, the GOD board, and lastly + the personal board. To send message to any board, place the cursor in a + message window. To specify the board use any of the following keys: + + 'A' -> ALL board 'F' -> FED board + 'R' -> ROM board 'K' -> KLI board + 'O' -> ORI board 'G' -> GOD board (these are logged) + + Any lowercase number/character relative to a players connection is used + as a reference for that player's personal board (i.e. player F4 would be + a FED on connection 4). + + NOTE: Because using the message board is so important the server will + send a Cluecheck to each player. Simply reply as it requests to avoid + getting ejected from the game. You have 5 minutes to reply so do not + panic. Keep in mind, the server will not run a cluecheck on you + when you immediately log in, but rather at a random later time. + +The message board should open when the client is turned on, and is located +as a small window below your tactical. Incase it is not turned on, it can +be opened with they '?' key (unless your keymap has been changed). + +I hope this message was of service. diff -r 4d6502ffaa5e -r 2719a89505ba etc/cluephrases --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/cluephrases Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,36 @@ +Tactics +DOOSH +bomb +ogg +scum +stoneage +scout +taxi +buttorp +flee +planet +star +warp +impulse +repair +shipyard +fuel +arable +metal +standard +thin +tainted +toxic +phaser +plasma +missile +fighter +tractor +ketchup +base +hive +dilithium +phaser +torp +photon +pressor diff -r 4d6502ffaa5e -r 2719a89505ba etc/conf.hours --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/conf.hours Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,10 @@ +NETREK TIME CHECK FILE 0 = closed 1 = open + 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +SUN 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +MON 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +TUE 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +WED 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +THU 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +FRI 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +SAT 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 diff -r 4d6502ffaa5e -r 2719a89505ba etc/conf.netrekdir --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/conf.netrekdir Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,1 @@ +/usr/local/lib/paradise/ diff -r 4d6502ffaa5e -r 2719a89505ba etc/conf.pics --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/conf.pics Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,4 @@ +pics/enterprise.xbm +200 120 0 +pics/info.xbm +60 210 2 diff -r 4d6502ffaa5e -r 2719a89505ba etc/conf.pics.ds9 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/conf.pics.ds9 Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,4 @@ +pics/ds9.xbm +120 120 0 +pics/info.xbm +60 210 3 diff -r 4d6502ffaa5e -r 2719a89505ba etc/conf.sysdef --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/conf.sysdef Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,42 @@ +TOURN=2 +SHIPS=SC,DD,BB,CA,AS,SB,JS,FR,WB,PT,UT,CV +WEAPONS=PLASMA,TRACTOR,MISSILE,FIGHTER +PLKILLS=1 +MSKILLS=1 +HIDDEN=1 +MAXLOAD=5.0 +CONFIRM=0 +UDP=1 +WARPDECEL=0 +GALAXYGENERATOR=1 +FIREDURINGWARPPREP=1 +PLANETSINPLAY=19 +ORBITDIRPROB=0.50 +TESTERS=14 +POPSCHEME=1 +POPCHOICE=1 +POPSPEED%=28 +VARIABLE_WARP=1 +WARPPREP_SUSPENDABLE=1 +IMPROVED_TRACKING=MISSILE +CLUECHECK=25 +CLUEDELAY=216000 +CLUETIME=300 +CLUESOURCE=2 +SUN_EFFECT=PHOTON,PLASMA,MISSILE,FIGHTER +NOPREGAMEBEAMUP=1 +GAMESTARTNUKE=0 +NOTTIMEOUT=10 +NEBULA_EFFECT=PHOTON,PLASMA,MISSILE,FIGHTER +NUMNEBULA=3 +NEBULADENSITY=240 +NEBULASUBCLOUDS=2 +NUMASTEROID=3 +ASTEROIDTHICKNESS=1.0 +ASTEROIDDENSITY=60 +ASTEROIDRADIUS=12 +ASTEROIDTHICKVAR=3.0 +ASTEROIDDENSVAR=40 +ASTEROIDRADVAR=8 +FIREDURINGWARP=1 + diff -r 4d6502ffaa5e -r 2719a89505ba etc/conf.sysdef.deepspace --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/conf.sysdef.deepspace Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,98 @@ +TOURN=1 +SHIPS=SC,DD,BB,CA,CL,AS,SB,FR,WB,PT,UT,CV +WEAPONS=PLASMA,TRACTOR,MISSILE,FIGHTER +EROSION=.04 +PLKILLS=1 +MSKILLS=.5 +HIDDEN=1 +MAXLOAD=5.0 +WARPDRIVE=0 +AFTERBURNERS=0 +CONFIRM=0 +UDP=1 +MINUPDDELAY=10000 +WARPDECEL=0 +NUMWORMPAIRS=3 +GALAXYGENERATOR=2 +FIREDURINGWARPPREP=0 +PLANETSINPLAY=99 +PLANUPDSPD=1 +ORBITDIRPROB=1 +TESTERS=1 +POPSCHEME=1 +POPCHOICE=1 +POPSPEED%=9 +VARIABLE_WARP=0 +WARPPREP_SUSPENDABLE=1 +IMPROVED_TRACKING=MISSILE,PHOTON +CLUECHECK=25 +CLUEDELAY=216000 +CLUETIME=300 +CLUESOURCE=2 +SUN_EFFECT=PHOTON,PLASMA,MISSILE,FIGHTER +ASTEROID_EFFECT=IMPULSE,PHOTON,PLASMA,MISSILE,FIGHTER +NUMASTEROID=9 +ASTEROIDTHICKNESS=1.0 +ASTEROIDDENSITY=50 +ASTEROIDRADIUS=12 +ASTEROIDTHICKVAR=0.5 +ASTEROIDDENSVAR=25 +ASTEROIDRADVAR=6 +NOPREGAMEBEAMUP=0 +GAMESTARTNUKE=1 +NOTTIMEOUT=10 +HELPFULPLANETS=0 +BRONCOSHIPVALS=1 +SHIP=0 +SC torp.speed 15 +end +SHIP=1 +DD torp.speed 13 +end +SHIP=2 +CA torp.speed 12 +end +SHIP=3 +BB torp.speed 12 +end +SHIP=4 +AS torp.speed 15 +end +SHIP=5 +SB maxarmies 25 +SB rank 0 +SB torp.speed 14 +SB numdefn 0 +SB timer 5 +SB imp.maxspeed 2 +end +SHIP=6 +AT maxarmies 99 +end +SHIP=7 +JS maxarmies 0 +end +SHIP=8 +FR torp.speed 12 +end +SHIP=9 +WB maxarmies 0 +WB rank 0 +WB numdefn 0 +SB imp.maxspeed 2 +end +SHIP=10 +CL torp.speed 12 +end +SHIP=11 +CV rank 0 +CV torp.speed 12 +end +SHIP=12 +UT rank 0 +end +SHIP=13 +PT rank 0 +PT torp.speed 14 +PT missile.count 2 +end diff -r 4d6502ffaa5e -r 2719a89505ba etc/db.global Binary file etc/db.global has changed diff -r 4d6502ffaa5e -r 2719a89505ba etc/db.players Binary file etc/db.players has changed diff -r 4d6502ffaa5e -r 2719a89505ba etc/motd --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/motd Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,349 @@ + + + +This file is etc/motd + + + + + + + + + + + + + + + + + + + help files further into the motd + + + Admin: me + + + + + + + +mymachine.world is a Sparc 10 with 32 Megs ram running Solaris (SunOS 5.3) + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b + + + + + + + + + + + + + Help on ANY aspect of paradise is available via WWW access: + http://www.cis.ufl.edu/~thoth/paradise + + You can ftp new clients from both: + + ftp://ftp.cis.ufl.edu:/pub/netrek.paradise/ntparadise.[version].[system].gz + ftp://ftp.reed.edu:/mirrors/netrek.paradise/ntparadise.[version].[system].gz + + + + + + + + + + + + + + + + + + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b + + +Planets +------- + +Planets are the core of the game. Defense of a planet is important. However, +different planets have different values depending upon their attributes. To +find out the attributes type 'i' (the Info key) while the mouse is on the +planet. You will see a window similar to: + + Name + + The planet's Name + + Owner + + Which team owns the planet (Black + and White Monitors use this). + + Armies + + How many armies are on that planet. + You must always have at least 3 armies + on a planet, or you take a risk of loosing it to a revolution. Any + armies above 4 show up on the map. + + Resources + + Resources are current variables to the planet which CAN and do change + through the play of the game. Resources are linked with a surface + attribute (srfc). For an attribute to appear the surface must be + available on the planet. Resouces can be destroyed by continual + bombing of a planet, after excess armies have been destroyed. All + Resources which can appear are: + + + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b + + + RPR: Repair Station. These will raise the repair rate of your ship + if you orbit the planet and enter repair mode (repair mode is + entered through the 'R' key). Repair Stations require Metal + deposits on a planet ('M'). + FUEL: Fuel Station. Fuel Stations quickly refuel the ship (rather + than waiting for the recharge). Fuel Stations require + Dylithium deposits ('D'). + AGRI: Agricultural planets. This is somewhat of a misleading name. + An AGRI planet will boost army production (when in reality + the planets which would boost army production would be metro + planets). Agricultural planets require Arable Land ('A'). + SHPYD: The Shipyard. Shipyards are entrance points for players. + A Shipyard cannot appear unless a Repair Station is available. + Shipyards, as Repair Stations, require Metal deposits on the + planet ('M'). + NOTE: Player entry is figured by taking first the most valuble + Shipyard, or, if no Shipyards are available, it is the + most valuble planet. Armies and resources are taken + into consideration when figuring the most valuble planet. + _If you refit on a planet it becomes your home port_, and + you appear there until the Shipyard is destroyed or you + refit elsewhere. + + + Atmospheres + + The Atmosphere of a planet effects the Army production rate. The + best Atmosphere to have is a Standard Atmosphere. Toxic Atmospheres + are the lest favorable, and can actually destroy armies after a certain + number of them exist. Atmospheres are: + + STND (Standard), THIN (Thin), TNTD (Tainted), and TOXC (Toxic) + + + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b + + + + Surface + + The Surface of a planet defines what Resources can be developed upon + it. If a surface type does not exist, that relative Resource can + never be developed there. Surface types are: + + D = Dilithium deposits (Fuel--usually poisons the atmosphere to Toxic) + M = Metal deposits (Repair/Shipyard) + A = Arable land (AGRI) + + Time + + The time since your team last recieved an update on the planet. Planets + do not instantly update, your team must make a physical effort to get + updates. To do this each ship has a scaner. Due to the fragility and + expense of the equipment scanner ranges for war vehicles are rather + limited, usually not extending past their shields, with the exception + of scouts who have a much larger increased range (Bases also have a larger + scanner). + + NOTE: Scouting is _EXTREMELY_ important! Enemies can take planets and + your team can be completely unaware of it. Have one roving scout AT + LEAST every 5 minutes. If you wonder which planets have been scouted + lately, toggle the galactic map until there are solid, grayed, and + empty planets. This is the scout display. Solid planets represent + those which information is so old it is obviously unreliable. Open + planets represent those where the information is generally reliable. + + Visit + + Visit represents which teams have gotten information on that planet, at + some point in the game. + + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b +Movement +-------- + +There are 3 different engines available on most ships, which in return +provide 3 different speed types. They are Impulse, Warp and +Afterburners. + + Impulse + + Impulse is the speed used while in regular combat. It is suggested + that you dogfight at slightly lower than normal cruising speed to + give you greater maneuverability and higher fuel recharge. + + Impulse speeds are regulated by the 0-1 keys as well as ^number (for + speeds higher than 9). The Greater and Less than signs will adjust + impulse speed by one poing relatively. + + Warp + + Warp is a set rate for each ship. It is a quick way of getting + somewhere without intense fuel consumption and engine temp. + + Warp is actually figured in two segments. There is the initialize + time, where you wait at a low idle speed while the warp coils + build up energy, followed by the actual transport period. While + in either stages of Warp a ship cannot fire nor cloak. + + Warp is initialized with '-'. Warp engagement can be suspended + in the initialization stage with '^-' (control minus) and engaged + after a pause with the same key ('^-'). + + While in warp initialization a tractor or pressor will disrupt + the process, causing a ship to drop into impulse speeds. + + NOTE: Warp is not transwarp, please do not call it such. + + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b + Afterburners + + Afterburners can be extremely handy when in a dogfight, however they + require a high level of skill to use without burning up a ships + engines. Afterburners are engaged with the ` key and disengaged + by initiating any Impulse speed. + +Messages +-------- + +Messages are the root to playing in Netrek. The game is designed to use a +high element of teamwork. You _CAN_ survive without working as a team, but +those who learn to work together using the "buddy" system usually stomp +across the galaxy. All communication between players uses the message +system. + +There are several 'boards' to the messages system. The main board +is the ALL board. Any message sent to this will be seen by everybody. +Following the ALL boards are the team boards, the GOD board, and lastly +the personal board. To send message to any board, place the cursor in a +message window. To specify the board use any of the following keys: + + 'A' -> ALL board 'F' -> FED board + 'R' -> ROM board 'K' -> KLI board + 'O' -> ORI board 'G' -> GOD board (these are logged) + +Any lowercase number/character relative to a players connection is used +as a reference for that player's personal board (i.e. player F4 would be +a FED on connection 4). + + NOTE: Because using the message board is so important the server will + send a Cluecheck to each player. Simply reply as it requests to avoid + getting ejected from the game. You have 5 minutes to reply so do not + panic. Keep in mind, the server will not run a cluecheck on you + when you immediately log in, but rather at a random later time. + + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b + + + + + + + + + Lingo + + Once you begin reading messages you will see lots of terms which + may seem unfamiliar. This is a quick overview of the most common: + + OGG: to attack or suicide a specific person (ie: OGG 4! means to kill + player 4 using every means possible (suicide if you must)) + + ++ means that the player is carrying armies (ie: 4++) + + STONEAGE: to bomb EVERYTHING off a planet, including ALL the resources. + + Planet references are usually done with: : (ie: Cla:Sol) + + Player location are said as: @: (ie: 4@Cla:Sol) + + SCUM: somebody who does 1 thing above all else, often equated with + planet scumming (taking planets with fervor). + + + + + + + + + + + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b + + + + + + +Ramblings +--------- + + * The idea of the game is to conquer the other race. Taking + planets on the periphery which are nowhere NEAR the frontline is simply + a waste of time, and is considered 'scummy' and 'twinkish'. + + * If somebody does something which frustrates the hell out of you, rather + than getting pissed and quitting, study how they do it, and try to repeat + the same maneuver on them. + + * Paradise (NetrekII) is not Netrek + + * Netrek is not Startrek (nor is it Starfleet battles (not the comp game)) + + * the rule of attrition: In paradise EVERYTHING will wear down after a + while. All you have to do is keep the heat on. IF the enemy is placing + the heat on you, do NOT take a defensive position and try to dig trenches, + it wont work! Take the offensive immediately, get in their faces, bomb + their planets, SCREW THEM! Only by doing this can you win. + + * The buddy system is the key to stomping across the galaxy, work as a + team. + + + + + + + + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b diff -r 4d6502ffaa5e -r 2719a89505ba etc/motd.deepspace --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/motd.deepspace Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,388 @@ + + ###### ####### ####### ###### + # # # # # # + # # # # # # + # # ##### ##### ###### + # # # # # + # # # # # +###### ####### ####### # + + ##### ###### # ##### ####### +# # # # # # # # # +# # # # # # # + ##### ###### # # # ##### + # # ####### # # +# # # # # # # # + ##### # # # ##### ####### + + Pixmap removed awhile to check that + DEC OSF/1 client croaks with an FPE + on pixmap + + + + + + + + + + + + Admin: Kearsarge + +deepspace.pnetrek.org is an SGI Indigo2 with 64Mb of memory + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b + + General Info: + + - This is NOT a 'paradise'-style server with warp, but rather a + server built to return to a style of game that has more depth + that the typical warp-capable universe. If you're expecting a + real ParadiseII server, you're out of luck (and sympathy :) ) here. + + The Galaxy and Rules: + + - This server currently uses a 125k x 125k grid for the galaxy. For + comparison, 'bronco'-style galaxies use a 100k x 100k grid, while + the arch-typical ParadiseII server uses 200k x 200k. Thus the + galaxy is 50% larger than a bronco galaxy, rather than the 4x + larger of a standard ParadiseII server. If you're using a standard + paradise client you will get the smaller galactic smushed up against + the upper left corner of the galactic window; sorry, but the client + is broken. If you can/want to build your own client with a galactic + width fix you're welcome to, since this server doesn't require RSA + authentication. I've got a patch if you want it. + + - Awright, no kills to carry is gone. The usual bronco kill/army + ratios are now in effect. + + + + - Taking in mind a comment from GRACCHUS, torp speeds have been + bumped down somewhat (they were bronco standard but I don't + much trust the SGI compiler to do everything right :) ) as + they were too devastating. Helpful fueling has been removed + as well. Helpful fueling should probably be restricted to planets + you own, rather that including neutral planets as well. Comments? + + - Popspeed has been lowered some, to make armies more scarce. + + + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b + + - _Some_ of the stupid 'Torps come out of your ass' bug has been + fixed by reordering some server->client update data, but there's + still something nasty going on so torps tend to wiggle around + a bit on the display. Just turn shortpackets off unless you + REALLY REALLY need them. Note that your torps look FINE on + everyone elses display, just your display is fucked up 8) + Soon, soon. + + - Please tell me if that bitmap up there is too dense.... :) + + - I think RCDs work now. Give 'em a try. I'm not sure how one is + supposed to add a macro key for specifying the nearest star yet... + it might be a client thing. + + - We're using bronco ship values for all ships, which should + include the bronco det radius. I'm not totally convinced I + should use fuelexplosions yet; the jury is still out. + + - You can run 10 updates/sec if you want to, regardless of + wether you're a base or a ship. + + - Torps hurt own is default. We'll see about changing it. + + - DETDIST is 1800 vice paradise standard of 1750 or bronco + of 1700. + + + + + + + + + + + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b + +Planets +------- + +Planets are the core of the game. Defense of a planet is important. However, +different planets have different values depending upon their attributes. To +find out the attributes type 'i' (the Info key) while the mouse is on the +planet. You will see a window similar to: + + Name + + The planet's Name + + Owner + + Which team owns the planet (Black + and White Monitors use this). + + Armies + + How many armies are on that planet. + You must always have at least 3 armies + on a planet, or you take a risk of loosing it to a revolution. Any + armies above 4 show up on the map. + + Resources + + Resources are current variables to the planet which CAN and do change + through the play of the game. Resources are linked with a surface + attribute (srfc). For an attribute to appear the surface must be + available on the planet. Resouces can be destroyed by continual + bombing of a planet, after excess armies have been destroyed. All + Resources which can appear are: + + + + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b + + + RPR: Repair Station. These will raise the repair rate of your ship + if you orbit the planet and enter repair mode (repair mode is + entered through the 'R' key). Repair Stations require Metal + deposits on a planet ('M'). + FUEL: Fuel Station. Fuel Stations quickly refuel the ship (rather + than waiting for the recharge). Fuel Stations require + Dylithium deposits ('D'). + AGRI: Agricultural planets. This is somewhat of a misleading name. + An AGRI planet will boost army production (when in reality + the planets which would boost army production would be metro + planets). Agricultural planets require Arable Land ('A'). + SHPYD: The Shipyard. Shipyards are entrance points for players. + A Shipyard cannot appear unless a Repair Station is available. + Shipyards, as Repair Stations, require Metal deposits on the + planet ('M'). + NOTE: Player entry is figured by taking first the most valuble + Shipyard, or, if no Shipyards are available, it is the + most valuble planet. Armies and resources are taken + into consideration when figuring the most valuble planet. + _If you refit on a planet it becomes your home port_, and + you appear there until the Shipyard is destroyed or you + refit elsewhere. + + + Atmospheres + + The Atmosphere of a planet effects the Army production rate. The + best Atmosphere to have is a Standard Atmosphere. Toxic Atmospheres + are the lest favorable, and can actually destroy armies after a certain + number of them exist. Atmospheres are: + + STND (Standard), THIN (Thin), TNTD (Tainted), and TOXC (Toxic) + + + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b + + + + Surface + + The Surface of a planet defines what Resources can be developed upon + it. If a surface type does not exist, that relative Resource can + never be developed there. Surface types are: + + D = Dilithium deposits (Fuel--usually poisons the atmosphere to Toxic) + M = Metal deposits (Repair/Shipyard) + A = Arable land (AGRI) + + Time + + The time since your team last recieved an update on the planet. Planets + do not instantly update, your team must make a physical effort to get + updates. To do this each ship has a scaner. Due to the fragility and + expense of the equipment scanner ranges for war vehicles are rather + limited, usually not extending past their shields, with the exception + of scouts who have a much larger increased range (Bases also have a larger + scanner). + + NOTE: Scouting is _EXTREMELY_ important! Enemies can take planets and + your team can be completely unaware of it. Have one roving scout AT + LEAST every 5 minutes. If you wonder which planets have been scouted + lately, toggle the galactic map until there are solid, grayed, and + empty planets. This is the scout display. Solid planets represent + those which information is so old it is obviously unreliable. Open + planets represent those where the information is generally reliable. + + Visit + + Visit represents which teams have gotten information on that planet, at + some point in the game. + + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b +Movement +-------- + +There are 2 different engines available on most ships, which in return +provide 2 different speed types. They are Impulse and Afterburners. + + Impulse + + Impulse is the speed used while in regular combat. It is suggested + that you dogfight at slightly lower than normal cruising speed to + give you greater maneuverability and higher fuel recharge. + + Impulse speeds are regulated by the 0-1 keys as well as ^number (for + speeds higher than 9). The Greater and Less than signs will adjust + impulse speed by one poing relatively. + + Afterburners + + Afterburners can be extremely handy when in a dogfight, however they + require a high level of skill to use without burning up a ships + engines. Afterburners are engaged with the ` key and disengaged + by initiating any Impulse speed. + + + + + + + + + + + + + + + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b + +Messages +-------- + +Messages are the root to playing in Netrek. The game is designed to use a +high element of teamwork. You _CAN_ survive without working as a team, but +those who learn to work together using the "buddy" system usually stomp +across the galaxy. All communication between players uses the message +system. + +There are several 'boards' to the messages system. The main board +is the ALL board. Any message sent to this will be seen by everybody. +Following the ALL boards are the team boards, the GOD board, and lastly +the personal board. To send message to any board, place the cursor in a +message window. To specify the board use any of the following keys: + + 'A' -> ALL board 'F' -> FED board + 'R' -> ROM board 'K' -> KLI board + 'O' -> ORI board 'G' -> GOD board (these are logged) + +Any lowercase number/character relative to a players connection is used +as a reference for that player's personal board (i.e. player F4 would be +a FED on connection 4). + + NOTE: Because using the message board is so important the server will + send a Cluecheck to each player. Simply reply as it requests to avoid + getting ejected from the game. You have 5 minutes to reply so do not + panic. Keep in mind, the server will not run a cluecheck on you + when you immediately log in, but rather at a random later time. + + + + + + + + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b + + + + + + + + + Lingo + + Once you begin reading messages you will see lots of terms which + may seem unfamiliar. This is a quick overview of the most common: + + OGG: to attack or suicide a specific person (ie: OGG 4! means to kill + player 4 using every means possible (suicide if you must)) + + ++ means that the player is carrying armies (ie: 4++) + + STONEAGE: to bomb EVERYTHING off a planet, including ALL the resources. + + Planet references are usually done with: : (ie: Cla:Sol) + + Player location are said as: @: (ie: 4@Cla:Sol) + + SCUM: somebody who does 1 thing above all else, often equated with + planet scumming (taking planets with fervor). + + + + + + + + + + + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b + + + + + + +Ramblings +--------- + + * The idea of the game is to conquer the other race. Taking + planets on the periphery which are nowhere NEAR the frontline is simply + a waste of time, and is considered 'scummy' and 'twinkish'. + + * If somebody does something which frustrates the hell out of you, rather + than getting pissed and quitting, study how they do it, and try to repeat + the same maneuver on them. + + * Paradise (NetrekII) is not Netrek + + * Netrek is not Startrek (nor is it Starfleet battles (not the comp game)) + + * the rule of attrition: In paradise EVERYTHING will wear down after a + while. All you have to do is keep the heat on. IF the enemy is placing + the heat on you, do NOT take a defensive position and try to dig trenches, + it wont work! Take the offensive immediately, get in their faces, bomb + their planets, SCREW THEM! Only by doing this can you win. + + * The buddy system is the key to stomping across the galaxy, work as a + team. + + + + + + + + +-=[*More*]=[ hit 'f' to page forward, 'b' to page backwards ]==============- + @@b diff -r 4d6502ffaa5e -r 2719a89505ba etc/planets diff -r 4d6502ffaa5e -r 2719a89505ba etc/rsa.keys diff -r 4d6502ffaa5e -r 2719a89505ba etc/setup.conf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/setup.conf Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,7 @@ +sed "s:^#@@LIBS@:LIBS=-lmp -lm:g" src/Makefile.in > /tmp/a$$.setup +sed "s:^#@@CC@:CC=gcc:g" /tmp/a$$.setup > /tmp/$$.setup +sed "s:^#@@CDEBUGFLAGS@:CDEBUGFLAGS=-O2 -s:g" /tmp/$$.setup > /tmp/a$$.setup +sed "s:^#@@RSA@:RSA=:g" /tmp/a$$.setup > /tmp/$$.setup +sed "s:^#@@AUTHOBJS@:AUTHOBJS=:g" /tmp/$$.setup > /tmp/a$$.setup +sed "s:^#@@CCOPTIONS@:CCOPTIONS=-DFreeBSD -DHAVE_RAND48 :g" /tmp/a$$.setup > /tmp/$$.setup +echo $$ diff -r 4d6502ffaa5e -r 2719a89505ba logs/conquer --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/logs/conquer Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,104 @@ + +Conquer! Fri Aug 15 12:10:35 1997 + + The galaxy has been conquered by Kearsarge and the Federation!!!! + The Federation: + Kearsarge (F0) 20 planets 172 armies 5 resources 5 dooshes + The Romulans: + GRACCHUS (R1) 11 planets 114 armies 4 resources 0 dooshes + + +Conquer! Wed Aug 20 20:20:20 1997 + + The galaxy has been conquered by Zombie Bunny and the Romulans!!!! + The Romulans: + Zombie Bunny (R3) 30 planets 185 armies 1 resources 21 dooshes + The Federation: + + +Conquer! Sun Aug 31 10:35:30 1997 + + The galaxy has been conquered by fo and the Klingons!!!! + The Klingons: + fo (K0) 4 planets 81 armies 2 resources 0 dooshes + The Federation: + + +Conquer! Tue Sep 2 18:12:56 1997 + + The galaxy has been conquered by Eos and the Romulans!!!! + The Romulans: + Eos (R1) 5 planets 81 armies 0 resources 0 dooshes + The Orions: + Kearsarge (O3) 2 planets 19 armies 0 resources 2 dooshes + Bill (O2) 0 planets 3 armies 6 resources 2 dooshes + + +Conquer! Fri Sep 5 17:04:55 1997 + + The galaxy has been conquered by loko and the Klingons!!!! + The Klingons: + loko (K2) 7 planets 95 armies 2 resources 0 dooshes + The Romulans: + + +Conquer! Mon Sep 15 13:53:48 1997 + + The galaxy has been conquered by guest and the Federation!!!! + The Federation: + guest (F2) 6 planets 88 armies 4 resources 0 dooshes + The Romulans: + + +Conquer! Sun Sep 21 19:47:56 1997 + + The galaxy has been conquered by MrSelfDestruct and the Klingons!!!! + The Klingons: + MrSelfDestruct (K1) 11 planets 117 armies 0 resources 0 dooshes + The Federation: + + +Conquer! Mon Sep 22 15:37:39 1997 + + The galaxy has been conquered by MrSelfDestruct and the Klingons!!!! + The Klingons: + MrSelfDestruct (K1) 30 planets 247 armies 1 resources 0 dooshes + guest (K2) 1 planets 7 armies 0 resources 0 dooshes + The Romulans: + guest (R3) 0 planets 47 armies 0 resources 0 dooshes + + +Conquer! Mon Sep 22 15:57:28 1997 + + The galaxy has been conquered by guest and the Romulans!!!! + The Romulans: + Barak (R3) 4 planets 49 armies 0 resources 0 dooshes + guest (R2) 2 planets 35 armies 0 resources 0 dooshes + The Klingons: + + +Conquer! Fri Sep 26 20:02:21 1997 + + The galaxy has been conquered by geoffrey and the Romulans!!!! + The Romulans: + geoffrey (R0) 8 planets 114 armies 5 resources 0 dooshes + The Federation: + + +Conquer! Thu Oct 2 13:46:48 1997 + + The galaxy has been conquered by and the Orions!!!! + The Orions: + Flanders (O7) 12 planets 74 armies 2 resources 2 dooshes + jace (Oa) 5 planets 61 armies 0 resources 0 dooshes + The Romulans: + lothar (R1) 4 planets 71 armies 3 resources 4 dooshes + + +Conquer! Fri Oct 3 10:29:35 1997 + + The galaxy has been conquered by Kearsarge and the Federation!!!! + The Federation: + Kearsarge (F0) 12 planets 148 armies 3 resources 0 dooshes + The Klingons: + diff -r 4d6502ffaa5e -r 2719a89505ba logs/daemonII.pid --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/logs/daemonII.pid Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,1 @@ +20818 \ No newline at end of file diff -r 4d6502ffaa5e -r 2719a89505ba logs/god.log --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/logs/god.log Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,3 @@ +Zombie Bunny says: i think they are taking faster than me +Zombie Bunny says: why do you keep clearing my stats? 8) +Rado says: O0 Ping: 230 av., 21 stdv., 6% loss diff -r 4d6502ffaa5e -r 2719a89505ba logs/listen.pid --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/logs/listen.pid Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,1 @@ +20814 \ No newline at end of file diff -r 4d6502ffaa5e -r 2719a89505ba logs/startup.log --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/logs/startup.log Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,13 @@ +Netrek Server Startup at Sun Nov 30 15:57:18 CST 1997 by darius +NETREKDIR=/home/darius/projects/server-2.4p10A/ +PORT=2592 +PLPORT=2591 +listen: started at Sun Nov 30 15:57:18 1997 on port 2591. +listen: started at Sun Nov 30 15:57:18 1997 on port 2592. +listen: connect: localhost.rd.net [Sun Nov 30 15:57:20 1997][0] +Starting daemon... +Daemon says 'hello!' +error stealing metal planet. Too few! +Daemon: Caught signal 8 +listenlisten(terminate): killed. [Sun Nov 30 15:57:36 1997] +(terminate): killed. [Sun Nov 30 15:57:36 1997] diff -r 4d6502ffaa5e -r 2719a89505ba pics/ds9.xbm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pics/ds9.xbm Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,2137 @@ +#define ds9_width 640 +#define ds9_height 400 +static char ds9_bits[] = { + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x7f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfc,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd, + 0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfe,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x07,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xd7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xdd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xf8,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfe,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x0f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x0f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x2f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe9,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1a,0xfe, + 0xff,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xfe,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xf5,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x5f,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfd,0xff,0xff,0x7f,0xfe, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf, + 0xfe,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xbf,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf8,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x97,0xfe,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5e,0xff,0xff,0xff,0xaf, + 0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe, + 0x00,0xf0,0xff,0xff,0x17,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x03,0x02,0x00,0xe0,0xff,0xff,0x53,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0xf8,0xff,0xff,0x2e, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00, + 0x80,0xff,0xff,0xff,0x99,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf8, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0x00,0x00,0xe0,0xff,0xff,0xff,0x86,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0xfc,0xff,0xff,0xff,0xac, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe5,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x40, + 0xfe,0xff,0xff,0xff,0x95,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x0f,0x00,0x00,0xfe,0xff,0xff,0xff,0xce,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x10,0x10,0xfe,0xff,0xff,0xff,0xca, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x41, + 0xff,0xff,0xff,0x7f,0xd3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f, + 0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x01,0x01,0xa4,0xff,0xff,0xff,0x7f,0xeb,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x7f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0xd0,0xff,0xff,0xff,0x7f,0xd3, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf8,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x40,0xfe, + 0xff,0xff,0xff,0x7f,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x00,0x90,0xfe,0xff,0xff,0xff,0xbf,0xe2,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x40,0x82,0xff,0xff,0xff,0xff,0x3f,0xed, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0xa8,0xff, + 0xff,0xff,0xff,0xbf,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x3f,0x10,0xe0,0xff,0xff,0xff,0xff,0xbf,0xea,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x80,0xfa,0xff,0xff,0xff,0xff,0xbf,0xe0, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xfe,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x20,0xfa,0xff, + 0xff,0xff,0xff,0xdf,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x3f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x07,0x84,0xfc,0xff,0xff,0xff,0xff,0x3f,0xe4,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x10,0xff,0xff,0xff,0xff,0xff,0x5f,0xf1, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x43,0x69,0xff,0xff, + 0xff,0xff,0xff,0xaf,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x11,0x94,0xff,0xff,0xff,0xff,0xff,0xaf,0xf4,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x01,0xaa,0xff,0xff,0xff,0xff,0xff,0x57,0xf2, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x40,0xd7,0xff,0xff, + 0xff,0xff,0xff,0x03,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x3f,0x80,0xe6,0xff,0xff,0xff,0xff,0xff,0xab,0xf2,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x3f,0xa8,0xf9,0xff,0xff,0xff,0xff,0xff,0x03,0xf0, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xfe,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xc2,0xf5,0xff,0xff, + 0xff,0xff,0xff,0x27,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x3f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x1f,0xb0,0xfa,0xff,0xff,0xff,0xff,0xff,0x3f,0xf9,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x0f,0x60,0xfa,0xff,0xff,0xff,0xff,0xff,0x7b,0xf2, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xaa,0xfd,0xff,0xff, + 0xff,0xff,0xff,0x4f,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x03,0x30,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0xf9,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x81,0x54,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xfc, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0xbd,0xff,0xff,0xff, + 0xff,0xff,0xff,0x27,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x40,0xca,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xfc,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xc0,0xec,0xff,0xff,0xff,0xff,0xff,0xff,0x27,0xfd, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x10,0xe6,0xff,0xff,0xff, + 0xff,0xff,0xff,0x27,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0x40,0xeb,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0xfd,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x3f,0xd4,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0x3b,0xfe, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xa0,0xfa,0xff,0xff,0xff, + 0xff,0xff,0xff,0xb3,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f, + 0x72,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0x2d,0xfd,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x8f,0x54,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0x50,0xfe, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x52,0xfd,0xff,0xff,0xff, + 0xff,0xff,0x7f,0x04,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xe3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x87, + 0x61,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x49,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x43,0xb9,0xfe,0xff,0xff,0xff,0xff,0xff,0x7f,0x10,0xfd, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x58,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xab,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x48, + 0xda,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x35,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0x20,0xad,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdd,0xfc, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x60,0xee,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x95,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x40, + 0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3b,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0x98,0xea,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9a,0xfe, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x88,0xea,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x39,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x88, + 0xeb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x55,0xfc,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x1f,0xd5,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9a,0xfe, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe1, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x80,0xf9,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x58,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xc3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0xfa, + 0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x15,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x87,0x64,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5a,0xfc, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8b, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0x53,0xfd,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x18,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x75, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4a,0xfc,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xff,0xff,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x83,0xea,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x1d,0xfc, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0xba,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0x48,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x7f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x7b, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2a,0xf9,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfe,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x80,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0c,0xf2, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xdd,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0x4b,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x90,0xef, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x0e,0xf5,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0x44,0xad,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0xe4, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xa4,0xd7,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x3f,0x22,0xe4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x86,0xef, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x88,0xe9,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x1b,0xd7,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x4a,0xda, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xe3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x86,0xf5,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0x12,0xd2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x2d,0xfd, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x09,0xc2,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x0f,0xa5,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x44,0x94, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x4e,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xbf,0x0a,0xa4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x46,0xa9,0xfa, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x54,0x29,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x01,0xdd,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x08,0x53, + 0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xa1,0x5e,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x3f,0x55,0x46,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x83,0xae,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x0a,0x25,0xf8,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xa1,0xad,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x41,0x2e, + 0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xa1,0xea,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x3f,0x2a,0x4a,0xf6,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe9,0xdf,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x00,0x5a,0xe4,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfe,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x91,0xae,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x4a,0x94, + 0xc4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0x70,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xbf,0x20,0x12,0x21,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xd4,0xed,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x04,0x64,0x0a,0xfe,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x7f,0xf4,0xaf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x91,0xf2, + 0x24,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0x7f,0xaa,0xfd,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x3f,0x24,0xa4,0x24,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xd4,0xd7,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x08,0xe4,0xc8,0xf8,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x3f,0x7d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x92,0xc8, + 0x11,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xf6,0xef,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xbf,0x08,0xaa,0x12,0xc2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbb,0xcc,0xfb,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x42,0x54,0xa7,0xc4,0xff,0xff,0xff, + 0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x1f,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x14,0x48, + 0x9d,0x19,0xb4,0xaa,0x12,0x48,0x12,0x3a,0x08,0xa1,0x68,0xff,0xf9,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x0e,0xf4,0xf5,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0x51,0xb1,0x0c,0x22,0x48,0x54,0xa5,0x68,0xe5,0xff,0x5f,0x50, + 0x97,0x00,0xd1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x5d,0xef,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x14,0x88,0x79,0xe6,0x85,0xb5,0xdb, + 0xfa,0xff,0xff,0x2a,0xa0,0xff,0xbf,0x51,0x40,0xfd,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x0b,0xf4,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x21,0x75, + 0xf7,0x89,0x20,0x4a,0xb5,0xd0,0xff,0xff,0xdf,0x88,0xff,0xff,0xf8,0x2f,0x80, + 0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xe3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x47,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0x0a,0xd0,0x04,0x14,0x48,0x54,0x2d,0xf9,0xd5,0xfe,0xff,0x4c, + 0xd9,0xff,0xfc,0xff,0x2f,0x84,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x07,0xf4,0xf5,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x21,0x21,0x28,0x01,0x0a,0x7c,0x49, + 0xf0,0x03,0xfa,0xff,0x6d,0x22,0xd0,0xf8,0xff,0xff,0x1f,0x80,0xfe,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xff,0xff,0xff, + 0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xa3,0xfa,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x48,0x12, + 0x43,0x48,0x03,0xfc,0xd1,0x40,0xb8,0xfe,0xff,0x28,0x24,0x44,0xf4,0xff,0xff, + 0xff,0x17,0x60,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0x03,0xdc,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x85,0x44,0x08,0x10,0x20,0xac,0xff,0xfd,0xff,0xff,0xbf,0xf4, + 0xfa,0x69,0xb4,0xff,0xfe,0xff,0xff,0x5f,0x00,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x23,0xf5,0xff,0xff, + 0xff,0xff,0x03,0xfc,0xff,0xff,0x0b,0xd5,0x49,0x08,0x89,0x08,0x08,0xfd,0x7f, + 0xfd,0xff,0xff,0xff,0xf9,0xff,0x7f,0x4c,0x11,0xff,0xff,0xff,0xff,0x4b,0xd0, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xbf,0x13,0xfd,0xfe,0xff,0xff,0x1f,0x20,0xf8,0xff,0xdb,0x2b,0x00,0x20,0x51, + 0x42,0x04,0x00,0x48,0x0f,0x48,0x38,0xff,0xff,0xfc,0xff,0x7f,0xfe,0x86,0x7f, + 0xf0,0xff,0xff,0xf0,0x01,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xa1,0xfa,0xff,0xff,0xff,0x00,0x02,0xfd,0xff, + 0x7f,0xaf,0x07,0x09,0x0a,0x88,0x10,0x00,0x7c,0x2f,0xc0,0xbd,0xff,0xff,0xfd, + 0xb6,0x3f,0xfe,0xff,0x7f,0xf4,0xff,0xff,0x0f,0x02,0x41,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0x11,0xf6,0xff,0xff, + 0x07,0x20,0x21,0xfa,0xdf,0xff,0xff,0x7d,0xa2,0x85,0x12,0x04,0x00,0xfe,0xff, + 0x82,0xff,0xff,0xff,0xff,0x2f,0x3f,0xbe,0xff,0xff,0x97,0x07,0xfd,0x7f,0xf0, + 0x17,0xd4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0x49,0x7e,0xff,0x7f,0x00,0x00,0xc8,0xff,0x77,0xfb,0xff,0x77,0x40,0x49, + 0x00,0x10,0xe8,0xff,0xff,0x06,0xff,0xff,0xff,0xff,0xff,0x1f,0x80,0xff,0xff, + 0xff,0xef,0xfb,0x3f,0xc0,0x7f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xdf,0x21,0xf7,0xff,0x05,0x08,0xa4,0xc2,0xf5,0xfb, + 0xfd,0xff,0x7f,0x44,0x04,0x34,0x05,0xfa,0xff,0x7f,0x07,0xff,0xff,0xff,0xff, + 0xff,0x3f,0xfe,0x0f,0xe8,0xff,0xff,0xff,0x7f,0xe2,0xff,0x17,0xe8,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0x89,0xde,0x05,0x00, + 0xa0,0x02,0xf0,0xfe,0xff,0xbf,0xfb,0x0f,0x11,0x91,0xfb,0xbf,0xfd,0xff,0xff, + 0x0f,0xfc,0xfe,0xff,0xff,0xff,0x1f,0xfe,0xff,0xff,0xaf,0xee,0xff,0xff,0xff, + 0xff,0xff,0x0f,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xa4,0xf6,0x28,0x40,0x15,0x10,0x7c,0xfe,0xff,0xff,0xff,0x7f,0x22,0x67, + 0xf0,0x5f,0xfc,0xff,0x7e,0x00,0xf8,0xf3,0xff,0xff,0xff,0x1f,0xfe,0xff,0xff, + 0x7f,0xd5,0xff,0xff,0xff,0xf5,0xff,0x7f,0xc0,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xdf,0xd4,0xbe,0x85,0x12,0x00,0x00,0xff,0xd8,0xff, + 0xff,0xff,0xff,0x0f,0x9c,0xc2,0x2f,0xd9,0xd5,0x2a,0x11,0x58,0xeb,0xff,0xff, + 0xff,0x0f,0xfe,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xc1,0xff,0xff,0x07,0xfe, + 0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xa0,0xee,0x00,0x20, + 0x01,0xc9,0xff,0xd1,0x93,0xee,0xff,0xff,0xff,0x28,0x15,0x01,0x02,0x00,0x4b, + 0x02,0x80,0x02,0x00,0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xe0,0xfe,0xff,0x3f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xfe,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0xaa,0xfd,0x00,0x04,0x20,0xa0,0xcf,0xf7,0x7b,0xc5,0xfb,0x7f,0xfe,0x63, + 0x89,0x0e,0x08,0x00,0xfe,0x3f,0x00,0x00,0x00,0x80,0xfe,0x17,0xfe,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x07,0xf4,0xff,0xff,0x81,0xff,0xff,0xff,0xff,0xff, + 0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7b,0x54,0x5d,0x20,0x00,0x04,0x41,0xff,0xe7,0xff, + 0xff,0x95,0xff,0xff,0x8f,0xd2,0x9f,0xfa,0xdf,0xff,0x05,0x49,0x04,0x00,0xa0, + 0xfb,0x0b,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xfe,0xff,0x0f, + 0xfc,0xff,0xff,0xff,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x7f,0xd2,0xf7,0x04,0x00, + 0x00,0xd0,0xff,0xcf,0xff,0xff,0x7f,0xef,0xd7,0x5f,0xc4,0x3f,0x68,0xfb,0xbf, + 0x00,0xf2,0xbf,0xa2,0xff,0xff,0x0b,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xdf, + 0xff,0xff,0xf0,0xff,0x7f,0xe0,0xff,0xff,0xff,0xff,0xff,0x3f,0xfc,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xbf,0x54,0x7f,0x01,0x21,0xa0,0xff,0xff,0x1f,0xff,0xff,0xff,0x7f,0x17,0xe0, + 0x13,0x38,0x08,0x3c,0xfe,0x9f,0x80,0xf3,0xff,0x7f,0x00,0x00,0xe0,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5b,0xff,0xff,0x0f,0xfa,0xff,0xff,0xff, + 0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x3d,0x55,0x7b,0x40,0x00,0xe2,0xff,0xff,0x3f,0xff, + 0xff,0xff,0x7f,0x40,0x82,0x01,0x78,0x00,0x3e,0xfe,0x97,0x0e,0xf0,0xff,0xff, + 0x17,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x7f,0xba,0xff, + 0x7f,0xf0,0xff,0xff,0xff,0xff,0x3f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xee,0xfd,0x08,0x80, + 0xfc,0xff,0xff,0x7f,0xfe,0xff,0xff,0x6b,0x54,0x09,0x02,0x74,0xea,0x2f,0xf6, + 0x28,0x2f,0xe0,0xff,0xff,0xff,0x0a,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x4d,0xff,0x7a,0xfd,0xff,0xc2,0xff,0xff,0xff,0xff,0x3f,0xfd,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd, + 0x1b,0xb9,0xff,0x02,0x50,0xfb,0xff,0xff,0xff,0xfc,0xff,0x7f,0xf0,0x02,0x02, + 0x20,0xf9,0xf4,0x03,0xd8,0x03,0x92,0xd1,0xff,0xff,0xff,0x3f,0x00,0x80,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xf8,0xff,0x0f,0xfc,0xff,0xff, + 0xff,0x7f,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0xe8,0xbe,0x74,0xdb,0x00,0xe8,0xff,0xff,0xff,0xff,0xfc, + 0xff,0x1f,0x80,0x22,0x00,0x08,0x74,0xff,0x0b,0x70,0x56,0xff,0xef,0xff,0xff, + 0xff,0xff,0x01,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9, + 0xff,0x17,0xf8,0xff,0xff,0xff,0x3f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xfc,0x8f,0xd4,0xbf,0xa0,0xff, + 0xff,0xff,0xff,0xff,0xfd,0xff,0x87,0x0a,0x01,0x80,0xd4,0x85,0xfc,0x11,0xf8, + 0xad,0xff,0x1f,0xff,0xff,0xfe,0xfb,0xe2,0x00,0xf8,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xfd,0xfd,0xfe,0x73,0x82,0xff,0xff,0xff,0x7f,0xf8,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0xfc, + 0x1b,0xb4,0xfd,0x00,0xfd,0xff,0xff,0xff,0xff,0xf9,0xff,0x41,0x54,0x00,0x08, + 0xfa,0x17,0xf9,0xb5,0x7c,0x03,0xcb,0xa0,0xff,0xff,0xff,0xff,0x2f,0x20,0xc0, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xec,0xbf,0xf8,0xa3,0x82,0xff,0xff, + 0xff,0x7f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x3f,0x00,0x7e,0xdf,0xdb,0xdf,0xe4,0xff,0xff,0xff,0xff,0xff,0xfb, + 0x5f,0x02,0x00,0x00,0x45,0xff,0x7f,0xff,0x49,0xde,0x87,0x7f,0x40,0xf8,0xff, + 0xff,0xff,0xff,0x01,0x01,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfd, + 0xc5,0x1f,0x16,0xe0,0xff,0xff,0x7f,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0xfa,0xcf,0xf4,0xff,0xfc,0xff, + 0xff,0xff,0xff,0xff,0xf3,0x97,0x34,0x00,0x40,0xe0,0xff,0xff,0xff,0x3f,0xf0, + 0x1f,0xea,0x00,0xe0,0xff,0xff,0xff,0xff,0x17,0x04,0xf0,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xf1,0xd7,0xff,0x6f,0x80,0xff,0xff,0xff,0xf0,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x40,0xfe, + 0xd6,0xad,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0x03,0x02,0x00,0x10,0xf0, + 0xff,0xff,0xbf,0xbf,0xea,0x9f,0xc0,0xc0,0x80,0xfa,0xff,0xff,0xfe,0x4f,0x20, + 0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xdf,0xff,0xff,0x81,0xff, + 0xff,0xff,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x01,0x00,0xbe,0xcf,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3, + 0x29,0x40,0x00,0x00,0xfc,0xff,0xff,0x3f,0xfc,0xff,0xff,0x80,0x80,0x01,0xba, + 0xff,0xff,0xff,0x7f,0x01,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf, + 0xfe,0xff,0xeb,0x17,0xff,0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x02,0x20,0xfe,0xd7,0xed,0xfb,0xff,0xff, + 0xff,0xff,0xff,0xff,0xf3,0x40,0x01,0x00,0x04,0xea,0xff,0xff,0x3f,0x74,0xff, + 0x5f,0xc1,0xc0,0x92,0xfa,0xff,0xef,0xff,0xbf,0x00,0x80,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xfb,0x07,0xff,0xff,0xff,0xf8,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x08,0xff, + 0x4e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x43,0x15,0x08,0x00,0x00,0xfd, + 0xff,0xfe,0x7f,0xc8,0xff,0xf7,0x80,0x00,0x01,0x80,0xff,0xff,0xfa,0xff,0x15, + 0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf2,0xff,0xf7,0x3f,0xfe, + 0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x5f,0x00,0x01,0xbf,0x27,0xf4,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0x1b, + 0xa0,0x00,0x00,0x80,0x0e,0xfc,0xff,0xff,0xeb,0x48,0x19,0x80,0x00,0x02,0xc8, + 0x7f,0xfd,0xfd,0xff,0x03,0x11,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xef,0xff,0xff,0x7f,0xfe,0xff,0xff,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x20,0x80,0xf7,0x57,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xb7,0x0f,0x00,0x80,0xd0,0x5b,0xfd,0xff,0xff,0x7f,0x2b, + 0x99,0xc0,0x01,0x10,0x02,0xfd,0xef,0xef,0xff,0x47,0x44,0xfc,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x08,0xc0,0xff, + 0x8f,0xed,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x17,0x14,0x80,0x08,0x1a,0x88, + 0xff,0xff,0xff,0xff,0xff,0xdf,0x90,0x07,0x80,0x40,0xf8,0x3f,0xfe,0xfe,0x17, + 0x12,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xff,0xff, + 0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0x00,0x00,0xc0,0xdf,0x5f,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa3, + 0x00,0x00,0x00,0xa3,0xd2,0xff,0xff,0xff,0xff,0xff,0x1f,0x04,0x03,0x00,0x80, + 0xf0,0x3f,0xac,0xfb,0x2f,0x00,0xe4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0x04,0x02,0xe0,0xff,0x1f,0xfd,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x07,0x05,0x20,0xa0,0x14,0xe8,0xff,0xff,0xff,0xff,0xff, + 0xff,0x81,0x40,0x00,0x00,0xe2,0x3f,0x5e,0xff,0x3f,0x00,0xe0,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xe1,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x95,0x00,0xe8,0xff, + 0x5f,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x43,0x2d,0x00,0x61,0x48,0xf2, + 0xff,0xff,0xff,0xff,0xff,0xbf,0x00,0x08,0x08,0x00,0xe2,0x3f,0xfc,0xbf,0x5f, + 0x42,0xd0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff, + 0xff,0xff,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x9f,0x13,0x00,0xe1,0xfe,0x1f,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb, + 0xbf,0x10,0xc8,0x92,0xf0,0xff,0xff,0xff,0xff,0xf7,0x16,0x50,0x00,0x02,0x10, + 0x02,0x7a,0xfe,0xef,0x0f,0x10,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x4f,0x05,0x40,0xe0,0xff,0xae,0xfa,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xdd,0xff,0x84,0xff,0x2b,0xfa,0xff,0xff,0xff,0xff,0x89, + 0x02,0x73,0x00,0x00,0x40,0x02,0x00,0x68,0x5f,0x07,0x02,0x88,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe1,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa7,0x00,0x00,0xe0,0xff, + 0x0f,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa0,0xfe,0xf1,0xff,0xff,0xf2, + 0xff,0xff,0xff,0xff,0xff,0xff,0x63,0x12,0x40,0x00,0x51,0x00,0x00,0xf9,0xff, + 0xab,0xc2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff, + 0xff,0xff,0xe9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf, + 0x48,0x00,0x00,0xff,0xff,0x5f,0xef,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xf0,0xcb,0x00,0x00,0x00, + 0x00,0x42,0x04,0xfe,0xbf,0x4c,0x03,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x0f,0x92,0x12,0xa0,0xff,0xb7,0x8f,0xfe,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xf7,0xc7,0x80,0x00,0xc0,0x20,0x00,0x51,0xff,0x03,0x00,0x2c,0x00,0xf5,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe1,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x17,0x85,0x05,0xc1,0xff,0x6f, + 0xaf,0xf6,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7, + 0xff,0xff,0xff,0xff,0xff,0x97,0xa7,0x20,0x00,0xe0,0x98,0x04,0xea,0xff,0x17, + 0x02,0xf4,0x00,0x00,0x50,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff, + 0xff,0xff,0xe3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03, + 0xb9,0x02,0xf8,0xff,0xdf,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x20,0xed,0xff,0xff,0xff,0xff,0xff,0x2d,0x8f,0x05,0x12,0xf0, + 0xf0,0x2b,0xf8,0xff,0x45,0x00,0xc4,0xc1,0x02,0x01,0x90,0xee,0xff,0xff,0xff, + 0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xe3,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x01,0x8a,0x83,0xfe,0xff,0xaf,0x9f,0xf5,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xf6,0xff,0xff,0xff,0xff,0xff, + 0x6b,0xc7,0xa3,0x00,0xd4,0xf8,0xff,0xfb,0xff,0x5a,0x09,0x84,0xc7,0x7f,0x92, + 0x06,0x00,0xba,0xff,0xff,0xff,0xff,0xff,0xfa,0xff,0xff,0xff,0xe3,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x21,0x90,0x11,0xfe,0xff,0xdf, + 0xaf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xbf,0xfd, + 0xff,0xff,0xff,0xff,0xff,0x2d,0xaf,0x13,0x40,0xf2,0xf8,0xff,0xff,0x3f,0x40, + 0x42,0xc0,0x2f,0xfe,0x6f,0x11,0x00,0x00,0xc0,0xfe,0xff,0xff,0x02,0xf8,0xff, + 0xff,0xff,0x83,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0xb0,0x8b,0xfe,0xff,0xaf,0xcf,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f, + 0xff,0xff,0xff,0x25,0xf8,0xff,0xff,0xff,0xff,0xff,0x7f,0x1f,0x03,0x00,0xf0, + 0xf9,0xff,0xff,0x2f,0x80,0x3e,0x82,0x1f,0x80,0xfe,0xaf,0x4a,0x00,0x00,0x40, + 0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0x23,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x3f,0x48,0x28,0x81,0xff,0xdf,0xbe,0x9b,0xed,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x3f,0x2a,0xf5,0xff,0xa8,0xf4,0xff,0xff,0xff,0xff,0xff, + 0xff,0x2f,0x88,0x02,0xf8,0xfc,0xbd,0xff,0x00,0x51,0xc0,0x01,0x00,0x00,0x00, + 0xb0,0xff,0x7f,0x02,0x1e,0x03,0x00,0xfe,0xff,0xff,0xff,0xff,0x03,0xf8,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x90,0x9b,0xff,0xff,0xbb, + 0xef,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x6a,0x87,0xff,0x29,0xfd, + 0xff,0xff,0x5f,0x44,0x2f,0x41,0x01,0x20,0x20,0xf8,0xbc,0xdf,0x3f,0x00,0x04, + 0x00,0x00,0x00,0x00,0x01,0x00,0xa0,0xff,0xb7,0x1e,0x02,0xe0,0xff,0xff,0xff, + 0xff,0xff,0x03,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x10, + 0xb4,0x87,0xff,0xff,0xdf,0x8f,0xed,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xd7,0xa9,0xff,0x6d,0xf5,0xff,0x8f,0xbf,0x2b,0x40,0x14,0x08,0x15,0x00,0x7c, + 0xff,0xff,0x25,0xa0,0x00,0x00,0x60,0x05,0x0a,0x94,0x14,0x00,0xd0,0x7d,0x1e, + 0x43,0xff,0xff,0xff,0xff,0xff,0xff,0x13,0xf8,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0x02,0xa0,0xc1,0xff,0xff,0xbf,0x1f,0xf5,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x09,0x54,0xf8,0x27,0x05,0x00,0x0f,0xfe,0xff,0xff, + 0xff,0xff,0x4b,0x00,0xfa,0xfe,0x76,0x03,0x02,0x02,0x20,0xe4,0xbf,0x44,0x02, + 0x00,0x24,0x02,0xc0,0x1e,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0xe2,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0x80,0x50,0xf2,0xff,0xdf,0xfd, + 0x4f,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x0a,0xc4,0x6a,0x49, + 0x10,0xa7,0xfe,0xff,0xff,0xff,0xef,0x27,0x44,0xfc,0xff,0xbf,0x80,0x90,0x00, + 0x02,0xf0,0xff,0x17,0x41,0x10,0x01,0x16,0x40,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x03,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x83,0x05, + 0x70,0xe8,0xff,0xff,0xff,0xdb,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x44,0x81,0x40,0x15,0x49,0x27,0xf7,0xeb,0x6b,0xf7,0xa2,0x0f,0x11,0xfc, + 0xff,0x0f,0x2a,0x02,0x80,0x00,0xf8,0xef,0xff,0x95,0x02,0x00,0x04,0xc5,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x80,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x03,0x07,0xd9,0xff,0xff,0xff,0xff,0x1f,0xfe,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x11,0x04,0x14,0x7f,0x02,0x81,0x5f,0xfd,0xfe, + 0xed,0xff,0x7d,0x02,0xfe,0xff,0x05,0x40,0x00,0x00,0x00,0xf4,0xfd,0x5f,0xff, + 0x65,0xa9,0x40,0xe0,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0x03,0xfe, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x04,0xfe,0xff,0xff,0xdf,0xfe, + 0xdf,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x09,0x00,0xc0, + 0x6f,0xe0,0xff,0xdf,0xff,0xff,0x7f,0x00,0xe9,0xdf,0x02,0xf8,0x11,0x00,0x00, + 0x80,0xfe,0xdf,0xfd,0x7f,0xfb,0x57,0x7d,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x03,0xbf,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x04, + 0xff,0xff,0xff,0xff,0xf7,0x9f,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x3f,0x40,0xa9,0x0e,0xf0,0xff,0xff,0xbf,0xff,0xff,0x81,0xfc,0x3f, + 0x00,0x00,0x01,0x00,0x02,0x20,0xff,0xff,0xff,0xff,0xf5,0xfd,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x13,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x21,0x4d,0xff,0xff,0xff,0xff,0xff,0x5f,0xed,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x20,0x0a,0x0d,0xf4,0xff,0xef,0xfd, + 0x7f,0xeb,0x43,0xb0,0x7f,0x14,0x01,0x01,0x20,0x80,0x80,0x7f,0x73,0xdd,0xfb, + 0x7f,0x2b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x27,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x08,0x84,0xff,0xff,0xff,0xef,0xff, + 0x5f,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xbf,0x05,0x49, + 0x00,0xf0,0xff,0xdf,0x7e,0xeb,0xae,0x25,0x44,0x7f,0x42,0x00,0x02,0x41,0x20, + 0xc2,0xff,0x55,0x70,0xfd,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x23,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x40,0xec, + 0xff,0xff,0xff,0xff,0xff,0x1f,0xec,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xdf,0x3f,0x90,0x50,0x01,0xd4,0xad,0xac,0x11,0x47,0x08,0x21,0x77, + 0x08,0x02,0x22,0x04,0x00,0xd0,0xff,0x7f,0xc0,0x6f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x63,0xfa,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0x00,0xee,0xff,0xff,0xff,0xff,0xfb,0x5f,0xed,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,0xff,0x07,0xa8,0x04,0x00,0x82,0x00, + 0xad,0x0e,0x20,0x40,0x7f,0xa4,0x00,0x18,0x00,0x04,0xf2,0xff,0xff,0xa7,0x8a, + 0xee,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x47,0xa8,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x20,0xfc,0xff,0xff,0xff,0xff,0xff, + 0x5f,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf8,0xff,0x1f, + 0x14,0x92,0x0a,0x21,0xaa,0x7f,0x1f,0x09,0x14,0xf7,0x04,0xa0,0x80,0x20,0x11, + 0xfc,0xff,0xff,0xff,0x0f,0xbe,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xc3,0xe8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x08,0x79, + 0xf8,0xff,0xff,0xef,0xfd,0xb7,0xe8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xef,0xfd,0x44,0x14,0x49,0x00,0xac,0xe0,0xff,0x7f, + 0x80,0x0a,0x72,0x8a,0xc0,0xff,0xff,0xff,0xff,0xff,0xeb,0x81,0x6e,0xf5,0xff, + 0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x10,0x7c,0xfc,0xff,0xff,0x7f,0xff,0x3f,0xfa,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,0x9f,0xbf,0x57,0x55,0x5d, + 0xbe,0x7c,0xff,0xff,0x7f,0xbd,0xb5,0xb2,0xca,0xf2,0xff,0xff,0xff,0xff,0xff, + 0xff,0xef,0xfe,0x55,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0xd0,0xfe, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x13,0x7d,0xf8,0xff,0xff,0xf7,0xff, + 0x9f,0xdc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7, + 0xdf,0xff,0x7f,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xef,0x6e,0x75,0x02,0xfc, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xa9,0xf2,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x03,0x80,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5a,0xfe, + 0xff,0xff,0xff,0x7f,0xff,0x3f,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xaf,0xfa,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x7f,0x51,0x41,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xd6,0xee, + 0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0xd0,0xfd,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0x1b,0xfe,0xfe,0xff,0xff,0xf7,0xfd,0x3f,0xd9,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xb7,0xfe,0x7f,0xff,0xff, + 0x7f,0x7f,0xff,0xff,0xff,0xff,0xbf,0xb2,0x04,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x55,0xf5,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0x03,0xa0,0xfd, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbe,0xfe,0xff,0xff,0xff,0xff,0xff, + 0x37,0xdc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0x95,0x54,0xb5,0xad,0x5a,0xfb,0xff,0xff,0xff,0xff,0x7f,0x99,0xf1,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa5,0xdd,0xfb,0xfe,0xff,0xff,0xff, + 0xff,0xff,0x83,0xe1,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x1e,0xfe, + 0xff,0xff,0xff,0xb7,0xff,0xbf,0xd4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xfb,0xff,0xff,0x7f,0x6b,0x55,0x7a,0xf7,0xff,0xff,0xff,0xff, + 0xff,0x3f,0x59,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x75, + 0xff,0xff,0xef,0xff,0xff,0xff,0xff,0x87,0x03,0xfd,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xf4,0xfe,0xff,0xff,0xff,0xff,0xfd,0x3f,0xf9,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x3f,0xac,0xdc,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xf6,0xef,0x1f,0xfe,0xff,0xff,0xff,0x03,0x8a,0xfe, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xaf,0xf8,0xff,0xff,0xff,0xfb,0xff, + 0x7f,0x9a,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0x7f,0xff, + 0xfd,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xe0,0xff,0xff,0xff, + 0xff,0x7f,0x01,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xe2, + 0xff,0xff,0xff,0xbf,0xfd,0xb7,0xd8,0xff,0xff,0xff,0xff,0xff,0x1f,0xf8,0xff, + 0xff,0xff,0xff,0xff,0xde,0xf2,0xdf,0xff,0xff,0xff,0xff,0xef,0xbf,0x7f,0xfd, + 0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x67,0xea,0x3f,0xff,0xff,0x1f,0x05,0x10,0xf8,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xf2,0xff,0xff,0xff,0xff,0xff,0x7f,0xa2,0xff,0xff,0xff, + 0xff,0xff,0x03,0xe2,0xff,0xff,0xff,0xff,0xff,0xff,0xb7,0xbf,0x6f,0x57,0xdb, + 0xff,0xfb,0xad,0x5b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xd9,0x7f,0xfd,0xff,0xbf,0x41,0x60,0xe0, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0x5f,0xe1,0xff,0xff,0xff,0xff,0x7e, + 0x7f,0xbc,0xff,0xff,0xff,0xff,0x7f,0x8a,0xf4,0xff,0xff,0x8f,0xff,0xff,0xff, + 0x27,0x3a,0x7b,0x5b,0x25,0xfd,0x7e,0x7f,0xbb,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x6a,0xfd,0xd0, + 0xff,0x5f,0x41,0xc1,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xe8, + 0xff,0xff,0xdf,0xf7,0xff,0xef,0xf2,0xff,0xff,0xff,0xff,0x5f,0x05,0x79,0xff, + 0xff,0x81,0xff,0xff,0x7f,0xff,0xaf,0xfb,0xf5,0xff,0x9b,0x5b,0xbc,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xaf,0xf6,0xd7,0xff,0xbf,0x80,0x02,0xc0,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x13,0xe0,0xff,0xff,0xff,0xfd,0xff,0x7f,0xb4,0xff,0xff,0xff, + 0xff,0xb7,0x52,0x0c,0xca,0x7f,0xa1,0xff,0xff,0xff,0xff,0xff,0xde,0xf5,0xf9, + 0x79,0xf7,0xef,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xca,0xbf,0xff,0x6f,0x00,0x4f,0x80, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0x83,0xca,0xff,0xff,0xff,0xff,0xff, + 0xef,0xa8,0xfe,0xff,0xff,0xff,0x54,0x01,0x56,0x73,0x5f,0x88,0xff,0xff,0xff, + 0xff,0xdf,0xba,0xbf,0x26,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,0xff, + 0xff,0x5f,0x01,0x08,0x80,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x12,0xc0, + 0xff,0xff,0xef,0xff,0xbf,0xff,0x60,0xff,0xff,0xff,0x5f,0x81,0xe0,0xd8,0x86, + 0x01,0xe0,0x7f,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xb4,0xef,0xff,0x7f, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x6f,0xff,0xe7,0x53,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0x03,0xc8,0xff,0xff,0xff,0xff,0xff,0xfe,0x15,0xff,0xff,0xff, + 0x7f,0x28,0x58,0x07,0xf5,0x01,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xfd,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0x24,0x10,0x00,0x40, + 0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x86,0x90,0xff,0xff,0xf7,0xff,0xbe, + 0xff,0xb0,0xfe,0xff,0x7f,0x77,0x04,0x96,0x52,0x7a,0x21,0xf0,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xb4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x2a,0x00,0x00,0x10,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x0d,0xc1, + 0xff,0xff,0xff,0xff,0xff,0xef,0x25,0xff,0xff,0x5f,0x58,0xc1,0x65,0x21,0x5d, + 0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xfc,0xe7,0xff,0xff, + 0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x7e,0xff,0x14,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x8d,0xd4,0xff,0xff,0xff,0xfb,0xbf,0xbe,0x61,0xfe,0xff,0xaa, + 0x18,0x60,0xbf,0x96,0x1f,0x04,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0x7f,0xf1, + 0x8f,0x98,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7e,0x0b,0x00,0x00,0x80, + 0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3b,0x91,0xff,0xff,0xff,0xfe,0xff, + 0xff,0x45,0xfe,0xbf,0x55,0x37,0xb4,0x3a,0xe4,0x0b,0x40,0x7f,0xff,0xff,0xbf, + 0xff,0xff,0xff,0xbf,0xbe,0x85,0x90,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff, + 0x7f,0x05,0x00,0x00,0x40,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x6b,0x92, + 0xff,0xff,0xff,0xff,0xde,0xfd,0x53,0xfe,0x57,0x54,0x04,0x4d,0xe7,0xfb,0x84, + 0x00,0x9f,0xff,0xff,0x9f,0xff,0xff,0x7f,0x3f,0x7d,0x80,0x04,0xde,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xf6,0x5e,0x05,0x00,0x00,0x60,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x57,0xd5,0xff,0xff,0xff,0xbf,0x7f,0xbf,0xc3,0x5e,0x91,0x4b, + 0xc7,0xb2,0x88,0x0e,0x29,0xc0,0xef,0xff,0xff,0xaf,0xff,0xff,0x7f,0xca,0xff, + 0x0f,0x00,0xd0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0x01,0x00,0x88,0x04, + 0xff,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x97,0xf9,0xff,0xff,0xfd,0x7f,0xdf, + 0xff,0x93,0xac,0x3a,0xea,0x7c,0x1a,0xf0,0x3f,0x00,0xe8,0xfd,0xff,0xff,0x1f, + 0xff,0xff,0xff,0x9f,0xff,0x9f,0x40,0xc8,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x6b,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x1f,0xfc,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0xa7, + 0xff,0xff,0xef,0xfe,0x7f,0xfb,0xc2,0x54,0xad,0x93,0xc9,0x54,0xdb,0x3b,0x0a, + 0xf0,0xfc,0xff,0xff,0x2f,0xff,0xff,0xff,0xbf,0x7f,0xbf,0x2c,0x8d,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x35,0x00,0x00,0x00,0xa0,0xff,0xff,0xff,0x1f,0xfc, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xbf,0xc6,0xff,0xff,0xdd,0x7f,0xff,0xff,0x83,0x5a,0x9f,0xd6, + 0x2f,0x49,0xed,0xba,0x01,0xf4,0xfe,0xff,0xff,0x4b,0xff,0xff,0xff,0x9f,0x7f, + 0xd7,0x8a,0x0e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2a,0x00,0x00,0x01,0x00, + 0xff,0xff,0xff,0x1f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1a,0xff,0xff,0xff,0xdd,0xff, + 0xbf,0xa6,0xac,0xa6,0x7d,0xcb,0x26,0x53,0x57,0x00,0xf8,0xff,0xff,0xff,0x1e, + 0xff,0xff,0xff,0x9f,0x5f,0x80,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x55,0xed, + 0x16,0x00,0x02,0x00,0x88,0xff,0xff,0xff,0x3f,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x6a, + 0xff,0x7f,0xf7,0xff,0xff,0xff,0x82,0x59,0x3f,0x69,0x5a,0xa9,0x4a,0x1d,0x00, + 0xfe,0xff,0xff,0xff,0x54,0xff,0xff,0xff,0x9f,0x83,0x80,0x10,0x10,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x00,0x80,0x05,0x80,0x00,0x10,0xc0,0xff,0xff,0xff,0x3f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xb5,0xfe,0xff,0xfd,0xfe,0xff,0xbf,0x46,0xf1,0xfa,0xd4, + 0x26,0x55,0x5b,0x05,0x80,0xfe,0xff,0xff,0xff,0x5f,0xff,0xff,0xff,0x9f,0xca, + 0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x05,0xc0,0x05,0x00,0x40,0x01,0x98, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0xf1,0x7f,0xef,0x5f,0xff, + 0xff,0x0f,0x51,0xa5,0xff,0xfc,0x7b,0xd0,0x13,0x20,0xff,0xff,0xff,0xff,0x04, + 0xff,0xff,0xff,0x9f,0x45,0xaa,0x4a,0x02,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x80,0xf4, + 0x00,0x3a,0x3d,0x00,0xe4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f, + 0xfd,0xf7,0xfb,0xfe,0xff,0xfe,0x0f,0xf1,0x5a,0xfd,0xd7,0x79,0xe8,0x80,0x80, + 0xff,0xff,0xff,0x7f,0x50,0xff,0xff,0xff,0xff,0xa3,0xfd,0x00,0x40,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x5f,0x12,0x7f,0x00,0x40,0xe8,0x01,0xf0,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x5f,0xfe,0xff,0xef,0xff,0xff,0xff,0x1d,0xe1,0xb5,0xaa, + 0xfd,0x1c,0x7c,0x08,0xe0,0xff,0xff,0xff,0xff,0x8a,0xfe,0xff,0xff,0xff,0xf7, + 0xff,0x02,0x10,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x41,0xbf,0x0c,0x00,0x00,0x01,0xf1, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0x7f,0xfb,0xbe,0x7f, + 0xff,0x0f,0xc9,0xd7,0xf7,0x7f,0x1d,0xbf,0x02,0xe0,0xff,0xff,0xff,0xff,0x32, + 0xff,0xff,0xff,0xff,0xff,0x05,0x48,0x82,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x0b, + 0x3f,0x00,0x01,0x40,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0xfd,0xef,0xff,0xff,0xff,0x3b,0x92,0x8d,0xfd,0xdf,0xdf,0xaf,0x84,0xf8, + 0xff,0xff,0xff,0xff,0x1a,0xfe,0xff,0xff,0xff,0x5f,0x00,0x11,0xc0,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x91,0x0a,0x7f,0x40,0x21,0x00,0xf8,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0x7d,0xdd,0xff,0xf7,0x3e,0x52,0xcb,0xff, + 0xbf,0xef,0xdf,0x01,0xf8,0xff,0xff,0xff,0xff,0x80,0xfe,0xff,0xff,0xff,0xff, + 0x7f,0x0a,0xc9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x6d,0x40,0xff,0x00,0x00,0x00,0xf9, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0x7f,0xbd,0xd7,0x7f,0xbf, + 0xff,0x3f,0x82,0xd7,0xff,0xff,0xff,0x7f,0x00,0xfc,0xff,0xff,0xff,0xff,0x0a, + 0xfe,0xff,0xff,0xff,0xff,0xff,0x57,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xba,0x80, + 0xff,0x03,0x00,0xa0,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xf6,0xff,0xfd,0xff,0xfd,0xf7,0x40,0xff,0xff,0xff,0xff,0xbf,0xc4,0xff, + 0xff,0xff,0xff,0xff,0x51,0xfc,0xff,0xff,0x6f,0xff,0xdf,0x91,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x8f,0x02,0x00,0xf9,0x3f,0x00,0x28,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xdf,0xff,0xff,0xff,0x7f,0xed,0xfe,0xfe,0xff,0xf7,0xfd,0x50,0xff,0xff, + 0xff,0xff,0x7f,0xd1,0xff,0xff,0xff,0xff,0xff,0x23,0xfe,0xff,0xff,0xff,0x55, + 0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0x09,0x00,0xf4,0x3f,0x20,0x80,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xed,0xdf,0xfb, + 0xfa,0xe7,0x80,0xfe,0xff,0xff,0xff,0xdf,0xf2,0xff,0xff,0xff,0xff,0xff,0x85, + 0xfc,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x54,0x00,0x00, + 0xc0,0xff,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xbf,0x7f,0xfd,0xff,0xef,0xdf,0xa1,0xfc,0xff,0xff,0xff,0x7e,0xfd,0xff, + 0xff,0xff,0xff,0xff,0x23,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x3f,0x1d,0x00,0x00,0xe0,0xf7,0x01,0xc0,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xdf,0x7f,0xed,0xee,0xff,0xfd,0xf5,0x01,0xfe,0xff, + 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2b,0xfc,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0x4b,0x00,0x4b,0xc4,0xff,0x07,0xe5,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xfe,0xfe, + 0xed,0xa7,0xa1,0xfc,0xff,0xff,0xff,0x5e,0xfd,0xff,0xff,0xff,0xff,0xff,0x23, + 0xf9,0xff,0xff,0xff,0xff,0xee,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0x0a,0x00,0x03, + 0xe0,0xff,0x07,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xef,0xff,0xaa,0xef,0xff,0xff,0xdb,0x09,0xfc,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x4b,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xe7,0x05,0x20,0x1f,0xd4,0x7f,0x1f,0xf1,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0x7a,0xff,0xf6,0x6f,0x03,0xf9,0xff, + 0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0x53,0xf9,0xff,0xff,0xff,0xff, + 0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x78,0x82,0x00,0x34,0xe0,0xff,0x5f,0xf9,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xff,0xff,0xff,0xf7, + 0xff,0xd5,0x06,0xf3,0xff,0xff,0xdf,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0x47, + 0xf8,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa7,0x07,0x00,0x94,0xe2, + 0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x80,0xff,0xbf,0xdf,0xff,0xbf,0x57,0x47,0xe6,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x17,0xf0,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0x7f, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x79,0x01,0x00,0x00,0x82,0x81,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x92,0xff,0xff,0x7f,0xf7,0xff,0xb7,0x0e,0xcc,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x47,0xf2,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x1f,0x56,0x50,0x21,0x00,0x58,0x83,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc4,0xff,0xff,0xff,0xff, + 0xf6,0xad,0x1d,0xc8,0xff,0xff,0x7f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0x97, + 0xf4,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x6f,0x0d,0x34,0x08,0x22,0x20, + 0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xf3,0xff,0xff,0xff,0xff,0xdf,0x7f,0x1f,0x80,0xff,0xff,0xf3,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x2f,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe1, + 0x09,0x0e,0x20,0x00,0x15,0x05,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xf6,0xd5,0x3a,0x99,0xff, + 0xfd,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0xf5,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x3f,0xba,0xc2,0x03,0x00,0x20,0x01,0x00,0xfc,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0xbb,0x37,0x80,0xff,0xfd,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8f, + 0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa7,0x1f,0xb0,0x04,0x01,0xc1,0xaa, + 0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xf5,0xea,0xed,0x00,0xfc,0x38,0xfe,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x1f,0xf9,0xff,0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x7a,0x40, + 0xc3,0x40,0x44,0x04,0x00,0x00,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0x9b,0xd3,0x00,0x78, + 0x7c,0xee,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0xe1,0xff,0xff,0xff,0xff, + 0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xe1,0x1d,0xf0,0x25,0x00,0x00,0xae,0x00,0x80,0xe1,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xdf,0xb2,0xb6,0x00,0xd8,0x94,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f, + 0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xb6,0x02,0x05,0x13,0x08,0x00,0x0d,0x04, + 0x00,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0xc9,0xca,0x41,0x50,0x3c,0xfe,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x5f,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x45,0x5d,0xc0,0x2f, + 0x05,0x00,0x22,0x0c,0x00,0x20,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x93,0x55,0x03,0x70, + 0x54,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xe0,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xbf,0xf4,0x02,0x30,0x14,0x00,0x40,0x00,0x45,0x00,0x84,0xfd,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x5f,0xa5,0x06,0xc0,0xf4,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f, + 0xea,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x7f,0xf9,0xff,0xff,0x4b,0x5f,0x10,0x45,0xb8,0x85,0x10,0x00,0x00,0x00, + 0x42,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xab,0xff,0x2a,0x07,0x80,0x68,0xfa,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x1f,0xc2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x02,0xc0,0xff,0xbf,0xfa,0x2d,0xe8,0x47,0x98, + 0x02,0x04,0xa4,0x00,0x40,0xd9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x82,0xf6,0xff,0x8d,0x25, + 0xd0,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xc0,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xbd,0x3d,0x90,0x74, + 0x05,0xc0,0xd7,0x1f,0x27,0x00,0x00,0x01,0x00,0xac,0xfb,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x05,0x9f,0xff,0x4f,0x08,0x54,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f, + 0xc4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe, + 0x47,0xe9,0x89,0x54,0x6b,0x11,0xfe,0xa0,0x3e,0x0d,0x20,0x00,0x00,0x04,0xcf, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x40,0xfd,0xfd,0xff,0x42,0x82,0xfc,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xbf,0x8a,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x6f,0x4b,0x7a,0xee,0x0a,0xa0,0x18,0x8a,0xbe,0x02, + 0x08,0x10,0x00,0x20,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x42,0xff,0xff,0xff,0x1f, + 0x10,0xa0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xa0,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x4f,0xd2,0xef,0x7c,0x41, + 0xfe,0xa0,0xaa,0x3d,0x20,0x00,0x02,0x84,0x88,0xee,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xea,0xff,0xff,0xff,0xff,0x07,0x02,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0x85,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xaf,0xff,0x77,0x00,0xf4,0xff,0xd7,0x98,0x7b,0x08,0x40,0x00,0x00,0x24,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xbf,0x00,0x80,0xfe,0xff, + 0xff,0xff,0xff,0x1f,0x6a,0xa8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x15,0x7f,0x3d,0x56,0xfd,0x92,0x1f,0x8d,0xb2,0x00, + 0x09,0x02,0x40,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x37,0x00,0xc0,0xff,0xff,0xff,0xff,0x43,0x82,0x02,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2b,0x28,0xee,0xf7,0x87,0x2c, + 0x8d,0x7f,0x5c,0x21,0x08,0x00,0x00,0xe4,0xfd,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0x7f,0x00,0x00,0xf4,0xff,0xbf,0xff,0xbf, + 0x26,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0b,0x00,0xd5, + 0x47,0xf1,0xff,0x3f,0x01,0xfe,0xff,0x83,0x0b,0x84,0x80,0x50,0xa5,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0x00, + 0x00,0xf4,0xd7,0xff,0xff,0x0f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x05,0x40,0x51,0x2f,0x40,0xf4,0xff,0xdf,0x44,0xf4,0xff,0x0f,0x02,0x20, + 0x08,0x00,0xfd,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0x7f,0xff,0xff,0xff,0xff, + 0x7f,0xfb,0xff,0xff,0x02,0x20,0x00,0xd0,0xbe,0xf6,0x0f,0xfc,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xbf,0x00,0x60,0x90,0x56,0x00,0xb5,0xf2,0xff,0xbf,0x92, + 0xfc,0x3a,0x3f,0x94,0x08,0x02,0x2a,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0x13,0x00,0x80,0x00,0xa8, + 0xfe,0xfa,0xff,0xff,0xff,0xff,0xff,0xbf,0x02,0x00,0x00,0xa0,0x2e,0x91,0xf6, + 0x3f,0xe5,0xff,0x7f,0x24,0x19,0xf5,0xbf,0x00,0x82,0x20,0xd1,0xff,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x12,0x80,0x08,0x01,0x00,0x00,0x28,0x55,0xd5,0x12,0x00,0x02,0x00,0x08, + 0x90,0x56,0x61,0xad,0xff,0x7f,0xe9,0xff,0xff,0x49,0x32,0x65,0x2e,0x45,0x10, + 0x24,0xf4,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7d,0xff,0xff,0xff,0xff,0x9a,0x43,0x00,0x00,0x00,0x00,0x00,0x40, + 0x00,0x00,0x22,0x00,0x52,0xa7,0xc8,0xff,0xdf,0xff,0xbf,0xee,0xff,0xff,0x65, + 0x70,0x9b,0x84,0x10,0x04,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff, + 0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xfb,0xff,0xff,0xff,0xff,0xff,0x17, + 0x10,0x12,0x08,0x00,0x60,0x00,0x80,0xd6,0xf5,0xf7,0x7d,0xff,0xff,0xaf,0xff, + 0x3f,0xec,0xff,0xff,0x53,0xc5,0xff,0x22,0x02,0x40,0xf1,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xdf,0xff,0xff,0xe7,0xe7,0xbf,0xc0,0xff,0xff,0x07,0x81,0x00,0x91,0xa8,0x5e, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xa5,0xd7,0x3f,0xaa,0xff,0xff,0xae, + 0x14,0x4b,0x04,0x02,0xd0,0xff,0xff,0xef,0xfd,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x6f,0xff,0xfe, + 0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x45,0xff, + 0x2f,0x91,0xff,0xff,0x2f,0x90,0x10,0x52,0x49,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xfd,0xff,0xff, + 0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x3f,0xff,0xfe,0xf9,0xef,0x3f,0xc4,0xff,0xff,0xbd,0x02,0x8a,0x0a,0xbf,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xfd,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xef,0x7f,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0x7e,0xff,0xd8,0xfe,0xbf,0xca,0xff,0xff,0x7f, + 0x44,0x2a,0x4b,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xbb,0xfe,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xbf,0x7e,0xf6,0xf9,0xef, + 0x3f,0xc8,0x7f,0xff,0x7f,0x0a,0x4a,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xef,0xff,0xff,0x7f, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xfd,0xff, + 0x7f,0xf7,0xfe,0xda,0xfe,0x5f,0x9b,0xff,0xff,0xef,0xd2,0x52,0xf5,0xf7,0xfe, + 0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xfd,0xfe,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xdf,0xff,0xdd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xb5,0xf7,0xfe,0xff,0xfe,0xfe,0xfe,0xe6,0x3f,0xc9,0xdf,0xff,0xff, + 0x20,0x80,0xfd,0xda,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7e,0x5b,0xab,0x6d,0xfb,0x7f,0xf7,0x7f, + 0x9f,0x12,0xff,0xff,0xbb,0xbf,0xff,0x97,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xed,0xfe, + 0xff,0x2d,0xad,0xa6,0xee,0x5f,0x25,0xff,0xff,0xff,0xff,0x7f,0xf8,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff, + 0xdf,0xf5,0xff,0xff,0xff,0xff,0xde,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xfa,0xff,0xff,0xde,0xd6,0xf6,0x55,0xda,0x2f,0xa9,0xff,0xff,0xff, + 0xef,0x4a,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xfb, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,0xfd,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0x77,0x77,0x5b,0xa7,0x29, + 0x4a,0xea,0xff,0xff,0xb7,0x09,0xb5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xfe,0xff,0xff,0xff,0xff,0x79,0xdb,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf, + 0xfd,0xdb,0xb6,0x1a,0x45,0xb1,0xff,0xfe,0x7f,0x7d,0xd6,0xfe,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf7,0xff,0xdf, + 0xff,0xff,0xbf,0x50,0xed,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xdf,0x56,0x6b,0xa5,0xa8,0xee,0x56,0xff,0xff,0xb7, + 0xea,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xdf,0xff,0xff,0xef,0xbf,0xff,0xff,0xff,0x7f,0x52,0xe9,0xff,0xff,0xdf,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0x7f,0xb7,0xde,0x5a,0xf5, + 0x3b,0x01,0xff,0xff,0x5b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd, + 0xf7,0xff,0xff,0xbf,0x0b,0xd6,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xde,0xdf,0x7f,0xff,0xff,0xff,0x6b,0x89,0xa7,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xf7,0xb5,0xdb,0xaf,0x5a,0x1d,0xe0,0xff,0xff,0xff,0xab,0x7a,0x80,0xff, + 0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x6e,0xc5,0xb3,0x96,0x36,0xdb,0xff,0xff,0xbf, + 0x5a,0x44,0xef,0xff,0xff,0x2e,0xc2,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0xff,0xff,0xff,0xff, + 0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x4b,0x17,0xf8,0xea,0xff,0xbf,0xac,0x52,0xfd,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0x4b,0x98,0x97,0xf8,0xff,0xff,0xbf,0x49, + 0xd5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xfa,0x00,0x8f,0xf5,0xff, + 0xff,0xff,0x5b,0x40,0x92,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x55,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xfb,0x07,0x01,0xc4,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf, + 0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaa,0xff,0xff,0xff, + 0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0x0a,0xb4,0xda,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfb,0xfe,0xef,0xad,0xdf,0xf5,0xff,0xfd,0xbf,0xd2, + 0xd5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xbf,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x57,0xeb,0xff,0xff,0xff, + 0xde,0x7f,0xff,0xa5,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x96,0xf4,0xff,0x6d,0x75,0xdf,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x7f,0x5f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0x7f,0xfd,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x5f,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xf2,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xf6,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xfb,0xff,0xbf,0xea,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xed,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xbf,0xfb,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xbf,0x9a,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5f,0xed,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0x7f,0xd7,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x7f,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xb6,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0x6f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x5f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xb5,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xfe, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xfb,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xfb,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdd,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xdf,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xe0,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xd5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x83,0xfe,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xd3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xe5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x75,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xfa,0x20,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xd7,0xa6,0xab,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x5f,0x5d,0x20,0x97,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2a,0x49,0xd0,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0x41,0x04,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xaf,0x04,0x80,0xf2,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x92,0xa8,0xf5,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf, + 0x57,0x2b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x6f,0xd5,0xaa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xb7,0xaa,0xf4,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xda, + 0x54,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x57,0xb5,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x57,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xca,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x5f,0xef,0xeb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x59,0xfd,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff}; diff -r 4d6502ffaa5e -r 2719a89505ba pics/enterprise.xbm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pics/enterprise.xbm Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,620 @@ +#define MOTD_enterprise_width 320 +#define MOTD_enterprise_height 231 +static char MOTD_enterprise_bits[] = { + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa0,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xa0,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x40, + 0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x6f,0x77,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0xfe,0xff,0xff,0xff,0xff, + 0xff,0xff,0xef,0xdf,0xfb,0xf7,0xf7,0xfe,0xff,0xfd,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x40,0xee,0xff,0xff,0xff,0xff,0xbf,0x77,0xff,0xfe,0x6f, + 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80, + 0xba,0xff,0xff,0xbe,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xb7,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xfc,0x77,0xf7,0xff,0xff, + 0xfe,0xff,0xfd,0xff,0xff,0xff,0xef,0xfb,0xff,0xee,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0xea,0xff,0xff,0xff,0xff,0xff,0xfe,0xbf,0x77,0xff, + 0xed,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80, + 0xb4,0xff,0xff,0xff,0xff,0xff,0xdb,0xff,0xff,0xfd,0xbf,0xff,0xff,0xff,0xfb, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf4,0xfe,0xff,0xfb,0xff, + 0xfb,0xff,0xf7,0xfe,0xef,0xff,0xff,0xdf,0xfb,0xef,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0xd5,0xff,0xbd,0xff,0xee,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0xe8,0xff,0xff,0xff,0xff,0xef,0xff,0xfe,0xf7,0xff,0xff,0xfe,0xfe,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xd2,0xee,0xff,0xef,0xff, + 0xff,0xff,0xef,0xff,0x7f,0xff,0xfb,0xff,0xbf,0xf7,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0xe8,0xff,0xff,0xff,0xff,0xff,0xf7,0xbf,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0xa4,0xfe,0xfd,0xff,0xff,0xff,0xdf,0xff,0xdf,0xff,0xff,0xff,0xff,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xd0,0xfb,0xf7,0x7f,0xdf, + 0xbf,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0x48,0xdf,0xbf,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd, + 0xff,0xff,0xfb,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0xa4,0xfd,0xff,0xfe,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xfe, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x50,0xff,0xff,0xff,0xff, + 0xff,0xfe,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0xa8,0x6b,0xff,0xff,0xfe,0xff,0xdf,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0x48,0xfd,0xff,0xf7,0xfb,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xa0,0xb6,0xfb,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0x54,0xfb,0xef,0xff,0xff,0xff,0xfd,0xef,0xff,0xff, + 0xf7,0x7f,0xff,0xbb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0x50,0xbd,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x54,0xeb,0x7e,0xff,0x7f, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0xa0,0xfd,0xff,0xff,0xff,0xdd,0xbf,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0xa8,0x6a,0xf7,0xfb,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x44,0xf7,0xff,0xbf,0xfb, + 0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xf7,0xfd,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0x50,0xbd,0xbd,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0xa8,0xd6,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x52,0xfb,0xf6,0xff,0xff, + 0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0xa0,0xdd,0xdf,0xf7,0xef,0xfe,0xff,0xff,0xff,0xff, + 0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0xaa,0x76,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xa4,0xfd,0xfd,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0x50,0xab,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0xaa,0xfd,0xbf,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xa8,0xee,0xfe,0xf7,0xff, + 0xbf,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0xd1,0xba,0xf7,0x7e,0xef,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0x48,0xed,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xa8,0xfb,0xfd,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0xa5,0xb6,0xb7,0xf7,0xbf,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0x54,0xfb,0xff,0x7f,0xfb,0xfe,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xa8,0xdd,0xfe,0xfe,0xff, + 0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0xa8,0xf6,0xef,0xff,0xff,0xf7,0xff,0xff,0xff,0xff, + 0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0xd5,0xde,0xff,0xff,0xff,0x7f,0xff,0xf7,0xdf,0xff,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xa8,0xf5,0xfd,0xee,0xff, + 0xff,0x6d,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0xaa,0x7e,0xdf,0xe7,0xdb,0xee,0xff,0x7f,0xff,0xfe, + 0xff,0xff,0xee,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0x50,0xd7,0xfb,0x63,0xff,0xff,0xff,0xfd,0xfb,0xfb,0xff,0xfd,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xd5,0xfd,0x7f,0xe3,0xff, + 0x7b,0xdb,0xf7,0xef,0xef,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0xaa,0xb6,0xdd,0xc1,0xee,0xff,0xff,0xdf,0xbf,0x7f, + 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0x68,0xff,0xff,0xe3,0xbf,0xff,0xff,0x7f,0xff,0xff,0xf7,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0xb4,0xdb,0x6f,0xa1,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0x52,0xfd,0xfd,0xe1,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0xda,0xef,0xb7,0xd0,0xfb,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xb4,0xba,0xff,0xe0,0xff, + 0xfe,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0xd2,0xff,0xef,0xf0,0xff,0xff,0xff,0xff,0xff,0xff, + 0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80, + 0xaa,0xf6,0xff,0xd0,0xee,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xd8,0x7f,0xfb,0xf0,0xff, + 0xff,0xff,0xff,0xf7,0xfd,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x80,0xaa,0xee,0xdf,0xd8,0xff,0xff,0xff,0xff,0xff,0xef, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0xea,0xfd,0xff,0xf0,0xfe,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x5a,0xbf,0xb5,0xf8,0x77, + 0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x80,0xea,0xf7,0xff,0xd8,0xfd,0xef,0xbe,0xdf,0xff,0xff, + 0xef,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0x54,0xfd,0x5b,0xf0,0xd9,0xfd,0xf7,0x7d,0xff,0x7f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0xea,0xb7,0xff,0xac,0xf8, + 0xbf,0xdf,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0xba,0xfe,0x6f,0xf8,0xf8,0xff,0xfe,0xee,0x6f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, + 0xd5,0xfb,0x7d,0xb4,0xb0,0xfb,0xef,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x40,0x6a,0xbf,0x5f,0x78,0xf8, + 0xef,0xbf,0x7f,0xff,0xf7,0xdd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x01,0x6a,0xdb,0xef,0xb0,0xd1,0xff,0xf6,0xdf,0xfb,0xbf, + 0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01, + 0xb4,0x7f,0xbb,0xb0,0xc0,0xfd,0xdf,0xfb,0xdf,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x41,0xd5,0xea,0x7f,0xd8,0xe0, + 0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x01,0x54,0xff,0xed,0xb0,0x88,0x77,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01, + 0xd5,0xdb,0x7f,0xe8,0xc0,0xff,0xfb,0xed,0xff,0xff,0xdd,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x81,0xb4,0xfe,0x56,0xb8,0x98, + 0xfe,0xbf,0xff,0xf7,0xee,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x01,0xd5,0xeb,0xff,0xf4,0x98,0xdf,0xf7,0x7f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01, + 0xb4,0xbe,0x5b,0xb8,0x18,0x7f,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0xd5,0xfb,0x77,0xe8,0x34, + 0xfd,0x7d,0xff,0xff,0x7f,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x01,0xb4,0xde,0x6e,0xdc,0x38,0xfe,0xef,0xff,0xfd,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01, + 0xd5,0xf7,0x5f,0x74,0x70,0xed,0xff,0xfd,0xf7,0xf7,0xef,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x41,0xb5,0x7a,0x7b,0xb4,0x30, + 0xfc,0xbd,0xff,0xbf,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x03,0xd4,0xdf,0x2f,0x6c,0x20,0xbc,0xf7,0xff,0xff,0xbf, + 0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03, + 0x6b,0x75,0x5b,0xba,0x20,0xfc,0xff,0xde,0xff,0xff,0xf7,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x83,0xb4,0xff,0x2d,0x54,0x00, + 0xf8,0xdf,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x03,0xda,0xda,0x3f,0x7a,0x00,0xb8,0x7d,0xff,0xff,0xb7, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x43, + 0x6b,0x7f,0x2b,0x2e,0x00,0xf4,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0xb4,0xed,0x1d,0x54,0x00, + 0xd8,0xee,0x77,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x43,0xdb,0xfb,0x37,0x3a,0x00,0xf4,0xbf,0xff,0xdd,0xdd, + 0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x83, + 0xec,0xee,0x1e,0x3e,0x00,0xe8,0xfb,0xff,0xff,0x77,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x55,0xbf,0x1b,0x2a,0x00, + 0x68,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x03,0xf5,0xf5,0x1e,0x3d,0x00,0xe8,0xef,0xff,0x77,0xbf, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x43, + 0x5d,0xff,0x9b,0x2e,0x00,0xb0,0x7f,0xb7,0xff,0xf5,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03,0xea,0xdb,0x1f,0x2b,0x00, + 0xc0,0xfb,0xff,0xdf,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x83,0x5a,0x7d,0x15,0x1d,0x00,0x68,0xff,0xff,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x43, + 0xed,0xf7,0x9f,0x2b,0x00,0xa0,0xdf,0xff,0xff,0xed,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x83,0x5a,0x7d,0x0b,0x1d,0x00, + 0x80,0xfd,0xed,0xb7,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x03,0xed,0xef,0x8d,0x2f,0x00,0x80,0xbe,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x43, + 0xb5,0xba,0x0f,0x15,0x00,0x00,0xfb,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x83,0xfa,0xff,0x8a,0x1e,0x00, + 0x00,0xfc,0xff,0xdf,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x07,0x55,0xdb,0x97,0x2b,0x00,0x00,0xee,0xf7,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x87, + 0xed,0xff,0x8d,0x1e,0x00,0x00,0x70,0xdf,0xfb,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0xb5,0x6a,0xc7,0x15,0x00, + 0x00,0xe8,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x87,0xd4,0xbf,0x45,0x17,0x00,0x00,0xa0,0x7f,0xf7,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x47, + 0xad,0xf6,0x4f,0x1b,0x00,0x00,0xa0,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0xd6,0xbd,0x82,0x16,0x00, + 0x00,0x40,0xf7,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x87,0x6a,0xdf,0xc7,0x1d,0x00,0x00,0x00,0x7e,0xfb,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x47, + 0xba,0xf5,0x46,0x0b,0x00,0x00,0x80,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0xd5,0x7e,0xc7,0x1e,0x00, + 0x00,0x00,0xda,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x07,0x6d,0xd7,0x45,0x0b,0x00,0x00,0x00,0xf0,0xde,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07, + 0xb5,0x7d,0xc7,0x15,0x00,0x00,0x00,0xd0,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0xd5,0xdf,0x65,0x1f,0x00, + 0x00,0x00,0xa4,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x47,0x6a,0x75,0xc7,0x0a,0x00,0x00,0x00,0x40,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f, + 0x5d,0xff,0xc5,0x17,0x00,0x00,0x00,0x48,0xfd,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xe5,0xad,0x66,0x0d,0x00, + 0x00,0x00,0x81,0xd6,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x4f,0xba,0xde,0xc3,0x0f,0x00,0x00,0x00,0xa8,0xfa,0xbe, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f, + 0xd5,0xbb,0x66,0x0b,0x00,0x00,0x40,0x42,0xea,0xff,0xfb,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xb4,0xee,0xe3,0x0d,0x00, + 0x00,0x00,0x28,0xb5,0xf7,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x0f,0x53,0x7b,0xa5,0x0f,0x00,0x00,0x00,0x42,0xd5,0xde, + 0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f, + 0xec,0xde,0xe3,0x0d,0x00,0x00,0x20,0xa9,0xaa,0x7f,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xb2,0xed,0x66,0x0f,0x00, + 0x00,0x00,0x44,0x54,0xfd,0xff,0xee,0xf6,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x1f,0xca,0x7b,0xc3,0x0d,0x00,0x00,0x00,0x51,0xd5,0xf6, + 0xfb,0xff,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f, + 0x54,0xdd,0xe5,0x17,0x00,0x00,0x40,0x4a,0x55,0xdb,0xff,0xbf,0xff,0xf7,0xff, + 0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xd5,0x76,0x73,0x2f,0x00, + 0x00,0x88,0xa4,0xaa,0x6d,0xdf,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf, + 0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x1f,0x5a,0xdb,0xe2,0x3d,0x00,0x00,0x00,0x12,0xd5,0xb6, + 0xfd,0xff,0xfb,0xbe,0xfb,0xf7,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xbb,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f, + 0xd4,0xb7,0xe5,0x2f,0x00,0x00,0x40,0x51,0xb5,0xda,0xfe,0xef,0xef,0xff,0xef, + 0xbf,0xbf,0xfb,0xbe,0xff,0xdf,0xbb,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x6a,0x7d,0xe3,0x3f,0x00, + 0x00,0x10,0xaa,0x5a,0x6b,0xd7,0xbf,0xff,0xf7,0x7f,0xff,0xfd,0xbf,0xf7,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x1f,0xb5,0xd7,0xb5,0x3b,0x00,0x00,0x82,0x90,0xaa,0xb5, + 0xfa,0xfe,0xff,0x7f,0xff,0xff,0xef,0xeb,0xff,0xef,0xfe,0xff,0x57,0xfd,0xfe, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f, + 0x54,0x7d,0xf3,0x7f,0x00,0x00,0x48,0xaa,0xda,0xda,0x5f,0xff,0xbf,0xff,0xfd, + 0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xda,0xdf,0xe1,0x2f,0x00, + 0x00,0x10,0x52,0x6d,0x6d,0xea,0xed,0xfd,0xfe,0xef,0xfe,0x7e,0xff,0xff,0xff, + 0xfb,0x7f,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xb7,0x68,0x75,0xf5,0x7d,0x00,0x00,0x80,0x54,0xb5,0xd6, + 0xb6,0xbe,0xff,0xf7,0xff,0xff,0xf7,0xdb,0xbf,0xfb,0xbf,0xf7,0xff,0xff,0x7f, + 0xed,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, + 0x55,0xdf,0xd3,0x2f,0x00,0x00,0x52,0xa2,0x6a,0xbb,0x6d,0xf7,0xff,0xff,0xff, + 0xfb,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf7,0x3f,0xf4,0xb5,0xfa,0x5f,0x00, + 0x00,0x80,0x54,0xbd,0xd5,0xf6,0xba,0xf6,0xbf,0xef,0xdf,0xff,0xff,0xff,0xbf, + 0xff,0xfe,0xee,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xbf,0xdf,0xbf,0xaa,0xfe,0xf3,0x7f,0x00,0x00,0x24,0x52,0xab,0xb6, + 0xad,0xd7,0xdf,0xff,0xbe,0xff,0xbe,0xff,0xff,0xff,0xf6,0xfb,0xbf,0xdf,0xff, + 0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x6e, + 0xd4,0xaf,0xea,0x5e,0x00,0x00,0x40,0xad,0xbd,0xda,0xbb,0xfd,0xfa,0xfe,0xff, + 0xff,0xff,0xf7,0xbe,0xfb,0xdf,0xdf,0xff,0xff,0xff,0xef,0xdf,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x7f,0xef,0xff,0xff,0x3f,0xb5,0xfa,0xf3,0x7f,0x00, + 0x00,0x2a,0xa2,0xca,0x6a,0x6d,0xab,0xb7,0xf7,0xff,0xff,0xfb,0xff,0xff,0xff, + 0xff,0xff,0xfd,0x7f,0xff,0xff,0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xbf,0xfb,0xff,0xb7,0xd4,0xb7,0xf9,0xff,0x00,0x40,0x40,0xa9,0x56,0x5b, + 0xdd,0xff,0xfe,0xde,0xfb,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xed, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x5f, + 0x69,0xff,0xb5,0xdf,0x00,0x00,0x88,0xaa,0x5a,0xad,0x77,0xd5,0xdb,0xff,0xbf, + 0xef,0x7f,0xdf,0xf7,0xff,0xff,0xff,0xdf,0xf7,0x7f,0xfb,0xff,0xff,0xbf,0xff, + 0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x7f,0xa4,0xb5,0xfb,0xbd,0x00, + 0x00,0x22,0xa9,0x52,0xb5,0xda,0xff,0xfe,0x7b,0xff,0x7f,0xf7,0xff,0xff,0xbf, + 0xfb,0xee,0xff,0xff,0xff,0x6f,0xf7,0xdb,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff, + 0xf7,0xff,0xef,0x77,0xbf,0x52,0xff,0xf5,0xff,0x00,0x80,0x88,0x94,0xaa,0xd6, + 0xf6,0xaa,0xb7,0xfe,0xfb,0xff,0xff,0xff,0xbf,0xfd,0xef,0xbf,0xff,0xff,0xff, + 0xff,0xbf,0xff,0xf7,0xfb,0xff,0xff,0xff,0xf6,0xff,0xff,0xfe,0xfe,0xff,0x5f, + 0xf5,0xbd,0xfb,0xff,0x01,0x00,0x50,0x52,0xd5,0x6a,0xbb,0xff,0xfd,0xef,0xef, + 0xff,0xff,0x7e,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0x6e,0xff,0xaf, + 0xff,0xff,0x1f,0x7b,0xff,0xff,0xfb,0xbf,0xff,0xfb,0x5c,0xef,0xfb,0xef,0x03, + 0x00,0x4a,0x55,0xa5,0xb6,0xed,0x76,0xdf,0xff,0xff,0xfe,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xdd,0xff,0xfe,0xff,0xdd,0x7d,0xff,0xff,0x01,0xfd,0xf7, + 0xff,0xef,0xff,0xde,0x7f,0xeb,0xbd,0x6f,0xff,0x07,0x80,0x20,0x55,0xaa,0xaa, + 0xfe,0xdf,0x7b,0xbb,0xff,0xdf,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x40,0xff,0xff,0xff,0xff,0xfd,0x7f,0xff, + 0xb5,0xff,0xfe,0xff,0x06,0x08,0x94,0x2a,0x55,0x55,0x6d,0xfb,0xff,0xff,0xff, + 0xfb,0xef,0xf7,0xf7,0xdf,0xff,0xff,0xbd,0xff,0xff,0xf6,0xff,0xff,0xff,0xff, + 0xff,0x0f,0xf0,0xff,0x7f,0xf7,0xff,0xff,0xff,0x6d,0xed,0xf6,0xfb,0xfb,0x1f, + 0x41,0xa2,0x4a,0xd5,0xaa,0xfe,0xdf,0xee,0xff,0xff,0xff,0xff,0xff,0xff,0x7d, + 0xdf,0xfd,0xff,0xfe,0xff,0xff,0xf7,0xff,0xff,0xf7,0xff,0x03,0xfc,0xff,0xff, + 0xff,0xdf,0xf7,0xff,0xff,0x7b,0xff,0xff,0xdf,0x1f,0x24,0x11,0x55,0xb5,0x56, + 0xfb,0xff,0xff,0xee,0xde,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xdf,0xfb,0xdf,0xff,0xff,0x00,0xf7,0xff,0xff,0xbf,0xff,0xff,0xfe,0xdf, + 0xed,0xfb,0xdf,0xff,0x7b,0x00,0x54,0x95,0xaa,0xaa,0xff,0xff,0xfb,0xff,0xff, + 0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0xc0,0xff,0xff,0xff,0xff,0xfd,0xff,0xf7,0xff,0xf7,0xef,0xff,0xff,0xbf, + 0x90,0xa2,0xaa,0x54,0xad,0xf6,0x7f,0xbf,0xff,0xff,0xfe,0xff,0xbe,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xf0,0xff,0xff,0xef, + 0xff,0xbf,0xef,0xdf,0xfd,0xcb,0xff,0xff,0xff,0xff,0x05,0x15,0x45,0x55,0xa5, + 0xdf,0xfe,0xf7,0xee,0xf7,0xef,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xfb, + 0xff,0xff,0xff,0xff,0xff,0x0f,0xf8,0x7f,0x77,0xbf,0xfb,0xff,0xff,0xff,0x7f, + 0x6f,0xff,0xff,0xff,0xff,0x52,0xa2,0x2a,0x55,0xd5,0xfe,0xff,0xff,0x7f,0xff, + 0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x07,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xdf,0xfd,0xff,0xff,0xff, + 0x87,0x54,0xa9,0xaa,0xaa,0xfb,0xfb,0xed,0xff,0xff,0xff,0xff,0xfb,0xff,0xf7, + 0xef,0xef,0xff,0xfd,0xff,0xff,0xff,0xbf,0xff,0xff,0x03,0xff,0xff,0xff,0xff, + 0xbf,0xfb,0xfe,0xff,0xff,0xff,0xdb,0x7e,0xff,0xdf,0x2b,0x89,0xaa,0xaa,0xea, + 0xff,0xdf,0x7f,0xf7,0xef,0xfe,0xff,0xff,0xfe,0x7f,0xbf,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7e,0xff,0xc3,0xbf,0xff,0xff,0xff,0xff,0xff,0x7b,0xbf,0xbf, + 0xf7,0xfe,0xff,0xf7,0x7e,0x5f,0x52,0xa5,0xaa,0xea,0xee,0x7f,0xff,0xbf,0xfd, + 0xbb,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff, + 0xe1,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xfb,0xff,0xff,0xed,0xff,0xff,0xff, + 0x5b,0x29,0x55,0x55,0xb5,0xff,0xff,0xdb,0xff,0xff,0xff,0xef,0xef,0xff,0xff, + 0xff,0xff,0xff,0xef,0xdf,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xf7,0xfb,0xfd, + 0xf7,0xef,0xef,0xff,0xfe,0xdf,0x7b,0xf7,0xff,0xff,0x7f,0x55,0x55,0xab,0xfa, + 0xfd,0xff,0xff,0xf6,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0xff,0xdf,0xff,0xff,0xfe,0xbf,0xff,0xf7, + 0xfe,0xef,0xff,0xff,0xff,0xff,0xa2,0xaa,0x54,0xad,0xf7,0xff,0xfd,0xdf,0xdf, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xbf,0xff,0xff,0xff,0xff, + 0xf8,0xff,0xbf,0xff,0xdf,0xff,0x7f,0xfb,0xea,0xff,0xff,0xff,0xbd,0xdd,0xed, + 0xfb,0x5f,0x55,0x5b,0xf5,0xff,0xbe,0xef,0x7f,0xfb,0xff,0x7d,0x7f,0xff,0xfb, + 0xff,0xfe,0xbb,0xff,0xff,0xff,0xdd,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xff, + 0xff,0xff,0xef,0x7f,0xef,0xff,0xff,0xff,0xff,0xff,0xdf,0xaf,0x5a,0x55,0xfd, + 0xff,0xfb,0xbf,0xfd,0xff,0xef,0xff,0xff,0xf7,0xbf,0xff,0xff,0xff,0xfe,0xfd, + 0xfd,0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xdf,0xaf,0xbd,0xef,0xfd, + 0xfb,0xff,0xff,0xff,0xff,0xff,0xbf,0xd6,0xaa,0xda,0xfe,0xff,0xfe,0xff,0xff, + 0xfe,0xff,0xff,0xdf,0xff,0xfb,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xf7,0xfd, + 0xfe,0xff,0xff,0x7f,0xff,0x7f,0xfb,0xeb,0xba,0x77,0xef,0xef,0xff,0xff,0xff, + 0xff,0x7e,0x5b,0x2d,0xff,0xff,0xef,0xff,0xf7,0xef,0xff,0xf7,0xfb,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbb,0xff,0xff,0x7d,0xbf,0xff,0xfe,0x7f, + 0xff,0x5f,0x5d,0x6f,0xff,0x7f,0xbf,0xff,0xff,0xff,0xff,0xfb,0x6b,0x55,0xed, + 0xff,0xff,0xb7,0xff,0xfe,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff, + 0xf7,0xff,0xff,0xff,0xff,0xff,0xfd,0xee,0xff,0xfb,0xff,0xeb,0xb7,0xb5,0xdd, + 0xff,0xff,0xff,0xff,0x77,0xff,0xff,0x56,0xab,0xff,0xfe,0x7f,0xff,0xfe,0xff, + 0xff,0xff,0xdf,0x7f,0xff,0xdf,0xfb,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x36,0xdd,0xfa,0x7e,0xfb,0xff,0xbf,0x6f,0xff, + 0xf7,0xf7,0xdf,0xdd,0xf6,0xff,0xed,0xff,0xdf,0xff,0xff,0xbf,0x7f,0xff,0xef, + 0xff,0xef,0xfd,0xff,0xdf,0x7f,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x5f,0xad,0xa5,0xd6,0xeb,0x6d,0xff,0xff,0xfe,0xdf,0xdf,0xbf,0xff,0xb6,0xdf, + 0xbf,0xff,0xf7,0xff,0xff,0xfb,0xfe,0xff,0xfb,0xff,0xff,0xff,0xef,0xff,0xff, + 0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd5,0xaa,0xba,0xad, + 0xfa,0xff,0xfb,0xff,0x7d,0x7f,0xff,0xbb,0xeb,0xfd,0xff,0xfb,0xde,0xfb,0xdd, + 0xff,0xfb,0xff,0xdf,0xff,0xfe,0xff,0xff,0x7f,0xff,0xff,0xff,0xbe,0xdf,0xff, + 0xff,0xff,0x7f,0xef,0xff,0xbe,0xaa,0x2a,0x55,0xad,0xfe,0xff,0xff,0xf7,0xff, + 0xff,0xfb,0xff,0xfd,0xfe,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb, + 0xfb,0x55,0x55,0x55,0x55,0xdb,0xdf,0xfe,0xdf,0xff,0xfb,0xdf,0xfd,0xaf,0xfb, + 0x77,0xbf,0x7b,0xef,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xfe,0xff, + 0xfb,0xfd,0xff,0xff,0xfe,0xff,0xff,0xfd,0xff,0xef,0xff,0x54,0x89,0xaa,0xd4, + 0xff,0xf5,0xdf,0xff,0xdd,0xef,0xff,0xef,0xff,0xdf,0xfe,0xff,0xff,0xff,0xff, + 0xfd,0xef,0xdf,0xff,0xff,0xdf,0xbf,0xff,0xfb,0xbd,0xdf,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0x77,0x83,0x52,0x29,0x6a,0xbf,0xde,0x7d,0xff,0xff, + 0x7f,0xbf,0x7f,0xff,0xfd,0xdf,0xfd,0xef,0xff,0xef,0xf7,0xff,0xff,0xfb,0xff, + 0xff,0xfe,0xfe,0xff,0xff,0xff,0xf7,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x25,0x80,0x08,0xd1,0xef,0xb5,0xf6,0x7b,0x7f,0xff,0xf7,0xff,0xb7,0x6f, + 0xfb,0xef,0x7e,0xbf,0xff,0xdf,0x7f,0xff,0xbf,0xbb,0xfd,0xff,0xf7,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8b,0x54,0xa6,0xf4, + 0x75,0xff,0xdd,0xef,0xfb,0xfd,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfd,0xff, + 0x7f,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xef,0xff,0xff,0x2f,0x80,0x00,0xf4,0xae,0xff,0x76,0xff,0xff, + 0xbf,0xff,0xef,0xff,0xff,0xbb,0xfb,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff, + 0xff,0xff,0xff,0xdf,0xff,0xfe,0xbf,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xdf,0x7f,0x01,0x24,0x79,0x75,0xd5,0xdb,0xdd,0xff,0xff,0xbe,0xfe,0xfe,0x77, + 0xff,0xbf,0xfb,0xff,0xf7,0xff,0xfd,0x7f,0xff,0xff,0xff,0xfb,0xbf,0xff,0xfb, + 0xbf,0xff,0x7f,0xff,0xfd,0xff,0xff,0xff,0xff,0xdf,0xff,0x7f,0x01,0x00,0x74, + 0x55,0x7b,0xf7,0xff,0xdd,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf, + 0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x7e,0xff,0xfd,0x17,0xa9,0xb0,0xaa,0xaa,0xb5,0xb6,0xff, + 0xf6,0xff,0xfd,0xfb,0xdf,0xdd,0xed,0xdf,0xbf,0xff,0xff,0xff,0xff,0xfb,0xff, + 0xde,0xdf,0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x5f,0x00,0xf2,0xa4,0xaa,0xda,0xff,0xf7,0xff,0x7f,0xff,0xff,0xff, + 0xff,0xff,0xfe,0xfd,0xff,0xfe,0xbf,0xff,0x7f,0xf7,0xff,0xff,0xff,0xff,0xff, + 0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x0b,0xc0, + 0x92,0xd4,0xb6,0x6a,0xbd,0x7d,0xff,0xff,0x6f,0x7f,0xff,0xff,0xfb,0xf7,0xff, + 0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xfd,0xf7,0xef,0xff,0xff,0xff,0xef,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0d,0xa8,0x25,0x42,0xd5,0xb6,0xef, + 0xdf,0xf7,0xf7,0xff,0xfb,0xb7,0xfb,0xbf,0xff,0xff,0xf7,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x7f,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xef,0xdd,0xff,0xff,0x83,0x16,0xbf,0xaa,0xaa,0xda,0xf6,0x7f,0x7f,0xff,0xff, + 0xff,0xbf,0xff,0xff,0xfe,0xff,0xff,0xef,0xff,0xdf,0x7f,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0x2b, + 0xd5,0xd4,0xab,0x5a,0xed,0x7d,0xfb,0xff,0xfb,0xef,0xfe,0xff,0xfe,0xde,0xf7, + 0xff,0xff,0xff,0xfb,0xff,0xfb,0xfb,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x75,0xbb,0x4a,0x65,0x55, + 0xd7,0xdf,0xdb,0xbf,0xff,0xff,0xff,0xf7,0xfb,0xbf,0xbf,0xff,0xff,0xef,0xfe, + 0xff,0xbf,0xff,0xfd,0xdf,0x7b,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xbf,0xff,0xff,0xfe,0xff,0x0d,0x91,0x14,0xb5,0x7a,0x75,0xff,0xff,0xbf, + 0x7f,0xf7,0xff,0xff,0xff,0xf6,0x6d,0xff,0xff,0xfb,0xff,0xff,0xfd,0xff,0xfe, + 0xff,0xff,0xfb,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7e,0xf7,0xef, + 0xef,0xff,0x06,0xa4,0x4a,0xab,0xde,0x7d,0xf7,0xfd,0xf7,0xff,0xff,0xff,0xfd, + 0x7f,0xa4,0xbb,0xff,0xbf,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xdf,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xbf,0xbf,0xff,0x7b,0x13,0xa9, + 0xaa,0xea,0xef,0xdf,0xff,0xdf,0xdf,0xde,0xdf,0xf7,0x5f,0xd5,0xec,0xff,0xff, + 0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xfe,0xfb,0xff,0xdd,0x56,0x84,0xaa,0xba,0x7d,0xf7, + 0xff,0xbd,0x7b,0xfd,0xff,0x97,0x12,0x05,0xfa,0xff,0xff,0xfd,0xdf,0xff,0xdf, + 0xdd,0xdf,0xff,0xfe,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xdf,0xef,0xff,0x2d,0x01,0xaa,0xea,0xee,0xbf,0xbd,0xff,0xbf,0x7e,0x7f, + 0x0b,0xa5,0x10,0xe8,0xff,0xff,0xef,0xff,0xff,0xfd,0xff,0xfe,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbe,0xf7,0xff, + 0xff,0x55,0x95,0xaa,0xea,0xf7,0xf7,0xff,0xf7,0xfd,0xa1,0xaa,0x42,0xb0,0xff, + 0xfe,0xff,0xfe,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xbf,0x7b,0x6f,0x77, + 0x5d,0xbf,0xff,0xff,0xaf,0x88,0x2a,0x00,0xe8,0xf7,0xbb,0xff,0xff,0xfe,0xff, + 0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfb,0xdd,0xf6,0xfd,0xfb,0xff,0xb7, + 0xa2,0x04,0x00,0xf6,0xff,0xff,0xff,0xfb,0xff,0x7f,0xff,0xff,0xfd,0xff,0xf7, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff, + 0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x4f,0x54,0x00,0x80,0xda,0xff, + 0xff,0xfd,0xef,0x7f,0xff,0xed,0xfb,0xef,0xfd,0xdf,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xf7,0x7f,0xff,0xff,0xff, + 0xff,0x77,0xbf,0xf7,0x05,0x08,0x00,0x00,0xfb,0xfe,0xff,0xdf,0xff,0xfb,0xf7, + 0xff,0xdf,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0x63, + 0x01,0x00,0xf8,0xfe,0xdf,0xef,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0x14,0x00,0x00,0xad,0xef,0xff, + 0xbf,0xff,0xff,0xff,0xff,0xbf,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x5f,0x01,0x00,0xe8,0xfe,0xfb,0xfd,0xff,0xfb,0xbf,0xff,0xff, + 0xff,0xff,0xbb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00, + 0x00,0xd5,0xdb,0xbe,0xff,0xff,0xff,0xfe,0x7f,0xf7,0xfd,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0xe0,0x7e,0xff,0xf7,0xef, + 0xfe,0xef,0xfb,0xfd,0xbf,0xf7,0xee,0xff,0x77,0xf7,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0x07,0x00,0xb0,0xfb,0xb7,0xfd,0xfe,0xff,0xff,0xff,0xef,0xff, + 0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00, + 0xff,0xdf,0xfd,0xdf,0xff,0xdf,0xff,0xdf,0xff,0xfe,0xff,0xbf,0xff,0xfe,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xd0,0xfd,0x7e,0xaf,0x75,0xdb, + 0x7d,0xff,0xff,0xff,0xff,0xdf,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x3f,0x00,0xf6,0xef,0xff,0xfb,0xdf,0xff,0xff,0xbb,0x7f,0xff,0xbf, + 0xff,0xff,0xdf,0xdf,0xdd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x80,0xda, + 0xbe,0xff,0x7f,0x7b,0xff,0xff,0xff,0xfe,0xdf,0xfb,0xfe,0xf7,0x7f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0xe0,0xff,0xff,0xf5,0xdf,0xef,0xdb, + 0xfe,0xff,0xff,0xfd,0xff,0xef,0xdf,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0x03,0xfa,0xff,0xfb,0xbe,0xf7,0x7e,0xfd,0xf7,0xff,0xfb,0x7f,0xff, + 0xbf,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x81,0xbe,0x6f, + 0xef,0xeb,0xbd,0xfb,0xef,0xff,0xff,0xef,0xff,0xdf,0xff,0xff,0xff,0x7f,0xf7, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf0,0xff,0xfd,0x72,0x7f,0x87,0x56,0xb5, + 0x7f,0xf7,0xff,0xfb,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x1f,0xe8,0xff,0xf7,0xbb,0xab,0xec,0xef,0xfb,0xfe,0xdf,0xff,0xff,0x7b, + 0xfb,0x77,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x47,0xff,0xab,0x5e, + 0xef,0xbd,0xb6,0xba,0xac,0xef,0x7f,0x7f,0xdf,0xff,0xef,0xff,0xfb,0xf7,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0x83,0x7f,0x7f,0xfb,0x5a,0x4f,0xeb,0x56,0xf5, + 0xfd,0xfe,0xfd,0x7f,0xff,0xff,0xff,0x6f,0xff,0xde,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xf1,0xff,0xab,0x56,0xbd,0xea,0xb6,0xfb,0xa2,0xee,0xff,0xef,0xfd,0xef, + 0xff,0xde,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe9,0xdf,0xf6,0xfd, + 0x57,0x7b,0xdd,0xde,0xcb,0xbb,0xfb,0xff,0xff,0x7f,0xef,0xff,0xff,0xef,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfb,0xad,0x56,0xf9,0xaa,0xeb,0xeb,0xae, + 0xee,0xef,0xbf,0xdf,0xfd,0xff,0xff,0xfe,0xbf,0xf7,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0x7d,0x5f,0x57,0xeb,0x56,0x77,0x5d,0x7f,0xdb,0x75,0xbf,0xfd,0xfb,0xff, + 0xff,0xf7,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xdb,0xb5, + 0xd7,0xda,0xb6,0xd5,0x6d,0xb7,0xfd,0xff,0xff,0x6f,0x6f,0xff,0x7f,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xad,0x5e,0xb5,0x55,0xd7,0x7e,0xbb, + 0x6d,0xfb,0xdf,0xff,0xfe,0xff,0xbf,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xef,0xbb,0xef,0xaa,0xda,0xfe,0x7a,0xd5,0xed,0xb6,0xdf,0xfd,0xef,0xff, + 0xff,0xff,0xfd,0xdf,0xdd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xb5,0x6d, + 0x57,0xff,0xad,0xb7,0x74,0x5b,0xf5,0x7f,0xff,0xf7,0xfd,0xff,0xf7,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x6f,0xaf,0xb6,0xaa,0xea,0xef,0xfa,0xab, + 0xef,0x5d,0xff,0xff,0xdf,0x7f,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xbb,0xab,0xda,0xbf,0xb5,0x55,0xef,0xba,0xf6,0xf7,0xbd,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x6f,0xdd, + 0xed,0xea,0xde,0xfa,0xb5,0xd6,0xdf,0xff,0xff,0xff,0xf7,0xff,0xff,0x7f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xeb,0x76,0x5f,0xf7,0x5b,0xdb, + 0xbb,0x6a,0xff,0xff,0xff,0xff,0xff,0xdf,0xfd,0xf7,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x5f,0xdf,0xea,0x7a,0xed,0x6d,0xd6,0xd7,0x6f,0xf7,0xfe, + 0xbe,0xf7,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf, + 0xf5,0x3f,0xaa,0xb7,0xb6,0x7b,0x7d,0xdd,0xff,0xef,0xff,0xff,0xfe,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaa,0xf5,0xd5,0xda, + 0xae,0xee,0xf7,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0x5a,0x55,0x6b,0xfd,0x55,0x7d,0x6f,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xdb,0xad,0x56,0xad,0x6b,0xfb,0xd7,0xfd,0xbd,0xbb,0xfb,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xd7,0xaa,0x6a, + 0xdd,0xae,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5d,0x55,0xad,0xb6,0xfb,0x7b,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xf7,0xae,0xd5,0xff,0xb7,0xef,0xed,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0x75,0xb5, + 0xd4,0xfe,0xfe,0xbf,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xde,0xbb,0xeb,0xff,0xff,0x7f, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xb7,0xee,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xbe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xfd,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff + }; diff -r 4d6502ffaa5e -r 2719a89505ba pics/info.xbm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pics/info.xbm Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,200 @@ +#define info_width 154 +#define info_height 118 +static char info_bits[] = { + 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, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0xf7, 0xff, 0xff, 0xff, 0xfb, 0xf7, 0xfd, 0xff, 0xff, 0xff, 0xbf, + 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xfb, 0xff, 0xff, + 0xff, 0xf7, 0xf7, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0xef, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0xbd, 0x3c, 0x4c, 0x8f, 0xef, 0x7b, 0x1f, + 0x77, 0xcb, 0xe3, 0xf2, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0x3e, 0xdb, 0xad, 0x76, 0xdf, 0xbb, 0xef, 0x56, 0xb3, 0xdd, 0xfc, + 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xbd, 0xdb, 0xad, + 0x06, 0xef, 0x7b, 0xef, 0x56, 0xbb, 0xc1, 0xfe, 0xde, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0xbb, 0xdb, 0xac, 0xf6, 0xf7, 0xf7, 0xee, + 0x56, 0xbb, 0xfd, 0x7e, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0xb7, 0x3b, 0xed, 0x8e, 0xfb, 0xf7, 0x1d, 0xaf, 0xbb, 0xe3, 0xbe, + 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xf7, 0xff, 0xdf, + 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xf7, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0xeb, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, + 0xff, 0xff, 0xf7, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0x5d, 0x99, 0xce, 0xe3, 0xf0, 0x7d, 0x38, 0xee, 0x96, 0xc1, 0xfb, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0x5d, 0x5e, 0xdd, + 0x5d, 0xff, 0xbe, 0xdf, 0xed, 0x66, 0xf7, 0xf7, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0x41, 0x5f, 0xdd, 0xc1, 0xf8, 0xbd, 0xdf, + 0xed, 0x76, 0xf7, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0x5d, 0x5f, 0xdd, 0xfd, 0xf7, 0xbb, 0xdf, 0x6d, 0x76, 0xf7, 0xfd, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0x5d, 0xdf, 0x8d, + 0x63, 0xf8, 0x77, 0x38, 0x9e, 0x76, 0xcf, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff, 0x7f, 0xdf, + 0xff, 0xf7, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0xef, 0x7f, 0xdf, 0x7f, 0xf7, 0xff, 0xfb, + 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0xf7, 0x7f, 0xdf, 0xff, 0xf7, 0xff, 0xfb, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xfb, 0x10, 0x04, + 0x25, 0x87, 0xbb, 0x60, 0x3c, 0xbc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0x7d, 0x77, 0xdf, 0x79, 0x77, 0xbb, 0xbb, + 0xdb, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0x7b, 0x77, 0xdf, 0x7d, 0x77, 0xbb, 0x3b, 0x38, 0xbe, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0x77, 0x73, 0xdf, + 0x7d, 0x77, 0x9b, 0xbb, 0xff, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0xef, 0xf4, 0x3c, 0x3d, 0x86, 0xa7, 0x67, + 0x1c, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xdf, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xfb, 0xff, 0xff, 0x00, + 0xfc, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xdd, 0xff, 0xff, 0x7f, 0xff, 0xff, + 0xff, 0xfb, 0xff, 0xbf, 0xfb, 0xff, 0xfb, 0x00, 0xfc, 0xff, 0xfd, 0xff, + 0xff, 0xf9, 0xde, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xfb, 0x7f, 0xde, + 0xfb, 0xff, 0xf7, 0x00, 0xfc, 0x43, 0x90, 0x8e, 0xc3, 0x79, 0x07, 0xbb, + 0xe1, 0xf1, 0xfd, 0xd0, 0x95, 0xe1, 0x70, 0xee, 0xa0, 0x0b, 0xef, 0x00, + 0xfc, 0xdd, 0x5d, 0x75, 0xfd, 0xbf, 0xdf, 0xbb, 0xdd, 0xee, 0x7b, 0xdf, + 0xe5, 0x7b, 0xff, 0xf7, 0xbb, 0xeb, 0xde, 0x00, 0xfc, 0xdd, 0x5d, 0x75, + 0xe3, 0x7f, 0xdf, 0xbb, 0xdd, 0xe0, 0xfd, 0xd8, 0xf5, 0x7b, 0xff, 0xef, + 0xbb, 0xeb, 0xee, 0x00, 0xfc, 0xcd, 0x5d, 0x75, 0xdf, 0xf9, 0xde, 0xbb, + 0xdd, 0xfe, 0xfe, 0xd7, 0xf4, 0x7b, 0x7f, 0xde, 0xbb, 0xeb, 0xf6, 0x00, + 0xfc, 0xd3, 0xd3, 0x8d, 0xe1, 0xf9, 0x3d, 0x87, 0xe1, 0x71, 0x7f, 0x38, + 0xf5, 0xfb, 0x70, 0xbe, 0x67, 0x08, 0xfb, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xbf, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xeb, 0xff, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, + 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xec, 0xff, 0x00, + 0xfc, 0xff, 0xfd, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, + 0xdf, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xc1, 0xfd, 0xff, + 0xff, 0x7b, 0xef, 0xff, 0xdf, 0xff, 0xdd, 0xfd, 0xdf, 0xf7, 0xff, 0xfe, + 0xfb, 0xff, 0xfe, 0x00, 0xfc, 0xf7, 0xff, 0xff, 0xe7, 0x7d, 0xff, 0xff, + 0xbf, 0xff, 0xdd, 0xff, 0xff, 0xf7, 0x79, 0xff, 0xfb, 0xff, 0xfd, 0x00, + 0xfc, 0xf7, 0x9c, 0x8e, 0xe7, 0x1e, 0xe4, 0x74, 0x7c, 0xff, 0xdd, 0x3c, + 0xcc, 0xc1, 0xb9, 0x77, 0xcb, 0xe3, 0xfb, 0x00, 0xfc, 0xf7, 0x5d, 0x75, + 0x7f, 0x7f, 0xef, 0xaa, 0xfb, 0xfe, 0xeb, 0xdd, 0xdf, 0xf7, 0xdf, 0x57, + 0xb3, 0xdd, 0xf7, 0x00, 0xfc, 0xf7, 0x5d, 0x05, 0xff, 0x7e, 0xef, 0x2a, + 0x78, 0xff, 0xeb, 0x3d, 0xde, 0xf7, 0xbf, 0x57, 0xbb, 0xdd, 0xfb, 0x00, + 0xfc, 0xf7, 0x5d, 0xf5, 0xe7, 0x7d, 0xef, 0xaa, 0xbf, 0xff, 0xf7, 0xfd, + 0xdd, 0xf7, 0x79, 0x57, 0xbb, 0xdd, 0xfd, 0x00, 0xfc, 0xf7, 0xd8, 0x8d, + 0xe7, 0xfb, 0xc4, 0x6e, 0xdc, 0xff, 0xf7, 0x18, 0x8e, 0xcf, 0xf9, 0xae, + 0xbb, 0xe3, 0xfe, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 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, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 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, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xdf, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xfd, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x6f, 0xb0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6f, + 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0xfd, 0x10, 0x0c, 0x65, 0x37, 0xfc, 0x77, 0x7f, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0x7d, 0xf7, 0x76, + 0x79, 0xd7, 0xff, 0x77, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0x7d, 0x77, 0x77, 0x7d, 0x37, 0xfe, 0x77, + 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0x7d, 0xb3, 0x37, 0x7d, 0xf3, 0xfd, 0x6f, 0xbf, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xc1, 0x14, 0x4c, + 0xfd, 0x14, 0xfe, 0x6f, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, + 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff, 0xff, 0xdf, + 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0xf7, 0xff, 0xdf, 0xff, 0xff, 0x9f, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0xeb, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0x5d, 0x99, 0xce, + 0xe3, 0xf0, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0x5d, 0x5e, 0xdd, 0x5d, 0xff, 0xaf, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0x41, 0x5f, 0xdd, 0xc1, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0x5d, 0x5f, 0xdd, + 0xfd, 0xf7, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0x5d, 0xdf, 0x8d, 0x63, 0xf8, 0x1f, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0x61, 0x18, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x3d, 0x86, 0xc1, 0x3f, + 0x76, 0x61, 0x17, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0x5d, 0xd7, 0xfd, + 0xff, 0xff, 0xff, 0xff, 0xda, 0x75, 0xf7, 0xdf, 0x75, 0x5d, 0xd7, 0xfe, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0x5d, 0xd7, 0xfd, 0xff, 0xff, 0xff, 0x7f, + 0xd7, 0x77, 0xf7, 0xdf, 0x77, 0xdd, 0xda, 0xfd, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0x61, 0x18, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0xd7, 0x84, 0xf7, 0x3f, + 0x06, 0xe1, 0xdd, 0xfd, 0xff, 0xff, 0xff, 0x00, 0xfc, 0x75, 0x5f, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0xd0, 0xd5, 0xf7, 0xff, 0x75, 0xfd, 0xdd, 0xfd, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0x6d, 0xdf, 0xfe, 0xff, 0xff, 0xff, 0x7f, + 0xd7, 0xb5, 0xf7, 0xdf, 0x75, 0xfd, 0xdd, 0xfe, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0x5d, 0xdf, 0xfd, 0xff, 0xff, 0xff, 0x7f, 0x37, 0x74, 0xc1, 0x3f, + 0x76, 0xfd, 0x1d, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff, 0xfd, 0xff, + 0xff, 0xff, 0x8f, 0x41, 0x17, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, + 0x7f, 0x77, 0xff, 0x00, 0xfc, 0xff, 0xfd, 0xff, 0xff, 0xf9, 0x77, 0x77, + 0xd6, 0xfe, 0xff, 0xff, 0xff, 0xfb, 0x7f, 0xfe, 0x7f, 0xb2, 0xfe, 0x00, + 0xfc, 0x43, 0x90, 0x8e, 0xc3, 0xf9, 0xf7, 0x77, 0xd6, 0xfd, 0xff, 0xd0, + 0x95, 0xe1, 0x70, 0xfe, 0x7f, 0xd5, 0xfd, 0x00, 0xfc, 0xdd, 0x5d, 0x75, + 0xfd, 0xff, 0x8f, 0x77, 0xd5, 0xfd, 0x7f, 0xdf, 0xe5, 0x7b, 0xff, 0xff, + 0x7f, 0xd5, 0xfd, 0x00, 0xfc, 0xdd, 0x5d, 0x75, 0xe3, 0xff, 0x7f, 0x77, + 0xd3, 0xfd, 0xff, 0xd8, 0xf5, 0x7b, 0xff, 0xff, 0x7f, 0x17, 0xfc, 0x00, + 0xfc, 0xcd, 0x5d, 0x75, 0xdf, 0xf9, 0x77, 0x77, 0xd3, 0xfe, 0xff, 0xd7, + 0xf4, 0x7b, 0x7f, 0xfe, 0x7f, 0xd7, 0xfd, 0x00, 0xfc, 0xd3, 0xd3, 0x8d, + 0xe1, 0xf9, 0x8f, 0x77, 0x17, 0xff, 0x7f, 0x38, 0xf5, 0xfb, 0x70, 0xfe, + 0x7f, 0xd7, 0xfd, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff, 0xfd, 0xff, + 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xdf, 0xf7, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xfc, 0xc1, 0xfd, 0xff, 0xff, 0x3f, 0xff, 0xff, + 0xff, 0xff, 0xdd, 0xfd, 0xdf, 0xf7, 0xff, 0x07, 0x7f, 0xf7, 0xff, 0x00, + 0xfc, 0xf7, 0xff, 0xff, 0xe7, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xdd, 0xff, + 0xff, 0xf7, 0xf9, 0xf7, 0x7f, 0xfb, 0xff, 0x00, 0xfc, 0xf7, 0x9c, 0x8e, + 0xe7, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xdd, 0x3c, 0xcc, 0xc1, 0xf9, 0xf7, + 0x7f, 0xfd, 0xff, 0x00, 0xfc, 0xf7, 0x5d, 0x75, 0xff, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xeb, 0xdd, 0xdf, 0xf7, 0xff, 0x87, 0x7f, 0xfe, 0xff, 0x00, + 0xfc, 0xf7, 0x5d, 0x05, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x3d, + 0xde, 0xf7, 0xff, 0xf7, 0x7f, 0xfd, 0xff, 0x00, 0xfc, 0xf7, 0x5d, 0xf5, + 0xe7, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xfd, 0xdd, 0xf7, 0xf9, 0xf7, + 0x7f, 0xfb, 0xff, 0x00, 0xfc, 0xf7, 0xd8, 0x8d, 0xe7, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xf7, 0x18, 0x8e, 0xcf, 0xf9, 0xf7, 0x7f, 0xf7, 0xff, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 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, 0x00, 0x00, 0x00, 0x00, 0x00}; diff -r 4d6502ffaa5e -r 2719a89505ba pped/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pped/Makefile Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,36 @@ +# + +# Make sure that these correctly indicate where the server source and bin +# directories are: +SERVDIR = ../src +BINDIR = ../bin + +# This can also be set to gcc +CC = cc + +# If you're on a SysV type system, put -DSYSV here: +#CFLAGS = -O -I${SERVDIR} + +# Uncomment this line if youre on an HP/UX system: +#CFLAGS = -O Aa -I${SERVDIR} -DSYSV -D_HPUX_SOURCE +CFLAGS = -O -I${SERVDIR} -DSYSV -D_HPUX_SOURCE -DHAVE_RAND48 + +OBJS = data.o db.o file.o interface.o main.o + + +all: pped + +pped: ${OBJS} + ${CC} ${CFLAGS} -o $@ ${OBJS} -lm -lcurses + +clean: + rm -f *.o *.bak core pped + +install: ${BINDIR}/pped + +${BINDIR}/pped: pped + -mv ${BINDIR}/pped ${BINDIR}/pped.old + -rm -f ${BINDIR}/pped.old + cp pped ${BINDIR}/pped + -chmod 700 ${BINDIR}/pped + diff -r 4d6502ffaa5e -r 2719a89505ba pped/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pped/README Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,44 @@ +pped (version 1.1) + +This is a relatively simple Paradise player database editor. Although I +have given it a reasonable amount of testing, there probably still are +bugs. So, please always keep backups of your .players file. + +Usage: pped [file] +Where [file] is the pathname of the player database file to be edited. +If no file is specified, then it looks for a file called .players in +the current directory + + +**** Important notes **** + +I don't have any instructions yet, my apologies for this. You can get +a list of available commands by entering '?' at a prompt. + +When you are in the edit screen, where the prompt looks like +"Edit: Command (? for help) -->", you need to specify Save to record +whatever changes you've made. This only changes the database in +memory, it won't affect any files. + +When you specify Save in the Index screen, however, you will be prompted +for a filename, and then the entire database is written into that file. +This is the only place where a file can be changed by this program. + +pped reads the entire db into memory, so when you edit individual entries, +nothing will actually be changed in the .players file until you save +the whole thing out. The main disadvantage to this is that if your +.players file is very large, this becomes inefficient. I will probably +make it disk-based in future versions. + +The editor will adjust to different terminal heights (i.e. number of +rows), but it assumes that your terminal is at least 80 columns wide. + +pped is written entirely in ANSI C. So, you will need to supply whatever +flags are needed to put your compiler in ANSI mode. Or, you can use gcc. + +Do NOT change the .players file that is being used by the server if +there are people logged in to the server. + + +Please send comments/bug reports/suggestions/etc to hakehoe@icaen.uiowa.edu + diff -r 4d6502ffaa5e -r 2719a89505ba pped/common.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pped/common.h Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,11 @@ +/* + * common.h + */ + + +#define err_fatal(x) {err(x); exit(1);} + +#define err_sys_fatal(x) {err_sys(x); exit(1);} + +#define VERSSTR "1.1" + diff -r 4d6502ffaa5e -r 2719a89505ba pped/data.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pped/data.c Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,10 @@ + +struct plnode *firstEnt = 0; +struct plnode *lastEnt = 0; +int numDBentries = 0; + +int dbDirty = 0; /* set if any entries were added/deleted */ + +int numLines = 24; +char *clrStr = 0; + diff -r 4d6502ffaa5e -r 2719a89505ba pped/data.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pped/data.h Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,10 @@ + +extern struct plnode *firstEnt; +extern struct plnode *lastEnt; +extern int numDBentries; + +extern int dbDirty; + +extern int numLines; +extern char *clrStr; + diff -r 4d6502ffaa5e -r 2719a89505ba pped/db.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pped/db.c Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,127 @@ +/* + * db.c + */ + + +#include +#include +#include +#include +#include "common.h" +#include "db.h" +#include "main.h" +#include "data.h" + + +void initDB() +{ + struct plnode *p, *pn; + int i; + + /* deallocate previous db */ + p = firstEnt; + if(numDBentries) { + while(numDBentries) { + pn = p->next; + + if(!pn) err_fatal("initDB: numDBentries too large!"); + + free(p); + p = pn; + numDBentries--; + } + if(!p) err_fatal("initDB: numDBentries too small!"); + } + + firstEnt = 0; + lastEnt = 0; + numDBentries = 0; + dbDirty = 0; +} + + +void addDB(struct statentry *player) +{ + struct plnode *p; + + p = (struct plnode *)malloc(sizeof(struct plnode)); + + if(p == NULL) + err_sys_fatal("addDB: malloc error"); + + p->player = *player; + p->next = 0; + p->status = 0; + + if(!firstEnt) { + p->prev = 0; + firstEnt = p; + lastEnt = p; + } else { + p->prev = lastEnt; + lastEnt->next = p; + lastEnt = p; + } + numDBentries++; +} + +struct plnode *GetNode(int n) +{ + struct plnode *p, *pn; + int i = 0; + + p = firstEnt; + + while(p) { + if(i++ == n) return(p); + pn = p->next; + p = pn; + } + return(NULL); +} + +void DeleteNode(int n) +{ + struct plnode *p, *pn, *pp; + int i; + + if(!numDBentries) return; + + p = firstEnt; + if(!p) return; + + for(i = 0; i < n; i++) { + p = p->next; + if(!p) return; + } + pn = p->next; + pp = p->prev; + if(pn) pn->prev = pp; + if(pp) pp->next = pn; + + if(!n) firstEnt = pn; + numDBentries--; + + dbDirty = 1; + + free(p); +} + +int GetByName(char *name) +{ + struct plnode *p; + int i; + + if(!numDBentries) return -1; + + p = firstEnt; + if(!p) return -1; + + for(i = 0; p; i++) { + if(!strncmp(name, p->player.name, 16)) + return i; + p = p->next; + } + return -1; +} + diff -r 4d6502ffaa5e -r 2719a89505ba pped/db.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pped/db.h Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,15 @@ + +struct plnode { + struct statentry player; + struct plnode *next; + struct plnode *prev; + int status; +}; + +/* prototypes for db.c */ +void initDB(); +void addDB(struct statentry *player); +struct plnode *GetNode(int n); +void DeleteNode(int n); +int GetByName(char *name); + diff -r 4d6502ffaa5e -r 2719a89505ba pped/file.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pped/file.c Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,97 @@ +/* + * file.c + */ + +#include +#include + +#ifdef SYSV +#include +#else +#include +#endif + +#include +#include "common.h" +#include "db.h" +#include "main.h" +#include "file.h" +#include "data.h" + + +int ReadIt(char *fn) +{ + struct statentry player; + int plfd; + + initDB(); /* set up linked-list */ + + plfd = open(fn, O_RDONLY, 0644); + if(plfd < 0) { + err_sys("Could not open %s for read", fn); + return 1; + } + + while (read(plfd, (void *)&player, sizeof(struct statentry)) == + sizeof(struct statentry)) + addDB(&player); /* add to list */ + + close(plfd); + return 0; +} + +int SaveIt(char *fn) +{ + struct plnode *p; + int plfd, cc; + + plfd = open(fn, O_CREAT | O_TRUNC | O_WRONLY, 0600); + if(plfd < 0) { + err_sys("Could not open %s for write", fn); + return 1; + } + + p = firstEnt; + while(p) { + cc = write(plfd, (void *)(&p->player), (int)sizeof(struct statentry)); + if(cc != (int)sizeof(struct statentry)) { + err_sys("Write error"); + return 1; + } + p = p->next; + } + return 0; +} + +int DoSave(int mode) +{ + char name[100], *c; + extern char *playerFile; + + printf("Warning! Do not write over the server .players file if there\nare people logged in!\n"); + printf("Enter filename, or press return to cancel\n"); + printf(" -->"); fflush(stdout); + + if(!fgets(name, 100, stdin)) { + err_sys("fgets fail (in DoSave)"); + return 1; + } + if(c = strrchr(name, '\n')) + *c = (char)0; + + if(!name || !(*name)) return 1; + + if(SaveIt(name)) { + Report(""); + return 1; + } + + ClearChanged(); + Report("Player database saved."); + return(0); +} + +int DoLoad(int mode) +{ +} + diff -r 4d6502ffaa5e -r 2719a89505ba pped/file.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pped/file.h Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,10 @@ +/* + * Prototypes for file.c + */ + + +int ReadIt(char *fn); +int SaveIt(char *fn); +int DoSave(int mode); +int DoLoad(int mode); + diff -r 4d6502ffaa5e -r 2719a89505ba pped/interface.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pped/interface.c Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,549 @@ +/* + * interface.c + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "common.h" +#include "db.h" +#include "interface.h" +#include "intfdesc.h" +#include "file.h" +#include "data.h" + + +static char *shrt_royal_names[] = { + "", + "Wes", + "Cen", + "Pra", + "Emp" +}; + +static char *royal_names[] = { + "none", + "Wesley", + "Centurion", + "Praetor", + "Emperor" +}; + +static char *shrt_rank_names[] = { + "Recr", "Spec", "Cadt", "Mids", "EnJr", "Ensi", "LtJr", + "Lieu", "LtCm", "Cmdr", "HiCm", "Capt", "FlCp", "Comd", + "Adml", "RAdm", "Moff", "GrMo" +}; + +static char *rank_names[] = { + "Recruit", "Specialist", "Cadet", "Midshipman", + "Ensn. Jr.", "Ensign", "Lt. Jnr. Gr.", "Lieutenant", + "Lt. Cmdr.", "Commander", "High Cmdr.", "Captain", + "Fleet Capt.", "Commodore", "Admiral", "Rear Adml.", + "Moff", "Grand Moff" +}; + +void getTTYinfo() +{ + struct winsize ws; + char *name, bp[1024], area[1024], *ap = area; + +#ifdef SYSV + signal(SIGWINCH, getTTYinfo); +#endif + + /* determine # of lines */ + ioctl(0, TIOCGWINSZ, &ws); + numLines = ws.ws_row; + + /* find terminal sequence to clear the screen */ + if(name = getenv("TERM")) + if(tgetent(bp, name) > 0) + clrStr = tgetstr("cl", &ap); +} + +void cls() +{ + printf("%s", clrStr); fflush(stdout); +} + +void Interface() +{ + struct plnode *p, *pn; + int lines, top, i, num; + char buf[18], *c; + + top = 0; + for(;;) { + lines = numLines - 4; + if(lines < 5) err_fatal("not enough tty lines!"); + + cls(); + printf("\ + C # Rnk Ryl Name C # Rnk Ryl Name\n"); + printf("\ + - --- ---- ---- ----------------- - --- ---- ---- -----------------\n"); + + for(i = 0; i < lines; i++) { + if(top + i > numDBentries - 1) { + printf("\n"); + continue; + } + p = GetNode(top + i); + if(!p) { + printf("\n"); + continue; + } + strncpy(buf, p->player.name, 16); + strcat(buf, "_"); + printf(" %c%4d %-4s %-4s %-17.17s ", + p->status ? '*':' ', top + i, + shrt_rank_names[p->player.stats.st_rank], + shrt_royal_names[p->player.stats.st_royal], + Strip(buf)); + + if(top + i + lines > numDBentries - 1) { + printf("\n"); + continue; + } + p = GetNode(top + i + lines); + if(!p) { + printf("\n"); + continue; + } + strncpy(buf, p->player.name, 16); + strcat(buf, "_"); + printf(" %c%4d %-4s %-4s %s\n", + p->status ? '*':' ', top + i + lines, + shrt_rank_names[p->player.stats.st_rank], + shrt_royal_names[p->player.stats.st_royal], + Strip(buf)); + } + printf("\nIndex: Command (? for help) -->"); fflush(stdout); + if(fgets(buf, 18, stdin) == NULL) + continue; + + switch(buf[0]) { + case '\n': + case 'n': + top += (lines * 2); + if(top >= numDBentries) + top = 0; + break; + case 'p': + if(!top) { + if(numDBentries - 2 * lines > 0) + top = numDBentries - 2 * lines; + else + top = 0; + } else { + top -= (lines * 2); + if(top < 0) top = 0; + } + break; + case 'Q': + GoAway(CheckChanged()); + break; + case 's': + DoSave(1); + break; + case 'e': + printf("Enter player name to edit -->"); + fflush(stdout); + if(fgets(buf, 18, stdin) == NULL) + break; + if(c = strrchr(buf, '\n')) + *c = (char)0; + num = GetByName(buf); + if(num < 0) { + Report("Couldn't find any players by that name."); + break; + } + Edit(num); + break; + case '?': + Report("\n\ +[num] : Edit player [num]\n\ + e : Edit player (by name)\n\ + n : Next page\n\ +[ret] : Next page\n\ + p : Previous page\n\ + s : Save to file\n\ + Q : Quit pped\n"); + break; + default: + i = sscanf(buf, "%d", &num); + if(!i || (num < 0) || (num >= numDBentries)) + break; + Edit(num); + } + } +} + +void Edit(int pnum) +{ + struct plnode *p, player; + char buf[18], txt[80]; + int i, num, lines, top; + + p = GetNode(pnum); + if(!p) return; + player = *p; + player.status = 0; + + top = 0; + + for(;;) { + lines = numLines - 2; + cls(); + Display(&player, top, top+lines); + + printf("\nEdit: Command (? for help) -->"); fflush(stdout); + if(fgets(buf, 18, stdin) == NULL) + continue; + + switch(buf[0]) { + case '?': /* help */ + Report("\n\ + n : Next page\n\ + p : Previous page\n\ +[num] : Change value [num]\n\ + s : Save and return to index\n\ + w : Save\n\ +[ret] : Return to index, don't save\n\ + x : Same as [ret]\n\ + D : Delete this entry and return to index\n\ + r : Revert (undo changes since last save)\n\ + Q : Quit pped\n"); + break; + + case 'n': /* page forward */ + top += lines; + if(top > NUMDESC + 1) top = 0; + continue; + + case 'p': /* page backward */ + top -= lines; + if(top < 0) top = 0; + continue; + + case 'D': /* delete (and exit) */ + sprintf(txt, "delete entry for player %s", p->player.name); + if(Verify(txt)) { + DeleteNode(pnum); + Report("Player deleted."); + return; + } else { + Report("Canceled."); + } + break; + + case 'Q': /* quit */ + GoAway(player.status || CheckChanged()); + break; + + case 's': /* save and exit */ + if(player.status) { + *p = player; + player.status = 0; + Report("Player saved."); + } + return; + break; + + case 'w': /* save */ + if(player.status) { + *p = player; + player.status = 0; + Report("Player saved."); + } else { + Report("No changes to save."); + } + break; + + case 'r': /* revert */ + if(player.status) { + sprintf(txt, "undo changes for player %s?", p->player.name); + if(Verify(txt)) { + player = *p; + player.status = 0; + Report("Changes discarded."); + } else { + Report("Canceled."); + } + } else { + Report("No changes to undo."); + } + break; + + case 0x1B: /* (escape) exit, no changes */ + case '\n': + case 'x': + if(player.status) + if(!Verify("exit? There are unsaved changes.")) + break; + return; + + default: + i = sscanf(buf, "%d", &num); + if(!i || (num < 0) || (num >= NUMDESC)) + break; + Change(num, &player); + } + } +} + +int Verify(char *str) +{ + char buffer[18]; + + for(;;) { + printf("Verify %s (y/n) -->", str); fflush(stdout); + if(fgets(buffer, 18, stdin) == NULL) + continue; + switch(buffer[0]) { + case 'Y': + case 'y': + return 1; + case 'N': + case 'n': + return 0; + } + } +} + +void Report(char *str) +{ + char buffer[18]; + + printf("%s\n", str); + printf("Press return to continue -->"); fflush(stdout); + + fgets(buffer, 18, stdin); +} + +void Change(int num, struct plnode *p) +{ + struct inter_desc *it; + void *ptr; + char str16[16], *c; + char buffer[80]; + int intnum, i, col; + float floatnum; + + if(num < 0 || num >= NUMDESC) return; + it = &idesc_tab[num]; + + ptr = (void *)((int)(&p->player) + it->offset); + + switch(it->type) { + case DT_CHAR16: + printf("Current value for %s: \"%s\"\n", it->name, (char *)ptr); + printf("Enter new value -->"); fflush(stdout); + str16[0] = 0; + fgets(str16, 16, stdin); + if(c = strrchr(str16, '\n')) + *c = (char)0; + + sprintf(buffer, "\"%s\" as new value for %s.", str16, it->name); + if(Verify(buffer)) { + if(strncmp((char *)ptr, str16, 16)) { + strncpy((char *)ptr, str16, 16); + p->status = 1; /* something changed */ + } + } + break; + + case DT_INT: + case DT_TICKS: + printf("Current value for %s: %d\n", it->name, *((int *)ptr)); + printf("Enter new value -->"); fflush(stdout); + fgets(buffer, 30, stdin); + intnum = atoi(buffer); + sprintf(buffer, "%d as new value for %s.", intnum, it->name); + if(Verify(buffer)) { + if(intnum != *((int *)ptr)) { + *((int *)ptr) = intnum; + p->status = 1; + } + } + break; + + case DT_FLOAT: + printf("Current value for %s: %f\n", it->name, *((float *)ptr)); + printf("Enter new value -->"); fflush(stdout); + fgets(buffer, 30, stdin); + floatnum = (float)atof(buffer); + sprintf(buffer, "%f as new value for %s.", floatnum, it->name); + if(Verify(buffer)) { + if(floatnum != *((float *)ptr)) { + *((float *)ptr) = floatnum; + p->status = 1; + } + } + break; + + case DT_RANK: + for(i = 0, col = 0; i < NUMRANKS; i++) { + printf(" %2d: %-7s ", i, shrt_rank_names[i]); + if(++col == 4) { + printf("\n"); + col = 0; + } + } + printf("\nCurrent value for %s: %d (%s)\n", it->name, + *((int *)ptr), rank_names[*((int *)ptr)]); + printf("Enter new value -->"); fflush(stdout); + fgets(buffer, 30, stdin); + intnum = atoi(buffer); + sprintf(buffer, "%d (%s) as new value for %s.", intnum, + rank_names[intnum], it->name); + if(Verify(buffer)) { + if(intnum != *((int *)ptr)) { + *((int *)ptr) = intnum; + p->status = 1; + } + } + break; + + case DT_ROYAL: + for(i = 0; i < NUMROYALRANKS; i++) + printf(" %2d: %s\n", i, royal_names[i]); + + printf("Current value for %s: %d (%s)\n", it->name, + *((int *)ptr), royal_names[*((int *)ptr)]); + printf("Enter new value -->"); fflush(stdout); + fgets(buffer, 30, stdin); + intnum = atoi(buffer); + sprintf(buffer, "%d (%s) as new value for %s.", intnum, + royal_names[intnum], it->name); + if(Verify(buffer)) { + if(intnum != *((int *)ptr)) { + *((int *)ptr) = intnum; + p->status = 1; + } + } + break; + default: + Report("Error in case statement in Change()"); + break; + } +} + +void Display(struct plnode *n, int from, int to) +{ + int i, hour, dt = 0; + char c; + void *ptr; + struct inter_desc *it; + struct tm *stm; + time_t tt; + + if(to > NUMDESC) { + to = NUMDESC; + dt = 1; + } + + for(i = from; i < to; i++) { + it = &idesc_tab[i]; + ptr = (void *)((int)(&n->player) + it->offset); + + switch(it->type) { + case DT_CHAR16: + printf(" (%2d) %16s : \"%s\"\n", i, it->name, (char *)ptr); + break; + case DT_INT: + printf(" (%2d) %16s : %d\n", i, it->name, *((int *)ptr)); + break; + case DT_FLOAT: + printf(" (%2d) %16s : %.2f\n", i, it->name, *((float *)ptr)); + break; + case DT_TICKS: + printf(" (%2d) %16s : %d (%.2f hours)\n", + i, it->name, *((int *)ptr), (*((int *)ptr))/36000.0); + break; + case DT_RANK: + printf(" (%2d) %16s : %d (%s)\n", i, it->name, *((int *)ptr), + rank_names[*((int *)ptr)]); + break; + case DT_ROYAL: + printf(" (%2d) %16s : %d (%s)\n", i, it->name, *((int *)ptr), + royal_names[*((int *)ptr)]); + break; + default: + printf("Yikes! Unknown it->type in Display()\n"); + break; + } + } + if(dt) { + tt = n->player.stats.st_lastlogin; + stm = localtime(&tt); + hour = stm->tm_hour; + c = 'A'; + if(!hour) { + hour = 12; + } else if(hour > 12) { + hour -= 12; + c = 'P'; + } + printf(" Last login: %2d:%02d %cM %02d/%02d/%d\n", + hour, stm->tm_min, c, stm->tm_mon+1, stm->tm_mday, stm->tm_year); + } +} + +int CheckChanged() +{ + struct plnode *p; + + if(dbDirty) return(1); + + p = firstEnt; + while(p) { + if(p->status) return(1); + p = p->next; + } + return(0); +} + +void ClearChanged() +{ + struct plnode *p; + + dbDirty = 0; + + p = firstEnt; + while(p) { + p->status = 0; + p = p->next; + } +} + +/* Strip: convert non-printable control chars to ^L notation */ +char *Strip(char *str) +{ + static char buff[36], *o; + + o = buff; + while(*str) { + *str &= 0x7f; + if((int)*str < (int)' ') { + *o++ = '^'; + *o++ = *str + (char)64; + } else if ((int)*str == 127) { + *o++ = '^'; + *o++ = '?'; + } else { + *o++ = *str; + } + str++; + } + *o = 0; + return(buff); +} + diff -r 4d6502ffaa5e -r 2719a89505ba pped/interface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pped/interface.h Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,16 @@ +/* + * Prototypes for interface.c + */ + +void getTTYinfo(); +void cls(); +void Interface(); +void Edit(int pnum); +int Verify(char *str); +void Report(char *str); +void Change(int num, struct plnode *p); +void Display(struct plnode *n, int from, int to); +int CheckChanged(); +void ClearChanged(); +char *Strip(char *str); + diff -r 4d6502ffaa5e -r 2719a89505ba pped/intfdesc.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pped/intfdesc.h Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,51 @@ +/* + * interface.h + */ + + +enum desc_type { + DT_INT, /* plain int */ + DT_FLOAT, /* plain float */ + DT_CHAR16, /* name/passwd */ + DT_TICKS, /* (int) seconds/10 */ + DT_RANK, /* (int) rank */ + DT_ROYAL /* (int) royalty */ +}; + +struct inter_desc { + int num; + char *name; + enum desc_type type; + int offset; +}; + +#define OFFSET(field) ((char *)(&((struct statentry*)0)->field) - (char *)0) + +struct inter_desc idesc_tab[] = { + { 0, "Name", DT_CHAR16, OFFSET(name[0]) }, + { 1, "Password", DT_CHAR16, OFFSET(password[0]) }, + { 2, "Rank", DT_RANK, OFFSET(stats.st_rank) }, + { 3, "Royalty", DT_ROYAL, OFFSET(stats.st_royal) }, + { 4, "Genocides", DT_INT, OFFSET(stats.st_genocides) }, + { 5, "Max kills", DT_FLOAT, OFFSET(stats.st_tmaxkills) }, + { 6, "DI", DT_FLOAT, OFFSET(stats.st_di) }, + { 7, "Kills", DT_INT, OFFSET(stats.st_tkills) }, + { 8, "Losses", DT_INT, OFFSET(stats.st_tlosses) }, + { 9, "Armies bombed", DT_INT, OFFSET(stats.st_tarmsbomb) }, + { 10, "Resources bombed", DT_INT, OFFSET(stats.st_tresbomb) }, + { 11, "Dooshes", DT_INT, OFFSET(stats.st_tdooshes) }, + { 12, "Ticks", DT_TICKS, OFFSET(stats.st_tticks) }, + { 13, "SB kills", DT_INT, OFFSET(stats.st_sbkills) }, + { 14, "SB losses", DT_INT, OFFSET(stats.st_sblosses) }, + { 15, "SB ticks", DT_TICKS, OFFSET(stats.st_sbticks) }, + { 16, "SB maxkills", DT_FLOAT, OFFSET(stats.st_sbmaxkills) }, + { 17, "WB kills", DT_INT, OFFSET(stats.st_wbkills) }, + { 18, "WB losses", DT_INT, OFFSET(stats.st_wblosses) }, + { 19, "WB ticks", DT_TICKS, OFFSET(stats.st_wbticks) }, + { 20, "WB maxkills", DT_FLOAT, OFFSET(stats.st_wbmaxkills) }, + { 21, "JS planets", DT_INT, OFFSET(stats.st_jsplanets) }, + { 22, "JS ticks", DT_TICKS, OFFSET(stats.st_jsticks) }, +}; + +#define NUMDESC 23 + diff -r 4d6502ffaa5e -r 2719a89505ba pped/main.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pped/main.c Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,80 @@ +/* + * main.c + */ + +#include +#include +#include +#include +#include +#include "common.h" +#include "main.h" +#include "db.h" +#include "interface.h" +#include "file.h" + +#undef PLAYERFILE +#define PLAYERFILE ".players" + + +static char *myname; +char *playerFile; + +int main(int argc, char *argv[]) +{ + myname = argv[0]; + + if(argc > 2) { + fprintf(stderr, "Usage: %s [playerfile]\n", myname); + exit(1); + } +#ifndef SYSV + signal(SIGWINCH, getTTYinfo); +#endif + if(argc == 2) + playerFile = argv[1]; + else + playerFile = PLAYERFILE; + + getTTYinfo(); + if(ReadIt(playerFile)) exit(1); + Interface(); + exit(0); +} + +void err(char *s, ...) +{ + va_list ap; + char txt[60]; + + va_start(ap, s); + vsprintf(txt, s, ap); + fprintf(stderr, "%s: %s\n", myname, txt); + va_end(ap); +} + +void err_sys(char *s, ...) +{ + va_list ap; + char txt[60]; + extern int errno; + int es; + + es = errno; + + va_start(ap, s); + vsprintf(txt, s, ap); + fprintf(stderr, "%s: %s: %s\n", myname, txt, strerror(es)); + va_end(ap); +} + +void GoAway(int type) +{ + if(type) + if(!Verify("quit? There are unsaved changes.")) + return; + + printf("\npped version %s by H. Kehoe\n\n", VERSSTR); + exit(0); +} + diff -r 4d6502ffaa5e -r 2719a89505ba pped/main.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pped/main.h Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,11 @@ +#include + +/* + * prototypes for main.c + */ + +int main(int argc, char *argv[]); +void err(char *s, ...); +void err_sys(char *s, ...); +void GoAway(int type); + diff -r 4d6502ffaa5e -r 2719a89505ba pped/pped Binary file pped/pped has changed diff -r 4d6502ffaa5e -r 2719a89505ba src/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/Makefile Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,453 @@ +# This file generated by "./setup" on Tue Dec 2 21:17:00 CST 1997. +# Make changes to "Makefile.in" and run the setup script +# +# NETREK II -- Paradise +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any NON-COMMERCIAL purpose (following the terms of +# the GNU General Public License (read the file 'COPYING')) and without +# fee is hereby granted, provided that this copyright notice appear in all +# copies. No representations are made about the suitability of this +# software for any purpose. This software is provided "as is" without +# express or implied warranty. +# +# Xtrek Copyright 1986 Chris Guthrie +# Netrek (Xtrek II) Copyright 1989 Kevin P. Smith +# Scott Silvey +# Paradise (Netrek II) Copyright 1993 Larry Denys +# Kurt Olsen +# Brandon Gillespie +# Rob Forsman +# +# Comprehensive Credits available in the file docs/CREDITS +# +# Programmers: Modify the file 'Makefile.in' not the Makefile directly. +# + +MAKE = make +INSTMODE = 700 + +SRVDIR = . +BINDIR = ../bin +ETCDIR = ../etc +RSADIR = ../rsa + +CCOPTIONS=-DFreeBSD -DHAVE_RAND48 +CDEBUGFLAGS=-O2 -s +CC=gcc + +### An override +# GCCWARNINGS = +# GCCOPTWARNINGS= -O -Wuninitialized -Wunused +# GCCWARNINGS = ${GCCOPTWARNINGS} -Wreturn-type -Wswitch -Wtrigraphs \ +# -Wformat -Wchar-subscripts -Wparentheses +# CC = gcc ${GCCWARNINGS} + +# Use this for the KSR1 supercomputer +# CC = cc -port_def_long -port_lowaddrs + +#################### +# RSA authorization stuff + +RSA= +AUTHOBJS= + +##################### + +LIBS=-lmp -lm + +##################### +# GNU Zip libs +GZLIBPATH = -L/usr/local/lib +GZLIB = -lgz +GZLIBH = -I/usr/local/include + +#################### +#accumulation of all C flags. + +CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(RSA) $(GZLIBH) + +############################################################################## + +COMMON = data.o shmem.o plutil.o path.o grid.o cutil.o sintab.o + +ME_COMMON = util.o + +TOOL_COMMON = shmem.o path.o data.o + +NTSERV_OBJS = ${COMMON} cluecheck.o message.o death.o detonate.o \ + enter.o fatudp.o findslot.o gameconf.o getentry.o getname.o \ + getship.o input.o interface.o main.o missile.o orbit.o packets.o \ + parsexbm.o phaser.o ping.o plasma.o redraw.o ${AUTHOBJS} socket.o \ + sockio.o smessage.o timecheck.o torp.o ${ME_COMMON} warning.o \ + imath.o feature.o + +DAEMON_OBJS = daemonII.o dutil.o ${COMMON} conquer.o shipvals.o structdesc.o \ + sysdefaults.o weapons.o planets.o pl_gen0.o pl_gen1.o \ + pl_gen2.o pl_gen3.o pl_gen4.o pl_gen5.o pl_gen6.o pl_gen7.o player.o stats.o \ + misc.o tourny.o imath.o terrain.o + +ROBOT_OBJS = ${COMMON} detonate.o enter.o getship.o interface.o orbit.o \ + phaser.o robotII.o rmove.o torp.o ${ME_COMMON} imath.o + +SNAKE_OBJS = data.o path.o shmem.o cutil.o snake.o sintab.o snakemove.o \ + ${ME_COMMON} imath.o + +LISTEN_OBJS = data.o path.o listen.o + +TOOL_MES_OBJS = tool-mes.o tool-util.o ${TOOL_COMMON} + +TOOL_XTK_OBJS = tool-xtk.o tool-util.o ${TOOL_COMMON} getship.o # grid.o \ +# plutil.o + +TOOL_WM_OBJS = tool-wm.o tool-util.o ${TOOL_COMMON} + +TOOL_RESET_OBJS = tool-reset.o ${TOOL_COMMON} + +TOOL_PL_OBJS = tool-pl.o tool-util.o ${TOOL_COMMON} + +TOOL_PROMO_OBJS = tool-promo.o data.o + +TOOL_HR_OBJS = tool-hr.o ${TOOL_COMMON} + +TOOL_HS_OBJS = tool-hs.o ${TOOL_COMMON} + +TOOL_HERALDRY_OBJS = tool-heraldry.o data.o + +TOOL_DS_OBJS = tool-ds.o shmem.o path.o structdesc.o data.o + +TOOL_TRIM_OBJS = tool-trim.o ${TOOL_COMMON} + +R_FILES = data.c death.c detonate.c enter.c findslot.c getentry.c getname.c \ + getship.c input.c interface.c main.c orbit.c phaser.c plasma.c \ + redraw.c reserved.c sintab.c socket.c smessage.c timecheck.c torp.c \ + util.c path.c + +SRC = $(R_FILES) data.h defs.h planets.h struct.h packets.h + +DAEMON_SRCS=`echo ${DAEMON_OBJS} | sed -e 's/\.o/.c/g'` + +NTSERV_SRCS=`echo ${NTSERV_OBJS} | sed -e 's/\.o/.c/g'` + +ROBOT_SRCS=`echo ${ROBOT_OBJS} | sed -e 's/\.o/.c/g'` + +############################################################################## + +SERVER = ntserv daemonII listen + +ROBOTS = robotII snake + +TOOLS = mes wm hr hs +OTHERTOOLS = reset pl promo ds xtk heraldry trim + +default: + @echo "** Use 'make rules' for a list of make rules **" + ${MAKE} server + +rules: + @echo "*** Use any of the following ***"; \ + echo " General:"; \ + echo " server, robots, tools, alltools, makefile, install,"; \ + echo " install-tools, rsa, rsa-support, clean, spotless."; \ + echo " Specific:"; \ + echo " $(SERVER) $(ROBOTS)"; \ + echo " $(TOOLS) $(OTHERTOOLS)" + +makefile: + @cd ..; setup -p + +patchable: spotless + @echo "all:" > Makefile; \ + echo " @echo \"\"; \\" >> Makefile; \ + echo "echo \"** Run the setup script first **\"; \\" >> Makefile; \ + echo "echo \"\"" >> Makefile; \ + echo "server: all" >> Makefile; \ + echo "install: all" >> Makefile + +server: $(SERVER) $(ROBOTS) + +robots: $(ROBOTS) + +tools: $(TOOLS) + +alltools: $(TOOLS) ${OTHERTOOLS} + +rsa: + cd $(RSADIR); make; cd $(SRVDIR) + +rsa-support: + -ln -s $(RSADIR)/rsa-server.c + -ln -s $(RSADIR)/rsa_util.c + -ln -s $(RSADIR)/rsa_utilmp.c + -ln -s $(RSADIR)/reserved.c + +ntserv: $(NTSERV_OBJS) + ${CC} $(CFLAGS) $(GZLIBPATH) -o ntserv $(NTSERV_OBJS) $(LIBS) $(GZLIB) + -chmod ${INSTMODE} ntserv + +daemonII: $(DAEMON_OBJS) + ${CC} $(CFLAGS) $(GZLIBPATH) -o daemonII $(DAEMON_OBJS) ${LIBS} $(GZLIB) + -chmod ${INSTMODE} daemonII + +robotII: $(ROBOT_OBJS) + ${CC} $(CFLAGS) -o robotII $(ROBOT_OBJS) $(LIBS) + -chmod ${INSTMODE} robotII + +listen: $(LISTEN_OBJS) + ${CC} ${CFLAGS} $(GZLIBPATH) -o $@ ${LISTEN_OBJS} $(LIBS) $(GZLIB) + +snake: $(SNAKE_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ $(SNAKE_OBJS) $(LIBS) + -chmod ${INSTMODE} snake + +mes: $(TOOL_MES_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_MES_OBJS} $(LIBS) + +wm: $(TOOL_WM_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_WM_OBJS} $(LIBS) + +xtk: $(TOOL_XTK_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_XTK_OBJS} $(LIBS) + +reset: $(TOOL_RESET_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_RESET_OBJS} $(LIBS) + +pl: $(TOOL_PL_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_PL_OBJS} $(LIBS) + +promo: $(TOOL_PROMO_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_PROMO_OBJS} $(LIBS) + +hr: $(TOOL_HR_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_HR_OBJS} $(LIBS) + +hs: $(TOOL_HS_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_HS_OBJS} $(LIBS) + +heraldry: $(TOOL_HERALDRY_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_HERALDRY_OBJS} $(LIBS) + +ds: $(TOOL_DS_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_DS_OBJS} $(LIBS) + +trim: ${TOOL_TRIM_OBJS} + rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_TRIM_OBJS} $(LIBS) + +install: $(BINDIR)/daemonII $(BINDIR)/ntserv $(BINDIR)/listen \ + $(BINDIR)/robotII $(BINDIR)/snake + +install-tools: $(BINDIR)/mes $(BINDIR)/wm $(BINDIR)/reset $(BINDIR)/pl \ + $(BINDIR)/promo $(BINDIR)/hr $(BINDIR)/hs $(BINDIR)/ds # $(BINDIR)/xtk + +$(BINDIR)/ntserv: ntserv + -mv $@ $@.old + cp ntserv $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/daemonII: daemonII + -mv $@ $@.old + rm -f $(ETCDIR)/planets + touch $(ETCDIR)/planets + chmod 600 $(ETCDIR)/planets + cp daemonII $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/robotII: robotII + -mv $@ $@.old + cp robotII $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/listen: listen + -mv $@ $@.old + cp listen $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/snake: snake + -mv $@ $@.old + cp snake $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/mes: mes + -mv $@ $@.old + cp mes $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/wm: wm + -mv $@ $@.old + cp wm $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/xtk: xtk + -mv $@ $@.old + cp xtk $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/reset: reset + -mv $@ $@.old + cp reset $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/pl: pl + -mv $@ $@.old + cp pl $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/promo: promo + -mv $@ $@.old + cp promo $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/hr: hr + -mv $@ $@.old + cp hr $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/hs: hs + -mv $@ $@.old + cp hs $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/ds: ds + -mv $@ $@.old + cp ds $@ + chmod ${INSTMODE} $@ + +# +# + +lint-daemon: + lint ${DAEMON_SRCS} + +# +# + +protoize-daemon: + protoize -c "${CFLAGS}" -gN ${DAEMON_SRCS} + +protoize-ntserv: + protoize -c "${CFLAGS}" -gN ${NTSERV_SRCS} + +protoize-robotII: + protoize -c "${CFLAGS}" -gN ${ROBOT_SRCS} + +unprotoize-daemon: + unprotoize -c "${CFLAGS}" -N ${DAEMON_SRCS} + +unprotoize-ntserv: + unprotoize -c "${CFLAGS}" -N ${NTSERV_SRCS} + +unprotoize-robotII: + unprotoize -c "${CFLAGS}" -N ${ROBOT_SRCS} + +# +# + +clean: + rm -f *~ *.BAK *.orig *.rej core + rm -f $(SERVER) $(ROBOTS) $(TOOLS) $(OTHERTOOLS) + +spotless: clean + rm -f *.o + +############################################################################# +cluecheck.o : cluecheck.c config.h data.h defs.h struct.h shmem.h +cluecheckdriver.o : cluecheckdriver.c +conquer.o : conquer.c config.h defs.h struct.h data.h daemonII.h misc.h shmem.h \ + path.h +message.o : message.c config.h defs.h data.h struct.h shmem.h +cutil.o : cutil.c config.h data.h defs.h +daemonII.o : daemonII.c config.h defs.h struct.h data.h planets.h conquer.h \ + daemonII.h getship.h weapons.h player.h misc.h shmem.h path.h +data.o : data.c config.h defs.h struct.h data.h +death.o : death.c config.h defs.h struct.h data.h shmem.h +detonate.o : detonate.c config.h defs.h struct.h data.h shmem.h +dutil.o : dutil.c config.h defs.h struct.h data.h daemonII.h shmem.h +enter.o : enter.c config.h defs.h struct.h data.h shmem.h grid.h +fatudp.o : fatudp.c config.h defs.h data.h packets.h shmem.h struct.h +findslot.o : findslot.c config.h defs.h struct.h data.h packets.h shmem.h +gameconf.o : gameconf.c config.h defs.h gppackets.h packets.h shmem.h struct.h \ + data.h +getentry.o : getentry.c config.h defs.h struct.h data.h packets.h shmem.h +getname.o : getname.c config.h defs.h struct.h data.h packets.h path.h shmem.h +getship.o : getship.c config.h defs.h struct.h data.h shmem.h +getstats.o : getstats.c config.h +grid.o : grid.c config.h struct.h defs.h shmem.h +input.o : input.c config.h defs.h struct.h data.h shmem.h +interface.o : interface.c config.h defs.h struct.h data.h shmem.h +listen.o : listen.c path.h +main.o : main.c config.h defs.h struct.h data.h packets.h shmem.h path.h +misc.o : misc.c config.h defs.h misc.h struct.h data.h daemonII.h planets.h \ + shmem.h +missile.o : missile.c config.h defs.h struct.h data.h shmem.h grid.h +orbit.o : orbit.c config.h defs.h struct.h data.h shmem.h +packets.o : packets.c config.h defs.h packets.h gppackets.h wtext.h +parsexbm.o : parsexbm.c config.h +path.o : path.c config.h +phaser.o : phaser.c config.h defs.h struct.h data.h weapons.h shmem.h +ping.o : ping.c config.h defs.h struct.h data.h packets.h shmem.h +pl_gen0.o : pl_gen0.c config.h defs.h struct.h shmem.h planets.h +pl_gen1.o : pl_gen1.c config.h defs.h struct.h data.h shmem.h planets.h +pl_gen2.o : pl_gen2.c config.h defs.h struct.h data.h shmem.h planets.h +pl_gen3.o : pl_gen3.c config.h defs.h struct.h data.h shmem.h planets.h +pl_gen4.o : pl_gen4.c config.h defs.h struct.h data.h shmem.h planets.h +pl_gen5.o : pl_gen5.c config.h defs.h struct.h data.h shmem.h planets.h +pl_gen6.o : pl_gen6.c config.h defs.h struct.h data.h shmem.h planets.h +pl_gen7.o : pl_gen6.c config.h defs.h struct.h data.h shmem.h planets.h +planets.o : planets.c config.h defs.h struct.h data.h daemonII.h planets.h misc.h \ + conquer.h player.h grid.h shmem.h +plasma.o : plasma.c config.h defs.h struct.h data.h shmem.h +player.o : player.c config.h defs.h struct.h data.h daemonII.h player.h shmem.h \ + conquer.h +plutil.o : plutil.c config.h plutil.h data.h defs.h shmem.h struct.h +redraw.o : redraw.c config.h defs.h struct.h data.h packets.h shmem.h +reserved.o : reserved.c config.h defs.h packets.h +resetpassword.o : resetpassword.c struct.h defs.h +rmove.o : rmove.c config.h defs.h struct.h data.h weapons.h shmem.h +robotII.o : robotII.c config.h defs.h struct.h data.h shmem.h +rsa-server.o : rsa-server.c defs.h struct.h data.h packets.h +rsa_utilmp.o : rsa_utilmp.c +shipvals.o : shipvals.c config.h defs.h struct.h data.h shmem.h +shmem.o : shmem.c config.h shmem.h struct.h defs.h path.h data.h shmemP.h +sintab.o : sintab.c +smessage.o : smessage.c config.h defs.h struct.h data.h shmem.h +snake.o : snake.c config.h defs.h struct.h data.h shmem.h +snakemove.o : snakemove.c config.h defs.h struct.h data.h planets.h shmem.h +socket.o : socket.c config.h defs.h struct.h data.h packets.h shmem.h path.h \ + gppackets.h +sockio.o : sockio.c config.h data.h defs.h packets.h shmem.h struct.h +stats.o : stats.c config.h defs.h struct.h shmem.h +structdesc.o : structdesc.c config.h structdesc.h struct.h defs.h +sysdefaults.o : sysdefaults.c config.h defs.h struct.h data.h getship.h shmem.h \ + path.h structdesc.h +terrain.o : terrain.c terrain.h struct.h shmem.h +timecheck.o : timecheck.c config.h path.h +tool-ds.o : tool-ds.c config.h shmem.h struct.h defs.h structdesc.h +tool-reset.o : tool-reset.c config.h defs.h shmem.h struct.h getship.h +tool-heraldry.o : tool-heraldry.c config.h defs.h struct.h data.h +tool-hs.o : tool-hs.c config.h struct.h defs.h +tool-hr.o : tool-hr.c config.h defs.h struct.h path.c path.h +tool-mes.o : tool-mes.c config.h defs.h data.h shmem.h struct.h +tool-pl.o : tool-pl.c config.h data.h defs.h shmem.h struct.h tool-util.h +tool-promo.o : tool-promo.c config.h struct.h defs.h data.h +tool-trim.o : tool-trim.c config.h defs.h struct.h +tool-util.o : tool-util.c config.h tool-util.h defs.h +tool-wm.o : tool-wm.c config.h defs.h struct.h shmem.h +tool-xtk.o : tool-xtk.c config.h defs.h shmem.h struct.h getship.h +torp.o : torp.c config.h defs.h struct.h data.h shmem.h +tourny.o : tourny.c config.h defs.h struct.h shmem.h data.h +util.o : util.c config.h defs.h struct.h data.h shmem.h +wander2.o : wander2.c config.h defs.h struct.h data.h +warning.o : warning.c config.h defs.h struct.h data.h packets.h +weapons.o : weapons.c config.h defs.h struct.h data.h daemonII.h weapons.h shmem.h diff -r 4d6502ffaa5e -r 2719a89505ba src/Makefile.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/Makefile.in Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,450 @@ +# NETREK II -- Paradise +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any NON-COMMERCIAL purpose (following the terms of +# the GNU General Public License (read the file 'COPYING')) and without +# fee is hereby granted, provided that this copyright notice appear in all +# copies. No representations are made about the suitability of this +# software for any purpose. This software is provided "as is" without +# express or implied warranty. +# +# Xtrek Copyright 1986 Chris Guthrie +# Netrek (Xtrek II) Copyright 1989 Kevin P. Smith +# Scott Silvey +# Paradise (Netrek II) Copyright 1993 Larry Denys +# Kurt Olsen +# Brandon Gillespie +# Rob Forsman +# +# Comprehensive Credits available in the file docs/CREDITS +# +# Programmers: Modify the file 'Makefile.in' not the Makefile directly. +# + +MAKE = make +INSTMODE = 700 + +SRVDIR = . +BINDIR = ../bin +ETCDIR = ../etc +RSADIR = ../rsa + +#@@CCOPTIONS@ +#@@CDEBUGFLAGS@ +#@@CC@ + +### An override +# GCCWARNINGS = +# GCCOPTWARNINGS= -O -Wuninitialized -Wunused +# GCCWARNINGS = ${GCCOPTWARNINGS} -Wreturn-type -Wswitch -Wtrigraphs \ +# -Wformat -Wchar-subscripts -Wparentheses +# CC = gcc ${GCCWARNINGS} + +# Use this for the KSR1 supercomputer +# CC = cc -port_def_long -port_lowaddrs + +#################### +# RSA authorization stuff + +#@@RSA@ +#@@AUTHOBJS@ + +##################### + +#@@LIBS@ + +##################### +# GNU Zip libs +GZLIBPATH = -L/usr/local/lib +GZLIB = -lgz +GZLIBH = -I/usr/local/include + +#################### +#accumulation of all C flags. + +CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(RSA) $(GZLIBH) + +############################################################################## + +COMMON = data.o shmem.o plutil.o path.o grid.o cutil.o sintab.o + +ME_COMMON = util.o + +TOOL_COMMON = shmem.o path.o data.o + +NTSERV_OBJS = ${COMMON} cluecheck.o message.o death.o detonate.o \ + enter.o fatudp.o findslot.o gameconf.o getentry.o getname.o \ + getship.o input.o interface.o main.o missile.o orbit.o packets.o \ + parsexbm.o phaser.o ping.o plasma.o redraw.o ${AUTHOBJS} socket.o \ + sockio.o smessage.o timecheck.o torp.o ${ME_COMMON} warning.o \ + imath.o feature.o + +DAEMON_OBJS = daemonII.o dutil.o ${COMMON} conquer.o shipvals.o structdesc.o \ + sysdefaults.o weapons.o planets.o pl_gen0.o pl_gen1.o \ + pl_gen2.o pl_gen3.o pl_gen4.o pl_gen5.o pl_gen6.o pl_gen7.o player.o stats.o \ + misc.o tourny.o imath.o terrain.o + +ROBOT_OBJS = ${COMMON} detonate.o enter.o getship.o interface.o orbit.o \ + phaser.o robotII.o rmove.o torp.o ${ME_COMMON} imath.o + +SNAKE_OBJS = data.o path.o shmem.o cutil.o snake.o sintab.o snakemove.o \ + ${ME_COMMON} imath.o + +LISTEN_OBJS = data.o path.o listen.o + +TOOL_MES_OBJS = tool-mes.o tool-util.o ${TOOL_COMMON} + +TOOL_XTK_OBJS = tool-xtk.o tool-util.o ${TOOL_COMMON} getship.o # grid.o \ +# plutil.o + +TOOL_WM_OBJS = tool-wm.o tool-util.o ${TOOL_COMMON} + +TOOL_RESET_OBJS = tool-reset.o ${TOOL_COMMON} + +TOOL_PL_OBJS = tool-pl.o tool-util.o ${TOOL_COMMON} + +TOOL_PROMO_OBJS = tool-promo.o data.o + +TOOL_HR_OBJS = tool-hr.o ${TOOL_COMMON} + +TOOL_HS_OBJS = tool-hs.o ${TOOL_COMMON} + +TOOL_HERALDRY_OBJS = tool-heraldry.o data.o + +TOOL_DS_OBJS = tool-ds.o shmem.o path.o structdesc.o data.o + +TOOL_TRIM_OBJS = tool-trim.o ${TOOL_COMMON} + +R_FILES = data.c death.c detonate.c enter.c findslot.c getentry.c getname.c \ + getship.c input.c interface.c main.c orbit.c phaser.c plasma.c \ + redraw.c reserved.c sintab.c socket.c smessage.c timecheck.c torp.c \ + util.c path.c + +SRC = $(R_FILES) data.h defs.h planets.h struct.h packets.h + +DAEMON_SRCS=`echo ${DAEMON_OBJS} | sed -e 's/\.o/.c/g'` + +NTSERV_SRCS=`echo ${NTSERV_OBJS} | sed -e 's/\.o/.c/g'` + +ROBOT_SRCS=`echo ${ROBOT_OBJS} | sed -e 's/\.o/.c/g'` + +############################################################################## + +SERVER = ntserv daemonII listen + +ROBOTS = robotII snake + +TOOLS = mes wm hr hs +OTHERTOOLS = reset pl promo ds xtk heraldry trim + +default: + @echo "** Use 'make rules' for a list of make rules **" + ${MAKE} server + +rules: + @echo "*** Use any of the following ***"; \ + echo " General:"; \ + echo " server, robots, tools, alltools, makefile, install,"; \ + echo " install-tools, rsa, rsa-support, clean, spotless."; \ + echo " Specific:"; \ + echo " $(SERVER) $(ROBOTS)"; \ + echo " $(TOOLS) $(OTHERTOOLS)" + +makefile: + @cd ..; setup -p + +patchable: spotless + @echo "all:" > Makefile; \ + echo " @echo \"\"; \\" >> Makefile; \ + echo "echo \"** Run the setup script first **\"; \\" >> Makefile; \ + echo "echo \"\"" >> Makefile; \ + echo "server: all" >> Makefile; \ + echo "install: all" >> Makefile + +server: $(SERVER) $(ROBOTS) + +robots: $(ROBOTS) + +tools: $(TOOLS) + +alltools: $(TOOLS) ${OTHERTOOLS} + +rsa: + cd $(RSADIR); make; cd $(SRVDIR) + +rsa-support: + -ln -s $(RSADIR)/rsa-server.c + -ln -s $(RSADIR)/rsa_util.c + -ln -s $(RSADIR)/rsa_utilmp.c + -ln -s $(RSADIR)/reserved.c + +ntserv: $(NTSERV_OBJS) + ${CC} $(CFLAGS) $(GZLIBPATH) -o ntserv $(NTSERV_OBJS) $(LIBS) $(GZLIB) + -chmod ${INSTMODE} ntserv + +daemonII: $(DAEMON_OBJS) + ${CC} $(CFLAGS) $(GZLIBPATH) -o daemonII $(DAEMON_OBJS) ${LIBS} $(GZLIB) + -chmod ${INSTMODE} daemonII + +robotII: $(ROBOT_OBJS) + ${CC} $(CFLAGS) -o robotII $(ROBOT_OBJS) $(LIBS) + -chmod ${INSTMODE} robotII + +listen: $(LISTEN_OBJS) + ${CC} ${CFLAGS} $(GZLIBPATH) -o $@ ${LISTEN_OBJS} $(LIBS) $(GZLIB) + +snake: $(SNAKE_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ $(SNAKE_OBJS) $(LIBS) + -chmod ${INSTMODE} snake + +mes: $(TOOL_MES_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_MES_OBJS} $(LIBS) + +wm: $(TOOL_WM_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_WM_OBJS} $(LIBS) + +xtk: $(TOOL_XTK_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_XTK_OBJS} $(LIBS) + +reset: $(TOOL_RESET_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_RESET_OBJS} $(LIBS) + +pl: $(TOOL_PL_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_PL_OBJS} $(LIBS) + +promo: $(TOOL_PROMO_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_PROMO_OBJS} $(LIBS) + +hr: $(TOOL_HR_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_HR_OBJS} $(LIBS) + +hs: $(TOOL_HS_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_HS_OBJS} $(LIBS) + +heraldry: $(TOOL_HERALDRY_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_HERALDRY_OBJS} $(LIBS) + +ds: $(TOOL_DS_OBJS) + /bin/rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_DS_OBJS} $(LIBS) + +trim: ${TOOL_TRIM_OBJS} + rm -f $@ + ${CC} $(CFLAGS) -o $@ ${TOOL_TRIM_OBJS} $(LIBS) + +install: $(BINDIR)/daemonII $(BINDIR)/ntserv $(BINDIR)/listen \ + $(BINDIR)/robotII $(BINDIR)/snake + +install-tools: $(BINDIR)/mes $(BINDIR)/wm $(BINDIR)/reset $(BINDIR)/pl \ + $(BINDIR)/promo $(BINDIR)/hr $(BINDIR)/hs $(BINDIR)/ds # $(BINDIR)/xtk + +$(BINDIR)/ntserv: ntserv + -mv $@ $@.old + cp ntserv $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/daemonII: daemonII + -mv $@ $@.old + rm -f $(ETCDIR)/planets + touch $(ETCDIR)/planets + chmod 600 $(ETCDIR)/planets + cp daemonII $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/robotII: robotII + -mv $@ $@.old + cp robotII $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/listen: listen + -mv $@ $@.old + cp listen $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/snake: snake + -mv $@ $@.old + cp snake $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/mes: mes + -mv $@ $@.old + cp mes $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/wm: wm + -mv $@ $@.old + cp wm $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/xtk: xtk + -mv $@ $@.old + cp xtk $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/reset: reset + -mv $@ $@.old + cp reset $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/pl: pl + -mv $@ $@.old + cp pl $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/promo: promo + -mv $@ $@.old + cp promo $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/hr: hr + -mv $@ $@.old + cp hr $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/hs: hs + -mv $@ $@.old + cp hs $@ + chmod ${INSTMODE} $@ + +$(BINDIR)/ds: ds + -mv $@ $@.old + cp ds $@ + chmod ${INSTMODE} $@ + +# +# + +lint-daemon: + lint ${DAEMON_SRCS} + +# +# + +protoize-daemon: + protoize -c "${CFLAGS}" -gN ${DAEMON_SRCS} + +protoize-ntserv: + protoize -c "${CFLAGS}" -gN ${NTSERV_SRCS} + +protoize-robotII: + protoize -c "${CFLAGS}" -gN ${ROBOT_SRCS} + +unprotoize-daemon: + unprotoize -c "${CFLAGS}" -N ${DAEMON_SRCS} + +unprotoize-ntserv: + unprotoize -c "${CFLAGS}" -N ${NTSERV_SRCS} + +unprotoize-robotII: + unprotoize -c "${CFLAGS}" -N ${ROBOT_SRCS} + +# +# + +clean: + rm -f *~ *.BAK *.orig *.rej core + rm -f $(SERVER) $(ROBOTS) $(TOOLS) $(OTHERTOOLS) + +spotless: clean + rm -f *.o + +############################################################################# +cluecheck.o : cluecheck.c config.h data.h defs.h struct.h shmem.h +cluecheckdriver.o : cluecheckdriver.c +conquer.o : conquer.c config.h defs.h struct.h data.h daemonII.h misc.h shmem.h \ + path.h +message.o : message.c config.h defs.h data.h struct.h shmem.h +cutil.o : cutil.c config.h data.h defs.h +daemonII.o : daemonII.c config.h defs.h struct.h data.h planets.h conquer.h \ + daemonII.h getship.h weapons.h player.h misc.h shmem.h path.h +data.o : data.c config.h defs.h struct.h data.h +death.o : death.c config.h defs.h struct.h data.h shmem.h +detonate.o : detonate.c config.h defs.h struct.h data.h shmem.h +dutil.o : dutil.c config.h defs.h struct.h data.h daemonII.h shmem.h +enter.o : enter.c config.h defs.h struct.h data.h shmem.h grid.h +fatudp.o : fatudp.c config.h defs.h data.h packets.h shmem.h struct.h +findslot.o : findslot.c config.h defs.h struct.h data.h packets.h shmem.h +gameconf.o : gameconf.c config.h defs.h gppackets.h packets.h shmem.h struct.h \ + data.h +getentry.o : getentry.c config.h defs.h struct.h data.h packets.h shmem.h +getname.o : getname.c config.h defs.h struct.h data.h packets.h path.h shmem.h +getship.o : getship.c config.h defs.h struct.h data.h shmem.h +getstats.o : getstats.c config.h +grid.o : grid.c config.h struct.h defs.h shmem.h +input.o : input.c config.h defs.h struct.h data.h shmem.h +interface.o : interface.c config.h defs.h struct.h data.h shmem.h +listen.o : listen.c path.h +main.o : main.c config.h defs.h struct.h data.h packets.h shmem.h path.h +misc.o : misc.c config.h defs.h misc.h struct.h data.h daemonII.h planets.h \ + shmem.h +missile.o : missile.c config.h defs.h struct.h data.h shmem.h grid.h +orbit.o : orbit.c config.h defs.h struct.h data.h shmem.h +packets.o : packets.c config.h defs.h packets.h gppackets.h wtext.h +parsexbm.o : parsexbm.c config.h +path.o : path.c config.h +phaser.o : phaser.c config.h defs.h struct.h data.h weapons.h shmem.h +ping.o : ping.c config.h defs.h struct.h data.h packets.h shmem.h +pl_gen0.o : pl_gen0.c config.h defs.h struct.h shmem.h planets.h +pl_gen1.o : pl_gen1.c config.h defs.h struct.h data.h shmem.h planets.h +pl_gen2.o : pl_gen2.c config.h defs.h struct.h data.h shmem.h planets.h +pl_gen3.o : pl_gen3.c config.h defs.h struct.h data.h shmem.h planets.h +pl_gen4.o : pl_gen4.c config.h defs.h struct.h data.h shmem.h planets.h +pl_gen5.o : pl_gen5.c config.h defs.h struct.h data.h shmem.h planets.h +pl_gen6.o : pl_gen6.c config.h defs.h struct.h data.h shmem.h planets.h +pl_gen7.o : pl_gen6.c config.h defs.h struct.h data.h shmem.h planets.h +planets.o : planets.c config.h defs.h struct.h data.h daemonII.h planets.h misc.h \ + conquer.h player.h grid.h shmem.h +plasma.o : plasma.c config.h defs.h struct.h data.h shmem.h +player.o : player.c config.h defs.h struct.h data.h daemonII.h player.h shmem.h \ + conquer.h +plutil.o : plutil.c config.h plutil.h data.h defs.h shmem.h struct.h +redraw.o : redraw.c config.h defs.h struct.h data.h packets.h shmem.h +reserved.o : reserved.c config.h defs.h packets.h +resetpassword.o : resetpassword.c struct.h defs.h +rmove.o : rmove.c config.h defs.h struct.h data.h weapons.h shmem.h +robotII.o : robotII.c config.h defs.h struct.h data.h shmem.h +rsa-server.o : rsa-server.c defs.h struct.h data.h packets.h +rsa_utilmp.o : rsa_utilmp.c +shipvals.o : shipvals.c config.h defs.h struct.h data.h shmem.h +shmem.o : shmem.c config.h shmem.h struct.h defs.h path.h data.h shmemP.h +sintab.o : sintab.c +smessage.o : smessage.c config.h defs.h struct.h data.h shmem.h +snake.o : snake.c config.h defs.h struct.h data.h shmem.h +snakemove.o : snakemove.c config.h defs.h struct.h data.h planets.h shmem.h +socket.o : socket.c config.h defs.h struct.h data.h packets.h shmem.h path.h \ + gppackets.h +sockio.o : sockio.c config.h data.h defs.h packets.h shmem.h struct.h +stats.o : stats.c config.h defs.h struct.h shmem.h +structdesc.o : structdesc.c config.h structdesc.h struct.h defs.h +sysdefaults.o : sysdefaults.c config.h defs.h struct.h data.h getship.h shmem.h \ + path.h structdesc.h +terrain.o : terrain.c terrain.h struct.h shmem.h +timecheck.o : timecheck.c config.h path.h +tool-ds.o : tool-ds.c config.h shmem.h struct.h defs.h structdesc.h +tool-reset.o : tool-reset.c config.h defs.h shmem.h struct.h getship.h +tool-heraldry.o : tool-heraldry.c config.h defs.h struct.h data.h +tool-hs.o : tool-hs.c config.h struct.h defs.h +tool-hr.o : tool-hr.c config.h defs.h struct.h path.c path.h +tool-mes.o : tool-mes.c config.h defs.h data.h shmem.h struct.h +tool-pl.o : tool-pl.c config.h data.h defs.h shmem.h struct.h tool-util.h +tool-promo.o : tool-promo.c config.h struct.h defs.h data.h +tool-trim.o : tool-trim.c config.h defs.h struct.h +tool-util.o : tool-util.c config.h tool-util.h defs.h +tool-wm.o : tool-wm.c config.h defs.h struct.h shmem.h +tool-xtk.o : tool-xtk.c config.h defs.h shmem.h struct.h getship.h +torp.o : torp.c config.h defs.h struct.h data.h shmem.h +tourny.o : tourny.c config.h defs.h struct.h shmem.h data.h +util.o : util.c config.h defs.h struct.h data.h shmem.h +wander2.o : wander2.c config.h defs.h struct.h data.h +warning.o : warning.c config.h defs.h struct.h data.h packets.h +weapons.o : weapons.c config.h defs.h struct.h data.h daemonII.h weapons.h shmem.h diff -r 4d6502ffaa5e -r 2719a89505ba src/cluecheck.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cluecheck.c Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,871 @@ +/*-------------------------------------------------------------------------- +NETREK II -- Paradise + +Permission to use, copy, modify, and distribute this software and its +documentation, or any derivative works thereof, for any NON-COMMERCIAL +purpose and without fee is hereby granted, provided that this copyright +notice appear in all copies. No representations are made about the +suitability of this software for any purpose. This software is provided +"as is" without express or implied warranty. + + Xtrek Copyright 1986 Chris Guthrie + Netrek (Xtrek II) Copyright 1989 Kevin P. Smith + Scott Silvey + Paradise II (Netrek II) Copyright 1993 Larry Denys + Kurt Olsen + Brandon Gillespie +--------------------------------------------------------------------------*/ + +#include "config.h" +#include +#include +#include +#include "defs.h" +#include "data.h" +#include "struct.h" +#include "shmem.h" + +#ifdef CLUECHECK1 + +/* ----------------- ROBS CLUECHECK -------------------- */ + +static char clueword[40]; + +void +set_clue_word(word) + char *word; +{ + strncpy(clueword, word, sizeof(clueword)); + clueword[sizeof(clueword) - 1] = 0; +} + +#ifdef MOTD_SUPPORT +static char *motdstring = 0; +static int motdlen = 0; + +void free_motdstruct(); +#endif + +/* read the MOTD into core so we can parse it later */ +void +init_motdbuf(fname) + char *fname; +{ +#ifdef MOTD_SUPPORT + struct stat stats; + FILE *fp; + + if (motdstring != 0) + { + free_motdstruct(); + free(motdstring); + motdstring = 0; + motdlen = 0; + } + + if (!configvals->cluecheck || + configvals->cluecheck != CC_MOTD) + return; /* don't waste the memory if we're not clue + * checking from the MOTD */ + + if (0 > stat(fname, &stats)) + { + perror("statting file"); + return; + } + + motdlen = stats.st_size; + + motdstring = (char *) malloc(motdlen + 1); + fp = fopen(fname, "r"); + if (0 == fp) + { + perror("opening file"); + exit(1); + } + fread(motdstring, motdlen, 1, fp); +#endif +} + +static int page; +static int isfirst; + +#ifdef MOTD_SUPPORT + +static int line, wordn; + +/* structures for the internal representation of the MOTD */ +#define LINESPERPAGE 38 + +struct word +{ + char *s; +}; + +struct line +{ + struct word *words; + int nwords; +}; + +struct page +{ + struct line lines[LINESPERPAGE]; + int nlines; + struct page *next; +}; + +struct page *motdhead = 0; + + + +#define MAXATTEMPTS 10 +void +find_suitable_motd_word() +{ + int attempts; + int pagecount; + int i; + struct page *currp; + + + for (pagecount = 0, currp = motdhead; + currp; + pagecount++, currp = currp->next) + ; + + if (pagecount > 10) + pagecount = 10; + + for (attempts = 0; pagecount > 1 && attempts < MAXATTEMPTS; attempts++) + { + /* the first page is excluded. Everybody sees that */ + page = 1 + lrand48() % (pagecount - 1); + + for (i = 0, currp = motdhead; i < page; i++, currp = currp->next) + ; + if (currp->nlines < 1) + continue; + if (lrand48() & 1) + { + /* get first word */ + isfirst = 1; + for (line = 0; line < currp->nlines; line++) + if (currp->lines[line].nwords > 0) + break; + if (line >= currp->nlines) + continue; + wordn = 0; + } + else + { + /* get last word */ + isfirst = 0; + for (line = currp->nlines - 1; line >= 0; line--) + if (currp->lines[line].nwords > 0) + break; + if (line < 0) + continue; + wordn = currp->lines[line].nwords - 1; + } + set_clue_word(currp->lines[line].words[wordn].s); + /* + * printf("%s word on page %d (line %d word %d) is %s\n", + * isfirst?"first":"last", page+1, line+1, wordn+1, clueword); + */ + return; + } + page = -1; +} + +#if 0 +/* for the day when we have line numbers in the MOTD. */ +void +find_suitable_word2() +{ + int attempts; + int pagecount; + int i; + struct page *currp; + + + for (pagecount = 0, currp = motdhead; currp; pagecount++, currp = currp->next) + ; + + for (attempts = 0; attempts < 10; attempts++) + { + page = lrand48() % pagecount; + for (i = 0, currp = motdhead; i < page; i++, currp = currp->next) + ; + if (currp->nlines < 1) + continue; + line = lrand48() % currp->nlines; + if (currp->lines[line].nwords < 1) + continue; + wordn = lrand48() % currp->lines[line].nwords; + set_clue_word(currp->lines[line].words[wordn].s); + printf("word on page %d line %d word %d is %s\n", + page + 1, line + 1, wordn + 1, clueword); + return; + } + clueword[0] = 0; +} +#endif + +#if 0 +/* useful for debugging the MOTD parsing routine */ +void +printout_motd() +{ + struct page *currp; + int i, j; + for (currp = motdhead; currp; currp = currp->next) + { + for (i = 0; i < currp->nlines; i++) + { + for (j = 0; j < currp->lines[i].nwords; j++) + { + printf("%s ", currp->lines[i].words[j].s); + } + printf("\n"); + } + printf("\014"); + } +} +#endif + + +void +parse_motd() +{ + struct page **currp; + int idx; + + if (motdhead) + return; + + currp = &motdhead; + + idx = 0; + while (idx < motdlen) + { + int validword; + char *wordbegin; + + validword = 1; + + /* skip whitespace */ + while (!isalpha(motdstring[idx]) && motdstring[idx] != '\n' && idx < motdlen) + idx++; + if (idx >= motdlen) + break; + + if (0 == *currp) + { + *currp = malloc(sizeof(**currp)); + (*currp)->nlines = 1; + (*currp)->lines[0].nwords = 0; + (*currp)->next = 0; + } + + if (motdstring[idx] == '\n') + { + idx++; + if (0 == strncmp(&motdstring[idx], "\t@@@", 4)) + break; + else if (0 == strncmp(&motdstring[idx], "\t@@b", 4)) + { + if (*currp) + currp = &(*currp)->next; + idx += 4; + } + else + { + struct line *currl = &(*currp)->lines[(*currp)->nlines - 1]; + currl->words = realloc(currl->words, sizeof(*currl->words) * currl->nwords); + if ((*currp)->nlines >= LINESPERPAGE) + currp = &(*currp)->next; + else + { + (*currp)->lines[(*currp)->nlines].nwords = 0; + (*currp)->nlines++; + } + } + continue; + } + wordbegin = &motdstring[idx]; + while (isalpha(motdstring[idx]) && idx < motdlen) + { +#if 0 + if (!isalpha(motdstring[idx])) + validword = 0; +#endif + idx++; + } + + if (0 && !validword) + continue; + + { + struct line *currl = &(*currp)->lines[(*currp)->nlines - 1]; + int len; + + if (currl->nwords == 0) + { + int size = 40; + int j; + currl->words = malloc(sizeof(struct word) * size); + for (j = 0; j < size; j++) + { + currl->words[j].s = 0; + } + } + len = (&motdstring[idx]) - wordbegin; + currl->words[currl->nwords].s = malloc(len + 1); + strncpy(currl->words[currl->nwords].s, wordbegin, len); + currl->words[currl->nwords].s[len] = 0; + currl->nwords++; + } + } +} +#endif + +/**********************************************************************/ + +char **phrases = 0; +int num_phrases = 0; + +void +parse_clue_phrases() +{ + char *s; + int size; + + if (phrases) + return; + + phrases = (char **) malloc(sizeof(*phrases) * (size = 20)); + + for (s = cluephrase_storage; *s; s += strlen(s) + 1) + { + phrases[num_phrases] = s; + num_phrases++; + if (num_phrases >= size) + phrases = (char **) realloc(phrases, sizeof(*phrases) * (size *= 2)); + } + + phrases = (char **) realloc(phrases, sizeof(*phrases) * num_phrases); +} + +/**********************************************************************/ + + +#define BERATE(msg) pmessage( (msg), me->p_no, MINDIV, " CC") + +/* print the message that tells the person how to respond to the clue check */ +void +remind_cluecheck() +{ + char buf[120]; + BERATE("This is a clue check! You must send yourself the message"); + BERATE(" cluecheck [phrase]"); + if (page >= 0) + { + sprintf(buf, "where [phrase] is the %s word on page %d of the MOTD.", + isfirst ? "first" : "last", page + 1); + } + else + { + /* man, the MOTD had no good words */ + sprintf(buf, "where [phrase] is %s", clueword); + } + BERATE(buf); + if (me->p_cluecountdown > 60) + sprintf(buf, "If you don't answer within %g minutes, you will be kicked out of", me->p_cluecountdown / (60.0 * 10)); + else + sprintf(buf, "If you don't answer within %d seconds, you will be kicked out of", me->p_cluecountdown / 10); + BERATE(buf); + BERATE("the game and publicly humiliated."); +#if 0 + BERATE("If you are a complete newbie, then"); + BERATE("you probably don't even realize that you can read the MOTD while"); + BERATE("playing (shift-M)."); +#endif +} + +/* + * if other methods of getting clue words fail, then we've always got this + * list of words + */ +static char *fallback_cluewords[] = { + + /* terms: */ + "bomb", "ogg", "scum", "stoneage", "scout", "taxi", "base", + "buttorp", "flee", "planet", "star", "warp", "impulse", "hive", + "repair", "shipyard", "fuel", "arable", "metal", "dilithium", + "standard", "thin", "tainted", "toxic", "phaser", "torp", "photon", + "plasma", "missile", "fighter", "tractor", "pressor", + + /* what quarks are made of: */ + "satan", "beer", "jesus", "sex", "cthulhu", + + /* two food groups: */ + /* "grilledcheesesandwich", annoyed too many people */ "ketchup", "caffeine", + + /* the men: */ + /* "a fungusamongus", people have difficulty with this one */ + "Bubbles", "Hammor", "Key", "Kaos", "Lynx", + "Thought", "Brazilian", "Ogre", + + /* the big five: */ + "Paradise", "Arctica", "Aedile", "Eden", "Minuet", + + /* what you are: */ + "twink" +}; + +#define NUM_CLUEWORDS ( sizeof(fallback_cluewords) \ + / sizeof(*fallback_cluewords)) + +/* + * Once in a great while (hour?) the server demands a clue check from the + * player. This makes sure you are paying attention. + */ +void +demand_clue() +{ + clueword[0] = 0; + page = -1; + switch (configvals->cluesource) + { + case CC_MOTD: +#ifdef MOTD_SUPPORT + parse_motd(); + + find_suitable_motd_word(); +#endif + break; + case CC_PHRASE_LIST_FILE: + parse_clue_phrases(); + + if (num_phrases) + { + set_clue_word(phrases[lrand48() % num_phrases]); + } + break; /* uh, NYI */ + case CC_COMPILED_IN_PHRASE_LIST: + break; /* that's actually the fallback case below: */ + } + if (*clueword == 0) /* didn't find one! */ + set_clue_word(fallback_cluewords[lrand48() % NUM_CLUEWORDS]); + + me->p_cluecountdown = configvals->cluetime * TICKSPERSEC; + + remind_cluecheck(); +} + +/* every tick, check the person's clue status */ +void +countdown_clue() +{ + if (me->p_status == POUTFIT || me->p_status == PTQUEUE) + return; + if (me->p_cluedelay > 0) + { + me->p_cluedelay--; + if (me->p_cluedelay < 1 + && (me->p_stats.st_cluesuccess < 25 + || lrand48() % 20 < 1)) + { + /* uhoh, time for another cluecheck */ + demand_clue(); + } + } + else if (me->p_cluecountdown > 0) + { + char buf[120]; + + /* under the gun here */ + me->p_cluecountdown--; + if (me->p_cluecountdown > 0) + return; + + /* uhoh, we have a twink */ + + me->p_status = PEXPLODE; + me->p_explode = 10; + me->p_whydead = KQUIT; + + sprintf(buf, "%s (%s) was blasted out of existence due to terminal", + me->p_name, twoletters(me)); + pmessage(buf, -1, MALL, MSERVA); + pmessage("stupidity (failure to read messages).", -1, MALL, MSERVA); + pmessage("Let this be a lesson to the rest of you twinks!", -1, MALL, MSERVA); + } + else + { + me->p_cluedelay = 40; + } +} + +/* the person sent themselves the message "cluecheck..." */ +int +accept_cluecheck(word) + char *word; +{ + int i; + char buf[120]; + + if (me->p_cluedelay > 0) + { + sprintf(buf, "Don't worry %s. You aren't under a clue check yet.", + me->p_name); + BERATE(buf); + } + else if (*word) + { + for (i = 0; word[i] && clueword[i]; i++) + { + if (tolower(word[i]) != tolower(clueword[i])) + break; + } + + if (word[i] || clueword[i]) + { + sprintf(buf, "Nice try, %s. Guess again. It's not %s.", + me->p_name, word); + BERATE(buf); + BERATE("Send yourself the message `cluecheck' if you need another hint."); + } + else + { + sprintf(buf, "Good show, %s. I won't bother you again for a while.", + me->p_name); + BERATE(buf); + me->p_cluedelay = (configvals->cluedelay / 2) + + lrand48() % (configvals->cluedelay / 2); + me->p_cluedelay *= TICKSPERSEC; + + me->p_stats.st_cluesuccess++; + } + } + else + { + remind_cluecheck(); + } + return 1; +} + +/**********************************************************************/ + +#ifdef MOTD_SUPPORT +void +free_word(wd) + struct word *wd; +{ + free(wd->s); +} + +void +free_line(ln) + struct line *ln; +{ + int i; + for (i = 0; i < ln->nwords; i++) + free_word(&ln->words[i]); + free(ln->words); +} + +void +free_page(pg) + struct page *pg; +{ + int i; + for (i = 0; i < LINESPERPAGE; i++) + { + free_line(&pg->lines[i]); + } +} + +void +free_motdstruct() +{ + struct page *temp; + while (motdhead) + { + temp = motdhead; + motdhead = temp->next; + + free_page(temp); + free(temp); + } +} +#endif + +#endif /* CLUECHECK1 */ + +#ifdef CLUECHECK2 + +/* ---------[ CLUECHECK2 -> Brandons hacked version of CLUECHECK1 ]--------- */ + +/* + * // I munged this (sorry Rob). Using me->p_cluecountdown: // if it is + * 0 you have not been checked yet // if it is 1 your time is up. // + * if it is -1 you should not be checked. // if it is anything greater + * than one you are under the timer + */ + +/* -------------------------[ Globals (eep) ]------------------------- */ + +#define TellLINE { pmessage("", me->p_no, MINDIV, "***! Cluecheck !**! Cluecheck !**! Cluecheck !**! Cluecheck !**! Cluecheck !***"); } + +#define NUM_CLUEWORDS (sizeof(fallback_cluewords) / \ + sizeof(*fallback_cluewords)) +#define CLUE_GETOUTOFIT 7 + +char **phrases = 0; +int num_phrases = 0; +static char clueword[40]; + +/* + * // if other methods of getting clue words fail, then we've always got // + * this list of words + */ + +static char *fallback_cluewords[] = { + /* make it simple, if they want more they can make a .cluecheck file */ + "bomb", "ogg", "scum", "stoneage", "scout", "taxi", "base", + "buttorp", "flee", "planet", "star", "warp", "impulse", "hive", + "repair", "shipyard", "fuel", "arable", "metal", "dilithium", + "standard", "thin", "tainted", "toxic", "phaser", "torp", "photon", + "plasma", "missile", "fighter", "tractor", "pressor", +}; + +/* -------------------------[ Functions ]------------------------- */ + +void +set_clue_word(char *word) +{ + strncpy(clueword, word, sizeof(clueword)); + clueword[sizeof(clueword) - 1] = 0; +} + +void +parse_clue_phrases() +{ + char *s; + int size; + + if (phrases) + return; + + phrases = (char **) malloc(sizeof(*phrases) * (size = 20)); + + for (s = cluephrase_storage; *s; s += strlen(s) + 1) + { + phrases[num_phrases] = s; + num_phrases++; + if (num_phrases >= size) + phrases = (char **) realloc(phrases, sizeof(*phrases) * (size *= 2)); + } + + phrases = (char **) realloc(phrases, sizeof(*phrases) * num_phrases); +} + +/* + * // print the message that tells the person how to respond to the clue + * check + */ +void +remind_cluecheck() +{ + char buf[120]; + + pmessage("", me->p_no, MINDIV, "*******************************************************************************"); + TellLINE; + sprintf(buf, " Send yourself: \"cluecheck %s\"", clueword); + pmessage(buf, me->p_no, MINDIV, ""); + + if (me->p_cluecountdown > (60 * TICKSPERSEC)) + { + sprintf(buf, + " Answer within %.2g minutes or be ejected from the game.", + (me->p_cluecountdown / (60.0 * TICKSPERSEC))); + pmessage(buf, me->p_no, MINDIV, ""); + } + else + { + sprintf(buf, + "** ANSWER ** within %d seconds or be ejected from the game.", + (me->p_cluecountdown / 10)); + pmessage(buf, me->p_no, MINDIV, ""); + } + pmessage("", me->p_no, MINDIV, "*******************************************************************************"); + +} + +/* called the first time */ +void +demand_clue() +{ + char buf[255]; + char syou[32]; + clueword[0] = 0; + + sprintf(syou, "%s->YOU", SERVNAME); + /* higher than rank CLUE_GETOUTOFIT get ... out of it */ + if (me->p_stats.st_rank > CLUE_GETOUTOFIT /* if my rank is high enough */ + || me->p_stats.st_royal == GODLIKE + 1 /* or I'm Q */ ) + { + TellLINE; + pmessage("Due to your ranking status, I will let you off the hook.", + me->p_no, MINDIV, syou); + me->p_cluecountdown = -1; + return; + } + else if (me->p_stats.st_cluesuccess > configvals->cluecheck) + { + TellLINE; + sprintf(buf, "You have passed the cluecheck the required %d times.", + configvals->cluecheck); + pmessage(buf, me->p_no, MINDIV, syou); + me->p_cluecountdown = -1; + return; + } + + parse_clue_phrases(); + + if (num_phrases) + set_clue_word(phrases[lrand48() % num_phrases]); + if (*clueword == 0) /* didn't find one! */ + set_clue_word(fallback_cluewords[lrand48() % NUM_CLUEWORDS]); + me->p_cluecountdown = configvals->cluetime * TICKSPERSEC; + + remind_cluecheck(); +} + + +/* every tick, check the person's clue status */ +void +countdown_clue() +{ + if (me->p_cluecountdown != -1) + { + if (me->p_status == POUTFIT + || me->p_status == PTQUEUE + || me->p_status == POBSERVE) + return; + + /* let bases off the hook */ + if (me->p_ship.s_type == 5 || me->p_ship.s_type == 9) + return; + + if (me->p_cluedelay > 0) + { + me->p_cluedelay--; + return; + } + + /* is it greater than one? */ + if (me->p_cluecountdown > 0) + { + char buf[255]; + + /* under the gun here */ + me->p_cluecountdown--; + + if (me->p_cluecountdown == 150 * TICKSPERSEC + || me->p_cluecountdown == 60 * TICKSPERSEC + || me->p_cluecountdown == 10 * TICKSPERSEC) + { + remind_cluecheck(); + return; + } + + /* is it still greater than 1? */ + else if (me->p_cluecountdown > 0) + return; + + /* uhoh, we have a twink */ + me->p_status = PEXPLODE; + me->p_explode = 10; + me->p_whydead = KQUIT; + me->p_cluecountdown = -1; + + sprintf(buf, "%s (%s) was ejected for failing a cluecheck.", + me->p_name, twoletters(me)); + pmessage(buf, SERVNAME, MALL, " ** CLUECHECK **"); + +#ifdef MAIL_CLUELETTER + sprintf(buf, "%s %s %s", build_path(MAILCLUECHECK), + me->p_login, me->p_full_hostname); + system(buf); +#endif + } + else + { + /* + * they aren't -1, they are greater than 1, so they havn't been checked + * yet + */ + demand_clue(); + } + } +} + + +/* + * // the person sent themselves the message "cluecheck..." // called in + * controls (message.c) + */ +int +accept_cluecheck(char *word) +{ + int i; + char buf[120]; + char syou[32]; + + sprintf(syou, "%s->YOU", SERVNAME); + if (me->p_cluecountdown == -1 || !me->p_cluecountdown) + { + pmessage("You are not under a cluecheck.", + me->p_no, MINDIV, syou); + return; + } + else if (*word) + { + for (i = 0; word[i] && clueword[i]; i++) + { + if (tolower(word[i]) != tolower(clueword[i])) + break; + } + + if (word[i] || clueword[i]) + { + sprintf(buf, "Nice try, guess again. It is not \"%s\".", word); + pmessage(buf, me->p_no, MINDIV, syou); + pmessage( + "Send the message \"cluecheck\" to yourself for another hint.", + me->p_no, MINDIV, syou); + } + else + { + sprintf(buf, + "Good show %s. I won't bother you again for a while.", + me->p_name); + pmessage(buf, me->p_no, MINDIV, syou); + me->p_stats.st_cluesuccess++; + me->p_cluecountdown = -1; + } + } + else + { + remind_cluecheck(); + } + sprintf(buf, "You have passed the cluecheck %d times.", + me->p_stats.st_cluesuccess); + pmessage(buf, me->p_no, MINDIV, syou); + return 1; +} + +#endif /* CLUECHECK2 */ diff -r 4d6502ffaa5e -r 2719a89505ba src/config.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/config.h Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,174 @@ +/*-------------------------------------------------------------------------- +NETREK II -- Paradise + +Permission to use, copy, modify, and distribute this software and its +documentation, or any derivative works thereof, for any NON-COMMERCIAL +purpose and without fee is hereby granted, provided that this copyright +notice appear in all copies. No representations are made about the +suitability of this software for any purpose. This software is provided +"as is" without express or implied warranty. + + Xtrek Copyright 1986 Chris Guthrie + Netrek (Xtrek II) Copyright 1989 Kevin P. Smith + Scott Silvey + Paradise II (Netrek II) Copyright 1993 Larry Denys + Kurt Olsen + Brandon Gillespie +--------------------------------------------------------------------------*/ + +#ifndef _config_h_ +#define _config_h_ + +/* + * // This file is used to define various different options in the server, // + * which are not included in the sysdefs (.sysdef/sysdefaults.c), for // + * optimization purposes. // // Simply adjust the comments for options you + * wish/dont wish to use. + */ + +/* + * // SHORT_PACKETS + */ + +#define SHORT_PACKETS /* */ + + +/* + * // give the loosing team an advantage on army supplies + */ + +/* #define LOOSING_ADVANTAGE 2.0 /* */ + + +/* + * // Give JS real statistics credit for assists. + */ + +#define JS_TPLANET_CREDIT /* */ + + +/* + * // Give WB double stats for bombing. + */ + +#define WB_BOMBING_CREDIT /* */ + + +/* + * // Change those annoying control characters to spaces // untested! + */ + +/* #define REMOVE_CTL /* */ + + +/* + * // the robots accumulate stats + */ + +#define ROBOTSTATS /* */ + + +/* + * // If you wish your daemon to support league-style play, uncomment this. + */ + +/* #define LEAGUE_SUPPORT /* */ + + +/* + * // Do you wish to have god controls in message.o? + */ + +#define GOD_CONTROLS /* */ + +/* + * // Cluechecking. // // Cluechecker #1 is Robs // ** supports clue + * checking with words from the MOTD with MOTD_SUPPORT // Cluechecker #2 is + * Brandon's (hacked from Robs) // ** will mail a form letter to people with + * MAIL_CLUELETTER + */ + +/* #define CLUECHECK1 /* */ +/* #define MOTD_SUPPORT /* */ +/* #define CLUECHECK2 /* */ +/* #define MAIL_CLUELETTER /* */ + +/* + * // Long ranged Scanners. This boosts each ship's scanrange up to 1000 // + * with the exception of the scout (8000) and SB (10000). + */ + +/* #define LONG_SCANRANGE /* */ + +/* + * // Beefy Bases boosts their heaftyness a touch. // // Default set to on + * Sat Nov 5 15:50:52 MST 1994 by PLC vote + */ + +#define BEEFY_BASES /* */ + +/* + * // RANKS2 defines a pippin structure to the ranks and royalty // // see + * data.c for the actual listing + */ + +/* #define RANKS2 *//* */ + +/* CASSIUS_ROYALTY defines the structure to use cassius's royalty */ + +/* #define CASSIUS_ROYALTY */ + +/* + * // Allow Iggy during TMODE + */ + +/* #define IGGY_IN_T /* */ + +/* + * // Repair while in warp + */ + +#define REPAIR_IN_WARP /* */ + +/* + * // bombing resources takes more time // // Default set to on Sat Nov 5 + * 15:50:52 MST 1994 by PLC vote + */ + +#define SLOW_BOMB /* */ + +/* + * // If we are using RSA exemption, // where does the file live? + */ +/* #define RSA_EXEMPTION_FILE "etc/rsa-exemption" /* */ + +/* + * // For the old, unbalanced ship values // // Default set to off Mon June 5 + * 20:00 MDT 1995 by PLC vote + */ +/* #define OLDSHIPVALS */ + +/* + * // For the new det distance // + */ +#define SHIPDET /* */ + +/* + * // For FEATURE_PACKETS to determine client capabilities + */ + +#define FEATURE /**/ + +/* #define BUTTORP_PENALTY */ + +/* + * more detail into logfiles + */ +#define LOG_LONG_INFO + +/* + * RC_DISTRESS stuff + */ +#define RC_DISTRESS + +#endif /* _config_h_ */ diff -r 4d6502ffaa5e -r 2719a89505ba src/conquer.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/conquer.c Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,578 @@ +/*-------------------------------------------------------------------------- +NETREK II -- Paradise + +Permission to use, copy, modify, and distribute this software and its +documentation, or any derivative works thereof, for any NON-COMMERCIAL +purpose and without fee is hereby granted, provided that this copyright +notice appear in all copies. No representations are made about the +suitability of this software for any purpose. This software is provided +"as is" without express or implied warranty. + + Xtrek Copyright 1986 Chris Guthrie + Netrek (Xtrek II) Copyright 1989 Kevin P. Smith + Scott Silvey + Paradise II (Netrek II) Copyright 1993 Larry Denys + Kurt Olsen + Brandon Gillespie +--------------------------------------------------------------------------*/ + + +#include "config.h" +#include +#include +#include +#include +#include +#include +#include + +#include "defs.h" +#include "struct.h" +#include "data.h" +#include "daemonII.h" +#include "misc.h" +#include "shmem.h" +#include "path.h" + + + +/*----------------------------NUMBER DEFINES-------------------------------*/ +#define SURRSTART 4 /* # planets where surrender starts */ +#define SURREND 7 /* # planets where surrender stops */ +#define SURRLENGTH 25 /* give them 30 minutes to sustain empire */ +/*-------------------------------------------------------------------------*/ + + + + + + +/*----------------------------MODULE VARIABLES-----------------------------*/ + +/* used to store players found with the displayBest function */ +typedef struct playerlist +{ + char name[16]; /* player's name */ + char mapchars[2]; /* player's map window image */ + int planets, armies; /* planets taken and armies bombed */ + int resources, dooshes; /* resources bombed and armies dooshed */ +} Players; + +/*-------------------------------------------------------------------------*/ + + + + + + +extern int enemy_admiral(); +extern void perror(); +extern void cause_kaboom(); +extern void gen_planets(); +extern void endtourn(); +extern void stoptimer(); +extern char *twoletters(); +void checkwin(); +void displayBest(); + +static void +swap(a, b) + int *a, *b; +{ + int t = *a; + *a = *b; + *b = t; +} + + +/*----------------------------INTERNAL FUNCTIONS---------------------------*/ + +/*-----------------------------------GENOCIDE------------------------------*/ +/* + * This function checks for a genocide. It also returns the two teams with + * the most players. It first goes through the four teams and finds the two + * teams with the greatest number of players. These two teams are returned + * in the parameters team1 and team2. If one of the teams does not have at + * least one planet then a 1 is returned. Otherwise a zero is returned. + */ + +int +genocide(team1, team2) + int *team1; /* where to put first team */ + int *team2; /* where to put second team */ +{ + int t1, t2; /* to hold two teams */ + int n1, n2; /* to hold number of ships on teams */ + int t; /* temp var */ + int i; /* looping var */ + + t1 = FED; /* set first team */ + n1 = realNumShips(FED); /* get players on it */ + t2 = ROM; /* set second team */ + n2 = realNumShips(ROM); /* get players on it */ + if (n1 < n2) + { /* place team with least players in t2 */ + swap(&n1, &n2); + swap(&t1, &t2); + } + if (realNumShips(KLI) > n2) + { /* check the klingons */ + t2 = KLI; + n2 = realNumShips(KLI); + } + if (n1 < n2) + { /* place team with least players in t2 */ + swap(&n1, &n2); + swap(&t1, &t2); + } + if (realNumShips(ORI) > n2) + { /* check the orions */ + t2 = ORI; + n2 = realNumShips(ORI); + } + /* no longer necessarily in order */ + *team1 = t1; /* pass back team 1 */ + *team2 = t2; /* pass back team 2 */ + t = 0; /* no genocide detected yet */ + for (i = 0; i < NUMPLANETS; i++) + { /* see if team 1 has a planet */ + if (planets[i].pl_owner == t1) + { /* do they own this */ + t++; /* inc t andd then get out of loop */ + break; + } + } + for (i = 0; i < NUMPLANETS; i++) + { /* see if team 2 has a planet */ + if (planets[i].pl_owner == t2) + { /* do they own this */ + t++; /* inc t andd then get out of loop */ + break; + } + } + if (t != 2) /* if both teams do not have planets then */ + return (1); /* return that genocide has occured */ + else /* else genocide has not occured */ + return (0); +} + + + + +/*------------------------------CHECKSURRENDER-----------------------------*/ +/* + * This function is called when a teams surrender status may have changed. It + * takes a team and uses the s_plcount in the teams structure to check + * whether a team has prevented surrender or the surrender process should + * begin. + */ + +void +checksurrender(team, otherplanets) + int team; /* the team to check */ + int otherplanets; +{ + char buf[80]; /* to sprintf into */ + + if ((teams[team].s_surrender > 0) && /* surrender timer running? */ + ((teams[team].s_plcount >= SURREND) || + (teams[team].s_plcount * 2 > otherplanets))) + { /* and enough planets */ + pmessage("", 0, MALL, ""); + sprintf(buf, "The %s %s prevented collapse of the empire.", + teams[team].name, teamVerbage[team]); + pmessage(buf, 0, MALL, MSERVA); /* message to all */ + pmessage("", 0, MALL, ""); + teams[team].s_surrender = 0;/* stop surrender clock */ + } + else if ((teams[team].s_surrender == 0) && /* start surrender ? */ + (teams[team].s_plcount <= SURRSTART) && + (teams[team].s_plcount * 2 <= otherplanets) && + (realNumShips(team) >= configvals->tournplayers) && + (teams[team].s_plcount < teams[team].s_plcountold)) + { + teams[team].s_surrender = SURRLENGTH; + sprintf(buf, "The %s %s %d minutes before the empire collapses.", + teams[team].name, teamVerbage[team], SURRLENGTH); + pmessage("", 0, MALL, ""); + pmessage(buf, 0, MALL, MSERVA); + sprintf(buf, "%d planets are needed to sustain the empire.", + SURREND); + pmessage(buf, 0, MALL, MSERVA); + pmessage("", 0, MALL, ""); + } +} + +/*-------------------------------------------------------------------------*/ + + + + + + + +/*------------------------------VISIBLE PROCEDURES-------------------------*/ + +/*---------------------------------UDSURRENDER-----------------------------*/ +/* + * This function updates the surender stuff. There is also stuff for + * updating the ship construction timers here. + */ + +void +udsurrend() +{ + register int i, t; /* looping vars */ + char buf[80]; + struct planet *l; + struct player *j; + + /* TC's termination of players not on a t-mode team */ + for (i = 0, j = &players[0]; i < MAXPLAYER; i++, j++) + { + if ((j->p_status == PALIVE) && + !(j->p_flags & PFROBOT) && (j->p_team != NOBODY) && + (realNumShips(j->p_team) < configvals->tournplayers) && + (lrand48() % 5 == 0)) + rescue(TERMINATOR, j->p_no, -1); + } + for (t = 0; t <= MAXTEAM; t++) + { /* go through all teams */ + if ((teams[t].s_surrender == 0) || + (realNumShips(t) < configvals->tournplayers)) + continue; /* suspend if no t-mode */ + if (teams[t].s_plcount > SURRSTART) /* suspend timer if they have */ + continue; /* enough planets */ + teams[t].s_surrender--; /* dec the surrender timer */ + if (teams[t].s_surrender <= 0) + { /* if timer ran out then */ + teams[t].s_surrender = -1;/* set it so it isnt 0 (otherwise it + * announces surrender again) (BG) */ + sprintf(buf, "The %s %s surrendered.", teams[t].name, + teamVerbage[t]); /* print surrender message */ + pmessage("", 0, MALL, ""); + pmessage(buf, 0, MALL, MSERVA); + pmessage("", 0, MALL, ""); + for (i = 0, l = &planets[i]; i < NUMPLANETS; i++, l++) + { + if (l->pl_owner == t) + { /* neutralize and zero the */ + l->pl_owner = NOBODY; /* armies on all loser's planets */ + l->pl_armies = 0; + } + } + checkwin(enemy_admiral(t)); /* go check the win */ + } + else if ((teams[t].s_surrender % 5) == 0 || + (teams[t].s_surrender < 4)) + { + sprintf(buf, "The %s %s %d minutes remaining.", + teams[t].name, teamVerbage[t], teams[t].s_surrender); + pmessage("", 0, MALL, "");/* blank line */ + pmessage(buf, 0, MALL, MSERVA); /* printf counting down */ + sprintf(buf, "%d planets will sustain the empire. ", SURREND); + pmessage(buf, 0, MALL, MSERVA); + sprintf(buf, "%d or half enemy suspends countdown.", SURRSTART + 1); + pmessage(buf, 0, MALL, MSERVA); + pmessage("", 0, MALL, "");/* blank line */ + } + } /* end for team */ +} + + +/*------------------------------CONQUERMESSAGE-----------------------------*/ +/* + * This function is called after a race is genocided. It lists the players + * on the winning and losing teams. The reason should be either GENOCIDE or + * SURRENDER. The list is written to the conquer file. + */ + +void +conquerMessage(winners, losers, pno) + int winners; + int losers; + int pno; +/* the losing and winning teams */ +/* the person who won it */ +{ + char buf[80]; /* to sprintf into */ + FILE *conqfile; /* to open conquer file */ + time_t curtime; /* to get current time */ + char *paths; /* to hold path to directory */ + + paths = build_path(CONQFILE); + conqfile = fopen(paths, "a"); /* open the conquer file */ + if (!conqfile) + { + perror(""); + fprintf(stderr, "failed to open file %s\n", paths); + } +#ifdef LEAGUE_SUPPORT +#define OUT pmessage(buf, 0, MALL | MGENO, " "); \ + if (conqfile) fprintf(conqfile, " %s\n", buf); \ + tlog_conquerline(buf); +#else +#define OUT pmessage(buf, 0, MALL | MGENO, " "); \ + if (conqfile) fprintf(conqfile, " %s\n", buf); +#endif + + time(&curtime); /* get current time */ + strcpy(buf, "\nConquer! "); /* this is a genocide */ + strcat(buf, ctime(&curtime)); /* cat on current time */ + if (conqfile) + fprintf(conqfile, " %s\n", buf); /* write it to conquer file */ + pmessage("***********************************************************", + 0, MALL | MGENO, " "); /* print enclosure to messages */ + + if (pno >= 0) + { + sprintf(buf, "The galaxy has been conquered by %s and the %s!!!!", + players[pno].p_name, teams[winners].name); + } + else + { + sprintf(buf, "Stalemate."); + } + OUT; + + sprintf(buf, +#ifdef LEAGUE_SUPPORT + status2->league ? "The %s(%s):" : +#endif + "The %s:", + teams[winners].name +#ifdef LEAGUE_SUPPORT + ,((winners == (1 << status2->home.index)) ? + (&status2->home) : + (&status2->away))->name +#endif + ); + OUT; + displayBest(conqfile, winners); /* go display team 1 */ + sprintf(buf, +#ifdef LEAGUE_SUPPORT + status2->league ? "The %s(%s):" : +#endif + "The %s:", + teams[losers].name +#ifdef LEAGUE_SUPPORT + ,((losers == (1 << status2->home.index)) ? + (&status2->home) : + (&status2->away))->name +#endif + ); + OUT; + displayBest(conqfile, losers);/* go display team 2 */ + pmessage("***********************************************************", + 0, MALL | MGENO, " "); /* printf the enclosure */ + if (conqfile) + { + fprintf(conqfile, "\n"); /* space between conquering */ + fclose(conqfile); /* close conquer file */ + } +} + + +void +refresh_team_planetcounts() +{ + int i; + register struct planet *l; /* to point to planets */ + + for (i = 0; i <= MAXTEAM; i++) + { /* zero out each teams planet count */ + teams[i].s_plcountold = teams[i].s_plcount; /* save last planet count */ + teams[i].s_plcount = 0; + } + for (i = 0, l = &planets[i]; i < NUMPLANETS; i++, l++) /* recompute */ + teams[l->pl_owner].s_plcount++; /* planet counts for teams */ +} + +/* blow everyone up, print the conquer assessments, figure out who won. */ +void +endgame_effects(t1, t2, pno) + int t1; + int t2; + int pno; +{ + int i; + struct player *j; + + refresh_team_planetcounts(); + + if (teams[t1].s_plcount < teams[t2].s_plcount) + { + int i; + i = t1; + t1 = t2; + t2 = i; /* t1 is the winners */ + } + if (pno >= 0 && players[pno].p_team != t1) + pno = -1; /* he can't win the game! */ + + if (pno < 0) + pno = enemy_admiral(t2); + + if (teams[t1].s_plcount == teams[t2].s_plcount) + { + /* tie, nobody wins */ + pno = -1; + } + status->genocides++; /* inc number of genocides */ + conquerMessage(t1, t2, pno); /* print conquer message */ + + for (i = 0, j = &players[0]; i < MAXPLAYER; i++, j++) + { + if (j->p_status == PFREE) /* if player not in game */ + continue; /* ignore him */ + if (status->tourn) /* only inc genos if t-mode */ + j->p_stats.st_genocides++;/* inc player's genocides */ + j->p_whydead = KWINNER; /* because someone won */ + j->p_whodead = pno; /* set who won the game */ + j->p_status = POUTFIT; /* send them immediately to outfit screen */ + /* + * cause_kaboom (j); + */ + j->p_ntorp = 0; /* no torps shot */ + j->p_nplasmatorp = 0; /* no plasmas shot */ + } +} + + + +/*-------------------------------CHECKWIN---------------------------------*/ +/* + * This function is called when a planet is taken or beamed to zero. It + * recalculates s_plcount for each team. It then finds the two teams that + * are in t-mode. If either of them has just sustained the empire from + * collapse or should start the surrender procedure then that is done. If a + * team has been genocided then the genocide message is printed and the game + * is reset. + */ + +void +checkwin(pno) + int pno; +{ + int g; /* to hold whether genocide occured */ + int t1, t2; /* to hold the t-mode teams */ + + refresh_team_planetcounts(); + g = genocide(&t1, &t2); /* check genocide */ + if (teams[t1].s_plcount < teams[t2].s_plcount) + { + int i; + i = t1; + t1 = t2; + t2 = i; /* t1 is the winners */ + } + checksurrender(t1, teams[t2].s_plcount); /* check for change in */ + checksurrender(t2, teams[t1].s_plcount); /* surrender status */ + if (!g) /* if genocide did not occur */ + return; /* then return from func */ + teams[t1].s_surrender = 0; /* stop the surrender clock */ + teams[t2].s_surrender = 0; + + stoptimer(); + +#ifdef LEAGUE_SUPPORT + if (status2->league) + { + endtourn(); /* calls endgame_effects */ + } + else +#endif + endgame_effects(t1, t2, pno); +#if 0 + gen_planets(); /* generate new galaxy */ + + longjmp(env, 0); /* restart */ +#else + status->gameup = 0; /* exit the daemon */ + status->count = 0; + save_planets(); + sleep(2); + blast_shmem(); + exit(0); +#endif +} + + + + + + + +/*-------------------------------DISPLAYBEST-------------------------------*/ +/* + * This function is used to get a list of players on a team after a genocide. + * It goes through the players and selects the ones that have inflicted the + * most damage. They are then printed to the message window and to the + * conquer file. They are arranged according to how much damage the players + * have inflicted on the enemy, with one planet taken counting as thirty + * armies bombed. A resource counts as 8 armies bombed and a army dooshed + * counts as five armies bombed. + */ + +void +displayBest(conqfile, team) + FILE *conqfile; /* the opened conquer file */ + int team; /* the winning team */ +{ + register int i, k, l; /* looping vars */ + register struct player *j; /* to point to players */ + int planets, armies; /* # planets and armies for player */ + int resources, dooshes; /* resources bombed, armies dooshed */ + Players winners[MAXPLAYER + 1]; /* to hold player's stats */ + char buf[100]; /* to sprintf into */ + int number; /* to hold # players found */ + + number = 0; /* number of players found */ + for (i = 0, j = &players[0]; i < MAXPLAYER; i++, j++) + { + if ((j->p_team != team) || (j->p_status == PFREE)) /* player wrong race */ + continue; /* or not here, then forget him */ + planets = j->p_planets; /* get all planets and armies for */ + armies = j->p_armsbomb; /* entire game */ + resources = j->p_resbomb; /* get resources and armies dooshed */ + dooshes = j->p_dooshes; + for (k = 0; k < number; k++) + { /* go find postion in current list */ + if (30 * winners[k].planets + winners[k].armies + 8 * winners[k].resources + + 5 * winners[k].dooshes < + 30 * planets + armies + 8 * resources + 5 * dooshes) + { + break; /* break when position found */ + } + } + for (l = number; l >= k; l--) /* move other players to make room */ + winners[l + 1] = winners[l]; /* for new player */ + number++; /* we have found one more player */ + winners[k].planets = planets; /* record his planets and armies */ + winners[k].armies = armies; + winners[k].resources = resources; + winners[k].dooshes = dooshes; + strncpy(winners[k].mapchars, twoletters(j), 2); + strncpy(winners[k].name, j->p_name, 16); /* get his name */ + winners[k].name[15] = 0; /* `Just in case' paranoia */ + } + for (k = 0; k < number; k++) + { /* go through all players found */ + if (winners[k].planets != 0 || winners[k].armies != 0) + { /* damage done? */ + sprintf(buf, " %16s (%2.2s) %d planets %d armies %d resources %d dooshes", + winners[k].name, winners[k].mapchars, winners[k].planets, + winners[k].armies, winners[k].resources, winners[k].dooshes); + OUT; + } + } +} + +/*-------------------------------------------------------------------------*/ + + + + + + +/*-----------END OF FILE-----*/ diff -r 4d6502ffaa5e -r 2719a89505ba src/conquer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/conquer.h Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,17 @@ +/*-------------------------------------------------------------------------- +NETREK II -- Paradise + +Permission to use, copy, modify, and distribute this software and its +documentation, or any derivative works thereof, for any NON-COMMERCIAL +purpose and without fee is hereby granted, provided that this copyright +notice appear in all copies. No representations are made about the +suitability of this software for any purpose. This software is provided +"as is" without express or implied warranty. + + Xtrek Copyright 1986 Chris Guthrie + Netrek (Xtrek II) Copyright 1989 Kevin P. Smith + Scott Silvey + Paradise II (Netrek II) Copyright 1993 Larry Denys + Kurt Olsen + Brandon Gillespie +--------------------------------------------------------------------------*/ diff -r 4d6502ffaa5e -r 2719a89505ba src/copyright2.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/copyright2.h Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,9 @@ +/* + * Copyright 1989 Kevin P. Smith Scott Silvey + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, provided + * that the above copyright notice appear in all copies. + */ + +#include "copyright3.h" diff -r 4d6502ffaa5e -r 2719a89505ba src/copyright3.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/copyright3.h Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,19 @@ +/*------------------------------------------------------------------ + NETREK II -- Paradise + + Permission to use, copy, modify, and distribute this software and + its documentation, or any derivative works thereof, for any + NON-COMMERCIAL purpose and without fee is hereby granted, provided + that this copyright notice appear in all copies. No + representations are made about the suitability of this software for + any purpose. This software is provided "as is" without express or + implied warranty. + + Xtrek Copyright 1986 Chris Guthrie + Netrek (Xtrek II) Copyright 1989 Kevin P. Smith + Scott Silvey + Paradise II (Netrek II) Copyright 1993 Larry Denys + Kurt Olsen + Brandon Gillespie + +--------------------------------------------------------------------*/ diff -r 4d6502ffaa5e -r 2719a89505ba src/cutil.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cutil.c Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,136 @@ +/*-------------------------------------------------------------------------- +NETREK II -- Paradise + +Permission to use, copy, modify, and distribute this software and its +documentation, or any derivative works thereof, for any NON-COMMERCIAL +purpose and without fee is hereby granted, provided that this copyright +notice appear in all copies. No representations are made about the +suitability of this software for any purpose. This software is provided +"as is" without express or implied warranty. + + Xtrek Copyright 1986 Chris Guthrie + Netrek (Xtrek II) Copyright 1989 Kevin P. Smith + Scott Silvey + Paradise II (Netrek II) Copyright 1993 Larry Denys + Kurt Olsen + Brandon Gillespie +--------------------------------------------------------------------------*/ + +/* cutil.c - misc utility fuctions common to all the binaries */ + +#include "config.h" +#ifndef apollo +#include +#endif +#include +#include +#include +#include +#include +#ifdef hpux +#include +#else +#include +#endif +#ifdef SYSV +#include +#endif +#include +#include "data.h" + +/* + * r_signal - reliable version of signal() the System-V signal() function + * provides the older, unreliable signal semantics. So, this is an + * implementation of signal using sigaction. + */ + +void (* + r_signal(sig, func)) () + int sig; + void (*func) (); +{ + struct sigaction act, oact; + + act.sa_handler = func; + + sigemptyset(&act.sa_mask); + act.sa_flags = 0; +#ifdef SA_RESTART +#ifdef BAD_SVR4_HACKS + if (sig != SIGALRM) +#endif /* BAD_SVR4_HACKS */ + act.sa_flags |= SA_RESTART; +#endif + + if (sigaction(sig, &act, &oact) < 0) + return (SIG_ERR); + + return (oact.sa_handler); +} + + +int +touch(file) + char *file; +{ + time_t now[2]; + + now[0] = now[1] = time(0); + + return utime(file, (void *) now); +} + +#ifdef NO_STRDUP +char * +strdup(str) + char *str; +{ + char *s; + + s = (char *) malloc(strlen(str) + 1); + if (!s) + return NULL; + strcpy(s, str); + return s; +} +#endif + + +/* dunno if any other systems have anyting like this */ +#ifdef hpux + +int +matherr(x) + struct exception *x; +{ + char *t; + + switch (x->type) + { + case DOMAIN: + t = "domain"; + break; + case SING: + t = "singularity"; + break; + case OVERFLOW: + t = "overflow"; + break; + case UNDERFLOW: + t = "underflow"; + break; + case TLOSS: + t = "tloss"; + break; + case PLOSS: + t = "ploss"; + break; + default: + t = "buh??"; + break; + } + fprintf(stderr, "%s: %s error: %s(%f [, %f]) = %f\n", + argv0, t, x->name, x->arg1, x->arg2, x->retval); +} + +#endif diff -r 4d6502ffaa5e -r 2719a89505ba src/daemonII.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/daemonII.c Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,1162 @@ +/*-------------------------------------------------------------------------- +NETREK II -- Paradise + +Permission to use, copy, modify, and distribute this software and its +documentation, or any derivative works thereof, for any NON-COMMERCIAL +purpose and without fee is hereby granted, provided that this copyright +notice appear in all copies. No representations are made about the +suitability of this software for any purpose. This software is provided +"as is" without express or implied warranty. + + Xtrek Copyright 1986 Chris Guthrie + Netrek (Xtrek II) Copyright 1989 Kevin P. Smith + Scott Silvey + Paradise II (Netrek II) Copyright 1993 Larry Denys + Kurt Olsen + Brandon Gillespie +--------------------------------------------------------------------------*/ +char binary[] = "@(#)daemonII"; + +#define DAEMONII 1 /* to tell daemonII.h we are in this file */ + +#include "config.h" +#include +#include +#include +#include +#include +#include +#include +#ifndef ULTRIX +#include +#endif +#include + +#include +#include +#include +#include +#include + +#include "defs.h" +#include "struct.h" +#include "data.h" +#include "planets.h" +#include "terrain.h" +#include "conquer.h" +#include "daemonII.h" +#include "getship.h" +#include "weapons.h" +#include "player.h" +#include "misc.h" +#include "shmem.h" +#include "path.h" + +#define TellERR(x) fprintf(stderr, "! %s: %s\n", argv0, x) +#define TellERRf(x, y) { \ + sprintf(buf, x, y); \ + fprintf(stderr, "! %s: %s\n", argv0, buf); \ + } +/*--------------------------FUNCTION PROTOTYPES---------------------------*/ +#ifndef FreeBSD +long lseek(); +#endif + +typedef void sig_ret_t; + +void move(); +sig_ret_t reaper(); +sig_ret_t setflag(); +sig_ret_t freemem(); +char *getenv(); +char *twoletters(); +void starttimer(); +void stoptimer(); +void printdaemonIIUsage(); +void check_load(); +void rescue(); +void teamtimers(); +void shipbuild_timers(); +extern void (*r_signal()) (); + +/*------------------------------------------------------------------------*/ + + + + + + + +/*---------------------------MODULE VARIABLES-----------------------------*/ + +int dietime = -1; /* to decide whether the deamon has been */ +/* inactive for one minute. Set to -1 so */ +/* the deamon will not immediately quit */ + +int ticks = 0; /* counting ticks for game timing */ + +jmp_buf env; /* to hold long jump back into main */ + +static int debug = 0; /* set if an arg is passed to main on the + * command line, this var gets set to 1 and + * debuf info is printed. */ + +static int doMove; /* indicates whether it's time to call move() */ + +int plfd; /* for the planet file */ +int glfd; /* for the status file */ + +/* The name of the four teams */ + +/* The verbage to use in sentences such as 'the XXXXX have/has' */ +char *teamVerbage[9] = {"", "has", "have", "", "have", "", "", "", "have"}; + +int tourntimestamp = 0; /* ticks since t-mode started */ + + +/*------------------------------------------------------------------------*/ + + + + + + + + +/*----------------------------------MAIN-----------------------------------*/ +/* + * Well, this is it. The big Kahuna. The main function of daemonII. If an + * arg is passed to main, then debug info is printed. What is passed in does + * not matter. Personally, I am fond of running it with: daemonII fungus. + * But maybe that's just me. Important: An environment variable is read in + * from the user. It is called NETREKDIR. This variable needs to be a path + * to where the '.' (dot) files are to be found. Kurt added this to make + * things a hell of a lot easier. + */ + +int +main(argc, argv) + int argc; + char **argv; +{ + register int i; /* looping var */ + int jjk; /* looping var */ + char buf[255]; /* Temp buffer */ + char *paths; /* to form path with */ + char *ptr; /* get get path env var */ + + int x = 0; /* for delay in debugging messages */ +#ifdef LEAGUE_SUPPORT + int configleague = 0; /* if nonzero, set configvals->league to 1 */ +#endif + int attach = 0; + int nogo = 0; /* for the usage flag/case */ + + argv0 = argv[0]; + + i = 1; + while (argv[i]) + { + if (argv[i][0] == '-') + { + ptr = &argv[i][1]; + while (*ptr) + { + switch (*ptr) + { + case 'l': +#ifdef LEAGUE_SUPPORT + configleague = 1; +#else + TellERR("daemon not compiled with league support."); + TellERR("Edit config.h and reinstall."); + TellERR("Continuing anyway."); +#endif + break; + case 'd': + debug = 1; + break; + case 'a': + attach = 1; + break; + case 'h': + case 'u': /* for old times sake */ + case '-': /* this allows for --help people */ + nogo++; + break; + case 'v': /* version, what the hell */ + fprintf(stderr, "-- NetrekII (Paradise), %s --\n", PARAVERS); + exit(0); + break; + default: + TellERRf("Unknown flag '%c'.", *ptr); + nogo++; + /* fprintf(stderr, "Unknown flag '%c'\n", *ptr); */ + break; + } + ptr++; + } + } +#if 0 /* this is goofy, just use -d */ + else + { + TelLERR("Backward compatibility: activating debugging mode."); + debug = 1; + break; + } +#endif + else + { + TellERRf("Invalid option format '%s'.", argv[i]); + nogo++; + break; + } + i++; + } + + if (nogo) + { + printdaemonIIUsage(argv0); + } + else + { + /* log the PID */ + char *fname; + FILE *fptr; + + fname = build_path("logs/daemonII.pid"); + fptr = fopen(fname, "w+"); + fprintf(fptr, "%d", getpid()); + fclose(fptr); + } + + fprintf(stderr, "Daemon says 'hello!'\n"); /* say hi */ + srand48(getpid()); /* seed random # gen */ + + openmem(attach ? 0 : 2, 0); /* create shared memory */ + + /* my daemonII has been dumping core a lot in readsysdefaults */ + if (!debug) + { /* setup signals if not debugging */ + for (i = 0; i < NSIG; i++) + r_signal(i, freemem); + r_signal(SIGSTOP, SIG_DFL); /* accept SIGSTOP? 3/6/92 TC */ + r_signal(SIGTSTP, SIG_DFL); /* accept SIGTSTP? 3/6/92 TC */ + r_signal(SIGCONT, SIG_DFL); /* accept SIGCONT? 3/6/92 TC */ + } + +#ifdef LEAGUE_SUPPORT + if (configleague && !attach) + { + status2->league = 1; /* configure for league play */ + /* .sysdef will be ignored */ + + /* haven't chosen teams yet */ + status2->home.index = status2->away.index = -1; + + /* haven't chosen captains either */ + status2->home.captain = status2->away.captain = -1; + + /* no names for the team */ + status2->home.name[0] = status2->away.name[0] = 0; + + status2->home.ready = status2->away.ready = 0; + + status2->home.desirepause = status2->away.desirepause = 0; + + /* away has NOT passed team choice */ + status2->awaypassed = 0; + + status2->paused = 0; + + /* clear out the temporary player file */ + paths = build_path(PLAYERFILE); + if (0 != unlink(paths) && errno != ENOENT) + { + perror("zeroing tourney temporary player file"); + } + + status2->home.desired.galaxyreset = status2->away.desired.galaxyreset + = 0; + status2->home.desired.restart = status2->away.desired.restart + = 0; + } +#endif + + if (!attach) + readsysdefaults(); /* go get sysdefaults */ + +#ifdef LEAGUE_SUPPORT + if (configleague && !attach) + { + status2->home.timeouts_left = status2->away.timeouts_left = + configvals->timeouts; + + status2->home.desired.regulation = status2->away.desired.regulation + = configvals->regulation_minutes; + status2->home.desired.overtime = status2->away.desired.overtime + = configvals->overtime_minutes; + status2->home.desired.maxplayers = status2->away.desired.maxplayers + = configvals->playersperteam; + } +#endif + + + if (!attach) + { + for (i = 0; i < MAXPLAYER; i++) + { /* go through all players */ + players[i].p_status = PFREE; /* set slot free */ + players[i].p_no = i; /* set his player number */ + players[i].p_ntspid = 0; + } + status2->nontteamlock = ALLTEAM; + status2->starttourn = 0; + } /* !attach */ + + paths = build_path(PLFILE); + plfd = open(paths, O_RDWR, 0744); /* open planets file */ + if (!attach) + { +#if 1 + gen_planets(); /* generate a new galaxy every time */ + status->time = 0; +#else + if (plfd < 0) + { /* oopen failed? */ + fprintf(stderr, "No planet file. Restarting galaxy\n"); + gen_planets(); /* yup, go to it */ + } + else + { /* try to read in planets */ + if (read(plfd, (char *) planets, sizeof(struct planet) * MAXPLANETS) != + sizeof(struct planet) * MAXPLANETS) + { /* if wrong size */ + fprintf(stderr, "Planet file wrong size. Restarting galaxy\n"); + gen_planets(); /* then regenerate galaxy */ + } + } +#endif + } /* !attach */ + paths = build_path(GLOBAL); + + glfd = open(paths, O_RDWR, 0744); /* try to open file */ + + if (!attach) + { + if (glfd < 0) + { /* if could not open */ + fprintf(stderr, "No global file. Resetting all stats\n"); + memset((char *) status, 0, sizeof(struct status)); + glfd = open(paths, O_RDWR | O_CREAT, 0744); /* try to create file */ + } + else + { + if (read(glfd, (char *) status, sizeof(struct status)) != + sizeof(struct status)) + { /* try to read file */ + fprintf(stderr, "Global file wrong size. Resetting all stats\n"); + memset((char *) status, 0, sizeof(struct status)); + } + } + if (status->time == 0) + { /* do stats need resetting */ + status->dooshes = 1500; /* yup, then reset them */ + status->armsbomb = 4000; /* set them to something other than */ + status->resbomb = 1200; /* zeroes and ones so that the */ + status->planets = 1000; /* globals are not totally whacked */ + status->kills = 1; /* when we first start */ + status->losses = 1; + status->genocides = 10; + status->sbkills = 1200; + status->sblosses = 30; + status->sbtime = 720000; + status->wbkills = 1200; + status->wblosses = 40; + status->wbtime = 360000; + status->jsplanets = 400; + status->jstime = 240000; + status->time = 1; + status->timeprod = 1; + } + + /* wait queue stuff */ + status->wait = 0; /* invocation of the */ + status->count = 0; /* daemon */ + status->request = 0; + + } /* !attach */ + status->active = 0; /* set stats that deal with this */ + status->gameup = 1; + status->nukegame = getpid(); + status->timeprod = 0; + + setjmp(env); /* set the loooong jump */ + + r_signal(SIGCHLD, reaper); /* set reaper and setflag signal */ + r_signal(SIGALRM, setflag); /* handlers */ + + if (!attach) + { + for (i = 0; i <= MAXTEAM; i++) + { /* reset some team vars */ + teams[i].s_surrender = 0; /* reset surrender timers */ + for (jjk = 0; jjk < NUM_TYPES; jjk++) + teams[i].s_turns[jjk] = 0; /* reset all ship construction timers */ + } + } /* !attach */ + + status2->newgalaxy = 0; + for (i = 0; i < MAXPLAYER; i++) + { + galaxyValid[i] = 0; + } + + check_load(); /* check the load on machine */ + + starttimer(); /* start interval timer */ + doMove = 0; + + while (1) + { /* do forever */ + if (!doMove) + pause(); /* wait for signal */ + + if (doMove) + { /* if it's time */ + doMove = 0; /* reset the flag */ + move(); /* then do the update */ + + if (debug) + { /* if in debug mode */ + if (!(++x % 50)) /* print 'mark' as we wait */ + printf("Mark %d\n", x); + } + } + } +} +/*---------------------[ prints the usage of daemonII ]---------------------*/ + +void +printdaemonIIUsage(char *myname) +{ + int x; + char message[][255] = { + "\n\t'%s [options]'\n\n", + "Options:\n", + "\t-h help (this usage message)\n", + "\t-l configures as a League server (usually run by listen)\n", + "\t-d debug\n", + "\t-a attach to a crashed daemon's memory segment\n", + "\nNOTE: %s is designed to be launched by the startup process.\n\n", + "\0" + }; + + fprintf(stderr, "-- NetrekII (Paradise), %s --\n", PARAVERS); + for (x = 0; *message[x] != '\0'; x++) + fprintf(stderr, message[x], myname); + + exit(1); +} + +/*--------------------------[ printdaemonIIUsage ]--------------------------*/ + +/* signal handler for SIGALRM */ +sig_ret_t +setflag() +{ + doMove = 1; +} + +void +starttimer() +{ + struct itimerval udt; + + udt.it_interval.tv_sec = 0; + udt.it_interval.tv_usec = UPDATE; + udt.it_value.tv_sec = 0; + udt.it_value.tv_usec = UPDATE; + setitimer(ITIMER_REAL, &udt, (struct itimerval *) 0); +} + +void +stoptimer() +{ + struct itimerval udt; + + udt.it_interval.tv_sec = 0; + udt.it_interval.tv_usec = 0; + udt.it_value.tv_sec = 0; + udt.it_value.tv_usec = 0; + setitimer(ITIMER_REAL, &udt, (struct itimerval *) 0); +} + +#ifdef LEAGUE_SUPPORT +static void +handle_pause_goop() +{ + if (status2->paused) + { + if (!status2->home.desirepause && !status2->away.desirepause) + { + /* countdown to game resumption */ + status2->paused--; + if (status2->paused) + { + if (status2->paused % TICKSPERSEC == 0) + { + char buf[80]; + sprintf(buf, "Game will resume in %d seconds", + status2->paused / TICKSPERSEC); + pmessage(buf, -1, MALL, UMPIRE); + } + } + else + { + pmessage("Let the carnage resume!", -1, MALL, UMPIRE); + } + } + else + { + status2->pausemsgfuse++; + if (status2->pausemsgfuse > SECONDS(15)) + { + status2->pausemsgfuse = 0; + pmessage("Game is PAUSEd. Captains `LEAGUE CONTINUE' to resume play.", + -1, MALL, UMPIRE); + if (!status2->home.desirepause) + pmessage("The home team wishes to CONTINUE the game.", + -1, MALL, UMPIRE); + if (!status2->away.desirepause) + pmessage("The away team wishes to CONTINUE the game.", + -1, MALL, UMPIRE); + } + } + } + else + { + if (!status2->home.desirepause && !status2->away.desirepause) + return; + + status2->pausemsgfuse++; + if (status2->pausemsgfuse > SECONDS(15)) + { + char buf[80]; + status2->pausemsgfuse = 0; + sprintf(buf, "The %s team wishes to PAUSE the game!", + status2->home.desirepause ? "home" : "away"); + pmessage(buf, -1, MALL, UMPIRE); + } + } +} +#endif + +/*---------------------------------MOVE-----------------------------------*/ +/* + * This is the main loop for the program. It is called every 1/10th of a + * second. It decides which functions of the deamon need to be run. + */ + +void +move() +{ + static int oldtourn = 0; /* are we in t-mode or not */ + int i, j; /* looping vars */ + struct planet *pl; + + if (++ticks == dietime) + { /* no player for 1 minute. kill self */ + if (debug) /* do not quit if debug mode */ + fprintf(stderr, "Ho hum. 1 minute, no activity...\n"); + else + { /* quit if not debug mode */ + fprintf(stderr, "Self-destructing the daemon!\n"); + freemem(0); + } + } + + if ((FUSE(300)) && update_sys_defaults()) /* check to load system + * defualts */ + /* This message tells players that new defaults have been */ + /* loaded and the message triggers the ntserv processes */ + /* to check new defaults. */ + pmessage("Loading new server configuration.", 0, MALL, MSERVA); + + if (FUSE(SECONDS(1))) + { + if (tournamentMode()) + { /* are we in tournament mode */ + if (!oldtourn) + { /* is this a new condition */ + if (!status2->starttourn) + { /* fresh t-mode */ + if (configvals->gamestartnuke) + explode_everyone(KTOURNSTART, 20); + } + status2->starttourn = configvals->nottimeout ? configvals->nottimeout : -1; + warmessage(); /* go print war message */ + for (i = 0, pl = &planets[i]; i < NUMPLANETS; i++, pl++) + for (j = 0; j < MAXTEAM + 1; j++) + pl->pl_tinfo[j].timestamp = 0; + status->clock = 0; + tourntimestamp = ticks; /* take a timestamp */ + } + oldtourn = 1; /* record that we have printed warmsg */ + status->tourn = 1; /* set the game status to t-mode */ + status->time++; /* inc time in t-mode */ + } + else + { /* else we are not in t-mode */ + if (oldtourn) + { /* if previously in t-mode */ + tourntimestamp = ticks; /* record t-mode ending */ + peacemessage(); /* send peace message */ + } + else + { + static fuse = 0; + fuse++; + if (fuse > 60 && status2->starttourn > 0) + { + fuse = 0; + status2->starttourn--; + switch (status2->starttourn) + { + case 0: + status2->newgalaxy = 1; + break; + case 1: + case 3: + case 5: + case 15: + { + static char buf[120]; + sprintf(buf, "Warning!! Galaxy will be reset in %d minute%s due to inactivity.", status2->starttourn, (status2->starttourn == 1) ? "" : "s"); + pmessage(buf, 0, MALL, MSERVA); + } + break; + pmessage("Warning!! Galaxy will be reset in one minute due to inactivity.", 0, MALL, MSERVA); + break; + } + } + } + oldtourn = 0; /* set we are not in t-mode */ + status->tourn = 0; /* record in stats */ + } + } + +#if 0 + if (status->nukegame) + { /* if daemon should die then */ + freemem(0); /* nuke shared memory */ + exit(0); /* kill daemon */ + } +#endif + + parse_godmessages(); /* log any messages to god */ + +#ifdef LEAGUE_SUPPORT + handle_pause_goop(); /* print any messages related to pausing the + * game */ +#endif + +#ifdef LEAGUE_SUPPORT + if (!status2->paused) +#endif + { + if (FUSE(PLAYERFUSE)) /* time to update players? */ + udplayers(); + + if (FUSE(TORPFUSE)) /* time to update torps? */ + udtorps(); + if (FUSE(MISSILEFUSE)) /* time to update missiles? */ + udmissiles(); + if (FUSE(PLASMAFUSE)) /* time to update plasma? */ + udplasmatorps(); + if (FUSE(PHASERFUSE)) /* time to update phasers? */ + udphaser(); + + + if (FUSE(CLOAKFUSE)) /* time to update cloaking? */ + udcloak(); + + if (FUSE(TEAMFUSE)) /* time to update team timers? */ + teamtimers(); + + if (FUSE(PLFIGHTFUSE)) /* time to update planets? */ + plfight(); + + if (FUSE(TERRAINFUSE)) /* time to do terrain effects? */ + doTerrainEffects(); + + if (FUSE(BEAMFUSE)) /* time to update beaming */ + beam(); + + if (FUSE(SYNCFUSE)) /* time to save planets? */ + save_planets(); + + + if (FUSE(topgun ? HOSEFUSE2 : HOSEFUSE) +#if !defined(AEDILE) || !defined(IGGY_IN_T) + && status->tourn != 1 /* no Iggy during T-mode */ +#endif +#ifdef LEAGUE_SUPPORT + && status2->league == 0 +#endif + ) /* no Iggy during league games */ + rescue(HUNTERKILLER, 0, -1); /* send in iggy-- no team, no target */ + + if (status->tourn) + { + { + static int spinner = 0; + + for (spinner += configvals->popspeed; spinner >= 100; spinner -= 100) + popplanets(); /* increase population */ + } + + if (FUSE(PLANETFUSE)) /* time to grow resources */ + growplanets(); + + { + /* + * check for revolts. Each planet is checked on average once every + * PLANETFUSE. + */ + static int spinner = 0; + for (spinner += configvals->numplanets; + spinner >= PLANETFUSE; + spinner -= PLANETFUSE) + { + check_revolt(); + } + } + } + /* planet moving */ + if (configvals->planupdspd > 0 && FUSE(4)) + moveplanets(); + + if (FUSE(MINUTEFUSE) && status->tourn) + { + + shipbuild_timers(); + +#ifdef LEAGUE_SUPPORT + if (!status2->league) +#endif + udsurrend(); /* update surrender every minute unless + * playing league */ + + status->clock++; /* increment the timestamp clock */ + + } + /* update the tournament clock, maybe print messages */ +#ifdef LEAGUE_SUPPORT + udtourny(); +#endif + } /* end if !paused */ + + if (FUSE(MINUTEFUSE)) + { + int i, c; + c = 0; + for (i = 0; i < MAXPLAYER; i++) + { + if (players[i].p_status != PFREE) + c++; + } +#ifdef COUNTFILENAME + if (c) + { + char *paths; + FILE *logfile; + paths = build_path(COUNTFILENAME); + logfile = fopen(paths, "a"); + if (logfile) + { + struct tm *tp; + char buf[50]; + time_t cal; + + cal = time(0); + tp = localtime(&cal); + strftime(buf, 50, "%m/%d %H:%M", tp); + + fprintf(logfile, "%s : %2d ", buf, c); + for (i = 0; i < c; i++) + { + putc('*', logfile); + } + putc('\n', logfile); + fclose(logfile); + } + } +#else +#ifdef UFL + { + char *paths; + FILE *logfile; + paths = build_path(LOGFILENAME); + logfile = fopen(paths, "a"); + if (logfile) + { + fprintf(logfile, "Count: %d players\n", c); + fclose(logfile); + } + } +#endif +#endif + } + +#if 0 + /* well, this may cause blocked pipes if too many */ + /* processes, the file said before I hacked it. */ + /* So this is disabled. */ + if (FUSE(CHECKLOADFUSE)) /* time to check load? */ + check_load(); +#endif + + + if (status2->newgalaxy) + { + + /* Disable the game timer. It'll be set again after the longjmp() */ + stoptimer(); + + status2->nontteamlock = ALLTEAM; /* allow all teams again */ + status2->starttourn = 0; /* fresh galaxy */ + + gen_planets(); + + for (i = 0; i < MAXPLAYER; i++) + { + galaxyValid[i] = 0; /* force download of new galaxy map */ + } + longjmp(env, 0); + } +} + + +sig_ret_t +freemem(sig) + int sig; +{ + register int i; + register struct player *j; + + if (sig) + { + fprintf(stderr, "Daemon: Caught signal %d\n", sig); + /* U_STACK_TRACE(); */ + } + + /* Blow players out of the game */ + for (i = 0, j = &players[i]; i < MAXPLAYER; i++, j++) + { + j->p_status = POUTFIT; + j->p_whydead = KDAEMON; + j->p_ntorp = 0; + j->p_nplasmatorp = 0; + j->p_explode = 600 / PLAYERFUSE; /* ghost buster was leaving players + * in */ + } + /* Kill waiting players */ + status->gameup = 0; /* say goodbye to xsg et. al. 4/10/92 TC */ + status->count = 0; + save_planets(); + sleep(2); + blast_shmem(); + exit(0); +} + + +void +check_load() +{ +#ifndef hpux /* breaks under hpux... it's fixable, though */ + FILE *fp, *popen(); + char buf[100]; + char *s; + float load; + +#if defined(SYSV) || defined(Linux) || defined(FreeBSD) +#if defined(sgi) + fp = popen("/usr/bsd/uptime", "r"); /* sigh. */ +#else + fp = popen("/usr/bin/uptime", "r"); +#endif +#else + fp = popen("/usr/ucb/uptime", "r"); +#endif + if (fp == NULL) + { + /* status->gameup=0; */ + return; + } + fgets(buf, 99, fp); + s = strrchr(buf, ':'); + if (s == NULL) + { + /* status->gameup=0; */ + pclose(fp); + return; + } + if (sscanf(s + 1, " %f", &load) == 1) + { + sprintf(buf, "NetrekII (Paradise), %s", PARAVERS); + pmessage(buf, 0, MALL, MSERVA); + if (load >= configvals->maxload && status->gameup == 1) + { + status->gameup = 0; + sprintf(buf, "The load is %f, this game is going down", load); + pmessage(buf, 0, MALL, MSERVA); + } + else if (load < configvals->maxload && status->gameup == 0) + { + status->gameup = 1; + sprintf(buf, "The load is %f, this game is coming up", load); + pmessage(buf, 0, MALL, MSERVA); + } + else + { + sprintf(buf, "Load check: %-7.2f", load); + buf[strlen(buf) - 1] = '\0'; + pmessage(buf, 0, MALL, MSERVA); + } + } + else + { + /* status->gameup=0; */ + } + r_signal(SIGCHLD, SIG_DFL); + pclose(fp); + r_signal(SIGCHLD, reaper); +#endif +} + +void +ghostmess(victim) + struct player *victim; +{ + char buf[80]; + static float ghostkills = 0.0; + int i, k; + + ghostkills += 1.0 + victim->p_armies * 0.1 + victim->p_kills * 0.1; + sprintf(buf, "%s (%s) was kill %0.2f for the GhostBusters", + victim->p_name, twoletters(victim), + ghostkills); + pmessage(buf, 0, MALL, MSERVA); +#if 1 + if (victim->p_armies > 0) + { + k = 10 * (remap[victim->p_team] - 1); + if (k >= 0 && k <= 30) + for (i = 0; i < 10; i++) + { + if (planets[i + k].pl_owner == victim->p_team) + { + planets[i + k].pl_armies += victim->p_armies; + sprintf(buf, "%s's %d armies placed on %s", + victim->p_name, victim->p_armies, planets[k + i].pl_name); + pmessage(buf, 0, MALL | MGHOST, MSERVA); + break; + } + } + } +#else + if (victim->p_armies > 0) + PlaceLostArmies(victim); /* not working yet */ +#endif +} + +void +saveplayer(victim) + struct player *victim; +{ + int fd; + char *paths; + + if (victim->p_pos < 0) + return; + if (victim->p_stats.st_lastlogin == 0) + return; +#ifndef ROBOTSTATS + if (victim->p_flags & PFROBOT) + return; +#endif + + paths = build_path(PLAYERFILE); + fd = open(paths, O_WRONLY, 0644); + if (fd >= 0) + { + lseek(fd, 32 + victim->p_pos * sizeof(struct statentry), 0); + write(fd, (char *) &victim->p_stats, sizeof(struct stats)); + close(fd); + } +} + + +/* Send in a robot to avenge the aggrieved team */ +/* -1 for HK, -2 for Terminator, -3 for sticky Terminator */ + +/* if team in { FED, ROM, KLI, ORI }, a nonzero target means "fleet" mode */ +/* CRD feature: number (or -1) for starting planet - MAK, 2-Jun-93 */ + +void +rescue(team, target, planet) + int team; + int target; + int planet; +{ + char *arg1, argp[5]; + int pid; + char *paths; /* added 1/18/93 KAO */ + +#ifdef LEAGUE_SUPPORT + if (status2->league) + return; /* no robots during league play */ +#endif + + sprintf(argp, "-S%d", planet); + + if ((pid = fork()) == 0) + { + /* underscore is just a place holder */ + static char termbuf[] = "-Tt_"; + if (!debug) + { + close(0); + close(1); + close(2); + } + r_signal(SIGALRM, SIG_DFL); + paths = build_path(ROBOT); + switch (team) + { + case FED: + arg1 = "-Tf"; + break; + case ROM: + arg1 = "-Tr"; + break; + case KLI: + arg1 = "-Tk"; + break; + case ORI: + arg1 = "-To"; + break; + case HUNTERKILLER: + arg1 = "-Ti"; /* -1 means independent robot */ + if (!debug) + { + execl(paths, "robot", arg1, "-P", argp, 0); + } + else + { + execl(paths, "robot", arg1, "-P", argp, "-d", 0); + } + break; + case TERMINATOR: /* Terminator */ + arg1 = termbuf; + arg1[3] = twoletters(&players[target])[1]; + break; + case STERMINATOR: /* sticky Terminator */ + arg1 = termbuf; + arg1[3] = twoletters(&players[target])[1]; + if (!debug) + execl(paths, "robot", arg1, "-s", argp, 0); + else + execl(paths, "robot", arg1, "-s", argp, "-d", 0); + break; + default: + arg1 = "-Ti"; + break; + } + if (target > 0) /* be fleet 8/28/91 TC */ + execl(paths, "robot", arg1, "-f", argp, 0); + else if (!debug) + { /* Make these fleet, too - MAK, 4-Jun-93 */ + execl(paths, "snake", arg1, argp, 0); + /* execl (paths, "robot", arg1, "-f", argp, 0); */ + } + else + { /* Make these fleet, too - MAK, 4-Jun-93 */ + execl(paths, "snake", arg1, argp, "-d", 0); + /* execl (paths, "snake", arg1, "-f", argp, "-d", 0); */ + } + /* If we get here, we are hosed anyway */ + fprintf(stderr, "Failed to exec robot %s.\n", paths); + exit(1); + } + else + { + if (debug) + { + fprintf(stderr, "Forking robot: pid is %d\n", pid); + } + } +} + +#include + +/* ARGSUSED */ + +/* Don't fear the ... */ + +sig_ret_t +reaper(sig) +{ + static int status; + static int pid; + +#ifndef SVR4 + while ((pid = wait3((union wait *) & status, WNOHANG, (struct rusage *) 0)) > 0) + { +#else /* note: no status info */ + while ((pid = waitpid(0, 0, WNOHANG)) > 0) + { +#endif /* SVR4 */ + if (debug) + { + fprintf(stderr, "Reaping: pid is %d (status: %X)\n", + pid, status); + } + } +} + +unsigned char +getcourse(x, y, xme, yme) + int x, y, xme, yme; +{ + return ((unsigned char) (int) (atan2((double) (x - xme), + (double) (yme - y)) / 3.14159 * 128.)); +} + +int tm_robots[MAXTEAM + 1]; /* To limit the number of robots */ + +void +teamtimers() +{ + register int i; + for (i = 0; i <= MAXTEAM; i++) + { + if (tm_robots[i] > 0) + tm_robots[i]--; + } +} + +void +shipbuild_timers() +{ + int i, t; + + for (i = 0; i <= MAXTEAM; i++)/* go through all teams */ + for (t = 0; t < NUM_TYPES; t++) /* and each ship type */ + if (teams[i].s_turns[t] > 0) /* and if need be, then dec */ + teams[i].s_turns[t]--; /* the construction timer */ +} + + +#undef D diff -r 4d6502ffaa5e -r 2719a89505ba src/daemonII.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/daemonII.h Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,91 @@ +/*-------------------------------------------------------------------------- +NETREK II -- Paradise + +Permission to use, copy, modify, and distribute this software and its +documentation, or any derivative works thereof, for any NON-COMMERCIAL +purpose and without fee is hereby granted, provided that this copyright +notice appear in all copies. No representations are made about the +suitability of this software for any purpose. This software is provided +"as is" without express or implied warranty. + + Xtrek Copyright 1986 Chris Guthrie + Netrek (Xtrek II) Copyright 1989 Kevin P. Smith + Scott Silvey + Paradise II (Netrek II) Copyright 1993 Larry Denys + Kurt Olsen + Brandon Gillespie +--------------------------------------------------------------------------*/ + +#include + + + + + +/*-------------------------------NUMBER DEFINES-----------------------------*/ +#define TOURNEXTENSION 15 /* Tmode gone for 15 seconds 8/26/91 TC */ + +#define PLAYERFUSE 1 +#define TORPFUSE 1 +#define MISSILEFUSE 1 +#define PLASMAFUSE 1 +#define PHASERFUSE 1 +#define CLOAKFUSE 2 +#define TEAMFUSE 5 +#define PLFIGHTFUSE 5 +#define TERRAINFUSE 1 +#define BEAMFUSE 8 /* scott 8/25/90 -- was 10 */ +#define PLANETFUSE SECONDS(15) /* every 15 seconds */ +#define MINUTEFUSE MINUTES(1) /* 1 minute, surrender funct etc. + * 4/15/92 TC */ +#define SYNCFUSE MINUTES(5) +#define CHECKLOADFUSE MINUTES(15) /* change 1/26/91 -- was 600 */ +#define HOSEFUSE MINUTES(20) /* 20 min., was 15 minutes 6/29/92 TC */ +#define HOSEFUSE2 MINUTES(5) /* 5 min., was 3 minutes 6/29/92 TC */ + +#define GHOSTTIME SECONDS(30) /* 30 secs */ +#define OUTFITTIME SECONDS(6 * AUTOQUIT) /* 6 * AQ secs */ + +#define HUNTERKILLER (-1) +#define TERMINATOR (-2) /* Terminator */ +#define STERMINATOR (-3) /* sticky Terminator */ +/*--------------------------------------------------------------------------*/ + + + + + + +/*---------------------------------MACROS-----------------------------------*/ + +#define FUSE(X) ((ticks % (X)) == 0) + +#define NotTmode(X) (!(status->tourn) && ((X - tourntimestamp)/10 > TOURNEXTENSION)) + +/*--------------------------------------------------------------------------*/ + + + + + + +/*----------------------------MODULE VARIABLES------------------------------*/ + +#ifndef DAEMONII /* only declare if not in daemonII.c */ +extern int tcount[MAXTEAM + 1]; +extern int ticks; +extern int tm_robots[MAXTEAM + 1]; /* To limit the number of robots */ +extern int tourntimestamp; /* ticks since last Tmode 8/2/91 TC */ +extern char *teamVerbage[9]; +extern jmp_buf env; +extern int dietime; +extern plfd, glfd; +#endif + +/*--------------------------------------------------------------------------*/ + + + + + +/*----------END OF FILE--------*/ diff -r 4d6502ffaa5e -r 2719a89505ba src/data.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/data.c Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,182 @@ +/*-------------------------------------------------------------------------- +NETREK II -- Paradise + +Permission to use, copy, modify, and distribute this software and its +documentation, or any derivative works thereof, for any NON-COMMERCIAL +purpose and without fee is hereby granted, provided that this copyright +notice appear in all copies. No representations are made about the +suitability of this software for any purpose. This software is provided +"as is" without express or implied warranty. + + Xtrek Copyright 1986 Chris Guthrie + Netrek (Xtrek II) Copyright 1989 Kevin P. Smith + Scott Silvey + Paradise II (Netrek II) Copyright 1993 Larry Denys + Kurt Olsen + Brandon Gillespie +--------------------------------------------------------------------------*/ + + +#include "config.h" +#include "defs.h" +#include "struct.h" +#include "data.h" + +char *argv0; + +int oldalert = PFGREEN; /* Avoid changing more than we have to */ +int remap[9] = {0, 1, 2, -1, 3, -1, -1, -1, 4}; +int selfdest; +int lastm; +int delay; /* delay for decaring war */ +int rdelay; /* delay for refitting */ +int mustexit = 0; +int keeppeace = 0; +char *shipnos = "0123456789abcdefghijklmnopqrstuvwxyz"; +int sock = -1; +int xtrekPort = 2592; +int shipPick; +int tmpPick = (int) CRUISER; /* just to assign something :) */ +int teamPick; +int repCount = 0; +char namePick[16]; +char passPick[16]; +int inputMask = -1; +int nextSocket; +char *host; +int noressurect = 0; +int userVersion = 0, userUdpVersion = 0; +int timerDelay = 200000; /* delay between sending stuff to client */ +char testdata[KEY_SIZE]; +int RSA_Client; +char RSA_client_type[256]; /* LAB 4/1/93 */ +int testtime = -1; +int chaos = 0; +int topgun = 0; /* added 12/9/90 TC */ +int hourratio = 1; /* Fix thing to make guests advance fast */ +int blk_flag = 0; /* added 1/19/93 KAO */ +int udpSock = (-1); /* UDP - the almighty socket */ +int commMode = 0; /* UDP - initial mode is TCP only */ +int blk_metaserver = 0; /* 1 if this call is from meta-server */ +char *galaxyValid; /* 0 if galaxy invalid */ + +#ifdef FEATURE /* plus defaults, to protect client */ +int F_feature_packets = 1; /* allow feature packets */ +int F_allowViewBox = 1; /* allow view box */ +int F_allowShowAllTractorPressor = 1; /* allow all tracts/presses */ +int F_allowContinuousMouse = 1; /* allow continuous mouse */ +int F_UseNewMacro = 1; /* allow new macros */ +int F_UseSmartMacro = 1; /* Allow smart macros */ +int F_multiline_enabled = 1; /* Allow multiline macros */ +int F_why_dead = 1; /* Allow why_dead reporting */ +int F_cloakerMaxWarp = 1; /* Allow cloaker to go maxwarp */ +int F_gen_distress = 0; /* No RCDs (not yet implemented in server) */ +int F_allow_beeplite = 0; /* No RCDs ==> no allowed beeplite */ +unsigned char F_beeplite_flags; /* flags for beeplite */ +int F_terrain = 0; /* Client isn't capable of terrain by default */ +unsigned char F_terrain_major; /* Major terrain version client can handle */ +unsigned char F_terrain_minor; /* Minor terrain version client can handle */ +int F_gz_motd = 0; /* Client can't handle GZipped MOTD packets */ +unsigned char F_gz_motd_major; /* Major gzipped format client can handle */ +unsigned char F_gz_motd_minor; /* Minor gzipped format client can handle */ +#endif + +double oldmax = 0.0; + +extern double Sin[], Cos[]; /* Initialized in sintab.c */ + +char pseudo[PSEUDOSIZE]; +char login[PSEUDOSIZE]; + +#ifdef RANKS2 +struct rank ranks[NUMRANKS] = +{ + /* genos DI batl strat spec name */ + {0, 0, 0.00, 0.0, 0.0, "Recruit"}, + {1, 10, 0.30, 0.3, 0.0, "2nd Mate"}, + {2, 25, 0.40, 0.6, 0.0, "1st Mate"}, + {3, 45, 0.50, 0.9, 0.0, "Bosun"}, + {4, 70, 0.70, 1.2, 0.0, "Ensign"}, + {5, 100, 0.90, 1.5, 0.0, "2nd Lieutenant"}, + {6, 140, 1.10, 2.0, 0.0, "1st Lieutenant"}, + {8, 190, 1.30, 2.5, 0.0, "Lt. Cmdr."}, + {10, 250, 1.50, 3.0, 0.5, "Commander"}, + {15, 300, 1.80, 3.5, 0.7, "Battle Cmdr."}, + {18, 350, 2.00, 4.0, 1.0, "Captain"}, + {25, 400, 2.10, 4.3, 2.5, "Fleet Capt."}, + {50, 500, 2.15, 4.8, 3.0, "Commodore"}, + {75, 700, 2.20, 5.3, 3.3, "Rear Adml."}, + {100, 900, 2.25, 5.7, 3.6, "Admiral"}, + {200, 1200, 2.30, 6.0, 3.8, "Grand Adml."}, + {300, 1700, 2.35, 6.1, 4.0, "Moff"}, + {500, 2500, 2.40, 6.2, 4.2, "Grand Moff"} +}; +#ifdef CASSIUS_ROYALTY +struct royalty royal[NUMROYALRANKS] = { + {"none"}, + {"Wesley"}, + {"Footslog"}, + {"COMMODORE"}, + {"Dread"}, + {"Agent"}, + {"Gorilla"}, + {"Lord"}, + {"Emperor"}, + {"Q"} +}; +#else +struct royalty royal[NUMROYALRANKS] = { + {"none"}, + {"Wesley"}, + {"Agent"}, + {"Emperor"}, + {"Q"} +}; +#endif /* Royalty */ +#else +struct rank ranks[NUMRANKS] = +{ + /* gen DI batl strat spec name */ + {0, 0, 0.00, 0.0, 0.0, "Recruit"}, + {1, 10, 0.30, 0.3, 0.0, "Specialist"}, + {2, 25, 0.40, 0.6, 0.0, "Cadet"}, + {3, 45, 0.50, 0.9, 0.0, "Midshipman"}, + {4, 70, 0.70, 1.2, 0.0, "Ensn., J.G."}, + {5, 100, 0.90, 1.5, 0.0, "Ensign"}, + {6, 140, 1.10, 2.0, 0.0, "Lt., J.G."}, + {8, 190, 1.30, 2.5, 0.0, "Lieutenant"}, + {10, 250, 1.50, 3.0, 0.5, "Lt. Cmdr."}, + {15, 300, 1.80, 3.5, 0.7, "Commander"}, + {18, 350, 2.00, 4.0, 1.0, "Captain"}, + {25, 400, 2.10, 4.3, 2.5, "Fleet Capt."}, + {50, 500, 2.15, 4.8, 3.0, "Commodore"}, + {75, 700, 2.20, 5.3, 3.3, "Moff"}, + {100, 900, 2.25, 5.7, 3.6, "Grand Moff"}, + {300, 1200, 2.30, 6.0, 3.8, "Rear Adml."}, + {700, 1700, 2.35, 6.1, 4.0, "Admiral"}, + {1000, 2500, 2.40, 6.2, 4.2, "Grand Adml."} +}; + +struct royalty royal[NUMROYALRANKS] = { + {"none"}, + {"Wesley"}, + {"Centurion"}, + {"Praetor"}, + {"Q"} +}; +#endif + +/* ping stuff */ +int ping = 0; /* to ping or not to ping, client's decision */ +long packets_sent = 0; /* # all packets sent to client */ +long packets_received = 0; /* # all packets received from client */ +int ping_ghostbust = 0; /* ghostbust timer */ + + +char _PARAVERS[] = "@(#)version 2.4 patch 10 ALPHA"; +char *PARAVERS = &(_PARAVERS[4]); +char MCONTROL[] = "CONTROL->"; +char UMPIRE[] = "Umpire "; +/* for sending messages from GOD/Server to others */ +char MSERVA[] = "SRV->ALL"; +char SERVNAME[] = "SRV"; diff -r 4d6502ffaa5e -r 2719a89505ba src/data.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/data.h Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,129 @@ +/*-------------------------------------------------------------------------- +NETREK II -- Paradise + +Permission to use, copy, modify, and distribute this software and its +documentation, or any derivative works thereof, for any NON-COMMERCIAL +purpose and without fee is hereby granted, provided that this copyright +notice appear in all copies. No representations are made about the +suitability of this software for any purpose. This software is provided +"as is" without express or implied warranty. + + Xtrek Copyright 1986 Chris Guthrie + Netrek (Xtrek II) Copyright 1989 Kevin P. Smith + Scott Silvey + Paradise II (Netrek II) Copyright 1993 Larry Denys + Kurt Olsen + Brandon Gillespie +--------------------------------------------------------------------------*/ + +#include "defs.h" + +#define SBEXPVIEWS 7 + +extern char *argv0; + +extern struct player *me; +extern struct ship *myship; +extern struct stats *mystats; + +extern int oldalert; +extern int remap[]; +extern int selfdest; +extern int lastm; +extern int delay; +extern int rdelay; +extern int mustexit; +extern int keeppeace; +extern char *shipnos; +extern int sock; +extern int xtrekPort; +extern int shipPick; +extern int tmpPick; +extern int teamPick; +extern int repCount; +extern char namePick[]; +extern char passPick[]; +extern int inputMask; +extern int nextSocket; +extern char *host; +extern int noressurect; +extern int userVersion, userUdpVersion; +extern int timerDelay; +extern char testdata[]; +extern int RSA_Client; +extern char RSA_client_type[256]; /* LAB 4/1/93 */ +extern int testtime; +extern char *galaxyValid; + +#ifdef FEATURE /* plus defaults, to protect client */ +extern int F_feature_packets; /* allow feature packets */ +extern int F_allowViewBox; /* allow view box */ +extern int F_allowShowAllTractorPressor; /* allow all tracts/presses */ +extern int F_allowContinuousMouse; /* allow continuous mouse */ +extern int F_UseNewMacro; /* allow new macros */ +extern int F_UseSmartMacro; /* Allow smart macros */ +extern int F_multiline_enabled; /* Allow multiline macros */ +extern int F_why_dead; /* Allow why_dead reporting */ +extern int F_cloakerMaxWarp; /* Allow cloaker to go maxwarp */ +extern int F_gen_distress; /* No RCDs (not yet implemented in server) */ +extern int F_allow_beeplite; /* No RCDs ==> no allowed beeplite */ +extern unsigned char F_beeplite_flags; /* flags for beeplite */ +extern int F_terrain; /* Client isn't capable of terrain by default */ +extern unsigned char F_terrain_major; /* Major terrain version client can + * handle */ +extern unsigned char F_terrain_minor; /* Minor terrain version client can + * handle */ +extern int F_gz_motd; /* Client can't handle GZipped MOTD packets */ +extern unsigned char F_gz_motd_major; /* Major gzipped format client can + * handle */ +extern unsigned char F_gz_motd_minor; /* Minor gzipped format client can + * handle */ +#endif + +/* extern char *serverName; not needed 8/1/92 TC */ + +extern int chaos; +extern int topgun; /* added 12/9/90 TC */ +extern int hourratio; +extern int blk_flag; /* added 1/19/93 KAO */ + +extern int udpSock; /* UDP */ +extern int commMode; /* UDP */ +extern int blk_metaserver; + +extern double oldmax; +extern double Sin[], Cos[]; + +#define VIEWS 16 +extern char pseudo[PSEUDOSIZE]; +extern char login[PSEUDOSIZE]; + +extern struct rank ranks[NUMRANKS]; +extern struct royalty royal[NUMROYALRANKS]; + + +/* returns a pointer to its static data */ +char *build_path( /* char* */ ); + +extern int ping; +extern long packets_sent; +extern long packets_received; +extern int ping_ghostbust; +#if 0 +extern int ping_freq; +extern int ping_iloss_interval; +extern int ping_allow_ghostbust; +extern int ping_ghostbust_interval; +#endif + + +/* + * miscellaneous string constants that don't need to be scattered all over + * the place + */ + +extern char *PARAVERS; +extern char MCONTROL[]; +extern char UMPIRE[]; +extern char MSERVA[]; +extern char SERVNAME[]; diff -r 4d6502ffaa5e -r 2719a89505ba src/death.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/death.c Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,181 @@ +/*-------------------------------------------------------------------------- +NETREK II -- Paradise + +Permission to use, copy, modify, and distribute this software and its +documentation, or any derivative works thereof, for any NON-COMMERCIAL +purpose and without fee is hereby granted, provided that this copyright +notice appear in all copies. No representations are made about the +suitability of this software for any purpose. This software is provided +"as is" without express or implied warranty. + + Xtrek Copyright 1986 Chris Guthrie + Netrek (Xtrek II) Copyright 1989 Kevin P. Smith + Scott Silvey + Paradise II (Netrek II) Copyright 1993 Larry Denys + Kurt Olsen + Brandon Gillespie +--------------------------------------------------------------------------*/ + +#include "config.h" +#include +#include +#include +#include +#include + +#include "defs.h" +#include "struct.h" +#include "data.h" +#include "shmem.h" + +#if 0 +extern jmp_buf env; +#endif + + +/* Figure out ratings for player p. Computed ratings are filled into r */ +void +compute_ratings(p, r) + struct player *p; + struct rating *r; +{ + struct stats *s; + float t, t2; + + s = &p->p_stats; + + r->ratio = (s->st_tlosses != 0) ? (float) s->st_tkills / + (float) s->st_tlosses : s->st_tkills; + + if (status->timeprod == 0) + status->timeprod = 1; + + t = (float) s->st_tticks / (float) status->timeprod; /* hour ratio */ + if (t == 0.0) + t = 1.0; + + t2 = t * (float) status->kills; /* get expected kills */ + t2 /= 2; /* lower expectation */ + printf("ticks %f timeprod %u %f %f %d\n", (float) s->st_tticks, status->timeprod, t2, t, status->kills); + r->offrat = s->st_tkills / t2;/* calc offense rating */ + + t2 = t * (float) status->dooshes; /* expected armies dooshed */ + r->dooshrat = (float) s->st_tdooshes / t2; /* doosh rating */ + + r->battle = r->offrat + r->dooshrat; /* get battle rating */ + + t2 = t * (float) status->armsbomb; /* expected armies bombed */ + r->bombrat = (float) s->st_tarmsbomb / t2; /* bomb rating */ + + t2 = t * (float) status->resbomb; /* expected resources bombed */ + r->resrat = (float) s->st_tresbomb / t2; /* resource bombed rating */ + + t2 = t * (float) status->planets; /* expected planets */ + r->planetrat = (float) s->st_tplanets / t2; /* get planet rating */ + + printf("planetrat %f tplanets %f t2 %f\n", (float) r->planetrat, (float) s->st_tplanets, (float) t2); + + r->strategy = r->bombrat + r->resrat + r->planetrat; /* strategy rating */ + + t2 = (float) status->sbkills / (float) status->sblosses; + if (s->st_sblosses == 0) + r->sbrat = (float) s->st_sbkills / t2; + else + r->sbrat = ((float) s->st_sbkills / (float) s->st_sblosses) / t2; + + t2 = (float) status->wbkills / (float) status->wblosses; + if (s->st_wblosses == 0) + r->wbrat = (float) s->st_wbkills / t2; + else + r->wbrat = ((float) s->st_wbkills / (float) s->st_wblosses) / t2; + + t = (float) s->st_jsticks / (float) status->jstime; + t2 = t * (float) status->jsplanets; /* get expected js planets */ + if (t2 == 0.0) + r->jsrat = 0.0; + else + r->jsrat = (float) s->st_jsplanets / t2; /* js rating */ + + r->special = r->sbrat + r->wbrat + r->jsrat; /* get special ship rating */ +} + + +/*-----------------------------------DEATH---------------------------------*/ +/* + * This function is called when the player dies. It checks to see if the + * player has been promoted. + */ + + +extern int savestats(); + +void +death() +{ + struct stats *s; /* to point to player's stats */ + struct rating r; /* filled in by compute_ratings() */ + int genocides; /* player's genocides */ + float di; /* player's di */ + +#if 0 + stop_interruptor(); +#endif + me->p_status = POUTFIT; /* Stop the ghost buster */ + switch (me->p_whydead) + { /* determine whether the player */ + case KTORP: /* should be forced out of the */ + case KPLASMA: /* game or not */ + case KPHASER: + case KPLANET: + case KSHIP: + case KGENOCIDE: + case KGHOST: + case KPROVIDENCE: + case KASTEROID: + default: + break; + case KQUIT: + case KDAEMON: + case KWINNER: + mustexit = 1; /* set global var to force player out */ + break; + } + me->p_flags &= ~(PFWAR | PFREFITTING); /* turn off most flags */ + if (me->p_stats.st_rank < NUMRANKS - 1) + { /* should we try to promote */ + s = &(me->p_stats); /* get player's stat struct */ + genocides = s->st_genocides;/* get # genocides */ + di = s->st_di; /* get player's DI */ + + compute_ratings(me, &r); + + /*--[ check for promotion ]--*/ + if (configvals->bronco_ranks) + { + if ((di >= ranks[s->st_rank + 1].di) + && (r.battle >= ranks[s->st_rank + 1].battle) + && (r.strategy * 3 / 2 >= ranks[s->st_rank + 1].strategy) + && (r.special * 3 >= ranks[s->st_rank + 1].specship)) + s->st_rank++; /* we have a promotion */ + } + else + { + if ((genocides >= ranks[s->st_rank + 1].genocides) + && (di >= ranks[s->st_rank + 1].di) + && (r.battle >= ranks[s->st_rank + 1].battle) + && (r.strategy >= ranks[s->st_rank + 1].strategy) + && (r.special >= ranks[s->st_rank + 1].specship)) + s->st_rank++; /* we have a promotion */ + } + } + updateClient(); /* update the client */ + savestats(); /* save players stats */ +#if 0 + longjmp(env, 0); /* jump to start of ntserv */ +#endif +} + +/*-------------------------------------------------------------------------*/ + + +/*----END OF FILE-----*/ diff -r 4d6502ffaa5e -r 2719a89505ba src/detonate.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/detonate.c Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,167 @@ +/*-------------------------------------------------------------------------- +NETREK II -- Paradise + +Permission to use, copy, modify, and distribute this software and its +documentation, or any derivative works thereof, for any NON-COMMERCIAL +purpose and without fee is hereby granted, provided that this copyright +notice appear in all copies. No representations are made about the +suitability of this software for any purpose. This software is provided +"as is" without express or implied warranty. + + Xtrek Copyright 1986 Chris Guthrie + Netrek (Xtrek II) Copyright 1989 Kevin P. Smith + Scott Silvey + Paradise II (Netrek II) Copyright 1993 Larry Denys + Kurt Olsen + Brandon Gillespie +--------------------------------------------------------------------------*/ + + +#include "config.h" +#include +#include +#include "defs.h" +#include "struct.h" +#include "data.h" +#include "shmem.h" + +/* + * * Here we have another flaw. Detonating other players torps can be a * + * very quick way to die. Why? Because you always take some damage. * + * Experienced players never detonate other players' torps. Balance is * + * really hard to obtain with this type of function. Technically, a * player + * could nearly continuously detonate torps (at least faster than * they + * could be fired) and never be hurt, if I allowed less damage as * a + * possible result. So here it sits. + */ + + + +static struct timeval lasttp; + + +#define UGAP 100000 /* microseconds */ + + +/*-----------------------------VISIBLE FUNCTIONS---------------------------*/ + +/*-------------------------------DETOTHERS---------------------------------*/ +/* + * This function goes through all the torps in the games and detonates the + * torps that are close enough to det. + */ + +void +detothers() +{ + register int h, i; /* looping var */ + int dx, dy; /* to find distance */ + register struct torp *j; /* to point to torp */ + register struct missile *drn; /* to point to torp */ + + if (me->p_fuel < myship->s_detcost) + { /* if not enough fuel */ + warning("Not enough fuel to detonate"); /* then print warning */ + return; /* and get out of dodge */ + } + if (me->p_flags & PFWEP) + { /* if W-temped then you */ + warning("Weapons overheated"); /* cannot det */ + return; + } + + if (!temporally_spaced(&lasttp, UGAP)) + return; + + + me->p_fuel -= myship->s_detcost; /* take fuel away */ + me->p_wtemp += myship->s_detcost / 5; /* increase W-temp */ + for (h = 0; h < MAXPLAYER; h++) + { /* go through all players */ + if ((players[h].p_status == PFREE) || (h == me->p_no)) + continue; /* do not det own torps */ + for (i = h * MAXTORP; i < MAXTORP * (h + 1); i++) + { + j = &torps[i]; /* get a torp */ + if (friendlyTorp(j)) /* if its friendly then */ + continue; /* disregard it */ + if ((j->t_status == TMOVE) || (j->t_status == TSTRAIGHT)) + { + dx = j->t_x - me->p_x; /* if torp moving */ + dy = j->t_y - me->p_y; /* get delta cords */ +#ifdef SHIPDET + if (ABS(dx) > myship->s_detdist || ABS(dy) > myship->s_detdist) + continue; /* obviously too far away */ + if (dx * dx + dy * dy < myship->s_detdist * myship->s_detdist) + { /* close enough? */ +#elif LARGEDET + if (ABS(dx) > NEWDETDIST || ABS(dy) > NEWDETDIST) + continue; /* obviously too far away */ + if (dx * dx + dy * dy < NEWDETDIST * NEWDETDIST) + { /* close enough? */ +#else + /* + * DETDIST is normally set to 1700 unless SHIPDET is set. If SHIPDET + * is set + */ + /* + * then DETDIST is set as myship->s_detdist in defs.h which will make + * the + */ + /* det distances settable by ship type */ + if (ABS(dx) > DETDIST || ABS(dy) > DETDIST) + continue; /* obviously too far away */ + if (dx * dx + dy * dy < DETDIST * DETDIST) + { /* close enough? */ +#endif + j->t_whodet = me->p_no; /* set who detted it */ + j->t_status = TDET; /* change status to det */ + } + } + } + } + + for (h = 0; h < MAXPLAYER * NPTHINGIES; h++) + { + drn = &missiles[h]; + + if (friendlyMissile(drn)) + continue; + + if (drn->ms_status == TMOVE || drn->ms_status == TSTRAIGHT) + { + dx = drn->ms_x - me->p_x; /* if torp moving */ + dy = drn->ms_y - me->p_y; /* get delta cords */ + +#ifdef SHIPDET + if (ABS(dx) > myship->s_detdist || ABS(dy) > myship->s_detdist) + continue; /* obviously too far away */ + if (dx * dx + dy * dy < myship->s_detdist * myship->s_detdist) + { /* close enough? */ +#elif LARGEDET + if (ABS(dx) > NEWDETDIST || ABS(dy) > NEWDETDIST) + if (ABS(dx) > NEWDETDIST || ABS(dy) > NEWDETDIST) + continue; /* obviously too far away */ + if (dx * dx + dy * dy < NEWDETDIST * NEWDETDIST) + { /* close enough? */ +#else + if (ABS(dx) > DETDIST || ABS(dy) > DETDIST) + continue; /* obviously too far away */ + if (dx * dx + dy * dy < DETDIST * DETDIST) + { /* close enough? */ +#endif + drn->ms_whodet = me->p_no; /* set who detted it */ + drn->ms_status = TDET; /* change status to det */ + } + } + } +} + + +/*-------------------------------------------------------------------------*/ + + + + + +/*-------END OF FILE------*/ diff -r 4d6502ffaa5e -r 2719a89505ba src/enter.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/enter.c Sat Dec 06 04:37:01 1997 +0000 @@ -0,0 +1,515 @@ +/*-------------------------------------------------------------------------- +NETREK II -- Paradise + +Permission to use, copy, modify, and distribute this software and its +documentation, or any derivative works thereof, for any NON-COMMERCIAL +purpose and without fee is hereby granted, provided that this copyright +notice appear in all copies. No representations are made about the +suitability of this software for any purpose. This software is provided +"as is" without express or implied warranty. + + Xtrek Copyright 1986 Chris Guthrie + Netrek (Xtrek II) Copyright 1989 Kevin P. Smith + Scott Silvey + Paradise II (Netrek II) Copyright 1993 Larry Denys + Kurt Olsen + Brandon Gillespie +--------------------------------------------------------------------------*/ + + +#include "config.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "defs.h" +#include "struct.h" +#include "data.h" +#include "shmem.h" +#include "grid.h" + +void auto_peace(); +static void placeIndependent(); +extern int +pmessage2( /* char *str, int recip, int group, char + address, unsigned char from */ ); +extern int +pmessage( /* char *str, int recip, int group, char + address */ ); + + + +/*------------------------------NUMBER DEFINES-----------------------------*/ +#define INDEP (GWIDTH/3) /* width of region in the center of galaxy */ +/* that independents can join in */ + +#define MIN_DIST_FROM_STAR 3000.0 /* min distance from a star that + * enter() */ +/* will place you */ +/*-------------------------------------------------------------------------*/ + + +int +find_start_planet(team, flag) + int team, flag; +{ + int valid[MAXPLANETS]; + int nvalid; + int i; + + nvalid = 0; + for (i = 0; i < NUMPLANETS; i++) + { + struct planet *pl = &planets[i]; + if (pl->pl_owner == team && (!flag || pl->pl_flags & flag)) + valid[nvalid++] = i; + } + if (nvalid < 1) + return -1; + + return valid[lrand48() % nvalid]; +} + + + +/*------------------------------VISIBLE FUNCTIONS-------------------------*/ + +#define BOSSMAN NUMROYALRANKS-1 +#define SIDEKICK NUMROYALRANKS-2 +#define AMBASSADOR NUMROYALRANKS-3 + +#ifdef UFL +#undef SIDEKICK +#define SIDEKICK NUMROYALRANKS-1 +#undef AMBASSADOR +#define AMBASSADOR NUMROYALRANKS-1 +#endif + +/*--------------------------------PEANUT_GALLERY--------------------------*/ +/* + * This function checks too see if certain "important" people have logged in, + * and displays a special message to the rest of the players. As the chief + * Paradise hack, I forbid removal of any of the code in this function. + * Other names may be added. If you choose to disregard this, a malefiction + * will be leveled upon your head and all of your progeny will be born with + * their noses two times too large. + */ + +#define AT_LEAST(rank) if (me->p_stats.st_royalp_stats.st_royal = rank; + + +void +peanut_gallery() +{ + char buf[90]; + + if (strcmp(me->p_name, "a fungusamongus") == 0) + { /* that's me! */ + pmessage2(" ", 0, MALL, "LDDENYS > ", me->p_no); + pmessage2("Yikes. EEK! Help. There seems to be a fungus among us!", 0, MALL, "LDDENYS > ", me->p_no); + pmessage2(" ", 0, MALL, "LDDENYS > ", me->p_no); + + } + else if (strcmp(me->p_name, "Lynx") == 0) + { + pmessage2("\"GAME OVER MAN, GAME OVER!\"", 0, MALL, "Lynx->ALL ", me->p_no); + + } + else if (strcmp(me->p_name, "Hammor") == 0) + { + pmessage2("Please don't hurt 'em, Hammor!", 0, MALL, "GOD->ALL", me->p_no); + + } + else if (strcmp(me->p_name, "Bubbles") == 0) + { + pmessage2("Whoa!", 0, MALL, "KAOLSEN > ", me->p_no); + pmessage2("Dudes.", 0, MALL, "KAOLSEN > ", me->p_no); + pmessage2("Cool.", 0, MALL, "KAOLSEN > ", me->p_no); + + } + else if (strcmp(me->p_name, "KnightRaven") == 0) + { + pmessage2("Insert Heiji quote here", 0, MALL, "KAOLSEN > ", me->p_no); + AT_LEAST(AMBASSADOR); + + } + else if (strcmp(me->p_name, "wibble") == 0) + { + pmessage("No mountain is unclimbable, no river uncrossable, no client RSA" + ,0, MALL, "EGO->wibble", me->p_no); + pmessage("key unbreakable. We can just make it bloody difficult!", + 0, MALL, "EGO->wibble", me->p_no); + + } + else if (strcmp(me->p_name, "Key") == 0) + { + time_t curtime; + struct tm *tmstruct; + int hour; + + (void) time(&curtime); + tmstruct = localtime(&curtime); + if (!(hour = tmstruct->tm_hour % 12)) + hour = 12; + + sprintf(buf, "It's %d:%02d%s, time [for me] to die.", hour, + tmstruct->tm_min, tmstruct->tm_hour >= 12 ? "pm" : "am"); + pmessage(buf, 0, MALL, "GOD->ALL", me->p_no); + + } + else if (strcmp(me->p_name, "MikeL") == 0) + { + pmessage("", 0, MALL, "GOD->ALL", me->p_no); + + + } + else if (strcmp(me->p_name, "Bolo") == 0) + { + pmessage("Bolo Mk. MCLXVII On-line.", 0, MALL, MSERVA, me->p_no); + } +} + + + +void +advertise_tourney_queue() +{ + char buf[80], addrbuf[10]; + int count = 0; + int i; + + if (status->tourn) + return; + + for (i = 0; i < MAXPLAYER; i++) + { + if (players[i].p_status == PTQUEUE) + count++; + } + + sprintf(addrbuf, "%s->YOU ", SERVNAME); + sprintf(buf, "There %s %d player%s on the tournament queue", + (count == 1) ? "is" : "are", count, (count == 1) ? "" : "s"); + pmessage(buf, me->p_no, MINDIV, addrbuf); +} + + + + +/*------------------------------------ENTER-------------------------------*/ +/* + * This function places a player into the game. It initializes fields in the + * player structure and his ship. It determines where in the galaxy to put + * the player. This function is also used to place robots and independents. + * If tno = 4, then the player is independent. If it is 5 then the player is + * a robot. + */ + +/* + * CRD feature: starting planet (for robots) - MAK, 2-Jun-93 Also added + * starting planet number as a useful return value. + */ + +int +enter(tno, disp, pno, s_type, startplanet) + int tno; /* team player is on */ + int disp; /* not used, so I used it 7/27/91 TC */ + int pno; /* player's number */ + int s_type; /* player's ship type */ + int startplanet; /* planet to enter near (or -1) */ +{ + static int lastteam = -1; /* to hold team of last enter */ + static int lastrank = -1; /* to hold rank of last enter */ + char buf[80]; /* to sprintf into */ + char buf2[80]; /* to sprintf into */ + char addrbuf[10]; /* to hold address */ + + if ((startplanet < 0) || (startplanet >= NUMPLANETS)) + startplanet = -1; + + (void) strncpy(me->p_name, pseudo, sizeof(me->p_name)); /* get name */ + me->p_name[sizeof(me->p_name) - 1] = '\0'; /* delimiet just in case */ + + me->p_kills = 0.0; /* have no kills yet */ + get_ship_for_player(me, s_type); /* get the player's ship type */ + + if (me->p_ship.s_nflags & SFNHASFIGHTERS) + me->p_ship.s_missilestored = 0; + + me->p_docked = 0; /* not docked to anyone */ + me->p_updates = 0; /* start updating immediately */ + me->p_flags = PFSHIELD; + if (allows_docking(me->p_ship)) + me->p_flags |= PFDOCKOK; /* enable docking */ + me->p_dir = 0; /* direction angle of zero */ + me->p_desdir = 0; /* desired direction of zero */ + me->p_speed = 0; /* speed of zero */ + me->p_desspeed = 0; /* desired speed of zero */ + me->p_subspeed = 0; /* fractional part of speed zero */ + + /* Gunboat docked to ships stuff */ + if ((me->p_ship.s_nflags & SFNMASSPRODUCED) && + (shipvals[shipPick].s_numports)) + { + int i; + + me->p_team = (1 << tno); + for (i = 0; i < MAXPLAYER; i++) + if ((players[i].p_ship.s_type == shipPick) && + (players[i].p_team == me->p_team) && + (players[i].p_status == PALIVE) && /* if all this stuff... */ + (players[i].p_flags & PFDOCKOK) && + (players[i].p_docked < players[i].p_ship.s_numports) && + (players[i].p_ship.s_missilestored)) + { + me->p_x = players[i].p_x; /* ...dock em on */ + me->p_y = players[i].p_y; + newdock(i); + if (players[i].p_ship.s_missilestored != -1) + players[i].p_ship.s_missilestored--; + if (players[i].p_flags & PFCLOAK) + { + me->p_flags |= PFCLOAK; + me->p_cloakphase = players[i].p_cloakphase; + } + else + me->p_cloakphase = 0; + break; + } + } + /* End Gunboat stuff */ + + if ((tno == 4) || (tno == 5)) + { /* if player indep or a robot */ + me->p_team = 0; /* he has no team */ + } + else + { /* else player is normal player--find planet */ + me->p_team = (1 << tno); /* set players team number */ + + /* + * forgive me father, for I have used short-circuiting to emulate control + * flow + */ + (startplanet >= 0 /* start planet already specified? */ + || (((startplanet = me->p_lastrefit) >= 0 /* we've got a home planet */ + && (planets[startplanet].pl_flags & PLSHIPYARD) /* and it's a yard */ + && (planets[startplanet].pl_owner == me->p_team)) /* and it's ours */ + || 0 < (me->p_lastrefit = -1)) /* oops, no more home shipyard, F */ + || (startplanet = find_start_planet(me->p_team, PLSHIPYARD)) != -1 + || (startplanet = find_start_planet(me->p_team, PLREPAIR)) != -1 + || (startplanet = find_start_planet(me->p_team, PLAGRI)) != -1 + || (startplanet = find_start_planet(me->p_team, PLFUEL)) != -1 + || (startplanet = find_start_planet(me->p_team, PLHOME)) != -1 + || (startplanet = find_start_planet(me->p_team, 0)) != -1 + ); + } + if (startplanet == -1) + { + placeIndependent(); + } + else + { + int i; + double dx, dy; + struct planet *l; + + /* we have a planet */ + /* use p_x and y as scratch registers */ + while (1) + { + me->p_x = planets[startplanet].pl_x + (lrand48() % 10000) - 5000; + me->p_y = planets[startplanet].pl_y + (lrand48() % 10000) - 5000; + if (me->p_x < 0) /* can't come in outside of borders */ + me->p_x = 0; /* now can we? */ + if (me->p_y < 0) + me->p_y = 0; + if (me->p_x >= GWIDTH) + me->p_x = GWIDTH - 1; + if (me->p_y >= GWIDTH) + me->p_y = GWIDTH - 1; + for (i = 0, l = &planets[0]; i < NUMPLANETS; i++, l++) + { + if (PL_TYPE(*l) == PLSTAR) + { + dx = ABS(l->pl_x - me->p_x); + dy = ABS(l->pl_y - me->p_y); + if (dx * dx + dy * dy < + MIN_DIST_FROM_STAR * MIN_DIST_FROM_STAR) + break; + } + } + if (i == NUMPLANETS) + break; + } + /* legitimize p_x and p_y */ + move_player(me->p_no, me->p_x, me->p_y, 0); + } + me->p_ntorp = 0; /* have not fired torps yete */ + if (!((me->p_ship.s_nflags & SFNMASSPRODUCED) && + (shipvals[shipPick].s_numports))) + me->p_cloakphase = 0; /* no cloaking phase--not cloaked */ + me->p_nplasmatorp = 0; /* no plasma torps */ + me->p_swar = 0; /* at war with nobody */ + me->p_armies = 0; /* carrying no armies */ + tmpPick = 0; + + switch_special_weapon(); + + if (!keeppeace) /* if keep peace mode then */ + auto_peace(); /* set do automatic peace */ + me->p_hostile &= ~me->p_team; /* hostile to all but own team */ + me->p_swar &= ~me->p_team; +#if 0 + sprintf(buf, "%c%c", teamlet[me->p_team], shipnos[me->p_no]); + strncpy(me->p_mapchars, buf, 2); +#endif + if ((lastteam != tno) || (lastrank != mystats->st_rank)) + { + if ((lastteam > 0) && (lastteam < NUMTEAM) && (lastteam != tno)) + declare_war((1 << lastteam) | me->p_hostile); /* if changing then + * adjust war stat */ + lastteam = tno; /* store team number in static */ + lastrank = mystats->st_rank;/* store rank in static */ + sprintf(addrbuf, " %s->ALL", twoletters(me)); + if ((tno == 4) && (strcmp(me->p_monitor, "Nowhere") == 0)) + { + time_t curtime; /* if a robot and independent */ + struct tm *tmstruct; /* to hold time */ + int queuesize; /* to hold queue size */ + int hour; /* to hold hour */ + + time(&curtime); /* get the time */ + tmstruct = localtime(&curtime); /* convert to local time */ + if (!(hour = tmstruct->tm_hour % 12)) /* get the hour */ + hour = 12; + sprintf(buf, "It's %d:%02d%s, time to die.", hour, tmstruct->tm_min, + tmstruct->tm_hour >= 12 ? "pm" : "am"); + if ((queuesize = status->count - status->wait) > 0) + { + /* lint: queuesize set but not used in function enter */ + sprintf(buf2, " Approximate queue size: %d.", status->answer); + strcat(buf, buf2); /* get queue size if queue */ + } + pmessage2(buf, 0, MALL, addrbuf, me->p_no); /* display message */ + } + else if (tno == 5) + { /* if a robot then */ + if (players[disp].p_status != PFREE) + { + sprintf(buf2, "%s has been targeted for termination.", + twoletters(&players[disp])); + pmessage2(buf2, 0, MALL, addrbuf, me->p_no); + } + } +#ifdef LEAGUE_SUPPORT + if (!status2->league) /* no peanut messages in a league game */ +#endif + peanut_gallery(); /* check for important people */ + + if (me->p_stats.st_royal == 0) + sprintf(buf, "%s %.16s is now %2.2s (%.16s@%.32s)", + ranks[me->p_stats.st_rank].name, me->p_name, + twoletters(me), me->p_login, me->p_full_hostname); + else + sprintf(buf, "%s %.16s is now %2.2s (%.16s@%.32s)", + royal[me->p_stats.st_royal].name, me->p_name, + twoletters(me), me->p_login, me->p_full_hostname); + + pmessage2(buf, 0, MALL | MJOIN, addrbuf, me->p_no); + +#if 1 + advertise_tourney_queue(); +#endif + + } + delay = 0; + return startplanet; +} + + + + +/*--------------------------------AUTOPEACE------------------------------*/ +/* + * This function set the player as hostile to all teams with at least one + * player on them if it is t-mode. Otherwise if it is not t-mode the player + * is set as hositle to everyone. + */ + +void +auto_peace() +{ + int i, num[MAXTEAM + 1]; /* to hold team's player counts */ + struct player *p; /* looping var */ + + num[0] = num[FED] = num[ROM] = num[KLI] = num[ORI] = 0; /* zero counts */ + for (i = 0, p = players; i < MAXPLAYER; i++, p++) /* loop all players */ + if (p->p_status != PFREE) /* ince the count of the team the */ + num[p->p_team]++; /* player is on */ + if (status->tourn) /* if t-mode then make player hostile */ + me->p_hostile = /* make all teams with a player on */ + ((FED * (num[FED] >= configvals->tournplayers)) | + (ROM * (num[ROM] >= configvals->tournplayers)) | + (KLI * (num[KLI] >= configvals->tournplayers)) | + (ORI * (num[ORI] >= configvals->tournplayers))); + else /* else if not t-mode then */ + me->p_hostile = FED | ROM | KLI | ORI; /* hostile to everyone */ +} + + + + +/*------------------------------PLACEINDEPENDENT---------------------------*/ +/* + * This function places an independent player in the game so he is not near + * any other players. + */ + +static void +placeIndependent() +{ + int i; /* ye olde looping var */ + struct player *p; /* to point to players */ + int good, failures; /* flag for success, count of tries */ + + failures = 0; /* have started loops yet */ + while (failures < 10) + { /* only try 10 times */ + me->p_x = GWIDTH / 2 + (lrand48() % INDEP) - INDEP / 2; /* middle 9th of */ + me->p_y = GWIDTH / 2 + (lrand48() % INDEP) - INDEP / 2; /* galaxy */ + good = 1; + for (i = 0, p = players; i < MAXPLAYER; i++, p++) + { + if ((p->p_status != PFREE) && (p != me)) + { + if ((ABS(p->p_x - me->p_x) < 2 * TRACTDIST) && + (ABS(p->p_y - me->p_y) < 2 * TRACTDIST)) + { + failures++; /* found a player too close */ + good = 0; /* position not good */ + break; /* try another positon */ + } + } + } + if (good) /* if good placement found then */ + return; /* return */ + } + fprintf(stderr, "Couldn't place the bot successfully.\n"); +} + + + + +/*------------------------------------------------------------------------*/ + + + + +/*----------END OF FILE--------*/