From daa5a00a989dbae8cf35a05e252c4f3ef2436923 Mon Sep 17 00:00:00 2001 From: "gregory.hainaut@gmail.com" Date: Sun, 5 Jun 2011 09:57:49 +0000 Subject: [PATCH] 3rdparty: remove the heavy (+90MBytes) SDL test directory. Completely useless and save us few minutes of download git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4712 96395faa-99c1-11dd-bbfe-3dabce05a288 --- 3rdparty/SDL-1.3.0-5387/test/.gdbinit | 3 - 3rdparty/SDL-1.3.0-5387/test/COPYING | 8 - 3rdparty/SDL-1.3.0-5387/test/Makefile.in | 227 - 3rdparty/SDL-1.3.0-5387/test/README | 41 - 3rdparty/SDL-1.3.0-5387/test/acinclude.m4 | 181 - 3rdparty/SDL-1.3.0-5387/test/aclocal.m4 | 181 - 3rdparty/SDL-1.3.0-5387/test/autogen.sh | 12 - .../SDL-1.3.0-5387/test/automated/Makefile | 60 - 3rdparty/SDL-1.3.0-5387/test/automated/README | 59 - .../SDL-1.3.0-5387/test/automated/SDL_at.c | 331 -- .../SDL-1.3.0-5387/test/automated/SDL_at.h | 158 - .../test/automated/audio/audio.c | 89 - .../test/automated/audio/audio.h | 18 - .../test/automated/common/common.c | 110 - .../test/automated/common/common.h | 42 - .../test/automated/common/images.h | 22 - .../test/automated/common/img_blit.c | 1454 ----- .../test/automated/common/img_blitblend.c | 2690 --------- .../test/automated/common/img_face.c | 196 - .../test/automated/common/img_primitives.c | 463 -- .../automated/common/img_primitivesblend.c | 645 --- .../test/automated/platform/platform.c | 172 - .../test/automated/platform/platform.h | 18 - .../SDL-1.3.0-5387/test/automated/rect/rect.c | 156 - .../SDL-1.3.0-5387/test/automated/rect/rect.h | 18 - .../test/automated/render/render.c | 1082 ---- .../test/automated/render/render.h | 18 - .../test/automated/rwops/TestSupportRWops.h | 14 - .../automated/rwops/TestSupportRWops_Cocoa.m | 89 - .../rwops/TestSupportRWops_Generic.c | 32 - .../SDL-1.3.0-5387/test/automated/rwops/read | 1 - .../test/automated/rwops/rwops.c | 272 - .../test/automated/rwops/rwops.h | 18 - .../test/automated/surface/surface.c | 449 -- .../test/automated/surface/surface.h | 18 - .../SDL-1.3.0-5387/test/automated/testsdl.c | 185 - 3rdparty/SDL-1.3.0-5387/test/checkkeys.c | 158 - 3rdparty/SDL-1.3.0-5387/test/common.c | 1103 ---- 3rdparty/SDL-1.3.0-5387/test/common.h | 77 - 3rdparty/SDL-1.3.0-5387/test/configure | 4908 ----------------- 3rdparty/SDL-1.3.0-5387/test/configure.in | 150 - 3rdparty/SDL-1.3.0-5387/test/gcc-fat.sh | 110 - 3rdparty/SDL-1.3.0-5387/test/graywin.c | 248 - 3rdparty/SDL-1.3.0-5387/test/icon.bmp | Bin 578 -> 0 bytes 3rdparty/SDL-1.3.0-5387/test/loopwave.c | 117 - 3rdparty/SDL-1.3.0-5387/test/moose.dat | Bin 56320 -> 0 bytes .../test/nds-test-progs/general/Makefile | 132 - .../test/nds-test-progs/general/source/main.c | 96 - .../test/nds-test-progs/sprite/Makefile | 132 - .../nds-test-progs/sprite/source/common.c | 965 ---- .../nds-test-progs/sprite/source/common.h | 48 - .../nds-test-progs/sprite/source/testsprite.c | 316 -- .../test/nds-test-progs/sprite2/Makefile | 132 - .../test/nds-test-progs/sprite2/icon.bmp | Bin 578 -> 0 bytes .../nds-test-progs/sprite2/source/common.c | 965 ---- .../nds-test-progs/sprite2/source/common.h | 48 - .../sprite2/source/testsprite2.c | 270 - 3rdparty/SDL-1.3.0-5387/test/picture.xbm | 14 - 3rdparty/SDL-1.3.0-5387/test/sample.bmp | Bin 69202 -> 0 bytes 3rdparty/SDL-1.3.0-5387/test/sample.wav | Bin 121946 -> 0 bytes .../test/shapes/p01_shape24.bmp | Bin 1228938 -> 0 bytes .../test/shapes/p01_shape32alpha.bmp | Bin 1638538 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p01_shape8.bmp | Bin 410678 -> 0 bytes .../test/shapes/p02_shape24.bmp | Bin 1228938 -> 0 bytes .../test/shapes/p02_shape32alpha.bmp | Bin 1638538 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p02_shape8.bmp | Bin 410678 -> 0 bytes .../test/shapes/p03_shape24.bmp | Bin 1228938 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p03_shape8.bmp | Bin 410678 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p04_shape1.bmp | Bin 51346 -> 0 bytes .../test/shapes/p04_shape24.bmp | Bin 1228938 -> 0 bytes .../test/shapes/p04_shape32alpha.bmp | Bin 1638538 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p04_shape8.bmp | Bin 410678 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p05_shape8.bmp | Bin 410678 -> 0 bytes .../test/shapes/p06_shape1alpha.bmp | Bin 1638538 -> 0 bytes .../test/shapes/p06_shape24.bmp | Bin 1228938 -> 0 bytes .../test/shapes/p06_shape32alpha.bmp | Bin 1638538 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p06_shape8.bmp | Bin 410678 -> 0 bytes .../test/shapes/p07_shape24.bmp | Bin 1228938 -> 0 bytes .../test/shapes/p07_shape32alpha.bmp | Bin 1638538 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p07_shape8.bmp | Bin 410678 -> 0 bytes .../test/shapes/p08_shape24.bmp | Bin 1228938 -> 0 bytes .../test/shapes/p08_shape32alpha.bmp | Bin 1638538 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p08_shape8.bmp | Bin 410678 -> 0 bytes .../test/shapes/p09_shape24.bmp | Bin 1228938 -> 0 bytes .../test/shapes/p09_shape32alpha.bmp | Bin 1638538 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p09_shape8.bmp | Bin 410678 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p10_shape1.bmp | Bin 51346 -> 0 bytes .../test/shapes/p10_shape24.bmp | Bin 1228938 -> 0 bytes .../test/shapes/p10_shape32alpha.bmp | Bin 1638538 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p10_shape8.bmp | Bin 410678 -> 0 bytes .../test/shapes/p11_shape24.bmp | Bin 1228938 -> 0 bytes .../test/shapes/p11_shape32alpha.bmp | Bin 1638538 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p11_shape8.bmp | Bin 410678 -> 0 bytes .../test/shapes/p12_shape24.bmp | Bin 1228938 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p12_shape8.bmp | Bin 410678 -> 0 bytes .../test/shapes/p13_shape24.bmp | Bin 1228938 -> 0 bytes .../test/shapes/p13_shape32alpha.bmp | Bin 1638538 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p13_shape8.bmp | Bin 410678 -> 0 bytes .../test/shapes/p14_shape24.bmp | Bin 1228938 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p14_shape8.bmp | Bin 410678 -> 0 bytes .../test/shapes/p15_shape24.bmp | Bin 1228938 -> 0 bytes .../test/shapes/p15_shape32alpha.bmp | Bin 1638538 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p15_shape8.bmp | Bin 410678 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p16_shape1.bmp | Bin 51346 -> 0 bytes .../test/shapes/p16_shape24.bmp | Bin 1228938 -> 0 bytes .../SDL-1.3.0-5387/test/shapes/p16_shape8.bmp | Bin 410678 -> 0 bytes .../test/shapes/trollface_24.bmp | Bin 196662 -> 0 bytes .../test/shapes/trollface_32alpha.bmp | Bin 262198 -> 0 bytes 3rdparty/SDL-1.3.0-5387/test/testalpha.c | 541 -- 3rdparty/SDL-1.3.0-5387/test/testatomic.c | 703 --- 3rdparty/SDL-1.3.0-5387/test/testaudioinfo.c | 54 - 3rdparty/SDL-1.3.0-5387/test/testbitmap.c | 192 - 3rdparty/SDL-1.3.0-5387/test/testblitspeed.c | 422 -- 3rdparty/SDL-1.3.0-5387/test/testcursor.c | 224 - 3rdparty/SDL-1.3.0-5387/test/testdraw2.c | 265 - 3rdparty/SDL-1.3.0-5387/test/testdyngl.c | 210 - 3rdparty/SDL-1.3.0-5387/test/testdyngles.c | 215 - 3rdparty/SDL-1.3.0-5387/test/testerror.c | 64 - 3rdparty/SDL-1.3.0-5387/test/testfile.c | 272 - 3rdparty/SDL-1.3.0-5387/test/testfill.c | 107 - 3rdparty/SDL-1.3.0-5387/test/testgesture.c | 299 - 3rdparty/SDL-1.3.0-5387/test/testgl.c | 771 --- 3rdparty/SDL-1.3.0-5387/test/testgl2.c | 347 -- 3rdparty/SDL-1.3.0-5387/test/testgles.c | 334 -- 3rdparty/SDL-1.3.0-5387/test/testhaptic.c | 277 - 3rdparty/SDL-1.3.0-5387/test/testhread.c | 76 - 3rdparty/SDL-1.3.0-5387/test/testiconv.c | 77 - 3rdparty/SDL-1.3.0-5387/test/testime.c | 376 -- .../SDL-1.3.0-5387/test/testintersections.c | 325 -- 3rdparty/SDL-1.3.0-5387/test/testjoystick.c | 193 - 3rdparty/SDL-1.3.0-5387/test/testkeys.c | 26 - 3rdparty/SDL-1.3.0-5387/test/testloadso.c | 71 - 3rdparty/SDL-1.3.0-5387/test/testlock.c | 111 - 3rdparty/SDL-1.3.0-5387/test/testmultiaudio.c | 141 - 3rdparty/SDL-1.3.0-5387/test/testnative.c | 221 - 3rdparty/SDL-1.3.0-5387/test/testnative.h | 37 - .../SDL-1.3.0-5387/test/testnativecocoa.m | 51 - 3rdparty/SDL-1.3.0-5387/test/testnativew32.c | 75 - 3rdparty/SDL-1.3.0-5387/test/testnativex11.c | 42 - 3rdparty/SDL-1.3.0-5387/test/testoverlay.c | 560 -- 3rdparty/SDL-1.3.0-5387/test/testoverlay2.c | 584 -- 3rdparty/SDL-1.3.0-5387/test/testplatform.c | 193 - 3rdparty/SDL-1.3.0-5387/test/testpower.c | 66 - 3rdparty/SDL-1.3.0-5387/test/testresample.c | 104 - 3rdparty/SDL-1.3.0-5387/test/testrumble.c | 133 - 3rdparty/SDL-1.3.0-5387/test/testscale.c | 185 - 3rdparty/SDL-1.3.0-5387/test/testsem.c | 112 - 3rdparty/SDL-1.3.0-5387/test/testshader.c | 487 -- 3rdparty/SDL-1.3.0-5387/test/testshape.c | 193 - 3rdparty/SDL-1.3.0-5387/test/testsprite.c | 328 -- 3rdparty/SDL-1.3.0-5387/test/testsprite2.c | 329 -- .../SDL-1.3.0-5387/test/testspriteminimal.c | 166 - 3rdparty/SDL-1.3.0-5387/test/teststreaming.c | 152 - 3rdparty/SDL-1.3.0-5387/test/testtimer.c | 90 - 3rdparty/SDL-1.3.0-5387/test/testver.c | 33 - 3rdparty/SDL-1.3.0-5387/test/testvidinfo.c | 535 -- 3rdparty/SDL-1.3.0-5387/test/testwin.c | 340 -- 3rdparty/SDL-1.3.0-5387/test/testwm.c | 454 -- 3rdparty/SDL-1.3.0-5387/test/testwm2.c | 72 - 3rdparty/SDL-1.3.0-5387/test/threadwin.c | 326 -- 3rdparty/SDL-1.3.0-5387/test/torturethread.c | 96 - 3rdparty/SDL-1.3.0-5387/test/utf8.txt | 287 - 162 files changed, 32465 deletions(-) delete mode 100644 3rdparty/SDL-1.3.0-5387/test/.gdbinit delete mode 100644 3rdparty/SDL-1.3.0-5387/test/COPYING delete mode 100644 3rdparty/SDL-1.3.0-5387/test/Makefile.in delete mode 100644 3rdparty/SDL-1.3.0-5387/test/README delete mode 100644 3rdparty/SDL-1.3.0-5387/test/acinclude.m4 delete mode 100644 3rdparty/SDL-1.3.0-5387/test/aclocal.m4 delete mode 100755 3rdparty/SDL-1.3.0-5387/test/autogen.sh delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/Makefile delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/README delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/SDL_at.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/SDL_at.h delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/audio/audio.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/audio/audio.h delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/common/common.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/common/common.h delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/common/images.h delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/common/img_blit.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/common/img_blitblend.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/common/img_face.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/common/img_primitives.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/common/img_primitivesblend.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/platform/platform.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/platform/platform.h delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/rect/rect.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/rect/rect.h delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/render/render.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/render/render.h delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/rwops/TestSupportRWops.h delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/rwops/TestSupportRWops_Cocoa.m delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/rwops/TestSupportRWops_Generic.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/rwops/read delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/rwops/rwops.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/rwops/rwops.h delete mode 100755 3rdparty/SDL-1.3.0-5387/test/automated/surface/surface.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/surface/surface.h delete mode 100644 3rdparty/SDL-1.3.0-5387/test/automated/testsdl.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/checkkeys.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/common.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/common.h delete mode 100755 3rdparty/SDL-1.3.0-5387/test/configure delete mode 100644 3rdparty/SDL-1.3.0-5387/test/configure.in delete mode 100755 3rdparty/SDL-1.3.0-5387/test/gcc-fat.sh delete mode 100644 3rdparty/SDL-1.3.0-5387/test/graywin.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/icon.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/loopwave.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/moose.dat delete mode 100755 3rdparty/SDL-1.3.0-5387/test/nds-test-progs/general/Makefile delete mode 100755 3rdparty/SDL-1.3.0-5387/test/nds-test-progs/general/source/main.c delete mode 100755 3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite/Makefile delete mode 100755 3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite/source/common.c delete mode 100755 3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite/source/common.h delete mode 100755 3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite/source/testsprite.c delete mode 100755 3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite2/Makefile delete mode 100644 3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite2/icon.bmp delete mode 100755 3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite2/source/common.c delete mode 100755 3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite2/source/common.h delete mode 100755 3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite2/source/testsprite2.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/picture.xbm delete mode 100644 3rdparty/SDL-1.3.0-5387/test/sample.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/sample.wav delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p01_shape24.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p01_shape32alpha.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p01_shape8.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p02_shape24.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p02_shape32alpha.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p02_shape8.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p03_shape24.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p03_shape8.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p04_shape1.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p04_shape24.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p04_shape32alpha.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p04_shape8.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p05_shape8.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p06_shape1alpha.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p06_shape24.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p06_shape32alpha.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p06_shape8.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p07_shape24.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p07_shape32alpha.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p07_shape8.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p08_shape24.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p08_shape32alpha.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p08_shape8.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p09_shape24.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p09_shape32alpha.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p09_shape8.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p10_shape1.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p10_shape24.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p10_shape32alpha.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p10_shape8.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p11_shape24.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p11_shape32alpha.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p11_shape8.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p12_shape24.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p12_shape8.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p13_shape24.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p13_shape32alpha.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p13_shape8.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p14_shape24.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p14_shape8.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p15_shape24.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p15_shape32alpha.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p15_shape8.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p16_shape1.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p16_shape24.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/p16_shape8.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/trollface_24.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/shapes/trollface_32alpha.bmp delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testalpha.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testatomic.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testaudioinfo.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testbitmap.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testblitspeed.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testcursor.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testdraw2.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testdyngl.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testdyngles.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testerror.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testfile.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testfill.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testgesture.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testgl.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testgl2.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testgles.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testhaptic.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testhread.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testiconv.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testime.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testintersections.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testjoystick.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testkeys.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testloadso.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testlock.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testmultiaudio.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testnative.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testnative.h delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testnativecocoa.m delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testnativew32.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testnativex11.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testoverlay.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testoverlay2.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testplatform.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testpower.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testresample.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testrumble.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testscale.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testsem.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testshader.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testshape.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testsprite.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testsprite2.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testspriteminimal.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/teststreaming.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testtimer.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testver.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testvidinfo.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testwin.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testwm.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/testwm2.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/threadwin.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/torturethread.c delete mode 100644 3rdparty/SDL-1.3.0-5387/test/utf8.txt diff --git a/3rdparty/SDL-1.3.0-5387/test/.gdbinit b/3rdparty/SDL-1.3.0-5387/test/.gdbinit deleted file mode 100644 index 63ebf2cbf2..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/.gdbinit +++ /dev/null @@ -1,3 +0,0 @@ -handle SIGUSR1 pass noprint -handle SIGUSR2 pass noprint -break main diff --git a/3rdparty/SDL-1.3.0-5387/test/COPYING b/3rdparty/SDL-1.3.0-5387/test/COPYING deleted file mode 100644 index c4c27e0968..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/COPYING +++ /dev/null @@ -1,8 +0,0 @@ - -The test programs in this directory tree are for demonstrating and -testing the functionality of the SDL library, and are placed in the -public domain. - -October 28, 1997 --- - Sam Lantinga (slouken@libsdl.org) diff --git a/3rdparty/SDL-1.3.0-5387/test/Makefile.in b/3rdparty/SDL-1.3.0-5387/test/Makefile.in deleted file mode 100644 index 1a9949a1d7..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/Makefile.in +++ /dev/null @@ -1,227 +0,0 @@ -# Makefile to build the SDL tests - -srcdir = @srcdir@ - -CC = @CC@ -EXE = @EXE@ -CFLAGS = @CFLAGS@ -LIBS = @LIBS@ - -TARGETS = \ - checkkeys$(EXE) \ - graywin$(EXE) \ - loopwave$(EXE) \ - testalpha$(EXE) \ - testatomic$(EXE) \ - testaudioinfo$(EXE) \ - testbitmap$(EXE) \ - testblitspeed$(EXE) \ - testcursor$(EXE) \ - testdraw2$(EXE) \ - testdyngl$(EXE) \ - testdyngles$(EXE) \ - testerror$(EXE) \ - testfile$(EXE) \ - testfill$(EXE) \ - testgesture$(EXE) \ - testgl$(EXE) \ - testgl2$(EXE) \ - testgles$(EXE) \ - testhaptic$(EXE) \ - testrumble$(EXE) \ - testhread$(EXE) \ - testiconv$(EXE) \ - testime$(EXE) \ - testintersections$(EXE) \ - testjoystick$(EXE) \ - testkeys$(EXE) \ - testloadso$(EXE) \ - testlock$(EXE) \ - testmultiaudio$(EXE) \ - testoverlay$(EXE) \ - testoverlay2$(EXE) \ - testplatform$(EXE) \ - testpower$(EXE) \ - testresample$(EXE) \ - testscale$(EXE) \ - testsem$(EXE) \ - testshader$(EXE) \ - testshape$(EXE) \ - testsprite$(EXE) \ - testsprite2$(EXE) \ - testspriteminimal$(EXE) \ - teststreaming$(EXE) \ - testtimer$(EXE) \ - testver$(EXE) \ - testvidinfo$(EXE) \ - testwin$(EXE) \ - testwm$(EXE) \ - testwm2$(EXE) \ - threadwin$(EXE) \ - torturethread$(EXE) \ - -all: Makefile $(TARGETS) - -Makefile: $(srcdir)/Makefile.in - $(SHELL) config.status $@ - -checkkeys$(EXE): $(srcdir)/checkkeys.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -graywin$(EXE): $(srcdir)/graywin.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -loopwave$(EXE): $(srcdir)/loopwave.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testresample$(EXE): $(srcdir)/testresample.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testaudioinfo$(EXE): $(srcdir)/testaudioinfo.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testmultiaudio$(EXE): $(srcdir)/testmultiaudio.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testalpha$(EXE): $(srcdir)/testalpha.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) @MATHLIB@ - -testatomic$(EXE): $(srcdir)/testatomic.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testbitmap$(EXE): $(srcdir)/testbitmap.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testblitspeed$(EXE): $(srcdir)/testblitspeed.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testcursor$(EXE): $(srcdir)/testcursor.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testintersections$(EXE): $(srcdir)/testintersections.c $(srcdir)/common.c - $(CC) -o $@ $(srcdir)/testintersections.c $(srcdir)/common.c $(CFLAGS) $(LIBS) - -testdraw2$(EXE): $(srcdir)/testdraw2.c $(srcdir)/common.c - $(CC) -o $@ $(srcdir)/testdraw2.c $(srcdir)/common.c $(CFLAGS) $(LIBS) - -testdyngl$(EXE): $(srcdir)/testdyngl.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testdyngles$(EXE): $(srcdir)/testdyngles.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testerror$(EXE): $(srcdir)/testerror.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testfile$(EXE): $(srcdir)/testfile.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testfill$(EXE): $(srcdir)/testfill.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testgesture$(EXE): $(srcdir)/testgesture.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) @MATHLIB@ - -testgl$(EXE): $(srcdir)/testgl.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) @GLLIB@ @MATHLIB@ - -testgl2$(EXE): $(srcdir)/testgl2.c $(srcdir)/common.c - $(CC) -o $@ $(srcdir)/testgl2.c $(srcdir)/common.c $(CFLAGS) $(LIBS) @GLLIB@ @MATHLIB@ - -testgles$(EXE): $(srcdir)/testgles.c $(srcdir)/common.c - $(CC) -o $@ $(srcdir)/testgles.c $(srcdir)/common.c $(CFLAGS) $(LIBS) @GLLIB@ @MATHLIB@ - -testhaptic$(EXE): $(srcdir)/testhaptic.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testrumble$(EXE): $(srcdir)/testrumble.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testhread$(EXE): $(srcdir)/testhread.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testiconv$(EXE): $(srcdir)/testiconv.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testime$(EXE): $(srcdir)/testime.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) @SDL_TTF_LIB@ - -testjoystick$(EXE): $(srcdir)/testjoystick.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testkeys$(EXE): $(srcdir)/testkeys.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testloadso$(EXE): $(srcdir)/testloadso.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testlock$(EXE): $(srcdir)/testlock.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testoverlay2$(EXE): $(srcdir)/testoverlay2.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testoverlay$(EXE): $(srcdir)/testoverlay.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testplatform$(EXE): $(srcdir)/testplatform.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testpower$(EXE): $(srcdir)/testpower.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testscale$(EXE): $(srcdir)/testscale.c $(srcdir)/common.c - $(CC) -o $@ $(srcdir)/testscale.c $(srcdir)/common.c $(CFLAGS) $(LIBS) - -testsem$(EXE): $(srcdir)/testsem.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testshader$(EXE): $(srcdir)/testshader.c - $(CC) -o $@ $(srcdir)/testshader.c $(CFLAGS) $(LIBS) @GLLIB@ @MATHLIB@ - -testshape$(EXE): $(srcdir)/testshape.c - $(CC) -o $@ $? -std=c99 $(CFLAGS) $(LIBS) - -testsprite$(EXE): $(srcdir)/testsprite.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) @MATHLIB@ - -testsprite2$(EXE): $(srcdir)/testsprite2.c $(srcdir)/common.c - $(CC) -o $@ $(srcdir)/testsprite2.c $(srcdir)/common.c $(CFLAGS) $(LIBS) @MATHLIB@ - -testspriteminimal$(EXE): $(srcdir)/testspriteminimal.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) @MATHLIB@ - -teststreaming$(EXE): $(srcdir)/teststreaming.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) @MATHLIB@ - -testtimer$(EXE): $(srcdir)/testtimer.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testver$(EXE): $(srcdir)/testver.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testvidinfo$(EXE): $(srcdir)/testvidinfo.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testwin$(EXE): $(srcdir)/testwin.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testwm$(EXE): $(srcdir)/testwm.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -testwm2$(EXE): $(srcdir)/testwm2.c $(srcdir)/common.c - $(CC) -o $@ $(srcdir)/testwm2.c $(srcdir)/common.c $(CFLAGS) $(LIBS) - -threadwin$(EXE): $(srcdir)/threadwin.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -torturethread$(EXE): $(srcdir)/torturethread.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - -clean: - rm -f $(TARGETS) - -distclean: clean - rm -f Makefile - rm -f config.status config.cache config.log - rm -rf $(srcdir)/autom4te* diff --git a/3rdparty/SDL-1.3.0-5387/test/README b/3rdparty/SDL-1.3.0-5387/test/README deleted file mode 100644 index 38874f7941..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/README +++ /dev/null @@ -1,41 +0,0 @@ - -These are test programs for the SDL library: - - checkkeys Watch the key events to check the keyboard - graywin Display a gray gradient and center mouse on spacebar - loopwave Audio test -- loop playing a WAV file - testalpha Display an alpha faded icon -- paint with mouse - testaudioinfo Lists audio device capabilities - testbitmap Test displaying 1-bit bitmaps - testblitspeed Tests performance of SDL's blitters and converters. - testcdrom Sample audio CD control program - testcursor Tests custom mouse cursor - testdyngl Tests dynamically loading OpenGL library - testerror Tests multi-threaded error handling - testfile Tests RWops layer - testgamma Tests video device gamma ramp - testgl A very simple example of using OpenGL with SDL - testgl2 An even simpler example using the SDL 1.3 API - testhread Hacked up test of multi-threading - testiconv Tests international string conversion - testjoystick List joysticks and watch joystick events - testkeys List the available keyboard keys - testloadso Tests the loadable library layer - testlock Hacked up test of multi-threading and locking - testmultiaudio Tests using several audio devices - testoverlay Tests the software/hardware overlay functionality. - testoverlay2 Tests the overlay flickering/scaling during playback. - testpalette Tests palette color cycling - testplatform Tests types, endianness and cpu capabilities - testsem Tests SDL's semaphore implementation - testshape Tests shaped windows - testsprite Example of fast sprite movement on the screen - testsprite2 Improved version of testsprite - testtimer Test the timer facilities - testver Check the version and dynamic loading and endianness - testvidinfo Show the pixel format of the display and perfom the benchmark - testwin Display a BMP image at various depths - testwm Test window manager -- title, icon, events - testwm2 Improved version of testwm - threadwin Test multi-threaded event handling - torturethread Simple test for thread creation/destruction diff --git a/3rdparty/SDL-1.3.0-5387/test/acinclude.m4 b/3rdparty/SDL-1.3.0-5387/test/acinclude.m4 deleted file mode 100644 index b6df43f080..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/acinclude.m4 +++ /dev/null @@ -1,181 +0,0 @@ -# Configure paths for SDL -# Sam Lantinga 9/21/99 -# stolen from Manish Singh -# stolen back from Frank Belew -# stolen from Manish Singh -# Shamelessly stolen from Owen Taylor - -dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) -dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS -dnl -AC_DEFUN([AM_PATH_SDL], -[dnl -dnl Get the cflags and libraries from the sdl-config script -dnl -AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)], - sdl_prefix="$withval", sdl_prefix="") -AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)], - sdl_exec_prefix="$withval", sdl_exec_prefix="") -AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program], - , enable_sdltest=yes) - - if test x$sdl_exec_prefix != x ; then - sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix" - if test x${SDL_CONFIG+set} != xset ; then - SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config - fi - fi - if test x$sdl_prefix != x ; then - sdl_args="$sdl_args --prefix=$sdl_prefix" - if test x${SDL_CONFIG+set} != xset ; then - SDL_CONFIG=$sdl_prefix/bin/sdl-config - fi - fi - - if test "x$prefix" != xNONE; then - PATH="$prefix/bin:$prefix/usr/bin:$PATH" - fi - AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH]) - min_sdl_version=ifelse([$1], ,0.11.0,$1) - AC_MSG_CHECKING(for SDL - version >= $min_sdl_version) - no_sdl="" - if test "$SDL_CONFIG" = "no" ; then - no_sdl=yes - else - SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags` - SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs` - - sdl_major_version=`$SDL_CONFIG $sdl_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - if test "x$enable_sdltest" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" - ac_save_CXXFLAGS="$CXXFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $SDL_CFLAGS" - CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" - LIBS="$LIBS $SDL_LIBS" -dnl -dnl Now check if the installed SDL is sufficiently new. (Also sanity -dnl checks the results of sdl-config to some extent -dnl - rm -f conf.sdltest - AC_TRY_RUN([ -#include -#include -#include -#include "SDL.h" - -char* -my_strdup (char *str) -{ - char *new_str; - - if (str) - { - new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); - strcpy (new_str, str); - } - else - new_str = NULL; - - return new_str; -} - -int main (int argc, char *argv[]) -{ - int major, minor, micro; - char *tmp_version; - - /* This hangs on some systems (?) - system ("touch conf.sdltest"); - */ - { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } - - /* HP/UX 9 (%@#!) writes to sscanf strings */ - tmp_version = my_strdup("$min_sdl_version"); - if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { - printf("%s, bad version string\n", "$min_sdl_version"); - exit(1); - } - - if (($sdl_major_version > major) || - (($sdl_major_version == major) && ($sdl_minor_version > minor)) || - (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) - { - return 0; - } - else - { - printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); - printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro); - printf("*** best to upgrade to the required version.\n"); - printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n"); - printf("*** to point to the correct copy of sdl-config, and remove the file\n"); - printf("*** config.cache before re-running configure\n"); - return 1; - } -} - -],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) - CFLAGS="$ac_save_CFLAGS" - CXXFLAGS="$ac_save_CXXFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - if test "x$no_sdl" = x ; then - AC_MSG_RESULT(yes) - ifelse([$2], , :, [$2]) - else - AC_MSG_RESULT(no) - if test "$SDL_CONFIG" = "no" ; then - echo "*** The sdl-config script installed by SDL could not be found" - echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" - echo "*** your path, or set the SDL_CONFIG environment variable to the" - echo "*** full path to sdl-config." - else - if test -f conf.sdltest ; then - : - else - echo "*** Could not run SDL test program, checking why..." - CFLAGS="$CFLAGS $SDL_CFLAGS" - CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" - LIBS="$LIBS $SDL_LIBS" - AC_TRY_LINK([ -#include -#include "SDL.h" - -int main(int argc, char *argv[]) -{ return 0; } -#undef main -#define main K_and_R_C_main -], [ return 0; ], - [ echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding SDL or finding the wrong" - echo "*** version of SDL. If it is not finding SDL, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], - [ echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means SDL was incorrectly installed" - echo "*** or that you have moved SDL since it was installed. In the latter case, you" - echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ]) - CFLAGS="$ac_save_CFLAGS" - CXXFLAGS="$ac_save_CXXFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - SDL_CFLAGS="" - SDL_LIBS="" - ifelse([$3], , :, [$3]) - fi - AC_SUBST(SDL_CFLAGS) - AC_SUBST(SDL_LIBS) - rm -f conf.sdltest -]) diff --git a/3rdparty/SDL-1.3.0-5387/test/aclocal.m4 b/3rdparty/SDL-1.3.0-5387/test/aclocal.m4 deleted file mode 100644 index b6df43f080..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/aclocal.m4 +++ /dev/null @@ -1,181 +0,0 @@ -# Configure paths for SDL -# Sam Lantinga 9/21/99 -# stolen from Manish Singh -# stolen back from Frank Belew -# stolen from Manish Singh -# Shamelessly stolen from Owen Taylor - -dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) -dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS -dnl -AC_DEFUN([AM_PATH_SDL], -[dnl -dnl Get the cflags and libraries from the sdl-config script -dnl -AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)], - sdl_prefix="$withval", sdl_prefix="") -AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)], - sdl_exec_prefix="$withval", sdl_exec_prefix="") -AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program], - , enable_sdltest=yes) - - if test x$sdl_exec_prefix != x ; then - sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix" - if test x${SDL_CONFIG+set} != xset ; then - SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config - fi - fi - if test x$sdl_prefix != x ; then - sdl_args="$sdl_args --prefix=$sdl_prefix" - if test x${SDL_CONFIG+set} != xset ; then - SDL_CONFIG=$sdl_prefix/bin/sdl-config - fi - fi - - if test "x$prefix" != xNONE; then - PATH="$prefix/bin:$prefix/usr/bin:$PATH" - fi - AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH]) - min_sdl_version=ifelse([$1], ,0.11.0,$1) - AC_MSG_CHECKING(for SDL - version >= $min_sdl_version) - no_sdl="" - if test "$SDL_CONFIG" = "no" ; then - no_sdl=yes - else - SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags` - SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs` - - sdl_major_version=`$SDL_CONFIG $sdl_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ - sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - if test "x$enable_sdltest" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" - ac_save_CXXFLAGS="$CXXFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $SDL_CFLAGS" - CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" - LIBS="$LIBS $SDL_LIBS" -dnl -dnl Now check if the installed SDL is sufficiently new. (Also sanity -dnl checks the results of sdl-config to some extent -dnl - rm -f conf.sdltest - AC_TRY_RUN([ -#include -#include -#include -#include "SDL.h" - -char* -my_strdup (char *str) -{ - char *new_str; - - if (str) - { - new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); - strcpy (new_str, str); - } - else - new_str = NULL; - - return new_str; -} - -int main (int argc, char *argv[]) -{ - int major, minor, micro; - char *tmp_version; - - /* This hangs on some systems (?) - system ("touch conf.sdltest"); - */ - { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } - - /* HP/UX 9 (%@#!) writes to sscanf strings */ - tmp_version = my_strdup("$min_sdl_version"); - if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { - printf("%s, bad version string\n", "$min_sdl_version"); - exit(1); - } - - if (($sdl_major_version > major) || - (($sdl_major_version == major) && ($sdl_minor_version > minor)) || - (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) - { - return 0; - } - else - { - printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); - printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro); - printf("*** best to upgrade to the required version.\n"); - printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n"); - printf("*** to point to the correct copy of sdl-config, and remove the file\n"); - printf("*** config.cache before re-running configure\n"); - return 1; - } -} - -],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) - CFLAGS="$ac_save_CFLAGS" - CXXFLAGS="$ac_save_CXXFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - if test "x$no_sdl" = x ; then - AC_MSG_RESULT(yes) - ifelse([$2], , :, [$2]) - else - AC_MSG_RESULT(no) - if test "$SDL_CONFIG" = "no" ; then - echo "*** The sdl-config script installed by SDL could not be found" - echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" - echo "*** your path, or set the SDL_CONFIG environment variable to the" - echo "*** full path to sdl-config." - else - if test -f conf.sdltest ; then - : - else - echo "*** Could not run SDL test program, checking why..." - CFLAGS="$CFLAGS $SDL_CFLAGS" - CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" - LIBS="$LIBS $SDL_LIBS" - AC_TRY_LINK([ -#include -#include "SDL.h" - -int main(int argc, char *argv[]) -{ return 0; } -#undef main -#define main K_and_R_C_main -], [ return 0; ], - [ echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding SDL or finding the wrong" - echo "*** version of SDL. If it is not finding SDL, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], - [ echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means SDL was incorrectly installed" - echo "*** or that you have moved SDL since it was installed. In the latter case, you" - echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ]) - CFLAGS="$ac_save_CFLAGS" - CXXFLAGS="$ac_save_CXXFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - SDL_CFLAGS="" - SDL_LIBS="" - ifelse([$3], , :, [$3]) - fi - AC_SUBST(SDL_CFLAGS) - AC_SUBST(SDL_LIBS) - rm -f conf.sdltest -]) diff --git a/3rdparty/SDL-1.3.0-5387/test/autogen.sh b/3rdparty/SDL-1.3.0-5387/test/autogen.sh deleted file mode 100755 index 939f34c0f3..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/autogen.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# -# Regenerate configuration files -cp acinclude.m4 aclocal.m4 -found=false -for autoconf in autoconf autoconf259 autoconf-2.59 -do if which $autoconf >/dev/null 2>&1; then $autoconf && found=true; break; fi -done -if test x$found = xfalse; then - echo "Couldn't find autoconf, aborting" - exit 1 -fi diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/Makefile b/3rdparty/SDL-1.3.0-5387/test/automated/Makefile deleted file mode 100644 index d7c8dbedd5..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/Makefile +++ /dev/null @@ -1,60 +0,0 @@ - - -CFLAGS := -W -Wall -Wextra -g `sdl-config --cflags` -DSDL_NO_COMPAT -LDFLAGS := `sdl-config --libs` - -# If it doesn't pick up defaults -#CFLAGS := -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/local/include/SDL -#LDFLAGS := -lm -ldl -lesd -lpthread - -SRC := testsdl.c \ - platform/platform.c \ - rect/rect.c \ - surface/surface.c \ - render/render.c \ - audio/audio.c -COMMON_SRC := SDL_at.c common/common.c -COMMON_INCLUDE := SDL_at.h - -RWOPS_SRC := rwops/rwops.c rwops/TestSupportRWops_Generic.c - -TESTS_ALL := testsdl \ - platform/platform \ - rwops/rwops \ - rect/rect \ - surface/surface \ - render/render \ - audio/audio - - -.PHONY: all clean test - - -all: $(TESTS_ALL) - -test: all - @./testsdl - -testsdl: $(SRC) $(RWOPS_SRC) $(COMMON_SRC) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(SRC) $(RWOPS_SRC) $(COMMON_SRC) - -platform/platform: platform/platform.c $(COMMON_INCLUDE) $(COMMON_SRC) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ platform/platform.c $(COMMON_SRC) -DTEST_STANDALONE - -rwops/rwops: $(RWOPS_SRC) $(COMMON_INCLUDE) $(COMMON_SRC) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(RWOPS_SRC) $(COMMON_SRC) -DTEST_STANDALONE - -rect/rect: rect/rect.c $(COMMON_INCLUDE) $(COMMON_SRC) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ rect/rect.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) diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/README b/3rdparty/SDL-1.3.0-5387/test/automated/README deleted file mode 100644 index e6984a12b5..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/README +++ /dev/null @@ -1,59 +0,0 @@ - - - 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. - diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/SDL_at.c b/3rdparty/SDL-1.3.0-5387/test/automated/SDL_at.c deleted file mode 100644 index 97cd92d513..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/SDL_at.c +++ /dev/null @@ -1,331 +0,0 @@ -/* - * Common code for automated test suite. - * - * Written by Edgar Simo "bobbens" - * - * Released under Public Domain. - */ - - -#include "SDL_at.h" -#include "SDL_stdinc.h" -#include "SDL_error.h" - -#include /* printf/fprintf */ -#include /* va_list */ - - -/* - * 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) - SDL_free(at_suite_msg); - at_suite_msg = NULL; - if (at_test_msg != NULL) - SDL_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 = SDL_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 = SDL_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) - SDL_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 ); - SDL_ATprintErr( " Last SDL error '%s'\n", SDL_GetError() ); - /* 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 ); - SDL_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 message. - */ -int SDL_ATprint( const char *msg, ... ) -{ - va_list ap; - int ret; - - /* Only print if not quiet. */ - if (at_quiet) - 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; -} - - -/** - * @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; -} diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/SDL_at.h b/3rdparty/SDL-1.3.0-5387/test/automated/SDL_at.h deleted file mode 100644 index 6bd9680bdf..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/SDL_at.h +++ /dev/null @@ -1,158 +0,0 @@ -/* - * 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. - */ -int SDL_ATprint( const char *msg, ... ); -/** - * @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 */ - - diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/audio/audio.c b/3rdparty/SDL-1.3.0-5387/test/automated/audio/audio.c deleted file mode 100644 index 0712c396de..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/audio/audio.c +++ /dev/null @@ -1,89 +0,0 @@ -/** - * 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; iw != 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; jh; j++) { - for (i=0; iw; 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: - { - int dist = 0; - Uint8 R, G, B, A; - - SDL_GetRGBA(*(Uint32*)p, sur->format, &R, &G, &B, &A); - - if (img->bytes_per_pixel == 3) { - dist += (R-pd[0])*(R-pd[0]); - dist += (G-pd[1])*(G-pd[1]); - dist += (B-pd[2])*(B-pd[2]); - } else { - dist += (R-pd[0])*(R-pd[0]); - dist += (G-pd[1])*(G-pd[1]); - dist += (B-pd[2])*(B-pd[2]); - dist += (A-pd[3])*(A-pd[3]); - } - /* Allow some difference in blending accuracy */ - if (dist > allowable_error) { - /*printf("pixel %d,%d varies by %d\n", i, j, dist);*/ - ++ret; - } - } - break; - } - } - } - - SDL_UnlockSurface( sur ); - - if (ret) { - SDL_SaveBMP(sur, "fail.bmp"); - - SDL_LockSurface( sur ); - - bpp = sur->format->BytesPerPixel; - - if (bpp == 4) { - for (j=0; jh; j++) { - for (i=0; iw; i++) { - Uint8 R, G, B, A; - p = (Uint8 *)sur->pixels + j * sur->pitch + i * bpp; - pd = (Uint8 *)img->pixel_data + (j*img->width + i) * img->bytes_per_pixel; - - R = pd[0]; - G = pd[1]; - B = pd[2]; - if (img->bytes_per_pixel == 4) { - A = pd[3]; - } else { - A = 0; - } - *(Uint32*)p = (A << 24) | (R << 16) | (G << 8) | B; - } - } - } - - SDL_UnlockSurface( sur ); - - SDL_SaveBMP(sur, "good.bmp"); - } - return ret; -} diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/common/common.h b/3rdparty/SDL-1.3.0-5387/test/automated/common/common.h deleted file mode 100644 index d80d8186e2..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/common/common.h +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Automated SDL test common framework. - * - * Written by Edgar Simo "bobbens" - * - * Released under Public Domain. - */ - - -#ifndef COMMON_H -# define COMMON_H - - -# define FORMAT SDL_PIXELFORMAT_ARGB8888 -# define AMASK 0xff000000 /**< Alpha bit mask. */ -# define RMASK 0x00ff0000 /**< Red bit mask. */ -# define GMASK 0x0000ff00 /**< Green bit mask. */ -# define BMASK 0x000000ff /**< Blue bit mask. */ - - -typedef struct SurfaceImage_s { - int width; - int height; - unsigned int bytes_per_pixel; /* 3:RGB, 4:RGBA */ - const unsigned char pixel_data[]; -} SurfaceImage_t; - -#define ALLOWABLE_ERROR_OPAQUE 0 -#define ALLOWABLE_ERROR_BLENDED 64 - -/** - * @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, int allowable_error ); - - -#endif /* COMMON_H */ - diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/common/images.h b/3rdparty/SDL-1.3.0-5387/test/automated/common/images.h deleted file mode 100644 index 4ee3a94fd9..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/common/images.h +++ /dev/null @@ -1,22 +0,0 @@ - - -#ifndef IMAGES_H -# define IMAGES_H - - -#include "common.h" - - -/* - * Pull in images for testcases. - */ -#include "img_primitives.c" -#include "img_primitivesblend.c" -#include "img_face.c" -#include "img_blit.c" -#include "img_blitblend.c" - - -#endif /* IMAGES_H */ - - diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/common/img_blit.c b/3rdparty/SDL-1.3.0-5387/test/automated/common/img_blit.c deleted file mode 100644 index 85a1c7a0c5..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/common/img_blit.c +++ /dev/null @@ -1,1454 +0,0 @@ -/* GIMP RGB C-Source image dump (blit.c) */ - -static const SurfaceImage_t img_blit = { - 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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0" - "\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377" - "\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377" - "\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0" - "\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0" - "\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0" - "\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0" - "\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0" - "\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0" - "\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0" - "\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\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" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377" - "\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377" - "\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377" - "\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377" - "\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377" - "\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0" - "\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0" - "\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377" - "\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0" - "\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0" - "\377\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\0" - "\0\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\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\0\0\0\0\0\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\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\0\0\0\0\0" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0" - "\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0" - "\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377" - "\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0" - "\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0" - "\377\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\0" - "\0\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\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\0\0\0\0\0\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\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\0\0\0\0\0" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0" - "\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0" - "\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377" - "\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0" - "\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0" - "\377\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\0" - "\0\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\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\0\0\0\0\0\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\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\0\0\0\0\0" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0" - "\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0" - "\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377" - "\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0" - "\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0" - "\377\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\0" - "\0\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\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\0\0\0\0\0\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\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\0\0\0\0\0" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0" - "\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0" - "\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377" - "\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0" - "\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0" - "\377\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\0" - "\0\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\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\0\0\0\0\0\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\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\0\0\0\0\0" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0" - "\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0" - "\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377" - "\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0" - "\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0" - "\377\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\0" - "\0\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\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\0\0\0\0\0\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\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\0\0\0\0\0" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0" - "\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0" - "\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377" - "\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0" - "\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0" - "\377\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\0" - "\0\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\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\0\0\0\0\0\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\0\0\0\377\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\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\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\0\0\0\0\0" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\377\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" - "\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377" - "\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377" - "\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377" - "\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377" - "\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377" - "\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377" - "\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377" - "\0\0\0\0\377\377\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\377" - "\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377" - "\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377" - "\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377" - "\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377" - "\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377" - "\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\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\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377" - "\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377" - "\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377" - "\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377" - "\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377" - "\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377" - "\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\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\0\0\0\0\0" - "\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0" - "\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0" - "\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0" - "\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0" - "\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0" - "\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0" - "\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0" - "\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0" - "\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0" - "\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0" - "\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0" - "\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0" - "\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0" - "\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377" - "\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0" - "\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377" - "\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\0\0\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\0\0\0\0\0\0\0\0\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0" - "\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377" - "\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377" - "\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0" - "\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0" - "\0\377\377\0\377\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\0\0\0\0\0\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377" - "\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0" - "\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377" - "\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377" - "\377\0\0\0\0\0\0\0\377\377\0\377\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\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0" - "\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0" - "\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0" - "\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0" - "\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0" - "\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\0\377\377\0" - "\377\377\0\0\0\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377" - "\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0" - "\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0" - "\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377" - "\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0", -}; -static const SurfaceImage_t img_blitColour = { - 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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\0\0\24\0\0\0\0\0\0" - "\0\0(\0\0(\0\0\0\0\0\0\0\0<\0\0<\0\0\0\0\0\0\0\0P\0\0P\0\0\0\0\0\0\0\0d\0" - "\0d\0\0\0\0\0\0\0\0x\0\0x\0\0\0\0\0\0\0\0\214\0\0\214\0\0\0\0\0\0\0\0\240" - "\0\0\240\0\0\0\0\0\0\0\0\264\0\0\264\0\0\0\0\0\0\0\0\310\0\0\310\0\0\0\0" - "\0\0\0\0\334\0\0\334\0\0\0\0\0\0\0\0\360\0\0\360\0\0\360\0\0\360\0\0\360" - "\0\0\360\0\0\360\0\0\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\0\0\24\0\0\24\0\0\0\0\0(\0\0" - "(\0\0(\0\0\0\0\0<\0\0<\0\0<\0\0\0\0\0P\0\0P\0\0P\0\0\0\0\0d\0\0d\0\0d\0\0" - "\0\0\0x\0\0x\0\0x\0\0\0\0\0\214\0\0\214\0\0\214\0\0\0\0\0\240\0\0\240\0\0" - "\240\0\0\0\0\0\264\0\0\264\0\0\264\0\0\0\0\0\310\0\0\310\0\0\310\0\0\0\0" - "\0\334\0\0\334\0\0\334\0\0\0\0\0\360\0\0\360\0\0\360\0\0\360\0\0\360\0\0" - "\360\0\0\360\0\0\360\0\0\360\0\0\360\0\0\360\0\0\360\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\0\0\24\0\0\24\0\0\0" - "\0\0(\0\0(\0\0(\0\0\0\0\0<\0\0<\0\0<\0\0\0\0\0P\0\0P\0\0P\0\0\0\0\0d\0\0" - "d\0\0d\0\0\0\0\0x\0\0x\0\0x\0\0\0\0\0\214\0\0\214\0\0\214\0\0\0\0\0\240\0" - "\0\240\0\0\240\0\0\0\0\0\264\0\0\264\0\0\264\0\0\0\0\0\310\0\0\310\0\0\310" - "\0\0\0\0\0\334\0\0\334\0\0\334\0\0\0\0\0\360\0\0\360\0\0\360\0\0\360\0\0" - "\360\0\0\360\0\0\360\0\0\360\0\0\360\0\0\360\0\0\360\0\0\360\0\0\360\0\0" - "\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\360\0\0\360\0\0\360\0\0\360\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$\0\0$\0\0\0\0\0\0\0\0$\24\0" - "$\24\0\0\0\0\0\0\0$(\0$(\0\0\0\0\0\0\0$<\0$<\0\0\0\0\0\0\0$P\0$P\0\0\0\0" - "\0\0\0$d\0$d\0\0\0\0\0\0\0$x\0$x\0\0\0\0\0\0\0$\214\0$\214\0\0\0\0\0\0\0" - "$\240\0$\240\0\0\0\0\0\0\0$\264\0$\264\0\0\0\0\0\0\0$\310\0$\310\0\0\0\0" - "\0\0\0$\334\0$\334\0\0\0\0\0\0\0$\360\0$\360\0$\360\0$\360\0$\360\0$\360" - "\0$\360\0$\360\0\0\0\0\0\0\0\0\360\0\0\360\0\0\360\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0$\0\0$\0\0$\0\0\0\0\0$\24\0$\24\0$\24\0\0\0\0$(\0$(\0$(\0\0\0\0" - "$<\0$<\0$<\0\0\0\0$P\0$P\0$P\0\0\0\0$d\0$d\0$d\0\0\0\0$x\0$x\0$x\0\0\0\0" - "$\214\0$\214\0$\214\0\0\0\0$\240\0$\240\0$\240\0\0\0\0$\264\0$\264\0$\264" - "\0\0\0\0$\310\0$\310\0$\310\0\0\0\0$\334\0$\334\0$\334\0\0\0\0$\360\0$\360" - "\0$\360\0$\360\0$\360\0$\360\0$\360\0$\360\0$\360\0$\360\0$\360\0$\360\0" - "\0\0\0\0\360\0\0\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$\0\0$\0\0$\0\0\0\0\0$\24\0" - "$\24\0$\24\0\0\0\0$(\0$(\0$(\0\0\0\0$<\0$<\0$<\0\0\0\0$P\0$P\0$P\0\0\0\0" - "$d\0$d\0$d\0\0\0\0$x\0$x\0$x\0\0\0\0$\214\0$\214\0$\214\0\0\0\0$\240\0$\240" - "\0$\240\0\0\0\0$\264\0$\264\0$\264\0\0\0\0$\310\0$\310\0$\310\0\0\0\0$\334" - "\0$\334\0$\334\0\0\0\0$\360\0$\360\0$\360\0$\360\0$\360\0$\360\0$\360\0$" - "\360\0$\360\0$\360\0$\360\0$\360\0$\360\0$\360\0\0\0\0\0\360\0\0\360\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0$\0\0$\0\0$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0$\360\0$\360\0$\360\0$\360\0\0\0\0\0\360\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$\0\0$\0\0$\0\0\0\0" - "\0\0\0\0H\0\0H\0\0\0\0\0\0\0\0H\24\0H\24\0\0\0\0\0\0\0H(\0H(\0\0\0\0\0\0" - "\0H<\0H<\0\0\0\0\0\0\0HP\0HP\0\0\0\0\0\0\0Hd\0Hd\0\0\0\0\0\0\0Hx\0Hx\0\0" - "\0\0\0\0\0H\214\0H\214\0\0\0\0\0\0\0H\240\0H\240\0\0\0\0\0\0\0H\264\0H\264" - "\0\0\0\0\0\0\0H\310\0H\310\0\0\0\0\0\0\0H\334\0H\334\0\0\0\0\0\0\0H\360\0" - "H\360\0H\360\0H\360\0H\360\0H\360\0H\360\0H\360\0\0\0\0\0\0\0$\360\0$\360" - "\0$\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0$\0\0$\0\0\0\0\0H\0\0H\0\0H\0\0\0\0\0H\24\0H\24\0H\24" - "\0\0\0\0H(\0H(\0H(\0\0\0\0H<\0H<\0H<\0\0\0\0HP\0HP\0HP\0\0\0\0Hd\0Hd\0Hd" - "\0\0\0\0Hx\0Hx\0Hx\0\0\0\0H\214\0H\214\0H\214\0\0\0\0H\240\0H\240\0H\240" - "\0\0\0\0H\264\0H\264\0H\264\0\0\0\0H\310\0H\310\0H\310\0\0\0\0H\334\0H\334" - "\0H\334\0\0\0\0H\360\0H\360\0H\360\0H\360\0H\360\0H\360\0H\360\0H\360\0H" - "\360\0H\360\0H\360\0H\360\0\0\0\0$\360\0$\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0$\0\0$\0\0\0\0\0H\0\0" - "H\0\0H\0\0\0\0\0H\24\0H\24\0H\24\0\0\0\0H(\0H(\0H(\0\0\0\0H<\0H<\0H<\0\0" - "\0\0HP\0HP\0HP\0\0\0\0Hd\0Hd\0Hd\0\0\0\0Hx\0Hx\0Hx\0\0\0\0H\214\0H\214\0" - "H\214\0\0\0\0H\240\0H\240\0H\240\0\0\0\0H\264\0H\264\0H\264\0\0\0\0H\310" - "\0H\310\0H\310\0\0\0\0H\334\0H\334\0H\334\0\0\0\0H\360\0H\360\0H\360\0H\360" - "\0H\360\0H\360\0H\360\0H\360\0H\360\0H\360\0H\360\0H\360\0H\360\0H\360\0" - "\0\0\0$\360\0$\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0$\0\0\0\0\0H\0\0H\0\0H\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0H\360\0H\360\0H\360\0H\360\0\0\0\0$\360\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0H\0\0H\0\0H\0\0\0\0\0\0\0\0l\0\0l\0\0\0\0\0\0\0\0l\24\0l\24\0\0\0\0\0\0" - "\0l(\0l(\0\0\0\0\0\0\0l<\0l<\0\0\0\0\0\0\0lP\0lP\0\0\0\0\0\0\0ld\0ld\0\0" - "\0\0\0\0\0lx\0lx\0\0\0\0\0\0\0l\214\0l\214\0\0\0\0\0\0\0l\240\0l\240\0\0" - "\0\0\0\0\0l\264\0l\264\0\0\0\0\0\0\0l\310\0l\310\0\0\0\0\0\0\0l\334\0l\334" - "\0\0\0\0\0\0\0l\360\0l\360\0l\360\0l\360\0l\360\0l\360\0l\360\0l\360\0\0" - "\0\0\0\0\0H\360\0H\360\0H\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0H\0\0H\0\0\0\0\0l\0\0l\0\0l\0\0" - "\0\0\0l\24\0l\24\0l\24\0\0\0\0l(\0l(\0l(\0\0\0\0l<\0l<\0l<\0\0\0\0lP\0lP" - "\0lP\0\0\0\0ld\0ld\0ld\0\0\0\0lx\0lx\0lx\0\0\0\0l\214\0l\214\0l\214\0\0\0" - "\0l\240\0l\240\0l\240\0\0\0\0l\264\0l\264\0l\264\0\0\0\0l\310\0l\310\0l\310" - "\0\0\0\0l\334\0l\334\0l\334\0\0\0\0l\360\0l\360\0l\360\0l\360\0l\360\0l\360" - "\0l\360\0l\360\0l\360\0l\360\0l\360\0l\360\0\0\0\0H\360\0H\360\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0H\0" - "\0H\0\0\0\0\0l\0\0l\0\0l\0\0\0\0\0l\24\0l\24\0l\24\0\0\0\0l(\0l(\0l(\0\0" - "\0\0l<\0l<\0l<\0\0\0\0lP\0lP\0lP\0\0\0\0ld\0ld\0ld\0\0\0\0lx\0lx\0lx\0\0" - "\0\0l\214\0l\214\0l\214\0\0\0\0l\240\0l\240\0l\240\0\0\0\0l\264\0l\264\0" - "l\264\0\0\0\0l\310\0l\310\0l\310\0\0\0\0l\334\0l\334\0l\334\0\0\0\0l\360" - "\0l\360\0l\360\0l\360\0l\360\0l\360\0l\360\0l\360\0l\360\0l\360\0l\360\0" - "l\360\0l\360\0l\360\0\0\0\0H\360\0H\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0H\0\0\0\0\0l\0\0l\0\0l\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0l\360\0l\360\0l\360\0l\360" - "\0\0\0\0H\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0l\0\0l\0\0l\0\0\0\0\0\0\0\0\220\0\0\220\0\0\0\0\0\0\0" - "\0\220\24\0\220\24\0\0\0\0\0\0\0\220(\0\220(\0\0\0\0\0\0\0\220<\0\220<\0" - "\0\0\0\0\0\0\220P\0\220P\0\0\0\0\0\0\0\220d\0\220d\0\0\0\0\0\0\0\220x\0\220" - "x\0\0\0\0\0\0\0\220\214\0\220\214\0\0\0\0\0\0\0\220\240\0\220\240\0\0\0\0" - "\0\0\0\220\264\0\220\264\0\0\0\0\0\0\0\220\310\0\220\310\0\0\0\0\0\0\0\220" - "\334\0\220\334\0\0\0\0\0\0\0\220\360\0\220\360\0\220\360\0\220\360\0\220" - "\360\0\220\360\0\220\360\0\220\360\0\0\0\0\0\0\0l\360\0l\360\0l\360\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0l\0\0l\0\0\0\0\0\220\0\0\220\0\0\220\0\0\0\0\0\220\24\0\220\24\0" - "\220\24\0\0\0\0\220(\0\220(\0\220(\0\0\0\0\220<\0\220<\0\220<\0\0\0\0\220" - "P\0\220P\0\220P\0\0\0\0\220d\0\220d\0\220d\0\0\0\0\220x\0\220x\0\220x\0\0" - "\0\0\220\214\0\220\214\0\220\214\0\0\0\0\220\240\0\220\240\0\220\240\0\0" - "\0\0\220\264\0\220\264\0\220\264\0\0\0\0\220\310\0\220\310\0\220\310\0\0" - "\0\0\220\334\0\220\334\0\220\334\0\0\0\0\220\360\0\220\360\0\220\360\0\220" - "\360\0\220\360\0\220\360\0\220\360\0\220\360\0\220\360\0\220\360\0\220\360" - "\0\220\360\0\0\0\0l\360\0l\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0l\0\0l\0\0\0\0\0\220\0\0\220\0\0\220" - "\0\0\0\0\0\220\24\0\220\24\0\220\24\0\0\0\0\220(\0\220(\0\220(\0\0\0\0\220" - "<\0\220<\0\220<\0\0\0\0\220P\0\220P\0\220P\0\0\0\0\220d\0\220d\0\220d\0\0" - "\0\0\220x\0\220x\0\220x\0\0\0\0\220\214\0\220\214\0\220\214\0\0\0\0\220\240" - "\0\220\240\0\220\240\0\0\0\0\220\264\0\220\264\0\220\264\0\0\0\0\220\310" - "\0\220\310\0\220\310\0\0\0\0\220\334\0\220\334\0\220\334\0\0\0\0\220\360" - "\0\220\360\0\220\360\0\220\360\0\220\360\0\220\360\0\220\360\0\220\360\0" - "\220\360\0\220\360\0\220\360\0\220\360\0\220\360\0\220\360\0\0\0\0l\360\0" - "l\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0l\0\0\0\0\0\220\0\0\220\0\0\220\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\220\360\0\220\360\0\220\360\0\220\360\0\0\0\0l\360" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\220\0\0\220\0\0\220\0\0\0\0\0\0\0\0\264\0\0\264\0\0\0\0\0\0\0\0" - "\264\24\0\264\24\0\0\0\0\0\0\0\264(\0\264(\0\0\0\0\0\0\0\264<\0\264<\0\0" - "\0\0\0\0\0\264P\0\264P\0\0\0\0\0\0\0\264d\0\264d\0\0\0\0\0\0\0\264x\0\264" - "x\0\0\0\0\0\0\0\264\214\0\264\214\0\0\0\0\0\0\0\264\240\0\264\240\0\0\0\0" - "\0\0\0\264\264\0\264\264\0\0\0\0\0\0\0\264\310\0\264\310\0\0\0\0\0\0\0\264" - "\334\0\264\334\0\0\0\0\0\0\0\264\360\0\264\360\0\264\360\0\264\360\0\264" - "\360\0\264\360\0\264\360\0\264\360\0\0\0\0\0\0\0\220\360\0\220\360\0\220" - "\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\220\0\0\220\0\0\0\0\0\264\0\0\264\0\0\264\0\0\0\0\0\264" - "\24\0\264\24\0\264\24\0\0\0\0\264(\0\264(\0\264(\0\0\0\0\264<\0\264<\0\264" - "<\0\0\0\0\264P\0\264P\0\264P\0\0\0\0\264d\0\264d\0\264d\0\0\0\0\264x\0\264" - "x\0\264x\0\0\0\0\264\214\0\264\214\0\264\214\0\0\0\0\264\240\0\264\240\0" - "\264\240\0\0\0\0\264\264\0\264\264\0\264\264\0\0\0\0\264\310\0\264\310\0" - "\264\310\0\0\0\0\264\334\0\264\334\0\264\334\0\0\0\0\264\360\0\264\360\0" - "\264\360\0\264\360\0\264\360\0\264\360\0\264\360\0\264\360\0\264\360\0\264" - "\360\0\264\360\0\264\360\0\0\0\0\220\360\0\220\360\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\220\0\0\220\0" - "\0\0\0\0\264\0\0\264\0\0\264\0\0\0\0\0\264\24\0\264\24\0\264\24\0\0\0\0\264" - "(\0\264(\0\264(\0\0\0\0\264<\0\264<\0\264<\0\0\0\0\264P\0\264P\0\264P\0\0" - "\0\0\264d\0\264d\0\264d\0\0\0\0\264x\0\264x\0\264x\0\0\0\0\264\214\0\264" - "\214\0\264\214\0\0\0\0\264\240\0\264\240\0\264\240\0\0\0\0\264\264\0\264" - "\264\0\264\264\0\0\0\0\264\310\0\264\310\0\264\310\0\0\0\0\264\334\0\264" - "\334\0\264\334\0\0\0\0\264\360\0\264\360\0\264\360\0\264\360\0\264\360\0" - "\264\360\0\264\360\0\264\360\0\264\360\0\264\360\0\264\360\0\264\360\0\264" - "\360\0\264\360\0\0\0\0\220\360\0\220\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\220\0\0\0\0\0\264\0\0\264\0\0" - "\264\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\264\360\0" - "\264\360\0\264\360\0\264\360\0\0\0\0\220\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\264\0\0\264\0\0\264" - "\0\0\0\0\0\0\0\0\330\0\0\330\0\0\0\0\0\0\0\0\330\24\0\330\24\0\0\0\0\0\0" - "\0\330(\0\330(\0\0\0\0\0\0\0\330<\0\330<\0\0\0\0\0\0\0\330P\0\330P\0\0\0" - "\0\0\0\0\330d\0\330d\0\0\0\0\0\0\0\330x\0\330x\0\0\0\0\0\0\0\330\214\0\330" - "\214\0\0\0\0\0\0\0\330\240\0\330\240\0\0\0\0\0\0\0\330\264\0\330\264\0\0" - "\0\0\0\0\0\330\310\0\330\310\0\0\0\0\0\0\0\330\334\0\330\334\0\0\0\0\0\0" - "\0\330\360\0\330\360\0\330\360\0\330\360\0\330\360\0\330\360\0\330\360\0" - "\330\360\0\0\0\0\0\0\0\264\360\0\264\360\0\264\360\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\264\0\0" - "\264\0\0\0\0\0\330\0\0\330\0\0\330\0\0\0\0\0\330\24\0\330\24\0\330\24\0\0" - "\0\0\330(\0\330(\0\330(\0\0\0\0\330<\0\330<\0\330<\0\0\0\0\330P\0\330P\0" - "\330P\0\0\0\0\330d\0\330d\0\330d\0\0\0\0\330x\0\330x\0\330x\0\0\0\0\330\214" - "\0\330\214\0\330\214\0\0\0\0\330\240\0\330\240\0\330\240\0\0\0\0\330\264" - "\0\330\264\0\330\264\0\0\0\0\330\310\0\330\310\0\330\310\0\0\0\0\330\334" - "\0\330\334\0\330\334\0\0\0\0\330\360\0\330\360\0\330\360\0\330\360\0\330" - "\360\0\330\360\0\330\360\0\330\360\0\330\360\0\330\360\0\330\360\0\330\360" - "\0\0\0\0\264\360\0\264\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\264\0\0\264\0\0\0\0\0\330\0\0\330\0\0" - "\330\0\0\0\0\0\330\24\0\330\24\0\330\24\0\0\0\0\330(\0\330(\0\330(\0\0\0" - "\0\330<\0\330<\0\330<\0\0\0\0\330P\0\330P\0\330P\0\0\0\0\330d\0\330d\0\330" - "d\0\0\0\0\330x\0\330x\0\330x\0\0\0\0\330\214\0\330\214\0\330\214\0\0\0\0" - "\330\240\0\330\240\0\330\240\0\0\0\0\330\264\0\330\264\0\330\264\0\0\0\0" - "\330\310\0\330\310\0\330\310\0\0\0\0\330\334\0\330\334\0\330\334\0\0\0\0" - "\330\360\0\330\360\0\330\360\0\330\360\0\330\360\0\330\360\0\330\360\0\330" - "\360\0\330\360\0\330\360\0\330\360\0\330\360\0\330\360\0\330\360\0\0\0\0" - "\264\360\0\264\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\264\0\0\0\0\0\330\0\0\330\0\0\330\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\330\360\0\330\360\0\330\360\0\330" - "\360\0\0\0\0\264\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\330\0\0\330\0\0\330\0\0\0\0\0\0\0\0\374\0\0" - "\374\0\0\0\0\0\0\0\0\374\24\0\374\24\0\0\0\0\0\0\0\374(\0\374(\0\0\0\0\0" - "\0\0\374<\0\374<\0\0\0\0\0\0\0\374P\0\374P\0\0\0\0\0\0\0\374d\0\374d\0\0" - "\0\0\0\0\0\374x\0\374x\0\0\0\0\0\0\0\374\214\0\374\214\0\0\0\0\0\0\0\374" - "\240\0\374\240\0\0\0\0\0\0\0\374\264\0\374\264\0\0\0\0\0\0\0\374\310\0\374" - "\310\0\0\0\0\0\0\0\374\334\0\374\334\0\0\0\0\0\0\0\374\360\0\374\360\0\374" - "\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\330" - "\360\0\330\360\0\330\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\330\0\0\330\0\0\0\0\0\374\0\0\374" - "\0\0\374\0\0\0\0\0\374\24\0\374\24\0\374\24\0\0\0\0\374(\0\374(\0\374(\0" - "\0\0\0\374<\0\374<\0\374<\0\0\0\0\374P\0\374P\0\374P\0\0\0\0\374d\0\374d" - "\0\374d\0\0\0\0\374x\0\374x\0\374x\0\0\0\0\374\214\0\374\214\0\374\214\0" - "\0\0\0\374\240\0\374\240\0\374\240\0\0\0\0\374\264\0\374\264\0\374\264\0" - "\0\0\0\374\310\0\374\310\0\374\310\0\0\0\0\374\334\0\374\334\0\374\334\0" - "\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360" - "\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\330\360\0\330" - "\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\330\0\0\330\0\0\0\0\0\374\0\0\374\0\0\374\0\0\0\0\0\374\24\0" - "\374\24\0\374\24\0\0\0\0\374(\0\374(\0\374(\0\0\0\0\374<\0\374<\0\374<\0" - "\0\0\0\374P\0\374P\0\374P\0\0\0\0\374d\0\374d\0\374d\0\0\0\0\374x\0\374x" - "\0\374x\0\0\0\0\374\214\0\374\214\0\374\214\0\0\0\0\374\240\0\374\240\0\374" - "\240\0\0\0\0\374\264\0\374\264\0\374\264\0\0\0\0\374\310\0\374\310\0\374" - "\310\0\0\0\0\374\334\0\374\334\0\374\334\0\0\0\0\374\360\0\374\360\0\374" - "\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360" - "\0\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\330\360\0\330\360\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\330" - "\0\0\0\0\0\374\0\0\374\0\0\374\0\0\0\0\0\374\24\0\374\24\0\374\24\0\0\0\0" - "\374(\0\374(\0\374(\0\0\0\0\374<\0\374<\0\374<\0\0\0\0\374P\0\374P\0\374" - "P\0\0\0\0\374d\0\374d\0\374d\0\0\0\0\374x\0\374x\0\374x\0\0\0\0\374\214\0" - "\374\214\0\374\214\0\0\0\0\374\240\0\374\240\0\374\240\0\0\0\0\374\264\0" - "\374\264\0\374\264\0\0\0\0\374\310\0\374\310\0\374\310\0\0\0\0\374\334\0" - "\374\334\0\374\334\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360" - "\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\330\360\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\374\0\0\374" - "\0\0\374\0\0\0\0\0\374\24\0\374\24\0\374\24\0\0\0\0\374(\0\374(\0\374(\0" - "\0\0\0\374<\0\374<\0\374<\0\0\0\0\374P\0\374P\0\374P\0\0\0\0\374d\0\374d" - "\0\374d\0\0\0\0\374x\0\374x\0\374x\0\0\0\0\374\214\0\374\214\0\374\214\0" - "\0\0\0\374\240\0\374\240\0\374\240\0\0\0\0\374\264\0\374\264\0\374\264\0" - "\0\0\0\374\310\0\374\310\0\374\310\0\0\0\0\374\334\0\374\334\0\374\334\0" - "\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360" - "\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\374\0\0\374\0\0\374" - "\0\0\0\0\0\374\24\0\374\24\0\374\24\0\0\0\0\374(\0\374(\0\374(\0\0\0\0\374" - "<\0\374<\0\374<\0\0\0\0\374P\0\374P\0\374P\0\0\0\0\374d\0\374d\0\374d\0\0" - "\0\0\374x\0\374x\0\374x\0\0\0\0\374\214\0\374\214\0\374\214\0\0\0\0\374\240" - "\0\374\240\0\374\240\0\0\0\0\374\264\0\374\264\0\374\264\0\0\0\0\374\310" - "\0\374\310\0\374\310\0\0\0\0\374\334\0\374\334\0\374\334\0\0\0\0\374\360" - "\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\374\360\0\374\360\0\374\360" - "\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\374\360\0\374\360\0\374\360\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\374\0\0\374\0\0\374\0\0\0\0\0\374\24\0\374\24\0\374\24\0\0\0\0\374(\0\374" - "(\0\374(\0\0\0\0\374<\0\374<\0\374<\0\0\0\0\374P\0\374P\0\374P\0\0\0\0\374" - "d\0\374d\0\374d\0\0\0\0\374x\0\374x\0\374x\0\0\0\0\374\214\0\374\214\0\374" - "\214\0\0\0\0\374\240\0\374\240\0\374\240\0\0\0\0\374\264\0\374\264\0\374" - "\264\0\0\0\0\374\310\0\374\310\0\374\310\0\0\0\0\374\334\0\374\334\0\374" - "\334\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\374\334" - "\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\374\334\0\0" - "\0\0\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\374\0\0\374\0\0\374\0\0\0\0" - "\0\374\24\0\374\24\0\374\24\0\0\0\0\374(\0\374(\0\374(\0\0\0\0\374<\0\374" - "<\0\374<\0\0\0\0\374P\0\374P\0\374P\0\0\0\0\374d\0\374d\0\374d\0\0\0\0\374" - "x\0\374x\0\374x\0\0\0\0\374\214\0\374\214\0\374\214\0\0\0\0\374\240\0\374" - "\240\0\374\240\0\0\0\0\374\264\0\374\264\0\374\264\0\0\0\0\374\310\0\374" - "\310\0\374\310\0\0\0\0\374\334\0\374\334\0\374\334\0\0\0\0\374\360\0\374" - "\360\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\374\360\0\374\360\0\374" - "\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\374\360\0\374\360\0\374\360\0\374" - "\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\374\0\0\374\0\0\374\0\0\0\0\0\374\24\0\374\24\0\374\24\0\0\0\0\374" - "(\0\374(\0\374(\0\0\0\0\374<\0\374<\0\374<\0\0\0\0\374P\0\374P\0\374P\0\0" - "\0\0\374d\0\374d\0\374d\0\0\0\0\374x\0\374x\0\374x\0\0\0\0\374\214\0\374" - "\214\0\374\214\0\0\0\0\374\240\0\374\240\0\374\240\0\0\0\0\374\264\0\374" - "\264\0\374\264\0\0\0\0\374\310\0\374\310\0\374\310\0\0\0\0\374\334\0\374" - "\334\0\374\334\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374" - "\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\374\0\0\374\0\0\374\0\0\0\0\0\374\24\0\374\24\0\374\24\0\0\0\0\374(\0" - "\374(\0\374(\0\0\0\0\374<\0\374<\0\374<\0\0\0\0\374P\0\374P\0\374P\0\0\0" - "\0\374d\0\374d\0\374d\0\0\0\0\374x\0\374x\0\374x\0\0\0\0\374\214\0\374\214" - "\0\374\214\0\0\0\0\374\240\0\374\240\0\374\240\0\0\0\0\374\264\0\374\264" - "\0\374\264\0\0\0\0\374\310\0\374\310\0\374\310\0\0\0\0\374\334\0\374\334" - "\0\374\334\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374" - "\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360" - "\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\374\0\0\374\0\0\374\0\0\0\0\0\374\24\0\374\24\0\374\24\0\0\0\0\374(\0\374" - "(\0\374(\0\0\0\0\374<\0\374<\0\374<\0\0\0\0\374P\0\374P\0\374P\0\0\0\0\374" - "d\0\374d\0\374d\0\0\0\0\374x\0\374x\0\374x\0\0\0\0\374\214\0\374\214\0\374" - "\214\0\0\0\0\374\240\0\374\240\0\374\240\0\0\0\0\374\264\0\374\264\0\374" - "\264\0\0\0\0\374\310\0\374\310\0\374\310\0\0\0\0\374\334\0\374\334\0\374" - "\334\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\374\0\0\374" - "\0\0\374\0\0\0\0\0\374\24\0\374\24\0\374\24\0\0\0\0\374(\0\374(\0\374(\0" - "\0\0\0\374<\0\374<\0\374<\0\0\0\0\374P\0\374P\0\374P\0\0\0\0\374d\0\374d" - "\0\374d\0\0\0\0\374x\0\374x\0\374x\0\0\0\0\374\214\0\374\214\0\374\214\0" - "\0\0\0\374\240\0\374\240\0\374\240\0\0\0\0\374\264\0\374\264\0\374\264\0" - "\0\0\0\374\310\0\374\310\0\374\310\0\0\0\0\374\334\0\374\334\0\374\334\0" - "\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360" - "\0\374\360\0\374\360\0\0\0\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360" - "\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\374\0\0\374\0\0\374" - "\0\0\0\0\0\374\24\0\374\24\0\374\24\0\0\0\0\374(\0\374(\0\374(\0\0\0\0\374" - "<\0\374<\0\374<\0\0\0\0\374P\0\374P\0\374P\0\0\0\0\374d\0\374d\0\374d\0\0" - "\0\0\374x\0\374x\0\374x\0\0\0\0\374\214\0\374\214\0\374\214\0\0\0\0\374\240" - "\0\374\240\0\374\240\0\0\0\0\374\264\0\374\264\0\374\264\0\0\0\0\374\310" - "\0\374\310\0\374\310\0\0\0\0\374\334\0\374\334\0\374\334\0\0\0\0\374\360" - "\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374" - "\360\0\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\374\0\0\374\0\0\374" - "\0\0\0\0\0\374\24\0\374\24\0\374\24\0\0\0\0\374(\0\374(\0\374(\0\0\0\0\374" - "<\0\374<\0\374<\0\0\0\0\374P\0\374P\0\374P\0\0\0\0\374d\0\374d\0\374d\0\0" - "\0\0\374x\0\374x\0\374x\0\0\0\0\374\214\0\374\214\0\374\214\0\0\0\0\374\240" - "\0\374\240\0\374\240\0\0\0\0\374\264\0\374\264\0\374\264\0\0\0\0\374\310" - "\0\374\310\0\374\310\0\0\0\0\374\334\0\374\334\0\374\334\0\0\0\0\374\360" - "\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374" - "\360\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\374\0\0\374\0\0\0\0\0\0\0\0\374\24" - "\0\374\24\0\0\0\0\0\0\0\374(\0\374(\0\0\0\0\0\0\0\374<\0\374<\0\0\0\0\0\0" - "\0\374P\0\374P\0\0\0\0\0\0\0\374d\0\374d\0\0\0\0\0\0\0\374x\0\374x\0\0\0" - "\0\0\0\0\374\214\0\374\214\0\0\0\0\0\0\0\374\240\0\374\240\0\0\0\0\0\0\0" - "\374\264\0\374\264\0\0\0\0\0\0\0\374\310\0\374\310\0\0\0\0\0\0\0\374\334" - "\0\374\334\0\0\0\0\0\0\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\374\360\0" - "\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\0" - "\0\0\0\0\0\0\0\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\374\0\0\374\0\0\0" - "\0\0\0\0\0\374\24\0\374\24\0\0\0\0\0\0\0\374(\0\374(\0\0\0\0\0\0\0\374<\0" - "\374<\0\0\0\0\0\0\0\374P\0\374P\0\0\0\0\0\0\0\374d\0\374d\0\0\0\0\0\0\0\374" - "x\0\374x\0\0\0\0\0\0\0\374\214\0\374\214\0\0\0\0\0\0\0\374\240\0\374\240" - "\0\0\0\0\0\0\0\374\264\0\374\264\0\0\0\0\0\0\0\374\310\0\374\310\0\0\0\0" - "\0\0\0\374\334\0\374\334\0\0\0\0\0\0\0\374\360\0\374\360\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\374\360\0\374" - "\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\374\0\0\374\0\0\0\0\0\0\0\0\374\24\0" - "\374\24\0\0\0\0\0\0\0\374(\0\374(\0\0\0\0\0\0\0\374<\0\374<\0\0\0\0\0\0\0" - "\374P\0\374P\0\0\0\0\0\0\0\374d\0\374d\0\0\0\0\0\0\0\374x\0\374x\0\0\0\0" - "\0\0\0\374\214\0\374\214\0\0\0\0\0\0\0\374\240\0\374\240\0\0\0\0\0\0\0\374" - "\264\0\374\264\0\0\0\0\0\0\0\374\310\0\374\310\0\0\0\0\0\0\0\374\334\0\374" - "\334\0\0\0\0\0\0\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\374\0\0\374\0\0\374\0\0\0\0\0\374\24\0\374\24\0\374\24\0" - "\0\0\0\374(\0\374(\0\374(\0\0\0\0\374<\0\374<\0\374<\0\0\0\0\374P\0\374P" - "\0\374P\0\0\0\0\374d\0\374d\0\374d\0\0\0\0\374x\0\374x\0\374x\0\0\0\0\374" - "\214\0\374\214\0\374\214\0\0\0\0\374\240\0\374\240\0\374\240\0\0\0\0\374" - "\264\0\374\264\0\374\264\0\0\0\0\374\310\0\374\310\0\374\310\0\0\0\0\374" - "\334\0\374\334\0\374\334\0\0\0\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\374\0\0\374\0\0\0\0\0\0\0\0" - "\374\24\0\374\24\0\0\0\0\0\0\0\374(\0\374(\0\0\0\0\0\0\0\374<\0\374<\0\0" - "\0\0\0\0\0\374P\0\374P\0\0\0\0\0\0\0\374d\0\374d\0\0\0\0\0\0\0\374x\0\374" - "x\0\0\0\0\0\0\0\374\214\0\374\214\0\0\0\0\0\0\0\374\240\0\374\240\0\0\0\0" - "\0\0\0\374\264\0\374\264\0\0\0\0\0\0\0\374\310\0\374\310\0\0\0\0\0\0\0\374" - "\334\0\374\334\0\0\0\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\374" - "\360\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", -}; -static const SurfaceImage_t img_blitAlpha = { - 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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\24\0\24\24\0\20\20\0" - "\20\20\0""88\0""88\0**\0**\0ZZ\0ZZ\0==\0==\0yy\0yy\0II\0II\0\224\224\0\224" - "\224\0NN\0NN\0\254\254\0\254\254\0MM\0MM\0\302\302\0\302\302\0HH\0HH\0\324" - "\324\0\324\324\0>>\0>>\0\343\343\0\343\343\0""00\0""00\0\356\356\0\356\356" - "\0\40\40\0\40\40\0\367\367\0\367\367\0\16\16\0\16\16\0\374\374\0\374\374" - "\0\374\374\0\374\374\0\360\360\0\360\360\0\360\360\0\360\360\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\24\24\0\24\24\0\24\24\0\20\20\0""88\0""88\0""88\0**\0ff\0ff\0ff\0FF\0" - "\215\215\0\215\215\0\215\215\0UU\0\255\255\0\255\255\0\255\255\0[[\0\306" - "\306\0\306\306\0\306\306\0YY\0\331\331\0\331\331\0\331\331\0PP\0\350\350" - "\0\350\350\0\350\350\0DD\0\362\362\0\362\362\0\362\362\0""44\0\370\370\0" - "\370\370\0\370\370\0\"\"\0\374\374\0\374\374\0\374\374\0\16\16\0\376\376" - "\0\376\376\0\376\376\0\376\376\0\374\374\0\374\374\0\374\374\0\374\374\0" - "\360\360\0\360\360\0\360\360\0\360\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\24\0\24\24\0\24\24\0\20\20\0""88\0" - """88\0""88\0**\0ff\0ff\0ff\0FF\0\226\226\0\226\226\0\215\215\0UU\0\271\271" - "\0\271\271\0\255\255\0[[\0\323\323\0\323\323\0\306\306\0YY\0\345\345\0\345" - "\345\0\331\331\0PP\0\360\360\0\360\360\0\350\350\0DD\0\370\370\0\370\370" - "\0\362\362\0""44\0\374\374\0\374\374\0\370\370\0\"\"\0\376\376\0\376\376" - "\0\374\374\0\16\16\0\376\376\0\376\376\0\376\376\0\376\376\0\376\376\0\376" - "\376\0\374\374\0\374\374\0\374\374\0\374\374\0\360\360\0\360\360\0\360\360" - "\0\360\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\24" - "\0\24\24\0\24\24\0\20\20\0""33\0""33\0""33\0&&\0OO\0OO\0OO\0""55\0``\0``" - "\0``\0::\0``\0``\0``\0""22\0WW\0WW\0WW\0''\0II\0II\0II\0\33\33\0""99\0""9" - "9\0""99\0\20\20\0))\0))\0))\0\10\10\0\33\33\0\33\33\0\33\33\0\3\3\0\17\17" - "\0\17\17\0\17\17\0\0\0\0\7\7\0\7\7\0\7\7\0\7\7\0\2\2\0\2\2\0\2\2\0\2\2\0" - "\16\16\0\16\16\0\16\16\0\16\16\0\360\360\0\360\360\0\360\360\0\360\360\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\24\0\24\24\0\24\24\0\16\16" - "\0""33\0GG\0GG\0""00\0``\0\210\210\0\210\210\0TT\0\204\204\0\263\263\0\263" - "\263\0ee\0\222\222\0\315\315\0\312\312\0gg\0\216\216\0\331\331\0\327\327" - "\0cc\0\202\202\0\340\340\0\337\337\0YY\0qq\0\345\345\0\344\344\0NN\0^^\0" - "\352\352\0\352\352\0@@\0JJ\0\357\357\0\357\357\0""11\0""66\0\364\364\0\364" - "\364\0\40\40\0\"\"\0\371\371\0\371\371\0\16\16\0\16\16\0\375\375\0\375\375" - "\0\376\376\0\376\376\0\362\362\0\362\362\0\376\376\0\376\376\0\16\16\0\16" - "\16\0\360\360\0\360\360\0\360\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24" - "\24\0\24\24\0\22\22\0\24\24\0""88\0""88\0//\0BB\0pp\0pp\0UU\0ss\0\242\242" - "\0\242\242\0oo\0\230\230\0\306\306\0\306\306\0ww\0\265\265\0\335\335\0\335" - "\335\0ss\0\313\313\0\353\353\0\353\353\0ii\0\333\333\0\364\364\0\364\364" - "\0ZZ\0\351\351\0\371\371\0\371\371\0II\0\362\362\0\374\374\0\374\374\0""6" - "6\0\370\370\0\376\376\0\376\376\0\"\"\0\374\374\0\376\376\0\376\376\0\16" - "\16\0\376\376\0\376\376\0\376\376\0\376\376\0\375\375\0\376\376\0\376\376" - "\0\376\376\0\360\360\0\360\360\0\360\360\0\360\360\0\16\16\0\360\360\0\360" - "\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\24\0\24\24\0\22\22\0\"\"\0""88\0" - """88\0//\0OO\0pp\0pp\0WW\0\203\203\0\242\242\0\242\242\0qq\0\256\256\0\312" - "\312\0\301\301\0||\0\313\313\0\342\342\0\325\325\0yy\0\336\336\0\360\360" - "\0\342\342\0mm\0\353\353\0\367\367\0\354\354\0\\\\\0\363\363\0\373\373\0" - "\362\362\0JJ\0\371\371\0\375\375\0\367\367\0""66\0\374\374\0\376\376\0\373" - "\373\0\"\"\0\376\376\0\376\376\0\375\375\0\16\16\0\376\376\0\376\376\0\376" - "\376\0\376\376\0\376\376\0\376\376\0\375\375\0\376\376\0\376\376\0\375\375" - "\0\360\360\0\374\374\0\360\360\0\376\376\0\16\16\0\360\360\0\360\360\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\24\24\0\22\22\0&&\0\"\"\0""88\0//\0PP\0HH\0gg\0NN" - "\0pp\0ee\0}}\0VV\0{{\0oo\0\202\202\0NN\0qq\0jj\0vv\0>>\0``\0\\\\\0cc\0,," - "\0MM\0KK\0OO\0\35\35\0::\0""99\0;;\0\21\21\0**\0))\0**\0\10\10\0\33\33\0" - "\33\33\0\33\33\0\3\3\0\17\17\0\17\17\0\17\17\0\0\0\0\7\7\0\7\7\0\7\7\0\7" - "\7\0\2\2\0\2\2\0\2\2\0\2\2\0\16\16\0\16\16\0\16\16\0\16\16\0\360\360\0\360" - "\360\0\376\376\0\376\376\0\16\16\0\360\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\22\22" - "\0&&\0&&\0\"\"\0""66\0[[\0oo\0ee\0``\0\220\220\0\270\270\0\250\250\0xx\0" - "\250\250\0\327\327\0\311\311\0zz\0\246\246\0\341\341\0\325\325\0rr\0\230" - "\230\0\343\343\0\334\334\0gg\0\205\205\0\344\344\0\340\340\0[[\0rr\0\346" - "\346\0\344\344\0NN\0^^\0\352\352\0\352\352\0AA\0JJ\0\357\357\0\357\357\0" - """11\0""66\0\364\364\0\364\364\0\40\40\0\"\"\0\371\371\0\371\371\0\16\16" - "\0\16\16\0\375\375\0\375\375\0\376\376\0\376\376\0\362\362\0\362\362\0\376" - "\376\0\376\376\0\16\16\0\16\16\0\376\376\0\376\376\0\376\376\0\16\16\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\22\22\0&&\0&&\0\37\37\0;;\0``\0``\0HH\0qq\0\237\237" - "\0\237\237\0nn\0\227\227\0\306\306\0\306\306\0}}\0\254\254\0\334\334\0\334" - "\334\0}}\0\275\275\0\347\347\0\347\347\0vv\0\316\316\0\357\357\0\357\357" - "\0ii\0\334\334\0\365\365\0\365\365\0ZZ\0\351\351\0\371\371\0\371\371\0II" - "\0\362\362\0\374\374\0\374\374\0""66\0\370\370\0\376\376\0\376\376\0\"\"" - "\0\374\374\0\376\376\0\376\376\0\16\16\0\376\376\0\376\376\0\376\376\0\376" - "\376\0\375\375\0\376\376\0\376\376\0\376\376\0\360\360\0\360\360\0\360\360" - "\0\360\360\0\16\16\0\376\376\0\376\376\0\16\16\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "&&\0&&\0##\0--\0``\0``\0TT\0cc\0\237\237\0\231\231\0||\0\223\223\0\306\306" - "\0\301\301\0\217\217\0\267\267\0\336\336\0\322\322\0\220\220\0\317\317\0" - "\352\352\0\334\334\0\202\202\0\337\337\0\362\362\0\345\345\0qq\0\353\353" - "\0\370\370\0\354\354\0^^\0\363\363\0\373\373\0\362\362\0JJ\0\371\371\0\375" - "\375\0\367\367\0""66\0\374\374\0\376\376\0\373\373\0\"\"\0\376\376\0\376" - "\376\0\375\375\0\16\16\0\376\376\0\376\376\0\376\376\0\376\376\0\376\376" - "\0\376\376\0\375\375\0\376\376\0\376\376\0\375\375\0\360\360\0\376\376\0" - "\360\360\0\376\376\0\16\16\0\376\376\0\376\376\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0--\0``\0PP\0nn\0[[\0\222\222\0kk\0\211\211\0qq\0\231\231\0" - "ff\0\210\210\0uu\0\217\217\0UU\0vv\0ll\0zz\0@@\0aa\0]]\0dd\0,,\0MM\0KK\0" - "OO\0\35\35\0::\0""99\0;;\0\21\21\0**\0))\0**\0\10\10\0\33\33\0\33\33\0\33" - "\33\0\3\3\0\17\17\0\17\17\0\17\17\0\0\0\0\7\7\0\7\7\0\7\7\0\7\7\0\2\2\0\2" - "\2\0\2\2\0\2\2\0\16\16\0\16\16\0\16\16\0\16\16\0\360\360\0\360\360\0\376" - "\376\0\376\376\0\16\16\0\376\376\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\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\0""77" - "\0--\0UU\0zz\0\216\216\0ww\0}}\0\254\254\0\324\324\0\264\264\0\207\207\0" - "\266\266\0\345\345\0\316\316\0\177\177\0\254\254\0\346\346\0\326\326\0rr" - "\0\231\231\0\344\344\0\334\334\0gg\0\206\206\0\344\344\0\340\340\0[[\0rr" - "\0\346\346\0\344\344\0NN\0^^\0\352\352\0\352\352\0AA\0JJ\0\357\357\0\357" - "\357\0""11\0""66\0\364\364\0\364\364\0\40\40\0\"\"\0\371\371\0\371\371\0" - "\16\16\0\16\16\0\375\375\0\375\375\0\376\376\0\376\376\0\362\362\0\362\362" - "\0\376\376\0\376\376\0\16\16\0\16\16\0\376\376\0\376\376\0\376\376\0\16\16" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\22\22\0""77\0""77\0--\0CC\0~~\0~~\0\\\\\0||\0" - "\274\274\0\274\274\0||\0\235\235\0\325\325\0\325\325\0\204\204\0\256\256" - "\0\340\340\0\340\340\0\177\177\0\275\275\0\351\351\0\351\351\0vv\0\316\316" - "\0\360\360\0\360\360\0ii\0\334\334\0\365\365\0\365\365\0ZZ\0\351\351\0\371" - "\371\0\371\371\0II\0\362\362\0\374\374\0\374\374\0""66\0\370\370\0\376\376" - "\0\376\376\0\"\"\0\374\374\0\376\376\0\376\376\0\16\16\0\376\376\0\376\376" - "\0\376\376\0\376\376\0\375\375\0\376\376\0\376\376\0\376\376\0\360\360\0" - "\360\360\0\360\360\0\360\360\0\16\16\0\376\376\0\376\376\0\16\16\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0""22\0--\0``\0vv\0pp\0gg\0\243\243\0\255\255" - "\0\225\225\0\231\231\0\311\311\0\314\314\0\235\235\0\271\271\0\337\337\0" - "\326\326\0\224\224\0\320\320\0\352\352\0\336\336\0\204\204\0\337\337\0\362" - "\362\0\345\345\0qq\0\353\353\0\370\370\0\354\354\0^^\0\363\363\0\373\373" - "\0\362\362\0JJ\0\371\371\0\375\375\0\367\367\0""66\0\374\374\0\376\376\0" - "\373\373\0\"\"\0\376\376\0\376\376\0\375\375\0\16\16\0\376\376\0\376\376" - "\0\376\376\0\376\376\0\376\376\0\376\376\0\375\375\0\376\376\0\376\376\0" - "\375\375\0\360\360\0\376\376\0\360\360\0\376\376\0\16\16\0\376\376\0\376" - "\376\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&&\0##\0FF\0""99\0``\0PP\0\200\200\0dd\0\222" - "\222\0kk\0\222\222\0vv\0\231\231\0ff\0\213\213\0ww\0\217\217\0UU\0xx\0mm" - "\0zz\0@@\0bb\0]]\0dd\0,,\0MM\0KK\0OO\0\35\35\0::\0""99\0;;\0\21\21\0**\0" - "))\0**\0\10\10\0\33\33\0\33\33\0\33\33\0\3\3\0\17\17\0\17\17\0\17\17\0\0" - "\0\0\7\7\0\7\7\0\7\7\0\7\7\0\2\2\0\2\2\0\2\2\0\2\2\0\16\16\0\16\16\0\16\16" - "\0\16\16\0\360\360\0\360\360\0\376\376\0\376\376\0\16\16\0\376\376\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0""77\0""99\0^^\0zz\0\216\216\0\201\201\0\203" - "\203\0\254\254\0\324\324\0\271\271\0\211\211\0\266\266\0\345\345\0\317\317" - "\0\200\200\0\254\254\0\346\346\0\326\326\0ss\0\231\231\0\344\344\0\334\334" - "\0gg\0\206\206\0\344\344\0\340\340\0[[\0rr\0\346\346\0\344\344\0NN\0^^\0" - "\352\352\0\352\352\0AA\0JJ\0\357\357\0\357\357\0""11\0""66\0\364\364\0\364" - "\364\0\40\40\0\"\"\0\371\371\0\371\371\0\16\16\0\16\16\0\375\375\0\375\375" - "\0\376\376\0\376\376\0\362\362\0\362\362\0\376\376\0\376\376\0\16\16\0\16" - "\16\0\376\376\0\376\376\0\376\376\0\16\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\22\22" - "\0""77\0""77\0--\0MM\0\210\210\0\210\210\0\\\\\0\202\202\0\302\302\0\302" - "\302\0||\0\240\240\0\330\330\0\330\330\0\204\204\0\257\257\0\341\341\0\341" - "\341\0\177\177\0\275\275\0\351\351\0\351\351\0vv\0\316\316\0\360\360\0\360" - "\360\0ii\0\334\334\0\365\365\0\365\365\0ZZ\0\351\351\0\371\371\0\371\371" - "\0II\0\362\362\0\374\374\0\374\374\0""66\0\370\370\0\376\376\0\376\376\0" - "\"\"\0\374\374\0\376\376\0\376\376\0\16\16\0\376\376\0\376\376\0\376\376" - "\0\376\376\0\375\375\0\376\376\0\376\376\0\376\376\0\360\360\0\360\360\0" - "\360\360\0\360\360\0\16\16\0\376\376\0\376\376\0\16\16\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0""22\0--\0``\0vv\0xx\0kk\0\245\245\0\257\257\0\235\235" - "\0\234\234\0\312\312\0\315\315\0\241\241\0\272\272\0\337\337\0\326\326\0" - "\225\225\0\320\320\0\352\352\0\336\336\0\204\204\0\337\337\0\362\362\0\345" - "\345\0qq\0\353\353\0\370\370\0\354\354\0^^\0\363\363\0\373\373\0\362\362" - "\0JJ\0\371\371\0\375\375\0\367\367\0""66\0\374\374\0\376\376\0\373\373\0" - "\"\"\0\376\376\0\376\376\0\375\375\0\16\16\0\376\376\0\376\376\0\376\376" - "\0\376\376\0\376\376\0\376\376\0\375\375\0\376\376\0\376\376\0\375\375\0" - "\360\360\0\376\376\0\360\360\0\376\376\0\16\16\0\376\376\0\376\376\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0&&\0##\0FF\0""99\0``\0PP\0\200\200\0dd\0\222\222\0kk" - "\0\222\222\0vv\0\231\231\0ff\0\213\213\0ww\0\217\217\0UU\0xx\0mm\0zz\0@@" - "\0bb\0]]\0dd\0,,\0MM\0KK\0OO\0\35\35\0::\0""99\0;;\0\21\21\0**\0))\0**\0" - "\10\10\0\33\33\0\33\33\0\33\33\0\3\3\0\17\17\0\17\17\0\17\17\0\0\0\0\7\7" - "\0\7\7\0\7\7\0\7\7\0\2\2\0\2\2\0\2\2\0\2\2\0\16\16\0\16\16\0\16\16\0\16\16" - "\0\360\360\0\360\360\0\376\376\0\376\376\0\16\16\0\376\376\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0""77\0""99\0^^\0zz\0\216\216\0\201\201\0\203\203\0" - "\254\254\0\324\324\0\271\271\0\211\211\0\266\266\0\345\345\0\317\317\0\200" - "\200\0\254\254\0\346\346\0\326\326\0ss\0\231\231\0\344\344\0\334\334\0gg" - "\0\206\206\0\344\344\0\340\340\0[[\0rr\0\346\346\0\344\344\0NN\0^^\0\352" - "\352\0\352\352\0AA\0JJ\0\357\357\0\357\357\0""11\0""66\0\364\364\0\364\364" - "\0\40\40\0\"\"\0\371\371\0\371\371\0\16\16\0\16\16\0\375\375\0\375\375\0" - "\376\376\0\376\376\0\362\362\0\362\362\0\376\376\0\376\376\0\16\16\0\16\16" - "\0\376\376\0\376\376\0\376\376\0\16\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\22\22\0" - """77\0""77\0--\0MM\0\210\210\0\210\210\0\\\\\0\202\202\0\302\302\0\302\302" - "\0||\0\240\240\0\330\330\0\330\330\0\204\204\0\257\257\0\341\341\0\341\341" - "\0\177\177\0\275\275\0\351\351\0\351\351\0vv\0\316\316\0\360\360\0\360\360" - "\0ii\0\334\334\0\365\365\0\365\365\0ZZ\0\351\351\0\371\371\0\371\371\0II" - "\0\362\362\0\374\374\0\374\374\0""66\0\370\370\0\376\376\0\376\376\0\"\"" - "\0\374\374\0\376\376\0\376\376\0\16\16\0\376\376\0\376\376\0\376\376\0\376" - "\376\0\375\375\0\376\376\0\376\376\0\376\376\0\360\360\0\360\360\0\360\360" - "\0\360\360\0\16\16\0\376\376\0\376\376\0\16\16\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0""22\0--\0``\0vv\0xx\0kk\0\245\245\0\257\257\0\235\235\0\234\234" - "\0\312\312\0\315\315\0\241\241\0\272\272\0\337\337\0\326\326\0\225\225\0" - "\320\320\0\352\352\0\336\336\0\204\204\0\337\337\0\362\362\0\345\345\0qq" - "\0\353\353\0\370\370\0\354\354\0^^\0\363\363\0\373\373\0\362\362\0JJ\0\371" - "\371\0\375\375\0\367\367\0""66\0\374\374\0\376\376\0\373\373\0\"\"\0\376" - "\376\0\376\376\0\375\375\0\16\16\0\376\376\0\376\376\0\376\376\0\376\376" - "\0\376\376\0\376\376\0\375\375\0\376\376\0\376\376\0\375\375\0\360\360\0" - "\376\376\0\360\360\0\376\376\0\16\16\0\376\376\0\376\376\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0&&\0##\0FF\0""99\0``\0PP\0\200\200\0dd\0\222\222\0kk\0\222\222" - "\0vv\0\231\231\0ff\0\213\213\0ww\0\217\217\0UU\0xx\0mm\0zz\0@@\0bb\0]]\0" - "dd\0,,\0MM\0KK\0OO\0\35\35\0::\0""99\0;;\0\21\21\0**\0))\0**\0\10\10\0\33" - "\33\0\33\33\0\33\33\0\3\3\0\17\17\0\17\17\0\17\17\0\0\0\0\7\7\0\7\7\0\7\7" - "\0\7\7\0\2\2\0\2\2\0\2\2\0\2\2\0\16\16\0\16\16\0\16\16\0\16\16\0\360\360" - "\0\360\360\0\376\376\0\376\376\0\16\16\0\376\376\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0""77\0""99\0^^\0zz\0\216\216\0\201\201\0\203\203\0\254\254\0" - "\324\324\0\271\271\0\211\211\0\266\266\0\345\345\0\317\317\0\200\200\0\254" - "\254\0\346\346\0\326\326\0ss\0\231\231\0\344\344\0\334\334\0gg\0\206\206" - "\0\344\344\0\340\340\0[[\0rr\0\346\346\0\344\344\0NN\0^^\0\352\352\0\352" - "\352\0AA\0JJ\0\357\357\0\357\357\0""11\0""66\0\364\364\0\364\364\0\40\40" - "\0\"\"\0\371\371\0\371\371\0\16\16\0\16\16\0\375\375\0\375\375\0\376\376" - "\0\376\376\0\362\362\0\362\362\0\376\376\0\376\376\0\16\16\0\16\16\0\376" - "\376\0\376\376\0\376\376\0\16\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\22\22\0""77\0" - """77\0--\0MM\0\210\210\0\210\210\0\\\\\0\202\202\0\302\302\0\302\302\0||" - "\0\240\240\0\330\330\0\330\330\0\204\204\0\257\257\0\341\341\0\341\341\0" - "\177\177\0\275\275\0\351\351\0\351\351\0vv\0\316\316\0\360\360\0\360\360" - "\0ii\0\334\334\0\365\365\0\365\365\0ZZ\0\351\351\0\371\371\0\371\371\0II" - "\0\362\362\0\374\374\0\374\374\0""66\0\370\370\0\376\376\0\376\376\0\"\"" - "\0\374\374\0\376\376\0\376\376\0\16\16\0\376\376\0\376\376\0\376\376\0\376" - "\376\0\375\375\0\376\376\0\376\376\0\376\376\0\360\360\0\360\360\0\360\360" - "\0\360\360\0\16\16\0\376\376\0\376\376\0\16\16\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0""22\0--\0``\0vv\0xx\0kk\0\245\245\0\257\257\0\235\235\0\234\234" - "\0\312\312\0\315\315\0\241\241\0\272\272\0\337\337\0\326\326\0\225\225\0" - "\320\320\0\352\352\0\336\336\0\204\204\0\337\337\0\362\362\0\345\345\0qq" - "\0\353\353\0\370\370\0\354\354\0^^\0\363\363\0\373\373\0\362\362\0JJ\0\371" - "\371\0\375\375\0\367\367\0""66\0\374\374\0\376\376\0\373\373\0\"\"\0\376" - "\376\0\376\376\0\375\375\0\16\16\0\376\376\0\376\376\0\376\376\0\376\376" - "\0\376\376\0\376\376\0\375\375\0\376\376\0\376\376\0\375\375\0\360\360\0" - "\376\376\0\360\360\0\376\376\0\16\16\0\376\376\0\376\376\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0&&\0##\0FF\0""99\0``\0PP\0\200\200\0dd\0\222\222\0kk\0\222\222" - "\0vv\0\231\231\0ff\0\213\213\0ww\0\217\217\0UU\0xx\0mm\0zz\0@@\0bb\0]]\0" - "dd\0,,\0MM\0KK\0OO\0\35\35\0::\0""99\0;;\0\21\21\0**\0))\0**\0\10\10\0\33" - "\33\0\33\33\0\33\33\0\3\3\0\17\17\0\17\17\0\17\17\0\0\0\0\7\7\0\7\7\0\7\7" - "\0\7\7\0\2\2\0\2\2\0\2\2\0\2\2\0\16\16\0\16\16\0\16\16\0\16\16\0\360\360" - "\0\360\360\0\376\376\0\376\376\0\16\16\0\376\376\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0""77\0""99\0^^\0zz\0\216\216\0\201\201\0\203\203\0\254\254\0" - "\324\324\0\271\271\0\211\211\0\266\266\0\345\345\0\317\317\0\200\200\0\254" - "\254\0\346\346\0\326\326\0ss\0\231\231\0\344\344\0\334\334\0gg\0\206\206" - "\0\344\344\0\340\340\0[[\0rr\0\346\346\0\344\344\0NN\0^^\0\352\352\0\352" - "\352\0AA\0JJ\0\357\357\0\357\357\0""11\0""66\0\364\364\0\364\364\0\40\40" - "\0\"\"\0\371\371\0\371\371\0\16\16\0\16\16\0\375\375\0\375\375\0\376\376" - "\0\376\376\0\362\362\0\362\362\0\376\376\0\376\376\0\16\16\0\16\16\0\376" - "\376\0\376\376\0\376\376\0\16\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\22\22\0""77\0" - """77\0--\0MM\0\210\210\0\210\210\0\\\\\0\202\202\0\302\302\0\302\302\0||" - "\0\240\240\0\330\330\0\330\330\0\204\204\0\257\257\0\341\341\0\341\341\0" - "\177\177\0\275\275\0\351\351\0\351\351\0vv\0\316\316\0\360\360\0\360\360" - "\0ii\0\334\334\0\365\365\0\365\365\0ZZ\0\351\351\0\371\371\0\371\371\0II" - "\0\362\362\0\374\374\0\374\374\0""66\0\370\370\0\376\376\0\376\376\0\"\"" - "\0\374\374\0\376\376\0\376\376\0\16\16\0\376\376\0\376\376\0\376\376\0\376" - "\376\0\375\375\0\376\376\0\376\376\0\376\376\0\360\360\0\360\360\0\360\360" - "\0\360\360\0\16\16\0\376\376\0\376\376\0\16\16\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0""22\0--\0``\0vv\0xx\0kk\0\245\245\0\257\257\0\235\235\0\234\234" - "\0\312\312\0\315\315\0\241\241\0\272\272\0\337\337\0\326\326\0\225\225\0" - "\320\320\0\352\352\0\336\336\0\204\204\0\337\337\0\362\362\0\345\345\0qq" - "\0\353\353\0\370\370\0\354\354\0^^\0\363\363\0\373\373\0\362\362\0JJ\0\371" - "\371\0\375\375\0\367\367\0""66\0\374\374\0\376\376\0\373\373\0\"\"\0\376" - "\376\0\376\376\0\375\375\0\16\16\0\376\376\0\376\376\0\376\376\0\376\376" - "\0\376\376\0\376\376\0\375\375\0\376\376\0\376\376\0\375\375\0\360\360\0" - "\376\376\0\360\360\0\376\376\0\16\16\0\376\376\0\376\376\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0&&\0##\0FF\0""99\0``\0PP\0\213\213\0mm\0\237\237\0uu\0\275\275" - "\0\232\232\0\306\306\0\204\204\0\331\331\0\272\272\0\336\336\0\205\205\0" - "\345\345\0\320\320\0\352\352\0{{\0\355\355\0\337\337\0\362\362\0mm\0\363" - "\363\0\353\353\0\370\370\0\\\\\0\367\367\0\363\363\0\373\373\0II\0\373\373" - "\0\371\371\0\375\375\0""66\0\375\375\0\374\374\0\376\376\0\"\"\0\376\376" - "\0\376\376\0\376\376\0\16\16\0\376\376\0\376\376\0\376\376\0\376\376\0\376" - "\376\0\376\376\0\376\376\0\376\376\0\375\375\0\376\376\0\375\375\0\375\375" - "\0\360\360\0\360\360\0\376\376\0\376\376\0\16\16\0\376\376\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0""77\0""99\0gg\0\205\205\0\205\205\0ww\0\224\224\0" - "\310\310\0\310\310\0\247\247\0\240\240\0\354\354\0\354\354\0\306\306\0\227" - "\227\0\372\372\0\372\372\0\325\325\0\205\205\0\375\375\0\375\375\0\342\342" - "\0rr\0\376\376\0\376\376\0\354\354\0^^\0\376\376\0\376\376\0\363\363\0JJ" - "\0\376\376\0\376\376\0\370\370\0""66\0\376\376\0\376\376\0\374\374\0\"\"" - "\0\376\376\0\376\376\0\376\376\0\16\16\0\376\376\0\376\376\0\376\376\0\376" - "\376\0\376\376\0\376\376\0\376\376\0\376\376\0\376\376\0\376\376\0\375\375" - "\0\376\376\0\376\376\0\376\376\0\362\362\0\376\376\0\376\376\0\376\376\0" - "\16\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\22\22\0""77\0""77\0""11\0>>\0~~\0~~\0bb" - "\0__\0\261\261\0\261\261\0\212\212\0``\0\277\277\0\277\277\0\230\230\0SS" - "\0\275\275\0\275\275\0\233\233\0@@\0\273\273\0\273\273\0\240\240\0//\0\274" - "\274\0\274\274\0\252\252\0!!\0\301\301\0\301\301\0\266\266\0\25\25\0\311" - "\311\0\311\311\0\303\303\0\14\14\0\324\324\0\324\324\0\322\322\0\6\6\0\342" - "\342\0\342\342\0\341\341\0\1\1\0\361\361\0\361\361\0\361\361\0\15\15\0\15" - "\15\0\15\15\0\15\15\0\362\362\0\362\362\0\362\362\0\360\360\0\16\16\0\16" - "\16\0\16\16\0\2\2\0\376\376\0\376\376\0\376\376\0\16\16\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0""77\0\34\34\0SS\0kk\0\206\206\0BB\0\214\214\0\232\232" - "\0\302\302\0YY\0\250\250\0\255\255\0\340\340\0XX\0\264\264\0\264\264\0\355" - "\355\0SS\0\265\265\0\266\266\0\364\364\0JJ\0\270\270\0\272\272\0\371\371" - "\0AA\0\277\277\0\300\300\0\374\374\0""66\0\310\310\0\311\311\0\375\375\0" - "**\0\324\324\0\324\324\0\376\376\0\34\34\0\341\341\0\342\342\0\376\376\0" - "\15\15\0\361\361\0\361\361\0\376\376\0\361\361\0\15\15\0\15\15\0\376\376" - "\0\15\15\0\361\361\0\361\361\0\373\373\0\362\362\0\15\15\0\16\16\0\376\376" - "\0\16\16\0\361\361\0\376\376\0\376\376\0\376\376\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0))\0SS\0SS\0kk\0DD\0\205\205\0}}\0\222\222\0WW\0\241\241" - "\0\230\230\0\245\245\0XX\0\261\261\0\252\252\0\261\261\0SS\0\264\264\0\263" - "\263\0\265\265\0JJ\0\270\270\0\271\271\0\272\272\0AA\0\276\276\0\300\300" - "\0\300\300\0""66\0\310\310\0\311\311\0\311\311\0**\0\324\324\0\324\324\0" - "\324\324\0\34\34\0\341\341\0\342\342\0\342\342\0\15\15\0\361\361\0\361\361" - "\0\361\361\0\361\361\0\15\15\0\15\15\0\15\15\0\15\15\0\361\361\0\361\361" - "\0\361\361\0\362\362\0\15\15\0\16\16\0\16\16\0\16\16\0\361\361\0\376\376" - "\0\376\376\0\376\376\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&&\0&&\0&&\0))\0pp\0cc\0cc" - "\0QQ\0\261\261\0\244\244\0\244\244\0ll\0\335\335\0\323\323\0\323\323\0ww" - "\0\364\364\0\356\356\0\356\356\0ss\0\370\370\0\371\371\0\371\371\0ii\0\372" - "\372\0\375\375\0\375\375\0YY\0\374\374\0\376\376\0\376\376\0HH\0\375\375" - "\0\376\376\0\376\376\0""66\0\376\376\0\376\376\0\376\376\0\"\"\0\376\376" - "\0\376\376\0\376\376\0\16\16\0\376\376\0\376\376\0\376\376\0\376\376\0\376" - "\376\0\376\376\0\376\376\0\376\376\0\376\376\0\376\376\0\376\376\0\376\376" - "\0\375\375\0\376\376\0\376\376\0\376\376\0\361\361\0\376\376\0\376\376\0" - "\376\376\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\24\0&&\0&&\0\40\40\0QQ\0pp\0pp\0KK" - "\0\215\215\0\261\261\0\261\261\0pp\0\274\274\0\337\337\0\337\337\0\200\200" - "\0\332\332\0\364\364\0\364\364\0}}\0\350\350\0\373\373\0\373\373\0oo\0\361" - "\361\0\375\375\0\375\375\0]]\0\367\367\0\376\376\0\376\376\0JJ\0\373\373" - "\0\376\376\0\376\376\0""66\0\375\375\0\376\376\0\376\376\0\"\"\0\376\376" - "\0\376\376\0\376\376\0\16\16\0\376\376\0\376\376\0\376\376\0\376\376\0\376" - "\376\0\376\376\0\376\376\0\376\376\0\376\376\0\376\376\0\376\376\0\376\376" - "\0\375\375\0\376\376\0\376\376\0\376\376\0\361\361\0\376\376\0\376\376\0" - "\360\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\24\0&&\0&&\0\20\20\0""88\0WW\0pp\0" - "==\0ss\0\212\212\0\252\252\0dd\0\250\250\0\264\264\0\312\312\0rr\0\313\313" - "\0\315\315\0\331\331\0rr\0\340\340\0\331\331\0\340\340\0hh\0\355\355\0\341" - "\341\0\345\345\0YY\0\366\366\0\350\350\0\352\352\0HH\0\372\372\0\356\356" - "\0\357\357\0""66\0\375\375\0\364\364\0\364\364\0\"\"\0\376\376\0\371\371" - "\0\371\371\0\16\16\0\376\376\0\375\375\0\375\375\0\376\376\0\376\376\0\361" - "\361\0\362\362\0\376\376\0\376\376\0\16\16\0\16\16\0\376\376\0\375\375\0" - "\376\376\0\375\375\0\374\374\0\360\360\0\376\376\0\376\376\0\360\360\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\24\24\0\24\24\0&&\0\40\40\0""88\0""88\0WW\0BB\0ff" - "\0ZZ\0}}\0^^\0\226\226\0\201\201\0\241\241\0nn\0\301\301\0\246\246\0\277" - "\277\0rr\0\333\333\0\301\301\0\321\321\0ii\0\353\353\0\323\323\0\335\335" - "\0[[\0\365\365\0\341\341\0\346\346\0II\0\372\372\0\353\353\0\356\356\0""6" - "6\0\375\375\0\363\363\0\364\364\0\"\"\0\376\376\0\371\371\0\371\371\0\16" - "\16\0\376\376\0\375\375\0\375\375\0\376\376\0\376\376\0\361\361\0\361\361" - "\0\376\376\0\376\376\0\16\16\0\16\16\0\376\376\0\374\374\0\375\375\0\374" - "\374\0\374\374\0\361\361\0\376\376\0\360\360\0\360\360\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\24\24\0\24\24\0\24\24\0\40\40\0HH\0""88\0""88\0BB\0~~\0ff\0ff\0" - "^^\0\256\256\0\226\226\0\226\226\0qq\0\325\325\0\277\277\0\277\277\0ss\0" - "\350\350\0\331\331\0\331\331\0jj\0\363\363\0\353\353\0\353\353\0[[\0\371" - "\371\0\365\365\0\365\365\0II\0\374\374\0\372\372\0\372\372\0""66\0\375\375" - "\0\375\375\0\375\375\0\"\"\0\376\376\0\376\376\0\376\376\0\16\16\0\376\376" - "\0\376\376\0\376\376\0\376\376\0\376\376\0\376\376\0\376\376\0\376\376\0" - "\376\376\0\376\376\0\376\376\0\376\376\0\374\374\0\374\374\0\374\374\0\376" - "\376\0\361\361\0\360\360\0\360\360\0\360\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\24\24\0\24\24\0\24\24\0\40\40\0HH\0HH\0""88\0BB\0~~\0~~\0ff\0^^\0\263" - "\263\0\263\263\0\231\231\0nn\0\330\330\0\330\330\0\274\274\0pp\0\353\353" - "\0\353\353\0\324\324\0hh\0\365\365\0\365\365\0\345\345\0ZZ\0\373\373\0\373" - "\373\0\361\361\0II\0\375\375\0\375\375\0\370\370\0""66\0\376\376\0\376\376" - "\0\374\374\0\"\"\0\376\376\0\376\376\0\376\376\0\16\16\0\376\376\0\376\376" - "\0\376\376\0\376\376\0\376\376\0\376\376\0\376\376\0\376\376\0\376\376\0" - "\376\376\0\374\374\0\374\374\0\376\376\0\376\376\0\361\361\0\360\360\0\360" - "\360\0\360\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\24\0\24\24\0\0\0" - "\0\0\0\0((\0HH\0\40\40\0\25\25\0QQ\0\207\207\0KK\0--\0}}\0\262\262\0bb\0" - """44\0\235\235\0\320\320\0ff\0""00\0\257\257\0\341\341\0cc\0))\0\272\272" - "\0\354\354\0ZZ\0\37\37\0\303\303\0\363\363\0OO\0\26\26\0\314\314\0\370\370" - "\0AA\0\15\15\0\326\326\0\373\373\0""22\0\6\6\0\343\343\0\375\375\0!!\0\1" - "\1\0\362\362\0\376\376\0\16\16\0\16\16\0\16\16\0\375\375\0\375\375\0\375" - "\375\0\376\376\0\362\362\0\360\360\0\361\361\0\376\376\0\14\14\0\0\0\0\0" - "\0\0\360\360\0\360\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\24" - "\0\24\24\0\0\0\0\0\0\0((\0((\0\0\0\0\0\0\0<<\0<<\0\0\0\0\0\0\0PP\0PP\0\10" - "\10\0\4\4\0dd\0dd\0\14\14\0\6\6\0xx\0xx\0\14\14\0\5\5\0\214\214\0\214\214" - "\0\13\13\0\4\4\0\240\240\0\240\240\0\10\10\0\2\2\0\264\264\0\264\264\0\5" - "\5\0\1\1\0\310\310\0\310\310\0\3\3\0\0\0\0\334\334\0\334\334\0\1\1\0\0\0" - "\0\360\360\0\360\360\0\0\0\0\0\0\0\0\0\0\0\0\0\1\1\0\1\1\0\0\0\0\0\0\0\14" - "\14\0\14\14\0\0\0\0\0\0\0\360\360\0\360\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\24\24\0\24\24\0\0\0\0\0\0\0((\0((\0\0\0\0\0\0" - "\0<<\0<<\0\0\0\0\0\0\0XX\0XX\0\0\0\0\0\0\0pp\0pp\0\0\0\0\0\0\0\204\204\0" - "\204\204\0\0\0\0\0\0\0\227\227\0\227\227\0\0\0\0\0\0\0\250\250\0\250\250" - "\0\0\0\0\0\0\0\271\271\0\271\271\0\0\0\0\0\0\0\313\313\0\313\313\0\0\0\0" - "\0\0\0\335\335\0\335\335\0\0\0\0\0\0\0\360\360\0\360\360\0\0\0\0\0\0\0\1" - "\1\0\1\1\0\0\0\0\0\0\0\14\14\0\14\14\0\0\0\0\0\0\0\360\360\0\360\360\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\24\0" - "\24\24\0\24\24\0\0\0\0((\0((\0((\0\0\0\0<<\0HH\0HH\0\10\10\0PP\0dd\0dd\0" - "\14\14\0dd\0||\0||\0\14\14\0xx\0\221\221\0\221\221\0\13\13\0\214\214\0\243" - "\243\0\243\243\0\10\10\0\240\240\0\264\264\0\264\264\0\5\5\0\264\264\0\303" - "\303\0\303\303\0\3\3\0\310\310\0\322\322\0\322\322\0\1\1\0\334\334\0\341" - "\341\0\341\341\0\0\0\0\360\360\0\361\361\0\361\361\0\1\1\0\0\0\0\14\14\0" - "\14\14\0\14\14\0\0\0\0\360\360\0\360\360\0\360\360\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\24\0" - "\24\24\0\20\20\0\20\20\0""88\0""88\0**\0**\0ZZ\0ZZ\0==\0==\0yy\0yy\0II\0" - "II\0\224\224\0\224\224\0NN\0NN\0\254\254\0\254\254\0MM\0MM\0\302\302\0\302" - "\302\0HH\0HH\0\324\324\0\324\324\0>>\0>>\0\343\343\0\343\343\0""00\0""00" - "\0\356\356\0\356\356\0\40\40\0\40\40\0\367\367\0\367\367\0\16\16\0\16\16" - "\0\374\374\0\374\374\0\374\374\0\374\374\0\360\360\0\360\360\0\360\360\0" - "\360\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", -}; - diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/common/img_blitblend.c b/3rdparty/SDL-1.3.0-5387/test/automated/common/img_blitblend.c deleted file mode 100644 index 4f13de18e3..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/common/img_blitblend.c +++ /dev/null @@ -1,2690 +0,0 @@ -/* GIMP RGB C-Source image dump (alpha.c) */ - -static const SurfaceImage_t img_blendAdd = { - 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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0dd\0dd\0\310\310\0\310\310\0\310\310\0\310" - "\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310" - "\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0" - "\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310" - "\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310" - "\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0" - "\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310" - "\310\0dd\0dd\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0dd\0dd\0dd\0dd\0\310\310\0\310\310\0\310\310\0\310\310\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310\310" - "\0\310\310\0\310\310\0\310\310\0dd\0dd\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0dd\0dd\0dd\0dd\0\310\310\0\310\310\0\310\310\0\310\310" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\310\310\0\310\310\0\310\310\0\310\310\0dd\0dd\0dd" - "\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0dd\0dd\0\310\310\0\310\310\0" - "\310\310\0\310\310\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310\310\0\310" - "\310\0\310\310\0\310\310\0dd\0dd\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0dd\0" - "dd\0\310\310\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310\310\0" - "dd\0dd\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0dd\0dd\0\310\310\0\310\310\0\310\310" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\310\310\0\310\310\0\310\310\0dd\0dd\0dd\0dd\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0dd" - "\0\310\310\0\310\310\0\310\310\0\310\310\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310" - "\310\0\310\310\0\310\310\0\310\310\0dd\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0\310\310\0\310\310" - "\0\310\310\0\310\310\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310" - "\310\0\310\310\0\310\310\0\310\310\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0\310\310\0\310\310\0\310" - "\310\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\310\310\0\310\310\0\310\310\0dd\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0\310\310\0\310" - "\310\0\310\310\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\310\310\0\310\310\0\310\310\0dd\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\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\310" - "\0\310\310\0\310\310\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310\310\0\310\310" - "\0\310\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\310\310\0\310\310\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\310\310\0\310\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\310\310\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\310\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\0dd\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0dd\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\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\310\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310" - "\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\310\310\0\310\310\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\310\310\0\310\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\310\310\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\310\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\0dd\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0dd\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\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\310\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310\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\310\310\0\310\310\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\310\310\0\310\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\310\310\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\310\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\0dd\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0dd\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\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\310\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310\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\310" - "\310\0\310\310\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310" - "\310\0\310\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\310\310\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\310\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\0dd\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\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\310\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310\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\310\310" - "\0\310\310\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310\310" - "\0\310\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\310\310\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\310\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\0dd\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\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\310\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310\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\310\310\0\310" - "\310\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310\310\0\310" - "\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\310\310\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\310\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\0dd\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\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\310\0\377\377\0\377\377\0\310\310" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\310\310\0\377\377\0\377\377\0\310\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\310\310\0\310\310" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310\310\0\310\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\310\310\0\310\310\0\310\310\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310\310" - "\0\310\310\0\310\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\0dd\0\310\310\0\310\310\0\310\310\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310" - "\310\0\310\310\0\310\310\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0\310\310\0\310\310\0dd\0\310\310\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\310\310\0" - "dd\0\310\310\0\310\310\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0\310\310\0\310\310\0\310\310\0\310\310" - "\0\377\377\0\377\377\0\377\377\0\310\310\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\310\310\0\377\377\0\377\377\0\377\377\0\310\310\0\310\310\0\310" - "\310\0\310\310\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0dd\0\310\310\0\377\377\0\310\310\0\310\310" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\310\310\0\310\310\0\377\377\0\310\310\0dd" - "\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0dd\0dd\0dd\0\310\310\0\377\377\0\377\377\0\310\310\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\310\310\0\377\377\0\377\377\0\310\310\0dd\0dd\0dd\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd" - "\0\0\0\0\0\0\0dd\0\377\377\0\310\310\0\310\310\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\310\310\0\310\310\0\377\377\0dd\0\0" - "\0\0\0\0\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0\0\0\0\0\0\0dd\0dd\0\0\0\0\0" - "\0\0dd\0dd\0\0\0\0\0\0\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0" - "dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0" - "dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0dd\0\0\0\0\0\0\0dd\0dd\0\0\0\0\0\0\0" - "dd\0dd\0\0\0\0\0\0\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0\0\0\0" - "\0\0\0dd\0dd\0\0\0\0\0\0\0dd\0dd\0\0\0\0\0\0\0\310\310\0\310\310\0\0\0\0" - "\0\0\0\310\310\0\310\310\0\0\0\0\0\0\0\310\310\0\310\310\0\0\0\0\0\0\0\310" - "\310\0\310\310\0\0\0\0\0\0\0\310\310\0\310\310\0\0\0\0\0\0\0\310\310\0\310" - "\310\0\0\0\0\0\0\0\310\310\0\310\310\0\0\0\0\0\0\0\310\310\0\310\310\0\0" - "\0\0\0\0\0\310\310\0\310\310\0\0\0\0\0\0\0\310\310\0\310\310\0\0\0\0\0\0" - "\0dd\0dd\0\0\0\0\0\0\0dd\0dd\0\0\0\0\0\0\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0dd\0dd\0dd\0\0\0\0dd\0dd\0dd\0\0\0\0dd\0\310\310\0\310" - "\310\0dd\0dd\0\310\310\0\310\310\0dd\0dd\0\310\310\0\310\310\0dd\0dd\0\310" - "\310\0\310\310\0dd\0dd\0\310\310\0\310\310\0dd\0dd\0\310\310\0\310\310\0" - "dd\0dd\0\310\310\0\310\310\0dd\0dd\0\310\310\0\310\310\0dd\0dd\0\310\310" - "\0\310\310\0dd\0dd\0\310\310\0\310\310\0dd\0dd\0\310\310\0\310\310\0dd\0" - "\0\0\0dd\0dd\0dd\0\0\0\0dd\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0dd\0dd\0\310\310\0\310\310\0\310\310\0\310" - "\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310" - "\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0" - "\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310" - "\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310" - "\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0" - "\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310\310\0\310" - "\310\0dd\0dd\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", -}; - -static const SurfaceImage_t img_blendBlend = { - 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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0<<\0<<\0\240\240\0\240\240\0aa\0aa\0\240" - "\240\0\240\240\0aa\0aa\0\240\240\0\240\240\0aa\0aa\0\240\240\0\240\240\0" - "aa\0aa\0\240\240\0\240\240\0aa\0aa\0\240\240\0\240\240\0aa\0aa\0\240\240" - "\0\240\240\0aa\0aa\0\240\240\0\240\240\0aa\0aa\0\240\240\0\240\240\0aa\0" - "aa\0\240\240\0\240\240\0aa\0aa\0\240\240\0\240\240\0aa\0aa\0\240\240\0\240" - "\240\0\240\240\0\240\240\0dd\0dd\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0dd\0<<\0\240\240\0\240\240\0\240\240" - "\0aa\0\305\305\0\305\305\0\305\305\0ww\0\305\305\0\305\305\0\305\305\0ww" - "\0\305\305\0\305\305\0\305\305\0ww\0\305\305\0\305\305\0\305\305\0ww\0\305" - "\305\0\305\305\0\305\305\0ww\0\305\305\0\305\305\0\305\305\0ww\0\305\305" - "\0\305\305\0\305\305\0ww\0\305\305\0\305\305\0\305\305\0ww\0\305\305\0\305" - "\305\0\305\305\0ww\0\305\305\0\305\305\0\305\305\0ww\0\305\305\0\305\305" - "\0\305\305\0\305\305\0\240\240\0\240\240\0\240\240\0\240\240\0dd\0dd\0dd" - "\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0dd\0<<\0\240\240" - "\0\240\240\0\240\240\0aa\0\305\305\0\305\305\0\305\305\0ww\0\333\333\0\333" - "\333\0\305\305\0ww\0\333\333\0\333\333\0\305\305\0ww\0\333\333\0\333\333" - "\0\305\305\0ww\0\333\333\0\333\333\0\305\305\0ww\0\333\333\0\333\333\0\305" - "\305\0ww\0\333\333\0\333\333\0\305\305\0ww\0\333\333\0\333\333\0\305\305" - "\0ww\0\333\333\0\333\333\0\305\305\0ww\0\333\333\0\333\333\0\305\305\0ww" - "\0\333\333\0\333\333\0\305\305\0\305\305\0\305\305\0\305\305\0\240\240\0" - "\240\240\0\240\240\0\240\240\0dd\0dd\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0dd\0dd\0dd\0<<\0aa\0aa\0aa\0::\0HH\0HH\0HH\0++\0PP\0PP\0PP\0""00\0PP" - "\0PP\0PP\0""00\0PP\0PP\0PP\0""00\0PP\0PP\0PP\0""00\0PP\0PP\0PP\0""00\0PP" - "\0PP\0PP\0""00\0PP\0PP\0PP\0""00\0PP\0PP\0PP\0""00\0PP\0PP\0PP\0""00\0PP" - "\0PP\0PP\0PP\0HH\0HH\0HH\0HH\0aa\0aa\0aa\0aa\0dd\0dd\0dd\0dd\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0dd\0dd\0dd\0$$\0aa\0\305\305\0\305\305\0``\0\205\205\0\351\351\0" - "\351\351\0||\0\222\222\0\321\321\0\321\321\0\177\177\0\225\225\0\324\324" - "\0\321\321\0\177\177\0\225\225\0\324\324\0\321\321\0\177\177\0\225\225\0" - "\324\324\0\321\321\0\177\177\0\225\225\0\324\324\0\321\321\0\177\177\0\225" - "\225\0\324\324\0\321\321\0\177\177\0\225\225\0\324\324\0\321\321\0\177\177" - "\0\225\225\0\324\324\0\321\321\0\177\177\0\225\225\0\324\324\0\321\321\0" - "\177\177\0\225\225\0\324\324\0\321\321\0\222\222\0\222\222\0\321\321\0\314" - "\314\0\351\351\0\351\351\0\254\254\0\236\236\0\305\305\0\305\305\0aa\0<<" - "\0dd\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0<<\0dd\0\240\240\0\240\240\0aa\0\255\255" - "\0\322\322\0\322\322\0\177\177\0\315\315\0\343\343\0\343\343\0\211\211\0" - "\313\313\0\346\346\0\346\346\0\211\211\0\313\313\0\346\346\0\346\346\0\211" - "\211\0\313\313\0\346\346\0\346\346\0\211\211\0\313\313\0\346\346\0\346\346" - "\0\211\211\0\313\313\0\346\346\0\346\346\0\211\211\0\313\313\0\346\346\0" - "\346\346\0\211\211\0\313\313\0\346\346\0\346\346\0\211\211\0\313\313\0\346" - "\346\0\346\346\0\211\211\0\313\313\0\346\346\0\346\346\0\211\211\0\320\320" - "\0\327\327\0\327\327\0\322\322\0\276\276\0\322\322\0\322\322\0\305\305\0" - "yy\0\210\210\0\210\210\0dd\0<<\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0<<\0\210\210\0\240" - "\240\0\240\240\0aa\0\266\266\0\322\322\0\322\322\0\205\205\0\327\327\0\343" - "\343\0\343\343\0\215\215\0\346\346\0\357\357\0\331\331\0\222\222\0\347\347" - "\0\357\357\0\331\331\0\222\222\0\347\347\0\357\357\0\331\331\0\222\222\0" - "\347\347\0\357\357\0\331\331\0\222\222\0\347\347\0\357\357\0\331\331\0\222" - "\222\0\347\347\0\357\357\0\331\331\0\222\222\0\347\347\0\357\357\0\331\331" - "\0\222\222\0\347\347\0\357\357\0\331\331\0\222\222\0\347\347\0\357\357\0" - "\331\331\0\222\222\0\357\357\0\346\346\0\320\320\0\351\351\0\327\327\0\343" - "\343\0\276\276\0\333\333\0\322\322\0\266\266\0yy\0\240\240\0\210\210\0\240" - "\240\0<<\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0dd\0<<\0\240\240\0\210\210\0\240\240\0aa\0ww\0nn\0\177" - "\177\0MM\0SS\0OO\0SS\0""22\0WW\0TT\0XX\0""55\0UU\0UU\0XX\0""55\0UU\0UU\0" - "XX\0""55\0UU\0UU\0XX\0""55\0UU\0UU\0XX\0""55\0UU\0UU\0XX\0""55\0UU\0UU\0" - "XX\0""55\0UU\0UU\0XX\0""55\0UU\0UU\0XX\0""55\0UU\0XX\0TT\0TT\0LL\0OO\0SS" - "\0SS\0ss\0\177\177\0nn\0nn\0yy\0\210\210\0\240\240\0\240\240\0<<\0dd\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0<<" - "\0\240\240\0\240\240\0\210\210\0HH\0\205\205\0\351\351\0\333\333\0pp\0\225" - "\225\0\371\371\0\363\363\0\202\202\0\231\231\0\330\330\0\325\325\0\203\203" - "\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0\324\324\0" - "\203\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0\324" - "\324\0\203\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331" - "\0\324\324\0\203\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0" - "\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0\325\325\0\231\231\0\231" - "\231\0\330\330\0\323\323\0\371\371\0\371\371\0\274\274\0\257\257\0\351\351" - "\0\351\351\0\205\205\0``\0\240\240\0\240\240\0\240\240\0<<\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0<<\0\240\240" - "\0\240\240\0RR\0\207\207\0\304\304\0\304\304\0nn\0\275\275\0\343\343\0\343" - "\343\0\205\205\0\324\324\0\352\352\0\352\352\0\214\214\0\316\316\0\352\352" - "\0\352\352\0\213\213\0\316\316\0\352\352\0\352\352\0\213\213\0\316\316\0" - "\352\352\0\352\352\0\213\213\0\316\316\0\352\352\0\352\352\0\213\213\0\316" - "\316\0\352\352\0\352\352\0\213\213\0\316\316\0\352\352\0\352\352\0\213\213" - "\0\316\316\0\352\352\0\352\352\0\213\213\0\316\316\0\352\352\0\352\352\0" - "\213\213\0\316\316\0\352\352\0\352\352\0\214\214\0\324\324\0\336\336\0\336" - "\336\0\331\331\0\310\310\0\343\343\0\343\343\0\325\325\0\217\217\0\254\254" - "\0\254\254\0\207\207\0aa\0\240\240\0\240\240\0<<\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\240\240\0\240\240\0aa" - "\0\225\225\0\304\304\0\304\304\0\205\205\0\276\276\0\343\343\0\340\340\0" - "\222\222\0\333\333\0\352\352\0\351\351\0\226\226\0\347\347\0\362\362\0\333" - "\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351\351\0\361\361" - "\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351\351\0" - "\361\361\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351" - "\351\0\361\361\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230" - "\0\351\351\0\361\361\0\333\333\0\230\230\0\362\362\0\351\351\0\323\323\0" - "\366\366\0\336\336\0\351\351\0\304\304\0\351\351\0\343\343\0\304\304\0\217" - "\217\0\333\333\0\254\254\0\266\266\0aa\0\240\240\0\240\240\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\240\240\0aa" - "\0\305\305\0\225\225\0\304\304\0ww\0\205\205\0ss\0\211\211\0RR\0VV\0PP\0" - "VV\0""33\0XX\0UU\0YY\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0" - "XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0" - "XX\0""66\0UU\0UU\0XX\0""66\0UU\0YY\0UU\0UU\0MM\0QQ\0UU\0UU\0ww\0\211\211" - "\0ww\0||\0\217\217\0\254\254\0\266\266\0\305\305\0aa\0\240\240\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aa\0\305" - "\305\0\305\305\0\225\225\0UU\0\222\222\0\366\366\0\340\340\0tt\0\231\231" - "\0\375\375\0\364\364\0\203\203\0\231\231\0\331\331\0\326\326\0\203\203\0" - "\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0\324\324\0\203" - "\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0\324\324" - "\0\203\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0" - "\324\324\0\203\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331" - "\331\0\324\324\0\203\203\0\231\231\0\331\331\0\326\326\0\231\231\0\231\231" - "\0\331\331\0\324\324\0\373\373\0\375\375\0\300\300\0\263\263\0\361\361\0" - "\366\366\0\222\222\0mm\0\266\266\0\305\305\0\305\305\0aa\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0<<\0\305\305\0" - "\305\305\0``\0\214\214\0\321\321\0\321\321\0rr\0\277\277\0\346\346\0\346" - "\346\0\206\206\0\324\324\0\353\353\0\353\353\0\215\215\0\316\316\0\353\353" - "\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0\213\213\0\316\316\0" - "\353\353\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0\213\213\0\316" - "\316\0\353\353\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0\213\213" - "\0\316\316\0\353\353\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0" - "\213\213\0\316\316\0\353\353\0\353\353\0\215\215\0\324\324\0\337\337\0\337" - "\337\0\331\331\0\312\312\0\346\346\0\346\346\0\330\330\0\224\224\0\271\271" - "\0\271\271\0\217\217\0nn\0\305\305\0\305\305\0<<\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\240\240\0\305\305\0ww" - "\0\225\225\0\304\304\0\314\314\0\222\222\0\277\277\0\343\343\0\342\342\0" - "\226\226\0\333\333\0\352\352\0\351\351\0\227\227\0\350\350\0\362\362\0\333" - "\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351\351\0\361\361" - "\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351\351\0" - "\361\361\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351" - "\351\0\361\361\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230" - "\0\351\351\0\361\361\0\333\333\0\230\230\0\362\362\0\351\351\0\323\323\0" - "\370\370\0\336\336\0\352\352\0\306\306\0\354\354\0\344\344\0\305\305\0\227" - "\227\0\343\343\0\254\254\0\266\266\0ww\0\305\305\0\240\240\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\240\240\0aa" - "\0\333\333\0\236\236\0\304\304\0ww\0\210\210\0tt\0\211\211\0RR\0VV\0PP\0" - "VV\0""33\0XX\0UU\0YY\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0" - "XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0" - "XX\0""66\0UU\0UU\0XX\0""66\0UU\0YY\0UU\0UU\0MM\0QQ\0UU\0UU\0ww\0\211\211" - "\0ww\0}}\0\217\217\0\254\254\0\276\276\0\333\333\0aa\0\240\240\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aa\0\305" - "\305\0\305\305\0\236\236\0XX\0\222\222\0\366\366\0\341\341\0tt\0\231\231" - "\0\375\375\0\364\364\0\203\203\0\231\231\0\331\331\0\326\326\0\203\203\0" - "\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0\324\324\0\203" - "\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0\324\324" - "\0\203\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0" - "\324\324\0\203\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331" - "\331\0\324\324\0\203\203\0\231\231\0\331\331\0\326\326\0\231\231\0\231\231" - "\0\331\331\0\324\324\0\373\373\0\375\375\0\300\300\0\263\263\0\361\361\0" - "\366\366\0\222\222\0pp\0\276\276\0\305\305\0\305\305\0aa\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0<<\0\305\305\0" - "\305\305\0``\0\217\217\0\324\324\0\324\324\0rr\0\300\300\0\347\347\0\347" - "\347\0\206\206\0\324\324\0\353\353\0\353\353\0\215\215\0\316\316\0\353\353" - "\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0\213\213\0\316\316\0" - "\353\353\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0\213\213\0\316" - "\316\0\353\353\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0\213\213" - "\0\316\316\0\353\353\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0" - "\213\213\0\316\316\0\353\353\0\353\353\0\215\215\0\324\324\0\337\337\0\337" - "\337\0\332\332\0\312\312\0\347\347\0\347\347\0\330\330\0\224\224\0\274\274" - "\0\274\274\0\222\222\0nn\0\305\305\0\305\305\0<<\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\240\240\0\305\305\0ww" - "\0\225\225\0\304\304\0\314\314\0\225\225\0\300\300\0\344\344\0\342\342\0" - "\226\226\0\333\333\0\352\352\0\351\351\0\227\227\0\350\350\0\362\362\0\333" - "\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351\351\0\361\361" - "\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351\351\0" - "\361\361\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351" - "\351\0\361\361\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230" - "\0\351\351\0\361\361\0\333\333\0\230\230\0\362\362\0\351\351\0\323\323\0" - "\370\370\0\337\337\0\352\352\0\306\306\0\355\355\0\345\345\0\306\306\0\231" - "\231\0\343\343\0\254\254\0\266\266\0ww\0\305\305\0\240\240\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\240\240\0aa" - "\0\333\333\0\236\236\0\304\304\0ww\0\210\210\0tt\0\211\211\0RR\0VV\0PP\0" - "VV\0""33\0XX\0UU\0YY\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0" - "XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0" - "XX\0""66\0UU\0UU\0XX\0""66\0UU\0YY\0UU\0UU\0MM\0QQ\0UU\0UU\0ww\0\211\211" - "\0ww\0}}\0\217\217\0\254\254\0\276\276\0\333\333\0aa\0\240\240\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aa\0\305" - "\305\0\305\305\0\236\236\0XX\0\222\222\0\366\366\0\341\341\0tt\0\231\231" - "\0\375\375\0\364\364\0\203\203\0\231\231\0\331\331\0\326\326\0\203\203\0" - "\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0\324\324\0\203" - "\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0\324\324" - "\0\203\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0" - "\324\324\0\203\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331" - "\331\0\324\324\0\203\203\0\231\231\0\331\331\0\326\326\0\231\231\0\231\231" - "\0\331\331\0\324\324\0\373\373\0\375\375\0\300\300\0\263\263\0\361\361\0" - "\366\366\0\222\222\0pp\0\276\276\0\305\305\0\305\305\0aa\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0<<\0\305\305\0" - "\305\305\0``\0\217\217\0\324\324\0\324\324\0rr\0\300\300\0\347\347\0\347" - "\347\0\206\206\0\324\324\0\353\353\0\353\353\0\215\215\0\316\316\0\353\353" - "\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0\213\213\0\316\316\0" - "\353\353\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0\213\213\0\316" - "\316\0\353\353\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0\213\213" - "\0\316\316\0\353\353\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0" - "\213\213\0\316\316\0\353\353\0\353\353\0\215\215\0\324\324\0\337\337\0\337" - "\337\0\332\332\0\312\312\0\347\347\0\347\347\0\330\330\0\224\224\0\274\274" - "\0\274\274\0\222\222\0nn\0\305\305\0\305\305\0<<\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\240\240\0\305\305\0ww" - "\0\225\225\0\304\304\0\314\314\0\225\225\0\300\300\0\344\344\0\342\342\0" - "\226\226\0\333\333\0\352\352\0\351\351\0\227\227\0\350\350\0\362\362\0\333" - "\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351\351\0\361\361" - "\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351\351\0" - "\361\361\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351" - "\351\0\361\361\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230" - "\0\351\351\0\361\361\0\333\333\0\230\230\0\362\362\0\351\351\0\323\323\0" - "\370\370\0\337\337\0\352\352\0\306\306\0\355\355\0\345\345\0\306\306\0\231" - "\231\0\343\343\0\254\254\0\266\266\0ww\0\305\305\0\240\240\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\240\240\0aa" - "\0\333\333\0\236\236\0\304\304\0ww\0\210\210\0tt\0\211\211\0RR\0VV\0PP\0" - "VV\0""33\0XX\0UU\0YY\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0" - "XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0" - "XX\0""66\0UU\0UU\0XX\0""66\0UU\0YY\0UU\0UU\0MM\0QQ\0UU\0UU\0ww\0\211\211" - "\0ww\0}}\0\217\217\0\254\254\0\276\276\0\333\333\0aa\0\240\240\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aa\0\305" - "\305\0\305\305\0\236\236\0XX\0\222\222\0\366\366\0\341\341\0tt\0\231\231" - "\0\375\375\0\364\364\0\203\203\0\231\231\0\331\331\0\326\326\0\203\203\0" - "\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0\324\324\0\203" - "\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0\324\324" - "\0\203\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0" - "\324\324\0\203\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331" - "\331\0\324\324\0\203\203\0\231\231\0\331\331\0\326\326\0\231\231\0\231\231" - "\0\331\331\0\324\324\0\373\373\0\375\375\0\300\300\0\263\263\0\361\361\0" - "\366\366\0\222\222\0pp\0\276\276\0\305\305\0\305\305\0aa\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0<<\0\305\305\0" - "\305\305\0``\0\217\217\0\324\324\0\324\324\0rr\0\300\300\0\347\347\0\347" - "\347\0\206\206\0\324\324\0\353\353\0\353\353\0\215\215\0\316\316\0\353\353" - "\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0\213\213\0\316\316\0" - "\353\353\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0\213\213\0\316" - "\316\0\353\353\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0\213\213" - "\0\316\316\0\353\353\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0" - "\213\213\0\316\316\0\353\353\0\353\353\0\215\215\0\324\324\0\337\337\0\337" - "\337\0\332\332\0\312\312\0\347\347\0\347\347\0\330\330\0\224\224\0\274\274" - "\0\274\274\0\222\222\0nn\0\305\305\0\305\305\0<<\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\240\240\0\305\305\0ww" - "\0\225\225\0\304\304\0\314\314\0\225\225\0\300\300\0\344\344\0\342\342\0" - "\226\226\0\333\333\0\352\352\0\351\351\0\227\227\0\350\350\0\362\362\0\333" - "\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351\351\0\361\361" - "\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351\351\0" - "\361\361\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351" - "\351\0\361\361\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230" - "\0\351\351\0\361\361\0\333\333\0\230\230\0\362\362\0\351\351\0\323\323\0" - "\370\370\0\337\337\0\352\352\0\306\306\0\355\355\0\345\345\0\306\306\0\231" - "\231\0\343\343\0\254\254\0\266\266\0ww\0\305\305\0\240\240\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\240\240\0aa" - "\0\333\333\0\236\236\0\304\304\0ww\0\210\210\0tt\0\211\211\0RR\0VV\0PP\0" - "VV\0""33\0XX\0UU\0YY\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0" - "XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0XX\0""66\0UU\0UU\0" - "XX\0""66\0UU\0UU\0XX\0""66\0UU\0YY\0UU\0UU\0MM\0QQ\0UU\0UU\0ww\0\211\211" - "\0ww\0}}\0\217\217\0\254\254\0\276\276\0\333\333\0aa\0\240\240\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aa\0\305" - "\305\0\305\305\0\236\236\0XX\0\222\222\0\366\366\0\341\341\0tt\0\231\231" - "\0\375\375\0\364\364\0\203\203\0\231\231\0\331\331\0\326\326\0\203\203\0" - "\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0\324\324\0\203" - "\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0\324\324" - "\0\203\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331\331\0" - "\324\324\0\203\203\0\231\231\0\331\331\0\324\324\0\203\203\0\231\231\0\331" - "\331\0\324\324\0\203\203\0\231\231\0\331\331\0\326\326\0\231\231\0\231\231" - "\0\331\331\0\324\324\0\373\373\0\375\375\0\300\300\0\263\263\0\361\361\0" - "\366\366\0\222\222\0pp\0\276\276\0\305\305\0\305\305\0aa\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0<<\0\305\305\0" - "\305\305\0``\0\217\217\0\324\324\0\324\324\0rr\0\300\300\0\347\347\0\347" - "\347\0\206\206\0\324\324\0\353\353\0\353\353\0\215\215\0\316\316\0\353\353" - "\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0\213\213\0\316\316\0" - "\353\353\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0\213\213\0\316" - "\316\0\353\353\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0\213\213" - "\0\316\316\0\353\353\0\353\353\0\213\213\0\316\316\0\353\353\0\353\353\0" - "\213\213\0\316\316\0\353\353\0\353\353\0\215\215\0\324\324\0\337\337\0\337" - "\337\0\332\332\0\312\312\0\347\347\0\347\347\0\330\330\0\224\224\0\274\274" - "\0\274\274\0\222\222\0nn\0\305\305\0\305\305\0<<\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\240\240\0\305\305\0ww" - "\0\225\225\0\304\304\0\314\314\0\225\225\0\300\300\0\344\344\0\342\342\0" - "\226\226\0\333\333\0\352\352\0\351\351\0\227\227\0\350\350\0\362\362\0\333" - "\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351\351\0\361\361" - "\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351\351\0" - "\361\361\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230\0\351" - "\351\0\361\361\0\333\333\0\230\230\0\351\351\0\361\361\0\333\333\0\230\230" - "\0\351\351\0\361\361\0\333\333\0\230\230\0\362\362\0\351\351\0\323\323\0" - "\370\370\0\337\337\0\352\352\0\306\306\0\355\355\0\345\345\0\306\306\0\231" - "\231\0\343\343\0\254\254\0\266\266\0ww\0\305\305\0\240\240\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\240\240\0aa" - "\0\333\333\0\236\236\0\304\304\0ww\0\340\340\0\300\300\0\343\343\0\210\210" - "\0\354\354\0\333\333\0\352\352\0\215\215\0\361\361\0\350\350\0\362\362\0" - "\223\223\0\351\351\0\351\351\0\361\361\0\223\223\0\351\351\0\351\351\0\361" - "\361\0\223\223\0\351\351\0\351\351\0\361\361\0\223\223\0\351\351\0\351\351" - "\0\361\361\0\223\223\0\351\351\0\351\351\0\361\361\0\223\223\0\351\351\0" - "\351\351\0\361\361\0\223\223\0\351\351\0\351\351\0\361\361\0\223\223\0\351" - "\351\0\351\351\0\361\361\0\223\223\0\351\351\0\362\362\0\351\351\0\351\351" - "\0\323\323\0\336\336\0\351\351\0\351\351\0\304\304\0\343\343\0\305\305\0" - "\317\317\0\217\217\0\254\254\0\276\276\0\333\333\0aa\0\240\240\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0aa\0\305" - "\305\0\305\305\0\236\236\0\222\222\0\361\361\0\361\361\0\316\316\0\230\230" - "\0\373\373\0\373\373\0\344\344\0\231\231\0\375\375\0\375\375\0\357\357\0" - "\231\231\0\375\375\0\375\375\0\347\347\0\231\231\0\375\375\0\375\375\0\347" - "\347\0\231\231\0\375\375\0\375\375\0\347\347\0\231\231\0\375\375\0\375\375" - "\0\347\347\0\231\231\0\375\375\0\375\375\0\347\347\0\231\231\0\375\375\0" - "\375\375\0\347\347\0\231\231\0\375\375\0\375\375\0\347\347\0\231\231\0\375" - "\375\0\375\375\0\347\347\0\231\231\0\375\375\0\375\375\0\360\360\0\373\373" - "\0\375\375\0\375\375\0\347\347\0\367\367\0\373\373\0\373\373\0\326\326\0" - "\351\351\0\361\361\0\361\361\0\271\271\0\276\276\0\305\305\0\305\305\0aa" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0<<\0\305\305\0\305\305\0\236\236\0HH\0\271\271\0\271\271\0\224\224\0VV" - "\0\277\277\0\277\277\0\251\251\0DD\0\252\252\0\252\252\0\235\235\0FF\0\253" - "\253\0\253\253\0\224\224\0EE\0\253\253\0\253\253\0\224\224\0EE\0\253\253" - "\0\253\253\0\224\224\0EE\0\253\253\0\253\253\0\224\224\0EE\0\253\253\0\253" - "\253\0\224\224\0EE\0\253\253\0\253\253\0\224\224\0EE\0\253\253\0\253\253" - "\0\224\224\0EE\0\253\253\0\253\253\0\224\224\0EE\0\253\253\0\253\253\0\235" - "\235\0rr\0uu\0uu\0^^\0\272\272\0\277\277\0\277\277\0\230\230\0\205\205\0" - "\222\222\0\222\222\0MM\0\266\266\0\305\305\0\305\305\0<<\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\240\240\0\305" - "\305\0\305\305\0RR\0\236\236\0\254\254\0\361\361\0VV\0\267\267\0\263\263" - "\0\356\356\0ee\0\247\247\0\244\244\0\356\356\0^^\0\251\251\0\247\247\0\365" - "\365\0bb\0\242\242\0\247\247\0\365\365\0bb\0\242\242\0\247\247\0\365\365" - "\0bb\0\242\242\0\247\247\0\365\365\0bb\0\242\242\0\247\247\0\365\365\0bb" - "\0\242\242\0\247\247\0\365\365\0bb\0\242\242\0\247\247\0\365\365\0bb\0\242" - "\242\0\247\247\0\365\365\0bb\0\242\242\0\247\247\0\365\365\0\252\252\0ee" - "\0jj\0\345\345\0tt\0\246\246\0\251\251\0\321\321\0\272\272\0ff\0\222\222" - "\0\322\322\0ww\0\210\210\0\305\305\0\305\305\0\240\240\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\240\240\0\240\240" - "\0\305\305\0``\0\236\236\0\236\236\0\254\254\0VV\0\264\264\0\254\254\0\261" - "\261\0dd\0\246\246\0\240\240\0\243\243\0^^\0\251\251\0\246\246\0\246\246" - "\0bb\0\242\242\0\246\246\0\246\246\0bb\0\242\242\0\246\246\0\246\246\0bb" - "\0\242\242\0\246\246\0\246\246\0bb\0\242\242\0\246\246\0\246\246\0bb\0\242" - "\242\0\246\246\0\246\246\0bb\0\242\242\0\246\246\0\246\246\0bb\0\242\242" - "\0\246\246\0\246\246\0bb\0\242\242\0\246\246\0\246\246\0\251\251\0dd\0hh" - "\0hh\0pp\0\243\243\0\240\240\0\236\236\0\264\264\0cc\0\177\177\0ww\0ww\0" - "\225\225\0\305\305\0\240\240\0\240\240\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\240\240\0\240\240\0\240\240\0``" - "\0\351\351\0\333\333\0\333\333\0||\0\366\366\0\361\361\0\361\361\0\211\211" - "\0\373\373\0\371\371\0\371\371\0\221\221\0\375\375\0\374\374\0\374\374\0" - "\224\224\0\365\365\0\374\374\0\374\374\0\224\224\0\365\365\0\374\374\0\374" - "\374\0\224\224\0\365\365\0\374\374\0\374\374\0\224\224\0\365\365\0\374\374" - "\0\374\374\0\224\224\0\365\365\0\374\374\0\374\374\0\224\224\0\365\365\0" - "\374\374\0\374\374\0\224\224\0\365\365\0\374\374\0\374\374\0\224\224\0\365" - "\365\0\374\374\0\374\374\0\375\375\0\356\356\0\371\371\0\371\371\0\372\372" - "\0\340\340\0\361\361\0\361\361\0\364\364\0\307\307\0\333\333\0\333\333\0" - "\351\351\0\225\225\0\240\240\0\240\240\0\240\240\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0\240\240\0\240\240" - "\0aa\0\304\304\0\351\351\0\351\351\0\205\205\0\340\340\0\366\366\0\366\366" - "\0\222\222\0\355\355\0\373\373\0\373\373\0\227\227\0\364\364\0\375\375\0" - "\375\375\0\230\230\0\360\360\0\375\375\0\375\375\0\230\230\0\360\360\0\375" - "\375\0\375\375\0\230\230\0\360\360\0\375\375\0\375\375\0\230\230\0\360\360" - "\0\375\375\0\375\375\0\230\230\0\360\360\0\375\375\0\375\375\0\230\230\0" - "\360\360\0\375\375\0\375\375\0\230\230\0\360\360\0\375\375\0\375\375\0\230" - "\230\0\360\360\0\375\375\0\375\375\0\373\373\0\356\356\0\373\373\0\373\373" - "\0\367\367\0\340\340\0\364\364\0\364\364\0\354\354\0\304\304\0\351\351\0" - "\351\351\0\322\322\0\210\210\0\240\240\0\240\240\0dd\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0\240\240\0\240" - "\240\0<<\0\240\240\0\305\305\0\351\351\0ww\0\320\320\0\301\301\0\324\324" - "\0\211\211\0\345\345\0\316\316\0\324\324\0\217\217\0\356\356\0\323\323\0" - "\326\326\0\223\223\0\354\354\0\323\323\0\326\326\0\223\223\0\354\354\0\323" - "\323\0\326\326\0\223\223\0\354\354\0\323\323\0\326\326\0\223\223\0\354\354" - "\0\323\323\0\326\326\0\223\223\0\354\354\0\323\323\0\326\326\0\223\223\0" - "\354\354\0\323\323\0\326\326\0\223\223\0\354\354\0\323\323\0\326\326\0\223" - "\223\0\354\354\0\323\323\0\326\326\0\362\362\0\344\344\0\261\261\0\272\272" - "\0\364\364\0\340\340\0\225\225\0\205\205\0\340\340\0\276\276\0\351\351\0" - "\266\266\0\240\240\0dd\0\240\240\0\240\240\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0\240\240\0aa\0\240" - "\240\0\240\240\0\305\305\0ww\0\305\305\0\240\240\0\266\266\0\205\205\0\333" - "\333\0\266\266\0\304\304\0\215\215\0\352\352\0\305\305\0\314\314\0\222\222" - "\0\352\352\0\305\305\0\314\314\0\222\222\0\352\352\0\305\305\0\314\314\0" - "\222\222\0\352\352\0\305\305\0\314\314\0\222\222\0\352\352\0\305\305\0\314" - "\314\0\222\222\0\352\352\0\305\305\0\314\314\0\222\222\0\352\352\0\305\305" - "\0\314\314\0\222\222\0\352\352\0\305\305\0\314\314\0\222\222\0\352\352\0" - "\305\305\0\314\314\0\361\361\0\335\335\0\242\242\0\236\236\0\333\333\0\312" - "\312\0ii\0aa\0\305\305\0\255\255\0\266\266\0\240\240\0\240\240\0\210\210" - "\0\240\240\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0dd\0dd\0dd\0aa\0\305\305\0\240\240\0\240\240\0ww\0\333" - "\333\0\305\305\0\305\305\0\205\205\0\351\351\0\333\333\0\333\333\0\217\217" - "\0\363\363\0\351\351\0\351\351\0\223\223\0\357\357\0\351\351\0\351\351\0" - "\223\223\0\357\357\0\351\351\0\351\351\0\223\223\0\357\357\0\351\351\0\351" - "\351\0\223\223\0\357\357\0\351\351\0\351\351\0\223\223\0\357\357\0\351\351" - "\0\351\351\0\223\223\0\357\357\0\351\351\0\351\351\0\223\223\0\357\357\0" - "\351\351\0\351\351\0\223\223\0\357\357\0\351\351\0\351\351\0\363\363\0\345" - "\345\0\333\333\0\333\333\0\340\340\0\312\312\0\305\305\0\305\305\0\322\322" - "\0\255\255\0\240\240\0\240\240\0\305\305\0\210\210\0dd\0dd\0dd\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd" - "\0dd\0dd\0aa\0\305\305\0\305\305\0\240\240\0ww\0\333\333\0\333\333\0\305" - "\305\0\205\205\0\355\355\0\355\355\0\336\336\0\215\215\0\364\364\0\364\364" - "\0\335\335\0\215\215\0\364\364\0\364\364\0\335\335\0\215\215\0\364\364\0" - "\364\364\0\335\335\0\215\215\0\364\364\0\364\364\0\335\335\0\215\215\0\364" - "\364\0\364\364\0\335\335\0\215\215\0\364\364\0\364\364\0\335\335\0\215\215" - "\0\364\364\0\364\364\0\335\335\0\215\215\0\364\364\0\364\364\0\335\335\0" - "\215\215\0\364\364\0\364\364\0\335\335\0\351\351\0\355\355\0\355\355\0\312" - "\312\0\305\305\0\322\322\0\322\322\0\255\255\0\240\240\0\305\305\0\305\305" - "\0\210\210\0dd\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0\0\0\0\0\0\0dd\0\305\305\0aa" - "\0""11\0\225\225\0\351\351\0\205\205\0HH\0\254\254\0\333\333\0ww\0BB\0\264" - "\264\0\340\340\0nn\0BB\0\264\264\0\340\340\0nn\0BB\0\264\264\0\340\340\0" - "nn\0BB\0\264\264\0\340\340\0nn\0BB\0\264\264\0\340\340\0nn\0BB\0\264\264" - "\0\340\340\0nn\0BB\0\264\264\0\340\340\0nn\0BB\0\264\264\0\340\340\0nn\0" - "BB\0\264\264\0\340\340\0nn\0nn\0\205\205\0\314\314\0\266\266\0\304\304\0" - "\351\351\0\236\236\0yy\0\210\210\0\305\305\0<<\0\0\0\0\0\0\0dd\0dd\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0dd\0dd\0\0\0\0\0\0\0dd\0dd\0\0\0\0\0\0\0dd\0dd\0\0\0\0\0\0" - "\0dd\0dd\0\25\25\0\14\14\0dd\0dd\0\25\25\0\14\14\0dd\0dd\0\25\25\0\14\14" - "\0dd\0dd\0\25\25\0\14\14\0dd\0dd\0\25\25\0\14\14\0dd\0dd\0\25\25\0\14\14" - "\0dd\0dd\0\25\25\0\14\14\0dd\0dd\0\25\25\0\14\14\0dd\0dd\0\25\25\0\14\14" - "\0dd\0dd\0\25\25\0\25\25\0\0\0\0\0\0\0$$\0$$\0\0\0\0\0\0\0<<\0<<\0\0\0\0" - "\0\0\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0\0\0\0\0\0\0dd\0dd\0" - "\0\0\0\0\0\0dd\0dd\0\0\0\0\0\0\0yy\0yy\0\0\0\0\0\0\0yy\0yy\0\0\0\0\0\0\0" - "yy\0yy\0\0\0\0\0\0\0yy\0yy\0\0\0\0\0\0\0yy\0yy\0\0\0\0\0\0\0yy\0yy\0\0\0" - "\0\0\0\0yy\0yy\0\0\0\0\0\0\0yy\0yy\0\0\0\0\0\0\0yy\0yy\0\0\0\0\0\0\0yy\0" - "yy\0\0\0\0\0\0\0$$\0$$\0\0\0\0\0\0\0<<\0<<\0\0\0\0\0\0\0dd\0dd\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0dd\0dd\0dd\0\0\0\0dd\0dd\0dd\0\0\0\0dd" - "\0\210\210\0\210\210\0\25\25\0dd\0\210\210\0\210\210\0\25\25\0dd\0\210\210" - "\0\210\210\0\25\25\0dd\0\210\210\0\210\210\0\25\25\0dd\0\210\210\0\210\210" - "\0\25\25\0dd\0\210\210\0\210\210\0\25\25\0dd\0\210\210\0\210\210\0\25\25" - "\0dd\0\210\210\0\210\210\0\25\25\0dd\0\210\210\0\210\210\0\25\25\0dd\0\210" - "\210\0\210\210\0\25\25\0dd\0\210\210\0\210\210\0$$\0\0\0\0<<\0<<\0<<\0\0" - "\0\0dd\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0dd\0dd\0<<\0<<\0\240\240\0\240\240\0aa\0aa\0\240\240\0\240\240\0aa\0" - "aa\0\240\240\0\240\240\0aa\0aa\0\240\240\0\240\240\0aa\0aa\0\240\240\0\240" - "\240\0aa\0aa\0\240\240\0\240\240\0aa\0aa\0\240\240\0\240\240\0aa\0aa\0\240" - "\240\0\240\240\0aa\0aa\0\240\240\0\240\240\0aa\0aa\0\240\240\0\240\240\0" - "aa\0aa\0\240\240\0\240\240\0aa\0aa\0\240\240\0\240\240\0\240\240\0\240\240" - "\0dd\0dd\0dd\0dd\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", -}; - -static const SurfaceImage_t img_blendMod = { - 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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", -}; - -static const SurfaceImage_t img_blendNone = { - 80, 60, 3, - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\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\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\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\0\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\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\0\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\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\0\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\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\0\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\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\0\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\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\0\0\377" - "\377\0\377\377\0\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\0" - "\0\0\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\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\0\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\377\0\0\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\377\0\0\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\0\0\0\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\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\0\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\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\0\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\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\0\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\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\0\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\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\0\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\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\0\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0" - "\377\377\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\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\0\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377" - "\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\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\0\0\377\377\0\377\377" - "\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\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\0\0\377\377\0\377\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\0\0\0\0\0\0\377\377\0\377\377\0\0\0\0\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\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\0\0\377\377\0\377\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\377\377\0\377\377\0\0\0\0\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\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\0\0\377\377\0\377" - "\377\0\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\0\377\377\0" - "\377\377\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\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\0\0\0\0\0\377\377\0\377\377\0\377\377\0\377" - "\377\0\377\377\0\377\377\0\377\377\0\377\377\0\0\0\0\0\0\0\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" - "\377\377\377\377\377\377\377\377", -}; - -static const SurfaceImage_t img_blendAll = { - 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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\4\0\0\0\0\0\0\0" - "\0\11\0\0\11\0\0\0\0\0\0\0\0\16\0\0\16\0\0\0\0\0\0\0\0\11\0\0\11\0\0\0\0" - "\0\0\0\0\14\0\0\14\0\0\0\0\0\0\0\0\17\0\0\17\0\0\0\0\0\0\0\0\21\0\0\21\0" - "\0\0\0\0\0\0\0K\0\0K\0\0\0\0\0\0\0\0T\0\0T\0\0\0\0\0\0\0\0^\0\0^\0\0\0\0" - "\0\0\0\0g\0\0g\0\0\0\0\0\0\0\0\317\0\0\317\0\0\317\0\0\317\0\0\317\0\0\317" - "\0\0\317\0\0\317\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\4\0\0\4\0\0\0\0\0\11\0\0\11\0\0\11" - "\0\0\0\0\0\16\0\0\16\0\0\16\0\0\0\0\0\22\0\0\22\0\0\11\0\0\0\0\0\14\0\0\14" - "\0\0\14\0\0\0\0\0\17\0\0\17\0\0\17\0\0\0\0\0\21\0\0\21\0\0\21\0\0\0\0\0\24" - "\0\0\24\0\0K\0\0\0\0\0T\0\0T\0\0T\0\0\0\0\0^\0\0^\0\0^\0\0\0\0\0g\0\0g\0" - "\0g\0\0\0\0\0q\0\0q\0\0\317\0\0\317\0\0\317\0\0\317\0\0\317\0\0\317\0\0\317" - "\0\0\317\0\0\317\0\0\317\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\4\0\0\4\0\0\4\0\0\0\0\0\11\0\0\11\0\0\11\0\0\0\0\0" - "\16\0\0\16\0\0\16\0\0\0\0\0\22\0\0\22\0\0\22\0\0\0\0\0\14\0\0\14\0\0\14\0" - "\0\0\0\0\17\0\0\17\0\0\17\0\0\0\0\0\21\0\0\21\0\0\21\0\0\0\0\0\24\0\0\24" - "\0\0\24\0\0\0\0\0T\0\0T\0\0T\0\0\0\0\0^\0\0^\0\0^\0\0\0\0\0g\0\0g\0\0g\0" - "\0\0\0\0q\0\0q\0\0q\0\0\317\0\0\317\0\0\317\0\0\317\0\0\317\0\0\317\0\0\317" - "\0\0\317\0\0\317\0\0\317\0\0\317\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\4\0\0\4\0\0\4\0\0\0\0\0\10\0\0\10\0\0\10\0\0\0\0\0\15" - "\0\0\15\0\0\15\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\16\0\0\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0J\0\0J\0\0J\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\317" - "\0\0\317\0\0\317\0\0\317\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\1\0\0\0\0\0\0\0\0\1\0\0\1\0\0\1\0\0\1" - "\0\0\4\0\0\4\0\0\0\0\0\0\0\0\7\0\0\7\0\0\0\0\0\0\0\0&\0\0&\0\0\32\0\0\32" - "\0\0&\0\0&\0\0&\0\0&\0\0C\0\0C\0\0\0\0\0\0\0\0^\0\0^\0\0\0\0\0\0\0\17\251" - "\0\17\251\0\17\251\0\17\251\0\17\251\0\17\251\0\17\251\0\17\251\0\0\0\0\0" - "\0\0\0\317\0\0\317\0\0\317\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\6\2\0\6\2\0\0\1\0\0\0\0\0\1\0\0\1\0\0\1\0\0\1\0\0\1\0\0\1\0\0" - "\17\0\0\0\0\0\4\0\0\11\0\0\11\0\0\0\0\6+\0\6+\0\0&\0\0\32\0\0&\0\0&\0\0&" - "\0\0&\0\0""5\0\0""5\0\2\210\0\0\0\0\0C\0\0|\0\0|\0\0\0\0\17\251\0\17\251" - "\0\17\251\0\17\251\0\17\251\0\17\251\0\17\251\0\17\251\0\17\251\0\17\251" - "\0$\360\0$\360\0\0\0\0\0\317\0\0\317\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1" - "\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\1\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\6\2\0\6\2\0\6\2\0\0\0\0\0\1\0\0\1\0\0\1\0\0\1\0\0\1\0\0\1" - "\0\0\1\0\0\0\0\0\17\0\0\17\0\0\4\0\0\0\0\6+\0\6+\0\6+\0\0\32\0\0&\0\0&\0" - "\0&\0\0&\0\0""5\0\0""5\0\0""5\0\0\0\0\2\210\0\2\210\0\0C\0\0\0\0\17\251\0" - "\17\251\0\17\251\0\17\251\0\17\251\0\17\251\0\17\251\0\17\251\0\17\251\0" - "\17\251\0\17\251\0$\360\0$\360\0$\360\0\0\0\0\0\317\0\0\317\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\1\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "$\360\0$\360\0$\360\0$\360\0\0\0\0\0\317\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0" - "\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\14\1\0\14\1\0\14\1" - "\0\14\1\0\15\1\0\15\1\0\0\0\0\0\0\0\14\2\0\14\2\0\14\2\0\14\2\0\16\2\0\16" - "\2\0\0\0\0\0\0\0\14!\0\14!\0\14!\0\14!\0\17(\0\17(\0\0\0\0\0\0\0\14+\0\14" - "+\0\14+\0\14+\0\20""9\0\20""9\0\0\0\0\0\0\0\36\215\0\36\215\0\36\215\0\36" - "\215\0(\264\0(\264\0\0\0\0\0\0\0\36\251\0\36\251\0\36\251\0\36\251\0\36\251" - "\0\36\251\0\36\251\0\36\251\0\0\0\0\0\0\0$\360\0$\360\0$\360\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\1\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\36\3" - "\0\36\3\0\14\1\0\14\1\0\15\1\0\15\1\0\15\1\0\0\0\0\14\2\0\14\2\0\14\2\0\14" - "\2\0\16\2\0\16\2\0\16\2\0\0\0\0\14\3\0\14\3\0\14!\0\14!\0\17(\0\17(\0\17" - "(\0\0\0\0\14+\0\14+\0\14+\0\14+\0\20""9\0\20""9\0\20""9\0\0\0\0\14""7\0\14" - """7\0\36\215\0\36\215\0(\264\0(\264\0(\264\0\0\0\0\36\251\0\36\251\0\36\251" - "\0\36\251\0\36\251\0\36\251\0\36\251\0\36\251\0\36\251\0\36\251\0H\360\0" - "H\360\0\0\0\0$\360\0$\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\1\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\36\3\0\36\3\0\36\3\0\14\1\0\15\1\0\15\1\0\15\1" - "\0\0\0\0\14\2\0\14\2\0\14\2\0\14\2\0\16\2\0\16\2\0\16\2\0\0\0\0\14\3\0\14" - "\3\0\14\3\0\14!\0\17(\0\17(\0\17(\0\0\0\0\14+\0\14+\0\14+\0\14+\0\20""9\0" - "\20""9\0\20""9\0\0\0\0\14""7\0\14""7\0\14""7\0\36\215\0(\264\0(\264\0(\264" - "\0\0\0\0\36\251\0\36\251\0\36\251\0\36\251\0\36\251\0\36\251\0\36\251\0\36" - "\251\0\36\251\0\36\251\0\36\251\0H\360\0H\360\0H\360\0\0\0\0$\360\0$\360" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\13\1\0\13\1\0\13\1\0\13\1\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11!\0" - "\11!\0\11!\0\11!\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\23n\0\23n\0\23n\0\23n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0H\360\0H\360\0H\360\0H\360\0\0\0\0$\360\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\1\0\1\1\0\0\0\0\0\0\0\0\0\0\0\0\0\25\0\0\25\0\0\25\0\0\27\0" - "\0\13\0\0\13\0\0\1\0\0\11\0\0\4\0\0\4\0\0\0\0\0\0\0\0\25\3\0\25\3\0\0\0\0" - "\0\0\0\25\3\0\25\3\0\25\3\0\25\3\0\3\1\0\3\1\0\2\1\0\7\5\0\7\3\0\7\3\0\0" - "\0\0\0\0\0\25""4\0\25""4\0\0\0\0\0\0\0\25""4\0\25""4\0\25""4\0\25""4\0\20" - "\35\0\20\35\0\11\22\0\23F\0\34""6\0\34""6\0\0\0\0\0\0\0L\317\0L\317\0L\317" - "\0L\317\0L\317\0L\317\0L\317\0L\317\0\0\0\0\0\0\0""2\317\0""2\317\0""2\317" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\1\0\0\0\0\0\0\0\0\0\0\25\0\0\25" - "\0\0\25\0\0\4\0\0\5\0\0\2\0\0\1\0\0\4\0\0\14\0\0\14\0\0\0\0\0\37\7\0\37\7" - "\0\25\3\0\0\0\0\25\3\0\25\3\0\25\3\0\25\3\0\37\6\0\37\6\0\15\4\0\11\3\0\7" - "\3\0\14\10\0\14\10\0\0\0\0\25\16\0\25\16\0\25""4\0\0\0\0\25""4\0\25""4\0" - "\25""4\0\25""4\0&Q\0&Q\0&Q\0\31""5\0\34""6\0&j\0&j\0\0\0\0""5q\0""5q\0L\317" - "\0L\317\0L\317\0L\317\0L\317\0L\317\0L\317\0L\317\0L\317\0L\317\0\0\0\0""2" - "\317\0""2\317\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\1\1\0\0\0\0\0\0\0\25\0" - "\0\25\0\0\25\0\0\31\1\0\5\0\0\5\0\0\2\0\0\4\0\0\14\0\0\14\0\0\0\0\0\37\7" - "\0\37\7\0\37\7\0\0\0\0\25\3\0\25\3\0\25\3\0\25\3\0\37\6\0\37\6\0\37\6\0\11" - "\3\0\16\6\0\16\6\0\7\3\0\0\0\0\25\16\0\25\16\0\25\16\0\0\0\0\25""4\0\25""4" - "\0\25""4\0\25""4\0&Q\0&Q\0&Q\0\31""5\0+X\0+X\0\34""6\0\0\0\0""5q\0""5q\0" - """5q\0L\317\0L\317\0L\317\0L\317\0L\317\0L\317\0L\317\0L\317\0L\317\0L\317" - "\0L\317\0\0\0\0""2\317\0""2\317\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0" - "\0\0\0\0\25\0\0\25\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0L\317\0L\317\0L\317\0L\317" - "\0\0\0\0""2\317\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0e\4\0e\4\0\0\0\0\0\0\0e\11\0e\11\0\0\0\0\0\0\0e\16\0e\16\0\0\0\0\0\0" - "\0G\11\0G\11\0\0\0\0\0\0\0G\14\0G\14\0\0\0\0\0\0\0G\17\0G\17\0\0\0\0\0\0" - "\0G\21\0G\21\0\0\0\0\0\0\0GK\0GK\0\0\0\0\0\0\0GT\0GT\0\0\0\0\0\0\0G^\0G^" - "\0\0\0\0\0\0\0Gg\0Gg\0\0\0\0\0\0\0e\317\0e\317\0e\317\0e\317\0e\317\0e\317" - "\0e\317\0e\317\0\0\0\0\0\0\0L\317\0L\317\0L\317\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0e\4\0e\4\0e\4\0\0\0\0e\11\0e\11\0e\11\0\0\0" - "\0e\16\0e\16\0e\16\0\0\0\0e\22\0e\22\0G\11\0\0\0\0G\14\0G\14\0G\14\0\0\0" - "\0G\17\0G\17\0G\17\0\0\0\0G\21\0G\21\0G\21\0\0\0\0G\24\0G\24\0GK\0\0\0\0" - "GT\0GT\0GT\0\0\0\0G^\0G^\0G^\0\0\0\0Gg\0Gg\0Gg\0\0\0\0Gq\0Gq\0e\317\0e\317" - "\0e\317\0e\317\0e\317\0e\317\0e\317\0e\317\0e\317\0e\317\0\0\0\0L\317\0L" - "\317\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0e\4\0e\4\0e\4\0\0\0" - "\0e\11\0e\11\0e\11\0\0\0\0e\16\0e\16\0e\16\0\0\0\0e\22\0e\22\0e\22\0\0\0" - "\0G\14\0G\14\0G\14\0\0\0\0G\17\0G\17\0G\17\0\0\0\0G\21\0G\21\0G\21\0\0\0" - "\0G\24\0G\24\0G\24\0\0\0\0GT\0GT\0GT\0\0\0\0G^\0G^\0G^\0\0\0\0Gg\0Gg\0Gg" - "\0\0\0\0Gq\0Gq\0Gq\0e\317\0e\317\0e\317\0e\317\0e\317\0e\317\0e\317\0e\317" - "\0e\317\0e\317\0e\317\0\0\0\0L\317\0L\317\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0e\4\0e\4\0e\4\0\0\0\0b\10\0b\10\0b\10\0\0\0\0b\15\0b\15\0b\15\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0<\16\0<\16\0<\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0""2J\0""2J\0""2J\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0e\317\0e\317\0e\317\0e" - "\317\0\0\0\0L\317\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\216\1\0c\0\0c\0\0\0\0\0" - "`\0\0c\0\0c\0\0\2\0\0c\1\0i\0\0i\0\0\0\0\0\0\0\0e\0\0e\0\0\0\0\0\0\0\0{\1" - "\0{\1\0f\0\0f\0\0z\1\0z\1\0z\1\0z\1\0)\4\0)\4\0\0\0\0\0\0\0Q\7\0Q\7\0\0\0" - "\0\0\0\0{&\0{&\0W\32\0W\32\0z&\0z&\0z&\0z&\0IC\0IC\0\0\0\0\0\0\0X^\0X^\0" - "\0\0\0\0\0\0\261\251\0\261\251\0\261\251\0\261\251\0\261\251\0\261\251\0" - "\261\251\0\261\251\0\0\0\0\0\0\0e\317\0e\317\0e\317\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\216\1\0c\0\0`\0\0\2\0\0c\0\0c\0\0c\0\0\12\0\0k\1\0i\0\0" - "\0\0\0\11\0\0i\0\0i\0\0\0\0\0\256\2\0\256\2\0{\1\0f\0\0z\1\0z\1\0z\1\0z\1" - "\0\221\1\0\221\1\0\221\17\0\0\0\0)\4\0c\11\0c\11\0\0\0\0\256+\0\256+\0{&" - "\0W\32\0z&\0z&\0z&\0z&\0\2415\0\2415\0\243\210\0\0\0\0IC\0{|\0{|\0\0\0\0" - "\261\251\0\261\251\0\261\251\0\261\251\0\261\251\0\261\251\0\261\251\0\261" - "\251\0\261\251\0\261\251\0\264\360\0\264\360\0\0\0\0e\317\0e\317\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\216\1\0\216\1\0`\0\0\2\0\0c\0\0c\0\0c\0\0\12\0\0" - "k\1\0k\1\0\0\0\0\11\0\0i\0\0i\0\0\0\0\0\256\2\0\256\2\0\256\2\0f\0\0z\1\0" - "z\1\0z\1\0z\1\0\221\1\0\221\1\0\221\1\0\0\0\0\221\17\0\221\17\0)\4\0\0\0" - "\0\256+\0\256+\0\256+\0W\32\0z&\0z&\0z&\0z&\0\2415\0\2415\0\2415\0\0\0\0" - "\243\210\0\243\210\0IC\0\0\0\0\261\251\0\261\251\0\261\251\0\261\251\0\261" - "\251\0\261\251\0\261\251\0\261\251\0\261\251\0\261\251\0\261\251\0\264\360" - "\0\264\360\0\264\360\0\0\0\0e\317\0e\317\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\216\1" - "\0\211\1\0c\0\0\2\0\0c\0\0c\0\0k\0\0\12\0\0k\1\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\264\360\0\264\360" - "\0\264\360\0\264\360\0\0\0\0e\317\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\211\1\0\216\1" - "\0c\0\0\2\0\0c\0\0k\0\0q\0\0\20\0\0\0\0\0\0\0\0\322\1\0\322\1\0\322\1\0\322" - "\1\0\346\1\0\346\1\0\0\0\0\0\0\0\322\2\0\322\2\0\322\2\0\322\2\0\363\2\0" - "\363\2\0\0\0\0\0\0\0\322!\0\322!\0\322!\0\322!\0\371(\0\371(\0\0\0\0\0\0" - "\0\322+\0\322+\0\322+\0\322+\0\3719\0\3719\0\0\0\0\0\0\0\325\215\0\325\215" - "\0\325\215\0\325\215\0\374\264\0\374\264\0\0\0\0\0\0\0\325\251\0\325\251" - "\0\325\251\0\325\251\0\325\251\0\325\251\0\325\251\0\325\251\0\0\0\0\0\0" - "\0\264\360\0\264\360\0\264\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\211\1\0\216" - "\1\0c\0\0\2\0\0f\0\0m\0\0m\0\0\0\0\0\325\3\0\325\3\0\322\1\0\322\1\0\346" - "\1\0\346\1\0\346\1\0\0\0\0\322\2\0\322\2\0\322\2\0\322\2\0\363\2\0\363\2" - "\0\363\2\0\0\0\0\322\3\0\322\3\0\322!\0\322!\0\371(\0\371(\0\371(\0\0\0\0" - "\322+\0\322+\0\322+\0\322+\0\3719\0\3719\0\3719\0\0\0\0\3227\0\3227\0\325" - "\215\0\325\215\0\374\264\0\374\264\0\374\264\0\0\0\0\325\251\0\325\251\0" - "\325\251\0\325\251\0\325\251\0\325\251\0\325\251\0\325\251\0\325\251\0\325" - "\251\0\330\360\0\330\360\0\0\0\0\264\360\0\264\360\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\216\1\0\216\1\0c\0\0\10\0\0m\0\0m\0\0\0\0\0\325\3\0\325\3\0\325" - "\3\0\322\1\0\346\1\0\346\1\0\346\1\0\0\0\0\322\2\0\322\2\0\322\2\0\322\2" - "\0\363\2\0\363\2\0\363\2\0\0\0\0\322\3\0\322\3\0\322\3\0\322!\0\371(\0\371" - "(\0\371(\0\0\0\0\322+\0\322+\0\322+\0\322+\0\3719\0\3719\0\3719\0\0\0\0\322" - "7\0\3227\0\3227\0\325\215\0\374\264\0\374\264\0\374\264\0\0\0\0\325\251\0" - "\325\251\0\325\251\0\325\251\0\325\251\0\325\251\0\325\251\0\325\251\0\325" - "\251\0\325\251\0\325\251\0\330\360\0\330\360\0\330\360\0\0\0\0\264\360\0" - "\264\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\216\1\0\216\1\0i\0\0\10\0\0m\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\275\1\0\275\1\0\275\1\0" - "\275\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\244!\0\244!\0\244!\0\244!\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\213n\0\213n\0\213n\0\213n\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\330\360\0\330\360\0\330\360\0\330" - "\360\0\0\0\0\264\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\216\1\0\224\1\0i\0\0\10\0" - "\0\0\0\0\0\0\0\325\3\0\325\3\0\325\3\0\351\3\0\365\1\0\365\1\0\14\0\0\313" - "\2\0#\2\0#\2\0\0\0\0\0\0\0\371\37\0\371\37\0\0\0\0\0\0\0\371\37\0\371\37" - "\0\371\37\0\371\37\0.\17\0.\17\0#\14\0\304-\0Y!\0Y!\0\0\0\0\0\0\0\371p\0" - "\371p\0\0\0\0\0\0\0\371p\0\371p\0\371p\0\371p\0O>\0O>\0""3(\0\247\227\0\211" - "s\0\211s\0\0\0\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\330\360\0\330\360\0\330\360\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\224\1\0i\0\0\0\0\0\0\0\0\325\3\0\325" - "\3\0\325\3\0\17\2\0\"\2\0!\0\0\35\0\0#\2\0\342\4\0\342\4\0\0\0\0\371\37\0" - "\371\37\0\371\37\0\0\0\0\371\37\0\371\37\0\371\37\0\371\37\0\3775\0\3775" - "\0\374%\0\304\34\0Y!\0\373C\0\373C\0\0\0\0\371p\0\371p\0\371p\0\0\0\0\371" - "p\0\371p\0\371p\0\371p\0\377\256\0\377\256\0\377\256\0\247q\0\211s\0\375" - "\342\0\375\342\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\0" - "\0\0\330\360\0\330\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12\0\0\224\1\0\0\0" - "\0\0\0\0\325\3\0\325\3\0\325\3\0\344\5\0\"\2\0\"\2\0\200\0\0#\2\0\342\4\0" - "\342\4\0\0\0\0\371\37\0\371\37\0\371\37\0\0\0\0\371\37\0\371\37\0\371\37" - "\0\371\37\0\3775\0\3775\0\3775\0\304\34\0\3732\0\3732\0Y!\0\0\0\0\371p\0" - "\371p\0\371p\0\0\0\0\371p\0\371p\0\371p\0\371p\0\377\256\0\377\256\0\377" - "\256\0\247q\0\375\274\0\375\274\0\211s\0\0\0\0\374\360\0\374\360\0\374\360" - "\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\330\360\0\330\360\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\12\0\0\0\0\0i\0\0\0\0\0\325\3\0\325\3\0\344\5\0\344\5" - "\0\"\2\0\36\1\0""4\2\0#\2\0\342\4\0\0\0\0\371\37\0\371\37\0\371\37\0\0\0" - "\0\371\37\0\371\37\0\371\37\0\371\37\0\3775\0\3775\0\3775\0\307)\0\3732\0" - "\3732\0\3732\0\0\0\0\371p\0\371p\0\371p\0\0\0\0\371p\0\371p\0\371p\0\371" - "p\0\377\256\0\377\256\0\377\256\0\247q\0\375\274\0\375\274\0\375\274\0\0" - "\0\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360" - "\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\374\360\0\0\0\0\330\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12\0\0" - "\10\0\0\0\0\0\325\3\0\344\5\0\344\5\0\344\5\0\340\4\0\367\11\0\364\3\0#\2" - "\0\0\0\0\371\37\0\371\37\0\371\37\0\0\0\0\371\37\0\371\37\0\371\37\0\371" - "\37\0\3775\0\3775\0\3775\0\307)\0\376G\0\3732\0\3732\0\0\0\0\371p\0\371p" - "\0\371p\0\0\0\0\371p\0\371p\0\371p\0\371p\0\377\256\0\377\256\0\377\256\0" - "\247q\0\375\274\0\375\274\0\375\274\0\0\0\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374" - "\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\12\0\0\10\0\0\0\0\0\0\0\0\17\2\0\17" - "\2\0\17\2\0\323\2\0\352\7\0\347\2\0\26\1\0\0\0\0\371\37\0\371\37\0\371\37" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0/\26\0/\26\0/\26\0\0\0\0""7\36\0""6\25\0" - """6\25\0\0\0\0\371p\0\371p\0\371p\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0O>\0O>\0" - "O>\0\0\0\0VK\0VK\0VK\0\0\0\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\12\0" - "\0\10\0\0\0\0\0\17\2\0\17\2\0\344\5\0\15\1\0\352\7\0\352\7\0\347\2\0\0\0" - "\0\371\37\0\371\37\0\371\37\0\0\0\0\0\0\0\0\0\0\362\4\0\0\0\0/\26\0/\26\0" - "\3775\0$\21\0""7\36\0""7\36\0\3672\0\0\0\0\371p\0\371p\0\371p\0\0\0\0\0\0" - "\0\0\0\0\370A\0\0\0\0O>\0O>\0\377\256\0""3(\0VK\0VK\0\372\264\0\0\0\0\374" - "\360\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\341\271\0\0\0\0\374\360" - "\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\343\350\0\0\0\0\374\360\0\374" - "\360\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\5\0\0\10\0\0\0\0" - "\0\17\2\0\17\2\0\17\2\0\15\1\0\352\7\0\352\7\0\347\2\0\0\0\0\371\37\0\371" - "\37\0\371\37\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0/\26\0/\26\0/\26\0$\21\0""7\36" - "\0""7\36\0""6\25\0\0\0\0\371p\0\371p\0\371p\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0O>\0O>\0O>\0""3(\0VK\0VK\0VK\0\0\0\0\374\360\0\374\360\0\374\360\0\374" - "\360\0\0\0\0\0\0\0\0\0\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\5\0\0\5\0\0\5\0\0\0\0\0\344\5\0\344\5\0\344\5\0\316\4\0\367" - "\11\0\367\11\0\364\3\0\0\0\0\371\37\0\371\37\0\371\37\0\0\0\0\371\37\0\371" - "\37\0\371\37\0\371\37\0\3775\0\3775\0\3775\0\307)\0\376G\0\376G\0\3732\0" - "\0\0\0\371p\0\371p\0\371p\0\0\0\0\371p\0\371p\0\371p\0\371p\0\377\256\0\377" - "\256\0\377\256\0\247q\0\375\274\0\375\274\0\375\274\0\0\0\0\374\360\0\374" - "\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360" - "\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5" - "\0\0\5\0\0\5\0\0\17\2\0\344\5\0\344\5\0\316\4\0\345\11\0\367\11\0\364\3\0" - "\0\0\0\371\37\0\371\37\0\371\37\0\0\0\0\371\37\0\371\37\0\371\37\0\371\37" - "\0\3775\0\3775\0\3775\0\307)\0\376G\0\376G\0\3732\0\0\0\0\371p\0\371p\0\371" - "p\0\0\0\0\371p\0\371p\0\371p\0\371p\0\377\256\0\377\256\0\377\256\0\247q" - "\0\375\274\0\375\274\0\375\274\0\0\0\0\374\360\0\374\360\0\374\360\0\374" - "\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360" - "\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\5\0\0\0\0\0\17\2" - "\0\344\5\0\344\5\0\15\1\0$\6\0$\6\0#\2\0\0\0\0\371\37\0\371\37\0\371\37\0" - "\0\0\0\371\37\0\371\37\0\371\37\0\371\37\0\3775\0/\26\0/\26\0\307)\0\376" - "G\0[/\0Y!\0\0\0\0\371p\0\371p\0\371p\0\0\0\0\371p\0\371p\0\371p\0\371p\0" - "\377\256\0O>\0O>\0\247q\0\375\274\0\211s\0\211s\0\0\0\0\374\360\0\374\360" - "\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\0\0\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0" - "\5\0\0\17\2\0\17\2\0\344\5\0\316\4\0$\6\0$\6\0#\2\0\0\0\0\371\37\0\371\37" - "\0\371\37\0\0\0\0\371\37\0\371\37\0\371\37\0\371\37\0\3775\0/\26\0/\26\0" - "\307)\0\376G\0[/\0Y!\0\0\0\0\371p\0\371p\0\371p\0\0\0\0\371p\0\371p\0\371" - "p\0\371p\0\377\256\0O>\0O>\0\247q\0\375\274\0\211s\0\211s\0\0\0\0\374\360" - "\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\0\0\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\5\0\0\24\2\0\17\2\0\17\2\0\316\4\0\345\11\0$\6\0#\2\0\0\0\0\371" - "\37\0\371\37\0\371\37\0\0\0\0\371\37\0\371\37\0\371\37\0\371\37\0\3775\0" - "\3775\0\3775\0\307)\0\376G\0\376G\0\3732\0\0\0\0\371p\0\371p\0\371p\0\0\0" - "\0\371p\0\371p\0\371p\0\371p\0\377\256\0\377\256\0\377\256\0\247q\0\375\274" - "\0\375\274\0\375\274\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\374" - "\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360" - "\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0" - "\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\24\2\0\24" - "\2\0\17\2\0\316\4\0\345\11\0\342\3\0#\2\0\0\0\0\371\37\0\371\37\0\371\37" - "\0\0\0\0\371\37\0\371\37\0\371\37\0\371\37\0\3775\0\3775\0\3775\0\307)\0" - "\376G\0\3732\0\3732\0\0\0\0\371p\0\371p\0\371p\0\0\0\0\371p\0\371p\0\371" - "p\0\371p\0\377\256\0\377\256\0\377\256\0\247q\0\375\274\0\375\274\0\375\274" - "\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374" - "\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360" - "\0\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\2\0\24\2\0\5\0\0\0\0\0\27\5\0\342\3\0\313" - "\1\0\0\0\0\371\37\0\371\37\0\0\0\0\0\0\0\0\0\0\371\37\0\0\0\0\0\0\0/\26\0" - "\3775\0\371\37\0\302\30\0\3716\0Y!\0#\14\0\0\0\0\371p\0\371p\0\0\0\0\0\0" - "\0\0\0\0\371p\0\0\0\0\0\0\0O>\0\377\256\0\371p\0\243I\0\371\224\0\211s\0" - """3(\0\0\0\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\374\360\0\374\360\0\374" - "\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0" - "\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\17\2\0\17\2\0\0\0\0\0\0\0\26\1\0\26\1\0\0\0\0\0\0\0\371" - "\37\0\371\37\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0/\26\0/\26\0\0\0\0\0\0" - "\0""6\25\0""6\25\0\0\0\0\0\0\0\371p\0\371p\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0O>\0O>\0\0\0\0\0\0\0VK\0VK\0\0\0\0\0\0\0\374\360\0\374\360\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\374" - "\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\17\2\0\17\2\0\0\0\0\0\0\0\26\1\0\26\1\0\0\0\0\0\0" - "\0\371\37\0\371\37\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0/\26\0/\26\0\0\0" - "\0\0\0\0""6\25\0""6\25\0\0\0\0\0\0\0\371p\0\371p\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0O>\0O>\0\0\0\0\0\0\0VK\0VK\0\0\0\0\0\0\0\374\360\0\374\360" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\374\360\0" - "\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\17\2\0\17\2\0\16\0\0\0\0\0\26\1\0\26\1\0\26" - "\1\0\0\0\0\371\37\0\371\37\0\371\37\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0/\26\0" - "/\26\0.\17\0\0\0\0""6\25\0""6\25\0""6\25\0\0\0\0\371p\0\371p\0\371p\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0O>\0O>\0O>\0\0\0\0VK\0VK\0VK\0\0\0\0\374\360\0" - "\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\374\360\0\374\360" - "\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\16\0\0\16\0\0\14\0\0\14" - "\0\0#\2\0#\2\0\0\0\0\0\0\0\371\37\0\371\37\0\0\0\0\0\0\0\371\37\0\371\37" - "\0\371\37\0\371\37\0.\17\0.\17\0#\14\0#\14\0Y!\0Y!\0\0\0\0\0\0\0\371p\0\371" - "p\0\0\0\0\0\0\0\371p\0\371p\0\371p\0\371p\0O>\0O>\0""3(\0""3(\0\211s\0\211" - "s\0\0\0\0\0\0\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360\0\374\360" - "\0\374\360\0\374\360\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", -}; - diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/common/img_face.c b/3rdparty/SDL-1.3.0-5387/test/automated/common/img_face.c deleted file mode 100644 index 4bfe3cb85c..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/common/img_face.c +++ /dev/null @@ -1,196 +0,0 @@ -/* 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", -}; - diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/common/img_primitives.c b/3rdparty/SDL-1.3.0-5387/test/automated/common/img_primitives.c deleted file mode 100644 index e023a8d631..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/common/img_primitives.c +++ /dev/null @@ -1,463 +0,0 @@ -/* GIMP RGB C-Source image dump (primitives.c) */ - -static const SurfaceImage_t img_primitives = { - 80, 60, 3, - "\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\0\0\0\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\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\5ii\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\310" - "5\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\5ii\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\0" - "L&\31\0\0\0P(\32\15I\310T*\34\15I\310X,\35\15I\310\\.\36\15I\310`0\40\15" - "I\310d2!\15I\310h4\"\15I\310l6$\15I\310p8%\15I\310t:&\15I\310x<(\15I\310" - "|>)\15I\310\200@*\15I\310\204B,\15I\310\210D-\15I\310\214F.\15I\310\220H" - "0\15I\310\224J1\15I\310\230L2\5ii\234N4\15I\310\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\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\15I\310\5ii" - "\15I\310\15I\310\15I\310\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\0\0\0\15I\310\15I\310\15I\310\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\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\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\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\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\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\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\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\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\15I\310\15I\310\15I\310\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\310\15I\310\5ii\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\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\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\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\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\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15I\310\15" - "I\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\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\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\15I\310\15" - "I\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\5ii\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\310\0d\310" - "\0d\310\0d\310\0d\5ii\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\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\0d\310\0d\310\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\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\5ii\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\310\0d\310\0" - "d\310\0d\310\0d\5ii\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\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\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\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\0d\310\0d\310\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\5ii\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\5ii\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\5ii\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\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\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\5ii\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\15I\310\15" - "I\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\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\5ii\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\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\310\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\5ii\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\5ii\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\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\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\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\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\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\5ii\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\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\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\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\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\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\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\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\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\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\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\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\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\310\0d\310\0d\310\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\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\0" - "d\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\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\5ii\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\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\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\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\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\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\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\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\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""77\5\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\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" - "\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\0d\310\0d77\5\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\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\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\0d77\5\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\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\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\0" - "d\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\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\310\0d\310\0d\310\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\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\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\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\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\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\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\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\5ii\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\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\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\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\0d\310\0d\310\0" - "d\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\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\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\5ii\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\5ii\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\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\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\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\5ii\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\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\5ii\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\0" - "d\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\5ii\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\5i" - "i\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\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\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\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\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\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\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\5ii\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\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\5ii\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\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\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\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\5ii\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\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\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\5ii\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\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\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\5ii\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\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\0" - "d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d\310\0d7" - "7\5\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\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\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\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\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\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""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\5ii\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\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\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""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\5ii\15I\310\15I\310\15I\310" - "\15I\310\15I\310\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\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\5ii\15I\310\15I\310\15I\310\15I\310\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\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\5ii\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\5ii" - "\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\5ii\15I\310\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\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\5ii", -}; - diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/common/img_primitivesblend.c b/3rdparty/SDL-1.3.0-5387/test/automated/common/img_primitivesblend.c deleted file mode 100644 index 16132ce9b8..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/common/img_primitivesblend.c +++ /dev/null @@ -1,645 +0,0 @@ -/* 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\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\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\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> 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 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", SDL_GetPlatform() ); - SDL_ATprintVerbose( 1, "System is %s endian\n", -#ifdef SDL_LIL_ENDIAN - "little" -#else - "big" -#endif - ); - SDL_ATprintVerbose( 1, "CPU count: %d\n", SDL_GetCPUCount()); - 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, " SSE %s\n", SDL_HasSSE()? "detected" : "not detected" ); - SDL_ATprintVerbose( 1, " SSE2 %s\n", SDL_HasSSE2()? "detected" : "not detected" ); - SDL_ATprintVerbose( 1, " SSE3 %s\n", SDL_HasSSE3()? "detected" : "not detected" ); - SDL_ATprintVerbose( 1, " SSE4.1 %s\n", SDL_HasSSE41()? "detected" : "not detected" ); - SDL_ATprintVerbose( 1, " SSE4.2 %s\n", SDL_HasSSE42()? "detected" : "not detected" ); - - plat_testTypes(); - plat_testEndian(); - - return SDL_ATfinish(); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/platform/platform.h b/3rdparty/SDL-1.3.0-5387/test/automated/platform/platform.h deleted file mode 100644 index d8310e0c07..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/platform/platform.h +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Part of SDL test suite. - * - * Written by Edgar Simo "bobbens" - * - * Released under Public Domain. - */ - - -#ifndef _TEST_PLATFORM -# define _TEST_PLATFORM - - -int test_platform (void); - - -#endif /* _TEST_PLATFORM */ - diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/rect/rect.c b/3rdparty/SDL-1.3.0-5387/test/automated/rect/rect.c deleted file mode 100644 index 3ae2fc534c..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/rect/rect.c +++ /dev/null @@ -1,156 +0,0 @@ -/** - * Automated SDL rect test. - * - * Written by Edgar Simo "bobbens" - * - * Released under Public Domain. - */ - - - - -#include "SDL_rect.h" -#include "../SDL_at.h" - - -/* - * Prototypes. - */ -static void rect_testIntersectRectAndLine (void); - - -/** - * @brief Tests SDL_IntersectRectAndLine() - */ -static void rect_testIntersectRectAndLine (void) -{ - SDL_Rect rect = { 0, 0, 32, 32 }; - int x1, y1; - int x2, y2; - SDL_bool clipped; - - SDL_ATbegin( "IntersectRectAndLine" ); - - x1 = -10; - y1 = 0; - x2 = -10; - y2 = 31; - clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2); - SDL_ATvassert( !clipped && - x1 == -10 && y1 == 0 && x2 == -10 && y2 == 31, - "line outside to the left was incorrectly clipped: %d,%d - %d,%d", - x1, y1, x2, y2); - - x1 = 40; - y1 = 0; - x2 = 40; - y2 = 31; - clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2); - SDL_ATvassert( !clipped && - x1 == 40 && y1 == 0 && x2 == 40 && y2 == 31, - "line outside to the right was incorrectly clipped: %d,%d - %d,%d", - x1, y1, x2, y2); - - x1 = 0; - y1 = -10; - x2 = 31; - y2 = -10; - clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2); - SDL_ATvassert( !clipped && - x1 == 0 && y1 == -10 && x2 == 31 && y2 == -10, - "line outside above was incorrectly clipped: %d,%d - %d,%d", - x1, y1, x2, y2); - - x1 = 0; - y1 = 40; - x2 = 31; - y2 = 40; - clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2); - SDL_ATvassert( !clipped && - x1 == 0 && y1 == 40 && x2 == 31 && y2 == 40, - "line outside below was incorrectly clipped: %d,%d - %d,%d", - x1, y1, x2, y2); - - x1 = 0; - y1 = 0; - x2 = 31; - y2 = 31; - clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2); - SDL_ATvassert( clipped && - x1 == 0 && y1 == 0 && x2 == 31 && y2 == 31, - "line fully inside rect was clipped: %d,%d - %d,%d", - x1, y1, x2, y2); - - x1 = -10; - y1 = 15; - x2 = 40; - y2 = 15; - clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2); - SDL_ATvassert( clipped && - x1 == 0 && y1 == 15 && x2 == 31 && y2 == 15, - "horizontal line rect was incorrectly clipped: %d,%d - %d,%d", - x1, y1, x2, y2); - - x1 = -32; - y1 = -32; - x2 = 63; - y2 = 63; - clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2); - SDL_ATvassert( clipped && - x1 == 0 && y1 == 0 && x2 == 31 && y2 == 31, - "diagonal line to lower right was incorrectly clipped: %d,%d - %d,%d", - x1, y1, x2, y2); - - x1 = 63; - y1 = 63; - x2 = -32; - y2 = -32; - clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2); - SDL_ATvassert( clipped && - x1 == 31 && y1 == 31 && x2 == 0 && y2 == 0, - "diagonal line to upper left was incorrectly clipped: %d,%d - %d,%d", - x1, y1, x2, y2); - - x1 = 63; - y1 = -32; - x2 = -32; - y2 = 63; - clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2); - SDL_ATvassert( clipped && - x1 == 31 && y1 == 0 && x2 == 0 && y2 == 31, - "diagonal line to lower left was incorrectly clipped: %d,%d - %d,%d", - x1, y1, x2, y2); - - x1 = -32; - y1 = 63; - x2 = 63; - y2 = -32; - clipped = SDL_IntersectRectAndLine(&rect, &x1, &y1, &x2, &y2); - SDL_ATvassert( clipped && - x1 == 0 && y1 == 31 && x2 == 31 && y2 == 0, - "diagonal line to upper right was incorrectly clipped: %d,%d - %d,%d", - x1, y1, x2, y2); - - SDL_ATend(); -} - - -/** - * @brief Rect test entrypoint. - */ -#ifdef TEST_STANDALONE -int main( int argc, const char *argv[] ) -{ - (void) argc; - (void) argv; -#else /* TEST_STANDALONE */ -int test_rect (void) -{ -#endif /* TEST_STANDALONE */ - - SDL_ATinit( "Rect" ); - - rect_testIntersectRectAndLine(); - - return SDL_ATfinish(); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/rect/rect.h b/3rdparty/SDL-1.3.0-5387/test/automated/rect/rect.h deleted file mode 100644 index 9a08061514..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/rect/rect.h +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Part of SDL test suite. - * - * Written by Edgar Simo "bobbens" - * - * Released under Public Domain. - */ - - -#ifndef _TEST_RECT -# define _TEST_RECT - - -int test_rect (void); - - -#endif /* _TEST_RECT */ - diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/render/render.c b/3rdparty/SDL-1.3.0-5387/test/automated/render/render.c deleted file mode 100644 index 82f56ef6c3..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/render/render.c +++ /dev/null @@ -1,1082 +0,0 @@ -/** - * Automated SDL_Surface test. - * - * Written by Edgar Simo "bobbens" - * - * Released under Public Domain. - */ - - -#include "SDL.h" -#include "../SDL_at.h" - -#include "../common/common.h" - - -/* - * Pull in images for testcases. - */ -#include "../common/images.h" - - -#define SCREEN_W 80 -#define SCREEN_H 60 - -#define FACE_W img_face.width -#define FACE_H img_face.height - -static SDL_Renderer *renderer; - -/* - * Prototypes. - */ -static int render_compare( const char *msg, const SurfaceImage_t *s, int allowable_error ); -static int render_isSupported( int code ); -static int render_hasDrawColor (void); -static int render_hasBlendModes (void); -static int render_hasTexColor (void); -static int render_hasTexAlpha (void); -static int render_clearScreen (void); -/* Testcases. */ -static int render_testPrimitives (void); -static int render_testPrimitivesBlend (void); -static int render_testBlit (void); -static int render_testBlitColour (void); -static int render_testBlitAlpha (void); -static int render_testBlitBlendMode( SDL_Texture * tface, int mode ); -static int render_testBlitBlend (void); - - -/** - * @brief Compares screen pixels with image pixels. - * - * @param msg Message on failure. - * @param s Image to compare against. - * @return 0 on success. - */ -static int render_compare( const char *msg, const SurfaceImage_t *s, int allowable_error ) -{ - int ret; - SDL_Rect rect; - Uint8 pix[4*80*60]; - SDL_Surface *testsur; - - /* Read pixels. */ - /* Explicitly specify the rect in case the window isn't expected size... */ - rect.x = 0; - rect.y = 0; - rect.w = 80; - rect.h = 60; - ret = SDL_RenderReadPixels(renderer, &rect, FORMAT, pix, 80*4 ); - if (SDL_ATassert( "SDL_RenderReadPixels", ret==0) ) - return 1; - - /* Create surface. */ - testsur = SDL_CreateRGBSurfaceFrom( pix, 80, 60, 32, 80*4, - RMASK, GMASK, BMASK, AMASK); - if (SDL_ATassert( "SDL_CreateRGBSurfaceFrom", testsur!=NULL )) - return 1; - - /* Compare surface. */ - ret = surface_compare( testsur, s, allowable_error ); - if (SDL_ATassert( msg, ret==0 )) - return 1; - - /* Clean up. */ - SDL_FreeSurface( testsur ); - - return 0; -} - -#if 0 -static int dump_screen( int index ) -{ - int ret; - char name[1024]; - Uint8 pix[4*80*60]; - SDL_Surface *testsur; - SDL_RendererInfo info; - - /* Read pixels. */ - ret = SDL_RenderReadPixels(renderer, NULL, FORMAT, pix, 80*4 ); - if (SDL_ATassert( "SDL_RenderReadPixels", ret==0) ) - return 1; - - /* Create surface. */ - testsur = SDL_CreateRGBSurfaceFrom( pix, 80, 60, 32, 80*4, - RMASK, GMASK, BMASK, AMASK); - if (SDL_ATassert( "SDL_CreateRGBSurfaceFrom", testsur!=NULL )) - return 1; - - /* Dump surface. */ - SDL_GetRendererInfo(renderer,&info); - sprintf(name, "%s-%s-%d.bmp", SDL_GetCurrentVideoDriver(), info.name, index); - SDL_SaveBMP(testsur, name); - - /* Clean up. */ - SDL_FreeSurface( testsur ); - - return 0; -} -#endif - -/** - * @brief Checks to see if functionality is supported. - */ -static int render_isSupported( int code ) -{ - return (code == 0); -} - - -/** - * @brief Test to see if we can vary the draw colour. - */ -static int render_hasDrawColor (void) -{ - int ret, fail; - Uint8 r, g, b, a; - - fail = 0; - - /* Set colour. */ - ret = SDL_SetRenderDrawColor(renderer, 100, 100, 100, 100 ); - if (!render_isSupported(ret)) - fail = 1; - ret = SDL_GetRenderDrawColor(renderer, &r, &g, &b, &a ); - if (!render_isSupported(ret)) - fail = 1; - /* Restore natural. */ - ret = SDL_SetRenderDrawColor(renderer, 0, 0, 0, SDL_ALPHA_OPAQUE ); - if (!render_isSupported(ret)) - fail = 1; - - /* Something failed, consider not available. */ - if (fail) - return 0; - /* Not set properly, consider failed. */ - else if ((r != 100) || (g != 100) || (b != 100) || (a != 100)) - return 0; - return 1; -} - - -/** - * @brief Test to see if we can vary the blend mode. - */ -static int render_hasBlendModes (void) -{ - int fail; - int ret; - SDL_BlendMode mode; - - fail = 0; - - ret = SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND ); - if (!render_isSupported(ret)) - fail = 1; - ret = SDL_GetRenderDrawBlendMode(renderer, &mode ); - if (!render_isSupported(ret)) - fail = 1; - ret = (mode != SDL_BLENDMODE_BLEND); - if (!render_isSupported(ret)) - fail = 1; - ret = SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_ADD ); - if (!render_isSupported(ret)) - fail = 1; - ret = SDL_GetRenderDrawBlendMode(renderer, &mode ); - if (!render_isSupported(ret)) - fail = 1; - ret = (mode != SDL_BLENDMODE_ADD); - if (!render_isSupported(ret)) - fail = 1; - ret = SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_MOD ); - if (!render_isSupported(ret)) - fail = 1; - ret = SDL_GetRenderDrawBlendMode(renderer, &mode ); - if (!render_isSupported(ret)) - fail = 1; - ret = (mode != SDL_BLENDMODE_MOD); - if (!render_isSupported(ret)) - fail = 1; - ret = SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_NONE ); - if (!render_isSupported(ret)) - fail = 1; - ret = SDL_GetRenderDrawBlendMode(renderer, &mode ); - if (!render_isSupported(ret)) - fail = 1; - ret = (mode != SDL_BLENDMODE_NONE); - if (!render_isSupported(ret)) - fail = 1; - - return !fail; -} - - -/** - * @brief Loads the test face. - */ -static SDL_Texture * render_loadTestFace (void) -{ - SDL_Surface *face; - SDL_Texture *tface; - - /* Create face surface. */ - face = SDL_CreateRGBSurfaceFrom( (void*)img_face.pixel_data, - img_face.width, img_face.height, 32, img_face.width*4, -#if (SDL_BYTEORDER == SDL_BIG_ENDIAN) - 0xff000000, /* Red bit mask. */ - 0x00ff0000, /* Green bit mask. */ - 0x0000ff00, /* Blue bit mask. */ - 0x000000ff /* Alpha bit mask. */ -#else - 0x000000ff, /* Red bit mask. */ - 0x0000ff00, /* Green bit mask. */ - 0x00ff0000, /* Blue bit mask. */ - 0xff000000 /* Alpha bit mask. */ -#endif - ); - if (face == NULL) - return 0; - tface = SDL_CreateTextureFromSurface(renderer, face); - SDL_FreeSurface(face); - - return tface; -} - - -/** - * @brief Test to see if can set texture colour mode. - */ -static int render_hasTexColor (void) -{ - int fail; - int ret; - SDL_Texture *tface; - Uint8 r, g, b; - - /* Get test face. */ - tface = render_loadTestFace(); - if (tface == 0) - return 0; - - /* See if supported. */ - fail = 0; - ret = SDL_SetTextureColorMod( tface, 100, 100, 100 ); - if (!render_isSupported(ret)) - fail = 1; - ret = SDL_GetTextureColorMod( tface, &r, &g, &b ); - if (!render_isSupported(ret)) - fail = 1; - - /* Clean up. */ - SDL_DestroyTexture( tface ); - - if (fail) - return 0; - else if ((r != 100) || (g != 100) || (b != 100)) - return 0; - return 1; -} - - -/** - * @brief Test to see if we can vary the alpha of the texture. - */ -static int render_hasTexAlpha (void) -{ - int fail; - int ret; - SDL_Texture *tface; - Uint8 a; - - /* Get test face. */ - tface = render_loadTestFace(); - if (tface == 0) - return 0; - - /* See if supported. */ - fail = 0; - ret = SDL_SetTextureAlphaMod( tface, 100 ); - if (!render_isSupported(ret)) - fail = 1; - ret = SDL_GetTextureAlphaMod( tface, &a ); - if (!render_isSupported(ret)) - fail = 1; - - /* Clean up. */ - SDL_DestroyTexture( tface ); - - if (fail) - return 0; - else if (a != 100) - return 0; - return 1; -} - - -/** - * @brief Clears the screen. - * - * @note We don't test for errors, but they shouldn't happen. - */ -static int render_clearScreen (void) -{ - int ret; - - /* Set colour. */ - ret = SDL_SetRenderDrawColor(renderer, 0, 0, 0, SDL_ALPHA_OPAQUE ); - /* - if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0)) - return -1; - */ - - /* Clear screen. */ - ret = SDL_RenderFillRect(renderer, NULL ); - /* - if (SDL_ATassert( "SDL_RenderFillRect", ret == 0)) - return -1; - */ - - /* Set defaults. */ - ret = SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_NONE ); - /* - if (SDL_ATassert( "SDL_SetRenderDrawBlendMode", ret == 0)) - return -1; - */ - ret = SDL_SetRenderDrawColor(renderer, 255, 255, 255, SDL_ALPHA_OPAQUE ); - /* - if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0)) - return -1; - */ - - return 0; -} - - -/** - * @brief Tests the SDL primitives for rendering. - */ -static int render_testPrimitives (void) -{ - int ret; - int x, y; - SDL_Rect rect; - - /* Clear surface. */ - if (render_clearScreen()) - return -1; - - /* Need drawcolour or just skip test. */ - if (!render_hasDrawColor()) - return 0; - - /* Draw a rectangle. */ - rect.x = 40; - rect.y = 0; - rect.w = 40; - rect.h = 80; - ret = SDL_SetRenderDrawColor(renderer, 13, 73, 200, SDL_ALPHA_OPAQUE ); - if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0)) - return -1; - ret = SDL_RenderFillRect(renderer, &rect ); - if (SDL_ATassert( "SDL_RenderFillRect", ret == 0)) - return -1; - - /* Draw a rectangle. */ - rect.x = 10; - rect.y = 10; - rect.w = 60; - rect.h = 40; - ret = SDL_SetRenderDrawColor(renderer, 200, 0, 100, SDL_ALPHA_OPAQUE ); - if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0)) - return -1; - ret = SDL_RenderFillRect(renderer, &rect ); - if (SDL_ATassert( "SDL_RenderFillRect", ret == 0)) - return -1; - - /* 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_SetRenderDrawColor(renderer, x*y, x*y/2, x*y/3, SDL_ALPHA_OPAQUE ); - if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0)) - return -1; - ret = SDL_RenderDrawPoint(renderer, x, y ); - if (SDL_ATassert( "SDL_RenderDrawPoint", ret == 0)) - return -1; - } - } - - /* Draw some lines. */ - ret = SDL_SetRenderDrawColor(renderer, 0, 255, 0, SDL_ALPHA_OPAQUE ); - if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0)) - return -1; - ret = SDL_RenderDrawLine(renderer, 0, 30, 80, 30 ); - if (SDL_ATassert( "SDL_RenderDrawLine", ret == 0)) - return -1; - ret = SDL_SetRenderDrawColor(renderer, 55, 55, 5, SDL_ALPHA_OPAQUE ); - if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0)) - return -1; - ret = SDL_RenderDrawLine(renderer, 40, 30, 40, 60 ); - if (SDL_ATassert( "SDL_RenderDrawLine", ret == 0)) - return -1; - ret = SDL_SetRenderDrawColor(renderer, 5, 105, 105, SDL_ALPHA_OPAQUE ); - if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0)) - return -1; - ret = SDL_RenderDrawLine(renderer, 0, 0, 29, 29 ); - if (SDL_ATassert( "SDL_RenderDrawLine", ret == 0)) - return -1; - ret = SDL_RenderDrawLine(renderer, 29, 30, 0, 59 ); - if (SDL_ATassert( "SDL_RenderDrawLine", ret == 0)) - return -1; - ret = SDL_RenderDrawLine(renderer, 79, 0, 50, 29 ); - if (SDL_ATassert( "SDL_RenderDrawLine", ret == 0)) - return -1; - ret = SDL_RenderDrawLine(renderer, 79, 59, 50, 30 ); - if (SDL_ATassert( "SDL_RenderDrawLine", ret == 0)) - return -1; - - /* See if it's the same. */ - if (render_compare( "Primitives output not the same.", &img_primitives, ALLOWABLE_ERROR_OPAQUE )) - return -1; - - return 0; -} - - -/** - * @brief Tests the SDL primitives with alpha for rendering. - */ -static int render_testPrimitivesBlend (void) -{ - int ret; - int i, j; - SDL_Rect rect; - - /* Clear surface. */ - if (render_clearScreen()) - return -1; - - /* Need drawcolour and blendmode or just skip test. */ - if (!render_hasDrawColor() || !render_hasBlendModes()) - return 0; - - /* Create some rectangles for each blend mode. */ - ret = SDL_SetRenderDrawColor(renderer, 255, 255, 255, 0 ); - if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0)) - return -1; - ret = SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_NONE ); - if (SDL_ATassert( "SDL_SetRenderDrawBlendMode", ret == 0)) - return -1; - ret = SDL_RenderFillRect(renderer, NULL ); - if (SDL_ATassert( "SDL_RenderFillRect", ret == 0)) - return -1; - rect.x = 10; - rect.y = 25; - rect.w = 40; - rect.h = 25; - ret = SDL_SetRenderDrawColor(renderer, 240, 10, 10, 75 ); - if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0)) - return -1; - ret = SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_ADD ); - if (SDL_ATassert( "SDL_SetRenderDrawBlendMode", ret == 0)) - return -1; - ret = SDL_RenderFillRect(renderer, &rect ); - if (SDL_ATassert( "SDL_RenderFillRect", ret == 0)) - return -1; - rect.x = 30; - rect.y = 40; - rect.w = 45; - rect.h = 15; - ret = SDL_SetRenderDrawColor(renderer, 10, 240, 10, 100 ); - if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0)) - return -1; - ret = SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND ); - if (SDL_ATassert( "SDL_SetRenderDrawBlendMode", ret == 0)) - return -1; - ret = SDL_RenderFillRect(renderer, &rect ); - if (SDL_ATassert( "SDL_RenderFillRect", ret == 0)) - return -1; - rect.x = 25; - rect.y = 25; - rect.w = 25; - rect.h = 25; - ret = SDL_SetRenderDrawColor(renderer, 10, 10, 240, 125 ); - if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0)) - return -1; - ret = SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_NONE ); - if (SDL_ATassert( "SDL_SetRenderDrawBlendMode", ret == 0)) - return -1; - ret = SDL_RenderFillRect(renderer, &rect ); - if (SDL_ATassert( "SDL_RenderFillRect", ret == 0)) - return -1; - - /* Draw blended lines, lines for everyone. */ - for (i=0; i=0)) - goto err_cleanup; - SDL_ATprintVerbose( 1, " %d Render Drivers\n", nr ); - SDL_ATend(); - for (j=0; j -#include "SDL.h" - -#ifndef TestSupportRWops_h -#define TestSupportRWops_h - -FILE* TestSupportRWops_OpenFPFromReadDir(const char *file, const char *mode); -FILE* TestSupportRWops_OpenFPFromWriteDir(const char *file, const char *mode); -SDL_RWops* TestSupportRWops_OpenRWopsFromReadDir(const char *file, const char *mode); -SDL_RWops* TestSupportRWops_OpenRWopsFromWriteDir(const char *file, const char *mode); - - -#endif diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/rwops/TestSupportRWops_Cocoa.m b/3rdparty/SDL-1.3.0-5387/test/automated/rwops/TestSupportRWops_Cocoa.m deleted file mode 100644 index 5f0dc07d36..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/rwops/TestSupportRWops_Cocoa.m +++ /dev/null @@ -1,89 +0,0 @@ -#import "TestSupportRWops.h" -#import -#include "SDL.h" - -/* For proper OS X applications, the resources are contained inside the application bundle. - So the strategy is to first check the application bundle for the file, then fallback to the current working directory. - Note: One additional corner-case is if the resource is in a framework's resource bundle instead of the app. - We might want to use bundle identifiers, e.g. org.libsdl.sdl to get the bundle for the framework, - but we would somehow need to know what the bundle identifiers we need to search are. - Conversely, write directories are usually not in the bundles. This implementation uses NSTemporaryDirectory, - but consider Preferences, Application Support, Documents, etc. - Also, note the bundle layouts are different for iPhone and Mac. -*/ - -const char* RWOPS_READ = "rwops/read"; -const char* RWOPS_WRITE = "write"; - - -FILE* TestSupportRWops_OpenFPFromReadDir(const char *file, const char *mode) -{ - FILE* fp = NULL; - - // If the file mode is writable, skip all the bundle stuff because generally the bundle is read-only. - if(strcmp("r", mode) && strcmp("rb", mode)) - { - return fopen(file, mode); - } - - NSAutoreleasePool* autorelease_pool = [[NSAutoreleasePool alloc] init]; - - - NSFileManager* file_manager = [NSFileManager defaultManager]; - NSString* resource_path = [[NSBundle mainBundle] resourcePath]; - - NSString* ns_string_file_component = [file_manager stringWithFileSystemRepresentation:file length:strlen(file)]; - - NSString* full_path_with_file_to_try = [resource_path stringByAppendingPathComponent:ns_string_file_component]; - if([file_manager fileExistsAtPath:full_path_with_file_to_try]) - { - fp = fopen([full_path_with_file_to_try fileSystemRepresentation], mode); - } - else - { - fp = fopen(file, mode); - } - - [autorelease_pool drain]; - - return fp; -} - -FILE* TestSupportRWops_OpenFPFromWriteDir(const char *file, const char *mode) -{ - FILE* fp = NULL; - - NSAutoreleasePool* autorelease_pool = [[NSAutoreleasePool alloc] init]; - - NSFileManager* file_manager = [NSFileManager defaultManager]; - NSString* ns_string_file_component = [file_manager stringWithFileSystemRepresentation:file length:strlen(file)]; - NSString* full_path_with_file_to_try = [NSTemporaryDirectory() stringByAppendingPathComponent:ns_string_file_component]; - - fp = fopen([full_path_with_file_to_try fileSystemRepresentation], mode); - - [autorelease_pool drain]; - - return fp; -} - -SDL_RWops* TestSupportRWops_OpenRWopsFromReadDir(const char *file, const char *mode) -{ - return SDL_RWFromFile(file, mode); -} - -SDL_RWops* TestSupportRWops_OpenRWopsFromWriteDir(const char *file, const char *mode) -{ - SDL_RWops* rw = NULL; - - NSAutoreleasePool* autorelease_pool = [[NSAutoreleasePool alloc] init]; - - NSFileManager* file_manager = [NSFileManager defaultManager]; - NSString* ns_string_file_component = [file_manager stringWithFileSystemRepresentation:file length:strlen(file)]; - NSString* full_path_with_file_to_try = [NSTemporaryDirectory() stringByAppendingPathComponent:ns_string_file_component]; - - rw = SDL_RWFromFile( [full_path_with_file_to_try fileSystemRepresentation], mode ); - - [autorelease_pool drain]; - return rw; -} - diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/rwops/TestSupportRWops_Generic.c b/3rdparty/SDL-1.3.0-5387/test/automated/rwops/TestSupportRWops_Generic.c deleted file mode 100644 index a4b366a34f..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/rwops/TestSupportRWops_Generic.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Generic implementation for file opening routines. -* Customizations for specific platforms should go in alternative files. -*/ - -// quiet windows compiler warnings -#define _CRT_SECURE_NO_WARNINGS - -#include -#include "SDL.h" - -const char* RWOPS_READ = "rwops/read"; -const char* RWOPS_WRITE = "rwops/write"; - -FILE* TestSupportRWops_OpenFPFromReadDir(const char *file, const char *mode) -{ - return fopen(file, mode); -} - -FILE* TestSupportRWops_OpenFPFromWriteDir(const char *file, const char *mode) -{ - return fopen(file, mode); -} - -SDL_RWops* TestSupportRWops_OpenRWopsFromReadDir(const char *file, const char *mode) -{ - return SDL_RWFromFile(file, mode); -} - -SDL_RWops* TestSupportRWops_OpenRWopsFromWriteDir(const char *file, const char *mode) -{ - return SDL_RWFromFile(file, mode); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/rwops/read b/3rdparty/SDL-1.3.0-5387/test/automated/rwops/read deleted file mode 100644 index c57eff55eb..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/rwops/read +++ /dev/null @@ -1 +0,0 @@ -Hello World! \ No newline at end of file diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/rwops/rwops.c b/3rdparty/SDL-1.3.0-5387/test/automated/rwops/rwops.c deleted file mode 100644 index 99ec1f46b3..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/rwops/rwops.c +++ /dev/null @@ -1,272 +0,0 @@ -/** - * Automated SDL_RWops test. - * - * Written by Edgar Simo "bobbens" - * - * Released under Public Domain. - */ - - -#include "SDL.h" -#include "../SDL_at.h" -#include "TestSupportRWops.h" - -/* Defined in TestSupportRWops implementation to allow flexibility. */ -extern const char* RWOPS_READ; -extern const char* 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", - SDL_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 = TestSupportRWops_OpenRWopsFromReadDir( 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 = TestSupportRWops_OpenRWopsFromWriteDir( 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 = TestSupportRWops_OpenFPFromReadDir( RWOPS_READ, "r" ); - if (SDL_ATassert( "Failed to open file 'WOPS_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 = TestSupportRWops_OpenFPFromWriteDir( 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(); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/rwops/rwops.h b/3rdparty/SDL-1.3.0-5387/test/automated/rwops/rwops.h deleted file mode 100644 index 676e7f8863..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/rwops/rwops.h +++ /dev/null @@ -1,18 +0,0 @@ -/** - * 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 */ - diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/surface/surface.c b/3rdparty/SDL-1.3.0-5387/test/automated/surface/surface.c deleted file mode 100755 index 9ea82b987e..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/surface/surface.c +++ /dev/null @@ -1,449 +0,0 @@ -/** - * 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_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. */ -#ifdef __APPLE__ - face = SDL_LoadBMP("icon.bmp"); -#else - face = SDL_LoadBMP("../icon.bmp"); -#endif - - 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_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 )==0 )) - return; - - /* Clean up. */ - SDL_FreeSurface( rface ); - SDL_FreeSurface( face ); - - 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, -#if (SDL_BYTEORDER == SDL_BIG_ENDIAN) - 0xff000000, /* Red bit mask. */ - 0x00ff0000, /* Green bit mask. */ - 0x0000ff00, /* Blue bit mask. */ - 0x000000ff /* Alpha bit mask. */ -#else - 0x000000ff, /* Red bit mask. */ - 0x0000ff00, /* Green bit mask. */ - 0x00ff0000, /* Blue bit mask. */ - 0xff000000 /* Alpha bit mask. */ -#endif - ); - 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 )==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 )==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 )==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, -#if (SDL_BYTEORDER == SDL_BIG_ENDIAN) - 0xff000000, /* Red bit mask. */ - 0x00ff0000, /* Green bit mask. */ - 0x0000ff00, /* Blue bit mask. */ - 0x000000ff /* Alpha bit mask. */ -#else - 0x000000ff, /* Red bit mask. */ - 0x0000ff00, /* Green bit mask. */ - 0x00ff0000, /* Blue bit mask. */ - 0xff000000 /* Alpha bit mask. */ -#endif - ); - 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 )==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 )==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 )==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 )==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_NONE; - 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 )==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_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(); -} - diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/surface/surface.h b/3rdparty/SDL-1.3.0-5387/test/automated/surface/surface.h deleted file mode 100644 index cc1c898463..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/surface/surface.h +++ /dev/null @@ -1,18 +0,0 @@ -/** - * 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 */ - diff --git a/3rdparty/SDL-1.3.0-5387/test/automated/testsdl.c b/3rdparty/SDL-1.3.0-5387/test/automated/testsdl.c deleted file mode 100644 index 9d9f037b19..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/automated/testsdl.c +++ /dev/null @@ -1,185 +0,0 @@ -/* - * 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 "rect/rect.h" -#include "surface/surface.h" -#include "render/render.h" -#include "audio/audio.h" - -#if defined(WIN32) -#define NO_GETOPT -#endif -#if defined(__QNXNTO__) -#define NO_GETOPT_LONG 1 -#endif /* __QNXNTO__ */ - -#include /* printf */ -#include /* exit */ -#ifndef NO_GETOPT -#include /* getopt */ -#if !defined(NO_GETOPT_LONG) -#include /* getopt_long */ -#endif /* !NO_GETOPT_LONG */ -#endif /* !NO_GETOPT */ - - -/* - * 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_rect = 1; /**< Run rect 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(" --norect do not run the rect 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[] ) -{ - int i; - - for (i = 1; i < argc; ++i) { - const char *arg = argv[i]; - if (SDL_strcmp(arg, "-m") == 0 || SDL_strcmp(arg, "--manual") == 0) { - run_manual = 1; - continue; - } - if (SDL_strcmp(arg, "-v") == 0 || SDL_strcmp(arg, "--verbose") == 0) { - int level; - SDL_ATgeti( SDL_AT_VERBOSE, &level ); - SDL_ATseti( SDL_AT_VERBOSE, level+1 ); - continue; - } - if (SDL_strcmp(arg, "-q") == 0 || SDL_strcmp(arg, "--quiet") == 0) { - SDL_ATseti( SDL_AT_QUIET, 1 ); - SDL_setenv("SDL_ASSERT", "abort", 0); - continue; - } - if (SDL_strcmp(arg, "--noplatform") == 0) { - run_platform = 0; - continue; - } - if (SDL_strcmp(arg, "--norwops") == 0) { - run_rwops = 0; - continue; - } - if (SDL_strcmp(arg, "--norect") == 0) { - run_rect = 0; - continue; - } - if (SDL_strcmp(arg, "--nosurface") == 0) { - run_surface = 0; - continue; - } - if (SDL_strcmp(arg, "--norender") == 0) { - run_render = 0; - continue; - } - if (SDL_strcmp(arg, "--noaudio") == 0) { - run_audio = 0; - continue; - } - - /* Print help and exit! */ - print_usage( argv[0] ); - exit(EXIT_FAILURE); - } -} - -/** - * @brief Main entry point. - */ -int main( int argc, char *argv[] ) -{ - int failed; - const char *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 %s\n", - ver.major, ver.minor, ver.patch, rev ); - - /* Automatic tests. */ - if (run_platform) - failed += test_platform(); - if (run_rwops) - failed += test_rwops(); - if (run_rect) - failed += test_rect(); - 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", - SDL_GetPlatform(), -#if SDL_BYTEORDER == SDL_LIL_ENDIAN - "little" -#else - "big" -#endif - ); - } - - return failed; -} - diff --git a/3rdparty/SDL-1.3.0-5387/test/checkkeys.c b/3rdparty/SDL-1.3.0-5387/test/checkkeys.c deleted file mode 100644 index b54f4daa78..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/checkkeys.c +++ /dev/null @@ -1,158 +0,0 @@ - -/* Simple program: Loop, watching keystrokes - Note that you need to call SDL_PollEvent() or SDL_WaitEvent() to - pump the event loop and catch keystrokes. -*/ - -#include -#include -#include - -#include "SDL.h" - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -static void -print_modifiers(void) -{ - int mod; - printf(" modifiers:"); - mod = SDL_GetModState(); - if (!mod) { - printf(" (none)"); - return; - } - if (mod & KMOD_LSHIFT) - printf(" LSHIFT"); - if (mod & KMOD_RSHIFT) - printf(" RSHIFT"); - if (mod & KMOD_LCTRL) - printf(" LCTRL"); - if (mod & KMOD_RCTRL) - printf(" RCTRL"); - if (mod & KMOD_LALT) - printf(" LALT"); - if (mod & KMOD_RALT) - printf(" RALT"); - if (mod & KMOD_LGUI) - printf(" LGUI"); - if (mod & KMOD_RGUI) - printf(" RGUI"); - if (mod & KMOD_NUM) - printf(" NUM"); - if (mod & KMOD_CAPS) - printf(" CAPS"); - if (mod & KMOD_MODE) - printf(" MODE"); -} - -static void -PrintKey(SDL_Keysym * sym, SDL_bool pressed, SDL_bool repeat) -{ - /* Print the keycode, name and state */ - if (sym->sym) { - printf("Key %s: scancode %d = %s, keycode 0x%08X = %s ", - pressed ? "pressed " : "released", - sym->scancode, - SDL_GetScancodeName(sym->scancode), - sym->sym, SDL_GetKeyName(sym->sym)); - } else { - printf("Unknown Key (scancode %d = %s) %s ", - sym->scancode, - SDL_GetScancodeName(sym->scancode), - pressed ? "pressed" : "released"); - } - - /* Print the translated character, if one exists */ - if (sym->unicode) { - /* Is it a control-character? */ - if (sym->unicode < ' ') { - printf(" (^%c)", sym->unicode + '@'); - } else { -#ifdef UNICODE - printf(" (%c)", sym->unicode); -#else - /* This is a Latin-1 program, so only show 8-bits */ - if (!(sym->unicode & 0xFF00)) - printf(" (%c)", sym->unicode); - else - printf(" (0x%X)", sym->unicode); -#endif - } - } - print_modifiers(); - if (repeat) { - printf(" (repeat)"); - } - printf("\n"); -} - -static void -PrintText(char *text) -{ - printf("Text: %s\n", text); -} - -int -main(int argc, char *argv[]) -{ - SDL_Event event; - int done; - Uint32 videoflags; - - /* Initialize SDL */ - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - - videoflags = SDL_SWSURFACE; - while (argc > 1) { - --argc; - if (argv[argc] && !strcmp(argv[argc], "-fullscreen")) { - videoflags |= SDL_FULLSCREEN; - } else { - fprintf(stderr, "Usage: %s [-fullscreen]\n", argv[0]); - quit(1); - } - } - - /* Set 640x480 video mode */ - if (SDL_SetVideoMode(640, 480, 0, videoflags) == NULL) { - fprintf(stderr, "Couldn't set 640x480 video mode: %s\n", - SDL_GetError()); - quit(2); - } - - /* Watch keystrokes */ - done = 0; - while (!done) { - /* Check for events */ - SDL_WaitEvent(&event); - switch (event.type) { - case SDL_KEYDOWN: - case SDL_KEYUP: - PrintKey(&event.key.keysym, event.key.state, event.key.repeat); - break; - case SDL_TEXTINPUT: - PrintText(event.text.text); - break; - case SDL_MOUSEBUTTONDOWN: - /* Any button press quits the app... */ - case SDL_QUIT: - done = 1; - break; - default: - break; - } - } - - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/common.c b/3rdparty/SDL-1.3.0-5387/test/common.c deleted file mode 100644 index 41867b430b..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/common.c +++ /dev/null @@ -1,1103 +0,0 @@ - -/* A simple test program framework */ - -#include - -#include "common.h" - -#define VIDEO_USAGE \ -"[--video driver] [--renderer driver] [--info all|video|modes|render|event] [--log all|error|system|audio|video|render|input] [--display N] [--fullscreen | --windows N] [--title title] [--icon icon.bmp] [--center | --position X,Y] [--geometry WxH] [--depth N] [--refresh R] [--vsync] [--noframe] [--resize] [--minimize] [--maximize] [--grab]" - -#define AUDIO_USAGE \ -"[--rate N] [--format U8|S8|U16|U16LE|U16BE|S16|S16LE|S16BE] [--channels N] [--samples N]" - -CommonState * -CommonCreateState(char **argv, Uint32 flags) -{ - CommonState *state = SDL_calloc(1, sizeof(*state)); - if (!state) { - SDL_OutOfMemory(); - return NULL; - } - - /* Initialize some defaults */ - state->argv = argv; - state->flags = flags; - state->window_title = argv[0]; - state->window_flags = 0; - state->window_x = SDL_WINDOWPOS_UNDEFINED; - state->window_y = SDL_WINDOWPOS_UNDEFINED; - state->window_w = DEFAULT_WINDOW_WIDTH; - state->window_h = DEFAULT_WINDOW_HEIGHT; - state->num_windows = 1; - state->audiospec.freq = 22050; - state->audiospec.format = AUDIO_S16; - state->audiospec.channels = 2; - state->audiospec.samples = 2048; - - /* Set some very sane GL defaults */ - state->gl_red_size = 3; - state->gl_green_size = 3; - state->gl_blue_size = 2; - state->gl_alpha_size = 0; - state->gl_buffer_size = 0; - state->gl_depth_size = 16; - state->gl_stencil_size = 0; - state->gl_double_buffer = 1; - state->gl_accum_red_size = 0; - state->gl_accum_green_size = 0; - state->gl_accum_blue_size = 0; - state->gl_accum_alpha_size = 0; - state->gl_stereo = 0; - state->gl_multisamplebuffers = 0; - state->gl_multisamplesamples = 0; - state->gl_retained_backing = 1; - state->gl_accelerated = -1; - - return state; -} - -int -CommonArg(CommonState * state, int index) -{ - char **argv = state->argv; - - if (SDL_strcasecmp(argv[index], "--video") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->videodriver = argv[index]; - return 2; - } - if (SDL_strcasecmp(argv[index], "--renderer") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->renderdriver = argv[index]; - return 2; - } - if (SDL_strcasecmp(argv[index], "--info") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - if (SDL_strcasecmp(argv[index], "all") == 0) { - state->verbose |= - (VERBOSE_VIDEO | VERBOSE_MODES | VERBOSE_RENDER | - VERBOSE_EVENT); - return 2; - } - if (SDL_strcasecmp(argv[index], "video") == 0) { - state->verbose |= VERBOSE_VIDEO; - return 2; - } - if (SDL_strcasecmp(argv[index], "modes") == 0) { - state->verbose |= VERBOSE_MODES; - return 2; - } - if (SDL_strcasecmp(argv[index], "render") == 0) { - state->verbose |= VERBOSE_RENDER; - return 2; - } - if (SDL_strcasecmp(argv[index], "event") == 0) { - state->verbose |= VERBOSE_EVENT; - return 2; - } - return -1; - } - if (SDL_strcasecmp(argv[index], "--log") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - if (SDL_strcasecmp(argv[index], "all") == 0) { - SDL_LogSetAllPriority(SDL_LOG_PRIORITY_VERBOSE); - return 2; - } - if (SDL_strcasecmp(argv[index], "error") == 0) { - SDL_LogSetPriority(SDL_LOG_CATEGORY_ERROR, SDL_LOG_PRIORITY_VERBOSE); - return 2; - } - if (SDL_strcasecmp(argv[index], "system") == 0) { - SDL_LogSetPriority(SDL_LOG_CATEGORY_SYSTEM, SDL_LOG_PRIORITY_VERBOSE); - return 2; - } - if (SDL_strcasecmp(argv[index], "audio") == 0) { - SDL_LogSetPriority(SDL_LOG_CATEGORY_AUDIO, SDL_LOG_PRIORITY_VERBOSE); - return 2; - } - if (SDL_strcasecmp(argv[index], "video") == 0) { - SDL_LogSetPriority(SDL_LOG_CATEGORY_VIDEO, SDL_LOG_PRIORITY_VERBOSE); - return 2; - } - if (SDL_strcasecmp(argv[index], "render") == 0) { - SDL_LogSetPriority(SDL_LOG_CATEGORY_RENDER, SDL_LOG_PRIORITY_VERBOSE); - return 2; - } - if (SDL_strcasecmp(argv[index], "input") == 0) { - SDL_LogSetPriority(SDL_LOG_CATEGORY_INPUT, SDL_LOG_PRIORITY_VERBOSE); - return 2; - } - return -1; - } - if (SDL_strcasecmp(argv[index], "--display") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->display = SDL_atoi(argv[index]); - if (SDL_WINDOWPOS_ISUNDEFINED(state->window_x)) { - state->window_x = SDL_WINDOWPOS_UNDEFINED_DISPLAY(state->display); - state->window_y = SDL_WINDOWPOS_UNDEFINED_DISPLAY(state->display); - } - if (SDL_WINDOWPOS_ISCENTERED(state->window_x)) { - state->window_x = SDL_WINDOWPOS_CENTERED_DISPLAY(state->display); - state->window_y = SDL_WINDOWPOS_CENTERED_DISPLAY(state->display); - } - return 2; - } - if (SDL_strcasecmp(argv[index], "--fullscreen") == 0) { - state->window_flags |= SDL_WINDOW_FULLSCREEN; - state->num_windows = 1; - return 1; - } - if (SDL_strcasecmp(argv[index], "--windows") == 0) { - ++index; - if (!argv[index] || !SDL_isdigit(*argv[index])) { - return -1; - } - if (!(state->window_flags & SDL_WINDOW_FULLSCREEN)) { - state->num_windows = SDL_atoi(argv[index]); - } - return 2; - } - if (SDL_strcasecmp(argv[index], "--title") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->window_title = argv[index]; - return 2; - } - if (SDL_strcasecmp(argv[index], "--icon") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->window_icon = argv[index]; - return 2; - } - if (SDL_strcasecmp(argv[index], "--center") == 0) { - state->window_x = SDL_WINDOWPOS_CENTERED; - state->window_y = SDL_WINDOWPOS_CENTERED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--position") == 0) { - char *x, *y; - ++index; - if (!argv[index]) { - return -1; - } - x = argv[index]; - y = argv[index]; - while (*y && *y != ',') { - ++y; - } - if (!*y) { - return -1; - } - *y++ = '\0'; - state->window_x = SDL_atoi(x); - state->window_y = SDL_atoi(y); - return 2; - } - if (SDL_strcasecmp(argv[index], "--geometry") == 0) { - char *w, *h; - ++index; - if (!argv[index]) { - return -1; - } - w = argv[index]; - h = argv[index]; - while (*h && *h != 'x') { - ++h; - } - if (!*h) { - return -1; - } - *h++ = '\0'; - state->window_w = SDL_atoi(w); - state->window_h = SDL_atoi(h); - return 2; - } - if (SDL_strcasecmp(argv[index], "--depth") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->depth = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--refresh") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->refresh_rate = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--vsync") == 0) { - state->render_flags |= SDL_RENDERER_PRESENTVSYNC; - return 1; - } - if (SDL_strcasecmp(argv[index], "--noframe") == 0) { - state->window_flags |= SDL_WINDOW_BORDERLESS; - return 1; - } - if (SDL_strcasecmp(argv[index], "--resize") == 0) { - state->window_flags |= SDL_WINDOW_RESIZABLE; - return 1; - } - if (SDL_strcasecmp(argv[index], "--minimize") == 0) { - state->window_flags |= SDL_WINDOW_MINIMIZED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--maximize") == 0) { - state->window_flags |= SDL_WINDOW_MAXIMIZED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--grab") == 0) { - state->window_flags |= SDL_WINDOW_INPUT_GRABBED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--rate") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->audiospec.freq = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--format") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - if (SDL_strcasecmp(argv[index], "U8") == 0) { - state->audiospec.format = AUDIO_U8; - return 2; - } - if (SDL_strcasecmp(argv[index], "S8") == 0) { - state->audiospec.format = AUDIO_S8; - return 2; - } - if (SDL_strcasecmp(argv[index], "U16") == 0) { - state->audiospec.format = AUDIO_U16; - return 2; - } - if (SDL_strcasecmp(argv[index], "U16LE") == 0) { - state->audiospec.format = AUDIO_U16LSB; - return 2; - } - if (SDL_strcasecmp(argv[index], "U16BE") == 0) { - state->audiospec.format = AUDIO_U16MSB; - return 2; - } - if (SDL_strcasecmp(argv[index], "S16") == 0) { - state->audiospec.format = AUDIO_S16; - return 2; - } - if (SDL_strcasecmp(argv[index], "S16LE") == 0) { - state->audiospec.format = AUDIO_S16LSB; - return 2; - } - if (SDL_strcasecmp(argv[index], "S16BE") == 0) { - state->audiospec.format = AUDIO_S16MSB; - return 2; - } - return -1; - } - if (SDL_strcasecmp(argv[index], "--channels") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->audiospec.channels = (Uint8) SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--samples") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->audiospec.samples = (Uint16) SDL_atoi(argv[index]); - return 2; - } - if ((SDL_strcasecmp(argv[index], "-h") == 0) - || (SDL_strcasecmp(argv[index], "--help") == 0)) { - /* Print the usage message */ - return -1; - } - return 0; -} - -const char * -CommonUsage(CommonState * state) -{ - switch (state->flags & (SDL_INIT_VIDEO | SDL_INIT_AUDIO)) { - case SDL_INIT_VIDEO: - return VIDEO_USAGE; - case SDL_INIT_AUDIO: - return AUDIO_USAGE; - case (SDL_INIT_VIDEO | SDL_INIT_AUDIO): - return VIDEO_USAGE " " AUDIO_USAGE; - default: - return ""; - } -} - -static void -PrintRendererFlag(Uint32 flag) -{ - switch (flag) { - case SDL_RENDERER_PRESENTVSYNC: - fprintf(stderr, "PresentVSync"); - break; - case SDL_RENDERER_ACCELERATED: - fprintf(stderr, "Accelerated"); - break; - default: - fprintf(stderr, "0x%8.8x", flag); - break; - } -} - -static void -PrintPixelFormat(Uint32 format) -{ - switch (format) { - case SDL_PIXELFORMAT_UNKNOWN: - fprintf(stderr, "Unknwon"); - break; - case SDL_PIXELFORMAT_INDEX1LSB: - fprintf(stderr, "Index1LSB"); - break; - case SDL_PIXELFORMAT_INDEX1MSB: - fprintf(stderr, "Index1MSB"); - break; - case SDL_PIXELFORMAT_INDEX4LSB: - fprintf(stderr, "Index4LSB"); - break; - case SDL_PIXELFORMAT_INDEX4MSB: - fprintf(stderr, "Index4MSB"); - break; - case SDL_PIXELFORMAT_INDEX8: - fprintf(stderr, "Index8"); - break; - case SDL_PIXELFORMAT_RGB332: - fprintf(stderr, "RGB332"); - break; - case SDL_PIXELFORMAT_RGB444: - fprintf(stderr, "RGB444"); - break; - case SDL_PIXELFORMAT_RGB555: - fprintf(stderr, "RGB555"); - break; - case SDL_PIXELFORMAT_BGR555: - fprintf(stderr, "BGR555"); - break; - case SDL_PIXELFORMAT_ARGB4444: - fprintf(stderr, "ARGB4444"); - break; - case SDL_PIXELFORMAT_ABGR4444: - fprintf(stderr, "ABGR4444"); - break; - case SDL_PIXELFORMAT_ARGB1555: - fprintf(stderr, "ARGB1555"); - break; - case SDL_PIXELFORMAT_ABGR1555: - fprintf(stderr, "ABGR1555"); - break; - case SDL_PIXELFORMAT_RGB565: - fprintf(stderr, "RGB565"); - break; - case SDL_PIXELFORMAT_BGR565: - fprintf(stderr, "BGR565"); - break; - case SDL_PIXELFORMAT_RGB24: - fprintf(stderr, "RGB24"); - break; - case SDL_PIXELFORMAT_BGR24: - fprintf(stderr, "BGR24"); - break; - case SDL_PIXELFORMAT_RGB888: - fprintf(stderr, "RGB888"); - break; - case SDL_PIXELFORMAT_BGR888: - fprintf(stderr, "BGR888"); - break; - case SDL_PIXELFORMAT_ARGB8888: - fprintf(stderr, "ARGB8888"); - break; - case SDL_PIXELFORMAT_RGBA8888: - fprintf(stderr, "RGBA8888"); - break; - case SDL_PIXELFORMAT_ABGR8888: - fprintf(stderr, "ABGR8888"); - break; - case SDL_PIXELFORMAT_BGRA8888: - fprintf(stderr, "BGRA8888"); - break; - case SDL_PIXELFORMAT_ARGB2101010: - fprintf(stderr, "ARGB2101010"); - break; - case SDL_PIXELFORMAT_YV12: - fprintf(stderr, "YV12"); - break; - case SDL_PIXELFORMAT_IYUV: - fprintf(stderr, "IYUV"); - break; - case SDL_PIXELFORMAT_YUY2: - fprintf(stderr, "YUY2"); - break; - case SDL_PIXELFORMAT_UYVY: - fprintf(stderr, "UYVY"); - break; - case SDL_PIXELFORMAT_YVYU: - fprintf(stderr, "YVYU"); - break; - default: - fprintf(stderr, "0x%8.8x", format); - break; - } -} - -static void -PrintRenderer(SDL_RendererInfo * info) -{ - int i, count; - - fprintf(stderr, " Renderer %s:\n", info->name); - - fprintf(stderr, " Flags: 0x%8.8X", info->flags); - fprintf(stderr, " ("); - count = 0; - for (i = 0; i < sizeof(info->flags) * 8; ++i) { - Uint32 flag = (1 << i); - if (info->flags & flag) { - if (count > 0) { - fprintf(stderr, " | "); - } - PrintRendererFlag(flag); - ++count; - } - } - fprintf(stderr, ")\n"); - - fprintf(stderr, " Texture formats (%d): ", info->num_texture_formats); - for (i = 0; i < (int) info->num_texture_formats; ++i) { - if (i > 0) { - fprintf(stderr, ", "); - } - PrintPixelFormat(info->texture_formats[i]); - } - fprintf(stderr, "\n"); - - if (info->max_texture_width || info->max_texture_height) { - fprintf(stderr, " Max Texture Size: %dx%d\n", - info->max_texture_width, info->max_texture_height); - } -} - -static SDL_Surface * -LoadIcon(const char *file) -{ - SDL_Surface *icon; - - /* Load the icon surface */ - icon = SDL_LoadBMP(file); - if (icon == NULL) { - fprintf(stderr, "Couldn't load %s: %s\n", file, SDL_GetError()); - return (NULL); - } - - if (icon->format->palette == NULL) { - fprintf(stderr, "Icon must have a palette!\n"); - SDL_FreeSurface(icon); - return (NULL); - } - - /* Set the colorkey */ - SDL_SetColorKey(icon, 1, *((Uint8 *) icon->pixels)); - - return (icon); -} - -SDL_bool -CommonInit(CommonState * state) -{ - int i, j, m, n; - SDL_DisplayMode fullscreen_mode; - - if (state->flags & SDL_INIT_VIDEO) { - if (state->verbose & VERBOSE_VIDEO) { - n = SDL_GetNumVideoDrivers(); - if (n == 0) { - fprintf(stderr, "No built-in video drivers\n"); - } else { - fprintf(stderr, "Built-in video drivers:"); - for (i = 0; i < n; ++i) { - if (i > 0) { - fprintf(stderr, ","); - } - fprintf(stderr, " %s", SDL_GetVideoDriver(i)); - } - fprintf(stderr, "\n"); - } - } - if (SDL_VideoInit(state->videodriver) < 0) { - fprintf(stderr, "Couldn't initialize video driver: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - if (state->verbose & VERBOSE_VIDEO) { - fprintf(stderr, "Video driver: %s\n", - SDL_GetCurrentVideoDriver()); - } - - /* Upload GL settings */ - SDL_GL_SetAttribute(SDL_GL_RED_SIZE, state->gl_red_size); - SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, state->gl_green_size); - SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, state->gl_blue_size); - SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, state->gl_alpha_size); - SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, state->gl_double_buffer); - SDL_GL_SetAttribute(SDL_GL_BUFFER_SIZE, state->gl_buffer_size); - SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, state->gl_depth_size); - SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, state->gl_stencil_size); - SDL_GL_SetAttribute(SDL_GL_ACCUM_RED_SIZE, state->gl_accum_red_size); - SDL_GL_SetAttribute(SDL_GL_ACCUM_GREEN_SIZE, state->gl_accum_green_size); - SDL_GL_SetAttribute(SDL_GL_ACCUM_BLUE_SIZE, state->gl_accum_blue_size); - SDL_GL_SetAttribute(SDL_GL_ACCUM_ALPHA_SIZE, state->gl_accum_alpha_size); - SDL_GL_SetAttribute(SDL_GL_STEREO, state->gl_stereo); - SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, state->gl_multisamplebuffers); - SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, state->gl_multisamplesamples); - if (state->gl_accelerated >= 0) { - SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, - state->gl_accelerated); - } - SDL_GL_SetAttribute(SDL_GL_RETAINED_BACKING, state->gl_retained_backing); - if (state->gl_major_version) { - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, state->gl_major_version); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, state->gl_minor_version); - } - - if (state->verbose & VERBOSE_MODES) { - SDL_DisplayMode mode; - int bpp; - Uint32 Rmask, Gmask, Bmask, Amask; - - n = SDL_GetNumVideoDisplays(); - fprintf(stderr, "Number of displays: %d\n", n); - for (i = 0; i < n; ++i) { - fprintf(stderr, "Display %d:\n", i); - - SDL_GetDesktopDisplayMode(i, &mode); - SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, &Gmask, - &Bmask, &Amask); - fprintf(stderr, - " Current mode: %dx%d@%dHz, %d bits-per-pixel (%s)\n", - mode.w, mode.h, mode.refresh_rate, bpp, - SDL_GetPixelFormatName(mode.format)); - if (Rmask || Gmask || Bmask) { - fprintf(stderr, " Red Mask = 0x%.8x\n", Rmask); - fprintf(stderr, " Green Mask = 0x%.8x\n", Gmask); - fprintf(stderr, " Blue Mask = 0x%.8x\n", Bmask); - if (Amask) - fprintf(stderr, " Alpha Mask = 0x%.8x\n", Amask); - } - - /* Print available fullscreen video modes */ - m = SDL_GetNumDisplayModes(i); - if (m == 0) { - fprintf(stderr, "No available fullscreen video modes\n"); - } else { - fprintf(stderr, " Fullscreen video modes:\n"); - for (j = 0; j < m; ++j) { - SDL_GetDisplayMode(i, j, &mode); - SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, - &Gmask, &Bmask, &Amask); - fprintf(stderr, - " Mode %d: %dx%d@%dHz, %d bits-per-pixel (%s)\n", - j, mode.w, mode.h, mode.refresh_rate, bpp, - SDL_GetPixelFormatName(mode.format)); - if (Rmask || Gmask || Bmask) { - fprintf(stderr, " Red Mask = 0x%.8x\n", - Rmask); - fprintf(stderr, " Green Mask = 0x%.8x\n", - Gmask); - fprintf(stderr, " Blue Mask = 0x%.8x\n", - Bmask); - if (Amask) - fprintf(stderr, - " Alpha Mask = 0x%.8x\n", - Amask); - } - } - } - } - } - - if (state->verbose & VERBOSE_RENDER) { - SDL_RendererInfo info; - - n = SDL_GetNumRenderDrivers(); - if (n == 0) { - fprintf(stderr, "No built-in render drivers\n"); - } else { - fprintf(stderr, "Built-in render drivers:\n"); - for (i = 0; i < n; ++i) { - SDL_GetRenderDriverInfo(i, &info); - PrintRenderer(&info); - } - } - } - - SDL_zero(fullscreen_mode); - switch (state->depth) { - case 8: - fullscreen_mode.format = SDL_PIXELFORMAT_INDEX8; - break; - case 15: - fullscreen_mode.format = SDL_PIXELFORMAT_RGB555; - break; - case 16: - fullscreen_mode.format = SDL_PIXELFORMAT_RGB565; - break; - case 24: - fullscreen_mode.format = SDL_PIXELFORMAT_RGB24; - break; - default: - fullscreen_mode.format = SDL_PIXELFORMAT_RGB888; - break; - } - fullscreen_mode.refresh_rate = state->refresh_rate; - - state->windows = - (SDL_Window **) SDL_malloc(state->num_windows * - sizeof(*state->windows)); - state->renderers = - (SDL_Renderer **) SDL_malloc(state->num_windows * - sizeof(*state->renderers)); - if (!state->windows || !state->renderers) { - fprintf(stderr, "Out of memory!\n"); - return SDL_FALSE; - } - for (i = 0; i < state->num_windows; ++i) { - char title[1024]; - - if (state->num_windows > 1) { - SDL_snprintf(title, SDL_arraysize(title), "%s %d", - state->window_title, i + 1); - } else { - SDL_strlcpy(title, state->window_title, SDL_arraysize(title)); - } - state->windows[i] = - SDL_CreateWindow(title, state->window_x, state->window_y, - state->window_w, state->window_h, - state->window_flags); - if (!state->windows[i]) { - fprintf(stderr, "Couldn't create window: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - SDL_GetWindowSize(state->windows[i], &state->window_w, &state->window_h); - - if (SDL_SetWindowDisplayMode(state->windows[i], &fullscreen_mode) < 0) { - fprintf(stderr, "Can't set up fullscreen display mode: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - - if (state->window_icon) { - SDL_Surface *icon = LoadIcon(state->window_icon); - if (icon) { - SDL_SetWindowIcon(state->windows[i], icon); - SDL_FreeSurface(icon); - } - } - - SDL_ShowWindow(state->windows[i]); - - state->renderers[i] = NULL; - - if (!state->skip_renderer - && (state->renderdriver - || !(state->window_flags & SDL_WINDOW_OPENGL))) { - m = -1; - if (state->renderdriver) { - SDL_RendererInfo info; - n = SDL_GetNumRenderDrivers(); - for (j = 0; j < n; ++j) { - SDL_GetRenderDriverInfo(j, &info); - if (SDL_strcasecmp(info.name, state->renderdriver) == - 0) { - m = j; - break; - } - } - if (m == n) { - fprintf(stderr, - "Couldn't find render driver named %s", - state->renderdriver); - return SDL_FALSE; - } - } - state->renderers[i] = SDL_CreateRenderer(state->windows[i], - m, state->render_flags); - if (!state->renderers[i]) { - fprintf(stderr, "Couldn't create renderer: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - if (state->verbose & VERBOSE_RENDER) { - SDL_RendererInfo info; - - fprintf(stderr, "Current renderer:\n"); - SDL_GetRendererInfo(state->renderers[i], &info); - PrintRenderer(&info); - } - } - } - } - - if (state->flags & SDL_INIT_AUDIO) { - if (state->verbose & VERBOSE_AUDIO) { - n = SDL_GetNumAudioDrivers(); - if (n == 0) { - fprintf(stderr, "No built-in audio drivers\n"); - } else { - fprintf(stderr, "Built-in audio drivers:"); - for (i = 0; i < n; ++i) { - if (i > 0) { - fprintf(stderr, ","); - } - fprintf(stderr, " %s", SDL_GetAudioDriver(i)); - } - fprintf(stderr, "\n"); - } - } - if (SDL_AudioInit(state->audiodriver) < 0) { - fprintf(stderr, "Couldn't initialize audio driver: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - if (state->verbose & VERBOSE_VIDEO) { - fprintf(stderr, "Audio driver: %s\n", - SDL_GetCurrentAudioDriver()); - } - - if (SDL_OpenAudio(&state->audiospec, NULL) < 0) { - fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError()); - return SDL_FALSE; - } - } - - return SDL_TRUE; -} - -static void -PrintEvent(SDL_Event * event) -{ - fprintf(stderr, "SDL EVENT: "); - switch (event->type) { - case SDL_WINDOWEVENT: - switch (event->window.event) { - case SDL_WINDOWEVENT_SHOWN: - fprintf(stderr, "Window %d shown", event->window.windowID); - break; - case SDL_WINDOWEVENT_HIDDEN: - fprintf(stderr, "Window %d hidden", event->window.windowID); - break; - case SDL_WINDOWEVENT_EXPOSED: - fprintf(stderr, "Window %d exposed", event->window.windowID); - break; - case SDL_WINDOWEVENT_MOVED: - fprintf(stderr, "Window %d moved to %d,%d", - event->window.windowID, event->window.data1, - event->window.data2); - break; - case SDL_WINDOWEVENT_RESIZED: - fprintf(stderr, "Window %d resized to %dx%d", - event->window.windowID, event->window.data1, - event->window.data2); - break; - case SDL_WINDOWEVENT_MINIMIZED: - fprintf(stderr, "Window %d minimized", event->window.windowID); - break; - case SDL_WINDOWEVENT_MAXIMIZED: - fprintf(stderr, "Window %d maximized", event->window.windowID); - break; - case SDL_WINDOWEVENT_RESTORED: - fprintf(stderr, "Window %d restored", event->window.windowID); - break; - case SDL_WINDOWEVENT_ENTER: - fprintf(stderr, "Mouse entered window %d", - event->window.windowID); - break; - case SDL_WINDOWEVENT_LEAVE: - fprintf(stderr, "Mouse left window %d", event->window.windowID); - break; - case SDL_WINDOWEVENT_FOCUS_GAINED: - fprintf(stderr, "Window %d gained keyboard focus", - event->window.windowID); - break; - case SDL_WINDOWEVENT_FOCUS_LOST: - fprintf(stderr, "Window %d lost keyboard focus", - event->window.windowID); - break; - case SDL_WINDOWEVENT_CLOSE: - fprintf(stderr, "Window %d closed", event->window.windowID); - break; - default: - fprintf(stderr, "Window %d got unknown event %d", - event->window.windowID, event->window.event); - break; - } - break; - case SDL_KEYDOWN: - fprintf(stderr, - "Keyboard: key pressed in window %d: scancode 0x%08X = %s, keycode 0x%08X = %s", - event->key.windowID, - event->key.keysym.scancode, - SDL_GetScancodeName(event->key.keysym.scancode), - event->key.keysym.sym, SDL_GetKeyName(event->key.keysym.sym)); - break; - case SDL_KEYUP: - fprintf(stderr, - "Keyboard: key released in window %d: scancode 0x%08X = %s, keycode 0x%08X = %s", - event->key.windowID, - event->key.keysym.scancode, - SDL_GetScancodeName(event->key.keysym.scancode), - event->key.keysym.sym, SDL_GetKeyName(event->key.keysym.sym)); - break; - case SDL_TEXTINPUT: - fprintf(stderr, "Keyboard: text input \"%s\" in window %d", - event->text.text, event->text.windowID); - break; - case SDL_MOUSEMOTION: - fprintf(stderr, "Mouse: moved to %d,%d (%d,%d) in window %d", - event->motion.x, event->motion.y, - event->motion.xrel, event->motion.yrel, - event->motion.windowID); - break; - case SDL_MOUSEBUTTONDOWN: - fprintf(stderr, "Mouse: button %d pressed at %d,%d in window %d", - event->button.button, event->button.x, event->button.y, - event->button.windowID); - break; - case SDL_MOUSEBUTTONUP: - fprintf(stderr, "Mouse: button %d released at %d,%d in window %d", - event->button.button, event->button.x, event->button.y, - event->button.windowID); - break; - case SDL_MOUSEWHEEL: - fprintf(stderr, - "Mouse: wheel scrolled %d in x and %d in y in window %d", - event->wheel.x, event->wheel.y, event->wheel.windowID); - break; - case SDL_JOYBALLMOTION: - fprintf(stderr, "Joystick %d: ball %d moved by %d,%d", - event->jball.which, event->jball.ball, event->jball.xrel, - event->jball.yrel); - break; - case SDL_JOYHATMOTION: - fprintf(stderr, "Joystick %d: hat %d moved to ", event->jhat.which, - event->jhat.hat); - switch (event->jhat.value) { - case SDL_HAT_CENTERED: - fprintf(stderr, "CENTER"); - break; - case SDL_HAT_UP: - fprintf(stderr, "UP"); - break; - case SDL_HAT_RIGHTUP: - fprintf(stderr, "RIGHTUP"); - break; - case SDL_HAT_RIGHT: - fprintf(stderr, "RIGHT"); - break; - case SDL_HAT_RIGHTDOWN: - fprintf(stderr, "RIGHTDOWN"); - break; - case SDL_HAT_DOWN: - fprintf(stderr, "DOWN"); - break; - case SDL_HAT_LEFTDOWN: - fprintf(stderr, "LEFTDOWN"); - break; - case SDL_HAT_LEFT: - fprintf(stderr, "LEFT"); - break; - case SDL_HAT_LEFTUP: - fprintf(stderr, "LEFTUP"); - break; - default: - fprintf(stderr, "UNKNOWN"); - break; - } - break; - case SDL_JOYBUTTONDOWN: - fprintf(stderr, "Joystick %d: button %d pressed", - event->jbutton.which, event->jbutton.button); - break; - case SDL_JOYBUTTONUP: - fprintf(stderr, "Joystick %d: button %d released", - event->jbutton.which, event->jbutton.button); - break; - case SDL_CLIPBOARDUPDATE: - fprintf(stderr, "Clipboard updated"); - break; - case SDL_QUIT: - fprintf(stderr, "Quit requested"); - break; - case SDL_USEREVENT: - fprintf(stderr, "User event %d", event->user.code); - break; - default: - fprintf(stderr, "Unknown event %d", event->type); - break; - } - fprintf(stderr, "\n"); -} - -void -CommonEvent(CommonState * state, SDL_Event * event, int *done) -{ - int i; - - if (state->verbose & VERBOSE_EVENT) { - PrintEvent(event); - } - - switch (event->type) { - case SDL_WINDOWEVENT: - switch (event->window.event) { - case SDL_WINDOWEVENT_CLOSE: - { - SDL_Window *pWindow = SDL_GetWindowFromID(event->window.windowID); - if ( pWindow ) { - SDL_DestroyWindow( pWindow ); - } - } - break; - } - break; - case SDL_KEYDOWN: - switch (event->key.keysym.sym) { - /* Add hotkeys here */ - case SDLK_c: - if (event->key.keysym.mod & KMOD_CTRL) { - /* Ctrl-C copy awesome text! */ - SDL_SetClipboardText("SDL rocks!\nYou know it!"); - printf("Copied text to clipboard\n"); - } - break; - case SDLK_v: - if (event->key.keysym.mod & KMOD_CTRL) { - /* Ctrl-V paste awesome text! */ - char *text = SDL_GetClipboardText(); - if (*text) { - printf("Clipboard: %s\n", text); - } else { - printf("Clipboard is empty\n"); - } - SDL_free(text); - } - break; - case SDLK_g: - if (event->key.keysym.mod & KMOD_CTRL) { - /* Ctrl-G toggle grab */ - SDL_Window *window = SDL_GetWindowFromID(event->key.windowID); - if (window) { - SDL_SetWindowGrab(window, !SDL_GetWindowGrab(window)); - } - } - break; - case SDLK_m: - if (event->key.keysym.mod & KMOD_CTRL) { - /* Ctrl-M maximize */ - SDL_Window *window = SDL_GetWindowFromID(event->key.windowID); - if (window) { - Uint32 flags = SDL_GetWindowFlags(window); - if (flags & SDL_WINDOW_MAXIMIZED) { - SDL_RestoreWindow(window); - } else { - SDL_MaximizeWindow(window); - } - } - } - break; - case SDLK_z: - if (event->key.keysym.mod & KMOD_CTRL) { - /* Ctrl-Z minimize */ - SDL_Window *window = SDL_GetWindowFromID(event->key.windowID); - if (window) { - SDL_MinimizeWindow(window); - } - } - break; - case SDLK_RETURN: - if (event->key.keysym.mod & KMOD_CTRL) { - /* Ctrl-Enter toggle fullscreen */ - SDL_Window *window = SDL_GetWindowFromID(event->key.windowID); - if (window) { - Uint32 flags = SDL_GetWindowFlags(window); - if (flags & SDL_WINDOW_FULLSCREEN) { - SDL_SetWindowFullscreen(window, SDL_FALSE); - } else { - SDL_SetWindowFullscreen(window, SDL_TRUE); - } - } - } - break; - case SDLK_ESCAPE: - *done = 1; - break; - default: - break; - } - break; - case SDL_QUIT: - *done = 1; - break; - } -} - -void -CommonQuit(CommonState * state) -{ - int i; - - if (state->windows) { - SDL_free(state->windows); - } - if (state->renderers) { - for (i = 0; i < state->num_windows; ++i) { - if (state->renderers[i]) { - SDL_DestroyRenderer(state->renderers[i]); - } - } - SDL_free(state->renderers); - } - if (state->flags & SDL_INIT_VIDEO) { - SDL_VideoQuit(); - } - if (state->flags & SDL_INIT_AUDIO) { - SDL_AudioQuit(); - } - SDL_free(state); -} - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/3rdparty/SDL-1.3.0-5387/test/common.h b/3rdparty/SDL-1.3.0-5387/test/common.h deleted file mode 100644 index d4036ba84d..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/common.h +++ /dev/null @@ -1,77 +0,0 @@ - -/* A simple test program framework */ - -#define SDL_NO_COMPAT -#include "SDL.h" - -#define DEFAULT_WINDOW_WIDTH 640 -#define DEFAULT_WINDOW_HEIGHT 480 - -#define VERBOSE_VIDEO 0x00000001 -#define VERBOSE_MODES 0x00000002 -#define VERBOSE_RENDER 0x00000004 -#define VERBOSE_EVENT 0x00000008 -#define VERBOSE_AUDIO 0x00000010 - -typedef struct -{ - /* SDL init flags */ - char **argv; - Uint32 flags; - Uint32 verbose; - - /* Video info */ - const char *videodriver; - int display; - const char *window_title; - const char *window_icon; - Uint32 window_flags; - int window_x; - int window_y; - int window_w; - int window_h; - int depth; - int refresh_rate; - int num_windows; - SDL_Window **windows; - - /* Renderer info */ - const char *renderdriver; - Uint32 render_flags; - SDL_bool skip_renderer; - SDL_Renderer **renderers; - - /* Audio info */ - const char *audiodriver; - SDL_AudioSpec audiospec; - - /* GL settings */ - int gl_red_size; - int gl_green_size; - int gl_blue_size; - int gl_alpha_size; - int gl_buffer_size; - int gl_depth_size; - int gl_stencil_size; - int gl_double_buffer; - int gl_accum_red_size; - int gl_accum_green_size; - int gl_accum_blue_size; - int gl_accum_alpha_size; - int gl_stereo; - int gl_multisamplebuffers; - int gl_multisamplesamples; - int gl_retained_backing; - int gl_accelerated; - int gl_major_version; - int gl_minor_version; -} CommonState; - -extern CommonState *CommonCreateState(char **argv, Uint32 flags); -extern int CommonArg(CommonState * state, int index); -extern const char *CommonUsage(CommonState * state); -extern SDL_bool CommonInit(CommonState * state); -extern void CommonEvent(CommonState * state, SDL_Event * event, int *done); -extern void CommonQuit(CommonState * state); - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/3rdparty/SDL-1.3.0-5387/test/configure b/3rdparty/SDL-1.3.0-5387/test/configure deleted file mode 100755 index 2c723905b0..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/configure +++ /dev/null @@ -1,4908 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61. -# -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -as_nl=' -' -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } -fi - -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# CDPATH. -$as_unset CDPATH - - -if test "x$CONFIG_SHELL" = x; then - if (eval ":") 2>/dev/null; then - as_have_required=yes -else - as_have_required=no -fi - - if test $as_have_required = yes && (eval ": -(as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=\$LINENO - as_lineno_2=\$LINENO - test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && - test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } -") 2> /dev/null; then - : -else - as_candidate_shells= - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - case $as_dir in - /*) - for as_base in sh bash ksh sh5; do - as_candidate_shells="$as_candidate_shells $as_dir/$as_base" - done;; - esac -done -IFS=$as_save_IFS - - - for as_shell in $as_candidate_shells $SHELL; do - # Try only shells that exist, to save several forks. - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { ("$as_shell") 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -_ASEOF -}; then - CONFIG_SHELL=$as_shell - as_have_required=yes - if { "$as_shell" 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -(as_func_return () { - (exit $1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = "$1" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test $exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } - -_ASEOF -}; then - break -fi - -fi - - done - - if test "x$CONFIG_SHELL" != x; then - for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi - - - if test $as_have_required = no; then - echo This script requires a shell more modern than all the - echo shells that I found on your system. Please install a - echo modern shell, or manually run the script under such a - echo shell if you do have one. - { (exit 1); exit 1; } -fi - - -fi - -fi - - - -(eval "as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0") || { - echo No shell found that supports shell functions. - echo Please tell autoconf@gnu.org about your system, - echo including any error possibly output before this - echo message -} - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; -esac - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir -fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - - -exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -ac_unique_file="README" -ac_subst_vars='SHELL -PATH_SEPARATOR -PACKAGE_NAME -PACKAGE_TARNAME -PACKAGE_VERSION -PACKAGE_STRING -PACKAGE_BUGREPORT -exec_prefix -prefix -program_transform_name -bindir -sbindir -libexecdir -datarootdir -datadir -sysconfdir -sharedstatedir -localstatedir -includedir -oldincludedir -docdir -infodir -htmldir -dvidir -pdfdir -psdir -libdir -localedir -mandir -DEFS -ECHO_C -ECHO_N -ECHO_T -LIBS -build_alias -host_alias -target_alias -build -build_cpu -build_vendor -build_os -host -host_cpu -host_vendor -host_os -CC -CFLAGS -LDFLAGS -CPPFLAGS -ac_ct_CC -EXEEXT -OBJEXT -OSMESA_CONFIG -EXE -MATHLIB -SDL_CONFIG -SDL_CFLAGS -SDL_LIBS -XMKMF -CPP -GLLIB -SDL_TTF_LIB -LIBOBJS -LTLIBOBJS' -ac_subst_files='' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -XMKMF -CPP' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` - eval enable_$ac_feature=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` - eval enable_$ac_feature=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/[-.]/_/g'` - eval with_$ac_package=\$ac_optarg ;; - - -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/[-.]/_/g'` - eval with_$ac_package=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute directory names. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; } -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { echo "$as_me: error: Working directory cannot be determined" >&2 - { (exit 1); exit 1; }; } -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - { echo "$as_me: error: pwd does not report name of working directory" >&2 - { (exit 1); exit 1; }; } - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$0" || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 - { (exit 1); exit 1; }; } - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures this package to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -X features: - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - - cat <<\_ACEOF - -Optional Features: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --disable-sdltest Do not try to compile and run a test SDL program - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-sdl-prefix=PFX Prefix where SDL is installed (optional) - --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional) - --with-x use the X Window System - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - XMKMF Path to xmkmf, Makefile generator for X Window System - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -configure -generated by GNU Autoconf 2.61 - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by $as_me, which was -generated by GNU Autoconf 2.61. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" -done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - ac_configure_args="$ac_configure_args '$ac_arg'" - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## -## File substitutions. ## -## ------------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -n "$CONFIG_SITE"; then - set x "$CONFIG_SITE" -elif test "x$prefix" != xNONE; then - set x "$prefix/share/config.site" "$prefix/etc/config.site" -else - set x "$ac_default_prefix/share/config.site" \ - "$ac_default_prefix/etc/config.site" -fi -shift -for ac_site_file -do - if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - - - - - - - - - - - - - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -ac_aux_dir= -for ac_dir in $srcdir/../build-scripts; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir/../build-scripts" >&5 -echo "$as_me: error: cannot find install-sh or install.sh in $srcdir/../build-scripts" >&2;} - { (exit 1); exit 1; }; } -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 -echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} - { (exit 1); exit 1; }; } - -{ echo "$as_me:$LINENO: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6; } -if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 -echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 -echo "$as_me: error: invalid value of canonical build" >&2;} - { (exit 1); exit 1; }; };; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ echo "$as_me:$LINENO: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6; } -if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 -echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} - { (exit 1); exit 1; }; } -fi - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 -echo "$as_me: error: invalid value of canonical host" >&2;} - { (exit 1); exit 1; }; };; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -echo "$as_me:$LINENO: checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -# -# List of possible output files, starting from the most likely. -# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) -# only as a last resort. b.out is created by i960 compilers. -ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' -# -# The IRIX 6 linker writes into existing files which may not be -# executable, retaining their permissions. Remove them first so a -# subsequent execution test works. -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { (ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi - -{ echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6; } -if test -z "$ac_file"; then - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext - -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -{ echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } - -rm -f a.out a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } -{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6; } - -{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } -GCC=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_c89=$ac_arg -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6; } ;; - xno) - { echo "$as_me:$LINENO: result: unsupported" >&5 -echo "${ECHO_T}unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; -esac - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - -{ echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 -echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; } -if test "${ac_cv_c_const+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -/* FIXME: Include the comments suggested by Paul. */ -#ifndef __cplusplus - /* Ultrix mips cc rejects this. */ - typedef int charset[2]; - const charset cs; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - if (s) return 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_c_const=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_c_const=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 -echo "${ECHO_T}$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then - -cat >>confdefs.h <<\_ACEOF -#define const -_ACEOF - -fi - - -case "$host" in - *-*-cygwin* | *-*-mingw32*) - EXE=".exe" - MATHLIB="" - SYS_GL_LIBS="-lopengl32" - ;; - *-*-beos* | *-*-haiku*) - EXE="" - MATHLIB="" - SYS_GL_LIBS="-lGL" - ;; - *-*-darwin* ) - EXE="" - MATHLIB="" - SYS_GL_LIBS="-Wl,-framework,OpenGL" - ;; - *-*-aix*) - EXE="" - if test x$ac_cv_c_compiler_gnu = xyes; then - CFLAGS="-mthreads" - fi - SYS_GL_LIBS="" - ;; - *-*-mint*) - EXE="" - MATHLIB="" - # Extract the first word of "osmesa-config", so it can be a program name with args. -set dummy osmesa-config; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_OSMESA_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $OSMESA_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_OSMESA_CONFIG="$OSMESA_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_OSMESA_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - test -z "$ac_cv_path_OSMESA_CONFIG" && ac_cv_path_OSMESA_CONFIG="no" - ;; -esac -fi -OSMESA_CONFIG=$ac_cv_path_OSMESA_CONFIG -if test -n "$OSMESA_CONFIG"; then - { echo "$as_me:$LINENO: result: $OSMESA_CONFIG" >&5 -echo "${ECHO_T}$OSMESA_CONFIG" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - if test "x$OSMESA_CONFIG" = "xyes"; then - OSMESA_CFLAGS=`$OSMESA_CONFIG --cflags` - OSMESA_LIBS=`$OSMESA_CONFIG --libs` - CFLAGS="$CFLAGS $OSMESA_CFLAGS" - SYS_GL_LIBS="$OSMESA_LIBS" - else - SYS_GL_LIBS="-lOSMesa" - fi - ;; - *-*-qnx*) - EXE="" - MATHLIB="" - SYS_GL_LIBS="-lGLES_CM" - ;; - *) - EXE="" - MATHLIB="-lm" - SYS_GL_LIBS="-lGL" - ;; -esac - - - -SDL_VERSION=1.3.0 - -# Check whether --with-sdl-prefix was given. -if test "${with_sdl_prefix+set}" = set; then - withval=$with_sdl_prefix; sdl_prefix="$withval" -else - sdl_prefix="" -fi - - -# Check whether --with-sdl-exec-prefix was given. -if test "${with_sdl_exec_prefix+set}" = set; then - withval=$with_sdl_exec_prefix; sdl_exec_prefix="$withval" -else - sdl_exec_prefix="" -fi - -# Check whether --enable-sdltest was given. -if test "${enable_sdltest+set}" = set; then - enableval=$enable_sdltest; -else - enable_sdltest=yes -fi - - - if test x$sdl_exec_prefix != x ; then - sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix" - if test x${SDL_CONFIG+set} != xset ; then - SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config - fi - fi - if test x$sdl_prefix != x ; then - sdl_args="$sdl_args --prefix=$sdl_prefix" - if test x${SDL_CONFIG+set} != xset ; then - SDL_CONFIG=$sdl_prefix/bin/sdl-config - fi - fi - - if test "x$prefix" != xNONE; then - PATH="$prefix/bin:$prefix/usr/bin:$PATH" - fi - # Extract the first word of "sdl-config", so it can be a program name with args. -set dummy sdl-config; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_SDL_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $SDL_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_SDL_CONFIG="$SDL_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_SDL_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - test -z "$ac_cv_path_SDL_CONFIG" && ac_cv_path_SDL_CONFIG="no" - ;; -esac -fi -SDL_CONFIG=$ac_cv_path_SDL_CONFIG -if test -n "$SDL_CONFIG"; then - { echo "$as_me:$LINENO: result: $SDL_CONFIG" >&5 -echo "${ECHO_T}$SDL_CONFIG" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - - min_sdl_version=$SDL_VERSION - { echo "$as_me:$LINENO: checking for SDL - version >= $min_sdl_version" >&5 -echo $ECHO_N "checking for SDL - version >= $min_sdl_version... $ECHO_C" >&6; } - no_sdl="" - if test "$SDL_CONFIG" = "no" ; then - no_sdl=yes - else - SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags` - SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs` - - sdl_major_version=`$SDL_CONFIG $sdl_args --version | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` - sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` - sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ - sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` - if test "x$enable_sdltest" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" - ac_save_CXXFLAGS="$CXXFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $SDL_CFLAGS" - CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" - LIBS="$LIBS $SDL_LIBS" - rm -f conf.sdltest - if test "$cross_compiling" = yes; then - echo $ac_n "cross compiling; assumed OK... $ac_c" -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include -#include -#include "SDL.h" - -char* -my_strdup (char *str) -{ - char *new_str; - - if (str) - { - new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); - strcpy (new_str, str); - } - else - new_str = NULL; - - return new_str; -} - -int main (int argc, char *argv[]) -{ - int major, minor, micro; - char *tmp_version; - - /* This hangs on some systems (?) - system ("touch conf.sdltest"); - */ - { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } - - /* HP/UX 9 (%@#!) writes to sscanf strings */ - tmp_version = my_strdup("$min_sdl_version"); - if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { - printf("%s, bad version string\n", "$min_sdl_version"); - exit(1); - } - - if (($sdl_major_version > major) || - (($sdl_major_version == major) && ($sdl_minor_version > minor)) || - (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) - { - return 0; - } - else - { - printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); - printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro); - printf("*** best to upgrade to the required version.\n"); - printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n"); - printf("*** to point to the correct copy of sdl-config, and remove the file\n"); - printf("*** config.cache before re-running configure\n"); - return 1; - } -} - - -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -no_sdl=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - - - CFLAGS="$ac_save_CFLAGS" - CXXFLAGS="$ac_save_CXXFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - if test "x$no_sdl" = x ; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } - : - else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } - if test "$SDL_CONFIG" = "no" ; then - echo "*** The sdl-config script installed by SDL could not be found" - echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" - echo "*** your path, or set the SDL_CONFIG environment variable to the" - echo "*** full path to sdl-config." - else - if test -f conf.sdltest ; then - : - else - echo "*** Could not run SDL test program, checking why..." - CFLAGS="$CFLAGS $SDL_CFLAGS" - CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" - LIBS="$LIBS $SDL_LIBS" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -#include -#include "SDL.h" - -int main(int argc, char *argv[]) -{ return 0; } -#undef main -#define main K_and_R_C_main - -int -main () -{ - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding SDL or finding the wrong" - echo "*** version of SDL. If it is not finding SDL, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means SDL was incorrectly installed" - echo "*** or that you have moved SDL since it was installed. In the latter case, you" - echo "*** may want to edit the sdl-config script: $SDL_CONFIG" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$ac_save_CFLAGS" - CXXFLAGS="$ac_save_CXXFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - SDL_CFLAGS="" - SDL_LIBS="" - { { echo "$as_me:$LINENO: error: *** SDL version $SDL_VERSION not found!" >&5 -echo "$as_me: error: *** SDL version $SDL_VERSION not found!" >&2;} - { (exit 1); exit 1; }; } - - fi - - - rm -f conf.sdltest - -CFLAGS="$CFLAGS $SDL_CFLAGS" -LIBS="$LIBS $SDL_LIBS" - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi - -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi - -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi - -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi - -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ echo "$as_me:$LINENO: checking for X" >&5 -echo $ECHO_N "checking for X... $ECHO_C" >&6; } - - -# Check whether --with-x was given. -if test "${with_x+set}" = set; then - withval=$with_x; -fi - -# $have_x is `yes', `no', `disabled', or empty when we do not yet know. -if test "x$with_x" = xno; then - # The user explicitly disabled X. - have_x=disabled -else - case $x_includes,$x_libraries in #( - *\'*) { { echo "$as_me:$LINENO: error: Cannot use X directory names containing '" >&5 -echo "$as_me: error: Cannot use X directory names containing '" >&2;} - { (exit 1); exit 1; }; };; #( - *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # One or both of the vars are not set, and there is no cached value. -ac_x_includes=no ac_x_libraries=no -rm -f -r conftest.dir -if mkdir conftest.dir; then - cd conftest.dir - cat >Imakefile <<'_ACEOF' -incroot: - @echo incroot='${INCROOT}' -usrlibdir: - @echo usrlibdir='${USRLIBDIR}' -libdir: - @echo libdir='${LIBDIR}' -_ACEOF - if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then - # GNU make sometimes prints "make[1]: Entering...", which would confuse us. - for ac_var in incroot usrlibdir libdir; do - eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" - done - # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. - for ac_extension in a so sl dylib la dll; do - if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && - test -f "$ac_im_libdir/libX11.$ac_extension"; then - ac_im_usrlibdir=$ac_im_libdir; break - fi - done - # Screen out bogus values from the imake configuration. They are - # bogus both because they are the default anyway, and because - # using them would break gcc on systems where it needs fixed includes. - case $ac_im_incroot in - /usr/include) ac_x_includes= ;; - *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; - esac - case $ac_im_usrlibdir in - /usr/lib | /lib) ;; - *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; - esac - fi - cd .. - rm -f -r conftest.dir -fi - -# Standard set of common directories for X headers. -# Check X11 before X11Rn because it is often a symlink to the current release. -ac_x_header_dirs=' -/usr/X11/include -/usr/X11R6/include -/usr/X11R5/include -/usr/X11R4/include - -/usr/include/X11 -/usr/include/X11R6 -/usr/include/X11R5 -/usr/include/X11R4 - -/usr/local/X11/include -/usr/local/X11R6/include -/usr/local/X11R5/include -/usr/local/X11R4/include - -/usr/local/include/X11 -/usr/local/include/X11R6 -/usr/local/include/X11R5 -/usr/local/include/X11R4 - -/usr/X386/include -/usr/x386/include -/usr/XFree86/include/X11 - -/usr/include -/usr/local/include -/usr/unsupported/include -/usr/athena/include -/usr/local/x11r5/include -/usr/lpp/Xamples/include - -/usr/openwin/include -/usr/openwin/share/include' - -if test "$ac_x_includes" = no; then - # Guess where to find include files, by looking for Xlib.h. - # First, try using that file with no special directory specified. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # We can compile using X headers with no special include directory. -ac_x_includes= -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - for ac_dir in $ac_x_header_dirs; do - if test -r "$ac_dir/X11/Xlib.h"; then - ac_x_includes=$ac_dir - break - fi -done -fi - -rm -f conftest.err conftest.$ac_ext -fi # $ac_x_includes = no - -if test "$ac_x_libraries" = no; then - # Check for the libraries. - # See if we find them without any special options. - # Don't add to $LIBS permanently. - ac_save_LIBS=$LIBS - LIBS="-lX11 $LIBS" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -XrmInitialize () - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - LIBS=$ac_save_LIBS -# We can link X programs with no special library path. -ac_x_libraries= -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - LIBS=$ac_save_LIBS -for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` -do - # Don't even attempt the hair of trying to link an X program! - for ac_extension in a so sl dylib la dll; do - if test -r "$ac_dir/libX11.$ac_extension"; then - ac_x_libraries=$ac_dir - break 2 - fi - done -done -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi # $ac_x_libraries = no - -case $ac_x_includes,$ac_x_libraries in #( - no,* | *,no | *\'*) - # Didn't find X, or a directory has "'" in its name. - ac_cv_have_x="have_x=no";; #( - *) - # Record where we found X for the cache. - ac_cv_have_x="have_x=yes\ - ac_x_includes='$ac_x_includes'\ - ac_x_libraries='$ac_x_libraries'" -esac -fi -;; #( - *) have_x=yes;; - esac - eval "$ac_cv_have_x" -fi # $with_x != no - -if test "$have_x" != yes; then - { echo "$as_me:$LINENO: result: $have_x" >&5 -echo "${ECHO_T}$have_x" >&6; } - no_x=yes -else - # If each of the values was on the command line, it overrides each guess. - test "x$x_includes" = xNONE && x_includes=$ac_x_includes - test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries - # Update the cache value to reflect the command line values. - ac_cv_have_x="have_x=yes\ - ac_x_includes='$x_includes'\ - ac_x_libraries='$x_libraries'" - { echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5 -echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6; } -fi - -if test x$have_x = xyes; then - if test x$ac_x_includes = xno || test x$ac_x_includes = x; then - : - else - CFLAGS="$CFLAGS -I$ac_x_includes" - fi - if test x$ac_x_libraries = xno || test x$ac_x_libraries = x; then - : - else - XPATH="-L$ac_x_libraries" - fi -fi - -{ echo "$as_me:$LINENO: checking for OpenGL support" >&5 -echo $ECHO_N "checking for OpenGL support... $ECHO_C" >&6; } -have_opengl=no -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - - #include "SDL_opengl.h" - -int -main () -{ - - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - -have_opengl=yes - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $have_opengl" >&5 -echo "${ECHO_T}$have_opengl" >&6; } - -{ echo "$as_me:$LINENO: checking for OpenGL ES support" >&5 -echo $ECHO_N "checking for OpenGL ES support... $ECHO_C" >&6; } -have_opengles=no -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - - #if defined (__QNXNTO__) - #include - #elif defined (__IPHONEOS__) - #include - #else - #error "No OpenGL ES support" - #endif /* __QNXNTO__ */ - -int -main () -{ - - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - -have_opengles=yes - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $have_opengles" >&5 -echo "${ECHO_T}$have_opengles" >&6; } - -if test x$have_opengl = xyes; then - CFLAGS="$CFLAGS -DHAVE_OPENGL" - GLLIB="$XPATH $SYS_GL_LIBS" -elif test x$have_opengles = xyes; then - CFLAGS="$CFLAGS -DHAVE_OPENGLES" - GLLIB="$XPATH $SYS_GL_LIBS" -else - GLLIB="" -fi - - - -{ echo "$as_me:$LINENO: checking for SDL_ttf" >&5 -echo $ECHO_N "checking for SDL_ttf... $ECHO_C" >&6; } -have_SDL_ttf=no -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - - #include "SDL_ttf.h" - -int -main () -{ - - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - -have_SDL_ttf=yes - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ echo "$as_me:$LINENO: result: $have_SDL_ttf" >&5 -echo "${ECHO_T}$have_SDL_ttf" >&6; } - -if test x$have_SDL_ttf = xyes; then - CFLAGS="$CFLAGS -DHAVE_SDL_TTF" - SDL_TTF_LIB="-lSDL_ttf" -fi - - - -ac_config_files="$ac_config_files Makefile" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && - { echo "$as_me:$LINENO: updating cache $cache_file" >&5 -echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file - else - { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 -echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros that -# take arguments), then branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -ac_script=' -t clear -:clear -s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g -t quote -s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g -t quote -b any -:quote -s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g -s/\[/\\&/g -s/\]/\\&/g -s/\$/$$/g -H -:any -${ - g - s/^\n// - s/\n/ /g - p -} -' -DEFS=`sed -n "$ac_script" confdefs.h` - - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -as_nl=' -' -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } -fi - -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# CDPATH. -$as_unset CDPATH - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; -esac - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir -fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 - -# Save the log message, to keep $[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by $as_me, which was -generated by GNU Autoconf 2.61. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -# Files that config.status was made for. -config_files="$ac_config_files" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - -Configuration files: -$config_files - -Report bugs to ." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.61, - with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2006 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - echo "$ac_cs_version"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" - ac_need_defaults=false;; - --he | --h | --help | --hel | -h ) - echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -if \$ac_cs_recheck; then - echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - CONFIG_SHELL=$SHELL - export CONFIG_SHELL - exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= - trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status -' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -# -# Set up the sed scripts for CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "$CONFIG_FILES"; then - -_ACEOF - - - -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - cat >conf$$subs.sed <<_ACEOF -SHELL!$SHELL$ac_delim -PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim -PACKAGE_NAME!$PACKAGE_NAME$ac_delim -PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim -PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim -PACKAGE_STRING!$PACKAGE_STRING$ac_delim -PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim -exec_prefix!$exec_prefix$ac_delim -prefix!$prefix$ac_delim -program_transform_name!$program_transform_name$ac_delim -bindir!$bindir$ac_delim -sbindir!$sbindir$ac_delim -libexecdir!$libexecdir$ac_delim -datarootdir!$datarootdir$ac_delim -datadir!$datadir$ac_delim -sysconfdir!$sysconfdir$ac_delim -sharedstatedir!$sharedstatedir$ac_delim -localstatedir!$localstatedir$ac_delim -includedir!$includedir$ac_delim -oldincludedir!$oldincludedir$ac_delim -docdir!$docdir$ac_delim -infodir!$infodir$ac_delim -htmldir!$htmldir$ac_delim -dvidir!$dvidir$ac_delim -pdfdir!$pdfdir$ac_delim -psdir!$psdir$ac_delim -libdir!$libdir$ac_delim -localedir!$localedir$ac_delim -mandir!$mandir$ac_delim -DEFS!$DEFS$ac_delim -ECHO_C!$ECHO_C$ac_delim -ECHO_N!$ECHO_N$ac_delim -ECHO_T!$ECHO_T$ac_delim -LIBS!$LIBS$ac_delim -build_alias!$build_alias$ac_delim -host_alias!$host_alias$ac_delim -target_alias!$target_alias$ac_delim -build!$build$ac_delim -build_cpu!$build_cpu$ac_delim -build_vendor!$build_vendor$ac_delim -build_os!$build_os$ac_delim -host!$host$ac_delim -host_cpu!$host_cpu$ac_delim -host_vendor!$host_vendor$ac_delim -host_os!$host_os$ac_delim -CC!$CC$ac_delim -CFLAGS!$CFLAGS$ac_delim -LDFLAGS!$LDFLAGS$ac_delim -CPPFLAGS!$CPPFLAGS$ac_delim -ac_ct_CC!$ac_ct_CC$ac_delim -EXEEXT!$EXEEXT$ac_delim -OBJEXT!$OBJEXT$ac_delim -OSMESA_CONFIG!$OSMESA_CONFIG$ac_delim -EXE!$EXE$ac_delim -MATHLIB!$MATHLIB$ac_delim -SDL_CONFIG!$SDL_CONFIG$ac_delim -SDL_CFLAGS!$SDL_CFLAGS$ac_delim -SDL_LIBS!$SDL_LIBS$ac_delim -XMKMF!$XMKMF$ac_delim -CPP!$CPP$ac_delim -GLLIB!$GLLIB$ac_delim -SDL_TTF_LIB!$SDL_TTF_LIB$ac_delim -LIBOBJS!$LIBOBJS$ac_delim -LTLIBOBJS!$LTLIBOBJS$ac_delim -_ACEOF - - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 64; then - break - elif $ac_last_try; then - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` -if test -n "$ac_eof"; then - ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` - ac_eof=`expr $ac_eof + 1` -fi - -cat >>$CONFIG_STATUS <<_ACEOF -cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end -_ACEOF -sed ' -s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g -s/^/s,@/; s/!/@,|#_!!_#|/ -:n -t n -s/'"$ac_delim"'$/,g/; t -s/$/\\/; p -N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n -' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF -:end -s/|#_!!_#|//g -CEOF$ac_eof -_ACEOF - - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ -s/:*$// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF -fi # test -n "$CONFIG_FILES" - - -for ac_tag in :F $CONFIG_FILES -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 -echo "$as_me: error: Invalid tag $ac_tag." >&2;} - { (exit 1); exit 1; }; };; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 -echo "$as_me: error: cannot find input file: $ac_f" >&2;} - { (exit 1); exit 1; }; };; - esac - ac_file_inputs="$ac_file_inputs $ac_f" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input="Generated from "`IFS=: - echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - fi - - case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin";; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { as_dir="$ac_dir" - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= - -case `sed -n '/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p -' $ac_file_inputs` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s&@configure_input@&$configure_input&;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -$ac_datarootdir_hack -" $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 -echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&2;} - - rm -f "$tmp/stdin" - case $ac_file in - -) cat "$tmp/out"; rm -f "$tmp/out";; - *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; - esac - ;; - - - - esac - -done # for ac_tag - - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi - diff --git a/3rdparty/SDL-1.3.0-5387/test/configure.in b/3rdparty/SDL-1.3.0-5387/test/configure.in deleted file mode 100644 index b24b6a6fe8..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/configure.in +++ /dev/null @@ -1,150 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -AC_INIT(README) - -dnl Detect the canonical build and host environments -AC_CONFIG_AUX_DIRS($srcdir/../build-scripts) -AC_CANONICAL_HOST - -dnl Check for tools - -AC_PROG_CC - -dnl Check for compiler environment - -AC_C_CONST - -dnl Figure out which math library to use -case "$host" in - *-*-cygwin* | *-*-mingw32*) - EXE=".exe" - MATHLIB="" - SYS_GL_LIBS="-lopengl32" - ;; - *-*-beos* | *-*-haiku*) - EXE="" - MATHLIB="" - SYS_GL_LIBS="-lGL" - ;; - *-*-darwin* ) - EXE="" - MATHLIB="" - SYS_GL_LIBS="-Wl,-framework,OpenGL" - ;; - *-*-aix*) - EXE="" - if test x$ac_cv_prog_gcc = xyes; then - CFLAGS="-mthreads" - fi - SYS_GL_LIBS="" - ;; - *-*-mint*) - EXE="" - MATHLIB="" - AC_PATH_PROG(OSMESA_CONFIG, osmesa-config, no) - if test "x$OSMESA_CONFIG" = "xyes"; then - OSMESA_CFLAGS=`$OSMESA_CONFIG --cflags` - OSMESA_LIBS=`$OSMESA_CONFIG --libs` - CFLAGS="$CFLAGS $OSMESA_CFLAGS" - SYS_GL_LIBS="$OSMESA_LIBS" - else - SYS_GL_LIBS="-lOSMesa" - fi - ;; - *-*-qnx*) - EXE="" - MATHLIB="" - SYS_GL_LIBS="-lGLES_CM" - ;; - *) - EXE="" - MATHLIB="-lm" - SYS_GL_LIBS="-lGL" - ;; -esac -AC_SUBST(EXE) -AC_SUBST(MATHLIB) - -dnl Check for SDL -SDL_VERSION=1.3.0 -AM_PATH_SDL($SDL_VERSION, - :, - AC_MSG_ERROR([*** SDL version $SDL_VERSION not found!]) -) -CFLAGS="$CFLAGS $SDL_CFLAGS" -LIBS="$LIBS $SDL_LIBS" - -dnl Check for X11 path, needed for OpenGL on some systems -AC_PATH_X -if test x$have_x = xyes; then - if test x$ac_x_includes = xno || test x$ac_x_includes = x; then - : - else - CFLAGS="$CFLAGS -I$ac_x_includes" - fi - if test x$ac_x_libraries = xno || test x$ac_x_libraries = x; then - : - else - XPATH="-L$ac_x_libraries" - fi -fi - -dnl Check for OpenGL -AC_MSG_CHECKING(for OpenGL support) -have_opengl=no -AC_TRY_COMPILE([ - #include "SDL_opengl.h" -],[ -],[ -have_opengl=yes -]) -AC_MSG_RESULT($have_opengl) - -dnl Check for OpenGL ES -AC_MSG_CHECKING(for OpenGL ES support) -have_opengles=no -AC_TRY_COMPILE([ - #if defined (__QNXNTO__) - #include - #elif defined (__IPHONEOS__) - #include - #else - #error "No OpenGL ES support" - #endif /* __QNXNTO__ */ -],[ -],[ -have_opengles=yes -]) -AC_MSG_RESULT($have_opengles) - -if test x$have_opengl = xyes; then - CFLAGS="$CFLAGS -DHAVE_OPENGL" - GLLIB="$XPATH $SYS_GL_LIBS" -elif test x$have_opengles = xyes; then - CFLAGS="$CFLAGS -DHAVE_OPENGLES" - GLLIB="$XPATH $SYS_GL_LIBS" -else - GLLIB="" -fi - -AC_SUBST(GLLIB) - -dnl Check for SDL_ttf -AC_MSG_CHECKING(for SDL_ttf) -have_SDL_ttf=no -AC_TRY_COMPILE([ - #include "SDL_ttf.h" -],[ -],[ -have_SDL_ttf=yes -]) -AC_MSG_RESULT($have_SDL_ttf) - -if test x$have_SDL_ttf = xyes; then - CFLAGS="$CFLAGS -DHAVE_SDL_TTF" - SDL_TTF_LIB="-lSDL_ttf" -fi - -AC_SUBST(SDL_TTF_LIB) - -dnl Finally create all the generated files -AC_OUTPUT([Makefile]) diff --git a/3rdparty/SDL-1.3.0-5387/test/gcc-fat.sh b/3rdparty/SDL-1.3.0-5387/test/gcc-fat.sh deleted file mode 100755 index 44d37ffdef..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/gcc-fat.sh +++ /dev/null @@ -1,110 +0,0 @@ -#!/bin/sh -# -# Build Universal binaries on Mac OS X, thanks Ryan! -# -# Usage: ./configure CC="sh gcc-fat.sh" && make && rm -rf ppc x86 - -# PowerPC compiler flags (10.2 runtime compatibility) -GCC_COMPILE_PPC="gcc-3.3 -arch ppc \ --DMAC_OS_X_VERSION_MIN_REQUIRED=1020 \ --nostdinc \ --F/Developer/SDKs/MacOSX10.2.8.sdk/System/Library/Frameworks \ --I/Developer/SDKs/MacOSX10.2.8.sdk/usr/include/gcc/darwin/3.3 \ --isystem /Developer/SDKs/MacOSX10.2.8.sdk/usr/include" - -GCC_LINK_PPC="\ --L/Developer/SDKs/MacOSX10.2.8.sdk/usr/lib/gcc/darwin/3.3 \ --F/Developer/SDKs/MacOSX10.2.8.sdk/System/Library/Frameworks \ --Wl,-syslibroot,/Developer/SDKs/MacOSX10.2.8.sdk" - -# Intel compiler flags (10.4 runtime compatibility) -GCC_COMPILE_X86="gcc-4.0 -arch i386 -mmacosx-version-min=10.4 \ --DMAC_OS_X_VERSION_MIN_REQUIRED=1040 \ --nostdinc \ --F/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks \ --I/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin8/4.0.1/include \ --isystem /Developer/SDKs/MacOSX10.4u.sdk/usr/include" - -GCC_LINK_X86="\ --L/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin8/4.0.0 \ --Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" - -# Output both PowerPC and Intel object files -args="$*" -compile=yes -link=yes -while test x$1 != x; do - case $1 in - --version) exec gcc $1;; - -v) exec gcc $1;; - -V) exec gcc $1;; - -print-prog-name=*) exec gcc $1;; - -print-search-dirs) exec gcc $1;; - -E) GCC_COMPILE_PPC="$GCC_COMPILE_PPC -E" - GCC_COMPILE_X86="$GCC_COMPILE_X86 -E" - compile=no; link=no;; - -c) link=no;; - -o) output=$2;; - *.c|*.cc|*.cpp|*.S) source=$1;; - esac - shift -done -if test x$link = xyes; then - GCC_COMPILE_PPC="$GCC_COMPILE_PPC $GCC_LINK_PPC" - GCC_COMPILE_X86="$GCC_COMPILE_X86 $GCC_LINK_X86" -fi -if test x"$output" = x; then - if test x$link = xyes; then - output=a.out - elif test x$compile = xyes; then - output=`echo $source | sed -e 's|.*/||' -e 's|\(.*\)\.[^\.]*|\1|'`.o - fi -fi - -if test x"$output" != x; then - dir=ppc/`dirname $output` - if test -d $dir; then - : - else - mkdir -p $dir - fi -fi -set -- $args -while test x$1 != x; do - if test -f "ppc/$1" && test "$1" != "$output"; then - ppc_args="$ppc_args ppc/$1" - else - ppc_args="$ppc_args $1" - fi - shift -done -$GCC_COMPILE_PPC $ppc_args || exit $? -if test x"$output" != x; then - cp $output ppc/$output -fi - -if test x"$output" != x; then - dir=x86/`dirname $output` - if test -d $dir; then - : - else - mkdir -p $dir - fi -fi -set -- $args -while test x$1 != x; do - if test -f "x86/$1" && test "$1" != "$output"; then - x86_args="$x86_args x86/$1" - else - x86_args="$x86_args $1" - fi - shift -done -$GCC_COMPILE_X86 $x86_args || exit $? -if test x"$output" != x; then - cp $output x86/$output -fi - -if test x"$output" != x; then - lipo -create -o $output ppc/$output x86/$output -fi diff --git a/3rdparty/SDL-1.3.0-5387/test/graywin.c b/3rdparty/SDL-1.3.0-5387/test/graywin.c deleted file mode 100644 index 75a99e5d8f..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/graywin.c +++ /dev/null @@ -1,248 +0,0 @@ - -/* Simple program: Fill a colormap with gray and stripe it down the screen */ - -#include -#include -#include -#include - -#include "SDL.h" - -#ifdef TEST_VGA16 /* Define this if you want to test VGA 16-color video modes */ -#define NUM_COLORS 16 -#else -#define NUM_COLORS 256 -#endif - -/* Draw a randomly sized and colored box centered about (X,Y) */ -void -DrawBox(SDL_Surface * screen, int X, int Y, int width, int height) -{ - static unsigned int seeded = 0; - SDL_Rect area; - Uint32 color; - Uint32 randc; - - /* Seed the random number generator */ - if (seeded == 0) { - srand((unsigned int)time(NULL)); - seeded = 1; - } - - /* Get the bounds of the rectangle */ - area.w = (rand() % width); - area.h = (rand() % height); - area.x = X - (area.w / 2); - area.y = Y - (area.h / 2); - randc = (rand() % NUM_COLORS); - - if (screen->format->BytesPerPixel == 1) { - color = randc; - } else { - color = SDL_MapRGB(screen->format, randc, randc, randc); - } - - /* Do it! */ - SDL_FillRect(screen, &area, color); - if (screen->flags & SDL_DOUBLEBUF) { - SDL_Flip(screen); - } else { - SDL_UpdateRects(screen, 1, &area); - } -} - -void -DrawBackground(SDL_Surface * screen) -{ - int i, j, k; - Uint8 *buffer; - Uint16 *buffer16; - Uint16 color; - Uint8 gradient; - - /* Set the surface pixels and refresh! */ - /* Use two loops in case the surface is double-buffered (both sides) */ - - for (j = 0; j < 2; ++j) { - if (SDL_LockSurface(screen) < 0) { - fprintf(stderr, "Couldn't lock display surface: %s\n", - SDL_GetError()); - return; - } - buffer = (Uint8 *) screen->pixels; - - if (screen->format->BytesPerPixel != 2) { - for (i = 0; i < screen->h; ++i) { - memset(buffer, (i * (NUM_COLORS - 1)) / screen->h, - screen->w * screen->format->BytesPerPixel); - buffer += screen->pitch; - } - } else { - for (i = 0; i < screen->h; ++i) { - gradient = ((i * (NUM_COLORS - 1)) / screen->h); - color = - SDL_MapRGB(screen->format, gradient, gradient, gradient); - buffer16 = (Uint16 *) buffer; - for (k = 0; k < screen->w; k++) { - *(buffer16 + k) = color; - } - buffer += screen->pitch; - } - } - - SDL_UnlockSurface(screen); - if (screen->flags & SDL_DOUBLEBUF) { - SDL_Flip(screen); - } else { - SDL_UpdateRect(screen, 0, 0, 0, 0); - break; - } - } -} - -SDL_Surface * -CreateScreen(Uint16 w, Uint16 h, Uint8 bpp, Uint32 flags) -{ - SDL_Surface *screen; - int i; - SDL_Color palette[NUM_COLORS]; - - /* Set the video mode */ - screen = SDL_SetVideoMode(w, h, bpp, flags); - if (screen == NULL) { - fprintf(stderr, "Couldn't set display mode: %s\n", SDL_GetError()); - return (NULL); - } - fprintf(stderr, "Screen is in %s mode\n", - (screen->flags & SDL_FULLSCREEN) ? "fullscreen" : "windowed"); - - if (bpp == 8) { - /* Set a gray colormap, reverse order from white to black */ - for (i = 0; i < NUM_COLORS; ++i) { - palette[i].r = (NUM_COLORS - 1) - i * (256 / NUM_COLORS); - palette[i].g = (NUM_COLORS - 1) - i * (256 / NUM_COLORS); - palette[i].b = (NUM_COLORS - 1) - i * (256 / NUM_COLORS); - } - SDL_SetColors(screen, palette, 0, NUM_COLORS); - } - - return (screen); -} - -int -main(int argc, char *argv[]) -{ - SDL_Surface *screen; - Uint32 videoflags; - int done; - SDL_Event event; - int width, height, bpp; - - /* Initialize SDL */ - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - exit(1); - } - - /* See if we try to get a hardware colormap */ - width = 640; - height = 480; - bpp = 8; - videoflags = SDL_SWSURFACE; - while (argc > 1) { - --argc; - if (argv[argc - 1] && (strcmp(argv[argc - 1], "-width") == 0)) { - width = atoi(argv[argc]); - --argc; - } else if (argv[argc - 1] - && (strcmp(argv[argc - 1], "-height") == 0)) { - height = atoi(argv[argc]); - --argc; - } else if (argv[argc - 1] && (strcmp(argv[argc - 1], "-bpp") == 0)) { - bpp = atoi(argv[argc]); - --argc; - } else if (argv[argc] && (strcmp(argv[argc], "-hw") == 0)) { - videoflags |= SDL_HWSURFACE; - } else if (argv[argc] && (strcmp(argv[argc], "-hwpalette") == 0)) { - videoflags |= SDL_HWPALETTE; - } else if (argv[argc] && (strcmp(argv[argc], "-flip") == 0)) { - videoflags |= SDL_DOUBLEBUF; - } else if (argv[argc] && (strcmp(argv[argc], "-noframe") == 0)) { - videoflags |= SDL_NOFRAME; - } else if (argv[argc] && (strcmp(argv[argc], "-resize") == 0)) { - videoflags |= SDL_RESIZABLE; - } else if (argv[argc] && (strcmp(argv[argc], "-fullscreen") == 0)) { - videoflags |= SDL_FULLSCREEN; - } else { - fprintf(stderr, - "Usage: %s [-width] [-height] [-bpp] [-hw] [-hwpalette] [-flip] [-noframe] [-fullscreen] [-resize]\n", - argv[0]); - exit(1); - } - } - - /* Set a video mode */ - screen = CreateScreen(width, height, bpp, videoflags); - if (screen == NULL) { - exit(2); - } - - DrawBackground(screen); - - /* Wait for a keystroke */ - done = 0; - while (!done && SDL_WaitEvent(&event)) { - switch (event.type) { - case SDL_MOUSEBUTTONDOWN: - DrawBox(screen, event.button.x, event.button.y, width, height); - break; - case SDL_KEYDOWN: - /* Ignore ALT-TAB for windows */ - if ((event.key.keysym.sym == SDLK_LALT) || - (event.key.keysym.sym == SDLK_TAB)) { - break; - } - /* Center the mouse on */ - if (event.key.keysym.sym == SDLK_SPACE) { - SDL_WarpMouse(width / 2, height / 2); - break; - } - /* Toggle fullscreen mode on */ - if (event.key.keysym.sym == SDLK_RETURN) { - videoflags ^= SDL_FULLSCREEN; - screen = CreateScreen(screen->w, screen->h, - screen->format->BitsPerPixel, - videoflags); - if (screen == NULL) { - fprintf(stderr, "Couldn't toggle fullscreen mode\n"); - done = 1; - } - DrawBackground(screen); - break; - } - /* Any other key quits the application... */ - case SDL_QUIT: - done = 1; - break; - case SDL_VIDEOEXPOSE: - DrawBackground(screen); - break; - case SDL_VIDEORESIZE: - printf("Screen resized to %dx%d\n", event.resize.w, - event.resize.h); - screen = - CreateScreen(event.resize.w, event.resize.h, - screen->format->BitsPerPixel, videoflags); - if (screen == NULL) { - fprintf(stderr, "Couldn't resize video mode\n"); - done = 1; - } - DrawBackground(screen); - break; - default: - break; - } - } - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/icon.bmp b/3rdparty/SDL-1.3.0-5387/test/icon.bmp deleted file mode 100644 index cc96356acb521c7f1518acdb2a3b5d59b8a061aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 578 zcmcgoK@Nm42&C%Gi}VGyC*RS#Puc$;>j1^7i6@ht1lnN+#Fo7bq$tQ6Vr>y -#include - -#if HAVE_SIGNAL_H -#include -#endif - -#include "SDL.h" -#include "SDL_audio.h" - -struct -{ - SDL_AudioSpec spec; - Uint8 *sound; /* Pointer to wave data */ - Uint32 soundlen; /* Length of wave data */ - int soundpos; /* Current play position */ -} wave; - - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - - -void SDLCALL -fillerup(void *unused, Uint8 * stream, int len) -{ - Uint8 *waveptr; - int waveleft; - - /* Set up the pointers */ - waveptr = wave.sound + wave.soundpos; - waveleft = wave.soundlen - wave.soundpos; - - /* Go! */ - while (waveleft <= len) { - SDL_memcpy(stream, waveptr, waveleft); - stream += waveleft; - len -= waveleft; - waveptr = wave.sound; - waveleft = wave.soundlen; - wave.soundpos = 0; - } - SDL_memcpy(stream, waveptr, len); - wave.soundpos += len; -} - -static int done = 0; -void -poked(int sig) -{ - done = 1; -} - -int -main(int argc, char *argv[]) -{ - /* Load the SDL library */ - if (SDL_Init(SDL_INIT_AUDIO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - - if (argv[1] == NULL) { - argv[1] = "sample.wav"; - } - /* Load the wave file into memory */ - if (SDL_LoadWAV(argv[1], &wave.spec, &wave.sound, &wave.soundlen) == NULL) { - fprintf(stderr, "Couldn't load %s: %s\n", argv[1], SDL_GetError()); - quit(1); - } - - wave.spec.callback = fillerup; -#if HAVE_SIGNAL_H - /* Set the signals */ -#ifdef SIGHUP - signal(SIGHUP, poked); -#endif - signal(SIGINT, poked); -#ifdef SIGQUIT - signal(SIGQUIT, poked); -#endif - signal(SIGTERM, poked); -#endif /* HAVE_SIGNAL_H */ - - /* Initialize fillerup() variables */ - if (SDL_OpenAudio(&wave.spec, NULL) < 0) { - fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError()); - SDL_FreeWAV(wave.sound); - quit(2); - } - - printf("Using audio driver: %s\n", SDL_GetCurrentAudioDriver()); - - /* Let the audio run */ - SDL_PauseAudio(0); - while (!done && (SDL_GetAudioStatus() == SDL_AUDIO_PLAYING)) - SDL_Delay(1000); - - /* Clean up on signal */ - SDL_CloseAudio(); - SDL_FreeWAV(wave.sound); - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/moose.dat b/3rdparty/SDL-1.3.0-5387/test/moose.dat deleted file mode 100644 index 10530046fd7cc7545e5a0c94924ae158e1842a34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56320 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 ajO)(@=U+hI*Y(c%{+BN=5%}L0f&T+K7G;e9 diff --git a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/general/Makefile b/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/general/Makefile deleted file mode 100755 index 0f59a0e768..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/general/Makefile +++ /dev/null @@ -1,132 +0,0 @@ -#--------------------------------------------------------------------------------- -.SUFFIXES: -#--------------------------------------------------------------------------------- - -ifeq ($(strip $(DEVKITARM)),) -$(error "Please set DEVKITARM in your environment. export DEVKITARM=devkitARM") -endif - -include $(DEVKITARM)/ds_rules - -#--------------------------------------------------------------------------------- -# TARGET is the name of the output -# BUILD is the directory where object files & intermediate files will be placed -# SOURCES is a list of directories containing source code -# INCLUDES is a list of directories containing extra header files -#--------------------------------------------------------------------------------- -TARGET := $(shell basename $(CURDIR)) -BUILD := build -SOURCES := source -DATA := data -INCLUDES := include - -#--------------------------------------------------------------------------------- -# options for code generation -#--------------------------------------------------------------------------------- -ARCH := -mthumb -mthumb-interwork - -# note: arm9tdmi isn't the correct CPU arch, but anything newer and LD -# *insists* it has a FPU or VFP, and it won't take no for an answer! -CFLAGS := -save-temps -g -Wall -O0\ - -mcpu=arm9tdmi -mtune=arm9tdmi \ - $(ARCH) - -CFLAGS += $(INCLUDE) -DARM9 -D__NDS__ -CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -fno-exceptions -fno-rtti - -ASFLAGS := -g $(ARCH) -LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) -mno-fpu -Wl,-Map,$(notdir $*.map) - -#--------------------------------------------------------------------------------- -# any extra libraries we wish to link with the project -#--------------------------------------------------------------------------------- -LIBS := -lSDL -lfat -lnds9 - - -#--------------------------------------------------------------------------------- -# list of directories containing libraries, this must be the top level containing -# include and lib -#--------------------------------------------------------------------------------- -LIBDIRS := $(LIBNDS) - -#--------------------------------------------------------------------------------- -# no real need to edit anything past this point unless you need to add additional -# rules for different file extensions -#--------------------------------------------------------------------------------- -ifneq ($(BUILD),$(notdir $(CURDIR))) -#--------------------------------------------------------------------------------- - -export OUTPUT := $(CURDIR)/$(TARGET) - -export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \ - $(foreach dir,$(DATA),$(CURDIR)/$(dir)) - -export DEPSDIR := $(CURDIR)/$(BUILD) - -CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) -CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) -SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) -BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) - -#--------------------------------------------------------------------------------- -# use CXX for linking C++ projects, CC for standard C -#--------------------------------------------------------------------------------- -ifeq ($(strip $(CPPFILES)),) -#--------------------------------------------------------------------------------- - export LD := $(CC) -#--------------------------------------------------------------------------------- -else -#--------------------------------------------------------------------------------- - export LD := $(CXX) -#--------------------------------------------------------------------------------- -endif -#--------------------------------------------------------------------------------- - -export OFILES := $(addsuffix .o,$(BINFILES)) \ - $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) - -export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ - $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ - $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ - -I$(CURDIR)/$(BUILD) - -export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) - -.PHONY: $(BUILD) clean - -#--------------------------------------------------------------------------------- -$(BUILD): - @[ -d $@ ] || mkdir -p $@ - @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile - -#--------------------------------------------------------------------------------- -clean: - @echo clean ... - @rm -fr $(BUILD) $(TARGET).elf $(TARGET).nds $(TARGET).arm9 $(TARGET).ds.gba - - -#--------------------------------------------------------------------------------- -else - -DEPENDS := $(OFILES:.o=.d) - -#--------------------------------------------------------------------------------- -# main targets -#--------------------------------------------------------------------------------- -$(OUTPUT).ds.gba : $(OUTPUT).nds -$(OUTPUT).nds : $(OUTPUT).arm9 -$(OUTPUT).arm9 : $(OUTPUT).elf -$(OUTPUT).elf : $(OFILES) - -#--------------------------------------------------------------------------------- -%.pcx.o : %.pcx -#--------------------------------------------------------------------------------- - @echo $(notdir $<) - @$(bin2o) - - --include $(DEPENDS) - -#--------------------------------------------------------------------------------------- -endif -#--------------------------------------------------------------------------------------- diff --git a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/general/source/main.c b/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/general/source/main.c deleted file mode 100755 index b9c74c0ece..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/general/source/main.c +++ /dev/null @@ -1,96 +0,0 @@ - -#include -#if defined(NDS) || defined(__NDS__) || defined (__NDS) -#include -#include -#else -#define swiWaitForVBlank() -#define consoleDemoInit() -#define fatInitDefault() -#define RGB15(r,g,b) SDL_MapRGB(screen->format,((r)<<3),((g)<<3),((b)<<3)) -#endif - void -splash(SDL_Surface * screen, int s) -{ - SDL_Surface *logo; - SDL_Rect area = { 0, 0, 256, 192 }; - - logo = SDL_LoadBMP("sdl.bmp"); - if (!logo) { - printf("Couldn't splash.\n"); - return; - } - /*logo->flags &= ~SDL_PREALLOC; */ - SDL_BlitSurface(logo, NULL, screen, &area); - SDL_Flip(screen); - while (s-- > 0) { - int i = 60; - while (--i) - swiWaitForVBlank(); - } -} - - int -main(void) -{ - SDL_Surface *screen; - SDL_Joystick *stick; - SDL_Event event; - SDL_Rect rect = { 0, 0, 256, 192 }; - int i; - - consoleDemoInit(); - puts("Hello world! Initializing FAT..."); - fatInitDefault(); - if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) < 0) { - puts("# error initializing SDL"); - puts(SDL_GetError()); - return 1; - } - puts("* initialized SDL"); - screen = SDL_SetVideoMode(256, 192, 15, SDL_SWSURFACE); - if (!screen) { - puts("# error setting video mode"); - puts(SDL_GetError()); - return 2; - } - screen->flags &= ~SDL_PREALLOC; - puts("* set video mode"); - stick = SDL_JoystickOpen(0); - if (stick == NULL) { - puts("# error opening joystick"); - puts(SDL_GetError()); -// return 3; - } - puts("* opened joystick"); - - /*splash(screen, 3); */ - - SDL_FillRect(screen, &rect, RGB15(0, 0, 31) | 0x8000); - SDL_Flip(screen); - - while (1) - while (SDL_PollEvent(&event)) - switch (event.type) { - case SDL_JOYBUTTONDOWN: - SDL_FillRect(screen, &rect, (u16) rand() | 0x8000); - SDL_Flip(screen); - if (rect.w > 8) { - rect.x += 4; - rect.y += 3; - rect.w -= 8; - rect.h -= 6; - } - printf("button %d pressed at %d ticks\n", - event.jbutton.button, SDL_GetTicks()); - break; - case SDL_QUIT: - SDL_Quit(); - return 0; - default: - break; - } - return 0; - } - - diff --git a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite/Makefile b/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite/Makefile deleted file mode 100755 index 0f59a0e768..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite/Makefile +++ /dev/null @@ -1,132 +0,0 @@ -#--------------------------------------------------------------------------------- -.SUFFIXES: -#--------------------------------------------------------------------------------- - -ifeq ($(strip $(DEVKITARM)),) -$(error "Please set DEVKITARM in your environment. export DEVKITARM=devkitARM") -endif - -include $(DEVKITARM)/ds_rules - -#--------------------------------------------------------------------------------- -# TARGET is the name of the output -# BUILD is the directory where object files & intermediate files will be placed -# SOURCES is a list of directories containing source code -# INCLUDES is a list of directories containing extra header files -#--------------------------------------------------------------------------------- -TARGET := $(shell basename $(CURDIR)) -BUILD := build -SOURCES := source -DATA := data -INCLUDES := include - -#--------------------------------------------------------------------------------- -# options for code generation -#--------------------------------------------------------------------------------- -ARCH := -mthumb -mthumb-interwork - -# note: arm9tdmi isn't the correct CPU arch, but anything newer and LD -# *insists* it has a FPU or VFP, and it won't take no for an answer! -CFLAGS := -save-temps -g -Wall -O0\ - -mcpu=arm9tdmi -mtune=arm9tdmi \ - $(ARCH) - -CFLAGS += $(INCLUDE) -DARM9 -D__NDS__ -CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -fno-exceptions -fno-rtti - -ASFLAGS := -g $(ARCH) -LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) -mno-fpu -Wl,-Map,$(notdir $*.map) - -#--------------------------------------------------------------------------------- -# any extra libraries we wish to link with the project -#--------------------------------------------------------------------------------- -LIBS := -lSDL -lfat -lnds9 - - -#--------------------------------------------------------------------------------- -# list of directories containing libraries, this must be the top level containing -# include and lib -#--------------------------------------------------------------------------------- -LIBDIRS := $(LIBNDS) - -#--------------------------------------------------------------------------------- -# no real need to edit anything past this point unless you need to add additional -# rules for different file extensions -#--------------------------------------------------------------------------------- -ifneq ($(BUILD),$(notdir $(CURDIR))) -#--------------------------------------------------------------------------------- - -export OUTPUT := $(CURDIR)/$(TARGET) - -export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \ - $(foreach dir,$(DATA),$(CURDIR)/$(dir)) - -export DEPSDIR := $(CURDIR)/$(BUILD) - -CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) -CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) -SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) -BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) - -#--------------------------------------------------------------------------------- -# use CXX for linking C++ projects, CC for standard C -#--------------------------------------------------------------------------------- -ifeq ($(strip $(CPPFILES)),) -#--------------------------------------------------------------------------------- - export LD := $(CC) -#--------------------------------------------------------------------------------- -else -#--------------------------------------------------------------------------------- - export LD := $(CXX) -#--------------------------------------------------------------------------------- -endif -#--------------------------------------------------------------------------------- - -export OFILES := $(addsuffix .o,$(BINFILES)) \ - $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) - -export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ - $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ - $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ - -I$(CURDIR)/$(BUILD) - -export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) - -.PHONY: $(BUILD) clean - -#--------------------------------------------------------------------------------- -$(BUILD): - @[ -d $@ ] || mkdir -p $@ - @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile - -#--------------------------------------------------------------------------------- -clean: - @echo clean ... - @rm -fr $(BUILD) $(TARGET).elf $(TARGET).nds $(TARGET).arm9 $(TARGET).ds.gba - - -#--------------------------------------------------------------------------------- -else - -DEPENDS := $(OFILES:.o=.d) - -#--------------------------------------------------------------------------------- -# main targets -#--------------------------------------------------------------------------------- -$(OUTPUT).ds.gba : $(OUTPUT).nds -$(OUTPUT).nds : $(OUTPUT).arm9 -$(OUTPUT).arm9 : $(OUTPUT).elf -$(OUTPUT).elf : $(OFILES) - -#--------------------------------------------------------------------------------- -%.pcx.o : %.pcx -#--------------------------------------------------------------------------------- - @echo $(notdir $<) - @$(bin2o) - - --include $(DEPENDS) - -#--------------------------------------------------------------------------------------- -endif -#--------------------------------------------------------------------------------------- diff --git a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite/source/common.c b/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite/source/common.c deleted file mode 100755 index 021ab8b08c..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite/source/common.c +++ /dev/null @@ -1,965 +0,0 @@ - -/* A simple test program framework */ - -#include - -#include "common.h" - -#define VIDEO_USAGE \ -"[--video driver] [--renderer driver] [--info all|video|modes|render|event] [--display %d] [--fullscreen | --windows N] [--title title] [--center | --position X,Y] [--geometry WxH] [--depth N] [--refresh R] [--vsync] [--noframe] [--resize] [--minimize] [--maximize] [--grab]" - -#define AUDIO_USAGE \ -"[--rate N] [--format U8|S8|U16|U16LE|U16BE|S16|S16LE|S16BE] [--channels N] [--samples N]" - -CommonState * -CommonCreateState(char **argv, Uint32 flags) -{ - CommonState *state = SDL_calloc(1, sizeof(*state)); - if (!state) { - SDL_OutOfMemory(); - return NULL; - } - - /* Initialize some defaults */ - state->argv = argv; - state->flags = flags; - state->window_title = argv[0]; - state->window_flags = SDL_WINDOW_SHOWN; - state->window_x = SDL_WINDOWPOS_UNDEFINED; - state->window_y = SDL_WINDOWPOS_UNDEFINED; - state->window_w = 256; - state->window_h = 192; - state->num_windows = 1; - state->audiospec.freq = 22050; - state->audiospec.format = AUDIO_S16; - state->audiospec.channels = 2; - state->audiospec.samples = 2048; - return state; -} - -int -CommonArg(CommonState * state, int index) -{ - char **argv = state->argv; - - if (SDL_strcasecmp(argv[index], "--video") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->videodriver = argv[index]; - return 2; - } - if (SDL_strcasecmp(argv[index], "--renderer") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->renderdriver = argv[index]; - return 2; - } - if (SDL_strcasecmp(argv[index], "--info") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - if (SDL_strcasecmp(argv[index], "all") == 0) { - state->verbose |= - (VERBOSE_VIDEO | VERBOSE_MODES | VERBOSE_RENDER | - VERBOSE_EVENT); - return 2; - } - if (SDL_strcasecmp(argv[index], "video") == 0) { - state->verbose |= VERBOSE_VIDEO; - return 2; - } - if (SDL_strcasecmp(argv[index], "modes") == 0) { - state->verbose |= VERBOSE_MODES; - return 2; - } - if (SDL_strcasecmp(argv[index], "render") == 0) { - state->verbose |= VERBOSE_RENDER; - return 2; - } - if (SDL_strcasecmp(argv[index], "event") == 0) { - state->verbose |= VERBOSE_EVENT; - return 2; - } - return -1; - } - if (SDL_strcasecmp(argv[index], "--display") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->display = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--fullscreen") == 0) { - state->window_flags |= SDL_WINDOW_FULLSCREEN; - state->num_windows = 1; - return 1; - } - if (SDL_strcasecmp(argv[index], "--windows") == 0) { - ++index; - if (!argv[index] || !SDL_isdigit(*argv[index])) { - return -1; - } - if (!(state->window_flags & SDL_WINDOW_FULLSCREEN)) { - state->num_windows = SDL_atoi(argv[index]); - } - return 2; - } - if (SDL_strcasecmp(argv[index], "--title") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->window_title = argv[index]; - return 2; - } - if (SDL_strcasecmp(argv[index], "--center") == 0) { - state->window_x = SDL_WINDOWPOS_CENTERED; - state->window_y = SDL_WINDOWPOS_CENTERED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--position") == 0) { - char *x, *y; - ++index; - if (!argv[index]) { - return -1; - } - x = argv[index]; - y = argv[index]; - while (*y && *y != ',') { - ++y; - } - if (!*y) { - return -1; - } - *y++ = '\0'; - state->window_x = SDL_atoi(x); - state->window_y = SDL_atoi(y); - return 2; - } - if (SDL_strcasecmp(argv[index], "--geometry") == 0) { - char *w, *h; - ++index; - if (!argv[index]) { - return -1; - } - w = argv[index]; - h = argv[index]; - while (*h && *h != 'x') { - ++h; - } - if (!*h) { - return -1; - } - *h++ = '\0'; - state->window_w = SDL_atoi(w); - state->window_h = SDL_atoi(h); - return 2; - } - if (SDL_strcasecmp(argv[index], "--depth") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->depth = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--refresh") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->refresh_rate = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--vsync") == 0) { - state->render_flags |= SDL_RENDERER_PRESENTVSYNC; - return 1; - } - if (SDL_strcasecmp(argv[index], "--noframe") == 0) { - state->window_flags |= SDL_WINDOW_BORDERLESS; - return 1; - } - if (SDL_strcasecmp(argv[index], "--resize") == 0) { - state->window_flags |= SDL_WINDOW_RESIZABLE; - return 1; - } - if (SDL_strcasecmp(argv[index], "--minimize") == 0) { - state->window_flags |= SDL_WINDOW_MINIMIZED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--maximize") == 0) { - state->window_flags |= SDL_WINDOW_MAXIMIZED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--grab") == 0) { - state->window_flags |= SDL_WINDOW_INPUT_GRABBED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--rate") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->audiospec.freq = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--format") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - if (SDL_strcasecmp(argv[index], "U8") == 0) { - state->audiospec.format = AUDIO_U8; - return 2; - } - if (SDL_strcasecmp(argv[index], "S8") == 0) { - state->audiospec.format = AUDIO_S8; - return 2; - } - if (SDL_strcasecmp(argv[index], "U16") == 0) { - state->audiospec.format = AUDIO_U16; - return 2; - } - if (SDL_strcasecmp(argv[index], "U16LE") == 0) { - state->audiospec.format = AUDIO_U16LSB; - return 2; - } - if (SDL_strcasecmp(argv[index], "U16BE") == 0) { - state->audiospec.format = AUDIO_U16MSB; - return 2; - } - if (SDL_strcasecmp(argv[index], "S16") == 0) { - state->audiospec.format = AUDIO_S16; - return 2; - } - if (SDL_strcasecmp(argv[index], "S16LE") == 0) { - state->audiospec.format = AUDIO_S16LSB; - return 2; - } - if (SDL_strcasecmp(argv[index], "S16BE") == 0) { - state->audiospec.format = AUDIO_S16MSB; - return 2; - } - return -1; - } - if (SDL_strcasecmp(argv[index], "--channels") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->audiospec.channels = (Uint8) SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--samples") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->audiospec.samples = (Uint16) SDL_atoi(argv[index]); - return 2; - } - if ((SDL_strcasecmp(argv[index], "-h") == 0) - || (SDL_strcasecmp(argv[index], "--help") == 0)) { - /* Print the usage message */ - return -1; - } - return 0; -} - -const char * -CommonUsage(CommonState * state) -{ - switch (state->flags & (SDL_INIT_VIDEO | SDL_INIT_AUDIO)) { - case SDL_INIT_VIDEO: - return VIDEO_USAGE; - case SDL_INIT_AUDIO: - return AUDIO_USAGE; - case (SDL_INIT_VIDEO | SDL_INIT_AUDIO): - return VIDEO_USAGE " " AUDIO_USAGE; - default: - return ""; - } -} - -static void -PrintRendererFlag(Uint32 flag) -{ - switch (flag) { - case SDL_RENDERER_SINGLEBUFFER: - fprintf(stderr, "SingleBuffer"); - break; - case SDL_RENDERER_PRESENTCOPY: - fprintf(stderr, "PresentCopy"); - break; - case SDL_RENDERER_PRESENTFLIP2: - fprintf(stderr, "PresentFlip2"); - break; - case SDL_RENDERER_PRESENTFLIP3: - fprintf(stderr, "PresentFlip3"); - break; - case SDL_RENDERER_PRESENTDISCARD: - fprintf(stderr, "PresentDiscard"); - break; - case SDL_RENDERER_PRESENTVSYNC: - fprintf(stderr, "PresentVSync"); - break; - case SDL_RENDERER_ACCELERATED: - fprintf(stderr, "Accelerated"); - break; - default: - fprintf(stderr, "0x%8.8x", flag); - break; - } -} - -static void -PrintBlendMode(Uint32 flag) -{ - switch (flag) { - case SDL_BLENDMODE_NONE: - fprintf(stderr, "None"); - break; - case SDL_BLENDMODE_MASK: - fprintf(stderr, "Mask"); - break; - case SDL_BLENDMODE_BLEND: - fprintf(stderr, "Blend"); - break; - case SDL_BLENDMODE_ADD: - fprintf(stderr, "Add"); - break; - case SDL_BLENDMODE_MOD: - fprintf(stderr, "Mod"); - break; - default: - fprintf(stderr, "0x%8.8x", flag); - break; - } -} - -static void -PrintScaleMode(Uint32 flag) -{ - switch (flag) { - case SDL_TEXTURESCALEMODE_NONE: - fprintf(stderr, "None"); - break; - case SDL_TEXTURESCALEMODE_FAST: - fprintf(stderr, "Fast"); - break; - case SDL_TEXTURESCALEMODE_SLOW: - fprintf(stderr, "Slow"); - break; - case SDL_TEXTURESCALEMODE_BEST: - fprintf(stderr, "Best"); - break; - default: - fprintf(stderr, "0x%8.8x", flag); - break; - } -} - -static void -PrintPixelFormat(Uint32 format) -{ - switch (format) { - case SDL_PIXELFORMAT_UNKNOWN: - fprintf(stderr, "Unknwon"); - break; - case SDL_PIXELFORMAT_INDEX1LSB: - fprintf(stderr, "Index1LSB"); - break; - case SDL_PIXELFORMAT_INDEX1MSB: - fprintf(stderr, "Index1MSB"); - break; - case SDL_PIXELFORMAT_INDEX4LSB: - fprintf(stderr, "Index4LSB"); - break; - case SDL_PIXELFORMAT_INDEX4MSB: - fprintf(stderr, "Index4MSB"); - break; - case SDL_PIXELFORMAT_INDEX8: - fprintf(stderr, "Index8"); - break; - case SDL_PIXELFORMAT_RGB332: - fprintf(stderr, "RGB332"); - break; - case SDL_PIXELFORMAT_RGB444: - fprintf(stderr, "RGB444"); - break; - case SDL_PIXELFORMAT_RGB555: - fprintf(stderr, "RGB555"); - break; - case SDL_PIXELFORMAT_ARGB4444: - fprintf(stderr, "ARGB4444"); - break; - case SDL_PIXELFORMAT_ARGB1555: - fprintf(stderr, "ARGB1555"); - break; - case SDL_PIXELFORMAT_RGB565: - fprintf(stderr, "RGB565"); - break; - case SDL_PIXELFORMAT_RGB24: - fprintf(stderr, "RGB24"); - break; - case SDL_PIXELFORMAT_BGR24: - fprintf(stderr, "BGR24"); - break; - case SDL_PIXELFORMAT_RGB888: - fprintf(stderr, "RGB888"); - break; - case SDL_PIXELFORMAT_BGR888: - fprintf(stderr, "BGR888"); - break; - case SDL_PIXELFORMAT_ARGB8888: - fprintf(stderr, "ARGB8888"); - break; - case SDL_PIXELFORMAT_RGBA8888: - fprintf(stderr, "RGBA8888"); - break; - case SDL_PIXELFORMAT_ABGR8888: - fprintf(stderr, "ABGR8888"); - break; - case SDL_PIXELFORMAT_BGRA8888: - fprintf(stderr, "BGRA8888"); - break; - case SDL_PIXELFORMAT_ARGB2101010: - fprintf(stderr, "ARGB2101010"); - break; - case SDL_PIXELFORMAT_YV12: - fprintf(stderr, "YV12"); - break; - case SDL_PIXELFORMAT_IYUV: - fprintf(stderr, "IYUV"); - break; - case SDL_PIXELFORMAT_YUY2: - fprintf(stderr, "YUY2"); - break; - case SDL_PIXELFORMAT_UYVY: - fprintf(stderr, "UYVY"); - break; - case SDL_PIXELFORMAT_YVYU: - fprintf(stderr, "YVYU"); - break; - case SDL_PIXELFORMAT_ABGR1555: - fprintf(stderr, "ABGR1555"); - break; - case SDL_PIXELFORMAT_BGR555: - fprintf(stderr, "BGR555"); - break; - default: - fprintf(stderr, "0x%8.8x", format); - break; - } -} - -static void -PrintRenderer(SDL_RendererInfo * info) -{ - int i, count; - - fprintf(stderr, " Renderer %s:\n", info->name); - - fprintf(stderr, " Flags: 0x%8.8X", info->flags); - fprintf(stderr, " ("); - count = 0; - for (i = 0; i < sizeof(info->flags) * 8; ++i) { - Uint32 flag = (1 << i); - if (info->flags & flag) { - if (count > 0) { - fprintf(stderr, " | "); - } - PrintRendererFlag(flag); - ++count; - } - } - fprintf(stderr, ")\n"); - - fprintf(stderr, " Blend: 0x%8.8X", info->blend_modes); - fprintf(stderr, " ("); - count = 0; - for (i = 0; i < sizeof(info->blend_modes) * 8; ++i) { - Uint32 flag = (1 << i); - if (info->blend_modes & flag) { - if (count > 0) { - fprintf(stderr, " | "); - } - PrintBlendMode(flag); - ++count; - } - } - fprintf(stderr, ")\n"); - - fprintf(stderr, " Scale: 0x%8.8X", info->scale_modes); - fprintf(stderr, " ("); - count = 0; - for (i = 0; i < sizeof(info->scale_modes) * 8; ++i) { - Uint32 flag = (1 << i); - if (info->scale_modes & flag) { - if (count > 0) { - fprintf(stderr, " | "); - } - PrintScaleMode(flag); - ++count; - } - } - fprintf(stderr, ")\n"); - - fprintf(stderr, " Texture formats (%d): ", info->num_texture_formats); - for (i = 0; i < (int) info->num_texture_formats; ++i) { - if (i > 0) { - fprintf(stderr, ", "); - } - PrintPixelFormat(info->texture_formats[i]); - } - fprintf(stderr, "\n"); - - if (info->max_texture_width || info->max_texture_height) { - fprintf(stderr, " Max Texture Size: %dx%d\n", - info->max_texture_width, info->max_texture_height); - } -} - -SDL_bool -CommonInit(CommonState * state) -{ - int i, j, m, n; - SDL_DisplayMode fullscreen_mode; - - if (state->flags & SDL_INIT_VIDEO) { - if (state->verbose & VERBOSE_VIDEO) { - n = SDL_GetNumVideoDrivers(); - if (n == 0) { - fprintf(stderr, "No built-in video drivers\n"); - } else { - fprintf(stderr, "Built-in video drivers:"); - for (i = 0; i < n; ++i) { - if (i > 0) { - fprintf(stderr, ","); - } - fprintf(stderr, " %s", SDL_GetVideoDriver(i)); - } - fprintf(stderr, "\n"); - } - } - if (SDL_VideoInit(state->videodriver, 0) < 0) { - fprintf(stderr, "Couldn't initialize video driver: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - if (state->verbose & VERBOSE_VIDEO) { - fprintf(stderr, "Video driver: %s\n", - SDL_GetCurrentVideoDriver()); - } - - if (state->verbose & VERBOSE_MODES) { - SDL_DisplayMode mode; - int bpp; - Uint32 Rmask, Gmask, Bmask, Amask; - - n = SDL_GetNumVideoDisplays(); - fprintf(stderr, "Number of displays: %d\n", n); - for (i = 0; i < n; ++i) { - fprintf(stderr, "Display %d:\n", i); - SDL_SelectVideoDisplay(i); - - SDL_GetDesktopDisplayMode(&mode); - SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, &Gmask, - &Bmask, &Amask); - fprintf(stderr, - " Current mode: %dx%d@%dHz, %d bits-per-pixel\n", - mode.w, mode.h, mode.refresh_rate, bpp); - if (Rmask || Gmask || Bmask) { - fprintf(stderr, " Red Mask = 0x%.8x\n", Rmask); - fprintf(stderr, " Green Mask = 0x%.8x\n", Gmask); - fprintf(stderr, " Blue Mask = 0x%.8x\n", Bmask); - if (Amask) - fprintf(stderr, " Alpha Mask = 0x%.8x\n", Amask); - } - - /* Print available fullscreen video modes */ - m = SDL_GetNumDisplayModes(); - if (m == 0) { - fprintf(stderr, "No available fullscreen video modes\n"); - } else { - fprintf(stderr, " Fullscreen video modes:\n"); - for (j = 0; j < m; ++j) { - SDL_GetDisplayMode(j, &mode); - SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, - &Gmask, &Bmask, &Amask); - fprintf(stderr, - " Mode %d: %dx%d@%dHz, %d bits-per-pixel\n", - j, mode.w, mode.h, mode.refresh_rate, bpp); - if (Rmask || Gmask || Bmask) { - fprintf(stderr, " Red Mask = 0x%.8x\n", - Rmask); - fprintf(stderr, " Green Mask = 0x%.8x\n", - Gmask); - fprintf(stderr, " Blue Mask = 0x%.8x\n", - Bmask); - if (Amask) - fprintf(stderr, - " Alpha Mask = 0x%.8x\n", - Amask); - } - } - } - } - } - - SDL_SelectVideoDisplay(state->display); - if (state->verbose & VERBOSE_RENDER) { - SDL_RendererInfo info; - - n = SDL_GetNumRenderDrivers(); - if (n == 0) { - fprintf(stderr, "No built-in render drivers\n"); - } else { - fprintf(stderr, "Built-in render drivers:\n"); - for (i = 0; i < n; ++i) { - SDL_GetRenderDriverInfo(i, &info); - PrintRenderer(&info); - } - } - } - - switch (state->depth) { - case 8: - fullscreen_mode.format = SDL_PIXELFORMAT_INDEX8; - break; - case 15: - fullscreen_mode.format = SDL_PIXELFORMAT_BGR555; - break; - case 16: - default: - fullscreen_mode.format = SDL_PIXELFORMAT_ABGR1555; - break; -/* NDS default: - fullscreen_mode.format = SDL_PIXELFORMAT_RGB888; - break;*/ - } - fullscreen_mode.w = state->window_w; - fullscreen_mode.h = state->window_h; - fullscreen_mode.refresh_rate = state->refresh_rate; - SDL_SetFullscreenDisplayMode(&fullscreen_mode); - - state->windows = - (SDL_WindowID *) SDL_malloc(state->num_windows * - sizeof(*state->windows)); - if (!state->windows) { - fprintf(stderr, "Out of memory!\n"); - return SDL_FALSE; - } - for (i = 0; i < state->num_windows; ++i) { - char title[1024]; - - if (state->num_windows > 1) { - SDL_snprintf(title, SDL_arraysize(title), "%s %d", - state->window_title, i + 1); - } else { - SDL_strlcpy(title, state->window_title, SDL_arraysize(title)); - } - state->windows[i] = - SDL_CreateWindow(title, state->window_x, state->window_y, - state->window_w, state->window_h, - state->window_flags); - if (!state->windows[i]) { - fprintf(stderr, "Couldn't create window: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - - if (!state->skip_renderer - && (state->renderdriver - || !(state->window_flags & SDL_WINDOW_OPENGL))) { - m = -1; - if (state->renderdriver) { - SDL_RendererInfo info; - n = SDL_GetNumRenderDrivers(); - for (j = 0; j < n; ++j) { - SDL_GetRenderDriverInfo(j, &info); - if (SDL_strcasecmp(info.name, state->renderdriver) == - 0) { - m = j; - break; - } - } - if (m == n) { - fprintf(stderr, - "Couldn't find render driver named %s", - state->renderdriver); - return SDL_FALSE; - } - } - if (SDL_CreateRenderer - (state->windows[i], m, state->render_flags) < 0) { - fprintf(stderr, "Couldn't create renderer: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - if (state->verbose & VERBOSE_RENDER) { - SDL_RendererInfo info; - - fprintf(stderr, "Current renderer:\n"); - SDL_GetRendererInfo(&info); - PrintRenderer(&info); - } - } - } - SDL_SelectRenderer(state->windows[0]); - } - - if (state->flags & SDL_INIT_AUDIO) { - if (state->verbose & VERBOSE_AUDIO) { - n = SDL_GetNumAudioDrivers(); - if (n == 0) { - fprintf(stderr, "No built-in audio drivers\n"); - } else { - fprintf(stderr, "Built-in audio drivers:"); - for (i = 0; i < n; ++i) { - if (i > 0) { - fprintf(stderr, ","); - } - fprintf(stderr, " %s", SDL_GetAudioDriver(i)); - } - fprintf(stderr, "\n"); - } - } - if (SDL_AudioInit(state->audiodriver) < 0) { - fprintf(stderr, "Couldn't initialize audio driver: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - if (state->verbose & VERBOSE_VIDEO) { - fprintf(stderr, "Audio driver: %s\n", - SDL_GetCurrentAudioDriver()); - } - - if (SDL_OpenAudio(&state->audiospec, NULL) < 0) { - fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError()); - return SDL_FALSE; - } - } - - return SDL_TRUE; -} - -static void -PrintEvent(SDL_Event * event) -{ - fprintf(stderr, "SDL EVENT: "); - switch (event->type) { - case SDL_WINDOWEVENT: - switch (event->window.event) { - case SDL_WINDOWEVENT_SHOWN: - fprintf(stderr, "Window %d shown", event->window.windowID); - break; - case SDL_WINDOWEVENT_HIDDEN: - fprintf(stderr, "Window %d hidden", event->window.windowID); - break; - case SDL_WINDOWEVENT_EXPOSED: - fprintf(stderr, "Window %d exposed", event->window.windowID); - break; - case SDL_WINDOWEVENT_MOVED: - fprintf(stderr, "Window %d moved to %d,%d", - event->window.windowID, event->window.data1, - event->window.data2); - break; - case SDL_WINDOWEVENT_RESIZED: - fprintf(stderr, "Window %d resized to %dx%d", - event->window.windowID, event->window.data1, - event->window.data2); - break; - case SDL_WINDOWEVENT_MINIMIZED: - fprintf(stderr, "Window %d minimized", event->window.windowID); - break; - case SDL_WINDOWEVENT_MAXIMIZED: - fprintf(stderr, "Window %d maximized", event->window.windowID); - break; - case SDL_WINDOWEVENT_RESTORED: - fprintf(stderr, "Window %d restored", event->window.windowID); - break; - case SDL_WINDOWEVENT_ENTER: - fprintf(stderr, "Mouse entered window %d", - event->window.windowID); - break; - case SDL_WINDOWEVENT_LEAVE: - fprintf(stderr, "Mouse left window %d", event->window.windowID); - break; - case SDL_WINDOWEVENT_FOCUS_GAINED: - fprintf(stderr, "Window %d gained keyboard focus", - event->window.windowID); - break; - case SDL_WINDOWEVENT_FOCUS_LOST: - fprintf(stderr, "Window %d lost keyboard focus", - event->window.windowID); - break; - case SDL_WINDOWEVENT_CLOSE: - fprintf(stderr, "Window %d closed", event->window.windowID); - break; - default: - fprintf(stderr, "Window %d got unknown event %d", - event->window.windowID, event->window.event); - break; - } - break; - case SDL_KEYDOWN: - fprintf(stderr, - "Keyboard %d: key pressed in window %d: scancode 0x%08X = %s, keycode 0x%08X = %s", - event->key.which, event->key.windowID, - event->key.keysym.scancode, - SDL_GetScancodeName(event->key.keysym.scancode), - event->key.keysym.sym, SDL_GetKeyName(event->key.keysym.sym)); - break; - case SDL_KEYUP: - fprintf(stderr, - "Keyboard %d: key released in window %d: scancode 0x%08X = %s, keycode 0x%08X = %s", - event->key.which, event->key.windowID, - event->key.keysym.scancode, - SDL_GetScancodeName(event->key.keysym.scancode), - event->key.keysym.sym, SDL_GetKeyName(event->key.keysym.sym)); - break; - case SDL_TEXTINPUT: - fprintf(stderr, "Keyboard %d: text input \"%s\" in window %d", - event->text.which, event->text.text, event->text.windowID); - break; - case SDL_MOUSEMOTION: - fprintf(stderr, "Mouse %d: moved to %d,%d (%d,%d) in window %d", - event->motion.which, event->motion.x, event->motion.y, - event->motion.xrel, event->motion.yrel, - event->motion.windowID); - break; - case SDL_MOUSEBUTTONDOWN: - fprintf(stderr, "Mouse %d: button %d pressed at %d,%d in window %d", - event->button.which, event->button.button, event->button.x, - event->button.y, event->button.windowID); - break; - case SDL_MOUSEBUTTONUP: - fprintf(stderr, "Mouse %d: button %d released at %d,%d in window %d", - event->button.which, event->button.button, event->button.x, - event->button.y, event->button.windowID); - break; - case SDL_MOUSEWHEEL: - fprintf(stderr, - "Mouse %d: wheel scrolled %d in x and %d in y in window %d", - event->wheel.which, event->wheel.x, event->wheel.y, - event->wheel.windowID); - break; - case SDL_JOYBALLMOTION: - fprintf(stderr, "Joystick %d: ball %d moved by %d,%d", - event->jball.which, event->jball.ball, event->jball.xrel, - event->jball.yrel); - break; - case SDL_JOYHATMOTION: - fprintf(stderr, "Joystick %d: hat %d moved to ", event->jhat.which, - event->jhat.hat); - switch (event->jhat.value) { - case SDL_HAT_CENTERED: - fprintf(stderr, "CENTER"); - break; - case SDL_HAT_UP: - fprintf(stderr, "UP"); - break; - case SDL_HAT_RIGHTUP: - fprintf(stderr, "RIGHTUP"); - break; - case SDL_HAT_RIGHT: - fprintf(stderr, "RIGHT"); - break; - case SDL_HAT_RIGHTDOWN: - fprintf(stderr, "RIGHTDOWN"); - break; - case SDL_HAT_DOWN: - fprintf(stderr, "DOWN"); - break; - case SDL_HAT_LEFTDOWN: - fprintf(stderr, "LEFTDOWN"); - break; - case SDL_HAT_LEFT: - fprintf(stderr, "LEFT"); - break; - case SDL_HAT_LEFTUP: - fprintf(stderr, "LEFTUP"); - break; - default: - fprintf(stderr, "UNKNOWN"); - break; - } - break; - case SDL_JOYBUTTONDOWN: - fprintf(stderr, "Joystick %d: button %d pressed", - event->jbutton.which, event->jbutton.button); - break; - case SDL_JOYBUTTONUP: - fprintf(stderr, "Joystick %d: button %d released", - event->jbutton.which, event->jbutton.button); - break; - case SDL_QUIT: - fprintf(stderr, "Quit requested"); - break; - case SDL_USEREVENT: - fprintf(stderr, "User event %d", event->user.code); - break; - default: - fprintf(stderr, "Unknown event %d", event->type); - break; - } - fprintf(stderr, "\n"); -} - -void -CommonEvent(CommonState * state, SDL_Event * event, int *done) -{ - if (state->verbose & VERBOSE_EVENT) { - PrintEvent(event); - } - - switch (event->type) { - case SDL_WINDOWEVENT: - switch (event->window.event) { - case SDL_WINDOWEVENT_CLOSE: - *done = 1; - break; - } - break; - case SDL_KEYDOWN: - switch (event->key.keysym.sym) { - /* Add hotkeys here */ - case SDLK_g: - if (event->key.keysym.mod & KMOD_CTRL) { - /* Ctrl-G toggle grab */ - } - break; - case SDLK_ESCAPE: - *done = 1; - break; - default: - break; - } - break; - case SDL_QUIT: - *done = 1; - break; - } -} - -void -CommonQuit(CommonState * state) -{ - if (state->flags & SDL_INIT_VIDEO) { - SDL_VideoQuit(); - } - if (state->flags & SDL_INIT_AUDIO) { - SDL_AudioQuit(); - } - if (state->windows) { - SDL_free(state->windows); - } - SDL_free(state); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite/source/common.h b/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite/source/common.h deleted file mode 100755 index 0e03931988..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite/source/common.h +++ /dev/null @@ -1,48 +0,0 @@ - -/* A simple test program framework */ - -#include - -#define VERBOSE_VIDEO 0x00000001 -#define VERBOSE_MODES 0x00000002 -#define VERBOSE_RENDER 0x00000004 -#define VERBOSE_EVENT 0x00000008 -#define VERBOSE_AUDIO 0x00000010 - -typedef struct -{ - /* SDL init flags */ - char **argv; - Uint32 flags; - Uint32 verbose; - - /* Video info */ - const char *videodriver; - int display; - const char *window_title; - Uint32 window_flags; - int window_x; - int window_y; - int window_w; - int window_h; - int depth; - int refresh_rate; - int num_windows; - SDL_WindowID *windows; - - /* Renderer info */ - const char *renderdriver; - Uint32 render_flags; - SDL_bool skip_renderer; - - /* Audio info */ - const char *audiodriver; - SDL_AudioSpec audiospec; -} CommonState; - -extern CommonState *CommonCreateState(char **argv, Uint32 flags); -extern int CommonArg(CommonState * state, int index); -extern const char *CommonUsage(CommonState * state); -extern SDL_bool CommonInit(CommonState * state); -extern void CommonEvent(CommonState * state, SDL_Event * event, int *done); -extern void CommonQuit(CommonState * state); diff --git a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite/source/testsprite.c b/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite/source/testsprite.c deleted file mode 100755 index 4134de581a..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite/source/testsprite.c +++ /dev/null @@ -1,316 +0,0 @@ -/* Simple program: Move N sprites around on the screen as fast as possible */ - -#include -#include -#include -#include -#include -#include - -#define NUM_SPRITES 10 -#define MAX_SPEED 1 - -SDL_Surface *sprite; -int numsprites; -SDL_Rect *sprite_rects; -SDL_Rect *positions; -SDL_Rect *velocities; -int sprites_visible; -int debug_flip; -Uint16 sprite_w, sprite_h; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -int -LoadSprite(char *file) -{ - SDL_Surface *temp; - - /* Load the sprite image */ - sprite = SDL_LoadBMP(file); - if (sprite == NULL) { - fprintf(stderr, "Couldn't load %s: %s", file, SDL_GetError()); - return (-1); - } - - /* Set transparent pixel as the pixel at (0,0) */ - if (sprite->format->palette) { - SDL_SetColorKey(sprite, (SDL_SRCCOLORKEY | SDL_RLEACCEL), - *(Uint8 *) sprite->pixels); - } - - /* Convert sprite to video format */ - temp = SDL_DisplayFormat(sprite); - SDL_FreeSurface(sprite); - if (temp == NULL) { - fprintf(stderr, "Couldn't convert background: %s\n", SDL_GetError()); - return (-1); - } - sprite = temp; - - /* We're ready to roll. :) */ - return (0); -} - -void -MoveSprites(SDL_Surface * screen, Uint32 background) -{ - int i, nupdates; - SDL_Rect area, *position, *velocity; - - nupdates = 0; - /* Erase all the sprites if necessary */ - if (sprites_visible) { - SDL_FillRect(screen, NULL, background); - } - - /* Move the sprite, bounce at the wall, and draw */ - for (i = 0; i < numsprites; ++i) { - position = &positions[i]; - velocity = &velocities[i]; - position->x += velocity->x; - if ((position->x < 0) || (position->x >= (screen->w - sprite_w))) { - velocity->x = -velocity->x; - position->x += velocity->x; - } - position->y += velocity->y; - if ((position->y < 0) || (position->y >= (screen->h - sprite_w))) { - velocity->y = -velocity->y; - position->y += velocity->y; - } - - /* Blit the sprite onto the screen */ - area = *position; - SDL_BlitSurface(sprite, NULL, screen, &area); - sprite_rects[nupdates++] = area; - } - - if (debug_flip) { - if ((screen->flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF) { - static int t = 0; - - Uint32 color = SDL_MapRGB(screen->format, 255, 0, 0); - SDL_Rect r; - r.x = t; -/* (sin((float) t * 2 * 3.1459) + 1.0) / 2.0 * (screen->w - 20); */ - r.y = 0; - r.w = 20; - r.h = screen->h; - - SDL_FillRect(screen, &r, color); - t += 2; - } - } - - /* Update the screen! */ - if ((screen->flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF) { - SDL_Flip(screen); - } else { - SDL_UpdateRects(screen, nupdates, sprite_rects); - } - sprites_visible = 1; -} - -/* This is a way of telling whether or not to use hardware surfaces */ -Uint32 -FastestFlags(Uint32 flags, int width, int height, int bpp) -{ - const SDL_VideoInfo *info; - - /* Hardware acceleration is only used in fullscreen mode */ - flags |= SDL_FULLSCREEN; - - /* Check for various video capabilities */ - info = SDL_GetVideoInfo(); - if (info->blit_hw_CC && info->blit_fill) { - /* We use accelerated colorkeying and color filling */ - flags |= SDL_HWSURFACE; - } - /* If we have enough video memory, and will use accelerated - blits directly to it, then use page flipping. - */ - if ((flags & SDL_HWSURFACE) == SDL_HWSURFACE) { - /* Direct hardware blitting without double-buffering - causes really bad flickering. - */ - if (info->video_mem * 1024 > (height * width * bpp / 8)) { - flags |= SDL_DOUBLEBUF; - } else { - flags &= ~SDL_HWSURFACE; - } - } - - /* Return the flags */ - return (flags); -} - -int -main(int argc, char *argv[]) -{ - SDL_Surface *screen; - Uint8 *mem; - int width, height; - Uint8 video_bpp; - Uint32 videoflags; - Uint32 background; - int i, done; - SDL_Event event; - Uint32 then, now, frames; - - consoleDemoInit(); - puts("Hello world! Initializing FAT..."); - fatInitDefault(); - /* Initialize SDL */ - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - puts("* initialized SDL"); - - numsprites = NUM_SPRITES; - videoflags = SDL_SWSURFACE /*| SDL_ANYFORMAT */ ; - width = 256; - height = 192; - video_bpp = 15; - debug_flip = 0; - while (argc > 1) { - --argc; - if (strcmp(argv[argc - 1], "-width") == 0) { - width = atoi(argv[argc]); - --argc; - } else if (strcmp(argv[argc - 1], "-height") == 0) { - height = atoi(argv[argc]); - --argc; - } else if (strcmp(argv[argc - 1], "-bpp") == 0) { - video_bpp = atoi(argv[argc]); - videoflags &= ~SDL_ANYFORMAT; - --argc; - } else if (strcmp(argv[argc], "-fast") == 0) { - videoflags = FastestFlags(videoflags, width, height, video_bpp); - } else if (strcmp(argv[argc], "-hw") == 0) { - videoflags ^= SDL_HWSURFACE; - } else if (strcmp(argv[argc], "-flip") == 0) { - videoflags ^= SDL_DOUBLEBUF; - } else if (strcmp(argv[argc], "-debugflip") == 0) { - debug_flip ^= 1; - } else if (strcmp(argv[argc], "-fullscreen") == 0) { - videoflags ^= SDL_FULLSCREEN; - } else if (isdigit(argv[argc][0])) { - numsprites = atoi(argv[argc]); - } else { - fprintf(stderr, - "Usage: %s [-bpp N] [-hw] [-flip] [-fast] [-fullscreen] [numsprites]\n", - argv[0]); - quit(1); - } - } - - /* Set video mode */ - screen = SDL_SetVideoMode(width, height, video_bpp, videoflags); - if (!screen) { - fprintf(stderr, "Couldn't set %dx%d video mode: %s\n", - width, height, SDL_GetError()); - quit(2); - } - screen->flags &= ~SDL_PREALLOC; - puts("* set video mode"); - - /* Load the sprite */ - if (LoadSprite("icon.bmp") < 0) { - quit(1); - } - puts("* loaded sprite"); - - /* Allocate memory for the sprite info */ - mem = (Uint8 *) malloc(4 * sizeof(SDL_Rect) * numsprites); - if (mem == NULL) { - SDL_FreeSurface(sprite); - fprintf(stderr, "Out of memory!\n"); - quit(2); - } - sprite_rects = (SDL_Rect *) mem; - positions = sprite_rects; - sprite_rects += numsprites; - velocities = sprite_rects; - sprite_rects += numsprites; - sprite_w = sprite->w; - sprite_h = sprite->h; - srand(time(NULL)); - for (i = 0; i < numsprites; ++i) { - positions[i].x = rand() % (screen->w - sprite_w); - positions[i].y = rand() % (screen->h - sprite_h); - positions[i].w = sprite->w; - positions[i].h = sprite->h; - velocities[i].x = 0; - velocities[i].y = 0; - while (!velocities[i].x && !velocities[i].y) { - velocities[i].x = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED; - velocities[i].y = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED; - } - } - background = SDL_MapRGB(screen->format, 0x00, 0x00, 0x00); - - /* Print out information about our surfaces */ - printf("Screen is at %d bits per pixel\n", screen->format->BitsPerPixel); - if ((screen->flags & SDL_HWSURFACE) == SDL_HWSURFACE) { - printf("Screen is in video memory\n"); - } else { - printf("Screen is in system memory\n"); - } - if ((screen->flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF) { - printf("Screen has double-buffering enabled\n"); - } - if ((sprite->flags & SDL_HWSURFACE) == SDL_HWSURFACE) { - printf("Sprite is in video memory\n"); - } else { - printf("Sprite is in system memory\n"); - } - /* Run a sample blit to trigger blit acceleration */ - { - SDL_Rect dst; - dst.x = 0; - dst.y = 0; - dst.w = sprite->w; - dst.h = sprite->h; - SDL_BlitSurface(sprite, NULL, screen, &dst); - SDL_FillRect(screen, &dst, background); - } - if ((sprite->flags & SDL_HWACCEL) == SDL_HWACCEL) { - printf("Sprite blit uses hardware acceleration\n"); - } - if ((sprite->flags & SDL_RLEACCEL) == SDL_RLEACCEL) { - printf("Sprite blit uses RLE acceleration\n"); - } - - /* Loop, blitting sprites and waiting for a keystroke */ - frames = 0; - then = SDL_GetTicks(); - done = 0; - sprites_visible = 0; - puts("hello!"); - while (!done) { - /* Check for events */ - ++frames; - printf("."); - swiWaitForVBlank(); - MoveSprites(screen, background); - } - puts("goodbye!"); - SDL_FreeSurface(sprite); - free(mem); - - /* Print out some timing information */ - now = SDL_GetTicks(); - if (now > then) { - printf("%2.2f frames per second\n", - ((double) frames * 1000) / (now - then)); - } - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite2/Makefile b/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite2/Makefile deleted file mode 100755 index 2612f5a7e8..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite2/Makefile +++ /dev/null @@ -1,132 +0,0 @@ -#--------------------------------------------------------------------------------- -.SUFFIXES: -#--------------------------------------------------------------------------------- - -ifeq ($(strip $(DEVKITARM)),) -$(error "Please set DEVKITARM in your environment. export DEVKITARM=devkitARM") -endif - -include $(DEVKITARM)/ds_rules - -#--------------------------------------------------------------------------------- -# TARGET is the name of the output -# BUILD is the directory where object files & intermediate files will be placed -# SOURCES is a list of directories containing source code -# INCLUDES is a list of directories containing extra header files -#--------------------------------------------------------------------------------- -TARGET := $(shell basename $(CURDIR)) -BUILD := build -SOURCES := source -DATA := data -INCLUDES := include - -#--------------------------------------------------------------------------------- -# options for code generation -#--------------------------------------------------------------------------------- -ARCH := -mthumb -mthumb-interwork - -# note: arm9tdmi isn't the correct CPU arch, but anything newer and LD -# *insists* it has a FPU or VFP, and it won't take no for an answer! -CFLAGS := -save-temps -g -Wall -O0\ - -mcpu=arm9tdmi -mtune=arm9tdmi \ - $(ARCH) - -CFLAGS += $(INCLUDE) -DARM9 -D__NDS__ -CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -fno-exceptions -fno-rtti - -ASFLAGS := -g $(ARCH) -LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) -mno-fpu -Wl,-Map,$(notdir $*.map) - -#--------------------------------------------------------------------------------- -# any extra libraries we wish to link with the project -#--------------------------------------------------------------------------------- -LIBS := -lSDL -lfat -lnds9 - - -#--------------------------------------------------------------------------------- -# list of directories containing libraries, this must be the top level containing -# include and lib -#--------------------------------------------------------------------------------- -LIBDIRS := $(LIBNDS) - -#--------------------------------------------------------------------------------- -# no real need to edit anything past this point unless you need to add additional -# rules for different file extensions -#--------------------------------------------------------------------------------- -ifneq ($(BUILD),$(notdir $(CURDIR))) -#--------------------------------------------------------------------------------- - -export OUTPUT := $(CURDIR)/$(TARGET) - -export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \ - $(foreach dir,$(DATA),$(CURDIR)/$(dir)) - -export DEPSDIR := $(CURDIR)/$(BUILD) - -CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) -CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) -SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) -BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) - -#--------------------------------------------------------------------------------- -# use CXX for linking C++ projects, CC for standard C -#--------------------------------------------------------------------------------- -ifeq ($(strip $(CPPFILES)),) -#--------------------------------------------------------------------------------- - export LD := $(CC) -#--------------------------------------------------------------------------------- -else -#--------------------------------------------------------------------------------- - export LD := $(CXX) -#--------------------------------------------------------------------------------- -endif -#--------------------------------------------------------------------------------- - -export OFILES := $(addsuffix .o,$(BINFILES)) \ - $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) - -export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ - $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ - $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ - -I$(CURDIR)/$(BUILD) - -export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) - -.PHONY: $(BUILD) clean - -#--------------------------------------------------------------------------------- -$(BUILD): - @[ -d $@ ] || mkdir -p $@ - @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile - -#--------------------------------------------------------------------------------- -clean: - @echo clean ... - @rm -fr $(BUILD) $(TARGET).elf $(TARGET).nds $(TARGET).arm9 $(TARGET).ds.gba - - -#--------------------------------------------------------------------------------- -else - -DEPENDS := $(OFILES:.o=.d) - -#--------------------------------------------------------------------------------- -# main targets -#--------------------------------------------------------------------------------- -$(OUTPUT).ds.gba : $(OUTPUT).nds -$(OUTPUT).nds : $(OUTPUT).arm9 -$(OUTPUT).arm9 : $(OUTPUT).elf -$(OUTPUT).elf : $(OFILES) - -#--------------------------------------------------------------------------------- -%.bin.o : %.bin -#--------------------------------------------------------------------------------- - @echo $(notdir $<) - @$(bin2o) - - --include $(DEPENDS) - -#--------------------------------------------------------------------------------------- -endif -#--------------------------------------------------------------------------------------- diff --git a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite2/icon.bmp b/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite2/icon.bmp deleted file mode 100644 index cc96356acb521c7f1518acdb2a3b5d59b8a061aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 578 zcmcgoK@Nm42&C%Gi}VGyC*RS#Puc$;>j1^7i6@ht1lnN+#Fo7bq$tQ6Vr>y - -#include "common.h" - -#define VIDEO_USAGE \ -"[--video driver] [--renderer driver] [--info all|video|modes|render|event] [--display %d] [--fullscreen | --windows N] [--title title] [--center | --position X,Y] [--geometry WxH] [--depth N] [--refresh R] [--vsync] [--noframe] [--resize] [--minimize] [--maximize] [--grab]" - -#define AUDIO_USAGE \ -"[--rate N] [--format U8|S8|U16|U16LE|U16BE|S16|S16LE|S16BE] [--channels N] [--samples N]" - -CommonState * -CommonCreateState(char **argv, Uint32 flags) -{ - CommonState *state = SDL_calloc(1, sizeof(*state)); - if (!state) { - SDL_OutOfMemory(); - return NULL; - } - - /* Initialize some defaults */ - state->argv = argv; - state->flags = flags; - state->window_title = argv[0]; - state->window_flags = SDL_WINDOW_SHOWN; - state->window_x = SDL_WINDOWPOS_UNDEFINED; - state->window_y = SDL_WINDOWPOS_UNDEFINED; - state->window_w = 256; - state->window_h = 192; - state->num_windows = 1; - state->audiospec.freq = 22050; - state->audiospec.format = AUDIO_S16; - state->audiospec.channels = 2; - state->audiospec.samples = 2048; - return state; -} - -int -CommonArg(CommonState * state, int index) -{ - char **argv = state->argv; - - if (SDL_strcasecmp(argv[index], "--video") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->videodriver = argv[index]; - return 2; - } - if (SDL_strcasecmp(argv[index], "--renderer") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->renderdriver = argv[index]; - return 2; - } - if (SDL_strcasecmp(argv[index], "--info") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - if (SDL_strcasecmp(argv[index], "all") == 0) { - state->verbose |= - (VERBOSE_VIDEO | VERBOSE_MODES | VERBOSE_RENDER | - VERBOSE_EVENT); - return 2; - } - if (SDL_strcasecmp(argv[index], "video") == 0) { - state->verbose |= VERBOSE_VIDEO; - return 2; - } - if (SDL_strcasecmp(argv[index], "modes") == 0) { - state->verbose |= VERBOSE_MODES; - return 2; - } - if (SDL_strcasecmp(argv[index], "render") == 0) { - state->verbose |= VERBOSE_RENDER; - return 2; - } - if (SDL_strcasecmp(argv[index], "event") == 0) { - state->verbose |= VERBOSE_EVENT; - return 2; - } - return -1; - } - if (SDL_strcasecmp(argv[index], "--display") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->display = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--fullscreen") == 0) { - state->window_flags |= SDL_WINDOW_FULLSCREEN; - state->num_windows = 1; - return 1; - } - if (SDL_strcasecmp(argv[index], "--windows") == 0) { - ++index; - if (!argv[index] || !SDL_isdigit(*argv[index])) { - return -1; - } - if (!(state->window_flags & SDL_WINDOW_FULLSCREEN)) { - state->num_windows = SDL_atoi(argv[index]); - } - return 2; - } - if (SDL_strcasecmp(argv[index], "--title") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->window_title = argv[index]; - return 2; - } - if (SDL_strcasecmp(argv[index], "--center") == 0) { - state->window_x = SDL_WINDOWPOS_CENTERED; - state->window_y = SDL_WINDOWPOS_CENTERED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--position") == 0) { - char *x, *y; - ++index; - if (!argv[index]) { - return -1; - } - x = argv[index]; - y = argv[index]; - while (*y && *y != ',') { - ++y; - } - if (!*y) { - return -1; - } - *y++ = '\0'; - state->window_x = SDL_atoi(x); - state->window_y = SDL_atoi(y); - return 2; - } - if (SDL_strcasecmp(argv[index], "--geometry") == 0) { - char *w, *h; - ++index; - if (!argv[index]) { - return -1; - } - w = argv[index]; - h = argv[index]; - while (*h && *h != 'x') { - ++h; - } - if (!*h) { - return -1; - } - *h++ = '\0'; - state->window_w = SDL_atoi(w); - state->window_h = SDL_atoi(h); - return 2; - } - if (SDL_strcasecmp(argv[index], "--depth") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->depth = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--refresh") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->refresh_rate = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--vsync") == 0) { - state->render_flags |= SDL_RENDERER_PRESENTVSYNC; - return 1; - } - if (SDL_strcasecmp(argv[index], "--noframe") == 0) { - state->window_flags |= SDL_WINDOW_BORDERLESS; - return 1; - } - if (SDL_strcasecmp(argv[index], "--resize") == 0) { - state->window_flags |= SDL_WINDOW_RESIZABLE; - return 1; - } - if (SDL_strcasecmp(argv[index], "--minimize") == 0) { - state->window_flags |= SDL_WINDOW_MINIMIZED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--maximize") == 0) { - state->window_flags |= SDL_WINDOW_MAXIMIZED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--grab") == 0) { - state->window_flags |= SDL_WINDOW_INPUT_GRABBED; - return 1; - } - if (SDL_strcasecmp(argv[index], "--rate") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->audiospec.freq = SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--format") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - if (SDL_strcasecmp(argv[index], "U8") == 0) { - state->audiospec.format = AUDIO_U8; - return 2; - } - if (SDL_strcasecmp(argv[index], "S8") == 0) { - state->audiospec.format = AUDIO_S8; - return 2; - } - if (SDL_strcasecmp(argv[index], "U16") == 0) { - state->audiospec.format = AUDIO_U16; - return 2; - } - if (SDL_strcasecmp(argv[index], "U16LE") == 0) { - state->audiospec.format = AUDIO_U16LSB; - return 2; - } - if (SDL_strcasecmp(argv[index], "U16BE") == 0) { - state->audiospec.format = AUDIO_U16MSB; - return 2; - } - if (SDL_strcasecmp(argv[index], "S16") == 0) { - state->audiospec.format = AUDIO_S16; - return 2; - } - if (SDL_strcasecmp(argv[index], "S16LE") == 0) { - state->audiospec.format = AUDIO_S16LSB; - return 2; - } - if (SDL_strcasecmp(argv[index], "S16BE") == 0) { - state->audiospec.format = AUDIO_S16MSB; - return 2; - } - return -1; - } - if (SDL_strcasecmp(argv[index], "--channels") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->audiospec.channels = (Uint8) SDL_atoi(argv[index]); - return 2; - } - if (SDL_strcasecmp(argv[index], "--samples") == 0) { - ++index; - if (!argv[index]) { - return -1; - } - state->audiospec.samples = (Uint16) SDL_atoi(argv[index]); - return 2; - } - if ((SDL_strcasecmp(argv[index], "-h") == 0) - || (SDL_strcasecmp(argv[index], "--help") == 0)) { - /* Print the usage message */ - return -1; - } - return 0; -} - -const char * -CommonUsage(CommonState * state) -{ - switch (state->flags & (SDL_INIT_VIDEO | SDL_INIT_AUDIO)) { - case SDL_INIT_VIDEO: - return VIDEO_USAGE; - case SDL_INIT_AUDIO: - return AUDIO_USAGE; - case (SDL_INIT_VIDEO | SDL_INIT_AUDIO): - return VIDEO_USAGE " " AUDIO_USAGE; - default: - return ""; - } -} - -static void -PrintRendererFlag(Uint32 flag) -{ - switch (flag) { - case SDL_RENDERER_SINGLEBUFFER: - fprintf(stderr, "SingleBuffer"); - break; - case SDL_RENDERER_PRESENTCOPY: - fprintf(stderr, "PresentCopy"); - break; - case SDL_RENDERER_PRESENTFLIP2: - fprintf(stderr, "PresentFlip2"); - break; - case SDL_RENDERER_PRESENTFLIP3: - fprintf(stderr, "PresentFlip3"); - break; - case SDL_RENDERER_PRESENTDISCARD: - fprintf(stderr, "PresentDiscard"); - break; - case SDL_RENDERER_PRESENTVSYNC: - fprintf(stderr, "PresentVSync"); - break; - case SDL_RENDERER_ACCELERATED: - fprintf(stderr, "Accelerated"); - break; - default: - fprintf(stderr, "0x%8.8x", flag); - break; - } -} - -static void -PrintBlendMode(Uint32 flag) -{ - switch (flag) { - case SDL_BLENDMODE_NONE: - fprintf(stderr, "None"); - break; - case SDL_BLENDMODE_MASK: - fprintf(stderr, "Mask"); - break; - case SDL_BLENDMODE_BLEND: - fprintf(stderr, "Blend"); - break; - case SDL_BLENDMODE_ADD: - fprintf(stderr, "Add"); - break; - case SDL_BLENDMODE_MOD: - fprintf(stderr, "Mod"); - break; - default: - fprintf(stderr, "0x%8.8x", flag); - break; - } -} - -static void -PrintScaleMode(Uint32 flag) -{ - switch (flag) { - case SDL_TEXTURESCALEMODE_NONE: - fprintf(stderr, "None"); - break; - case SDL_TEXTURESCALEMODE_FAST: - fprintf(stderr, "Fast"); - break; - case SDL_TEXTURESCALEMODE_SLOW: - fprintf(stderr, "Slow"); - break; - case SDL_TEXTURESCALEMODE_BEST: - fprintf(stderr, "Best"); - break; - default: - fprintf(stderr, "0x%8.8x", flag); - break; - } -} - -static void -PrintPixelFormat(Uint32 format) -{ - switch (format) { - case SDL_PIXELFORMAT_UNKNOWN: - fprintf(stderr, "Unknwon"); - break; - case SDL_PIXELFORMAT_INDEX1LSB: - fprintf(stderr, "Index1LSB"); - break; - case SDL_PIXELFORMAT_INDEX1MSB: - fprintf(stderr, "Index1MSB"); - break; - case SDL_PIXELFORMAT_INDEX4LSB: - fprintf(stderr, "Index4LSB"); - break; - case SDL_PIXELFORMAT_INDEX4MSB: - fprintf(stderr, "Index4MSB"); - break; - case SDL_PIXELFORMAT_INDEX8: - fprintf(stderr, "Index8"); - break; - case SDL_PIXELFORMAT_RGB332: - fprintf(stderr, "RGB332"); - break; - case SDL_PIXELFORMAT_RGB444: - fprintf(stderr, "RGB444"); - break; - case SDL_PIXELFORMAT_RGB555: - fprintf(stderr, "RGB555"); - break; - case SDL_PIXELFORMAT_ARGB4444: - fprintf(stderr, "ARGB4444"); - break; - case SDL_PIXELFORMAT_ARGB1555: - fprintf(stderr, "ARGB1555"); - break; - case SDL_PIXELFORMAT_RGB565: - fprintf(stderr, "RGB565"); - break; - case SDL_PIXELFORMAT_RGB24: - fprintf(stderr, "RGB24"); - break; - case SDL_PIXELFORMAT_BGR24: - fprintf(stderr, "BGR24"); - break; - case SDL_PIXELFORMAT_RGB888: - fprintf(stderr, "RGB888"); - break; - case SDL_PIXELFORMAT_BGR888: - fprintf(stderr, "BGR888"); - break; - case SDL_PIXELFORMAT_ARGB8888: - fprintf(stderr, "ARGB8888"); - break; - case SDL_PIXELFORMAT_RGBA8888: - fprintf(stderr, "RGBA8888"); - break; - case SDL_PIXELFORMAT_ABGR8888: - fprintf(stderr, "ABGR8888"); - break; - case SDL_PIXELFORMAT_BGRA8888: - fprintf(stderr, "BGRA8888"); - break; - case SDL_PIXELFORMAT_ARGB2101010: - fprintf(stderr, "ARGB2101010"); - break; - case SDL_PIXELFORMAT_YV12: - fprintf(stderr, "YV12"); - break; - case SDL_PIXELFORMAT_IYUV: - fprintf(stderr, "IYUV"); - break; - case SDL_PIXELFORMAT_YUY2: - fprintf(stderr, "YUY2"); - break; - case SDL_PIXELFORMAT_UYVY: - fprintf(stderr, "UYVY"); - break; - case SDL_PIXELFORMAT_YVYU: - fprintf(stderr, "YVYU"); - break; - case SDL_PIXELFORMAT_ABGR1555: - fprintf(stderr, "ABGR1555"); - break; - case SDL_PIXELFORMAT_BGR555: - fprintf(stderr, "BGR555"); - break; - default: - fprintf(stderr, "0x%8.8x", format); - break; - } -} - -static void -PrintRenderer(SDL_RendererInfo * info) -{ - int i, count; - - fprintf(stderr, " Renderer %s:\n", info->name); - - fprintf(stderr, " Flags: 0x%8.8X", info->flags); - fprintf(stderr, " ("); - count = 0; - for (i = 0; i < sizeof(info->flags) * 8; ++i) { - Uint32 flag = (1 << i); - if (info->flags & flag) { - if (count > 0) { - fprintf(stderr, " | "); - } - PrintRendererFlag(flag); - ++count; - } - } - fprintf(stderr, ")\n"); - - fprintf(stderr, " Blend: 0x%8.8X", info->blend_modes); - fprintf(stderr, " ("); - count = 0; - for (i = 0; i < sizeof(info->blend_modes) * 8; ++i) { - Uint32 flag = (1 << i); - if (info->blend_modes & flag) { - if (count > 0) { - fprintf(stderr, " | "); - } - PrintBlendMode(flag); - ++count; - } - } - fprintf(stderr, ")\n"); - - fprintf(stderr, " Scale: 0x%8.8X", info->scale_modes); - fprintf(stderr, " ("); - count = 0; - for (i = 0; i < sizeof(info->scale_modes) * 8; ++i) { - Uint32 flag = (1 << i); - if (info->scale_modes & flag) { - if (count > 0) { - fprintf(stderr, " | "); - } - PrintScaleMode(flag); - ++count; - } - } - fprintf(stderr, ")\n"); - - fprintf(stderr, " Texture formats (%d): ", info->num_texture_formats); - for (i = 0; i < (int) info->num_texture_formats; ++i) { - if (i > 0) { - fprintf(stderr, ", "); - } - PrintPixelFormat(info->texture_formats[i]); - } - fprintf(stderr, "\n"); - - if (info->max_texture_width || info->max_texture_height) { - fprintf(stderr, " Max Texture Size: %dx%d\n", - info->max_texture_width, info->max_texture_height); - } -} - -SDL_bool -CommonInit(CommonState * state) -{ - int i, j, m, n; - SDL_DisplayMode fullscreen_mode; - - if (state->flags & SDL_INIT_VIDEO) { - if (state->verbose & VERBOSE_VIDEO) { - n = SDL_GetNumVideoDrivers(); - if (n == 0) { - fprintf(stderr, "No built-in video drivers\n"); - } else { - fprintf(stderr, "Built-in video drivers:"); - for (i = 0; i < n; ++i) { - if (i > 0) { - fprintf(stderr, ","); - } - fprintf(stderr, " %s", SDL_GetVideoDriver(i)); - } - fprintf(stderr, "\n"); - } - } - if (SDL_VideoInit(state->videodriver, 0) < 0) { - fprintf(stderr, "Couldn't initialize video driver: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - if (state->verbose & VERBOSE_VIDEO) { - fprintf(stderr, "Video driver: %s\n", - SDL_GetCurrentVideoDriver()); - } - - if (state->verbose & VERBOSE_MODES) { - SDL_DisplayMode mode; - int bpp; - Uint32 Rmask, Gmask, Bmask, Amask; - - n = SDL_GetNumVideoDisplays(); - fprintf(stderr, "Number of displays: %d\n", n); - for (i = 0; i < n; ++i) { - fprintf(stderr, "Display %d:\n", i); - SDL_SelectVideoDisplay(i); - - SDL_GetDesktopDisplayMode(&mode); - SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, &Gmask, - &Bmask, &Amask); - fprintf(stderr, - " Current mode: %dx%d@%dHz, %d bits-per-pixel\n", - mode.w, mode.h, mode.refresh_rate, bpp); - if (Rmask || Gmask || Bmask) { - fprintf(stderr, " Red Mask = 0x%.8x\n", Rmask); - fprintf(stderr, " Green Mask = 0x%.8x\n", Gmask); - fprintf(stderr, " Blue Mask = 0x%.8x\n", Bmask); - if (Amask) - fprintf(stderr, " Alpha Mask = 0x%.8x\n", Amask); - } - - /* Print available fullscreen video modes */ - m = SDL_GetNumDisplayModes(); - if (m == 0) { - fprintf(stderr, "No available fullscreen video modes\n"); - } else { - fprintf(stderr, " Fullscreen video modes:\n"); - for (j = 0; j < m; ++j) { - SDL_GetDisplayMode(j, &mode); - SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, - &Gmask, &Bmask, &Amask); - fprintf(stderr, - " Mode %d: %dx%d@%dHz, %d bits-per-pixel\n", - j, mode.w, mode.h, mode.refresh_rate, bpp); - if (Rmask || Gmask || Bmask) { - fprintf(stderr, " Red Mask = 0x%.8x\n", - Rmask); - fprintf(stderr, " Green Mask = 0x%.8x\n", - Gmask); - fprintf(stderr, " Blue Mask = 0x%.8x\n", - Bmask); - if (Amask) - fprintf(stderr, - " Alpha Mask = 0x%.8x\n", - Amask); - } - } - } - } - } - - SDL_SelectVideoDisplay(state->display); - if (state->verbose & VERBOSE_RENDER) { - SDL_RendererInfo info; - - n = SDL_GetNumRenderDrivers(); - if (n == 0) { - fprintf(stderr, "No built-in render drivers\n"); - } else { - fprintf(stderr, "Built-in render drivers:\n"); - for (i = 0; i < n; ++i) { - SDL_GetRenderDriverInfo(i, &info); - PrintRenderer(&info); - } - } - } - - switch (state->depth) { - case 8: - fullscreen_mode.format = SDL_PIXELFORMAT_INDEX8; - break; - case 15: - fullscreen_mode.format = SDL_PIXELFORMAT_BGR555; - break; - case 16: - default: - fullscreen_mode.format = SDL_PIXELFORMAT_ABGR1555; - break; -/* NDS default: - fullscreen_mode.format = SDL_PIXELFORMAT_RGB888; - break;*/ - } - fullscreen_mode.w = state->window_w; - fullscreen_mode.h = state->window_h; - fullscreen_mode.refresh_rate = state->refresh_rate; - SDL_SetFullscreenDisplayMode(&fullscreen_mode); - - state->windows = - (SDL_WindowID *) SDL_malloc(state->num_windows * - sizeof(*state->windows)); - if (!state->windows) { - fprintf(stderr, "Out of memory!\n"); - return SDL_FALSE; - } - for (i = 0; i < state->num_windows; ++i) { - char title[1024]; - - if (state->num_windows > 1) { - SDL_snprintf(title, SDL_arraysize(title), "%s %d", - state->window_title, i + 1); - } else { - SDL_strlcpy(title, state->window_title, SDL_arraysize(title)); - } - state->windows[i] = - SDL_CreateWindow(title, state->window_x, state->window_y, - state->window_w, state->window_h, - state->window_flags); - if (!state->windows[i]) { - fprintf(stderr, "Couldn't create window: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - - if (!state->skip_renderer - && (state->renderdriver - || !(state->window_flags & SDL_WINDOW_OPENGL))) { - m = -1; - if (state->renderdriver) { - SDL_RendererInfo info; - n = SDL_GetNumRenderDrivers(); - for (j = 0; j < n; ++j) { - SDL_GetRenderDriverInfo(j, &info); - if (SDL_strcasecmp(info.name, state->renderdriver) == - 0) { - m = j; - break; - } - } - if (m == n) { - fprintf(stderr, - "Couldn't find render driver named %s", - state->renderdriver); - return SDL_FALSE; - } - } - if (SDL_CreateRenderer - (state->windows[i], m, state->render_flags) < 0) { - fprintf(stderr, "Couldn't create renderer: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - if (state->verbose & VERBOSE_RENDER) { - SDL_RendererInfo info; - - fprintf(stderr, "Current renderer:\n"); - SDL_GetRendererInfo(&info); - PrintRenderer(&info); - } - } - } - SDL_SelectRenderer(state->windows[0]); - } - - if (state->flags & SDL_INIT_AUDIO) { - if (state->verbose & VERBOSE_AUDIO) { - n = SDL_GetNumAudioDrivers(); - if (n == 0) { - fprintf(stderr, "No built-in audio drivers\n"); - } else { - fprintf(stderr, "Built-in audio drivers:"); - for (i = 0; i < n; ++i) { - if (i > 0) { - fprintf(stderr, ","); - } - fprintf(stderr, " %s", SDL_GetAudioDriver(i)); - } - fprintf(stderr, "\n"); - } - } - if (SDL_AudioInit(state->audiodriver) < 0) { - fprintf(stderr, "Couldn't initialize audio driver: %s\n", - SDL_GetError()); - return SDL_FALSE; - } - if (state->verbose & VERBOSE_VIDEO) { - fprintf(stderr, "Audio driver: %s\n", - SDL_GetCurrentAudioDriver()); - } - - if (SDL_OpenAudio(&state->audiospec, NULL) < 0) { - fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError()); - return SDL_FALSE; - } - } - - return SDL_TRUE; -} - -static void -PrintEvent(SDL_Event * event) -{ - fprintf(stderr, "SDL EVENT: "); - switch (event->type) { - case SDL_WINDOWEVENT: - switch (event->window.event) { - case SDL_WINDOWEVENT_SHOWN: - fprintf(stderr, "Window %d shown", event->window.windowID); - break; - case SDL_WINDOWEVENT_HIDDEN: - fprintf(stderr, "Window %d hidden", event->window.windowID); - break; - case SDL_WINDOWEVENT_EXPOSED: - fprintf(stderr, "Window %d exposed", event->window.windowID); - break; - case SDL_WINDOWEVENT_MOVED: - fprintf(stderr, "Window %d moved to %d,%d", - event->window.windowID, event->window.data1, - event->window.data2); - break; - case SDL_WINDOWEVENT_RESIZED: - fprintf(stderr, "Window %d resized to %dx%d", - event->window.windowID, event->window.data1, - event->window.data2); - break; - case SDL_WINDOWEVENT_MINIMIZED: - fprintf(stderr, "Window %d minimized", event->window.windowID); - break; - case SDL_WINDOWEVENT_MAXIMIZED: - fprintf(stderr, "Window %d maximized", event->window.windowID); - break; - case SDL_WINDOWEVENT_RESTORED: - fprintf(stderr, "Window %d restored", event->window.windowID); - break; - case SDL_WINDOWEVENT_ENTER: - fprintf(stderr, "Mouse entered window %d", - event->window.windowID); - break; - case SDL_WINDOWEVENT_LEAVE: - fprintf(stderr, "Mouse left window %d", event->window.windowID); - break; - case SDL_WINDOWEVENT_FOCUS_GAINED: - fprintf(stderr, "Window %d gained keyboard focus", - event->window.windowID); - break; - case SDL_WINDOWEVENT_FOCUS_LOST: - fprintf(stderr, "Window %d lost keyboard focus", - event->window.windowID); - break; - case SDL_WINDOWEVENT_CLOSE: - fprintf(stderr, "Window %d closed", event->window.windowID); - break; - default: - fprintf(stderr, "Window %d got unknown event %d", - event->window.windowID, event->window.event); - break; - } - break; - case SDL_KEYDOWN: - fprintf(stderr, - "Keyboard %d: key pressed in window %d: scancode 0x%08X = %s, keycode 0x%08X = %s", - event->key.which, event->key.windowID, - event->key.keysym.scancode, - SDL_GetScancodeName(event->key.keysym.scancode), - event->key.keysym.sym, SDL_GetKeyName(event->key.keysym.sym)); - break; - case SDL_KEYUP: - fprintf(stderr, - "Keyboard %d: key released in window %d: scancode 0x%08X = %s, keycode 0x%08X = %s", - event->key.which, event->key.windowID, - event->key.keysym.scancode, - SDL_GetScancodeName(event->key.keysym.scancode), - event->key.keysym.sym, SDL_GetKeyName(event->key.keysym.sym)); - break; - case SDL_TEXTINPUT: - fprintf(stderr, "Keyboard %d: text input \"%s\" in window %d", - event->text.which, event->text.text, event->text.windowID); - break; - case SDL_MOUSEMOTION: - fprintf(stderr, "Mouse %d: moved to %d,%d (%d,%d) in window %d", - event->motion.which, event->motion.x, event->motion.y, - event->motion.xrel, event->motion.yrel, - event->motion.windowID); - break; - case SDL_MOUSEBUTTONDOWN: - fprintf(stderr, "Mouse %d: button %d pressed at %d,%d in window %d", - event->button.which, event->button.button, event->button.x, - event->button.y, event->button.windowID); - break; - case SDL_MOUSEBUTTONUP: - fprintf(stderr, "Mouse %d: button %d released at %d,%d in window %d", - event->button.which, event->button.button, event->button.x, - event->button.y, event->button.windowID); - break; - case SDL_MOUSEWHEEL: - fprintf(stderr, - "Mouse %d: wheel scrolled %d in x and %d in y in window %d", - event->wheel.which, event->wheel.x, event->wheel.y, - event->wheel.windowID); - break; - case SDL_JOYBALLMOTION: - fprintf(stderr, "Joystick %d: ball %d moved by %d,%d", - event->jball.which, event->jball.ball, event->jball.xrel, - event->jball.yrel); - break; - case SDL_JOYHATMOTION: - fprintf(stderr, "Joystick %d: hat %d moved to ", event->jhat.which, - event->jhat.hat); - switch (event->jhat.value) { - case SDL_HAT_CENTERED: - fprintf(stderr, "CENTER"); - break; - case SDL_HAT_UP: - fprintf(stderr, "UP"); - break; - case SDL_HAT_RIGHTUP: - fprintf(stderr, "RIGHTUP"); - break; - case SDL_HAT_RIGHT: - fprintf(stderr, "RIGHT"); - break; - case SDL_HAT_RIGHTDOWN: - fprintf(stderr, "RIGHTDOWN"); - break; - case SDL_HAT_DOWN: - fprintf(stderr, "DOWN"); - break; - case SDL_HAT_LEFTDOWN: - fprintf(stderr, "LEFTDOWN"); - break; - case SDL_HAT_LEFT: - fprintf(stderr, "LEFT"); - break; - case SDL_HAT_LEFTUP: - fprintf(stderr, "LEFTUP"); - break; - default: - fprintf(stderr, "UNKNOWN"); - break; - } - break; - case SDL_JOYBUTTONDOWN: - fprintf(stderr, "Joystick %d: button %d pressed", - event->jbutton.which, event->jbutton.button); - break; - case SDL_JOYBUTTONUP: - fprintf(stderr, "Joystick %d: button %d released", - event->jbutton.which, event->jbutton.button); - break; - case SDL_QUIT: - fprintf(stderr, "Quit requested"); - break; - case SDL_USEREVENT: - fprintf(stderr, "User event %d", event->user.code); - break; - default: - fprintf(stderr, "Unknown event %d", event->type); - break; - } - fprintf(stderr, "\n"); -} - -void -CommonEvent(CommonState * state, SDL_Event * event, int *done) -{ - if (state->verbose & VERBOSE_EVENT) { - PrintEvent(event); - } - - switch (event->type) { - case SDL_WINDOWEVENT: - switch (event->window.event) { - case SDL_WINDOWEVENT_CLOSE: - *done = 1; - break; - } - break; - case SDL_KEYDOWN: - switch (event->key.keysym.sym) { - /* Add hotkeys here */ - case SDLK_g: - if (event->key.keysym.mod & KMOD_CTRL) { - /* Ctrl-G toggle grab */ - } - break; - case SDLK_ESCAPE: - *done = 1; - break; - default: - break; - } - break; - case SDL_QUIT: - *done = 1; - break; - } -} - -void -CommonQuit(CommonState * state) -{ - if (state->flags & SDL_INIT_VIDEO) { - SDL_VideoQuit(); - } - if (state->flags & SDL_INIT_AUDIO) { - SDL_AudioQuit(); - } - if (state->windows) { - SDL_free(state->windows); - } - SDL_free(state); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite2/source/common.h b/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite2/source/common.h deleted file mode 100755 index 0e03931988..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite2/source/common.h +++ /dev/null @@ -1,48 +0,0 @@ - -/* A simple test program framework */ - -#include - -#define VERBOSE_VIDEO 0x00000001 -#define VERBOSE_MODES 0x00000002 -#define VERBOSE_RENDER 0x00000004 -#define VERBOSE_EVENT 0x00000008 -#define VERBOSE_AUDIO 0x00000010 - -typedef struct -{ - /* SDL init flags */ - char **argv; - Uint32 flags; - Uint32 verbose; - - /* Video info */ - const char *videodriver; - int display; - const char *window_title; - Uint32 window_flags; - int window_x; - int window_y; - int window_w; - int window_h; - int depth; - int refresh_rate; - int num_windows; - SDL_WindowID *windows; - - /* Renderer info */ - const char *renderdriver; - Uint32 render_flags; - SDL_bool skip_renderer; - - /* Audio info */ - const char *audiodriver; - SDL_AudioSpec audiospec; -} CommonState; - -extern CommonState *CommonCreateState(char **argv, Uint32 flags); -extern int CommonArg(CommonState * state, int index); -extern const char *CommonUsage(CommonState * state); -extern SDL_bool CommonInit(CommonState * state); -extern void CommonEvent(CommonState * state, SDL_Event * event, int *done); -extern void CommonQuit(CommonState * state); diff --git a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite2/source/testsprite2.c b/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite2/source/testsprite2.c deleted file mode 100755 index 15dfa0ed47..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/nds-test-progs/sprite2/source/testsprite2.c +++ /dev/null @@ -1,270 +0,0 @@ -/* Simple program: Move N sprites around on the screen as fast as possible */ - -#include -#include -#include -#include -#include -#include "common.h" - -#define NUM_SPRITES 10 -#define MAX_SPEED 1 - -static CommonState *state; -static int num_sprites; -static SDL_TextureID *sprites; -static SDL_bool cycle_color; -static SDL_bool cycle_alpha; -static int cycle_direction = 1; -static int current_alpha = 0; -static int current_color = 0; -static SDL_Rect *positions; -static SDL_Rect *velocities; -static int sprite_w, sprite_h; -static SDL_BlendMode blendMode = SDL_BLENDMODE_MASK; -static SDL_TextureScaleMode scaleMode = SDL_TEXTURESCALEMODE_NONE; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - if (sprites) { - SDL_free(sprites); - } - if (positions) { - SDL_free(positions); - } - if (velocities) { - SDL_free(velocities); - } - CommonQuit(state); - exit(rc); -} - -int -LoadSprite(char *file) -{ - int i; - SDL_Surface *temp; - - /* Load the sprite image */ - temp = SDL_LoadBMP(file); - if (temp == NULL) { - fprintf(stderr, "Couldn't load %s: %s", file, SDL_GetError()); - return (-1); - } - sprite_w = temp->w; - sprite_h = temp->h; - - /* Set transparent pixel as the pixel at (0,0) */ - if (temp->format->palette) { - SDL_SetColorKey(temp, SDL_SRCCOLORKEY, *(Uint8 *) temp->pixels); - } - - /* Create textures from the image */ - for (i = 0; i < state->num_windows; ++i) { - SDL_SelectRenderer(state->windows[i]); - sprites[i] = SDL_CreateTextureFromSurface(0, temp); - if (!sprites[i]) { - fprintf(stderr, "Couldn't create texture: %s\n", SDL_GetError()); - SDL_FreeSurface(temp); - return (-1); - } - SDL_SetTextureBlendMode(sprites[i], blendMode); - SDL_SetTextureScaleMode(sprites[i], scaleMode); - } - SDL_FreeSurface(temp); - - /* We're ready to roll. :) */ - return (0); -} - -int -LoadSprite2(const u8 * ptr, int size) -{ - int i; - SDL_Rect r = { 0, 0, 32, 32 }; - for (i = 0; i < state->num_windows; ++i) { - SDL_SelectRenderer(state->windows[i]); - sprites[i] = SDL_CreateTexture(SDL_PIXELFORMAT_ABGR1555, - SDL_TEXTUREACCESS_STATIC, r.w, r.h); - if (!sprites[i]) { - fprintf(stderr, "Couldn't create texture: %s\n", SDL_GetError()); - return -1; - } - SDL_UpdateTexture(sprites[i], &r, ptr, r.w * 2); - SDL_SetTextureBlendMode(sprites[i], blendMode); - SDL_SetTextureScaleMode(sprites[i], scaleMode); - } - return 0; -} - -void -MoveSprites(SDL_WindowID window, SDL_TextureID sprite) -{ - int i, n; - int window_w, window_h; - SDL_Rect area, *position, *velocity; - - SDL_SelectRenderer(window); - - /* Query the sizes */ - SDL_GetWindowSize(window, &window_w, &window_h); - - /* Cycle the color and alpha, if desired */ - if (cycle_color) { - current_color += cycle_direction; - if (current_color < 0) { - current_color = 0; - cycle_direction = -cycle_direction; - } - if (current_color > 255) { - current_color = 255; - cycle_direction = -cycle_direction; - } - SDL_SetTextureColorMod(sprite, 255, (Uint8) current_color, - (Uint8) current_color); - } - if (cycle_alpha) { - current_alpha += cycle_direction; - if (current_alpha < 0) { - current_alpha = 0; - cycle_direction = -cycle_direction; - } - if (current_alpha > 255) { - current_alpha = 255; - cycle_direction = -cycle_direction; - } - SDL_SetTextureAlphaMod(sprite, (Uint8) current_alpha); - } - - /* Move the sprite, bounce at the wall, and draw */ - n = 0; - SDL_RenderFill(0xA0, 0xA0, 0xA0, 0xFF, NULL); - for (i = 0; i < num_sprites; ++i) { - position = &positions[i]; - velocity = &velocities[i]; - position->x += velocity->x; - if ((position->x < 0) || (position->x >= (window_w - sprite_w))) { - velocity->x = -velocity->x; - position->x += velocity->x; - } - position->y += velocity->y; - if ((position->y < 0) || (position->y >= (window_h - sprite_w))) { - velocity->y = -velocity->y; - position->y += velocity->y; - } - - /* Blit the sprite onto the screen */ - SDL_RenderCopy(sprite, NULL, position); - } - - /* Update the screen! */ - SDL_RenderPresent(); -} - -int -main(int argc, char *argv[]) -{ - int i, done; - SDL_Event event; - Uint32 then, now, frames; - - consoleDemoInit(); - puts("Hello world! Initializing FAT..."); - fatInitDefault(); - - /* Initialize parameters */ - num_sprites = NUM_SPRITES; - - /* Initialize test framework */ - state = CommonCreateState(argv, SDL_INIT_VIDEO); - if (!state) { - return 1; - } - - if (!CommonInit(state)) { - quit(2); - } - - /* Create the windows, initialize the renderers, and load the textures */ - sprites = - (SDL_TextureID *) SDL_malloc(state->num_windows * sizeof(*sprites)); - if (!sprites) { - fprintf(stderr, "Out of memory!\n"); - quit(2); - } - for (i = 0; i < state->num_windows; ++i) { - SDL_SelectRenderer(state->windows[i]); - SDL_RenderFill(0xA0, 0xA0, 0xA0, 0xFF, NULL); - } - if (LoadSprite("icon.bmp") < 0) { - printf("\nerrored.\n"); - while (1); - quit(2); - } - - /* Allocate memory for the sprite info */ - positions = (SDL_Rect *) SDL_malloc(num_sprites * sizeof(SDL_Rect)); - velocities = (SDL_Rect *) SDL_malloc(num_sprites * sizeof(SDL_Rect)); - if (!positions || !velocities) { - fprintf(stderr, "Out of memory!\n"); - quit(2); - } - srand(time(NULL)); - if (scaleMode != SDL_TEXTURESCALEMODE_NONE) { - sprite_w += sprite_w / 2; - sprite_h += sprite_h / 2; - } - for (i = 0; i < num_sprites; ++i) { - positions[i].x = rand() % (state->window_w - sprite_w); - positions[i].y = rand() % (state->window_h - sprite_h); - positions[i].w = sprite_w; - positions[i].h = sprite_h; - velocities[i].x = 0; - velocities[i].y = 0; - while (!velocities[i].x && !velocities[i].y) { - velocities[i].x = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED; - velocities[i].y = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED; - } - } - - /* Main render loop */ - frames = 0; - then = SDL_GetTicks(); - done = 0; - while (!done) { - /* Check for events */ - ++frames; - while (SDL_PollEvent(&event)) { - CommonEvent(state, &event, &done); - switch (event.type) { - case SDL_WINDOWEVENT: - switch (event.window.event) { - case SDL_WINDOWEVENT_EXPOSED: - SDL_SelectRenderer(event.window.windowID); - SDL_RenderFill(0xA0, 0xA0, 0xA0, 0xFF, NULL); - break; - } - break; - default: - break; - } - } - for (i = 0; i < state->num_windows; ++i) { - MoveSprites(state->windows[i], sprites[i]); - } - } - - /* Print out some timing information */ - now = SDL_GetTicks(); - if (now > then) { - printf("%2.2f frames per second\n", - ((double) frames * 1000) / (now - then)); - } - - quit(0); - return 0; -} - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/3rdparty/SDL-1.3.0-5387/test/picture.xbm b/3rdparty/SDL-1.3.0-5387/test/picture.xbm deleted file mode 100644 index c873a60a18..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/picture.xbm +++ /dev/null @@ -1,14 +0,0 @@ -#define picture_width 32 -#define picture_height 32 -static char picture_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x80, 0x01, 0x18, - 0x64, 0x6f, 0xf6, 0x26, 0x0a, 0x00, 0x00, 0x50, 0xf2, 0xff, 0xff, 0x4f, - 0x14, 0x04, 0x00, 0x28, 0x14, 0x0e, 0x00, 0x28, 0x10, 0x32, 0x00, 0x08, - 0x94, 0x03, 0x00, 0x08, 0xf4, 0x04, 0x00, 0x08, 0xb0, 0x08, 0x00, 0x08, - 0x34, 0x01, 0x00, 0x28, 0x34, 0x01, 0x00, 0x28, 0x12, 0x00, 0x40, 0x48, - 0x12, 0x20, 0xa6, 0x48, 0x14, 0x50, 0x11, 0x29, 0x14, 0x50, 0x48, 0x2a, - 0x10, 0x27, 0xac, 0x0e, 0xd4, 0x71, 0xe8, 0x0a, 0x74, 0x20, 0xa8, 0x0a, - 0x14, 0x20, 0x00, 0x08, 0x10, 0x50, 0x00, 0x08, 0x14, 0x00, 0x00, 0x28, - 0x14, 0x00, 0x00, 0x28, 0xf2, 0xff, 0xff, 0x4f, 0x0a, 0x00, 0x00, 0x50, - 0x64, 0x6f, 0xf6, 0x26, 0x18, 0x80, 0x01, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/3rdparty/SDL-1.3.0-5387/test/sample.bmp b/3rdparty/SDL-1.3.0-5387/test/sample.bmp deleted file mode 100644 index aca8bbca6e0068329c988d63f4a1e8affb15ecf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69202 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 diff --git a/3rdparty/SDL-1.3.0-5387/test/sample.wav b/3rdparty/SDL-1.3.0-5387/test/sample.wav deleted file mode 100644 index 002f8158151d600e52930f63b0e832508b6e2c90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121946 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 za`=$&7XbnU2oNAZfWW)JmHBGryYKP)mjD3*1PBlyKwzxEsu^!=7FHubfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oT69 F@P7^ZPXPb` diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p01_shape8.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p01_shape8.bmp deleted file mode 100644 index 5adca298f715c601d0290c5210760c8614781cc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410678 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 diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p02_shape24.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p02_shape24.bmp deleted file mode 100644 index 61e411bb774ee38e755e08b7bb598d728cf1adc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1228938 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 I1mX+)KN!N^pa1{> diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p02_shape32alpha.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p02_shape32alpha.bmp deleted file mode 100644 index 6497a7b0d82aa7004b8c3fc5fffa9c0da5a05c16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1638538 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≪sB=ibc%=ljMh;uzaps_2okKh> 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 diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p04_shape24.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p04_shape24.bmp deleted file mode 100644 index 8cf61298637606882c94a3f38a71755a44d6ae12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1228938 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 diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p04_shape32alpha.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p04_shape32alpha.bmp deleted file mode 100644 index 771ebc05337fb29d5d1b94a89d15767d3b54d428..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1638538 zcmeI)JCY<(avjhHAyT49g$5DppiYfzm{mZaj1^%4*b+6G4W_19=<4eH#OHneo-qu& zGBe_Z`$_kkW;7W7=l}ZGAOHQw$AA9yZ~y(5zy0_B{Fk5q{f8g_^y42tKKR?`|Lwp2 z`1^nV{_^kt&tHH1`1wB{um1WEzdrc!zyIxj{J+nafBDN_{`2pD|G)qIw>y6Q=j%Pc z-t`v&0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+z-j`2^&bKR2>gG6)$&O_1PBly&|big9svRb zz6-QZ8YdDUK!CtX0^f7rYXSratdvn|AwYltfwlsE

ZU@Jyg>+Bl5>0RjY85qOsS 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 diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p06_shape24.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p06_shape24.bmp deleted file mode 100644 index 4cc257688f17aad0131b6cc65979184feaddcdef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1228938 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 K1PBn=C-8rtukKL* diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p06_shape32alpha.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p06_shape32alpha.bmp deleted file mode 100644 index 04afd793cdda60d227071d8022e15d1fa5c590ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1638538 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 z5Xd0V<9lTc0tCte8O|6r5+Fc;z&--yubEZ?IR*CF*(xDGfB*pk;{|fwCRANZV0?nj zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ P009C72oNAJx4{1aXoNQV diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p06_shape8.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p06_shape8.bmp deleted file mode 100644 index 017c1ed776f8251cb53531f72886485ca40b91f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410678 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 K1V|uy0{;hh#my@K diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p07_shape24.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p07_shape24.bmp deleted file mode 100644 index fa8012cae8c048e538f84f559f5da1e5bb05ca9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1228938 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 zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&Us37pm&HpMG$bkR>0t5&UAaGaU=1(fGcM`a}uHGj=fB*pk1mXyE`nh0O0$l~- z>>!a4AV7csfgA!|8?(U)3>L_->qJR_009C7<_HXK%cdhRRAA1oGAjWB1PBm_Cor@D zn~XpZfp|MnL<9&BAV8q6K#&$J3<4np`tCNP6Cgl<0D*Y|AsVe92m}|Hw?oZLfB*pk z1lkA$Z?(cB5L%$kE;I@O0t5&U=r0hup$d*bQi1+E*9-&*5FkL{b%CU9RoDbl3B0~D zy+MEg0RjZt3Z!bBf+bK)pzUrp8UX?X2oTs8DAq!yL!gAf{*HBr009C72wW2=(I6#3 zU=e|9yWCp@2oNAZ;O%XZRw+#ar3IX21PBlyK;THAbR(1;fyD)m_P_fC2oNB!mcZg| zQThay5?JeWlPv)P1PFW-SgPSkmH>gL0w2!=e-j`;fIv-wrwzbG0t5(r5vY0U$%+60 z0&5CrYy=1pcvWD{(^A$12oT6E@akFbc>)9o>B1o8;9I@gUufB=EB0(nkIkrE(4ppL-VGum?m2oUHkQ0HWo2>}8G;tBLV!;MdX z0D-##@lH+=5g!Mq6?fqp*=}}0D(RN(a%Zo5g3fwlr!&PZ_*AV8q1K-*K@XaoolI2NdSp2~{= z0RmYBj!$Y&5FkLHoj{heQJe$_5U4KD?qoL-0RjZ}1*)H=@*_ZiKsJH>6WbjE1PHVd z$aXG@mjD3*)dkv|?nWU%fWUKs>Sw6@2oNBURp9xl?J5BR1nvoBJrl)EfB=D21n!;k z-X=hRz;6XsIX~q|fB=E40>3@ET_He#z;%JFXQ8+W5FoIc!1a^fn*<0Dco$gh?36D7 z0tB)Pyr1CyB0zw^HG%Bsp!f+8Ah4RiwbR~P1PBoLCa~I>DPIBv2viZ!#|RK0a7CcX z87L0|1PH7uaOLdx4gmsd3#@ux%9{WI0#yXo?qaehK;Tt@DrcWO2oNB!y1=XFzvl@M zSXW^6^HTl<2oR_uux=-lIROH%2vj-q10QM009Dz0-yB+_XrTEFYtIK_)dTT z0Rn3X)bDUIBtT$KV2x8wmIMe8An+)#*B4wTK%ln3<5}Q40RjXFtR+yp%gK%afk%P0 zPB_^TAV7e?p1@;&@SOmGx&nLWfa?SZ5FoIYK;2F!GXexY3aoXq$(8^C0tAi(KK2NI z6ChAe;OGo+p8x>@1lAO&*YRXTfWRiO=BXxY0t5&UI13lLFu(rV3Cz zAV7e?CXl-eik`rF0^8p8Nq_(W0tD^|tk*$hOdzkooxSc|0t5&UAg~GK?SvvHu$I8K zXMGYNK!5;&76NN^QP~p6C(vS_8-oA=0t5&=3gqjEA||koz~g@Pod5v>1PHVcSf`W9 zlt3;61PBlyKwwWGS637*f%*b_d)0LU1PBly&{Cj&N0lLgJOVBEwy_8hAV7e? zojVf8AV8ppK<%z7I|4ZbdhBgu5+Fc;0D(P$9Nkfr1nLUx?M>GS z5FkK+Ku>|XomFN8Vhi-#*TyD5fB*pkM*^|Cr059L6gb+K?h_zDfB=D>0yVp&Hx(B^SfB*pk1ZD{2?z*BU5JOJpj&3YU0^pD3B(lWy|0W?9QSh&`%)peiR!4 z0t5&U7$wlJ(;AsTEP+vb$~*)J5FkJxgFvhG|?F2IJLopK|K!5;&(E{x{uaOAM7Z|;N%twF#0RjXv3e4}=A|TL4AmjcMGXVkw z2oRVh(5Cwug}^+4S$oI41PBlyKp?Zgyv}WA0`~(^-AV7csfms6gJFpQ5%n_Ki zXUt20009C7DhSN!-ex6mU7*6glLG+)1PBnAEpWXPdy~L;f!X`T`~(OPAV8pk!1xYs zMgrFaD(p8o5FkK+0D&k1*SfK{2#gbmvRA}GfB*pk1S$!P>*Qu4@VY>yy(Sj|1PBly z5Jlkij_eHrV+5k?5pfV8K!5;&iUMQ0xmgID7pS<;!M2oR_!(7&UbfxtO|iu+4W1PBlyKp?8Xx$f*K0{sM{?hSDfAV7csfyx5?I=hhx z91B$5TXG{nfB*pkQ3Z}Wv?mDk5s11c#6^Gr0RjY85a`q0jY?o&V1<1pM*;*05Fij; zV82tlL!iAt^!*^dIs#ku*2zdFl?Bvm<<*Uu+g5Wv3G^0-xdTL1P2gD_SIbd8wFJ~` zt@X^5&9mBbjX+C*O#4BsIR%dDHD^|$t}dW%tFLhU{ElkSeFAp`;_mEpP88Jz zuGHq4cdEO|Z=ArHdh-l{GXmqP)=bp}&eYqTXR7UUR%1Qx&CArx6$N_K=x1YAG?deLfzN8pJpxAp<15yTl?0CJtLObnj&hkN z(6dI5#-5k8nJWk!)tCDO_5>=_zZ~WW?A6qa>vIImnq6Q2 zuY2)ia~1DgfxS9%oxr2O+)6cjCV|J=$?!dsuUN+kWT@T87{}?DDZ9X9?f6dMnLzeB z7k__&XLXb5T7MxkWD>|!yU$|HWG&V?0?+EkH3A<6=2WIxvj}{wl?s1naTjMFfeJPJ zF^4`%My(?7u~z&|;G;m58ka{OfseIP>F+*TMvX2|sfIu165U;Va|J%uioXeL0&}a< z>`?`_`l$XH)n8m~1*+HamS0;nqg4^u>cc02O`u9`%cGsZRvRmQw$n3GM1hrRdCN88 zI*4hmz*ZYR3CyiTvquwHeMdxF5An1SP}gl7jZ#Bk_5C3KZvr){Sr&H%?1%3K?s|GZ zhQRl$>RXIe5yfl)JAuIL8Z`fW0lQ#dVE*ce;Eurl%DQvM)w?wW?1FU#YE-Z+t_rMM z`LAbw)!2J;1YTd^b>En?LS~I3ux{nAoq3e{6USJAwX6Pm_G4GcY*z)YukhM$UiJ1~ zZh^I{e$DK2SFGr-2&`G@ZL_}O?wxT0ZC88E(Z;QonW6}+S?TL$9i{HXF-BnBO7D~T zm{l{&S%E&QyzZ!H-91-FVBKn8GxIu?E0aBeH7k2e)_dlzj};iR+H1}-b|uX=Q((;s zUpMQSwPxoo+{t!$ZZ0yQdm?JTyn^f^{w?W!A} z{n*tt+a@r6rOnt{U|UO{1daq+*PikE2pp}W`(p(9tgcZvfibISmLq{}J$%L%I9f;d z3A`#0yW-c1?$x#Pe1CzpDsWu3{a4NmuL_J?eKQ>iyt;OtC(ugZs5aeiE6{4)jMGP; z?P?pX&ng+Um4FHzE6{4)j6kSSEBX7Zqppp( z2xJlXen-{)mSsJ}c}<{h<=)Henx?n12;8fVJa1=N4{;KxAdu%|_&m}IYaxg80-smI zI(N^Dd9s2)mCCNL7IGj^Q6SS9Q_){e=L9mxQp zcLFg4dYwZtvJ*vQfnK#2W!%X2Vv8Zrt5#!VCkg@tvI*Qdld|P1-uVJ|>Mi2C^F>9F zP2f%)XUkQ*1PJ63ICDPb%1E@41kTh~hG!y~iY1r8nflI^k!T4Js4B3XS5@qK!5-N0t5(D z5P0=>V1=CJK!5-N0t5&USY6=kZ@|@^N;M>%*@QZj+vR6nVFfHnR)A&uZ!b2aU91eS%!aq zTjR*m)6=IH2QIwFMc_VTKt- zh8=cT8E&}YWccBSmp*;^$Ot2hAbtDxl@UiAQAQeRBpG?+k!6%oMv+lR9aTmfZ8RBu z^wDLEF~*QF#~f3}8fz>Wd+f1goN>mHamO83#v5-u8GrooWr7JNkO?Q8P$rsaBAIyN ziDi;WCXq=eom3{9Y%-aA^2ue2DW;Gqr<_uznrbSUdg`fVnrWtyX{Vi5rkid$nST1| zrC+~(GQ$ir$c!`2C^OA8lgvEx%reU?v&gKo&MLFbHk-^o`|L8u9COH=bIvJq%{7rNETjrVOeC6MP$)M7nQ{p zTTB*Td~q2tV1O*K#1b-a;6Pb&$t7i}rIwPVmtIv4*U<=9;qBT5HMLYp*Tq zth0`+yY9NO-g@iF`s=SR8*H$FY`Ecuve8Bx$;KORESqeyiEO&*rn1>)o5|*zZ!TMG zv4w28<(9J5R$Ix|TW>AfY_pAQyY05J-FDl__SDQ2OMyK z9C+Y?a?n8s$>70*<=}%4mO~CXL=HXlP&w?d!{qS850@j3I6{s*@<=)AsH5cQqmPzj zjyXn-J@!~R?zrRR_~Vb46HYimPCW5MIq9U6! zI77}n^GrGGth40ov(J`u&N)ZUJ@;HW@4WNm{PWM33of`oF1+wUx#*&c7jmP;xI(VH@=Cets;lJctFM-8uDM38z4ltU?z-#b`s=Tk8*aEk zZoKhEx#^~xEj2OfAp9(?dYdFY{s_(gQF-jK$K>(HAD1VdctW0h z@=1B>si)-Wr=ON*o_R)|efC*-?z!jW`RAXP7hZTlUVQOIdFiE>%P+tDBESCntNixcZ}R)^zsnzg{2_n- z`KSE#*I)AY-+#+L|NJBW{`;@|_uqfg+uJKchYoFB1UNzf0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009JwB+w&0R=V}S0`d+!A22k|sjz7pxrTL% zGbMcyKmY**5I_KdstR;}P1QKly@Q8rsOOL8bl1C~^F+>|>lB>Gr9gy@_0*K6yWu(! zQVkD6k6a08Dke=~b45ooX$3S@iPo@b*UWfR0^X-Dt!1JyxZBTKlXqS2^Bm_?Kx2Jm z5IU!*q!mpdg9_0;MYNUDD|Z6gDJN{ehW3W4P~F$|J_}{?o{?v*()J8>#J;q zg)Y2pi~JwCZC$t%Um$c7D%~NzCnF*W*pFuWC7$=k@|CW**5Vs1kvQoTU!W;X{WU4v z2Q8NPwu}f7s9pJ5zV1W!4pjNLO{aHg2q&lG2-NDz#arbni@J7;D~>RIy9&6-DMA-U zl*6v5oQNn8MVUU`1tK!j%}<~^D`%n$_{q}NMWFSmX>?$Eh6yyWTfEIC4txaauk?7i z7gkr%&-eNu)8sD@U6r131pKvW^$0Xcx&AdN(j2rHJ<#0s6-Z;v*dPI4ZW`MKYJjar zY>+1BVhLEN?b6)q5ODr65fvD#w!%9%K=~(29VO>!2&be+asdxEcO3!egQ*5B*T3X7 z7C5ru?QlE%+}Z+xcAQKpz)Qfe$5~2XhKCA-?Lei^hw9NGjX?c7l$9>9;Kir0Wo%S| z;614F*{Fi_OCwO_3JY9&8dSzc7YN*hs-CnzdFFGM=w+0sXC0VNq5U3Zi98vUK)_GG zqHV1YLK8SLB%wgF*joI}rivaUlw?>Ufr=Jcz_JrDGAN-yz(!Q_RNawx9|_AT&M+If znpM_y)o}pnt3sgbR#ftY3Q=Oj5vXLDbz5{CIQps)=(ZPCY*!;nlsE!atg|j_j>AS@ zRRUc$qk7G%K#3Dipn8?&zv6gm^j0O{zZ;cnRmDl1xB`_cHNOSNMWequ0l)pITAMme zBE=P`TCKU)+xY5*O~y~&;+9Uz{ta;VhE(#{Vx;&|7E`j}b@oaYooms_=oqC+z_k_C zJFI`_o~xg#T8bUVqOV@n)mLo4`im{b0ObO%?WkNWD#s*XY=H{bpJm0Y zLDV@CDUCqoo^~4xPGiPcbpjQwKXrgaN+(ds0!&B7Xq5t0EI^fh#7ZYn!TL)F#%Q$y zl`BBCd_+qtP_+VVc=739+QLyZzGC&KNR2Sc1S(a4%G3y?OrS~ys0@uj$^1dTfZQU!WBAr=N)#bO{u{0Qt_duG+{XZlOPasVAQa6O(8X zur7dwu0c&Mgw05x;LpGrDKU*Ufnpb+HWmVBBv9!3%gBgnGzt{70Bf&WdGD*SEV2u2 z?PM{Fkbm%zU6tsXskf;A7^H`<9q6iwjN=ye@|Up_)9Dc?=94d%KRwl8AZj5C(0~(D zY7!`70cxTktO0=n)}H|-rqm`-xB}EBL0}^SMJqrfNKC3tpkVc<&4Iv%1PWDvhK!h2 zqd<`gP$L7O4G9#e{tO8*tyY1;6rffGf*TVkN&)h<7h@%&apHn}5r(h5XsiLlp$qXv z7{f+PuTh`~&%hd&PiVse1*kv6LQJn!Aom5Rb@ge2TfhID-+`V+us$~L1(!^FvoO7`Yph@&NavNm%kVI&O44eT8*-z`&NaQL--(*_Z zx}Jqwi}4+kaicrM935w@5OF#WP{dKjx)mZ_Pm=k#Yi!GcCU$6Czd$FbyXkXIx~|{& zV>%_@`CEDB=g2ovvyJ{ZW^)Rfy)gOuCu+1c$kos}*HxsA#!xz;)3zn)+^Jo;LkDKx z!O1Q+x7ibf&FDkZd=?HHYvR0}H`pWr!N$>riOINL1G+V2%ZP_j%Y+FVf* z&e7Z8kaV*?9nCniUJ;h>{)8s8y!uS__=$W1d$MRn%(=eOxQT1) zpUhqTs3Z$ipGCZgMa8DAO3h{+F-cc9Yl&uaZp>bL1?x)7 z;9)Hh_p50`ILQI(31_?ld%Bc48=V2Ju>*7l*4xsacJzCm1?o*QLiFgFYw2la=scn$WUIW3!bK_1Eg)b))Ap>W zzVQl|k|30^+S9OhkFLhM37`XpSc#h3hk(TNpVGKT;h~i;FMLWhJqnw+@A8$eCPqNt zgfeQ3k!IwsPU<=@Cy|qh(b37<$Zd=~m3QrJ?38t5AL`sX7q9A-G+x)cX3%tKC+>M0 zk$yFrvh{>*ZE<6pt()}8Cy(IC&$^pM0VYp4V5D6WJ}XkwRClRQue|u`QPpG_7{zyM z14OeqroflBjk2J^W9 zv~7PT3+yt9m57~8GhGb_T_#uFtRZ#HuNqneI&ybn)@NyLb!*bR9XSaryR{yB?nU;b z{my|qSo65`a8{OhBaqJ&&8E}`9*o+Q>YsvBCz*YK2zwaADdYTAZeixXGcSUCqf3+x z$XH(ObnWYmvRr>WJFC_ON^O>Y(fspB(&`soQ(FTlNtX37jSX`4NmG{DhOK>7%~_Az z#cK0wclU9Q>j`IBeAa}{o7tqH=@Zf-$qQ0=I5%i2yC_l|2P!fnhw z^SXeeq}i>HD~zebZmGH3Te-Qmr`1^IBR50GvHPlNPNpNR$PLCet_>?NU1KTcX<|Pi zGq0R{Rs7P6(&ih?M5BMQCNjz8oc5#D^HM)Anbwo@-@xEjYXNQ7A(Ja=OSSRP&P{SA zVLWp;ojmQP?>6&_d|*0b&-~52J?&M$Ydr{?55&enF5Y%DH>R0XZ3~-k7Mt7IabS08 zj?T}4quQq3ypx|i&1aHNl#WUZXfSW+lR-XNeG;X~S0JF?Jg0nz(}+M~0sGqFDYGtj z>yvP?No;L;U~TL2xO-MkT`I1vxz;VG>E|&m)5TV_`JGbhb-x#J-6`67$hTku?z(e| z(YejhXXXV{CEe%(PPKL3Mvp;H1QH8$7M|UbI3NQNh$G-%fN>(w7lAYaofViS8e1NcWTi?g~s9is1;v7ibk={IQHcAhkgK`!KcdyQB_800a^VSeL*=0~v&X z3IWPbg(5K!KmY**5Qr$?`Ml3_H)0UFA%Fk^2q1s}0tg_000IagfB*srAbEMcIM?PM z>n|%Z!u_~=r-_dmY=`=9^r&wu~)*MIu^ki@{`&t1>-|K4009C72;3L=_2qs1=lvt> zK!5-N0t5*B5_tUJzIyWOMgJr~fB*pk1TG7_`q~~pzkHk*2@oJafB=Cnf#dJ&nO`vy zAV7cs0RkThocX+dwC1DJEha#K009C$1wQ(=e!93PsjLYQAV7e?TY*nMsh8Kkjl=>1 z1PBly&`03%_w@3MeQae)fB*pk1fB|9{)Ucv@o7{Z5+Fc;0D;;9qducU_Nh%RI|2j< z5Fqd^Fyy;Ae3S3+{6T;K0RjX{3Jm{r4&SgOyQByZAV8qG!0^xI)D4>#OZo%|5Fk)P zVCuJW_U1K8APWKn2oPu}F#8j^X8(qTlQIDU1PG)SSo3{cc}nVX2%Z1|0tA`}to$;r zKdVU*rAdGQ0Rrg+)_)VXoS3dI0wzF!0D-~+TRw%`4=r3!sSzMRfItd??VrN!0i-CC zAPEp4K%khw_Rn9a0E!h?Is^z1AP`m{)aNfwFk$N@FaiV!5GWuJ=X)19k^+U60s#U9 z2!s-d{MCyYTd490h5!Kq1d%)0~#5Fqd<@an$xoWN6o z#}@L0009C7E(komV?88rM&Lrfd4&K00tEgDoVjMLA@EkfKoKB7fWSurZ|_wL2z)B= zQ3qN~fB=Dp0-xTi))V+tpy60anE(L-Zv{TRORXnxS>SCqT0npRfj$D4?@})kxFgVK z#AHf<0D-3hcdk(H5*Q-zv@<;?@-3w(E} zKL`*YP)uO>g=s?qlLU&5o^%KhXf816s>L6R{8`8)DW0=N!ppf0)ZN1C<_7v z8VW49Ass(=C2ni6VC$RnM699ow z0`+EGMg$1N6bNCqN*MK$%-hA_VFQ#JMO$LV&<=D_3G}&?WJ;i+z_OdfK?DeVB+&3Wk}`p|0v}xt784*a zRiN!fB=I!@kKMcGT&ElhJl4e%0tD6z9M7p=34A2*Q3HRpv&EAHJ}Q~T1PF{3m^9b6 zZ6YwL8=G)NPIFW#?L&aTd4b4xg4hBIoNujbD+8w7Dx_;w^A-UD*92N!FOvOK;964+ zdF#_qtsg5eq=+^lK;W&w*vYk9YJs=ivVK8o&jP`(uecKlv=S(AOGx3qK-iwYpPC(p z2!!nrfe}b8Fl0P!l2;&j_vVEy8F}z-5gvhb0wpgBNu3c$(W_??v1YwMislg{f%pRJ zhu4YQ1>(2mcZA!m1aK_yT`7MMAaFt8c)t8vOyEL??0uz}f7NvMHi^>-7f9M>!X~gwAoxTJ@4mpU)*5o|{q*gyMPNwvZ9<^Dz?SiJ=o*0n-Ma?L zDf0vhG@%p-%oCV5dUoC@Ft1@2@4V5_(PIS`caGx-q!1W8Wp>*xkfQ6(2f5u-0AmHt zm)=SO9R$YCm)$lBlx)|Ho{pX>P_kVmMc`9`sZ(b2H3FX&J<<9#fKJ&ckf1eSzWq5N*TzM0Us`5UuybLtueGmhlwlFM$QU5#fkmS^H-Pfe4K!1_EmYI!tu2 z9M?2PkW-4)PC6e61ZhHH5SS1P%oH%x}_64{F!pr=(RA_EdomoiE2G0#hf&=63{|bl`ECcL2Rx zTj02J{7N8&KKY@7yD<{QSCk5t}JJHT3tt=z(Es&_a zg-YO$z<2lhBZz>`{1OOK3t=P`Fhm5h2qYb`l3{1*nFVo{tgoaN3oK|QNT zEogz=b``?8eFO@Oi4e%{pMEgw$5xZM#}P zV2D855!;pckgC<&WLG(yOW;_b-mJ+el)!QO`E{&7sM5y?W-PMZ2+Rtt)3$01+~k5M2b2J zlE6m-*{4$civ>RFE{jhJEG}Zk<4#IiMj)v`#;FwZdV!?v9XagvMND^M*L&0npXg&@z(%)Xw_yNpdwD7Yn@Y9}BJtEUsh50^Chsz0*kw}=W&r6V0&ym zTSC?a1h&tP08$GS7=bJ)r0$b>!DlI-I0^g_m^TY{ZY5x#RtmIgt@FvQEP=BKTo5?l z%vKUODR7|=y>dt3WL>%~yF=<-0+R%~jiG#33QTHR+a3t4tZ$;T4#fOKV5LB!sS#>k zft4-ote*mTduCGPKXLp`V7-;kS%G2rLumJaKa0D6p)< z9rRRSW9efa{Zz?A0y6|+j)16|2+U|{dwwL)q|?r)`H`N*1TF}i??x*LOcJ=zw_cec zFsZ&7x1GUjPXb>88OK4)g#}Dy5P`xy_GxNCDk6+B0-tuE^#m3Ol$oyri7Y60mLm#O zQwrM!vUIyRdkSnH5CQxW=-G$Avi@b_p9DS<_|;DSNg$xWM=fpf8i9a)vOc6W)J~}+ zu)a&3NZ_(SrO~UD%jJSrda+VLYO#({!GN*i3HZP zhf@gT6-YGBLcJr9v_-$DZWh|>1iA@) zG+!3i5J=SIHNXpJk*Jr1N+6U#;cG!^#{!}H@KrF!Dfo4lz^i(BPJqBkfnCGv+#muc z`()R$AWFjc7TDDZ&LvPx;CrV0(ODpDS9dN-sNBPLh`f? zU{?rsb@ z?JE{66L_qSCjHV9WjBPyz(T3Vb^F))OGGU101bU^fB;mI-XXJp@32z#V~QcZGup z5V$XJXV|?O3b1PI&|D1VJeaH_!5_M3X5&DRJ#t*nOx2;3A{Grvx$ zD)6@bswUnlueVjUfB=E>0H4;DB7rypg-2Uzvjw)d@$3Zczd&Gn7YTsCGJypH<%q%p%Nq5}L4}?B zq;{sz))2@m&}WuqI!PdA^G{0FwkrirZc=HY)D|XK*Kqe z@>qe{ExKm^u_ks~FR-RhoI>EH!1~c}Vljc69T@QSVg>4%PQbnr5`jMgJx5a3qXcTt z(I_SRY!s;7qOwaTuyGa~T|*#U&tD6;MzNY_ajo>;A}~;(`3y?`zQDk4OtjT~H#_VV zNYrdXEhezH^PQeupx8KENGE#*#ebpbULkNq6tK3 zbur`>h}O?R;>lZ3k$(#W=_O$l6Zmd0e-OAJP;49~rE>w+E1?7?HHK|_3WVxy!Q>L? zIWl*$&Q)L0J__8azIO?H2|PBHCj`z57^2Gp=aH?9DR8;;UhFIovzbMeMWFNS49q=C zxyAWPU|=)Ys=UCfF7lkfTY>V^u|C1K<`%>kSl>2IOe7G$fkhZrAW@$u4K-}(1$I&( zY2yidp1{e@v5de|fq9*2=U)O({XI-1@T;Ky*-#)+y9za?K*OntkaEms5Y>5s2wfzG z^#bQR#7Y8B1=csM6MqRjt&4|=1b!9NKMM;aYD=Mp6(~F)=~4^ZBmz4rkgnwf{E@)P zHn5Dqfxt&CXYopbgR1!{g}};gan=HX6kR9C-~tO8)e-jvf_IVd-U{6B0Xswxcw1-- z2pkJUXk#&aBye0%zs48%sN5Du6NuknA`C7Nt)<0tULbgD3Gc1I`C3~UMBr^rEg*0# z5TuiZaZ}*9%6^S6aI*otzDyu~FNrX+z_Lbl&@zF@{U)|E0?S&(K^FwhRL~j%2Lczm z&MS!o4odH*6atBwtx2dU+D4FJ1)7YBG`|GGHle^y3TWd90w;@Q8G)w)5qek*>jj=R zgNKO(*7uAP{|F>%5}^hZFh>Lewxy6h641lT1U{;Z#RQ%TENfQ>#TR(mAs!|Yh~HzW zBTUo@LJcdBdISVNPatf^3hcbVy!Pn1^LcqI3A_^MIXklcRNz(rc%DVz(~4XFD3GPr z;tVeE*jkj@@=pTS1hO=|I9~}|t9z@rUeS3@;JiSqk&)~gf%ENWWmthVt&;APu=NsH7J+m< zFW__nS!O|;uLRPy+`NEa5qVDFyuiHvv@?NU0_WS(%9sMb3fk?TF^eLqTms#uM!rD= za*c^-9|eLm(&8{49XuiMk-*}PbsT|5fsZ=Y;+O)DWi9z6CcdZ=36z`*N#zwtG&@3l zC6KrM&P4tyYtIRs5jfLh))3etaHfH+2`;dubEX~|99($81*SHq%?S(?2tG=}dn+)o z8TM}VHd6}-90=^~UZ)edAaKyneo7&5q3Cg5Ng*uAumW*9StJB52!x$1ft?q)Q1^|m zoX^Wj0*?Y4Ti4M9#tJ;PwMJF_xH&7)$z_+o;-+;Rfq(+Lrq8(p1s3$xz-VpNR$xJ+I)XqVfwoscrNk%o zTO}g7>=KyNoVF!UKw#HYI(MMJz&;!pm907p4D3l;5vVHA`HHBN`_2BWL?M@50ymq` z>jb(9>>5?)jup7jw_^jaTTg)tjpr2t1pWy0yfo@%eZHUTH$CL-)m0*`&=2>}8F1wzfcU@i;%X^G3P zdy&8&fq{36tq2e}7I5tlAVA>wmhdY90y6~MJOl{z6qs?J*pmQ(^8!6@9$6FUDRBN~ zu#y0Q*#bRpAz2gXBQX08u|EL;6(ximI?H^kz`7sw!pGW!$AZH z3=yb(Bgu|HZGj<|fK3Px*dkE-c9I=|k^)=q3WpLPFjk=C?IbAz^#sNazTF5A*e+1- znvxNLG6LK02LTWuFi)V&O(hWmH3a4jyPXLTh$c|u){+H*)B@42g`V*|wop$8SuYcK zY&lN|5Lh6vY{ngQAn;M45BBjBflmcK>OG4I5V$Gu>4aK8T;OH}zh567m(%?oQ$V=)%v7=vL7rX&{m+& zZBQ)J)E!%_7SeeXNZp@;CooUoaacUbB`~iymhGGiT(lnvEbAf%5lA8M(fC*#Ss+Ef zoe45Bve+&QoGHCE1Ud*@9wINs6e!lTF_A@eS)f>dN{7Iw0+(mUi@^mx?SvHTgPRNQ zyg-V66C{D*0_SJM%A^9rdnV3?Nh>1kp8|2(NhAao2>fh*f7cdR&`x`gs9nDD+3jr} zrxREsP=1gl_$aWZwYHz~n7Ah?1h#jM00_(zNHK$goFp)>uLABo$B*ee4oP{(2^ ztgODX2z)9~Y}}-?Mc~t}E4+S-zeAr26mB!A`skrHK3ELF{D<+U`Gz45ypx9X5 zPp4#+QzUi2c6K0eERbRl1ldI3xL4c$+NAoS(rnvo5}z#)s?P;O;9FpJ=O^9&+s7Yk z1d{fNu)_+h>074|xFZmDeD(%*ht#{D3hb@5(<=#l+I!X$*eFnG^akd#u_E1$9#}P7 z^%UqfGV-k<&~sW(W?iGi!LvA73(E-n5(wVd!Xxlj;8#og=TCvRdKTOi_^Iu00&fLw z_M6uUgc5k$@SPWgs#LvTI=7bGKN6_d{4yf&(FpWhtVt#b^lT?tpBI?ac(x@FMBw}^ zv|SmbQpLh(+fEWc7AV%|(jjmla6Ais{Sr9P^V2l}eMR7xz_mv57J<|Pzox)H9|cm^ zH(>CO!k+XL2-uuLBCt%L=hR=wdRaxvA9MlVE5!uLH@O4}oDnEC*YnajgK5oMfq4b8 zb0UGaePRKD4g!g0c5kR1nqhX1dn@SlI0Caf&He;Z2*er5;E|-LX7C_`msohq1cEoJ z@Cd9CST=Fl4_Z@>@~32P1M!a)DBtiBByb=wcA5(Bc3|kIj|2)giPSC&eAGe~6DT8a zd1U&$Sf$G?@-*HW3&*9mRHQ(gVBFEY>a3 zSt+oqX`M@8puozJNq5#jXIniLNY@eq4k+-nwLBycUm)N##R(~X`3giBr`#ebAW&c; zq|i#Bz|hS|p;Zs;O?F24>`CBDU~gkPoxocGbNW=^t(ye{1)i3`LjnT@2DYoM2#gXK z*x{A78pUg$lLD2RM=rqyPWGf_1ZE2apOjtU&1Sd%qrk3OJGZmIV;_1#V5LCk>3f>{ zN_=Pi6nI(=4+*Rh_}Pm7Ca^|eO>ZYUWevMio(d%D6QNcWc-omB5||-Sb%-wKH3Qk6 z=LIeo&Wi-b3Y>3RD+yc^7~8Q0cDu&tt$_jsx=0Ge1O~RZtqA-SC^ji~()r2a?~MX? zis)Se^8_{yg`-Of%RHs7l_u+TjIITXos-^TiU>(1nvlo9Ra&_5V+HCW!~*j=yW-j=`M+M6G%5}0^TLi zZ8V>Th*X9C=I(c5G&3hnn`tyozX96n)B2SsvHVUk4!hmOO zly~$Qfq*?DBm#E?&a}NXeFX0GQtEg6lsI*!se4TD1P%mJ52oNp2^@4t)t^Su*=K=3 z)h3h|fjc?Ggev^akWH1T^1VRan zokzP37YNlY$H5HG-G=c6j$6X71PGiIh(GK-BRpBYy~}!*M%G^fdmGQ`1d0i`RiX(5 zZ?I@w;#n*Zyg!9UAgRFOL3Z3Lfw2AaDqzoB354xWfe|Pm(CRXYnQXu=iU}pEEdl}i zQ%D5r32d2ehyE1U*i=8m@Hc^90vkKi(F9rv{2D#~+#)c$<+dc{(7Xb(8`Ay+2>cSr zdtFqD{8v#f|Fe>bT-FO*Zagm%AaGM){k%KzslZ2de7b{&1g;5u)O!{aATV6u+T?m` zhQMQSXPjbB0^b6UE$0aV0$T*Wr_vt;2y_tGa?d!F0D)tH4wsJ{33L`Xz5)D7fItv| z&exRO36vBFa<>SB0Dz%w<}A&1j+~myibHgfWS3@GWU{1 z2y_s*Hs;q!u{%vV1hNREyDJ1tfWSO~EEktJ2^0{RH^_D- zKp?L`fy+$_1cD3Xy&ptQfWR7o;Fp;22qYC)GrvwDK%js?(pyg01Y!ylxD%v6fWUfz zm=~I;2xJjhKeJ9GK%kgFmg`QO1VRZEy9cC0fWTgXQ1_c)2t*dxJE~46K%lTdT1bPYtxfO*$V1Yo-8J9Hy0`UbFT!4-suu&lX42qBd0RkH@Nk{G6Dn$R1&yw zTY81SSb<6dB^Lq&2z)9q_C~cEf%5{N_Nw&+2oR_$aQ^1BlE8g|s&gbS0t5(L7Px=4 z+JV4Zfy@2rMFIo}bP#xZi&{Y7fD1cnG)xMRIS;FZ9Tp0o)80tC7Vyt-69 zCvZ}r+sMe5009ES1y0_#mJ#?VFuV_KNPqx=wgNwISAP>Y7HB&r5+^`_z*K?byVtMH z1*Z0%%?S`7K;Vx+^KXsx9|epC0RjXFtQUB^jXmimu)gb@NPqwV0zU=1eRt&hN8o1< z_?rL$0tEI7_%`(s*xPANCqRGzfmZ^3zC=AUeN}hQ2@oJaAdW!KFI3^IUJ>m~fB*pksRi;Xv;AV7e?UV&&IyMXcREs)a*5FkLHwm`rSUxbiq7hQG)2oN9;N+80A zFGvib>LM5d1PBo5BM{^}xGRi4g_bD+0t5)e6xj6z+yJtshb009C8 z1V()>hwoFsRtf|N5FkL{jKJ`3=$#GE1Z)if0t5&Us3&me>v{j(dY&>OK!5-N0-p-p z|DJxd!>8d{Pk;ac0tCtneDo!~wz#~Z1PKrzK!CsiGq&+$2kY009C7h6tSh&OTi^BnF!hAV7csfzAR?zp%#-J9EjM009C72#ggt{^tJt zb?muzBS3%v0Rja62>kroKK@OK009C72oRVp;QKpU*!~0v5FkL{K;X}Z_+Wvb2oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXFloa^? DW$&PM diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p08_shape32alpha.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p08_shape32alpha.bmp deleted file mode 100644 index 4d1d25e9ff436183f32abf468cc48667ee16887c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1638538 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 diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p08_shape8.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p08_shape8.bmp deleted file mode 100644 index 920f9070ee08a5355fe5872e097f8b6d03107ecf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410678 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 J0wB;N@P87svs?fG diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p09_shape24.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p09_shape24.bmp deleted file mode 100644 index e5a7c0043d98f084f9d91d099bb33bddd47a01fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1228938 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 diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p09_shape32alpha.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p09_shape32alpha.bmp deleted file mode 100644 index 250d267d1491cad72a1c13c8eb0d43e07ce2adb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1638538 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 U0RjXF5FkK+009C72t*P1f6jE^6aWAK diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p09_shape8.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p09_shape8.bmp deleted file mode 100644 index 4d1cd014ec313dcbbef5ce5655084c4456b8ab69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410678 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 diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p10_shape1.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p10_shape1.bmp deleted file mode 100644 index 42b5a7f347490c85a373aaaf4dd23275b6eccd9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51346 zcmeI$u}#B306V-0>nc9D~jm;Dd*Vv=Zo{o z+}v(nhV9tQ$NPD%&vtVh#$A~E<;8B!Y51JOFzsL4i?5a2a`$-kwmq2-tJUiJ{Q32I zzUgQDzGwgGG#xD2f82Wl2_%p}0tqCLKmrLQkU#@BF0A z=9`!Mtq=D<_G(=2_i)++zAyJX_JNk`m;3d6OCi3_kA1A>XF}ZbV;`&enGpB<*vD#q zCd55I_OY6u331PleXQnZLfrFXAFKJ95cmAp$7+5i#63Uuv6`O=anFx^tmbDz-1B1} ztNED__x#w$YJMifJwNubnx6@A&yRhq=4V3O^J5>Y`I!*+{Mg58ekQ~{KlZVjp9yi# zkA1A>XF}ZbV;`&enGpB<*vD#qCd55I_OY6u331PleXQnZLfrFXAFKJ95cmAp$7+5i z#63Uuv6`O=anFx^tmbDz-1B1}tNED__x#w$YJMifJwNubnx6@A&yRhq=4V3O^J5>Y z`I!*+{Mg58ekQ~{KlZVjp9yi#kA1A>XF}ZbV;`&enGpB<*vD#qCd55I_OY6u331Pl zeXQnZLfrFXAFKJ95cmAp$7+5i#63Uuv6`O=anFx^tmbDz-1B1}tNED__x#w$YJMif zJwNubnx6@A&yRhq=4V3O^J5>Y`I!*+{Mg58ekQ~{KlZVjp9yi#kA1A>XF}ZbV;`&e znGpB<*vD#qCd55I_OY6u331PleXQnZLfrFXAFKJ95cmAp$7+5i#63Uuv6`O=anFx^ ztmbDz-1B1}tNED__x#w$YJMifJwNubnx6@A&yRhq=4V3O^J5>Y`I!*+{Mg58ekR0y u>9^+PR>$Rj(~0As_p{$qPauH=5=bC{1QJLffdmprAb|uDNFaef1U>+I;GfL^ diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p10_shape24.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p10_shape24.bmp deleted file mode 100644 index bc1faf4e7b4605ee27a376685706859529eda898..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1228938 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 E0oy;U=l}o! diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p10_shape8.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p10_shape8.bmp deleted file mode 100644 index 64fb5c372067554fc0d3d7f15fce0d17397a2591..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410678 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 b1-8Hz*aBN%3v7Wcum!fj7T5y+&jtPmU}+S4 diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p11_shape32alpha.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p11_shape32alpha.bmp deleted file mode 100644 index 406d20a815ee196b67353bc40614484a8c6d76c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1638538 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

Py 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�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 diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p12_shape24.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p12_shape24.bmp deleted file mode 100644 index 582cf994e2e21ad58919600c73b5546748e5300a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1228938 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 diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p12_shape8.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p12_shape8.bmp deleted file mode 100644 index 59377200bbd9ef2b390ac08cabebacbb7e55958b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410678 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 diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p13_shape24.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p13_shape24.bmp deleted file mode 100644 index 70215db590c7c6c1bac1becf7333d51d5649ff3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1228938 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 z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk v1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlykRtGZT`e)# diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p13_shape8.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p13_shape8.bmp deleted file mode 100644 index 822b896e1c7026fc5a62d33f604282bd9edbf337..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410678 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

+MX> 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 OAV7cs0RjYK3j9CtHj-oj diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p14_shape8.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p14_shape8.bmp deleted file mode 100644 index d6f981f58add4872ed72ccc2181b10ec4eea6101..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410678 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 z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk a1PBlyK!5-N0t5&UAV7cs0RjYW6Zk*>6Vn_3 diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p15_shape32alpha.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p15_shape32alpha.bmp deleted file mode 100644 index 6954a5d91c44dc333c5b4822f046d66858ffd919..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1638538 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 z=WY3??n$)oZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S=WY3??n$)oZT{Q)jm~ju+|6^! zA==l?XM3K=d1`#S=WY3??n$)oZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S=WY3??n$)o zZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S=WY3??n$)oZT{Q)jm~ju+|6^!A==l?XM3K= zd1`#S=WY3??n$)oZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S=WY3??n$)oZT{Q)jm~ju z+|6^!A==l?XM3K=d1`#S=WY3??n$)oZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S=WY3? z?n$)oZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S=WY3??n$)oZT{Q)jm~ju+|6^!A==l? zXM3K=d1`#S=WY3??n$)oZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S=WY3??n$)oZT{Q) zjm~ju+|6^!A==l?XM3K=d1`#S=WY3??n$)oZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S z=WY3??n$)oZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S=WY3??n$)oZT{Q)jm~ju+|6^! zA==l?XM3K=d1`#S=WY3??n$)oZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S=WY3??n$)o zZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S=WY3??n$)oZT{Q)jm~ju+|6^!A==l?XM3K= zd1`#S=WY3??n$)oZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S=WY3??n$)oZT{Q)jm~ju z+|6^!A==l?XM3K=d1`#S=WY3??n$)oZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S=WY3? z?n$)oZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S=WY3??n$)oZT{Q)jm~ju+|6^!A==l? zXM3K=d1`#S=WY3??n$)oZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S=WY3??n$)oZT{Q) zjm~ju+|6^!A==l?XM3K=d1`#S=WY3??n$)oZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S z=WY3??n$)oZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S=WY3??n$)oZT{Q)jm~ju+|6^! zA==l?XM3K=d1`#S=WY3??n$)oZT{Q)jm~ju+|6^!A==l?XM3K=d1`#S=WY3??n$)o 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 I_*Q}c0cCyzH2?qr diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/p16_shape8.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/p16_shape8.bmp deleted file mode 100644 index 0b4d4221c5c47a45ff8418f747c4fe98218a7b4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410678 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 XOuz(8zywUd1WdpLOuz(ok-&ceOT{Tx diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/trollface_24.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/trollface_24.bmp deleted file mode 100644 index e18c2c2ad129e2dfa612d0c4382bbc26fc21edd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196662 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�o2DBOY1($ca-Y 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 diff --git a/3rdparty/SDL-1.3.0-5387/test/shapes/trollface_32alpha.bmp b/3rdparty/SDL-1.3.0-5387/test/shapes/trollface_32alpha.bmp deleted file mode 100644 index ee3ecf9be4c95a7e76f338bf2c985d1d97054364..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262198 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 UQ0hRb1Emg>I#B9BXY0WK4>RWDjQ{`u diff --git a/3rdparty/SDL-1.3.0-5387/test/testalpha.c b/3rdparty/SDL-1.3.0-5387/test/testalpha.c deleted file mode 100644 index b869435f3b..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testalpha.c +++ /dev/null @@ -1,541 +0,0 @@ - -/* Simple program: Fill a colormap with gray and stripe it down the screen, - Then move an alpha valued sprite around the screen. - */ - -#include -#include -#include -#include - -#include "SDL.h" - -#define FRAME_TICKS (1000/30) /* 30 frames/second */ - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -/* Fill the screen with a gradient */ -static void -FillBackground(SDL_Surface * screen) -{ - Uint8 *buffer; - Uint8 gradient; - int i, k; - - /* Set the surface pixels and refresh! */ - if (SDL_LockSurface(screen) < 0) { - fprintf(stderr, "Couldn't lock the display surface: %s\n", - SDL_GetError()); - quit(2); - } - buffer = (Uint8 *) screen->pixels; - switch (screen->format->BytesPerPixel) { - case 1: - case 3: - for (i = 0; i < screen->h; ++i) { - memset(buffer, (i * 255) / screen->h, - screen->w * screen->format->BytesPerPixel); - buffer += screen->pitch; - } - break; - case 2: - for (i = 0; i < screen->h; ++i) { - Uint16 *buffer16; - Uint16 color; - - gradient = ((i * 255) / screen->h); - color = (Uint16) SDL_MapRGB(screen->format, - gradient, gradient, gradient); - buffer16 = (Uint16 *) buffer; - for (k = 0; k < screen->w; k++) { - *buffer16++ = color; - } - buffer += screen->pitch; - } - break; - case 4: - for (i = 0; i < screen->h; ++i) { - Uint32 *buffer32; - Uint32 color; - - gradient = ((i * 255) / screen->h); - color = SDL_MapRGB(screen->format, gradient, gradient, gradient); - buffer32 = (Uint32 *) buffer; - for (k = 0; k < screen->w; k++) { - *buffer32++ = color; - } - buffer += screen->pitch; - } - break; - } - - SDL_UnlockSurface(screen); - SDL_UpdateRect(screen, 0, 0, 0, 0); -} - -/* Create a "light" -- a yellowish surface with variable alpha */ -SDL_Surface * -CreateLight(int radius) -{ - Uint8 trans, alphamask; - int range, addition; - int xdist, ydist; - Uint16 x, y; - Uint16 skip; - Uint32 pixel; - SDL_Surface *light; - -#ifdef LIGHT_16BIT - Uint16 *buf; - - /* Create a 16 (4/4/4/4) bpp square with a full 4-bit alpha channel */ - /* Note: this isn't any faster than a 32 bit alpha surface */ - alphamask = 0x0000000F; - light = SDL_CreateRGBSurface(SDL_SWSURFACE, 2 * radius, 2 * radius, 16, - 0x0000F000, 0x00000F00, 0x000000F0, - alphamask); -#else - Uint32 *buf; - - /* Create a 32 (8/8/8/8) bpp square with a full 8-bit alpha channel */ - alphamask = 0x000000FF; - light = SDL_CreateRGBSurface(SDL_SWSURFACE, 2 * radius, 2 * radius, 32, - 0xFF000000, 0x00FF0000, 0x0000FF00, - alphamask); - if (light == NULL) { - fprintf(stderr, "Couldn't create light: %s\n", SDL_GetError()); - return (NULL); - } -#endif - - /* Fill with a light yellow-orange color */ - skip = light->pitch - (light->w * light->format->BytesPerPixel); -#ifdef LIGHT_16BIT - buf = (Uint16 *) light->pixels; -#else - buf = (Uint32 *) light->pixels; -#endif - /* Get a tranparent pixel value - we'll add alpha later */ - pixel = SDL_MapRGBA(light->format, 0xFF, 0xDD, 0x88, 0); - for (y = 0; y < light->h; ++y) { - for (x = 0; x < light->w; ++x) { - *buf++ = pixel; - } - buf += skip; /* Almost always 0, but just in case... */ - } - - /* Calculate alpha values for the surface. */ -#ifdef LIGHT_16BIT - buf = (Uint16 *) light->pixels; -#else - buf = (Uint32 *) light->pixels; -#endif - for (y = 0; y < light->h; ++y) { - for (x = 0; x < light->w; ++x) { - /* Slow distance formula (from center of light) */ - xdist = x - (light->w / 2); - ydist = y - (light->h / 2); - range = (int) sqrt(xdist * xdist + ydist * ydist); - - /* Scale distance to range of transparency (0-255) */ - if (range > radius) { - trans = alphamask; - } else { - /* Increasing transparency with distance */ - trans = (Uint8) ((range * alphamask) / radius); - - /* Lights are very transparent */ - addition = (alphamask + 1) / 8; - if ((int) trans + addition > alphamask) { - trans = alphamask; - } else { - trans += addition; - } - } - /* We set the alpha component as the right N bits */ - *buf++ |= (255 - trans); - } - buf += skip; /* Almost always 0, but just in case... */ - } - /* Enable RLE acceleration of this alpha surface */ - SDL_SetAlpha(light, SDL_SRCALPHA | SDL_RLEACCEL, 0); - - /* We're done! */ - return (light); -} - -static Uint32 flashes = 0; -static Uint32 flashtime = 0; - -void -FlashLight(SDL_Surface * screen, SDL_Surface * light, int x, int y) -{ - SDL_Rect position; - Uint32 ticks1; - Uint32 ticks2; - - /* Easy, center light */ - position.x = x - (light->w / 2); - position.y = y - (light->h / 2); - position.w = light->w; - position.h = light->h; - ticks1 = SDL_GetTicks(); - SDL_BlitSurface(light, NULL, screen, &position); - ticks2 = SDL_GetTicks(); - SDL_UpdateRects(screen, 1, &position); - ++flashes; - - /* Update time spend doing alpha blitting */ - flashtime += (ticks2 - ticks1); -} - -static int sprite_visible = 0; -static SDL_Surface *sprite; -static SDL_Surface *backing; -static SDL_Rect position; -static int x_vel, y_vel; -static int alpha_vel; - -int -LoadSprite(SDL_Surface * screen, char *file) -{ - SDL_Surface *converted; - - /* Load the sprite image */ - sprite = SDL_LoadBMP(file); - if (sprite == NULL) { - fprintf(stderr, "Couldn't load %s: %s", file, SDL_GetError()); - return (-1); - } - - /* Set transparent pixel as the pixel at (0,0) */ - if (sprite->format->palette) { - SDL_SetColorKey(sprite, SDL_SRCCOLORKEY, *(Uint8 *) sprite->pixels); - } - - /* Convert sprite to video format */ - converted = SDL_DisplayFormat(sprite); - SDL_FreeSurface(sprite); - if (converted == NULL) { - fprintf(stderr, "Couldn't convert background: %s\n", SDL_GetError()); - return (-1); - } - sprite = converted; - - /* Create the background */ - backing = SDL_CreateRGBSurface(SDL_SWSURFACE, sprite->w, sprite->h, 8, - 0, 0, 0, 0); - if (backing == NULL) { - fprintf(stderr, "Couldn't create background: %s\n", SDL_GetError()); - SDL_FreeSurface(sprite); - return (-1); - } - - /* Convert background to video format */ - converted = SDL_DisplayFormat(backing); - SDL_FreeSurface(backing); - if (converted == NULL) { - fprintf(stderr, "Couldn't convert background: %s\n", SDL_GetError()); - SDL_FreeSurface(sprite); - return (-1); - } - backing = converted; - - /* Set the initial position of the sprite */ - position.x = (screen->w - sprite->w) / 2; - position.y = (screen->h - sprite->h) / 2; - position.w = sprite->w; - position.h = sprite->h; - x_vel = 0; - y_vel = 0; - alpha_vel = 1; - - /* We're ready to roll. :) */ - return (0); -} - -void -AttractSprite(Uint16 x, Uint16 y) -{ - x_vel = ((int) x - position.x) / 10; - y_vel = ((int) y - position.y) / 10; -} - -void -MoveSprite(SDL_Surface * screen, SDL_Surface * light) -{ - SDL_Rect updates[2]; - Uint8 alpha; - - /* Erase the sprite if it was visible */ - if (sprite_visible) { - updates[0] = position; - SDL_BlitSurface(backing, NULL, screen, &updates[0]); - } else { - updates[0].x = 0; - updates[0].y = 0; - updates[0].w = 0; - updates[0].h = 0; - sprite_visible = 1; - } - - /* Since the sprite is off the screen, we can do other drawing - without being overwritten by the saved area behind the sprite. - */ - if (light != NULL) { - int x, y; - - SDL_GetMouseState(&x, &y); - FlashLight(screen, light, x, y); - } - - /* Move the sprite, bounce at the wall */ - position.x += x_vel; - if ((position.x < 0) || (position.x >= screen->w)) { - x_vel = -x_vel; - position.x += x_vel; - } - position.y += y_vel; - if ((position.y < 0) || (position.y >= screen->h)) { - y_vel = -y_vel; - position.y += y_vel; - } - - /* Update transparency (fade in and out) */ - SDL_GetSurfaceAlphaMod(sprite, &alpha); - if (((int) alpha + alpha_vel) < 0) { - alpha_vel = -alpha_vel; - } else if (((int) alpha + alpha_vel) > 255) { - alpha_vel = -alpha_vel; - } - SDL_SetAlpha(sprite, SDL_SRCALPHA, (Uint8) (alpha + alpha_vel)); - - /* Save the area behind the sprite */ - updates[1] = position; - SDL_BlitSurface(screen, &updates[1], backing, NULL); - - /* Blit the sprite onto the screen */ - updates[1] = position; - SDL_BlitSurface(sprite, NULL, screen, &updates[1]); - - /* Make it so! */ - SDL_UpdateRects(screen, 2, updates); -} - -int -main(int argc, char *argv[]) -{ - const SDL_VideoInfo *info; - SDL_Surface *screen; - int w, h; - Uint8 video_bpp; - Uint32 videoflags; - int i, done; - SDL_Event event; - SDL_Surface *light; - int mouse_pressed; - Uint32 ticks, lastticks; - - - /* Initialize SDL */ - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - - /* Alpha blending doesn't work well at 8-bit color */ -#ifdef _WIN32_WCE - /* Pocket PC */ - w = 240; - h = 320; -#else - w = 640; - h = 480; -#endif - info = SDL_GetVideoInfo(); - if (info->vfmt->BitsPerPixel > 8) { - video_bpp = info->vfmt->BitsPerPixel; - } else { - video_bpp = 16; - fprintf(stderr, "forced 16 bpp mode\n"); - } - videoflags = SDL_SWSURFACE; - for (i = 1; argv[i]; ++i) { - if (strcmp(argv[i], "-bpp") == 0) { - video_bpp = atoi(argv[++i]); - if (video_bpp <= 8) { - video_bpp = 16; - fprintf(stderr, "forced 16 bpp mode\n"); - } - } else if (strcmp(argv[i], "-hw") == 0) { - videoflags |= SDL_HWSURFACE; - } else if (strcmp(argv[i], "-warp") == 0) { - videoflags |= SDL_HWPALETTE; - } else if (strcmp(argv[i], "-width") == 0 && argv[i + 1]) { - w = atoi(argv[++i]); - } else if (strcmp(argv[i], "-height") == 0 && argv[i + 1]) { - h = atoi(argv[++i]); - } else if (strcmp(argv[i], "-resize") == 0) { - videoflags |= SDL_RESIZABLE; - } else if (strcmp(argv[i], "-noframe") == 0) { - videoflags |= SDL_NOFRAME; - } else if (strcmp(argv[i], "-fullscreen") == 0) { - videoflags |= SDL_FULLSCREEN; - } else { - fprintf(stderr, - "Usage: %s [-width N] [-height N] [-bpp N] [-warp] [-hw] [-fullscreen]\n", - argv[0]); - quit(1); - } - } - - /* Set video mode */ - if ((screen = SDL_SetVideoMode(w, h, video_bpp, videoflags)) == NULL) { - fprintf(stderr, "Couldn't set %dx%dx%d video mode: %s\n", - w, h, video_bpp, SDL_GetError()); - quit(2); - } - FillBackground(screen); - - /* Create the light */ - light = CreateLight(82); - if (light == NULL) { - quit(1); - } - - /* Load the sprite */ - if (LoadSprite(screen, "icon.bmp") < 0) { - SDL_FreeSurface(light); - quit(1); - } - - /* Print out information about our surfaces */ - printf("Screen is at %d bits per pixel\n", screen->format->BitsPerPixel); - if ((screen->flags & SDL_HWSURFACE) == SDL_HWSURFACE) { - printf("Screen is in video memory\n"); - } else { - printf("Screen is in system memory\n"); - } - if ((screen->flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF) { - printf("Screen has double-buffering enabled\n"); - } - if ((sprite->flags & SDL_HWSURFACE) == SDL_HWSURFACE) { - printf("Sprite is in video memory\n"); - } else { - printf("Sprite is in system memory\n"); - } - - /* Run a sample blit to trigger blit acceleration */ - MoveSprite(screen, NULL); - if ((sprite->flags & SDL_HWACCEL) == SDL_HWACCEL) { - printf("Sprite blit uses hardware alpha acceleration\n"); - } else { - printf("Sprite blit dosn't uses hardware alpha acceleration\n"); - } - - /* Set a clipping rectangle to clip the outside edge of the screen */ - { - SDL_Rect clip; - clip.x = 32; - clip.y = 32; - clip.w = screen->w - (2 * 32); - clip.h = screen->h - (2 * 32); - SDL_SetClipRect(screen, &clip); - } - - /* Wait for a keystroke */ - lastticks = SDL_GetTicks(); - done = 0; - mouse_pressed = 0; - while (!done) { - /* Update the frame -- move the sprite */ - if (mouse_pressed) { - MoveSprite(screen, light); - mouse_pressed = 0; - } else { - MoveSprite(screen, NULL); - } - - /* Slow down the loop to 30 frames/second */ - ticks = SDL_GetTicks(); - if ((ticks - lastticks) < FRAME_TICKS) { -#ifdef CHECK_SLEEP_GRANULARITY - fprintf(stderr, "Sleeping %d ticks\n", - FRAME_TICKS - (ticks - lastticks)); -#endif - SDL_Delay(FRAME_TICKS - (ticks - lastticks)); -#ifdef CHECK_SLEEP_GRANULARITY - fprintf(stderr, "Slept %d ticks\n", (SDL_GetTicks() - ticks)); -#endif - } - lastticks = ticks; - - /* Check for events */ - while (SDL_PollEvent(&event)) { - switch (event.type) { - case SDL_VIDEORESIZE: - screen = - SDL_SetVideoMode(event.resize.w, event.resize.h, - video_bpp, videoflags); - if (screen) { - FillBackground(screen); - } - break; - /* Attract sprite while mouse is held down */ - case SDL_MOUSEMOTION: - if (event.motion.state != 0) { - AttractSprite(event.motion.x, event.motion.y); - mouse_pressed = 1; - } - break; - case SDL_MOUSEBUTTONDOWN: - if (event.button.button == 1) { - AttractSprite(event.button.x, event.button.y); - mouse_pressed = 1; - } else { - SDL_Rect area; - - area.x = event.button.x - 16; - area.y = event.button.y - 16; - area.w = 32; - area.h = 32; - SDL_FillRect(screen, &area, - SDL_MapRGB(screen->format, 0, 0, 0)); - SDL_UpdateRects(screen, 1, &area); - } - break; - case SDL_KEYDOWN: - if (event.key.keysym.sym == SDLK_ESCAPE) { - done = 1; - } - if (event.key.keysym.sym == SDLK_RETURN) { - SDL_WM_ToggleFullScreen(screen); - } - break; - case SDL_QUIT: - done = 1; - break; - default: - break; - } - } - } - SDL_FreeSurface(light); - SDL_FreeSurface(sprite); - SDL_FreeSurface(backing); - - /* Print out some timing information */ - if (flashes > 0) { - printf("%d alpha blits, ~%4.4f ms per blit\n", - flashes, (float) flashtime / flashes); - } - - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testatomic.c b/3rdparty/SDL-1.3.0-5387/test/testatomic.c deleted file mode 100644 index 89bf09fc01..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testatomic.c +++ /dev/null @@ -1,703 +0,0 @@ -#include - -#include "SDL.h" -#include "SDL_atomic.h" -#include "SDL_assert.h" -#include "SDL_cpuinfo.h" - -/* - Absolutely basic tests just to see if we get the expected value - after calling each function. -*/ - -static -char * -tf(SDL_bool tf) -{ - static char *t = "TRUE"; - static char *f = "FALSE"; - - if (tf) - { - return t; - } - - return f; -} - -static -void RunBasicTest() -{ - int value; - SDL_SpinLock lock = 0; - - SDL_atomic_t v; - SDL_bool tfret = SDL_FALSE; - - printf("\nspin lock---------------------------------------\n\n"); - - SDL_AtomicLock(&lock); - printf("AtomicLock lock=%d\n", lock); - SDL_AtomicUnlock(&lock); - printf("AtomicUnlock lock=%d\n", lock); - - printf("\natomic -----------------------------------------\n\n"); - - SDL_AtomicSet(&v, 0); - tfret = SDL_AtomicSet(&v, 10) == 0; - printf("AtomicSet(10) tfret=%s val=%d\n", tf(tfret), SDL_AtomicGet(&v)); - tfret = SDL_AtomicAdd(&v, 10) == 10; - printf("AtomicAdd(10) tfret=%s val=%d\n", tf(tfret), SDL_AtomicGet(&v)); - - SDL_AtomicSet(&v, 0); - SDL_AtomicIncRef(&v); - tfret = (SDL_AtomicGet(&v) == 1); - printf("AtomicIncRef() tfret=%s val=%d\n", tf(tfret), SDL_AtomicGet(&v)); - SDL_AtomicIncRef(&v); - tfret = (SDL_AtomicGet(&v) == 2); - printf("AtomicIncRef() tfret=%s val=%d\n", tf(tfret), SDL_AtomicGet(&v)); - tfret = (SDL_AtomicDecRef(&v) == SDL_FALSE); - printf("AtomicDecRef() tfret=%s val=%d\n", tf(tfret), SDL_AtomicGet(&v)); - tfret = (SDL_AtomicDecRef(&v) == SDL_TRUE); - printf("AtomicDecRef() tfret=%s val=%d\n", tf(tfret), SDL_AtomicGet(&v)); - - SDL_AtomicSet(&v, 10); - tfret = (SDL_AtomicCAS(&v, 0, 20) == SDL_FALSE); - printf("AtomicCAS() tfret=%s val=%d\n", tf(tfret), SDL_AtomicGet(&v)); - value = SDL_AtomicGet(&v); - tfret = (SDL_AtomicCAS(&v, value, 20) == SDL_TRUE); - printf("AtomicCAS() tfret=%s val=%d\n", tf(tfret), SDL_AtomicGet(&v)); -} - -/**************************************************************************/ -/* Atomic operation test - * Adapted with permission from code by Michael Davidsaver at: - * http://bazaar.launchpad.net/~mdavidsaver/epics-base/atomic/revision/12105#src/libCom/test/epicsAtomicTest.c - * Original copyright 2010 Brookhaven Science Associates as operator of Brookhaven National Lab - * http://www.aps.anl.gov/epics/license/open.php - */ - -/* Tests semantics of atomic operations. Also a stress test - * to see if they are really atomic. - * - * Serveral threads adding to the same variable. - * at the end the value is compared with the expected - * and with a non-atomic counter. - */ - -/* Number of concurrent incrementers */ -#define NThreads 2 -#define CountInc 100 -#define VALBITS (sizeof(atomicValue)*8) - -#define atomicValue int -#define CountTo ((atomicValue)((unsigned int)(1<<(VALBITS-1))-1)) -#define NInter (CountTo/CountInc/NThreads) -#define Expect (CountTo-NInter*CountInc*NThreads) - -SDL_COMPILE_TIME_ASSERT(size, CountTo>0); /* check for rollover */ - -static SDL_atomic_t good = { 42 }; - -static atomicValue bad = 42; - -static SDL_atomic_t threadsRunning; - -static SDL_sem *threadDone; - -static -int adder(void* junk) -{ - unsigned long N=NInter; - printf("Thread subtracting %d %lu times\n",CountInc,N); - while (N--) { - SDL_AtomicAdd(&good, -CountInc); - bad-=CountInc; - } - SDL_AtomicAdd(&threadsRunning, -1); - SDL_SemPost(threadDone); - return 0; -} - -static -void runAdder(void) -{ - Uint32 start, end; - int T=NThreads; - - start = SDL_GetTicks(); - - threadDone = SDL_CreateSemaphore(0); - - SDL_AtomicSet(&threadsRunning, NThreads); - - while (T--) - SDL_CreateThread(adder, NULL); - - while (SDL_AtomicGet(&threadsRunning) > 0) - SDL_SemWait(threadDone); - - SDL_DestroySemaphore(threadDone); - - end = SDL_GetTicks(); - - printf("Finished in %f sec\n", (end - start) / 1000.f); -} - -static -void RunEpicTest() -{ - int b; - atomicValue v; - - printf("\nepic test---------------------------------------\n\n"); - - printf("Size asserted to be >= 32-bit\n"); - SDL_assert(sizeof(atomicValue)>=4); - - printf("Check static initializer\n"); - v=SDL_AtomicGet(&good); - SDL_assert(v==42); - - SDL_assert(bad==42); - - printf("Test negative values\n"); - SDL_AtomicSet(&good, -5); - v=SDL_AtomicGet(&good); - SDL_assert(v==-5); - - printf("Verify maximum value\n"); - SDL_AtomicSet(&good, CountTo); - v=SDL_AtomicGet(&good); - SDL_assert(v==CountTo); - - printf("Test compare and exchange\n"); - - b=SDL_AtomicCAS(&good, 500, 43); - SDL_assert(!b); /* no swap since CountTo!=500 */ - v=SDL_AtomicGet(&good); - SDL_assert(v==CountTo); /* ensure no swap */ - - b=SDL_AtomicCAS(&good, CountTo, 44); - SDL_assert(!!b); /* will swap */ - v=SDL_AtomicGet(&good); - SDL_assert(v==44); - - printf("Test Add\n"); - - v=SDL_AtomicAdd(&good, 1); - SDL_assert(v==44); - v=SDL_AtomicGet(&good); - SDL_assert(v==45); - - v=SDL_AtomicAdd(&good, 10); - SDL_assert(v==45); - v=SDL_AtomicGet(&good); - SDL_assert(v==55); - - printf("Test Add (Negative values)\n"); - - v=SDL_AtomicAdd(&good, -20); - SDL_assert(v==55); - v=SDL_AtomicGet(&good); - SDL_assert(v==35); - - v=SDL_AtomicAdd(&good, -50); /* crossing zero down */ - SDL_assert(v==35); - v=SDL_AtomicGet(&good); - SDL_assert(v==-15); - - v=SDL_AtomicAdd(&good, 30); /* crossing zero up */ - SDL_assert(v==-15); - v=SDL_AtomicGet(&good); - SDL_assert(v==15); - - printf("Reset before count down test\n"); - SDL_AtomicSet(&good, CountTo); - v=SDL_AtomicGet(&good); - SDL_assert(v==CountTo); - - bad=CountTo; - SDL_assert(bad==CountTo); - - printf("Counting down from %d, Expect %d remaining\n",CountTo,Expect); - runAdder(); - - v=SDL_AtomicGet(&good); - printf("Atomic %d Non-Atomic %d\n",v,bad); - SDL_assert(v==Expect); - SDL_assert(bad!=Expect); -} - -/* End atomic operation test */ -/**************************************************************************/ - -/**************************************************************************/ -/* Lock-free FIFO test */ - -/* This is useful to test the impact of another thread locking the queue - entirely for heavy-weight manipulation. - */ -#define TEST_SPINLOCK_FIFO - -#define NUM_READERS 4 -#define NUM_WRITERS 4 -#define EVENTS_PER_WRITER 1000000 - -/* The number of entries must be a power of 2 */ -#define MAX_ENTRIES 256 -#define WRAP_MASK (MAX_ENTRIES-1) - -typedef struct -{ - SDL_atomic_t sequence; - SDL_Event event; -} SDL_EventQueueEntry; - -typedef struct -{ - SDL_EventQueueEntry entries[MAX_ENTRIES]; - - char cache_pad1[SDL_CACHELINE_SIZE-((sizeof(SDL_EventQueueEntry)*MAX_ENTRIES)%SDL_CACHELINE_SIZE)]; - - SDL_atomic_t enqueue_pos; - - char cache_pad2[SDL_CACHELINE_SIZE-sizeof(SDL_atomic_t)]; - - SDL_atomic_t dequeue_pos; - - char cache_pad3[SDL_CACHELINE_SIZE-sizeof(SDL_atomic_t)]; - -#ifdef TEST_SPINLOCK_FIFO - SDL_SpinLock lock; - SDL_atomic_t rwcount; - SDL_atomic_t watcher; - - char cache_pad4[SDL_CACHELINE_SIZE-sizeof(SDL_SpinLock)-2*sizeof(SDL_atomic_t)]; -#endif - - volatile SDL_bool active; - - /* Only needed for the mutex test */ - SDL_mutex *mutex; - -} SDL_EventQueue; - -static void InitEventQueue(SDL_EventQueue *queue) -{ - int i; - - for (i = 0; i < MAX_ENTRIES; ++i) { - SDL_AtomicSet(&queue->entries[i].sequence, i); - } - SDL_AtomicSet(&queue->enqueue_pos, 0); - SDL_AtomicSet(&queue->dequeue_pos, 0); -#ifdef TEST_SPINLOCK_FIFO - queue->lock = 0; - SDL_AtomicSet(&queue->rwcount, 0); -#endif - queue->active = SDL_TRUE; -} - -static SDL_bool EnqueueEvent_LockFree(SDL_EventQueue *queue, const SDL_Event *event) -{ - SDL_EventQueueEntry *entry; - unsigned queue_pos; - unsigned entry_seq; - int delta; - SDL_bool status; - -#ifdef TEST_SPINLOCK_FIFO - /* This is a gate so an external thread can lock the queue */ - SDL_AtomicLock(&queue->lock); - SDL_assert(SDL_AtomicGet(&queue->watcher) == 0); - SDL_AtomicIncRef(&queue->rwcount); - SDL_AtomicUnlock(&queue->lock); -#endif - - queue_pos = (unsigned)SDL_AtomicGet(&queue->enqueue_pos); - for ( ; ; ) { - entry = &queue->entries[queue_pos & WRAP_MASK]; - entry_seq = (unsigned)SDL_AtomicGet(&entry->sequence); - - delta = (int)(entry_seq - queue_pos); - if (delta == 0) { - /* The entry and the queue position match, try to increment the queue position */ - if (SDL_AtomicCAS(&queue->enqueue_pos, (int)queue_pos, (int)(queue_pos+1))) { - /* We own the object, fill it! */ - entry->event = *event; - SDL_AtomicSet(&entry->sequence, (int)(queue_pos + 1)); - status = SDL_TRUE; - break; - } - } else if (delta < 0) { - /* We ran into an old queue entry, which means it still needs to be dequeued */ - status = SDL_FALSE; - break; - } else { - /* We ran into a new queue entry, get the new queue position */ - queue_pos = (unsigned)SDL_AtomicGet(&queue->enqueue_pos); - } - } - -#ifdef TEST_SPINLOCK_FIFO - SDL_AtomicDecRef(&queue->rwcount); -#endif - return status; -} - -static SDL_bool DequeueEvent_LockFree(SDL_EventQueue *queue, SDL_Event *event) -{ - SDL_EventQueueEntry *entry; - unsigned queue_pos; - unsigned entry_seq; - int delta; - SDL_bool status; - -#ifdef TEST_SPINLOCK_FIFO - /* This is a gate so an external thread can lock the queue */ - SDL_AtomicLock(&queue->lock); - SDL_assert(SDL_AtomicGet(&queue->watcher) == 0); - SDL_AtomicIncRef(&queue->rwcount); - SDL_AtomicUnlock(&queue->lock); -#endif - - queue_pos = (unsigned)SDL_AtomicGet(&queue->dequeue_pos); - for ( ; ; ) { - entry = &queue->entries[queue_pos & WRAP_MASK]; - entry_seq = (unsigned)SDL_AtomicGet(&entry->sequence); - - delta = (int)(entry_seq - (queue_pos + 1)); - if (delta == 0) { - /* The entry and the queue position match, try to increment the queue position */ - if (SDL_AtomicCAS(&queue->dequeue_pos, (int)queue_pos, (int)(queue_pos+1))) { - /* We own the object, fill it! */ - *event = entry->event; - SDL_AtomicSet(&entry->sequence, (int)(queue_pos+MAX_ENTRIES)); - status = SDL_TRUE; - break; - } - } else if (delta < 0) { - /* We ran into an old queue entry, which means we've hit empty */ - status = SDL_FALSE; - break; - } else { - /* We ran into a new queue entry, get the new queue position */ - queue_pos = (unsigned)SDL_AtomicGet(&queue->dequeue_pos); - } - } - -#ifdef TEST_SPINLOCK_FIFO - SDL_AtomicDecRef(&queue->rwcount); -#endif - return status; -} - -static SDL_bool EnqueueEvent_Mutex(SDL_EventQueue *queue, const SDL_Event *event) -{ - SDL_EventQueueEntry *entry; - unsigned queue_pos; - unsigned entry_seq; - int delta; - SDL_bool status = SDL_FALSE; - - SDL_mutexP(queue->mutex); - - queue_pos = (unsigned)queue->enqueue_pos.value; - entry = &queue->entries[queue_pos & WRAP_MASK]; - entry_seq = (unsigned)entry->sequence.value; - - delta = (int)(entry_seq - queue_pos); - if (delta == 0) { - ++queue->enqueue_pos.value; - - /* We own the object, fill it! */ - entry->event = *event; - entry->sequence.value = (int)(queue_pos + 1); - status = SDL_TRUE; - } else if (delta < 0) { - /* We ran into an old queue entry, which means it still needs to be dequeued */ - } else { - printf("ERROR: mutex failed!\n"); - } - - SDL_mutexV(queue->mutex); - - return status; -} - -static SDL_bool DequeueEvent_Mutex(SDL_EventQueue *queue, SDL_Event *event) -{ - SDL_EventQueueEntry *entry; - unsigned queue_pos; - unsigned entry_seq; - int delta; - SDL_bool status = SDL_FALSE; - - SDL_mutexP(queue->mutex); - - queue_pos = (unsigned)queue->dequeue_pos.value; - entry = &queue->entries[queue_pos & WRAP_MASK]; - entry_seq = (unsigned)entry->sequence.value; - - delta = (int)(entry_seq - (queue_pos + 1)); - if (delta == 0) { - ++queue->dequeue_pos.value; - - /* We own the object, fill it! */ - *event = entry->event; - entry->sequence.value = (int)(queue_pos + MAX_ENTRIES); - status = SDL_TRUE; - } else if (delta < 0) { - /* We ran into an old queue entry, which means we've hit empty */ - } else { - printf("ERROR: mutex failed!\n"); - } - - SDL_mutexV(queue->mutex); - - return status; -} - -static SDL_sem *writersDone; -static SDL_sem *readersDone; -static SDL_atomic_t writersRunning; -static SDL_atomic_t readersRunning; - -typedef struct -{ - SDL_EventQueue *queue; - int index; - char padding1[SDL_CACHELINE_SIZE-(sizeof(SDL_EventQueue*)+sizeof(int))%SDL_CACHELINE_SIZE]; - int waits; - SDL_bool lock_free; - char padding2[SDL_CACHELINE_SIZE-sizeof(int)-sizeof(SDL_bool)]; -} WriterData; - -typedef struct -{ - SDL_EventQueue *queue; - int counters[NUM_WRITERS]; - int waits; - SDL_bool lock_free; - char padding[SDL_CACHELINE_SIZE-(sizeof(SDL_EventQueue*)+sizeof(int)*NUM_WRITERS+sizeof(int)+sizeof(SDL_bool))%SDL_CACHELINE_SIZE]; -} ReaderData; - -static int FIFO_Writer(void* _data) -{ - WriterData *data = (WriterData *)_data; - SDL_EventQueue *queue = data->queue; - int index = data->index; - int i; - SDL_Event event; - - event.type = SDL_USEREVENT; - event.user.windowID = 0; - event.user.code = 0; - event.user.data1 = data; - event.user.data2 = NULL; - - if (data->lock_free) { - for (i = 0; i < EVENTS_PER_WRITER; ++i) { - event.user.code = i; - while (!EnqueueEvent_LockFree(queue, &event)) { - ++data->waits; - SDL_Delay(0); - } - } - } else { - for (i = 0; i < EVENTS_PER_WRITER; ++i) { - event.user.code = i; - while (!EnqueueEvent_Mutex(queue, &event)) { - ++data->waits; - SDL_Delay(0); - } - } - } - SDL_AtomicAdd(&writersRunning, -1); - SDL_SemPost(writersDone); - return 0; -} - -static int FIFO_Reader(void* _data) -{ - ReaderData *data = (ReaderData *)_data; - SDL_EventQueue *queue = data->queue; - SDL_Event event; - - if (data->lock_free) { - for ( ; ; ) { - if (DequeueEvent_LockFree(queue, &event)) { - WriterData *writer = (WriterData*)event.user.data1; - ++data->counters[writer->index]; - } else if (queue->active) { - ++data->waits; - SDL_Delay(0); - } else { - /* We drained the queue, we're done! */ - break; - } - } - } else { - for ( ; ; ) { - if (DequeueEvent_Mutex(queue, &event)) { - WriterData *writer = (WriterData*)event.user.data1; - ++data->counters[writer->index]; - } else if (queue->active) { - ++data->waits; - SDL_Delay(0); - } else { - /* We drained the queue, we're done! */ - break; - } - } - } - SDL_AtomicAdd(&readersRunning, -1); - SDL_SemPost(readersDone); - return 0; -} - -#ifdef TEST_SPINLOCK_FIFO -/* This thread periodically locks the queue for no particular reason */ -static int FIFO_Watcher(void* _data) -{ - SDL_EventQueue *queue = (SDL_EventQueue *)_data; - - while (queue->active) { - SDL_AtomicLock(&queue->lock); - SDL_AtomicIncRef(&queue->watcher); - while (SDL_AtomicGet(&queue->rwcount) > 0) { - SDL_Delay(0); - } - /* Do queue manipulation here... */ - SDL_AtomicDecRef(&queue->watcher); - SDL_AtomicUnlock(&queue->lock); - - /* Wait a bit... */ - SDL_Delay(1); - } - return 0; -} -#endif /* TEST_SPINLOCK_FIFO */ - -static void RunFIFOTest(SDL_bool lock_free) -{ - SDL_EventQueue queue; - WriterData writerData[NUM_WRITERS]; - ReaderData readerData[NUM_READERS]; - Uint32 start, end; - int i, j; - int grand_total; - - printf("\nFIFO test---------------------------------------\n\n"); - printf("Mode: %s\n", lock_free ? "LockFree" : "Mutex"); - - readersDone = SDL_CreateSemaphore(0); - writersDone = SDL_CreateSemaphore(0); - - SDL_memset(&queue, 0xff, sizeof(queue)); - - InitEventQueue(&queue); - if (!lock_free) { - queue.mutex = SDL_CreateMutex(); - } - - start = SDL_GetTicks(); - -#ifdef TEST_SPINLOCK_FIFO - /* Start a monitoring thread */ - if (lock_free) { - SDL_CreateThread(FIFO_Watcher, &queue); - } -#endif - - /* Start the readers first */ - printf("Starting %d readers\n", NUM_READERS); - SDL_zero(readerData); - SDL_AtomicSet(&readersRunning, NUM_READERS); - for (i = 0; i < NUM_READERS; ++i) { - readerData[i].queue = &queue; - readerData[i].lock_free = lock_free; - SDL_CreateThread(FIFO_Reader, &readerData[i]); - } - - /* Start up the writers */ - printf("Starting %d writers\n", NUM_WRITERS); - SDL_zero(writerData); - SDL_AtomicSet(&writersRunning, NUM_WRITERS); - for (i = 0; i < NUM_WRITERS; ++i) { - writerData[i].queue = &queue; - writerData[i].index = i; - writerData[i].lock_free = lock_free; - SDL_CreateThread(FIFO_Writer, &writerData[i]); - } - - /* Wait for the writers */ - while (SDL_AtomicGet(&writersRunning) > 0) { - SDL_SemWait(writersDone); - } - - /* Shut down the queue so readers exit */ - queue.active = SDL_FALSE; - - /* Wait for the readers */ - while (SDL_AtomicGet(&readersRunning) > 0) { - SDL_SemWait(readersDone); - } - - end = SDL_GetTicks(); - - SDL_DestroySemaphore(readersDone); - SDL_DestroySemaphore(writersDone); - - if (!lock_free) { - SDL_DestroyMutex(queue.mutex); - } - - printf("Finished in %f sec\n", (end - start) / 1000.f); - - printf("\n"); - for (i = 0; i < NUM_WRITERS; ++i) { - printf("Writer %d wrote %d events, had %d waits\n", i, EVENTS_PER_WRITER, writerData[i].waits); - } - printf("Writers wrote %d total events\n", NUM_WRITERS*EVENTS_PER_WRITER); - - /* Print a breakdown of which readers read messages from which writer */ - printf("\n"); - grand_total = 0; - for (i = 0; i < NUM_READERS; ++i) { - int total = 0; - for (j = 0; j < NUM_WRITERS; ++j) { - total += readerData[i].counters[j]; - } - grand_total += total; - printf("Reader %d read %d events, had %d waits\n", i, total, readerData[i].waits); - printf(" { "); - for (j = 0; j < NUM_WRITERS; ++j) { - if (j > 0) { - printf(", "); - } - printf("%d", readerData[i].counters[j]); - } - printf(" }\n"); - } - printf("Readers read %d total events\n", grand_total); -} - -/* End FIFO test */ -/**************************************************************************/ - -int -main(int argc, char *argv[]) -{ - RunBasicTest(); - RunEpicTest(); -/* This test is really slow, so don't run it by default */ -#if 0 - RunFIFOTest(SDL_FALSE); -#endif - RunFIFOTest(SDL_TRUE); - return 0; -} - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/3rdparty/SDL-1.3.0-5387/test/testaudioinfo.c b/3rdparty/SDL-1.3.0-5387/test/testaudioinfo.c deleted file mode 100644 index 0289577aca..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testaudioinfo.c +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include "SDL.h" - -static void -print_devices(int iscapture) -{ - const char *typestr = ((iscapture) ? "capture" : "output"); - int n = SDL_GetNumAudioDevices(iscapture); - - printf("%s devices:\n", typestr); - - if (n == -1) - printf(" Driver can't detect specific devices.\n\n", typestr); - else if (n == 0) - printf(" No %s devices found.\n\n", typestr); - else { - int i; - for (i = 0; i < n; i++) { - printf(" %s\n", SDL_GetAudioDeviceName(i, iscapture)); - } - printf("\n"); - } -} - -int -main(int argc, char **argv) -{ - /* Load the SDL library */ - if (SDL_Init(SDL_INIT_AUDIO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - - /* Print available audio drivers */ - int n = SDL_GetNumAudioDrivers(); - if (n == 0) { - printf("No built-in audio drivers\n\n"); - } else { - int i; - printf("Built-in audio drivers:\n"); - for (i = 0; i < n; ++i) { - printf(" %s\n", SDL_GetAudioDriver(i)); - } - printf("\n"); - } - - printf("Using audio driver: %s\n\n", SDL_GetCurrentAudioDriver()); - - print_devices(0); - print_devices(1); - - SDL_Quit(); - return 0; -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testbitmap.c b/3rdparty/SDL-1.3.0-5387/test/testbitmap.c deleted file mode 100644 index 78b79a77f0..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testbitmap.c +++ /dev/null @@ -1,192 +0,0 @@ - -/* Simple program: Test bitmap blits */ - -#include -#include -#include - -#include "SDL.h" -#include "picture.xbm" - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -SDL_Surface * -LoadXBM(SDL_Surface * screen, int w, int h, Uint8 * bits) -{ - SDL_Surface *bitmap; - Uint8 *line; - - /* Allocate the bitmap */ - bitmap = SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, 1, 0, 0, 0, 0); - if (bitmap == NULL) { - fprintf(stderr, "Couldn't allocate bitmap: %s\n", SDL_GetError()); - return (NULL); - } - - /* Copy the pixels */ - line = (Uint8 *) bitmap->pixels; - w = (w + 7) / 8; - while (h--) { - memcpy(line, bits, w); - /* X11 Bitmap images have the bits reversed */ - { - int i, j; - Uint8 *buf, byte; - for (buf = line, i = 0; i < w; ++i, ++buf) { - byte = *buf; - *buf = 0; - for (j = 7; j >= 0; --j) { - *buf |= (byte & 0x01) << j; - byte >>= 1; - } - } - } - line += bitmap->pitch; - bits += w; - } - return (bitmap); -} - -int -main(int argc, char *argv[]) -{ - SDL_Surface *screen; - SDL_Surface *bitmap; - Uint8 video_bpp; - Uint32 videoflags; - Uint8 *buffer; - int i, k, done; - SDL_Event event; - Uint16 *buffer16; - Uint16 color; - Uint8 gradient; - SDL_Color palette[256]; - - int video_w, video_h; - - /* Initialize SDL */ - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - - video_bpp = 0; - videoflags = SDL_SWSURFACE; - while (argc > 1) { - --argc; - if (strcmp(argv[argc - 1], "-bpp") == 0) { - video_bpp = atoi(argv[argc]); - --argc; - } else if (strcmp(argv[argc], "-warp") == 0) { - videoflags |= SDL_HWPALETTE; - } else if (strcmp(argv[argc], "-hw") == 0) { - videoflags |= SDL_HWSURFACE; - } else if (strcmp(argv[argc], "-fullscreen") == 0) { - videoflags |= SDL_FULLSCREEN; - } else { - fprintf(stderr, - "Usage: %s [-bpp N] [-warp] [-hw] [-fullscreen]\n", - argv[0]); - quit(1); - } - } - -#ifdef __IPHONEOS__ - video_w = 320; - video_h = 480; -#else - video_w = 640; - video_h = 480; -#endif - - /* Set 640x480 video mode */ - if ((screen = - SDL_SetVideoMode(video_w, video_h, video_bpp, videoflags)) == NULL) { - fprintf(stderr, "Couldn't set %dx%d %d video mode: %s\n", video_w, - video_h, video_bpp, SDL_GetError()); - quit(2); - } - - if (video_bpp == 8) { - /* Set a gray colormap, reverse order from white to black */ - for (i = 0; i < 256; ++i) { - palette[i].r = 255 - i; - palette[i].g = 255 - i; - palette[i].b = 255 - i; - } - SDL_SetColors(screen, palette, 0, 256); - } - - /* Set the surface pixels and refresh! */ - if (SDL_LockSurface(screen) < 0) { - fprintf(stderr, "Couldn't lock the display surface: %s\n", - SDL_GetError()); - quit(2); - } - buffer = (Uint8 *) screen->pixels; - if (screen->format->BytesPerPixel != 2) { - for (i = 0; i < screen->h; ++i) { - memset(buffer, (i * 255) / screen->h, screen->pitch); - buffer += screen->pitch; - } - } else { - for (i = 0; i < screen->h; ++i) { - gradient = ((i * 255) / screen->h); - color = SDL_MapRGB(screen->format, gradient, gradient, gradient); - buffer16 = (Uint16 *) buffer; - for (k = 0; k < screen->w; k++) { - *(buffer16 + k) = color; - } - buffer += screen->pitch; - } - } - SDL_UnlockSurface(screen); - SDL_UpdateRect(screen, 0, 0, 0, 0); - - /* Load the bitmap */ - bitmap = LoadXBM(screen, picture_width, picture_height, - (Uint8 *) picture_bits); - if (bitmap == NULL) { - quit(1); - } - - /* Wait for a keystroke */ - done = 0; - while (!done) { - /* Check for events */ - while (SDL_PollEvent(&event)) { - switch (event.type) { - case SDL_MOUSEBUTTONDOWN: - { - SDL_Rect dst; - - dst.x = event.button.x - bitmap->w / 2; - dst.y = event.button.y - bitmap->h / 2; - dst.w = bitmap->w; - dst.h = bitmap->h; - SDL_BlitSurface(bitmap, NULL, screen, &dst); - SDL_UpdateRects(screen, 1, &dst); - } - break; - case SDL_KEYDOWN: - /* Any key press quits the app... */ - done = 1; - break; - case SDL_QUIT: - done = 1; - break; - default: - break; - } - } - } - SDL_FreeSurface(bitmap); - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testblitspeed.c b/3rdparty/SDL-1.3.0-5387/test/testblitspeed.c deleted file mode 100644 index e365f3aba4..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testblitspeed.c +++ /dev/null @@ -1,422 +0,0 @@ -/* - * Benchmarks surface-to-surface blits in various formats. - * - * Written by Ryan C. Gordon. - */ - -#include -#include -#include - -#include "SDL.h" - -static SDL_Surface *dest = NULL; -static SDL_Surface *src = NULL; -static int testSeconds = 10; - - -static int -percent(int val, int total) -{ - return ((int) ((((float) val) / ((float) total)) * 100.0f)); -} - -static int -randRange(int lo, int hi) -{ - return (lo + (int) (((double) hi) * rand() / (RAND_MAX + 1.0))); -} - -static void -copy_trunc_str(char *str, size_t strsize, const char *flagstr) -{ - if ((strlen(str) + strlen(flagstr)) >= (strsize - 1)) - strcpy(str + (strsize - 5), " ..."); - else - strcat(str, flagstr); -} - -static void -__append_sdl_surface_flag(SDL_Surface * _surface, char *str, - size_t strsize, Uint32 flag, const char *flagstr) -{ - if (_surface->flags & flag) - copy_trunc_str(str, strsize, flagstr); -} - - -#define append_sdl_surface_flag(a, b, c, fl) __append_sdl_surface_flag(a, b, c, fl, " " #fl) -#define print_tf_state(str, val) printf("%s: {%s}\n", str, (val) ? "true" : "false" ) - -static void -output_videoinfo_details(void) -{ - const SDL_VideoInfo *info = SDL_GetVideoInfo(); - printf("SDL_GetVideoInfo():\n"); - if (info == NULL) - printf(" (null.)\n"); - else { - print_tf_state(" hardware surface available", info->hw_available); - print_tf_state(" window manager available", info->wm_available); - print_tf_state(" accelerated hardware->hardware blits", - info->blit_hw); - print_tf_state(" accelerated hardware->hardware colorkey blits", - info->blit_hw_CC); - print_tf_state(" accelerated hardware->hardware alpha blits", - info->blit_hw_A); - print_tf_state(" accelerated software->hardware blits", - info->blit_sw); - print_tf_state(" accelerated software->hardware colorkey blits", - info->blit_sw_CC); - print_tf_state(" accelerated software->hardware alpha blits", - info->blit_sw_A); - print_tf_state(" accelerated color fills", info->blit_fill); - printf(" video memory: (%d)\n", info->video_mem); - } - - printf("\n"); -} - -static void -output_surface_details(const char *name, SDL_Surface * surface) -{ - printf("Details for %s:\n", name); - - if (surface == NULL) { - printf("-WARNING- You've got a NULL surface!"); - } else { - char f[256]; - printf(" width : %d\n", surface->w); - printf(" height : %d\n", surface->h); - printf(" depth : %d bits per pixel\n", - surface->format->BitsPerPixel); - printf(" pitch : %d\n", (int) surface->pitch); - - printf(" red bits : 0x%08X mask, %d shift, %d loss\n", - (int) surface->format->Rmask, - (int) surface->format->Rshift, (int) surface->format->Rloss); - printf(" green bits : 0x%08X mask, %d shift, %d loss\n", - (int) surface->format->Gmask, - (int) surface->format->Gshift, (int) surface->format->Gloss); - printf(" blue bits : 0x%08X mask, %d shift, %d loss\n", - (int) surface->format->Bmask, - (int) surface->format->Bshift, (int) surface->format->Bloss); - printf(" alpha bits : 0x%08X mask, %d shift, %d loss\n", - (int) surface->format->Amask, - (int) surface->format->Ashift, (int) surface->format->Aloss); - - f[0] = '\0'; - - /*append_sdl_surface_flag(surface, f, sizeof (f), SDL_SWSURFACE); */ - if ((surface->flags & SDL_HWSURFACE) == 0) - copy_trunc_str(f, sizeof(f), " SDL_SWSURFACE"); - - append_sdl_surface_flag(surface, f, sizeof(f), SDL_HWSURFACE); - append_sdl_surface_flag(surface, f, sizeof(f), SDL_ASYNCBLIT); - append_sdl_surface_flag(surface, f, sizeof(f), SDL_ANYFORMAT); - append_sdl_surface_flag(surface, f, sizeof(f), SDL_HWPALETTE); - append_sdl_surface_flag(surface, f, sizeof(f), SDL_DOUBLEBUF); - append_sdl_surface_flag(surface, f, sizeof(f), SDL_FULLSCREEN); - append_sdl_surface_flag(surface, f, sizeof(f), SDL_OPENGL); - append_sdl_surface_flag(surface, f, sizeof(f), SDL_RESIZABLE); - append_sdl_surface_flag(surface, f, sizeof(f), SDL_NOFRAME); - append_sdl_surface_flag(surface, f, sizeof(f), SDL_HWACCEL); - append_sdl_surface_flag(surface, f, sizeof(f), SDL_SRCCOLORKEY); - append_sdl_surface_flag(surface, f, sizeof(f), SDL_RLEACCELOK); - append_sdl_surface_flag(surface, f, sizeof(f), SDL_RLEACCEL); - append_sdl_surface_flag(surface, f, sizeof(f), SDL_SRCALPHA); - append_sdl_surface_flag(surface, f, sizeof(f), SDL_PREALLOC); - - if (f[0] == '\0') - strcpy(f, " (none)"); - - printf(" flags :%s\n", f); - } - - printf("\n"); -} - -static void -output_details(void) -{ - output_videoinfo_details(); - output_surface_details("Source Surface", src); - output_surface_details("Destination Surface", dest); -} - -static Uint32 -blit(SDL_Surface * dst, SDL_Surface * src, int x, int y) -{ - Uint32 start = 0; - SDL_Rect srcRect; - SDL_Rect dstRect; - - srcRect.x = 0; - srcRect.y = 0; - dstRect.x = x; - dstRect.y = y; - dstRect.w = srcRect.w = src->w; /* SDL will clip as appropriate. */ - dstRect.h = srcRect.h = src->h; - - start = SDL_GetTicks(); - SDL_BlitSurface(src, &srcRect, dst, &dstRect); - return (SDL_GetTicks() - start); -} - -static void -blitCentered(SDL_Surface * dst, SDL_Surface * src) -{ - int x = (dst->w - src->w) / 2; - int y = (dst->h - src->h) / 2; - blit(dst, src, x, y); -} - -static int -atoi_hex(const char *str) -{ - if (str == NULL) - return 0; - - if (strlen(str) > 2) { - int retval = 0; - if ((str[0] == '0') && (str[1] == 'x')) - sscanf(str + 2, "%X", &retval); - return (retval); - } - - return (atoi(str)); -} - - -static int -setup_test(int argc, char **argv) -{ - const char *dumpfile = NULL; - SDL_Surface *bmp = NULL; - Uint32 dstbpp = 32; - Uint32 dstrmask = 0x00FF0000; - Uint32 dstgmask = 0x0000FF00; - Uint32 dstbmask = 0x000000FF; - Uint32 dstamask = 0x00000000; - Uint32 dstflags = 0; - int dstw = 640; - int dsth = 480; - Uint32 srcbpp = 32; - Uint32 srcrmask = 0x00FF0000; - Uint32 srcgmask = 0x0000FF00; - Uint32 srcbmask = 0x000000FF; - Uint32 srcamask = 0x00000000; - Uint32 srcflags = 0; - int srcw = 640; - int srch = 480; - Uint32 origsrcalphaflags = 0; - Uint32 origdstalphaflags = 0; - Uint32 srcalphaflags = 0; - Uint32 dstalphaflags = 0; - Uint8 origsrcalpha = 255; - Uint8 origdstalpha = 255; - Uint8 srcalpha = 255; - Uint8 dstalpha = 255; - int screenSurface = 0; - int i = 0; - - for (i = 1; i < argc; i++) { - const char *arg = argv[i]; - - if (strcmp(arg, "--dstbpp") == 0) - dstbpp = atoi(argv[++i]); - else if (strcmp(arg, "--dstrmask") == 0) - dstrmask = atoi_hex(argv[++i]); - else if (strcmp(arg, "--dstgmask") == 0) - dstgmask = atoi_hex(argv[++i]); - else if (strcmp(arg, "--dstbmask") == 0) - dstbmask = atoi_hex(argv[++i]); - else if (strcmp(arg, "--dstamask") == 0) - dstamask = atoi_hex(argv[++i]); - else if (strcmp(arg, "--dstwidth") == 0) - dstw = atoi(argv[++i]); - else if (strcmp(arg, "--dstheight") == 0) - dsth = atoi(argv[++i]); - else if (strcmp(arg, "--dsthwsurface") == 0) - dstflags |= SDL_HWSURFACE; - else if (strcmp(arg, "--srcbpp") == 0) - srcbpp = atoi(argv[++i]); - else if (strcmp(arg, "--srcrmask") == 0) - srcrmask = atoi_hex(argv[++i]); - else if (strcmp(arg, "--srcgmask") == 0) - srcgmask = atoi_hex(argv[++i]); - else if (strcmp(arg, "--srcbmask") == 0) - srcbmask = atoi_hex(argv[++i]); - else if (strcmp(arg, "--srcamask") == 0) - srcamask = atoi_hex(argv[++i]); - else if (strcmp(arg, "--srcwidth") == 0) - srcw = atoi(argv[++i]); - else if (strcmp(arg, "--srcheight") == 0) - srch = atoi(argv[++i]); - else if (strcmp(arg, "--srchwsurface") == 0) - srcflags |= SDL_HWSURFACE; - else if (strcmp(arg, "--seconds") == 0) - testSeconds = atoi(argv[++i]); - else if (strcmp(arg, "--screen") == 0) - screenSurface = 1; - else if (strcmp(arg, "--dumpfile") == 0) - dumpfile = argv[++i]; - /* !!! FIXME: set colorkey. */ - else if (0) { /* !!! FIXME: we handle some commandlines elsewhere now */ - fprintf(stderr, "Unknown commandline option: %s\n", arg); - return (0); - } - } - - if (SDL_Init(SDL_INIT_VIDEO) == -1) { - fprintf(stderr, "SDL_Init failed: %s\n", SDL_GetError()); - return (0); - } - - bmp = SDL_LoadBMP("sample.bmp"); - if (bmp == NULL) { - fprintf(stderr, "SDL_LoadBMP failed: %s\n", SDL_GetError()); - SDL_Quit(); - return (0); - } - - if ((dstflags & SDL_HWSURFACE) == 0) - dstflags |= SDL_SWSURFACE; - if ((srcflags & SDL_HWSURFACE) == 0) - srcflags |= SDL_SWSURFACE; - - if (screenSurface) - dest = SDL_SetVideoMode(dstw, dsth, dstbpp, dstflags); - else { - dest = SDL_CreateRGBSurface(dstflags, dstw, dsth, dstbpp, - dstrmask, dstgmask, dstbmask, dstamask); - } - - if (dest == NULL) { - fprintf(stderr, "dest surface creation failed: %s\n", SDL_GetError()); - SDL_Quit(); - return (0); - } - - src = SDL_CreateRGBSurface(srcflags, srcw, srch, srcbpp, - srcrmask, srcgmask, srcbmask, srcamask); - if (src == NULL) { - fprintf(stderr, "src surface creation failed: %s\n", SDL_GetError()); - SDL_Quit(); - return (0); - } - - /* handle alpha settings... */ - srcalphaflags = (src->flags & SDL_SRCALPHA) | (src->flags & SDL_RLEACCEL); - dstalphaflags = - (dest->flags & SDL_SRCALPHA) | (dest->flags & SDL_RLEACCEL); - origsrcalphaflags = srcalphaflags; - origdstalphaflags = dstalphaflags; - SDL_GetSurfaceAlphaMod(src, &srcalpha); - SDL_GetSurfaceAlphaMod(dest, &dstalpha); - origsrcalpha = srcalpha; - origdstalpha = dstalpha; - for (i = 1; i < argc; i++) { - const char *arg = argv[i]; - - if (strcmp(arg, "--srcalpha") == 0) - srcalpha = atoi(argv[++i]); - else if (strcmp(arg, "--dstalpha") == 0) - dstalpha = atoi(argv[++i]); - else if (strcmp(arg, "--srcsrcalpha") == 0) - srcalphaflags |= SDL_SRCALPHA; - else if (strcmp(arg, "--srcnosrcalpha") == 0) - srcalphaflags &= ~SDL_SRCALPHA; - else if (strcmp(arg, "--srcrleaccel") == 0) - srcalphaflags |= SDL_RLEACCEL; - else if (strcmp(arg, "--srcnorleaccel") == 0) - srcalphaflags &= ~SDL_RLEACCEL; - else if (strcmp(arg, "--dstsrcalpha") == 0) - dstalphaflags |= SDL_SRCALPHA; - else if (strcmp(arg, "--dstnosrcalpha") == 0) - dstalphaflags &= ~SDL_SRCALPHA; - else if (strcmp(arg, "--dstrleaccel") == 0) - dstalphaflags |= SDL_RLEACCEL; - else if (strcmp(arg, "--dstnorleaccel") == 0) - dstalphaflags &= ~SDL_RLEACCEL; - } - if ((dstalphaflags != origdstalphaflags) || (origdstalpha != dstalpha)) - SDL_SetAlpha(dest, dstalphaflags, dstalpha); - if ((srcalphaflags != origsrcalphaflags) || (origsrcalpha != srcalpha)) - SDL_SetAlpha(src, srcalphaflags, srcalpha); - - /* set some sane defaults so we can see if the blit code is broken... */ - SDL_FillRect(dest, NULL, SDL_MapRGB(dest->format, 0, 0, 0)); - SDL_FillRect(src, NULL, SDL_MapRGB(src->format, 0, 0, 0)); - - blitCentered(src, bmp); - SDL_FreeSurface(bmp); - - if (dumpfile) - SDL_SaveBMP(src, dumpfile); /* make sure initial convert is sane. */ - - output_details(); - - return (1); -} - - -static void -test_blit_speed(void) -{ - Uint32 clearColor = SDL_MapRGB(dest->format, 0, 0, 0); - Uint32 iterations = 0; - Uint32 elasped = 0; - Uint32 end = 0; - Uint32 now = 0; - Uint32 last = 0; - int testms = testSeconds * 1000; - int wmax = (dest->w - src->w); - int hmax = (dest->h - src->h); - int isScreen = (SDL_GetVideoSurface() == dest); - SDL_Event event; - - printf("Testing blit speed for %d seconds...\n", testSeconds); - - now = SDL_GetTicks(); - end = now + testms; - - do { - /* pump the event queue occasionally to keep OS happy... */ - if (now - last > 1000) { - last = now; - while (SDL_PollEvent(&event)) { /* no-op. */ - } - } - - iterations++; - elasped += blit(dest, src, randRange(0, wmax), randRange(0, hmax)); - if (isScreen) { - SDL_Flip(dest); /* show it! */ - SDL_FillRect(dest, NULL, clearColor); /* blank it for next time! */ - } - - now = SDL_GetTicks(); - } while (now < end); - - printf("Non-blitting crap accounted for %d percent of this run.\n", - percent(testms - elasped, testms)); - - printf("%d blits took %d ms (%d fps).\n", - (int) iterations, - (int) elasped, - (int) (((float) iterations) / (((float) elasped) / 1000.0f))); -} - -int -main(int argc, char **argv) -{ - int initialized = setup_test(argc, argv); - if (initialized) { - test_blit_speed(); - SDL_Quit(); - } - return (!initialized); -} - -/* end of testblitspeed.c ... */ diff --git a/3rdparty/SDL-1.3.0-5387/test/testcursor.c b/3rdparty/SDL-1.3.0-5387/test/testcursor.c deleted file mode 100644 index dff54dc443..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testcursor.c +++ /dev/null @@ -1,224 +0,0 @@ -#include -#include - -#include "SDL.h" - -/* This is an example 16x16 cursor - top left : black - top right : inverted color or black - bottom left: white - bottom right: transparent - (swap left and right for different endianness) -*/ - -Uint16 cursor_data[16] = { - 0xffff, - 0xffff, - 0xffff, - 0xffff, - - 0xffff, - 0xffff, - 0xffff, - 0xffff, - - 0x0000, - 0x0000, - 0x0000, - 0x0000, - - 0x0000, - 0x0000, - 0x0000, - 0x0000 -}; - -Uint16 cursor_mask[16] = { - 0xff00, - 0xff00, - 0xff00, - 0xff00, - - 0xff00, - 0xff00, - 0xff00, - 0xff00, - - 0xff00, - 0xff00, - 0xff00, - 0xff00, - - 0xff00, - 0xff00, - 0xff00, - 0xff00 -}; - -/* another test cursor: smaller than 16x16, and with an odd height */ - -Uint8 small_cursor_data[11] = - { 0x00, 0x18, 0x08, 0x38, 0x44, 0x54, 0x44, 0x38, 0x20, 0x20, 0x00 }; -Uint8 small_cursor_mask[11] = - { 0x3C, 0x3C, 0x3C, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0x78, 0x70, 0x70 }; - -/* XPM */ -static const char *arrow[] = { - /* width height num_colors chars_per_pixel */ - " 32 32 3 1", - /* colors */ - "X c #000000", - ". c #ffffff", - " c None", - /* pixels */ - "X ", - "XX ", - "X.X ", - "X..X ", - "X...X ", - "X....X ", - "X.....X ", - "X......X ", - "X.......X ", - "X........X ", - "X.....XXXXX ", - "X..X..X ", - "X.X X..X ", - "XX X..X ", - "X X..X ", - " X..X ", - " X..X ", - " X..X ", - " XX ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - "0,0" -}; - -static SDL_Cursor * -create_arrow_cursor() -{ - int i, row, col; - Uint8 data[4 * 32]; - Uint8 mask[4 * 32]; - int hot_x, hot_y; - - i = -1; - for (row = 0; row < 32; ++row) { - for (col = 0; col < 32; ++col) { - if (col % 8) { - data[i] <<= 1; - mask[i] <<= 1; - } else { - ++i; - data[i] = mask[i] = 0; - } - switch (arrow[4 + row][col]) { - case 'X': - data[i] |= 0x01; - mask[i] |= 0x01; - break; - case '.': - mask[i] |= 0x01; - break; - case ' ': - break; - } - } - } - sscanf(arrow[4 + row], "%d,%d", &hot_x, &hot_y); - return SDL_CreateCursor(data, mask, 32, 32, hot_x, hot_y); -} - - -int -main(int argc, char *argv[]) -{ - SDL_Surface *screen; - SDL_bool quit = SDL_FALSE, first_time = SDL_TRUE; - SDL_Cursor *cursor[3]; - int current; - - /* Load the SDL library */ - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - - screen = SDL_SetVideoMode(640, 480, 8, SDL_ANYFORMAT); - if (screen == NULL) { - fprintf(stderr, "Couldn't initialize video mode: %s\n", - SDL_GetError()); - return (1); - } - - SDL_FillRect(screen, NULL, 0x664422); - - cursor[0] = SDL_CreateCursor((Uint8 *) cursor_data, (Uint8 *) cursor_mask, - 16, 16, 8, 8); - if (cursor[0] == NULL) { - fprintf(stderr, "Couldn't initialize test cursor: %s\n", - SDL_GetError()); - SDL_Quit(); - return (1); - } - cursor[1] = create_arrow_cursor(); - if (cursor[1] == NULL) { - fprintf(stderr, "Couldn't initialize arrow cursor: %s\n", - SDL_GetError()); - SDL_FreeCursor(cursor[0]); - SDL_Quit(); - return (1); - } - cursor[2] = SDL_CreateCursor(small_cursor_data, small_cursor_mask, - 8, 11, 3, 5); - if (cursor[2] == NULL) { - fprintf(stderr, "Couldn't initialize test cursor: %s\n", - SDL_GetError()); - SDL_Quit(); - return (1); - } - - current = 0; - SDL_SetCursor(cursor[current]); - - while (!quit) { - SDL_Event event; - while (SDL_PollEvent(&event)) { - switch (event.type) { - case SDL_MOUSEBUTTONDOWN: - current = (current + 1) % 3; - SDL_SetCursor(cursor[current]); - break; - case SDL_KEYDOWN: - if (event.key.keysym.sym == SDLK_ESCAPE) { - quit = SDL_TRUE; - } - break; - case SDL_QUIT: - quit = SDL_TRUE; - break; - } - } - SDL_Flip(screen); - SDL_Delay(1); - } - - SDL_FreeCursor(cursor[0]); - SDL_FreeCursor(cursor[1]); - SDL_FreeCursor(cursor[2]); - - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testdraw2.c b/3rdparty/SDL-1.3.0-5387/test/testdraw2.c deleted file mode 100644 index 2edfe40efe..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testdraw2.c +++ /dev/null @@ -1,265 +0,0 @@ - -/* Simple program: draw as many random objects on the screen as possible */ - -#include -#include -#include - -#include "common.h" - -#define NUM_OBJECTS 100 - -static CommonState *state; -static int num_objects; -static SDL_bool cycle_color; -static SDL_bool cycle_alpha; -static int cycle_direction = 1; -static int current_alpha = 255; -static int current_color = 255; -static SDL_BlendMode blendMode = SDL_BLENDMODE_NONE; - -void -DrawPoints(SDL_Renderer * renderer) -{ - int i; - int x, y; - SDL_Rect viewport; - - /* Query the sizes */ - SDL_RenderGetViewport(renderer, &viewport); - - for (i = 0; i < num_objects * 4; ++i) { - /* Cycle the color and alpha, if desired */ - if (cycle_color) { - current_color += cycle_direction; - if (current_color < 0) { - current_color = 0; - cycle_direction = -cycle_direction; - } - if (current_color > 255) { - current_color = 255; - cycle_direction = -cycle_direction; - } - } - if (cycle_alpha) { - current_alpha += cycle_direction; - if (current_alpha < 0) { - current_alpha = 0; - cycle_direction = -cycle_direction; - } - if (current_alpha > 255) { - current_alpha = 255; - cycle_direction = -cycle_direction; - } - } - SDL_SetRenderDrawColor(renderer, 255, (Uint8) current_color, - (Uint8) current_color, (Uint8) current_alpha); - - x = rand() % viewport.w; - y = rand() % viewport.h; - SDL_RenderDrawPoint(renderer, x, y); - } -} - -void -DrawLines(SDL_Renderer * renderer) -{ - int i; - int x1, y1, x2, y2; - SDL_Rect viewport; - - /* Query the sizes */ - SDL_RenderGetViewport(renderer, &viewport); - - for (i = 0; i < num_objects; ++i) { - /* Cycle the color and alpha, if desired */ - if (cycle_color) { - current_color += cycle_direction; - if (current_color < 0) { - current_color = 0; - cycle_direction = -cycle_direction; - } - if (current_color > 255) { - current_color = 255; - cycle_direction = -cycle_direction; - } - } - if (cycle_alpha) { - current_alpha += cycle_direction; - if (current_alpha < 0) { - current_alpha = 0; - cycle_direction = -cycle_direction; - } - if (current_alpha > 255) { - current_alpha = 255; - cycle_direction = -cycle_direction; - } - } - SDL_SetRenderDrawColor(renderer, 255, (Uint8) current_color, - (Uint8) current_color, (Uint8) current_alpha); - - if (i == 0) { - SDL_RenderDrawLine(renderer, 0, 0, viewport.w - 1, viewport.h - 1); - SDL_RenderDrawLine(renderer, 0, viewport.h - 1, viewport.w - 1, 0); - SDL_RenderDrawLine(renderer, 0, viewport.h / 2, viewport.w - 1, viewport.h / 2); - SDL_RenderDrawLine(renderer, viewport.w / 2, 0, viewport.w / 2, viewport.h - 1); - } else { - x1 = (rand() % (viewport.w*2)) - viewport.w; - x2 = (rand() % (viewport.w*2)) - viewport.w; - y1 = (rand() % (viewport.h*2)) - viewport.h; - y2 = (rand() % (viewport.h*2)) - viewport.h; - SDL_RenderDrawLine(renderer, x1, y1, x2, y2); - } - } -} - -void -DrawRects(SDL_Renderer * renderer) -{ - int i; - SDL_Rect rect; - SDL_Rect viewport; - - /* Query the sizes */ - SDL_RenderGetViewport(renderer, &viewport); - - for (i = 0; i < num_objects / 4; ++i) { - /* Cycle the color and alpha, if desired */ - if (cycle_color) { - current_color += cycle_direction; - if (current_color < 0) { - current_color = 0; - cycle_direction = -cycle_direction; - } - if (current_color > 255) { - current_color = 255; - cycle_direction = -cycle_direction; - } - } - if (cycle_alpha) { - current_alpha += cycle_direction; - if (current_alpha < 0) { - current_alpha = 0; - cycle_direction = -cycle_direction; - } - if (current_alpha > 255) { - current_alpha = 255; - cycle_direction = -cycle_direction; - } - } - SDL_SetRenderDrawColor(renderer, 255, (Uint8) current_color, - (Uint8) current_color, (Uint8) current_alpha); - - rect.w = rand() % (viewport.h / 2); - rect.h = rand() % (viewport.h / 2); - rect.x = (rand() % (viewport.w*2) - viewport.w) - (rect.w / 2); - rect.y = (rand() % (viewport.h*2) - viewport.h) - (rect.h / 2); - SDL_RenderFillRect(renderer, &rect); - } -} - -int -main(int argc, char *argv[]) -{ - int i, done; - SDL_Event event; - Uint32 then, now, frames; - - /* Initialize parameters */ - num_objects = NUM_OBJECTS; - - /* Initialize test framework */ - state = CommonCreateState(argv, SDL_INIT_VIDEO); - if (!state) { - return 1; - } - for (i = 1; i < argc;) { - int consumed; - - consumed = CommonArg(state, i); - if (consumed == 0) { - consumed = -1; - if (SDL_strcasecmp(argv[i], "--blend") == 0) { - if (argv[i + 1]) { - if (SDL_strcasecmp(argv[i + 1], "none") == 0) { - blendMode = SDL_BLENDMODE_NONE; - consumed = 2; - } else if (SDL_strcasecmp(argv[i + 1], "blend") == 0) { - blendMode = SDL_BLENDMODE_BLEND; - consumed = 2; - } else if (SDL_strcasecmp(argv[i + 1], "add") == 0) { - blendMode = SDL_BLENDMODE_ADD; - consumed = 2; - } else if (SDL_strcasecmp(argv[i + 1], "mod") == 0) { - blendMode = SDL_BLENDMODE_MOD; - consumed = 2; - } - } - } else if (SDL_strcasecmp(argv[i], "--cyclecolor") == 0) { - cycle_color = SDL_TRUE; - consumed = 1; - } else if (SDL_strcasecmp(argv[i], "--cyclealpha") == 0) { - cycle_alpha = SDL_TRUE; - consumed = 1; - } else if (SDL_isdigit(*argv[i])) { - num_objects = SDL_atoi(argv[i]); - consumed = 1; - } - } - if (consumed < 0) { - fprintf(stderr, - "Usage: %s %s [--blend none|blend|add|mod] [--cyclecolor] [--cyclealpha]\n", - argv[0], CommonUsage(state)); - return 1; - } - i += consumed; - } - if (!CommonInit(state)) { - return 2; - } - - /* Create the windows and initialize the renderers */ - for (i = 0; i < state->num_windows; ++i) { - SDL_Renderer *renderer = state->renderers[i]; - SDL_SetRenderDrawBlendMode(renderer, blendMode); - SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF); - SDL_RenderClear(renderer); - } - - srand((unsigned int)time(NULL)); - - /* Main render loop */ - frames = 0; - then = SDL_GetTicks(); - done = 0; - while (!done) { - /* Check for events */ - ++frames; - while (SDL_PollEvent(&event)) { - CommonEvent(state, &event, &done); - } - for (i = 0; i < state->num_windows; ++i) { - SDL_Renderer *renderer = state->renderers[i]; - SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF); - SDL_RenderClear(renderer); - - DrawRects(renderer); - DrawLines(renderer); - DrawPoints(renderer); - - SDL_RenderPresent(renderer); - } - } - - CommonQuit(state); - - /* Print out some timing information */ - now = SDL_GetTicks(); - if (now > then) { - double fps = ((double) frames * 1000) / (now - then); - printf("%2.2f frames per second\n", fps); - } - return 0; -} - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/3rdparty/SDL-1.3.0-5387/test/testdyngl.c b/3rdparty/SDL-1.3.0-5387/test/testdyngl.c deleted file mode 100644 index eb97cbeb77..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testdyngl.c +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Small SDL example to demonstrate dynamically loading - * OpenGL lib and functions - * - * (FYI it was supposed to look like snow in the wind or something...) - * - * Compile with : - * gcc testdyngl.c `sdl-config --libs --cflags` -o testdyngl -DHAVE_OPENGL - * - * You can specify a different OpenGL lib on the command line, i.e. : - * ./testdyngl /usr/X11R6/lib/libGL.so.1.2 - * or - * ./testdyngl /usr/lib/libGL.so.1.0.4496 - * - */ - -#include -#include - -#include "SDL.h" - -#ifdef __MACOS__ -#define HAVE_OPENGL -#endif - -#ifdef HAVE_OPENGL - -#include "SDL_opengl.h" - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -void * -get_funcaddr(const char *p) -{ - void *f = SDL_GL_GetProcAddress(p); - if (f) { - return f; - } else { - printf("Unable to get function pointer for %s\n", p); - quit(1); - } - return NULL; -} - -typedef struct -{ - void (APIENTRY * glBegin) (GLenum); - void (APIENTRY * glEnd) (); - void (APIENTRY * glVertex3f) (GLfloat, GLfloat, GLfloat); - void (APIENTRY * glClearColor) (GLfloat, GLfloat, GLfloat, GLfloat); - void (APIENTRY * glClear) (GLbitfield); - void (APIENTRY * glDisable) (GLenum); - void (APIENTRY * glEnable) (GLenum); - void (APIENTRY * glColor4ub) (GLubyte, GLubyte, GLubyte, GLubyte); - void (APIENTRY * glPointSize) (GLfloat); - void (APIENTRY * glHint) (GLenum, GLenum); - void (APIENTRY * glBlendFunc) (GLenum, GLenum); - void (APIENTRY * glMatrixMode) (GLenum); - void (APIENTRY * glLoadIdentity) (); - void (APIENTRY * glOrtho) (GLdouble, GLdouble, GLdouble, GLdouble, - GLdouble, GLdouble); - void (APIENTRY * glRotatef) (GLfloat, GLfloat, GLfloat, GLfloat); - void (APIENTRY * glViewport) (GLint, GLint, GLsizei, GLsizei); - void (APIENTRY * glFogf) (GLenum, GLfloat); - const GLubyte* (APIENTRY * glGetString) (GLenum); -} -glfuncs; - -void -init_glfuncs(glfuncs * f) -{ - f->glBegin = get_funcaddr("glBegin"); - f->glEnd = get_funcaddr("glEnd"); - f->glVertex3f = get_funcaddr("glVertex3f"); - f->glClearColor = get_funcaddr("glClearColor"); - f->glClear = get_funcaddr("glClear"); - f->glDisable = get_funcaddr("glDisable"); - f->glEnable = get_funcaddr("glEnable"); - f->glColor4ub = get_funcaddr("glColor4ub"); - f->glPointSize = get_funcaddr("glPointSize"); - f->glHint = get_funcaddr("glHint"); - f->glBlendFunc = get_funcaddr("glBlendFunc"); - f->glMatrixMode = get_funcaddr("glMatrixMode"); - f->glLoadIdentity = get_funcaddr("glLoadIdentity"); - f->glOrtho = get_funcaddr("glOrtho"); - f->glRotatef = get_funcaddr("glRotatef"); - f->glViewport = get_funcaddr("glViewport"); - f->glFogf = get_funcaddr("glFogf"); - f->glGetString = get_funcaddr("glGetString"); - - printf("Vendor : %s\n", f->glGetString(GL_VENDOR)); - printf("Renderer : %s\n", f->glGetString(GL_RENDERER)); - printf("Version : %s\n", f->glGetString(GL_VERSION)); - printf("Extensions : %s\n", f->glGetString(GL_EXTENSIONS)); -} - -#define NB_PIXELS 1000 - -int -main(int argc, char *argv[]) -{ - glfuncs f; - int i; - SDL_Event event; - int done = 0; - GLfloat pixels[NB_PIXELS * 3]; - const char *gl_library = NULL; /* Use the default GL library */ - - if (argv[1]) { - gl_library = argv[1]; - } - - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - printf("Unable to init SDL : %s\n", SDL_GetError()); - return (1); - } - - if (SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1) < 0) { - printf("Unable to set GL attribute : %s\n", SDL_GetError()); - quit(1); - } - - if (SDL_GL_LoadLibrary(gl_library) < 0) { - printf("Unable to dynamically open GL lib : %s\n", SDL_GetError()); - quit(1); - } - - if (SDL_SetVideoMode(640, 480, 0, SDL_OPENGL) == NULL) { - printf("Unable to open video mode : %s\n", SDL_GetError()); - quit(1); - } - - /* Set the window manager title bar */ - SDL_WM_SetCaption("SDL Dynamic OpenGL Loading Test", "testdyngl"); - - init_glfuncs(&f); - - for (i = 0; i < NB_PIXELS; i++) { - pixels[3 * i] = rand() % 250 - 125; - pixels[3 * i + 1] = rand() % 250 - 125; - pixels[3 * i + 2] = rand() % 250 - 125; - } - - f.glViewport(0, 0, 640, 480); - - f.glMatrixMode(GL_PROJECTION); - f.glLoadIdentity(); - f.glOrtho(-100, 100, -100, 100, -500, 500); - - f.glMatrixMode(GL_MODELVIEW); - f.glLoadIdentity(); - - f.glEnable(GL_DEPTH_TEST); - f.glDisable(GL_TEXTURE_2D); - f.glEnable(GL_BLEND); - f.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - f.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); - f.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - f.glEnable(GL_POINT_SMOOTH); - f.glHint(GL_POINT_SMOOTH_HINT, GL_NICEST); - f.glPointSize(5.0f); - f.glEnable(GL_FOG); - f.glFogf(GL_FOG_START, -500); - f.glFogf(GL_FOG_END, 500); - f.glFogf(GL_FOG_DENSITY, 0.005); - - do { - f.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - f.glRotatef(2.0, 1.0, 1.0, 1.0); - f.glRotatef(1.0, 0.0, 1.0, 1.0); - - f.glColor4ub(255, 255, 255, 255); - f.glBegin(GL_POINTS); - for (i = 0; i < NB_PIXELS; i++) { - f.glVertex3f(pixels[3 * i], pixels[3 * i + 1], pixels[3 * i + 2]); - } - f.glEnd(); - SDL_GL_SwapBuffers(); - - while (SDL_PollEvent(&event)) { - if (event.type == SDL_KEYDOWN) - done = 1; - } - - SDL_Delay(20); - } while (!done); - - SDL_Quit(); - return 0; -} - -#else /* HAVE_OPENGL */ - -int -main(int argc, char *argv[]) -{ - printf("No OpenGL support on this system\n"); - return 1; -} - -#endif /* HAVE_OPENGL */ diff --git a/3rdparty/SDL-1.3.0-5387/test/testdyngles.c b/3rdparty/SDL-1.3.0-5387/test/testdyngles.c deleted file mode 100644 index 0ca58260d8..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testdyngles.c +++ /dev/null @@ -1,215 +0,0 @@ -/* - * Small SDL example to demonstrate dynamically loading - * OpenGL lib and functions - * - * (FYI it was supposed to look like snow in the wind or something...) - * - * Compile with : - * gcc testdyngl.c `sdl-config --libs --cflags` -o testdyngl -DHAVE_OPENGL - * - * You can specify a different OpenGL lib on the command line, i.e. : - * ./testdyngl /usr/X11R6/lib/libGL.so.1.2 - * or - * ./testdyngl /usr/lib/libGL.so.1.0.4496 - * - */ - -#include -#include - -#include "SDL.h" - -#ifdef __IPHONEOS__ -#define HAVE_OPENGLES -#endif - -#ifdef HAVE_OPENGLES - -#include "SDL_opengles.h" - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -void * -get_funcaddr(const char *p) -{ - void *f = SDL_GL_GetProcAddress(p); - if (f) { - return f; - } else { - printf("Unable to get function pointer for %s\n", p); - quit(1); - } - return NULL; -} - -typedef struct -{ - void (APIENTRY * glEnableClientState) (GLenum array); - void (APIENTRY * glDisableClientState) (GLenum array); - void (APIENTRY * glVertexPointer) (GLint size, GLenum type, - GLsizei stride, - const GLvoid * pointer); - void (APIENTRY * glDrawArrays) (GLenum mode, GLint first, GLsizei count); - - - void (APIENTRY * glClearColor) (GLfloat, GLfloat, GLfloat, GLfloat); - void (APIENTRY * glClear) (GLbitfield); - void (APIENTRY * glDisable) (GLenum); - void (APIENTRY * glEnable) (GLenum); - void (APIENTRY * glColor4f) (GLfloat, GLfloat, GLfloat, GLfloat); - void (APIENTRY * glPointSize) (GLfloat); - void (APIENTRY * glHint) (GLenum, GLenum); - void (APIENTRY * glBlendFunc) (GLenum, GLenum); - void (APIENTRY * glMatrixMode) (GLenum); - void (APIENTRY * glLoadIdentity) (); - void (APIENTRY * glOrthof) (GLfloat, GLfloat, GLfloat, GLfloat, - GLfloat, GLfloat); - void (APIENTRY * glRotatef) (GLfloat, GLfloat, GLfloat, GLfloat); - void (APIENTRY * glViewport) (GLint, GLint, GLsizei, GLsizei); - void (APIENTRY * glFogf) (GLenum, GLfloat); -} -glfuncs; - -void -init_glfuncs(glfuncs * f) -{ - f->glEnableClientState = get_funcaddr("glEnableClientState"); - f->glDisableClientState = get_funcaddr("glDisableClientState"); - f->glVertexPointer = get_funcaddr("glVertexPointer"); - f->glDrawArrays = get_funcaddr("glDrawArrays"); - f->glClearColor = get_funcaddr("glClearColor"); - f->glClear = get_funcaddr("glClear"); - f->glDisable = get_funcaddr("glDisable"); - f->glEnable = get_funcaddr("glEnable"); - f->glColor4f = get_funcaddr("glColor4f"); - f->glPointSize = get_funcaddr("glPointSize"); - f->glHint = get_funcaddr("glHint"); - f->glBlendFunc = get_funcaddr("glBlendFunc"); - f->glMatrixMode = get_funcaddr("glMatrixMode"); - f->glLoadIdentity = get_funcaddr("glLoadIdentity"); - f->glOrthof = get_funcaddr("glOrthof"); - f->glRotatef = get_funcaddr("glRotatef"); - f->glViewport = get_funcaddr("glViewport"); - f->glFogf = get_funcaddr("glFogf"); -} - -#define NB_PIXELS 1000 - -int -main(int argc, char *argv[]) -{ - glfuncs f; - int i; - SDL_Event event; - int done = 0; - GLfloat pixels[NB_PIXELS * 3]; - const char *gl_library = NULL; /* Use the default GL library */ - - int video_w, video_h; - - /* you may want to change these according to the platform */ - video_w = 320; - video_h = 480; - - if (argv[1]) { - gl_library = argv[1]; - } - - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - printf("Unable to init SDL : %s\n", SDL_GetError()); - return (1); - } - - if (SDL_GL_LoadLibrary(gl_library) < 0) { - printf("Unable to dynamically open GL ES lib : %s\n", SDL_GetError()); - quit(1); - } - - if (SDL_SetVideoMode(video_h, video_w, 0, SDL_OPENGL) == NULL) { - printf("Unable to open video mode : %s\n", SDL_GetError()); - quit(1); - } - - /* Set the window manager title bar */ - SDL_WM_SetCaption("SDL Dynamic OpenGL ES Loading Test", "testdyngles"); - - init_glfuncs(&f); - - for (i = 0; i < NB_PIXELS; i++) { - pixels[3 * i] = rand() % 250 - 125; - pixels[3 * i + 1] = rand() % 250 - 125; - pixels[3 * i + 2] = rand() % 250 - 125; - } - - f.glViewport(0, 0, video_w, video_h); - f.glMatrixMode(GL_PROJECTION); - f.glLoadIdentity(); - f.glOrthof(-100, 100, -100, 100, -500, 500); - - f.glMatrixMode(GL_MODELVIEW); - f.glLoadIdentity(); - - f.glEnable(GL_DEPTH_TEST); - f.glDisable(GL_TEXTURE_2D); - f.glEnable(GL_BLEND); - f.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - f.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); - f.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - f.glEnable(GL_POINT_SMOOTH); - f.glHint(GL_POINT_SMOOTH_HINT, GL_NICEST); - f.glPointSize(1.0f); - f.glEnable(GL_FOG); - f.glFogf(GL_FOG_START, -500); - f.glFogf(GL_FOG_END, 500); - f.glFogf(GL_FOG_DENSITY, 0.005); - - f.glVertexPointer(3, GL_FLOAT, 0, pixels); - f.glEnableClientState(GL_VERTEX_ARRAY); - - do { - f.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - f.glRotatef(2.0, 1.0, 1.0, 1.0); - f.glRotatef(1.0, 0.0, 1.0, 1.0); - - f.glColor4f(1.0, 1.0, 1.0, 1.0); - - f.glDrawArrays(GL_POINTS, 0, NB_PIXELS); - - SDL_GL_SwapBuffers(); - - while (SDL_PollEvent(&event)) { - if (event.type == SDL_QUIT) - done = 1; - if (event.type == SDL_KEYDOWN) - done = 1; - } - - SDL_Delay(20); - } - while (!done); - - f.glDisableClientState(GL_VERTEX_ARRAY); - - SDL_Quit(); - return 0; -} - -#else /* HAVE_OPENGLES */ - -int -main(int argc, char *argv[]) -{ - printf("No OpenGL ES support on this system\n"); - return 1; -} - -#endif /* HAVE_OPENGLES */ diff --git a/3rdparty/SDL-1.3.0-5387/test/testerror.c b/3rdparty/SDL-1.3.0-5387/test/testerror.c deleted file mode 100644 index 09f0ac71b4..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testerror.c +++ /dev/null @@ -1,64 +0,0 @@ - -/* Simple test of the SDL threading code and error handling */ - -#include -#include -#include - -#include "SDL.h" -#include "SDL_thread.h" - -static int alive = 0; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -int SDLCALL -ThreadFunc(void *data) -{ - /* Set the child thread error string */ - SDL_SetError("Thread %s (%lu) had a problem: %s", - (char *) data, SDL_ThreadID(), "nevermind"); - while (alive) { - printf("Thread '%s' is alive!\n", (char *) data); - SDL_Delay(1 * 1000); - } - printf("Child thread error string: %s\n", SDL_GetError()); - return (0); -} - -int -main(int argc, char *argv[]) -{ - SDL_Thread *thread; - - /* Load the SDL library */ - if (SDL_Init(0) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - - /* Set the error value for the main thread */ - SDL_SetError("No worries"); - - alive = 1; - thread = SDL_CreateThread(ThreadFunc, "#1"); - if (thread == NULL) { - fprintf(stderr, "Couldn't create thread: %s\n", SDL_GetError()); - quit(1); - } - SDL_Delay(5 * 1000); - printf("Waiting for thread #1\n"); - alive = 0; - SDL_WaitThread(thread, NULL); - - printf("Main thread error string: %s\n", SDL_GetError()); - - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testfile.c b/3rdparty/SDL-1.3.0-5387/test/testfile.c deleted file mode 100644 index 6657f40ee3..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testfile.c +++ /dev/null @@ -1,272 +0,0 @@ - -/* sanity tests on SDL_rwops.c (usefull for alternative implementations of stdio rwops) */ - -// quiet windows compiler warnings -#define _CRT_NONSTDC_NO_WARNINGS - -#include - -#ifndef _MSC_VER -#include -#endif - -#include "SDL.h" -#include "SDL_endian.h" - - -#include - -/* WARNING ! those 2 files will be destroyed by this test program */ - -#ifdef __IPHONEOS__ -#define FBASENAME1 "../Documents/sdldata1" /* this file will be created during tests */ -#define FBASENAME2 "../Documents/sdldata2" /* this file should not exist before starting test */ -#else -#define FBASENAME1 "sdldata1" /* this file will be created during tests */ -#define FBASENAME2 "sdldata2" /* this file should not exist before starting test */ -#endif - -#ifndef NULL -#define NULL ((void *)0) -#endif - -static void -cleanup(void) -{ - - unlink(FBASENAME1); - unlink(FBASENAME2); -} - -static void -rwops_error_quit(unsigned line, SDL_RWops * rwops) -{ - - printf("testfile.c(%d): failed\n", line); - if (rwops) { - rwops->close(rwops); /* This calls SDL_FreeRW(rwops); */ - } - cleanup(); - exit(1); /* quit with rwops error (test failed) */ -} - -#define RWOP_ERR_QUIT(x) rwops_error_quit( __LINE__, (x) ) - - - -int -main(int argc, char *argv[]) -{ - SDL_RWops *rwops = NULL; - char test_buf[30]; - - cleanup(); - -/* test 1 : basic argument test: all those calls to SDL_RWFromFile should fail */ - - rwops = SDL_RWFromFile(NULL, NULL); - if (rwops) - RWOP_ERR_QUIT(rwops); - rwops = SDL_RWFromFile(NULL, "ab+"); - if (rwops) - RWOP_ERR_QUIT(rwops); - rwops = SDL_RWFromFile(NULL, "sldfkjsldkfj"); - if (rwops) - RWOP_ERR_QUIT(rwops); - rwops = SDL_RWFromFile("something", ""); - if (rwops) - RWOP_ERR_QUIT(rwops); - rwops = SDL_RWFromFile("something", NULL); - if (rwops) - RWOP_ERR_QUIT(rwops); - printf("test1 OK\n"); - -/* test 2 : check that inexistant file is not successfully opened/created when required */ -/* modes : r, r+ implie that file MUST exist - modes : a, a+, w, w+ checks that it succeeds (file may not exists) - - */ - rwops = SDL_RWFromFile(FBASENAME2, "rb"); /* this file doesn't exist that call must fail */ - if (rwops) - RWOP_ERR_QUIT(rwops); - rwops = SDL_RWFromFile(FBASENAME2, "rb+"); /* this file doesn't exist that call must fail */ - if (rwops) - RWOP_ERR_QUIT(rwops); - rwops = SDL_RWFromFile(FBASENAME2, "wb"); - if (!rwops) - RWOP_ERR_QUIT(rwops); - rwops->close(rwops); - unlink(FBASENAME2); - rwops = SDL_RWFromFile(FBASENAME2, "wb+"); - if (!rwops) - RWOP_ERR_QUIT(rwops); - rwops->close(rwops); - unlink(FBASENAME2); - rwops = SDL_RWFromFile(FBASENAME2, "ab"); - if (!rwops) - RWOP_ERR_QUIT(rwops); - rwops->close(rwops); - unlink(FBASENAME2); - rwops = SDL_RWFromFile(FBASENAME2, "ab+"); - if (!rwops) - RWOP_ERR_QUIT(rwops); - rwops->close(rwops); - unlink(FBASENAME2); - printf("test2 OK\n"); - -/* test 3 : creation, writing , reading, seeking, - test : w mode, r mode, w+ mode - */ - rwops = SDL_RWFromFile(FBASENAME1, "wb"); /* write only */ - if (!rwops) - RWOP_ERR_QUIT(rwops); - if (1 != rwops->write(rwops, "1234567890", 10, 1)) - RWOP_ERR_QUIT(rwops); - if (10 != rwops->write(rwops, "1234567890", 1, 10)) - RWOP_ERR_QUIT(rwops); - if (7 != rwops->write(rwops, "1234567", 1, 7)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->seek(rwops, 0L, RW_SEEK_SET)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->read(rwops, test_buf, 1, 1)) - RWOP_ERR_QUIT(rwops); /* we are in write only mode */ - rwops->close(rwops); - - rwops = SDL_RWFromFile(FBASENAME1, "rb"); /* read mode, file must exists */ - if (!rwops) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->seek(rwops, 0L, RW_SEEK_SET)) - RWOP_ERR_QUIT(rwops); - if (20 != rwops->seek(rwops, -7, RW_SEEK_END)) - RWOP_ERR_QUIT(rwops); - if (7 != rwops->read(rwops, test_buf, 1, 7)) - RWOP_ERR_QUIT(rwops); - if (SDL_memcmp(test_buf, "1234567", 7)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->read(rwops, test_buf, 1, 1)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->read(rwops, test_buf, 10, 100)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->seek(rwops, -27, RW_SEEK_CUR)) - RWOP_ERR_QUIT(rwops); - if (2 != rwops->read(rwops, test_buf, 10, 3)) - RWOP_ERR_QUIT(rwops); - if (SDL_memcmp(test_buf, "12345678901234567890", 20)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->write(rwops, test_buf, 1, 1)) - RWOP_ERR_QUIT(rwops); /* readonly mode */ - rwops->close(rwops); - -/* test 3: same with w+ mode */ - rwops = SDL_RWFromFile(FBASENAME1, "wb+"); /* write + read + truncation */ - if (!rwops) - RWOP_ERR_QUIT(rwops); - if (1 != rwops->write(rwops, "1234567890", 10, 1)) - RWOP_ERR_QUIT(rwops); - if (10 != rwops->write(rwops, "1234567890", 1, 10)) - RWOP_ERR_QUIT(rwops); - if (7 != rwops->write(rwops, "1234567", 1, 7)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->seek(rwops, 0L, RW_SEEK_SET)) - RWOP_ERR_QUIT(rwops); - if (1 != rwops->read(rwops, test_buf, 1, 1)) - RWOP_ERR_QUIT(rwops); /* we are in read/write mode */ - if (0 != rwops->seek(rwops, 0L, RW_SEEK_SET)) - RWOP_ERR_QUIT(rwops); - if (20 != rwops->seek(rwops, -7, RW_SEEK_END)) - RWOP_ERR_QUIT(rwops); - if (7 != rwops->read(rwops, test_buf, 1, 7)) - RWOP_ERR_QUIT(rwops); - if (SDL_memcmp(test_buf, "1234567", 7)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->read(rwops, test_buf, 1, 1)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->read(rwops, test_buf, 10, 100)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->seek(rwops, -27, RW_SEEK_CUR)) - RWOP_ERR_QUIT(rwops); - if (2 != rwops->read(rwops, test_buf, 10, 3)) - RWOP_ERR_QUIT(rwops); - if (SDL_memcmp(test_buf, "12345678901234567890", 20)) - RWOP_ERR_QUIT(rwops); - rwops->close(rwops); - printf("test3 OK\n"); - -/* test 4: same in r+ mode */ - rwops = SDL_RWFromFile(FBASENAME1, "rb+"); /* write + read + file must exists, no truncation */ - if (!rwops) - RWOP_ERR_QUIT(rwops); - if (1 != rwops->write(rwops, "1234567890", 10, 1)) - RWOP_ERR_QUIT(rwops); - if (10 != rwops->write(rwops, "1234567890", 1, 10)) - RWOP_ERR_QUIT(rwops); - if (7 != rwops->write(rwops, "1234567", 1, 7)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->seek(rwops, 0L, RW_SEEK_SET)) - RWOP_ERR_QUIT(rwops); - if (1 != rwops->read(rwops, test_buf, 1, 1)) - RWOP_ERR_QUIT(rwops); /* we are in read/write mode */ - if (0 != rwops->seek(rwops, 0L, RW_SEEK_SET)) - RWOP_ERR_QUIT(rwops); - if (20 != rwops->seek(rwops, -7, RW_SEEK_END)) - RWOP_ERR_QUIT(rwops); - if (7 != rwops->read(rwops, test_buf, 1, 7)) - RWOP_ERR_QUIT(rwops); - if (SDL_memcmp(test_buf, "1234567", 7)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->read(rwops, test_buf, 1, 1)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->read(rwops, test_buf, 10, 100)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->seek(rwops, -27, RW_SEEK_CUR)) - RWOP_ERR_QUIT(rwops); - if (2 != rwops->read(rwops, test_buf, 10, 3)) - RWOP_ERR_QUIT(rwops); - if (SDL_memcmp(test_buf, "12345678901234567890", 20)) - RWOP_ERR_QUIT(rwops); - rwops->close(rwops); - printf("test4 OK\n"); - -/* test5 : append mode */ - rwops = SDL_RWFromFile(FBASENAME1, "ab+"); /* write + read + append */ - if (!rwops) - RWOP_ERR_QUIT(rwops); - if (1 != rwops->write(rwops, "1234567890", 10, 1)) - RWOP_ERR_QUIT(rwops); - if (10 != rwops->write(rwops, "1234567890", 1, 10)) - RWOP_ERR_QUIT(rwops); - if (7 != rwops->write(rwops, "1234567", 1, 7)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->seek(rwops, 0L, RW_SEEK_SET)) - RWOP_ERR_QUIT(rwops); - - if (1 != rwops->read(rwops, test_buf, 1, 1)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->seek(rwops, 0L, RW_SEEK_SET)) - RWOP_ERR_QUIT(rwops); - - if (20 + 27 != rwops->seek(rwops, -7, RW_SEEK_END)) - RWOP_ERR_QUIT(rwops); - if (7 != rwops->read(rwops, test_buf, 1, 7)) - RWOP_ERR_QUIT(rwops); - if (SDL_memcmp(test_buf, "1234567", 7)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->read(rwops, test_buf, 1, 1)) - RWOP_ERR_QUIT(rwops); - if (0 != rwops->read(rwops, test_buf, 10, 100)) - RWOP_ERR_QUIT(rwops); - - if (27 != rwops->seek(rwops, -27, RW_SEEK_CUR)) - RWOP_ERR_QUIT(rwops); - - if (0 != rwops->seek(rwops, 0L, RW_SEEK_SET)) - RWOP_ERR_QUIT(rwops); - if (3 != rwops->read(rwops, test_buf, 10, 3)) - RWOP_ERR_QUIT(rwops); - if (SDL_memcmp(test_buf, "123456789012345678901234567123", 30)) - RWOP_ERR_QUIT(rwops); - rwops->close(rwops); - printf("test5 OK\n"); - cleanup(); - return 0; /* all ok */ -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testfill.c b/3rdparty/SDL-1.3.0-5387/test/testfill.c deleted file mode 100644 index 98086485a5..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testfill.c +++ /dev/null @@ -1,107 +0,0 @@ -/* Simple program: Fill the screen with colors as fast as possible */ - -#include -#include -#include -#include - -#include "SDL.h" - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -int -main(int argc, char *argv[]) -{ - SDL_Surface *screen; - int width, height; - Uint8 video_bpp; - Uint32 videoflags; - Uint32 colors[3]; - int i, done; - SDL_Event event; - Uint32 then, now, frames; - - /* Initialize SDL */ - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - - width = 640; - height = 480; - video_bpp = 8; - videoflags = 0; - while (argc > 1) { - --argc; - if (strcmp(argv[argc - 1], "-width") == 0) { - width = atoi(argv[argc]); - --argc; - } else if (strcmp(argv[argc - 1], "-height") == 0) { - height = atoi(argv[argc]); - --argc; - } else if (strcmp(argv[argc - 1], "-bpp") == 0) { - video_bpp = atoi(argv[argc]); - --argc; - } else if (strcmp(argv[argc], "-fullscreen") == 0) { - videoflags ^= SDL_FULLSCREEN; - } else { - fprintf(stderr, - "Usage: %s [-width N] [-height N] [-bpp N] [-fullscreen]\n", - argv[0]); - quit(1); - } - } - - /* Set video mode */ - screen = SDL_SetVideoMode(width, height, video_bpp, 0); - if (!screen) { - fprintf(stderr, "Couldn't set %dx%d video mode: %s\n", - width, height, SDL_GetError()); - quit(2); - } - - /* Get the colors */ - colors[0] = SDL_MapRGB(screen->format, 0xFF, 0x00, 0x00); - colors[1] = SDL_MapRGB(screen->format, 0x00, 0xFF, 0x00); - colors[2] = SDL_MapRGB(screen->format, 0x00, 0x00, 0xFF); - - /* Loop, filling and waiting for a keystroke */ - frames = 0; - then = SDL_GetTicks(); - done = 0; - while (!done) { - /* Check for events */ - ++frames; - while (SDL_PollEvent(&event)) { - switch (event.type) { - case SDL_MOUSEBUTTONDOWN: - SDL_WarpMouse(screen->w / 2, screen->h / 2); - break; - case SDL_KEYDOWN: - /* Any keypress quits the app... */ - case SDL_QUIT: - done = 1; - break; - default: - break; - } - } - SDL_FillRect(screen, NULL, colors[frames%3]); - SDL_Flip(screen); - } - - /* Print out some timing information */ - now = SDL_GetTicks(); - if (now > then) { - double fps = ((double) frames * 1000) / (now - then); - printf("%2.2f frames per second\n", fps); - } - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testgesture.c b/3rdparty/SDL-1.3.0-5387/test/testgesture.c deleted file mode 100644 index 0667c539e2..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testgesture.c +++ /dev/null @@ -1,299 +0,0 @@ -/* Usage: - * Spacebar to begin recording a gesture on all touches. - * s to save all touches into "./gestureSave" - * l to load all touches from "./gestureSave" - */ - -#include -#include -#include -#include -#include - - -/* Make sure we have good macros for printing 32 and 64 bit values */ -#ifndef PRIs32 -#define PRIs32 "d" -#endif -#ifndef PRIu32 -#define PRIu32 "u" -#endif -#ifndef PRIs64 -#ifdef __WIN32__ -#define PRIs64 "I64" -#else -#define PRIs64 "lld" -#endif -#endif -#ifndef PRIu64 -#ifdef __WIN32__ -#define PRIu64 "I64u" -#else -#define PRIu64 "llu" -#endif -#endif - -#define WIDTH 640 -#define HEIGHT 480 -#define BPP 4 -#define DEPTH 32 - -//MUST BE A POWER OF 2! -#define EVENT_BUF_SIZE 256 - - -#define VERBOSE SDL_FALSE - -SDL_Event events[EVENT_BUF_SIZE]; -int eventWrite; - -int colors[7] = {0xFF,0xFF00,0xFF0000,0xFFFF00,0x00FFFF,0xFF00FF,0xFFFFFF}; - -typedef struct { - float x,y; -} Point; - -typedef struct { - float ang,r; - Point p; -} Knob; - -Knob knob; - -void handler (int sig) -{ - printf ("exiting...(%d)\n", sig); - exit (0); -} - -void perror_exit (char *error) -{ - perror (error); - handler (9); -} - -void setpix(SDL_Surface *screen, float _x, float _y, unsigned int col) -{ - Uint32 *pixmem32; - Uint32 colour; - Uint8 r,g,b; - int x = (int)_x; - int y = (int)_y; - float a; - - if(x < 0 || x > screen->w) return; - if(y < 0 || y > screen->h) return; - - pixmem32 = (Uint32*) screen->pixels + y*screen->pitch/BPP + x; - - SDL_memcpy(&colour,pixmem32,screen->format->BytesPerPixel); - - SDL_GetRGB(colour,screen->format,&r,&g,&b); - //r = 0;g = 0; b = 0; - a = (float)((col>>24)&0xFF); - if(a == 0) a = 0xFF; //Hack, to make things easier. - a /= 0xFF; - r = (Uint8)(r*(1-a) + ((col>>16)&0xFF)*(a)); - g = (Uint8)(g*(1-a) + ((col>> 8)&0xFF)*(a)); - b = (Uint8)(b*(1-a) + ((col>> 0)&0xFF)*(a)); - colour = SDL_MapRGB( screen->format,r, g, b); - - - *pixmem32 = colour; -} - -void drawLine(SDL_Surface *screen,float x0,float y0,float x1,float y1,unsigned int col) { - float t; - for(t=0;t<1;t+=(float)(1.f/SDL_max(SDL_fabs(x0-x1),SDL_fabs(y0-y1)))) - setpix(screen,x1+t*(x0-x1),y1+t*(y0-y1),col); -} - -void drawCircle(SDL_Surface* screen,float x,float y,float r,unsigned int c) -{ - float tx,ty; - float xr; - for(ty = (float)-SDL_fabs(r);ty <= (float)SDL_fabs((int)r);ty++) { - xr = (float)sqrt(r*r - ty*ty); - if(r > 0) { //r > 0 ==> filled circle - for(tx=-xr+.5f;tx<=xr-.5;tx++) { - setpix(screen,x+tx,y+ty,c); - } - } - else { - setpix(screen,x-xr+.5f,y+ty,c); - setpix(screen,x+xr-.5f,y+ty,c); - } - } -} - -void drawKnob(SDL_Surface* screen,Knob k) { - drawCircle(screen,k.p.x*screen->w,k.p.y*screen->h,k.r*screen->w,0xFFFFFF); - drawCircle(screen,(k.p.x+k.r/2*cosf(k.ang))*screen->w, - (k.p.y+k.r/2*sinf(k.ang))*screen->h,k.r/4*screen->w,0); -} - -void DrawScreen(SDL_Surface* screen) -{ - int x, y, i; - if(SDL_MUSTLOCK(screen)) - { - if(SDL_LockSurface(screen) < 0) return; - } - for(y = 0;y < screen->h;y++) - for(x = 0;x < screen->w;x++) - setpix(screen,(float)x,(float)y,((x%255)<<16) + ((y%255)<<8) + (x+y)%255); - - //draw Touch History - for(i = SDL_max(0,eventWrite - EVENT_BUF_SIZE);i < eventWrite;i++) { - SDL_Event event = events[i&(EVENT_BUF_SIZE-1)]; - int age = eventWrite - i - 1; - float x, y; - unsigned int c, col; - - if(event.type == SDL_FINGERMOTION || - event.type == SDL_FINGERDOWN || - event.type == SDL_FINGERUP) { - SDL_Touch* inTouch = SDL_GetTouch(event.tfinger.touchId); - if(inTouch == NULL) continue; - - x = ((float)event.tfinger.x)/inTouch->xres; - y = ((float)event.tfinger.y)/inTouch->yres; - - //draw the touch: - c = colors[event.tfinger.touchId%7]; - col = - ((unsigned int)(c*(.1+.85))) | - ((unsigned int)((0xFF*(1-((float)age)/EVENT_BUF_SIZE))) & 0xFF)<<24; - - if(event.type == SDL_FINGERMOTION) - drawCircle(screen,x*screen->w,y*screen->h,5,col); - else if(event.type == SDL_FINGERDOWN) - drawCircle(screen,x*screen->w,y*screen->h,-10,col); - } - } - - if(knob.p.x > 0) - drawKnob(screen,knob); - - if(SDL_MUSTLOCK(screen)) SDL_UnlockSurface(screen); - SDL_Flip(screen); -} - -SDL_Surface* initScreen(int width,int height) -{ - return SDL_SetVideoMode(width, height, DEPTH, - SDL_HWSURFACE | SDL_RESIZABLE); -} - -int main(int argc, char* argv[]) -{ - SDL_Surface *screen; - SDL_Event event; - SDL_bool quitting = SDL_FALSE; - SDL_RWops *src; - - //gesture variables - knob.r = .1f; - knob.ang = 0; - - if (SDL_Init(SDL_INIT_VIDEO) < 0 ) return 1; - - if (!(screen = initScreen(WIDTH,HEIGHT))) - { - SDL_Quit(); - return 1; - } - - while(!quitting) { - while(SDL_PollEvent(&event)) - { - //Record _all_ events - events[eventWrite & (EVENT_BUF_SIZE-1)] = event; - eventWrite++; - - switch (event.type) - { - case SDL_QUIT: - quitting = SDL_TRUE; - break; - case SDL_KEYDOWN: - switch (event.key.keysym.sym) - { - case SDLK_SPACE: - SDL_RecordGesture(-1); - break; - case SDLK_s: - src = SDL_RWFromFile("gestureSave","w"); - printf("Wrote %i templates\n",SDL_SaveAllDollarTemplates(src)); - SDL_RWclose(src); - break; - case SDLK_l: - src = SDL_RWFromFile("gestureSave","r"); - printf("Loaded: %i\n",SDL_LoadDollarTemplates(-1,src)); - SDL_RWclose(src); - break; - case SDLK_ESCAPE: - quitting = SDL_TRUE; - break; - } - break; - case SDL_VIDEORESIZE: - if (!(screen = initScreen(event.resize.w, - event.resize.h))) - { - SDL_Quit(); - return 1; - } - break; - case SDL_FINGERMOTION: -#if VERBOSE - printf("Finger: %i,x: %i, y: %i\n",event.tfinger.fingerId, - event.tfinger.x,event.tfinger.y); -#endif - { - SDL_Touch* inTouch = SDL_GetTouch(event.tfinger.touchId); - SDL_Finger* inFinger = SDL_GetFinger(inTouch,event.tfinger.fingerId); - } - break; - case SDL_FINGERDOWN: -#if VERBOSE - printf("Finger: %"PRIs64" down - x: %i, y: %i\n", - event.tfinger.fingerId,event.tfinger.x,event.tfinger.y); -#endif - break; - case SDL_FINGERUP: -#if VERBOSE - printf("Finger: %"PRIs64" up - x: %i, y: %i\n", - event.tfinger.fingerId,event.tfinger.x,event.tfinger.y); -#endif - break; - case SDL_MULTIGESTURE: -#if VERBOSE - printf("Multi Gesture: x = %f, y = %f, dAng = %f, dR = %f\n", - event.mgesture.x, - event.mgesture.y, - event.mgesture.dTheta, - event.mgesture.dDist); - printf("MG: numDownTouch = %i\n",event.mgesture.numFingers); -#endif - knob.p.x = event.mgesture.x; - knob.p.y = event.mgesture.y; - knob.ang += event.mgesture.dTheta; - knob.r += event.mgesture.dDist; - break; - case SDL_DOLLARGESTURE: - printf("Gesture %"PRIs64" performed, error: %f\n", - event.dgesture.gestureId, - event.dgesture.error); - break; - case SDL_DOLLARRECORD: - printf("Recorded gesture: %"PRIs64"\n",event.dgesture.gestureId); - break; - } - } - DrawScreen(screen); - } - SDL_Quit(); - return 0; -} - diff --git a/3rdparty/SDL-1.3.0-5387/test/testgl.c b/3rdparty/SDL-1.3.0-5387/test/testgl.c deleted file mode 100644 index dd315e8698..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testgl.c +++ /dev/null @@ -1,771 +0,0 @@ -#include -#include -#include -#include - -#include "SDL.h" - -#ifdef __MACOS__ -#define HAVE_OPENGL -#endif - -#ifdef HAVE_OPENGL - -#include "SDL_opengl.h" - -/* Undefine this if you want a flat cube instead of a rainbow cube */ -#define SHADED_CUBE - -/* Define this to be the name of the logo image to use with -logo */ -#define LOGO_FILE "icon.bmp" - -static SDL_Surface *global_image = NULL; -static GLuint global_texture = 0; -static GLuint cursor_texture = 0; - -/**********************************************************************/ - -void -HotKey_ToggleFullScreen(void) -{ - SDL_Surface *screen; - - screen = SDL_GetVideoSurface(); - if (SDL_WM_ToggleFullScreen(screen)) { - printf("Toggled fullscreen mode - now %s\n", - (screen->flags & SDL_FULLSCREEN) ? "fullscreen" : "windowed"); - } else { - printf("Unable to toggle fullscreen mode\n"); - } -} - -void -HotKey_ToggleGrab(void) -{ - SDL_GrabMode mode; - - printf("Ctrl-G: toggling input grab!\n"); - mode = SDL_WM_GrabInput(SDL_GRAB_QUERY); - if (mode == SDL_GRAB_ON) { - printf("Grab was on\n"); - } else { - printf("Grab was off\n"); - } - mode = SDL_WM_GrabInput(!mode); - if (mode == SDL_GRAB_ON) { - printf("Grab is now on\n"); - } else { - printf("Grab is now off\n"); - } -} - -void -HotKey_Iconify(void) -{ - printf("Ctrl-Z: iconifying window!\n"); - SDL_WM_IconifyWindow(); -} - -int -HandleEvent(SDL_Event * event) -{ - int done; - - done = 0; - switch (event->type) { - case SDL_ACTIVEEVENT: - /* See what happened */ - printf("app %s ", event->active.gain ? "gained" : "lost"); - if (event->active.state & SDL_APPACTIVE) { - printf("active "); - } else if (event->active.state & SDL_APPMOUSEFOCUS) { - printf("mouse "); - } else if (event->active.state & SDL_APPINPUTFOCUS) { - printf("input "); - } - printf("focus\n"); - break; - - - case SDL_KEYDOWN: - if (event->key.keysym.sym == SDLK_ESCAPE) { - done = 1; - } - if ((event->key.keysym.sym == SDLK_g) && - (event->key.keysym.mod & KMOD_CTRL)) { - HotKey_ToggleGrab(); - } - if ((event->key.keysym.sym == SDLK_z) && - (event->key.keysym.mod & KMOD_CTRL)) { - HotKey_Iconify(); - } - if ((event->key.keysym.sym == SDLK_RETURN) && - (event->key.keysym.mod & KMOD_ALT)) { - HotKey_ToggleFullScreen(); - } - printf("key '%s' pressed\n", SDL_GetKeyName(event->key.keysym.sym)); - break; - case SDL_QUIT: - done = 1; - break; - } - return (done); -} - -void -SDL_GL_Enter2DMode() -{ - SDL_Surface *screen = SDL_GetVideoSurface(); - - /* Note, there may be other things you need to change, - depending on how you have your OpenGL state set up. - */ - glPushAttrib(GL_ENABLE_BIT); - glDisable(GL_DEPTH_TEST); - glDisable(GL_CULL_FACE); - glEnable(GL_TEXTURE_2D); - - /* This allows alpha blending of 2D textures with the scene */ - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - glViewport(0, 0, screen->w, screen->h); - - glMatrixMode(GL_PROJECTION); - glPushMatrix(); - glLoadIdentity(); - - glOrtho(0.0, (GLdouble) screen->w, (GLdouble) screen->h, 0.0, 0.0, 1.0); - - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - glLoadIdentity(); - - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL); -} - -void -SDL_GL_Leave2DMode() -{ - glMatrixMode(GL_MODELVIEW); - glPopMatrix(); - - glMatrixMode(GL_PROJECTION); - glPopMatrix(); - - glPopAttrib(); -} - -/* Quick utility function for texture creation */ -static int -power_of_two(int input) -{ - int value = 1; - - while (value < input) { - value <<= 1; - } - return value; -} - -GLuint -SDL_GL_LoadTexture(SDL_Surface * surface, GLfloat * texcoord) -{ - GLuint texture; - int w, h; - SDL_Surface *image; - SDL_Rect area; - Uint32 saved_flags; - Uint8 saved_alpha; - - /* Use the surface width and height expanded to powers of 2 */ - w = power_of_two(surface->w); - h = power_of_two(surface->h); - texcoord[0] = 0.0f; /* Min X */ - texcoord[1] = 0.0f; /* Min Y */ - texcoord[2] = (GLfloat) surface->w / w; /* Max X */ - texcoord[3] = (GLfloat) surface->h / h; /* Max Y */ - - image = SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, 32, -#if SDL_BYTEORDER == SDL_LIL_ENDIAN /* OpenGL RGBA masks */ - 0x000000FF, - 0x0000FF00, 0x00FF0000, 0xFF000000 -#else - 0xFF000000, - 0x00FF0000, 0x0000FF00, 0x000000FF -#endif - ); - if (image == NULL) { - return 0; - } - - /* Save the alpha blending attributes */ - saved_flags = surface->flags & (SDL_SRCALPHA | SDL_RLEACCELOK); - SDL_GetSurfaceAlphaMod(surface, &saved_alpha); - if ((saved_flags & SDL_SRCALPHA) == SDL_SRCALPHA) { - SDL_SetAlpha(surface, 0, 0); - } - - /* Copy the surface into the GL texture image */ - area.x = 0; - area.y = 0; - area.w = surface->w; - area.h = surface->h; - SDL_BlitSurface(surface, &area, image, &area); - - /* Restore the alpha blending attributes */ - if ((saved_flags & SDL_SRCALPHA) == SDL_SRCALPHA) { - SDL_SetAlpha(surface, saved_flags, saved_alpha); - } - - /* Create an OpenGL texture for the image */ - glGenTextures(1, &texture); - glBindTexture(GL_TEXTURE_2D, texture); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexImage2D(GL_TEXTURE_2D, - 0, - GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, image->pixels); - SDL_FreeSurface(image); /* No longer needed */ - - return texture; -} - -void -DrawLogoCursor(void) -{ - static GLfloat texMinX, texMinY; - static GLfloat texMaxX, texMaxY; - static int w, h; - int x, y; - - if (!cursor_texture) { - SDL_Surface *image; - GLfloat texcoord[4]; - - /* Load the image (could use SDL_image library here) */ - image = SDL_LoadBMP(LOGO_FILE); - if (image == NULL) { - return; - } - w = image->w; - h = image->h; - - /* Convert the image into an OpenGL texture */ - cursor_texture = SDL_GL_LoadTexture(image, texcoord); - - /* Make texture coordinates easy to understand */ - texMinX = texcoord[0]; - texMinY = texcoord[1]; - texMaxX = texcoord[2]; - texMaxY = texcoord[3]; - - /* We don't need the original image anymore */ - SDL_FreeSurface(image); - - /* Make sure that the texture conversion is okay */ - if (!cursor_texture) { - return; - } - } - - /* Move the image around */ - SDL_GetMouseState(&x, &y); - x -= w / 2; - y -= h / 2; - - /* Show the image on the screen */ - SDL_GL_Enter2DMode(); - glBindTexture(GL_TEXTURE_2D, cursor_texture); - glBegin(GL_TRIANGLE_STRIP); - glTexCoord2f(texMinX, texMinY); - glVertex2i(x, y); - glTexCoord2f(texMaxX, texMinY); - glVertex2i(x + w, y); - glTexCoord2f(texMinX, texMaxY); - glVertex2i(x, y + h); - glTexCoord2f(texMaxX, texMaxY); - glVertex2i(x + w, y + h); - glEnd(); - SDL_GL_Leave2DMode(); -} - -void -DrawLogoTexture(void) -{ - static GLfloat texMinX, texMinY; - static GLfloat texMaxX, texMaxY; - static int x = 0; - static int y = 0; - static int w, h; - static int delta_x = 1; - static int delta_y = 1; - - SDL_Surface *screen = SDL_GetVideoSurface(); - - if (!global_texture) { - SDL_Surface *image; - GLfloat texcoord[4]; - - /* Load the image (could use SDL_image library here) */ - image = SDL_LoadBMP(LOGO_FILE); - if (image == NULL) { - return; - } - w = image->w; - h = image->h; - - /* Convert the image into an OpenGL texture */ - global_texture = SDL_GL_LoadTexture(image, texcoord); - - /* Make texture coordinates easy to understand */ - texMinX = texcoord[0]; - texMinY = texcoord[1]; - texMaxX = texcoord[2]; - texMaxY = texcoord[3]; - - /* We don't need the original image anymore */ - SDL_FreeSurface(image); - - /* Make sure that the texture conversion is okay */ - if (!global_texture) { - return; - } - } - - /* Move the image around */ - x += delta_x; - if (x < 0) { - x = 0; - delta_x = -delta_x; - } else if ((x + w) > screen->w) { - x = screen->w - w; - delta_x = -delta_x; - } - y += delta_y; - if (y < 0) { - y = 0; - delta_y = -delta_y; - } else if ((y + h) > screen->h) { - y = screen->h - h; - delta_y = -delta_y; - } - - /* Show the image on the screen */ - SDL_GL_Enter2DMode(); - glBindTexture(GL_TEXTURE_2D, global_texture); - glBegin(GL_TRIANGLE_STRIP); - glTexCoord2f(texMinX, texMinY); - glVertex2i(x, y); - glTexCoord2f(texMaxX, texMinY); - glVertex2i(x + w, y); - glTexCoord2f(texMinX, texMaxY); - glVertex2i(x, y + h); - glTexCoord2f(texMaxX, texMaxY); - glVertex2i(x + w, y + h); - glEnd(); - SDL_GL_Leave2DMode(); -} - -int -RunGLTest(int argc, char *argv[], - int logo, int logocursor, int slowly, int bpp, float gamma, - int noframe, int fsaa, int sync, int accel) -{ - int i; - int rgb_size[3]; - int w = 640; - int h = 480; - int done = 0; - int frames; - Uint32 start_time, this_time; - float color[8][3] = { {1.0, 1.0, 0.0}, - {1.0, 0.0, 0.0}, - {0.0, 0.0, 0.0}, - {0.0, 1.0, 0.0}, - {0.0, 1.0, 1.0}, - {1.0, 1.0, 1.0}, - {1.0, 0.0, 1.0}, - {0.0, 0.0, 1.0} - }; - float cube[8][3] = { {0.5, 0.5, -0.5}, - {0.5, -0.5, -0.5}, - {-0.5, -0.5, -0.5}, - {-0.5, 0.5, -0.5}, - {-0.5, 0.5, 0.5}, - {0.5, 0.5, 0.5}, - {0.5, -0.5, 0.5}, - {-0.5, -0.5, 0.5} - }; - Uint32 video_flags; - int value; - - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - exit(1); - } - - /* See if we should detect the display depth */ - if (bpp == 0) { - if (SDL_GetVideoInfo()->vfmt->BitsPerPixel <= 8) { - bpp = 8; - } else { - bpp = 16; /* More doesn't seem to work */ - } - } - - /* Set the flags we want to use for setting the video mode */ - video_flags = SDL_OPENGL; - for (i = 1; argv[i]; ++i) { - if (strcmp(argv[i], "-fullscreen") == 0) { - video_flags |= SDL_FULLSCREEN; - } - } - - if (noframe) { - video_flags |= SDL_NOFRAME; - } - - /* Initialize the display */ - switch (bpp) { - case 8: - rgb_size[0] = 3; - rgb_size[1] = 3; - rgb_size[2] = 2; - break; - case 15: - case 16: - rgb_size[0] = 5; - rgb_size[1] = 5; - rgb_size[2] = 5; - break; - default: - rgb_size[0] = 8; - rgb_size[1] = 8; - rgb_size[2] = 8; - break; - } - SDL_GL_SetAttribute(SDL_GL_RED_SIZE, rgb_size[0]); - SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, rgb_size[1]); - SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, rgb_size[2]); - SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16); - SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); - if (fsaa) { - SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1); - SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, fsaa); - } - if (accel >= 0) { - SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, accel); - } - if (SDL_SetVideoMode(w, h, bpp, video_flags) == NULL) { - fprintf(stderr, "Couldn't set GL mode: %s\n", SDL_GetError()); - SDL_Quit(); - exit(1); - } - if (sync) { - SDL_GL_SetSwapInterval(1); - } else { - SDL_GL_SetSwapInterval(0); - } - - printf("Screen BPP: %d\n", SDL_GetVideoSurface()->format->BitsPerPixel); - printf("\n"); - printf("Vendor : %s\n", glGetString(GL_VENDOR)); - printf("Renderer : %s\n", glGetString(GL_RENDERER)); - printf("Version : %s\n", glGetString(GL_VERSION)); - printf("Extensions : %s\n", glGetString(GL_EXTENSIONS)); - printf("\n"); - - SDL_GL_GetAttribute(SDL_GL_RED_SIZE, &value); - printf("SDL_GL_RED_SIZE: requested %d, got %d\n", rgb_size[0], value); - SDL_GL_GetAttribute(SDL_GL_GREEN_SIZE, &value); - printf("SDL_GL_GREEN_SIZE: requested %d, got %d\n", rgb_size[1], value); - SDL_GL_GetAttribute(SDL_GL_BLUE_SIZE, &value); - printf("SDL_GL_BLUE_SIZE: requested %d, got %d\n", rgb_size[2], value); - SDL_GL_GetAttribute(SDL_GL_DEPTH_SIZE, &value); - printf("SDL_GL_DEPTH_SIZE: requested %d, got %d\n", bpp, value); - SDL_GL_GetAttribute(SDL_GL_DOUBLEBUFFER, &value); - printf("SDL_GL_DOUBLEBUFFER: requested 1, got %d\n", value); - if (fsaa) { - SDL_GL_GetAttribute(SDL_GL_MULTISAMPLEBUFFERS, &value); - printf("SDL_GL_MULTISAMPLEBUFFERS: requested 1, got %d\n", value); - SDL_GL_GetAttribute(SDL_GL_MULTISAMPLESAMPLES, &value); - printf("SDL_GL_MULTISAMPLESAMPLES: requested %d, got %d\n", fsaa, - value); - } - if (accel >= 0) { - SDL_GL_GetAttribute(SDL_GL_ACCELERATED_VISUAL, &value); - printf("SDL_GL_ACCELERATED_VISUAL: requested %d, got %d\n", accel, - value); - } - if (sync) { - printf("Buffer swap interval: requested 1, got %d\n", - SDL_GL_GetSwapInterval()); - } - - /* Set the window manager title bar */ - SDL_WM_SetCaption("SDL GL test", "testgl"); - - /* Set the gamma for the window */ - if (gamma != 0.0) { - SDL_SetGamma(gamma, gamma, gamma); - } - - glViewport(0, 0, w, h); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - - glOrtho(-2.0, 2.0, -2.0, 2.0, -20.0, 20.0); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - glEnable(GL_DEPTH_TEST); - - glDepthFunc(GL_LESS); - - glShadeModel(GL_SMOOTH); - - /* Loop until done. */ - start_time = SDL_GetTicks(); - frames = 0; - while (!done) { - GLenum gl_error; - char *sdl_error; - SDL_Event event; - - /* Do our drawing, too. */ - glClearColor(0.0, 0.0, 0.0, 1.0); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glBegin(GL_QUADS); - -#ifdef SHADED_CUBE - glColor3fv(color[0]); - glVertex3fv(cube[0]); - glColor3fv(color[1]); - glVertex3fv(cube[1]); - glColor3fv(color[2]); - glVertex3fv(cube[2]); - glColor3fv(color[3]); - glVertex3fv(cube[3]); - - glColor3fv(color[3]); - glVertex3fv(cube[3]); - glColor3fv(color[4]); - glVertex3fv(cube[4]); - glColor3fv(color[7]); - glVertex3fv(cube[7]); - glColor3fv(color[2]); - glVertex3fv(cube[2]); - - glColor3fv(color[0]); - glVertex3fv(cube[0]); - glColor3fv(color[5]); - glVertex3fv(cube[5]); - glColor3fv(color[6]); - glVertex3fv(cube[6]); - glColor3fv(color[1]); - glVertex3fv(cube[1]); - - glColor3fv(color[5]); - glVertex3fv(cube[5]); - glColor3fv(color[4]); - glVertex3fv(cube[4]); - glColor3fv(color[7]); - glVertex3fv(cube[7]); - glColor3fv(color[6]); - glVertex3fv(cube[6]); - - glColor3fv(color[5]); - glVertex3fv(cube[5]); - glColor3fv(color[0]); - glVertex3fv(cube[0]); - glColor3fv(color[3]); - glVertex3fv(cube[3]); - glColor3fv(color[4]); - glVertex3fv(cube[4]); - - glColor3fv(color[6]); - glVertex3fv(cube[6]); - glColor3fv(color[1]); - glVertex3fv(cube[1]); - glColor3fv(color[2]); - glVertex3fv(cube[2]); - glColor3fv(color[7]); - glVertex3fv(cube[7]); -#else /* flat cube */ - glColor3f(1.0, 0.0, 0.0); - glVertex3fv(cube[0]); - glVertex3fv(cube[1]); - glVertex3fv(cube[2]); - glVertex3fv(cube[3]); - - glColor3f(0.0, 1.0, 0.0); - glVertex3fv(cube[3]); - glVertex3fv(cube[4]); - glVertex3fv(cube[7]); - glVertex3fv(cube[2]); - - glColor3f(0.0, 0.0, 1.0); - glVertex3fv(cube[0]); - glVertex3fv(cube[5]); - glVertex3fv(cube[6]); - glVertex3fv(cube[1]); - - glColor3f(0.0, 1.0, 1.0); - glVertex3fv(cube[5]); - glVertex3fv(cube[4]); - glVertex3fv(cube[7]); - glVertex3fv(cube[6]); - - glColor3f(1.0, 1.0, 0.0); - glVertex3fv(cube[5]); - glVertex3fv(cube[0]); - glVertex3fv(cube[3]); - glVertex3fv(cube[4]); - - glColor3f(1.0, 0.0, 1.0); - glVertex3fv(cube[6]); - glVertex3fv(cube[1]); - glVertex3fv(cube[2]); - glVertex3fv(cube[7]); -#endif /* SHADED_CUBE */ - - glEnd(); - - glMatrixMode(GL_MODELVIEW); - glRotatef(5.0, 1.0, 1.0, 1.0); - - /* Draw 2D logo onto the 3D display */ - if (logo) { - DrawLogoTexture(); - } - if (logocursor) { - DrawLogoCursor(); - } - - SDL_GL_SwapBuffers(); - - /* Check for error conditions. */ - gl_error = glGetError(); - - if (gl_error != GL_NO_ERROR) { - fprintf(stderr, "testgl: OpenGL error: %d\n", gl_error); - } - - sdl_error = (char *)SDL_GetError(); - - if (sdl_error[0] != '\0') { - fprintf(stderr, "testgl: SDL error '%s'\n", sdl_error); - SDL_ClearError(); - } - - /* Allow the user to see what's happening */ - if (slowly) { - SDL_Delay(20); - } - - /* Check if there's a pending event. */ - while (SDL_PollEvent(&event)) { - done |= HandleEvent(&event); - } - ++frames; - } - - /* Print out the frames per second */ - this_time = SDL_GetTicks(); - if (this_time != start_time) { - printf("%2.2f FPS\n", - ((float) frames / (this_time - start_time)) * 1000.0); - } - - if (global_image) { - SDL_FreeSurface(global_image); - global_image = NULL; - } - if (global_texture) { - glDeleteTextures(1, &global_texture); - global_texture = 0; - } - if (cursor_texture) { - glDeleteTextures(1, &cursor_texture); - cursor_texture = 0; - } - - /* Destroy our GL context, etc. */ - SDL_Quit(); - return (0); -} - -int -main(int argc, char *argv[]) -{ - int i, logo, logocursor = 0; - int numtests; - int bpp = 0; - int slowly; - float gamma = 0.0; - int noframe = 0; - int fsaa = 0; - int accel = -1; - int sync = 0; - - logo = 0; - slowly = 0; - numtests = 1; - for (i = 1; argv[i]; ++i) { - if (strcmp(argv[i], "-twice") == 0) { - ++numtests; - } - if (strcmp(argv[i], "-logo") == 0) { - logo = 1; - } - if (strcmp(argv[i], "-logocursor") == 0) { - logocursor = 1; - } - if (strcmp(argv[i], "-slow") == 0) { - slowly = 1; - } - if (strcmp(argv[i], "-bpp") == 0) { - bpp = atoi(argv[++i]); - } - if (strcmp(argv[i], "-gamma") == 0) { - gamma = (float) atof(argv[++i]); - } - if (strcmp(argv[i], "-noframe") == 0) { - noframe = 1; - } - if (strcmp(argv[i], "-fsaa") == 0) { - ++fsaa; - } - if (strcmp(argv[i], "-accel") == 0) { - accel = atoi(argv[++i]); - } - if (strcmp(argv[i], "-sync") == 0) { - ++sync; - } - if (strncmp(argv[i], "-h", 2) == 0) { - printf - ("Usage: %s [-twice] [-logo] [-logocursor] [-slow] [-bpp n] [-gamma n] [-noframe] [-fsaa] [-accel n] [-sync] [-fullscreen]\n", - argv[0]); - exit(0); - } - } - for (i = 0; i < numtests; ++i) { - RunGLTest(argc, argv, logo, logocursor, slowly, bpp, gamma, - noframe, fsaa, sync, accel); - } - return 0; -} - -#else /* HAVE_OPENGL */ - -int -main(int argc, char *argv[]) -{ - printf("No OpenGL support on this system\n"); - return 1; -} - -#endif /* HAVE_OPENGL */ diff --git a/3rdparty/SDL-1.3.0-5387/test/testgl2.c b/3rdparty/SDL-1.3.0-5387/test/testgl2.c deleted file mode 100644 index 8e82c64885..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testgl2.c +++ /dev/null @@ -1,347 +0,0 @@ -#include -#include -#include -#include - -#include "common.h" - -#ifdef __MACOS__ -#define HAVE_OPENGL -#endif - -#ifdef HAVE_OPENGL - -#include "SDL_opengl.h" - -/* Undefine this if you want a flat cube instead of a rainbow cube */ -#define SHADED_CUBE - -static CommonState *state; -static SDL_GLContext context; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - if (context) { - /* SDL_GL_MakeCurrent(0, NULL); *//* doesn't do anything */ - SDL_GL_DeleteContext(context); - } - CommonQuit(state); - exit(rc); -} - -static void -Render() -{ - static float color[8][3] = { - {1.0, 1.0, 0.0}, - {1.0, 0.0, 0.0}, - {0.0, 0.0, 0.0}, - {0.0, 1.0, 0.0}, - {0.0, 1.0, 1.0}, - {1.0, 1.0, 1.0}, - {1.0, 0.0, 1.0}, - {0.0, 0.0, 1.0} - }; - static float cube[8][3] = { - {0.5, 0.5, -0.5}, - {0.5, -0.5, -0.5}, - {-0.5, -0.5, -0.5}, - {-0.5, 0.5, -0.5}, - {-0.5, 0.5, 0.5}, - {0.5, 0.5, 0.5}, - {0.5, -0.5, 0.5}, - {-0.5, -0.5, 0.5} - }; - - /* Do our drawing, too. */ - glClearColor(0.0, 0.0, 0.0, 1.0); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glBegin(GL_QUADS); - -#ifdef SHADED_CUBE - glColor3fv(color[0]); - glVertex3fv(cube[0]); - glColor3fv(color[1]); - glVertex3fv(cube[1]); - glColor3fv(color[2]); - glVertex3fv(cube[2]); - glColor3fv(color[3]); - glVertex3fv(cube[3]); - - glColor3fv(color[3]); - glVertex3fv(cube[3]); - glColor3fv(color[4]); - glVertex3fv(cube[4]); - glColor3fv(color[7]); - glVertex3fv(cube[7]); - glColor3fv(color[2]); - glVertex3fv(cube[2]); - - glColor3fv(color[0]); - glVertex3fv(cube[0]); - glColor3fv(color[5]); - glVertex3fv(cube[5]); - glColor3fv(color[6]); - glVertex3fv(cube[6]); - glColor3fv(color[1]); - glVertex3fv(cube[1]); - - glColor3fv(color[5]); - glVertex3fv(cube[5]); - glColor3fv(color[4]); - glVertex3fv(cube[4]); - glColor3fv(color[7]); - glVertex3fv(cube[7]); - glColor3fv(color[6]); - glVertex3fv(cube[6]); - - glColor3fv(color[5]); - glVertex3fv(cube[5]); - glColor3fv(color[0]); - glVertex3fv(cube[0]); - glColor3fv(color[3]); - glVertex3fv(cube[3]); - glColor3fv(color[4]); - glVertex3fv(cube[4]); - - glColor3fv(color[6]); - glVertex3fv(cube[6]); - glColor3fv(color[1]); - glVertex3fv(cube[1]); - glColor3fv(color[2]); - glVertex3fv(cube[2]); - glColor3fv(color[7]); - glVertex3fv(cube[7]); -#else /* flat cube */ - glColor3f(1.0, 0.0, 0.0); - glVertex3fv(cube[0]); - glVertex3fv(cube[1]); - glVertex3fv(cube[2]); - glVertex3fv(cube[3]); - - glColor3f(0.0, 1.0, 0.0); - glVertex3fv(cube[3]); - glVertex3fv(cube[4]); - glVertex3fv(cube[7]); - glVertex3fv(cube[2]); - - glColor3f(0.0, 0.0, 1.0); - glVertex3fv(cube[0]); - glVertex3fv(cube[5]); - glVertex3fv(cube[6]); - glVertex3fv(cube[1]); - - glColor3f(0.0, 1.0, 1.0); - glVertex3fv(cube[5]); - glVertex3fv(cube[4]); - glVertex3fv(cube[7]); - glVertex3fv(cube[6]); - - glColor3f(1.0, 1.0, 0.0); - glVertex3fv(cube[5]); - glVertex3fv(cube[0]); - glVertex3fv(cube[3]); - glVertex3fv(cube[4]); - - glColor3f(1.0, 0.0, 1.0); - glVertex3fv(cube[6]); - glVertex3fv(cube[1]); - glVertex3fv(cube[2]); - glVertex3fv(cube[7]); -#endif /* SHADED_CUBE */ - - glEnd(); - - glMatrixMode(GL_MODELVIEW); - glRotatef(5.0, 1.0, 1.0, 1.0); -} - -int -main(int argc, char *argv[]) -{ - int fsaa, accel; - int value; - int i, done; - SDL_DisplayMode mode; - SDL_Event event; - Uint32 then, now, frames; - int status; - - /* Initialize parameters */ - fsaa = 0; - accel = -1; - - /* Initialize test framework */ - state = CommonCreateState(argv, SDL_INIT_VIDEO); - if (!state) { - return 1; - } - for (i = 1; i < argc;) { - int consumed; - - consumed = CommonArg(state, i); - if (consumed == 0) { - if (SDL_strcasecmp(argv[i], "--fsaa") == 0) { - ++fsaa; - consumed = 1; - } else if (SDL_strcasecmp(argv[i], "--accel") == 0 && i+1 < argc) { - accel = atoi(argv[i+1]); - consumed = 2; - } else { - consumed = -1; - } - } - if (consumed < 0) { - fprintf(stderr, "Usage: %s %s [--fsaa] [--accel n]\n", argv[0], - CommonUsage(state)); - quit(1); - } - i += consumed; - } - - /* Set OpenGL parameters */ - state->window_flags |= SDL_WINDOW_OPENGL; - state->gl_red_size = 5; - state->gl_green_size = 5; - state->gl_blue_size = 5; - state->gl_depth_size = 16; - state->gl_double_buffer = 1; - if (fsaa) { - state->gl_multisamplebuffers = 1; - state->gl_multisamplesamples = fsaa; - } - if (accel >= 0) { - state->gl_accelerated = accel; - } - - if (!CommonInit(state)) { - quit(2); - } - - /* Create OpenGL context */ - context = SDL_GL_CreateContext(state->windows[0]); - if (!context) { - fprintf(stderr, "SDL_GL_CreateContext(): %s\n", SDL_GetError()); - quit(2); - } - - if (state->render_flags & SDL_RENDERER_PRESENTVSYNC) { - SDL_GL_SetSwapInterval(1); - } else { - SDL_GL_SetSwapInterval(0); - } - - SDL_GetCurrentDisplayMode(0, &mode); - printf("Screen BPP: %d\n", SDL_BITSPERPIXEL(mode.format)); - printf("\n"); - printf("Vendor : %s\n", glGetString(GL_VENDOR)); - printf("Renderer : %s\n", glGetString(GL_RENDERER)); - printf("Version : %s\n", glGetString(GL_VERSION)); - printf("Extensions : %s\n", glGetString(GL_EXTENSIONS)); - printf("\n"); - - status = SDL_GL_GetAttribute(SDL_GL_RED_SIZE, &value); - if (!status) { - printf("SDL_GL_RED_SIZE: requested %d, got %d\n", 5, value); - } else { - printf("Failed to get SDL_GL_RED_SIZE: %s\n", SDL_GetError()); - } - status = SDL_GL_GetAttribute(SDL_GL_GREEN_SIZE, &value); - if (!status) { - printf("SDL_GL_GREEN_SIZE: requested %d, got %d\n", 5, value); - } else { - printf("Failed to get SDL_GL_GREEN_SIZE: %s\n", SDL_GetError()); - } - status = SDL_GL_GetAttribute(SDL_GL_BLUE_SIZE, &value); - if (!status) { - printf("SDL_GL_BLUE_SIZE: requested %d, got %d\n", 5, value); - } else { - printf("Failed to get SDL_GL_BLUE_SIZE: %s\n", SDL_GetError()); - } - status = SDL_GL_GetAttribute(SDL_GL_DEPTH_SIZE, &value); - if (!status) { - printf("SDL_GL_DEPTH_SIZE: requested %d, got %d\n", 16, value); - } else { - printf("Failed to get SDL_GL_DEPTH_SIZE: %s\n", SDL_GetError()); - } - if (fsaa) { - status = SDL_GL_GetAttribute(SDL_GL_MULTISAMPLEBUFFERS, &value); - if (!status) { - printf("SDL_GL_MULTISAMPLEBUFFERS: requested 1, got %d\n", value); - } else { - printf("Failed to get SDL_GL_MULTISAMPLEBUFFERS: %s\n", - SDL_GetError()); - } - status = SDL_GL_GetAttribute(SDL_GL_MULTISAMPLESAMPLES, &value); - if (!status) { - printf("SDL_GL_MULTISAMPLESAMPLES: requested %d, got %d\n", fsaa, - value); - } else { - printf("Failed to get SDL_GL_MULTISAMPLESAMPLES: %s\n", - SDL_GetError()); - } - } - if (accel >= 0) { - status = SDL_GL_GetAttribute(SDL_GL_ACCELERATED_VISUAL, &value); - if (!status) { - printf("SDL_GL_ACCELERATED_VISUAL: requested %d, got %d\n", accel, - value); - } else { - printf("Failed to get SDL_GL_ACCELERATED_VISUAL: %s\n", - SDL_GetError()); - } - } - - /* Set rendering settings */ - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glOrtho(-2.0, 2.0, -2.0, 2.0, -20.0, 20.0); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glEnable(GL_DEPTH_TEST); - glDepthFunc(GL_LESS); - glShadeModel(GL_SMOOTH); - - /* Main render loop */ - frames = 0; - then = SDL_GetTicks(); - done = 0; - while (!done) { - /* Check for events */ - ++frames; - while (SDL_PollEvent(&event)) { - CommonEvent(state, &event, &done); - } - for (i = 0; i < state->num_windows; ++i) { - int w, h; - SDL_GL_MakeCurrent(state->windows[i], context); - SDL_GetWindowSize(state->windows[i], &w, &h); - glViewport(0, 0, w, h); - Render(); - SDL_GL_SwapWindow(state->windows[i]); - } - } - - /* Print out some timing information */ - now = SDL_GetTicks(); - if (now > then) { - printf("%2.2f frames per second\n", - ((double) frames * 1000) / (now - then)); - } - quit(0); - return 0; -} - -#else /* HAVE_OPENGL */ - -int -main(int argc, char *argv[]) -{ - printf("No OpenGL support on this system\n"); - return 1; -} - -#endif /* HAVE_OPENGL */ diff --git a/3rdparty/SDL-1.3.0-5387/test/testgles.c b/3rdparty/SDL-1.3.0-5387/test/testgles.c deleted file mode 100644 index 99410f8b0f..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testgles.c +++ /dev/null @@ -1,334 +0,0 @@ -#include -#include -#include -#include - -#include "common.h" - -#if defined(__IPHONEOS__) || defined(__ANDROID__) -#define HAVE_OPENGLES -#endif - -#ifdef HAVE_OPENGLES - -#include "SDL_opengles.h" - -static CommonState *state; -static SDL_GLContext *context = NULL; -static int depth = 16; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - int i; - - if (context != NULL) { - for (i = 0; i < state->num_windows; i++) { - if (context[i]) { - SDL_GL_DeleteContext(context[i]); - } - } - - SDL_free(context); - } - - CommonQuit(state); - exit(rc); -} - -static void -Render() -{ - static GLubyte color[8][4] = { {255, 0, 0, 0}, - {255, 0, 0, 255}, - {0, 255, 0, 255}, - {0, 255, 0, 255}, - {0, 255, 0, 255}, - {255, 255, 255, 255}, - {255, 0, 255, 255}, - {0, 0, 255, 255} - }; - static GLfloat cube[8][3] = { {0.5, 0.5, -0.5}, - {0.5f, -0.5f, -0.5f}, - {-0.5f, -0.5f, -0.5f}, - {-0.5f, 0.5f, -0.5f}, - {-0.5f, 0.5f, 0.5f}, - {0.5f, 0.5f, 0.5f}, - {0.5f, -0.5f, 0.5f}, - {-0.5f, -0.5f, 0.5f} - }; - static GLubyte indices[36] = { 0, 3, 4, - 4, 5, 0, - 0, 5, 6, - 6, 1, 0, - 6, 7, 2, - 2, 1, 6, - 7, 4, 3, - 3, 2, 7, - 5, 4, 7, - 7, 6, 5, - 2, 3, 1, - 3, 0, 1 - }; - - - /* Do our drawing, too. */ - glClearColor(0.0, 0.0, 0.0, 1.0); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - /* Draw the cube */ - glColorPointer(4, GL_UNSIGNED_BYTE, 0, color); - glEnableClientState(GL_COLOR_ARRAY); - glVertexPointer(3, GL_FLOAT, 0, cube); - glEnableClientState(GL_VERTEX_ARRAY); - glDrawElements(GL_TRIANGLES, 36, GL_UNSIGNED_BYTE, indices); - - glMatrixMode(GL_MODELVIEW); - glRotatef(5.0, 1.0, 1.0, 1.0); -} - -int -main(int argc, char *argv[]) -{ - int fsaa, accel; - int value; - int i, done; - SDL_DisplayMode mode; - SDL_Event event; - Uint32 then, now, frames; - int status; - - /* Initialize parameters */ - fsaa = 0; - accel = 0; - - /* Initialize test framework */ - state = CommonCreateState(argv, SDL_INIT_VIDEO); - if (!state) { - return 1; - } - for (i = 1; i < argc;) { - int consumed; - - consumed = CommonArg(state, i); - if (consumed == 0) { - if (SDL_strcasecmp(argv[i], "--fsaa") == 0) { - ++fsaa; - consumed = 1; - } else if (SDL_strcasecmp(argv[i], "--accel") == 0) { - ++accel; - consumed = 1; - } else if (SDL_strcasecmp(argv[i], "--zdepth") == 0) { - i++; - if (!argv[i]) { - consumed = -1; - } else { - depth = SDL_atoi(argv[i]); - consumed = 1; - } - } else { - consumed = -1; - } - } - if (consumed < 0) { - fprintf(stderr, "Usage: %s %s [--fsaa] [--accel] [--zdepth %%d]\n", argv[0], - CommonUsage(state)); - quit(1); - } - i += consumed; - } - - /* Set OpenGL parameters */ - state->window_flags |= SDL_WINDOW_OPENGL; - state->gl_red_size = 5; - state->gl_green_size = 5; - state->gl_blue_size = 5; - state->gl_depth_size = depth; - if (fsaa) { - state->gl_multisamplebuffers=1; - state->gl_multisamplesamples=fsaa; - } - if (accel) { - state->gl_accelerated=1; - } - if (!CommonInit(state)) { - quit(2); - } - - context = SDL_calloc(state->num_windows, sizeof(context)); - if (context == NULL) { - fprintf(stderr, "Out of memory!\n"); - quit(2); - } - - /* Create OpenGL ES contexts */ - for (i = 0; i < state->num_windows; i++) { - context[i] = SDL_GL_CreateContext(state->windows[i]); - if (!context[i]) { - fprintf(stderr, "SDL_GL_CreateContext(): %s\n", SDL_GetError()); - quit(2); - } - } - - if (state->render_flags & SDL_RENDERER_PRESENTVSYNC) { - SDL_GL_SetSwapInterval(1); - } else { - SDL_GL_SetSwapInterval(0); - } - - SDL_GetCurrentDisplayMode(0, &mode); - printf("Screen bpp: %d\n", SDL_BITSPERPIXEL(mode.format)); - printf("\n"); - printf("Vendor : %s\n", glGetString(GL_VENDOR)); - printf("Renderer : %s\n", glGetString(GL_RENDERER)); - printf("Version : %s\n", glGetString(GL_VERSION)); - printf("Extensions : %s\n", glGetString(GL_EXTENSIONS)); - printf("\n"); - - status = SDL_GL_GetAttribute(SDL_GL_RED_SIZE, &value); - if (!status) { - printf("SDL_GL_RED_SIZE: requested %d, got %d\n", 5, value); - } else { - fprintf(stderr, "Failed to get SDL_GL_RED_SIZE: %s\n", - SDL_GetError()); - } - status = SDL_GL_GetAttribute(SDL_GL_GREEN_SIZE, &value); - if (!status) { - printf("SDL_GL_GREEN_SIZE: requested %d, got %d\n", 5, value); - } else { - fprintf(stderr, "Failed to get SDL_GL_GREEN_SIZE: %s\n", - SDL_GetError()); - } - status = SDL_GL_GetAttribute(SDL_GL_BLUE_SIZE, &value); - if (!status) { - printf("SDL_GL_BLUE_SIZE: requested %d, got %d\n", 5, value); - } else { - fprintf(stderr, "Failed to get SDL_GL_BLUE_SIZE: %s\n", - SDL_GetError()); - } - status = SDL_GL_GetAttribute(SDL_GL_DEPTH_SIZE, &value); - if (!status) { - printf("SDL_GL_DEPTH_SIZE: requested %d, got %d\n", depth, value); - } else { - fprintf(stderr, "Failed to get SDL_GL_DEPTH_SIZE: %s\n", - SDL_GetError()); - } - if (fsaa) { - status = SDL_GL_GetAttribute(SDL_GL_MULTISAMPLEBUFFERS, &value); - if (!status) { - printf("SDL_GL_MULTISAMPLEBUFFERS: requested 1, got %d\n", value); - } else { - fprintf(stderr, "Failed to get SDL_GL_MULTISAMPLEBUFFERS: %s\n", - SDL_GetError()); - } - status = SDL_GL_GetAttribute(SDL_GL_MULTISAMPLESAMPLES, &value); - if (!status) { - printf("SDL_GL_MULTISAMPLESAMPLES: requested %d, got %d\n", fsaa, - value); - } else { - fprintf(stderr, "Failed to get SDL_GL_MULTISAMPLESAMPLES: %s\n", - SDL_GetError()); - } - } - if (accel) { - status = SDL_GL_GetAttribute(SDL_GL_ACCELERATED_VISUAL, &value); - if (!status) { - printf("SDL_GL_ACCELERATED_VISUAL: requested 1, got %d\n", value); - } else { - fprintf(stderr, "Failed to get SDL_GL_ACCELERATED_VISUAL: %s\n", - SDL_GetError()); - } - } - - /* Set rendering settings for each context */ - for (i = 0; i < state->num_windows; ++i) { - float aspectAdjust; - - status = SDL_GL_MakeCurrent(state->windows[i], context[i]); - if (status) { - printf("SDL_GL_MakeCurrent(): %s\n", SDL_GetError()); - - /* Continue for next window */ - continue; - } - - aspectAdjust = (4.0f / 3.0f) / ((float)state->window_w / state->window_h); - glViewport(0, 0, state->window_w, state->window_h); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glOrthof(-2.0, 2.0, -2.0 * aspectAdjust, 2.0 * aspectAdjust, -20.0, 20.0); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glEnable(GL_DEPTH_TEST); - glDepthFunc(GL_LESS); - glShadeModel(GL_SMOOTH); - } - - /* Main render loop */ - frames = 0; - then = SDL_GetTicks(); - done = 0; - while (!done) { - /* Check for events */ - ++frames; - while (SDL_PollEvent(&event)) { - switch (event.type) { - case SDL_WINDOWEVENT: - switch (event.window.event) { - case SDL_WINDOWEVENT_RESIZED: - for (i = 0; i < state->num_windows; ++i) { - if (event.window.windowID == SDL_GetWindowID(state->windows[i])) { - status = SDL_GL_MakeCurrent(state->windows[i], context[i]); - if (status) { - printf("SDL_GL_MakeCurrent(): %s\n", SDL_GetError()); - break; - } - /* Change view port to the new window dimensions */ - glViewport(0, 0, event.window.data1, event.window.data2); - /* Update window content */ - Render(); - SDL_GL_SwapWindow(state->windows[i]); - break; - } - } - break; - } - } - CommonEvent(state, &event, &done); - } - for (i = 0; i < state->num_windows; ++i) { - status = SDL_GL_MakeCurrent(state->windows[i], context[i]); - if (status) { - printf("SDL_GL_MakeCurrent(): %s\n", SDL_GetError()); - - /* Continue for next window */ - continue; - } - Render(); - SDL_GL_SwapWindow(state->windows[i]); - } - } - - /* Print out some timing information */ - now = SDL_GetTicks(); - if (now > then) { - printf("%2.2f frames per second\n", - ((double) frames * 1000) / (now - then)); - } - quit(0); - return 0; -} - -#else /* HAVE_OPENGLES */ - -int -main(int argc, char *argv[]) -{ - printf("No OpenGL ES support on this system\n"); - return 1; -} - -#endif /* HAVE_OPENGLES */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/3rdparty/SDL-1.3.0-5387/test/testhaptic.c b/3rdparty/SDL-1.3.0-5387/test/testhaptic.c deleted file mode 100644 index 34975117c6..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testhaptic.c +++ /dev/null @@ -1,277 +0,0 @@ -/* -Copyright (c) 2008, Edgar Simo Serra -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of the Simple Directmedia Layer (SDL) nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - * includes - */ -#include -#include "SDL.h" -#include "SDL_haptic.h" - -#include /* printf */ -#include /* strstr */ -#include /* isdigit */ - - -static SDL_Haptic *haptic; - - -/* - * prototypes - */ -static void abort_execution(void); -static void HapticPrintSupported(SDL_Haptic * haptic); - - -/** - * @brief The entry point of this force feedback demo. - * @param[in] argc Number of arguments. - * @param[in] argv Array of argc arguments. - */ -int -main(int argc, char **argv) -{ - int i; - char *name; - int index; - SDL_HapticEffect efx[5]; - int id[5]; - int nefx; - unsigned int supported; - - name = NULL; - index = -1; - if (argc > 1) { - name = argv[1]; - if ((strcmp(name, "--help") == 0) || (strcmp(name, "-h") == 0)) { - printf("USAGE: %s [device]\n" - "If device is a two-digit number it'll use it as an index, otherwise\n" - "it'll use it as if it were part of the device's name.\n", - argv[0]); - return 0; - } - - i = strlen(name); - if ((i < 3) && isdigit(name[0]) && ((i == 1) || isdigit(name[1]))) { - index = atoi(name); - name = NULL; - } - } - - /* Initialize the force feedbackness */ - SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_JOYSTICK | - SDL_INIT_HAPTIC); - printf("%d Haptic devices detected.\n", SDL_NumHaptics()); - if (SDL_NumHaptics() > 0) { - /* We'll just use index or the first force feedback device found */ - if (name == NULL) { - i = (index != -1) ? index : 0; - } - /* Try to find matching device */ - else { - for (i = 0; i < SDL_NumHaptics(); i++) { - if (strstr(SDL_HapticName(i), name) != NULL) - break; - } - - if (i >= SDL_NumHaptics()) { - printf("Unable to find device matching '%s', aborting.\n", - name); - return 1; - } - } - - haptic = SDL_HapticOpen(i); - if (haptic == NULL) { - printf("Unable to create the haptic device: %s\n", - SDL_GetError()); - return 1; - } - printf("Device: %s\n", SDL_HapticName(i)); - HapticPrintSupported(haptic); - } else { - printf("No Haptic devices found!\n"); - return 1; - } - - /* We only want force feedback errors. */ - SDL_ClearError(); - - /* Create effects. */ - memset(&efx, 0, sizeof(efx)); - nefx = 0; - supported = SDL_HapticQuery(haptic); - - printf("\nUploading effects\n"); - /* First we'll try a SINE effect. */ - if (supported & SDL_HAPTIC_SINE) { - printf(" effect %d: Sine Wave\n", nefx); - efx[nefx].type = SDL_HAPTIC_SINE; - efx[nefx].periodic.period = 1000; - efx[nefx].periodic.magnitude = 0x4000; - efx[nefx].periodic.length = 5000; - efx[nefx].periodic.attack_length = 1000; - efx[nefx].periodic.fade_length = 1000; - id[nefx] = SDL_HapticNewEffect(haptic, &efx[nefx]); - if (id[nefx] < 0) { - printf("UPLOADING EFFECT ERROR: %s\n", SDL_GetError()); - abort_execution(); - } - nefx++; - } - /* Now we'll try a SAWTOOTHUP */ - if (supported & SDL_HAPTIC_SAWTOOTHUP) { - printf(" effect %d: Sawtooth Up\n", nefx); - efx[nefx].type = SDL_HAPTIC_SQUARE; - efx[nefx].periodic.period = 500; - efx[nefx].periodic.magnitude = 0x5000; - efx[nefx].periodic.length = 5000; - efx[nefx].periodic.attack_length = 1000; - efx[nefx].periodic.fade_length = 1000; - id[nefx] = SDL_HapticNewEffect(haptic, &efx[nefx]); - if (id[nefx] < 0) { - printf("UPLOADING EFFECT ERROR: %s\n", SDL_GetError()); - abort_execution(); - } - nefx++; - } - /* Now the classical constant effect. */ - if (supported & SDL_HAPTIC_CONSTANT) { - printf(" effect %d: Constant Force\n", nefx); - efx[nefx].type = SDL_HAPTIC_CONSTANT; - efx[nefx].constant.direction.type = SDL_HAPTIC_POLAR; - efx[nefx].constant.direction.dir[0] = 20000; /* Force comes from the south-west. */ - efx[nefx].constant.length = 5000; - efx[nefx].constant.level = 0x6000; - efx[nefx].constant.attack_length = 1000; - efx[nefx].constant.fade_length = 1000; - id[nefx] = SDL_HapticNewEffect(haptic, &efx[nefx]); - if (id[nefx] < 0) { - printf("UPLOADING EFFECT ERROR: %s\n", SDL_GetError()); - abort_execution(); - } - nefx++; - } - /* The cute spring effect. */ - if (supported & SDL_HAPTIC_SPRING) { - printf(" effect %d: Condition Spring\n", nefx); - efx[nefx].type = SDL_HAPTIC_SPRING; - efx[nefx].condition.length = 5000; - for (i = 0; i < SDL_HapticNumAxes(haptic); i++) { - efx[nefx].condition.right_sat[i] = 0x7FFF; - efx[nefx].condition.left_sat[i] = 0x7FFF; - efx[nefx].condition.right_coeff[i] = 0x2000; - efx[nefx].condition.left_coeff[i] = 0x2000; - efx[nefx].condition.center[i] = 0x1000; /* Displace the center for it to move. */ - } - id[nefx] = SDL_HapticNewEffect(haptic, &efx[nefx]); - if (id[nefx] < 0) { - printf("UPLOADING EFFECT ERROR: %s\n", SDL_GetError()); - abort_execution(); - } - nefx++; - } - /* The pretty awesome inertia effect. */ - if (supported & SDL_HAPTIC_INERTIA) { - printf(" effect %d: Condition Inertia\n", nefx); - efx[nefx].type = SDL_HAPTIC_SPRING; - efx[nefx].condition.length = 5000; - for (i = 0; i < SDL_HapticNumAxes(haptic); i++) { - efx[nefx].condition.right_sat[i] = 0x7FFF; - efx[nefx].condition.left_sat[i] = 0x7FFF; - efx[nefx].condition.right_coeff[i] = 0x2000; - efx[nefx].condition.left_coeff[i] = 0x2000; - } - id[nefx] = SDL_HapticNewEffect(haptic, &efx[nefx]); - if (id[nefx] < 0) { - printf("UPLOADING EFFECT ERROR: %s\n", SDL_GetError()); - abort_execution(); - } - nefx++; - } - - printf - ("\nNow playing effects for 5 seconds each with 1 second delay between\n"); - for (i = 0; i < nefx; i++) { - printf(" Playing effect %d\n", i); - SDL_HapticRunEffect(haptic, id[i], 1); - SDL_Delay(6000); /* Effects only have length 5000 */ - } - - /* Quit */ - if (haptic != NULL) - SDL_HapticClose(haptic); - SDL_Quit(); - - return 0; -} - - -/* - * Cleans up a bit. - */ -static void -abort_execution(void) -{ - printf("\nAborting program execution.\n"); - - SDL_HapticClose(haptic); - SDL_Quit(); - - exit(1); -} - - -/* - * Displays information about the haptic device. - */ -static void -HapticPrintSupported(SDL_Haptic * haptic) -{ - unsigned int supported; - - supported = SDL_HapticQuery(haptic); - printf(" Supported effects [%d effects, %d playing]:\n", - SDL_HapticNumEffects(haptic), SDL_HapticNumEffectsPlaying(haptic)); - if (supported & SDL_HAPTIC_CONSTANT) - printf(" constant\n"); - if (supported & SDL_HAPTIC_SINE) - printf(" sine\n"); - if (supported & SDL_HAPTIC_SQUARE) - printf(" square\n"); - if (supported & SDL_HAPTIC_TRIANGLE) - printf(" triangle\n"); - if (supported & SDL_HAPTIC_SAWTOOTHUP) - printf(" sawtoothup\n"); - if (supported & SDL_HAPTIC_SAWTOOTHDOWN) - printf(" sawtoothdown\n"); - if (supported & SDL_HAPTIC_RAMP) - printf(" ramp\n"); - if (supported & SDL_HAPTIC_FRICTION) - printf(" friction\n"); - if (supported & SDL_HAPTIC_SPRING) - printf(" spring\n"); - if (supported & SDL_HAPTIC_DAMPER) - printf(" damper\n"); - if (supported & SDL_HAPTIC_INERTIA) - printf(" intertia\n"); - if (supported & SDL_HAPTIC_CUSTOM) - printf(" custom\n"); - printf(" Supported capabilities:\n"); - if (supported & SDL_HAPTIC_GAIN) - printf(" gain\n"); - if (supported & SDL_HAPTIC_AUTOCENTER) - printf(" autocenter\n"); - if (supported & SDL_HAPTIC_STATUS) - printf(" status\n"); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testhread.c b/3rdparty/SDL-1.3.0-5387/test/testhread.c deleted file mode 100644 index 0676036bfb..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testhread.c +++ /dev/null @@ -1,76 +0,0 @@ - -/* Simple test of the SDL threading code */ - -#include -#include -#include - -#include "SDL.h" -#include "SDL_thread.h" - -static int alive = 0; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -int SDLCALL -ThreadFunc(void *data) -{ - printf("Started thread %s: My thread id is %lu\n", - (char *) data, SDL_ThreadID()); - while (alive) { - printf("Thread '%s' is alive!\n", (char *) data); - SDL_Delay(1 * 1000); - } - printf("Thread '%s' exiting!\n", (char *) data); - return (0); -} - -static void -killed(int sig) -{ - printf("Killed with SIGTERM, waiting 5 seconds to exit\n"); - SDL_Delay(5 * 1000); - alive = 0; - quit(0); -} - -int -main(int argc, char *argv[]) -{ - SDL_Thread *thread; - - /* Load the SDL library */ - if (SDL_Init(0) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - - alive = 1; - thread = SDL_CreateThread(ThreadFunc, "#1"); - if (thread == NULL) { - fprintf(stderr, "Couldn't create thread: %s\n", SDL_GetError()); - quit(1); - } - SDL_Delay(5 * 1000); - printf("Waiting for thread #1\n"); - alive = 0; - SDL_WaitThread(thread, NULL); - - alive = 1; - signal(SIGTERM, killed); - thread = SDL_CreateThread(ThreadFunc, "#2"); - if (thread == NULL) { - fprintf(stderr, "Couldn't create thread: %s\n", SDL_GetError()); - quit(1); - } - raise(SIGTERM); - - SDL_Quit(); /* Never reached */ - return (0); /* Never reached */ -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testiconv.c b/3rdparty/SDL-1.3.0-5387/test/testiconv.c deleted file mode 100644 index 0ffce65b67..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testiconv.c +++ /dev/null @@ -1,77 +0,0 @@ - -#include - -#include "SDL.h" - -static size_t -widelen(char *data) -{ - size_t len = 0; - Uint32 *p = (Uint32 *) data; - while (*p++) { - ++len; - } - return len; -} - -int -main(int argc, char *argv[]) -{ - const char *formats[] = { - "UTF8", - "UTF-8", - "UTF16BE", - "UTF-16BE", - "UTF16LE", - "UTF-16LE", - "UTF32BE", - "UTF-32BE", - "UTF32LE", - "UTF-32LE", - "UCS4", - "UCS-4", - }; - char buffer[BUFSIZ]; - char *ucs4; - char *test[2]; - int i, index = 0; - FILE *file; - int errors = 0; - - if (!argv[1]) { - argv[1] = "utf8.txt"; - } - file = fopen(argv[1], "rb"); - if (!file) { - fprintf(stderr, "Unable to open %s\n", argv[1]); - return (1); - } - - while (fgets(buffer, sizeof(buffer), file)) { - /* Convert to UCS-4 */ - size_t len; - ucs4 = - SDL_iconv_string("UCS-4", "UTF-8", buffer, - SDL_strlen(buffer) + 1); - len = (widelen(ucs4) + 1) * 4; - for (i = 0; i < SDL_arraysize(formats); ++i) { - test[0] = SDL_iconv_string(formats[i], "UCS-4", ucs4, len); - test[1] = SDL_iconv_string("UCS-4", formats[i], test[0], len); - if (!test[1] || SDL_memcmp(test[1], ucs4, len) != 0) { - fprintf(stderr, "FAIL: %s\n", formats[i]); - ++errors; - } - if (test[0]) { - SDL_free(test[0]); - } - if (test[1]) { - SDL_free(test[1]); - } - } - test[0] = SDL_iconv_string("UTF-8", "UCS-4", ucs4, len); - SDL_free(ucs4); - fputs(test[0], stdout); - SDL_free(test[0]); - } - return (errors ? errors + 1 : 0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testime.c b/3rdparty/SDL-1.3.0-5387/test/testime.c deleted file mode 100644 index a8d3cab94e..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testime.c +++ /dev/null @@ -1,376 +0,0 @@ -/* A simple program to test the Input Method support in the SDL library (1.3+) */ - -#include -#include -#include - -#include "SDL.h" -#ifdef HAVE_SDL_TTF -#include "SDL_ttf.h" -#endif - -#define DEFAULT_PTSIZE 30 -#define DEFAULT_FONT "/System/Library/Fonts/å�Žæ–‡ç»†é»‘.ttf" -#define MAX_TEXT_LENGTH 256 - -SDL_Surface *screen; - -#ifdef HAVE_SDL_TTF -TTF_Font *font; -#endif -SDL_Rect textRect, markedRect; -Uint32 lineColor, backColor; -SDL_Color textColor = { 0, 0, 0 }; -char text[MAX_TEXT_LENGTH], markedText[SDL_TEXTEDITINGEVENT_TEXT_SIZE]; -int cursor = 0; - -size_t utf8_length(unsigned char c) -{ - c = (unsigned char)(0xff & c); - if (c < 0x80) - return 1; - else if ((c >> 5) ==0x6) - return 2; - else if ((c >> 4) == 0xe) - return 3; - else if ((c >> 3) == 0x1e) - return 4; - else - return 0; -} - -char *utf8_next(char *p) -{ - size_t len = utf8_length(*p); - size_t i = 0; - if (!len) - return 0; - - for (; i < len; ++i) - { - ++p; - if (!*p) - return 0; - } - return p; -} - -char *utf8_advance(char *p, size_t distance) -{ - size_t i = 0; - for (; i < distance && p; ++i) - { - p = utf8_next(p); - } - return p; -} - -void usage() -{ - printf("usage: testime [--font fontfile] [--fullscreen]\n"); - exit(0); -} - -void InitVideo(int argc, char *argv[]) -{ - int width = 640, height = 480; - int flags = SDL_HWSURFACE; - const char *fontname = DEFAULT_FONT; - int fullscreen = 0; - - for (argc--, argv++; argc > 0; argc--, argv++) - { - if (strcmp(argv[0], "--help") == 0) - usage(); - - else if (strcmp(argv[0], "--fullscreen") == 0) - fullscreen = 1; - - else if (strcmp(argv[0], "--font") == 0) - { - argc--; - argv++; - - if (argc > 0) - fontname = argv[0]; - else - usage(); - } - } - - SDL_setenv("SDL_VIDEO_WINDOW_POS", "center", 1); - if (SDL_Init(SDL_INIT_VIDEO) < 0) - { - fprintf(stderr, "Unable to init SDL: %s\n", SDL_GetError()); - exit(-1); - } - -#ifdef HAVE_SDL_TTF - /* Initialize fonts */ - TTF_Init(); - - font = TTF_OpenFont(fontname, DEFAULT_PTSIZE); - if (! font) - { - fprintf(stderr, "Failed to find font: %s\n", TTF_GetError()); - exit(-1); - } -#endif - - printf("Using font: %s\n", fontname); - atexit(SDL_Quit); - - if (fullscreen) - { - /* Use the desktop mode */ - width = 0; - height = 0; - flags |= SDL_FULLSCREEN; - } - - /* Create window */ - screen = SDL_SetVideoMode(width, height, 32, flags); - if (screen == NULL) - { - fprintf(stderr, "Unable to set %dx%d video: %s\n", - width, height, SDL_GetError()); - exit(-1); - } -} - -void CleanupVideo() -{ - SDL_StopTextInput(); -#ifdef HAVE_SDL_TTF - TTF_CloseFont(font); - TTF_Quit(); -#endif -} - -void InitInput() -{ - backColor = SDL_MapRGB(screen->format, 0xFF, 0xFF, 0xFF); - lineColor = SDL_MapRGB(screen->format, 0x0, 0x0, 0x0); - - /* Prepare a rect for text input */ - textRect.x = textRect.y = 100; - textRect.w = screen->w - 2 * textRect.x; - textRect.h = 50; - - text[0] = 0; - markedRect = textRect; - markedText[0] = 0; - - SDL_StartTextInput(); -} - -#ifdef HAVE_SDL_TTF -static void RenderText(SDL_Surface *sur, - TTF_Font *font, - const char *text, - int x, int y, - SDL_Color color) -{ - if (text && *text) { - SDL_Surface *textSur = TTF_RenderUTF8_Blended(font, text, color); - SDL_Rect dest = { x, y, textSur->w, textSur->h }; - - SDL_BlitSurface(textSur, NULL, sur, &dest); - SDL_FreeSurface(textSur); - } -} -#endif - -void Redraw() -{ - int w = 0, h = textRect.h; - SDL_Rect cursorRect, underlineRect; - - SDL_FillRect(screen, &textRect, backColor); - -#ifdef HAVE_SDL_TTF - if (*text) - { - RenderText(screen, font, text, textRect.x, textRect.y, textColor); - TTF_SizeUTF8(font, text, &w, &h); - } -#endif - - markedRect.x = textRect.x + w; - markedRect.w = textRect.w - w; - if (markedRect.w < 0) - { - SDL_Flip(screen); - // Stop text input because we cannot hold any more characters - SDL_StopTextInput(); - return; - } - else - { - SDL_StartTextInput(); - } - - cursorRect = markedRect; - cursorRect.w = 2; - cursorRect.h = h; - - SDL_FillRect(screen, &markedRect, backColor); - if (markedText[0]) - { -#ifdef HAVE_SDL_TTF - if (cursor) - { - char *p = utf8_advance(markedText, cursor); - char c = 0; - if (!p) - p = &markedText[strlen(markedText)]; - - c = *p; - *p = 0; - TTF_SizeUTF8(font, markedText, &w, 0); - cursorRect.x += w; - *p = c; - } - RenderText(screen, font, markedText, markedRect.x, markedRect.y, textColor); - TTF_SizeUTF8(font, markedText, &w, &h); -#endif - - underlineRect = markedRect; - underlineRect.y += (h - 2); - underlineRect.h = 2; - underlineRect.w = w; - - SDL_FillRect(screen, &underlineRect, lineColor); - } - - SDL_FillRect(screen, &cursorRect, lineColor); - - SDL_Flip(screen); - - SDL_SetTextInputRect(&markedRect); -} - -void -HotKey_ToggleFullScreen(void) -{ - SDL_Surface *screen; - - screen = SDL_GetVideoSurface(); - if (SDL_WM_ToggleFullScreen(screen)) { - printf("Toggled fullscreen mode - now %s\n", - (screen->flags & SDL_FULLSCREEN) ? "fullscreen" : "windowed"); - } else { - printf("Unable to toggle fullscreen mode\n"); - } -} - -int main(int argc, char *argv[]) -{ - SDL_Event event; - int done = 0; - - InitVideo(argc, argv); - InitInput(); - Redraw(); - - while (! done && SDL_WaitEvent(&event)) - { - switch (event.type) - { - case SDL_KEYDOWN: - switch (event.key.keysym.sym) - { - case SDLK_ESCAPE: - done = 1; - break; - case SDLK_RETURN: - text[0]=0x00; - Redraw(); - break; - case SDLK_BACKSPACE: - { - int textlen=SDL_strlen(text); - - do { - if (textlen==0) - { - break; - } - if ((text[textlen-1] & 0x80) == 0x00) - { - /* One byte */ - text[textlen-1]=0x00; - break; - } - if ((text[textlen-1] & 0xC0) == 0x80) - { - /* Byte from the multibyte sequence */ - text[textlen-1]=0x00; - textlen--; - } - if ((text[textlen-1] & 0xC0) == 0xC0) - { - /* First byte of multibyte sequence */ - text[textlen-1]=0x00; - break; - } - } while(1); - - Redraw(); - } - break; - } - - if (done) - { - break; - } - - fprintf(stderr, - "Keyboard: scancode 0x%08X = %s, keycode 0x%08X = %s\n", - event.key.keysym.scancode, - SDL_GetScancodeName(event.key.keysym.scancode), - event.key.keysym.sym, SDL_GetKeyName(event.key.keysym.sym)); - break; - - case SDL_TEXTINPUT: - if (SDL_strlen(event.text.text) == 0 || event.text.text[0] == '\n' || - markedRect.w < 0) - break; - - fprintf(stderr, "Keyboard: text input \"%s\"\n", event.text.text); - - if (SDL_strlen(text) + SDL_strlen(event.text.text) < sizeof(text)) - SDL_strlcat(text, event.text.text, sizeof(text)); - - fprintf(stderr, "text inputed: %s\n", text); - - // After text inputed, we can clear up markedText because it - // is committed - markedText[0] = 0; - Redraw(); - break; - - case SDL_TEXTEDITING: - fprintf(stderr, "text editing \"%s\", selected range (%d, %d)\n", - event.edit.text, event.edit.start, event.edit.length); - - strcpy(markedText, event.edit.text); - cursor = event.edit.start; - Redraw(); - break; - - case SDL_QUIT: - done = 1; - break; - - default: - break; - } - } - - CleanupVideo(); - return 0; -} - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/3rdparty/SDL-1.3.0-5387/test/testintersections.c b/3rdparty/SDL-1.3.0-5387/test/testintersections.c deleted file mode 100644 index fa3120421c..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testintersections.c +++ /dev/null @@ -1,325 +0,0 @@ - -/* Simple program: draw as many random objects on the screen as possible */ - -#include -#include -#include - -#include "common.h" - -#define SWAP(typ,a,b) do{typ t=a;a=b;b=t;}while(0) -#define NUM_OBJECTS 100 - -static CommonState *state; -static int num_objects; -static SDL_bool cycle_color; -static SDL_bool cycle_alpha; -static int cycle_direction = 1; -static int current_alpha = 255; -static int current_color = 255; -static SDL_BlendMode blendMode = SDL_BLENDMODE_NONE; - -void -DrawPoints(SDL_Renderer * renderer) -{ - int i; - int x, y; - SDL_Rect viewport; - - /* Query the sizes */ - SDL_RenderGetViewport(renderer, &viewport); - - for (i = 0; i < num_objects * 4; ++i) { - /* Cycle the color and alpha, if desired */ - if (cycle_color) { - current_color += cycle_direction; - if (current_color < 0) { - current_color = 0; - cycle_direction = -cycle_direction; - } - if (current_color > 255) { - current_color = 255; - cycle_direction = -cycle_direction; - } - } - if (cycle_alpha) { - current_alpha += cycle_direction; - if (current_alpha < 0) { - current_alpha = 0; - cycle_direction = -cycle_direction; - } - if (current_alpha > 255) { - current_alpha = 255; - cycle_direction = -cycle_direction; - } - } - SDL_SetRenderDrawColor(renderer, 255, (Uint8) current_color, - (Uint8) current_color, (Uint8) current_alpha); - - x = rand() % viewport.w; - y = rand() % viewport.h; - SDL_RenderDrawPoint(renderer, x, y); - } -} - -#define MAX_LINES 16 -int num_lines = 0; -SDL_Rect lines[MAX_LINES]; -static int -add_line(int x1, int y1, int x2, int y2) -{ - if (num_lines >= MAX_LINES) - return 0; - if ((x1 == x2) && (y1 == y2)) - return 0; - - printf("adding line (%d, %d), (%d, %d)\n", x1, y1, x2, y2); - lines[num_lines].x = x1; - lines[num_lines].y = y1; - lines[num_lines].w = x2; - lines[num_lines].h = y2; - - return ++num_lines; -} - - -void -DrawLines(SDL_Renderer * renderer) -{ - int i; - int x1, y1, x2, y2; - SDL_Rect viewport; - - /* Query the sizes */ - SDL_RenderGetViewport(renderer, &viewport); - - SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); - - for (i = 0; i < num_lines; ++i) { - if (i == -1) { - SDL_RenderDrawLine(renderer, 0, 0, viewport.w - 1, viewport.h - 1); - SDL_RenderDrawLine(renderer, 0, viewport.h - 1, viewport.w - 1, 0); - SDL_RenderDrawLine(renderer, 0, viewport.h / 2, viewport.w - 1, viewport.h / 2); - SDL_RenderDrawLine(renderer, viewport.w / 2, 0, viewport.w / 2, viewport.h - 1); - } else { - SDL_RenderDrawLine(renderer, lines[i].x, lines[i].y, lines[i].w, lines[i].h); - } - } -} - -#define MAX_RECTS 16 -int num_rects = 0; -SDL_Rect rects[MAX_RECTS]; -static int -add_rect(int x1, int y1, int x2, int y2) -{ - if (num_rects >= MAX_RECTS) - return 0; - if ((x1 == x2) || (y1 == y2)) - return 0; - - if (x1 > x2) - SWAP(int, x1, x2); - if (y1 > y2) - SWAP(int, y1, y2); - - printf("adding rect (%d, %d), (%d, %d) [%dx%d]\n", x1, y1, x2, y2, - x2 - x1, y2 - y1); - - rects[num_rects].x = x1; - rects[num_rects].y = y1; - rects[num_rects].w = x2 - x1; - rects[num_rects].h = y2 - y1; - - return ++num_rects; -} - -static void -DrawRects(SDL_Renderer * renderer) -{ - SDL_SetRenderDrawColor(renderer, 255, 127, 0, 255); - SDL_RenderFillRects(renderer, rects, num_rects); -} - -static void -DrawRectLineIntersections(SDL_Renderer * renderer) -{ - int i, j; - - SDL_SetRenderDrawColor(renderer, 0, 255, 55, 255); - - for (i = 0; i < num_rects; i++) - for (j = 0; j < num_lines; j++) { - int x1, y1, x2, y2; - SDL_Rect r; - - r = rects[i]; - x1 = lines[j].x; - y1 = lines[j].y; - x2 = lines[j].w; - y2 = lines[j].h; - - if (SDL_IntersectRectAndLine(&r, &x1, &y1, &x2, &y2)) { - SDL_RenderDrawLine(renderer, x1, y1, x2, y2); - } - } -} - -static void -DrawRectRectIntersections(SDL_Renderer * renderer) -{ - int i, j; - - SDL_SetRenderDrawColor(renderer, 255, 200, 0, 255); - - for (i = 0; i < num_rects; i++) - for (j = i + 1; j < num_rects; j++) { - SDL_Rect r; - if (SDL_IntersectRect(&rects[i], &rects[j], &r)) { - SDL_RenderFillRect(renderer, &r); - } - } -} - -int -main(int argc, char *argv[]) -{ - int mouse_begin_x = -1, mouse_begin_y = -1; - int i, done; - SDL_Event event; - Uint32 then, now, frames; - - /* Initialize parameters */ - num_objects = NUM_OBJECTS; - - /* Initialize test framework */ - state = CommonCreateState(argv, SDL_INIT_VIDEO); - if (!state) { - return 1; - } - for (i = 1; i < argc;) { - int consumed; - - consumed = CommonArg(state, i); - if (consumed == 0) { - consumed = -1; - if (SDL_strcasecmp(argv[i], "--blend") == 0) { - if (argv[i + 1]) { - if (SDL_strcasecmp(argv[i + 1], "none") == 0) { - blendMode = SDL_BLENDMODE_NONE; - consumed = 2; - } else if (SDL_strcasecmp(argv[i + 1], "blend") == 0) { - blendMode = SDL_BLENDMODE_BLEND; - consumed = 2; - } else if (SDL_strcasecmp(argv[i + 1], "add") == 0) { - blendMode = SDL_BLENDMODE_ADD; - consumed = 2; - } else if (SDL_strcasecmp(argv[i + 1], "mod") == 0) { - blendMode = SDL_BLENDMODE_MOD; - consumed = 2; - } - } - } else if (SDL_strcasecmp(argv[i], "--cyclecolor") == 0) { - cycle_color = SDL_TRUE; - consumed = 1; - } else if (SDL_strcasecmp(argv[i], "--cyclealpha") == 0) { - cycle_alpha = SDL_TRUE; - consumed = 1; - } else if (SDL_isdigit(*argv[i])) { - num_objects = SDL_atoi(argv[i]); - consumed = 1; - } - } - if (consumed < 0) { - fprintf(stderr, - "Usage: %s %s [--blend none|blend|add|mod] [--cyclecolor] [--cyclealpha]\n", - argv[0], CommonUsage(state)); - return 1; - } - i += consumed; - } - if (!CommonInit(state)) { - return 2; - } - - /* Create the windows and initialize the renderers */ - for (i = 0; i < state->num_windows; ++i) { - SDL_Renderer *renderer = state->renderers[i]; - SDL_SetRenderDrawBlendMode(renderer, blendMode); - SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF); - SDL_RenderClear(renderer); - } - - srand(time(NULL)); - - /* Main render loop */ - frames = 0; - then = SDL_GetTicks(); - done = 0; - while (!done) { - /* Check for events */ - ++frames; - while (SDL_PollEvent(&event)) { - CommonEvent(state, &event, &done); - switch (event.type) { - case SDL_MOUSEBUTTONDOWN: - mouse_begin_x = event.button.x; - mouse_begin_y = event.button.y; - break; - case SDL_MOUSEBUTTONUP: - if (event.button.button == 3) - add_line(mouse_begin_x, mouse_begin_y, event.button.x, - event.button.y); - if (event.button.button == 1) - add_rect(mouse_begin_x, mouse_begin_y, event.button.x, - event.button.y); - break; - case SDL_KEYDOWN: - switch (event.key.keysym.sym) { - case 'l': - if (event.key.keysym.mod & KMOD_SHIFT) - num_lines = 0; - else - add_line(rand() % 640, rand() % 480, rand() % 640, - rand() % 480); - break; - case 'r': - if (event.key.keysym.mod & KMOD_SHIFT) - num_rects = 0; - else - add_rect(rand() % 640, rand() % 480, rand() % 640, - rand() % 480); - break; - } - break; - default: - break; - } - } - for (i = 0; i < state->num_windows; ++i) { - SDL_Renderer *renderer = state->renderers[i]; - SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF); - SDL_RenderClear(renderer); - - DrawRects(renderer); - DrawPoints(renderer); - DrawRectRectIntersections(renderer); - DrawLines(renderer); - DrawRectLineIntersections(renderer); - - SDL_RenderPresent(renderer); - } - } - - CommonQuit(state); - - /* Print out some timing information */ - now = SDL_GetTicks(); - if (now > then) { - double fps = ((double) frames * 1000) / (now - then); - printf("%2.2f frames per second\n", fps); - } - return 0; -} - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/3rdparty/SDL-1.3.0-5387/test/testjoystick.c b/3rdparty/SDL-1.3.0-5387/test/testjoystick.c deleted file mode 100644 index 53f98d918a..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testjoystick.c +++ /dev/null @@ -1,193 +0,0 @@ - -/* Simple program to test the SDL joystick routines */ - -#include -#include -#include - -#include "SDL.h" - -#ifdef __IPHONEOS__ -#define SCREEN_WIDTH 320 -#define SCREEN_HEIGHT 480 -#else -#define SCREEN_WIDTH 640 -#define SCREEN_HEIGHT 480 -#endif - -void -WatchJoystick(SDL_Joystick * joystick) -{ - SDL_Surface *screen; - const char *name; - int i, done; - SDL_Event event; - int x, y, draw; - SDL_Rect axis_area[6][2]; - - /* Set a video mode to display joystick axis position */ - screen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, 16, 0); - if (screen == NULL) { - fprintf(stderr, "Couldn't set video mode: %s\n", SDL_GetError()); - return; - } - - /* Print info about the joystick we are watching */ - name = SDL_JoystickName(SDL_JoystickIndex(joystick)); - printf("Watching joystick %d: (%s)\n", SDL_JoystickIndex(joystick), - name ? name : "Unknown Joystick"); - printf("Joystick has %d axes, %d hats, %d balls, and %d buttons\n", - SDL_JoystickNumAxes(joystick), SDL_JoystickNumHats(joystick), - SDL_JoystickNumBalls(joystick), SDL_JoystickNumButtons(joystick)); - - /* Initialize drawing rectangles */ - memset(axis_area, 0, (sizeof axis_area)); - draw = 0; - - /* Loop, getting joystick events! */ - done = 0; - while (!done) { - while (SDL_PollEvent(&event)) { - switch (event.type) { - case SDL_JOYAXISMOTION: - printf("Joystick %d axis %d value: %d\n", - event.jaxis.which, - event.jaxis.axis, event.jaxis.value); - break; - case SDL_JOYHATMOTION: - printf("Joystick %d hat %d value:", - event.jhat.which, event.jhat.hat); - if (event.jhat.value == SDL_HAT_CENTERED) - printf(" centered"); - if (event.jhat.value & SDL_HAT_UP) - printf(" up"); - if (event.jhat.value & SDL_HAT_RIGHT) - printf(" right"); - if (event.jhat.value & SDL_HAT_DOWN) - printf(" down"); - if (event.jhat.value & SDL_HAT_LEFT) - printf(" left"); - printf("\n"); - break; - case SDL_JOYBALLMOTION: - printf("Joystick %d ball %d delta: (%d,%d)\n", - event.jball.which, - event.jball.ball, event.jball.xrel, event.jball.yrel); - break; - case SDL_JOYBUTTONDOWN: - printf("Joystick %d button %d down\n", - event.jbutton.which, event.jbutton.button); - break; - case SDL_JOYBUTTONUP: - printf("Joystick %d button %d up\n", - event.jbutton.which, event.jbutton.button); - break; - case SDL_KEYDOWN: - if (event.key.keysym.sym != SDLK_ESCAPE) { - break; - } - /* Fall through to signal quit */ - case SDL_QUIT: - done = 1; - break; - default: - break; - } - } - /* Update visual joystick state */ - for (i = 0; i < SDL_JoystickNumButtons(joystick); ++i) { - SDL_Rect area; - - area.x = i * 34; - area.y = SCREEN_HEIGHT - 34; - area.w = 32; - area.h = 32; - if (SDL_JoystickGetButton(joystick, i) == SDL_PRESSED) { - SDL_FillRect(screen, &area, 0xFFFF); - } else { - SDL_FillRect(screen, &area, 0x0000); - } - SDL_UpdateRects(screen, 1, &area); - } - - for (i = 0; - i < SDL_JoystickNumAxes(joystick) / 2 - && i < SDL_arraysize(axis_area); ++i) { - /* Erase previous axes */ - SDL_FillRect(screen, &axis_area[i][draw], 0x0000); - - /* Draw the X/Y axis */ - draw = !draw; - x = (((int) SDL_JoystickGetAxis(joystick, i * 2 + 0)) + 32768); - x *= SCREEN_WIDTH; - x /= 65535; - if (x < 0) { - x = 0; - } else if (x > (SCREEN_WIDTH - 16)) { - x = SCREEN_WIDTH - 16; - } - y = (((int) SDL_JoystickGetAxis(joystick, i * 2 + 1)) + 32768); - y *= SCREEN_HEIGHT; - y /= 65535; - if (y < 0) { - y = 0; - } else if (y > (SCREEN_HEIGHT - 16)) { - y = SCREEN_HEIGHT - 16; - } - - axis_area[i][draw].x = (Sint16) x; - axis_area[i][draw].y = (Sint16) y; - axis_area[i][draw].w = 16; - axis_area[i][draw].h = 16; - SDL_FillRect(screen, &axis_area[i][draw], 0xFFFF); - - SDL_UpdateRects(screen, 2, axis_area[i]); - } - } -} - -int -main(int argc, char *argv[]) -{ - const char *name; - int i; - SDL_Joystick *joystick; - - /* Initialize SDL (Note: video is required to start event loop) */ - if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - exit(1); - } - - /* Print information about the joysticks */ - printf("There are %d joysticks attached\n", SDL_NumJoysticks()); - for (i = 0; i < SDL_NumJoysticks(); ++i) { - name = SDL_JoystickName(i); - printf("Joystick %d: %s\n", i, name ? name : "Unknown Joystick"); - joystick = SDL_JoystickOpen(i); - if (joystick == NULL) { - fprintf(stderr, "SDL_JoystickOpen(%d) failed: %s\n", i, - SDL_GetError()); - } else { - printf(" axes: %d\n", SDL_JoystickNumAxes(joystick)); - printf(" balls: %d\n", SDL_JoystickNumBalls(joystick)); - printf(" hats: %d\n", SDL_JoystickNumHats(joystick)); - printf(" buttons: %d\n", SDL_JoystickNumButtons(joystick)); - SDL_JoystickClose(joystick); - } - } - - if (argv[1]) { - joystick = SDL_JoystickOpen(atoi(argv[1])); - if (joystick == NULL) { - printf("Couldn't open joystick %d: %s\n", atoi(argv[1]), - SDL_GetError()); - } else { - WatchJoystick(joystick); - SDL_JoystickClose(joystick); - } - } - SDL_QuitSubSystem(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK); - - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testkeys.c b/3rdparty/SDL-1.3.0-5387/test/testkeys.c deleted file mode 100644 index e12fbfad42..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testkeys.c +++ /dev/null @@ -1,26 +0,0 @@ - -/* Print out all the scancodes we have, just to verify them */ - -#include -#include -#include -#include - -#include "SDL.h" - -int -main(int argc, char *argv[]) -{ - SDL_Scancode scancode; - - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - exit(1); - } - for (scancode = 0; scancode < SDL_NUM_SCANCODES; ++scancode) { - printf("Scancode #%d, \"%s\"\n", scancode, - SDL_GetScancodeName(scancode)); - } - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testloadso.c b/3rdparty/SDL-1.3.0-5387/test/testloadso.c deleted file mode 100644 index d0e129879f..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testloadso.c +++ /dev/null @@ -1,71 +0,0 @@ - -/* Test program to test dynamic loading with the loadso subsystem. -*/ - -#include -#include -#include - -#include "SDL.h" - -typedef int (*fntype) (const char *); - -int -main(int argc, char *argv[]) -{ - int retval = 0; - int hello = 0; - const char *libname = NULL; - const char *symname = NULL; - void *lib = NULL; - fntype fn = NULL; - - if (argc != 3) { - const char *app = argv[0]; - fprintf(stderr, "USAGE: %s \n", app); - fprintf(stderr, " %s --hello \n", app); - return 1; - } - - /* Initialize SDL */ - if (SDL_Init(0) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return 2; - } - - if (strcmp(argv[1], "--hello") == 0) { - hello = 1; - libname = argv[2]; - symname = "puts"; - } else { - libname = argv[1]; - symname = argv[2]; - } - - lib = SDL_LoadObject(libname); - if (lib == NULL) { - fprintf(stderr, "SDL_LoadObject('%s') failed: %s\n", - libname, SDL_GetError()); - retval = 3; - } else { - fn = (fntype) SDL_LoadFunction(lib, symname); - if (fn == NULL) { - fprintf(stderr, "SDL_LoadFunction('%s') failed: %s\n", - symname, SDL_GetError()); - retval = 4; - } else { - printf("Found %s in %s at %p\n", symname, libname, fn); - if (hello) { - printf("Calling function...\n"); - fflush(stdout); - fn(" HELLO, WORLD!\n"); - printf("...apparently, we survived. :)\n"); - printf("Unloading library...\n"); - fflush(stdout); - } - } - SDL_UnloadObject(lib); - } - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testlock.c b/3rdparty/SDL-1.3.0-5387/test/testlock.c deleted file mode 100644 index 545abaf07b..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testlock.c +++ /dev/null @@ -1,111 +0,0 @@ - -/* Test the thread and mutex locking functions - Also exercises the system's signal/thread interaction -*/ - -#include -#include - -#include "SDL.h" -#include "SDL_mutex.h" -#include "SDL_thread.h" - -static SDL_mutex *mutex = NULL; -static SDL_threadID mainthread; -static SDL_Thread *threads[6]; -static volatile int doterminate = 0; - -/* - * SDL_Quit() shouldn't be used with atexit() directly because - * calling conventions may differ... - */ -static void -SDL_Quit_Wrapper(void) -{ - SDL_Quit(); -} - -void -printid(void) -{ - printf("Process %lu: exiting\n", SDL_ThreadID()); -} - -void -terminate(int sig) -{ - signal(SIGINT, terminate); - doterminate = 1; -} - -void -closemutex(int sig) -{ - SDL_threadID id = SDL_ThreadID(); - int i; - printf("Process %lu: Cleaning up...\n", id == mainthread ? 0 : id); - doterminate = 1; - for (i = 0; i < 6; ++i) - SDL_WaitThread(threads[i], NULL); - SDL_DestroyMutex(mutex); - exit(sig); -} - -int SDLCALL -Run(void *data) -{ - if (SDL_ThreadID() == mainthread) - signal(SIGTERM, closemutex); - while (!doterminate) { - printf("Process %lu ready to work\n", SDL_ThreadID()); - if (SDL_mutexP(mutex) < 0) { - fprintf(stderr, "Couldn't lock mutex: %s", SDL_GetError()); - exit(1); - } - printf("Process %lu, working!\n", SDL_ThreadID()); - SDL_Delay(1 * 1000); - printf("Process %lu, done!\n", SDL_ThreadID()); - if (SDL_mutexV(mutex) < 0) { - fprintf(stderr, "Couldn't unlock mutex: %s", SDL_GetError()); - exit(1); - } - /* If this sleep isn't done, then threads may starve */ - SDL_Delay(10); - } - if (SDL_ThreadID() == mainthread && doterminate) { - printf("Process %lu: raising SIGTERM\n", SDL_ThreadID()); - raise(SIGTERM); - } - return (0); -} - -int -main(int argc, char *argv[]) -{ - int i; - int maxproc = 6; - - /* Load the SDL library */ - if (SDL_Init(0) < 0) { - fprintf(stderr, "%s\n", SDL_GetError()); - exit(1); - } - atexit(SDL_Quit_Wrapper); - - if ((mutex = SDL_CreateMutex()) == NULL) { - fprintf(stderr, "Couldn't create mutex: %s\n", SDL_GetError()); - exit(1); - } - - mainthread = SDL_ThreadID(); - printf("Main thread: %lu\n", mainthread); - atexit(printid); - for (i = 0; i < maxproc; ++i) { - if ((threads[i] = SDL_CreateThread(Run, NULL)) == NULL) - fprintf(stderr, "Couldn't create thread!\n"); - } - signal(SIGINT, terminate); - Run(NULL); - - return (0); /* Never reached */ -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testmultiaudio.c b/3rdparty/SDL-1.3.0-5387/test/testmultiaudio.c deleted file mode 100644 index 5d6fc04bf2..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testmultiaudio.c +++ /dev/null @@ -1,141 +0,0 @@ -#include "SDL.h" - -static SDL_AudioSpec spec; -static Uint8 *sound = NULL; /* Pointer to wave data */ -static Uint32 soundlen = 0; /* Length of wave data */ - -typedef struct -{ - SDL_AudioDeviceID dev; - int soundpos; - volatile int done; -} callback_data; - -void SDLCALL -play_through_once(void *arg, Uint8 * stream, int len) -{ - callback_data *cbd = (callback_data *) arg; - Uint8 *waveptr = sound + cbd->soundpos; - int waveleft = soundlen - cbd->soundpos; - int cpy = len; - if (cpy > waveleft) - cpy = waveleft; - - SDL_memcpy(stream, waveptr, cpy); - len -= cpy; - cbd->soundpos += cpy; - if (len > 0) { - stream += cpy; - SDL_memset(stream, spec.silence, len); - cbd->done++; - } -} - -static void -test_multi_audio(int devcount) -{ - callback_data cbd[64]; - int keep_going = 1; - int i; - - if (devcount > 64) { - fprintf(stderr, "Too many devices (%d), clamping to 64...\n", - devcount); - devcount = 64; - } - - spec.callback = play_through_once; - - for (i = 0; i < devcount; i++) { - const char *devname = SDL_GetAudioDeviceName(i, 0); - printf("playing on device #%d: ('%s')...", i, devname); - fflush(stdout); - - SDL_memset(&cbd[0], '\0', sizeof(callback_data)); - spec.userdata = &cbd[0]; - cbd[0].dev = SDL_OpenAudioDevice(devname, 0, &spec, NULL, 0); - if (cbd[0].dev == 0) { - printf("\nOpen device failed: %s\n", SDL_GetError()); - } else { - SDL_PauseAudioDevice(cbd[0].dev, 0); - while (!cbd[0].done) - SDL_Delay(100); - SDL_PauseAudioDevice(cbd[0].dev, 1); - printf("done.\n"); - SDL_CloseAudioDevice(cbd[0].dev); - } - } - - SDL_memset(cbd, '\0', sizeof(cbd)); - - printf("playing on all devices...\n"); - for (i = 0; i < devcount; i++) { - const char *devname = SDL_GetAudioDeviceName(i, 0); - spec.userdata = &cbd[i]; - cbd[i].dev = SDL_OpenAudioDevice(devname, 0, &spec, NULL, 0); - if (cbd[i].dev == 0) { - printf("Open device %d failed: %s\n", i, SDL_GetError()); - } - } - - for (i = 0; i < devcount; i++) { - if (cbd[i].dev) { - SDL_PauseAudioDevice(cbd[i].dev, 0); - } - } - - while (keep_going) { - keep_going = 0; - for (i = 0; i < devcount; i++) { - if ((cbd[i].dev) && (!cbd[i].done)) { - keep_going = 1; - } - } - SDL_Delay(100); - } - - for (i = 0; i < devcount; i++) { - if (cbd[i].dev) { - SDL_PauseAudioDevice(cbd[i].dev, 1); - SDL_CloseAudioDevice(cbd[i].dev); - } - } - - printf("All done!\n"); -} - - -int -main(int argc, char **argv) -{ - int devcount = 0; - - /* Load the SDL library */ - if (SDL_Init(SDL_INIT_AUDIO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - - printf("Using audio driver: %s\n", SDL_GetCurrentAudioDriver()); - - devcount = SDL_GetNumAudioDevices(0); - if (devcount < 1) { - fprintf(stderr, "Don't see any specific audio devices!\n"); - } else { - if (argv[1] == NULL) { - argv[1] = "sample.wav"; - } - - /* Load the wave file into memory */ - if (SDL_LoadWAV(argv[1], &spec, &sound, &soundlen) == NULL) { - fprintf(stderr, "Couldn't load %s: %s\n", argv[1], - SDL_GetError()); - } else { - test_multi_audio(devcount); - SDL_FreeWAV(sound); - } - } - - SDL_Quit(); - return 0; -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testnative.c b/3rdparty/SDL-1.3.0-5387/test/testnative.c deleted file mode 100644 index bf30670b44..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testnative.c +++ /dev/null @@ -1,221 +0,0 @@ -/* Simple program: Create a native window and attach an SDL renderer */ - -#include - -#include "testnative.h" - -#define WINDOW_W 640 -#define WINDOW_H 480 -#define NUM_SPRITES 100 -#define MAX_SPEED 1 - -static NativeWindowFactory *factories[] = { -#ifdef TEST_NATIVE_WINDOWS - &WindowsWindowFactory, -#endif -#ifdef TEST_NATIVE_X11 - &X11WindowFactory, -#endif -#ifdef TEST_NATIVE_COCOA - &CocoaWindowFactory, -#endif - NULL -}; -static NativeWindowFactory *factory = NULL; -static void *native_window; -static SDL_Rect *positions, *velocities; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_VideoQuit(); - if (native_window) { - factory->DestroyNativeWindow(native_window); - } - exit(rc); -} - -SDL_Texture * -LoadSprite(SDL_Window * window, char *file) -{ - SDL_Surface *temp; - SDL_Texture *sprite; - - /* Load the sprite image */ - temp = SDL_LoadBMP(file); - if (temp == NULL) { - fprintf(stderr, "Couldn't load %s: %s", file, SDL_GetError()); - return 0; - } - - /* Set transparent pixel as the pixel at (0,0) */ - if (temp->format->palette) { - SDL_SetColorKey(temp, SDL_SRCCOLORKEY, *(Uint8 *) temp->pixels); - } - - /* Create textures from the image */ - SDL_SelectRenderer(window); - sprite = SDL_CreateTextureFromSurface(0, temp); - if (!sprite) { - fprintf(stderr, "Couldn't create texture: %s\n", SDL_GetError()); - SDL_FreeSurface(temp); - return 0; - } - SDL_FreeSurface(temp); - - /* We're ready to roll. :) */ - return sprite; -} - -void -MoveSprites(SDL_Window * window, SDL_Texture * sprite) -{ - int i, n; - int window_w, window_h; - int sprite_w, sprite_h; - SDL_Rect *position, *velocity; - - SDL_SelectRenderer(window); - - /* Query the sizes */ - SDL_GetWindowSize(window, &window_w, &window_h); - SDL_QueryTexture(sprite, NULL, NULL, &sprite_w, &sprite_h); - - /* Move the sprite, bounce at the wall, and draw */ - n = 0; - SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF); - SDL_RenderClear(); - for (i = 0; i < NUM_SPRITES; ++i) { - position = &positions[i]; - velocity = &velocities[i]; - position->x += velocity->x; - if ((position->x < 0) || (position->x >= (window_w - sprite_w))) { - velocity->x = -velocity->x; - position->x += velocity->x; - } - position->y += velocity->y; - if ((position->y < 0) || (position->y >= (window_h - sprite_h))) { - velocity->y = -velocity->y; - position->y += velocity->y; - } - - /* Blit the sprite onto the screen */ - SDL_RenderCopy(sprite, NULL, position); - } - - /* Update the screen! */ - SDL_RenderPresent(); -} - -int -main(int argc, char *argv[]) -{ - int i, done; - const char *driver; - SDL_Window *window; - SDL_Texture *sprite; - int window_w, window_h; - int sprite_w, sprite_h; - SDL_Event event; - - if (SDL_VideoInit(NULL, 0) < 0) { - fprintf(stderr, "Couldn't initialize SDL video: %s\n", - SDL_GetError()); - exit(1); - } - driver = SDL_GetCurrentVideoDriver(); - - /* Find a native window driver and create a native window */ - for (i = 0; factories[i]; ++i) { - if (SDL_strcmp(driver, factories[i]->tag) == 0) { - factory = factories[i]; - break; - } - } - if (!factory) { - fprintf(stderr, "Couldn't find native window code for %s driver\n", - driver); - quit(2); - } - printf("Creating native window for %s driver\n", driver); - native_window = factory->CreateNativeWindow(WINDOW_W, WINDOW_H); - if (!native_window) { - fprintf(stderr, "Couldn't create native window\n"); - quit(3); - } - window = SDL_CreateWindowFrom(native_window); - if (!window) { - fprintf(stderr, "Couldn't create SDL window: %s\n", SDL_GetError()); - quit(4); - } - SDL_SetWindowTitle(window, "SDL Native Window Test"); - - /* Create the renderer */ - if (SDL_CreateRenderer(window, -1, 0) < 0) { - fprintf(stderr, "Couldn't create renderer: %s\n", SDL_GetError()); - quit(5); - } - - /* Clear the window, load the sprite and go! */ - SDL_SelectRenderer(window); - SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF); - SDL_RenderClear(); - - sprite = LoadSprite(window, "icon.bmp"); - if (!sprite) { - quit(6); - } - - /* Allocate memory for the sprite info */ - SDL_GetWindowSize(window, &window_w, &window_h); - SDL_QueryTexture(sprite, NULL, NULL, &sprite_w, &sprite_h); - positions = (SDL_Rect *) SDL_malloc(NUM_SPRITES * sizeof(SDL_Rect)); - velocities = (SDL_Rect *) SDL_malloc(NUM_SPRITES * sizeof(SDL_Rect)); - if (!positions || !velocities) { - fprintf(stderr, "Out of memory!\n"); - quit(2); - } - srand(time(NULL)); - for (i = 0; i < NUM_SPRITES; ++i) { - positions[i].x = rand() % (window_w - sprite_w); - positions[i].y = rand() % (window_h - sprite_h); - positions[i].w = sprite_w; - positions[i].h = sprite_h; - velocities[i].x = 0; - velocities[i].y = 0; - while (!velocities[i].x && !velocities[i].y) { - velocities[i].x = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED; - velocities[i].y = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED; - } - } - - /* Main render loop */ - done = 0; - while (!done) { - /* Check for events */ - while (SDL_PollEvent(&event)) { - switch (event.type) { - case SDL_WINDOWEVENT: - switch (event.window.event) { - case SDL_WINDOWEVENT_EXPOSED: - SDL_SelectRenderer(event.window.windowID); - SDL_SetRenderDrawColor(0xA0, 0xA0, 0xA0, 0xFF); - SDL_RenderClear(); - break; - } - break; - case SDL_QUIT: - done = 1; - break; - default: - break; - } - } - MoveSprites(window, sprite); - } - - quit(0); -} - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/3rdparty/SDL-1.3.0-5387/test/testnative.h b/3rdparty/SDL-1.3.0-5387/test/testnative.h deleted file mode 100644 index 9060feb4f7..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testnative.h +++ /dev/null @@ -1,37 +0,0 @@ - -/* Definitions for platform dependent windowing functions to test SDL - integration with native windows -*/ - -#include "SDL.h" - -/* This header includes all the necessary system headers for native windows */ -#include "SDL_syswm.h" - -typedef struct -{ - const char *tag; - void *(*CreateNativeWindow) (int w, int h); - void (*DestroyNativeWindow) (void *window); -} NativeWindowFactory; - -#ifdef SDL_VIDEO_DRIVER_WINDOWS -#define TEST_NATIVE_WINDOWS -extern NativeWindowFactory WindowsWindowFactory; -#endif - -#ifdef SDL_VIDEO_DRIVER_X11 -#define TEST_NATIVE_X11 -extern NativeWindowFactory X11WindowFactory; -#endif - -#ifdef SDL_VIDEO_DRIVER_COCOA -/* Actually, we don't really do this, since it involves adding Objective C - support to the build system, which is a little tricky. You can uncomment - it manually though and link testnativecocoa.m into the test application. -*/ -#if 1 -#define TEST_NATIVE_COCOA -extern NativeWindowFactory CocoaWindowFactory; -#endif -#endif diff --git a/3rdparty/SDL-1.3.0-5387/test/testnativecocoa.m b/3rdparty/SDL-1.3.0-5387/test/testnativecocoa.m deleted file mode 100644 index 030607d665..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testnativecocoa.m +++ /dev/null @@ -1,51 +0,0 @@ - -#include "testnative.h" - -#ifdef TEST_NATIVE_COCOA - -#include - -static void *CreateWindowCocoa(int w, int h); -static void DestroyWindowCocoa(void *window); - -NativeWindowFactory CocoaWindowFactory = { - "cocoa", - CreateWindowCocoa, - DestroyWindowCocoa -}; - -static void *CreateWindowCocoa(int w, int h) -{ - NSAutoreleasePool *pool; - NSWindow *nswindow; - NSRect rect; - unsigned int style; - - pool = [[NSAutoreleasePool alloc] init]; - - rect.origin.x = 0; - rect.origin.y = 0; - rect.size.width = w; - rect.size.height = h; - rect.origin.y = CGDisplayPixelsHigh(kCGDirectMainDisplay) - rect.origin.y - rect.size.height; - - style = (NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask); - - nswindow = [[NSWindow alloc] initWithContentRect:rect styleMask:style backing:NSBackingStoreBuffered defer:FALSE]; - [nswindow makeKeyAndOrderFront:nil]; - - [pool release]; - - return nswindow; -} - -static void DestroyWindowCocoa(void *window) -{ - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSWindow *nswindow = (NSWindow *)window; - - [nswindow close]; - [pool release]; -} - -#endif diff --git a/3rdparty/SDL-1.3.0-5387/test/testnativew32.c b/3rdparty/SDL-1.3.0-5387/test/testnativew32.c deleted file mode 100644 index af98339545..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testnativew32.c +++ /dev/null @@ -1,75 +0,0 @@ - -#include "testnative.h" - -#ifdef TEST_NATIVE_WINDOWS - -static void *CreateWindowNative(int w, int h); -static void DestroyWindowNative(void *window); - -NativeWindowFactory WindowsWindowFactory = { - "windows", - CreateWindowNative, - DestroyWindowNative -}; - -LRESULT CALLBACK -WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - switch (msg) { - case WM_CLOSE: - DestroyWindow(hwnd); - break; - case WM_DESTROY: - PostQuitMessage(0); - break; - default: - return DefWindowProc(hwnd, msg, wParam, lParam); - } - return 0; -} - -static void * -CreateWindowNative(int w, int h) -{ - HWND hwnd; - WNDCLASS wc; - - wc.style = 0; - wc.lpfnWndProc = WndProc; - wc.cbClsExtra = 0; - wc.cbWndExtra = 0; - wc.hInstance = GetModuleHandle(NULL); - wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); - wc.hCursor = LoadCursor(NULL, IDC_ARROW); - wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1); - wc.lpszMenuName = NULL; - wc.lpszClassName = "SDL Test"; - - if (!RegisterClass(&wc)) { - MessageBox(NULL, "Window Registration Failed!", "Error!", - MB_ICONEXCLAMATION | MB_OK); - return 0; - } - - hwnd = - CreateWindow("SDL Test", "", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, - CW_USEDEFAULT, w, h, NULL, NULL, GetModuleHandle(NULL), - NULL); - if (hwnd == NULL) { - MessageBox(NULL, "Window Creation Failed!", "Error!", - MB_ICONEXCLAMATION | MB_OK); - return 0; - } - - ShowWindow(hwnd, SW_SHOW); - - return hwnd; -} - -static void -DestroyWindowNative(void *window) -{ - DestroyWindow((HWND) window); -} - -#endif diff --git a/3rdparty/SDL-1.3.0-5387/test/testnativex11.c b/3rdparty/SDL-1.3.0-5387/test/testnativex11.c deleted file mode 100644 index 0f84aa9741..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testnativex11.c +++ /dev/null @@ -1,42 +0,0 @@ - -#include "testnative.h" - -#ifdef TEST_NATIVE_X11 - -static void *CreateWindowX11(int w, int h); -static void DestroyWindowX11(void *window); - -NativeWindowFactory X11WindowFactory = { - "x11", - CreateWindowX11, - DestroyWindowX11 -}; - -static Display *dpy; - -static void * -CreateWindowX11(int w, int h) -{ - Window window = 0; - - dpy = XOpenDisplay(NULL); - if (dpy) { - window = - XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 0, 0, w, h, 0, 0, - 0); - XMapRaised(dpy, window); - XSync(dpy, False); - } - return (void *) window; -} - -static void -DestroyWindowX11(void *window) -{ - if (dpy) { - XDestroyWindow(dpy, (Window) window); - XCloseDisplay(dpy); - } -} - -#endif diff --git a/3rdparty/SDL-1.3.0-5387/test/testoverlay.c b/3rdparty/SDL-1.3.0-5387/test/testoverlay.c deleted file mode 100644 index 8613970be3..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testoverlay.c +++ /dev/null @@ -1,560 +0,0 @@ - -/* Bring up a window and play with it */ - -#include -#include -#include - -#define BENCHMARK_SDL - -#define NOTICE(X) printf("%s", X); - -#define WINDOW_WIDTH 640 -#define WINDOW_HEIGHT 480 - -#include "SDL.h" - -SDL_Surface *screen, *pic; -SDL_Overlay *overlay; -int scale; -int monochrome; -int luminance; -int w, h; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -/* NOTE: These RGB conversion functions are not intended for speed, - only as examples. -*/ - -void -RGBtoYUV(Uint8 * rgb, int *yuv, int monochrome, int luminance) -{ - if (monochrome) { -#if 1 /* these are the two formulas that I found on the FourCC site... */ - yuv[0] = (int)(0.299 * rgb[0] + 0.587 * rgb[1] + 0.114 * rgb[2]); - yuv[1] = 128; - yuv[2] = 128; -#else - yuv[0] = (int)((0.257 * rgb[0]) + (0.504 * rgb[1]) + (0.098 * rgb[2]) + 16); - yuv[1] = 128; - yuv[2] = 128; -#endif - } else { -#if 1 /* these are the two formulas that I found on the FourCC site... */ - yuv[0] = (int)(0.299 * rgb[0] + 0.587 * rgb[1] + 0.114 * rgb[2]); - yuv[1] = (int)((rgb[2] - yuv[0]) * 0.565 + 128); - yuv[2] = (int)((rgb[0] - yuv[0]) * 0.713 + 128); -#else - yuv[0] = (int)((0.257 * rgb[0]) + (0.504 * rgb[1]) + (0.098 * rgb[2]) + 16); - yuv[1] = (int)(128 - (0.148 * rgb[0]) - (0.291 * rgb[1]) + (0.439 * rgb[2])); - yuv[2] = (int)(128 + (0.439 * rgb[0]) - (0.368 * rgb[1]) - (0.071 * rgb[2])); -#endif - } - - if (luminance != 100) { - yuv[0] = yuv[0] * luminance / 100; - if (yuv[0] > 255) - yuv[0] = 255; - } - - /* clamp values...if you need to, we don't seem to have a need */ - /* - for(i=0;i<3;i++) - { - if(yuv[i]<0) - yuv[i]=0; - if(yuv[i]>255) - yuv[i]=255; - } - */ -} - -void -ConvertRGBtoYV12(SDL_Surface * s, SDL_Overlay * o, int monochrome, - int luminance) -{ - int x, y; - int yuv[3]; - Uint8 *p, *op[3]; - - SDL_LockSurface(s); - SDL_LockYUVOverlay(o); - - /* Black initialization */ - /* - memset(o->pixels[0],0,o->pitches[0]*o->h); - memset(o->pixels[1],128,o->pitches[1]*((o->h+1)/2)); - memset(o->pixels[2],128,o->pitches[2]*((o->h+1)/2)); - */ - - /* Convert */ - for (y = 0; y < s->h && y < o->h; y++) { - p = ((Uint8 *) s->pixels) + s->pitch * y; - op[0] = o->pixels[0] + o->pitches[0] * y; - op[1] = o->pixels[1] + o->pitches[1] * (y / 2); - op[2] = o->pixels[2] + o->pitches[2] * (y / 2); - for (x = 0; x < s->w && x < o->w; x++) { - RGBtoYUV(p, yuv, monochrome, luminance); - *(op[0]++) = yuv[0]; - if (x % 2 == 0 && y % 2 == 0) { - *(op[1]++) = yuv[2]; - *(op[2]++) = yuv[1]; - } - p += s->format->BytesPerPixel; - } - } - - SDL_UnlockYUVOverlay(o); - SDL_UnlockSurface(s); -} - -void -ConvertRGBtoIYUV(SDL_Surface * s, SDL_Overlay * o, int monochrome, - int luminance) -{ - int x, y; - int yuv[3]; - Uint8 *p, *op[3]; - - SDL_LockSurface(s); - SDL_LockYUVOverlay(o); - - /* Black initialization */ - /* - memset(o->pixels[0],0,o->pitches[0]*o->h); - memset(o->pixels[1],128,o->pitches[1]*((o->h+1)/2)); - memset(o->pixels[2],128,o->pitches[2]*((o->h+1)/2)); - */ - - /* Convert */ - for (y = 0; y < s->h && y < o->h; y++) { - p = ((Uint8 *) s->pixels) + s->pitch * y; - op[0] = o->pixels[0] + o->pitches[0] * y; - op[1] = o->pixels[1] + o->pitches[1] * (y / 2); - op[2] = o->pixels[2] + o->pitches[2] * (y / 2); - for (x = 0; x < s->w && x < o->w; x++) { - RGBtoYUV(p, yuv, monochrome, luminance); - *(op[0]++) = yuv[0]; - if (x % 2 == 0 && y % 2 == 0) { - *(op[1]++) = yuv[1]; - *(op[2]++) = yuv[2]; - } - p += s->format->BytesPerPixel; - } - } - - SDL_UnlockYUVOverlay(o); - SDL_UnlockSurface(s); -} - -void -ConvertRGBtoUYVY(SDL_Surface * s, SDL_Overlay * o, int monochrome, - int luminance) -{ - int x, y; - int yuv[3]; - Uint8 *p, *op; - - SDL_LockSurface(s); - SDL_LockYUVOverlay(o); - - for (y = 0; y < s->h && y < o->h; y++) { - p = ((Uint8 *) s->pixels) + s->pitch * y; - op = o->pixels[0] + o->pitches[0] * y; - for (x = 0; x < s->w && x < o->w; x++) { - RGBtoYUV(p, yuv, monochrome, luminance); - if (x % 2 == 0) { - *(op++) = yuv[1]; - *(op++) = yuv[0]; - *(op++) = yuv[2]; - } else - *(op++) = yuv[0]; - - p += s->format->BytesPerPixel; - } - } - - SDL_UnlockYUVOverlay(o); - SDL_UnlockSurface(s); -} - -void -ConvertRGBtoYVYU(SDL_Surface * s, SDL_Overlay * o, int monochrome, - int luminance) -{ - int x, y; - int yuv[3]; - Uint8 *p, *op; - - SDL_LockSurface(s); - SDL_LockYUVOverlay(o); - - for (y = 0; y < s->h && y < o->h; y++) { - p = ((Uint8 *) s->pixels) + s->pitch * y; - op = o->pixels[0] + o->pitches[0] * y; - for (x = 0; x < s->w && x < o->w; x++) { - RGBtoYUV(p, yuv, monochrome, luminance); - if (x % 2 == 0) { - *(op++) = yuv[0]; - *(op++) = yuv[2]; - op[1] = yuv[1]; - } else { - *op = yuv[0]; - op += 2; - } - - p += s->format->BytesPerPixel; - } - } - - SDL_UnlockYUVOverlay(o); - SDL_UnlockSurface(s); -} - -void -ConvertRGBtoYUY2(SDL_Surface * s, SDL_Overlay * o, int monochrome, - int luminance) -{ - int x, y; - int yuv[3]; - Uint8 *p, *op; - - SDL_LockSurface(s); - SDL_LockYUVOverlay(o); - - for (y = 0; y < s->h && y < o->h; y++) { - p = ((Uint8 *) s->pixels) + s->pitch * y; - op = o->pixels[0] + o->pitches[0] * y; - for (x = 0; x < s->w && x < o->w; x++) { - RGBtoYUV(p, yuv, monochrome, luminance); - if (x % 2 == 0) { - *(op++) = yuv[0]; - *(op++) = yuv[1]; - op[1] = yuv[2]; - } else { - *op = yuv[0]; - op += 2; - } - - p += s->format->BytesPerPixel; - } - } - - SDL_UnlockYUVOverlay(o); - SDL_UnlockSurface(s); -} - -void -Draw() -{ - SDL_Rect rect; - int i; - int disp; - - if (!scale) { - rect.w = overlay->w; - rect.h = overlay->h; - for (i = 0; i < h - rect.h && i < w - rect.w; i++) { - rect.x = i; - rect.y = i; - SDL_DisplayYUVOverlay(overlay, &rect); - } - } else { - rect.w = overlay->w / 2; - rect.h = overlay->h / 2; - rect.x = (w - rect.w) / 2; - rect.y = (h - rect.h) / 2; - disp = rect.y - 1; - for (i = 0; i < disp; i++) { - rect.w += 2; - rect.h += 2; - rect.x--; - rect.y--; - SDL_DisplayYUVOverlay(overlay, &rect); - } - } - printf("Displayed %d times.\n", i); -} - -static void -PrintUsage(char *argv0) -{ - fprintf(stderr, "Usage: %s [arg] [arg] [arg] ...\n", argv0); - fprintf(stderr, "Where 'arg' is one of:\n"); - fprintf(stderr, " -delay \n"); - fprintf(stderr, " -width \n"); - fprintf(stderr, " -height \n"); - fprintf(stderr, " -bpp \n"); - fprintf(stderr, - " -format (one of the: YV12, IYUV, YUY2, UYVY, YVYU)\n"); - fprintf(stderr, " -hw\n"); - fprintf(stderr, " -flip\n"); - fprintf(stderr, - " -scale (test scaling features, from 50%% upto window size)\n"); - fprintf(stderr, " -mono (use monochromatic RGB2YUV conversion)\n"); - fprintf(stderr, - " -lum (use luminance correction during RGB2YUV conversion,\n"); - fprintf(stderr, - " from 0%% to unlimited, normal is 100%%)\n"); - fprintf(stderr, " -help (shows this help)\n"); - fprintf(stderr, " -fullscreen (test overlay in fullscreen mode)\n"); -} - -int -main(int argc, char **argv) -{ - char *argv0 = argv[0]; - int flip; - int delay; - int desired_bpp; - Uint32 video_flags, overlay_format; - char *bmpfile; -#ifdef BENCHMARK_SDL - Uint32 then, now; -#endif - int i; - - /* Set default options and check command-line */ - flip = 0; - scale = 0; - monochrome = 0; - luminance = 100; - delay = 1; - w = WINDOW_WIDTH; - h = WINDOW_HEIGHT; - desired_bpp = 0; - video_flags = 0; - overlay_format = SDL_YV12_OVERLAY; - - while (argc > 1) { - if (strcmp(argv[1], "-delay") == 0) { - if (argv[2]) { - delay = atoi(argv[2]); - argv += 2; - argc -= 2; - } else { - fprintf(stderr, "The -delay option requires an argument\n"); - return (1); - } - } else if (strcmp(argv[1], "-width") == 0) { - if (argv[2] && ((w = atoi(argv[2])) > 0)) { - argv += 2; - argc -= 2; - } else { - fprintf(stderr, "The -width option requires an argument\n"); - return (1); - } - } else if (strcmp(argv[1], "-height") == 0) { - if (argv[2] && ((h = atoi(argv[2])) > 0)) { - argv += 2; - argc -= 2; - } else { - fprintf(stderr, "The -height option requires an argument\n"); - return (1); - } - } else if (strcmp(argv[1], "-bpp") == 0) { - if (argv[2]) { - desired_bpp = atoi(argv[2]); - argv += 2; - argc -= 2; - } else { - fprintf(stderr, "The -bpp option requires an argument\n"); - return (1); - } - } else if (strcmp(argv[1], "-lum") == 0) { - if (argv[2]) { - luminance = atoi(argv[2]); - argv += 2; - argc -= 2; - } else { - fprintf(stderr, "The -lum option requires an argument\n"); - return (1); - } - } else if (strcmp(argv[1], "-format") == 0) { - if (argv[2]) { - if (!strcmp(argv[2], "YV12")) - overlay_format = SDL_YV12_OVERLAY; - else if (!strcmp(argv[2], "IYUV")) - overlay_format = SDL_IYUV_OVERLAY; - else if (!strcmp(argv[2], "YUY2")) - overlay_format = SDL_YUY2_OVERLAY; - else if (!strcmp(argv[2], "UYVY")) - overlay_format = SDL_UYVY_OVERLAY; - else if (!strcmp(argv[2], "YVYU")) - overlay_format = SDL_YVYU_OVERLAY; - else { - fprintf(stderr, - "The -format option %s is not recognized\n", - argv[2]); - return (1); - } - argv += 2; - argc -= 2; - } else { - fprintf(stderr, "The -format option requires an argument\n"); - return (1); - } - } else if (strcmp(argv[1], "-hw") == 0) { - video_flags |= SDL_HWSURFACE; - argv += 1; - argc -= 1; - } else if (strcmp(argv[1], "-flip") == 0) { - video_flags |= SDL_DOUBLEBUF; - argv += 1; - argc -= 1; - } else if (strcmp(argv[1], "-scale") == 0) { - scale = 1; - argv += 1; - argc -= 1; - } else if (strcmp(argv[1], "-mono") == 0) { - monochrome = 1; - argv += 1; - argc -= 1; - } else if ((strcmp(argv[1], "-help") == 0) - || (strcmp(argv[1], "-h") == 0)) { - PrintUsage(argv0); - return (1); - } else if (strcmp(argv[1], "-fullscreen") == 0) { - video_flags |= SDL_FULLSCREEN; - argv += 1; - argc -= 1; - } else - break; - } - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - - /* Initialize the display */ - screen = SDL_SetVideoMode(w, h, desired_bpp, video_flags); - if (screen == NULL) { - fprintf(stderr, "Couldn't set %dx%dx%d video mode: %s\n", - w, h, desired_bpp, SDL_GetError()); - quit(1); - } - printf("Set%s %dx%dx%d mode\n", - screen->flags & SDL_FULLSCREEN ? " fullscreen" : "", - screen->w, screen->h, screen->format->BitsPerPixel); - printf("(video surface located in %s memory)\n", - (screen->flags & SDL_HWSURFACE) ? "video" : "system"); - if (screen->flags & SDL_DOUBLEBUF) { - printf("Double-buffering enabled\n"); - flip = 1; - } - - /* Set the window manager title bar */ - SDL_WM_SetCaption("SDL test overlay", "testoverlay"); - - /* Load picture */ - bmpfile = (argv[1] ? argv[1] : "sample.bmp"); - pic = SDL_LoadBMP(bmpfile); - if (pic == NULL) { - fprintf(stderr, "Couldn't load %s: %s\n", bmpfile, SDL_GetError()); - quit(1); - } - - /* Convert the picture to 32bits, for easy conversion */ - { - SDL_Surface *newsurf; - SDL_PixelFormat format; - - format.palette = NULL; - format.BitsPerPixel = 32; - format.BytesPerPixel = 4; -#if SDL_BYTEORDER == SDL_LIL_ENDIAN - format.Rshift = 0; - format.Gshift = 8; - format.Bshift = 16; -#else - format.Rshift = 24; - format.Gshift = 16; - format.Bshift = 8; -#endif - format.Ashift = 0; - format.Rmask = 0xff << format.Rshift; - format.Gmask = 0xff << format.Gshift; - format.Bmask = 0xff << format.Bshift; - format.Amask = 0; - format.Rloss = 0; - format.Gloss = 0; - format.Bloss = 0; - format.Aloss = 8; - - newsurf = SDL_ConvertSurface(pic, &format, SDL_SWSURFACE); - if (!newsurf) { - fprintf(stderr, "Couldn't convert picture to 32bits RGB: %s\n", - SDL_GetError()); - quit(1); - } - SDL_FreeSurface(pic); - pic = newsurf; - } - - /* Create the overlay */ - overlay = SDL_CreateYUVOverlay(pic->w, pic->h, overlay_format, screen); - if (overlay == NULL) { - fprintf(stderr, "Couldn't create overlay: %s\n", SDL_GetError()); - quit(1); - } - printf("Created %dx%dx%d %s %s overlay\n", overlay->w, overlay->h, - overlay->planes, overlay->hw_overlay ? "hardware" : "software", - overlay->format == SDL_YV12_OVERLAY ? "YV12" : overlay->format == - SDL_IYUV_OVERLAY ? "IYUV" : overlay->format == - SDL_YUY2_OVERLAY ? "YUY2" : overlay->format == - SDL_UYVY_OVERLAY ? "UYVY" : overlay->format == - SDL_YVYU_OVERLAY ? "YVYU" : "Unknown"); - for (i = 0; i < overlay->planes; i++) { - printf(" plane %d: pitch=%d\n", i, overlay->pitches[i]); - } - - /* Convert to YUV, and draw to the overlay */ -#ifdef BENCHMARK_SDL - then = SDL_GetTicks(); -#endif - switch (overlay->format) { - case SDL_YV12_OVERLAY: - ConvertRGBtoYV12(pic, overlay, monochrome, luminance); - break; - case SDL_UYVY_OVERLAY: - ConvertRGBtoUYVY(pic, overlay, monochrome, luminance); - break; - case SDL_YVYU_OVERLAY: - ConvertRGBtoYVYU(pic, overlay, monochrome, luminance); - break; - case SDL_YUY2_OVERLAY: - ConvertRGBtoYUY2(pic, overlay, monochrome, luminance); - break; - case SDL_IYUV_OVERLAY: - ConvertRGBtoIYUV(pic, overlay, monochrome, luminance); - break; - default: - printf("cannot convert RGB picture to obtained YUV format!\n"); - quit(1); - break; - } -#ifdef BENCHMARK_SDL - now = SDL_GetTicks(); - printf("Conversion Time: %d milliseconds\n", now - then); -#endif - - /* Do all the drawing work */ -#ifdef BENCHMARK_SDL - then = SDL_GetTicks(); -#endif - Draw(); -#ifdef BENCHMARK_SDL - now = SDL_GetTicks(); - printf("Time: %d milliseconds\n", now - then); -#endif - SDL_Delay(delay * 1000); - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testoverlay2.c b/3rdparty/SDL-1.3.0-5387/test/testoverlay2.c deleted file mode 100644 index 9a8ef72dc3..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testoverlay2.c +++ /dev/null @@ -1,584 +0,0 @@ -/******************************************************************************** - * * - * Test of the overlay used for moved pictures, test more closed to real life. * - * Running trojan moose :) Coded by Mike Gorchak. * - * * - ********************************************************************************/ - -#include -#include -#include - -#include "SDL.h" - -#define MOOSEPIC_W 64 -#define MOOSEPIC_H 88 - -#define MOOSEFRAME_SIZE (MOOSEPIC_W * MOOSEPIC_H) -#define MOOSEFRAMES_COUNT 10 - -SDL_Color MooseColors[84] = { - {49, 49, 49} - , {66, 24, 0} - , {66, 33, 0} - , {66, 66, 66} - , - {66, 115, 49} - , {74, 33, 0} - , {74, 41, 16} - , {82, 33, 8} - , - {82, 41, 8} - , {82, 49, 16} - , {82, 82, 82} - , {90, 41, 8} - , - {90, 41, 16} - , {90, 57, 24} - , {99, 49, 16} - , {99, 66, 24} - , - {99, 66, 33} - , {99, 74, 33} - , {107, 57, 24} - , {107, 82, 41} - , - {115, 57, 33} - , {115, 66, 33} - , {115, 66, 41} - , {115, 74, 0} - , - {115, 90, 49} - , {115, 115, 115} - , {123, 82, 0} - , {123, 99, 57} - , - {132, 66, 41} - , {132, 74, 41} - , {132, 90, 8} - , {132, 99, 33} - , - {132, 99, 66} - , {132, 107, 66} - , {140, 74, 49} - , {140, 99, 16} - , - {140, 107, 74} - , {140, 115, 74} - , {148, 107, 24} - , {148, 115, 82} - , - {148, 123, 74} - , {148, 123, 90} - , {156, 115, 33} - , {156, 115, 90} - , - {156, 123, 82} - , {156, 132, 82} - , {156, 132, 99} - , {156, 156, 156} - , - {165, 123, 49} - , {165, 123, 90} - , {165, 132, 82} - , {165, 132, 90} - , - {165, 132, 99} - , {165, 140, 90} - , {173, 132, 57} - , {173, 132, 99} - , - {173, 140, 107} - , {173, 140, 115} - , {173, 148, 99} - , {173, 173, 173} - , - {181, 140, 74} - , {181, 148, 115} - , {181, 148, 123} - , {181, 156, 107} - , - {189, 148, 123} - , {189, 156, 82} - , {189, 156, 123} - , {189, 156, 132} - , - {189, 189, 189} - , {198, 156, 123} - , {198, 165, 132} - , {206, 165, 99} - , - {206, 165, 132} - , {206, 173, 140} - , {206, 206, 206} - , {214, 173, 115} - , - {214, 173, 140} - , {222, 181, 148} - , {222, 189, 132} - , {222, 189, 156} - , - {222, 222, 222} - , {231, 198, 165} - , {231, 231, 231} - , {239, 206, 173} -}; - - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -/* All RGB2YUV conversion code and some other parts of code has been taken from testoverlay.c */ - -/* NOTE: These RGB conversion functions are not intended for speed, - only as examples. -*/ - -void -RGBtoYUV(Uint8 * rgb, int *yuv, int monochrome, int luminance) -{ - if (monochrome) { -#if 1 /* these are the two formulas that I found on the FourCC site... */ - yuv[0] = (int)(0.299 * rgb[0] + 0.587 * rgb[1] + 0.114 * rgb[2]); - yuv[1] = 128; - yuv[2] = 128; -#else - yuv[0] = (int)(0.257 * rgb[0]) + (0.504 * rgb[1]) + (0.098 * rgb[2]) + 16; - yuv[1] = 128; - yuv[2] = 128; -#endif - } else { -#if 1 /* these are the two formulas that I found on the FourCC site... */ - yuv[0] = (int)(0.299 * rgb[0] + 0.587 * rgb[1] + 0.114 * rgb[2]); - yuv[1] = (int)((rgb[2] - yuv[0]) * 0.565 + 128); - yuv[2] = (int)((rgb[0] - yuv[0]) * 0.713 + 128); -#else - yuv[0] = (0.257 * rgb[0]) + (0.504 * rgb[1]) + (0.098 * rgb[2]) + 16; - yuv[1] = 128 - (0.148 * rgb[0]) - (0.291 * rgb[1]) + (0.439 * rgb[2]); - yuv[2] = 128 + (0.439 * rgb[0]) - (0.368 * rgb[1]) - (0.071 * rgb[2]); -#endif - } - - if (luminance != 100) { - yuv[0] = yuv[0] * luminance / 100; - if (yuv[0] > 255) - yuv[0] = 255; - } -} - -void -ConvertRGBtoYV12(Uint8 *rgb, Uint8 *out, int w, int h, - int monochrome, int luminance) -{ - int x, y; - int yuv[3]; - Uint8 *op[3]; - - op[0] = out; - op[1] = op[0] + w*h; - op[2] = op[1] + w*h/4; - for (y = 0; y < h; ++y) { - for (x = 0; x < w; ++x) { - RGBtoYUV(rgb, yuv, monochrome, luminance); - *(op[0]++) = yuv[0]; - if (x % 2 == 0 && y % 2 == 0) { - *(op[1]++) = yuv[2]; - *(op[2]++) = yuv[1]; - } - rgb += 3; - } - } -} - -void -ConvertRGBtoIYUV(SDL_Surface * s, SDL_Overlay * o, int monochrome, - int luminance) -{ - int x, y; - int yuv[3]; - Uint8 *p, *op[3]; - - SDL_LockSurface(s); - SDL_LockYUVOverlay(o); - - /* Convert */ - for (y = 0; y < s->h && y < o->h; y++) { - p = ((Uint8 *) s->pixels) + s->pitch * y; - op[0] = o->pixels[0] + o->pitches[0] * y; - op[1] = o->pixels[1] + o->pitches[1] * (y / 2); - op[2] = o->pixels[2] + o->pitches[2] * (y / 2); - for (x = 0; x < s->w && x < o->w; x++) { - RGBtoYUV(p, yuv, monochrome, luminance); - *(op[0]++) = yuv[0]; - if (x % 2 == 0 && y % 2 == 0) { - *(op[1]++) = yuv[1]; - *(op[2]++) = yuv[2]; - } - p += s->format->BytesPerPixel; - } - } - - SDL_UnlockYUVOverlay(o); - SDL_UnlockSurface(s); -} - -void -ConvertRGBtoUYVY(SDL_Surface * s, SDL_Overlay * o, int monochrome, - int luminance) -{ - int x, y; - int yuv[3]; - Uint8 *p, *op; - - SDL_LockSurface(s); - SDL_LockYUVOverlay(o); - - for (y = 0; y < s->h && y < o->h; y++) { - p = ((Uint8 *) s->pixels) + s->pitch * y; - op = o->pixels[0] + o->pitches[0] * y; - for (x = 0; x < s->w && x < o->w; x++) { - RGBtoYUV(p, yuv, monochrome, luminance); - if (x % 2 == 0) { - *(op++) = yuv[1]; - *(op++) = yuv[0]; - *(op++) = yuv[2]; - } else - *(op++) = yuv[0]; - - p += s->format->BytesPerPixel; - } - } - - SDL_UnlockYUVOverlay(o); - SDL_UnlockSurface(s); -} - -void -ConvertRGBtoYVYU(SDL_Surface * s, SDL_Overlay * o, int monochrome, - int luminance) -{ - int x, y; - int yuv[3]; - Uint8 *p, *op; - - SDL_LockSurface(s); - SDL_LockYUVOverlay(o); - - for (y = 0; y < s->h && y < o->h; y++) { - p = ((Uint8 *) s->pixels) + s->pitch * y; - op = o->pixels[0] + o->pitches[0] * y; - for (x = 0; x < s->w && x < o->w; x++) { - RGBtoYUV(p, yuv, monochrome, luminance); - if (x % 2 == 0) { - *(op++) = yuv[0]; - *(op++) = yuv[2]; - op[1] = yuv[1]; - } else { - *op = yuv[0]; - op += 2; - } - - p += s->format->BytesPerPixel; - } - } - - SDL_UnlockYUVOverlay(o); - SDL_UnlockSurface(s); -} - -void -ConvertRGBtoYUY2(SDL_Surface * s, SDL_Overlay * o, int monochrome, - int luminance) -{ - int x, y; - int yuv[3]; - Uint8 *p, *op; - - SDL_LockSurface(s); - SDL_LockYUVOverlay(o); - - for (y = 0; y < s->h && y < o->h; y++) { - p = ((Uint8 *) s->pixels) + s->pitch * y; - op = o->pixels[0] + o->pitches[0] * y; - for (x = 0; x < s->w && x < o->w; x++) { - RGBtoYUV(p, yuv, monochrome, luminance); - if (x % 2 == 0) { - *(op++) = yuv[0]; - *(op++) = yuv[1]; - op[1] = yuv[2]; - } else { - *op = yuv[0]; - op += 2; - } - - p += s->format->BytesPerPixel; - } - } - - SDL_UnlockYUVOverlay(o); - SDL_UnlockSurface(s); -} - -static void -PrintUsage(char *argv0) -{ - fprintf(stderr, "Usage: %s [arg] [arg] [arg] ...\n", argv0); - fprintf(stderr, "\n"); - fprintf(stderr, "Where 'arg' is any of the following options:\n"); - fprintf(stderr, "\n"); - fprintf(stderr, " -fps \n"); - fprintf(stderr, " -nodelay\n"); - fprintf(stderr, " -format (one of the: YV12, IYUV, YUY2, UYVY, YVYU)\n"); - fprintf(stderr, " -scale (initial scale of the overlay)\n"); - fprintf(stderr, " -help (shows this help)\n"); - fprintf(stderr, "\n"); - fprintf(stderr, - "Press ESC to exit, or SPACE to freeze the movie while application running.\n"); - fprintf(stderr, "\n"); -} - -int -main(int argc, char **argv) -{ - Uint8 *RawMooseData; - SDL_RWops *handle; - int window_w; - int window_h; - SDL_Window *window; - SDL_Renderer *renderer; - Uint8 MooseFrame[MOOSEFRAMES_COUNT][MOOSEFRAME_SIZE*2]; - SDL_Texture *MooseTexture; - SDL_Rect displayrect; - SDL_Event event; - int paused = 0; - int i, j; - int fps = 12; - int fpsdelay; - int nodelay = 0; - Uint32 pixel_format = SDL_PIXELFORMAT_YV12; - int scale = 5; - SDL_bool done = SDL_FALSE; - - if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return 3; - } - - while (argc > 1) { - if (strcmp(argv[1], "-fps") == 0) { - if (argv[2]) { - fps = atoi(argv[2]); - if (fps == 0) { - fprintf(stderr, - "The -fps option requires an argument [from 1 to 1000], default is 12.\n"); - quit(10); - } - if ((fps < 0) || (fps > 1000)) { - fprintf(stderr, - "The -fps option must be in range from 1 to 1000, default is 12.\n"); - quit(10); - } - argv += 2; - argc -= 2; - } else { - fprintf(stderr, - "The -fps option requires an argument [from 1 to 1000], default is 12.\n"); - quit(10); - } - } else if (strcmp(argv[1], "-nodelay") == 0) { - nodelay = 1; - argv += 1; - argc -= 1; - } else if (strcmp(argv[1], "-format") == 0) { - if (argv[2]) { - if (!strcmp(argv[2], "YV12")) - pixel_format = SDL_PIXELFORMAT_YV12; - else if (!strcmp(argv[2], "IYUV")) - pixel_format = SDL_PIXELFORMAT_IYUV; - else if (!strcmp(argv[2], "YUY2")) - pixel_format = SDL_PIXELFORMAT_YUY2; - else if (!strcmp(argv[2], "UYVY")) - pixel_format = SDL_PIXELFORMAT_UYVY; - else if (!strcmp(argv[2], "YVYU")) - pixel_format = SDL_PIXELFORMAT_YVYU; - else { - fprintf(stderr, - "The -format option %s is not recognized, see help for info.\n", - argv[2]); - quit(10); - } - argv += 2; - argc -= 2; - } else { - fprintf(stderr, - "The -format option requires an argument, default is YUY2.\n"); - quit(10); - } - } else if (strcmp(argv[1], "-scale") == 0) { - if (argv[2]) { - scale = atoi(argv[2]); - if (scale == 0) { - fprintf(stderr, - "The -scale option requires an argument [from 1 to 50], default is 5.\n"); - quit(10); - } - if ((scale < 0) || (scale > 50)) { - fprintf(stderr, - "The -scale option must be in range from 1 to 50, default is 5.\n"); - quit(10); - } - argv += 2; - argc -= 2; - } else { - fprintf(stderr, - "The -fps option requires an argument [from 1 to 1000], default is 12.\n"); - quit(10); - } - } else if ((strcmp(argv[1], "-help") == 0) - || (strcmp(argv[1], "-h") == 0)) { - PrintUsage(argv[0]); - quit(0); - } else { - fprintf(stderr, "Unrecognized option: %s.\n", argv[1]); - quit(10); - } - break; - } - - RawMooseData = (Uint8 *) malloc(MOOSEFRAME_SIZE * MOOSEFRAMES_COUNT); - if (RawMooseData == NULL) { - fprintf(stderr, "Can't allocate memory for movie !\n"); - free(RawMooseData); - quit(1); - } - - /* load the trojan moose images */ - handle = SDL_RWFromFile("moose.dat", "rb"); - if (handle == NULL) { - fprintf(stderr, "Can't find the file moose.dat !\n"); - free(RawMooseData); - quit(2); - } - - SDL_RWread(handle, RawMooseData, MOOSEFRAME_SIZE, MOOSEFRAMES_COUNT); - - SDL_RWclose(handle); - - /* Create the window and renderer */ - window_w = MOOSEPIC_W * scale; - window_h = MOOSEPIC_H * scale; - window = SDL_CreateWindow("Happy Moose", - SDL_WINDOWPOS_UNDEFINED, - SDL_WINDOWPOS_UNDEFINED, - window_w, window_h, - SDL_WINDOW_SHOWN|SDL_WINDOW_RESIZABLE); - if (!window) { - fprintf(stderr, "Couldn't set create window: %s\n", SDL_GetError()); - free(RawMooseData); - quit(4); - } - - renderer = SDL_CreateRenderer(window, -1, 0); - if (!renderer) { - fprintf(stderr, "Couldn't set create renderer: %s\n", SDL_GetError()); - free(RawMooseData); - quit(4); - } - - MooseTexture = SDL_CreateTexture(renderer, pixel_format, SDL_TEXTUREACCESS_STREAMING, MOOSEPIC_W, MOOSEPIC_H); - if (!MooseTexture) { - fprintf(stderr, "Couldn't set create texture: %s\n", SDL_GetError()); - free(RawMooseData); - quit(5); - } - - for (i = 0; i < MOOSEFRAMES_COUNT; i++) { - Uint8 MooseFrameRGB[MOOSEFRAME_SIZE*3]; - Uint8 *rgb; - Uint8 *frame; - - rgb = MooseFrameRGB; - frame = RawMooseData + i * MOOSEFRAME_SIZE; - for (j = 0; j < MOOSEFRAME_SIZE; ++j) { - rgb[0] = MooseColors[frame[j]].r; - rgb[1] = MooseColors[frame[j]].g; - rgb[2] = MooseColors[frame[j]].b; - rgb += 3; - } - ConvertRGBtoYV12(MooseFrameRGB, MooseFrame[i], MOOSEPIC_W, MOOSEPIC_H, 0, 100); - } - - free(RawMooseData); - - /* set the start frame */ - i = 0; - if (nodelay) { - fpsdelay = 0; - } else { - fpsdelay = 1000 / fps; - } - - displayrect.x = 0; - displayrect.y = 0; - displayrect.w = window_w; - displayrect.h = window_h; - - /* Ignore key up events, they don't even get filtered */ - SDL_EventState(SDL_KEYUP, SDL_IGNORE); - - /* Loop, waiting for QUIT or RESIZE */ - while (!done) { - while (SDL_PollEvent(&event)) { - switch (event.type) { - case SDL_WINDOWEVENT: - if (event.window.event == SDL_WINDOWEVENT_RESIZED) { - SDL_RenderSetViewport(renderer, NULL); - displayrect.w = window_w = event.window.data1; - displayrect.h = window_h = event.window.data2; - } - break; - case SDL_MOUSEBUTTONDOWN: - displayrect.x = event.button.x - window_w / 2; - displayrect.y = event.button.y - window_h / 2; - break; - case SDL_MOUSEMOTION: - if (event.motion.state) { - displayrect.x = event.motion.x - window_w / 2; - displayrect.y = event.motion.y - window_h / 2; - } - break; - case SDL_KEYDOWN: - if (event.key.keysym.sym == SDLK_SPACE) { - paused = !paused; - break; - } - if (event.key.keysym.sym != SDLK_ESCAPE) { - break; - } - case SDL_QUIT: - done = SDL_TRUE; - break; - } - } - SDL_Delay(fpsdelay); - - if (!paused) { - i = (i + 1) % MOOSEFRAMES_COUNT; - - SDL_UpdateTexture(MooseTexture, NULL, MooseFrame[i], MOOSEPIC_W*SDL_BYTESPERPIXEL(pixel_format)); - } - SDL_RenderClear(renderer); - SDL_RenderCopy(renderer, MooseTexture, NULL, &displayrect); - SDL_RenderPresent(renderer); - } - SDL_DestroyRenderer(renderer); - quit(0); - return 0; -} - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/3rdparty/SDL-1.3.0-5387/test/testplatform.c b/3rdparty/SDL-1.3.0-5387/test/testplatform.c deleted file mode 100644 index f2b125479c..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testplatform.c +++ /dev/null @@ -1,193 +0,0 @@ - -#include - -#include "SDL.h" -#include "SDL_endian.h" -#include "SDL_cpuinfo.h" -#include "SDL_assert.h" - -/* - * 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 -badsize(size_t sizeoftype, size_t hardcodetype) -{ - return sizeoftype != hardcodetype; -} - -int -TestTypes(SDL_bool verbose) -{ - int error = 0; - - if (badsize(sizeof(Uint8), 1)) { - if (verbose) - printf("sizeof(Uint8) != 1, instead = %u\n", - (unsigned int)sizeof(Uint8)); - ++error; - } - if (badsize(sizeof(Uint16), 2)) { - if (verbose) - printf("sizeof(Uint16) != 2, instead = %u\n", - (unsigned int)sizeof(Uint16)); - ++error; - } - if (badsize(sizeof(Uint32), 4)) { - if (verbose) - printf("sizeof(Uint32) != 4, instead = %u\n", - (unsigned int)sizeof(Uint32)); - ++error; - } -#ifdef SDL_HAS_64BIT_TYPE - if (badsize(sizeof(Uint64), 8)) { - if (verbose) - printf("sizeof(Uint64) != 8, instead = %u\n", - (unsigned int)sizeof(Uint64)); - ++error; - } -#else - if (verbose) { - printf("WARNING: No 64-bit datatype on this platform\n"); - } -#endif - if (verbose && !error) - printf("All data types are the expected size.\n"); - - return (error ? 1 : 0); -} - -int -TestEndian(SDL_bool verbose) -{ - int error = 0; - 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 - - if (verbose) { - printf("Detected a %s endian machine.\n", - (SDL_BYTEORDER == SDL_LIL_ENDIAN) ? "little" : "big"); - } - if ((*((char *) &value) >> 4) == 0x1) { - real_byteorder = SDL_BIG_ENDIAN; - } else { - real_byteorder = SDL_LIL_ENDIAN; - } - if (real_byteorder != SDL_BYTEORDER) { - if (verbose) { - printf("Actually a %s endian machine!\n", - (real_byteorder == SDL_LIL_ENDIAN) ? "little" : "big"); - } - ++error; - } - if (verbose) { - printf("Value 16 = 0x%X, swapped = 0x%X\n", value16, - SDL_Swap16(value16)); - } - if (SDL_Swap16(value16) != swapped16) { - if (verbose) { - printf("16 bit value swapped incorrectly!\n"); - } - ++error; - } - if (verbose) { - printf("Value 32 = 0x%X, swapped = 0x%X\n", value32, - SDL_Swap32(value32)); - } - if (SDL_Swap32(value32) != swapped32) { - if (verbose) { - printf("32 bit value swapped incorrectly!\n"); - } - ++error; - } -#ifdef SDL_HAS_64BIT_TYPE - if (verbose) { -#ifdef _MSC_VER - printf("Value 64 = 0x%I64X, swapped = 0x%I64X\n", value64, - SDL_Swap64(value64)); -#else - printf("Value 64 = 0x%llX, swapped = 0x%llX\n", value64, - SDL_Swap64(value64)); -#endif - } - if (SDL_Swap64(value64) != swapped64) { - if (verbose) { - printf("64 bit value swapped incorrectly!\n"); - } - ++error; - } -#endif - return (error ? 1 : 0); -} - - -int -TestCPUInfo(SDL_bool verbose) -{ - if (verbose) { - printf("CPU count: %d\n", SDL_GetCPUCount()); - printf("CPU cache line size: %d\n", SDL_GetCPUCacheLineSize()); - printf("RDTSC %s\n", SDL_HasRDTSC()? "detected" : "not detected"); - printf("MMX %s\n", SDL_HasMMX()? "detected" : "not detected"); - printf("SSE %s\n", SDL_HasSSE()? "detected" : "not detected"); - printf("SSE2 %s\n", SDL_HasSSE2()? "detected" : "not detected"); - printf("SSE3 %s\n", SDL_HasSSE3()? "detected" : "not detected"); - printf("SSE4.1 %s\n", SDL_HasSSE41()? "detected" : "not detected"); - printf("SSE4.2 %s\n", SDL_HasSSE42()? "detected" : "not detected"); - } - return (0); -} - -int -TestAssertions(SDL_bool verbose) -{ - SDL_assert(1); - SDL_assert_release(1); - SDL_assert_paranoid(1); - SDL_assert(0 || 1); - SDL_assert_release(0 || 1); - SDL_assert_paranoid(0 || 1); - -#if 0 /* enable this to test assertion failures. */ - SDL_assert_release(1 == 2); - SDL_assert_release(5 < 4); - SDL_assert_release(0 && "This is a test"); -#endif - - return (0); -} - -int -main(int argc, char *argv[]) -{ - SDL_bool verbose = SDL_TRUE; - int status = 0; - - if (argv[1] && (SDL_strcmp(argv[1], "-q") == 0)) { - verbose = SDL_FALSE; - } - if (verbose) { - printf("This system is running %s\n", SDL_GetPlatform()); - } - - status += TestTypes(verbose); - status += TestEndian(verbose); - status += TestCPUInfo(verbose); - status += TestAssertions(verbose); - - return status; -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testpower.c b/3rdparty/SDL-1.3.0-5387/test/testpower.c deleted file mode 100644 index fe91514fed..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testpower.c +++ /dev/null @@ -1,66 +0,0 @@ -/* Simple test of power subsystem. */ - -#include -#include "SDL.h" - -static void -report_power(void) -{ - int seconds, percent; - const SDL_PowerState state = SDL_GetPowerInfo(&seconds, &percent); - char *statestr = NULL; - - printf("SDL-reported power info...\n"); - switch (state) { - case SDL_POWERSTATE_UNKNOWN: - statestr = "Unknown"; - break; - case SDL_POWERSTATE_ON_BATTERY: - statestr = "On battery"; - break; - case SDL_POWERSTATE_NO_BATTERY: - statestr = "No battery"; - break; - case SDL_POWERSTATE_CHARGING: - statestr = "Charging"; - break; - case SDL_POWERSTATE_CHARGED: - statestr = "Charged"; - break; - default: - statestr = "!!API ERROR!!"; - break; - } - - printf("State: %s\n", statestr); - - if (percent == -1) { - printf("Percent left: unknown\n"); - } else { - printf("Percent left: %d%%\n", percent); - } - - if (seconds == -1) { - printf("Time left: unknown\n"); - } else { - printf("Time left: %d minutes, %d seconds\n", (int) (seconds / 60), - (int) (seconds % 60)); - } -} - - -int -main(int argc, char *argv[]) -{ - if (SDL_Init(SDL_INIT_VIDEO) == -1) { - fprintf(stderr, "SDL_Init() failed: %s\n", SDL_GetError()); - return 1; - } - - report_power(); - - SDL_Quit(); - return 0; -} - -/* end of testpower.c ... */ diff --git a/3rdparty/SDL-1.3.0-5387/test/testresample.c b/3rdparty/SDL-1.3.0-5387/test/testresample.c deleted file mode 100644 index 9acc345c6f..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testresample.c +++ /dev/null @@ -1,104 +0,0 @@ -#include -#include "SDL.h" - -int -main(int argc, char **argv) -{ - SDL_AudioSpec spec; - SDL_AudioCVT cvt; - Uint32 len = 0; - Uint8 *data = NULL; - int cvtfreq = 0; - int bitsize = 0; - int blockalign = 0; - int avgbytes = 0; - SDL_RWops *io = NULL; - - if (argc != 4) { - fprintf(stderr, "USAGE: %s in.wav out.wav newfreq\n", argv[0]); - return 1; - } - - cvtfreq = atoi(argv[3]); - - if (SDL_Init(SDL_INIT_AUDIO) == -1) { - fprintf(stderr, "SDL_Init() failed: %s\n", SDL_GetError()); - return 2; - } - - if (SDL_LoadWAV(argv[1], &spec, &data, &len) == NULL) { - fprintf(stderr, "failed to load %s: %s\n", argv[1], SDL_GetError()); - SDL_Quit(); - return 3; - } - - if (SDL_BuildAudioCVT(&cvt, spec.format, spec.channels, spec.freq, - spec.format, spec.channels, cvtfreq) == -1) { - fprintf(stderr, "failed to build CVT: %s\n", SDL_GetError()); - SDL_FreeWAV(data); - SDL_Quit(); - return 4; - } - - cvt.len = len; - cvt.buf = (Uint8 *) malloc(len * cvt.len_mult); - if (cvt.buf == NULL) { - fprintf(stderr, "Out of memory.\n"); - SDL_FreeWAV(data); - SDL_Quit(); - return 5; - } - memcpy(cvt.buf, data, len); - - if (SDL_ConvertAudio(&cvt) == -1) { - fprintf(stderr, "Conversion failed: %s\n", SDL_GetError()); - free(cvt.buf); - SDL_FreeWAV(data); - SDL_Quit(); - return 6; - } - - /* write out a WAV header... */ - io = SDL_RWFromFile(argv[2], "wb"); - if (io == NULL) { - fprintf(stderr, "fopen('%s') failed: %s\n", argv[2], SDL_GetError()); - free(cvt.buf); - SDL_FreeWAV(data); - SDL_Quit(); - return 7; - } - - bitsize = SDL_AUDIO_BITSIZE(spec.format); - blockalign = (bitsize / 8) * spec.channels; - avgbytes = cvtfreq * blockalign; - - SDL_WriteLE32(io, 0x46464952); /* RIFF */ - SDL_WriteLE32(io, len * cvt.len_mult + 36); - SDL_WriteLE32(io, 0x45564157); /* WAVE */ - SDL_WriteLE32(io, 0x20746D66); /* fmt */ - SDL_WriteLE32(io, 16); /* chunk size */ - SDL_WriteLE16(io, 1); /* uncompressed */ - SDL_WriteLE16(io, spec.channels); /* channels */ - SDL_WriteLE32(io, cvtfreq); /* sample rate */ - SDL_WriteLE32(io, avgbytes); /* average bytes per second */ - SDL_WriteLE16(io, blockalign); /* block align */ - SDL_WriteLE16(io, bitsize); /* significant bits per sample */ - SDL_WriteLE32(io, 0x61746164); /* data */ - SDL_WriteLE32(io, cvt.len_cvt); /* size */ - SDL_RWwrite(io, cvt.buf, cvt.len_cvt, 1); - - if (SDL_RWclose(io) == -1) { - fprintf(stderr, "fclose('%s') failed: %s\n", argv[2], SDL_GetError()); - free(cvt.buf); - SDL_FreeWAV(data); - SDL_Quit(); - return 8; - } // if - - free(cvt.buf); - SDL_FreeWAV(data); - SDL_Quit(); - return 0; -} // main - -// end of resample_test.c ... diff --git a/3rdparty/SDL-1.3.0-5387/test/testrumble.c b/3rdparty/SDL-1.3.0-5387/test/testrumble.c deleted file mode 100644 index 3ff9830322..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testrumble.c +++ /dev/null @@ -1,133 +0,0 @@ -/* -Copyright (c) 2011, Edgar Simo Serra -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of the Simple Directmedia Layer (SDL) nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - * includes - */ -#include -#include "SDL.h" -#include "SDL_haptic.h" - -#include /* printf */ -#include /* strstr */ -#include /* isdigit */ - - -static SDL_Haptic *haptic; - - -/** - * @brief The entry point of this force feedback demo. - * @param[in] argc Number of arguments. - * @param[in] argv Array of argc arguments. - */ -int -main(int argc, char **argv) -{ - int i; - char *name; - int index; - SDL_HapticEffect efx[5]; - int id[5]; - int nefx; - unsigned int supported; - - name = NULL; - index = -1; - if (argc > 1) { - name = argv[1]; - if ((strcmp(name, "--help") == 0) || (strcmp(name, "-h") == 0)) { - printf("USAGE: %s [device]\n" - "If device is a two-digit number it'll use it as an index, otherwise\n" - "it'll use it as if it were part of the device's name.\n", - argv[0]); - return 0; - } - - i = strlen(name); - if ((i < 3) && isdigit(name[0]) && ((i == 1) || isdigit(name[1]))) { - index = atoi(name); - name = NULL; - } - } - - /* Initialize the force feedbackness */ - SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_JOYSTICK | - SDL_INIT_HAPTIC); - printf("%d Haptic devices detected.\n", SDL_NumHaptics()); - if (SDL_NumHaptics() > 0) { - /* We'll just use index or the first force feedback device found */ - if (name == NULL) { - i = (index != -1) ? index : 0; - } - /* Try to find matching device */ - else { - for (i = 0; i < SDL_NumHaptics(); i++) { - if (strstr(SDL_HapticName(i), name) != NULL) - break; - } - - if (i >= SDL_NumHaptics()) { - printf("Unable to find device matching '%s', aborting.\n", - name); - return 1; - } - } - - haptic = SDL_HapticOpen(i); - if (haptic == NULL) { - printf("Unable to create the haptic device: %s\n", - SDL_GetError()); - return 1; - } - printf("Device: %s\n", SDL_HapticName(i)); - } else { - printf("No Haptic devices found!\n"); - return 1; - } - - /* We only want force feedback errors. */ - SDL_ClearError(); - - if (SDL_HapticRumbleSupported(haptic) == SDL_FALSE) { - printf("\nRumble not supported!\n"); - return 1; - } - if (SDL_HapticRumbleInit(haptic) != 0) { - printf("\nFailed to initialize rumble: %s\n", SDL_GetError()); - return 1; - } - printf("Playing 2 second rumble at 0.5 magnitude.\n"); - if (SDL_HapticRumblePlay(haptic, 0.5, 5000) != 0) { - printf("\nFailed to play rumble: %s\n", SDL_GetError() ); - return 1; - } - SDL_Delay(2000); - printf("Stopping rumble.\n"); - SDL_HapticRumbleStop(haptic); - SDL_Delay(2000); - printf("Playing 2 second rumble at 0.3 magnitude.\n"); - if (SDL_HapticRumblePlay(haptic, 0.3, 5000) != 0) { - printf("\nFailed to play rumble: %s\n", SDL_GetError() ); - return 1; - } - SDL_Delay(2000); - - /* Quit */ - if (haptic != NULL) - SDL_HapticClose(haptic); - SDL_Quit(); - - return 0; -} - diff --git a/3rdparty/SDL-1.3.0-5387/test/testscale.c b/3rdparty/SDL-1.3.0-5387/test/testscale.c deleted file mode 100644 index 30fca1ef9e..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testscale.c +++ /dev/null @@ -1,185 +0,0 @@ -/* Simple program: Move N sprites around on the screen as fast as possible */ - -#include -#include -#include - -#include "SDL.h" -#include "common.h" - -#define WINDOW_WIDTH 640 -#define WINDOW_HEIGHT 480 - -static CommonState *state; - -typedef struct { - SDL_Window *window; - SDL_Renderer *renderer; - SDL_Texture *background; - SDL_Texture *sprite; - SDL_Rect sprite_rect; - int scale_direction; -} DrawState; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - CommonQuit(state); - exit(rc); -} - -SDL_Texture * -LoadTexture(SDL_Renderer *renderer, char *file, SDL_bool transparent) -{ - SDL_Surface *temp; - SDL_Texture *texture; - - /* Load the sprite image */ - temp = SDL_LoadBMP(file); - if (temp == NULL) { - fprintf(stderr, "Couldn't load %s: %s", file, SDL_GetError()); - return NULL; - } - - /* Set transparent pixel as the pixel at (0,0) */ - if (transparent) { - if (temp->format->palette) { - SDL_SetColorKey(temp, SDL_TRUE, *(Uint8 *) temp->pixels); - } else { - switch (temp->format->BitsPerPixel) { - case 15: - SDL_SetColorKey(temp, SDL_TRUE, - (*(Uint16 *) temp->pixels) & 0x00007FFF); - break; - case 16: - SDL_SetColorKey(temp, SDL_TRUE, *(Uint16 *) temp->pixels); - break; - case 24: - SDL_SetColorKey(temp, SDL_TRUE, - (*(Uint32 *) temp->pixels) & 0x00FFFFFF); - break; - case 32: - SDL_SetColorKey(temp, SDL_TRUE, *(Uint32 *) temp->pixels); - break; - } - } - } - - /* Create textures from the image */ - texture = SDL_CreateTextureFromSurface(renderer, temp); - if (!texture) { - fprintf(stderr, "Couldn't create texture: %s\n", SDL_GetError()); - SDL_FreeSurface(temp); - return NULL; - } - SDL_FreeSurface(temp); - - /* We're ready to roll. :) */ - return texture; -} - -void -Draw(DrawState *s) -{ - SDL_Rect viewport; - - SDL_RenderGetViewport(s->renderer, &viewport); - - /* Draw the background */ - SDL_RenderCopy(s->renderer, s->background, NULL, NULL); - - /* Scale and draw the sprite */ - s->sprite_rect.w += s->scale_direction; - s->sprite_rect.h += s->scale_direction; - if (s->scale_direction > 0) { - if (s->sprite_rect.w >= viewport.w || s->sprite_rect.h >= viewport.h) { - s->scale_direction = -1; - } - } else { - if (s->sprite_rect.w <= 1 || s->sprite_rect.h <= 1) { - s->scale_direction = 1; - } - } - s->sprite_rect.x = (viewport.w - s->sprite_rect.w) / 2; - s->sprite_rect.y = (viewport.h - s->sprite_rect.h) / 2; - - SDL_RenderCopy(s->renderer, s->sprite, NULL, &s->sprite_rect); - - /* Update the screen! */ - SDL_RenderPresent(s->renderer); -} - -int -main(int argc, char *argv[]) -{ - DrawState *drawstates; - int i, done; - SDL_Event event; - int frames; - Uint32 then, now; - - /* Initialize test framework */ - state = CommonCreateState(argv, SDL_INIT_VIDEO); - if (!state) { - return 1; - } - for (i = 1; i < argc;) { - int consumed; - - consumed = CommonArg(state, i); - if (consumed == 0) { - fprintf(stderr, "Usage: %s %s\n", argv[0], CommonUsage(state)); - return 1; - } - i += consumed; - } - if (!CommonInit(state)) { - quit(2); - } - - drawstates = SDL_stack_alloc(DrawState, state->num_windows); - for (i = 0; i < state->num_windows; ++i) { - DrawState *drawstate = &drawstates[i]; - - drawstate->window = state->windows[i]; - drawstate->renderer = state->renderers[i]; - drawstate->sprite = LoadTexture(drawstate->renderer, "icon.bmp", SDL_TRUE); - drawstate->background = LoadTexture(drawstate->renderer, "sample.bmp", SDL_FALSE); - if (!drawstate->sprite || !drawstate->background) { - quit(2); - } - SDL_QueryTexture(drawstate->sprite, NULL, NULL, - &drawstate->sprite_rect.w, &drawstate->sprite_rect.h); - drawstate->scale_direction = 1; - } - - /* Main render loop */ - frames = 0; - then = SDL_GetTicks(); - done = 0; - while (!done) { - /* Check for events */ - ++frames; - while (SDL_PollEvent(&event)) { - CommonEvent(state, &event, &done); - } - for (i = 0; i < state->num_windows; ++i) { - Draw(&drawstates[i]); - } - } - - /* Print out some timing information */ - now = SDL_GetTicks(); - if (now > then) { - double fps = ((double) frames * 1000) / (now - then); - printf("%2.2f frames per second\n", fps); - } - - SDL_stack_free(drawstates); - - quit(0); - return 0; -} - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/3rdparty/SDL-1.3.0-5387/test/testsem.c b/3rdparty/SDL-1.3.0-5387/test/testsem.c deleted file mode 100644 index c4787e9b8a..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testsem.c +++ /dev/null @@ -1,112 +0,0 @@ - -/* Simple test of the SDL semaphore code */ - -#include -#include -#include - -#include "SDL.h" -#include "SDL_thread.h" - -#define NUM_THREADS 10 - -static SDL_sem *sem; -int alive = 1; - -int SDLCALL -ThreadFunc(void *data) -{ - int threadnum = (int) (uintptr_t) data; - while (alive) { - SDL_SemWait(sem); - fprintf(stderr, - "Thread number %d has got the semaphore (value = %d)!\n", - threadnum, SDL_SemValue(sem)); - SDL_Delay(200); - SDL_SemPost(sem); - fprintf(stderr, - "Thread number %d has released the semaphore (value = %d)!\n", - threadnum, SDL_SemValue(sem)); - SDL_Delay(1); /* For the scheduler */ - } - printf("Thread number %d exiting.\n", threadnum); - return 0; -} - -static void -killed(int sig) -{ - alive = 0; -} - -static void -TestWaitTimeout(void) -{ - Uint32 start_ticks; - Uint32 end_ticks; - Uint32 duration; - - sem = SDL_CreateSemaphore(0); - printf("Waiting 2 seconds on semaphore\n"); - - start_ticks = SDL_GetTicks(); - SDL_SemWaitTimeout(sem, 2000); - end_ticks = SDL_GetTicks(); - - duration = end_ticks - start_ticks; - - /* Accept a little offset in the effective wait */ - if (duration > 1900 && duration < 2050) - printf("Wait done.\n"); - else - fprintf(stderr, "Wait took %d milliseconds\n", duration); -} - -int -main(int argc, char **argv) -{ - SDL_Thread *threads[NUM_THREADS]; - uintptr_t i; - int init_sem; - - if (argc < 2) { - fprintf(stderr, "Usage: %s init_value\n", argv[0]); - return (1); - } - - /* Load the SDL library */ - if (SDL_Init(0) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - signal(SIGTERM, killed); - signal(SIGINT, killed); - - init_sem = atoi(argv[1]); - sem = SDL_CreateSemaphore(init_sem); - - printf("Running %d threads, semaphore value = %d\n", NUM_THREADS, - init_sem); - /* Create all the threads */ - for (i = 0; i < NUM_THREADS; ++i) { - threads[i] = SDL_CreateThread(ThreadFunc, (void *) i); - } - - /* Wait 10 seconds */ - SDL_Delay(10 * 1000); - - /* Wait for all threads to finish */ - printf("Waiting for threads to finish\n"); - alive = 0; - for (i = 0; i < NUM_THREADS; ++i) { - SDL_WaitThread(threads[i], NULL); - } - printf("Finished waiting for threads\n"); - - SDL_DestroySemaphore(sem); - - TestWaitTimeout(); - - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testshader.c b/3rdparty/SDL-1.3.0-5387/test/testshader.c deleted file mode 100644 index 72e5c106c4..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testshader.c +++ /dev/null @@ -1,487 +0,0 @@ -/* This is a simple example of using GLSL shaders with SDL */ - -#include "SDL.h" - -#ifdef HAVE_OPENGL - -#include "SDL_opengl.h" - - -static SDL_bool shaders_supported; -static int current_shader = 0; - -enum { - SHADER_COLOR, - SHADER_TEXTURE, - SHADER_TEXCOORDS, - NUM_SHADERS -}; - -typedef struct { - GLuint program; - GLuint vert_shader; - GLuint frag_shader; - const char *vert_source; - const char *frag_source; -} ShaderData; - -static ShaderData shaders[NUM_SHADERS] = { - - /* SHADER_COLOR */ - { 0, 0, 0, - /* vertex shader */ -"varying vec4 v_color;\n" -"\n" -"void main()\n" -"{\n" -" gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;\n" -" v_color = gl_Color;\n" -"}", - /* fragment shader */ -"varying vec4 v_color;\n" -"\n" -"void main()\n" -"{\n" -" gl_FragColor = v_color;\n" -"}" - }, - - /* SHADER_TEXTURE */ - { 0, 0, 0, - /* vertex shader */ -"varying vec4 v_color;\n" -"varying vec2 v_texCoord;\n" -"\n" -"void main()\n" -"{\n" -" gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;\n" -" v_color = gl_Color;\n" -" v_texCoord = vec2(gl_MultiTexCoord0);\n" -"}", - /* fragment shader */ -"varying vec4 v_color;\n" -"varying vec2 v_texCoord;\n" -"uniform sampler2D tex0;\n" -"\n" -"void main()\n" -"{\n" -" gl_FragColor = texture2D(tex0, v_texCoord) * v_color;\n" -"}" - }, - - /* SHADER_TEXCOORDS */ - { 0, 0, 0, - /* vertex shader */ -"varying vec2 v_texCoord;\n" -"\n" -"void main()\n" -"{\n" -" gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;\n" -" v_texCoord = vec2(gl_MultiTexCoord0);\n" -"}", - /* fragment shader */ -"varying vec2 v_texCoord;\n" -"\n" -"void main()\n" -"{\n" -" vec4 color;\n" -" vec2 delta;\n" -" float dist;\n" -"\n" -" delta = vec2(0.5, 0.5) - v_texCoord;\n" -" dist = dot(delta, delta);\n" -"\n" -" color.r = v_texCoord.x;\n" -" color.g = v_texCoord.x * v_texCoord.y;\n" -" color.b = v_texCoord.y;\n" -" color.a = 1.0 - (dist * 4.0);\n" -" gl_FragColor = color;\n" -"}" - }, -}; - -static PFNGLATTACHOBJECTARBPROC glAttachObjectARB; -static PFNGLCOMPILESHADERARBPROC glCompileShaderARB; -static PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB; -static PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB; -static PFNGLDELETEOBJECTARBPROC glDeleteObjectARB; -static PFNGLGETINFOLOGARBPROC glGetInfoLogARB; -static PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB; -static PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB; -static PFNGLLINKPROGRAMARBPROC glLinkProgramARB; -static PFNGLSHADERSOURCEARBPROC glShaderSourceARB; -static PFNGLUNIFORM1IARBPROC glUniform1iARB; -static PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB; - -static SDL_bool CompileShader(GLenum shader, const char *source) -{ - GLint status; - - glShaderSourceARB(shader, 1, &source, NULL); - glCompileShaderARB(shader); - glGetObjectParameterivARB(shader, GL_OBJECT_COMPILE_STATUS_ARB, &status); - if (status == 0) { - GLint length; - char *info; - - glGetObjectParameterivARB(shader, GL_OBJECT_INFO_LOG_LENGTH_ARB, &length); - info = SDL_stack_alloc(char, length+1); - glGetInfoLogARB(shader, length, NULL, info); - fprintf(stderr, "Failed to compile shader:\n%s\n%s", source, info); - SDL_stack_free(info); - - return SDL_FALSE; - } else { - return SDL_TRUE; - } -} - -static SDL_bool CompileShaderProgram(ShaderData *data) -{ - const int num_tmus_bound = 4; - int i; - GLint location; - - glGetError(); - - /* Create one program object to rule them all */ - data->program = glCreateProgramObjectARB(); - - /* Create the vertex shader */ - data->vert_shader = glCreateShaderObjectARB(GL_VERTEX_SHADER_ARB); - if (!CompileShader(data->vert_shader, data->vert_source)) { - return SDL_FALSE; - } - - /* Create the fragment shader */ - data->frag_shader = glCreateShaderObjectARB(GL_FRAGMENT_SHADER_ARB); - if (!CompileShader(data->frag_shader, data->frag_source)) { - return SDL_FALSE; - } - - /* ... and in the darkness bind them */ - glAttachObjectARB(data->program, data->vert_shader); - glAttachObjectARB(data->program, data->frag_shader); - glLinkProgramARB(data->program); - - /* Set up some uniform variables */ - glUseProgramObjectARB(data->program); - for (i = 0; i < num_tmus_bound; ++i) { - char tex_name[5]; - SDL_snprintf(tex_name, SDL_arraysize(tex_name), "tex%d", i); - location = glGetUniformLocationARB(data->program, tex_name); - if (location >= 0) { - glUniform1iARB(location, i); - } - } - glUseProgramObjectARB(0); - - return (glGetError() == GL_NO_ERROR); -} - -static void DestroyShaderProgram(ShaderData *data) -{ - if (shaders_supported) { - glDeleteObjectARB(data->vert_shader); - glDeleteObjectARB(data->frag_shader); - glDeleteObjectARB(data->program); - } -} - -static SDL_bool InitShaders() -{ - int i; - - /* Check for shader support */ - shaders_supported = SDL_FALSE; - if (SDL_GL_ExtensionSupported("GL_ARB_shader_objects") && - SDL_GL_ExtensionSupported("GL_ARB_shading_language_100") && - SDL_GL_ExtensionSupported("GL_ARB_vertex_shader") && - SDL_GL_ExtensionSupported("GL_ARB_fragment_shader")) { - glAttachObjectARB = (PFNGLATTACHOBJECTARBPROC) SDL_GL_GetProcAddress("glAttachObjectARB"); - glCompileShaderARB = (PFNGLCOMPILESHADERARBPROC) SDL_GL_GetProcAddress("glCompileShaderARB"); - glCreateProgramObjectARB = (PFNGLCREATEPROGRAMOBJECTARBPROC) SDL_GL_GetProcAddress("glCreateProgramObjectARB"); - glCreateShaderObjectARB = (PFNGLCREATESHADEROBJECTARBPROC) SDL_GL_GetProcAddress("glCreateShaderObjectARB"); - glDeleteObjectARB = (PFNGLDELETEOBJECTARBPROC) SDL_GL_GetProcAddress("glDeleteObjectARB"); - glGetInfoLogARB = (PFNGLGETINFOLOGARBPROC) SDL_GL_GetProcAddress("glGetInfoLogARB"); - glGetObjectParameterivARB = (PFNGLGETOBJECTPARAMETERIVARBPROC) SDL_GL_GetProcAddress("glGetObjectParameterivARB"); - glGetUniformLocationARB = (PFNGLGETUNIFORMLOCATIONARBPROC) SDL_GL_GetProcAddress("glGetUniformLocationARB"); - glLinkProgramARB = (PFNGLLINKPROGRAMARBPROC) SDL_GL_GetProcAddress("glLinkProgramARB"); - glShaderSourceARB = (PFNGLSHADERSOURCEARBPROC) SDL_GL_GetProcAddress("glShaderSourceARB"); - glUniform1iARB = (PFNGLUNIFORM1IARBPROC) SDL_GL_GetProcAddress("glUniform1iARB"); - glUseProgramObjectARB = (PFNGLUSEPROGRAMOBJECTARBPROC) SDL_GL_GetProcAddress("glUseProgramObjectARB"); - if (glAttachObjectARB && - glCompileShaderARB && - glCreateProgramObjectARB && - glCreateShaderObjectARB && - glDeleteObjectARB && - glGetInfoLogARB && - glGetObjectParameterivARB && - glGetUniformLocationARB && - glLinkProgramARB && - glShaderSourceARB && - glUniform1iARB && - glUseProgramObjectARB) { - shaders_supported = SDL_TRUE; - } - } - - if (!shaders_supported) { - return SDL_FALSE; - } - - /* Compile all the shaders */ - for (i = 0; i < NUM_SHADERS; ++i) { - if (!CompileShaderProgram(&shaders[i])) { - fprintf(stderr, "Unable to compile shader!\n"); - return SDL_FALSE; - } - } - - /* We're done! */ - return SDL_TRUE; -} - -static void QuitShaders() -{ - int i; - - for (i = 0; i < NUM_SHADERS; ++i) { - DestroyShaderProgram(&shaders[i]); - } -} - -/* Quick utility function for texture creation */ -static int -power_of_two(int input) -{ - int value = 1; - - while (value < input) { - value <<= 1; - } - return value; -} - -GLuint -SDL_GL_LoadTexture(SDL_Surface * surface, GLfloat * texcoord) -{ - GLuint texture; - int w, h; - SDL_Surface *image; - SDL_Rect area; - Uint32 saved_flags; - Uint8 saved_alpha; - - /* Use the surface width and height expanded to powers of 2 */ - w = power_of_two(surface->w); - h = power_of_two(surface->h); - texcoord[0] = 0.0f; /* Min X */ - texcoord[1] = 0.0f; /* Min Y */ - texcoord[2] = (GLfloat) surface->w / w; /* Max X */ - texcoord[3] = (GLfloat) surface->h / h; /* Max Y */ - - image = SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, 32, -#if SDL_BYTEORDER == SDL_LIL_ENDIAN /* OpenGL RGBA masks */ - 0x000000FF, - 0x0000FF00, 0x00FF0000, 0xFF000000 -#else - 0xFF000000, - 0x00FF0000, 0x0000FF00, 0x000000FF -#endif - ); - if (image == NULL) { - return 0; - } - - /* Save the alpha blending attributes */ - saved_flags = surface->flags & (SDL_SRCALPHA | SDL_RLEACCELOK); - SDL_GetSurfaceAlphaMod(surface, &saved_alpha); - if ((saved_flags & SDL_SRCALPHA) == SDL_SRCALPHA) { - SDL_SetAlpha(surface, 0, 0); - } - - /* Copy the surface into the GL texture image */ - area.x = 0; - area.y = 0; - area.w = surface->w; - area.h = surface->h; - SDL_BlitSurface(surface, &area, image, &area); - - /* Restore the alpha blending attributes */ - if ((saved_flags & SDL_SRCALPHA) == SDL_SRCALPHA) { - SDL_SetAlpha(surface, saved_flags, saved_alpha); - } - - /* Create an OpenGL texture for the image */ - glGenTextures(1, &texture); - glBindTexture(GL_TEXTURE_2D, texture); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexImage2D(GL_TEXTURE_2D, - 0, - GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, image->pixels); - SDL_FreeSurface(image); /* No longer needed */ - - return texture; -} - -/* A general OpenGL initialization function. Sets all of the initial parameters. */ -void InitGL(int Width, int Height) // We call this right after our OpenGL window is created. -{ - GLdouble aspect; - - glViewport(0, 0, Width, Height); - glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // This Will Clear The Background Color To Black - glClearDepth(1.0); // Enables Clearing Of The Depth Buffer - glDepthFunc(GL_LESS); // The Type Of Depth Test To Do - glEnable(GL_DEPTH_TEST); // Enables Depth Testing - glShadeModel(GL_SMOOTH); // Enables Smooth Color Shading - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); // Reset The Projection Matrix - - aspect = (GLdouble)Width / Height; - glOrtho(-3.0, 3.0, -3.0 / aspect, 3.0 / aspect, 0.0, 1.0); - - glMatrixMode(GL_MODELVIEW); -} - -/* The main drawing function. */ -void DrawGLScene(GLuint texture, GLfloat * texcoord) -{ - /* Texture coordinate lookup, to make it simple */ - enum { - MINX, - MINY, - MAXX, - MAXY - }; - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer - glLoadIdentity(); // Reset The View - - glTranslatef(-1.5f,0.0f,0.0f); // Move Left 1.5 Units - - // draw a triangle (in smooth coloring mode) - glBegin(GL_POLYGON); // start drawing a polygon - glColor3f(1.0f,0.0f,0.0f); // Set The Color To Red - glVertex3f( 0.0f, 1.0f, 0.0f); // Top - glColor3f(0.0f,1.0f,0.0f); // Set The Color To Green - glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right - glColor3f(0.0f,0.0f,1.0f); // Set The Color To Blue - glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left - glEnd(); // we're done with the polygon (smooth color interpolation) - - glTranslatef(3.0f,0.0f,0.0f); // Move Right 3 Units - - // Enable blending - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - // draw a textured square (quadrilateral) - glEnable(GL_TEXTURE_2D); - glBindTexture(GL_TEXTURE_2D, texture); - glColor3f(1.0f,1.0f,1.0f); - if (shaders_supported) { - glUseProgramObjectARB(shaders[current_shader].program); - } - - glBegin(GL_QUADS); // start drawing a polygon (4 sided) - glTexCoord2f(texcoord[MINX], texcoord[MINY]); - glVertex3f(-1.0f, 1.0f, 0.0f); // Top Left - glTexCoord2f(texcoord[MAXX], texcoord[MINY]); - glVertex3f( 1.0f, 1.0f, 0.0f); // Top Right - glTexCoord2f(texcoord[MAXX], texcoord[MAXY]); - glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right - glTexCoord2f(texcoord[MINX], texcoord[MAXY]); - glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left - glEnd(); // done with the polygon - - if (shaders_supported) { - glUseProgramObjectARB(0); - } - glDisable(GL_TEXTURE_2D); - - // swap buffers to display, since we're double buffered. - SDL_GL_SwapBuffers(); -} - -int main(int argc, char **argv) -{ - int done; - SDL_Surface *surface; - GLuint texture; - GLfloat texcoords[4]; - - /* Initialize SDL for video output */ - if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) { - fprintf(stderr, "Unable to initialize SDL: %s\n", SDL_GetError()); - exit(1); - } - - /* Create a 640x480 OpenGL screen */ - if ( SDL_SetVideoMode(640, 480, 0, SDL_OPENGL) == NULL ) { - fprintf(stderr, "Unable to create OpenGL screen: %s\n", SDL_GetError()); - SDL_Quit(); - exit(2); - } - - /* Set the title bar in environments that support it */ - SDL_WM_SetCaption("Shader Demo", NULL); - - surface = SDL_LoadBMP("icon.bmp"); - if ( ! surface ) { - fprintf(stderr, "Unable to load icon.bmp: %s\n", SDL_GetError()); - SDL_Quit(); - exit(3); - } - texture = SDL_GL_LoadTexture(surface, texcoords); - SDL_FreeSurface(surface); - - /* Loop, drawing and checking events */ - InitGL(640, 480); - if (InitShaders()) { - printf("Shaders supported, press SPACE to cycle them.\n"); - } else { - printf("Shaders not supported!\n"); - } - done = 0; - while ( ! done ) { - DrawGLScene(texture, texcoords); - - /* This could go in a separate function */ - { SDL_Event event; - while ( SDL_PollEvent(&event) ) { - if ( event.type == SDL_QUIT ) { - done = 1; - } - if ( event.type == SDL_KEYDOWN ) { - if ( event.key.keysym.sym == SDLK_SPACE ) { - current_shader = (current_shader + 1) % NUM_SHADERS; - } - if ( event.key.keysym.sym == SDLK_ESCAPE ) { - done = 1; - } - } - } - } - } - QuitShaders(); - SDL_Quit(); - return 1; -} - -#else /* HAVE_OPENGL */ - -int -main(int argc, char *argv[]) -{ - printf("No OpenGL support on this system\n"); - return 1; -} - -#endif /* HAVE_OPENGL */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/3rdparty/SDL-1.3.0-5387/test/testshape.c b/3rdparty/SDL-1.3.0-5387/test/testshape.c deleted file mode 100644 index 2d3d774ed4..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testshape.c +++ /dev/null @@ -1,193 +0,0 @@ -#include -#include -#include -#include "SDL.h" -#include "SDL_shape.h" - -#define SHAPED_WINDOW_X 150 -#define SHAPED_WINDOW_Y 150 -#define SHAPED_WINDOW_DIMENSION 640 - -#define TICK_INTERVAL 1000/10 - -typedef struct LoadedPicture { - SDL_Surface *surface; - SDL_Texture *texture; - SDL_WindowShapeMode mode; -} LoadedPicture; - -void render(SDL_Renderer *renderer,SDL_Texture *texture,SDL_Rect texture_dimensions) -{ - //Clear render-target to blue. - SDL_SetRenderDrawColor(renderer,0x00,0x00,0xff,0xff); - SDL_RenderClear(renderer); - - //Render the texture. - SDL_RenderCopy(renderer,texture,&texture_dimensions,&texture_dimensions); - - SDL_RenderPresent(renderer); -} - -static Uint32 next_time; - -Uint32 time_left() -{ - Uint32 now = SDL_GetTicks(); - if(next_time <= now) - return 0; - else - return next_time - now; -} - -int main(int argc,char** argv) -{ - Uint8 num_pictures; - LoadedPicture* pictures; - int i, j; - SDL_PixelFormat* format = NULL; - SDL_Window *window; - SDL_Renderer *renderer; - SDL_Color black = {0,0,0,0xff}; - SDL_Event event; - int event_pending = 0; - int should_exit = 0; - unsigned int current_picture; - int button_down; - Uint32 pixelFormat = 0; - int access = 0; - SDL_Rect texture_dimensions;; - - if(argc < 2) { - printf("SDL_Shape requires at least one bitmap file as argument.\n"); - exit(-1); - } - - if(SDL_VideoInit(NULL) == -1) { - printf("Could not initialize SDL video.\n"); - exit(-2); - } - - num_pictures = argc - 1; - pictures = (LoadedPicture *)malloc(sizeof(LoadedPicture)*num_pictures); - for(i=0;iformat; - if(format->Amask != 0) { - pictures[i].mode.mode = ShapeModeBinarizeAlpha; - pictures[i].mode.parameters.binarizationCutoff = 255; - } - else { - pictures[i].mode.mode = ShapeModeColorKey; - pictures[i].mode.parameters.colorKey = black; - } - } - - window = SDL_CreateShapedWindow("SDL_Shape test",SHAPED_WINDOW_X,SHAPED_WINDOW_Y,SHAPED_WINDOW_DIMENSION,SHAPED_WINDOW_DIMENSION,SDL_WINDOW_RESIZABLE | SDL_WINDOW_SHOWN); - if(window == NULL) { - for(i=0;i= num_pictures) - current_picture = 0; - SDL_QueryTexture(pictures[current_picture].texture,(Uint32 *)&pixelFormat,(int *)&access,&texture_dimensions.w,&texture_dimensions.h); - SDL_SetWindowSize(window,texture_dimensions.w,texture_dimensions.h); - SDL_SetWindowShape(window,pictures[current_picture].surface,&pictures[current_picture].mode); - } - if(event.type == SDL_QUIT) - should_exit = 1; - event_pending = 0; - } - render(renderer,pictures[current_picture].texture,texture_dimensions); - SDL_Delay(time_left()); - next_time += TICK_INTERVAL; - } - - //Free the textures. - for(i=0;i -#include -#include -#include -#include -#include - -#include "SDL.h" - -#define NUM_SPRITES 100 -#define MAX_SPEED 1 - -SDL_Surface *sprite; -int numsprites; -SDL_Rect *sprite_rects; -SDL_Rect *positions; -SDL_Rect *velocities; -int sprites_visible; -int debug_flip; -Uint16 sprite_w, sprite_h; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -int -LoadSprite(char *file) -{ - SDL_Surface *temp; - - /* Load the sprite image */ - sprite = SDL_LoadBMP(file); - if (sprite == NULL) { - fprintf(stderr, "Couldn't load %s: %s", file, SDL_GetError()); - return (-1); - } - - /* Set transparent pixel as the pixel at (0,0) */ - if (sprite->format->palette) { - SDL_SetColorKey(sprite, (SDL_SRCCOLORKEY | SDL_RLEACCEL), - *(Uint8 *) sprite->pixels); - } - - /* Convert sprite to video format */ - temp = SDL_DisplayFormat(sprite); - SDL_FreeSurface(sprite); - if (temp == NULL) { - fprintf(stderr, "Couldn't convert background: %s\n", SDL_GetError()); - return (-1); - } - sprite = temp; - - /* We're ready to roll. :) */ - return (0); -} - -void -MoveSprites(SDL_Surface * screen, Uint32 background) -{ - int i, nupdates; - SDL_Rect area, *position, *velocity; - - nupdates = 0; - /* Erase all the sprites if necessary */ - if (sprites_visible) { - SDL_FillRect(screen, NULL, background); - } - - /* Move the sprite, bounce at the wall, and draw */ - for (i = 0; i < numsprites; ++i) { - position = &positions[i]; - velocity = &velocities[i]; - position->x += velocity->x; - if ((position->x < 0) || (position->x >= (screen->w - sprite_w))) { - velocity->x = -velocity->x; - position->x += velocity->x; - } - position->y += velocity->y; - if ((position->y < 0) || (position->y >= (screen->h - sprite_w))) { - velocity->y = -velocity->y; - position->y += velocity->y; - } - - /* Blit the sprite onto the screen */ - area = *position; - SDL_BlitSurface(sprite, NULL, screen, &area); - sprite_rects[nupdates++] = area; - } - - if (debug_flip) { - if ((screen->flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF) { - static int t = 0; - - Uint32 color = SDL_MapRGB(screen->format, 255, 0, 0); - SDL_Rect r; - r.x = - (int)((sin((float) t * 2 * 3.1459) + 1.0) / 2.0 * (screen->w - 20)); - r.y = 0; - r.w = 20; - r.h = screen->h; - - SDL_FillRect(screen, &r, color); - t += 2; - } - } - - /* Update the screen! */ - if ((screen->flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF) { - SDL_Flip(screen); - } else { - SDL_UpdateRects(screen, nupdates, sprite_rects); - } - sprites_visible = 1; -} - -/* This is a way of telling whether or not to use hardware surfaces */ -Uint32 -FastestFlags(Uint32 flags, int width, int height, int bpp) -{ - const SDL_VideoInfo *info; - - /* Hardware acceleration is only used in fullscreen mode */ - flags |= SDL_FULLSCREEN; - - /* Check for various video capabilities */ - info = SDL_GetVideoInfo(); - if (info->blit_hw_CC && info->blit_fill) { - /* We use accelerated colorkeying and color filling */ - flags |= SDL_HWSURFACE; - } - /* If we have enough video memory, and will use accelerated - blits directly to it, then use page flipping. - */ - if ((flags & SDL_HWSURFACE) == SDL_HWSURFACE) { - /* Direct hardware blitting without double-buffering - causes really bad flickering. - */ - if (info->video_mem * 1024 > (Uint32)(height * width * bpp / 8)) { - flags |= SDL_DOUBLEBUF; - } else { - flags &= ~SDL_HWSURFACE; - } - } - - /* Return the flags */ - return (flags); -} - -int -main(int argc, char *argv[]) -{ - SDL_Surface *screen; - Uint8 *mem; - int width, height; - Uint8 video_bpp; - Uint32 videoflags; - Uint32 background; - int i, done; - SDL_Event event; - Uint32 then, now, frames; - - /* Initialize SDL */ - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - - numsprites = NUM_SPRITES; - videoflags = SDL_SWSURFACE | SDL_ANYFORMAT | SDL_RESIZABLE; - width = 640; - height = 480; - video_bpp = 8; - debug_flip = 0; - while (argc > 1) { - --argc; - if (strcmp(argv[argc - 1], "-width") == 0) { - width = atoi(argv[argc]); - --argc; - } else if (strcmp(argv[argc - 1], "-height") == 0) { - height = atoi(argv[argc]); - --argc; - } else if (strcmp(argv[argc - 1], "-bpp") == 0) { - video_bpp = atoi(argv[argc]); - videoflags &= ~SDL_ANYFORMAT; - --argc; - } else if (strcmp(argv[argc], "-fast") == 0) { - videoflags = FastestFlags(videoflags, width, height, video_bpp); - } else if (strcmp(argv[argc], "-hw") == 0) { - videoflags ^= SDL_HWSURFACE; - } else if (strcmp(argv[argc], "-flip") == 0) { - videoflags ^= SDL_DOUBLEBUF; - } else if (strcmp(argv[argc], "-debugflip") == 0) { - debug_flip ^= 1; - } else if (strcmp(argv[argc], "-fullscreen") == 0) { - videoflags ^= SDL_FULLSCREEN; - } else if (isdigit(argv[argc][0])) { - numsprites = atoi(argv[argc]); - } else { - fprintf(stderr, - "Usage: %s [-bpp N] [-hw] [-flip] [-fast] [-fullscreen] [numsprites]\n", - argv[0]); - quit(1); - } - } - - /* Set video mode */ - screen = SDL_SetVideoMode(width, height, video_bpp, videoflags); - if (!screen) { - fprintf(stderr, "Couldn't set %dx%d video mode: %s\n", - width, height, SDL_GetError()); - quit(2); - } - - /* Load the sprite */ - if (LoadSprite("icon.bmp") < 0) { - quit(1); - } - - /* Allocate memory for the sprite info */ - mem = (Uint8 *) malloc(4 * sizeof(SDL_Rect) * numsprites); - if (mem == NULL) { - SDL_FreeSurface(sprite); - fprintf(stderr, "Out of memory!\n"); - quit(2); - } - sprite_rects = (SDL_Rect *) mem; - positions = sprite_rects; - sprite_rects += numsprites; - velocities = sprite_rects; - sprite_rects += numsprites; - sprite_w = sprite->w; - sprite_h = sprite->h; - srand((unsigned int)time(NULL)); - for (i = 0; i < numsprites; ++i) { - positions[i].x = rand() % (screen->w - sprite_w); - positions[i].y = rand() % (screen->h - sprite_h); - positions[i].w = sprite->w; - positions[i].h = sprite->h; - velocities[i].x = 0; - velocities[i].y = 0; - while (!velocities[i].x && !velocities[i].y) { - velocities[i].x = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED; - velocities[i].y = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED; - } - } - - /* Clear the background to grey */ - background = SDL_MapRGB(screen->format, 0xA0, 0xA0, 0xA0); - SDL_FillRect(screen, NULL, background); - SDL_Flip(screen); - - /* Print out information about our surfaces */ - printf("Screen is at %d bits per pixel\n", screen->format->BitsPerPixel); - if ((screen->flags & SDL_HWSURFACE) == SDL_HWSURFACE) { - printf("Screen is in video memory\n"); - } else { - printf("Screen is in system memory\n"); - } - if ((screen->flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF) { - printf("Screen has double-buffering enabled\n"); - } - if ((sprite->flags & SDL_HWSURFACE) == SDL_HWSURFACE) { - printf("Sprite is in video memory\n"); - } else { - printf("Sprite is in system memory\n"); - } - /* Run a sample blit to trigger blit acceleration */ - { - SDL_Rect dst; - dst.x = 0; - dst.y = 0; - dst.w = sprite->w; - dst.h = sprite->h; - SDL_BlitSurface(sprite, NULL, screen, &dst); - SDL_FillRect(screen, &dst, background); - } - if ((sprite->flags & SDL_HWACCEL) == SDL_HWACCEL) { - printf("Sprite blit uses hardware acceleration\n"); - } - if ((sprite->flags & SDL_RLEACCEL) == SDL_RLEACCEL) { - printf("Sprite blit uses RLE acceleration\n"); - } - - /* Loop, blitting sprites and waiting for a keystroke */ - frames = 0; - then = SDL_GetTicks(); - done = 0; - sprites_visible = 0; - while (!done) { - /* Check for events */ - ++frames; - while (SDL_PollEvent(&event)) { - switch (event.type) { - case SDL_VIDEORESIZE: - screen = SDL_SetVideoMode(event.resize.w, event.resize.h, video_bpp, videoflags); - break; - case SDL_MOUSEBUTTONDOWN: - SDL_WarpMouse(screen->w / 2, screen->h / 2); - break; - case SDL_KEYDOWN: - /* Any keypress quits the app... */ - case SDL_QUIT: - done = 1; - break; - default: - break; - } - } - MoveSprites(screen, background); - } - SDL_FreeSurface(sprite); - free(mem); - - /* Print out some timing information */ - now = SDL_GetTicks(); - if (now > then) { - double fps = ((double) frames * 1000) / (now - then); - printf("%2.2f frames per second\n", fps); - } - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testsprite2.c b/3rdparty/SDL-1.3.0-5387/test/testsprite2.c deleted file mode 100644 index 0b20328042..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testsprite2.c +++ /dev/null @@ -1,329 +0,0 @@ -/* Simple program: Move N sprites around on the screen as fast as possible */ - -#include -#include -#include - -#include "common.h" - -#define NUM_SPRITES 100 -#define MAX_SPEED 1 - -static CommonState *state; -static int num_sprites; -static SDL_Texture **sprites; -static SDL_bool cycle_color; -static SDL_bool cycle_alpha; -static int cycle_direction = 1; -static int current_alpha = 0; -static int current_color = 0; -static SDL_Rect *positions; -static SDL_Rect *velocities; -static int sprite_w, sprite_h; -static SDL_BlendMode blendMode = SDL_BLENDMODE_BLEND; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - if (sprites) { - SDL_free(sprites); - } - if (positions) { - SDL_free(positions); - } - if (velocities) { - SDL_free(velocities); - } - CommonQuit(state); - exit(rc); -} - -int -LoadSprite(char *file) -{ - int i; - SDL_Surface *temp; - - /* Load the sprite image */ - temp = SDL_LoadBMP(file); - if (temp == NULL) { - fprintf(stderr, "Couldn't load %s: %s", file, SDL_GetError()); - return (-1); - } - sprite_w = temp->w; - sprite_h = temp->h; - - /* Set transparent pixel as the pixel at (0,0) */ - if (temp->format->palette) { - SDL_SetColorKey(temp, 1, *(Uint8 *) temp->pixels); - } else { - switch (temp->format->BitsPerPixel) { - case 15: - SDL_SetColorKey(temp, 1, (*(Uint16 *) temp->pixels) & 0x00007FFF); - break; - case 16: - SDL_SetColorKey(temp, 1, *(Uint16 *) temp->pixels); - break; - case 24: - SDL_SetColorKey(temp, 1, (*(Uint32 *) temp->pixels) & 0x00FFFFFF); - break; - case 32: - SDL_SetColorKey(temp, 1, *(Uint32 *) temp->pixels); - break; - } - } - - /* Create textures from the image */ - for (i = 0; i < state->num_windows; ++i) { - SDL_Renderer *renderer = state->renderers[i]; - sprites[i] = SDL_CreateTextureFromSurface(renderer, temp); - if (!sprites[i]) { - fprintf(stderr, "Couldn't create texture: %s\n", SDL_GetError()); - SDL_FreeSurface(temp); - return (-1); - } - SDL_SetTextureBlendMode(sprites[i], blendMode); - } - SDL_FreeSurface(temp); - - /* We're ready to roll. :) */ - return (0); -} - -void -MoveSprites(SDL_Renderer * renderer, SDL_Texture * sprite) -{ - int i, n; - SDL_Rect viewport, temp; - SDL_Rect *position, *velocity; - - /* Query the sizes */ - SDL_RenderGetViewport(renderer, &viewport); - - /* Cycle the color and alpha, if desired */ - if (cycle_color) { - current_color += cycle_direction; - if (current_color < 0) { - current_color = 0; - cycle_direction = -cycle_direction; - } - if (current_color > 255) { - current_color = 255; - cycle_direction = -cycle_direction; - } - SDL_SetTextureColorMod(sprite, 255, (Uint8) current_color, - (Uint8) current_color); - } - if (cycle_alpha) { - current_alpha += cycle_direction; - if (current_alpha < 0) { - current_alpha = 0; - cycle_direction = -cycle_direction; - } - if (current_alpha > 255) { - current_alpha = 255; - cycle_direction = -cycle_direction; - } - SDL_SetTextureAlphaMod(sprite, (Uint8) current_alpha); - } - - /* Draw a gray background */ - SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF); - SDL_RenderClear(renderer); - - /* Test points */ - SDL_SetRenderDrawColor(renderer, 0xFF, 0x00, 0x00, 0xFF); - SDL_RenderDrawPoint(renderer, 0, 0); - SDL_RenderDrawPoint(renderer, viewport.w-1, 0); - SDL_RenderDrawPoint(renderer, 0, viewport.h-1); - SDL_RenderDrawPoint(renderer, viewport.w-1, viewport.h-1); - - /* Test horizontal and vertical lines */ - SDL_SetRenderDrawColor(renderer, 0x00, 0xFF, 0x00, 0xFF); - SDL_RenderDrawLine(renderer, 1, 0, viewport.w-2, 0); - SDL_RenderDrawLine(renderer, 1, viewport.h-1, viewport.w-2, viewport.h-1); - SDL_RenderDrawLine(renderer, 0, 1, 0, viewport.h-2); - SDL_RenderDrawLine(renderer, viewport.w-1, 1, viewport.w-1, viewport.h-2); - - /* Test fill and copy */ - SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF); - temp.x = 1; - temp.y = 1; - temp.w = sprite_w; - temp.h = sprite_h; - SDL_RenderFillRect(renderer, &temp); - SDL_RenderCopy(renderer, sprite, NULL, &temp); - temp.x = viewport.w-sprite_w-1; - temp.y = 1; - temp.w = sprite_w; - temp.h = sprite_h; - SDL_RenderFillRect(renderer, &temp); - SDL_RenderCopy(renderer, sprite, NULL, &temp); - temp.x = 1; - temp.y = viewport.h-sprite_h-1; - temp.w = sprite_w; - temp.h = sprite_h; - SDL_RenderFillRect(renderer, &temp); - SDL_RenderCopy(renderer, sprite, NULL, &temp); - temp.x = viewport.w-sprite_w-1; - temp.y = viewport.h-sprite_h-1; - temp.w = sprite_w; - temp.h = sprite_h; - SDL_RenderFillRect(renderer, &temp); - SDL_RenderCopy(renderer, sprite, NULL, &temp); - - /* Test diagonal lines */ - SDL_SetRenderDrawColor(renderer, 0x00, 0xFF, 0x00, 0xFF); - SDL_RenderDrawLine(renderer, sprite_w, sprite_h, - viewport.w-sprite_w-2, viewport.h-sprite_h-2); - SDL_RenderDrawLine(renderer, viewport.w-sprite_w-2, sprite_h, - sprite_w, viewport.h-sprite_h-2); - - /* Move the sprite, bounce at the wall, and draw */ - n = 0; - for (i = 0; i < num_sprites; ++i) { - position = &positions[i]; - velocity = &velocities[i]; - position->x += velocity->x; - if ((position->x < 0) || (position->x >= (viewport.w - sprite_w))) { - velocity->x = -velocity->x; - position->x += velocity->x; - } - position->y += velocity->y; - if ((position->y < 0) || (position->y >= (viewport.h - sprite_h))) { - velocity->y = -velocity->y; - position->y += velocity->y; - } - - /* Blit the sprite onto the screen */ - SDL_RenderCopy(renderer, sprite, NULL, position); - } - - /* Update the screen! */ - SDL_RenderPresent(renderer); -} - -int -main(int argc, char *argv[]) -{ - int i, done; - SDL_Event event; - Uint32 then, now, frames; - - /* Initialize parameters */ - num_sprites = NUM_SPRITES; - - /* Initialize test framework */ - state = CommonCreateState(argv, SDL_INIT_VIDEO); - if (!state) { - return 1; - } - for (i = 1; i < argc;) { - int consumed; - - consumed = CommonArg(state, i); - if (consumed == 0) { - consumed = -1; - if (SDL_strcasecmp(argv[i], "--blend") == 0) { - if (argv[i + 1]) { - if (SDL_strcasecmp(argv[i + 1], "none") == 0) { - blendMode = SDL_BLENDMODE_NONE; - consumed = 2; - } else if (SDL_strcasecmp(argv[i + 1], "blend") == 0) { - blendMode = SDL_BLENDMODE_BLEND; - consumed = 2; - } else if (SDL_strcasecmp(argv[i + 1], "add") == 0) { - blendMode = SDL_BLENDMODE_ADD; - consumed = 2; - } else if (SDL_strcasecmp(argv[i + 1], "mod") == 0) { - blendMode = SDL_BLENDMODE_MOD; - consumed = 2; - } - } - } else if (SDL_strcasecmp(argv[i], "--cyclecolor") == 0) { - cycle_color = SDL_TRUE; - consumed = 1; - } else if (SDL_strcasecmp(argv[i], "--cyclealpha") == 0) { - cycle_alpha = SDL_TRUE; - consumed = 1; - } else if (SDL_isdigit(*argv[i])) { - num_sprites = SDL_atoi(argv[i]); - consumed = 1; - } - } - if (consumed < 0) { - fprintf(stderr, - "Usage: %s %s [--blend none|blend|add|mod] [--cyclecolor] [--cyclealpha]\n", - argv[0], CommonUsage(state)); - quit(1); - } - i += consumed; - } - if (!CommonInit(state)) { - quit(2); - } - - /* Create the windows, initialize the renderers, and load the textures */ - sprites = - (SDL_Texture **) SDL_malloc(state->num_windows * sizeof(*sprites)); - if (!sprites) { - fprintf(stderr, "Out of memory!\n"); - quit(2); - } - for (i = 0; i < state->num_windows; ++i) { - SDL_Renderer *renderer = state->renderers[i]; - SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF); - SDL_RenderClear(renderer); - } - if (LoadSprite("icon.bmp") < 0) { - quit(2); - } - - /* Allocate memory for the sprite info */ - positions = (SDL_Rect *) SDL_malloc(num_sprites * sizeof(SDL_Rect)); - velocities = (SDL_Rect *) SDL_malloc(num_sprites * sizeof(SDL_Rect)); - if (!positions || !velocities) { - fprintf(stderr, "Out of memory!\n"); - quit(2); - } - srand((unsigned int)time(NULL)); - for (i = 0; i < num_sprites; ++i) { - positions[i].x = rand() % (state->window_w - sprite_w); - positions[i].y = rand() % (state->window_h - sprite_h); - positions[i].w = sprite_w; - positions[i].h = sprite_h; - velocities[i].x = 0; - velocities[i].y = 0; - while (!velocities[i].x && !velocities[i].y) { - velocities[i].x = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED; - velocities[i].y = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED; - } - } - - /* Main render loop */ - frames = 0; - then = SDL_GetTicks(); - done = 0; - while (!done) { - /* Check for events */ - ++frames; - while (SDL_PollEvent(&event)) { - CommonEvent(state, &event, &done); - } - for (i = 0; i < state->num_windows; ++i) { - MoveSprites(state->renderers[i], sprites[i]); - } - } - - /* Print out some timing information */ - now = SDL_GetTicks(); - if (now > then) { - double fps = ((double) frames * 1000) / (now - then); - printf("%2.2f frames per second\n", fps); - } - quit(0); - return 0; -} - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/3rdparty/SDL-1.3.0-5387/test/testspriteminimal.c b/3rdparty/SDL-1.3.0-5387/test/testspriteminimal.c deleted file mode 100644 index e4124e65b5..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testspriteminimal.c +++ /dev/null @@ -1,166 +0,0 @@ -/* Simple program: Move N sprites around on the screen as fast as possible */ - -#include -#include -#include - -#include "SDL.h" - -#define WINDOW_WIDTH 640 -#define WINDOW_HEIGHT 480 -#define NUM_SPRITES 100 -#define MAX_SPEED 1 - -static SDL_Texture *sprite; -static SDL_Rect positions[NUM_SPRITES]; -static SDL_Rect velocities[NUM_SPRITES]; -static int sprite_w, sprite_h; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - exit(rc); -} - -int -LoadSprite(char *file, SDL_Renderer *renderer) -{ - SDL_Surface *temp; - - /* Load the sprite image */ - temp = SDL_LoadBMP(file); - if (temp == NULL) { - fprintf(stderr, "Couldn't load %s: %s", file, SDL_GetError()); - return (-1); - } - sprite_w = temp->w; - sprite_h = temp->h; - - /* Set transparent pixel as the pixel at (0,0) */ - if (temp->format->palette) { - SDL_SetColorKey(temp, SDL_TRUE, *(Uint8 *) temp->pixels); - } else { - switch (temp->format->BitsPerPixel) { - case 15: - SDL_SetColorKey(temp, SDL_TRUE, - (*(Uint16 *) temp->pixels) & 0x00007FFF); - break; - case 16: - SDL_SetColorKey(temp, SDL_TRUE, *(Uint16 *) temp->pixels); - break; - case 24: - SDL_SetColorKey(temp, SDL_TRUE, - (*(Uint32 *) temp->pixels) & 0x00FFFFFF); - break; - case 32: - SDL_SetColorKey(temp, SDL_TRUE, *(Uint32 *) temp->pixels); - break; - } - } - - /* Create textures from the image */ - sprite = SDL_CreateTextureFromSurface(renderer, temp); - if (!sprite) { - fprintf(stderr, "Couldn't create texture: %s\n", SDL_GetError()); - SDL_FreeSurface(temp); - return (-1); - } - SDL_FreeSurface(temp); - - /* We're ready to roll. :) */ - return (0); -} - -void -MoveSprites(SDL_Window * window, SDL_Renderer * renderer, SDL_Texture * sprite) -{ - int i; - int window_w = WINDOW_WIDTH; - int window_h = WINDOW_HEIGHT; - SDL_Rect *position, *velocity; - - /* Draw a gray background */ - SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF); - SDL_RenderClear(renderer); - - /* Move the sprite, bounce at the wall, and draw */ - for (i = 0; i < NUM_SPRITES; ++i) { - position = &positions[i]; - velocity = &velocities[i]; - position->x += velocity->x; - if ((position->x < 0) || (position->x >= (window_w - sprite_w))) { - velocity->x = -velocity->x; - position->x += velocity->x; - } - position->y += velocity->y; - if ((position->y < 0) || (position->y >= (window_h - sprite_h))) { - velocity->y = -velocity->y; - position->y += velocity->y; - } - - /* Blit the sprite onto the screen */ - SDL_RenderCopy(renderer, sprite, NULL, position); - } - - /* Update the screen! */ - SDL_RenderPresent(renderer); -} - -int -main(int argc, char *argv[]) -{ - SDL_Window *window; - SDL_Renderer *renderer; - int i, done; - SDL_Event event; - - window = SDL_CreateWindow("Happy Smileys", - SDL_WINDOWPOS_UNDEFINED, - SDL_WINDOWPOS_UNDEFINED, - WINDOW_WIDTH, WINDOW_HEIGHT, - SDL_WINDOW_SHOWN); - if (!window) { - quit(2); - } - - renderer = SDL_CreateRenderer(window, -1, 0); - if (!renderer) { - quit(2); - } - - if (LoadSprite("icon.bmp", renderer) < 0) { - quit(2); - } - - /* Initialize the sprite positions */ - srand(time(NULL)); - for (i = 0; i < NUM_SPRITES; ++i) { - positions[i].x = rand() % (WINDOW_WIDTH - sprite_w); - positions[i].y = rand() % (WINDOW_HEIGHT - sprite_h); - positions[i].w = sprite_w; - positions[i].h = sprite_h; - velocities[i].x = 0; - velocities[i].y = 0; - while (!velocities[i].x && !velocities[i].y) { - velocities[i].x = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED; - velocities[i].y = (rand() % (MAX_SPEED * 2 + 1)) - MAX_SPEED; - } - } - - /* Main render loop */ - done = 0; - while (!done) { - /* Check for events */ - while (SDL_PollEvent(&event)) { - if (event.type == SDL_QUIT || event.type == SDL_KEYDOWN) { - done = 1; - } - } - MoveSprites(window, renderer, sprite); - } - - quit(0); -} - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/3rdparty/SDL-1.3.0-5387/test/teststreaming.c b/3rdparty/SDL-1.3.0-5387/test/teststreaming.c deleted file mode 100644 index 7c8e236589..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/teststreaming.c +++ /dev/null @@ -1,152 +0,0 @@ -/******************************************************************************** - * * - * Running moose :) Coded by Mike Gorchak. * - * * - ********************************************************************************/ - -#include -#include - -#include "SDL.h" - -#define MOOSEPIC_W 64 -#define MOOSEPIC_H 88 - -#define MOOSEFRAME_SIZE (MOOSEPIC_W * MOOSEPIC_H) -#define MOOSEFRAMES_COUNT 10 - -SDL_Color MooseColors[84] = { - {49, 49, 49}, {66, 24, 0}, {66, 33, 0}, {66, 66, 66}, - {66, 115, 49}, {74, 33, 0}, {74, 41, 16}, {82, 33, 8}, - {82, 41, 8}, {82, 49, 16}, {82, 82, 82}, {90, 41, 8}, - {90, 41, 16}, {90, 57, 24}, {99, 49, 16}, {99, 66, 24}, - {99, 66, 33}, {99, 74, 33}, {107, 57, 24}, {107, 82, 41}, - {115, 57, 33}, {115, 66, 33}, {115, 66, 41}, {115, 74, 0}, - {115, 90, 49}, {115, 115, 115}, {123, 82, 0}, {123, 99, 57}, - {132, 66, 41}, {132, 74, 41}, {132, 90, 8}, {132, 99, 33}, - {132, 99, 66}, {132, 107, 66}, {140, 74, 49}, {140, 99, 16}, - {140, 107, 74}, {140, 115, 74}, {148, 107, 24}, {148, 115, 82}, - {148, 123, 74}, {148, 123, 90}, {156, 115, 33}, {156, 115, 90}, - {156, 123, 82}, {156, 132, 82}, {156, 132, 99}, {156, 156, 156}, - {165, 123, 49}, {165, 123, 90}, {165, 132, 82}, {165, 132, 90}, - {165, 132, 99}, {165, 140, 90}, {173, 132, 57}, {173, 132, 99}, - {173, 140, 107}, {173, 140, 115}, {173, 148, 99}, {173, 173, 173}, - {181, 140, 74}, {181, 148, 115}, {181, 148, 123}, {181, 156, 107}, - {189, 148, 123}, {189, 156, 82}, {189, 156, 123}, {189, 156, 132}, - {189, 189, 189}, {198, 156, 123}, {198, 165, 132}, {206, 165, 99}, - {206, 165, 132}, {206, 173, 140}, {206, 206, 206}, {214, 173, 115}, - {214, 173, 140}, {222, 181, 148}, {222, 189, 132}, {222, 189, 156}, - {222, 222, 222}, {231, 198, 165}, {231, 231, 231}, {239, 206, 173} -}; - -Uint8 MooseFrames[MOOSEFRAMES_COUNT][MOOSEFRAME_SIZE]; - -void quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -void UpdateTexture(SDL_Texture *texture, int frame) -{ - SDL_Color *color; - Uint8 *src; - Uint32 *dst; - int row, col; - void *pixels; - int pitch; - - if (SDL_LockTexture(texture, NULL, &pixels, &pitch) < 0) { - fprintf(stderr, "Couldn't lock texture: %s\n", SDL_GetError()); - quit(5); - } - src = MooseFrames[frame]; - for (row = 0; row < MOOSEPIC_H; ++row) { - dst = (Uint32*)((Uint8*)pixels + row * pitch); - for (col = 0; col < MOOSEPIC_W; ++col) { - color = &MooseColors[*src++]; - *dst++ = (0xFF000000|(color->r<<16)|(color->g<<8)|color->b); - } - } - SDL_UnlockTexture(texture); -} - -int -main(int argc, char **argv) -{ - SDL_Window *window; - SDL_Renderer *renderer; - SDL_RWops *handle; - SDL_Texture *MooseTexture; - SDL_Event event; - SDL_bool done = SDL_FALSE; - int frame; - - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return 1; - } - - /* load the moose images */ - handle = SDL_RWFromFile("moose.dat", "rb"); - if (handle == NULL) { - fprintf(stderr, "Can't find the file moose.dat !\n"); - quit(2); - } - SDL_RWread(handle, MooseFrames, MOOSEFRAME_SIZE, MOOSEFRAMES_COUNT); - SDL_RWclose(handle); - - - /* Create the window and renderer */ - window = SDL_CreateWindow("Happy Moose", - SDL_WINDOWPOS_UNDEFINED, - SDL_WINDOWPOS_UNDEFINED, - MOOSEPIC_W*4, MOOSEPIC_H*4, - SDL_WINDOW_SHOWN|SDL_WINDOW_RESIZABLE); - if (!window) { - fprintf(stderr, "Couldn't set create window: %s\n", SDL_GetError()); - quit(3); - } - - renderer = SDL_CreateRenderer(window, -1, 0); - if (!renderer) { - fprintf(stderr, "Couldn't set create renderer: %s\n", SDL_GetError()); - quit(4); - } - - MooseTexture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, MOOSEPIC_W, MOOSEPIC_H); - if (!MooseTexture) { - fprintf(stderr, "Couldn't set create texture: %s\n", SDL_GetError()); - quit(5); - } - - /* Loop, waiting for QUIT or the escape key */ - frame = 0; - while (!done) { - while (SDL_PollEvent(&event)) { - switch (event.type) { - case SDL_KEYDOWN: - if (event.key.keysym.sym == SDLK_ESCAPE) { - done = SDL_TRUE; - } - break; - case SDL_QUIT: - done = SDL_TRUE; - break; - } - } - - frame = (frame + 1) % MOOSEFRAMES_COUNT; - UpdateTexture(MooseTexture, frame); - - SDL_RenderClear(renderer); - SDL_RenderCopy(renderer, MooseTexture, NULL, NULL); - SDL_RenderPresent(renderer); - } - SDL_DestroyRenderer(renderer); - - quit(0); - return 0; -} - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/3rdparty/SDL-1.3.0-5387/test/testtimer.c b/3rdparty/SDL-1.3.0-5387/test/testtimer.c deleted file mode 100644 index f58efbbda7..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testtimer.c +++ /dev/null @@ -1,90 +0,0 @@ - -/* Test program to check the resolution of the SDL timer on the current - platform -*/ - -#include -#include - -#include "SDL.h" - -#define DEFAULT_RESOLUTION 1 - -static int ticks = 0; - -static Uint32 SDLCALL -ticktock(Uint32 interval) -{ - ++ticks; - return (interval); -} - -static Uint32 SDLCALL -callback(Uint32 interval, void *param) -{ - printf("Timer %d : param = %d\n", interval, (int) (uintptr_t) param); - return interval; -} - -int -main(int argc, char *argv[]) -{ - int desired; - SDL_TimerID t1, t2, t3; - - if (SDL_Init(SDL_INIT_TIMER) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - - /* Start the timer */ - desired = 0; - if (argv[1]) { - desired = atoi(argv[1]); - } - if (desired == 0) { - desired = DEFAULT_RESOLUTION; - } - SDL_SetTimer(desired, ticktock); - - /* Wait 10 seconds */ - printf("Waiting 10 seconds\n"); - SDL_Delay(10 * 1000); - - /* Stop the timer */ - SDL_SetTimer(0, NULL); - - /* Print the results */ - if (ticks) { - fprintf(stderr, - "Timer resolution: desired = %d ms, actual = %f ms\n", - desired, (double) (10 * 1000) / ticks); - } - - /* Test multiple timers */ - printf("Testing multiple timers...\n"); - t1 = SDL_AddTimer(100, callback, (void *) 1); - if (!t1) - fprintf(stderr, "Could not create timer 1: %s\n", SDL_GetError()); - t2 = SDL_AddTimer(50, callback, (void *) 2); - if (!t2) - fprintf(stderr, "Could not create timer 2: %s\n", SDL_GetError()); - t3 = SDL_AddTimer(233, callback, (void *) 3); - if (!t3) - fprintf(stderr, "Could not create timer 3: %s\n", SDL_GetError()); - - /* Wait 10 seconds */ - printf("Waiting 10 seconds\n"); - SDL_Delay(10 * 1000); - - printf("Removing timer 1 and waiting 5 more seconds\n"); - SDL_RemoveTimer(t1); - - SDL_Delay(5 * 1000); - - SDL_RemoveTimer(t2); - SDL_RemoveTimer(t3); - - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testver.c b/3rdparty/SDL-1.3.0-5387/test/testver.c deleted file mode 100644 index aaabc5467f..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testver.c +++ /dev/null @@ -1,33 +0,0 @@ - -/* Test program to compare the compile-time version of SDL with the linked - version of SDL -*/ - -#include -#include - -#include "SDL.h" -#include "SDL_revision.h" - -int -main(int argc, char *argv[]) -{ - SDL_version compiled; - SDL_version linked; - -#if SDL_VERSION_ATLEAST(1, 3, 0) - printf("Compiled with SDL 1.3 or newer\n"); -#else - printf("Compiled with SDL older than 1.3\n"); -#endif - SDL_VERSION(&compiled); - printf("Compiled version: %d.%d.%d.%d (%s)\n", - compiled.major, compiled.minor, compiled.patch, - SDL_REVISION_NUMBER, SDL_REVISION); - SDL_GetVersion(&linked); - printf("Linked version: %d.%d.%d.%d (%s)\n", - linked.major, linked.minor, linked.patch, - SDL_GetRevisionNumber(), SDL_GetRevision()); - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testvidinfo.c b/3rdparty/SDL-1.3.0-5387/test/testvidinfo.c deleted file mode 100644 index 48e63f06f4..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testvidinfo.c +++ /dev/null @@ -1,535 +0,0 @@ - -/* Simple program -- figure out what kind of video display we have */ - -#include -#include -#include -#include - -#include "SDL.h" - -#define NUM_BLITS 10 -#define NUM_UPDATES 500 - -#define FLAG_MASK (SDL_HWSURFACE | SDL_FULLSCREEN | SDL_DOUBLEBUF | \ - SDL_SRCCOLORKEY | SDL_SRCALPHA | SDL_RLEACCEL | \ - SDL_RLEACCELOK) - -#if 0 -void -PrintFlags(Uint32 flags) -{ - printf("0x%8.8x", (flags & FLAG_MASK)); - if (flags & SDL_HWSURFACE) { - printf(" SDL_HWSURFACE"); - } else { - printf(" SDL_SWSURFACE"); - } - if (flags & SDL_FULLSCREEN) { - printf(" | SDL_FULLSCREEN"); - } - if (flags & SDL_DOUBLEBUF) { - printf(" | SDL_DOUBLEBUF"); - } - if (flags & SDL_SRCCOLORKEY) { - printf(" | SDL_SRCCOLORKEY"); - } - if (flags & SDL_SRCALPHA) { - printf(" | SDL_SRCALPHA"); - } - if (flags & SDL_RLEACCEL) { - printf(" | SDL_RLEACCEL"); - } - if (flags & SDL_RLEACCELOK) { - printf(" | SDL_RLEACCELOK"); - } -} - -int -RunBlitTests(SDL_Surface * screen, SDL_Surface * bmp, int blitcount) -{ - int i, j; - int maxx; - int maxy; - SDL_Rect dst; - - maxx = (int) screen->w - bmp->w + 1; - maxy = (int) screen->h - bmp->h + 1; - for (i = 0; i < NUM_UPDATES; ++i) { - for (j = 0; j < blitcount; ++j) { - if (maxx) { - dst.x = rand() % maxx; - } else { - dst.x = 0; - } - if (maxy) { - dst.y = rand() % maxy; - } else { - dst.y = 0; - } - dst.w = bmp->w; - dst.h = bmp->h; - SDL_BlitSurface(bmp, NULL, screen, &dst); - } - SDL_Flip(screen); - } - - return i; -} - -int -RunModeTests(SDL_Surface * screen) -{ - Uint32 then, now; - Uint32 frames; - float seconds; - int i; - Uint8 r, g, b; - SDL_Surface *bmp, *bmpcc, *tmp; - SDL_Event event; - - while (SDL_PollEvent(&event)) { - if (event.type == SDL_KEYDOWN) - return 0; - } - - /* First test fills and screen update speed */ - printf("Running color fill and fullscreen update test\n"); - then = SDL_GetTicks(); - frames = 0; - for (i = 0; i < 256; ++i) { - r = i; - g = 0; - b = 0; - SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, r, g, b)); - SDL_Flip(screen); - ++frames; - } - for (i = 0; i < 256; ++i) { - r = 0; - g = i; - b = 0; - SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, r, g, b)); - SDL_Flip(screen); - ++frames; - } - for (i = 0; i < 256; ++i) { - r = 0; - g = 0; - b = i; - SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, r, g, b)); - SDL_Flip(screen); - ++frames; - } - now = SDL_GetTicks(); - seconds = (float) (now - then) / 1000.0f; - if (seconds > 0.0f) { - printf("%d fills and flips in %2.2f seconds, %2.2f FPS\n", frames, - seconds, (float) frames / seconds); - } else { - printf("%d fills and flips in zero seconds!n", frames); - } - - /* clear the screen after fill test */ - SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0)); - SDL_Flip(screen); - - while (SDL_PollEvent(&event)) { - if (event.type == SDL_KEYDOWN) - return 0; - } - - /* run the generic blit test */ - bmp = SDL_LoadBMP("sample.bmp"); - if (!bmp) { - printf("Couldn't load sample.bmp: %s\n", SDL_GetError()); - return 0; - } - printf("Running freshly loaded blit test: %dx%d at %d bpp, flags: ", - bmp->w, bmp->h, bmp->format->BitsPerPixel); - PrintFlags(bmp->flags); - printf("\n"); - then = SDL_GetTicks(); - frames = RunBlitTests(screen, bmp, NUM_BLITS); - now = SDL_GetTicks(); - seconds = (float) (now - then) / 1000.0f; - if (seconds > 0.0f) { - printf("%d blits / %d updates in %2.2f seconds, %2.2f FPS\n", - NUM_BLITS * frames, frames, seconds, (float) frames / seconds); - } else { - printf("%d blits / %d updates in zero seconds!\n", - NUM_BLITS * frames, frames); - } - - /* clear the screen after blit test */ - SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0)); - SDL_Flip(screen); - - while (SDL_PollEvent(&event)) { - if (event.type == SDL_KEYDOWN) - return 0; - } - - /* run the colorkeyed blit test */ - bmpcc = SDL_LoadBMP("sample.bmp"); - if (!bmpcc) { - printf("Couldn't load sample.bmp: %s\n", SDL_GetError()); - return 0; - } - printf("Running freshly loaded cc blit test: %dx%d at %d bpp, flags: ", - bmpcc->w, bmpcc->h, bmpcc->format->BitsPerPixel); - SDL_SetColorKey(bmpcc, SDL_SRCCOLORKEY | SDL_RLEACCEL, - *(Uint8 *) bmpcc->pixels); - - PrintFlags(bmpcc->flags); - printf("\n"); - then = SDL_GetTicks(); - frames = RunBlitTests(screen, bmpcc, NUM_BLITS); - now = SDL_GetTicks(); - seconds = (float) (now - then) / 1000.0f; - if (seconds > 0.0f) { - printf("%d cc blits / %d updates in %2.2f seconds, %2.2f FPS\n", - NUM_BLITS * frames, frames, seconds, (float) frames / seconds); - } else { - printf("%d cc blits / %d updates in zero seconds!\n", - NUM_BLITS * frames, frames); - } - - /* clear the screen after cc blit test */ - SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0)); - SDL_Flip(screen); - - while (SDL_PollEvent(&event)) { - if (event.type == SDL_KEYDOWN) - return 0; - } - - /* run the generic blit test */ - tmp = bmp; - bmp = SDL_DisplayFormat(bmp); - SDL_FreeSurface(tmp); - if (!bmp) { - printf("Couldn't convert sample.bmp: %s\n", SDL_GetError()); - return 0; - } - printf("Running display format blit test: %dx%d at %d bpp, flags: ", - bmp->w, bmp->h, bmp->format->BitsPerPixel); - PrintFlags(bmp->flags); - printf("\n"); - then = SDL_GetTicks(); - frames = RunBlitTests(screen, bmp, NUM_BLITS); - now = SDL_GetTicks(); - seconds = (float) (now - then) / 1000.0f; - if (seconds > 0.0f) { - printf("%d blits / %d updates in %2.2f seconds, %2.2f FPS\n", - NUM_BLITS * frames, frames, seconds, (float) frames / seconds); - } else { - printf("%d blits / %d updates in zero seconds!\n", - NUM_BLITS * frames, frames); - } - - /* clear the screen after blit test */ - SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0)); - SDL_Flip(screen); - - while (SDL_PollEvent(&event)) { - if (event.type == SDL_KEYDOWN) - return 0; - } - - /* run the colorkeyed blit test */ - tmp = bmpcc; - bmpcc = SDL_DisplayFormat(bmpcc); - SDL_FreeSurface(tmp); - if (!bmpcc) { - printf("Couldn't convert sample.bmp: %s\n", SDL_GetError()); - return 0; - } - printf("Running display format cc blit test: %dx%d at %d bpp, flags: ", - bmpcc->w, bmpcc->h, bmpcc->format->BitsPerPixel); - PrintFlags(bmpcc->flags); - printf("\n"); - then = SDL_GetTicks(); - frames = RunBlitTests(screen, bmpcc, NUM_BLITS); - now = SDL_GetTicks(); - seconds = (float) (now - then) / 1000.0f; - if (seconds > 0.0f) { - printf("%d cc blits / %d updates in %2.2f seconds, %2.2f FPS\n", - NUM_BLITS * frames, frames, seconds, (float) frames / seconds); - } else { - printf("%d cc blits / %d updates in zero seconds!\n", - NUM_BLITS * frames, frames); - } - - /* clear the screen after cc blit test */ - SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0)); - SDL_Flip(screen); - - while (SDL_PollEvent(&event)) { - if (event.type == SDL_KEYDOWN) - return 0; - } - - /* run the alpha blit test only if screen bpp>8 */ - if (bmp->format->BitsPerPixel > 8) { - SDL_FreeSurface(bmp); - bmp = SDL_LoadBMP("sample.bmp"); - SDL_SetAlpha(bmp, SDL_SRCALPHA, 85); /* 85 - 33% alpha */ - tmp = bmp; - bmp = SDL_DisplayFormat(bmp); - SDL_FreeSurface(tmp); - if (!bmp) { - printf("Couldn't convert sample.bmp: %s\n", SDL_GetError()); - return 0; - } - printf - ("Running display format alpha blit test: %dx%d at %d bpp, flags: ", - bmp->w, bmp->h, bmp->format->BitsPerPixel); - PrintFlags(bmp->flags); - printf("\n"); - then = SDL_GetTicks(); - frames = RunBlitTests(screen, bmp, NUM_BLITS); - now = SDL_GetTicks(); - seconds = (float) (now - then) / 1000.0f; - if (seconds > 0.0f) { - printf - ("%d alpha blits / %d updates in %2.2f seconds, %2.2f FPS\n", - NUM_BLITS * frames, frames, seconds, - (float) frames / seconds); - } else { - printf("%d alpha blits / %d updates in zero seconds!\n", - NUM_BLITS * frames, frames); - } - } - - /* clear the screen after alpha blit test */ - SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0)); - SDL_Flip(screen); - - while (SDL_PollEvent(&event)) { - if (event.type == SDL_KEYDOWN) - return 0; - } - - /* run the cc+alpha blit test only if screen bpp>8 */ - if (bmp->format->BitsPerPixel > 8) { - SDL_FreeSurface(bmpcc); - bmpcc = SDL_LoadBMP("sample.bmp"); - SDL_SetAlpha(bmpcc, SDL_SRCALPHA, 85); /* 85 - 33% alpha */ - SDL_SetColorKey(bmpcc, SDL_SRCCOLORKEY | SDL_RLEACCEL, - *(Uint8 *) bmpcc->pixels); - tmp = bmpcc; - bmpcc = SDL_DisplayFormat(bmpcc); - SDL_FreeSurface(tmp); - if (!bmpcc) { - printf("Couldn't convert sample.bmp: %s\n", SDL_GetError()); - return 0; - } - printf - ("Running display format cc+alpha blit test: %dx%d at %d bpp, flags: ", - bmpcc->w, bmpcc->h, bmpcc->format->BitsPerPixel); - PrintFlags(bmpcc->flags); - printf("\n"); - then = SDL_GetTicks(); - frames = RunBlitTests(screen, bmpcc, NUM_BLITS); - now = SDL_GetTicks(); - seconds = (float) (now - then) / 1000.0f; - if (seconds > 0.0f) { - printf - ("%d cc+alpha blits / %d updates in %2.2f seconds, %2.2f FPS\n", - NUM_BLITS * frames, frames, seconds, - (float) frames / seconds); - } else { - printf("%d cc+alpha blits / %d updates in zero seconds!\n", - NUM_BLITS * frames, frames); - } - } - - SDL_FreeSurface(bmpcc); - SDL_FreeSurface(bmp); - - while (SDL_PollEvent(&event)) { - if (event.type == SDL_KEYDOWN) - return 0; - } - return 1; -} - -void -RunVideoTests() -{ - static const struct - { - int w, h, bpp; - } mode_list[] = { - { - 640, 480, 8}, { - 640, 480, 16}, { - 640, 480, 32}, { - 800, 600, 8}, { - 800, 600, 16}, { - 800, 600, 32}, { - 1024, 768, 8}, { - 1024, 768, 16}, { - 1024, 768, 32} - }; - static const Uint32 flags[] = { - (SDL_SWSURFACE), - (SDL_SWSURFACE | SDL_FULLSCREEN), - (SDL_HWSURFACE | SDL_FULLSCREEN), - (SDL_HWSURFACE | SDL_FULLSCREEN | SDL_DOUBLEBUF) - }; - int i, j; - SDL_Surface *screen; - - /* Test out several different video mode combinations */ - SDL_WM_SetCaption("SDL Video Benchmark", "vidtest"); - SDL_ShowCursor(0); - for (i = 0; i < SDL_TABLESIZE(mode_list); ++i) { - for (j = 0; j < SDL_TABLESIZE(flags); ++j) { - printf("===================================\n"); - printf("Setting video mode: %dx%d at %d bpp, flags: ", - mode_list[i].w, mode_list[i].h, mode_list[i].bpp); - PrintFlags(flags[j]); - printf("\n"); - screen = SDL_SetVideoMode(mode_list[i].w, - mode_list[i].h, - mode_list[i].bpp, flags[j]); - if (!screen) { - printf("Setting video mode failed: %s\n", SDL_GetError()); - continue; - } - if ((screen->flags & FLAG_MASK) != flags[j]) { - printf("Flags didn't match: "); - PrintFlags(screen->flags); - printf("\n"); - continue; - } - if (!RunModeTests(screen)) { - return; - } - } - } -} -#endif - -int -main(int argc, char *argv[]) -{ - const SDL_VideoInfo *info; - int i, d, n; - const char *driver; - SDL_DisplayMode mode; - int bpp; - Uint32 Rmask, Gmask, Bmask, Amask; - int nmodes; - - /* Print available video drivers */ - n = SDL_GetNumVideoDrivers(); - if (n == 0) { - printf("No built-in video drivers\n"); - } else { - printf("Built-in video drivers:"); - for (i = 0; i < n; ++i) { - if (i > 0) { - printf(","); - } - printf(" %s", SDL_GetVideoDriver(i)); - } - printf("\n"); - } - - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - exit(1); - } - driver = SDL_GetCurrentVideoDriver(); - if (driver) { - printf("Video driver: %s\n", driver); - } - printf("Number of displays: %d\n", SDL_GetNumVideoDisplays()); - for (d = 0; d < SDL_GetNumVideoDisplays(); ++d) { - SDL_Rect bounds; - - SDL_GetDisplayBounds(d, &bounds); - printf("Display %d: %dx%d at %d,%d\n", d, - bounds.w, bounds.h, bounds.x, bounds.y); - - SDL_GetDesktopDisplayMode(d, &mode); - SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, &Gmask, &Bmask, - &Amask); - printf(" Current mode: %dx%d@%dHz, %d bits-per-pixel\n", mode.w, - mode.h, mode.refresh_rate, bpp); - if (Rmask || Gmask || Bmask) { - printf(" Red Mask = 0x%.8x\n", Rmask); - printf(" Green Mask = 0x%.8x\n", Gmask); - printf(" Blue Mask = 0x%.8x\n", Bmask); - if (Amask) - printf(" Alpha Mask = 0x%.8x\n", Amask); - } - - /* Print available fullscreen video modes */ - nmodes = SDL_GetNumDisplayModes(d); - if (nmodes == 0) { - printf("No available fullscreen video modes\n"); - } else { - printf(" Fullscreen video modes:\n"); - for (i = 0; i < nmodes; ++i) { - SDL_GetDisplayMode(d, i, &mode); - SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, - &Gmask, &Bmask, &Amask); - printf(" Mode %d: %dx%d@%dHz, %d bits-per-pixel\n", i, - mode.w, mode.h, mode.refresh_rate, bpp); - if (Rmask || Gmask || Bmask) { - printf(" Red Mask = 0x%.8x\n", Rmask); - printf(" Green Mask = 0x%.8x\n", Gmask); - printf(" Blue Mask = 0x%.8x\n", Bmask); - if (Amask) - printf(" Alpha Mask = 0x%.8x\n", Amask); - } - } - } - } - - info = SDL_GetVideoInfo(); - if (info->wm_available) { - printf("A window manager is available\n"); - } - if (info->hw_available) { - printf("Hardware surfaces are available (%dK video memory)\n", - info->video_mem); - } - if (info->blit_hw) { - printf("Copy blits between hardware surfaces are accelerated\n"); - } - if (info->blit_hw_CC) { - printf("Colorkey blits between hardware surfaces are accelerated\n"); - } - if (info->blit_hw_A) { - printf("Alpha blits between hardware surfaces are accelerated\n"); - } - if (info->blit_sw) { - printf - ("Copy blits from software surfaces to hardware surfaces are accelerated\n"); - } - if (info->blit_sw_CC) { - printf - ("Colorkey blits from software surfaces to hardware surfaces are accelerated\n"); - } - if (info->blit_sw_A) { - printf - ("Alpha blits from software surfaces to hardware surfaces are accelerated\n"); - } - if (info->blit_fill) { - printf("Color fills on hardware surfaces are accelerated\n"); - } - printf("Current resolution: %dx%d\n", info->current_w, info->current_h); -#if 0 - if (argv[1] && (strcmp(argv[1], "-benchmark") == 0)) { - RunVideoTests(); - } -#endif - - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testwin.c b/3rdparty/SDL-1.3.0-5387/test/testwin.c deleted file mode 100644 index c939821611..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testwin.c +++ /dev/null @@ -1,340 +0,0 @@ - -/* Bring up a window and play with it */ - -#include -#include -#include - -#define BENCHMARK_SDL - -#define NOTICE(X) printf("%s", X); - -#include "SDL.h" - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -void -DrawPict(SDL_Surface * screen, char *bmpfile, - int speedy, int flip, int nofade) -{ - SDL_Surface *picture; - SDL_Rect dest, update; - int i, centered; - int ncolors; - SDL_Color *colors, *cmap; - - /* Load the image into a surface */ - if (bmpfile == NULL) { - bmpfile = "sample.bmp"; /* Sample image */ - } - fprintf(stderr, "Loading picture: %s\n", bmpfile); - picture = SDL_LoadBMP(bmpfile); - if (picture == NULL) { - fprintf(stderr, "Couldn't load %s: %s\n", bmpfile, SDL_GetError()); - return; - } - - /* Set the display colors -- on a hicolor display this is a no-op */ - if (picture->format->palette) { - ncolors = picture->format->palette->ncolors; - colors = (SDL_Color *) malloc(ncolors * sizeof(SDL_Color)); - cmap = (SDL_Color *) malloc(ncolors * sizeof(SDL_Color)); - memcpy(colors, picture->format->palette->colors, - ncolors * sizeof(SDL_Color)); - } else { - int r, g, b; - - /* Allocate 256 color palette */ - ncolors = 256; - colors = (SDL_Color *) malloc(ncolors * sizeof(SDL_Color)); - cmap = (SDL_Color *) malloc(ncolors * sizeof(SDL_Color)); - - /* Set a 3,3,2 color cube */ - for (r = 0; r < 8; ++r) { - for (g = 0; g < 8; ++g) { - for (b = 0; b < 4; ++b) { - i = ((r << 5) | (g << 2) | b); - colors[i].r = r << 5; - colors[i].g = g << 5; - colors[i].b = b << 6; - } - } - } - } - NOTICE("testwin: setting colors\n"); - if (!SDL_SetColors(screen, colors, 0, ncolors) && - (screen->format->palette != NULL)) { - fprintf(stderr, - "Warning: Couldn't set all of the colors, but SDL will map the image\n" - " (colormap fading will suffer - try the -warp option)\n"); - } - - /* Display the picture */ - if (speedy) { - SDL_Surface *displayfmt; - - fprintf(stderr, "Converting picture\n"); - displayfmt = SDL_DisplayFormat(picture); - if (displayfmt == NULL) { - fprintf(stderr, "Couldn't convert image: %s\n", SDL_GetError()); - goto done; - } - SDL_FreeSurface(picture); - picture = displayfmt; - } - printf("(image surface located in %s memory)\n", - (picture->flags & SDL_HWSURFACE) ? "video" : "system"); - centered = (screen->w - picture->w) / 2; - if (centered < 0) { - centered = 0; - } - dest.y = (screen->h - picture->h) / 2; - dest.w = picture->w; - dest.h = picture->h; - NOTICE("testwin: moving image\n"); - for (i = 0; i <= centered; ++i) { - dest.x = i; - update = dest; - if (SDL_BlitSurface(picture, NULL, screen, &update) < 0) { - fprintf(stderr, "Blit failed: %s\n", SDL_GetError()); - break; - } - if (flip) { - SDL_Flip(screen); - } else { - SDL_UpdateRects(screen, 1, &update); - } - } - -#ifdef SCREENSHOT - if (SDL_SaveBMP(screen, "screen.bmp") < 0) - printf("Couldn't save screen: %s\n", SDL_GetError()); -#endif - -#ifndef BENCHMARK_SDL - /* Let it sit there for a while */ - SDL_Delay(5 * 1000); -#endif - /* Fade the colormap */ - if (!nofade) { - int maxstep; - SDL_Color final; - SDL_Color palcolors[256]; - struct - { - Sint16 r, g, b; - } cdist[256]; - - NOTICE("testwin: fading out...\n"); - memcpy(cmap, colors, ncolors * sizeof(SDL_Color)); - maxstep = 32 - 1; - final.r = 0xFF; - final.g = 0x00; - final.b = 0x00; - memcpy(palcolors, colors, ncolors * sizeof(SDL_Color)); - for (i = 0; i < ncolors; ++i) { - cdist[i].r = final.r - palcolors[i].r; - cdist[i].g = final.g - palcolors[i].g; - cdist[i].b = final.b - palcolors[i].b; - } - for (i = 0; i <= maxstep / 2; ++i) { /* halfway fade */ - int c; - for (c = 0; c < ncolors; ++c) { - colors[c].r = palcolors[c].r + ((cdist[c].r * i)) / maxstep; - colors[c].g = palcolors[c].g + ((cdist[c].g * i)) / maxstep; - colors[c].b = palcolors[c].b + ((cdist[c].b * i)) / maxstep; - } - SDL_SetColors(screen, colors, 0, ncolors); - SDL_Delay(1); - } - final.r = 0x00; - final.g = 0x00; - final.b = 0x00; - memcpy(palcolors, colors, ncolors * sizeof(SDL_Color)); - for (i = 0; i < ncolors; ++i) { - cdist[i].r = final.r - palcolors[i].r; - cdist[i].g = final.g - palcolors[i].g; - cdist[i].b = final.b - palcolors[i].b; - } - maxstep /= 2; - for (i = 0; i <= maxstep; ++i) { /* finish fade out */ - int c; - for (c = 0; c < ncolors; ++c) { - colors[c].r = palcolors[c].r + ((cdist[c].r * i)) / maxstep; - colors[c].g = palcolors[c].g + ((cdist[c].g * i)) / maxstep; - colors[c].b = palcolors[c].b + ((cdist[c].b * i)) / maxstep; - } - SDL_SetColors(screen, colors, 0, ncolors); - SDL_Delay(1); - } - for (i = 0; i < ncolors; ++i) { - colors[i].r = final.r; - colors[i].g = final.g; - colors[i].b = final.b; - } - SDL_SetColors(screen, colors, 0, ncolors); - NOTICE("testwin: fading in...\n"); - memcpy(palcolors, colors, ncolors * sizeof(SDL_Color)); - for (i = 0; i < ncolors; ++i) { - cdist[i].r = cmap[i].r - palcolors[i].r; - cdist[i].g = cmap[i].g - palcolors[i].g; - cdist[i].b = cmap[i].b - palcolors[i].b; - } - for (i = 0; i <= maxstep; ++i) { /* 32 step fade in */ - int c; - for (c = 0; c < ncolors; ++c) { - colors[c].r = palcolors[c].r + ((cdist[c].r * i)) / maxstep; - colors[c].g = palcolors[c].g + ((cdist[c].g * i)) / maxstep; - colors[c].b = palcolors[c].b + ((cdist[c].b * i)) / maxstep; - } - SDL_SetColors(screen, colors, 0, ncolors); - SDL_Delay(1); - } - NOTICE("testwin: fading over\n"); - } - - done: - /* Free the picture and return */ - SDL_FreeSurface(picture); - free(colors); - free(cmap); - return; -} - -int -main(int argc, char *argv[]) -{ - SDL_Surface *screen; - /* Options */ - int speedy, flip, nofade; - int delay; - int w, h; - int desired_bpp; - Uint32 video_flags; -#ifdef BENCHMARK_SDL - Uint32 then, now; -#endif - /* Set default options and check command-line */ - speedy = 0; - flip = 0; - nofade = 0; - delay = 1; - -#ifdef _WIN32_WCE - w = 240; - h = 320; - desired_bpp = 8; - video_flags = SDL_FULLSCREEN; -#else - w = 640; - h = 480; - desired_bpp = 0; - video_flags = 0; -#endif - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - - while (argc > 1) { - if (strcmp(argv[1], "-speedy") == 0) { - speedy = 1; - argv += 1; - argc -= 1; - } else if (strcmp(argv[1], "-nofade") == 0) { - nofade = 1; - argv += 1; - argc -= 1; - } else if (strcmp(argv[1], "-delay") == 0) { - if (argv[2]) { - delay = atoi(argv[2]); - argv += 2; - argc -= 2; - } else { - fprintf(stderr, "The -delay option requires an argument\n"); - quit(1); - } - } else if (strcmp(argv[1], "-width") == 0) { - if (argv[2] && ((w = atoi(argv[2])) > 0)) { - argv += 2; - argc -= 2; - } else { - fprintf(stderr, "The -width option requires an argument\n"); - quit(1); - } - } else if (strcmp(argv[1], "-height") == 0) { - if (argv[2] && ((h = atoi(argv[2])) > 0)) { - argv += 2; - argc -= 2; - } else { - fprintf(stderr, "The -height option requires an argument\n"); - quit(1); - } - } else if (strcmp(argv[1], "-bpp") == 0) { - if (argv[2]) { - desired_bpp = atoi(argv[2]); - argv += 2; - argc -= 2; - } else { - fprintf(stderr, "The -bpp option requires an argument\n"); - quit(1); - } - } else if (strcmp(argv[1], "-warp") == 0) { - video_flags |= SDL_HWPALETTE; - argv += 1; - argc -= 1; - } else if (strcmp(argv[1], "-hw") == 0) { - video_flags |= SDL_HWSURFACE; - argv += 1; - argc -= 1; - } else if (strcmp(argv[1], "-flip") == 0) { - video_flags |= SDL_DOUBLEBUF; - argv += 1; - argc -= 1; - } else if (strcmp(argv[1], "-fullscreen") == 0) { - video_flags |= SDL_FULLSCREEN; - argv += 1; - argc -= 1; - } else - break; - } - - /* Initialize the display */ - screen = SDL_SetVideoMode(w, h, desired_bpp, video_flags); - if (screen == NULL) { - fprintf(stderr, "Couldn't set %dx%dx%d video mode: %s\n", - w, h, desired_bpp, SDL_GetError()); - quit(1); - } - printf("Set%s %dx%dx%d mode\n", - screen->flags & SDL_FULLSCREEN ? " fullscreen" : "", - screen->w, screen->h, screen->format->BitsPerPixel); - printf("(video surface located in %s memory)\n", - (screen->flags & SDL_HWSURFACE) ? "video" : "system"); - if (screen->flags & SDL_DOUBLEBUF) { - printf("Double-buffering enabled\n"); - flip = 1; - } - - /* Set the window manager title bar */ - SDL_WM_SetCaption("SDL test window", "testwin"); - - /* Do all the drawing work */ -#ifdef BENCHMARK_SDL - then = SDL_GetTicks(); - DrawPict(screen, argv[1], speedy, flip, nofade); - now = SDL_GetTicks(); - printf("Time: %d milliseconds\n", now - then); -#else - DrawPict(screen, argv[1], speedy, flip, nofade); -#endif - SDL_Delay(delay * 1000); - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testwm.c b/3rdparty/SDL-1.3.0-5387/test/testwm.c deleted file mode 100644 index 5182c76d49..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testwm.c +++ /dev/null @@ -1,454 +0,0 @@ - -/* Test out the window manager interaction functions */ - -#include -#include -#include - -#include "SDL.h" - -/* Is the cursor visible? */ -static int visible = 1; - -static Uint8 video_bpp; -static Uint32 video_flags; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -int -SetVideoMode(int w, int h) -{ - SDL_Surface *screen; - int i; - Uint8 *buffer; - SDL_Color palette[256]; - - screen = SDL_SetVideoMode(w, h, video_bpp, video_flags); - if (screen == NULL) { - fprintf(stderr, "Couldn't set %dx%dx%d video mode: %s\n", - w, h, video_bpp, SDL_GetError()); - return (-1); - } - printf("Running in %s mode\n", screen->flags & SDL_FULLSCREEN ? - "fullscreen" : "windowed"); - - /* Set the surface pixels and refresh! */ - for (i = 0; i < 256; ++i) { - palette[i].r = 255 - i; - palette[i].g = 255 - i; - palette[i].b = 255 - i; - } - SDL_SetColors(screen, palette, 0, 256); - if (SDL_LockSurface(screen) < 0) { - fprintf(stderr, "Couldn't lock display surface: %s\n", - SDL_GetError()); - return (-1); - } - buffer = (Uint8 *) screen->pixels; - for (i = 0; i < screen->h; ++i) { - memset(buffer, (i * 255) / screen->h, - screen->w * screen->format->BytesPerPixel); - buffer += screen->pitch; - } - SDL_UnlockSurface(screen); - SDL_UpdateRect(screen, 0, 0, 0, 0); - - return (0); -} - -SDL_Surface * -LoadIconSurface(char *file, Uint8 ** maskp) -{ - SDL_Surface *icon; - Uint8 *pixels; - Uint8 *mask; - int mlen, i, j; - - *maskp = NULL; - - /* Load the icon surface */ - icon = SDL_LoadBMP(file); - if (icon == NULL) { - fprintf(stderr, "Couldn't load %s: %s\n", file, SDL_GetError()); - return (NULL); - } - - /* Check width and height - if ( (icon->w%8) != 0 ) { - fprintf(stderr, "Icon width must be a multiple of 8!\n"); - SDL_FreeSurface(icon); - return(NULL); - } - */ - - - if (icon->format->palette == NULL) { - fprintf(stderr, "Icon must have a palette!\n"); - SDL_FreeSurface(icon); - return (NULL); - } - - /* Set the colorkey */ - SDL_SetColorKey(icon, SDL_SRCCOLORKEY, *((Uint8 *) icon->pixels)); - - /* Create the mask */ - pixels = (Uint8 *) icon->pixels; - printf("Transparent pixel: (%d,%d,%d)\n", - icon->format->palette->colors[*pixels].r, - icon->format->palette->colors[*pixels].g, - icon->format->palette->colors[*pixels].b); - mlen = (icon->w * icon->h + 7) / 8; - mask = (Uint8 *) malloc(mlen); - if (mask == NULL) { - fprintf(stderr, "Out of memory!\n"); - SDL_FreeSurface(icon); - return (NULL); - } - memset(mask, 0, mlen); - for (i = 0; i < icon->h; i++) - for (j = 0; j < icon->w; j++) { - int pindex = i * icon->pitch + j; - int mindex = i * icon->w + j; - if (pixels[pindex] != *pixels) - mask[mindex >> 3] |= 1 << (7 - (mindex & 7)); - } - *maskp = mask; - return (icon); -} - -void -HotKey_ToggleFullScreen(void) -{ - SDL_Surface *screen; - - screen = SDL_GetVideoSurface(); - if (SDL_WM_ToggleFullScreen(screen)) { - printf("Toggled fullscreen mode - now %s\n", - (screen->flags & SDL_FULLSCREEN) ? "fullscreen" : "windowed"); - } else { - printf("Unable to toggle fullscreen mode\n"); - video_flags ^= SDL_FULLSCREEN; - SetVideoMode(screen->w, screen->h); - } -} - -void -HotKey_ToggleGrab(void) -{ - SDL_GrabMode mode; - - printf("Ctrl-G: toggling input grab!\n"); - mode = SDL_WM_GrabInput(SDL_GRAB_QUERY); - if (mode == SDL_GRAB_ON) { - printf("Grab was on\n"); - } else { - printf("Grab was off\n"); - } - mode = SDL_WM_GrabInput(mode ? SDL_GRAB_OFF : SDL_GRAB_ON); - if (mode == SDL_GRAB_ON) { - printf("Grab is now on\n"); - } else { - printf("Grab is now off\n"); - } -} - -void -HotKey_Iconify(void) -{ - printf("Ctrl-Z: iconifying window!\n"); - SDL_WM_IconifyWindow(); -} - -void -HotKey_Quit(void) -{ - SDL_Event event; - - printf("Posting internal quit request\n"); - event.type = SDL_USEREVENT; - SDL_PushEvent(&event); -} - - -static void -print_modifiers(void) -{ - int mod; - printf(" modifiers:"); - mod = SDL_GetModState(); - if(!mod) { - printf(" (none)"); - return; - } - if(mod & KMOD_LSHIFT) - printf(" LSHIFT"); - if(mod & KMOD_RSHIFT) - printf(" RSHIFT"); - if(mod & KMOD_LCTRL) - printf(" LCTRL"); - if(mod & KMOD_RCTRL) - printf(" RCTRL"); - if(mod & KMOD_LALT) - printf(" LALT"); - if(mod & KMOD_RALT) - printf(" RALT"); - if(mod & KMOD_LMETA) - printf(" LMETA"); - if(mod & KMOD_RMETA) - printf(" RMETA"); - if(mod & KMOD_NUM) - printf(" NUM"); - if(mod & KMOD_CAPS) - printf(" CAPS"); - if(mod & KMOD_MODE) - printf(" MODE"); -} - -static void PrintKey(const SDL_Keysym *sym, int pressed) -{ - /* Print the keycode, name and state */ - if ( sym->sym ) { - printf("Key %s: %d-%s ", pressed ? "pressed" : "released", - sym->sym, SDL_GetKeyName(sym->sym)); - } else { - printf("Unknown Key (scancode = %d) %s ", sym->scancode, - pressed ? "pressed" : "released"); - } - - /* Print the translated character, if one exists */ - if ( sym->unicode ) { - /* Is it a control-character? */ - if ( sym->unicode < ' ' ) { - printf(" (^%c)", sym->unicode+'@'); - } else { -#ifdef UNICODE - printf(" (%c)", sym->unicode); -#else - /* This is a Latin-1 program, so only show 8-bits */ - if ( !(sym->unicode & 0xFF00) ) - printf(" (%c)", sym->unicode); - else - printf(" (0x%X)", sym->unicode); -#endif - } - } - print_modifiers(); - printf("\n"); -} - - -static int (SDLCALL * old_filterfunc) (void *, SDL_Event *); -static void *old_filterdata; - -int SDLCALL -FilterEvents(void *userdata, SDL_Event * event) -{ - static int reallyquit = 0; - - if (old_filterfunc) { - old_filterfunc(old_filterdata, event); - } - - switch (event->type) { - - case SDL_ACTIVEEVENT: - /* See what happened */ - printf("App %s ", event->active.gain ? "gained" : "lost"); - if (event->active.state & SDL_APPACTIVE) - printf("active "); - if (event->active.state & SDL_APPINPUTFOCUS) - printf("input "); - if (event->active.state & SDL_APPMOUSEFOCUS) - printf("mouse "); - printf("focus\n"); - - /* See if we are iconified or restored */ - if (event->active.state & SDL_APPACTIVE) { - printf("App has been %s\n", - event->active.gain ? "restored" : "iconified"); - } - return (0); - - /* We want to toggle visibility on buttonpress */ - case SDL_MOUSEBUTTONDOWN: - case SDL_MOUSEBUTTONUP: - if (event->button.state == SDL_PRESSED) { - visible = !visible; - SDL_ShowCursor(visible); - } - printf("Mouse button %d has been %s at %d,%d\n", - event->button.button, - (event->button.state == SDL_PRESSED) ? "pressed" : "released", - event->button.x, event->button.y); - return (0); - - /* Show relative mouse motion */ - case SDL_MOUSEMOTION: -#if 0 - printf("Mouse motion: {%d,%d} (%d,%d)\n", - event->motion.x, event->motion.y, - event->motion.xrel, event->motion.yrel); -#endif - return (0); - - case SDL_KEYDOWN: - PrintKey(&event->key.keysym, 1); - if (event->key.keysym.sym == SDLK_ESCAPE) { - HotKey_Quit(); - } - if ((event->key.keysym.sym == SDLK_g) && - (event->key.keysym.mod & KMOD_CTRL)) { - HotKey_ToggleGrab(); - } - if ((event->key.keysym.sym == SDLK_z) && - (event->key.keysym.mod & KMOD_CTRL)) { - HotKey_Iconify(); - } - if ((event->key.keysym.sym == SDLK_RETURN) && - (event->key.keysym.mod & (KMOD_ALT|KMOD_META))) { - HotKey_ToggleFullScreen(); - } - return (0); - - case SDL_KEYUP: - PrintKey(&event->key.keysym, 0); - return(0); - - /* Pass the video resize event through .. */ - case SDL_VIDEORESIZE: - return (1); - - /* This is important! Queue it if we want to quit. */ - case SDL_QUIT: - if (!reallyquit) { - reallyquit = 1; - printf("Quit requested\n"); - return (0); - } - printf("Quit demanded\n"); - return (1); - - /* This will never happen because events queued directly - to the event queue are not filtered. - */ - case SDL_USEREVENT: - return (1); - - /* Drop all other events */ - default: - return (0); - } -} - -int -main(int argc, char *argv[]) -{ - SDL_Event event; - const char *title; - SDL_Surface *icon; - Uint8 *icon_mask; - int parsed; - int w, h; - - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - - /* Check command line arguments */ - w = 640; - h = 480; - video_bpp = 8; - video_flags = SDL_SWSURFACE; - parsed = 1; - while (parsed) { - if ((argc >= 2) && (strcmp(argv[1], "-fullscreen") == 0)) { - video_flags |= SDL_FULLSCREEN; - argc -= 1; - argv += 1; - } else if ((argc >= 2) && (strcmp(argv[1], "-resize") == 0)) { - video_flags |= SDL_RESIZABLE; - argc -= 1; - argv += 1; - } else if ((argc >= 2) && (strcmp(argv[1], "-noframe") == 0)) { - video_flags |= SDL_NOFRAME; - argc -= 1; - argv += 1; - } else if ((argc >= 3) && (strcmp(argv[1], "-width") == 0)) { - w = atoi(argv[2]); - argc -= 2; - argv += 2; - } else if ((argc >= 3) && (strcmp(argv[1], "-height") == 0)) { - h = atoi(argv[2]); - argc -= 2; - argv += 2; - } else if ((argc >= 3) && (strcmp(argv[1], "-bpp") == 0)) { - video_bpp = atoi(argv[2]); - argc -= 2; - argv += 2; - } else { - parsed = 0; - } - } - - /* Set the icon -- this must be done before the first mode set */ - icon = LoadIconSurface("icon.bmp", &icon_mask); - if (icon != NULL) { - SDL_WM_SetIcon(icon, icon_mask); - } - if (icon_mask != NULL) - free(icon_mask); - - /* Set the title bar */ - if (argv[1] == NULL) - title = "Testing 1.. 2.. 3..."; - else - title = argv[1]; - SDL_WM_SetCaption(title, "testwm"); - - /* See if it's really set */ - SDL_WM_GetCaption(&title, NULL); - if (title) - printf("Title was set to: %s\n", title); - else - printf("No window title was set!\n"); - - /* Initialize the display */ - if (SetVideoMode(w, h) < 0) { - quit(1); - } - - /* Set an event filter that discards everything but QUIT */ - SDL_GetEventFilter(&old_filterfunc, &old_filterdata); - SDL_SetEventFilter(FilterEvents, NULL); - - /* Loop, waiting for QUIT */ - while (SDL_WaitEvent(&event)) { - switch (event.type) { - case SDL_VIDEORESIZE: - printf("Got a resize event: %dx%d\n", - event.resize.w, event.resize.h); - SetVideoMode(event.resize.w, event.resize.h); - break; - case SDL_USEREVENT: - printf("Handling internal quit request\n"); - /* Fall through to the quit handler */ - case SDL_QUIT: - printf("Bye bye..\n"); - quit(0); - default: - /* This should never happen */ - printf("Warning: Event %d wasn't filtered\n", event.type); - break; - } - } - printf("SDL_WaitEvent() error: %s\n", SDL_GetError()); - SDL_Quit(); - return (255); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/testwm2.c b/3rdparty/SDL-1.3.0-5387/test/testwm2.c deleted file mode 100644 index 49ac73b2b6..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/testwm2.c +++ /dev/null @@ -1,72 +0,0 @@ - -#include -#include - -#include "common.h" - -static CommonState *state; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - CommonQuit(state); - exit(rc); -} - -int -main(int argc, char *argv[]) -{ - int i, done; - SDL_Event event; - - /* Initialize test framework */ - state = CommonCreateState(argv, SDL_INIT_VIDEO); - if (!state) { - return 1; - } - state->skip_renderer = SDL_TRUE; - for (i = 1; i < argc;) { - int consumed; - - consumed = CommonArg(state, i); - if (consumed == 0) { - consumed = -1; - } - if (consumed < 0) { - fprintf(stderr, "Usage: %s %s\n", argv[0], CommonUsage(state)); - quit(1); - } - i += consumed; - } - if (!CommonInit(state)) { - quit(2); - } - - /* Main render loop */ - done = 0; - while (!done) { - /* Check for events */ - while (SDL_PollEvent(&event)) { - CommonEvent(state, &event, &done); - - if (event.type == SDL_WINDOWEVENT) { - if (event.window.event == SDL_WINDOWEVENT_MOVED) { - SDL_Window *window = SDL_GetWindowFromID(event.window.windowID); - if (window) { - printf("Window %d moved to %d,%d (display %d)\n", - event.window.windowID, - event.window.data1, - event.window.data2, - SDL_GetWindowDisplay(window)); - } - } - } - } - } - quit(0); - // keep the compiler happy ... - return(0); -} - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/3rdparty/SDL-1.3.0-5387/test/threadwin.c b/3rdparty/SDL-1.3.0-5387/test/threadwin.c deleted file mode 100644 index 08c149f92b..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/threadwin.c +++ /dev/null @@ -1,326 +0,0 @@ - -/* Test out the multi-threaded event handling functions */ - -#include -#include -#include - -#include "SDL.h" -#include "SDL_thread.h" - -/* Are we done yet? */ -static int done = 0; - -/* Is the cursor visible? */ -static int visible = 1; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -SDL_Surface * -LoadIconSurface(char *file, Uint8 ** maskp) -{ - SDL_Surface *icon; - Uint8 *pixels; - Uint8 *mask; - int mlen, i; - - *maskp = NULL; - - /* Load the icon surface */ - icon = SDL_LoadBMP(file); - if (icon == NULL) { - fprintf(stderr, "Couldn't load %s: %s\n", file, SDL_GetError()); - return (NULL); - } - - /* Check width and height */ - if ((icon->w % 8) != 0) { - fprintf(stderr, "Icon width must be a multiple of 8!\n"); - SDL_FreeSurface(icon); - return (NULL); - } - if (icon->format->palette == NULL) { - fprintf(stderr, "Icon must have a palette!\n"); - SDL_FreeSurface(icon); - return (NULL); - } - - /* Set the colorkey */ - SDL_SetColorKey(icon, SDL_SRCCOLORKEY, *((Uint8 *) icon->pixels)); - - /* Create the mask */ - pixels = (Uint8 *) icon->pixels; - printf("Transparent pixel: (%d,%d,%d)\n", - icon->format->palette->colors[*pixels].r, - icon->format->palette->colors[*pixels].g, - icon->format->palette->colors[*pixels].b); - mlen = icon->w * icon->h; - mask = (Uint8 *) malloc(mlen / 8); - if (mask == NULL) { - fprintf(stderr, "Out of memory!\n"); - SDL_FreeSurface(icon); - return (NULL); - } - memset(mask, 0, mlen / 8); - for (i = 0; i < mlen;) { - if (pixels[i] != *pixels) - mask[i / 8] |= 0x01; - ++i; - if ((i % 8) != 0) - mask[i / 8] <<= 1; - } - *maskp = mask; - return (icon); -} - -int SDLCALL -FilterEvents(void *userdata, SDL_Event * event) -{ - static int reallyquit = 0; - - switch (event->type) { - - case SDL_ACTIVEEVENT: - /* See what happened */ - printf("App %s ", event->active.gain ? "gained" : "lost"); - if (event->active.state & SDL_APPACTIVE) - printf("active "); - if (event->active.state & SDL_APPMOUSEFOCUS) - printf("mouse "); - if (event->active.state & SDL_APPINPUTFOCUS) - printf("input "); - printf("focus\n"); - - /* See if we are iconified or restored */ - if (event->active.state & SDL_APPACTIVE) { - printf("App has been %s\n", - event->active.gain ? "restored" : "iconified"); - } - return (0); - - /* This is important! Queue it if we want to quit. */ - case SDL_QUIT: - if (!reallyquit) { - reallyquit = 1; - printf("Quit requested\n"); - return (0); - } - printf("Quit demanded\n"); - return (1); - - /* Mouse and keyboard events go to threads */ - case SDL_MOUSEMOTION: - case SDL_MOUSEBUTTONDOWN: - case SDL_MOUSEBUTTONUP: - case SDL_KEYDOWN: - case SDL_KEYUP: - return (1); - - /* Drop all other events */ - default: - return (0); - } -} - -int SDLCALL -HandleMouse(void *unused) -{ - SDL_Event events[10]; - int i, found; - - /* Handle mouse events here */ - while (!done) { - found = SDL_PeepEvents(events, 10, SDL_GETEVENT, SDL_MOUSEMOTION, SDL_MOUSEBUTTONUP); - for (i = 0; i < found; ++i) { - switch (events[i].type) { - /* We want to toggle visibility on buttonpress */ - case SDL_MOUSEBUTTONDOWN: - case SDL_MOUSEBUTTONUP: - if (events[i].button.state == SDL_PRESSED) { - visible = !visible; - SDL_ShowCursor(visible); - } - printf("Mouse button %d has been %s\n", - events[i].button.button, - (events[i].button.state == SDL_PRESSED) ? - "pressed" : "released"); - break; - /* Show relative mouse motion */ - case SDL_MOUSEMOTION: - printf("Mouse relative motion: {%d,%d}\n", - events[i].motion.xrel, events[i].motion.yrel); - break; - } - } - /* Give up some CPU to allow events to arrive */ - SDL_Delay(20); - } - return (0); -} - -int SDLCALL -HandleKeyboard(void *unused) -{ - SDL_Event events[10]; - int i, found; - - /* Handle mouse events here */ - while (!done) { - found = SDL_PeepEvents(events, 10, SDL_GETEVENT, SDL_KEYDOWN, SDL_KEYUP); - for (i = 0; i < found; ++i) { - switch (events[i].type) { - /* We want to toggle visibility on buttonpress */ - case SDL_KEYDOWN: - case SDL_KEYUP: - printf("Key '%c' (keysym==%d) has been %s\n", - events[i].key.keysym.unicode, - (int) events[i].key.keysym.sym, - (events[i].key.state == SDL_PRESSED) ? - "pressed" : "released"); - - /* Allow hitting to quit the app */ - if (events[i].key.keysym.sym == SDLK_ESCAPE) { - done = 1; - } - - /* skip events now that aren't KEYUPs... */ - if (events[i].key.state == SDL_PRESSED) - break; - - if (events[i].key.keysym.sym == SDLK_f) { - int rc = 0; - printf("attempting to toggle fullscreen...\n"); - rc = SDL_WM_ToggleFullScreen(SDL_GetVideoSurface()); - printf("SDL_WM_ToggleFullScreen returned %d.\n", rc); - } - - if (events[i].key.keysym.sym == SDLK_g) { - SDL_GrabMode m; - m = SDL_WM_GrabInput(SDL_GRAB_QUERY) == - SDL_GRAB_ON ? SDL_GRAB_OFF : SDL_GRAB_ON; - printf - ("attempting to toggle input grab to %s...\n", - m == SDL_GRAB_ON ? "ON" : "OFF"); - SDL_WM_GrabInput(m); - printf("attempt finished.\n"); - } - - break; - } - } - /* Give up some CPU to allow events to arrive */ - SDL_Delay(20); - } - return (0); -} - -int -main(int argc, char *argv[]) -{ - SDL_Surface *screen; - SDL_Surface *icon; - Uint8 *icon_mask; - int i, parsed; - Uint8 *buffer; - SDL_Color palette[256]; - Uint32 init_flags; - Uint8 video_bpp; - Uint32 video_flags; - SDL_Thread *mouse_thread; - SDL_Thread *keybd_thread; - - /* Set the options, based on command line arguments */ - init_flags = SDL_INIT_VIDEO; - video_bpp = 8; - video_flags = SDL_SWSURFACE; - parsed = 1; - while (parsed) { - if ((argc >= 2) && (strcmp(argv[1], "-fullscreen") == 0)) { - video_flags |= SDL_FULLSCREEN; - argc -= 1; - argv += 1; - } else if ((argc >= 3) && (strcmp(argv[1], "-bpp") == 0)) { - video_bpp = atoi(argv[2]); - argc -= 2; - argv += 2; - } else { - parsed = 0; - } - } - - /* Initialize SDL with the requested flags */ - if (SDL_Init(init_flags) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - - /* Set the icon -- this must be done before the first mode set */ - icon = LoadIconSurface("icon.bmp", &icon_mask); - if (icon != NULL) { - SDL_WM_SetIcon(icon, icon_mask); - } - if (icon_mask != NULL) - free(icon_mask); - - /* Initialize the display */ - screen = SDL_SetVideoMode(640, 480, video_bpp, video_flags); - if (screen == NULL) { - fprintf(stderr, "Couldn't set 640x480x%d video mode: %s\n", - video_bpp, SDL_GetError()); - quit(1); - } - printf("Running in %s mode\n", screen->flags & SDL_FULLSCREEN ? - "fullscreen" : "windowed"); - - /* Enable printable characters */ - SDL_EnableUNICODE(1); - - /* Set an event filter that discards everything but QUIT */ - SDL_SetEventFilter(FilterEvents, NULL); - - /* Create the event handling threads */ - mouse_thread = SDL_CreateThread(HandleMouse, NULL); - keybd_thread = SDL_CreateThread(HandleKeyboard, NULL); - - /* Set the surface pixels and refresh! */ - for (i = 0; i < 256; ++i) { - palette[i].r = 255 - i; - palette[i].g = 255 - i; - palette[i].b = 255 - i; - } - SDL_SetColors(screen, palette, 0, 256); - if (SDL_LockSurface(screen) < 0) { - fprintf(stderr, "Couldn't lock display surface: %s\n", - SDL_GetError()); - quit(2); - } - buffer = (Uint8 *) screen->pixels; - for (i = 0; i < screen->h; ++i) { - memset(buffer, (i * 255) / screen->h, - screen->w * screen->format->BytesPerPixel); - buffer += screen->pitch; - } - SDL_UnlockSurface(screen); - SDL_UpdateRect(screen, 0, 0, 0, 0); - - /* Loop, waiting for QUIT */ - while (!done) { - SDL_PumpEvents(); - - if (SDL_PeepEvents(NULL, 0, SDL_PEEKEVENT, SDL_QUIT, SDL_QUIT)) { - done = 1; - } - /* Give up some CPU so the events can accumulate */ - SDL_Delay(20); - } - SDL_WaitThread(mouse_thread, NULL); - SDL_WaitThread(keybd_thread, NULL); - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/torturethread.c b/3rdparty/SDL-1.3.0-5387/test/torturethread.c deleted file mode 100644 index 0952ac51f8..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/torturethread.c +++ /dev/null @@ -1,96 +0,0 @@ - -/* Simple test of the SDL threading code */ - -#include -#include -#include -#include - -#include "SDL.h" -#include "SDL_thread.h" - -#define NUMTHREADS 10 - -static char volatile time_for_threads_to_die[NUMTHREADS]; - -/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ -static void -quit(int rc) -{ - SDL_Quit(); - exit(rc); -} - -int SDLCALL -SubThreadFunc(void *data) -{ - while (!*(int volatile *) data) { - ; /*SDL_Delay(10); *//* do nothing */ - } - return 0; -} - -int SDLCALL -ThreadFunc(void *data) -{ - SDL_Thread *sub_threads[NUMTHREADS]; - int flags[NUMTHREADS]; - int i; - int tid = (int) (uintptr_t) data; - - fprintf(stderr, "Creating Thread %d\n", tid); - - for (i = 0; i < NUMTHREADS; i++) { - flags[i] = 0; - sub_threads[i] = SDL_CreateThread(SubThreadFunc, &flags[i]); - } - - printf("Thread '%d' waiting for signal\n", tid); - while (time_for_threads_to_die[tid] != 1) { - ; /* do nothing */ - } - - printf("Thread '%d' sending signals to subthreads\n", tid); - for (i = 0; i < NUMTHREADS; i++) { - flags[i] = 1; - SDL_WaitThread(sub_threads[i], NULL); - } - - printf("Thread '%d' exiting!\n", tid); - - return 0; -} - -int -main(int argc, char *argv[]) -{ - SDL_Thread *threads[NUMTHREADS]; - int i; - - /* Load the SDL library */ - if (SDL_Init(0) < 0) { - fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); - return (1); - } - - signal(SIGSEGV, SIG_DFL); - for (i = 0; i < NUMTHREADS; i++) { - time_for_threads_to_die[i] = 0; - threads[i] = SDL_CreateThread(ThreadFunc, (void *) (uintptr_t) i); - - if (threads[i] == NULL) { - fprintf(stderr, "Couldn't create thread: %s\n", SDL_GetError()); - quit(1); - } - } - - for (i = 0; i < NUMTHREADS; i++) { - time_for_threads_to_die[i] = 1; - } - - for (i = 0; i < NUMTHREADS; i++) { - SDL_WaitThread(threads[i], NULL); - } - SDL_Quit(); - return (0); -} diff --git a/3rdparty/SDL-1.3.0-5387/test/utf8.txt b/3rdparty/SDL-1.3.0-5387/test/utf8.txt deleted file mode 100644 index aab22f1d02..0000000000 --- a/3rdparty/SDL-1.3.0-5387/test/utf8.txt +++ /dev/null @@ -1,287 +0,0 @@ -UTF-8 decoder capability and stress test ----------------------------------------- - -Markus Kuhn - 2003-02-19 - -This test file can help you examine, how your UTF-8 decoder handles -various types of correct, malformed, or otherwise interesting UTF-8 -sequences. This file is not meant to be a conformance test. It does -not prescribes any particular outcome and therefore there is no way to -"pass" or "fail" this test file, even though the texts suggests a -preferable decoder behaviour at some places. The aim is instead to -help you think about and test the behaviour of your UTF-8 on a -systematic collection of unusual inputs. Experience so far suggests -that most first-time authors of UTF-8 decoders find at least one -serious problem in their decoder by using this file. - -The test lines below cover boundary conditions, malformed UTF-8 -sequences as well as correctly encoded UTF-8 sequences of Unicode code -points that should never occur in a correct UTF-8 file. - -According to ISO 10646-1:2000, sections D.7 and 2.3c, a device -receiving UTF-8 shall interpret a "malformed sequence in the same way -that it interprets a character that is outside the adopted subset" and -"characters that are not within the adopted subset shall be indicated -to the user" by a receiving device. A quite commonly used approach in -UTF-8 decoders is to replace any malformed UTF-8 sequence by a -replacement character (U+FFFD), which looks a bit like an inverted -question mark, or a similar symbol. It might be a good idea to -visually distinguish a malformed UTF-8 sequence from a correctly -encoded Unicode character that is just not available in the current -font but otherwise fully legal, even though ISO 10646-1 doesn't -mandate this. In any case, just ignoring malformed sequences or -unavailable characters does not conform to ISO 10646, will make -debugging more difficult, and can lead to user confusion. - -Please check, whether a malformed UTF-8 sequence is (1) represented at -all, (2) represented by exactly one single replacement character (or -equivalent signal), and (3) the following quotation mark after an -illegal UTF-8 sequence is correctly displayed, i.e. proper -resynchronization takes place immageately after any malformed -sequence. This file says "THE END" in the last line, so if you don't -see that, your decoder crashed somehow before, which should always be -cause for concern. - -All lines in this file are exactly 79 characters long (plus the line -feed). In addition, all lines end with "|", except for the two test -lines 2.1.1 and 2.2.1, which contain non-printable ASCII controls -U+0000 and U+007F. If you display this file with a fixed-width font, -these "|" characters should all line up in column 79 (right margin). -This allows you to test quickly, whether your UTF-8 decoder finds the -correct number of characters in every line, that is whether each -malformed sequences is replaced by a single replacement character. - -Note that as an alternative to the notion of malformed sequence used -here, it is also a perfectly acceptable (and in some situations even -preferable) solution to represent each individual byte of a malformed -sequence by a replacement character. If you follow this strategy in -your decoder, then please ignore the "|" column. - - -Here come the tests: | - | -1 Some correct UTF-8 text | - | -(The codepoints for this test are: | - U+03BA U+1F79 U+03C3 U+03BC U+03B5 --ryan.) | - | -You should see the Greek word 'kosme': "κόσμε" | - | - | -2 Boundary condition test cases | - | -2.1 First possible sequence of a certain length | - | -(byte zero skipped...there's a null added at the end of the test. --ryan.) | - | -2.1.2 2 bytes (U-00000080): "€" | -2.1.3 3 bytes (U-00000800): "à €" | -2.1.4 4 bytes (U-00010000): "ð�€€" | - | -(5 and 6 byte sequences were made illegal in rfc3629. --ryan.) | -2.1.5 5 bytes (U-00200000): "øˆ€€€" | -2.1.6 6 bytes (U-04000000): "ü„€€€€" | - | -2.2 Last possible sequence of a certain length | - | -2.2.1 1 byte (U-0000007F): "" | -2.2.2 2 bytes (U-000007FF): "ß¿" | - | -(Section 5.3.2 below calls this illegal. --ryan.) | -2.2.3 3 bytes (U-0000FFFF): "ï¿¿" | - | -(5 and 6 bytes sequences, and 4 bytes sequences > 0x10FFFF were made illegal | - in rfc3629, so these next three should be replaced with a invalid | - character codepoint. --ryan.) | -2.2.4 4 bytes (U-001FFFFF): "÷¿¿¿" | -2.2.5 5 bytes (U-03FFFFFF): "û¿¿¿¿" | -2.2.6 6 bytes (U-7FFFFFFF): "ý¿¿¿¿¿" | - | -2.3 Other boundary conditions | - | -2.3.1 U-0000D7FF = ed 9f bf = "퟿" | -2.3.2 U-0000E000 = ee 80 80 = "" | -2.3.3 U-0000FFFD = ef bf bd = "�" | -2.3.4 U-0010FFFF = f4 8f bf bf = "ô�¿¿" | - | -(This one is bogus in rfc3629. --ryan.) | -2.3.5 U-00110000 = f4 90 80 80 = "ô�€€" | - | -3 Malformed sequences | - | -3.1 Unexpected continuation bytes | - | -Each unexpected continuation byte should be separately signalled as a | -malformed sequence of its own. | - | -3.1.1 First continuation byte 0x80: "€" | -3.1.2 Last continuation byte 0xbf: "¿" | - | -3.1.3 2 continuation bytes: "€¿" | -3.1.4 3 continuation bytes: "€¿€" | -3.1.5 4 continuation bytes: "€¿€¿" | -3.1.6 5 continuation bytes: "€¿€¿€" | -3.1.7 6 continuation bytes: "€¿€¿€¿" | -3.1.8 7 continuation bytes: "€¿€¿€¿€" | - | -3.1.9 Sequence of all 64 possible continuation bytes (0x80-0xbf): | - | - "€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž� | - �‘’“”•–—˜™š›œ�žŸ | -  ¡¢£¤¥¦§¨©ª«¬­®¯ | - °±²³´µ¶·¸¹º»¼½¾¿" | - | -3.2 Lonely start characters | - | -3.2.1 All 32 first bytes of 2-byte sequences (0xc0-0xdf), | - each followed by a space character: | - | - "À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï | - Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß " | - | -3.2.2 All 16 first bytes of 3-byte sequences (0xe0-0xef), | - each followed by a space character: | - | - "à á â ã ä å æ ç è é ê ë ì í î ï " | - | -3.2.3 All 8 first bytes of 4-byte sequences (0xf0-0xf7), | - each followed by a space character: | - | - "ð ñ ò ó ô õ ö ÷ " | - | -3.2.4 All 4 first bytes of 5-byte sequences (0xf8-0xfb), | - each followed by a space character: | - | - "ø ù ú û " | - | -3.2.5 All 2 first bytes of 6-byte sequences (0xfc-0xfd), | - each followed by a space character: | - | - "ü ý " | - | -3.3 Sequences with last continuation byte missing | - | -All bytes of an incomplete sequence should be signalled as a single | -malformed sequence, i.e., you should see only a single replacement | -character in each of the next 10 tests. (Characters as in section 2) | - | -3.3.1 2-byte sequence with last byte missing (U+0000): "À" | -3.3.2 3-byte sequence with last byte missing (U+0000): "à€" | -3.3.3 4-byte sequence with last byte missing (U+0000): "ð€€" | -3.3.4 5-byte sequence with last byte missing (U+0000): "ø€€€" | -3.3.5 6-byte sequence with last byte missing (U+0000): "ü€€€€" | -3.3.6 2-byte sequence with last byte missing (U-000007FF): "ß" | -3.3.7 3-byte sequence with last byte missing (U-0000FFFF): "ï¿" | -3.3.8 4-byte sequence with last byte missing (U-001FFFFF): "÷¿¿" | -3.3.9 5-byte sequence with last byte missing (U-03FFFFFF): "û¿¿¿" | -3.3.10 6-byte sequence with last byte missing (U-7FFFFFFF): "ý¿¿¿¿" | - | -3.4 Concatenation of incomplete sequences | - | -All the 10 sequences of 3.3 concatenated, you should see 10 malformed | -sequences being signalled: | - | - "Àà€ð€€ø€€€ü€€€€ßï¿÷¿¿û¿¿¿ý¿¿¿¿" | - | -3.5 Impossible bytes | - | -The following two bytes cannot appear in a correct UTF-8 string | - | -3.5.1 fe = "þ" | -3.5.2 ff = "ÿ" | -3.5.3 fe fe ff ff = "þþÿÿ" | - | -4 Overlong sequences | - | -The following sequences are not malformed according to the letter of | -the Unicode 2.0 standard. However, they are longer then necessary and | -a correct UTF-8 encoder is not allowed to produce them. A "safe UTF-8 | -decoder" should reject them just like malformed sequences for two | -reasons: (1) It helps to debug applications if overlong sequences are | -not treated as valid representations of characters, because this helps | -to spot problems more quickly. (2) Overlong sequences provide | -alternative representations of characters, that could maliciously be | -used to bypass filters that check only for ASCII characters. For | -instance, a 2-byte encoded line feed (LF) would not be caught by a | -line counter that counts only 0x0a bytes, but it would still be | -processed as a line feed by an unsafe UTF-8 decoder later in the | -pipeline. From a security point of view, ASCII compatibility of UTF-8 | -sequences means also, that ASCII characters are *only* allowed to be | -represented by ASCII bytes in the range 0x00-0x7f. To ensure this | -aspect of ASCII compatibility, use only "safe UTF-8 decoders" that | -reject overlong UTF-8 sequences for which a shorter encoding exists. | - | -4.1 Examples of an overlong ASCII character | - | -With a safe UTF-8 decoder, all of the following five overlong | -representations of the ASCII character slash ("/") should be rejected | -like a malformed UTF-8 sequence, for instance by substituting it with | -a replacement character. If you see a slash below, you do not have a | -safe UTF-8 decoder! | - | -4.1.1 U+002F = c0 af = "À¯" | -4.1.2 U+002F = e0 80 af = "à€¯" | -4.1.3 U+002F = f0 80 80 af = "ð€€¯" | -4.1.4 U+002F = f8 80 80 80 af = "ø€€€¯" | -4.1.5 U+002F = fc 80 80 80 80 af = "ü€€€€¯" | - | -4.2 Maximum overlong sequences | - | -Below you see the highest Unicode value that is still resulting in an | -overlong sequence if represented with the given number of bytes. This | -is a boundary test for safe UTF-8 decoders. All five characters should | -be rejected like malformed UTF-8 sequences. | - | -4.2.1 U-0000007F = c1 bf = "Á¿" | -4.2.2 U-000007FF = e0 9f bf = "àŸ¿" | -4.2.3 U-0000FFFF = f0 8f bf bf = "ð�¿¿" | -4.2.4 U-001FFFFF = f8 87 bf bf bf = "ø‡¿¿¿" | -4.2.5 U-03FFFFFF = fc 83 bf bf bf bf = "üƒ¿¿¿¿" | - | -4.3 Overlong representation of the NUL character | - | -The following five sequences should also be rejected like malformed | -UTF-8 sequences and should not be treated like the ASCII NUL | -character. | - | -4.3.1 U+0000 = c0 80 = "À€" | -4.3.2 U+0000 = e0 80 80 = "à€€" | -4.3.3 U+0000 = f0 80 80 80 = "ð€€€" | -4.3.4 U+0000 = f8 80 80 80 80 = "ø€€€€" | -4.3.5 U+0000 = fc 80 80 80 80 80 = "ü€€€€€" | - | -5 Illegal code positions | - | -The following UTF-8 sequences should be rejected like malformed | -sequences, because they never represent valid ISO 10646 characters and | -a UTF-8 decoder that accepts them might introduce security problems | -comparable to overlong UTF-8 sequences. | - | -5.1 Single UTF-16 surrogates | - | -5.1.1 U+D800 = ed a0 80 = "í €" | -5.1.2 U+DB7F = ed ad bf = "í­¿" | -5.1.3 U+DB80 = ed ae 80 = "í®€" | -5.1.4 U+DBFF = ed af bf = "í¯¿" | -5.1.5 U+DC00 = ed b0 80 = "í°€" | -5.1.6 U+DF80 = ed be 80 = "í¾€" | -5.1.7 U+DFFF = ed bf bf = "í¿¿" | - | -5.2 Paired UTF-16 surrogates | - | -5.2.1 U+D800 U+DC00 = ed a0 80 ed b0 80 = "𐀀" | -5.2.2 U+D800 U+DFFF = ed a0 80 ed bf bf = "𐏿" | -5.2.3 U+DB7F U+DC00 = ed ad bf ed b0 80 = "í­¿í°€" | -5.2.4 U+DB7F U+DFFF = ed ad bf ed bf bf = "í­¿í¿¿" | -5.2.5 U+DB80 U+DC00 = ed ae 80 ed b0 80 = "󰀀" | -5.2.6 U+DB80 U+DFFF = ed ae 80 ed bf bf = "󰏿" | -5.2.7 U+DBFF U+DC00 = ed af bf ed b0 80 = "􏰀" | -5.2.8 U+DBFF U+DFFF = ed af bf ed bf bf = "􏿿" | - | -5.3 Other illegal code positions | - | -5.3.1 U+FFFE = ef bf be = "￾" | -5.3.2 U+FFFF = ef bf bf = "ï¿¿" | - | -THE END | -