Updated and added light & shading, meshes and texture functionality

This commit is contained in:
natsirt867
2025-12-29 09:22:38 -06:00
parent 59096e47e5
commit abf9f42715
18 changed files with 660 additions and 111 deletions

1
.gitignore vendored
View File

@@ -1,6 +1,7 @@
# Ignore all editor files
*.swp
*.swo
*.idea
# Allowed files
!*.c

View File

@@ -38,3 +38,19 @@ void array_free(void* array) {
free(ARRAY_RAW_DATA(array));
}
}
void arr_swap(triangle_t *array, int i, int j) {
triangle_t tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
void avg_depth_bubble_sort(triangle_t array[], int item_size) {
for (int i = 0; i < item_size - 1; i++) {
for (int j = 0; j < item_size - 1; j++) {
if (array[j].avg_depth < array[j + 1].avg_depth) {
arr_swap(array, j, j + 1);
}
}
}
}

View File

@@ -1,6 +1,7 @@
#ifndef ARRAY_H
#define ARRAY_H
#include "triangle.h"
#define array_push(array, value) \
do { \
(array) = array_hold((array), 1, sizeof(*(array))); \
@@ -10,5 +11,8 @@
void* array_hold(void* array, int count, int item_size);
int array_length(void* array);
void array_free(void* array);
void arr_swap(triangle_t *array, int i, int j);
// I think int array[] is just syntax sugar for void* array as an array just decays to a pointer to the first value?
void avg_depth_bubble_sort(triangle_t array[], int item_size);
#endif

View File

@@ -61,7 +61,7 @@ void render_color_buffer(void){
SDL_RenderCopy(renderer, color_buffer_texture, NULL, NULL);
}
void clear_color_buffer(uint32_t color){
void clear_color_buffer(color_t color){
for (int y = 0; y < window_height; y++){
for (int x = 0; x < window_width; x++){
color_buffer[(window_width * y) + x] = color;
@@ -69,7 +69,7 @@ void clear_color_buffer(uint32_t color){
}
}
void draw_rect(int x, int y, int width, int height, uint32_t color){
void draw_rect(int x, int y, int width, int height, color_t color){
for (int j = 0; j < width; j++){
for (int k = 0; k < height; k++){
int current_x = x + j;
@@ -80,31 +80,26 @@ void draw_rect(int x, int y, int width, int height, uint32_t color){
}
}
void draw_pixel(int x, int y, uint32_t color){
void draw_pixel(int x, int y, color_t color){
if (x >= 0 && x < window_width && y >= 0 && y < window_height){
color_buffer[(window_width * y) + x] = color;
}
}
void draw_triangle(int x0, int y0, int x1, int y1, int x2, int y2, uint32_t color) {
draw_line(x0, y0, x1, y1, color);
draw_line(x1, y1, x2, y2, color);
draw_line(x2, y2, x0, y0, color);
};
void draw_grid(void){
for (int y = 0; y < window_height; y += 10){
for (int x = 0; x < window_width; x += 10){
color_buffer[(window_width * y) + x ] = 0xFF133343;
color_buffer[(window_width * y) + x ] = 0xFF444444;
}
}
}
void draw_line(int x0, int y0, int x1, int y1, uint32_t color) {
void draw_line(int x0, int y0, int x1, int y1, color_t color) {
int delta_x = (x1 - x0);
int delta_y = (y1 - y0);
int longest_side_length = abs(delta_x) >= abs(delta_y) ? abs(delta_x) : abs(delta_y);
int longest_side_length = (abs(delta_x) >= abs(delta_y)) ? abs(delta_x) : abs(delta_y);
// Find how much we should increment in both x and y each step
float x_inc = delta_x / (float)longest_side_length;

View File

@@ -8,6 +8,19 @@
#define FPS 30
#define FRAME_TARGET_TIME (1000 / FPS)
enum cull_method{
CULL_NONE,
CULL_BACKFACE
};
enum render_method {
RENDER_WIRE,
RENDER_WIRE_VERTEX,
RENDER_FILL_TRIANGLE,
RENDER_FILL_TRIANGLE_WIRE,
RENDER_TEXTURED,
RENDER_TEXTURED_WIRE
};
extern SDL_Window* window;
extern SDL_Renderer* renderer;
@@ -16,14 +29,16 @@ extern SDL_Texture* color_buffer_texture;
extern int window_width;
extern int window_height;
typedef uint32_t color_t;
bool initialize_window(void);
void draw_line(int x0, int y0, int x1, int y1, uint32_t color);
void draw_pixel(int x, int y, uint32_t color);
void draw_rect(int x, int y, int width, int height, uint32_t color);
void draw_line(int x0, int y0, int x1, int y1, color_t color);
void draw_pixel(int x, int y, color_t color);
void draw_rect(int x, int y, int width, int height, color_t color);
void draw_grid(void);
void draw_triangle(int x0, int y0, int x1, int y1, int x2, int y2, uint32_t color);
void render_color_buffer(void);
void clear_color_buffer(uint32_t color);
void clear_color_buffer(color_t color);
void destroy_window(void);
#endif

21
src/light.c Normal file
View File

@@ -0,0 +1,21 @@
#include "light.h"
light_t light = {
.direction = { 0, 0, 1}
};
// Change color based on a percentage factor to represent light intensity
uint32_t light_apply_intensity(uint32_t original_color, float percentage_factor) {
if (percentage_factor < 0) percentage_factor = 0;
if (percentage_factor > 1) percentage_factor = 1;
uint32_t a = (original_color & 0xFF000000);
uint32_t r = (original_color & 0x00FF0000) * percentage_factor;
uint32_t g = (original_color & 0x0000FF00) * percentage_factor;
uint32_t b = (original_color & 0x000000FF) * percentage_factor;
uint32_t new_color = a | (r & 0x00FF0000) | (g & 0x0000FF00) | (b & 0x000000FF);
return new_color;
}

16
src/light.h Normal file
View File

@@ -0,0 +1,16 @@
#ifndef LIGHT_H
#define LIGHT_H
#include <stdint.h>
#include "vector.h"
typedef struct {
vec3_t direction;
} light_t;
// main light of 3D application (global light)
extern light_t light;
uint32_t light_apply_intensity(uint32_t original_color, float percentage_factor);
#endif

View File

@@ -2,28 +2,36 @@
#include <stdio.h>
#include <stdbool.h>
#include <SDL2/SDL.h>
#include <math.h>
#include "display.h"
#include "vector.h"
#include "light.h"
#include "mesh.h"
#include "triangle.h"
#include "array.h"
#include "matrix.h"
#define M_PI 3.1415926535
// Array of triangles that should be rendered frame by frame
triangle_t* triangles_to_render = NULL;
// Global variables for execution status and game loop
vec3_t camera_position = { 0, 0, 0 };
//vec3_t cube_rotation = { .x = 0, .y = 0, .z = 0};
float fov_factor = 640;
vec3_t camera_position = { .x = 0, .y = 0, .z = 0 };
mat4_t proj_matrix;
static enum cull_method cull_method;
static enum render_method render_method;
bool is_running = false;
int previous_frame_time = 0;
// Setup function to initialize variables and game objects
void setup(void){
render_method = RENDER_WIRE;
cull_method = CULL_BACKFACE;
// Allocates the memory in bytes required to hold for color_buffer, using sizeof to allocate the # of bytes required
color_buffer = (uint32_t*) malloc(sizeof(uint32_t) * window_width * window_height);
@@ -36,9 +44,17 @@ void setup(void){
window_height
);
// Initialize the perspective projection matrix
float fov = M_PI / 3.0; // the same as 180 / 3 or 60 deg
float aspect = (float)window_height / (float)window_width;
float znear = 0.1;
float zfar = 100.0;
proj_matrix = mat4_make_perspective(fov, aspect, znear, zfar);
// Loads the cube values in the mesh data structure
//load_cube_mesh_data();
//load_obj_file_data("./assets/cube.obj");
//load_obj_file_data("./assets/f22.obj");
load_obj_file_data("./assets/cube.obj");
}
@@ -52,7 +68,31 @@ void process_input(void){
break;
case SDL_KEYDOWN:
if (event.key.keysym.sym == SDLK_ESCAPE)
is_running = false;
is_running = false;
if (event.key.keysym.sym == SDLK_1) {
render_method = RENDER_WIRE_VERTEX;
}
if (event.key.keysym.sym == SDLK_2) {
render_method = RENDER_WIRE;
}
if (event.key.keysym.sym == SDLK_3) {
render_method = RENDER_FILL_TRIANGLE;
}
if (event.key.keysym.sym == SDLK_4) {
render_method = RENDER_FILL_TRIANGLE_WIRE;
}
if (event.key.keysym.sym == SDLK_5) {
render_method = RENDER_TEXTURED;
}
if (event.key.keysym.sym == SDLK_6) {
render_method = RENDER_TEXTURED_WIRE;
}
if (event.key.keysym.sym == SDLK_c) {
cull_method = CULL_BACKFACE;
}
if (event.key.keysym.sym == SDLK_d) {
cull_method = CULL_NONE;
}
break;
}
}
@@ -60,7 +100,7 @@ void process_input(void){
/*
* Function that receives a 3D vector and returns a 2D point
*/
/*
vec2_t project(vec3_t point) {
vec2_t projected_point = {
.x = (fov_factor * point.x) / point.z,
@@ -68,7 +108,7 @@ vec2_t project(vec3_t point) {
};
return projected_point;
}
}*/
// Loads the cube values in the mesh data structure}
void update(void){
@@ -84,10 +124,22 @@ void update(void){
// Initialize the array of triangles to render
triangles_to_render = NULL;
// Change the mesh scale/rotation values per animation frame
mesh.rotation.x += 0.01;
mesh.rotation.y += 0.01;
mesh.rotation.z += 0.02;
mesh.rotation.y += 0.01;
mesh.rotation.z += 0.01;
//mesh.scale.x += 0.01;
//mesh.scale.y += 0.01;
mesh.translation.z = 5.0;
// Create a scale and translation matrix that will be used to multiply the mesh vertices
mat4_t scale_matrix = mat4_make_scale(mesh.scale.x, mesh.scale.y, mesh.scale.z);
mat4_t translation_matrix = mat4_make_translation(mesh.translation.x, mesh.translation.y, mesh.translation.z);
mat4_t rotation_matrix_x = mat4_make_rotation_x(mesh.rotation.x);
mat4_t rotation_matrix_y = mat4_make_rotation_y(mesh.rotation.y);
mat4_t rotation_matrix_z = mat4_make_rotation_z(mesh.rotation.z);
// Loop all triangle faces of our mesh
int num_faces = array_length(mesh.faces);
for (int i = 0; i < num_faces; i++) {
@@ -100,105 +152,164 @@ void update(void){
//triangle_t projected_triangle;
vec3_t transformed_vertices[3];
vec4_t transformed_vertices[3];
// Loop all three vertices of this current face and apply transformations
for (int j = 0; j < 3; j++) {
vec3_t transformed_vertex = face_vertices[j];
transformed_vertex = vec3_rotate_x(transformed_vertex, mesh.rotation.x);
transformed_vertex = vec3_rotate_y(transformed_vertex, mesh.rotation.y);
transformed_vertex = vec3_rotate_z(transformed_vertex, mesh.rotation.z);
vec4_t transformed_vertex = vec4_from_vec3(face_vertices[j]);
// Translate the vertex (point) away from the camera (in z)
transformed_vertex.z += 5;
// Create a World Matrix combining the scale, rotation and translation matrices
mat4_t world_matrix = mat4_identity();
// Order matters, first scale, then rotate, then translate. [T] * [R] * [S] * v
world_matrix = mat4_mul_mat4(scale_matrix, world_matrix);
world_matrix = mat4_mul_mat4(rotation_matrix_z, world_matrix);
world_matrix = mat4_mul_mat4(rotation_matrix_y, world_matrix);
world_matrix = mat4_mul_mat4(rotation_matrix_x, world_matrix);
world_matrix = mat4_mul_mat4(translation_matrix, world_matrix);
// Multiply the world matrix by the original vector
transformed_vertex = mat4_mul_vec4(world_matrix, transformed_vertex);
// Save the transformed vertex in the array of transformed vertices
transformed_vertices[j] = transformed_vertex;
}
// TODO: Check backface culling
vec3_t vector_a = transformed_vertices[0]; /* A */
vec3_t vector_b = transformed_vertices[1]; /* / \ */
vec3_t vector_c = transformed_vertices[2]; /* C---B */
vec3_t vector_a = vec3_from_vec4(transformed_vertices[0]); /* A */
vec3_t vector_b = vec3_from_vec4(transformed_vertices[1]); /* / \ */
vec3_t vector_c = vec3_from_vec4(transformed_vertices[2]); /* C---B */
// Get the vector subtraction of B-A and C-A
vec3_t vector_ab = vec3_sub(vector_b, vector_a);
vec3_t vector_ac = vec3_sub(vector_c, vector_a);
// Get the vector subtraction of B-A and C-A
vec3_t vector_ab = vec3_sub(vector_b, vector_a);
vec3_t vector_ac = vec3_sub(vector_c, vector_a);
vec3_normalize(&vector_ab);
vec3_normalize(&vector_ac);
// Compute the face normal (using cross product to find perpendicular)
vec3_t normal = vec3_cross(vector_ab, vector_ac);
// Compute the face normal (using cross product to find perpendicular)
vec3_t normal = vec3_cross(vector_ab, vector_ac);
// Normalize the face normal vector
vec3_normalize(&normal);
// Normalize the face normal vector
vec3_normalize(&normal);
// Find the vector between a point in the triangle and the camera origin
vec3_t camera_ray = vec3_sub(camera_position, vector_a);
// Find the vector between a point in the triangle and the camera origin
vec3_t camera_ray = vec3_sub(camera_position, vector_a);
// Calculate how aligned the camera ray is with the face normal (using dot product)
float dot_normal_camera = vec3_dot(normal, camera_ray);
// If dot product is negative, continue and bypass this for-loop iteration
// We do not want to push a face that has a negative dot product
// This bypasses triangles that are looking away from the camera
if (dot_normal_camera < 0) {
continue;
// Calculate how aligned the camera ray is with the face normal (using dot product)
float dot_normal_camera = vec3_dot(normal, camera_ray);
if (cull_method == CULL_BACKFACE) {
// If dot product is negative, continue and bypass this for-loop iteration
// We do not want to push a face that has a negative dot product
// This bypasses triangles that are looking away from the camera
if (dot_normal_camera < 0) {
continue;
}
}
triangle_t projected_triangle;
vec4_t projected_points[3];
// Loop all three vertices to perform projection
for (int j = 0; j < 3; j++) {
// Project the current vertex
vec2_t projected_point = project(transformed_vertices[j]);
// Scale and translate the projected points to the middle of the screen
projected_point.x += (window_width / 2);
projected_point.y += (window_height / 2);
projected_triangle.points[j] = projected_point;
projected_points[j] = mat4_mul_vec4_project(proj_matrix, transformed_vertices[j]);
// scale into the view
projected_points[j].x *= (window_width / 2.0);
projected_points[j].y *= (window_height / 2.0);
// Invert the y values to account for flipped screen y coordinates
projected_points[j].y *= -1;
// translate the projected points to the middle of the screen
projected_points[j].x += (window_width / 2.0);
projected_points[j].y += (window_height / 2.0);
}
// Calculate the avg_depth for each face based on the vertices after transformation
float avg_depth = (transformed_vertices[0].z + transformed_vertices[1].z + transformed_vertices[2].z) / 3.0;
// calculate the shade intensity based on how aligned is the face normal and the inverse of the light (ray)direction
float light_intensity_factor = -vec3_dot(normal, light.direction);
// calculate the triangle colour based on the light angle
uint32_t triangle_color = light_apply_intensity(mesh_face.color, light_intensity_factor);
triangle_t projected_triangle = {
.points = {
{ projected_points[0].x, projected_points[0].y,},
{ projected_points[1].x, projected_points[1].y },
{ projected_points[2].x, projected_points[2].y },
},
// every triangle has a colour (as does each face)
.color = triangle_color,
.avg_depth = avg_depth
};
// Save the projected triangle in the array of triangles to render
//triangles_to_render[i] = projected_triangle;
array_push(triangles_to_render, projected_triangle);
}
// sort avg_depth of triangle faces for all z vertexs per triangle
// painters algorithm
avg_depth_bubble_sort(triangles_to_render, array_length(triangles_to_render));
/*for (int t = 0; t < array_length(triangles_to_render); t++) {
printf("%.3f\n",triangles_to_render[t].avg_depth);
}*/
}
void render(void){
SDL_RenderClear(renderer);
draw_grid();
//Loop all projected points and render them
int num_of_triangles = array_length(triangles_to_render);
for (int i = 0; i < num_of_triangles; i++){
triangle_t triangle = triangles_to_render[i];
triangle_t triangle = triangles_to_render[i];
/*
// Draw vertex points
draw_rect(triangle.points[0].x, triangle.points[0].y, 3, 3, 0xFFFFFF00);
draw_rect(triangle.points[1].x, triangle.points[1].y, 3, 3, 0xFFFFFF00);
draw_rect(triangle.points[2].x, triangle.points[2].y, 3, 3, 0xFFFFFF00);
*/
// Draw filled triangle
if (render_method == RENDER_FILL_TRIANGLE || render_method == RENDER_FILL_TRIANGLE_WIRE) {
draw_filled_triangle(
triangle.points[0].x, triangle.points[0].y, // vertex A
triangle.points[1].x, triangle.points[1].y, // vertex B
triangle.points[2].x, triangle.points[2].y, // vertex C
triangle.color
);
};
// draw unfilled triangle
draw_triangle(
triangle.points[0].x, triangle.points[0].y, // Vertex A
triangle.points[1].x, triangle.points[1].y, // Vertex B
triangle.points[2].x, triangle.points[2].y, // Vertex C
0xFF00FF00);
// Draw textured triangle
if (render_method == RENDER_TEXTURED || render_method == RENDER_TEXTURED_WIRE) {
//draw_textured_triangle(
// triangle.points[0].x, triangle.points[0].y, // vertex A
// triangle.points[1].x, triangle.points[1].y, // vertex B
// triangle.points[2].x, triangle.points[2].y, // vertex C
// triangle.color
//);
/* my implementation
draw_line(triangle.points[0].x, triangle.points[0].y, triangle.points[1].x, triangle.points[1].y, 0xFFFFFF00);
draw_line(triangle.points[1].x, triangle.points[1].y, triangle.points[2].x, triangle.points[2].y, 0xFFFFFF00);
draw_line(triangle.points[2].x, triangle.points[2].y, triangle.points[0].x, triangle.points[0].y, 0xFFFFFF00);
*/
}
}
//draw_line(triangle.points[0].x, triangle.points[0].y, 25, 25);
// Draw triangle wireframe
if (render_method == RENDER_WIRE || render_method == RENDER_WIRE_VERTEX || render_method == RENDER_FILL_TRIANGLE_WIRE || render_method == RENDER_TEXTURED_WIRE) {
draw_triangle(
triangle.points[0].x, triangle.points[0].y, // vertex A
triangle.points[1].x, triangle.points[1].y, // vertex B
triangle.points[2].x, triangle.points[2].y, // vertex C
0xFFFFFFFF
);
}
// draw_pixel(20, 20, 0xFFFFFF00);
// draw_rect(300, 200, 300, 150, 0xFF998500);
// Draw triangle vertex points
if (render_method == RENDER_WIRE_VERTEX) {
draw_rect(triangle.points[0].x - 3, triangle.points[0].y - 3, 6, 6, 0xFFFF0000); // vertex A
draw_rect(triangle.points[1].x - 3, triangle.points[1].y - 3, 6, 6, 0xFFFF0000); // vertex B
draw_rect(triangle.points[2].x - 3, triangle.points[2].y - 3, 6, 6, 0xFFFF0000); // vertex C
}
}
// draw_triangle(300, 100, 50, 400, 500, 700, 0xFF00FF00);
array_free(triangles_to_render);
render_color_buffer();

133
src/matrix.c Normal file
View File

@@ -0,0 +1,133 @@
#include "matrix.h"
mat4_t mat4_identity(void) {
// | 1 0 0 0 |
// | 0 1 0 0 |
// | 0 0 1 0 |
// | 0 0 0 1 |
mat4_t m = {{
{ 1, 0, 0, 0 },
{ 0, 1, 0, 0 },
{ 0, 0, 1, 0 },
{ 0, 0, 0, 1 }
}};
return m;
}
mat4_t mat4_make_scale(float sx, float sy, float sz) {
// | sx 0 0 0 |
// | 0 sy 0 0 |
// | 0 0 sz 0 |
// | 0 0 0 1 |
mat4_t m = mat4_identity();
m.m[0][0] = sx;
m.m[1][1] = sy;
m.m[2][2] = sz;
return m;
}
mat4_t mat4_make_translation(float tx, float ty, float tz) {
// | 1 0 0 tx |
// | 0 1 0 ty |
// | 0 0 1 tz |
// | 0 0 0 1 |
mat4_t m = mat4_identity();
m.m[0][3] = tx;
m.m[1][3] = ty;
m.m[2][3] = tz;
return m;
}
vec4_t mat4_mul_vec4(mat4_t m, vec4_t v) {
vec4_t result;
result.x = m.m[0][0] * v.x + m.m[0][1] * v.y + m.m[0][2] * v.z + m.m[0][3] * v.w;
result.y = m.m[1][0] * v.x + m.m[1][1] * v.y + m.m[1][2] * v.z + m.m[1][3] * v.w;
result.z = m.m[2][0] * v.x + m.m[2][1] * v.y + m.m[2][2] * v.z + m.m[2][3] * v.w;
result.w = m.m[3][0] * v.x + m.m[3][1] * v.y + m.m[3][2] * v.z + m.m[3][3] * v.w;
return result;
}
mat4_t mat4_make_rotation_z(float angle) {
float c = cos(angle);
float s = sin(angle);
// c -s 0 0
// s c 0 0
// 0 0 1 0
// 0 0 0 1
mat4_t m = mat4_identity();
m.m[0][0] = c;
m.m[0][1] = -s;
m.m[1][0] = s;
m.m[1][1] = c;
return m;
}
mat4_t mat4_make_rotation_x(float angle) {
float c = cos(angle);
float s = sin(angle);
// 1 0 0 0
// 0 c -s 0
// 0 s c 0
// 0 0 0 1
mat4_t m = mat4_identity();
m.m[1][1] = c;
m.m[1][2] = -s;
m.m[2][1] = s;
m.m[2][2] = c;
return m;
}
mat4_t mat4_make_rotation_y(float angle) {
float c = cos(angle);
float s = sin(angle);
// c 0 s 0
// 0 1 0 0
// -s 0 c 0
// 0 0 0 1
mat4_t m = mat4_identity();
m.m[0][0] = c;
m.m[2][0] = -s;
m.m[0][2] = s;
m.m[2][2] = c;
return m;
}
mat4_t mat4_mul_mat4(mat4_t a, mat4_t b) {
mat4_t m;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
m.m[i][j] = a.m[i][0] * b.m[0][j] + a.m[i][1] * b.m[1][j] +
a.m[i][2] * b.m[2][j] + a.m[i][3] * b.m[3][j];
}
}
return m;
}
mat4_t mat4_make_perspective(float fov, float aspect, float znear, float zfar) {
// | (h/w)*1/tan(fov/2) 0 0 0 |
// | 0 1/tan(fov2) 0 0 |
// | 0 zf/(zf-zn) (-zf*zn)/(zf-zn) |
// | 0 0 0 0 |
mat4_t m = {{{ 0 }}};
m.m[0][0] = aspect * (1 / tan(fov / 2));
m.m[1][1] = 1 / tan(fov / 2);
m.m[2][2] = zfar / (zfar - znear);
m.m[2][3] = (-zfar * znear) / (zfar - znear);
m.m[3][2] = 1.0;
return m;
}
vec4_t mat4_mul_vec4_project(mat4_t mat_proj, vec4_t v) {
// multiply the projection matrix by our original vector
vec4_t result = mat4_mul_vec4(mat_proj, v);
// perform perspective divide with original z-value that is now stored in w
if (result.w != 0.0) {
result.x /= result.w;
result.y /= result.w;
result.z /= result.w;
}
return result;
}

28
src/matrix.h Normal file
View File

@@ -0,0 +1,28 @@
//
// Created by tristan on 12/4/25.
//
#ifndef INC_3DRENDERER_MATRIX_H
#define INC_3DRENDERER_MATRIX_H
#include "vector.h"
#include "math.h"
typedef struct {
float m[4][4];
} mat4_t;
mat4_t mat4_identity(void);
mat4_t mat4_make_scale(float sx, float sy, float sz);
mat4_t mat4_make_translation(float tx, float ty, float tz);
vec4_t mat4_mul_vec4(mat4_t m, vec4_t v);
mat4_t mat4_make_rotation_z(float angle);
mat4_t mat4_make_rotation_y(float angle);
mat4_t mat4_make_rotation_x(float angle);
mat4_t mat4_make_perspective(float fov, float aspect, float znear, float zfar);
mat4_t mat4_mul_mat4(mat4_t a, mat4_t b);
vec4_t mat4_mul_vec4_project(mat4_t mat_proj, vec4_t v);
#endif //INC_3DRENDERER_MATRIX_H

View File

@@ -7,7 +7,9 @@
mesh_t mesh = {
.vertices = NULL,
.faces = NULL,
.rotation = { 0, 0, 0 }
.rotation = { 0, 0, 0 },
.scale = { 1.0, 1.0, 1.0 },
.translation = { 0, 0, 0 }
};
vec3_t cube_vertices[N_CUBE_VERTICES] = {
@@ -24,23 +26,23 @@ vec3_t cube_vertices[N_CUBE_VERTICES] = {
face_t cube_faces[N_CUBE_FACES] = {
// front
{ .a = 1, .b = 2, .c = 3 },
{ .a = 1, .b = 3, .c = 4 },
{ .a = 1, .b = 2, .c = 3, .color = 0xFFFFFFFF },
{ .a = 1, .b = 3, .c = 4, .color = 0xFFFFFFFF},
// right
{ .a = 4, .b = 3, .c = 5 },
{ .a = 4, .b = 5, .c = 6 },
{ .a = 4, .b = 3, .c = 5, .color = 0xFFFFFFFF},
{ .a = 4, .b = 5, .c = 6, .color = 0xFFFFFFFF },
// back
{ .a = 6, .b = 5, .c = 7 },
{ .a = 6, .b = 7, .c = 8 },
{ .a = 6, .b = 5, .c = 7, .color = 0xFFFFFFFF },
{ .a = 6, .b = 7, .c = 8, .color = 0xFFFFFFFF },
// left
{ .a = 8, .b = 7, .c = 2 },
{ .a = 8, .b = 2, .c = 1 },
{ .a = 8, .b = 7, .c = 2, .color = 0xFFFFFFFF },
{ .a = 8, .b = 2, .c = 1, .color = 0xFFFFFFFF },
// top
{ .a = 2, .b = 7, .c = 5 },
{ .a = 2, .b = 5, .c = 3 },
{ .a = 2, .b = 7, .c = 5, .color = 0xFFFFFFFF },
{ .a = 2, .b = 5, .c = 3, .color = 0xFFFFFFFF },
// bottom
{ .a = 6, .b = 8, .c = 1 },
{ .a = 6, .b = 1, .c = 4 }
{ .a = 6, .b = 8, .c = 1, .color = 0xFFFFFFFF },
{ .a = 6, .b = 1, .c = 4, .color = 0xFFFFFFFF }
};
void load_cube_mesh_data(void) {
@@ -82,7 +84,8 @@ void load_obj_file_data(char* filename) {
face_t face = {
.a = vertex_indices[0],
.b = vertex_indices[1],
.c = vertex_indices[2]
.c = vertex_indices[2],
.color = 0xFFFFFFFF
};
array_push(mesh.faces, face);
}

View File

@@ -14,9 +14,11 @@ extern face_t cube_faces[N_CUBE_FACES];
// Define a struct for dynamic size meshes, with an array of vertices and faces
typedef struct {
vec3_t* vertices; // dynamic array of vertices
face_t* faces; // dynamic array of faces
vec3_t rotation; // rotation with x, y, and z values
vec3_t* vertices; // dynamic array of vertices
face_t* faces; // dynamic array of faces
vec3_t rotation; // rotation with x, y, and z values
vec3_t scale; // scale with x, y, and z values
vec3_t translation; // translation with x, y, and z
} mesh_t;
extern mesh_t mesh;

73
src/texture.c Executable file
View File

@@ -0,0 +1,73 @@
#include <stdio.h>
#include <stdint.h>
uint32_t* mesh_texture = NULL;
int texture_width = 64;
int texture_height = 64;
const uint8_t REDBRICK_TEXTURE[] = {
0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff,
0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff,
0x38, 0x38, 0x38, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x48, 0x48, 0x48, 0xff,
0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x64, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x58, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x64, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x58, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x58, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x5c, 0x5c, 0x5c, 0xff, 0x64, 0x64, 0x64, 0xff, 0x64, 0x64, 0x64, 0xff, 0x5c, 0x5c, 0x5c, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff,
0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x48, 0x48, 0x48, 0xff, 0x40, 0x40, 0x40, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff,
0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xb0, 0xff,
0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff,
0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x40, 0x40, 0x40, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff,
0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff,
0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x20, 0x20, 0x20, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff,
0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x20, 0x20, 0x20, 0xff, 0x40, 0x40, 0x40, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff,
0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x20, 0x20, 0x20, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x40, 0xff,
0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x34, 0x34, 0x34, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x34, 0x34, 0x34, 0xff, 0x34, 0x34, 0x34, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x34, 0x34, 0x34, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x40, 0x40, 0x40, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff,
0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x48, 0x48, 0x48, 0xff,
0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x38, 0x38, 0x38, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x5c, 0x5c, 0x5c, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x54, 0x54, 0x54, 0xff, 0x64, 0x64, 0x64, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x54, 0x54, 0x54, 0xff, 0x5c, 0x5c, 0x5c, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x64, 0x64, 0x64, 0xff, 0x64, 0x64, 0x64, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x40, 0x40, 0x40, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff,
0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff,
0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0xb0, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff,
0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff,
0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x64, 0x64, 0x64, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff,
0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x64, 0x64, 0x64, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff,
0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff,
0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff,
0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x40, 0xff,
0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x5c, 0x5c, 0x5c, 0xff, 0x64, 0x64, 0x64, 0xff, 0x54, 0x54, 0x54, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff,
0x38, 0x38, 0x38, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x48, 0x48, 0x48, 0xff,
0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x38, 0x38, 0x38, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x20, 0x20, 0x20, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x38, 0x38, 0x38, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x20, 0x20, 0x20, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x34, 0x34, 0x34, 0xff, 0x38, 0x38, 0x38, 0xff, 0x34, 0x34, 0x34, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x64, 0x64, 0x64, 0xff, 0x64, 0x64, 0x64, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x30, 0x30, 0x30, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x30, 0x30, 0x30, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff,
0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xec, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff, 0x00, 0x00, 0xbc, 0xff,
0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff,
0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x34, 0x34, 0x34, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x4c, 0xff,
0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x40, 0x40, 0x40, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff,
0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x40, 0x40, 0x40, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff,
0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x40, 0x40, 0x40, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff,
0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xd4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x4c, 0xff,
0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x98, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xc8, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x58, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x64, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x70, 0xff,
0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x20, 0x20, 0x20, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x00, 0x00, 0xa4, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x40, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff, 0x00, 0x00, 0x4c, 0xff,
0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x34, 0x34, 0x34, 0xff, 0x34, 0x34, 0x34, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x20, 0x20, 0x20, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x48, 0x48, 0x48, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff,
0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff, 0x54, 0x54, 0x54, 0xff,
};

16
src/texture.h Executable file
View File

@@ -0,0 +1,16 @@
#ifndef TEXTURE_H
#define TEXTURE_H
#include <stdint.h>
typedef struct {
float u;
float v;
} tex2_t;
extern int texture_width;
extern int texture_height;
extern uint32_t* mesh_texture;
extern const uint8_t REDBRICK_TEXTURE[];
#endif

View File

@@ -1,3 +1,83 @@
#include "triangle.h"
#include "display.h"
//TODO
void int_swap(int *a, int *b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
// Draw a filled triangle with a flat bottom
void fill_flat_bottom_triangle(int x0, int y0, int x1, int y1, int x2, int y2, uint32_t color) {
// Find the two slopes (two triangle legs)
float inv_slope_1 = (float)(x1 - x0) / (y1 - y0);
float inv_slope_2 = (float)(x2 - x0) / (y2 - y0);
// Start x_start and x_end from the top vertex (x0, y0)
float x_start = x0;
float x_end = x0;
// Loop all the scanlines from top to bottom
for (int y = y0; y <= y2; y++) {
draw_line(x_start, y, x_end, y, color);
x_start += inv_slope_1;
x_end += inv_slope_2;
}
}
// Draw a filled triangle with a flat top
void fill_flat_top_triangle(int x0, int y0, int x1, int y1, int x2, int y2, uint32_t color) {
// Find the two slopes (two triangle legs)
float inv_slope_1 = (float)(x2 - x0) / (y2 - y0);
float inv_slope_2 = (float)(x2 - x1) / (y2 - y1);
// Start x_start and x_end from the bottom vertex (x0, y0)
float x_start = x2;
float x_end = x2;
// Loop all the scanlines from bottom to top
for (int y = y2; y >= y0; y--) {
draw_line(x_start, y, x_end, y, color);
x_start -= inv_slope_1;
x_end -= inv_slope_2;
}
}
void draw_triangle(int x0, int y0, int x1, int y1, int x2, int y2, uint32_t color) {
draw_line(x0, y0, x1, y1, color);
draw_line(x1, y1, x2, y2, color);
draw_line(x2, y2, x0, y0, color);
};
void draw_filled_triangle(int x0, int y0, int x1, int y1, int x2, int y2, uint32_t color) {
// We need to sort the vertices by the y-coordinate ascending (y0 < y < y2)
if (y0 > y1) {
int_swap(&y0, &y1);
int_swap(&x0, &x1);
}
if (y1 > y2) {
int_swap(&y1, &y2);
int_swap(&x1, &x2);
}
if (y0 > y1) {
int_swap(&y0, &y1);
int_swap(&x0, &x1);
}
if (y1 == y2) {
fill_flat_bottom_triangle(x0, y0, x1, y1, x2, y2, color);
} else if (y0 == y1) {
fill_flat_top_triangle(x0, y0, x1, y1, x2, y2, color);
} else {
// Calculate the new vertex (Mx, My) using triangle similarity
int My = y1;
int Mx = ((float)((x2-x0) * (y1 - y0)) / (float)(y2 - y0)) + x0;
fill_flat_bottom_triangle(x0, y0, x1, y1, Mx, My, color);
fill_flat_top_triangle(x1, y1, Mx, My, x2, y2, color);
}
}

View File

@@ -1,19 +1,31 @@
#ifndef TRIANGLE_H
#define TRIANGLE_H
#include <stdint.h>
#include "texture.h"
#include "vector.h"
#include "display.h"
typedef struct {
int a;
int b;
int c;
tex2_t a_uv;
tex2_t b_uv;
tex2_t c_uv;
color_t color;
} face_t;
typedef struct {
vec2_t points[3];
tex2_t texcoords[3];
color_t color;
float avg_depth;
} triangle_t;
void draw_filled_triangle(int x0, int y0, int x1, int y1, int x2, int y2, uint32_t color);
void draw_triangle(int x0, int y0, int x1, int y1, int x2, int y2, uint32_t color);
// TODO: void draw_textured_triangle(...);
#endif

View File

@@ -155,6 +155,20 @@ vec3_t vec3_rotate_z(vec3_t v, float angle) {
return rotated_vector;
}
////////////////////////////////////////////////////////////////////////////////
// implementations of vector conversion functions
////////////////////////////////////////////////////////////////////////////////
vec4_t vec4_from_vec3(vec3_t v) {
vec4_t result = { v.x, v.y, v.z, 1.0 };
return result;
}
vec3_t vec3_from_vec4(vec4_t v) {
vec3_t result = { v.x, v.y, v.z };
return result;
}
/*
vec3_t cube_vertice[8] = {
{ .x = -1, .y = -1, .z = -1 }, // 1

View File

@@ -12,6 +12,10 @@ typedef struct {
float z;
} vec3_t;
typedef struct {
float x, y, z, w;
} vec4_t;
/////////////////////////////////////////////////////////////////////////////////
// Vector 2D Functions
////////////////////////////////////////////////////////////////////////////////
@@ -39,4 +43,9 @@ vec3_t vec3_cross(vec3_t a, vec3_t b);
float vec3_dot(vec3_t a, vec3_t b);
void vec3_normalize(vec3_t* v);
////////////////////////////////////////////////////////////////////////////////
// Vector Conversion Functions
////////////////////////////////////////////////////////////////////////////////
vec4_t vec4_from_vec3(vec3_t v);
vec3_t vec3_from_vec4(vec4_t v);
#endif