From a6a7a67b61b5d33bd4da1aca1b93249ba72d80da Mon Sep 17 00:00:00 2001 From: erwin coumans Date: Wed, 13 Mar 2013 00:22:35 -0700 Subject: [PATCH] add another btgui test --- .../GLInstanceRendererInternalData.h | 19 + btgui/OpenGLWindow/GLInstancingRenderer.cpp | 1308 +++++ btgui/OpenGLWindow/GLInstancingRenderer.h | 92 + btgui/OpenGLWindow/GLPrimInternalData.h | 19 + btgui/OpenGLWindow/GLPrimitiveRenderer.cpp | 342 ++ btgui/OpenGLWindow/GLPrimitiveRenderer.h | 32 + btgui/OpenGLWindow/GwenOpenGL3CoreRenderer.h | 319 ++ btgui/OpenGLWindow/LoadShader.cpp | 101 + btgui/OpenGLWindow/LoadShader.h | 18 + btgui/OpenGLWindow/MacOpenGLWindow.h | 86 + btgui/OpenGLWindow/MacOpenGLWindow.mm | 978 ++++ btgui/OpenGLWindow/OpenGLInclude.h | 51 + btgui/OpenGLWindow/ShapeData.h | 4802 ++++++++++++++++ btgui/OpenGLWindow/TwFonts.cpp | 4916 +++++++++++++++++ btgui/OpenGLWindow/TwFonts.h | 67 + btgui/OpenGLWindow/Win32InternalWindowData.h | 65 + btgui/OpenGLWindow/Win32OpenGLWindow.cpp | 139 + btgui/OpenGLWindow/Win32OpenGLWindow.h | 58 + btgui/OpenGLWindow/Win32Window.cpp | 675 +++ btgui/OpenGLWindow/Win32Window.h | 78 + btgui/OpenGLWindow/X11OpenGLWindow.cpp | 415 ++ btgui/OpenGLWindow/X11OpenGLWindow.h | 64 + btgui/OpenGLWindow/btgWindowInterface.h | 108 + btgui/OpenGLWindow/gwenWindow.cpp | 375 ++ btgui/OpenGLWindow/gwenWindow.h | 24 + btgui/OpenGLWindow/main.cpp | 516 ++ btgui/OpenGLWindow/renderscene.cpp | 199 + btgui/OpenGLWindow/renderscene.h | 7 + build/premake4.lua | 2 + 29 files changed, 15875 insertions(+) create mode 100644 btgui/OpenGLWindow/GLInstanceRendererInternalData.h create mode 100644 btgui/OpenGLWindow/GLInstancingRenderer.cpp create mode 100644 btgui/OpenGLWindow/GLInstancingRenderer.h create mode 100644 btgui/OpenGLWindow/GLPrimInternalData.h create mode 100644 btgui/OpenGLWindow/GLPrimitiveRenderer.cpp create mode 100644 btgui/OpenGLWindow/GLPrimitiveRenderer.h create mode 100644 btgui/OpenGLWindow/GwenOpenGL3CoreRenderer.h create mode 100644 btgui/OpenGLWindow/LoadShader.cpp create mode 100644 btgui/OpenGLWindow/LoadShader.h create mode 100644 btgui/OpenGLWindow/MacOpenGLWindow.h create mode 100644 btgui/OpenGLWindow/MacOpenGLWindow.mm create mode 100644 btgui/OpenGLWindow/OpenGLInclude.h create mode 100644 btgui/OpenGLWindow/ShapeData.h create mode 100644 btgui/OpenGLWindow/TwFonts.cpp create mode 100644 btgui/OpenGLWindow/TwFonts.h create mode 100644 btgui/OpenGLWindow/Win32InternalWindowData.h create mode 100644 btgui/OpenGLWindow/Win32OpenGLWindow.cpp create mode 100644 btgui/OpenGLWindow/Win32OpenGLWindow.h create mode 100644 btgui/OpenGLWindow/Win32Window.cpp create mode 100644 btgui/OpenGLWindow/Win32Window.h create mode 100644 btgui/OpenGLWindow/X11OpenGLWindow.cpp create mode 100644 btgui/OpenGLWindow/X11OpenGLWindow.h create mode 100644 btgui/OpenGLWindow/btgWindowInterface.h create mode 100644 btgui/OpenGLWindow/gwenWindow.cpp create mode 100644 btgui/OpenGLWindow/gwenWindow.h create mode 100644 btgui/OpenGLWindow/main.cpp create mode 100644 btgui/OpenGLWindow/renderscene.cpp create mode 100644 btgui/OpenGLWindow/renderscene.h diff --git a/btgui/OpenGLWindow/GLInstanceRendererInternalData.h b/btgui/OpenGLWindow/GLInstanceRendererInternalData.h new file mode 100644 index 000000000..52079afeb --- /dev/null +++ b/btgui/OpenGLWindow/GLInstanceRendererInternalData.h @@ -0,0 +1,19 @@ +#ifndef GL_INSTANCE_RENDERER_INTERNAL_DATA_H +#define GL_INSTANCE_RENDERER_INTERNAL_DATA_H + +#include "OpenGLInclude.h" +#include "BulletCommon/btAlignedObjectArray.h" + +struct GLInstanceRendererInternalData +{ + + btAlignedObjectArray m_instance_positions_ptr; + btAlignedObjectArray m_instance_quaternion_ptr; + btAlignedObjectArray m_instance_colors_ptr; + btAlignedObjectArray m_instance_scale_ptr; + + int m_vboSize; + GLuint m_vbo; +}; + +#endif //GL_INSTANCE_RENDERER_INTERNAL_DATA_H diff --git a/btgui/OpenGLWindow/GLInstancingRenderer.cpp b/btgui/OpenGLWindow/GLInstancingRenderer.cpp new file mode 100644 index 000000000..3a2e1b835 --- /dev/null +++ b/btgui/OpenGLWindow/GLInstancingRenderer.cpp @@ -0,0 +1,1308 @@ +/* +Copyright (c) 2012 Advanced Micro Devices, Inc. + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ +//Originally written by Erwin Coumans + + + +#include "OpenGLInclude.h" +#include "GLInstancingRenderer.h" + +#include +//#include "DemoSettings.h" +#include +#include +#include "BulletCommon/btVector3.h" +#include "BulletCommon/btQuaternion.h" +#include "BulletCommon/btQuickprof.h" +#include "BulletCommon/btMatrix3x3.h" +#include "LoadShader.h" + + + +//#include "../../opencl/gpu_rigidbody_pipeline/btGpuNarrowphaseAndSolver.h"//for m_maxNumObjectCapacity + +static InternalDataRenderer* sData2; + +struct btGraphicsInstance +{ + GLuint m_cube_vao; + GLuint m_index_vbo; + GLuint m_texturehandle; + + int m_numIndices; + int m_numVertices; + + int m_numGraphicsInstances; + + int m_instanceOffset; + int m_vertexArrayOffset; + int m_primitiveType; + + btGraphicsInstance() :m_cube_vao(-1),m_index_vbo(-1),m_numIndices(-1),m_numVertices(-1),m_numGraphicsInstances(0),m_instanceOffset(0),m_vertexArrayOffset(0),m_primitiveType(BT_GL_TRIANGLES),m_texturehandle(0) + { + } + +}; + + + + +bool m_ortho = false; +int m_glutScreenWidth = 1024; +int m_glutScreenHeight = 768; + +static GLfloat projectionMatrix[16]; +static GLfloat modelviewMatrix[16]; + +static void checkError(const char *functionName) +{ + GLenum error; + while (( error = glGetError() ) != GL_NO_ERROR) + { + fprintf (stderr, "GL error 0x%X detected in %s\n", error, functionName); + } +} + + + +extern int gShapeIndex; + + + + + + + + +#include "GLInstanceRendererInternalData.h" + +struct InternalDataRenderer : public GLInstanceRendererInternalData +{ + + + btVector3 m_cameraPosition; + btVector3 m_cameraTargetPosition; + float m_cameraDistance; + btVector3 m_cameraUp; + float m_azi; + float m_ele; + + float m_mouseXpos; + float m_mouseYpos; + bool m_mouseInitialized; + + GLuint m_defaultTexturehandle; + + InternalDataRenderer() : + m_cameraPosition(btVector3(0,0,0)), + m_cameraTargetPosition(btVector3(15,2,-24)), + m_cameraDistance(150), + m_cameraUp(0,1,0), + m_azi(135.f), + m_ele(25.f), + m_mouseInitialized(false) + { + + + } + + void wheelCallback( float deltax, float deltay) + { + if (btFabs(deltax)>btFabs(deltay)) + { + m_azi -= deltax*0.1; + + } else + { + m_cameraDistance -= deltay*0.1; + + } + + } + + void mouseMoveCallback(float x, float y) + { + + m_mouseXpos = x; + m_mouseYpos = y; + m_mouseInitialized = true; + } + + void mouseButtonCallback(int button, int state, float x, float y) + { + if (m_mouseInitialized) + { + if (button) + { + float xDelta = x-m_mouseXpos; + float yDelta = y-m_mouseYpos; + + m_azi += xDelta*0.1; + m_ele += yDelta*0.1; + //printf("m_azi=%f\n",m_azi); + } + } + m_mouseXpos = x; + m_mouseYpos = y; + m_mouseInitialized = true; + } + void keyboardCallback(unsigned char key, int x, int y) + { + // printf("world\n"); + } + +}; + +struct GLInstanceRendererInternalData* GLInstancingRenderer::getInternalData() +{ + return m_data; +} + +void btDefaultWheelCallback(float deltax, float deltay) +{ + if (sData2) + sData2->wheelCallback(deltax,deltay); +} +void btDefaultMouseButtonCallback(int button, int state, float x, float y) +{ + if (sData2) + sData2->mouseButtonCallback(button, state, x, y); +} +void btDefaultMouseMoveCallback( float x, float y) +{ + if (sData2) + sData2->mouseMoveCallback( x, y); +} + +void btDefaultKeyboardCallback(int key, int state) +{ + //printf("world\n"); +} + + +static GLuint instancingShader; // The instancing renderer +static GLuint instancingShaderPointSprite; // The point sprite instancing renderer + + + + +static bool done = false; +static GLint angle_loc = 0; +static GLint ModelViewMatrix=0; +static GLint ProjectionMatrix=0; +static GLint uniform_texture_diffuse = 0; + +static GLint screenWidthPointSprite=0; +static GLint ModelViewMatrixPointSprite=0; +static GLint ProjectionMatrixPointSprite=0; +static GLint uniform_texture_diffusePointSprite= 0; + + + +GLInstancingRenderer::GLInstancingRenderer(int maxNumObjectCapacity, int maxShapeCapacityInBytes) + :m_maxNumObjectCapacity(maxNumObjectCapacity), + m_maxShapeCapacityInBytes(maxShapeCapacityInBytes), + m_textureenabled(true), + m_textureinitialized(false) +{ + + m_data = new InternalDataRenderer; + sData2 = m_data; + + m_data->m_instance_positions_ptr.resize(m_maxNumObjectCapacity*4); + m_data->m_instance_quaternion_ptr.resize(m_maxNumObjectCapacity*4); + m_data->m_instance_colors_ptr.resize(m_maxNumObjectCapacity*4); + m_data->m_instance_scale_ptr.resize(m_maxNumObjectCapacity*3); + +} + +GLInstancingRenderer::~GLInstancingRenderer() +{ + for (int i=0;im_index_vbo) + { + glDeleteBuffers(1,&m_graphicsInstances[i]->m_index_vbo); + } + if (m_graphicsInstances[i]->m_cube_vao) + { + glDeleteVertexArrays(1,&m_graphicsInstances[i]->m_cube_vao); + } + } + sData2=0; + + if (m_data) + { + if (m_data->m_vbo) + glDeleteBuffers(1,&m_data->m_vbo); + } + delete m_data; +} + + + + +//used for dynamic loading from disk (default switched off) +//#define MAX_SHADER_LENGTH 8192 +//static GLubyte shaderText[MAX_SHADER_LENGTH]; + +static const char* vertexShader= \ +"#version 330\n" +"precision highp float;\n" +"\n" +"\n" +"\n" +"layout (location = 0) in vec4 position;\n" +"layout (location = 1) in vec4 instance_position;\n" +"layout (location = 2) in vec4 instance_quaternion;\n" +"layout (location = 3) in vec2 uvcoords;\n" +"layout (location = 4) in vec3 vertexnormal;\n" +"layout (location = 5) in vec4 instance_color;\n" +"layout (location = 6) in vec3 instance_scale;\n" +"\n" +"\n" +"uniform float angle = 0.0;\n" +"uniform mat4 ModelViewMatrix;\n" +"uniform mat4 ProjectionMatrix;\n" +"\n" +"out Fragment\n" +"{\n" +" vec4 color;\n" +"} fragment;\n" +"\n" +"out Vert\n" +"{\n" +" vec2 texcoord;\n" +"} vert;\n" +"\n" +"\n" +"vec4 quatMul ( in vec4 q1, in vec4 q2 )\n" +"{\n" +" vec3 im = q1.w * q2.xyz + q1.xyz * q2.w + cross ( q1.xyz, q2.xyz );\n" +" vec4 dt = q1 * q2;\n" +" float re = dot ( dt, vec4 ( -1.0, -1.0, -1.0, 1.0 ) );\n" +" return vec4 ( im, re );\n" +"}\n" +"\n" +"vec4 quatFromAxisAngle(vec4 axis, in float angle)\n" +"{\n" +" float cah = cos(angle*0.5);\n" +" float sah = sin(angle*0.5);\n" +" float d = inversesqrt(dot(axis,axis));\n" +" vec4 q = vec4(axis.x*sah*d,axis.y*sah*d,axis.z*sah*d,cah);\n" +" return q;\n" +"}\n" +"//\n" +"// vector rotation via quaternion\n" +"//\n" +"vec4 quatRotate3 ( in vec3 p, in vec4 q )\n" +"{\n" +" vec4 temp = quatMul ( q, vec4 ( p, 0.0 ) );\n" +" return quatMul ( temp, vec4 ( -q.x, -q.y, -q.z, q.w ) );\n" +"}\n" +"vec4 quatRotate ( in vec4 p, in vec4 q )\n" +"{\n" +" vec4 temp = quatMul ( q, p );\n" +" return quatMul ( temp, vec4 ( -q.x, -q.y, -q.z, q.w ) );\n" +"}\n" +"\n" +"out vec3 lightDir,normal,ambient;\n" +"\n" +"void main(void)\n" +"{\n" +" vec4 q = instance_quaternion;\n" +" ambient = vec3(0.3,.3,0.3);\n" +" \n" +" \n" +" vec4 local_normal = (quatRotate3( vertexnormal,q));\n" +" vec3 light_pos = vec3(-0.3,0.1,0.1);\n" +" normal = local_normal.xyz;\n"//normalize(ModelViewMatrix * local_normal).xyz;\n" +"\n" +" lightDir = normalize(light_pos);//gl_LightSource[0].position.xyz));\n" +"// lightDir = normalize(vec3(gl_LightSource[0].position));\n" +" \n" +" vec4 axis = vec4(1,1,1,0);\n" +" vec4 localcoord = quatRotate3( position.xyz*instance_scale,q);\n" +" vec4 vertexPos = ProjectionMatrix * ModelViewMatrix *(instance_position+localcoord);\n" +"\n" +" gl_Position = vertexPos;\n" +" \n" +" fragment.color = instance_color;\n" +" vert.texcoord = uvcoords;\n" +"}\n" +; + + +static const char* fragmentShader= \ +"#version 330\n" +"precision highp float;\n" +"\n" +"in Fragment\n" +"{\n" +" vec4 color;\n" +"} fragment;\n" +"\n" +"in Vert\n" +"{\n" +" vec2 texcoord;\n" +"} vert;\n" +"\n" +"uniform sampler2D Diffuse;\n" +"\n" +"in vec3 lightDir,normal,ambient;\n" +"\n" +"out vec4 color;\n" +"\n" +"void main_textured(void)\n" +"{\n" +" color = fragment.color;//texture2D(Diffuse,vert.texcoord);//fragment.color;\n" +"}\n" +"\n" +"void main(void)\n" +"{\n" +" vec4 texel = fragment.color*texture(Diffuse,vert.texcoord);//fragment.color;\n" +" vec3 ct,cf;\n" +" float intensity,at,af;\n" +" intensity = max(dot(lightDir,normalize(normal)),0);\n" +" cf = intensity*vec3(1.0,1.0,1.0)+ambient;" +" af = 1.0;\n" +" \n" +" ct = texel.rgb;\n" +" at = texel.a;\n" +" \n" +" color = vec4(ct * cf, at * af); \n" +"}\n" +; + + +static const char* vertexShaderPointSprite= \ +"#version 330\n" +"precision highp float;\n" +"\n" +"\n" +"\n" +"layout (location = 0) in vec4 position;\n" +"layout (location = 1) in vec4 instance_position;\n" +"layout (location = 3) in vec2 uvcoords;\n" +"layout (location = 4) in vec3 vertexnormal;\n" +"layout (location = 5) in vec4 instance_color;\n" +"layout (location = 6) in vec3 instance_scale;\n" +"\n" +"\n" +"uniform float screenWidth = 700.f;\n" +"uniform mat4 ModelViewMatrix;\n" +"uniform mat4 ProjectionMatrix;\n" +"\n" +"out Fragment\n" +"{\n" +" vec4 color;\n" +"} fragment;\n" +"\n" +"\n" +"\n" +"//\n" +"// vector rotation via quaternion\n" +"//\n" +"\n" +"out vec3 ambient;\n" +"\n" +"void main(void)\n" +"{\n" +" ambient = vec3(0.3,.3,0.3);\n" +" \n" +" \n" +" vec4 axis = vec4(1,1,1,0);\n" +" vec4 vertexPos = ProjectionMatrix * ModelViewMatrix *(instance_position);\n" +" vec3 posEye = vec3(ModelViewMatrix * vec4(instance_position.xyz, 1.0));\n" +" float dist = length(posEye);\n" +" float pointRadius = 1.f;\n" +" gl_PointSize = instance_scale.x * pointRadius * (screenWidth / dist);\n" +"\n" +" gl_Position = vertexPos;\n" +" \n" +" fragment.color = instance_color;\n" +"}\n" +; + + +static const char* fragmentShaderPointSprite= \ +"#version 330\n" +"precision highp float;\n" +"\n" +"in Fragment\n" +"{\n" +" vec4 color;\n" +"} fragment;\n" +"\n" +"\n" +"in vec3 ambient;\n" +"\n" +"out vec4 color;\n" +"\n" +"void main_textured(void)\n" +"{\n" +" color = fragment.color;//texture2D(Diffuse,vert.texcoord);//fragment.color;\n" +"}\n" +"\n" +"void main(void)\n" +"{\n" +" vec3 N;\n" +" N.xy = gl_PointCoord.st*vec2(2.0, -2.0) + vec2(-1.0, 1.0);\n" +" float mag = dot(N.xy, N.xy);\n" +" if (mag > 1.0) discard; \n" +" vec4 texel = vec4(1,0,0,1);\n"//fragment.color*texture(Diffuse,vert.texcoord);//fragment.color;\n" +" vec3 ct;\n" +" float at,af;\n" +" af = 1.0;\n" +" \n" +" ct = texel.rgb;\n" +" at = texel.a;\n" +" \n" +" vec3 lightDir= vec3(1,0,0);\n" +" float diffuse = max(0.0, dot(lightDir, N));\n" +" color = vec4(ct * diffuse, at * af); \n" +"}\n" +; + + + +void GLInstancingRenderer::writeSingleInstanceTransformToCPU(float* position, float* orientation, int srcIndex) +{ + m_data->m_instance_positions_ptr[srcIndex*4+0]=position[0]; + m_data->m_instance_positions_ptr[srcIndex*4+1]=position[1]; + m_data->m_instance_positions_ptr[srcIndex*4+2]=position[2]; + m_data->m_instance_positions_ptr[srcIndex*4+3]=1; + + m_data->m_instance_quaternion_ptr[srcIndex*4+0]=orientation[0]; + m_data->m_instance_quaternion_ptr[srcIndex*4+1]=orientation[1]; + m_data->m_instance_quaternion_ptr[srcIndex*4+2]=orientation[2]; + m_data->m_instance_quaternion_ptr[srcIndex*4+3]=orientation[3]; + +/* m_data->m_instance_colors_ptr[srcIndex*4+0]=color[0]; + m_data->m_instance_colors_ptr[srcIndex*4+1]=color[1]; + m_data->m_instance_colors_ptr[srcIndex*4+2]=color[2]; + m_data->m_instance_colors_ptr[srcIndex*4+3]=color[3]; + */ +} + + +void GLInstancingRenderer::writeSingleInstanceColorToCPU(float* color, int srcIndex) +{ + + m_data->m_instance_colors_ptr[srcIndex*4+0]=color[0]; + m_data->m_instance_colors_ptr[srcIndex*4+1]=color[1]; + m_data->m_instance_colors_ptr[srcIndex*4+2]=color[2]; + m_data->m_instance_colors_ptr[srcIndex*4+3]=color[3]; +} + + + +void GLInstancingRenderer::writeSingleInstanceTransformToGPU(float* position, float* orientation, int objectIndex) +{ + glBindBuffer(GL_ARRAY_BUFFER, m_data->m_vbo); + glFlush(); + + char* orgBase = (char*)glMapBuffer( GL_ARRAY_BUFFER,GL_READ_WRITE); + //btGraphicsInstance* gfxObj = m_graphicsInstances[k]; + int totalNumInstances= 0; + for (int k=0;km_numGraphicsInstances; + } + + int POSITION_BUFFER_SIZE = (totalNumInstances*sizeof(float)*4); + + char* base = orgBase; + + float* positions = (float*)(base+m_maxShapeCapacityInBytes); + float* orientations = (float*)(base+m_maxShapeCapacityInBytes + POSITION_BUFFER_SIZE); + + + positions[objectIndex*4] = position[0]; + positions[objectIndex*4+1] = position[1]; + positions[objectIndex*4+2] = position[2]; + positions[objectIndex*4+3] = position[3]; + + orientations [objectIndex*4] = orientation[0]; + orientations [objectIndex*4+1] = orientation[1]; + orientations [objectIndex*4+2] = orientation[2]; + orientations [objectIndex*4+3] = orientation[3]; + + glUnmapBuffer( GL_ARRAY_BUFFER); + glFlush(); +} + + +void GLInstancingRenderer::writeTransforms() +{ + + glBindBuffer(GL_ARRAY_BUFFER, m_data->m_vbo); + glFlush(); + + char* orgBase = (char*)glMapBuffer( GL_ARRAY_BUFFER,GL_READ_WRITE); + if (orgBase) + { + + + int totalNumInstances= 0; + + for (int k=0;km_numGraphicsInstances; + } + + + + for (int k=0;km_numGraphicsInstances;i++) + { + + int srcIndex=i+gfxObj->m_instanceOffset; + + positions[srcIndex*4] = m_data->m_instance_positions_ptr[srcIndex*4]; + positions[srcIndex*4+1] = m_data->m_instance_positions_ptr[srcIndex*4+1]; + positions[srcIndex*4+2] = m_data->m_instance_positions_ptr[srcIndex*4+2]; + positions[srcIndex*4+3] = m_data->m_instance_positions_ptr[srcIndex*4+3]; + + orientations[srcIndex*4]=m_data->m_instance_quaternion_ptr[srcIndex*4]; + orientations[srcIndex*4+1]=m_data->m_instance_quaternion_ptr[srcIndex*4+1]; + orientations[srcIndex*4+2]=m_data->m_instance_quaternion_ptr[srcIndex*4+2]; + orientations[srcIndex*4+3]=m_data->m_instance_quaternion_ptr[srcIndex*4+3]; + + colors[srcIndex*4]=m_data->m_instance_colors_ptr[srcIndex*4]; + colors[srcIndex*4+1]=m_data->m_instance_colors_ptr[srcIndex*4+1]; + colors[srcIndex*4+2]=m_data->m_instance_colors_ptr[srcIndex*4+2]; + colors[srcIndex*4+3]=m_data->m_instance_colors_ptr[srcIndex*4+3]; + + scaling[srcIndex*3]=m_data->m_instance_scale_ptr[srcIndex*3]; + scaling[srcIndex*3+1]=m_data->m_instance_scale_ptr[srcIndex*3+1]; + scaling[srcIndex*3+2]=m_data->m_instance_scale_ptr[srcIndex*3+2]; + + } + } + } else + { + printf("ERROR glMapBuffer failed\n"); + } + glUnmapBuffer( GL_ARRAY_BUFFER); + //if this glFinish is removed, the animation is not always working/blocks + //@todo: figure out why + glFlush(); + glBindBuffer(GL_ARRAY_BUFFER, 0);//m_data->m_vbo); + + GLint err = glGetError(); + assert(err==GL_NO_ERROR); + +} + + +int GLInstancingRenderer::registerGraphicsInstance(int shapeIndex, const float* position, const float* quaternion, const float* color, const float* scaling) +{ + btAssert(shapeIndex == (m_graphicsInstances.size()-1)); + btAssert(m_graphicsInstances.size()m_numGraphicsInstances + gfxObj->m_instanceOffset; + + + + m_data->m_instance_positions_ptr[index*4]=position[0]; + m_data->m_instance_positions_ptr[index*4+1]=position[1]; + m_data->m_instance_positions_ptr[index*4+2]=position[2]; + m_data->m_instance_positions_ptr[index*4+3]=1; + + m_data->m_instance_quaternion_ptr[index*4]=quaternion[0]; + m_data->m_instance_quaternion_ptr[index*4+1]=quaternion[1]; + m_data->m_instance_quaternion_ptr[index*4+2]=quaternion[2]; + m_data->m_instance_quaternion_ptr[index*4+3]=quaternion[3]; + + m_data->m_instance_colors_ptr[index*4]=color[0]; + m_data->m_instance_colors_ptr[index*4+1]=color[1]; + m_data->m_instance_colors_ptr[index*4+2]=color[2]; + m_data->m_instance_colors_ptr[index*4+3]=color[3]; + + m_data->m_instance_scale_ptr[index*3] = scaling[0]; + m_data->m_instance_scale_ptr[index*3+1] = scaling[1]; + m_data->m_instance_scale_ptr[index*3+2] = scaling[2]; + + gfxObj->m_numGraphicsInstances++; + return gfxObj->m_numGraphicsInstances; +} + + +int GLInstancingRenderer::registerShape(const float* vertices, int numvertices, const int* indices, int numIndices,int primitiveType) +{ + btGraphicsInstance* gfxObj = new btGraphicsInstance; + gfxObj->m_primitiveType = primitiveType; + + if (m_graphicsInstances.size()) + { + btGraphicsInstance* prevObj = m_graphicsInstances[m_graphicsInstances.size()-1]; + gfxObj->m_instanceOffset = prevObj->m_instanceOffset + prevObj->m_numGraphicsInstances; + gfxObj->m_vertexArrayOffset = prevObj->m_vertexArrayOffset + prevObj->m_numVertices; + } else + { + gfxObj->m_instanceOffset = 0; + } + + m_graphicsInstances.push_back(gfxObj); + gfxObj->m_numIndices = numIndices; + gfxObj->m_numVertices = numvertices; + + + glBindBuffer(GL_ARRAY_BUFFER, m_data->m_vbo); + char* dest= (char*)glMapBuffer( GL_ARRAY_BUFFER,GL_WRITE_ONLY);//GL_WRITE_ONLY + int vertexStrideInBytes = 9*sizeof(float); + int sz = numvertices*vertexStrideInBytes; + memcpy(dest+vertexStrideInBytes*gfxObj->m_vertexArrayOffset,vertices,sz); + glUnmapBuffer( GL_ARRAY_BUFFER); + + glGenBuffers(1, &gfxObj->m_index_vbo); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, gfxObj->m_index_vbo); + int indexBufferSizeInBytes = gfxObj->m_numIndices*sizeof(int); + + glBufferData(GL_ELEMENT_ARRAY_BUFFER, indexBufferSizeInBytes, NULL, GL_STATIC_DRAW); + glBufferSubData(GL_ELEMENT_ARRAY_BUFFER,0,indexBufferSizeInBytes,indices); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + + glGenVertexArrays(1, &gfxObj->m_cube_vao); + glBindVertexArray(gfxObj->m_cube_vao); + glBindBuffer(GL_ARRAY_BUFFER, m_data->m_vbo); + glBindVertexArray(0); + glBindBuffer(GL_ARRAY_BUFFER,0); + glBindVertexArray(0); + + + return m_graphicsInstances.size()-1; +} + + + + +void GLInstancingRenderer::InitShaders() +{ + + int POSITION_BUFFER_SIZE = (m_maxNumObjectCapacity*sizeof(float)*4); + int ORIENTATION_BUFFER_SIZE = (m_maxNumObjectCapacity*sizeof(float)*4); + int COLOR_BUFFER_SIZE = (m_maxNumObjectCapacity*sizeof(float)*4); + int SCALE_BUFFER_SIZE = (m_maxNumObjectCapacity*sizeof(float)*3); + + + + instancingShaderPointSprite = gltLoadShaderPair(vertexShaderPointSprite,fragmentShaderPointSprite); + glUseProgram(instancingShaderPointSprite); + ModelViewMatrixPointSprite = glGetUniformLocation(instancingShaderPointSprite, "ModelViewMatrix"); + ProjectionMatrixPointSprite = glGetUniformLocation(instancingShaderPointSprite, "ProjectionMatrix"); + screenWidthPointSprite = glGetUniformLocation(instancingShaderPointSprite, "screenWidth"); + + + instancingShader = gltLoadShaderPair(vertexShader,fragmentShader); + glLinkProgram(instancingShader); + glUseProgram(instancingShader); + angle_loc = glGetUniformLocation(instancingShader, "angle"); + ModelViewMatrix = glGetUniformLocation(instancingShader, "ModelViewMatrix"); + ProjectionMatrix = glGetUniformLocation(instancingShader, "ProjectionMatrix"); + uniform_texture_diffuse = glGetUniformLocation(instancingShader, "Diffuse"); + glUseProgram(0); + + + + + //GLuint offset = 0; + + glGenBuffers(1, &m_data->m_vbo); + checkError("glGenBuffers"); + + glBindBuffer(GL_ARRAY_BUFFER, m_data->m_vbo); + + + int size = m_maxShapeCapacityInBytes + POSITION_BUFFER_SIZE+ORIENTATION_BUFFER_SIZE+COLOR_BUFFER_SIZE+SCALE_BUFFER_SIZE; + m_data->m_vboSize = size; + + glBufferData(GL_ARRAY_BUFFER, size, 0, GL_DYNAMIC_DRAW);//GL_STATIC_DRAW); + + glBindBuffer(GL_ARRAY_BUFFER,0); + glBindVertexArray(0); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + + +} + + + + +void GLInstancingRenderer::init() +{ + GLint err = glGetError(); + assert(err==GL_NO_ERROR); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + glEnable(GL_DEPTH_TEST); + glDepthFunc(GL_LESS); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + glClearColor(float(0.7),float(0.7),float(0.7),float(0)); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + + err = glGetError(); + assert(err==GL_NO_ERROR); + + { + BT_PROFILE("texture"); + if(m_textureenabled) + { + if(!m_textureinitialized) + { + glActiveTexture(GL_TEXTURE0); + + GLubyte* image=new GLubyte[256*256*3]; + for(int y=0;y<256;++y) + { +// const int t=y>>5; + GLubyte* pi=image+y*256*3; + for(int x=0;x<256;++x) + { + if (x<2||y<2||x>253||y>253) + { + pi[0]=0; + pi[1]=0; + pi[2]=0; + } else + { + pi[0]=255; + pi[1]=255; + pi[2]=255; + } + + /* + const int s=x>>5; + const GLubyte b=180; + GLubyte c=b+((s+t&1)&1)*(255-b); + pi[0]=c; + pi[1]=c; + pi[2]=c; + */ + + pi+=3; + } + } + + glGenTextures(1,(GLuint*)&m_data->m_defaultTexturehandle); + glBindTexture(GL_TEXTURE_2D,m_data->m_defaultTexturehandle); + err = glGetError(); + assert(err==GL_NO_ERROR); + #if 0 + + glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE); + err = glGetError(); + assert(err==GL_NO_ERROR); + + glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR); + err = glGetError(); + assert(err==GL_NO_ERROR); + + glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); + err = glGetError(); + assert(err==GL_NO_ERROR); + + glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT); + err = glGetError(); + assert(err==GL_NO_ERROR); + + glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT); + err = glGetError(); + assert(err==GL_NO_ERROR); + + + #endif + err = glGetError(); + assert(err==GL_NO_ERROR); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 256,256,0,GL_RGB,GL_UNSIGNED_BYTE,image); + glGenerateMipmap(GL_TEXTURE_2D); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + delete[] image; + m_textureinitialized=true; + } + + err = glGetError(); + assert(err==GL_NO_ERROR); + + glBindTexture(GL_TEXTURE_2D,m_data->m_defaultTexturehandle); + err = glGetError(); + assert(err==GL_NO_ERROR); + + + } else + { + glDisable(GL_TEXTURE_2D); + err = glGetError(); + assert(err==GL_NO_ERROR); + } + } + //glEnable(GL_COLOR_MATERIAL); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + // glEnable(GL_CULL_FACE); + // glCullFace(GL_BACK); +} + + +void btCreateFrustum( + float left, + float right, + float bottom, + float top, + float nearVal, + float farVal, + float frustum[16]) +{ + + frustum[0*4+0] = (float(2) * nearVal) / (right - left); + frustum[0*4+1] = float(0); + frustum[0*4+2] = float(0); + frustum[0*4+3] = float(0); + + frustum[1*4+0] = float(0); + frustum[1*4+1] = (float(2) * nearVal) / (top - bottom); + frustum[1*4+2] = float(0); + frustum[1*4+3] = float(0); + + frustum[2*4+0] = (right + left) / (right - left); + frustum[2*4+1] = (top + bottom) / (top - bottom); + frustum[2*4+2] = -(farVal + nearVal) / (farVal - nearVal); + frustum[2*4+3] = float(-1); + + frustum[3*4+0] = float(0); + frustum[3*4+1] = float(0); + frustum[3*4+2] = -(float(2) * farVal * nearVal) / (farVal - nearVal); + frustum[3*4+3] = float(0); + +} + + + +void btCreateLookAt(const btVector3& eye, const btVector3& center,const btVector3& up, GLfloat result[16]) +{ + btVector3 f = (center - eye).normalized(); + btVector3 u = up.normalized(); + btVector3 s = (f.cross(u)).normalized(); + u = s.cross(f); + + result[0*4+0] = s.x(); + result[1*4+0] = s.y(); + result[2*4+0] = s.z(); + result[0*4+1] = u.x(); + result[1*4+1] = u.y(); + result[2*4+1] = u.z(); + result[0*4+2] =-f.x(); + result[1*4+2] =-f.y(); + result[2*4+2] =-f.z(); + + result[3*4+0] = -s.dot(eye); + result[3*4+1] = -u.dot(eye); + result[3*4+2] = f.dot(eye); + result[3*4+3] = 1.f; +} + + +void GLInstancingRenderer::resize(int width, int height) +{ + m_glutScreenWidth = width; + m_glutScreenHeight = height; +} + +void GLInstancingRenderer::updateCamera() +{ + + GLint err = glGetError(); + assert(err==GL_NO_ERROR); + + + int m_forwardAxis(2); + + float m_frustumZNear=1; + float m_frustumZFar=10000.f; + + +// m_azi=m_azi+0.01; + btScalar rele = m_data->m_ele * btScalar(0.01745329251994329547);// rads per deg + btScalar razi = m_data->m_azi * btScalar(0.01745329251994329547);// rads per deg + + + btQuaternion rot(m_data->m_cameraUp,razi); + + + btVector3 eyePos(0,0,0); + eyePos[m_forwardAxis] = -m_data->m_cameraDistance; + + btVector3 forward(eyePos[0],eyePos[1],eyePos[2]); + if (forward.length2() < SIMD_EPSILON) + { + forward.setValue(1.f,0.f,0.f); + } + btVector3 right = m_data->m_cameraUp.cross(forward); + btQuaternion roll(right,-rele); + + eyePos = btMatrix3x3(rot) * btMatrix3x3(roll) * eyePos; + + m_data->m_cameraPosition[0] = eyePos.getX(); + m_data->m_cameraPosition[1] = eyePos.getY(); + m_data->m_cameraPosition[2] = eyePos.getZ(); + m_data->m_cameraPosition += m_data->m_cameraTargetPosition; + + if (m_glutScreenWidth == 0 && m_glutScreenHeight == 0) + return; + + btScalar aspect; + btVector3 extents; + + aspect = m_glutScreenWidth / (btScalar)m_glutScreenHeight; + extents.setValue(aspect * 1.0f, 1.0f,0); + + + if (m_ortho) + { + // reset matrix + + + extents *= m_data->m_cameraDistance; + //btVector3 lower = m_data->m_cameraTargetPosition - extents; + //btVector3 upper = m_data->m_cameraTargetPosition + extents; + //gluOrtho2D(lower.x, upper.x, lower.y, upper.y); + //glTranslatef(100,210,0); + } else + { +// glFrustum (-aspect, aspect, -1.0, 1.0, 1.0, 10000.0); + } + + + if (m_glutScreenWidth > m_glutScreenHeight) + { + btCreateFrustum(-aspect * m_frustumZNear, aspect * m_frustumZNear, -m_frustumZNear, m_frustumZNear, m_frustumZNear, m_frustumZFar,projectionMatrix); + } else + { + btCreateFrustum(-aspect * m_frustumZNear, aspect * m_frustumZNear, -m_frustumZNear, m_frustumZNear, m_frustumZNear, m_frustumZFar,projectionMatrix); + } + + btCreateLookAt(m_data->m_cameraPosition,m_data->m_cameraTargetPosition,m_data->m_cameraUp,modelviewMatrix); + + +} + + +void GLInstancingRenderer::getCameraPosition(float cameraPos[4]) +{ + cameraPos[0] = m_data->m_cameraPosition.x(); + cameraPos[1] = m_data->m_cameraPosition.y(); + cameraPos[2] = m_data->m_cameraPosition.z(); + cameraPos[3] = 1.f; +} + +void GLInstancingRenderer::setCameraDistance(float dist) +{ + m_data->m_cameraDistance = dist; +} + +void GLInstancingRenderer::setCameraTargetPosition(float cameraPos[4]) +{ + m_data->m_cameraTargetPosition = btVector3(cameraPos[0],cameraPos[1],cameraPos[2]); +} + +void GLInstancingRenderer::getCameraTargetPosition(float cameraPos[4]) const +{ + cameraPos[0] = m_data->m_cameraTargetPosition.x(); + cameraPos[1] = m_data->m_cameraTargetPosition.y(); + cameraPos[2] = m_data->m_cameraTargetPosition.z(); +} + + +float GLInstancingRenderer::getCameraDistance() const +{ + return m_data->m_cameraDistance; +} + + +void GLInstancingRenderer::getMouseDirection(float* dir, int x, int y) +{ + float top = 1.f; + float bottom = -1.f; + float nearPlane = 1.f; + float tanFov = (top-bottom)*0.5f / nearPlane; + float fov = btScalar(2.0) * btAtan(tanFov); + + btVector3 rayFrom = m_data->m_cameraPosition; + btVector3 rayForward = (m_data->m_cameraTargetPosition-m_data->m_cameraPosition); + rayForward.normalize(); + float farPlane = 10000.f; + rayForward*= farPlane; + + btVector3 rightOffset; + btVector3 vertical = m_data->m_cameraUp; + + btVector3 hor; + hor = rayForward.cross(vertical); + hor.normalize(); + vertical = hor.cross(rayForward); + vertical.normalize(); + + float tanfov = tanf(0.5f*fov); + + + hor *= 2.f * farPlane * tanfov; + vertical *= 2.f * farPlane * tanfov; + + btScalar aspect; + + aspect = m_glutScreenWidth / (btScalar)m_glutScreenHeight; + + hor*=aspect; + + + btVector3 rayToCenter = rayFrom + rayForward; + btVector3 dHor = hor * 1.f/float(m_glutScreenWidth); + btVector3 dVert = vertical * 1.f/float(m_glutScreenHeight); + + + btVector3 rayTo = rayToCenter - 0.5f * hor + 0.5f * vertical; + rayTo += btScalar(x) * dHor; + rayTo -= btScalar(y) * dVert; + + dir[0] = rayTo[0]; + dir[1] = rayTo[1]; + dir[2] = rayTo[2]; + +} + + +void GLInstancingRenderer::RenderScene(void) +{ + BT_PROFILE("GLInstancingRenderer::RenderScene"); + + { + BT_PROFILE("init"); + init(); + } + + GLint err = glGetError(); + assert(err==GL_NO_ERROR); + + { + BT_PROFILE("updateCamera"); + updateCamera(); + } + err = glGetError(); + assert(err==GL_NO_ERROR); + + + //render coordinate system +#if 0 + glBegin(GL_LINES); + err = glGetError(); + assert(err==GL_NO_ERROR); + + glColor3f(1,0,0); + glVertex3f(0,0,0); + glVertex3f(1,0,0); + glColor3f(0,1,0); + glVertex3f(0,0,0); + glVertex3f(0,1,0); + glColor3f(0,0,1); + glVertex3f(0,0,0); + glVertex3f(0,0,1); + glEnd(); +#endif + + + //do a finish, to make sure timings are clean + // glFinish(); + + + + // glBindBuffer(GL_ARRAY_BUFFER, 0); + { + BT_PROFILE("glFlush2"); + + glBindBuffer(GL_ARRAY_BUFFER, m_data->m_vbo); + glFlush(); + } + err = glGetError(); + assert(err==GL_NO_ERROR); + + //updatePos(); + +// simulationLoop(); + + //useCPU = true; + + int totalNumInstances = 0; + + for (int i=0;im_numGraphicsInstances; + } + + int curOffset = 0; + + for (int i=0;im_numGraphicsInstances) + { + // int myOffset = gfxObj->m_instanceOffset*4*sizeof(float); + + int POSITION_BUFFER_SIZE = (totalNumInstances*sizeof(float)*4); + int ORIENTATION_BUFFER_SIZE = (totalNumInstances*sizeof(float)*4); + int COLOR_BUFFER_SIZE = (totalNumInstances*sizeof(float)*4); +// int SCALE_BUFFER_SIZE = (totalNumInstances*sizeof(float)*3); + + glBindVertexArray(gfxObj->m_cube_vao); + + + int vertexStride = 9*sizeof(float); + int vertexBase = gfxObj->m_vertexArrayOffset*vertexStride; + + glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 9*sizeof(float), (GLvoid*)vertexBase); + glVertexAttribPointer(1, 4, GL_FLOAT, GL_FALSE, 0, (GLvoid *)(curOffset*4*sizeof(float)+m_maxShapeCapacityInBytes)); + glVertexAttribPointer(2, 4, GL_FLOAT, GL_FALSE, 0, (GLvoid *)(curOffset*4*sizeof(float)+m_maxShapeCapacityInBytes+POSITION_BUFFER_SIZE)); + int uvoffset = 7*sizeof(float)+vertexBase; + int normaloffset = 4*sizeof(float)+vertexBase; + + glVertexAttribPointer(3, 2, GL_FLOAT, GL_FALSE, 9*sizeof(float), (GLvoid *)uvoffset); + glVertexAttribPointer(4, 3, GL_FLOAT, GL_FALSE, 9*sizeof(float), (GLvoid *)normaloffset); + glVertexAttribPointer(5, 4, GL_FLOAT, GL_FALSE, 0, (GLvoid *)(curOffset*4*sizeof(float)+m_maxShapeCapacityInBytes+POSITION_BUFFER_SIZE+ORIENTATION_BUFFER_SIZE)); + glVertexAttribPointer(6, 3, GL_FLOAT, GL_FALSE, 0, (GLvoid *)(curOffset*3*sizeof(float)+m_maxShapeCapacityInBytes+POSITION_BUFFER_SIZE+ORIENTATION_BUFFER_SIZE+COLOR_BUFFER_SIZE)); + + glEnableVertexAttribArray(0); + glEnableVertexAttribArray(1); + glEnableVertexAttribArray(2); + glEnableVertexAttribArray(3); + glEnableVertexAttribArray(4); + glEnableVertexAttribArray(5); + glEnableVertexAttribArray(6); + glVertexAttribDivisorARB(0, 0); + glVertexAttribDivisorARB(1, 1); + glVertexAttribDivisorARB(2, 1); + glVertexAttribDivisorARB(3, 0); + glVertexAttribDivisorARB(4, 0); + glVertexAttribDivisorARB(5, 1); + glVertexAttribDivisorARB(6, 1); + + + + + { + BT_PROFILE("glFlush"); + glFlush(); + } + + int indexCount = gfxObj->m_numIndices; + int indexOffset = 0; + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, gfxObj->m_index_vbo); + { + BT_PROFILE("glDrawElementsInstanced"); + + if (gfxObj->m_primitiveType==BT_GL_POINTS) + { + glUseProgram(instancingShaderPointSprite); + glUniformMatrix4fv(ProjectionMatrixPointSprite, 1, false, &projectionMatrix[0]); + glUniformMatrix4fv(ModelViewMatrixPointSprite, 1, false, &modelviewMatrix[0]); + glUniform1f(screenWidthPointSprite,m_glutScreenWidth); + + //glUniform1i(uniform_texture_diffusePointSprite, 0); + err = glGetError(); + assert(err==GL_NO_ERROR); + glPointSize(20); + +#ifndef __APPLE__ + glEnable(GL_POINT_SPRITE_ARB); + glTexEnvi(GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE); +#endif + + glEnable(GL_VERTEX_PROGRAM_POINT_SIZE); + glDrawElementsInstanced(GL_POINTS, indexCount, GL_UNSIGNED_INT, (void*)indexOffset, gfxObj->m_numGraphicsInstances); + } else + { + glUseProgram(instancingShader); + glUniform1f(angle_loc, 0); + glUniformMatrix4fv(ProjectionMatrix, 1, false, &projectionMatrix[0]); + glUniformMatrix4fv(ModelViewMatrix, 1, false, &modelviewMatrix[0]); + glUniform1i(uniform_texture_diffuse, 0); + glDrawElementsInstanced(GL_TRIANGLES, indexCount, GL_UNSIGNED_INT, (void*)indexOffset, gfxObj->m_numGraphicsInstances); + } + + + //glDrawElementsInstanced(GL_LINE_LOOP, indexCount, GL_UNSIGNED_INT, (void*)indexOffset, gfxObj->m_numGraphicsInstances); + } + } + curOffset+= gfxObj->m_numGraphicsInstances; + } + err = glGetError(); + assert(err==GL_NO_ERROR); + { + BT_PROFILE("glUseProgram(0);"); + glUseProgram(0); + glBindBuffer(GL_ARRAY_BUFFER,0); + glBindVertexArray(0); + } + + err = glGetError(); + assert(err==GL_NO_ERROR); + +} + + +void GLInstancingRenderer::CleanupShaders() +{ +} diff --git a/btgui/OpenGLWindow/GLInstancingRenderer.h b/btgui/OpenGLWindow/GLInstancingRenderer.h new file mode 100644 index 000000000..8f8d0791c --- /dev/null +++ b/btgui/OpenGLWindow/GLInstancingRenderer.h @@ -0,0 +1,92 @@ +/* +Copyright (c) 2012 Advanced Micro Devices, Inc. + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ +//Originally written by Erwin Coumans + +#ifndef GL_INSTANCING_RENDERER_H +#define GL_INSTANCING_RENDERER_H + +#include "BulletCommon/btAlignedObjectArray.h" + +void btDefaultMouseButtonCallback( int button, int state, float x, float y); +void btDefaultMouseMoveCallback( float x, float y); +void btDefaultKeyboardCallback(int key, int state); +void btDefaultWheelCallback( float deltax, float deltay); + +enum +{ + BT_GL_TRIANGLES = 1, + BT_GL_POINTS +}; + +class GLInstancingRenderer +{ + + btAlignedObjectArray m_graphicsInstances; + + int m_maxNumObjectCapacity; + int m_maxShapeCapacityInBytes; + struct InternalDataRenderer* m_data; + + bool m_textureenabled; + bool m_textureinitialized; + + + +public: + GLInstancingRenderer(int m_maxObjectCapacity, int maxShapeCapacityInBytes = 512*1024); + virtual ~GLInstancingRenderer(); + + void init(); + + void InitShaders(); + void RenderScene(void); + void CleanupShaders(); + + ///vertices must be in the format x,y,z, nx,ny,nz, u,v + int registerShape(const float* vertices, int numvertices, const int* indices, int numIndices, int primitiveType=BT_GL_TRIANGLES); + + ///position x,y,z, quaternion x,y,z,w, color r,g,b,a, scaling x,y,z + int registerGraphicsInstance(int shapeIndex, const float* position, const float* quaternion, const float* color, const float* scaling); + + void writeTransforms(); + + void writeSingleInstanceTransformToCPU(float* position, float* orientation, int srcIndex); + + void writeSingleInstanceTransformToGPU(float* position, float* orientation, int srcIndex); + + void writeSingleInstanceColorToCPU(float* color, int srcIndex); + + void getMouseDirection(float* dir, int mouseX, int mouseY); + + struct GLInstanceRendererInternalData* getInternalData(); + + void updateCamera(); + + void getCameraPosition(float cameraPos[4]); + void setCameraDistance(float dist); + float getCameraDistance() const; + + //set the camera 'target' + void setCameraTargetPosition(float cameraPos[4]); + void getCameraTargetPosition(float cameraPos[4]) const; + + void resize(int width, int height); + + int getMaxShapeCapacity() const + { + return m_maxShapeCapacityInBytes; + } +}; + +#endif //GL_INSTANCING_RENDERER_H diff --git a/btgui/OpenGLWindow/GLPrimInternalData.h b/btgui/OpenGLWindow/GLPrimInternalData.h new file mode 100644 index 000000000..30b695396 --- /dev/null +++ b/btgui/OpenGLWindow/GLPrimInternalData.h @@ -0,0 +1,19 @@ +#ifndef PRIM_INTERNAL_DATA +#define PRIM_INTERNAL_DATA + +#include "OpenGLInclude.h" + +struct PrimInternalData +{ + GLuint m_shaderProg; + GLint m_positionUniform; + GLint m_colourAttribute; + GLint m_positionAttribute; + GLint m_textureAttribute; + GLuint m_vertexBuffer; + GLuint m_vertexArrayObject; + GLuint m_indexBuffer; + GLuint m_texturehandle; +}; + +#endif //PRIM_INTERNAL_DATA diff --git a/btgui/OpenGLWindow/GLPrimitiveRenderer.cpp b/btgui/OpenGLWindow/GLPrimitiveRenderer.cpp new file mode 100644 index 000000000..dfbe9c090 --- /dev/null +++ b/btgui/OpenGLWindow/GLPrimitiveRenderer.cpp @@ -0,0 +1,342 @@ +#include "GLPrimitiveRenderer.h" +#include "GLPrimInternalData.h" + +#include "LoadShader.h" + +#include + + +static const char* vertexShader= \ +"#version 150 \n" +"\n" +"uniform vec2 p;\n" +"\n" +"in vec4 position;\n" +"in vec4 colour;\n" +"out vec4 colourV;\n" +"\n" +"in vec2 texuv;\n" +"out vec2 texuvV;\n" +"\n" +"\n" +"void main (void)\n" +"{\n" +" colourV = colour;\n" +" gl_Position = vec4(p.x+position.x, p.y+position.y,0.f,1.f);\n" +" texuvV=texuv;\n" +"}\n"; + +static const char* fragmentShader= \ +"#version 150\n" +"\n" +"in vec4 colourV;\n" +"out vec4 fragColour;\n" +"in vec2 texuvV;\n" +"\n" +"uniform sampler2D Diffuse;\n" +"\n" +"void main(void)\n" +"{\n" +" vec4 texcolorred = texture(Diffuse,texuvV);\n" +"// vec4 texcolor = vec4(texcolorred.x,texcolorred.x,texcolorred.x,1);\n" +" vec4 texcolor = vec4(1,1,1,texcolorred.x);\n" +"\n" +" fragColour = colourV*texcolor;\n" +"}\n"; + + +static unsigned int s_indexData[6] = {0,1,2,0,2,3}; +struct vec2 +{ + vec2(float x, float y) + { + p[0] = x; + p[1] = y; + } + float p[2]; +}; + +struct vec4 +{ + vec4(float x,float y, float z, float w) + { + p[0] = x; + p[1] = y; + p[2] = z; + p[3] = w; + + } + + float p[4]; +}; + +typedef struct +{ + vec4 position; + vec4 colour; + vec2 uv; +} Vertex; + + + + + +GLPrimitiveRenderer::GLPrimitiveRenderer(int screenWidth, int screenHeight) +:m_screenWidth(screenWidth), +m_screenHeight(screenHeight) +{ + + m_data = new PrimInternalData; + + m_data->m_shaderProg = gltLoadShaderPair(vertexShader,fragmentShader); + + m_data->m_positionUniform = glGetUniformLocation(m_data->m_shaderProg, "p"); + if (m_data->m_positionUniform < 0) { + assert(0); + } + m_data->m_colourAttribute = glGetAttribLocation(m_data->m_shaderProg, "colour"); + if (m_data->m_colourAttribute < 0) { + assert(0); + } + m_data->m_positionAttribute = glGetAttribLocation(m_data->m_shaderProg, "position"); + if (m_data->m_positionAttribute < 0) { + assert(0); + } + m_data->m_textureAttribute = glGetAttribLocation(m_data->m_shaderProg,"texuv"); + if (m_data->m_textureAttribute < 0) { + assert(0); + } + + loadBufferData(); + +} + +void GLPrimitiveRenderer::loadBufferData() +{ + + Vertex vertexData[4] = { + { vec4(-1, -1, 0.0, 1.0 ), vec4( 1.0, 0.0, 0.0, 1.0 ) ,vec2(0,0)}, + { vec4(-1, 1, 0.0, 1.0 ), vec4( 0.0, 1.0, 0.0, 1.0 ) ,vec2(0,1)}, + { vec4( 1, 1, 0.0, 1.0 ), vec4( 0.0, 0.0, 1.0, 1.0 ) ,vec2(1,1)}, + { vec4( 1, -1, 0.0, 1.0 ), vec4( 1.0, 1.0, 1.0, 1.0 ) ,vec2(1,0)} + }; + + + glGenVertexArrays(1, &m_data->m_vertexArrayObject); + glBindVertexArray(m_data->m_vertexArrayObject); + + glGenBuffers(1, &m_data->m_vertexBuffer); + glBindBuffer(GL_ARRAY_BUFFER, m_data->m_vertexBuffer); + glBufferData(GL_ARRAY_BUFFER, 4 * sizeof(Vertex), vertexData, GL_STATIC_DRAW); + GLuint err = glGetError(); + assert(err==GL_NO_ERROR); + + + + glGenBuffers(1, &m_data->m_indexBuffer); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_data->m_indexBuffer); + glBufferData(GL_ELEMENT_ARRAY_BUFFER,6*sizeof(int), s_indexData,GL_STATIC_DRAW); + + glEnableVertexAttribArray(m_data->m_positionAttribute); + glEnableVertexAttribArray(m_data->m_colourAttribute); + err = glGetError(); + assert(err==GL_NO_ERROR); + + glEnableVertexAttribArray(m_data->m_textureAttribute); + + glVertexAttribPointer(m_data->m_positionAttribute, 4, GL_FLOAT, GL_FALSE, sizeof(Vertex), (const GLvoid *)0); + glVertexAttribPointer(m_data->m_colourAttribute , 4, GL_FLOAT, GL_FALSE, sizeof(Vertex), (const GLvoid *)sizeof(vec4)); + glVertexAttribPointer(m_data->m_textureAttribute , 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), (const GLvoid *)(sizeof(vec4)+sizeof(vec4))); + err = glGetError(); + assert(err==GL_NO_ERROR); + + + + + + + + glActiveTexture(GL_TEXTURE0); + + GLubyte* image=new GLubyte[256*256*3]; + for(int y=0;y<256;++y) + { + // const int t=y>>5; + GLubyte* pi=image+y*256*3; + for(int x=0;x<256;++x) + { + if (x253||y>253) + { + pi[0]=255; + pi[1]=0; + pi[2]=0; + } else + + { + pi[0]=255; + pi[1]=255; + pi[2]=255; + } + + pi+=3; + } + } + + glGenTextures(1,(GLuint*)&m_data->m_texturehandle); + glBindTexture(GL_TEXTURE_2D,m_data->m_texturehandle); + + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 256,256,0,GL_RGB,GL_UNSIGNED_BYTE,image); + glGenerateMipmap(GL_TEXTURE_2D); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + delete[] image; + + +} + + + +GLPrimitiveRenderer::~GLPrimitiveRenderer() +{ + glBindTexture(GL_TEXTURE_2D,0); + glUseProgram(0); + glBindTexture(GL_TEXTURE_2D,0); + glDeleteProgram(m_data->m_shaderProg); +} + +void GLPrimitiveRenderer::drawLine() +{ + +} + +void GLPrimitiveRenderer::drawRect(float x0, float y0, float x1, float y1, float color[4]) +{ + GLint err; + + err = glGetError(); + assert(err==GL_NO_ERROR); + glActiveTexture(GL_TEXTURE0); + err = glGetError(); + assert(err==GL_NO_ERROR); + + glBindTexture(GL_TEXTURE_2D,m_data->m_texturehandle); + err = glGetError(); + assert(err==GL_NO_ERROR); + + drawTexturedRect(x0,y0,x1,y1,color,0,0,1,1); + err = glGetError(); + assert(err==GL_NO_ERROR); + +} + +void GLPrimitiveRenderer::drawTexturedRect(float x0, float y0, float x1, float y1, float color[4], float u0,float v0, float u1, float v1)//Line()//float from[4], float to[4], float color[4]) +{ + GLint err; + + err = glGetError(); + assert(err==GL_NO_ERROR); + + + glUseProgram(m_data->m_shaderProg); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + glBindBuffer(GL_ARRAY_BUFFER, m_data->m_vertexBuffer); + glBindVertexArray(m_data->m_vertexArrayObject); + + bool useFiltering = false; + if (useFiltering) + { + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + } else + { + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + } + + Vertex vertexData[4] = { + { vec4(-1.+2.*x0/float(m_screenWidth), 1.-2.*y0/float(m_screenHeight), 0, 0 ), vec4( color[0], color[1], color[2], color[3] ) ,vec2(u0,v0)}, + { vec4(-1.+2.*x0/float(m_screenWidth), 1.-2.*y1/float(m_screenHeight), 0, 1 ), vec4( color[0], color[1], color[2], color[3] ) ,vec2(u0,v1)}, + { vec4( -1.+2.*x1/float(m_screenWidth), 1.-2.*y1/float(m_screenHeight), 1, 1 ), vec4(color[0], color[1], color[2], color[3]) ,vec2(u1,v1)}, + { vec4( -1.+2.*x1/float(m_screenWidth), 1.-2.*y0/float(m_screenHeight), 1, 0 ), vec4( color[0], color[1], color[2], color[3] ) ,vec2(u1,v0)} + }; + + glBufferData(GL_ARRAY_BUFFER, 4 * sizeof(Vertex), vertexData, GL_STATIC_DRAW); + + + + + + + err = glGetError(); + assert(err==GL_NO_ERROR); + + vec2 p( 0.f,0.f);//?b?0.5f * sinf(timeValue), 0.5f * cosf(timeValue) ); + glUniform2fv(m_data->m_positionUniform, 1, (const GLfloat *)&p); + + err = glGetError(); + assert(err==GL_NO_ERROR); + err = glGetError(); + assert(err==GL_NO_ERROR); + + glEnableVertexAttribArray(m_data->m_positionAttribute); + err = glGetError(); + assert(err==GL_NO_ERROR); + + glEnableVertexAttribArray(m_data->m_colourAttribute); + err = glGetError(); + assert(err==GL_NO_ERROR); + + glEnableVertexAttribArray(m_data->m_textureAttribute); + + glVertexAttribPointer(m_data->m_positionAttribute, 4, GL_FLOAT, GL_FALSE, sizeof(Vertex), (const GLvoid *)0); + glVertexAttribPointer(m_data->m_colourAttribute , 4, GL_FLOAT, GL_FALSE, sizeof(Vertex), (const GLvoid *)sizeof(vec4)); + glVertexAttribPointer(m_data->m_textureAttribute , 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), (const GLvoid *)(sizeof(vec4)+sizeof(vec4))); + err = glGetError(); + assert(err==GL_NO_ERROR); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_data->m_indexBuffer); + + //glDrawArrays(GL_TRIANGLE_FAN, 0, 4); + int indexCount = 6; + err = glGetError(); + assert(err==GL_NO_ERROR); + + glDrawElements(GL_TRIANGLES, indexCount, GL_UNSIGNED_INT, 0); + err = glGetError(); + assert(err==GL_NO_ERROR); + + + glBindVertexArray(0); + err = glGetError(); + assert(err==GL_NO_ERROR); + + glBindBuffer(GL_ARRAY_BUFFER, 0); + err = glGetError(); + assert(err==GL_NO_ERROR); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + err = glGetError(); + assert(err==GL_NO_ERROR); + + //glDisableVertexAttribArray(m_data->m_textureAttribute); + err = glGetError(); + assert(err==GL_NO_ERROR); + + glUseProgram(0); + + err = glGetError(); + assert(err==GL_NO_ERROR); + +} + +void GLPrimitiveRenderer::setScreenSize(int width, int height) +{ + m_screenWidth = width; + m_screenHeight = height; + +} \ No newline at end of file diff --git a/btgui/OpenGLWindow/GLPrimitiveRenderer.h b/btgui/OpenGLWindow/GLPrimitiveRenderer.h new file mode 100644 index 000000000..b88c33b1c --- /dev/null +++ b/btgui/OpenGLWindow/GLPrimitiveRenderer.h @@ -0,0 +1,32 @@ +#ifndef _GL_PRIMITIVE_RENDERER_H +#define _GL_PRIMITIVE_RENDERER_H + +#include "OpenGLInclude.h" + +class GLPrimitiveRenderer +{ + int m_screenWidth; + int m_screenHeight; + + struct PrimInternalData* m_data; + + void loadBufferData(); + +public: + + GLPrimitiveRenderer(int screenWidth, int screenHeight); + virtual ~GLPrimitiveRenderer(); + + void drawRect(float x0, float y0, float x1, float y1, float color[4]); + void drawTexturedRect(float x0, float y0, float x1, float y1, float color[4], float u0,float v0, float u1, float v1); + void drawLine();//float from[4], float to[4], float color[4]); + void setScreenSize(int width, int height); + + PrimInternalData* getData() + { + return m_data; + } +}; + +#endif//_GL_PRIMITIVE_RENDERER_H + diff --git a/btgui/OpenGLWindow/GwenOpenGL3CoreRenderer.h b/btgui/OpenGLWindow/GwenOpenGL3CoreRenderer.h new file mode 100644 index 000000000..8179730bc --- /dev/null +++ b/btgui/OpenGLWindow/GwenOpenGL3CoreRenderer.h @@ -0,0 +1,319 @@ + +#ifndef __GWEN_OPENGL3_CORE_RENDERER_H +#define __GWEN_OPENGL3_CORE_RENDERER_H + +#include "Gwen/Gwen.h" +#include "Gwen/BaseRender.h" +#include "GLPrimitiveRenderer.h" +struct sth_stash; +#include "../OpenGLTrueTypeFont/fontstash.h" +#include "TwFonts.h" +static float extraSpacing = 0.;//6f; +#include + +static GLuint BindFont(const CTexFont *_Font) +{ + GLuint TexID = 0; + glGenTextures(1, &TexID); + glBindTexture(GL_TEXTURE_2D, TexID); + glPixelStorei(GL_UNPACK_SWAP_BYTES, GL_FALSE); + glPixelStorei(GL_UNPACK_LSB_FIRST, GL_FALSE); + glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); + glPixelStorei(GL_UNPACK_SKIP_ROWS, 0); + glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RED, _Font->m_TexWidth, _Font->m_TexHeight, 0, GL_RED, GL_UNSIGNED_BYTE, _Font->m_TexBytes); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,GL_NEAREST); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_NEAREST); + glBindTexture(GL_TEXTURE_2D, 0); + + return TexID; +} + + + +class GwenOpenGL3CoreRenderer : public Gwen::Renderer::Base +{ + GLPrimitiveRenderer* m_primitiveRenderer; + float m_currentColor[4]; + float m_yOffset; + sth_stash* m_font; + float m_screenWidth; + float m_screenHeight; + float m_fontScaling; + float m_retinaScale; + bool m_useTrueTypeFont; + const CTexFont* m_currentFont; + + GLuint m_fontTextureId; +public: + GwenOpenGL3CoreRenderer (GLPrimitiveRenderer* primRender, sth_stash* font,float screenWidth, float screenHeight, float retinaScale) + :m_primitiveRenderer(primRender), + m_font(font), + m_screenWidth(screenWidth), + m_screenHeight(screenHeight), + m_retinaScale(retinaScale), + m_useTrueTypeFont(false) + { + ///only enable true type fonts on Macbook Retina, it looks gorgeous + if (retinaScale==2.0f) + { + m_useTrueTypeFont = true; + } + m_currentColor[0] = 1; + m_currentColor[1] = 1; + m_currentColor[2] = 1; + m_currentColor[3] = 1; + + m_fontScaling = 16.f*m_retinaScale; + + TwGenerateDefaultFonts(); + + m_currentFont = g_DefaultNormalFont; + //m_currentFont = g_DefaultNormalFontAA; + + //m_currentFont = g_DefaultLargeFont; + m_fontTextureId = BindFont(m_currentFont); + + } + + virtual ~GwenOpenGL3CoreRenderer() + { + TwDeleteDefaultFonts(); + } + void resize(int width, int height) + { + m_screenWidth = width; + m_screenHeight = height; + } + + virtual void Begin() + { + m_yOffset=0; + glEnable(GL_BLEND); + GLint err = glGetError(); + assert(err==GL_NO_ERROR); + + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + glDisable(GL_DEPTH_TEST); + err = glGetError(); + assert(err==GL_NO_ERROR); + + //glColor4ub(255,0,0,255); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + + err = glGetError(); + assert(err==GL_NO_ERROR); + glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); + + // saveOpenGLState(width,height);//m_glutScreenWidth,m_glutScreenHeight); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + + err = glGetError(); + assert(err==GL_NO_ERROR); + + glDisable(GL_CULL_FACE); + + glDisable(GL_DEPTH_TEST); + err = glGetError(); + assert(err==GL_NO_ERROR); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + glEnable(GL_BLEND); + + + err = glGetError(); + assert(err==GL_NO_ERROR); + + } + virtual void End() + { + } + + virtual void StartClip() + { + if (m_useTrueTypeFont) + sth_flush_draw(m_font); + Gwen::Rect rect = ClipRegion(); + + // OpenGL's coords are from the bottom left + // so we need to translate them here. + { + GLint view[4]; + glGetIntegerv( GL_VIEWPORT, &view[0] ); + rect.y = view[3]/m_retinaScale - (rect.y + rect.h); + } + + glScissor( m_retinaScale * rect.x * Scale(), m_retinaScale * rect.y * Scale(), m_retinaScale * rect.w * Scale(), m_retinaScale * rect.h * Scale() ); + glEnable( GL_SCISSOR_TEST ); + //glDisable( GL_SCISSOR_TEST ); + + }; + + virtual void EndClip() + { + if (m_useTrueTypeFont) + sth_flush_draw(m_font); + glDisable( GL_SCISSOR_TEST ); + }; + + virtual void SetDrawColor( Gwen::Color color ) + { + m_currentColor[0] = color.r/256.f; + m_currentColor[1] = color.g/256.f; + m_currentColor[2] = color.b/256.f; + m_currentColor[3] = color.a/256.f; + + } + virtual void DrawFilledRect( Gwen::Rect rect ) + { + Translate( rect ); + + m_primitiveRenderer->drawRect(rect.x, rect.y+m_yOffset, rect.x+rect.w, rect.y+rect.h+m_yOffset, m_currentColor); +// m_yOffset+=rect.h+10; + + } + + void RenderText( Gwen::Font* pFont, Gwen::Point rasterPos, const Gwen::UnicodeString& text ) + { + + Gwen::String str = Gwen::Utility::UnicodeToString(text); + const char* unicodeText = (const char*)str.c_str(); + + Gwen::Rect r; + r.x = rasterPos.x; + r.y = rasterPos.y; + r.w = 0; + r.h = 0; + + + // + //printf("str = %s\n",unicodeText); + int xpos=0; + int ypos=0; + float dx; + + int measureOnly=0; + + if (m_useTrueTypeFont) + { + + float yoffset = 0.f; + if (m_retinaScale==2.0f) + { + yoffset = -12; + } + Translate(r); + sth_draw_text(m_font, + 1,m_fontScaling, + r.x,r.y+yoffset, + unicodeText,&dx, m_screenWidth,m_screenHeight,measureOnly,m_retinaScale); + + } else + { + //float width = 0.f; + int pos=0; + float color[]={0.2f,0.2,0.2f,1.f}; + + glBindTexture(GL_TEXTURE_2D,m_fontTextureId); + float width = r.x; + while (unicodeText[pos]) + { + int c = unicodeText[pos]; + r.h = m_currentFont->m_CharHeight; + r.w = m_currentFont->m_CharWidth[c]+extraSpacing; + Gwen::Rect rect = r; + Translate( rect ); + + m_primitiveRenderer->drawTexturedRect(rect.x, rect.y+m_yOffset, rect.x+rect.w, rect.y+rect.h+m_yOffset, m_currentColor,m_currentFont->m_CharU0[c],m_currentFont->m_CharV0[c],m_currentFont->m_CharU1[c],m_currentFont->m_CharV1[c]); + + //DrawTexturedRect(0,r,m_currentFont->m_CharU0[c],m_currentFont->m_CharV0[c],m_currentFont->m_CharU1[c],m_currentFont->m_CharV1[c]); + // DrawFilledRect(r); + + + + width += r.w; + r.x = width; + pos++; + + } + glBindTexture(GL_TEXTURE_2D,0); + } + + } + Gwen::Point MeasureText( Gwen::Font* pFont, const Gwen::UnicodeString& text ) + { + Gwen::String str = Gwen::Utility::UnicodeToString(text); + const char* unicodeText = (const char*)str.c_str(); + + // printf("str = %s\n",unicodeText); + int xpos=0; + int ypos=0; + + + int measureOnly=1; + float dx=0; + if (m_useTrueTypeFont) + { + sth_draw_text(m_font, + 1,m_fontScaling, + xpos,ypos, + unicodeText,&dx, m_screenWidth,m_screenHeight,measureOnly); + + Gwen::Point pt; + + if (m_retinaScale==2.0f) + { + pt.x = dx*Scale()/2.f; + pt.y = m_fontScaling/2*Scale()+1; + } + else + { + pt.x = dx*Scale(); + pt.y = m_fontScaling*Scale()+1; + } + return pt; + } + else + { + float width = 0.f; + int pos=0; + while (unicodeText[pos]) + { + width += m_currentFont->m_CharWidth[unicodeText[pos]]+extraSpacing; + pos++; + } + Gwen::Point pt; + int fontHeight = m_currentFont->m_CharHeight; + + + pt.x = width*Scale(); + pt.y = (fontHeight+2) * Scale(); + + return pt; + } + + return Gwen::Renderer::Base::MeasureText(pFont,text); + } + + + +}; +#endif //__GWEN_OPENGL3_CORE_RENDERER_H \ No newline at end of file diff --git a/btgui/OpenGLWindow/LoadShader.cpp b/btgui/OpenGLWindow/LoadShader.cpp new file mode 100644 index 000000000..50e6ab7e9 --- /dev/null +++ b/btgui/OpenGLWindow/LoadShader.cpp @@ -0,0 +1,101 @@ +#include "LoadShader.h" +#include "OpenGLInclude.h" +#include +#include +#include + +// Load the shader from the source text +void gltLoadShaderSrc(const char *szShaderSrc, GLuint shader) +{ + GLchar *fsStringPtr[1]; + + fsStringPtr[0] = (GLchar *)szShaderSrc; + glShaderSource(shader, 1, (const GLchar **)fsStringPtr, NULL); +} + + +GLuint gltLoadShaderPair(const char *szVertexProg, const char *szFragmentProg) +{ + // Temporary Shader objects + GLuint hVertexShader; + GLuint hFragmentShader; + GLuint hReturn = 0; + GLint testVal; + + // Create shader objects + hVertexShader = glCreateShader(GL_VERTEX_SHADER); + hFragmentShader = glCreateShader(GL_FRAGMENT_SHADER); + + gltLoadShaderSrc(szVertexProg, hVertexShader); + gltLoadShaderSrc(szFragmentProg, hFragmentShader); + + // Compile them + glCompileShader(hVertexShader); + GLuint err = glGetError(); + assert(err==GL_NO_ERROR); + + glCompileShader(hFragmentShader); + err = glGetError(); + assert(err==GL_NO_ERROR); + + // Check for errors + glGetShaderiv(hVertexShader, GL_COMPILE_STATUS, &testVal); + if(testVal == GL_FALSE) + { + char temp[256] = ""; + glGetShaderInfoLog( hVertexShader, 256, NULL, temp); + fprintf( stderr, "Compile failed:\n%s\n", temp); + assert(0); + return 0; + glDeleteShader(hVertexShader); + glDeleteShader(hFragmentShader); + return (GLuint)NULL; + } + + glGetShaderiv(hFragmentShader, GL_COMPILE_STATUS, &testVal); + if(testVal == GL_FALSE) + { + char temp[256] = ""; + glGetShaderInfoLog( hFragmentShader, 256, NULL, temp); + fprintf( stderr, "Compile failed:\n%s\n", temp); + assert(0); + exit(0); + glDeleteShader(hVertexShader); + glDeleteShader(hFragmentShader); + return (GLuint)NULL; + } + + // Link them - assuming it works... + hReturn = glCreateProgram(); + glAttachShader(hReturn, hVertexShader); + glAttachShader(hReturn, hFragmentShader); + + glLinkProgram(hReturn); + + // These are no longer needed + glDeleteShader(hVertexShader); + glDeleteShader(hFragmentShader); + + // Make sure link worked too + glGetProgramiv(hReturn, GL_LINK_STATUS, &testVal); + if(testVal == GL_FALSE) + { + GLsizei maxLen = 4096; + GLchar infoLog[4096]; + GLsizei actualLen; + + glGetProgramInfoLog( hReturn, + maxLen, + &actualLen, + infoLog); + + printf("Warning/Error in GLSL shader:\n"); + printf("%s\n",infoLog); + glDeleteProgram(hReturn); + return (GLuint)NULL; + } + + return hReturn; +} + + diff --git a/btgui/OpenGLWindow/LoadShader.h b/btgui/OpenGLWindow/LoadShader.h new file mode 100644 index 000000000..e41c97904 --- /dev/null +++ b/btgui/OpenGLWindow/LoadShader.h @@ -0,0 +1,18 @@ +#ifndef _LOAD_SHADER_H +#define _LOAD_SHADER_H + +#include "OpenGLInclude.h" + +#ifdef __cplusplus +extern "C" { +#endif//__cplusplus + +GLuint gltLoadShaderPair(const char *szVertexProg, const char *szFragmentProg); + +#ifdef __cplusplus +} +#endif//__cplusplus + +#endif//_LOAD_SHADER_H + + diff --git a/btgui/OpenGLWindow/MacOpenGLWindow.h b/btgui/OpenGLWindow/MacOpenGLWindow.h new file mode 100644 index 000000000..e415ef52a --- /dev/null +++ b/btgui/OpenGLWindow/MacOpenGLWindow.h @@ -0,0 +1,86 @@ +#ifndef MAC_OPENGL_WINDOW_H +#define MAC_OPENGL_WINDOW_H + +#include "btgWindowInterface.h" + +#define btgDefaultOpenGLWindow MacOpenGLWindow + +class MacOpenGLWindow : public btgWindowInterface +{ + struct MacOpenGLWindowInternalData* m_internalData; + float m_mouseX; + float m_mouseY; + + + btMouseButtonCallback m_mouseButtonCallback; + btMouseMoveCallback m_mouseMoveCallback; + btWheelCallback m_wheelCallback; + btKeyboardCallback m_keyboardCallback; + btRenderCallback m_renderCallback; + + float m_retinaScaleFactor; +public: + + MacOpenGLWindow(); + virtual ~MacOpenGLWindow(); + + void init(int width, int height, const char* windowTitle); + + void closeWindow(); + + void startRendering(); + + void endRendering();//swap buffers + + virtual bool requestedExit() const; + + virtual void setRequestExit(); + + void getMouseCoordinates(int& x, int& y); + + void runMainLoop(); + + void setMouseButtonCallback(btMouseButtonCallback mouseCallback) + { + m_mouseButtonCallback = mouseCallback; + } + + void setMouseMoveCallback(btMouseMoveCallback mouseCallback) + { + m_mouseMoveCallback = mouseCallback; + } + + void setResizeCallback(btResizeCallback resizeCallback); + + void setKeyboardCallback( btKeyboardCallback keyboardCallback) + { + m_keyboardCallback = keyboardCallback; + } + + void setWheelCallback (btWheelCallback wheelCallback) + { + m_wheelCallback = wheelCallback; + } + + float getRetinaScale() const + { + return m_retinaScaleFactor; + } + + virtual void createWindow(const btgWindowConstructionInfo& ci); + + virtual float getTimeInSeconds(); + + + + virtual void setRenderCallback( btRenderCallback renderCallback); + + virtual void setWindowTitle(const char* title); + + + +}; + + +#endif + diff --git a/btgui/OpenGLWindow/MacOpenGLWindow.mm b/btgui/OpenGLWindow/MacOpenGLWindow.mm new file mode 100644 index 000000000..c4597bdb6 --- /dev/null +++ b/btgui/OpenGLWindow/MacOpenGLWindow.mm @@ -0,0 +1,978 @@ +#include "MacOpenGLWindow.h" + +#define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED +#import +#include +#include + + +#include +#include +#include +#include + + + + +/* report GL errors, if any, to stderr */ +static void checkError(const char *functionName) +{ + GLenum error; + while (( error = glGetError() ) != GL_NO_ERROR) + { + fprintf (stderr, "GL error 0x%X detected in %s\n", error, functionName); + } +} + +void dumpInfo(void) +{ + printf ("Vendor: %s\n", glGetString (GL_VENDOR)); + printf ("Renderer: %s\n", glGetString (GL_RENDERER)); + printf ("Version: %s\n", glGetString (GL_VERSION)); + printf ("GLSL: %s\n", glGetString (GL_SHADING_LANGUAGE_VERSION)); + checkError ("dumpInfo"); +} + + + + + +// -------------------- View ------------------------ + +@interface TestView : NSView +{ + NSOpenGLContext* m_context; + int m_lastWidth; + int m_lastHeight; + btResizeCallback m_resizeCallback; + +} +-(void)drawRect:(NSRect)rect; +-(void) MakeContext:(int) openglVersion; +-(void) MakeCurrent; +-(float) GetWindowWidth; +-(float) GetWindowHeight; +-(void) setResizeCallback:(btResizeCallback) callback; +@end + +float loop; + +#define Pi 3.1415 + +@implementation TestView + +-(float) GetWindowWidth +{ + return m_lastWidth; +} +-(float) GetWindowHeight +{ + return m_lastHeight; +} + +-(void)setResizeCallback:(btResizeCallback)callback +{ + m_resizeCallback = callback; +} +-(void)drawRect:(NSRect)rect +{ + if (([self frame].size.width != m_lastWidth) || ([self frame].size.height != m_lastHeight)) + { + m_lastWidth = [self frame].size.width; + m_lastHeight = [self frame].size.height; + + // Only needed on resize: + [m_context clearDrawable]; + +// reshape([self frame].size.width, [self frame].size.height); + float width = [self frame].size.width; + float height = [self frame].size.height; + + + // Get view dimensions in pixels + // glViewport(0,0,10,10); + if (m_resizeCallback) + { + (*m_resizeCallback)(width,height); + } + + NSRect backingBounds = [self convertRectToBacking:[self bounds]]; + GLsizei backingPixelWidth = (GLsizei)(backingBounds.size.width), + backingPixelHeight = (GLsizei)(backingBounds.size.height); + + // Set viewport + glViewport(0, 0, backingPixelWidth, backingPixelHeight); + + // glViewport(0,0,(GLsizei)width,(GLsizei)height); + + } + + [m_context setView: self]; + [m_context makeCurrentContext]; + + // Draw + //display(); + + [m_context flushBuffer]; + [NSOpenGLContext clearCurrentContext]; + + loop = loop + 0.1; +} + +-(void) MakeContext :(int) openglVersion +{ + // NSWindow *w; + NSOpenGLPixelFormat *fmt; + + + + + + + if (openglVersion==3) + { + NSOpenGLPixelFormatAttribute attrs[] = + { + NSOpenGLPFAOpenGLProfile, + NSOpenGLProfileVersion3_2Core, + NSOpenGLPFADoubleBuffer, + NSOpenGLPFADepthSize, 32, + NSOpenGLPFAStencilSize, (NSOpenGLPixelFormatAttribute)8, + (NSOpenGLPixelFormatAttribute)0 + }; + + // Init GL context + fmt = [[NSOpenGLPixelFormat alloc] initWithAttributes: (NSOpenGLPixelFormatAttribute*)attrs]; + } else + { + NSOpenGLPixelFormatAttribute attrs[] = + { + NSOpenGLPFADoubleBuffer, + NSOpenGLPFADepthSize, 32, + NSOpenGLPFAStencilSize, (NSOpenGLPixelFormatAttribute)8, + (NSOpenGLPixelFormatAttribute)0 + }; + // Init GL context + fmt = [[NSOpenGLPixelFormat alloc] initWithAttributes: (NSOpenGLPixelFormatAttribute*)attrs]; + + } + m_context = [[NSOpenGLContext alloc] initWithFormat: fmt shareContext: nil]; + [fmt release]; + [m_context makeCurrentContext]; + + checkError("makeCurrentContext"); +} + +-(void) MakeCurrent +{ + [m_context makeCurrentContext]; +} +-(void)windowWillClose:(NSNotification *)note +{ + [[NSApplication sharedApplication] terminate:self]; +} +@end + +struct MacOpenGLWindowInternalData +{ + MacOpenGLWindowInternalData() + { + m_myApp = 0; + m_myview = 0; + m_pool = 0; + m_window = 0; + m_width = -1; + m_height = -1; + m_exitRequested = false; + } + NSApplication* m_myApp; + TestView* m_myview; + NSAutoreleasePool* m_pool; + NSWindow* m_window; + int m_width; + int m_height; + bool m_exitRequested; + +}; + +MacOpenGLWindow::MacOpenGLWindow() +:m_internalData(0), +m_mouseX(0), +m_mouseY(0), +m_mouseMoveCallback(0), +m_mouseButtonCallback(0), +m_wheelCallback(0), +m_keyboardCallback(0), +m_retinaScaleFactor(1) +{ +} + +MacOpenGLWindow::~MacOpenGLWindow() +{ + if (m_internalData) + closeWindow(); +} + + +float MacOpenGLWindow::getTimeInSeconds() +{ + return 0.f; +} + + +void MacOpenGLWindow::setRenderCallback( btRenderCallback renderCallback) +{ + m_renderCallback = renderCallback; +} + +void MacOpenGLWindow::setWindowTitle(const char* windowTitle) +{ + [m_internalData->m_window setTitle:[NSString stringWithCString:windowTitle encoding:NSISOLatin1StringEncoding]] ; +} + +void MacOpenGLWindow::createWindow(const btgWindowConstructionInfo& ci) +{ + if (m_internalData) + closeWindow(); + + int width = ci.m_width; + int height = ci.m_height; + const char* windowTitle = ci.m_title; + + + + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + + m_internalData = new MacOpenGLWindowInternalData; + m_internalData->m_width = width; + m_internalData->m_height = height; + + m_internalData->m_pool = [NSAutoreleasePool new]; + m_internalData->m_myApp = [NSApplication sharedApplication]; + //myApp = [MyApp sharedApplication]; + //home(); + + [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]; + + id menubar = [[NSMenu new] autorelease]; + id appMenuItem = [[NSMenuItem new] autorelease]; + [menubar addItem:appMenuItem]; + [NSApp setMainMenu:menubar]; + + id appMenu = [[NSMenu new] autorelease]; + id appName = [[NSProcessInfo processInfo] processName]; + id quitTitle = [@"Quit " stringByAppendingString:appName]; + id quitMenuItem = [[[NSMenuItem alloc] initWithTitle:quitTitle + action:@selector(terminate:) keyEquivalent:@"q"] autorelease]; + + [appMenu addItem:quitMenuItem]; + [appMenuItem setSubmenu:appMenu]; + + NSMenuItem *fileMenuItem = [[NSMenuItem new] autorelease]; + NSMenu *fileMenu = [[NSMenu alloc] initWithTitle:@"File"]; + [fileMenuItem setSubmenu: fileMenu]; // was setMenu: + + NSMenuItem *newMenu = [[NSMenuItem alloc] initWithTitle:@"New" action:NULL keyEquivalent:@""]; + NSMenuItem *openMenu = [[NSMenuItem alloc] initWithTitle:@"Open" action:NULL keyEquivalent:@""]; + NSMenuItem *saveMenu = [[NSMenuItem alloc] initWithTitle:@"Save" action:NULL keyEquivalent:@""]; + + [fileMenu addItem: newMenu]; + [fileMenu addItem: openMenu]; + [fileMenu addItem: saveMenu]; + [menubar addItem: fileMenuItem]; + + + // add Edit menu + NSMenuItem *editMenuItem = [[NSMenuItem new] autorelease]; + NSMenu *menu = [[NSMenu allocWithZone:[NSMenu menuZone]]initWithTitle:@"Edit"]; + [editMenuItem setSubmenu: menu]; + + NSMenuItem *copyItem = [[NSMenuItem allocWithZone:[NSMenu menuZone]]initWithTitle:@"Copy" action:@selector(copy:) keyEquivalent:@"c"]; + + [menu addItem:copyItem]; + [menubar addItem:editMenuItem]; + + // [mainMenu setSubmenu:menu forItem:menuItem]; + + + //NSMenuItem *fileMenuItem = [[NSMenuItem alloc] initWithTitle: @"File"]; + /*[fileMenuItem setSubmenu: fileMenu]; // was setMenu: + [fileMenuItem release]; + */ + + /*NSMenu *newMenu; + NSMenuItem *newItem; + + // Add the submenu + newItem = [[NSMenuItem allocWithZone:[NSMenu menuZone]] + initWithTitle:@"Flashy" action:NULL keyEquivalent:@""]; + newMenu = [[NSMenu allocWithZone:[NSMenu menuZone]] + initWithTitle:@"Flashy"]; + [newItem setSubmenu:newMenu]; + [newMenu release]; + [[NSApp mainMenu] addItem:newItem]; + [newItem release]; + */ + + NSRect frame = NSMakeRect(0., 0., width, height); + + m_internalData->m_window = [NSWindow alloc]; + [m_internalData->m_window initWithContentRect:frame + styleMask:NSTitledWindowMask |NSResizableWindowMask| NSClosableWindowMask | NSMiniaturizableWindowMask + backing:NSBackingStoreBuffered + defer:false]; + + + [m_internalData->m_window setTitle:[NSString stringWithCString:windowTitle encoding:NSISOLatin1StringEncoding]] ; + + m_internalData->m_myview = [TestView alloc]; + + [m_internalData->m_myview setResizeCallback:0]; + + [m_internalData->m_myview initWithFrame: frame]; + + // OpenGL init! + [m_internalData->m_myview MakeContext : ci.m_openglVersion]; + + // https://developer.apple.com/library/mac/#documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/CapturingScreenContents/CapturingScreenContents.html#//apple_ref/doc/uid/TP40012302-CH10-SW1 + //support HighResolutionOSX for Retina Macbook + [m_internalData->m_myview setWantsBestResolutionOpenGLSurface:YES]; + + NSSize sz; + sz.width = 1; + sz.height = 1; + + // float newBackingScaleFactor = [m_internalData->m_window backingScaleFactor]; + + dumpInfo(); + + + + + [m_internalData->m_window setContentView: m_internalData->m_myview]; + + GLuint n = 1; + GLuint vbo[3]={-1,-1,-1}; + + glGenBuffers(n, vbo); + checkError("glGenBuffers"); + + + [m_internalData->m_window setDelegate:(id) m_internalData->m_myview]; + glGenBuffers(n, vbo); + checkError("glGenBuffers"); + + [m_internalData->m_window makeKeyAndOrderFront: nil]; + + [m_internalData->m_myview MakeCurrent]; + + glGenBuffers(n, vbo); + checkError("glGenBuffers"); + + [NSApp activateIgnoringOtherApps:YES]; + glGenBuffers(n, vbo); + checkError("glGenBuffers"); + + +//[m_internalData->m_window setLevel:NSMainMenuWindowLevel]; + +// [NSEvent addGlobalMonitorForEventsMatchingMask:NSMouseMovedMask]; + + [NSEvent addGlobalMonitorForEventsMatchingMask:NSMouseMovedMask handler:^(NSEvent *event) + { + //[window setFrameOrigin:[NSEvent mouseLocation]]; + // NSPoint eventLocation = [m_internalData->m_window mouseLocationOutsideOfEventStream]; + + // NSPoint eventLocation = [event locationInWindow]; + //NSPoint center = [m_internalData->m_myview convertPoint:eventLocation fromView:nil]; + // m_mouseX = center.x; + // m_mouseY = [m_internalData->m_myview GetWindowHeight] - center.y; + + + // printf("mouse coord = %f, %f\n",m_mouseX,m_mouseY); + if (m_mouseMoveCallback) + (*m_mouseMoveCallback)(m_mouseX,m_mouseY); + + }]; + + //see http://stackoverflow.com/questions/8238473/cant-get-nsmousemoved-events-from-nexteventmatchingmask-with-an-nsopenglview + ProcessSerialNumber psn; + GetCurrentProcess(&psn); + TransformProcessType(&psn, kProcessTransformToForegroundApplication); + SetFrontProcess(&psn); + + m_retinaScaleFactor = [m_internalData->m_myview convertSizeToBacking:sz].width; + + [m_internalData->m_myApp finishLaunching]; + [pool release]; + +} + +void MacOpenGLWindow::runMainLoop() +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + // FILE* dump = fopen ("/Users/erwincoumans/yes.txt","wb"); + // fclose(dump); + + + + + [pool release]; + +} + +void MacOpenGLWindow::closeWindow() +{ + + delete m_internalData; + m_internalData = 0; + +} +extern float m_azi; +extern float m_ele; +extern float m_cameraDistance; + + + /* + * Summary: + * Virtual keycodes + * + * Discussion: + * These constants are the virtual keycodes defined originally in + * Inside Mac Volume V, pg. V-191. They identify physical keys on a + * keyboard. Those constants with "ANSI" in the name are labeled + * according to the key position on an ANSI-standard US keyboard. + * For example, kVK_ANSI_A indicates the virtual keycode for the key + * with the letter 'A' in the US keyboard layout. Other keyboard + * layouts may have the 'A' key label on a different physical key; + * in this case, pressing 'A' will generate a different virtual + * keycode. + */ +enum { + kVK_ANSI_A = 0x00, + kVK_ANSI_S = 0x01, + kVK_ANSI_D = 0x02, + kVK_ANSI_F = 0x03, + kVK_ANSI_H = 0x04, + kVK_ANSI_G = 0x05, + kVK_ANSI_Z = 0x06, + kVK_ANSI_X = 0x07, + kVK_ANSI_C = 0x08, + kVK_ANSI_V = 0x09, + kVK_ANSI_B = 0x0B, + kVK_ANSI_Q = 0x0C, + kVK_ANSI_W = 0x0D, + kVK_ANSI_E = 0x0E, + kVK_ANSI_R = 0x0F, + kVK_ANSI_Y = 0x10, + kVK_ANSI_T = 0x11, + kVK_ANSI_1 = 0x12, + kVK_ANSI_2 = 0x13, + kVK_ANSI_3 = 0x14, + kVK_ANSI_4 = 0x15, + kVK_ANSI_6 = 0x16, + kVK_ANSI_5 = 0x17, + kVK_ANSI_Equal = 0x18, + kVK_ANSI_9 = 0x19, + kVK_ANSI_7 = 0x1A, + kVK_ANSI_Minus = 0x1B, + kVK_ANSI_8 = 0x1C, + kVK_ANSI_0 = 0x1D, + kVK_ANSI_RightBracket = 0x1E, + kVK_ANSI_O = 0x1F, + kVK_ANSI_U = 0x20, + kVK_ANSI_LeftBracket = 0x21, + kVK_ANSI_I = 0x22, + kVK_ANSI_P = 0x23, + kVK_ANSI_L = 0x25, + kVK_ANSI_J = 0x26, + kVK_ANSI_Quote = 0x27, + kVK_ANSI_K = 0x28, + kVK_ANSI_Semicolon = 0x29, + kVK_ANSI_Backslash = 0x2A, + kVK_ANSI_Comma = 0x2B, + kVK_ANSI_Slash = 0x2C, + kVK_ANSI_N = 0x2D, + kVK_ANSI_M = 0x2E, + kVK_ANSI_Period = 0x2F, + kVK_ANSI_Grave = 0x32, + kVK_ANSI_KeypadDecimal = 0x41, + kVK_ANSI_KeypadMultiply = 0x43, + kVK_ANSI_KeypadPlus = 0x45, + kVK_ANSI_KeypadClear = 0x47, + kVK_ANSI_KeypadDivide = 0x4B, + kVK_ANSI_KeypadEnter = 0x4C, + kVK_ANSI_KeypadMinus = 0x4E, + kVK_ANSI_KeypadEquals = 0x51, + kVK_ANSI_Keypad0 = 0x52, + kVK_ANSI_Keypad1 = 0x53, + kVK_ANSI_Keypad2 = 0x54, + kVK_ANSI_Keypad3 = 0x55, + kVK_ANSI_Keypad4 = 0x56, + kVK_ANSI_Keypad5 = 0x57, + kVK_ANSI_Keypad6 = 0x58, + kVK_ANSI_Keypad7 = 0x59, + kVK_ANSI_Keypad8 = 0x5B, + kVK_ANSI_Keypad9 = 0x5C +}; + +/* keycodes for keys that are independent of keyboard layout*/ +enum { + kVK_Return = 0x24, + kVK_Tab = 0x30, + kVK_Space = 0x31, + kVK_Delete = 0x33, + kVK_Escape = 0x35, + kVK_Command = 0x37, + kVK_Shift = 0x38, + kVK_CapsLock = 0x39, + kVK_Option = 0x3A, + kVK_Control = 0x3B, + kVK_RightShift = 0x3C, + kVK_RightOption = 0x3D, + kVK_RightControl = 0x3E, + kVK_Function = 0x3F, + kVK_F17 = 0x40, + kVK_VolumeUp = 0x48, + kVK_VolumeDown = 0x49, + kVK_Mute = 0x4A, + kVK_F18 = 0x4F, + kVK_F19 = 0x50, + kVK_F20 = 0x5A, + kVK_F5 = 0x60, + kVK_F6 = 0x61, + kVK_F7 = 0x62, + kVK_F3 = 0x63, + kVK_F8 = 0x64, + kVK_F9 = 0x65, + kVK_F11 = 0x67, + kVK_F13 = 0x69, + kVK_F16 = 0x6A, + kVK_F14 = 0x6B, + kVK_F10 = 0x6D, + kVK_F12 = 0x6F, + kVK_F15 = 0x71, + kVK_Help = 0x72, + kVK_Home = 0x73, + kVK_PageUp = 0x74, + kVK_ForwardDelete = 0x75, + kVK_F4 = 0x76, + kVK_End = 0x77, + kVK_F2 = 0x78, + kVK_PageDown = 0x79, + kVK_F1 = 0x7A, + kVK_LeftArrow = 0x7B, + kVK_RightArrow = 0x7C, + kVK_DownArrow = 0x7D, + kVK_UpArrow = 0x7E +}; + +/* ISO keyboards only*/ +enum { + kVK_ISO_Section = 0x0A +}; + +/* JIS keyboards only*/ +enum { + kVK_JIS_Yen = 0x5D, + kVK_JIS_Underscore = 0x5E, + kVK_JIS_KeypadComma = 0x5F, + kVK_JIS_Eisu = 0x66, + kVK_JIS_Kana = 0x68 +}; + +int getAsciiCodeFromVirtualKeycode(int virtualKeyCode) +{ + int keycode = 0xffffffff; + + switch (virtualKeyCode) + { + + case kVK_ANSI_A : {keycode = 'A'; break;} + case kVK_ANSI_B : {keycode = 'B'; break;} + case kVK_ANSI_C : {keycode = 'C'; break;} + case kVK_ANSI_D : {keycode = 'D';break;} + case kVK_ANSI_E : {keycode = 'E'; break;} + case kVK_ANSI_F : {keycode = 'F'; break;} + case kVK_ANSI_G : {keycode = 'G'; break;} + case kVK_ANSI_H : {keycode = 'H'; break;} + case kVK_ANSI_I : {keycode = 'I'; break;} + case kVK_ANSI_J : {keycode = 'J'; break;} + case kVK_ANSI_K : {keycode = 'K'; break;} + case kVK_ANSI_L : {keycode = 'L'; break;} + case kVK_ANSI_M : {keycode = 'M'; break;} + case kVK_ANSI_N : {keycode = 'N'; break;} + case kVK_ANSI_O : {keycode = 'O'; break;} + case kVK_ANSI_P : {keycode = 'P'; break;} + case kVK_ANSI_Q : {keycode = 'Q'; break;} + case kVK_ANSI_R : {keycode = 'R'; break;} + case kVK_ANSI_S : {keycode = 'S';break;} + case kVK_ANSI_T : {keycode = 'T'; break;} + case kVK_ANSI_U : {keycode = 'U'; break;} + case kVK_ANSI_V : {keycode = 'V'; break;} + case kVK_ANSI_W : {keycode = 'W'; break;} + case kVK_ANSI_X : {keycode = 'X'; break;} + case kVK_ANSI_Y : {keycode = 'Y'; break;} + case kVK_ANSI_Z : {keycode = 'Z'; break;} + + case kVK_ANSI_1 : {keycode = '1'; break;} + case kVK_ANSI_2 : {keycode = '2'; break;} + case kVK_ANSI_3 : {keycode = '3'; break;} + case kVK_ANSI_4 : {keycode = '4'; break;} + case kVK_ANSI_5 : {keycode = '5'; break;} + case kVK_ANSI_6 : {keycode = '6'; break;} + case kVK_ANSI_7 : {keycode = '7'; break;} + case kVK_ANSI_8 : {keycode = '8'; break;} + case kVK_ANSI_9 : {keycode = '9'; break;} + case kVK_ANSI_0 : {keycode = '0'; break;} + case kVK_ANSI_Equal : {keycode = '='; break;} + case kVK_ANSI_Minus : {keycode = '-'; break;} + + case kVK_Tab: {keycode = 9; break;} + case kVK_Space: {keycode=' '; break;} + case kVK_Escape: {keycode=27; break;} + case kVK_Delete: {keycode=8; break;} + case kVK_ForwardDelete: {keycode=BTG_INSERT; break;} + + + case kVK_F1: {keycode = BTG_F1; break;} + case kVK_F2: {keycode = BTG_F2; break;} + case kVK_F3: {keycode = BTG_F3; break;} + case kVK_F4: {keycode = BTG_F4; break;} + case kVK_F5: {keycode = BTG_F5; break;} + case kVK_F6: {keycode = BTG_F6; break;} + case kVK_F7: {keycode = BTG_F7; break;} + case kVK_F8: {keycode = BTG_F8; break;} + case kVK_F9: {keycode = BTG_F9; break;} + case kVK_F10: {keycode = BTG_F10; break;} + case kVK_F11: {keycode = BTG_F11; break;} + case kVK_F12: {keycode = BTG_F12; break;} + case kVK_F13: {keycode = BTG_F13; break;} + case kVK_F14: {keycode = BTG_F14; break;} + case kVK_F15: {keycode = BTG_F15; break;} + + case kVK_LeftArrow: {keycode = BTG_LEFT_ARROW;break;} + case kVK_RightArrow: {keycode = BTG_RIGHT_ARROW;break;} + case kVK_UpArrow: {keycode = BTG_UP_ARROW;break;} + case kVK_DownArrow: {keycode = BTG_DOWN_ARROW;break;} + + case kVK_PageUp :{keycode = BTG_PAGE_UP;break;} + case kVK_PageDown :{keycode = BTG_PAGE_DOWN;break;} + case kVK_End :{keycode = BTG_END;break;} + case kVK_Home :{keycode = BTG_HOME;break;} + + case kVK_ANSI_RightBracket : {keycode = ']'; break;} + case kVK_ANSI_LeftBracket : {keycode = '['; break;} + case kVK_ANSI_Quote : {keycode = '\''; break;} + case kVK_ANSI_Semicolon : {keycode = ';'; break;} + case kVK_ANSI_Backslash : {keycode = '\\'; break;} + case kVK_ANSI_Comma : {keycode = ','; break;} + case kVK_ANSI_Slash : {keycode = '/'; break;} + case kVK_ANSI_Period : {keycode = '.'; break;} + case kVK_ANSI_Grave : {keycode = '`'; break;} + case kVK_ANSI_KeypadDecimal : {keycode = '.'; break;} + case kVK_ANSI_KeypadMultiply : {keycode = '*'; break;} + case kVK_ANSI_KeypadPlus : {keycode = '+'; break;} + case kVK_ANSI_KeypadClear : {keycode = '?'; break;} + case kVK_ANSI_KeypadDivide : {keycode = '/'; break;} + case kVK_ANSI_KeypadEnter : {keycode = 13; break;} + case kVK_ANSI_KeypadMinus : {keycode = '-'; break;} + case kVK_ANSI_KeypadEquals : {keycode = '='; break;} + case kVK_ANSI_Keypad0 : {keycode = '0'; break;} + case kVK_ANSI_Keypad1 : {keycode = '1'; break;} + case kVK_ANSI_Keypad2 : {keycode = '2'; break;} + case kVK_ANSI_Keypad3 : {keycode = '3'; break;} + case kVK_ANSI_Keypad4 : {keycode = '4'; break;} + case kVK_ANSI_Keypad5 : {keycode = '5'; break;} + case kVK_ANSI_Keypad6 : {keycode = '6'; break;} + case kVK_ANSI_Keypad7 : {keycode = '7'; break;} + case kVK_ANSI_Keypad8 : {keycode = '8'; break;} + case kVK_ANSI_Keypad9 : {keycode = '9'; break;} + + default: + { + + printf("unknown keycode\n"); + } + } + return keycode; +} + + +void MacOpenGLWindow::startRendering() +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + + + GLint err = glGetError(); + assert(err==GL_NO_ERROR); + + + NSEvent *event = nil; + bool handledEvent = false; + + do + { + [pool release]; + pool = [[NSAutoreleasePool alloc] init]; + event = [m_internalData->m_myApp + nextEventMatchingMask:NSAnyEventMask + untilDate:[NSDate distantPast] + inMode:NSDefaultRunLoopMode + // inMode:NSEventTrackingRunLoopMode + dequeue:YES]; + + //NSShiftKeyMask = 1 << 17, + //NSControlKeyMask + + if ([event modifierFlags] & NSAlternateKeyMask) + { + printf("!"); + } + + if ([event type] == NSKeyUp) + { + handledEvent = true; + + uint32 virtualKeycode = [event keyCode]; + + int keycode = getAsciiCodeFromVirtualKeycode(virtualKeycode); + printf("keycode = %d\n", keycode); + + if (m_keyboardCallback) + { + int state = 0; + m_keyboardCallback(keycode,state); + } + } + if ([event type] == NSKeyDown) + { + handledEvent = true; + + if (![event isARepeat]) + { + uint32 virtualKeycode = [event keyCode]; + + int keycode = getAsciiCodeFromVirtualKeycode(virtualKeycode); + printf("keycode = %d\n", keycode); + + if (m_keyboardCallback) + { + int state = 1; + m_keyboardCallback(keycode,state); + } + } + } + + if ([event type]== NSLeftMouseUp) + { + // printf("right mouse!"); + + NSPoint eventLocation = [event locationInWindow]; + NSPoint center = [m_internalData->m_myview convertPoint:eventLocation fromView:nil]; + m_mouseX = center.x; + m_mouseY = [m_internalData->m_myview GetWindowHeight] - center.y; + + + // printf("mouse coord = %f, %f\n",mouseX,mouseY); + if (m_mouseButtonCallback) + { + (*m_mouseButtonCallback)(0,0,m_mouseX,m_mouseY); + handledEvent = true; + } + + } + + + if ([event type]== NSLeftMouseDown) + { + // printf("right mouse!"); + + NSPoint eventLocation = [event locationInWindow]; + NSPoint center = [m_internalData->m_myview convertPoint:eventLocation fromView:nil]; + m_mouseX = center.x; + m_mouseY = [m_internalData->m_myview GetWindowHeight] - center.y; + + // printf("mouse coord = %f, %f\n",mouseX,mouseY); + if (m_mouseButtonCallback) + { + handledEvent = true; + (*m_mouseButtonCallback)(0,1,m_mouseX,m_mouseY); + } + } + + + if ([event type]== NSRightMouseDown) + { + // printf("right mouse!"); + // float mouseX,mouseY; + + NSPoint eventLocation = [event locationInWindow]; + NSPoint center = [m_internalData->m_myview convertPoint:eventLocation fromView:nil]; + m_mouseX = center.x; + m_mouseY = [m_internalData->m_myview GetWindowHeight] - center.y; + + // printf("mouse coord = %f, %f\n",mouseX,mouseY); + if (m_mouseButtonCallback) + { + handledEvent = true; + (*m_mouseButtonCallback)(2,1,m_mouseX,m_mouseY); + } + } + + + if ([event type]== NSRightMouseUp) + { + // printf("right mouse!"); + // float mouseX,mouseY; + + NSPoint eventLocation = [event locationInWindow]; + NSPoint center = [m_internalData->m_myview convertPoint:eventLocation fromView:nil]; + m_mouseX = center.x; + m_mouseY = [m_internalData->m_myview GetWindowHeight] - center.y; + + // printf("mouse coord = %f, %f\n",mouseX,mouseY); + if (m_mouseButtonCallback) + (*m_mouseButtonCallback)(2,0,m_mouseX,m_mouseY); + + } + + + if ([event type] == NSMouseMoved) + { + + NSPoint eventLocation = [event locationInWindow]; + NSPoint center = [m_internalData->m_myview convertPoint:eventLocation fromView:nil]; + m_mouseX = center.x; + m_mouseY = [m_internalData->m_myview GetWindowHeight] - center.y; + + + // printf("mouse coord = %f, %f\n",m_mouseX,m_mouseY); + if (m_mouseMoveCallback) + { + handledEvent = true; + (*m_mouseMoveCallback)(m_mouseX,m_mouseY); + } + } + + if ([event type] == NSLeftMouseDragged) + { + CGMouseDelta dx1, dy1; + CGGetLastMouseDelta (&dx1, &dy1); + + NSPoint eventLocation = [event locationInWindow]; + NSPoint center = [m_internalData->m_myview convertPoint:eventLocation fromView:nil]; + m_mouseX = center.x; + m_mouseY = [m_internalData->m_myview GetWindowHeight] - center.y; + + if (m_mouseMoveCallback) + { + handledEvent = true; + (*m_mouseMoveCallback)(m_mouseX,m_mouseY); + } + + // printf("mouse coord = %f, %f\n",m_mouseX,m_mouseY); + } + + if ([event type] == NSScrollWheel) + { + float dy, dx; + dy = [ event deltaY ]; + dx = [ event deltaX ]; + + if (m_wheelCallback) + { + handledEvent = true; + (*m_wheelCallback)(dx,dy); + } + // m_cameraDistance -= dy*0.1; + // m_azi -= dx*0.1; + + } + + //if (!handledEvent) + [m_internalData->m_myApp sendEvent:event]; + + [m_internalData->m_myApp updateWindows]; + } while (event); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + [m_internalData->m_myview MakeCurrent]; + err = glGetError(); + assert(err==GL_NO_ERROR); + + + glClearColor(1,1,1,1); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); //clear buffers + + err = glGetError(); + assert(err==GL_NO_ERROR); + + //glCullFace(GL_BACK); + //glFrontFace(GL_CCW); + glEnable(GL_DEPTH_TEST); + err = glGetError(); + assert(err==GL_NO_ERROR); + + float aspect; + //btVector3 extents; + + if (m_internalData->m_width > m_internalData->m_height) + { + aspect = (float)m_internalData->m_width / (float)m_internalData->m_height; + //extents.setValue(aspect * 1.0f, 1.0f,0); + } else + { + aspect = (float)m_internalData->m_height / (float)m_internalData->m_width; + //extents.setValue(1.0f, aspect*1.f,0); + } + + err = glGetError(); + assert(err==GL_NO_ERROR); + [pool release]; + +} + +void MacOpenGLWindow::endRendering() +{ + [m_internalData->m_myview MakeCurrent]; + glSwapAPPLE(); +} + +bool MacOpenGLWindow::requestedExit() const +{ + return m_internalData->m_exitRequested; +} + +void MacOpenGLWindow::setRequestExit() +{ + m_internalData->m_exitRequested = true; +} + + + + + + +void MacOpenGLWindow::getMouseCoordinates(int& x, int& y) +{ + + NSPoint pt = [m_internalData->m_window mouseLocationOutsideOfEventStream]; + m_mouseX = pt.x; + m_mouseY = pt.y; + + x = m_mouseX; + //our convention is x,y is upper left hand side + y = [m_internalData->m_myview GetWindowHeight]-m_mouseY; + + +} + +void MacOpenGLWindow::setResizeCallback(btResizeCallback resizeCallback) +{ + [m_internalData->m_myview setResizeCallback:resizeCallback]; +} + + diff --git a/btgui/OpenGLWindow/OpenGLInclude.h b/btgui/OpenGLWindow/OpenGLInclude.h new file mode 100644 index 000000000..3af48049e --- /dev/null +++ b/btgui/OpenGLWindow/OpenGLInclude.h @@ -0,0 +1,51 @@ +/* +Copyright (c) 2012 Advanced Micro Devices, Inc. + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ +//Originally written by Erwin Coumans + + +#ifndef __OPENGL_INCLUDE_H +#define __OPENGL_INCLUDE_H + + +//think different +#if defined(__APPLE__) && !defined (VMDMESA) +#include +//#include +#include +//#import +#include +#else + +#include + +#ifdef _WINDOWS +#include +#include +#include +#else +#include +#include +#endif //_WINDOWS +#endif //APPLE + + + +///on Linux only glDrawElementsInstancedARB is defined?!? +#ifdef __linux +#define glDrawElementsInstanced glDrawElementsInstancedARB + +#endif //__linux + +#endif //__OPENGL_INCLUDE_H + diff --git a/btgui/OpenGLWindow/ShapeData.h b/btgui/OpenGLWindow/ShapeData.h new file mode 100644 index 000000000..fc566d31d --- /dev/null +++ b/btgui/OpenGLWindow/ShapeData.h @@ -0,0 +1,4802 @@ +#ifndef SHAPE_DATA_H +#define SHAPE_DATA_H + +static float barrel_vertices[] = { +0.0f,-0.5f,0.0f, 1.0f, 0.0f,-1.0f,0.0f, 0.5f, 0.5f, +0.282362f,-0.5f,-0.205148f, 1.0f, 0.0f,-1.0f,0.0f, 0.5f, 0.5f, +0.349018f,-0.5f,0.0f, 1.0f, 0.0f,-1.0f,0.0f, 0.5f, 0.5f, +0.107853f,-0.5f,-0.331936f, 1.0f, 0.0f,-1.0f,0.0f, 0.5f, 0.5f, +-0.107853f,-0.5f,-0.331936f, 1.0f, 0.0f,-1.0f,0.0f, 0.5f, 0.5f, +0.107853f,-0.5f,-0.331936f, 1.0f, 0.0f,-1.0f,0.0f, 0.5f, 0.5f, +-0.282362f,-0.5f,-0.205148f, 1.0f, 0.0f,-1.0f,0.0f, 0.5f, 0.5f, +-0.349018f,-0.5f,0.0f, 1.0f, 0.0f,-1.0f,0.0f, 0.5f, 0.5f, +-0.282362f,-0.5f,0.205148f, 1.0f, 0.0f,-1.0f,0.0f, 0.5f, 0.5f, +-0.107853f,-0.5f,0.331936f, 1.0f, 0.0f,-1.0f,0.0f, 0.5f, 0.5f, +0.107853f,-0.5f,0.331936f, 1.0f, 0.0f,-1.0f,0.0f, 0.5f, 0.5f, +0.282362f,-0.5f,0.205148f, 1.0f, 0.0f,-1.0f,0.0f, 0.5f, 0.5f, +0.0f,0.5f,0.0f, 1.0f, 0.0f,1.0f,0.0f, 0.5f, 0.5f, +0.349018f,0.5f,0.0f, 1.0f, 0.0f,1.0f,0.0f, 0.5f, 0.5f, +0.282362f,0.5f,-0.205148f, 1.0f, 0.0f,1.0f,0.0f, 0.5f, 0.5f, +0.107853f,0.5f,-0.331936f, 1.0f, 0.0f,1.0f,0.0f, 0.5f, 0.5f, +0.107853f,0.5f,-0.331936f, 1.0f, 0.0f,1.0f,0.0f, 0.5f, 0.5f, +-0.107853f,0.5f,-0.331936f, 1.0f, 0.0f,1.0f,0.0f, 0.5f, 0.5f, +-0.282362f,0.5f,-0.205148f, 1.0f, 0.0f,1.0f,0.0f, 0.5f, 0.5f, +-0.349018f,0.5f,0.0f, 1.0f, 0.0f,1.0f,0.0f, 0.5f, 0.5f, +-0.282362f,0.5f,0.205148f, 1.0f, 0.0f,1.0f,0.0f, 0.5f, 0.5f, +-0.107853f,0.5f,0.331936f, 1.0f, 0.0f,1.0f,0.0f, 0.5f, 0.5f, +0.107853f,0.5f,0.331936f, 1.0f, 0.0f,1.0f,0.0f, 0.5f, 0.5f, +0.282362f,0.5f,0.205148f, 1.0f, 0.0f,1.0f,0.0f, 0.5f, 0.5f, +0.349018f,-0.5f,0.0f, 1.0f, 0.957307f,-0.289072f,0.0f, 0.5f, 0.5f, +0.404509f,0.0f,-0.293893f, 1.0f, 0.809017f,0.0f,-0.587785f, 0.5f, 0.5f, +0.5f,0.0f,0.0f, 1.0f, 1.0f,0.0f,0.0f, 0.5f, 0.5f, +0.282362f,-0.5f,-0.205148f, 1.0f, 0.774478f,-0.289072f,-0.562691f, 0.5f, 0.5f, +0.154508f,0.0f,-0.475528f, 1.0f, 0.309017f,0.0f,-0.951057f, 0.5f, 0.5f, +0.107853f,-0.5f,-0.331936f, 1.0f, 0.295824f,-0.289072f,-0.910453f, 0.5f, 0.5f, +0.107853f,-0.5f,-0.331936f, 1.0f, 0.295824f,-0.289072f,-0.910453f, 0.5f, 0.5f, +-0.154509f,0.0f,-0.475528f, 1.0f, -0.309017f,0.0f,-0.951057f, 0.5f, 0.5f, +0.154508f,0.0f,-0.475528f, 1.0f, 0.309017f,0.0f,-0.951057f, 0.5f, 0.5f, +-0.107853f,-0.5f,-0.331936f, 1.0f, -0.295824f,-0.289072f,-0.910453f, 0.5f, 0.5f, +-0.404509f,0.0f,-0.293893f, 1.0f, -0.809017f,0.0f,-0.587785f, 0.5f, 0.5f, +-0.282362f,-0.5f,-0.205148f, 1.0f, -0.774478f,-0.289072f,-0.562691f, 0.5f, 0.5f, +-0.5f,0.0f,0.0f, 1.0f, -1.0f,0.0f,0.0f, 0.5f, 0.5f, +-0.349018f,-0.5f,0.0f, 1.0f, -0.957307f,-0.289072f,0.0f, 0.5f, 0.5f, +-0.404508f,0.0f,0.293893f, 1.0f, -0.809017f,0.0f,0.587785f, 0.5f, 0.5f, +-0.282362f,-0.5f,0.205148f, 1.0f, -0.774478f,-0.289072f,0.562691f, 0.5f, 0.5f, +-0.154509f,0.0f,0.475528f, 1.0f, -0.309017f,0.0f,0.951056f, 0.5f, 0.5f, +-0.107853f,-0.5f,0.331936f, 1.0f, -0.295824f,-0.289072f,0.910453f, 0.5f, 0.5f, +0.154509f,0.0f,0.475528f, 1.0f, 0.309017f,0.0f,0.951056f, 0.5f, 0.5f, +0.107853f,-0.5f,0.331936f, 1.0f, 0.295824f,-0.289072f,0.910453f, 0.5f, 0.5f, +0.404509f,0.0f,0.293892f, 1.0f, 0.809017f,0.0f,0.587785f, 0.5f, 0.5f, +0.282362f,-0.5f,0.205148f, 1.0f, 0.774478f,-0.289072f,0.562691f, 0.5f, 0.5f, +0.282362f,0.5f,-0.205148f, 1.0f, 0.774478f,0.289072f,-0.562691f, 0.5f, 0.5f, +0.349018f,0.5f,0.0f, 1.0f, 0.957307f,0.289072f,0.0f, 0.5f, 0.5f, +0.107853f,0.5f,-0.331936f, 1.0f, 0.295824f,0.289072f,-0.910453f, 0.5f, 0.5f, +-0.107853f,0.5f,-0.331936f, 1.0f, -0.295824f,0.289072f,-0.910453f, 0.5f, 0.5f, +0.107853f,0.5f,-0.331936f, 1.0f, 0.295824f,0.289072f,-0.910453f, 0.5f, 0.5f, +-0.282362f,0.5f,-0.205148f, 1.0f, -0.774478f,0.289072f,-0.562691f, 0.5f, 0.5f, +-0.349018f,0.5f,0.0f, 1.0f, -0.957307f,0.289072f,0.0f, 0.5f, 0.5f, +-0.282362f,0.5f,0.205148f, 1.0f, -0.774478f,0.289072f,0.562691f, 0.5f, 0.5f, +-0.107853f,0.5f,0.331936f, 1.0f, -0.295824f,0.289072f,0.910453f, 0.5f, 0.5f, +0.107853f,0.5f,0.331936f, 1.0f, 0.295824f,0.289072f,0.910453f, 0.5f, 0.5f, +0.282362f,0.5f,0.205148f, 1.0f, 0.774478f,0.289072f,0.562691f, 0.5f, 0.5f +}; + + + +static int barrel_indices[] = { +0,1,2, +0,3,1, +0,4,5, +0,6,4, +0,7,6, +0,8,7, +0,9,8, +0,10,9, +0,11,10, +0,2,11, +12,13,14, +12,14,15, +12,16,17, +12,17,18, +12,18,19, +12,19,20, +12,20,21, +12,21,22, +12,22,23, +12,23,13, +24,25,26, +24,27,25, +27,28,25, +27,29,28, +30,31,32, +30,33,31, +33,34,31, +33,35,34, +35,36,34, +35,37,36, +37,38,36, +37,39,38, +39,40,38, +39,41,40, +41,42,40, +41,43,42, +43,44,42, +43,45,44, +45,26,44, +45,24,26, +26,46,47, +26,25,46, +25,48,46, +25,28,48, +32,49,50, +32,31,49, +31,51,49, +31,34,51, +34,52,51, +34,36,52, +36,53,52, +36,38,53, +38,54,53, +38,40,54, +40,55,54, +40,42,55, +42,56,55, +42,44,56, +44,47,56, +44,26,47, +}; + + +///position xyz, unused w, normal, uv +static const float cube_vertices[] = +{ + -1.0f, -1.0f, 1.0f, 1.0f, 0,0,1, 0,0,//0 + 1.0f, -1.0f, 1.0f, 1.0f, 0,0,1, 1,0,//1 + 1.0f, 1.0f, 1.0f, 1.0f, 0,0,1, 1,1,//2 + -1.0f, 1.0f, 1.0f, 1.0f, 0,0,1, 0,1 ,//3 + + -1.0f, -1.0f, -1.0f, 1.0f, 0,0,-1, 0,0,//4 + 1.0f, -1.0f, -1.0f, 1.0f, 0,0,-1, 1,0,//5 + 1.0f, 1.0f, -1.0f, 1.0f, 0,0,-1, 1,1,//6 + -1.0f, 1.0f, -1.0f, 1.0f, 0,0,-1, 0,1,//7 + + -1.0f, -1.0f, -1.0f, 1.0f, -1,0,0, 0,0, + -1.0f, 1.0f, -1.0f, 1.0f, -1,0,0, 1,0, + -1.0f, 1.0f, 1.0f, 1.0f, -1,0,0, 1,1, + -1.0f, -1.0f, 1.0f, 1.0f, -1,0,0, 0,1, + + 1.0f, -1.0f, -1.0f, 1.0f, 1,0,0, 0,0, + 1.0f, 1.0f, -1.0f, 1.0f, 1,0,0, 1,0, + 1.0f, 1.0f, 1.0f, 1.0f, 1,0,0, 1,1, + 1.0f, -1.0f, 1.0f, 1.0f, 1,0,0, 0,1, + + -1.0f, -1.0f, -1.0f, 1.0f, 0,-1,0, 0,0, + -1.0f, -1.0f, 1.0f, 1.0f, 0,-1,0, 1,0, + 1.0f, -1.0f, 1.0f, 1.0f, 0,-1,0, 1,1, + 1.0f,-1.0f, -1.0f, 1.0f, 0,-1,0, 0,1, + + -1.0f, 1.0f, -1.0f, 1.0f, 0,1,0, 0,0, + -1.0f, 1.0f, 1.0f, 1.0f, 0,1,0, 1,0, + 1.0f, 1.0f, 1.0f, 1.0f, 0,1,0, 1,1, + 1.0f,1.0f, -1.0f, 1.0f, 0,1,0, 0,1, +}; + + +///position xyz, unused w, normal, uv +static const float cube_vertices2[] = +{ + -1.5f, -0.5f, 0.5f, 0.0f, 0,0,1, 0,0,//0 + 1.5f, -0.5f, 0.5f, 0.0f, 0,0,1, 1,0,//1 + 1.5f, 0.5f, 0.5f, 0.0f, 0,0,1, 1,1,//2 + -1.5f, 0.5f, 0.5f, 0.0f, 0,0,1, 0,1 ,//3 + + -1.5f, -0.5f, -0.5f, 0.5f, 0,0,-1, 0,0,//4 + 1.5f, -0.5f, -0.5f, 0.5f, 0,0,-1, 1,0,//5 + 1.5f, 0.5f, -0.5f, 0.5f, 0,0,-1, 1,1,//6 + -1.5f, 0.5f, -0.5f, 0.5f, 0,0,-1, 0,1,//7 + + -1.5f, -0.5f, -0.5f, 0.5f, -1,0,0, 0,0, + -1.5f, 0.5f, -0.5f, 0.5f, -1,0,0, 1,0, + -1.5f, 0.5f, 0.5f, 0.5f, -1,0,0, 1,1, + -1.5f, -0.5f, 0.5f, 0.5f, -1,0,0, 0,1, + + 1.5f, -0.5f, -0.5f, 0.5f, 1,0,0, 0,0, + 1.5f, 0.5f, -0.5f, 0.5f, 1,0,0, 1,0, + 1.5f, 0.5f, 0.5f, 0.5f, 1,0,0, 1,1, + 1.5f, -0.5f, 0.5f, 0.5f, 1,0,0, 0,1, + + -1.5f, -0.5f, -0.5f, 0.5f, 0,-1,0, 0,0, + -1.5f, -0.5f, 0.5f, 0.5f, 0,-1,0, 1,0, + 1.5f, -0.5f, 0.5f, 0.5f, 0,-1,0, 1,1, + 1.5f, -0.5f, -0.5f, 0.5f, 0,-1,0, 0,1, + + -1.5f, 0.5f, -0.5f, 0.5f, 0,1,0, 0,0, + -1.5f, 0.5f, 0.5f, 0.5f, 0,1,0, 1,0, + 1.5f, 0.5f, 0.5f, 0.5f, 0,1,0, 1,1, + 1.5f, 0.5f, -0.5f, 0.5f, 0,1,0, 0,1, +}; + + +static const int cube_indices[]= +{ + 0,1,2,0,2,3,//ground face + 4,5,6,4,6,7,//top face + 8,9,10,8,10,11, + 12,13,14,12,14,15, + 16,17,18,16,18,19, + 20,21,22,20,22,23 +}; +/* +static const float fat_triangle[]= +{ + -6.158554,-0.000000,-0.000925, 0.5f, 0, 1,0, 0,1, + -0.028798,-0.000000,-0.000925, 0.5f, 0, 1,0, 0,1, + -6.158554,-0.000000,-6.130690, 0.5f, 0, 1,0, 0,1 +}; + + +static const int fat_triangle_indices[]= +{ + 0,1,2,3,4,5 +}; + +static const float fat_triangle[]= +{ + -10.f, -10, -0.05, 0.5f, 0, 1,0, 0,0, + -10.f, 0, -0.05, 0.5f, 0, 1,0, 1,0, + 10.f, 0, -0.05, 0.5f, 0, 1,0, 1,1, + -10.f, -10, 0.05, 0.5f, 0, 1,0, 0,1, + -10.f, 0, 0.05, 0.5f, 0, 1,0, 0,1, + 10.f, 0, 0.05, 0.5f, 0, 1,0, 0,0 +}; +*/ +#if 0 +static const float triangle_vertices[] = +{ + -1.f, -0.15, -1.f, 0.5f, 0, 1,0, 0,0, + -1.f, -0.15, 1.f, 0.5f, 0, 1,0, 1,0, + 1.f, -0.15, 1.f, 0.5f, 0, 1,0, 1,1, + -1.f, 0.15, -1.f, 0.5f, 0, 1,0, 0,0, + -1.f, 0.15, 1.f, 0.5f, 0, 1,0, 1,0, + 1.f, 0.15, 1.f, 0.5f, 0, 1,0, 1,1, + +}; + +static const int triangle_indices[]= +{ + 0,1,2,3,4,5 +}; +#endif + +static const float quad_vertices[] = +{ + -1.f, 0, -1.f, 0.5f, 0, 1,0, 0,0, + -1.f, 0, 1.f, 0.5f, 0, 1,0, 1,0, + 1.f, 0, 1.f, 0.5f, 0, 1,0, 1,1, + 1.f, 0, -1.f, 0.5f, 0, 1,0, 0,1, +}; + +static const int quad_indices[]= +{ + 0,1,2,0,2,3 +}; + + + +static const float tetra_vertices[] = +{ + -1.f, 0, -1.f, 0.5f, 0, 1,0, 0,0, + -1.f, 0, 1.f, 0.5f, 0, 1,0, 1,0, + 1.f, 0, 1.f, 0.5f, 0, 1,0, 1,1, + 1.f, 0, -1.f, 0.5f, 0, 1,0, 0,1, + 0, -1, 0 , 0.5f, 0, 1,0, 0,1 +}; + + + + +static const int tetra_indices[]= +{ + 0,1,2,0,2,3,//ground face + 4,1,2,4,2,3, + 4,3,0,4,0,1 +}; + +static const float detailed_sphere_vertices[] = +{ +0.000000,-0.183479,-0.983024,0.000000,0.000000,-0.183479,-0.983024,0.500000,0.408260, +0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.500000,0.500000, +0.174499,-0.056698,-0.983024,0.000000,0.174499,-0.056698,-0.983024,0.587250,0.471651, +0.176851,-0.243415,-0.953663,0.000000,0.176851,-0.243415,-0.953663,0.588426,0.378293, +0.174499,-0.056698,-0.983024,0.000000,0.174499,-0.056698,-0.983024,0.587250,0.471651, +0.343074,-0.111472,-0.932670,0.000000,0.343074,-0.111472,-0.932670,0.671537,0.444264, +0.000000,-0.183479,-0.983024,0.000000,0.000000,-0.183479,-0.983024,0.500000,0.408260, +0.176851,-0.243415,-0.953663,0.000000,0.176851,-0.243415,-0.953663,0.588426,0.378293, +0.000000,-0.360730,-0.932670,0.000000,0.000000,-0.360730,-0.932670,0.500000,0.319635, +0.000000,-0.183479,-0.983024,0.000000,0.000000,-0.183479,-0.983024,0.500000,0.408260, +0.174499,-0.056698,-0.983024,0.000000,0.174499,-0.056698,-0.983024,0.587250,0.471651, +0.176851,-0.243415,-0.953663,0.000000,0.176851,-0.243415,-0.953663,0.588426,0.378293, +0.345991,-0.298381,-0.889527,0.000000,0.345991,-0.298381,-0.889527,0.672996,0.350810, +0.343074,-0.111472,-0.932670,0.000000,0.343074,-0.111472,-0.932670,0.671537,0.444264, +0.500000,-0.162460,-0.850651,0.000000,0.500000,-0.162460,-0.850651,0.750000,0.418770, +0.176860,-0.421262,-0.889527,0.000000,0.176860,-0.421262,-0.889527,0.588430,0.289369, +0.176851,-0.243415,-0.953663,0.000000,0.176851,-0.243415,-0.953663,0.588426,0.378293, +0.345991,-0.298381,-0.889527,0.000000,0.345991,-0.298381,-0.889527,0.672996,0.350810, +0.000000,-0.360730,-0.932670,0.000000,0.000000,-0.360730,-0.932670,0.500000,0.319635, +0.176860,-0.421262,-0.889527,0.000000,0.176860,-0.421262,-0.889527,0.588430,0.289369, +0.000000,-0.525731,-0.850651,0.000000,0.000000,-0.525731,-0.850651,0.500000,0.237134, +0.176851,-0.243415,-0.953663,0.000000,0.176851,-0.243415,-0.953663,0.588426,0.378293, +0.343074,-0.111472,-0.932670,0.000000,0.343074,-0.111472,-0.932670,0.671537,0.444264, +0.345991,-0.298381,-0.889527,0.000000,0.345991,-0.298381,-0.889527,0.672996,0.350810, +0.000000,-0.360730,-0.932670,0.000000,0.000000,-0.360730,-0.932670,0.500000,0.319635, +0.176851,-0.243415,-0.953663,0.000000,0.176851,-0.243415,-0.953663,0.588426,0.378293, +0.176860,-0.421262,-0.889527,0.000000,0.176860,-0.421262,-0.889527,0.588430,0.289369, +0.522851,-0.355846,-0.774597,0.000000,0.522851,-0.355846,-0.774597,0.761425,0.322077, +0.500000,-0.162460,-0.850651,0.000000,0.500000,-0.162460,-0.850651,0.750000,0.418770, +0.639949,-0.207932,-0.739749,0.000000,0.639949,-0.207932,-0.739749,0.819975,0.396034, +0.356822,-0.491123,-0.794654,0.000000,0.356822,-0.491123,-0.794654,0.678411,0.254439, +0.345991,-0.298381,-0.889527,0.000000,0.345991,-0.298381,-0.889527,0.672996,0.350810, +0.522851,-0.355846,-0.774597,0.000000,0.522851,-0.355846,-0.774597,0.761425,0.322077, +0.176860,-0.421262,-0.889527,0.000000,0.176860,-0.421262,-0.889527,0.588430,0.289369, +0.356822,-0.491123,-0.794654,0.000000,0.356822,-0.491123,-0.794654,0.678411,0.254439, +0.176860,-0.607223,-0.774597,0.000000,0.176860,-0.607223,-0.774597,0.588430,0.196389, +0.000000,-0.525731,-0.850651,0.000000,0.000000,-0.525731,-0.850651,0.500000,0.237134, +0.176860,-0.607223,-0.774597,0.000000,0.176860,-0.607223,-0.774597,0.588430,0.196389, +0.000000,-0.672883,-0.739749,0.000000,0.000000,-0.672883,-0.739749,0.500000,0.163559, +0.345991,-0.298381,-0.889527,0.000000,0.345991,-0.298381,-0.889527,0.672996,0.350810, +0.500000,-0.162460,-0.850651,0.000000,0.500000,-0.162460,-0.850651,0.750000,0.418770, +0.522851,-0.355846,-0.774597,0.000000,0.522851,-0.355846,-0.774597,0.761425,0.322077, +0.176860,-0.421262,-0.889527,0.000000,0.176860,-0.421262,-0.889527,0.588430,0.289369, +0.345991,-0.298381,-0.889527,0.000000,0.345991,-0.298381,-0.889527,0.672996,0.350810, +0.356822,-0.491123,-0.794654,0.000000,0.356822,-0.491123,-0.794654,0.678411,0.254439, +0.000000,-0.525731,-0.850651,0.000000,0.000000,-0.525731,-0.850651,0.500000,0.237134, +0.176860,-0.421262,-0.889527,0.000000,0.176860,-0.421262,-0.889527,0.588430,0.289369, +0.176860,-0.607223,-0.774597,0.000000,0.176860,-0.607223,-0.774597,0.588430,0.196389, +0.653054,-0.398142,-0.644208,0.000000,0.653054,-0.398142,-0.644208,0.912551,0.300929, +0.639949,-0.207932,-0.739749,0.000000,0.639949,-0.207932,-0.739749,0.819975,0.396034, +0.758172,-0.246345,-0.603730,0.000000,0.758172,-0.246345,-0.603730,0.960321,0.396034, +0.522851,-0.533682,-0.664689,0.000000,0.522851,-0.533682,-0.664689,0.892312,0.376828, +0.522851,-0.355846,-0.774597,0.000000,0.522851,-0.355846,-0.774597,0.761425,0.322077, +0.653054,-0.398142,-0.644208,0.000000,0.653054,-0.398142,-0.644208,0.912551,0.300929, +0.345991,-0.662178,-0.664689,0.000000,0.345991,-0.662178,-0.664689,0.761425,0.233159, +0.356822,-0.491123,-0.794654,0.000000,0.356822,-0.491123,-0.794654,0.678411,0.254439, +0.522851,-0.533682,-0.664689,0.000000,0.522851,-0.533682,-0.664689,0.892312,0.376828, +0.176860,-0.607223,-0.774597,0.000000,0.176860,-0.607223,-0.774597,0.588430,0.196389, +0.345991,-0.662178,-0.664689,0.000000,0.345991,-0.662178,-0.664689,0.761425,0.233159, +0.176851,-0.744124,-0.644208,0.000000,0.176851,-0.744124,-0.644208,0.826527,0.300929, +0.000000,-0.672883,-0.739749,0.000000,0.000000,-0.672883,-0.739749,0.500000,0.163559, +0.176851,-0.744124,-0.644208,0.000000,0.176851,-0.744124,-0.644208,0.826527,0.300929, +0.000000,-0.797189,-0.603730,0.000000,0.000000,-0.797189,-0.603730,0.672996,0.168911, +0.522851,-0.355846,-0.774597,0.000000,0.522851,-0.355846,-0.774597,0.761425,0.322077, +0.639949,-0.207932,-0.739749,0.000000,0.639949,-0.207932,-0.739749,0.819975,0.396034, +0.653054,-0.398142,-0.644208,0.000000,0.653054,-0.398142,-0.644208,0.912551,0.300929, +0.356822,-0.491123,-0.794654,0.000000,0.356822,-0.491123,-0.794654,0.678411,0.254439, +0.522851,-0.355846,-0.774597,0.000000,0.522851,-0.355846,-0.774597,0.761425,0.322077, +0.522851,-0.533682,-0.664689,0.000000,0.522851,-0.533682,-0.664689,0.892312,0.376828, +0.176860,-0.607223,-0.774597,0.000000,0.176860,-0.607223,-0.774597,0.588430,0.196389, +0.356822,-0.491123,-0.794654,0.000000,0.356822,-0.491123,-0.794654,0.678411,0.254439, +0.345991,-0.662178,-0.664689,0.000000,0.345991,-0.662178,-0.664689,0.761425,0.233159, +0.000000,-0.672883,-0.739749,0.000000,0.000000,-0.672883,-0.739749,0.500000,0.163559, +0.176860,-0.607223,-0.774597,0.000000,0.176860,-0.607223,-0.774597,0.588430,0.196389, +0.176851,-0.744124,-0.644208,0.000000,0.176851,-0.744124,-0.644208,0.826527,0.300929, +0.758172,-0.429824,-0.490334,0.000000,0.758172,-0.429824,-0.490334,0.588426,0.127938, +0.758172,-0.246345,-0.603730,0.000000,0.758172,-0.246345,-0.603730,0.960321,0.396034, +0.850651,-0.276393,-0.447214,0.000000,0.850651,-0.276393,-0.447214,0.500000,0.960321, +0.639949,-0.568662,-0.516806,0.000000,0.639949,-0.568662,-0.516806,0.588426,0.912551, +0.653054,-0.398142,-0.644208,0.000000,0.653054,-0.398142,-0.644208,0.912551,0.300929, +0.758172,-0.429824,-0.490334,0.000000,0.758172,-0.429824,-0.490334,0.588426,0.127938, +0.500000,-0.688191,-0.525731,0.000000,0.500000,-0.688191,-0.525731,0.500000,0.892312, +0.522851,-0.533682,-0.664689,0.000000,0.522851,-0.533682,-0.664689,0.892312,0.376828, +0.639949,-0.568662,-0.516806,0.000000,0.639949,-0.568662,-0.516806,0.588426,0.912551, +0.345991,-0.662178,-0.664689,0.000000,0.345991,-0.662178,-0.664689,0.761425,0.233159, +0.500000,-0.688191,-0.525731,0.000000,0.500000,-0.688191,-0.525731,0.500000,0.892312, +0.343074,-0.784354,-0.516806,0.000000,0.343074,-0.784354,-0.516806,0.835614,0.285088, +0.176851,-0.744124,-0.644208,0.000000,0.176851,-0.744124,-0.644208,0.826527,0.300929, +0.343074,-0.784354,-0.516806,0.000000,0.343074,-0.784354,-0.516806,0.835614,0.285088, +0.174499,-0.853887,-0.490334,0.000000,0.174499,-0.853887,-0.490334,0.814054,0.361804, +0.000000,-0.797189,-0.603730,0.000000,0.000000,-0.797189,-0.603730,0.672996,0.168911, +0.174499,-0.853887,-0.490334,0.000000,0.174499,-0.853887,-0.490334,0.814054,0.361804, +0.000000,-0.894427,-0.447214,0.000000,0.000000,-0.894427,-0.447214,0.848850,0.215669, +0.653054,-0.398142,-0.644208,0.000000,0.653054,-0.398142,-0.644208,0.912551,0.300929, +0.758172,-0.246345,-0.603730,0.000000,0.758172,-0.246345,-0.603730,0.960321,0.396034, +0.758172,-0.429824,-0.490334,0.000000,0.758172,-0.429824,-0.490334,0.588426,0.127938, +0.522851,-0.533682,-0.664689,0.000000,0.522851,-0.533682,-0.664689,0.892312,0.376828, +0.653054,-0.398142,-0.644208,0.000000,0.653054,-0.398142,-0.644208,0.912551,0.300929, +0.639949,-0.568662,-0.516806,0.000000,0.639949,-0.568662,-0.516806,0.588426,0.912551, +0.345991,-0.662178,-0.664689,0.000000,0.345991,-0.662178,-0.664689,0.761425,0.233159, +0.522851,-0.533682,-0.664689,0.000000,0.522851,-0.533682,-0.664689,0.892312,0.376828, +0.500000,-0.688191,-0.525731,0.000000,0.500000,-0.688191,-0.525731,0.500000,0.892312, +0.176851,-0.744124,-0.644208,0.000000,0.176851,-0.744124,-0.644208,0.826527,0.300929, +0.345991,-0.662178,-0.664689,0.000000,0.345991,-0.662178,-0.664689,0.761425,0.233159, +0.343074,-0.784354,-0.516806,0.000000,0.343074,-0.784354,-0.516806,0.835614,0.285088, +0.000000,-0.797189,-0.603730,0.000000,0.000000,-0.797189,-0.603730,0.672996,0.168911, +0.176851,-0.744124,-0.644208,0.000000,0.176851,-0.744124,-0.644208,0.826527,0.300929, +0.174499,-0.853887,-0.490334,0.000000,0.174499,-0.853887,-0.490334,0.814054,0.361804, +0.174499,-0.056698,-0.983024,0.000000,0.174499,-0.056698,-0.983024,0.587250,0.471651, +0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.500000,0.500000, +0.107846,0.148438,-0.983024,0.000000,0.107846,0.148438,-0.983024,0.750000,0.853312, +0.286151,0.092976,-0.953663,0.000000,0.286151,0.092976,-0.953663,0.761425,0.922791, +0.107846,0.148438,-0.983024,0.000000,0.107846,0.148438,-0.983024,0.750000,0.853312, +0.212032,0.291836,-0.932670,0.000000,0.212032,0.291836,-0.932670,0.819975,0.848850, +0.174499,-0.056698,-0.983024,0.000000,0.174499,-0.056698,-0.983024,0.587250,0.471651, +0.286151,0.092976,-0.953663,0.000000,0.286151,0.092976,-0.953663,0.761425,0.922791, +0.343074,-0.111472,-0.932670,0.000000,0.343074,-0.111472,-0.932670,0.671537,0.444264, +0.174499,-0.056698,-0.983024,0.000000,0.174499,-0.056698,-0.983024,0.587250,0.471651, +0.107846,0.148438,-0.983024,0.000000,0.107846,0.148438,-0.983024,0.750000,0.853312, +0.286151,0.092976,-0.953663,0.000000,0.286151,0.092976,-0.953663,0.761425,0.922791, +0.390694,0.236853,-0.889527,0.000000,0.390694,0.236853,-0.889527,0.672996,0.922791, +0.212032,0.291836,-0.932670,0.000000,0.212032,0.291836,-0.932670,0.819975,0.848850, +0.309017,0.425325,-0.850651,0.000000,0.309017,0.425325,-0.850651,0.671537,0.848850, +0.455297,0.038026,-0.889527,0.000000,0.455297,0.038026,-0.889527,0.587250,0.835614, +0.286151,0.092976,-0.953663,0.000000,0.286151,0.092976,-0.953663,0.761425,0.922791, +0.390694,0.236853,-0.889527,0.000000,0.390694,0.236853,-0.889527,0.672996,0.922791, +0.343074,-0.111472,-0.932670,0.000000,0.343074,-0.111472,-0.932670,0.671537,0.444264, +0.455297,0.038026,-0.889527,0.000000,0.455297,0.038026,-0.889527,0.587250,0.835614, +0.500000,-0.162460,-0.850651,0.000000,0.500000,-0.162460,-0.850651,0.750000,0.418770, +0.286151,0.092976,-0.953663,0.000000,0.286151,0.092976,-0.953663,0.761425,0.922791, +0.212032,0.291836,-0.932670,0.000000,0.212032,0.291836,-0.932670,0.819975,0.848850, +0.390694,0.236853,-0.889527,0.000000,0.390694,0.236853,-0.889527,0.672996,0.922791, +0.343074,-0.111472,-0.932670,0.000000,0.343074,-0.111472,-0.932670,0.671537,0.444264, +0.286151,0.092976,-0.953663,0.000000,0.286151,0.092976,-0.953663,0.761425,0.922791, +0.455297,0.038026,-0.889527,0.000000,0.455297,0.038026,-0.889527,0.587250,0.835614, +0.499999,0.387298,-0.774597,0.000000,0.499999,0.387298,-0.774597,0.500000,0.814054, +0.309017,0.425325,-0.850651,0.000000,0.309017,0.425325,-0.850651,0.671537,0.848850, +0.395510,0.544373,-0.739749,0.000000,0.395510,0.544373,-0.739749,0.922791,0.233159, +0.577350,0.187592,-0.794654,0.000000,0.577350,0.187592,-0.794654,0.553923,0.574219, +0.390694,0.236853,-0.889527,0.000000,0.390694,0.236853,-0.889527,0.672996,0.922791, +0.499999,0.387298,-0.774597,0.000000,0.499999,0.387298,-0.774597,0.500000,0.814054, +0.455297,0.038026,-0.889527,0.000000,0.455297,0.038026,-0.889527,0.587250,0.835614, +0.577350,0.187592,-0.794654,0.000000,0.577350,0.187592,-0.794654,0.553923,0.574219, +0.632156,-0.019439,-0.774597,0.000000,0.632156,-0.019439,-0.774597,0.643075,0.546488, +0.500000,-0.162460,-0.850651,0.000000,0.500000,-0.162460,-0.850651,0.750000,0.418770, +0.632156,-0.019439,-0.774597,0.000000,0.632156,-0.019439,-0.774597,0.643075,0.546488, +0.639949,-0.207932,-0.739749,0.000000,0.639949,-0.207932,-0.739749,0.819975,0.396034, +0.390694,0.236853,-0.889527,0.000000,0.390694,0.236853,-0.889527,0.672996,0.922791, +0.309017,0.425325,-0.850651,0.000000,0.309017,0.425325,-0.850651,0.671537,0.848850, +0.499999,0.387298,-0.774597,0.000000,0.499999,0.387298,-0.774597,0.500000,0.814054, +0.455297,0.038026,-0.889527,0.000000,0.455297,0.038026,-0.889527,0.587250,0.835614, +0.390694,0.236853,-0.889527,0.000000,0.390694,0.236853,-0.889527,0.672996,0.922791, +0.577350,0.187592,-0.794654,0.000000,0.577350,0.187592,-0.794654,0.553923,0.574219, +0.500000,-0.162460,-0.850651,0.000000,0.500000,-0.162460,-0.850651,0.750000,0.418770, +0.455297,0.038026,-0.889527,0.000000,0.455297,0.038026,-0.889527,0.587250,0.835614, +0.632156,-0.019439,-0.774597,0.000000,0.632156,-0.019439,-0.774597,0.643075,0.546488, +0.580460,0.498058,-0.644208,0.000000,0.580460,0.498058,-0.644208,0.606016,0.645918, +0.395510,0.544373,-0.739749,0.000000,0.395510,0.544373,-0.739749,0.922791,0.233159, +0.468576,0.644939,-0.603730,0.000000,0.468576,0.644939,-0.603730,0.695347,0.618427, +0.669131,0.332344,-0.664689,0.000000,0.669131,0.332344,-0.664689,0.654508,0.712663, +0.499999,0.387298,-0.774597,0.000000,0.499999,0.387298,-0.774597,0.500000,0.814054, +0.580460,0.498058,-0.644208,0.000000,0.580460,0.498058,-0.644208,0.606016,0.645918, +0.736686,0.124433,-0.664689,0.000000,0.736686,0.124433,-0.664689,0.727648,0.519013, +0.577350,0.187592,-0.794654,0.000000,0.577350,0.187592,-0.794654,0.553923,0.574219, +0.669131,0.332344,-0.664689,0.000000,0.669131,0.332344,-0.664689,0.654508,0.712663, +0.632156,-0.019439,-0.774597,0.000000,0.632156,-0.019439,-0.774597,0.643075,0.546488, +0.736686,0.124433,-0.664689,0.000000,0.736686,0.124433,-0.664689,0.727648,0.519013, +0.762354,-0.061752,-0.644208,0.000000,0.762354,-0.061752,-0.644208,0.750000,0.693649, +0.639949,-0.207932,-0.739749,0.000000,0.639949,-0.207932,-0.739749,0.819975,0.396034, +0.762354,-0.061752,-0.644208,0.000000,0.762354,-0.061752,-0.644208,0.750000,0.693649, +0.758172,-0.246345,-0.603730,0.000000,0.758172,-0.246345,-0.603730,0.960321,0.396034, +0.499999,0.387298,-0.774597,0.000000,0.499999,0.387298,-0.774597,0.500000,0.814054, +0.395510,0.544373,-0.739749,0.000000,0.395510,0.544373,-0.739749,0.922791,0.233159, +0.580460,0.498058,-0.644208,0.000000,0.580460,0.498058,-0.644208,0.606016,0.645918, +0.577350,0.187592,-0.794654,0.000000,0.577350,0.187592,-0.794654,0.553923,0.574219, +0.499999,0.387298,-0.774597,0.000000,0.499999,0.387298,-0.774597,0.500000,0.814054, +0.669131,0.332344,-0.664689,0.000000,0.669131,0.332344,-0.664689,0.654508,0.712663, +0.632156,-0.019439,-0.774597,0.000000,0.632156,-0.019439,-0.774597,0.643075,0.546488, +0.577350,0.187592,-0.794654,0.000000,0.577350,0.187592,-0.794654,0.553923,0.574219, +0.736686,0.124433,-0.664689,0.000000,0.736686,0.124433,-0.664689,0.727648,0.519013, +0.639949,-0.207932,-0.739749,0.000000,0.639949,-0.207932,-0.739749,0.819975,0.396034, +0.632156,-0.019439,-0.774597,0.000000,0.632156,-0.019439,-0.774597,0.643075,0.546488, +0.762354,-0.061752,-0.644208,0.000000,0.762354,-0.061752,-0.644208,0.750000,0.693649, +0.643075,0.588241,-0.490334,0.000000,0.643075,0.588241,-0.490334,0.697755,0.772187, +0.468576,0.644939,-0.603730,0.000000,0.468576,0.644939,-0.603730,0.695347,0.618427, +0.525731,0.723607,-0.447214,0.000000,0.525731,0.723607,-0.447214,0.788675,0.593796, +0.738585,0.432902,-0.516806,0.000000,0.738585,0.432902,-0.516806,0.816078,0.490281, +0.580460,0.498058,-0.644208,0.000000,0.580460,0.498058,-0.644208,0.606016,0.645918, +0.643075,0.588241,-0.490334,0.000000,0.643075,0.588241,-0.490334,0.697755,0.772187, +0.809017,0.262865,-0.525731,0.000000,0.809017,0.262865,-0.525731,0.790230,0.749029, +0.669131,0.332344,-0.664689,0.000000,0.669131,0.332344,-0.664689,0.654508,0.712663, +0.738585,0.432902,-0.516806,0.000000,0.738585,0.432902,-0.516806,0.816078,0.490281, +0.736686,0.124433,-0.664689,0.000000,0.736686,0.124433,-0.664689,0.727648,0.519013, +0.809017,0.262865,-0.525731,0.000000,0.809017,0.262865,-0.525731,0.790230,0.749029, +0.851981,0.083904,-0.516806,0.000000,0.851981,0.083904,-0.516806,0.734288,0.822469, +0.762354,-0.061752,-0.644208,0.000000,0.762354,-0.061752,-0.644208,0.750000,0.693649, +0.851981,0.083904,-0.516806,0.000000,0.851981,0.083904,-0.516806,0.734288,0.822469, +0.866018,-0.097907,-0.490334,0.000000,0.866018,-0.097907,-0.490334,0.834566,0.666172, +0.758172,-0.246345,-0.603730,0.000000,0.758172,-0.246345,-0.603730,0.960321,0.396034, +0.866018,-0.097907,-0.490334,0.000000,0.866018,-0.097907,-0.490334,0.834566,0.666172, +0.850651,-0.276393,-0.447214,0.000000,0.850651,-0.276393,-0.447214,0.500000,0.960321, +0.580460,0.498058,-0.644208,0.000000,0.580460,0.498058,-0.644208,0.606016,0.645918, +0.468576,0.644939,-0.603730,0.000000,0.468576,0.644939,-0.603730,0.695347,0.618427, +0.643075,0.588241,-0.490334,0.000000,0.643075,0.588241,-0.490334,0.697755,0.772187, +0.669131,0.332344,-0.664689,0.000000,0.669131,0.332344,-0.664689,0.654508,0.712663, +0.580460,0.498058,-0.644208,0.000000,0.580460,0.498058,-0.644208,0.606016,0.645918, +0.738585,0.432902,-0.516806,0.000000,0.738585,0.432902,-0.516806,0.816078,0.490281, +0.736686,0.124433,-0.664689,0.000000,0.736686,0.124433,-0.664689,0.727648,0.519013, +0.669131,0.332344,-0.664689,0.000000,0.669131,0.332344,-0.664689,0.654508,0.712663, +0.809017,0.262865,-0.525731,0.000000,0.809017,0.262865,-0.525731,0.790230,0.749029, +0.762354,-0.061752,-0.644208,0.000000,0.762354,-0.061752,-0.644208,0.750000,0.693649, +0.736686,0.124433,-0.664689,0.000000,0.736686,0.124433,-0.664689,0.727648,0.519013, +0.851981,0.083904,-0.516806,0.000000,0.851981,0.083904,-0.516806,0.734288,0.822469, +0.758172,-0.246345,-0.603730,0.000000,0.758172,-0.246345,-0.603730,0.960321,0.396034, +0.762354,-0.061752,-0.644208,0.000000,0.762354,-0.061752,-0.644208,0.750000,0.693649, +0.866018,-0.097907,-0.490334,0.000000,0.866018,-0.097907,-0.490334,0.834566,0.666172, +0.107846,0.148438,-0.983024,0.000000,0.107846,0.148438,-0.983024,0.750000,0.853312, +0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.500000,0.500000, +-0.107846,0.148438,-0.983024,0.000000,-0.107846,0.148438,-0.983024,0.868343,0.562217, +0.000000,0.300877,-0.953663,0.000000,0.000000,0.300877,-0.953663,0.977745,0.490281, +-0.107846,0.148438,-0.983024,0.000000,-0.107846,0.148438,-0.983024,0.868343,0.562217, +-0.212032,0.291836,-0.932670,0.000000,-0.212032,0.291836,-0.932670,0.922791,0.562217, +0.107846,0.148438,-0.983024,0.000000,0.107846,0.148438,-0.983024,0.750000,0.853312, +0.000000,0.300877,-0.953663,0.000000,0.000000,0.300877,-0.953663,0.977745,0.490281, +0.212032,0.291836,-0.932670,0.000000,0.212032,0.291836,-0.932670,0.819975,0.848850, +0.107846,0.148438,-0.983024,0.000000,0.107846,0.148438,-0.983024,0.750000,0.853312, +-0.107846,0.148438,-0.983024,0.000000,-0.107846,0.148438,-0.983024,0.868343,0.562217, +0.000000,0.300877,-0.953663,0.000000,0.000000,0.300877,-0.953663,0.977745,0.490281, +-0.104529,0.444764,-0.889527,0.000000,-0.104529,0.444764,-0.889527,0.912551,0.469124, +-0.212032,0.291836,-0.932670,0.000000,-0.212032,0.291836,-0.932670,0.922791,0.562217, +-0.309017,0.425325,-0.850651,0.000000,-0.309017,0.425325,-0.850651,0.881177,0.469124, +0.104529,0.444764,-0.889527,0.000000,0.104529,0.444764,-0.889527,0.821537,0.835614, +0.000000,0.300877,-0.953663,0.000000,0.000000,0.300877,-0.953663,0.977745,0.490281, +-0.104529,0.444764,-0.889527,0.000000,-0.104529,0.444764,-0.889527,0.912551,0.469124, +0.212032,0.291836,-0.932670,0.000000,0.212032,0.291836,-0.932670,0.819975,0.848850, +0.104529,0.444764,-0.889527,0.000000,0.104529,0.444764,-0.889527,0.821537,0.835614, +0.309017,0.425325,-0.850651,0.000000,0.309017,0.425325,-0.850651,0.671537,0.848850, +0.000000,0.300877,-0.953663,0.000000,0.000000,0.300877,-0.953663,0.977745,0.490281, +-0.212032,0.291836,-0.932670,0.000000,-0.212032,0.291836,-0.932670,0.922791,0.562217, +-0.104529,0.444764,-0.889527,0.000000,-0.104529,0.444764,-0.889527,0.912551,0.469124, +0.212032,0.291836,-0.932670,0.000000,0.212032,0.291836,-0.932670,0.819975,0.848850, +0.000000,0.300877,-0.953663,0.000000,0.000000,0.300877,-0.953663,0.977745,0.490281, +0.104529,0.444764,-0.889527,0.000000,0.104529,0.444764,-0.889527,0.821537,0.835614, +-0.213834,0.595209,-0.774597,0.000000,-0.213834,0.595209,-0.774597,0.734288,0.892312, +-0.309017,0.425325,-0.850651,0.000000,-0.309017,0.425325,-0.850651,0.881177,0.469124, +-0.395510,0.544373,-0.739749,0.000000,-0.395510,0.544373,-0.739749,0.762866,0.814054, +0.000000,0.607062,-0.794654,0.000000,0.000000,0.607062,-0.794654,0.848850,0.716451, +-0.104529,0.444764,-0.889527,0.000000,-0.104529,0.444764,-0.889527,0.912551,0.469124, +-0.213834,0.595209,-0.774597,0.000000,-0.213834,0.595209,-0.774597,0.734288,0.892312, +0.104529,0.444764,-0.889527,0.000000,0.104529,0.444764,-0.889527,0.821537,0.835614, +0.000000,0.607062,-0.794654,0.000000,0.000000,0.607062,-0.794654,0.848850,0.716451, +0.213834,0.595209,-0.774597,0.000000,0.213834,0.595209,-0.774597,0.912551,0.749029, +0.309017,0.425325,-0.850651,0.000000,0.309017,0.425325,-0.850651,0.671537,0.848850, +0.213834,0.595209,-0.774597,0.000000,0.213834,0.595209,-0.774597,0.912551,0.749029, +0.395510,0.544373,-0.739749,0.000000,0.395510,0.544373,-0.739749,0.922791,0.233159, +-0.104529,0.444764,-0.889527,0.000000,-0.104529,0.444764,-0.889527,0.912551,0.469124, +-0.309017,0.425325,-0.850651,0.000000,-0.309017,0.425325,-0.850651,0.881177,0.469124, +-0.213834,0.595209,-0.774597,0.000000,-0.213834,0.595209,-0.774597,0.734288,0.892312, +0.104529,0.444764,-0.889527,0.000000,0.104529,0.444764,-0.889527,0.821537,0.835614, +-0.104529,0.444764,-0.889527,0.000000,-0.104529,0.444764,-0.889527,0.912551,0.469124, +0.000000,0.607062,-0.794654,0.000000,0.000000,0.607062,-0.794654,0.848850,0.716451, +0.309017,0.425325,-0.850651,0.000000,0.309017,0.425325,-0.850651,0.671537,0.848850, +0.104529,0.444764,-0.889527,0.000000,0.104529,0.444764,-0.889527,0.821537,0.835614, +0.213834,0.595209,-0.774597,0.000000,0.213834,0.595209,-0.774597,0.912551,0.749029, +-0.294309,0.705959,-0.644208,0.000000,-0.294309,0.705959,-0.644208,0.835614,0.794120, +-0.395510,0.544373,-0.739749,0.000000,-0.395510,0.544373,-0.739749,0.762866,0.814054, +-0.468576,0.644939,-0.603730,0.000000,-0.468576,0.644939,-0.603730,0.853312,0.631433, +-0.109305,0.739082,-0.664689,0.000000,-0.109305,0.739082,-0.664689,0.922791,0.666172, +-0.213834,0.595209,-0.774597,0.000000,-0.213834,0.595209,-0.774597,0.734288,0.892312, +-0.294309,0.705959,-0.644208,0.000000,-0.294309,0.705959,-0.644208,0.835614,0.794120, +0.109305,0.739082,-0.664689,0.000000,0.109305,0.739082,-0.664689,0.848850,0.541952, +0.000000,0.607062,-0.794654,0.000000,0.000000,0.607062,-0.794654,0.848850,0.716451, +-0.109305,0.739082,-0.664689,0.000000,-0.109305,0.739082,-0.664689,0.922791,0.666172, +0.213834,0.595209,-0.774597,0.000000,0.213834,0.595209,-0.774597,0.912551,0.749029, +0.109305,0.739082,-0.664689,0.000000,0.109305,0.739082,-0.664689,0.848850,0.541952, +0.294310,0.705959,-0.644208,0.000000,0.294310,0.705959,-0.644208,0.835614,0.451046, +0.395510,0.544373,-0.739749,0.000000,0.395510,0.544373,-0.739749,0.922791,0.233159, +0.294310,0.705959,-0.644208,0.000000,0.294310,0.705959,-0.644208,0.835614,0.451046, +0.468576,0.644939,-0.603730,0.000000,0.468576,0.644939,-0.603730,0.695347,0.618427, +-0.213834,0.595209,-0.774597,0.000000,-0.213834,0.595209,-0.774597,0.734288,0.892312, +-0.395510,0.544373,-0.739749,0.000000,-0.395510,0.544373,-0.739749,0.762866,0.814054, +-0.294309,0.705959,-0.644208,0.000000,-0.294309,0.705959,-0.644208,0.835614,0.794120, +0.000000,0.607062,-0.794654,0.000000,0.000000,0.607062,-0.794654,0.848850,0.716451, +-0.213834,0.595209,-0.774597,0.000000,-0.213834,0.595209,-0.774597,0.734288,0.892312, +-0.109305,0.739082,-0.664689,0.000000,-0.109305,0.739082,-0.664689,0.922791,0.666172, +0.213834,0.595209,-0.774597,0.000000,0.213834,0.595209,-0.774597,0.912551,0.749029, +0.000000,0.607062,-0.794654,0.000000,0.000000,0.607062,-0.794654,0.848850,0.716451, +0.109305,0.739082,-0.664689,0.000000,0.109305,0.739082,-0.664689,0.848850,0.541952, +0.395510,0.544373,-0.739749,0.000000,0.395510,0.544373,-0.739749,0.922791,0.233159, +0.213834,0.595209,-0.774597,0.000000,0.213834,0.595209,-0.774597,0.912551,0.749029, +0.294310,0.705959,-0.644208,0.000000,0.294310,0.705959,-0.644208,0.835614,0.451046, +-0.360730,0.793377,-0.490334,0.000000,-0.360730,0.793377,-0.490334,0.790230,0.912551, +-0.468576,0.644939,-0.603730,0.000000,-0.468576,0.644939,-0.603730,0.853312,0.631433, +-0.525731,0.723607,-0.447214,0.000000,-0.525731,0.723607,-0.447214,0.446077,0.574219, +-0.183479,0.836210,-0.516806,0.000000,-0.183479,0.836210,-0.516806,0.500000,0.650438, +-0.294309,0.705959,-0.644208,0.000000,-0.294309,0.705959,-0.644208,0.835614,0.794120, +-0.360730,0.793377,-0.490334,0.000000,-0.360730,0.793377,-0.490334,0.790230,0.912551, +0.000000,0.850651,-0.525731,0.000000,0.000000,0.850651,-0.525731,0.393984,0.645918, +-0.109305,0.739082,-0.664689,0.000000,-0.109305,0.739082,-0.664689,0.922791,0.666172, +-0.183479,0.836210,-0.516806,0.000000,-0.183479,0.836210,-0.516806,0.500000,0.650438, +0.109305,0.739082,-0.664689,0.000000,0.109305,0.739082,-0.664689,0.848850,0.541952, +0.000000,0.850651,-0.525731,0.000000,0.000000,0.850651,-0.525731,0.393984,0.645918, +0.183479,0.836210,-0.516806,0.000000,0.183479,0.836210,-0.516806,0.447735,0.722382, +0.294310,0.705959,-0.644208,0.000000,0.294310,0.705959,-0.644208,0.835614,0.451046, +0.183479,0.836210,-0.516806,0.000000,0.183479,0.836210,-0.516806,0.447735,0.722382, +0.360730,0.793377,-0.490334,0.000000,0.360730,0.793377,-0.490334,0.345491,0.712663, +0.468576,0.644939,-0.603730,0.000000,0.468576,0.644939,-0.603730,0.695347,0.618427, +0.360730,0.793377,-0.490334,0.000000,0.360730,0.793377,-0.490334,0.345491,0.712663, +0.525731,0.723607,-0.447214,0.000000,0.525731,0.723607,-0.447214,0.788675,0.593796, +-0.294309,0.705959,-0.644208,0.000000,-0.294309,0.705959,-0.644208,0.835614,0.794120, +-0.468576,0.644939,-0.603730,0.000000,-0.468576,0.644939,-0.603730,0.853312,0.631433, +-0.360730,0.793377,-0.490334,0.000000,-0.360730,0.793377,-0.490334,0.790230,0.912551, +-0.109305,0.739082,-0.664689,0.000000,-0.109305,0.739082,-0.664689,0.922791,0.666172, +-0.294309,0.705959,-0.644208,0.000000,-0.294309,0.705959,-0.644208,0.835614,0.794120, +-0.183479,0.836210,-0.516806,0.000000,-0.183479,0.836210,-0.516806,0.500000,0.650438, +0.109305,0.739082,-0.664689,0.000000,0.109305,0.739082,-0.664689,0.848850,0.541952, +-0.109305,0.739082,-0.664689,0.000000,-0.109305,0.739082,-0.664689,0.922791,0.666172, +0.000000,0.850651,-0.525731,0.000000,0.000000,0.850651,-0.525731,0.393984,0.645918, +0.294310,0.705959,-0.644208,0.000000,0.294310,0.705959,-0.644208,0.835614,0.451046, +0.109305,0.739082,-0.664689,0.000000,0.109305,0.739082,-0.664689,0.848850,0.541952, +0.183479,0.836210,-0.516806,0.000000,0.183479,0.836210,-0.516806,0.447735,0.722382, +0.468576,0.644939,-0.603730,0.000000,0.468576,0.644939,-0.603730,0.695347,0.618427, +0.294310,0.705959,-0.644208,0.000000,0.294310,0.705959,-0.644208,0.835614,0.451046, +0.360730,0.793377,-0.490334,0.000000,0.360730,0.793377,-0.490334,0.345491,0.712663, +0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.500000,0.500000, +-0.174499,-0.056698,-0.983024,0.000000,-0.174499,-0.056698,-0.983024,0.552265,0.722382, +-0.107846,0.148438,-0.983024,0.000000,-0.107846,0.148438,-0.983024,0.868343,0.562217, +-0.286151,0.092976,-0.953663,0.000000,-0.286151,0.092976,-0.953663,0.393083,0.797605, +-0.174499,-0.056698,-0.983024,0.000000,-0.174499,-0.056698,-0.983024,0.552265,0.722382, +-0.343074,-0.111472,-0.932670,0.000000,-0.343074,-0.111472,-0.932670,0.302245,0.772187, +-0.107846,0.148438,-0.983024,0.000000,-0.107846,0.148438,-0.983024,0.868343,0.562217, +-0.286151,0.092976,-0.953663,0.000000,-0.286151,0.092976,-0.953663,0.393083,0.797605, +-0.212032,0.291836,-0.932670,0.000000,-0.212032,0.291836,-0.932670,0.922791,0.562217, +-0.107846,0.148438,-0.983024,0.000000,-0.107846,0.148438,-0.983024,0.868343,0.562217, +-0.174499,-0.056698,-0.983024,0.000000,-0.174499,-0.056698,-0.983024,0.552265,0.722382, +-0.286151,0.092976,-0.953663,0.000000,-0.286151,0.092976,-0.953663,0.393083,0.797605, +-0.455297,0.038026,-0.889527,0.000000,-0.455297,0.038026,-0.889527,0.500000,0.803531, +-0.343074,-0.111472,-0.932670,0.000000,-0.343074,-0.111472,-0.932670,0.302245,0.772187, +-0.500000,-0.162460,-0.850651,0.000000,-0.500000,-0.162460,-0.850651,0.606917,0.797605, +-0.286151,0.092976,-0.953663,0.000000,-0.286151,0.092976,-0.953663,0.393083,0.797605, +-0.455297,0.038026,-0.889527,0.000000,-0.455297,0.038026,-0.889527,0.500000,0.803531, +-0.390694,0.236853,-0.889527,0.000000,-0.390694,0.236853,-0.889527,0.352845,0.852980, +-0.212032,0.291836,-0.932670,0.000000,-0.212032,0.291836,-0.932670,0.922791,0.562217, +-0.390694,0.236853,-0.889527,0.000000,-0.390694,0.236853,-0.889527,0.352845,0.852980, +-0.309017,0.425325,-0.850651,0.000000,-0.309017,0.425325,-0.850651,0.881177,0.469124, +-0.286151,0.092976,-0.953663,0.000000,-0.286151,0.092976,-0.953663,0.393083,0.797605, +-0.343074,-0.111472,-0.932670,0.000000,-0.343074,-0.111472,-0.932670,0.302245,0.772187, +-0.455297,0.038026,-0.889527,0.000000,-0.455297,0.038026,-0.889527,0.500000,0.803531, +-0.212032,0.291836,-0.932670,0.000000,-0.212032,0.291836,-0.932670,0.922791,0.562217, +-0.286151,0.092976,-0.953663,0.000000,-0.286151,0.092976,-0.953663,0.393083,0.797605, +-0.390694,0.236853,-0.889527,0.000000,-0.390694,0.236853,-0.889527,0.352845,0.852980, +-0.632156,-0.019439,-0.774597,0.000000,-0.632156,-0.019439,-0.774597,0.265712,0.822469, +-0.500000,-0.162460,-0.850651,0.000000,-0.500000,-0.162460,-0.850651,0.606917,0.797605, +-0.639949,-0.207932,-0.739749,0.000000,-0.639949,-0.207932,-0.739749,0.445347,0.869541, +-0.577350,0.187593,-0.794654,0.000000,-0.577350,0.187593,-0.794654,0.554653,0.869541, +-0.455297,0.038026,-0.889527,0.000000,-0.455297,0.038026,-0.889527,0.500000,0.803531, +-0.632156,-0.019439,-0.774597,0.000000,-0.632156,-0.019439,-0.774597,0.265712,0.822469, +-0.390694,0.236853,-0.889527,0.000000,-0.390694,0.236853,-0.889527,0.352845,0.852980, +-0.577350,0.187593,-0.794654,0.000000,-0.577350,0.187593,-0.794654,0.554653,0.869541, +-0.499999,0.387299,-0.774597,0.000000,-0.499999,0.387299,-0.774597,0.647155,0.852980, +-0.309017,0.425325,-0.850651,0.000000,-0.309017,0.425325,-0.850651,0.881177,0.469124, +-0.499999,0.387299,-0.774597,0.000000,-0.499999,0.387299,-0.774597,0.647155,0.852980, +-0.395510,0.544373,-0.739749,0.000000,-0.395510,0.544373,-0.739749,0.762866,0.814054, +-0.455297,0.038026,-0.889527,0.000000,-0.455297,0.038026,-0.889527,0.500000,0.803531, +-0.500000,-0.162460,-0.850651,0.000000,-0.500000,-0.162460,-0.850651,0.606917,0.797605, +-0.632156,-0.019439,-0.774597,0.000000,-0.632156,-0.019439,-0.774597,0.265712,0.822469, +-0.390694,0.236853,-0.889527,0.000000,-0.390694,0.236853,-0.889527,0.352845,0.852980, +-0.455297,0.038026,-0.889527,0.000000,-0.455297,0.038026,-0.889527,0.500000,0.803531, +-0.577350,0.187593,-0.794654,0.000000,-0.577350,0.187593,-0.794654,0.554653,0.869541, +-0.309017,0.425325,-0.850651,0.000000,-0.309017,0.425325,-0.850651,0.881177,0.469124, +-0.390694,0.236853,-0.889527,0.000000,-0.390694,0.236853,-0.889527,0.352845,0.852980, +-0.499999,0.387299,-0.774597,0.000000,-0.499999,0.387299,-0.774597,0.647155,0.852980, +-0.762354,-0.061751,-0.644208,0.000000,-0.762354,-0.061751,-0.644208,0.319635,0.835614, +-0.639949,-0.207932,-0.739749,0.000000,-0.639949,-0.207932,-0.739749,0.445347,0.869541, +-0.758172,-0.246345,-0.603730,0.000000,-0.758172,-0.246345,-0.603730,0.265712,0.892312, +-0.736685,0.124433,-0.664689,0.000000,-0.736685,0.124433,-0.664689,0.237134,0.814054, +-0.632156,-0.019439,-0.774597,0.000000,-0.632156,-0.019439,-0.774597,0.265712,0.822469, +-0.762354,-0.061751,-0.644208,0.000000,-0.762354,-0.061751,-0.644208,0.319635,0.835614, +-0.577350,0.187593,-0.794654,0.000000,-0.577350,0.187593,-0.794654,0.554653,0.869541, +-0.736685,0.124433,-0.664689,0.000000,-0.736685,0.124433,-0.664689,0.237134,0.814054, +-0.669131,0.332344,-0.664689,0.000000,-0.669131,0.332344,-0.664689,0.408260,0.848850, +-0.499999,0.387299,-0.774597,0.000000,-0.499999,0.387299,-0.774597,0.647155,0.852980, +-0.669131,0.332344,-0.664689,0.000000,-0.669131,0.332344,-0.664689,0.408260,0.848850, +-0.580460,0.498058,-0.644208,0.000000,-0.580460,0.498058,-0.644208,0.352845,0.912551, +-0.395510,0.544373,-0.739749,0.000000,-0.395510,0.544373,-0.739749,0.762866,0.814054, +-0.580460,0.498058,-0.644208,0.000000,-0.580460,0.498058,-0.644208,0.352845,0.912551, +-0.468576,0.644939,-0.603730,0.000000,-0.468576,0.644939,-0.603730,0.853312,0.631433, +-0.632156,-0.019439,-0.774597,0.000000,-0.632156,-0.019439,-0.774597,0.265712,0.822469, +-0.639949,-0.207932,-0.739749,0.000000,-0.639949,-0.207932,-0.739749,0.445347,0.869541, +-0.762354,-0.061751,-0.644208,0.000000,-0.762354,-0.061751,-0.644208,0.319635,0.835614, +-0.577350,0.187593,-0.794654,0.000000,-0.577350,0.187593,-0.794654,0.554653,0.869541, +-0.632156,-0.019439,-0.774597,0.000000,-0.632156,-0.019439,-0.774597,0.265712,0.822469, +-0.736685,0.124433,-0.664689,0.000000,-0.736685,0.124433,-0.664689,0.237134,0.814054, +-0.499999,0.387299,-0.774597,0.000000,-0.499999,0.387299,-0.774597,0.647155,0.852980, +-0.577350,0.187593,-0.794654,0.000000,-0.577350,0.187593,-0.794654,0.554653,0.869541, +-0.669131,0.332344,-0.664689,0.000000,-0.669131,0.332344,-0.664689,0.408260,0.848850, +-0.395510,0.544373,-0.739749,0.000000,-0.395510,0.544373,-0.739749,0.762866,0.814054, +-0.499999,0.387299,-0.774597,0.000000,-0.499999,0.387299,-0.774597,0.647155,0.852980, +-0.580460,0.498058,-0.644208,0.000000,-0.580460,0.498058,-0.644208,0.352845,0.912551, +-0.866018,-0.097907,-0.490334,0.000000,-0.866018,-0.097907,-0.490334,0.500000,0.853312, +-0.758172,-0.246345,-0.603730,0.000000,-0.758172,-0.246345,-0.603730,0.265712,0.892312, +-0.850651,-0.276393,-0.447214,0.000000,-0.850651,-0.276393,-0.447214,0.445347,0.922791, +-0.851981,0.083904,-0.516806,0.000000,-0.851981,0.083904,-0.516806,0.554653,0.922791, +-0.762354,-0.061751,-0.644208,0.000000,-0.762354,-0.061751,-0.644208,0.319635,0.835614, +-0.866018,-0.097907,-0.490334,0.000000,-0.866018,-0.097907,-0.490334,0.500000,0.853312, +-0.809017,0.262866,-0.525731,0.000000,-0.809017,0.262866,-0.525731,0.591739,0.848850, +-0.736685,0.124433,-0.664689,0.000000,-0.736685,0.124433,-0.664689,0.237134,0.814054, +-0.851981,0.083904,-0.516806,0.000000,-0.851981,0.083904,-0.516806,0.554653,0.922791, +-0.669131,0.332344,-0.664689,0.000000,-0.669131,0.332344,-0.664689,0.408260,0.848850, +-0.809017,0.262866,-0.525731,0.000000,-0.809017,0.262866,-0.525731,0.591739,0.848850, +-0.738585,0.432902,-0.516806,0.000000,-0.738585,0.432902,-0.516806,0.647155,0.912551, +-0.580460,0.498058,-0.644208,0.000000,-0.580460,0.498058,-0.644208,0.352845,0.912551, +-0.738585,0.432902,-0.516806,0.000000,-0.738585,0.432902,-0.516806,0.647155,0.912551, +-0.643075,0.588241,-0.490334,0.000000,-0.643075,0.588241,-0.490334,0.680365,0.835614, +-0.468576,0.644939,-0.603730,0.000000,-0.468576,0.644939,-0.603730,0.853312,0.631433, +-0.643075,0.588241,-0.490334,0.000000,-0.643075,0.588241,-0.490334,0.680365,0.835614, +-0.525731,0.723607,-0.447214,0.000000,-0.525731,0.723607,-0.447214,0.446077,0.574219, +-0.762354,-0.061751,-0.644208,0.000000,-0.762354,-0.061751,-0.644208,0.319635,0.835614, +-0.758172,-0.246345,-0.603730,0.000000,-0.758172,-0.246345,-0.603730,0.265712,0.892312, +-0.866018,-0.097907,-0.490334,0.000000,-0.866018,-0.097907,-0.490334,0.500000,0.853312, +-0.736685,0.124433,-0.664689,0.000000,-0.736685,0.124433,-0.664689,0.237134,0.814054, +-0.762354,-0.061751,-0.644208,0.000000,-0.762354,-0.061751,-0.644208,0.319635,0.835614, +-0.851981,0.083904,-0.516806,0.000000,-0.851981,0.083904,-0.516806,0.554653,0.922791, +-0.669131,0.332344,-0.664689,0.000000,-0.669131,0.332344,-0.664689,0.408260,0.848850, +-0.736685,0.124433,-0.664689,0.000000,-0.736685,0.124433,-0.664689,0.237134,0.814054, +-0.809017,0.262866,-0.525731,0.000000,-0.809017,0.262866,-0.525731,0.591739,0.848850, +-0.580460,0.498058,-0.644208,0.000000,-0.580460,0.498058,-0.644208,0.352845,0.912551, +-0.669131,0.332344,-0.664689,0.000000,-0.669131,0.332344,-0.664689,0.408260,0.848850, +-0.738585,0.432902,-0.516806,0.000000,-0.738585,0.432902,-0.516806,0.647155,0.912551, +-0.468576,0.644939,-0.603730,0.000000,-0.468576,0.644939,-0.603730,0.853312,0.631433, +-0.580460,0.498058,-0.644208,0.000000,-0.580460,0.498058,-0.644208,0.352845,0.912551, +-0.643075,0.588241,-0.490334,0.000000,-0.643075,0.588241,-0.490334,0.680365,0.835614, +0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.500000,0.500000, +0.000000,-0.183479,-0.983024,0.000000,0.000000,-0.183479,-0.983024,0.500000,0.408260, +-0.174499,-0.056698,-0.983024,0.000000,-0.174499,-0.056698,-0.983024,0.552265,0.722382, +-0.176851,-0.243415,-0.953663,0.000000,-0.176851,-0.243415,-0.953663,0.412750,0.471651, +0.000000,-0.183479,-0.983024,0.000000,0.000000,-0.183479,-0.983024,0.500000,0.408260, +0.000000,-0.360730,-0.932670,0.000000,0.000000,-0.360730,-0.932670,0.500000,0.319635, +-0.174499,-0.056698,-0.983024,0.000000,-0.174499,-0.056698,-0.983024,0.552265,0.722382, +-0.176851,-0.243415,-0.953663,0.000000,-0.176851,-0.243415,-0.953663,0.412750,0.471651, +-0.343074,-0.111472,-0.932670,0.000000,-0.343074,-0.111472,-0.932670,0.302245,0.772187, +-0.174499,-0.056698,-0.983024,0.000000,-0.174499,-0.056698,-0.983024,0.552265,0.722382, +0.000000,-0.183479,-0.983024,0.000000,0.000000,-0.183479,-0.983024,0.500000,0.408260, +-0.176851,-0.243415,-0.953663,0.000000,-0.176851,-0.243415,-0.953663,0.412750,0.471651, +-0.176860,-0.421262,-0.889527,0.000000,-0.176860,-0.421262,-0.889527,0.356925,0.546488, +0.000000,-0.360730,-0.932670,0.000000,0.000000,-0.360730,-0.932670,0.500000,0.319635, +0.000000,-0.525731,-0.850651,0.000000,0.000000,-0.525731,-0.850651,0.500000,0.237134, +-0.176851,-0.243415,-0.953663,0.000000,-0.176851,-0.243415,-0.953663,0.412750,0.471651, +-0.176860,-0.421262,-0.889527,0.000000,-0.176860,-0.421262,-0.889527,0.356925,0.546488, +-0.345991,-0.298381,-0.889527,0.000000,-0.345991,-0.298381,-0.889527,0.328463,0.444264, +-0.343074,-0.111472,-0.932670,0.000000,-0.343074,-0.111472,-0.932670,0.302245,0.772187, +-0.345991,-0.298381,-0.889527,0.000000,-0.345991,-0.298381,-0.889527,0.328463,0.444264, +-0.500000,-0.162460,-0.850651,0.000000,-0.500000,-0.162460,-0.850651,0.606917,0.797605, +-0.176851,-0.243415,-0.953663,0.000000,-0.176851,-0.243415,-0.953663,0.412750,0.471651, +0.000000,-0.360730,-0.932670,0.000000,0.000000,-0.360730,-0.932670,0.500000,0.319635, +-0.176860,-0.421262,-0.889527,0.000000,-0.176860,-0.421262,-0.889527,0.356925,0.546488, +-0.343074,-0.111472,-0.932670,0.000000,-0.343074,-0.111472,-0.932670,0.302245,0.772187, +-0.176851,-0.243415,-0.953663,0.000000,-0.176851,-0.243415,-0.953663,0.412750,0.471651, +-0.345991,-0.298381,-0.889527,0.000000,-0.345991,-0.298381,-0.889527,0.328463,0.444264, +-0.176860,-0.607223,-0.774597,0.000000,-0.176860,-0.607223,-0.774597,0.272352,0.519013, +0.000000,-0.525731,-0.850651,0.000000,0.000000,-0.525731,-0.850651,0.500000,0.237134, +0.000000,-0.672883,-0.739749,0.000000,0.000000,-0.672883,-0.739749,0.500000,0.163559, +-0.356822,-0.491123,-0.794655,0.000000,-0.356822,-0.491123,-0.794655,0.250000,0.418770, +-0.176860,-0.421262,-0.889527,0.000000,-0.176860,-0.421262,-0.889527,0.356925,0.546488, +-0.176860,-0.607223,-0.774597,0.000000,-0.176860,-0.607223,-0.774597,0.272352,0.519013, +-0.345991,-0.298381,-0.889527,0.000000,-0.345991,-0.298381,-0.889527,0.328463,0.444264, +-0.356822,-0.491123,-0.794655,0.000000,-0.356822,-0.491123,-0.794655,0.250000,0.418770, +-0.522851,-0.355846,-0.774597,0.000000,-0.522851,-0.355846,-0.774597,0.304653,0.618427, +-0.500000,-0.162460,-0.850651,0.000000,-0.500000,-0.162460,-0.850651,0.606917,0.797605, +-0.522851,-0.355846,-0.774597,0.000000,-0.522851,-0.355846,-0.774597,0.304653,0.618427, +-0.639949,-0.207932,-0.739749,0.000000,-0.639949,-0.207932,-0.739749,0.445347,0.869541, +-0.176860,-0.421262,-0.889527,0.000000,-0.176860,-0.421262,-0.889527,0.356925,0.546488, +0.000000,-0.525731,-0.850651,0.000000,0.000000,-0.525731,-0.850651,0.500000,0.237134, +-0.176860,-0.607223,-0.774597,0.000000,-0.176860,-0.607223,-0.774597,0.272352,0.519013, +-0.345991,-0.298381,-0.889527,0.000000,-0.345991,-0.298381,-0.889527,0.328463,0.444264, +-0.176860,-0.421262,-0.889527,0.000000,-0.176860,-0.421262,-0.889527,0.356925,0.546488, +-0.356822,-0.491123,-0.794655,0.000000,-0.356822,-0.491123,-0.794655,0.250000,0.418770, +-0.500000,-0.162460,-0.850651,0.000000,-0.500000,-0.162460,-0.850651,0.606917,0.797605, +-0.345991,-0.298381,-0.889527,0.000000,-0.345991,-0.298381,-0.889527,0.328463,0.444264, +-0.522851,-0.355846,-0.774597,0.000000,-0.522851,-0.355846,-0.774597,0.304653,0.618427, +-0.176851,-0.744124,-0.644208,0.000000,-0.176851,-0.744124,-0.644208,0.183922,0.490281, +0.000000,-0.672883,-0.739749,0.000000,0.000000,-0.672883,-0.739749,0.500000,0.163559, +0.000000,-0.797189,-0.603730,0.000000,0.000000,-0.797189,-0.603730,0.672996,0.168911, +-0.345991,-0.662178,-0.664689,0.000000,-0.345991,-0.662178,-0.664689,0.180025,0.396034, +-0.176860,-0.607223,-0.774597,0.000000,-0.176860,-0.607223,-0.774597,0.272352,0.519013, +-0.176851,-0.744124,-0.644208,0.000000,-0.176851,-0.744124,-0.644208,0.183922,0.490281, +-0.356822,-0.491123,-0.794655,0.000000,-0.356822,-0.491123,-0.794655,0.250000,0.418770, +-0.345991,-0.662178,-0.664689,0.000000,-0.345991,-0.662178,-0.664689,0.180025,0.396034, +-0.522851,-0.533681,-0.664689,0.000000,-0.522851,-0.533681,-0.664689,0.211325,0.593796, +-0.522851,-0.355846,-0.774597,0.000000,-0.522851,-0.355846,-0.774597,0.304653,0.618427, +-0.522851,-0.533681,-0.664689,0.000000,-0.522851,-0.533681,-0.664689,0.211325,0.593796, +-0.653054,-0.398142,-0.644208,0.000000,-0.653054,-0.398142,-0.644208,0.250001,0.693650, +-0.639949,-0.207932,-0.739749,0.000000,-0.639949,-0.207932,-0.739749,0.445347,0.869541, +-0.653054,-0.398142,-0.644208,0.000000,-0.653054,-0.398142,-0.644208,0.250001,0.693650, +-0.758172,-0.246345,-0.603730,0.000000,-0.758172,-0.246345,-0.603730,0.265712,0.892312, +-0.176860,-0.607223,-0.774597,0.000000,-0.176860,-0.607223,-0.774597,0.272352,0.519013, +0.000000,-0.672883,-0.739749,0.000000,0.000000,-0.672883,-0.739749,0.500000,0.163559, +-0.176851,-0.744124,-0.644208,0.000000,-0.176851,-0.744124,-0.644208,0.183922,0.490281, +-0.356822,-0.491123,-0.794655,0.000000,-0.356822,-0.491123,-0.794655,0.250000,0.418770, +-0.176860,-0.607223,-0.774597,0.000000,-0.176860,-0.607223,-0.774597,0.272352,0.519013, +-0.345991,-0.662178,-0.664689,0.000000,-0.345991,-0.662178,-0.664689,0.180025,0.396034, +-0.522851,-0.355846,-0.774597,0.000000,-0.522851,-0.355846,-0.774597,0.304653,0.618427, +-0.356822,-0.491123,-0.794655,0.000000,-0.356822,-0.491123,-0.794655,0.250000,0.418770, +-0.522851,-0.533681,-0.664689,0.000000,-0.522851,-0.533681,-0.664689,0.211325,0.593796, +-0.639949,-0.207932,-0.739749,0.000000,-0.639949,-0.207932,-0.739749,0.445347,0.869541, +-0.522851,-0.355846,-0.774597,0.000000,-0.522851,-0.355846,-0.774597,0.304653,0.618427, +-0.653054,-0.398142,-0.644208,0.000000,-0.653054,-0.398142,-0.644208,0.250001,0.693650, +-0.174499,-0.853887,-0.490334,0.000000,-0.174499,-0.853887,-0.490334,0.131658,0.562217, +0.000000,-0.797189,-0.603730,0.000000,0.000000,-0.797189,-0.603730,0.672996,0.168911, +0.000000,-0.894427,-0.447214,0.000000,0.000000,-0.894427,-0.447214,0.848850,0.215669, +-0.343074,-0.784354,-0.516806,0.000000,-0.343074,-0.784354,-0.516806,0.165435,0.666172, +-0.176851,-0.744124,-0.644208,0.000000,-0.176851,-0.744124,-0.644208,0.183922,0.490281, +-0.174499,-0.853887,-0.490334,0.000000,-0.174499,-0.853887,-0.490334,0.131658,0.562217, +-0.500000,-0.688191,-0.525731,0.000000,-0.500000,-0.688191,-0.525731,0.209770,0.749029, +-0.345991,-0.662178,-0.664689,0.000000,-0.345991,-0.662178,-0.664689,0.180025,0.396034, +-0.343074,-0.784354,-0.516806,0.000000,-0.343074,-0.784354,-0.516806,0.165435,0.666172, +-0.522851,-0.533681,-0.664689,0.000000,-0.522851,-0.533681,-0.664689,0.211325,0.593796, +-0.500000,-0.688191,-0.525731,0.000000,-0.500000,-0.688191,-0.525731,0.209770,0.749029, +-0.639949,-0.568662,-0.516806,0.000000,-0.639949,-0.568662,-0.516806,0.118823,0.469124, +-0.653054,-0.398142,-0.644208,0.000000,-0.653054,-0.398142,-0.644208,0.250001,0.693650, +-0.639949,-0.568662,-0.516806,0.000000,-0.639949,-0.568662,-0.516806,0.118823,0.469124, +-0.758172,-0.429824,-0.490334,0.000000,-0.758172,-0.429824,-0.490334,0.178463,0.835614, +-0.758172,-0.246345,-0.603730,0.000000,-0.758172,-0.246345,-0.603730,0.265712,0.892312, +-0.758172,-0.429824,-0.490334,0.000000,-0.758172,-0.429824,-0.490334,0.178463,0.835614, +-0.850651,-0.276393,-0.447214,0.000000,-0.850651,-0.276393,-0.447214,0.445347,0.922791, +-0.176851,-0.744124,-0.644208,0.000000,-0.176851,-0.744124,-0.644208,0.183922,0.490281, +0.000000,-0.797189,-0.603730,0.000000,0.000000,-0.797189,-0.603730,0.672996,0.168911, +-0.174499,-0.853887,-0.490334,0.000000,-0.174499,-0.853887,-0.490334,0.131658,0.562217, +-0.345991,-0.662178,-0.664689,0.000000,-0.345991,-0.662178,-0.664689,0.180025,0.396034, +-0.176851,-0.744124,-0.644208,0.000000,-0.176851,-0.744124,-0.644208,0.183922,0.490281, +-0.343074,-0.784354,-0.516806,0.000000,-0.343074,-0.784354,-0.516806,0.165435,0.666172, +-0.522851,-0.533681,-0.664689,0.000000,-0.522851,-0.533681,-0.664689,0.211325,0.593796, +-0.345991,-0.662178,-0.664689,0.000000,-0.345991,-0.662178,-0.664689,0.180025,0.396034, +-0.500000,-0.688191,-0.525731,0.000000,-0.500000,-0.688191,-0.525731,0.209770,0.749029, +-0.653054,-0.398142,-0.644208,0.000000,-0.653054,-0.398142,-0.644208,0.250001,0.693650, +-0.522851,-0.533681,-0.664689,0.000000,-0.522851,-0.533681,-0.664689,0.211325,0.593796, +-0.639949,-0.568662,-0.516806,0.000000,-0.639949,-0.568662,-0.516806,0.118823,0.469124, +-0.758172,-0.246345,-0.603730,0.000000,-0.758172,-0.246345,-0.603730,0.265712,0.892312, +-0.653054,-0.398142,-0.644208,0.000000,-0.653054,-0.398142,-0.644208,0.250001,0.693650, +-0.758172,-0.429824,-0.490334,0.000000,-0.758172,-0.429824,-0.490334,0.178463,0.835614, +0.107846,-0.148438,0.983024,0.000000,0.107846,-0.148438,0.983024,0.209770,0.912551, +0.174499,0.056698,0.983024,0.000000,0.174499,0.056698,0.983024,0.411574,0.378293, +0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.411570,0.289369, +0.212032,-0.291836,0.932670,0.000000,0.212032,-0.291836,0.932670,0.327004,0.350810, +0.286151,-0.092976,0.953663,0.000000,0.286151,-0.092976,0.953663,0.411570,0.196389, +0.107846,-0.148438,0.983024,0.000000,0.107846,-0.148438,0.983024,0.209770,0.912551, +0.286151,-0.092976,0.953663,0.000000,0.286151,-0.092976,0.953663,0.411570,0.196389, +0.343074,0.111472,0.932670,0.000000,0.343074,0.111472,0.932670,0.321589,0.254439, +0.174499,0.056698,0.983024,0.000000,0.174499,0.056698,0.983024,0.411574,0.378293, +0.107846,-0.148438,0.983024,0.000000,0.107846,-0.148438,0.983024,0.209770,0.912551, +0.286151,-0.092976,0.953663,0.000000,0.286151,-0.092976,0.953663,0.411570,0.196389, +0.174499,0.056698,0.983024,0.000000,0.174499,0.056698,0.983024,0.411574,0.378293, +0.309017,-0.425325,0.850651,0.000000,0.309017,-0.425325,0.850651,0.238575,0.322077, +0.390694,-0.236853,0.889527,0.000000,0.390694,-0.236853,0.889527,0.411574,0.912551, +0.212032,-0.291836,0.932670,0.000000,0.212032,-0.291836,0.932670,0.327004,0.350810, +0.390694,-0.236853,0.889527,0.000000,0.390694,-0.236853,0.889527,0.411574,0.912551, +0.455297,-0.038026,0.889527,0.000000,0.455297,-0.038026,0.889527,0.327004,0.168911, +0.286151,-0.092976,0.953663,0.000000,0.286151,-0.092976,0.953663,0.411570,0.196389, +0.455297,-0.038026,0.889527,0.000000,0.455297,-0.038026,0.889527,0.327004,0.168911, +0.500000,0.162460,0.850651,0.000000,0.500000,0.162460,0.850651,0.411574,0.127938, +0.343074,0.111472,0.932670,0.000000,0.343074,0.111472,0.932670,0.321589,0.254439, +0.212032,-0.291836,0.932670,0.000000,0.212032,-0.291836,0.932670,0.327004,0.350810, +0.390694,-0.236853,0.889527,0.000000,0.390694,-0.236853,0.889527,0.411574,0.912551, +0.286151,-0.092976,0.953663,0.000000,0.286151,-0.092976,0.953663,0.411570,0.196389, +0.455297,-0.038026,0.889527,0.000000,0.455297,-0.038026,0.889527,0.327004,0.168911, +0.343074,0.111472,0.932670,0.000000,0.343074,0.111472,0.932670,0.321589,0.254439, +0.286151,-0.092976,0.953663,0.000000,0.286151,-0.092976,0.953663,0.411570,0.196389, +0.395510,-0.544373,0.739749,0.000000,0.395510,-0.544373,0.739749,0.238575,0.233160, +0.499999,-0.387298,0.774597,0.000000,0.499999,-0.387298,0.774597,0.173473,0.300929, +0.309017,-0.425325,0.850651,0.000000,0.309017,-0.425325,0.850651,0.238575,0.322077, +0.499999,-0.387298,0.774597,0.000000,0.499999,-0.387298,0.774597,0.173473,0.300929, +0.577350,-0.187592,0.794654,0.000000,0.577350,-0.187592,0.794654,0.412750,0.835614, +0.390694,-0.236853,0.889527,0.000000,0.390694,-0.236853,0.889527,0.411574,0.912551, +0.577350,-0.187592,0.794654,0.000000,0.577350,-0.187592,0.794654,0.412750,0.835614, +0.632156,0.019439,0.774597,0.000000,0.632156,0.019439,0.774597,0.328463,0.848850, +0.455297,-0.038026,0.889527,0.000000,0.455297,-0.038026,0.889527,0.327004,0.168911, +0.632156,0.019439,0.774597,0.000000,0.632156,0.019439,0.774597,0.328463,0.848850, +0.639949,0.207932,0.739749,0.000000,0.639949,0.207932,0.739749,0.250000,0.853312, +0.500000,0.162460,0.850651,0.000000,0.500000,0.162460,0.850651,0.411574,0.127938, +0.309017,-0.425325,0.850651,0.000000,0.309017,-0.425325,0.850651,0.238575,0.322077, +0.499999,-0.387298,0.774597,0.000000,0.499999,-0.387298,0.774597,0.173473,0.300929, +0.390694,-0.236853,0.889527,0.000000,0.390694,-0.236853,0.889527,0.411574,0.912551, +0.390694,-0.236853,0.889527,0.000000,0.390694,-0.236853,0.889527,0.411574,0.912551, +0.577350,-0.187592,0.794654,0.000000,0.577350,-0.187592,0.794654,0.412750,0.835614, +0.455297,-0.038026,0.889527,0.000000,0.455297,-0.038026,0.889527,0.327004,0.168911, +0.632156,0.019439,0.774597,0.000000,0.632156,0.019439,0.774597,0.328463,0.848850, +0.500000,0.162460,0.850651,0.000000,0.500000,0.162460,0.850651,0.411574,0.127938, +0.455297,-0.038026,0.889527,0.000000,0.455297,-0.038026,0.889527,0.327004,0.168911, +0.468576,-0.644939,0.603730,0.000000,0.468576,-0.644939,0.603730,0.327004,0.922791, +0.580460,-0.498058,0.644208,0.000000,0.580460,-0.498058,0.644208,0.238575,0.922791, +0.395510,-0.544373,0.739749,0.000000,0.395510,-0.544373,0.739749,0.238575,0.233160, +0.580460,-0.498058,0.644208,0.000000,0.580460,-0.498058,0.644208,0.238575,0.922791, +0.669131,-0.332344,0.664689,0.000000,0.669131,-0.332344,0.664689,0.180025,0.848850, +0.499999,-0.387298,0.774597,0.000000,0.499999,-0.387298,0.774597,0.173473,0.300929, +0.669131,-0.332344,0.664689,0.000000,0.669131,-0.332344,0.664689,0.180025,0.848850, +0.736685,-0.124433,0.664689,0.000000,0.736685,-0.124433,0.664689,0.922791,0.233160, +0.577350,-0.187592,0.794654,0.000000,0.577350,-0.187592,0.794654,0.412750,0.835614, +0.736685,-0.124433,0.664689,0.000000,0.736685,-0.124433,0.664689,0.922791,0.233160, +0.762354,0.061751,0.644208,0.000000,0.762354,0.061751,0.644208,0.553923,0.425781, +0.632156,0.019439,0.774597,0.000000,0.632156,0.019439,0.774597,0.328463,0.848850, +0.762354,0.061751,0.644208,0.000000,0.762354,0.061751,0.644208,0.553923,0.425781, +0.758172,0.246345,0.603730,0.000000,0.758172,0.246345,0.603730,0.587250,0.528349, +0.639949,0.207932,0.739749,0.000000,0.639949,0.207932,0.739749,0.250000,0.853312, +0.395510,-0.544373,0.739749,0.000000,0.395510,-0.544373,0.739749,0.238575,0.233160, +0.580460,-0.498058,0.644208,0.000000,0.580460,-0.498058,0.644208,0.238575,0.922791, +0.499999,-0.387298,0.774597,0.000000,0.499999,-0.387298,0.774597,0.173473,0.300929, +0.499999,-0.387298,0.774597,0.000000,0.499999,-0.387298,0.774597,0.173473,0.300929, +0.669131,-0.332344,0.664689,0.000000,0.669131,-0.332344,0.664689,0.180025,0.848850, +0.577350,-0.187592,0.794654,0.000000,0.577350,-0.187592,0.794654,0.412750,0.835614, +0.736685,-0.124433,0.664689,0.000000,0.736685,-0.124433,0.664689,0.922791,0.233160, +0.632156,0.019439,0.774597,0.000000,0.632156,0.019439,0.774597,0.328463,0.848850, +0.577350,-0.187592,0.794654,0.000000,0.577350,-0.187592,0.794654,0.412750,0.835614, +0.762354,0.061751,0.644208,0.000000,0.762354,0.061751,0.644208,0.553923,0.425781, +0.639949,0.207932,0.739749,0.000000,0.639949,0.207932,0.739749,0.250000,0.853312, +0.632156,0.019439,0.774597,0.000000,0.632156,0.019439,0.774597,0.328463,0.848850, +0.525731,-0.723607,0.447214,0.000000,0.525731,-0.723607,0.447214,0.606016,0.354082, +0.643075,-0.588241,0.490334,0.000000,0.643075,-0.588241,0.490334,0.643075,0.453512, +0.468576,-0.644939,0.603730,0.000000,0.468576,-0.644939,0.603730,0.327004,0.922791, +0.643075,-0.588241,0.490334,0.000000,0.643075,-0.588241,0.490334,0.643075,0.453512, +0.738585,-0.432902,0.516806,0.000000,0.738585,-0.432902,0.516806,0.671537,0.555736, +0.580460,-0.498058,0.644208,0.000000,0.580460,-0.498058,0.644208,0.238575,0.922791, +0.738585,-0.432902,0.516806,0.000000,0.738585,-0.432902,0.516806,0.671537,0.555736, +0.809017,-0.262866,0.525731,0.000000,0.809017,-0.262866,0.525731,0.654508,0.287337, +0.669131,-0.332344,0.664689,0.000000,0.669131,-0.332344,0.664689,0.180025,0.848850, +0.809017,-0.262866,0.525731,0.000000,0.809017,-0.262866,0.525731,0.654508,0.287337, +0.851981,-0.083904,0.516806,0.000000,0.851981,-0.083904,0.516806,0.695347,0.381573, +0.736685,-0.124433,0.664689,0.000000,0.736685,-0.124433,0.664689,0.922791,0.233160, +0.851981,-0.083904,0.516806,0.000000,0.851981,-0.083904,0.516806,0.695347,0.381573, +0.866018,0.097907,0.490334,0.000000,0.866018,0.097907,0.490334,0.727648,0.480987, +0.762354,0.061751,0.644208,0.000000,0.762354,0.061751,0.644208,0.553923,0.425781, +0.866018,0.097907,0.490334,0.000000,0.866018,0.097907,0.490334,0.727648,0.480987, +0.850651,0.276393,0.447214,0.000000,0.850651,0.276393,0.447214,0.750000,0.581230, +0.758172,0.246345,0.603730,0.000000,0.758172,0.246345,0.603730,0.587250,0.528349, +0.468576,-0.644939,0.603730,0.000000,0.468576,-0.644939,0.603730,0.327004,0.922791, +0.643075,-0.588241,0.490334,0.000000,0.643075,-0.588241,0.490334,0.643075,0.453512, +0.580460,-0.498058,0.644208,0.000000,0.580460,-0.498058,0.644208,0.238575,0.922791, +0.580460,-0.498058,0.644208,0.000000,0.580460,-0.498058,0.644208,0.238575,0.922791, +0.738585,-0.432902,0.516806,0.000000,0.738585,-0.432902,0.516806,0.671537,0.555736, +0.669131,-0.332344,0.664689,0.000000,0.669131,-0.332344,0.664689,0.180025,0.848850, +0.669131,-0.332344,0.664689,0.000000,0.669131,-0.332344,0.664689,0.180025,0.848850, +0.809017,-0.262866,0.525731,0.000000,0.809017,-0.262866,0.525731,0.654508,0.287337, +0.736685,-0.124433,0.664689,0.000000,0.736685,-0.124433,0.664689,0.922791,0.233160, +0.851981,-0.083904,0.516806,0.000000,0.851981,-0.083904,0.516806,0.695347,0.381573, +0.762354,0.061751,0.644208,0.000000,0.762354,0.061751,0.644208,0.553923,0.425781, +0.736685,-0.124433,0.664689,0.000000,0.736685,-0.124433,0.664689,0.922791,0.233160, +0.866018,0.097907,0.490334,0.000000,0.866018,0.097907,0.490334,0.727648,0.480987, +0.758172,0.246345,0.603730,0.000000,0.758172,0.246345,0.603730,0.587250,0.528349, +0.762354,0.061751,0.644208,0.000000,0.762354,0.061751,0.644208,0.553923,0.425781, +0.174499,0.056698,0.983024,0.000000,0.174499,0.056698,0.983024,0.411574,0.378293, +0.000000,0.183479,0.983024,0.000000,0.000000,0.183479,0.983024,0.697755,0.227814, +0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.411570,0.289369, +0.343074,0.111472,0.932670,0.000000,0.343074,0.111472,0.932670,0.321589,0.254439, +0.176851,0.243415,0.953663,0.000000,0.176851,0.243415,0.953663,0.750000,0.306351, +0.174499,0.056698,0.983024,0.000000,0.174499,0.056698,0.983024,0.411574,0.378293, +0.176851,0.243415,0.953663,0.000000,0.176851,0.243415,0.953663,0.750000,0.306351, +0.000000,0.360730,0.932670,0.000000,0.000000,0.360730,0.932670,0.788675,0.406204, +0.000000,0.183479,0.983024,0.000000,0.000000,0.183479,0.983024,0.697755,0.227814, +0.174499,0.056698,0.983024,0.000000,0.174499,0.056698,0.983024,0.411574,0.378293, +0.176851,0.243415,0.953663,0.000000,0.176851,0.243415,0.953663,0.750000,0.306351, +0.000000,0.183479,0.983024,0.000000,0.000000,0.183479,0.983024,0.697755,0.227814, +0.500000,0.162460,0.850651,0.000000,0.500000,0.162460,0.850651,0.411574,0.127938, +0.345991,0.298381,0.889527,0.000000,0.345991,0.298381,0.889527,0.816078,0.509719, +0.343074,0.111472,0.932670,0.000000,0.343074,0.111472,0.932670,0.321589,0.254439, +0.345991,0.298381,0.889527,0.000000,0.345991,0.298381,0.889527,0.816078,0.509719, +0.176860,0.421262,0.889527,0.000000,0.176860,0.421262,0.889527,0.819975,0.603966, +0.176851,0.243415,0.953663,0.000000,0.176851,0.243415,0.953663,0.750000,0.306351, +0.176860,0.421262,0.889527,0.000000,0.176860,0.421262,0.889527,0.819975,0.603966, +0.000000,0.525731,0.850651,0.000000,0.000000,0.525731,0.850651,0.734288,0.177530, +0.000000,0.360730,0.932670,0.000000,0.000000,0.360730,0.932670,0.788675,0.406204, +0.343074,0.111472,0.932670,0.000000,0.343074,0.111472,0.932670,0.321589,0.254439, +0.345991,0.298381,0.889527,0.000000,0.345991,0.298381,0.889527,0.816078,0.509719, +0.176851,0.243415,0.953663,0.000000,0.176851,0.243415,0.953663,0.750000,0.306351, +0.176860,0.421262,0.889527,0.000000,0.176860,0.421262,0.889527,0.819975,0.603966, +0.000000,0.360730,0.932670,0.000000,0.000000,0.360730,0.932670,0.788675,0.406204, +0.176851,0.243415,0.953663,0.000000,0.176851,0.243415,0.953663,0.750000,0.306351, +0.639949,0.207932,0.739749,0.000000,0.639949,0.207932,0.739749,0.250000,0.853312, +0.522851,0.355846,0.774597,0.000000,0.522851,0.355846,0.774597,0.790230,0.250971, +0.500000,0.162460,0.850651,0.000000,0.500000,0.162460,0.850651,0.411574,0.127938, +0.522851,0.355846,0.774597,0.000000,0.522851,0.355846,0.774597,0.790230,0.250971, +0.356822,0.491123,0.794654,0.000000,0.356822,0.491123,0.794654,0.834566,0.333828, +0.345991,0.298381,0.889527,0.000000,0.345991,0.298381,0.889527,0.816078,0.509719, +0.356822,0.491123,0.794654,0.000000,0.356822,0.491123,0.794654,0.834566,0.333828, +0.176860,0.607223,0.774597,0.000000,0.176860,0.607223,0.774597,0.868343,0.437784, +0.176860,0.421262,0.889527,0.000000,0.176860,0.421262,0.889527,0.819975,0.603966, +0.176860,0.607223,0.774597,0.000000,0.176860,0.607223,0.774597,0.868343,0.437784, +0.000000,0.672883,0.739749,0.000000,0.000000,0.672883,0.739749,0.258102,0.437784, +0.000000,0.525731,0.850651,0.000000,0.000000,0.525731,0.850651,0.734288,0.177530, +0.500000,0.162460,0.850651,0.000000,0.500000,0.162460,0.850651,0.411574,0.127938, +0.522851,0.355846,0.774597,0.000000,0.522851,0.355846,0.774597,0.790230,0.250971, +0.345991,0.298381,0.889527,0.000000,0.345991,0.298381,0.889527,0.816078,0.509719, +0.345991,0.298381,0.889527,0.000000,0.345991,0.298381,0.889527,0.816078,0.509719, +0.356822,0.491123,0.794654,0.000000,0.356822,0.491123,0.794654,0.834566,0.333828, +0.176860,0.421262,0.889527,0.000000,0.176860,0.421262,0.889527,0.819975,0.603966, +0.176860,0.607223,0.774597,0.000000,0.176860,0.607223,0.774597,0.868343,0.437784, +0.000000,0.525731,0.850651,0.000000,0.000000,0.525731,0.850651,0.734288,0.177530, +0.176860,0.421262,0.889527,0.000000,0.176860,0.421262,0.889527,0.819975,0.603966, +0.758172,0.246345,0.603730,0.000000,0.758172,0.246345,0.603730,0.587250,0.528349, +0.653054,0.398142,0.644208,0.000000,0.653054,0.398142,0.644208,0.268343,0.530876, +0.639949,0.207932,0.739749,0.000000,0.639949,0.207932,0.739749,0.250000,0.853312, +0.653054,0.398142,0.644208,0.000000,0.653054,0.398142,0.644208,0.268343,0.530876, +0.522851,0.533681,0.664689,0.000000,0.522851,0.533681,0.664689,0.203148,0.509719, +0.522851,0.355846,0.774597,0.000000,0.522851,0.355846,0.774597,0.790230,0.250971, +0.522851,0.533681,0.664689,0.000000,0.522851,0.533681,0.664689,0.203148,0.509719, +0.345991,0.662178,0.664689,0.000000,0.345991,0.662178,0.664689,0.288582,0.623173, +0.356822,0.491123,0.794654,0.000000,0.356822,0.491123,0.794654,0.834566,0.333828, +0.345991,0.662178,0.664689,0.000000,0.345991,0.662178,0.664689,0.288582,0.623173, +0.176851,0.744124,0.644208,0.000000,0.176851,0.744124,0.644208,0.220572,0.603966, +0.176860,0.607223,0.774597,0.000000,0.176860,0.607223,0.774597,0.868343,0.437784, +0.176851,0.744124,0.644208,0.000000,0.176851,0.744124,0.644208,0.220572,0.603966, +0.000000,0.797189,0.603730,0.000000,0.000000,0.797189,0.603730,0.881177,0.530876, +0.000000,0.672883,0.739749,0.000000,0.000000,0.672883,0.739749,0.258102,0.437784, +0.639949,0.207932,0.739749,0.000000,0.639949,0.207932,0.739749,0.250000,0.853312, +0.653054,0.398142,0.644208,0.000000,0.653054,0.398142,0.644208,0.268343,0.530876, +0.522851,0.355846,0.774597,0.000000,0.522851,0.355846,0.774597,0.790230,0.250971, +0.522851,0.355846,0.774597,0.000000,0.522851,0.355846,0.774597,0.790230,0.250971, +0.522851,0.533681,0.664689,0.000000,0.522851,0.533681,0.664689,0.203148,0.509719, +0.356822,0.491123,0.794654,0.000000,0.356822,0.491123,0.794654,0.834566,0.333828, +0.345991,0.662178,0.664689,0.000000,0.345991,0.662178,0.664689,0.288582,0.623173, +0.176860,0.607223,0.774597,0.000000,0.176860,0.607223,0.774597,0.868343,0.437784, +0.356822,0.491123,0.794654,0.000000,0.356822,0.491123,0.794654,0.834566,0.333828, +0.176851,0.744124,0.644208,0.000000,0.176851,0.744124,0.644208,0.220572,0.603966, +0.000000,0.672883,0.739749,0.000000,0.000000,0.672883,0.739749,0.258102,0.437784, +0.176860,0.607223,0.774597,0.000000,0.176860,0.607223,0.774597,0.868343,0.437784, +0.850651,0.276393,0.447214,0.000000,0.850651,0.276393,0.447214,0.750000,0.581230, +0.758172,0.429824,0.490334,0.000000,0.758172,0.429824,0.490334,0.762866,0.366840, +0.758172,0.246345,0.603730,0.000000,0.758172,0.246345,0.603730,0.587250,0.528349, +0.758172,0.429824,0.490334,0.000000,0.758172,0.429824,0.490334,0.762866,0.366840, +0.639949,0.568662,0.516806,0.000000,0.639949,0.568662,0.516806,0.821537,0.345280, +0.653054,0.398142,0.644208,0.000000,0.653054,0.398142,0.644208,0.268343,0.530876, +0.639949,0.568662,0.516806,0.000000,0.639949,0.568662,0.516806,0.821537,0.345280, +0.500000,0.688191,0.525731,0.000000,0.500000,0.688191,0.525731,0.734288,0.288582, +0.522851,0.533681,0.664689,0.000000,0.522851,0.533681,0.664689,0.203148,0.509719, +0.500000,0.688191,0.525731,0.000000,0.500000,0.688191,0.525731,0.734288,0.288582, +0.343074,0.784354,0.516806,0.000000,0.343074,0.784354,0.516806,0.345280,0.205880, +0.345991,0.662178,0.664689,0.000000,0.345991,0.662178,0.664689,0.288582,0.623173, +0.343074,0.784354,0.516806,0.000000,0.343074,0.784354,0.516806,0.345280,0.205880, +0.174499,0.853887,0.490334,0.000000,0.174499,0.853887,0.490334,0.332044,0.283549, +0.176851,0.744124,0.644208,0.000000,0.176851,0.744124,0.644208,0.220572,0.603966, +0.174499,0.853887,0.490334,0.000000,0.174499,0.853887,0.490334,0.332044,0.283549, +0.000000,0.894427,0.447214,0.000000,0.000000,0.894427,0.447214,0.268343,0.250971, +0.000000,0.797189,0.603730,0.000000,0.000000,0.797189,0.603730,0.881177,0.530876, +0.758172,0.246345,0.603730,0.000000,0.758172,0.246345,0.603730,0.587250,0.528349, +0.758172,0.429824,0.490334,0.000000,0.758172,0.429824,0.490334,0.762866,0.366840, +0.653054,0.398142,0.644208,0.000000,0.653054,0.398142,0.644208,0.268343,0.530876, +0.653054,0.398142,0.644208,0.000000,0.653054,0.398142,0.644208,0.268343,0.530876, +0.639949,0.568662,0.516806,0.000000,0.639949,0.568662,0.516806,0.821537,0.345280, +0.522851,0.533681,0.664689,0.000000,0.522851,0.533681,0.664689,0.203148,0.509719, +0.522851,0.533681,0.664689,0.000000,0.522851,0.533681,0.664689,0.203148,0.509719, +0.500000,0.688191,0.525731,0.000000,0.500000,0.688191,0.525731,0.734288,0.288582, +0.345991,0.662178,0.664689,0.000000,0.345991,0.662178,0.664689,0.288582,0.623173, +0.343074,0.784354,0.516806,0.000000,0.343074,0.784354,0.516806,0.345280,0.205880, +0.176851,0.744124,0.644208,0.000000,0.176851,0.744124,0.644208,0.220572,0.603966, +0.345991,0.662178,0.664689,0.000000,0.345991,0.662178,0.664689,0.288582,0.623173, +0.174499,0.853887,0.490334,0.000000,0.174499,0.853887,0.490334,0.332044,0.283549, +0.000000,0.797189,0.603730,0.000000,0.000000,0.797189,0.603730,0.881177,0.530876, +0.176851,0.744124,0.644208,0.000000,0.176851,0.744124,0.644208,0.220572,0.603966, +0.000000,0.183479,0.983024,0.000000,0.000000,0.183479,0.983024,0.697755,0.227814, +-0.174499,0.056698,0.983024,0.000000,-0.174499,0.056698,0.983024,0.327581,0.368567, +0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.411570,0.289369, +0.000000,0.360730,0.932670,0.000000,0.000000,0.360730,0.932670,0.788675,0.406204, +-0.176851,0.243415,0.953663,0.000000,-0.176851,0.243415,0.953663,0.258102,0.333828, +0.000000,0.183479,0.983024,0.000000,0.000000,0.183479,0.983024,0.697755,0.227814, +-0.176851,0.243415,0.953663,0.000000,-0.176851,0.243415,0.953663,0.258102,0.333828, +-0.343074,0.111472,0.932670,0.000000,-0.343074,0.111472,0.932670,0.332044,0.458048, +-0.174499,0.056698,0.983024,0.000000,-0.174499,0.056698,0.983024,0.327581,0.368567, +-0.176851,0.243415,0.953663,0.000000,-0.176851,0.243415,0.953663,0.258102,0.333828, +-0.174499,0.056698,0.983024,0.000000,-0.174499,0.056698,0.983024,0.327581,0.368567, +0.000000,0.183479,0.983024,0.000000,0.000000,0.183479,0.983024,0.697755,0.227814, +0.000000,0.525731,0.850651,0.000000,0.000000,0.525731,0.850651,0.734288,0.177530, +-0.176860,0.421262,0.889527,0.000000,-0.176860,0.421262,0.889527,0.345280,0.548954, +0.000000,0.360730,0.932670,0.000000,0.000000,0.360730,0.932670,0.788675,0.406204, +-0.176860,0.421262,0.889527,0.000000,-0.176860,0.421262,0.889527,0.345280,0.548954, +-0.345991,0.298381,0.889527,0.000000,-0.345991,0.298381,0.889527,0.366840,0.638196, +-0.176851,0.243415,0.953663,0.000000,-0.176851,0.243415,0.953663,0.258102,0.333828, +-0.345991,0.298381,0.889527,0.000000,-0.345991,0.298381,0.889527,0.366840,0.638196, +-0.500000,0.162460,0.850651,0.000000,-0.500000,0.162460,0.850651,0.790230,0.268343, +-0.343074,0.111472,0.932670,0.000000,-0.343074,0.111472,0.932670,0.332044,0.458048, +0.000000,0.360730,0.932670,0.000000,0.000000,0.360730,0.932670,0.788675,0.406204, +-0.176860,0.421262,0.889527,0.000000,-0.176860,0.421262,0.889527,0.345280,0.548954, +-0.176851,0.243415,0.953663,0.000000,-0.176851,0.243415,0.953663,0.258102,0.333828, +-0.345991,0.298381,0.889527,0.000000,-0.345991,0.298381,0.889527,0.366840,0.638196, +-0.343074,0.111472,0.932670,0.000000,-0.343074,0.111472,0.932670,0.332044,0.458048, +-0.176851,0.243415,0.953663,0.000000,-0.176851,0.243415,0.953663,0.258102,0.333828, +0.000000,0.672883,0.739749,0.000000,0.000000,0.672883,0.739749,0.258102,0.437784, +-0.176860,0.607223,0.774597,0.000000,-0.176860,0.607223,0.774597,0.500000,0.591739, +0.000000,0.525731,0.850651,0.000000,0.000000,0.525731,0.850651,0.734288,0.177530, +-0.176860,0.607223,0.774597,0.000000,-0.176860,0.607223,0.774597,0.500000,0.591739, +-0.356822,0.491123,0.794654,0.000000,-0.356822,0.491123,0.794654,0.588426,0.621707, +-0.176860,0.421262,0.889527,0.000000,-0.176860,0.421262,0.889527,0.345280,0.548954, +-0.356822,0.491123,0.794654,0.000000,-0.356822,0.491123,0.794654,0.588426,0.621707, +-0.522851,0.355846,0.774597,0.000000,-0.522851,0.355846,0.774597,0.500000,0.680365, +-0.345991,0.298381,0.889527,0.000000,-0.345991,0.298381,0.889527,0.366840,0.638196, +-0.522851,0.355846,0.774597,0.000000,-0.522851,0.355846,0.774597,0.500000,0.680365, +-0.639949,0.207932,0.739749,0.000000,-0.639949,0.207932,0.739749,0.672996,0.649190, +-0.500000,0.162460,0.850651,0.000000,-0.500000,0.162460,0.850651,0.790230,0.268343, +0.000000,0.525731,0.850651,0.000000,0.000000,0.525731,0.850651,0.734288,0.177530, +-0.176860,0.607223,0.774597,0.000000,-0.176860,0.607223,0.774597,0.500000,0.591739, +-0.176860,0.421262,0.889527,0.000000,-0.176860,0.421262,0.889527,0.345280,0.548954, +-0.356822,0.491123,0.794654,0.000000,-0.356822,0.491123,0.794654,0.588426,0.621707, +-0.345991,0.298381,0.889527,0.000000,-0.345991,0.298381,0.889527,0.366840,0.638196, +-0.176860,0.421262,0.889527,0.000000,-0.176860,0.421262,0.889527,0.345280,0.548954, +-0.522851,0.355846,0.774597,0.000000,-0.522851,0.355846,0.774597,0.500000,0.680365, +-0.500000,0.162460,0.850651,0.000000,-0.500000,0.162460,0.850651,0.790230,0.268343, +-0.345991,0.298381,0.889527,0.000000,-0.345991,0.298381,0.889527,0.366840,0.638196, +0.000000,0.797189,0.603730,0.000000,0.000000,0.797189,0.603730,0.881177,0.530876, +-0.176851,0.744124,0.644208,0.000000,-0.176851,0.744124,0.644208,0.588430,0.710631, +0.000000,0.672883,0.739749,0.000000,0.000000,0.672883,0.739749,0.258102,0.437784, +-0.176851,0.744124,0.644208,0.000000,-0.176851,0.744124,0.644208,0.588430,0.710631, +-0.345991,0.662178,0.664689,0.000000,-0.345991,0.662178,0.664689,0.500000,0.762866, +-0.176860,0.607223,0.774597,0.000000,-0.176860,0.607223,0.774597,0.500000,0.591739, +-0.345991,0.662178,0.664689,0.000000,-0.345991,0.662178,0.664689,0.500000,0.762866, +-0.522851,0.533682,0.664689,0.000000,-0.522851,0.533682,0.664689,0.761425,0.677923, +-0.356822,0.491123,0.794654,0.000000,-0.356822,0.491123,0.794654,0.588426,0.621707, +-0.522851,0.533682,0.664689,0.000000,-0.522851,0.533682,0.664689,0.761425,0.677923, +-0.653054,0.398142,0.644208,0.000000,-0.653054,0.398142,0.644208,0.678411,0.745561, +-0.522851,0.355846,0.774597,0.000000,-0.522851,0.355846,0.774597,0.500000,0.680365, +-0.653054,0.398142,0.644208,0.000000,-0.653054,0.398142,0.644208,0.678411,0.745561, +-0.758172,0.246345,0.603730,0.000000,-0.758172,0.246345,0.603730,0.588430,0.803612, +-0.639949,0.207932,0.739749,0.000000,-0.639949,0.207932,0.739749,0.672996,0.649190, +0.000000,0.672883,0.739749,0.000000,0.000000,0.672883,0.739749,0.258102,0.437784, +-0.176851,0.744124,0.644208,0.000000,-0.176851,0.744124,0.644208,0.588430,0.710631, +-0.176860,0.607223,0.774597,0.000000,-0.176860,0.607223,0.774597,0.500000,0.591739, +-0.176860,0.607223,0.774597,0.000000,-0.176860,0.607223,0.774597,0.500000,0.591739, +-0.345991,0.662178,0.664689,0.000000,-0.345991,0.662178,0.664689,0.500000,0.762866, +-0.356822,0.491123,0.794654,0.000000,-0.356822,0.491123,0.794654,0.588426,0.621707, +-0.522851,0.533682,0.664689,0.000000,-0.522851,0.533682,0.664689,0.761425,0.677923, +-0.522851,0.355846,0.774597,0.000000,-0.522851,0.355846,0.774597,0.500000,0.680365, +-0.356822,0.491123,0.794654,0.000000,-0.356822,0.491123,0.794654,0.588426,0.621707, +-0.653054,0.398142,0.644208,0.000000,-0.653054,0.398142,0.644208,0.678411,0.745561, +-0.639949,0.207932,0.739749,0.000000,-0.639949,0.207932,0.739749,0.672996,0.649190, +-0.522851,0.355846,0.774597,0.000000,-0.522851,0.355846,0.774597,0.500000,0.680365, +0.000000,0.894427,0.447214,0.000000,0.000000,0.894427,0.447214,0.268343,0.250971, +-0.174499,0.853887,0.490334,0.000000,-0.174499,0.853887,0.490334,0.500000,0.836442, +0.000000,0.797189,0.603730,0.000000,0.000000,0.797189,0.603730,0.881177,0.530876, +-0.174499,0.853887,0.490334,0.000000,-0.174499,0.853887,0.490334,0.500000,0.836442, +-0.343074,0.784354,0.516806,0.000000,-0.343074,0.784354,0.516806,0.268343,0.699071, +-0.176851,0.744124,0.644208,0.000000,-0.176851,0.744124,0.644208,0.588430,0.710631, +-0.343074,0.784354,0.516806,0.000000,-0.343074,0.784354,0.516806,0.268343,0.699071, +-0.500000,0.688191,0.525731,0.000000,-0.500000,0.688191,0.525731,0.826527,0.699071, +-0.345991,0.662178,0.664689,0.000000,-0.345991,0.662178,0.664689,0.500000,0.762866, +-0.500000,0.688191,0.525731,0.000000,-0.500000,0.688191,0.525731,0.826527,0.699071, +-0.639949,0.568662,0.516806,0.000000,-0.639949,0.568662,0.516806,0.761425,0.766840, +-0.522851,0.533682,0.664689,0.000000,-0.522851,0.533682,0.664689,0.761425,0.677923, +-0.639949,0.568662,0.516806,0.000000,-0.639949,0.568662,0.516806,0.761425,0.766840, +-0.758172,0.429824,0.490334,0.000000,-0.758172,0.429824,0.490334,0.672996,0.831089, +-0.653054,0.398142,0.644208,0.000000,-0.653054,0.398142,0.644208,0.678411,0.745561, +-0.758172,0.429824,0.490334,0.000000,-0.758172,0.429824,0.490334,0.672996,0.831089, +-0.850651,0.276393,0.447214,0.000000,-0.850651,0.276393,0.447214,0.588426,0.872062, +-0.758172,0.246345,0.603730,0.000000,-0.758172,0.246345,0.603730,0.588430,0.803612, +0.000000,0.797189,0.603730,0.000000,0.000000,0.797189,0.603730,0.881177,0.530876, +-0.174499,0.853887,0.490334,0.000000,-0.174499,0.853887,0.490334,0.500000,0.836442, +-0.176851,0.744124,0.644208,0.000000,-0.176851,0.744124,0.644208,0.588430,0.710631, +-0.176851,0.744124,0.644208,0.000000,-0.176851,0.744124,0.644208,0.588430,0.710631, +-0.343074,0.784354,0.516806,0.000000,-0.343074,0.784354,0.516806,0.268343,0.699071, +-0.345991,0.662178,0.664689,0.000000,-0.345991,0.662178,0.664689,0.500000,0.762866, +-0.500000,0.688191,0.525731,0.000000,-0.500000,0.688191,0.525731,0.826527,0.699071, +-0.522851,0.533682,0.664689,0.000000,-0.522851,0.533682,0.664689,0.761425,0.677923, +-0.345991,0.662178,0.664689,0.000000,-0.345991,0.662178,0.664689,0.500000,0.762866, +-0.639949,0.568662,0.516806,0.000000,-0.639949,0.568662,0.516806,0.761425,0.766840, +-0.653054,0.398142,0.644208,0.000000,-0.653054,0.398142,0.644208,0.678411,0.745561, +-0.522851,0.533682,0.664689,0.000000,-0.522851,0.533682,0.664689,0.761425,0.677923, +-0.758172,0.429824,0.490334,0.000000,-0.758172,0.429824,0.490334,0.672996,0.831089, +-0.758172,0.246345,0.603730,0.000000,-0.758172,0.246345,0.603730,0.588430,0.803612, +-0.653054,0.398142,0.644208,0.000000,-0.653054,0.398142,0.644208,0.678411,0.745561, +-0.174499,0.056698,0.983024,0.000000,-0.174499,0.056698,0.983024,0.327581,0.368567, +-0.107846,-0.148438,0.983024,0.000000,-0.107846,-0.148438,0.983024,0.588426,0.268343, +0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.411570,0.289369, +-0.343074,0.111472,0.932670,0.000000,-0.343074,0.111472,0.932670,0.332044,0.458048, +-0.286151,-0.092976,0.953663,0.000000,-0.286151,-0.092976,0.953663,0.500000,0.288582, +-0.174499,0.056698,0.983024,0.000000,-0.174499,0.056698,0.983024,0.327581,0.368567, +-0.286151,-0.092976,0.953663,0.000000,-0.286151,-0.092976,0.953663,0.500000,0.288582, +-0.212032,-0.291836,0.932670,0.000000,-0.212032,-0.291836,0.932670,0.500000,0.220572, +-0.107846,-0.148438,0.983024,0.000000,-0.107846,-0.148438,0.983024,0.588426,0.268343, +-0.286151,-0.092976,0.953663,0.000000,-0.286151,-0.092976,0.953663,0.500000,0.288582, +-0.107846,-0.148438,0.983024,0.000000,-0.107846,-0.148438,0.983024,0.588426,0.268343, +-0.174499,0.056698,0.983024,0.000000,-0.174499,0.056698,0.983024,0.327581,0.368567, +-0.500000,0.162460,0.850651,0.000000,-0.500000,0.162460,0.850651,0.790230,0.268343, +-0.455297,-0.038026,0.889527,0.000000,-0.455297,-0.038026,0.889527,0.345280,0.714912, +-0.343074,0.111472,0.932670,0.000000,-0.343074,0.111472,0.932670,0.332044,0.458048, +-0.455297,-0.038026,0.889527,0.000000,-0.455297,-0.038026,0.889527,0.345280,0.714912, +-0.390694,-0.236853,0.889527,0.000000,-0.390694,-0.236853,0.889527,0.332044,0.784331, +-0.286151,-0.092976,0.953663,0.000000,-0.286151,-0.092976,0.953663,0.500000,0.288582, +-0.390694,-0.236853,0.889527,0.000000,-0.390694,-0.236853,0.889527,0.332044,0.784331, +-0.309017,-0.425325,0.850651,0.000000,-0.309017,-0.425325,0.850651,0.819975,0.332044, +-0.212032,-0.291836,0.932670,0.000000,-0.212032,-0.291836,0.932670,0.500000,0.220572, +-0.343074,0.111472,0.932670,0.000000,-0.343074,0.111472,0.932670,0.332044,0.458048, +-0.455297,-0.038026,0.889527,0.000000,-0.455297,-0.038026,0.889527,0.345280,0.714912, +-0.286151,-0.092976,0.953663,0.000000,-0.286151,-0.092976,0.953663,0.500000,0.288582, +-0.390694,-0.236853,0.889527,0.000000,-0.390694,-0.236853,0.889527,0.332044,0.784331, +-0.212032,-0.291836,0.932670,0.000000,-0.212032,-0.291836,0.932670,0.500000,0.220572, +-0.286151,-0.092976,0.953663,0.000000,-0.286151,-0.092976,0.953663,0.500000,0.288582, +-0.639949,0.207932,0.739749,0.000000,-0.639949,0.207932,0.739749,0.672996,0.649190, +-0.632156,0.019439,0.774597,0.000000,-0.632156,0.019439,0.774597,0.750000,0.327581, +-0.500000,0.162460,0.850651,0.000000,-0.500000,0.162460,0.850651,0.790230,0.268343, +-0.632156,0.019439,0.774597,0.000000,-0.632156,0.019439,0.774597,0.750000,0.327581, +-0.577350,-0.187592,0.794654,0.000000,-0.577350,-0.187592,0.794654,0.761425,0.258102, +-0.455297,-0.038026,0.889527,0.000000,-0.455297,-0.038026,0.889527,0.345280,0.714912, +-0.577350,-0.187592,0.794654,0.000000,-0.577350,-0.187592,0.794654,0.761425,0.258102, +-0.499999,-0.387298,0.774597,0.000000,-0.499999,-0.387298,0.774597,0.671537,0.332044, +-0.390694,-0.236853,0.889527,0.000000,-0.390694,-0.236853,0.889527,0.332044,0.784331, +-0.499999,-0.387298,0.774597,0.000000,-0.499999,-0.387298,0.774597,0.671537,0.332044, +-0.395511,-0.544373,0.739749,0.000000,-0.395511,-0.544373,0.739749,0.672996,0.258102, +-0.309017,-0.425325,0.850651,0.000000,-0.309017,-0.425325,0.850651,0.819975,0.332044, +-0.500000,0.162460,0.850651,0.000000,-0.500000,0.162460,0.850651,0.790230,0.268343, +-0.632156,0.019439,0.774597,0.000000,-0.632156,0.019439,0.774597,0.750000,0.327581, +-0.455297,-0.038026,0.889527,0.000000,-0.455297,-0.038026,0.889527,0.345280,0.714912, +-0.577350,-0.187592,0.794654,0.000000,-0.577350,-0.187592,0.794654,0.761425,0.258102, +-0.390694,-0.236853,0.889527,0.000000,-0.390694,-0.236853,0.889527,0.332044,0.784331, +-0.455297,-0.038026,0.889527,0.000000,-0.455297,-0.038026,0.889527,0.345280,0.714912, +-0.499999,-0.387298,0.774597,0.000000,-0.499999,-0.387298,0.774597,0.671537,0.332044, +-0.309017,-0.425325,0.850651,0.000000,-0.309017,-0.425325,0.850651,0.819975,0.332044, +-0.390694,-0.236853,0.889527,0.000000,-0.390694,-0.236853,0.889527,0.332044,0.784331, +-0.758172,0.246345,0.603730,0.000000,-0.758172,0.246345,0.603730,0.588430,0.803612, +-0.762354,0.061752,0.644208,0.000000,-0.762354,0.061752,0.644208,0.587250,0.345280, +-0.639949,0.207932,0.739749,0.000000,-0.639949,0.207932,0.739749,0.672996,0.649190, +-0.762354,0.061752,0.644208,0.000000,-0.762354,0.061752,0.644208,0.587250,0.345280, +-0.736686,-0.124433,0.664689,0.000000,-0.736686,-0.124433,0.664689,0.500000,0.366840, +-0.632156,0.019439,0.774597,0.000000,-0.632156,0.019439,0.774597,0.750000,0.327581, +-0.736686,-0.124433,0.664689,0.000000,-0.736686,-0.124433,0.664689,0.500000,0.366840, +-0.669131,-0.332344,0.664689,0.000000,-0.669131,-0.332344,0.664689,0.258102,0.766840, +-0.577350,-0.187592,0.794654,0.000000,-0.577350,-0.187592,0.794654,0.761425,0.258102, +-0.669131,-0.332344,0.664689,0.000000,-0.669131,-0.332344,0.664689,0.258102,0.766840, +-0.580461,-0.498058,0.644208,0.000000,-0.580461,-0.498058,0.644208,0.412750,0.528349, +-0.499999,-0.387298,0.774597,0.000000,-0.499999,-0.387298,0.774597,0.671537,0.332044, +-0.580461,-0.498058,0.644208,0.000000,-0.580461,-0.498058,0.644208,0.412750,0.528349, +-0.468576,-0.644939,0.603730,0.000000,-0.468576,-0.644939,0.603730,0.411574,0.621707, +-0.395511,-0.544373,0.739749,0.000000,-0.395511,-0.544373,0.739749,0.672996,0.258102, +-0.639949,0.207932,0.739749,0.000000,-0.639949,0.207932,0.739749,0.672996,0.649190, +-0.762354,0.061752,0.644208,0.000000,-0.762354,0.061752,0.644208,0.587250,0.345280, +-0.632156,0.019439,0.774597,0.000000,-0.632156,0.019439,0.774597,0.750000,0.327581, +-0.632156,0.019439,0.774597,0.000000,-0.632156,0.019439,0.774597,0.750000,0.327581, +-0.736686,-0.124433,0.664689,0.000000,-0.736686,-0.124433,0.664689,0.500000,0.366840, +-0.577350,-0.187592,0.794654,0.000000,-0.577350,-0.187592,0.794654,0.761425,0.258102, +-0.669131,-0.332344,0.664689,0.000000,-0.669131,-0.332344,0.664689,0.258102,0.766840, +-0.499999,-0.387298,0.774597,0.000000,-0.499999,-0.387298,0.774597,0.671537,0.332044, +-0.577350,-0.187592,0.794654,0.000000,-0.577350,-0.187592,0.794654,0.761425,0.258102, +-0.580461,-0.498058,0.644208,0.000000,-0.580461,-0.498058,0.644208,0.412750,0.528349, +-0.395511,-0.544373,0.739749,0.000000,-0.395511,-0.544373,0.739749,0.672996,0.258102, +-0.499999,-0.387298,0.774597,0.000000,-0.499999,-0.387298,0.774597,0.671537,0.332044, +-0.850651,0.276393,0.447214,0.000000,-0.850651,0.276393,0.447214,0.588426,0.872062, +-0.866018,0.097907,0.490334,0.000000,-0.866018,0.097907,0.490334,0.328463,0.555736, +-0.758172,0.246345,0.603730,0.000000,-0.758172,0.246345,0.603730,0.588430,0.803612, +-0.866018,0.097907,0.490334,0.000000,-0.866018,0.097907,0.490334,0.328463,0.555736, +-0.851981,-0.083904,0.516806,0.000000,-0.851981,-0.083904,0.516806,0.411570,0.710631, +-0.762354,0.061752,0.644208,0.000000,-0.762354,0.061752,0.644208,0.587250,0.345280, +-0.851981,-0.083904,0.516806,0.000000,-0.851981,-0.083904,0.516806,0.411570,0.710631, +-0.809017,-0.262865,0.525731,0.000000,-0.809017,-0.262865,0.525731,0.327004,0.649190, +-0.736686,-0.124433,0.664689,0.000000,-0.736686,-0.124433,0.664689,0.500000,0.366840, +-0.809017,-0.262865,0.525731,0.000000,-0.809017,-0.262865,0.525731,0.327004,0.649190, +-0.738585,-0.432902,0.516806,0.000000,-0.738585,-0.432902,0.516806,0.250000,0.581230, +-0.669131,-0.332344,0.664689,0.000000,-0.669131,-0.332344,0.664689,0.258102,0.766840, +-0.738585,-0.432902,0.516806,0.000000,-0.738585,-0.432902,0.516806,0.250000,0.581230, +-0.643075,-0.588241,0.490334,0.000000,-0.643075,-0.588241,0.490334,0.411570,0.803612, +-0.580461,-0.498058,0.644208,0.000000,-0.580461,-0.498058,0.644208,0.412750,0.528349, +-0.643075,-0.588241,0.490334,0.000000,-0.643075,-0.588241,0.490334,0.411570,0.803612, +-0.525731,-0.723607,0.447214,0.000000,-0.525731,-0.723607,0.447214,0.321589,0.745561, +-0.468576,-0.644939,0.603730,0.000000,-0.468576,-0.644939,0.603730,0.411574,0.621707, +-0.758172,0.246345,0.603730,0.000000,-0.758172,0.246345,0.603730,0.588430,0.803612, +-0.866018,0.097907,0.490334,0.000000,-0.866018,0.097907,0.490334,0.328463,0.555736, +-0.762354,0.061752,0.644208,0.000000,-0.762354,0.061752,0.644208,0.587250,0.345280, +-0.762354,0.061752,0.644208,0.000000,-0.762354,0.061752,0.644208,0.587250,0.345280, +-0.851981,-0.083904,0.516806,0.000000,-0.851981,-0.083904,0.516806,0.411570,0.710631, +-0.736686,-0.124433,0.664689,0.000000,-0.736686,-0.124433,0.664689,0.500000,0.366840, +-0.809017,-0.262865,0.525731,0.000000,-0.809017,-0.262865,0.525731,0.327004,0.649190, +-0.669131,-0.332344,0.664689,0.000000,-0.669131,-0.332344,0.664689,0.258102,0.766840, +-0.736686,-0.124433,0.664689,0.000000,-0.736686,-0.124433,0.664689,0.500000,0.366840, +-0.738585,-0.432902,0.516806,0.000000,-0.738585,-0.432902,0.516806,0.250000,0.581230, +-0.580461,-0.498058,0.644208,0.000000,-0.580461,-0.498058,0.644208,0.412750,0.528349, +-0.669131,-0.332344,0.664689,0.000000,-0.669131,-0.332344,0.664689,0.258102,0.766840, +-0.643075,-0.588241,0.490334,0.000000,-0.643075,-0.588241,0.490334,0.411570,0.803612, +-0.468576,-0.644939,0.603730,0.000000,-0.468576,-0.644939,0.603730,0.411574,0.621707, +-0.580461,-0.498058,0.644208,0.000000,-0.580461,-0.498058,0.644208,0.412750,0.528349, +-0.107846,-0.148438,0.983024,0.000000,-0.107846,-0.148438,0.983024,0.588426,0.268343, +0.107846,-0.148438,0.983024,0.000000,0.107846,-0.148438,0.983024,0.209770,0.912551, +0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.411570,0.289369, +-0.212032,-0.291836,0.932670,0.000000,-0.212032,-0.291836,0.932670,0.500000,0.220572, +-0.000000,-0.300877,0.953663,0.000000,-0.000000,-0.300877,0.953663,0.238575,0.677923, +-0.107846,-0.148438,0.983024,0.000000,-0.107846,-0.148438,0.983024,0.588426,0.268343, +-0.000000,-0.300877,0.953663,0.000000,-0.000000,-0.300877,0.953663,0.238575,0.677923, +0.212032,-0.291836,0.932670,0.000000,0.212032,-0.291836,0.932670,0.327004,0.350810, +0.107846,-0.148438,0.983024,0.000000,0.107846,-0.148438,0.983024,0.209770,0.912551, +-0.000000,-0.300877,0.953663,0.000000,-0.000000,-0.300877,0.953663,0.238575,0.677923, +0.107846,-0.148438,0.983024,0.000000,0.107846,-0.148438,0.983024,0.209770,0.912551, +-0.107846,-0.148438,0.983024,0.000000,-0.107846,-0.148438,0.983024,0.588426,0.268343, +-0.309017,-0.425325,0.850651,0.000000,-0.309017,-0.425325,0.850651,0.819975,0.332044, +-0.104529,-0.444764,0.889527,0.000000,-0.104529,-0.444764,0.889527,0.180025,0.603966, +-0.212032,-0.291836,0.932670,0.000000,-0.212032,-0.291836,0.932670,0.500000,0.220572, +-0.104529,-0.444764,0.889527,0.000000,-0.104529,-0.444764,0.889527,0.180025,0.603966, +0.104529,-0.444764,0.889527,0.000000,0.104529,-0.444764,0.889527,0.411574,0.268343, +-0.000000,-0.300877,0.953663,0.000000,-0.000000,-0.300877,0.953663,0.238575,0.677923, +0.104529,-0.444764,0.889527,0.000000,0.104529,-0.444764,0.889527,0.411574,0.268343, +0.309017,-0.425325,0.850651,0.000000,0.309017,-0.425325,0.850651,0.238575,0.322077, +0.212032,-0.291836,0.932670,0.000000,0.212032,-0.291836,0.932670,0.327004,0.350810, +-0.212032,-0.291836,0.932670,0.000000,-0.212032,-0.291836,0.932670,0.500000,0.220572, +-0.104529,-0.444764,0.889527,0.000000,-0.104529,-0.444764,0.889527,0.180025,0.603966, +-0.000000,-0.300877,0.953663,0.000000,-0.000000,-0.300877,0.953663,0.238575,0.677923, +0.104529,-0.444764,0.889527,0.000000,0.104529,-0.444764,0.889527,0.411574,0.268343, +0.212032,-0.291836,0.932670,0.000000,0.212032,-0.291836,0.932670,0.327004,0.350810, +-0.000000,-0.300877,0.953663,0.000000,-0.000000,-0.300877,0.953663,0.238575,0.677923, +-0.395511,-0.544373,0.739749,0.000000,-0.395511,-0.544373,0.739749,0.672996,0.258102, +-0.213835,-0.595209,0.774597,0.000000,-0.213835,-0.595209,0.774597,0.411574,0.872062, +-0.309017,-0.425325,0.850651,0.000000,-0.309017,-0.425325,0.850651,0.819975,0.332044, +-0.213835,-0.595209,0.774597,0.000000,-0.213835,-0.595209,0.774597,0.411574,0.872062, +-0.000000,-0.607062,0.794655,0.000000,-0.000000,-0.607062,0.794655,0.327004,0.831089, +-0.104529,-0.444764,0.889527,0.000000,-0.104529,-0.444764,0.889527,0.180025,0.603966, +-0.000000,-0.607062,0.794655,0.000000,-0.000000,-0.607062,0.794655,0.327004,0.831089, +0.213834,-0.595209,0.774597,0.000000,0.213834,-0.595209,0.774597,0.238575,0.766841, +0.104529,-0.444764,0.889527,0.000000,0.104529,-0.444764,0.889527,0.411574,0.268343, +0.213834,-0.595209,0.774597,0.000000,0.213834,-0.595209,0.774597,0.238575,0.766841, +0.395510,-0.544373,0.739749,0.000000,0.395510,-0.544373,0.739749,0.238575,0.233160, +0.309017,-0.425325,0.850651,0.000000,0.309017,-0.425325,0.850651,0.238575,0.322077, +-0.309017,-0.425325,0.850651,0.000000,-0.309017,-0.425325,0.850651,0.819975,0.332044, +-0.213835,-0.595209,0.774597,0.000000,-0.213835,-0.595209,0.774597,0.411574,0.872062, +-0.104529,-0.444764,0.889527,0.000000,-0.104529,-0.444764,0.889527,0.180025,0.603966, +-0.000000,-0.607062,0.794655,0.000000,-0.000000,-0.607062,0.794655,0.327004,0.831089, +0.104529,-0.444764,0.889527,0.000000,0.104529,-0.444764,0.889527,0.411574,0.268343, +-0.104529,-0.444764,0.889527,0.000000,-0.104529,-0.444764,0.889527,0.180025,0.603966, +0.213834,-0.595209,0.774597,0.000000,0.213834,-0.595209,0.774597,0.238575,0.766841, +0.309017,-0.425325,0.850651,0.000000,0.309017,-0.425325,0.850651,0.238575,0.322077, +0.104529,-0.444764,0.889527,0.000000,0.104529,-0.444764,0.889527,0.411574,0.268343, +-0.468576,-0.644939,0.603730,0.000000,-0.468576,-0.644939,0.603730,0.411574,0.621707, +-0.294310,-0.705959,0.644208,0.000000,-0.294310,-0.705959,0.644208,0.173473,0.699071, +-0.395511,-0.544373,0.739749,0.000000,-0.395511,-0.544373,0.739749,0.672996,0.258102, +-0.294310,-0.705959,0.644208,0.000000,-0.294310,-0.705959,0.644208,0.173473,0.699071, +-0.109305,-0.739082,0.664689,0.000000,-0.109305,-0.739082,0.664689,0.412750,0.345280, +-0.213835,-0.595209,0.774597,0.000000,-0.213835,-0.595209,0.774597,0.411574,0.872062, +-0.109305,-0.739082,0.664689,0.000000,-0.109305,-0.739082,0.664689,0.412750,0.345280, +0.109305,-0.739082,0.664689,0.000000,0.109305,-0.739082,0.664689,0.328463,0.332044, +-0.000000,-0.607062,0.794655,0.000000,-0.000000,-0.607062,0.794655,0.327004,0.831089, +0.109305,-0.739082,0.664689,0.000000,0.109305,-0.739082,0.664689,0.328463,0.332044, +0.294309,-0.705959,0.644208,0.000000,0.294309,-0.705959,0.644208,0.250000,0.327581, +0.213834,-0.595209,0.774597,0.000000,0.213834,-0.595209,0.774597,0.238575,0.766841, +0.294309,-0.705959,0.644208,0.000000,0.294309,-0.705959,0.644208,0.250000,0.327581, +0.468576,-0.644939,0.603730,0.000000,0.468576,-0.644939,0.603730,0.327004,0.922791, +0.395510,-0.544373,0.739749,0.000000,0.395510,-0.544373,0.739749,0.238575,0.233160, +-0.395511,-0.544373,0.739749,0.000000,-0.395511,-0.544373,0.739749,0.672996,0.258102, +-0.294310,-0.705959,0.644208,0.000000,-0.294310,-0.705959,0.644208,0.173473,0.699071, +-0.213835,-0.595209,0.774597,0.000000,-0.213835,-0.595209,0.774597,0.411574,0.872062, +-0.213835,-0.595209,0.774597,0.000000,-0.213835,-0.595209,0.774597,0.411574,0.872062, +-0.109305,-0.739082,0.664689,0.000000,-0.109305,-0.739082,0.664689,0.412750,0.345280, +-0.000000,-0.607062,0.794655,0.000000,-0.000000,-0.607062,0.794655,0.327004,0.831089, +0.109305,-0.739082,0.664689,0.000000,0.109305,-0.739082,0.664689,0.328463,0.332044, +0.213834,-0.595209,0.774597,0.000000,0.213834,-0.595209,0.774597,0.238575,0.766841, +-0.000000,-0.607062,0.794655,0.000000,-0.000000,-0.607062,0.794655,0.327004,0.831089, +0.294309,-0.705959,0.644208,0.000000,0.294309,-0.705959,0.644208,0.250000,0.327581, +0.395510,-0.544373,0.739749,0.000000,0.395510,-0.544373,0.739749,0.238575,0.233160, +0.213834,-0.595209,0.774597,0.000000,0.213834,-0.595209,0.774597,0.238575,0.766841, +-0.525731,-0.723607,0.447214,0.000000,-0.525731,-0.723607,0.447214,0.321589,0.745561, +-0.360730,-0.793377,0.490334,0.000000,-0.360730,-0.793377,0.490334,0.327004,0.258102, +-0.468576,-0.644939,0.603730,0.000000,-0.468576,-0.644939,0.603730,0.411574,0.621707, +-0.360730,-0.793377,0.490334,0.000000,-0.360730,-0.793377,0.490334,0.327004,0.258102, +-0.183479,-0.836210,0.516806,0.000000,-0.183479,-0.836210,0.516806,0.180025,0.332044, +-0.294310,-0.705959,0.644208,0.000000,-0.294310,-0.705959,0.644208,0.173473,0.699071, +-0.183479,-0.836210,0.516806,0.000000,-0.183479,-0.836210,0.516806,0.180025,0.332044, +-0.000000,-0.850651,0.525731,0.000000,-0.000000,-0.850651,0.525731,0.238575,0.258102, +-0.109305,-0.739082,0.664689,0.000000,-0.109305,-0.739082,0.664689,0.412750,0.345280, +-0.000000,-0.850651,0.525731,0.000000,-0.000000,-0.850651,0.525731,0.238575,0.258102, +0.183479,-0.836210,0.516806,0.000000,0.183479,-0.836210,0.516806,0.258102,0.766841, +0.109305,-0.739082,0.664689,0.000000,0.109305,-0.739082,0.664689,0.328463,0.332044, +0.183479,-0.836210,0.516806,0.000000,0.183479,-0.836210,0.516806,0.258102,0.766841, +0.360730,-0.793377,0.490334,0.000000,0.360730,-0.793377,0.490334,0.446077,0.425781, +0.294309,-0.705959,0.644208,0.000000,0.294309,-0.705959,0.644208,0.250000,0.327581, +0.360730,-0.793377,0.490334,0.000000,0.360730,-0.793377,0.490334,0.446077,0.425781, +0.525731,-0.723607,0.447214,0.000000,0.525731,-0.723607,0.447214,0.606016,0.354082, +0.468576,-0.644939,0.603730,0.000000,0.468576,-0.644939,0.603730,0.327004,0.922791, +-0.468576,-0.644939,0.603730,0.000000,-0.468576,-0.644939,0.603730,0.411574,0.621707, +-0.360730,-0.793377,0.490334,0.000000,-0.360730,-0.793377,0.490334,0.327004,0.258102, +-0.294310,-0.705959,0.644208,0.000000,-0.294310,-0.705959,0.644208,0.173473,0.699071, +-0.294310,-0.705959,0.644208,0.000000,-0.294310,-0.705959,0.644208,0.173473,0.699071, +-0.183479,-0.836210,0.516806,0.000000,-0.183479,-0.836210,0.516806,0.180025,0.332044, +-0.109305,-0.739082,0.664689,0.000000,-0.109305,-0.739082,0.664689,0.412750,0.345280, +-0.109305,-0.739082,0.664689,0.000000,-0.109305,-0.739082,0.664689,0.412750,0.345280, +-0.000000,-0.850651,0.525731,0.000000,-0.000000,-0.850651,0.525731,0.238575,0.258102, +0.109305,-0.739082,0.664689,0.000000,0.109305,-0.739082,0.664689,0.328463,0.332044, +0.183479,-0.836210,0.516806,0.000000,0.183479,-0.836210,0.516806,0.258102,0.766841, +0.294309,-0.705959,0.644208,0.000000,0.294309,-0.705959,0.644208,0.250000,0.327581, +0.109305,-0.739082,0.664689,0.000000,0.109305,-0.739082,0.664689,0.328463,0.332044, +0.360730,-0.793377,0.490334,0.000000,0.360730,-0.793377,0.490334,0.446077,0.425781, +0.468576,-0.644939,0.603730,0.000000,0.468576,-0.644939,0.603730,0.327004,0.922791, +0.294309,-0.705959,0.644208,0.000000,0.294309,-0.705959,0.644208,0.250000,0.327581, +0.000000,-0.894427,-0.447214,0.000000,0.000000,-0.894427,-0.447214,0.848850,0.215669, +0.174499,-0.853887,-0.490334,0.000000,0.174499,-0.853887,-0.490334,0.814054,0.361804, +0.107846,-0.945626,-0.306855,0.000000,0.107846,-0.945626,-0.306855,0.356925,0.453512, +0.174499,-0.853887,-0.490334,0.000000,0.174499,-0.853887,-0.490334,0.814054,0.361804, +0.343074,-0.784354,-0.516806,0.000000,0.343074,-0.784354,-0.516806,0.835614,0.285088, +0.286151,-0.894562,-0.343331,0.000000,0.286151,-0.894562,-0.343331,0.393984,0.354082, +0.107846,-0.945626,-0.306855,0.000000,0.107846,-0.945626,-0.306855,0.356925,0.453512, +0.286151,-0.894562,-0.343331,0.000000,0.286151,-0.894562,-0.343331,0.393984,0.354082, +0.212032,-0.964719,-0.156077,0.000000,0.212032,-0.964719,-0.156077,0.272352,0.480987, +0.174499,-0.853887,-0.490334,0.000000,0.174499,-0.853887,-0.490334,0.814054,0.361804, +0.286151,-0.894562,-0.343331,0.000000,0.286151,-0.894562,-0.343331,0.393984,0.354082, +0.107846,-0.945626,-0.306855,0.000000,0.107846,-0.945626,-0.306855,0.356925,0.453512, +0.343074,-0.784354,-0.516806,0.000000,0.343074,-0.784354,-0.516806,0.835614,0.285088, +0.500000,-0.688191,-0.525731,0.000000,0.500000,-0.688191,-0.525731,0.500000,0.892312, +0.455297,-0.812623,-0.363797,0.000000,0.455297,-0.812623,-0.363797,0.304653,0.381573, +0.286151,-0.894562,-0.343331,0.000000,0.286151,-0.894562,-0.343331,0.393984,0.354082, +0.455297,-0.812623,-0.363797,0.000000,0.455297,-0.812623,-0.363797,0.304653,0.381573, +0.390694,-0.901541,-0.185961,0.000000,0.390694,-0.901541,-0.185961,0.345491,0.287337, +0.212032,-0.964719,-0.156077,0.000000,0.212032,-0.964719,-0.156077,0.272352,0.480987, +0.390694,-0.901541,-0.185961,0.000000,0.390694,-0.901541,-0.185961,0.345491,0.287337, +0.309017,-0.951057,0.000000,0.000000,0.309017,-0.951057,0.000000,0.183922,0.509719, +0.343074,-0.784354,-0.516806,0.000000,0.343074,-0.784354,-0.516806,0.835614,0.285088, +0.455297,-0.812623,-0.363797,0.000000,0.455297,-0.812623,-0.363797,0.304653,0.381573, +0.286151,-0.894562,-0.343331,0.000000,0.286151,-0.894562,-0.343331,0.393984,0.354082, +0.286151,-0.894562,-0.343331,0.000000,0.286151,-0.894562,-0.343331,0.393984,0.354082, +0.390694,-0.901541,-0.185961,0.000000,0.390694,-0.901541,-0.185961,0.345491,0.287337, +0.212032,-0.964719,-0.156077,0.000000,0.212032,-0.964719,-0.156077,0.272352,0.480987, +0.500000,-0.688191,-0.525731,0.000000,0.500000,-0.688191,-0.525731,0.500000,0.892312, +0.639949,-0.568662,-0.516806,0.000000,0.639949,-0.568662,-0.516806,0.588426,0.912551, +0.632156,-0.684127,-0.363797,0.000000,0.632156,-0.684127,-0.363797,0.211325,0.406204, +0.455297,-0.812623,-0.363797,0.000000,0.455297,-0.812623,-0.363797,0.304653,0.381573, +0.632156,-0.684127,-0.363797,0.000000,0.632156,-0.684127,-0.363797,0.211325,0.406204, +0.577350,-0.794654,-0.187593,0.000000,0.577350,-0.794654,-0.187593,0.250001,0.306351, +0.390694,-0.901541,-0.185961,0.000000,0.390694,-0.901541,-0.185961,0.345491,0.287337, +0.577350,-0.794654,-0.187593,0.000000,0.577350,-0.794654,-0.187593,0.250001,0.306351, +0.499999,-0.866026,0.000000,0.000000,0.499999,-0.866026,0.000000,0.302244,0.227814, +0.309017,-0.951057,0.000000,0.000000,0.309017,-0.951057,0.000000,0.183922,0.509719, +0.499999,-0.866026,0.000000,0.000000,0.499999,-0.866026,0.000000,0.302244,0.227814, +0.395510,-0.905103,0.156077,0.000000,0.395510,-0.905103,0.156077,0.131657,0.437784, +0.455297,-0.812623,-0.363797,0.000000,0.455297,-0.812623,-0.363797,0.304653,0.381573, +0.500000,-0.688191,-0.525731,0.000000,0.500000,-0.688191,-0.525731,0.500000,0.892312, +0.632156,-0.684127,-0.363797,0.000000,0.632156,-0.684127,-0.363797,0.211325,0.406204, +0.455297,-0.812623,-0.363797,0.000000,0.455297,-0.812623,-0.363797,0.304653,0.381573, +0.577350,-0.794654,-0.187593,0.000000,0.577350,-0.794654,-0.187593,0.250001,0.306351, +0.390694,-0.901541,-0.185961,0.000000,0.390694,-0.901541,-0.185961,0.345491,0.287337, +0.309017,-0.951057,0.000000,0.000000,0.309017,-0.951057,0.000000,0.183922,0.509719, +0.390694,-0.901541,-0.185961,0.000000,0.390694,-0.901541,-0.185961,0.345491,0.287337, +0.499999,-0.866026,0.000000,0.000000,0.499999,-0.866026,0.000000,0.302244,0.227814, +0.639949,-0.568662,-0.516806,0.000000,0.639949,-0.568662,-0.516806,0.588426,0.912551, +0.758172,-0.429824,-0.490334,0.000000,0.758172,-0.429824,-0.490334,0.588426,0.127938, +0.762354,-0.548581,-0.343331,0.000000,0.762354,-0.548581,-0.343331,0.165435,0.333828, +0.632156,-0.684127,-0.363797,0.000000,0.632156,-0.684127,-0.363797,0.211325,0.406204, +0.762354,-0.548581,-0.343331,0.000000,0.762354,-0.548581,-0.343331,0.165435,0.333828, +0.736686,-0.650164,-0.185961,0.000000,0.736686,-0.650164,-0.185961,0.209769,0.250971, +0.577350,-0.794654,-0.187593,0.000000,0.577350,-0.794654,-0.187593,0.250001,0.306351, +0.736686,-0.650164,-0.185961,0.000000,0.736686,-0.650164,-0.185961,0.209769,0.250971, +0.669131,-0.743144,0.000000,0.000000,0.669131,-0.743144,0.000000,0.265712,0.177530, +0.499999,-0.866026,0.000000,0.000000,0.499999,-0.866026,0.000000,0.302244,0.227814, +0.669131,-0.743144,0.000000,0.000000,0.669131,-0.743144,0.000000,0.265712,0.177530, +0.580460,-0.798935,0.157379,0.000000,0.580460,-0.798935,0.157379,0.118823,0.530876, +0.395510,-0.905103,0.156077,0.000000,0.395510,-0.905103,0.156077,0.131657,0.437784, +0.580460,-0.798935,0.157379,0.000000,0.580460,-0.798935,0.157379,0.118823,0.530876, +0.468576,-0.828418,0.306855,0.000000,0.468576,-0.828418,0.306855,0.178463,0.345280, +0.632156,-0.684127,-0.363797,0.000000,0.632156,-0.684127,-0.363797,0.211325,0.406204, +0.639949,-0.568662,-0.516806,0.000000,0.639949,-0.568662,-0.516806,0.588426,0.912551, +0.762354,-0.548581,-0.343331,0.000000,0.762354,-0.548581,-0.343331,0.165435,0.333828, +0.577350,-0.794654,-0.187593,0.000000,0.577350,-0.794654,-0.187593,0.250001,0.306351, +0.632156,-0.684127,-0.363797,0.000000,0.632156,-0.684127,-0.363797,0.211325,0.406204, +0.736686,-0.650164,-0.185961,0.000000,0.736686,-0.650164,-0.185961,0.209769,0.250971, +0.499999,-0.866026,0.000000,0.000000,0.499999,-0.866026,0.000000,0.302244,0.227814, +0.577350,-0.794654,-0.187593,0.000000,0.577350,-0.794654,-0.187593,0.250001,0.306351, +0.669131,-0.743144,0.000000,0.000000,0.669131,-0.743144,0.000000,0.265712,0.177530, +0.395510,-0.905103,0.156077,0.000000,0.395510,-0.905103,0.156077,0.131657,0.437784, +0.499999,-0.866026,0.000000,0.000000,0.499999,-0.866026,0.000000,0.302244,0.227814, +0.580460,-0.798935,0.157379,0.000000,0.580460,-0.798935,0.157379,0.118823,0.530876, +0.758172,-0.429824,-0.490334,0.000000,0.758172,-0.429824,-0.490334,0.588426,0.127938, +0.850651,-0.276393,-0.447214,0.000000,0.850651,-0.276393,-0.447214,0.500000,0.960321, +0.866018,-0.394782,-0.306855,0.000000,0.866018,-0.394782,-0.306855,0.237134,0.366840, +0.762354,-0.548581,-0.343331,0.000000,0.762354,-0.548581,-0.343331,0.165435,0.333828, +0.866018,-0.394782,-0.306855,0.000000,0.866018,-0.394782,-0.306855,0.237134,0.366840, +0.851981,-0.499769,-0.156077,0.000000,0.851981,-0.499769,-0.156077,0.265712,0.288582, +0.736686,-0.650164,-0.185961,0.000000,0.736686,-0.650164,-0.185961,0.209769,0.250971, +0.851981,-0.499769,-0.156077,0.000000,0.851981,-0.499769,-0.156077,0.265712,0.288582, +0.809017,-0.587785,0.000000,0.000000,0.809017,-0.587785,0.000000,0.209769,0.268343, +0.669131,-0.743144,0.000000,0.000000,0.669131,-0.743144,0.000000,0.265712,0.177530, +0.809017,-0.587785,0.000000,0.000000,0.809017,-0.587785,0.000000,0.209769,0.268343, +0.738585,-0.655845,0.156077,0.000000,0.738585,-0.655845,0.156077,0.500000,0.349562, +0.580460,-0.798935,0.157379,0.000000,0.580460,-0.798935,0.157379,0.118823,0.530876, +0.738585,-0.655845,0.156077,0.000000,0.738585,-0.655845,0.156077,0.500000,0.349562, +0.643075,-0.701637,0.306855,0.000000,0.643075,-0.701637,0.306855,0.447735,0.277618, +0.468576,-0.828418,0.306855,0.000000,0.468576,-0.828418,0.306855,0.178463,0.345280, +0.643075,-0.701637,0.306855,0.000000,0.643075,-0.701637,0.306855,0.447735,0.277618, +0.525731,-0.723607,0.447214,0.000000,0.525731,-0.723607,0.447214,0.606016,0.354082, +0.762354,-0.548581,-0.343331,0.000000,0.762354,-0.548581,-0.343331,0.165435,0.333828, +0.758172,-0.429824,-0.490334,0.000000,0.758172,-0.429824,-0.490334,0.588426,0.127938, +0.866018,-0.394782,-0.306855,0.000000,0.866018,-0.394782,-0.306855,0.237134,0.366840, +0.736686,-0.650164,-0.185961,0.000000,0.736686,-0.650164,-0.185961,0.209769,0.250971, +0.762354,-0.548581,-0.343331,0.000000,0.762354,-0.548581,-0.343331,0.165435,0.333828, +0.851981,-0.499769,-0.156077,0.000000,0.851981,-0.499769,-0.156077,0.265712,0.288582, +0.669131,-0.743144,0.000000,0.000000,0.669131,-0.743144,0.000000,0.265712,0.177530, +0.736686,-0.650164,-0.185961,0.000000,0.736686,-0.650164,-0.185961,0.209769,0.250971, +0.809017,-0.587785,0.000000,0.000000,0.809017,-0.587785,0.000000,0.209769,0.268343, +0.669131,-0.743144,0.000000,0.000000,0.669131,-0.743144,0.000000,0.265712,0.177530, +0.738585,-0.655845,0.156077,0.000000,0.738585,-0.655845,0.156077,0.500000,0.349562, +0.580460,-0.798935,0.157379,0.000000,0.580460,-0.798935,0.157379,0.118823,0.530876, +0.468576,-0.828418,0.306855,0.000000,0.468576,-0.828418,0.306855,0.178463,0.345280, +0.580460,-0.798935,0.157379,0.000000,0.580460,-0.798935,0.157379,0.118823,0.530876, +0.643075,-0.701637,0.306855,0.000000,0.643075,-0.701637,0.306855,0.447735,0.277618, +0.850651,-0.276393,-0.447214,0.000000,0.850651,-0.276393,-0.447214,0.500000,0.960321, +0.866018,-0.097907,-0.490334,0.000000,0.866018,-0.097907,-0.490334,0.834566,0.666172, +0.932670,-0.189647,-0.306855,0.000000,0.932670,-0.189647,-0.306855,0.552265,0.277618, +0.866018,-0.097907,-0.490334,0.000000,0.866018,-0.097907,-0.490334,0.834566,0.666172, +0.851981,0.083904,-0.516806,0.000000,0.851981,0.083904,-0.516806,0.734288,0.822469, +0.939205,-0.004289,-0.343331,0.000000,0.939205,-0.004289,-0.343331,0.393082,0.202395, +0.932670,-0.189647,-0.306855,0.000000,0.932670,-0.189647,-0.306855,0.552265,0.277618, +0.939205,-0.004289,-0.343331,0.000000,0.939205,-0.004289,-0.343331,0.393082,0.202395, +0.983024,-0.096461,-0.156077,0.000000,0.983024,-0.096461,-0.156077,0.500000,0.196469, +0.866018,-0.097907,-0.490334,0.000000,0.866018,-0.097907,-0.490334,0.834566,0.666172, +0.939205,-0.004289,-0.343331,0.000000,0.939205,-0.004289,-0.343331,0.393082,0.202395, +0.932670,-0.189647,-0.306855,0.000000,0.932670,-0.189647,-0.306855,0.552265,0.277618, +0.851981,0.083904,-0.516806,0.000000,0.851981,0.083904,-0.516806,0.734288,0.822469, +0.809017,0.262865,-0.525731,0.000000,0.809017,0.262865,-0.525731,0.790230,0.749029, +0.913545,0.181898,-0.363797,0.000000,0.913545,0.181898,-0.363797,0.606917,0.202395, +0.939205,-0.004289,-0.343331,0.000000,0.939205,-0.004289,-0.343331,0.393082,0.202395, +0.913545,0.181898,-0.363797,0.000000,0.913545,0.181898,-0.363797,0.606917,0.202395, +0.978148,0.092981,-0.185961,0.000000,0.978148,0.092981,-0.185961,0.352845,0.147020, +0.983024,-0.096461,-0.156077,0.000000,0.983024,-0.096461,-0.156077,0.500000,0.196469, +0.978148,0.092981,-0.185961,0.000000,0.978148,0.092981,-0.185961,0.352845,0.147020, +1.000000,-0.000000,0.000000,0.000000,1.000000,-0.000000,0.000000,0.445347,0.130459, +0.851981,0.083904,-0.516806,0.000000,0.851981,0.083904,-0.516806,0.734288,0.822469, +0.913545,0.181898,-0.363797,0.000000,0.913545,0.181898,-0.363797,0.606917,0.202395, +0.939205,-0.004289,-0.343331,0.000000,0.939205,-0.004289,-0.343331,0.393082,0.202395, +0.939205,-0.004289,-0.343331,0.000000,0.939205,-0.004289,-0.343331,0.393082,0.202395, +0.978148,0.092981,-0.185961,0.000000,0.978148,0.092981,-0.185961,0.352845,0.147020, +0.983024,-0.096461,-0.156077,0.000000,0.983024,-0.096461,-0.156077,0.500000,0.196469, +0.809017,0.262865,-0.525731,0.000000,0.809017,0.262865,-0.525731,0.790230,0.749029, +0.738585,0.432902,-0.516806,0.000000,0.738585,0.432902,-0.516806,0.816078,0.490281, +0.845991,0.389809,-0.363797,0.000000,0.845991,0.389809,-0.363797,0.554653,0.130459, +0.913545,0.181898,-0.363797,0.000000,0.913545,0.181898,-0.363797,0.606917,0.202395, +0.845991,0.389809,-0.363797,0.000000,0.845991,0.389809,-0.363797,0.554653,0.130459, +0.934172,0.303531,-0.187593,0.000000,0.934172,0.303531,-0.187593,0.647155,0.147020, +0.978148,0.092981,-0.185961,0.000000,0.978148,0.092981,-0.185961,0.352845,0.147020, +0.934172,0.303531,-0.187593,0.000000,0.934172,0.303531,-0.187593,0.647155,0.147020, +0.978148,0.207911,0.000000,0.000000,0.978148,0.207911,0.000000,0.319635,0.345280, +1.000000,-0.000000,0.000000,0.000000,1.000000,-0.000000,0.000000,0.445347,0.130459, +0.978148,0.207911,0.000000,0.000000,0.978148,0.207911,0.000000,0.319635,0.345280, +0.983024,0.096460,0.156077,0.000000,0.983024,0.096460,0.156077,0.408260,0.332044, +0.913545,0.181898,-0.363797,0.000000,0.913545,0.181898,-0.363797,0.606917,0.202395, +0.809017,0.262865,-0.525731,0.000000,0.809017,0.262865,-0.525731,0.790230,0.749029, +0.845991,0.389809,-0.363797,0.000000,0.845991,0.389809,-0.363797,0.554653,0.130459, +0.913545,0.181898,-0.363797,0.000000,0.913545,0.181898,-0.363797,0.606917,0.202395, +0.934172,0.303531,-0.187593,0.000000,0.934172,0.303531,-0.187593,0.647155,0.147020, +0.978148,0.092981,-0.185961,0.000000,0.978148,0.092981,-0.185961,0.352845,0.147020, +1.000000,-0.000000,0.000000,0.000000,1.000000,-0.000000,0.000000,0.445347,0.130459, +0.978148,0.092981,-0.185961,0.000000,0.978148,0.092981,-0.185961,0.352845,0.147020, +0.978148,0.207911,0.000000,0.000000,0.978148,0.207911,0.000000,0.319635,0.345280, +0.738585,0.432902,-0.516806,0.000000,0.738585,0.432902,-0.516806,0.816078,0.490281, +0.643075,0.588241,-0.490334,0.000000,0.643075,0.588241,-0.490334,0.697755,0.772187, +0.757312,0.555521,-0.343331,0.000000,0.757312,0.555521,-0.343331,0.352845,0.268343, +0.845991,0.389809,-0.363797,0.000000,0.845991,0.389809,-0.363797,0.554653,0.130459, +0.757312,0.555521,-0.343331,0.000000,0.757312,0.555521,-0.343331,0.352845,0.268343, +0.845991,0.499718,-0.185961,0.000000,0.845991,0.499718,-0.185961,0.500000,0.327581, +0.934172,0.303531,-0.187593,0.000000,0.934172,0.303531,-0.187593,0.647155,0.147020, +0.845991,0.499718,-0.185961,0.000000,0.845991,0.499718,-0.185961,0.500000,0.327581, +0.913545,0.406737,0.000000,0.000000,0.913545,0.406737,0.000000,0.445347,0.258102, +0.978148,0.207911,0.000000,0.000000,0.978148,0.207911,0.000000,0.319635,0.345280, +0.913545,0.406737,0.000000,0.000000,0.913545,0.406737,0.000000,0.445347,0.258102, +0.939205,0.305166,0.157379,0.000000,0.939205,0.305166,0.157379,0.591739,0.332044, +0.983024,0.096460,0.156077,0.000000,0.983024,0.096460,0.156077,0.408260,0.332044, +0.939205,0.305166,0.157379,0.000000,0.939205,0.305166,0.157379,0.591739,0.332044, +0.932670,0.189647,0.306855,0.000000,0.932670,0.189647,0.306855,0.554653,0.258102, +0.845991,0.389809,-0.363797,0.000000,0.845991,0.389809,-0.363797,0.554653,0.130459, +0.738585,0.432902,-0.516806,0.000000,0.738585,0.432902,-0.516806,0.816078,0.490281, +0.757312,0.555521,-0.343331,0.000000,0.757312,0.555521,-0.343331,0.352845,0.268343, +0.934172,0.303531,-0.187593,0.000000,0.934172,0.303531,-0.187593,0.647155,0.147020, +0.845991,0.389809,-0.363797,0.000000,0.845991,0.389809,-0.363797,0.554653,0.130459, +0.845991,0.499718,-0.185961,0.000000,0.845991,0.499718,-0.185961,0.500000,0.327581, +0.978148,0.207911,0.000000,0.000000,0.978148,0.207911,0.000000,0.319635,0.345280, +0.934172,0.303531,-0.187593,0.000000,0.934172,0.303531,-0.187593,0.647155,0.147020, +0.913545,0.406737,0.000000,0.000000,0.913545,0.406737,0.000000,0.445347,0.258102, +0.983024,0.096460,0.156077,0.000000,0.983024,0.096460,0.156077,0.408260,0.332044, +0.978148,0.207911,0.000000,0.000000,0.978148,0.207911,0.000000,0.319635,0.345280, +0.939205,0.305166,0.157379,0.000000,0.939205,0.305166,0.157379,0.591739,0.332044, +0.643075,0.588241,-0.490334,0.000000,0.643075,0.588241,-0.490334,0.697755,0.772187, +0.525731,0.723607,-0.447214,0.000000,0.525731,0.723607,-0.447214,0.788675,0.593796, +0.643075,0.701637,-0.306855,0.000000,0.643075,0.701637,-0.306855,0.680365,0.345280, +0.757312,0.555521,-0.343331,0.000000,0.757312,0.555521,-0.343331,0.352845,0.268343, +0.643075,0.701637,-0.306855,0.000000,0.643075,0.701637,-0.306855,0.680365,0.345280, +0.738585,0.655845,-0.156077,0.000000,0.738585,0.655845,-0.156077,0.647155,0.268343, +0.845991,0.499718,-0.185961,0.000000,0.845991,0.499718,-0.185961,0.500000,0.327581, +0.738585,0.655845,-0.156077,0.000000,0.738585,0.655845,-0.156077,0.647155,0.268343, +0.809017,0.587785,0.000000,0.000000,0.809017,0.587785,0.000000,0.553923,0.743874, +0.913545,0.406737,0.000000,0.000000,0.913545,0.406737,0.000000,0.445347,0.258102, +0.809017,0.587785,0.000000,0.000000,0.809017,0.587785,0.000000,0.553923,0.743874, +0.851981,0.499768,0.156077,0.000000,0.851981,0.499768,0.156077,0.643075,0.762112, +0.939205,0.305166,0.157379,0.000000,0.939205,0.305166,0.157379,0.591739,0.332044, +0.851981,0.499768,0.156077,0.000000,0.851981,0.499768,0.156077,0.643075,0.762112, +0.866018,0.394782,0.306855,0.000000,0.866018,0.394782,0.306855,0.606016,0.668485, +0.932670,0.189647,0.306855,0.000000,0.932670,0.189647,0.306855,0.554653,0.258102, +0.866018,0.394782,0.306855,0.000000,0.866018,0.394782,0.306855,0.606016,0.668485, +0.850651,0.276393,0.447214,0.000000,0.850651,0.276393,0.447214,0.750000,0.581230, +0.757312,0.555521,-0.343331,0.000000,0.757312,0.555521,-0.343331,0.352845,0.268343, +0.643075,0.588241,-0.490334,0.000000,0.643075,0.588241,-0.490334,0.697755,0.772187, +0.643075,0.701637,-0.306855,0.000000,0.643075,0.701637,-0.306855,0.680365,0.345280, +0.845991,0.499718,-0.185961,0.000000,0.845991,0.499718,-0.185961,0.500000,0.327581, +0.757312,0.555521,-0.343331,0.000000,0.757312,0.555521,-0.343331,0.352845,0.268343, +0.738585,0.655845,-0.156077,0.000000,0.738585,0.655845,-0.156077,0.647155,0.268343, +0.913545,0.406737,0.000000,0.000000,0.913545,0.406737,0.000000,0.445347,0.258102, +0.845991,0.499718,-0.185961,0.000000,0.845991,0.499718,-0.185961,0.500000,0.327581, +0.809017,0.587785,0.000000,0.000000,0.809017,0.587785,0.000000,0.553923,0.743874, +0.913545,0.406737,0.000000,0.000000,0.913545,0.406737,0.000000,0.445347,0.258102, +0.851981,0.499768,0.156077,0.000000,0.851981,0.499768,0.156077,0.643075,0.762112, +0.939205,0.305166,0.157379,0.000000,0.939205,0.305166,0.157379,0.591739,0.332044, +0.932670,0.189647,0.306855,0.000000,0.932670,0.189647,0.306855,0.554653,0.258102, +0.939205,0.305166,0.157379,0.000000,0.939205,0.305166,0.157379,0.591739,0.332044, +0.866018,0.394782,0.306855,0.000000,0.866018,0.394782,0.306855,0.606016,0.668485, +0.525731,0.723607,-0.447214,0.000000,0.525731,0.723607,-0.447214,0.788675,0.593796, +0.360730,0.793377,-0.490334,0.000000,0.360730,0.793377,-0.490334,0.345491,0.712663, +0.468576,0.828418,-0.306855,0.000000,0.468576,0.828418,-0.306855,0.727648,0.772345, +0.360730,0.793377,-0.490334,0.000000,0.360730,0.793377,-0.490334,0.345491,0.712663, +0.183479,0.836210,-0.516806,0.000000,0.183479,0.836210,-0.516806,0.447735,0.722382, +0.294310,0.891911,-0.343331,0.000000,0.294310,0.891911,-0.343331,0.695347,0.683427, +0.468576,0.828418,-0.306855,0.000000,0.468576,0.828418,-0.306855,0.727648,0.772345, +0.294310,0.891911,-0.343331,0.000000,0.294310,0.891911,-0.343331,0.695347,0.683427, +0.395511,0.905103,-0.156077,0.000000,0.395511,0.905103,-0.156077,0.654508,0.590447, +0.360730,0.793377,-0.490334,0.000000,0.360730,0.793377,-0.490334,0.345491,0.712663, +0.294310,0.891911,-0.343331,0.000000,0.294310,0.891911,-0.343331,0.695347,0.683427, +0.468576,0.828418,-0.306855,0.000000,0.468576,0.828418,-0.306855,0.727648,0.772345, +0.183479,0.836210,-0.516806,0.000000,0.183479,0.836210,-0.516806,0.447735,0.722382, +0.000000,0.850651,-0.525731,0.000000,0.000000,0.850651,-0.525731,0.393984,0.645918, +0.109305,0.925043,-0.363797,0.000000,0.109305,0.925043,-0.363797,0.816078,0.772345, +0.294310,0.891911,-0.343331,0.000000,0.294310,0.891911,-0.343331,0.695347,0.683427, +0.109305,0.925043,-0.363797,0.000000,0.109305,0.925043,-0.363797,0.816078,0.772345, +0.213835,0.959006,-0.185961,0.000000,0.213835,0.959006,-0.185961,0.788675,0.684243, +0.395511,0.905103,-0.156077,0.000000,0.395511,0.905103,-0.156077,0.654508,0.590447, +0.213835,0.959006,-0.185961,0.000000,0.213835,0.959006,-0.185961,0.788675,0.684243, +0.309017,0.951056,0.000000,0.000000,0.309017,0.951056,0.000000,0.750000,0.590447, +0.183479,0.836210,-0.516806,0.000000,0.183479,0.836210,-0.516806,0.447735,0.722382, +0.109305,0.925043,-0.363797,0.000000,0.109305,0.925043,-0.363797,0.816078,0.772345, +0.294310,0.891911,-0.343331,0.000000,0.294310,0.891911,-0.343331,0.695347,0.683427, +0.294310,0.891911,-0.343331,0.000000,0.294310,0.891911,-0.343331,0.695347,0.683427, +0.213835,0.959006,-0.185961,0.000000,0.213835,0.959006,-0.185961,0.788675,0.684243, +0.395511,0.905103,-0.156077,0.000000,0.395511,0.905103,-0.156077,0.654508,0.590447, +0.000000,0.850651,-0.525731,0.000000,0.000000,0.850651,-0.525731,0.393984,0.645918, +-0.183479,0.836210,-0.516806,0.000000,-0.183479,0.836210,-0.516806,0.500000,0.650438, +-0.109305,0.925043,-0.363797,0.000000,-0.109305,0.925043,-0.363797,0.697755,0.512408, +0.109305,0.925043,-0.363797,0.000000,0.109305,0.925043,-0.363797,0.816078,0.772345, +-0.109305,0.925043,-0.363797,0.000000,-0.109305,0.925043,-0.363797,0.697755,0.512408, +0.000000,0.982247,-0.187593,0.000000,0.000000,0.982247,-0.187593,0.762112,0.225709, +0.213835,0.959006,-0.185961,0.000000,0.213835,0.959006,-0.185961,0.788675,0.684243, +0.000000,0.982247,-0.187593,0.000000,0.000000,0.982247,-0.187593,0.762112,0.225709, +0.104529,0.994522,0.000000,0.000000,0.104529,0.994522,0.000000,0.772345,0.157937, +0.309017,0.951056,0.000000,0.000000,0.309017,0.951056,0.000000,0.750000,0.590447, +0.104529,0.994522,0.000000,0.000000,0.104529,0.994522,0.000000,0.772345,0.157937, +0.212032,0.964719,0.156077,0.000000,0.212032,0.964719,0.156077,0.683427,0.174918, +0.109305,0.925043,-0.363797,0.000000,0.109305,0.925043,-0.363797,0.816078,0.772345, +0.000000,0.850651,-0.525731,0.000000,0.000000,0.850651,-0.525731,0.393984,0.645918, +-0.109305,0.925043,-0.363797,0.000000,-0.109305,0.925043,-0.363797,0.697755,0.512408, +0.109305,0.925043,-0.363797,0.000000,0.109305,0.925043,-0.363797,0.816078,0.772345, +0.000000,0.982247,-0.187593,0.000000,0.000000,0.982247,-0.187593,0.762112,0.225709, +0.213835,0.959006,-0.185961,0.000000,0.213835,0.959006,-0.185961,0.788675,0.684243, +0.309017,0.951056,0.000000,0.000000,0.309017,0.951056,0.000000,0.750000,0.590447, +0.213835,0.959006,-0.185961,0.000000,0.213835,0.959006,-0.185961,0.788675,0.684243, +0.104529,0.994522,0.000000,0.000000,0.104529,0.994522,0.000000,0.772345,0.157937, +-0.183479,0.836210,-0.516806,0.000000,-0.183479,0.836210,-0.516806,0.500000,0.650438, +-0.360730,0.793377,-0.490334,0.000000,-0.360730,0.793377,-0.490334,0.790230,0.912551, +-0.294309,0.891911,-0.343331,0.000000,-0.294309,0.891911,-0.343331,0.868343,0.683427, +-0.109305,0.925043,-0.363797,0.000000,-0.109305,0.925043,-0.363797,0.697755,0.512408, +-0.294309,0.891911,-0.343331,0.000000,-0.294309,0.891911,-0.343331,0.868343,0.683427, +-0.213834,0.959006,-0.185961,0.000000,-0.213834,0.959006,-0.185961,0.834566,0.590447, +0.000000,0.982247,-0.187593,0.000000,0.000000,0.982247,-0.187593,0.762112,0.225709, +-0.213834,0.959006,-0.185961,0.000000,-0.213834,0.959006,-0.185961,0.834566,0.590447, +-0.104529,0.994522,0.000000,0.000000,-0.104529,0.994522,0.000000,0.790230,0.511757, +0.104529,0.994522,0.000000,0.000000,0.104529,0.994522,0.000000,0.772345,0.157937, +-0.104529,0.994522,0.000000,0.000000,-0.104529,0.994522,0.000000,0.790230,0.511757, +0.000000,0.987538,0.157379,0.000000,0.000000,0.987538,0.157379,0.734288,0.437019, +0.212032,0.964719,0.156077,0.000000,0.212032,0.964719,0.156077,0.683427,0.174918, +0.000000,0.987538,0.157379,0.000000,0.000000,0.987538,0.157379,0.734288,0.437019, +0.107846,0.945626,0.306855,0.000000,0.107846,0.945626,0.306855,0.743874,0.302609, +-0.109305,0.925043,-0.363797,0.000000,-0.109305,0.925043,-0.363797,0.697755,0.512408, +-0.183479,0.836210,-0.516806,0.000000,-0.183479,0.836210,-0.516806,0.500000,0.650438, +-0.294309,0.891911,-0.343331,0.000000,-0.294309,0.891911,-0.343331,0.868343,0.683427, +0.000000,0.982247,-0.187593,0.000000,0.000000,0.982247,-0.187593,0.762112,0.225709, +-0.109305,0.925043,-0.363797,0.000000,-0.109305,0.925043,-0.363797,0.697755,0.512408, +-0.213834,0.959006,-0.185961,0.000000,-0.213834,0.959006,-0.185961,0.834566,0.590447, +0.104529,0.994522,0.000000,0.000000,0.104529,0.994522,0.000000,0.772345,0.157937, +0.000000,0.982247,-0.187593,0.000000,0.000000,0.982247,-0.187593,0.762112,0.225709, +-0.104529,0.994522,0.000000,0.000000,-0.104529,0.994522,0.000000,0.790230,0.511757, +0.212032,0.964719,0.156077,0.000000,0.212032,0.964719,0.156077,0.683427,0.174918, +0.104529,0.994522,0.000000,0.000000,0.104529,0.994522,0.000000,0.772345,0.157937, +0.000000,0.987538,0.157379,0.000000,0.000000,0.987538,0.157379,0.734288,0.437019, +-0.360730,0.793377,-0.490334,0.000000,-0.360730,0.793377,-0.490334,0.790230,0.912551, +-0.525731,0.723607,-0.447214,0.000000,-0.525731,0.723607,-0.447214,0.446077,0.574219, +-0.468576,0.828418,-0.306855,0.000000,-0.468576,0.828418,-0.306855,0.668485,0.250116, +-0.294309,0.891911,-0.343331,0.000000,-0.294309,0.891911,-0.343331,0.868343,0.683427, +-0.468576,0.828418,-0.306855,0.000000,-0.468576,0.828418,-0.306855,0.668485,0.250116, +-0.395510,0.905103,-0.156077,0.000000,-0.395510,0.905103,-0.156077,0.590447,0.206107, +-0.213834,0.959006,-0.185961,0.000000,-0.213834,0.959006,-0.185961,0.834566,0.590447, +-0.395510,0.905103,-0.156077,0.000000,-0.395510,0.905103,-0.156077,0.590447,0.206107, +-0.309017,0.951057,0.000000,0.000000,-0.309017,0.951057,0.000000,0.590447,0.128428, +-0.104529,0.994522,0.000000,0.000000,-0.104529,0.994522,0.000000,0.790230,0.511757, +-0.309017,0.951057,0.000000,0.000000,-0.309017,0.951057,0.000000,0.590447,0.128428, +-0.212031,0.964719,0.156077,0.000000,-0.212031,0.964719,0.156077,0.512408,0.172078, +0.000000,0.987538,0.157379,0.000000,0.000000,0.987538,0.157379,0.734288,0.437019, +-0.212031,0.964719,0.156077,0.000000,-0.212031,0.964719,0.156077,0.512408,0.172078, +-0.107846,0.945626,0.306855,0.000000,-0.107846,0.945626,0.306855,0.869292,0.512408, +0.107846,0.945626,0.306855,0.000000,0.107846,0.945626,0.306855,0.743874,0.302609, +-0.107846,0.945626,0.306855,0.000000,-0.107846,0.945626,0.306855,0.869292,0.512408, +0.000000,0.894427,0.447214,0.000000,0.000000,0.894427,0.447214,0.268343,0.250971, +-0.294309,0.891911,-0.343331,0.000000,-0.294309,0.891911,-0.343331,0.868343,0.683427, +-0.360730,0.793377,-0.490334,0.000000,-0.360730,0.793377,-0.490334,0.790230,0.912551, +-0.468576,0.828418,-0.306855,0.000000,-0.468576,0.828418,-0.306855,0.668485,0.250116, +-0.213834,0.959006,-0.185961,0.000000,-0.213834,0.959006,-0.185961,0.834566,0.590447, +-0.294309,0.891911,-0.343331,0.000000,-0.294309,0.891911,-0.343331,0.868343,0.683427, +-0.395510,0.905103,-0.156077,0.000000,-0.395510,0.905103,-0.156077,0.590447,0.206107, +-0.213834,0.959006,-0.185961,0.000000,-0.213834,0.959006,-0.185961,0.834566,0.590447, +-0.309017,0.951057,0.000000,0.000000,-0.309017,0.951057,0.000000,0.590447,0.128428, +-0.104529,0.994522,0.000000,0.000000,-0.104529,0.994522,0.000000,0.790230,0.511757, +-0.104529,0.994522,0.000000,0.000000,-0.104529,0.994522,0.000000,0.790230,0.511757, +-0.212031,0.964719,0.156077,0.000000,-0.212031,0.964719,0.156077,0.512408,0.172078, +0.000000,0.987538,0.157379,0.000000,0.000000,0.987538,0.157379,0.734288,0.437019, +0.107846,0.945626,0.306855,0.000000,0.107846,0.945626,0.306855,0.743874,0.302609, +0.000000,0.987538,0.157379,0.000000,0.000000,0.987538,0.157379,0.734288,0.437019, +-0.107846,0.945626,0.306855,0.000000,-0.107846,0.945626,0.306855,0.869292,0.512408, +-0.525731,0.723607,-0.447214,0.000000,-0.525731,0.723607,-0.447214,0.446077,0.574219, +-0.643075,0.588241,-0.490334,0.000000,-0.643075,0.588241,-0.490334,0.680365,0.835614, +-0.643075,0.701637,-0.306855,0.000000,-0.643075,0.701637,-0.306855,0.821537,0.437019, +-0.643075,0.588241,-0.490334,0.000000,-0.643075,0.588241,-0.490334,0.680365,0.835614, +-0.738585,0.432902,-0.516806,0.000000,-0.738585,0.432902,-0.516806,0.647155,0.912551, +-0.757311,0.555521,-0.343331,0.000000,-0.757311,0.555521,-0.343331,0.743874,0.405176, +-0.643075,0.701637,-0.306855,0.000000,-0.643075,0.701637,-0.306855,0.821537,0.437019, +-0.757311,0.555521,-0.343331,0.000000,-0.757311,0.555521,-0.343331,0.743874,0.405176, +-0.738585,0.655845,-0.156077,0.000000,-0.738585,0.655845,-0.156077,0.762112,0.497855, +-0.643075,0.588241,-0.490334,0.000000,-0.643075,0.588241,-0.490334,0.680365,0.835614, +-0.757311,0.555521,-0.343331,0.000000,-0.757311,0.555521,-0.343331,0.743874,0.405176, +-0.643075,0.701637,-0.306855,0.000000,-0.643075,0.701637,-0.306855,0.821537,0.437019, +-0.738585,0.432902,-0.516806,0.000000,-0.738585,0.432902,-0.516806,0.647155,0.912551, +-0.809017,0.262866,-0.525731,0.000000,-0.809017,0.262866,-0.525731,0.591739,0.848850, +-0.845991,0.389810,-0.363797,0.000000,-0.845991,0.389810,-0.363797,0.668485,0.451770, +-0.757311,0.555521,-0.343331,0.000000,-0.757311,0.555521,-0.343331,0.743874,0.405176, +-0.845991,0.389810,-0.363797,0.000000,-0.845991,0.389810,-0.363797,0.668485,0.451770, +-0.845991,0.499718,-0.185961,0.000000,-0.845991,0.499718,-0.185961,0.772345,0.590949, +-0.738585,0.655845,-0.156077,0.000000,-0.738585,0.655845,-0.156077,0.762112,0.497855, +-0.845991,0.499718,-0.185961,0.000000,-0.845991,0.499718,-0.185961,0.772345,0.590949, +-0.809017,0.587785,0.000000,0.000000,-0.809017,0.587785,0.000000,0.683427,0.546490, +-0.738585,0.432902,-0.516806,0.000000,-0.738585,0.432902,-0.516806,0.647155,0.912551, +-0.845991,0.389810,-0.363797,0.000000,-0.845991,0.389810,-0.363797,0.668485,0.451770, +-0.757311,0.555521,-0.343331,0.000000,-0.757311,0.555521,-0.343331,0.743874,0.405176, +-0.757311,0.555521,-0.343331,0.000000,-0.757311,0.555521,-0.343331,0.743874,0.405176, +-0.845991,0.499718,-0.185961,0.000000,-0.845991,0.499718,-0.185961,0.772345,0.590949, +-0.738585,0.655845,-0.156077,0.000000,-0.738585,0.655845,-0.156077,0.762112,0.497855, +-0.809017,0.262866,-0.525731,0.000000,-0.809017,0.262866,-0.525731,0.591739,0.848850, +-0.851981,0.083904,-0.516806,0.000000,-0.851981,0.083904,-0.516806,0.554653,0.922791, +-0.913545,0.181899,-0.363797,0.000000,-0.913545,0.181899,-0.363797,0.590447,0.500000, +-0.845991,0.389810,-0.363797,0.000000,-0.845991,0.389810,-0.363797,0.668485,0.451770, +-0.913545,0.181899,-0.363797,0.000000,-0.913545,0.181899,-0.363797,0.590447,0.500000, +-0.934172,0.303531,-0.187593,0.000000,-0.934172,0.303531,-0.187593,0.772345,0.694905, +-0.845991,0.499718,-0.185961,0.000000,-0.845991,0.499718,-0.185961,0.772345,0.590949, +-0.934172,0.303531,-0.187593,0.000000,-0.934172,0.303531,-0.187593,0.772345,0.694905, +-0.913545,0.406737,0.000000,0.000000,-0.913545,0.406737,0.000000,0.684243,0.651765, +-0.809017,0.587785,0.000000,0.000000,-0.809017,0.587785,0.000000,0.683427,0.546490, +-0.913545,0.406737,0.000000,0.000000,-0.913545,0.406737,0.000000,0.684243,0.651765, +-0.851981,0.499769,0.156077,0.000000,-0.851981,0.499769,0.156077,0.590447,0.603956, +-0.809017,0.262866,-0.525731,0.000000,-0.809017,0.262866,-0.525731,0.591739,0.848850, +-0.913545,0.181899,-0.363797,0.000000,-0.913545,0.181899,-0.363797,0.590447,0.500000, +-0.845991,0.389810,-0.363797,0.000000,-0.845991,0.389810,-0.363797,0.668485,0.451770, +-0.845991,0.389810,-0.363797,0.000000,-0.845991,0.389810,-0.363797,0.668485,0.451770, +-0.934172,0.303531,-0.187593,0.000000,-0.934172,0.303531,-0.187593,0.772345,0.694905, +-0.845991,0.499718,-0.185961,0.000000,-0.845991,0.499718,-0.185961,0.772345,0.590949, +-0.845991,0.499718,-0.185961,0.000000,-0.845991,0.499718,-0.185961,0.772345,0.590949, +-0.913545,0.406737,0.000000,0.000000,-0.913545,0.406737,0.000000,0.684243,0.651765, +-0.809017,0.587785,0.000000,0.000000,-0.809017,0.587785,0.000000,0.683427,0.546490, +-0.851981,0.083904,-0.516806,0.000000,-0.851981,0.083904,-0.516806,0.554653,0.922791, +-0.866018,-0.097907,-0.490334,0.000000,-0.866018,-0.097907,-0.490334,0.500000,0.853312, +-0.939205,-0.004289,-0.343331,0.000000,-0.939205,-0.004289,-0.343331,0.512408,0.548230, +-0.913545,0.181899,-0.363797,0.000000,-0.913545,0.181899,-0.363797,0.590447,0.500000, +-0.939205,-0.004289,-0.343331,0.000000,-0.939205,-0.004289,-0.343331,0.512408,0.548230, +-0.978148,0.092981,-0.185961,0.000000,-0.978148,0.092981,-0.185961,0.762112,0.777761, +-0.934172,0.303531,-0.187593,0.000000,-0.934172,0.303531,-0.187593,0.772345,0.694905, +-0.978148,0.092981,-0.185961,0.000000,-0.978148,0.092981,-0.185961,0.762112,0.777761, +-0.978148,0.207911,0.000000,0.000000,-0.978148,0.207911,0.000000,0.683427,0.749859, +-0.913545,0.406737,0.000000,0.000000,-0.913545,0.406737,0.000000,0.684243,0.651765, +-0.978148,0.207911,0.000000,0.000000,-0.978148,0.207911,0.000000,0.683427,0.749859, +-0.939205,0.305166,0.157379,0.000000,-0.939205,0.305166,0.157379,0.590447,0.703368, +-0.851981,0.499769,0.156077,0.000000,-0.851981,0.499769,0.156077,0.590447,0.603956, +-0.939205,0.305166,0.157379,0.000000,-0.939205,0.305166,0.157379,0.590447,0.703368, +-0.866018,0.394783,0.306855,0.000000,-0.866018,0.394783,0.306855,0.511757,0.652583, +-0.913545,0.181899,-0.363797,0.000000,-0.913545,0.181899,-0.363797,0.590447,0.500000, +-0.851981,0.083904,-0.516806,0.000000,-0.851981,0.083904,-0.516806,0.554653,0.922791, +-0.939205,-0.004289,-0.343331,0.000000,-0.939205,-0.004289,-0.343331,0.512408,0.548230, +-0.934172,0.303531,-0.187593,0.000000,-0.934172,0.303531,-0.187593,0.772345,0.694905, +-0.913545,0.181899,-0.363797,0.000000,-0.913545,0.181899,-0.363797,0.590447,0.500000, +-0.978148,0.092981,-0.185961,0.000000,-0.978148,0.092981,-0.185961,0.762112,0.777761, +-0.934172,0.303531,-0.187593,0.000000,-0.934172,0.303531,-0.187593,0.772345,0.694905, +-0.978148,0.207911,0.000000,0.000000,-0.978148,0.207911,0.000000,0.683427,0.749859, +-0.913545,0.406737,0.000000,0.000000,-0.913545,0.406737,0.000000,0.684243,0.651765, +-0.851981,0.499769,0.156077,0.000000,-0.851981,0.499769,0.156077,0.590447,0.603956, +-0.913545,0.406737,0.000000,0.000000,-0.913545,0.406737,0.000000,0.684243,0.651765, +-0.939205,0.305166,0.157379,0.000000,-0.939205,0.305166,0.157379,0.590447,0.703368, +-0.866018,-0.097907,-0.490334,0.000000,-0.866018,-0.097907,-0.490334,0.500000,0.853312, +-0.850651,-0.276393,-0.447214,0.000000,-0.850651,-0.276393,-0.447214,0.445347,0.922791, +-0.932670,-0.189647,-0.306855,0.000000,-0.932670,-0.189647,-0.306855,0.437019,0.594823, +-0.939205,-0.004289,-0.343331,0.000000,-0.939205,-0.004289,-0.343331,0.512408,0.548230, +-0.932670,-0.189647,-0.306855,0.000000,-0.932670,-0.189647,-0.306855,0.437019,0.594823, +-0.983024,-0.096460,-0.156077,0.000000,-0.983024,-0.096460,-0.156077,0.821537,0.743874, +-0.978148,0.092981,-0.185961,0.000000,-0.978148,0.092981,-0.185961,0.762112,0.777761, +-0.983024,-0.096460,-0.156077,0.000000,-0.983024,-0.096460,-0.156077,0.821537,0.743874, +-1.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.000000,0.743874,0.850819, +-0.978148,0.207911,0.000000,0.000000,-0.978148,0.207911,0.000000,0.683427,0.749859, +-1.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.000000,0.743874,0.850819, +-0.983024,0.096461,0.156077,0.000000,-0.983024,0.096461,0.156077,0.668485,0.827922, +-0.939205,0.305166,0.157379,0.000000,-0.939205,0.305166,0.157379,0.590447,0.703368, +-0.983024,0.096461,0.156077,0.000000,-0.983024,0.096461,0.156077,0.668485,0.827922, +-0.932670,0.189647,0.306855,0.000000,-0.932670,0.189647,0.306855,0.590447,0.793893, +-0.866018,0.394783,0.306855,0.000000,-0.866018,0.394783,0.306855,0.511757,0.652583, +-0.932670,0.189647,0.306855,0.000000,-0.932670,0.189647,0.306855,0.590447,0.793893, +-0.850651,0.276393,0.447214,0.000000,-0.850651,0.276393,0.447214,0.588426,0.872062, +-0.939205,-0.004289,-0.343331,0.000000,-0.939205,-0.004289,-0.343331,0.512408,0.548230, +-0.866018,-0.097907,-0.490334,0.000000,-0.866018,-0.097907,-0.490334,0.500000,0.853312, +-0.932670,-0.189647,-0.306855,0.000000,-0.932670,-0.189647,-0.306855,0.437019,0.594823, +-0.978148,0.092981,-0.185961,0.000000,-0.978148,0.092981,-0.185961,0.762112,0.777761, +-0.939205,-0.004289,-0.343331,0.000000,-0.939205,-0.004289,-0.343331,0.512408,0.548230, +-0.983024,-0.096460,-0.156077,0.000000,-0.983024,-0.096460,-0.156077,0.821537,0.743874, +-0.978148,0.092981,-0.185961,0.000000,-0.978148,0.092981,-0.185961,0.762112,0.777761, +-1.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.000000,0.743874,0.850819, +-0.978148,0.207911,0.000000,0.000000,-0.978148,0.207911,0.000000,0.683427,0.749859, +-0.978148,0.207911,0.000000,0.000000,-0.978148,0.207911,0.000000,0.683427,0.749859, +-0.983024,0.096461,0.156077,0.000000,-0.983024,0.096461,0.156077,0.668485,0.827922, +-0.939205,0.305166,0.157379,0.000000,-0.939205,0.305166,0.157379,0.590447,0.703368, +-0.939205,0.305166,0.157379,0.000000,-0.939205,0.305166,0.157379,0.590447,0.703368, +-0.932670,0.189647,0.306855,0.000000,-0.932670,0.189647,0.306855,0.590447,0.793893, +-0.866018,0.394783,0.306855,0.000000,-0.866018,0.394783,0.306855,0.511757,0.652583, +-0.850651,-0.276393,-0.447214,0.000000,-0.850651,-0.276393,-0.447214,0.445347,0.922791, +-0.758172,-0.429824,-0.490334,0.000000,-0.758172,-0.429824,-0.490334,0.178463,0.835614, +-0.866018,-0.394782,-0.306855,0.000000,-0.866018,-0.394782,-0.306855,0.512408,0.749884, +-0.758172,-0.429824,-0.490334,0.000000,-0.758172,-0.429824,-0.490334,0.178463,0.835614, +-0.639949,-0.568662,-0.516806,0.000000,-0.639949,-0.568662,-0.516806,0.118823,0.469124, +-0.762354,-0.548581,-0.343331,0.000000,-0.762354,-0.548581,-0.343331,0.437019,0.697391, +-0.866018,-0.394782,-0.306855,0.000000,-0.866018,-0.394782,-0.306855,0.512408,0.749884, +-0.762354,-0.548581,-0.343331,0.000000,-0.762354,-0.548581,-0.343331,0.437019,0.697391, +-0.851981,-0.499768,-0.156077,0.000000,-0.851981,-0.499768,-0.156077,0.734288,0.743874, +-0.758172,-0.429824,-0.490334,0.000000,-0.758172,-0.429824,-0.490334,0.178463,0.835614, +-0.762354,-0.548581,-0.343331,0.000000,-0.762354,-0.548581,-0.343331,0.437019,0.697391, +-0.866018,-0.394782,-0.306855,0.000000,-0.866018,-0.394782,-0.306855,0.512408,0.749884, +-0.639949,-0.568662,-0.516806,0.000000,-0.639949,-0.568662,-0.516806,0.118823,0.469124, +-0.500000,-0.688191,-0.525731,0.000000,-0.500000,-0.688191,-0.525731,0.209770,0.749029, +-0.632156,-0.684127,-0.363797,0.000000,-0.632156,-0.684127,-0.363797,0.647155,0.762112, +-0.762354,-0.548581,-0.343331,0.000000,-0.762354,-0.548581,-0.343331,0.437019,0.697391, +-0.632156,-0.684127,-0.363797,0.000000,-0.632156,-0.684127,-0.363797,0.647155,0.762112, +-0.736686,-0.650164,-0.185961,0.000000,-0.736686,-0.650164,-0.185961,0.697756,0.668485, +-0.851981,-0.499768,-0.156077,0.000000,-0.851981,-0.499768,-0.156077,0.734288,0.743874, +-0.736686,-0.650164,-0.185961,0.000000,-0.736686,-0.650164,-0.185961,0.697756,0.668485, +-0.809017,-0.587785,0.000000,0.000000,-0.809017,-0.587785,0.000000,0.554653,0.772345, +-0.639949,-0.568662,-0.516806,0.000000,-0.639949,-0.568662,-0.516806,0.118823,0.469124, +-0.632156,-0.684127,-0.363797,0.000000,-0.632156,-0.684127,-0.363797,0.647155,0.762112, +-0.762354,-0.548581,-0.343331,0.000000,-0.762354,-0.548581,-0.343331,0.437019,0.697391, +-0.762354,-0.548581,-0.343331,0.000000,-0.762354,-0.548581,-0.343331,0.437019,0.697391, +-0.736686,-0.650164,-0.185961,0.000000,-0.736686,-0.650164,-0.185961,0.697756,0.668485, +-0.851981,-0.499768,-0.156077,0.000000,-0.851981,-0.499768,-0.156077,0.734288,0.743874, +-0.500000,-0.688191,-0.525731,0.000000,-0.500000,-0.688191,-0.525731,0.209770,0.749029, +-0.343074,-0.784354,-0.516806,0.000000,-0.343074,-0.784354,-0.516806,0.165435,0.666172, +-0.455297,-0.812623,-0.363797,0.000000,-0.455297,-0.812623,-0.363797,0.606918,0.683427, +-0.632156,-0.684127,-0.363797,0.000000,-0.632156,-0.684127,-0.363797,0.647155,0.762112, +-0.455297,-0.812623,-0.363797,0.000000,-0.455297,-0.812623,-0.363797,0.606918,0.683427, +-0.577350,-0.794654,-0.187593,0.000000,-0.577350,-0.794654,-0.187593,0.445347,0.772345, +-0.736686,-0.650164,-0.185961,0.000000,-0.736686,-0.650164,-0.185961,0.697756,0.668485, +-0.577350,-0.794654,-0.187593,0.000000,-0.577350,-0.794654,-0.187593,0.445347,0.772345, +-0.669131,-0.743144,0.000000,0.000000,-0.669131,-0.743144,0.000000,0.500000,0.684243, +-0.809017,-0.587785,0.000000,0.000000,-0.809017,-0.587785,0.000000,0.554653,0.772345, +-0.669131,-0.743144,0.000000,0.000000,-0.669131,-0.743144,0.000000,0.500000,0.684243, +-0.738585,-0.655845,0.156077,0.000000,-0.738585,-0.655845,0.156077,0.552265,0.590447, +-0.500000,-0.688191,-0.525731,0.000000,-0.500000,-0.688191,-0.525731,0.209770,0.749029, +-0.455297,-0.812623,-0.363797,0.000000,-0.455297,-0.812623,-0.363797,0.606918,0.683427, +-0.632156,-0.684127,-0.363797,0.000000,-0.632156,-0.684127,-0.363797,0.647155,0.762112, +-0.632156,-0.684127,-0.363797,0.000000,-0.632156,-0.684127,-0.363797,0.647155,0.762112, +-0.577350,-0.794654,-0.187593,0.000000,-0.577350,-0.794654,-0.187593,0.445347,0.772345, +-0.736686,-0.650164,-0.185961,0.000000,-0.736686,-0.650164,-0.185961,0.697756,0.668485, +-0.736686,-0.650164,-0.185961,0.000000,-0.736686,-0.650164,-0.185961,0.697756,0.668485, +-0.669131,-0.743144,0.000000,0.000000,-0.669131,-0.743144,0.000000,0.500000,0.684243, +-0.809017,-0.587785,0.000000,0.000000,-0.809017,-0.587785,0.000000,0.554653,0.772345, +-0.343074,-0.784354,-0.516806,0.000000,-0.343074,-0.784354,-0.516806,0.165435,0.666172, +-0.174499,-0.853887,-0.490334,0.000000,-0.174499,-0.853887,-0.490334,0.131658,0.562217, +-0.286151,-0.894562,-0.343331,0.000000,-0.286151,-0.894562,-0.343331,0.606016,0.512408, +-0.455297,-0.812623,-0.363797,0.000000,-0.455297,-0.812623,-0.363797,0.606918,0.683427, +-0.286151,-0.894562,-0.343331,0.000000,-0.286151,-0.894562,-0.343331,0.606016,0.512408, +-0.390694,-0.901541,-0.185961,0.000000,-0.390694,-0.901541,-0.185961,0.352845,0.762112, +-0.577350,-0.794654,-0.187593,0.000000,-0.577350,-0.794654,-0.187593,0.445347,0.772345, +-0.390694,-0.901541,-0.185961,0.000000,-0.390694,-0.901541,-0.185961,0.352845,0.762112, +-0.499999,-0.866026,0.000000,0.000000,-0.499999,-0.866026,0.000000,0.393083,0.683427, +-0.669131,-0.743144,0.000000,0.000000,-0.669131,-0.743144,0.000000,0.500000,0.684243, +-0.499999,-0.866026,0.000000,0.000000,-0.499999,-0.866026,0.000000,0.393083,0.683427, +-0.580461,-0.798935,0.157379,0.000000,-0.580461,-0.798935,0.157379,0.447735,0.590447, +-0.738585,-0.655845,0.156077,0.000000,-0.738585,-0.655845,0.156077,0.552265,0.590447, +-0.580461,-0.798935,0.157379,0.000000,-0.580461,-0.798935,0.157379,0.447735,0.590447, +-0.643075,-0.701637,0.306855,0.000000,-0.643075,-0.701637,0.306855,0.500000,0.511757, +-0.455297,-0.812623,-0.363797,0.000000,-0.455297,-0.812623,-0.363797,0.606918,0.683427, +-0.343074,-0.784354,-0.516806,0.000000,-0.343074,-0.784354,-0.516806,0.165435,0.666172, +-0.286151,-0.894562,-0.343331,0.000000,-0.286151,-0.894562,-0.343331,0.606016,0.512408, +-0.577350,-0.794654,-0.187593,0.000000,-0.577350,-0.794654,-0.187593,0.445347,0.772345, +-0.455297,-0.812623,-0.363797,0.000000,-0.455297,-0.812623,-0.363797,0.606918,0.683427, +-0.390694,-0.901541,-0.185961,0.000000,-0.390694,-0.901541,-0.185961,0.352845,0.762112, +-0.577350,-0.794654,-0.187593,0.000000,-0.577350,-0.794654,-0.187593,0.445347,0.772345, +-0.499999,-0.866026,0.000000,0.000000,-0.499999,-0.866026,0.000000,0.393083,0.683427, +-0.669131,-0.743144,0.000000,0.000000,-0.669131,-0.743144,0.000000,0.500000,0.684243, +-0.738585,-0.655845,0.156077,0.000000,-0.738585,-0.655845,0.156077,0.552265,0.590447, +-0.669131,-0.743144,0.000000,0.000000,-0.669131,-0.743144,0.000000,0.500000,0.684243, +-0.580461,-0.798935,0.157379,0.000000,-0.580461,-0.798935,0.157379,0.447735,0.590447, +-0.174499,-0.853887,-0.490334,0.000000,-0.174499,-0.853887,-0.490334,0.131658,0.562217, +0.000000,-0.894427,-0.447214,0.000000,0.000000,-0.894427,-0.447214,0.848850,0.215669, +-0.107846,-0.945626,-0.306855,0.000000,-0.107846,-0.945626,-0.306855,0.553923,0.437019, +-0.286151,-0.894562,-0.343331,0.000000,-0.286151,-0.894562,-0.343331,0.606016,0.512408, +-0.107846,-0.945626,-0.306855,0.000000,-0.107846,-0.945626,-0.306855,0.553923,0.437019, +-0.212032,-0.964719,-0.156077,0.000000,-0.212032,-0.964719,-0.156077,0.265712,0.743874, +-0.390694,-0.901541,-0.185961,0.000000,-0.390694,-0.901541,-0.185961,0.352845,0.762112, +-0.212032,-0.964719,-0.156077,0.000000,-0.212032,-0.964719,-0.156077,0.265712,0.743874, +-0.309017,-0.951056,0.000000,0.000000,-0.309017,-0.951056,0.000000,0.302245,0.668485, +-0.499999,-0.866026,0.000000,0.000000,-0.499999,-0.866026,0.000000,0.393083,0.683427, +-0.309017,-0.951056,0.000000,0.000000,-0.309017,-0.951056,0.000000,0.302245,0.668485, +-0.395511,-0.905103,0.156077,0.000000,-0.395511,-0.905103,0.156077,0.345491,0.590447, +-0.580461,-0.798935,0.157379,0.000000,-0.580461,-0.798935,0.157379,0.447735,0.590447, +-0.395511,-0.905103,0.156077,0.000000,-0.395511,-0.905103,0.156077,0.345491,0.590447, +-0.468576,-0.828418,0.306855,0.000000,-0.468576,-0.828418,0.306855,0.393984,0.512408, +-0.643075,-0.701637,0.306855,0.000000,-0.643075,-0.701637,0.306855,0.500000,0.511757, +-0.468576,-0.828418,0.306855,0.000000,-0.468576,-0.828418,0.306855,0.393984,0.512408, +-0.525731,-0.723607,0.447214,0.000000,-0.525731,-0.723607,0.447214,0.321589,0.745561, +-0.286151,-0.894562,-0.343331,0.000000,-0.286151,-0.894562,-0.343331,0.606016,0.512408, +-0.174499,-0.853887,-0.490334,0.000000,-0.174499,-0.853887,-0.490334,0.131658,0.562217, +-0.107846,-0.945626,-0.306855,0.000000,-0.107846,-0.945626,-0.306855,0.553923,0.437019, +-0.390694,-0.901541,-0.185961,0.000000,-0.390694,-0.901541,-0.185961,0.352845,0.762112, +-0.286151,-0.894562,-0.343331,0.000000,-0.286151,-0.894562,-0.343331,0.606016,0.512408, +-0.212032,-0.964719,-0.156077,0.000000,-0.212032,-0.964719,-0.156077,0.265712,0.743874, +-0.390694,-0.901541,-0.185961,0.000000,-0.390694,-0.901541,-0.185961,0.352845,0.762112, +-0.309017,-0.951056,0.000000,0.000000,-0.309017,-0.951056,0.000000,0.302245,0.668485, +-0.499999,-0.866026,0.000000,0.000000,-0.499999,-0.866026,0.000000,0.393083,0.683427, +-0.499999,-0.866026,0.000000,0.000000,-0.499999,-0.866026,0.000000,0.393083,0.683427, +-0.395511,-0.905103,0.156077,0.000000,-0.395511,-0.905103,0.156077,0.345491,0.590447, +-0.580461,-0.798935,0.157379,0.000000,-0.580461,-0.798935,0.157379,0.447735,0.590447, +-0.580461,-0.798935,0.157379,0.000000,-0.580461,-0.798935,0.157379,0.447735,0.590447, +-0.468576,-0.828418,0.306855,0.000000,-0.468576,-0.828418,0.306855,0.393984,0.512408, +-0.643075,-0.701637,0.306855,0.000000,-0.643075,-0.701637,0.306855,0.500000,0.511757, +0.932670,0.189647,0.306855,0.000000,0.932670,0.189647,0.306855,0.554653,0.258102, +0.850651,0.276393,0.447214,0.000000,0.850651,0.276393,0.447214,0.750000,0.581230, +0.866018,0.097907,0.490334,0.000000,0.866018,0.097907,0.490334,0.727648,0.480987, +0.939205,0.004289,0.343331,0.000000,0.939205,0.004289,0.343331,0.446077,0.437019, +0.866018,0.097907,0.490334,0.000000,0.866018,0.097907,0.490334,0.727648,0.480987, +0.851981,-0.083904,0.516806,0.000000,0.851981,-0.083904,0.516806,0.695347,0.381573, +0.983024,0.096460,0.156077,0.000000,0.983024,0.096460,0.156077,0.408260,0.332044, +0.932670,0.189647,0.306855,0.000000,0.932670,0.189647,0.306855,0.554653,0.258102, +0.939205,0.004289,0.343331,0.000000,0.939205,0.004289,0.343331,0.446077,0.437019, +0.939205,0.004289,0.343331,0.000000,0.939205,0.004289,0.343331,0.446077,0.437019, +0.932670,0.189647,0.306855,0.000000,0.932670,0.189647,0.306855,0.554653,0.258102, +0.866018,0.097907,0.490334,0.000000,0.866018,0.097907,0.490334,0.727648,0.480987, +0.913545,-0.181898,0.363797,0.000000,0.913545,-0.181898,0.363797,0.178463,0.743874, +0.851981,-0.083904,0.516806,0.000000,0.851981,-0.083904,0.516806,0.695347,0.381573, +0.809017,-0.262866,0.525731,0.000000,0.809017,-0.262866,0.525731,0.654508,0.287337, +0.978148,-0.092981,0.185961,0.000000,0.978148,-0.092981,0.185961,0.437019,0.697392, +0.939205,0.004289,0.343331,0.000000,0.939205,0.004289,0.343331,0.446077,0.437019, +0.913545,-0.181898,0.363797,0.000000,0.913545,-0.181898,0.363797,0.178463,0.743874, +1.000000,-0.000000,0.000000,0.000000,1.000000,-0.000000,0.000000,0.445347,0.130459, +0.983024,0.096460,0.156077,0.000000,0.983024,0.096460,0.156077,0.408260,0.332044, +0.978148,-0.092981,0.185961,0.000000,0.978148,-0.092981,0.185961,0.437019,0.697392, +0.913545,-0.181898,0.363797,0.000000,0.913545,-0.181898,0.363797,0.178463,0.743874, +0.939205,0.004289,0.343331,0.000000,0.939205,0.004289,0.343331,0.446077,0.437019, +0.851981,-0.083904,0.516806,0.000000,0.851981,-0.083904,0.516806,0.695347,0.381573, +0.978148,-0.092981,0.185961,0.000000,0.978148,-0.092981,0.185961,0.437019,0.697392, +0.983024,0.096460,0.156077,0.000000,0.983024,0.096460,0.156077,0.408260,0.332044, +0.939205,0.004289,0.343331,0.000000,0.939205,0.004289,0.343331,0.446077,0.437019, +0.738585,-0.432902,0.516806,0.000000,0.738585,-0.432902,0.516806,0.671537,0.555736, +0.845991,-0.389809,0.363797,0.000000,0.845991,-0.389809,0.363797,0.183922,0.772345, +0.809017,-0.262866,0.525731,0.000000,0.809017,-0.262866,0.525731,0.654508,0.287337, +0.845991,-0.389809,0.363797,0.000000,0.845991,-0.389809,0.363797,0.183922,0.772345, +0.934172,-0.303531,0.187593,0.000000,0.934172,-0.303531,0.187593,0.272352,0.772345, +0.913545,-0.181898,0.363797,0.000000,0.913545,-0.181898,0.363797,0.178463,0.743874, +0.978148,-0.207911,0.000000,0.000000,0.978148,-0.207911,0.000000,0.211325,0.684243, +0.978148,-0.092981,0.185961,0.000000,0.978148,-0.092981,0.185961,0.437019,0.697392, +0.934172,-0.303531,0.187593,0.000000,0.934172,-0.303531,0.187593,0.272352,0.772345, +0.978148,-0.207911,0.000000,0.000000,0.978148,-0.207911,0.000000,0.211325,0.684243, +0.983024,-0.096461,-0.156077,0.000000,0.983024,-0.096461,-0.156077,0.500000,0.196469, +1.000000,-0.000000,0.000000,0.000000,1.000000,-0.000000,0.000000,0.445347,0.130459, +0.845991,-0.389809,0.363797,0.000000,0.845991,-0.389809,0.363797,0.183922,0.772345, +0.913545,-0.181898,0.363797,0.000000,0.913545,-0.181898,0.363797,0.178463,0.743874, +0.809017,-0.262866,0.525731,0.000000,0.809017,-0.262866,0.525731,0.654508,0.287337, +0.934172,-0.303531,0.187593,0.000000,0.934172,-0.303531,0.187593,0.272352,0.772345, +0.978148,-0.092981,0.185961,0.000000,0.978148,-0.092981,0.185961,0.437019,0.697392, +0.913545,-0.181898,0.363797,0.000000,0.913545,-0.181898,0.363797,0.178463,0.743874, +0.978148,-0.207911,0.000000,0.000000,0.978148,-0.207911,0.000000,0.211325,0.684243, +1.000000,-0.000000,0.000000,0.000000,1.000000,-0.000000,0.000000,0.445347,0.130459, +0.978148,-0.092981,0.185961,0.000000,0.978148,-0.092981,0.185961,0.437019,0.697392, +0.643075,-0.588241,0.490334,0.000000,0.643075,-0.588241,0.490334,0.643075,0.453512, +0.757311,-0.555521,0.343331,0.000000,0.757311,-0.555521,0.343331,0.131657,0.683427, +0.738585,-0.432902,0.516806,0.000000,0.738585,-0.432902,0.516806,0.671537,0.555736, +0.757311,-0.555521,0.343331,0.000000,0.757311,-0.555521,0.343331,0.131657,0.683427, +0.845991,-0.499718,0.185961,0.000000,0.845991,-0.499718,0.185961,0.165435,0.590447, +0.845991,-0.389809,0.363797,0.000000,0.845991,-0.389809,0.363797,0.183922,0.772345, +0.845991,-0.499718,0.185961,0.000000,0.845991,-0.499718,0.185961,0.165435,0.590447, +0.913545,-0.406737,0.000000,0.000000,0.913545,-0.406737,0.000000,0.356925,0.762112, +0.934172,-0.303531,0.187593,0.000000,0.934172,-0.303531,0.187593,0.272352,0.772345, +0.913545,-0.406737,0.000000,0.000000,0.913545,-0.406737,0.000000,0.356925,0.762112, +0.939205,-0.305166,-0.157379,0.000000,0.939205,-0.305166,-0.157379,0.304653,0.683427, +0.978148,-0.207911,0.000000,0.000000,0.978148,-0.207911,0.000000,0.211325,0.684243, +0.939205,-0.305166,-0.157379,0.000000,0.939205,-0.305166,-0.157379,0.304653,0.683427, +0.932670,-0.189647,-0.306855,0.000000,0.932670,-0.189647,-0.306855,0.552265,0.277618, +0.983024,-0.096461,-0.156077,0.000000,0.983024,-0.096461,-0.156077,0.500000,0.196469, +0.757311,-0.555521,0.343331,0.000000,0.757311,-0.555521,0.343331,0.131657,0.683427, +0.845991,-0.389809,0.363797,0.000000,0.845991,-0.389809,0.363797,0.183922,0.772345, +0.738585,-0.432902,0.516806,0.000000,0.738585,-0.432902,0.516806,0.671537,0.555736, +0.845991,-0.499718,0.185961,0.000000,0.845991,-0.499718,0.185961,0.165435,0.590447, +0.934172,-0.303531,0.187593,0.000000,0.934172,-0.303531,0.187593,0.272352,0.772345, +0.845991,-0.389809,0.363797,0.000000,0.845991,-0.389809,0.363797,0.183922,0.772345, +0.913545,-0.406737,0.000000,0.000000,0.913545,-0.406737,0.000000,0.356925,0.762112, +0.978148,-0.207911,0.000000,0.000000,0.978148,-0.207911,0.000000,0.211325,0.684243, +0.934172,-0.303531,0.187593,0.000000,0.934172,-0.303531,0.187593,0.272352,0.772345, +0.939205,-0.305166,-0.157379,0.000000,0.939205,-0.305166,-0.157379,0.304653,0.683427, +0.983024,-0.096461,-0.156077,0.000000,0.983024,-0.096461,-0.156077,0.500000,0.196469, +0.978148,-0.207911,0.000000,0.000000,0.978148,-0.207911,0.000000,0.211325,0.684243, +0.525731,-0.723607,0.447214,0.000000,0.525731,-0.723607,0.447214,0.606016,0.354082, +0.643075,-0.701637,0.306855,0.000000,0.643075,-0.701637,0.306855,0.447735,0.277618, +0.643075,-0.588241,0.490334,0.000000,0.643075,-0.588241,0.490334,0.643075,0.453512, +0.643075,-0.701637,0.306855,0.000000,0.643075,-0.701637,0.306855,0.447735,0.277618, +0.738585,-0.655845,0.156077,0.000000,0.738585,-0.655845,0.156077,0.500000,0.349562, +0.757311,-0.555521,0.343331,0.000000,0.757311,-0.555521,0.343331,0.131657,0.683427, +0.738585,-0.655845,0.156077,0.000000,0.738585,-0.655845,0.156077,0.500000,0.349562, +0.809017,-0.587785,0.000000,0.000000,0.809017,-0.587785,0.000000,0.209769,0.268343, +0.845991,-0.499718,0.185961,0.000000,0.845991,-0.499718,0.185961,0.165435,0.590447, +0.809017,-0.587785,0.000000,0.000000,0.809017,-0.587785,0.000000,0.209769,0.268343, +0.851981,-0.499769,-0.156077,0.000000,0.851981,-0.499769,-0.156077,0.265712,0.288582, +0.913545,-0.406737,0.000000,0.000000,0.913545,-0.406737,0.000000,0.356925,0.762112, +0.866018,-0.394782,-0.306855,0.000000,0.866018,-0.394782,-0.306855,0.237134,0.366840, +0.939205,-0.305166,-0.157379,0.000000,0.939205,-0.305166,-0.157379,0.304653,0.683427, +0.851981,-0.499769,-0.156077,0.000000,0.851981,-0.499769,-0.156077,0.265712,0.288582, +0.866018,-0.394782,-0.306855,0.000000,0.866018,-0.394782,-0.306855,0.237134,0.366840, +0.850651,-0.276393,-0.447214,0.000000,0.850651,-0.276393,-0.447214,0.500000,0.960321, +0.932670,-0.189647,-0.306855,0.000000,0.932670,-0.189647,-0.306855,0.552265,0.277618, +0.643075,-0.701637,0.306855,0.000000,0.643075,-0.701637,0.306855,0.447735,0.277618, +0.757311,-0.555521,0.343331,0.000000,0.757311,-0.555521,0.343331,0.131657,0.683427, +0.643075,-0.588241,0.490334,0.000000,0.643075,-0.588241,0.490334,0.643075,0.453512, +0.738585,-0.655845,0.156077,0.000000,0.738585,-0.655845,0.156077,0.500000,0.349562, +0.845991,-0.499718,0.185961,0.000000,0.845991,-0.499718,0.185961,0.165435,0.590447, +0.757311,-0.555521,0.343331,0.000000,0.757311,-0.555521,0.343331,0.131657,0.683427, +0.809017,-0.587785,0.000000,0.000000,0.809017,-0.587785,0.000000,0.209769,0.268343, +0.913545,-0.406737,0.000000,0.000000,0.913545,-0.406737,0.000000,0.356925,0.762112, +0.845991,-0.499718,0.185961,0.000000,0.845991,-0.499718,0.185961,0.165435,0.590447, +0.851981,-0.499769,-0.156077,0.000000,0.851981,-0.499769,-0.156077,0.265712,0.288582, +0.939205,-0.305166,-0.157379,0.000000,0.939205,-0.305166,-0.157379,0.304653,0.683427, +0.913545,-0.406737,0.000000,0.000000,0.913545,-0.406737,0.000000,0.356925,0.762112, +0.866018,-0.394782,-0.306855,0.000000,0.866018,-0.394782,-0.306855,0.237134,0.366840, +0.932670,-0.189647,-0.306855,0.000000,0.932670,-0.189647,-0.306855,0.552265,0.277618, +0.939205,-0.305166,-0.157379,0.000000,0.939205,-0.305166,-0.157379,0.304653,0.683427, +0.107846,0.945626,0.306855,0.000000,0.107846,0.945626,0.306855,0.743874,0.302609, +0.000000,0.894427,0.447214,0.000000,0.000000,0.894427,0.447214,0.268343,0.250971, +0.174499,0.853887,0.490334,0.000000,0.174499,0.853887,0.490334,0.332044,0.283549, +0.286151,0.894562,0.343331,0.000000,0.286151,0.894562,0.343331,0.250001,0.590447, +0.174499,0.853887,0.490334,0.000000,0.174499,0.853887,0.490334,0.332044,0.283549, +0.343074,0.784354,0.516806,0.000000,0.343074,0.784354,0.516806,0.345280,0.205880, +0.212032,0.964719,0.156077,0.000000,0.212032,0.964719,0.156077,0.683427,0.174918, +0.107846,0.945626,0.306855,0.000000,0.107846,0.945626,0.306855,0.743874,0.302609, +0.286151,0.894562,0.343331,0.000000,0.286151,0.894562,0.343331,0.250001,0.590447, +0.286151,0.894562,0.343331,0.000000,0.286151,0.894562,0.343331,0.250001,0.590447, +0.107846,0.945626,0.306855,0.000000,0.107846,0.945626,0.306855,0.743874,0.302609, +0.174499,0.853887,0.490334,0.000000,0.174499,0.853887,0.490334,0.332044,0.283549, +0.455297,0.812623,0.363797,0.000000,0.455297,0.812623,0.363797,0.209769,0.511757, +0.343074,0.784354,0.516806,0.000000,0.343074,0.784354,0.516806,0.345280,0.205880, +0.500000,0.688191,0.525731,0.000000,0.500000,0.688191,0.525731,0.734288,0.288582, +0.390694,0.901541,0.185961,0.000000,0.390694,0.901541,0.185961,0.130708,0.512408, +0.286151,0.894562,0.343331,0.000000,0.286151,0.894562,0.343331,0.250001,0.590447, +0.455297,0.812623,0.363797,0.000000,0.455297,0.812623,0.363797,0.209769,0.511757, +0.309017,0.951056,0.000000,0.000000,0.309017,0.951056,0.000000,0.750000,0.590447, +0.212032,0.964719,0.156077,0.000000,0.212032,0.964719,0.156077,0.683427,0.174918, +0.390694,0.901541,0.185961,0.000000,0.390694,0.901541,0.185961,0.130708,0.512408, +0.455297,0.812623,0.363797,0.000000,0.455297,0.812623,0.363797,0.209769,0.511757, +0.286151,0.894562,0.343331,0.000000,0.286151,0.894562,0.343331,0.250001,0.590447, +0.343074,0.784354,0.516806,0.000000,0.343074,0.784354,0.516806,0.345280,0.205880, +0.390694,0.901541,0.185961,0.000000,0.390694,0.901541,0.185961,0.130708,0.512408, +0.212032,0.964719,0.156077,0.000000,0.212032,0.964719,0.156077,0.683427,0.174918, +0.286151,0.894562,0.343331,0.000000,0.286151,0.894562,0.343331,0.250001,0.590447, +0.639949,0.568662,0.516806,0.000000,0.639949,0.568662,0.516806,0.821537,0.345280, +0.632156,0.684127,0.363797,0.000000,0.632156,0.684127,0.363797,0.178463,0.437019, +0.500000,0.688191,0.525731,0.000000,0.500000,0.688191,0.525731,0.734288,0.288582, +0.632156,0.684127,0.363797,0.000000,0.632156,0.684127,0.363797,0.178463,0.437019, +0.577350,0.794654,0.187593,0.000000,0.577350,0.794654,0.187593,0.446077,0.743874, +0.455297,0.812623,0.363797,0.000000,0.455297,0.812623,0.363797,0.209769,0.511757, +0.499999,0.866026,0.000000,0.000000,0.499999,0.866026,0.000000,0.393984,0.668485, +0.390694,0.901541,0.185961,0.000000,0.390694,0.901541,0.185961,0.130708,0.512408, +0.577350,0.794654,0.187593,0.000000,0.577350,0.794654,0.187593,0.446077,0.743874, +0.499999,0.866026,0.000000,0.000000,0.499999,0.866026,0.000000,0.393984,0.668485, +0.395511,0.905103,-0.156077,0.000000,0.395511,0.905103,-0.156077,0.654508,0.590447, +0.309017,0.951056,0.000000,0.000000,0.309017,0.951056,0.000000,0.750000,0.590447, +0.632156,0.684127,0.363797,0.000000,0.632156,0.684127,0.363797,0.178463,0.437019, +0.455297,0.812623,0.363797,0.000000,0.455297,0.812623,0.363797,0.209769,0.511757, +0.500000,0.688191,0.525731,0.000000,0.500000,0.688191,0.525731,0.734288,0.288582, +0.577350,0.794654,0.187593,0.000000,0.577350,0.794654,0.187593,0.446077,0.743874, +0.390694,0.901541,0.185961,0.000000,0.390694,0.901541,0.185961,0.130708,0.512408, +0.455297,0.812623,0.363797,0.000000,0.455297,0.812623,0.363797,0.209769,0.511757, +0.499999,0.866026,0.000000,0.000000,0.499999,0.866026,0.000000,0.393984,0.668485, +0.309017,0.951056,0.000000,0.000000,0.309017,0.951056,0.000000,0.750000,0.590447, +0.390694,0.901541,0.185961,0.000000,0.390694,0.901541,0.185961,0.130708,0.512408, +0.758172,0.429824,0.490334,0.000000,0.758172,0.429824,0.490334,0.762866,0.366840, +0.762354,0.548581,0.343331,0.000000,0.762354,0.548581,0.343331,0.302244,0.512408, +0.639949,0.568662,0.516806,0.000000,0.639949,0.568662,0.516806,0.821537,0.345280, +0.762354,0.548581,0.343331,0.000000,0.762354,0.548581,0.343331,0.302244,0.512408, +0.736686,0.650164,0.185961,0.000000,0.736686,0.650164,0.185961,0.265712,0.437019, +0.632156,0.684127,0.363797,0.000000,0.632156,0.684127,0.363797,0.178463,0.437019, +0.736686,0.650164,0.185961,0.000000,0.736686,0.650164,0.185961,0.265712,0.437019, +0.669131,0.743144,0.000000,0.000000,0.669131,0.743144,0.000000,0.418781,0.502145, +0.577350,0.794654,0.187593,0.000000,0.577350,0.794654,0.187593,0.446077,0.743874, +0.669131,0.743144,0.000000,0.000000,0.669131,0.743144,0.000000,0.418781,0.502145, +0.580461,0.798935,-0.157379,0.000000,0.580461,0.798935,-0.157379,0.408548,0.409051, +0.499999,0.866026,0.000000,0.000000,0.499999,0.866026,0.000000,0.393984,0.668485, +0.580461,0.798935,-0.157379,0.000000,0.580461,0.798935,-0.157379,0.408548,0.409051, +0.468576,0.828418,-0.306855,0.000000,0.468576,0.828418,-0.306855,0.727648,0.772345, +0.395511,0.905103,-0.156077,0.000000,0.395511,0.905103,-0.156077,0.654508,0.590447, +0.762354,0.548581,0.343331,0.000000,0.762354,0.548581,0.343331,0.302244,0.512408, +0.632156,0.684127,0.363797,0.000000,0.632156,0.684127,0.363797,0.178463,0.437019, +0.639949,0.568662,0.516806,0.000000,0.639949,0.568662,0.516806,0.821537,0.345280, +0.736686,0.650164,0.185961,0.000000,0.736686,0.650164,0.185961,0.265712,0.437019, +0.577350,0.794654,0.187593,0.000000,0.577350,0.794654,0.187593,0.446077,0.743874, +0.632156,0.684127,0.363797,0.000000,0.632156,0.684127,0.363797,0.178463,0.437019, +0.669131,0.743144,0.000000,0.000000,0.669131,0.743144,0.000000,0.418781,0.502145, +0.499999,0.866026,0.000000,0.000000,0.499999,0.866026,0.000000,0.393984,0.668485, +0.577350,0.794654,0.187593,0.000000,0.577350,0.794654,0.187593,0.446077,0.743874, +0.580461,0.798935,-0.157379,0.000000,0.580461,0.798935,-0.157379,0.408548,0.409051, +0.395511,0.905103,-0.156077,0.000000,0.395511,0.905103,-0.156077,0.654508,0.590447, +0.499999,0.866026,0.000000,0.000000,0.499999,0.866026,0.000000,0.393984,0.668485, +0.850651,0.276393,0.447214,0.000000,0.850651,0.276393,0.447214,0.750000,0.581230, +0.866018,0.394782,0.306855,0.000000,0.866018,0.394782,0.306855,0.606016,0.668485, +0.758172,0.429824,0.490334,0.000000,0.758172,0.429824,0.490334,0.762866,0.366840, +0.866018,0.394782,0.306855,0.000000,0.866018,0.394782,0.306855,0.606016,0.668485, +0.851981,0.499768,0.156077,0.000000,0.851981,0.499768,0.156077,0.643075,0.762112, +0.762354,0.548581,0.343331,0.000000,0.762354,0.548581,0.343331,0.302244,0.512408, +0.851981,0.499768,0.156077,0.000000,0.851981,0.499768,0.156077,0.643075,0.762112, +0.809017,0.587785,0.000000,0.000000,0.809017,0.587785,0.000000,0.553923,0.743874, +0.736686,0.650164,0.185961,0.000000,0.736686,0.650164,0.185961,0.265712,0.437019, +0.809017,0.587785,0.000000,0.000000,0.809017,0.587785,0.000000,0.553923,0.743874, +0.738585,0.655845,-0.156077,0.000000,0.738585,0.655845,-0.156077,0.647155,0.268343, +0.669131,0.743144,0.000000,0.000000,0.669131,0.743144,0.000000,0.418781,0.502145, +0.643075,0.701637,-0.306855,0.000000,0.643075,0.701637,-0.306855,0.680365,0.345280, +0.580461,0.798935,-0.157379,0.000000,0.580461,0.798935,-0.157379,0.408548,0.409051, +0.738585,0.655845,-0.156077,0.000000,0.738585,0.655845,-0.156077,0.647155,0.268343, +0.643075,0.701637,-0.306855,0.000000,0.643075,0.701637,-0.306855,0.680365,0.345280, +0.525731,0.723607,-0.447214,0.000000,0.525731,0.723607,-0.447214,0.788675,0.593796, +0.468576,0.828418,-0.306855,0.000000,0.468576,0.828418,-0.306855,0.727648,0.772345, +0.866018,0.394782,0.306855,0.000000,0.866018,0.394782,0.306855,0.606016,0.668485, +0.762354,0.548581,0.343331,0.000000,0.762354,0.548581,0.343331,0.302244,0.512408, +0.758172,0.429824,0.490334,0.000000,0.758172,0.429824,0.490334,0.762866,0.366840, +0.851981,0.499768,0.156077,0.000000,0.851981,0.499768,0.156077,0.643075,0.762112, +0.736686,0.650164,0.185961,0.000000,0.736686,0.650164,0.185961,0.265712,0.437019, +0.762354,0.548581,0.343331,0.000000,0.762354,0.548581,0.343331,0.302244,0.512408, +0.809017,0.587785,0.000000,0.000000,0.809017,0.587785,0.000000,0.553923,0.743874, +0.669131,0.743144,0.000000,0.000000,0.669131,0.743144,0.000000,0.418781,0.502145, +0.736686,0.650164,0.185961,0.000000,0.736686,0.650164,0.185961,0.265712,0.437019, +0.738585,0.655845,-0.156077,0.000000,0.738585,0.655845,-0.156077,0.647155,0.268343, +0.580461,0.798935,-0.157379,0.000000,0.580461,0.798935,-0.157379,0.408548,0.409051, +0.669131,0.743144,0.000000,0.000000,0.669131,0.743144,0.000000,0.418781,0.502145, +0.643075,0.701637,-0.306855,0.000000,0.643075,0.701637,-0.306855,0.680365,0.345280, +0.468576,0.828418,-0.306855,0.000000,0.468576,0.828418,-0.306855,0.727648,0.772345, +0.580461,0.798935,-0.157379,0.000000,0.580461,0.798935,-0.157379,0.408548,0.409051, +-0.866018,0.394783,0.306855,0.000000,-0.866018,0.394783,0.306855,0.511757,0.652583, +-0.850651,0.276393,0.447214,0.000000,-0.850651,0.276393,0.447214,0.588426,0.872062, +-0.758172,0.429824,0.490334,0.000000,-0.758172,0.429824,0.490334,0.672996,0.831089, +-0.762354,0.548581,0.343331,0.000000,-0.762354,0.548581,0.343331,0.497466,0.453510, +-0.758172,0.429824,0.490334,0.000000,-0.758172,0.429824,0.490334,0.672996,0.831089, +-0.639949,0.568662,0.516806,0.000000,-0.639949,0.568662,0.516806,0.761425,0.766840, +-0.851981,0.499769,0.156077,0.000000,-0.851981,0.499769,0.156077,0.590447,0.603956, +-0.866018,0.394783,0.306855,0.000000,-0.866018,0.394783,0.306855,0.511757,0.652583, +-0.762354,0.548581,0.343331,0.000000,-0.762354,0.548581,0.343331,0.497466,0.453510, +-0.762354,0.548581,0.343331,0.000000,-0.762354,0.548581,0.343331,0.497466,0.453510, +-0.866018,0.394783,0.306855,0.000000,-0.866018,0.394783,0.306855,0.511757,0.652583, +-0.758172,0.429824,0.490334,0.000000,-0.758172,0.429824,0.490334,0.672996,0.831089, +-0.632156,0.684127,0.363797,0.000000,-0.632156,0.684127,0.363797,0.408548,0.305095, +-0.639949,0.568662,0.516806,0.000000,-0.639949,0.568662,0.516806,0.761425,0.766840, +-0.500000,0.688191,0.525731,0.000000,-0.500000,0.688191,0.525731,0.826527,0.699071, +-0.736685,0.650164,0.185961,0.000000,-0.736685,0.650164,0.185961,0.496650,0.348235, +-0.762354,0.548581,0.343331,0.000000,-0.762354,0.548581,0.343331,0.497466,0.453510, +-0.632156,0.684127,0.363797,0.000000,-0.632156,0.684127,0.363797,0.408548,0.305095, +-0.809017,0.587785,0.000000,0.000000,-0.809017,0.587785,0.000000,0.683427,0.546490, +-0.851981,0.499769,0.156077,0.000000,-0.851981,0.499769,0.156077,0.590447,0.603956, +-0.736685,0.650164,0.185961,0.000000,-0.736685,0.650164,0.185961,0.496650,0.348235, +-0.632156,0.684127,0.363797,0.000000,-0.632156,0.684127,0.363797,0.408548,0.305095, +-0.762354,0.548581,0.343331,0.000000,-0.762354,0.548581,0.343331,0.497466,0.453510, +-0.639949,0.568662,0.516806,0.000000,-0.639949,0.568662,0.516806,0.761425,0.766840, +-0.736685,0.650164,0.185961,0.000000,-0.736685,0.650164,0.185961,0.496650,0.348235, +-0.851981,0.499769,0.156077,0.000000,-0.851981,0.499769,0.156077,0.590447,0.603956, +-0.762354,0.548581,0.343331,0.000000,-0.762354,0.548581,0.343331,0.497466,0.453510, +-0.343074,0.784354,0.516806,0.000000,-0.343074,0.784354,0.516806,0.268343,0.699071, +-0.455297,0.812623,0.363797,0.000000,-0.455297,0.812623,0.363797,0.590447,0.396044, +-0.500000,0.688191,0.525731,0.000000,-0.500000,0.688191,0.525731,0.826527,0.699071, +-0.577350,0.794655,0.187593,0.000000,-0.577350,0.794655,0.187593,0.418781,0.222239, +-0.632156,0.684127,0.363797,0.000000,-0.632156,0.684127,0.363797,0.408548,0.305095, +-0.455297,0.812623,0.363797,0.000000,-0.455297,0.812623,0.363797,0.590447,0.396044, +-0.669131,0.743144,0.000000,0.000000,-0.669131,0.743144,0.000000,0.497466,0.250141, +-0.736685,0.650164,0.185961,0.000000,-0.736685,0.650164,0.185961,0.496650,0.348235, +-0.577350,0.794655,0.187593,0.000000,-0.577350,0.794655,0.187593,0.418781,0.222239, +-0.738585,0.655845,-0.156077,0.000000,-0.738585,0.655845,-0.156077,0.762112,0.497855, +-0.809017,0.587785,0.000000,0.000000,-0.809017,0.587785,0.000000,0.683427,0.546490, +-0.669131,0.743144,0.000000,0.000000,-0.669131,0.743144,0.000000,0.497466,0.250141, +-0.455297,0.812623,0.363797,0.000000,-0.455297,0.812623,0.363797,0.590447,0.396044, +-0.632156,0.684127,0.363797,0.000000,-0.632156,0.684127,0.363797,0.408548,0.305095, +-0.500000,0.688191,0.525731,0.000000,-0.500000,0.688191,0.525731,0.826527,0.699071, +-0.577350,0.794655,0.187593,0.000000,-0.577350,0.794655,0.187593,0.418781,0.222239, +-0.736685,0.650164,0.185961,0.000000,-0.736685,0.650164,0.185961,0.496650,0.348235, +-0.632156,0.684127,0.363797,0.000000,-0.632156,0.684127,0.363797,0.408548,0.305095, +-0.669131,0.743144,0.000000,0.000000,-0.669131,0.743144,0.000000,0.497466,0.250141, +-0.809017,0.587785,0.000000,0.000000,-0.809017,0.587785,0.000000,0.683427,0.546490, +-0.736685,0.650164,0.185961,0.000000,-0.736685,0.650164,0.185961,0.496650,0.348235, +-0.174499,0.853887,0.490334,0.000000,-0.174499,0.853887,0.490334,0.500000,0.836442, +-0.286151,0.894562,0.343331,0.000000,-0.286151,0.894562,0.343331,0.590447,0.296632, +-0.343074,0.784354,0.516806,0.000000,-0.343074,0.784354,0.516806,0.268343,0.699071, +-0.286151,0.894562,0.343331,0.000000,-0.286151,0.894562,0.343331,0.590447,0.296632, +-0.390694,0.901541,0.185961,0.000000,-0.390694,0.901541,0.185961,0.669136,0.347417, +-0.455297,0.812623,0.363797,0.000000,-0.455297,0.812623,0.363797,0.590447,0.396044, +-0.390694,0.901541,0.185961,0.000000,-0.390694,0.901541,0.185961,0.669136,0.347417, +-0.499999,0.866026,0.000000,0.000000,-0.499999,0.866026,0.000000,0.437019,0.149181, +-0.577350,0.794655,0.187593,0.000000,-0.577350,0.794655,0.187593,0.418781,0.222239, +-0.580460,0.798935,-0.157379,0.000000,-0.580460,0.798935,-0.157379,0.643075,0.418781, +-0.669131,0.743144,0.000000,0.000000,-0.669131,0.743144,0.000000,0.497466,0.250141, +-0.499999,0.866026,0.000000,0.000000,-0.499999,0.866026,0.000000,0.437019,0.149181, +-0.580460,0.798935,-0.157379,0.000000,-0.580460,0.798935,-0.157379,0.643075,0.418781, +-0.643075,0.701637,-0.306855,0.000000,-0.643075,0.701637,-0.306855,0.821537,0.437019, +-0.738585,0.655845,-0.156077,0.000000,-0.738585,0.655845,-0.156077,0.762112,0.497855, +-0.286151,0.894562,0.343331,0.000000,-0.286151,0.894562,0.343331,0.590447,0.296632, +-0.455297,0.812623,0.363797,0.000000,-0.455297,0.812623,0.363797,0.590447,0.396044, +-0.343074,0.784354,0.516806,0.000000,-0.343074,0.784354,0.516806,0.268343,0.699071, +-0.390694,0.901541,0.185961,0.000000,-0.390694,0.901541,0.185961,0.669136,0.347417, +-0.577350,0.794655,0.187593,0.000000,-0.577350,0.794655,0.187593,0.418781,0.222239, +-0.455297,0.812623,0.363797,0.000000,-0.455297,0.812623,0.363797,0.590447,0.396044, +-0.499999,0.866026,0.000000,0.000000,-0.499999,0.866026,0.000000,0.437019,0.149181, +-0.669131,0.743144,0.000000,0.000000,-0.669131,0.743144,0.000000,0.497466,0.250141, +-0.577350,0.794655,0.187593,0.000000,-0.577350,0.794655,0.187593,0.418781,0.222239, +-0.580460,0.798935,-0.157379,0.000000,-0.580460,0.798935,-0.157379,0.643075,0.418781, +-0.738585,0.655845,-0.156077,0.000000,-0.738585,0.655845,-0.156077,0.762112,0.497855, +-0.669131,0.743144,0.000000,0.000000,-0.669131,0.743144,0.000000,0.497466,0.250141, +0.000000,0.894427,0.447214,0.000000,0.000000,0.894427,0.447214,0.268343,0.250971, +-0.107846,0.945626,0.306855,0.000000,-0.107846,0.945626,0.306855,0.869292,0.512408, +-0.174499,0.853887,0.490334,0.000000,-0.174499,0.853887,0.490334,0.500000,0.836442, +-0.107846,0.945626,0.306855,0.000000,-0.107846,0.945626,0.306855,0.869292,0.512408, +-0.212031,0.964719,0.156077,0.000000,-0.212031,0.964719,0.156077,0.512408,0.172078, +-0.286151,0.894562,0.343331,0.000000,-0.286151,0.894562,0.343331,0.590447,0.296632, +-0.212031,0.964719,0.156077,0.000000,-0.212031,0.964719,0.156077,0.512408,0.172078, +-0.309017,0.951057,0.000000,0.000000,-0.309017,0.951057,0.000000,0.590447,0.128428, +-0.390694,0.901541,0.185961,0.000000,-0.390694,0.901541,0.185961,0.669136,0.347417, +-0.395510,0.905103,-0.156077,0.000000,-0.395510,0.905103,-0.156077,0.590447,0.206107, +-0.499999,0.866026,0.000000,0.000000,-0.499999,0.866026,0.000000,0.437019,0.149181, +-0.309017,0.951057,0.000000,0.000000,-0.309017,0.951057,0.000000,0.590447,0.128428, +-0.468576,0.828418,-0.306855,0.000000,-0.468576,0.828418,-0.306855,0.668485,0.250116, +-0.580460,0.798935,-0.157379,0.000000,-0.580460,0.798935,-0.157379,0.643075,0.418781, +-0.395510,0.905103,-0.156077,0.000000,-0.395510,0.905103,-0.156077,0.590447,0.206107, +-0.525731,0.723607,-0.447214,0.000000,-0.525731,0.723607,-0.447214,0.446077,0.574219, +-0.643075,0.701637,-0.306855,0.000000,-0.643075,0.701637,-0.306855,0.821537,0.437019, +-0.468576,0.828418,-0.306855,0.000000,-0.468576,0.828418,-0.306855,0.668485,0.250116, +-0.107846,0.945626,0.306855,0.000000,-0.107846,0.945626,0.306855,0.869292,0.512408, +-0.286151,0.894562,0.343331,0.000000,-0.286151,0.894562,0.343331,0.590447,0.296632, +-0.174499,0.853887,0.490334,0.000000,-0.174499,0.853887,0.490334,0.500000,0.836442, +-0.212031,0.964719,0.156077,0.000000,-0.212031,0.964719,0.156077,0.512408,0.172078, +-0.390694,0.901541,0.185961,0.000000,-0.390694,0.901541,0.185961,0.669136,0.347417, +-0.286151,0.894562,0.343331,0.000000,-0.286151,0.894562,0.343331,0.590447,0.296632, +-0.309017,0.951057,0.000000,0.000000,-0.309017,0.951057,0.000000,0.590447,0.128428, +-0.499999,0.866026,0.000000,0.000000,-0.499999,0.866026,0.000000,0.437019,0.149181, +-0.390694,0.901541,0.185961,0.000000,-0.390694,0.901541,0.185961,0.669136,0.347417, +-0.395510,0.905103,-0.156077,0.000000,-0.395510,0.905103,-0.156077,0.590447,0.206107, +-0.580460,0.798935,-0.157379,0.000000,-0.580460,0.798935,-0.157379,0.643075,0.418781, +-0.499999,0.866026,0.000000,0.000000,-0.499999,0.866026,0.000000,0.437019,0.149181, +-0.468576,0.828418,-0.306855,0.000000,-0.468576,0.828418,-0.306855,0.668485,0.250116, +-0.643075,0.701637,-0.306855,0.000000,-0.643075,0.701637,-0.306855,0.821537,0.437019, +-0.580460,0.798935,-0.157379,0.000000,-0.580460,0.798935,-0.157379,0.643075,0.418781, +-0.643075,-0.701637,0.306855,0.000000,-0.643075,-0.701637,0.306855,0.500000,0.511757, +-0.525731,-0.723607,0.447214,0.000000,-0.525731,-0.723607,0.447214,0.321589,0.745561, +-0.643075,-0.588241,0.490334,0.000000,-0.643075,-0.588241,0.490334,0.411570,0.803612, +-0.757312,-0.555521,0.343331,0.000000,-0.757312,-0.555521,0.343331,0.727648,0.408548, +-0.643075,-0.588241,0.490334,0.000000,-0.643075,-0.588241,0.490334,0.411570,0.803612, +-0.738585,-0.432902,0.516806,0.000000,-0.738585,-0.432902,0.516806,0.250000,0.581230, +-0.738585,-0.655845,0.156077,0.000000,-0.738585,-0.655845,0.156077,0.552265,0.590447, +-0.643075,-0.701637,0.306855,0.000000,-0.643075,-0.701637,0.306855,0.500000,0.511757, +-0.757312,-0.555521,0.343331,0.000000,-0.757312,-0.555521,0.343331,0.727648,0.408548, +-0.757312,-0.555521,0.343331,0.000000,-0.757312,-0.555521,0.343331,0.727648,0.408548, +-0.643075,-0.701637,0.306855,0.000000,-0.643075,-0.701637,0.306855,0.500000,0.511757, +-0.643075,-0.588241,0.490334,0.000000,-0.643075,-0.588241,0.490334,0.411570,0.803612, +-0.845991,-0.389809,0.363797,0.000000,-0.845991,-0.389809,0.363797,0.695347,0.497466, +-0.738585,-0.432902,0.516806,0.000000,-0.738585,-0.432902,0.516806,0.250000,0.581230, +-0.809017,-0.262865,0.525731,0.000000,-0.809017,-0.262865,0.525731,0.327004,0.649190, +-0.845991,-0.499718,0.185961,0.000000,-0.845991,-0.499718,0.185961,0.816078,0.408548, +-0.757312,-0.555521,0.343331,0.000000,-0.757312,-0.555521,0.343331,0.727648,0.408548, +-0.845991,-0.389809,0.363797,0.000000,-0.845991,-0.389809,0.363797,0.695347,0.497466, +-0.809017,-0.587785,0.000000,0.000000,-0.809017,-0.587785,0.000000,0.554653,0.772345, +-0.738585,-0.655845,0.156077,0.000000,-0.738585,-0.655845,0.156077,0.552265,0.590447, +-0.845991,-0.499718,0.185961,0.000000,-0.845991,-0.499718,0.185961,0.816078,0.408548, +-0.845991,-0.389809,0.363797,0.000000,-0.845991,-0.389809,0.363797,0.695347,0.497466, +-0.757312,-0.555521,0.343331,0.000000,-0.757312,-0.555521,0.343331,0.727648,0.408548, +-0.738585,-0.432902,0.516806,0.000000,-0.738585,-0.432902,0.516806,0.250000,0.581230, +-0.845991,-0.499718,0.185961,0.000000,-0.845991,-0.499718,0.185961,0.816078,0.408548, +-0.738585,-0.655845,0.156077,0.000000,-0.738585,-0.655845,0.156077,0.552265,0.590447, +-0.757312,-0.555521,0.343331,0.000000,-0.757312,-0.555521,0.343331,0.727648,0.408548, +-0.851981,-0.083904,0.516806,0.000000,-0.851981,-0.083904,0.516806,0.411570,0.710631, +-0.913545,-0.181898,0.363797,0.000000,-0.913545,-0.181898,0.363797,0.788675,0.496650, +-0.809017,-0.262865,0.525731,0.000000,-0.809017,-0.262865,0.525731,0.327004,0.649190, +-0.934172,-0.303531,0.187593,0.000000,-0.934172,-0.303531,0.187593,0.418781,0.774291, +-0.845991,-0.389809,0.363797,0.000000,-0.845991,-0.389809,0.363797,0.695347,0.497466, +-0.913545,-0.181898,0.363797,0.000000,-0.913545,-0.181898,0.363797,0.788675,0.496650, +-0.913545,-0.406737,0.000000,0.000000,-0.913545,-0.406737,0.000000,0.497466,0.825082, +-0.845991,-0.499718,0.185961,0.000000,-0.845991,-0.499718,0.185961,0.816078,0.408548, +-0.934172,-0.303531,0.187593,0.000000,-0.934172,-0.303531,0.187593,0.418781,0.774291, +-0.851981,-0.499768,-0.156077,0.000000,-0.851981,-0.499768,-0.156077,0.734288,0.743874, +-0.809017,-0.587785,0.000000,0.000000,-0.809017,-0.587785,0.000000,0.554653,0.772345, +-0.913545,-0.406737,0.000000,0.000000,-0.913545,-0.406737,0.000000,0.497466,0.825082, +-0.913545,-0.181898,0.363797,0.000000,-0.913545,-0.181898,0.363797,0.788675,0.496650, +-0.845991,-0.389809,0.363797,0.000000,-0.845991,-0.389809,0.363797,0.695347,0.497466, +-0.809017,-0.262865,0.525731,0.000000,-0.809017,-0.262865,0.525731,0.327004,0.649190, +-0.934172,-0.303531,0.187593,0.000000,-0.934172,-0.303531,0.187593,0.418781,0.774291, +-0.845991,-0.499718,0.185961,0.000000,-0.845991,-0.499718,0.185961,0.816078,0.408548, +-0.845991,-0.389809,0.363797,0.000000,-0.845991,-0.389809,0.363797,0.695347,0.497466, +-0.913545,-0.406737,0.000000,0.000000,-0.913545,-0.406737,0.000000,0.497466,0.825082, +-0.809017,-0.587785,0.000000,0.000000,-0.809017,-0.587785,0.000000,0.554653,0.772345, +-0.845991,-0.499718,0.185961,0.000000,-0.845991,-0.499718,0.185961,0.816078,0.408548, +-0.866018,0.097907,0.490334,0.000000,-0.866018,0.097907,0.490334,0.328463,0.555736, +-0.939205,0.004289,0.343331,0.000000,-0.939205,0.004289,0.343331,0.408548,0.842063, +-0.851981,-0.083904,0.516806,0.000000,-0.851981,-0.083904,0.516806,0.411570,0.710631, +-0.939205,0.004289,0.343331,0.000000,-0.939205,0.004289,0.343331,0.408548,0.842063, +-0.978148,-0.092980,0.185961,0.000000,-0.978148,-0.092980,0.185961,0.868343,0.497466, +-0.913545,-0.181898,0.363797,0.000000,-0.913545,-0.181898,0.363797,0.788675,0.496650, +-0.978148,-0.092980,0.185961,0.000000,-0.978148,-0.092980,0.185961,0.868343,0.497466, +-0.978148,-0.207911,0.000000,0.000000,-0.978148,-0.207911,0.000000,0.790231,0.669136, +-0.934172,-0.303531,0.187593,0.000000,-0.934172,-0.303531,0.187593,0.418781,0.774291, +-0.939205,-0.305166,-0.157379,0.000000,-0.939205,-0.305166,-0.157379,0.590447,0.871572, +-0.913545,-0.406737,0.000000,0.000000,-0.913545,-0.406737,0.000000,0.497466,0.825082, +-0.978148,-0.207911,0.000000,0.000000,-0.978148,-0.207911,0.000000,0.790231,0.669136, +-0.939205,-0.305166,-0.157379,0.000000,-0.939205,-0.305166,-0.157379,0.590447,0.871572, +-0.866018,-0.394782,-0.306855,0.000000,-0.866018,-0.394782,-0.306855,0.512408,0.749884, +-0.851981,-0.499768,-0.156077,0.000000,-0.851981,-0.499768,-0.156077,0.734288,0.743874, +-0.939205,0.004289,0.343331,0.000000,-0.939205,0.004289,0.343331,0.408548,0.842063, +-0.913545,-0.181898,0.363797,0.000000,-0.913545,-0.181898,0.363797,0.788675,0.496650, +-0.851981,-0.083904,0.516806,0.000000,-0.851981,-0.083904,0.516806,0.411570,0.710631, +-0.978148,-0.092980,0.185961,0.000000,-0.978148,-0.092980,0.185961,0.868343,0.497466, +-0.934172,-0.303531,0.187593,0.000000,-0.934172,-0.303531,0.187593,0.418781,0.774291, +-0.913545,-0.181898,0.363797,0.000000,-0.913545,-0.181898,0.363797,0.788675,0.496650, +-0.978148,-0.207911,0.000000,0.000000,-0.978148,-0.207911,0.000000,0.790231,0.669136, +-0.913545,-0.406737,0.000000,0.000000,-0.913545,-0.406737,0.000000,0.497466,0.825082, +-0.934172,-0.303531,0.187593,0.000000,-0.934172,-0.303531,0.187593,0.418781,0.774291, +-0.939205,-0.305166,-0.157379,0.000000,-0.939205,-0.305166,-0.157379,0.590447,0.871572, +-0.851981,-0.499768,-0.156077,0.000000,-0.851981,-0.499768,-0.156077,0.734288,0.743874, +-0.913545,-0.406737,0.000000,0.000000,-0.913545,-0.406737,0.000000,0.497466,0.825082, +-0.850651,0.276393,0.447214,0.000000,-0.850651,0.276393,0.447214,0.588426,0.872062, +-0.932670,0.189647,0.306855,0.000000,-0.932670,0.189647,0.306855,0.590447,0.793893, +-0.866018,0.097907,0.490334,0.000000,-0.866018,0.097907,0.490334,0.328463,0.555736, +-0.932670,0.189647,0.306855,0.000000,-0.932670,0.189647,0.306855,0.590447,0.793893, +-0.983024,0.096461,0.156077,0.000000,-0.983024,0.096461,0.156077,0.668485,0.827922, +-0.939205,0.004289,0.343331,0.000000,-0.939205,0.004289,0.343331,0.408548,0.842063, +-0.983024,0.096461,0.156077,0.000000,-0.983024,0.096461,0.156077,0.668485,0.827922, +-1.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.000000,0.743874,0.850819, +-0.978148,-0.092980,0.185961,0.000000,-0.978148,-0.092980,0.185961,0.868343,0.497466, +-0.983024,-0.096460,-0.156077,0.000000,-0.983024,-0.096460,-0.156077,0.821537,0.743874, +-0.978148,-0.207911,0.000000,0.000000,-0.978148,-0.207911,0.000000,0.790231,0.669136, +-1.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.000000,0.743874,0.850819, +-0.932670,-0.189647,-0.306855,0.000000,-0.932670,-0.189647,-0.306855,0.437019,0.594823, +-0.939205,-0.305166,-0.157379,0.000000,-0.939205,-0.305166,-0.157379,0.590447,0.871572, +-0.983024,-0.096460,-0.156077,0.000000,-0.983024,-0.096460,-0.156077,0.821537,0.743874, +-0.850651,-0.276393,-0.447214,0.000000,-0.850651,-0.276393,-0.447214,0.445347,0.922791, +-0.866018,-0.394782,-0.306855,0.000000,-0.866018,-0.394782,-0.306855,0.512408,0.749884, +-0.932670,-0.189647,-0.306855,0.000000,-0.932670,-0.189647,-0.306855,0.437019,0.594823, +-0.932670,0.189647,0.306855,0.000000,-0.932670,0.189647,0.306855,0.590447,0.793893, +-0.939205,0.004289,0.343331,0.000000,-0.939205,0.004289,0.343331,0.408548,0.842063, +-0.866018,0.097907,0.490334,0.000000,-0.866018,0.097907,0.490334,0.328463,0.555736, +-0.983024,0.096461,0.156077,0.000000,-0.983024,0.096461,0.156077,0.668485,0.827922, +-0.978148,-0.092980,0.185961,0.000000,-0.978148,-0.092980,0.185961,0.868343,0.497466, +-0.939205,0.004289,0.343331,0.000000,-0.939205,0.004289,0.343331,0.408548,0.842063, +-1.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.000000,0.743874,0.850819, +-0.978148,-0.207911,0.000000,0.000000,-0.978148,-0.207911,0.000000,0.790231,0.669136, +-0.978148,-0.092980,0.185961,0.000000,-0.978148,-0.092980,0.185961,0.868343,0.497466, +-0.983024,-0.096460,-0.156077,0.000000,-0.983024,-0.096460,-0.156077,0.821537,0.743874, +-0.939205,-0.305166,-0.157379,0.000000,-0.939205,-0.305166,-0.157379,0.590447,0.871572, +-0.978148,-0.207911,0.000000,0.000000,-0.978148,-0.207911,0.000000,0.790231,0.669136, +-0.932670,-0.189647,-0.306855,0.000000,-0.932670,-0.189647,-0.306855,0.437019,0.594823, +-0.866018,-0.394782,-0.306855,0.000000,-0.866018,-0.394782,-0.306855,0.512408,0.749884, +-0.939205,-0.305166,-0.157379,0.000000,-0.939205,-0.305166,-0.157379,0.590447,0.871572, +0.468576,-0.828418,0.306855,0.000000,0.468576,-0.828418,0.306855,0.178463,0.345280, +0.525731,-0.723607,0.447214,0.000000,0.525731,-0.723607,0.447214,0.606016,0.354082, +0.360730,-0.793377,0.490334,0.000000,0.360730,-0.793377,0.490334,0.446077,0.425781, +0.294309,-0.891911,0.343331,0.000000,0.294309,-0.891911,0.343331,0.869292,0.668485, +0.360730,-0.793377,0.490334,0.000000,0.360730,-0.793377,0.490334,0.446077,0.425781, +0.183479,-0.836210,0.516806,0.000000,0.183479,-0.836210,0.516806,0.258102,0.766841, +0.395510,-0.905103,0.156077,0.000000,0.395510,-0.905103,0.156077,0.131657,0.437784, +0.468576,-0.828418,0.306855,0.000000,0.468576,-0.828418,0.306855,0.178463,0.345280, +0.294309,-0.891911,0.343331,0.000000,0.294309,-0.891911,0.343331,0.869292,0.668485, +0.294309,-0.891911,0.343331,0.000000,0.294309,-0.891911,0.343331,0.869292,0.668485, +0.468576,-0.828418,0.306855,0.000000,0.468576,-0.828418,0.306855,0.178463,0.345280, +0.360730,-0.793377,0.490334,0.000000,0.360730,-0.793377,0.490334,0.446077,0.425781, +0.109305,-0.925043,0.363797,0.000000,0.109305,-0.925043,0.363797,0.183922,0.408548, +0.183479,-0.836210,0.516806,0.000000,0.183479,-0.836210,0.516806,0.258102,0.766841, +-0.000000,-0.850651,0.525731,0.000000,-0.000000,-0.850651,0.525731,0.238575,0.258102, +0.213834,-0.959006,0.185961,0.000000,0.213834,-0.959006,0.185961,0.272352,0.408548, +0.294309,-0.891911,0.343331,0.000000,0.294309,-0.891911,0.343331,0.869292,0.668485, +0.109305,-0.925043,0.363797,0.000000,0.109305,-0.925043,0.363797,0.183922,0.408548, +0.309017,-0.951057,0.000000,0.000000,0.309017,-0.951057,0.000000,0.183922,0.509719, +0.395510,-0.905103,0.156077,0.000000,0.395510,-0.905103,0.156077,0.131657,0.437784, +0.213834,-0.959006,0.185961,0.000000,0.213834,-0.959006,0.185961,0.272352,0.408548, +0.109305,-0.925043,0.363797,0.000000,0.109305,-0.925043,0.363797,0.183922,0.408548, +0.294309,-0.891911,0.343331,0.000000,0.294309,-0.891911,0.343331,0.869292,0.668485, +0.183479,-0.836210,0.516806,0.000000,0.183479,-0.836210,0.516806,0.258102,0.766841, +0.213834,-0.959006,0.185961,0.000000,0.213834,-0.959006,0.185961,0.272352,0.408548, +0.395510,-0.905103,0.156077,0.000000,0.395510,-0.905103,0.156077,0.131657,0.437784, +0.294309,-0.891911,0.343331,0.000000,0.294309,-0.891911,0.343331,0.869292,0.668485, +-0.183479,-0.836210,0.516806,0.000000,-0.183479,-0.836210,0.516806,0.180025,0.332044, +-0.109305,-0.925043,0.363797,0.000000,-0.109305,-0.925043,0.363797,0.211325,0.496650, +-0.000000,-0.850651,0.525731,0.000000,-0.000000,-0.850651,0.525731,0.238575,0.258102, +-0.109305,-0.925043,0.363797,0.000000,-0.109305,-0.925043,0.363797,0.211325,0.496650, +-0.000000,-0.982247,0.187593,0.000000,-0.000000,-0.982247,0.187593,0.131658,0.497466, +0.109305,-0.925043,0.363797,0.000000,0.109305,-0.925043,0.363797,0.183922,0.408548, +0.104529,-0.994522,0.000000,0.000000,0.104529,-0.994522,0.000000,0.356925,0.418781, +0.213834,-0.959006,0.185961,0.000000,0.213834,-0.959006,0.185961,0.272352,0.408548, +-0.000000,-0.982247,0.187593,0.000000,-0.000000,-0.982247,0.187593,0.131658,0.497466, +0.104529,-0.994522,0.000000,0.000000,0.104529,-0.994522,0.000000,0.356925,0.418781, +0.212032,-0.964719,-0.156077,0.000000,0.212032,-0.964719,-0.156077,0.272352,0.480987, +0.309017,-0.951057,0.000000,0.000000,0.309017,-0.951057,0.000000,0.183922,0.509719, +-0.109305,-0.925043,0.363797,0.000000,-0.109305,-0.925043,0.363797,0.211325,0.496650, +0.109305,-0.925043,0.363797,0.000000,0.109305,-0.925043,0.363797,0.183922,0.408548, +-0.000000,-0.850651,0.525731,0.000000,-0.000000,-0.850651,0.525731,0.238575,0.258102, +-0.000000,-0.982247,0.187593,0.000000,-0.000000,-0.982247,0.187593,0.131658,0.497466, +0.213834,-0.959006,0.185961,0.000000,0.213834,-0.959006,0.185961,0.272352,0.408548, +0.109305,-0.925043,0.363797,0.000000,0.109305,-0.925043,0.363797,0.183922,0.408548, +0.104529,-0.994522,0.000000,0.000000,0.104529,-0.994522,0.000000,0.356925,0.418781, +0.309017,-0.951057,0.000000,0.000000,0.309017,-0.951057,0.000000,0.183922,0.509719, +0.213834,-0.959006,0.185961,0.000000,0.213834,-0.959006,0.185961,0.272352,0.408548, +-0.360730,-0.793377,0.490334,0.000000,-0.360730,-0.793377,0.490334,0.327004,0.258102, +-0.294310,-0.891911,0.343331,0.000000,-0.294310,-0.891911,0.343331,0.304653,0.497466, +-0.183479,-0.836210,0.516806,0.000000,-0.183479,-0.836210,0.516806,0.180025,0.332044, +-0.294310,-0.891911,0.343331,0.000000,-0.294310,-0.891911,0.343331,0.304653,0.497466, +-0.213835,-0.959006,0.185961,0.000000,-0.213835,-0.959006,0.185961,0.209770,0.669136, +-0.109305,-0.925043,0.363797,0.000000,-0.109305,-0.925043,0.363797,0.211325,0.496650, +-0.213835,-0.959006,0.185961,0.000000,-0.213835,-0.959006,0.185961,0.209770,0.669136, +-0.104529,-0.994522,0.000000,0.000000,-0.104529,-0.994522,0.000000,0.130708,0.668485, +-0.000000,-0.982247,0.187593,0.000000,-0.000000,-0.982247,0.187593,0.131658,0.497466, +-0.104529,-0.994522,0.000000,0.000000,-0.104529,-0.994522,0.000000,0.130708,0.668485, +-0.000000,-0.987538,-0.157379,0.000000,-0.000000,-0.987538,-0.157379,0.647155,0.418781, +0.104529,-0.994522,0.000000,0.000000,0.104529,-0.994522,0.000000,0.356925,0.418781, +-0.000000,-0.987538,-0.157379,0.000000,-0.000000,-0.987538,-0.157379,0.647155,0.418781, +0.107846,-0.945626,-0.306855,0.000000,0.107846,-0.945626,-0.306855,0.356925,0.453512, +0.212032,-0.964719,-0.156077,0.000000,0.212032,-0.964719,-0.156077,0.272352,0.480987, +-0.294310,-0.891911,0.343331,0.000000,-0.294310,-0.891911,0.343331,0.304653,0.497466, +-0.109305,-0.925043,0.363797,0.000000,-0.109305,-0.925043,0.363797,0.211325,0.496650, +-0.183479,-0.836210,0.516806,0.000000,-0.183479,-0.836210,0.516806,0.180025,0.332044, +-0.213835,-0.959006,0.185961,0.000000,-0.213835,-0.959006,0.185961,0.209770,0.669136, +-0.000000,-0.982247,0.187593,0.000000,-0.000000,-0.982247,0.187593,0.131658,0.497466, +-0.109305,-0.925043,0.363797,0.000000,-0.109305,-0.925043,0.363797,0.211325,0.496650, +-0.104529,-0.994522,0.000000,0.000000,-0.104529,-0.994522,0.000000,0.130708,0.668485, +0.104529,-0.994522,0.000000,0.000000,0.104529,-0.994522,0.000000,0.356925,0.418781, +-0.000000,-0.982247,0.187593,0.000000,-0.000000,-0.982247,0.187593,0.131658,0.497466, +-0.000000,-0.987538,-0.157379,0.000000,-0.000000,-0.987538,-0.157379,0.647155,0.418781, +0.212032,-0.964719,-0.156077,0.000000,0.212032,-0.964719,-0.156077,0.272352,0.480987, +0.104529,-0.994522,0.000000,0.000000,0.104529,-0.994522,0.000000,0.356925,0.418781, +-0.525731,-0.723607,0.447214,0.000000,-0.525731,-0.723607,0.447214,0.321589,0.745561, +-0.468576,-0.828418,0.306855,0.000000,-0.468576,-0.828418,0.306855,0.393984,0.512408, +-0.360730,-0.793377,0.490334,0.000000,-0.360730,-0.793377,0.490334,0.327004,0.258102, +-0.468576,-0.828418,0.306855,0.000000,-0.468576,-0.828418,0.306855,0.393984,0.512408, +-0.395511,-0.905103,0.156077,0.000000,-0.395511,-0.905103,0.156077,0.345491,0.590447, +-0.294310,-0.891911,0.343331,0.000000,-0.294310,-0.891911,0.343331,0.304653,0.497466, +-0.395511,-0.905103,0.156077,0.000000,-0.395511,-0.905103,0.156077,0.345491,0.590447, +-0.309017,-0.951056,0.000000,0.000000,-0.309017,-0.951056,0.000000,0.302245,0.668485, +-0.213835,-0.959006,0.185961,0.000000,-0.213835,-0.959006,0.185961,0.209770,0.669136, +-0.212032,-0.964719,-0.156077,0.000000,-0.212032,-0.964719,-0.156077,0.265712,0.743874, +-0.104529,-0.994522,0.000000,0.000000,-0.104529,-0.994522,0.000000,0.130708,0.668485, +-0.309017,-0.951056,0.000000,0.000000,-0.309017,-0.951056,0.000000,0.302245,0.668485, +-0.107846,-0.945626,-0.306855,0.000000,-0.107846,-0.945626,-0.306855,0.553923,0.437019, +-0.000000,-0.987538,-0.157379,0.000000,-0.000000,-0.987538,-0.157379,0.647155,0.418781, +-0.212032,-0.964719,-0.156077,0.000000,-0.212032,-0.964719,-0.156077,0.265712,0.743874, +-0.107846,-0.945626,-0.306855,0.000000,-0.107846,-0.945626,-0.306855,0.553923,0.437019, +0.000000,-0.894427,-0.447214,0.000000,0.000000,-0.894427,-0.447214,0.848850,0.215669, +0.107846,-0.945626,-0.306855,0.000000,0.107846,-0.945626,-0.306855,0.356925,0.453512, +-0.468576,-0.828418,0.306855,0.000000,-0.468576,-0.828418,0.306855,0.393984,0.512408, +-0.294310,-0.891911,0.343331,0.000000,-0.294310,-0.891911,0.343331,0.304653,0.497466, +-0.360730,-0.793377,0.490334,0.000000,-0.360730,-0.793377,0.490334,0.327004,0.258102, +-0.395511,-0.905103,0.156077,0.000000,-0.395511,-0.905103,0.156077,0.345491,0.590447, +-0.213835,-0.959006,0.185961,0.000000,-0.213835,-0.959006,0.185961,0.209770,0.669136, +-0.294310,-0.891911,0.343331,0.000000,-0.294310,-0.891911,0.343331,0.304653,0.497466, +-0.309017,-0.951056,0.000000,0.000000,-0.309017,-0.951056,0.000000,0.302245,0.668485, +-0.104529,-0.994522,0.000000,0.000000,-0.104529,-0.994522,0.000000,0.130708,0.668485, +-0.213835,-0.959006,0.185961,0.000000,-0.213835,-0.959006,0.185961,0.209770,0.669136, +-0.212032,-0.964719,-0.156077,0.000000,-0.212032,-0.964719,-0.156077,0.265712,0.743874, +-0.000000,-0.987538,-0.157379,0.000000,-0.000000,-0.987538,-0.157379,0.647155,0.418781, +-0.104529,-0.994522,0.000000,0.000000,-0.104529,-0.994522,0.000000,0.130708,0.668485, +-0.107846,-0.945626,-0.306855,0.000000,-0.107846,-0.945626,-0.306855,0.553923,0.437019, +0.107846,-0.945626,-0.306855,0.000000,0.107846,-0.945626,-0.306855,0.356925,0.453512, +-0.000000,-0.987538,-0.157379,0.000000,-0.000000,-0.987538,-0.157379,0.647155,0.418781 +}; + +static const int detailed_sphere_indices[] = +{ + 0,1,2, +3,4,5, +6,7,8, +9,10,11, +12,13,14, +15,16,17, +18,19,20, +21,22,23, +24,25,26, +27,28,29, +30,31,32, +33,34,35, +36,37,38, +39,40,41, +42,43,44, +45,46,47, +48,49,50, +51,52,53, +54,55,56, +57,58,59, +60,61,62, +63,64,65, +66,67,68, +69,70,71, +72,73,74, +75,76,77, +78,79,80, +81,82,83, +84,85,86, +87,88,89, +90,91,92, +93,94,95, +96,97,98, +99,100,101, +102,103,104, +105,106,107, +108,109,110, +111,112,113, +114,115,116, +117,118,119, +120,121,122, +123,124,125, +126,127,128, +129,130,131, +132,133,134, +135,136,137, +138,139,140, +141,142,143, +144,145,146, +147,148,149, +150,151,152, +153,154,155, +156,157,158, +159,160,161, +162,163,164, +165,166,167, +168,169,170, +171,172,173, +174,175,176, +177,178,179, +180,181,182, +183,184,185, +186,187,188, +189,190,191, +192,193,194, +195,196,197, +198,199,200, +201,202,203, +204,205,206, +207,208,209, +210,211,212, +213,214,215, +216,217,218, +219,220,221, +222,223,224, +225,226,227, +228,229,230, +231,232,233, +234,235,236, +237,238,239, +240,241,242, +243,244,245, +246,247,248, +249,250,251, +252,253,254, +255,256,257, +258,259,260, +261,262,263, +264,265,266, +267,268,269, +270,271,272, +273,274,275, +276,277,278, +279,280,281, +282,283,284, +285,286,287, +288,289,290, +291,292,293, +294,295,296, +297,298,299, +300,301,302, +303,304,305, +306,307,308, +309,310,311, +312,313,314, +315,316,317, +318,319,320, +321,322,323, +324,325,326, +327,328,329, +330,331,332, +333,334,335, +336,337,338, +339,340,341, +342,343,344, +345,346,347, +348,349,350, +351,352,353, +354,355,356, +357,358,359, +360,361,362, +363,364,365, +366,367,368, +369,370,371, +372,373,374, +375,376,377, +378,379,380, +381,382,383, +384,385,386, +387,388,389, +390,391,392, +393,394,395, +396,397,398, +399,400,401, +402,403,404, +405,406,407, +408,409,410, +411,412,413, +414,415,416, +417,418,419, +420,421,422, +423,424,425, +426,427,428, +429,430,431, +432,433,434, +435,436,437, +438,439,440, +441,442,443, +444,445,446, +447,448,449, +450,451,452, +453,454,455, +456,457,458, +459,460,461, +462,463,464, +465,466,467, +468,469,470, +471,472,473, +474,475,476, +477,478,479, +480,481,482, +483,484,485, +486,487,488, +489,490,491, +492,493,494, +495,496,497, +498,499,500, +501,502,503, +504,505,506, +507,508,509, +510,511,512, +513,514,515, +516,517,518, +519,520,521, +522,523,524, +525,526,527, +528,529,530, +531,532,533, +534,535,536, +537,538,539, +540,541,542, +543,544,545, +546,547,548, +549,550,551, +552,553,554, +555,556,557, +558,559,560, +561,562,563, +564,565,566, +567,568,569, +570,571,572, +573,574,575, +576,577,578, +579,580,581, +582,583,584, +585,586,587, +588,589,590, +591,592,593, +594,595,596, +597,598,599, +600,601,602, +603,604,605, +606,607,608, +609,610,611, +612,613,614, +615,616,617, +618,619,620, +621,622,623, +624,625,626, +627,628,629, +630,631,632, +633,634,635, +636,637,638, +639,640,641, +642,643,644, +645,646,647, +648,649,650, +651,652,653, +654,655,656, +657,658,659, +660,661,662, +663,664,665, +666,667,668, +669,670,671, +672,673,674, +675,676,677, +678,679,680, +681,682,683, +684,685,686, +687,688,689, +690,691,692, +693,694,695, +696,697,698, +699,700,701, +702,703,704, +705,706,707, +708,709,710, +711,712,713, +714,715,716, +717,718,719, +720,721,722, +723,724,725, +726,727,728, +729,730,731, +732,733,734, +735,736,737, +738,739,740, +741,742,743, +744,745,746, +747,748,749, +750,751,752, +753,754,755, +756,757,758, +759,760,761, +762,763,764, +765,766,767, +768,769,770, +771,772,773, +774,775,776, +777,778,779, +780,781,782, +783,784,785, +786,787,788, +789,790,791, +792,793,794, +795,796,797, +798,799,800, +801,802,803, +804,805,806, +807,808,809, +810,811,812, +813,814,815, +816,817,818, +819,820,821, +822,823,824, +825,826,827, +828,829,830, +831,832,833, +834,835,836, +837,838,839, +840,841,842, +843,844,845, +846,847,848, +849,850,851, +852,853,854, +855,856,857, +858,859,860, +861,862,863, +864,865,866, +867,868,869, +870,871,872, +873,874,875, +876,877,878, +879,880,881, +882,883,884, +885,886,887, +888,889,890, +891,892,893, +894,895,896, +897,898,899, +900,901,902, +903,904,905, +906,907,908, +909,910,911, +912,913,914, +915,916,917, +918,919,920, +921,922,923, +924,925,926, +927,928,929, +930,931,932, +933,934,935, +936,937,938, +939,940,941, +942,943,944, +945,946,947, +948,949,950, +951,952,953, +954,955,956, +957,958,959, +960,961,962, +963,964,965, +966,967,968, +969,970,971, +972,973,974, +975,976,977, +978,979,980, +981,982,983, +984,985,986, +987,988,989, +990,991,992, +993,994,995, +996,997,998, +999,1000,1001, +1002,1003,1004, +1005,1006,1007, +1008,1009,1010, +1011,1012,1013, +1014,1015,1016, +1017,1018,1019, +1020,1021,1022, +1023,1024,1025, +1026,1027,1028, +1029,1030,1031, +1032,1033,1034, +1035,1036,1037, +1038,1039,1040, +1041,1042,1043, +1044,1045,1046, +1047,1048,1049, +1050,1051,1052, +1053,1054,1055, +1056,1057,1058, +1059,1060,1061, +1062,1063,1064, +1065,1066,1067, +1068,1069,1070, +1071,1072,1073, +1074,1075,1076, +1077,1078,1079, +1080,1081,1082, +1083,1084,1085, +1086,1087,1088, +1089,1090,1091, +1092,1093,1094, +1095,1096,1097, +1098,1099,1100, +1101,1102,1103, +1104,1105,1106, +1107,1108,1109, +1110,1111,1112, +1113,1114,1115, +1116,1117,1118, +1119,1120,1121, +1122,1123,1124, +1125,1126,1127, +1128,1129,1130, +1131,1132,1133, +1134,1135,1136, +1137,1138,1139, +1140,1141,1142, +1143,1144,1145, +1146,1147,1148, +1149,1150,1151, +1152,1153,1154, +1155,1156,1157, +1158,1159,1160, +1161,1162,1163, +1164,1165,1166, +1167,1168,1169, +1170,1171,1172, +1173,1174,1175, +1176,1177,1178, +1179,1180,1181, +1182,1183,1184, +1185,1186,1187, +1188,1189,1190, +1191,1192,1193, +1194,1195,1196, +1197,1198,1199, +1200,1201,1202, +1203,1204,1205, +1206,1207,1208, +1209,1210,1211, +1212,1213,1214, +1215,1216,1217, +1218,1219,1220, +1221,1222,1223, +1224,1225,1226, +1227,1228,1229, +1230,1231,1232, +1233,1234,1235, +1236,1237,1238, +1239,1240,1241, +1242,1243,1244, +1245,1246,1247, +1248,1249,1250, +1251,1252,1253, +1254,1255,1256, +1257,1258,1259, +1260,1261,1262, +1263,1264,1265, +1266,1267,1268, +1269,1270,1271, +1272,1273,1274, +1275,1276,1277, +1278,1279,1280, +1281,1282,1283, +1284,1285,1286, +1287,1288,1289, +1290,1291,1292, +1293,1294,1295, +1296,1297,1298, +1299,1300,1301, +1302,1303,1304, +1305,1306,1307, +1308,1309,1310, +1311,1312,1313, +1314,1315,1316, +1317,1318,1319, +1320,1321,1322, +1323,1324,1325, +1326,1327,1328, +1329,1330,1331, +1332,1333,1334, +1335,1336,1337, +1338,1339,1340, +1341,1342,1343, +1344,1345,1346, +1347,1348,1349, +1350,1351,1352, +1353,1354,1355, +1356,1357,1358, +1359,1360,1361, +1362,1363,1364, +1365,1366,1367, +1368,1369,1370, +1371,1372,1373, +1374,1375,1376, +1377,1378,1379, +1380,1381,1382, +1383,1384,1385, +1386,1387,1388, +1389,1390,1391, +1392,1393,1394, +1395,1396,1397, +1398,1399,1400, +1401,1402,1403, +1404,1405,1406, +1407,1408,1409, +1410,1411,1412, +1413,1414,1415, +1416,1417,1418, +1419,1420,1421, +1422,1423,1424, +1425,1426,1427, +1428,1429,1430, +1431,1432,1433, +1434,1435,1436, +1437,1438,1439, +1440,1441,1442, +1443,1444,1445, +1446,1447,1448, +1449,1450,1451, +1452,1453,1454, +1455,1456,1457, +1458,1459,1460, +1461,1462,1463, +1464,1465,1466, +1467,1468,1469, +1470,1471,1472, +1473,1474,1475, +1476,1477,1478, +1479,1480,1481, +1482,1483,1484, +1485,1486,1487, +1488,1489,1490, +1491,1492,1493, +1494,1495,1496, +1497,1498,1499, +1500,1501,1502, +1503,1504,1505, +1506,1507,1508, +1509,1510,1511, +1512,1513,1514, +1515,1516,1517, +1518,1519,1520, +1521,1522,1523, +1524,1525,1526, +1527,1528,1529, +1530,1531,1532, +1533,1534,1535, +1536,1537,1538, +1539,1540,1541, +1542,1543,1544, +1545,1546,1547, +1548,1549,1550, +1551,1552,1553, +1554,1555,1556, +1557,1558,1559, +1560,1561,1562, +1563,1564,1565, +1566,1567,1568, +1569,1570,1571, +1572,1573,1574, +1575,1576,1577, +1578,1579,1580, +1581,1582,1583, +1584,1585,1586, +1587,1588,1589, +1590,1591,1592, +1593,1594,1595, +1596,1597,1598, +1599,1600,1601, +1602,1603,1604, +1605,1606,1607, +1608,1609,1610, +1611,1612,1613, +1614,1615,1616, +1617,1618,1619, +1620,1621,1622, +1623,1624,1625, +1626,1627,1628, +1629,1630,1631, +1632,1633,1634, +1635,1636,1637, +1638,1639,1640, +1641,1642,1643, +1644,1645,1646, +1647,1648,1649, +1650,1651,1652, +1653,1654,1655, +1656,1657,1658, +1659,1660,1661, +1662,1663,1664, +1665,1666,1667, +1668,1669,1670, +1671,1672,1673, +1674,1675,1676, +1677,1678,1679, +1680,1681,1682, +1683,1684,1685, +1686,1687,1688, +1689,1690,1691, +1692,1693,1694, +1695,1696,1697, +1698,1699,1700, +1701,1702,1703, +1704,1705,1706, +1707,1708,1709, +1710,1711,1712, +1713,1714,1715, +1716,1717,1718, +1719,1720,1721, +1722,1723,1724, +1725,1726,1727, +1728,1729,1730, +1731,1732,1733, +1734,1735,1736, +1737,1738,1739, +1740,1741,1742, +1743,1744,1745, +1746,1747,1748, +1749,1750,1751, +1752,1753,1754, +1755,1756,1757, +1758,1759,1760, +1761,1762,1763, +1764,1765,1766, +1767,1768,1769, +1770,1771,1772, +1773,1774,1775, +1776,1777,1778, +1779,1780,1781, +1782,1783,1784, +1785,1786,1787, +1788,1789,1790, +1791,1792,1793, +1794,1795,1796, +1797,1798,1799, +1800,1801,1802, +1803,1804,1805, +1806,1807,1808, +1809,1810,1811, +1812,1813,1814, +1815,1816,1817, +1818,1819,1820, +1821,1822,1823, +1824,1825,1826, +1827,1828,1829, +1830,1831,1832, +1833,1834,1835, +1836,1837,1838, +1839,1840,1841, +1842,1843,1844, +1845,1846,1847, +1848,1849,1850, +1851,1852,1853, +1854,1855,1856, +1857,1858,1859, +1860,1861,1862, +1863,1864,1865, +1866,1867,1868, +1869,1870,1871, +1872,1873,1874, +1875,1876,1877, +1878,1879,1880, +1881,1882,1883, +1884,1885,1886, +1887,1888,1889, +1890,1891,1892, +1893,1894,1895, +1896,1897,1898, +1899,1900,1901, +1902,1903,1904, +1905,1906,1907, +1908,1909,1910, +1911,1912,1913, +1914,1915,1916, +1917,1918,1919, +1920,1921,1922, +1923,1924,1925, +1926,1927,1928, +1929,1930,1931, +1932,1933,1934, +1935,1936,1937, +1938,1939,1940, +1941,1942,1943, +1944,1945,1946, +1947,1948,1949, +1950,1951,1952, +1953,1954,1955, +1956,1957,1958, +1959,1960,1961, +1962,1963,1964, +1965,1966,1967, +1968,1969,1970, +1971,1972,1973, +1974,1975,1976, +1977,1978,1979, +1980,1981,1982, +1983,1984,1985, +1986,1987,1988, +1989,1990,1991, +1992,1993,1994, +1995,1996,1997, +1998,1999,2000, +2001,2002,2003, +2004,2005,2006, +2007,2008,2009, +2010,2011,2012, +2013,2014,2015, +2016,2017,2018, +2019,2020,2021, +2022,2023,2024, +2025,2026,2027, +2028,2029,2030, +2031,2032,2033, +2034,2035,2036, +2037,2038,2039, +2040,2041,2042, +2043,2044,2045, +2046,2047,2048, +2049,2050,2051, +2052,2053,2054, +2055,2056,2057, +2058,2059,2060, +2061,2062,2063, +2064,2065,2066, +2067,2068,2069, +2070,2071,2072, +2073,2074,2075, +2076,2077,2078, +2079,2080,2081, +2082,2083,2084, +2085,2086,2087, +2088,2089,2090, +2091,2092,2093, +2094,2095,2096, +2097,2098,2099, +2100,2101,2102, +2103,2104,2105, +2106,2107,2108, +2109,2110,2111, +2112,2113,2114, +2115,2116,2117, +2118,2119,2120, +2121,2122,2123, +2124,2125,2126, +2127,2128,2129, +2130,2131,2132, +2133,2134,2135, +2136,2137,2138, +2139,2140,2141, +2142,2143,2144, +2145,2146,2147, +2148,2149,2150, +2151,2152,2153, +2154,2155,2156, +2157,2158,2159 +}; + + +const float medium_sphere_vertices[]= +{ + 0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.999999,0.020053, +0.203181,-0.967950,0.147618,0.000000,0.203181,-0.967950,0.147618,0.566902,0.400852, +-0.077607,-0.967950,0.238853,0.000000,-0.077607,-0.967950,0.238853,0.986368,0.352464, +0.723607,-0.447220,0.525725,0.000000,0.723607,-0.447220,0.525725,0.779690,0.082142, +0.609547,-0.657519,0.442856,0.000000,0.609547,-0.657519,0.442856,0.381800,0.317539, +0.812729,-0.502301,0.295238,0.000000,0.812729,-0.502301,0.295238,0.918131,0.436615, +0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.999999,0.020053, +-0.077607,-0.967950,0.238853,0.000000,-0.077607,-0.967950,0.238853,0.986368,0.352464, +-0.251147,-0.967949,0.000000,0.000000,-0.251147,-0.967949,0.000000,0.444254,0.709621, +0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.999999,0.020053, +-0.251147,-0.967949,0.000000,0.000000,-0.251147,-0.967949,0.000000,0.444254,0.709621, +-0.077607,-0.967950,-0.238853,0.000000,-0.077607,-0.967950,-0.238853,0.043816,0.747734, +0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.999999,0.020053, +-0.077607,-0.967950,-0.238853,0.000000,-0.077607,-0.967950,-0.238853,0.043816,0.747734, +0.203181,-0.967950,-0.147618,0.000000,0.203181,-0.967950,-0.147618,0.966205,0.438787, +0.723607,-0.447220,0.525725,0.000000,0.723607,-0.447220,0.525725,0.779690,0.082142, +0.812729,-0.502301,0.295238,0.000000,0.812729,-0.502301,0.295238,0.918131,0.436615, +0.860698,-0.251151,0.442858,0.000000,0.860698,-0.251151,0.442858,0.689049,0.234408, +-0.276388,-0.447220,0.850649,0.000000,-0.276388,-0.447220,0.850649,0.554423,0.061638, +-0.029639,-0.502302,0.864184,0.000000,-0.029639,-0.502302,0.864184,0.180731,0.340648, +-0.155215,-0.251152,0.955422,0.000000,-0.155215,-0.251152,0.955422,0.885924,0.257323, +-0.894426,-0.447216,0.000000,0.000000,-0.894426,-0.447216,0.000000,0.746383,0.351642, +-0.831051,-0.502299,0.238853,0.000000,-0.831051,-0.502299,0.238853,0.634945,0.715428, +-0.956626,-0.251149,0.147618,0.000000,-0.956626,-0.251149,0.147618,0.397050,0.226232, +-0.276388,-0.447220,-0.850649,0.000000,-0.276388,-0.447220,-0.850649,0.750122,0.271069, +-0.483971,-0.502302,-0.716565,0.000000,-0.483971,-0.502302,-0.716565,0.250122,0.728931, +-0.436007,-0.251152,-0.864188,0.000000,-0.436007,-0.251152,-0.864188,0.134945,0.284572, +0.723607,-0.447220,-0.525725,0.000000,0.723607,-0.447220,-0.525725,0.791456,0.337315, +0.531941,-0.502302,-0.681712,0.000000,0.531941,-0.502302,-0.681712,0.833640,0.738875, +0.687159,-0.251152,-0.681715,0.000000,0.687159,-0.251152,-0.681715,0.268675,0.239476, +0.723607,-0.447220,0.525725,0.000000,0.723607,-0.447220,0.525725,0.779690,0.082142, +0.860698,-0.251151,0.442858,0.000000,0.860698,-0.251151,0.442858,0.689049,0.234408, +0.687159,-0.251152,0.681715,0.000000,0.687159,-0.251152,0.681715,0.702477,0.326245, +-0.276388,-0.447220,0.850649,0.000000,-0.276388,-0.447220,0.850649,0.554423,0.061638, +-0.155215,-0.251152,0.955422,0.000000,-0.155215,-0.251152,0.955422,0.885924,0.257323, +-0.436007,-0.251152,0.864188,0.000000,-0.436007,-0.251152,0.864188,0.813138,0.249674, +-0.894426,-0.447216,0.000000,0.000000,-0.894426,-0.447216,0.000000,0.746383,0.351642, +-0.956626,-0.251149,0.147618,0.000000,-0.956626,-0.251149,0.147618,0.397050,0.226232, +-0.956626,-0.251149,-0.147618,0.000000,-0.956626,-0.251149,-0.147618,0.304489,0.071876, +-0.276388,-0.447220,-0.850649,0.000000,-0.276388,-0.447220,-0.850649,0.750122,0.271069, +-0.436007,-0.251152,-0.864188,0.000000,-0.436007,-0.251152,-0.864188,0.134945,0.284572, +-0.155215,-0.251152,-0.955422,0.000000,-0.155215,-0.251152,-0.955422,0.129692,0.189429, +0.723607,-0.447220,-0.525725,0.000000,0.723607,-0.447220,-0.525725,0.791456,0.337315, +0.687159,-0.251152,-0.681715,0.000000,0.687159,-0.251152,-0.681715,0.268675,0.239476, +0.860698,-0.251151,-0.442858,0.000000,0.860698,-0.251151,-0.442858,0.543816,0.252266, +0.276388,0.447220,0.850649,0.000000,0.276388,0.447220,0.850649,1.304489,0.071876, +0.483971,0.502302,0.716565,0.000000,0.483971,0.502302,0.716565,1.036828,0.167036, +0.232822,0.657519,0.716563,0.000000,0.232822,0.657519,0.716563,0.616405,0.395845, +-0.723607,0.447220,0.525725,0.000000,-0.723607,0.447220,0.525725,1.115709,0.094716, +-0.531941,0.502302,0.681712,0.000000,-0.531941,0.502302,0.681712,0.074553,0.260244, +-0.609547,0.657519,0.442856,0.000000,-0.609547,0.657519,0.442856,0.418131,0.563385, +-0.723607,0.447220,-0.525725,0.000000,-0.723607,0.447220,-0.525725,0.952607,0.099770, +-0.812729,0.502301,-0.295238,0.000000,-0.812729,0.502301,-0.295238,0.093723,0.349056, +-0.609547,0.657519,-0.442856,0.000000,-0.609547,0.657519,-0.442856,0.441249,0.481295, +0.276388,0.447220,-0.850649,0.000000,0.276388,0.447220,-0.850649,0.768276,0.421330, +0.029639,0.502302,-0.864184,0.000000,0.029639,0.502302,-0.864184,0.791278,0.505149, +0.232822,0.657519,-0.716563,0.000000,0.232822,0.657519,-0.716563,0.467747,0.391208, +0.894426,0.447216,0.000000,0.000000,0.894426,0.447216,0.000000,0.542767,0.333057, +0.831051,0.502299,-0.238853,0.000000,0.831051,0.502299,-0.238853,0.891200,0.515555, +0.753442,0.657515,0.000000,0.000000,0.753442,0.657515,0.000000,0.870330,0.424531, +-0.232822,-0.657519,0.716563,0.000000,-0.232822,-0.657519,0.716563,0.163633,0.429436, +-0.029639,-0.502302,0.864184,0.000000,-0.029639,-0.502302,0.864184,0.180731,0.340648, +-0.276388,-0.447220,0.850649,0.000000,-0.276388,-0.447220,0.850649,0.554423,0.061638, +-0.162456,-0.850654,0.499995,0.000000,-0.162456,-0.850654,0.499995,0.943007,0.371159, +0.052790,-0.723612,0.688185,0.000000,0.052790,-0.723612,0.688185,0.219605,0.584779, +-0.232822,-0.657519,0.716563,0.000000,-0.232822,-0.657519,0.716563,0.163633,0.429436, +-0.077607,-0.967950,0.238853,0.000000,-0.077607,-0.967950,0.238853,0.986368,0.352464, +0.138199,-0.894429,0.425321,0.000000,0.138199,-0.894429,0.425321,0.268276,0.578670, +-0.162456,-0.850654,0.499995,0.000000,-0.162456,-0.850654,0.499995,0.943007,0.371159, +-0.232822,-0.657519,0.716563,0.000000,-0.232822,-0.657519,0.716563,0.163633,0.429436, +0.052790,-0.723612,0.688185,0.000000,0.052790,-0.723612,0.688185,0.219605,0.584779, +-0.029639,-0.502302,0.864184,0.000000,-0.029639,-0.502302,0.864184,0.180731,0.340648, +0.052790,-0.723612,0.688185,0.000000,0.052790,-0.723612,0.688185,0.219605,0.584779, +0.262869,-0.525738,0.809012,0.000000,0.262869,-0.525738,0.809012,0.137692,0.365246, +-0.029639,-0.502302,0.864184,0.000000,-0.029639,-0.502302,0.864184,0.180731,0.340648, +-0.162456,-0.850654,0.499995,0.000000,-0.162456,-0.850654,0.499995,0.943007,0.371159, +0.138199,-0.894429,0.425321,0.000000,0.138199,-0.894429,0.425321,0.268276,0.578670, +0.052790,-0.723612,0.688185,0.000000,0.052790,-0.723612,0.688185,0.219605,0.584779, +0.138199,-0.894429,0.425321,0.000000,0.138199,-0.894429,0.425321,0.268276,0.578670, +0.361805,-0.723611,0.587779,0.000000,0.361805,-0.723611,0.587779,0.191461,0.507219, +0.052790,-0.723612,0.688185,0.000000,0.052790,-0.723612,0.688185,0.219605,0.584779, +0.052790,-0.723612,0.688185,0.000000,0.052790,-0.723612,0.688185,0.219605,0.584779, +0.361805,-0.723611,0.587779,0.000000,0.361805,-0.723611,0.587779,0.191461,0.507219, +0.262869,-0.525738,0.809012,0.000000,0.262869,-0.525738,0.809012,0.137692,0.365246, +0.361805,-0.723611,0.587779,0.000000,0.361805,-0.723611,0.587779,0.191461,0.507219, +0.531941,-0.502302,0.681712,0.000000,0.531941,-0.502302,0.681712,0.363599,0.405960, +0.262869,-0.525738,0.809012,0.000000,0.262869,-0.525738,0.809012,0.137692,0.365246, +-0.077607,-0.967950,0.238853,0.000000,-0.077607,-0.967950,0.238853,0.986368,0.352464, +0.203181,-0.967950,0.147618,0.000000,0.203181,-0.967950,0.147618,0.566902,0.400852, +0.138199,-0.894429,0.425321,0.000000,0.138199,-0.894429,0.425321,0.268276,0.578670, +0.203181,-0.967950,0.147618,0.000000,0.203181,-0.967950,0.147618,0.566902,0.400852, +0.425323,-0.850654,0.309011,0.000000,0.425323,-0.850654,0.309011,0.336927,0.341759, +0.138199,-0.894429,0.425321,0.000000,0.138199,-0.894429,0.425321,0.268276,0.578670, +0.138199,-0.894429,0.425321,0.000000,0.138199,-0.894429,0.425321,0.268276,0.578670, +0.425323,-0.850654,0.309011,0.000000,0.425323,-0.850654,0.309011,0.336927,0.341759, +0.361805,-0.723611,0.587779,0.000000,0.361805,-0.723611,0.587779,0.191461,0.507219, +0.425323,-0.850654,0.309011,0.000000,0.425323,-0.850654,0.309011,0.336927,0.341759, +0.609547,-0.657519,0.442856,0.000000,0.609547,-0.657519,0.442856,0.381800,0.317539, +0.361805,-0.723611,0.587779,0.000000,0.361805,-0.723611,0.587779,0.191461,0.507219, +0.361805,-0.723611,0.587779,0.000000,0.361805,-0.723611,0.587779,0.191461,0.507219, +0.609547,-0.657519,0.442856,0.000000,0.609547,-0.657519,0.442856,0.381800,0.317539, +0.531941,-0.502302,0.681712,0.000000,0.531941,-0.502302,0.681712,0.363599,0.405960, +0.609547,-0.657519,0.442856,0.000000,0.609547,-0.657519,0.442856,0.381800,0.317539, +0.723607,-0.447220,0.525725,0.000000,0.723607,-0.447220,0.525725,0.779690,0.082142, +0.531941,-0.502302,0.681712,0.000000,0.531941,-0.502302,0.681712,0.363599,0.405960, +0.812729,-0.502301,-0.295238,0.000000,0.812729,-0.502301,-0.295238,0.314480,0.411140, +0.609547,-0.657519,-0.442856,0.000000,0.609547,-0.657519,-0.442856,0.517304,0.399254, +0.723607,-0.447220,-0.525725,0.000000,0.723607,-0.447220,-0.525725,0.791456,0.337315, +0.850648,-0.525736,0.000000,0.000000,0.850648,-0.525736,0.000000,0.115418,0.434134, +0.670817,-0.723611,-0.162457,0.000000,0.670817,-0.723611,-0.162457,0.241373,0.501088, +0.812729,-0.502301,-0.295238,0.000000,0.812729,-0.502301,-0.295238,0.314480,0.411140, +0.812729,-0.502301,0.295238,0.000000,0.812729,-0.502301,0.295238,0.918131,0.436615, +0.670817,-0.723610,0.162458,0.000000,0.670817,-0.723610,0.162458,0.211591,0.415486, +0.850648,-0.525736,0.000000,0.000000,0.850648,-0.525736,0.000000,0.115418,0.434134, +0.812729,-0.502301,-0.295238,0.000000,0.812729,-0.502301,-0.295238,0.314480,0.411140, +0.670817,-0.723611,-0.162457,0.000000,0.670817,-0.723611,-0.162457,0.241373,0.501088, +0.609547,-0.657519,-0.442856,0.000000,0.609547,-0.657519,-0.442856,0.517304,0.399254, +0.670817,-0.723611,-0.162457,0.000000,0.670817,-0.723611,-0.162457,0.241373,0.501088, +0.425323,-0.850654,-0.309011,0.000000,0.425323,-0.850654,-0.309011,0.719605,0.415221, +0.609547,-0.657519,-0.442856,0.000000,0.609547,-0.657519,-0.442856,0.517304,0.399254, +0.850648,-0.525736,0.000000,0.000000,0.850648,-0.525736,0.000000,0.115418,0.434134, +0.670817,-0.723610,0.162458,0.000000,0.670817,-0.723610,0.162458,0.211591,0.415486, +0.670817,-0.723611,-0.162457,0.000000,0.670817,-0.723611,-0.162457,0.241373,0.501088, +0.670817,-0.723610,0.162458,0.000000,0.670817,-0.723610,0.162458,0.211591,0.415486, +0.447211,-0.894428,0.000001,0.000000,0.447211,-0.894428,0.000001,0.291278,0.494851, +0.670817,-0.723611,-0.162457,0.000000,0.670817,-0.723611,-0.162457,0.241373,0.501088, +0.670817,-0.723611,-0.162457,0.000000,0.670817,-0.723611,-0.162457,0.241373,0.501088, +0.447211,-0.894428,0.000001,0.000000,0.447211,-0.894428,0.000001,0.291278,0.494851, +0.425323,-0.850654,-0.309011,0.000000,0.425323,-0.850654,-0.309011,0.719605,0.415221, +0.447211,-0.894428,0.000001,0.000000,0.447211,-0.894428,0.000001,0.291278,0.494851, +0.203181,-0.967950,-0.147618,0.000000,0.203181,-0.967950,-0.147618,0.966205,0.438787, +0.425323,-0.850654,-0.309011,0.000000,0.425323,-0.850654,-0.309011,0.719605,0.415221, +0.812729,-0.502301,0.295238,0.000000,0.812729,-0.502301,0.295238,0.918131,0.436615, +0.609547,-0.657519,0.442856,0.000000,0.609547,-0.657519,0.442856,0.381800,0.317539, +0.670817,-0.723610,0.162458,0.000000,0.670817,-0.723610,0.162458,0.211591,0.415486, +0.609547,-0.657519,0.442856,0.000000,0.609547,-0.657519,0.442856,0.381800,0.317539, +0.425323,-0.850654,0.309011,0.000000,0.425323,-0.850654,0.309011,0.336927,0.341759, +0.670817,-0.723610,0.162458,0.000000,0.670817,-0.723610,0.162458,0.211591,0.415486, +0.670817,-0.723610,0.162458,0.000000,0.670817,-0.723610,0.162458,0.211591,0.415486, +0.425323,-0.850654,0.309011,0.000000,0.425323,-0.850654,0.309011,0.336927,0.341759, +0.447211,-0.894428,0.000001,0.000000,0.447211,-0.894428,0.000001,0.291278,0.494851, +0.425323,-0.850654,0.309011,0.000000,0.425323,-0.850654,0.309011,0.336927,0.341759, +0.203181,-0.967950,0.147618,0.000000,0.203181,-0.967950,0.147618,0.566902,0.400852, +0.447211,-0.894428,0.000001,0.000000,0.447211,-0.894428,0.000001,0.291278,0.494851, +0.447211,-0.894428,0.000001,0.000000,0.447211,-0.894428,0.000001,0.291278,0.494851, +0.203181,-0.967950,0.147618,0.000000,0.203181,-0.967950,0.147618,0.566902,0.400852, +0.203181,-0.967950,-0.147618,0.000000,0.203181,-0.967950,-0.147618,0.966205,0.438787, +0.203181,-0.967950,0.147618,0.000000,0.203181,-0.967950,0.147618,0.566902,0.400852, +0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.999999,0.020053, +0.203181,-0.967950,-0.147618,0.000000,0.203181,-0.967950,-0.147618,0.966205,0.438787, +-0.753442,-0.657515,0.000000,0.000000,-0.753442,-0.657515,0.000000,0.443007,0.628841, +-0.831051,-0.502299,0.238853,0.000000,-0.831051,-0.502299,0.238853,0.634945,0.715428, +-0.894426,-0.447216,0.000000,0.000000,-0.894426,-0.447216,0.000000,0.746383,0.351642, +-0.525730,-0.850652,0.000000,0.000000,-0.525730,-0.850652,0.000000,0.486368,0.647536, +-0.638195,-0.723609,0.262864,0.000000,-0.638195,-0.723609,0.262864,0.265485,0.408729, +-0.753442,-0.657515,0.000000,0.000000,-0.753442,-0.657515,0.000000,0.443007,0.628841, +-0.251147,-0.967949,0.000000,0.000000,-0.251147,-0.967949,0.000000,0.444254,0.709621, +-0.361801,-0.894428,0.262864,0.000000,-0.361801,-0.894428,0.262864,0.017304,0.600746, +-0.525730,-0.850652,0.000000,0.000000,-0.525730,-0.850652,0.000000,0.486368,0.647536, +-0.753442,-0.657515,0.000000,0.000000,-0.753442,-0.657515,0.000000,0.443007,0.628841, +-0.638195,-0.723609,0.262864,0.000000,-0.638195,-0.723609,0.262864,0.265485,0.408729, +-0.831051,-0.502299,0.238853,0.000000,-0.831051,-0.502299,0.238853,0.634945,0.715428, +-0.638195,-0.723609,0.262864,0.000000,-0.638195,-0.723609,0.262864,0.265485,0.408729, +-0.688189,-0.525736,0.499997,0.000000,-0.688189,-0.525736,0.499997,0.680731,0.659352, +-0.831051,-0.502299,0.238853,0.000000,-0.831051,-0.502299,0.238853,0.634945,0.715428, +-0.525730,-0.850652,0.000000,0.000000,-0.525730,-0.850652,0.000000,0.486368,0.647536, +-0.361801,-0.894428,0.262864,0.000000,-0.361801,-0.894428,0.262864,0.017304,0.600746, +-0.638195,-0.723609,0.262864,0.000000,-0.638195,-0.723609,0.262864,0.265485,0.408729, +-0.361801,-0.894428,0.262864,0.000000,-0.361801,-0.894428,0.262864,0.017304,0.600746, +-0.447211,-0.723610,0.525729,0.000000,-0.447211,-0.723610,0.525729,0.066902,0.599148, +-0.638195,-0.723609,0.262864,0.000000,-0.638195,-0.723609,0.262864,0.265485,0.408729, +-0.638195,-0.723609,0.262864,0.000000,-0.638195,-0.723609,0.262864,0.265485,0.408729, +-0.447211,-0.723610,0.525729,0.000000,-0.447211,-0.723610,0.525729,0.066902,0.599148, +-0.688189,-0.525736,0.499997,0.000000,-0.688189,-0.525736,0.499997,0.680731,0.659352, +-0.447211,-0.723610,0.525729,0.000000,-0.447211,-0.723610,0.525729,0.066902,0.599148, +-0.483971,-0.502302,0.716565,0.000000,-0.483971,-0.502302,0.716565,0.637692,0.634754, +-0.688189,-0.525736,0.499997,0.000000,-0.688189,-0.525736,0.499997,0.680731,0.659352, +-0.251147,-0.967949,0.000000,0.000000,-0.251147,-0.967949,0.000000,0.444254,0.709621, +-0.077607,-0.967950,0.238853,0.000000,-0.077607,-0.967950,0.238853,0.986368,0.352464, +-0.361801,-0.894428,0.262864,0.000000,-0.361801,-0.894428,0.262864,0.017304,0.600746, +-0.077607,-0.967950,0.238853,0.000000,-0.077607,-0.967950,0.238853,0.986368,0.352464, +-0.162456,-0.850654,0.499995,0.000000,-0.162456,-0.850654,0.499995,0.943007,0.371159, +-0.361801,-0.894428,0.262864,0.000000,-0.361801,-0.894428,0.262864,0.017304,0.600746, +-0.361801,-0.894428,0.262864,0.000000,-0.361801,-0.894428,0.262864,0.017304,0.600746, +-0.162456,-0.850654,0.499995,0.000000,-0.162456,-0.850654,0.499995,0.943007,0.371159, +-0.447211,-0.723610,0.525729,0.000000,-0.447211,-0.723610,0.525729,0.066902,0.599148, +-0.162456,-0.850654,0.499995,0.000000,-0.162456,-0.850654,0.499995,0.943007,0.371159, +-0.232822,-0.657519,0.716563,0.000000,-0.232822,-0.657519,0.716563,0.163633,0.429436, +-0.447211,-0.723610,0.525729,0.000000,-0.447211,-0.723610,0.525729,0.066902,0.599148, +-0.447211,-0.723610,0.525729,0.000000,-0.447211,-0.723610,0.525729,0.066902,0.599148, +-0.232822,-0.657519,0.716563,0.000000,-0.232822,-0.657519,0.716563,0.163633,0.429436, +-0.483971,-0.502302,0.716565,0.000000,-0.483971,-0.502302,0.716565,0.637692,0.634754, +-0.232822,-0.657519,0.716563,0.000000,-0.232822,-0.657519,0.716563,0.163633,0.429436, +-0.276388,-0.447220,0.850649,0.000000,-0.276388,-0.447220,0.850649,0.554423,0.061638, +-0.483971,-0.502302,0.716565,0.000000,-0.483971,-0.502302,0.716565,0.637692,0.634754, +-0.232822,-0.657519,-0.716563,0.000000,-0.232822,-0.657519,-0.716563,0.042767,0.666943, +-0.483971,-0.502302,-0.716565,0.000000,-0.483971,-0.502302,-0.716565,0.250122,0.728931, +-0.276388,-0.447220,-0.850649,0.000000,-0.276388,-0.447220,-0.850649,0.750122,0.271069, +-0.162456,-0.850654,-0.499995,0.000000,-0.162456,-0.850654,-0.499995,0.089135,0.684613, +-0.447211,-0.723611,-0.525727,0.000000,-0.447211,-0.723611,-0.525727,0.991338,0.520023, +-0.232822,-0.657519,-0.716563,0.000000,-0.232822,-0.657519,-0.716563,0.042767,0.666943, +-0.077607,-0.967950,-0.238853,0.000000,-0.077607,-0.967950,-0.238853,0.043816,0.747734, +-0.361801,-0.894429,-0.262863,0.000000,-0.361801,-0.894429,-0.262863,1.041434,0.519379, +-0.162456,-0.850654,-0.499995,0.000000,-0.162456,-0.850654,-0.499995,0.089135,0.684613, +-0.232822,-0.657519,-0.716563,0.000000,-0.232822,-0.657519,-0.716563,0.042767,0.666943, +-0.447211,-0.723611,-0.525727,0.000000,-0.447211,-0.723611,-0.525727,0.991338,0.520023, +-0.483971,-0.502302,-0.716565,0.000000,-0.483971,-0.502302,-0.716565,0.250122,0.728931, +-0.447211,-0.723611,-0.525727,0.000000,-0.447211,-0.723611,-0.525727,0.991338,0.520023, +-0.688189,-0.525736,-0.499997,0.000000,-0.688189,-0.525736,-0.499997,0.291456,0.662685, +-0.483971,-0.502302,-0.716565,0.000000,-0.483971,-0.502302,-0.716565,0.250122,0.728931, +-0.162456,-0.850654,-0.499995,0.000000,-0.162456,-0.850654,-0.499995,0.089135,0.684613, +-0.361801,-0.894429,-0.262863,0.000000,-0.361801,-0.894429,-0.262863,1.041434,0.519379, +-0.447211,-0.723611,-0.525727,0.000000,-0.447211,-0.723611,-0.525727,0.991338,0.520023, +-0.361801,-0.894429,-0.262863,0.000000,-0.361801,-0.894429,-0.262863,1.041434,0.519379, +-0.638195,-0.723609,-0.262863,0.000000,-0.638195,-0.723609,-0.262863,1.017304,0.600746, +-0.447211,-0.723611,-0.525727,0.000000,-0.447211,-0.723611,-0.525727,0.991338,0.520023, +-0.447211,-0.723611,-0.525727,0.000000,-0.447211,-0.723611,-0.525727,0.991338,0.520023, +-0.638195,-0.723609,-0.262863,0.000000,-0.638195,-0.723609,-0.262863,1.017304,0.600746, +-0.688189,-0.525736,-0.499997,0.000000,-0.688189,-0.525736,-0.499997,0.291456,0.662685, +-0.638195,-0.723609,-0.262863,0.000000,-0.638195,-0.723609,-0.262863,1.017304,0.600746, +-0.831051,-0.502299,-0.238853,0.000000,-0.831051,-0.502299,-0.238853,0.246383,0.648358, +-0.688189,-0.525736,-0.499997,0.000000,-0.688189,-0.525736,-0.499997,0.291456,0.662685, +-0.077607,-0.967950,-0.238853,0.000000,-0.077607,-0.967950,-0.238853,0.043816,0.747734, +-0.251147,-0.967949,0.000000,0.000000,-0.251147,-0.967949,0.000000,0.444254,0.709621, +-0.361801,-0.894429,-0.262863,0.000000,-0.361801,-0.894429,-0.262863,1.041434,0.519379, +-0.251147,-0.967949,0.000000,0.000000,-0.251147,-0.967949,0.000000,0.444254,0.709621, +-0.525730,-0.850652,0.000000,0.000000,-0.525730,-0.850652,0.000000,0.486368,0.647536, +-0.361801,-0.894429,-0.262863,0.000000,-0.361801,-0.894429,-0.262863,1.041434,0.519379, +-0.361801,-0.894429,-0.262863,0.000000,-0.361801,-0.894429,-0.262863,1.041434,0.519379, +-0.525730,-0.850652,0.000000,0.000000,-0.525730,-0.850652,0.000000,0.486368,0.647536, +-0.638195,-0.723609,-0.262863,0.000000,-0.638195,-0.723609,-0.262863,1.017304,0.600746, +-0.525730,-0.850652,0.000000,0.000000,-0.525730,-0.850652,0.000000,0.486368,0.647536, +-0.753442,-0.657515,0.000000,0.000000,-0.753442,-0.657515,0.000000,0.443007,0.628841, +-0.638195,-0.723609,-0.262863,0.000000,-0.638195,-0.723609,-0.262863,1.017304,0.600746, +-0.638195,-0.723609,-0.262863,0.000000,-0.638195,-0.723609,-0.262863,1.017304,0.600746, +-0.753442,-0.657515,0.000000,0.000000,-0.753442,-0.657515,0.000000,0.443007,0.628841, +-0.831051,-0.502299,-0.238853,0.000000,-0.831051,-0.502299,-0.238853,0.246383,0.648358, +-0.753442,-0.657515,0.000000,0.000000,-0.753442,-0.657515,0.000000,0.443007,0.628841, +-0.894426,-0.447216,0.000000,0.000000,-0.894426,-0.447216,0.000000,0.746383,0.351642, +-0.831051,-0.502299,-0.238853,0.000000,-0.831051,-0.502299,-0.238853,0.246383,0.648358, +0.609547,-0.657519,-0.442856,0.000000,0.609547,-0.657519,-0.442856,0.517304,0.399254, +0.531941,-0.502302,-0.681712,0.000000,0.531941,-0.502302,-0.681712,0.833640,0.738875, +0.723607,-0.447220,-0.525725,0.000000,0.723607,-0.447220,-0.525725,0.791456,0.337315, +0.425323,-0.850654,-0.309011,0.000000,0.425323,-0.850654,-0.309011,0.719605,0.415221, +0.361804,-0.723612,-0.587779,0.000000,0.361804,-0.723612,-0.587779,1.014094,0.430832, +0.609547,-0.657519,-0.442856,0.000000,0.609547,-0.657519,-0.442856,0.517304,0.399254, +0.203181,-0.967950,-0.147618,0.000000,0.203181,-0.967950,-0.147618,0.966205,0.438787, +0.138197,-0.894429,-0.425321,0.000000,0.138197,-0.894429,-0.425321,0.041434,0.519379, +0.425323,-0.850654,-0.309011,0.000000,0.425323,-0.850654,-0.309011,0.719605,0.415221, +0.609547,-0.657519,-0.442856,0.000000,0.609547,-0.657519,-0.442856,0.517304,0.399254, +0.361804,-0.723612,-0.587779,0.000000,0.361804,-0.723612,-0.587779,1.014094,0.430832, +0.531941,-0.502302,-0.681712,0.000000,0.531941,-0.502302,-0.681712,0.833640,0.738875, +0.361804,-0.723612,-0.587779,0.000000,0.361804,-0.723612,-0.587779,1.014094,0.430832, +0.262869,-0.525738,-0.809012,0.000000,0.262869,-0.525738,-0.809012,0.881800,0.682461, +0.531941,-0.502302,-0.681712,0.000000,0.531941,-0.502302,-0.681712,0.833640,0.738875, +0.425323,-0.850654,-0.309011,0.000000,0.425323,-0.850654,-0.309011,0.719605,0.415221, +0.138197,-0.894429,-0.425321,0.000000,0.138197,-0.894429,-0.425321,0.041434,0.519379, +0.361804,-0.723612,-0.587779,0.000000,0.361804,-0.723612,-0.587779,1.014094,0.430832, +0.138197,-0.894429,-0.425321,0.000000,0.138197,-0.894429,-0.425321,0.041434,0.519379, +0.052789,-0.723611,-0.688186,0.000000,0.052789,-0.723611,-0.688186,0.091499,0.516836, +0.361804,-0.723612,-0.587779,0.000000,0.361804,-0.723612,-0.587779,1.014094,0.430832, +0.361804,-0.723612,-0.587779,0.000000,0.361804,-0.723612,-0.587779,1.014094,0.430832, +0.052789,-0.723611,-0.688186,0.000000,0.052789,-0.723611,-0.688186,0.091499,0.516836, +0.262869,-0.525738,-0.809012,0.000000,0.262869,-0.525738,-0.809012,0.881800,0.682461, +0.052789,-0.723611,-0.688186,0.000000,0.052789,-0.723611,-0.688186,0.091499,0.516836, +-0.029639,-0.502302,-0.864184,0.000000,-0.029639,-0.502302,-0.864184,0.836927,0.658241, +0.262869,-0.525738,-0.809012,0.000000,0.262869,-0.525738,-0.809012,0.881800,0.682461, +0.203181,-0.967950,-0.147618,0.000000,0.203181,-0.967950,-0.147618,0.966205,0.438787, +-0.077607,-0.967950,-0.238853,0.000000,-0.077607,-0.967950,-0.238853,0.043816,0.747734, +0.138197,-0.894429,-0.425321,0.000000,0.138197,-0.894429,-0.425321,0.041434,0.519379, +-0.077607,-0.967950,-0.238853,0.000000,-0.077607,-0.967950,-0.238853,0.043816,0.747734, +-0.162456,-0.850654,-0.499995,0.000000,-0.162456,-0.850654,-0.499995,0.089135,0.684613, +0.138197,-0.894429,-0.425321,0.000000,0.138197,-0.894429,-0.425321,0.041434,0.519379, +0.138197,-0.894429,-0.425321,0.000000,0.138197,-0.894429,-0.425321,0.041434,0.519379, +-0.162456,-0.850654,-0.499995,0.000000,-0.162456,-0.850654,-0.499995,0.089135,0.684613, +0.052789,-0.723611,-0.688186,0.000000,0.052789,-0.723611,-0.688186,0.091499,0.516836, +-0.162456,-0.850654,-0.499995,0.000000,-0.162456,-0.850654,-0.499995,0.089135,0.684613, +-0.232822,-0.657519,-0.716563,0.000000,-0.232822,-0.657519,-0.716563,0.042767,0.666943, +0.052789,-0.723611,-0.688186,0.000000,0.052789,-0.723611,-0.688186,0.091499,0.516836, +0.052789,-0.723611,-0.688186,0.000000,0.052789,-0.723611,-0.688186,0.091499,0.516836, +-0.232822,-0.657519,-0.716563,0.000000,-0.232822,-0.657519,-0.716563,0.042767,0.666943, +-0.029639,-0.502302,-0.864184,0.000000,-0.029639,-0.502302,-0.864184,0.836927,0.658241, +-0.232822,-0.657519,-0.716563,0.000000,-0.232822,-0.657519,-0.716563,0.042767,0.666943, +-0.276388,-0.447220,-0.850649,0.000000,-0.276388,-0.447220,-0.850649,0.750122,0.271069, +-0.029639,-0.502302,-0.864184,0.000000,-0.029639,-0.502302,-0.864184,0.836927,0.658241, +0.956626,0.251149,0.147618,0.000000,0.956626,0.251149,0.147618,0.658365,0.135762, +0.956626,0.251149,-0.147618,0.000000,0.956626,0.251149,-0.147618,0.610420,0.226784, +0.894426,0.447216,0.000000,0.000000,0.894426,0.447216,0.000000,0.542767,0.333057, +0.951058,-0.000000,0.309013,0.000000,0.951058,-0.000000,0.309013,0.646443,0.311386, +1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.014094,0.430832, +0.956626,0.251149,0.147618,0.000000,0.956626,0.251149,0.147618,0.658365,0.135762, +0.860698,-0.251151,0.442858,0.000000,0.860698,-0.251151,0.442858,0.689049,0.234408, +0.947213,-0.276396,0.162458,0.000000,0.947213,-0.276396,0.162458,0.067324,0.429118, +0.951058,-0.000000,0.309013,0.000000,0.951058,-0.000000,0.309013,0.646443,0.311386, +0.956626,0.251149,0.147618,0.000000,0.956626,0.251149,0.147618,0.658365,0.135762, +1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.014094,0.430832, +0.956626,0.251149,-0.147618,0.000000,0.956626,0.251149,-0.147618,0.610420,0.226784, +1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.014094,0.430832, +0.951058,0.000000,-0.309013,0.000000,0.951058,0.000000,-0.309013,0.546072,0.156902, +0.956626,0.251149,-0.147618,0.000000,0.956626,0.251149,-0.147618,0.610420,0.226784, +0.951058,-0.000000,0.309013,0.000000,0.951058,-0.000000,0.309013,0.646443,0.311386, +0.947213,-0.276396,0.162458,0.000000,0.947213,-0.276396,0.162458,0.067324,0.429118, +1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.014094,0.430832, +0.947213,-0.276396,0.162458,0.000000,0.947213,-0.276396,0.162458,0.067324,0.429118, +0.947213,-0.276396,-0.162458,0.000000,0.947213,-0.276396,-0.162458,0.711591,0.584513, +1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.014094,0.430832, +1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.014094,0.430832, +0.947213,-0.276396,-0.162458,0.000000,0.947213,-0.276396,-0.162458,0.711591,0.584513, +0.951058,0.000000,-0.309013,0.000000,0.951058,0.000000,-0.309013,0.546072,0.156902, +0.947213,-0.276396,-0.162458,0.000000,0.947213,-0.276396,-0.162458,0.711591,0.584513, +0.860698,-0.251151,-0.442858,0.000000,0.860698,-0.251151,-0.442858,0.543816,0.252266, +0.951058,0.000000,-0.309013,0.000000,0.951058,0.000000,-0.309013,0.546072,0.156902, +0.860698,-0.251151,0.442858,0.000000,0.860698,-0.251151,0.442858,0.689049,0.234408, +0.812729,-0.502301,0.295238,0.000000,0.812729,-0.502301,0.295238,0.918131,0.436615, +0.947213,-0.276396,0.162458,0.000000,0.947213,-0.276396,0.162458,0.067324,0.429118, +0.812729,-0.502301,0.295238,0.000000,0.812729,-0.502301,0.295238,0.918131,0.436615, +0.850648,-0.525736,0.000000,0.000000,0.850648,-0.525736,0.000000,0.115418,0.434134, +0.947213,-0.276396,0.162458,0.000000,0.947213,-0.276396,0.162458,0.067324,0.429118, +0.947213,-0.276396,0.162458,0.000000,0.947213,-0.276396,0.162458,0.067324,0.429118, +0.850648,-0.525736,0.000000,0.000000,0.850648,-0.525736,0.000000,0.115418,0.434134, +0.947213,-0.276396,-0.162458,0.000000,0.947213,-0.276396,-0.162458,0.711591,0.584513, +0.850648,-0.525736,0.000000,0.000000,0.850648,-0.525736,0.000000,0.115418,0.434134, +0.812729,-0.502301,-0.295238,0.000000,0.812729,-0.502301,-0.295238,0.314480,0.411140, +0.947213,-0.276396,-0.162458,0.000000,0.947213,-0.276396,-0.162458,0.711591,0.584513, +0.947213,-0.276396,-0.162458,0.000000,0.947213,-0.276396,-0.162458,0.711591,0.584513, +0.812729,-0.502301,-0.295238,0.000000,0.812729,-0.502301,-0.295238,0.314480,0.411140, +0.860698,-0.251151,-0.442858,0.000000,0.860698,-0.251151,-0.442858,0.543816,0.252266, +0.812729,-0.502301,-0.295238,0.000000,0.812729,-0.502301,-0.295238,0.314480,0.411140, +0.723607,-0.447220,-0.525725,0.000000,0.723607,-0.447220,-0.525725,0.791456,0.337315, +0.860698,-0.251151,-0.442858,0.000000,0.860698,-0.251151,-0.442858,0.543816,0.252266, +0.155215,0.251152,0.955422,0.000000,0.155215,0.251152,0.955422,0.944254,0.290379, +0.436007,0.251152,0.864188,0.000000,0.436007,0.251152,0.864188,0.900083,0.348597, +0.276388,0.447220,0.850649,0.000000,0.276388,0.447220,0.850649,1.304489,0.071876, +-0.000000,-0.000000,1.000000,0.000000,-0.000000,-0.000000,1.000000,0.846308,0.334943, +0.309017,0.000000,0.951056,0.000000,0.309017,0.000000,0.951056,0.741373,0.498912, +0.155215,0.251152,0.955422,0.000000,0.155215,0.251152,0.955422,0.944254,0.290379, +-0.155215,-0.251152,0.955422,0.000000,-0.155215,-0.251152,0.955422,0.885924,0.257323, +0.138199,-0.276398,0.951055,0.000000,0.138199,-0.276398,0.951055,0.735205,0.674734, +-0.000000,-0.000000,1.000000,0.000000,-0.000000,-0.000000,1.000000,0.846308,0.334943, +0.155215,0.251152,0.955422,0.000000,0.155215,0.251152,0.955422,0.944254,0.290379, +0.309017,0.000000,0.951056,0.000000,0.309017,0.000000,0.951056,0.741373,0.498912, +0.436007,0.251152,0.864188,0.000000,0.436007,0.251152,0.864188,0.900083,0.348597, +0.309017,0.000000,0.951056,0.000000,0.309017,0.000000,0.951056,0.741373,0.498912, +0.587786,0.000000,0.809017,0.000000,0.587786,0.000000,0.809017,0.757596,0.176140, +0.436007,0.251152,0.864188,0.000000,0.436007,0.251152,0.864188,0.900083,0.348597, +-0.000000,-0.000000,1.000000,0.000000,-0.000000,-0.000000,1.000000,0.846308,0.334943, +0.138199,-0.276398,0.951055,0.000000,0.138199,-0.276398,0.951055,0.735205,0.674734, +0.309017,0.000000,0.951056,0.000000,0.309017,0.000000,0.951056,0.741373,0.498912, +0.138199,-0.276398,0.951055,0.000000,0.138199,-0.276398,0.951055,0.735205,0.674734, +0.447216,-0.276398,0.850648,0.000000,0.447216,-0.276398,0.850648,0.765485,0.591271, +0.309017,0.000000,0.951056,0.000000,0.309017,0.000000,0.951056,0.741373,0.498912, +0.309017,0.000000,0.951056,0.000000,0.309017,0.000000,0.951056,0.741373,0.498912, +0.447216,-0.276398,0.850648,0.000000,0.447216,-0.276398,0.850648,0.765485,0.591271, +0.587786,0.000000,0.809017,0.000000,0.587786,0.000000,0.809017,0.757596,0.176140, +0.447216,-0.276398,0.850648,0.000000,0.447216,-0.276398,0.850648,0.765485,0.591271, +0.687159,-0.251152,0.681715,0.000000,0.687159,-0.251152,0.681715,0.702477,0.326245, +0.587786,0.000000,0.809017,0.000000,0.587786,0.000000,0.809017,0.757596,0.176140, +-0.155215,-0.251152,0.955422,0.000000,-0.155215,-0.251152,0.955422,0.885924,0.257323, +-0.029639,-0.502302,0.864184,0.000000,-0.029639,-0.502302,0.864184,0.180731,0.340648, +0.138199,-0.276398,0.951055,0.000000,0.138199,-0.276398,0.951055,0.735205,0.674734, +-0.029639,-0.502302,0.864184,0.000000,-0.029639,-0.502302,0.864184,0.180731,0.340648, +0.262869,-0.525738,0.809012,0.000000,0.262869,-0.525738,0.809012,0.137692,0.365246, +0.138199,-0.276398,0.951055,0.000000,0.138199,-0.276398,0.951055,0.735205,0.674734, +0.138199,-0.276398,0.951055,0.000000,0.138199,-0.276398,0.951055,0.735205,0.674734, +0.262869,-0.525738,0.809012,0.000000,0.262869,-0.525738,0.809012,0.137692,0.365246, +0.447216,-0.276398,0.850648,0.000000,0.447216,-0.276398,0.850648,0.765485,0.591271, +0.262869,-0.525738,0.809012,0.000000,0.262869,-0.525738,0.809012,0.137692,0.365246, +0.531941,-0.502302,0.681712,0.000000,0.531941,-0.502302,0.681712,0.363599,0.405960, +0.447216,-0.276398,0.850648,0.000000,0.447216,-0.276398,0.850648,0.765485,0.591271, +0.447216,-0.276398,0.850648,0.000000,0.447216,-0.276398,0.850648,0.765485,0.591271, +0.531941,-0.502302,0.681712,0.000000,0.531941,-0.502302,0.681712,0.363599,0.405960, +0.687159,-0.251152,0.681715,0.000000,0.687159,-0.251152,0.681715,0.702477,0.326245, +0.531941,-0.502302,0.681712,0.000000,0.531941,-0.502302,0.681712,0.363599,0.405960, +0.723607,-0.447220,0.525725,0.000000,0.723607,-0.447220,0.525725,0.779690,0.082142, +0.687159,-0.251152,0.681715,0.000000,0.687159,-0.251152,0.681715,0.702477,0.326245, +-0.860698,0.251151,0.442858,0.000000,-0.860698,0.251151,0.442858,0.333640,0.261125, +-0.687159,0.251152,0.681715,0.000000,-0.687159,0.251152,0.681715,0.856930,0.159299, +-0.723607,0.447220,0.525725,0.000000,-0.723607,0.447220,0.525725,1.115709,0.094716, +-0.951058,-0.000000,0.309013,0.000000,-0.951058,-0.000000,0.309013,0.326823,0.166086, +-0.809018,0.000000,0.587783,0.000000,-0.809018,0.000000,0.587783,0.791096,0.672983, +-0.860698,0.251151,0.442858,0.000000,-0.860698,0.251151,0.442858,0.333640,0.261125, +-0.956626,-0.251149,0.147618,0.000000,-0.956626,-0.251149,0.147618,0.397050,0.226232, +-0.861803,-0.276396,0.425324,0.000000,-0.861803,-0.276396,0.425324,0.514094,0.569167, +-0.951058,-0.000000,0.309013,0.000000,-0.951058,-0.000000,0.309013,0.326823,0.166086, +-0.860698,0.251151,0.442858,0.000000,-0.860698,0.251151,0.442858,0.333640,0.261125, +-0.809018,0.000000,0.587783,0.000000,-0.809018,0.000000,0.587783,0.791096,0.672983, +-0.687159,0.251152,0.681715,0.000000,-0.687159,0.251152,0.681715,0.856930,0.159299, +-0.809018,0.000000,0.587783,0.000000,-0.809018,0.000000,0.587783,0.791096,0.672983, +-0.587786,0.000000,0.809017,0.000000,-0.587786,0.000000,0.809017,0.946597,0.195033, +-0.687159,0.251152,0.681715,0.000000,-0.687159,0.251152,0.681715,0.856930,0.159299, +-0.951058,-0.000000,0.309013,0.000000,-0.951058,-0.000000,0.309013,0.326823,0.166086, +-0.861803,-0.276396,0.425324,0.000000,-0.861803,-0.276396,0.425324,0.514094,0.569167, +-0.809018,0.000000,0.587783,0.000000,-0.809018,0.000000,0.587783,0.791096,0.672983, +-0.861803,-0.276396,0.425324,0.000000,-0.861803,-0.276396,0.425324,0.514094,0.569167, +-0.670819,-0.276397,0.688191,0.000000,-0.670819,-0.276397,0.688191,0.541434,0.480621, +-0.809018,0.000000,0.587783,0.000000,-0.809018,0.000000,0.587783,0.791096,0.672983, +-0.809018,0.000000,0.587783,0.000000,-0.809018,0.000000,0.587783,0.791096,0.672983, +-0.670819,-0.276397,0.688191,0.000000,-0.670819,-0.276397,0.688191,0.541434,0.480621, +-0.587786,0.000000,0.809017,0.000000,-0.587786,0.000000,0.809017,0.946597,0.195033, +-0.670819,-0.276397,0.688191,0.000000,-0.670819,-0.276397,0.688191,0.541434,0.480621, +-0.436007,-0.251152,0.864188,0.000000,-0.436007,-0.251152,0.864188,0.813138,0.249674, +-0.587786,0.000000,0.809017,0.000000,-0.587786,0.000000,0.809017,0.946597,0.195033, +-0.956626,-0.251149,0.147618,0.000000,-0.956626,-0.251149,0.147618,0.397050,0.226232, +-0.831051,-0.502299,0.238853,0.000000,-0.831051,-0.502299,0.238853,0.634945,0.715428, +-0.861803,-0.276396,0.425324,0.000000,-0.861803,-0.276396,0.425324,0.514094,0.569167, +-0.831051,-0.502299,0.238853,0.000000,-0.831051,-0.502299,0.238853,0.634945,0.715428, +-0.688189,-0.525736,0.499997,0.000000,-0.688189,-0.525736,0.499997,0.680731,0.659352, +-0.861803,-0.276396,0.425324,0.000000,-0.861803,-0.276396,0.425324,0.514094,0.569167, +-0.861803,-0.276396,0.425324,0.000000,-0.861803,-0.276396,0.425324,0.514094,0.569167, +-0.688189,-0.525736,0.499997,0.000000,-0.688189,-0.525736,0.499997,0.680731,0.659352, +-0.670819,-0.276397,0.688191,0.000000,-0.670819,-0.276397,0.688191,0.541434,0.480621, +-0.688189,-0.525736,0.499997,0.000000,-0.688189,-0.525736,0.499997,0.680731,0.659352, +-0.483971,-0.502302,0.716565,0.000000,-0.483971,-0.502302,0.716565,0.637692,0.634754, +-0.670819,-0.276397,0.688191,0.000000,-0.670819,-0.276397,0.688191,0.541434,0.480621, +-0.670819,-0.276397,0.688191,0.000000,-0.670819,-0.276397,0.688191,0.541434,0.480621, +-0.483971,-0.502302,0.716565,0.000000,-0.483971,-0.502302,0.716565,0.637692,0.634754, +-0.436007,-0.251152,0.864188,0.000000,-0.436007,-0.251152,0.864188,0.813138,0.249674, +-0.483971,-0.502302,0.716565,0.000000,-0.483971,-0.502302,0.716565,0.637692,0.634754, +-0.276388,-0.447220,0.850649,0.000000,-0.276388,-0.447220,0.850649,0.554423,0.061638, +-0.436007,-0.251152,0.864188,0.000000,-0.436007,-0.251152,0.864188,0.813138,0.249674, +-0.687159,0.251152,-0.681715,0.000000,-0.687159,0.251152,-0.681715,0.477658,0.222612, +-0.860698,0.251151,-0.442858,0.000000,-0.860698,0.251151,-0.442858,0.438926,0.305137, +-0.723607,0.447220,-0.525725,0.000000,-0.723607,0.447220,-0.525725,0.952607,0.099770, +-0.587786,-0.000000,-0.809017,0.000000,-0.587786,-0.000000,-0.809017,0.496685,0.312438, +-0.809018,-0.000000,-0.587783,0.000000,-0.809018,-0.000000,-0.587783,0.539894,0.656807, +-0.687159,0.251152,-0.681715,0.000000,-0.687159,0.251152,-0.681715,0.477658,0.222612, +-0.436007,-0.251152,-0.864188,0.000000,-0.436007,-0.251152,-0.864188,0.134945,0.284572, +-0.670819,-0.276397,-0.688191,0.000000,-0.670819,-0.276397,-0.688191,0.567324,0.570882, +-0.587786,-0.000000,-0.809017,0.000000,-0.587786,-0.000000,-0.809017,0.496685,0.312438, +-0.687159,0.251152,-0.681715,0.000000,-0.687159,0.251152,-0.681715,0.477658,0.222612, +-0.809018,-0.000000,-0.587783,0.000000,-0.809018,-0.000000,-0.587783,0.539894,0.656807, +-0.860698,0.251151,-0.442858,0.000000,-0.860698,0.251151,-0.442858,0.438926,0.305137, +-0.809018,-0.000000,-0.587783,0.000000,-0.809018,-0.000000,-0.587783,0.539894,0.656807, +-0.951058,0.000000,-0.309013,0.000000,-0.951058,0.000000,-0.309013,0.433048,0.129063, +-0.860698,0.251151,-0.442858,0.000000,-0.860698,0.251151,-0.442858,0.438926,0.305137, +-0.587786,-0.000000,-0.809017,0.000000,-0.587786,-0.000000,-0.809017,0.496685,0.312438, +-0.670819,-0.276397,-0.688191,0.000000,-0.670819,-0.276397,-0.688191,0.567324,0.570882, +-0.809018,-0.000000,-0.587783,0.000000,-0.809018,-0.000000,-0.587783,0.539894,0.656807, +-0.670819,-0.276397,-0.688191,0.000000,-0.670819,-0.276397,-0.688191,0.567324,0.570882, +-0.861803,-0.276396,-0.425324,0.000000,-0.861803,-0.276396,-0.425324,0.593723,0.650945, +-0.809018,-0.000000,-0.587783,0.000000,-0.809018,-0.000000,-0.587783,0.539894,0.656807, +-0.809018,-0.000000,-0.587783,0.000000,-0.809018,-0.000000,-0.587783,0.539894,0.656807, +-0.861803,-0.276396,-0.425324,0.000000,-0.861803,-0.276396,-0.425324,0.593723,0.650945, +-0.951058,0.000000,-0.309013,0.000000,-0.951058,0.000000,-0.309013,0.433048,0.129063, +-0.861803,-0.276396,-0.425324,0.000000,-0.861803,-0.276396,-0.425324,0.593723,0.650945, +-0.956626,-0.251149,-0.147618,0.000000,-0.956626,-0.251149,-0.147618,0.304489,0.071876, +-0.951058,0.000000,-0.309013,0.000000,-0.951058,0.000000,-0.309013,0.433048,0.129063, +-0.436007,-0.251152,-0.864188,0.000000,-0.436007,-0.251152,-0.864188,0.134945,0.284572, +-0.483971,-0.502302,-0.716565,0.000000,-0.483971,-0.502302,-0.716565,0.250122,0.728931, +-0.670819,-0.276397,-0.688191,0.000000,-0.670819,-0.276397,-0.688191,0.567324,0.570882, +-0.483971,-0.502302,-0.716565,0.000000,-0.483971,-0.502302,-0.716565,0.250122,0.728931, +-0.688189,-0.525736,-0.499997,0.000000,-0.688189,-0.525736,-0.499997,0.291456,0.662685, +-0.670819,-0.276397,-0.688191,0.000000,-0.670819,-0.276397,-0.688191,0.567324,0.570882, +-0.670819,-0.276397,-0.688191,0.000000,-0.670819,-0.276397,-0.688191,0.567324,0.570882, +-0.688189,-0.525736,-0.499997,0.000000,-0.688189,-0.525736,-0.499997,0.291456,0.662685, +-0.861803,-0.276396,-0.425324,0.000000,-0.861803,-0.276396,-0.425324,0.593723,0.650945, +-0.688189,-0.525736,-0.499997,0.000000,-0.688189,-0.525736,-0.499997,0.291456,0.662685, +-0.831051,-0.502299,-0.238853,0.000000,-0.831051,-0.502299,-0.238853,0.246383,0.648358, +-0.861803,-0.276396,-0.425324,0.000000,-0.861803,-0.276396,-0.425324,0.593723,0.650945, +-0.861803,-0.276396,-0.425324,0.000000,-0.861803,-0.276396,-0.425324,0.593723,0.650945, +-0.831051,-0.502299,-0.238853,0.000000,-0.831051,-0.502299,-0.238853,0.246383,0.648358, +-0.956626,-0.251149,-0.147618,0.000000,-0.956626,-0.251149,-0.147618,0.304489,0.071876, +-0.831051,-0.502299,-0.238853,0.000000,-0.831051,-0.502299,-0.238853,0.246383,0.648358, +-0.894426,-0.447216,0.000000,0.000000,-0.894426,-0.447216,0.000000,0.746383,0.351642, +-0.956626,-0.251149,-0.147618,0.000000,-0.956626,-0.251149,-0.147618,0.304489,0.071876, +0.436007,0.251152,-0.864188,0.000000,0.436007,0.251152,-0.864188,0.221600,0.149916, +0.155215,0.251152,-0.955422,0.000000,0.155215,0.251152,-0.955422,0.115709,0.094716, +0.276388,0.447220,-0.850649,0.000000,0.276388,0.447220,-0.850649,0.768276,0.421330, +0.587786,-0.000000,-0.809017,0.000000,0.587786,-0.000000,-0.809017,0.235205,0.325266, +0.309017,-0.000000,-0.951056,0.000000,0.309017,-0.000000,-0.951056,0.316839,0.581107, +0.436007,0.251152,-0.864188,0.000000,0.436007,0.251152,-0.864188,0.221600,0.149916, +0.687159,-0.251152,-0.681715,0.000000,0.687159,-0.251152,-0.681715,0.268675,0.239476, +0.447216,-0.276398,-0.850648,0.000000,0.447216,-0.276398,-0.850648,0.341211,0.489117, +0.587786,-0.000000,-0.809017,0.000000,0.587786,-0.000000,-0.809017,0.235205,0.325266, +0.436007,0.251152,-0.864188,0.000000,0.436007,0.251152,-0.864188,0.221600,0.149916, +0.309017,-0.000000,-0.951056,0.000000,0.309017,-0.000000,-0.951056,0.316839,0.581107, +0.155215,0.251152,-0.955422,0.000000,0.155215,0.251152,-0.955422,0.115709,0.094716, +0.309017,-0.000000,-0.951056,0.000000,0.309017,-0.000000,-0.951056,0.316839,0.581107, +0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.193762,0.248844, +0.155215,0.251152,-0.955422,0.000000,0.155215,0.251152,-0.955422,0.115709,0.094716, +0.587786,-0.000000,-0.809017,0.000000,0.587786,-0.000000,-0.809017,0.235205,0.325266, +0.447216,-0.276398,-0.850648,0.000000,0.447216,-0.276398,-0.850648,0.341211,0.489117, +0.309017,-0.000000,-0.951056,0.000000,0.309017,-0.000000,-0.951056,0.316839,0.581107, +0.447216,-0.276398,-0.850648,0.000000,0.447216,-0.276398,-0.850648,0.341211,0.489117, +0.138199,-0.276398,-0.951055,0.000000,0.138199,-0.276398,-0.951055,0.346308,0.665057, +0.309017,-0.000000,-0.951056,0.000000,0.309017,-0.000000,-0.951056,0.316839,0.581107, +0.309017,-0.000000,-0.951056,0.000000,0.309017,-0.000000,-0.951056,0.316839,0.581107, +0.138199,-0.276398,-0.951055,0.000000,0.138199,-0.276398,-0.951055,0.346308,0.665057, +0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.193762,0.248844, +0.138199,-0.276398,-0.951055,0.000000,0.138199,-0.276398,-0.951055,0.346308,0.665057, +-0.155215,-0.251152,-0.955422,0.000000,-0.155215,-0.251152,-0.955422,0.129692,0.189429, +0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.193762,0.248844, +0.687159,-0.251152,-0.681715,0.000000,0.687159,-0.251152,-0.681715,0.268675,0.239476, +0.531941,-0.502302,-0.681712,0.000000,0.531941,-0.502302,-0.681712,0.833640,0.738875, +0.447216,-0.276398,-0.850648,0.000000,0.447216,-0.276398,-0.850648,0.341211,0.489117, +0.531941,-0.502302,-0.681712,0.000000,0.531941,-0.502302,-0.681712,0.833640,0.738875, +0.262869,-0.525738,-0.809012,0.000000,0.262869,-0.525738,-0.809012,0.881800,0.682461, +0.447216,-0.276398,-0.850648,0.000000,0.447216,-0.276398,-0.850648,0.341211,0.489117, +0.447216,-0.276398,-0.850648,0.000000,0.447216,-0.276398,-0.850648,0.341211,0.489117, +0.262869,-0.525738,-0.809012,0.000000,0.262869,-0.525738,-0.809012,0.881800,0.682461, +0.138199,-0.276398,-0.951055,0.000000,0.138199,-0.276398,-0.951055,0.346308,0.665057, +0.262869,-0.525738,-0.809012,0.000000,0.262869,-0.525738,-0.809012,0.881800,0.682461, +-0.029639,-0.502302,-0.864184,0.000000,-0.029639,-0.502302,-0.864184,0.836927,0.658241, +0.138199,-0.276398,-0.951055,0.000000,0.138199,-0.276398,-0.951055,0.346308,0.665057, +0.138199,-0.276398,-0.951055,0.000000,0.138199,-0.276398,-0.951055,0.346308,0.665057, +-0.029639,-0.502302,-0.864184,0.000000,-0.029639,-0.502302,-0.864184,0.836927,0.658241, +-0.155215,-0.251152,-0.955422,0.000000,-0.155215,-0.251152,-0.955422,0.129692,0.189429, +-0.029639,-0.502302,-0.864184,0.000000,-0.029639,-0.502302,-0.864184,0.836927,0.658241, +-0.276388,-0.447220,-0.850649,0.000000,-0.276388,-0.447220,-0.850649,0.750122,0.271069, +-0.155215,-0.251152,-0.955422,0.000000,-0.155215,-0.251152,-0.955422,0.129692,0.189429, +0.436007,0.251152,0.864188,0.000000,0.436007,0.251152,0.864188,0.900083,0.348597, +0.483971,0.502302,0.716565,0.000000,0.483971,0.502302,0.716565,1.036828,0.167036, +0.276388,0.447220,0.850649,0.000000,0.276388,0.447220,0.850649,1.304489,0.071876, +0.587786,0.000000,0.809017,0.000000,0.587786,0.000000,0.809017,0.757596,0.176140, +0.670820,0.276396,0.688190,0.000000,0.670820,0.276396,0.688190,0.370330,0.575469, +0.436007,0.251152,0.864188,0.000000,0.436007,0.251152,0.864188,0.900083,0.348597, +0.687159,-0.251152,0.681715,0.000000,0.687159,-0.251152,0.681715,0.702477,0.326245, +0.809019,-0.000002,0.587783,0.000000,0.809019,-0.000002,0.587783,0.400083,0.651403, +0.587786,0.000000,0.809017,0.000000,0.587786,0.000000,0.809017,0.757596,0.176140, +0.436007,0.251152,0.864188,0.000000,0.436007,0.251152,0.864188,0.900083,0.348597, +0.670820,0.276396,0.688190,0.000000,0.670820,0.276396,0.688190,0.370330,0.575469, +0.483971,0.502302,0.716565,0.000000,0.483971,0.502302,0.716565,1.036828,0.167036, +0.670820,0.276396,0.688190,0.000000,0.670820,0.276396,0.688190,0.370330,0.575469, +0.688189,0.525736,0.499997,0.000000,0.688189,0.525736,0.499997,1.003325,0.262529, +0.483971,0.502302,0.716565,0.000000,0.483971,0.502302,0.716565,1.036828,0.167036, +0.587786,0.000000,0.809017,0.000000,0.587786,0.000000,0.809017,0.757596,0.176140, +0.809019,-0.000002,0.587783,0.000000,0.809019,-0.000002,0.587783,0.400083,0.651403, +0.670820,0.276396,0.688190,0.000000,0.670820,0.276396,0.688190,0.370330,0.575469, +0.809019,-0.000002,0.587783,0.000000,0.809019,-0.000002,0.587783,0.400083,0.651403, +0.861804,0.276394,0.425323,0.000000,0.861804,0.276394,0.425323,0.116405,0.604155, +0.670820,0.276396,0.688190,0.000000,0.670820,0.276396,0.688190,0.370330,0.575469, +0.670820,0.276396,0.688190,0.000000,0.670820,0.276396,0.688190,0.370330,0.575469, +0.861804,0.276394,0.425323,0.000000,0.861804,0.276394,0.425323,0.116405,0.604155, +0.688189,0.525736,0.499997,0.000000,0.688189,0.525736,0.499997,1.003325,0.262529, +0.861804,0.276394,0.425323,0.000000,0.861804,0.276394,0.425323,0.116405,0.604155, +0.831051,0.502299,0.238853,0.000000,0.831051,0.502299,0.238853,0.291096,0.327017, +0.688189,0.525736,0.499997,0.000000,0.688189,0.525736,0.499997,1.003325,0.262529, +0.687159,-0.251152,0.681715,0.000000,0.687159,-0.251152,0.681715,0.702477,0.326245, +0.860698,-0.251151,0.442858,0.000000,0.860698,-0.251151,0.442858,0.689049,0.234408, +0.809019,-0.000002,0.587783,0.000000,0.809019,-0.000002,0.587783,0.400083,0.651403, +0.860698,-0.251151,0.442858,0.000000,0.860698,-0.251151,0.442858,0.689049,0.234408, +0.951058,-0.000000,0.309013,0.000000,0.951058,-0.000000,0.309013,0.646443,0.311386, +0.809019,-0.000002,0.587783,0.000000,0.809019,-0.000002,0.587783,0.400083,0.651403, +0.809019,-0.000002,0.587783,0.000000,0.809019,-0.000002,0.587783,0.400083,0.651403, +0.951058,-0.000000,0.309013,0.000000,0.951058,-0.000000,0.309013,0.646443,0.311386, +0.861804,0.276394,0.425323,0.000000,0.861804,0.276394,0.425323,0.116405,0.604155, +0.951058,-0.000000,0.309013,0.000000,0.951058,-0.000000,0.309013,0.646443,0.311386, +0.956626,0.251149,0.147618,0.000000,0.956626,0.251149,0.147618,0.658365,0.135762, +0.861804,0.276394,0.425323,0.000000,0.861804,0.276394,0.425323,0.116405,0.604155, +0.861804,0.276394,0.425323,0.000000,0.861804,0.276394,0.425323,0.116405,0.604155, +0.956626,0.251149,0.147618,0.000000,0.956626,0.251149,0.147618,0.658365,0.135762, +0.831051,0.502299,0.238853,0.000000,0.831051,0.502299,0.238853,0.291096,0.327017, +0.956626,0.251149,0.147618,0.000000,0.956626,0.251149,0.147618,0.658365,0.135762, +0.894426,0.447216,0.000000,0.000000,0.894426,0.447216,0.000000,0.542767,0.333057, +0.831051,0.502299,0.238853,0.000000,0.831051,0.502299,0.238853,0.291096,0.327017, +-0.687159,0.251152,0.681715,0.000000,-0.687159,0.251152,0.681715,0.856930,0.159299, +-0.531941,0.502302,0.681712,0.000000,-0.531941,0.502302,0.681712,0.074553,0.260244, +-0.723607,0.447220,0.525725,0.000000,-0.723607,0.447220,0.525725,1.115709,0.094716, +-0.587786,0.000000,0.809017,0.000000,-0.587786,0.000000,0.809017,0.946597,0.195033, +-0.447216,0.276397,0.850649,0.000000,-0.447216,0.276397,0.850649,0.141510,0.512645, +-0.687159,0.251152,0.681715,0.000000,-0.687159,0.251152,0.681715,0.856930,0.159299, +-0.436007,-0.251152,0.864188,0.000000,-0.436007,-0.251152,0.864188,0.813138,0.249674, +-0.309017,-0.000001,0.951056,0.000000,-0.309017,-0.000001,0.951056,0.146443,0.688614, +-0.587786,0.000000,0.809017,0.000000,-0.587786,0.000000,0.809017,0.946597,0.195033, +-0.687159,0.251152,0.681715,0.000000,-0.687159,0.251152,0.681715,0.856930,0.159299, +-0.447216,0.276397,0.850649,0.000000,-0.447216,0.276397,0.850649,0.141510,0.512645, +-0.531941,0.502302,0.681712,0.000000,-0.531941,0.502302,0.681712,0.074553,0.260244, +-0.447216,0.276397,0.850649,0.000000,-0.447216,0.276397,0.850649,0.141510,0.512645, +-0.262869,0.525738,0.809012,0.000000,-0.262869,0.525738,0.809012,0.036828,0.167036, +-0.531941,0.502302,0.681712,0.000000,-0.531941,0.502302,0.681712,0.074553,0.260244, +-0.587786,0.000000,0.809017,0.000000,-0.587786,0.000000,0.809017,0.946597,0.195033, +-0.309017,-0.000001,0.951056,0.000000,-0.309017,-0.000001,0.951056,0.146443,0.688614, +-0.447216,0.276397,0.850649,0.000000,-0.447216,0.276397,0.850649,0.141510,0.512645, +-0.309017,-0.000001,0.951056,0.000000,-0.309017,-0.000001,0.951056,0.146443,0.688614, +-0.138199,0.276397,0.951055,0.000000,-0.138199,0.276397,0.951055,0.171061,0.598834, +-0.447216,0.276397,0.850649,0.000000,-0.447216,0.276397,0.850649,0.141510,0.512645, +-0.447216,0.276397,0.850649,0.000000,-0.447216,0.276397,0.850649,0.141510,0.512645, +-0.138199,0.276397,0.951055,0.000000,-0.138199,0.276397,0.951055,0.171061,0.598834, +-0.262869,0.525738,0.809012,0.000000,-0.262869,0.525738,0.809012,0.036828,0.167036, +-0.138199,0.276397,0.951055,0.000000,-0.138199,0.276397,0.951055,0.171061,0.598834, +0.029639,0.502302,0.864184,0.000000,0.029639,0.502302,0.864184,1.039894,0.343193, +-0.262869,0.525738,0.809012,0.000000,-0.262869,0.525738,0.809012,0.036828,0.167036, +-0.436007,-0.251152,0.864188,0.000000,-0.436007,-0.251152,0.864188,0.813138,0.249674, +-0.155215,-0.251152,0.955422,0.000000,-0.155215,-0.251152,0.955422,0.885924,0.257323, +-0.309017,-0.000001,0.951056,0.000000,-0.309017,-0.000001,0.951056,0.146443,0.688614, +-0.155215,-0.251152,0.955422,0.000000,-0.155215,-0.251152,0.955422,0.885924,0.257323, +-0.000000,-0.000000,1.000000,0.000000,-0.000000,-0.000000,1.000000,0.846308,0.334943, +-0.309017,-0.000001,0.951056,0.000000,-0.309017,-0.000001,0.951056,0.146443,0.688614, +-0.309017,-0.000001,0.951056,0.000000,-0.309017,-0.000001,0.951056,0.146443,0.688614, +-0.000000,-0.000000,1.000000,0.000000,-0.000000,-0.000000,1.000000,0.846308,0.334943, +-0.138199,0.276397,0.951055,0.000000,-0.138199,0.276397,0.951055,0.171061,0.598834, +-0.000000,-0.000000,1.000000,0.000000,-0.000000,-0.000000,1.000000,0.846308,0.334943, +0.155215,0.251152,0.955422,0.000000,0.155215,0.251152,0.955422,0.944254,0.290379, +-0.138199,0.276397,0.951055,0.000000,-0.138199,0.276397,0.951055,0.171061,0.598834, +-0.138199,0.276397,0.951055,0.000000,-0.138199,0.276397,0.951055,0.171061,0.598834, +0.155215,0.251152,0.955422,0.000000,0.155215,0.251152,0.955422,0.944254,0.290379, +0.029639,0.502302,0.864184,0.000000,0.029639,0.502302,0.864184,1.039894,0.343193, +0.155215,0.251152,0.955422,0.000000,0.155215,0.251152,0.955422,0.944254,0.290379, +0.276388,0.447220,0.850649,0.000000,0.276388,0.447220,0.850649,1.304489,0.071876, +0.029639,0.502302,0.864184,0.000000,0.029639,0.502302,0.864184,1.039894,0.343193, +-0.860698,0.251151,-0.442858,0.000000,-0.860698,0.251151,-0.442858,0.438926,0.305137, +-0.812729,0.502301,-0.295238,0.000000,-0.812729,0.502301,-0.295238,0.093723,0.349056, +-0.723607,0.447220,-0.525725,0.000000,-0.723607,0.447220,-0.525725,0.952607,0.099770, +-0.951058,0.000000,-0.309013,0.000000,-0.951058,0.000000,-0.309013,0.433048,0.129063, +-0.947213,0.276396,-0.162458,0.000000,-0.947213,0.276396,-0.162458,0.202477,0.673755, +-0.860698,0.251151,-0.442858,0.000000,-0.860698,0.251151,-0.442858,0.438926,0.305137, +-0.956626,-0.251149,-0.147618,0.000000,-0.956626,-0.251149,-0.147618,0.304489,0.071876, +-1.000000,0.000001,0.000000,0.000000,-1.000000,0.000001,0.000000,0.912676,0.606305, +-0.951058,0.000000,-0.309013,0.000000,-0.951058,0.000000,-0.309013,0.433048,0.129063, +-0.860698,0.251151,-0.442858,0.000000,-0.860698,0.251151,-0.442858,0.438926,0.305137, +-0.947213,0.276396,-0.162458,0.000000,-0.947213,0.276396,-0.162458,0.202477,0.673755, +-0.812729,0.502301,-0.295238,0.000000,-0.812729,0.502301,-0.295238,0.093723,0.349056, +-0.947213,0.276396,-0.162458,0.000000,-0.947213,0.276396,-0.162458,0.202477,0.673755, +-0.850648,0.525736,-0.000000,0.000000,-0.850648,0.525736,-0.000000,0.039894,0.343193, +-0.812729,0.502301,-0.295238,0.000000,-0.812729,0.502301,-0.295238,0.093723,0.349056, +-0.951058,0.000000,-0.309013,0.000000,-0.951058,0.000000,-0.309013,0.433048,0.129063, +-1.000000,0.000001,0.000000,0.000000,-1.000000,0.000001,0.000000,0.912676,0.606305, +-0.947213,0.276396,-0.162458,0.000000,-0.947213,0.276396,-0.162458,0.202477,0.673755, +-1.000000,0.000001,0.000000,0.000000,-1.000000,0.000001,0.000000,0.912676,0.606305, +-0.947213,0.276397,0.162458,0.000000,-0.947213,0.276397,0.162458,0.941248,0.518705, +-0.947213,0.276396,-0.162458,0.000000,-0.947213,0.276396,-0.162458,0.202477,0.673755, +-0.947213,0.276396,-0.162458,0.000000,-0.947213,0.276396,-0.162458,0.202477,0.673755, +-0.947213,0.276397,0.162458,0.000000,-0.947213,0.276397,0.162458,0.941248,0.518705, +-0.850648,0.525736,-0.000000,0.000000,-0.850648,0.525736,-0.000000,0.039894,0.343193, +-0.947213,0.276397,0.162458,0.000000,-0.947213,0.276397,0.162458,0.941248,0.518705, +-0.812729,0.502301,0.295238,0.000000,-0.812729,0.502301,0.295238,0.003325,0.262529, +-0.850648,0.525736,-0.000000,0.000000,-0.850648,0.525736,-0.000000,0.039894,0.343193, +-0.956626,-0.251149,-0.147618,0.000000,-0.956626,-0.251149,-0.147618,0.304489,0.071876, +-0.956626,-0.251149,0.147618,0.000000,-0.956626,-0.251149,0.147618,0.397050,0.226232, +-1.000000,0.000001,0.000000,0.000000,-1.000000,0.000001,0.000000,0.912676,0.606305, +-0.956626,-0.251149,0.147618,0.000000,-0.956626,-0.251149,0.147618,0.397050,0.226232, +-0.951058,-0.000000,0.309013,0.000000,-0.951058,-0.000000,0.309013,0.326823,0.166086, +-1.000000,0.000001,0.000000,0.000000,-1.000000,0.000001,0.000000,0.912676,0.606305, +-1.000000,0.000001,0.000000,0.000000,-1.000000,0.000001,0.000000,0.912676,0.606305, +-0.951058,-0.000000,0.309013,0.000000,-0.951058,-0.000000,0.309013,0.326823,0.166086, +-0.947213,0.276397,0.162458,0.000000,-0.947213,0.276397,0.162458,0.941248,0.518705, +-0.951058,-0.000000,0.309013,0.000000,-0.951058,-0.000000,0.309013,0.326823,0.166086, +-0.860698,0.251151,0.442858,0.000000,-0.860698,0.251151,0.442858,0.333640,0.261125, +-0.947213,0.276397,0.162458,0.000000,-0.947213,0.276397,0.162458,0.941248,0.518705, +-0.947213,0.276397,0.162458,0.000000,-0.947213,0.276397,0.162458,0.941248,0.518705, +-0.860698,0.251151,0.442858,0.000000,-0.860698,0.251151,0.442858,0.333640,0.261125, +-0.812729,0.502301,0.295238,0.000000,-0.812729,0.502301,0.295238,0.003325,0.262529, +-0.860698,0.251151,0.442858,0.000000,-0.860698,0.251151,0.442858,0.333640,0.261125, +-0.723607,0.447220,0.525725,0.000000,-0.723607,0.447220,0.525725,1.115709,0.094716, +-0.812729,0.502301,0.295238,0.000000,-0.812729,0.502301,0.295238,0.003325,0.262529, +0.155215,0.251152,-0.955422,0.000000,0.155215,0.251152,-0.955422,0.115709,0.094716, +0.029639,0.502302,-0.864184,0.000000,0.029639,0.502302,-0.864184,0.791278,0.505149, +0.276388,0.447220,-0.850649,0.000000,0.276388,0.447220,-0.850649,0.768276,0.421330, +0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.193762,0.248844, +-0.138199,0.276397,-0.951055,0.000000,-0.138199,0.276397,-0.951055,0.938926,0.694863, +0.155215,0.251152,-0.955422,0.000000,0.155215,0.251152,-0.955422,0.115709,0.094716, +-0.155215,-0.251152,-0.955422,0.000000,-0.155215,-0.251152,-0.955422,0.129692,0.189429, +-0.309016,-0.000000,-0.951057,0.000000,-0.309016,-0.000000,-0.951057,0.967747,0.608792, +0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.193762,0.248844, +0.155215,0.251152,-0.955422,0.000000,0.155215,0.251152,-0.955422,0.115709,0.094716, +-0.138199,0.276397,-0.951055,0.000000,-0.138199,0.276397,-0.951055,0.938926,0.694863, +0.029639,0.502302,-0.864184,0.000000,0.029639,0.502302,-0.864184,0.791278,0.505149, +-0.138199,0.276397,-0.951055,0.000000,-0.138199,0.276397,-0.951055,0.938926,0.694863, +-0.262869,0.525738,-0.809012,0.000000,-0.262869,0.525738,-0.809012,0.863599,0.594041, +0.029639,0.502302,-0.864184,0.000000,0.029639,0.502302,-0.864184,0.791278,0.505149, +0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.193762,0.248844, +-0.309016,-0.000000,-0.951057,0.000000,-0.309016,-0.000000,-0.951057,0.967747,0.608792, +-0.138199,0.276397,-0.951055,0.000000,-0.138199,0.276397,-0.951055,0.938926,0.694863, +-0.309016,-0.000000,-0.951057,0.000000,-0.309016,-0.000000,-0.951057,0.967747,0.608792, +-0.447215,0.276397,-0.850649,0.000000,-0.447215,0.276397,-0.850649,0.996685,0.687562, +-0.138199,0.276397,-0.951055,0.000000,-0.138199,0.276397,-0.951055,0.938926,0.694863, +-0.138199,0.276397,-0.951055,0.000000,-0.138199,0.276397,-0.951055,0.938926,0.694863, +-0.447215,0.276397,-0.850649,0.000000,-0.447215,0.276397,-0.850649,0.996685,0.687562, +-0.262869,0.525738,-0.809012,0.000000,-0.262869,0.525738,-0.809012,0.863599,0.594041, +-0.447215,0.276397,-0.850649,0.000000,-0.447215,0.276397,-0.850649,0.996685,0.687562, +-0.531941,0.502302,-0.681712,0.000000,-0.531941,0.502302,-0.681712,0.814480,0.588860, +-0.262869,0.525738,-0.809012,0.000000,-0.262869,0.525738,-0.809012,0.863599,0.594041, +-0.155215,-0.251152,-0.955422,0.000000,-0.155215,-0.251152,-0.955422,0.129692,0.189429, +-0.436007,-0.251152,-0.864188,0.000000,-0.436007,-0.251152,-0.864188,0.134945,0.284572, +-0.309016,-0.000000,-0.951057,0.000000,-0.309016,-0.000000,-0.951057,0.967747,0.608792, +-0.436007,-0.251152,-0.864188,0.000000,-0.436007,-0.251152,-0.864188,0.134945,0.284572, +-0.587786,-0.000000,-0.809017,0.000000,-0.587786,-0.000000,-0.809017,0.496685,0.312438, +-0.309016,-0.000000,-0.951057,0.000000,-0.309016,-0.000000,-0.951057,0.967747,0.608792, +-0.309016,-0.000000,-0.951057,0.000000,-0.309016,-0.000000,-0.951057,0.967747,0.608792, +-0.587786,-0.000000,-0.809017,0.000000,-0.587786,-0.000000,-0.809017,0.496685,0.312438, +-0.447215,0.276397,-0.850649,0.000000,-0.447215,0.276397,-0.850649,0.996685,0.687562, +-0.587786,-0.000000,-0.809017,0.000000,-0.587786,-0.000000,-0.809017,0.496685,0.312438, +-0.687159,0.251152,-0.681715,0.000000,-0.687159,0.251152,-0.681715,0.477658,0.222612, +-0.447215,0.276397,-0.850649,0.000000,-0.447215,0.276397,-0.850649,0.996685,0.687562, +-0.447215,0.276397,-0.850649,0.000000,-0.447215,0.276397,-0.850649,0.996685,0.687562, +-0.687159,0.251152,-0.681715,0.000000,-0.687159,0.251152,-0.681715,0.477658,0.222612, +-0.531941,0.502302,-0.681712,0.000000,-0.531941,0.502302,-0.681712,0.814480,0.588860, +-0.687159,0.251152,-0.681715,0.000000,-0.687159,0.251152,-0.681715,0.477658,0.222612, +-0.723607,0.447220,-0.525725,0.000000,-0.723607,0.447220,-0.525725,0.952607,0.099770, +-0.531941,0.502302,-0.681712,0.000000,-0.531941,0.502302,-0.681712,0.814480,0.588860, +0.956626,0.251149,-0.147618,0.000000,0.956626,0.251149,-0.147618,0.610420,0.226784, +0.831051,0.502299,-0.238853,0.000000,0.831051,0.502299,-0.238853,0.891200,0.515555, +0.894426,0.447216,0.000000,0.000000,0.894426,0.447216,0.000000,0.542767,0.333057, +0.951058,0.000000,-0.309013,0.000000,0.951058,0.000000,-0.309013,0.546072,0.156902, +0.861804,0.276396,-0.425322,0.000000,0.861804,0.276396,-0.425322,1.042767,0.666943, +0.956626,0.251149,-0.147618,0.000000,0.956626,0.251149,-0.147618,0.610420,0.226784, +0.860698,-0.251151,-0.442858,0.000000,0.860698,-0.251151,-0.442858,0.543816,0.252266, +0.809019,0.000000,-0.587782,0.000000,0.809019,0.000000,-0.587782,0.615709,0.905284, +0.951058,0.000000,-0.309013,0.000000,0.951058,0.000000,-0.309013,0.546072,0.156902, +0.956626,0.251149,-0.147618,0.000000,0.956626,0.251149,-0.147618,0.610420,0.226784, +0.861804,0.276396,-0.425322,0.000000,0.861804,0.276396,-0.425322,1.042767,0.666943, +0.831051,0.502299,-0.238853,0.000000,0.831051,0.502299,-0.238853,0.891200,0.515555, +0.861804,0.276396,-0.425322,0.000000,0.861804,0.276396,-0.425322,1.042767,0.666943, +0.688189,0.525736,-0.499997,0.000000,0.688189,0.525736,-0.499997,0.816839,0.418893, +0.831051,0.502299,-0.238853,0.000000,0.831051,0.502299,-0.238853,0.891200,0.515555, +0.951058,0.000000,-0.309013,0.000000,0.951058,0.000000,-0.309013,0.546072,0.156902, +0.809019,0.000000,-0.587782,0.000000,0.809019,0.000000,-0.587782,0.615709,0.905284, +0.861804,0.276396,-0.425322,0.000000,0.861804,0.276396,-0.425322,1.042767,0.666943, +0.809019,0.000000,-0.587782,0.000000,0.809019,0.000000,-0.587782,0.615709,0.905284, +0.670821,0.276397,-0.688189,0.000000,0.670821,0.276397,-0.688189,0.804489,0.928124, +0.861804,0.276396,-0.425322,0.000000,0.861804,0.276396,-0.425322,1.042767,0.666943, +0.861804,0.276396,-0.425322,0.000000,0.861804,0.276396,-0.425322,1.042767,0.666943, +0.670821,0.276397,-0.688189,0.000000,0.670821,0.276397,-0.688189,0.804489,0.928124, +0.688189,0.525736,-0.499997,0.000000,0.688189,0.525736,-0.499997,0.816839,0.418893, +0.670821,0.276397,-0.688189,0.000000,0.670821,0.276397,-0.688189,0.804489,0.928124, +0.483971,0.502302,-0.716565,0.000000,0.483971,0.502302,-0.716565,0.841211,0.510884, +0.688189,0.525736,-0.499997,0.000000,0.688189,0.525736,-0.499997,0.816839,0.418893, +0.860698,-0.251151,-0.442858,0.000000,0.860698,-0.251151,-0.442858,0.543816,0.252266, +0.687159,-0.251152,-0.681715,0.000000,0.687159,-0.251152,-0.681715,0.268675,0.239476, +0.809019,0.000000,-0.587782,0.000000,0.809019,0.000000,-0.587782,0.615709,0.905284, +0.687159,-0.251152,-0.681715,0.000000,0.687159,-0.251152,-0.681715,0.268675,0.239476, +0.587786,-0.000000,-0.809017,0.000000,0.587786,-0.000000,-0.809017,0.235205,0.325266, +0.809019,0.000000,-0.587782,0.000000,0.809019,0.000000,-0.587782,0.615709,0.905284, +0.809019,0.000000,-0.587782,0.000000,0.809019,0.000000,-0.587782,0.615709,0.905284, +0.587786,-0.000000,-0.809017,0.000000,0.587786,-0.000000,-0.809017,0.235205,0.325266, +0.670821,0.276397,-0.688189,0.000000,0.670821,0.276397,-0.688189,0.804489,0.928124, +0.587786,-0.000000,-0.809017,0.000000,0.587786,-0.000000,-0.809017,0.235205,0.325266, +0.436007,0.251152,-0.864188,0.000000,0.436007,0.251152,-0.864188,0.221600,0.149916, +0.670821,0.276397,-0.688189,0.000000,0.670821,0.276397,-0.688189,0.804489,0.928124, +0.670821,0.276397,-0.688189,0.000000,0.670821,0.276397,-0.688189,0.804489,0.928124, +0.436007,0.251152,-0.864188,0.000000,0.436007,0.251152,-0.864188,0.221600,0.149916, +0.483971,0.502302,-0.716565,0.000000,0.483971,0.502302,-0.716565,0.841211,0.510884, +0.436007,0.251152,-0.864188,0.000000,0.436007,0.251152,-0.864188,0.221600,0.149916, +0.276388,0.447220,-0.850649,0.000000,0.276388,0.447220,-0.850649,0.768276,0.421330, +0.483971,0.502302,-0.716565,0.000000,0.483971,0.502302,-0.716565,0.841211,0.510884, +0.077607,0.967950,0.238853,0.000000,0.077607,0.967950,0.238853,0.591499,0.483164, +0.251147,0.967949,0.000000,0.000000,0.251147,0.967949,0.000000,0.663633,0.570564, +0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.589135,0.315387, +0.162456,0.850654,0.499995,0.000000,0.162456,0.850654,0.499995,0.641510,0.487355, +0.361800,0.894429,0.262863,0.000000,0.361800,0.894429,0.262863,0.499999,0.979947, +0.077607,0.967950,0.238853,0.000000,0.077607,0.967950,0.238853,0.591499,0.483164, +0.232822,0.657519,0.716563,0.000000,0.232822,0.657519,0.716563,0.616405,0.395845, +0.447209,0.723612,0.525728,0.000000,0.447209,0.723612,0.525728,0.629692,0.810571, +0.162456,0.850654,0.499995,0.000000,0.162456,0.850654,0.499995,0.641510,0.487355, +0.077607,0.967950,0.238853,0.000000,0.077607,0.967950,0.238853,0.591499,0.483164, +0.361800,0.894429,0.262863,0.000000,0.361800,0.894429,0.262863,0.499999,0.979947, +0.251147,0.967949,0.000000,0.000000,0.251147,0.967949,0.000000,0.663633,0.570564, +0.361800,0.894429,0.262863,0.000000,0.361800,0.894429,0.262863,0.499999,0.979947, +0.525730,0.850652,0.000000,0.000000,0.525730,0.850652,0.000000,0.615418,0.565866, +0.251147,0.967949,0.000000,0.000000,0.251147,0.967949,0.000000,0.663633,0.570564, +0.162456,0.850654,0.499995,0.000000,0.162456,0.850654,0.499995,0.641510,0.487355, +0.447209,0.723612,0.525728,0.000000,0.447209,0.723612,0.525728,0.629692,0.810571, +0.361800,0.894429,0.262863,0.000000,0.361800,0.894429,0.262863,0.499999,0.979947, +0.447209,0.723612,0.525728,0.000000,0.447209,0.723612,0.525728,0.629692,0.810571, +0.638194,0.723610,0.262864,0.000000,0.638194,0.723610,0.262864,0.721600,0.850084, +0.361800,0.894429,0.262863,0.000000,0.361800,0.894429,0.262863,0.499999,0.979947, +0.361800,0.894429,0.262863,0.000000,0.361800,0.894429,0.262863,0.499999,0.979947, +0.638194,0.723610,0.262864,0.000000,0.638194,0.723610,0.262864,0.721600,0.850084, +0.525730,0.850652,0.000000,0.000000,0.525730,0.850652,0.000000,0.615418,0.565866, +0.638194,0.723610,0.262864,0.000000,0.638194,0.723610,0.262864,0.721600,0.850084, +0.753442,0.657515,0.000000,0.000000,0.753442,0.657515,0.000000,0.870330,0.424531, +0.525730,0.850652,0.000000,0.000000,0.525730,0.850652,0.000000,0.615418,0.565866, +0.232822,0.657519,0.716563,0.000000,0.232822,0.657519,0.716563,0.616405,0.395845, +0.483971,0.502302,0.716565,0.000000,0.483971,0.502302,0.716565,1.036828,0.167036, +0.447209,0.723612,0.525728,0.000000,0.447209,0.723612,0.525728,0.629692,0.810571, +0.483971,0.502302,0.716565,0.000000,0.483971,0.502302,0.716565,1.036828,0.167036, +0.688189,0.525736,0.499997,0.000000,0.688189,0.525736,0.499997,1.003325,0.262529, +0.447209,0.723612,0.525728,0.000000,0.447209,0.723612,0.525728,0.629692,0.810571, +0.447209,0.723612,0.525728,0.000000,0.447209,0.723612,0.525728,0.629692,0.810571, +0.688189,0.525736,0.499997,0.000000,0.688189,0.525736,0.499997,1.003325,0.262529, +0.638194,0.723610,0.262864,0.000000,0.638194,0.723610,0.262864,0.721600,0.850084, +0.688189,0.525736,0.499997,0.000000,0.688189,0.525736,0.499997,1.003325,0.262529, +0.831051,0.502299,0.238853,0.000000,0.831051,0.502299,0.238853,0.291096,0.327017, +0.638194,0.723610,0.262864,0.000000,0.638194,0.723610,0.262864,0.721600,0.850084, +0.638194,0.723610,0.262864,0.000000,0.638194,0.723610,0.262864,0.721600,0.850084, +0.831051,0.502299,0.238853,0.000000,0.831051,0.502299,0.238853,0.291096,0.327017, +0.753442,0.657515,0.000000,0.000000,0.753442,0.657515,0.000000,0.870330,0.424531, +0.831051,0.502299,0.238853,0.000000,0.831051,0.502299,0.238853,0.291096,0.327017, +0.894426,0.447216,0.000000,0.000000,0.894426,0.447216,0.000000,0.542767,0.333057, +0.753442,0.657515,0.000000,0.000000,0.753442,0.657515,0.000000,0.870330,0.424531, +-0.203181,0.967950,0.147618,0.000000,-0.203181,0.967950,0.147618,0.691461,0.492781, +0.077607,0.967950,0.238853,0.000000,0.077607,0.967950,0.238853,0.591499,0.483164, +0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.589135,0.315387, +-0.425323,0.850654,0.309011,0.000000,-0.425323,0.850654,0.309011,0.671061,0.401166, +-0.138197,0.894430,0.425320,0.000000,-0.138197,0.894430,0.425320,0.693762,0.751156, +-0.203181,0.967950,0.147618,0.000000,-0.203181,0.967950,0.147618,0.691461,0.492781, +-0.609547,0.657519,0.442856,0.000000,-0.609547,0.657519,0.442856,0.418131,0.563385, +-0.361804,0.723612,0.587778,0.000000,-0.361804,0.723612,0.587778,0.826823,0.833914, +-0.425323,0.850654,0.309011,0.000000,-0.425323,0.850654,0.309011,0.671061,0.401166, +-0.203181,0.967950,0.147618,0.000000,-0.203181,0.967950,0.147618,0.691461,0.492781, +-0.138197,0.894430,0.425320,0.000000,-0.138197,0.894430,0.425320,0.693762,0.751156, +0.077607,0.967950,0.238853,0.000000,0.077607,0.967950,0.238853,0.591499,0.483164, +-0.138197,0.894430,0.425320,0.000000,-0.138197,0.894430,0.425320,0.693762,0.751156, +0.162456,0.850654,0.499995,0.000000,0.162456,0.850654,0.499995,0.641510,0.487355, +0.077607,0.967950,0.238853,0.000000,0.077607,0.967950,0.238853,0.591499,0.483164, +-0.425323,0.850654,0.309011,0.000000,-0.425323,0.850654,0.309011,0.671061,0.401166, +-0.361804,0.723612,0.587778,0.000000,-0.361804,0.723612,0.587778,0.826823,0.833914, +-0.138197,0.894430,0.425320,0.000000,-0.138197,0.894430,0.425320,0.693762,0.751156, +-0.361804,0.723612,0.587778,0.000000,-0.361804,0.723612,0.587778,0.826823,0.833914, +-0.052790,0.723612,0.688185,0.000000,-0.052790,0.723612,0.688185,0.768674,0.760524, +-0.138197,0.894430,0.425320,0.000000,-0.138197,0.894430,0.425320,0.693762,0.751156, +-0.138197,0.894430,0.425320,0.000000,-0.138197,0.894430,0.425320,0.693762,0.751156, +-0.052790,0.723612,0.688185,0.000000,-0.052790,0.723612,0.688185,0.768674,0.760524, +0.162456,0.850654,0.499995,0.000000,0.162456,0.850654,0.499995,0.641510,0.487355, +-0.052790,0.723612,0.688185,0.000000,-0.052790,0.723612,0.688185,0.768674,0.760524, +0.232822,0.657519,0.716563,0.000000,0.232822,0.657519,0.716563,0.616405,0.395845, +0.162456,0.850654,0.499995,0.000000,0.162456,0.850654,0.499995,0.641510,0.487355, +-0.609547,0.657519,0.442856,0.000000,-0.609547,0.657519,0.442856,0.418131,0.563385, +-0.531941,0.502302,0.681712,0.000000,-0.531941,0.502302,0.681712,0.074553,0.260244, +-0.361804,0.723612,0.587778,0.000000,-0.361804,0.723612,0.587778,0.826823,0.833914, +-0.531941,0.502302,0.681712,0.000000,-0.531941,0.502302,0.681712,0.074553,0.260244, +-0.262869,0.525738,0.809012,0.000000,-0.262869,0.525738,0.809012,0.036828,0.167036, +-0.361804,0.723612,0.587778,0.000000,-0.361804,0.723612,0.587778,0.826823,0.833914, +-0.361804,0.723612,0.587778,0.000000,-0.361804,0.723612,0.587778,0.826823,0.833914, +-0.262869,0.525738,0.809012,0.000000,-0.262869,0.525738,0.809012,0.036828,0.167036, +-0.052790,0.723612,0.688185,0.000000,-0.052790,0.723612,0.688185,0.768674,0.760524, +-0.262869,0.525738,0.809012,0.000000,-0.262869,0.525738,0.809012,0.036828,0.167036, +0.029639,0.502302,0.864184,0.000000,0.029639,0.502302,0.864184,1.039894,0.343193, +-0.052790,0.723612,0.688185,0.000000,-0.052790,0.723612,0.688185,0.768674,0.760524, +-0.052790,0.723612,0.688185,0.000000,-0.052790,0.723612,0.688185,0.768674,0.760524, +0.029639,0.502302,0.864184,0.000000,0.029639,0.502302,0.864184,1.039894,0.343193, +0.232822,0.657519,0.716563,0.000000,0.232822,0.657519,0.716563,0.616405,0.395845, +0.029639,0.502302,0.864184,0.000000,0.029639,0.502302,0.864184,1.039894,0.343193, +0.276388,0.447220,0.850649,0.000000,0.276388,0.447220,0.850649,1.304489,0.071876, +0.232822,0.657519,0.716563,0.000000,0.232822,0.657519,0.716563,0.616405,0.395845, +-0.203181,0.967950,-0.147618,0.000000,-0.203181,0.967950,-0.147618,0.466205,0.561213, +-0.203181,0.967950,0.147618,0.000000,-0.203181,0.967950,0.147618,0.691461,0.492781, +0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.589135,0.315387, +-0.425323,0.850654,-0.309011,0.000000,-0.425323,0.850654,-0.309011,0.391200,0.484445, +-0.447210,0.894429,0.000000,0.000000,-0.447210,0.894429,0.000000,0.452607,0.900230, +-0.203181,0.967950,-0.147618,0.000000,-0.203181,0.967950,-0.147618,0.466205,0.561213, +-0.609547,0.657519,-0.442856,0.000000,-0.609547,0.657519,-0.442856,0.441249,0.481295, +-0.670817,0.723611,-0.162457,0.000000,-0.670817,0.723611,-0.162457,0.446597,0.804967, +-0.425323,0.850654,-0.309011,0.000000,-0.425323,0.850654,-0.309011,0.391200,0.484445, +-0.203181,0.967950,-0.147618,0.000000,-0.203181,0.967950,-0.147618,0.466205,0.561213, +-0.447210,0.894429,0.000000,0.000000,-0.447210,0.894429,0.000000,0.452607,0.900230, +-0.203181,0.967950,0.147618,0.000000,-0.203181,0.967950,0.147618,0.691461,0.492781, +-0.447210,0.894429,0.000000,0.000000,-0.447210,0.894429,0.000000,0.452607,0.900230, +-0.425323,0.850654,0.309011,0.000000,-0.425323,0.850654,0.309011,0.671061,0.401166, +-0.203181,0.967950,0.147618,0.000000,-0.203181,0.967950,0.147618,0.691461,0.492781, +-0.425323,0.850654,-0.309011,0.000000,-0.425323,0.850654,-0.309011,0.391200,0.484445, +-0.670817,0.723611,-0.162457,0.000000,-0.670817,0.723611,-0.162457,0.446597,0.804967, +-0.447210,0.894429,0.000000,0.000000,-0.447210,0.894429,0.000000,0.452607,0.900230, +-0.670817,0.723611,-0.162457,0.000000,-0.670817,0.723611,-0.162457,0.446597,0.804967, +-0.670817,0.723611,0.162457,0.000000,-0.670817,0.723611,0.162457,0.536828,0.832965, +-0.447210,0.894429,0.000000,0.000000,-0.447210,0.894429,0.000000,0.452607,0.900230, +-0.447210,0.894429,0.000000,0.000000,-0.447210,0.894429,0.000000,0.452607,0.900230, +-0.670817,0.723611,0.162457,0.000000,-0.670817,0.723611,0.162457,0.536828,0.832965, +-0.425323,0.850654,0.309011,0.000000,-0.425323,0.850654,0.309011,0.671061,0.401166, +-0.670817,0.723611,0.162457,0.000000,-0.670817,0.723611,0.162457,0.536828,0.832965, +-0.609547,0.657519,0.442856,0.000000,-0.609547,0.657519,0.442856,0.418131,0.563385, +-0.425323,0.850654,0.309011,0.000000,-0.425323,0.850654,0.309011,0.671061,0.401166, +-0.609547,0.657519,-0.442856,0.000000,-0.609547,0.657519,-0.442856,0.441249,0.481295, +-0.812729,0.502301,-0.295238,0.000000,-0.812729,0.502301,-0.295238,0.093723,0.349056, +-0.670817,0.723611,-0.162457,0.000000,-0.670817,0.723611,-0.162457,0.446597,0.804967, +-0.812729,0.502301,-0.295238,0.000000,-0.812729,0.502301,-0.295238,0.093723,0.349056, +-0.850648,0.525736,-0.000000,0.000000,-0.850648,0.525736,-0.000000,0.039894,0.343193, +-0.670817,0.723611,-0.162457,0.000000,-0.670817,0.723611,-0.162457,0.446597,0.804967, +-0.670817,0.723611,-0.162457,0.000000,-0.670817,0.723611,-0.162457,0.446597,0.804967, +-0.850648,0.525736,-0.000000,0.000000,-0.850648,0.525736,-0.000000,0.039894,0.343193, +-0.670817,0.723611,0.162457,0.000000,-0.670817,0.723611,0.162457,0.536828,0.832965, +-0.850648,0.525736,-0.000000,0.000000,-0.850648,0.525736,-0.000000,0.039894,0.343193, +-0.812729,0.502301,0.295238,0.000000,-0.812729,0.502301,0.295238,0.003325,0.262529, +-0.670817,0.723611,0.162457,0.000000,-0.670817,0.723611,0.162457,0.536828,0.832965, +-0.670817,0.723611,0.162457,0.000000,-0.670817,0.723611,0.162457,0.536828,0.832965, +-0.812729,0.502301,0.295238,0.000000,-0.812729,0.502301,0.295238,0.003325,0.262529, +-0.609547,0.657519,0.442856,0.000000,-0.609547,0.657519,0.442856,0.418131,0.563385, +-0.812729,0.502301,0.295238,0.000000,-0.812729,0.502301,0.295238,0.003325,0.262529, +-0.723607,0.447220,0.525725,0.000000,-0.723607,0.447220,0.525725,1.115709,0.094716, +-0.609547,0.657519,0.442856,0.000000,-0.609547,0.657519,0.442856,0.418131,0.563385, +0.077607,0.967950,-0.238853,0.000000,0.077607,0.967950,-0.238853,0.412677,0.393695, +-0.203181,0.967950,-0.147618,0.000000,-0.203181,0.967950,-0.147618,0.466205,0.561213, +0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.589135,0.315387, +0.162456,0.850654,-0.499995,0.000000,0.162456,0.850654,-0.499995,0.491338,0.479977, +-0.138197,0.894430,-0.425320,0.000000,-0.138197,0.894430,-0.425320,0.503325,0.737471, +0.077607,0.967950,-0.238853,0.000000,0.077607,0.967950,-0.238853,0.412677,0.393695, +0.232822,0.657519,-0.716563,0.000000,0.232822,0.657519,-0.716563,0.467747,0.391208, +-0.052790,0.723612,-0.688185,0.000000,-0.052790,0.723612,-0.688185,0.574552,0.739757, +0.162456,0.850654,-0.499995,0.000000,0.162456,0.850654,-0.499995,0.491338,0.479977, +0.077607,0.967950,-0.238853,0.000000,0.077607,0.967950,-0.238853,0.412677,0.393695, +-0.138197,0.894430,-0.425320,0.000000,-0.138197,0.894430,-0.425320,0.503325,0.737471, +-0.203181,0.967950,-0.147618,0.000000,-0.203181,0.967950,-0.147618,0.466205,0.561213, +-0.138197,0.894430,-0.425320,0.000000,-0.138197,0.894430,-0.425320,0.503325,0.737471, +-0.425323,0.850654,-0.309011,0.000000,-0.425323,0.850654,-0.309011,0.391200,0.484445, +-0.203181,0.967950,-0.147618,0.000000,-0.203181,0.967950,-0.147618,0.466205,0.561213, +0.162456,0.850654,-0.499995,0.000000,0.162456,0.850654,-0.499995,0.491338,0.479977, +-0.052790,0.723612,-0.688185,0.000000,-0.052790,0.723612,-0.688185,0.574552,0.739757, +-0.138197,0.894430,-0.425320,0.000000,-0.138197,0.894430,-0.425320,0.503325,0.737471, +-0.052790,0.723612,-0.688185,0.000000,-0.052790,0.723612,-0.688185,0.574552,0.739757, +-0.361804,0.723612,-0.587778,0.000000,-0.361804,0.723612,-0.587778,0.279690,0.917858, +-0.138197,0.894430,-0.425320,0.000000,-0.138197,0.894430,-0.425320,0.503325,0.737471, +-0.138197,0.894430,-0.425320,0.000000,-0.138197,0.894430,-0.425320,0.503325,0.737471, +-0.361804,0.723612,-0.587778,0.000000,-0.361804,0.723612,-0.587778,0.279690,0.917858, +-0.425323,0.850654,-0.309011,0.000000,-0.425323,0.850654,-0.309011,0.391200,0.484445, +-0.361804,0.723612,-0.587778,0.000000,-0.361804,0.723612,-0.587778,0.279690,0.917858, +-0.609547,0.657519,-0.442856,0.000000,-0.609547,0.657519,-0.442856,0.441249,0.481295, +-0.425323,0.850654,-0.309011,0.000000,-0.425323,0.850654,-0.309011,0.391200,0.484445, +0.232822,0.657519,-0.716563,0.000000,0.232822,0.657519,-0.716563,0.467747,0.391208, +0.029639,0.502302,-0.864184,0.000000,0.029639,0.502302,-0.864184,0.791278,0.505149, +-0.052790,0.723612,-0.688185,0.000000,-0.052790,0.723612,-0.688185,0.574552,0.739757, +0.029639,0.502302,-0.864184,0.000000,0.029639,0.502302,-0.864184,0.791278,0.505149, +-0.262869,0.525738,-0.809012,0.000000,-0.262869,0.525738,-0.809012,0.863599,0.594041, +-0.052790,0.723612,-0.688185,0.000000,-0.052790,0.723612,-0.688185,0.574552,0.739757, +-0.052790,0.723612,-0.688185,0.000000,-0.052790,0.723612,-0.688185,0.574552,0.739757, +-0.262869,0.525738,-0.809012,0.000000,-0.262869,0.525738,-0.809012,0.863599,0.594041, +-0.361804,0.723612,-0.587778,0.000000,-0.361804,0.723612,-0.587778,0.279690,0.917858, +-0.262869,0.525738,-0.809012,0.000000,-0.262869,0.525738,-0.809012,0.863599,0.594041, +-0.531941,0.502302,-0.681712,0.000000,-0.531941,0.502302,-0.681712,0.814480,0.588860, +-0.361804,0.723612,-0.587778,0.000000,-0.361804,0.723612,-0.587778,0.279690,0.917858, +-0.361804,0.723612,-0.587778,0.000000,-0.361804,0.723612,-0.587778,0.279690,0.917858, +-0.531941,0.502302,-0.681712,0.000000,-0.531941,0.502302,-0.681712,0.814480,0.588860, +-0.609547,0.657519,-0.442856,0.000000,-0.609547,0.657519,-0.442856,0.441249,0.481295, +-0.531941,0.502302,-0.681712,0.000000,-0.531941,0.502302,-0.681712,0.814480,0.588860, +-0.723607,0.447220,-0.525725,0.000000,-0.723607,0.447220,-0.525725,0.952607,0.099770, +-0.609547,0.657519,-0.442856,0.000000,-0.609547,0.657519,-0.442856,0.441249,0.481295, +0.251147,0.967949,0.000000,0.000000,0.251147,0.967949,0.000000,0.663633,0.570564, +0.077607,0.967950,-0.238853,0.000000,0.077607,0.967950,-0.238853,0.412677,0.393695, +0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.589135,0.315387, +0.525730,0.850652,0.000000,0.000000,0.525730,0.850652,0.000000,0.615418,0.565866, +0.361800,0.894429,-0.262863,0.000000,0.361800,0.894429,-0.262863,0.257596,0.823860, +0.251147,0.967949,0.000000,0.000000,0.251147,0.967949,0.000000,0.663633,0.570564, +0.753442,0.657515,0.000000,0.000000,0.753442,0.657515,0.000000,0.870330,0.424531, +0.638194,0.723610,-0.262864,0.000000,0.638194,0.723610,-0.262864,0.356930,0.840702, +0.525730,0.850652,0.000000,0.000000,0.525730,0.850652,0.000000,0.615418,0.565866, +0.251147,0.967949,0.000000,0.000000,0.251147,0.967949,0.000000,0.663633,0.570564, +0.361800,0.894429,-0.262863,0.000000,0.361800,0.894429,-0.262863,0.257596,0.823860, +0.077607,0.967950,-0.238853,0.000000,0.077607,0.967950,-0.238853,0.412677,0.393695, +0.361800,0.894429,-0.262863,0.000000,0.361800,0.894429,-0.262863,0.257596,0.823860, +0.162456,0.850654,-0.499995,0.000000,0.162456,0.850654,-0.499995,0.491338,0.479977, +0.077607,0.967950,-0.238853,0.000000,0.077607,0.967950,-0.238853,0.412677,0.393695, +0.525730,0.850652,0.000000,0.000000,0.525730,0.850652,0.000000,0.615418,0.565866, +0.638194,0.723610,-0.262864,0.000000,0.638194,0.723610,-0.262864,0.356930,0.840702, +0.361800,0.894429,-0.262863,0.000000,0.361800,0.894429,-0.262863,0.257596,0.823860, +0.638194,0.723610,-0.262864,0.000000,0.638194,0.723610,-0.262864,0.356930,0.840702, +0.447209,0.723612,-0.525728,0.000000,0.447209,0.723612,-0.525728,0.313138,0.750327, +0.361800,0.894429,-0.262863,0.000000,0.361800,0.894429,-0.262863,0.257596,0.823860, +0.361800,0.894429,-0.262863,0.000000,0.361800,0.894429,-0.262863,0.257596,0.823860, +0.447209,0.723612,-0.525728,0.000000,0.447209,0.723612,-0.525728,0.313138,0.750327, +0.162456,0.850654,-0.499995,0.000000,0.162456,0.850654,-0.499995,0.491338,0.479977, +0.447209,0.723612,-0.525728,0.000000,0.447209,0.723612,-0.525728,0.313138,0.750327, +0.232822,0.657519,-0.716563,0.000000,0.232822,0.657519,-0.716563,0.467747,0.391208, +0.162456,0.850654,-0.499995,0.000000,0.162456,0.850654,-0.499995,0.491338,0.479977, +0.753442,0.657515,0.000000,0.000000,0.753442,0.657515,0.000000,0.870330,0.424531, +0.831051,0.502299,-0.238853,0.000000,0.831051,0.502299,-0.238853,0.891200,0.515555, +0.638194,0.723610,-0.262864,0.000000,0.638194,0.723610,-0.262864,0.356930,0.840702, +0.831051,0.502299,-0.238853,0.000000,0.831051,0.502299,-0.238853,0.891200,0.515555, +0.688189,0.525736,-0.499997,0.000000,0.688189,0.525736,-0.499997,0.816839,0.418893, +0.638194,0.723610,-0.262864,0.000000,0.638194,0.723610,-0.262864,0.356930,0.840702, +0.638194,0.723610,-0.262864,0.000000,0.638194,0.723610,-0.262864,0.356930,0.840702, +0.688189,0.525736,-0.499997,0.000000,0.688189,0.525736,-0.499997,0.816839,0.418893, +0.447209,0.723612,-0.525728,0.000000,0.447209,0.723612,-0.525728,0.313138,0.750327, +0.688189,0.525736,-0.499997,0.000000,0.688189,0.525736,-0.499997,0.816839,0.418893, +0.483971,0.502302,-0.716565,0.000000,0.483971,0.502302,-0.716565,0.841211,0.510884, +0.447209,0.723612,-0.525728,0.000000,0.447209,0.723612,-0.525728,0.313138,0.750327, +0.447209,0.723612,-0.525728,0.000000,0.447209,0.723612,-0.525728,0.313138,0.750327, +0.483971,0.502302,-0.716565,0.000000,0.483971,0.502302,-0.716565,0.841211,0.510884, +0.232822,0.657519,-0.716563,0.000000,0.232822,0.657519,-0.716563,0.467747,0.391208, +0.483971,0.502302,-0.716565,0.000000,0.483971,0.502302,-0.716565,0.841211,0.510884, +0.276388,0.447220,-0.850649,0.000000,0.276388,0.447220,-0.850649,0.768276,0.421330, +0.232822,0.657519,-0.716563,0.000000,0.232822,0.657519,-0.716563,0.467747,0.391208 +}; + +const int medium_sphere_indices[]= +{ + 0,1,2, +3,4,5, +6,7,8, +9,10,11, +12,13,14, +15,16,17, +18,19,20, +21,22,23, +24,25,26, +27,28,29, +30,31,32, +33,34,35, +36,37,38, +39,40,41, +42,43,44, +45,46,47, +48,49,50, +51,52,53, +54,55,56, +57,58,59, +60,61,62, +63,64,65, +66,67,68, +69,70,71, +72,73,74, +75,76,77, +78,79,80, +81,82,83, +84,85,86, +87,88,89, +90,91,92, +93,94,95, +96,97,98, +99,100,101, +102,103,104, +105,106,107, +108,109,110, +111,112,113, +114,115,116, +117,118,119, +120,121,122, +123,124,125, +126,127,128, +129,130,131, +132,133,134, +135,136,137, +138,139,140, +141,142,143, +144,145,146, +147,148,149, +150,151,152, +153,154,155, +156,157,158, +159,160,161, +162,163,164, +165,166,167, +168,169,170, +171,172,173, +174,175,176, +177,178,179, +180,181,182, +183,184,185, +186,187,188, +189,190,191, +192,193,194, +195,196,197, +198,199,200, +201,202,203, +204,205,206, +207,208,209, +210,211,212, +213,214,215, +216,217,218, +219,220,221, +222,223,224, +225,226,227, +228,229,230, +231,232,233, +234,235,236, +237,238,239, +240,241,242, +243,244,245, +246,247,248, +249,250,251, +252,253,254, +255,256,257, +258,259,260, +261,262,263, +264,265,266, +267,268,269, +270,271,272, +273,274,275, +276,277,278, +279,280,281, +282,283,284, +285,286,287, +288,289,290, +291,292,293, +294,295,296, +297,298,299, +300,301,302, +303,304,305, +306,307,308, +309,310,311, +312,313,314, +315,316,317, +318,319,320, +321,322,323, +324,325,326, +327,328,329, +330,331,332, +333,334,335, +336,337,338, +339,340,341, +342,343,344, +345,346,347, +348,349,350, +351,352,353, +354,355,356, +357,358,359, +360,361,362, +363,364,365, +366,367,368, +369,370,371, +372,373,374, +375,376,377, +378,379,380, +381,382,383, +384,385,386, +387,388,389, +390,391,392, +393,394,395, +396,397,398, +399,400,401, +402,403,404, +405,406,407, +408,409,410, +411,412,413, +414,415,416, +417,418,419, +420,421,422, +423,424,425, +426,427,428, +429,430,431, +432,433,434, +435,436,437, +438,439,440, +441,442,443, +444,445,446, +447,448,449, +450,451,452, +453,454,455, +456,457,458, +459,460,461, +462,463,464, +465,466,467, +468,469,470, +471,472,473, +474,475,476, +477,478,479, +480,481,482, +483,484,485, +486,487,488, +489,490,491, +492,493,494, +495,496,497, +498,499,500, +501,502,503, +504,505,506, +507,508,509, +510,511,512, +513,514,515, +516,517,518, +519,520,521, +522,523,524, +525,526,527, +528,529,530, +531,532,533, +534,535,536, +537,538,539, +540,541,542, +543,544,545, +546,547,548, +549,550,551, +552,553,554, +555,556,557, +558,559,560, +561,562,563, +564,565,566, +567,568,569, +570,571,572, +573,574,575, +576,577,578, +579,580,581, +582,583,584, +585,586,587, +588,589,590, +591,592,593, +594,595,596, +597,598,599, +600,601,602, +603,604,605, +606,607,608, +609,610,611, +612,613,614, +615,616,617, +618,619,620, +621,622,623, +624,625,626, +627,628,629, +630,631,632, +633,634,635, +636,637,638, +639,640,641, +642,643,644, +645,646,647, +648,649,650, +651,652,653, +654,655,656, +657,658,659, +660,661,662, +663,664,665, +666,667,668, +669,670,671, +672,673,674, +675,676,677, +678,679,680, +681,682,683, +684,685,686, +687,688,689, +690,691,692, +693,694,695, +696,697,698, +699,700,701, +702,703,704, +705,706,707, +708,709,710, +711,712,713, +714,715,716, +717,718,719, +720,721,722, +723,724,725, +726,727,728, +729,730,731, +732,733,734, +735,736,737, +738,739,740, +741,742,743, +744,745,746, +747,748,749, +750,751,752, +753,754,755, +756,757,758, +759,760,761, +762,763,764, +765,766,767, +768,769,770, +771,772,773, +774,775,776, +777,778,779, +780,781,782, +783,784,785, +786,787,788, +789,790,791, +792,793,794, +795,796,797, +798,799,800, +801,802,803, +804,805,806, +807,808,809, +810,811,812, +813,814,815, +816,817,818, +819,820,821, +822,823,824, +825,826,827, +828,829,830, +831,832,833, +834,835,836, +837,838,839, +840,841,842, +843,844,845, +846,847,848, +849,850,851, +852,853,854, +855,856,857, +858,859,860, +861,862,863, +864,865,866, +867,868,869, +870,871,872, +873,874,875, +876,877,878, +879,880,881, +882,883,884, +885,886,887, +888,889,890, +891,892,893, +894,895,896, +897,898,899, +900,901,902, +903,904,905, +906,907,908, +909,910,911, +912,913,914, +915,916,917, +918,919,920, +921,922,923, +924,925,926, +927,928,929, +930,931,932, +933,934,935, +936,937,938, +939,940,941, +942,943,944, +945,946,947, +948,949,950, +951,952,953, +954,955,956, +957,958,959 +}; + + +const float low_sphere_vertices[]= +{ + 0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.999999,0.020053, +0.425323,-0.850654,0.309011,0.000000,0.425323,-0.850654,0.309011,0.336927,0.341759, +-0.162456,-0.850654,0.499995,0.000000,-0.162456,-0.850654,0.499995,0.391200,0.484445, +0.723607,-0.447220,0.525725,0.000000,0.723607,-0.447220,0.525725,0.757596,0.176140, +0.425323,-0.850654,0.309011,0.000000,0.425323,-0.850654,0.309011,0.336927,0.341759, +0.850648,-0.525736,0.000000,0.000000,0.850648,-0.525736,0.000000,0.235205,0.325266, +0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.999999,0.020053, +-0.162456,-0.850654,0.499995,0.000000,-0.162456,-0.850654,0.499995,0.391200,0.484445, +-0.525730,-0.850652,0.000000,0.000000,-0.525730,-0.850652,0.000000,0.943007,0.371159, +0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.999999,0.020053, +-0.525730,-0.850652,0.000000,0.000000,-0.525730,-0.850652,0.000000,0.943007,0.371159, +-0.162456,-0.850654,-0.499995,0.000000,-0.162456,-0.850654,-0.499995,0.991338,0.520023, +0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.999999,0.020053, +-0.162456,-0.850654,-0.499995,0.000000,-0.162456,-0.850654,-0.499995,0.991338,0.520023, +0.425323,-0.850654,-0.309011,0.000000,0.425323,-0.850654,-0.309011,0.137692,0.365246, +0.723607,-0.447220,0.525725,0.000000,0.723607,-0.447220,0.525725,0.757596,0.176140, +0.850648,-0.525736,0.000000,0.000000,0.850648,-0.525736,0.000000,0.235205,0.325266, +0.951058,0.000000,0.309013,0.000000,0.951058,0.000000,0.309013,0.291278,0.494851, +-0.276388,-0.447220,0.850649,0.000000,-0.276388,-0.447220,0.850649,0.546072,0.156902, +0.262869,-0.525738,0.809012,0.000000,0.262869,-0.525738,0.809012,0.438926,0.305137, +0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.891200,0.515555, +-0.894426,-0.447216,0.000000,0.000000,-0.894426,-0.447216,0.000000,0.746383,0.351642, +-0.688189,-0.525736,0.499997,0.000000,-0.688189,-0.525736,0.499997,0.191461,0.507219, +-0.951058,0.000000,0.309013,0.000000,-0.951058,0.000000,0.309013,0.735205,0.674734, +-0.276388,-0.447220,-0.850649,0.000000,-0.276388,-0.447220,-0.850649,0.846308,0.334943, +-0.688189,-0.525736,-0.499997,0.000000,-0.688189,-0.525736,-0.499997,1.039894,0.343193, +-0.587786,0.000000,-0.809017,0.000000,-0.587786,0.000000,-0.809017,0.443007,0.628841, +0.723607,-0.447220,-0.525725,0.000000,0.723607,-0.447220,-0.525725,1.326823,0.166086, +0.262869,-0.525738,-0.809012,0.000000,0.262869,-0.525738,-0.809012,0.691461,0.492781, +0.587786,0.000000,-0.809017,0.000000,0.587786,0.000000,-0.809017,0.446597,0.804967, +0.723607,-0.447220,0.525725,0.000000,0.723607,-0.447220,0.525725,0.757596,0.176140, +0.951058,0.000000,0.309013,0.000000,0.951058,0.000000,0.309013,0.291278,0.494851, +0.587786,0.000000,0.809017,0.000000,0.587786,0.000000,0.809017,0.091499,0.516836, +-0.276388,-0.447220,0.850649,0.000000,-0.276388,-0.447220,0.850649,0.546072,0.156902, +0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.891200,0.515555, +-0.587786,0.000000,0.809017,0.000000,-0.587786,0.000000,0.809017,0.637692,0.634754, +-0.894426,-0.447216,0.000000,0.000000,-0.894426,-0.447216,0.000000,0.746383,0.351642, +-0.951058,0.000000,0.309013,0.000000,-0.951058,0.000000,0.309013,0.735205,0.674734, +-0.951058,0.000000,-0.309013,0.000000,-0.951058,0.000000,-0.309013,0.629692,0.810571, +-0.276388,-0.447220,-0.850649,0.000000,-0.276388,-0.447220,-0.850649,0.846308,0.334943, +-0.587786,0.000000,-0.809017,0.000000,-0.587786,0.000000,-0.809017,0.443007,0.628841, +0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.539894,0.656807, +0.723607,-0.447220,-0.525725,0.000000,0.723607,-0.447220,-0.525725,1.326823,0.166086, +0.587786,0.000000,-0.809017,0.000000,0.587786,0.000000,-0.809017,0.446597,0.804967, +0.951058,0.000000,-0.309013,0.000000,0.951058,0.000000,-0.309013,0.491338,0.479977, +0.276388,0.447220,0.850649,0.000000,0.276388,0.447220,0.850649,1.129692,0.189429, +0.688189,0.525736,0.499997,0.000000,0.688189,0.525736,0.499997,0.246383,0.648358, +0.162456,0.850654,0.499995,0.000000,0.162456,0.850654,0.499995,0.836927,0.658241, +-0.723607,0.447220,0.525725,0.000000,-0.723607,0.447220,0.525725,0.946597,0.195033, +-0.262869,0.525738,0.809012,0.000000,-0.262869,0.525738,0.809012,0.346308,0.665057, +-0.425323,0.850654,0.309011,0.000000,-0.425323,0.850654,0.309011,0.938926,0.694863, +-0.723607,0.447220,-0.525725,0.000000,-0.723607,0.447220,-0.525725,0.791278,0.505149, +-0.850648,0.525736,0.000000,0.000000,-0.850648,0.525736,0.000000,0.257596,0.823860, +-0.425323,0.850654,-0.309011,0.000000,-0.425323,0.850654,-0.309011,0.826823,0.833914, +0.276388,0.447220,-0.850649,0.000000,0.276388,0.447220,-0.850649,0.542767,0.333057, +-0.262869,0.525738,-0.809012,0.000000,-0.262869,0.525738,-0.809012,0.042767,0.666943, +0.162456,0.850654,-0.499995,0.000000,0.162456,0.850654,-0.499995,0.326823,0.166086, +0.894426,0.447216,0.000000,0.000000,0.894426,0.447216,0.000000,0.646443,0.311386, +0.688189,0.525736,-0.499997,0.000000,0.688189,0.525736,-0.499997,0.146443,0.688614, +0.525730,0.850652,0.000000,0.000000,0.525730,0.850652,0.000000,0.046072,0.843098, +-0.162456,-0.850654,0.499995,0.000000,-0.162456,-0.850654,0.499995,0.391200,0.484445, +0.262869,-0.525738,0.809012,0.000000,0.262869,-0.525738,0.809012,0.438926,0.305137, +-0.276388,-0.447220,0.850649,0.000000,-0.276388,-0.447220,0.850649,0.546072,0.156902, +-0.162456,-0.850654,0.499995,0.000000,-0.162456,-0.850654,0.499995,0.391200,0.484445, +0.425323,-0.850654,0.309011,0.000000,0.425323,-0.850654,0.309011,0.336927,0.341759, +0.262869,-0.525738,0.809012,0.000000,0.262869,-0.525738,0.809012,0.438926,0.305137, +0.425323,-0.850654,0.309011,0.000000,0.425323,-0.850654,0.309011,0.336927,0.341759, +0.723607,-0.447220,0.525725,0.000000,0.723607,-0.447220,0.525725,0.757596,0.176140, +0.262869,-0.525738,0.809012,0.000000,0.262869,-0.525738,0.809012,0.438926,0.305137, +0.850648,-0.525736,0.000000,0.000000,0.850648,-0.525736,0.000000,0.235205,0.325266, +0.425323,-0.850654,-0.309011,0.000000,0.425323,-0.850654,-0.309011,0.137692,0.365246, +0.723607,-0.447220,-0.525725,0.000000,0.723607,-0.447220,-0.525725,1.326823,0.166086, +0.850648,-0.525736,0.000000,0.000000,0.850648,-0.525736,0.000000,0.235205,0.325266, +0.425323,-0.850654,0.309011,0.000000,0.425323,-0.850654,0.309011,0.336927,0.341759, +0.425323,-0.850654,-0.309011,0.000000,0.425323,-0.850654,-0.309011,0.137692,0.365246, +0.425323,-0.850654,0.309011,0.000000,0.425323,-0.850654,0.309011,0.336927,0.341759, +0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.999999,0.020053, +0.425323,-0.850654,-0.309011,0.000000,0.425323,-0.850654,-0.309011,0.137692,0.365246, +-0.525730,-0.850652,0.000000,0.000000,-0.525730,-0.850652,0.000000,0.943007,0.371159, +-0.688189,-0.525736,0.499997,0.000000,-0.688189,-0.525736,0.499997,0.191461,0.507219, +-0.894426,-0.447216,0.000000,0.000000,-0.894426,-0.447216,0.000000,0.746383,0.351642, +-0.525730,-0.850652,0.000000,0.000000,-0.525730,-0.850652,0.000000,0.943007,0.371159, +-0.162456,-0.850654,0.499995,0.000000,-0.162456,-0.850654,0.499995,0.391200,0.484445, +-0.688189,-0.525736,0.499997,0.000000,-0.688189,-0.525736,0.499997,0.191461,0.507219, +-0.162456,-0.850654,0.499995,0.000000,-0.162456,-0.850654,0.499995,0.391200,0.484445, +-0.276388,-0.447220,0.850649,0.000000,-0.276388,-0.447220,0.850649,0.546072,0.156902, +-0.688189,-0.525736,0.499997,0.000000,-0.688189,-0.525736,0.499997,0.191461,0.507219, +-0.162456,-0.850654,-0.499995,0.000000,-0.162456,-0.850654,-0.499995,0.991338,0.520023, +-0.688189,-0.525736,-0.499997,0.000000,-0.688189,-0.525736,-0.499997,1.039894,0.343193, +-0.276388,-0.447220,-0.850649,0.000000,-0.276388,-0.447220,-0.850649,0.846308,0.334943, +-0.162456,-0.850654,-0.499995,0.000000,-0.162456,-0.850654,-0.499995,0.991338,0.520023, +-0.525730,-0.850652,0.000000,0.000000,-0.525730,-0.850652,0.000000,0.943007,0.371159, +-0.688189,-0.525736,-0.499997,0.000000,-0.688189,-0.525736,-0.499997,1.039894,0.343193, +-0.525730,-0.850652,0.000000,0.000000,-0.525730,-0.850652,0.000000,0.943007,0.371159, +-0.894426,-0.447216,0.000000,0.000000,-0.894426,-0.447216,0.000000,0.746383,0.351642, +-0.688189,-0.525736,-0.499997,0.000000,-0.688189,-0.525736,-0.499997,1.039894,0.343193, +0.425323,-0.850654,-0.309011,0.000000,0.425323,-0.850654,-0.309011,0.137692,0.365246, +0.262869,-0.525738,-0.809012,0.000000,0.262869,-0.525738,-0.809012,0.691461,0.492781, +0.723607,-0.447220,-0.525725,0.000000,0.723607,-0.447220,-0.525725,1.326823,0.166086, +0.425323,-0.850654,-0.309011,0.000000,0.425323,-0.850654,-0.309011,0.137692,0.365246, +-0.162456,-0.850654,-0.499995,0.000000,-0.162456,-0.850654,-0.499995,0.991338,0.520023, +0.262869,-0.525738,-0.809012,0.000000,0.262869,-0.525738,-0.809012,0.691461,0.492781, +-0.162456,-0.850654,-0.499995,0.000000,-0.162456,-0.850654,-0.499995,0.991338,0.520023, +-0.276388,-0.447220,-0.850649,0.000000,-0.276388,-0.447220,-0.850649,0.846308,0.334943, +0.262869,-0.525738,-0.809012,0.000000,0.262869,-0.525738,-0.809012,0.691461,0.492781, +0.951058,0.000000,0.309013,0.000000,0.951058,0.000000,0.309013,0.291278,0.494851, +0.951058,0.000000,-0.309013,0.000000,0.951058,0.000000,-0.309013,0.491338,0.479977, +0.894426,0.447216,0.000000,0.000000,0.894426,0.447216,0.000000,0.646443,0.311386, +0.951058,0.000000,0.309013,0.000000,0.951058,0.000000,0.309013,0.291278,0.494851, +0.850648,-0.525736,0.000000,0.000000,0.850648,-0.525736,0.000000,0.235205,0.325266, +0.951058,0.000000,-0.309013,0.000000,0.951058,0.000000,-0.309013,0.491338,0.479977, +0.850648,-0.525736,0.000000,0.000000,0.850648,-0.525736,0.000000,0.235205,0.325266, +0.723607,-0.447220,-0.525725,0.000000,0.723607,-0.447220,-0.525725,1.326823,0.166086, +0.951058,0.000000,-0.309013,0.000000,0.951058,0.000000,-0.309013,0.491338,0.479977, +0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.891200,0.515555, +0.587786,0.000000,0.809017,0.000000,0.587786,0.000000,0.809017,0.091499,0.516836, +0.276388,0.447220,0.850649,0.000000,0.276388,0.447220,0.850649,1.129692,0.189429, +0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.891200,0.515555, +0.262869,-0.525738,0.809012,0.000000,0.262869,-0.525738,0.809012,0.438926,0.305137, +0.587786,0.000000,0.809017,0.000000,0.587786,0.000000,0.809017,0.091499,0.516836, +0.262869,-0.525738,0.809012,0.000000,0.262869,-0.525738,0.809012,0.438926,0.305137, +0.723607,-0.447220,0.525725,0.000000,0.723607,-0.447220,0.525725,0.757596,0.176140, +0.587786,0.000000,0.809017,0.000000,0.587786,0.000000,0.809017,0.091499,0.516836, +-0.951058,0.000000,0.309013,0.000000,-0.951058,0.000000,0.309013,0.735205,0.674734, +-0.587786,0.000000,0.809017,0.000000,-0.587786,0.000000,0.809017,0.637692,0.634754, +-0.723607,0.447220,0.525725,0.000000,-0.723607,0.447220,0.525725,0.946597,0.195033, +-0.951058,0.000000,0.309013,0.000000,-0.951058,0.000000,0.309013,0.735205,0.674734, +-0.688189,-0.525736,0.499997,0.000000,-0.688189,-0.525736,0.499997,0.191461,0.507219, +-0.587786,0.000000,0.809017,0.000000,-0.587786,0.000000,0.809017,0.637692,0.634754, +-0.688189,-0.525736,0.499997,0.000000,-0.688189,-0.525736,0.499997,0.191461,0.507219, +-0.276388,-0.447220,0.850649,0.000000,-0.276388,-0.447220,0.850649,0.546072,0.156902, +-0.587786,0.000000,0.809017,0.000000,-0.587786,0.000000,0.809017,0.637692,0.634754, +-0.587786,0.000000,-0.809017,0.000000,-0.587786,0.000000,-0.809017,0.443007,0.628841, +-0.951058,0.000000,-0.309013,0.000000,-0.951058,0.000000,-0.309013,0.629692,0.810571, +-0.723607,0.447220,-0.525725,0.000000,-0.723607,0.447220,-0.525725,0.791278,0.505149, +-0.587786,0.000000,-0.809017,0.000000,-0.587786,0.000000,-0.809017,0.443007,0.628841, +-0.688189,-0.525736,-0.499997,0.000000,-0.688189,-0.525736,-0.499997,1.039894,0.343193, +-0.951058,0.000000,-0.309013,0.000000,-0.951058,0.000000,-0.309013,0.629692,0.810571, +-0.688189,-0.525736,-0.499997,0.000000,-0.688189,-0.525736,-0.499997,1.039894,0.343193, +-0.894426,-0.447216,0.000000,0.000000,-0.894426,-0.447216,0.000000,0.746383,0.351642, +-0.951058,0.000000,-0.309013,0.000000,-0.951058,0.000000,-0.309013,0.629692,0.810571, +0.587786,0.000000,-0.809017,0.000000,0.587786,0.000000,-0.809017,0.446597,0.804967, +0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.539894,0.656807, +0.276388,0.447220,-0.850649,0.000000,0.276388,0.447220,-0.850649,0.542767,0.333057, +0.587786,0.000000,-0.809017,0.000000,0.587786,0.000000,-0.809017,0.446597,0.804967, +0.262869,-0.525738,-0.809012,0.000000,0.262869,-0.525738,-0.809012,0.691461,0.492781, +0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.539894,0.656807, +0.262869,-0.525738,-0.809012,0.000000,0.262869,-0.525738,-0.809012,0.691461,0.492781, +-0.276388,-0.447220,-0.850649,0.000000,-0.276388,-0.447220,-0.850649,0.846308,0.334943, +0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.539894,0.656807, +0.587786,0.000000,0.809017,0.000000,0.587786,0.000000,0.809017,0.091499,0.516836, +0.688189,0.525736,0.499997,0.000000,0.688189,0.525736,0.499997,0.246383,0.648358, +0.276388,0.447220,0.850649,0.000000,0.276388,0.447220,0.850649,1.129692,0.189429, +0.587786,0.000000,0.809017,0.000000,0.587786,0.000000,0.809017,0.091499,0.516836, +0.951058,0.000000,0.309013,0.000000,0.951058,0.000000,0.309013,0.291278,0.494851, +0.688189,0.525736,0.499997,0.000000,0.688189,0.525736,0.499997,0.246383,0.648358, +0.951058,0.000000,0.309013,0.000000,0.951058,0.000000,0.309013,0.291278,0.494851, +0.894426,0.447216,0.000000,0.000000,0.894426,0.447216,0.000000,0.646443,0.311386, +0.688189,0.525736,0.499997,0.000000,0.688189,0.525736,0.499997,0.246383,0.648358, +-0.587786,0.000000,0.809017,0.000000,-0.587786,0.000000,0.809017,0.637692,0.634754, +-0.262869,0.525738,0.809012,0.000000,-0.262869,0.525738,0.809012,0.346308,0.665057, +-0.723607,0.447220,0.525725,0.000000,-0.723607,0.447220,0.525725,0.946597,0.195033, +-0.587786,0.000000,0.809017,0.000000,-0.587786,0.000000,0.809017,0.637692,0.634754, +0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.891200,0.515555, +-0.262869,0.525738,0.809012,0.000000,-0.262869,0.525738,0.809012,0.346308,0.665057, +0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.891200,0.515555, +0.276388,0.447220,0.850649,0.000000,0.276388,0.447220,0.850649,1.129692,0.189429, +-0.262869,0.525738,0.809012,0.000000,-0.262869,0.525738,0.809012,0.346308,0.665057, +-0.951058,0.000000,-0.309013,0.000000,-0.951058,0.000000,-0.309013,0.629692,0.810571, +-0.850648,0.525736,0.000000,0.000000,-0.850648,0.525736,0.000000,0.257596,0.823860, +-0.723607,0.447220,-0.525725,0.000000,-0.723607,0.447220,-0.525725,0.791278,0.505149, +-0.951058,0.000000,-0.309013,0.000000,-0.951058,0.000000,-0.309013,0.629692,0.810571, +-0.951058,0.000000,0.309013,0.000000,-0.951058,0.000000,0.309013,0.735205,0.674734, +-0.850648,0.525736,0.000000,0.000000,-0.850648,0.525736,0.000000,0.257596,0.823860, +-0.951058,0.000000,0.309013,0.000000,-0.951058,0.000000,0.309013,0.735205,0.674734, +-0.723607,0.447220,0.525725,0.000000,-0.723607,0.447220,0.525725,0.946597,0.195033, +-0.850648,0.525736,0.000000,0.000000,-0.850648,0.525736,0.000000,0.257596,0.823860, +0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.539894,0.656807, +-0.262869,0.525738,-0.809012,0.000000,-0.262869,0.525738,-0.809012,0.042767,0.666943, +0.276388,0.447220,-0.850649,0.000000,0.276388,0.447220,-0.850649,0.542767,0.333057, +0.000000,0.000000,-1.000000,0.000000,0.000000,0.000000,-1.000000,0.539894,0.656807, +-0.587786,0.000000,-0.809017,0.000000,-0.587786,0.000000,-0.809017,0.443007,0.628841, +-0.262869,0.525738,-0.809012,0.000000,-0.262869,0.525738,-0.809012,0.042767,0.666943, +-0.587786,0.000000,-0.809017,0.000000,-0.587786,0.000000,-0.809017,0.443007,0.628841, +-0.723607,0.447220,-0.525725,0.000000,-0.723607,0.447220,-0.525725,0.791278,0.505149, +-0.262869,0.525738,-0.809012,0.000000,-0.262869,0.525738,-0.809012,0.042767,0.666943, +0.951058,0.000000,-0.309013,0.000000,0.951058,0.000000,-0.309013,0.491338,0.479977, +0.688189,0.525736,-0.499997,0.000000,0.688189,0.525736,-0.499997,0.146443,0.688614, +0.894426,0.447216,0.000000,0.000000,0.894426,0.447216,0.000000,0.646443,0.311386, +0.951058,0.000000,-0.309013,0.000000,0.951058,0.000000,-0.309013,0.491338,0.479977, +0.587786,0.000000,-0.809017,0.000000,0.587786,0.000000,-0.809017,0.446597,0.804967, +0.688189,0.525736,-0.499997,0.000000,0.688189,0.525736,-0.499997,0.146443,0.688614, +0.587786,0.000000,-0.809017,0.000000,0.587786,0.000000,-0.809017,0.446597,0.804967, +0.276388,0.447220,-0.850649,0.000000,0.276388,0.447220,-0.850649,0.542767,0.333057, +0.688189,0.525736,-0.499997,0.000000,0.688189,0.525736,-0.499997,0.146443,0.688614, +0.162456,0.850654,0.499995,0.000000,0.162456,0.850654,0.499995,0.836927,0.658241, +0.525730,0.850652,0.000000,0.000000,0.525730,0.850652,0.000000,0.046072,0.843098, +0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.591499,0.483164, +0.162456,0.850654,0.499995,0.000000,0.162456,0.850654,0.499995,0.836927,0.658241, +0.688189,0.525736,0.499997,0.000000,0.688189,0.525736,0.499997,0.246383,0.648358, +0.525730,0.850652,0.000000,0.000000,0.525730,0.850652,0.000000,0.046072,0.843098, +0.688189,0.525736,0.499997,0.000000,0.688189,0.525736,0.499997,0.246383,0.648358, +0.894426,0.447216,0.000000,0.000000,0.894426,0.447216,0.000000,0.646443,0.311386, +0.525730,0.850652,0.000000,0.000000,0.525730,0.850652,0.000000,0.046072,0.843098, +-0.425323,0.850654,0.309011,0.000000,-0.425323,0.850654,0.309011,0.938926,0.694863, +0.162456,0.850654,0.499995,0.000000,0.162456,0.850654,0.499995,0.836927,0.658241, +0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.591499,0.483164, +-0.425323,0.850654,0.309011,0.000000,-0.425323,0.850654,0.309011,0.938926,0.694863, +-0.262869,0.525738,0.809012,0.000000,-0.262869,0.525738,0.809012,0.346308,0.665057, +0.162456,0.850654,0.499995,0.000000,0.162456,0.850654,0.499995,0.836927,0.658241, +-0.262869,0.525738,0.809012,0.000000,-0.262869,0.525738,0.809012,0.346308,0.665057, +0.276388,0.447220,0.850649,0.000000,0.276388,0.447220,0.850649,1.129692,0.189429, +0.162456,0.850654,0.499995,0.000000,0.162456,0.850654,0.499995,0.836927,0.658241, +-0.425323,0.850654,-0.309011,0.000000,-0.425323,0.850654,-0.309011,0.826823,0.833914, +-0.425323,0.850654,0.309011,0.000000,-0.425323,0.850654,0.309011,0.938926,0.694863, +0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.591499,0.483164, +-0.425323,0.850654,-0.309011,0.000000,-0.425323,0.850654,-0.309011,0.826823,0.833914, +-0.850648,0.525736,0.000000,0.000000,-0.850648,0.525736,0.000000,0.257596,0.823860, +-0.425323,0.850654,0.309011,0.000000,-0.425323,0.850654,0.309011,0.938926,0.694863, +-0.850648,0.525736,0.000000,0.000000,-0.850648,0.525736,0.000000,0.257596,0.823860, +-0.723607,0.447220,0.525725,0.000000,-0.723607,0.447220,0.525725,0.946597,0.195033, +-0.425323,0.850654,0.309011,0.000000,-0.425323,0.850654,0.309011,0.938926,0.694863, +0.162456,0.850654,-0.499995,0.000000,0.162456,0.850654,-0.499995,0.326823,0.166086, +-0.425323,0.850654,-0.309011,0.000000,-0.425323,0.850654,-0.309011,0.826823,0.833914, +0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.591499,0.483164, +0.162456,0.850654,-0.499995,0.000000,0.162456,0.850654,-0.499995,0.326823,0.166086, +-0.262869,0.525738,-0.809012,0.000000,-0.262869,0.525738,-0.809012,0.042767,0.666943, +-0.425323,0.850654,-0.309011,0.000000,-0.425323,0.850654,-0.309011,0.826823,0.833914, +-0.262869,0.525738,-0.809012,0.000000,-0.262869,0.525738,-0.809012,0.042767,0.666943, +-0.723607,0.447220,-0.525725,0.000000,-0.723607,0.447220,-0.525725,0.791278,0.505149, +-0.425323,0.850654,-0.309011,0.000000,-0.425323,0.850654,-0.309011,0.826823,0.833914, +0.525730,0.850652,0.000000,0.000000,0.525730,0.850652,0.000000,0.046072,0.843098, +0.162456,0.850654,-0.499995,0.000000,0.162456,0.850654,-0.499995,0.326823,0.166086, +0.000000,1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.591499,0.483164, +0.525730,0.850652,0.000000,0.000000,0.525730,0.850652,0.000000,0.046072,0.843098, +0.688189,0.525736,-0.499997,0.000000,0.688189,0.525736,-0.499997,0.146443,0.688614, +0.162456,0.850654,-0.499995,0.000000,0.162456,0.850654,-0.499995,0.326823,0.166086, +0.688189,0.525736,-0.499997,0.000000,0.688189,0.525736,-0.499997,0.146443,0.688614, +0.276388,0.447220,-0.850649,0.000000,0.276388,0.447220,-0.850649,0.542767,0.333057, +0.162456,0.850654,-0.499995,0.000000,0.162456,0.850654,-0.499995,0.326823,0.166086 +}; + +const int low_sphere_indices[]= +{ + 0,1,2, +3,4,5, +6,7,8, +9,10,11, +12,13,14, +15,16,17, +18,19,20, +21,22,23, +24,25,26, +27,28,29, +30,31,32, +33,34,35, +36,37,38, +39,40,41, +42,43,44, +45,46,47, +48,49,50, +51,52,53, +54,55,56, +57,58,59, +60,61,62, +63,64,65, +66,67,68, +69,70,71, +72,73,74, +75,76,77, +78,79,80, +81,82,83, +84,85,86, +87,88,89, +90,91,92, +93,94,95, +96,97,98, +99,100,101, +102,103,104, +105,106,107, +108,109,110, +111,112,113, +114,115,116, +117,118,119, +120,121,122, +123,124,125, +126,127,128, +129,130,131, +132,133,134, +135,136,137, +138,139,140, +141,142,143, +144,145,146, +147,148,149, +150,151,152, +153,154,155, +156,157,158, +159,160,161, +162,163,164, +165,166,167, +168,169,170, +171,172,173, +174,175,176, +177,178,179, +180,181,182, +183,184,185, +186,187,188, +189,190,191, +192,193,194, +195,196,197, +198,199,200, +201,202,203, +204,205,206, +207,208,209, +210,211,212, +213,214,215, +216,217,218, +219,220,221, +222,223,224, +225,226,227, +228,229,230, +231,232,233, +234,235,236, +237,238,239 +}; + +const float point_sphere_vertices[]= +{ + 0.000000,0.000000,0.000000,0.000000,0.000000,-1.000000,0.000000,0.48f, 0.48f, +}; + +const int point_sphere_indices[]= +{ + 0 +}; + + +#endif //SHAPE_DATA_H diff --git a/btgui/OpenGLWindow/TwFonts.cpp b/btgui/OpenGLWindow/TwFonts.cpp new file mode 100644 index 000000000..e5cd37595 --- /dev/null +++ b/btgui/OpenGLWindow/TwFonts.cpp @@ -0,0 +1,4916 @@ +// --------------------------------------------------------------------------- +// +// @file TwFonts.cpp +// @author Philippe Decaudin - http://www.antisphere.com +// @license This file is part of the AntTweakBar library. +// For conditions of distribution and use, see License.txt +// +// --------------------------------------------------------------------------- + + + +//#include "TwMgr.h" +#include "TwFonts.h" +#include +#include +#include + +// Fedora patch: memset() +//using std::memset; + +// --------------------------------------------------------------------------- + +CTexFont::CTexFont() +{ + for( int i=0; i<256; ++i ) + { + m_CharU0[i] = 0; + m_CharU1[i] = 0; + m_CharV0[i] = 0; + m_CharV1[i] = 0; + m_CharWidth[i] = 0; + } + m_TexWidth = 0; + m_TexHeight = 0; + m_TexBytes = NULL; + m_NbCharRead = 0; + m_CharHeight = 0; +} + +// --------------------------------------------------------------------------- + +CTexFont::~CTexFont() +{ + if( m_TexBytes ) + delete[] m_TexBytes; + m_TexBytes = NULL; + m_TexWidth = 0; + m_TexHeight = 0; + m_NbCharRead = 0; +} + +// --------------------------------------------------------------------------- + +static int NextPow2(int _n) +{ + int r = 1; + while( r<_n ) + r *= 2; + return r; +} + +// --------------------------------------------------------------------------- + +const char *g_ErrBadFontHeight = "Cannot determine font height while reading font bitmap (check first pixel column)"; + +CTexFont *TwGenerateFont(const unsigned char *_Bitmap, int _BmWidth, int _BmHeight) +{ + // find height of the font + int x, y; + int h = 0, hh = 0; + int r, NbRow = 0; + for( y=0; y<_BmHeight; ++y ) + if( _Bitmap[y*_BmWidth]==0 ) + { + if( (hh<=0 && h<=0) || (h!=hh && h>0 && hh>0) ) + { + assert(0); +#if 0 + + g_TwMgr->SetLastError(g_ErrBadFontHeight); +#endif + return NULL; + } + else if( h<=0 ) + h = hh; + else if( hh<=0 ) + break; + hh = 0; + ++NbRow; + } + else + ++hh; + + // find width and position of each character + int w = 0; + int x0[224], y0[224], x1[224], y1[224]; + int ch = 32; + int start; + for( r=0; rlmax ) + lmax = l; + } + // A little empty margin is added between chars to avoid artefact when antialiasing is on + const int MARGIN_X = 2; + const int MARGIN_Y = 2; + lmax += 16*MARGIN_X; + // - Second, build the texture + CTexFont *TexFont = new CTexFont; + TexFont->m_NbCharRead = ch-32; + TexFont->m_CharHeight = h; + TexFont->m_TexWidth = NextPow2(lmax); + TexFont->m_TexHeight = NextPow2(14*(h+MARGIN_Y)); + TexFont->m_TexBytes = new unsigned char[TexFont->m_TexWidth*TexFont->m_TexHeight]; + memset(TexFont->m_TexBytes, 0, TexFont->m_TexWidth*TexFont->m_TexHeight); + int xx; + float du = 0.f;//0.4f; + float dv = 0.f;//0.4f; +#if 0 + assert( g_TwMgr!=NULL ); + if( g_TwMgr ) + { + if( g_TwMgr->m_GraphAPI==TW_OPENGL || g_TwMgr->m_GraphAPI==TW_OPENGL_CORE ) + { + du = 0; + dv = 0; + } + else // texel alignement for D3D + { + du = 0.5f; + dv = 0.5f; + } + } +#endif + + float alpha; + for( r=0; r<14; ++r ) + for( xx=0, ch=r*16; ch<(r+1)*16; ++ch ) + if( y1[ch]-y0[ch]==h-1 ) + { + for( y=0; ym_TexBytes[(xx+x-x0[ch])+(r*(h+MARGIN_Y)+y)*TexFont->m_TexWidth] = (unsigned char)(alpha*256.0f); + } + TexFont->m_CharU0[ch+32] = (float(xx)+du)/float(TexFont->m_TexWidth); + xx += x1[ch]-x0[ch]+1; + TexFont->m_CharU1[ch+32] = (float(xx)+du)/float(TexFont->m_TexWidth); + TexFont->m_CharV0[ch+32] = (float(r*(h+MARGIN_Y))+dv)/float(TexFont->m_TexHeight); + TexFont->m_CharV1[ch+32] = (float(r*(h+MARGIN_Y)+h)+dv)/float(TexFont->m_TexHeight); + TexFont->m_CharWidth[ch+32] = x1[ch]-x0[ch]+1; + xx += MARGIN_X; + } + + const unsigned char Undef = 127; // default character used as for undifined ones (having ascii codes from 0 to 31) + for( ch=0; ch<32; ++ch ) + { + TexFont->m_CharU0[ch] = TexFont->m_CharU0[Undef]; + TexFont->m_CharU1[ch] = TexFont->m_CharU1[Undef]; + TexFont->m_CharV0[ch] = TexFont->m_CharV0[Undef]; + TexFont->m_CharV1[ch] = TexFont->m_CharV1[Undef]; + TexFont->m_CharWidth[ch] = TexFont->m_CharWidth[Undef]/2; + } + + return TexFont; +} + +// --------------------------------------------------------------------------- + +CTexFont *g_DefaultSmallFont = NULL; +CTexFont *g_DefaultNormalFont = NULL; +CTexFont *g_DefaultNormalFontAA= NULL; + +CTexFont *g_DefaultLargeFont = NULL; +CTexFont *g_DefaultFixed1Font = NULL; + +// Small font +const int FONT0_BM_W = 211; +const int FONT0_BM_H = 84; +static const unsigned char s_Font0[] = +{ + 127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0, + 0,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,255,0,0,0,255,255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 0,0,0,0,255,0,255,0,255,0,0,0,255,0,0,255,0,0,0,255,0,0,0,0,255,255,0,0, + 0,255,0,0,0,0,255,255,0,0,0,255,0,0,255,0,0,255,0,0,255,0,255,0,255,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,255,0,0,0,255,0,0,255,255, + 255,0,0,255,255,255,0,0,0,0,0,255,0,255,255,255,255,0,0,255,255,0,0,255, + 255,255,255,0,0,255,255,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,127,0,0,0,0,255,0,255,0,255,0,0,0,255,0,0,255,0,0,255,255,255,255, + 0,255,0,0,255,0,255,0,0,0,0,255,0,0,255,0,0,255,0,255,0,0,0,0,255,0,0,255, + 255,255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,255,0,255, + 255,0,0,0,0,0,255,0,0,0,0,255,0,0,0,255,255,0,255,0,0,0,0,255,0,0,0,0,0, + 0,0,255,0,255,0,0,255,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 0,0,0,0,255,0,0,0,0,0,0,255,255,255,255,255,255,255,0,255,0,0,0,255,0,0, + 255,0,255,0,0,0,0,255,0,0,255,0,0,0,0,255,0,0,0,0,255,0,255,0,255,0,255, + 0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,255,0,0,255,0,0,0, + 0,0,255,0,0,0,0,255,0,0,255,0,255,0,255,0,0,0,0,255,0,0,0,0,0,0,255,0,0, + 255,0,0,255,0,255,0,0,255,0,0,255,0,0,255,0,0,0,0,0,255,255,0,0,0,0,0,0, + 0,0,0,255,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 127,0,0,0,0,255,0,0,0,0,0,0,0,255,0,255,0,0,0,255,255,0,0,0,0,255,255,0, + 255,0,255,255,0,0,0,255,255,0,255,0,0,0,255,0,0,0,0,255,0,0,0,255,0,0,0, + 0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,255,0,0,255, + 0,0,0,0,255,0,0,0,255,255,0,0,255,0,0,255,0,255,255,255,0,0,255,255,255, + 0,0,0,0,255,0,0,0,255,255,0,0,0,255,255,255,0,0,255,0,0,255,0,0,0,255,255, + 0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,255,0,0,0,0,0,255,255,255,255,255, + 255,0,0,0,255,255,0,0,0,0,0,255,0,255,0,0,255,0,255,0,0,255,0,0,0,0,255, + 0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,255,0,0,0,0,0,255,0, + 0,255,0,0,255,0,0,255,0,0,0,255,0,0,0,0,0,0,255,0,255,255,255,255,255,0, + 0,0,255,0,255,0,0,255,0,0,255,0,0,0,255,0,0,255,0,0,0,0,255,0,0,0,0,0,0, + 0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0, + 255,0,255,0,0,0,0,255,0,255,0,0,255,0,255,0,0,255,255,0,0,0,255,0,0,0,0, + 255,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,255,0,0,255,0,0,255,0, + 0,255,0,0,255,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255,0,255,0, + 0,255,0,0,255,0,0,0,255,0,0,255,0,0,0,0,255,0,0,255,0,0,255,0,0,0,255,255, + 0,0,0,255,255,255,255,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,255,0,0,0,0,0,0,255,0,0,255,0,0,255, + 255,255,255,0,0,0,0,255,0,0,0,255,255,0,0,0,255,255,0,0,255,0,0,255,0,0, + 0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,255,0,0,0,0,255, + 255,0,0,255,255,255,0,255,255,255,255,0,255,255,255,0,0,0,0,0,255,0,255, + 255,255,0,0,0,255,255,0,0,255,0,0,0,0,0,255,255,0,0,0,255,255,0,0,0,255, + 0,0,255,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,255,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,127,0,127,0,127,127,127, + 0,127,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,127, + 127,127,127,0,127,127,127,127,127,0,127,0,127,127,0,127,127,127,0,127,127, + 127,127,127,0,127,127,127,127,127,127,0,127,127,0,127,127,127,0,127,0,127, + 127,127,0,127,127,127,127,0,127,127,127,0,127,127,127,127,0,127,127,127, + 127,0,127,127,127,127,0,127,127,127,127,0,127,127,127,127,0,127,127,127, + 127,0,127,127,127,127,0,127,127,127,127,0,127,127,0,127,127,0,127,127,127, + 127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127, + 127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,255,0,0,0,255,255,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,255,255,255,0,0,0,0,0, + 255,255,0,0,0,255,255,255,0,0,0,0,0,255,255,255,0,0,255,255,255,255,0,0, + 0,255,255,255,255,255,0,255,255,255,255,255,0,0,0,255,255,255,0,0,255,0, + 0,0,0,255,0,255,255,255,0,0,255,255,0,255,0,0,0,255,0,255,0,0,0,255,255, + 0,0,0,255,255,0,255,0,0,0,0,255,0,0,0,255,255,255,0,0,0,255,255,255,255, + 0,0,0,0,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,255,255, + 255,255,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,255,0,0,255,0, + 255,0,0,255,0,255,0,0,0,255,0,255,255,255,255,0,255,0,0,255,0,0,0,0,255, + 0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,255,0, + 0,0,255,0,0,0,0,255,255,0,0,0,255,0,0,255,0,0,0,255,0,0,0,255,0,255,0,0, + 0,255,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,255,0,255,0,0,0,0,255, + 0,0,255,0,0,0,0,255,0,255,0,0,255,0,0,255,0,0,0,255,255,0,0,0,255,255,0, + 255,255,0,0,0,255,0,0,255,0,0,0,255,0,0,255,0,0,0,255,0,0,255,0,0,0,255, + 0,0,255,0,0,0,255,0,255,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,255,0, + 0,0,0,255,0,255,0,0,255,0,0,255,0,255,0,0,255,0,0,255,0,255,0,0,0,0,0,255, + 0,255,0,0,0,255,0,0,0,255,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,127,255,0,0,255,255,0,255,0,0,255,0,0,255,0,0,255,0,0,255, + 0,0,255,0,0,0,0,0,0,255,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0, + 0,0,0,0,0,255,0,0,0,0,255,0,0,255,0,0,0,0,255,0,255,0,255,0,0,0,255,0,0, + 0,255,0,255,0,255,0,255,0,255,0,255,0,0,255,0,255,0,0,0,0,0,255,0,255,0, + 0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,255,0,255,0,0,0,0,0,0,0,255,0,0, + 0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,255,0,255,0,255,0,0,255,255, + 0,0,0,255,0,255,0,0,0,0,255,0,0,255,0,0,0,255,0,0,0,255,0,255,0,0,0,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,255,0,255,0,255,0,255, + 0,0,255,0,0,255,0,0,255,255,255,255,0,0,255,0,0,0,0,0,0,255,0,0,0,0,255, + 0,255,255,255,255,0,0,255,255,255,255,0,0,255,0,0,255,255,255,0,255,255, + 255,255,255,255,0,0,255,0,0,0,0,255,0,255,255,0,0,0,0,255,0,0,0,255,0,255, + 0,255,0,255,0,255,0,0,255,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,255,0,255, + 0,0,0,0,0,255,0,255,255,255,255,0,0,0,255,255,255,0,0,0,0,255,0,0,0,255, + 0,0,0,0,255,0,0,255,0,0,255,0,0,255,0,255,0,255,0,255,0,0,255,255,0,0,0, + 0,255,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,255,0,255,0,255,0,255,0,255,255,255, + 255,255,255,0,255,0,0,0,255,0,255,0,0,0,0,0,0,255,0,0,0,0,255,0,255,0,0, + 0,0,0,255,0,0,0,0,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,0,255,0,0,0,0,255, + 0,255,0,255,0,0,0,255,0,0,0,255,0,0,255,0,0,255,0,255,0,0,0,255,255,0,255, + 0,0,0,0,0,255,0,255,255,255,255,0,0,255,0,0,0,0,0,255,0,255,0,255,0,0,0, + 0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,255,0,0,255,0,0,255,0,255, + 0,255,0,255,0,0,255,255,0,0,0,0,255,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0, + 0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,255, + 0,0,255,255,255,0,0,255,0,0,0,0,255,0,255,0,0,0,255,0,0,255,0,0,0,255,0, + 255,0,0,0,255,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,255,0,255,0,0, + 0,0,255,0,0,255,0,0,0,0,255,0,255,0,0,255,0,0,255,0,0,0,255,0,0,255,0,0, + 255,0,255,0,0,0,0,255,0,0,255,0,0,0,255,0,0,255,0,0,0,0,0,0,255,0,0,0,255, + 0,0,255,0,0,255,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,0,255, + 255,0,0,0,0,255,0,0,0,255,0,0,255,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,255, + 0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,127,0,255,0,0,0,0,0,0,255,0,0,0,0,255,0,255,255,255,255,0,0,0,0,255, + 255,255,0,0,255,255,255,255,0,0,0,255,255,255,255,255,0,255,0,0,0,0,0,0, + 0,255,255,255,255,0,255,0,0,0,0,255,0,255,255,255,0,255,255,0,0,255,0,0, + 0,255,0,255,255,255,255,255,0,0,0,0,0,255,0,255,0,0,0,0,255,0,0,0,255,255, + 255,0,0,0,255,0,0,0,0,0,0,0,255,255,255,0,0,0,255,0,0,0,255,0,255,255,255, + 255,0,0,0,0,255,0,0,0,0,255,255,255,255,0,0,0,0,255,255,0,0,0,0,255,0,0, + 0,255,0,0,255,0,0,255,0,0,0,255,0,0,0,255,255,255,255,0,255,0,0,0,0,255, + 0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0, + 0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0, + 0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, + 0,0,0,0,0,255,255,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 0,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127, + 0,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,127,0, + 127,127,127,127,127,127,0,127,127,127,0,127,127,127,0,127,127,127,127,127, + 0,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,0, + 127,127,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127, + 0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,0,127, + 127,0,127,127,127,0,127,127,0,127,127,127,127,127,0,127,127,127,127,127, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,127,255,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0, + 0,0,255,0,0,0,0,0,0,0,255,255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0, + 0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,255,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,255,0,0,0,0,0,0,0,255,0,0, + 0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0, + 255,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,4,4, + 4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0, + 0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0, + 0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0, + 0,0,0,0,4,4,4,4,12,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 127,0,0,0,0,0,255,255,0,0,255,255,255,0,0,0,255,255,0,0,255,255,255,0,0, + 255,255,0,0,255,255,255,0,255,255,255,0,255,255,255,0,0,255,0,255,255,0, + 255,0,0,255,0,255,0,255,255,255,0,255,255,0,0,255,255,255,0,0,0,255,255, + 0,0,255,255,255,0,0,0,255,255,255,0,255,0,255,255,255,255,0,255,255,0,255, + 0,0,255,0,255,0,0,0,255,0,255,0,0,255,0,0,255,0,255,0,255,0,255,0,0,0,255, + 0,255,255,255,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,4,4,4,4,0, + 255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0, + 255,0,255,0,0,255,0,255,0,0,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0, + 0,255,0,255,0,0,255,0,255,0,0,255,0,255,0,255,0,0,255,0,255,0,0,255,0,0, + 255,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,255,255,0, + 255,0,0,0,255,0,0,255,0,0,255,0,0,255,0,255,0,0,255,0,0,255,0,0,255,0,0, + 255,0,0,0,255,0,255,0,0,0,0,255,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,255, + 0,0,255,0,0,255,4,4,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,127,0,0,0,0,0,255,255,255,0,255,0,0,255,0,255,0,0,0,255,0,0,255,0, + 255,255,255,255,0,255,0,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,255, + 255,0,0,0,255,0,255,0,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,255,0, + 0,255,0,255,0,0,255,0,255,0,0,0,255,0,0,255,0,0,255,0,0,255,0,0,255,0,255, + 0,0,255,0,255,0,255,0,255,0,0,255,0,0,0,255,0,255,0,0,0,255,0,0,255,0,0, + 0,0,255,0,0,0,0,255,0,255,0,0,255,255,0,0,0,255,255,4,255,255,0,4,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,255,0,0,255,0,255,0, + 0,255,0,255,0,0,0,255,0,0,255,0,255,0,0,0,0,255,0,0,255,0,0,255,0,255,0, + 0,255,0,255,0,0,255,0,255,0,255,0,0,255,0,255,0,0,255,0,0,255,0,255,0,0, + 255,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,255,0,0,0,0,255,0,255,0, + 0,255,0,0,255,0,0,255,0,255,0,0,0,255,255,0,255,255,0,0,0,255,0,0,0,255, + 0,255,0,0,255,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255, + 255,255,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0, + 0,255,255,255,0,255,255,255,0,0,0,255,255,0,0,255,255,255,0,0,255,255,255, + 0,255,0,0,0,255,255,255,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,255, + 0,255,0,0,255,0,0,255,0,255,0,0,255,0,0,255,255,0,0,255,255,255,0,0,0,255, + 255,255,0,255,0,0,255,255,255,0,0,255,0,0,255,255,255,0,0,0,255,0,0,0,0, + 255,0,0,0,255,0,0,255,0,255,0,0,0,255,0,0,0,255,255,255,0,0,255,0,0,0,255, + 0,0,0,255,0,0,0,0,0,0,0,0,0,0,20,0,255,0,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,255, + 0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,4,4,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0, + 0,0,0,0,255,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,127,0,127,127,127,127,0, + 127,127,127,127,0,127,127,127,0,127,127,127,127,0,127,127,127,127,0,127, + 127,0,127,127,127,127,0,127,127,127,127,0,127,0,127,127,0,127,127,127,127, + 0,127,0,127,127,127,127,127,127,127,0,127,127,127,127,0,127,127,127,127, + 0,127,127,127,127,0,127,127,127,127,0,127,127,0,127,127,127,0,127,127,0, + 127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127, + 127,127,0,127,127,127,127,127,0,127,127,127,0,127,127,127,0,127,127,127, + 0,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,255,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0, + 0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0, + 255,255,0,255,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, + 0,255,0,0,0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 0,255,255,255,0,0,255,255,255,255,255,255,255,0,0,0,0,0,0,255,255,0,0,0, + 0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,255,0,255,0,0,255,255,0,0, + 0,255,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,255,255,255,255,255,255,255, + 0,0,255,255,255,255,255,255,255,0,255,255,255,255,0,0,255,255,255,255,255, + 255,255,0,0,255,255,255,255,255,255,255,0,255,0,0,255,255,0,255,0,0,255, + 0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,255,255,255,255,255,0,255, + 0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,0, + 0,255,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0, + 255,255,255,255,255,0,255,255,255,255,255,0,0,0,0,0,0,255,0,0,255,0,255, + 0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0, + 255,0,0,0,0,255,0,0,255,0,0,0,0,0,255,0,0,255,0,0,0,0,0,255,0,0,255,255, + 0,0,255,0,255,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 255,0,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,255, + 0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 255,255,255,255,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,255,0,0,255,0,255,0,0,0,0,0, + 0,0,255,0,0,0,0,0,0,255,0,255,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0, + 0,255,0,0,0,255,0,0,0,0,0,255,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,255,0, + 255,255,255,0,255,0,0,0,255,255,0,255,255,0,0,0,255,0,0,0,0,0,255,0,255, + 255,255,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,255,255,255,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,255,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,255,255,0,255,0,255, + 255,0,255,255,0,0,0,255,255,255,0,0,255,0,0,255,0,0,0,255,255,255,255,0, + 0,255,0,0,0,0,0,255,0,0,255,0,0,0,0,255,0,0,0,0,0,255,0,0,255,0,0,0,0,0, + 255,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,255,0,0,255,0,0,255,0,0,255,0, + 0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,127,255,255,255,255,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,255, + 0,0,255,0,0,255,0,0,0,0,0,255,0,255,0,0,255,0,0,0,255,0,0,0,0,0,255,0,0, + 0,0,0,255,0,0,255,0,0,0,0,255,0,0,0,0,0,255,0,0,255,0,0,0,0,0,255,0,0,0, + 0,0,0,0,0,0,0,0,0,0,255,255,255,0,255,255,255,255,0,255,255,255,255,255, + 255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,255,0,0,255,255, + 255,255,0,0,255,0,0,0,0,0,255,0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,255, + 0,0,255,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0, + 0,0,0,0,0,255,0,255,0,0,255,0,0,255,0,0,0,0,0,255,0,0,255,0,255,0,0,0,255, + 0,0,0,0,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,255,0, + 0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,255,0,0,255,0,0,255,0,0,0,0,0, + 255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,127,0,255,255,255,0,0,255,255,255,255,255,255,255,0,0,255, + 0,255,0,0,0,0,255,0,255,0,255,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,255,0,0,0,255,255,0,255,255,0,0,255,255,255,255,0,0,0,0,0,0,255, + 255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,0,255,255,255,255, + 0,0,255,255,255,255,255,255,255,0,0,255,255,255,255,255,255,255,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,255,255,255,0,0,0,0,0,255,255,0,255,255,255,0,0,255,255,255,255,255, + 255,255,0,255,255,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,255,255,0,0,0,255,0,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,0,127,127, + 127,127,0,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,0, + 127,127,127,127,127,0,127,127,127,127,0,127,127,127,127,127,127,127,127, + 127,127,127,127,0,127,127,127,127,127,0,127,127,0,127,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,127,0,127,127,127,127,0,127,127,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,0,127,0,127, + 127,127,0,127,127,127,0,127,127,127,0,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127, + 0,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127, + 0,127,127,127,0,127,127,127,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,127,0,0,0,0,0,255,0,0,0,255,0,0,0,0,255,255,0,0,0,0,0,0,0,255,0, + 0,0,255,0,255,0,0,255,255,255,0,0,255,0,255,0,0,0,255,255,255,255,0,0,255, + 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0, + 0,255,0,0,0,0,0,0,0,0,0,0,255,255,255,0,255,255,255,0,0,255,0,0,0,0,0,0, + 0,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,255,0,0,0,0,0,0,0,0,255, + 0,0,255,0,0,0,0,0,255,0,0,0,255,0,0,0,255,255,255,0,0,255,0,0,0,0,255,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0, + 0,255,0,255,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,255,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,255,0,255, + 0,0,0,0,255,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,255,0,255, + 0,0,0,0,0,0,0,0,0,0,255,255,0,255,0,0,255,0,0,0,0,0,0,255,255,0,255,0,0, + 0,0,0,255,255,0,0,255,0,0,0,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 127,0,0,0,0,0,255,0,0,255,255,255,0,0,255,0,0,0,0,255,255,255,0,0,0,255, + 0,255,0,0,255,0,255,0,0,0,0,0,0,0,0,0,255,0,0,255,255,0,0,255,255,0,255, + 0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,255,255,255,0,0,255,0,0,0,0,0, + 0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,255,0,0,255,0,255, + 255,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,255,0,0,255,0,255,0,255,0,0,0,255, + 0,255,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,127,0,0,0,0,0,255,0,255,0,255,0,0,255,255,255,0,0,0,255,0,255, + 0,0,0,0,255,0,0,0,0,0,255,255,255,0,0,0,0,0,0,0,255,0,255,0,0,0,0,255,0, + 255,255,0,255,0,255,0,0,0,255,255,255,255,255,0,0,0,0,255,0,255,0,0,255, + 0,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,255,255,255,0,255,255, + 0,0,0,0,0,0,255,0,0,255,0,255,255,0,255,0,0,255,0,0,0,0,0,0,0,255,255,255, + 0,255,255,0,0,0,255,0,255,0,0,255,255,0,0,255,255,0,0,0,255,0,255,0,255, + 255,0,0,255,255,0,255,0,255,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0, + 255,0,255,0,255,0,0,0,255,0,0,0,0,255,255,255,0,0,0,255,255,255,0,0,0,0, + 255,0,0,255,0,0,0,0,0,0,255,0,255,0,0,0,0,255,0,0,0,0,255,0,255,0,0,0,0, + 0,0,0,255,0,255,255,0,255,0,255,255,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0, + 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,255,0,255,0,0,255,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,255,0,0,0,255,0,255,0,255,0,0,0,0,255, + 0,0,0,0,255,0,0,0,255,0,255,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0, + 0,255,0,255,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0, + 255,255,255,0,0,0,0,0,0,255,0,0,255,255,0,0,255,0,0,0,0,0,255,0,255,0,0, + 0,0,0,0,255,0,0,0,0,255,0,255,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,127, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,255,0,255,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,255,0,255,0,0,0,0,255,0,255,255,255,255,0,0,0,255, + 0,0,0,255,0,0,0,0,255,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0, + 0,0,0,255,0,0,255,255,255,0,255,255,255,255,0,0,0,0,0,0,0,0,0,255,0,0,0, + 255,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,255,0,255,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,255,0,0,0,255,255, + 255,0,0,255,0,0,0,0,255,0,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0, + 0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0, + 0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, + 255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,127,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, + 0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,127,127,127,127,0,127,0,127,127,127,127,0,127,127,127, + 127,0,127,127,127,127,127,0,127,127,127,127,127,0,127,0,127,127,127,127, + 0,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,0,127,127, + 127,127,0,127,127,127,127,127,127,0,127,127,0,127,127,127,127,127,127,127, + 0,127,127,127,127,0,127,127,127,127,0,127,127,127,127,127,0,127,127,127, + 127,0,127,127,127,0,127,127,127,0,127,127,127,127,0,127,127,127,127,0,127, + 127,127,0,127,127,127,0,127,127,127,0,127,127,127,127,0,127,127,127,127, + 0,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,0,127,127,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,255,0, + 0,0,0,0,255,0,0,0,0,0,0,255,0,255,0,0,0,255,0,255,255,0,0,0,255,0,0,255, + 0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255, + 0,0,0,0,255,0,255,0,0,0,255,0,255,0,0,0,255,0,0,0,255,0,0,255,0,255,0,255, + 0,255,0,0,0,0,0,0,0,0,0,255,0,255,255,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0, + 0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,255,0,0,0,0,255,0,255,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,255,0,255, + 0,0,0,255,0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,127,0,0,255,255, + 0,0,0,0,0,255,255,0,0,0,0,0,255,255,0,0,0,0,0,255,255,0,0,0,0,0,255,255, + 0,0,0,0,0,255,255,0,0,0,0,0,255,255,255,255,255,0,0,0,255,255,255,0,0,255, + 255,255,255,255,0,255,255,255,255,255,0,255,255,255,255,255,0,255,255,255, + 255,255,0,255,255,255,0,255,255,255,0,255,255,255,0,255,255,255,0,255,255, + 255,255,0,0,0,255,0,0,0,0,255,0,0,0,255,255,255,0,0,0,0,0,255,255,255,0, + 0,0,0,0,255,255,255,0,0,0,0,0,255,255,255,0,0,0,0,0,255,255,255,0,0,0,0, + 0,0,0,0,0,0,0,0,255,255,255,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0, + 255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,255,0,255,0,0,0,0,255,0,0, + 255,0,127,0,0,255,255,0,0,0,0,0,255,255,0,0,0,0,0,255,255,0,0,0,0,0,255, + 255,0,0,0,0,0,255,255,0,0,0,0,0,255,255,0,0,0,0,255,0,255,0,0,0,0,0,255, + 0,0,0,255,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,255, + 0,0,0,255,0,0,0,255,0,0,0,255,0,0,255,0,0,0,255,0,0,255,255,0,0,0,255,0, + 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0, + 255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,255,0,0,0, + 0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,0,255,0,255, + 0,0,255,255,255,0,0,255,0,0,255,0,127,0,255,0,0,255,0,0,0,255,0,0,255,0, + 0,0,255,0,0,255,0,0,0,255,0,0,255,0,0,0,255,0,0,255,0,0,0,255,0,0,255,0, + 0,0,255,0,255,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0, + 0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,255,0,0,0, + 0,255,0,255,0,255,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255, + 0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,255,0,0,0,255, + 0,255,0,0,0,255,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0, + 255,0,255,0,0,0,0,255,0,0,255,0,255,0,0,255,0,0,255,0,255,0,255,0,0,127, + 0,255,0,0,255,0,0,0,255,0,0,255,0,0,0,255,0,0,255,0,0,0,255,0,0,255,0,0, + 0,255,0,0,255,0,0,0,255,0,0,255,0,0,0,255,0,255,255,255,255,0,255,0,0,0, + 0,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255, + 255,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,255,255,255,0,0,255, + 0,255,0,0,255,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0, + 0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,0,255,0,255,0,0,255, + 0,0,255,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0, + 255,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,255,0,255,0,0,255,0,127,255,255, + 255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255, + 255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255, + 0,0,255,255,255,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255, + 0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,255,0,0, + 0,0,255,0,255,0,0,0,255,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255, + 0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,0,0,255,0,0,0, + 255,0,255,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255, + 0,255,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,255,0,255,0,0,255,0,127,255,0, + 0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0, + 0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,255,0,0,0,0,0,255,0,0,0,255,0,255, + 0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,255,0,0, + 0,255,0,0,0,255,0,0,255,0,0,0,255,0,0,255,0,0,0,0,255,0,0,255,0,0,0,255, + 0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0, + 0,0,255,0,0,0,0,255,0,255,0,0,0,255,0,0,0,255,0,0,255,0,0,0,0,255,0,255, + 0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,0,0,255,0,0,0,255,255, + 255,0,0,255,0,0,255,0,127,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0, + 0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,255, + 255,255,255,0,0,0,255,255,255,0,0,255,255,255,255,255,0,255,255,255,255, + 255,0,255,255,255,255,255,0,255,255,255,255,255,0,255,255,255,0,255,255, + 255,0,255,255,255,0,255,255,255,0,255,255,255,255,0,0,0,255,0,0,0,0,255, + 0,0,0,255,255,255,0,0,0,0,0,255,255,255,0,0,0,0,0,255,255,255,0,0,0,0,0, + 255,255,255,0,0,0,0,0,255,255,255,0,0,0,0,255,0,0,0,255,0,255,0,255,255, + 255,0,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255, + 0,0,0,255,255,255,255,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,255,0,0,127,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,127,127, + 127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127, + 127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,0,127, + 127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127, + 0,127,127,127,0,127,127,127,0,127,127,127,0,127,127,127,127,127,127,0,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127, + 127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127, + 127,0,127,127,127,127,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,127,0,255,0,0,0,0,0,0,255,0,0,0,255,0,0,255,255,0,255,0, + 0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0, + 0,255,0,0,0,0,0,0,0,255,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,255,255,0,255, + 0,0,255,0,0,0,0,0,0,255,0,0,0,255,0,0,255,255,0,255,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,255, + 0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,255, + 0,0,0,0,255,0,0,0,255,0,255,0,255,0,255,255,0,0,255,0,255,0,0,255,0,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,255,0,255,0,0,255,0, + 255,0,0,255,0,255,0,255,0,255,255,0,255,0,0,255,255,0,255,0,255,255,0,0, + 0,255,0,0,0,0,255,0,0,0,255,0,255,0,255,0,255,255,0,255,0,0,255,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,255,0,255,0,0,255,0,255,0, + 0,0,255,0,0,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,127,0,255,255,0,0,0,255,255,0,0,0,255,255,0,0,0,255,255,0,0,0,255, + 255,0,0,0,255,255,0,0,255,255,255,0,255,255,0,0,0,255,255,0,0,255,255,0, + 0,0,255,255,0,0,0,255,255,0,0,0,255,255,0,0,0,255,0,255,0,0,255,0,0,255, + 0,0,0,0,255,0,255,255,255,0,0,0,255,255,0,0,0,255,255,0,0,0,255,255,0,0, + 0,255,255,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,0,0,255,0,0,255, + 0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,255,0,0,0,255,0,255,255,255, + 0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,255,0,0,0, + 0,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255,0,0,255, + 0,255,0,0,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,0,255, + 0,255,0,0,255,0,0,255,0,0,255,255,255,0,255,0,0,255,0,255,0,0,255,0,255, + 0,0,255,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,0,255,255,255,255,255, + 0,255,0,0,255,255,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255, + 0,0,255,0,255,0,0,255,0,0,255,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,127,0,255,255,255,0,0,255,255,255,0,0,255,255,255,0,0,255,255,255, + 0,0,255,255,255,0,0,255,255,255,0,0,255,255,255,255,255,255,0,255,0,0,0, + 255,255,255,255,0,255,255,255,255,0,255,255,255,255,0,255,255,255,255,0, + 0,255,0,255,0,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0, + 255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,0,0,0,0,0,0,0,255, + 0,255,0,255,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,0, + 255,0,255,0,0,255,0,0,255,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,127,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,255,0,0, + 255,0,255,0,0,255,0,255,0,0,255,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,0, + 0,255,0,0,0,0,255,0,0,0,0,0,255,0,255,0,0,255,0,0,255,0,255,0,0,255,0,255, + 0,0,255,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,255,0, + 0,255,0,0,0,0,255,0,0,0,255,255,0,0,255,0,255,0,0,255,0,255,0,0,255,0,255, + 0,0,255,0,255,0,0,255,0,0,255,0,255,0,0,255,0,0,255,0,0,255,0,255,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,255,255,255,0,0,255,255,255,0,0,255, + 255,255,0,0,255,255,255,0,0,255,255,255,0,0,255,255,255,0,0,255,255,0,255, + 255,255,0,0,255,255,0,0,255,255,255,0,0,255,255,255,0,0,255,255,255,0,0, + 255,255,255,0,0,255,0,255,0,0,255,0,0,255,0,0,255,255,0,0,255,0,0,255,0, + 0,255,255,0,0,0,255,255,0,0,0,255,255,0,0,0,255,255,0,0,0,255,255,0,0,0, + 0,0,0,0,0,0,0,255,255,255,0,0,0,255,255,255,0,0,255,255,255,0,0,255,255, + 255,0,0,255,255,255,0,0,0,255,0,0,0,255,255,255,0,0,0,0,255,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,127,127,0,127,127,127,127,0,127,127, + 127,127,0,127,127,127,127,0,127,127,127,127,0,127,127,127,127,0,127,127, + 127,127,127,127,127,0,127,127,127,0,127,127,127,127,0,127,127,127,127,0, + 127,127,127,127,0,127,127,127,127,0,127,127,0,127,0,127,127,0,127,127,0, + 127,127,127,127,0,127,127,127,127,0,127,127,127,127,0,127,127,127,127,0, + 127,127,127,127,0,127,127,127,127,0,127,127,127,127,0,127,127,127,127,127, + 127,0,127,127,127,127,127,0,127,127,127,127,0,127,127,127,127,0,127,127, + 127,127,0,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,0,127, + 127,127,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + + +// Normal font +const int FONT1_BM_W = 253; +const int FONT1_BM_H = 106; +static const unsigned char s_Font1[] = +{ + 127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,255, + 0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,255,0,0,0,255,0,255,0,0,0,0, + 0,255,0,255,0,0,0,0,0,255,0,0,0,0,255,255,0,0,0,0,255,0,0,0,0,0,255,255, + 255,0,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,0,255,0,255,0,255,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,255,255,255,0,0,0,0,0, + 255,0,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,0,0,0,255,0,0,255, + 255,255,255,255,255,0,0,0,255,255,255,0,0,255,255,255,255,255,255,0,0,255, + 255,255,255,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,127,0,0,0,0,0,0,255,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,255,255, + 255,0,0,255,0,0,255,0,0,255,0,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,0,255, + 0,0,0,0,255,0,0,0,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,255,0,0,255,0,0,0,0,255,0,0,255,255,255,0,0,0,255,0,0,0,0,255,0, + 255,0,0,0,0,255,0,0,0,0,255,255,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0, + 0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,127,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255, + 0,0,255,0,255,0,255,0,255,0,0,255,0,0,255,0,0,0,0,0,255,0,0,0,255,0,0,0, + 0,0,0,0,255,0,0,0,0,0,0,255,0,0,255,0,255,0,255,0,0,0,0,255,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0, + 0,0,255,0,0,0,0,0,0,255,0,0,0,255,0,255,0,0,255,0,0,0,0,0,0,255,0,0,0,0, + 0,0,0,0,0,0,255,0,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,0,255,0,0,0,255, + 0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,255,0,255, + 0,0,0,0,255,0,255,0,0,0,255,0,0,255,0,255,0,0,0,0,0,0,0,255,0,255,0,0,0, + 0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,0, + 0,255,0,0,0,0,0,0,255,0,0,255,0,0,255,0,0,255,255,255,255,255,0,0,255,255, + 255,255,255,0,0,0,0,0,0,255,0,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,0,255, + 0,0,0,255,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,255,255,0,0,0,0,255, + 255,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,255,0,0, + 0,0,0,0,0,0,0,0,255,0,255,0,0,0,0,0,255,255,0,0,0,0,255,255,0,0,255,0,0, + 255,255,0,0,0,255,255,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0, + 0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0, + 255,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,255,255,255,0,0,255,0,0,0,255, + 0,0,0,0,0,0,0,255,0,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255,255,255,255, + 0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,255,255,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0, + 0,0,0,0,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,255,255,0, + 0,0,0,0,0,0,255,0,255,0,0,255,0,255,0,0,255,0,0,255,0,0,0,0,0,255,0,0,0, + 0,0,0,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,0,0,0,0,0,255,255, + 255,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,255,255, + 0,0,0,0,0,0,0,0,255,0,255,255,255,255,255,255,0,0,0,0,0,0,255,0,255,0,0, + 0,0,255,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,255,255,255,255,255,0,0,0, + 0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0,0,0,0,0, + 0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,255,0,0,0,0, + 0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,255,0,0,255, + 0,255,0,0,0,255,255,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0, + 0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,0, + 0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,255, + 0,255,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,255,0,0, + 0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0, + 0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,255,0,255,0,0,0,0,0,255,0,255,0,255,0,0,0,0,0,255,0,0,255,0,0,255,0,255, + 0,0,0,255,255,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255, + 0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,0,0, + 255,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,255,0,0,255,0,0,0,0, + 255,0,255,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,255,0, + 0,0,255,0,0,0,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,255,0,0,0,0,0, + 0,0,0,0,255,0,255,0,0,0,0,0,0,255,255,255,0,0,0,0,0,255,0,0,0,0,255,255, + 0,0,0,255,255,255,0,0,255,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0, + 0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,255,255,255, + 255,0,0,0,255,255,255,255,255,0,255,255,255,255,255,255,0,0,255,255,255, + 255,0,0,0,0,0,0,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255, + 0,0,0,0,0,0,255,255,255,255,0,0,0,255,255,255,0,0,0,0,255,0,0,0,255,0,0, + 0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,255,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0, + 0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0, + 0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,127,127,0, + 127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,0,127,127,127,0,127,127,127,0,127,127,127,127,0,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,0,127,127,127, + 127,0,127,127,127,0,127,127,127,127,0,127,127,127,127,127,127,0,127,127, + 127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127, + 127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127, + 0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127, + 127,0,127,127,0,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127, + 127,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,0,255,0,0,0,0,0,255,255,255,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,255, + 255,255,255,0,0,0,0,0,0,0,255,0,0,0,0,255,255,255,255,255,0,0,0,0,255,255, + 255,255,0,255,255,255,255,255,0,0,0,255,255,255,255,255,255,0,255,255,255, + 255,255,0,0,0,255,255,255,255,0,0,255,0,0,0,0,0,255,0,255,255,255,0,0,255, + 255,255,0,255,0,0,0,0,255,0,255,0,0,0,0,0,255,255,0,0,0,0,255,255,0,255, + 255,0,0,0,0,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,255,0,0,0,0, + 255,255,255,255,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,255,255, + 255,255,255,255,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0, + 0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,255,255,255, + 255,255,0,0,255,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,255,255,0,0,0,0,255,255,0,0, + 0,0,255,0,255,0,0,0,255,0,0,0,0,255,0,0,255,0,0,0,0,0,255,0,0,0,0,255,0, + 0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,255,0,255,0,0,0,0,0,255,0, + 0,255,0,0,0,0,0,255,0,255,0,0,0,255,0,0,255,0,0,0,0,0,255,255,0,0,0,0,255, + 255,0,255,255,0,0,0,0,255,0,0,255,0,0,0,0,255,0,0,255,0,0,0,0,255,0,0,255, + 0,0,0,0,255,0,0,255,0,0,0,255,0,0,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255, + 0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,255,0,0,0,0,255,0,0,255, + 0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0,255,0,0,0, + 0,0,0,255,0,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,127,0,255,0,255,255,255,255,0,255,0,0,0,0,255,0,255,0,0,0,255,0,0, + 0,0,255,0,255,0,0,0,0,0,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,0,0, + 0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,255,0,0,0,0,0,255,0,255,0,0, + 255,0,0,0,255,0,0,0,0,0,255,0,255,0,0,255,0,255,0,255,0,255,0,0,0,255,0, + 255,0,0,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0,0, + 255,0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,255,0,0,255,0,0, + 0,255,0,0,0,255,0,0,255,0,255,0,0,255,0,0,0,255,0,0,255,0,0,0,255,0,0,0, + 255,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,255,0,0, + 0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,255,0,255,0,0, + 0,255,0,0,255,0,0,0,255,0,255,0,0,0,255,0,0,0,0,255,0,255,0,0,0,0,0,0,255, + 0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0, + 0,0,0,255,0,0,255,0,0,0,0,0,255,0,255,0,255,0,0,0,0,255,0,0,0,0,0,255,0, + 255,0,0,255,0,255,0,255,0,255,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0, + 0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0, + 255,0,0,0,0,255,0,0,0,0,0,255,0,0,255,0,0,0,255,0,0,0,255,0,0,255,0,255, + 0,0,255,0,0,0,0,255,255,0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,0,0,0,255, + 0,0,0,0,255,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,127,255,0,255,0,0,0,255,0,0,255,0,0,255,0,0,0,255, + 0,0,255,255,255,255,255,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,255,0,255,255, + 255,255,255,255,0,255,255,255,255,255,0,255,0,0,0,255,255,255,0,255,255, + 255,255,255,255,255,0,0,255,0,0,0,0,0,255,0,255,255,0,0,0,0,0,255,0,0,0, + 0,0,255,0,255,0,0,255,0,255,0,255,0,0,255,0,0,255,0,255,0,0,0,0,0,0,255, + 0,255,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,255,255,255,0,0,0,0,255,255, + 255,255,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,255,0,0,255,0,0,0,255,0,0,0, + 255,0,0,255,0,255,0,0,255,0,0,0,0,255,255,0,0,0,0,0,0,255,0,0,0,0,0,0,255, + 0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,255,0,255,0,0,0,255,0,0,255,0,0,255, + 0,0,0,255,0,0,255,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,0,0,0,0,255,0,255, + 0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,255, + 0,0,0,0,0,255,0,255,0,255,0,0,0,0,255,0,0,0,0,0,255,0,0,255,255,0,0,255, + 0,255,0,0,0,255,0,255,0,255,0,0,0,0,0,0,255,0,255,255,255,255,255,0,0,255, + 0,0,0,0,0,0,255,0,255,0,0,255,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255, + 0,0,0,0,0,255,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,255,0,255,0,0,0,0, + 255,255,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0, + 0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,127,255,0,255,0,0,0,255,0,0,255,0,0,255,255,255,255,255,0,0,255,0,0,0, + 0,255,0,255,0,0,0,0,0,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,0,0,0, + 0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,255,0,0,0,0,0,255,0,255,0,0, + 255,0,0,0,255,0,0,0,0,0,255,0,0,255,255,0,0,255,0,255,0,0,0,255,0,255,0, + 255,0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,255,0,0,0,255, + 0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,255,0,0,0,255,0,255, + 0,0,0,0,0,255,255,0,0,0,255,255,0,0,0,0,255,0,0,255,0,0,0,0,0,255,0,0,0, + 0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,255,0,255,255,255,255, + 255,255,0,0,255,0,0,0,0,0,255,0,255,0,0,0,0,255,0,0,255,0,0,0,0,0,255,0, + 0,0,0,255,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,255,0,255,0,0, + 0,0,0,255,0,0,255,0,0,0,0,0,255,0,255,0,0,0,255,0,0,255,0,0,0,0,0,255,0, + 0,0,0,0,0,255,0,255,0,0,0,0,255,255,0,0,255,0,0,0,0,255,0,0,255,0,0,0,0, + 0,0,0,255,0,0,0,0,255,0,0,255,0,0,0,255,0,0,255,0,0,0,0,255,0,0,0,0,255, + 0,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0, + 0,0,0,255,0,0,255,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0, + 255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,127,0,255,255,0,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,255,255,255, + 255,255,0,0,0,0,255,255,255,255,0,255,255,255,255,255,0,0,0,255,255,255, + 255,255,255,0,255,0,0,0,0,0,0,0,255,255,255,255,255,0,255,0,0,0,0,0,255, + 0,255,255,255,0,255,255,255,0,0,255,0,0,0,0,255,0,255,255,255,255,255,0, + 255,0,0,0,0,0,0,255,0,255,0,0,0,0,255,255,0,0,0,255,255,255,255,0,0,0,255, + 0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,255,0,0,0,0,255,0,0,255,255,255,255, + 0,0,0,0,0,255,0,0,0,0,0,0,255,255,255,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0, + 0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255,255,255,255,255, + 255,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,255,255,255,255,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,0,0,0,0,255,0,0, + 255,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,127,127,127,127,127,127,127,127,127,127,0,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127, + 0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127, + 0,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,0,127, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127, + 127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127, + 127,0,127,127,127,127,0,127,127,127,127,0,127,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,255, + 0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0, + 0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0, + 0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,255, + 0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,127,0,255,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0, + 0,0,0,255,0,0,255,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0, + 0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0, + 0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,255, + 0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,255,255,255,0,0,255,0,255,255, + 255,0,0,0,255,255,255,255,0,0,255,255,255,255,255,0,0,255,255,255,255,0, + 0,255,255,255,255,0,255,255,255,255,255,0,255,0,255,255,255,0,0,255,0,255, + 255,0,255,0,0,0,255,0,255,0,255,255,255,255,0,255,255,255,0,0,255,0,255, + 255,255,0,0,0,255,255,255,255,0,0,255,0,255,255,255,0,0,0,255,255,255,255, + 255,0,255,0,255,0,0,255,255,255,0,255,255,255,255,0,255,0,0,0,0,255,0,255, + 0,0,0,255,0,255,0,0,0,255,0,0,0,255,0,255,0,0,0,255,0,255,0,0,0,255,0,255, + 255,255,255,0,0,0,255,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0, + 0,0,0,0,0,0,255,0,255,255,0,0,0,255,0,255,0,0,0,0,0,255,0,0,0,0,255,0,255, + 0,0,0,0,255,0,0,255,0,0,255,0,0,0,0,255,0,255,255,0,0,0,255,0,255,0,0,255, + 0,255,0,0,255,0,0,255,0,255,0,0,0,255,0,0,0,255,0,255,255,0,0,0,255,0,255, + 0,0,0,0,255,0,255,255,0,0,0,255,0,255,0,0,0,0,255,0,255,255,0,0,255,0,0, + 0,0,0,255,0,0,0,255,0,0,0,0,255,0,255,0,0,0,255,0,255,0,0,0,255,0,0,0,255, + 0,0,255,0,255,0,0,255,0,0,0,255,0,0,0,0,255,0,0,0,255,0,0,0,0,0,255,0,0, + 0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,255,0,255,0,0,0,0,255,0,255, + 0,0,0,0,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,0,255,0,0,255,0,0,0,0,255, + 0,255,0,0,0,0,255,0,255,0,0,255,0,255,0,255,0,0,0,255,0,255,0,0,0,255,0, + 0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0, + 0,0,255,0,255,0,0,0,255,0,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,255,0,255, + 0,0,0,255,0,255,0,255,0,255,0,0,0,255,0,255,0,0,0,255,0,255,0,0,0,0,255, + 0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,255,255,0,0,0,255,0,0,0, + 255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0, + 0,255,255,255,255,0,255,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,0,0,255,0,255, + 255,255,255,255,255,0,0,255,0,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255, + 0,0,255,0,255,255,0,0,0,0,255,0,255,0,0,0,255,0,0,0,255,0,255,0,0,0,0,255, + 0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255, + 255,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,255,0,255,0,0,0,255,0,255,0,255, + 0,255,0,0,0,0,255,0,0,0,0,255,0,255,0,0,0,255,0,0,0,255,255,0,0,0,0,0,0, + 255,0,0,0,0,0,255,255,0,0,255,0,0,255,0,0,255,0,0,0,255,0,0,0,0,0,0,0,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,255,0,0,0,255,0,255,0, + 0,0,0,255,0,255,0,0,0,0,0,255,0,0,0,0,255,0,255,0,0,0,0,0,0,0,255,0,0,255, + 0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,255,0,255,0,255,0,0,0,255,0,255, + 0,0,0,255,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255, + 0,255,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,0,255,0,0,0,255,0,0,0,0,255,0, + 0,255,0,255,0,0,0,255,0,255,0,255,0,255,0,0,0,255,0,255,0,0,0,255,0,255, + 0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255,0,0,0,255, + 255,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 0,0,0,0,0,0,255,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,0,255, + 255,0,255,0,0,0,0,255,0,0,255,0,0,255,0,0,0,255,255,0,255,0,0,0,0,255,0, + 255,0,0,255,0,255,0,0,255,0,0,255,0,255,0,0,0,255,0,0,0,255,0,255,0,0,0, + 0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,255,255,0,255,0,0, + 0,0,0,0,255,0,0,255,0,0,0,255,0,0,0,255,255,0,0,0,255,0,0,0,0,0,255,0,0, + 0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0, + 255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,255,255,255,255,0,255,255, + 255,255,255,0,0,0,255,255,255,255,0,0,255,255,255,0,255,0,0,255,255,255, + 255,0,0,0,255,0,0,0,255,255,255,0,255,0,255,0,0,0,0,255,0,255,0,0,255,0, + 255,0,0,0,255,0,255,0,255,0,0,0,255,0,0,0,255,0,255,0,0,0,0,255,0,0,255, + 255,255,255,0,0,255,255,255,255,255,0,0,0,255,255,255,0,255,0,255,0,0,0, + 255,255,255,0,0,0,0,255,255,0,0,255,255,255,0,255,0,0,0,255,0,0,0,0,0,255, + 0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,255,255,255,0,0,0,255, + 0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255, + 255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0, + 0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0, + 255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,127,127,127,0,127,127,127,127,127,0, + 127,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,127, + 0,127,127,127,127,127,127,0,127,127,127,0,127,127,127,127,127,127,0,127, + 127,127,127,127,127,0,127,0,127,127,0,127,127,127,127,127,0,127,0,127,127, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127, + 127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127, + 0,127,127,127,127,0,127,127,127,127,0,127,127,127,127,127,127,0,127,127, + 127,127,127,0,127,127,127,127,127,127,127,127,127,0,127,127,127,127,127, + 0,127,127,127,127,127,0,127,127,127,127,0,127,127,127,127,127,0,127,127, + 127,127,0,127,127,127,127,127,0,127,127,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,127,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,255,0,0,255,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0, + 0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,255,0,255, + 0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, + 255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,127,0,0,255, + 255,255,255,0,0,0,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255, + 255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0, + 255,0,0,255,0,0,0,255,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255, + 0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,0,0,0,255,255,255, + 255,255,255,255,255,255,0,255,255,255,255,255,255,0,0,0,255,255,255,255, + 255,255,255,255,255,0,0,0,255,255,255,255,255,255,255,255,255,0,255,0,0, + 0,255,0,255,0,255,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,255,0,255,255,0,0,0,255,255,255,0,255,0,0,0,255,0,0,255,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, + 255,0,0,255,255,0,0,255,0,0,0,0,0,255,0,127,0,255,0,0,0,0,0,0,0,255,0,0, + 0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, + 255,255,255,255,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,255,0,0,255,0,0, + 255,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,255,0, + 0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0, + 0,255,0,0,0,255,0,0,0,0,0,0,0,255,0,0,255,0,255,0,0,0,255,0,255,0,255,0, + 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 255,0,0,255,255,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,255,0,0,127,255,0,0,0,0, + 0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0, + 0,255,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,255,0,255,0,0,0,0,0,255, + 0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0, + 0,0,255,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255, + 0,255,0,255,0,0,255,255,255,0,0,255,0,0,0,0,255,255,255,255,0,255,255,255, + 0,0,0,0,255,0,0,0,0,0,0,0,255,0,255,255,255,255,0,0,255,0,0,0,255,0,0,127, + 255,255,255,255,255,255,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0, + 0,0,0,0,255,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,255, + 0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,255,0, + 0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,255,0,255,0,0,0,0,0,0,255,0,0,255,0,0, + 0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,255,0,255, + 0,0,0,127,255,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,255, + 255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0, + 0,0,0,0,0,0,0,0,255,255,0,0,255,0,0,255,255,0,0,0,255,255,0,0,0,255,255, + 255,255,0,0,0,255,0,0,0,255,0,0,0,0,0,255,255,255,255,255,0,0,0,255,0,0, + 0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,255,0,0, + 0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0, + 0,0,0,0,0,0,255,0,255,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,255, + 0,0,0,255,0,0,0,0,0,255,0,0,0,0,127,255,255,255,255,255,255,0,0,0,255,0, + 0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,255,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,255, + 0,0,255,0,255,0,0,255,0,0,0,0,0,0,255,0,0,255,0,0,0,255,0,0,0,0,0,255,0, + 0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0, + 0,255,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, + 255,255,255,0,255,255,255,255,255,0,255,255,255,255,255,255,255,255,255, + 255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,255, + 0,255,0,0,0,0,255,255,255,255,255,0,0,0,255,0,0,0,0,0,0,0,255,0,0,255,0, + 0,0,0,0,0,255,0,0,0,0,127,255,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0, + 0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0, + 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,255,0,255,0,0,255,0,0,0, + 0,0,0,255,0,0,0,255,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0, + 0,255,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0, + 0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255, + 0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0, + 0,0,255,0,0,0,0,127,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,255,0, + 0,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0, + 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,255,0,255,0,0,255,0,255, + 0,0,0,0,255,0,0,0,0,255,0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0, + 0,0,255,0,255,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0, + 0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0, + 0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,255,0,0,0,0,0, + 0,0,255,0,0,0,0,127,0,0,255,255,255,255,0,0,0,255,255,255,255,255,255,255, + 255,255,0,0,255,0,0,0,255,0,0,0,0,0,255,0,255,0,0,255,0,0,255,0,0,255,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,255,0, + 0,0,255,255,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,255,255,255,255,255, + 255,255,255,255,0,0,0,255,255,255,255,255,255,255,255,255,0,255,255,255, + 255,255,255,0,0,0,255,255,255,255,255,255,255,255,255,0,0,0,255,255,255, + 255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, + 255,255,0,0,0,0,0,0,0,0,255,255,255,255,0,255,255,255,255,0,0,0,255,255, + 255,255,255,255,255,255,255,0,255,255,255,255,0,0,0,0,255,0,0,0,0,127,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,255,0,0,0,0,0,255,0,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 127,127,127,0,127,127,0,127,127,127,127,127,127,0,127,127,127,127,0,127, + 127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127, + 127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,127,127,127,127, + 127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127, + 127,0,127,127,127,127,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,127,127,127,0, + 127,127,0,127,127,0,127,127,127,127,0,127,127,127,127,0,127,127,127,127, + 0,127,127,127,127,127,0,127,127,127,127,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,127,127,127,0,127,127, + 127,127,0,127,127,127,127,0,127,127,127,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,127,127,127,127,0,127,127,127,127,0,127,127,127, + 127,127,127,127,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,255,0,0,0, + 0,0,255,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0, + 255,0,0,0,0,255,255,255,255,0,0,255,0,0,255,0,0,0,0,0,255,255,255,255,0, + 0,0,0,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, + 255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,255, + 255,255,0,0,0,255,255,255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,255,255, + 255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,255,255,0,0,0,0,0,0, + 0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,255,255, + 255,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0, + 0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, + 0,0,0,0,255,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0,255, + 0,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, + 255,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,0,0,0,255,0,0, + 0,0,0,0,0,0,0,255,255,0,0,0,255,0,0,0,0,0,0,255,255,0,0,0,0,255,0,0,0,0, + 0,0,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,127,0,0,0,0,0,255,0,0,0,0,255,255,255,255,0,0,255,0,0,0,0, + 0,255,0,0,0,0,255,0,0,0,255,0,255,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0, + 0,0,0,0,0,255,0,0,255,255,0,0,255,0,0,0,0,255,255,255,0,0,0,255,0,0,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,255,255,255,0,0,255,0,0,0,0,0,0,0,0, + 0,0,255,0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,255,255,0,0,0,0,0, + 0,0,0,0,255,0,0,0,0,255,0,255,255,255,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,255,0,0,255,0,0,0,255,0,255,0,0,255,0,0,0,0,0,255,0,0,0,255,0,0,0, + 0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,255,255,0,0,0,255,0,0,0,0,0,0,0,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,255,0,0, + 0,255,0,255,0,0,0,0,255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,0,255,0, + 0,0,0,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,255,0,0,255, + 0,0,255,0,0,255,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255, + 0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,255,0,0,0,0,0,0,255, + 0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,255,255,255,255,0,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,255,0,0,255,0,0,255,0,0, + 0,0,255,0,0,255,0,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,255,0,255, + 0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 0,0,0,0,0,255,0,0,0,255,0,255,0,0,0,0,255,0,0,0,0,0,0,255,0,0,255,0,0,0, + 0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0, + 0,0,0,255,0,0,255,0,0,255,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 255,0,0,255,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, + 255,255,255,0,0,255,255,255,255,0,0,255,255,255,0,0,0,0,0,0,0,0,0,255,0, + 0,0,0,255,0,0,255,255,255,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,255,255, + 0,255,0,0,0,255,0,0,0,255,0,0,255,0,0,0,255,0,0,255,0,0,255,255,0,0,0,0, + 255,0,0,255,0,255,255,255,0,0,0,0,0,0,255,0,255,0,0,255,255,0,0,0,255,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,255,0,0, + 0,255,0,255,0,0,0,255,255,255,255,255,0,0,0,255,0,0,255,0,0,0,255,255,255, + 255,255,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0, + 0,255,0,0,0,255,255,255,0,255,0,0,255,0,0,0,0,255,255,255,255,255,255,255, + 0,255,255,255,0,255,0,0,255,255,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255, + 0,0,0,0,255,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,0, + 0,0,0,255,0,0,255,0,0,0,0,0,255,0,0,255,0,255,0,0,0,0,0,0,0,255,0,0,0,0, + 255,0,0,255,255,255,0,255,0,0,255,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,255,0,0,0,255,0,255,0,0,0,0, + 255,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,255, + 0,0,255,0,0,0,0,0,0,0,0,255,0,0,255,0,0,255,0,0,255,0,0,0,0,0,0,0,0,255, + 0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,255,0,0,255,0,0,255,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,255,0,0,0,0,255,0,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,255,0,0,255,0,0,255,0,0,0,0,0, + 0,255,0,0,0,0,255,0,0,0,0,0,0,255,0,0,255,0,0,255,0,255,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,255,0,0,0,255,0,255, + 0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0, + 0,255,255,0,0,0,0,0,0,0,0,0,0,255,0,0,255,255,0,0,255,0,0,0,0,0,0,0,0,0, + 0,255,0,0,255,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,255,0,0,0,255,255,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,255,0,0,0,0,255,0,255,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,0,255,0,0,255, + 255,255,255,255,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,255,0,0,255,255,255, + 255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 0,0,0,0,0,255,0,0,0,0,255,255,255,255,0,255,255,255,255,255,255,0,0,0,0, + 0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,255, + 255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0, + 0,0,0,0,255,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,255,0,0,0, + 0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,255,255,255,255,0,0,0,0,255, + 0,0,0,0,0,0,255,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,255,255, + 255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,255,0,255,0,0,0, + 0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,255,255, + 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0, + 0,0,255,0,255,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 127,127,0,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127, + 0,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,0, + 127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,0,127,127,127,0,127,127,127,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127, + 127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127, + 127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127, + 127,0,127,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127, + 0,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,127,127,127,127,0,127,127,127,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,127,0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,255, + 0,0,0,0,0,255,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,255,0,0,0,0,255,255,0, + 0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,255,255,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255, + 255,0,0,0,0,0,0,0,255,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,255,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,127,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,255,0,0,0, + 255,0,255,255,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,255,0,0,255,0, + 0,0,255,0,0,255,0,0,0,255,0,0,0,255,0,0,255,0,0,255,255,0,255,0,0,0,0,0, + 0,0,0,0,0,255,0,255,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0, + 0,255,0,0,255,0,0,0,0,0,255,0,255,255,0,0,0,0,0,255,0,0,255,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,255, + 0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,255,0,0,0,0,0,0,0,255,0, + 0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0, + 0,0,0,0,0,0,255,255,255,255,255,255,255,0,0,0,255,255,255,255,0,255,255, + 255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255, + 255,255,255,255,255,0,255,255,255,0,255,255,255,0,255,255,255,0,255,255, + 255,0,0,255,255,255,255,0,0,0,255,255,0,0,0,0,255,0,0,0,255,255,255,255, + 0,0,0,0,0,255,255,255,255,0,0,0,0,0,255,255,255,255,0,0,0,0,0,255,255,255, + 255,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, + 0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255, + 0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,0,0,255,0,0,0, + 0,0,0,0,0,0,0,0,127,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255, + 0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,0, + 255,0,255,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,255, + 0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, + 0,0,0,255,0,0,255,255,0,0,0,0,255,0,0,255,0,0,0,0,255,0,0,0,255,0,0,0,0, + 255,0,0,0,255,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0, + 0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,255,0,0,0,0,0,255,0,255,0,0,0, + 0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,255,0,0,0,255,0,0,255, + 0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,127,0,0,255,0,255,0,0,0, + 0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255, + 0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,255, + 0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0, + 255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,255,0,255,0,255,0,0,0,255,0,255, + 0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0,0, + 0,0,0,255,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,255, + 0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0, + 0,0,255,0,0,255,0,0,0,255,0,0,255,255,255,255,255,0,0,255,0,0,0,255,0,0, + 0,0,0,0,0,0,0,0,0,127,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0, + 255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0, + 0,255,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0, + 255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0, + 0,255,0,0,0,0,255,0,255,0,255,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0, + 0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0,0,0,0, + 0,255,0,0,0,255,0,0,0,255,0,0,255,0,0,0,255,0,0,255,0,255,0,0,0,0,0,255, + 0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,0,255,0, + 255,0,0,0,255,0,0,0,0,255,0,255,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,127,0, + 255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, + 0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,255,255,255,255, + 255,0,255,0,0,0,0,0,0,255,255,255,255,255,255,0,255,255,255,255,255,255, + 0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,0,255,0,0,0,255,0, + 0,0,255,0,0,0,255,0,0,255,255,255,255,0,0,255,0,255,0,0,255,0,0,255,0,255, + 0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0,0, + 0,0,0,255,0,255,0,0,0,0,0,0,255,0,0,0,0,255,0,255,0,0,0,255,0,0,255,0,0, + 0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255, + 0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255,0,255,0,0,0,255,0,0,0, + 0,0,0,0,0,0,0,0,127,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0, + 255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, + 255,255,255,255,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0, + 0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0, + 0,0,255,0,0,0,0,255,0,255,0,0,0,255,0,255,0,255,0,0,0,0,0,0,255,0,255,0, + 0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0,0,0, + 0,0,255,0,0,0,0,0,255,0,0,0,0,255,0,0,255,0,0,0,255,0,255,0,0,0,0,0,255, + 0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,0,0,255, + 0,0,0,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,127,0,255, + 255,255,255,255,0,0,0,255,255,255,255,255,0,0,0,255,255,255,255,255,0,0, + 0,255,255,255,255,255,0,0,0,255,255,255,255,255,0,0,0,255,255,255,255,255, + 0,0,0,255,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0, + 0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, + 0,0,0,255,0,0,0,0,255,0,255,0,0,0,255,0,255,0,255,0,0,0,0,0,0,255,0,255, + 0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,255,0,255,0,0,0, + 0,0,0,255,0,0,0,0,255,0,255,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,0, + 255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,0,0, + 255,0,0,0,0,255,255,255,255,255,0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0, + 127,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0, + 0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,255,0,0,0,255,0,0, + 0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,255, + 0,0,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0, + 255,0,0,0,0,255,255,0,0,255,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,0,255, + 0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,0,255,0,0,0,0,255,0,0,0,0,255,0,0, + 0,255,0,0,0,255,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0, + 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0, + 0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,127,255,0,0,0,0,0,255,0,255,0,0,0, + 0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,255, + 0,0,0,0,0,255,0,255,0,0,0,0,255,255,255,255,255,0,0,0,255,255,255,255,0, + 255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255,255,255, + 255,0,255,255,255,255,255,255,0,255,255,255,0,255,255,255,0,255,255,255, + 0,255,255,255,0,0,255,255,255,255,0,0,0,255,0,0,0,0,255,255,0,0,0,255,255, + 255,255,0,0,0,0,0,255,255,255,255,0,0,0,0,0,255,255,255,255,0,0,0,0,0,255, + 255,255,255,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, + 255,255,255,0,0,0,0,0,255,255,255,0,0,0,0,0,255,255,255,0,0,0,0,0,255,255, + 255,0,0,0,0,0,255,255,255,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,255,0, + 255,255,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127, + 127,127,0,127,127,127,127,127,127,0,127,127,127,0,127,127,127,0,127,127, + 127,0,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127, + 127,127,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,255,0,0,0,0,0,0,255,0,0, + 0,0,255,255,0,0,0,255,255,0,255,0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,255,255,0,0, + 0,0,0,0,0,0,0,0,255,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0, + 255,0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,255,0,0,0,0,0,255,255,0,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0, + 0,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,255,0,0,0,0,255,0,0,0,0,255, + 0,0,255,0,255,0,255,255,0,0,0,255,0,0,255,0,0,255,0,0,255,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,255,0,0, + 0,255,0,0,255,0,0,0,255,0,255,0,255,0,255,255,0,255,0,0,255,0,255,0,0,0, + 255,0,255,255,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,255,0,0,0,255, + 0,255,255,0,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 255,0,0,0,0,0,0,255,0,0,0,0,255,0,0,255,0,0,0,255,0,0,255,0,0,0,0,255,0, + 0,0,255,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 127,0,255,255,255,0,0,0,255,255,255,0,0,0,255,255,255,0,0,0,255,255,255, + 0,0,0,255,255,255,0,0,0,255,255,255,0,0,0,255,255,255,0,0,255,255,0,0,0, + 0,255,255,255,255,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255, + 255,255,0,0,0,255,255,255,255,0,0,0,255,0,255,0,0,255,0,0,255,0,0,255,255, + 0,255,0,0,255,0,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255, + 0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0, + 0,0,0,255,0,0,0,0,0,0,255,255,255,255,0,0,255,0,0,0,0,255,0,255,0,0,0,0, + 255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,255,0,255,0,255,255, + 255,0,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,255,0,0,0,0,0, + 255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255, + 255,0,0,255,0,0,255,0,0,0,0,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0, + 0,0,0,255,0,255,0,0,0,0,255,0,0,255,0,255,0,0,255,0,0,255,0,0,0,0,0,0,255, + 0,255,255,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255, + 0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,255, + 0,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255, + 0,255,0,0,0,255,0,255,255,0,0,0,255,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,127,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0, + 255,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,255,0,255,0,0,0,0,0,255,0,0,0,0, + 255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,0,255,0,255, + 0,0,255,0,0,255,0,0,255,255,255,255,255,0,255,0,0,0,0,255,0,255,0,0,0,0, + 255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0, + 255,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,255,0,255,0,0,0,0,255,0,255,0,0, + 0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,0,255,0,255,0,0,255,0,0,0, + 0,255,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,255,255,255,255,0,0, + 255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255, + 255,0,0,255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,0,255,0, + 0,0,0,0,255,255,255,255,255,255,0,255,255,255,255,255,255,0,255,255,255, + 255,255,255,0,255,255,255,255,255,255,0,0,255,0,255,0,0,255,0,0,255,0,255, + 0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255, + 0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,0,255,255,255,255,255, + 255,255,0,255,0,0,255,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255, + 0,0,0,0,255,0,255,0,0,0,0,255,0,0,255,0,255,0,0,255,0,0,0,0,255,0,0,255, + 0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,255,0,0,0,255,0,255,0,0,0,255,0,255, + 0,0,0,255,0,255,0,0,0,255,0,255,0,0,0,255,0,255,0,0,0,255,0,255,0,0,0,255, + 0,0,0,0,0,0,255,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,255,0,0,0,0,0, + 0,255,0,0,0,0,0,0,0,255,0,255,0,0,255,0,0,255,0,255,0,0,0,0,255,0,255,0, + 0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0, + 0,0,0,255,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,255,0,255,0,0,0,255,0,255, + 0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,0,255, + 0,255,0,0,255,0,0,0,0,255,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,255, + 0,0,0,255,0,255,0,0,0,255,0,255,0,0,0,255,0,255,0,0,0,255,0,255,0,0,0,255, + 0,255,0,0,0,255,0,255,0,0,0,255,255,0,0,0,255,0,255,0,0,0,0,0,255,0,0,0, + 0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,0,255,0,255, + 0,0,255,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0, + 255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0,255,0,0,0,0,255,0, + 0,0,0,0,255,0,0,0,0,0,255,0,0,0,255,0,0,255,0,0,0,255,255,0,255,0,0,0,255, + 255,0,255,0,0,0,255,255,0,255,0,0,0,255,255,0,0,0,255,0,0,0,255,0,0,0,0, + 255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,255,255,255,255,0,0,255, + 255,255,255,0,0,255,255,255,255,0,0,255,255,255,255,0,0,255,255,255,255, + 0,0,255,255,255,255,0,0,255,255,255,0,0,255,255,255,0,0,0,255,255,255,255, + 0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255, + 255,255,255,0,0,0,255,0,255,0,0,255,0,0,255,0,0,255,255,255,255,0,0,255, + 0,0,0,0,255,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,255,255,255, + 255,0,0,0,255,255,255,255,0,0,0,255,255,255,255,0,0,0,0,0,0,255,0,0,0,0, + 0,255,255,255,255,0,0,0,0,255,255,255,0,255,0,0,255,255,255,0,255,0,0,255, + 255,255,0,255,0,0,255,255,255,0,255,0,0,0,255,0,0,0,255,255,255,255,255, + 0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0, + 0,255,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,255,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127, + 127,127,0,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127, + 127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,127,0,127, + 127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127, + 0,127,127,0,127,0,127,127,0,127,127,0,127,127,127,127,127,127,0,127,127, + 127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127, + 127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127, + 127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,127,0,127, + 127,127,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +// Normal font anti-aliased +const int FONT1AA_BM_W = 264; +const int FONT1AA_BM_H = 106; +static const unsigned char s_Font1AA[] = +{ + 127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0, + 0,0,0,4,4,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0, + 59,241,97,206,166,0,0,0,0,0,0,0,0,0,0,0,0,0,168,34,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,251,89,0,0,89,255,125,89,255,125,0,0,0,0, + 7,199,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,166, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0, + 0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,127,0,0,0,0,0,138,225,21,59,238,42, + 206,125,0,0,0,0,7,199,34,89,166,0,0,0,0,168,34,0,0,0,175,255,255,166,0, + 0,7,202,89,0,0,0,0,59,245,255,251,89,0,0,0,59,238,34,0,12,232,89,0,0,89, + 247,34,0,59,245,206,199,124,255,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,7,202,89,0,12,235,255,247,34,0,0,0,0,12,232,89,0,0,12,235, + 255,255,251,89,0,7,206,255,255,255,125,0,0,0,0,138,251,89,0,0,59,245,255, + 255,255,251,89,0,0,89,255,255,166,0,89,255,255,255,255,255,201,0,0,59,245, + 255,255,125,0,0,12,235,255,247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,255,255,255,247,34,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0, + 0,0,0,0,0,127,0,0,0,0,0,138,225,21,59,238,34,175,125,0,0,0,0,59,192,0,172, + 89,0,0,59,245,255,255,251,89,89,247,34,12,228,34,0,138,166,0,0,0,0,12,235, + 125,0,175,225,21,0,0,59,238,34,0,138,201,0,0,0,0,175,166,0,0,0,89,255,201, + 0,0,0,0,0,0,7,202,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,215,21,0,175, + 166,0,138,201,0,0,7,206,255,251,89,0,0,59,192,0,0,138,247,34,59,192,0,0, + 89,251,89,0,0,59,245,251,89,0,0,59,241,89,0,0,0,0,0,89,247,34,0,0,0,0,0, + 0,0,7,206,166,0,7,206,125,0,89,247,34,7,206,166,0,138,225,21,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,12,232,89,0,0,0,0,0,0,0,0,0,0,0,175,166,0,0,0,0,0, + 0,0,89,125,0,0,175,201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0, + 0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,127,0,0,0,0,0,138,225,21,12,206, + 21,175,125,0,0,89,255,255,255,255,255,255,166,59,241,89,168,34,138,125, + 89,225,21,7,202,89,12,228,34,0,0,0,0,12,232,89,0,138,201,0,0,0,12,206,21, + 7,202,89,0,0,0,0,59,215,21,59,245,206,199,124,255,125,0,0,0,0,7,202,89, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,166,0,12,232,89,0,59,238,34,0,0, + 0,59,241,89,0,0,0,0,0,0,59,241,89,0,0,0,0,59,241,89,0,12,232,132,241,89, + 0,0,59,241,89,0,0,0,0,7,206,125,0,0,0,0,0,0,0,0,89,247,34,0,12,232,89,0, + 12,232,89,59,241,89,0,59,241,89,0,138,247,34,0,0,138,247,34,0,0,0,0,0,12, + 235,247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,138,255,166,0,0,0,0,0,0,0,0,0,138, + 225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0, + 0,0,4,4,0,0,0,0,0,0,0,0,127,0,0,0,0,0,138,225,21,0,0,0,0,0,0,0,0,0,172, + 89,59,192,0,0,59,238,34,168,34,0,0,89,247,34,12,228,34,138,166,0,0,0,0, + 0,0,138,251,159,247,34,0,0,0,0,0,0,59,238,34,0,0,0,0,7,202,89,0,0,7,199, + 34,0,0,0,0,0,0,7,202,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,202,89,0,59, + 241,89,0,59,241,89,0,0,0,59,241,89,0,0,0,0,0,0,89,247,34,0,0,0,0,138,201, + 0,7,206,125,59,241,89,0,0,59,245,255,255,251,89,0,12,235,255,255,255,125, + 0,0,0,0,7,206,166,0,0,0,175,251,89,138,201,0,59,241,89,0,12,235,125,0,138, + 247,34,0,0,138,247,34,0,0,0,59,245,247,34,0,0,0,0,7,206,255,255,255,255, + 255,255,125,0,0,0,0,138,255,201,0,0,0,0,0,0,89,251,89,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0, + 127,0,0,0,0,0,138,201,0,0,0,0,0,0,0,0,0,12,206,21,138,125,0,0,7,206,255, + 247,34,0,0,0,175,255,255,166,59,215,21,175,255,255,125,0,0,138,171,206, + 166,0,175,201,0,0,0,0,89,201,0,0,0,0,0,0,175,125,0,0,0,0,0,0,0,0,12,235, + 255,255,255,255,255,255,125,0,0,0,0,138,255,255,251,89,0,0,0,0,0,59,215, + 21,0,59,241,89,0,59,241,89,0,0,0,59,241,89,0,0,0,0,0,12,235,166,0,0,0,138, + 255,255,125,0,175,201,0,59,241,89,0,0,0,0,0,0,175,247,34,59,241,89,0,89, + 247,34,0,0,0,89,247,34,0,0,0,89,255,255,255,125,0,12,235,166,0,59,245,125, + 0,0,0,0,0,0,0,0,0,0,0,175,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,89,251,89,0,0,7,206,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,127,0,0,0,0,0,89,201, + 0,0,0,0,0,0,0,12,235,255,255,255,255,255,225,21,0,0,0,175,255,251,89,0, + 0,0,0,0,175,125,89,225,21,59,238,34,89,225,21,12,235,166,175,166,0,0,0, + 0,89,201,0,0,0,0,0,0,175,125,0,0,0,0,0,0,0,0,0,0,0,7,202,89,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,138,166,0,0,59,241,89,0,59,241,89,0,0,0,59,241,89, + 0,0,0,0,12,235,166,0,0,0,0,0,0,59,241,97,206,255,255,255,255,255,125,0, + 0,0,0,0,59,241,89,59,238,34,0,12,235,125,0,0,12,235,125,0,0,0,12,232,89, + 0,59,245,125,0,89,255,255,232,241,89,0,0,0,0,0,0,0,0,0,0,0,0,59,245,247, + 34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,255,201,0,0,0,0,7,206,125,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,4, + 4,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,125,12,206,21, + 0,0,0,0,0,168,34,175,166,0,0,0,0,59,215,21,138,201,0,12,228,34,138,225, + 21,0,12,235,251,89,0,0,0,0,59,215,21,0,0,0,0,12,232,89,0,0,0,0,0,0,0,0, + 0,0,0,7,202,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,202,89,0,0,12,232,89,0, + 59,238,34,0,0,0,59,241,89,0,0,0,12,235,166,0,0,0,0,0,0,0,12,235,125,0,0, + 0,59,241,89,0,0,0,0,0,0,59,241,89,12,232,89,0,12,232,89,0,0,138,225,21, + 0,0,0,59,238,34,0,7,206,166,0,0,0,0,89,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,12,235,247,34,0,0,7,206,255,255,255,255,255,255,125,0,0,138,255,166,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0, + 0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,127,0,0,0,0,0,138,225,21,0,0,0,0, + 0,0,0,0,172,89,89,166,0,0,0,89,166,0,168,42,206,125,0,0,0,7,202,89,0,89, + 225,21,59,238,34,89,251,89,0,0,175,255,201,0,0,0,0,7,202,89,0,0,0,0,59, + 215,21,0,0,0,0,0,0,0,0,0,0,0,7,202,89,0,0,0,0,138,247,34,0,0,0,0,0,7,206, + 201,0,12,228,34,0,0,0,175,166,0,138,201,0,0,0,0,59,241,89,0,0,12,235,166, + 0,0,0,0,89,166,0,0,89,251,89,0,0,0,59,241,89,0,0,59,192,0,0,175,225,21, + 0,175,201,0,138,225,21,0,12,235,125,0,0,0,0,12,235,166,0,59,241,89,0,0, + 0,7,206,166,0,0,138,247,34,0,0,59,245,125,0,0,0,0,0,0,0,12,232,89,0,0,0, + 0,0,0,0,0,0,0,0,175,166,0,0,0,0,0,0,0,0,7,206,166,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0, + 127,0,0,0,0,0,138,225,21,0,0,0,0,0,0,0,12,206,21,138,125,0,0,0,12,235,255, + 255,255,166,0,0,0,0,138,201,0,0,0,175,255,255,125,0,0,138,255,255,255,125, + 12,235,247,0,0,0,0,138,201,0,0,0,0,175,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,7,206,166,0,0,0,0,0,0,7,206,201,0,89,201,0,0,0,0,12,235,255,247, + 34,0,0,7,206,255,255,255,225,21,89,255,255,255,255,255,166,59,245,255,255, + 251,89,0,0,0,0,59,241,89,0,0,12,235,255,255,225,21,0,0,12,235,255,251,89, + 0,0,175,225,21,0,0,0,0,0,59,245,255,255,125,0,0,89,255,255,166,0,0,0,138, + 247,34,0,0,138,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,7,206,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4, + 0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,12,232,89,0,0,59,238,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,59,241,89,0,0,0,0,0,0,0,0,0,0,175,125,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,125, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0, + 4,4,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,168,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89, + 255,125,89,255,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,201,0,0,0,0, + 0,0,0,0,0,0,12,228,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,228,34,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0, + 127,127,127,127,0,127,127,0,127,127,127,127,127,0,127,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,127,0,127,127,0,127,127,127,127, + 0,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,127,0,127,127,127,0,127,127,127,127,0,127,127,127,0,127,127,127,127, + 0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127, + 127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,0, + 127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,255,255,125,138,166,0,0,0,89,255,255,247, + 34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,89,255,255, + 255,255,166,0,0,0,0,0,12,235,225,21,0,0,59,245,255,255,255,251,89,0,0,0, + 59,245,255,255,251,89,59,245,255,255,255,247,34,0,0,59,245,255,255,255, + 255,127,81,245,255,255,255,255,127,0,0,59,245,255,255,255,166,0,59,241, + 89,0,0,0,59,241,89,89,255,255,255,125,7,206,255,251,89,59,241,89,0,0,89, + 255,166,59,241,89,0,0,0,0,59,245,225,21,0,0,7,206,251,89,59,245,247,34, + 0,0,59,241,89,0,0,138,255,255,255,166,0,0,59,245,255,255,255,225,21,0,0, + 0,138,255,255,255,166,0,0,59,245,255,255,255,251,89,0,0,0,59,245,255,255, + 201,89,255,255,255,255,255,255,255,125,59,241,89,0,0,0,59,241,97,206,166, + 0,0,0,0,175,201,175,201,0,0,7,206,201,0,0,0,175,171,206,225,21,0,0,59,245, + 166,245,125,0,0,0,89,251,89,89,255,255,255,255,255,127,0,228,34,0,0,59, + 215,21,0,0,0,0,12,228,34,0,0,0,59,245,201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,127,0,0,175,225,21,0,0,0,175,225,21,0,0,0,89,232,241,89,0,0,59, + 241,89,0,0,138,225,21,0,89,255,125,0,0,59,192,59,241,89,0,0,175,251,89, + 0,59,241,89,0,0,0,0,59,241,89,0,0,0,0,0,89,255,125,0,0,7,199,34,59,241, + 89,0,0,0,59,241,89,0,59,241,89,0,0,0,59,241,89,59,241,89,0,59,241,89,0, + 59,241,89,0,0,0,0,59,245,255,125,0,0,89,255,251,89,59,245,255,201,0,0,59, + 241,89,0,138,251,89,0,12,235,166,0,59,241,89,0,7,206,225,21,0,138,251,89, + 0,12,235,166,0,59,241,89,0,0,138,247,34,0,12,235,125,0,7,176,21,0,0,59, + 241,89,0,0,0,59,241,89,0,0,0,59,241,89,138,225,21,0,0,12,235,125,89,225, + 21,0,59,245,247,34,0,12,232,89,12,235,166,0,7,206,166,0,89,247,34,0,7,206, + 125,0,0,0,0,0,7,206,166,12,228,34,0,0,7,202,89,0,0,0,0,12,228,34,0,0,12, + 235,133,206,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,138,201,0,138, + 255,255,255,125,138,166,0,0,7,206,166,175,166,0,0,59,241,89,0,0,89,247, + 34,7,206,166,0,0,0,0,0,59,241,89,0,0,0,175,225,21,59,241,89,0,0,0,0,59, + 241,89,0,0,0,0,7,206,166,0,0,0,0,0,0,59,241,89,0,0,0,59,241,89,0,59,241, + 89,0,0,0,59,241,89,59,241,89,59,241,89,0,0,59,241,89,0,0,0,0,59,241,159, + 225,21,0,175,166,241,89,59,241,132,241,89,0,59,241,89,12,235,166,0,0,0, + 89,247,34,59,241,89,0,0,89,247,34,12,235,166,0,0,0,89,247,34,59,241,89, + 0,0,59,241,89,0,59,238,34,0,0,0,0,0,0,59,241,89,0,0,0,59,241,89,0,0,0,59, + 241,89,59,241,89,0,0,89,225,21,59,241,89,0,89,206,202,89,0,59,238,34,0, + 89,251,89,138,225,21,0,0,175,201,0,138,225,21,0,0,0,0,0,175,225,21,12,228, + 34,0,0,0,138,166,0,0,0,0,12,228,34,0,7,206,166,0,12,235,125,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,127,7,202,89,89,225,21,7,206,125,12,206,21,0,59,238, + 34,89,247,34,0,59,241,89,0,0,175,201,0,59,241,89,0,0,0,0,0,59,241,89,0, + 0,0,59,241,89,59,241,89,0,0,0,0,59,241,89,0,0,0,0,59,241,89,0,0,0,0,0,0, + 59,241,89,0,0,0,59,241,89,0,59,241,89,0,0,0,59,241,89,59,241,102,232,89, + 0,0,0,59,241,89,0,0,0,0,59,241,102,232,89,59,215,81,241,89,59,241,89,138, + 225,21,59,241,89,59,241,89,0,0,0,59,241,89,59,241,89,0,7,206,201,0,59,241, + 89,0,0,0,59,241,89,59,241,89,0,0,175,201,0,0,12,235,166,0,0,0,0,0,0,59, + 241,89,0,0,0,59,241,89,0,0,0,59,241,89,7,206,166,0,0,175,166,0,7,206,125, + 0,175,125,175,166,0,138,201,0,0,0,175,255,251,89,0,0,0,59,245,166,241,89, + 0,0,0,0,0,89,247,34,0,12,228,34,0,0,0,89,201,0,0,0,0,12,228,34,12,235,201, + 0,0,0,59,245,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,59,215,21,175,125, + 0,7,206,125,7,199,34,0,138,201,0,12,235,125,0,59,245,255,255,255,247,34, + 0,59,241,89,0,0,0,0,0,59,241,89,0,0,0,59,241,89,59,245,255,255,255,255, + 127,59,245,255,255,255,255,127,59,241,89,0,0,0,0,0,0,59,245,255,255,255, + 255,255,251,89,0,59,241,89,0,0,0,59,241,89,59,245,255,247,34,0,0,0,59,241, + 89,0,0,0,0,59,241,89,138,201,175,166,59,241,89,59,241,89,12,235,125,59, + 241,89,59,241,89,0,0,0,12,235,125,59,245,255,255,255,201,0,0,59,241,89, + 0,0,0,12,235,125,59,245,255,255,255,125,0,0,0,0,59,245,255,255,125,0,0, + 0,59,241,89,0,0,0,59,241,89,0,0,0,59,241,89,0,138,225,21,59,241,89,0,0, + 175,201,7,202,89,89,201,0,175,166,0,0,0,12,235,166,0,0,0,0,0,138,255,166, + 0,0,0,0,0,59,245,125,0,0,12,228,34,0,0,0,12,228,34,0,0,0,12,228,34,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,59,215,21,175,125,0,7, + 206,125,7,199,34,7,206,125,0,0,175,201,0,59,241,89,0,0,89,247,34,59,241, + 89,0,0,0,0,0,59,241,89,0,0,0,59,241,89,59,241,89,0,0,0,0,59,241,89,0,0, + 0,0,59,241,89,0,59,245,255,251,89,59,241,89,0,0,0,59,241,89,0,59,241,89, + 0,0,0,59,241,89,59,241,89,175,225,21,0,0,59,241,89,0,0,0,0,59,241,89,12, + 235,247,34,59,241,89,59,241,89,0,89,247,94,241,89,59,241,89,0,0,0,59,241, + 89,59,241,89,0,0,0,0,0,59,241,89,0,0,0,59,241,89,59,241,89,12,235,166,0, + 0,0,0,0,0,0,138,251,89,0,0,59,241,89,0,0,0,59,241,89,0,0,0,59,241,89,0, + 12,232,89,138,225,21,0,0,89,225,81,215,21,12,228,47,232,89,0,0,0,175,255, + 251,89,0,0,0,0,59,241,89,0,0,0,0,7,206,201,0,0,0,12,228,34,0,0,0,0,175, + 125,0,0,0,12,228,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 12,228,34,89,201,0,7,206,125,59,215,21,59,245,255,255,255,255,247,34,59, + 241,89,0,0,59,241,89,7,206,166,0,0,0,0,0,59,241,89,0,0,0,138,225,21,59, + 241,89,0,0,0,0,59,241,89,0,0,0,0,7,206,166,0,0,0,59,241,89,59,241,89,0, + 0,0,59,241,89,0,59,241,89,0,0,0,59,241,89,59,241,89,7,206,201,0,0,59,241, + 89,0,0,0,0,59,241,89,0,175,166,0,59,241,89,59,241,89,0,7,206,200,241,89, + 12,235,166,0,0,0,89,247,34,59,241,89,0,0,0,0,0,12,235,166,0,0,0,89,247, + 34,59,241,89,0,59,245,125,0,0,0,0,0,0,12,232,89,0,0,59,241,89,0,0,0,12, + 232,89,0,0,0,59,238,34,0,0,175,171,206,166,0,0,0,12,232,159,201,0,7,202, + 132,215,21,0,0,89,247,34,175,225,21,0,0,0,59,241,89,0,0,0,0,138,225,21, + 0,0,0,12,228,34,0,0,0,0,89,201,0,0,0,12,228,34,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,138,201,7,206,255,251,226,255,255,166,0, + 138,201,0,0,0,12,235,125,59,241,89,0,0,138,247,34,0,89,255,125,0,0,59,192, + 59,241,89,0,0,138,251,89,0,59,241,89,0,0,0,0,59,241,89,0,0,0,0,0,89,255, + 125,0,0,59,241,89,59,241,89,0,0,0,59,241,89,0,59,241,89,0,0,0,89,247,34, + 59,241,89,0,12,235,166,0,59,241,89,0,0,0,0,59,241,89,0,0,0,0,59,241,89, + 59,241,89,0,0,59,245,251,89,0,138,251,89,0,59,245,166,0,59,241,89,0,0,0, + 0,0,0,138,251,89,0,59,245,166,0,59,241,89,0,0,138,251,89,0,89,166,0,0,89, + 247,34,0,0,59,241,89,0,0,0,0,138,225,21,0,7,206,166,0,0,0,89,255,251,89, + 0,0,0,7,206,255,125,0,0,138,255,201,0,0,12,235,125,0,12,235,166,0,0,0,59, + 241,89,0,0,0,89,251,89,0,0,0,0,12,228,34,0,0,0,0,12,228,34,0,0,12,228,34, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,7,206,225,21,0, + 0,0,0,0,0,7,206,125,0,0,0,0,175,201,59,245,255,255,255,247,34,0,0,0,59, + 245,255,255,251,89,59,245,255,255,255,225,21,0,0,59,245,255,255,255,255, + 127,81,241,89,0,0,0,0,0,0,59,245,255,255,255,201,0,59,241,89,0,0,0,59,241, + 89,89,255,255,255,138,235,255,255,125,0,59,241,89,0,0,89,255,201,59,245, + 255,255,255,255,166,59,241,89,0,0,0,0,59,241,89,59,241,89,0,0,0,175,251, + 89,0,0,138,255,255,255,166,0,0,59,241,89,0,0,0,0,0,0,0,138,255,255,255, + 166,0,0,59,241,89,0,0,0,175,251,89,12,235,255,255,251,89,0,0,0,59,241,89, + 0,0,0,0,0,59,245,255,251,89,0,0,0,0,12,235,201,0,0,0,0,0,138,251,89,0,0, + 89,255,125,0,7,206,225,21,0,0,89,255,125,0,0,59,241,89,0,0,0,175,255,255, + 255,255,255,127,0,228,34,0,0,0,0,0,175,125,0,0,12,228,34,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,89,255,255,255,255,125,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,241,89,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12, + 228,34,0,0,0,0,0,89,201,0,0,12,228,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,138,255,255,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,255,255,125,0,0,0,12,228, + 124,255,255,247,34,0,0,0,0,0,0,0,0,0,245,255,255,255,255,255,255,0,0,0, + 0,0,0,0,0,0,0,127,127,127,127,127,127,127,127,127,127,127,0,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,127,0,127,127,127,127,0,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,0,127, + 127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,127,0,89,255,125,0,0,0,0,0,0,0,0,0,0,59,241,89,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,59,241,89,0,0,0,0,0,0,0,0,89,255,255,166,0,0,0,0,0, + 0,0,59,241,89,0,0,0,0,0,0,0,0,0,0,0,59,241,89,0,0,0,0,59,241,89,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,255,201,0,12,228, + 34,0,0,89,255,247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,116,116, + 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,127,0,0,59,241,89,0,0,0,0,0,0,0,0,0,59,241,89,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,59,241,89,0,0,0,0,0,0,0,12,235,125,0,0,0,0,0,0, + 0,0,0,59,241,89,0,0,0,0,59,241,89,0,89,251,89,59,241,89,0,0,0,0,59,241, + 89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,241,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,225, + 21,0,0,12,228,34,0,0,0,0,138,201,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4, + 4,4,28,244,252,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59, + 241,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,241,89,0,0,0,0,0,0,0,59,241,89,0, + 0,0,0,0,0,0,0,0,59,241,89,0,0,0,0,0,0,0,0,0,0,0,59,241,89,0,0,0,0,59,241, + 89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,241,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,166, + 0,0,0,12,228,34,0,0,0,0,89,225,21,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4, + 4,180,252,164,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,7,206,255,255,255, + 125,0,59,241,194,255,251,89,0,0,7,206,255,255,201,0,12,235,255,255,251, + 89,0,12,235,255,251,89,7,206,255,255,247,34,0,12,235,255,255,251,89,59, + 241,194,255,255,125,0,59,241,89,89,255,251,89,59,241,89,0,138,251,89,59, + 241,89,59,241,159,255,255,125,89,255,255,166,0,59,241,194,255,255,125,0, + 0,0,12,235,255,247,34,0,59,241,194,255,255,125,0,0,12,235,255,255,251,89, + 59,241,159,255,201,0,138,255,255,247,34,206,255,255,255,166,59,241,89,0, + 59,241,97,206,166,0,0,12,235,125,175,201,0,7,206,166,0,7,206,133,206,225, + 21,0,89,255,255,166,0,0,12,235,125,138,255,255,255,255,166,0,0,138,166, + 0,0,0,12,228,34,0,0,0,0,89,225,21,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4, + 76,252,244,20,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,89,247,34, + 59,245,166,0,138,225,21,7,206,201,0,0,0,7,206,166,0,59,241,89,7,206,125, + 0,89,225,21,59,241,89,0,0,7,206,166,0,59,241,89,59,245,166,0,89,247,34, + 59,241,89,0,59,241,89,59,241,89,138,225,21,0,59,241,89,59,245,201,0,89, + 255,201,0,89,247,34,59,245,166,0,89,247,34,0,7,206,166,0,138,225,21,59, + 245,166,0,138,247,34,7,206,166,0,59,241,89,59,245,201,0,0,59,238,34,0,130, + 34,59,241,89,0,0,59,241,89,0,59,241,89,89,247,34,0,89,247,34,138,225,21, + 12,235,225,21,12,232,89,7,206,166,12,235,125,89,247,34,0,89,247,34,0,0, + 0,89,247,34,0,0,138,166,0,0,0,12,228,34,0,0,0,0,89,225,21,0,0,7,206,247, + 34,0,0,89,201,0,0,4,4,68,12,4,4,4,220,252,108,4,4,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 0,0,0,0,0,0,0,0,0,0,0,59,241,89,59,241,89,0,59,241,89,59,241,89,0,0,0,59, + 241,89,0,59,241,89,59,238,34,0,59,238,34,59,241,89,0,0,59,241,89,0,59,241, + 89,59,241,89,0,59,241,89,59,241,89,0,59,241,89,59,241,159,201,0,0,0,59, + 241,89,59,241,89,0,59,241,89,0,59,241,89,59,241,89,0,59,241,89,0,59,241, + 89,0,59,241,89,59,241,89,0,59,241,89,59,241,89,0,59,241,89,59,241,89,0, + 0,59,241,89,0,0,0,59,241,89,0,0,59,241,89,0,59,241,89,12,235,125,0,175, + 166,0,59,238,34,89,171,202,89,89,225,21,0,59,241,226,201,0,12,235,125,0, + 175,166,0,0,0,12,235,125,0,0,59,238,34,0,0,0,12,228,34,0,0,0,0,7,206,125, + 0,7,202,89,12,235,166,0,175,125,0,0,4,60,244,172,4,4,132,252,212,4,4,4, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,89,255,255,255,251,89,59,241,89, + 0,59,241,89,59,238,34,0,0,0,59,238,34,0,59,241,89,59,245,255,255,255,251, + 0,59,241,89,0,0,59,238,34,0,59,241,89,59,241,89,0,59,241,89,59,241,89,0, + 59,241,89,59,245,255,225,21,0,0,59,241,89,59,241,89,0,59,241,89,0,59,241, + 89,59,241,89,0,59,241,89,0,59,238,34,0,12,232,89,59,241,89,0,12,232,89, + 59,238,34,0,59,241,89,59,241,89,0,0,0,175,255,255,201,0,59,241,89,0,0,59, + 241,89,0,59,241,89,0,175,201,12,232,89,0,7,206,125,172,89,138,166,138,201, + 0,0,0,138,247,34,0,0,175,201,12,232,89,0,0,7,206,166,0,0,175,225,21,0,0, + 0,0,12,228,34,0,0,0,0,0,0,175,225,34,206,21,0,0,175,255,166,0,0,0,4,52, + 244,252,140,36,244,252,60,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,59, + 241,89,0,59,241,89,59,241,89,0,59,238,34,59,241,89,0,0,0,59,241,89,0,59, + 241,89,59,238,34,0,0,0,0,59,241,89,0,0,59,241,89,0,59,241,89,59,241,89, + 0,59,241,89,59,241,89,0,59,241,89,59,241,97,206,201,0,0,59,241,89,59,241, + 89,0,59,241,89,0,59,241,89,59,241,89,0,59,241,89,0,59,241,89,0,59,241,89, + 59,241,89,0,59,241,89,59,241,89,0,59,241,89,59,241,89,0,0,0,0,0,59,245, + 125,59,241,89,0,0,59,241,89,0,59,241,89,0,59,238,124,225,21,0,0,175,176, + 206,21,59,215,187,125,0,0,59,245,255,201,0,0,89,247,124,225,21,0,0,138, + 225,21,0,0,0,59,241,89,0,0,0,12,228,34,0,0,0,0,12,235,125,0,0,0,0,0,0,0, + 0,0,0,0,0,4,4,76,252,252,220,252,164,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0, + 0,0,0,0,0,0,89,247,34,0,89,251,89,59,241,89,0,175,201,0,7,206,201,0,0,0, + 7,206,166,0,138,251,89,7,206,166,0,7,199,34,59,241,89,0,0,7,206,166,0,138, + 251,89,59,241,89,0,59,241,89,59,241,89,0,59,241,89,59,241,89,12,235,166, + 0,59,241,89,59,241,89,0,59,241,89,0,59,241,89,59,241,89,0,59,241,89,0,7, + 206,166,0,138,225,21,59,241,89,0,138,225,21,7,206,166,0,89,251,89,59,241, + 89,0,0,89,125,0,12,232,89,12,232,89,0,12,12,235,125,0,175,251,89,0,7,206, + 255,125,0,0,0,89,255,201,0,7,206,247,34,0,7,206,166,59,245,125,0,7,206, + 255,125,0,0,59,241,89,0,0,0,0,0,138,166,0,0,0,12,228,34,0,0,0,0,89,225, + 21,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,100,252,252,244,28,4,4,4,4,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,127,0,0,0,0,0,0,0,0,175,255,255,232,241,89,59,245,255,255,247,34, + 0,0,12,235,255,255,201,0,59,245,255,200,241,89,0,12,235,255,251,89,0,59, + 241,89,0,0,0,12,235,255,200,241,89,59,241,89,0,59,241,89,59,241,89,0,59, + 241,89,59,241,89,0,59,245,201,59,241,89,59,241,89,0,59,241,89,0,59,241, + 89,59,241,89,0,59,241,89,0,0,12,235,255,247,34,0,59,245,166,255,247,34, + 0,0,59,245,255,166,241,89,59,241,89,0,0,59,245,255,255,166,0,0,138,255, + 255,125,0,89,255,255,166,241,89,0,0,138,247,34,0,0,0,59,245,125,0,0,138, + 225,21,7,206,225,21,0,138,251,0,0,138,247,34,0,0,175,255,255,255,255,166, + 0,0,138,166,0,0,0,12,228,34,0,0,0,0,89,225,21,0,0,0,0,0,0,0,0,0,0,0,0,4, + 4,4,4,132,252,108,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,138,225,21,0,0,0,0,0,0,0,0,0,0,0,89,247,34,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,241,89,0,0,0,0,0, + 0,0,0,59,241,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,232,89,0,0,0,0,0,0,0,0,0,0,0,138, + 201,0,0,0,12,228,34,0,0,0,0,138,201,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4, + 116,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,166,255,255, + 247,34,0,0,0,0,0,0,0,0,0,0,0,255,255,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,241,89,0,0,0,0,0,0,0,0,59, + 241,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,225,21,0,0,0,0,0,0,0,0,0,0,0,7,206,255, + 201,0,12,228,34,0,0,89,255,251,89,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4, + 4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,127,127,127,127,0,127,127,127, + 127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127, + 127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,0,127,127,127,127, + 127,127,0,127,127,127,127,127,127,0,127,127,0,127,127,127,0,127,127,127, + 127,127,127,0,127,127,0,127,127,127,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127, + 0,127,127,127,127,127,127,0,127,127,127,127,0,127,127,127,127,127,0,127, + 127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127, + 127,0,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,0,127, + 127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127,127, + 127,127,127,127,127,127,127,127,127,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,89,247,34,138,201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,125,59,238,34,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,255, + 225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 12,235,251,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,238,34,138,201,0,0,0,0,0, + 0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,199,34,0,0,0,0,0,7,199,34,0,0,0,0,138,255, + 201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,251,89,0,0,138,255,251,97,206,201,0,0,138, + 251,102,235,201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,255, + 201,12,228,34,0,0,0,0,0,0,0,0,0,0,0,0,7,206,166,12,232,89,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,166,12,235,127,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,127,0,0,175,255,255,255,225,21,59,245,255,255,255, + 255,255,125,0,0,0,0,0,0,0,7,206,255,247,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,7,199,34,0,0,0,0,0,7,199,34,0,0,0,138,225,21,175,166,0,0,175,255,255, + 166,0,0,7,202,89,0,0,0,0,0,0,0,0,0,0,59,245,255,255,201,0,0,0,0,0,0,0,0, + 59,245,255,255,255,255,255,255,255,255,125,0,59,245,255,255,255,255,255, + 125,0,0,89,255,255,255,255,255,225,21,59,245,255,255,255,255,255,125,0, + 0,0,59,245,255,255,255,255,255,125,7,206,166,0,0,175,171,206,166,89,247, + 34,0,175,201,59,241,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 12,228,34,175,255,125,0,0,89,255,255,255,125,175,251,89,89,255,125,0,7, + 206,255,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,245,255,255,255, + 255,255,125,0,0,7,206,255,125,59,245,125,0,0,0,89,251,89,0,0,0,0,0,0,0, + 127,7,206,225,21,0,0,0,0,59,115,0,0,0,0,59,115,0,0,0,0,0,0,0,175,201,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,245,255,255,255,255,125,0,59,245,255, + 255,255,255,125,0,0,0,0,0,0,0,89,247,34,12,228,34,0,138,166,0,0,0,0,0,0, + 0,0,0,0,12,235,125,0,7,176,21,0,0,0,0,0,0,138,251,89,0,0,138,201,0,0,0, + 0,0,0,59,115,0,0,0,0,59,115,0,0,0,0,0,0,7,206,166,0,59,115,0,0,0,0,59,115, + 0,0,0,59,115,0,0,0,0,59,115,0,89,201,0,12,232,89,89,201,7,202,89,12,232, + 89,138,201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,7,199,34,0,172,132,196,199,163,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,59,115,0,0,0,0,59,115,0,0,0,0,0,0,0,89,247,34,0,7, + 206,125,0,0,0,0,0,0,0,0,127,89,247,34,0,0,0,0,0,59,115,0,0,0,0,59,115,0, + 0,0,0,0,0,7,206,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,199,34,0, + 0,0,0,0,7,199,34,0,0,0,0,0,0,0,0,0,89,225,21,7,202,89,12,228,34,0,0,0,0, + 0,0,0,0,0,0,59,238,34,0,0,0,0,0,0,0,130,34,59,241,89,0,0,0,138,201,0,0, + 0,0,0,0,59,115,0,0,0,0,59,115,0,0,0,0,0,0,175,225,21,0,59,115,0,0,0,0,59, + 115,0,0,0,59,115,0,0,0,0,59,115,0,12,228,34,59,192,0,12,228,34,138,166, + 59,215,21,175,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,7,199,34,0,172,89,175,166,138,125,0,138,255,255,247,34,12, + 146,0,0,0,0,89,255,255,255,125,12,235,255,255,125,0,0,0,59,115,0,0,0,0, + 59,115,0,138,255,255,255,255,127,0,175,201,0,138,225,21,0,0,0,0,0,0,0,0, + 127,245,255,255,255,255,255,125,0,59,115,0,0,0,0,59,115,0,0,0,0,0,0,12, + 232,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,199,34,0,0,0,0,0,7,199, + 34,0,0,0,0,0,0,0,0,0,89,247,34,12,228,34,138,166,0,0,0,0,0,0,0,0,0,0,0, + 12,235,166,0,0,0,0,0,0,175,225,21,138,225,21,0,0,0,138,201,0,0,0,0,0,0, + 59,115,0,0,0,0,59,115,0,0,0,0,0,89,247,34,0,0,59,115,0,0,0,0,59,115,0,0, + 0,59,115,0,0,0,0,59,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,255,166, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,199,34,0,172, + 89,0,0,138,125,59,238,34,0,130,34,7,206,201,0,0,59,241,89,0,12,235,255, + 125,0,59,241,89,0,0,59,115,0,0,0,0,59,115,0,0,0,0,89,247,34,0,59,245,166, + 241,89,0,0,0,0,0,0,0,0,0,127,138,225,21,0,0,0,0,0,59,115,0,0,0,0,59,115, + 0,0,0,0,0,89,255,255,255,247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,199, + 34,0,0,0,0,0,7,199,34,0,0,0,0,0,0,0,0,0,0,175,255,255,166,59,215,21,175, + 255,255,125,0,89,255,255,201,0,0,0,59,245,255,255,125,0,12,235,166,0,0, + 138,225,21,0,0,0,138,255,255,255,255,247,34,0,59,115,0,0,0,0,59,115,0,0, + 0,0,59,245,125,0,0,0,59,115,0,0,0,0,59,115,0,0,0,59,115,0,0,0,0,59,115, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,245,255,251,102,0,255,255,255,255, + 255,0,245,255,255,255,255,255,255,255,255,255,255,127,21,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,59,241,89,0,0,0,0,0,138,247,34,138,201,0,0,0,175, + 201,0,0,0,175,166,0,0,59,115,0,0,0,0,59,115,0,0,0,12,235,125,0,0,0,138, + 255,166,0,0,0,0,0,0,0,0,0,0,127,245,255,255,255,255,225,21,0,59,115,0,0, + 0,0,59,115,0,0,0,0,0,0,89,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,7,199,34,0,0,0,59,245,255,255,255,255,125,0,0,0,0,0,0,0,0,0,0,0,0,175, + 125,89,225,21,59,238,47,232,89,7,206,125,0,0,0,0,0,138,251,89,12,235,166, + 0,0,138,225,21,0,0,0,138,201,0,0,0,0,0,0,59,115,0,0,0,0,59,115,0,0,0,7, + 206,201,0,0,0,0,59,115,0,0,0,0,59,115,0,0,0,59,115,0,0,0,0,59,115,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,245,255,251,89,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,255,255,201,0, + 0,0,138,247,34,175,201,0,0,0,138,255,255,255,255,255,166,0,0,59,115,0,0, + 0,0,59,115,0,0,7,206,166,0,0,0,0,59,241,89,0,0,0,0,0,0,0,0,0,0,127,89,251, + 89,0,0,0,0,0,59,115,0,0,0,0,59,115,0,0,0,0,0,0,138,201,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,7,199,34,0,0,0,0,0,7,199,34,0,0,0,0,0,0,0,0,0, + 0,0,0,0,59,215,21,138,201,0,12,228,47,228,34,0,175,166,0,0,0,0,0,12,232, + 89,0,0,175,225,21,59,241,89,0,0,0,138,201,0,0,0,0,0,0,59,115,0,0,0,0,59, + 115,0,0,0,138,225,21,0,0,0,0,59,115,0,0,0,0,59,115,0,0,0,59,115,0,0,0,0, + 59,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,255,166,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59, + 245,125,7,206,201,0,0,138,201,0,0,0,175,201,0,0,0,0,0,0,0,59,115,0,0,0, + 0,59,115,0,0,138,225,21,0,0,0,0,59,241,89,0,0,0,0,0,0,0,0,0,0,127,7,206, + 247,34,0,0,0,0,59,115,0,0,0,0,59,115,0,59,245,125,0,0,175,166,0,0,0,59, + 245,125,175,225,29,206,166,0,89,247,34,7,206,166,0,0,0,7,199,34,0,0,0,0, + 0,7,199,34,0,0,0,0,0,0,0,0,0,0,0,0,7,202,89,0,89,225,21,59,238,47,232,89, + 7,206,125,0,89,166,0,0,89,247,34,0,0,0,130,34,0,138,255,125,0,0,138,201, + 0,0,0,0,0,0,59,115,0,0,0,0,59,115,0,0,89,251,89,0,0,0,0,0,59,115,0,0,0, + 0,59,115,0,0,0,59,115,0,0,0,0,59,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,89,125,0,12,232,89,12,146,0,0,0,59,241,89,0,12,235,247, + 34,0,0,89,125,0,0,59,115,0,0,0,0,59,115,0,59,241,89,0,0,0,0,0,59,241,89, + 0,0,0,0,0,0,0,0,0,0,127,0,0,175,255,255,255,225,21,59,245,255,255,255,255, + 255,125,0,138,225,21,0,12,235,125,0,0,0,138,225,34,235,125,7,206,166,0, + 89,247,34,7,206,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 138,201,0,0,0,175,255,255,125,0,89,255,255,201,0,0,12,235,255,255,251,89, + 0,0,0,0,0,0,0,0,89,255,255,255,255,255,255,255,255,255,125,0,59,245,255, + 255,255,255,255,125,0,0,175,255,255,255,255,255,247,34,59,245,255,255,255, + 255,255,125,0,0,0,59,245,255,255,255,255,255,125,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,245,255,255,166,0,0,0,0,0,0,0,89,255,255, + 255,125,59,245,255,255,201,0,0,0,59,245,255,255,255,255,255,125,0,175,255, + 255,255,255,127,0,0,59,241,89,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,175,166,0,255,255,201,0,0,0,0,175,166,59,238,34,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,228,34,0,0, + 0,0,0,0,0,12,228,34,138,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127,0,127,127,127, + 127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127, + 127,127,0,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,0,127,127,127,0,127,127,127,127,127, + 127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,127,0, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,127,127,0,127,127,0,127,127,0,127,127,127,127,0, + 127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,0,127,127, + 127,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127, + 127,0,127,127,127,127,127,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,245,255,255,255,255,255, + 251,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,12,228,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,255,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,138,225,21, + 0,0,0,138,125,0,0,0,0,59,245,255,255,125,0,0,0,0,0,0,0,0,138,225,21,0,0, + 175,166,0,12,228,34,0,0,59,245,255,255,247,34,0,89,225,29,206,166,0,0,0, + 0,0,89,255,255,255,255,125,0,0,0,7,206,255,255,247,34,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,255,255,255,255,125,0,0,0,0,0,0,0, + 0,0,0,0,0,138,255,255,166,0,0,0,0,7,202,89,0,0,0,0,0,12,235,255,125,0,0, + 175,255,255,225,21,0,0,0,12,235,125,0,0,0,0,0,0,0,0,0,0,0,138,255,255,255, + 255,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,228,34,0,0,89,255,255,225,21,0,0, + 0,0,0,0,0,0,0,0,0,138,166,0,0,0,89,225,21,0,0,0,0,0,138,166,0,0,0,89,225, + 21,0,0,0,12,235,255,255,166,0,0,7,206,125,0,0,0,0,0,0,89,247,34,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,138,225,21,0,0,0,138,125,0,0,0,12, + 235,125,0,59,115,0,0,0,0,0,0,0,0,7,206,125,0,59,215,21,0,12,228,34,0,12, + 235,125,0,0,168,34,0,0,0,0,0,0,0,0,0,0,175,225,21,0,0,0,175,225,21,0,0, + 0,0,0,138,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,225, + 21,0,0,0,175,225,21,0,0,0,0,0,0,0,0,0,59,238,34,7,206,125,0,0,0,7,202,89, + 0,0,0,0,7,199,34,59,238,34,0,0,0,7,202,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,89,255,255,255,125,175,125,0,0,0,0,0,0,0,0,0,0,0,0,0,138,255,247,34,0, + 59,241,89,0,175,201,0,0,0,0,0,0,0,0,0,7,206,255,166,0,0,12,232,89,0,0,0, + 0,7,206,255,166,0,0,12,232,89,0,0,0,0,0,0,0,59,215,21,0,89,201,0,0,0,0, + 0,0,0,89,247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,7, + 206,255,255,251,89,0,59,241,89,0,0,0,138,201,0,0,0,138,201,0,0,89,225,21, + 175,125,0,0,12,228,34,0,12,235,125,0,0,0,0,0,0,0,0,0,0,0,0,0,138,166,0, + 89,255,255,247,34,89,201,0,0,89,255,255,255,166,0,0,0,0,168,34,7,151,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,166,7,206,255,255,225,21,89,201,0,0,0, + 0,0,0,0,0,0,89,166,0,0,138,166,0,0,0,7,202,89,0,0,0,0,0,0,0,59,238,34,0, + 7,206,255,125,0,0,0,0,0,0,0,0,0,59,238,34,0,0,175,166,0,175,255,255,255, + 125,175,125,0,138,247,34,0,0,0,0,0,0,0,0,0,0,12,228,34,0,89,201,0,0,89, + 225,0,81,115,0,134,89,0,0,0,0,0,138,166,0,0,138,166,0,0,0,0,0,0,0,138,166, + 0,0,138,166,0,0,0,0,0,0,59,245,247,34,0,12,232,89,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,89,201,0,7,206,201,138,125, + 138,125,0,59,241,89,0,0,0,0,175,255,255,255,225,21,0,0,7,206,166,215,21, + 0,0,12,228,34,0,0,138,255,255,251,89,0,0,0,0,0,0,0,0,0,12,206,21,59,241, + 89,0,134,89,0,172,89,59,238,34,0,138,166,0,0,7,206,201,12,235,125,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,12,206,21,7,202,89,12,235,125,0,172,89,0,0,0,0, + 0,0,0,0,59,238,34,7,206,125,12,235,255,255,255,255,255,255,125,0,0,0,12, + 235,125,0,0,0,0,7,206,125,0,0,0,0,0,0,0,0,59,238,34,0,0,175,166,0,175,255, + 255,255,125,175,125,0,138,247,34,0,0,0,0,0,0,0,0,0,0,12,228,34,0,89,201, + 0,0,89,225,0,29,206,166,59,245,125,0,0,0,0,138,166,0,12,228,34,0,175,225, + 21,0,0,0,138,166,0,12,228,42,206,255,255,166,0,0,0,0,12,228,34,138,166, + 0,89,247,34,0,0,0,0,59,238,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0, + 0,0,138,201,0,59,241,89,138,125,0,0,59,245,255,255,255,125,0,0,138,166, + 0,89,201,0,0,0,0,89,255,125,0,0,0,0,0,0,0,7,206,125,0,138,251,89,0,0,0, + 0,0,0,0,0,89,166,0,138,201,0,0,0,0,0,89,166,59,215,21,0,175,166,0,59,245, + 125,89,251,89,0,0,12,235,255,255,255,255,255,255,125,138,255,255,251,89, + 127,166,0,7,202,89,12,232,89,0,89,166,0,0,0,0,0,0,0,0,0,138,255,255,166, + 0,0,0,0,7,202,89,0,0,0,0,0,59,241,89,0,0,0,0,0,7,206,125,0,0,0,0,0,0,0, + 0,59,238,34,0,0,175,166,0,89,255,255,255,125,175,125,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,12,228,34,0,59,241,89,0,175,201,0,0,0,175,201,7,206,201,0,0,0, + 138,166,0,175,166,0,138,200,215,21,0,0,0,138,166,0,175,166,7,151,0,89,247, + 34,0,0,0,59,238,47,228,34,59,219,209,34,0,0,0,89,255,125,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,138,225,21,59,238,34,138,125,0,0,0,59, + 241,89,0,0,0,0,138,166,0,89,201,0,0,59,245,255,255,255,255,125,0,0,0,0, + 0,59,238,34,0,7,206,125,0,0,0,0,0,0,0,0,89,166,0,138,201,0,0,0,0,0,89,166, + 0,175,255,255,223,166,0,12,235,125,59,241,89,0,0,0,0,0,0,0,0,0,175,125, + 0,0,0,0,0,138,125,0,7,206,255,255,125,0,0,59,157,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,7,202,89,0,0,0,0,7,206,255,255,255,166,7,206,255,255,201,0, + 0,0,0,0,0,0,0,0,59,238,34,0,0,175,166,0,0,89,255,255,125,175,125,0,0,0, + 0,0,0,0,0,0,0,0,0,0,89,255,255,251,89,0,89,255,255,225,21,0,0,0,175,225, + 29,206,166,0,0,0,138,166,59,215,21,59,215,81,215,21,0,0,0,138,166,59,215, + 21,0,0,0,89,225,21,59,245,255,255,125,138,166,7,202,97,199,34,0,0,89,251, + 89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,138,225,21,59,241, + 89,138,125,0,0,0,89,247,34,0,0,0,0,175,255,255,255,225,21,0,0,0,12,232, + 89,0,0,0,12,228,34,0,12,235,225,21,59,215,21,0,0,0,0,0,0,0,0,12,206,21, + 59,241,89,0,134,89,0,172,89,0,0,0,0,0,0,0,0,7,206,201,12,235,125,0,0,0, + 0,0,0,0,0,175,125,0,0,0,0,0,12,206,21,7,202,89,7,206,125,0,172,89,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,202,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,59,238,34,0,0,175,166,0,0,0,0,175,125,175,125,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,166,59,245,125,0,0,0,0,0,0, + 175,125,12,228,34,59,215,21,0,0,0,0,0,175,125,0,0,0,12,232,89,0,0,0,0,0, + 59,238,34,175,125,7,199,34,0,0,175,201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,127,0,0,0,0,0,138,225,21,7,206,201,138,125,138,125,7,202,89,0,0,0, + 0,138,201,0,0,0,138,166,0,0,0,12,232,89,0,0,0,12,228,34,0,0,0,175,255,255, + 166,0,0,0,0,0,0,0,0,0,0,138,166,0,89,255,255,247,34,89,201,0,0,0,0,0,0, + 0,0,0,0,0,168,34,7,151,0,0,0,0,0,0,0,0,175,125,0,0,0,0,0,0,138,166,7,202, + 89,0,89,247,124,201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,255,255,255,255, + 255,255,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,245,125,0,7,206, + 166,0,0,0,0,175,125,175,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,59,115,0,134,89,0,0,0,0,0,0,59,215,21,59,245,255,255,255,225,21,0, + 0,0,59,215,21,0,0,59,238,34,0,0,0,0,0,0,175,125,7,206,255,255,255,251,89, + 0,138,247,34,0,59,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,138,225, + 21,0,7,206,255,255,251,89,138,255,255,255,255,255,166,0,0,0,0,0,0,0,0,0, + 0,12,232,89,0,0,0,12,228,34,0,0,0,0,0,59,241,89,0,0,0,0,0,0,0,0,0,0,175, + 225,21,0,0,0,175,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,175,225,21,0,0,0,175,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,238,198, + 255,251,194,166,0,0,0,0,175,125,175,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,125,0,0,0,0,89,225,21,0,0,0, + 7,206,125,0,0,12,235,255,255,255,166,0,0,0,89,225,21,0,0,0,12,228,34,0, + 0,0,175,255,255,255,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0, + 0,0,0,0,138,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,228, + 34,0,7,176,21,0,89,247,34,0,0,0,0,0,0,0,0,0,0,0,89,255,255,255,255,125, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89, + 255,255,255,255,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,238,34,0,0,0,0,0,0,0,0,175, + 125,175,125,0,0,0,0,0,0,0,0,59,215,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0, + 0,0,0,0,0,0,0,138,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 12,228,34,0,7,206,255,255,251,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,238,34,0,0,0,0,0,0,0,0,175,125,175,125, + 0,0,0,0,0,0,59,245,251,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,127,0,127,127, + 127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,127,0,127,127,127,127,0,127,127,127,127,127,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 0,127,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127, + 127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,0,127,127,127,127,0,127,127,127,127,127,127,0,127, + 127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,127,127,127,127,127,0, + 127,127,127,127,127,127,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,89, + 255,125,0,0,0,0,0,0,12,235,201,0,0,0,0,12,235,251,89,0,0,0,0,175,255,125, + 89,201,0,0,0,0,0,0,0,0,0,0,0,59,245,247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,89,255,125,0,0,0,0,0,0,138,251,89,0,0,0,12,235,251, + 89,0,0,0,0,0,0,0,0,7,206,225,21,0,0,0,89,255,125,0,89,255,225,21,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,247,34,172,89,0,0,0,0,7,206,225,21,0,0, + 0,0,0,0,0,89,255,125,0,0,0,0,0,0,89,255,225,21,0,0,0,0,12,235,247,34,172, + 89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89, + 255,125,0,0,0,0,0,0,0,7,206,225,21,0,0,0,0,89,255,225,21,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,89,255,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0, + 0,89,247,34,0,0,0,0,0,175,166,0,0,0,0,7,206,125,59,241,89,0,0,89,201,12, + 235,247,34,0,0,7,206,166,59,241,89,0,0,12,228,34,59,215,21,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,238,34,0,0,0,0,89,247,34,0,0,0,7, + 206,125,59,241,89,0,7,206,166,59,238,34,0,0,175,166,0,0,59,241,89,0,89, + 247,34,138,201,59,238,34,138,201,0,0,0,0,0,0,0,0,0,0,0,175,125,89,255,201, + 0,0,0,0,0,0,0,175,201,0,0,0,0,0,0,12,232,89,0,0,0,0,0,0,59,238,34,138,225, + 21,0,0,0,175,125,89,255,201,0,0,0,0,59,238,34,138,201,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,247,34,0,0,0,0,0,0,138,201,0,0,0,0, + 0,59,238,34,138,225,21,0,0,0,59,238,34,138,201,0,0,0,0,12,232,89,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,228,34,59,215,21,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,255,255,125,0, + 0,0,0,127,0,0,12,235,225,21,0,0,0,0,12,235,225,21,0,0,0,0,12,235,225,21, + 0,0,0,0,12,235,225,21,0,0,0,0,12,235,225,21,0,0,0,0,12,235,225,21,0,0,0, + 0,0,175,255,255,255,255,255,255,255,166,0,0,138,255,255,255,251,89,59,245, + 255,255,255,255,127,81,245,255,255,255,255,225,21,59,245,255,255,255,255, + 127,81,245,255,255,255,255,127,111,255,255,255,125,89,255,255,255,125,89, + 255,255,255,125,89,255,255,255,125,7,206,255,255,255,255,125,0,0,59,245, + 247,34,0,0,59,241,89,0,0,0,138,255,255,255,166,0,0,0,0,138,255,255,255, + 166,0,0,0,0,0,138,255,255,255,166,0,0,0,0,138,255,255,255,166,0,0,0,0,138, + 255,255,255,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,255,255,255,210,235,166, + 59,241,89,0,0,0,59,241,89,59,241,89,0,0,0,59,241,89,59,241,89,0,0,0,59, + 241,89,59,241,89,0,0,0,59,241,132,245,125,0,0,0,89,251,89,12,232,89,0,0, + 0,0,7,206,166,0,89,251,89,0,0,0,127,0,0,89,232,241,89,0,0,0,0,89,232,241, + 89,0,0,0,0,89,232,241,89,0,0,0,0,89,232,241,89,0,0,0,0,89,232,241,89,0, + 0,0,0,89,232,241,89,0,0,0,0,12,232,89,89,225,21,0,0,0,0,0,175,247,34,0, + 0,59,192,59,241,89,0,0,0,0,59,241,89,0,0,0,0,0,59,241,89,0,0,0,0,59,241, + 89,0,0,0,0,0,59,241,89,0,0,59,241,89,0,0,59,241,89,0,0,59,241,89,0,7,206, + 166,0,0,59,245,201,0,59,245,255,201,0,0,59,241,89,0,0,138,251,89,0,12,235, + 166,0,0,138,251,89,0,12,235,166,0,0,0,138,251,89,0,12,235,166,0,0,138,251, + 89,0,12,235,166,0,0,138,251,89,0,12,235,166,0,0,0,138,166,0,0,0,12,228, + 34,0,0,175,247,34,0,0,175,225,21,59,241,89,0,0,0,59,241,89,59,241,89,0, + 0,0,59,241,89,59,241,89,0,0,0,59,241,89,59,241,89,0,0,0,59,241,89,89,247, + 34,0,7,206,125,0,12,232,89,0,0,0,0,59,241,89,0,12,232,89,0,0,0,127,0,7, + 206,166,175,166,0,0,0,7,206,166,175,166,0,0,0,7,206,166,175,166,0,0,0,7, + 206,166,175,166,0,0,0,7,206,166,175,166,0,0,0,0,175,166,175,166,0,0,0,0, + 138,225,21,89,225,21,0,0,0,0,59,241,89,0,0,0,0,0,59,241,89,0,0,0,0,59,241, + 89,0,0,0,0,0,59,241,89,0,0,0,0,59,241,89,0,0,0,0,0,59,241,89,0,0,59,241, + 89,0,0,59,241,89,0,0,59,241,89,0,7,206,166,0,0,0,59,245,125,59,241,132, + 241,89,0,59,241,89,0,12,235,166,0,0,0,89,247,34,12,235,166,0,0,0,89,247, + 34,0,12,235,166,0,0,0,89,247,34,12,235,166,0,0,0,89,247,34,12,235,166,0, + 0,0,89,247,34,0,0,12,235,125,0,12,235,125,0,0,59,241,89,0,0,138,176,235, + 166,59,241,89,0,0,0,59,241,89,59,241,89,0,0,0,59,241,89,59,241,89,0,0,0, + 59,241,89,59,241,89,0,0,0,59,241,89,0,175,201,0,138,225,21,0,12,235,255, + 255,255,225,21,59,238,34,0,138,225,21,0,0,0,127,0,59,238,34,89,247,34,0, + 0,59,238,34,89,247,34,0,0,59,238,34,89,247,34,0,0,59,238,34,89,247,34,0, + 0,59,238,34,89,247,34,0,0,59,241,89,89,225,21,0,0,7,206,125,0,89,225,21, + 0,0,0,0,138,225,21,0,0,0,0,0,59,241,89,0,0,0,0,59,241,89,0,0,0,0,0,59,241, + 89,0,0,0,0,59,241,89,0,0,0,0,0,59,241,89,0,0,59,241,89,0,0,59,241,89,0, + 0,59,241,89,0,7,206,166,0,0,0,7,206,166,59,241,89,138,225,21,59,241,89, + 0,59,241,89,0,0,0,59,241,89,59,241,89,0,0,0,59,241,89,0,59,241,89,0,0,0, + 59,241,89,59,241,89,0,0,0,59,241,89,59,241,89,0,0,0,59,241,89,0,0,0,12, + 235,138,235,125,0,0,0,138,225,21,0,59,215,21,175,201,59,241,89,0,0,0,59, + 241,89,59,241,89,0,0,0,59,241,89,59,241,89,0,0,0,59,241,89,59,241,89,0, + 0,0,59,241,89,0,59,245,166,241,89,0,0,12,232,89,0,0,175,225,59,238,47,235, + 225,21,0,0,0,0,127,0,138,201,0,12,235,125,0,0,138,201,0,12,235,125,0,0, + 138,201,0,12,235,125,0,0,138,201,0,12,235,125,0,0,138,201,0,12,235,125, + 0,0,138,225,21,12,235,125,0,0,89,247,34,0,89,255,255,255,255,251,89,138, + 225,21,0,0,0,0,0,59,245,255,255,255,255,127,59,245,255,255,255,255,166, + 0,59,245,255,255,255,255,127,59,245,255,255,255,255,127,0,59,241,89,0,0, + 59,241,89,0,0,59,241,89,0,0,59,241,89,7,206,255,255,255,166,0,0,175,201, + 59,241,89,12,235,125,59,241,89,0,59,241,89,0,0,0,12,235,125,59,241,89,0, + 0,0,12,235,125,0,59,241,89,0,0,0,12,235,125,59,241,89,0,0,0,12,235,125, + 59,241,89,0,0,0,12,235,125,0,0,0,0,12,235,125,0,0,0,0,138,225,21,7,199, + 34,0,138,225,81,241,89,0,0,0,59,241,89,59,241,89,0,0,0,59,241,89,59,241, + 89,0,0,0,59,241,89,59,241,89,0,0,0,59,241,89,0,0,138,255,166,0,0,0,12,232, + 89,0,0,89,247,59,238,34,0,59,245,125,0,0,0,127,7,206,125,0,0,175,201,0, + 7,206,125,0,0,175,201,0,7,206,125,0,0,175,201,0,7,206,125,0,0,175,201,0, + 7,206,125,0,0,175,201,0,7,206,125,0,0,175,201,0,7,206,255,255,255,255,225, + 21,0,0,0,0,138,225,21,0,0,0,0,0,59,241,89,0,0,0,0,59,241,89,0,0,0,0,0,59, + 241,89,0,0,0,0,59,241,89,0,0,0,0,0,59,241,89,0,0,59,241,89,0,0,59,241,89, + 0,0,59,241,89,0,7,206,166,0,0,0,7,206,166,59,241,89,0,89,247,94,241,89, + 0,59,241,89,0,0,0,59,241,89,59,241,89,0,0,0,59,241,89,0,59,241,89,0,0,0, + 59,241,89,59,241,89,0,0,0,59,241,89,59,241,89,0,0,0,59,241,89,0,0,0,12, + 235,138,235,125,0,0,0,138,225,21,175,125,0,0,175,201,59,241,89,0,0,0,59, + 241,89,59,241,89,0,0,0,59,241,89,59,241,89,0,0,0,59,241,89,59,241,89,0, + 0,0,59,241,89,0,0,59,241,89,0,0,0,12,232,89,0,7,206,201,59,238,34,0,0,138, + 201,0,0,0,127,59,245,255,255,255,255,247,34,59,245,255,255,255,255,247, + 34,59,245,255,255,255,255,247,34,59,245,255,255,255,255,247,34,59,245,255, + 255,255,255,247,34,59,245,255,255,255,255,247,34,59,241,89,0,0,89,225,21, + 0,0,0,0,59,241,89,0,0,0,0,0,59,241,89,0,0,0,0,59,241,89,0,0,0,0,0,59,241, + 89,0,0,0,0,59,241,89,0,0,0,0,0,59,241,89,0,0,59,241,89,0,0,59,241,89,0, + 0,59,241,89,0,7,206,166,0,0,0,59,241,89,59,241,89,0,7,206,200,241,89,0, + 12,235,166,0,0,0,89,247,34,12,235,166,0,0,0,89,247,34,0,12,235,166,0,0, + 0,89,247,34,12,235,166,0,0,0,89,247,34,12,235,166,0,0,0,89,247,34,0,0,12, + 235,125,0,12,235,125,0,0,59,241,159,166,0,0,12,235,166,12,232,89,0,0,0, + 59,238,34,12,232,89,0,0,0,59,238,34,12,232,89,0,0,0,59,238,34,12,232,89, + 0,0,0,59,238,34,0,0,59,241,89,0,0,0,12,235,255,255,255,201,0,59,238,34, + 0,0,138,201,0,0,0,127,138,201,0,0,0,12,235,125,138,201,0,0,0,12,235,125, + 138,201,0,0,0,12,235,125,138,201,0,0,0,12,235,125,138,201,0,0,0,12,235, + 125,138,201,0,0,0,12,235,125,175,201,0,0,0,89,225,21,0,0,0,0,0,175,247, + 34,0,0,59,192,59,241,89,0,0,0,0,59,241,89,0,0,0,0,0,59,241,89,0,0,0,0,59, + 241,89,0,0,0,0,0,59,241,89,0,0,59,241,89,0,0,59,241,89,0,0,59,241,89,0, + 7,206,166,0,0,59,245,201,0,59,241,89,0,0,59,245,251,89,0,0,138,251,89,0, + 59,245,166,0,0,138,251,89,0,59,245,166,0,0,0,138,251,89,0,59,245,166,0, + 0,138,251,89,0,59,245,166,0,0,138,251,89,0,59,245,166,0,0,0,138,166,0,0, + 0,12,228,34,0,0,175,247,34,0,7,206,225,21,0,138,225,21,0,7,206,166,0,0, + 138,225,21,0,7,206,166,0,0,138,225,21,0,7,206,166,0,0,138,225,21,0,7,206, + 166,0,0,0,59,241,89,0,0,0,12,232,89,0,0,0,0,59,238,34,0,12,235,125,0,0, + 0,127,206,125,0,0,0,0,175,206,206,125,0,0,0,0,175,206,206,125,0,0,0,0,175, + 206,206,125,0,0,0,0,175,206,206,125,0,0,0,0,175,206,206,125,0,0,0,0,175, + 232,245,125,0,0,0,89,255,255,255,255,255,166,0,0,138,255,255,255,251,89, + 59,245,255,255,255,255,127,81,245,255,255,255,255,225,21,59,245,255,255, + 255,255,127,81,245,255,255,255,255,127,111,255,255,255,125,89,255,255,255, + 125,89,255,255,255,125,89,255,255,255,125,7,206,255,255,255,255,125,0,0, + 59,241,89,0,0,0,175,251,89,0,0,0,138,255,255,255,166,0,0,0,0,138,255,255, + 255,166,0,0,0,0,0,138,255,255,255,166,0,0,0,0,138,255,255,255,166,0,0,0, + 0,138,255,255,255,166,0,0,0,0,0,0,0,0,0,0,0,0,0,7,202,194,255,255,255,201, + 0,0,0,0,59,245,255,251,89,0,0,0,0,59,245,255,251,89,0,0,0,0,59,245,255, + 251,89,0,0,0,0,59,245,255,251,89,0,0,0,0,59,241,89,0,0,0,12,232,89,0,0, + 0,0,59,238,47,235,255,166,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,12,228,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138, + 166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,255,166,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,127,127,127,127,127,0,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,0,127,127,127,127,127,127,0,127,127,127,127,0,127,127,127,127,0,127, + 127,127,127,0,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,0, + 0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,255,201,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,7,206, + 225,21,0,0,0,0,0,12,235,201,0,0,0,138,255,201,0,0,0,59,245,225,29,202,89, + 0,0,0,0,0,0,0,0,138,166,7,202,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 7,206,225,21,0,0,0,0,0,12,235,201,0,0,0,89,255,225,21,0,0,0,0,0,0,0,0,175, + 247,34,0,12,235,255,255,166,0,0,0,0,0,0,0,0,0,0,0,0,59,245,225,29,202,89, + 0,0,138,251,89,0,0,0,0,0,7,206,225,21,0,0,0,89,255,225,21,0,0,59,245,225, + 29,202,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,225, + 21,0,0,0,0,0,89,255,125,0,0,0,89,255,225,21,0,0,0,0,0,0,0,0,0,0,0,0,138, + 251,89,0,59,238,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,175, + 166,0,0,0,0,7,206,166,0,0,0,89,225,21,175,201,0,7,202,89,138,255,166,0, + 0,89,247,34,175,166,0,0,138,166,7,202,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,7,206,166,0,0,0,0,0,175,166,0,0,0,89,247,34,138,201,0,0,89,247, + 34,175,201,0,0,138,201,0,175,200,215,34,235,247,47,232,0,138,255,225,111, + 225,21,0,0,172,89,138,255,166,0,0,0,0,89,225,21,0,0,0,0,175,201,0,0,0,0, + 89,247,34,138,201,0,0,172,89,138,255,166,0,0,59,238,34,138,201,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,166,0,0,0,0,59,241,89,0,0,0,89, + 247,34,138,201,0,0,0,59,238,34,138,201,0,0,0,89,247,34,0,0,59,238,34,0, + 0,0,0,0,138,225,29,206,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,255,201,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,225,21,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,12,235,166,0,0,0,0,0,0,0,0,89,166,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,238,34,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,7,206,255,255,255,125,0,7,206,255,255,255, + 125,0,7,206,255,255,255,125,0,7,206,255,255,255,125,0,7,206,255,255,255, + 125,0,12,235,255,255,251,89,0,12,235,255,255,251,89,59,245,255,166,0,0, + 59,245,255,255,201,0,12,235,255,251,89,0,0,12,235,255,251,89,0,0,12,235, + 255,251,89,0,0,12,235,255,251,89,0,59,238,34,59,238,34,59,238,34,59,238, + 34,0,59,241,89,175,225,21,0,59,241,194,255,255,125,0,0,12,235,255,247,34, + 0,0,12,235,255,247,34,0,0,0,12,235,255,247,34,0,0,12,235,255,247,34,0,0, + 12,235,255,247,34,0,0,0,0,0,12,235,166,0,0,0,0,7,206,255,255,225,21,0,59, + 241,89,0,59,241,89,59,241,89,0,59,241,89,59,241,89,0,59,241,89,0,59,241, + 89,0,59,241,97,206,166,0,0,12,235,125,59,238,163,255,255,201,7,206,166, + 0,0,12,235,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,89,247,34,0,0,0,0,89,247, + 34,0,0,0,0,89,247,34,0,0,0,0,89,247,34,0,0,0,0,89,247,34,0,0,0,0,138,225, + 21,0,0,0,0,89,255,225,21,0,138,201,59,245,125,0,0,0,7,206,125,0,89,225, + 21,7,206,125,0,89,225,21,7,206,125,0,89,225,21,7,206,125,0,89,225,21,59, + 238,34,59,238,34,59,238,34,59,238,34,0,0,0,0,12,235,125,0,59,245,166,0, + 89,247,34,7,206,166,0,138,225,21,7,206,166,0,138,225,21,0,7,206,166,0,138, + 225,21,7,206,166,0,138,225,21,7,206,166,0,138,225,21,0,0,0,0,0,0,0,0,0, + 0,12,232,89,0,138,251,89,0,59,241,89,0,59,241,89,59,241,89,0,59,241,89, + 59,241,89,0,59,241,89,0,59,241,89,0,59,241,89,89,247,34,0,89,247,34,59, + 245,166,0,7,206,166,89,247,34,0,89,247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0, + 59,241,89,0,0,0,0,59,241,89,0,0,0,0,59,241,89,0,0,0,0,59,241,89,0,0,0,0, + 59,241,89,0,0,0,0,59,238,34,0,0,0,0,12,232,89,0,0,59,238,127,225,21,0,0, + 0,59,238,34,0,59,238,34,59,238,34,0,59,238,34,59,238,34,0,59,238,34,59, + 238,34,0,59,238,34,59,238,34,59,238,34,59,238,34,59,238,34,0,138,255,255, + 255,255,201,0,59,241,89,0,59,241,89,59,241,89,0,59,241,89,59,241,89,0,59, + 241,89,0,59,241,89,0,59,241,89,59,241,89,0,59,241,89,59,241,89,0,59,241, + 89,0,12,235,255,255,255,255,255,255,166,138,201,0,59,157,175,201,0,59,241, + 89,0,59,241,89,59,241,89,0,59,241,89,59,241,89,0,59,241,89,0,59,241,89, + 0,59,241,89,12,235,125,0,175,166,0,59,238,34,0,0,138,225,34,235,125,0,175, + 166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,127,0,89,255,255,255,251,89,0,89,255,255,255,251, + 89,0,89,255,255,255,251,89,0,89,255,255,255,251,89,0,89,255,255,255,251, + 89,0,138,255,255,255,247,34,0,175,255,255,255,255,255,255,255,255,251,127, + 201,0,0,0,0,59,245,255,255,255,251,89,59,245,255,255,255,251,89,59,245, + 255,255,255,251,89,59,245,255,255,255,251,89,59,238,34,59,238,34,59,238, + 34,59,238,34,138,247,34,0,0,138,201,0,59,241,89,0,59,241,89,59,238,34,0, + 12,232,89,59,238,34,0,12,232,89,0,59,238,34,0,12,232,89,59,238,34,0,12, + 232,89,59,238,34,0,12,232,89,0,0,0,0,0,0,0,0,0,0,175,201,7,176,21,138,201, + 0,59,241,89,0,59,241,89,59,241,89,0,59,241,89,59,241,89,0,59,241,89,0,59, + 241,89,0,59,241,89,0,175,201,12,232,89,0,59,238,34,0,0,138,225,21,175,201, + 12,232,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,59,241,89,0,59,241,89,59,241,89,0,59, + 241,89,59,241,89,0,59,241,89,59,241,89,0,59,241,89,59,241,89,0,59,241,89, + 138,247,34,0,59,238,34,138,225,21,0,12,232,89,0,0,0,0,138,201,0,0,0,0,59, + 238,34,0,0,0,0,59,238,34,0,0,0,0,59,238,34,0,0,0,0,59,238,34,0,0,0,0,59, + 238,34,59,238,34,59,238,34,59,238,34,175,201,0,0,0,138,166,0,59,241,89, + 0,59,241,89,59,241,89,0,59,241,89,59,241,89,0,59,241,89,0,59,241,89,0,59, + 241,89,59,241,89,0,59,241,89,59,241,89,0,59,241,89,0,0,0,0,12,235,166,0, + 0,0,138,201,134,89,0,175,166,0,59,241,89,0,59,241,89,59,241,89,0,59,241, + 89,59,241,89,0,59,241,89,0,59,241,89,0,59,241,89,0,89,247,124,225,21,0, + 59,238,34,0,0,138,201,0,89,247,124,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,89,247, + 34,0,89,251,89,89,247,34,0,89,251,89,89,247,34,0,89,251,89,89,247,34,0, + 89,251,89,89,247,34,0,89,251,89,175,201,0,0,175,247,34,175,201,0,0,59,245, + 225,21,0,7,199,94,245,125,0,0,0,7,206,166,0,7,199,34,7,206,166,0,7,199, + 34,7,206,166,0,7,199,34,7,206,166,0,7,199,34,59,238,34,59,238,34,59,238, + 34,59,238,34,138,247,34,0,12,232,89,0,59,241,89,0,59,241,89,7,206,166,0, + 138,225,21,7,206,166,0,138,225,21,0,7,206,166,0,138,225,21,7,206,166,0, + 138,225,21,7,206,166,0,138,225,21,0,0,0,0,12,235,166,0,0,0,59,245,166,0, + 59,241,89,0,12,235,125,0,175,251,89,12,235,125,0,175,251,89,12,235,125, + 0,175,251,89,0,12,235,125,0,175,251,89,0,7,206,255,125,0,0,59,238,34,0, + 12,235,125,0,7,206,255,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,175,255,255,232, + 241,89,0,175,255,255,232,241,89,0,175,255,255,232,241,89,0,175,255,255, + 232,241,89,0,175,255,255,232,241,89,12,235,255,255,166,238,34,12,235,255, + 255,225,21,89,255,255,251,89,0,89,255,255,255,201,0,12,235,255,251,89,0, + 0,12,235,255,251,89,0,0,12,235,255,251,89,0,0,12,235,255,251,89,0,59,238, + 34,59,238,34,59,238,34,59,238,34,0,138,255,255,255,125,0,0,59,241,89,0, + 59,241,89,0,12,235,255,247,34,0,0,12,235,255,247,34,0,0,0,12,235,255,247, + 34,0,0,12,235,255,247,34,0,0,12,235,255,247,34,0,0,0,0,0,0,0,0,0,0,0,7, + 206,255,255,225,21,0,0,0,89,255,255,166,241,89,0,89,255,255,166,241,89, + 0,89,255,255,166,241,89,0,0,89,255,255,166,241,89,0,0,138,247,34,0,0,59, + 245,166,255,255,166,0,0,0,138,247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,215,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,232,89,0,0,0,59,238,34,0,0,0,0,0, + 12,232,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,12,235,255,125,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,138,225,21,0,0,0,59,238,34,0,0,0,0,0,138,225,21,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127, + 127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,127,127,127,0,127,127, + 127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127, + 127,127,127,127,0,127,127,127,127,127,127,0,127,127,0,127,127,0,127,127, + 0,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127, + 127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + + +// Large font anti-aliased +const int FONT2AA_BM_W = 276; +const int FONT2AA_BM_H = 120; +static const unsigned char s_Font2AA[] = +{ + 127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, + 4,4,4,0,0,0,0,0,0,0,0,0,0,0,4,4,4,0,4,4,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,0,0,0,0,0,0,0,0, + 0,0,0,4,4,4,0,4,4,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,59,245,125,175,225,21, + 0,0,0,0,0,0,0,0,0,0,0,0,0,138,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,59,241,89,0,0,12,235,201,89,255,166,0,0,0,0,0,172,89,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,225,21,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,0, + 0,0,0,0,0,0,0,0,0,0,4,4,4,0,4,4,0,0,0,0,0,127,0,0,0,0,0,138,247,34,0,12, + 232,89,138,225,21,0,0,0,0,138,125,7,199,34,0,0,0,0,138,125,0,0,0,0,138, + 255,255,201,0,0,0,59,215,21,0,0,0,0,59,245,255,255,166,0,0,0,59,241,89, + 0,7,206,201,0,0,89,251,89,0,59,215,21,172,89,59,192,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,166,0,0,138,255,251,89,0,0,0,0,0, + 138,201,0,0,0,7,206,255,255,255,166,0,0,7,206,255,255,255,201,0,0,0,0,0, + 0,138,251,89,0,0,175,255,255,255,255,225,21,0,0,12,235,255,255,125,89,255, + 255,255,255,255,251,89,0,12,235,255,255,225,21,0,0,59,245,255,255,166,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,59,245,255,255,251,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, + 4,4,4,0,0,0,0,0,0,0,0,0,0,0,4,4,4,0,4,4,0,0,0,0,0,127,0,0,0,0,0,89,247, + 34,0,12,232,89,138,201,0,0,0,0,7,202,89,59,215,21,0,0,12,235,255,255,255, + 166,0,59,241,89,12,235,125,0,0,172,89,0,0,0,0,7,206,166,0,89,251,89,0,0, + 12,228,34,0,89,247,34,0,0,0,175,201,0,0,89,251,191,194,247,34,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,232,89,0,175,201,0,12,235, + 125,0,0,138,255,255,201,0,0,0,12,182,0,0,59,245,125,0,12,206,21,0,12,235, + 166,0,0,0,0,89,255,251,89,0,0,175,201,0,0,0,0,0,0,89,255,125,0,0,0,0,0, + 0,0,0,89,251,89,12,235,166,0,7,206,201,0,59,245,125,0,12,235,166,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,89,166,0,0,138,251,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,0, + 0,0,0,0,0,0,0,0,0,0,4,4,4,0,4,4,0,0,0,0,0,127,0,0,0,0,0,89,247,34,0,12, + 228,34,89,201,0,0,0,0,12,206,21,89,166,0,0,12,235,125,138,125,59,192,0, + 89,247,34,7,206,166,0,89,201,0,0,0,0,0,12,235,125,0,12,232,89,0,0,12,228, + 34,0,175,201,0,0,0,0,59,241,89,0,0,7,206,166,0,0,0,0,0,0,0,138,166,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,225,21,59,241,89,0,0,138,225,21,0, + 0,0,175,201,0,0,0,0,0,0,0,7,206,201,0,0,0,0,0,0,175,201,0,0,0,59,241,132, + 241,89,0,0,175,201,0,0,0,0,0,7,206,166,0,0,0,0,0,0,0,0,7,206,201,0,59,241, + 89,0,0,138,225,21,138,225,21,0,0,138,225,21,89,255,125,0,0,89,255,125,0, + 0,0,0,0,0,0,0,138,225,21,0,0,0,0,0,0,0,0,0,0,0,138,201,0,0,0,0,0,0,0,0, + 0,0,0,59,241,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,0,0,0,0,0, + 0,0,0,0,0,0,4,4,4,0,4,4,0,0,0,0,0,127,0,0,0,0,0,89,247,34,0,0,0,0,0,0,0, + 0,89,255,255,255,255,255,255,255,125,59,238,34,138,125,0,0,0,89,247,34, + 7,206,166,7,202,89,0,0,0,0,0,0,175,225,21,138,225,21,0,0,0,0,0,12,235,125, + 0,0,0,0,7,206,125,0,89,251,191,194,247,34,0,0,0,0,0,138,166,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,138,166,0,89,247,34,0,0,89,247,34,0,0,0,175,201, + 0,0,0,0,0,0,0,12,235,166,0,0,0,0,0,59,245,125,0,0,12,235,125,59,241,89, + 0,0,175,201,0,0,0,0,0,59,241,89,0,0,0,0,0,0,0,0,89,247,34,0,12,235,201, + 0,0,175,201,0,138,225,21,0,0,89,247,34,89,255,125,0,0,89,255,125,0,0,0, + 0,0,12,235,255,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,175,255,251,89,0,0,0,0, + 0,0,0,0,138,247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,0,0,0, + 0,0,0,0,0,0,0,0,4,4,4,0,4,4,0,0,0,0,0,127,0,0,0,0,0,89,247,34,0,0,0,0,0, + 0,0,0,0,0,175,125,7,199,34,0,0,12,235,166,138,125,0,0,0,59,241,89,12,235, + 125,89,201,12,235,255,251,89,0,0,7,206,255,166,0,59,241,89,0,0,0,59,238, + 34,0,0,0,0,0,175,166,59,215,21,172,89,59,192,0,0,0,0,0,138,166,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,125,0,138,247,34,0,0,89,247,34,0,0,0, + 175,201,0,0,0,0,0,0,0,89,251,89,0,0,0,89,255,247,34,0,0,7,206,166,0,59, + 241,89,0,0,175,255,255,255,225,21,0,89,251,226,255,255,247,34,0,0,0,7,206, + 166,0,0,0,12,235,255,255,201,0,0,89,255,125,0,0,138,247,34,0,0,0,0,0,0, + 0,0,0,0,0,89,255,255,166,0,0,0,0,0,175,255,255,255,255,255,255,225,21,0, + 0,0,0,59,245,255,201,0,0,0,0,0,175,251,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,4,4,4,0,4,4,0,0,0,0,0,127,0,0,0, + 0,0,89,225,21,0,0,0,0,0,0,0,0,0,7,199,34,59,215,21,0,0,0,59,245,255,255, + 201,0,0,0,138,255,255,201,12,228,34,175,166,0,138,201,0,12,235,125,89,255, + 125,59,241,89,0,0,0,59,238,34,0,0,0,0,0,138,201,0,0,0,172,89,0,0,0,7,206, + 255,255,255,255,255,255,247,34,0,0,0,0,89,255,255,255,166,0,0,0,0,0,59, + 238,34,0,138,247,34,0,0,89,247,34,0,0,0,175,201,0,0,0,0,0,0,59,245,166, + 0,0,0,0,0,0,12,235,166,0,138,201,0,0,59,241,89,0,0,0,0,0,12,235,201,0,138, + 251,89,0,0,175,225,21,0,0,89,247,34,0,0,7,206,166,0,175,255,166,0,0,89, + 255,255,255,223,247,34,0,0,0,0,0,0,0,0,0,0,175,247,34,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,225,21,0,0,175,225,21,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,4,4,4,0,4,4,0,0,0, + 0,0,127,0,0,0,0,0,59,215,21,0,0,0,0,0,0,0,12,235,255,255,255,255,255,255, + 166,0,0,0,0,138,125,175,225,21,0,0,0,0,0,138,166,7,206,125,0,89,247,34, + 138,225,21,0,89,255,166,215,21,0,0,0,59,238,34,0,0,0,0,0,138,201,0,0,0, + 0,0,0,0,0,0,0,0,0,138,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,201,0, + 0,89,247,34,0,0,89,247,34,0,0,0,175,201,0,0,0,0,0,12,235,201,0,0,0,0,0, + 0,0,0,138,225,21,175,255,255,255,255,255,255,125,0,0,0,0,0,138,247,34,89, + 247,34,0,0,59,241,89,0,7,206,166,0,0,0,138,247,34,0,0,138,247,34,0,0,0, + 0,0,138,225,21,0,0,0,0,0,0,0,0,0,0,0,89,255,255,166,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,59,245,255,201,0,0,0,0,175,201,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,4,4,4,0,4,4,0,0,0,0,0, + 127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,166,0,175,125,0,0,0,0,0,0,138, + 125,89,247,34,0,0,0,0,12,228,34,7,206,125,0,89,247,34,138,247,34,0,0,89, + 255,166,0,0,0,0,59,238,34,0,0,0,0,0,175,166,0,0,0,0,0,0,0,0,0,0,0,0,138, + 166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,125,0,0,59,241,89,0,0,138,225, + 21,0,0,0,175,201,0,0,0,0,12,235,201,0,0,0,0,0,0,0,0,0,138,225,21,0,0,0, + 0,59,241,89,0,0,0,0,0,0,138,225,21,59,241,89,0,0,59,241,89,0,89,247,34, + 0,0,0,138,247,34,0,0,89,251,89,0,0,0,0,7,206,166,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,12,235,255,225,21,0,0,175,255,255,255,255,255,255,225,21,0,0,175, + 255,251,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,4,4,4,0,4,4,0,0,0,0,0,127,0,0,0,0,0,89,247, + 34,0,0,0,0,0,0,0,0,0,175,125,7,199,34,0,0,0,89,201,0,138,125,175,201,0, + 0,0,0,0,138,166,0,0,175,166,0,138,201,0,89,255,166,0,0,89,255,255,125,0, + 0,0,12,235,125,0,0,0,0,7,206,125,0,0,0,0,0,0,0,0,0,0,0,0,138,166,0,0,0, + 0,0,138,255,125,0,0,0,0,0,0,175,247,34,59,238,34,0,0,0,175,201,0,12,235, + 125,0,0,0,0,175,201,0,0,0,12,235,166,0,0,0,0,0,89,166,0,0,59,245,166,0, + 0,0,0,0,59,241,89,0,59,215,21,0,12,235,166,0,7,206,201,0,0,175,225,21,7, + 206,166,0,0,0,0,59,245,166,0,7,206,225,21,0,0,0,0,175,225,21,0,89,255,125, + 0,0,12,235,201,0,0,0,0,0,0,0,0,138,225,21,0,0,0,0,0,0,0,0,0,0,0,138,201, + 0,0,0,0,0,0,0,0,0,175,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,4,4,4,0,4,4,0,0,0,0,0,127,0,0,0,0,0,89,247, + 34,0,0,0,0,0,0,0,0,7,199,34,59,215,21,0,0,0,12,235,255,255,255,201,0,0, + 0,0,0,59,215,21,0,0,12,235,255,251,89,0,0,89,255,255,255,201,0,89,255,0, + 0,0,0,175,201,0,0,0,0,59,238,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175, + 201,0,0,0,0,0,0,0,175,247,34,138,201,0,0,0,0,0,138,255,251,89,0,0,0,138, + 255,255,255,255,166,0,89,255,255,255,255,255,247,34,12,235,255,255,255, + 166,0,0,0,0,0,0,59,241,89,0,12,235,255,255,255,166,0,0,0,7,206,255,255, + 225,21,0,138,247,34,0,0,0,0,0,59,245,255,255,201,0,0,0,175,255,255,201, + 0,0,0,89,255,125,0,0,89,251,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,175,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,4,4,4,4,4,4,4,4,52,4,4,4,4,4,4,4,4,4,0,4,4,0,0,0,0,0,127,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,125,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,247,34,0,0,0,175,201,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,232,89,0,0,0,0,0,0,0,0,0,0,175,125, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,4,4,0,0,0,0,0,127,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,125,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,201,0,0,89,251,89,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,201,0,0,0,0,0,0,0,0,0,0,12,232,89, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,232,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,4,4,0,0,0,0,0,127,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,201,0,0,201,201,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,127,127,127,0,127,127,127, + 127,0,127,127,127,127,127,0,127,127,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,127,0,127,127,0,127,127,127,127,0,127,127, + 127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127, + 127,0,127,127,127,0,127,127,127,127,0,127,127,127,0,127,127,127,127,0,127, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,255,255, + 201,0,138,201,0,0,0,0,89,255,255,255,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,127,0,0,0,0,175,255,255,255,247,34,0,0,0,0,0,7,206,251,89,0,0,12,0, + 235,255,255,255,255,201,0,0,0,0,59,245,255,255,255,201,12,0,235,255,255, + 255,255,166,0,0,0,12,235,255,255,255,255,255,127,12,235,255,255,255,255, + 251,89,0,0,12,235,255,255,255,251,89,12,235,166,0,0,0,12,235,125,89,255, + 255,255,201,0,0,175,255,255,225,21,12,235,166,0,0,7,206,251,102,0,235,166, + 0,0,0,0,12,235,251,89,0,0,0,89,255,225,21,12,235,251,89,0,0,12,235,125, + 0,0,0,138,255,255,166,0,0,0,12,235,255,255,255,251,89,0,0,0,0,175,255,255, + 201,0,0,0,12,235,255,255,255,251,89,0,0,0,12,235,255,255,255,247,47,235, + 255,255,255,255,255,255,255,138,0,235,125,0,0,0,59,245,133,206,166,0,0, + 0,0,59,245,255,133,201,0,0,0,138,251,89,0,0,12,235,133,206,247,34,0,0,0, + 175,229,216,225,21,0,0,0,138,247,124,255,255,255,255,255,255,125,7,206, + 125,0,0,0,59,238,34,0,0,0,0,0,12,235,125,0,0,0,0,175,247,34,0,0,0,0,0,0, + 0,0,0,0,127,0,0,59,245,166,0,0,0,59,245,166,0,0,0,0,59,245,255,166,0,0, + 12,0,235,166,0,0,59,245,125,0,0,138,255,125,0,0,7,202,102,0,235,166,0,0, + 59,245,225,21,0,12,235,166,0,0,0,0,0,12,235,166,0,0,0,0,0,0,89,255,166, + 0,0,0,89,127,12,235,166,0,0,0,12,235,125,0,12,235,125,0,0,0,0,0,138,225, + 21,12,235,166,0,7,206,225,21,12,0,235,166,0,0,0,0,12,235,255,166,0,0,7, + 206,255,225,21,12,235,255,201,0,0,12,235,125,0,59,245,166,0,0,138,251,89, + 0,12,235,166,0,0,138,251,89,0,89,255,125,0,0,89,255,125,0,12,235,166,0, + 0,138,251,89,0,12,235,166,0,0,7,202,89,0,0,0,138,225,21,0,0,12,0,235,125, + 0,0,0,59,245,125,138,225,21,0,0,0,138,225,151,34,247,34,0,0,175,255,125, + 0,0,89,247,34,12,235,166,0,0,89,247,34,59,245,125,0,0,59,245,125,0,0,0, + 0,0,138,247,34,7,206,125,0,0,0,7,206,125,0,0,0,0,0,12,235,125,0,0,0,138, + 225,187,201,0,0,0,0,0,0,0,0,0,0,127,0,12,232,89,0,0,0,0,0,12,232,89,0,0, + 0,138,225,151,225,21,0,12,0,235,166,0,0,12,235,166,0,12,235,166,0,0,0,0, + 0,12,0,235,166,0,0,0,12,235,166,0,12,235,166,0,0,0,0,0,12,235,166,0,0,0, + 0,0,12,235,166,0,0,0,0,0,0,12,235,166,0,0,0,12,235,125,0,12,235,125,0,0, + 0,0,0,138,225,21,12,235,166,0,175,225,21,0,12,0,235,166,0,0,0,0,12,235, + 166,238,34,0,59,215,187,225,21,12,235,166,245,125,0,12,235,125,12,235,125, + 0,0,0,0,138,247,34,12,235,166,0,0,12,235,166,12,235,125,0,0,0,0,138,247, + 34,12,235,166,0,0,12,235,166,0,89,247,34,0,0,0,0,0,0,0,0,138,225,21,0,0, + 12,0,235,125,0,0,0,59,245,125,59,241,89,0,0,7,206,166,59,0,241,89,0,12, + 232,194,201,0,0,138,225,21,0,89,251,89,12,235,166,0,0,138,247,34,7,206, + 201,0,0,0,0,0,59,245,125,0,7,206,125,0,0,0,0,138,201,0,0,0,0,0,12,235,125, + 0,0,59,241,89,12,235,166,0,0,0,0,0,0,0,0,0,127,0,175,166,0,59,245,255,255, + 247,34,138,201,0,0,7,206,166,59,241,89,0,12,0,235,166,0,0,89,251,89,0,89, + 247,34,0,0,0,0,0,12,0,235,166,0,0,0,0,138,225,21,12,235,166,0,0,0,0,0,12, + 235,166,0,0,0,0,0,89,247,34,0,0,0,0,0,0,12,235,166,0,0,0,12,235,125,0,12, + 235,125,0,0,0,0,0,138,225,21,12,235,166,175,247,34,0,0,12,0,235,166,0,0, + 0,0,12,235,133,206,166,0,175,166,175,225,21,12,235,125,138,225,21,12,235, + 125,89,247,34,0,0,0,0,59,245,125,12,235,166,0,0,12,235,166,89,247,34,0, + 0,0,0,59,245,125,12,235,166,0,0,12,235,125,0,89,255,125,0,0,0,0,0,0,0,0, + 138,225,21,0,0,12,0,235,125,0,0,0,59,245,125,7,206,201,0,0,59,241,89,7, + 0,206,166,0,59,215,111,225,21,7,206,166,0,0,0,175,225,187,225,21,0,0,12, + 235,166,89,247,34,0,0,0,0,7,206,201,0,0,7,206,125,0,0,0,0,89,225,21,0,0, + 0,0,12,235,125,0,12,235,166,0,0,59,241,89,0,0,0,0,0,0,0,0,127,0,202,89, + 12,235,125,0,12,228,34,59,215,0,0,59,241,89,7,206,166,0,12,0,235,255,255, + 255,255,166,0,0,138,225,21,0,0,0,0,0,12,0,235,166,0,0,0,0,89,247,34,12, + 235,255,255,255,255,247,34,12,235,255,255,255,255,247,0,163,225,21,0,0, + 0,0,0,0,12,235,255,255,255,255,255,255,125,0,12,235,125,0,0,0,0,0,138,225, + 21,12,235,255,247,34,0,0,0,12,0,235,166,0,0,0,0,12,235,125,89,225,34,228, + 34,175,225,21,12,235,125,12,235,125,12,235,125,138,225,21,0,0,0,0,12,235, + 166,12,235,166,0,0,175,247,34,138,225,21,0,0,0,0,12,235,166,12,235,166, + 0,0,175,225,21,0,0,175,255,255,225,21,0,0,0,0,0,138,225,21,0,0,12,0,235, + 125,0,0,0,59,245,125,0,138,247,34,0,138,225,21,0,0,175,201,0,138,201,12, + 232,89,12,235,125,0,0,0,12,235,251,89,0,0,0,0,89,255,255,125,0,0,0,0,0, + 138,247,34,0,0,7,206,125,0,0,0,0,12,232,89,0,0,0,0,12,235,125,7,206,201, + 0,0,0,0,138,251,89,0,0,0,0,0,0,0,127,7,228,34,89,225,21,0,12,228,34,12, + 228,0,0,138,225,21,0,138,225,21,12,0,235,166,0,0,12,235,201,0,138,225,21, + 0,0,0,0,0,12,0,235,166,0,0,0,0,89,247,34,12,235,166,0,0,0,0,0,12,235,166, + 0,0,0,0,0,138,225,21,0,12,235,255,255,127,12,235,166,0,0,0,12,235,125,0, + 12,235,125,0,0,0,0,0,138,225,21,12,235,229,216,225,21,0,0,12,0,235,166, + 0,0,0,0,12,235,125,12,235,223,201,0,175,225,21,12,235,125,0,138,225,34, + 235,125,138,225,21,0,0,0,0,12,235,166,12,235,255,255,255,247,34,0,138,225, + 21,0,0,0,0,12,235,166,12,235,255,255,255,166,0,0,0,0,0,0,89,255,255,247, + 34,0,0,0,138,225,21,0,0,12,0,235,125,0,0,0,59,245,125,0,59,245,125,7,206, + 166,0,0,0,89,247,34,175,125,7,206,125,89,247,34,0,0,0,12,235,251,89,0,0, + 0,0,7,206,225,21,0,0,0,0,59,245,125,0,0,0,7,206,125,0,0,0,0,0,175,166,0, + 0,0,0,12,235,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,12,228,34,89,225, + 21,0,12,228,34,59,215,0,7,206,255,255,255,255,251,89,12,0,235,166,0,0,0, + 138,247,0,124,247,34,0,0,0,0,0,12,0,235,166,0,0,0,0,138,225,21,12,235,166, + 0,0,0,0,0,12,235,166,0,0,0,0,0,89,247,34,0,0,0,0,175,127,12,235,166,0,0, + 0,12,235,125,0,12,235,125,0,0,0,0,0,138,225,21,12,235,166,59,245,201,0, + 0,12,0,235,166,0,0,0,0,12,235,125,0,138,251,89,0,175,225,21,12,235,125, + 0,12,235,138,235,125,89,247,34,0,0,0,0,59,245,125,12,235,166,0,0,0,0,0, + 89,247,34,0,0,0,0,59,245,125,12,235,166,0,175,247,34,0,0,0,0,0,0,0,59,245, + 166,0,0,0,138,225,21,0,0,12,0,235,125,0,0,0,59,241,89,0,7,206,201,59,241, + 89,0,0,0,59,241,102,232,89,0,138,201,138,225,21,0,0,0,175,201,175,225,21, + 0,0,0,0,175,225,21,0,0,0,7,206,201,0,0,0,0,7,206,125,0,0,0,0,0,89,225,21, + 0,0,0,12,235,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,12,232,89,59,241, + 89,0,89,247,34,89,201,0,59,241,89,0,0,7,206,166,12,0,235,166,0,0,0,138, + 225,0,81,245,166,0,0,0,0,0,12,0,235,166,0,0,0,12,235,166,0,12,235,166,0, + 0,0,0,0,12,235,166,0,0,0,0,0,12,235,166,0,0,0,0,175,127,12,235,166,0,0, + 0,12,235,125,0,12,235,125,0,0,0,0,0,138,225,21,12,235,166,0,89,255,166, + 0,12,0,235,166,0,0,0,0,12,235,125,0,12,182,0,0,175,225,21,12,235,125,0, + 0,138,232,245,125,12,235,125,0,0,0,0,138,247,34,12,235,166,0,0,0,0,0,12, + 235,125,0,0,0,0,138,247,34,12,235,166,0,7,206,225,21,0,0,0,0,0,0,12,235, + 166,0,0,0,138,225,21,0,0,12,0,235,166,0,0,0,89,251,89,0,0,138,247,163,225, + 21,0,0,0,7,206,200,215,21,0,89,225,187,166,0,0,0,89,251,89,12,235,166,0, + 0,0,0,175,225,21,0,0,0,138,247,34,0,0,0,0,7,206,125,0,0,0,0,0,12,232,89, + 0,0,0,12,235,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,12,175,166,0,89, + 255,255,210,235,255,255,125,0,138,225,21,0,0,0,138,247,47,0,235,166,0,0, + 59,245,166,0,0,138,255,125,0,0,7,202,102,0,235,166,0,0,12,235,225,21,0, + 12,235,166,0,0,0,0,0,12,235,166,0,0,0,0,0,0,138,255,125,0,0,0,175,127,12, + 235,166,0,0,0,12,235,125,0,12,235,125,0,0,0,0,7,206,201,0,12,235,166,0, + 0,138,255,125,12,0,235,166,0,0,0,12,0,235,125,0,0,0,0,0,175,225,21,12,235, + 125,0,0,12,235,255,125,0,89,255,125,0,0,89,251,89,0,12,235,166,0,0,0,0, + 0,0,89,255,125,0,0,89,255,125,0,12,235,166,0,0,12,235,201,0,138,166,0,0, + 0,138,251,89,0,0,0,138,225,21,0,0,0,0,138,247,34,0,7,206,225,21,0,0,12, + 235,255,166,0,0,0,0,0,175,255,201,0,0,12,235,255,125,0,0,12,235,166,0,0, + 138,251,89,0,0,0,175,225,21,0,0,89,251,89,0,0,0,0,0,7,206,125,0,0,0,0,0, + 0,175,166,0,0,0,12,235,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,59,241, + 89,0,0,0,0,0,0,0,0,7,206,166,0,0,0,0,59,245,138,0,235,255,255,255,255,125, + 0,0,0,0,59,245,255,255,255,201,12,0,235,255,255,255,255,166,0,0,0,12,235, + 255,255,255,255,255,127,12,235,166,0,0,0,0,0,0,0,59,245,255,255,255,225, + 21,12,235,166,0,0,0,12,235,125,89,255,255,255,210,127,235,255,255,225,21, + 0,12,235,166,0,0,0,175,255,127,0,235,255,255,255,247,47,0,235,125,0,0,0, + 0,0,175,225,21,12,235,125,0,0,0,138,255,125,0,0,0,175,255,255,201,0,0,0, + 12,235,166,0,0,0,0,0,0,0,0,175,255,255,201,0,0,0,12,235,166,0,0,0,89,255, + 225,34,235,255,255,255,247,34,0,0,0,0,138,225,21,0,0,0,0,0,138,255,255, + 255,201,0,0,0,0,0,175,251,89,0,0,0,0,0,89,255,166,0,0,7,206,247,34,0,7, + 206,225,21,0,0,7,206,225,21,0,0,175,225,21,0,0,138,255,255,255,255,255, + 255,166,7,206,125,0,0,0,0,0,0,138,201,0,0,0,12,235,125,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,127,0,0,89,255,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,201,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,7,206,125,0,0,0,0,0,0,59,238,34,0,0,12,235,125,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,127,0,0,0,7,206,255,255,255,225,21,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,251,89,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,7,206,125,0,0,0,0,0,0,7,206,125,0,0,12,235,125,0,0,0, + 0,0,0,0,0,0,0,245,255,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138, + 255,255,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,255,255,201,0,0,0,0,0,0,89,89,255,255, + 255,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,127,127,127,127,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127, + 0,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127, + 127,0,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,59,245,166,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,89,247,34,0,0,0,0,0,0,0,0,0,0,12,235, + 125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,225,21,0,0,0,0,0,0,0,0,0,12,235, + 255,247,0,0,0,0,0,0,0,12,12,235,125,0,0,0,0,0,0,0,0,0,0,0,0,12,235,125, + 0,0,0,0,0,12,235,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,255,251,89,0,7,206,125,0,89,255,251,89, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,84,84,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,7,206, + 125,0,0,0,0,0,0,0,0,0,0,12,235,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138, + 225,21,0,0,0,0,0,0,0,0,0,175,201,0,0,0,0,0,0,0,0,0,12,12,235,125,0,0,0, + 0,0,59,245,102,0,89,247,34,12,235,125,0,0,0,0,0,12,235,125,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 59,241,89,0,0,0,7,206,125,0,0,0,138,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 4,4,4,4,4,4,4,4,100,252,252,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12, + 235,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,225,21,0,0,0,0,0,0,0,12,0, + 235,125,0,0,0,0,0,0,0,0,0,0,12,235,125,0,0,0,0,0,0,0,0,0,0,0,0,12,235,125, + 0,0,0,0,0,12,235,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235, + 125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,247,34,0,0,0,7,206,125,0,0,0,59,238, + 34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,20,236,252,164,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0, + 0,0,0,0,0,0,0,12,235,255,255,255,166,0,12,235,166,245,255,247,34,0,0,12, + 235,255,255,247,34,0,34,235,255,255,255,225,21,0,12,235,255,255,225,29, + 0,206,255,255,255,127,0,12,235,255,255,255,225,21,12,235,138,235,255,247, + 34,0,12,235,102,175,255,247,34,12,235,125,0,59,245,201,0,12,235,125,12, + 0,235,166,245,255,225,29,206,255,251,89,0,12,235,138,235,255,247,34,0,0, + 12,235,255,255,201,0,0,12,235,166,245,255,251,89,0,0,12,235,255,255,255, + 225,21,12,235,138,235,247,127,34,138,255,255,255,206,0,206,255,255,255, + 201,59,241,89,0,0,89,247,42,206,201,0,0,0,138,225,187,201,0,0,138,225,21, + 0,59,241,187,226,247,34,0,7,206,206,206,201,0,0,0,138,225,151,255,255,255, + 255,247,0,0,89,247,34,0,0,0,7,206,125,0,0,0,59,238,34,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,4,4,4,4,4,4,4,148,252,236,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,12,206, + 21,0,59,245,125,12,235,247,34,0,138,225,21,12,235,166,0,0,134,102,0,235, + 166,0,0,138,225,21,12,235,125,0,0,175,201,12,0,235,125,0,0,12,235,166,0, + 0,138,225,21,12,235,247,34,0,175,201,0,12,235,102,0,89,247,34,12,235,125, + 12,235,166,0,0,12,235,125,12,0,235,225,21,12,235,251,89,0,175,201,0,12, + 235,247,34,0,175,201,0,12,235,166,0,7,206,201,0,12,235,225,21,0,175,225, + 21,12,235,166,0,0,138,225,21,12,235,247,34,0,0,89,247,34,0,12,206,34,0, + 235,125,0,0,59,241,89,0,0,89,247,34,89,247,34,0,7,206,166,138,225,21,7, + 206,251,89,0,89,225,138,34,235,201,0,138,225,21,89,247,34,0,7,206,166,0, + 0,0,7,206,166,0,0,89,225,21,0,0,0,7,206,125,0,0,0,59,241,89,0,0,0,0,138, + 251,89,0,0,7,202,89,0,0,4,4,4,4,4,4,52,252,252,108,4,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0, + 0,0,0,0,0,0,0,0,7,206,102,12,235,125,0,0,59,241,89,138,225,21,0,0,0,34, + 89,225,21,0,0,138,225,21,89,225,21,0,0,89,247,47,0,235,125,0,0,89,225,21, + 0,0,138,225,21,12,235,125,0,0,89,247,34,12,235,102,0,89,247,34,12,235,138, + 235,166,0,0,0,12,235,125,12,0,235,125,0,7,206,166,0,0,138,225,21,12,235, + 125,0,0,89,247,34,138,225,21,0,0,59,238,34,12,235,125,0,0,59,241,89,89, + 225,21,0,0,138,225,21,12,235,125,0,0,0,138,225,21,0,0,0,12,0,235,125,0, + 0,59,241,89,0,0,89,247,34,12,235,125,0,59,241,89,59,238,34,12,228,198,166, + 0,175,166,59,0,89,251,132,241,89,0,12,235,125,0,59,238,34,0,0,0,138,225, + 21,0,12,235,166,0,0,0,0,7,206,125,0,0,0,0,175,201,0,0,0,138,166,12,235, + 166,0,12,232,89,0,0,12,84,4,4,4,4,204,252,204,4,4,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0, + 0,0,0,59,245,255,255,255,102,12,235,125,0,0,12,235,125,175,201,0,0,0,0, + 0,175,201,0,0,0,138,225,21,175,255,255,255,255,255,247,47,0,235,125,0,0, + 175,201,0,0,0,138,225,21,12,235,125,0,0,89,247,34,12,235,102,0,89,247,34, + 12,235,255,225,21,0,0,0,12,235,125,12,0,235,125,0,7,206,166,0,0,138,225, + 21,12,235,125,0,0,89,247,34,175,201,0,0,0,12,232,89,12,235,125,0,0,12,235, + 125,175,201,0,0,0,138,225,21,12,235,125,0,0,0,59,245,255,247,34,0,12,0, + 235,125,0,0,59,241,89,0,0,89,247,34,0,175,201,0,138,201,0,12,235,125,89, + 201,89,225,29,206,125,12,0,0,175,255,166,0,0,0,175,201,0,138,201,0,0,0, + 89,251,89,0,138,247,34,0,0,0,0,0,7,206,125,0,0,0,0,0,89,255,125,7,202,89, + 0,89,251,89,89,201,0,0,0,172,252,84,4,4,100,252,252,60,4,4,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0, + 0,0,0,0,0,0,0,89,255,166,0,7,206,102,12,235,125,0,0,12,235,125,175,201, + 0,0,0,0,0,175,201,0,0,0,138,225,21,175,201,0,0,0,0,0,12,0,235,125,0,0,175, + 201,0,0,0,138,225,21,12,235,125,0,0,89,247,34,12,235,102,0,89,247,34,12, + 235,138,235,201,0,0,0,12,235,125,12,0,235,125,0,7,206,166,0,0,138,225,21, + 12,235,125,0,0,89,247,34,175,201,0,0,0,12,232,89,12,235,125,0,0,12,235, + 125,175,201,0,0,0,138,225,21,12,235,125,0,0,0,0,0,138,255,255,201,12,0, + 235,125,0,0,59,241,89,0,0,89,247,34,0,89,247,42,206,125,0,0,175,166,175, + 125,12,232,102,232,89,0,0,0,175,255,201,0,0,0,89,247,47,235,125,0,0,12, + 235,166,0,0,0,12,235,125,0,0,0,0,7,206,125,0,0,0,0,138,201,0,0,12,232,89, + 0,0,59,245,225,21,0,0,0,196,252,244,60,20,236,252,156,4,4,4,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0, + 0,0,0,0,0,0,0,175,201,0,0,7,206,102,12,235,125,0,0,59,241,89,138,225,21, + 0,0,0,34,89,225,21,0,0,138,225,21,138,247,34,0,0,0,0,12,0,235,125,0,0,138, + 225,21,0,0,138,225,21,12,235,125,0,0,89,247,34,12,235,102,0,89,247,34,12, + 235,125,59,245,125,0,0,12,235,125,12,0,235,125,0,7,206,166,0,0,138,225, + 21,12,235,125,0,0,89,247,34,138,225,21,0,0,89,247,34,12,235,125,0,0,59, + 241,89,138,225,21,0,0,138,225,21,12,235,125,0,0,0,0,0,0,0,89,247,47,0,235, + 125,0,0,59,241,89,0,0,89,247,34,0,12,235,166,238,34,0,0,138,210,228,34, + 0,175,166,215,21,0,0,89,251,159,251,89,0,0,12,235,191,247,34,0,0,175,225, + 21,0,0,0,0,138,225,21,0,0,0,7,206,125,0,0,0,12,232,89,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,20,220,252,236,180,252,244,28,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0, + 138,225,21,0,138,255,102,12,235,125,0,7,206,201,0,12,235,166,0,0,134,132, + 0,245,125,0,59,245,225,21,12,235,201,0,0,12,206,34,0,235,125,0,0,59,245, + 125,0,12,235,225,21,12,235,125,0,0,89,247,34,12,235,102,0,89,247,34,12, + 235,125,0,138,251,89,0,12,235,125,12,0,235,125,0,7,206,166,0,0,138,225, + 21,12,235,125,0,0,89,247,34,12,235,166,0,7,206,201,0,12,235,125,0,7,206, + 201,0,59,245,125,0,12,235,225,21,12,235,125,0,0,0,138,125,0,0,138,225,29, + 0,206,166,0,0,7,206,166,0,59,245,247,34,0,0,175,255,201,0,0,0,59,245,225, + 21,0,89,255,201,0,0,12,235,166,0,175,225,21,0,0,138,255,166,0,0,89,251, + 89,0,0,0,0,0,89,247,34,0,0,0,7,206,125,0,0,0,59,238,34,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,4,36,236,252,252,252,108,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0, + 7,206,255,255,171,206,102,12,232,226,255,255,225,21,0,0,12,235,255,255, + 247,34,0,89,255,255,247,163,225,21,0,7,206,255,255,247,34,12,0,235,125, + 0,0,0,89,255,255,247,163,225,21,12,235,125,0,0,89,247,34,12,235,102,0,89, + 247,34,12,235,125,0,0,175,251,34,0,235,125,12,0,235,125,0,7,206,166,0,0, + 138,225,21,12,235,125,0,0,89,247,34,0,12,235,255,255,201,0,0,12,235,255, + 255,255,225,21,0,0,89,255,255,247,163,225,21,12,235,125,0,0,0,89,255,255, + 255,247,34,0,0,89,255,255,127,0,59,245,255,225,111,247,34,0,0,59,245,125, + 0,0,0,12,235,166,0,0,59,245,125,7,0,206,225,21,0,12,235,201,0,0,59,241, + 89,0,0,175,255,255,255,255,247,0,0,89,247,34,0,0,0,7,206,125,0,0,0,59,238, + 34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,60,252,252,204,4,4,4,4,4,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,201,0,0,0,0,0,0,0,0,0,0,0,0,0, + 89,247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,12,235,125,0,0,0,0,0,0,0,0,0,0,138,225,21,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,138,225,21,0,0,0,0,0,0,0,0,0,0,89,247,34,0,0,0,7, + 206,125,0,0,0,59,238,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,76,252,60,4,4, + 4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,199,34,0,12,232,89,0,0, + 0,0,0,0,0,0,0,0,0,0,0,138,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,125,0,0,0,0,0,0,0,0,0, + 0,138,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,166,0,0,0,0,0,0,0,0, + 0,0,0,12,235,125,0,0,0,7,206,125,0,0,0,138,225,21,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,76,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 12,235,255,247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,255,251,89,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235, + 125,0,0,0,0,0,0,0,0,0,0,138,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89, + 247,34,0,0,0,0,0,0,0,0,0,0,0,0,89,255,251,89,0,7,206,125,0,89,255,247,34, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127, + 127,127,127,127,0,127,127,0,127,127,127,0,127,127,127,127,127,127,127,0, + 127,127,127,0,127,127,127,127,127,127,127,127,127,127,127,0,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127, + 127,127,0,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,0,127,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,127,127,127,127,127,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,125,0,175,166,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,206,125,0,175,166, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,245,225,21,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,255,125,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,255,125,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,166,0,138,201,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,166,0,138,201,0,7,206,166,12,235, + 125,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,125,0,0,0,0,0,175,125, + 0,0,0,0,0,175,171,206,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,255,125,0, + 31,206,130,255,166,175,247,34,0,0,89,255,125,175,247,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,245,247,34,138,166,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,59,241,132,238,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,59,241,132,238,34,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0, + 59,245,255,255,255,125,0,12,235,255,255,255,255,255,225,21,0,0,0,0,0,0, + 0,0,175,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,125,0,0,0, + 0,0,175,125,0,0,0,0,89,225,21,59,238,34,0,0,138,255,255,201,0,0,0,59,215, + 21,0,0,0,0,0,0,0,0,0,12,235,255,255,255,247,34,0,0,0,0,0,0,0,12,235,255, + 255,255,255,255,255,255,255,251,89,0,12,235,255,255,255,255,255,225,21, + 0,89,255,255,255,255,255,255,125,0,12,235,255,255,255,255,255,225,21,0, + 0,12,235,255,255,255,255,255,225,21,7,206,201,0,50,206,56,255,201,12,235, + 125,0,0,138,225,29,206,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,7,202,89,89,255,225,21,0,89,255,255,255,225,81,245,201,0,138,251, + 89,0,0,138,255,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,255,255, + 255,255,255,225,21,0,0,0,138,255,166,7,206,225,21,0,0,0,138,247,34,0,0, + 0,0,127,0,89,255,125,0,0,0,0,0,12,146,0,0,0,0,0,144,21,0,0,0,0,0,0,0,89, + 247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,125,0,0,0,0,0,175, + 125,0,0,0,0,0,0,0,0,0,0,0,59,241,89,12,235,125,0,0,172,89,0,0,0,0,0,0,0, + 0,0,12,235,166,0,0,7,202,89,0,0,0,0,0,0,89,255,201,0,0,12,235,125,0,0,0, + 0,0,0,12,146,0,0,0,0,0,144,21,0,0,0,0,0,0,138,247,34,0,12,146,0,0,0,0,0, + 144,21,0,0,12,146,0,0,0,0,0,144,21,0,89,225,21,71,157,22,191,225,21,175, + 201,0,7,206,125,59,238,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,175,125,0,59,196,199,47,206,184,89,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,146,0,0,0,0,0,144,21,0,0,0,0, + 0,0,0,59,245,125,0,0,59,245,125,0,0,0,0,0,127,12,235,166,0,0,0,0,0,0,12, + 146,0,0,0,0,0,144,21,0,0,0,0,0,0,0,175,201,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,12,235,255,255,255,255,127,34,235,255,255,255,255,225,21,0, + 0,0,0,0,0,0,0,89,247,34,7,206,166,0,89,201,0,0,0,0,0,0,0,0,0,0,89,247,34, + 0,0,0,0,0,0,0,0,59,115,12,235,166,0,0,0,12,235,125,0,0,0,0,0,0,12,146,0, + 0,0,0,0,144,21,0,0,0,0,0,59,245,125,0,0,12,146,0,0,0,0,0,144,21,0,0,12, + 146,0,0,0,0,0,144,21,0,7,202,89,117,104,0,29,202,89,59,215,21,59,215,21, + 138,201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,175,125,0,59,192,89,223,125,172,89,0,138,255,255,255,201,12,182, + 0,0,0,0,0,175,255,255,125,0,89,255,255,247,34,0,0,12,146,0,0,0,0,0,144, + 21,0,138,255,255,255,255,247,34,138,247,34,7,206,201,0,0,0,0,0,0,127,89, + 251,89,0,0,0,0,0,0,12,146,0,0,0,0,0,144,21,0,0,0,0,0,0,7,206,166,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,125,0,0,0,0,0,175,125,0,0,0, + 0,0,0,0,0,0,0,0,89,247,34,7,206,166,7,202,89,0,0,0,0,0,0,0,0,0,0,89,255, + 125,0,0,0,0,0,0,0,89,255,125,89,247,34,0,0,0,12,235,125,0,0,0,0,0,0,12, + 146,0,0,0,0,0,144,21,0,0,0,0,7,206,201,0,0,0,12,146,0,0,0,0,0,144,21,0, + 0,12,146,0,0,0,0,0,144,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,245, + 255,201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175, + 125,0,59,192,12,228,34,172,89,89,247,34,0,12,206,29,206,201,0,0,7,206,166, + 0,7,206,255,225,21,0,89,247,34,0,12,146,0,0,0,0,0,144,21,0,0,0,0,7,206, + 166,0,12,235,166,89,247,34,0,0,0,0,0,0,127,245,255,255,255,255,255,201, + 0,0,12,146,0,0,0,0,0,144,21,0,0,0,0,0,59,245,255,255,255,127,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,125,0,0,0,0,0,175,125,0,0,0,0,0,0,0, + 0,0,0,0,59,241,89,12,235,125,89,201,12,235,255,251,89,0,89,255,255,225, + 21,0,175,255,255,225,21,0,0,0,89,251,89,0,138,225,21,0,0,0,12,235,255,255, + 255,255,225,21,0,12,146,0,0,0,0,0,144,21,0,0,0,0,138,247,34,0,0,0,12,146, + 0,0,0,0,0,144,21,0,0,12,146,0,0,0,0,0,144,21,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,12,235,255,255,255,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,175,125,0,59,192,0,0,0,172,89,138,225,21,0,0,0, + 0,7,206,225,21,138,225,21,0,0,89,251,89,0,0,12,235,125,0,12,146,0,0,0,0, + 0,144,21,0,0,0,0,138,225,21,0,0,89,255,255,125,0,0,0,0,0,0,0,127,138,225, + 21,0,0,0,0,0,0,12,146,0,0,0,0,0,144,21,0,0,0,0,0,0,59,241,89,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,125,0,0,12,235,255,255,255,255, + 225,21,0,0,0,0,0,0,0,0,0,138,255,255,201,12,228,34,175,166,0,138,201,7, + 206,125,7,206,166,0,0,0,89,255,255,247,34,59,241,89,0,0,138,225,21,0,0, + 0,12,235,125,0,0,0,0,0,0,12,146,0,0,0,0,0,144,21,0,0,0,59,245,125,0,0,0, + 0,12,146,0,0,0,0,0,144,21,0,0,12,146,0,0,0,0,0,144,21,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,59,245,255,255,255,207,235,255,255,255,255,255,255, + 207,235,255,255,255,255,255,255,255,255,255,255,255,225,21,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,59,245,255,247,34,0,0,0,0,175,166,175,201,0,0,0, + 59,245,255,255,255,255,255,125,0,12,146,0,0,0,0,0,144,21,0,0,0,89,251,89, + 0,0,0,7,206,225,21,0,0,0,0,0,0,0,127,245,255,255,255,255,255,125,0,0,12, + 146,0,0,0,0,0,144,21,0,0,0,0,0,0,59,241,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,175,125,0,0,0,0,0,175,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,138,166,7,206,125,0,89,247,94,241,89,0,138,201,0,0,0,0,0,59,245,166, + 0,89,251,89,0,89,247,34,0,0,0,12,235,125,0,0,0,0,0,0,12,146,0,0,0,0,0,144, + 21,0,0,7,206,201,0,0,0,0,0,12,146,0,0,0,0,0,144,21,0,0,12,146,0,0,0,0,0, + 144,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,255,255,255,166,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,138,255,255,201,0,7,206,225,21,175,201,0,0,0,59,241,89,0,0,0,0, + 0,0,12,146,0,0,0,0,0,144,21,0,0,12,235,166,0,0,0,0,0,175,225,21,0,0,0,0, + 0,0,0,127,89,255,125,0,0,0,0,0,0,12,146,0,0,0,0,0,144,21,0,0,0,0,0,0,89, + 247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,125,0,0,0,0,0, + 175,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,228,34,7,206,125,0,89,247,94,241, + 89,0,138,201,0,0,0,0,0,12,235,166,0,0,89,255,125,12,235,166,0,0,0,12,235, + 125,0,0,0,0,0,0,12,146,0,0,0,0,0,144,21,0,0,138,247,34,0,0,0,0,0,12,146, + 0,0,0,0,0,144,21,0,0,12,146,0,0,0,0,0,144,21,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,59,245,255,201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,247,42,206,201,0,0,89, + 225,21,0,0,89,255,125,0,0,0,0,0,0,12,146,0,0,0,0,0,144,21,0,0,175,225,21, + 0,0,0,0,0,175,225,21,0,0,0,0,0,0,0,127,0,175,251,89,0,0,0,0,0,12,146,0, + 0,0,0,0,144,21,0,59,245,166,0,0,138,225,21,0,0,0,59,245,166,138,251,89, + 7,206,201,0,12,235,125,0,59,241,89,0,0,0,175,125,0,0,0,0,0,175,125,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,138,166,0,0,175,166,0,138,201,7,206,125,7,206, + 166,138,166,0,0,0,138,251,89,0,0,0,59,115,0,89,255,201,0,0,12,235,125,0, + 0,0,0,0,0,12,146,0,0,0,0,0,144,21,0,89,251,89,0,0,0,0,0,0,12,146,0,0,0, + 0,0,144,21,0,0,12,146,0,0,0,0,0,144,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,138,125,0,0,138,225,34,182,0,0,0,7,206,166,0, + 7,206,255,247,34,0,0,175,125,0,12,146,0,0,0,0,0,144,21,0,89,251,89,0,0, + 0,0,0,0,175,225,21,0,0,0,0,0,0,0,127,0,0,138,255,255,255,255,125,0,12,235, + 255,255,255,255,255,225,21,0,138,247,34,0,7,206,166,0,0,0,0,89,247,34,175, + 201,0,7,206,201,0,12,235,125,0,59,241,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,59,215,21,0,0,12,235,255,251,89,0,89,255,255,225, + 21,12,235,255,255,255,247,34,0,0,0,0,0,0,0,0,12,235,255,255,255,255,255, + 255,255,255,251,89,0,12,235,255,255,255,255,255,225,21,0,138,255,255,255, + 255,255,255,166,0,12,235,255,255,255,255,255,225,21,0,0,12,235,255,255, + 255,255,255,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,89,255,255,255,247,34,0,0,0,0,0,0,0,175,255,255,125,0,138,255,255, + 255,125,0,0,12,235,255,255,255,255,255,225,21,0,175,255,255,255,255,247, + 0,0,0,175,225,21,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,175,166,0,255,255,201,0,0,0,0,0,175,166,12,232,89,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12, + 228,34,0,0,0,0,0,0,0,0,12,232,89,59,215,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127,0,127, + 127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127, + 127,127,127,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 127,127,127,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,127,127,127,127,0,127,127,127,127,127,127,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,127,0,127,127,127,0,127,127,0,127,127,127,127,127,0,127,127,127,127, + 127,0,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127, + 127,127,127,127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127, + 0,127,127,127,127,127,127,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,127,127,0,127,127,127,127,127,0,127,127,127,127,127,127,127, + 127,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,245,255,255,255,255,255,255,225,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,225,21,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,7,206,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,89,247, + 34,0,0,0,0,59,192,0,0,0,0,0,7,206,255,255,225,21,0,0,0,0,0,0,0,0,138,247, + 34,0,0,89,251,89,0,7,206,125,0,0,7,206,255,255,255,166,0,89,251,89,138, + 247,34,0,0,0,0,7,206,255,255,255,247,34,0,0,0,0,175,255,255,251,89,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,255,255,255,247, + 34,0,0,0,0,0,0,0,0,0,0,0,0,89,255,255,247,34,0,0,0,0,0,0,0,0,0,0,0,0,12, + 235,255,247,34,0,0,7,206,255,251,89,0,0,7,206,125,0,0,0,0,0,0,0,0,0,0,0, + 0,89,255,255,255,255,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,202,89,0,0,0, + 59,245,255,247,34,0,0,0,0,0,0,0,0,0,0,0,89,201,0,0,0,0,175,166,0,0,0,0, + 0,0,89,201,0,0,0,0,175,166,0,0,0,0,0,59,245,255,201,0,0,0,59,241,89,0,0, + 0,0,0,59,245,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,89,247,34, + 0,0,0,0,59,192,0,0,0,0,0,175,201,0,0,144,21,0,0,0,0,0,0,0,0,7,206,166,0, + 7,206,166,0,0,7,206,125,0,7,206,201,0,0,89,166,0,0,0,0,0,0,0,0,0,0,89,255, + 125,0,0,0,59,245,166,0,0,0,0,0,0,12,206,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,89,255,125,0,0,0,59,245,166,0,0,0,0,0,0,0,0,0,0,59, + 241,89,0,138,201,0,0,0,0,0,138,166,0,0,0,0,0,168,34,7,206,166,0,0,172,89, + 0,175,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,255,255,255,166,89,225,21, + 0,0,0,0,0,0,0,0,0,0,0,0,0,89,255,251,89,0,0,12,235,125,0,138,225,21,0,0, + 0,0,0,0,0,0,7,206,255,201,0,0,0,89,225,21,0,0,0,0,7,206,255,201,0,0,0,89, + 225,21,0,0,0,0,12,206,21,12,235,125,0,0,175,166,0,0,0,0,0,0,59,245,125, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,175,255,255,255, + 166,0,0,12,235,125,0,0,0,0,89,225,21,0,0,12,232,89,0,89,247,34,89,247,34, + 0,0,7,206,125,0,12,235,125,0,0,0,0,0,0,0,0,0,0,0,0,0,89,225,21,0,0,0,0, + 0,7,206,125,0,0,7,206,255,255,247,34,0,0,0,85,89,0,85,89,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,89,225,21,0,0,0,0,0,7,206,125,0,0,0,0,0,0,0,0,0,89,201, + 0,0,12,228,34,0,0,0,0,138,166,0,0,0,0,0,0,0,7,206,125,0,0,7,206,255,166, + 0,0,0,0,0,0,0,0,0,12,235,125,0,0,89,247,34,175,255,255,255,166,89,225,21, + 0,89,255,125,0,0,0,0,0,0,0,0,0,0,7,202,89,0,0,89,225,21,0,12,232,89,59, + 115,0,59,115,0,0,0,0,0,89,201,0,0,7,206,125,0,0,0,0,0,0,0,89,201,0,0,7, + 206,125,0,0,0,0,0,0,0,0,12,232,89,0,59,238,34,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,89,225,21,0,0,138,247,94,192,12,182, + 0,0,12,235,125,0,0,0,0,0,175,255,255,255,255,166,0,0,7,206,171,206,166, + 0,0,0,7,206,125,0,7,206,251,89,0,0,0,0,0,0,0,0,0,0,0,7,202,89,0,59,245, + 255,255,201,0,12,228,34,12,235,166,0,12,228,34,0,0,138,251,89,138,247,34, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,202,89,0,138,255,255,255,125,0,12,228,34, + 0,0,0,0,0,0,0,0,59,241,89,0,138,201,0,0,0,0,0,138,166,0,0,0,0,0,0,0,175, + 201,0,0,0,0,0,0,175,201,0,0,0,0,0,0,0,0,12,235,125,0,0,89,247,34,175,255, + 255,255,166,89,225,21,0,89,255,125,0,0,0,0,0,0,0,0,0,0,7,202,89,0,0,138, + 225,21,0,12,235,125,12,235,166,59,245,166,0,0,0,0,89,201,0,0,89,225,21, + 0,0,0,0,0,0,0,89,201,0,0,89,225,21,0,0,0,0,0,0,12,235,255,125,0,0,175,125, + 0,0,0,0,0,0,0,12,235,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,89, + 225,21,0,12,235,125,59,192,0,0,0,0,12,235,125,0,0,0,0,0,59,215,21,59,238, + 34,0,0,0,89,255,247,34,0,0,0,7,206,125,0,0,7,206,255,255,247,34,0,0,0,0, + 0,0,0,0,59,192,0,12,235,166,0,7,176,21,0,175,125,59,238,34,0,12,228,34, + 0,138,247,34,138,247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,192,0,0,138, + 201,0,89,247,34,0,175,125,0,0,0,0,0,0,0,0,0,89,255,255,225,21,0,7,206,255, + 255,255,255,255,255,247,34,0,12,235,125,0,0,0,7,176,21,0,175,201,0,0,0, + 0,0,0,0,0,12,235,125,0,0,89,247,34,89,255,255,255,166,89,225,21,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,7,202,89,0,0,89,225,21,0,12,232,89,0,12,235,166,12, + 235,166,0,0,0,89,201,0,7,206,125,0,12,235,166,0,0,0,0,89,201,0,7,206,125, + 89,255,255,255,125,0,0,0,0,7,206,125,89,225,21,0,138,225,21,0,0,0,138,255, + 125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,89,247,34,0,59,241,89,59, + 192,0,0,0,12,235,255,255,255,225,21,0,0,138,166,0,7,202,89,0,0,0,7,206, + 166,0,0,0,0,0,0,0,0,7,206,125,0,12,235,201,0,0,0,0,0,0,0,0,89,166,0,89, + 247,34,0,0,0,0,0,89,166,12,232,89,0,138,247,34,89,247,34,59,238,34,0,0, + 12,235,255,255,255,255,255,255,247,34,89,255,255,255,166,89,166,0,0,138, + 201,0,138,225,21,0,89,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,166, + 0,0,0,0,7,206,255,255,255,247,34,0,59,245,255,247,34,0,0,0,0,0,0,0,0,12, + 235,125,0,0,89,247,34,0,89,255,255,166,89,225,21,0,0,0,0,0,0,0,0,0,0,0, + 0,0,89,255,255,255,166,0,12,235,125,0,138,225,21,0,0,12,235,125,12,235, + 125,0,0,89,201,0,89,201,0,7,206,223,166,0,0,0,0,89,201,0,89,201,0,89,125, + 0,138,225,21,12,182,0,7,206,133,206,125,0,89,232,215,21,0,7,206,247,34, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,89,247,34,0,59,241,89,59, + 192,0,0,0,0,12,235,125,0,0,0,0,0,59,215,21,59,238,34,0,59,245,255,255,255, + 255,225,21,0,0,0,0,0,59,241,89,0,0,138,225,21,0,0,0,0,0,0,0,89,166,0,89, + 247,34,0,0,0,0,0,89,166,0,138,255,255,176,228,34,0,138,247,34,138,247,34, + 0,0,0,0,0,0,0,0,59,238,34,0,0,0,0,0,89,166,0,0,138,255,255,225,21,0,0,89, + 166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,166,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,125,0,0,89,247,34,0,0,0,138,166,89,225, + 21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,245,255,247,34,0,0,12,235, + 166,12,235,166,0,0,0,0,0,12,232,89,0,175,166,138,166,0,0,0,0,0,0,12,232, + 89,0,0,0,0,138,201,0,0,89,255,255,201,89,225,21,89,225,81,215,21,0,138, + 247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,89,247,34,0,12,235, + 125,59,192,0,0,0,0,59,241,89,0,0,0,0,0,175,255,255,255,255,166,0,0,0,7, + 206,166,0,0,0,0,7,206,125,0,12,235,201,0,7,206,166,0,0,0,0,0,0,0,0,59,192, + 0,12,235,166,0,7,176,21,0,175,125,0,0,0,0,0,0,0,0,0,138,251,89,138,247, + 34,0,0,0,0,0,0,0,59,238,34,0,0,0,0,0,59,192,0,0,138,201,59,245,166,0,0, + 175,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,166,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,125,0,0,89,247,34,0,0,0,138,166, + 89,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,166, + 59,245,166,0,0,0,0,0,0,138,201,0,138,201,0,138,166,0,0,0,0,0,0,138,201, + 0,0,0,0,89,247,34,0,0,0,0,0,7,206,125,59,238,34,59,215,21,0,175,225,21, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,89,247,34,0,0,175,225,81, + 192,12,182,0,7,206,125,0,0,0,0,0,89,225,21,0,0,12,232,89,0,0,7,206,166, + 0,0,0,0,7,206,125,0,0,59,245,255,255,166,0,0,0,0,0,0,0,0,0,7,202,89,0,59, + 245,255,255,166,0,12,228,34,0,0,0,0,0,0,0,0,0,0,85,89,0,85,89,0,0,0,0,0, + 0,0,59,238,34,0,0,0,0,0,7,202,89,0,138,201,0,59,245,225,34,228,34,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,7,206,255,255,255,255,255,255,247,34,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,201,0,0,175,247,34,0,0,0,138,166, + 89,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,115,0, + 59,115,0,0,0,0,0,0,12,232,89,0,175,255,255,255,255,201,0,0,0,0,12,232,89, + 0,0,0,138,201,0,0,0,0,0,0,0,89,201,0,89,255,255,255,255,247,34,138,251, + 89,0,7,176,21,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,138,247,34,0,0,0, + 175,255,255,255,166,0,89,255,255,255,255,255,247,34,0,0,0,0,0,0,0,0,0,0, + 7,206,166,0,0,0,0,7,206,125,0,0,0,0,0,138,255,166,0,0,0,0,0,0,0,0,0,89, + 225,21,0,0,0,0,0,7,206,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,59,238,34,0,0,0,0,0,0,89,225,21,0,0,0,0,0,7,206,125,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,12,235,191,255,255,166,238,34,0,0,0,138,166,89,225,21,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,201,0,0, + 0,0,0,138,166,0,0,0,0,0,175,201,0,0,0,89,255,255,255,255,125,0,0,0,12,232, + 89,0,0,0,0,59,215,21,0,0,138,255,255,255,225,21,0,0,0,0,0,0,0,0,0,0,0,0, + 0,127,0,0,0,0,0,0,0,0,0,0,0,0,59,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,7,206,125,0,0,0,0,0,0,175,201,0,0,0,0,0,0,0,0,0,0, + 89,255,125,0,0,0,59,245,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,89,255,125,0,0,0,59,245,166,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,12,235,125,0,0,0,0,0,0,0,0,138,166,89,225,21,0,0,0,0,0,0,0,0,0,175, + 125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,59,192,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,125,0,7,199,34, + 0,12,235,125,0,0,0,0,0,0,0,0,0,0,0,7,206,255,255,255,247,34,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,255,255, + 255,247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,125,0,0,0,0,0,0,0,0,138,166, + 89,225,21,0,0,0,0,0,0,0,0,7,202,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,7,206,125,0,7,206,255,255,255,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,125,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,12,235,255,201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127, + 127,127,0,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 127,0,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127, + 0,127,127,127,127,0,127,127,127,127,127,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,0,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127, + 127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127, + 127,127,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,138,225, + 21,0,0,0,0,0,12,235,125,0,0,0,0,19,172,255,190,11,0,0,0,0,138,255,201,7, + 202,89,0,0,0,0,0,0,0,0,0,0,7,206,255,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,59,138,225,21,0,0,0,0,0,0,59,245,201,0,0,0,19,172, + 255,190,11,0,0,0,0,0,0,0,0,0,7,206,225,21,0,0,0,59,245,201,19,172,255,190, + 11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,251,89,89,201,0,0,0,0,0,175, + 201,0,0,0,0,0,0,0,0,7,206,225,21,0,0,0,0,0,19,172,255,190,11,0,0,0,0,0, + 175,255,166,12,228,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,89,255,125,0,0,0,0,0,0,0,12,175,247,34,0,0,0,19,172,255, + 190,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,247,34,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,127,0,0,0,7,206,125,0,0,0,0,0,138,201,0,0,0,0,0,136,190, + 45,196,145,0,0,0,59,215,21,175,255,166,0,0,0,175,225,29,206,166,0,0,7,202, + 89,7,202,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,209,125, + 0,0,0,0,0,0,138,225,21,0,0,0,136,190,45,196,145,0,0,0,175,225,29,206,166, + 0,0,12,235,125,0,0,12,138,225,21,136,190,45,196,145,159,251,89,138,247, + 34,0,0,0,0,0,0,0,0,0,0,0,175,125,59,245,247,34,0,0,0,0,0,12,232,89,0,0, + 0,0,0,0,0,175,166,0,0,0,0,0,0,12,136,190,45,196,145,0,0,0,0,138,166,12, + 235,255,125,0,0,0,0,7,206,166,12,235,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,12,232,89,0,0,0,0,0,0,138,201,0,0,0,0,0,136,190,45, + 196,145,34,0,0,0,89,251,89,138,247,34,0,0,0,0,0,138,201,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,202,89,7,202,89,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,255, + 255,125,0,0,0,0,127,0,0,7,206,251,89,0,0,0,0,7,206,251,89,0,0,0,0,7,206, + 251,89,0,0,0,0,0,7,206,251,89,0,0,0,0,7,206,251,89,0,0,0,0,12,235,255,125, + 0,0,0,0,0,89,255,255,255,255,255,255,255,255,125,0,0,0,59,245,255,255,255, + 201,12,235,255,255,255,255,255,125,12,235,255,255,255,255,255,125,12,235, + 255,255,255,255,255,125,12,235,255,255,255,255,255,125,89,255,255,255,201, + 89,255,255,255,201,89,255,255,255,201,89,255,255,255,201,0,175,255,255, + 255,255,201,0,0,0,12,235,251,89,0,0,12,235,125,0,0,0,138,255,255,166,0, + 0,0,0,0,0,138,255,255,166,0,0,0,0,0,0,138,255,255,166,0,0,0,0,0,0,138,255, + 255,166,0,0,0,0,0,0,138,255,255,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138, + 255,255,201,89,251,89,12,235,125,0,0,0,59,245,125,12,235,125,0,0,0,59,245, + 125,12,235,125,0,0,0,59,245,125,12,235,125,0,0,0,59,245,125,7,206,225,21, + 0,0,0,138,247,0,235,166,0,0,0,0,0,0,138,225,21,7,206,166,0,0,0,127,0,0, + 59,245,255,166,0,0,0,0,59,245,255,166,0,0,0,0,59,245,255,166,0,0,0,0,0, + 59,245,255,166,0,0,0,0,59,245,255,166,0,0,0,0,59,245,255,166,0,0,0,0,0, + 175,201,7,206,166,0,0,0,0,0,0,0,138,255,125,0,0,7,202,102,235,166,0,0,0, + 0,0,12,235,166,0,0,0,0,0,12,235,166,0,0,0,0,0,12,235,166,0,0,0,0,0,0,12, + 235,125,0,0,12,235,125,0,0,12,235,125,0,0,12,235,125,0,0,175,201,0,0,7, + 206,251,89,0,12,235,255,201,0,0,12,235,125,0,59,245,166,0,0,138,251,89, + 0,0,59,245,166,0,0,138,251,89,0,0,59,245,166,0,0,138,251,89,0,0,59,245, + 166,0,0,138,251,89,0,0,59,245,166,0,0,138,251,89,0,0,0,0,0,0,0,0,0,0,0, + 0,59,245,166,0,0,89,255,166,0,12,235,125,0,0,0,59,245,125,12,235,125,0, + 0,0,59,245,125,12,235,125,0,0,0,59,245,125,12,235,125,0,0,0,59,245,125, + 0,59,245,125,0,0,59,245,125,12,235,166,0,0,0,0,0,12,235,125,0,0,175,201, + 0,0,0,127,0,0,138,225,151,225,21,0,0,0,138,225,151,225,21,0,0,0,138,225, + 151,225,21,0,0,0,0,138,225,151,225,21,0,0,0,138,225,151,225,21,0,0,0,138, + 225,151,225,21,0,0,0,59,241,89,7,206,166,0,0,0,0,0,0,12,235,166,0,0,0,0, + 0,12,235,166,0,0,0,0,0,12,235,166,0,0,0,0,0,12,235,166,0,0,0,0,0,12,235, + 166,0,0,0,0,0,0,12,235,125,0,0,12,235,125,0,0,12,235,125,0,0,12,235,125, + 0,0,175,201,0,0,0,0,175,225,21,12,235,166,245,125,0,12,235,125,12,235,125, + 0,0,0,0,138,247,34,12,235,125,0,0,0,0,138,247,34,12,235,125,0,0,0,0,138, + 247,34,12,235,125,0,0,0,0,138,247,34,12,235,125,0,0,0,0,138,247,34,0,138, + 225,21,0,0,0,175,201,0,12,235,125,0,0,7,202,159,247,34,12,235,125,0,0,0, + 59,245,125,12,235,125,0,0,0,59,245,125,12,235,125,0,0,0,59,245,125,12,235, + 125,0,0,0,59,245,125,0,0,138,247,34,7,206,201,0,12,235,255,255,255,251, + 89,0,12,235,125,0,12,235,125,0,0,0,127,0,7,206,166,59,241,89,0,0,7,206, + 166,59,241,89,0,0,7,206,166,59,241,89,0,0,0,7,206,166,59,241,89,0,0,7,206, + 166,59,241,89,0,0,7,206,166,59,241,89,0,0,0,138,225,21,7,206,166,0,0,0, + 0,0,0,89,247,34,0,0,0,0,0,12,235,166,0,0,0,0,0,12,235,166,0,0,0,0,0,12, + 235,166,0,0,0,0,0,12,235,166,0,0,0,0,0,0,12,235,125,0,0,12,235,125,0,0, + 12,235,125,0,0,12,235,125,0,0,175,201,0,0,0,0,59,241,89,12,235,125,138, + 225,21,12,235,125,89,247,34,0,0,0,0,59,245,125,89,247,34,0,0,0,0,59,245, + 125,89,247,34,0,0,0,0,59,245,125,89,247,34,0,0,0,0,59,245,125,89,247,34, + 0,0,0,0,59,245,125,0,0,175,225,21,0,175,225,21,0,89,247,34,0,0,138,166, + 12,235,125,12,235,125,0,0,0,59,245,125,12,235,125,0,0,0,59,245,125,12,235, + 125,0,0,0,59,245,125,12,235,125,0,0,0,59,245,125,0,0,12,235,166,89,247, + 34,0,12,235,166,0,0,138,251,89,12,235,133,206,255,125,0,0,0,0,127,0,59, + 241,89,7,206,166,0,0,59,241,89,7,206,166,0,0,59,241,89,7,206,166,0,0,0, + 59,241,89,7,206,166,0,0,59,241,89,7,206,166,0,0,59,241,89,7,206,166,0,0, + 12,235,125,0,7,206,255,255,255,255,247,34,0,138,225,21,0,0,0,0,0,12,235, + 255,255,255,255,247,34,12,235,255,255,255,255,247,34,12,235,255,255,255, + 255,247,34,12,235,255,255,255,255,247,34,0,12,235,125,0,0,12,235,125,0, + 0,12,235,125,0,0,12,235,125,0,206,255,255,255,247,34,0,12,235,125,12,235, + 125,12,235,125,12,235,125,138,225,21,0,0,0,0,12,235,166,138,225,21,0,0, + 0,0,12,235,166,138,225,21,0,0,0,0,12,235,166,138,225,21,0,0,0,0,12,235, + 166,138,225,21,0,0,0,0,12,235,166,0,0,0,175,225,187,225,21,0,0,138,225, + 21,0,59,215,21,7,206,166,12,235,125,0,0,0,59,245,125,12,235,125,0,0,0,59, + 245,125,12,235,125,0,0,0,59,245,125,12,235,125,0,0,0,59,245,125,0,0,0,89, + 255,255,125,0,0,12,235,166,0,0,12,235,166,12,235,125,0,7,206,201,0,0,0, + 127,0,138,225,21,0,138,225,21,0,138,225,21,0,138,225,21,0,138,225,21,0, + 138,225,21,0,0,138,225,21,0,138,225,21,0,138,225,21,0,138,225,21,0,138, + 225,21,0,138,225,21,0,89,255,255,255,255,255,166,0,0,0,0,0,0,138,225,21, + 0,0,0,0,0,12,235,166,0,0,0,0,0,12,235,166,0,0,0,0,0,12,235,166,0,0,0,0, + 0,12,235,166,0,0,0,0,0,0,12,235,125,0,0,12,235,125,0,0,12,235,125,0,0,12, + 235,125,0,0,175,201,0,0,0,0,12,235,125,12,235,125,0,138,225,34,235,125, + 138,225,21,0,0,0,0,12,235,166,138,225,21,0,0,0,0,12,235,166,138,225,21, + 0,0,0,0,12,235,166,138,225,21,0,0,0,0,12,235,166,138,225,21,0,0,0,0,12, + 235,166,0,0,0,0,175,225,21,0,0,0,138,225,21,7,202,89,0,7,206,166,12,235, + 125,0,0,0,59,245,125,12,235,125,0,0,0,59,245,125,12,235,125,0,0,0,59,245, + 125,12,235,125,0,0,0,59,245,125,0,0,0,7,206,225,21,0,0,12,235,166,0,0,12, + 235,166,12,235,125,0,0,59,241,89,0,0,127,7,206,255,255,255,255,251,89,7, + 206,255,255,255,255,251,89,7,206,255,255,255,255,251,89,0,7,206,255,255, + 255,255,251,89,7,206,255,255,255,255,251,89,7,206,255,255,255,255,251,89, + 7,206,166,0,0,7,206,166,0,0,0,0,0,0,89,247,34,0,0,0,0,0,12,235,166,0,0, + 0,0,0,12,235,166,0,0,0,0,0,12,235,166,0,0,0,0,0,12,235,166,0,0,0,0,0,0, + 12,235,125,0,0,12,235,125,0,0,12,235,125,0,0,12,235,125,0,0,175,201,0,0, + 0,0,59,241,89,12,235,125,0,12,235,138,235,125,89,247,34,0,0,0,0,59,245, + 125,89,247,34,0,0,0,0,59,245,125,89,247,34,0,0,0,0,59,245,125,89,247,34, + 0,0,0,0,59,245,125,89,247,34,0,0,0,0,59,245,125,0,0,0,175,225,187,225,21, + 0,0,138,247,34,175,125,0,0,12,235,125,12,235,125,0,0,0,59,241,89,12,235, + 125,0,0,0,59,241,89,12,235,125,0,0,0,59,241,89,12,235,125,0,0,0,59,241, + 89,0,0,0,0,175,225,21,0,0,12,235,166,0,0,175,247,34,12,235,125,0,0,12,235, + 125,0,0,127,59,241,89,0,0,7,206,166,59,241,89,0,0,7,206,166,59,241,89,0, + 0,7,206,166,0,59,241,89,0,0,7,206,166,59,241,89,0,0,7,206,166,59,241,89, + 0,0,7,206,166,59,241,89,0,0,7,206,166,0,0,0,0,0,0,59,245,166,0,0,0,0,0, + 12,235,166,0,0,0,0,0,12,235,166,0,0,0,0,0,12,235,166,0,0,0,0,0,12,235,166, + 0,0,0,0,0,0,12,235,125,0,0,12,235,125,0,0,12,235,125,0,0,12,235,125,0,0, + 175,201,0,0,0,0,175,225,21,12,235,125,0,0,138,232,245,125,12,235,125,0, + 0,0,0,138,247,34,12,235,125,0,0,0,0,138,247,34,12,235,125,0,0,0,0,138,247, + 34,12,235,125,0,0,0,0,138,247,34,12,235,125,0,0,0,0,138,247,34,0,0,175, + 225,21,0,175,225,21,0,59,245,191,201,0,0,0,89,225,21,12,235,166,0,0,0,89, + 251,89,12,235,166,0,0,0,89,251,89,12,235,166,0,0,0,89,251,89,12,235,166, + 0,0,0,89,251,89,0,0,0,0,175,225,21,0,0,12,235,255,255,255,247,34,0,12,235, + 125,0,0,59,241,89,0,0,127,138,225,21,0,0,0,138,247,163,225,21,0,0,0,138, + 247,163,225,21,0,0,0,138,247,34,138,225,21,0,0,0,138,247,163,225,21,0,0, + 0,138,247,163,225,21,0,0,0,138,247,198,225,21,0,0,7,206,166,0,0,0,0,0,0, + 0,138,255,125,0,0,7,202,102,235,166,0,0,0,0,0,12,235,166,0,0,0,0,0,12,235, + 166,0,0,0,0,0,12,235,166,0,0,0,0,0,0,12,235,125,0,0,12,235,125,0,0,12,235, + 125,0,0,12,235,125,0,0,175,201,0,0,7,206,251,89,0,12,235,125,0,0,12,235, + 255,125,0,89,255,125,0,0,89,251,89,0,0,89,255,125,0,0,89,251,89,0,0,89, + 255,125,0,0,89,251,89,0,0,89,255,125,0,0,89,251,89,0,0,89,255,125,0,0,89, + 251,89,0,0,138,225,21,0,0,0,175,201,0,0,138,251,89,0,0,89,251,89,0,0,138, + 247,34,0,7,206,225,21,0,138,247,34,0,7,206,225,21,0,138,247,34,0,7,206, + 225,21,0,138,247,34,0,7,206,225,21,0,0,0,0,175,225,21,0,0,12,235,166,0, + 0,0,0,0,12,235,125,0,0,175,225,21,0,0,127,206,166,0,0,0,0,59,245,255,166, + 0,0,0,0,59,245,255,166,0,0,0,0,59,245,133,206,166,0,0,0,0,59,245,255,166, + 0,0,0,0,59,245,255,166,0,0,0,0,59,245,255,125,0,0,0,7,206,255,255,255,255, + 255,125,0,0,0,59,245,255,255,255,201,12,235,255,255,255,255,255,125,12, + 235,255,255,255,255,255,125,12,235,255,255,255,255,255,125,12,235,255,255, + 255,255,255,125,89,255,255,255,201,89,255,255,255,201,89,255,255,255,201, + 89,255,255,255,201,0,175,255,255,255,255,225,21,0,0,12,235,125,0,0,0,138, + 255,125,0,0,0,175,255,255,201,0,0,0,0,0,0,175,255,255,201,0,0,0,0,0,0,175, + 255,255,201,0,0,0,0,0,0,175,255,255,201,0,0,0,0,0,0,175,255,255,201,0,0, + 0,0,0,0,0,0,0,0,0,0,0,7,202,97,206,255,255,201,0,0,0,0,0,138,255,255,255, + 201,0,0,0,0,138,255,255,255,201,0,0,0,0,138,255,255,255,201,0,0,0,0,138, + 255,255,255,201,0,0,0,0,0,0,175,225,21,0,0,12,235,166,0,0,0,0,0,12,235, + 133,206,255,225,21,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,138,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,138,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,175,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,255,225,21, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,127,127,127,127,127,127,0, + 127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,0,127,127,127,127,0,127,127,127,127,0,127,127,127, + 127,0,127,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127, + 0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,7,206,225,21, + 0,0,0,0,0,12,235,225,21,0,0,89,255,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,7,206,255,247,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,247, + 34,0,0,0,0,0,0,0,138,251,89,0,0,59,245,247,34,0,0,0,0,0,0,0,0,0,175,247, + 34,0,0,175,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,225,21, + 0,0,0,0,0,0,0,138,255,125,0,0,0,12,235,251,89,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,251,89,0,0,0,0,0,0, + 7,206,225,21,0,0,0,7,206,251,89,0,0,0,0,0,0,0,0,0,0,0,0,0,59,245,166,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,59,241,89,0,0,0,0, + 0,89,247,34,0,0,7,206,138,235,125,0,0,89,255,225,21,175,125,0,0,0,0,0,0, + 0,0,0,138,201,0,138,201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12, + 235,125,0,0,0,0,0,0,12,235,125,0,0,0,175,171,206,166,0,0,0,0,0,0,0,0,0, + 7,206,166,0,59,245,255,166,238,0,0,0,0,0,0,0,0,0,0,0,0,7,206,255,125,59, + 215,21,0,0,59,241,89,0,0,0,0,0,0,7,206,166,0,0,0,0,138,201,175,201,0,0, + 0,12,235,251,89,89,201,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,7,206,166,0,0,0,0,0,0,89,247,34,0,0,0,0,89,225,151,201,0,0,0,0, + 0,0,0,0,0,0,0,0,0,175,201,0,12,235,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,127,0,0,0,138,201,0,0,0,0,7,206,125,0,0,0,138,201,0,89,225,21, + 12,228,34,138,255,201,0,0,0,138,247,34,175,225,21,0,138,201,0,138,201,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,225,21,0,0,0,0,0,89,225, + 21,0,0,89,247,34,59,241,89,0,59,241,89,89,247,34,0,0,89,225,21,175,127, + 215,21,206,247,42,206,0,138,255,247,42,206,125,0,0,138,166,12,235,251,89, + 0,0,0,0,138,201,0,0,0,0,0,0,89,225,21,0,0,0,59,241,89,12,235,125,0,0,175, + 125,59,245,247,34,0,0,12,235,125,89,251,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,59,238,34,0,0,0,0,0,175,166,0,0,0,0,12,232,89,7,206,125,0, + 0,12,235,166,59,245,125,0,0,0,59,238,34,0,12,235,125,0,0,0,0,0,0,89,247, + 34,138,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,255,247,34,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,251,89,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,199,34,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,235,125,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,12,235,255,255,255,166,0,12,235,255, + 255,255,166,0,12,235,255,255,255,166,0,12,235,255,255,255,166,0,0,12,235, + 255,255,255,166,0,12,235,255,255,255,166,0,12,235,255,255,255,166,0,175, + 255,255,125,0,0,12,235,255,255,125,0,0,12,235,255,255,225,21,0,0,12,235, + 255,255,225,21,0,12,235,255,255,225,21,0,12,235,255,255,225,21,0,12,235, + 125,12,235,125,12,235,125,12,235,125,0,12,235,125,89,251,89,0,12,235,138, + 235,255,247,34,0,0,12,235,255,255,201,0,0,0,12,235,255,255,201,0,0,0,12, + 235,255,255,201,0,0,0,12,235,255,255,201,0,0,0,12,235,255,255,201,0,0,0, + 0,0,0,175,247,34,0,0,0,12,235,255,255,255,166,0,59,241,89,0,0,89,247,34, + 59,241,89,0,0,89,247,34,59,241,89,0,0,89,247,34,59,241,89,0,0,89,247,42, + 206,201,0,0,0,138,232,245,166,245,255,251,89,7,206,201,0,0,0,138,225,21, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,127,12,206,21,0,59,245,125,12,206,21,0,59,245,125,12,206, + 21,0,59,245,125,12,206,21,0,59,245,125,0,12,206,21,0,59,245,125,12,206, + 21,0,59,245,125,12,206,21,0,12,235,255,125,0,7,206,166,12,235,166,0,0,172, + 102,0,235,125,0,0,175,201,0,12,235,125,0,0,175,201,12,235,125,0,0,175,201, + 12,235,125,0,0,175,201,0,12,235,125,12,235,125,12,235,125,12,235,125,0, + 0,0,0,0,175,201,0,12,235,247,34,0,175,201,0,12,235,166,0,7,206,201,0,12, + 235,166,0,7,206,201,0,12,235,166,0,7,206,201,0,12,235,166,0,7,206,201,0, + 12,235,166,0,7,206,201,0,0,0,0,0,175,247,34,0,0,12,235,166,0,12,235,201, + 0,59,241,89,0,0,89,247,34,59,241,89,0,0,89,247,34,59,241,89,0,0,89,247, + 34,59,241,89,0,0,89,247,34,89,247,34,0,7,206,176,235,225,21,0,175,225,21, + 89,247,34,0,7,206,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,7,206,166,0,0,0,0,7, + 206,166,0,0,0,0,7,206,166,0,0,0,0,7,206,166,0,0,0,0,0,7,206,166,0,0,0,0, + 7,206,166,0,0,0,0,0,175,201,0,0,0,89,225,138,225,21,0,0,0,0,89,225,21,0, + 0,89,247,34,89,225,21,0,0,89,247,124,225,21,0,0,89,247,124,225,21,0,0,89, + 247,34,12,235,125,12,235,125,12,235,125,12,235,125,0,89,255,255,255,255, + 247,34,12,235,125,0,0,89,247,34,138,225,21,0,0,59,238,34,138,225,21,0,0, + 59,238,34,138,225,21,0,0,59,238,34,138,225,21,0,0,59,238,34,138,225,21, + 0,0,59,238,34,0,0,0,0,0,0,0,0,0,138,225,21,0,172,132,238,34,59,241,89,0, + 0,89,247,34,59,241,89,0,0,89,247,34,59,241,89,0,0,89,247,34,59,241,89,0, + 0,89,247,34,12,235,125,0,59,238,47,235,125,0,0,59,241,89,12,235,125,0,59, + 238,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,59,245,255,255,255,166,0,59,245,255,255, + 255,166,0,59,245,255,255,255,166,0,59,245,255,255,255,166,0,0,59,245,255, + 255,255,166,0,59,245,255,255,255,166,0,89,255,255,255,255,255,255,255,255, + 255,247,175,201,0,0,0,0,0,175,255,255,255,255,255,247,34,175,255,255,255, + 255,255,247,198,255,255,255,255,255,247,198,255,255,255,255,255,247,34, + 12,235,125,12,235,125,12,235,125,12,235,125,89,251,89,0,0,59,241,89,12, + 235,125,0,0,89,247,34,175,201,0,0,0,12,232,89,175,201,0,0,0,12,232,89,175, + 201,0,0,0,12,232,89,175,201,0,0,0,12,232,89,175,201,0,0,0,12,232,89,7,206, + 255,255,255,255,255,255,251,226,201,0,89,166,12,232,89,59,241,89,0,0,89, + 247,34,59,241,89,0,0,89,247,34,59,241,89,0,0,89,247,34,59,241,89,0,0,89, + 247,34,0,175,201,0,138,201,12,235,125,0,0,12,235,125,0,175,201,0,138,201, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,127,89,255,166,0,7,206,166,89,255,166,0,7,206,166,89, + 255,166,0,7,206,166,89,255,166,0,7,206,166,0,89,255,166,0,7,206,166,89, + 255,166,0,7,206,166,138,255,125,0,0,175,201,0,0,0,0,0,175,201,0,0,0,0,0, + 175,201,0,0,0,0,0,0,175,201,0,0,0,0,0,175,201,0,0,0,0,0,175,201,0,0,0,0, + 0,0,12,235,125,12,235,125,12,235,125,12,235,125,175,201,0,0,0,59,241,89, + 12,235,125,0,0,89,247,34,175,201,0,0,0,12,232,89,175,201,0,0,0,12,232,89, + 175,201,0,0,0,12,232,89,175,201,0,0,0,12,232,89,175,201,0,0,0,12,232,89, + 0,0,0,0,0,0,0,0,0,175,201,7,176,21,12,232,89,59,241,89,0,0,89,247,34,59, + 241,89,0,0,89,247,34,59,241,89,0,0,89,247,34,59,241,89,0,0,89,247,34,0, + 89,247,47,235,125,12,235,125,0,0,12,235,125,0,89,247,47,235,125,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,127,175,201,0,0,7,206,166,175,201,0,0,7,206,166,175,201,0,0, + 7,206,166,175,201,0,0,7,206,166,0,175,201,0,0,7,206,166,175,201,0,0,7,206, + 166,175,201,0,0,0,138,225,21,0,0,0,0,138,225,21,0,0,0,0,138,247,34,0,0, + 0,0,0,138,247,34,0,0,0,0,138,247,34,0,0,0,0,138,247,34,0,0,0,0,0,12,235, + 125,12,235,125,12,235,125,12,235,125,175,201,0,0,0,89,247,34,12,235,125, + 0,0,89,247,34,138,225,21,0,0,89,247,34,138,225,21,0,0,89,247,34,138,225, + 21,0,0,89,247,34,138,225,21,0,0,89,247,34,138,225,21,0,0,89,247,34,0,0, + 0,0,175,247,34,0,0,138,225,151,125,0,89,247,34,59,241,89,0,0,89,247,34, + 59,241,89,0,0,89,247,34,59,241,89,0,0,89,247,34,59,241,89,0,0,89,247,34, + 0,12,235,191,247,34,12,235,125,0,0,59,241,89,0,12,235,191,247,34,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,127,138,225,21,0,138,255,166,138,225,21,0,138,255,166,138, + 225,21,0,138,255,166,138,225,21,0,138,255,166,0,138,225,21,0,138,255,166, + 138,225,21,0,138,255,166,89,247,34,0,89,255,255,166,0,0,12,206,12,235,166, + 0,0,127,102,0,235,201,0,0,12,206,21,12,235,201,0,0,12,206,34,235,201,0, + 0,12,206,34,235,201,0,0,12,206,21,12,235,125,12,235,125,12,235,125,12,235, + 125,89,255,125,0,7,206,166,0,12,235,125,0,0,89,247,34,12,235,166,0,7,206, + 201,0,12,235,166,0,7,206,201,0,12,235,166,0,7,206,201,0,12,235,166,0,7, + 206,201,0,12,235,166,0,7,206,201,0,0,0,0,0,175,247,34,0,0,12,235,201,0, + 7,206,201,0,7,206,166,0,59,245,247,34,7,206,166,0,59,245,247,34,7,206,166, + 0,59,245,247,34,7,206,166,0,59,245,247,34,0,0,138,255,166,0,12,235,125, + 0,7,206,201,0,0,0,138,255,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,7,206,255,255,171, + 206,166,7,206,255,255,171,206,166,7,206,255,255,171,206,166,7,206,255,255, + 171,206,166,0,7,206,255,255,171,206,166,7,206,255,255,171,206,166,0,89, + 255,255,201,0,0,175,255,255,247,34,0,12,235,255,255,166,0,0,7,206,255,255, + 247,34,0,0,7,206,255,255,247,34,0,7,206,255,255,247,34,0,7,206,255,255, + 247,34,0,12,235,125,12,235,125,12,235,125,12,235,125,0,89,255,255,255,201, + 0,0,12,235,125,0,0,89,247,34,0,12,235,255,255,201,0,0,0,12,235,255,255, + 201,0,0,0,12,235,255,255,201,0,0,0,12,235,255,255,201,0,0,0,12,235,255, + 255,201,0,0,0,0,0,0,0,0,0,0,0,7,206,255,255,255,201,0,0,0,59,245,255,225, + 111,247,34,0,59,245,255,225,111,247,34,0,59,245,255,225,111,247,34,0,59, + 245,255,225,111,247,34,0,0,59,241,89,0,12,235,255,255,255,225,21,0,0,0, + 59,241,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,175,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,138,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,225,21,0,12,235,125,0,0,0,0,0,0,0, + 138,225,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,7,202,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,206,166,0,0,12,235,125,0,0,0,0,0,0,7,206, + 166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 12,235,255,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,247,34,0,0,12,235,125,0,0,0,0,0,0,89,247, + 34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,127,127,127,127,0,127,127,127,127, + 127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,0,127,127,0,127,127,0,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,0,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0 +}; + + +const int FONTFIXED1_BM_W = 257; +const int FONTFIXED1_BM_H = 112; + +static const unsigned char s_FontFixed1[] = { + 127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,52,255,56,255,4,0,0, + 0,0,0,212,44,76,180,0,0,0,52,255,4,0,0,0,0,109,231,218,72,0,0,0,0,0,96,227, + 243,170,0,0,0,0,52,255,4,0,0,0,0,0,0,0,158,104,0,0,0,0,153,114,0,0,0,0,0,0,0, + 52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,172,128,0,0,12,164,241,234,133,1,0,0,22,179,237,255,4,0,0,0,141,220 + ,246,236,164,22,0,0,94,216,242,243,194,56,0,0,0,0,0,186,255,4,0,0,52,255,244, + 244,244,91,0,0,1,120,223,244,225,62,0,0,244,244,244,244,249,242,0,0,62,200, + 245,242,181,35,0,0,46,196,244,232,139,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,216,246,215,62,0,0,127,0,0 + ,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,52,255,56,255,4,0,0,0,0,13,239,2,131,124,0, + 0,110,232,255,238,202,62,0,29,254,51,99,231,0,0,0,0,0,241,53,0,34,0,0,0,0,52, + 255,4,0,0,0,0,0,0,45,225,4,0,0,0,0,30,237,15,0,0,0,0,99,95,52,255,11,127,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,242, + 19,0,0,155,188,12,29,221,103,0,0,21,101,90,255,4,0,0,0,127,46,1,15,165,192,0, + 0,34,24,0,5,127,233,0,0,0,0,98,197,255,4,0,0,52,255,4,0,0,0,0,0,121,219,45,0, + 22,27,0,0,0,0,0,0,170,151,0,14,242,119,4,12,160,207,0,3,224,136,5,18,188,114, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,114,38,2,133,225,0,0,127,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,52,255, + 56,255,4,0,0,0,0,67,189,0,187,69,0,26,254,100,255,8,53,44,0,30,254,49,100,235 + ,0,1,0,0,0,206,47,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,155,133,0,0,0,0,0,0,186, + 110,0,0,0,0,3,103,195,255,177,75,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156,144,0,0,5,244,63,0,0,112,200,0,0,0,0,52, + 255,4,0,0,0,0,0,0,0,60,251,0,0,0,0,0,10,127,211,0,0,0,25,215,67,255,4,0,0,52, + 255,4,0,0,0,0,1,235,77,0,0,0,0,0,0,0,0,0,24,250,49,0,44,255,15,0,0,64,251,0, + 41,255,17,0,0,68,205,0,0,0,43,216,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,147,0, + 0,0,0,0,0,0,0,0,0,197,97,11,0,0,0,0,0,0,0,0,69,248,0,0,127,0,0,0,0,0,0,0,0,0, + 0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,63,240,247,248,240,254,241,0,42,255,69,255,4 + ,0,0,0,0,112,232,221,80,97,184,0,0,14,189,196,7,0,0,0,0,0,0,0,0,0,0,0,0,0,1, + 233,64,0,0,0,0,0,0,117,186,0,0,0,0,3,102,194,255,177,74,0,0,0,0,52,255,4,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,244,30,0,0,37,255,37 + ,175,0,66,244,0,0,0,0,52,255,4,0,0,0,0,0,0,0,126,195,0,0,0,48,241,255,190,16, + 0,0,0,176,90,52,255,4,0,0,52,255,228,236,162,16,0,33,255,106,220,237,172,21,0 + ,0,0,0,0,125,203,0,0,4,205,120,6,14,160,159,0,40,255,21,0,0,69,245,0,0,0,52, + 255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,13,102,203,225,132,0,0,240,240,240,240,240 + ,240,0,0,84,180,237,152,52,0,0,0,0,0,11,204,150,0,0,127,0,0,0,0,0,0,0,0,0,0, + 52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,190,66,54,202,0,0,2,196,220,255,106,32,0,0 + ,0,0,13,116,184,93,4,0,0,176,114,109,159,0,52,0,1,0,0,0,0,0,0,0,0,0,29,255,22 + ,0,0,0,0,0,0,72,236,0,0,0,0,99,96,52,255,11,128,0,0,240,240,243,255,240,240,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,140,161,0,0,0,49,255, + 33,216,0,54,255,0,0,0,0,52,255,4,0,0,0,0,0,0,68,236,45,0,0,0,0,0,27,198,133,0 + ,0,87,189,0,52,255,4,0,0,19,40,0,29,197,168,0,49,255,146,9,15,182,176,0,0,0,0 + ,3,226,100,0,0,0,28,210,252,255,182,7,0,2,223,142,6,20,186,255,0,0,0,0,0,0,0, + 0,0,0,0,43,216,3,0,0,0,0,158,233,162,67,1,0,0,0,0,0,0,0,0,0,0,0,0,0,23,115, + 210,208,0,0,0,0,176,192,6,0,0,127,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0, + 0,0,0,0,0,7,239,9,118,138,0,0,0,5,109,255,153,234,112,0,0,88,179,76,110,231, + 220,0,28,255,16,0,176,110,68,0,0,0,0,0,0,0,0,0,0,0,46,255,8,0,0,0,0,0,0,57, + 253,0,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,244,244, + 244,0,0,0,0,0,0,0,0,0,0,0,0,0,17,241,43,0,0,0,37,255,17,0,0,66,244,0,0,0,0,52 + ,255,4,0,0,0,0,0,73,233,60,0,0,0,0,0,0,0,69,238,0,16,227,40,0,52,255,4,0,0,0, + 0,0,0,69,246,0,38,255,20,0,0,69,247,0,0,0,0,79,242,11,0,0,5,214,122,7,16,162, + 175,0,0,46,193,239,210,125,241,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,202,215, + 114,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,67,162,236,0,0,0,34,255,31,0,0,0,127,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,236,244,251,240,251,244,228,0,0, + 0,52,255,4,76,245,0,0,11,0,29,254,51,101,0,40,255,30,0,18,222,193,0,0,0,0,0,0 + ,0,0,0,0,0,29,255,23,0,0,0,0,0,0,72,237,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,178,0,0,0,0,5,245 + ,63,0,0,111,200,0,0,0,0,52,255,4,0,0,0,0,87,233,54,0,0,0,0,0,0,0,0,70,248,0, + 52,255,255,255,255,255,255,0,0,0,0,0,0,68,246,0,6,248,19,0,0,65,247,0,0,0,0, + 185,151,0,0,0,42,255,15,0,0,59,252,0,0,0,0,0,0,124,188,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,46,147,234,180,86,0,0,244,244,244,244,244,244,0,0,39,133,226, + 197,97,10,0,0,0,51,255,4,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,140,115,12,235,8,0,0,32,73,55,255,11,143,215,0,0,0,0,31,255,47,97,0,1 + ,211,174,16,6,148,252,0,0,0,0,0,0,0,0,0,0,0,1,233,65,0,0,0,0,0,0,116,187,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0, + 44,220,3,0,0,0,0,9,234,58,0,0,0,0,0,155,186,12,28,220,103,0,0,0,8,58,255,11,8 + ,0,0,105,232,47,0,0,0,0,0,101,32,0,25,193,173,0,0,0,0,0,52,255,4,0,0,70,25,0, + 25,193,166,0,0,165,147,7,13,176,176,0,0,0,36,254,49,0,0,0,15,245,120,4,12,157 + ,210,0,0,37,12,0,68,239,74,0,0,0,44,220,3,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,8, + 92,192,0,0,0,0,0,0,0,0,0,0,235,142,41,0,0,0,0,0,0,4,24,0,0,0,0,127,0,0,0,0,0, + 0,0,0,0,0,49,244,3,0,0,0,0,0,0,0,0,0,0,0,0,222,33,87,169,0,0,0,23,186,245,255 + ,243,186,39,0,0,0,0,0,122,239,229,0,0,30,181,245,231,147,178,0,3,0,0,0,0,0,0, + 0,0,0,0,155,133,0,0,0,0,0,0,185,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,62,241,1,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,108,195,0,0,0,0,0,0,13, + 165,241,235,134,1,0,0,0,255,255,255,255,255,0,0,255,250,244,244,244,244,0,0, + 143,226,244,238,163,17,0,0,0,0,0,52,255,4,0,0,134,236,245,236,155,13,0,0,16, + 167,238,242,175,22,0,0,0,139,203,0,0,0,0,0,68,203,246,243,185,39,0,0,104,235, + 244,212,88,0,0,0,0,52,255,4,0,0,0,0,0,62,241,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,6,0,0,0,0,0,0,0,0,49,244,3,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45,225,4,0,0,0,0,29,237,16,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,120,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,223, + 75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,158,104,0,0,0,0,153,115,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,181,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,119,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,181,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0 + ,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127 + ,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127 + ,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127 + ,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127 + ,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127 + ,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,28,160 + ,229,236,163,14,0,0,0,20,252,200,0,0,0,52,255,244,243,238,177,32,0,0,0,96,213 + ,244,234,137,0,52,255,244,239,190,68,0,0,52,255,244,244,244,244,68,0,0,52,255 + ,244,244,244,244,0,0,0,104,217,244,222,100,0,52,255,4,0,0,52,255,0,0,244,246, + 255,244,244,0,0,0,0,137,244,246,255,4,0,52,255,4,0,0,137,216,0,0,52,255,4,0,0 + ,0,0,52,255,163,0,0,212,255,0,52,255,166,0,0,52,255,0,0,15,168,241,236,141,2, + 0,52,255,244,244,239,176,33,0,0,15,168,241,236,141,2,0,52,255,244,244,236,171 + ,30,0,0,47,189,243,241,204,73,0,0,244,244,246,255,244,244,0,52,255,4,0,0,52, + 255,0,125,203,0,0,0,24,254,0,236,75,0,0,0,0,152,0,44,247,51,0,0,71,241,0,220, + 112,0,0,0,161,179,0,0,244,244,244,244,249,254,0,0,0,52,255,244,125,0,0,35,244 + ,23,0,0,0,0,0,0,0,171,246,255,4,0,0,0,0,41,242,200,7,0,0,0,0,0,0,0,0,0,0,127, + 24,227,130,13,21,206,163,0,0,0,98,207,251,26,0,0,52,255,4,0,8,147,204,0,0,100 + ,224,51,0,22,89,0,52,255,4,7,81,238,66,0,52,255,4,0,0,0,0,0,0,52,255,4,0,0,0, + 0,0,106,221,46,0,29,89,0,52,255,4,0,0,52,255,0,0,0,52,255,4,0,0,0,0,0,0,0,52, + 255,4,0,52,255,4,0,133,218,26,0,0,52,255,4,0,0,0,0,52,255,202,4,36,219,255,0, + 52,255,242,30,0,52,255,0,0,160,175,10,24,213,112,0,52,255,4,0,20,166,204,0,0, + 160,175,10,24,213,112,0,52,255,4,0,17,166,201,0,8,232,119,7,3,56,63,0,0,0,0, + 52,255,4,0,0,52,255,4,0,0,52,255,0,48,253,19,0,0,94,226,0,197,107,0,0,0,0,184 + ,0,0,131,201,2,8,220,101,0,74,238,18,0,52,245,33,0,0,0,0,0,1,192,148,0,0,0,52 + ,255,4,0,0,0,0,168,135,0,0,0,0,0,0,0,0,52,255,4,0,0,0,16,218,106,178,159,0,0, + 0,0,0,0,0,0,0,0,127,157,170,0,0,0,88,243,0,0,0,179,121,200,105,0,0,52,255,4,0 + ,0,63,251,0,0,227,86,0,0,0,0,0,52,255,4,0,0,125,186,0,52,255,4,0,0,0,0,0,0,52 + ,255,4,0,0,0,0,1,229,84,0,0,0,0,0,52,255,4,0,0,52,255,0,0,0,52,255,4,0,0,0,0, + 0,0,0,52,255,4,0,52,255,4,130,220,27,0,0,0,52,255,4,0,0,0,0,52,255,141,66,115 + ,140,255,0,52,255,150,143,0,52,255,0,6,246,54,0,0,105,204,0,52,255,4,0,0,60, + 253,0,6,246,54,0,0,105,204,0,52,255,4,0,0,59,252,0,46,255,15,0,0,0,0,0,0,0,0, + 52,255,4,0,0,52,255,4,0,0,52,255,0,0,225,87,0,0,165,150,0,157,139,0,234,154,0 + ,215,0,0,7,216,102,132,187,0,0,0,176,146,0,194,127,0,0,0,0,0,0,101,223,12,0,0 + ,0,52,255,4,0,0,0,0,48,239,14,0,0,0,0,0,0,0,52,255,4,0,0,3,184,122,0,8,193, + 112,0,0,0,0,0,0,0,0,0,127,243,67,72,217,233,162,255,0,3,12,248,51,130,186,0,0 + ,52,255,4,0,12,158,197,0,31,255,22,0,0,0,0,0,52,255,4,0,0,69,240,0,52,255,4,0 + ,0,0,0,0,0,52,255,4,0,0,0,0,32,255,22,0,0,0,0,0,52,255,4,0,0,52,255,0,0,0,52, + 255,4,0,0,0,0,0,0,0,52,255,4,0,52,255,130,244,29,0,0,0,0,52,255,4,0,0,0,0,52, + 255,61,146,188,66,255,0,52,255,37,239,16,52,255,0,38,255,15,0,0,64,244,0,52, + 255,4,0,24,169,202,0,38,255,15,0,0,64,244,0,52,255,4,0,16,159,188,0,11,235, + 176,72,17,0,0,0,0,0,0,52,255,4,0,0,52,255,4,0,0,52,255,0,0,148,157,0,1,234,73 + ,0,118,170,31,225,207,0,246,0,0,0,62,237,237,32,0,0,0,31,241,124,221,8,0,0,0, + 0,0,25,238,68,0,0,0,0,52,255,4,0,0,0,0,0,184,118,0,0,0,0,0,0,0,52,255,4,0,0, + 44,101,0,0,0,14,121,0,0,0,0,0,0,0,0,0,127,255,32,242,102,5,147,255,0,4,86,235 + ,1,59,250,16,0,52,255,240,241,254,223,32,0,48,255,6,0,0,0,0,0,52,255,4,0,0,55 + ,255,0,52,255,240,240,240,240,22,0,0,52,255,240,240,240,202,0,48,255,6,0,138, + 241,248,0,52,255,240,240,240,243,255,0,0,0,52,255,4,0,0,0,0,0,0,0,52,255,4,0, + 52,255,220,235,100,0,0,0,0,52,255,4,0,0,0,0,52,255,6,209,182,52,255,0,52,255, + 4,169,120,52,255,0,49,255,5,0,0,54,255,0,52,255,240,240,231,169,31,0,49,255,5 + ,0,0,54,255,0,52,255,240,244,255,173,11,0,0,38,160,229,253,188,37,0,0,0,0,52, + 255,4,0,0,52,255,4,0,0,52,255,0,0,70,227,0,51,244,7,0,78,202,83,147,220,32, + 251,0,0,0,14,235,202,0,0,0,0,0,124,255,75,0,0,0,0,0,0,173,156,0,0,0,0,0,52, + 255,4,0,0,0,0,0,64,230,7,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,127,255,54,255,13,0,62,255,0,4,167,167,0,4,240,92,0,52,255,4,0,18,164, + 181,0,31,255,22,0,0,0,0,0,52,255,4,0,0,69,240,0,52,255,4,0,0,0,0,0,0,52,255,4 + ,0,0,0,0,32,255,20,0,0,52,255,0,52,255,4,0,0,52,255,0,0,0,52,255,4,0,0,0,0,0, + 0,0,52,255,3,0,52,255,33,86,243,35,0,0,0,52,255,4,0,0,0,0,52,255,4,127,89,52, + 255,0,52,255,4,52,230,58,255,0,38,255,15,0,0,64,244,0,52,255,4,0,0,0,0,0,38, + 255,15,0,0,64,247,0,52,255,4,1,87,251,67,0,0,0,0,0,32,176,207,0,0,0,0,52,255, + 4,0,0,51,255,4,0,0,52,255,0,0,6,242,42,121,174,0,0,39,234,136,91,168,112,218, + 0,0,0,153,180,211,98,0,0,0,0,52,255,4,0,0,0,0,0,80,228,15,0,0,0,0,0,52,255,4, + 0,0,0,0,0,0,200,101,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 127,255,37,243,102,5,147,255,0,11,241,250,248,248,253,173,0,52,255,4,0,0,58, + 249,0,0,228,84,0,0,0,0,0,52,255,4,0,0,126,186,0,52,255,4,0,0,0,0,0,0,52,255,4 + ,0,0,0,0,1,230,78,0,0,52,255,0,52,255,4,0,0,52,255,0,0,0,52,255,4,0,0,0,0,0,0 + ,0,61,250,0,0,52,255,4,0,170,199,3,0,0,52,255,4,0,0,0,0,52,255,4,0,0,52,255,0 + ,52,255,4,0,192,149,255,0,6,247,54,0,0,104,204,0,52,255,4,0,0,0,0,0,6,247,54, + 0,0,104,209,0,52,255,4,0,0,151,207,0,0,0,0,0,0,61,253,0,0,0,0,52,255,4,0,0,40 + ,255,8,0,0,56,248,0,0,0,171,112,192,97,0,0,4,250,199,35,111,196,178,0,0,66, + 241,28,64,236,21,0,0,0,52,255,4,0,0,0,0,14,228,75,0,0,0,0,0,0,52,255,4,0,0,0, + 0,0,0,80,218,2,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,238 + ,80,75,219,234,164,248,0,77,249,16,0,0,87,245,0,52,255,4,0,9,145,216,0,0,102, + 222,50,0,22,89,0,52,255,4,7,82,239,67,0,52,255,4,0,0,0,0,0,0,52,255,4,0,0,0,0 + ,0,109,215,40,0,81,255,0,52,255,4,0,0,52,255,0,0,0,52,255,4,0,0,0,43,112,13,3 + ,145,201,0,0,52,255,4,0,20,233,126,0,0,52,255,11,8,8,8,0,52,255,4,0,0,52,255, + 0,52,255,4,0,75,246,255,0,0,163,173,9,23,212,114,0,52,255,4,0,0,0,0,0,0,162, + 173,9,23,212,123,0,52,255,4,0,0,25,246,0,14,123,29,0,18,163,202,0,0,0,0,52, + 255,4,0,0,5,232,107,3,9,151,190,0,0,0,93,195,248,21,0,0,0,216,233,0,54,254, + 139,0,10,221,108,0,0,168,163,0,0,0,52,255,4,0,0,0,0,151,163,0,0,0,0,0,0,0,52, + 255,4,0,0,0,0,0,0,1,214,84,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,127,146,193,1,0,0,0,0,0,155,179,0,0,0,11,245,0,52,255,244,243,239,184,44 + ,0,0,0,99,214,244,237,140,0,52,255,244,240,191,69,0,0,52,255,244,244,244,244, + 99,0,0,52,255,4,0,0,0,0,0,0,109,219,243,223,116,0,52,255,4,0,0,52,255,0,0,244 + ,246,255,244,244,0,0,27,186,240,244,204,50,0,0,52,255,4,0,0,82,251,0,0,52,255 + ,255,255,255,255,0,52,255,4,0,0,52,255,0,52,255,4,0,1,213,255,0,0,16,171,241, + 237,143,3,0,52,255,4,0,0,0,0,0,0,16,170,241,254,187,6,0,52,255,4,0,0,0,138,0, + 9,171,229,246,240,177,33,0,0,0,0,52,255,4,0,0,0,51,197,244,241,177,28,0,0,0, + 18,252,198,0,0,0,0,176,179,0,5,247,99,0,144,199,2,0,0,27,243,0,0,0,52,255,4,0 + ,0,0,0,254,247,244,244,244,244,0,0,0,52,255,4,0,0,0,0,0,0,0,96,203,0,0,0,0,0, + 52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,16,216,165,31,2,24,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,87,237,57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,5,226,68,0,0,0,0,52, + 255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,19,144,222,242,159,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,58,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,248,240,123,0,0,0,0,0,0,0,71,79,0,0,0,168, + 241,248,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,244,244,244,244,244,244,99,0,0,127,127,127,127,127,127,127,0,127,127, + 127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127 + ,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127 + ,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127 + ,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127 + ,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127 + ,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,9,124,20,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,140,0,127,0,0,112,174,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,4,221,0,127,0,0,0,159,98,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,0,0,0,0,0,0,0,0,0,0,0,2,166,243,244,102,0, + 0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,49,244,3,0,0,0,0,0,49,244,3,0,0,0,52 + ,255,4,0,0,0,0,11,244,246,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,158,239,209,0,0,0,0,52,255,4,0,0,11 + ,244,233,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,162,0,127,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,0,0,0,0,0, + 0,0,0,0,0,0,46,255,24,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,255,46,0,0,0,0,0 + ,52,255,4,0,0,0,0,96,244,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,81,0,127,0,0,0 + ,0,0,0,0,0,0,103,213,244,239,180,36,0,52,255,122,232,241,159,9,0,0,12,151,233 + ,244,202,40,0,0,26,183,244,223,133,255,0,0,13,156,236,241,165,12,0,19,244,246 + ,255,244,244,102,0,0,25,182,244,221,127,255,0,52,255,111,233,235,80,0,0,0,0, + 244,246,255,4,0,0,0,45,244,246,255,4,0,0,0,52,255,4,0,122,210,0,0,0,52,255,4, + 0,0,0,255,173,246,137,195,245,114,0,52,255,111,233,235,80,0,0,0,29,182,242, + 237,157,11,0,52,255,121,231,241,161,10,0,0,26,183,244,222,130,255,0,0,52,255, + 78,217,244,175,0,0,0,109,226,245,229,114,0,19,244,246,255,244,244,152,0,52, + 255,4,0,52,255,4,0,51,242,9,0,0,73,228,0,226,63,0,0,0,0,140,0,13,219,93,0,0, + 173,156,0,40,250,19,0,0,50,245,0,0,209,244,244,246,255,0,0,0,0,0,51,255,4,0,0 + ,0,0,0,52,255,4,0,0,0,0,52,255,3,0,0,0,0,0,0,0,0,0,0,0,0,5,8,0,1,219,10,0,127 + ,0,0,0,0,0,0,0,0,0,93,52,2,9,162,204,0,52,255,163,9,19,198,144,0,0,174,188,24 + ,0,53,43,0,0,193,157,7,20,200,255,0,0,173,186,16,11,179,152,0,0,0,52,255,4,0, + 0,0,0,189,167,10,19,199,255,0,52,255,121,2,133,219,0,0,0,0,0,52,255,4,0,0,0,0 + ,0,52,255,4,0,0,0,52,255,4,133,204,19,0,0,0,52,255,4,0,0,0,255,51,99,255,55, + 96,227,0,52,255,121,2,133,219,0,0,0,198,158,8,19,198,149,0,52,255,163,9,19, + 198,145,0,0,192,158,8,20,198,255,0,0,52,255,169,20,2,52,0,0,31,255,62,0,20,57 + ,0,0,0,52,255,4,0,0,0,52,255,4,0,52,255,4,0,0,216,84,0,0,162,139,0,166,118,0, + 0,0,0,195,0,0,49,235,36,104,211,9,0,0,200,106,0,0,142,163,0,0,0,0,0,149,171,0 + ,0,0,0,0,54,255,2,0,0,0,0,0,52,255,4,0,0,0,0,50,255,5,0,0,0,0,0,0,0,0,0,0,0, + 95,232,100,0,55,175,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,61,252,0,52,255,33,0,0, + 81,233,0,22,255,41,0,0,0,0,0,25,255,32,0,0,82,255,0,21,255,49,0,0,70,236,0,0, + 0,52,255,4,0,0,0,24,255,35,0,0,82,255,0,52,255,18,0,56,254,1,0,0,0,0,52,255,4 + ,0,0,0,0,0,52,255,4,0,0,0,52,255,146,227,15,0,0,0,0,52,255,4,0,0,0,255,8,56, + 255,8,56,253,0,52,255,18,0,56,254,1,0,27,255,32,0,0,81,234,0,52,255,33,0,0,81 + ,232,0,25,255,32,0,0,81,255,0,0,52,255,41,0,0,0,0,0,26,252,96,11,0,0,0,0,0,52 + ,255,4,0,0,0,52,255,4,0,52,255,4,0,0,125,173,0,8,242,48,0,106,173,0,192,118,4 + ,246,0,0,0,106,212,234,40,0,0,0,103,199,0,3,230,67,0,0,0,0,90,216,13,0,0,0,0, + 1,121,226,0,0,0,0,0,0,52,255,4,0,0,0,0,22,252,74,0,0,0,0,115,225,233,149,42, + 25,0,15,54,177,0,136,94,0,0,127,0,0,0,0,0,0,0,0,0,78,197,237,240,243,255,0,52 + ,255,6,0,0,55,254,0,47,255,7,0,0,0,0,0,48,255,6,0,0,55,255,0,47,255,240,240, + 240,241,247,0,0,0,52,255,4,0,0,0,48,255,7,0,0,55,255,0,52,255,4,0,52,255,4,0, + 0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,52,255,187,238,80,0,0,0,0,52,255,4,0, + 0,0,255,4,52,255,4,52,255,0,55,255,4,0,52,255,4,0,48,255,6,0,0,55,254,0,52, + 255,6,0,0,55,254,0,48,255,6,0,0,55,255,0,0,52,255,6,0,0,0,0,0,0,84,186,239, + 208,75,0,0,0,52,255,4,0,0,0,52,255,4,0,52,255,4,0,0,35,246,13,84,213,0,0,46, + 228,16,202,187,49,226,0,0,0,13,239,176,0,0,0,0,15,246,36,70,225,1,0,0,0,43, + 233,43,0,0,0,0,33,247,247,73,0,0,0,0,0,0,52,255,4,0,0,0,0,0,112,254,237,0,0,0 + ,139,14,17,117,219,229,0,0,1,219,8,211,18,0,0,127,0,0,0,0,0,0,0,0,24,251,86,5 + ,0,65,255,0,52,255,32,0,0,80,232,0,22,255,41,0,0,0,0,0,25,255,32,0,0,81,255,0 + ,22,255,21,0,0,0,0,0,0,0,52,255,4,0,0,0,25,255,34,0,0,81,255,0,52,255,4,0,52, + 255,4,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,52,255,8,84,237,29,0,0,0,51, + 255,5,0,0,0,255,4,52,255,4,52,255,0,56,255,4,0,52,255,4,0,27,255,32,0,0,81, + 234,0,52,255,32,0,0,80,233,0,26,255,32,0,0,81,255,0,0,52,255,4,0,0,0,0,0,0,0, + 0,4,126,237,0,0,0,51,255,4,0,0,0,48,255,8,0,66,255,4,0,0,0,199,94,173,122,0,0 + ,2,239,110,116,189,116,166,0,0,0,166,166,222,90,0,0,0,0,166,128,162,131,0,0,0 + ,13,216,90,0,0,0,0,0,0,3,137,210,0,0,0,0,0,0,52,255,4,0,0,0,0,14,244,89,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,154,117,188,0,0,0,127,0,0,0,0,0,0,0,0,33,255,68,0,26,189 + ,255,0,52,255,160,8,17,195,143,0,0,177,185,23,0,50,42,0,0,194,158,7,19,198, + 255,0,0,176,162,17,0,32,76,0,0,0,52,255,4,0,0,0,0,191,164,10,17,195,255,0,52, + 255,4,0,52,255,4,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,52,255,4,0,156,194 + ,0,0,0,24,254,67,0,0,0,255,4,52,255,4,52,255,0,56,255,4,0,52,255,4,0,0,200, + 158,7,19,198,151,0,52,255,160,8,17,195,146,0,0,194,158,7,19,198,255,0,0,52, + 255,4,0,0,0,0,0,31,72,8,2,124,230,0,0,0,30,255,51,0,0,0,15,251,62,0,147,255,4 + ,0,0,0,108,195,246,32,0,0,0,182,228,42,120,228,106,0,0,103,217,11,55,238,39,0 + ,0,0,70,222,242,36,0,0,0,172,148,0,0,0,0,0,0,0,0,57,254,1,0,0,0,0,0,52,255,4, + 0,0,0,0,49,255,8,0,0,0,0,0,0,0,0,0,0,0,0,0,78,244,107,0,0,0,127,0,0,0,0,0,0,0 + ,0,0,114,231,243,204,108,255,0,52,255,120,232,240,159,9,0,0,14,153,234,244, + 206,41,0,0,28,184,244,223,132,255,0,0,14,155,234,244,218,111,0,0,0,52,255,4,0 + ,0,0,0,27,184,245,221,123,255,0,52,255,4,0,52,255,4,0,0,118,244,246,255,244, + 244,0,0,0,0,52,255,4,0,0,0,52,255,4,0,11,217,0,0,0,0,121,240,244,114,0,255,4, + 52,255,4,52,255,0,56,255,4,0,52,255,4,0,0,31,184,243,238,160,12,0,52,255,120, + 232,241,160,10,0,0,28,185,244,223,130,255,0,0,52,255,4,0,0,0,0,0,35,199,242, + 246,204,61,0,0,0,0,141,236,229,142,0,0,120,234,191,137,255,4,0,0,0,21,251,197 + ,0,0,0,0,122,224,0,45,255,46,0,48,241,50,0,0,118,210,0,0,0,2,227,198,0,0,0,0, + 255,246,244,244,244,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,52,255,4,0, + 0,0,0,0,0,0,0,0,0,0,0,0,10,245,27,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,72,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,254,1,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52 + ,255,4,0,0,0,0,0,0,0,0,0,0,52,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 199,105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,255,5,0,0,0,0,0,52,255,4,0,0,0,0,53, + 255,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,53,55,2,15,182,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,121,215,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,52,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,64,244,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,255,56,0,0,0,0,0,52,255,4,0,0 + ,0,0,106,232,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,75,220,246,237,162,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 194,246,227,68,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,52,255,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,203,237,92,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,133,229,206, + 0,0,0,0,52,255,4,0,0,11,240,221,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127 + ,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127 + ,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127 + ,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127 + ,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127 + ,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,187,58,108,143,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,102,10,58,54,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,97,59,0,0,0,0,0,0,0,0,0,0,0,0,0,33,222,208,8,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,60,194,183,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,48,240,52,240,3,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,58,199,211,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,184,143,119,77,39,156,0, + 0,0,73,164,22,196,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42, + 179,3,188,30,0,0,0,0,0,0,0,0,0,0,127,0,4,134,230,245,210,44,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,57,219,243,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52, + 255,4,0,0,0,0,0,52,255,4,0,0,0,0,4,195,31,94,137,0,0,109,231,221,73,0,0,0,0,0 + ,47,189,243,241,204,73,0,0,0,0,0,0,0,0,0,0,26,175,241,247,255,244,0,0,0,0,0,0 + ,0,0,0,0,244,244,244,244,249,254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,111, + 129,0,0,0,0,0,0,52,255,4,0,0,0,0,111,178,0,111,129,0,0,52,255,4,52,255,4,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156,224,40,191,0,0,0,196,0, + 196,159,147,211,0,0,0,0,125,231,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,143,189,126,0,0,0,171,161,0,0,1,208,134,0,127,0,137,197,27,0,51 + ,39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,218,103,1,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,254,51,101 + ,235,0,0,0,0,8,233,119,7,3,56,63,0,0,0,0,0,0,0,0,0,0,181,177,20,52,255,4,0,0, + 0,0,0,0,0,0,0,0,0,0,0,1,192,148,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,206, + 69,0,0,0,0,0,0,62,241,1,0,0,0,0,206,94,0,206,69,0,0,62,241,1,66,241,1,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,174,39,188,126,0,0,0,196,0,196 + ,55,118,196,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,15,125,8,0,0,0,29,241,39,0,85,240,17,0,127,8,244,57,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,249,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118, + 244,246,255,244,244,72,0,118,244,246,255,244,244,72,0,0,0,0,0,0,0,0,0,254,50, + 100,234,1,57,97,0,46,255,15,0,0,0,0,0,0,0,0,0,31,0,0,0,10,252,51,0,52,255,4,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,101,223,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,35, + 255,14,0,0,0,0,0,0,118,157,0,0,0,0,35,255,18,35,255,14,0,0,120,157,0,143,157, + 0,0,0,0,84,234,231,76,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 196,0,196,0,0,196,0,0,0,109,226,245,229,114,0,0,0,0,30,0,0,0,0,0,103,239,220, + 122,231,236,0,0,0,0,0,0,0,0,0,0,209,244,244,246,255,0,0,0,120,167,2,213,127,0 + ,0,127,240,255,241,240,236,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,74, + 210,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0 + ,0,0,0,0,0,0,0,0,0,111,234,255,210,148,92,14,0,10,232,176,72,17,0,0,0,0,0,0, + 55,219,0,0,0,40,255,14,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,25,238,68,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,178,63,0,0,0,0,52,255,4, + 52,255,4,0,0,181,63,0,225,63,0,0,0,0,234,255,255,232,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,255,62,0,20,57,0,0,0,0,218, + 54,0,0,0,5,243,62,113,255,57,106,0,0,0,0,0,0,0,0,0,0,0,0,0,149,171,0,0,0,6, + 214,135,237,14,0,0,127,51,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 22,240,247,250,240,150,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0 + ,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,129,149,89,13,0,0,0,0,0,33,152,222,253,188, + 37,0,0,0,85,217,46,0,0,0,49,255,6,0,52,255,240,0,0,0,0,0,0,0,0,0,0,0,0,173, + 156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,234,255,255,232,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,252,96,11,0,0,0,0,0,0,46,217,85, + 0,0,39,255,11,62,255,6,54,0,0,0,0,0,0,0,0,0,0,0,0,90,216,13,0,0,0,0,68,255, + 121,0,0,0,127,240,255,240,240,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 156,126,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4 + ,0,0,0,0,0,0,0,0,0,0,0,113,231,221,73,73,223,225,0,0,0,0,0,27,170,207,0,0,0, + 229,102,0,0,0,0,40,255,14,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,80,228,15,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,84,235,233,79,0,0,244,244,244,244,244,244,244,0,244,244, + 244,244,244,244,244,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,186,239,208,75,0 + ,0,0,0,0,103,229,0,0,50,255,5,53,255,240,241,0,3,0,0,0,0,0,0,0,0,0,43,233,43, + 0,0,0,0,0,0,252,60,0,0,0,127,9,247,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,200,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,116, + 240,243,255,240,240,71,0,0,0,0,0,0,0,0,0,254,51,102,235,229,51,101,0,0,0,0,0, + 0,61,253,0,0,0,29,206,115,0,0,0,10,252,51,0,52,255,4,0,0,0,0,0,0,0,0,0,0,14, + 228,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,126,237,0,0,0,0,116,206,29,0,0 + ,39,255,11,60,255,8,0,0,0,0,0,0,0,0,0,0,0,13,216,90,0,0,0,0,0,0,0,252,60,0,0, + 0,127,0,146,201,26,0,50,39,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,1,243,45, + 0,0,0,0,52,255,4,52,255,4,0,44,220,3,44,220,3,44,0,3,0,52,255,4,0,0,0,0,0,52, + 255,4,0,0,0,0,0,0,0,0,0,0,0,254,47,99,235,230,47,97,0,15,135,41,5,30,171,202, + 0,0,0,0,12,180,0,0,0,0,181,177,19,52,255,4,0,0,0,0,0,0,0,0,0,0,151,163,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,72,8,2,124,230,0,0,0,0,179,12,0,0,0,6,244,62, + 114,255,80,0,0,1,0,0,0,0,0,0,0,0,172,148,0,0,0,0,0,0,0,0,252,60,0,0,0,127,0,6 + ,140,231,245,213,44,0,0,0,0,0,0,0,0,0,0,0,62,241,1,0,0,0,0,0,33,253,7,0,0,0,0 + ,62,241,1,66,241,1,0,52,255,4,52,255,4,52,0,4,0,52,255,4,0,0,0,0,0,52,255,4,0 + ,0,0,0,0,0,0,0,0,0,0,116,239,229,79,79,231,233,0,9,166,229,252,240,177,33,0,0 + ,0,0,0,3,0,0,0,0,26,177,242,247,255,244,0,0,0,0,0,0,0,0,0,0,254,247,244,244, + 244,244,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,35,199,242,246,204,61,0,0,0,0,2,0,0,0,0,0, + 105,240,221,111,222,244,0,1,0,0,0,0,0,0,0,0,255,246,244,244,244,0,0,0,0,0,252 + ,60,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,157,0,0,0,0,0,0,85,212, + 0,0,0,0,0,120,157,0,143,157,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255 + ,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,181,63,0,0,0,0,30,11,195,131, + 0,0,0,0,0,181,63,0,225,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,227,245,177,12,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,127, + 127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0 + ,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127 + ,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127 + ,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127 + ,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127 + ,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127 + ,127,127,127,127,127,127,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,58,98,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2, + 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,221,50,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,185,255,4,0,0,0,0,106,186,255,4,0,0 + ,0,0,0,144,235,229,126,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0, + 0,0,0,0,49,244,3,0,0,0,0,0,0,0,52,255,4,0,0,0,0,86,224,245,206,0,0,0,0,0,0,0, + 0,0,215,116,0,0,0,164,172,0,0,0,0,52,255,4,0,0,0,110,227,245,223,102,0,0,0,49 + ,244,53,244,3,0,0,0,0,0,0,0,0,0,0,0,0,122,237,237,102,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,244,244,244,175,0,0,0,0,116,239,227,77,0,0,0 + ,0,0,0,0,0,0,0,0,0,116,235,233,108,0,0,0,0,165,239,235,132,0,0,0,0,0,173,88,0 + ,0,0,0,0,0,0,0,0,0,0,0,40,184,245,255,246,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,101,185,255,4,0,0,0,0,77,219,247,201,45,0,0,0,0,0,0,0,0,0,0,52,255,4,0 + ,0,0,0,0,52,255,4,0,0,0,0,0,17,0,101,238,0,0,0,0,0,49,244,3,0,0,0,0,0,0,0,0,0 + ,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,11,245,105,1, + 43,0,0,0,0,0,0,0,0,0,62,241,25,0,61,236,23,0,0,0,0,52,255,4,0,0,33,255,60,0, + 26,51,0,0,0,0,0,0,0,0,0,0,0,53,181,236,230,161,31,0,0,0,33,1,102,238,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,181,236,230,161,31,0,0,0,0,0,0,0,0,0,0,30, + 254,51,99,236,0,0,0,0,0,0,0,0,0,0,0,0,42,3,96,248,0,0,0,0,15,2,107,236,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,226,255,255,255,56,255,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,14,244,93,2,142,209,0,0,0,0,0,0,0,0,0,0,52, + 255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,0,222,242,72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,161,243,255,236,0,0,0,47, + 255,11,0,0,0,0,82,25,0,0,44,64,0,0,155,165,3,210,93,0,0,0,0,0,52,255,4,0,0,15 + ,230,104,0,0,0,0,0,0,0,0,0,0,0,0,0,67,255,255,253,224,140,233,0,0,3,160,237, + 243,255,3,0,0,0,0,31,0,0,31,0,0,0,0,0,0,0,0,0,67,255,255,251,251,255,233,0,0, + 0,0,0,0,0,0,0,0,30,254,50,100,234,0,0,0,0,0,52,255,4,0,0,0,0,0,0,113,173,0,0, + 0,0,0,244,239,67,0,0,0,0,0,0,0,0,0,0,52,255,4,0,52,255,4,0,45,255,255,255,255 + ,56,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,47,255,12,0,61 + ,253,0,0,30,0,0,30,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,108,224, + 0,0,0,0,0,44,255,3,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0 + ,0,0,0,174,182,65,255,13,0,0,0,52,255,4,0,0,0,0,79,222,204,189,221,47,0,123, + 185,244,166,235,176,90,0,0,0,0,52,255,4,0,0,0,100,237,188,46,0,0,0,0,0,0,0,0, + 0,0,0,222,255,110,2,21,6,156,0,0,42,255,40,100,255,4,0,0,0,55,219,0,55,218,0, + 0,0,0,0,0,0,0,0,222,161,255,4,86,247,157,0,0,0,0,0,0,0,0,0,0,0,114,233,220,71 + ,0,0,0,0,0,52,255,4,0,0,0,0,0,65,191,12,0,0,0,0,0,0,107,224,0,0,0,0,0,0,0,0,0 + ,0,52,255,4,0,52,255,4,0,19,250,255,255,255,56,255,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,52,255,4,0,0,0,12,243,94,4,144,206,0,0,218,54,0,219,54,0,0,81, + 176,212,160,0,28,70,0,81,176,212,168,31,8,78,0,0,35,1,114,240,0,0,0,0,0,63, + 242,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,22,255, + 48,52,255,4,0,0,172,243,255,240,240,37,0,0,17,230,49,97,201,0,0,0,0,101,255, + 50,0,0,0,0,0,0,52,255,4,0,0,21,249,20,108,240,103,0,0,0,0,0,0,0,0,0,0,255,255 + ,14,0,0,0,67,0,0,5,182,234,147,248,3,0,0,85,219,47,85,212,43,0,186,244,244, + 244,244,245,252,0,255,71,255,244,232,84,67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,240,240,243,255,240,240,0,0,0,56,182,13,0,0,0,0,0,42,1,116,239,0,0,0,0,0,0, + 0,0,0,0,52,255,4,0,52,255,4,0,0,105,248,255,255,56,255,0,0,0,44,220,3,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,81,176,212,168,49,0,0,0,72,213,242,195,40,0,0,44,213,85,48 + ,220,85,0,0,2,56,132,204,195,104,0,0,0,12,86,169,231,170,0,0,180,240,219,87, + 42,91,0,0,15,210,132,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,52,255,4 + ,0,0,0,0,48,255,11,52,255,4,0,0,0,52,255,4,0,0,0,0,16,229,53,101,198,0,0,168, + 240,243,255,240,240,123,0,0,0,0,0,0,0,0,0,30,254,67,0,93,244,0,0,0,0,0,0,0,0, + 0,0,255,222,111,4,17,5,67,0,0,0,0,0,0,0,0,0,0,229,109,0,229,89,0,0,0,0,0,0,0, + 52,255,0,255,71,255,9,178,76,67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52, + 255,4,0,0,0,0,173,242,240,240,11,0,0,0,200,241,217,82,0,0,0,0,0,0,0,0,0,0,52, + 255,4,0,52,255,4,0,0,0,18,107,255,56,255,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,229,0,109,229,0,150,216,167,92,18,0,0 + ,0,92,177,230,162,79,8,0,0,21,98,143,151,148,110,60,0,0,186,168,2,0,0,0,0,0,0 + ,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,21,255,43,52,255,4,0,0, + 0,52,255,4,0,0,0,0,76,223,204,189,222,49,0,0,0,52,255,4,0,0,0,0,0,0,52,255,4, + 0,0,0,117,241,119,83,210,0,0,0,0,0,0,0,0,0,0,224,153,197,240,202,13,157,0,0,3 + ,240,240,240,240,11,0,0,29,207,117,29,205,112,0,0,0,0,0,0,50,248,0,224,156, + 228,3,22,188,166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,11,0,62,255,4,0,0,0,0,52,255, + 56,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,228,240,240,240, + 172,0,0,113,205,29,118,207,29,0,49,4,0,0,146,255,4,0,130,71,5,87,225,232,129, + 0,21,53,7,0,2,174,255,0,40,255,20,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0 + ,0,0,0,52,255,4,0,0,0,0,0,175,172,59,255,8,0,0,0,52,255,4,0,0,0,0,85,25,0,0, + 46,62,0,0,0,52,255,4,0,0,0,0,0,0,52,255,4,0,0,0,0,43,182,246,51,0,0,0,0,0,0,0 + ,0,0,0,68,240,97,7,14,129,232,0,0,0,0,0,0,0,0,0,0,0,12,180,0,12,180,0,0,0,0,0 + ,0,0,0,0,68,240,97,7,14,129,232,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,99,3,157,255,18,0 + ,0,0,0,52,255,56,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,179,12,0,179,12,0,0,0,0,0,44,141,255,4,0,0,0,0,28,5,88,239,0,0,0, + 0,0,126,102,255,0,23,252,95,8,66,99,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0 + ,0,52,255,4,0,0,0,0,0,13,156,235,255,231,0,0,244,246,255,244,244,244,0,0,0,0, + 0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,127,213,0,0,0,0,0,0,0 + ,0,0,0,0,53,184,236,232,164,31,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,3,0,0,0,0,0,0,0, + 0,0,0,53,184,236,232,164,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,244,244,244, + 244,244,244,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,163,243, + 148,208,191,0,0,0,0,52,255,56,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,136,53,255,4,0,0,0,0,0,9,168,67, + 0,0,0,0,84,94,52,255,0,0,101,231,249,202,68,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,52,255,4,0,0,1,72,10,3,120,233,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,52,255,56,255,0,0,0,0,0,0,0,0,0,0,0,0 + ,33,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,243, + 255,176,0,0,0,0,28,162,38,0,0,0,0,0,174,240,243,255,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,2,188,234,241,201,61,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,23,116,25, + 116,0,0,0,0,0,0,0,0,0,0,0,0,2,214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,143,245,244,244,0,0,0,0,0,0,52,255,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,116,199,178,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127 + ,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127 + ,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127 + ,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127 + ,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127 + ,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,0,0,51,90,0,0,0, + 0,0,0,0,6,119,17,0,0,0,0,4,117,84,0,0,0,0,2,196,190,20,191,0,0,0,0,0,0,0,0,0, + 0,0,0,145,237,102,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,44,0,0,0,0,0,0 + ,0,48,95,0,0,0,0,0,41,128,38,0,0,0,0,0,0,0,0,0,0,0,0,0,97,35,0,0,0,0,0,0,0,57 + ,85,0,0,0,0,0,46,127,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,217,181,17 + ,203,0,0,0,0,74,213,6,0,0,0,0,0,0,27,229,40,0,0,0,0,29,222,209,8,0,0,0,2,195, + 200,27,193,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,212,8, + 0,0,0,0,0,0,29,234,61,0,0,0,0,42,226,218,16,0,0,0,0,0,0,0,0,0,0,0,0,0,143,135 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,3,172,83,0,0,0,0,0,0,158,105,0 + ,0,0,0,0,154,91,157,84,0,0,0,34,144,63,189,101,0,0,0,48,240,52,240,3,0,0,0,32 + ,255,96,239,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39,201,20,0,0,0,0,0,25, + 203,35,0,0,0,0,24,188,62,188,22,0,0,0,48,240,52,240,3,0,0,0,0,42,195,12,0,0,0 + ,0,0,29,198,25,0,0,0,0,22,184,66,185,14,0,0,0,48,240,52,240,3,0,0,0,0,0,0,0,0 + ,0,0,0,74,110,77,192,109,0,0,0,0,0,139,130,0,0,0,0,0,0,177,92,0,0,0,0,1,183, + 63,107,141,0,0,0,37,141,60,187,123,0,0,0,48,240,3,48,240,3,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,151,143,0,0,0,0,0,1,189,104,0,0,0,0,8,200,53,93,169,0,0 + ,0,48,240,3,48,240,3,0,0,0,42,192,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,20,246,100,217,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,20,252,200, + 0,0,0,0,0,20,252,200,0,0,0,0,0,20,252,200,0,0,0,0,0,20,252,200,0,0,0,0,0,80, + 255,32,0,0,0,0,0,62,238,30,0,0,0,0,0,196,247,255,244,244,0,0,0,96,213,244,234 + ,137,0,52,255,244,244,244,244,68,0,52,255,244,244,244,244,68,0,52,255,244,244 + ,244,244,68,0,52,255,244,244,244,236,0,0,0,244,246,255,244,244,0,0,0,244,246, + 255,244,244,0,0,0,244,246,255,244,244,0,0,0,244,246,255,244,244,0,0,52,255, + 244,239,190,68,0,0,52,255,166,0,0,52,255,0,0,15,168,241,236,141,2,0,0,15,168, + 241,236,141,2,0,0,15,168,241,236,141,2,0,0,15,168,241,236,141,2,0,0,15,168, + 241,236,141,2,0,0,0,0,0,0,0,0,0,0,13,166,240,239,148,152,0,52,255,4,0,0,52, + 255,0,52,255,4,0,0,52,255,0,52,255,4,0,0,52,255,0,52,255,4,0,0,52,255,0,220, + 112,0,0,0,161,179,0,52,255,4,0,0,0,0,0,0,100,226,247,212,58,0,0,127,0,0,98, + 207,251,26,0,0,0,0,98,207,251,26,0,0,0,0,98,207,251,26,0,0,0,0,98,207,251,26, + 0,0,0,0,160,212,112,0,0,0,0,0,91,210,42,0,0,0,0,17,242,58,255,4,0,0,0,100,223 + ,50,0,22,89,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255 + ,4,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,52, + 255,4,0,0,0,52,255,4,7,81,238,66,0,52,255,242,30,0,52,255,0,0,160,175,10,24, + 213,112,0,0,160,175,10,24,213,112,0,0,160,175,10,24,213,112,0,0,160,175,10,24 + ,213,112,0,0,160,175,10,24,213,112,0,0,0,0,0,0,0,0,0,0,158,169,7,42,243,176,0 + ,52,255,4,0,0,52,255,0,52,255,4,0,0,52,255,0,52,255,4,0,0,52,255,0,52,255,4,0 + ,0,52,255,0,74,238,18,0,52,245,33,0,52,255,4,0,0,0,0,0,20,251,87,1,120,216,0, + 0,127,0,0,179,121,200,105,0,0,0,0,179,121,200,105,0,0,0,0,179,121,200,105,0,0 + ,0,0,179,121,200,105,0,0,0,3,236,97,192,0,0,0,0,0,185,107,136,0,0,0,0,86,189, + 52,255,4,0,0,0,227,84,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255, + 4,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,52, + 255,4,0,0,0,0,0,52,255,4,0,0,0,52,255,4,0,0,125,186,0,52,255,150,143,0,52,255 + ,0,6,246,54,0,0,105,204,0,6,246,54,0,0,105,204,0,6,246,54,0,0,105,204,0,6,246 + ,54,0,0,105,204,0,6,246,54,0,0,105,204,0,0,123,22,0,0,66,81,0,5,246,57,0,52, + 245,208,0,52,255,4,0,0,52,255,0,52,255,4,0,0,52,255,0,52,255,4,0,0,52,255,0, + 52,255,4,0,0,52,255,0,0,176,146,0,194,127,0,0,52,255,240,240,233,177,38,0,50, + 255,8,69,180,160,0,0,127,0,12,248,51,130,186,0,0,0,12,248,51,130,186,0,0,0,12 + ,248,51,130,186,0,0,0,12,248,51,130,186,0,0,0,64,222,16,250,19,0,0,0,25,230, + 26,227,2,0,0,0,159,125,52,255,4,0,0,31,255,21,0,0,0,0,0,52,255,4,0,0,0,0,0,52 + ,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0 + ,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,52,255,4,0,0,69,240,0, + 52,255,37,239,16,52,255,0,38,255,15,0,0,64,244,0,38,255,15,0,0,64,244,0,38, + 255,15,0,0,64,244,0,38,255,15,0,0,64,244,0,38,255,15,0,0,64,244,0,0,130,214, + 25,73,235,64,0,38,255,20,12,210,108,246,0,52,255,4,0,0,52,255,0,52,255,4,0,0, + 52,255,0,52,255,4,0,0,52,255,0,52,255,4,0,0,52,255,0,0,31,241,124,221,8,0,0, + 52,255,4,0,18,164,208,0,52,255,30,251,36,0,0,0,127,0,86,235,1,59,250,16,0,0, + 86,235,1,59,250,16,0,0,86,235,1,59,250,16,0,0,86,235,1,59,250,16,0,0,144,164, + 0,213,96,0,0,0,117,182,0,230,68,0,0,1,231,61,52,255,240,240,0,48,255,6,0,0,0, + 0,0,52,255,240,240,240,240,22,0,52,255,240,240,240,240,22,0,52,255,240,240, + 240,240,22,0,52,255,240,240,240,187,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0 + ,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,239,255,240,198,0,55,255,0,52,255,4, + 169,120,52,255,0,49,255,5,0,0,54,255,0,49,255,5,0,0,54,255,0,49,255,5,0,0,54, + 255,0,49,255,5,0,0,54,255,0,49,255,5,0,0,54,255,0,0,0,124,225,235,60,0,0,49, + 255,6,160,101,53,255,0,52,255,4,0,0,52,255,0,52,255,4,0,0,52,255,0,52,255,4,0 + ,0,52,255,0,52,255,4,0,0,52,255,0,0,0,124,255,75,0,0,0,52,255,4,0,0,59,253,0, + 52,255,26,245,109,2,0,0,127,0,167,167,0,4,240,92,0,0,167,167,0,4,240,92,0,0, + 167,167,0,4,240,92,0,0,167,167,0,4,240,92,0,0,223,105,0,154,176,0,0,0,210,130 + ,0,179,162,0,0,49,246,6,52,255,4,0,0,31,255,23,0,0,0,0,0,52,255,4,0,0,0,0,0, + 52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,52,255,4,0,0,0,0 + ,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,52,255,4,0,0,69,240,0 + ,52,255,4,52,230,58,255,0,38,255,15,0,0,64,244,0,38,255,15,0,0,64,244,0,38, + 255,15,0,0,64,244,0,38,255,15,0,0,64,244,0,38,255,15,0,0,64,244,0,0,0,80,241, + 224,31,0,0,40,255,92,164,0,63,245,0,51,255,4,0,0,52,255,0,51,255,4,0,0,52,255 + ,0,51,255,4,0,0,52,255,0,51,255,4,0,0,52,255,0,0,0,52,255,4,0,0,0,52,255,4,0, + 17,161,208,0,52,255,4,47,187,209,46,0,127,7,241,250,248,248,253,173,0,7,241, + 250,248,248,253,173,0,7,241,250,248,248,253,173,0,7,241,250,248,248,253,173,0 + ,48,255,249,248,250,246,10,0,49,255,249,248,250,244,11,0,122,251,240,243,255, + 4,0,0,0,228,88,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0 + ,0,0,52,255,4,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0, + 0,0,0,0,52,255,4,0,0,0,52,255,4,0,0,126,186,0,52,255,4,0,192,149,255,0,6,247, + 54,0,0,104,204,0,6,247,54,0,0,104,204,0,6,247,54,0,0,104,204,0,6,247,54,0,0, + 104,204,0,6,247,54,0,0,104,204,0,0,87,233,51,113,224,34,0,10,253,203,12,0,100 + ,203,0,40,255,9,0,0,57,248,0,40,255,9,0,0,57,248,0,40,255,9,0,0,57,248,0,40, + 255,8,0,0,56,248,0,0,0,52,255,4,0,0,0,52,255,240,240,234,178,38,0,52,255,4,0, + 0,116,220,0,127,74,249,16,0,0,87,245,0,74,249,16,0,0,87,245,0,74,249,16,0,0, + 87,245,0,74,249,16,0,0,87,245,0,128,211,0,0,15,248,80,0,143,187,0,0,5,234,94, + 0,195,109,0,52,255,4,0,0,0,102,228,62,5,34,99,0,52,255,4,0,0,0,0,0,52,255,4,0 + ,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255, + 4,0,0,0,0,8,58,255,11,8,0,0,0,0,52,255,4,0,0,0,52,255,4,7,82,239,67,0,52,255, + 4,0,75,246,255,0,0,163,173,9,23,212,114,0,0,163,173,9,23,212,114,0,0,163,173, + 9,23,212,114,0,0,163,173,9,23,212,114,0,0,163,173,9,23,212,114,0,0,166,49,0,0 + ,108,107,0,13,237,190,15,18,206,111,0,5,232,117,10,19,158,190,0,5,232,117,10, + 19,158,190,0,5,232,117,10,19,158,190,0,5,232,107,3,9,151,190,0,0,0,52,255,4,0 + ,0,0,52,255,4,0,0,0,0,0,52,255,34,8,2,118,240,0,127,155,179,0,0,0,11,245,0, + 155,179,0,0,0,11,245,0,155,179,0,0,0,11,245,0,155,179,0,0,0,11,245,0,208,126, + 0,0,0,176,160,0,232,94,0,0,0,144,188,0,251,31,0,52,255,244,244,0,0,0,99,214, + 255,240,135,0,52,255,244,244,244,244,99,0,52,255,244,244,244,244,99,0,52,255, + 244,244,244,244,99,0,52,255,244,244,244,244,22,0,0,244,246,255,244,244,0,0,0, + 244,246,255,244,244,0,0,0,255,255,255,255,255,0,0,0,244,246,255,244,244,0,0, + 52,255,244,240,191,69,0,0,52,255,4,0,1,213,255,0,0,16,171,241,237,143,3,0,0, + 16,171,241,237,143,3,0,0,16,171,241,237,143,3,0,0,16,171,241,237,143,3,0,0,16 + ,171,241,237,143,3,0,0,0,0,0,0,0,0,0,157,99,185,245,234,140,2,0,0,51,197,249, + 244,177,28,0,0,51,197,249,244,177,28,0,0,51,197,249,244,177,28,0,0,51,197,244 + ,241,177,28,0,0,0,52,255,4,0,0,0,52,255,4,0,0,0,0,0,52,255,116,240,246,211,74 + ,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,107,120,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,69,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,233,241,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,127,127,127,127,127,0,127,127,127,127,127 + ,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127, + 127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127 + ,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127 + ,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127 + ,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127 + ,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,226,228,110,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,8,195,125,0,0,0,0,0,0,0,0,98,212,15,0,0 + ,0,2,197,213,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,241,45,96,248,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,157,139,0,0,0,0,0,0,0,0,154,142,0,0,0,0,10, + 199,192,5,0,0,0,0,0,0,0,0,0,0,0,0,111,190,2,0,0,0,0,0,0,0,50,225,29,0,0,0,0, + 130,241,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,187,114,0 + ,0,0,0,0,0,0,1,161,149,1,0,0,0,24,211,193,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,217,9,0,0,0,0,0,0,0,44,223,23,0,0,0,0 + ,88,244,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,91,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,127,0,0,18,213,67,0,0,0,0,0,0,46,220,30,0,0,0,0,115,148,123,138,0,0,0, + 14,196,237,203,189,27,0,0,0,240,3,49,244,3,0,0,0,105,226,228,110,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,155,105,0,0,0,0,0,0,121,140,0,0,0,0,0,158,74,90 + ,145,0,0,0,0,240,3,49,244,3,0,0,0,0,158,122,0,0,0,0,0,0,12,210,56,0,0,0,0,38, + 200,77,175,0,0,0,49,244,53,244,3,0,0,0,3,138,202,114,121,12,0,0,86,232,214, + 194,37,0,0,0,0,7,172,97,0,0,0,0,0,0,144,133,0,0,0,0,6,185,54,92,153,0,0,0,25, + 206,234,199,174,3,0,0,49,244,3,49,244,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,123,138,0,0,0,0,0,0,2,195,59,0,0,0,0,11,204,78,171,0,0,0,0,49,244,53,244,3,0 + ,0,0,0,0,51,205,26,0,0,52,255,4,0,0,0,0,0,0,49,244,53,244,3,0,0,127,0,0,0,32, + 105,0,0,0,0,0,0,91,46,0,0,0,0,2,113,7,1,111,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,117,7,0,0,0,0,0,57,72,0,0,0,0,0 + ,74,38,0,93,20,0,0,0,0,0,0,0,0,0,0,51,110,93,212,36,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,1,109,6,0,0,0,0,0,35,80,0,0,0,0,0,49,64,0, + 96,15,0,0,0,0,0,0,0,0,0,0,0,0,0,103,25,0,0,0,52,255,4,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,127,0,103,213,244,239,180,36,0,0,103,213,244,240,180,36,0,0,103,213,244, + 239,180,36,0,0,103,213,244,239,180,36,0,0,103,213,244,239,180,36,0,0,103,213, + 244,239,180,36,0,0,132,239,226,131,234,236,0,0,12,151,233,244,202,40,0,0,13, + 156,236,241,165,12,0,0,13,156,236,241,165,12,0,0,13,156,236,241,165,12,0,0,13 + ,156,235,241,165,12,0,0,0,244,246,255,4,0,0,0,0,244,246,255,4,0,0,0,0,244,246 + ,255,4,0,0,0,148,244,255,4,0,0,0,0,25,178,243,251,214,9,0,52,255,111,233,235, + 80,0,0,0,29,182,242,237,157,11,0,0,29,182,242,237,157,11,0,0,29,182,242,237, + 157,11,0,0,29,182,242,237,157,11,0,0,29,182,242,237,157,11,0,0,0,0,49,244,3,0 + ,0,0,29,181,242,238,160,192,0,52,255,4,0,52,255,4,0,52,255,4,0,52,255,4,0,52, + 255,4,0,52,255,4,0,52,255,4,0,52,255,4,0,40,250,19,0,0,50,245,0,52,255,121, + 231,241,161,10,0,93,212,0,0,0,221,87,0,127,0,93,52,2,9,162,204,0,0,93,52,2,10 + ,165,204,0,0,93,52,2,9,162,204,0,0,93,52,2,9,162,204,0,0,93,52,2,9,162,204,0, + 0,93,52,2,9,159,204,0,0,48,4,120,255,57,104,0,0,174,188,24,0,53,43,0,0,173, + 187,16,11,178,153,0,0,173,187,16,11,178,153,0,0,173,186,16,11,179,152,0,0,173 + ,177,14,11,179,152,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0 + ,0,0,0,252,4,0,0,0,0,192,167,11,4,181,123,0,52,255,121,2,133,219,0,0,0,198, + 158,8,19,198,149,0,0,198,158,8,19,198,149,0,0,198,158,8,19,198,149,0,0,198, + 158,8,19,198,149,0,0,198,158,8,19,198,149,0,0,0,0,0,0,0,0,0,0,198,161,9,24, + 239,165,0,52,255,4,0,52,255,4,0,52,255,4,0,52,255,4,0,52,255,4,0,52,255,4,0, + 52,255,4,0,52,255,4,0,0,200,106,0,0,142,163,0,52,255,163,9,19,198,145,0,11, + 244,36,0,48,244,10,0,127,0,0,0,0,0,61,252,0,0,0,0,0,0,62,252,0,0,0,0,0,0,61, + 252,0,0,0,0,0,0,61,252,0,0,0,0,0,0,61,252,0,0,0,0,0,0,57,252,0,0,0,0,55,255,6 + ,54,0,22,255,41,0,0,0,0,0,21,255,50,0,0,67,236,0,21,255,50,0,0,67,236,0,21, + 255,49,0,0,70,236,0,21,255,37,0,0,70,236,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4, + 0,0,0,0,0,52,255,4,0,0,0,0,0,252,4,0,0,0,25,255,35,0,0,86,217,0,52,255,18,0, + 56,254,1,0,27,255,32,0,0,81,234,0,27,255,32,0,0,81,234,0,27,255,32,0,0,81,234 + ,0,27,255,32,0,0,81,234,0,27,255,32,0,0,81,234,0,0,240,240,240,240,240,240,0, + 27,255,31,2,168,165,235,0,52,255,4,0,52,255,4,0,52,255,4,0,52,255,4,0,52,255, + 4,0,52,255,4,0,52,255,4,0,52,255,4,0,0,103,199,0,3,230,67,0,52,255,33,0,0,81, + 232,0,0,162,117,0,130,165,0,0,127,0,78,197,237,240,243,255,0,0,71,189,224,224 + ,230,255,0,0,78,197,237,240,243,255,0,0,78,197,237,240,243,255,0,0,78,197,237 + ,240,243,255,0,0,78,197,237,240,243,255,0,0,125,231,244,255,240,241,0,50,255, + 7,0,0,0,0,0,47,255,225,224,224,227,239,0,47,255,225,224,224,227,239,0,47,255, + 240,240,240,241,247,0,47,255,240,240,240,241,247,0,0,0,0,52,255,4,0,0,0,0,0, + 52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,252,4,0,0,0,48,255,7,0,0,56,254,0,52, + 255,4,0,52,255,4,0,48,255,6,0,0,55,254,0,48,255,6,0,0,55,254,0,48,255,6,0,0, + 55,254,0,48,255,6,0,0,55,254,0,48,255,6,0,0,55,254,0,0,0,0,0,0,0,0,0,48,255,7 + ,152,111,54,255,0,52,255,4,0,52,255,4,0,52,255,4,0,52,255,4,0,52,255,4,0,52, + 255,4,0,52,255,4,0,52,255,4,0,0,15,246,36,70,225,1,0,52,255,6,0,0,55,254,0,0, + 68,197,0,212,76,0,0,127,24,251,95,6,0,62,255,0,23,250,82,2,0,65,255,0,24,251, + 86,5,0,65,255,0,24,251,86,5,0,65,255,0,24,251,86,5,0,65,255,0,24,251,86,5,0, + 65,255,0,32,255,57,53,255,8,0,0,22,255,41,0,0,0,0,0,22,255,23,0,0,0,0,0,22, + 255,23,0,0,0,0,0,22,255,21,0,0,0,0,0,22,255,21,0,0,0,0,0,0,0,0,52,255,4,0,0,0 + ,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,252,4,0,0,0,25,255,34,0,0,83,238,0 + ,52,255,4,0,52,255,4,0,27,255,32,0,0,81,234,0,27,255,32,0,0,81,234,0,27,255, + 32,0,0,81,234,0,27,255,32,0,0,81,234,0,27,255,32,0,0,81,234,0,0,0,0,48,240,3, + 0,0,27,255,165,129,0,81,234,0,48,255,8,0,66,255,4,0,48,255,8,0,66,255,4,0,48, + 255,8,0,66,255,4,0,48,255,8,0,66,255,4,0,0,0,166,128,162,131,0,0,52,255,32,0, + 0,80,233,0,0,2,226,62,238,5,0,0,127,33,255,38,0,4,170,255,0,33,255,69,0,26, + 189,255,0,33,255,68,0,26,189,255,0,33,255,68,0,26,189,255,0,33,255,68,0,26, + 189,255,0,33,255,68,0,26,189,255,0,38,255,39,95,255,76,1,0,0,177,185,23,0,50, + 42,0,0,176,165,17,0,32,76,0,0,176,165,17,0,32,76,0,0,176,162,17,0,32,76,0,0, + 176,162,17,0,29,79,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0,0,0,0,52,255,4,0,0 + ,0,0,0,252,4,0,0,0,0,194,163,8,21,202,156,0,52,255,4,0,52,255,4,0,0,200,158,7 + ,19,198,151,0,0,200,158,7,19,198,151,0,0,200,158,7,19,198,151,0,0,200,158,7, + 19,198,151,0,0,200,158,7,19,198,151,0,0,0,0,0,0,0,0,0,0,216,210,7,19,198,151, + 0,15,251,62,0,147,255,4,0,15,251,62,0,147,255,4,0,15,251,62,0,147,255,4,0,15, + 251,62,0,147,255,4,0,0,0,70,222,242,36,0,0,52,255,160,8,17,195,146,0,0,0,137, + 215,157,0,0,0,127,0,114,219,196,189,127,255,0,0,114,231,243,204,107,255,0,0, + 114,231,243,204,108,255,0,0,114,231,243,204,108,255,0,0,114,231,243,204,108, + 255,0,0,113,230,243,205,106,255,0,0,154,245,215,95,224,242,0,0,14,153,237,255 + ,207,42,0,0,14,155,234,244,218,111,0,0,14,155,234,244,218,111,0,0,14,155,234, + 244,218,111,0,0,14,153,233,244,220,120,0,0,118,244,246,255,244,244,0,0,108, + 224,230,255,224,224,0,0,108,224,230,255,224,224,0,22,244,244,255,244,244,34,0 + ,0,27,180,242,238,161,13,0,52,255,4,0,52,255,4,0,0,31,184,243,238,160,12,0,0, + 31,184,243,238,160,12,0,0,31,184,243,238,160,12,0,0,31,184,243,238,160,12,0,0 + ,31,184,243,238,160,12,0,0,0,0,0,0,0,0,0,95,164,178,242,238,160,12,0,0,120, + 234,191,137,255,4,0,0,120,234,191,137,255,4,0,0,120,234,191,137,255,4,0,0,120 + ,234,191,137,255,4,0,0,0,2,227,198,0,0,0,52,255,120,232,241,160,10,0,0,0,43, + 255,72,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,187,14,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,40,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,199,105,0,0,0,52,255,4,0,0,0,0,0,0,0,18,232,4,0, + 0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,1,167,67,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,64,244,16,0,0,0,52,255,4,0,0,0,0,0,0,0,132,148,0,0,0,0,127, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,242,213,19,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,203,237,92,0,0,0,0,52,255,4,0,0,0,0,0,11,243,209,25,0,0,0,0,0,127, + 127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127 + ,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127 + ,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127, + 0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127 + ,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0, + 127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127, + 127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127 + ,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127, + 127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127 + ,127,127,127,127,127,0,127,127,127,127,127,127,127,0,127,127,127,127,127,127, + 127,0,127,127,127,127,127,127,127,0 +}; + + +void TwGenerateDefaultFonts() +{ + g_DefaultSmallFont = TwGenerateFont(s_Font0, FONT0_BM_W, FONT0_BM_H); + assert(g_DefaultSmallFont && g_DefaultSmallFont->m_NbCharRead==224); + + g_DefaultNormalFont = TwGenerateFont(s_Font1, FONT1_BM_W, FONT1_BM_H); + assert(g_DefaultNormalFont && g_DefaultNormalFont->m_NbCharRead==224); + + g_DefaultNormalFontAA = TwGenerateFont(s_Font1AA, FONT1AA_BM_W, FONT1AA_BM_H); + assert(g_DefaultNormalFontAA && g_DefaultNormalFontAA->m_NbCharRead==224); + g_DefaultLargeFont = TwGenerateFont(s_Font2AA, FONT2AA_BM_W, FONT2AA_BM_H); + assert(g_DefaultLargeFont && g_DefaultLargeFont->m_NbCharRead==224); + g_DefaultFixed1Font = TwGenerateFont(s_FontFixed1, FONTFIXED1_BM_W, FONTFIXED1_BM_H); + assert(g_DefaultFixed1Font && g_DefaultFixed1Font->m_NbCharRead==224); +} + +// --------------------------------------------------------------------------- + +void TwDeleteDefaultFonts() +{ + delete g_DefaultSmallFont; + g_DefaultSmallFont = NULL; + delete g_DefaultNormalFont; + g_DefaultNormalFont = NULL; + delete g_DefaultNormalFontAA; + g_DefaultNormalFontAA = NULL; + delete g_DefaultLargeFont; + g_DefaultLargeFont = NULL; + delete g_DefaultFixed1Font; + g_DefaultFixed1Font = NULL; +} + +// --------------------------------------------------------------------------- diff --git a/btgui/OpenGLWindow/TwFonts.h b/btgui/OpenGLWindow/TwFonts.h new file mode 100644 index 000000000..801cf96a4 --- /dev/null +++ b/btgui/OpenGLWindow/TwFonts.h @@ -0,0 +1,67 @@ +// --------------------------------------------------------------------------- +// +// @file TwFonts.h +// @brief Bitmaps fonts +// @author Philippe Decaudin - http://www.antisphere.com +// @license This file is part of the AntTweakBar library. +// For conditions of distribution and use, see License.txt +// +// note: Private header +// +// --------------------------------------------------------------------------- + + +#if !defined ANT_TW_FONTS_INCLUDED +#define ANT_TW_FONTS_INCLUDED + +//#include + +/* +A source bitmap includes 224 characters starting from ascii char 32 (i.e. space) to ascii char 255: + + !"#$%&'()*+,-./0123456789:;<=>? +@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ +`abcdefghijklmnopqrstuvwxyz{|}~ +€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ + ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ +ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞß +àáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ + +First column of a source bitmap is a delimiter with color=zero at the end of each line of characters. +Last row of a line of characters is a delimiter with color=zero at the last pixel of each character. + +*/ + + +struct CTexFont +{ + unsigned char * m_TexBytes; + int m_TexWidth; // power of 2 + int m_TexHeight; // power of 2 + float m_CharU0[256]; + float m_CharV0[256]; + float m_CharU1[256]; + float m_CharV1[256]; + int m_CharWidth[256]; + int m_CharHeight; + int m_NbCharRead; + + CTexFont(); + ~CTexFont(); +}; + + +CTexFont *TwGenerateFont(const unsigned char *_Bitmap, int _BmWidth, int _BmHeight); + + +extern CTexFont *g_DefaultSmallFont; +extern CTexFont *g_DefaultNormalFont; +extern CTexFont *g_DefaultNormalFontAA; +extern CTexFont *g_DefaultLargeFont; +extern CTexFont *g_DefaultFixed1Font; + +void TwGenerateDefaultFonts(); +void TwDeleteDefaultFonts(); + + +#endif // !defined ANT_TW_FONTS_INCLUDED diff --git a/btgui/OpenGLWindow/Win32InternalWindowData.h b/btgui/OpenGLWindow/Win32InternalWindowData.h new file mode 100644 index 000000000..374b1b92e --- /dev/null +++ b/btgui/OpenGLWindow/Win32InternalWindowData.h @@ -0,0 +1,65 @@ + +#ifndef WIN32_INTERNAL_WINDOW_DATA_H +#define WIN32_INTERNAL_WINDOW_DATA_H + +#include + +struct InternalData2 +{ + HWND m_hWnd;; + int m_fullWindowWidth;//includes borders etc + int m_fullWindowHeight; + + int m_openglViewportWidth;//just the 3d viewport/client area + int m_openglViewportHeight; + + HDC m_hDC; + HGLRC m_hRC; + bool m_OpenGLInitialized; + int m_oldScreenWidth; + int m_oldHeight; + int m_oldBitsPerPel; + bool m_quit; + int m_mouseLButton; + int m_mouseRButton; + int m_mouseMButton; + int m_mouseXpos; + int m_mouseYpos; + + btWheelCallback m_wheelCallback; + btMouseMoveCallback m_mouseMoveCallback; + btMouseButtonCallback m_mouseButtonCallback; + btResizeCallback m_resizeCallback; + btKeyboardCallback m_keyboardCallback; + + + + InternalData2() + { + m_hWnd = 0; + m_mouseLButton=0; + m_mouseRButton=0; + m_mouseMButton=0; + + m_fullWindowWidth = 0; + m_fullWindowHeight= 0; + m_openglViewportHeight=0; + m_openglViewportWidth=0; + m_hDC = 0; + m_hRC = 0; + m_OpenGLInitialized = false; + m_oldScreenWidth = 0; + m_oldHeight = 0; + m_oldBitsPerPel = 0; + m_quit = false; + + m_keyboardCallback = 0; + m_mouseMoveCallback = 0; + m_mouseButtonCallback = 0; + m_resizeCallback = 0; + m_wheelCallback = 0; + + } +}; + +#endif //WIN32_INTERNAL_WINDOW_DATA_H \ No newline at end of file diff --git a/btgui/OpenGLWindow/Win32OpenGLWindow.cpp b/btgui/OpenGLWindow/Win32OpenGLWindow.cpp new file mode 100644 index 000000000..9c65a4f88 --- /dev/null +++ b/btgui/OpenGLWindow/Win32OpenGLWindow.cpp @@ -0,0 +1,139 @@ +/* +Copyright (c) 2012 Advanced Micro Devices, Inc. + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ +//Originally written by Erwin Coumans + + +#include "Win32OpenGLWindow.h" + +#include "OpenGLInclude.h" + +#include "BulletCommon/btVector3.h" + +#include "Win32InternalWindowData.h" +#include + +static void printGLString(const char *name, GLenum s) { + const char *v = (const char *) glGetString(s); + printf("GL %s = %s\n", name, v); +} + + + +void Win32OpenGLWindow::enableOpenGL() +{ + + PIXELFORMATDESCRIPTOR pfd; + int format; + + // get the device context (DC) + m_data->m_hDC = GetDC( m_data->m_hWnd ); + + // set the pixel format for the DC + ZeroMemory( &pfd, sizeof( pfd ) ); + pfd.nSize = sizeof( pfd ); + pfd.nVersion = 1; + pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; + pfd.iPixelType = PFD_TYPE_RGBA; + pfd.cColorBits = 32; + pfd.cDepthBits = 16; + pfd.cStencilBits = 1; + pfd.iLayerType = PFD_MAIN_PLANE; + format = ChoosePixelFormat( m_data->m_hDC, &pfd ); + SetPixelFormat( m_data->m_hDC, format, &pfd ); + + // create and enable the render context (RC) + m_data->m_hRC = wglCreateContext( m_data->m_hDC ); + wglMakeCurrent( m_data->m_hDC, m_data->m_hRC ); + + printGLString("Version", GL_VERSION); + printGLString("Vendor", GL_VENDOR); + printGLString("Renderer", GL_RENDERER); + printGLString("Extensions", GL_EXTENSIONS); + +} + + + +void Win32OpenGLWindow::disableOpenGL() +{ + wglMakeCurrent( NULL, NULL ); + wglDeleteContext( m_data->m_hRC ); +// ReleaseDC( m_data->m_hWnd, m_data->m_hDC ); + +} + + + + + +void Win32OpenGLWindow::createWindow(const btgWindowConstructionInfo& ci) +{ + Win32Window::createWindow(ci); + + //VideoDriver = video::createOpenGLDriver(CreationParams, FileSystem, this); + enableOpenGL(); + +} + + + + +Win32OpenGLWindow::Win32OpenGLWindow() +{ + + +} + +Win32OpenGLWindow::~Win32OpenGLWindow() +{ + +} + + +void Win32OpenGLWindow::closeWindow() +{ + disableOpenGL(); + + Win32Window::closeWindow(); +} + + +void Win32OpenGLWindow::startRendering() +{ + pumpMessage(); + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); //clear buffers + + //glCullFace(GL_BACK); + //glFrontFace(GL_CCW); + glEnable(GL_DEPTH_TEST); + + + +} + + +void Win32OpenGLWindow::renderAllObjects() +{ +} + +void Win32OpenGLWindow::endRendering() + { + SwapBuffers( m_data->m_hDC ); + +} + + + + diff --git a/btgui/OpenGLWindow/Win32OpenGLWindow.h b/btgui/OpenGLWindow/Win32OpenGLWindow.h new file mode 100644 index 000000000..613ced9bd --- /dev/null +++ b/btgui/OpenGLWindow/Win32OpenGLWindow.h @@ -0,0 +1,58 @@ +/* +Copyright (c) 2012 Advanced Micro Devices, Inc. + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ +//Originally written by Erwin Coumans + + +#ifndef _WIN32_OPENGL_RENDER_MANAGER_H +#define _WIN32_OPENGL_RENDER_MANAGER_H + + + +#include "Win32Window.h" + +#define btgDefaultOpenGLWindow Win32OpenGLWindow + +class Win32OpenGLWindow : public Win32Window +{ + bool m_OpenGLInitialized; + + protected: + + + void enableOpenGL(); + + void disableOpenGL(); + +public: + + Win32OpenGLWindow(); + + virtual ~Win32OpenGLWindow(); + + virtual void createWindow(const btgWindowConstructionInfo& ci); + + virtual void closeWindow(); + + virtual void startRendering(); + + virtual void renderAllObjects(); + + virtual void endRendering(); + + virtual float getRetinaScale() const {return 1.f;} +}; + + + +#endif //_WIN32_OPENGL_RENDER_MANAGER_H diff --git a/btgui/OpenGLWindow/Win32Window.cpp b/btgui/OpenGLWindow/Win32Window.cpp new file mode 100644 index 000000000..9afd4967d --- /dev/null +++ b/btgui/OpenGLWindow/Win32Window.cpp @@ -0,0 +1,675 @@ +/* +Copyright (c) 2012 Advanced Micro Devices, Inc. + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ +//Originally written by Erwin Coumans + + +#include "Win32Window.h" + +#include "OpenGLInclude.h" +#include "BulletCommon/btVector3.h" +#include +static InternalData2* sData = 0; + +#include "Win32InternalWindowData.h" + + + + +void Win32Window::pumpMessage() +{ + MSG msg; + // check for messages + //'if' instead of 'while' can make mainloop smoother. + //@todo: use separate threads for input and rendering + while( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) ) + { + + // handle or dispatch messages + if ( msg.message == WM_QUIT ) + { + m_data->m_quit = TRUE; + } + else + { + TranslateMessage( &msg ); + DispatchMessage( &msg ); + } + +// gDemoApplication->displayCallback(); + + + }; +} + +int getAsciiCodeFromVirtualKeycode(int virtualKeyCode) +{ + int keycode = 0xffffffff; + switch (virtualKeyCode) + { + case VK_F1: {keycode = BTG_F1; break;} + case VK_F2: {keycode = BTG_F2; break;} + case VK_F3: {keycode = BTG_F3; break;} + case VK_F4: {keycode = BTG_F4; break;} + case VK_F5: {keycode = BTG_F5; break;} + case VK_F6: {keycode = BTG_F6; break;} + case VK_F7: {keycode = BTG_F7; break;} + case VK_F8: {keycode = BTG_F8; break;} + case VK_F9: {keycode = BTG_F9; break;} + case VK_F10: {keycode= BTG_F10; break;} + + case VK_SPACE: {keycode= ' '; break;} + + case VK_NEXT: {keycode= BTG_PAGE_DOWN; break;} + case VK_PRIOR: {keycode= BTG_PAGE_UP; break;} + + case VK_INSERT: {keycode= BTG_INSERT; break;} + case VK_DELETE: {keycode= BTG_DELETE; break;} + + case VK_END:{keycode= BTG_END; break;} + case VK_HOME:{keycode= BTG_HOME; break;} + case VK_LEFT:{keycode= BTG_LEFT_ARROW; break;} + case VK_UP:{keycode= BTG_UP_ARROW; break;} + case VK_RIGHT:{keycode= BTG_RIGHT_ARROW; break;} + case VK_DOWN:{keycode= BTG_DOWN_ARROW; break;} + default: + { + keycode = MapVirtualKey( virtualKeyCode, MAPVK_VK_TO_CHAR ) & 0x0000FFFF; + } + }; + + return keycode; +} + +LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + //printf("msg = %d\n", message); + switch (message) + { + + case WM_PAINT: + { + PAINTSTRUCT ps; + BeginPaint(hWnd, &ps); + EndPaint(hWnd, &ps); + } + return 1; + + case WM_ERASEBKGND: + return 1; + + case WM_CLOSE: + if (sData) + sData->m_quit = true; + //PostQuitMessage(0); + return 1; + + case WM_DESTROY: + if (sData) + sData->m_quit = true; + //PostQuitMessage(0); + return 1; + + case WM_SYSKEYUP: + case WM_KEYUP: + { + + int keycode = getAsciiCodeFromVirtualKeycode(wParam); + + + if (sData && sData->m_keyboardCallback ) + { + int state=0; + (*sData->m_keyboardCallback)(keycode,state); + } + return 0; + } + case WM_SYSKEYDOWN: + case WM_KEYDOWN: + { + int keycode = getAsciiCodeFromVirtualKeycode(wParam); + + if (sData && sData->m_keyboardCallback && ((HIWORD(lParam) & KF_REPEAT) == 0)) + { + int state = 1; + (*sData->m_keyboardCallback)(keycode,state); + } + return 0; + } + + case WM_MBUTTONUP: + { + int xPos = LOWORD(lParam); + int yPos = HIWORD(lParam); + if (sData) + { + sData->m_mouseMButton=0; + sData->m_mouseXpos = xPos; + sData->m_mouseYpos = yPos; + if (sData && sData->m_mouseButtonCallback) + (*sData->m_mouseButtonCallback)(1,0,xPos,yPos); + } + break; + } + case WM_MBUTTONDOWN: + { + int xPos = LOWORD(lParam); + int yPos = HIWORD(lParam); + if (sData) + { + sData->m_mouseMButton=1; + sData->m_mouseXpos = xPos; + sData->m_mouseYpos = yPos; + if (sData && sData->m_mouseButtonCallback) + (*sData->m_mouseButtonCallback)(1,1,xPos,yPos); + } + break; + } + + case WM_LBUTTONUP: + { + int xPos = LOWORD(lParam); + int yPos = HIWORD(lParam); + if (sData) + { + sData->m_mouseLButton=0; + sData->m_mouseXpos = xPos; + sData->m_mouseYpos = yPos; + + if (sData && sData->m_mouseButtonCallback) + (*sData->m_mouseButtonCallback)(0,0,xPos,yPos); + + } + // gDemoApplication->mouseFunc(0,1,xPos,yPos); + break; + } + case WM_LBUTTONDOWN: + { + int xPos = LOWORD(lParam); + int yPos = HIWORD(lParam); + if (sData) + { + sData->m_mouseLButton=1; + sData->m_mouseXpos = xPos; + sData->m_mouseYpos = yPos; + + if (sData && sData->m_mouseButtonCallback) + (*sData->m_mouseButtonCallback)(0,1,xPos,yPos); + } + break; + } + + case 0x020e://WM_MOUSEWHEEL_LEFT_RIGHT + { + + int zDelta = (short)HIWORD(wParam); + int xPos = LOWORD(lParam); + int yPos = HIWORD(lParam); + //m_cameraDistance -= zDelta*0.01; + if (sData && sData->m_wheelCallback) + (*sData->m_wheelCallback)(-float(zDelta)*0.05f,0); + return 1; + break; + } + case 0x020A://WM_MOUSEWHEEL: + { + + int zDelta = (short)HIWORD(wParam); + int xPos = LOWORD(lParam); + int yPos = HIWORD(lParam); + //m_cameraDistance -= zDelta*0.01; + if (sData && sData->m_wheelCallback) + (*sData->m_wheelCallback)(0,float(zDelta)*0.05f); + return 1; + break; + } + + case WM_MOUSEMOVE: + { + int xPos = LOWORD(lParam); + int yPos = HIWORD(lParam); + sData->m_mouseXpos = xPos; + sData->m_mouseYpos = yPos; + + if (sData && sData->m_mouseMoveCallback) + (*sData->m_mouseMoveCallback)(xPos,yPos); + + break; + } + case WM_RBUTTONUP: + { + int xPos = LOWORD(lParam); + int yPos = HIWORD(lParam); + sData->m_mouseRButton = 1; + + if (sData && sData->m_mouseButtonCallback) + (*sData->m_mouseButtonCallback)(2,0,sData->m_mouseXpos,sData->m_mouseYpos); + + //gDemoApplication->mouseFunc(2,1,xPos,yPos); + break; + } + case WM_RBUTTONDOWN: + { + int xPos = LOWORD(lParam); + int yPos = HIWORD(lParam); + sData->m_mouseRButton = 0; + if (sData && sData->m_mouseButtonCallback) + (*sData->m_mouseButtonCallback)(2,1,sData->m_mouseXpos,sData->m_mouseYpos); + + break; + } + case WM_QUIT: + { + return 0; + break; + } + case WM_SIZE: // Size Action Has Taken Place + + RECT clientRect; + GetClientRect(hWnd,&clientRect); + + switch (wParam) // Evaluate Size Action + { + + case SIZE_MINIMIZED: // Was Window Minimized? + return 0; // Return + + case SIZE_MAXIMIZED: // Was Window Maximized? + case SIZE_RESTORED: // Was Window Restored? + RECT wr; + GetWindowRect(hWnd,&wr); + + sData->m_fullWindowWidth = wr.right-wr.left; + sData->m_fullWindowHeight = wr.bottom-wr.top;//LOWORD (lParam) HIWORD (lParam); + sData->m_openglViewportWidth = clientRect.right; + sData->m_openglViewportHeight = clientRect.bottom; + glViewport(0, 0, sData->m_openglViewportWidth, sData->m_openglViewportHeight); + + if (sData->m_resizeCallback) + (*sData->m_resizeCallback)(sData->m_openglViewportWidth,sData->m_openglViewportHeight); + //if (sOpenGLInitialized) + //{ + // //gDemoApplication->reshape(sWidth,sHeight); + //} + return 0; // Return + } + break; + + default:{ + + } + }; + + return DefWindowProc(hWnd, message, wParam, lParam); +} + + + +void Win32Window::setWindowTitle(const char* titleChar) +{ + + wchar_t windowTitle[1024]; + swprintf(windowTitle, 1024, L"%hs", titleChar); + + DWORD dwResult; + +#ifdef _WIN64 + SetWindowTextW(m_data->m_hWnd, windowTitle); +#else + SendMessageTimeoutW(m_data->m_hWnd, WM_SETTEXT, 0, + reinterpret_cast(windowTitle), + SMTO_ABORTIFHUNG, 2000, &dwResult); +#endif +} + +void Win32Window::createWindow(const btgWindowConstructionInfo& ci) +{ + int oglViewportWidth = ci.m_width; + int oglViewportHeight = ci.m_height; + bool fullscreen = ci.m_fullscreen; + int colorBitsPerPixel = ci.m_colorBitsPerPixel; + void* windowHandle = ci.m_windowHandle; + + // get handle to exe file + HINSTANCE hInstance = GetModuleHandle(0); + + + // create the window if we need to and we do not use the null device + if (!windowHandle) + { +#ifdef UNICODE + const wchar_t * ClassName = L"DeviceWin32"; + const wchar_t* emptyString= L""; +#else + const char* ClassName = "DeviceWin32"; + const char* emptyString = ""; +#endif + // Register Class + WNDCLASSEX wcex; + wcex.cbSize = sizeof(WNDCLASSEX); + wcex.style = CS_HREDRAW | CS_VREDRAW; + wcex.lpfnWndProc = WndProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = hInstance; + wcex.hIcon = LoadIcon( NULL, IDI_APPLICATION ); //(HICON)LoadImage(hInstance, "bullet_ico.ico", IMAGE_ICON, 0,0, LR_LOADTRANSPARENT);//LR_LOADFROMFILE); + wcex.hCursor = LoadCursor(NULL, IDC_ARROW); + wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wcex.lpszMenuName = 0; + wcex.lpszClassName = ClassName; + wcex.hIconSm = 0; + + // if there is an icon, load it +// wcex.hIcon = (HICON)LoadImage(hInstance, "bullet.ico", IMAGE_ICON, 0,0, LR_LOADFROMFILE); + + RegisterClassEx(&wcex); + + // calculate client size + + RECT clientSize; + clientSize.top = 0; + clientSize.left = 0; + clientSize.right = oglViewportWidth; + clientSize.bottom = oglViewportHeight; + + DWORD style = WS_POPUP; + + if (!fullscreen) + style = WS_SYSMENU | WS_BORDER | WS_CAPTION | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_SIZEBOX; + + AdjustWindowRect(&clientSize, style, false); + + m_data->m_fullWindowWidth = clientSize.right - clientSize.left; + m_data->m_fullWindowHeight = clientSize.bottom - clientSize.top; + + int windowLeft = (GetSystemMetrics(SM_CXSCREEN) - m_data->m_fullWindowWidth) / 2; + int windowTop = (GetSystemMetrics(SM_CYSCREEN) - m_data->m_fullWindowHeight) / 2; + + if (fullscreen) + { + windowLeft = 0; + windowTop = 0; + } + + // create window + + m_data->m_hWnd = CreateWindow( ClassName, emptyString, style, windowLeft, windowTop, + m_data->m_fullWindowWidth, m_data->m_fullWindowHeight,NULL, NULL, hInstance, NULL); + + + RECT clientRect; + GetClientRect(m_data->m_hWnd,&clientRect); + + + + ShowWindow(m_data->m_hWnd, SW_SHOW); + UpdateWindow(m_data->m_hWnd); + + MoveWindow(m_data->m_hWnd, windowLeft, windowTop, m_data->m_fullWindowWidth, m_data->m_fullWindowHeight, TRUE); + + GetClientRect(m_data->m_hWnd,&clientRect); + int w = clientRect.right-clientRect.left; + int h = clientRect.bottom-clientRect.top; +// printf("actual client OpenGL viewport width / height = %d, %d\n",w,h); + m_data->m_openglViewportHeight = h; + m_data->m_openglViewportWidth = w; + + } + else if (windowHandle) + { + // attach external window + m_data->m_hWnd = static_cast(windowHandle); + RECT r; + GetWindowRect(m_data->m_hWnd, &r); + m_data->m_fullWindowWidth = r.right - r.left; + m_data->m_fullWindowHeight= r.bottom - r.top; + + + //sFullScreen = false; + //sExternalWindow = true; + } + + + if (fullscreen) + { + DEVMODE dm; + memset(&dm, 0, sizeof(dm)); + dm.dmSize = sizeof(dm); + // use default values from current setting + EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &dm); + m_data->m_oldScreenWidth = dm.dmPelsWidth; + m_data->m_oldHeight = dm.dmPelsHeight; + m_data->m_oldBitsPerPel = dm.dmBitsPerPel; + + dm.dmPelsWidth = oglViewportWidth; + dm.dmPelsHeight = oglViewportHeight; + if (colorBitsPerPixel) + { + dm.dmBitsPerPel = colorBitsPerPixel; + } + dm.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT | DM_DISPLAYFREQUENCY; + + LONG res = ChangeDisplaySettings(&dm, CDS_FULLSCREEN); + if (res != DISP_CHANGE_SUCCESSFUL) + { // try again without forcing display frequency + dm.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT; + res = ChangeDisplaySettings(&dm, CDS_FULLSCREEN); + } + + } + + +} + + +void Win32Window::switchFullScreen(bool fullscreen,int width,int height,int colorBitsPerPixel) +{ + + LONG res; + DEVMODE dm; + memset(&dm, 0, sizeof(dm)); + dm.dmSize = sizeof(dm); + // use default values from current setting + EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &dm); + + dm.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT | DM_DISPLAYFREQUENCY; + + if (fullscreen && !m_data->m_oldScreenWidth) + { + m_data->m_oldScreenWidth = dm.dmPelsWidth; + m_data->m_oldHeight = dm.dmPelsHeight; + m_data->m_oldBitsPerPel = dm.dmBitsPerPel; + + if (width && height) + { + dm.dmPelsWidth = width; + dm.dmPelsHeight = height; + } else + { + dm.dmPelsWidth = m_data->m_fullWindowWidth; + dm.dmPelsHeight = m_data->m_fullWindowHeight; + } + if (colorBitsPerPixel) + { + dm.dmBitsPerPel = colorBitsPerPixel; + } + } else + { + if (m_data->m_oldScreenWidth) + { + dm.dmPelsWidth = m_data->m_oldScreenWidth; + dm.dmPelsHeight= m_data->m_oldHeight; + dm.dmBitsPerPel = m_data->m_oldBitsPerPel; + } + } + + if (fullscreen) + { + + res = ChangeDisplaySettings(&dm, CDS_FULLSCREEN); + if (!res) + { + dm.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT; + res = ChangeDisplaySettings(&dm, CDS_FULLSCREEN); + } + + DWORD style = WS_POPUP; + SetWindowLong(m_data->m_hWnd, GWL_STYLE, style); + + MoveWindow(m_data->m_hWnd, 0, 0, m_data->m_fullWindowWidth, m_data->m_fullWindowHeight, TRUE); + + SetWindowPos(m_data->m_hWnd, NULL,0,0, (int)width, (int)height, + SWP_FRAMECHANGED |SWP_SHOWWINDOW);//|SWP_NOACTIVATE | SWP_NOCOPYBITS | SWP_NOOWNERZORDER | SWP_NOREPOSITION | SWP_NOZORDER); + + + } else + { + res = ChangeDisplaySettings(&dm, 0); + + DWORD style = WS_SYSMENU | WS_BORDER | WS_CAPTION | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_SIZEBOX; + SetWindowLong(m_data->m_hWnd, GWL_STYLE, style); + + SetWindowPos(m_data->m_hWnd, NULL,0,0, (int)width, (int)height, + SWP_FRAMECHANGED |SWP_SHOWWINDOW); + //|SWP_NOACTIVATE | SWP_NOCOPYBITS | SWP_NOOWNERZORDER | SWP_NOREPOSITION | SWP_NOZORDER); + + } + + +} + + + +Win32Window::Win32Window() +{ + m_data = new InternalData2(); + sData = m_data; + +} + +Win32Window::~Win32Window() +{ + setKeyboardCallback(0); + setMouseMoveCallback(0); + setMouseButtonCallback(0); + setWheelCallback(0); + setResizeCallback(0); + + sData = 0; + delete m_data; + +} + +void Win32Window::setRenderCallback( btRenderCallback renderCallback) +{ + +} + +void Win32Window::closeWindow() +{ + setKeyboardCallback(0); + setMouseMoveCallback(0); + setMouseButtonCallback(0); + setWheelCallback(0); + setResizeCallback(0); + setRenderCallback(0); + + + DestroyWindow(this->m_data->m_hWnd); +} + +void Win32Window::getMouseCoordinates(int& x, int& y) +{ + x = m_data->m_mouseXpos; + y = m_data->m_mouseYpos; + +} + +void Win32Window::runMainLoop() +{ + +} + + +void Win32Window::startRendering() +{ + pumpMessage(); + +// glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); //clear buffers + + //glCullFace(GL_BACK); + //glFrontFace(GL_CCW); + // glEnable(GL_DEPTH_TEST); + + + +} + + +void Win32Window::renderAllObjects() +{ +} + +void Win32Window::endRendering() +{ + SwapBuffers( m_data->m_hDC ); +} + +float Win32Window::getTimeInSeconds() +{ + return 0.f; +} + +void Win32Window::setDebugMessage(int x,int y,const char* message) +{ +} + +void Win32Window::setRequestExit() +{ + m_data->m_quit = true; +} +bool Win32Window::requestedExit() const +{ + return m_data->m_quit; +} + +void Win32Window::setWheelCallback(btWheelCallback wheelCallback) +{ + m_data->m_wheelCallback = wheelCallback; +} + +void Win32Window::setMouseMoveCallback(btMouseMoveCallback mouseCallback) +{ + m_data->m_mouseMoveCallback = mouseCallback; +} + +void Win32Window::setMouseButtonCallback(btMouseButtonCallback mouseCallback) +{ + m_data->m_mouseButtonCallback = mouseCallback; +} + +void Win32Window::setResizeCallback(btResizeCallback resizeCallback) +{ + m_data->m_resizeCallback = resizeCallback; + if (m_data->m_resizeCallback) + (*m_data->m_resizeCallback)(m_data->m_openglViewportWidth,m_data->m_openglViewportHeight); +} + +void Win32Window::setKeyboardCallback( btKeyboardCallback keyboardCallback) +{ + m_data->m_keyboardCallback = keyboardCallback; + +} + + + \ No newline at end of file diff --git a/btgui/OpenGLWindow/Win32Window.h b/btgui/OpenGLWindow/Win32Window.h new file mode 100644 index 000000000..4d11e7738 --- /dev/null +++ b/btgui/OpenGLWindow/Win32Window.h @@ -0,0 +1,78 @@ +/* +Copyright (c) 2012 Advanced Micro Devices, Inc. + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ +//Originally written by Erwin Coumans + + +#ifndef _WIN32_WINDOW_H +#define _WIN32_WINDOW_H + + + +struct InternalData2; + +#include "btgWindowInterface.h" + +class Win32Window : public btgWindowInterface +{ + protected: + + struct InternalData2* m_data; + + + void pumpMessage(); + + + +public: + + Win32Window(); + + virtual ~Win32Window(); + + virtual void createWindow(const btgWindowConstructionInfo& ci); + + virtual void switchFullScreen(bool fullscreen,int width=0,int height=0,int colorBitsPerPixel=0); + + virtual void closeWindow(); + + virtual void runMainLoop(); + + virtual void startRendering(); + + virtual void renderAllObjects(); + + virtual void endRendering(); + + virtual float getTimeInSeconds(); + + virtual void setDebugMessage(int x,int y,const char* message); + + virtual bool requestedExit() const; + + virtual void setRequestExit(); + + virtual void getMouseCoordinates(int& x, int& y); + + virtual void setMouseMoveCallback(btMouseMoveCallback mouseCallback); + virtual void setMouseButtonCallback(btMouseButtonCallback mouseCallback); + virtual void setResizeCallback(btResizeCallback resizeCallback); + virtual void setWheelCallback(btWheelCallback wheelCallback); + virtual void setKeyboardCallback( btKeyboardCallback keyboardCallback); + + virtual void setRenderCallback( btRenderCallback renderCallback); + + virtual void setWindowTitle(const char* title); +}; + +#endif //_WIN32_WINDOW_H \ No newline at end of file diff --git a/btgui/OpenGLWindow/X11OpenGLWindow.cpp b/btgui/OpenGLWindow/X11OpenGLWindow.cpp new file mode 100644 index 000000000..89c8313e2 --- /dev/null +++ b/btgui/OpenGLWindow/X11OpenGLWindow.cpp @@ -0,0 +1,415 @@ +#include "X11OpenGLWindow.h" +#include +#include +#include +#include +#include +#include +#include + + +GLint att[] = { GLX_RGBA, GLX_DEPTH_SIZE, 24, GLX_DOUBLEBUFFER, None }; + + +struct InternalData2 +{ + Display* m_dpy; + Window m_root; + XVisualInfo* m_vi; + Colormap m_cmap; + XSetWindowAttributes m_swa; + Window m_win; + GLXContext m_glc; + XWindowAttributes m_gwa; + XEvent m_xev; + + btWheelCallback m_wheelCallback; + btMouseMoveCallback m_mouseMoveCallback; + btMouseButtonCallback m_mouseButtonCallback; + btResizeCallback m_resizeCallback; + btKeyboardCallback m_keyboardCallback; + + InternalData2() + :m_dpy(0), + m_vi(0), + m_wheelCallback(0), + m_mouseMoveCallback(0), + m_mouseButtonCallback(0), + m_resizeCallback(0), + m_keyboardCallback(0) + { + + } +}; + + + + + +X11OpenGLWindow::X11OpenGLWindow() +:m_OpenGLInitialized(false) +{ + m_data = new InternalData2; +} + +X11OpenGLWindow::~X11OpenGLWindow() +{ + if (m_OpenGLInitialized) + { + disableOpenGL(); + } + + delete m_data; +} + + + +void X11OpenGLWindow::enableOpenGL() +{ + + m_data->m_glc = glXCreateContext(m_data->m_dpy, m_data->m_vi, NULL, GL_TRUE); + glXMakeCurrent(m_data->m_dpy, m_data->m_win, m_data->m_glc); + + const GLubyte* ven = glGetString(GL_VENDOR); + printf("GL_VENDOR=%s\n", ven); + const GLubyte* ren = glGetString(GL_RENDERER); + printf("GL_RENDERER=%s\n",ren); + const GLubyte* ver = glGetString(GL_VERSION); + printf("GL_VERSION=%s\n", ver); + const GLubyte* sl = glGetString(GL_SHADING_LANGUAGE_VERSION); + printf("GL_SHADING_LANGUAGE_VERSION=%s\n", sl); +// const GLubyte* ext = glGetString(GL_EXTENSIONS); +// printf("GL_EXTENSIONS=%s\n", ext); +} + +void X11OpenGLWindow::disableOpenGL() +{ + glXMakeCurrent(m_data->m_dpy, None, NULL); + glXDestroyContext(m_data->m_dpy, m_data->m_glc); +} + + +void X11OpenGLWindow::createWindow(const btgWindowConstructionInfo& ci) +{ + m_data->m_dpy = XOpenDisplay(NULL); + + if(m_data->m_dpy == NULL) { + printf("\n\tcannot connect to X server\n\n"); + exit(0); + } + + m_data->m_root = DefaultRootWindow(m_data->m_dpy); + + m_data->m_vi = glXChooseVisual(m_data->m_dpy, 0, att); + + if(m_data->m_vi == NULL) { + printf("\n\tno appropriate visual found\n\n"); + exit(0); + } + else { + printf("\n\tvisual %p selected\n", (void *)m_data->m_vi->visualid); /* %p creates hexadecimal output like in glxinfo */ + } + + + m_data->m_cmap = XCreateColormap(m_data->m_dpy, m_data->m_root, m_data->m_vi->visual, AllocNone); + + m_data->m_swa.colormap = m_data->m_cmap; + m_data->m_swa.event_mask = ExposureMask | KeyPressMask |ButtonPressMask | ButtonReleaseMask |PointerMotionMask|StructureNotifyMask; + + m_data->m_win = XCreateWindow(m_data->m_dpy, m_data->m_root, 0, 0, ci.m_width, ci.m_height, 0, m_data->m_vi->depth, InputOutput, m_data->m_vi->visual, CWColormap | CWEventMask, &m_data->m_swa); + + XMapWindow(m_data->m_dpy, m_data->m_win); + XStoreName(m_data->m_dpy, m_data->m_win, "VERY SIMPLE APPLICATION"); + + enableOpenGL(); +} + +void X11OpenGLWindow::closeWindow() +{ + disableOpenGL(); + + XDestroyWindow(m_data->m_dpy, m_data->m_win); + XCloseDisplay(m_data->m_dpy); +} + +int X11OpenGLWindow::getAsciiCodeFromVirtualKeycode(int keycode) +{ + KeySym key, key_lc, key_uc; + + key = XKeycodeToKeysym( m_data->m_dpy, keycode, 0 ); + switch( key ) + { + case XK_Escape: return BTG_ESCAPE; + + case XK_F1: return BTG_F1; + case XK_F2: return BTG_F2; + case XK_F3: return BTG_F3; + case XK_F4: return BTG_F4; + case XK_F5: return BTG_F5; + case XK_F6: return BTG_F6; + case XK_F7: return BTG_F7; + case XK_F8: return BTG_F8; + case XK_F9: return BTG_F9; + case XK_F10: return BTG_F10; + case XK_F11: return BTG_F11; + case XK_F12: return BTG_F12; + case XK_F13: return BTG_F13; + case XK_F14: return BTG_F14; + case XK_F15: return BTG_F15; + default: + // Make uppercase + XConvertCase( key, &key_lc, &key_uc ); + key = key_uc; + // Valid ISO 8859-1 character? + if( (key >= 32 && key <= 126) ||(key >= 160 && key <= 255) ) + { + return (int) key; + } + return -1; + } + return 0; +} + +void X11OpenGLWindow::pumpMessage() +{ + + int buttonState = 1; + + // Process all pending events + while( XPending( m_data->m_dpy ) ) + { + XNextEvent(m_data->m_dpy, &m_data->m_xev); + // printf("#"); + // fflush(stdout); + switch( m_data->m_xev.type ) + { + case KeyPress: + { + if (m_data->m_keyboardCallback) + { + int keycode = getAsciiCodeFromVirtualKeycode(m_data->m_xev.xkey.keycode); + int state = 1; + (*m_data->m_keyboardCallback)(keycode,state); + // printf("keycode %d",keycode); + // fflush(stdout); + + } + break; + } + + case KeyRelease: + { + // printf(","); + // fflush(stdout); + + if (m_data->m_keyboardCallback) + { + + unsigned short is_retriggered = 0; +///filter out keyboard repeat +//see http://stackoverflow.com/questions/2100654/ignore-auto-repeat-in-x11-applications + if (XEventsQueued(m_data->m_dpy, QueuedAfterReading)) + { + XEvent nev; + XPeekEvent(m_data->m_dpy, &nev); + + if (nev.type == KeyPress && nev.xkey.time == m_data->m_xev.xkey.time && + nev.xkey.keycode == m_data->m_xev.xkey.keycode) + { + fprintf (stdout, "key #%ld was retriggered.\n", + (long) XLookupKeysym (&nev.xkey, 0)); + + // delete retriggered KeyPress event + XNextEvent (m_data->m_dpy, & m_data->m_xev); + is_retriggered = 1; + } + } + int keycode = getAsciiCodeFromVirtualKeycode( m_data->m_xev.xkey.keycode); + int state = 0; + (*m_data->m_keyboardCallback)(keycode,state); + } + + break; + } + + case ButtonRelease: + buttonState = 0; + //continue with ButtonPress code + case ButtonPress: + { +// printf("!"); +// fflush(stdout); + + int button=-1; + + switch (m_data->m_xev.xbutton.button) + { + case Button1: + { + button=0; + break; + } + case Button2: + { + button=1; + break; + } + case Button3: + { + button=2; + break; + } + case Button4: + { + if (m_data->m_wheelCallback) + { + (*m_data->m_wheelCallback)(0,10); + } + break; + } + case Button5: + { + if (m_data->m_wheelCallback) + { + (*m_data->m_wheelCallback)(0,-10); + } + break; + } + } + int xpos = m_data->m_xev.xmotion.x; + int ypos = m_data->m_xev.xmotion.y; + + if (button>=0 && m_data->m_mouseButtonCallback) + { +// printf("xpos = %d, ypos = %d\n",xpos,ypos); + + (*m_data->m_mouseButtonCallback)(button,buttonState,xpos,ypos); + } + break; + } + case MotionNotify: + { +// printf("!"); +// fflush(0); + if (m_data->m_mouseMoveCallback) + { + int xpos = m_data->m_xev.xmotion.x; + int ypos = m_data->m_xev.xmotion.y; + (*m_data->m_mouseMoveCallback)(xpos,ypos); + } + break; + } + case ConfigureNotify: + { + // printf("@"); + // fflush(0); + if (m_data->m_resizeCallback) + { + (*m_data->m_resizeCallback)(m_data->m_xev.xconfigure.width,m_data->m_xev.xconfigure.height); + } + break; + } + case ClientMessage: + { + // printf("?"); + // fflush(stdout); + break; + } + case Expose: + { + break; + } + case DestroyNotify: + { + break; + } + default: + { + //XRRUpdateConfiguration( &event ); + } + }; + } +} + + + +void X11OpenGLWindow::startRendering() +{ + pumpMessage(); + + XGetWindowAttributes(m_data->m_dpy, m_data->m_win, &m_data->m_gwa); + glViewport(0, 0, m_data->m_gwa.width, m_data->m_gwa.height); + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); //clear buffers + + //glCullFace(GL_BACK); + //glFrontFace(GL_CCW); + glEnable(GL_DEPTH_TEST); +} + +void X11OpenGLWindow::renderAllObjects() +{ + +} + +void X11OpenGLWindow::endRendering() +{ + glXSwapBuffers(m_data->m_dpy, m_data->m_win); +} + +void X11OpenGLWindow::runMainLoop() +{ + +} + +float X11OpenGLWindow::getTimeInSeconds() +{ + return 0.f; +} + +bool X11OpenGLWindow::requestedExit() const +{ + return false; +} + +void X11OpenGLWindow::setRequestExit() +{ + +} + +void X11OpenGLWindow::setRenderCallback( btRenderCallback renderCallback) +{ + +} + +void X11OpenGLWindow::setWindowTitle(const char* title) +{ + XStoreName(m_data->m_dpy, m_data->m_win, title); +} + + +void X11OpenGLWindow::setWheelCallback(btWheelCallback wheelCallback) +{ + m_data->m_wheelCallback = wheelCallback; +} + +void X11OpenGLWindow::setMouseMoveCallback(btMouseMoveCallback mouseCallback) +{ + m_data->m_mouseMoveCallback = mouseCallback; +} + +void X11OpenGLWindow::setMouseButtonCallback(btMouseButtonCallback mouseCallback) +{ + m_data->m_mouseButtonCallback = mouseCallback; +} + +void X11OpenGLWindow::setResizeCallback(btResizeCallback resizeCallback) +{ + m_data->m_resizeCallback = resizeCallback; +} + +void X11OpenGLWindow::setKeyboardCallback( btKeyboardCallback keyboardCallback) +{ + m_data->m_keyboardCallback = keyboardCallback; + +} diff --git a/btgui/OpenGLWindow/X11OpenGLWindow.h b/btgui/OpenGLWindow/X11OpenGLWindow.h new file mode 100644 index 000000000..5c0eaa9a4 --- /dev/null +++ b/btgui/OpenGLWindow/X11OpenGLWindow.h @@ -0,0 +1,64 @@ +#ifndef X11_OPENGL_WINDOW_H +#define X11_OPENGL_WINDOW_H + +#define btgDefaultOpenGLWindow X11OpenGLWindow + +#include "btgWindowInterface.h" + +class X11OpenGLWindow : public btgWindowInterface +{ + + struct InternalData2* m_data; + bool m_OpenGLInitialized; + +protected: + + void enableOpenGL(); + + void disableOpenGL(); + + void pumpMessage(); + + int getAsciiCodeFromVirtualKeycode(int orgCode); + +public: + + X11OpenGLWindow(); + + virtual ~X11OpenGLWindow(); + + virtual void createWindow(const btgWindowConstructionInfo& ci); + + virtual void closeWindow(); + + virtual void startRendering(); + + virtual void renderAllObjects(); + + virtual void endRendering(); + + virtual float getRetinaScale() const {return 1.f;} + + + virtual void runMainLoop(); + virtual float getTimeInSeconds(); + + virtual bool requestedExit() const; + virtual void setRequestExit() ; + + + virtual void setMouseMoveCallback(btMouseMoveCallback mouseCallback); + virtual void setMouseButtonCallback(btMouseButtonCallback mouseCallback); + virtual void setResizeCallback(btResizeCallback resizeCallback); + virtual void setWheelCallback(btWheelCallback wheelCallback); + virtual void setKeyboardCallback( btKeyboardCallback keyboardCallback); + + virtual void setRenderCallback( btRenderCallback renderCallback); + + virtual void setWindowTitle(const char* title); + +}; + + +#endif + diff --git a/btgui/OpenGLWindow/btgWindowInterface.h b/btgui/OpenGLWindow/btgWindowInterface.h new file mode 100644 index 000000000..87b9918b3 --- /dev/null +++ b/btgui/OpenGLWindow/btgWindowInterface.h @@ -0,0 +1,108 @@ +#ifndef BTG_WINDOW_INTERFACE_H +#define BTG_WINDOW_INTERFACE_H + + +typedef void (*btWheelCallback)(float deltax, float deltay); +typedef void (*btResizeCallback)( float width, float height); +typedef void (*btMouseMoveCallback)( float x, float y); +typedef void (*btMouseButtonCallback)(int button, int state, float x, float y); +typedef void (*btKeyboardCallback)(int keycode, int state); +typedef void (*btRenderCallback) (); + +enum { + BTG_ESCAPE = 27, + BTG_F1 = 0xff00, + BTG_F2, + BTG_F3, + BTG_F4, + BTG_F5, + BTG_F6, + BTG_F7, + BTG_F8, + BTG_F9, + BTG_F10, + BTG_F11, + BTG_F12, + BTG_F13, + BTG_F14, + BTG_F15, + BTG_LEFT_ARROW, + BTG_RIGHT_ARROW, + BTG_UP_ARROW, + BTG_DOWN_ARROW, + BTG_PAGE_UP, + BTG_PAGE_DOWN, + BTG_END, + BTG_HOME, + BTG_INSERT, + BTG_DELETE +}; + +struct btgWindowConstructionInfo +{ + int m_width; + int m_height; + bool m_fullscreen; + int m_colorBitsPerPixel; + void* m_windowHandle; + const char* m_title; + int m_openglVersion; + + btgWindowConstructionInfo(int width=1024, int height=768) + :m_width(width), + m_height(height), + m_fullscreen(false), + m_colorBitsPerPixel(32), + m_windowHandle(0), + m_title("title"), + m_openglVersion(3) + { + } +}; + + +class btgWindowInterface +{ + public: + + virtual ~btgWindowInterface() + { + } + + virtual void createDefaultWindow(int width, int height, const char* title) + { + btgWindowConstructionInfo ci(width,height); + ci.m_title = title; + createWindow(ci); + } + + virtual void createWindow(const btgWindowConstructionInfo& ci)=0; + + virtual void closeWindow()=0; + + virtual void runMainLoop()=0; + virtual float getTimeInSeconds()=0; + + virtual bool requestedExit() const = 0; + virtual void setRequestExit() = 0; + + virtual void startRendering()=0; + + virtual void endRendering()=0; + + + virtual void setMouseMoveCallback(btMouseMoveCallback mouseCallback)=0; + virtual void setMouseButtonCallback(btMouseButtonCallback mouseCallback)=0; + virtual void setResizeCallback(btResizeCallback resizeCallback)=0; + virtual void setWheelCallback(btWheelCallback wheelCallback)=0; + virtual void setKeyboardCallback( btKeyboardCallback keyboardCallback)=0; + + virtual void setRenderCallback( btRenderCallback renderCallback) = 0; + + virtual void setWindowTitle(const char* title)=0; + + virtual float getRetinaScale() const =0; + +}; + +#endif //BTG_WINDOW_INTERFACE_H \ No newline at end of file diff --git a/btgui/OpenGLWindow/gwenWindow.cpp b/btgui/OpenGLWindow/gwenWindow.cpp new file mode 100644 index 000000000..224f16f29 --- /dev/null +++ b/btgui/OpenGLWindow/gwenWindow.cpp @@ -0,0 +1,375 @@ + +#include "gwenWindow.h" + + +#include "Gwen/Platform.h" +#include "Gwen/Controls/TreeControl.h" +#include "Gwen/Controls/RadioButtonController.h" +#include "Gwen/Controls/VerticalSlider.h" +#include "Gwen/Controls/HorizontalSlider.h" +#include "Gwen/Controls/GroupBox.h" +#include "Gwen/Controls/CheckBox.h" +#include "Gwen/Controls/MenuStrip.h" + + +#include "Gwen/Gwen.h" +#include "Gwen/Align.h" +#include "Gwen/Utility.h" +#include "Gwen/Controls/WindowControl.h" +#include "Gwen/Controls/TabControl.h" +#include "Gwen/Controls/ListBox.h" + +#include "BulletCommon/btQuickprof.h" +#include "GwenOpenGL3CoreRenderer.h" +#include "GLPrimitiveRenderer.h" + +GLPrimitiveRenderer* primRenderer=0; +GwenOpenGL3CoreRenderer* pRenderer = 0; +//Gwen::Renderer::OpenGL_DebugFont * pRenderer =0; +Gwen::Skin::Simple skin; +Gwen::Controls::Canvas* pCanvas =0; +class MyProfileWindow* profWindow = 0; + + + + +/*struct MyHander :public Gwen::Event::Handler +{ + + MyHander (Application* app) + :m_app(app) + { + } + + void onButtonA( Gwen::Controls::Base* pControl ) + { + OpenTissue::glut::toggleIdle(); + } + + void SliderMoved(Gwen::Controls::Base* pControl ) + { + Gwen::Controls::Slider* pSlider = (Gwen::Controls::Slider*)pControl; + this->m_app->scaleYoungModulus(pSlider->GetValue()); + // printf("Slider Value: %.2f", pSlider->GetValue() ); + } + + + void OnCheckChangedStiffnessWarping (Gwen::Controls::Base* pControl) + { + Gwen::Controls::CheckBox* labeled = (Gwen::Controls::CheckBox* )pControl; + bool checked = labeled->IsChecked(); + m_app->m_stiffness_warp_on = checked; + } + + +}; + +*/ + + + +class MyProfileWindow : public Gwen::Controls::WindowControl +{ + + // Gwen::Controls::TabControl* m_TabControl; + //Gwen::Controls::ListBox* m_TextOutput; + unsigned int m_iFrames; + float m_fLastSecond; + + Gwen::Controls::TreeNode* m_node; + Gwen::Controls::TreeControl* m_ctrl; + + +protected: + + void onButtonA( Gwen::Controls::Base* pControl ) + { + // OpenTissue::glut::toggleIdle(); + } + + void SliderMoved(Gwen::Controls::Base* pControl ) + { + Gwen::Controls::Slider* pSlider = (Gwen::Controls::Slider*)pControl; + //this->m_app->scaleYoungModulus(pSlider->GetValue()); + // printf("Slider Value: %.2f", pSlider->GetValue() ); + } + + + void OnCheckChangedStiffnessWarping (Gwen::Controls::Base* pControl) + { + Gwen::Controls::CheckBox* labeled = (Gwen::Controls::CheckBox* )pControl; + bool checked = labeled->IsChecked(); + //m_app->m_stiffness_warp_on = checked; + } +public: + + void MenuItemSelect(Gwen::Controls::Base* pControl) + { + if (Hidden()) + { + SetHidden(false); + } else + { + SetHidden(true); + } + } + + + MyProfileWindow ( Gwen::Controls::Base* pParent) + : Gwen::Controls::WindowControl( pParent ) + { + SetTitle( L"FEM Settings" ); + + SetSize( 450, 150 ); + this->SetPos(10,40); + +// this->Dock( Gwen::Pos::Bottom); + + + + { + m_ctrl = new Gwen::Controls::TreeControl( this ); + m_node = m_ctrl->AddNode( L"Total Parent Time" ); + + + //Gwen::Controls::TreeNode* pNode = ctrl->AddNode( L"Node Two" ); + //pNode->AddNode( L"Node Two Inside" ); + //pNode->AddNode( L"Eyes" ); + //pNode->AddNode( L"Brown" )->AddNode( L"Node Two Inside" )->AddNode( L"Eyes" )->AddNode( L"Brown" ); + //Gwen::Controls::TreeNode* node = ctrl->AddNode( L"Node Three" ); + + + + //m_ctrl->Dock(Gwen::Pos::Bottom); + + m_ctrl->ExpandAll(); + m_ctrl->SetBounds( this->GetInnerBounds().x,this->GetInnerBounds().y,this->GetInnerBounds().w,this->GetInnerBounds().h); + + } + + + + } + + + float dumpRecursive(CProfileIterator* profileIterator, Gwen::Controls::TreeNode* parentNode) + { + profileIterator->First(); + if (profileIterator->Is_Done()) + return 0.f; + + float accumulated_time=0,parent_time = profileIterator->Is_Root() ? CProfileManager::Get_Time_Since_Reset() : profileIterator->Get_Current_Parent_Total_Time(); + int i; + int frames_since_reset = CProfileManager::Get_Frame_Count_Since_Reset(); + + //printf("Profiling: %s (total running time: %.3f ms) ---\n", profileIterator->Get_Current_Parent_Name(), parent_time ); + float totalTime = 0.f; + + + int numChildren = 0; + Gwen::UnicodeString txt; + std::vector nodes; + + for (i = 0; !profileIterator->Is_Done(); i++,profileIterator->Next()) + { + numChildren++; + float current_total_time = profileIterator->Get_Current_Total_Time(); + accumulated_time += current_total_time; + double fraction = parent_time > SIMD_EPSILON ? (current_total_time / parent_time) * 100 : 0.f; + + Gwen::String name(profileIterator->Get_Current_Name()); +#ifdef _WIN32 + Gwen::UnicodeString uname = Gwen::Utility::StringToUnicode(name); + + txt = Gwen::Utility::Format(L"%s (%.2f %%) :: %.3f ms / frame (%d calls)",uname.c_str(), fraction,(current_total_time / (double)frames_since_reset),profileIterator->Get_Current_Total_Calls()); + +#else + txt = Gwen::Utility::Format(L"%s (%.2f %%) :: %.3f ms / frame (%d calls)",name.c_str(), fraction,(current_total_time / (double)frames_since_reset),profileIterator->Get_Current_Total_Calls()); + +#endif + + Gwen::Controls::TreeNode* childNode = (Gwen::Controls::TreeNode*)profileIterator->Get_Current_UserPointer(); + if (!childNode) + { + childNode = parentNode->AddNode(L""); + profileIterator->Set_Current_UserPointer(childNode); + } + childNode->SetText(txt); + nodes.push_back(childNode); + + totalTime += current_total_time; + //recurse into children + } + + for (i=0;iEnter_Child(i); + Gwen::Controls::TreeNode* curNode = nodes[i]; + + dumpRecursive(profileIterator, curNode); + + profileIterator->Enter_Parent(); + } + return accumulated_time; + + } + + void UpdateText(CProfileIterator* profileIterator, bool idle) + { + + static bool update=true; + + m_ctrl->SetBounds(0,0,this->GetInnerBounds().w,this->GetInnerBounds().h); + +// if (!update) +// return; + update=false; + + + static int test = 1; + test++; + + static double time_since_reset = 0.f; + if (!idle) + { + time_since_reset = CProfileManager::Get_Time_Since_Reset(); + } + + //Gwen::UnicodeString txt = Gwen::Utility::Format( L"FEM Settings %i fps", test ); + { + //recompute profiling data, and store profile strings + + char blockTime[128]; + + double totalTime = 0; + + int frames_since_reset = CProfileManager::Get_Frame_Count_Since_Reset(); + + profileIterator->First(); + + double parent_time = profileIterator->Is_Root() ? time_since_reset : profileIterator->Get_Current_Parent_Total_Time(); + + + Gwen::Controls::TreeNode* curParent = m_node; + + double accumulated_time = dumpRecursive(profileIterator,m_node); + + const char* name = profileIterator->Get_Current_Parent_Name(); +#ifdef _WIN32 + Gwen::UnicodeString uname = Gwen::Utility::StringToUnicode(name); + Gwen::UnicodeString txt = Gwen::Utility::Format( L"Profiling: %s total time: %.3f ms, unaccounted %.3f %% :: %.3f ms", uname.c_str(), parent_time , + parent_time > SIMD_EPSILON ? ((parent_time - accumulated_time) / parent_time) * 100 : 0.f, parent_time - accumulated_time); +#else + Gwen::UnicodeString txt = Gwen::Utility::Format( L"Profiling: %s total time: %.3f ms, unaccounted %.3f %% :: %.3f ms", name, parent_time , + parent_time > SIMD_EPSILON ? ((parent_time - accumulated_time) / parent_time) * 100 : 0.f, parent_time - accumulated_time); +#endif + //sprintf(blockTime,"--- Profiling: %s (total running time: %.3f ms) ---", profileIterator->Get_Current_Parent_Name(), parent_time ); + //displayProfileString(xOffset,yStart,blockTime); + m_node->SetText(txt); + + + //printf("%s (%.3f %%) :: %.3f ms\n", "Unaccounted:",); + + + } + + static bool once1 = true; + if (once1) + { + once1 = false; + m_ctrl->ExpandAll(); + } + + } + void PrintText( const Gwen::UnicodeString& str ) + { + + } + + void Render( Gwen::Skin::Base* skin ) + { + m_iFrames++; + + if ( m_fLastSecond < Gwen::Platform::GetTimeInSeconds() ) + { + SetTitle( Gwen::Utility::Format( L"Profiler %i fps", m_iFrames ) ); + + m_fLastSecond = Gwen::Platform::GetTimeInSeconds() + 1.0f; + m_iFrames = 0; + } + + Gwen::Controls::WindowControl::Render( skin ); + + } + + +}; + +struct MyTestMenuBar : public Gwen::Controls::MenuStrip +{ + MyProfileWindow* m_profileWindow; + + + MyTestMenuBar(Gwen::Controls::Base* pParent, MyProfileWindow* profileWindow) + :Gwen::Controls::MenuStrip(pParent), + m_profileWindow(profileWindow) + { +// Gwen::Controls::MenuStrip* menu = new Gwen::Controls::MenuStrip( pParent ); + { + Gwen::Controls::MenuItem* pRoot = AddItem( L"File" ); + + pRoot = AddItem( L"View" ); +// Gwen::Event::Handler* handler = GWEN_MCALL(&MyTestMenuBar::MenuItemSelect ); + pRoot->GetMenu()->AddItem( L"Profiler",m_profileWindow,(Gwen::Event::Handler::Function)&MyProfileWindow::MenuItemSelect); + +/* pRoot->GetMenu()->AddItem( L"New", L"test16.png", GWEN_MCALL( ThisClass::MenuItemSelect ) ); + pRoot->GetMenu()->AddItem( L"Load", L"test16.png", GWEN_MCALL( ThisClass::MenuItemSelect ) ); + pRoot->GetMenu()->AddItem( L"Save", GWEN_MCALL( ThisClass::MenuItemSelect ) ); + pRoot->GetMenu()->AddItem( L"Save As..", GWEN_MCALL( ThisClass::MenuItemSelect ) ); + pRoot->GetMenu()->AddItem( L"Quit", GWEN_MCALL( ThisClass::MenuItemSelect ) ); + */ + } + } + +}; + +void setupGUI(int width, int height, sth_stash* font, float retinaScale,GLPrimitiveRenderer* primRender) +{ + primRenderer = primRender; + pRenderer = new GwenOpenGL3CoreRenderer(primRenderer,font,width,height, retinaScale); + if (primRenderer) + primRenderer->setScreenSize(width,height); + +// pRenderer = new Gwen::Renderer::OpenGL_DebugFont(); + skin.SetRender( pRenderer ); + + pCanvas = new Gwen::Controls::Canvas( &skin ); + pCanvas->SetSize( width,height); + pCanvas->SetDrawBackground( false); + pCanvas->SetBackgroundColor( Gwen::Color( 150, 170, 170, 255 ) ); +// pCanvas->SetScale(.5); + //MyWindow* window = new MyWindow(pCanvas); + profWindow = new MyProfileWindow(pCanvas); + + MyTestMenuBar* menubar = new MyTestMenuBar(pCanvas, profWindow); + + + +} + +void resizeGUI(int width, int height) +{ + pCanvas->SetSize(width,height); + pRenderer->resize(width,height); + primRenderer->setScreenSize(width,height); +} + +void processProfileData(CProfileIterator* iterator, bool idle) +{ + if (profWindow) + { + + profWindow->UpdateText(iterator, idle); + } + +} diff --git a/btgui/OpenGLWindow/gwenWindow.h b/btgui/OpenGLWindow/gwenWindow.h new file mode 100644 index 000000000..19916f5c9 --- /dev/null +++ b/btgui/OpenGLWindow/gwenWindow.h @@ -0,0 +1,24 @@ + +#ifndef MY_GWEN_WINDOW_H +#define MY_GWEN_WINDOW_H + + +#include "Gwen/Gwen.h" +#include "Gwen/Controls/Button.h" +#include "Gwen/Skins/Simple.h" +#include "Gwen/Renderers/OpenGL_DebugFont.h" + +struct sth_stash; + +extern class GwenOpenGL3CoreRenderer* pRenderer; +//extern Gwen::Renderer::OpenGL_DebugFont * pRenderer; +extern Gwen::Skin::Simple skin; +extern Gwen::Controls::Canvas* pCanvas; + +class GLPrimitiveRenderer; + +void setupGUI(int width, int height, sth_stash* font, float retinaScale,GLPrimitiveRenderer* primRender); +void processProfileData(class CProfileIterator* iterator, bool idle); +void resizeGUI(int width, int height); + +#endif //MY_GWEN_WINDOW_H diff --git a/btgui/OpenGLWindow/main.cpp b/btgui/OpenGLWindow/main.cpp new file mode 100644 index 000000000..6882504ea --- /dev/null +++ b/btgui/OpenGLWindow/main.cpp @@ -0,0 +1,516 @@ +/* +Copyright (c) 2012 Advanced Micro Devices, Inc. + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ +//Originally written by Erwin Coumans + +// +//#include "vld.h" +#ifndef __APPLE__ +#include +#endif +#include + +#include "GLInstancingRenderer.h" + +#ifdef __APPLE__ +#include "MacOpenGLWindow.h" +#elif _WIN32 +#include "Win32OpenGLWindow.h" +#elif __linux +#include "X11OpenGLWindow.h" +#endif + +#include "GLPrimitiveRenderer.h" + +extern char OpenSansData[]; + +#include "renderscene.h" + + +#include "BulletCommon/btQuickprof.h" +#include "BulletCommon/btQuaternion.h" + +#include "BulletCommon/CommandLineArgs.h" + +#include "../OpenGLTrueTypeFont/fontstash.h" +#include "../OpenGLTrueTypeFont/opengl_fontstashcallbacks.h" + +bool printStats = false; +bool pauseSimulation = false; +bool shootObject = false; + + +bool useInterop = false; + +extern int NUM_OBJECTS_X; +extern int NUM_OBJECTS_Y; +extern int NUM_OBJECTS_Z; +extern bool keepStaticObjects; +extern float X_GAP; +extern float Y_GAP; +extern float Z_GAP; + +const char* fileName="../../bin/1000 stack.bullet"; +void Usage() +{ + printf("\nprogram.exe [--pause_simulation=<0 or 1>] [--load_bulletfile=test.bullet] [--enable_interop=<0 or 1>] [--enable_gpusap=<0 or 1>] [--enable_convexheightfield=<0 or 1>] [--enable_static=<0 or 1>] [--x_dim=] [--y_dim=] [--z_dim=] [--x_gap=] [--y_gap=] [--z_gap=]\n"); +}; + + +#include "gwenWindow.h" + + +void MyMouseButtonCallback(int button, int state, float x, float y) +{ + //btDefaultMouseCallback(button,state,x,y); + + if (pCanvas) + { + bool handled = pCanvas->InputMouseMoved(x,y,x, y); + + if (button>=0) + { + handled = pCanvas->InputMouseButton(button,state); + if (handled) + { + if (!state) + return; + } + } + } +} + +int g_OpenGLWidth = 1024;//650; +int g_OpenGLHeight =800; + +void MyResizeCallback(float width, float height) +{ + g_OpenGLWidth = width; + g_OpenGLHeight = height; + if (pCanvas) + { + pCanvas->SetSize(width,height); + resizeGUI(width,height); + } +} + +void MyMouseMoveCallback( float x, float y) +{ + //btDefaultMouseCallback(button,state,x,y); + + static int m_lastmousepos[2] = {0,0}; + static bool isInitialized = false; + if (pCanvas) + { + if (!isInitialized) + { + isInitialized = true; + m_lastmousepos[0] = x+1; + m_lastmousepos[1] = y+1; + } + bool handled = pCanvas->InputMouseMoved(x,y,m_lastmousepos[0],m_lastmousepos[1]); + } +} + + int droidRegular;//, droidItalic, droidBold, droidJapanese, dejavu; + +sth_stash* initFont(GLPrimitiveRenderer* primRender) +{ + GLint err; + + struct sth_stash* stash = 0; + int datasize; + + float sx,sy,dx,dy,lh; + GLuint texture; + OpenGL2RenderCallbacks* renderCallbacks = new OpenGL2RenderCallbacks(primRender); + stash = sth_create(512,512,renderCallbacks);//256,256);//,1024);//512,512); + err = glGetError(); + assert(err==GL_NO_ERROR); + + if (!stash) + { + fprintf(stderr, "Could not create stash.\n"); + return 0; + } +#ifdef LOAD_FONT_FROM_FILE + unsigned char* data; + const char* fontPaths[]={ + "./", + "../../bin/", + "../bin/", + "bin/" + }; + + int numPaths=sizeof(fontPaths)/sizeof(char*); + + // Load the first truetype font from memory (just because we can). + + FILE* fp = 0; + const char* fontPath ="./"; + char fullFontFileName[1024]; + + for (int i=0;icreateWindow(wci); + window->setWindowTitle("render test"); + + + + float retinaScale = 1; + +#ifndef __APPLE__ + GLenum err = glewInit(); +#else + retinaScale = window->getRetinaScale(); +#endif + + window->runMainLoop(); + window->startRendering(); + window->endRendering(); + + int maxObjectCapacity=128*1024; + GLInstancingRenderer render(maxObjectCapacity); + + GLPrimitiveRenderer* primRenderer = new GLPrimitiveRenderer(g_OpenGLWidth,g_OpenGLHeight); + + sth_stash* stash = initFont(primRenderer); + + render.InitShaders(); + + + createSceneProgrammatically(render); + + + render.writeTransforms(); + + window->runMainLoop(); + + window->setMouseButtonCallback(MyMouseButtonCallback); + window->setMouseMoveCallback(MyMouseMoveCallback); + window->setResizeCallback(MyResizeCallback); + window->setKeyboardCallback(btDefaultKeyboardCallback); + window->setWheelCallback(btDefaultWheelCallback); + + + //GLPrimitiveRenderer* pprender = new GLPrimitiveRenderer(g_OpenGLWidth,g_OpenGLHeight); + + glUseProgram(0); + + + + +//////////////////////////////// + + ///////////////////////////////////// + + + if (pCanvas) + { + pCanvas->SetSize(g_OpenGLWidth,g_OpenGLHeight); + } + setupGUI(g_OpenGLWidth,g_OpenGLHeight,stash,retinaScale,primRenderer); + class CProfileIterator* m_profileIterator; + m_profileIterator = CProfileManager::Get_Iterator(); + + glClearColor(1,1,1,1); + while (!window->requestedExit()) + { + CProfileManager::Reset(); + + { + BT_PROFILE("loop"); + + + + + { + BT_PROFILE("startRendering"); + window->startRendering(); + } + render.RenderScene(); + glFinish(); + float col[4]={0,1,0,1}; + // pprender->drawRect(10,50,120,60,col); +// glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); + //glEnable(GL_TEXTURE_2D); + + float x = 10; + float y=220; + float dx=0; + if (1) + { + BT_PROFILE("font sth_draw_text"); + + glEnable(GL_BLEND); + GLint err = glGetError(); + assert(err==GL_NO_ERROR); + + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + err = glGetError(); + assert(err==GL_NO_ERROR); + + glDisable(GL_DEPTH_TEST); + err = glGetError(); + assert(err==GL_NO_ERROR); + + + glDisable(GL_CULL_FACE); + + sth_begin_draw(stash); + sth_flush_draw(stash); + sth_draw_text(stash, droidRegular,20.f, x, y, "Non-retina font rendering !@#$", &dx,g_OpenGLWidth,g_OpenGLHeight,0,1);//retinaScale); + if (retinaScale!=1.f) + sth_draw_text(stash, droidRegular,20.f*retinaScale, x, y+20, "Retina font rendering!@#$", &dx,g_OpenGLWidth,g_OpenGLHeight,0,retinaScale); + sth_flush_draw(stash); + + sth_end_draw(stash); + } + + if (1) + { + BT_PROFILE("gwen RenderCanvas"); + + if (pCanvas) + { + glEnable(GL_BLEND); + GLint err = glGetError(); + assert(err==GL_NO_ERROR); + + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + glDisable(GL_DEPTH_TEST); + err = glGetError(); + assert(err==GL_NO_ERROR); + + //glColor4ub(255,0,0,255); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + + err = glGetError(); + assert(err==GL_NO_ERROR); + glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); + + // saveOpenGLState(width,height);//m_glutScreenWidth,m_glutScreenHeight); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + + err = glGetError(); + assert(err==GL_NO_ERROR); + + glDisable(GL_CULL_FACE); + + glDisable(GL_DEPTH_TEST); + err = glGetError(); + assert(err==GL_NO_ERROR); + + err = glGetError(); + assert(err==GL_NO_ERROR); + + glEnable(GL_BLEND); + + + err = glGetError(); + assert(err==GL_NO_ERROR); + + + + pCanvas->RenderCanvas(); + //restoreOpenGLState(); + } + + } + + + + + + + window->endRendering(); + + } + + + + CProfileManager::Increment_Frame_Counter(); + + + + static bool printStats = true; + + + if (printStats && !pauseSimulation) + { + static int count = 0; + count--; + if (count<0) + { + count = 100; + { + //BT_PROFILE("processProfileData"); + processProfileData(m_profileIterator,false); + } + //CProfileManager::dumpAll(); + //printStats = false; + } else + { +// printf("."); + } + } + + + } + + //delete pprender; +// render.CleanupShaders(); + window->closeWindow(); + + delete window; + + + + return 0; + + +} diff --git a/btgui/OpenGLWindow/renderscene.cpp b/btgui/OpenGLWindow/renderscene.cpp new file mode 100644 index 000000000..174488ccd --- /dev/null +++ b/btgui/OpenGLWindow/renderscene.cpp @@ -0,0 +1,199 @@ +int NUM_OBJECTS_X = 35; +int NUM_OBJECTS_Y = 35; +int NUM_OBJECTS_Z = 35; + + +float X_GAP = 2.3f; +float Y_GAP = 2.f; +float Z_GAP = 2.3f; + +bool keepStaticObjects = false; +#include + +#include "OpenGLInclude.h" + +#include "renderscene.h" + +#include "GLInstancingRenderer.h" +//#include "LinearMath/btQuickprof.h" +#include "BulletCommon/btQuaternion.h" +#include "BulletCommon/btMatrix3x3.h" +//#include "../opencl/gpu_rigidbody_pipeline/btConvexUtility.h" +#include "ShapeData.h" +///work-in-progress +///This ReadBulletSample is kept as simple as possible without dependencies to the Bullet SDK. +///It can be used to load .bullet data for other physics SDKs +///For a more complete example how to load and convert Bullet data using the Bullet SDK check out +///the Bullet/Demos/SerializeDemo and Bullet/Serialize/BulletWorldImporter + + +//using namespace Bullet; + +struct GraphicsVertex +{ + float xyzw[4]; + float normal[3]; + float uv[2]; +}; +struct GraphicsShape +{ + const float* m_vertices; + int m_numvertices; + const int* m_indices; + int m_numIndices; + float m_scaling[4]; +}; + +struct InstanceGroup +{ +// Bullet::btCollisionShapeData* m_shape; + int m_collisionShapeIndex; + +// btAlignedObjectArray m_rigidBodies; +}; + + + + +#define MY_UNITSPHERE_POINTS 42 + +static btVector3 sUnitSpherePoints[MY_UNITSPHERE_POINTS] = +{ + btVector3(btScalar(0.000000) , btScalar(-0.000000),btScalar(-1.000000)), + btVector3(btScalar(0.723608) , btScalar(-0.525725),btScalar(-0.447219)), + btVector3(btScalar(-0.276388) , btScalar(-0.850649),btScalar(-0.447219)), + btVector3(btScalar(-0.894426) , btScalar(-0.000000),btScalar(-0.447216)), + btVector3(btScalar(-0.276388) , btScalar(0.850649),btScalar(-0.447220)), + btVector3(btScalar(0.723608) , btScalar(0.525725),btScalar(-0.447219)), + btVector3(btScalar(0.276388) , btScalar(-0.850649),btScalar(0.447220)), + btVector3(btScalar(-0.723608) , btScalar(-0.525725),btScalar(0.447219)), + btVector3(btScalar(-0.723608) , btScalar(0.525725),btScalar(0.447219)), + btVector3(btScalar(0.276388) , btScalar(0.850649),btScalar(0.447219)), + btVector3(btScalar(0.894426) , btScalar(0.000000),btScalar(0.447216)), + btVector3(btScalar(-0.000000) , btScalar(0.000000),btScalar(1.000000)), + btVector3(btScalar(0.425323) , btScalar(-0.309011),btScalar(-0.850654)), + btVector3(btScalar(-0.162456) , btScalar(-0.499995),btScalar(-0.850654)), + btVector3(btScalar(0.262869) , btScalar(-0.809012),btScalar(-0.525738)), + btVector3(btScalar(0.425323) , btScalar(0.309011),btScalar(-0.850654)), + btVector3(btScalar(0.850648) , btScalar(-0.000000),btScalar(-0.525736)), + btVector3(btScalar(-0.525730) , btScalar(-0.000000),btScalar(-0.850652)), + btVector3(btScalar(-0.688190) , btScalar(-0.499997),btScalar(-0.525736)), + btVector3(btScalar(-0.162456) , btScalar(0.499995),btScalar(-0.850654)), + btVector3(btScalar(-0.688190) , btScalar(0.499997),btScalar(-0.525736)), + btVector3(btScalar(0.262869) , btScalar(0.809012),btScalar(-0.525738)), + btVector3(btScalar(0.951058) , btScalar(0.309013),btScalar(0.000000)), + btVector3(btScalar(0.951058) , btScalar(-0.309013),btScalar(0.000000)), + btVector3(btScalar(0.587786) , btScalar(-0.809017),btScalar(0.000000)), + btVector3(btScalar(0.000000) , btScalar(-1.000000),btScalar(0.000000)), + btVector3(btScalar(-0.587786) , btScalar(-0.809017),btScalar(0.000000)), + btVector3(btScalar(-0.951058) , btScalar(-0.309013),btScalar(-0.000000)), + btVector3(btScalar(-0.951058) , btScalar(0.309013),btScalar(-0.000000)), + btVector3(btScalar(-0.587786) , btScalar(0.809017),btScalar(-0.000000)), + btVector3(btScalar(-0.000000) , btScalar(1.000000),btScalar(-0.000000)), + btVector3(btScalar(0.587786) , btScalar(0.809017),btScalar(-0.000000)), + btVector3(btScalar(0.688190) , btScalar(-0.499997),btScalar(0.525736)), + btVector3(btScalar(-0.262869) , btScalar(-0.809012),btScalar(0.525738)), + btVector3(btScalar(-0.850648) , btScalar(0.000000),btScalar(0.525736)), + btVector3(btScalar(-0.262869) , btScalar(0.809012),btScalar(0.525738)), + btVector3(btScalar(0.688190) , btScalar(0.499997),btScalar(0.525736)), + btVector3(btScalar(0.525730) , btScalar(0.000000),btScalar(0.850652)), + btVector3(btScalar(0.162456) , btScalar(-0.499995),btScalar(0.850654)), + btVector3(btScalar(-0.425323) , btScalar(-0.309011),btScalar(0.850654)), + btVector3(btScalar(-0.425323) , btScalar(0.309011),btScalar(0.850654)), + btVector3(btScalar(0.162456) , btScalar(0.499995),btScalar(0.850654)) +}; + + +void createSceneProgrammatically(GLInstancingRenderer& renderer) +{ + int strideInBytes = sizeof(float)*9; + + bool noHeightField = false; + int barrelShapeIndex = -1; + int cubeShapeIndex = -1; + int tetraShapeIndex = -1; + + float position[4]={0,0,0,0}; + btQuaternion born(btVector3(1,0,0),SIMD_PI*0.25*0.5); + + float orn[4] = {0,0,0,1}; +// float rotOrn[4] = {born.getX(),born.getY(),born.getZ(),born.getW()};// + float rotOrn[4] ={0,0,0,1}; + + + float color[4] = {1,1,1,1}; + int index=0; + + + + + + + + float cubeScaling[4] = {1,1,1,1}; + { + int numVertices = sizeof(cube_vertices)/strideInBytes; + int numIndices = sizeof(cube_indices)/sizeof(int); + cubeShapeIndex = renderer.registerShape(&cube_vertices[0],numVertices,cube_indices,numIndices); + } + + + + + if (1) + for (int i=0;i