2.5.0a, multilevel, ao, dxt5, hostage entities & tweaks. #10 done (x4, x8 & FXAA).
authorTerri00 <thrustmediaproductions@gmail.com>
Tue, 18 Jun 2019 19:19:27 +0000 (20:19 +0100)
committerTerri00 <thrustmediaproductions@gmail.com>
Tue, 18 Jun 2019 19:19:27 +0000 (20:19 +0100)
30 files changed:
MCDV/GBuffer.hpp
MCDV/MCDV.vcxproj
MCDV/MCDV.vcxproj.filters
MCDV/Shader.hpp
MCDV/comp0.png [new file with mode: 0644]
MCDV/comp1.png [new file with mode: 0644]
MCDV/comp2.png [new file with mode: 0644]
MCDV/dds.hpp
MCDV/layer0.dds [new file with mode: 0644]
MCDV/layer0.png [new file with mode: 0644]
MCDV/layer1.dds [new file with mode: 0644]
MCDV/layer1.png [new file with mode: 0644]
MCDV/layer2.png [new file with mode: 0644]
MCDV/layerx.png [new file with mode: 0644]
MCDV/main2.cpp
MCDV/sample_stuff/de_tavr_test.prt
MCDV/sample_stuff/de_tavr_test.vmx
MCDV/shaders/fullscreenbase.fs
MCDV/shaders/ss_comp_multilayer_blend.fs [new file with mode: 0644]
MCDV/shaders/ss_comp_multilayer_finalstage.fs [new file with mode: 0644]
MCDV/shaders/ss_fxaa.fs [new file with mode: 0644]
MCDV/shaders/ss_msaa.fs [new file with mode: 0644]
MCDV/tar_config.hpp
MCDV/textures/blank.png [new file with mode: 0644]
MCDV/vmf_new.hpp
tar_entities/map_dividers.blend
tar_entities/map_dividers.blend1
tar_entities/tar_max.psd
tar_entities/tar_split.png [new file with mode: 0644]
tar_entities/tar_split.vtf [new file with mode: 0644]

index c46cd35ac36d72f1daac94cedc258b5f4bb0aec4..6c17d66002eeea151fd1dcdd90b872de01a5ebf5 100644 (file)
@@ -15,10 +15,15 @@ class GBuffer {
 
        unsigned int gMask;
 
+       int width;
+       int height;
+
 public:
        // 14 byte/px
        // 14 megabyte @ 1024x1024
        GBuffer(int window_width, int window_height) {
+               this->width = window_width;
+               this->height = window_height;
                glGenFramebuffers(1, &this->gBuffer);
                glBindFramebuffer(GL_FRAMEBUFFER, this->gBuffer);
 
@@ -94,11 +99,14 @@ public:
        }
 
        void Bind() {
+               glViewport(0, 0, this->width, this->height);
                glBindFramebuffer(GL_FRAMEBUFFER, this->gBuffer ); //Set as active draw target
        }
 
        static void Unbind() {
+               glViewport(0, 0, 1024, 1024);
                glBindFramebuffer(GL_FRAMEBUFFER, 0); //Revert to default framebuffer
+
        }
 
        ~GBuffer() {
@@ -113,10 +121,15 @@ class MBuffer {
 
        unsigned int gMask;
 
+       int width;
+       int height;
+
 public:
        // 14 byte/px
        // 14 megabyte @ 1024x1024
        MBuffer(int window_width, int window_height) {
+               this->width = window_width;
+               this->height = window_height;
                glGenFramebuffers(1, &this->gBuffer);
                glBindFramebuffer(GL_FRAMEBUFFER, this->gBuffer);
 
@@ -154,14 +167,90 @@ public:
        }
 
        void Bind() {
+               glViewport(0, 0, this->width, this->height);
                glBindFramebuffer(GL_FRAMEBUFFER, this->gBuffer); //Set as active draw target
        }
 
        static void Unbind() {
+               glViewport(0, 0, 1024, 1024);
                glBindFramebuffer(GL_FRAMEBUFFER, 0); //Revert to default framebuffer
        }
 
        ~MBuffer() {
                glDeleteFramebuffers(1, &this->gBuffer);
        }
+};
+
+/* Basic frame buffer for compositing */
+class FBuffer {
+       unsigned int gBuffer;
+       unsigned int rBuffer;
+
+       unsigned int gColor;
+
+       int width;
+       int height;
+
+public:
+       // 14 byte/px
+       // 14 megabyte @ 1024x1024
+       FBuffer(int window_width, int window_height) {
+               this->width = window_width;
+               this->height = window_height;
+               glGenFramebuffers(1, &this->gBuffer);
+               glBindFramebuffer(GL_FRAMEBUFFER, this->gBuffer);
+
+               // Position buffer float16 (48bpp)
+               glGenTextures(1, &this->gColor);
+               glBindTexture(GL_TEXTURE_2D, this->gColor);
+               glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, window_width, window_height, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
+               glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+               glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+               glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, this->gColor, 0);
+
+               // Announce attachments
+               unsigned int attachments[1] = {
+                       GL_COLOR_ATTACHMENT0
+               };
+
+               glDrawBuffers(1, attachments);
+
+               // Create and test render buffer
+               glGenRenderbuffers(1, &this->rBuffer);
+               glBindRenderbuffer(GL_RENDERBUFFER, this->rBuffer);
+               glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH24_STENCIL8, window_width, window_height);
+               glBindRenderbuffer(GL_RENDERBUFFER, 0);
+
+               glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_RENDERBUFFER, this->rBuffer);
+
+               if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
+                       std::cout << "ERROR::FRAMEBUFFER:: Framebuffer is not complete!" << std::endl;
+       }
+
+       /*
+       void BindRTtoTexSlot(int slot = 0) {
+       glActiveTexture(GL_TEXTURE0 + slot);
+       glBindTexture(GL_TEXTURE_2D, this->gBuffer);
+       glActiveTexture(GL_TEXTURE0);
+       }*/
+
+       void BindRTToTexSlot(int slot = 0) {
+               glActiveTexture(GL_TEXTURE0 + slot);
+               glBindTexture(GL_TEXTURE_2D, this->gColor);
+               glActiveTexture(GL_TEXTURE0);
+       }
+
+       void Bind() {
+               glViewport(0, 0, this->width, this->height);
+               glBindFramebuffer(GL_FRAMEBUFFER, this->gBuffer); //Set as active draw target
+       }
+
+       static void Unbind() {
+               glViewport(0, 0, 1024, 1024);
+               glBindFramebuffer(GL_FRAMEBUFFER, 0); //Revert to default framebuffer
+       }
+
+       ~FBuffer() {
+               glDeleteFramebuffers(1, &this->gBuffer);
+       }
 };
\ No newline at end of file
index 927f07842ca28062f41fe3cbf0dc01c63f257024..85244336a3bb55e53221263597bd3f59d251505a 100644 (file)
     <None Include="shaders\gBuffer.vs" />
     <None Include="shaders\iBuffer.fs" />
     <None Include="shaders\ss_comp_main.fso" />
+    <None Include="shaders\ss_comp_multilayer_blend.fs" />
+    <None Include="shaders\ss_comp_multilayer_finalstage.fs" />
+    <None Include="shaders\ss_fxaa.fs" />
+    <None Include="shaders\ss_msaa.fs" />
     <None Include="shaders\ss_precomp_objectives.fs" />
     <None Include="shaders\ss_precomp_playspace.fs" />
     <None Include="shaders\textfont.fs" />
index d9e3dcb998400dc9317b5c6cd60ae43b5f36d18c..df5a7d3d08fadfc985c6e16379b8fccce9595f2c 100644 (file)
     <None Include="shaders\ss_comp_main.fso">
       <Filter>OpenGL\Shader Files</Filter>
     </None>
+    <None Include="shaders\ss_comp_multilayer_blend.fs">
+      <Filter>OpenGL\Shader Files</Filter>
+    </None>
+    <None Include="shaders\ss_comp_multilayer_finalstage.fs">
+      <Filter>OpenGL\Shader Files</Filter>
+    </None>
+    <None Include="shaders\ss_fxaa.fs">
+      <Filter>OpenGL\Shader Files</Filter>
+    </None>
+    <None Include="shaders\ss_msaa.fs">
+      <Filter>OpenGL\Shader Files</Filter>
+    </None>
   </ItemGroup>
   <ItemGroup>
     <Image Include="fonts\dina-r.png">
index 601f17207c4b844b167daf5c5564e643573a2587..c5e05aa077040a2efcc4d64d4c16f75bf5d1c973 100644 (file)
@@ -37,6 +37,7 @@ public:
        void setMatrix(const std::string &name, glm::mat4 matrix) const;
        void setVec3(const std::string &name, glm::vec3 vector) const;
 
+       void setVec2(const std::string& name, glm::vec2 vector) const;
        void setVec3(const std::string &name, float v1, float v2, float v3) const;
        void setVec4(const std::string &name, float v1, float v2, float v3, float v4) const;
        void setVec4(const std::string &name, glm::vec4 vector) const;
@@ -164,6 +165,13 @@ void Shader::setMatrix(const std::string &name, glm::mat4 matrix) const
                glm::value_ptr(matrix));
 }
 
+void Shader::setVec2(const std::string& name, glm::vec2 vector) const
+{
+       glUniform2fv(glGetUniformLocation(this->programID, name.c_str()),
+               1,
+               glm::value_ptr(vector));
+}
+
 void Shader::setVec3(const std::string &name, glm::vec3 vector) const
 {
        glUniform3fv(glGetUniformLocation(this->programID, name.c_str()),
diff --git a/MCDV/comp0.png b/MCDV/comp0.png
new file mode 100644 (file)
index 0000000..755d1d2
Binary files /dev/null and b/MCDV/comp0.png differ
diff --git a/MCDV/comp1.png b/MCDV/comp1.png
new file mode 100644 (file)
index 0000000..1376e87
Binary files /dev/null and b/MCDV/comp1.png differ
diff --git a/MCDV/comp2.png b/MCDV/comp2.png
new file mode 100644 (file)
index 0000000..ccc9979
Binary files /dev/null and b/MCDV/comp2.png differ
index d0971a309a3ba908104e8541f0b3537bca622b8f..b5d6383f7e00d33844307b9eede37d5764dd90f8 100644 (file)
@@ -1,3 +1,4 @@
+#pragma once
 #include <stdint.h>
 #include <stdlib.h>
 #include <string.h> 
@@ -7,7 +8,6 @@
 
 #define __max(a,b)            (((a) > (b)) ? (a) : (b))
 #define __min(a,b)            (((a) < (b)) ? (a) : (b))
-#pragma once
 
 #pragma pack(push, 1)
 struct DDS_PIXELFORMAT {
@@ -82,6 +82,8 @@ UINT32 SwapEndian(UINT32 val)
 #define DDS_HEADER_PFSIZE 32
 #define DDS_MAGICNUM 0x20534444;
 
+#define DDS_FLIP_VERTICALLY_ON_WRITE
+
 /*
 imageData:     Pointer to image data
 compressedSize: Pointer to final data size
@@ -252,7 +254,9 @@ bool dds_write(uint8_t* imageData, const char* filename, uint32_t w, uint32_t h,
        }
        else
        {
-               output.write((char*)imageData, final_image_size);
+               for (int row = 0; row < h; row++) {
+                       output.write((char*)imageData + (final_image_size - (row * w * 3)), w * 3);
+               }
        }
 
        output.close();
diff --git a/MCDV/layer0.dds b/MCDV/layer0.dds
new file mode 100644 (file)
index 0000000..7b0e2d0
Binary files /dev/null and b/MCDV/layer0.dds differ
diff --git a/MCDV/layer0.png b/MCDV/layer0.png
new file mode 100644 (file)
index 0000000..4cadcf7
Binary files /dev/null and b/MCDV/layer0.png differ
diff --git a/MCDV/layer1.dds b/MCDV/layer1.dds
new file mode 100644 (file)
index 0000000..11a183d
Binary files /dev/null and b/MCDV/layer1.dds differ
diff --git a/MCDV/layer1.png b/MCDV/layer1.png
new file mode 100644 (file)
index 0000000..9657603
Binary files /dev/null and b/MCDV/layer1.png differ
diff --git a/MCDV/layer2.png b/MCDV/layer2.png
new file mode 100644 (file)
index 0000000..d9ea478
Binary files /dev/null and b/MCDV/layer2.png differ
diff --git a/MCDV/layerx.png b/MCDV/layerx.png
new file mode 100644 (file)
index 0000000..363041c
Binary files /dev/null and b/MCDV/layerx.png differ
index beb67c4aec03964d22e2cc934eceacbb281594a7..bc45eb309b3cee570f1b68eec6226aff2b4dc25e 100644 (file)
 #include "GradientMap.hpp"
 #include "SSAOKernel.hpp"
 #include "tar_config.hpp"
+#include "dds.hpp"
 
-std::string m_game_path = "D:/SteamLibrary/steamapps/common/Counter-Strike Global Offensive/csgo";
+#include "cxxopts.hpp"
 
-void render_config(tar_config_layer layer);
+#define STB_IMAGE_WRITE_IMPLEMENTATION
+#define STBI_MSC_SECURE_CRT
+#include "stb_image_write.h"
 
-glm::mat4 g_mat4_viewm;
-glm::mat4 g_mat4_projm;
+#define TAR_MAX_LAYERS 5
+
+std::string g_game_path = "D:/SteamLibrary/steamapps/common/Counter-Strike Global Offensive/csgo";
+std::string g_mapfile_path = "sample_stuff/de_tavr_test";
+std::string g_mapname;
+std::string g_mapfile_name;
+std::string g_folder_overviews;
+std::string g_folder_resources;
+
+bool           g_onlyMasks = false;
+bool           g_Masks         = false;
+
+void render_config(tar_config_layer layer, const std::string& layerName, FBuffer* drawTarget = NULL);
+
+//glm::mat4 g_mat4_viewm;
+//glm::mat4 g_mat4_projm;
 
 Shader* g_shader_gBuffer;
 Shader* g_shader_iBuffer;
 Shader* g_shader_comp;
+Shader* g_shader_multilayer_blend;
+Shader* g_shader_multilayer_final;
+Shader* g_shader_fxaa;
+Shader* g_shader_msaa;
 
 GBuffer* g_gbuffer;
 GBuffer* g_gbuffer_clean;
 MBuffer* g_mask_playspace;
 MBuffer* g_mask_buyzone;
 MBuffer* g_mask_objectives;
+FBuffer* g_fbuffer_generic;
+FBuffer* g_fbuffer_generic1;
 
 vmf* g_vmf_file;
 tar_config* g_tar_config;
-BoundingBox g_vmf_info_bounds;
 
 Mesh* g_mesh_screen_quad;
 Texture* g_texture_background;
@@ -48,7 +70,62 @@ Texture* g_texture_modulate;
 std::vector<glm::vec3> g_ssao_samples;
 Texture* g_ssao_rotations;
 
-int main(){
+uint32_t g_renderWidth = 1024;
+uint32_t g_renderHeight = 1024;
+uint32_t g_msaa_mul = 1;
+
+void render_to_png(int x, int y, const char* filepath);
+void save_to_dds(int x, int y, const char* filepath, IMG imgmode = IMG::MODE_DXT1);
+
+#define __DEBUG
+
+int app(int argc, const char** argv) {
+#ifndef _DEBUG
+#pragma region cxxopts
+       cxxopts::Options options("AutoRadar", "Auto radar");
+       options.add_options()
+               ("v,version",   "Shows the software version")
+               ("g,game",              "(REQUIRED) Specify game path", cxxopts::value<std::string>()->default_value(""))
+               ("m,mapfile",   "(REQUIRED) Specify the map file (vmf)", cxxopts::value<std::string>()->default_value(""))
+
+               ("d,dumpMasks", "Toggles whether auto radar should output mask images (resources/map_file.resources/)")
+               ("o,onlyMasks", "Specift whether auto radar should only output mask images and do nothing else (resources/map_file.resources)")
+
+               ("positional", "Positional parameters", cxxopts::value<std::vector<std::string>>());
+
+       options.parse_positional("positional");
+       auto result = options.parse(argc, argv);
+
+       /* Check required parameters */
+       if (result.count("game")) g_game_path = sutil::ReplaceAll(result["game"].as<std::string>(), "\n", "");
+       else throw cxxopts::option_required_exception("game");
+
+       if (result.count("mapfile")) g_mapfile_path = result["mapfile"].as<std::string>();
+       else if (result.count("positional")) {
+               auto& positional = result["positional"].as<std::vector<std::string>>();
+
+               g_mapfile_path = sutil::ReplaceAll(positional[0], "\n", "");
+       }
+       else throw cxxopts::option_required_exception("mapfile"); // We need a map file
+
+       //Clean paths to what we can deal with
+       g_mapfile_path = sutil::ReplaceAll(g_mapfile_path, "\\", "/");
+       g_game_path = sutil::ReplaceAll(g_game_path, "\\", "/");
+
+       /* Check the rest of the flags */
+       g_onlyMasks = result["onlyMasks"].as<bool>();
+       g_Masks = result["dumpMasks"].as<bool>() || g_onlyMasks;
+
+       /* Render options */
+       //m_renderWidth = result["width"].as<uint32_t>();
+       //m_renderHeight = result["height"].as<uint32_t>();
+#pragma endregion
+#endif
+
+       g_mapfile_name = split(g_mapfile_path, '/').back();
+       g_folder_overviews = g_game_path + "/resource/overviews/";
+       g_folder_resources = g_folder_overviews + g_mapfile_name + ".resources/";
+
 #pragma region opengl_setup
        glfwInit();
        glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
@@ -56,9 +133,9 @@ int main(){
        glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
        glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
 
-       //glfwWindowHint(GLFW_VISIBLE, GL_FALSE);
+       glfwWindowHint(GLFW_VISIBLE, GL_FALSE);
 
-       GLFWwindow* window = glfwCreateWindow(1024, 1024, "Ceci n'est pas une window", NULL, NULL);
+       GLFWwindow* window = glfwCreateWindow(g_renderWidth, g_renderHeight, "Ceci n'est pas une window", NULL, NULL);
 
        if (window == NULL) {
                printf("GLFW died\n");
@@ -78,13 +155,12 @@ int main(){
        printf("(required: min core 3.3.0) opengl version: %s\n", glver);
 #pragma endregion
 
-       vfilesys* filesys = new vfilesys(m_game_path + "/gameinfo.txt");
+       vfilesys* filesys = new vfilesys(g_game_path + "/gameinfo.txt");
 
        vmf::LinkVFileSystem(filesys);
-       g_vmf_file = vmf::from_file("sample_stuff/de_tavr_test.vmf");
+       g_vmf_file = vmf::from_file(g_mapfile_path + ".vmf");
        g_vmf_file->InitModelDict();
        g_tar_config = new tar_config(g_vmf_file);
-       g_vmf_info_bounds = g_vmf_file->getVisgroupBounds(g_tar_config->m_visgroup_layout);
 
 #pragma region opengl_extra
 
@@ -99,20 +175,30 @@ int main(){
        g_mesh_screen_quad = new Mesh(__meshData, MeshMode::SCREEN_SPACE_UV);
 
        // Set up shaders
-       g_shader_gBuffer = new Shader("shaders/gBuffer.vs", "shaders/gBuffer.fs");
-       g_shader_iBuffer = new Shader("shaders/gBuffer.vs", "shaders/iBuffer.fs");
-       g_shader_comp = new Shader("shaders/fullscreenbase.vs", "shaders/fullscreenbase.fs");
+       g_shader_gBuffer =      new Shader("shaders/gBuffer.vs", "shaders/gBuffer.fs");
+       g_shader_iBuffer =      new Shader("shaders/gBuffer.vs", "shaders/iBuffer.fs");
+       g_shader_comp =         new Shader("shaders/fullscreenbase.vs", "shaders/fullscreenbase.fs");
+       g_shader_multilayer_blend = new Shader("shaders/fullscreenbase.vs", "shaders/ss_comp_multilayer_blend.fs");
+       g_shader_multilayer_final = new Shader("shaders/fullscreenbase.vs", "shaders/ss_comp_multilayer_finalstage.fs");
+       g_shader_fxaa =         new Shader("shaders/fullscreenbase.vs", "shaders/ss_fxaa.fs");
+       g_shader_msaa =         new Shader("shaders/fullscreenbase.vs", "shaders/ss_msaa.fs");
+
+       if(g_tar_config->m_sampling_mode == sampling_mode::MSAA4x ||
+               g_tar_config->m_sampling_mode == sampling_mode::MSAA16x)
+       g_msaa_mul = g_tar_config->m_sampling_mode;
 
        // Set up draw buffers
-       g_mask_playspace =      new MBuffer(1024, 1024);
-       g_mask_objectives = new MBuffer(1024, 1024);
-       g_mask_buyzone =        new MBuffer(1024, 1024);
-       g_gbuffer =                     new GBuffer(1024, 1024);
-       g_gbuffer_clean =   new GBuffer(1024, 1024);
+       g_mask_playspace =      new MBuffer(g_renderWidth * g_msaa_mul, g_renderHeight * g_msaa_mul);
+       g_mask_objectives = new MBuffer(g_renderWidth * g_msaa_mul, g_renderHeight * g_msaa_mul);
+       g_mask_buyzone =        new MBuffer(g_renderWidth * g_msaa_mul, g_renderHeight * g_msaa_mul);
+       g_gbuffer =                     new GBuffer(g_renderWidth * g_msaa_mul, g_renderHeight * g_msaa_mul);
+       g_gbuffer_clean =   new GBuffer(g_renderWidth * g_msaa_mul, g_renderHeight * g_msaa_mul);
+       g_fbuffer_generic = new FBuffer(g_renderWidth * g_msaa_mul, g_renderHeight * g_msaa_mul);
+       g_fbuffer_generic1 =new FBuffer(g_renderWidth * g_msaa_mul, g_renderHeight * g_msaa_mul);
 
        // Setup camera projection matrices
-       g_mat4_projm = glm::ortho(-2000.0f, 2000.0f, -2000.0f, 2000.0f, -1024.0f, 1024.0f);
-       g_mat4_viewm = glm::lookAt(glm::vec3(0, 0, 0), glm::vec3(0.0f, -1.0f, 0.0f), glm::vec3(0, 0, 1));
+       //g_mat4_projm = glm::ortho(-2000.0f, 2000.0f, -2000.0f, 2000.0f, -1024.0f, 1024.0f);
+       //g_mat4_viewm = glm::lookAt(glm::vec3(0, 0, 0), glm::vec3(0.0f, -1.0f, 0.0f), glm::vec3(0, 0, 1));
 
        // Load textures
        g_texture_background = g_tar_config->m_texture_background;//new Texture("textures/grid.png");
@@ -124,40 +210,228 @@ int main(){
        glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
        glFrontFace(GL_CW);
 
-       std::vector<entity*> configs = g_vmf_file->get_entities_by_classname("tar_config");
+#pragma endregion
+
+#pragma region render
+
+       std::map<tar_config_layer*, FBuffer*> _flayers;
+
+       // Render all map segments
+       int c = 0;
+       for (auto && layer : g_tar_config->layers){
+               _flayers.insert({ &layer, new FBuffer(g_renderWidth, g_renderHeight) });
+               render_config(layer, "layer" + std::to_string(c++) + ".png", _flayers[&layer]);
+       }
+
+       // Render out everything so we got acess to G Buffer info in final composite
+       if(g_tar_config->layers.size() > 1) render_config(tar_config_layer(), "layerx.png", NULL);
+       GBuffer::Unbind();
+
+       glDisable(GL_DEPTH_TEST);
+       glEnable(GL_BLEND);
+       glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+       glBlendEquation(GL_FUNC_ADD);
+
+
+       ///g_gbuffer->BindPositionBufferToTexSlot(0);
+       ///g_shader_multilayer_blend->setInt("gbuffer_position", 0);
+
+       int i = 0;
+       for (auto && megalayer : g_tar_config->layers){
+               g_fbuffer_generic->Bind();
+               glClearColor(0.0, 0.0, 0.0, 0.0);
+               glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+               g_shader_multilayer_blend->use();
+               g_shader_multilayer_blend->setInt("tex_layer", 1);
+               g_shader_multilayer_blend->setFloat("saturation", 0.1f);
+               g_shader_multilayer_blend->setFloat("value", 0.3f);
+
+               for(int x = 0; x < g_tar_config->layers.size(); x++)
+               {
+                       tar_config_layer* l = &g_tar_config->layers[g_tar_config->layers.size() - x - 1];
+                       if (l == &megalayer) continue;
+
+                       _flayers[l]->BindRTToTexSlot(1);
+                       g_mesh_screen_quad->Draw();
+               }
+
+               g_shader_multilayer_blend->setFloat("saturation", 1.0f);
+               g_shader_multilayer_blend->setFloat("value", 1.0f);
+
+               _flayers[&megalayer]->BindRTToTexSlot(1);
+               g_mesh_screen_quad->Draw();
+
+               
+               FBuffer::Unbind();
+
+               g_fbuffer_generic1->Bind();
+
+               glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+               g_shader_multilayer_final->use();
+               g_shader_multilayer_final->setFloat("blend_outline", g_tar_config->m_outline_enable? 1.0f:0.0f);
+               g_shader_multilayer_final->setVec4("color_outline", g_tar_config->m_color_outline);
+               g_shader_multilayer_final->setInt("outline_width", g_tar_config->m_outline_width * g_msaa_mul);
+
+               g_tar_config->m_texture_background->bindOnSlot(0);
+               g_shader_multilayer_final->setInt("tex_background", 0);
+
+               g_fbuffer_generic->BindRTToTexSlot(1);
+               g_shader_multilayer_final->setInt("tex_layer", 1);
+               g_mesh_screen_quad->Draw();
+
+               // Apply FXAA
+               if (g_tar_config->m_sampling_mode == sampling_mode::FXAA) {
+                       FBuffer::Unbind();
+
+                       g_shader_fxaa->use();
+                       g_shader_fxaa->setInt("sampler0", 0);
+                       g_shader_fxaa->setVec2("resolution", glm::vec2(g_renderWidth, g_renderHeight));
+                       g_fbuffer_generic1->BindRTToTexSlot(0);
+
+                       g_mesh_screen_quad->Draw();
+               }
+               else if (g_tar_config->m_sampling_mode == sampling_mode::MSAA16x
+                       || g_tar_config->m_sampling_mode == sampling_mode::MSAA4x)
+               {
+                       FBuffer::Unbind();
+
+                       g_shader_msaa->use();
+                       g_shader_msaa->setInt("sampler0", 0);
+                       g_fbuffer_generic1->BindRTToTexSlot(0);
+                       g_mesh_screen_quad->Draw();
+               }
+
+               // final composite
+               //render_to_png(1024, 1024, ("comp" + std::to_string(i++) + ".png").c_str());
+               if (i == 0) {
+                       save_to_dds(g_renderWidth, g_renderHeight, filesys->create_output_filepath("resource/overviews/" + g_mapfile_name +"_radar.dds", true).c_str(), g_tar_config->m_dds_img_mode);
+                       i++;
+               }
+               else {
+                       save_to_dds(g_renderWidth, g_renderHeight, filesys->create_output_filepath("resource/overviews/" + g_mapfile_name + "_layer" + std::to_string(i++) + "_radar.dds", true).c_str(), g_tar_config->m_dds_img_mode);
+               }
+               FBuffer::Unbind();
+       }
 
 #pragma endregion
 
-       while (!glfwWindowShouldClose(window)) {
-               Sleep(1000);
+       std::cout << "Generating radar .TXT... ";
+
+       kv::DataBlock node_radar = kv::DataBlock();
+       node_radar.name = "\"" + g_mapfile_name + "\"";
+       node_radar.Values.insert({ "material", "overviews/" + g_mapfile_name });
+
+       node_radar.Values.insert({ "pos_x", std::to_string(g_tar_config->m_view_origin.x) });
+       node_radar.Values.insert({ "pos_y", std::to_string(g_tar_config->m_view_origin.y) });
+       node_radar.Values.insert({ "scale", std::to_string(g_tar_config->m_render_ortho_scale / g_renderWidth) });
+
+       if (g_tar_config->layers.size() > 1) {
+               kv::DataBlock node_vsections = kv::DataBlock();
+               node_vsections.name = "\"verticalsections\"";
+
+               int ln = 0;
+               for (auto && layer : g_tar_config->layers) {
+                       kv::DataBlock node_layer = kv::DataBlock();
+                       if (ln == 0) {
+                               node_layer.name = "\"default\""; ln++;
+                       }
+                       else node_layer.name = "\"layer" + std::to_string(ln++) + "\"";
+
+                       node_layer.Values.insert({ "AltitudeMin", std::to_string(layer.layer_max) });
+                       node_layer.Values.insert({ "AltitudeMax", std::to_string(layer.layer_min) });
+                       
+                       node_vsections.SubBlocks.push_back(node_layer);
+               }
+
+               node_radar.SubBlocks.push_back(node_vsections);
+       }
 
-               render_config(tar_config_layer());
+       // Try resolve spawn positions
+       glm::vec3* loc_spawnCT = g_vmf_file->calculateSpawnAVG_PMIN("info_player_counterterrorist");
+       glm::vec3* loc_spawnT = g_vmf_file->calculateSpawnAVG_PMIN("info_player_terrorist");
 
-               glfwSwapBuffers(window);
-               glfwPollEvents();
+       if (loc_spawnCT != NULL) {
+               node_radar.Values.insert({ "CTSpawn_x", std::to_string(util::roundf(remap(loc_spawnCT->x, g_tar_config->m_view_origin.x, g_tar_config->m_view_origin.x + g_tar_config->m_render_ortho_scale, 0.0f, 1.0f), 0.01f)) });
+               node_radar.Values.insert({ "CTSpawn_y", std::to_string(util::roundf(remap(loc_spawnCT->y, g_tar_config->m_view_origin.y, g_tar_config->m_view_origin.y - g_tar_config->m_render_ortho_scale, 0.0f, 1.0f), 0.01f)) });
+       }
+       if (loc_spawnT != NULL) {
+               node_radar.Values.insert({ "TSpawn_x", std::to_string(util::roundf(remap(loc_spawnT->x, g_tar_config->m_view_origin.x, g_tar_config->m_view_origin.x + g_tar_config->m_render_ortho_scale, 0.0f, 1.0f), 0.01f)) });
+               node_radar.Values.insert({ "TSpawn_y", std::to_string(util::roundf(remap(loc_spawnT->y, g_tar_config->m_view_origin.y, g_tar_config->m_view_origin.y - g_tar_config->m_render_ortho_scale, 0.0f, 1.0f), 0.01f)) });
        }
+
+       int hostn = 1;
+       for (auto && hostage : g_vmf_file->get_entities_by_classname("info_hostage_spawn")) {
+               node_radar.Values.insert({ "Hostage" + std::to_string(hostn) + "_x", std::to_string(util::roundf(remap(hostage->m_origin.x, g_tar_config->m_view_origin.x, g_tar_config->m_view_origin.x + g_tar_config->m_render_ortho_scale, 0.0f, 1.0f), 0.01f)) });
+               node_radar.Values.insert({ "Hostage" + std::to_string(hostn++) + "_y", std::to_string(util::roundf(remap(hostage->m_origin.y, g_tar_config->m_view_origin.y, g_tar_config->m_view_origin.y - g_tar_config->m_render_ortho_scale, 0.0f, 1.0f), 0.01f)) });
+       }
+
+       std::ofstream out(filesys->create_output_filepath("resource/overviews/" + g_mapfile_name + ".txt", true).c_str());
+       out << "// TAVR - AUTO RADAR. v 2.5.0a\n";
+       node_radar.Serialize(out);
+       out.close();
+
        IL_EXIT:
        glfwTerminate();
+#ifdef _DEBUG
+       system("PAUSE");
+#endif
        return 0;
 }
 
 #endif
 
-void render_config(tar_config_layer layer) {
+#define _RENDERCLIP
+
+void render_config(tar_config_layer layer, const std::string& layerName, FBuffer* drawTarget) {
        // G BUFFER GENERATION ======================================================================================
 #pragma region buffer_gen_geo
 
+#ifdef RENDERCLIP
+       glm::mat4 l_mat4_projm = glm::ortho(
+               g_tar_config->m_view_origin.x,                                                                          // -X
+               g_tar_config->m_view_origin.x + g_tar_config->m_render_ortho_scale,     // +X
+               g_tar_config->m_view_origin.y - g_tar_config->m_render_ortho_scale,     // -Y
+               g_tar_config->m_view_origin.y,                                                                          // +Y
+               0.0f, //g_tar_config->m_map_bounds.NWU.y,                                                                       // NEARZ
+               layer.layer_max - layer.layer_min);// g_tar_config->m_map_bounds.SEL.y);                                                                        // FARZ
+
+       glm::mat4 l_mat4_viewm = glm::lookAt(
+               glm::vec3(0, layer.layer_max, 0), 
+               glm::vec3(0.0f, layer.layer_max -1.0f, 0.0f),
+               glm::vec3(0, 0, 1));
+#else
+       glm::mat4 l_mat4_projm = glm::ortho(
+               g_tar_config->m_view_origin.x,                                                                          // -X
+               g_tar_config->m_view_origin.x + g_tar_config->m_render_ortho_scale,     // +X
+               g_tar_config->m_view_origin.y - g_tar_config->m_render_ortho_scale,     // -Y
+               g_tar_config->m_view_origin.y,                                                                          // +Y
+               -10000.0f, //g_tar_config->m_map_bounds.NWU.y,                                                                  // NEARZ
+               10000.0f);// g_tar_config->m_map_bounds.SEL.y);                                                                 // FARZ
+
+       glm::mat4 l_mat4_viewm = glm::lookAt(
+               glm::vec3(0, 0, 0),
+               glm::vec3(0.0f, -1.0f, 0.0f),
+               glm::vec3(0, 0, 1));
+
+       std::cout << "v" << layer.layer_min << "\n";
+       std::cout << "^" << layer.layer_max << "\n";
+
+       g_vmf_file->SetMinMax(layer.layer_min, layer.layer_max);
+#endif
+
        g_gbuffer->Bind();
 
-       glClearColor(0.0, 0.0, 0.0, 1.0);
+       glClearColor(-10000.0, -10000.0, -10000.0, 1.0);
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
        glEnable(GL_CULL_FACE);
        glCullFace(GL_BACK);
 
        g_shader_gBuffer->use();
-       g_shader_gBuffer->setMatrix("projection", g_mat4_projm);
-       g_shader_gBuffer->setMatrix("view", g_mat4_viewm);
+       g_shader_gBuffer->setMatrix("projection", l_mat4_projm);
+       g_shader_gBuffer->setMatrix("view", l_mat4_viewm);
 
        glm::mat4 model = glm::mat4();
        g_shader_gBuffer->setMatrix("model", model);
@@ -205,8 +479,8 @@ void render_config(tar_config_layer layer) {
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
        g_shader_iBuffer->use();
-       g_shader_iBuffer->setMatrix("projection", g_mat4_projm);
-       g_shader_iBuffer->setMatrix("view", g_mat4_viewm);
+       g_shader_iBuffer->setMatrix("projection", l_mat4_projm);
+       g_shader_iBuffer->setMatrix("view", l_mat4_viewm);
 
        // LAYOUT ================================================================
 
@@ -246,6 +520,9 @@ void render_config(tar_config_layer layer) {
 
        MBuffer::Unbind(); // Release any frame buffer
 
+       if(drawTarget != NULL)
+               drawTarget->Bind();
+
        glClearColor(0.0, 0.0, 0.0, 1.0);
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
@@ -286,23 +563,77 @@ void render_config(tar_config_layer layer) {
 
        g_ssao_rotations->bindOnSlot              ( 9 );
        g_shader_comp->setInt("ssaoRotations",      9 );
-       g_shader_comp->setFloat("ssaoScale", 1000.0f);
-       g_shader_comp->setMatrix("projection", g_mat4_projm);
-       g_shader_comp->setMatrix("view", g_mat4_viewm);
+       g_shader_comp->setFloat("ssaoScale", g_tar_config->m_ao_scale);
+       g_shader_comp->setMatrix("projection", l_mat4_projm);
+       g_shader_comp->setMatrix("view", l_mat4_viewm);
 
        for (int i = 0; i < 256; i++) {
                g_shader_comp->setVec3("samples[" + std::to_string(i) + "]", g_ssao_samples[i]);
        }
 
        // Bind uniforms
-       g_shader_comp->setVec3("bounds_NWU", g_vmf_info_bounds.NWU);
-       g_shader_comp->setVec3("bounds_SEL", g_vmf_info_bounds.SEL);
+       g_shader_comp->setVec3("bounds_NWU", g_tar_config->m_map_bounds.NWU);
+       g_shader_comp->setVec3("bounds_SEL", g_tar_config->m_map_bounds.SEL);
 
        g_shader_comp->setVec4("color_objective",       g_tar_config->m_color_objective);
        g_shader_comp->setVec4("color_buyzone",         g_tar_config->m_color_buyzone);
        g_shader_comp->setVec4("color_cover",           g_tar_config->m_color_cover);
        g_shader_comp->setVec4("color_cover2",          g_tar_config->m_color_cover2);
+       g_shader_comp->setVec4("color_ao",                      g_tar_config->m_color_ao);
+       g_shader_comp->setFloat("blend_objective_stripes", g_tar_config->m_outline_stripes_enable? 0.0f: 1.0f);
+       g_shader_comp->setFloat("blend_ao", g_tar_config->m_ao_enable? 1.0f: 0.0f);
+       g_shader_comp->setInt("mssascale", g_msaa_mul);
 
        g_mesh_screen_quad->Draw();
+
+       //render_to_png(g_renderWidth, g_renderHeight, layerName.c_str());
 #pragma endregion
+}
+
+int main(int argc, const char** argv) {
+       try {
+               return app(argc, argv);
+       }
+       catch (cxxopts::OptionException& e) {
+               std::cerr << "Parse error: " << e.what() << "\n";
+       }
+
+       return 1;
+}
+
+
+void render_to_png(int x, int y, const char* filepath){
+       void* data = malloc(4 * x * y);
+
+       glReadPixels(0, 0, x, y, GL_RGBA, GL_UNSIGNED_BYTE, data);
+
+       stbi_flip_vertically_on_write(true);
+       stbi_write_png(filepath, x, y, 4, data, x * 4);
+
+       free(data);
+}
+
+void save_to_dds(int x, int y, const char* filepath, IMG imgmode)
+{
+       void* data = malloc(4 * x * y);
+
+       glReadPixels(0, 0, x, y, GL_RGB, GL_UNSIGNED_BYTE, data);
+
+       dds_write((uint8_t*)data, filepath, x, y, imgmode);
+
+       free(data);
+}
+
+
+
+/*
+
+NVIDIA optimus systems will default to intel integrated graphics chips.
+
+This export gets picked up by NVIDIA drivers (v 302+).
+It will force usage of the dedicated video device in the machine, which likely has full coverage of 3.3
+
+*/
+extern "C" {
+       _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
 }
\ No newline at end of file
index 3a3e5b917e97f3d16ef311e91a88d4bc9f54e112..041f1631caebc748162e8b8dadcd3edddf517b19 100644 (file)
 PRT1
-152
-432
-4 0 4 (4096 3072 -128 ) (4096 3072 512 ) (3072 3072 512 ) (3072 3072 -128 ) 
-4 0 1 (3072 3072 -128 ) (3072 3072 512 ) (3072 4096 512 ) (3072 4096 -128 ) 
-4 1 10 (3072 3072 -128 ) (3072 3072 0 ) (2048 3072 0 ) (2048 3072 -128 ) 
-4 1 8 (2176 3072 512 ) (2048 3072 512 ) (2048 3072 0 ) (2176 3072 0 ) 
-4 1 7 (3072 3072 0 ) (3072 3072 512 ) (2176 3072 512 ) (2176 3072 0 ) 
-4 1 2 (2048 3072 -128 ) (2048 3072 512 ) (2048 4096 512 ) (2048 4096 -128 ) 
-4 2 13 (2048 3072 -128 ) (2048 3072 0 ) (1024 3072 0 ) (1024 3072 -128 ) 
-4 2 11 (2048 3072 0 ) (2048 3072 512 ) (1024 3072 512 ) (1024 3072 0 ) 
-4 2 3 (1024 3072 -128 ) (1024 3072 512 ) (1024 4096 512 ) (1024 4096 -128 ) 
-4 3 47 (0 3072 -128 ) (0 3072 512 ) (0 4096 512 ) (0 4096 -128 ) 
-4 3 18 (1024 3072 -128 ) (1024 3072 0 ) (0 3072 0 ) (0 3072 -128 ) 
-4 3 16 (256 3072 512 ) (0 3072 512 ) (0 3072 0 ) (256 3072 0 ) 
-4 3 14 (1024 3072 0 ) (1024 3072 512 ) (256 3072 512 ) (256 3072 0 ) 
-4 4 10 (3072 3072 0 ) (3072 3072 -128 ) (3072 2048 -128 ) (3072 2048 0 ) 
-4 4 7 (3072 3072 512 ) (3072 3072 0 ) (3072 2048 0 ) (3072 2048 512 ) 
-4 4 5 (4096 2048 -128 ) (4096 2048 512 ) (3072 2048 512 ) (3072 2048 -128 ) 
-4 5 22 (3072 1024 -128 ) (3072 1024 0 ) (3072 2048 0 ) (3072 2048 -128 ) 
-4 5 21 (3072 1024 0 ) (3072 1024 128 ) (3072 1664 128 ) (3072 1664 0 ) 
-4 5 20 (3072 1664 128 ) (3072 2048 128 ) (3072 2048 0 ) (3072 1664 0 ) 
-4 5 19 (3072 1024 128 ) (3072 1024 512 ) (3072 2048 512 ) (3072 2048 128 ) 
-4 5 6 (4096 1024 -128 ) (4096 1024 512 ) (3072 1024 512 ) (3072 1024 -128 ) 
-4 6 85 (4096 0 -128 ) (4096 0 512 ) (3072 0 512 ) (3072 0 -128 ) 
-4 6 27 (3072 0 -128 ) (3072 0 0 ) (3072 1024 0 ) (3072 1024 -128 ) 
-4 6 25 (3072 0 0 ) (3072 0 128 ) (3072 512 128 ) (3072 512 0 ) 
-4 6 24 (3072 512 128 ) (3072 1024 128 ) (3072 1024 0 ) (3072 512 0 ) 
-4 6 23 (3072 0 128 ) (3072 0 512 ) (3072 1024 512 ) (3072 1024 128 ) 
-4 7 20 (3072 2048 0 ) (3072 2048 128 ) (2176 2048 128 ) (2176 2048 0 ) 
-4 7 19 (3072 2048 128 ) (3072 2048 512 ) (2176 2048 512 ) (2176 2048 128 ) 
-4 7 10 (2176 3072 0 ) (3072 3072 0 ) (3072 2048 0 ) (2176 2048 0 ) 
-4 7 9 (2176 2048 128 ) (2176 2048 512 ) (2176 2560 512 ) (2176 2560 128 ) 
-4 7 8 (2176 3072 0 ) (2176 2560 0 ) (2176 2560 512 ) (2176 3072 512 ) 
-4 8 11 (2048 3072 512 ) (2048 3072 0 ) (2048 2560 0 ) (2048 2560 512 ) 
-4 8 10 (2048 2560 0 ) (2048 3072 0 ) (2176 3072 0 ) (2176 2560 0 ) 
-4 8 9 (2176 2560 128 ) (2176 2560 512 ) (2048 2560 512 ) (2048 2560 128 ) 
-4 9 19 (2176 2048 512 ) (2048 2048 512 ) (2048 2048 128 ) (2176 2048 128 ) 
-4 9 12 (2048 2048 128 ) (2048 2048 512 ) (2048 2560 512 ) (2048 2560 128 ) 
-4 10 22 (3072 2048 -128 ) (3072 2048 0 ) (2048 2048 0 ) (2048 2048 -128 ) 
-4 10 13 (2048 3072 0 ) (2048 3072 -128 ) (2048 2048 -128 ) (2048 2048 0 ) 
-4 11 14 (1024 2560 512 ) (1024 3072 512 ) (1024 3072 0 ) (1024 2560 0 ) 
-4 11 13 (1024 2560 0 ) (1024 3072 0 ) (2048 3072 0 ) (2048 2560 0 ) 
-4 11 12 (2048 2560 128 ) (2048 2560 512 ) (1024 2560 512 ) (1024 2560 128 ) 
-4 12 28 (2048 2048 128 ) (2048 2048 512 ) (1024 2048 512 ) (1024 2048 128 ) 
-4 12 15 (1024 2048 128 ) (1024 2048 512 ) (1024 2560 512 ) (1024 2560 128 ) 
-4 13 30 (2048 2048 -128 ) (2048 2048 0 ) (1024 2048 0 ) (1024 2048 -128 ) 
-4 13 18 (1024 2048 -128 ) (1024 2048 0 ) (1024 3072 0 ) (1024 3072 -128 ) 
-4 14 18 (256 3072 0 ) (1024 3072 0 ) (1024 2560 0 ) (256 2560 0 ) 
-4 14 16 (256 3072 0 ) (256 2560 0 ) (256 2560 512 ) (256 3072 512 ) 
-4 14 15 (1024 2560 512 ) (256 2560 512 ) (256 2560 128 ) (1024 2560 128 ) 
-4 15 31 (1024 2048 128 ) (1024 2048 512 ) (256 2048 512 ) (256 2048 128 ) 
-4 15 17 (256 2048 128 ) (256 2048 512 ) (256 2432 512 ) (256 2432 128 ) 
-4 15 16 (256 2432 512 ) (256 2560 512 ) (256 2560 128 ) (256 2432 128 ) 
-4 16 51 (0 2432 512 ) (0 3072 512 ) (0 3072 0 ) (0 2432 0 ) 
-4 16 18 (0 2432 0 ) (0 3072 0 ) (256 3072 0 ) (256 2432 0 ) 
-4 16 17 (256 2432 128 ) (256 2432 512 ) (0 2432 512 ) (0 2432 100 ) 
-4 17 52 (0 2048 100 ) (0 2048 512 ) (0 2432 512 ) (0 2432 100 ) 
-4 17 33 (0 2048 512 ) (0 2048 100 ) (256 2048 128 ) (256 2048 512 ) 
-4 18 55 (0 2048 -128 ) (0 2048 0 ) (0 3072 0 ) (0 3072 -128 ) 
-4 18 34 (1024 2048 -128 ) (1024 2048 0 ) (0 2048 0 ) (0 2048 -128 ) 
-4 19 28 (2048 2048 512 ) (2048 2048 128 ) (2048 1024 128 ) (2048 1024 512 ) 
-4 19 23 (3072 1024 128 ) (3072 1024 512 ) (2048 1024 512 ) (2048 1024 128 ) 
-4 19 21 (3072 1024 128 ) (2176 1024 128 ) (2176 1664 128 ) (3072 1664 128 ) 
-4 19 20 (2176 2048 128 ) (3072 2048 128 ) (3072 1664 128 ) (2176 1664 128 ) 
-4 20 22 (2176 2048 0 ) (3072 2048 0 ) (3072 1664 0 ) (2176 1664 0 ) 
-4 20 21 (2176 1664 0 ) (3072 1664 0 ) (3072 1664 128 ) (2176 1664 128 ) 
-4 21 24 (3072 1024 0 ) (3072 1024 128 ) (2176 1024 128 ) (2176 1024 0 ) 
-4 21 22 (2176 1664 0 ) (3072 1664 0 ) (3072 1024 0 ) (2176 1024 0 ) 
-4 22 30 (2048 2048 0 ) (2048 2048 -128 ) (2048 1024 -128 ) (2048 1024 0 ) 
-4 22 27 (3072 1024 -128 ) (3072 1024 0 ) (2048 1024 0 ) (2048 1024 -128 ) 
-4 23 88 (3072 0 128 ) (3072 0 512 ) (2048 0 512 ) (2048 0 128 ) 
-4 23 35 (2048 0 128 ) (2048 0 512 ) (2048 1024 512 ) (2048 1024 128 ) 
-4 23 26 (2432 0 128 ) (2048 0 128 ) (2048 128 128 ) (2432 128 128 ) 
-4 23 25 (3072 512 128 ) (3072 0 128 ) (2432 0 128 ) (2432 512 128 ) 
-4 23 24 (3072 1024 128 ) (3072 512 128 ) (2176 512 128 ) (2176 1024 128 ) 
-4 24 27 (2176 1024 0 ) (3072 1024 0 ) (3072 512 0 ) (2176 512 0 ) 
-4 24 25 (2432 512 0 ) (3072 512 0 ) (3072 512 128 ) (2432 512 128 ) 
-4 25 88 (3072 0 0 ) (3072 0 128 ) (2432 0 128 ) (2432 0 0 ) 
-4 25 27 (3072 0 0 ) (2432 0 0 ) (2432 512 0 ) (3072 512 0 ) 
-4 25 26 (2432 128 0 ) (2432 0 0 ) (2432 0 128 ) (2432 128 128 ) 
-4 26 88 (2432 0 128 ) (2048 0 128 ) (2048 0 0 ) (2432 0 0 ) 
-4 26 37 (2048 0 0 ) (2048 0 128 ) (2048 128 128 ) (2048 128 0 ) 
-4 26 27 (2432 0 0 ) (2048 0 0 ) (2048 128 0 ) (2432 128 0 ) 
-4 27 88 (3072 0 -128 ) (3072 0 0 ) (2048 0 0 ) (2048 0 -128 ) 
-4 27 40 (2048 0 -128 ) (2048 0 0 ) (2048 1024 0 ) (2048 1024 -128 ) 
-4 28 35 (2048 1024 128 ) (2048 1024 512 ) (1024 1024 512 ) (1024 1024 128 ) 
-4 28 31 (1024 2048 512 ) (1024 2048 128 ) (1024 1664 128 ) (1024 1664 512 ) 
-4 28 32 (1024 1664 128 ) (1024 1024 128 ) (1024 1024 512 ) (1024 1664 512 ) 
-4 28 29 (1024 1024 128 ) (1024 1664 128 ) (1792 1664 128 ) (1792 1024 128 ) 
-4 29 38 (1408 1024 128 ) (1024 1024 128 ) (1024 1024 0 ) (1408 1024 0 ) 
-4 29 36 (1792 1024 128 ) (1408 1024 128 ) (1408 1024 0 ) (1792 1024 0 ) 
-4 29 32 (1024 1664 0 ) (1024 1024 0 ) (1024 1024 128 ) (1024 1664 128 ) 
-4 29 30 (1792 1024 0 ) (1024 1024 0 ) (1024 1664 0 ) (1792 1664 0 ) 
-4 30 40 (2048 1024 -128 ) (2048 1024 0 ) (1024 1024 0 ) (1024 1024 -128 ) 
-4 30 34 (1024 2048 0 ) (1024 2048 -128 ) (1024 1024 -128 ) (1024 1024 0 ) 
-4 31 32 (256 1664 512 ) (256 1664 128 ) (1024 1664 128 ) (1024 1664 512 ) 
-4 31 33 (256 1664 128 ) (256 1664 512 ) (256 2048 512 ) (256 2048 128 ) 
-4 32 45 (1024 1024 0 ) (1024 1024 16 ) (256 1024 16 ) (256 1024 0 ) 
-4 32 42 (1024 1024 16 ) (1024 1024 64 ) (256 1024 64 ) (256 1024 16 ) 
-4 32 41 (1024 1024 64 ) (1024 1024 512 ) (256 1024 512 ) (256 1024 64 ) 
-4 32 34 (1024 1024 0 ) (256 1024 0 ) (256 1664 0 ) (1024 1664 0 ) 
-4 32 33 (256 1664 0 ) (256 1024 0 ) (256 1024 512 ) (256 1664 512 ) 
-4 33 61 (0 1024 0 ) (0 1024 512 ) (0 2048 512 ) (0 2048 0 ) 
-4 33 43 (0 1024 64 ) (0 1024 16 ) (96 1024 16 ) (96 1024 64 ) 
-4 33 42 (96 1024 16 ) (256 1024 16 ) (256 1024 64 ) (96 1024 64 ) 
-4 33 41 (256 1024 512 ) (0 1024 512 ) (0 1024 64 ) (256 1024 64 ) 
-4 33 34 (256 1024 0 ) (0 1024 0 ) (0 2048 0 ) (256 2048 0 ) 
-4 34 64 (0 1024 -128 ) (0 1024 0 ) (0 2048 0 ) (0 2048 -128 ) 
-4 34 46 (1024 1024 -128 ) (1024 1024 0 ) (0 1024 0 ) (0 1024 -128 ) 
-4 35 93 (1408 0 188.500000 ) (1024 0 188.500000 ) (1024 0 128 ) (1408 0 128 ) 
-4 35 92 (2048 0 128 ) (2048 0 188.500000 ) (1408 0 188.500000 ) (1408 0 128 ) 
-4 35 90 (1088 0 512 ) (1024 0 512 ) (1024 0 188.500000 ) (1088 0 188.500000 ) 
-4 35 89 (2048 0 188.500000 ) (2048 0 512 ) (1088 0 512 ) (1088 0 188.500000 ) 
-4 35 41 (1024 1024 512 ) (1024 1024 128 ) (1024 0 128 ) (1024 0 512 ) 
-4 35 39 (1408 0 128 ) (1024 0 128 ) (1024 640 128 ) (1408 640 128 ) 
-4 35 38 (1024 640 128 ) (1024 1024 128 ) (1408 1024 128 ) (1408 640 128 ) 
-4 35 37 (2048 0 128 ) (1408 0 128 ) (1408 128 128 ) (2048 128 128 ) 
-4 35 36 (1408 512 128 ) (1408 1024 128 ) (1792 1024 128 ) (1792 512 128 ) 
-4 36 40 (1408 1024 0 ) (1792 1024 0 ) (1792 512 0 ) (1408 512 0 ) 
-4 36 39 (1408 512 16 ) (1408 512 128 ) (1408 640 128 ) (1408 640 16 ) 
-4 36 38 (1408 1024 0 ) (1408 640 0 ) (1408 640 128 ) (1408 1024 128 ) 
-4 37 92 (2048 0 0 ) (2048 0 128 ) (1408 0 128 ) (1408 0 0 ) 
-4 37 40 (2048 128 0 ) (2048 0 0 ) (1408 0 0 ) (1408 128 0 ) 
-4 37 39 (1408 0 16 ) (1408 0 128 ) (1408 128 128 ) (1408 128 16 ) 
-4 38 45 (1024 1024 16 ) (1024 1024 0 ) (1024 640 0 ) (1024 640 16 ) 
-4 38 42 (1024 1024 64 ) (1024 1024 16 ) (1024 640 16 ) (1024 640 64 ) 
-4 38 41 (1024 1024 128 ) (1024 1024 64 ) (1024 640 64 ) (1024 640 128 ) 
-4 38 40 (1024 1024 0 ) (1408 1024 0 ) (1408 640 0 ) (1024 640 0 ) 
-4 38 39 (1408 640 16 ) (1408 640 128 ) (1024 640 128 ) (1024 640 16 ) 
-4 39 93 (1408 0 128 ) (1024 0 128 ) (1024 0 16 ) (1408 0 16 ) 
-4 39 42 (1024 0 16 ) (1024 0 64 ) (1024 640 64 ) (1024 640 16 ) 
-4 39 41 (1024 0 64 ) (1024 0 128 ) (1024 640 128 ) (1024 640 64 ) 
-4 40 95 (2048 0 -128 ) (2048 0 0 ) (1024 0 0 ) (1024 0 -128 ) 
-4 40 46 (1024 1024 0 ) (1024 1024 -128 ) (1024 0 -128 ) (1024 0 0 ) 
-4 41 101 (256 0 188.500000 ) (0 0 188.500000 ) (0 0 64 ) (256 0 64 ) 
-4 41 99 (1024 0 64 ) (1024 0 188.500000 ) (256 0 188.500000 ) (256 0 64 ) 
-4 41 98 (640 0 232 ) (0 0 232 ) (0 0 188.500000 ) (640 0 188.500000 ) 
-4 41 97 (1024 0 188.500000 ) (1024 0 232 ) (640 0 232 ) (640 0 188.500000 ) 
-4 41 96 (1024 0 232 ) (1024 0 512 ) (0 0 512 ) (0 0 232 ) 
-4 41 65 (0 0 64 ) (0 0 512 ) (0 1024 512 ) (0 1024 64 ) 
-4 41 43 (0 768 64 ) (0 1024 64 ) (96 1024 64 ) (96 768 64 ) 
-4 41 44 (96 0 64 ) (0 0 64 ) (0 352 64 ) (96 352 64 ) 
-4 41 42 (1024 0 64 ) (96 0 64 ) (96 1024 64 ) (1024 1024 64 ) 
-4 42 101 (256 0 64 ) (96 0 64 ) (96 0 16 ) (256 0 16 ) 
-4 42 99 (1024 0 16 ) (1024 0 64 ) (256 0 64 ) (256 0 16 ) 
-4 42 45 (1024 1024 16 ) (1024 640 16 ) (256 640 16 ) (256 1024 16 ) 
-4 42 43 (96 1024 16 ) (96 768 16 ) (96 768 64 ) (96 1024 64 ) 
-4 42 44 (96 352 16 ) (96 0 16 ) (96 0 64 ) (96 352 64 ) 
-4 43 66 (0 768 64 ) (0 1024 64 ) (0 1024 16 ) (0 768 16 ) 
-4 44 101 (96 0 64 ) (0 0 64 ) (0 0 16 ) (96 0 16 ) 
-4 44 67 (0 0 16 ) (0 0 64 ) (0 352 64 ) (0 352 16 ) 
-4 45 46 (256 640 0 ) (256 1024 0 ) (1024 1024 0 ) (1024 640 0 ) 
-4 46 103 (1024 0 -128 ) (1024 0 0 ) (0 0 0 ) (0 0 -128 ) 
-4 46 71 (0 0 -128 ) (0 0 0 ) (0 1024 0 ) (0 1024 -128 ) 
-4 47 55 (0 3072 -128 ) (0 3072 0 ) (-1024 3072 0 ) (-1024 3072 -128 ) 
-4 47 53 (-768 3072 512 ) (-1024 3072 512 ) (-1024 3072 0 ) (-768 3072 0 ) 
-4 47 51 (0 3072 0 ) (0 3072 512 ) (-768 3072 512 ) (-768 3072 0 ) 
-4 47 48 (-1024 3072 -128 ) (-1024 3072 512 ) (-1024 4096 512 ) (-1024 4096 -128 ) 
-4 48 59 (-1024 3072 -128 ) (-1024 3072 0 ) (-2048 3072 0 ) (-2048 3072 -128 ) 
-4 48 56 (-1024 3072 0 ) (-1024 3072 512 ) (-1408 3072 512 ) (-1408 3072 0 ) 
-4 48 58 (-1408 3072 512 ) (-2048 3072 512 ) (-2048 3072 0 ) (-1408 3072 0 ) 
-4 48 49 (-2048 3072 -128 ) (-2048 3072 512 ) (-2048 4096 512 ) (-2048 4096 -128 ) 
-4 49 60 (-2048 3072 -128 ) (-2048 3072 512 ) (-3072 3072 512 ) (-3072 3072 -128 ) 
-4 49 50 (-3072 3072 -128 ) (-3072 3072 512 ) (-3072 4096 512 ) (-3072 4096 -128 ) 
-4 50 82 (-3072 3072 -128 ) (-3072 3072 512 ) (-4096 3072 512 ) (-4096 3072 -128 ) 
-4 51 55 (-768 2432 0 ) (-768 3072 0 ) (0 3072 0 ) (0 2432 0 ) 
-4 51 54 (-768 2432 16 ) (-768 2432 512 ) (-768 2944 512 ) (-768 2944 16 ) 
-4 51 53 (-768 3072 512 ) (-768 3072 0 ) (-768 2944 0 ) (-768 2944 512 ) 
-4 51 52 (0 2432 512 ) (-768 2432 512 ) (-768 2432 16 ) (0 2432 100 ) 
-4 52 61 (0 2048 100 ) (0 2048 512 ) (-768 2048 512 ) (-768 2048 16 ) 
-4 52 54 (-768 2048 16 ) (-768 2048 512 ) (-768 2432 512 ) (-768 2432 16 ) 
-4 53 56 (-1024 3072 512 ) (-1024 3072 0 ) (-1024 2944 0 ) (-1024 2944 512 ) 
-4 53 55 (-1024 2944 0 ) (-1024 3072 0 ) (-768 3072 0 ) (-768 2944 0 ) 
-4 53 54 (-768 2944 16 ) (-768 2944 512 ) (-1024 2944 512 ) (-1024 2944 16 ) 
-4 54 62 (-1024 2048 512 ) (-1024 2048 16 ) (-768 2048 16 ) (-768 2048 512 ) 
-4 54 57 (-1024 2048 16 ) (-1024 2048 512 ) (-1024 2944 512 ) (-1024 2944 16 ) 
-4 55 64 (0 2048 -128 ) (0 2048 0 ) (-1024 2048 0 ) (-1024 2048 -128 ) 
-4 55 59 (-1024 3072 0 ) (-1024 3072 -128 ) (-1024 2048 -128 ) (-1024 2048 0 ) 
-4 56 59 (-1408 3072 0 ) (-1024 3072 0 ) (-1024 2944 0 ) (-1408 2944 0 ) 
-4 56 57 (-1408 2944 512 ) (-1408 2944 16 ) (-1024 2944 16 ) (-1024 2944 512 ) 
-4 56 58 (-1408 3072 0 ) (-1408 2944 0 ) (-1408 2944 512 ) (-1408 3072 512 ) 
-4 57 72 (-1024 2048 16 ) (-1024 2048 512 ) (-1408 2048 512 ) (-1408 2048 16 ) 
-4 57 58 (-1408 2048 16 ) (-1408 2048 512 ) (-1408 2944 512 ) (-1408 2944 16 ) 
-4 58 74 (-1408 2048 512 ) (-2048 2048 512 ) (-2048 2048 0 ) (-1408 2048 0 ) 
-4 58 60 (-2048 2048 0 ) (-2048 2048 512 ) (-2048 3072 512 ) (-2048 3072 0 ) 
-4 58 59 (-2048 2048 0 ) (-2048 3072 0 ) (-1408 3072 0 ) (-1408 2048 0 ) 
-4 59 75 (-1024 2048 -128 ) (-1024 2048 0 ) (-2048 2048 0 ) (-2048 2048 -128 ) 
-4 59 60 (-2048 2048 -128 ) (-2048 2048 0 ) (-2048 3072 0 ) (-2048 3072 -128 ) 
-4 60 82 (-3072 3072 512 ) (-3072 3072 -128 ) (-3072 2048 -128 ) (-3072 2048 512 ) 
-4 60 76 (-2048 2048 -128 ) (-2048 2048 512 ) (-3072 2048 512 ) (-3072 2048 -128 ) 
-4 61 66 (0 1024 16 ) (0 1024 64 ) (-512 1024 64 ) (-512 1024 16 ) 
-4 61 68 (-512 1024 64 ) (-768 1024 64 ) (-768 1024 16 ) (-512 1024 16 ) 
-4 61 65 (0 1024 64 ) (0 1024 512 ) (-768 1024 512 ) (-768 1024 64 ) 
-4 61 64 (0 1024 0 ) (-768 1024 0 ) (-768 2048 0 ) (0 2048 0 ) 
-4 61 62 (-768 1920 16 ) (-768 1920 512 ) (-768 2048 512 ) (-768 2048 16 ) 
-4 61 63 (-768 1920 0 ) (-768 1024 0 ) (-768 1024 512 ) (-768 1920 512 ) 
-4 62 72 (-1024 2048 512 ) (-1024 2048 16 ) (-1024 1920 16 ) (-1024 1920 512 ) 
-4 62 63 (-768 1920 16 ) (-768 1920 512 ) (-1024 1920 512 ) (-1024 1920 16 ) 
-4 63 73 (-1024 1920 0 ) (-1024 1024 0 ) (-1024 1024 512 ) (-1024 1920 512 ) 
-4 63 69 (-1024 1024 16 ) (-1024 1024 0 ) (-768 1024 0 ) (-768 1024 16 ) 
-4 63 68 (-1024 1024 64 ) (-1024 1024 16 ) (-768 1024 16 ) (-768 1024 64 ) 
-4 63 65 (-768 1024 512 ) (-1024 1024 512 ) (-1024 1024 64 ) (-768 1024 64 ) 
-4 63 64 (-768 1024 0 ) (-1024 1024 0 ) (-1024 1920 0 ) (-768 1920 0 ) 
-4 64 75 (-1024 2048 0 ) (-1024 2048 -128 ) (-1024 1024 -128 ) (-1024 1024 0 ) 
-4 64 71 (0 1024 -128 ) (0 1024 0 ) (-1024 1024 0 ) (-1024 1024 -128 ) 
-4 65 120 (0 0 64 ) (0 0 512 ) (-1024 0 512 ) (-1024 0 64 ) 
-4 65 77 (-1024 0 64 ) (-1024 0 512 ) (-1024 1024 512 ) (-1024 1024 64 ) 
-4 65 66 (0 1024 64 ) (0 768 64 ) (-512 768 64 ) (-512 1024 64 ) 
-4 65 67 (0 352 64 ) (0 0 64 ) (-512 0 64 ) (-512 352 64 ) 
-4 65 68 (-512 0 64 ) (-1024 0 64 ) (-1024 1024 64 ) (-512 1024 64 ) 
-4 66 68 (-512 1024 16 ) (-512 768 16 ) (-512 768 64 ) (-512 1024 64 ) 
-4 67 120 (0 0 16 ) (0 0 64 ) (-512 0 64 ) (-512 0 16 ) 
-4 67 70 (-384 0 16 ) (-512 0 16 ) (-512 128 16 ) (-384 128 16 ) 
-4 67 68 (-512 352 16 ) (-512 0 16 ) (-512 0 64 ) (-512 352 64 ) 
-4 68 120 (-512 0 64 ) (-1024 0 64 ) (-1024 0 16 ) (-512 0 16 ) 
-4 68 77 (-1024 0 16 ) (-1024 0 64 ) (-1024 1024 64 ) (-1024 1024 16 ) 
-4 68 70 (-512 0 16 ) (-1024 0 16 ) (-1024 128 16 ) (-512 128 16 ) 
-4 68 69 (-1024 128 16 ) (-1024 1024 16 ) (-768 1024 16 ) (-768 128 16 ) 
-4 69 79 (-1024 128 16 ) (-1024 972.212952 16 ) (-1024 972.213013 0 ) (-1024 128 0 ) 
-4 69 78 (-1024 972.212952 16 ) (-1024 1024 16 ) (-1024 1024 0 ) (-1024 972.213013 0 ) 
-4 69 71 (-768 128 0 ) (-1024 128 0 ) (-1024 1024 0 ) (-768 1024 0 ) 
-4 69 70 (-1024 128 0 ) (-768 128 0 ) (-768 128 16 ) (-1024 128 16 ) 
-4 70 123 (-729.076416 0 16 ) (-1024 0 16 ) (-1024 0 0 ) (-729.076416 0 0 ) 
-4 70 122 (-384 0 16 ) (-729.076416 0 16 ) (-729.076416 0 0 ) (-384 0 0 ) 
-4 70 79 (-1024 0 0 ) (-1024 0 16 ) (-1024 128 16 ) (-1024 128 0 ) 
-4 70 71 (-384 0 0 ) (-1024 0 0 ) (-1024 128 0 ) (-384 128 0 ) 
-4 71 126 (0 0 -128 ) (0 0 0 ) (-1024 0 0 ) (-1024 0 -128 ) 
-4 71 80 (-1024 0 -128 ) (-1024 0 0 ) (-1024 1024 0 ) (-1024 1024 -128 ) 
-4 72 73 (-1408 1920 512 ) (-1408 1920 16 ) (-1024 1920 16 ) (-1024 1920 512 ) 
-4 72 74 (-1408 1920 16 ) (-1408 1920 512 ) (-1408 2048 512 ) (-1408 2048 16 ) 
-4 73 78 (-1024 1024 0 ) (-1024 1024 16 ) (-1408 1024 16 ) (-1408 1024 0 ) 
-4 73 77 (-1024 1024 16 ) (-1024 1024 512 ) (-1408 1024 512 ) (-1408 1024 16 ) 
-4 73 75 (-1024 1920 0 ) (-1024 1024 0 ) (-1408 1024 0 ) (-1408 1920 0 ) 
-4 73 74 (-1408 1920 0 ) (-1408 1024 0 ) (-1408 1024 512 ) (-1408 1920 512 ) 
-4 74 78 (-2048 1024 16 ) (-2048 1024 0 ) (-1408 1024 0 ) (-1408 1024 16 ) 
-4 74 77 (-1408 1024 512 ) (-2048 1024 512 ) (-2048 1024 16 ) (-1408 1024 16 ) 
-4 74 76 (-2048 2048 512 ) (-2048 2048 0 ) (-2048 1024 0 ) (-2048 1024 512 ) 
-4 74 75 (-2048 1024 0 ) (-2048 2048 0 ) (-1408 2048 0 ) (-1408 1024 0 ) 
-4 75 80 (-1024 1024 -128 ) (-1024 1024 0 ) (-2048 1024 0 ) (-2048 1024 -128 ) 
-4 75 76 (-2048 2048 0 ) (-2048 2048 -128 ) (-2048 1024 -128 ) (-2048 1024 0 ) 
-4 76 83 (-3072 1024 -128 ) (-3072 1024 512 ) (-3072 2048 512 ) (-3072 2048 -128 ) 
-4 76 81 (-2048 1024 -128 ) (-2048 1024 512 ) (-3072 1024 512 ) (-3072 1024 -128 ) 
-4 77 127 (-1024 0 16 ) (-1024 0 512 ) (-2048 0 512 ) (-2048 0 16 ) 
-4 77 81 (-2048 1024 512 ) (-2048 1024 16 ) (-2048 0 16 ) (-2048 0 512 ) 
-4 77 79 (-1024 972.213013 16 ) (-1024 0 16 ) (-1028.923584 0 16 ) (-1512.570068 483.644958 16 ) 
-5 77 78 (-2048 1024 16 ) (-1024 1024 16 ) (-1024 972.213013 16 ) (-1996.216919 0 16 ) (-2048 0 16 ) 
-4 78 129 (-1996.216919 0 16 ) (-2048 0 16 ) (-2048 0 0 ) (-1996.216919 0 0 ) 
-4 78 81 (-2048 1024 16 ) (-2048 1024 0 ) (-2048 0 0 ) (-2048 0 16 ) 
-5 78 80 (-2048 1024 0 ) (-1024 1024 0 ) (-1024 972.213013 0 ) (-1996.216919 0 0 ) (-2048 0 0 ) 
-4 78 79 (-1512.570801 483.645721 0 ) (-1024 972.214539 0 ) (-1024 972.215027 16 ) (-1512.570923 483.645905 16 ) 
-4 79 131 (-1024 0 0 ) (-1024 0 16 ) (-1028.923584 0 16 ) (-1028.923584 0 0 ) 
-4 79 80 (-1024 972.213013 0 ) (-1024 0 0 ) (-1028.923584 0 0 ) (-1512.570068 483.644958 0 ) 
-4 80 132 (-1024 0 -128 ) (-1024 0 0 ) (-2048 0 0 ) (-2048 0 -128 ) 
-4 80 81 (-2048 1024 0 ) (-2048 1024 -128 ) (-2048 0 -128 ) (-2048 0 0 ) 
-4 81 136 (-2048 0 -128 ) (-2048 0 0 ) (-3072 0 0 ) (-3072 0 -128 ) 
-4 81 134 (-2048 0 0 ) (-2048 0 16 ) (-3072 0 16 ) (-3072 0 0 ) 
-4 81 133 (-2048 0 16 ) (-2048 0 512 ) (-3072 0 512 ) (-3072 0 16 ) 
-4 81 84 (-3072 0 -128 ) (-3072 0 512 ) (-3072 1024 512 ) (-3072 1024 -128 ) 
-4 82 83 (-3072 2048 -128 ) (-3072 2048 512 ) (-4096 2048 512 ) (-4096 2048 -128 ) 
-4 83 84 (-3072 1024 -128 ) (-3072 1024 512 ) (-4096 1024 512 ) (-4096 1024 -128 ) 
-4 84 145 (-3072 0 -128 ) (-3072 0 512 ) (-4096 0 512 ) (-4096 0 -128 ) 
-4 85 88 (3072 0 512 ) (3072 0 -128 ) (3072 -1024 -128 ) (3072 -1024 512 ) 
-4 85 86 (4096 -1024 -128 ) (4096 -1024 512 ) (3072 -1024 512 ) (3072 -1024 -128 ) 
-4 86 104 (3072 -2048 -128 ) (3072 -2048 512 ) (3072 -1024 512 ) (3072 -1024 -128 ) 
-4 86 87 (4096 -2048 -128 ) (4096 -2048 512 ) (3072 -2048 512 ) (3072 -2048 -128 ) 
-4 87 116 (4096 -3072 -128 ) (4096 -3072 512 ) (3072 -3072 512 ) (3072 -3072 -128 ) 
-4 87 105 (3072 -3072 -128 ) (3072 -3072 512 ) (3072 -2048 512 ) (3072 -2048 -128 ) 
-4 88 104 (3072 -1024 -128 ) (3072 -1024 512 ) (2048 -1024 512 ) (2048 -1024 -128 ) 
-4 88 95 (2048 0 0 ) (2048 0 -128 ) (2048 -1024 -128 ) (2048 -1024 0 ) 
-4 88 92 (2048 0 188.500000 ) (2048 0 0 ) (2048 -1024 0 ) (2048 -1024 188.500000 ) 
-4 88 89 (2048 0 512 ) (2048 0 188.500000 ) (2048 -1024 188.500000 ) (2048 -1024 512 ) 
-4 89 106 (2048 -1024 188.500000 ) (2048 -1024 512 ) (1088 -1024 512 ) (1088 -1024 188.500000 ) 
-4 89 93 (1088 -128 188.500000 ) (1088 0 188.500000 ) (1408 0 188.500000 ) (1408 -128 188.500000 ) 
-4 89 94 (1408 -1024 188.500000 ) (1088 -1024 188.500000 ) (1088 -128 188.500000 ) (1408 -128 188.500000 ) 
-4 89 92 (2048 -1024 188.500000 ) (1408 -1024 188.500000 ) (1408 0 188.500000 ) (2048 0 188.500000 ) 
-4 89 91 (1088 -1024 232 ) (1088 -1024 512 ) (1088 -384 512 ) (1088 -384 232 ) 
-4 89 90 (1088 0 188.500000 ) (1088 -384 188.500000 ) (1088 -384 512 ) (1088 0 512 ) 
-4 90 97 (1024 0 232 ) (1024 0 188.500000 ) (1024 -384 188.500000 ) (1024 -384 232 ) 
-4 90 96 (1024 -384 512 ) (1024 0 512 ) (1024 0 232 ) (1024 -384 232 ) 
-4 90 93 (1024 -128 188.500000 ) (1024 0 188.500000 ) (1088 0 188.500000 ) (1088 -128 188.500000 ) 
-4 90 94 (1024 -384 188.500000 ) (1024 -128 188.500000 ) (1088 -128 188.500000 ) (1088 -384 188.500000 ) 
-4 90 91 (1088 -384 232 ) (1088 -384 512 ) (1024 -384 512 ) (1024 -384 232 ) 
-4 91 107 (1088 -1024 512 ) (1024 -1024 512 ) (1024 -1024 232 ) (1088 -1024 232 ) 
-4 91 96 (1024 -1024 232 ) (1024 -1024 512 ) (1024 -384 512 ) (1024 -384 232 ) 
-4 92 109 (2048 -1024 0 ) (2048 -1024 188.500000 ) (1408 -1024 188.500000 ) (1408 -1024 0 ) 
-4 92 95 (1408 0 0 ) (2048 0 0 ) (2048 -1024 0 ) (1408 -1024 0 ) 
-4 92 93 (1408 -128 16 ) (1408 -128 188.500000 ) (1408 0 188.500000 ) (1408 0 16 ) 
-4 92 94 (1408 -128 0 ) (1408 -1024 0 ) (1408 -1024 188.500000 ) (1408 -128 188.500000 ) 
-4 93 99 (1024 -128 188.500000 ) (1024 0 188.500000 ) (1024 0 16 ) (1024 -128 16 ) 
-4 93 94 (1408 -128 16 ) (1408 -128 188.500000 ) (1024 -128 188.500000 ) (1024 -128 16 ) 
-4 94 109 (1408 -1024 188.500000 ) (1024 -1024 188.500000 ) (1024 -1024 0 ) (1408 -1024 0 ) 
-4 94 100 (1024 -1024 0 ) (1024 -1024 188.500000 ) (1024 -128 188.500000 ) (1024 -128 0 ) 
-4 94 95 (1024 -1024 0 ) (1024 -128 0 ) (1408 -128 0 ) (1408 -1024 0 ) 
-4 95 109 (2048 -1024 -128 ) (2048 -1024 0 ) (1024 -1024 0 ) (1024 -1024 -128 ) 
-4 95 103 (1024 -1024 -128 ) (1024 -1024 0 ) (1024 0 0 ) (1024 0 -128 ) 
-4 96 125 (0 -896 232 ) (0 -1024 232 ) (0 -1024 512 ) (0 -896 512 ) 
-4 96 120 (0 0 512 ) (0 0 232 ) (0 -896 232 ) (0 -896 512 ) 
-4 96 110 (1024 -1024 232 ) (1024 -1024 512 ) (0 -1024 512 ) (0 -1024 232 ) 
-4 96 98 (0 -896 232 ) (0 0 232 ) (640 0 232 ) (640 -896 232 ) 
-4 96 97 (640 -384 232 ) (640 0 232 ) (1024 0 232 ) (1024 -384 232 ) 
-4 97 99 (640 0 188.500000 ) (1024 0 188.500000 ) (1024 -128 188.500000 ) (640 -128 188.500000 ) 
-4 97 100 (1024 -128 188.500000 ) (1024 -384 188.500000 ) (640 -384 188.500000 ) (640 -128 188.500000 ) 
-4 97 98 (640 0 188.500000 ) (640 -384 188.500000 ) (640 -384 232 ) (640 0 232 ) 
-4 98 120 (0 0 232 ) (0 0 188.500000 ) (0 -896 188.500000 ) (0 -896 232 ) 
-4 98 101 (0 -512 188.500000 ) (0 0 188.500000 ) (256 0 188.500000 ) (256 -512 188.500000 ) 
-4 98 102 (0 -896 188.500000 ) (0 -512 188.500000 ) (256 -512 188.500000 ) (256 -896 188.500000 ) 
-4 98 99 (256 0 188.500000 ) (640 0 188.500000 ) (640 -128 188.500000 ) (256 -128 188.500000 ) 
-4 98 100 (640 -128 188.500000 ) (640 -896 188.500000 ) (256 -896 188.500000 ) (256 -128 188.500000 ) 
-4 99 101 (256 -128 16 ) (256 -128 188.500000 ) (256 0 188.500000 ) (256 0 16 ) 
-4 99 100 (256 -128 188.500000 ) (256 -128 16 ) (1024 -128 16 ) (1024 -128 188.500000 ) 
-4 100 113 (1024 -1024 0 ) (1024 -1024 188.500000 ) (256 -1024 188.500000 ) (256 -1024 0 ) 
-4 100 103 (1024 -1024 0 ) (256 -1024 0 ) (256 -128 0 ) (1024 -128 0 ) 
-4 100 101 (256 -512 16 ) (256 -512 188.500000 ) (256 -128 188.500000 ) (256 -128 16 ) 
-4 100 102 (256 -512 0 ) (256 -1024 0 ) (256 -1024 188.500000 ) (256 -512 188.500000 ) 
-4 101 120 (0 0 188.500000 ) (0 0 16 ) (0 -512 16 ) (0 -512 188.500000 ) 
-4 101 102 (256 -512 16 ) (256 -512 188.500000 ) (0 -512 188.500000 ) (0 -512 16 ) 
-4 102 124 (0 -896 0 ) (0 -1024 0 ) (0 -1024 188.500000 ) (0 -896 188.500000 ) 
-4 102 121 (0 -512 0 ) (0 -896 0 ) (0 -896 16 ) (0 -512 16 ) 
-4 102 120 (0 -896 16 ) (0 -896 188.500000 ) (0 -512 188.500000 ) (0 -512 16 ) 
-4 102 113 (256 -1024 188.500000 ) (0 -1024 188.500000 ) (0 -1024 0 ) (256 -1024 0 ) 
-4 102 103 (256 -1024 0 ) (0 -1024 0 ) (0 -512 0 ) (256 -512 0 ) 
-4 103 126 (0 0 0 ) (0 0 -128 ) (0 -1024 -128 ) (0 -1024 0 ) 
-4 103 113 (1024 -1024 -128 ) (1024 -1024 0 ) (0 -1024 0 ) (0 -1024 -128 ) 
-4 104 109 (2048 -1024 188.500000 ) (2048 -1024 -128 ) (2048 -2048 -128 ) (2048 -2048 188.500000 ) 
-4 104 106 (2048 -1024 512 ) (2048 -1024 188.500000 ) (2048 -2048 188.500000 ) (2048 -2048 512 ) 
-4 104 105 (3072 -2048 -128 ) (3072 -2048 512 ) (2048 -2048 512 ) (2048 -2048 -128 ) 
-4 105 117 (3072 -3072 -128 ) (3072 -3072 512 ) (2048 -3072 512 ) (2048 -3072 -128 ) 
-4 105 114 (2048 -3072 -128 ) (2048 -3072 512 ) (2048 -2048 512 ) (2048 -2048 -128 ) 
-4 106 114 (2048 -2048 188.500000 ) (2048 -2048 512 ) (1088 -2048 512 ) (1088 -2048 188.500000 ) 
-4 106 109 (2048 -2048 188.500000 ) (1088 -2048 188.500000 ) (1088 -1024 188.500000 ) (2048 -1024 188.500000 ) 
-4 106 107 (1088 -1280 232 ) (1088 -1280 512 ) (1088 -1024 512 ) (1088 -1024 232 ) 
-4 106 108 (1088 -1280 188.500000 ) (1088 -2048 188.500000 ) (1088 -2048 512 ) (1088 -1280 512 ) 
-4 107 110 (1024 -1024 512 ) (1024 -1024 232 ) (1024 -1280 232 ) (1024 -1280 512 ) 
-4 107 108 (1088 -1280 232 ) (1088 -1280 512 ) (1024 -1280 512 ) (1024 -1280 232 ) 
-4 108 114 (1088 -2048 512 ) (1024 -2048 512 ) (1024 -2048 188.500000 ) (1088 -2048 188.500000 ) 
-4 108 111 (1024 -1280 188.500000 ) (1024 -2048 188.500000 ) (1024 -2048 232 ) (1024 -1280 232 ) 
-4 108 110 (1024 -2048 232 ) (1024 -2048 512 ) (1024 -1280 512 ) (1024 -1280 232 ) 
-4 108 109 (1088 -2048 188.500000 ) (1024 -2048 188.500000 ) (1024 -1280 188.500000 ) (1088 -1280 188.500000 ) 
-4 109 114 (2048 -2048 -128 ) (2048 -2048 188.500000 ) (1024 -2048 188.500000 ) (1024 -2048 -128 ) 
-4 109 113 (1024 -1024 188.500000 ) (1024 -1024 -128 ) (1024 -2048 -128 ) (1024 -2048 188.500000 ) 
-4 110 138 (0 -1280 512 ) (0 -1024 512 ) (0 -1024 232 ) (0 -1280 232 ) 
-4 110 139 (0 -2048 232 ) (0 -2048 512 ) (0 -1280 512 ) (0 -1280 232 ) 
-4 110 115 (1024 -2048 232 ) (1024 -2048 512 ) (0 -2048 512 ) (0 -2048 232 ) 
-4 110 112 (640 -2048 232 ) (0 -2048 232 ) (0 -1280 232 ) (640 -1280 232 ) 
-4 110 111 (1024 -2048 232 ) (640 -2048 232 ) (640 -1280 232 ) (1024 -1280 232 ) 
-4 111 115 (1024 -2048 188.500000 ) (1024 -2048 232 ) (640 -2048 232 ) (640 -2048 188.500000 ) 
-4 111 113 (1024 -1280 188.500000 ) (1024 -2048 188.500000 ) (640 -2048 188.500000 ) (640 -1280 188.500000 ) 
-4 111 112 (640 -1280 188.500000 ) (640 -2048 188.500000 ) (640 -2048 232 ) (640 -1280 232 ) 
-4 112 139 (0 -2048 188.500000 ) (0 -2048 232 ) (0 -1280 232 ) (0 -1280 188.500000 ) 
-4 112 115 (640 -2048 232 ) (0 -2048 232 ) (0 -2048 188.500000 ) (640 -2048 188.500000 ) 
-4 112 113 (640 -2048 188.500000 ) (0 -2048 188.500000 ) (0 -1280 188.500000 ) (640 -1280 188.500000 ) 
-4 113 137 (0 -1280 188.500000 ) (0 -1024 188.500000 ) (0 -1024 -128 ) (0 -1280 -128 ) 
-4 113 139 (0 -2048 -128 ) (0 -2048 188.500000 ) (0 -1280 188.500000 ) (0 -1280 -128 ) 
-4 113 115 (1024 -2048 -128 ) (1024 -2048 188.500000 ) (0 -2048 188.500000 ) (0 -2048 -128 ) 
-4 114 118 (2048 -3072 -128 ) (2048 -3072 512 ) (1024 -3072 512 ) (1024 -3072 -128 ) 
-4 114 115 (1024 -2048 512 ) (1024 -2048 -128 ) (1024 -3072 -128 ) (1024 -3072 512 ) 
-4 115 140 (0 -3072 -128 ) (0 -3072 512 ) (0 -2048 512 ) (0 -2048 -128 ) 
-4 115 119 (1024 -3072 -128 ) (1024 -3072 512 ) (0 -3072 512 ) (0 -3072 -128 ) 
-4 116 117 (3072 -3072 512 ) (3072 -3072 -128 ) (3072 -4096 -128 ) (3072 -4096 512 ) 
-4 117 118 (2048 -3072 512 ) (2048 -3072 -128 ) (2048 -4096 -128 ) (2048 -4096 512 ) 
-4 118 119 (1024 -4096 -128 ) (1024 -4096 512 ) (1024 -3072 512 ) (1024 -3072 -128 ) 
-4 119 148 (0 -4096 -128 ) (0 -4096 512 ) (0 -3072 512 ) (0 -3072 -128 ) 
-4 120 127 (-1024 0 512 ) (-1024 0 16 ) (-1024 -896 16 ) (-1024 -896 512 ) 
-4 120 125 (0 -896 232 ) (0 -896 512 ) (-1024 -896 512 ) (-1024 -896 29 ) 
-3 120 124 (0 -896 16 ) (0 -896 192 ) (-938.666687 -896 16 ) 
-4 120 123 (-1024 -4.923584 16 ) (-1024 0 16 ) (-729.076416 0 16 ) (-879 -149.923096 16 ) 
-5 120 122 (-384 -896 16 ) (-1024 -896 16 ) (-1024 -294.922424 16 ) (-729.076416 0 16 ) (-384 0 16 ) 
-4 120 121 (0 -896 16 ) (-384 -896 16 ) (-384 -512 16 ) (0 -512 16 ) 
-4 121 126 (0 -512 0 ) (0 -896 0 ) (-384 -896 0 ) (-384 -512 0 ) 
-4 121 124 (-384 -896 0 ) (0 -896 0 ) (0 -896 16 ) (-384 -896 16 ) 
-4 121 122 (-384 -512 0 ) (-384 -896 0 ) (-384 -896 16 ) (-384 -512 16 ) 
-4 122 128 (-1024 -294.922394 0 ) (-1024 -896 0 ) (-1024 -896 16 ) (-1024 -294.922424 16 ) 
-5 122 126 (-1024 -896 0 ) (-1024 -294.922424 0 ) (-729.076416 0 0 ) (-384 0 0 ) (-384 -896 0 ) 
-4 122 124 (-1024 -896 0 ) (-384 -896 0 ) (-384 -896 16 ) (-938.666687 -896 16 ) 
-4 122 123 (-729.074951 0 0 ) (-879 -149.923492 0 ) (-879 -149.923492 16 ) (-729.074951 0 16 ) 
-4 123 131 (-1024 0 16 ) (-1024 0 0 ) (-1024 -4.923586 0 ) (-1024 -4.923584 16 ) 
-4 123 126 (-1024 -4.923584 0 ) (-1024 0 0 ) (-729.076416 0 0 ) (-879 -149.923096 0 ) 
-3 124 137 (0 -1024 0 ) (0 -1024 192 ) (-1024 -1024 0 ) 
-4 124 126 (0 -1024 0 ) (-1024 -1024 0 ) (-1024 -896 0 ) (0 -896 0 ) 
-4 125 138 (0 -1024 232 ) (0 -1024 512 ) (-1024 -1024 512 ) (-1024 -1024 29 ) 
-4 125 127 (-1024 -1024 29 ) (-1024 -1024 512 ) (-1024 -896 512 ) (-1024 -896 29 ) 
-4 126 137 (0 -1024 -128 ) (0 -1024 0 ) (-1024 -1024 0 ) (-1024 -1024 -128 ) 
-4 126 132 (-1024 0 0 ) (-1024 0 -128 ) (-1024 -1024 -128 ) (-1024 -1024 0 ) 
-4 127 141 (-1024 -1024 16 ) (-1024 -1024 512 ) (-2048 -1024 512 ) (-2048 -1024 16 ) 
-4 127 133 (-2048 -1024 16 ) (-2048 -1024 512 ) (-2048 0 512 ) (-2048 0 16 ) 
-3 127 131 (-1028.923584 0 16 ) (-1024 0 16 ) (-1024 -4.923586 16 ) 
-4 127 130 (-1753.080566 -1024 16 ) (-2048 -1024 16 ) (-2048 -429.081421 16 ) (-1603.080078 -874 16 ) 
-3 127 129 (-2048 -51.782837 16 ) (-2048 0 16 ) (-1996.216919 0 16 ) 
-3 127 128 (-1024 -1024 16 ) (-1753.080566 -1024 16 ) (-1024 -294.922394 16 ) 
-4 128 141 (-1024 -1024 0 ) (-1024 -1024 16 ) (-1753.080566 -1024 16 ) (-1753.080566 -1024 0 ) 
-3 128 132 (-1024 -1024 0 ) (-1753.080566 -1024 0 ) (-1024 -294.922394 0 ) 
-4 128 130 (-1603.080322 -874 0 ) (-1753.080933 -1024 0 ) (-1753.080811 -1024 16 ) (-1603.080078 -874 16 ) 
-4 129 134 (-2048 -51.782837 16 ) (-2048 0 16 ) (-2048 0 0 ) (-2048 -51.782860 0 ) 
-3 129 132 (-2048 -51.782837 0 ) (-2048 0 0 ) (-1996.216919 0 0 ) 
-4 130 141 (-1753.080566 -1024 16 ) (-2048 -1024 16 ) (-2048 -1024 0 ) (-1753.080566 -1024 0 ) 
-4 130 135 (-2048 -1024 0 ) (-2048 -1024 16 ) (-2048 -429.081421 16 ) (-2048 -429.081421 0 ) 
-4 130 132 (-1753.080566 -1024 0 ) (-2048 -1024 0 ) (-2048 -429.081421 0 ) (-1603.080078 -874 0 ) 
-3 131 132 (-1028.923584 0 0 ) (-1024 0 0 ) (-1024 -4.923586 0 ) 
-4 132 141 (-1024 -1024 -128 ) (-1024 -1024 0 ) (-2048 -1024 0 ) (-2048 -1024 -128 ) 
-4 132 136 (-2048 -1024 -128 ) (-2048 -1024 0 ) (-2048 0 0 ) (-2048 0 -128 ) 
-4 133 145 (-3072 0 512 ) (-3072 0 16 ) (-3072 -1024 16 ) (-3072 -1024 512 ) 
-4 133 142 (-2048 -1024 16 ) (-2048 -1024 512 ) (-3072 -1024 512 ) (-3072 -1024 16 ) 
-4 133 135 (-2048 -429.081421 16 ) (-2048 -1024 16 ) (-3020.221191 -1024 16 ) (-2236.649902 -240.432007 16 ) 
-5 133 134 (-3072 -1024 16 ) (-3072 0 16 ) (-2048 0 16 ) (-2048 -51.782860 16 ) (-3020.221191 -1024 16 ) 
-4 134 145 (-3072 0 16 ) (-3072 0 0 ) (-3072 -1024 0 ) (-3072 -1024 16 ) 
-4 134 142 (-3020.221191 -1024 16 ) (-3072 -1024 16 ) (-3072 -1024 0 ) (-3020.221191 -1024 0 ) 
-5 134 136 (-3072 -1024 0 ) (-3072 0 0 ) (-2048 0 0 ) (-2048 -51.782860 0 ) (-3020.221191 -1024 0 ) 
-4 134 135 (-3020.222656 -1024 0 ) (-2236.650635 -240.431274 0 ) (-2236.652832 -240.429214 16 ) (-3020.226563 -1024 16 ) 
-4 135 142 (-2048 -1024 0 ) (-2048 -1024 16 ) (-3020.221191 -1024 16 ) (-3020.221191 -1024 0 ) 
-4 135 136 (-2048 -429.081421 0 ) (-2048 -1024 0 ) (-3020.221191 -1024 0 ) (-2236.649902 -240.432007 0 ) 
-4 136 145 (-3072 0 0 ) (-3072 0 -128 ) (-3072 -1024 -128 ) (-3072 -1024 0 ) 
-4 136 142 (-2048 -1024 -128 ) (-2048 -1024 0 ) (-3072 -1024 0 ) (-3072 -1024 -128 ) 
-4 137 141 (-1024 -1024 0 ) (-1024 -1024 -128 ) (-1024 -1280 -128 ) (-1024 -1280 0 ) 
-4 137 139 (-1024 -1280 -128 ) (0 -1280 -128 ) (0 -1280 192 ) (-1024 -1280 0 ) 
-4 138 141 (-1024 -1024 512 ) (-1024 -1024 29 ) (-1024 -1280 29 ) (-1024 -1280 512 ) 
-4 138 139 (0 -1280 232 ) (0 -1280 512 ) (-1024 -1280 512 ) (-1024 -1280 29 ) 
-4 139 141 (-1024 -1280 -128 ) (-1024 -2048 -128 ) (-1024 -2048 512 ) (-1024 -1280 512 ) 
-4 139 140 (0 -2048 -128 ) (0 -2048 512 ) (-1024 -2048 512 ) (-1024 -2048 -128 ) 
-4 140 148 (0 -3072 -128 ) (0 -3072 512 ) (-1024 -3072 512 ) (-1024 -3072 -128 ) 
-4 140 143 (-1024 -3072 -128 ) (-1024 -3072 512 ) (-1024 -2048 512 ) (-1024 -2048 -128 ) 
-4 141 143 (-1024 -2048 -128 ) (-1024 -2048 512 ) (-2048 -2048 512 ) (-2048 -2048 -128 ) 
-4 141 142 (-2048 -1024 512 ) (-2048 -1024 -128 ) (-2048 -2048 -128 ) (-2048 -2048 512 ) 
-4 142 146 (-3072 -2048 -128 ) (-3072 -2048 512 ) (-3072 -1024 512 ) (-3072 -1024 -128 ) 
-4 142 144 (-2048 -2048 -128 ) (-2048 -2048 512 ) (-3072 -2048 512 ) (-3072 -2048 -128 ) 
-4 143 149 (-1024 -3072 -128 ) (-1024 -3072 512 ) (-2048 -3072 512 ) (-2048 -3072 -128 ) 
-4 143 144 (-2048 -2048 512 ) (-2048 -2048 -128 ) (-2048 -3072 -128 ) (-2048 -3072 512 ) 
-4 144 150 (-2048 -3072 -128 ) (-2048 -3072 512 ) (-3072 -3072 512 ) (-3072 -3072 -128 ) 
-4 144 147 (-3072 -3072 -128 ) (-3072 -3072 512 ) (-3072 -2048 512 ) (-3072 -2048 -128 ) 
-4 145 146 (-3072 -1024 -128 ) (-3072 -1024 512 ) (-4096 -1024 512 ) (-4096 -1024 -128 ) 
-4 146 147 (-3072 -2048 -128 ) (-3072 -2048 512 ) (-4096 -2048 512 ) (-4096 -2048 -128 ) 
-4 147 151 (-3072 -3072 -128 ) (-3072 -3072 512 ) (-4096 -3072 512 ) (-4096 -3072 -128 ) 
-4 148 149 (-1024 -3072 512 ) (-1024 -3072 -128 ) (-1024 -4096 -128 ) (-1024 -4096 512 ) 
-4 149 150 (-2048 -4096 -128 ) (-2048 -4096 512 ) (-2048 -3072 512 ) (-2048 -3072 -128 ) 
-4 150 151 (-3072 -3072 512 ) (-3072 -3072 -128 ) (-3072 -4096 -128 ) (-3072 -4096 512 ) 
+115
+406
+4 0 8 (1152 1024 512 ) (1024 1024 512 ) (1024 1024 -512 ) (1152 1024 -512 ) 
+4 0 4 (1024 1024 -512 ) (1024 1024 0 ) (1024 1792 0 ) (1024 1792 -512 ) 
+4 0 1 (1024 1024 0 ) (1024 1024 512 ) (1024 1792 512 ) (1024 1792 0 ) 
+4 1 10 (256 1024 512 ) (192 1024 512 ) (192 1024 128 ) (256 1024 128 ) 
+4 1 11 (192 1024 16 ) (192 1024 0 ) (256 1024 0 ) (256 1024 16 ) 
+4 1 9 (1024 1024 0 ) (1024 1024 512 ) (256 1024 512 ) (256 1024 0 ) 
+4 1 6 (512 1024 0 ) (192 1024 0 ) (192 1216 0 ) (512 1216 0 ) 
+4 1 5 (192 1216 0 ) (192 1792 0 ) (512 1792 0 ) (512 1216 0 ) 
+4 1 4 (1024 1024 0 ) (512 1024 0 ) (512 1792 0 ) (1024 1792 0 ) 
+4 1 3 (192 1024 16 ) (192 1024 512 ) (192 1472 512 ) (192 1472 16 ) 
+4 1 2 (192 1792 512 ) (192 1792 0 ) (192 1472 0 ) (192 1472 512 ) 
+4 2 30 (0 1472 512 ) (0 1792 512 ) (0 1792 0 ) (0 1472 0 ) 
+4 2 5 (0 1472 0 ) (0 1792 0 ) (192 1792 0 ) (192 1472 0 ) 
+4 2 3 (192 1472 16 ) (192 1472 512 ) (0 1472 512 ) (0 1472 16 ) 
+4 3 31 (0 1024 16 ) (0 1024 512 ) (0 1472 512 ) (0 1472 16 ) 
+4 3 10 (192 1024 512 ) (0 1024 512 ) (0 1024 128 ) (192 1024 128 ) 
+4 4 29 (1024 1024 -512 ) (1024 1024 -320 ) (512 1024 -320 ) (512 1024 -512 ) 
+4 4 27 (1024 1024 -320 ) (1024 1024 -192 ) (512 1024 -192 ) (512 1024 -320 ) 
+4 4 9 (1024 1024 -192 ) (1024 1024 0 ) (512 1024 0 ) (512 1024 -192 ) 
+4 4 6 (512 1024 0 ) (512 1216 0 ) (512 1216 -192 ) (512 1024 -192 ) 
+4 4 7 (512 1216 -320 ) (512 1216 -512 ) (512 1024 -512 ) (512 1024 -320 ) 
+4 4 5 (512 1216 0 ) (512 1792 0 ) (512 1792 -512 ) (512 1216 -512 ) 
+4 5 33 (0 1216 0 ) (0 1792 0 ) (0 1792 -512 ) (0 1216 -512 ) 
+4 5 6 (512 1216 -192 ) (512 1216 0 ) (0 1216 0 ) (0 1216 -192 ) 
+4 5 7 (0 1216 -512 ) (512 1216 -512 ) (512 1216 -320 ) (0 1216 -320 ) 
+4 6 34 (0 1024 -192 ) (0 1024 0 ) (0 1216 0 ) (0 1216 -192 ) 
+4 6 11 (256 1024 0 ) (0 1024 0 ) (0 1024 -192 ) (256 1024 -192 ) 
+4 6 9 (512 1024 0 ) (256 1024 0 ) (256 1024 -192 ) (512 1024 -192 ) 
+4 7 35 (0 1024 -512 ) (0 1024 -320 ) (0 1216 -320 ) (0 1216 -512 ) 
+4 7 29 (0 1024 -320 ) (0 1024 -512 ) (512 1024 -512 ) (512 1024 -320 ) 
+4 8 95 (1152 0 512 ) (1024 0 512 ) (1024 0 -512 ) (1152 0 -512 ) 
+4 8 29 (1024 1024 -320 ) (1024 1024 -512 ) (1024 0 -512 ) (1024 0 -320 ) 
+4 8 27 (1024 1024 -192 ) (1024 1024 -320 ) (1024 0 -320 ) (1024 0 -192 ) 
+4 8 13 (1024 896 -192 ) (1024 0 -192 ) (1024 0 336 ) (1024 896 336 ) 
+4 8 12 (1024 0 336 ) (1024 0 512 ) (1024 896 512 ) (1024 896 336 ) 
+4 8 9 (1024 1024 512 ) (1024 1024 -192 ) (1024 896 -192 ) (1024 896 512 ) 
+4 9 27 (1024 1024 -192 ) (1024 896 -192 ) (512 896 -192 ) (512 1024 -192 ) 
+4 9 16 (256 896 -192 ) (512 896 -192 ) (512 896 16 ) (256 896 16 ) 
+4 9 14 (512 896 16 ) (512 896 336 ) (256 896 336 ) (256 896 16 ) 
+4 9 13 (512 896 -192 ) (1024 896 -192 ) (1024 896 336 ) (512 896 336 ) 
+4 9 12 (1024 896 336 ) (1024 896 512 ) (256 896 512 ) (256 896 336 ) 
+4 9 10 (256 896 128 ) (256 896 512 ) (256 1024 512 ) (256 1024 128 ) 
+4 9 11 (256 1024 -192 ) (256 896 -192 ) (256 896 16 ) (256 1024 16 ) 
+4 10 37 (0 1024 512 ) (0 1024 128 ) (0 896 128 ) (0 896 512 ) 
+4 10 19 (0 896 336 ) (0 896 128 ) (128 896 128 ) (128 896 336 ) 
+4 10 15 (128 896 128 ) (256 896 128 ) (256 896 336 ) (128 896 336 ) 
+4 10 12 (0 896 512 ) (0 896 336 ) (256 896 336 ) (256 896 512 ) 
+4 11 89 (0 1024 0 ) (0 1024 -192 ) (0 896 -192 ) (0 896 0 ) 
+4 11 85 (0 1024 16 ) (0 1024 0 ) (0 896 0 ) (0 896 16 ) 
+4 11 20 (0 896 16 ) (0 896 -192 ) (128 896 -192 ) (128 896 16 ) 
+4 11 18 (128 896 -192 ) (256 896 -192 ) (256 896 0 ) (128 896 0 ) 
+4 12 96 (1024 0 336 ) (1024 0 512 ) (0 0 512 ) (0 0 336 ) 
+4 12 80 (0 0 336 ) (0 0 512 ) (0 128 512 ) (0 128 336 ) 
+4 12 79 (0 128 512 ) (0 176 512 ) (0 176 336 ) (0 128 336 ) 
+4 12 77 (0 176 512 ) (0 352 512 ) (0 352 336 ) (0 176 336 ) 
+4 12 59 (0 352 512 ) (0 432 512 ) (0 432 336 ) (0 352 336 ) 
+4 12 53 (0 432 512 ) (0 896 512 ) (0 896 336 ) (0 432 336 ) 
+4 12 24 (128 128 336 ) (128 0 336 ) (0 0 336 ) (0 128 336 ) 
+4 12 23 (32 128 336 ) (0 128 336 ) (0 176 336 ) (32 176 336 ) 
+4 12 21 (128 352 336 ) (128 128 336 ) (32 128 336 ) (32 352 336 ) 
+4 12 19 (0 896 336 ) (128 896 336 ) (128 352 336 ) (0 352 336 ) 
+4 12 15 (128 896 336 ) (256 896 336 ) (256 0 336 ) (128 0 336 ) 
+4 12 14 (256 896 336 ) (512 896 336 ) (512 0 336 ) (256 0 336 ) 
+4 12 13 (512 896 336 ) (1024 896 336 ) (1024 0 336 ) (512 0 336 ) 
+4 13 101 (1024 0 -192 ) (1024 0 16 ) (512 0 16 ) (512 0 -192 ) 
+4 13 96 (1024 0 16 ) (1024 0 336 ) (512 0 336 ) (512 0 16 ) 
+4 13 27 (1024 896 -192 ) (1024 0 -192 ) (512 0 -192 ) (512 896 -192 ) 
+4 13 17 (512 128 -192 ) (512 0 -192 ) (512 0 0 ) (512 128 0 ) 
+4 13 16 (512 896 16 ) (512 896 -192 ) (512 640 -192 ) (512 128 16 ) 
+4 13 14 (512 0 336 ) (512 896 336 ) (512 896 16 ) (512 0 16 ) 
+4 14 96 (512 0 336 ) (256 0 336 ) (256 0 16 ) (512 0 16 ) 
+4 14 16 (256 896 16 ) (512 896 16 ) (512 128 16 ) (256 128 16 ) 
+4 14 15 (256 0 128 ) (256 0 336 ) (256 896 336 ) (256 896 128 ) 
+4 15 96 (256 0 336 ) (128 0 336 ) (128 0 128 ) (256 0 128 ) 
+4 15 24 (128 0 336 ) (128 128 336 ) (128 128 128 ) (128 0 128 ) 
+4 15 21 (128 128 336 ) (128 352 336 ) (128 352 128 ) (128 128 128 ) 
+4 15 19 (128 352 336 ) (128 896 336 ) (128 896 128 ) (128 352 128 ) 
+4 16 18 (256 896 0 ) (256 896 -192 ) (256 640 -192 ) (256 167.384674 0 ) 
+4 17 102 (256 0 -192 ) (512 0 -192 ) (512 0 0 ) (256 0 0 ) 
+4 17 28 (512 0 -192 ) (256 0 -192 ) (256 128 -192 ) (512 128 -192 ) 
+4 17 18 (256 128 0 ) (256 128 -192 ) (256 0 -192 ) (256 0 0 ) 
+4 18 102 (128 0 0 ) (128 0 -192 ) (256 0 -192 ) (256 0 0 ) 
+4 18 28 (256 0 -192 ) (128 0 -192 ) (128 640 -192 ) (256 640 -192 ) 
+4 18 26 (128 128 -192 ) (128 0 -192 ) (128 0 0 ) (128 128 0 ) 
+4 18 21 (128 352 -192 ) (128 128 -192 ) (128 128 0 ) (128 352 0 ) 
+4 18 20 (128 896 0 ) (128 896 -192 ) (128 352 -192 ) (128 352 0 ) 
+4 19 64 (0 432 83.199997 ) (0 432 16 ) (0 352 16 ) (0 352 83.199997 ) 
+4 19 60 (0 432 128 ) (0 432 83.199997 ) (0 352 83.199997 ) (0 352 128 ) 
+4 19 59 (0 352 336 ) (0 432 336 ) (0 432 128 ) (0 352 128 ) 
+4 19 58 (0 749.714294 64 ) (0 640 16 ) (0 432 16 ) (0 432 64 ) 
+4 19 56 (0 676.565979 64 ) (0 536.204285 64 ) (0 536.207031 96 ) (0 676.565979 96 ) 
+4 19 55 (0 536.204285 64 ) (0 432 64 ) (0 432 96 ) (0 536.207031 96 ) 
+4 19 54 (0 822.857178 96 ) (0 749.714294 64 ) (0 676.565979 64 ) (0 676.565979 96 ) 
+5 19 53 (0 432 336 ) (0 896 336 ) (0 896 128 ) (0 822.857178 96 ) (0 432 96 ) 
+4 19 21 (128 352 16 ) (128 352 336 ) (32 352 336 ) (32 352 16 ) 
+4 19 20 (128 352 16 ) (0 352 16 ) (0 640 16 ) (128 640 16 ) 
+4 20 89 (0 896 0 ) (0 896 -192 ) (0 640 -192 ) (0 640 0 ) 
+4 20 90 (0 640 -192 ) (0 352 -192 ) (0 352 0 ) (0 640 0 ) 
+4 20 85 (0 896 16 ) (0 896 0 ) (0 352 0 ) (0 352 16 ) 
+4 20 28 (0 352 -192 ) (0 640 -192 ) (128 640 -192 ) (128 352 -192 ) 
+4 20 22 (0 352 -192 ) (32 352 -192 ) (32 352 0 ) (0 352 0 ) 
+4 20 21 (32 352 -192 ) (128 352 -192 ) (128 352 16 ) (32 352 16 ) 
+4 21 28 (32 352 -192 ) (128 352 -192 ) (128 128 -192 ) (32 128 -192 ) 
+4 21 25 (128 128 16 ) (128 128 112 ) (32 128 112 ) (32 128 16 ) 
+4 21 26 (32 128 -192 ) (128 128 -192 ) (128 128 0 ) (32 128 0 ) 
+4 21 24 (128 128 128 ) (128 128 336 ) (32 128 336 ) (32 128 128 ) 
+4 21 22 (32 352 0 ) (32 352 -192 ) (32 176 -192 ) (32 176 0 ) 
+4 21 23 (32 176 -192 ) (32 128 -192 ) (32 128 336 ) (32 176 336 ) 
+4 22 90 (0 352 0 ) (0 352 -192 ) (0 176 -192 ) (0 176 0 ) 
+4 22 28 (0 176 -192 ) (0 352 -192 ) (32 352 -192 ) (32 176 -192 ) 
+4 22 23 (0 176 -192 ) (32 176 -192 ) (32 176 0 ) (0 176 0 ) 
+4 23 90 (0 176 0 ) (0 176 -192 ) (0 128 -192 ) (0 128 0 ) 
+4 23 86 (0 176 16 ) (0 176 0 ) (0 128 0 ) (0 128 16 ) 
+4 23 79 (0 128 336 ) (0 176 336 ) (0 176 16 ) (0 128 16 ) 
+4 23 28 (0 128 -192 ) (0 176 -192 ) (32 176 -192 ) (32 128 -192 ) 
+4 23 25 (32 128 16 ) (32 128 112 ) (0 128 112 ) (0 128 16 ) 
+4 23 26 (0 128 -192 ) (32 128 -192 ) (32 128 0 ) (0 128 0 ) 
+4 23 24 (32 128 128 ) (32 128 336 ) (0 128 336 ) (0 128 128 ) 
+4 24 96 (128 0 336 ) (0 0 336 ) (0 0 128 ) (128 0 128 ) 
+4 24 80 (0 0 128 ) (0 0 336 ) (0 128 336 ) (0 128 128 ) 
+4 25 96 (0 0 112 ) (0 0 16 ) (128 0 16 ) (128 0 112 ) 
+4 25 81 (0 0 16 ) (0 0 112 ) (0 128 112 ) (0 128 16 ) 
+4 26 102 (0 0 0 ) (0 0 -192 ) (128 0 -192 ) (128 0 0 ) 
+4 26 90 (0 0 -192 ) (0 0 0 ) (0 128 0 ) (0 128 -192 ) 
+4 26 28 (128 0 -192 ) (0 0 -192 ) (0 128 -192 ) (128 128 -192 ) 
+4 27 101 (1024 0 -320 ) (1024 0 -192 ) (512 0 -192 ) (512 0 -320 ) 
+4 27 29 (1024 0 -320 ) (512 0 -320 ) (512 1024 -320 ) (1024 1024 -320 ) 
+4 27 28 (512 640 -320 ) (512 0 -320 ) (512 0 -192 ) (512 640 -192 ) 
+4 28 102 (512 0 -192 ) (0 0 -192 ) (0 0 -320 ) (512 0 -320 ) 
+4 28 90 (0 0 -320 ) (0 0 -192 ) (0 640 -192 ) (0 640 -320 ) 
+4 28 29 (512 0 -320 ) (0 0 -320 ) (0 640 -320 ) (512 640 -320 ) 
+4 29 102 (512 0 -320 ) (0 0 -320 ) (0 0 -512 ) (512 0 -512 ) 
+4 29 101 (1024 0 -512 ) (1024 0 -320 ) (512 0 -320 ) (512 0 -512 ) 
+4 29 92 (0 0 -512 ) (0 0 -320 ) (0 1024 -320 ) (0 1024 -512 ) 
+4 30 33 (-384 1472 0 ) (-384 1792 0 ) (0 1792 0 ) (0 1472 0 ) 
+4 30 31 (-384 1472 512 ) (-384 1472 16 ) (0 1472 16 ) (0 1472 512 ) 
+4 30 32 (-384 1792 512 ) (-384 1792 0 ) (-384 1472 0 ) (-384 1472 512 ) 
+4 31 43 (-192 1024 512 ) (-224 1024 512 ) (-224 1024 32 ) (-192 1024 32 ) 
+4 31 44 (-224 1024 512 ) (-384 1024 512 ) (-384 1024 16 ) (-224 1024 16 ) 
+4 31 42 (-160 1024 512 ) (-192 1024 512 ) (-192 1024 48 ) (-160 1024 48 ) 
+4 31 41 (-128 1024 512 ) (-160 1024 512 ) (-160 1024 64 ) (-128 1024 64 ) 
+4 31 40 (-96 1024 512 ) (-128 1024 512 ) (-128 1024 80 ) (-96 1024 80 ) 
+4 31 39 (-64 1024 512 ) (-96 1024 512 ) (-96 1024 96 ) (-64 1024 96 ) 
+4 31 38 (-32 1024 512 ) (-64 1024 512 ) (-64 1024 112 ) (-32 1024 112 ) 
+4 31 37 (0 1024 128 ) (0 1024 512 ) (-32 1024 512 ) (-32 1024 128 ) 
+4 31 32 (-384 1024 16 ) (-384 1024 512 ) (-384 1472 512 ) (-384 1472 16 ) 
+4 32 93 (-1024 1024 0 ) (-1024 1024 512 ) (-1024 1792 512 ) (-1024 1792 0 ) 
+4 32 87 (-1024 1024 16 ) (-1024 1024 0 ) (-384 1024 0 ) (-384 1024 16 ) 
+4 32 51 (-580.216980 1024 16 ) (-528 1024 16 ) (-528 1024 64 ) (-580.216003 1024 64 ) 
+4 32 47 (-528 1024 64 ) (-528 1024 83.199997 ) (-580.215576 1024 83.199997 ) (-580.216003 1024 64 ) 
+4 32 46 (-1024 1024 83.199997 ) (-1024 1024 16 ) (-580.216980 1024 16 ) (-580.215576 1024 83.199997 ) 
+4 32 45 (-528 1024 512 ) (-1024 1024 512 ) (-1024 1024 83.199997 ) (-528 1024 83.199997 ) 
+4 32 44 (-384 1024 512 ) (-528 1024 512 ) (-528 1024 16 ) (-384 1024 16 ) 
+4 32 34 (-384 1024 0 ) (-832 1024 0 ) (-832 1216 0 ) (-384 1216 0 ) 
+4 32 33 (-832 1216 0 ) (-832 1792 0 ) (-384 1792 0 ) (-384 1216 0 ) 
+4 32 36 (-832 1024 0 ) (-1024 1024 0 ) (-1024 1792 0 ) (-832 1792 0 ) 
+4 33 34 (-832 1216 0 ) (-832 1216 -192 ) (0 1216 -192 ) (0 1216 0 ) 
+4 33 35 (-832 1216 -320 ) (-832 1216 -512 ) (0 1216 -512 ) (0 1216 -320 ) 
+4 33 36 (-832 1216 0 ) (-832 1792 0 ) (-832 1792 -512 ) (-832 1216 -512 ) 
+4 34 89 (0 1024 -192 ) (0 1024 0 ) (-832 1024 0 ) (-832 1024 -192 ) 
+4 34 36 (-832 1024 0 ) (-832 1216 0 ) (-832 1216 -192 ) (-832 1024 -192 ) 
+4 35 92 (0 1024 -512 ) (0 1024 -320 ) (-832 1024 -320 ) (-832 1024 -512 ) 
+4 35 36 (-832 1216 -320 ) (-832 1216 -512 ) (-832 1024 -512 ) (-832 1024 -320 ) 
+4 36 93 (-1024 1024 -512 ) (-1024 1024 0 ) (-1024 1792 0 ) (-1024 1792 -512 ) 
+4 36 92 (-1024 1024 -320 ) (-1024 1024 -512 ) (-832 1024 -512 ) (-832 1024 -320 ) 
+4 36 91 (-832 1024 0 ) (-1024 1024 0 ) (-1024 1024 -320 ) (-832 1024 -320 ) 
+4 37 53 (0 896 128 ) (0 896 512 ) (-32 896 512 ) (-32 896 128 ) 
+4 37 38 (-32 1024 512 ) (-32 1024 128 ) (-32 896 128 ) (-32 896 512 ) 
+4 38 53 (-32 896 112 ) (-32 896 512 ) (-64 896 512 ) (-64 896 112 ) 
+4 38 39 (-64 896 112 ) (-64 896 512 ) (-64 1024 512 ) (-64 1024 112 ) 
+4 39 53 (-64 896 96 ) (-64 896 512 ) (-96 896 512 ) (-96 896 96 ) 
+4 39 40 (-96 1024 512 ) (-96 1024 96 ) (-96 896 96 ) (-96 896 512 ) 
+4 40 57 (-96 896 80 ) (-96 896 96 ) (-128 896 96 ) (-128 896 80 ) 
+4 40 53 (-96 896 96 ) (-96 896 512 ) (-128 896 512 ) (-128 896 96 ) 
+4 40 41 (-128 896 80 ) (-128 896 512 ) (-128 1024 512 ) (-128 1024 80 ) 
+4 41 66 (-128 896 64 ) (-128 896 512 ) (-160 896 512 ) (-160 896 64 ) 
+4 41 42 (-160 1024 512 ) (-160 1024 64 ) (-160 896 64 ) (-160 896 512 ) 
+4 42 67 (-160 896 48 ) (-160 896 64 ) (-192 896 64 ) (-192 896 48 ) 
+4 42 66 (-160 896 64 ) (-160 896 512 ) (-192 896 512 ) (-192 896 64 ) 
+4 42 43 (-192 896 48 ) (-192 896 512 ) (-192 1024 512 ) (-192 1024 48 ) 
+4 43 70 (-203.656281 896 64 ) (-224 896 64 ) (-224 896 32 ) (-203.656281 896 32 ) 
+4 43 67 (-192 896 32 ) (-192 896 64 ) (-203.656281 896 64 ) (-203.656281 896 32 ) 
+4 43 66 (-192 896 64 ) (-192 896 512 ) (-224 896 512 ) (-224 896 64 ) 
+4 43 44 (-224 896 32 ) (-224 896 512 ) (-224 1024 512 ) (-224 1024 32 ) 
+4 44 87 (-528 1024 16 ) (-224 1024 16 ) (-224 896 16 ) (-528 896 16 ) 
+4 44 70 (-294.167023 896 16 ) (-224 896 16 ) (-224 896 64 ) (-294.166992 896 64 ) 
+4 44 68 (-528 896 16 ) (-294.167023 896 16 ) (-294.166992 896 64 ) (-528 896 64 ) 
+4 44 66 (-224 896 64 ) (-224 896 512 ) (-528 896 512 ) (-528 896 64 ) 
+4 44 51 (-528 1024 16 ) (-528 1011.556335 16 ) (-528 1011.556396 64 ) (-528 1024 64 ) 
+4 44 49 (-528 1011.556335 16 ) (-528 928 16 ) (-528 928 64 ) (-528 1011.556396 64 ) 
+4 44 47 (-528 928 83.199997 ) (-528 1024 83.199997 ) (-528 1024 64 ) (-528 928 64 ) 
+4 44 45 (-528 896 83.199997 ) (-528 896 512 ) (-528 1024 512 ) (-528 1024 83.199997 ) 
+4 45 94 (-1024 1024 512 ) (-1024 1024 83.199997 ) (-1024 896 83.199997 ) (-1024 896 512 ) 
+4 45 73 (-624 896 512 ) (-1024 896 512 ) (-1024 896 83.199997 ) (-624 896 83.199997 ) 
+4 45 71 (-528 896 83.199997 ) (-528 896 512 ) (-624 896 512 ) (-624 896 83.199997 ) 
+5 45 47 (-580.215576 1024 83.199997 ) (-528 1024 83.199997 ) (-528 928 83.199997 ) (-624 928 83.199997 ) (-624 971.820679 83.199997 ) 
+3 45 48 (-624 896 83.199997 ) (-687.622192 896 83.199997 ) (-624 971.820679 83.199997 ) 
+4 45 46 (-1024 1024 83.199997 ) (-580.215576 1024 83.199997 ) (-687.622192 896 83.199997 ) (-1024 896 83.199997 ) 
+4 46 94 (-1024 1024 83.199997 ) (-1024 1024 16 ) (-1024 896 16 ) (-1024 896 83.199997 ) 
+4 46 87 (-1024 896 16 ) (-1024 1024 16 ) (-580.216980 1024 16 ) (-687.623535 896 16 ) 
+4 46 75 (-1024 896 16 ) (-687.623535 896 16 ) (-687.622559 896 64 ) (-1024 896 64 ) 
+4 46 73 (-687.622559 896 64 ) (-687.622192 896 83.199997 ) (-1024 896 83.199997 ) (-1024 896 64 ) 
+4 46 52 (-660.771240 928 16 ) (-624 971.821716 16 ) (-624 971.820557 64 ) (-660.770142 928 64 ) 
+4 46 51 (-624 971.821716 16 ) (-580.216492 1024 16 ) (-580.215515 1024 64 ) (-624 971.820557 64 ) 
+4 46 47 (-580.215149 1024 83.199997 ) (-624 971.820129 83.199997 ) (-624 971.820557 64 ) (-580.215515 1024 64 ) 
+4 46 48 (-624 971.820129 83.199997 ) (-687.621704 896 83.199997 ) (-687.622070 896 64 ) (-624 971.820557 64 ) 
+6 47 51 (-624 971.819702 64 ) (-580.214966 1024 64 ) (-528 1024 64 ) (-528 1011.556335 64 ) (-598.110840 928 64 ) (-624 928 64 ) 
+3 47 49 (-528 1011.556335 64 ) (-528 928 64 ) (-598.110840 928 64 ) 
+4 47 48 (-624 971.823730 83.199997 ) (-624 971.824219 64 ) (-624 928 64 ) (-624 928 83.199997 ) 
+4 48 73 (-624 896 83.199997 ) (-687.622192 896 83.199997 ) (-687.622559 896 64 ) (-624 896 64 ) 
+3 48 52 (-660.769653 928 64 ) (-624 971.819702 64 ) (-624 897.146118 64 ) 
+3 48 50 (-624 897.146118 64 ) (-624 896 64 ) (-624.961670 896 64 ) 
+3 49 87 (-528 1011.556335 16 ) (-528 928 16 ) (-598.110962 928 16 ) 
+4 49 51 (-598.109985 928 64 ) (-528 1011.554688 64 ) (-528 1011.554688 16 ) (-598.109985 928 16 ) 
+3 50 87 (-624 896 16 ) (-624.961670 896 16 ) (-624 897.146118 16 ) 
+4 50 74 (-624.961670 896 16 ) (-624 896 16 ) (-624 896 64 ) (-624.961670 896 64 ) 
+6 51 87 (-580.216980 1024 16 ) (-528 1024 16 ) (-528 1011.556335 16 ) (-598.110962 928 16 ) (-624 928 16 ) (-624 971.822327 16 ) 
+4 51 52 (-624 928 64 ) (-624 971.821289 64 ) (-624 971.822449 16 ) (-624 928 16 ) 
+3 52 87 (-624 897.146118 16 ) (-660.771484 928 16 ) (-624 971.822327 16 ) 
+4 53 66 (-128 896 512 ) (-128 896 96 ) (-128 432 96 ) (-128 432 512 ) 
+4 53 63 (-97.470627 432 96 ) (-46.389038 432 96 ) (-46.389038 432 128 ) (-97.470352 432 128 ) 
+4 53 61 (-128 432 128 ) (-128 432 96 ) (-97.470627 432 96 ) (-97.470352 432 128 ) 
+4 53 60 (-46.389038 432 96 ) (0 432 96 ) (0 432 128 ) (-46.389038 432 128 ) 
+4 53 59 (0 432 512 ) (-128 432 512 ) (-128 432 128 ) (0 432 128 ) 
+5 53 57 (-128 887.890747 96 ) (-128 896 96 ) (-79.871628 896 96 ) (-60.827698 843.679993 96 ) (-105.933365 827.262024 96 ) 
+4 53 56 (-44.408978 798.572266 96 ) (0 676.565918 96 ) (0 536.207031 96 ) (-89.516296 782.155640 96 ) 
+4 53 55 (0 432 96 ) (-128 432 96 ) (-128 887.890747 96 ) (0 536.207031 96 ) 
+3 53 54 (-79.871628 896 96 ) (0 896 96 ) (0 676.565918 96 ) 
+3 54 58 (0 768 64 ) (0 676.565918 64 ) (-33.281013 768 64 ) 
+4 54 57 (-79.872177 896 64 ) (-60.827728 843.678772 64 ) (-60.825821 843.680664 96 ) (-79.869492 896 96 ) 
+4 54 56 (-44.409336 798.572144 64 ) (0 676.565369 64 ) (0 676.571777 96 ) (-44.407101 798.572937 96 ) 
+4 55 66 (-128 887.888000 64 ) (-128 432 64 ) (-128 432 96 ) (-128 887.890747 96 ) 
+4 55 64 (-16 432 64 ) (0 432 64 ) (0 432 83.199997 ) (-16 432 83.199997 ) 
+4 55 65 (-128 432 83.199997 ) (-128 432 64 ) (-112 432 64 ) (-112 432 83.199997 ) 
+4 55 63 (-97.470741 432 83.199997 ) (-46.389038 432 83.199997 ) (-46.389038 432 96 ) (-97.470627 432 96 ) 
+4 55 61 (-128 432 96 ) (-128 432 83.199997 ) (-97.470741 432 83.199997 ) (-97.470627 432 96 ) 
+4 55 60 (-46.389038 432 83.199997 ) (0 432 83.199997 ) (0 432 96 ) (-46.389038 432 96 ) 
+5 55 58 (0 432 64 ) (-128 432 64 ) (-128 768 64 ) (-84.365173 768 64 ) (0 536.204285 64 ) 
+4 55 57 (-105.934563 827.260437 64 ) (-128 887.885864 64 ) (-128 887.886719 96 ) (-105.934692 827.261536 96 ) 
+4 55 56 (0 536.202148 64 ) (-89.517876 782.155090 64 ) (-89.517654 782.155151 96 ) (0 536.202393 96 ) 
+4 56 58 (-33.281006 768 64 ) (0 676.565918 64 ) (0 536.204285 64 ) (-84.365158 768 64 ) 
+4 57 66 (-128 896 96 ) (-128 896 64 ) (-128 887.888000 64 ) (-128 887.890747 96 ) 
+4 58 85 (0 768 16 ) (0 432 16 ) (-96 432 16 ) (-96 768 16 ) 
+4 58 87 (-96 432 16 ) (-128 432 16 ) (-128 768 16 ) (-96 768 16 ) 
+4 58 69 (-128 768 16 ) (-128 729.833008 16 ) (-128 729.833008 64 ) (-128 768 64 ) 
+4 58 68 (-128 729.833008 16 ) (-128 432 16 ) (-128 432 64 ) (-128 729.833008 64 ) 
+4 58 64 (-16 432 16 ) (0 432 16 ) (0 432 64 ) (-16 432 64 ) 
+4 58 65 (-128 432 64 ) (-128 432 16 ) (-112 432 16 ) (-112 432 64 ) 
+4 59 77 (0 352 336 ) (0 352 512 ) (-96 352 512 ) (-96 352 336 ) 
+4 59 78 (-96 352 512 ) (-128 352 512 ) (-128 352 128 ) (-96 352 128 ) 
+4 59 66 (-128 352 128 ) (-128 352 512 ) (-128 432 512 ) (-128 432 128 ) 
+4 59 63 (-89.922607 411.262146 128 ) (-97.470345 432 128 ) (-46.389038 432 128 ) (-44.816608 427.680023 128 ) 
+4 59 62 (-17.269888 352 128 ) (-68.353622 352 128 ) (-73.505638 366.155487 128 ) (-28.397861 382.572235 128 ) 
+4 59 61 (-68.353622 352 128 ) (-128 352 128 ) (-128 432 128 ) (-97.470345 432 128 ) 
+4 59 60 (0 352 128 ) (-17.269888 352 128 ) (-46.389038 432 128 ) (0 432 128 ) 
+4 60 64 (0 352 83.199997 ) (-16 352 83.199997 ) (-16 432 83.199997 ) (0 432 83.199997 ) 
+4 60 63 (-46.390625 432 83.199997 ) (-44.817600 427.678375 83.199997 ) (-44.818008 427.679504 128 ) (-46.390625 432 128 ) 
+4 60 62 (-28.399263 382.571747 83.199997 ) (-17.271473 352 83.199997 ) (-17.271484 352 128 ) (-28.399271 382.571747 128 ) 
+4 61 78 (-96 352 128 ) (-128 352 128 ) (-128 352 83.199997 ) (-96 352 83.199997 ) 
+4 61 66 (-128 352 83.199997 ) (-128 352 128 ) (-128 432 128 ) (-128 432 83.199997 ) 
+4 61 65 (-112 352 83.199997 ) (-128 352 83.199997 ) (-128 432 83.199997 ) (-112 432 83.199997 ) 
+4 61 63 (-89.918961 411.262207 83.199997 ) (-97.466797 432 83.199997 ) (-97.468750 432 128 ) (-89.921204 411.262665 128 ) 
+4 61 62 (-68.349609 352 83.199997 ) (-73.502174 366.156769 83.199997 ) (-73.504234 366.156006 128 ) (-68.352028 352 128 ) 
+4 64 85 (0 432 16 ) (0 352 16 ) (-16 352 16 ) (-16 432 16 ) 
+4 65 87 (-112 352 16 ) (-128 352 16 ) (-128 432 16 ) (-112 432 16 ) 
+4 65 78 (-128 352 16 ) (-112 352 16 ) (-112 352 83.199997 ) (-128 352 83.199997 ) 
+4 65 68 (-128 432 16 ) (-128 352 16 ) (-128 352 64 ) (-128 432 64 ) 
+4 65 66 (-128 352 64 ) (-128 352 83.199997 ) (-128 432 83.199997 ) (-128 432 64 ) 
+4 66 82 (-256 352 512 ) (-384 352 512 ) (-384 352 64 ) (-256 352 64 ) 
+4 66 84 (-384 352 512 ) (-528 352 512 ) (-528 352 64 ) (-384 352 64 ) 
+4 66 78 (-128 352 64 ) (-128 352 512 ) (-256 352 512 ) (-256 352 64 ) 
+4 66 71 (-528 848 512 ) (-528 896 512 ) (-528 896 83.199997 ) (-528 848 83.199997 ) 
+4 66 72 (-528 352 64 ) (-528 352 512 ) (-528 848 512 ) (-528 848 64 ) 
+4 66 70 (-294.167023 896 64 ) (-203.656281 896 64 ) (-165.830017 858.172974 64 ) (-211.085022 812.918030 64 ) 
+3 66 69 (-128 805.493896 64 ) (-128 729.833069 64 ) (-165.829956 767.663025 64 ) 
+5 66 68 (-528 352 64 ) (-528 896 64 ) (-294.167023 896 64 ) (-128 729.833069 64 ) (-128 352 64 ) 
+3 66 67 (-203.656281 896 64 ) (-128 896 64 ) (-128 820.342163 64 ) 
+3 67 87 (-203.656281 896 16 ) (-128 896 16 ) (-128 820.342163 16 ) 
+4 67 70 (-165.829254 858.173706 64 ) (-203.654785 896 64 ) (-203.654785 896 16 ) (-165.829254 858.173706 16 ) 
+5 68 87 (-528 896 16 ) (-294.167023 896 16 ) (-128 729.833069 16 ) (-128 352 16 ) (-528 352 16 ) 
+4 68 82 (-384 352 16 ) (-256 352 16 ) (-256 352 64 ) (-384 352 64 ) 
+4 68 84 (-528 352 16 ) (-384 352 16 ) (-384 352 64 ) (-528 352 64 ) 
+4 68 78 (-256 352 16 ) (-128 352 16 ) (-128 352 64 ) (-256 352 64 ) 
+4 68 72 (-528 352 16 ) (-528 352 64 ) (-528 848 64 ) (-528 848 16 ) 
+4 68 70 (-294.164063 896 16 ) (-294.164063 896 64 ) (-211.083542 812.919495 64 ) (-211.083542 812.919495 16 ) 
+4 68 69 (-165.828537 767.664490 64 ) (-128 729.835938 64 ) (-128 729.835938 16 ) (-165.828537 767.664490 16 ) 
+3 69 87 (-128 805.493896 16 ) (-128 729.833069 16 ) (-165.829956 767.663025 16 ) 
+4 70 87 (-294.167023 896 16 ) (-203.656281 896 16 ) (-165.830017 858.172974 16 ) (-211.085022 812.918030 16 ) 
+4 71 73 (-624 848 512 ) (-624 896 512 ) (-624 896 83.199997 ) (-624 848 83.199997 ) 
+4 71 72 (-624 848 512 ) (-624 848 83.199997 ) (-528 848 83.199997 ) (-528 848 512 ) 
+4 72 87 (-528 848 16 ) (-528 352 16 ) (-624 352 16 ) (-624 848 16 ) 
+4 72 84 (-624 352 16 ) (-528 352 16 ) (-528 352 512 ) (-624 352 512 ) 
+4 72 74 (-624 352 16 ) (-624 352 64 ) (-624 848 64 ) (-624 848 16 ) 
+4 72 73 (-624 352 64 ) (-624 352 512 ) (-624 848 512 ) (-624 848 64 ) 
+4 73 94 (-1024 896 512 ) (-1024 896 64 ) (-1024 352 64 ) (-1024 352 512 ) 
+4 73 84 (-1024 352 512 ) (-1024 352 64 ) (-624 352 64 ) (-624 352 512 ) 
+4 73 76 (-654.854797 860.374146 64 ) (-1024 420.436493 64 ) (-1024 495.127777 64 ) (-691.626099 891.228943 64 ) 
+3 73 75 (-1024 896 64 ) (-687.622620 896 64 ) (-1024 495.127777 64 ) 
+5 73 74 (-624.961670 896 64 ) (-624 896 64 ) (-624 352 64 ) (-1024 352 64 ) (-1024 420.436493 64 ) 
+4 74 94 (-1024 420.436493 16 ) (-1024 352 16 ) (-1024 352 64 ) (-1024 420.436493 64 ) 
+5 74 87 (-1024 352 16 ) (-1024 420.436493 16 ) (-624.961670 896 16 ) (-624 896 16 ) (-624 352 16 ) 
+4 74 84 (-1024 352 64 ) (-1024 352 16 ) (-624 352 16 ) (-624 352 64 ) 
+4 74 76 (-1024 420.434021 64 ) (-654.854004 860.373474 64 ) (-654.854004 860.373474 16 ) (-1024 420.434021 16 ) 
+4 75 94 (-1024 896 64 ) (-1024 896 16 ) (-1024 495.128937 16 ) (-1024 495.127777 64 ) 
+3 75 87 (-1024 495.128906 16 ) (-1024 896 16 ) (-687.623596 896 16 ) 
+4 75 76 (-691.625610 891.228577 64 ) (-1024 495.126770 64 ) (-1024 495.127930 16 ) (-691.626221 891.229004 16 ) 
+4 76 94 (-1024 495.128937 16 ) (-1024 420.436493 16 ) (-1024 420.436493 64 ) (-1024 495.127777 64 ) 
+4 76 87 (-1024 420.436493 16 ) (-1024 495.128906 16 ) (-691.626587 891.229492 16 ) (-654.854797 860.374146 16 ) 
+4 77 79 (0 176 512 ) (-96 176 512 ) (-96 176 336 ) (0 176 336 ) 
+4 77 78 (-96 176 336 ) (-96 176 512 ) (-96 352 512 ) (-96 352 336 ) 
+4 78 87 (-256 176 16 ) (-256 352 16 ) (-96 352 16 ) (-96 176 16 ) 
+4 78 82 (-256 352 512 ) (-256 352 16 ) (-256 176 16 ) (-256 176 512 ) 
+4 78 79 (-96 176 512 ) (-256 176 512 ) (-256 176 16 ) (-96 176 16 ) 
+4 79 86 (-96 176 16 ) (0 176 16 ) (0 128 16 ) (-96 128 16 ) 
+4 79 87 (-256 128 16 ) (-256 176 16 ) (-96 176 16 ) (-96 128 16 ) 
+4 79 82 (-256 176 16 ) (-256 128 16 ) (-256 128 512 ) (-256 176 512 ) 
+4 79 80 (0 128 512 ) (-256 128 512 ) (-256 128 128 ) (0 128 128 ) 
+4 79 81 (-256 128 112 ) (-256 128 16 ) (0 128 16 ) (0 128 112 ) 
+4 80 106 (0 0 128 ) (0 0 512 ) (-256 0 512 ) (-256 0 128 ) 
+4 80 83 (-256 0 128 ) (-256 0 512 ) (-256 128 512 ) (-256 128 128 ) 
+4 81 106 (0 0 16 ) (0 0 112 ) (-256 0 112 ) (-256 0 16 ) 
+4 82 87 (-384 128 16 ) (-384 352 16 ) (-256 352 16 ) (-256 128 16 ) 
+4 82 83 (-384 128 512 ) (-384 128 128 ) (-256 128 128 ) (-256 128 512 ) 
+4 82 84 (-384 128 512 ) (-384 352 512 ) (-384 352 16 ) (-384 128 16 ) 
+4 83 107 (-256 0 128 ) (-256 0 512 ) (-384 0 512 ) (-384 0 128 ) 
+4 83 84 (-384 0 512 ) (-384 128 512 ) (-384 128 128 ) (-384 0 128 ) 
+4 84 108 (-1024 0 512 ) (-1024 0 16 ) (-384 0 16 ) (-384 0 512 ) 
+4 84 94 (-1024 0 16 ) (-1024 0 512 ) (-1024 352 512 ) (-1024 352 16 ) 
+4 84 88 (-384 0 16 ) (-1024 0 16 ) (-1024 128 16 ) (-384 128 16 ) 
+4 84 87 (-1024 128 16 ) (-1024 352 16 ) (-384 352 16 ) (-384 128 16 ) 
+4 85 89 (0 1024 0 ) (0 640 0 ) (-96 640 0 ) (-96 1024 0 ) 
+4 85 90 (0 640 0 ) (0 352 0 ) (-96 352 0 ) (-96 640 0 ) 
+4 85 87 (-96 1024 0 ) (-96 352 0 ) (-96 352 16 ) (-96 1024 16 ) 
+4 86 90 (0 176 0 ) (0 128 0 ) (-96 128 0 ) (-96 176 0 ) 
+4 86 87 (-96 176 0 ) (-96 128 0 ) (-96 128 16 ) (-96 176 16 ) 
+4 87 94 (-1024 128 16 ) (-1024 1024 16 ) (-1024 1024 0 ) (-1024 128 0 ) 
+4 87 89 (-832 640 0 ) (-832 1024 0 ) (-96 1024 0 ) (-96 640 0 ) 
+4 87 90 (-96 128 0 ) (-832 128 0 ) (-832 640 0 ) (-96 640 0 ) 
+4 87 91 (-832 128 0 ) (-1024 128 0 ) (-1024 1024 0 ) (-832 1024 0 ) 
+4 87 88 (-1024 128 0 ) (-384 128 0 ) (-384 128 16 ) (-1024 128 16 ) 
+4 88 111 (-384 0 16 ) (-1024 0 16 ) (-1024 0 0 ) (-384 0 0 ) 
+4 88 94 (-1024 0 0 ) (-1024 0 16 ) (-1024 128 16 ) (-1024 128 0 ) 
+4 88 90 (-384 0 0 ) (-832 0 0 ) (-832 128 0 ) (-384 128 0 ) 
+4 88 91 (-832 0 0 ) (-1024 0 0 ) (-1024 128 0 ) (-832 128 0 ) 
+4 89 90 (-832 640 0 ) (-832 640 -192 ) (0 640 -192 ) (0 640 0 ) 
+4 89 91 (-832 640 -192 ) (-832 640 0 ) (-832 1024 0 ) (-832 1024 -192 ) 
+4 90 109 (0 0 -320 ) (0 0 0 ) (-384 0 0 ) (-384 0 -320 ) 
+4 90 111 (-384 0 0 ) (-832 0 0 ) (-832 0 -320 ) (-384 0 -320 ) 
+4 90 92 (0 0 -320 ) (-832 0 -320 ) (-832 640 -320 ) (0 640 -320 ) 
+4 90 91 (-832 640 -320 ) (-832 0 -320 ) (-832 0 0 ) (-832 640 0 ) 
+4 91 111 (-832 0 0 ) (-1024 0 0 ) (-1024 0 -320 ) (-832 0 -320 ) 
+4 91 94 (-1024 0 -320 ) (-1024 0 0 ) (-1024 1024 0 ) (-1024 1024 -320 ) 
+4 91 92 (-832 0 -320 ) (-1024 0 -320 ) (-1024 1024 -320 ) (-832 1024 -320 ) 
+4 92 109 (0 0 -512 ) (0 0 -320 ) (-384 0 -320 ) (-384 0 -512 ) 
+4 92 111 (-384 0 -320 ) (-1024 0 -320 ) (-1024 0 -512 ) (-384 0 -512 ) 
+4 92 94 (-1024 0 -512 ) (-1024 0 -320 ) (-1024 1024 -320 ) (-1024 1024 -512 ) 
+4 93 94 (-1024 1024 -512 ) (-1024 1024 512 ) (-1408 1024 512 ) (-1408 1024 -512 ) 
+4 94 112 (-1024 0 -512 ) (-1024 0 512 ) (-1408 0 512 ) (-1408 0 -512 ) 
+4 95 104 (1152 -1024 512 ) (1024 -1024 512 ) (1024 -1024 -512 ) (1152 -1024 -512 ) 
+4 95 101 (1024 -1024 -512 ) (1024 -1024 16 ) (1024 0 16 ) (1024 0 -512 ) 
+4 95 97 (1024 -512 512 ) (1024 -256 512 ) (1024 -256 16 ) (1024 -512 16 ) 
+4 95 96 (1024 -256 512 ) (1024 0 512 ) (1024 0 16 ) (1024 -256 16 ) 
+4 95 100 (1024 -1024 16 ) (1024 -1024 512 ) (1024 -512 512 ) (1024 -512 16 ) 
+4 96 106 (0 0 512 ) (0 0 16 ) (0 -256 16 ) (0 -256 512 ) 
+4 96 101 (512 0 16 ) (1024 0 16 ) (1024 -256 16 ) (512 -256 16 ) 
+4 96 99 (0 -256 16 ) (32 -256 16 ) (256 -256 128 ) (0 -256 128 ) 
+4 96 98 (512 -256 128 ) (512 -256 512 ) (0 -256 512 ) (0 -256 128 ) 
+4 96 97 (512 -256 16 ) (1024 -256 16 ) (1024 -256 512 ) (512 -256 512 ) 
+4 97 101 (512 -256 16 ) (1024 -256 16 ) (1024 -512 16 ) (512 -512 16 ) 
+4 97 98 (512 -256 512 ) (512 -256 128 ) (512 -512 128 ) (512 -512 512 ) 
+4 97 100 (512 -512 16 ) (1024 -512 16 ) (1024 -512 512 ) (512 -512 512 ) 
+4 98 106 (0 -512 128 ) (0 -512 512 ) (0 -256 512 ) (0 -256 128 ) 
+4 98 99 (0 -256 128 ) (256 -256 128 ) (256 -512 128 ) (0 -512 128 ) 
+4 98 100 (512 -512 128 ) (512 -512 512 ) (0 -512 512 ) (0 -512 128 ) 
+4 99 106 (0 -256 16 ) (0 -512 16 ) (0 -512 128 ) (0 -256 128 ) 
+4 99 100 (0 -512 16 ) (32 -512 16 ) (256 -512 128 ) (0 -512 128 ) 
+4 100 106 (0 -512 16 ) (0 -1024 16 ) (0 -1024 512 ) (0 -512 512 ) 
+4 100 105 (1024 -1024 16 ) (1024 -1024 512 ) (0 -1024 512 ) (0 -1024 16 ) 
+4 100 103 (0 -1024 16 ) (0 -512 16 ) (512 -512 16 ) (512 -1024 16 ) 
+4 100 101 (512 -512 16 ) (1024 -512 16 ) (1024 -1024 16 ) (512 -1024 16 ) 
+4 101 105 (1024 -1024 -512 ) (1024 -1024 16 ) (512 -1024 16 ) (512 -1024 -512 ) 
+4 101 102 (512 0 -512 ) (512 -512 -512 ) (512 -512 0 ) (512 0 0 ) 
+4 101 103 (512 -512 -512 ) (512 -1024 -512 ) (512 -1024 16 ) (512 -512 16 ) 
+4 102 109 (0 0 0 ) (0 0 -512 ) (0 -512 -512 ) (0 -512 0 ) 
+4 102 103 (0 -512 -512 ) (512 -512 -512 ) (512 -512 0 ) (0 -512 0 ) 
+4 103 110 (0 -512 -512 ) (0 -1024 -512 ) (0 -1024 16 ) (0 -512 16 ) 
+4 103 105 (512 -1024 16 ) (0 -1024 16 ) (0 -1024 -512 ) (512 -1024 -512 ) 
+4 104 105 (1024 -1024 512 ) (1024 -1024 -512 ) (1024 -1152 -512 ) (1024 -1152 512 ) 
+4 105 113 (0 -1152 512 ) (0 -1024 512 ) (0 -1024 -512 ) (0 -1152 -512 ) 
+4 106 113 (0 -1024 16 ) (0 -1024 512 ) (-256 -1024 512 ) (-256 -1024 16 ) 
+4 106 110 (0 -1024 16 ) (-256 -1024 16 ) (-256 -512 16 ) (0 -512 16 ) 
+5 106 107 (-256 -112 16 ) (-256 -1024 16 ) (-256 -1024 512 ) (-256 0 512 ) (-256 0 128 ) 
+4 107 113 (-256 -1024 512 ) (-384 -1024 512 ) (-384 -1024 16 ) (-256 -1024 16 ) 
+4 107 110 (-256 -1024 16 ) (-384 -1024 16 ) (-384 -512 16 ) (-256 -512 16 ) 
+5 107 108 (-384 -112 16 ) (-384 -1024 16 ) (-384 -1024 512 ) (-384 0 512 ) (-384 0 128 ) 
+4 108 113 (-384 -1024 512 ) (-1024 -1024 512 ) (-1024 -1024 16 ) (-384 -1024 16 ) 
+4 108 112 (-1024 0 512 ) (-1024 0 16 ) (-1024 -1024 16 ) (-1024 -1024 512 ) 
+4 108 111 (-384 -1024 16 ) (-1024 -1024 16 ) (-1024 0 16 ) (-384 0 16 ) 
+4 109 110 (-384 -512 0 ) (-384 -512 -512 ) (0 -512 -512 ) (0 -512 0 ) 
+4 109 111 (-384 0 -512 ) (-384 -512 -512 ) (-384 -512 0 ) (-384 0 0 ) 
+4 110 113 (0 -1024 -512 ) (0 -1024 16 ) (-384 -1024 16 ) (-384 -1024 -512 ) 
+4 110 111 (-384 -512 -512 ) (-384 -1024 -512 ) (-384 -1024 16 ) (-384 -512 16 ) 
+4 111 113 (-384 -1024 16 ) (-1024 -1024 16 ) (-1024 -1024 -512 ) (-384 -1024 -512 ) 
+4 111 112 (-1024 0 16 ) (-1024 0 -512 ) (-1024 -1024 -512 ) (-1024 -1024 16 ) 
+4 112 114 (-1024 -1024 -512 ) (-1024 -1024 512 ) (-1408 -1024 512 ) (-1408 -1024 -512 ) 
+4 113 114 (-1024 -1024 512 ) (-1024 -1024 -512 ) (-1024 -1152 -512 ) (-1024 -1152 512 ) 
index 944e49f29b7492a6564a213989f3915656081a65..9dee9594bf519717f4ffbbaef8bd9a30cecd1d6c 100644 (file)
@@ -2,7 +2,7 @@ versioninfo
 {
        "editorversion" "400"
        "editorbuild" "8075"
-       "mapversion" "232"
+       "mapversion" "305"
        "formatversion" "100"
        "prefab" "0"
 }
@@ -56,13 +56,13 @@ viewsettings
        "bSnapToGrid" "1"
        "bShowGrid" "1"
        "bShowLogicalGrid" "0"
-       "nGridSpacing" "16"
+       "nGridSpacing" "128"
        "bShow3DGrid" "0"
 }
 world
 {
        "id" "1"
-       "mapversion" "232"
+       "mapversion" "305"
        "classname" "worldspawn"
        "detailmaterial" "detail/detailsprites"
        "detailvbsp" "detail.vbsp"
@@ -70,35 +70,35 @@ world
        "skyname" "sky_dust"
        solid
        {
-               "id" "1743"
+               "id" "2391"
                side
                {
-                       "id" "854"
-                       "plane" "(256 0 128) (256 128 128) (512 128 128)"
+                       "id" "1081"
+                       "plane" "(-96 176 336) (-96 352 336) (32 352 336)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
-                       "vaxis" "[0 -1 0 64] 0.25"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 320] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "853"
-                       "plane" "(256 128 112) (256 0 112) (512 0 112)"
+                       "id" "1080"
+                       "plane" "(-96 352 0) (-96 176 0) (32 176 0)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
-                       "vaxis" "[0 -1 0 64] 0.25"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 320] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "852"
-                       "plane" "(256 0 112) (256 128 112) (256 128 128)"
+                       "id" "1079"
+                       "plane" "(-96 176 0) (-96 352 0) (-96 352 336)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 -64] 0.25"
+                       "uaxis" "[0 1 0 -320] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -106,10 +106,10 @@ world
                }
                side
                {
-                       "id" "851"
-                       "plane" "(512 128 112) (512 0 112) (512 0 128)"
+                       "id" "1078"
+                       "plane" "(32 352 0) (32 176 0) (32 176 336)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 -64] 0.25"
+                       "uaxis" "[0 1 0 -320] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -117,10 +117,10 @@ world
                }
                side
                {
-                       "id" "850"
-                       "plane" "(256 128 112) (512 128 112) (512 128 128)"
+                       "id" "1077"
+                       "plane" "(-96 352 0) (32 352 0) (32 352 336)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
+                       "uaxis" "[1 0 0 0] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -128,10 +128,10 @@ world
                }
                side
                {
-                       "id" "849"
-                       "plane" "(512 0 112) (256 0 112) (256 0 128)"
+                       "id" "1076"
+                       "plane" "(32 176 0) (-96 176 0) (-96 176 336)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
+                       "uaxis" "[1 0 0 0] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -140,42 +140,43 @@ world
                editor
                {
                        "color" "0 175 108"
-                       "visgroupid" "17"
+                       "visgroupid" "9"
+                       "visgroupid" "18"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
        solid
        {
-               "id" "1759"
+               "id" "2421"
                side
                {
-                       "id" "866"
-                       "plane" "(-128 128 128) (-128 256 128) (0 256 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
-                       "vaxis" "[0 -1 0 -384] 0.25"
+                       "id" "1099"
+                       "plane" "(-16 351.99 83.2) (-111.994 351.991 83.2) (-112 431.995 83.2)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[0 1 0 0.0146484] 0.25"
+                       "vaxis" "[1 0 0 -64.0171] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "865"
-                       "plane" "(-128 256 0) (-128 128 0) (0 128 0)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
-                       "vaxis" "[0 -1 0 -384] 0.25"
+                       "id" "1098"
+                       "plane" "(-111.998 351.994 16) (-16.0061 351.994 16) (-16.0062 431.998 16)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[0 1 0 0.0146484] 0.25"
+                       "vaxis" "[1 0 0 -64.0171] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "864"
-                       "plane" "(-128 128 0) (-128 256 0) (-128 256 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 384] 0.25"
+                       "id" "1097"
+                       "plane" "(-16.0042 351.994 16) (-111.994 351.994 16) (-111.994 351.991 83.2)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-1 0 0 64.0171] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -183,10 +184,10 @@ world
                }
                side
                {
-                       "id" "863"
-                       "plane" "(0 256 0) (0 128 0) (0 128 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 384] 0.25"
+                       "id" "1096"
+                       "plane" "(-111.998 431.997 16) (-16.0051 431.997 16) (-16.0042 431.997 83.2)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-1 0 0 64.0171] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -194,10 +195,10 @@ world
                }
                side
                {
-                       "id" "862"
-                       "plane" "(-128 256 0) (0 256 0) (0 256 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
+                       "id" "1095"
+                       "plane" "(-111.996 351.992 16) (-111.996 431.998 16) (-111.996 431.998 83.2)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[0 1 0 0.0146484] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -205,10 +206,10 @@ world
                }
                side
                {
-                       "id" "861"
-                       "plane" "(0 128 0) (-128 128 0) (-128 128 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
+                       "id" "1094"
+                       "plane" "(-16.0042 431.997 16) (-16.0041 351.991 16) (-16 351.99 83.2)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[0 1 0 0.0146484] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -217,77 +218,77 @@ world
                editor
                {
                        "color" "0 175 108"
+                       "visgroupid" "16"
                        "visgroupid" "9"
-                       "visgroupid" "8"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
        solid
        {
-               "id" "1788"
+               "id" "2422"
                side
                {
-                       "id" "878"
-                       "plane" "(384 -256 128) (384 0 128) (512 0 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 -384] 0.25"
-                       "vaxis" "[0 -1 0 -448] 0.25"
+                       "id" "1105"
+                       "plane" "(-28.3985 382.574 128) (-73.5055 366.157 128) (-89.9195 411.264 128)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.34202 0.939693 0 123.143] 0.25"
+                       "vaxis" "[0.939693 0.34202 0 -32.6477] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "877"
-                       "plane" "(384 0 112) (384 -256 112) (512 -256 112)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 -384] 0.25"
-                       "vaxis" "[0 -1 0 -448] 0.25"
+                       "id" "1104"
+                       "plane" "(-73.5055 366.157 83.2) (-28.3988 382.574 83.2) (-44.8152 427.678 83.2)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.34202 0.939693 0 123.143] 0.25"
+                       "vaxis" "[0.939693 0.34202 0 -32.6477] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "876"
-                       "plane" "(384 -256 112) (384 0 112) (384 0 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 448] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "1103"
+                       "plane" "(-28.4012 382.571 83.2) (-73.5042 366.156 83.2) (-73.5042 366.156 128)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.939693 -0.34202 0 32.6477] 0.25"
+                       "vaxis" "[0 0 -1 64] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "875"
-                       "plane" "(512 0 112) (512 -256 112) (512 -256 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 448] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "1102"
+                       "plane" "(-89.9222 411.261 83.2) (-44.8159 427.679 83.2) (-44.8166 427.68 128)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.939693 -0.34202 0 32.6477] 0.25"
+                       "vaxis" "[0 0 -1 64] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "874"
-                       "plane" "(384 0 112) (512 0 112) (512 0 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 -384] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "1101"
+                       "plane" "(-73.5055 366.154 83.2) (-89.9226 411.261 83.2) (-89.9222 411.261 128)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.34202 0.939693 0 123.143] 0.25"
+                       "vaxis" "[0 0 -1 64] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "873"
-                       "plane" "(512 -256 112) (384 -256 112) (384 -256 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 -384] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "1100"
+                       "plane" "(-44.8166 427.68 83.2) (-28.3985 382.574 83.2) (-28.3985 382.574 128)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.34202 0.939693 0 123.143] 0.25"
+                       "vaxis" "[0 0 -1 64] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
@@ -295,42 +296,43 @@ world
                editor
                {
                        "color" "0 175 108"
-                       "visgroupid" "17"
+                       "visgroupid" "16"
+                       "visgroupid" "9"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
        solid
        {
-               "id" "1792"
+               "id" "2428"
                side
                {
-                       "id" "890"
-                       "plane" "(256 -512 128) (256 -256 128) (512 -256 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 -384] 0.25"
-                       "vaxis" "[0 -1 0 -384] 0.25"
+                       "id" "1117"
+                       "plane" "(-528 847.99 83.2) (-623.994 847.991 83.2) (-624 927.995 83.2)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[0 1 0 -63.9854] 0.25"
+                       "vaxis" "[1 0 0 63.9829] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "889"
-                       "plane" "(256 -256 0) (256 -512 0) (512 -512 0)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 -384] 0.25"
-                       "vaxis" "[0 -1 0 -384] 0.25"
+                       "id" "1116"
+                       "plane" "(-623.998 847.994 16) (-528.006 847.994 16) (-528.006 927.998 16)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[0 1 0 -63.9854] 0.25"
+                       "vaxis" "[1 0 0 63.9829] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "888"
-                       "plane" "(256 -512 0) (256 -256 0) (256 -256 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 384] 0.25"
+                       "id" "1115"
+                       "plane" "(-528.004 847.994 16) (-623.994 847.994 16) (-623.994 847.991 83.2)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-1 0 0 -63.9829] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -338,10 +340,10 @@ world
                }
                side
                {
-                       "id" "887"
-                       "plane" "(512 -256 0) (512 -512 0) (512 -512 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 384] 0.25"
+                       "id" "1114"
+                       "plane" "(-623.998 927.997 16) (-528.005 927.997 16) (-528.004 927.997 83.2)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-1 0 0 -63.9829] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -349,10 +351,10 @@ world
                }
                side
                {
-                       "id" "886"
-                       "plane" "(256 -256 0) (512 -256 0) (512 -256 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 -384] 0.25"
+                       "id" "1113"
+                       "plane" "(-623.996 847.992 16) (-623.996 927.998 16) (-623.996 927.998 83.2)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[0 1 0 -63.9854] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -360,10 +362,10 @@ world
                }
                side
                {
-                       "id" "885"
-                       "plane" "(512 -512 0) (256 -512 0) (256 -512 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 -384] 0.25"
+                       "id" "1112"
+                       "plane" "(-528.004 927.997 16) (-528.004 847.991 16) (-528 847.99 83.2)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[0 1 0 -63.9854] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -372,32 +374,43 @@ world
                editor
                {
                        "color" "0 175 108"
+                       "visgroupid" "16"
                        "visgroupid" "9"
-                       "visgroupid" "8"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
        solid
        {
-               "id" "1810"
+               "id" "2429"
                side
                {
-                       "id" "907"
-                       "plane" "(0 -256 0) (0 -512 0) (256 -512 0)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
-                       "vaxis" "[0 -1 0 -384] 0.25"
+                       "id" "1129"
+                       "plane" "(-654.854 860.375 64) (-691.625 891.23 64) (-660.768 927.999 64)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[0.642788 0.766045 0 7.38665] 0.25"
+                       "vaxis" "[0.766045 -0.642788 0 -5.25711] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "906"
-                       "plane" "(256 -256 0) (256 -512 0) (256 -512 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 384] 0.25"
+                       "id" "1128"
+                       "plane" "(-691.625 891.23 16) (-654.854 860.375 16) (-624.001 897.144 16)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[0.642788 0.766045 0 7.38665] 0.25"
+                       "vaxis" "[0.766045 -0.642788 0 -5.25711] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "1127"
+                       "plane" "(-654.857 860.376 16) (-691.625 891.228 16) (-691.625 891.228 64)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.766045 0.642788 0 5.25711] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -405,10 +418,10 @@ world
                }
                side
                {
-                       "id" "905"
-                       "plane" "(0 -256 0) (256 -256 0) (256 -256 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
+                       "id" "1126"
+                       "plane" "(-660.771 928 16) (-624 897.145 16) (-624 897.146 64)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.766045 0.642788 0 5.25711] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -416,10 +429,10 @@ world
                }
                side
                {
-                       "id" "904"
-                       "plane" "(256 -512 0) (0 -512 0) (256 -512 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
+                       "id" "1125"
+                       "plane" "(-691.627 891.229 16) (-660.772 928 16) (-660.771 928 64)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[0.642788 0.766045 0 7.38665] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -427,11 +440,11 @@ world
                }
                side
                {
-                       "id" "903"
-                       "plane" "(0 -512 0) (0 -256 0) (256 -256 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 0] 0.25"
-                       "vaxis" "[0 -1 0 0] 0.25"
+                       "id" "1124"
+                       "plane" "(-624 897.146 16) (-654.854 860.375 16) (-654.854 860.375 64)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[0.642788 0.766045 0 7.38665] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
@@ -439,43 +452,43 @@ world
                editor
                {
                        "color" "0 175 108"
+                       "visgroupid" "16"
                        "visgroupid" "9"
-                       "visgroupid" "8"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
        solid
        {
-               "id" "1817"
+               "id" "2497"
                side
                {
-                       "id" "919"
-                       "plane" "(0 128 128) (0 256 128) (128 256 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
-                       "vaxis" "[0 -1 0 64] 0.25"
+                       "id" "1141"
+                       "plane" "(-1440 1824 544) (1184 1824 544) (1184 -1184 544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "918"
-                       "plane" "(0 256 112) (0 128 112) (128 128 112)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
-                       "vaxis" "[0 -1 0 64] 0.25"
+                       "id" "1140"
+                       "plane" "(-1440 1824 544) (-1440 -1184 544) (-1440 -1184 -544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[0 1 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "917"
-                       "plane" "(0 128 112) (0 256 112) (0 256 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 -64] 0.25"
+                       "id" "1139"
+                       "plane" "(1184 1824 -544) (1184 -1184 -544) (1184 -1184 544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[0 1 0 0] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -483,10 +496,10 @@ world
                }
                side
                {
-                       "id" "916"
-                       "plane" "(128 256 112) (128 128 112) (128 128 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 -64] 0.25"
+                       "id" "1138"
+                       "plane" "(1184 1824 544) (-1440 1824 544) (-1440 1824 -544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -494,10 +507,10 @@ world
                }
                side
                {
-                       "id" "915"
-                       "plane" "(0 256 112) (128 256 112) (128 256 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
+                       "id" "1137"
+                       "plane" "(1184 -1184 -544) (-1440 -1184 -544) (-1440 -1184 544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -505,43 +518,43 @@ world
                }
                side
                {
-                       "id" "914"
-                       "plane" "(128 128 112) (0 128 112) (0 128 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "1136"
+                       "plane" "(1152 -1152 512) (1152 1792 512) (-1408 1792 512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                editor
                {
-                       "color" "0 175 108"
-                       "visgroupid" "17"
+                       "color" "220 220 220"
+                       "groupid" "2509"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
        solid
        {
-               "id" "1819"
+               "id" "2499"
                side
                {
-                       "id" "929"
-                       "plane" "(0 384 0) (-128 384 0) (-128 256 0)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 -1 0 128] 0.25"
-                       "vaxis" "[-1 0 0 128] 0.25"
+                       "id" "1147"
+                       "plane" "(-1440 -1184 -544) (1184 -1184 -544) (1184 1824 -544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "928"
-                       "plane" "(-1.52588e-05 256 0) (-128 256 0) (-128 256 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 -128] 0.25"
+                       "id" "1146"
+                       "plane" "(-1440 1824 544) (-1440 -1184 544) (-1440 -1184 -544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[0 1 0 0] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -549,10 +562,10 @@ world
                }
                side
                {
-                       "id" "927"
-                       "plane" "(0 384 0) (-1.52588e-05 256 0) (-1.52588e-05 256 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 -1 0 128] 0.25"
+                       "id" "1145"
+                       "plane" "(1184 1824 -544) (1184 -1184 -544) (1184 -1184 544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[0 1 0 0] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -560,10 +573,10 @@ world
                }
                side
                {
-                       "id" "926"
-                       "plane" "(-128 256 0) (-128 384 0) (-128 256 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 -1 0 128] 0.25"
+                       "id" "1144"
+                       "plane" "(1184 1824 544) (-1440 1824 544) (-1440 1824 -544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -571,215 +584,131 @@ world
                }
                side
                {
-                       "id" "925"
-                       "plane" "(-128 384 0) (0 384 0) (-1.52588e-05 256 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 -1 0 0] 0.25"
-                       "vaxis" "[-1 0 0 0] 0.25"
+                       "id" "1143"
+                       "plane" "(1184 -1184 -544) (-1440 -1184 -544) (-1440 -1184 544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "1142"
+                       "plane" "(1152 1792 -512) (1152 -1152 -512) (-1408 -1152 -512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                editor
                {
-                       "color" "0 175 108"
-                       "visgroupid" "9"
-                       "visgroupid" "8"
+                       "color" "220 220 220"
+                       "groupid" "2509"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
        solid
        {
-               "id" "1597"
+               "id" "2501"
                side
                {
-                       "id" "818"
-                       "plane" "(-256 0 -64) (-256 768 -64) (-128 768 -64)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
-                       "vaxis" "[0 -1 0 -384] 0.25"
+                       "id" "1153"
+                       "plane" "(-1440 1824 544) (-1440 -1184 544) (-1440 -1184 -544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[0 1 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "817"
-                       "plane" "(-256 768 -192) (-256 0 -192) (-128 0 -192)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
-                       "vaxis" "[0 -1 0 -384] 0.25"
+                       "id" "1152"
+                       "plane" "(1184 1824 544) (-1440 1824 544) (-1440 1824 -544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "816"
-                       "plane" "(-256 0 -192) (-256 768 -192) (-256 768 -64)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 384] 0.25"
-                       "vaxis" "[0 0 -1 -256] 0.25"
+                       "id" "1151"
+                       "plane" "(1184 -1184 -544) (-1440 -1184 -544) (-1440 -1184 544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "815"
-                       "plane" "(-128 768 -192) (-128 0 -192) (-128 0 -64)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 384] 0.25"
-                       "vaxis" "[0 0 -1 -256] 0.25"
+                       "id" "1150"
+                       "plane" "(-1408 1792 512) (1152 1792 512) (1152 -1152 512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "814"
-                       "plane" "(-256 768 -192) (-128 768 -192) (-128 768 -64)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
-                       "vaxis" "[0 0 -1 -256] 0.25"
+                       "id" "1149"
+                       "plane" "(-1408 -1152 -512) (1152 -1152 -512) (1152 1792 -512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "813"
-                       "plane" "(-128 0 -192) (-256 0 -192) (-256 0 -64)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
-                       "vaxis" "[0 0 -1 -256] 0.25"
+                       "id" "1148"
+                       "plane" "(-1408 -1152 -512) (-1408 -1152 512) (-1408 1792 512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[0 1 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                editor
                {
-                       "color" "0 175 108"
-                       "visgroupid" "8"
+                       "color" "220 220 220"
+                       "groupid" "2509"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
        solid
        {
-               "id" "1559"
+               "id" "2503"
                side
                {
-                       "id" "782"
-                       "plane" "(320 192 16) (320 656 16) (832 656 16)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[1 0 0 -256] 0.25"
-                       "vaxis" "[0 -1 0 -256] 0.25"
-                       "rotation" "0"
-                       "lightmapscale" "16"
-                       "smoothing_groups" "0"
-                       dispinfo
-                       {
-                               "power" "3"
-                               "startposition" "[320 192 16]"
-                               "flags" "0"
-                               "elevation" "0"
-                               "subdiv" "0"
-                               normals
-                               {
-                                       "row0" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row1" "0 0 0 0 0 0 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row2" "0 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row3" "0 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row4" "0 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1"
-                                       "row5" "0 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1"
-                                       "row6" "0 0 0 0 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1"
-                                       "row7" "0 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row8" "0 0 0 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                               }
-                               distances
-                               {
-                                       "row0" "0 0 0 0 0 0 0 0 0"
-                                       "row1" "0 0 20.492 6.67029 40.2677 54.8914 55.4196 40.4898 16.5796"
-                                       "row2" "0 35.6258 32.521 10.6896 25.3758 44.6682 48.4857 39.0042 30.4379"
-                                       "row3" "0 34.1354 32.1346 16.6924 4.1161 14.0137 20.6763 20.4739 22.8429"
-                                       "row4" "0 21.045 20.8285 9.18505 7.61042 11.4602 10.2189 5.54346 5.10047"
-                                       "row5" "0 8.46279 10.0525 8.8661 16.6208 25.9485 28.0294 24.62 5.91427"
-                                       "row6" "0 0 6.13995 9.43488 13.7057 21.383 18.6234 10.8397 7.20205"
-                                       "row7" "0 2.2387 1.02507 1.71671 2.76542 2.56507 12.4549 18.8342 24.26"
-                                       "row8" "0 0.565658 2.94325 7.90804 9.79556 15.237 28.1327 33.681 31.8214"
-                               }
-                               offsets
-                               {
-                                       "row0" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row1" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row2" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row3" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row4" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row5" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row6" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row7" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row8" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                               }
-                               offset_normals
-                               {
-                                       "row0" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row1" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row2" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row3" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row4" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row5" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row6" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row7" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row8" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                               }
-                               alphas
-                               {
-                                       "row0" "0 0 0 0 0 0 0 0 0"
-                                       "row1" "0 0 0 0 0 0 0 0 0"
-                                       "row2" "0 0 0 0 0 0 0 0 0"
-                                       "row3" "0 0 0 0 0 0 0 0 0"
-                                       "row4" "0 0 0 0 0 0 0 0 0"
-                                       "row5" "0 0 0 0 0 0 0 0 0"
-                                       "row6" "0 0 0 0 0 0 0 0 0"
-                                       "row7" "0 0 0 0 0 0 0 0 0"
-                                       "row8" "0 0 0 0 0 0 0 0 0"
-                               }
-                               triangle_tags
-                               {
-                                       "row0" "9 9 9 9 9 9 9 1 9 1 1 1 1 9 9 9"
-                                       "row1" "9 1 9 9 9 9 9 9 9 9 9 9 9 9 9 9"
-                                       "row2" "9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9"
-                                       "row3" "9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9"
-                                       "row4" "9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9"
-                                       "row5" "9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9"
-                                       "row6" "9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9"
-                                       "row7" "9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9"
-                               }
-                               allowed_verts
-                               {
-                                       "10" "-1 -1 -1 -1 -1 -1 -1 -1 -1 -1"
-                               }
-                       }
-               }
-               side
-               {
-                       "id" "781"
-                       "plane" "(320 656 0) (320 192 0) (832 192 0)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[1 0 0 -256] 0.25"
-                       "vaxis" "[0 -1 0 -256] 0.25"
+                       "id" "1159"
+                       "plane" "(1184 1824 -544) (1184 -1184 -544) (1184 -1184 544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[0 1 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "780"
-                       "plane" "(320 192 0) (320 656 0) (320 656 16)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[0 1 0 256] 0.25"
+                       "id" "1158"
+                       "plane" "(1184 1824 544) (-1440 1824 544) (-1440 1824 -544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -787,10 +716,10 @@ world
                }
                side
                {
-                       "id" "779"
-                       "plane" "(832 656 0) (832 192 0) (832 192 16)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[0 1 0 256] 0.25"
+                       "id" "1157"
+                       "plane" "(1184 -1184 -544) (-1440 -1184 -544) (-1440 -1184 544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -798,204 +727,141 @@ world
                }
                side
                {
-                       "id" "778"
-                       "plane" "(320 656 0) (832 656 0) (832 656 16)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[1 0 0 -256] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "1156"
+                       "plane" "(-1408 1792 512) (1152 1792 512) (1152 -1152 512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "777"
-                       "plane" "(832 192 0) (320 192 0) (320 192 16)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[1 0 0 -256] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "1155"
+                       "plane" "(-1408 -1152 -512) (1152 -1152 -512) (1152 1792 -512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "1154"
+                       "plane" "(1152 -1152 512) (1152 -1152 -512) (1152 1792 -512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[0 1 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                editor
                {
-                       "color" "0 175 128"
-                       "visgroupid" "9"
-                       "visgroupid" "8"
+                       "color" "220 220 220"
+                       "groupid" "2509"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
        solid
        {
-               "id" "1564"
+               "id" "2505"
                side
                {
-                       "id" "806"
-                       "plane" "(472.935 815.35 108.544) (368.933 1263.54 168.59) (797.229 1396.06 -78.6872)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[0.836516 0.258819 -0.482963 343.105] 0.25"
-                       "vaxis" "[0.224144 -0.965926 -0.12941 222.435] 0.25"
-                       "rotation" "0"
-                       "lightmapscale" "16"
-                       "smoothing_groups" "0"
-                       dispinfo
-                       {
-                               "power" "3"
-                               "startposition" "[472.935 815.352 108.543]"
-                               "flags" "0"
-                               "elevation" "0"
-                               "subdiv" "0"
-                               normals
-                               {
-                                       "row0" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row1" "0 0 0 0 0 0 -0.5 0 -0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025"
-                                       "row2" "0 0 0 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025"
-                                       "row3" "0 0 0 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025"
-                                       "row4" "0 0 0 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 0.5 0 0.866025"
-                                       "row5" "0 0 0 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025"
-                                       "row6" "0 0 0 0 0 0 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 0.5 0 0.866025"
-                                       "row7" "0 0 0 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 -0.5 0 -0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025"
-                                       "row8" "0 0 0 -0.5 0 -0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025"
-                               }
-                               distances
-                               {
-                                       "row0" "0 0 0 0 0 0 0 0 0"
-                                       "row1" "0 0 20.492 6.67029 40.2677 54.8914 55.4196 40.4898 16.5796"
-                                       "row2" "0 35.6258 32.521 10.6896 25.3758 44.6682 48.4857 39.0042 30.4379"
-                                       "row3" "0 34.1354 32.1346 16.6924 4.1161 14.0137 20.6763 20.4739 22.8429"
-                                       "row4" "0 21.045 20.8285 9.18505 7.61042 11.4602 10.2189 5.54346 5.10047"
-                                       "row5" "0 8.46279 10.0525 8.8661 16.6208 25.9485 28.0294 24.62 5.91427"
-                                       "row6" "0 0 6.13995 9.43488 13.7057 21.383 18.6234 10.8397 7.20205"
-                                       "row7" "0 2.2387 1.02507 1.71671 2.76542 2.56507 12.4549 18.8342 24.26"
-                                       "row8" "0 0.565658 2.94325 7.90804 9.79556 15.237 28.1327 33.681 31.8214"
-                               }
-                               offsets
-                               {
-                                       "row0" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row1" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row2" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row3" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row4" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row5" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row6" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row7" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row8" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                               }
-                               offset_normals
-                               {
-                                       "row0" "0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025"
-                                       "row1" "0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025"
-                                       "row2" "0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025"
-                                       "row3" "0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025"
-                                       "row4" "0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025"
-                                       "row5" "0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025"
-                                       "row6" "0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025"
-                                       "row7" "0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025"
-                                       "row8" "0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025 0.5 0 0.866025"
-                               }
-                               alphas
-                               {
-                                       "row0" "0 0 0 0 0 0 0 0 0"
-                                       "row1" "0 0 0 0 0 0 0 0 0"
-                                       "row2" "0 0 0 0 0 0 0 0 0"
-                                       "row3" "0 0 0 0 0 0 0 0 0"
-                                       "row4" "0 0 0 0 0 0 0 0 0"
-                                       "row5" "0 0 0 0 0 0 0 0 0"
-                                       "row6" "0 0 0 0 0 0 0 0 0"
-                                       "row7" "0 0 0 0 0 0 0 0 0"
-                                       "row8" "0 0 0 0 0 0 0 0 0"
-                               }
-                               triangle_tags
-                               {
-                                       "row0" "9 9 9 0 9 9 9 1 1 0 0 0 0 0 0 0"
-                                       "row1" "9 0 9 0 9 9 9 9 9 9 9 9 1 1 1 0"
-                                       "row2" "0 0 9 9 9 9 9 9 9 9 9 9 9 1 1 9"
-                                       "row3" "0 0 9 9 9 9 9 9 9 9 9 9 9 9 9 9"
-                                       "row4" "1 0 9 9 9 9 9 9 1 9 9 9 9 9 9 9"
-                                       "row5" "1 9 1 9 9 9 9 1 1 1 9 9 9 9 9 9"
-                                       "row6" "9 9 9 9 9 9 9 9 9 0 1 1 1 1 9 9"
-                                       "row7" "9 9 9 9 9 9 9 9 9 9 9 9 9 9 1 9"
-                               }
-                               allowed_verts
-                               {
-                                       "10" "-1 -1 -1 -1 -1 -1 -1 -1 -1 -1"
-                               }
-                       }
-               }
-               side
-               {
-                       "id" "805"
-                       "plane" "(360.933 1263.54 154.733) (464.935 815.35 94.6874) (893.232 947.865 -152.59)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[0.836516 0.258819 -0.482963 343.105] 0.25"
-                       "vaxis" "[0.224144 -0.965926 -0.12941 222.435] 0.25"
+                       "id" "1165"
+                       "plane" "(1184 1824 544) (-1440 1824 544) (-1440 1824 -544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "804"
-                       "plane" "(464.935 815.35 94.6874) (360.933 1263.54 154.733) (368.933 1263.54 168.59)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[-0.224144 0.965926 0.12941 -222.435] 0.25"
-                       "vaxis" "[-0.5 0 -0.866025 233.877] 0.25"
+                       "id" "1164"
+                       "plane" "(-1408 1792 512) (1152 1792 512) (1152 -1152 512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "803"
-                       "plane" "(789.229 1396.06 -92.5436) (893.232 947.865 -152.59) (901.232 947.865 -138.733)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[-0.224144 0.965926 0.12941 -222.435] 0.25"
-                       "vaxis" "[-0.5 0 -0.866025 233.877] 0.25"
+                       "id" "1163"
+                       "plane" "(-1408 -1152 -512) (1152 -1152 -512) (1152 1792 -512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "802"
-                       "plane" "(360.933 1263.54 154.733) (789.229 1396.06 -92.5436) (797.229 1396.06 -78.6872)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[0.836516 0.258819 -0.482963 343.105] 0.25"
-                       "vaxis" "[-0.5 0 -0.866025 233.877] 0.25"
+                       "id" "1162"
+                       "plane" "(-1408 1792 512) (-1408 -1152 512) (-1408 -1152 -512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[0 1 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "801"
-                       "plane" "(893.232 947.865 -152.59) (464.935 815.35 94.6874) (472.935 815.35 108.544)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[0.836516 0.258819 -0.482963 343.105] 0.25"
-                       "vaxis" "[-0.5 0 -0.866025 233.877] 0.25"
+                       "id" "1161"
+                       "plane" "(1152 1792 -512) (1152 -1152 -512) (1152 -1152 512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[0 1 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "1160"
+                       "plane" "(-1408 1792 -512) (-1408 1792 512) (1152 1792 512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                editor
                {
-                       "color" "0 175 128"
-                       "visgroupid" "9"
-                       "visgroupid" "8"
+                       "color" "220 220 220"
+                       "groupid" "2509"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
        solid
        {
-               "id" "1466"
+               "id" "2507"
                side
                {
-                       "id" "746"
-                       "plane" "(0 896 16) (0 640 16) (128 640 16)"
-                       "material" "TOOLS/TOOLSNODRAW"
+                       "id" "1171"
+                       "plane" "(1184 -1184 -544) (-1440 -1184 -544) (-1440 -1184 544)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "1170"
+                       "plane" "(-1408 1792 512) (1152 1792 512) (1152 -1152 512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
                        "uaxis" "[1 0 0 0] 0.25"
                        "vaxis" "[0 -1 0 0] 0.25"
                        "rotation" "0"
@@ -1004,20 +870,20 @@ world
                }
                side
                {
-                       "id" "745"
-                       "plane" "(0 640 16) (0 896 16) (0 896 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 128] 0.25"
-                       "vaxis" "[0 0 -1 -384] 0.25"
+                       "id" "1169"
+                       "plane" "(-1408 -1152 -512) (1152 -1152 -512) (1152 1792 -512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "744"
-                       "plane" "(128 896 16) (128 640 16) (128 896 128)"
-                       "material" "TOOLS/TOOLSNODRAW"
+                       "id" "1168"
+                       "plane" "(-1408 1792 512) (-1408 -1152 512) (-1408 -1152 -512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
                        "uaxis" "[0 1 0 0] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
@@ -1026,10 +892,10 @@ world
                }
                side
                {
-                       "id" "743"
-                       "plane" "(0 896 16) (128 896 16) (128 896 128)"
-                       "material" "TOOLS/TOOLSNODRAW"
-                       "uaxis" "[1 0 0 0] 0.25"
+                       "id" "1167"
+                       "plane" "(1152 1792 -512) (1152 -1152 -512) (1152 -1152 512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[0 1 0 0] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1037,138 +903,43 @@ world
                }
                side
                {
-                       "id" "742"
-                       "plane" "(128 640 16) (0 640 16) (0 896 128)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
-                       "vaxis" "[0 -1 0 -384] 0.25"
+                       "id" "1166"
+                       "plane" "(-1408 -1152 512) (-1408 -1152 -512) (1152 -1152 -512)"
+                       "material" "TOOLS/TOOLSSKYBOX"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                editor
                {
-                       "color" "0 245 134"
-                       "visgroupid" "9"
-                       "visgroupid" "8"
+                       "color" "220 220 220"
+                       "groupid" "2509"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
        solid
        {
-               "id" "1526"
+               "id" "1873"
                side
                {
-                       "id" "770"
-                       "plane" "(944 112 16) (944 704 16) (1392 704 16)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[1 0 0 -192] 0.25"
-                       "vaxis" "[0 -1 0 -64] 0.25"
-                       "rotation" "0"
-                       "lightmapscale" "16"
-                       "smoothing_groups" "0"
-                       dispinfo
-                       {
-                               "power" "3"
-                               "startposition" "[944 112 16]"
-                               "flags" "0"
-                               "elevation" "0"
-                               "subdiv" "0"
-                               normals
-                               {
-                                       "row0" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row1" "0 0 0 0 0 0 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row2" "0 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row3" "0 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row4" "0 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1"
-                                       "row5" "0 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1"
-                                       "row6" "0 0 0 0 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1"
-                                       "row7" "0 0 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row8" "0 0 0 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                               }
-                               distances
-                               {
-                                       "row0" "0 0 0 0 0 0 0 0 0"
-                                       "row1" "0 0 20.492 6.67029 40.2677 54.8914 55.4196 40.4898 16.5796"
-                                       "row2" "0 35.6258 32.521 10.6896 25.3758 44.6682 48.4857 39.0042 30.4379"
-                                       "row3" "0 34.1354 32.1346 16.6924 4.1161 14.0137 20.6763 20.4739 22.8429"
-                                       "row4" "0 21.045 20.8285 9.18505 7.61042 11.4602 10.2189 5.54346 5.10047"
-                                       "row5" "0 8.46279 10.0525 8.8661 16.6208 25.9485 28.0294 24.62 5.91427"
-                                       "row6" "0 0 6.13995 9.43488 13.7057 21.383 18.6234 10.8397 7.20205"
-                                       "row7" "0 2.2387 1.02507 1.71671 2.76542 2.56507 12.4549 18.8342 24.26"
-                                       "row8" "0 0.565658 2.94325 7.90804 9.79556 15.237 28.1327 33.681 31.8214"
-                               }
-                               offsets
-                               {
-                                       "row0" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row1" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row2" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row3" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row4" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row5" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row6" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row7" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                                       "row8" "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-                               }
-                               offset_normals
-                               {
-                                       "row0" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row1" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row2" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row3" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row4" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row5" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row6" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row7" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                                       "row8" "0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1"
-                               }
-                               alphas
-                               {
-                                       "row0" "0 0 0 0 0 0 0 0 0"
-                                       "row1" "0 0 0 0 0 0 0 0 0"
-                                       "row2" "0 0 0 0 0 0 0 0 0"
-                                       "row3" "0 0 0 0 0 0 0 0 0"
-                                       "row4" "0 0 0 0 0 0 0 0 0"
-                                       "row5" "0 0 0 0 0 0 0 0 0"
-                                       "row6" "0 0 0 0 0 0 0 0 0"
-                                       "row7" "0 0 0 0 0 0 0 0 0"
-                                       "row8" "0 0 0 0 0 0 0 0 0"
-                               }
-                               triangle_tags
-                               {
-                                       "row0" "9 9 9 9 9 9 9 1 9 9 9 9 1 9 9 9"
-                                       "row1" "9 1 9 9 9 9 9 9 9 9 9 9 9 9 9 9"
-                                       "row2" "9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9"
-                                       "row3" "9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9"
-                                       "row4" "9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9"
-                                       "row5" "9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9"
-                                       "row6" "9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9"
-                                       "row7" "9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9"
-                               }
-                               allowed_verts
-                               {
-                                       "10" "-1 -1 -1 -1 -1 -1 -1 -1 -1 -1"
-                               }
-                       }
-               }
-               side
-               {
-                       "id" "769"
-                       "plane" "(944 704 0) (944 112 0) (1392 112 0)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[1 0 0 -192] 0.25"
-                       "vaxis" "[0 -1 0 -64] 0.25"
+                       "id" "1003"
+                       "plane" "(256 640 -192) (256 128 -192) (512 128 -192)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 -1 0 128] 0.25"
+                       "vaxis" "[-1 0 0 128] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "768"
-                       "plane" "(944 112 0) (944 704 0) (944 704 16)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[0 1 0 64] 0.25"
+                       "id" "1002"
+                       "plane" "(512 128 16) (512 128 -192) (256 128 -192)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 -128] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1176,10 +947,10 @@ world
                }
                side
                {
-                       "id" "767"
-                       "plane" "(1392 704 0) (1392 112 0) (1392 112 16)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[0 1 0 64] 0.25"
+                       "id" "1001"
+                       "plane" "(512 640 -192) (512 128 -192) (512 128 16)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 -1 0 128] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1187,10 +958,10 @@ world
                }
                side
                {
-                       "id" "766"
-                       "plane" "(944 704 0) (1392 704 0) (1392 704 16)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[1 0 0 -192] 0.25"
+                       "id" "1000"
+                       "plane" "(256 128 16) (256 128 -192) (256 640 -192)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 -1 0 128] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1198,18 +969,18 @@ world
                }
                side
                {
-                       "id" "765"
-                       "plane" "(1392 112 0) (944 112 0) (944 112 16)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[1 0 0 -192] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "999"
+                       "plane" "(512 128 16) (256 128 16) (256 640 -192)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 -1 0 0] 0.25"
+                       "vaxis" "[-1 0 0 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                editor
                {
-                       "color" "0 175 128"
+                       "color" "0 175 108"
                        "visgroupid" "9"
                        "visgroupid" "8"
                        "visgroupshown" "1"
@@ -1218,69 +989,69 @@ world
        }
        solid
        {
-               "id" "537"
+               "id" "1941"
                side
                {
-                       "id" "621"
-                       "plane" "(-181.023 650.508 64) (-90.5117 741.02 64) (0 650.516 64)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[0.707107 -0.707107 0 -80.0811] 0.25"
-                       "vaxis" "[-0.707107 -0.707107 0 47.9191] 0.25"
+                       "id" "1039"
+                       "plane" "(-832 640 -192) (-832 1216 -192) (512 1216 -192)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 -128] 0.25"
+                       "vaxis" "[0 -1 0 384] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "620"
-                       "plane" "(-90.5039 741.027 16) (-181.02 650.511 16) (-90.5117 560 16)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[0.707107 -0.707107 0 -80.0811] 0.25"
-                       "vaxis" "[-0.707107 -0.707107 0 47.9191] 0.25"
+                       "id" "1038"
+                       "plane" "(-832 1216 -320) (-832 640 -320) (512 640 -320)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 -128] 0.25"
+                       "vaxis" "[0 -1 0 384] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "619"
-                       "plane" "(-181.02 650.508 16) (-90.5117 741.016 16) (-90.5117 741.02 64)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[0.707107 0.707107 0 -47.9191] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "1037"
+                       "plane" "(-832 640 -320) (-832 1216 -320) (-832 1216 -192)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 1 0 -384] 0.25"
+                       "vaxis" "[0 0 -1 256] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "618"
-                       "plane" "(0 650.508 16) (-90.5085 560 16) (-90.5078 560 64)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[0.707107 0.707107 0 -47.9191] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "1036"
+                       "plane" "(512 1216 -320) (512 640 -320) (512 640 -192)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 1 0 -384] 0.25"
+                       "vaxis" "[0 0 -1 256] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "617"
-                       "plane" "(-90.5117 741.02 16) (0 650.509 16) (0 650.508 64)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[0.707107 -0.707107 0 -80.0811] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "1035"
+                       "plane" "(-832 1216 -320) (512 1216 -320) (512 1216 -192)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 -128] 0.25"
+                       "vaxis" "[0 0 -1 256] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "616"
-                       "plane" "(-90.5078 560 16) (-181.02 650.512 16) (-181.02 650.508 64)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[0.707107 -0.707107 0 -80.0811] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "1034"
+                       "plane" "(512 640 -320) (-832 640 -320) (-832 640 -192)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 -128] 0.25"
+                       "vaxis" "[0 0 -1 256] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
@@ -1288,43 +1059,42 @@ world
                editor
                {
                        "color" "0 175 108"
-                       "visgroupid" "16"
-                       "visgroupid" "9"
+                       "visgroupid" "8"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
        solid
        {
-               "id" "540"
+               "id" "1759"
                side
                {
-                       "id" "633"
-                       "plane" "(-64 704 64) (-64 768 64) (0 768 64)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[1 0 0 0] 0.25"
-                       "vaxis" "[0 -1 0 0] 0.25"
+                       "id" "866"
+                       "plane" "(-256 128 128) (-256 5.59505e-06 128) (-384 -5.59506e-06 128)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[-1 0 0 -384] 0.25"
+                       "vaxis" "[0 1 0 -384] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "632"
-                       "plane" "(-64 768 16) (-64 704 16) (0 704 16)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[1 0 0 0] 0.25"
-                       "vaxis" "[0 -1 0 0] 0.25"
+                       "id" "865"
+                       "plane" "(-256 5.59505e-06 0) (-256 128 0) (-384 128 0)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[-1 0 0 -384] 0.25"
+                       "vaxis" "[0 1 0 -384] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "631"
-                       "plane" "(-64 704 16) (-64 768 16) (-64 768 64)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[0 1 0 0] 0.25"
+                       "id" "864"
+                       "plane" "(-256 128 0) (-256 5.59505e-06 0) (-256 5.59505e-06 128)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 -1 0 384] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1332,10 +1102,10 @@ world
                }
                side
                {
-                       "id" "630"
-                       "plane" "(0 768 16) (0 704 16) (0 704 64)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[0 1 0 0] 0.25"
+                       "id" "863"
+                       "plane" "(-384 -5.59506e-06 0) (-384 128 0) (-384 128 128)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 -1 0 384] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1343,10 +1113,10 @@ world
                }
                side
                {
-                       "id" "629"
-                       "plane" "(-64 768 16) (0 768 16) (0 768 64)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[1 0 0 0] 0.25"
+                       "id" "862"
+                       "plane" "(-256 5.59505e-06 0) (-384 -5.59506e-06 0) (-384 -5.59506e-06 128)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[-1 0 0 -384] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1354,10 +1124,10 @@ world
                }
                side
                {
-                       "id" "628"
-                       "plane" "(0 704 16) (-64 704 16) (-64 704 64)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[1 0 0 0] 0.25"
+                       "id" "861"
+                       "plane" "(-384 128 0) (-256 128 0) (-256 128 128)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[-1 0 0 -384] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1366,21 +1136,21 @@ world
                editor
                {
                        "color" "0 175 108"
-                       "visgroupid" "16"
                        "visgroupid" "9"
+                       "visgroupid" "8"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
        solid
        {
-               "id" "575"
+               "id" "1792"
                side
                {
-                       "id" "681"
-                       "plane" "(128 7.62939e-05 128) (128 896 128) (256 896 128)"
+                       "id" "890"
+                       "plane" "(256 -512 128) (256 -256 128) (512 -256 128)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
+                       "uaxis" "[1 0 0 -384] 0.25"
                        "vaxis" "[0 -1 0 -384] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1388,10 +1158,10 @@ world
                }
                side
                {
-                       "id" "680"
-                       "plane" "(128 896 0) (128 7.62939e-05 0) (256 7.62939e-05 0)"
+                       "id" "889"
+                       "plane" "(256 -256 0) (256 -512 0) (512 -512 0)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
+                       "uaxis" "[1 0 0 -384] 0.25"
                        "vaxis" "[0 -1 0 -384] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1399,8 +1169,8 @@ world
                }
                side
                {
-                       "id" "679"
-                       "plane" "(128 7.62939e-05 0) (128 896 0) (128 896 128)"
+                       "id" "888"
+                       "plane" "(256 -512 0) (256 -256 0) (256 -256 128)"
                        "material" "TERRI/DEV/BSP"
                        "uaxis" "[0 1 0 384] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
@@ -1410,8 +1180,8 @@ world
                }
                side
                {
-                       "id" "678"
-                       "plane" "(256 896 0) (256 7.62939e-05 0) (256 7.62939e-05 128)"
+                       "id" "887"
+                       "plane" "(512 -256 0) (512 -512 0) (512 -512 128)"
                        "material" "TERRI/DEV/BSP"
                        "uaxis" "[0 1 0 384] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
@@ -1421,10 +1191,10 @@ world
                }
                side
                {
-                       "id" "677"
-                       "plane" "(128 896 0) (256 896 0) (256 896 128)"
+                       "id" "886"
+                       "plane" "(256 -256 0) (512 -256 0) (512 -256 128)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
+                       "uaxis" "[1 0 0 -384] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1432,10 +1202,10 @@ world
                }
                side
                {
-                       "id" "676"
-                       "plane" "(256 7.62939e-05 0) (128 7.62939e-05 0) (128 7.62939e-05 128)"
+                       "id" "885"
+                       "plane" "(512 -512 0) (256 -512 0) (256 -512 128)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
+                       "uaxis" "[1 0 0 -384] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1452,69 +1222,58 @@ world
        }
        solid
        {
-               "id" "586"
-               side
-               {
-                       "id" "693"
-                       "plane" "(-128 660.286 96) (-107.714 703.789 96) (-64.2115 683.503 96)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[0.906308 -0.422618 0 108.225] 0.25"
-                       "vaxis" "[-0.422618 -0.906308 0 1.30804] 0.25"
-                       "rotation" "0"
-                       "lightmapscale" "16"
-                       "smoothing_groups" "0"
-               }
+               "id" "1810"
                side
                {
-                       "id" "692"
-                       "plane" "(-107.714 703.789 64) (-128 660.286 64) (-84.4972 640 64)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[0.906308 -0.422618 0 108.225] 0.25"
-                       "vaxis" "[-0.422618 -0.906308 0 1.30804] 0.25"
+                       "id" "907"
+                       "plane" "(0 -256 0) (0 -512 0) (256 -512 0)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 128] 0.25"
+                       "vaxis" "[0 -1 0 -384] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "691"
-                       "plane" "(-128 660.286 64) (-107.714 703.789 64) (-107.714 703.789 96)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[0.422618 0.906308 0 -1.30804] 0.25"
-                       "vaxis" "[0 0 -1 64] 0.25"
+                       "id" "906"
+                       "plane" "(256 -256 0) (256 -512 0) (256 -512 128)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 1 0 384] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "690"
-                       "plane" "(-64.2115 683.503 64) (-84.4972 640 64) (-84.4972 640 96)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[0.422618 0.906308 0 -1.30804] 0.25"
-                       "vaxis" "[0 0 -1 64] 0.25"
+                       "id" "905"
+                       "plane" "(0 -256 0) (256 -256 0) (256 -256 128)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "689"
-                       "plane" "(-107.714 703.789 64) (-64.2115 683.503 64) (-64.2115 683.503 96)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[0.906308 -0.422618 0 108.225] 0.25"
-                       "vaxis" "[0 0 -1 64] 0.25"
+                       "id" "904"
+                       "plane" "(256 -512 0) (0 -512 0) (256 -512 128)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "688"
-                       "plane" "(-84.4972 640 64) (-128 660.286 64) (-128 660.286 96)"
-                       "material" "RYAN_DEV/PURE_ORANGE2"
-                       "uaxis" "[0.906308 -0.422618 0 108.225] 0.25"
-                       "vaxis" "[0 0 -1 64] 0.25"
+                       "id" "903"
+                       "plane" "(0 -512 0) (0 -256 0) (256 -256 128)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
@@ -1522,43 +1281,43 @@ world
                editor
                {
                        "color" "0 175 108"
-                       "visgroupid" "16"
                        "visgroupid" "9"
+                       "visgroupid" "8"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
        solid
        {
-               "id" "662"
+               "id" "1817"
                side
                {
-                       "id" "699"
-                       "plane" "(-224 896 32) (-224 1024 32) (-192 1024 32)"
+                       "id" "919"
+                       "plane" "(-256 0 128) (-256 128 128) (128 128 128)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 384] 0.25"
-                       "vaxis" "[0 -1 0 128] 0.25"
+                       "uaxis" "[1 0 0 128] 0.25"
+                       "vaxis" "[0 -1 0 -448] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "698"
-                       "plane" "(-224 1024 16) (-224 1024 32) (-224 896 32)"
+                       "id" "918"
+                       "plane" "(-256 128 112) (-256 0 112) (128 0 112)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 -128] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "uaxis" "[1 0 0 128] 0.25"
+                       "vaxis" "[0 -1 0 -448] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "697"
-                       "plane" "(-192 896 16) (-192 896 32) (-192 1024 32)"
+                       "id" "917"
+                       "plane" "(-256 0 112) (-256 128 112) (-256 128 128)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 -128] 0.25"
+                       "uaxis" "[0 1 0 448] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1566,10 +1325,10 @@ world
                }
                side
                {
-                       "id" "696"
-                       "plane" "(-192 1024 16) (-192 1024 32) (-224 1024 32)"
+                       "id" "916"
+                       "plane" "(128 128 112) (128 0 112) (128 0 128)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 384] 0.25"
+                       "uaxis" "[0 1 0 448] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1577,10 +1336,10 @@ world
                }
                side
                {
-                       "id" "695"
-                       "plane" "(-224 896 16) (-224 896 32) (-192 896 32)"
+                       "id" "915"
+                       "plane" "(-256 128 112) (128 128 112) (128 128 128)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 384] 0.25"
+                       "uaxis" "[1 0 0 128] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1588,11 +1347,11 @@ world
                }
                side
                {
-                       "id" "694"
-                       "plane" "(-224 1024 16) (-224 896 16) (-192 896 16)"
+                       "id" "914"
+                       "plane" "(128 0 112) (-256 0 112) (-256 0 128)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 0] 0.25"
-                       "vaxis" "[0 -1 0 0] 0.25"
+                       "uaxis" "[1 0 0 128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
@@ -1600,43 +1359,31 @@ world
                editor
                {
                        "color" "0 175 108"
-                       "visgroupid" "9"
-                       "visgroupid" "8"
+                       "visgroupid" "17"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
        solid
        {
-               "id" "663"
-               side
-               {
-                       "id" "705"
-                       "plane" "(-192 896 48) (-192 1024 48) (-160 1024 48)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 256] 0.25"
-                       "vaxis" "[0 -1 0 128] 0.25"
-                       "rotation" "0"
-                       "lightmapscale" "16"
-                       "smoothing_groups" "0"
-               }
+               "id" "1819"
                side
                {
-                       "id" "704"
-                       "plane" "(-192 1024 16) (-192 1024 48) (-192 896 48)"
+                       "id" "929"
+                       "plane" "(-256 -128 0) (-256 5.59505e-06 0) (-384 -5.59506e-06 0)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 -128] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "uaxis" "[0 1 0 -384] 0.25"
+                       "vaxis" "[1 0 0 128] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "703"
-                       "plane" "(-160 896 16) (-160 896 48) (-160 1024 48)"
+                       "id" "928"
+                       "plane" "(-384 -5.59506e-06 128) (-384 -5.59506e-06 0) (-256 5.59505e-06 0)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 -128] 0.25"
+                       "uaxis" "[-1 0 0 -128] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1644,10 +1391,10 @@ world
                }
                side
                {
-                       "id" "702"
-                       "plane" "(-160 1024 16) (-160 1024 48) (-192 1024 48)"
+                       "id" "927"
+                       "plane" "(-384 -128 0) (-384 -5.59506e-06 0) (-384 -5.59506e-06 128)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 256] 0.25"
+                       "uaxis" "[0 1 0 -384] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1655,10 +1402,10 @@ world
                }
                side
                {
-                       "id" "701"
-                       "plane" "(-192 896 16) (-192 896 48) (-160 896 48)"
+                       "id" "926"
+                       "plane" "(-256 5.59505e-06 128) (-256 5.59505e-06 0) (-256 -128 0)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 256] 0.25"
+                       "uaxis" "[0 1 0 -384] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1666,11 +1413,11 @@ world
                }
                side
                {
-                       "id" "700"
-                       "plane" "(-192 1024 16) (-192 896 16) (-160 896 16)"
+                       "id" "925"
+                       "plane" "(-256 -128 0) (-384 -128 0) (-384 -5.59506e-06 128)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 0] 0.25"
-                       "vaxis" "[0 -1 0 0] 0.25"
+                       "uaxis" "[0 1 0 0] 0.25"
+                       "vaxis" "[1 0 0 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
@@ -1686,35 +1433,35 @@ world
        }
        solid
        {
-               "id" "664"
+               "id" "1466"
                side
                {
-                       "id" "711"
-                       "plane" "(-160 896 64) (-160 1024 64) (-128 1024 64)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
-                       "vaxis" "[0 -1 0 128] 0.25"
+                       "id" "746"
+                       "plane" "(0 896 16) (0 640 16) (128 640 16)"
+                       "material" "TOOLS/TOOLSNODRAW"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "710"
-                       "plane" "(-160 1024 16) (-160 1024 64) (-160 896 64)"
+                       "id" "745"
+                       "plane" "(0 640 16) (0 896 16) (0 896 128)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 -128] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "uaxis" "[0 1 0 128] 0.25"
+                       "vaxis" "[0 0 -1 -384] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "709"
-                       "plane" "(-128 896 16) (-128 896 64) (-128 1024 64)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 -128] 0.25"
+                       "id" "744"
+                       "plane" "(128 896 16) (128 640 16) (128 896 128)"
+                       "material" "TOOLS/TOOLSNODRAW"
+                       "uaxis" "[0 1 0 0] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1722,10 +1469,10 @@ world
                }
                side
                {
-                       "id" "708"
-                       "plane" "(-128 1024 16) (-128 1024 64) (-160 1024 64)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 128] 0.25"
+                       "id" "743"
+                       "plane" "(0 896 16) (128 896 16) (128 896 128)"
+                       "material" "TOOLS/TOOLSNODRAW"
+                       "uaxis" "[1 0 0 0] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1733,29 +1480,18 @@ world
                }
                side
                {
-                       "id" "707"
-                       "plane" "(-160 896 16) (-160 896 64) (-128 896 64)"
+                       "id" "742"
+                       "plane" "(128 640 16) (0 640 16) (0 896 128)"
                        "material" "TERRI/DEV/BSP"
                        "uaxis" "[1 0 0 128] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
-                       "rotation" "0"
-                       "lightmapscale" "16"
-                       "smoothing_groups" "0"
-               }
-               side
-               {
-                       "id" "706"
-                       "plane" "(-160 1024 16) (-160 896 16) (-128 896 16)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 0] 0.25"
-                       "vaxis" "[0 -1 0 0] 0.25"
+                       "vaxis" "[0 -1 0 -384] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                editor
                {
-                       "color" "0 175 108"
+                       "color" "0 245 134"
                        "visgroupid" "9"
                        "visgroupid" "8"
                        "visgroupshown" "1"
@@ -1764,35 +1500,35 @@ world
        }
        solid
        {
-               "id" "665"
+               "id" "537"
                side
                {
-                       "id" "717"
-                       "plane" "(-96 896 96) (-96 1024 96) (-64 1024 96)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 384] 0.25"
-                       "vaxis" "[0 -1 0 128] 0.25"
+                       "id" "621"
+                       "plane" "(0 767.992 64) (-128.003 767.992 64) (-128.011 895.992 64)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[0 1 0 -127.985] 0.25"
+                       "vaxis" "[1 0 0 -127.972] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "716"
-                       "plane" "(-96 1024 16) (-96 1024 96) (-96 896 96)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 -128] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "620"
+                       "plane" "(-128.008 767.997 16) (-0.00814819 767.997 16) (-0.00830078 895.997 16)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[0 1 0 -127.985] 0.25"
+                       "vaxis" "[1 0 0 -127.972] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "715"
-                       "plane" "(-64 896 16) (-64 896 96) (-64 1024 96)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 -128] 0.25"
+                       "id" "619"
+                       "plane" "(-0.0055542 767.997 16) (-128.003 767.997 16) (-128.003 767.992 64)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-1 0 0 127.972] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1800,10 +1536,10 @@ world
                }
                side
                {
-                       "id" "714"
-                       "plane" "(-64 1024 16) (-64 1024 96) (-96 1024 96)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 384] 0.25"
+                       "id" "618"
+                       "plane" "(-128.008 895.994 16) (-0.00674438 895.996 16) (-0.0055542 895.994 64)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-1 0 0 127.972] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1811,10 +1547,10 @@ world
                }
                side
                {
-                       "id" "713"
-                       "plane" "(-96 896 16) (-96 896 96) (-64 896 96)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 384] 0.25"
+                       "id" "617"
+                       "plane" "(-128.006 767.994 16) (-128.006 895.997 16) (-128.006 895.997 64)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[0 1 0 -127.985] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1822,11 +1558,11 @@ world
                }
                side
                {
-                       "id" "712"
-                       "plane" "(-96 1024 16) (-96 896 16) (-64 896 16)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 0] 0.25"
-                       "vaxis" "[0 -1 0 0] 0.25"
+                       "id" "616"
+                       "plane" "(-0.0055542 895.994 16) (-0.00552368 767.992 16) (0 767.992 64)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[0 1 0 -127.985] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
@@ -1834,43 +1570,43 @@ world
                editor
                {
                        "color" "0 175 108"
+                       "visgroupid" "16"
                        "visgroupid" "9"
-                       "visgroupid" "8"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
        solid
        {
-               "id" "666"
+               "id" "540"
                side
                {
-                       "id" "723"
-                       "plane" "(-128 896 80) (-128 1024 80) (-96 1024 80)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 0] 0.25"
-                       "vaxis" "[0 -1 0 128] 0.25"
+                       "id" "633"
+                       "plane" "(-120.576 812.918 64) (-165.83 767.663 64) (-211.085 812.918 64)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.707107 0.707107 0 -80.3177] 0.25"
+                       "vaxis" "[0.707107 0.707107 0 -38.24] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "722"
-                       "plane" "(-128 1024 16) (-128 1024 80) (-128 896 80)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 -128] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "632"
+                       "plane" "(-165.83 767.663 16) (-120.576 812.918 16) (-165.83 858.173 16)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.707107 0.707107 0 -80.3177] 0.25"
+                       "vaxis" "[0.707107 0.707107 0 -38.24] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "721"
-                       "plane" "(-96 896 16) (-96 896 80) (-96 1024 80)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 -128] 0.25"
+                       "id" "631"
+                       "plane" "(-120.576 812.918 16) (-165.83 767.663 16) (-165.83 767.663 64)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.707107 -0.707107 0 38.24] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1878,10 +1614,10 @@ world
                }
                side
                {
-                       "id" "720"
-                       "plane" "(-96 1024 16) (-96 1024 80) (-128 1024 80)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 0] 0.25"
+                       "id" "630"
+                       "plane" "(-211.085 812.918 16) (-165.83 858.173 16) (-165.83 858.173 64)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.707107 -0.707107 0 38.24] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1889,10 +1625,10 @@ world
                }
                side
                {
-                       "id" "719"
-                       "plane" "(-128 896 16) (-128 896 80) (-96 896 80)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 0] 0.25"
+                       "id" "629"
+                       "plane" "(-165.83 767.663 16) (-211.085 812.918 16) (-211.085 812.918 64)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.707107 0.707107 0 -80.3177] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1900,11 +1636,11 @@ world
                }
                side
                {
-                       "id" "718"
-                       "plane" "(-128 1024 16) (-128 896 16) (-96 896 16)"
-                       "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 0] 0.25"
-                       "vaxis" "[0 -1 0 0] 0.25"
+                       "id" "628"
+                       "plane" "(-165.83 858.173 16) (-120.576 812.918 16) (-120.576 812.918 64)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.707107 0.707107 0 -80.3177] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
@@ -1912,43 +1648,43 @@ world
                editor
                {
                        "color" "0 175 108"
+                       "visgroupid" "16"
                        "visgroupid" "9"
-                       "visgroupid" "8"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
        solid
        {
-               "id" "667"
+               "id" "575"
                side
                {
-                       "id" "729"
-                       "plane" "(-64 896 112) (-64 1024 112) (-32 1024 112)"
+                       "id" "681"
+                       "plane" "(128 7.62939e-05 128) (128 896 128) (256 896 128)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 256] 0.25"
-                       "vaxis" "[0 -1 0 128] 0.25"
+                       "uaxis" "[1 0 0 128] 0.25"
+                       "vaxis" "[0 -1 0 -384] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "728"
-                       "plane" "(-64 1024 16) (-64 1024 112) (-64 896 112)"
+                       "id" "680"
+                       "plane" "(128 896 0) (128 7.62939e-05 0) (256 7.62939e-05 0)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 -128] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "uaxis" "[1 0 0 128] 0.25"
+                       "vaxis" "[0 -1 0 -384] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "727"
-                       "plane" "(-32 896 16) (-32 896 112) (-32 1024 112)"
+                       "id" "679"
+                       "plane" "(128 7.62939e-05 0) (128 896 0) (128 896 128)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[0 1 0 -128] 0.25"
+                       "uaxis" "[0 1 0 384] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1956,10 +1692,10 @@ world
                }
                side
                {
-                       "id" "726"
-                       "plane" "(-32 1024 16) (-32 1024 112) (-64 1024 112)"
+                       "id" "678"
+                       "plane" "(256 896 0) (256 7.62939e-05 0) (256 7.62939e-05 128)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 256] 0.25"
+                       "uaxis" "[0 1 0 384] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1967,10 +1703,10 @@ world
                }
                side
                {
-                       "id" "725"
-                       "plane" "(-64 896 16) (-64 896 112) (-32 896 112)"
+                       "id" "677"
+                       "plane" "(128 896 0) (256 896 0) (256 896 128)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 256] 0.25"
+                       "uaxis" "[1 0 0 128] 0.25"
                        "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
@@ -1978,11 +1714,11 @@ world
                }
                side
                {
-                       "id" "724"
-                       "plane" "(-64 1024 16) (-64 896 16) (-32 896 16)"
+                       "id" "676"
+                       "plane" "(256 7.62939e-05 0) (128 7.62939e-05 0) (128 7.62939e-05 128)"
                        "material" "TERRI/DEV/BSP"
-                       "uaxis" "[1 0 0 0] 0.25"
-                       "vaxis" "[0 -1 0 0] 0.25"
+                       "uaxis" "[1 0 0 128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
@@ -1998,11 +1734,557 @@ world
        }
        solid
        {
-               "id" "668"
+               "id" "586"
                side
                {
-                       "id" "735"
-                       "plane" "(-32 896 128) (-32 1024 128) (256 1024 128)"
+                       "id" "693"
+                       "plane" "(-44.4096 798.574 96) (-89.5167 782.157 96) (-105.931 827.264 96)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.34202 0.939693 0 -54.4103] 0.25"
+                       "vaxis" "[0.939693 0.34202 0 -29.5875] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "692"
+                       "plane" "(-89.5167 782.157 64) (-44.4099 798.574 64) (-60.8264 843.678 64)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.34202 0.939693 0 -54.4103] 0.25"
+                       "vaxis" "[0.939693 0.34202 0 -29.5875] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "691"
+                       "plane" "(-44.4124 798.571 64) (-89.5153 782.156 64) (-89.5153 782.156 96)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.939693 -0.34202 0 29.5875] 0.25"
+                       "vaxis" "[0 0 -1 64] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "690"
+                       "plane" "(-105.933 827.261 64) (-60.8271 843.679 64) (-60.8277 843.68 96)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.939693 -0.34202 0 29.5875] 0.25"
+                       "vaxis" "[0 0 -1 64] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "689"
+                       "plane" "(-89.5167 782.154 64) (-105.934 827.261 64) (-105.933 827.261 96)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.34202 0.939693 0 -54.4103] 0.25"
+                       "vaxis" "[0 0 -1 64] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "688"
+                       "plane" "(-60.8277 843.68 64) (-44.4096 798.574 64) (-44.4096 798.574 96)"
+                       "material" "RYAN_DEV/PURE_ORANGE2"
+                       "uaxis" "[-0.34202 0.939693 0 -54.4103] 0.25"
+                       "vaxis" "[0 0 -1 64] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               editor
+               {
+                       "color" "0 175 108"
+                       "visgroupid" "16"
+                       "visgroupid" "9"
+                       "visgroupshown" "1"
+                       "visgroupautoshown" "1"
+               }
+       }
+       solid
+       {
+               "id" "662"
+               side
+               {
+                       "id" "699"
+                       "plane" "(-224 896 32) (-224 1024 32) (-192 1024 32)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 384] 0.25"
+                       "vaxis" "[0 -1 0 128] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "698"
+                       "plane" "(-224 1024 16) (-224 1024 32) (-224 896 32)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 1 0 -128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "697"
+                       "plane" "(-192 896 16) (-192 896 32) (-192 1024 32)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 1 0 -128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "696"
+                       "plane" "(-192 1024 16) (-192 1024 32) (-224 1024 32)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 384] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "695"
+                       "plane" "(-224 896 16) (-224 896 32) (-192 896 32)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 384] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "694"
+                       "plane" "(-224 1024 16) (-224 896 16) (-192 896 16)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               editor
+               {
+                       "color" "0 175 108"
+                       "visgroupid" "9"
+                       "visgroupid" "8"
+                       "visgroupshown" "1"
+                       "visgroupautoshown" "1"
+               }
+       }
+       solid
+       {
+               "id" "663"
+               side
+               {
+                       "id" "705"
+                       "plane" "(-192 896 48) (-192 1024 48) (-160 1024 48)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 256] 0.25"
+                       "vaxis" "[0 -1 0 128] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "704"
+                       "plane" "(-192 1024 16) (-192 1024 48) (-192 896 48)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 1 0 -128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "703"
+                       "plane" "(-160 896 16) (-160 896 48) (-160 1024 48)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 1 0 -128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "702"
+                       "plane" "(-160 1024 16) (-160 1024 48) (-192 1024 48)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 256] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "701"
+                       "plane" "(-192 896 16) (-192 896 48) (-160 896 48)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 256] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "700"
+                       "plane" "(-192 1024 16) (-192 896 16) (-160 896 16)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               editor
+               {
+                       "color" "0 175 108"
+                       "visgroupid" "9"
+                       "visgroupid" "8"
+                       "visgroupshown" "1"
+                       "visgroupautoshown" "1"
+               }
+       }
+       solid
+       {
+               "id" "664"
+               side
+               {
+                       "id" "711"
+                       "plane" "(-160 896 64) (-160 1024 64) (-128 1024 64)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 128] 0.25"
+                       "vaxis" "[0 -1 0 128] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "710"
+                       "plane" "(-160 1024 16) (-160 1024 64) (-160 896 64)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 1 0 -128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "709"
+                       "plane" "(-128 896 16) (-128 896 64) (-128 1024 64)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 1 0 -128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "708"
+                       "plane" "(-128 1024 16) (-128 1024 64) (-160 1024 64)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "707"
+                       "plane" "(-160 896 16) (-160 896 64) (-128 896 64)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "706"
+                       "plane" "(-160 1024 16) (-160 896 16) (-128 896 16)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               editor
+               {
+                       "color" "0 175 108"
+                       "visgroupid" "9"
+                       "visgroupid" "8"
+                       "visgroupshown" "1"
+                       "visgroupautoshown" "1"
+               }
+       }
+       solid
+       {
+               "id" "665"
+               side
+               {
+                       "id" "717"
+                       "plane" "(-96 896 96) (-96 1024 96) (-64 1024 96)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 384] 0.25"
+                       "vaxis" "[0 -1 0 128] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "716"
+                       "plane" "(-96 1024 16) (-96 1024 96) (-96 896 96)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 1 0 -128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "715"
+                       "plane" "(-64 896 16) (-64 896 96) (-64 1024 96)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 1 0 -128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "714"
+                       "plane" "(-64 1024 16) (-64 1024 96) (-96 1024 96)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 384] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "713"
+                       "plane" "(-96 896 16) (-96 896 96) (-64 896 96)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 384] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "712"
+                       "plane" "(-96 1024 16) (-96 896 16) (-64 896 16)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               editor
+               {
+                       "color" "0 175 108"
+                       "visgroupid" "9"
+                       "visgroupid" "8"
+                       "visgroupshown" "1"
+                       "visgroupautoshown" "1"
+               }
+       }
+       solid
+       {
+               "id" "666"
+               side
+               {
+                       "id" "723"
+                       "plane" "(-128 896 80) (-128 1024 80) (-96 1024 80)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 128] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "722"
+                       "plane" "(-128 1024 16) (-128 1024 80) (-128 896 80)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 1 0 -128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "721"
+                       "plane" "(-96 896 16) (-96 896 80) (-96 1024 80)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 1 0 -128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "720"
+                       "plane" "(-96 1024 16) (-96 1024 80) (-128 1024 80)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "719"
+                       "plane" "(-128 896 16) (-128 896 80) (-96 896 80)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "718"
+                       "plane" "(-128 1024 16) (-128 896 16) (-96 896 16)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               editor
+               {
+                       "color" "0 175 108"
+                       "visgroupid" "9"
+                       "visgroupid" "8"
+                       "visgroupshown" "1"
+                       "visgroupautoshown" "1"
+               }
+       }
+       solid
+       {
+               "id" "667"
+               side
+               {
+                       "id" "729"
+                       "plane" "(-64 896 112) (-64 1024 112) (-32 1024 112)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 256] 0.25"
+                       "vaxis" "[0 -1 0 128] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "728"
+                       "plane" "(-64 1024 16) (-64 1024 112) (-64 896 112)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 1 0 -128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "727"
+                       "plane" "(-32 896 16) (-32 896 112) (-32 1024 112)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[0 1 0 -128] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "726"
+                       "plane" "(-32 1024 16) (-32 1024 112) (-64 1024 112)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 256] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "725"
+                       "plane" "(-64 896 16) (-64 896 112) (-32 896 112)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 256] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "724"
+                       "plane" "(-64 1024 16) (-64 896 16) (-32 896 16)"
+                       "material" "TERRI/DEV/BSP"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               editor
+               {
+                       "color" "0 175 108"
+                       "visgroupid" "9"
+                       "visgroupid" "8"
+                       "visgroupshown" "1"
+                       "visgroupautoshown" "1"
+               }
+       }
+       solid
+       {
+               "id" "668"
+               side
+               {
+                       "id" "735"
+                       "plane" "(-32 896 128) (-32 1024 128) (256 1024 128)"
                        "material" "TERRI/DEV/BSP"
                        "uaxis" "[1 0 0 128] 0.25"
                        "vaxis" "[0 -1 0 128] 0.25"
@@ -2156,82 +2438,320 @@ world
        }
        solid
        {
-               "id" "96"
+               "id" "96"
+               side
+               {
+                       "id" "213"
+                       "plane" "(-384 1024 16) (-384 1472 16) (192 1472 16)"
+                       "material" "DEV/GRAYGRID"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "212"
+                       "plane" "(-384 1472 0) (-384 1024 0) (192 1024 0)"
+                       "material" "DEV/GRAYGRID"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 -1 0 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "211"
+                       "plane" "(-384 1024 0) (-384 1472 0) (-384 1472 16)"
+                       "material" "DEV/GRAYGRID"
+                       "uaxis" "[0 1 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "210"
+                       "plane" "(192 1472 0) (192 1024 0) (192 1024 16)"
+                       "material" "DEV/GRAYGRID"
+                       "uaxis" "[0 1 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "209"
+                       "plane" "(-384 1472 0) (192 1472 0) (192 1472 16)"
+                       "material" "DEV/GRAYGRID"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               side
+               {
+                       "id" "208"
+                       "plane" "(192 1024 0) (-384 1024 0) (-384 1024 16)"
+                       "material" "DEV/GRAYGRID"
+                       "uaxis" "[1 0 0 0] 0.25"
+                       "vaxis" "[0 0 -1 0] 0.25"
+                       "rotation" "0"
+                       "lightmapscale" "16"
+                       "smoothing_groups" "0"
+               }
+               editor
+               {
+                       "color" "0 145 202"
+                       "visgroupid" "9"
+                       "visgroupid" "8"
+                       "visgroupshown" "1"
+                       "visgroupautoshown" "1"
+               }
+       }
+       group
+       {
+               "id" "2509"
+               editor
+               {
+                       "color" "220 220 220"
+                       "visgroupshown" "1"
+                       "visgroupautoshown" "1"
+               }
+       }
+}
+entity
+{
+       "id" "2436"
+       "classname" "tar_config"
+       "aoSize" "1000"
+       "background" "grid.png"
+       "customCol0" "39 56 79"
+       "customCol1" "77 74 72"
+       "customCol2" "178 113 65"
+       "enableAO" "1"
+       "outlineWidth" "2"
+       "ssaam" "3"
+       "vgroup_cover" "tar_cover"
+       "vgroup_layout" "tar_layout"
+       "vgroup_negative" "tar_negative"
+       "vgroup_overlap" "tar_overlap"
+       "zColAO" "0 0 0 255"
+       "zColBuyzone" "46 211 57 170"
+       "zColCover" "179 179 179 255"
+       "zColCover2" "85 85 85 128"
+       "zColObjective" "196 75 44 255"
+       "zColOutline" "204 204 204 153"
+       "origin" "-176 256 80"
+       editor
+       {
+               "color" "127 224 0"
+               "visgroupshown" "1"
+               "visgroupautoshown" "1"
+               "logicalpos" "[0 2500]"
+       }
+}
+entity
+{
+       "id" "2484"
+       "classname" "tar_map_divider"
+       "maxs" "4096 4096 2"
+       "mins" "-4096 -4096 -2"
+       "origin" "0 0 -48"
+       editor
+       {
+               "color" "127 224 0"
+               "visgroupshown" "1"
+               "visgroupautoshown" "1"
+               "logicalpos" "[0 6500]"
+       }
+}
+entity
+{
+       "id" "2304"
+       "classname" "func_bomb_target"
+       "heistbomb" "0"
+       solid
+       {
+               "id" "2305"
                side
                {
-                       "id" "213"
-                       "plane" "(-384 1024 16) (-384 1472 16) (192 1472 16)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[1 0 0 0] 0.25"
-                       "vaxis" "[0 -1 0 0] 0.25"
+                       "id" "1069"
+                       "plane" "(-367.999 704 -64) (-367.999 896 -64) (-96 896 -64)"
+                       "material" "TERRI/TOOLS/TOOLS_TRIGGER"
+                       "uaxis" "[1 0 0 73.1429] 1.75"
+                       "vaxis" "[0 -1 0 48] 4"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "212"
-                       "plane" "(-384 1472 0) (-384 1024 0) (192 1024 0)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[1 0 0 0] 0.25"
-                       "vaxis" "[0 -1 0 0] 0.25"
+                       "id" "1068"
+                       "plane" "(-367.999 896 -192) (-367.999 704 -192) (-96 704 -192)"
+                       "material" "TERRI/TOOLS/TOOLS_TRIGGER"
+                       "uaxis" "[1 0 0 73.1429] 1.75"
+                       "vaxis" "[0 -1 0 48] 4"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "211"
-                       "plane" "(-384 1024 0) (-384 1472 0) (-384 1472 16)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[0 1 0 0] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "1067"
+                       "plane" "(-367.996 704 -192) (-367.996 896 -192) (-367.996 896 -64)"
+                       "material" "TERRI/TOOLS/TOOLS_TRIGGER"
+                       "uaxis" "[0 1 0 -48] 4"
+                       "vaxis" "[0 0 -1 -11.6363] 1.375"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "210"
-                       "plane" "(192 1472 0) (192 1024 0) (192 1024 16)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[0 1 0 0] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "1066"
+                       "plane" "(-96 896 -192) (-96 704 -192) (-96 704 -64)"
+                       "material" "TERRI/TOOLS/TOOLS_TRIGGER"
+                       "uaxis" "[0 1 0 -48] 4"
+                       "vaxis" "[0 0 -1 -11.6363] 1.375"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "209"
-                       "plane" "(-384 1472 0) (192 1472 0) (192 1472 16)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[1 0 0 0] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "1065"
+                       "plane" "(-367.997 896 -192) (-96 896 -192) (-96 896 -64)"
+                       "material" "TERRI/TOOLS/TOOLS_TRIGGER"
+                       "uaxis" "[1 0 0 73.1429] 1.75"
+                       "vaxis" "[0 0 -1 -11.6363] 1.375"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                side
                {
-                       "id" "208"
-                       "plane" "(192 1024 0) (-384 1024 0) (-384 1024 16)"
-                       "material" "DEV/GRAYGRID"
-                       "uaxis" "[1 0 0 0] 0.25"
-                       "vaxis" "[0 0 -1 0] 0.25"
+                       "id" "1064"
+                       "plane" "(-96 704 -192) (-368 704 -192) (-367.997 704 -64)"
+                       "material" "TERRI/TOOLS/TOOLS_TRIGGER"
+                       "uaxis" "[1 0 0 73.1429] 1.75"
+                       "vaxis" "[0 0 -1 -11.6363] 1.375"
                        "rotation" "0"
                        "lightmapscale" "16"
                        "smoothing_groups" "0"
                }
                editor
                {
-                       "color" "0 145 202"
-                       "visgroupid" "9"
-                       "visgroupid" "8"
+                       "color" "220 30 220"
                        "visgroupshown" "1"
                        "visgroupautoshown" "1"
                }
        }
+       editor
+       {
+               "color" "220 30 220"
+               "visgroupid" "9"
+               "visgroupshown" "1"
+               "visgroupautoshown" "1"
+               "logicalpos" "[0 2000]"
+       }
+}
+entity
+{
+       "id" "1902"
+       "classname" "prop_static"
+       "angles" "0 0 0"
+       "fademindist" "-1"
+       "fadescale" "1"
+       "model" "models/props/de_tides/truck.mdl"
+       "renderamt" "255"
+       "rendercolor" "255 255 255"
+       "skin" "0"
+       "solid" "6"
+       "uniformscale" "1"
+       "origin" "-556.554 704 -192"
+       editor
+       {
+               "color" "255 255 0"
+               "visgroupid" "16"
+               "visgroupshown" "1"
+               "visgroupautoshown" "1"
+               "logicalpos" "[0 0]"
+       }
+}
+entity
+{
+       "id" "1919"
+       "classname" "prop_static"
+       "angles" "0 0 0"
+       "fademindist" "-1"
+       "fadescale" "1"
+       "model" "models/props/de_tides/truck.mdl"
+       "renderamt" "255"
+       "rendercolor" "255 255 255"
+       "skin" "0"
+       "solid" "6"
+       "uniformscale" "1"
+       "origin" "-96 733.703 -192"
+       editor
+       {
+               "color" "255 255 0"
+               "visgroupid" "16"
+               "visgroupshown" "1"
+               "visgroupautoshown" "1"
+               "logicalpos" "[0 0]"
+       }
+}
+entity
+{
+       "id" "2117"
+       "classname" "prop_static"
+       "angles" "0 60 0"
+       "fademindist" "-1"
+       "fadescale" "1"
+       "model" "models/props/de_nuke/crate_large.mdl"
+       "renderamt" "255"
+       "rendercolor" "255 255 255"
+       "skin" "0"
+       "solid" "6"
+       "uniformscale" "1"
+       "origin" "-224 928 -192"
+       editor
+       {
+               "color" "255 255 0"
+               "visgroupid" "16"
+               "visgroupshown" "1"
+               "visgroupautoshown" "1"
+               "logicalpos" "[0 0]"
+       }
+}
+entity
+{
+       "id" "2132"
+       "classname" "prop_static"
+       "angles" "0 60 0"
+       "fademindist" "-1"
+       "fadescale" "1"
+       "model" "models/props/de_nuke/crate_large.mdl"
+       "renderamt" "255"
+       "rendercolor" "255 255 255"
+       "skin" "0"
+       "solid" "6"
+       "uniformscale" "1"
+       "origin" "-448 1088 -192"
+       editor
+       {
+               "color" "255 255 0"
+               "visgroupid" "16"
+               "visgroupshown" "1"
+               "visgroupautoshown" "1"
+               "logicalpos" "[0 0]"
+       }
 }
 entity
 {
@@ -2330,7 +2850,7 @@ entity
        "origin" "128 528 128"
        editor
        {
-               "color" "220 30 220"
+               "color" "127 224 0"
                "visgroupid" "9"
                "visgroupshown" "1"
                "visgroupautoshown" "1"
@@ -2344,7 +2864,7 @@ entity
        "origin" "-176 817.158 16"
        editor
        {
-               "color" "220 30 220"
+               "color" "127 224 0"
                "visgroupid" "9"
                "visgroupshown" "1"
                "visgroupautoshown" "1"
@@ -2442,61 +2962,6 @@ entity
        }
 }
 entity
-{
-       "id" "1369"
-       "classname" "tar_config"
-       "aoSize" "8"
-       "colorScheme" "6"
-       "customCol0" "255 0 128"
-       "customCol1" "0 128 192"
-       "customCol2" "255 255 0"
-       "enableAO" "1"
-       "enableOutline" "1"
-       "outlineWidth" "2"
-       "vgroup_cover" "tar_cover"
-       "vgroup_layout" "tar_layout"
-       "vgroup_negative" "tar_mask"
-       "zColAO" "0 0 0 255"
-       "zColBuyzone" "46 211 57 170"
-       "zColCover" "179 179 179 255"
-       "zColObjective" "217 91 38 255"
-       "zColOutline" "204 204 204 153"
-       "origin" "-386.122 479.551 33"
-       editor
-       {
-               "color" "220 30 220"
-               "visgroupid" "9"
-               "visgroupshown" "1"
-               "visgroupautoshown" "1"
-               "logicalpos" "[0 0]"
-       }
-}
-entity
-{
-       "id" "1185"
-       "classname" "prop_static"
-       "angles" "0 30 0"
-       "fademindist" "-1"
-       "fadescale" "1"
-       "model" "models/dev/a310_ref.mdl"
-       "renderamt" "255"
-       "rendercolor" "255 255 255"
-       "skin" "0"
-       "solid" "6"
-       "uniformscale" ".3"
-       "origin" "-320 256 16"
-       editor
-       {
-               "color" "255 255 0"
-               "visgroupid" "14"
-               "visgroupid" "9"
-               "visgroupid" "16"
-               "visgroupshown" "1"
-               "visgroupautoshown" "1"
-               "logicalpos" "[0 0]"
-       }
-}
-entity
 {
        "id" "681"
        "classname" "prop_static"
@@ -2509,7 +2974,7 @@ entity
        "skin" "0"
        "solid" "6"
        "uniformscale" "1"
-       "origin" "-640 320 0"
+       "origin" "-704 304 0"
        editor
        {
                "color" "255 255 0"
@@ -2521,31 +2986,6 @@ entity
        }
 }
 entity
-{
-       "id" "918"
-       "classname" "prop_static"
-       "angles" "0 30 0"
-       "fademindist" "-1"
-       "fadescale" "1"
-       "model" "models/props/de_tides/truck.mdl"
-       "renderamt" "255"
-       "rendercolor" "255 255 255"
-       "skin" "0"
-       "solid" "6"
-       "uniformscale" "1"
-       "origin" "-320 768 16"
-       editor
-       {
-               "color" "255 255 0"
-               "visgroupid" "14"
-               "visgroupid" "9"
-               "visgroupid" "16"
-               "visgroupshown" "1"
-               "visgroupautoshown" "1"
-               "logicalpos" "[0 0]"
-       }
-}
-entity
 {
        "id" "949"
        "classname" "prop_static"
@@ -2557,61 +2997,13 @@ entity
        "rendercolor" "255 255 255"
        "skin" "0"
        "solid" "6"
-       "uniformscale" "2"
-       "origin" "-512 1024 16"
-       editor
-       {
-               "color" "255 255 0"
-               "visgroupid" "16"
-               "visgroupid" "9"
-               "visgroupshown" "1"
-               "visgroupautoshown" "1"
-               "logicalpos" "[0 0]"
-       }
-}
-entity
-{
-       "id" "957"
-       "classname" "prop_static"
-       "angles" "0 120 0"
-       "fademindist" "-1"
-       "fadescale" "1"
-       "model" "models/props/de_tides/truck.mdl"
-       "renderamt" "255"
-       "rendercolor" "255 255 255"
-       "skin" "0"
-       "solid" "6"
-       "uniformscale" "1"
-       "origin" "-192 512 16"
-       editor
-       {
-               "color" "255 255 0"
-               "visgroupid" "18"
-               "visgroupshown" "1"
-               "visgroupautoshown" "1"
-               "logicalpos" "[0 0]"
-       }
-}
-entity
-{
-       "id" "1015"
-       "classname" "prop_static"
-       "angles" "0 330 0"
-       "fademindist" "-1"
-       "fadescale" "1"
-       "model" "models/terri/monaco/vehicles/f1.mdl"
-       "renderamt" "255"
-       "rendercolor" "255 255 255"
-       "skin" "0"
-       "solid" "6"
        "uniformscale" "1"
-       "origin" "-576 640 16"
+       "origin" "-640 976 16"
        editor
        {
                "color" "255 255 0"
-               "visgroupid" "14"
-               "visgroupid" "9"
                "visgroupid" "16"
+               "visgroupid" "9"
                "visgroupshown" "1"
                "visgroupautoshown" "1"
                "logicalpos" "[0 0]"
index b754e488233764f29e348395fc0cc885a66f650f..ab560dde645a0cb43ffbc128502ef0545a4ec23e 100644 (file)
@@ -13,7 +13,6 @@ uniform vec3 bounds_SEL;      // South-East-Lower coordinate of the playspace (worlds
 //                                     SAMPLER UNIFORMS
 // Image Inputs _______________________________________________________________________________
 uniform sampler2D tex_gradient;
-uniform sampler2D tex_background;
 uniform sampler2D tex_modulate;
 uniform sampler2D gbuffer_position;
 uniform sampler2D gbuffer_clean_position;
@@ -26,6 +25,7 @@ uniform usampler2D umask_buyzone;
 uniform vec3 samples[256];
 uniform sampler2D ssaoRotations;
 uniform float ssaoScale;
+uniform int mssascale;
 uniform mat4 projection;
 uniform mat4 view;
 
@@ -35,6 +35,10 @@ uniform vec4 color_objective;
 uniform vec4 color_buyzone;
 uniform vec4 color_cover;
 uniform vec4 color_cover2;
+uniform vec4 color_ao;
+
+uniform float blend_objective_stripes;
+uniform float blend_ao;
 
 //                                       SHADER HELPERS
 // ____________________________________________________________________________________________
@@ -50,6 +54,11 @@ vec3 lerp(vec3 a, vec3 b, float w)
   return a + w*(b-a);
 }
 
+vec4 lerp(vec4 a, vec4 b, float w)
+{
+       return a + w*(b-a);
+}
+
 vec4 blend_normal(vec4 a, vec4 b, float s)
 {
        return vec4(lerp(a.rgb, b.rgb, b.a * s), a.a + (b.a * s));
@@ -180,8 +189,7 @@ void main()
                lerp(s_position_clean.y, s_position.y, clamp((1 - s_modulate.r) + (float((s_info >> 1) & 0x1U) - m_playspace_clean), 0, 1))
        ), m_playspace);
 
-       final = blend_normal(final, color_cover, float((s_info >> 7) & 0x1U) * m_playspace);
-       final = blend_normal(final, color_cover * vec4(0.4, 0.4, 0.4, 1.0), float((s_info >> 7) & 0x1U) * m_playspace * (1 - ((s_position.y - s_position_clean.y) / 256)));
+       final = blend_normal(final, lerp(color_cover, color_cover2, float((s_info >> 7) & 0x1U) * m_playspace * (1 - ((s_position.y - s_position_clean.y) / 196))), float((s_info >> 7) & 0x1U) * m_playspace);
 
        vec4 s_normal = texture(gbuffer_normal, TexCoords);
        vec3 randVec = texture(ssaoRotations, TexCoords * noiseScale).rgb;
@@ -206,23 +214,23 @@ void main()
                occlusion += (sDepth >= sample.y + 10.0 ? 1.0 : 0.0);
        }
 
-       final = blend_normal(final, vec4(0,0,0,1), (occlusion / 200) * m_playspace);
+       final = blend_normal(final, color_ao, (occlusion / 200) * m_playspace * blend_ao);
 
 
        final = blend_normal(final, color_objective,                                                                                                                            // Objectives
                (
-               (kernel_filter_glow(umask_objectives, 13, 1))
+               (kernel_filter_glow(umask_objectives, 13 * mssascale, 1))
                * m_objectives
                * ( 1 - float((s_info >> 7) & 0x1U))
                )
                + 
                (
-               kernel_filter_outline(umask_objectives, 2) * 0.9
-               * ( 1 - float((s_info >> 7) & 0x1U)) * s_modulate_1_5.r
+               kernel_filter_outline(umask_objectives, 3 * mssascale) * 0.9
+               * ( 1 - float((s_info >> 7) & 0x1U)) * clamp(s_modulate_1_5.r + blend_objective_stripes, 0, 1)
                )
                +
                (
-               (kernel_filter_glow(umask_objectives, 13, 0))
+               (kernel_filter_glow(umask_objectives, 13 * mssascale, 0))
                * ( 1 - m_objectives )
                * ( 1 - float((s_info >> 7) & 0x1U))
                )
@@ -230,18 +238,18 @@ void main()
        
        final = blend_normal(final, color_buyzone,                                                                                                                              // Objectives
                (
-               (kernel_filter_glow(umask_buyzone, 13, 1))
+               (kernel_filter_glow(umask_buyzone, 13 * mssascale, 1))
                * m_buyzones
                * ( 1 - float((s_info >> 7) & 0x1U))
                )
                + 
                (
-               kernel_filter_outline(umask_buyzone, 2) * 0.9
+               kernel_filter_outline(umask_buyzone, 3 * mssascale) * 0.9
                * ( 1 - float((s_info >> 7) & 0x1U))
                )
                +
                (
-               (kernel_filter_glow(umask_buyzone, 13, 0))
+               (kernel_filter_glow(umask_buyzone, 13 * mssascale, 0))
                * ( 1 - m_buyzones )
                * ( 1 - float((s_info >> 7) & 0x1U))
                )
diff --git a/MCDV/shaders/ss_comp_multilayer_blend.fs b/MCDV/shaders/ss_comp_multilayer_blend.fs
new file mode 100644 (file)
index 0000000..8df817c
--- /dev/null
@@ -0,0 +1,83 @@
+#version 330 core
+//                                         OPENGL
+// ____________________________________________________________________________________________
+in vec2 TexCoords;
+out vec4 FragColor;
+
+//                                     SAMPLER UNIFORMS
+// Image Inputs _______________________________________________________________________________
+uniform sampler2D tex_layer;
+uniform sampler2D gbuffer_position;
+
+uniform float saturation;
+uniform float value;
+
+//                                       SHADER HELPERS
+// ____________________________________________________________________________________________
+// --------------------------------------- Blend modes ----------------------------------------
+
+float lerp(float a, float b, float w)
+{
+       return a + w*(b-a);
+}
+
+vec3 lerp(vec3 a, vec3 b, float w)
+{
+  return a + w*(b-a);
+}
+
+vec4 lerp(vec4 a, vec4 b, float w)
+{
+       return a + w*(b-a);
+}
+
+vec4 blend_normal(vec4 a, vec4 b, float s)
+{
+       return vec4(lerp(a.rgb, b.rgb, b.a * s), a.a + (b.a * s));
+}
+
+vec4 blend_add(vec4 a, vec4 b, float s)
+{
+       return vec4(a.rgb + (b.rgb * s), a.a);
+}
+
+// ------------------------------------------ maths -------------------------------------------
+float remap(float value, float low1, float high1, float low2, float high2)
+{
+       return low2 + (value - low1) * (high2 - low2) / (high1 - low1);
+}
+
+//https://gamedev.stackexchange.com/a/59808
+vec3 rgb2hsv(vec3 c)
+{
+    vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
+    vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
+    vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
+
+    float d = q.x - min(q.w, q.y);
+    float e = 1.0e-10;
+    return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
+}
+vec3 hsv2rgb(vec3 c)
+{
+    vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
+    vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
+    return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
+}
+
+//                                       SHADER PROGRAM
+// ____________________________________________________________________________________________
+//     ( Write all your shader code & functions here )
+
+void main()
+{
+       vec4 s_layer = texture(tex_layer, TexCoords);
+       vec4 s_gbuffer = texture(gbuffer_position, TexCoords);
+       
+       vec3 colHSV = rgb2hsv(s_layer.rgb);
+       colHSV.g *= saturation;
+       colHSV.b *= value;
+       vec3 colRGB = hsv2rgb(colHSV);
+
+       FragColor = vec4(colRGB, s_layer.a);
+}
\ No newline at end of file
diff --git a/MCDV/shaders/ss_comp_multilayer_finalstage.fs b/MCDV/shaders/ss_comp_multilayer_finalstage.fs
new file mode 100644 (file)
index 0000000..ef7b677
--- /dev/null
@@ -0,0 +1,109 @@
+#version 330 core
+//                                         OPENGL
+// ____________________________________________________________________________________________
+in vec2 TexCoords;
+out vec4 FragColor;
+
+//                                     SAMPLER UNIFORMS
+// Image Inputs _______________________________________________________________________________
+uniform sampler2D tex_layer;
+uniform sampler2D tex_background;
+uniform float blend_outline;
+uniform vec4 color_outline;
+uniform int outline_width;
+
+//                                       SHADER HELPERS
+// ____________________________________________________________________________________________
+// --------------------------------------- Blend modes ----------------------------------------
+
+float lerp(float a, float b, float w)
+{
+       return a + w*(b-a);
+}
+
+vec3 lerp(vec3 a, vec3 b, float w)
+{
+  return a + w*(b-a);
+}
+
+vec4 lerp(vec4 a, vec4 b, float w)
+{
+       return a + w*(b-a);
+}
+
+vec4 blend_normal(vec4 a, vec4 b, float s)
+{
+       return vec4(lerp(a.rgb, b.rgb, b.a * s), a.a + (b.a * s));
+}
+
+vec4 blend_add(vec4 a, vec4 b, float s)
+{
+       return vec4(a.rgb + (b.rgb * s), a.a);
+}
+
+// ------------------------------------------ maths -------------------------------------------
+float remap(float value, float low1, float high1, float low2, float high2)
+{
+       return low2 + (value - low1) * (high2 - low2) / (high1 - low1);
+}
+
+// ---------------------------------- kernel / trace filters ----------------------------------
+// Given an 0-1 mask, return a 'glow value'
+float kernel_filter_glow(sampler2D sampler, int channelID, int sample_size, int inverse)
+{
+       vec2 pixel_size = 1.0 / vec2(textureSize(sampler, 0));
+
+       float sT = 0;
+       int sample_double = sample_size * 2;
+
+       // Process kernel
+       for(int x = 0; x <= sample_double; x++){
+               for(int y = 0; y <= sample_double; y++){
+                       if(inverse == 0)
+                       sT += texture(sampler, TexCoords + vec2((-sample_size + x) * pixel_size.x, (-sample_size + y) * pixel_size.y))[channelID];
+                       else sT += 1 - texture(sampler, TexCoords + vec2((-sample_size + x) * pixel_size.x, (-sample_size + y) * pixel_size.y))[channelID];
+               }
+       }
+
+       sT /= (sample_double * sample_double);
+
+       return sT;
+}
+
+// Given a 0-1 mask, return an outline drawn around that mask
+float kernel_filter_outline(sampler2D sampler, int channelID, int sample_size)
+{
+       vec2 pixel_size = 1.0 / vec2(textureSize(sampler, 0));
+
+       float sT = 0;
+       int sample_double = sample_size * 2;
+       
+       // Process kernel
+       for(int x = 0; x <= sample_double; x++){
+               for(int y = 0; y <= sample_double; y++){
+                       sT += //texture(sampler, TexCoords + vec2((-sample_size + x) * pixel_size.x, (-sample_size + y) * pixel_size.y))[channelID];
+                       (sample_size - min(length(vec2(-sample_size + x, -sample_size + y)), sample_size)) * 
+                       texture(sampler, TexCoords + vec2((-sample_size + x) * pixel_size.x, (-sample_size + y) * pixel_size.y))[channelID];
+               }
+       }
+
+       return max(min(sT, 1) - texture(sampler, TexCoords)[channelID], 0);
+}
+
+//                                       SHADER PROGRAM
+// ____________________________________________________________________________________________
+//     ( Write all your shader code & functions here )
+
+
+void main()
+{
+       vec4 s_layer = texture(tex_layer, TexCoords);
+       vec4 s_background = texture(tex_background, TexCoords);
+
+       vec4 final = s_background;
+       final = blend_normal(final, vec4(0,0,0,1), kernel_filter_glow(tex_layer, 3, 16, 0));// Drop shadow
+       final = blend_normal(final, color_outline, kernel_filter_outline(tex_layer, 3, outline_width) * blend_outline); // outline
+       final = blend_normal(final, s_layer, 1.0);
+
+       FragColor = final;
+}
\ No newline at end of file
diff --git a/MCDV/shaders/ss_fxaa.fs b/MCDV/shaders/ss_fxaa.fs
new file mode 100644 (file)
index 0000000..b789072
--- /dev/null
@@ -0,0 +1,41 @@
+//https://community.khronos.org/t/glsl-fxaa-rendering-off-screen/71896
+#version 330 core
+#define FXAA_REDUCE_MIN (1.0/128.0)
+#define FXAA_REDUCE_MUL (1.0/8.0)
+#define FXAA_SPAN_MAX 8.0
+uniform sampler2D sampler0;
+uniform vec2 resolution;
+
+in vec2 TexCoords;
+out vec4 FragColor;
+
+void main(){
+   vec2 inverse_resolution=vec2(1.0/resolution.x,1.0/resolution.y);
+   vec3 rgbNW = texture2D(sampler0, TexCoords.xy + (vec2(-1.0,-1.0)) * inverse_resolution).xyz;
+   vec3 rgbNE = texture2D(sampler0, TexCoords.xy + (vec2(1.0,-1.0)) * inverse_resolution).xyz;
+   vec3 rgbSW = texture2D(sampler0, TexCoords.xy + (vec2(-1.0,1.0)) * inverse_resolution).xyz;
+   vec3 rgbSE = texture2D(sampler0, TexCoords.xy + (vec2(1.0,1.0)) * inverse_resolution).xyz;
+   vec3 rgbM  = texture2D(sampler0, TexCoords.xy).xyz;
+   vec3 luma = vec3(0.299, 0.587, 0.114);
+   float lumaNW = dot(rgbNW, luma);
+   float lumaNE = dot(rgbNE, luma);
+   float lumaSW = dot(rgbSW, luma);
+   float lumaSE = dot(rgbSE, luma);
+   float lumaM  = dot(rgbM,  luma);
+   float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));
+   float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE))); 
+   vec2 dir;
+   dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));
+   dir.y =  ((lumaNW + lumaSW) - (lumaNE + lumaSE));
+   float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) * (0.25 * FXAA_REDUCE_MUL),FXAA_REDUCE_MIN);
+   float rcpDirMin = 1.0/(min(abs(dir.x), abs(dir.y)) + dirReduce);
+   dir = min(vec2( FXAA_SPAN_MAX,  FXAA_SPAN_MAX),max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),dir * rcpDirMin)) * inverse_resolution;
+   vec3 rgbA = 0.5 * (texture2D(sampler0,   TexCoords.xy   + dir * (1.0/3.0 - 0.5)).xyz + texture2D(sampler0,   TexCoords.xy   + dir * (2.0/3.0 - 0.5)).xyz);
+   vec3 rgbB = rgbA * 0.5 + 0.25 * (texture2D(sampler0,  TexCoords.xy   + dir *  - 0.5).xyz + texture2D(sampler0,  TexCoords.xy   + dir * 0.5).xyz);
+   float lumaB = dot(rgbB, luma);
+   if((lumaB < lumaMin) || (lumaB > lumaMax)) {
+      FragColor = vec4(rgbA,1.0);
+   } else {
+      FragColor = vec4(rgbB,1.0);
+   }
+}
\ No newline at end of file
diff --git a/MCDV/shaders/ss_msaa.fs b/MCDV/shaders/ss_msaa.fs
new file mode 100644 (file)
index 0000000..90732ae
--- /dev/null
@@ -0,0 +1,9 @@
+#version 330 core
+uniform sampler2D sampler0;
+
+in vec2 TexCoords;
+out vec4 FragColor;
+
+void main(){
+   FragColor = texture(sampler0, TexCoords);
+}
\ No newline at end of file
index 7c6396763ac4d3649d64297a4bc9c471a6764715..860bac5252dbe1c988e461a4124a3d6cf8c10e49 100644 (file)
@@ -11,6 +11,7 @@
 
 #include "Texture.hpp"
 #include "GradientMap.hpp"
+#include "dds.hpp"
 
 struct tar_config_layer {
        float layer_max;
@@ -18,7 +19,7 @@ struct tar_config_layer {
 
        tar_config_layer() 
                : 
-               layer_max(10000.0f), 
+               layer_max(-10000.0f), 
                layer_min(10000.0f) {}
 
        tar_config_layer(float min, float max)
@@ -27,10 +28,25 @@ struct tar_config_layer {
                layer_min(min) {}
 };
 
+enum sampling_mode {
+       FXAA,
+       NONE,
+       MSAA4x,
+       MSAA16x
+};
+
 class tar_config {
 public:
        std::vector<tar_config_layer> layers;
 
+       // Camera settings
+       glm::vec2               m_view_origin;
+       float                   m_render_ortho_scale;
+
+       BoundingBox             m_map_bounds;
+       IMG                             m_dds_img_mode;
+       sampling_mode   m_sampling_mode;
+
        // Textures
        Texture*                m_texture_gradient;
        Texture*                m_texture_background;
@@ -90,7 +106,7 @@ public:
                this->m_shadows_enable                  = (kv::tryGetStringValue(kvs, "enableShadows", "0") == "1");
 
                this->m_color_cover                             = parseVec4(kv::tryGetStringValue(kvs, "zColCover",             "179 179 179 255"));
-               this->m_color_cover2                    = parseVec4(kv::tryGetStringValue(kvs, "zColCover2",    "0   0   0   0  "));
+               this->m_color_cover2                    = parseVec4(kv::tryGetStringValue(kvs, "zColCover2",    "85  85  85  170"));
                this->m_color_outline                   = parseVec4(kv::tryGetStringValue(kvs, "zColOutline",   "204 204 204 153"));
                this->m_color_ao                                = parseVec4(kv::tryGetStringValue(kvs, "zColAO",                "0   0   0   255"));
                this->m_color_buyzone                   = parseVec4(kv::tryGetStringValue(kvs, "zColBuyzone",   "46  211 57  170"));
@@ -103,6 +119,50 @@ public:
                this->m_visgroup_mask                   = kv::tryGetStringValue(kvs, "vgroup_negative", "tar_mask");
                this->m_visgroup_overlap                = kv::tryGetStringValue(kvs, "vgroup_overlap", "tar_overlap");
 
+               this->m_dds_img_mode = IMG::MODE_DXT1;
+
+               switch (hash(kv::tryGetStringValue(kvs, "ddsMode", "0").c_str())) {
+                       case hash("1"): this->m_dds_img_mode = IMG::MODE_DXT5; break;
+                       case hash("2"): this->m_dds_img_mode = IMG::MODE_RGB888; break;         
+               }
+
+               this->m_sampling_mode = sampling_mode::FXAA;
+               switch (hash(kv::tryGetStringValue(kvs, "ssaam", "3").c_str())) {
+                       case hash("1"): this->m_sampling_mode = sampling_mode::MSAA4x; break;
+                       case hash("2"): this->m_sampling_mode = sampling_mode::MSAA16x; break;
+               }
+
+               // Configure camera setup
+               this->m_map_bounds = v->getVisgroupBounds(this->m_visgroup_layout);
+
+               std::cout << -this->m_map_bounds.NWU.x << "," << this->m_map_bounds.NWU.y << "," << this->m_map_bounds.NWU.z << "\n";
+               std::cout << -this->m_map_bounds.SEL.x << "," << this->m_map_bounds.SEL.y << "," << this->m_map_bounds.SEL.z << "\n";
+
+               for (auto && min : v->get_entities_by_classname("tar_min"))
+                       this->m_map_bounds.SEL.y = glm::min(min->m_origin.y, this->m_map_bounds.SEL.y);
+
+               for(auto && max : v->get_entities_by_classname("tar_max"))
+                       this->m_map_bounds.NWU.y = glm::max(max->m_origin.y, this->m_map_bounds.NWU.y);
+
+               float padding = 128.0f;
+
+               float x_bounds_min = -this->m_map_bounds.NWU.x - padding;
+               float x_bounds_max = -this->m_map_bounds.SEL.x + padding;
+
+               float y_bounds_min = this->m_map_bounds.SEL.z - padding;
+               float y_bounds_max = this->m_map_bounds.NWU.z + padding;
+
+               float dist_x = x_bounds_max - x_bounds_min;
+               float dist_y = y_bounds_max - y_bounds_min;
+
+               float mx_dist = glm::max(dist_x, dist_y);
+
+               float justify_x = (mx_dist - dist_x) * 0.5f;
+               float justify_y = (mx_dist - dist_y) * 0.5f;
+               
+               this->m_render_ortho_scale =    glm::round((mx_dist / 1024.0f) / 0.01f) * 0.01f * 1024.0f;
+               this->m_view_origin =                   glm::vec2(x_bounds_min - justify_x, y_bounds_max + justify_y);
+
                // Get map splits
                std::vector<entity*> splitters = v->get_entities_by_classname("tar_map_divider");
 
@@ -116,11 +176,11 @@ public:
 
                for (auto && s : splitters) splits.push_back(s->m_origin.y);
 
-               this->layers.push_back(tar_config_layer(-10000.0f, splits[0]));
+               this->layers.push_back(tar_config_layer(10000.0f, splits[0]));
 
                for (int i = 0; i < splits.size() - 1; i++) 
                        this->layers.push_back(tar_config_layer(splits[i], splits[i + 1]));
 
-               this->layers.push_back(tar_config_layer(splits.back(), 10000.0f));
+               this->layers.push_back(tar_config_layer(splits.back(), -10000.0f));
        }
 };
\ No newline at end of file
diff --git a/MCDV/textures/blank.png b/MCDV/textures/blank.png
new file mode 100644 (file)
index 0000000..3884d5b
Binary files /dev/null and b/MCDV/textures/blank.png differ
index 98d795b5ade62d967eb6c069b025616071e74943..4e6d7aa774b72c68f343a34d32af19fff6cd8e0a 100644 (file)
@@ -159,20 +159,23 @@ namespace vmf_parse {
 
 class material {
 public:
-       material() {
-               // ok.. what now?
-       }
+       static std::map<std::string, material*> m_index;
 
-       /*
-       static std::map<std::string, material*> material_index;
+       std::string name;
+       bool draw = true;
 
-       static material* get(const std::string& tex) {
-               if (!material_index.count(tex)) material_index.insert({ tex, new material() });
-               return material_index[tex];
-       }*/
+       material(const std::string& materialname) {
+               this->name = materialname;
+               if (this->name == "TOOLS/TOOLSSKYBOX" ||
+                       this->name == "TOOLS/NODRAW")
+                       this->draw = false;
+       }
 
        static material* get(const std::string& tex) {
-               return NULL;
+               if (material::m_index.count(tex)) return material::m_index[tex];
+
+               material::m_index.insert({ tex, new material(tex) });
+               return material::m_index[tex];
        }
 };
 
@@ -494,14 +497,16 @@ public:
                this->m_editorvalues = editorvalues(dataSrc->_GetFirstByName("editor"));
 
                // Read solids
-               for (auto && s : dataSrc->_GetAllByName("side")) m_sides.push_back(side::create(s));
+               for (auto && s : dataSrc->_GetAllByName("side")) {
+                       m_sides.push_back(side::create(s));
+               }
 
                // Process polytope problem. (still questionable why this is a thing)
                std::vector<glm::vec3> intersecting;
 
                float x, _x, y, _y, z, _z;
-               _x = _y = _z = std::numeric_limits<float>::max();
-               x = y = z = std::numeric_limits<float>::min();
+               x = _y = _z = std::numeric_limits<float>::max();
+               _x = y = z = std::numeric_limits<float>::min();
 
                for (int i = 0; i < m_sides.size(); i++) {
                        for (int j = 0; j < m_sides.size(); j++) {
@@ -543,10 +548,10 @@ public:
                                        intersecting.push_back(p);
 
                                        // Calculate bounds
-                                       _x = glm::min(_x, p.x);
+                                       _x = glm::max(_x, p.x);
                                        _y = glm::min(_y, p.y);
                                        _z = glm::min(_z, p.z);
-                                       x = glm::max(x, p.x);
+                                       x = glm::min(x, p.x);
                                        y = glm::max(y, p.y);
                                        z = glm::max(z, p.z);
                                }
@@ -592,6 +597,7 @@ public:
                for (auto && s : this->m_sides) {
                        if (s->m_dispinfo != NULL) continue;
                        if (s->m_vertices.size() < 3) continue;
+                       if (!s->m_texture->draw) continue;
 
                        for (int j = 0; j < s->m_vertices.size() - 2; j++) {
                                glm::vec3* c = &s->m_vertices[0];
@@ -708,6 +714,8 @@ public:
 
        std::set<unsigned int> m_whitelist_visgroups;
        std::set<std::string> m_whitelist_classnames;
+       float m_render_h_max = 10000.0f;
+       float m_render_h_min = -10000.0f;
        
        static std::map<std::string, Mesh*> s_model_dict;
 
@@ -809,6 +817,11 @@ public:
                this->m_whitelist_classnames = classnames;
        }
 
+       void SetMinMax(float min, float max) {
+               this->m_render_h_min = min;
+               this->m_render_h_max = max;
+       }
+
        void DrawWorld(Shader* shader, std::vector<glm::mat4> transform_stack = {}, unsigned int infoFlags = 0x00) {
                glm::mat4 model = glm::mat4();
                shader->setMatrix("model", model);
@@ -816,6 +829,8 @@ public:
 
                // Draw solids
                for (auto && solid : this->m_solids) {
+                       if (solid.SEL.y > this->m_render_h_min || solid.SEL.y < this->m_render_h_max) continue;
+
                        if (check_in_whitelist(&solid.m_editorvalues.m_visgroups, this->m_whitelist_visgroups)) {
                                shader->setUnsigned("Info", infoFlags);
                                solid.Draw(shader);
@@ -836,7 +851,7 @@ public:
                for (auto && ent : this->m_entities) {
                        // Visgroup pre-check
                        if (check_in_whitelist(&ent.m_editorvalues.m_visgroups, this->m_whitelist_visgroups)) {
-
+                               if (ent.m_origin.y > this->m_render_h_min || ent.m_origin.y < this->m_render_h_max) continue;
                                if (this->m_whitelist_classnames.count(ent.m_classname)) {
                                        if (ent.m_classname == "prop_static" ||
                                                ent.m_classname == "prop_dynamic" ||
@@ -907,6 +922,32 @@ public:
                return bounds;
        }
 
+       glm::vec3* calculateSpawnAVG_PMIN(const std::string& classname) {
+               std::vector<entity*> spawns = this->get_entities_by_classname(classname);
+
+               if (spawns.size() <= 0) return NULL;
+
+               //Find lowest priority (highest)
+               int lowest = kv::tryGetValue<int>(spawns[0]->m_keyvalues, "priority", 0);
+               for (auto && s : spawns) {
+                       int l = kv::tryGetValue<int>(s->m_keyvalues, "priority", 0);
+                       lowest = l < lowest ? l : lowest;
+               }
+
+               //Collect all spawns with that priority
+               glm::vec3* location = new glm::vec3();
+               int c = 0;
+               for (auto && s : spawns) {
+                       if (kv::tryGetValue<int>(s->m_keyvalues, "priority", 0) == lowest) {
+                               *location += s->m_origin; c++;
+                       }
+               }
+
+               //avg
+               *location = *location / (float)c;
+               return location;
+       }
+
        std::vector<entity*> get_entities_by_classname(const std::string& classname) {
                std::vector<entity*> ents;
                for (auto && i : this->m_entities) {
@@ -920,4 +961,5 @@ public:
 };
 
 vfilesys* vmf::s_fileSystem = NULL;
-std::map<std::string, Mesh*> vmf::s_model_dict;
\ No newline at end of file
+std::map<std::string, Mesh*> vmf::s_model_dict;
+std::map<std::string, material*> material::m_index;
\ No newline at end of file
index aca9f5db2bd00e9bdfe6f6fcdd74ac5502382bae..316c96f4d9ac4bc04cbfa2c50af1d03c32dff676 100644 (file)
Binary files a/tar_entities/map_dividers.blend and b/tar_entities/map_dividers.blend differ
index 32942571495c666c46aa5dfff348c757507c7d18..aca9f5db2bd00e9bdfe6f6fcdd74ac5502382bae 100644 (file)
Binary files a/tar_entities/map_dividers.blend1 and b/tar_entities/map_dividers.blend1 differ
index c7fc453d1c61515f01de48eb756c720cad019688..b0f266348980d3c25937c69bb38b099a029a9bf4 100644 (file)
Binary files a/tar_entities/tar_max.psd and b/tar_entities/tar_max.psd differ
diff --git a/tar_entities/tar_split.png b/tar_entities/tar_split.png
new file mode 100644 (file)
index 0000000..0bcffa6
Binary files /dev/null and b/tar_entities/tar_split.png differ
diff --git a/tar_entities/tar_split.vtf b/tar_entities/tar_split.vtf
new file mode 100644 (file)
index 0000000..64d393b
Binary files /dev/null and b/tar_entities/tar_split.vtf differ