├── Makefile ├── inc ├── config.h ├── fdf.h └── libft.h ├── libft ├── Makefile ├── ft_split.c ├── ft_strchr.c ├── ft_strdup.c ├── ft_strjoin.c ├── ft_strlen.c ├── ft_substr.c └── get_next_line.c ├── libmlx_Linux.a ├── maps ├── 42.fdf └── map.fdf ├── src ├── draw.c ├── event_hooks.c ├── init.c ├── main.c ├── parse_map.c ├── put_pixel.c ├── transform_ref.c └── utils.c └── test ├── 10-2.fdf ├── 10-70.fdf ├── 100-6.fdf ├── 20-60.fdf ├── 42.fdf ├── 50-4.fdf ├── basictest.fdf ├── elem-col.fdf ├── elem-fract.fdf ├── elem.fdf ├── elem2.fdf ├── fdf ├── julia.fdf ├── mars.fdf ├── pentenegpos.fdf ├── plat.fdf ├── pnp_flat.fdf ├── pylone.fdf ├── pyra.fdf ├── pyramide.fdf ├── t1.fdf └── t2.fdf /Makefile: -------------------------------------------------------------------------------- 1 | # **************************************************************************** # 2 | # # 3 | # ::: :::::::: # 4 | # Makefile :+: :+: :+: # 5 | # +:+ +:+ +:+ # 6 | # By: hahadiou +#+ +:+ +#+ # 7 | # +#+#+#+#+#+ +#+ # 8 | # Created: 2023/01/11 11:14:53 by hahadiou #+# #+# # 9 | # Updated: 2023/01/21 18:52:39 by hahadiou ### ########.fr # 10 | # # 11 | # **************************************************************************** # 12 | 13 | CC = cc 14 | 15 | FLAGS = -Wall -Wextra -Werror 16 | 17 | NAME = fdf 18 | 19 | INC = inc 20 | LIBFT_PATH = libft 21 | SRC_PATH = src 22 | OBJ_PATH = obj 23 | 24 | SRCS = event_hooks.c \ 25 | init.c \ 26 | main.c \ 27 | put_pixel.c \ 28 | transform_ref.c \ 29 | utils.c \ 30 | parse_map.c \ 31 | get_next_line.c \ 32 | #draw.c 33 | 34 | SRC = $(addprefix $(SRC_PATH)/,$(SRCS)) 35 | OBJ = $(addprefix $(OBJ_PATH)/,$(SRCS:.c=.o)) 36 | 37 | NOC = \033[0m 38 | RED = \033[1;31m 39 | GREEN = \033[1;32m 40 | YELLOW = \033[1;33m 41 | BLUE = \033[1;34m 42 | WHITE = \033[1;37m 43 | 44 | all: $(NAME) 45 | 46 | 47 | $(NAME): $(OBJ) 48 | @echo "$(YELLOW)Compiling Libft...$(NOC)" 49 | @make -sC $(LIBFT_PATH) 50 | @echo "$(YELLOW)Compiling FDF...$(NOC)" 51 | @$(CC) $(OBJ) -Lmlx_linux -lmlx_Linux -L/usr/lib -Imlx_linux -lXext -lX11 -lm -lz -o $(NAME) 52 | @echo "$(GREEN)$@$(NOC)" 53 | 54 | $(OBJ_PATH)/%.o: $(SRC_PATH)/%.c $(INC)/$(NAME).h 55 | @mkdir -p obj 56 | @$(CC) -Wall -Wextra -Werror -I/usr/include -Imlx_linux -O3 -c $< -o $@ 57 | 58 | run : 59 | make re && ./fdf 60 | clean: 61 | @echo "$(RED)Deleting FDF OBJS ✔️ $(NOC)" 62 | @make clean -sC $(LIBFT_PATH) 63 | @rm -rf $(OBJ_PATH) 64 | @rm -rf $(OBJB_PATH) 65 | 66 | fclean: clean 67 | @echo "$(RED)Deleting FDF Binary$(NOC)" 68 | @make fclean -sC $(LIBFT_PATH) 69 | @rm -f $(NAME) ${NAMEB} 70 | 71 | re: fclean all 72 | 73 | 74 | .PHONY: all clean fclean re 75 | -------------------------------------------------------------------------------- /inc/config.h: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* config.h :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2023/01/02 12:56:01 by hahadiou #+# #+# */ 9 | /* Updated: 2023/01/22 15:08:55 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #ifndef CONFIG_H 14 | # define CONFIG_H 15 | 16 | # define W 1500 17 | # define H 1000 18 | # define TITLE "FDF" 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /inc/fdf.h: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* fdf.h :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2022/12/22 14:25:35 by hahadiou #+# #+# */ 9 | /* Updated: 2023/01/21 19:55:24 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #ifndef FDF_H 14 | # define FDF_H 15 | 16 | # include "config.h" 17 | # include "libft.h" 18 | # include 19 | # include 20 | # include "../minilibx-linux/mlx.h" 21 | # include 22 | # include 23 | # include 24 | # include 25 | 26 | # define K_ESC 53 27 | # define K_A 0 28 | # define K_S 1 29 | # define K_D 2 30 | 31 | enum 32 | { 33 | ON_KEYDOWN = 2, 34 | ON_MOUSEDOWN = 4, 35 | ON_MOUSEUP = 5, 36 | ON_MOUSEMOVE = 6, 37 | ON_EXPOSE = 12, 38 | ON_DESTROY = 17 39 | }; 40 | 41 | typedef struct s_data t_data; 42 | typedef struct s_main t_main; 43 | typedef struct s_canvas t_canvas; 44 | typedef struct s_point t_point; 45 | typedef struct s_cam t_cam; 46 | typedef struct s_map t_map; 47 | typedef struct s_vectors t_vectors; 48 | 49 | struct s_point 50 | { 51 | double x; 52 | double y; 53 | double z; 54 | }; 55 | 56 | struct s_vectors 57 | { 58 | t_point ex; 59 | t_point ey; 60 | t_point ez; 61 | }; 62 | 63 | struct s_canvas 64 | { 65 | t_point p; 66 | unsigned int w; 67 | unsigned int h; 68 | void *img; 69 | char *addr; 70 | int bpp; 71 | int line_len; 72 | int endian; 73 | }; 74 | 75 | struct s_map 76 | { 77 | size_t w; 78 | size_t h; 79 | char **coords; 80 | }; 81 | 82 | struct s_cam 83 | { 84 | float mu; 85 | float alpha; 86 | float d; 87 | float fx; 88 | float fy; 89 | t_point tr; 90 | t_point ro; 91 | t_vectors v; 92 | t_point **coords; 93 | }; 94 | 95 | struct s_main 96 | { 97 | t_canvas canvas; 98 | int x_pos; 99 | void (*draw_on_screen)(t_data *); 100 | char *map_path; 101 | t_cam cam; 102 | t_map map; 103 | }; 104 | 105 | struct s_data 106 | { 107 | t_point *p; 108 | void *mlx; 109 | void *win; 110 | t_main main; 111 | }; 112 | 113 | void init(t_data *d, int ac, char **av); 114 | void start_fdf(t_data *data); 115 | void paint_pxl(t_canvas *canvas, int x, int y, 116 | int color); 117 | void register_events(t_data *data); 118 | t_map parse_map(char *map_path); 119 | t_vectors calculate_vectors(t_data *d); 120 | void register_events(t_data *data); 121 | int is_valid_map(char *map_path, t_map *map); 122 | void build_map(char *map_path, t_map *map); 123 | t_map parse_map(char *map_path); 124 | t_point transform_point(t_cam *cam, t_point p); 125 | void print_point(t_point p); 126 | //void draw_line(t_data *data, t_point p1, t_point p2); 127 | 128 | #endif 129 | -------------------------------------------------------------------------------- /inc/libft.h: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* libft.h :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2022/10/03 18:38:40 by hahadiou #+# #+# */ 9 | /* Updated: 2023/01/20 15:47:28 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #ifndef LIBFT_H 14 | # define LIBFT_H 15 | 16 | # include 17 | # include 18 | # include 19 | # include 20 | # include 21 | # include 22 | # include 23 | 24 | # ifdef BUFFER_SIZE 25 | # if BUFFER_SIZE < 0 26 | # undef BUFFER_SIZE 27 | # define BUFFER_SIZE 0 28 | # endif 29 | # endif 30 | 31 | # ifndef BUFFER_SIZE 32 | # define BUFFER_SIZE 10 33 | # endif 34 | 35 | typedef struct s_buffer t_line; 36 | typedef struct s_buffer t_read; 37 | typedef struct s_list t_list; 38 | 39 | struct s_buffer 40 | { 41 | char *buf; 42 | size_t pos; 43 | size_t size; 44 | }; 45 | 46 | struct s_list 47 | { 48 | void *content; 49 | struct s_list *next; 50 | }; 51 | 52 | char *get_next_line(int fd); 53 | void *ft_memcpy(void *dst, const void *src, size_t n); 54 | size_t ft_strlen(const char *s); 55 | size_t ft_strlcpy(char *dst, const char *src, size_t dstsize); 56 | size_t ft_strlcat(char *dst, const char *src, size_t dstsize); 57 | void *ft_memcpy(void *dst, const void *src, size_t n); 58 | void *ft_memmove(void *dst, const void *src, size_t len); 59 | void *ft_memmove(void *dst, const void *src, size_t len); 60 | void *ft_calloc(size_t count, size_t size); 61 | char *ft_strdup(const char *s1); 62 | char *ft_strchr(const char *s, int c); 63 | char *ft_strrchr(const char *s, int c); 64 | char *ft_substr(char const *s, unsigned int start, 65 | size_t len); 66 | char *ft_strjoin(char const *s1, char const *s2); 67 | char **ft_split(char const *s, char c); 68 | char *ft_strchr(const char *s, int c); 69 | 70 | #endif 71 | -------------------------------------------------------------------------------- /libft/Makefile: -------------------------------------------------------------------------------- 1 | NAME = libft.a 2 | 3 | CC = cc 4 | 5 | CFLAGS = -Wall -Wextra -Werror 6 | 7 | INC = ./libft.h 8 | 9 | SRCS = ft_split.c \ 10 | ft_strchr.c \ 11 | ft_strdup.c \ 12 | ft_strjoin.c \ 13 | ft_strlen.c \ 14 | ft_substr.c \ 15 | get_next_line.c \ 16 | 17 | OBJS = $(SRCS:.c=.o) 18 | 19 | .c.o: 20 | @${CC} ${FLAGS} -c $< -o ${<:.c=.o} 21 | 22 | CLR_RMV = \033[0m 23 | RED = \033[1;31m 24 | GREEN = \033[1;32m 25 | YELLOW = \033[1;33m 26 | BLUE = \033[1;34m 27 | CYAN = \033[1;36m 28 | RM = rm -f 29 | 30 | ${NAME}: ${OBJS} 31 | @ar -rc $(NAME) $(OBJS) 32 | 33 | all: ${NAME} 34 | 35 | clean: 36 | @ ${RM} ${OBJS} 37 | 38 | fclean: clean 39 | @ ${RM} ${NAME} 40 | 41 | re: fclean all 42 | 43 | .PHONY: all clean fclean re 44 | 45 | 46 | -------------------------------------------------------------------------------- /libft/ft_split.c: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* ft_split.c :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2022/09/29 19:59:22 by hahadiou #+# #+# */ 9 | /* Updated: 2023/01/13 17:42:55 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #include "../inc/libft.h" 14 | 15 | char *ft_substr(char const *s, unsigned int start, size_t len) 16 | { 17 | size_t i; 18 | char *str; 19 | 20 | i = -1; 21 | if (!s) 22 | return (0); 23 | if (start >= ft_strlen(s)) 24 | { 25 | return (ft_calloc(1, 1)); 26 | } 27 | str = malloc(len + 1); 28 | if (!str) 29 | return (0); 30 | while (++i < len) 31 | str[i] = s[start + i]; 32 | str[i] = '\0'; 33 | return (str); 34 | } 35 | 36 | static int ft_countword(char const *s, char c) 37 | { 38 | int count; 39 | int i; 40 | 41 | count = 0; 42 | i = 0; 43 | while (s[i]) 44 | { 45 | while (s[i] == c) 46 | i++; 47 | if (s[i]) 48 | count++; 49 | while (s[i] != c && s[i]) 50 | i++; 51 | } 52 | return (count); 53 | } 54 | 55 | char **ft_split(char const *s, char c) 56 | { 57 | char **strs; 58 | int word_len; 59 | int i; 60 | 61 | if (!s) 62 | return (0); 63 | strs = (char **)malloc(sizeof(char *) * (ft_countword(s, c) + 1)); 64 | if (!strs) 65 | return (0); 66 | i = 0; 67 | while (*s) 68 | { 69 | while (*s == c) 70 | ++s; 71 | if (*s) 72 | { 73 | word_len = strchr(s, c) - s; 74 | if (!strchr(s, c)) 75 | word_len = strlen(s); 76 | strs[i++] = ft_substr(s, 0, word_len); 77 | s += word_len; 78 | } 79 | } 80 | strs[i] = 0; 81 | return (strs); 82 | } 83 | -------------------------------------------------------------------------------- /libft/ft_strchr.c: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* ft_strchr.c :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2022/09/29 15:06:41 by hahadiou #+# #+# */ 9 | /* Updated: 2023/01/13 14:34:03 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #include "../inc/libft.h" 14 | 15 | char *ft_strchr(const char *s, int c) 16 | { 17 | int i; 18 | 19 | i = 0; 20 | while (s[i] && s[i] != (char)c) 21 | i++; 22 | if (s[i] == (char)c) 23 | return ((char *)s + i); 24 | return (NULL); 25 | } 26 | -------------------------------------------------------------------------------- /libft/ft_strdup.c: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* ft_strdup.c :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2022/09/29 15:41:31 by hahadiou #+# #+# */ 9 | /* Updated: 2023/01/13 14:34:05 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #include "../inc/libft.h" 14 | 15 | char *ft_strdup(const char *s1) 16 | { 17 | void *s2; 18 | size_t len; 19 | 20 | len = ft_strlen(s1) + 1; 21 | s2 = malloc(len); 22 | if (!s2) 23 | return (0); 24 | ft_memcpy(s2, s1, len); 25 | return (s2); 26 | } 27 | -------------------------------------------------------------------------------- /libft/ft_strjoin.c: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* ft_strjoin.c :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2022/09/29 15:41:39 by hahadiou #+# #+# */ 9 | /* Updated: 2023/01/13 14:34:08 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #include "../inc/libft.h" 14 | 15 | char *ft_strjoin(char const *s1, char const *s2) 16 | { 17 | char *new; 18 | int len1; 19 | int len2; 20 | int i; 21 | int j; 22 | 23 | if (!s1 || !s2) 24 | return (NULL); 25 | i = -1; 26 | len1 = ft_strlen(s1); 27 | len2 = ft_strlen(s2); 28 | new = malloc(len1 + len2 + 1); 29 | if (!new) 30 | return (NULL); 31 | while (++i < len1) 32 | new[i] = s1[i]; 33 | j = -1; 34 | while (++j < len2) 35 | { 36 | new[i] = s2[j]; 37 | i++; 38 | } 39 | new[i] = '\0'; 40 | return (new); 41 | } 42 | -------------------------------------------------------------------------------- /libft/ft_strlen.c: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* ft_strlen.c :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2022/09/29 15:42:03 by hahadiou #+# #+# */ 9 | /* Updated: 2023/01/13 14:34:10 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #include "../inc/libft.h" 14 | 15 | size_t ft_strlen(const char *s) 16 | { 17 | size_t i; 18 | 19 | i = 0; 20 | while (s[i]) 21 | { 22 | i++; 23 | } 24 | return (i); 25 | } 26 | -------------------------------------------------------------------------------- /libft/ft_substr.c: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* ft_substr.c :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2022/09/29 18:13:53 by hahadiou #+# #+# */ 9 | /* Updated: 2023/01/13 14:34:11 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #include "../inc/libft.h" 14 | 15 | char *ft_substr(char const *s, unsigned int start, size_t len) 16 | { 17 | size_t i; 18 | char *str; 19 | 20 | i = -1; 21 | if (!s) 22 | return (0); 23 | if (start >= ft_strlen(s)) 24 | { 25 | return (ft_calloc(1, 1)); 26 | } 27 | str = malloc(len + 1); 28 | if (!str) 29 | return (0); 30 | while (++i < len) 31 | str[i] = s[start + i]; 32 | str[i] = '\0'; 33 | return (str); 34 | } 35 | -------------------------------------------------------------------------------- /libft/get_next_line.c: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* get_next_line.c :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2022/10/15 21:41:47 by hahadiou #+# #+# */ 9 | /* Updated: 2023/01/21 15:03:10 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #include "../inc/libft.h" 14 | 15 | static void free_buffer(t_read *res) 16 | { 17 | if (res->buf != NULL) 18 | { 19 | free(res->buf); 20 | res->buf = NULL; 21 | } 22 | } 23 | 24 | static char *ft_realloc(t_line *line) 25 | { 26 | char *new_buf; 27 | size_t new_size; 28 | 29 | new_size = line->size + 1; 30 | new_buf = malloc((new_size + 1) * sizeof(char)); 31 | if (line->buf) 32 | { 33 | if (new_buf) 34 | memcpy(new_buf, line->buf, line->size); 35 | free(line->buf); 36 | } 37 | line->buf = new_buf; 38 | line->size = new_size; 39 | return (new_buf); 40 | } 41 | 42 | static int read_file(int fd, t_read *reserve) 43 | { 44 | if (!reserve->buf) 45 | reserve->buf = malloc(BUFFER_SIZE); 46 | if (reserve->pos >= reserve->size) 47 | { 48 | reserve->size = read(fd, reserve->buf, BUFFER_SIZE); 49 | if (reserve->size < 1) 50 | return (0); 51 | reserve->pos = 0; 52 | } 53 | return (reserve->buf[reserve->pos++]); 54 | } 55 | 56 | static int put_line(t_line *line, char c) 57 | { 58 | if (line->pos >= line->size) 59 | { 60 | if (ft_realloc(line) == NULL) 61 | return (0); 62 | } 63 | line->buf[line->pos++] = c; 64 | if (c == '\n') 65 | return (0); 66 | return (1); 67 | } 68 | 69 | char *get_next_line(int fd) 70 | { 71 | int c; 72 | t_line line; 73 | static t_read reserve; 74 | 75 | if (fd < 0 || read(fd, line.buf, 0) < 0) 76 | return (0); 77 | line.buf = NULL; 78 | line.pos = 0; 79 | line.size = 0; 80 | while (1) 81 | { 82 | c = read_file(fd, &reserve); 83 | if (c == 0) 84 | break ; 85 | if (put_line(&line, c) == 0) 86 | break ; 87 | } 88 | if (line.pos == 0) 89 | free_buffer(&reserve); 90 | else 91 | line.buf[line.pos] = 0; 92 | return (line.buf); 93 | } 94 | -------------------------------------------------------------------------------- /libmlx_Linux.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/genesis0x/FDF/ca45b331e2c9b757d9d859d7308221322e885012/libmlx_Linux.a -------------------------------------------------------------------------------- /maps/42.fdf: -------------------------------------------------------------------------------- 1 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | 0 0 10 10 0 0 10 10 0 0 0 10 10 10 10 10 0 0 0 4 | 0 0 10 10 0 0 10 10 0 0 0 0 0 0 0 10 10 0 0 5 | 0 0 10 10 0 0 10 10 0 0 0 0 0 0 0 10 10 0 0 6 | 0 0 10 10 10 10 10 10 0 0 0 0 10 10 10 10 0 0 0 7 | 0 0 0 10 10 10 10 10 0 0 0 10 10 0 0 0 0 0 0 8 | 0 0 0 0 0 0 10 10 0 0 0 10 10 0 0 0 0 0 0 9 | 0 0 0 0 0 0 10 10 0 0 0 10 10 10 10 10 10 0 0 10 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -------------------------------------------------------------------------------- /maps/map.fdf: -------------------------------------------------------------------------------- 1 | 0 0 0 2 | 0 0 0 3 | 0 0 0 4 | -------------------------------------------------------------------------------- /src/draw.c: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* draw.c :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2022/12/22 19:23:54 by hahadiou #+# #+# */ 9 | /* Updated: 2023/01/22 15:10:33 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #include "../inc/fdf.h" 14 | 15 | void init_canvas(void *mlx, t_canvas *canvas) 16 | { 17 | canvas->img = mlx_new_image(mlx, 1000, 1000); 18 | canvas->addr = mlx_get_data_addr(canvas->img, &canvas->bpp, &canvas->line_len, &canvas->endian); 19 | } 20 | 21 | static void init_vars(t_point *p1, t_point *p2, t_point *dir, t_point *dis) 22 | { 23 | p1.x = 0 * (begin.x < 0) + ((W - 1) * (begin.x >= W) + begin.x * (begin.x <= W)); 24 | p1.y = 0 * (begin.y < 0) + ((H - 1) * (begin.y >= H) + begin.y * (begin.y <= H)); 25 | p2.x = 0 * (end.x < 0) + ((W - 1) * (end.x >= W) + end.x * (end.x <= W)); 26 | p2.y = 0 * (end.y < 0) + ((H - 1) * (end.y >= H) + end.y * (end.y <= H)); 27 | dir.x = 1 * (p1.x < p2.x) + -1 * (p1.x > p2.x); 28 | dir.y = 1 * (p1.y < p2.y) + -1 * (p1.y > p2.y); 29 | dis.x = abs(p2.x - p1.x); 30 | dis.y = abs(p2.y - p1.y); 31 | } 32 | 33 | void draw_line(t_data *data, t_point begin, t_point end) 34 | { 35 | t_point p1; 36 | t_point p2; 37 | t_point dir; 38 | t_point dis; 39 | int err; 40 | int e2; 41 | 42 | init_canvas(data->mlx, &data->main.canvas); 43 | init_vars(&p1, &p2, &dir, &dis); 44 | // p1.x = 0 * (begin.x < 0) + ((W - 1) * (begin.x >= W) + begin.x * (begin.x <= W)); 45 | // p1.y = 0 * (begin.y < 0) + ((H - 1) * (begin.y >= H) + begin.y * (begin.y <= H)); 46 | // p2.x = 0 * (end.x < 0) + ((W - 1) * (end.x >= W) + end.x * (end.x <= W)); 47 | // p2.y = 0 * (end.y < 0) + ((H - 1) * (end.y >= H) + end.y * (end.y <= H)); 48 | // dir.x = 1 * (p1.x < p2.x) + -1 * (p1.x > p2.x); 49 | // dir.y = 1 * (p1.y < p2.y) + -1 * (p1.y > p2.y); 50 | // dis.x = abs(p2.x - p1.x); 51 | // dis.y = abs(p2.y - p1.y); 52 | err = (dis.x * (dis.x > dis.y) + -dis.y * (dis.x < dis.y)) / 2; 53 | while (1) 54 | { 55 | paint_pxl(&data->main.canvas, p1.x, p1.y, 0xFFFFFF); 56 | if (p1.x == p2.x && p1.y == p2.y) 57 | break ; 58 | e2 = err; 59 | if (e2 > -dis.x) 60 | { 61 | err -= dis.y; 62 | p1.x += dir.x; 63 | } 64 | if (e2 < dis.y) 65 | { 66 | err += dis.x; 67 | p1.y += dir.y; 68 | } 69 | } 70 | mlx_put_image_to_window(data->mlx, data->win, data->main.canvas.img, 0, 0); 71 | mlx_loop(data->mlx); 72 | } 73 | 74 | 75 | int key_handler(int key, t_data *data) 76 | { 77 | printf("key: %d\n", key); 78 | if (key == K_ESC) 79 | { 80 | mlx_destroy_window(data->mlx, data->win); 81 | exit(0); 82 | } 83 | return (0); 84 | } 85 | 86 | int main(int ac, char **av) 87 | { 88 | t_data data; 89 | 90 | (void)ac; 91 | (void)av; 92 | data.mlx = mlx_init(); 93 | data.win = mlx_new_window(data.mlx, 1000, 1000, "Draw Line"); 94 | mlx_hook(data.win, ON_KEYDOWN, 0, key_handler, &data); 95 | draw_line(&data, 1560, 1870, 1600, 1600, 1000, 1000); 96 | // t_point p0 = {.x=500, .y=500}; 97 | // t_point p1 = {.x=1000, .y=0}; 98 | // draw_line(&data, p0, p1, 0x00FF00); 99 | // p0.x=500, p1.y=200; 100 | // p1.x=0, p1.y=500; 101 | // draw_line(&data, p0, p1, 0x00FF00); 102 | //mlx_loop(data.mlx); 103 | return (0); 104 | } 105 | -------------------------------------------------------------------------------- /src/event_hooks.c: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* event_hooks.c :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2022/12/31 15:58:23 by hahadiou #+# #+# */ 9 | /* Updated: 2023/01/21 19:48:25 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #include "../inc/fdf.h" 14 | 15 | int key_handler(int key, t_data *data) 16 | { 17 | printf("key: %d\n", key); 18 | if (key == K_ESC) 19 | { 20 | mlx_destroy_window(data->mlx, data->win); 21 | exit(0); 22 | } 23 | if (key == K_A) // y translation 24 | { 25 | data->main.cam.tr.y -= 1; 26 | printf("translate y : %f\n", data->main.cam.tr.y); 27 | start_fdf(data); 28 | } 29 | if (key == K_S) //rotation 30 | { 31 | data->main.cam.ro.y += 0.05; 32 | printf("angle => %f\n", data->main.cam.ro.y); 33 | start_fdf(data); 34 | } 35 | if (key == K_D) // x translation 36 | { 37 | data->main.cam.tr.x += 1; 38 | start_fdf(data); 39 | } 40 | return (0); 41 | } 42 | 43 | /*int mouse_hook(int key, t_data *data) 44 | { 45 | printf("key: %d\n", key); 46 | if (key == 1) 47 | { 48 | data->main.cam.ro.z += 0.005; 49 | printf("angle => %f\n", data->main.cam.ro.z); 50 | start_fdf(data); 51 | } 52 | return (0); 53 | }*/ 54 | 55 | int close_window(t_data *data) 56 | { 57 | mlx_destroy_window(data->mlx, data->win); 58 | exit(0); 59 | } 60 | 61 | void register_events(t_data *data) 62 | { 63 | //mlx_mouse_hook(data->win, mouse_hook, &data); 64 | mlx_hook(data->win, ON_KEYDOWN, 0, key_handler, data); 65 | mlx_hook(data->win, ON_DESTROY, 0, close_window, data); 66 | } 67 | -------------------------------------------------------------------------------- /src/init.c: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* init.c :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2022/12/27 22:42:25 by hahadiou #+# #+# */ 9 | /* Updated: 2023/01/21 19:53:34 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #include "../inc/fdf.h" 14 | 15 | void init_canvas(void *mlx, t_canvas *c) 16 | { 17 | c->img = mlx_new_image(mlx, c->w, c->h); 18 | // check if image is not NULL 19 | c->addr = mlx_get_data_addr(c->img, &c->bpp, &c->line_len, &c->endian); 20 | } 21 | 22 | int init_map(t_data *data) 23 | { 24 | data->main.map_path = "maps/map.fdf"; 25 | data->main.map = parse_map(data->main.map_path); 26 | if (data->main.map.coords) 27 | return (0); 28 | return (1); 29 | } 30 | 31 | int init_cam_coords(t_data *data) 32 | { 33 | t_cam *cam; 34 | t_map *map; 35 | size_t x; 36 | 37 | //t_point p; 38 | map = &data->main.map; 39 | cam = &data->main.cam; 40 | x = -1; 41 | cam->coords = malloc(map->h * sizeof(t_point *)); 42 | if (cam->coords == NULL) 43 | return (1); 44 | while (++x < map->h) 45 | { 46 | cam->coords[x] = malloc(map->w * sizeof(t_point)); 47 | if (cam->coords[x] == NULL) 48 | { 49 | // free up to x and return (null); 50 | return (1); 51 | } 52 | } 53 | return (0); 54 | } 55 | 56 | void init(t_data *data, int ac, char **av) 57 | { 58 | (void)av; 59 | (void)ac; 60 | printf("init.\n"); 61 | if (init_map(data)) 62 | { 63 | // map error; 64 | exit(1); 65 | } 66 | if (init_cam_coords(data)) 67 | { 68 | //free(map) 69 | //printf("Allocation Failed\n"); 70 | exit(1); 71 | } 72 | data->mlx = mlx_init(); 73 | if (!data->mlx) 74 | exit(1); 75 | data->win = mlx_new_window(data->mlx, W, H, TITLE); 76 | if (!data->win) 77 | { 78 | free(data->mlx); 79 | exit(1); 80 | } 81 | data->main.canvas.w = W; 82 | data->main.canvas.h = H; 83 | init_canvas(data->mlx, &data->main.canvas); 84 | data->main.cam.tr = (t_point){.x = 2, .y = 1, .z = -2}; 85 | data->main.cam.ro = (t_point){.x = 0, .y = M_PI_2, .z = 0}; 86 | printf("end init.\n"); 87 | } 88 | -------------------------------------------------------------------------------- /src/main.c: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* main.c :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2022/12/23 19:06:10 by hahadiou #+# #+# */ 9 | /* Updated: 2023/01/21 20:11:48 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #include "../inc/fdf.h" 14 | 15 | void calc_transformed_coords(t_data *data) 16 | { 17 | size_t x; 18 | size_t y; 19 | t_point *p; 20 | 21 | data->main.cam.d = 0; 22 | y = -1; 23 | while (++y < data->main.map.h) 24 | { 25 | x = -1; 26 | while (++x < data->main.map.w) 27 | { 28 | p = &data->main.cam.coords[y][x]; 29 | *p = transform_point(&data->main.cam, 30 | (t_point){.x = x, .y = y, 31 | .z = data->main.map.coords[y][x]}); 32 | print_point(*p); 33 | if (p->y > data->main.cam.d) 34 | data->main.cam.d = p->y; 35 | } 36 | } 37 | printf("----------------------------------------------------\n\n\n"); 38 | } 39 | 40 | void plot(t_data *data) 41 | { 42 | size_t i; 43 | size_t j; 44 | 45 | double ru, px, py, pz, dst, x, y; 46 | int xoff, yoff; 47 | xoff = data->main.canvas.w / 2; 48 | yoff = data->main.canvas.h / 2; 49 | dst = data->main.cam.d; 50 | x = -1; 51 | while (++x < data->main.canvas.w) 52 | paint_pxl(&data->main.canvas, x, yoff, 0x000000); 53 | j = -1; 54 | while (++j < data->main.map.h) 55 | { 56 | i = -1; 57 | while (++i < data->main.map.w) 58 | { 59 | px = data->main.cam.coords[j][i].x; 60 | py = data->main.cam.coords[j][i].y; 61 | pz = data->main.cam.coords[j][i].z; 62 | x = dst * px / py; 63 | ru = px * px + py * py; 64 | y = (dst * dst + x * x) * pz * pz / ru; 65 | y = (1 * (pz > 0) - 1 * (pz < 0)) * sqrt(y); 66 | if (x + x + xoff >= 0 && x + x + xoff < xoff + xoff && yoff - y >= 0 67 | && yoff - y < yoff + yoff) 68 | paint_pxl(&data->main.canvas, 2 * x + xoff, yoff - y, 69 | 0x00ffffff); 70 | } 71 | } 72 | mlx_put_image_to_window(data->mlx, data->win, data->main.canvas.img, 0, 0); 73 | mlx_loop(data->mlx); 74 | } 75 | 76 | // void plot(t_data *data) 77 | // { 78 | // size_t i, j; 79 | // double x, y, z, x_rot, y_rot, z_rot; 80 | // int xoff, yoff; 81 | 82 | // xoff = data->main.canvas.w / 2; 83 | // yoff = data->main.canvas.h / 2; 84 | // z = data->main.cam.d; 85 | // x_rot = data->main.cam.ro.x; 86 | // y_rot = data->main.cam.ro.y; 87 | // z_rot = data->main.cam.ro.z; 88 | 89 | // double p = -1; 90 | // while (++p < data->main.canvas.w) 91 | // paint_pxl(&data->main.canvas, p, yoff, 0x000000); 92 | // for (j = 0; j < data->main.map.h; j++) 93 | // { 94 | // for (i = 0; i < data->main.map.w; i++) 95 | // { 96 | // x = data->main.cam.coords[j][i].x; 97 | // y = data->main.cam.coords[j][i].y; 98 | // z = data->main.cam.coords[j][i].z; 99 | // x = x * cos(y_rot) + z * sin(y_rot); 100 | // z = -x * sin(y_rot) + z * cos(y_rot); 101 | // y = y * cos(x_rot) - z * sin(x_rot); 102 | // z = y * sin(x_rot) + z * cos(x_rot); 103 | // x = x * cos(z_rot) - y * sin(z_rot); 104 | // y = x * sin(z_rot) + y * cos(z_rot); 105 | 106 | // x = x - data->main.cam.tr.x; 107 | // y = y - data->main.cam.tr.y; 108 | // z = z - data->main.cam.tr.z; 109 | 110 | // x = z * x / y; 111 | // y = z * z / y; 112 | 113 | // if (x + x + xoff >= 0 && x + x + xoff < xoff + xoff && yoff - y >= 0 && yoff - y < yoff + yoff) 114 | // paint_pxl(&data->main.canvas, 2 * x + xoff, yoff - y, 0x00ffffff); 115 | // } 116 | // } 117 | // mlx_put_image_to_window(data->mlx, data->win, data->main.canvas.img, 0, 0); 118 | // mlx_loop(data->mlx); 119 | // } 120 | 121 | void start_fdf(t_data *data) 122 | { 123 | for (size_t i = 0; i < data->main.canvas.w; i++) 124 | for (size_t j = 0; j < data->main.canvas.h; j++) 125 | paint_pxl(&data->main.canvas, i, j, 0x36454F); 126 | data->main.cam.v = calculate_vectors(data); 127 | calc_transformed_coords(data); 128 | plot(data); 129 | } 130 | 131 | int main(void) 132 | { 133 | t_data data; 134 | 135 | printf("main.\n"); 136 | init(&data, 0, 0); 137 | register_events(&data); 138 | start_fdf(&data); 139 | return (0); 140 | } 141 | -------------------------------------------------------------------------------- /src/parse_map.c: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* parse_map.c :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2022/12/29 19:12:52 by hahadiou #+# #+# */ 9 | /* Updated: 2023/01/14 14:52:54 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #include "../inc/fdf.h" 14 | 15 | int is_valid_map(char *map_path, t_map *map) 16 | { 17 | int fd; 18 | char *line; 19 | 20 | fd = open(map_path, O_RDONLY); 21 | if (fd == -1) 22 | return (0); 23 | line = get_next_line(fd); 24 | map->w = strlen(line) - 1; 25 | map->h = 0; 26 | while (line) 27 | { 28 | map->h++; 29 | free(line); 30 | line = get_next_line(fd); 31 | /*if (line && strlen(line) != map->w + 1) 32 | { 33 | free(line); 34 | return (0); 35 | }*/ 36 | } 37 | close(fd); 38 | return (1); 39 | } 40 | 41 | void build_map(char *map_path, t_map *map) 42 | { 43 | int fd; 44 | size_t i; 45 | size_t j; 46 | 47 | map->coords = malloc(map->h * sizeof(char *)); 48 | if (!map->coords) 49 | return ; 50 | fd = open(map_path, O_RDONLY); 51 | i = -1; 52 | while (++i < map->h) 53 | { 54 | map->coords[i] = get_next_line(fd); 55 | j = -1; 56 | while (++j < map->w) 57 | map->coords[i][j] -= 48; 58 | } 59 | close(fd); 60 | } 61 | 62 | t_map parse_map(char *map_path) 63 | { 64 | t_map map; 65 | 66 | map.coords = 0; 67 | if (is_valid_map(map_path, &map)) 68 | build_map(map_path, &map); 69 | return (map); 70 | } 71 | -------------------------------------------------------------------------------- /src/put_pixel.c: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* put_pixel.c :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2022/12/23 20:09:23 by hahadiou #+# #+# */ 9 | /* Updated: 2022/12/31 17:26:31 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #include "../inc/fdf.h" 14 | 15 | void paint_pxl(t_canvas *canvas, int x, int y, int color) 16 | { 17 | char *dst; 18 | 19 | dst = canvas->addr + (y * canvas->line_len + x * (canvas->bpp / 8)); 20 | *(unsigned int *)dst = color; 21 | } 22 | -------------------------------------------------------------------------------- /src/transform_ref.c: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* transform_ref.c :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2022/12/31 16:01:28 by hahadiou #+# #+# */ 9 | /* Updated: 2023/01/21 19:40:08 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #include "../inc/fdf.h" 14 | 15 | t_vectors calculate_vectors(t_data *data) 16 | { 17 | t_vectors v; 18 | t_point c; 19 | t_point s; 20 | t_point ro; 21 | 22 | ro = data->main.cam.ro; 23 | c = (t_point){.x = cos(ro.x), .y = cos(ro.y), .z = 0}; 24 | s = (t_point){.x = sin(ro.x), .y = sin(ro.y), .z = 0}; 25 | v = (t_vectors){ 26 | .ex.x = c.x, .ex.y = s.x * c.y, .ex.z = -s.x * s.y, 27 | .ey.x = -s.x, .ey.y = c.x * c.y, .ey.z = -c.x * s.y, 28 | .ez.x = 0, .ez.y = s.y, .ez.z = c.y}; 29 | return (v); 30 | } 31 | 32 | t_point transform_point(t_cam *cam, t_point p) 33 | { 34 | t_point transformed_point; 35 | t_vectors v; 36 | 37 | v = cam->v; 38 | transformed_point = (t_point){ 39 | .x = p.x * v.ex.x + p.y * v.ey.x + p.z * v.ez.x - cam->tr.x, 40 | .y = p.x * v.ex.y + p.y * v.ey.y + p.z * v.ez.y - cam->tr.y, 41 | .z = p.x * v.ex.z + p.y * v.ey.z + p.z * v.ez.z - cam->tr.z}; 42 | return (transformed_point); 43 | } 44 | -------------------------------------------------------------------------------- /src/utils.c: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* utils.c :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: hahadiou +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2022/12/31 15:58:53 by hahadiou #+# #+# */ 9 | /* Updated: 2023/01/02 12:55:38 by hahadiou ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #include "../inc/fdf.h" 14 | 15 | void print_point(t_point p) 16 | { 17 | printf("\t[%10.5f]\t[%10.5f]\t[%10.5f]\n", p.x, p.y, p.z); 18 | } 19 | -------------------------------------------------------------------------------- /test/10-2.fdf: -------------------------------------------------------------------------------- 1 | 1 0 0 -1 -1 0 1 1 0 0 2 | -1 0 0 0 1 0 0 0 0 0 3 | -1 1 0 0 -1 1 0 0 0 1 4 | 1 -1 0 1 1 -1 0 0 -1 0 5 | 1 -1 -1 0 -1 0 0 0 -1 -1 6 | -1 1 0 1 1 0 1 0 0 0 7 | 0 -1 -1 0 0 1 0 0 0 1 8 | 0 0 0 0 1 0 -1 0 0 0 9 | -1 -1 0 1 -1 0 1 0 0 1 10 | 0 0 1 -1 0 -1 0 0 0 0 11 | -------------------------------------------------------------------------------- /test/10-70.fdf: -------------------------------------------------------------------------------- 1 | -6 -67 -61 -38 9 -16 -16 32 56 16 2 | 27 -63 23 -56 63 10 33 -9 -55 69 3 | -44 -23 -58 12 -55 0 21 -25 27 48 4 | 1 41 -38 57 38 -17 -50 -2 -63 7 5 | 32 -46 -11 30 10 13 -48 -37 66 -53 6 | -54 34 51 -40 -33 52 -62 -37 -54 -9 7 | -58 40 -30 -9 59 7 -66 -12 -18 41 8 | -50 67 36 13 12 -2 -28 10 -60 -58 9 | 3 -27 -52 56 26 -52 59 -31 -48 -6 10 | -59 -30 50 36 5 -11 0 60 -24 -34 11 | -------------------------------------------------------------------------------- /test/100-6.fdf: -------------------------------------------------------------------------------- 1 | -4 -3 5 5 0 -4 0 -5 5 -2 5 1 -5 1 5 0 -2 4 -2 0 0 -2 2 -3 1 -1 -4 -3 5 -1 0 2 3 0 -2 0 0 0 -1 3 -2 0 -5 4 -2 3 -5 3 -3 5 0 1 0 3 2 0 -2 3 0 1 -3 0 2 0 -5 -2 2 -3 4 0 5 0 2 -3 0 0 5 2 4 0 1 2 -4 0 5 -3 1 -4 -4 -4 0 3 -1 3 0 -4 1 0 4 -5 2 | -2 0 -3 -1 -4 1 -1 -4 -5 -5 1 -4 -1 4 1 2 -4 -2 -5 -5 -5 1 -2 1 1 0 -2 -3 1 3 -3 -4 0 1 4 -5 4 5 0 2 -5 0 0 2 3 0 -2 -5 1 -2 -2 1 0 0 0 5 5 -2 3 4 0 2 -4 2 5 -4 5 -1 -5 -5 -4 -4 1 0 -4 0 4 -3 -2 -3 4 -1 -1 0 -4 -5 5 -3 2 -1 2 -4 -5 -1 -4 0 -1 0 4 4 3 | 4 2 1 5 5 0 0 -2 4 3 4 0 -4 -3 5 5 2 -4 1 3 -1 4 0 4 0 -2 5 4 -4 -2 3 4 5 0 -4 -5 -3 -2 -1 4 -3 -5 2 -3 4 0 -5 1 3 0 -4 -4 2 -5 -3 4 0 3 -1 5 0 -4 0 2 -2 5 -5 4 2 5 -2 -2 -2 0 -5 4 0 3 1 5 0 5 4 3 -5 -4 2 5 5 2 -4 2 -2 -1 4 5 -1 1 -4 -5 4 | 1 4 4 -2 1 -1 -3 1 0 -2 3 -3 1 0 2 5 1 -4 -2 -3 2 -3 2 -5 0 0 0 1 4 -3 -2 1 -4 4 -3 1 -5 2 -4 0 -3 1 -2 -2 1 0 -1 -2 2 2 0 4 0 -2 -2 0 5 -2 3 4 5 -3 -1 5 -2 0 1 2 3 -4 1 -1 3 -4 -5 0 -1 -4 -3 -4 -4 -4 -1 -2 0 -2 4 -1 0 -1 4 -1 2 0 -1 -2 2 5 1 -4 5 | -1 2 -5 5 4 1 -1 1 5 0 4 3 -4 0 -4 -2 3 -4 -3 0 -3 1 -3 1 5 2 0 -3 -1 -2 0 1 -3 2 -4 -3 3 0 4 -4 -5 -1 -3 5 5 1 -4 -5 3 0 -2 1 5 5 2 -1 0 2 0 -4 -4 0 -4 -1 1 -1 -5 2 -5 -5 2 5 -2 -5 5 -2 3 -2 -2 0 -3 -4 -3 -3 -3 1 -2 0 2 -5 4 0 -4 -4 0 -3 -4 4 1 0 6 | 4 0 -1 3 -4 -4 3 -5 0 -5 5 -5 5 -4 -5 -4 2 4 5 -3 0 -1 0 -1 2 -3 4 5 -4 -2 -2 -1 1 3 -2 0 -4 -5 3 1 4 -4 2 -4 5 3 -1 -2 5 3 -2 -2 0 2 0 4 5 -5 1 1 -5 -2 -2 -4 2 -2 0 -1 -4 -5 1 -5 -1 5 -2 1 -2 3 5 1 0 4 4 -2 2 -4 0 0 -2 5 3 4 -2 -3 1 3 3 1 2 -4 7 | 1 4 5 -1 4 3 0 0 3 2 4 0 5 -5 1 4 0 1 0 -3 0 -3 -3 -1 -3 4 -2 3 0 -2 2 3 -3 -3 0 4 -2 -4 -1 -2 4 -4 -2 4 2 0 -5 -3 3 -5 -5 -3 5 -4 -2 1 -1 0 -1 3 -4 -2 3 3 -5 -2 2 -2 -1 0 0 1 3 5 -1 0 5 1 -4 0 0 5 2 0 4 -3 1 4 0 -5 -4 5 1 -2 0 -1 3 -1 -5 5 8 | 5 2 -1 0 -5 4 0 1 -5 4 1 5 0 0 5 1 5 5 2 -5 4 1 5 -1 5 -5 4 3 -5 1 4 0 4 -3 -1 4 1 -3 2 3 -3 -5 -4 -2 -4 -1 0 -1 1 2 -5 -2 -1 -5 -3 -2 -1 -1 -4 0 4 2 1 4 -3 -2 0 4 0 1 -5 -1 -2 3 4 -4 4 -2 -4 -4 -4 -1 0 -1 0 1 -1 4 1 1 -1 -5 5 -1 4 1 1 0 5 0 9 | -4 -1 3 2 -5 4 3 -3 -3 0 -3 -2 3 0 -3 4 1 0 -2 3 5 0 -4 0 -2 3 0 3 0 -5 -1 -2 1 4 -4 0 0 5 -1 3 4 -4 0 3 0 1 -4 2 4 2 -3 -4 -5 -5 1 2 4 -2 2 1 -1 2 1 2 -2 5 -5 3 -2 5 2 -4 3 -1 5 2 -3 0 4 5 1 0 0 -2 -4 -4 -5 0 0 5 -4 0 0 -3 -2 -2 5 -3 -2 1 10 | 0 0 -5 -3 0 -2 -5 5 3 -5 -3 -2 -4 -1 -2 3 0 1 2 3 1 4 3 0 -4 -3 -4 -2 -5 4 0 3 -2 0 4 3 2 0 -4 2 -3 4 -4 2 -1 0 4 -1 0 0 4 5 -5 0 4 0 -3 -2 -2 0 -2 2 -2 -2 2 0 -5 0 -3 0 1 -4 -4 5 -5 -2 0 -4 3 -2 -2 4 4 -2 5 -2 -2 -3 -3 1 0 -4 2 1 0 3 -4 -2 0 -5 11 | 4 -2 4 0 0 -2 -3 0 0 0 3 2 2 -1 0 0 -4 2 -3 -2 -2 -2 0 -2 -1 -1 2 1 0 0 0 0 5 2 0 4 4 4 4 -4 1 3 -2 0 4 4 2 2 0 -1 -5 0 -1 0 1 3 4 0 1 -5 0 3 2 5 1 -4 2 -5 2 -5 1 -5 2 2 1 0 -5 5 -1 -5 4 -2 -1 -2 2 0 5 5 -3 -4 -1 1 4 -1 4 -5 4 -4 -2 -2 12 | -5 -2 5 0 -5 0 -3 0 0 -3 -4 -3 5 4 5 -1 5 0 -5 0 1 3 4 -2 2 3 5 1 -3 -3 -1 -3 -4 0 -3 -4 5 -4 -2 -2 -5 1 0 -4 -3 2 0 5 -2 3 -5 -4 4 0 -5 2 0 5 -4 3 -1 3 -2 -4 1 -1 0 4 0 -3 -5 4 -2 -5 4 4 0 4 -4 -1 -1 5 3 1 -3 1 4 4 2 -2 5 -2 -2 -1 -1 3 0 -4 4 -4 13 | -5 -5 -3 -5 -3 0 4 -5 -4 -2 -5 0 -4 -5 -4 -3 -2 4 0 -4 0 -1 -3 -1 2 3 5 -3 5 0 -3 -5 -3 4 -3 -4 0 1 4 -3 5 5 2 0 0 2 0 -5 0 4 3 -3 0 2 1 3 -2 5 -5 5 2 -2 -1 2 -4 -5 -5 0 -4 -4 -1 2 -2 0 -4 -5 3 3 1 5 -5 5 4 -5 -5 -5 5 0 -4 -1 2 -2 4 -4 0 3 1 -5 5 -5 14 | 2 2 0 0 -2 -4 -5 2 -5 2 1 -4 2 -3 0 -5 4 -3 1 0 4 -4 0 -2 0 -3 -2 5 -3 4 -4 -1 -1 -3 3 -1 2 -3 -3 -2 -3 -5 -1 1 2 3 2 3 0 2 -5 -4 -3 -1 -5 4 0 2 1 -3 3 -2 -2 0 -3 2 -1 0 1 0 0 5 -1 2 2 1 -4 1 2 3 2 -4 3 3 -5 -5 3 2 0 0 -4 0 -5 0 4 4 -3 0 0 -3 15 | 4 0 0 -3 5 3 0 -5 2 0 3 0 4 3 -1 -2 -5 -5 -1 5 -2 4 -1 3 0 -4 0 -5 4 2 2 2 0 3 -3 3 3 -1 0 2 -4 -1 2 -3 0 2 -4 2 -4 -3 5 0 -2 0 5 0 -4 -5 -4 0 3 0 -5 4 -5 -1 2 5 0 1 2 -5 -2 -2 -2 5 -3 -4 4 0 -5 -4 -2 2 -4 -3 0 4 -4 5 5 -3 0 3 -3 -4 -2 0 3 0 16 | -2 -4 -4 -3 -1 -2 -2 -3 5 3 2 0 -4 3 0 0 1 1 0 5 -5 4 -4 -2 0 -2 -5 -4 -4 -3 -2 -3 0 -1 -3 -2 -1 -5 0 2 -3 -4 0 2 1 -2 0 3 2 0 -1 -3 3 5 0 3 1 3 0 -5 5 -4 3 1 4 -2 0 -2 3 4 3 5 -4 -1 4 3 -3 2 4 -2 1 2 0 1 0 -2 4 3 1 -2 -1 0 1 -3 3 2 -2 -1 0 4 17 | -1 -3 0 5 1 -3 5 -3 1 1 1 -1 -5 -5 -5 1 5 2 4 4 1 3 4 3 4 -4 5 -1 3 5 5 4 1 1 5 1 -5 1 0 3 5 0 -3 -1 -4 -1 4 1 -3 -3 0 -1 -4 -5 2 5 -3 1 0 3 -5 -1 5 -2 -3 -5 4 4 -4 -5 -1 5 5 1 -4 -3 2 3 2 0 -5 0 -3 5 -1 -3 -4 -3 0 0 1 0 2 -5 4 -1 4 4 3 4 18 | -1 -1 -2 0 1 -1 -5 0 -3 -1 2 0 0 -5 -4 1 5 2 5 -1 2 -4 4 3 5 5 -1 0 -2 1 -4 -1 0 -1 -3 2 -1 0 3 3 -1 0 0 0 3 0 0 -2 -2 -1 1 0 3 -3 -1 5 -1 -4 0 -4 -1 -5 -3 5 4 2 0 4 2 0 1 5 0 0 -3 3 3 -5 4 3 1 -2 5 -3 -5 0 -4 -1 1 0 3 -2 -1 1 -3 0 -3 5 2 3 19 | -1 -3 -2 -5 -4 0 4 -4 4 0 0 -3 1 -3 -5 5 3 5 2 3 3 1 4 -3 2 -5 3 0 5 -1 -5 -4 0 -3 0 0 0 1 5 5 5 1 0 -3 -2 -4 0 0 -4 0 -5 2 -5 2 -2 -5 -3 -4 5 -2 5 1 -5 0 -3 1 5 -4 -5 -5 4 -1 2 -1 0 -4 -1 -5 0 -1 -1 1 2 -1 0 -4 -4 -4 1 0 -1 -3 1 0 -3 -1 2 -3 -3 -2 20 | -5 -4 3 -5 -2 1 -4 -4 -5 2 5 0 -3 -4 -1 2 1 -1 4 -4 0 -4 0 -2 -1 -3 -3 2 -3 -1 3 5 -2 -5 4 -5 2 -1 -1 1 -5 -2 4 -4 1 0 -3 0 -5 1 0 -4 3 -5 5 4 4 0 1 1 0 1 2 1 0 -1 5 3 1 1 0 -5 0 5 2 5 -4 -4 1 0 -4 0 1 3 -3 -2 2 3 0 0 3 1 -2 1 5 1 0 4 -5 0 21 | 0 4 0 2 4 0 0 4 -1 1 -2 -2 1 1 5 2 3 2 0 4 -2 -2 -2 2 -1 -5 5 0 -2 -2 -3 -5 0 4 2 0 -3 -3 -5 4 -3 1 -4 1 -4 -1 0 3 3 -3 4 1 3 -5 4 -3 -2 -2 -2 1 0 -1 5 -2 -4 4 4 -5 -1 -5 -1 -1 2 -2 3 -3 0 -5 1 -2 2 -1 3 -3 3 -3 -2 2 -1 -3 0 -2 5 2 1 0 5 -2 -5 -4 22 | 0 5 -1 4 -2 0 5 3 -3 0 -2 -1 5 -5 -2 -3 -3 2 4 -5 2 4 -1 -5 -1 -1 0 4 -4 1 -1 0 1 -2 -2 3 0 -3 -2 -2 -4 -1 1 -2 1 0 -3 2 1 3 4 0 1 -5 0 5 1 -4 -4 -5 2 3 -5 5 3 5 -3 -2 1 -2 5 -5 4 0 4 0 0 4 4 -1 0 5 1 5 5 0 2 -4 1 -4 -5 1 -2 0 0 0 1 -2 1 0 23 | -5 -5 -5 -2 1 3 5 -4 1 4 -2 2 -3 4 -5 4 -5 4 -4 1 -3 -2 5 1 0 1 -4 5 -3 4 -3 5 -3 -1 0 3 0 -4 1 4 1 -3 -5 5 -5 -5 0 2 -2 2 -2 -1 -5 0 -2 4 2 3 -2 2 -5 -2 -5 2 1 1 -2 -1 4 -2 -5 -2 1 2 -1 -3 0 -5 1 -3 0 3 5 -1 2 2 -3 1 -4 -1 -1 -1 2 3 0 -5 0 1 -1 -4 24 | 3 0 3 0 5 3 3 -5 3 5 0 2 5 0 -5 -3 4 5 4 0 3 5 -4 -2 -3 5 -2 0 0 0 -3 -3 -4 4 5 0 -1 3 -3 3 1 2 2 5 0 0 3 -4 2 3 4 -4 -3 3 2 0 -3 -3 0 -5 5 3 3 2 -4 -2 -5 -4 -4 0 -2 3 -2 -3 2 0 -4 -5 -4 -1 -5 5 -5 4 -5 0 -1 1 -3 -4 0 -2 0 0 4 -3 2 -3 0 1 25 | -3 2 0 3 3 2 -3 3 3 2 -3 1 -1 0 5 -4 -2 2 5 1 -4 1 0 -4 -2 -1 -5 -5 0 0 0 1 0 0 -5 -1 -5 -4 -5 -3 0 2 4 0 3 2 -4 0 4 1 1 5 4 2 -3 -3 4 -3 -1 -5 2 2 -4 1 5 2 -5 -1 -2 2 -3 -3 2 -2 -3 5 0 4 -4 -1 1 2 -5 -5 2 2 0 1 4 0 5 -4 0 0 -4 2 -2 5 -2 5 26 | 4 5 3 3 2 -2 3 -4 0 -5 0 -3 -1 -5 -2 5 5 0 -5 0 0 5 2 1 3 5 0 0 0 -4 -2 1 0 1 -2 -3 -2 1 0 -2 -5 2 3 4 1 2 3 -4 -5 5 -5 0 5 3 2 1 4 4 0 1 -1 4 -4 3 0 0 1 1 -4 0 0 5 -5 1 0 -5 4 0 -5 5 -3 1 -1 0 -1 1 -3 0 5 2 4 5 -4 -4 0 -3 5 -5 3 -2 27 | -1 -4 -2 2 1 2 -3 -2 -2 2 1 1 -5 0 5 -1 2 0 1 1 -3 -3 -4 -2 0 5 -3 -1 -3 -1 -3 -4 1 3 0 -2 4 -5 1 3 -1 3 0 1 -2 -2 4 3 -4 -1 -3 4 -1 3 -1 3 1 0 -3 3 -4 4 5 5 -4 2 5 3 2 -3 0 5 0 -5 -5 3 -2 -2 1 5 -1 5 -1 2 2 5 -1 1 2 -3 -2 -5 1 0 -4 5 4 2 0 0 28 | 5 3 -2 1 -1 2 -2 1 -1 -3 -5 3 3 5 -3 5 5 2 0 3 1 0 -4 3 4 -3 -4 4 -2 5 -3 0 0 1 0 -5 1 4 -3 0 -2 4 -4 0 -4 5 5 0 0 5 -5 1 -4 -3 4 -5 2 1 3 -3 0 -4 2 4 5 2 -2 0 3 -5 -1 0 0 0 -1 0 -3 4 -3 4 -4 -2 2 -5 -5 4 1 2 5 0 4 0 -4 -1 -2 -2 -3 1 0 -4 29 | 5 1 0 -2 -4 -2 -3 -1 -5 0 0 1 4 0 1 -3 0 2 0 0 -3 -2 -1 0 0 -2 0 4 0 2 0 -5 -5 5 -4 -5 0 -3 0 2 0 -2 0 3 -4 -5 4 -2 -1 -4 -5 -1 2 1 0 -3 4 -3 -4 -1 -4 -3 4 -3 1 4 -4 3 4 0 -1 -1 -1 -2 4 4 5 -4 1 1 -4 -5 2 5 3 -3 -3 -4 -2 0 2 0 -5 3 2 0 0 -4 -1 -4 30 | -4 -1 -5 0 -2 1 4 -1 -3 -1 -1 -1 -4 0 -3 -3 1 -1 -5 -2 -3 -5 -1 5 3 1 -5 0 5 -3 2 -2 1 -4 -1 3 0 -4 -2 -3 -5 -1 -1 2 2 0 -2 -4 -2 -2 -4 5 -1 0 -1 1 1 0 2 -3 2 -5 3 5 5 3 -1 1 -4 5 -5 -5 1 5 -3 -5 -1 1 -3 -1 2 0 4 5 2 0 3 -1 -4 4 1 -1 1 2 1 -2 -1 0 -3 4 31 | -4 0 -3 0 -1 -1 -3 0 3 -3 0 0 4 0 -1 3 5 0 -1 -5 -4 1 -2 -4 -2 5 2 4 0 -5 5 -3 -2 4 0 3 4 3 -3 0 5 5 4 4 3 0 -3 3 -4 4 -1 2 0 0 0 3 -5 2 -1 -1 2 -1 -4 0 -5 0 3 -3 1 0 -5 1 4 4 -1 -4 1 5 5 -4 0 -2 3 -2 0 1 -1 -4 0 -2 -1 2 1 2 0 1 5 -3 1 -5 32 | -4 -4 1 -1 0 5 5 -5 2 -4 -3 4 1 -5 2 -2 1 -4 0 4 -1 0 1 0 3 2 1 -3 0 5 -4 4 2 0 1 -2 2 4 4 4 -1 1 5 5 0 1 -3 2 0 5 -2 2 1 5 1 -1 2 -2 -3 -5 -2 3 -1 0 -2 -2 3 0 0 -2 -5 0 4 5 1 4 5 0 2 -1 -4 -2 0 -5 0 -4 3 0 4 -1 3 1 -4 2 -2 3 -1 -3 2 0 33 | 0 3 0 -1 -2 4 3 4 0 -2 -4 0 3 -3 5 1 -3 0 5 -5 1 3 4 3 -4 0 3 0 -3 3 0 -4 -3 -5 4 -5 0 -1 -1 1 -4 -1 0 1 0 0 5 -5 1 2 -4 -3 -1 -1 2 5 -2 0 2 3 -3 2 -1 0 3 0 -5 0 0 -2 -1 3 -1 0 1 4 4 -2 -2 -3 -1 5 2 0 -3 1 -1 5 -4 3 -2 2 0 5 3 2 -3 -4 2 -4 34 | 1 -2 -2 1 4 2 5 -4 -2 2 1 0 3 3 -4 1 -2 -4 -1 2 -3 0 4 -5 -2 3 -4 3 1 -1 2 4 -3 2 -2 -3 3 4 -5 2 0 4 -4 2 2 2 -5 -5 2 1 -2 0 -2 1 3 -5 3 3 2 -1 -5 -5 -4 5 -5 -4 2 0 -1 1 -1 1 2 1 5 -4 4 -3 -1 -1 4 4 -3 4 -3 5 -5 5 -2 0 -5 -2 2 4 1 3 5 0 -5 0 35 | 3 -2 -4 -1 5 -5 -3 -2 -5 -4 -5 -2 4 -2 5 2 2 0 0 4 -3 4 -3 0 0 -3 0 3 1 -5 -1 2 0 5 -5 1 3 -4 3 3 2 -1 -3 3 0 0 2 3 0 -2 0 0 0 -4 0 -5 -4 1 2 -2 -4 5 2 3 5 2 -2 5 -3 -4 4 3 5 1 -2 0 -5 4 -2 4 0 0 3 0 -5 3 1 5 0 0 0 -3 4 -4 -3 3 1 5 0 4 36 | 1 2 3 2 0 2 3 -1 -3 0 -1 -4 0 -2 -4 4 0 -1 1 2 1 3 -4 0 -4 5 -5 4 -2 0 5 4 5 -2 1 -1 3 -5 -1 -3 0 3 -1 -5 -3 3 3 3 -4 -4 -2 3 -2 0 4 -1 2 3 -2 4 0 1 5 0 -4 -1 -3 3 -5 -2 0 -2 5 -5 1 2 -5 2 -5 -4 0 1 -3 0 -2 3 0 0 3 3 -3 2 -2 2 1 2 0 -3 -2 -4 37 | -2 3 -3 1 4 -2 0 0 -1 -5 1 -4 -3 5 2 2 0 1 0 -4 -2 2 1 -1 -3 -5 3 1 1 2 0 3 1 4 1 2 -1 3 -2 0 -1 -4 4 -3 1 5 0 -3 0 0 -4 -3 2 2 1 3 -2 -5 5 1 2 1 0 3 0 -3 4 -1 5 1 -5 0 1 1 -2 -5 -2 -4 -4 -5 -1 -2 4 1 2 0 -2 1 -3 -5 -3 2 2 3 0 5 3 -1 -5 -1 38 | -1 5 -3 -3 1 3 0 -2 4 -4 3 -3 2 -5 3 5 1 0 0 2 -5 0 4 -5 5 4 4 5 -1 3 4 -3 -5 0 4 -5 4 -2 1 0 -4 0 -3 -4 0 -2 -3 5 2 -4 -2 -1 0 1 0 -1 0 5 5 2 1 1 -3 4 -1 -1 4 3 5 0 -1 3 0 0 -2 2 4 -1 1 0 2 2 -5 5 -4 -1 -1 -5 -4 0 3 0 3 4 -4 -3 -2 3 -1 0 39 | -5 3 0 5 -5 -1 0 4 1 -2 -1 4 2 3 4 -2 0 1 2 3 4 0 -2 -3 0 -2 4 2 2 -1 -3 0 -1 0 4 -2 0 2 -1 5 5 0 2 -3 -3 -4 -2 4 -3 1 2 2 1 -2 -1 2 -4 -2 -5 -5 3 2 1 2 2 -1 0 1 5 0 -2 3 2 0 0 5 3 -2 -1 -2 -3 -1 -5 0 -4 -1 5 1 -5 -3 -4 -1 -5 -1 -3 -3 0 3 -2 -4 40 | -3 -5 -5 4 -1 0 -5 -5 5 -5 2 2 -1 0 1 -1 5 0 5 0 -3 -4 -2 4 -1 1 0 1 1 2 0 0 1 0 -3 -2 -5 -3 -3 -3 -2 3 0 -2 0 0 3 0 1 -2 -2 2 -1 -4 0 -2 -5 -3 0 0 -5 2 -2 3 3 0 0 -3 -4 5 -3 -4 -5 -5 4 3 -1 4 -3 -3 -4 1 0 -4 0 5 2 5 -1 4 4 -5 1 -3 -2 -1 -4 0 5 3 41 | -3 -5 -2 -4 5 2 5 3 -3 2 0 2 4 2 -2 5 -5 -3 1 -1 -4 -2 0 -5 -1 -2 0 -2 5 -3 0 3 -3 1 -3 -4 -1 -3 4 1 2 4 0 0 -5 2 0 5 0 0 0 3 5 0 2 2 -5 3 5 -4 -5 4 1 -3 -4 1 1 -4 -4 3 0 -2 0 4 0 -1 5 -3 1 3 2 -4 3 3 4 1 -1 4 -2 -2 3 0 0 5 3 4 0 -2 0 -4 42 | 3 5 -5 0 4 -4 3 -1 5 0 0 1 3 3 0 4 -3 0 -1 1 -3 -2 0 0 2 1 -2 -1 -4 -5 2 -2 0 0 1 2 -4 0 -5 2 3 1 1 4 4 2 -5 4 -1 1 -5 -2 -4 3 0 -4 2 -5 4 3 2 -5 -4 0 -4 4 -4 -1 -5 -4 -4 -1 5 4 -3 3 5 2 4 5 2 0 2 5 -4 4 -1 -1 -1 4 -1 3 0 -1 3 4 -1 -4 -1 4 43 | -3 -4 0 1 0 0 3 0 -3 2 -5 4 3 4 -5 -1 -2 -4 4 0 1 -4 -1 2 1 -2 4 -2 0 0 -2 0 -3 0 2 1 5 -2 4 5 -1 -2 0 -1 3 0 3 -4 -5 3 4 0 0 -3 5 0 3 0 5 -4 5 0 5 0 0 3 -3 -5 -4 3 3 5 -1 5 4 0 -4 0 -1 0 5 1 0 2 5 3 0 -2 5 2 3 0 1 0 -4 4 -1 3 -1 1 44 | 1 1 -3 3 5 3 4 2 4 -3 -5 -5 1 0 -4 -2 1 2 -1 4 5 5 1 4 0 -2 4 -2 -5 -2 5 -4 -3 5 1 0 -2 5 5 -3 2 1 0 0 0 1 -3 2 0 -4 -3 3 -5 1 1 -2 -4 5 1 0 -2 -2 2 0 -3 2 0 -1 0 -1 -3 0 2 3 -1 5 -2 3 -5 -2 3 -5 0 2 -4 -2 5 -4 2 0 -3 0 4 -5 5 0 -3 0 -1 4 45 | 1 0 -4 2 4 -2 -2 4 3 3 0 -5 5 -1 -2 1 -1 1 2 -3 2 1 -4 -2 -5 0 2 2 2 5 0 -3 3 4 0 1 4 0 1 2 -2 3 5 1 0 2 3 -1 -5 4 5 0 -5 3 -5 4 3 -4 2 -5 -3 -5 0 4 3 -5 2 4 -3 0 -4 3 1 -3 0 1 2 5 -1 -4 2 -4 5 -5 -2 1 0 -2 -3 -4 2 0 -1 2 2 0 -1 3 1 -2 46 | -3 -2 -3 -4 -2 4 4 0 4 2 -2 -4 -4 -2 -3 0 2 -3 4 2 4 4 -3 -5 2 -1 1 3 0 -3 -2 3 -2 -4 -5 5 1 3 -2 -2 -4 -2 0 -4 5 5 2 0 0 0 -3 0 -5 5 2 -4 -1 1 -3 0 -4 5 0 -5 -4 5 4 3 4 0 -3 -4 1 -4 -4 0 5 0 4 -3 -2 0 -3 4 0 3 5 1 -4 -2 5 0 0 -4 3 0 -2 -2 0 2 47 | 1 3 0 2 -1 2 -5 1 -3 1 -3 1 -4 -3 1 2 4 5 -1 1 1 2 0 -4 4 -3 -1 4 -3 -4 -3 1 -3 -5 5 -5 0 4 2 0 2 4 -1 2 4 0 5 -3 -3 1 2 -1 2 5 0 2 0 -2 -1 -3 -1 1 1 3 -2 -1 4 -1 3 1 0 -3 -5 0 2 1 0 -1 -1 3 -3 0 -3 0 2 4 4 0 -4 -3 -2 -1 5 2 -4 1 1 -5 -1 2 48 | 3 5 -5 3 -3 2 -5 4 -5 2 -5 -2 -2 1 -2 0 1 5 -1 -3 -4 0 3 -3 0 -4 5 1 0 -3 -2 -5 -3 2 2 -5 4 5 4 5 3 4 4 -1 3 -5 4 2 -2 0 -2 1 -3 1 3 -5 2 -5 -5 -1 -5 5 -2 5 -3 -2 5 3 -4 -3 0 3 -3 -3 0 3 3 -4 -3 1 4 -5 -4 0 -5 5 -2 2 -3 -3 -2 1 -1 5 4 -4 -5 0 1 3 49 | 3 -1 0 1 3 0 -5 -2 -5 2 3 5 5 0 -1 -2 -2 -1 3 0 0 -2 3 -5 4 -3 -5 0 -5 0 5 3 2 0 0 -1 0 -1 4 0 -1 -5 -5 4 -2 0 -3 -2 -2 3 1 0 4 -5 2 4 -3 5 4 -3 2 -5 -3 -3 -3 0 1 -2 -5 -3 0 0 -4 -1 4 0 0 -4 2 3 -3 5 0 -1 0 -2 -1 4 1 -2 -4 2 -3 -4 3 -2 -1 -5 3 0 50 | -5 3 -3 -4 2 5 2 0 3 0 4 3 1 0 -2 -2 4 3 0 0 4 -3 0 0 1 5 -5 -5 2 0 1 3 3 0 -3 -4 5 2 1 -4 0 0 4 5 -5 4 -2 -1 4 1 0 0 -4 -4 1 -5 4 -2 -4 4 -5 -2 5 0 4 -5 -4 4 0 -2 3 5 -1 5 -3 -5 0 5 0 -4 4 -1 -1 -5 5 -4 -3 3 5 0 1 1 -4 4 0 -5 -4 0 2 2 51 | 4 0 -3 4 -3 -2 3 -4 3 0 -2 5 0 -1 5 4 4 -2 1 1 0 0 3 -2 -2 -4 -1 -4 2 -2 2 0 5 0 5 -3 -4 -1 0 -5 0 0 0 -2 0 -4 -3 0 -3 2 -4 3 -5 -3 -4 4 -1 -2 -5 5 3 0 0 -3 1 -5 3 -2 -2 -2 -5 0 -1 0 -5 -1 3 -3 2 -1 -1 -2 5 -2 -4 -4 5 1 4 -5 -5 2 2 -3 1 -2 2 0 3 4 52 | 0 -2 4 2 -5 0 -1 3 0 -5 -4 3 4 0 0 0 -1 1 -2 0 -3 -5 4 -1 -3 1 4 5 -5 4 0 0 4 5 2 4 2 1 -4 5 -5 1 4 -1 0 -5 -3 3 -3 -5 -5 -2 -4 3 -4 -4 -4 1 -3 5 5 -4 -5 4 -2 3 -4 -5 -5 -5 3 0 5 -1 1 2 2 1 -4 -2 4 5 0 -2 -2 0 -4 5 -4 3 -2 3 -4 -3 -2 -4 1 -2 3 1 53 | -1 -1 -5 1 -1 -5 -4 2 0 5 0 0 -4 -3 4 3 -4 2 0 0 -3 0 0 0 -2 3 4 4 3 -2 1 -1 3 1 0 -5 0 4 -4 0 -2 -2 -2 -3 -2 4 0 -3 -2 2 2 4 1 -1 2 3 -4 0 -2 -2 5 1 0 -2 5 -1 -4 0 2 -4 4 0 3 3 0 0 2 0 -5 2 5 0 -3 4 2 -1 -2 -1 2 4 -5 5 1 0 3 3 4 2 3 3 54 | 2 -2 -3 -1 2 1 -5 -3 -5 -3 0 -3 -2 -3 3 3 4 2 -4 1 -5 5 -3 -3 -3 -2 -4 -1 -4 2 -2 -2 -5 -1 -3 -5 0 3 2 -4 1 3 -3 -2 3 -3 5 4 -2 2 1 -4 5 4 3 1 5 -5 3 -5 1 0 5 4 5 0 -2 2 2 -3 0 3 -4 -2 -2 -5 1 0 -4 -5 -3 -1 -2 -2 1 -2 0 0 2 4 5 -1 -4 -2 -1 1 -4 0 -1 -3 55 | -4 0 1 3 1 -4 -5 5 -5 -2 3 -1 3 -1 0 2 -4 1 -5 -5 0 4 5 -2 -3 -1 -1 -1 -1 -5 -4 -1 2 2 -4 2 -2 -4 5 5 -2 1 4 -5 -5 -2 -2 -2 -3 -3 -2 0 -5 -3 -2 1 -4 2 1 5 -5 5 -4 -3 0 1 4 -2 4 -4 -1 1 2 -4 4 0 1 2 0 -1 0 -4 3 -5 5 -2 0 5 -2 0 -2 -4 3 -3 -3 5 -3 0 0 -3 56 | -4 -5 -2 0 1 -2 3 -1 0 4 -3 5 -3 0 1 3 1 2 -4 -5 3 -3 -5 5 -5 -5 4 -4 -5 -3 -4 3 -5 -2 -4 4 -5 4 4 -2 -4 -5 -4 -1 0 0 -4 5 2 1 0 5 0 -2 3 -4 0 -2 -1 -2 -2 -5 3 0 -5 0 -4 -2 -1 -5 3 -4 1 4 -2 -2 -4 0 0 -3 -4 -3 1 4 -4 3 3 -1 -4 0 -1 0 0 -4 -1 -1 5 -5 5 -3 57 | -4 4 -1 0 5 2 -4 5 0 2 0 1 -2 4 5 4 -2 -2 -1 5 -2 -2 -2 0 5 4 -1 -2 2 1 -2 -4 0 0 3 4 0 5 -1 -3 -2 2 1 4 -3 0 -2 2 0 -1 -3 -1 5 5 0 -2 0 -5 0 3 -1 5 4 0 2 0 -5 -3 -4 5 -5 0 0 -5 -4 5 0 -2 2 -5 0 -3 0 3 -3 -3 -2 4 5 4 3 0 5 -3 -1 -4 -5 2 0 1 58 | 1 2 -5 2 4 2 2 3 -5 0 -3 0 -4 5 4 1 1 -2 2 0 5 1 4 4 0 -5 0 4 0 4 0 1 -1 4 0 -1 -2 5 0 -2 -4 -1 0 5 1 2 5 0 1 2 -4 -1 4 0 0 0 -1 5 3 -5 -2 -2 0 3 -3 1 -1 -2 0 0 -4 -4 5 -1 5 -3 4 5 -4 2 0 -3 0 -5 1 -4 -4 5 1 -5 0 5 0 4 1 0 -4 -4 4 3 59 | 0 2 0 0 3 -3 -2 5 0 2 0 0 -4 3 -3 3 1 -5 -4 0 -2 1 -3 -3 -5 5 -3 3 1 -1 5 5 -5 -3 -2 -5 1 -5 -1 -4 1 1 0 1 1 3 5 -1 3 1 0 4 4 -2 -1 0 0 2 5 1 1 -4 5 2 -3 2 -4 0 0 -2 -4 0 4 3 -2 4 3 -2 -4 0 -3 0 -2 -2 -5 1 2 -5 3 3 -3 4 -1 2 -1 0 0 -3 0 0 60 | 0 4 -2 2 -2 -2 1 2 -3 -4 2 1 -1 -3 -3 -4 5 5 3 0 1 -4 5 0 1 -2 3 0 0 0 -2 -4 1 -2 -4 4 -2 -1 4 -3 0 2 -2 5 2 -2 3 -4 0 0 -3 -5 3 -3 4 -1 -4 0 4 0 -2 4 -3 0 0 -5 -2 4 0 0 5 2 2 5 -2 3 -4 -2 -4 -4 2 -2 3 -4 3 2 3 -3 2 -2 0 1 2 -4 -3 -4 -2 -2 -5 -4 61 | 5 4 -4 1 0 -2 0 -1 -3 -5 0 5 -3 3 0 5 -5 -5 0 4 -1 -5 2 2 0 -4 5 1 -3 2 -2 -1 0 3 4 1 -4 0 2 -2 -4 3 -1 -1 -5 -2 -3 1 2 0 0 5 1 1 -1 2 -4 1 0 3 4 0 0 -1 -4 -5 4 0 3 -5 0 3 -2 1 3 0 -5 -5 1 3 3 -2 -1 4 3 3 5 -2 -5 5 0 0 1 -3 -5 4 3 3 -1 0 62 | 3 -1 4 -3 -4 -4 -2 1 1 0 2 4 -1 -5 0 4 -1 -2 -5 -3 4 0 -1 -5 4 -4 -4 4 -2 0 0 -3 0 -5 -1 3 -2 3 1 -4 -5 -1 -1 2 -2 -4 -3 -1 -3 4 -3 -2 2 3 -1 -1 -4 -3 -3 4 4 -3 -3 0 0 1 -4 0 0 -4 2 -3 0 0 0 -1 -3 -5 -1 -1 5 4 4 -4 2 0 0 0 -5 -1 -5 0 5 -2 3 1 -2 0 -5 3 63 | -4 3 0 5 4 0 5 0 3 -5 3 0 -1 4 3 3 -2 -3 0 4 3 5 -1 -2 -3 -2 3 -4 0 1 3 0 2 2 1 -3 -3 0 2 2 -4 0 1 -1 -4 5 0 -1 -1 0 -1 5 5 1 -5 -3 -3 3 4 1 3 0 0 -5 4 -3 2 1 2 4 2 0 5 2 -5 0 -1 2 0 2 5 5 -2 1 -2 1 -3 -4 -2 -2 4 4 0 0 -3 -5 5 -4 -3 2 64 | -2 1 -5 3 -1 -1 4 -3 -5 -1 4 -4 5 -3 -1 0 2 -4 4 -1 5 3 -3 1 -4 4 1 -5 5 -2 0 3 4 -1 3 -3 0 -1 1 2 5 -3 -4 -5 4 0 -2 -5 2 -2 -4 0 -1 0 4 3 -2 -1 -1 -5 3 -4 -3 -5 -1 1 3 2 3 -5 -3 -1 -2 -5 -4 1 2 -2 -4 -3 4 0 2 1 -1 1 5 -1 3 1 2 -2 0 -3 -2 1 4 -3 1 5 65 | -2 2 -5 1 5 0 2 -3 -3 0 1 -2 0 -4 -2 -1 3 0 2 0 -4 -5 2 0 0 4 0 -3 3 -5 -1 -5 -3 -4 1 -2 0 5 0 -3 5 -4 4 -5 -1 5 -1 3 5 -1 3 -3 0 -3 4 5 0 2 2 -1 3 5 -3 -3 1 4 -2 5 -1 -5 5 0 -2 0 2 0 -5 -3 1 0 -3 -5 -2 -4 0 3 -3 0 -2 1 -2 1 -5 -4 1 -3 0 -2 5 -1 66 | 1 -1 2 5 -2 3 3 0 0 5 5 2 2 4 5 1 0 2 2 0 -3 0 3 1 -3 -5 0 -4 -1 -1 5 0 4 -3 4 5 4 0 0 4 0 5 2 5 -2 -4 1 4 1 5 2 -1 5 0 0 -4 -5 0 -2 -3 1 0 1 -1 0 2 0 -5 3 3 -5 -4 -1 -2 -1 0 -4 -5 -1 -5 0 4 4 3 0 0 -3 1 3 4 -1 5 1 -4 1 4 3 2 -1 -5 67 | -5 2 1 0 2 -3 -4 -2 2 -3 0 4 -1 -5 3 5 -5 0 -5 -3 -5 -4 5 -5 5 -3 -5 3 0 -5 -4 2 -3 5 0 0 1 5 -1 0 -2 -1 3 3 -1 -5 1 -1 0 5 -5 0 4 -3 -5 -4 0 -2 1 5 2 0 -4 1 -2 3 -4 0 1 0 -3 -2 -2 2 3 0 1 -3 -4 1 -2 4 0 -3 -5 1 -4 5 1 2 3 -2 -1 4 1 0 -4 -3 5 -3 68 | -4 -2 4 3 -3 -3 -5 5 -1 -3 -2 3 -3 -5 0 1 5 -1 -5 2 -1 -4 -1 0 -5 -4 -3 5 5 -3 -1 1 -4 -3 0 -3 2 4 2 -5 -5 4 -3 0 0 -2 2 -4 4 1 -4 5 -5 -2 3 3 3 -5 1 -2 2 -3 3 0 2 -2 5 4 -2 1 -3 0 5 -3 -2 -5 2 2 0 5 4 5 -3 1 -5 3 1 -1 1 -4 2 -3 4 5 5 -3 1 2 5 -5 69 | 4 -5 0 0 0 -4 0 1 5 0 1 1 -1 5 -3 -1 5 0 5 -1 5 1 -5 -2 5 -1 3 -4 3 3 -3 2 -3 2 5 0 -1 1 1 1 0 1 -5 4 -3 -1 5 0 -3 2 -5 -2 4 -4 0 5 -2 3 3 -5 -4 -2 4 -2 -5 3 0 -5 4 1 1 -4 -5 1 0 -4 -1 5 3 2 3 -3 4 0 3 2 0 -3 -4 -5 3 -4 2 -2 4 4 -1 -2 0 -4 70 | 0 -5 3 -5 -4 2 1 4 -4 3 4 -4 -5 -1 -5 -1 -2 -5 0 2 1 -4 1 -4 -2 4 -4 -2 2 -4 0 0 5 -2 5 0 1 -4 0 -1 1 -3 -4 5 1 0 -2 -5 2 4 0 0 0 0 3 -1 -2 -4 -5 1 5 -2 5 -2 -4 5 3 1 4 4 -1 -5 -4 -1 -5 0 -1 0 0 5 -2 -3 1 1 -4 2 -2 -4 0 3 0 -1 0 -5 2 -4 -4 2 1 0 71 | 3 -3 1 -5 4 -1 -2 -3 0 -3 -5 1 2 -5 -3 -4 -2 -3 -4 -3 -1 5 0 4 -1 -1 -2 -5 -5 2 1 2 4 1 3 4 0 -5 -1 -5 5 1 -1 -3 2 -4 0 2 -1 3 -4 0 2 -1 2 -5 -4 0 0 4 -3 4 4 -2 0 -4 1 3 0 -3 1 -3 -3 -5 -5 4 -3 0 4 4 2 2 -3 2 -1 0 0 2 2 2 -2 -3 2 -3 0 1 4 4 -3 -1 72 | -5 1 -3 -5 -2 3 4 3 -1 -4 0 0 -5 3 2 0 1 5 -3 0 0 -2 0 1 3 0 3 0 -1 1 -2 5 2 2 -4 1 -5 4 -4 2 -3 5 5 2 -1 -5 -5 0 -4 5 1 5 -5 -3 -5 -5 1 4 5 1 0 -5 2 -3 1 -4 -2 3 3 2 5 -3 -1 -4 -2 1 5 3 -3 -5 1 0 3 0 -4 2 0 5 -3 -5 3 -4 -2 5 -4 -4 3 1 -5 -4 73 | -1 -1 -3 0 -2 -4 0 1 5 -2 5 -2 3 -3 0 5 0 2 3 -2 3 -4 4 0 4 5 -4 1 0 3 -1 5 3 -2 -4 1 -2 0 -2 0 0 5 4 -3 1 2 -3 5 -2 1 -1 2 -3 2 3 3 4 0 -3 5 0 2 5 -2 3 5 -5 2 5 0 -5 -1 -2 5 1 -5 3 -1 0 0 0 4 3 4 5 0 0 0 -3 -3 -3 -2 5 2 -5 4 4 -3 2 -4 74 | 1 -3 1 1 0 2 1 1 5 5 -5 -1 2 2 4 5 3 -5 0 4 -2 -5 2 0 -5 4 4 0 3 -3 -4 -3 3 1 -3 2 -5 5 -3 2 0 1 4 0 1 0 -3 -2 0 0 1 3 1 1 3 -4 -5 0 4 5 2 -2 -4 -1 0 0 -4 -5 0 0 5 1 5 1 2 2 4 -3 -5 0 4 3 -5 -2 -2 -4 3 -2 -5 5 2 -3 -3 -2 3 2 -5 2 -2 0 75 | 0 -5 4 -3 4 2 -3 -3 -3 -5 1 -1 5 0 0 4 5 0 0 0 0 -5 0 2 2 3 -1 -2 1 -4 5 -1 0 3 -1 3 -2 0 4 4 -4 -1 2 1 1 1 5 1 -2 0 3 0 -5 3 -2 -3 0 5 -2 4 -5 5 5 0 5 5 0 -4 1 3 -2 0 4 -1 5 -5 -1 4 5 -5 -2 -4 -3 2 3 -4 5 4 -2 -1 -1 3 -2 2 5 -4 -3 -3 -4 3 76 | -3 4 -5 1 -3 -3 5 -5 1 -2 1 0 -2 -4 -2 3 5 -4 0 -4 -3 2 2 5 1 0 -1 2 5 4 -4 4 -3 0 1 -1 3 3 0 3 0 5 5 -1 -1 4 -2 -2 4 -3 -5 0 0 2 -4 -4 5 -4 0 1 2 4 4 4 2 2 -4 -3 -4 4 0 4 -4 0 2 -4 4 -3 -1 -5 4 -3 3 -4 -2 2 -1 0 -3 -5 -4 3 -2 1 4 -1 4 -3 2 0 77 | 5 -3 -2 -3 4 -3 -1 -5 3 -1 1 -2 4 -1 2 -2 4 -5 -2 5 2 1 5 -4 -1 5 -5 -3 2 -1 0 2 4 0 5 -5 0 1 -4 5 -4 -5 4 2 -5 0 -4 0 3 0 -3 0 -4 0 5 4 -1 0 -4 -5 -4 -5 -1 2 0 0 3 1 -3 0 3 3 -3 -2 0 -2 -1 1 -4 1 3 4 0 -2 -1 4 5 4 0 3 5 -3 -1 -5 -4 -3 1 -1 0 -4 78 | -2 -3 3 -5 2 0 -2 -3 4 0 4 -3 1 -4 4 0 0 0 3 0 -2 -2 3 -4 -3 -3 0 2 0 2 3 1 -5 5 -2 -1 -1 -5 -3 -3 4 -1 -1 0 -2 1 -4 -5 0 -1 -3 2 4 4 4 -2 -1 2 3 2 2 3 0 0 5 -3 -3 0 3 1 0 -4 4 0 2 4 -5 0 -2 3 -5 0 -4 -4 4 0 2 4 3 1 -3 -2 0 2 1 0 5 -4 5 4 79 | 5 2 0 -4 2 3 5 -1 -5 1 0 -4 0 -2 3 4 -1 2 -5 -3 -5 2 5 2 0 0 4 5 -4 -1 -1 -5 1 -2 0 1 -4 0 5 -2 0 -4 1 -2 -3 2 2 5 -1 0 5 -5 2 -1 5 -4 -2 4 -5 -3 2 0 -5 -3 1 -2 -3 3 0 -5 2 0 -4 0 -4 4 -2 -4 1 -2 2 1 3 5 -1 -4 1 4 2 0 0 -4 -3 0 -2 0 1 1 -5 -2 80 | -4 3 -1 2 -5 0 0 1 -3 4 -3 5 -2 3 -1 -4 -4 -1 3 0 5 5 0 -3 1 2 -1 0 4 -3 -3 0 -4 2 3 1 -3 -2 4 0 5 3 3 -2 0 4 -2 1 5 -1 2 2 0 1 0 -4 -2 -4 -5 0 0 -3 4 -3 -3 -2 -1 5 5 -2 -3 4 -1 0 -3 0 -3 -2 1 1 -1 -3 -4 -5 5 -3 2 3 -3 -3 0 5 -5 -5 -4 -2 -2 4 -3 5 81 | -4 -4 -5 0 1 2 -1 4 3 1 -5 -2 -4 -3 1 2 3 -3 -4 1 1 -2 0 3 -5 1 4 -1 2 -1 -3 0 -1 3 4 3 5 -2 -5 5 5 4 3 -4 0 0 -1 0 4 -1 -5 -4 2 0 2 5 -3 5 5 -1 -1 2 1 0 -2 -4 2 0 2 -2 1 0 -2 2 -4 0 -4 3 4 -3 0 0 -1 -3 -3 -5 -5 0 2 -5 -1 -4 2 0 -4 -2 -3 -1 3 0 82 | -4 -1 0 -5 0 -4 -2 -5 1 2 -5 3 -1 -2 -5 5 -1 4 -3 -2 1 5 0 -4 3 5 -2 -2 4 5 -1 3 2 5 3 4 3 -5 -5 -2 2 2 1 3 5 2 -4 0 -4 0 3 -2 4 -1 0 -3 -2 3 -4 -2 0 4 0 2 0 -1 -3 -5 3 -2 -1 1 -2 0 -2 2 -3 4 1 0 0 0 2 -4 -1 3 5 0 2 1 -3 5 3 2 5 2 3 -1 -2 4 83 | -5 0 1 2 -1 0 -3 -1 4 -5 3 0 -2 -4 1 1 3 0 0 -5 0 0 3 2 0 -1 0 1 1 3 -4 1 2 -1 5 -3 3 2 2 1 -4 -4 5 -4 -1 -4 -2 -5 -1 4 1 -1 5 1 -2 -2 -2 0 5 -3 4 -2 1 1 2 -1 4 -5 4 -5 0 3 0 -1 -5 0 0 0 0 -2 0 1 4 0 5 -4 -3 1 3 -4 3 -2 0 -3 5 4 4 -4 3 0 84 | 1 1 0 4 5 0 -2 -3 -1 -2 2 5 0 3 -3 0 2 -5 -5 -5 -1 -4 -2 1 0 5 1 5 -3 3 0 -2 1 -1 -3 -5 -4 -4 0 4 1 4 4 -5 0 -4 2 -5 2 -5 4 4 2 0 0 3 5 -3 -2 2 4 3 5 -4 0 5 -2 -2 -3 -4 -3 -5 4 0 2 -5 2 1 4 -3 -3 4 -1 -3 -3 0 0 -5 -4 1 -4 -3 1 -5 -1 3 5 0 -5 3 85 | 0 2 -5 0 2 -1 2 0 0 -3 2 0 2 3 4 -5 -5 0 5 4 -1 -1 -1 4 -2 -5 0 3 -1 -1 1 1 0 -2 1 2 2 -1 -2 2 -1 -4 -1 5 -4 -1 5 -4 2 -5 1 -2 -2 5 -1 -5 -3 0 2 -4 5 -5 5 -2 3 5 -3 0 0 2 0 0 -1 0 3 -5 -3 3 -1 -1 -5 3 -3 -5 4 0 5 -1 4 0 1 -2 4 5 -4 3 2 2 0 -5 86 | -2 3 3 2 2 0 5 -4 -5 -1 -5 -3 -5 -2 5 0 2 4 4 0 -4 0 -2 -1 -4 -2 -4 -2 -2 4 2 5 1 5 -1 4 5 4 3 4 -2 0 -5 0 2 -5 3 -1 0 0 0 2 -3 5 0 3 0 5 3 -2 5 0 3 1 4 -4 2 -4 -3 -2 -3 3 4 5 -1 5 0 3 1 3 -2 -3 0 -5 -4 -3 0 0 1 0 -2 -5 0 -5 1 -1 3 1 -2 -4 87 | -2 -1 4 2 5 4 -1 -1 2 -5 -3 4 3 5 -2 0 0 5 -3 -3 3 0 -2 -2 4 -5 5 -3 -2 -4 -3 -1 1 1 -5 -5 0 -5 0 -2 -3 -2 -2 -5 1 4 1 0 -5 -3 -1 -5 -3 4 0 -2 5 -2 5 -5 1 2 -3 2 0 -3 -5 1 -1 3 -1 -1 -2 1 -5 0 1 -3 -5 -5 3 1 -3 -4 4 0 -4 4 2 0 -4 -3 5 -5 -2 5 5 1 -2 -4 88 | 0 0 4 2 4 -4 2 -1 -2 3 -4 3 0 -3 1 3 0 4 -5 -3 -2 4 1 0 -1 -1 0 2 5 0 2 -3 -3 5 -3 -2 -2 3 4 -4 0 -5 4 4 -4 0 5 -3 0 -2 5 1 3 2 -2 3 -3 3 -4 -3 -5 3 4 0 -4 3 4 -5 0 0 4 5 -2 4 -2 -3 -2 -5 2 -4 3 -4 -3 2 0 -2 -2 -3 1 -3 -4 3 -4 0 -2 3 -5 3 1 2 89 | -2 4 1 5 1 -1 2 -5 -1 -4 1 -4 0 -2 -2 -3 -4 -4 5 1 3 3 2 4 4 -3 -5 5 0 -1 0 5 5 -2 3 -1 -5 1 -3 -4 1 -1 3 -3 -4 0 -4 1 -2 5 -1 -5 0 4 -2 1 -2 -5 5 -2 0 -3 0 0 1 -3 -5 1 -5 -1 -5 -2 -4 4 2 2 5 2 2 0 1 -4 -4 -4 -3 1 -2 -2 0 0 -4 -4 5 -2 3 1 5 0 3 0 90 | -5 -2 1 3 3 5 -2 -4 -3 -1 0 1 -3 1 5 -4 4 0 2 0 1 3 -3 -2 0 5 -5 1 5 0 5 -4 -3 1 5 -3 4 4 2 -2 -5 0 -2 4 0 -5 -4 -5 3 0 3 1 1 1 2 0 -2 4 0 -3 0 3 0 -1 -2 -1 0 -1 0 0 -5 4 1 -2 3 4 -2 -4 -2 5 0 -5 -2 0 0 0 -4 4 1 4 -1 -3 1 -3 5 -4 2 -3 0 -4 91 | 1 2 -1 5 -5 -4 -1 2 -4 5 0 5 3 4 0 0 2 2 -4 0 -4 2 5 4 -3 5 3 4 1 -4 0 2 1 -3 0 -2 -2 -2 1 0 0 -2 2 -4 3 1 2 2 5 2 -3 4 4 -4 -4 3 1 2 -5 5 3 -5 3 2 0 -4 5 0 5 -4 0 -4 0 -5 -1 2 3 5 4 -4 -1 0 4 -4 -3 1 -4 0 0 -2 -3 3 3 2 -2 3 5 4 4 5 92 | 1 3 3 -3 4 1 -3 -5 0 1 1 5 4 -3 -1 -4 3 -1 -2 1 -1 2 1 2 -1 -5 3 -5 1 0 3 0 3 -5 3 -1 -5 -4 -2 -1 0 0 -1 -4 0 -3 -5 -5 -5 -4 3 0 2 5 0 1 0 -2 -2 -1 -2 5 -3 -1 -3 -2 -3 -4 4 2 -1 0 -5 0 4 -3 1 3 5 -1 -5 -1 -3 3 -3 -1 3 4 0 0 -3 -3 -2 4 -1 4 -3 4 0 0 93 | -3 2 1 -2 -2 0 1 -2 4 -1 -5 2 3 5 1 -2 -1 -1 0 4 -5 -3 3 0 1 0 5 5 0 -5 -4 0 5 0 -3 -5 0 5 5 -2 3 -1 -5 -4 0 -3 -3 0 2 -2 1 4 5 0 -5 -5 3 -5 -2 -2 0 0 2 5 -2 -4 -2 3 -2 -2 0 0 -5 -2 0 4 -4 -2 5 -4 -5 -4 4 0 -2 -3 3 1 -3 1 -3 0 -3 -5 -1 -3 -2 3 -5 2 94 | -1 -3 3 -5 2 5 3 2 2 1 4 -1 -2 2 0 -1 -2 -4 4 2 -1 -1 -5 0 3 0 -3 3 3 -2 0 -2 -3 3 4 4 0 -4 -1 4 4 -4 -1 2 -1 -5 -5 0 -1 -3 5 2 2 4 -2 -3 0 -2 -2 0 -5 4 1 2 -2 -2 1 0 -2 -2 -2 4 5 2 0 2 4 0 -5 -5 0 1 1 3 -3 4 0 0 0 4 -3 -3 5 5 -4 -2 -5 3 1 2 95 | 5 -4 1 -4 2 -4 0 3 -3 5 0 -5 -2 2 -2 -5 4 3 -1 -5 -2 -5 -5 1 0 -3 5 -1 -5 -5 4 4 5 4 2 -2 -4 -5 -3 -3 3 4 0 -3 5 0 0 2 -5 5 4 -4 1 -5 -1 5 5 -2 0 5 0 -1 3 0 -5 -1 1 -2 0 -3 0 -5 4 0 -5 1 5 -2 3 -3 -3 5 0 0 -3 -5 0 -5 -1 1 -2 1 4 1 -5 -2 1 3 0 4 96 | 4 -5 -1 -5 5 0 0 -1 1 -5 0 -4 0 -2 4 4 5 5 -3 5 0 -4 -3 2 4 2 5 3 -4 2 5 -2 5 3 2 -3 3 1 -4 0 -5 5 4 -4 0 2 5 2 -3 -3 0 3 -2 4 -4 4 0 -2 -4 1 0 2 2 -5 -5 -4 -1 -1 0 3 -3 -4 -4 0 1 3 1 -4 -1 -2 0 0 1 -5 -3 -2 -1 -2 -1 3 -3 -5 4 -1 -4 -3 -2 3 0 -5 97 | 0 5 -5 -2 3 0 -2 -4 -4 3 -5 -4 0 4 2 5 0 0 5 0 0 5 0 -2 1 -3 -3 3 -2 5 0 4 -4 -4 2 3 2 -4 -4 -3 -4 -3 0 -1 -3 -4 -4 0 4 5 4 -1 -2 5 -3 0 2 1 -2 2 -2 3 5 0 4 2 -1 1 2 1 -1 5 -2 2 2 0 4 -2 5 4 3 -4 2 0 3 5 0 -3 -2 -5 4 -4 -3 0 -3 0 5 4 -3 5 98 | 0 -4 0 1 0 -2 -4 0 -2 5 4 0 -2 -4 -1 -4 0 -2 5 0 5 0 5 -1 -2 4 0 -1 -4 -4 -3 -3 -3 0 2 0 1 5 -1 -1 -5 0 1 4 -3 -5 -2 3 -1 -4 0 3 -2 -1 -4 1 -1 0 -4 -2 1 2 0 -2 -4 4 0 2 5 3 -4 -3 1 1 -1 -4 4 -3 0 1 5 5 4 0 1 -5 0 -4 2 -2 3 1 -1 -2 1 -1 0 5 -1 -1 99 | 4 1 -4 -5 -3 -2 -1 -2 -5 -5 -5 0 5 0 -3 -3 -1 -5 0 2 2 5 0 4 -5 1 -3 -4 -3 -1 -3 3 -1 -2 -1 0 -2 4 -5 3 5 -2 1 3 -5 -3 -3 1 4 0 1 -2 1 2 4 -2 4 0 -2 -1 -1 2 0 -2 4 0 -5 2 2 1 5 2 4 4 -4 1 3 -4 2 -3 -4 -5 -4 -5 -1 -1 -4 0 0 -4 -1 2 -1 -2 -1 -2 2 0 -4 -2 100 | 0 -1 3 0 -5 -2 -5 -3 -5 1 4 1 5 -2 -3 4 0 -4 -1 -4 2 -4 -2 -1 -3 2 5 -2 -2 -2 0 4 0 5 -4 1 3 1 5 -2 -1 0 1 -1 -1 5 -4 2 -1 -4 -3 -4 -3 0 -3 2 2 -3 3 -4 -4 0 5 3 1 -3 0 -1 3 3 3 -4 3 4 -4 -2 4 0 2 -3 4 2 2 -5 0 2 -3 4 -4 -2 -3 -3 0 5 -1 -4 -2 5 -2 -1 101 | -------------------------------------------------------------------------------- /test/20-60.fdf: -------------------------------------------------------------------------------- 1 | 36 -40 -59 37 -47 -29 -4 12 49 45 37 49 -31 16 20 19 -26 -30 -21 18 2 | 43 16 43 -3 37 -5 -11 -46 4 38 27 -38 35 30 37 59 -29 26 -55 52 3 | -25 -48 30 33 -42 -55 54 26 54 -23 47 13 28 31 -53 54 -10 -50 -24 12 4 | -17 16 -1 13 3 -34 -56 -7 34 -44 15 -58 25 -38 -12 -34 42 12 -29 -59 5 | 34 4 39 -5 21 -32 -54 -58 -51 -45 -51 28 -59 45 44 8 52 -52 15 24 6 | 21 -35 2 16 57 -2 -28 -54 41 -18 34 -28 46 -2 28 13 -38 37 -32 -34 7 | -18 41 -23 -54 -5 36 -44 -2 38 1 4 -24 39 -41 42 48 -57 -3 -26 26 8 | -29 25 -39 -14 7 -50 4 41 -21 21 -18 27 -29 19 -3 -57 -27 21 -4 -27 9 | 43 -31 -38 37 -24 16 -52 -49 11 -49 20 59 9 -24 0 -7 -39 -22 -37 -2 10 | 58 -43 -24 -53 -50 16 -3 27 36 -28 -29 -21 -41 -26 57 12 -23 31 -19 55 11 | -38 -43 36 -51 -57 48 42 -58 -17 -47 -32 23 -26 -46 46 -52 48 21 50 -17 12 | 47 21 -44 2 42 10 59 -12 29 11 12 24 -11 53 -1 23 -27 59 -57 45 13 | 25 19 -54 30 19 12 -24 -40 -38 -6 -26 1 -15 41 53 7 -27 -37 -4 50 14 | -51 -30 -34 -55 -24 44 18 -56 56 33 -38 -38 1 -34 0 -27 19 -30 2 -35 15 | 15 -34 12 6 -46 -56 1 57 -9 -28 -37 7 37 -13 -1 -24 -40 -56 52 5 16 | -4 -7 1 -32 38 -58 -8 -12 -56 6 -57 57 -38 -21 -35 3 -20 -17 8 10 17 | -50 50 5 44 -39 -6 -48 12 -38 36 -47 -57 46 8 -54 44 55 31 -41 -40 18 | -27 55 5 27 13 54 21 5 -20 -35 22 -30 56 3 -9 -9 43 26 -53 -24 19 | 43 -37 -4 0 -22 -10 50 -55 18 -40 -29 -57 10 -8 23 33 -38 59 53 50 20 | -41 41 20 51 -6 48 -11 57 -44 59 33 35 3 21 -11 51 -4 -19 39 -19 21 | -------------------------------------------------------------------------------- /test/42.fdf: -------------------------------------------------------------------------------- 1 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | 0 0 5 5 5 5 5 5 0 0 0 5 5 5 5 5 5 0 0 4 | 0 0 5 5 0 0 5 5 0 0 0 5 5 5 5 5 5 0 0 5 | 0 0 5 5 0 0 5 5 0 0 0 0 0 0 0 5 5 0 0 6 | 0 0 5 5 5 5 5 5 0 0 0 0 0 0 0 5 5 0 0 7 | 0 0 5 5 0 0 5 5 0 0 0 0 0 0 0 5 5 0 0 8 | 0 0 5 5 0 0 5 5 0 0 0 0 0 0 0 5 5 0 0 9 | 0 0 5 5 5 5 5 5 0 0 0 0 0 0 0 5 5 0 0 10 | 0 0 5 5 5 5 5 5 0 0 0 0 0 0 0 5 5 0 0 11 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -------------------------------------------------------------------------------- /test/50-4.fdf: -------------------------------------------------------------------------------- 1 | 3 2 2 -1 0 0 1 -2 -3 -1 3 0 1 -1 0 3 0 0 0 -3 -1 -3 3 -1 1 2 2 -3 -3 3 -3 2 -1 2 0 3 -1 0 3 -1 2 1 0 -1 1 0 -1 3 -3 -3 2 | -3 2 -1 3 -1 -3 0 0 -3 0 0 0 0 -1 3 0 -1 0 1 3 1 1 0 2 1 0 -2 1 -3 3 -3 0 2 2 -3 -1 2 0 0 -3 1 1 0 0 2 3 -1 -1 1 -2 3 | 0 -3 -1 1 2 0 -1 3 -2 -1 1 2 -2 -3 -1 1 -3 2 0 0 2 0 1 3 -3 -1 1 0 2 -3 3 -1 3 -2 -2 0 1 2 -3 2 -3 -2 2 0 1 -3 -2 0 -2 1 4 | -1 0 0 -2 1 -2 0 0 -1 -1 1 0 -3 3 3 2 0 0 0 0 -2 3 0 3 2 1 1 2 0 -3 -3 0 -3 -2 -2 0 1 -2 0 0 -3 -3 0 2 -3 -3 1 0 2 2 5 | 1 -3 -2 -2 0 3 0 0 -2 2 -2 3 -2 -2 0 -2 2 3 0 0 -1 -1 1 -1 1 0 1 0 -2 0 3 -1 3 -3 0 2 -3 0 0 1 0 0 -3 0 1 -2 1 -1 -2 -2 6 | -2 -1 3 -2 0 1 -3 3 1 2 2 3 0 -3 -1 1 -1 2 0 1 1 -1 -2 -2 -3 3 0 0 -1 0 2 -3 -1 3 0 1 -3 0 0 -3 2 0 1 0 1 -3 -3 0 1 1 7 | -3 0 3 0 0 -2 1 -2 0 -1 0 1 -3 2 -2 -2 2 0 -1 -1 0 -3 -1 0 -1 0 0 -2 2 2 3 -3 1 -2 -1 -1 0 1 -1 0 0 2 -1 1 0 -3 -1 -2 0 2 8 | -1 -3 0 -1 -2 3 -3 -3 2 2 1 0 -1 2 -2 2 0 1 2 -3 3 0 2 3 -3 -3 3 0 0 -2 2 -2 -2 0 3 -1 2 0 0 1 2 0 -2 -2 -2 -2 3 -3 -3 0 9 | 2 2 3 0 3 -3 0 -3 0 -1 1 -3 0 1 -2 1 2 -3 -1 0 1 0 -1 0 1 3 -1 3 3 -2 1 3 -2 2 0 0 1 1 2 0 3 2 1 -2 2 -1 -3 0 0 2 10 | -2 -1 2 -2 2 -3 0 3 -2 3 0 -2 -1 -2 2 -2 -3 -1 -1 -2 -1 1 1 -1 0 -3 3 -1 2 -2 2 -3 0 0 -3 -2 -1 2 2 2 2 1 1 2 0 0 2 3 0 1 11 | -2 0 -2 0 2 -2 3 -2 2 0 0 3 -1 0 1 -1 -2 -3 2 0 -3 0 -3 1 -3 1 -1 -2 1 1 0 3 3 -2 -1 0 3 0 -2 0 2 2 3 0 -2 -1 0 2 -2 0 12 | -3 0 0 -1 -2 0 -2 2 -3 -2 0 -1 2 3 0 0 -3 0 1 1 0 -3 0 0 -1 1 3 -1 0 0 -3 1 -3 -2 1 -1 -2 -1 3 2 -2 -1 1 2 -2 -3 1 3 2 0 13 | -3 3 -3 -1 -2 0 3 2 0 -1 0 3 2 1 -2 3 -3 2 -2 0 -2 3 1 -1 2 3 -2 2 1 3 1 3 1 -3 3 -2 2 -2 1 2 -1 -3 0 -2 1 3 -1 1 3 0 14 | 1 3 0 0 0 0 0 -2 1 0 3 -2 -2 2 2 2 -3 0 0 1 0 -1 2 1 -2 0 0 3 -2 0 0 1 1 -2 -2 -2 1 1 3 -3 0 1 0 0 0 3 -2 3 0 3 15 | -1 2 -1 1 0 -1 2 0 -3 2 -1 2 2 3 2 2 -2 1 0 0 2 0 -2 -3 1 0 -3 2 0 2 -1 -2 -3 0 3 -3 3 -3 -2 1 -3 1 0 0 0 1 -3 -2 0 -1 16 | 1 3 0 3 1 0 -2 0 -2 -2 -2 -1 -2 -1 -2 1 -3 2 0 0 0 -1 0 2 -3 0 3 -3 -2 -2 3 3 -1 2 -3 -2 0 -3 -1 -3 3 0 2 -2 -2 -2 3 0 -2 2 17 | 1 0 1 -1 3 -2 0 0 2 0 0 0 -3 -2 0 1 1 0 -3 -2 -3 2 -3 1 2 0 3 1 1 0 -1 -3 1 -2 -1 -3 2 3 -1 3 0 -3 2 1 -3 0 -1 -3 -3 2 18 | -3 2 0 3 0 0 1 2 -2 -1 0 -3 -1 0 0 -2 3 0 3 3 0 -2 3 -2 -1 -2 -2 -1 -3 0 -1 0 2 0 -1 0 1 -1 -1 3 0 0 0 -2 -3 2 0 -3 0 3 19 | -1 2 3 0 -1 -1 -2 0 3 0 0 2 3 -2 0 -2 0 3 2 1 0 -1 3 -3 -3 3 2 0 0 2 0 3 0 1 -1 -1 2 -3 -1 -2 0 0 2 -1 1 0 -2 2 -3 2 20 | -2 2 -3 0 0 0 -2 3 1 0 -3 -3 0 0 3 2 0 -2 3 2 0 1 0 1 0 3 0 0 2 1 1 -1 2 0 3 -1 2 2 0 1 0 0 1 3 -1 2 3 3 3 0 21 | 0 2 0 -1 0 -2 -1 -1 -1 -2 -1 -2 -1 3 -3 -1 0 3 0 3 0 2 2 -3 0 -3 1 3 -2 0 0 -2 3 0 0 2 0 -3 2 -3 0 -2 -3 -3 2 2 0 -1 1 1 22 | 3 -3 2 -1 -1 -1 0 0 2 1 2 -2 -1 -3 3 -1 3 0 -3 3 2 2 0 3 2 -2 3 -1 -2 3 -1 3 -2 -2 0 3 -1 1 1 -2 -1 -1 -3 3 1 0 2 0 1 -2 23 | 0 3 -1 2 -1 3 2 1 0 3 -1 2 1 -2 -2 -3 0 3 -3 2 -3 0 -2 0 1 3 -2 0 -3 0 -2 -1 0 -1 0 1 0 -2 -3 0 0 2 1 0 2 0 3 1 -3 1 24 | 1 -1 2 -3 2 -3 0 0 3 -3 0 -3 -2 0 -2 0 -1 0 -2 0 0 0 3 0 0 3 1 2 1 0 0 1 1 2 -3 1 0 3 0 3 3 0 3 0 2 -2 2 3 3 2 25 | 0 -1 0 0 3 1 2 0 0 2 -3 -2 1 0 -2 2 0 2 -3 -2 -3 0 3 0 2 0 -2 1 0 -3 3 3 -3 -3 2 -2 -3 -1 0 -3 0 1 0 0 2 2 1 0 1 -2 26 | 3 3 3 1 -2 3 -2 2 2 -2 2 -3 -2 3 1 2 0 0 -2 3 -1 0 1 2 0 -1 2 0 -1 0 0 0 2 -2 3 0 2 3 0 3 -3 0 0 0 1 3 0 -1 3 -1 27 | -2 -3 2 -1 -1 -2 0 0 0 0 1 3 -3 1 0 -1 0 -3 2 -2 0 1 -1 0 0 1 0 3 0 0 3 -1 -3 1 3 3 0 -1 0 3 -1 -1 -3 -3 3 -3 0 0 0 1 28 | 0 -1 0 0 2 -1 -3 -2 0 2 3 2 0 -1 0 -3 3 -1 0 2 -1 -1 -2 2 0 0 0 -1 1 0 -3 0 1 3 1 3 0 0 -3 0 2 3 0 1 3 3 -2 -3 -1 -1 29 | 3 -1 0 1 -3 -1 0 0 -2 -2 -2 2 1 -3 0 -3 3 2 2 2 1 0 0 -3 3 1 3 3 -3 -2 0 0 3 1 -1 0 0 3 -3 -2 -2 2 0 1 0 0 0 -2 3 0 30 | 3 3 2 -2 3 1 -2 0 0 -3 0 -1 -1 -2 2 3 -1 2 0 1 1 2 2 -2 1 0 0 -1 -2 0 3 3 3 0 0 3 2 1 -3 3 0 0 0 0 3 -1 -2 3 -1 0 31 | 2 -2 -3 -1 0 2 -2 0 1 -1 0 -2 3 3 2 -3 2 -2 2 1 3 3 -1 -3 0 -2 -2 -3 -3 2 0 1 -2 -3 2 -3 0 0 0 0 2 0 -1 -2 3 0 1 1 3 2 32 | 0 3 0 -1 -2 0 -3 0 0 0 2 3 0 3 0 2 0 -1 -1 -2 0 2 0 -1 2 1 -1 3 0 -3 -1 2 3 0 1 -3 -1 0 0 -2 1 -3 0 1 -2 1 1 0 -3 1 33 | 0 0 3 -1 0 -1 3 1 2 0 -1 0 -3 0 -2 0 1 0 -1 2 2 0 3 0 1 -2 0 -3 2 2 0 3 3 -1 -2 -3 -2 -3 0 2 2 -1 3 -2 0 0 -1 -1 0 0 34 | 2 0 -2 -2 0 0 0 2 -1 2 3 1 -3 2 1 -1 0 -1 2 0 -2 -2 -2 0 -1 2 3 0 3 0 1 0 2 -3 0 1 -3 2 1 -3 2 -1 2 -3 0 1 -1 0 2 -1 35 | 3 -3 -3 -3 2 0 3 0 2 2 0 -1 0 -3 0 3 -1 0 3 0 0 -2 0 3 -1 -2 -1 -2 -3 0 -3 0 0 0 0 0 -2 0 2 -2 3 0 1 0 3 2 0 0 -1 0 36 | -1 1 0 1 0 2 3 -3 0 -3 2 -3 -3 2 -1 -1 0 3 1 0 3 -2 -2 2 -3 3 0 3 2 -2 -1 -1 -1 2 1 0 1 0 3 -3 0 -1 1 3 3 -1 0 1 3 0 37 | 3 -1 -3 0 2 1 3 0 -3 0 3 0 0 2 -3 0 -3 1 3 0 3 0 0 1 3 -3 1 3 2 3 -3 2 -1 -2 2 -2 0 1 -2 1 -1 0 0 1 0 -2 -3 0 -1 -3 38 | -2 1 3 2 3 1 -3 1 0 -3 3 1 0 -1 -3 -1 0 3 -3 0 3 0 1 2 -2 -3 -3 2 -1 3 1 1 -1 0 -2 -3 -1 -2 -3 1 0 0 3 0 -2 0 3 1 0 1 39 | 2 -2 -3 -1 1 0 2 -2 -3 0 -2 0 2 -2 -2 0 -2 -3 -1 2 0 0 3 3 2 -2 1 1 2 0 -3 -1 0 1 3 1 -3 1 0 3 1 0 1 1 3 0 2 2 0 2 40 | 0 0 0 2 3 -3 0 -2 -1 1 0 1 -1 2 -3 -3 0 0 0 2 3 -3 0 0 2 -3 1 0 1 -1 0 0 -2 2 1 3 1 -1 -3 3 0 0 0 -2 -1 0 -1 -3 1 -1 41 | 2 1 1 3 3 0 1 -1 -2 3 2 -3 -3 -1 1 -1 0 -2 3 2 1 3 3 2 2 0 -1 1 0 0 0 -1 0 -2 0 1 0 3 -3 -1 1 -3 0 1 2 3 2 -2 1 -2 42 | -1 -3 1 -2 0 -3 2 -3 -2 -1 -1 0 0 1 -1 3 2 2 1 3 2 0 1 2 -2 -2 -2 1 -1 0 3 3 2 -3 -1 2 3 -1 2 -2 3 3 3 -2 0 2 -1 3 2 2 43 | -2 1 1 -1 -1 0 0 -1 1 1 0 1 3 0 0 1 1 1 0 -2 -3 -3 -2 -2 -3 -3 2 3 2 1 2 -1 1 -3 -2 2 0 2 -2 0 1 -1 1 -2 -3 0 -2 -3 1 1 44 | 0 -1 2 1 2 0 -1 1 0 -2 -2 -1 3 -2 2 0 -1 1 0 1 1 0 -3 -3 -1 3 3 -1 1 0 2 0 -3 0 -1 0 1 3 3 -3 -1 0 1 3 1 -3 0 -2 -2 -3 45 | 3 2 0 -1 2 2 0 1 -3 2 1 1 0 3 3 -3 0 2 2 -3 1 -3 3 0 -1 -1 0 0 -3 1 0 -1 3 0 2 -3 -2 0 -2 1 1 -1 0 -3 -1 1 2 0 2 1 46 | 0 0 3 2 1 -2 3 0 3 -1 2 -3 0 2 0 1 1 2 2 0 -2 0 2 2 -3 -3 3 -3 0 0 0 2 -3 2 0 0 -1 -3 2 -2 2 -3 -2 -3 1 -3 3 -3 2 0 47 | 0 2 -3 -1 3 0 -2 2 -3 3 3 0 1 1 -3 0 0 -3 1 -1 -1 -3 3 1 3 0 -1 0 3 -1 3 0 -3 0 3 3 -2 0 -3 2 0 -2 3 -2 3 3 -1 -2 3 -2 48 | -3 -3 1 0 -1 -3 1 3 3 0 -1 3 2 -2 1 -2 -3 3 0 -2 0 -3 0 0 1 2 2 0 -3 -3 0 0 2 -1 3 3 -1 3 -3 0 -2 2 2 3 -1 1 1 0 -3 -2 49 | -2 -3 0 0 1 0 -3 -2 -2 -3 -2 1 3 2 -2 3 0 0 -2 2 -1 2 1 0 -2 3 -2 -2 -1 -1 1 1 0 1 0 1 0 -3 -2 1 0 1 3 2 3 -3 2 0 0 1 50 | 1 -2 -3 -1 2 -3 -1 0 1 3 -3 -3 0 -1 0 0 2 2 -1 3 0 2 3 1 1 1 -2 -1 1 -2 1 -1 -1 -1 2 -3 -2 1 -2 1 0 0 2 -3 0 -1 2 -2 -2 -1 51 | -------------------------------------------------------------------------------- /test/basictest.fdf: -------------------------------------------------------------------------------- 1 | 0 0 1 2 3 4 5 6 7 8 9 2 | 0 0 0 1 2 3 4 5 6 7 8 3 | 0 0 0 0 1 2 3 4 5 6 7 4 | 0 0 0 0 0 1 2 3 4 5 6 5 | 0 0 0 0 0 0 1 2 3 4 5 6 | 0 0 0 0 0 0 0 1 2 3 4 7 | 0 0 0 0 0 0 0 0 1 2 3 8 | 0 0 0 0 0 0 0 0 0 1 2 9 | 0 0 0 0 0 0 0 0 0 0 1 10 | -------------------------------------------------------------------------------- /test/elem-col.fdf: -------------------------------------------------------------------------------- 1 | 0 0 0 0 0 0 0 0 0 0 2 | 0 10 10 10 10 10 10 10 10 0 3 | 0 10 20,0xFF0000 15,0xFF0000 12 15,0xFF0000 17,0xFF0000 20,0xFF0000 10 0 4 | 0 10 15,0xFF0000 10 12 15,0xFF0000 15,0xFF0000 15,0xFF0000 10 0 5 | 0 5 15,0xFF0000 10 12 15,0xFF0000 15,0xFF0000 13 10 0 6 | 0 5 10 5 7 12 12 12 10 0 7 | 0 5 7 1 2 7 5 5 7 0 8 | 0 3 0 0 1 2 2 2 5 0 9 | 0 1 0 0 0 0 0 0 3 0 10 | 0 0 0 0 0 0 0 0 0 0 11 | -------------------------------------------------------------------------------- /test/elem.fdf: -------------------------------------------------------------------------------- 1 | 0 0 0 0 0 0 0 0 0 0 2 | 0 10 10 10 10 10 10 10 10 0 3 | 0 10 20 15 12 15 17 20 10 0 4 | 0 10 15 10 12 15 15 15 10 0 5 | 0 5 15 10 12 15 15 13 10 0 6 | 0 5 10 5 7 12 12 12 10 0 7 | 0 5 7 1 2 7 5 5 7 0 8 | 0 3 0 0 1 2 2 2 5 0 9 | 0 1 0 0 0 0 0 0 3 0 10 | 0 0 0 0 0 0 0 0 0 0 11 | -------------------------------------------------------------------------------- /test/elem2.fdf: -------------------------------------------------------------------------------- 1 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 | 0 0 0 50 50 0 0 0 0 0 0 0 50 50 50 0 0 0 0 0 5 | 0 0 0 50 50 0 0 0 0 0 0 0 50 50 50 50 0 0 0 0 6 | 0 0 0 50 50 0 0 0 0 0 0 50 50 0 50 50 50 0 0 0 7 | 0 0 0 50 50 0 0 0 0 0 0 50 50 0 0 50 50 0 0 0 8 | 0 0 0 50 50 0 0 0 0 0 0 50 50 0 0 50 50 0 0 0 9 | 0 0 0 50 50 0 0 0 0 0 0 0 0 0 0 50 50 0 0 0 10 | 0 0 0 50 50 50 50 50 0 0 0 0 0 0 50 50 50 0 0 0 11 | 0 0 0 50 50 50 50 50 0 0 0 0 0 50 50 50 0 0 0 0 12 | 0 0 0 50 50 50 50 50 0 0 0 0 50 50 50 0 0 0 0 0 13 | 0 0 0 0 0 50 50 0 0 0 0 50 50 50 0 0 0 0 0 0 14 | 0 0 0 0 0 50 50 0 0 0 0 50 50 0 0 0 0 0 0 0 15 | 0 0 0 0 0 50 50 0 0 0 0 50 50 50 50 50 50 0 0 0 16 | 0 0 0 0 0 50 50 0 0 0 0 50 50 50 50 50 50 0 0 0 17 | 0 0 0 0 0 50 50 0 0 0 0 50 50 50 50 50 50 0 0 0 18 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 | -------------------------------------------------------------------------------- /test/fdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/genesis0x/FDF/ca45b331e2c9b757d9d859d7308221322e885012/test/fdf -------------------------------------------------------------------------------- /test/mars.fdf: -------------------------------------------------------------------------------- 1 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 10 9 9 9 8 6 8 9 9 11 10 9 10 9 9 9 10 9 9 9 9 9 9 9 10 10 9 10 10 9 10 9 9 10 10 9 9 10 9 9 10 9 9 9 9 9 9 9 9 8 10 9 9 9 9 9 10 9 9 9 9 10 9 10 10 10 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 6 10 9 9 9 2 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 10 9 9 9 8 8 10 10 11 11 9 9 9 9 9 9 10 9 9 9 9 9 9 10 9 9 9 10 10 10 10 9 9 10 10 9 9 9 9 9 9 8 10 10 9 9 9 9 8 9 10 9 9 9 9 9 10 10 9 10 10 9 9 10 9 10 9 9 10 10 9 10 9 10 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 3 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 10 10 9 9 9 9 9 11 10 9 9 9 9 9 9 9 9 10 9 10 9 9 9 9 10 10 9 10 10 10 10 9 10 7 9 9 9 9 9 9 9 9 9 9 10 9 10 9 9 7 10 10 9 9 10 9 9 9 10 9 9 10 9 9 10 10 10 8 10 10 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 4 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 10 9 9 9 9 10 9 9 10 9 9 9 9 9 9 9 9 9 10 9 9 9 10 9 9 9 9 9 9 10 10 9 10 10 10 10 9 9 6 11 10 10 9 9 10 10 8 9 9 9 9 9 9 8 9 10 9 9 9 10 9 10 10 9 10 9 9 9 9 10 10 9 9 10 10 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 5 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 10 10 9 10 9 9 9 9 9 8 9 9 9 9 9 9 9 10 10 9 10 10 9 9 10 10 10 10 10 10 10 9 9 8 12 10 9 9 10 10 9 8 9 9 9 9 9 8 8 10 9 9 9 9 10 9 9 10 9 9 10 9 9 9 10 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 8 9 9 9 10 6 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 8 10 8 10 8 10 9 9 9 9 10 10 9 10 10 9 9 9 10 10 10 10 8 9 10 8 10 10 10 9 10 10 10 8 8 9 9 9 9 9 9 7 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 10 9 9 10 9 9 9 9 9 10 9 10 10 9 9 9 9 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 10 10 7 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 10 9 9 9 9 9 9 10 8 10 9 9 9 9 10 10 10 10 10 9 10 10 10 10 10 9 7 8 10 6 11 10 9 8 10 9 9 8 10 9 9 9 9 8 10 6 10 9 9 9 9 10 9 9 10 9 9 9 9 9 10 9 9 9 10 9 9 10 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 8 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 10 9 9 10 9 10 9 10 9 9 9 9 9 9 8 10 9 9 9 9 10 10 10 10 10 10 10 10 10 9 10 9 9 11 10 7 11 10 9 8 10 9 9 9 10 9 9 8 9 8 8 7 10 8 10 9 10 9 9 9 9 9 9 10 9 10 10 9 9 9 10 9 10 9 9 9 9 9 9 9 9 9 10 9 10 9 9 9 9 9 9 9 9 9 9 9 8 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 9 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 10 9 9 10 9 9 10 9 10 9 10 9 10 9 9 10 9 8 10 9 9 9 10 10 10 10 10 10 10 10 9 10 10 10 7 10 10 8 9 10 9 9 9 10 9 8 9 9 9 10 8 9 9 6 8 10 9 10 9 9 9 9 10 9 9 10 9 9 10 10 10 9 10 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 10 9 9 9 10 9 10 9 9 10 9 9 9 9 9 8 10 9 8 10 9 9 9 10 10 10 10 10 9 10 10 9 10 10 8 7 11 9 7 8 10 9 8 10 10 9 8 9 9 9 9 9 8 8 8 8 9 10 9 9 9 9 10 9 9 9 9 9 10 9 10 9 9 10 9 9 10 9 9 9 9 9 9 9 10 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 10 9 10 10 10 10 9 9 11 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 10 9 9 9 9 10 9 10 9 9 9 9 9 10 9 9 9 10 9 9 9 9 9 10 9 8 10 9 9 9 9 10 10 10 10 9 10 10 9 10 10 10 10 10 9 8 10 10 9 7 10 10 8 8 10 9 9 9 9 8 9 6 9 10 10 9 9 9 10 9 9 10 9 9 9 10 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 10 9 9 9 10 10 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 10 10 9 10 9 9 12 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 10 9 10 10 9 9 10 9 10 10 10 9 9 10 9 10 9 9 8 9 9 9 10 9 9 9 9 9 9 10 9 9 10 10 10 10 10 10 9 10 10 9 10 10 9 10 9 9 9 8 9 8 8 11 9 9 9 9 8 9 9 9 9 9 6 10 11 10 9 9 9 9 9 9 9 9 9 9 10 9 9 9 10 9 10 9 9 9 9 9 10 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 10 9 9 8 9 9 9 9 9 9 9 9 9 9 10 10 9 10 10 9 9 9 9 9 9 10 9 9 9 9 9 9 13 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 10 9 10 10 10 9 10 10 9 10 9 8 8 10 9 9 9 9 9 10 9 9 10 10 9 9 10 10 10 10 10 9 9 10 10 9 10 10 9 10 9 9 8 8 9 8 10 10 8 9 9 8 9 9 9 9 9 9 7 9 11 9 9 9 9 9 9 9 9 10 9 9 10 9 9 9 10 9 10 10 9 9 9 9 10 9 9 9 9 10 10 10 9 9 9 9 9 9 9 10 9 7 9 9 9 9 9 9 9 9 9 9 9 10 10 10 9 10 9 9 9 9 9 10 9 9 9 9 9 9 9 9 14 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 10 10 9 9 9 9 10 9 9 9 9 9 9 9 10 9 10 9 9 9 9 10 9 7 10 9 9 9 9 10 9 9 9 9 10 9 9 9 10 10 10 10 10 9 9 10 10 9 10 9 9 10 8 9 7 8 9 10 10 10 8 9 8 8 9 9 9 8 9 8 7 10 11 9 9 9 9 9 9 9 9 9 10 10 9 9 10 9 9 10 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 10 9 9 9 9 10 9 8 10 9 9 9 9 9 9 9 9 9 9 10 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 15 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 10 9 10 9 9 9 9 9 9 10 9 9 9 9 10 9 10 7 7 9 9 9 10 10 9 9 9 9 10 10 9 7 11 9 9 9 9 10 9 8 9 9 10 9 9 10 9 10 10 10 10 9 10 10 10 9 10 9 9 10 8 10 7 10 9 10 10 9 9 9 8 8 10 9 9 9 9 9 7 10 10 9 9 9 9 10 9 9 9 9 9 10 9 9 10 10 9 10 9 9 9 9 10 10 9 9 9 10 9 10 9 9 10 9 9 10 9 9 9 9 7 4 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 8 7 5 6 6 7 5 4 16 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 10 9 9 9 9 9 9 9 9 9 10 10 9 10 9 7 10 11 9 10 10 10 9 9 9 9 10 10 9 8 11 9 9 9 9 10 9 8 11 9 10 9 9 10 9 10 10 10 10 9 10 10 9 10 10 9 9 9 9 9 5 8 9 10 9 8 9 8 8 9 8 9 9 9 8 9 7 10 9 9 9 9 9 10 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 10 9 9 10 10 9 9 9 9 6 6 10 9 9 9 9 9 9 9 9 10 9 9 10 10 9 9 9 9 9 9 5 5 9 10 11 11 11 9 10 8 17 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 9 10 10 9 10 9 9 10 10 9 10 9 9 9 9 9 10 10 9 9 9 11 9 9 10 9 10 8 8 11 9 10 9 9 10 10 10 10 9 10 9 10 10 9 10 10 9 10 8 10 8 4 9 9 7 6 5 5 6 7 8 9 9 9 9 8 9 6 10 9 9 9 9 9 9 9 9 9 9 10 9 9 9 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 10 9 9 9 8 8 4 7 10 10 9 9 10 9 9 9 9 9 10 10 10 10 9 9 9 9 8 8 10 12 11 10 10 10 10 9 9 9 18 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 10 9 9 9 9 9 9 10 9 9 9 10 9 9 9 9 9 8 10 9 10 9 9 10 9 10 9 10 9 10 9 9 9 9 9 9 9 6 9 11 9 10 9 9 10 9 10 10 10 10 9 10 10 10 10 9 9 10 8 10 8 5 12 11 10 9 9 11 10 11 10 9 9 8 8 9 9 7 10 9 9 9 9 9 9 9 9 10 9 10 9 9 9 9 10 9 9 9 10 9 10 9 9 9 10 9 9 9 9 9 9 9 8 9 8 8 8 9 10 5 8 10 10 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 9 11 10 9 9 9 9 9 9 9 9 9 19 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 10 10 9 9 9 9 9 10 10 10 10 9 10 9 9 10 9 9 9 10 9 10 9 9 10 10 10 9 10 9 9 7 9 9 9 9 9 9 6 10 10 10 10 9 10 10 9 10 10 9 9 9 11 10 10 9 10 9 8 7 7 6 6 12 9 9 9 9 9 9 10 9 9 10 10 9 10 8 9 9 9 9 10 9 9 9 9 9 9 10 9 10 9 10 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 10 9 9 9 10 10 9 9 8 2 8 11 9 9 9 9 9 9 9 10 9 9 9 10 9 9 9 9 9 10 10 10 9 9 9 9 9 9 9 9 9 20 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 10 10 10 10 9 10 10 10 9 9 9 10 9 9 10 10 10 10 9 9 9 10 9 9 9 9 10 9 10 9 8 10 10 9 9 9 10 9 7 11 9 9 9 9 7 7 11 10 8 7 9 10 10 10 10 10 9 9 10 10 9 10 9 9 9 8 10 10 8 9 12 9 9 9 9 9 9 8 9 9 9 9 8 10 7 10 9 9 9 9 9 9 9 9 9 9 10 10 10 9 10 10 9 9 9 10 9 10 9 9 8 10 10 9 9 9 9 10 9 9 9 9 10 9 9 10 8 3 10 12 10 10 10 9 9 9 10 9 9 9 10 10 9 9 9 9 10 10 9 9 9 9 9 9 9 9 9 9 10 21 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 9 10 9 9 9 9 10 9 9 10 10 10 10 9 10 10 10 9 9 9 10 9 9 9 9 9 10 9 9 9 8 10 9 9 10 9 9 9 9 10 9 9 9 8 6 9 12 9 5 9 10 9 10 10 10 10 10 9 11 10 9 9 9 9 9 8 10 10 6 6 10 9 9 9 9 9 9 9 9 9 9 9 9 9 6 10 9 9 9 9 9 9 9 9 9 10 10 10 9 9 10 9 9 9 9 10 9 10 9 9 10 9 9 9 9 9 10 9 9 9 9 9 9 8 7 9 8 2 10 11 8 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 10 10 10 22 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 10 10 9 9 10 9 9 10 9 9 9 10 10 10 7 7 10 9 9 9 9 9 10 9 9 9 8 10 10 9 10 9 9 10 9 9 10 9 9 9 8 9 9 9 9 7 9 9 11 9 9 11 10 9 10 10 10 10 9 9 10 10 9 9 9 9 8 10 9 10 5 6 12 8 8 9 9 9 9 9 9 9 9 9 9 7 6 11 9 9 9 9 10 9 9 10 9 10 10 9 9 9 10 9 9 8 8 10 9 9 9 10 9 9 9 9 9 9 9 8 8 8 8 7 4 2 2 2 3 1 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 6 8 10 10 9 9 9 9 9 9 9 10 10 9 9 9 23 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 10 9 9 10 9 10 10 10 10 10 7 11 10 10 10 10 9 9 9 9 9 9 8 10 9 9 9 9 9 10 9 9 10 10 9 8 4 9 8 4 6 6 10 9 10 9 10 9 10 9 10 10 9 9 9 10 10 10 9 9 9 8 8 10 9 10 6 7 13 10 9 10 9 9 9 9 9 9 8 9 9 5 10 10 9 9 9 9 9 9 9 9 9 10 10 9 9 10 10 9 9 6 8 10 9 9 10 10 9 9 9 9 9 10 9 10 9 8 5 5 7 8 10 6 3 5 13 11 9 9 9 9 9 9 9 9 9 9 8 6 6 3 8 10 9 9 9 9 9 9 7 8 7 8 9 7 8 24 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 8 10 9 9 10 9 9 9 9 9 10 9 9 6 7 12 9 7 12 9 11 8 10 10 10 9 9 9 10 9 10 9 10 10 10 10 9 9 10 8 9 9 9 9 7 4 12 9 9 9 9 9 9 9 9 8 9 9 9 7 11 10 9 9 9 9 9 9 10 9 10 10 9 10 9 9 9 8 8 2 9 10 9 9 9 9 9 9 9 9 10 10 9 9 9 7 11 12 11 12 9 3 8 11 13 9 9 9 9 9 9 9 9 10 10 9 7 5 3 3 10 9 9 9 9 9 9 8 3 6 3 6 5 2 4 25 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 10 8 9 9 9 9 9 10 9 9 9 9 10 9 9 9 9 8 9 9 9 8 10 10 10 10 10 10 10 10 9 10 9 9 7 10 11 9 10 10 8 11 7 9 10 9 9 9 8 11 10 10 9 9 10 10 9 9 10 9 8 9 9 10 9 7 6 12 9 9 9 9 9 9 9 9 8 9 9 7 6 11 9 9 9 9 9 9 9 9 9 10 10 9 10 9 10 9 7 3 4 11 11 9 9 9 9 9 9 9 10 8 9 9 9 9 10 9 9 9 8 7 2 7 9 11 8 8 7 4 7 9 9 9 10 9 9 8 5 4 7 10 10 9 9 9 9 9 6 5 3 4 7 3 4 3 26 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 10 10 9 9 10 9 9 10 9 10 9 9 9 9 9 9 9 9 9 10 10 9 9 9 7 10 8 7 5 9 10 10 10 9 9 9 10 10 9 9 9 6 9 10 9 10 9 5 8 4 9 10 9 9 10 9 10 10 10 10 10 10 9 8 9 10 9 8 8 9 10 9 6 4 9 9 9 9 9 9 9 9 9 9 9 9 8 10 10 9 9 10 9 9 9 9 9 9 10 10 9 9 9 9 8 7 4 8 13 10 9 9 9 9 9 9 10 10 10 10 9 9 9 9 9 6 5 3 4 1 4 8 9 3 2 2 1 5 5 9 9 9 9 3 4 6 3 12 10 10 10 9 9 7 9 6 2 6 7 7 4 6 3 27 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 10 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 10 9 9 9 9 5 7 8 10 8 10 10 10 10 10 8 10 9 9 9 8 4 3 10 9 9 9 7 8 8 8 12 10 9 9 10 10 10 10 10 9 10 9 9 8 10 9 9 7 8 9 9 8 5 5 12 10 9 9 9 9 9 9 8 10 9 9 8 10 10 9 9 10 9 9 9 9 9 10 10 9 9 9 10 9 9 8 4 6 12 10 9 9 9 9 9 9 10 10 9 9 9 9 8 6 2 2 2 2 1 3 2 8 10 5 2 1 2 6 5 9 7 4 7 2 7 2 4 10 11 10 10 9 4 2 6 4 4 4 5 6 3 6 5 28 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 10 10 10 9 9 9 9 10 9 9 9 9 9 9 9 10 10 9 8 9 8 9 9 8 6 11 12 10 8 6 10 9 10 9 9 9 9 9 8 3 5 9 10 8 7 4 5 11 10 10 9 10 9 8 9 10 9 10 9 9 10 8 8 9 10 9 8 6 9 9 7 4 3 11 9 6 8 9 9 9 8 9 9 10 9 9 7 10 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 4 4 8 8 4 5 5 4 4 3 5 6 7 9 7 4 4 5 7 8 10 9 7 5 3 8 7 3 2 6 6 8 7 8 2 6 6 1 3 5 8 13 12 9 6 4 1 4 7 6 7 4 9 10 10 10 9 29 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 10 10 9 10 10 9 9 9 9 10 9 8 9 8 8 9 10 10 10 10 9 9 11 10 10 9 9 8 11 10 8 3 7 12 10 10 9 9 9 10 9 4 9 12 12 12 10 9 6 11 11 10 9 5 10 10 8 10 10 9 10 9 10 10 4 5 8 9 7 7 9 11 11 6 5 12 13 8 4 10 9 9 9 8 10 10 9 9 8 5 11 9 9 9 9 9 9 9 9 9 10 10 9 9 10 9 9 10 6 1 4 10 4 1 2 3 4 3 3 2 1 2 4 4 8 11 11 8 11 13 10 10 6 4 7 5 5 7 7 8 9 11 5 5 5 4 1 5 7 10 10 7 4 1 1 2 5 4 4 6 7 10 10 11 11 13 30 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 10 9 9 10 10 9 9 9 10 9 10 10 9 9 11 10 10 10 10 10 9 9 10 10 10 10 10 8 10 10 8 2 10 11 9 10 10 10 9 10 8 7 12 9 9 9 9 9 6 11 10 10 10 5 4 7 8 11 10 9 10 10 10 10 8 8 8 7 6 10 10 10 9 5 8 12 9 8 5 12 10 9 9 9 10 10 9 9 7 6 12 9 9 9 9 9 9 9 9 10 10 10 10 10 10 9 9 9 2 2 8 7 2 7 10 12 13 13 11 10 8 6 3 3 2 3 5 7 10 9 10 4 2 4 8 8 9 8 9 9 9 5 5 4 4 4 6 9 12 12 8 5 1 2 4 7 8 8 11 14 8 8 9 11 12 11 31 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 8 9 10 9 9 9 9 10 10 10 10 9 9 10 9 9 10 9 9 8 5 4 9 8 5 4 11 12 10 9 10 9 9 8 4 10 10 9 10 10 7 9 8 10 9 10 10 4 5 8 6 9 10 9 10 9 9 10 9 9 10 4 9 11 10 9 8 3 11 10 9 7 6 13 9 9 9 9 10 9 9 6 6 6 8 9 9 9 9 9 9 9 9 10 8 8 9 10 9 9 9 8 1 4 9 9 12 13 13 14 12 11 9 11 7 10 12 12 9 8 6 2 6 8 8 3 2 4 9 11 11 11 11 8 8 8 8 5 7 8 10 13 14 9 7 8 7 8 9 10 9 9 13 14 9 8 11 11 7 5 32 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 8 10 10 9 10 9 9 9 9 9 6 5 9 10 6 9 9 10 9 9 9 7 4 8 12 12 7 3 10 14 12 9 9 9 9 9 6 7 12 10 9 9 9 7 11 9 10 11 12 10 6 6 10 10 10 7 8 9 10 9 9 9 9 7 3 10 8 7 9 5 7 13 9 8 3 11 11 9 9 7 8 10 9 7 4 8 4 7 9 9 9 9 9 9 9 10 9 7 11 9 9 9 9 9 6 0 6 8 12 14 14 12 11 9 10 9 9 7 9 11 10 5 10 10 8 8 4 1 0 0 6 12 13 10 9 10 4 9 9 9 9 9 10 13 14 13 6 5 10 12 12 13 9 6 9 12 10 9 4 5 2 1 5 33 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 10 9 9 9 10 9 10 9 10 9 9 9 9 5 11 10 8 9 10 8 9 9 9 7 5 10 12 10 10 6 7 12 12 9 10 10 8 9 6 8 11 10 9 9 9 8 9 10 10 10 11 10 10 9 6 9 13 12 3 4 8 9 9 9 9 9 9 8 9 8 11 10 7 11 10 7 3 9 11 9 9 8 7 11 10 8 6 11 11 9 8 12 10 9 9 9 9 10 9 9 10 8 9 9 9 9 8 2 2 8 11 14 13 10 9 8 8 6 5 2 5 2 3 2 3 9 10 8 9 9 8 4 4 8 13 14 9 10 4 6 9 9 9 10 9 13 14 14 11 5 3 8 9 11 11 3 3 7 8 7 3 0 2 3 3 5 34 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 11 10 9 9 9 10 10 10 9 10 10 10 9 7 8 11 10 10 9 7 7 8 7 6 7 12 11 10 10 10 7 8 11 11 9 9 9 9 9 4 11 10 9 9 9 9 7 10 10 10 10 10 10 10 9 5 9 11 11 7 10 7 5 4 6 8 10 9 9 6 12 11 8 9 10 9 4 6 12 9 9 9 8 6 9 7 6 11 10 9 9 6 13 10 9 9 9 10 9 9 9 9 10 9 9 9 9 5 0 5 11 13 8 7 8 7 5 2 1 1 1 2 2 4 6 7 9 5 1 1 3 4 4 4 9 13 11 5 3 3 8 10 8 9 9 9 13 11 10 7 2 3 3 3 4 2 1 2 6 8 7 4 5 5 4 5 6 35 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 10 10 9 9 9 9 10 9 7 11 10 10 9 10 9 9 8 3 7 9 10 10 9 10 10 9 7 11 11 9 10 10 10 9 9 12 8 8 8 9 9 6 11 8 9 10 10 10 9 9 7 9 10 11 9 6 5 5 5 9 5 7 8 6 7 9 5 6 6 10 9 3 10 12 9 9 9 5 3 7 7 12 10 9 9 9 8 11 9 9 10 9 10 9 9 9 10 10 9 9 9 8 1 1 7 12 10 6 6 2 2 2 2 6 5 7 9 10 10 10 10 10 8 6 5 2 1 2 3 11 14 9 7 6 10 11 6 4 8 9 10 13 7 7 2 1 1 2 4 4 2 2 6 11 13 13 12 12 11 10 11 12 36 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 10 10 10 10 9 9 10 10 9 9 9 9 10 9 7 11 10 9 10 10 10 10 10 8 9 9 9 9 9 9 9 9 7 10 10 10 9 10 9 9 9 9 8 8 10 10 9 7 10 7 9 8 10 9 6 9 11 10 9 12 10 9 6 10 13 11 7 6 4 7 10 6 5 2 7 10 6 7 12 8 8 9 8 5 9 13 12 10 9 9 9 9 8 7 10 10 9 9 9 9 9 10 10 9 9 9 9 6 0 4 9 13 10 13 11 9 6 4 8 10 11 13 13 11 12 12 10 10 9 9 9 8 8 7 7 9 7 5 4 11 6 1 1 5 9 9 9 8 5 8 3 3 1 5 8 10 12 12 12 13 14 10 10 14 12 12 12 13 37 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 8 9 10 10 10 9 9 9 10 10 9 9 9 9 10 9 7 11 10 9 10 10 9 8 9 7 6 9 8 9 9 9 9 9 8 10 10 9 9 9 9 9 9 8 6 6 5 5 6 9 7 9 9 8 7 4 8 12 10 10 9 11 10 9 5 10 11 9 9 7 8 12 10 9 7 7 9 5 6 12 10 8 5 4 3 2 5 5 8 9 9 9 9 9 7 2 8 9 9 10 9 10 9 10 9 9 10 9 6 6 0 6 12 11 11 13 10 5 5 8 11 13 13 14 10 7 12 9 11 7 10 10 10 12 9 9 11 12 11 3 4 7 0 2 6 9 9 10 10 8 9 6 2 1 5 9 11 13 10 9 10 12 11 5 11 13 10 11 7 10 38 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 10 10 10 9 9 9 10 9 9 9 9 9 9 9 7 11 9 9 9 10 9 9 9 4 7 9 11 9 7 8 9 9 6 8 9 8 8 8 8 7 5 3 3 5 6 5 3 7 7 8 8 3 4 6 11 9 8 9 9 9 7 5 3 8 10 10 9 5 8 13 9 7 5 8 10 7 13 10 9 7 3 3 6 9 10 8 7 9 9 10 9 9 3 3 11 10 9 9 9 10 10 9 9 9 10 8 5 5 2 8 13 10 13 12 9 7 4 11 13 13 11 12 5 9 10 10 7 9 7 10 12 12 3 9 12 12 4 4 8 6 1 5 8 10 10 10 9 9 9 6 4 7 9 10 13 7 6 7 5 5 6 5 11 12 10 7 7 11 39 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 9 10 10 10 9 9 9 10 10 9 9 9 9 9 8 8 11 10 9 9 9 9 9 8 4 11 13 9 7 5 6 6 7 2 6 10 9 9 7 6 5 5 7 12 12 10 11 10 10 10 7 3 5 10 12 12 8 8 8 8 9 4 4 3 6 8 4 3 2 10 6 6 7 5 5 8 9 13 9 9 5 2 10 14 13 11 9 10 5 5 6 8 8 2 5 13 10 10 9 10 10 9 9 9 8 9 8 5 4 3 11 13 11 13 10 10 4 7 13 11 11 10 12 9 10 10 12 7 9 5 11 12 4 3 13 13 10 5 8 9 5 1 7 8 10 10 9 9 9 9 8 8 8 9 9 9 5 6 7 6 4 7 3 3 2 4 6 6 11 40 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 11 10 9 9 9 9 10 10 9 9 9 9 9 8 8 10 9 9 9 10 9 8 6 9 12 10 8 8 10 8 9 6 4 12 11 10 10 10 9 9 11 13 12 10 10 11 9 12 11 7 4 10 12 13 13 12 12 11 10 10 4 6 5 6 5 7 6 7 4 5 9 8 4 6 11 10 10 9 9 5 7 14 10 7 9 9 11 11 10 8 5 5 2 9 11 4 7 9 9 10 9 9 8 5 10 7 3 3 7 13 12 12 13 8 5 2 11 12 10 10 10 11 10 11 10 12 10 10 7 12 9 2 6 13 13 8 4 5 10 6 5 7 9 10 9 9 9 9 9 9 10 10 9 9 9 7 7 6 5 6 6 6 5 6 7 3 5 7 41 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 7 8 9 11 9 9 9 9 9 10 9 9 9 10 10 10 8 9 10 9 8 8 7 4 4 9 12 10 10 9 9 9 9 12 10 6 13 9 9 9 9 10 11 9 11 10 10 10 10 9 12 10 8 9 11 13 14 10 10 9 10 10 9 6 3 5 9 13 12 11 8 7 11 12 9 9 10 5 8 8 8 6 3 12 12 10 10 5 9 10 10 9 9 10 8 4 12 7 4 8 10 9 9 9 8 3 6 10 5 1 7 10 12 6 9 9 2 4 6 13 11 10 10 10 11 11 10 10 11 10 10 6 10 7 4 5 14 10 3 7 9 10 4 5 7 9 9 9 9 9 9 9 9 9 10 8 9 10 8 9 9 8 9 8 6 7 6 6 5 9 2 42 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 8 8 9 10 11 10 9 9 9 10 9 9 9 9 9 9 8 4 8 9 7 7 6 4 7 8 10 12 10 9 8 7 9 11 11 9 8 12 10 9 9 8 9 10 7 10 9 9 10 10 10 10 9 9 9 9 13 10 9 8 7 8 8 8 5 4 9 12 14 10 9 4 7 13 12 9 10 5 9 9 5 2 2 7 11 10 9 9 6 10 10 9 9 9 10 10 7 12 7 5 11 11 9 9 9 3 5 12 10 2 4 8 11 12 7 7 6 7 11 13 13 10 10 10 11 11 11 10 10 10 10 10 7 11 4 2 11 8 2 6 7 5 4 1 5 9 9 10 9 9 9 10 9 10 9 10 9 10 10 9 9 9 8 9 8 8 7 7 4 7 6 1 43 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 8 9 10 11 9 9 9 9 10 9 9 9 9 10 9 5 5 12 10 10 11 10 10 12 10 11 12 9 8 8 9 10 10 10 10 10 9 10 8 9 10 9 9 9 10 8 9 10 10 9 9 9 9 7 8 9 6 6 2 2 3 4 4 6 12 10 12 13 11 11 8 6 13 11 10 9 4 7 7 5 1 3 4 7 7 9 9 7 8 6 6 8 8 9 9 4 10 9 2 9 12 10 9 7 1 9 10 4 3 9 9 11 11 3 7 12 13 11 12 11 11 10 10 11 10 10 10 10 10 10 10 9 3 3 9 10 1 4 7 3 0 1 2 6 9 9 9 9 9 9 9 8 9 9 8 8 11 12 11 10 10 9 10 10 11 11 8 7 8 5 7 44 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 7 9 9 10 10 9 8 9 9 9 9 9 9 8 6 9 12 12 11 10 9 9 9 9 9 10 9 8 9 10 10 10 10 9 9 9 9 8 8 10 9 10 9 9 10 9 9 11 10 10 9 10 10 6 3 6 4 1 3 7 8 6 3 7 9 9 8 10 9 9 8 6 12 10 10 10 5 9 7 4 6 9 8 7 6 9 6 3 1 1 1 1 4 7 6 2 11 9 2 9 13 10 10 8 1 9 8 2 7 11 7 10 7 3 11 13 9 5 12 11 10 10 11 10 8 10 10 10 9 9 8 6 2 8 12 4 5 6 8 4 2 5 6 9 9 8 8 9 9 9 9 8 9 9 9 10 13 11 9 12 12 11 13 11 12 11 11 11 11 10 10 45 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 8 8 9 11 9 9 8 9 10 9 9 9 7 6 10 10 10 10 9 8 8 10 9 9 10 9 9 11 10 10 9 9 9 9 9 9 9 9 5 10 9 9 9 9 10 10 9 11 10 9 8 8 8 5 4 7 9 7 8 10 7 6 6 11 6 5 5 6 8 9 7 8 11 10 10 10 9 10 8 7 9 9 9 9 9 5 2 2 1 2 6 5 3 2 2 6 13 9 6 10 13 10 10 8 5 8 5 4 9 5 4 8 3 10 14 9 2 9 12 10 10 10 10 3 6 9 9 9 4 1 1 1 1 6 3 1 2 4 9 7 7 10 10 10 9 10 10 10 9 9 9 9 10 9 9 11 11 6 6 8 8 5 9 9 12 13 13 13 10 10 10 46 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 9 7 10 11 9 8 8 10 10 7 5 5 7 12 10 9 9 8 9 10 10 10 9 9 9 9 8 11 10 9 9 9 9 9 9 9 9 9 5 11 9 9 9 9 9 9 8 8 6 2 2 4 4 7 5 11 11 6 11 9 8 10 12 12 9 8 4 6 4 4 4 8 8 10 10 9 9 9 9 10 9 10 11 11 11 8 2 2 6 8 9 9 10 9 8 12 10 8 11 10 12 10 10 8 2 4 6 10 9 6 5 4 7 12 13 6 2 12 11 10 8 6 3 2 10 12 10 5 1 4 5 6 6 8 7 6 7 7 7 9 10 12 7 10 10 10 8 8 9 9 10 10 9 10 10 9 8 7 7 7 4 5 6 4 5 8 7 7 6 7 7 47 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 9 7 10 10 9 7 10 8 5 4 9 12 11 10 9 10 10 10 10 10 9 9 9 9 9 9 8 9 9 9 9 9 9 9 8 9 10 9 5 9 9 8 5 5 6 7 6 6 3 4 8 10 11 11 11 12 12 11 12 12 11 12 12 11 11 11 9 10 9 8 6 6 9 11 9 9 9 9 9 9 9 10 10 13 14 8 4 8 9 9 9 10 12 14 14 13 6 9 12 9 11 10 9 4 3 8 11 13 4 6 7 5 8 11 6 1 4 11 7 5 1 1 2 8 14 12 9 1 3 7 7 9 9 9 8 7 10 10 11 8 13 12 7 4 2 3 2 3 5 8 8 9 9 9 8 10 11 10 9 10 9 10 10 8 9 8 3 2 2 2 5 48 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 10 10 10 7 6 9 10 7 8 10 5 8 12 12 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 7 6 9 9 9 9 9 8 9 9 9 8 5 7 10 7 6 7 9 10 9 10 5 8 11 13 13 10 9 9 9 9 9 10 11 11 10 11 11 10 10 10 10 12 10 8 11 11 9 9 9 10 10 8 9 9 11 12 11 8 6 7 10 9 9 13 14 14 10 10 7 12 10 9 10 10 6 2 3 7 9 5 2 7 9 9 9 8 3 2 8 12 3 3 2 4 9 14 13 11 8 1 5 7 9 12 13 10 7 8 9 5 3 5 13 7 1 2 7 9 8 8 10 10 10 10 10 10 11 12 11 9 10 12 13 13 14 12 13 12 7 10 10 10 10 49 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 9 10 10 8 4 10 10 10 6 9 7 10 11 11 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 8 6 10 9 9 8 8 10 9 8 8 8 8 10 11 9 7 8 10 10 11 11 8 9 13 12 9 9 9 9 8 8 8 10 9 9 9 10 10 11 11 10 10 10 7 6 9 7 8 8 8 8 8 6 4 9 11 9 9 8 5 9 7 7 10 13 9 9 8 6 8 11 10 10 10 8 4 2 6 8 8 6 6 10 11 8 9 9 7 7 9 6 2 4 7 10 12 13 8 4 3 3 7 11 12 13 13 9 4 7 8 6 4 7 6 1 1 6 6 7 8 8 10 9 9 10 11 9 11 13 12 10 10 12 14 13 13 8 13 12 6 12 12 10 13 50 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 10 10 9 10 10 6 8 11 11 6 6 5 9 11 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 6 10 10 8 9 9 9 8 8 8 9 9 8 9 10 11 10 9 11 9 9 8 9 8 10 9 9 8 9 8 8 7 5 9 9 9 9 9 9 9 9 9 9 8 6 9 10 11 10 4 4 6 5 7 13 9 9 9 8 8 5 2 8 11 10 6 4 5 6 12 11 10 10 8 6 5 2 8 9 9 10 9 6 6 5 9 9 9 9 10 9 8 10 12 12 12 8 2 3 3 8 10 10 9 12 12 4 5 6 10 9 7 6 4 1 3 5 7 8 7 8 10 8 7 11 10 8 11 13 11 5 8 12 11 8 9 10 10 9 5 12 5 11 10 51 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 10 9 9 9 9 10 9 6 10 10 10 6 7 9 12 11 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 7 9 10 9 8 7 8 8 9 9 10 11 11 10 10 9 9 12 8 3 6 8 8 10 8 3 3 5 7 8 8 7 9 9 9 9 9 9 9 9 9 9 9 6 7 10 12 8 4 8 6 4 9 10 9 10 9 8 9 2 3 9 12 12 11 10 7 10 12 10 10 8 2 1 2 4 9 9 10 11 9 7 7 8 9 9 9 10 11 11 11 14 14 11 13 11 8 7 9 12 6 7 9 11 9 2 4 7 10 6 2 5 7 3 4 6 7 8 8 7 10 9 10 12 7 8 11 12 8 5 8 10 7 5 6 8 8 9 9 9 3 9 5 52 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 8 6 9 9 10 8 10 6 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 5 9 9 7 7 9 10 10 10 10 9 9 9 10 10 9 9 9 6 9 12 11 10 11 9 5 8 7 5 5 3 3 4 7 8 8 9 9 9 9 9 9 9 8 3 9 10 9 6 9 10 10 10 10 9 8 8 9 6 1 5 12 14 13 9 12 13 12 6 9 8 4 1 6 7 10 12 10 12 13 10 9 7 9 10 9 9 10 12 13 14 15 13 9 12 7 9 10 11 13 8 9 9 12 5 3 8 5 1 0 2 7 8 8 9 10 10 9 9 9 10 9 10 11 6 8 11 11 9 7 8 10 11 11 10 6 6 6 7 8 7 9 9 53 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 8 10 8 8 8 9 9 6 9 9 8 10 12 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 6 5 7 8 9 11 10 9 8 6 6 8 9 9 8 9 9 7 3 9 10 10 9 7 5 8 9 11 12 12 8 8 9 5 3 4 4 6 7 7 7 8 7 3 2 7 5 5 4 4 6 5 6 7 7 6 7 3 1 3 10 13 14 11 7 13 13 4 3 6 1 2 6 8 11 12 12 11 12 13 7 3 6 11 12 10 10 12 13 14 14 14 12 9 6 4 10 12 13 11 9 9 10 9 3 8 10 5 2 5 7 10 10 10 11 11 9 7 9 9 9 9 10 9 8 9 12 12 10 8 10 10 12 11 10 6 8 6 6 7 9 8 10 54 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 8 9 9 9 8 9 10 8 7 10 10 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 9 8 3 6 11 11 11 9 8 6 5 5 8 10 9 8 8 7 7 3 3 10 9 9 6 2 6 10 9 10 10 11 10 10 8 10 10 7 9 8 7 7 9 8 7 6 7 12 12 11 6 6 7 8 6 6 9 6 4 4 7 10 12 13 12 10 10 11 9 2 8 7 9 11 10 11 12 13 10 8 12 6 1 7 8 11 13 9 10 12 14 14 13 10 10 8 2 8 13 14 11 11 8 4 3 1 2 9 5 1 4 7 10 12 7 10 9 9 7 4 8 9 9 9 10 10 11 12 12 10 9 10 11 10 11 10 9 6 6 7 8 7 4 4 3 55 | 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 8 9 9 9 9 9 9 9 8 9 10 10 9 9 11 8 6 10 7 6 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 9 5 4 5 10 13 10 8 6 6 7 4 9 11 12 10 10 10 10 7 8 11 13 10 9 6 6 12 12 10 10 9 9 8 9 10 11 11 12 13 12 11 11 10 9 10 10 10 12 12 10 10 11 9 7 9 11 13 10 7 9 11 13 14 13 10 10 10 10 7 4 9 10 7 6 4 9 13 12 9 10 6 2 7 12 9 12 13 8 6 12 12 9 10 9 10 4 3 11 11 9 9 10 5 4 2 4 6 6 1 3 7 9 11 13 10 8 8 9 8 8 8 10 9 10 10 10 11 7 7 9 10 10 12 12 12 12 12 10 12 10 12 12 10 10 11 56 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 11 10 8 10 10 8 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 8 9 6 4 6 9 10 11 9 8 9 8 11 10 12 12 11 9 9 9 9 9 10 10 11 10 10 10 9 11 11 9 9 9 9 9 9 9 9 6 8 9 9 9 9 9 9 9 9 9 9 10 10 9 10 10 10 8 9 8 7 3 5 7 10 13 10 10 10 10 9 10 8 7 10 6 9 5 5 12 13 11 9 5 2 6 12 10 7 13 11 4 5 12 12 13 10 10 8 2 8 12 10 9 8 9 5 2 3 8 7 6 4 6 9 9 10 11 10 5 9 8 9 9 7 9 9 10 10 10 11 9 10 11 10 10 12 9 9 11 8 9 9 10 9 10 9 9 10 57 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 10 10 10 10 9 10 9 8 9 10 10 9 10 11 9 9 9 9 9 9 9 9 9 9 9 8 7 8 9 7 5 7 10 11 11 10 11 11 10 11 10 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 9 10 10 9 9 9 9 9 9 9 9 9 11 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 8 3 8 10 9 7 2 6 9 9 9 10 9 10 10 9 9 10 6 8 8 11 14 10 9 6 4 8 13 13 10 10 11 9 4 3 11 14 11 9 10 3 6 13 12 11 11 8 6 4 1 4 8 6 7 8 10 9 9 10 11 5 3 5 8 10 6 11 9 9 10 10 11 12 12 12 13 11 12 12 10 10 10 9 11 10 9 9 9 9 9 9 58 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 10 10 9 10 9 9 9 9 7 10 10 9 10 10 10 9 9 9 9 9 9 9 9 9 8 8 7 8 9 9 6 7 10 12 12 11 11 11 10 9 9 9 9 9 9 9 9 8 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 2 8 10 10 7 9 13 11 7 7 8 9 10 10 10 9 9 4 4 10 12 9 4 3 2 6 12 12 10 9 9 8 5 4 4 13 13 9 9 7 2 12 12 9 9 10 11 7 2 2 7 8 8 9 10 10 12 10 11 8 7 5 8 10 6 11 8 4 9 11 12 9 11 8 10 13 12 12 12 8 12 12 10 11 9 9 9 9 9 9 9 59 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 10 9 9 10 9 9 9 10 9 10 9 7 9 11 10 9 9 9 9 10 9 9 9 9 9 9 9 9 8 9 9 9 8 7 8 10 12 11 10 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 11 12 9 7 7 11 12 11 11 10 10 10 9 9 8 9 7 6 7 7 3 4 7 9 11 12 10 9 9 6 2 2 4 3 8 11 9 9 3 4 10 10 9 9 8 8 6 3 6 9 9 10 10 11 13 14 7 8 7 8 8 8 6 4 5 2 6 9 12 7 8 11 11 13 12 11 8 7 11 13 10 9 10 9 9 9 9 9 9 9 60 | 9 9 9 9 9 9 9 9 9 10 9 9 9 9 7 10 9 9 10 9 9 9 9 10 9 9 8 7 6 7 10 10 9 8 10 9 9 9 9 9 9 9 9 9 9 8 9 9 9 8 6 8 10 11 9 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 7 7 9 10 10 11 9 5 10 13 11 10 10 10 10 9 9 9 9 9 6 5 5 11 10 10 13 9 8 6 6 4 4 2 5 10 12 7 8 9 8 4 1 6 11 12 9 8 8 9 7 7 5 9 9 10 10 12 13 13 6 7 7 8 8 8 8 8 7 7 9 12 11 7 8 11 13 13 12 9 9 9 12 12 9 9 9 9 9 9 9 9 9 9 61 | 9 9 9 9 9 9 9 9 9 9 9 10 9 8 8 10 9 10 9 8 8 9 10 9 8 9 9 8 9 10 9 9 9 9 10 9 9 9 9 9 9 10 10 9 8 8 9 9 7 6 8 5 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 5 6 9 9 9 9 9 5 10 11 9 9 9 10 9 9 10 8 5 5 5 10 9 9 10 11 13 6 4 4 4 6 9 9 12 14 12 5 6 6 1 2 6 11 13 12 9 8 8 7 8 9 7 10 12 12 10 13 14 12 6 6 8 8 10 9 8 8 8 9 10 10 10 8 11 12 11 12 9 10 10 11 12 11 8 8 9 9 9 9 9 9 9 9 62 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 8 9 9 10 9 10 10 11 10 9 10 9 9 10 9 8 9 8 8 9 9 9 9 10 9 8 8 9 8 7 8 7 4 7 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 9 9 9 9 9 9 9 10 9 9 9 12 12 10 9 8 9 9 7 8 9 9 9 9 9 10 9 5 5 10 12 11 8 9 9 11 12 4 2 8 11 13 12 10 11 9 8 4 3 4 9 12 13 13 8 4 4 4 4 8 9 6 3 6 12 11 12 12 10 6 5 8 8 7 7 8 7 8 9 10 10 10 10 10 9 10 10 10 8 10 9 11 10 8 5 5 5 6 8 8 8 9 9 9 63 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 9 10 10 10 10 10 9 9 9 9 10 10 10 9 9 10 9 9 9 9 9 10 9 8 8 9 8 8 9 6 2 6 9 10 8 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 6 5 8 9 9 9 9 9 9 9 9 8 5 6 7 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 5 11 10 9 9 9 8 3 8 11 14 11 7 9 8 9 6 8 4 4 8 13 12 10 8 9 7 5 5 9 6 10 7 4 3 2 3 3 4 3 6 4 3 5 9 11 8 8 8 9 3 3 1 1 3 5 8 8 9 10 9 10 11 11 10 9 9 10 8 7 6 7 8 8 8 6 6 7 8 5 4 5 7 9 8 64 | 9 9 9 9 9 9 9 9 9 9 9 9 8 8 8 9 9 9 10 11 10 10 9 9 9 8 9 9 9 10 9 10 8 10 9 9 8 8 9 9 8 7 8 8 8 8 7 6 5 5 9 11 13 11 10 9 9 9 9 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 5 8 11 9 9 9 9 9 9 9 9 8 8 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 6 9 9 9 8 6 9 9 9 9 3 5 11 12 9 6 10 9 7 4 6 11 8 2 7 10 10 8 7 5 2 3 10 7 2 4 6 5 7 8 9 9 9 10 12 9 11 11 13 10 8 7 6 5 2 3 2 4 8 7 7 8 10 10 11 10 10 10 10 10 10 10 9 8 9 8 10 8 8 6 9 8 6 7 8 8 9 9 7 65 | 9 9 9 9 9 9 9 9 10 9 9 8 8 9 9 9 9 10 10 10 9 9 9 9 9 8 9 9 10 10 9 9 9 10 9 9 8 9 10 8 6 8 8 6 7 9 9 9 10 11 13 13 11 9 9 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 11 11 9 9 9 9 9 9 9 9 9 9 11 11 10 10 10 10 10 9 8 9 9 10 9 9 9 9 7 10 9 8 8 4 10 9 7 9 6 12 13 9 7 10 9 7 6 9 11 6 2 4 8 9 8 7 3 2 6 9 7 2 0 4 11 13 14 12 11 12 12 13 11 9 8 5 3 2 2 1 3 3 3 4 7 6 8 7 9 11 12 11 9 8 9 10 10 9 9 9 9 9 9 9 9 7 8 8 9 8 8 9 9 9 9 7 5 66 | 9 9 9 9 9 9 9 9 10 9 8 9 9 9 9 9 10 10 9 9 10 9 9 9 9 9 9 9 9 8 9 9 10 9 9 9 9 8 8 7 8 9 9 10 11 12 11 10 11 10 10 9 9 9 9 7 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 10 9 9 9 9 9 8 9 8 10 6 7 9 8 11 6 4 8 9 10 9 8 9 7 7 8 9 12 9 6 7 8 8 9 7 4 3 7 11 11 6 4 5 7 12 14 13 8 5 4 5 6 6 7 4 1 3 6 7 5 5 7 7 6 6 8 8 9 12 12 8 7 7 9 9 10 10 9 9 9 9 9 9 9 8 8 7 9 9 9 9 10 11 10 11 11 8 67 | 9 9 9 9 9 9 9 9 9 8 9 9 9 9 9 10 10 9 10 10 9 9 9 9 9 9 9 9 8 9 9 9 10 10 10 9 7 7 9 10 10 10 11 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 9 9 9 8 8 10 6 9 10 9 9 10 9 11 8 9 9 7 6 7 10 11 10 8 9 9 10 6 6 9 10 11 9 11 12 11 3 5 7 8 12 9 5 1 1 3 6 2 2 1 2 5 7 8 9 6 10 11 10 9 10 10 11 12 11 8 8 9 8 9 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 11 11 8 12 12 11 10 11 68 | 9 9 9 9 9 9 9 9 8 9 9 9 9 9 10 9 9 10 10 9 9 9 9 9 9 9 8 9 9 9 9 9 9 9 9 6 8 9 11 11 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 9 9 9 7 10 9 9 7 10 9 9 9 10 10 10 8 6 2 7 11 11 9 8 8 9 9 9 7 7 9 9 10 11 8 7 6 2 2 5 7 8 4 4 6 8 9 10 9 8 5 6 8 9 11 8 10 11 9 9 11 12 10 8 11 11 11 11 11 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 10 11 11 10 9 12 10 8 10 9 69 | 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 7 5 8 9 11 11 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 9 9 9 9 9 9 9 9 9 9 9 7 8 9 9 9 9 9 8 3 2 7 13 10 10 9 8 9 9 9 9 9 7 2 6 11 9 2 3 2 2 7 10 11 11 13 12 11 11 13 8 9 11 9 9 12 14 13 13 13 12 11 11 10 6 6 11 13 13 11 8 9 8 10 9 8 9 9 10 9 9 9 10 9 9 9 10 10 10 10 8 9 11 9 9 9 9 70 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 6 6 10 10 11 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 10 10 10 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 7 8 10 9 9 9 9 9 4 8 12 12 9 9 8 9 9 8 8 9 9 4 2 7 10 6 4 7 9 10 13 14 12 8 12 11 8 12 12 7 9 8 5 13 14 12 10 10 9 9 9 9 5 7 12 12 12 9 8 7 8 8 9 5 8 9 10 9 9 10 10 9 9 9 9 10 10 11 11 9 9 10 9 9 9 9 71 | 9 9 9 9 9 9 9 9 9 9 9 9 9 11 10 9 9 9 9 9 9 9 9 9 9 8 9 9 9 8 8 6 7 10 10 11 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 10 9 9 9 9 9 9 9 9 9 9 9 9 10 9 10 10 9 9 9 10 10 10 9 9 9 9 9 9 9 9 9 9 8 8 10 9 9 9 9 9 8 11 11 9 9 9 9 9 8 9 9 9 9 8 5 10 13 10 11 13 10 7 10 8 9 6 9 8 7 7 8 7 2 6 12 13 11 10 9 9 9 8 9 9 9 11 10 9 9 9 9 9 10 8 5 6 9 9 9 9 10 10 9 10 9 10 10 10 10 11 11 12 12 11 9 9 10 9 72 | 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 10 9 9 9 9 9 9 8 9 8 8 8 9 6 8 10 11 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 8 8 9 9 9 9 9 9 9 9 4 6 8 9 9 8 9 9 9 9 9 7 6 12 12 13 10 5 3 5 10 13 10 8 10 8 5 4 2 1 1 8 10 10 9 9 9 9 8 8 9 9 9 9 9 9 9 9 9 9 8 3 3 6 9 10 10 9 10 10 10 10 10 10 10 9 10 11 12 12 10 9 9 9 9 9 73 | 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 9 8 8 9 8 6 8 9 7 8 9 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 10 9 9 9 9 10 9 10 10 10 9 9 9 9 9 9 9 9 8 9 9 9 9 9 9 9 9 8 9 10 9 9 9 9 9 8 3 9 12 9 9 9 9 9 9 9 8 5 9 11 10 10 8 4 9 11 13 12 9 9 9 7 9 9 6 6 6 9 11 10 9 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 8 3 4 7 9 10 10 10 11 9 11 10 11 10 9 9 10 10 9 12 9 9 9 9 9 9 74 | 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 10 9 9 9 9 8 8 9 6 5 8 9 8 8 10 11 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 10 10 10 10 9 9 9 9 9 10 9 9 8 9 9 9 9 9 9 9 9 9 9 8 9 10 9 9 9 9 8 2 8 12 9 9 9 8 9 8 8 7 8 12 10 9 8 5 4 13 12 8 9 9 9 9 9 8 10 8 8 9 9 12 11 9 9 9 9 9 9 9 9 9 9 9 8 9 9 8 9 8 3 3 8 9 10 11 11 12 12 11 10 10 8 9 9 9 10 11 13 10 10 9 9 9 9 75 | 9 9 9 9 9 9 9 9 9 10 10 9 10 9 9 9 9 9 9 9 8 9 7 3 6 9 10 9 9 11 10 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 3 9 11 8 6 6 7 6 4 8 9 10 10 9 8 5 3 10 12 9 6 10 9 9 9 9 9 7 8 8 9 10 13 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 3 5 8 9 9 11 11 12 11 9 6 8 8 8 9 10 11 12 11 10 8 8 9 9 9 76 | 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 8 8 8 5 5 10 11 10 10 10 10 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 9 9 10 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 8 9 8 8 9 8 2 9 13 8 5 9 10 9 9 10 6 9 8 8 5 4 8 13 10 9 8 10 9 9 9 9 9 9 9 5 9 12 11 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 5 3 8 9 10 11 10 9 7 5 6 7 8 8 9 10 12 12 11 9 8 9 9 9 9 77 | 9 9 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 7 8 8 8 4 8 13 10 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 4 1 2 6 6 2 11 12 9 9 10 10 10 10 10 9 7 4 3 7 12 12 10 10 9 9 10 10 10 9 9 9 9 8 6 5 8 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 3 9 9 10 9 8 8 7 6 7 8 8 9 9 11 12 13 12 9 9 9 9 9 9 78 | 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 9 9 8 8 9 9 6 6 13 10 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 9 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 6 1 6 6 3 1 5 12 11 9 9 8 11 10 9 9 9 8 6 7 13 10 9 9 9 9 9 9 9 9 9 9 9 9 7 2 6 12 11 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 6 5 8 8 9 9 9 8 8 8 8 8 9 9 11 12 12 13 11 9 9 9 9 9 9 79 | 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 8 7 10 9 9 6 11 10 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 9 9 10 9 9 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 2 3 6 8 8 7 11 13 9 9 9 8 10 9 9 9 9 8 4 9 12 9 9 9 9 9 9 9 9 9 9 9 9 9 5 4 12 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 6 7 7 8 8 9 9 9 9 9 9 9 9 10 12 12 12 11 10 9 9 9 9 9 9 80 | 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 7 10 9 9 9 10 10 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 7 6 8 9 9 9 9 9 9 9 10 10 9 9 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 6 8 8 10 10 11 13 12 9 9 9 8 10 10 9 9 9 7 2 11 11 10 9 9 9 9 9 9 9 9 9 9 9 6 3 11 13 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 7 7 8 9 10 9 9 10 10 10 10 10 11 11 13 13 10 9 9 9 9 9 9 9 81 | 9 9 9 9 9 9 9 9 10 9 10 9 9 9 8 7 7 10 9 9 9 9 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 4 7 9 10 9 9 9 9 9 9 10 9 10 10 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 8 10 10 13 11 11 11 9 9 9 9 9 9 9 9 9 7 2 12 12 9 9 9 10 9 9 9 9 9 8 9 5 3 11 13 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 11 10 11 11 11 11 12 12 13 12 10 9 9 9 10 10 9 9 9 82 | 9 9 9 9 9 9 9 9 10 9 9 9 9 8 9 8 10 10 9 9 9 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 7 9 12 10 9 9 9 9 9 9 10 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 7 10 12 12 4 8 10 9 9 9 9 9 9 9 9 9 4 4 13 12 9 9 9 9 9 9 9 9 7 2 3 4 12 13 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 10 10 9 11 10 11 12 12 13 13 13 12 8 8 9 9 9 9 9 9 9 9 83 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 10 10 9 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 12 13 10 9 9 9 10 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 10 9 7 8 12 9 9 9 9 9 9 9 9 9 4 4 13 11 9 9 9 9 9 9 9 8 2 3 9 12 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 10 12 12 12 13 13 11 10 10 9 9 9 9 9 9 9 9 8 8 8 84 | 9 9 9 9 9 9 9 10 9 9 9 9 9 7 9 10 9 9 9 9 9 9 9 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 10 9 10 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 7 6 7 8 9 9 9 9 9 9 9 3 6 13 10 9 9 9 9 8 5 7 3 8 13 13 12 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 10 9 9 10 10 9 10 10 10 9 9 9 9 9 9 9 9 10 8 7 6 5 85 | 9 9 9 9 9 9 9 10 9 10 9 9 9 8 9 9 9 9 9 8 8 8 9 7 10 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 5 2 4 5 8 9 9 9 9 9 9 4 9 12 9 9 9 5 5 2 6 6 9 12 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 8 7 5 6 6 86 | 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 9 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 4 5 9 8 7 9 9 9 9 9 9 4 7 9 5 7 5 0 2 6 11 12 11 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 8 7 7 5 8 7 87 | 9 9 9 9 9 9 10 9 9 9 9 9 9 8 9 10 10 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 4 7 12 12 12 10 6 7 9 9 7 2 6 8 7 8 3 3 9 13 13 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 7 8 5 5 9 8 88 | 9 9 9 9 9 9 10 10 10 9 9 9 8 8 10 9 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 4 9 13 10 10 9 4 6 8 6 1 4 12 13 12 11 7 6 14 14 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 7 6 4 8 9 8 89 | 9 9 9 9 9 10 10 10 9 9 9 9 8 9 10 9 9 9 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 10 10 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 4 11 11 9 9 9 6 8 10 2 8 12 13 10 9 8 3 6 12 10 9 9 9 9 8 7 8 9 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 8 5 6 9 9 9 90 | 9 9 9 9 10 10 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 6 11 9 9 9 9 8 9 4 5 12 11 10 9 9 5 5 10 10 9 9 9 9 9 6 8 11 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 7 4 8 9 9 9 91 | 9 9 9 9 10 9 9 9 9 9 9 9 8 10 8 9 9 8 9 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 10 9 9 9 9 9 9 8 2 8 12 10 6 3 2 1 10 7 7 9 10 9 9 9 9 10 11 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 7 4 8 9 9 9 92 | 9 9 9 9 10 9 9 9 9 9 9 9 8 9 8 9 8 9 8 8 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 10 9 9 9 9 9 9 10 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 7 2 10 12 3 1 3 4 8 13 5 8 12 9 9 9 9 6 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 5 9 9 9 9 93 | 9 9 9 9 10 9 9 9 9 9 9 8 8 8 8 9 9 8 8 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 5 13 10 3 7 9 11 13 13 3 10 13 10 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 6 8 9 9 9 94 | 9 9 9 9 9 9 9 9 9 9 9 8 9 7 5 8 9 8 8 9 9 9 9 9 9 9 9 9 9 10 10 7 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 6 8 12 9 6 9 12 14 12 10 7 10 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 8 8 9 10 10 95 | 9 9 9 10 9 9 9 9 9 9 9 8 9 8 4 6 7 8 8 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 7 10 9 8 7 13 11 9 9 9 4 6 11 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 8 8 10 10 96 | 9 9 9 10 9 9 10 10 10 9 8 9 8 9 7 3 7 10 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 8 8 10 7 6 11 10 9 9 9 9 4 6 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 11 97 | 9 9 9 10 9 9 9 9 10 8 10 9 9 9 8 9 11 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 9 9 9 9 7 7 3 12 10 9 9 9 9 9 8 6 11 11 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 98 | 9 9 10 10 9 9 9 9 9 9 9 9 9 7 8 8 8 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 3 10 12 9 9 9 9 9 9 9 8 10 11 8 6 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 99 | 9 9 10 9 10 9 9 9 10 9 9 8 8 7 9 8 8 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 5 12 10 9 9 9 9 9 9 9 9 7 7 2 7 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 100 | 9 8 10 9 10 9 8 9 9 9 8 9 6 10 9 8 8 9 9 7 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 5 4 6 9 9 9 9 9 9 9 9 7 5 6 13 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 101 | 9 6 11 9 10 9 8 9 9 9 9 9 8 9 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 6 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 4 3 7 8 9 9 9 9 9 9 8 5 9 11 11 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 102 | 9 7 9 9 9 9 7 9 9 9 8 8 8 8 8 8 9 9 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 6 10 9 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 4 4 9 9 9 9 9 9 9 9 7 8 11 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 103 | 8 5 10 9 9 9 8 10 9 9 9 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 11 9 9 9 9 9 9 9 9 10 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 7 10 9 8 9 8 9 9 6 5 11 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 104 | 8 9 11 9 9 9 8 10 9 9 8 7 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 8 6 9 8 6 8 5 6 12 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 105 | 8 9 10 9 9 9 8 9 8 8 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 8 10 10 10 8 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 6 8 5 2 3 9 11 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 106 | 8 9 9 9 9 9 8 9 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 9 9 9 10 10 10 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 9 9 5 5 6 10 13 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 107 | 8 10 10 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 10 10 10 9 9 9 10 10 9 9 9 9 9 9 9 9 10 9 9 9 8 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 10 9 6 10 13 13 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 108 | 8 9 9 9 9 9 9 9 10 10 9 9 8 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 10 10 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 7 10 9 9 11 11 11 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 109 | 9 9 9 9 8 10 10 9 9 10 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 9 9 9 9 8 9 9 9 9 9 9 8 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 9 9 9 9 8 6 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 110 | 9 9 9 9 8 10 9 9 9 10 9 9 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 9 9 9 9 7 9 9 9 9 9 9 9 9 10 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 10 10 10 9 9 10 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 8 9 9 11 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 111 | 9 9 9 9 9 9 9 9 8 9 8 8 8 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 9 9 9 9 9 8 10 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 10 9 9 9 9 9 9 9 10 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 112 | 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 10 9 9 9 9 9 9 9 9 10 9 7 6 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 113 | 9 9 9 9 9 10 10 10 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 8 10 10 9 4 8 11 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 114 | 9 9 9 9 9 9 10 9 9 9 9 9 9 8 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 10 10 10 9 9 9 9 9 10 10 9 9 10 10 10 9 9 9 10 10 9 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 10 9 9 9 9 11 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 115 | 9 9 9 9 9 9 9 9 9 9 9 9 8 9 10 9 8 8 9 8 9 9 9 9 9 9 9 9 9 9 9 8 9 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 10 10 10 9 9 9 9 9 10 10 9 9 9 10 10 9 9 9 10 10 10 10 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 9 9 9 9 9 9 9 8 10 9 9 9 9 8 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 116 | 9 9 9 9 9 9 9 9 9 9 8 9 8 9 8 9 8 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 9 9 9 9 9 9 9 9 9 9 9 10 10 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 7 10 9 9 9 9 9 9 8 10 9 9 9 9 9 9 8 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 117 | -------------------------------------------------------------------------------- /test/pentenegpos.fdf: -------------------------------------------------------------------------------- 1 | -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 2 | -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 3 | -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 4 | -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 5 | -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 6 | -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 7 | -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 8 | -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 9 | -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 10 | -------------------------------------------------------------------------------- /test/plat.fdf: -------------------------------------------------------------------------------- 1 | 0 0 0 0 0 0 0 0 0 0 2 | 0 0 0 0 0 0 0 0 0 0 3 | 0 0 0 0 0 0 0 0 0 0 4 | 0 0 0 0 0 0 0 0 0 0 5 | 0 0 0 0 0 0 0 0 0 0 6 | 0 0 0 0 0 0 0 0 0 0 7 | 0 0 0 0 0 0 0 0 0 0 8 | 0 0 0 0 0 0 0 0 0 0 9 | 0 0 0 0 0 0 0 0 0 0 10 | 0 0 0 0 0 0 0 0 0 0 11 | 0 0 0 0 0 0 0 0 0 0 12 | 0 0 0 0 0 0 0 0 0 0 13 | 0 0 0 0 0 0 0 0 0 0 14 | 0 0 0 0 0 0 0 0 0 0 -------------------------------------------------------------------------------- /test/pnp_flat.fdf: -------------------------------------------------------------------------------- 1 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 | -------------------------------------------------------------------------------- /test/pylone.fdf: -------------------------------------------------------------------------------- 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 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 4 | 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 5 | 0 0 0 0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 0 0 0 0 6 | 0 0 0 0 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 1 0 0 0 0 7 | 0 0 0 0 1 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 2 1 0 0 0 0 8 | 0 0 0 0 1 2 3 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 3 2 1 0 0 0 0 9 | 0 0 0 0 1 2 3 4 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 4 3 2 1 0 0 0 0 10 | 0 0 0 0 1 2 3 4 5 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 6 5 4 3 2 1 0 0 0 0 11 | 0 0 0 0 1 2 3 4 5 6 7 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 6 5 4 3 2 1 0 0 0 0 12 | 0 0 0 0 1 2 3 4 5 6 7 6 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 7 6 5 4 3 2 1 0 0 0 0 13 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 6 7 6 5 4 3 2 1 0 0 0 0 14 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 15 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 16 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 17 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 18 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 1 -1 -2 -1 -1 -1 -1 -1 -2 -2 -2 -2 -2 -2 -1 1 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 19 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 1 -1 -2 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -2 -1 1 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 20 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 1 -1 -2 -3 -4 -4 -4 -4 -4 -4 -4 -4 -3 -2 -1 1 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 21 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 1 -1 -2 -3 -4 -5 -5 -5 -5 -5 -5 -4 -3 -2 -1 1 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 22 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 1 -1 -2 -3 -4 -5 -6 -6 -6 -6 -5 -4 -3 -2 -1 1 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 23 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 1 -1 -2 -3 -4 -5 -6 -7 -7 -6 -5 -4 -3 -2 -1 1 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 24 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 1 -1 -2 -3 -4 -5 -6 -7 -7 -6 -5 -4 -3 -2 -1 1 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 25 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 1 -1 -2 -3 -4 -5 -6 -6 -6 -6 -5 -4 -3 -2 -1 1 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 26 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 1 -1 -2 -3 -4 -5 -5 -5 -5 -5 -5 -4 -3 -2 -1 1 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 27 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 1 -1 -2 -3 -4 -4 -4 -4 -4 -4 -4 -4 -3 -2 -1 1 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 28 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 1 -1 -2 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -2 -1 1 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 29 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 1 -1 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -1 1 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 30 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 31 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 32 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 33 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 5 6 7 6 5 4 3 2 1 0 0 0 0 34 | 0 0 0 0 1 2 3 4 5 6 7 6 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 6 7 6 5 4 3 2 1 0 0 0 0 35 | 0 0 0 0 1 2 3 4 5 6 7 6 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 7 6 5 4 3 2 1 0 0 0 0 36 | 0 0 0 0 1 2 3 4 5 6 7 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 6 5 4 3 2 1 0 0 0 0 37 | 0 0 0 0 1 2 3 4 5 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 6 5 4 3 2 1 0 0 0 0 38 | 0 0 0 0 1 2 3 4 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 4 3 2 1 0 0 0 0 39 | 0 0 0 0 1 2 3 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 3 2 1 0 0 0 0 40 | 0 0 0 0 1 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 2 1 0 0 0 0 41 | 0 0 0 0 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 1 0 0 0 0 42 | 0 0 0 0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 0 0 0 0 43 | 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 44 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 46 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 47 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 | -------------------------------------------------------------------------------- /test/pyra.fdf: -------------------------------------------------------------------------------- 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 2 | -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 3 | -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -1 0 1 2 2 2 2 2 2 2 2 2 2 2 2 4 | -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -2 -1 0 1 2 3 3 3 3 3 3 3 3 3 3 3 5 | -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -3 -2 -1 0 1 2 3 4 4 4 4 4 4 4 4 4 4 6 | -5 -5 -5 -5 -5 -5 -5 -5 -5 -4 -3 -2 -1 0 1 2 3 4 5 5 5 5 5 5 5 5 5 7 | -6 -6 -6 -6 -6 -6 -6 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 6 6 6 6 6 6 6 8 | -7 -7 -7 -7 -7 -7 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 7 7 7 7 7 7 9 | -8 -8 -8 -8 -8 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 8 8 8 8 8 10 | -9 -9 -9 -9 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 9 9 9 9 11 | -10 -10 -10 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 10 10 10 12 | -11 -11 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 11 11 13 | -12 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 12 14 | -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 15 | -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 12 16 | -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 11 11 17 | -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 10 10 10 18 | -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 9 9 9 9 19 | -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 8 8 8 8 8 20 | -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 7 7 7 7 7 7 21 | -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 6 6 6 6 6 6 6 22 | -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 5 5 5 5 5 5 5 5 23 | -13 -12 -11 -10 -9 -8 -7 -6 -4 -4 -3 -2 -1 0 1 2 3 4 4 4 4 4 4 4 4 4 4 24 | -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 3 3 3 3 3 3 3 3 3 3 25 | -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 2 2 2 2 2 2 2 2 2 2 2 26 | -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 27 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 28 | -------------------------------------------------------------------------------- /test/pyramide.fdf: -------------------------------------------------------------------------------- 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 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 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 5 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 | 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 7 | 0 0 0 0 0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 0 0 0 0 0 8 | 0 0 0 0 0 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 2 1 0 0 0 0 0 9 | 0 0 0 0 0 1 2 3 4 4 4 4 4 4 4 4 4 4 4 3 2 1 0 0 0 0 0 10 | 0 0 0 0 0 1 2 3 4 4 4 4 4 4 4 4 4 4 4 3 2 1 0 0 0 0 0 11 | 0 0 0 0 0 1 2 3 4 4 4 4 4 4 4 4 4 4 4 3 2 1 0 0 0 0 0 12 | 0 0 0 0 0 1 2 3 4 4 4 4 4 4 4 4 4 4 4 3 2 1 0 0 0 0 0 13 | 0 0 0 0 0 1 2 3 4 4 4 4 4 4 4 4 4 4 4 3 2 1 0 0 0 0 0 14 | 0 0 0 0 0 1 2 3 4 5 5 5 5 5 5 5 5 5 4 3 2 1 0 0 0 0 0 15 | 0 0 0 0 0 1 2 3 4 5 6 6 6 6 6 6 6 5 4 3 2 1 0 0 0 0 0 16 | 0 0 0 0 0 1 2 3 4 5 6 7 7 7 7 7 6 5 4 3 2 1 0 0 0 0 0 17 | 0 0 0 0 0 1 2 3 4 5 6 7 8,0xFFFFFF 8,0xFFFFFF 8,0xFFFFFF 7 6 5 4 3 2 1 0 0 0 0 0 18 | 0 0 0 0 0 1 2 3 4 5 6 7 8,0xFFFFFF 8,0xFFFFFF 8,0xFFFFFF 7 6 5 4 3 2 1 0 0 0 0 0 19 | 0 0 0 0 0 1 2 3 4 5 6 7 8,0xFFFFFF 8,0xFFFFFF 8,0xFFFFFF 7 6 5 4 3 2 1 0 0 0 0 0 20 | 0 0 0 0 0 1 2 3 4 5 6 7 8,0xFFFFFF 8,0xFFFFFF 8,0xFFFFFF 7 6 5 4 3 2 1 0 0 0 0 0 21 | 0 0 0 0 0 1 2 3 4 5 6 7 8,0xFFFFFF 9,0xFFFFFF 8,0xFFFFFF 7 6 5 4 3 2 1 0 0 0 0 0 22 | 0 0 0 0 0 1 2 3 4 5 6 7 8,0xFFFFFF 8,0xFFFFFF 8,0xFFFFFF 7 6 5 4 3 2 1 0 0 0 0 0 23 | 0 0 0 0 0 1 2 3 4 5 6 7 7 7 7 7 6 5 4 3 2 1 0 0 0 0 0 24 | 0 0 0 0 0 1 2 3 4 5 6 6 6 6 6 6 6 5 4 3 2 1 0 0 0 0 0 25 | 0 0 0 0 0 1 2 3 4 5 5 5 5 5 5 5 5 5 4 3 2 1 0 0 0 0 0 26 | 0 0 0 0 0 1 2 3 4 4 4 4 4 4 4 4 4 4 4 3 2 1 0 0 0 0 0 27 | 0 0 0 0 0 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 2 1 0 0 0 0 0 28 | 0 0 0 0 0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 0 0 0 0 0 29 | 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 30 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 33 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 34 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -------------------------------------------------------------------------------- /test/t2.fdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/genesis0x/FDF/ca45b331e2c9b757d9d859d7308221322e885012/test/t2.fdf --------------------------------------------------------------------------------