Merged Edgar's code changes from Google Summer of Code 2009
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403789
This commit is contained in:
parent
3a95fba428
commit
0b31b5070e
25 changed files with 9225 additions and 1 deletions
|
@ -196,7 +196,10 @@ SDL_StopEventThread(void)
|
|||
SDL_DestroyMutex(SDL_EventLock.lock);
|
||||
}
|
||||
#ifndef IPOD
|
||||
if (SDL_EventQ.lock) {
|
||||
SDL_DestroyMutex(SDL_EventQ.lock);
|
||||
SDL_EventQ.lock = NULL;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
54
test/automated/Makefile
Normal file
54
test/automated/Makefile
Normal file
|
@ -0,0 +1,54 @@
|
|||
|
||||
|
||||
CFLAGS := -W -Wall -Wextra -g -I. `sdl-config --cflags`
|
||||
LDFLAGS := `sdl-config --libs`
|
||||
|
||||
# If it doesn't pick up defaults
|
||||
#CFLAGS := -I. -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/local/include/SDL
|
||||
#LDFLAGS := -lm -ldl -lesd -lpthread
|
||||
|
||||
SRC := testsdl.c \
|
||||
rwops/rwops.c \
|
||||
platform/platform.c \
|
||||
surface/surface.c \
|
||||
render/render.c \
|
||||
audio/audio.c
|
||||
COMMON_SRC := SDL_at.c common/common.c
|
||||
COMMON_INCLUDE := SDL_at.h
|
||||
|
||||
TESTS_ALL := testsdl \
|
||||
rwops/rwops \
|
||||
platform/platform \
|
||||
surface/surface \
|
||||
render/render \
|
||||
audio/audio
|
||||
|
||||
|
||||
.PHONY: all clean test
|
||||
|
||||
|
||||
all: $(TESTS_ALL)
|
||||
|
||||
test: all
|
||||
@./testsdl
|
||||
|
||||
testsdl: $(SRC) $(COMMON_SRC)
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(SRC) $(COMMON_SRC)
|
||||
|
||||
rwops/rwops: rwops/rwops.c $(COMMON_INCLUDE) $(COMMON_SRC)
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ rwops/rwops.c $(COMMON_SRC) -DTEST_STANDALONE
|
||||
|
||||
platform/platform: platform/platform.c $(COMMON_INCLUDE) $(COMMON_SRC)
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ platform/platform.c $(COMMON_SRC) -DTEST_STANDALONE
|
||||
|
||||
surface/surface: surface/surface.c $(COMMON_INCLUDE) $(COMMON_SRC)
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ surface/surface.c $(COMMON_SRC) -DTEST_STANDALONE
|
||||
|
||||
render/render: render/render.c $(COMMON_INCLUDE) $(COMMON_SRC)
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ render/render.c $(COMMON_SRC) -DTEST_STANDALONE
|
||||
|
||||
audio/audio: audio/audio.c $(COMMON_INCLUDE) $(COMMON_SRC)
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ audio/audio.c $(COMMON_SRC) -DTEST_STANDALONE
|
||||
|
||||
clean:
|
||||
$(RM) $(TESTS_ALL)
|
59
test/automated/README
Normal file
59
test/automated/README
Normal file
|
@ -0,0 +1,59 @@
|
|||
|
||||
|
||||
SDL Automated Testing Framework User Documentation
|
||||
by Edgar Simo Serra
|
||||
|
||||
|
||||
|
||||
Abstract
|
||||
|
||||
The SDL Automated Testing Framework, hereby after called SDL_AT, is a meant
|
||||
to test the SDL code for regressions and other possible failures. It can also
|
||||
be used to display what your SDL set up supports.
|
||||
|
||||
|
||||
|
||||
Basics
|
||||
|
||||
The main way to use the framework is to compile it and run it, that can be
|
||||
done with the following command:
|
||||
|
||||
$> make test
|
||||
|
||||
It should then display something like:
|
||||
|
||||
Platform : All tests successful (2)
|
||||
SDL_RWops : All tests successful (5)
|
||||
SDL_Surface : All tests successful (6)
|
||||
Rendering with x11 driver : All tests successful (4)
|
||||
|
||||
Indicating that all tests were successful. If however a test fails output it
|
||||
will report the failure to stderr indicating where and why it happened. This
|
||||
output can then be sent to the developers so they can attempt to fix the
|
||||
problem.
|
||||
|
||||
|
||||
|
||||
Advanced
|
||||
|
||||
By passing the "-h" or "--help" parameter to testsdl you can get an overview
|
||||
of all the possible options you can set to furthur tweak the testing. A sample
|
||||
of the options would be the following:
|
||||
|
||||
Usage: ./testsdl [OPTIONS]
|
||||
Options are:
|
||||
-m, --manual enables tests that require user interaction
|
||||
--noplatform do not run the platform tests
|
||||
--norwops do not run the rwops tests
|
||||
--nosurface do not run the surface tests
|
||||
--norender do not run the render tests
|
||||
-v, --verbose increases verbosity level by 1 for each -v
|
||||
-q, --quiet only displays errors
|
||||
-h, --help display this message and exit
|
||||
|
||||
|
||||
|
||||
Developers
|
||||
|
||||
See SDL_at.h for developer information.
|
||||
|
308
test/automated/SDL_at.c
Normal file
308
test/automated/SDL_at.c
Normal file
|
@ -0,0 +1,308 @@
|
|||
/*
|
||||
* Common code for automated test suite.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#include "SDL_at.h"
|
||||
|
||||
#include <stdio.h> /* printf/fprintf */
|
||||
#include <stdarg.h> /* va_list */
|
||||
#include <string.h> /* strdup */
|
||||
#include <stdlib.h> /* free */
|
||||
|
||||
|
||||
/*
|
||||
* Internal usage SDL_AT variables.
|
||||
*/
|
||||
static char *at_suite_msg = NULL; /**< Testsuite message. */
|
||||
static char *at_test_msg = NULL; /**< Testcase message. */
|
||||
static int at_success = 0; /**< Number of successful testcases. */
|
||||
static int at_failure = 0; /**< Number of failed testcases. */
|
||||
|
||||
|
||||
/*
|
||||
* Global properties.
|
||||
*/
|
||||
static int at_verbose = 0; /**< Verbosity. */
|
||||
static int at_quiet = 0; /**< Quietness. */
|
||||
|
||||
|
||||
/*
|
||||
* Prototypes.
|
||||
*/
|
||||
static void SDL_ATcleanup (void);
|
||||
static void SDL_ATendWith( int success );
|
||||
static void SDL_ATassertFailed( const char *msg );
|
||||
|
||||
|
||||
/**
|
||||
* @brief Cleans up the automated testsuite state.
|
||||
*/
|
||||
static void SDL_ATcleanup (void)
|
||||
{
|
||||
if (at_suite_msg != NULL)
|
||||
free(at_suite_msg);
|
||||
at_suite_msg = NULL;
|
||||
if (at_test_msg != NULL)
|
||||
free(at_test_msg);
|
||||
at_test_msg = NULL;
|
||||
at_success = 0;
|
||||
at_failure = 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Begin testsuite.
|
||||
*/
|
||||
void SDL_ATinit( const char *suite )
|
||||
{
|
||||
/* Do not open twice. */
|
||||
if (at_suite_msg) {
|
||||
SDL_ATprintErr( "AT suite '%s' not closed before opening suite '%s'\n",
|
||||
at_suite_msg, suite );
|
||||
}
|
||||
/* Must have a name. */
|
||||
if (suite == NULL) {
|
||||
SDL_ATprintErr( "AT testsuite does not have a name.\n");
|
||||
}
|
||||
SDL_ATcleanup();
|
||||
at_suite_msg = strdup(suite);
|
||||
|
||||
/* Verbose message. */
|
||||
SDL_ATprintVerbose( 2, "--+---> Started Test Suite '%s'\n", at_suite_msg );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Finish testsuite.
|
||||
*/
|
||||
int SDL_ATfinish (void)
|
||||
{
|
||||
int failed;
|
||||
|
||||
/* Make sure initialized. */
|
||||
if (at_suite_msg == NULL) {
|
||||
SDL_ATprintErr("Ended testcase without initializing.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Finished without closing testcase. */
|
||||
if (at_test_msg) {
|
||||
SDL_ATprintErr( "AT suite '%s' finished without closing testcase '%s'\n",
|
||||
at_suite_msg, at_test_msg );
|
||||
}
|
||||
|
||||
/* Verbose message. */
|
||||
SDL_ATprintVerbose( 2, "<-+---- Finished Test Suite '%s'\n", at_suite_msg );
|
||||
|
||||
/* Display message if verbose on failed. */
|
||||
failed = at_failure;
|
||||
if (at_failure > 0) {
|
||||
SDL_ATprintErr( "%s : Failed %d out of %d testcases!\n",
|
||||
at_suite_msg, at_failure, at_failure+at_success );
|
||||
}
|
||||
else {
|
||||
SDL_ATprint( "%s : All tests successful (%d)\n",
|
||||
at_suite_msg, at_success );
|
||||
}
|
||||
|
||||
/* Clean up. */
|
||||
SDL_ATcleanup();
|
||||
|
||||
/* Return failed. */
|
||||
return failed;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Sets a property.
|
||||
*/
|
||||
void SDL_ATseti( int property, int value )
|
||||
{
|
||||
switch (property) {
|
||||
case SDL_AT_VERBOSE:
|
||||
at_verbose = value;
|
||||
break;
|
||||
|
||||
case SDL_AT_QUIET:
|
||||
at_quiet = value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Gets a property.
|
||||
*/
|
||||
void SDL_ATgeti( int property, int *value )
|
||||
{
|
||||
switch (property) {
|
||||
case SDL_AT_VERBOSE:
|
||||
*value = at_verbose;
|
||||
break;
|
||||
|
||||
case SDL_AT_QUIET:
|
||||
*value = at_quiet;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Begin testcase.
|
||||
*/
|
||||
void SDL_ATbegin( const char *testcase )
|
||||
{
|
||||
/* Do not open twice. */
|
||||
if (at_test_msg) {
|
||||
SDL_ATprintErr( "AT testcase '%s' not closed before opening testcase '%s'\n",
|
||||
at_test_msg, testcase );
|
||||
}
|
||||
/* Must have a name. */
|
||||
if (testcase == NULL) {
|
||||
SDL_ATprintErr( "AT testcase does not have a name.\n");
|
||||
}
|
||||
at_test_msg = strdup(testcase);
|
||||
|
||||
/* Verbose message. */
|
||||
SDL_ATprintVerbose( 2, " +---> StartedTest Case '%s'\n", testcase );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Ends the testcase with a succes or failure.
|
||||
*/
|
||||
static void SDL_ATendWith( int success )
|
||||
{
|
||||
/* Make sure initialized. */
|
||||
if (at_test_msg == NULL) {
|
||||
SDL_ATprintErr("Ended testcase without initializing.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
/* Mark as success or failure. */
|
||||
if (success)
|
||||
at_success++;
|
||||
else
|
||||
at_failure++;
|
||||
|
||||
/* Verbose message. */
|
||||
SDL_ATprintVerbose( 2, " +---- Finished Test Case '%s'\n", at_test_msg );
|
||||
|
||||
/* Clean up. */
|
||||
if (at_test_msg != NULL)
|
||||
free(at_test_msg);
|
||||
at_test_msg = NULL;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Display failed assert message.
|
||||
*/
|
||||
static void SDL_ATassertFailed( const char *msg )
|
||||
{
|
||||
/* Print. */
|
||||
SDL_ATprintErr( "Assert Failed!\n" );
|
||||
SDL_ATprintErr( " %s\n", msg );
|
||||
SDL_ATprintErr( " Test Case '%s'\n", at_test_msg );
|
||||
SDL_ATprintErr( " Test Suite '%s'\n", at_suite_msg );
|
||||
/* End. */
|
||||
SDL_ATendWith(0);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Testcase test.
|
||||
*/
|
||||
int SDL_ATassert( const char *msg, int condition )
|
||||
{
|
||||
/* Condition failed. */
|
||||
if (!condition) {
|
||||
/* Failed message. */
|
||||
SDL_ATassertFailed(msg);
|
||||
}
|
||||
return !condition;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Testcase test.
|
||||
*/
|
||||
int SDL_ATvassert( int condition, const char *msg, ... )
|
||||
{
|
||||
va_list args;
|
||||
char buf[256];
|
||||
|
||||
/* Condition failed. */
|
||||
if (!condition) {
|
||||
/* Get message. */
|
||||
va_start( args, msg );
|
||||
vsnprintf( buf, sizeof(buf), msg, args );
|
||||
va_end( args );
|
||||
/* Failed message. */
|
||||
SDL_ATassertFailed( buf );
|
||||
}
|
||||
return !condition;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief End testcase.
|
||||
*/
|
||||
void SDL_ATend (void)
|
||||
{
|
||||
SDL_ATendWith(1);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Displays an error.
|
||||
*/
|
||||
int SDL_ATprintErr( const char *msg, ... )
|
||||
{
|
||||
va_list ap;
|
||||
int ret;
|
||||
|
||||
/* Make sure there is something to print. */
|
||||
if (msg == NULL)
|
||||
return 0;
|
||||
else {
|
||||
va_start(ap, msg);
|
||||
ret = vfprintf( stderr, msg, ap );
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Displays a verbose message.
|
||||
*/
|
||||
int SDL_ATprintVerbose( int level, const char *msg, ... )
|
||||
{
|
||||
va_list ap;
|
||||
int ret;
|
||||
|
||||
/* Only print if not quiet. */
|
||||
if (at_quiet || (at_verbose < level))
|
||||
return 0;
|
||||
|
||||
/* Make sure there is something to print. */
|
||||
if (msg == NULL)
|
||||
return 0;
|
||||
else {
|
||||
va_start(ap, msg);
|
||||
ret = vfprintf( stdout, msg, ap );
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
159
test/automated/SDL_at.h
Normal file
159
test/automated/SDL_at.h
Normal file
|
@ -0,0 +1,159 @@
|
|||
/*
|
||||
* Common code for automated test suite.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @file SDL_at.h
|
||||
*
|
||||
* @brief Handles automatic testing functionality.
|
||||
*
|
||||
* The basic approach with SDL_AT is to divide the tests into what are called
|
||||
* test suites and test cases. Each test suite should have multiple test
|
||||
* cases, each test case can have multiple asserts.
|
||||
*
|
||||
* To actually test for conditions within the testcase you check asserts, if
|
||||
* the asserts fail the failures will be logged in the testsuite and
|
||||
* displayed.
|
||||
*
|
||||
* Syntax is similar to OpenGL. An example would be:
|
||||
*
|
||||
* @code
|
||||
* int f; // Number failed
|
||||
* SDL_ATinit( "My testsuite" );
|
||||
*
|
||||
* SDL_ATbegin( "My first testcase" );
|
||||
* if (!SDL_ATassert( (1+1)==2, "Trying '1+1=2'."))
|
||||
* return; // Implicitly calls SDL_ATend if assert fails
|
||||
* SDL_ATend(); // Finish testcase
|
||||
*
|
||||
* SDL_ATbegin( "My second testcase" );
|
||||
* if (!SDL_ATassert( (4/2)==2, "Trying '4/2=2'."))
|
||||
* return; // Implicitly calls SDL_ATend if assert fails
|
||||
* SDL_ATend(); // Finish testcase
|
||||
*
|
||||
* f = SDL_ATfinish();
|
||||
* @endcode
|
||||
*
|
||||
* @author Edgar Simo "bobbens"
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _SDL_AT_H
|
||||
# define _SDL_AT_H
|
||||
|
||||
|
||||
|
||||
enum {
|
||||
SDL_AT_VERBOSE, /**< Sets the verbose level. */
|
||||
SDL_AT_QUIET /**< Sets quietness. */
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Suite level actions.
|
||||
*/
|
||||
/**
|
||||
* @brief Starts the testsuite.
|
||||
*
|
||||
* @param suite Name of the suite to start testing.
|
||||
*/
|
||||
void SDL_ATinit( const char *suite );
|
||||
/**
|
||||
* @brief Finishes the testsuite printing out global results if verbose.
|
||||
*
|
||||
* @return 0 if no errors occurred, otherwise number of failures.
|
||||
*/
|
||||
int SDL_ATfinish (void);
|
||||
/**
|
||||
* @brief Sets a global property value.
|
||||
*
|
||||
* @param property Property to set.
|
||||
* @param value Value to set property to.
|
||||
*/
|
||||
void SDL_ATseti( int property, int value );
|
||||
/**
|
||||
* @brief Gets a global property value.
|
||||
*
|
||||
* @param property Property to get.
|
||||
* @param[out] value Value of the property.
|
||||
*/
|
||||
void SDL_ATgeti( int property, int *value );
|
||||
|
||||
|
||||
/*
|
||||
* Testcase level actions.
|
||||
*/
|
||||
/**
|
||||
* @brief Begins a testcase.
|
||||
*
|
||||
* @param testcase Name of the testcase to begin.
|
||||
*/
|
||||
void SDL_ATbegin( const char *testcase );
|
||||
/**
|
||||
* @brief Checks a condition in the testcase.
|
||||
*
|
||||
* Will automatically call SDL_ATend if the condition isn't met.
|
||||
*
|
||||
* @param condition Condition to make sure is true.
|
||||
* @param msg Message to display for failure.
|
||||
* @return Returns 1 if the condition isn't met.
|
||||
*/
|
||||
int SDL_ATassert( const char *msg, int condition );
|
||||
/**
|
||||
* @brief Checks a condition in the testcase.
|
||||
*
|
||||
* Will automatically call SDL_ATend if the condition isn't met.
|
||||
*
|
||||
* @param condition Condition to make sure is true.
|
||||
* @param msg Message to display for failure with printf style formatting.
|
||||
* @return Returns 1 if the condition isn't met.
|
||||
*/
|
||||
int SDL_ATvassert( int condition, const char *msg, ... );
|
||||
/**
|
||||
* @brief Ends a testcase.
|
||||
*/
|
||||
void SDL_ATend (void);
|
||||
|
||||
|
||||
/*
|
||||
* Misc functions.
|
||||
*/
|
||||
/**
|
||||
* @brief Prints an error.
|
||||
*
|
||||
* @param msg printf formatted string to display.
|
||||
* @return Number of character printed.
|
||||
*/
|
||||
int SDL_ATprintErr( const char *msg, ... );
|
||||
/**
|
||||
* @brief Prints some text.
|
||||
*
|
||||
* @param msg printf formatted string to display.
|
||||
* @return Number of character printed.
|
||||
*/
|
||||
#define SDL_ATprint(msg, args...) \
|
||||
SDL_ATprintVerbose( 0, msg, ## args)
|
||||
/**
|
||||
* @brief Prints some verbose text.
|
||||
*
|
||||
* Verbosity levels are as follows:
|
||||
*
|
||||
* - 0 standard stdout, enabled by default
|
||||
* - 1 additional information
|
||||
* - 2 detailed information (spammy)
|
||||
*
|
||||
* @param level Level of verbosity to print at.
|
||||
* @param msg printf formatted string to display.
|
||||
* @return Number of character printed.
|
||||
*/
|
||||
int SDL_ATprintVerbose( int level, const char *msg, ... );
|
||||
|
||||
|
||||
#endif /* _SDL_AT_H */
|
||||
|
||||
|
89
test/automated/audio/audio.c
Normal file
89
test/automated/audio/audio.c
Normal file
|
@ -0,0 +1,89 @@
|
|||
/**
|
||||
* Automated SDL_RWops test.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#include "SDL.h"
|
||||
#include "SDL_at.h"
|
||||
|
||||
|
||||
/**
|
||||
* @brief Prints available devices.
|
||||
*/
|
||||
static int audio_printDevices( int iscapture )
|
||||
{
|
||||
int i, n;
|
||||
|
||||
/* Get number of devices. */
|
||||
n = SDL_GetNumAudioDevices(iscapture);
|
||||
SDL_ATprintVerbose( 1, "%d %s Audio Devices\n",
|
||||
n, iscapture ? "Capture" : "Output" );
|
||||
|
||||
/* List devices. */
|
||||
for (i=0; i<n; i++) {
|
||||
SDL_ATprintVerbose( 1, " %d) %s\n", i+1, SDL_GetAudioDeviceName( i, iscapture ) );
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Makes sure parameters work properly.
|
||||
*/
|
||||
static void audio_testOpen (void)
|
||||
{
|
||||
int i, n;
|
||||
int ret;
|
||||
|
||||
/* Begin testcase. */
|
||||
SDL_ATbegin( "Audio Open" );
|
||||
|
||||
/* List drivers. */
|
||||
n = SDL_GetNumAudioDrivers();
|
||||
SDL_ATprintVerbose( 1, "%d Audio Drivers\n", n );
|
||||
for (i=0; i<n; i++) {
|
||||
SDL_ATprintVerbose( 1, " %s\n", SDL_GetAudioDriver(i) );
|
||||
}
|
||||
|
||||
/* Start SDL. */
|
||||
ret = SDL_Init( SDL_INIT_AUDIO );
|
||||
if (SDL_ATvassert( ret==0, "SDL_Init( SDL_INIT_AUDIO ): %s", SDL_GetError()))
|
||||
return;
|
||||
|
||||
/* Print devices. */
|
||||
SDL_ATprintVerbose( 1, "Using Audio Driver '%s'\n", SDL_GetCurrentAudioDriver() );
|
||||
audio_printDevices(0);
|
||||
audio_printDevices(1);
|
||||
|
||||
/* Quit SDL. */
|
||||
SDL_Quit();
|
||||
|
||||
/* End testcase. */
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Entry point.
|
||||
*/
|
||||
#ifdef TEST_STANDALONE
|
||||
int main( int argc, const char *argv[] )
|
||||
{
|
||||
(void) argc;
|
||||
(void) argv;
|
||||
#else /* TEST_STANDALONE */
|
||||
int test_audio (void)
|
||||
{
|
||||
#endif /* TEST_STANDALONE */
|
||||
|
||||
SDL_ATinit( "SDL_Audio" );
|
||||
|
||||
audio_testOpen();
|
||||
|
||||
return SDL_ATfinish();
|
||||
}
|
18
test/automated/audio/audio.h
Normal file
18
test/automated/audio/audio.h
Normal file
|
@ -0,0 +1,18 @@
|
|||
/**
|
||||
* Part of SDL test suite.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _TEST_AUDIO
|
||||
# define _TEST_AUDIO
|
||||
|
||||
|
||||
int test_audio (void);
|
||||
|
||||
|
||||
#endif /* _TEST_AUDIO */
|
||||
|
60
test/automated/common/common.c
Normal file
60
test/automated/common/common.c
Normal file
|
@ -0,0 +1,60 @@
|
|||
/**
|
||||
* Automated SDL_Surface test.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#include "SDL.h"
|
||||
#include "SDL_at.h"
|
||||
|
||||
#include "common/common.h"
|
||||
|
||||
|
||||
/**
|
||||
* @brief Compares a surface and a surface image for equality.
|
||||
*/
|
||||
int surface_compare( SDL_Surface *sur, const SurfaceImage_t *img )
|
||||
{
|
||||
int ret;
|
||||
int i,j;
|
||||
int bpp;
|
||||
Uint8 *p, *pd;
|
||||
|
||||
/* Make sure size is the same. */
|
||||
if ((sur->w != img->width) || (sur->h != img->height))
|
||||
return -1;
|
||||
|
||||
SDL_LockSurface( sur );
|
||||
|
||||
ret = 0;
|
||||
bpp = sur->format->BytesPerPixel;
|
||||
|
||||
/* Compare image - should be same format. */
|
||||
for (j=0; j<sur->h; j++) {
|
||||
for (i=0; i<sur->w; i++) {
|
||||
p = (Uint8 *)sur->pixels + j * sur->pitch + i * bpp;
|
||||
pd = (Uint8 *)img->pixel_data + (j*img->width + i) * img->bytes_per_pixel;
|
||||
switch (bpp) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
ret += 1;
|
||||
printf("%d BPP not supported yet.\n",bpp);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
ret += !( (p[0] == pd[0]) &&
|
||||
(p[1] == pd[1]) &&
|
||||
(p[2] == pd[2]) );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SDL_UnlockSurface( sur );
|
||||
|
||||
return ret;
|
||||
}
|
46
test/automated/common/common.h
Normal file
46
test/automated/common/common.h
Normal file
|
@ -0,0 +1,46 @@
|
|||
/**
|
||||
* Automated SDL test common framework.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef COMMON_H
|
||||
# define COMMON_H
|
||||
|
||||
|
||||
#if (SDL_BYTEORDER == SDL_BIG_ENDIAN)
|
||||
# define RMASK 0xff000000 /**< Red bit mask. */
|
||||
# define GMASK 0x00ff0000 /**< Green bit mask. */
|
||||
# define BMASK 0x0000ff00 /**< Blue bit mask. */
|
||||
# define AMASK 0x000000ff /**< Alpha bit mask. */
|
||||
#else
|
||||
# define RMASK 0x000000ff /**< Red bit mask. */
|
||||
# define GMASK 0x0000ff00 /**< Green bit mask. */
|
||||
# define BMASK 0x00ff0000 /**< Blue bit mask. */
|
||||
# define AMASK 0xff000000 /**< Alpha bit mask. */
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct SurfaceImage_s {
|
||||
int width;
|
||||
int height;
|
||||
unsigned int bytes_per_pixel; /* 3:RGB, 4:RGBA */
|
||||
const unsigned char pixel_data[];
|
||||
} SurfaceImage_t;
|
||||
|
||||
|
||||
/**
|
||||
* @brief Compares a surface and a surface image for equality.
|
||||
*
|
||||
* @param sur Surface to compare.
|
||||
* @param img Image to compare against.
|
||||
* @return 0 if they are the same, -1 on error and positive if different.
|
||||
*/
|
||||
int surface_compare( SDL_Surface *sur, const SurfaceImage_t *img );
|
||||
|
||||
|
||||
#endif /* COMMON_H */
|
||||
|
22
test/automated/common/images.h
Normal file
22
test/automated/common/images.h
Normal file
|
@ -0,0 +1,22 @@
|
|||
|
||||
|
||||
#ifndef IMAGES_H
|
||||
# define IMAGES_H
|
||||
|
||||
|
||||
#include "common/common.h"
|
||||
|
||||
|
||||
/*
|
||||
* Pull in images for testcases.
|
||||
*/
|
||||
#include "common/img_primitives.c"
|
||||
#include "common/img_primitivesblend.c"
|
||||
#include "common/img_face.c"
|
||||
#include "common/img_blit.c"
|
||||
#include "common/img_blitblend.c"
|
||||
|
||||
|
||||
#endif /* IMAGES_H */
|
||||
|
||||
|
1454
test/automated/common/img_blit.c
Normal file
1454
test/automated/common/img_blit.c
Normal file
File diff suppressed because it is too large
Load diff
3201
test/automated/common/img_blitblend.c
Normal file
3201
test/automated/common/img_blitblend.c
Normal file
File diff suppressed because it is too large
Load diff
196
test/automated/common/img_face.c
Normal file
196
test/automated/common/img_face.c
Normal file
|
@ -0,0 +1,196 @@
|
|||
/* GIMP RGBA C-Source image dump (face.c) */
|
||||
|
||||
static const SurfaceImage_t img_face = {
|
||||
32, 32, 4,
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0"
|
||||
"\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
|
||||
"\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\0\0\0\377\0\0\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0\377\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0\377\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0\377\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0\377\0\0\0\377"
|
||||
"\377\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\0\0\0\377\0\0\0\377\377\377\377\0\0\0\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\0\0\0\377\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0\377\0\0\0"
|
||||
"\377\0\0\0\377\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\0\0\0\377\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0"
|
||||
"\377\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0"
|
||||
"\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0"
|
||||
"\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0\377\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\0\0\0\377\0\0\0\377"
|
||||
"\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\0\0\0\377\0\0\0\377\0\0"
|
||||
"\0\377\377\377\0\377\377\377\0\377\0\0\0\377\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\0\0\0\377\377\377\0\377\377\377\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
|
||||
"\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
|
||||
"\0\0\377\0\0\0\377\377\377\0\377\377\377\0\377\0\0\0\377\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\377\377\0\377\377"
|
||||
"\377\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
|
||||
"\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\0\377\377\377\0\377\0\0\0"
|
||||
"\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\0\0\0\377\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\0\0\0\377\0\0\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
|
||||
"\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377"
|
||||
"\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
|
||||
"\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0"
|
||||
"\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377"
|
||||
"\377\377\0\377\377\377\0",
|
||||
};
|
||||
|
464
test/automated/common/img_primitives.c
Normal file
464
test/automated/common/img_primitives.c
Normal file
|
@ -0,0 +1,464 @@
|
|||
/* GIMP RGB C-Source image dump (primitives.c) */
|
||||
|
||||
static const SurfaceImage_t img_primitives = {
|
||||
80, 60, 3,
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310\0\0\0"
|
||||
"\15I\310\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15"
|
||||
"I\310\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310"
|
||||
"\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310\0\0\0\15I\310\0"
|
||||
"\0\0\5ii\0\0\0\1\0\0\0\0\0\3\1\1\0\0\0\5\2\1\0\0\0\7\3\2\0\0\0\11\4\3\0\0"
|
||||
"\0\13\5\3\0\0\0\15\6\4\0\0\0\17\7\5\0\0\0\21\10\5\0\0\0\23\11\6\0\0\0\25"
|
||||
"\12\7\0\0\0\27\13\7\0\0\0\31\14\10\0\0\0\33\15\11\0\0\0\35\16\11\0\0\0\37"
|
||||
"\17\12\0\0\0!\20\13\0\0\0#\21\13\0\0\0%\22\14\0\0\0'\23\15\15I\310)\24\15"
|
||||
"\15I\310+\25\16\15I\310-\26\17\15I\310/\27\17\15I\3101\30\20\15I\3103\31"
|
||||
"\21\15I\3105\32\21\15I\3107\33\22\15I\3109\34\23\15I\310;\35\23\15I\310="
|
||||
"\36\24\15I\310?\37\25\15I\310A\40\25\15I\310C!\26\15I\310E\"\27\15I\310G"
|
||||
"#\27\15I\310I$\30\15I\310K%\31\15I\310M&\31\5iiO'\32\0\0\0\0\0\0\4\2\1\0"
|
||||
"\0\0\10\4\2\0\0\0\14\6\4\0\0\0\20\10\5\0\0\0\24\12\6\0\0\0\30\14\10\0\0\0"
|
||||
"\34\16\11\0\0\0\40\20\12\0\0\0$\22\14\0\0\0(\24\15\0\0\0,\26\16\0\0\0""0"
|
||||
"\30\20\0\0\0""4\32\21\0\0\0""8\34\22\0\0\0<\36\24\0\0\0@\40\25\0\0\0D\"\26"
|
||||
"\0\0\0H$\30\0\0\0L&\31\0\0\0P(\32\15I\310T*\34\15I\310X,\35\15I\310\\.\36"
|
||||
"\15I\310`0\40\15I\310d2!\15I\310h4\"\15I\310l6$\15I\310p8%\15I\310t:&\15"
|
||||
"I\310x<(\15I\310|>)\15I\310\200@*\15I\310\204B,\15I\310\210D-\15I\310\214"
|
||||
"F.\15I\310\220H0\15I\310\224J1\15I\310\5ii\5ii\234N4\15I\310\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\5ii\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\5ii\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\5ii\5ii\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\5ii\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\5ii\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\5ii\5ii\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\5ii\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d"
|
||||
"\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5"
|
||||
"ii\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d"
|
||||
"\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\5ii\5ii\310\0d\310\0d\310\0d\310\0d\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\5ii\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d"
|
||||
"\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\5ii\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\5ii\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d"
|
||||
"\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\5ii\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\5ii\310\0d\310\0d"
|
||||
"\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0"
|
||||
"\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0"
|
||||
"\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0"
|
||||
"\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0"
|
||||
"\0\377\0\0\377\0\0\377\0\0\377\0\5ii\5ii\0\377\0\0\377\0\0\377\0\0\377\0"
|
||||
"\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0"
|
||||
"\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0"
|
||||
"\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0"
|
||||
"\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\377\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d77\5\310\0d\310\0d\310\0d\310\0d"
|
||||
"\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310"
|
||||
"\0d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d"
|
||||
"\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\5ii\5ii\310\0d\310\0d\310\0d77\5\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\5ii\310\0d\310\0d\310\0d\310\0d"
|
||||
"\310\0d\310\0d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5"
|
||||
"ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\5"
|
||||
"ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d"
|
||||
"\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\5ii\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d"
|
||||
"\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\5ii\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii"
|
||||
"\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d77\5\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310\0d\310\0d\310\0d\310\0d\310\0d\5ii\5"
|
||||
"ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d"
|
||||
"\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d77\5\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\310"
|
||||
"\0d\310\0d\310\0d\310\0d\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d77\5\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0"
|
||||
"d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310"
|
||||
"\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15I\310\15I\310\15"
|
||||
"I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5ii\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0""77\5\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\5ii\5ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""77\5\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5ii"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""77\5\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5ii\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0""77\5\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\5ii\5ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""77\5\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5ii\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""77\5\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\5ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0""77\5\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\0\0\0\0\0\0\0\0\0\5ii\5"
|
||||
"ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""77"
|
||||
"\5\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\0\0\0\0\0\0\5ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0""77\5\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I"
|
||||
"\310\0\0\0\5ii\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||
"\0\0\0\0\0\0\0\0\0\0\0\0\0""77\5\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310"
|
||||
"\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310",
|
||||
};
|
||||
|
645
test/automated/common/img_primitivesblend.c
Normal file
645
test/automated/common/img_primitivesblend.c
Normal file
|
@ -0,0 +1,645 @@
|
|||
/* GIMP RGB C-Source image dump (alpha.c) */
|
||||
|
||||
static const SurfaceImage_t img_blend = {
|
||||
80, 60, 3,
|
||||
"\260e\15\222\356/\37\313\15\36\330\17K\3745D\3471\0\20\0D\3502D\3502<\321"
|
||||
",\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\0-\0\377\377"
|
||||
"\377\377\377\377\311\324\311\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\0H\0\377\377\377\377\377\377\256\307\256\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\0c\0\377\377\377\377\377\377"
|
||||
"\223\300\223\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\0~\0\377\377\377\377\377\377x\277x\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\0\231\0\377\377\377\377\377\377]\303]\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\0\264\0\377\377\377\377\377"
|
||||
"\377B\316B\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\0"
|
||||
"\317\0\377\377\377\377\377\377'\335'\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\0\352\0\377\377\377#\262\6\260d\15\260e\15\224\357"
|
||||
"/&\262\6\34\300\5.\314\22\40\315\12[\3747M\332/\27\331\12\27\331\12K\374"
|
||||
"5K\3745K\3745D\3471D\3471D\3471D\3471D\3471D\3502D\3502D\3502D\3502D\350"
|
||||
"2D\3502D\3502D\3502D\3502D\3502\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377,\372\27\273\3465\327"
|
||||
"Q.\260d\15\213\213\40\241\3601\200\366*=\265\13?\301\25s\375<Y\316-X\320"
|
||||
"-!\315\13]\3749]\3749O\3321O\3321P\3342P\3342P\3342\371\377\364\371\377\364"
|
||||
"\371\377\364\371\377\364\371\377\364\362\375\360\362\375\360\362\375\360"
|
||||
"\362\375\360\362\375\360D\3471D\3471D\3471D\3502D\3502D\3502D\3502D\3502"
|
||||
"D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"K\3745&\262\6\213\213\40\11\2\0\260`\15\241~#m}\11\273\363AQ\247\15S\266"
|
||||
"\31\212\373@e\302,\4\33\2s\375<\\\3161M\260*\\\3202X\320-\366\377\354\364"
|
||||
"\377\352O\3321\3""5\2O\3321O\3321<\261&P\3342P\3342S\3655\377\377\377\377"
|
||||
"\377\377\14Z\14\377\377\377\377\377\377\234\302\231\371\377\364\362\375\360"
|
||||
"\367\377\365\362\375\360\362\375\360\13t\13\362\375\360\362\375\360\177\275"
|
||||
"~\362\375\360\362\375\360\370\377\366\362\375\360\377\377\377\14\220\14\377"
|
||||
"\377\377D\3502\"\267\33D\3502D\3502K\3779D\3502D\3502\3\233\2D\3502D\350"
|
||||
"2\34\303\26D\3502D\3502L\377:D\3502D\3502\3\264\2D\3502D\3502\25\323\22\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\14\341\14\377\377"
|
||||
"\377\377\377\377\40\353\40\377\377\377D\3471\34\300\5e\247\33\356\336?\277"
|
||||
"f)\260P\17\260i\16\356\336?\331\353C\274\363GQ\247\15\243\370Cp\270)\212"
|
||||
"\373@h\3021h\3042c\304+\364\377\336\\\3161\\\3161\\\3202\\\3202\\\3202\377"
|
||||
"\377\377\364\377\352\364\377\352\346\371\342\346\371\342O\3321O\3321P\334"
|
||||
"2P\3342P\3342P\3342P\3342P\3342\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\362\375\360\362\375\360\362\375\360\362\375\360\362\375"
|
||||
"\360\362\375\360\362\375\360\362\375\360\362\375\360\362\375\360\362\375"
|
||||
"\360\362\375\360\362\375\360\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502D\3502\40"
|
||||
"\315\12=\265\13f\230\14\237y\15\274Y\17\327Q.\260X\14\243\177$\220\214\""
|
||||
"\215\235*\274\363G\177\252+\243\370Cu\2661p\270)\367\377\324h\3021h\3021"
|
||||
"h\3042\364\377\336\364\377\336\335\364\323\\\3161\\\3161\\\3202\\\3202\\"
|
||||
"\3202\377\377\377\377\377\377\364\377\352\364\377\352\346\371\342\346\371"
|
||||
"\342\346\371\342\346\371\342O\3321P\3342P\3342P\3342P\3342P\3342P\3342P\334"
|
||||
"2\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\362\375\360\362\375\360"
|
||||
"\362\375\360\362\375\360\362\375\360\362\375\360\362\375\360\362\375\360"
|
||||
"\362\375\360\362\375\360\362\375\360\362\375\360\362\375\360\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\6\0\4[\3747?\301\25N\241\14\331\353C\243\177$\275Z\21\377\254W\260Q\17\30"
|
||||
"\26\7\370\343N\201\210\16|\213-\274\363G\200\2521\202\263+\243\370Cu\266"
|
||||
"1\12&\4\367\377\324h\3021S\241)h\3042h\3042\377\377\377\364\377\336\335\364"
|
||||
"\323\24M\23\\\3161\\\3202C\245(\\\3202\\\3202\377\377\377\377\377\377\377"
|
||||
"\377\377\30l\30\346\371\342\346\371\342\207\273\205\346\371\342\346\371\342"
|
||||
"\361\377\355\377\377\377P\3342\7t\4P\3342P\3342/\260\"P\3342P\3342^\377@"
|
||||
"\377\377\377\377\377\377\30\242\30\377\377\377\377\377\377d\306d\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\30\275\30\377\377\377"
|
||||
"\377\377\377K\322K\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\30\330\30\362\375\360\362\375\3601\3431\362\375\360\362\375\360\377"
|
||||
"\377\377\362\375\360D\3502M\332/s\375<>\265\14\177\252+\201\210\16\245\204"
|
||||
"*\377\314U\312\\,\224'\11\260i\17\244\210\40\232\2211\331\353J\215\2351\377"
|
||||
"\377\276\200\2521\200\2542\375\377\310u\2661t\2702t\2702\367\377\324\325"
|
||||
"\355\305h\3021h\3042h\3042\377\377\377\377\377\377\364\377\336\335\364\323"
|
||||
"\335\364\323\335\364\323\\\3202\\\3202\\\3202\\\3202\\\3202\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\346\371\342\346\371\342\346"
|
||||
"\371\342\346\371\342\346\371\342\346\371\342\346\371\342\377\377\377\377"
|
||||
"\377\377P\3342P\3342P\3342P\3342P\3342P\3342P\3342P\3342\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\27\331\12Y\316-h\3021\243\370Cg\230\15\230\224\"\245"
|
||||
"\204*\377\314U\310J\21\327Q.\260b\21\245\2041\370\343N\230\2242\331\353J"
|
||||
"\214\2402\377\377\276\200\2521\200\2542\375\377\310\317\344\266u\2661t\270"
|
||||
"2\377\377\377\367\377\324\325\355\305h\3021h\3042h\3042h\3042\377\377\377"
|
||||
"\377\377\377\364\377\336\335\364\323\335\364\323\335\364\323\335\364\323"
|
||||
"\\\3202\\\3202\\\3202\\\3202\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\346\371\342\346\371"
|
||||
"\342\346\371\342\346\371\342\346\371\342\346\371\342\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377P\3342P\3342P\3342P\3342P\3342P\3342P\3342P\334"
|
||||
"2\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377K\3745!\315\13d\304,p\270)\177\252+\23\13\6\232\2211\245\204"
|
||||
"1\347\270O\377\277Y\324<\22\265V\24\377\330Q\244\210\40#(\13\230\224\"\331"
|
||||
"\353Ju\211.\377\377\276\200\2521\210\273:\200\2542\375\377\310\20""3\6u\266"
|
||||
"1t\2702\271\307\271\367\377\324\325\355\305\341\377\321h\3021h\3042\16L\7"
|
||||
"h\3042\377\377\377\242\300\242\377\377\377\335\364\323\355\377\343\335\364"
|
||||
"\323\335\364\323\14f\7\\\3202\\\3202>\250*\\\3202\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377$\231$\377\377\377\377\377\377s\303s\377\377\377"
|
||||
"\346\371\342\376\377\372\346\371\342\346\371\342\40\257\37\346\371\342\346"
|
||||
"\371\342\\\316\\\377\377\377\377\377\377\377\377\377\377\377\377P\3342\13"
|
||||
"\262\7P\3342P\3342*\327%P\3342P\3342o\377Q\377\377\377\377\377\377$\352$"
|
||||
"\377\377\377\377\377\377K\3745]\3749s\375<\212\373@\243\370C\274\363G\331"
|
||||
"\353J\370\343N\377\330Q\377\314U\377\277Y\377\260\\\224(\11\260|\36\245\204"
|
||||
"1\377\377\250\232\2211\230\224\"\215\2351\214\2402\377\377\276\312\332\250"
|
||||
"\200\2521\200\2542\377\377\377\317\344\266u\2661t\2702t\2702\377\377\377"
|
||||
"\377\377\377\325\355\305\325\355\305\325\355\305h\3042h\3042h\3042\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\335\364\323\335\364\323\335\364"
|
||||
"\323\335\364\323\335\364\323\\\3202\\\3202\\\3202\\\3202\\\3202\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\346\371\342\346\371\342"
|
||||
"\346\371\342\346\371\342\346\371\342\346\371\342\346\371\342\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377P\3342P\3342"
|
||||
"P\3342P\3342\377\377\377K\3745O\3321\\\3161h\3021t\2702~\254'\214\240%\377"
|
||||
"\377\262\370\343N\377\330Q\262x1\277l1\312`1\327R.\260X\23\377\330Q\244\210"
|
||||
"2\377\377\250\230\2242\377\377\262\215\2351\214\2402\377\377\377\312\332"
|
||||
"\250\200\2521\200\2542\377\377\377\375\377\310\317\344\266u\2661t\2702t\270"
|
||||
"2\377\377\377\377\377\377\325\355\305\325\355\305\325\355\305h\3042h\304"
|
||||
"2h\3042h\3042\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\335\364\323\335\364\323\335\364\323\335\364\323\377\377\377\\\3202\\\320"
|
||||
"2\\\3202\\\3202\\\3202\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\346\371\342\346\371\342\346\371\342\346"
|
||||
"\371\342\346\371\342\346\371\342\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377D\3471O\3321\21\7\11c\304+\367\377\324o\2520\200\252"
|
||||
"1\214\2402\235\226'\377\377\250\377\330Q!\20\11\277l1\310d2\266?\33\224("
|
||||
"\11\260|\36\257\217;\377\377\250\232\2211\34$\11\377\377\262\215\2351q\206"
|
||||
"0\377\377\377\312\332\250\217\303@\200\2542\200\25420Z0\317\344\266\317\344"
|
||||
"\266X\2260t\2702t\2702\377\377\377\377\377\377\325\355\305(l%\325\355\305"
|
||||
"\325\355\305K\2410h\3042h\3042\377\377\377\377\377\377\377\377\3770\2200"
|
||||
"\377\377\377\377\377\377t\274p\335\364\323\335\364\323\373\377\361\377\377"
|
||||
"\377\377\377\377\21\213\11\\\3202\\\3202<\274/\\\3202\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\3770\3060\377\377\377\377\377\377V\330V\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\3770\3410\346\371\342\346"
|
||||
"\371\342>\352>\346\371\342\377\377\377D\3471P\3342\364\377\352s\375<h\302"
|
||||
"1t\2702~\254'\377\377\276\215\2351\230\2242\244\210\40\377\377\234\262x1"
|
||||
"\277l1\310W\32\377\260\\\327T1\260|2\377\330Q\244\2102\377\377\250\232\221"
|
||||
"1\230\2242\377\377\262\215\2351\214\2402\377\377\377\377\377\276\312\332"
|
||||
"\250\200\2542\200\2542\377\377\377\375\377\310\317\344\266\317\344\266t\270"
|
||||
"2t\2702t\2702\377\377\377\377\377\377\377\377\377\325\355\305\325\355\305"
|
||||
"\325\355\305h\3042h\3042h\3042h\3042\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\335\364\323\335\364\323\335\364\323"
|
||||
"\335\364\323\335\364\323\377\377\377\377\377\377\\\3202\\\3202\\\3202\\\320"
|
||||
"2\\\3202\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377D\3471P\3342\364\377\352\\\3161h\3042\367"
|
||||
"\377\324u\2661\200\2542\214\240%\377\377\262\232\2211\244\2102\377\377\234"
|
||||
"\262x1\274p2\377\337\207\377\260\\\327T1\227/\14\377\377\234\245\2041\244"
|
||||
"\2102\307\300\213\230\2242\377\377\377\377\377\262\215\2351\214\2402\377"
|
||||
"\377\377\377\377\276\312\332\250\200\2542\200\2542\377\377\377\377\377\377"
|
||||
"\317\344\266\317\344\266\317\344\266t\2702t\2702\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\325\355\305\325\355\305\325\355\305\377\377\377"
|
||||
"h\3042h\3042h\3042h\3042\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\335\364\323\335\364\323\335\364\323"
|
||||
"\335\364\323\377\377\377\377\377\377\377\377\377\\\3202\\\3202\\\3202\\\320"
|
||||
"2\\\3202\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377<\0<D\3502\371\377\364N\3221\\\3202\364\377"
|
||||
"\336l\3035t\2702\375\377\310\36\22\13\214\2402\377\377\262\214\2012\244\210"
|
||||
"2\377\377\234\274\177;\274p2\377\337\207/\24\13\324X2\227/\14\222l3\307\260"
|
||||
"|\244\2102\377\377\270\232\2211\230\2242<Q<\310\316\231\215\2351o\2065\377"
|
||||
"\377\377\377\377\276\341\377\277\200\2521\200\2542\36H\13\377\377\377\377"
|
||||
"\377\377\213\260}\317\344\266t\2702\221\366Ot\2702\377\377\377<\207<\377"
|
||||
"\377\377\377\377\377}\270v\325\355\305\325\355\305\371\377\351\377\377\377"
|
||||
"h\3042\30|\13h\3042\377\377\377|\306|\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377<\275<\335\364\323\335\364\323_\317]\335\364\323"
|
||||
"\335\364\323\377\377\377\377\377\377\377\377\377\25\260\13\\\3202\\\3202"
|
||||
">\3369\\\3202\377\377\377\377\377\377\377\377\377\377\377\377D\3502\371\377"
|
||||
"\364O\3321\\\3202\364\377\336h\3042\367\377\324u\2661\200\2542\377\377\276"
|
||||
"\215\2351\230\2242\307\300\213\244\2102\377\377\234\262x1\274p2\377\337\207"
|
||||
"\312`1\324E\30\327T1\260|2\377\377\234\245\2041\244\2102\377\377\250\232"
|
||||
"\2211\230\2242\377\377\377\310\316\231\215\2351\214\2402\377\377\377\377"
|
||||
"\377\377\312\332\250\312\332\250\200\2542\200\2542\377\377\377\377\377\377"
|
||||
"\317\344\266\317\344\266\317\344\266t\2702t\2702t\2702\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\325\355\305\325\355\305\325\355"
|
||||
"\305\377\377\377h\3042h\3042h\3042h\3042\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\335\364\323\335\364\323\335\364\323\335\364\323\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\\\3202\\\3202\\\3202\377\377\377D\3502\371\377"
|
||||
"\364O\3321\377\377\377\\\3161h\3042\367\377\324t\2702\375\377\310\200\252"
|
||||
"1\377\377\377\215\2351\230\2242\377\377\250\244\2102\377\377\234\262x1\274"
|
||||
"p2\316\214_\310d2\377\310|\327T1\227/\14\377\377\377\307\260|\244\2102\377"
|
||||
"\377\377\307\300\213\230\2242\230\2242\377\377\377\310\316\231\214\2402\214"
|
||||
"\2402\377\377\377\377\377\377\312\332\250\312\332\250\200\2542\200\2542\377"
|
||||
"\377\377\377\377\377\377\377\377\317\344\266\317\344\266\317\344\266t\270"
|
||||
"2t\2702t\2702\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\325\355\305\325\355\305\325\355\305\377\377\377\377\377\377h\3042h\3042"
|
||||
"h\3042\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\335\364\323\335\364"
|
||||
"\323\335\364\323\335\364\323\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377D\3502\371\377\364R\3344\364\377\352\\\3161H\22Hh\3021\377\377\377o\244"
|
||||
"2\200\2542\312\332\250\226\245<\377\377\262\230\2242H-/\245\2041\377\377"
|
||||
"\377\233i5\274p2\277l1\331sC\377\310|\324X2*\15\3\260|2\377\377\234\206s"
|
||||
"7\244\2102\377\377\250\340\337\244\230\2242\377\377\377Hc2\310\316\231\214"
|
||||
"\2402n\211:\377\377\377\377\377\377\353\377\311\312\332\250\200\2542$T\16"
|
||||
"\377\377\377\377\377\377\236\277\236\377\377\377\317\344\266\367\377\336"
|
||||
"\377\377\377t\2702\40n\16t\2702\377\377\377\212\303\212\377\377\377\377\377"
|
||||
"\377\377\377\377\325\355\305\325\355\305<\2477\377\377\377\377\377\377O\276"
|
||||
"Ah\3042h\3042\237\377i\377\377\377\377\377\377H\317H\377\377\377\377\377"
|
||||
"\377c\335c\377\377\377\377\377\377\377\377\377\377\377\377\335\364\323>\337"
|
||||
";\335\364\323\377\377\377D\3502\362\375\360P\3342\346\371\342\\\3202\364"
|
||||
"\377\336h\3042\367\377\324t\2702\375\377\310\200\2542\377\377\276\214\240"
|
||||
"2\377\377\262\232\2211\377\377\377\245\2041\377\377\377\262x1\377\377\377"
|
||||
"\277l1\310d2\312`1\324X2\327T1\260|2\377\377\377\307\260|\244\2102\377\377"
|
||||
"\377\307\300\213\232\2211\230\2242\377\377\377\377\377\262\310\316\231\214"
|
||||
"\2402\214\2402\377\377\377\377\377\377\312\332\250\312\332\250\200\2542\200"
|
||||
"\2542\200\2542\377\377\377\377\377\377\377\377\377\317\344\266\317\344\266"
|
||||
"\317\344\266\377\377\377t\2702t\2702t\2702\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\325\355\305\325\355\305\325\355\305\325\355"
|
||||
"\305\377\377\377\377\377\377h\3042h\3042h\3042h\3042\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377D\3502\362\375\360P\3342\346\371\342\\\3202\335"
|
||||
"\364\323h\3042\325\355\305t\2702\317\344\266\377\377\377\200\2521\377\377"
|
||||
"\377\215\2351\377\377\377\232\2211\377\377\377\245\2041\377\377\377\262x"
|
||||
"1\377\377\377\277l1\377\377\377\312`1\377\310|\327T1\227/\14\377\377\377"
|
||||
"\307\260|\244\2102\244\2102\377\377\377\307\300\213\230\2242\230\2242\377"
|
||||
"\377\377\310\316\231\310\316\231\214\2402\214\2402\377\377\377\377\377\377"
|
||||
"\312\332\250\312\332\250\377\377\377\200\2542\200\2542\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\317\344\266\317\344\266\377\377\377\377\377"
|
||||
"\377t\2702t\2702\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\325\355\305\325\355\305\325\355\305\377\377"
|
||||
"\377\377\377\377\377\377\377h\3042h\3042h\3042\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377D\3502\362\375\360"
|
||||
"T\11TO\3321\377\377\377Z\3002\377\377\377h\3042\377\377\334t\2702\375\377"
|
||||
"\310*\30\20\312\332\250\214\2402\262\260\214\230\2242\307\300\213\377\377"
|
||||
"\377\245\2041\377\377\377:\35\20\377\377\377\277l1\316\264w\310d2\377\310"
|
||||
"|\356qL\227/\14\260|2TZ3\307\260|\244\2102\274\302\274\307\300\213\307\300"
|
||||
"\213\273\301U\377\377\377\377\377\377A^2\310\316\231\214\2402o\216B\377\377"
|
||||
"\377\377\377\377\366\377\324\312\332\250\312\332\250*a\20\200\2542\377\377"
|
||||
"\377\230\301\230\377\377\377\377\377\377\377\377\353\317\344\266\317\344"
|
||||
"\266T\253Tt\2702t\2702]\265I\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377T\306T\377\377\377\325\355\305l\324i\325\355\305\377\377"
|
||||
"\377\377\377\377\377\377\377h\3042\"\254\20h\3042h\3042b\353b\377\377\377"
|
||||
"\377\377\377D\3502\362\375\360\377\377\377O\3321\377\377\377\\\3202\364\377"
|
||||
"\336h\3042\325\355\305t\2702\317\344\266\377\377\377\200\2521\377\377\377"
|
||||
"\214\2402\377\377\262\230\2242\307\300\213\244\2102\307\260|\377\377\377"
|
||||
"\262x1\377\377\377\274p2\377\337\207\310d2\377\310|\324X2\333bB\260|2\377"
|
||||
"\377\377\307\260|\244\2102\244\2102\377\377\377\307\300\213\232\2211\230"
|
||||
"\2242\377\377\377\377\377\377\310\316\231\310\316\231\214\2402\214\2402\377"
|
||||
"\377\377\377\377\377\377\377\377\312\332\250\312\332\250\200\2542\200\254"
|
||||
"2\200\2542\377\377\377\377\377\377\377\377\377\377\377\377\317\344\266\317"
|
||||
"\344\266\317\344\266\377\377\377t\2702t\2702t\2702\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\325\355\305"
|
||||
"\325\355\305\325\355\305\325\355\305\377\377\377\377\377\377\377\377\377"
|
||||
"h\3042h\3042\377\377\377\377\377\377D\3471\377\377\377P\3342\364\377\352"
|
||||
"\\\3202\335\364\323\377\377\377h\3021\377\377\377t\2702\375\377\310\200\254"
|
||||
"2\312\332\250\377\377\377\215\2351\377\377\377\230\2242\377\377\250\244\210"
|
||||
"2\307\260|\377\377\377\262x1\377\377\377\274p2\377\337\207\310d2\323xQ\324"
|
||||
"X2\327T1\227/\14\260|2\377\377\234\307\260|\244\2102\377\377\377\377\377"
|
||||
"\377\307\300\213\230\2242\230\2242\377\377\377\377\377\377\310\316\231\310"
|
||||
"\316\231\214\2402\214\2402\377\377\377\377\377\377\377\377\377\312\332\250"
|
||||
"\312\332\250\377\377\377\200\2542\200\2542\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\317\344\266\317\344\266\377\377\377\377\377"
|
||||
"\377t\2702t\2702t\2702\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\325\355\305\325\355\305\325"
|
||||
"\355\305\377\377\377\377\377\377`\0`\377\377\377D\3471\371\366\371P\3342"
|
||||
"\346\371\342\377\377\377\\\3161\377\377\377'\24\22\325\355\305t\2702\276"
|
||||
"\310\251\377\377\377\200\2542\377\377\316\214\2402\310\316\231`6`\230\224"
|
||||
"2\377\377\250\222u<\307\260|\377\377\377\315\214L\377\377\377\274p2M,#\310"
|
||||
"d2\312`1\306\304\306\324X2\333bB\325\242W\377\377\377\307\260|=9\22\244\210"
|
||||
"2\377\377\377\227\234w\307\300\213\230\2242\307\322a\377\377\377\377\377"
|
||||
"\377Km9\310\316\231\214\2402r\226K\377\377\377\377\377\377\377\377\377\312"
|
||||
"\332\250\312\332\250`\242`\200\2542\200\2542\224\306\224\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\317\344\266M\250D\317\344\266\377\377\377"
|
||||
"\203\322\203t\2702t\2702\301\377\177\377\377\377\377\377\377`\330`\377\377"
|
||||
"\377\377\377\377r\344r\377\377\377\377\377\377\377\377\377\325\355\305\377"
|
||||
"\377\377\377\377\377D\3502\371\377\364P\3342\346\371\342\377\377\377\\\320"
|
||||
"2\364\377\336h\3042\325\355\305\377\377\377t\2702\317\344\266\200\2542\312"
|
||||
"\332\250\377\377\377\214\2402\310\316\231\230\2242\307\300\213\377\377\377"
|
||||
"\244\2102\307\260|\377\377\377\200U0\220^\377\7\4/\227U[\246]\377\255Q1\377"
|
||||
"\242y\10\3/\306M@\6\4/{^\377mVvmVv\6\5/h\\\377h\\\377\\U\204\12\12\360\5"
|
||||
"\5/VX\377VX\377\12\12\360LR\221\12\12\360\5\6/\214\2402\377\377\377\377\377"
|
||||
"\377\377\377\377\312\332\250\312\332\250\377\377\377\200\2542\200\2542\200"
|
||||
"\2542\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\317\344"
|
||||
"\266\317\344\266\317\344\266\377\377\377\377\377\377t\2702t\2702\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377D\3502\362\375\360P\3342\346\371"
|
||||
"\342\377\377\377\\\3202\335\364\323\377\377\377h\3042\367\377\324t\2702\317"
|
||||
"\344\266\377\377\377\200\2542\312\332\250\377\377\377\214\2402\377\377\262"
|
||||
"\230\2242\307\300\213\377\377\377\244\2102\307\260|{^\377\200U0\220^\377"
|
||||
"\7\4/\227U[\246]\377\7\3/\377\242y\236\37""2\306M0\210%\14T-2{^\377mVv\6"
|
||||
"\5/\6\5/h\\\377\\U\204\\U\204\5\5/\5\5/VX\377VX\377LR\221LR\221\377\377\377"
|
||||
"\214\2402\214\2402\377\377\377\377\377\377\377\377\377\312\332\250\312\332"
|
||||
"\250\312\332\250\377\377\377\200\2542\200\2542\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\317\344\266\317\344\266\377"
|
||||
"\377\377\377\377\377t\2702t\2702t\2702\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377D\3502\365\375\363\377\377"
|
||||
"\377O\3321l\22l\\\3202\335\364\323\357\346\357h\3042\325\355\305\377\377"
|
||||
"\377t\2702\317\344\266l-l\200\2521\377\377\377\204\211=\310\316\231\377\377"
|
||||
"\377\262\243L\307\300\213\377\377\377E&\25mVv{^\377ySB\220^\377\7\4/\275"
|
||||
"t\201\246]\377\7\3/I\37!\277Z\377\10\3/\237YQ\6\4/{^\377\236\213\247mVv\6"
|
||||
"\5/,-lh\\\377\\U\204dow\5\5/\5\5/\222\251\377VX\377\310\316\231T{@\377\377"
|
||||
"\377\214\2402w\240V\377\377\377\377\377\377\377\377\377\377\377\377\312\332"
|
||||
"\250U\231G\377\377\377\200\2542q\270\\\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377l\317l\317\344\266\317\344\266z\330v\377\377\377"
|
||||
"\377\377\377\323\377\221t\2702t\2702l\352l\377\377\377\377\377\377\377\377"
|
||||
"\377D\3502\362\375\360\377\377\377P\3342\346\371\342\377\377\377\\\3202\364"
|
||||
"\377\336h\3042\325\355\305\377\377\377t\2702\317\344\266\377\377\377\200"
|
||||
"\2542\312\332\250\377\377\377\214\2402\310\316\231\377\377\377\230\2242\307"
|
||||
"\300\213\377\377\377\6\5/mVv{^\377\200U0\220^\377\7\4/\227U[\246]\377\7\3"
|
||||
"/\255RN\277Z\377\10\3/\306M@\6\4/{^\377{^\377mVv\6\5/\6\5/h\\\377h\\\377"
|
||||
"\\U\204\12\12\360\5\5/\12\12\360\377\377\377\377\377\377\310\316\231\310"
|
||||
"\316\231\377\377\377\214\2402\214\2402\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\312\332\250\312\332\250\377\377\377\200\2542\200\2542\200\254"
|
||||
"2\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\317\344\266\317\344\266\317\344\266\377\377\377\377\377\377t\2702t\2702"
|
||||
"\377\377\377\377\377\377D\3502\362\375\360\377\377\377P\3342\346\371\342"
|
||||
"\377\377\377\\\3202\335\364\323\377\377\377h\3042\325\355\305\377\377\377"
|
||||
"t\2702\317\344\266\377\377\377\200\2542\312\332\250\377\377\377\214\2402"
|
||||
"\310\316\231\377\377\377\230\2242\307\300\213h\\\377\6\5/mVv{^\377\200U0"
|
||||
"\220^\377\7\4/\227U[\246]\377\7\3/\255RN\277Z\377\10\3/\306M@\6\4/\6\4/{"
|
||||
"^\377mVvmVv\6\5/\12\12\360h\\\377\\U\204\\U\204\5\5/\230\2242\377\377\377"
|
||||
"\377\377\377\377\377\377\310\316\231\310\316\231\377\377\377\214\2402\214"
|
||||
"\2402\377\377\377\377\377\377\377\377\377\377\377\377\312\332\250\312\332"
|
||||
"\250\377\377\377\377\377\377\200\2542\200\2542\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\317\344\266\317"
|
||||
"\344\266\377\377\377\377\377\377\377\377\377\377\377\377D\3502q\10p\377\377"
|
||||
"\377P\3342\335\350\332\377\377\377\\\3202\351\366\337\377\377\377h\3042d"
|
||||
"!\\\377\377\377t\2702\277\302\252\377\377\377\200\2542\343\345\301\377\377"
|
||||
"\377\214\2402^2H\377\377\377\230\2242\257\235\204h\\\377\6\5/\223o\234{^"
|
||||
"\377\6\4/<\36""1\377\252\215j)2\211XK\377\250\203\202$2\337~c\377\242y\236"
|
||||
"\37""2]#\26\306M@\6\4/ym\274{^\377mVvELn\6\5/h\\\37703x\\U\204\307\300\213"
|
||||
"\204\226\\\230\2242\377\377\377\377\377\377\377\377\377\310\316\231^\212"
|
||||
"H\377\377\377\214\2402}\256b\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\312\332\250_\251O\377\377\377\377\377\377y\310j\200\2542\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377x\341x\377\377\377\377\377\377\177\350"
|
||||
"|\317\344\266\377\377\377\377\377\377D\3502\362\375\360\377\377\377P\334"
|
||||
"2\346\371\342\377\377\377\\\3202\335\364\323\377\377\377\377\377\377h\304"
|
||||
"2\325\355\305\377\377\377t\2702\317\344\266\377\377\377\200\2542\312\332"
|
||||
"\250\377\377\377\214\2402\310\316\231\377\377\377\230\2242\\U\204h\\\377"
|
||||
"\6\5/mVv{^\377\6\4/\12\12\360\201Vi\220^\377\7\4/\227U[\246]\377\7\3/\255"
|
||||
"RN\277Z\377\10\3/\306M@\6\4/\12\12\360{^\377mVvmVv\6\5/\12\12\360h\\\377"
|
||||
"\377\377\377\307\300\213\377\377\377\230\2242\230\2242\377\377\377\377\377"
|
||||
"\377\377\377\377\310\316\231\310\316\231\377\377\377\214\2402\214\2402\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\312\332\250\312\332\250\312"
|
||||
"\332\250\377\377\377\200\2542\200\2542\200\2542\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377D\350"
|
||||
"2\362\375\360\377\377\377P\3342\377\377\377\346\371\342\377\377\377\\\320"
|
||||
"2\335\364\323\377\377\377h\3042\325\355\305\377\377\377t\2702\317\344\266"
|
||||
"\377\377\377\200\2542\377\377\377\312\332\250\377\377\377\214\2402\310\316"
|
||||
"\231\377\377\377\5\5/\\U\204h\\\377\6\5/mVv{^\377\6\4/\12\12\360\201Vi\220"
|
||||
"^\377\7\4/\227U[\246]\377\7\3/\255RN\277Z\377\10\3/\306M@\6\4/\6\4/{^\377"
|
||||
"\12\12\360mVv\6\5/\6\5/\377\377\377\377\377\377\307\300\213\307\300\213\377"
|
||||
"\377\377\230\2242\377\377\377\377\377\377\377\377\377\377\377\377\310\316"
|
||||
"\231\310\316\231\377\377\377\214\2402\214\2402\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\312\332\250\312\332\250\377\377\377\377"
|
||||
"\377\377\200\2542\200\2542\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\204\0\204\377\377\377D\3502\355\364\353\377\377\377\377\377\377Y\335;\346"
|
||||
"\371\342\377\377\377/\26\31\335\364\323\377\377\377k\255<\325\355\305\377"
|
||||
"\377\377\377\377\377t\2702\317\344\266\2046\204\200\2542\312\332\250\340"
|
||||
"\317\340\214\2402\310\316\231\377\377\377VX\377\5\5//\33Dh\\\377\6\5/tVz"
|
||||
"{^\377\6\4/=0\377\201Vi\220^\377\3\1\30\227U[\246]\377?6U\255RN\277Z\377"
|
||||
"\337]s\306M0\306M@\3\2\30{^\377{^\377yv}mVv\244\2102\377\377\377\377\377"
|
||||
"\377\377\377\377gyG\307\300\213\230\2242\212\242h\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\310\316\231g\230O\377\377\377\214\2402\205\274q"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377h\270V\312\332"
|
||||
"\250\377\377\377\222\344\222\200\2542\200\2542\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377D\3502\362\375\360\377\377\377\377\377\377P\3342\346"
|
||||
"\371\342\377\377\377\\\3202\335\364\323\377\377\377\377\377\377h\3042\325"
|
||||
"\355\305\377\377\377t\2702\317\344\266\377\377\377\377\377\377\200\2542\312"
|
||||
"\332\250\377\377\377\214\2402\310\316\231VX\377\12\12\360\5\5/\\U\204h\\"
|
||||
"\377\6\5/mVv{^\377\6\4/\12\12\360\201Vi\220^\377\7\4/\227U[\246]\377\7\3"
|
||||
"/\255RN\255RN\277Z\377\10\3/\306M@\6\4/\12\12\360{^\377\12\12\360\307\260"
|
||||
"|\244\2102\244\2102\377\377\377\377\377\377\377\377\377\307\300\213\377\377"
|
||||
"\377\230\2242\230\2242\377\377\377\377\377\377\377\377\377\377\377\377\310"
|
||||
"\316\231\377\377\377\377\377\377\214\2402\214\2402\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\312\332\250\312\332\250\377\377\377"
|
||||
"\377\377\377\200\2542\200\2542\377\377\377\377\377\377D\3502\377\377\377"
|
||||
"\362\375\360\377\377\377P\3342\346\371\342\377\377\377\\\3202\377\377\377"
|
||||
"\335\364\323\377\377\377h\3042\325\355\305\377\377\377\377\377\377t\2702"
|
||||
"\317\344\266\377\377\377\200\2542\312\332\250\377\377\377\377\377\377\214"
|
||||
"\2402LR\221VX\377\5\5/\\U\204\12\12\360h\\\377\6\5/mVv{^\377\6\4/\12\12\360"
|
||||
"\201Vi\220^\377\7\4/\227U[\246]\377\7\3/\7\3/\255RN\277Z\377\10\3/\306M@"
|
||||
"\6\4/\6\4/{^\377\377\377\377\307\260|\377\377\377\244\2102\377\377\377\377"
|
||||
"\377\377\377\377\377\307\300\213\307\300\213\377\377\377\230\2242\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\310\316\231\310\316\231\377\377"
|
||||
"\377\377\377\377\214\2402\214\2402\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\312\332\250\312\332\250\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377D\3502\377\377\377\362\375\360\377\377\377-\17\34\346"
|
||||
"\371\342\377\377\377\363\346\363\\\3202\335\364\323\377\377\377h\3042\377"
|
||||
"\377\377x)o\377\377\377t\2702\301\276\255\377\377\377\377\377\377\243\273"
|
||||
"U\312\332\250\377\377\377O-\34\12\12\360LR\221gU\333\5\5/\\U\204<)\377h\\"
|
||||
"\377\6\5/=!B{^\377\6\4/A2\306\201Vi\220^\377I9q\227U[\246]\377]-\220\7\3"
|
||||
"/\255RN\245q\304\10\3/\306M0\377\236\221\6\4/\377\377\377\220\231\220\307"
|
||||
"\260|\307\260|\226\227m\244\2102\377\377\377\377\377\377\377\377\377\307"
|
||||
"\300\213p\207N\230\2242\230\2242\254\316\254\377\377\377\377\377\377\377"
|
||||
"\377\377\310\316\231\310\316\231\220\317\220\377\377\377\214\2402\216\316"
|
||||
"\200\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377r\310^\312"
|
||||
"\332\250\377\377\377\377\377\377\377\377\377D\3502\362\375\360\377\377\377"
|
||||
"P\3342\377\377\377\346\371\342\377\377\377\\\3202\335\364\323\377\377\377"
|
||||
"\377\377\377h\3042\325\355\305\377\377\377\377\377\377t\2702\317\344\266"
|
||||
"\377\377\377\200\2542\377\377\377\312\332\250\377\377\377\5\6/LR\221\12\12"
|
||||
"\360VX\377\5\5/\\U\204h\\\377\12\12\360\6\5/mVv{^\377\6\4/\12\12\360\201"
|
||||
"Vi\220^\377\7\4/\227U[\12\12\360\246]\377\7\3/\255RN\277Z\377\277Z\377\10"
|
||||
"\3/\306M@\260|2\260|2\377\377\377\377\377\377\307\260|\377\377\377\244\210"
|
||||
"2\377\377\377\377\377\377\377\377\377\377\377\377\307\300\213\377\377\377"
|
||||
"\230\2242\230\2242\377\377\377\377\377\377\377\377\377\377\377\377\310\316"
|
||||
"\231\310\316\231\377\377\377\377\377\377\214\2402\214\2402\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377D\3502\362\375\360\377\377\377P\3342\377\377\377\346\371\342\377"
|
||||
"\377\377\\\3202\377\377\377\335\364\323\377\377\377h\3042\325\355\305\377"
|
||||
"\377\377\377\377\377t\2702\317\344\266\377\377\377\377\377\377\200\2542\312"
|
||||
"\332\250\377\377\377\12\12\360\5\6/LR\221VX\377\12\12\360\5\5/\\U\204h\\"
|
||||
"\377\6\5/\12\12\360mVv{^\377\6\4/\12\12\360\201Vi\220^\377\7\4/\227U[\227"
|
||||
"U[\246]\377\7\3/\255RN\12\12\360\277Z\377\10\3/\333bB\377\377\377\260|2\377"
|
||||
"\377\377\377\377\377\307\260|\307\260|\244\2102\244\2102\377\377\377\377"
|
||||
"\377\377\377\377\377\307\300\213\307\300\213\377\377\377\230\2242\230\224"
|
||||
"2\377\377\377\377\377\377\377\377\377\377\377\377\310\316\231\310\316\231"
|
||||
"\377\377\377\377\377\377\214\2402\214\2402\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377)\10\36\362\375\360\377\377\377\370"
|
||||
"\356\370P\3342\346\371\342\377\377\377\377\377\377\\\3202\207\"\201\377\377"
|
||||
"\377\377\377\377p\250D\325\355\305\377\377\377\377\377\377t\2702\317\344"
|
||||
"\266\234?\234\200\2542\377\377\377\274\260\244FS\377\5\6/;#\377LR\221VX\377"
|
||||
"\3\1\34\12\12\360\\U\204{^\330\6\5/\12\12\360\257\203\270{^\377\6\4/\6\4"
|
||||
"\222\201Vi\220^\377P@d\12\12\360\227U[\370\244\377\7\3/\255RNi./\277Z\377"
|
||||
"\324X2\264\202w\333bB\260|2\377\377\377\377\377\377\377\377\377yvK\377\377"
|
||||
"\377\244\2102\236\247|\377\377\377\377\377\377\377\377\377\307\300\213\307"
|
||||
"\300\213\234\306\234\230\2242\377\377\377\256\330\256\377\377\377\377\377"
|
||||
"\377\377\377\377\310\316\231\310\316\231\234\341\234\377\377\377\214\240"
|
||||
"2\232\343\223\377\377\377\377\377\377\377\377\377\377\377\377D\3502\362\375"
|
||||
"\360\377\377\377\377\377\377P\3342\346\371\342\377\377\377\377\377\377\\"
|
||||
"\3202\335\364\323\377\377\377\377\377\377h\3042\325\355\305\377\377\377\377"
|
||||
"\377\377t\2702\317\344\266\377\377\377\377\377\377\200\2542\312\332\250\12"
|
||||
"\12\360FS\377\5\6/LR\221\12\12\360RW\255\3\5\35\6\11\224ZT\\d[\261\3\4\35"
|
||||
"\6\11\224lVTw]\264\4\4\35\6\11\224\200VN\214]\270\4\3\35\6\11\224\226UG\242"
|
||||
"\\\274\4\3\35\4\3\35\254R@\377\377\311\203U\36\203U\36\323a:my\36my\36\377"
|
||||
"\377\276\377\377\276\243\255X\243\255X\236\371\236e\204\36\236\371\236\374"
|
||||
"\377\273\236\371\236\236\371\236\234\275`\236\371\236^\220\36^\220\36\236"
|
||||
"\371\236\352\377\267\352\377\267\236\371\236\236\371\236\310\316\231\310"
|
||||
"\316\231\377\377\377\377\377\377\214\2402\377\377\377\377\377\377\377\377"
|
||||
"\377D\3502\362\375\360\377\377\377\377\377\377P\3342\346\371\342\377\377"
|
||||
"\377\377\377\377\\\3202\377\377\377\335\364\323\377\377\377h\3042\377\377"
|
||||
"\377\325\355\305\377\377\377t\2702\377\377\377\317\344\266\377\377\377\377"
|
||||
"\377\377\200\2542<L\237FS\377\12\12\360\5\6/LR\221\6\11\224RW\255\3\5\35"
|
||||
"ZT\\\6\11\224d[\261\3\4\35\6\11\224lVTw]\264\4\4\35\6\11\224\200VN\214]\270"
|
||||
"\4\3\35\4\3\35\226UG\242\\\274\6\11\224\4\3\35\304wB\377\377\311\377\377"
|
||||
"\311\203U\36\323a:\236\371\236my\36\236\371\236\377\377\276\236\371\236\243"
|
||||
"\255X\236\371\236e\204\36e\204\36\374\377\273\374\377\273\236\371\236\234"
|
||||
"\275`\234\275`\236\371\236^\220\36^\220\36\236\371\236\352\377\267\352\377"
|
||||
"\267\377\377\377\377\377\377\310\316\231\310\316\231\377\377\377\250\0\250"
|
||||
"\377\377\377\377\377\377F\3375\362\375\360\377\377\377\377\377\377P\3342"
|
||||
"\377\377\377\227\32\224\377\377\377\\\3202\362\340\362\335\364\323\377\377"
|
||||
"\377\377\377\377h\3042\325\355\305\2506\250\377\377\377t\2702\304\272\262"
|
||||
"\377\377\377\377\377\377\257\300a\12\12\360<L\237.\32\250\5\6/\12\12\360"
|
||||
"jSzRW\255\6\11\224D+^ZT\\\6\11\224A&t\3\4\35lVTP9\235w]\264\4\4\35YG\347"
|
||||
"\200VN\214]\270\3\4a\4\3\35\226UG\244y\257\6\11\224{a\36\377\322\246\236"
|
||||
"\371\236\377\377\311V6\23\323a:\323a:\223\231y\236\371\236\377\377\276\377"
|
||||
"\377\377\243\255X\243\255Xh\270he\204\36\236\371\236\272\322\253\374\377"
|
||||
"\273\236\371\236\377\377\350\236\371\236\236\371\236=y\23\236\371\236\236"
|
||||
"\371\236\262\344\262\377\377\377\377\377\377\377\377\377\310\316\231\377"
|
||||
"\377\377\377\377\377\377\377\377D\3502\362\375\360\377\377\377\377\377\377"
|
||||
"P\3342\377\377\377\346\371\342\377\377\377\377\377\377\\\3202\335\364\323"
|
||||
"\377\377\377\377\377\377h\3042\325\355\305\377\377\377\377\377\377t\2702"
|
||||
"\377\377\377\317\344\266\377\377\377\377\377\377\5\6/<L\237\12\12\360FS\377"
|
||||
"\5\6/\6\11\224JQbRW\255\6\11\224\3\5\35ZT\\d[\261\6\11\224\3\4\35lVT\6\11"
|
||||
"\224w]\264\4\4\35\6\11\224\200VN\214]\270\6\11\224\4\3\35\226UG\242\\\274"
|
||||
"\377\377\306{a\36\304wB\304wB\377\377\311\203U\36\203U\36\323a:my\36my\36"
|
||||
"\377\377\276\377\377\276\236\371\236\243\255X\236\371\236e\204\36e\204\36"
|
||||
"\236\371\236\374\377\273\236\371\236\234\275`\234\275`\236\371\236^\220\36"
|
||||
"^\220\36\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377D\3502\362\375\360\377\377\377\377\377\377"
|
||||
"P\3342\377\377\377\346\371\342\377\377\377\377\377\377\\\3202\335\364\323"
|
||||
"\377\377\377\377\377\377h\3042\377\377\377\325\355\305\377\377\377\377\377"
|
||||
"\377t\2702\317\344\266\377\377\377\377\377\377\5\6/\12\12\360<L\237FS\377"
|
||||
"\12\12\360\3\5\35JQb\6\11\224RW\255\3\5\35\6\11\224ZT\\d[\261\6\11\224\3"
|
||||
"\4\35lVT\6\11\224w]\264\4\4\35\6\11\224\200VN\214]\270\6\11\224\4\3\35\226"
|
||||
"UG\236\371\236\377\377\306{a\36\236\371\236\304wB\377\377\311\236\371\236"
|
||||
"\203U\36\323a:\236\371\236my\36\236\371\236\377\377\276\236\371\236\243\255"
|
||||
"X\243\255X\236\371\236e\204\36\236\371\236\374\377\273\374\377\273\236\371"
|
||||
"\236\234\275`\234\275`\236\371\236\230\2242\230\2242\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377J\3508\377\377\377\362"
|
||||
"\375\360\264\22\264\377\377\377P\3342\340\340\335\377\377\377\377\377\377"
|
||||
"u\325K\377\377\377\335\364\323\264-\264\377\377\377h\3042\315\305\301\377"
|
||||
"\377\377\377\377\377\240\307^\377\377\377\317\344\266\264H\264\12\12\360"
|
||||
"\5\6/aL\245\12\12\360FS\377E(\323\3\5\35JQb\4\3hRW\255\3\5\35O2\241ZT\\d"
|
||||
"[\261X>\346\3\4\35lVT\4\4hw]\264\4\4\35aK\244\200VN\214]\270kZ\371\4\3\35"
|
||||
"\270\212Io\225o\377\377\306{a\36\253\300\253\304wB\377\377\311\377\377\377"
|
||||
"\203U\36\323a:\224D(my\36\236\371\236\307\316\266\377\377\276\236\371\236"
|
||||
"\377\377\343\236\371\236e\204\36Gk\25\236\371\236\374\377\273\260\334\260"
|
||||
"\236\371\236\234\275`\377\377\377\377\377\377\230\2242k\207#\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377D\3502\377\377\377\362\375\360\377\377"
|
||||
"\377\377\377\377P\3342\346\371\342\377\377\377\377\377\377\\\3202\377\377"
|
||||
"\377\335\364\323\377\377\377\377\377\377h\3042\377\377\377\325\355\305\377"
|
||||
"\377\377\377\377\377t\2702\317\344\266\377\377\3778L\377\12\12\360\5\6/<"
|
||||
"L\237\12\12\360BR\252\3\5\35\6\11\224JQbRW\255\6\11\224\3\5\35ZT\\\6\11\224"
|
||||
"d[\261\6\11\224\3\4\35lVT\6\11\224w]\264\4\4\35\6\11\224\200VN\214]\270\6"
|
||||
"\11\224tm\36\270\212I\270\212I\377\377\306{a\36{a\36\304wB\236\371\236\377"
|
||||
"\377\311\203U\36\236\371\236\323a:my\36my\36\236\371\236\377\377\276\236"
|
||||
"\371\236\243\255X\243\255X\236\371\236e\204\36\236\371\236\374\377\273\374"
|
||||
"\377\273\236\371\236\307\300\213\307\300\213\377\377\377\377\377\377\230"
|
||||
"\2242\377\377\377\377\377\377\377\377\377D\3502\377\377\377\362\375\360\377"
|
||||
"\377\377\377\377\377P\3342\377\377\377\346\371\342\377\377\377\377\377\377"
|
||||
"\\\3202\335\364\323\377\377\377\377\377\377\377\377\377h\3042\325\355\305"
|
||||
"\377\377\377\377\377\377t\2702\377\377\377\317\344\2668L\377\12\12\360\5"
|
||||
"\6/\12\12\360<L\237BR\252\6\11\224\3\5\35JQb\6\11\224RW\255\6\11\224\3\5"
|
||||
"\35ZT\\\6\11\224d[\261\3\4\35\6\11\224lVT\6\11\224w]\264\4\4\35\6\11\224"
|
||||
"\200VN\214]\270\236\371\236tm\36\236\371\236\270\212I\377\377\306\236\371"
|
||||
"\236{a\36\304wB\236\371\236\377\377\311\203U\36\203U\36\323a:\236\371\236"
|
||||
"my\36\236\371\236\377\377\276\377\377\276\236\371\236\243\255X\236\371\236"
|
||||
"e\204\36e\204\36\236\371\236\374\377\273\377\377\377\377\377\377\307\300"
|
||||
"\213\307\300\213\377\377\377\377\377\377\377\377\377\377\377\3773\10%\377"
|
||||
"\377\377\362\375\360\372\356\372\377\377\377P\3342\377\377\377\346\371\342"
|
||||
"\377\377\377\300$\300\\\3202\377\377\377\327\317\316\377\377\377\377\377"
|
||||
"\377\220\317Z\377\377\377\325\355\305\300?\300\377\377\377t\2702\312\267"
|
||||
"\270\12\12\3608L\377F#\377\5\6/<L\237\4\3oBR\252\6\11\224K)[JQb\6\11\224"
|
||||
"\243\204\376\3\5\35\6\11\224C&E\6\11\224d[\261_@l\6\11\224lVTkP\371w]\264"
|
||||
"\4\4\35\4\5o\200VN\377\377\302\262\276\262tm\36\236\371\236\377\360\302\377"
|
||||
"\377\306\236\371\236\\A\26\304wB\304wB\322\312\302\236\371\236\203U\36\377"
|
||||
"\355\310\323a:my\36R]\26\236\371\236\377\377\276\270\326\270\243\255X\236"
|
||||
"\371\236\377\377\377e\204\36\236\371\236\300\341\300\377\377\377\377\377"
|
||||
"\377\305\353\305\307\300\213\377\377\377\377\377\377\377\377\377D\3502\377"
|
||||
"\377\377\362\375\360\377\377\377\377\377\377P\3342\377\377\377\346\371\342"
|
||||
"\377\377\377\377\377\377\\\3202\377\377\377\335\364\323\377\377\377\377\377"
|
||||
"\377h\3042\377\377\377\325\355\305\377\377\377\377\377\377t\2702\377\377"
|
||||
"\3770E\254\12\12\3608L\377\5\6/\12\12\360:Lj\6\11\224BR\252\3\5\35\6\11\224"
|
||||
"JQb\6\11\224RW\255\3\5\35\6\11\224ZT\\\6\11\224d[\261\3\4\35\6\11\224lVT"
|
||||
"\6\11\224w]\264\4\4\35\6\11\224\255\235Q\377\377\302\377\377\302tm\36\236"
|
||||
"\371\236\270\212I\377\377\306\377\377\306{a\36\236\371\236\304wB\377\377"
|
||||
"\311\377\377\311\203U\36\236\371\236\323a:\236\371\236my\36\236\371\236\377"
|
||||
"\377\276\236\371\236\243\255X\243\255X\236\371\236e\204\36\244\2102\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377D\3502\377\377\377\362\375\360\377\377\377\377\377\377P\3342\377\377"
|
||||
"\377\346\371\342\377\377\377\377\377\377\377\377\377\\\3202\335\364\323\377"
|
||||
"\377\377\377\377\377\377\377\377h\3042\325\355\305\377\377\377\377\377\377"
|
||||
"\377\377\377t\2702\317\344\266\377\377\377\377\377\377\377\377\377\200\254"
|
||||
"2\236\371\236\222\326p\332\377\264\236\371\236V\234\36\236\371\236\226\312"
|
||||
"g\352\377\267\236\371\236^\220\36\236\371\236\234\275`\374\377\273\236\371"
|
||||
"\236e\204\36\236\371\236\243\255X\377\377\276\236\371\236my\36\236\371\236"
|
||||
"\255\235Q\236\371\236\377\377\302tm\36\236\371\236\270\212I\236\371\236\377"
|
||||
"\377\306{a\36\236\371\236\304wB\236\371\236\377\377\311\203U\36\203U\36\323"
|
||||
"a:\236\371\236my\36\236\371\236\377\377\276\377\377\276\236\371\236\243\255"
|
||||
"X\236\371\236\377\377\377\244\2102\377\377\377\377\377\377\377\377\377\314"
|
||||
"\0\314\377\377\377\377\377\377H\3377\377\377\377\362\375\360\377\377\377"
|
||||
"\377\377\377\377\377\377@\27(\346\371\342\377\377\377\367\340\367\377\377"
|
||||
"\377\\\3202\377\377\377\335\364\323\377\377\377\3146\314h\3042\377\377\377"
|
||||
"\322\301\306\377\377\377\377\377\377\255\314k\377\377\377\317\344\266\314"
|
||||
"Q\314\377\377\377\200\2542\256\300\256\222\326p\236\371\236\377\377\377\236"
|
||||
"\371\236V\234\36xUR\236\371\236\352\377\267\262\273\262^\220\36\234\275`"
|
||||
"\377\377\377\374\377\273\236\371\236PE\30\236\371\236\243\255X\342\300\305"
|
||||
"\236\371\236my\36\377\377\377\255\235Q\236\371\236\314\242\233tm\36\236\371"
|
||||
"\236\304\237\240\236\371\236\377\377\306\377\340\256{a\36\304wB~\270~\377"
|
||||
"\377\311\236\371\236\273\254\244\323a:\323a:\377\377\303my\36\236\371\236"
|
||||
"\314\330\230\236\371\236\243\255X\313\332\302\377\377\377\244\2102\377\377"
|
||||
"\355\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377D\3502\362"
|
||||
"\375\360\377\377\377\377\377\377\377\377\377P\3342\377\377\377\346\371\342"
|
||||
"\377\377\377\377\377\377\\\3202\377\377\377\335\364\323\377\377\377\377\377"
|
||||
"\377h\3042\377\377\377\325\355\305\377\377\377\377\377\377\377\377\377t\270"
|
||||
"2\317\344\266\377\377\377\377\377\377\377\377\377O\247\36\236\371\236\222"
|
||||
"\326p\332\377\264\236\371\236V\234\36\236\371\236\226\312g\236\371\236\352"
|
||||
"\377\267\236\371\236^\220\36\234\275`\236\371\236\374\377\273\236\371\236"
|
||||
"e\204\36\236\371\236\243\255X\377\377\276\236\371\236my\36\236\371\236\255"
|
||||
"\235Q\236\371\236\377\377\302tm\36\236\371\236\270\212I\236\371\236\377\377"
|
||||
"\306\236\371\236{a\36\304wB\304wB\377\377\311\236\371\236\203U\36\236\371"
|
||||
"\236\323a:\236\371\236my\36\236\371\236\377\377\276\377\377\276\377\377\377"
|
||||
"\307\260|\377\377\377\377\377\377\244\2102\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377D\3502\362\375\360\377\377\377\377\377\377\377\377\377P\334"
|
||||
"2\377\377\377\346\371\342\377\377\377\377\377\377\\\3202\377\377\377\335"
|
||||
"\364\323\377\377\377\377\377\377\377\377\377h\3042\377\377\377\325\355\305"
|
||||
"\377\377\377\377\377\377t\2702\377\377\377\317\344\266\377\377\377\377\377"
|
||||
"\377\236\371\236O\247\36\222\326p\236\371\236\332\377\264\236\371\236V\234"
|
||||
"\36\236\371\236\226\312g\236\371\236\352\377\267^\220\36\236\371\236\234"
|
||||
"\275`\236\371\236\374\377\273\236\371\236e\204\36\236\371\236\243\255X\377"
|
||||
"\377\276\236\371\236my\36\236\371\236\255\235Q\236\371\236\377\377\302tm"
|
||||
"\36tm\36\270\212I\236\371\236\377\377\306\236\371\236{a\36\236\371\236\304"
|
||||
"wB\377\377\311\377\377\311\203U\36\236\371\236\323a:\236\371\236my\36\236"
|
||||
"\371\236\236\371\236\377\377\377\377\377\377\307\260|\307\260|\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377D\3502\362\375\360\330\22"
|
||||
"\330\377\377\377\377\377\377]\306B\377\377\377\346\371\342\377\377\377\377"
|
||||
"\377\377\377\377\377M$*\335\364\323\377\377\377\366\324\366\377\377\377h"
|
||||
"\3042\377\377\377\325\355\305\377\377\377\330H\330\377\377\377t\2702\321"
|
||||
"\264\300\377\377\377\377\377\377\352\377\352O\247\36\236\371\236{S^\236\371"
|
||||
"\236\332\377\264\266\274\266V\234\36\226\312g\377\377\377\352\377\267\236"
|
||||
"\371\236OG\31\236\371\236\234\275`\274\274\274\374\377\273\236\371\236\336"
|
||||
"\325\227\243\255X\236\371\236\330\231\240\236\371\236my\36\302\300\302\255"
|
||||
"\235Q\236\371\236\377\377\377\236\371\236tm\36\233a=\236\371\236\377\377"
|
||||
"\306\310\314\310{a\36\236\371\236\377\377\351\236\371\236\377\377\311nE\31"
|
||||
"\203U\36\323a:\326\304\276my\36my\36\377\377\377\377\377\377\377\377\377"
|
||||
"\330\352\330\307\260|\377\377\377\377\377\377\377\377\377\377\377\377D\350"
|
||||
"2\377\377\377\362\375\360\377\377\377\377\377\377P\3342\377\377\377\346\371"
|
||||
"\342\377\377\377\377\377\377\377\377\377\\\3202\377\377\377\335\364\323\377"
|
||||
"\377\377\377\377\377\377\377\377h\3042\325\355\305\377\377\377\377\377\377"
|
||||
"\377\377\377t\2702\377\377\377\317\344\266\377\377\377\377\377\377\377\377"
|
||||
"\377\200\2542\377\377\377\312\332\250\377\377\377\377\377\377\214\2402\377"
|
||||
"\377\377\310\316\231\377\377\377\377\377\377\377\377\377\230\2242\377\377"
|
||||
"\377\307\300\213\377\377\377\377\377\377\244\2102\377\377\377\307\260|\377"
|
||||
"\377\377\377\377\377\377\377\377\260|2\377\377\377\312\237n\377\377\377\377"
|
||||
"\377\377\377\377\377\274p2\316\214_\316\214_\377\377\377\377\377\377\310"
|
||||
"d2\377\377\377\323xQ\377\377\377\377\377\377\377\377\377\324X2\377\377\377"
|
||||
"\333bB\377\377\377\260|2\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\377\377\377\377\377\377\377\377\377D\3502\377\377\377\362\375"
|
||||
"\360\377\377\377\377\377\377P\3342\377\377\377\346\371\342\377\377\377\377"
|
||||
"\377\377\377\377\377\\\3202\377\377\377\335\364\323\377\377\377\377\377\377"
|
||||
"\377\377\377h\3042\377\377\377\325\355\305\377\377\377\377\377\377\377\377"
|
||||
"\377t\2702\317\344\266\377\377\377\377\377\377\377\377\377\200\2542\377\377"
|
||||
"\377\312\332\250\377\377\377\377\377\377\377\377\377\214\2402\377\377\377"
|
||||
"\310\316\231\377\377\377\377\377\377\377\377\377\230\2242\377\377\377\307"
|
||||
"\300\213\377\377\377\377\377\377\244\2102\377\377\377\307\260|\377\377\377"
|
||||
"\377\377\377\377\377\377\260|2\377\377\377\312\237n\377\377\377\377\377\377"
|
||||
"\377\377\377\274p2\377\377\377\316\214_\377\377\377\377\377\377\310d2\310"
|
||||
"d2\323xQ\377\377\377\377\377\377\377\377\377\324X2\377\377\377\333bB\377"
|
||||
"\377\377\260|2\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
|
||||
"\377\377\377\344\11\344D\3502\377\377\377\360\354\357\377\377\377\377\377"
|
||||
"\377\377\377\377P\3342\377\377\377\315#\312\377\377\377\377\377\377s\262"
|
||||
"Q\377\377\377\335\364\323\377\377\377\377\377\377\377\377\377\\0,\377\377"
|
||||
"\377\325\355\305\367\313\367\377\377\377\377\377\377\274\321z\377\377\377"
|
||||
"\317\344\266\344Z\344\377\377\377\377\377\377\246\217v\377\377\377\312\332"
|
||||
"\250\377\377\377\377\377\377\377\377\377}I,\377\377\377\310\316\231\361\277"
|
||||
"\361\377\377\377\230\2242\377\377\377\307\300\213\377\377\377\344\220\344"
|
||||
"\377\377\377\244\2102\356\301\356\307\260|\377\377\377\377\377\377\377\377"
|
||||
"\377\260|2\344\253\344\312\237n\377\377\377\353\312\353\377\377\377\274p"
|
||||
"2\377\377\377\316\214_\377\377\377\344\306\344\377\377\377\310d2\340\276"
|
||||
"\310\323xQ\377\377\377\377\377\377\324X2\324X2\303V;\333bB\260|2\337\340"
|
||||
"\325\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377D\3502\377"
|
||||
"\377\377\362\375\360\377\377\377\377\377\377\377\377\377P\3342\377\377\377"
|
||||
"\346\371\342\377\377\377\377\377\377\377\377\377\\\3202\377\377\377\335\364"
|
||||
"\323\377\377\377\377\377\377\377\377\377h\3042\377\377\377\325\355\305\377"
|
||||
"\377\377\377\377\377\377\377\377t\2702\317\344\266\377\377\377\377\377\377"
|
||||
"\377\377\377\200\2542\377\377\377\312\332\250\377\377\377\377\377\377\377"
|
||||
"\377\377\214\2402\377\377\377\310\316\231\377\377\377\377\377\377\377\377"
|
||||
"\377\230\2242\377\377\377\307\300\213\377\377\377\377\377\377\377\377\377"
|
||||
"\244\2102\377\377\377\307\260|\377\377\377\377\377\377\377\377\377\260|2"
|
||||
"\377\377\377\312\237n\377\377\377\377\377\377\377\377\377\274p2\377\377\377"
|
||||
"\316\214_\377\377\377\377\377\377\377\377\377\310d2\377\377\377\323xQ\377"
|
||||
"\377\377\377\377\377\377\377\377\324X2\377\377\377\333bB\377\377\377\260"
|
||||
"|2\377\377\377\377\377\377\377\377\377\377\377\377D\3502\377\377\377\362"
|
||||
"\375\360\377\377\377\377\377\377\377\377\377P\3342\377\377\377\346\371\342"
|
||||
"\377\377\377\377\377\377\377\377\377\\\3202\377\377\377\335\364\323\377\377"
|
||||
"\377\377\377\377\377\377\377h\3042\377\377\377\325\355\305\377\377\377\377"
|
||||
"\377\377\377\377\377t\2702\377\377\377\317\344\266\377\377\377\377\377\377"
|
||||
"\377\377\377\200\2542\377\377\377\312\332\250\377\377\377\377\377\377\377"
|
||||
"\377\377\214\2402\377\377\377\310\316\231\377\377\377\377\377\377\377\377"
|
||||
"\377\230\2242\377\377\377\307\300\213\377\377\377\377\377\377\377\377\377"
|
||||
"\244\2102\377\377\377\307\260|\377\377\377\377\377\377\377\377\377\260|2"
|
||||
"\377\377\377\312\237n\377\377\377\377\377\377\377\377\377\274p2\377\377\377"
|
||||
"\316\214_\377\377\377\377\377\377\377\377\377\310d2\377\377\377\323xQ\377"
|
||||
"\377\377\377\377\377\377\377\377\324X2\377\377\377\333bB\377\377\377",
|
||||
};
|
||||
|
231
test/automated/platform/platform.c
Normal file
231
test/automated/platform/platform.c
Normal file
|
@ -0,0 +1,231 @@
|
|||
/**
|
||||
* Automated SDL platform test.
|
||||
*
|
||||
* Based off of testplatform.c.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
#include "SDL.h"
|
||||
#include "SDL_at.h"
|
||||
#include "SDL_endian.h"
|
||||
#include "SDL_cpuinfo.h"
|
||||
|
||||
|
||||
/*
|
||||
* Prototypes.
|
||||
*/
|
||||
static int plat_testSize( size_t sizeoftype, size_t hardcodetype );
|
||||
static void plat_testTypes (void);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Test size.
|
||||
*
|
||||
* @note Watcom C flags these as Warning 201: "Unreachable code" if you just
|
||||
* compare them directly, so we push it through a function to keep the
|
||||
* compiler quiet. --ryan.
|
||||
*/
|
||||
static int plat_testSize( size_t sizeoftype, size_t hardcodetype )
|
||||
{
|
||||
return sizeoftype != hardcodetype;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests type size.
|
||||
*/
|
||||
static void plat_testTypes (void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
SDL_ATbegin( "Type size" );
|
||||
|
||||
ret = plat_testSize( sizeof(Uint8), 1 );
|
||||
if (SDL_ATvassert( ret == 0, "sizeof(Uint8) = %ul instead of 1", sizeof(Uint8) ))
|
||||
return;
|
||||
|
||||
ret = plat_testSize( sizeof(Uint16), 2 );
|
||||
if (SDL_ATvassert( ret == 0, "sizeof(Uint16) = %ul instead of 2", sizeof(Uint16) ))
|
||||
return;
|
||||
|
||||
ret = plat_testSize( sizeof(Uint32), 4 );
|
||||
if (SDL_ATvassert( ret == 0, "sizeof(Uint32) = %ul instead of 4", sizeof(Uint32) ))
|
||||
return;
|
||||
|
||||
#ifdef SDL_HAS_64BIT_TYPE
|
||||
ret = plat_testSize( sizeof(Uint64), 8 );
|
||||
if (SDL_ATvassert( ret == 0, "sizeof(Uint64) = %ul instead of 8", sizeof(Uint64) ))
|
||||
return;
|
||||
#endif /* SDL_HAS_64BIT_TYPE */
|
||||
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests platform endianness.
|
||||
*/
|
||||
static void plat_testEndian (void)
|
||||
{
|
||||
Uint16 value = 0x1234;
|
||||
int real_byteorder;
|
||||
Uint16 value16 = 0xCDAB;
|
||||
Uint16 swapped16 = 0xABCD;
|
||||
Uint32 value32 = 0xEFBEADDE;
|
||||
Uint32 swapped32 = 0xDEADBEEF;
|
||||
#ifdef SDL_HAS_64BIT_TYPE
|
||||
Uint64 value64, swapped64;
|
||||
value64 = 0xEFBEADDE;
|
||||
value64 <<= 32;
|
||||
value64 |= 0xCDAB3412;
|
||||
swapped64 = 0x1234ABCD;
|
||||
swapped64 <<= 32;
|
||||
swapped64 |= 0xDEADBEEF;
|
||||
#endif
|
||||
|
||||
SDL_ATbegin( "Endianness" );
|
||||
|
||||
/* Test endianness. */
|
||||
if ((*((char *) &value) >> 4) == 0x1) {
|
||||
real_byteorder = SDL_BIG_ENDIAN;
|
||||
} else {
|
||||
real_byteorder = SDL_LIL_ENDIAN;
|
||||
}
|
||||
if (SDL_ATvassert( real_byteorder == SDL_BYTEORDER,
|
||||
"Machine detected as %s endian but appears to be %s endian.",
|
||||
(SDL_BYTEORDER == SDL_LIL_ENDIAN) ? "little" : "big",
|
||||
(real_byteorder == SDL_LIL_ENDIAN) ? "little" : "big" ))
|
||||
return;
|
||||
|
||||
/* Test 16 swap. */
|
||||
if (SDL_ATvassert( SDL_Swap16(value16) == swapped16,
|
||||
"16 bit swapped incorrectly: 0x%X => 0x%X",
|
||||
value16, SDL_Swap16(value16) ))
|
||||
return;
|
||||
|
||||
/* Test 32 swap. */
|
||||
if (SDL_ATvassert( SDL_Swap32(value32) == swapped32,
|
||||
"32 bit swapped incorrectly: 0x%X => 0x%X",
|
||||
value32, SDL_Swap32(value32) ))
|
||||
return;
|
||||
|
||||
#ifdef SDL_HAS_64BIT_TYPE
|
||||
/* Test 64 swap. */
|
||||
if (SDL_ATvassert( SDL_Swap64(value64) == swapped64,
|
||||
#ifdef _MSC_VER
|
||||
"64 bit swapped incorrectly: 0x%I64X => 0x%I64X",
|
||||
#else
|
||||
"64 bit swapped incorrectly: 0x%llX => 0x%llX",
|
||||
#endif
|
||||
value64, SDL_Swap64(value64) ))
|
||||
return;
|
||||
#endif
|
||||
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Gets the name of the platform.
|
||||
*/
|
||||
const char *platform_getPlatform (void)
|
||||
{
|
||||
return
|
||||
#if __AIX__
|
||||
"AIX"
|
||||
#elif __BEOS__
|
||||
"BeOS"
|
||||
#elif __BSDI__
|
||||
"BSDI"
|
||||
#elif __DREAMCAST__
|
||||
"Dreamcast"
|
||||
#elif __FREEBSD__
|
||||
|
||||
"FreeBSD"
|
||||
#elif __HPUX__
|
||||
"HP-UX"
|
||||
#elif __IRIX__
|
||||
"Irix"
|
||||
#elif __LINUX__
|
||||
"Linux"
|
||||
#elif __MINT__
|
||||
"Atari MiNT"
|
||||
#elif __MACOS__
|
||||
"MacOS Classic"
|
||||
#elif __MACOSX__
|
||||
"Mac OS X"
|
||||
#elif __NETBSD__
|
||||
"NetBSD"
|
||||
#elif __OPENBSD__
|
||||
"OpenBSD"
|
||||
#elif __OS2__
|
||||
"OS/2"
|
||||
#elif __OSF__
|
||||
"OSF/1"
|
||||
#elif __QNXNTO__
|
||||
"QNX Neutrino"
|
||||
#elif __RISCOS__
|
||||
"RISC OS"
|
||||
#elif __SOLARIS__
|
||||
"Solaris"
|
||||
#elif __WIN32__
|
||||
#ifdef _WIN32_WCE
|
||||
"Windows CE"
|
||||
#else
|
||||
"Windows"
|
||||
#endif
|
||||
#elif __IPHONEOS__
|
||||
"iPhone OS"
|
||||
#else
|
||||
"an unknown operating system! (see SDL_platform.h)"
|
||||
#endif
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Platform test entrypoint.
|
||||
*/
|
||||
#ifdef TEST_STANDALONE
|
||||
int main( int argc, const char *argv[] )
|
||||
{
|
||||
(void) argc;
|
||||
(void) argv;
|
||||
#else /* TEST_STANDALONE */
|
||||
int test_platform (void)
|
||||
{
|
||||
#endif /* TEST_STANDALONE */
|
||||
|
||||
SDL_ATinit( "Platform" );
|
||||
|
||||
/* Debug information. */
|
||||
SDL_ATprintVerbose( 1, "%s System detected\n", platform_getPlatform() );
|
||||
SDL_ATprintVerbose( 1, "System is %s endian\n",
|
||||
#ifdef SDL_LIL_ENDIAN
|
||||
"little"
|
||||
#else
|
||||
"big"
|
||||
#endif
|
||||
);
|
||||
SDL_ATprintVerbose( 1, "Available extensions:\n" );
|
||||
SDL_ATprintVerbose( 1, " RDTSC %s\n", SDL_HasRDTSC()? "detected" : "not detected" );
|
||||
SDL_ATprintVerbose( 1, " MMX %s\n", SDL_HasMMX()? "detected" : "not detected" );
|
||||
SDL_ATprintVerbose( 1, " MMX Ext %s\n", SDL_HasMMXExt()? "detected" : "not detected" );
|
||||
SDL_ATprintVerbose( 1, " 3DNow %s\n", SDL_Has3DNow()? "detected" : "not detected" );
|
||||
SDL_ATprintVerbose( 1, " 3DNow Ext %s\n",
|
||||
SDL_Has3DNowExt()? "detected" : "not detected" );
|
||||
SDL_ATprintVerbose( 1, " SSE %s\n", SDL_HasSSE()? "detected" : "not detected" );
|
||||
SDL_ATprintVerbose( 1, " SSE2 %s\n", SDL_HasSSE2()? "detected" : "not detected" );
|
||||
SDL_ATprintVerbose( 1, " AltiVec %s\n", SDL_HasAltiVec()? "detected" : "not detected" );
|
||||
|
||||
plat_testTypes();
|
||||
plat_testEndian();
|
||||
|
||||
return SDL_ATfinish();
|
||||
}
|
19
test/automated/platform/platform.h
Normal file
19
test/automated/platform/platform.h
Normal file
|
@ -0,0 +1,19 @@
|
|||
/**
|
||||
* Part of SDL test suite.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _TEST_PLATFORM
|
||||
# define _TEST_PLATFORM
|
||||
|
||||
|
||||
const char *platform_getPlatform (void);
|
||||
int test_platform (void);
|
||||
|
||||
|
||||
#endif /* _TEST_PLATFORM */
|
||||
|
1088
test/automated/render/render.c
Normal file
1088
test/automated/render/render.c
Normal file
File diff suppressed because it is too large
Load diff
18
test/automated/render/render.h
Normal file
18
test/automated/render/render.h
Normal file
|
@ -0,0 +1,18 @@
|
|||
/**
|
||||
* Part of SDL test suite.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _TEST_RENDER
|
||||
# define _TEST_RENDER
|
||||
|
||||
|
||||
int test_render (void);
|
||||
|
||||
|
||||
#endif /* _TEST_RENDER */
|
||||
|
1
test/automated/rwops/read
Normal file
1
test/automated/rwops/read
Normal file
|
@ -0,0 +1 @@
|
|||
Hello World!
|
271
test/automated/rwops/rwops.c
Normal file
271
test/automated/rwops/rwops.c
Normal file
|
@ -0,0 +1,271 @@
|
|||
/**
|
||||
* Automated SDL_RWops test.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#include "SDL.h"
|
||||
#include "SDL_at.h"
|
||||
|
||||
|
||||
#define RWOPS_READ "rwops/read"
|
||||
#define RWOPS_WRITE "rwops/write"
|
||||
|
||||
static const char hello_world[] = "Hello World!";
|
||||
|
||||
|
||||
/**
|
||||
* @brief Makes sure parameters work properly.
|
||||
*/
|
||||
static void rwops_testParam (void)
|
||||
{
|
||||
SDL_RWops *rwops;
|
||||
|
||||
/* Begin testcase. */
|
||||
SDL_ATbegin( "RWops Parameters" );
|
||||
|
||||
/* These should all fail. */
|
||||
rwops = SDL_RWFromFile(NULL, NULL);
|
||||
if (SDL_ATassert( "SDL_RWFromFile(NULL, NULL) worked", rwops == NULL ))
|
||||
return;
|
||||
rwops = SDL_RWFromFile(NULL, "ab+");
|
||||
if (SDL_ATassert( "SDL_RWFromFile(NULL, \"ab+\") worked", rwops == NULL ))
|
||||
return;
|
||||
rwops = SDL_RWFromFile(NULL, "sldfkjsldkfj");
|
||||
if (SDL_ATassert( "SDL_RWFromFile(NULL, \"sldfkjsldkfj\") worked", rwops == NULL ))
|
||||
return;
|
||||
rwops = SDL_RWFromFile("something", "");
|
||||
if (SDL_ATassert( "SDL_RWFromFile(\"something\", \"\") worked", rwops == NULL ))
|
||||
return;
|
||||
rwops = SDL_RWFromFile("something", NULL);
|
||||
if (SDL_ATassert( "SDL_RWFromFile(\"something\", NULL) worked", rwops == NULL ))
|
||||
return;
|
||||
|
||||
|
||||
/* End testcase. */
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Does a generic rwops test.
|
||||
*
|
||||
* RWops should have "Hello World!" in it already if write is disabled.
|
||||
*
|
||||
* @param write Test writing also.
|
||||
* @return 1 if an assert is failed.
|
||||
*/
|
||||
static int rwops_testGeneric( SDL_RWops *rw, int write )
|
||||
{
|
||||
char buf[sizeof(hello_world)];
|
||||
int i;
|
||||
|
||||
/* Set to start. */
|
||||
i = SDL_RWseek( rw, 0, RW_SEEK_SET );
|
||||
if (SDL_ATvassert( i == 0,
|
||||
"Seeking with SDL_RWseek (RW_SEEK_SET): got %d, expected %d",
|
||||
i, 0 ))
|
||||
return 1;
|
||||
|
||||
/* Test write. */
|
||||
i = SDL_RWwrite( rw, hello_world, sizeof(hello_world)-1, 1 );
|
||||
if (write) {
|
||||
if (SDL_ATassert( "Writing with SDL_RWwrite (failed to write)", i == 1 ))
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
if (SDL_ATassert( "Writing with SDL_RWwrite (wrote when shouldn't have)", i <= 0 ))
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Test seek. */
|
||||
i = SDL_RWseek( rw, 6, RW_SEEK_SET );
|
||||
if (SDL_ATvassert( i == 6,
|
||||
"Seeking with SDL_RWseek (RW_SEEK_SET): got %d, expected %d",
|
||||
i, 0 ))
|
||||
return 1;
|
||||
|
||||
/* Test seek. */
|
||||
i = SDL_RWseek( rw, 0, RW_SEEK_SET );
|
||||
if (SDL_ATvassert( i == 0,
|
||||
"Seeking with SDL_RWseek (RW_SEEK_SET): got %d, expected %d",
|
||||
i, 0 ))
|
||||
return 1;
|
||||
|
||||
/* Test read. */
|
||||
i = SDL_RWread( rw, buf, 1, sizeof(hello_world)-1 );
|
||||
if (SDL_ATassert( "Reading with SDL_RWread", i == sizeof(hello_world)-1 ))
|
||||
return 1;
|
||||
if (SDL_ATassert( "Memory read does not match memory written",
|
||||
memcmp( buf, hello_world, sizeof(hello_world)-1 ) == 0 ))
|
||||
return 1;
|
||||
|
||||
/* More seek tests. */
|
||||
i = SDL_RWseek( rw, -4, RW_SEEK_CUR );
|
||||
if (SDL_ATvassert( i == sizeof(hello_world)-5,
|
||||
"Seeking with SDL_RWseek (RW_SEEK_CUR): got %d, expected %d",
|
||||
i, sizeof(hello_world)-5 ))
|
||||
return 1;
|
||||
i = SDL_RWseek( rw, -1, RW_SEEK_END );
|
||||
if (SDL_ATvassert( i == sizeof(hello_world)-2,
|
||||
"Seeking with SDL_RWseek (RW_SEEK_END): got %d, expected %d",
|
||||
i, sizeof(hello_world)-2 ))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests opening from memory.
|
||||
*/
|
||||
static void rwops_testMem (void)
|
||||
{
|
||||
char mem[sizeof(hello_world)];
|
||||
SDL_RWops *rw;
|
||||
|
||||
/* Begin testcase. */
|
||||
SDL_ATbegin( "SDL_RWFromMem" );
|
||||
|
||||
/* Open. */
|
||||
rw = SDL_RWFromMem( mem, sizeof(hello_world)-1 );
|
||||
if (SDL_ATassert( "Opening memory with SDL_RWFromMem", rw != NULL ))
|
||||
return;
|
||||
|
||||
/* Run generic tests. */
|
||||
if (rwops_testGeneric( rw, 1 ))
|
||||
return;
|
||||
|
||||
/* Close. */
|
||||
SDL_FreeRW( rw );
|
||||
|
||||
/* End testcase. */
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
static const char const_mem[] = "Hello World!";
|
||||
/**
|
||||
* @brief Tests opening from memory.
|
||||
*/
|
||||
static void rwops_testConstMem (void)
|
||||
{
|
||||
SDL_RWops *rw;
|
||||
|
||||
/* Begin testcase. */
|
||||
SDL_ATbegin( "SDL_RWFromConstMem" );
|
||||
|
||||
/* Open. */
|
||||
rw = SDL_RWFromConstMem( const_mem, sizeof(const_mem)-1 );
|
||||
if (SDL_ATassert( "Opening memory with SDL_RWFromConstMem", rw != NULL ))
|
||||
return;
|
||||
|
||||
/* Run generic tests. */
|
||||
if (rwops_testGeneric( rw, 0 ))
|
||||
return;
|
||||
|
||||
/* Close. */
|
||||
SDL_FreeRW( rw );
|
||||
|
||||
/* End testcase. */
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests opening from memory.
|
||||
*/
|
||||
static void rwops_testFile (void)
|
||||
{
|
||||
SDL_RWops *rw;
|
||||
|
||||
/* Begin testcase. */
|
||||
SDL_ATbegin( "SDL_RWFromFile" );
|
||||
|
||||
/* Read test. */
|
||||
rw = SDL_RWFromFile( RWOPS_READ, "r" );
|
||||
if (SDL_ATassert( "Opening memory with SDL_RWFromFile '"RWOPS_READ"'", rw != NULL ))
|
||||
return;
|
||||
if (rwops_testGeneric( rw, 0 ))
|
||||
return;
|
||||
SDL_FreeRW( rw );
|
||||
|
||||
/* Write test. */
|
||||
rw = SDL_RWFromFile( RWOPS_WRITE, "w+" );
|
||||
if (SDL_ATassert( "Opening memory with SDL_RWFromFile '"RWOPS_WRITE"'", rw != NULL ))
|
||||
return;
|
||||
if (rwops_testGeneric( rw, 1 ))
|
||||
return;
|
||||
SDL_FreeRW( rw );
|
||||
|
||||
/* End testcase. */
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests opening from memory.
|
||||
*/
|
||||
static void rwops_testFP (void)
|
||||
{
|
||||
#ifdef HAVE_STDIO_H
|
||||
FILE *fp;
|
||||
SDL_RWops *rw;
|
||||
|
||||
/* Begin testcase. */
|
||||
SDL_ATbegin( "SDL_RWFromFP" );
|
||||
|
||||
/* Run read tests. */
|
||||
fp = fopen( RWOPS_READ, "r" );
|
||||
if (SDL_ATassert( "Failed to open file '"RWOPS_READ"'", fp != NULL))
|
||||
return;
|
||||
rw = SDL_RWFromFP( fp, 1 );
|
||||
if (SDL_ATassert( "Opening memory with SDL_RWFromFP", rw != NULL ))
|
||||
return;
|
||||
if (rwops_testGeneric( rw, 0 ))
|
||||
return;
|
||||
SDL_FreeRW( rw );
|
||||
|
||||
/* Run write tests. */
|
||||
fp = fopen( RWOPS_WRITE, "w+" );
|
||||
if (SDL_ATassert( "Failed to open file '"RWOPS_WRITE"'", fp != NULL))
|
||||
return;
|
||||
rw = SDL_RWFromFP( fp, 1 );
|
||||
if (SDL_ATassert( "Opening memory with SDL_RWFromFP", rw != NULL ))
|
||||
return;
|
||||
if (rwops_testGeneric( rw, 1 ))
|
||||
return;
|
||||
SDL_FreeRW( rw );
|
||||
|
||||
/* End testcase. */
|
||||
SDL_ATend();
|
||||
#endif /* HAVE_STDIO_H */
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Entry point.
|
||||
*/
|
||||
#ifdef TEST_STANDALONE
|
||||
int main( int argc, const char *argv[] )
|
||||
{
|
||||
(void) argc;
|
||||
(void) argv;
|
||||
#else /* TEST_STANDALONE */
|
||||
int test_rwops (void)
|
||||
{
|
||||
#endif /* TEST_STANDALONE */
|
||||
|
||||
SDL_ATinit( "SDL_RWops" );
|
||||
|
||||
rwops_testParam();
|
||||
rwops_testMem();
|
||||
rwops_testConstMem();
|
||||
rwops_testFile();
|
||||
rwops_testFP();
|
||||
|
||||
return SDL_ATfinish();
|
||||
}
|
18
test/automated/rwops/rwops.h
Normal file
18
test/automated/rwops/rwops.h
Normal file
|
@ -0,0 +1,18 @@
|
|||
/**
|
||||
* Part of SDL test suite.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _TEST_RWOPS
|
||||
# define _TEST_RWOPS
|
||||
|
||||
|
||||
int test_rwops (void);
|
||||
|
||||
|
||||
#endif /* _TEST_RWOPS */
|
||||
|
596
test/automated/surface/surface.c
Normal file
596
test/automated/surface/surface.c
Normal file
|
@ -0,0 +1,596 @@
|
|||
/**
|
||||
* Automated SDL_Surface test.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#include "SDL.h"
|
||||
#include "SDL_surface.h"
|
||||
#include "SDL_video.h"
|
||||
#include "SDL_at.h"
|
||||
|
||||
#include "common/common.h"
|
||||
|
||||
|
||||
/*
|
||||
* Pull in images for testcases.
|
||||
*/
|
||||
#include "common/images.h"
|
||||
|
||||
|
||||
/*
|
||||
* Prototypes.
|
||||
*/
|
||||
/* Testcases. */
|
||||
static void surface_testLoad( SDL_Surface *testsur );
|
||||
static void surface_testPrimitives( SDL_Surface *testsur );
|
||||
static void surface_testPrimitivesBlend( SDL_Surface *testsur );
|
||||
static void surface_testBlit( SDL_Surface *testsur );
|
||||
static int surface_testBlitBlendMode( SDL_Surface *testsur, SDL_Surface *face, int mode );
|
||||
static void surface_testBlitBlend( SDL_Surface *testsur );
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests sprite loading.
|
||||
*/
|
||||
static void surface_testLoad( SDL_Surface *testsur )
|
||||
{
|
||||
int ret;
|
||||
SDL_Surface *face, *rface;
|
||||
|
||||
SDL_ATbegin( "Load Test" );
|
||||
|
||||
/* Clear surface. */
|
||||
ret = SDL_FillRect( testsur, NULL,
|
||||
SDL_MapRGB( testsur->format, 0, 0, 0 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Create the blit surface. */
|
||||
face = SDL_LoadBMP("../icon.bmp");
|
||||
if (SDL_ATassert( "SDL_CreateLoadBmp", face != NULL))
|
||||
return;
|
||||
|
||||
/* Set transparent pixel as the pixel at (0,0) */
|
||||
if (face->format->palette) {
|
||||
ret = SDL_SetColorKey(face, (SDL_SRCCOLORKEY | SDL_RLEACCEL),
|
||||
*(Uint8 *) face->pixels);
|
||||
if (SDL_ATassert( "SDL_SetColorKey", ret == 0))
|
||||
return;
|
||||
}
|
||||
|
||||
/* Convert to 32 bit to compare. */
|
||||
rface = SDL_ConvertSurface( face, testsur->format, 0 );
|
||||
if (SDL_ATassert( "SDL_ConvertSurface", rface != NULL))
|
||||
return;
|
||||
|
||||
/* See if it's the same. */
|
||||
if (SDL_ATassert( "Primitives output not the same.",
|
||||
surface_compare( rface, &img_face)==0 ))
|
||||
return;
|
||||
|
||||
/* Clean up. */
|
||||
SDL_FreeSurface( rface );
|
||||
SDL_FreeSurface( face );
|
||||
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests the SDL primitives for rendering.
|
||||
*/
|
||||
static void surface_testPrimitives( SDL_Surface *testsur )
|
||||
{
|
||||
int ret;
|
||||
int x, y;
|
||||
SDL_Rect rect;
|
||||
|
||||
SDL_ATbegin( "Primitives Test" );
|
||||
|
||||
/* Clear surface. */
|
||||
ret = SDL_FillRect( testsur, NULL,
|
||||
SDL_MapRGB( testsur->format, 0, 0, 0 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Create the surface. */
|
||||
testsur = SDL_CreateRGBSurface( 0, 80, 60, 32,
|
||||
RMASK, GMASK, BMASK, AMASK );
|
||||
if (SDL_ATassert( "SDL_CreateRGBSurface", testsur != NULL))
|
||||
return;
|
||||
|
||||
/* Draw a rectangle. */
|
||||
rect.x = 40;
|
||||
rect.y = 0;
|
||||
rect.w = 40;
|
||||
rect.h = 80;
|
||||
ret = SDL_FillRect( testsur, &rect,
|
||||
SDL_MapRGB( testsur->format, 13, 73, 200 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Draw a rectangle. */
|
||||
rect.x = 10;
|
||||
rect.y = 10;
|
||||
rect.w = 60;
|
||||
rect.h = 40;
|
||||
ret = SDL_FillRect( testsur, &rect,
|
||||
SDL_MapRGB( testsur->format, 200, 0, 100 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Draw some points like so:
|
||||
* X.X.X.X..
|
||||
* .X.X.X.X.
|
||||
* X.X.X.X.. */
|
||||
for (y=0; y<3; y++) {
|
||||
x = y % 2;
|
||||
for (; x<80; x+=2) {
|
||||
ret = SDL_DrawPoint( testsur, x, y,
|
||||
SDL_MapRGB( testsur->format, x*y, x*y/2, x*y/3 ) );
|
||||
if (SDL_ATassert( "SDL_DrawPoint", ret == 0))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* Draw some lines. */
|
||||
ret = SDL_DrawLine( testsur, 0, 30, 80, 30,
|
||||
SDL_MapRGB( testsur->format, 0, 255, 0 ) );
|
||||
if (SDL_ATassert( "SDL_DrawLine", ret == 0))
|
||||
return;
|
||||
ret = SDL_DrawLine( testsur, 40, 30, 40, 60,
|
||||
SDL_MapRGB( testsur->format, 55, 55, 5 ) );
|
||||
if (SDL_ATassert( "SDL_DrawLine", ret == 0))
|
||||
return;
|
||||
ret = SDL_DrawLine( testsur, 0, 60, 80, 0,
|
||||
SDL_MapRGB( testsur->format, 5, 105, 105 ) );
|
||||
if (SDL_ATassert( "SDL_DrawLine", ret == 0))
|
||||
return;
|
||||
|
||||
/* See if it's the same. */
|
||||
if (SDL_ATassert( "Primitives output not the same.",
|
||||
surface_compare( testsur, &img_primitives )==0 ))
|
||||
return;
|
||||
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests the SDL primitives with alpha for rendering.
|
||||
*/
|
||||
static void surface_testPrimitivesBlend( SDL_Surface *testsur )
|
||||
{
|
||||
int ret;
|
||||
int i, j;
|
||||
SDL_Rect rect;
|
||||
|
||||
SDL_ATbegin( "Primitives Blend Test" );
|
||||
|
||||
/* Clear surface. */
|
||||
ret = SDL_FillRect( testsur, NULL,
|
||||
SDL_MapRGB( testsur->format, 0, 0, 0 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Create some rectangles for each blend mode. */
|
||||
ret = SDL_BlendRect( testsur, NULL, SDL_BLENDMODE_NONE, 255, 255, 255, 0 );
|
||||
if (SDL_ATassert( "SDL_BlendRect", ret == 0))
|
||||
return;
|
||||
rect.x = 10;
|
||||
rect.y = 25;
|
||||
rect.w = 40;
|
||||
rect.h = 25;
|
||||
ret = SDL_BlendRect( testsur, &rect, SDL_BLENDMODE_ADD, 240, 10, 10, 75 );
|
||||
if (SDL_ATassert( "SDL_BlendRect", ret == 0))
|
||||
return;
|
||||
rect.x = 30;
|
||||
rect.y = 40;
|
||||
rect.w = 45;
|
||||
rect.h = 15;
|
||||
ret = SDL_BlendRect( testsur, &rect, SDL_BLENDMODE_BLEND, 10, 240, 10, 100 );
|
||||
if (SDL_ATassert( "SDL_BlendRect", ret == 0))
|
||||
return;
|
||||
rect.x = 25;
|
||||
rect.y = 25;
|
||||
rect.w = 25;
|
||||
rect.h = 25;
|
||||
ret = SDL_BlendRect( testsur, &rect, SDL_BLENDMODE_MOD, 10, 10, 240, 125 );
|
||||
if (SDL_ATassert( "SDL_BlendRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Draw blended lines, lines for everyone. */
|
||||
for (i=0; i<testsur->w; i+=2) {
|
||||
ret = SDL_BlendLine( testsur, 0, 0, i, 59,
|
||||
(((i/2)%3)==0) ? SDL_BLENDMODE_BLEND :
|
||||
(((i/2)%3)==1) ? SDL_BLENDMODE_ADD : SDL_BLENDMODE_MOD,
|
||||
60+2*i, 240-2*i, 50, 3*i );
|
||||
if (SDL_ATassert( "SDL_BlendLine", ret == 0))
|
||||
return;
|
||||
}
|
||||
for (i=0; i<testsur->h; i+=2) {
|
||||
ret = SDL_BlendLine( testsur, 0, 0, 79, i,
|
||||
(((i/2)%3)==0) ? SDL_BLENDMODE_BLEND :
|
||||
(((i/2)%3)==1) ? SDL_BLENDMODE_ADD : SDL_BLENDMODE_MOD,
|
||||
60+2*i, 240-2*i, 50, 3*i );
|
||||
if (SDL_ATassert( "SDL_BlendLine", ret == 0))
|
||||
return;
|
||||
}
|
||||
|
||||
/* Draw points. */
|
||||
for (j=0; j<testsur->h; j+=3) {
|
||||
for (i=0; i<testsur->w; i+=3) {
|
||||
ret = SDL_BlendPoint( testsur, i, j,
|
||||
((((i+j)/3)%3)==0) ? SDL_BLENDMODE_BLEND :
|
||||
((((i+j)/3)%3)==1) ? SDL_BLENDMODE_ADD : SDL_BLENDMODE_MOD,
|
||||
j*4, i*3, j*4, i*3 );
|
||||
if (SDL_ATassert( "SDL_BlendPoint", ret == 0))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* See if it's the same. */
|
||||
if (SDL_ATassert( "Primitives output not the same.",
|
||||
surface_compare( testsur, &img_blend )==0 ))
|
||||
return;
|
||||
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests some blitting routines.
|
||||
*/
|
||||
static void surface_testBlit( SDL_Surface *testsur )
|
||||
{
|
||||
int ret;
|
||||
SDL_Rect rect;
|
||||
SDL_Surface *face;
|
||||
int i, j, ni, nj;
|
||||
|
||||
SDL_ATbegin( "Blit Tests" );
|
||||
|
||||
/* Clear surface. */
|
||||
ret = SDL_FillRect( testsur, NULL,
|
||||
SDL_MapRGB( testsur->format, 0, 0, 0 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Create face surface. */
|
||||
face = SDL_CreateRGBSurfaceFrom( (void*)img_face.pixel_data,
|
||||
img_face.width, img_face.height, 32, img_face.width*4,
|
||||
RMASK, GMASK, BMASK, AMASK );
|
||||
if (SDL_ATassert( "SDL_CreateRGBSurfaceFrom", face != NULL))
|
||||
return;
|
||||
|
||||
/* Constant values. */
|
||||
rect.w = face->w;
|
||||
rect.h = face->h;
|
||||
ni = testsur->w - face->w;
|
||||
nj = testsur->h - face->h;
|
||||
|
||||
/* Loop blit. */
|
||||
for (j=0; j <= nj; j+=4) {
|
||||
for (i=0; i <= ni; i+=4) {
|
||||
/* Blitting. */
|
||||
rect.x = i;
|
||||
rect.y = j;
|
||||
ret = SDL_BlitSurface( face, NULL, testsur, &rect );
|
||||
if (SDL_ATassert( "SDL_BlitSurface", ret == 0))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* See if it's the same. */
|
||||
if (SDL_ATassert( "Blitting output not the same (normal blit).",
|
||||
surface_compare( testsur, &img_blit )==0 ))
|
||||
return;
|
||||
|
||||
/* Clear surface. */
|
||||
ret = SDL_FillRect( testsur, NULL,
|
||||
SDL_MapRGB( testsur->format, 0, 0, 0 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Test blitting with colour mod. */
|
||||
for (j=0; j <= nj; j+=4) {
|
||||
for (i=0; i <= ni; i+=4) {
|
||||
/* Set colour mod. */
|
||||
ret = SDL_SetSurfaceColorMod( face, (255/nj)*j, (255/ni)*i, (255/nj)*j );
|
||||
if (SDL_ATassert( "SDL_SetSurfaceColorMod", ret == 0))
|
||||
return;
|
||||
|
||||
/* Blitting. */
|
||||
rect.x = i;
|
||||
rect.y = j;
|
||||
ret = SDL_BlitSurface( face, NULL, testsur, &rect );
|
||||
if (SDL_ATassert( "SDL_BlitSurface", ret == 0))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* See if it's the same. */
|
||||
if (SDL_ATassert( "Blitting output not the same (using SDL_SetSurfaceColorMod).",
|
||||
surface_compare( testsur, &img_blitColour )==0 ))
|
||||
return;
|
||||
|
||||
/* Clear surface. */
|
||||
ret = SDL_FillRect( testsur, NULL,
|
||||
SDL_MapRGB( testsur->format, 0, 0, 0 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Restore colour. */
|
||||
ret = SDL_SetSurfaceColorMod( face, 255, 255, 255 );
|
||||
if (SDL_ATassert( "SDL_SetSurfaceColorMod", ret == 0))
|
||||
return;
|
||||
|
||||
/* Test blitting with colour mod. */
|
||||
for (j=0; j <= nj; j+=4) {
|
||||
for (i=0; i <= ni; i+=4) {
|
||||
/* Set alpha mod. */
|
||||
ret = SDL_SetSurfaceAlphaMod( face, (255/ni)*i );
|
||||
if (SDL_ATassert( "SDL_SetSurfaceAlphaMod", ret == 0))
|
||||
return;
|
||||
|
||||
/* Blitting. */
|
||||
rect.x = i;
|
||||
rect.y = j;
|
||||
ret = SDL_BlitSurface( face, NULL, testsur, &rect );
|
||||
if (SDL_ATassert( "SDL_BlitSurface", ret == 0))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* See if it's the same. */
|
||||
if (SDL_ATassert( "Blitting output not the same (using SDL_SetSurfaceAlphaMod).",
|
||||
surface_compare( testsur, &img_blitAlpha )==0 ))
|
||||
return;
|
||||
|
||||
/* Clean up. */
|
||||
SDL_FreeSurface( face );
|
||||
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests a blend mode.
|
||||
*/
|
||||
static int surface_testBlitBlendMode( SDL_Surface *testsur, SDL_Surface *face, int mode )
|
||||
{
|
||||
int ret;
|
||||
int i, j, ni, nj;
|
||||
SDL_Rect rect;
|
||||
|
||||
/* Clear surface. */
|
||||
ret = SDL_FillRect( testsur, NULL,
|
||||
SDL_MapRGB( testsur->format, 0, 0, 0 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return 1;
|
||||
|
||||
/* Steps to take. */
|
||||
ni = testsur->w - face->w;
|
||||
nj = testsur->h - face->h;
|
||||
|
||||
/* Constant values. */
|
||||
rect.w = face->w;
|
||||
rect.h = face->h;
|
||||
|
||||
/* Test blend mode. */
|
||||
for (j=0; j <= nj; j+=4) {
|
||||
for (i=0; i <= ni; i+=4) {
|
||||
/* Set blend mode. */
|
||||
ret = SDL_SetSurfaceBlendMode( face, mode );
|
||||
if (SDL_ATassert( "SDL_SetSurfaceBlendMode", ret == 0))
|
||||
return 1;
|
||||
|
||||
/* Blitting. */
|
||||
rect.x = i;
|
||||
rect.y = j;
|
||||
ret = SDL_BlitSurface( face, NULL, testsur, &rect );
|
||||
if (SDL_ATassert( "SDL_BlitSurface", ret == 0))
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Tests some more blitting routines.
|
||||
*/
|
||||
static void surface_testBlitBlend( SDL_Surface *testsur )
|
||||
{
|
||||
int ret;
|
||||
SDL_Rect rect;
|
||||
SDL_Surface *face;
|
||||
int i, j, ni, nj;
|
||||
int mode;
|
||||
|
||||
SDL_ATbegin( "Blit Blending Tests" );
|
||||
|
||||
/* Clear surface. */
|
||||
ret = SDL_FillRect( testsur, NULL,
|
||||
SDL_MapRGB( testsur->format, 0, 0, 0 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Create the blit surface. */
|
||||
face = SDL_CreateRGBSurfaceFrom( (void*)img_face.pixel_data,
|
||||
img_face.width, img_face.height, 32, img_face.width*4,
|
||||
RMASK, GMASK, BMASK, AMASK );
|
||||
if (SDL_ATassert( "SDL_CreateRGBSurfaceFrom", face != NULL))
|
||||
return;
|
||||
|
||||
/* Set alpha mod. */
|
||||
ret = SDL_SetSurfaceAlphaMod( face, 100 );
|
||||
if (SDL_ATassert( "SDL_SetSurfaceAlphaMod", ret == 0))
|
||||
return;
|
||||
|
||||
/* Steps to take. */
|
||||
ni = testsur->w - face->w;
|
||||
nj = testsur->h - face->h;
|
||||
|
||||
/* Constant values. */
|
||||
rect.w = face->w;
|
||||
rect.h = face->h;
|
||||
|
||||
/* Test None. */
|
||||
if (surface_testBlitBlendMode( testsur, face, SDL_BLENDMODE_NONE ))
|
||||
return;
|
||||
if (SDL_ATassert( "Blitting blending output not the same (using SDL_BLENDMODE_NONE).",
|
||||
surface_compare( testsur, &img_blendNone )==0 ))
|
||||
return;
|
||||
|
||||
/* Test Mask. */
|
||||
if (surface_testBlitBlendMode( testsur, face, SDL_BLENDMODE_MASK ))
|
||||
return;
|
||||
if (SDL_ATassert( "Blitting blending output not the same (using SDL_BLENDMODE_MASK).",
|
||||
surface_compare( testsur, &img_blendMask )==0 ))
|
||||
return;
|
||||
|
||||
/* Test Blend. */
|
||||
if (surface_testBlitBlendMode( testsur, face, SDL_BLENDMODE_BLEND ))
|
||||
return;
|
||||
if (SDL_ATassert( "Blitting blending output not the same (using SDL_BLENDMODE_BLEND).",
|
||||
surface_compare( testsur, &img_blendBlend )==0 ))
|
||||
return;
|
||||
|
||||
/* Test Add. */
|
||||
if (surface_testBlitBlendMode( testsur, face, SDL_BLENDMODE_ADD ))
|
||||
return;
|
||||
if (SDL_ATassert( "Blitting blending output not the same (using SDL_BLENDMODE_ADD).",
|
||||
surface_compare( testsur, &img_blendAdd )==0 ))
|
||||
return;
|
||||
|
||||
/* Test Mod. */
|
||||
if (surface_testBlitBlendMode( testsur, face, SDL_BLENDMODE_MOD ))
|
||||
return;
|
||||
if (SDL_ATassert( "Blitting blending output not the same (using SDL_BLENDMODE_MOD).",
|
||||
surface_compare( testsur, &img_blendMod )==0 ))
|
||||
return;
|
||||
|
||||
/* Clear surface. */
|
||||
ret = SDL_FillRect( testsur, NULL,
|
||||
SDL_MapRGB( testsur->format, 0, 0, 0 ) );
|
||||
if (SDL_ATassert( "SDL_FillRect", ret == 0))
|
||||
return;
|
||||
|
||||
/* Loop blit. */
|
||||
for (j=0; j <= nj; j+=4) {
|
||||
for (i=0; i <= ni; i+=4) {
|
||||
|
||||
/* Set colour mod. */
|
||||
ret = SDL_SetSurfaceColorMod( face, (255/nj)*j, (255/ni)*i, (255/nj)*j );
|
||||
if (SDL_ATassert( "SDL_SetSurfaceColorMod", ret == 0))
|
||||
return;
|
||||
|
||||
/* Set alpha mod. */
|
||||
ret = SDL_SetSurfaceAlphaMod( face, (100/ni)*i );
|
||||
if (SDL_ATassert( "SDL_SetSurfaceAlphaMod", ret == 0))
|
||||
return;
|
||||
|
||||
/* Crazy blending mode magic. */
|
||||
mode = (i/4*j/4) % 4;
|
||||
if (mode==0) mode = SDL_BLENDMODE_MASK;
|
||||
else if (mode==1) mode = SDL_BLENDMODE_BLEND;
|
||||
else if (mode==2) mode = SDL_BLENDMODE_ADD;
|
||||
else if (mode==3) mode = SDL_BLENDMODE_MOD;
|
||||
ret = SDL_SetSurfaceBlendMode( face, mode );
|
||||
if (SDL_ATassert( "SDL_SetSurfaceBlendMode", ret == 0))
|
||||
return;
|
||||
|
||||
/* Blitting. */
|
||||
rect.x = i;
|
||||
rect.y = j;
|
||||
ret = SDL_BlitSurface( face, NULL, testsur, &rect );
|
||||
if (SDL_ATassert( "SDL_BlitSurface", ret == 0))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* Check to see if matches. */
|
||||
if (SDL_ATassert( "Blitting blending output not the same (using SDL_BLEND_*).",
|
||||
surface_compare( testsur, &img_blendAll )==0 ))
|
||||
return;
|
||||
|
||||
/* Clean up. */
|
||||
SDL_FreeSurface( face );
|
||||
|
||||
SDL_ATend();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Runs all the tests on the surface.
|
||||
*
|
||||
* @param testsur Surface to run tests on.
|
||||
*/
|
||||
void surface_runTests( SDL_Surface *testsur )
|
||||
{
|
||||
/* Software surface blitting. */
|
||||
surface_testPrimitives( testsur );
|
||||
surface_testPrimitivesBlend( testsur );
|
||||
surface_testBlit( testsur );
|
||||
surface_testBlitBlend( testsur );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Entry point.
|
||||
*/
|
||||
#ifdef TEST_STANDALONE
|
||||
int main( int argc, const char *argv[] )
|
||||
{
|
||||
(void) argc;
|
||||
(void) argv;
|
||||
#else /* TEST_STANDALONE */
|
||||
int test_surface (void)
|
||||
{
|
||||
#endif /* TEST_STANDALONE */
|
||||
int ret;
|
||||
SDL_Surface *testsur;
|
||||
|
||||
SDL_ATinit( "SDL_Surface" );
|
||||
|
||||
SDL_ATbegin( "Initializing" );
|
||||
/* Initializes the SDL subsystems. */
|
||||
ret = SDL_Init(0);
|
||||
if (SDL_ATassert( "SDL_Init(0)", ret == 0))
|
||||
goto err;
|
||||
|
||||
/* Now run on the video mode. */
|
||||
ret = SDL_InitSubSystem( SDL_INIT_VIDEO );
|
||||
if (SDL_ATassert( "SDL_InitSubSystem( SDL_INIT_VIDEO )", ret == 0))
|
||||
goto err;
|
||||
|
||||
/*
|
||||
* Surface on surface tests.
|
||||
*/
|
||||
/* Create the test surface. */
|
||||
testsur = SDL_CreateRGBSurface( 0, 80, 60, 32,
|
||||
RMASK, GMASK, BMASK, AMASK );
|
||||
if (SDL_ATassert( "SDL_CreateRGBSurface", testsur != NULL))
|
||||
goto err;
|
||||
SDL_ATend();
|
||||
/* Run surface on surface tests. */
|
||||
surface_testLoad( testsur );
|
||||
surface_runTests( testsur );
|
||||
/* Clean up. */
|
||||
SDL_FreeSurface( testsur );
|
||||
|
||||
/* Exit SDL. */
|
||||
SDL_Quit();
|
||||
|
||||
return SDL_ATfinish();
|
||||
|
||||
err:
|
||||
return SDL_ATfinish();
|
||||
}
|
||||
|
18
test/automated/surface/surface.h
Normal file
18
test/automated/surface/surface.h
Normal file
|
@ -0,0 +1,18 @@
|
|||
/**
|
||||
* Part of SDL test suite.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _TEST_SURFACE
|
||||
# define _TEST_SURFACE
|
||||
|
||||
|
||||
int test_surface (void);
|
||||
|
||||
|
||||
#endif /* _TEST_SURFACE */
|
||||
|
186
test/automated/testsdl.c
Normal file
186
test/automated/testsdl.c
Normal file
|
@ -0,0 +1,186 @@
|
|||
/*
|
||||
* SDL test suite framework code.
|
||||
*
|
||||
* Written by Edgar Simo "bobbens"
|
||||
*
|
||||
* Released under Public Domain.
|
||||
*/
|
||||
|
||||
|
||||
#include "SDL.h"
|
||||
#include "SDL_at.h"
|
||||
|
||||
#include "platform/platform.h"
|
||||
#include "rwops/rwops.h"
|
||||
#include "surface/surface.h"
|
||||
#include "render/render.h"
|
||||
#include "audio/audio.h"
|
||||
|
||||
#include <stdio.h> /* printf */
|
||||
#include <stdlib.h> /* exit */
|
||||
#include <unistd.h> /* getopt */
|
||||
#include <getopt.h> /* getopt_long */
|
||||
#include <string.h> /* strcmp */
|
||||
|
||||
|
||||
/*
|
||||
* Tests to run.
|
||||
*/
|
||||
static int run_manual = 0; /**< Run manual tests. */
|
||||
/* Manual. */
|
||||
/* Automatic. */
|
||||
static int run_platform = 1; /**< Run platform tests. */
|
||||
static int run_rwops = 1; /**< Run RWops tests. */
|
||||
static int run_surface = 1; /**< Run surface tests. */
|
||||
static int run_render = 1; /**< Run render tests. */
|
||||
static int run_audio = 1; /**< Run audio tests. */
|
||||
|
||||
/*
|
||||
* Prototypes.
|
||||
*/
|
||||
static void print_usage( const char *name );
|
||||
static void parse_options( int argc, char *argv[] );
|
||||
|
||||
|
||||
/**
|
||||
* @brief Displays program usage.
|
||||
*/
|
||||
static void print_usage( const char *name )
|
||||
{
|
||||
printf("Usage: %s [OPTIONS]\n", name);
|
||||
printf("Options are:\n");
|
||||
printf(" -m, --manual enables tests that require user interaction\n");
|
||||
printf(" --noplatform do not run the platform tests\n");
|
||||
printf(" --norwops do not run the rwops tests\n");
|
||||
printf(" --nosurface do not run the surface tests\n");
|
||||
printf(" --norender do not run the render tests\n");
|
||||
printf(" --noaudio do not run the audio tests\n");
|
||||
printf(" -v, --verbose increases verbosity level by 1 for each -v\n");
|
||||
printf(" -q, --quiet only displays errors\n");
|
||||
printf(" -h, --help display this message and exit\n");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Handles the options.
|
||||
*/
|
||||
static void parse_options( int argc, char *argv[] )
|
||||
{
|
||||
static struct option long_options[] = {
|
||||
{ "manual", no_argument, 0, 'm' },
|
||||
{ "noplatform", no_argument, 0, 0 },
|
||||
{ "norwops", no_argument, 0, 0 },
|
||||
{ "nosurface", no_argument, 0, 0 },
|
||||
{ "norender", no_argument, 0, 0 },
|
||||
{ "noaudio", no_argument, 0, 0 },
|
||||
{ "verbose", no_argument, 0, 'v' },
|
||||
{ "quiet", no_argument, 0, 'q' },
|
||||
{ "help", no_argument, 0, 'h' },
|
||||
{NULL,0,0,0}
|
||||
};
|
||||
int option_index = 0;
|
||||
int c = 0;
|
||||
int i;
|
||||
const char *str;
|
||||
|
||||
/* Iterate over options. */
|
||||
while ((c = getopt_long( argc, argv,
|
||||
"vqh",
|
||||
long_options, &option_index)) != -1) {
|
||||
|
||||
/* Handle options. */
|
||||
switch (c) {
|
||||
case 0:
|
||||
str = long_options[option_index].name;
|
||||
if (strcmp(str,"noplatform")==0)
|
||||
run_platform = 0;
|
||||
else if (strcmp(str,"norwops")==0)
|
||||
run_rwops = 0;
|
||||
else if (strcmp(str,"nosurface")==0)
|
||||
run_surface = 0;
|
||||
else if (strcmp(str,"norender")==0)
|
||||
run_render = 0;
|
||||
else if (strcmp(str,"noaudio")==0)
|
||||
run_audio = 0;
|
||||
break;
|
||||
|
||||
/* Manual. */
|
||||
case 'm':
|
||||
run_manual = 1;
|
||||
break;
|
||||
|
||||
/* Verbosity. */
|
||||
case 'v':
|
||||
SDL_ATgeti( SDL_AT_VERBOSE, &i );
|
||||
SDL_ATseti( SDL_AT_VERBOSE, i+1 );
|
||||
break;
|
||||
|
||||
/* Quiet. */
|
||||
case 'q':
|
||||
SDL_ATseti( SDL_AT_QUIET, 1 );
|
||||
break;
|
||||
|
||||
/* Help. */
|
||||
case 'h':
|
||||
print_usage( argv[0] );
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Main entry point.
|
||||
*/
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
int failed;
|
||||
int rev;
|
||||
SDL_version ver;
|
||||
|
||||
/* Get options. */
|
||||
parse_options( argc, argv );
|
||||
|
||||
/* Defaults. */
|
||||
failed = 0;
|
||||
|
||||
/* Print some text if verbose. */
|
||||
SDL_GetVersion( &ver );
|
||||
rev = SDL_GetRevision();
|
||||
SDL_ATprintVerbose( 1, "Running tests with SDL %d.%d.%d revision %d\n",
|
||||
ver.major, ver.minor, ver.patch, rev );
|
||||
|
||||
/* Automatic tests. */
|
||||
if (run_platform)
|
||||
failed += test_platform();
|
||||
if (run_rwops)
|
||||
failed += test_rwops();
|
||||
if (run_surface)
|
||||
failed += test_surface();
|
||||
if (run_render)
|
||||
failed += test_render();
|
||||
if (run_audio)
|
||||
failed += test_audio();
|
||||
|
||||
/* Manual tests. */
|
||||
if (run_manual) {
|
||||
}
|
||||
|
||||
/* Display more information if failed. */
|
||||
if (failed > 0) {
|
||||
SDL_ATprintErr( "Tests run with SDL %d.%d.%d revision %d\n",
|
||||
ver.major, ver.minor, ver.patch, rev );
|
||||
SDL_ATprintErr( "System is running %s and is %s endian\n",
|
||||
platform_getPlatform(),
|
||||
#ifdef SDL_LIL_ENDIAN
|
||||
"little"
|
||||
#else
|
||||
"big"
|
||||
#endif
|
||||
);
|
||||
}
|
||||
|
||||
return failed;
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue