aboutsummaryrefslogtreecommitdiff
path: root/minilibx
diff options
context:
space:
mode:
Diffstat (limited to 'minilibx')
-rw-r--r--minilibx/.gitignore3
-rwxr-xr-x[-rw-r--r--]minilibx/Makefile37
-rwxr-xr-xminilibx/Makefile.mk71
-rwxr-xr-xminilibx/README42
-rw-r--r--minilibx/README.md131
-rwxr-xr-xminilibx/configure95
-rw-r--r--minilibx/font.c3525
-rw-r--r--minilibx/font.xcfbin52570 -> 0 bytes
-rwxr-xr-xminilibx/man/man3/mlx.393
-rwxr-xr-xminilibx/man/man3/mlx_loop.3141
-rwxr-xr-xminilibx/man/man3/mlx_new_image.3192
-rwxr-xr-xminilibx/man/man3/mlx_new_window.379
-rwxr-xr-xminilibx/man/man3/mlx_pixel_put.381
-rwxr-xr-x[-rw-r--r--]minilibx/mlx.h38
-rwxr-xr-xminilibx/mlx.pc12
-rwxr-xr-xminilibx/mlx_clear_window.c21
-rwxr-xr-xminilibx/mlx_destroy_image.c31
-rwxr-xr-xminilibx/mlx_destroy_window.c38
-rwxr-xr-xminilibx/mlx_expose_hook.c22
-rwxr-xr-xminilibx/mlx_flush_event.c25
-rwxr-xr-xminilibx/mlx_get_color_value.c33
-rwxr-xr-xminilibx/mlx_get_data_addr.c23
-rwxr-xr-xminilibx/mlx_hook.c40
-rwxr-xr-xminilibx/mlx_init.c91
-rw-r--r--minilibx/mlx_init_loop.m192
-rwxr-xr-x[-rw-r--r--]minilibx/mlx_int.h205
-rwxr-xr-xminilibx/mlx_int_anti_resize_win.c28
-rwxr-xr-xminilibx/mlx_int_do_nothing.c16
-rwxr-xr-xminilibx/mlx_int_get_visual.c39
-rwxr-xr-xminilibx/mlx_int_param_event.c100
-rwxr-xr-xminilibx/mlx_int_set_win_event_mask.c34
-rwxr-xr-x[-rw-r--r--]minilibx/mlx_int_str_to_wordtab.c16
-rwxr-xr-xminilibx/mlx_int_wait_first_expose.c23
-rwxr-xr-xminilibx/mlx_key_hook.c22
-rwxr-xr-xminilibx/mlx_lib_xpm.c96
-rwxr-xr-xminilibx/mlx_loop.c38
-rwxr-xr-xminilibx/mlx_loop_hook.c21
-rw-r--r--minilibx/mlx_mouse.m52
-rwxr-xr-xminilibx/mlx_mouse_hook.c22
-rwxr-xr-xminilibx/mlx_new_image.c155
-rw-r--r--minilibx/mlx_new_image.m198
-rwxr-xr-xminilibx/mlx_new_window.c61
-rw-r--r--minilibx/mlx_new_window.h57
-rw-r--r--minilibx/mlx_new_window.m766
-rw-r--r--minilibx/mlx_opengl.h21
-rw-r--r--minilibx/mlx_opengl.m57
-rwxr-xr-xminilibx/mlx_pixel_put.c26
-rw-r--r--minilibx/mlx_png.c418
-rw-r--r--minilibx/mlx_png.h4
-rwxr-xr-xminilibx/mlx_put_image_to_window.c37
-rwxr-xr-x[-rw-r--r--]minilibx/mlx_rgb.c1
-rw-r--r--minilibx/mlx_shaders.c240
-rwxr-xr-xminilibx/mlx_string_put.c26
-rwxr-xr-x[-rw-r--r--]minilibx/mlx_xpm.c101
-rwxr-xr-xminilibx/mlx_xpm.c.ok310
-rwxr-xr-xminilibx/rgb2c.pl38
-rwxr-xr-xminilibx/test/Makefile.mk24
-rwxr-xr-xminilibx/test/main.c284
-rwxr-xr-xminilibx/test/new_win.c31
-rwxr-xr-xminilibx/test/open.xpm1439
-rwxr-xr-xminilibx/test/open24.xpm230
-rwxr-xr-xminilibx/test/open30.xpm1439
62 files changed, 6003 insertions, 5728 deletions
diff --git a/minilibx/.gitignore b/minilibx/.gitignore
new file mode 100644
index 0000000..faf9101
--- /dev/null
+++ b/minilibx/.gitignore
@@ -0,0 +1,3 @@
+*.o
+*.a
+*.gen
diff --git a/minilibx/Makefile b/minilibx/Makefile
index 2e44836..ccf7387 100644..100755
--- a/minilibx/Makefile
+++ b/minilibx/Makefile
@@ -1,24 +1,25 @@
-#
-#
+##
+## Makefile for MiniLibX in /home/boulon/work/c/raytraceur/minilibx
+##
+## Made by Olivier Crouzet
+## Login <ol@epitech.net>
+##
+## Started on Tue Oct 5 15:56:43 2004 Olivier Crouzet
+## Last update Tue May 15 15:44:41 2007 Olivier Crouzet
+##
-NOM=libmlx.a
-SRC= mlx_shaders.c mlx_new_window.m mlx_init_loop.m mlx_new_image.m mlx_xpm.c mlx_int_str_to_wordtab.c
-SRC+= mlx_png.c mlx_mouse.m
-OBJ1=$(SRC:.c=.o)
-OBJ=$(OBJ1:.m=.o)
-CFLAGS+=-O2
+## Please use configure script
-# add to match string put with X11 in size and position
-CFLAGS+= -DSTRINGPUTX11
-all: $(NOM)
+all : do_configure
-$(NOM): $(OBJ)
- ar -r $(NOM) $(OBJ)
- ranlib $(NOM)
+do_configure :
+ ./configure
-clean:
- rm -f $(NOM) $(OBJ) *~
- rm -f mlx_app
+clean :
+ ./configure clean
-re: clean all
+re : clean all
+
+install:
+ $(MAKE) -f Makefile.gen $@
diff --git a/minilibx/Makefile.mk b/minilibx/Makefile.mk
new file mode 100755
index 0000000..4f919ac
--- /dev/null
+++ b/minilibx/Makefile.mk
@@ -0,0 +1,71 @@
+##
+## Makefile for MiniLibX in /home/boulon/work/c/raytraceur/minilibx
+##
+## Made by Olivier Crouzet
+## Login <ol@epitech.net>
+##
+## Started on Tue Oct 5 15:56:43 2004 Olivier Crouzet
+## Last update Tue May 15 15:41:20 2007 Olivier Crouzet
+##
+
+## Please use configure script
+
+
+INC = %%%%
+HT = %%%%
+DOCP = %%%%
+
+CC = gcc
+
+NAME = libmlx.a
+
+SRC = mlx_init.c \
+ mlx_new_window.c \
+ mlx_pixel_put.c \
+ mlx_loop.c \
+ mlx_mouse_hook.c \
+ mlx_key_hook.c \
+ mlx_expose_hook.c \
+ mlx_loop_hook.c \
+ mlx_int_anti_resize_win.c \
+ mlx_int_do_nothing.c \
+ mlx_int_wait_first_expose.c \
+ mlx_int_get_visual.c \
+ mlx_flush_event.c \
+ mlx_string_put.c \
+ mlx_new_image.c \
+ mlx_get_data_addr.c \
+ mlx_put_image_to_window.c \
+ mlx_get_color_value.c \
+ mlx_clear_window.c \
+ mlx_xpm.c \
+ mlx_int_str_to_wordtab.c \
+ mlx_destroy_window.c \
+ mlx_int_param_event.c \
+ mlx_int_set_win_event_mask.c \
+ mlx_hook.c \
+ mlx_rgb.c \
+ mlx_destroy_image.c
+
+OBJ = $(SRC:.c=.o)
+CFLAGS = -O3 -I$(INC)
+
+DESTDIR = /usr/local
+
+all: $(NAME) $(DOCP)
+
+$(NAME): $(OBJ)
+ ar -r $(NAME) $(OBJ)
+ ranlib $(NAME)
+
+do_cp:
+ cp $(NAME) libmlx_$(HT).a
+
+clean:
+ rm -f $(OBJ) $(NAME) *~ core *.core
+
+install:
+ mkdir -p $(DESTDIR)/lib && cp $(NAME) $(DESTDIR)/lib
+ mkdir -p $(DESTDIR)/lib/pkgconfig && cp mlx.pc $(DESTDIR)/lib/pkgconfig
+ mkdir -p $(DESTDIR)/include && cp mlx.h $(DESTDIR)/include
+ mkdir -p $(DESTDIR)/man/man3 && cp man/man3/*.3 $(DESTDIR)/man/man3
diff --git a/minilibx/README b/minilibx/README
new file mode 100755
index 0000000..7adcb2f
--- /dev/null
+++ b/minilibx/README
@@ -0,0 +1,42 @@
+
+This is the MinilibX, a simple X-Window (X11R6) programming API
+in C, designed for students, suitable for X-beginners.
+
+
+Contents
+
+ - source code in C to create the mlx library
+ - man pages (in man/ directory)
+ - a test program (in test/ directory) is built
+ with the library
+ - a public include file mlx.h
+ - a tiny configure script to generate an appropriate Makefile.gen
+
+
+Requirements
+
+ - MinilibX only support TrueColor visual type (8,15,16,24 or 32 bits depth)
+ - gcc
+ - X11 include files
+ - XShm extension must be present
+
+
+Compile MinilibX
+
+ - run ./configure or make
+ both will make a few tests, create Makefile.gen
+ and then automatically run make on this generated Makefile.gen .
+ libmlx.a and libmlx_$(HOSTTYPE).a are created.
+ test/mlx-test binary is also created.
+
+
+Install MinilibX
+
+ - no installation script is provided. You may want to install
+ - libmlx.a and/or libmlx_$(HOSTTYPE).a in /usr/X11/lib or /usr/local/lib
+ - mlx.h in /usr/X11/include or /usr/local/include
+ - man/man3/mlx*.1 in /usr/X11/man/man3 or /usr/local/man/man3
+ - or make DESTDIR=/usr/local install
+
+
+ Olivier CROUZET - 2014-01-06 -
diff --git a/minilibx/README.md b/minilibx/README.md
new file mode 100644
index 0000000..f75e806
--- /dev/null
+++ b/minilibx/README.md
@@ -0,0 +1,131 @@
+# minilibx_linux
+
+This is a mirror of the minilibx library.
+
+Ubuntu: You need to install Xlib.h (pd-maxlib) and XShm.h (libxtst-dev) libraries to make it work on a classic 18.04/18.10 installation.
+
+```
+# sudo apt install pd-maxlib
+# sudo apt install libxtst-dev
+
+```
+
+## Original minilibx for Linux readme
+
+## What is minilibx?
+
+Minilibx is a very basic graphical library writting in C used in
+[42](https://42.fr) (also exported in US in the Silicon Valley, see [42
+US](https://42.us.org)) and in [Epitech](http://www.epitech.eu/) for infography
+project such like *fdf* and *Raytracer*.
+
+You can find a mirror to the native version for Mac OSX
+[here](https://github.com/dannywillems/minilix-mac-osx).
+
+## Compile
+
+1. Add a variable named PKG_CONFIG_PATH containing the path to the minilibx
+directory.
+2. Compile and install with
+```
+make && sudo make install
+```
+
+## Tutorials
+
+Here some tutorials and articles (in French):
+* [Installation and basic usage](https://achedeuzot.me/2014/12/20/installer-la-minilibx/)
+* [Manual](http://thomas.tissotdupont.free.fr/MinilibX%20Manual/)
+
+## Related projects
+
+* [Binding OCaml](https://github.com/dannywillems/ocaml-minilibx)
+
+## Licence
+
+Licence BSD: Copyright Olivier Crouzet - 2014
+
+Minilibx
+======================================
+
+Ce dépot est un mirroir pour la librairie graphique *minilibx*.
+
+## Qu'est-ce que minilibx ?
+
+Minilibx est une librairie graphique très basique écrite en C utilisée à
+[42](https://42.fr) (aussi exporté aux USA dans la Silicon Valley, voir [42
+US](https://42.us.org)) et à [Epitech](http://www.epitech.eu)
+
+Vous pouvez trouver un mirroir pour la version native pour Mac OSX
+[ici](https://github.com/dannywillems/minilibx-mac-osx).
+
+## Compiler
+
+1. Ajouter une variable PKG_CONFIG_PATH contenant le chemin vers le dossier de
+ la minilibx.
+2. Compilation and installation avec
+```
+make && sudo make install
+```
+
+## Tutoriels
+
+Ici des articles et des tutoriels (en français):
+
+* [Installation et utilisation basique](https://achedeuzot.me/2014/12/20/installer-la-minilibx/)
+* [Manuel](http://thomas.tissotdupont.free.fr/MinilibX%20Manual/)
+
+## Projets connexes
+
+* [Binding OCaml](https://github.com/dannywillems/ocaml-minilibx)
+
+## License
+
+License BSD: Copyright Olivier Crouzet - 2014
+
+
+## Original README
+
+
+This is the MinilibX, a simple X-Window (X11R6) programming API
+in C, designed for students, suitable for X-beginners.
+
+
+Contents
+
+ - source code in C to create the mlx library
+ - man pages (in man/ directory)
+ - a test program (in test/ directory) is built
+ with the library
+ - a public include file mlx.h
+ - a tiny configure script to generate an appropriate Makefile.gen
+
+
+Requirements
+
+ - MinilibX only support TrueColor visual type (8,15,16,24 or 32 bits depth)
+ - gcc
+ - X11 include files
+ - XShm extension must be present
+
+
+Compile MinilibX
+
+ - run ./configure or make
+ both will make a few tests, create Makefile.gen
+ and then automatically run make on this generated Makefile.gen .
+ libmlx.a and libmlx_$(HOSTTYPE).a are created.
+ test/mlx-test binary is also created.
+
+
+Install MinilibX
+
+ - no installation script is provided. You may want to install
+ - libmlx.a and/or libmlx_$(HOSTTYPE).a in /usr/X11/lib or /usr/local/lib
+ - mlx.h in /usr/X11/include or /usr/local/include
+ - man/man3/mlx*.1 in /usr/X11/man/man3 or /usr/local/man/man3
+ - or make DESTDIR=/usr/local install
+
+## Credits
+
+ Olivier CROUZET - 2014-01-06 -
diff --git a/minilibx/configure b/minilibx/configure
new file mode 100755
index 0000000..8366568
--- /dev/null
+++ b/minilibx/configure
@@ -0,0 +1,95 @@
+#!/bin/sh
+
+
+if [ -n "$1" -a "$1" = "--help" ] ; then
+ echo "Usage : $0\n Auto-configure and make MinilibX"
+ exit
+fi
+
+
+conf_inc=NO
+
+for inc in \
+ /usr/X11/include \
+ /usr/X11R6/include \
+ /usr/X11R5/include \
+ /usr/X11R4/include \
+ \
+ /usr/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/athena/include \
+ /usr/local/x11r5/include \
+ /usr/lpp/Xamples/include \
+ \
+ /usr/openwin/include \
+ /usr/openwin/share/include
+ do
+ if [ -f "$inc/X11/Xlib.h" -a -f "$inc/X11/extensions/XShm.h" ]; then
+ conf_inc=$inc
+ break
+ fi
+ done
+
+
+if [ "$conf_inc" = "NO" ]; then
+ echo "Can't find a suitable X11 include directory...."
+ exit
+else
+ echo "X11 include dir : $conf_inc"
+fi
+
+if [ -z "$HOSTTYPE" ]; then
+ conf_ht=`uname -s`
+else
+ conf_ht=$HOSTTYPE
+fi
+
+if [ -z "$conf_ht" ]; then
+ conf_docp=""
+else
+ conf_docp="do_cp"
+ echo "lib_$conf_ht generation"
+fi
+
+
+/bin/echo "INC=$conf_inc" > Makefile.gen
+/bin/echo "HT=$conf_ht" >> Makefile.gen
+/bin/echo "DOCP=$conf_docp" >> Makefile.gen
+cat Makefile.mk | grep -v %%%% >> Makefile.gen
+
+/bin/echo "INC=$conf_inc" > test/Makefile.gen
+/bin/echo "HT=$conf_ht" >> test/Makefile.gen
+/bin/echo "DOCP=$conf_docp" >> test/Makefile.gen
+cat test/Makefile.mk | grep -v %%%% >> test/Makefile.gen
+
+
+if [ -n "$1" -a "$1" = "clean" ] ; then
+ echo "Now make it clean."
+ make -f Makefile.gen clean
+ (cd test ; make -f Makefile.gen clean)
+ exit
+fi
+
+echo "Now make it."
+make -f Makefile.gen all
+#(cd test ; make -f Makefile.gen all )
diff --git a/minilibx/font.c b/minilibx/font.c
deleted file mode 100644
index 656d248..0000000
--- a/minilibx/font.c
+++ /dev/null
@@ -1,3525 +0,0 @@
-/* GIMP RGBA C-Source image dump (font.c) */
-
-static const struct {
- unsigned int width;
- unsigned int height;
- unsigned int bytes_per_pixel; /* 2:RGB16, 3:RGB, 4:RGBA */
- unsigned char pixel_data[1140 * 20 * 4 + 1];
-} font_atlas = {
- 1140, 20, 4,
- "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
- "\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0"
- "\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0"
- "\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0"
- "\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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"
- "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
- "\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0"
- "\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0"
- "\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0"
- "\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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"
- "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
- "\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0"
- "\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0"
- "\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0"
- "\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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"
- "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
- "\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0"
- "\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0"
- "\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0"
- "\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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"
- "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
- "\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0"
- "\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0"
- "\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0"
- "\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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"
- "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
- "\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0"
- "\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0"
- "\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0"
- "\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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"
- "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
- "\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0"
- "\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0"
- "\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0"
- "\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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"
- "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
- "\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0"
- "\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0"
- "\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0"
- "\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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"
- "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
- "\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0"
- "\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0"
- "\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0"
- "\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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"
- "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
- "\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0"
- "\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0"
- "\0\0\0\0\0\0\0\0\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\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\0\0\0\0"