From 1a0201ee98e890bb4970a725a98cdf634acf16f2 Mon Sep 17 00:00:00 2001 From: viktorljung Date: Mon, 28 Sep 2015 17:19:45 +0200 Subject: [PATCH 1/3] Style guide fixes --- include/Physics/PhysicsSystem.h | 111 +++---- include/Physics/PhysicsSystem.h.orig | 149 ---------- src/game/Game/LevelSystem.cpp.orig | 372 ------------------------ src/game/Game/PadSystem.cpp.orig | 313 -------------------- src/game/Physics/ContactListener.cpp | 47 +++ src/game/Physics/PhysicsSystem.cpp | 14 +- src/game/Physics/PhysicsSystem.cpp.orig | 363 ----------------------- 7 files changed, 84 insertions(+), 1285 deletions(-) delete mode 100755 include/Physics/PhysicsSystem.h.orig delete mode 100644 src/game/Game/LevelSystem.cpp.orig delete mode 100755 src/game/Game/PadSystem.cpp.orig create mode 100644 src/game/Physics/ContactListener.cpp delete mode 100755 src/game/Physics/PhysicsSystem.cpp.orig diff --git a/include/Physics/PhysicsSystem.h b/include/Physics/PhysicsSystem.h index eaaf49e..4ab4157 100644 --- a/include/Physics/PhysicsSystem.h +++ b/include/Physics/PhysicsSystem.h @@ -3,19 +3,20 @@ #include +#include + #include "Core/System.h" #include "Core/World.h" -#include "CRectangleShape.h" -#include "Physics/CPhysics.h" -#include +#include "Core/EventBroker.h" #include "Core/CTransform.h" #include "Transform/TransformSystem.h" +#include "CRectangleShape.h" +#include "Physics/CPhysics.h" #include "Physics/EContact.h" #include "Physics/ESetImpulse.h" #include "Physics/CCircleShape.h" -#include "Core/EventBroker.h" -#include "Game/CPad.h" #include "Physics/CWaterVolume.h" +#include "Game/CPad.h" #include "Game/CBall.h" #include "Rendering/CSprite.h" @@ -26,66 +27,55 @@ namespace dd namespace Systems { - class PhysicsSystem : public System { friend class ContractListener; public: PhysicsSystem(World* world, std::shared_ptr eventBroker) - : System(world, eventBroker) {} + : System(world, eventBroker) { } ~PhysicsSystem(); - EventRelay m_SetImpulse; - bool SetImpulse(const Events::SetImpulse &event); - void RegisterComponents(ComponentFactory* cf) override; void Initialize() override; - - // Called once per system every tick void Update(double dt) override; - // Called once for every entity in the world every tick void UpdateEntity(double dt, EntityID entity, EntityID parent) override; - - // Called when components are committed to an entity void OnEntityCommit(EntityID entity) override; - - // Called when an entity is removed void OnEntityRemoved(EntityID entity) override; private: - b2Vec2 m_Gravity; - b2World* m_PhysicsWorld; - float m_TimeStep; - float m_Accumulator; - - int m_VelocityIterations, m_PositionIterations; - - std::unordered_map m_EntitiesToBodies; - std::unordered_map m_BodiesToEntities; - - void CreateBody(EntityID entity); - - b2ParticleSystem *m_ParticleSystem; - b2ParticleGroup* t_watergroup; - - std::unordered_map m_EntitiesToParticleHandle; - std::unordered_map m_ParticleHandleToEntities; - - void InitializeWater(); - void SyncWater(); //TODO: Probably remove this - void CreateParticleGroup(EntityID entity); - struct Impulse { b2Body* Body; b2Vec2 Impulse; b2Vec2 Point; }; + + b2Vec2 m_Gravity = b2Vec2(0.f, -9.82f); + b2World* m_PhysicsWorld = nullptr; + float m_TimeStep = 1.f/60.f; + float m_Accumulator = 0.f; + int m_VelocityIterations = 6; + int m_PositionIterations = 2; + + b2ParticleSystem *m_ParticleSystem; + b2ParticleGroup* t_watergroup; + + std::unordered_map m_EntitiesToBodies; + std::unordered_map m_BodiesToEntities; + std::unordered_map m_EntitiesToParticleHandle; + std::unordered_map m_ParticleHandleToEntities; + std::list m_Impulses; + void CreateBody(EntityID entity); + void InitializeWater(); + void SyncWater(); //TODO: Probably remove this + void CreateParticleGroup(EntityID entity); + EventRelay m_SetImpulse; + bool SetImpulse(const Events::SetImpulse &event); class ContactListener : public b2ContactListener { @@ -93,45 +83,10 @@ private: ContactListener(PhysicsSystem* physicsSystem) : m_PhysicsSystem(physicsSystem) { } - void BeginContact(b2Contact* contact) - { - b2WorldManifold worldManifold; - - contact->GetWorldManifold(&worldManifold); - - Events::Contact e; - e.Entity1 = m_PhysicsSystem->m_BodiesToEntities[contact->GetFixtureA()->GetBody()]; - e.Entity2 = m_PhysicsSystem->m_BodiesToEntities[contact->GetFixtureB()->GetBody()]; - e.Normal = glm::normalize(glm::vec2(contact->GetManifold()->localNormal.x, contact->GetManifold()->localNormal.y)); - e.SignificantNormal = glm::normalize((glm::abs(e.Normal.x) > glm::abs(e.Normal.y)) ? glm::vec2(e.Normal.x, 0) : glm::vec2(0, e.Normal.y)); - - m_PhysicsSystem->EventBroker->Publish(e); - } - void EndContact(b2Contact* contact) - { - - } - void PreSolve(b2Contact* contact, const b2Manifold* oldManifold) - { - EntityID entityA = m_PhysicsSystem->m_BodiesToEntities[contact->GetFixtureA()->GetBody()]; - EntityID entityB = m_PhysicsSystem->m_BodiesToEntities[contact->GetFixtureB()->GetBody()]; - - auto physicsComponentA = m_PhysicsSystem->m_World->GetComponent(entityA); - auto physicsComponentB = m_PhysicsSystem->m_World->GetComponent(entityB); - - if (physicsComponentA != nullptr && physicsComponentB != nullptr) { - if (physicsComponentA->Calculate || physicsComponentB->Calculate) { - // Turn of collisions - contact->SetEnabled(false); - } - } - - - } - void PostSolve(b2Contact* contact, const b2ContactImpulse* impulse) - { - - } + void BeginContact(b2Contact* contact); + void EndContact(b2Contact* contact); + void PreSolve(b2Contact* contact, const b2Manifold* oldManifold); + void PostSolve(b2Contact* contact, const b2ContactImpulse* impulse); private: PhysicsSystem* m_PhysicsSystem; diff --git a/include/Physics/PhysicsSystem.h.orig b/include/Physics/PhysicsSystem.h.orig deleted file mode 100755 index f1465aa..0000000 --- a/include/Physics/PhysicsSystem.h.orig +++ /dev/null @@ -1,149 +0,0 @@ -#ifndef DAYDREAM_PHYSICSSYSTEM_H -#define DAYDREAM_PHYSICSSYSTEM_H - -#include - -#include "Core/System.h" -#include "Core/World.h" -#include "CRectangleShape.h" -#include "Physics/CPhysics.h" -#include -#include "Core/CTransform.h" -#include "Transform/TransformSystem.h" -#include "Physics/EContact.h" -#include "Physics/ESetImpulse.h" -#include "Physics/CCircleShape.h" -#include "Core/EventBroker.h" -#include "Game/CPad.h" -<<<<<<< HEAD -#include "Game/CBall.h" -======= -#include "Physics/CWaterVolume.h" -#include "Rendering/CSprite.h" ->>>>>>> origin/master - - -namespace dd -{ - -namespace Systems -{ - - -class PhysicsSystem : public System -{ - friend class ContractListener; - -public: - PhysicsSystem(World* world, std::shared_ptr eventBroker) - : System(world, eventBroker) {} - - ~PhysicsSystem(); - - EventRelay m_SetImpulse; - bool SetImpulse(const Events::SetImpulse &event); - - void RegisterComponents(ComponentFactory* cf) override; - void Initialize() override; - - // Called once per system every tick - void Update(double dt) override; - // Called once for every entity in the world every tick - void UpdateEntity(double dt, EntityID entity, EntityID parent) override; - - // Called when components are committed to an entity - void OnEntityCommit(EntityID entity) override; - - // Called when an entity is removed - void OnEntityRemoved(EntityID entity) override; - -private: - b2Vec2 m_Gravity; - b2World* m_PhysicsWorld; - float m_TimeStep; - float m_Accumulator; - - int m_VelocityIterations, m_PositionIterations; - - std::unordered_map m_EntitiesToBodies; - std::unordered_map m_BodiesToEntities; - - void CreateBody(EntityID entity); - - b2ParticleSystem *m_ParticleSystem; - b2ParticleGroup* t_watergroup; - - std::unordered_map m_EntitiesToParticleHandle; - std::unordered_map m_ParticleHandleToEntities; - - void InitializeWater(); - void SyncWater(); //TODO: Probably remove this - void CreateParticleGroup(EntityID entity); - - struct Impulse - { - b2Body* Body; - b2Vec2 Impulse; - b2Vec2 Point; - }; - std::list m_Impulses; - - - - class ContactListener : public b2ContactListener - { - public: - ContactListener(PhysicsSystem* physicsSystem) - : m_PhysicsSystem(physicsSystem) { } - - void BeginContact(b2Contact* contact) - { - b2WorldManifold worldManifold; - - contact->GetWorldManifold(&worldManifold); - - Events::Contact e; - e.Entity1 = m_PhysicsSystem->m_BodiesToEntities[contact->GetFixtureA()->GetBody()]; - e.Entity2 = m_PhysicsSystem->m_BodiesToEntities[contact->GetFixtureB()->GetBody()]; - e.Normal = glm::normalize(glm::vec2(contact->GetManifold()->localNormal.x, contact->GetManifold()->localNormal.y)); - e.SignificantNormal = glm::normalize((glm::abs(e.Normal.x) > glm::abs(e.Normal.y)) ? glm::vec2(e.Normal.x, 0) : glm::vec2(0, e.Normal.y)); - - m_PhysicsSystem->EventBroker->Publish(e); - } - void EndContact(b2Contact* contact) - { - - } - void PreSolve(b2Contact* contact, const b2Manifold* oldManifold) - { - EntityID entityA = m_PhysicsSystem->m_BodiesToEntities[contact->GetFixtureA()->GetBody()]; - EntityID entityB = m_PhysicsSystem->m_BodiesToEntities[contact->GetFixtureB()->GetBody()]; - - auto physicsComponentA = m_PhysicsSystem->m_World->GetComponent(entityA); - auto physicsComponentB = m_PhysicsSystem->m_World->GetComponent(entityB); - - if (physicsComponentA != nullptr && physicsComponentB != nullptr) { - if (physicsComponentA->Calculate || physicsComponentB->Calculate) { - // Turn of collisions - contact->SetEnabled(false); - } - } - - - } - void PostSolve(b2Contact* contact, const b2ContactImpulse* impulse) - { - - } - - private: - PhysicsSystem* m_PhysicsSystem; - }; - - ContactListener* m_ContactListener; -}; - -} -} - -#endif //DAYDREAM_PHYSICSSYSTEM_H diff --git a/src/game/Game/LevelSystem.cpp.orig b/src/game/Game/LevelSystem.cpp.orig deleted file mode 100644 index b1d1139..0000000 --- a/src/game/Game/LevelSystem.cpp.orig +++ /dev/null @@ -1,372 +0,0 @@ -// -// Created by Adniklastrator on 2015-09-09. -// - - -#include "PrecompiledHeader.h" -#include "Game/LevelSystem.h" - - -void dd::Systems::LevelSystem::Initialize() -{ - EVENT_SUBSCRIBE_MEMBER(m_EContact, LevelSystem::OnContact); - EVENT_SUBSCRIBE_MEMBER(m_ELifeLost, LevelSystem::OnLifeLost); - EVENT_SUBSCRIBE_MEMBER(m_EScoreEvent, LevelSystem::OnScoreEvent); - EVENT_SUBSCRIBE_MEMBER(m_EMultiBall, LevelSystem::OnMultiBall); - EVENT_SUBSCRIBE_MEMBER(m_ECreatePowerUp, LevelSystem::OnCreatePowerUp); - EVENT_SUBSCRIBE_MEMBER(m_EPowerUpTaken, LevelSystem::OnPowerUpTaken); - EVENT_SUBSCRIBE_MEMBER(m_EStageCleared, LevelSystem::OnStageCleared); - - for (int i = 0; i < Lives(); i++) { - CreateLife(i); - } - - return; -} - -void dd::Systems::LevelSystem::CreateLife(int number) -{ - auto life = m_World->CreateEntity(); - std::shared_ptr transform = m_World->AddComponent(life); - transform->Position = glm::vec3(-1.5f + number * 0.15f, -2.f, -5.f); - transform->Scale = glm::vec3(0.1f, 0.1f, 0.1f); - - std::shared_ptr lifeNr = m_World->AddComponent(life); - lifeNr->Number = number; - - auto model = m_World->AddComponent(life); - model->ModelFile = "Models/Test/Ball/Ballopus.obj"; - - - m_World->CommitEntity(life); -} - -void dd::Systems::LevelSystem::Update(double dt) -{ - if (!m_Initialized) { - CreateBasicLevel(Rows(), Lines(), SpaceBetweenBricks(), SpaceToEdge()); - m_Initialized = true; - } - - if (Lives() < 0) - { - SetLives(3); - Events::GameOver e; - EventBroker->Publish(e); - } -} - -void dd::Systems::LevelSystem::UpdateEntity(double dt, EntityID entity, EntityID parent) -{ - auto ball = m_World->GetComponent(entity); - - if (ball != nullptr) { - auto transformBall = m_World->GetComponent(entity); - if (glm::abs(transformBall->Velocity.y) < 2) { - if (transformBall->Velocity.y > 0) { - transformBall->Velocity.y = 2; - } else { - transformBall->Velocity.y = -2; - } - } - if (transformBall->Position.y < -EdgeY() - 4) { - if (MultiBalls() != 0) { - SetMultiBalls(MultiBalls() - 1); -// m_World->RemoveComponent(entity); -// m_World->RemoveComponent(entity); -// m_World->RemoveComponent(entity); -// m_World->RemoveComponent(entity); - m_World->RemoveEntity(entity); - } else if (Lives() == PastLives()) { - Events::ResetBall be; - EventBroker->Publish(be); - Events::LifeLost e; - e.Entity = entity; - EventBroker->Publish(e); - return; - } - } else if (transformBall->Position.x > EdgeX()) { - if (transformBall->Velocity.x > 0) { - glm::vec2 reflectedVelocity = glm::reflect(glm::vec2(transformBall->Velocity.x, transformBall->Velocity.y), glm::vec2(1, 0)); - transformBall->Velocity = glm::vec3(reflectedVelocity, 0.f); - } - } else if (transformBall->Position.x < -EdgeX()) { - if (transformBall->Velocity.x < 0) { - glm::vec2 reflectedVelocity = glm::reflect(glm::vec2(transformBall->Velocity.x, transformBall->Velocity.y), glm::vec2(-1, 0)); - transformBall->Velocity = glm::vec3(reflectedVelocity, 0.f); - } - } else if (transformBall->Position.y > EdgeY()) { - if (transformBall->Velocity.y > 0) { - glm::vec2 reflectedVelocity = glm::reflect(glm::vec2(transformBall->Velocity.x, transformBall->Velocity.y), glm::vec2(0, 1)); - transformBall->Velocity = glm::vec3(reflectedVelocity, 0.f); - } - } - } - - if (Lives() != PastLives()) { - auto life = m_World->GetComponent(entity); - if (life != nullptr) { - if (life->Number + 1 == PastLives()) { -// m_World->RemoveComponent(entity); -// m_World->RemoveComponent(entity); - m_World->RemoveEntity(entity); - SetPastLives(Lives()); - } - } - } - if (NumberOfBricks() <= 0) { - /*SetRestarting(true); - if (MultiBalls() <= 0 && PowerUps() <= 0) { - Events::ResetBall e; - EventBroker->Publish(e); - Events::ScoreEvent es; - es.Score = 500; - EventBroker->Publish(es); - Events::StageCleared ec; - EventBroker->Publish(ec); - CreateBasicLevel(Rows(), Lines(), SpaceBetweenBricks(), SpaceToEdge()); - } else { - if (ball != nullptr && MultiBalls() > 0) { - SetMultiBalls(MultiBalls() - 1); - m_World->RemoveComponent(entity); - m_World->RemoveComponent(entity); - m_World->RemoveComponent(entity); - m_World->RemoveComponent(entity); - m_World->RemoveEntity(entity); - auto transformBall = m_World->GetComponent(entity); - } else { - auto powerUp = m_World->GetComponent(entity); - if (powerUp != nullptr) { - SetPowerUps(PowerUps() - 1); - m_World->RemoveComponent(entity); - m_World->RemoveComponent(entity); - m_World->RemoveEntity(entity); - } - } - }*/ - } -} - -void dd::Systems::LevelSystem::CreateBasicLevel(int rows, int lines, glm::vec2 spacesBetweenBricks, float spaceToEdge) -{ - SetNumberOfBricks(rows * lines); - std::cout << "You're only doing this once, right?" << std::endl; - int num = 0; - for (int i = 0; i < rows; i++) { - num++; - for (int j = 0; j < Lines(); j++) { - CreateBrick(i, j, spacesBetweenBricks, spaceToEdge, num); - } - if (num == 7) - num = 0; - } - - SetNumberOfBricks(rows * lines); - SetRestarting(false); - return; -} - -void dd::Systems::LevelSystem::CreateBrick(int row, int line, glm::vec2 spacesBetweenBricks, float spaceToEdge, int num) -{ - auto brick = m_World->CreateEntity(); - std::shared_ptr transform = m_World->AddComponent(brick); - auto model = m_World->AddComponent(brick); - std::shared_ptr cBrick = m_World->AddComponent(brick); - std::shared_ptr cRec = m_World->AddComponent(brick); - std::shared_ptr cPhys = m_World->AddComponent(brick); - cPhys->Static = false; - cPhys->GravityScale = 0.f; - cPhys->Category = CollisionLayer::Type::Brick; - cPhys->Mask = CollisionLayer::Type::Ball; - - std::string fileName = "Textures/Bricks/"; - fileName.append(std::to_string(num)); - fileName.append(".png"); - //sprite->SpriteFile = fileName; - model->ModelFile = "Models/Test/Brick/Brick.obj"; - if ((line == 1 && row == 4) || (line == 3 && row == 2) || (line == 6 && row == 6)) { - std::shared_ptr cPow = m_World->AddComponent(brick); - } - float x = line * spacesBetweenBricks.x; - float y = row * spacesBetweenBricks.y; - transform->Scale = glm::vec3(0.8, 0.2, 0.2); - transform->Position = glm::vec3(x - 3, 5 - spaceToEdge - y , -10.f); - cBrick->Score = 10 * num; - - //sound - auto collisionSound = m_World->AddComponent(brick); - collisionSound->filePath = "Sounds/Brick/shortbrickbreak.wav"; - - m_World->CommitEntity(brick); - return; -} - -void dd::Systems::LevelSystem::ProcessCollision() -{ - // Like, go into brick component and check what it does upon collision. Maybe not done here? - return; -} - -void dd::Systems::LevelSystem::OnEntityRemoved(EntityID entity) -{ - auto brick = m_World->GetComponent(entity); - if (brick != nullptr) { - SetNumberOfBricks(NumberOfBricks() - 1); - Events::ScoreEvent es; - es.Score = brick->Score; - EventBroker->Publish(es); - /*if (numberOfBricks < 1) { - EndLevel(); - }*/ - } - return; -} - -bool dd::Systems::LevelSystem::OnContact(const dd::Events::Contact &event) -{ - EntityID entityBrick; - EntityID entityBall; - auto ball = m_World->GetComponent(event.Entity2); - auto brick = m_World->GetComponent(event.Entity1); - if (brick != nullptr) { - entityBrick = event.Entity1; - } else { - brick = m_World->GetComponent(event.Entity2); - if (brick != nullptr) { - entityBrick = event.Entity2; - } else { - return false; - } - } - if (ball != nullptr) { - entityBall = event.Entity2; - } else { - ball = m_World->GetComponent(event.Entity1); - if (ball != nullptr) { - entityBall = event.Entity1; - } else { - return false; - } - } - - brick = m_World->GetComponent(entityBrick); - if (brick == nullptr) { - return false; - } - - auto power = m_World->GetComponent(entityBrick); - if (power != nullptr) { - Events::CreatePowerUp e; - auto transform = m_World->GetComponent(entityBrick); - e.Position = transform->Position; - EventBroker->Publish(e); - } - - if (ball != nullptr && Restarting() == false) { - auto ballTransform = m_World->GetComponent(entityBall); - -// m_World->RemoveComponent(entityBrick); -// m_World->RemoveComponent(entityBrick); -// m_World->RemoveComponent(entityBrick); -// m_World->RemoveComponent(entityBrick); -// m_World->RemoveEntity(entityBrick); - - auto physicsComponent = m_World->GetComponent(entityBrick); - physicsComponent->GravityScale = 1.f; - physicsComponent->Mask = CollisionLayer::Type::Water | CollisionLayer::Type::Wall; - - auto transformComponentBrick = m_World->GetComponent(entityBrick); - auto transformComponentBall = m_World->GetComponent(entityBall); - - Events::SetImpulse e; - e.Entity = entityBrick; - - glm::vec2 point = glm::vec2(transformComponentBrick->Position.x + ((transformComponentBrick->Position.x - transformComponentBall->Position.x)/4), transformComponentBrick->Position.y + ((transformComponentBrick->Position.y - transformComponentBall->Position.y )/4)); - - e.Impulse = glm::normalize(point)/2.f; - e.Point = point; - EventBroker->Publish(e); - //TODO: Bricks dont collide with walls D= - - SetNumberOfBricks(NumberOfBricks() - 1); - if (NumberOfBricks() <= 0) { - SetMultiBalls(MultiBalls() + 1); - } - Events::ScoreEvent es; - es.Score = brick->Score; - EventBroker->Publish(es); - -<<<<<<< HEAD - // std::cout << NumberOfBricks() << std::endl; -======= - //std::cout << NumberOfBricks() << std::endl; ->>>>>>> origin/master - //std::cout << "Score: " << Score() << std::endl; - } - - return true; -} - -bool dd::Systems::LevelSystem::OnLifeLost(const dd::Events::LifeLost &event) -{ - SetLives(Lives() - 1); - - return true; -} - -bool dd::Systems::LevelSystem::OnScoreEvent(const dd::Events::ScoreEvent &event) -{ - SetScore(Score() += event.Score); - - return true; -} - -bool dd::Systems::LevelSystem::OnMultiBall(const dd::Events::MultiBall &event) -{ - SetMultiBalls(MultiBalls()+2); -} - -bool dd::Systems::LevelSystem::OnCreatePowerUp(const dd::Events::CreatePowerUp &event) -{ - SetPowerUps(PowerUps() + 1); - auto powerUp = m_World->CreateEntity(); - std::shared_ptr transform = m_World->AddComponent(powerUp); - auto model = m_World->AddComponent(powerUp); - std::shared_ptr cRec = m_World->AddComponent(powerUp); - std::shared_ptr cPhys = m_World->AddComponent(powerUp); - cPhys->Static = false; - cPhys->Category = CollisionLayer::Type::PowerUp; - cPhys->Mask = CollisionLayer::Type::Pad; - - std::shared_ptr cPow = m_World->AddComponent(powerUp); - - - transform->Position = event.Position; - transform->Scale = glm::vec3(0.2, 0.2, 0.2); - transform->Velocity = glm::vec3(0, -4, 0); - - model->ModelFile = "Models/Test/Ball/Ballopus.obj"; - - m_World->CommitEntity(powerUp); - - return true; -} - -bool dd::Systems::LevelSystem::OnPowerUpTaken(const dd::Events::PowerUpTaken &event) -{ - SetPowerUps(PowerUps() - 1); - return true; -} - -bool dd::Systems::LevelSystem::OnStageCleared(const dd::Events::StageCleared &event) -{ - return true; -} - -void dd::Systems::LevelSystem::EndLevel() -{ - Events::StageCleared e; - EventBroker->Publish(e); - return; -} - diff --git a/src/game/Game/PadSystem.cpp.orig b/src/game/Game/PadSystem.cpp.orig deleted file mode 100755 index 7d21606..0000000 --- a/src/game/Game/PadSystem.cpp.orig +++ /dev/null @@ -1,313 +0,0 @@ -// -// Created by Adniklastrator on 2015-09-10. -// - -#include "PrecompiledHeader.h" -#include "Game/PadSystem.h" -#include "Core/World.h" -#include -#include -#include - - -void dd::Systems::PadSystem::Initialize() -{ - Events::BindKey r; - r.KeyCode = GLFW_KEY_RIGHT; - r.Command = "right"; - EventBroker->Publish(r); - - Events::BindKey l; - l.KeyCode = GLFW_KEY_LEFT; - l.Command = "left"; - EventBroker->Publish(l); - - EVENT_SUBSCRIBE_MEMBER(m_EKeyDown, &PadSystem::OnKeyDown); - EVENT_SUBSCRIBE_MEMBER(m_EKeyUp, &PadSystem::OnKeyUp); - EVENT_SUBSCRIBE_MEMBER(m_EContact, &PadSystem::OnContact); - EVENT_SUBSCRIBE_MEMBER(m_EContactPowerUp, &PadSystem::OnContactPowerUp); - EVENT_SUBSCRIBE_MEMBER(m_EResetBall, &PadSystem::OnResetBall); - EVENT_SUBSCRIBE_MEMBER(m_EMultiBall, &PadSystem::OnMultiBall); - EVENT_SUBSCRIBE_MEMBER(m_EStageCleared, &PadSystem::OnStageCleared); -} - -void dd::Systems::PadSystem::UpdateEntity(double dt, EntityID entity, EntityID parent) -{ - auto ball = m_World->GetComponent(entity); - if (ball != nullptr) { - if (ReplaceBall() == true) { - SetReplaceBall(false); - - auto transform = m_World->GetComponent(entity); - transform->Position = glm::vec3(0.0f, 0.26f, -10.f); - transform->Velocity = glm::vec3(0.0f, -ball->Speed, 0.f); - } - } -} - -void dd::Systems::PadSystem::Update(double dt) -{ - if (Entity() == 0) { - for (auto it = m_World->GetEntities()->begin(); it != m_World->GetEntities()->end(); it++) { - if (m_World->GetProperty(it->first, "Name") == "Pad") { - SetEntity(it->first); - SetTransform(m_World->GetComponent(Entity())); - SetPad(m_World->GetComponent(Entity())); - break; - } - } - } - - auto transform = Transform(); - auto pad = Pad(); - auto acceleration = Acceleration(); - - if (transform->Velocity.x < -pad->MaxSpeed) { - transform->Velocity.x = -pad->MaxSpeed; - } - else if (transform->Velocity.x > pad->MaxSpeed) { - transform->Velocity.x = pad->MaxSpeed; - } - transform->Position += transform->Velocity * (float)dt; - transform->Velocity += acceleration * (float)dt; - transform->Velocity -= transform->Velocity * pad->SlowdownModifier * (float)dt; - - - if (Left()) { - acceleration.x = -pad->AccelerationSpeed; -<<<<<<< HEAD - } - else if (Right()) { -======= - } else if (Right()) { ->>>>>>> 72413dc0a93bd3a2f6ab9fa7e19bbc3b846232db - acceleration.x = pad->AccelerationSpeed; - } else { - acceleration.x = 0.f; - } - - SetTransform(transform); - SetPad(pad); - SetAcceleration(acceleration); - - if (MultiBall() == true) { - SetMultiBall(false); - - Events::MultiBall e; - e.padTransform = transform; - EventBroker->Publish(e); - } - - return; -} - -EntityID dd::Systems::PadSystem::CreateBall() -{ - auto ent = m_World->CreateEntity(); - std::shared_ptr transform = m_World->AddComponent(ent); - transform->Position = glm::vec3(0.5f, 0.26f, -10.f); - transform->Scale = glm::vec3(0.5f, 0.5f, 0.5f); - auto model = m_World->AddComponent(ent); - model->ModelFile = "Models/Test/Ball/Ballopus.obj"; - //auto pointlight = m_World->AddComponent(ent); - std::shared_ptr circleShape = m_World->AddComponent(ent); - std::shared_ptr cball = m_World->AddComponent(ent); - std::shared_ptr physics = m_World->AddComponent(ent); - physics->Static = false; - - cball->Speed = 10; - - m_World->CommitEntity(ent); - - return ent; -} - -bool dd::Systems::PadSystem::OnKeyDown(const dd::Events::KeyDown &event) -{ - int val = event.KeyCode; - if (val == GLFW_KEY_UP) { - //std::cout << "Up!" << std::endl; - } else if (val == GLFW_KEY_DOWN) { - //std::cout << "Down!" << std::endl; - } else if (val == GLFW_KEY_LEFT) { - //std::cout << "Left!" << std::endl; - //acceleration.x = -0.01f; - SetLeft(true); - } else if (val == GLFW_KEY_RIGHT) { - //std::cout << "Right!" << std::endl; - //acceleration.x = 0.01f; - SetRight(true); - } else if (val == GLFW_KEY_R) { - SetReplaceBall(true); - } else if (val == GLFW_KEY_M) { - SetMultiBall(true); - } else if (val == GLFW_KEY_D) { - return false; - } - return true; -} - -bool dd::Systems::PadSystem::OnKeyUp(const dd::Events::KeyUp &event) -{ - int val = event.KeyCode; - if (val == GLFW_KEY_UP) { - - } else if (val == GLFW_KEY_DOWN) { - - } else if (val == GLFW_KEY_LEFT) { - SetLeft(false); - } else if (val == GLFW_KEY_RIGHT) { - SetRight(false); - } - return true; -} - -bool dd::Systems::PadSystem::OnContact(const dd::Events::Contact &event) -{ - /* - EntityID entityBall = event.Entity2; - auto ball = m_World->GetComponent(entityBall); - if (ball == NULL) { - return false; - } - EntityID entityPad = event.Entity1; - auto pad = m_World->GetComponent(entityPad); - if (pad == NULL) { - return false; - } - auto transformBall = m_World->GetComponent(entityBall); - auto transformPad = m_World->GetComponent(entityPad); - - float movementMultiplier = 0.5f; - - //float movementX = (event.ContactPoint.x - transformPad->Position.x) * movementMultiplier; - //float movementY = glm::cos((abs(movementX) / (3.2f * movementMultiplier)) * 3.14159265359f / 2) * 2.f; - if (whatX > 0) { - movementX = movementMultiplier * whatX; - //std::cout << "Right!" << std::endl; - } else { - movementX = movementMultiplier * whatX; - //std::cout << "Left!" << std::endl; - } - - // std::cout << movementX << " " << movementY << std::endl; - - //float movementX = (event.ContactPoint.x - transformPad->Position.x) * movementMultiplier; -<<<<<<< HEAD - float movementY = glm::cos((abs(movementX) / ((1.6f) * movementMultiplier)) * 3.14159265359f / 2) + 1; -======= - float movementY = glm::cos((abs(movementX) / ((1.6f) * movementMultiplier)) * 3.14159265359f / 2)+ 0.2; ->>>>>>> 72413dc0a93bd3a2f6ab9fa7e19bbc3b846232db - - //std::cout << movementX << " " << movementY << std::endl; - - float len = glm::length(transformBall->Velocity); - //auto pointlight = m_World->AddComponent(ent); - - - transformBall->Velocity += glm::vec3(transformPad->Velocity.x, 0, 0); - transformBall->Velocity = glm::normalize(transformBall->Velocity) * len; - - - //transform->Velocity = glm::vec3(movementX, movementY, 0.f); - */ -} - -bool dd::Systems::PadSystem::OnContactPowerUp(const dd::Events::Contact &event) -{ - EntityID entityPower; - EntityID entityPad; - auto powerUp = m_World->GetComponent(event.Entity1); - auto pad = m_World->GetComponent(event.Entity2); - if (powerUp != nullptr) { - entityPower = event.Entity1; - } else { - powerUp = m_World->GetComponent(event.Entity2); - if (powerUp != nullptr) { - entityPower = event.Entity2; - } - } - if (pad != nullptr) { - entityPad = event.Entity2; - } else { - pad = m_World->GetComponent(event.Entity1); - if (pad != nullptr) { - entityPad = event.Entity1; - } - } - - if (entityPower == NULL || entityPad == NULL) { - return false; - } - - pad = m_World->GetComponent(entityPad); - if (pad == nullptr) { - return false; - } - - m_World->RemoveComponent(entityPower); - m_World->RemoveComponent(entityPower); - m_World->RemoveComponent(entityPower); - m_World->RemoveEntity(entityPower); - Events::PowerUpTaken ep; - ep.Name = "Something"; - EventBroker->Publish(ep); - - Events::MultiBall e; - auto transform = m_World->GetComponent(entityPad); - e.padTransform = transform; - EventBroker->Publish(e); - return true; -} - -bool dd::Systems::PadSystem::OnResetBall(const dd::Events::ResetBall &event) -{ - SetReplaceBall(true); - return true; -} - -bool dd::Systems::PadSystem::OnMultiBall(const dd::Events::MultiBall &event) -{ - auto ent1 = CreateBall(); - auto ent2 = CreateBall(); - auto transform1 = m_World->GetComponent(ent1); - auto transform2 = m_World->GetComponent(ent2); - auto ball1 = m_World->GetComponent(ent1); - auto ball2 = m_World->GetComponent(ent2); - auto padTransform = event.padTransform; - float x1 = padTransform->Position.x - 2, x2 = padTransform->Position.x + 2; - if (x1 < -3.1) { - x1 = 3; - } - if (x2 > 3.1) { - x2 = -3; - } - transform1->Position = glm::vec3(x1, -5.5, -10); - transform2->Position = glm::vec3(x2, -5.5, -10); - - transform1->Velocity = glm::normalize(glm::vec3(5, 5 ,0.f)) * ball1->Speed; - transform2->Velocity = glm::normalize(glm::vec3(-5, 5 ,0.f)) * ball2->Speed; - - return true; -} - -bool dd::Systems::PadSystem::OnStageCleared(const dd::Events::StageCleared &event) -{ - auto entity = CreateBall(); - return true; -} - -bool dd::Systems::PadSystem::PadSteeringInputController::OnCommand(const Events::InputCommand &event) -{ - std::string command = event.Command; - - std::cout << "Command!" << std::endl; - - if (command == "right") { - std::cout << "Right!" << std::endl; - } else if (command == "left") { - std::cout << "Left!" << std::endl; - } - - return true; -} \ No newline at end of file diff --git a/src/game/Physics/ContactListener.cpp b/src/game/Physics/ContactListener.cpp new file mode 100644 index 0000000..97981d1 --- /dev/null +++ b/src/game/Physics/ContactListener.cpp @@ -0,0 +1,47 @@ +#include "PrecompiledHeader.h" +#include "Physics/PhysicsSystem.h" + +void dd::Systems::PhysicsSystem::ContactListener::BeginContact(b2Contact* contact) +{ + b2WorldManifold worldManifold; + + contact->GetWorldManifold(&worldManifold); + + Events::Contact e; + e.Entity1 = m_PhysicsSystem->m_BodiesToEntities[contact->GetFixtureA()->GetBody()]; + e.Entity2 = m_PhysicsSystem->m_BodiesToEntities[contact->GetFixtureB()->GetBody()]; + e.Normal = glm::normalize(glm::vec2(contact->GetManifold()->localNormal.x, contact->GetManifold()->localNormal.y)); + e.SignificantNormal = glm::normalize((glm::abs(e.Normal.x) > glm::abs(e.Normal.y)) ? glm::vec2(e.Normal.x, 0) : glm::vec2(0, e.Normal.y)); + + m_PhysicsSystem->EventBroker->Publish(e); +} + +void dd::Systems::PhysicsSystem::ContactListener::EndContact(b2Contact* contact) +{ + +} + +void dd::Systems::PhysicsSystem::ContactListener::PreSolve(b2Contact* contact, const b2Manifold* oldManifold) +{ + EntityID entityA = m_PhysicsSystem->m_BodiesToEntities[contact->GetFixtureA()->GetBody()]; + EntityID entityB = m_PhysicsSystem->m_BodiesToEntities[contact->GetFixtureB()->GetBody()]; + + auto physicsComponentA = m_PhysicsSystem->m_World->GetComponent(entityA); + auto physicsComponentB = m_PhysicsSystem->m_World->GetComponent(entityB); + + if (physicsComponentA != nullptr && physicsComponentB != nullptr) { + if (physicsComponentA->Calculate || physicsComponentB->Calculate) { + // Turn of collisions + contact->SetEnabled(false); + } + } + + +} + +void dd::Systems::PhysicsSystem::ContactListener::PostSolve(b2Contact* contact, const b2ContactImpulse* impulse) +{ + +} + + diff --git a/src/game/Physics/PhysicsSystem.cpp b/src/game/Physics/PhysicsSystem.cpp index 7d23110..8c6f5ed 100644 --- a/src/game/Physics/PhysicsSystem.cpp +++ b/src/game/Physics/PhysicsSystem.cpp @@ -6,24 +6,15 @@ void dd::Systems::PhysicsSystem::RegisterComponents(ComponentFactory* cf) { cf->Register(); + //TODO: REGISTER PHYSICS COMPONENTS HERE } void dd::Systems::PhysicsSystem::Initialize() { m_ContactListener = new ContactListener(this); - - m_Gravity = b2Vec2(0.f, -9.82f); m_PhysicsWorld = new b2World(m_Gravity); - - m_TimeStep = 1.f/60.f; - m_VelocityIterations = 6; - m_PositionIterations = 2; - m_Accumulator = 0.f; - m_PhysicsWorld->SetContactListener(m_ContactListener); - InitializeWater(); - EVENT_SUBSCRIBE_MEMBER(m_SetImpulse, PhysicsSystem::SetImpulse); } @@ -325,8 +316,11 @@ void dd::Systems::PhysicsSystem::CreateParticleGroup(EntityID e) LOG_INFO("ParticleCount: %i", m_ParticleSystem->GetParticleCount()); } + + dd::Systems::PhysicsSystem::~PhysicsSystem() { + //TODO: INPUT CODE HERE if (m_ContactListener != nullptr) { delete m_ContactListener; m_ContactListener = nullptr; diff --git a/src/game/Physics/PhysicsSystem.cpp.orig b/src/game/Physics/PhysicsSystem.cpp.orig deleted file mode 100755 index 7fb8bc1..0000000 --- a/src/game/Physics/PhysicsSystem.cpp.orig +++ /dev/null @@ -1,363 +0,0 @@ -#include "PrecompiledHeader.h" -#include "Physics/PhysicsSystem.h" - - - -void dd::Systems::PhysicsSystem::RegisterComponents(ComponentFactory* cf) -{ - cf->Register(); -} - -void dd::Systems::PhysicsSystem::Initialize() -{ - m_ContactListener = new ContactListener(this); - - m_Gravity = b2Vec2(0.f, -9.82f); - m_PhysicsWorld = new b2World(m_Gravity); - - m_TimeStep = 1.f/60.f; - m_VelocityIterations = 6; - m_PositionIterations = 2; - m_Accumulator = 0.f; - - m_PhysicsWorld->SetContactListener(m_ContactListener); - - InitializeWater(); - - EVENT_SUBSCRIBE_MEMBER(m_SetImpulse, PhysicsSystem::SetImpulse); -} - -void dd::Systems::PhysicsSystem::InitializeWater() -{ - b2ParticleSystemDef m_ParticleSystemDef; - m_ParticleSystemDef.radius = 0.13f; - - m_ParticleSystem = m_PhysicsWorld->CreateParticleSystem(&m_ParticleSystemDef); -} - -bool dd::Systems::PhysicsSystem::SetImpulse(const Events::SetImpulse &event) -{ - b2Body* body = m_EntitiesToBodies[event.Entity]; - - b2Vec2 impulse; - impulse.x = event.Impulse.x; - impulse.y = event.Impulse.y; - - b2Vec2 point; - point.x = event.Point.x; - point.y = event.Point.y; - - - Impulse i; - i.Body = body; - i.Impulse = impulse; - i.Point = point; - - m_Impulses.push_back(i); - - return true; -} - -void dd::Systems::PhysicsSystem::Update(double dt) -{ - - m_Accumulator += dt; - while(m_Accumulator >= m_TimeStep) - { - - for (auto i : m_EntitiesToBodies) { - EntityID entity = i.first; - b2Body* body = i.second; - - auto transformComponent = m_World->GetComponent(entity); - if (! transformComponent) { - continue; - LOG_ERROR("RigidBody with no TransformComponent"); - } - auto physicsComponent = m_World->GetComponent(entity); - if (! physicsComponent) { - continue; - LOG_ERROR("RigidBody with no PhysicsComponent"); - } - - - if (body == nullptr) { - LOG_ERROR("This body should not exist"); - continue; - } - - if (m_World->GetEntityParent(entity) == 0) { //TODO: Make this work with childs too - b2Vec2 position; - position.x = transformComponent->Position.x; - position.y = transformComponent->Position.y; - float angle = -glm::eulerAngles(transformComponent->Orientation).z; - body->SetTransform(position, angle); - body->SetLinearVelocity(b2Vec2(transformComponent->Velocity.x, transformComponent->Velocity.y)); - - body->SetGravityScale(physicsComponent->GravityScale); - -<<<<<<< HEAD - - b2Filter filter; - filter.categoryBits = physicsComponent->Category; - filter.maskBits = physicsComponent->Mask; - body->GetFixtureList()->SetFilterData(filter); - } - } - - for (auto i : m_Impulses) { - i.Body->ApplyLinearImpulse(i.Impulse, i.Point, true); -======= ->>>>>>> origin/master - } - m_Impulses.clear(); - - -<<<<<<< HEAD - - -======= - for (auto i : m_Impulses) { - i.Body->ApplyLinearImpulse(i.Impulse, i.Point, true); - } - m_Impulses.clear(); - m_Accumulator += dt; - while(m_Accumulator >= m_TimeStep) - { ->>>>>>> origin/master - m_PhysicsWorld->Step(m_TimeStep, m_VelocityIterations, m_PositionIterations); - m_Accumulator -= dt; - -<<<<<<< HEAD - -======= - for (auto i : m_EntitiesToBodies) { - EntityID entity = i.first; - b2Body* body = i.second; ->>>>>>> origin/master - - for (auto i : m_EntitiesToBodies) { - EntityID entity = i.first; - b2Body* body = i.second; - - if (body == nullptr) { - LOG_ERROR("This body should not exist"); - continue; - } - -<<<<<<< HEAD - auto transformComponent = m_World->GetComponent(entity); - if (! transformComponent) - continue; - if (m_World->GetEntityParent(entity) == 0) { - b2Vec2 position = body->GetPosition(); - transformComponent->Position.x = position.x; - transformComponent->Position.y = position.y; -======= - auto transformComponent = m_World->GetComponent(entity); - if (! transformComponent) - continue; - auto parent = m_World->GetEntityParent(entity); - if (parent == 0) { - b2Vec2 position = body->GetPosition(); - transformComponent->Position.x = position.x; - transformComponent->Position.y = position.y; ->>>>>>> origin/master - - float angle = body->GetAngle(); - - - transformComponent->Orientation = glm::quat(glm::vec3(0, 0, -angle)); - -<<<<<<< HEAD - b2Vec2 velocity = body->GetLinearVelocity(); - transformComponent->Velocity.x = velocity.x; - transformComponent->Velocity.y = velocity.y; - - } -======= ->>>>>>> origin/master - } - } - - b2Vec2* positionBuffer = m_ParticleSystem->GetPositionBuffer(); - for (auto i : m_EntitiesToParticleHandle) { - EntityID entity = i.first; - b2ParticleHandle* particleH = i.second; - - b2Vec2 positionB2 = positionBuffer[particleH->GetIndex()]; - glm::vec2 position = glm::vec2(positionB2.x, positionB2.y); - - - EntityID entityParent = m_World->GetEntityParent(entity); - auto transform = m_World->GetComponent(entity); - auto transformParent = m_World->GetComponent(entityParent); - - transform->Position = glm::vec3(position.x, position.y, -10) - transformParent->Position; - } -} - -void dd::Systems::PhysicsSystem::UpdateEntity(double dt, EntityID entity, EntityID parent) -{ - -} - -void dd::Systems::PhysicsSystem::OnEntityCommit(EntityID entity) -{ - auto physicsComponent = m_World->GetComponent(entity); - auto waterComponent = m_World->GetComponent(entity); - - if (physicsComponent && waterComponent) { - LOG_ERROR("Entity has both water and physics component, this is illegal. The police has been alerted."); - return; - } - if (physicsComponent) { - CreateBody(entity); - } else if (waterComponent) { - CreateParticleGroup(entity); - } -} - - -void dd::Systems::PhysicsSystem::OnEntityRemoved(EntityID entity) -{ - auto physics = m_World->GetComponent(entity); - if (physics == nullptr) { - return; - } - - b2Body* body = m_EntitiesToBodies[entity]; - - if (body != nullptr) { - m_EntitiesToBodies.erase(entity); - m_BodiesToEntities.erase(body); - - m_PhysicsWorld->DestroyBody(body); - } - -} - - -void dd::Systems::PhysicsSystem::CreateBody(EntityID entity) -{ - auto physicsComponent = m_World->GetComponent(entity); - if(!physicsComponent){ - LOG_ERROR("No PhysicsComponent in CreateBody"); - return; - } - - - auto transformComponent = m_World->GetComponent(entity); - if(!transformComponent) { - LOG_ERROR("No TransformComponent in CreateBody"); - return; - } - - auto absoluteTransform = m_World->GetSystem()->AbsoluteTransform(entity); - - b2BodyDef bodyDef; - bodyDef.position.Set(absoluteTransform.Position.x, absoluteTransform.Position.y); - bodyDef.angle = -glm::eulerAngles(absoluteTransform.Orientation).z; - - if (physicsComponent->Static) { - bodyDef.type = b2_staticBody; - } else { - bodyDef.type = b2_dynamicBody; - - } - - b2Body* body = m_PhysicsWorld->CreateBody(&bodyDef); - - b2Shape* pShape; - - auto boxComponent = m_World->GetComponent(entity); - if (boxComponent) { - b2PolygonShape* bShape = new b2PolygonShape(); - bShape->SetAsBox(absoluteTransform.Scale.x/2, absoluteTransform.Scale.y/2); - pShape = bShape; - } else { - auto circleComponent = m_World->GetComponent(entity); - if (circleComponent) { - pShape = new b2CircleShape(); - pShape->m_radius = absoluteTransform.Scale.x; - - - if (absoluteTransform.Scale.x != absoluteTransform.Scale.y && absoluteTransform.Scale.y != absoluteTransform.Scale.z) { - LOG_WARNING("Circles has to be of uniform scale."); - } - pShape->m_radius = absoluteTransform.Scale.x/2; - - } - } - - b2FixtureDef fixtureDef; - fixtureDef.shape = pShape; - fixtureDef.filter.categoryBits = physicsComponent->Category; - fixtureDef.filter.maskBits = physicsComponent->Mask; - - - if(physicsComponent->Static) { - body->CreateFixture(&fixtureDef); //Density kanske ska vara 0 på statiska kroppar - } - else { - fixtureDef.shape = pShape; - fixtureDef.density = 1.f; - fixtureDef.restitution = 1.0f; - fixtureDef.friction = 0.0f; - body->CreateFixture(&fixtureDef); - - } - - delete pShape; - - - body->SetGravityScale(physicsComponent->GravityScale); - m_EntitiesToBodies.insert(std::make_pair(entity, body)); - m_BodiesToEntities.insert(std::make_pair(body, entity)); -} - -void dd::Systems::PhysicsSystem::CreateParticleGroup(EntityID e) -{ - //TODO: Lägg alla pd i en lista - auto transform = m_World->GetComponent(e); - if (!transform) { - LOG_ERROR("No Transform component in CreateParticleGroup"); - return; - } - - b2ParticleGroupDef pd; - b2PolygonShape shape; - - shape.SetAsBox(transform->Scale.x/2.f, transform->Scale.y/2.f); - pd.shape = &shape; - pd.flags = b2_tensileParticle; - pd.position.Set(transform->Position.x, transform->Position.y); - //TODO: PUT IN LIST - t_watergroup = m_ParticleSystem->CreateParticleGroup(pd); - b2Vec2* t_ParticlePositions = m_ParticleSystem->GetPositionBuffer(); - for(int i = 0; i < m_ParticleSystem->GetParticleCount(); i++){ - { - auto t_waterparticle = m_World->CreateEntity(e); - auto transformChild = m_World->AddComponent(t_waterparticle); - //auto sprite = m_World->AddComponent(t_waterparticle); - - transformChild->Position = glm::vec3(t_ParticlePositions[i].x - transform->Position.x, t_ParticlePositions[i].y - transform->Position.y, -9.5f); - transformChild->Scale = glm::vec3(m_ParticleSystem->GetRadius())/transform->Scale; - //sprite->SpriteFile = "Textures/Ball.png"; - m_World->CommitEntity(t_waterparticle); - - m_EntitiesToParticleHandle.insert(std::make_pair(t_waterparticle, m_ParticleSystem->GetParticleHandleFromIndex(i))); - m_ParticleHandleToEntities.insert(std::make_pair( m_ParticleSystem->GetParticleHandleFromIndex(i), t_waterparticle)); - } - - } - LOG_INFO("ParticleCount: %i", m_ParticleSystem->GetParticleCount()); -} - -dd::Systems::PhysicsSystem::~PhysicsSystem() -{ - if (m_ContactListener != nullptr) { - delete m_ContactListener; - m_ContactListener = nullptr; - } -} From 7733a44d53a56f7029108bea0a68aa61f1f62f6e Mon Sep 17 00:00:00 2001 From: viktorljung Date: Tue, 29 Sep 2015 12:08:13 +0200 Subject: [PATCH 2/3] Refactoring and starting to write test for PhysicsSystem --- include/Core/Engine.h.orig | 562 -------------------------- include/Physics/PhysicsSystem.h | 5 +- src/game/Physics/PhysicsSystem.cpp | 263 ++++++------ src/tests/RemovePhysicsSystemTest.cpp | 51 +++ 4 files changed, 201 insertions(+), 680 deletions(-) delete mode 100644 include/Core/Engine.h.orig create mode 100644 src/tests/RemovePhysicsSystemTest.cpp diff --git a/include/Core/Engine.h.orig b/include/Core/Engine.h.orig deleted file mode 100644 index f19102e..0000000 --- a/include/Core/Engine.h.orig +++ /dev/null @@ -1,562 +0,0 @@ -/* - This file is part of Daydream Engine. - Copyright 2014 Adam Byléhn, Tobias Dahl, Simon Holmberg, Viktor Ljung - - Daydream Engine is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Daydream Engine is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with Daydream Engine. If not, see . -*/ - -#include -#include -#include - -#include "ResourceManager.h" -#include "OBJ.h" -#include "Model.h" -#include "Texture.h" -#include "EventBroker.h" -#include "RenderQueue.h" -#include "Renderer.h" -#include "InputManager.h" -//TODO: Remove includes that are only here for the temporary draw solution. -#include "World.h" -#include "CTransform.h" -#include "Core/EventBroker.h" -#include "Rendering/CModel.h" -#include "Rendering/CSprite.h" -#include "CTemplate.h" -#include "Rendering/CPointLight.h" -#include "Transform/TransformSystem.h" -#include "Sound/SoundSystem.h" -#include "Sound/CCollisionSound.h" -#include "Game/LevelSystem.h" -#include "Game/PadSystem.h" -#include "Game/CBall.h" -#include "Game/CPad.h" -#include "Game/CBrick.h" -#include "Game/BallSystem.h" -#include "Game/Bricks/CPowerUpBrick.h" - -#include "Physics/PhysicsSystem.h" -#include "Physics/CPhysics.h" -#include "Physics/CRectangleShape.h" -#include "Physics/ESetImpulse.h" -#include "Physics/CWaterVolume.h" - -#include "Game/EGameStart.h" -#include "Sound/EPlaySound.h" - -#include "GUI/Frame.h" -#include "GUI/Button.h" -#include "Game/MainMenu.h" -#include "Game/HUD.h" - -namespace dd -{ - -class Engine -{ - -public: - Engine(int argc, char* argv[]) { - m_EventBroker = std::make_shared(); - - m_Renderer = std::make_shared(); - m_Renderer->SetFullscreen(false); - //m_Renderer->SetResolution(Rectangle(0, 0, 1920, 1080)); - m_Renderer->SetResolution(Rectangle(0, 0, 675, 1080)); - m_Renderer->Initialize(); - - m_FrameStack = new GUI::Frame(m_EventBroker.get()); - m_FrameStack->Width = 675; - m_FrameStack->Height = 1080; - auto hud = new GUI::HUD(m_FrameStack, "HUD"); - auto menu = new GUI::MainMenu(m_FrameStack, "MainMenu"); - - m_InputManager = std::make_shared(m_Renderer->Window(), m_EventBroker); - - m_World = std::make_shared(m_EventBroker); - - //TODO: Move this out of engine.h - m_World->ComponentFactory.Register(); - m_World->SystemFactory.Register( - [this]() { return new Systems::TransformSystem(m_World.get(), m_EventBroker); }); - m_World->AddSystem(); - m_World->ComponentFactory.Register(); - m_World->ComponentFactory.Register(); - - m_World->ComponentFactory.Register(); - m_World->SystemFactory.Register( - [this]() { return new Systems::SoundSystem(m_World.get(), m_EventBroker); }); - m_World->AddSystem(); - - m_World->ComponentFactory.Register(); - - m_World->ComponentFactory.Register(); - m_World->ComponentFactory.Register(); - m_World->ComponentFactory.Register(); - m_World->ComponentFactory.Register(); - m_World->ComponentFactory.Register(); - m_World->ComponentFactory.Register(); - - m_World->ComponentFactory.Register(); - m_World->ComponentFactory.Register(); - - m_World->SystemFactory.Register( - [this]() { return new Systems::PhysicsSystem(m_World.get(), m_EventBroker); }); - m_World->AddSystem(); - - m_World->SystemFactory.Register( - [this]() { return new Systems::LevelSystem(m_World.get(), m_EventBroker); }); - m_World->AddSystem(); - m_World->SystemFactory.Register( - [this]() { return new Systems::PadSystem(m_World.get(), m_EventBroker); }); - m_World->AddSystem(); - m_World->SystemFactory.Register( - [this]() { return new Systems::BallSystem(m_World.get(), m_EventBroker); }); - m_World->AddSystem(); - - m_World->ComponentFactory.Register(); - m_World->ComponentFactory.Register(); - m_World->ComponentFactory.Register(); - m_World->ComponentFactory.Register(); - m_World->Initialize(); - - - //OctoBall - { - auto ent = m_World->CreateEntity(); - std::shared_ptr transform = m_World->AddComponent(ent); - transform->Position = glm::vec3(-0.f, 0.26f, -9.f); - transform->Scale = glm::vec3(0.5f, 0.5f, 0.5f); - transform->Velocity = glm::vec3(0.0f, -10.f, 0.f); - auto model = m_World->AddComponent(ent); - model->ModelFile = "Models/Test/Ball/Ballopus.obj"; - std::shared_ptr circleShape = m_World->AddComponent(ent); - std::shared_ptr ball = m_World->AddComponent(ent); - ball->Speed = 5.f; -<<<<<<< HEAD - std::shared_ptr physics = m_World->AddComponent(ent); - physics->Static = false; - physics->Category = CollisionLayer::Type::Ball; - physics->Mask = CollisionLayer::Type::Pad | CollisionLayer::Type::Brick | CollisionLayer::Type::Wall; - physics->Calculate = true; -======= - std::shared_ptr physics = m_World->AddComponent(ent); - physics->Static = false; ->>>>>>> origin/master - - auto plight = m_World->AddComponent(ent); - plight->Radius = 2.f; - - m_World->CommitEntity(ent); - } - - //PointLightTest - { - auto t_Light = m_World->CreateEntity(); - auto transform = m_World->AddComponent(t_Light); - transform->Position = glm::vec3(2.f, 1.5f, -9.f); - auto pl = m_World->AddComponent(t_Light); - pl->Radius = 8.f; - m_World->CommitEntity(t_Light); - } - - //Halfpipe background test model. - { - auto t_halfPipe = m_World->CreateEntity(); - auto transform = m_World->AddComponent(t_halfPipe); - transform->Position = glm::vec3(0.f, 0.f, -15.f); - transform->Scale = glm::vec3(15.f); - auto model = m_World->AddComponent(t_halfPipe); - model->ModelFile = "Models/Test/halfpipe/Halfpipe.obj"; - model->Color = glm::vec4(1.f, 1.f, 1.f, 0.3f); - m_World->CommitEntity(t_halfPipe); - } - - //Background - { - auto background = m_World->CreateEntity(); - auto transform = m_World->AddComponent(background); - transform->Position = glm::vec3(0.f, 0.f, -30.f); - transform->Scale = glm::vec3(2681.f / 50.f, 1080.f / 50.f, 1.f); - auto sprite = m_World->AddComponent(background); - sprite->SpriteFile = "Textures/Background.png"; - m_World->CommitEntity(background); - } - - //Water test - { - auto t_waterBody = m_World->CreateEntity(); - auto transform = m_World->AddComponent(t_waterBody); - transform->Position = glm::vec3(0.f, -4.5f, -10.f); - transform->Scale = glm::vec3(7.f, 1.5f, 1.f); - auto water = m_World->AddComponent(t_waterBody); - auto body = m_World->AddComponent(t_waterBody); - m_World->CommitEntity(t_waterBody); - } - //TODO: Why does the ball not collide with these bricks? - //BottomBox - { - auto topWall = m_World->CreateEntity(); - auto transform = m_World->AddComponent(topWall); - transform->Position = glm::vec3(0.f, -6.f, -9.9f); - transform->Scale = glm::vec3(10.f, 0.5f, 1.f); - std::shared_ptr sprite = m_World->AddComponent(topWall); - sprite->SpriteFile = "Textures/Core/ErrorTexture.png"; - std::shared_ptr boxShape = m_World->AddComponent( - topWall); - std::shared_ptr physics = m_World->AddComponent(topWall); - physics->Static = true; - m_World->CommitEntity(topWall); - } - //SideBox -// { -// auto topWall = m_World->CreateEntity(); -// std::shared_ptr transform = m_World->AddComponent(topWall); -// transform->Position = glm::vec3(3.f, -3.0f, -9.9f); -// transform->Scale = glm::vec3(0.5f, 3.f, 1.f); -// std::shared_ptr sprite = m_World->AddComponent(topWall); -// sprite->SpriteFile = "Textures/Core/ErrorTexture.png"; -// std::shared_ptr boxShape = m_World->AddComponent( -// topWall); -// std::shared_ptr physics = m_World->AddComponent(topWall); -// physics->Static = true; -// m_World->CommitEntity(topWall); -// } -// //OtherSideBox -// { -// auto topWall = m_World->CreateEntity(); -// std::shared_ptr transform = m_World->AddComponent(topWall); -// transform->Position = glm::vec3(-4.f, -3.0f, -9.9f); -// transform->Scale = glm::vec3(0.5f, 3.0f, 1.f); -// std::shared_ptr sprite = m_World->AddComponent(topWall); -// sprite->SpriteFile = "Textures/Core/ErrorTexture.png"; -// std::shared_ptr boxShape = m_World->AddComponent( -// topWall); -// std::shared_ptr physics = m_World->AddComponent(topWall); -// physics->Static = true; -// m_World->CommitEntity(topWall); -// } - - { - auto topWall = m_World->CreateEntity(); - std::shared_ptr transform = m_World->AddComponent( - topWall); - transform->Position = glm::vec3(0.f, 6.f, -10.f); - transform->Scale = glm::vec3(20.f, 0.5f, 1.f); - - std::shared_ptr sprite = m_World->AddComponent(topWall); - sprite->SpriteFile = "Textures/Core/ErrorTexture.png"; - - std::shared_ptr boxShape = m_World->AddComponent( - topWall); - - std::shared_ptr physics = m_World->AddComponent(topWall); - physics->Static = true; - physics->Category = CollisionLayer::Type::Wall; - physics->Mask = CollisionLayer::Type::Ball | CollisionLayer::Type::Brick; - - m_World->CommitEntity(topWall); - } - - { - auto leftWall = m_World->CreateEntity(); - std::shared_ptr transform = m_World->AddComponent( - leftWall); - transform->Position = glm::vec3(-4.f, 1.f, -10.f); - transform->Scale = glm::vec3(0.5f, 20.f, 1.f); - - std::shared_ptr sprite = m_World->AddComponent(leftWall); - sprite->SpriteFile = "Textures/Core/ErrorTexture.png"; - - std::shared_ptr boxShape = m_World->AddComponent( - leftWall); - - std::shared_ptr physics = m_World->AddComponent(leftWall); - physics->Static = true; - physics->Category = CollisionLayer::Type::Wall; - physics->Mask = CollisionLayer::Type::Ball | CollisionLayer::Type::Brick; - - m_World->CommitEntity(leftWall); - } - - { - auto rightWall = m_World->CreateEntity(); - std::shared_ptr transform = m_World->AddComponent( - rightWall); - transform->Position = glm::vec3(4.f, 1.f, -10.f); - transform->Scale = glm::vec3(0.5f, 20.f, 1.f); - - std::shared_ptr sprite = m_World->AddComponent(rightWall); - sprite->SpriteFile = "Textures/Core/ErrorTexture.png"; - - std::shared_ptr boxShape = m_World->AddComponent( - rightWall); - - std::shared_ptr physics = m_World->AddComponent(rightWall); - physics->Static = true; - physics->Category = CollisionLayer::Type::Wall; - physics->Mask = CollisionLayer::Type::Ball | CollisionLayer::Type::Brick; - - m_World->CommitEntity(rightWall); - } - - { - auto ent = m_World->CreateEntity(); - m_World->SetProperty(ent, "Name", "Pad"); - auto ctransform = m_World->AddComponent(ent); - ctransform->Position = glm::vec3(0.f, -5.f, -10.f); - ctransform->Scale = glm::vec3(1.0f, 1.0f, 1.f); - auto rectangle = m_World->AddComponent(ent); - auto physics = m_World->AddComponent(ent); - physics->Static = false; - physics->Category = CollisionLayer::Type::Pad; - physics->Mask = CollisionLayer::Type::Ball | CollisionLayer::Type::PowerUp; - physics->Calculate = true; - auto cModel = m_World->AddComponent(ent); - cModel->ModelFile = "Models/Submarine2.obj"; - - auto pad = m_World->AddComponent(ent); - m_World->CommitEntity(ent); - } - - - //EVENT_SUBSCRIBE_MEMBER(m_EGameStart, &Engine::OnGameStart); - m_EGameStart = decltype(m_EGameStart)(std::bind(&Engine::OnGameStart, this, std::placeholders::_1)); - m_EventBroker->Subscribe(m_EGameStart); - - m_LastTime = glfwGetTime(); - } - - bool Running() const { return !glfwWindowShouldClose(m_Renderer->Window()); } - - void Tick() - { - double currentTime = glfwGetTime(); - double dt = currentTime - m_LastTime; - m_LastTime = currentTime; - - // Update input - m_InputManager->Update(dt); - // Swap event queues to get fresh input data in the read queue - //m_EventBroker->Swap(); - - ResourceManager::Update(); - if (m_GameIsRunning) { - m_World->Update(dt); - } - m_EventBroker->Process(); - m_FrameStack->UpdateLayered(dt); - - m_RendererQueue.Clear(); - m_FrameStack->DrawLayered(m_RendererQueue); - //TODO Fill up the renderQueue with models (Temp fix) - if (m_GameIsRunning) { - TEMPAddToRenderQueue(); - } - - // Render scene - //TODO send renderqueue to draw. - m_Renderer->Draw(m_RendererQueue); - - m_EventBroker->Process(); - // Swap event queues - m_EventBroker->Swap(); - - glfwPollEvents(); - } - - std::shared_ptr m_TransformSystem; - std::shared_ptr m_LevelSystem; - - //TODO: Get this out of engine.h - void TEMPAddToRenderQueue() - { - if (!m_TransformSystem) - m_TransformSystem = m_World->GetSystem(); - - for (auto &pair : *m_World->GetEntities()) - { - EntityID entity = pair.first; - - auto templateComponent = m_World->GetComponent(entity); - if (templateComponent) - continue; - - auto transform = m_World->GetComponent(entity); - if (!transform) - continue; - - auto modelComponent = m_World->GetComponent(entity); - if (modelComponent) - { - Model* modelAsset = nullptr; - modelAsset = ResourceManager::Load(modelComponent->ModelFile); - - if (modelAsset) - { - Components::Transform absoluteTransform = m_TransformSystem->AbsoluteTransform(entity); - glm::mat4 modelMatrix = glm::translate(glm::mat4(), absoluteTransform.Position) - * glm::toMat4(absoluteTransform.Orientation) - * glm::scale(absoluteTransform.Scale); - EnqueueModel(modelAsset, modelMatrix, modelComponent->Transparent, modelComponent->Color, modelComponent->ModelFile); - } - } - - auto pointLightComponent = m_World->GetComponent(entity); - if (pointLightComponent) - { - Components::Transform absoluteTransform = m_TransformSystem->AbsoluteTransform(entity); - EnqueuePointLight(absoluteTransform.Position, - pointLightComponent->Diffuse, - pointLightComponent->Specular, - pointLightComponent->Radius); - } - - auto parent = m_World->GetEntityParent(entity); - if(parent != 0) { - auto waterParticleComponent = m_World->GetComponent(parent); - if (waterParticleComponent) { - //TODO: Remove hardcoded color. - //TODO: Do i even need modelMatrix? - Components::Transform absoluteTransform = m_TransformSystem->AbsoluteTransform(entity); - glm::mat4 modelMatrix = glm::translate(absoluteTransform.Position) - * glm::scale(absoluteTransform.Scale); - EnqueueWaterParticles(absoluteTransform.Position, glm::vec4(1.f, 1.f, 1.f, 1.f), modelMatrix, absoluteTransform.Position.z); - } - } - - - auto spriteComponent = m_World->GetComponent(entity); - if (spriteComponent) - { - - std::string normal = spriteComponent->NormalTexture; - std::string spec = spriteComponent->SpecularTexture; - - if (normal.empty()) { - normal = "Textures/Core/NeutralNormalMap.png"; - } - if (spec.empty()) { - spec = "Textures/Core/NeutralSpecularMap.png"; - } - auto texturediff = ResourceManager::Load(spriteComponent->SpriteFile); - auto texturenorm = ResourceManager::Load(normal); - auto texturespec = ResourceManager::Load(spec); - - - Components::Transform absoluteTransform = m_TransformSystem->AbsoluteTransform(entity); - glm::quat orientation2D = glm::angleAxis(glm::eulerAngles(absoluteTransform.Orientation).z, glm::vec3(0, 0, -1)); - glm::mat4 modelMatrix = glm::translate(absoluteTransform.Position) - * glm::toMat4(orientation2D) - * glm::scale(absoluteTransform.Scale); - EnqueueSprite(texturediff, texturenorm, texturespec, modelMatrix, spriteComponent->Color, absoluteTransform.Position.z); - } - } - - } - - //TODO: Get this out of engine.h - void EnqueueModel(Model* model, glm::mat4 modelMatrix, float transparent, glm::vec4 color, std::string fileName) - { - for (auto texGroup : model->TextureGroups) - { - ModelJob job; - job.TextureID = (texGroup.Texture) ? texGroup.Texture->ResourceID : 0; - job.DiffuseTexture = (texGroup.Texture) ? *texGroup.Texture : 0; - job.NormalTexture = (texGroup.NormalMap) ? *texGroup.NormalMap : 0; - job.SpecularTexture = (texGroup.SpecularMap) ? *texGroup.SpecularMap : 0; - job.VAO = model->VAO; - job.ElementBuffer = model->ElementBuffer; - job.StartIndex = texGroup.StartIndex; - job.EndIndex = texGroup.EndIndex; - job.ModelMatrix = modelMatrix; - job.Color = color; - - m_RendererQueue.Deferred.Add(job); - } - } - - // TODO: Get this out of engine.h - void EnqueueSprite(Texture* texture, Texture* normalTexture, Texture* specularTexture, glm::mat4 modelMatrix, glm::vec4 color, float depth) - { - SpriteJob job; - job.TextureID = texture->ResourceID; - job.DiffuseTexture = *texture; - job.NormalTexture = *normalTexture; - job.SpecularTexture = *specularTexture; - job.ModelMatrix = modelMatrix; - job.Color = color; - job.Depth = depth; - - - m_RendererQueue.Forward.Add(job); - } - - void EnqueuePointLight(glm::vec3 position, glm::vec3 diffuseColor, glm::vec3 specularColor, float radius) - { - PointLightJob job; - job.Position = position; - job.DiffuseColor = diffuseColor; - job.SpecularColor = specularColor; - job.Radius = radius; - - m_RendererQueue.Lights.Add(job); - - } - - void EnqueueWaterParticles(glm::vec3 position, glm::vec4 color, glm::mat4 modelMatrix, float depth) - { - WaterParticleJob job; - job.Position = position; - job.Color = color; - job.ModelMatrix = modelMatrix; - job.Depth = depth; - - m_RendererQueue.Forward.Add(job); - } - -private: - std::shared_ptr m_EventBroker; - GUI::Frame* m_FrameStack = nullptr; - std::shared_ptr m_Renderer; - RenderQueueCollection m_RendererQueue; - std::shared_ptr m_InputManager; - std::shared_ptr m_World; - - //TODO: Redo - bool m_GameIsRunning = false; - dd::EventRelay m_EGameStart; - bool OnGameStart(const dd::Events::GameStart &event) - { - m_GameIsRunning = true; - //Todo: Move this - { - dd::Events::PlaySound e; - e.path = "Sounds/BGM/under-the-sea-instrumental.wav"; - e.isAmbient = true; - m_EventBroker->Publish(e); - } - { - dd::Events::PlaySound e; - e.path = "Sounds/BGM/water-flowing.wav"; - e.volume = 0.3f; - e.isAmbient = true; - m_EventBroker->Publish(e); - } - }; - double m_LastTime; -}; - -} diff --git a/include/Physics/PhysicsSystem.h b/include/Physics/PhysicsSystem.h index 4ab4157..43ca4a0 100644 --- a/include/Physics/PhysicsSystem.h +++ b/include/Physics/PhysicsSystem.h @@ -70,6 +70,8 @@ private: std::list m_Impulses; void CreateBody(EntityID entity); + void SyncEntitiesWithBodies(); + void SyncBodiesWithEntities(); void InitializeWater(); void SyncWater(); //TODO: Probably remove this void CreateParticleGroup(EntityID entity); @@ -96,6 +98,7 @@ private: }; } + } -#endif //DAYDREAM_PHYSICSSYSTEM_H +#endif diff --git a/src/game/Physics/PhysicsSystem.cpp b/src/game/Physics/PhysicsSystem.cpp index 8c6f5ed..5929178 100644 --- a/src/game/Physics/PhysicsSystem.cpp +++ b/src/game/Physics/PhysicsSystem.cpp @@ -1,8 +1,6 @@ #include "PrecompiledHeader.h" #include "Physics/PhysicsSystem.h" - - void dd::Systems::PhysicsSystem::RegisterComponents(ComponentFactory* cf) { cf->Register(); @@ -22,7 +20,6 @@ void dd::Systems::PhysicsSystem::InitializeWater() { b2ParticleSystemDef m_ParticleSystemDef; m_ParticleSystemDef.radius = 0.13f; - m_ParticleSystem = m_PhysicsWorld->CreateParticleSystem(&m_ParticleSystemDef); } @@ -30,6 +27,11 @@ bool dd::Systems::PhysicsSystem::SetImpulse(const Events::SetImpulse &event) { b2Body* body = m_EntitiesToBodies[event.Entity]; + if (body == nullptr) { + LOG_ERROR("Entity: %i, Tried to set an impulse on a body that does not exsist", event.Entity); + return false; + } + b2Vec2 impulse; impulse.x = event.Impulse.x; impulse.y = event.Impulse.y; @@ -38,123 +40,139 @@ bool dd::Systems::PhysicsSystem::SetImpulse(const Events::SetImpulse &event) point.x = event.Point.x; point.y = event.Point.y; - Impulse i; i.Body = body; i.Impulse = impulse; i.Point = point; m_Impulses.push_back(i); - return true; } +void dd::Systems::PhysicsSystem::SyncEntitiesWithBodies() +{ + + for (auto i : m_EntitiesToBodies) { + EntityID entity = i.first; + b2Body* body = i.second; + + if (body == nullptr) { + LOG_ERROR("This body should not exist, please fix this"); + continue; + } + + auto transformComponent = m_World->GetComponent(entity); + if (! transformComponent) { + continue; + LOG_ERROR("RigidBody with no TransformComponent"); + } + + auto physicsComponent = m_World->GetComponent(entity); + if (! physicsComponent) { + continue; + LOG_ERROR("RigidBody with no PhysicsComponent"); + } + + + + if (m_World->GetEntityParent(entity) == 0) { //TODO: Make this work with childs too + b2Vec2 position; + position.x = transformComponent->Position.x; + position.y = transformComponent->Position.y; + float angle = glm::eulerAngles(transformComponent->Orientation).z; + body->SetTransform(position, angle); + body->SetLinearVelocity(b2Vec2(transformComponent->Velocity.x, transformComponent->Velocity.y)); + body->SetGravityScale(physicsComponent->GravityScale); + + b2Filter filter; + filter.categoryBits = physicsComponent->Category; + filter.maskBits = physicsComponent->Mask; + body->GetFixtureList()->SetFilterData(filter); + } + } +} + +void dd::Systems::PhysicsSystem::SyncBodiesWithEntities() +{ + for (auto i : m_BodiesToEntities) { + b2Body* body = i.first; + EntityID entity = i.second; + + if (body == nullptr) { + LOG_ERROR("This body should not exist, please fix this"); + continue; + } + + auto transformComponent = m_World->GetComponent(entity); + if (! transformComponent) { + continue; + LOG_ERROR("RigidBody with no TransformComponent"); + } + + auto physicsComponent = m_World->GetComponent(entity); + if (! physicsComponent) { + continue; + LOG_ERROR("RigidBody with no PhysicsComponent"); + } + + auto parent = m_World->GetEntityParent(entity); + if (parent == 0) { + auto physicsComponent = m_World->GetComponent(entity); + + if (physicsComponent->Calculate) { //TODO: REPLACE THIS WITH PARTICLE COLLISION FILTERS + transformComponent->Position.x = transformComponent->Position.x + (transformComponent->Velocity.x * m_TimeStep); + transformComponent->Position.y = transformComponent->Position.y + (transformComponent->Velocity.y * m_TimeStep); + } else { + b2Vec2 position = body->GetPosition(); + transformComponent->Position.x = position.x; + transformComponent->Position.y = position.y; + + float angle = body->GetAngle(); + transformComponent->Orientation = glm::quat(glm::vec3(0, 0, angle)); + + b2Vec2 velocity = body->GetLinearVelocity(); + transformComponent->Velocity.x = velocity.x; + transformComponent->Velocity.y = velocity.y; + } + } + } +} + void dd::Systems::PhysicsSystem::Update(double dt) { - m_Accumulator += dt; + while(m_Accumulator >= m_TimeStep) { + SyncEntitiesWithBodies(); - for (auto i : m_EntitiesToBodies) { - EntityID entity = i.first; - b2Body* body = i.second; - - auto transformComponent = m_World->GetComponent(entity); - if (! transformComponent) { - continue; - LOG_ERROR("RigidBody with no TransformComponent"); - } - auto physicsComponent = m_World->GetComponent(entity); - if (! physicsComponent) { - continue; - LOG_ERROR("RigidBody with no PhysicsComponent"); - } - - - if (body == nullptr) { - LOG_ERROR("This body should not exist"); - continue; - } - - if (m_World->GetEntityParent(entity) == 0) { //TODO: Make this work with childs too - b2Vec2 position; - position.x = transformComponent->Position.x; - position.y = transformComponent->Position.y; - float angle = glm::eulerAngles(transformComponent->Orientation).z; - body->SetTransform(position, angle); - body->SetLinearVelocity(b2Vec2(transformComponent->Velocity.x, transformComponent->Velocity.y)); - body->SetGravityScale(physicsComponent->GravityScale); - - b2Filter filter; - filter.categoryBits = physicsComponent->Category; - filter.maskBits = physicsComponent->Mask; - body->GetFixtureList()->SetFilterData(filter); - } - } - + //Apply Impulses Must be done after SyncEntitiesWithBodies for (auto i : m_Impulses) { i.Body->ApplyLinearImpulse(i.Impulse, i.Point, true); } m_Impulses.clear(); - + //Update the PhysicsWorld m_PhysicsWorld->Step(m_TimeStep, m_VelocityIterations, m_PositionIterations); + SyncBodiesWithEntities(); - - for (auto i : m_EntitiesToBodies) { + b2Vec2* positionBuffer = m_ParticleSystem->GetPositionBuffer(); + for (auto i : m_EntitiesToParticleHandle) { EntityID entity = i.first; - b2Body* body = i.second; + b2ParticleHandle* particleH = i.second; - if (body == nullptr) { - LOG_ERROR("This body should not exist"); - continue; - } + b2Vec2 positionB2 = positionBuffer[particleH->GetIndex()]; + glm::vec2 position = glm::vec2(positionB2.x, positionB2.y); - auto transformComponent = m_World->GetComponent(entity); - if (! transformComponent) - continue; - auto parent = m_World->GetEntityParent(entity); - if (parent == 0) { - auto physicsComponent = m_World->GetComponent(entity); - if (physicsComponent->Calculate) { //TODO: REPLACE THIS WITH PARTICLE COLLISION FILTERS - transformComponent->Position.x = transformComponent->Position.x + (transformComponent->Velocity.x * m_TimeStep); - transformComponent->Position.y = transformComponent->Position.y + (transformComponent->Velocity.y * m_TimeStep); - } - else { - b2Vec2 position = body->GetPosition(); - transformComponent->Position.x = position.x; - transformComponent->Position.y = position.y; - - float angle = body->GetAngle(); - transformComponent->Orientation = glm::quat(glm::vec3(0, 0, angle)); - - b2Vec2 velocity = body->GetLinearVelocity(); - transformComponent->Velocity.x = velocity.x; - transformComponent->Velocity.y = velocity.y; - } - } + EntityID entityParent = m_World->GetEntityParent(entity); + auto transform = m_World->GetComponent(entity); + auto transformParent = m_World->GetComponent(entityParent); + transform->Position = glm::vec3(position.x, position.y, -10) - transformParent->Position; } - b2Vec2* positionBuffer = m_ParticleSystem->GetPositionBuffer(); - for (auto i : m_EntitiesToParticleHandle) { - EntityID entity = i.first; - b2ParticleHandle* particleH = i.second; - - b2Vec2 positionB2 = positionBuffer[particleH->GetIndex()]; - glm::vec2 position = glm::vec2(positionB2.x, positionB2.y); - - - EntityID entityParent = m_World->GetEntityParent(entity); - auto transform = m_World->GetComponent(entity); - auto transformParent = m_World->GetComponent(entityParent); - - transform->Position = glm::vec3(position.x, position.y, -10) - transformParent->Position; - } - m_Accumulator -= dt; } } @@ -189,14 +207,16 @@ void dd::Systems::PhysicsSystem::OnEntityRemoved(EntityID entity) } b2Body* body = m_EntitiesToBodies[entity]; - - if (body != nullptr) { - m_EntitiesToBodies.erase(entity); - m_BodiesToEntities.erase(body); - - m_PhysicsWorld->DestroyBody(body); + if (body == nullptr) { + LOG_ERROR("Trying to remove non-exsisting body, Entity: %i", entity); + return; } + m_EntitiesToBodies.erase(entity); + m_BodiesToEntities.erase(body); + + body->GetWorld()->DestroyBody(body); + //delete body; } @@ -208,7 +228,6 @@ void dd::Systems::PhysicsSystem::CreateBody(EntityID entity) return; } - auto transformComponent = m_World->GetComponent(entity); if(!transformComponent) { LOG_ERROR("No TransformComponent in CreateBody"); @@ -241,14 +260,11 @@ void dd::Systems::PhysicsSystem::CreateBody(EntityID entity) auto circleComponent = m_World->GetComponent(entity); if (circleComponent) { pShape = new b2CircleShape(); - pShape->m_radius = absoluteTransform.Scale.x; - - - if (absoluteTransform.Scale.x != absoluteTransform.Scale.y && absoluteTransform.Scale.y != absoluteTransform.Scale.z) { - LOG_WARNING("Circles has to be of uniform scale."); - } pShape->m_radius = absoluteTransform.Scale.x/2; + if (absoluteTransform.Scale.x != absoluteTransform.Scale.y && absoluteTransform.Scale.y != absoluteTransform.Scale.z) { + LOG_WARNING("Circles has to be of uniform scale. xScale has been used for radius"); + } } } @@ -258,20 +274,21 @@ void dd::Systems::PhysicsSystem::CreateBody(EntityID entity) fixtureDef.filter.maskBits = physicsComponent->Mask; - if(physicsComponent->Static) { - body->CreateFixture(&fixtureDef); //Density kanske ska vara 0 på statiska kroppar - } - else { - fixtureDef.shape = pShape; - fixtureDef.density = 10.f; - fixtureDef.restitution = 1.0f; - fixtureDef.friction = 0.0f; - body->CreateFixture(&fixtureDef); - } + fixtureDef.shape = pShape; + fixtureDef.density = 10.f; + fixtureDef.restitution = 1.0f; + fixtureDef.friction = 0.0f; + body->CreateFixture(&fixtureDef); + delete pShape; + if(physicsComponent->Static) { + body->SetType(b2BodyType::b2_staticBody); + } else if (! physicsComponent->Static) { + body->SetType(b2BodyType::b2_dynamicBody); + } body->SetGravityScale(physicsComponent->GravityScale); m_EntitiesToBodies.insert(std::make_pair(entity, body)); @@ -301,11 +318,8 @@ void dd::Systems::PhysicsSystem::CreateParticleGroup(EntityID e) { auto t_waterparticle = m_World->CreateEntity(e); auto transformChild = m_World->AddComponent(t_waterparticle); - //auto sprite = m_World->AddComponent(t_waterparticle); - transformChild->Position = glm::vec3(t_ParticlePositions[i].x - transform->Position.x, t_ParticlePositions[i].y - transform->Position.y, -9.5f); transformChild->Scale = glm::vec3(m_ParticleSystem->GetRadius())/transform->Scale; - //sprite->SpriteFile = "Textures/Ball.png"; m_World->CommitEntity(t_waterparticle); m_EntitiesToParticleHandle.insert(std::make_pair(t_waterparticle, m_ParticleSystem->GetParticleHandleFromIndex(i))); @@ -320,9 +334,24 @@ void dd::Systems::PhysicsSystem::CreateParticleGroup(EntityID e) dd::Systems::PhysicsSystem::~PhysicsSystem() { - //TODO: INPUT CODE HERE + for (auto i = m_BodiesToEntities.begin(); i != m_BodiesToEntities.end(); i++) { + b2Body* body = i->first; + body->GetWorld()->DestroyBody(body); + //delete body; + } + m_BodiesToEntities.clear(); + m_EntitiesToBodies.clear(); + m_Impulses.clear(); + + //TODO:REMOVE PARTICLE SYSTEMS + if (m_ContactListener != nullptr) { delete m_ContactListener; m_ContactListener = nullptr; } + + if (m_PhysicsWorld != nullptr) { + delete m_PhysicsWorld; + m_PhysicsWorld = nullptr; + } } diff --git a/src/tests/RemovePhysicsSystemTest.cpp b/src/tests/RemovePhysicsSystemTest.cpp new file mode 100644 index 0000000..5cae97f --- /dev/null +++ b/src/tests/RemovePhysicsSystemTest.cpp @@ -0,0 +1,51 @@ +#include "PrecompiledHeader.h" +#include +#include "Core/World.h" +#include "Core/EventBroker.h" +#include "Physics/PhysicsSystem.h" +#include "Transform/TransformSystem.h" + +#include "Physics/CPhysics.h" +#include "Physics/CRectangleShape.h" + + + + +using namespace dd; + +BOOST_AUTO_TEST_CASE(RemovePhysicsSystemTest) +{ + // Setup world + std::shared_ptr eventBroker = std::make_shared(); + World world(eventBroker); + + world.SystemFactory.Register( + [this]() { return new Systems::TransformSystem(&world, eventBroker); }); + world.AddSystem(); + + world.SystemFactory.Register( + [this]() { return new Systems::PhysicsSystem(&world, eventBroker); }); + world.AddSystem(); + + world.ComponentFactory.Register(); + world.ComponentFactory.Register(); + + //Create entity + EntityID ent = world.CreateEntity(); + + auto transform = world.AddComponent(ent); + transform->Position = glm::vec3(20.f, 0.f, -10.f); + transform->Velocity = glm::vec3(1.f, 3.f, 0.f); + transform->Scale = glm::vec3(2.f, 5.f, 1.f); + + auto physics = world.AddComponent(ent); + physics->Static = false; + physics->Calculate = true; + physics->Category = CollisionLayer::Type::Ball; + physics->Mask = CollisionLayer::Type::Brick | CollisionLayer::Type::Pad | CollisionLayer::Wall; + physics->GravityScale = 0.f; + + auto rectangle = world.AddComponent(ent); + + +} \ No newline at end of file From cbaca42a3ccd6116a3547b35d70daf3264ec298a Mon Sep 17 00:00:00 2001 From: viktorljung Date: Thu, 1 Oct 2015 14:04:21 +0200 Subject: [PATCH 3/3] Changed SquidModel --- assets/Models/Test/Ball/Sid.mtl | 21 + assets/Models/Test/Ball/Sid.obj | 5707 ++++++++++++++++++++++ assets/Models/Test/Ball/SquidTexture.png | Bin 0 -> 15828 bytes include/Core/Engine.h | 8 +- src/game/Core/Renderer.cpp | 2 +- 5 files changed, 5733 insertions(+), 5 deletions(-) create mode 100644 assets/Models/Test/Ball/Sid.mtl create mode 100644 assets/Models/Test/Ball/Sid.obj create mode 100644 assets/Models/Test/Ball/SquidTexture.png diff --git a/assets/Models/Test/Ball/Sid.mtl b/assets/Models/Test/Ball/Sid.mtl new file mode 100644 index 0000000..a32169c --- /dev/null +++ b/assets/Models/Test/Ball/Sid.mtl @@ -0,0 +1,21 @@ +# Blender MTL File: 'Sid.blend' +# Material Count: 2 + +newmtl Derp +Ns 96.078431 +Ka 0.000000 0.000000 0.000000 +Kd 0.800000 0.800000 0.800000 +Ks 0.500000 0.500000 0.500000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd SquidTexture.png + +newmtl None +Ns 0 +Ka 0.000000 0.000000 0.000000 +Kd 0.8 0.8 0.8 +Ks 0.8 0.8 0.8 +d 1 +illum 2 +map_Kd SquidTexture.png diff --git a/assets/Models/Test/Ball/Sid.obj b/assets/Models/Test/Ball/Sid.obj new file mode 100644 index 0000000..0d13a53 --- /dev/null +++ b/assets/Models/Test/Ball/Sid.obj @@ -0,0 +1,5707 @@ +# Blender v2.75 (sub 0) OBJ File: 'Sid.blend' +# www.blender.org +mtllib Sid.mtl +o Plane +v -0.203014 -1.568914 -0.038551 +v -0.170206 -1.573657 -0.051347 +v -0.137398 -1.568914 -0.038551 +v -0.170206 -1.329666 -0.062822 +v -0.170206 -1.081658 -0.075595 +v -0.170206 -0.833955 -0.091461 +v -0.214628 -1.329667 -0.044422 +v -0.223660 -1.081658 -0.053454 +v -0.234877 -0.834010 -0.064670 +v -0.105535 -0.834010 -0.064670 +v -0.116752 -1.081658 -0.053454 +v -0.125784 -1.329667 -0.044422 +v -0.215218 -1.581564 -0.039319 +v -0.170206 -1.585965 -0.050777 +v -0.125194 -1.581564 -0.039319 +v -0.203069 -1.807691 -0.036413 +v -0.170206 -1.805778 -0.044109 +v -0.137343 -1.807691 -0.036413 +v -0.109466 -1.735929 -0.049091 +v -0.170206 -1.734486 -0.062521 +v -0.230946 -1.735929 -0.049091 +v -0.107408 -1.658198 -0.050283 +v -0.233003 -1.658198 -0.050283 +v -0.170206 -1.659148 -0.063997 +v -0.197852 -1.834679 -0.035428 +v -0.170206 -1.834800 -0.041302 +v -0.142559 -1.834679 -0.035428 +v -0.170206 -0.702509 -0.102028 +v -0.238654 -0.704428 -0.075576 +v -0.101758 -0.704428 -0.075576 +v -0.170206 -0.957708 -0.083536 +v -0.229275 -0.957710 -0.059069 +v -0.111137 -0.957710 -0.059069 +v -0.170206 -1.205601 -0.069212 +v -0.219146 -1.205601 -0.048940 +v -0.121266 -1.205601 -0.048940 +v -0.129916 -1.453529 -0.040444 +v -0.170206 -1.453770 -0.057073 +v -0.210496 -1.453529 -0.040444 +v -0.341813 -0.710253 -0.150945 +v -0.272561 -0.658812 -0.092734 +v -0.036081 -0.720854 -0.139280 +v -0.128678 -0.779623 -0.235449 +v -0.388081 -0.832059 -0.455676 +v -0.401540 -0.902034 -0.372530 +v -0.506558 -0.155320 -0.140329 +v -0.508012 0.107512 -0.060636 +v -0.504835 -0.022067 -0.150114 +v -0.574786 0.171938 -0.058641 +v -0.430283 0.244035 -0.159538 +v -0.527065 0.308595 -0.075310 +v -0.422455 0.480248 -0.083128 +v -0.132715 0.690575 -0.128448 +v -0.453503 -0.386439 -0.112009 +v -0.355113 -0.651476 -0.207466 +v -0.308675 -0.567122 -0.153987 +v -0.423777 -0.555532 -0.122375 +v -0.046467 -0.612898 -0.256224 +v -0.134734 -0.706985 -0.334305 +v -0.300478 -0.854331 -0.426651 +v -0.426839 -0.792083 -0.374661 +v -0.371537 -0.415842 -0.195995 +v -0.125795 -0.463615 -0.286598 +v -0.401722 -0.474641 -0.118123 +v -0.092070 -0.539436 -0.263820 +v -0.320983 -0.497731 -0.177106 +v -0.160875 0.359568 -0.291545 +v -0.156049 -0.033330 -0.386138 +v -0.471693 0.156455 -0.112886 +v -0.159953 -0.253099 -0.370082 +v -0.318445 0.584377 -0.098975 +v -0.369430 0.296429 -0.185319 +v -0.433894 -0.019103 -0.264046 +v -0.438824 -0.216490 -0.247697 +v -0.457925 0.149735 -0.155887 +v -0.170102 0.200036 -0.338946 +v -0.396432 0.171844 -0.241860 +v -0.489718 -0.287734 -0.125482 +v -0.153029 -0.375387 -0.329175 +v -0.412681 -0.327049 -0.221873 +v -0.220244 -0.762136 -0.151721 +v -0.152856 -0.713654 -0.071905 +v -0.310065 -0.889590 -0.358944 +v -0.269368 -0.629062 -0.297587 +v -0.207486 -0.554538 -0.242931 +v -0.426650 -0.830609 -0.332566 +v -0.260057 -0.439506 -0.253489 +v -0.222452 -0.512276 -0.232450 +v -0.282831 0.328709 -0.261116 +v -0.317505 -0.025351 -0.341713 +v -0.316960 -0.235961 -0.326909 +v -0.232748 0.641194 -0.114121 +v -0.306841 0.186428 -0.308977 +v -0.298015 -0.353400 -0.290148 +v -0.561240 0.123005 -0.061111 +v -0.147714 0.495362 -0.247057 +v -0.417708 0.349651 -0.140899 +v -0.506409 0.252027 -0.113375 +v -0.343159 0.425040 -0.168987 +v -0.259670 0.460606 -0.225043 +v -0.326345 -0.670190 -0.094407 +v -0.457605 -0.689737 -0.110517 +v -0.506214 -0.614689 -0.103857 +v -0.622611 -0.754139 -0.066227 +v -0.643732 -0.708888 -0.065265 +v 0.203014 -1.568914 -0.038551 +v 0.170206 -1.573657 -0.051347 +v 0.137398 -1.568914 -0.038551 +v 0.170206 -1.329666 -0.062822 +v 0.170206 -1.081658 -0.075595 +v 0.170206 -0.833955 -0.091461 +v 0.214628 -1.329667 -0.044422 +v 0.223660 -1.081658 -0.053454 +v 0.234877 -0.834010 -0.064670 +v 0.105535 -0.834010 -0.064670 +v 0.116752 -1.081658 -0.053454 +v 0.125784 -1.329667 -0.044422 +v 0.215218 -1.581564 -0.039319 +v 0.170206 -1.585965 -0.050777 +v 0.125194 -1.581564 -0.039319 +v 0.203069 -1.807691 -0.036413 +v 0.170206 -1.805778 -0.044109 +v 0.137343 -1.807691 -0.036413 +v 0.109466 -1.735929 -0.049091 +v 0.170206 -1.734486 -0.062521 +v 0.230946 -1.735929 -0.049091 +v 0.107409 -1.658198 -0.050283 +v 0.233003 -1.658198 -0.050283 +v 0.170206 -1.659148 -0.063997 +v 0.197852 -1.834679 -0.035428 +v 0.170206 -1.834800 -0.041302 +v 0.142559 -1.834679 -0.035428 +v 0.170206 -0.702509 -0.102028 +v 0.238654 -0.704428 -0.075576 +v 0.101758 -0.704428 -0.075576 +v 0.170206 -0.957708 -0.083536 +v 0.229275 -0.957710 -0.059068 +v 0.111137 -0.957710 -0.059068 +v 0.170206 -1.205601 -0.069212 +v 0.219146 -1.205601 -0.048940 +v 0.121266 -1.205601 -0.048940 +v 0.129916 -1.453529 -0.040444 +v 0.170206 -1.453770 -0.057073 +v 0.210496 -1.453529 -0.040444 +v 0.341813 -0.710253 -0.150945 +v 0.272561 -0.658812 -0.092734 +v 0.036081 -0.720854 -0.139280 +v 0.128678 -0.779623 -0.235449 +v 0.388081 -0.832059 -0.455675 +v 0.401540 -0.902034 -0.372530 +v 0.506558 -0.155320 -0.140329 +v 0.508012 0.107512 -0.060636 +v 0.504835 -0.022067 -0.150114 +v 0.574786 0.171938 -0.058641 +v 0.430283 0.244035 -0.159538 +v 0.527065 0.308595 -0.075310 +v 0.422455 0.480248 -0.083128 +v 0.132715 0.690575 -0.128448 +v 0.453503 -0.386439 -0.112009 +v 0.355113 -0.651476 -0.207466 +v 0.308675 -0.567122 -0.153987 +v 0.423777 -0.555532 -0.122375 +v 0.046467 -0.612898 -0.256224 +v 0.134735 -0.706985 -0.334305 +v 0.300479 -0.854331 -0.426651 +v 0.426839 -0.792083 -0.374661 +v 0.371537 -0.415842 -0.195995 +v 0.125795 -0.463615 -0.286598 +v 0.401722 -0.474641 -0.118123 +v 0.092070 -0.539436 -0.263820 +v 0.320983 -0.497731 -0.177106 +v 0.160875 0.359568 -0.291545 +v 0.156049 -0.033330 -0.386138 +v 0.471693 0.156455 -0.112886 +v 0.159953 -0.253099 -0.370082 +v 0.318445 0.584377 -0.098975 +v 0.369430 0.296429 -0.185319 +v 0.433894 -0.019103 -0.264046 +v 0.438824 -0.216490 -0.247697 +v 0.457925 0.149735 -0.155887 +v 0.170102 0.200036 -0.338946 +v 0.396432 0.171844 -0.241860 +v 0.489718 -0.287734 -0.125482 +v 0.153029 -0.375387 -0.329175 +v 0.412681 -0.327049 -0.221873 +v 0.220244 -0.762136 -0.151721 +v 0.152856 -0.713654 -0.071905 +v 0.310065 -0.889590 -0.358944 +v 0.269368 -0.629062 -0.297587 +v 0.207486 -0.554538 -0.242930 +v 0.426650 -0.830609 -0.332565 +v 0.260057 -0.439506 -0.253489 +v 0.222452 -0.512276 -0.232450 +v 0.282831 0.328709 -0.261116 +v 0.317505 -0.025351 -0.341713 +v 0.316960 -0.235961 -0.326909 +v 0.232748 0.641194 -0.114121 +v 0.306842 0.186428 -0.308977 +v 0.298015 -0.353400 -0.290148 +v 0.561240 0.123005 -0.061111 +v 0.147714 0.495362 -0.247057 +v 0.417708 0.349651 -0.140899 +v 0.506409 0.252027 -0.113375 +v 0.343159 0.425040 -0.168986 +v 0.259670 0.460606 -0.225043 +v 0.326345 -0.670190 -0.094407 +v 0.457605 -0.689737 -0.110516 +v 0.506214 -0.614689 -0.103857 +v 0.622611 -0.754139 -0.066227 +v 0.643732 -0.708888 -0.065265 +v 0.000000 -0.701395 -0.129000 +v 0.000000 0.735176 -0.119139 +v 0.000000 -0.613126 -0.251227 +v 0.000000 -0.478324 -0.301106 +v 0.000000 -0.551876 -0.270303 +v 0.000000 0.384353 -0.290575 +v 0.000000 -0.037916 -0.387735 +v 0.000000 -0.262565 -0.381055 +v 0.000000 0.205094 -0.348652 +v 0.000000 -0.386491 -0.345103 +v 0.000000 0.522768 -0.242150 +v -0.057236 -0.580283 -0.000000 +v -0.083363 -0.569494 -0.000000 +v -0.170206 -0.550679 -0.000000 +v -0.257049 -0.569494 -0.000000 +v -0.283176 -0.580283 -0.000000 +v -0.219975 -1.565353 -0.000000 +v -0.203014 -1.568914 0.038551 +v -0.170206 -1.573657 0.051347 +v -0.137398 -1.568914 0.038551 +v -0.120437 -1.565353 -0.000000 +v -0.261661 -0.834060 -0.000000 +v -0.245801 -1.081658 -0.000000 +v -0.233028 -1.329668 -0.000000 +v -0.170206 -1.329666 0.062822 +v -0.170206 -1.081658 0.075595 +v -0.170206 -0.833955 0.091461 +v -0.214628 -1.329667 0.044422 +v -0.223660 -1.081658 0.053454 +v -0.234877 -0.834010 0.064670 +v -0.107384 -1.329668 -0.000000 +v -0.094611 -1.081658 -0.000000 +v -0.078751 -0.834060 -0.000000 +v -0.105535 -0.834010 0.064670 +v -0.116752 -1.081658 0.053454 +v -0.125784 -1.329667 0.044422 +v -0.238421 -1.576705 -0.000000 +v -0.215218 -1.581564 0.039319 +v -0.170206 -1.585965 0.050777 +v -0.125194 -1.581564 0.039319 +v -0.101991 -1.576705 -0.000000 +v -0.225642 -1.811924 -0.000000 +v -0.203069 -1.807691 0.036413 +v -0.170206 -1.805778 0.044109 +v -0.137343 -1.807691 0.036413 +v -0.114770 -1.811924 -0.000000 +v -0.075662 -1.738041 -0.000000 +v -0.109466 -1.735929 0.049091 +v -0.170206 -1.734486 0.062521 +v -0.230946 -1.735929 0.049091 +v -0.264750 -1.738041 -0.000000 +v -0.107409 -1.658198 0.050283 +v -0.233003 -1.658198 0.050283 +v -0.268017 -1.656752 -0.000000 +v -0.072395 -1.656752 -0.000000 +v -0.170206 -1.659148 0.063997 +v -0.220889 -1.837135 -0.000000 +v -0.197852 -1.834679 0.035428 +v -0.170206 -1.834800 0.041302 +v -0.142559 -1.834679 0.035428 +v -0.119523 -1.837135 -0.000000 +v -0.211154 -1.860929 -0.000000 +v -0.198535 -1.870912 -0.000000 +v -0.170206 -1.877319 -0.000000 +v -0.141877 -1.870912 -0.000000 +v -0.129258 -1.860929 -0.000000 +v -0.170206 -0.702509 0.102028 +v -0.238654 -0.704428 0.075576 +v -0.067878 -0.707656 -0.000000 +v -0.272533 -0.707656 -0.000000 +v -0.101758 -0.704428 0.075576 +v -0.253742 -0.957712 -0.000000 +v -0.170206 -0.957708 0.083536 +v -0.229275 -0.957710 0.059068 +v -0.086670 -0.957712 -0.000000 +v -0.111137 -0.957710 0.059068 +v -0.239418 -1.205601 -0.000000 +v -0.170206 -1.205601 0.069212 +v -0.219146 -1.205601 0.048940 +v -0.100994 -1.205601 -0.000000 +v -0.121266 -1.205601 0.048940 +v -0.227309 -1.453327 -0.000000 +v -0.129916 -1.453529 0.040444 +v -0.170206 -1.453770 0.057073 +v -0.210496 -1.453529 0.040444 +v -0.113102 -1.453327 -0.000000 +v -0.341813 -0.710253 0.150945 +v -0.272561 -0.658812 0.092734 +v -0.036081 -0.720854 0.139280 +v -0.128678 -0.779623 0.235449 +v -0.388081 -0.832059 0.455675 +v -0.401540 -0.902034 0.372530 +v -0.506558 -0.155320 0.140329 +v -0.508012 0.107512 0.060636 +v -0.504835 -0.022067 0.150114 +v -0.574786 0.171938 0.058641 +v -0.430283 0.244035 0.159538 +v -0.527065 0.308595 0.075310 +v -0.422455 0.480248 0.083128 +v -0.132715 0.690575 0.128448 +v -0.453503 -0.386439 0.112009 +v -0.355113 -0.651476 0.207466 +v -0.308675 -0.567122 0.153987 +v -0.423777 -0.555532 0.122375 +v -0.046467 -0.612898 0.256224 +v -0.134735 -0.706985 0.334305 +v -0.300479 -0.854331 0.426651 +v -0.426839 -0.792083 0.374661 +v -0.371537 -0.415842 0.195995 +v -0.125795 -0.463615 0.286598 +v -0.401722 -0.474641 0.118123 +v -0.092070 -0.539436 0.263820 +v -0.320983 -0.497731 0.177106 +v -0.160875 0.359568 0.291545 +v -0.156049 -0.033330 0.386138 +v -0.471693 0.156455 0.112886 +v -0.159953 -0.253099 0.370082 +v -0.318445 0.584377 0.098975 +v -0.369430 0.296429 0.185319 +v -0.433894 -0.019103 0.264046 +v -0.438824 -0.216490 0.247697 +v -0.457925 0.149735 0.155887 +v -0.170102 0.200036 0.338946 +v -0.396432 0.171844 0.241860 +v -0.489718 -0.287734 0.125482 +v -0.153029 -0.375387 0.329175 +v -0.412681 -0.327049 0.221873 +v -0.220244 -0.762136 0.151721 +v -0.152856 -0.713654 0.071905 +v -0.310065 -0.889590 0.358944 +v -0.269368 -0.629062 0.297587 +v -0.207486 -0.554538 0.242930 +v -0.426650 -0.830609 0.332565 +v -0.260057 -0.439506 0.253489 +v -0.222452 -0.512276 0.232450 +v -0.282831 0.328709 0.261116 +v -0.317505 -0.025351 0.341713 +v -0.316960 -0.235961 0.326909 +v -0.232748 0.641194 0.114121 +v -0.306842 0.186428 0.308977 +v -0.298015 -0.353400 0.290148 +v -0.561240 0.123005 0.061111 +v -0.147714 0.495362 0.247057 +v -0.417708 0.349651 0.140899 +v -0.506409 0.252027 0.113375 +v -0.343159 0.425040 0.168986 +v -0.259670 0.460606 0.225043 +v -0.326345 -0.670190 0.094407 +v -0.457605 -0.689737 0.110516 +v -0.506214 -0.614689 0.103857 +v -0.622611 -0.754139 0.066227 +v -0.643732 -0.708888 0.065265 +v -0.523231 -0.130116 -0.000000 +v -0.519517 0.086785 -0.000000 +v -0.509674 -0.035365 -0.000000 +v -0.591977 0.165066 -0.000000 +v -0.468473 0.098814 -0.000000 +v -0.540888 0.361809 -0.000000 +v -0.438119 0.520819 -0.000000 +v -0.149793 0.746870 -0.000000 +v -0.499173 -0.355046 -0.000000 +v -0.452856 0.121278 -0.000000 +v -0.322514 0.626321 -0.000000 +v -0.470241 0.113956 -0.000000 +v -0.517998 -0.253650 -0.000000 +v -0.233790 0.690042 -0.000000 +v -0.576326 0.106563 -0.000000 +v -0.450562 -0.441349 -0.000000 +v -0.505692 -0.497249 -0.000000 +v -0.295176 -0.686480 -0.000000 +v -0.392392 -0.737880 -0.000000 +v -0.545410 -0.543096 -0.000000 +v -0.653121 -0.775965 -0.000000 +v -0.687859 -0.680204 -0.000000 +v -0.116707 -0.634022 -0.000000 +v 0.057236 -0.580283 0.000000 +v 0.083363 -0.569494 0.000000 +v 0.170206 -0.550679 0.000000 +v 0.257049 -0.569494 0.000000 +v 0.283176 -0.580283 0.000000 +v 0.219975 -1.565353 0.000000 +v 0.203014 -1.568914 0.038551 +v 0.170206 -1.573657 0.051347 +v 0.137398 -1.568914 0.038551 +v 0.120437 -1.565353 0.000000 +v 0.261661 -0.834060 0.000000 +v 0.245801 -1.081658 0.000000 +v 0.233028 -1.329668 0.000000 +v 0.170206 -1.329666 0.062822 +v 0.170206 -1.081658 0.075595 +v 0.170206 -0.833955 0.091461 +v 0.214628 -1.329667 0.044422 +v 0.223660 -1.081658 0.053454 +v 0.234877 -0.834010 0.064670 +v 0.107384 -1.329668 0.000000 +v 0.094611 -1.081658 0.000000 +v 0.078751 -0.834060 0.000000 +v 0.105535 -0.834010 0.064670 +v 0.116752 -1.081658 0.053454 +v 0.125784 -1.329667 0.044422 +v 0.238421 -1.576705 0.000000 +v 0.215218 -1.581564 0.039319 +v 0.170206 -1.585965 0.050777 +v 0.125194 -1.581564 0.039319 +v 0.101991 -1.576705 0.000000 +v 0.225642 -1.811924 0.000000 +v 0.203069 -1.807691 0.036413 +v 0.170206 -1.805778 0.044109 +v 0.137343 -1.807691 0.036413 +v 0.114770 -1.811924 0.000000 +v 0.075662 -1.738041 0.000000 +v 0.109466 -1.735929 0.049091 +v 0.170206 -1.734486 0.062521 +v 0.230946 -1.735929 0.049091 +v 0.264750 -1.738041 0.000000 +v 0.107408 -1.658198 0.050283 +v 0.233003 -1.658198 0.050283 +v 0.268017 -1.656752 0.000000 +v 0.072395 -1.656752 0.000000 +v 0.170206 -1.659148 0.063997 +v 0.220889 -1.837135 0.000000 +v 0.197852 -1.834679 0.035428 +v 0.170206 -1.834800 0.041302 +v 0.142559 -1.834679 0.035428 +v 0.119523 -1.837135 0.000000 +v 0.211154 -1.860929 0.000000 +v 0.198535 -1.870912 0.000000 +v 0.170206 -1.877319 0.000000 +v 0.141877 -1.870912 0.000000 +v 0.129258 -1.860929 0.000000 +v 0.170206 -0.702509 0.102028 +v 0.238654 -0.704428 0.075576 +v 0.067878 -0.707656 0.000000 +v 0.272533 -0.707656 0.000000 +v 0.101758 -0.704428 0.075576 +v 0.253742 -0.957712 0.000000 +v 0.170206 -0.957708 0.083536 +v 0.229275 -0.957710 0.059069 +v 0.086670 -0.957712 0.000000 +v 0.111137 -0.957710 0.059069 +v 0.239418 -1.205601 0.000000 +v 0.170206 -1.205601 0.069212 +v 0.219146 -1.205601 0.048940 +v 0.100994 -1.205601 0.000000 +v 0.121266 -1.205601 0.048940 +v 0.227309 -1.453327 0.000000 +v 0.129916 -1.453529 0.040444 +v 0.170206 -1.453770 0.057073 +v 0.210496 -1.453529 0.040444 +v 0.113102 -1.453327 0.000000 +v 0.341813 -0.710253 0.150945 +v 0.272561 -0.658812 0.092734 +v 0.036081 -0.720854 0.139280 +v 0.128678 -0.779623 0.235449 +v 0.388081 -0.832059 0.455676 +v 0.401540 -0.902034 0.372530 +v 0.506558 -0.155320 0.140329 +v 0.508012 0.107512 0.060636 +v 0.504835 -0.022067 0.150114 +v 0.574786 0.171938 0.058641 +v 0.430283 0.244035 0.159538 +v 0.527065 0.308595 0.075310 +v 0.422455 0.480248 0.083128 +v 0.132715 0.690575 0.128448 +v 0.453503 -0.386439 0.112009 +v 0.355113 -0.651476 0.207466 +v 0.308675 -0.567122 0.153987 +v 0.423777 -0.555532 0.122375 +v 0.046467 -0.612898 0.256224 +v 0.134734 -0.706985 0.334305 +v 0.300478 -0.854331 0.426651 +v 0.426839 -0.792083 0.374661 +v 0.371537 -0.415842 0.195995 +v 0.125795 -0.463615 0.286598 +v 0.401722 -0.474641 0.118123 +v 0.092070 -0.539436 0.263820 +v 0.320983 -0.497731 0.177106 +v 0.160875 0.359568 0.291545 +v 0.156049 -0.033330 0.386138 +v 0.471693 0.156455 0.112886 +v 0.159953 -0.253099 0.370082 +v 0.318445 0.584377 0.098975 +v 0.369430 0.296429 0.185319 +v 0.433894 -0.019103 0.264046 +v 0.438824 -0.216490 0.247697 +v 0.457925 0.149735 0.155887 +v 0.170102 0.200036 0.338946 +v 0.396432 0.171844 0.241860 +v 0.489718 -0.287734 0.125482 +v 0.153029 -0.375387 0.329175 +v 0.412681 -0.327049 0.221873 +v 0.220244 -0.762136 0.151721 +v 0.152856 -0.713654 0.071905 +v 0.310065 -0.889590 0.358944 +v 0.269368 -0.629062 0.297587 +v 0.207486 -0.554538 0.242931 +v 0.426650 -0.830609 0.332566 +v 0.260057 -0.439506 0.253489 +v 0.222452 -0.512276 0.232450 +v 0.282831 0.328709 0.261116 +v 0.317505 -0.025351 0.341713 +v 0.316960 -0.235961 0.326909 +v 0.232748 0.641194 0.114121 +v 0.306841 0.186428 0.308977 +v 0.298015 -0.353400 0.290148 +v 0.561240 0.123005 0.061111 +v 0.147714 0.495362 0.247057 +v 0.417708 0.349651 0.140899 +v 0.506409 0.252027 0.113375 +v 0.343159 0.425040 0.168987 +v 0.259670 0.460606 0.225043 +v 0.326345 -0.670190 0.094407 +v 0.457605 -0.689737 0.110517 +v 0.506214 -0.614689 0.103857 +v 0.622611 -0.754139 0.066227 +v 0.643732 -0.708888 0.065265 +v -0.000000 -0.701395 0.129000 +v -0.000000 0.735176 0.119139 +v -0.000000 -0.613126 0.251227 +v -0.000000 -0.478324 0.301106 +v -0.000000 -0.551876 0.270303 +v -0.000000 0.384353 0.290575 +v -0.000000 -0.037916 0.387735 +v -0.000000 -0.262565 0.381055 +v -0.000000 0.205094 0.348652 +v -0.000000 -0.386491 0.345103 +v -0.000000 0.522768 0.242150 +v 0.523231 -0.130116 0.000000 +v 0.519517 0.086785 0.000000 +v 0.509674 -0.035365 0.000000 +v 0.591977 0.165066 0.000000 +v 0.468473 0.098814 0.000000 +v 0.540888 0.361809 0.000000 +v 0.438119 0.520819 0.000000 +v 0.149793 0.746870 0.000000 +v 0.499173 -0.355046 0.000000 +v 0.452856 0.121278 0.000000 +v 0.322514 0.626321 0.000000 +v 0.470241 0.113956 0.000000 +v 0.517998 -0.253650 0.000000 +v 0.233790 0.690042 0.000000 +v 0.576326 0.106563 0.000000 +v 0.450562 -0.441349 0.000000 +v 0.505692 -0.497249 0.000000 +v 0.295176 -0.686480 0.000000 +v 0.392392 -0.737880 0.000000 +v 0.545410 -0.543096 0.000000 +v 0.653121 -0.775965 0.000000 +v 0.687859 -0.680204 0.000000 +v 0.116707 -0.634022 0.000000 +v 0.000000 0.802606 0.000000 +v 0.000000 -0.622545 0.000000 +v -0.183536 -1.576375 -0.013330 +v -0.170206 -1.576375 -0.018852 +v -0.156875 -1.576375 -0.013330 +v -0.170206 -1.328077 -0.030354 +v -0.170206 -1.079780 -0.043143 +v -0.170206 -0.831483 -0.059049 +v -0.191670 -1.328077 -0.021464 +v -0.200712 -1.079780 -0.030506 +v -0.211960 -0.831483 -0.041754 +v -0.128452 -0.831483 -0.041754 +v -0.139699 -1.079780 -0.030506 +v -0.148742 -1.328077 -0.021464 +v -0.197800 -1.591893 -0.013272 +v -0.170206 -1.591893 -0.018769 +v -0.142611 -1.591893 -0.013272 +v -0.187911 -1.800411 -0.008515 +v -0.170206 -1.800411 -0.012043 +v -0.152501 -1.800411 -0.008515 +v -0.125646 -1.730117 -0.021432 +v -0.170206 -1.730117 -0.030309 +v -0.214766 -1.730117 -0.021432 +v -0.123758 -1.661727 -0.022339 +v -0.216654 -1.661727 -0.022339 +v -0.170206 -1.661727 -0.031593 +v -0.184172 -1.826993 -0.006717 +v -0.170206 -1.826993 -0.009499 +v -0.156240 -1.826993 -0.006717 +v -0.170206 -0.707334 -0.069814 +v -0.219572 -0.707334 -0.049366 +v -0.120840 -0.707334 -0.049366 +v -0.170206 -0.955631 -0.051096 +v -0.206336 -0.955631 -0.036130 +v -0.134076 -0.955631 -0.036130 +v -0.170206 -1.203929 -0.036748 +v -0.196191 -1.203929 -0.025985 +v -0.144221 -1.203929 -0.025985 +v -0.152809 -1.452226 -0.017397 +v -0.170206 -1.452226 -0.024603 +v -0.187603 -1.452226 -0.017397 +v -0.318182 -0.698659 -0.170534 +v -0.253084 -0.632106 -0.088812 +v -0.049415 -0.691270 -0.141206 +v -0.146482 -0.752407 -0.235877 +v -0.373708 -0.831169 -0.426532 +v -0.386636 -0.873150 -0.371511 +v -0.475795 -0.153344 -0.130011 +v -0.511181 0.133658 -0.041556 +v -0.474008 -0.026440 -0.140771 +v -0.547109 0.169169 -0.041778 +v -0.407220 0.241402 -0.136457 +v -0.502461 0.298857 -0.056423 +v -0.401276 0.465145 -0.063620 +v -0.123020 0.668310 -0.106835 +v -0.426513 -0.373429 -0.099366 +v -0.325640 -0.665741 -0.205271 +v -0.285292 -0.562974 -0.131193 +v -0.408944 -0.558046 -0.093502 +v -0.054897 -0.604433 -0.225989 +v -0.153080 -0.706313 -0.307471 +v -0.314944 -0.843130 -0.399746 +v -0.397477 -0.803904 -0.367138 +v -0.351881 -0.400999 -0.174779 +v -0.118729 -0.449925 -0.257974 +v -0.378223 -0.469231 -0.096314 +v -0.087215 -0.532533 -0.232413 +v -0.303330 -0.488303 -0.151478 +v -0.155619 0.349414 -0.261115 +v -0.151426 -0.035196 -0.354016 +v -0.466339 0.183429 -0.087694 +v -0.154209 -0.246960 -0.338681 +v -0.299184 0.565350 -0.080979 +v -0.349004 0.286941 -0.161878 +v -0.410575 -0.021796 -0.241559 +v -0.415381 -0.210880 -0.225887 +v -0.427537 0.143688 -0.144557 +v -0.165232 0.192110 -0.307798 +v -0.373920 0.162750 -0.220245 +v -0.460314 -0.279533 -0.114308 +v -0.146187 -0.362564 -0.300099 +v -0.390694 -0.314888 -0.201248 +v -0.217959 -0.735870 -0.170757 +v -0.154713 -0.685814 -0.088694 +v -0.322379 -0.859443 -0.358710 +v -0.261395 -0.650783 -0.274753 +v -0.196626 -0.564669 -0.213930 +v -0.397877 -0.821175 -0.344509 +v -0.247173 -0.424395 -0.227753 +v -0.209314 -0.503712 -0.203917 +v -0.267288 0.318178 -0.234579 +v -0.304094 -0.027205 -0.312160 +v -0.303272 -0.229573 -0.298125 +v -0.217053 0.619927 -0.095195 +v -0.292385 0.177670 -0.281210 +v -0.284530 -0.340079 -0.263740 +v -0.540254 0.138453 -0.041667 +v -0.141675 0.481710 -0.218180 +v -0.399981 0.341326 -0.114954 +v -0.487629 0.248649 -0.086988 +v -0.324094 0.414198 -0.144993 +v -0.244923 0.447954 -0.198982 +v -0.323285 -0.645710 -0.072713 +v -0.459726 -0.672791 -0.082858 +v -0.494470 -0.622863 -0.074666 +v -0.613801 -0.735057 -0.041385 +v -0.623846 -0.711319 -0.039635 +v 0.183536 -1.576375 -0.013330 +v 0.170206 -1.576375 -0.018852 +v 0.156875 -1.576375 -0.013330 +v 0.170206 -1.328077 -0.030354 +v 0.170206 -1.079780 -0.043142 +v 0.170206 -0.831483 -0.059049 +v 0.191670 -1.328077 -0.021464 +v 0.200712 -1.079780 -0.030506 +v 0.211960 -0.831483 -0.041754 +v 0.128452 -0.831483 -0.041754 +v 0.139699 -1.079780 -0.030506 +v 0.148742 -1.328077 -0.021464 +v 0.197800 -1.591893 -0.013272 +v 0.170206 -1.591893 -0.018769 +v 0.142611 -1.591893 -0.013272 +v 0.187911 -1.800411 -0.008515 +v 0.170206 -1.800411 -0.012043 +v 0.152501 -1.800411 -0.008515 +v 0.125646 -1.730117 -0.021431 +v 0.170206 -1.730117 -0.030309 +v 0.214766 -1.730117 -0.021431 +v 0.123758 -1.661727 -0.022339 +v 0.216654 -1.661727 -0.022339 +v 0.170206 -1.661727 -0.031593 +v 0.184172 -1.826993 -0.006717 +v 0.170206 -1.826993 -0.009499 +v 0.156240 -1.826993 -0.006717 +v 0.170206 -0.707334 -0.069814 +v 0.219572 -0.707334 -0.049366 +v 0.120840 -0.707334 -0.049366 +v 0.170206 -0.955631 -0.051096 +v 0.206336 -0.955631 -0.036130 +v 0.134076 -0.955631 -0.036130 +v 0.170206 -1.203929 -0.036748 +v 0.196191 -1.203929 -0.025985 +v 0.144221 -1.203929 -0.025985 +v 0.152809 -1.452226 -0.017397 +v 0.170206 -1.452226 -0.024603 +v 0.187603 -1.452226 -0.017397 +v 0.318182 -0.698659 -0.170534 +v 0.253084 -0.632106 -0.088812 +v 0.049415 -0.691270 -0.141206 +v 0.146482 -0.752407 -0.235877 +v 0.373708 -0.831169 -0.426532 +v 0.386636 -0.873150 -0.371511 +v 0.475795 -0.153344 -0.130011 +v 0.511181 0.133658 -0.041556 +v 0.474008 -0.026440 -0.140771 +v 0.547109 0.169169 -0.041778 +v 0.407220 0.241402 -0.136457 +v 0.502461 0.298857 -0.056423 +v 0.401276 0.465145 -0.063620 +v 0.123020 0.668310 -0.106835 +v 0.426513 -0.373429 -0.099366 +v 0.325640 -0.665741 -0.205271 +v 0.285292 -0.562974 -0.131193 +v 0.408944 -0.558046 -0.093502 +v 0.054898 -0.604433 -0.225989 +v 0.153080 -0.706313 -0.307471 +v 0.314944 -0.843130 -0.399746 +v 0.397477 -0.803904 -0.367137 +v 0.351881 -0.400999 -0.174779 +v 0.118729 -0.449925 -0.257974 +v 0.378223 -0.469231 -0.096314 +v 0.087215 -0.532533 -0.232413 +v 0.303330 -0.488303 -0.151478 +v 0.155619 0.349414 -0.261115 +v 0.151427 -0.035196 -0.354015 +v 0.466339 0.183429 -0.087694 +v 0.154209 -0.246960 -0.338681 +v 0.299184 0.565350 -0.080979 +v 0.349004 0.286941 -0.161877 +v 0.410575 -0.021796 -0.241559 +v 0.415381 -0.210880 -0.225887 +v 0.427537 0.143688 -0.144557 +v 0.165232 0.192110 -0.307798 +v 0.373920 0.162750 -0.220245 +v 0.460314 -0.279533 -0.114308 +v 0.146187 -0.362564 -0.300099 +v 0.390694 -0.314888 -0.201248 +v 0.217959 -0.735870 -0.170757 +v 0.154713 -0.685814 -0.088694 +v 0.322380 -0.859443 -0.358710 +v 0.261395 -0.650783 -0.274753 +v 0.196627 -0.564669 -0.213930 +v 0.397878 -0.821175 -0.344508 +v 0.247173 -0.424395 -0.227753 +v 0.209314 -0.503712 -0.203917 +v 0.267288 0.318178 -0.234579 +v 0.304094 -0.027205 -0.312159 +v 0.303272 -0.229573 -0.298125 +v 0.217053 0.619927 -0.095195 +v 0.292385 0.177670 -0.281210 +v 0.284530 -0.340079 -0.263740 +v 0.540254 0.138453 -0.041667 +v 0.141675 0.481710 -0.218180 +v 0.399981 0.341326 -0.114954 +v 0.487629 0.248649 -0.086988 +v 0.324094 0.414198 -0.144993 +v 0.244923 0.447954 -0.198982 +v 0.323285 -0.645710 -0.072712 +v 0.459726 -0.672791 -0.082857 +v 0.494470 -0.622863 -0.074666 +v 0.613801 -0.735057 -0.041385 +v 0.623846 -0.711319 -0.039635 +v 0.000000 -0.668841 -0.128750 +v 0.000000 0.711039 -0.097357 +v 0.000000 -0.598862 -0.221815 +v 0.000000 -0.465157 -0.271386 +v 0.000000 -0.543316 -0.238939 +v 0.000000 0.374270 -0.259671 +v 0.000000 -0.039945 -0.355292 +v 0.000000 -0.256691 -0.349083 +v 0.000000 0.197303 -0.317093 +v 0.000000 -0.374165 -0.315024 +v 0.000000 0.508964 -0.212719 +v -0.089627 -0.583185 -0.000000 +v -0.113228 -0.583185 -0.000000 +v -0.170206 -0.583185 -0.000000 +v -0.227184 -0.583185 -0.000000 +v -0.250785 -0.583185 -0.000000 +v -0.189058 -1.576375 -0.000000 +v -0.183536 -1.576375 0.013330 +v -0.170206 -1.576375 0.018852 +v -0.156875 -1.576375 0.013330 +v -0.151354 -1.576375 -0.000000 +v -0.229255 -0.831483 -0.000000 +v -0.213349 -1.079780 -0.000000 +v -0.200560 -1.328077 -0.000000 +v -0.170206 -1.328077 0.030354 +v -0.170206 -1.079780 0.043142 +v -0.170206 -0.831483 0.059049 +v -0.191670 -1.328077 0.021464 +v -0.200712 -1.079780 0.030506 +v -0.211960 -0.831483 0.041754 +v -0.139852 -1.328077 -0.000000 +v -0.127063 -1.079780 -0.000000 +v -0.111157 -0.831483 -0.000000 +v -0.128452 -0.831483 0.041754 +v -0.139699 -1.079780 0.030506 +v -0.148742 -1.328077 0.021464 +v -0.209230 -1.591893 -0.000000 +v -0.197800 -1.591893 0.013272 +v -0.170206 -1.591893 0.018769 +v -0.142611 -1.591893 0.013272 +v -0.131181 -1.591893 -0.000000 +v -0.195245 -1.800411 -0.000000 +v -0.187911 -1.800411 0.008515 +v -0.170206 -1.800411 0.012043 +v -0.152501 -1.800411 0.008515 +v -0.145167 -1.800411 -0.000000 +v -0.107188 -1.730117 -0.000000 +v -0.125646 -1.730117 0.021431 +v -0.170206 -1.730117 0.030309 +v -0.214766 -1.730117 0.021431 +v -0.233223 -1.730117 -0.000000 +v -0.123758 -1.661727 0.022339 +v -0.216654 -1.661727 0.022339 +v -0.235893 -1.661727 -0.000000 +v -0.104519 -1.661727 -0.000000 +v -0.170206 -1.661727 0.031593 +v -0.189957 -1.826993 -0.000000 +v -0.184172 -1.826993 0.006717 +v -0.170206 -1.826993 0.009499 +v -0.156240 -1.826993 0.006717 +v -0.150455 -1.826993 -0.000000 +v -0.182840 -1.844812 -0.000000 +v -0.179139 -1.844812 -0.000000 +v -0.170206 -1.844812 -0.000000 +v -0.161272 -1.844812 -0.000000 +v -0.157572 -1.844812 -0.000000 +v -0.170206 -0.707334 0.069814 +v -0.219572 -0.707334 0.049366 +v -0.100392 -0.707334 -0.000000 +v -0.240020 -0.707334 -0.000000 +v -0.120840 -0.707334 0.049366 +v -0.221302 -0.955631 -0.000000 +v -0.170206 -0.955631 0.051096 +v -0.206336 -0.955631 0.036130 +v -0.119110 -0.955631 -0.000000 +v -0.134076 -0.955631 0.036130 +v -0.206954 -1.203929 -0.000000 +v -0.170206 -1.203929 0.036748 +v -0.196191 -1.203929 0.025985 +v -0.133457 -1.203929 -0.000000 +v -0.144221 -1.203929 0.025985 +v -0.194809 -1.452226 -0.000000 +v -0.152809 -1.452226 0.017397 +v -0.170206 -1.452226 0.024603 +v -0.187603 -1.452226 0.017397 +v -0.145603 -1.452226 -0.000000 +v -0.318182 -0.698659 0.170534 +v -0.253084 -0.632106 0.088812 +v -0.049415 -0.691270 0.141206 +v -0.146482 -0.752407 0.235877 +v -0.373708 -0.831169 0.426532 +v -0.386636 -0.873150 0.371511 +v -0.475795 -0.153344 0.130011 +v -0.511181 0.133658 0.041556 +v -0.474008 -0.026440 0.140771 +v -0.547109 0.169169 0.041778 +v -0.407220 0.241402 0.136457 +v -0.502461 0.298857 0.056423 +v -0.401276 0.465145 0.063620 +v -0.123020 0.668310 0.106835 +v -0.426513 -0.373429 0.099366 +v -0.325640 -0.665741 0.205271 +v -0.285292 -0.562974 0.131193 +v -0.408944 -0.558046 0.093502 +v -0.054898 -0.604433 0.225989 +v -0.153080 -0.706313 0.307471 +v -0.314944 -0.843130 0.399746 +v -0.397477 -0.803904 0.367137 +v -0.351881 -0.400999 0.174779 +v -0.118729 -0.449925 0.257974 +v -0.378223 -0.469231 0.096314 +v -0.087215 -0.532533 0.232413 +v -0.303330 -0.488303 0.151478 +v -0.155619 0.349414 0.261115 +v -0.151427 -0.035196 0.354015 +v -0.466339 0.183429 0.087694 +v -0.154209 -0.246960 0.338681 +v -0.299184 0.565350 0.080979 +v -0.349004 0.286941 0.161877 +v -0.410575 -0.021796 0.241559 +v -0.415381 -0.210880 0.225887 +v -0.427537 0.143688 0.144557 +v -0.165232 0.192110 0.307798 +v -0.373920 0.162750 0.220245 +v -0.460314 -0.279533 0.114308 +v -0.146187 -0.362564 0.300099 +v -0.390694 -0.314888 0.201248 +v -0.217959 -0.735870 0.170757 +v -0.154713 -0.685814 0.088694 +v -0.322380 -0.859443 0.358710 +v -0.261395 -0.650783 0.274753 +v -0.196627 -0.564669 0.213930 +v -0.397878 -0.821175 0.344508 +v -0.247173 -0.424395 0.227753 +v -0.209314 -0.503712 0.203917 +v -0.267288 0.318178 0.234579 +v -0.304094 -0.027205 0.312159 +v -0.303272 -0.229573 0.298125 +v -0.217053 0.619927 0.095195 +v -0.292385 0.177670 0.281210 +v -0.284530 -0.340079 0.263740 +v -0.540254 0.138453 0.041667 +v -0.141675 0.481710 0.218180 +v -0.399981 0.341326 0.114954 +v -0.487629 0.248649 0.086988 +v -0.324094 0.414198 0.144993 +v -0.244923 0.447954 0.198982 +v -0.323285 -0.645710 0.072712 +v -0.459726 -0.672791 0.082857 +v -0.494470 -0.622863 0.074666 +v -0.613801 -0.735057 0.041385 +v -0.623846 -0.711319 0.039635 +v -0.490724 -0.130016 -0.000000 +v -0.523394 0.119072 -0.000000 +v -0.477580 -0.040527 -0.000000 +v -0.559464 0.164297 -0.000000 +v -0.420224 0.176511 -0.000000 +v -0.511808 0.347278 -0.000000 +v -0.413141 0.500016 -0.000000 +v -0.135771 0.717541 -0.000000 +v -0.468569 -0.344054 -0.000000 +v -0.466104 0.155368 -0.000000 +v -0.301750 0.601310 -0.000000 +v -0.437352 0.109415 -0.000000 +v -0.485942 -0.248253 -0.000000 +v -0.215674 0.663051 -0.000000 +v -0.552538 0.128724 -0.000000 +v -0.418273 -0.437503 -0.000000 +v -0.478798 -0.515592 -0.000000 +v -0.297263 -0.654020 -0.000000 +v -0.402165 -0.706866 -0.000000 +v -0.522051 -0.565707 -0.000000 +v -0.634745 -0.749150 -0.000000 +v -0.656862 -0.690032 -0.000000 +v -0.123954 -0.602300 -0.000000 +v 0.089627 -0.583185 0.000000 +v 0.113228 -0.583185 0.000000 +v 0.170206 -0.583185 0.000000 +v 0.227184 -0.583185 0.000000 +v 0.250785 -0.583185 0.000000 +v 0.189058 -1.576375 0.000000 +v 0.183536 -1.576375 0.013330 +v 0.170206 -1.576375 0.018852 +v 0.156875 -1.576375 0.013330 +v 0.151354 -1.576375 0.000000 +v 0.229255 -0.831483 0.000000 +v 0.213349 -1.079780 0.000000 +v 0.200560 -1.328077 0.000000 +v 0.170206 -1.328077 0.030354 +v 0.170206 -1.079780 0.043143 +v 0.170206 -0.831483 0.059049 +v 0.191670 -1.328077 0.021464 +v 0.200712 -1.079780 0.030506 +v 0.211960 -0.831483 0.041754 +v 0.139852 -1.328077 0.000000 +v 0.127063 -1.079780 0.000000 +v 0.111157 -0.831483 0.000000 +v 0.128452 -0.831483 0.041754 +v 0.139699 -1.079780 0.030506 +v 0.148742 -1.328077 0.021464 +v 0.209230 -1.591893 0.000000 +v 0.197800 -1.591893 0.013272 +v 0.170206 -1.591893 0.018769 +v 0.142611 -1.591893 0.013272 +v 0.131181 -1.591893 0.000000 +v 0.195245 -1.800411 0.000000 +v 0.187911 -1.800411 0.008515 +v 0.170206 -1.800411 0.012043 +v 0.152501 -1.800411 0.008515 +v 0.145167 -1.800411 0.000000 +v 0.107188 -1.730117 0.000000 +v 0.125646 -1.730117 0.021432 +v 0.170206 -1.730117 0.030309 +v 0.214766 -1.730117 0.021432 +v 0.233223 -1.730117 0.000000 +v 0.123758 -1.661727 0.022339 +v 0.216654 -1.661727 0.022339 +v 0.235893 -1.661727 0.000000 +v 0.104519 -1.661727 0.000000 +v 0.170206 -1.661727 0.031593 +v 0.189957 -1.826993 0.000000 +v 0.184172 -1.826993 0.006717 +v 0.170206 -1.826993 0.009499 +v 0.156240 -1.826993 0.006717 +v 0.150455 -1.826993 0.000000 +v 0.182840 -1.844812 0.000000 +v 0.179139 -1.844812 0.000000 +v 0.170206 -1.844812 0.000000 +v 0.161272 -1.844812 0.000000 +v 0.157572 -1.844812 0.000000 +v 0.170206 -0.707334 0.069814 +v 0.219572 -0.707334 0.049366 +v 0.100392 -0.707334 0.000000 +v 0.240020 -0.707334 0.000000 +v 0.120840 -0.707334 0.049366 +v 0.221302 -0.955631 0.000000 +v 0.170206 -0.955631 0.051096 +v 0.206336 -0.955631 0.036130 +v 0.119110 -0.955631 0.000000 +v 0.134076 -0.955631 0.036130 +v 0.206954 -1.203929 0.000000 +v 0.170206 -1.203929 0.036748 +v 0.196191 -1.203929 0.025985 +v 0.133457 -1.203929 0.000000 +v 0.144221 -1.203929 0.025985 +v 0.194809 -1.452226 0.000000 +v 0.152809 -1.452226 0.017397 +v 0.170206 -1.452226 0.024603 +v 0.187603 -1.452226 0.017397 +v 0.145603 -1.452226 0.000000 +v 0.318182 -0.698659 0.170534 +v 0.253084 -0.632106 0.088812 +v 0.049415 -0.691270 0.141206 +v 0.146482 -0.752407 0.235877 +v 0.373708 -0.831169 0.426532 +v 0.386636 -0.873150 0.371511 +v 0.475795 -0.153344 0.130011 +v 0.511181 0.133658 0.041556 +v 0.474008 -0.026440 0.140771 +v 0.547109 0.169169 0.041778 +v 0.407220 0.241402 0.136457 +v 0.502461 0.298857 0.056423 +v 0.401276 0.465145 0.063620 +v 0.123020 0.668310 0.106835 +v 0.426513 -0.373429 0.099366 +v 0.325640 -0.665741 0.205271 +v 0.285292 -0.562974 0.131193 +v 0.408944 -0.558046 0.093502 +v 0.054897 -0.604433 0.225989 +v 0.153080 -0.706313 0.307471 +v 0.314944 -0.843130 0.399746 +v 0.397477 -0.803904 0.367138 +v 0.351881 -0.400999 0.174779 +v 0.118729 -0.449925 0.257974 +v 0.378223 -0.469231 0.096314 +v 0.087215 -0.532533 0.232413 +v 0.303330 -0.488303 0.151478 +v 0.155619 0.349414 0.261115 +v 0.151426 -0.035196 0.354016 +v 0.466339 0.183429 0.087694 +v 0.154209 -0.246960 0.338681 +v 0.299184 0.565350 0.080979 +v 0.349004 0.286941 0.161878 +v 0.410575 -0.021796 0.241559 +v 0.415381 -0.210880 0.225887 +v 0.427537 0.143688 0.144557 +v 0.165232 0.192110 0.307798 +v 0.373920 0.162750 0.220245 +v 0.460314 -0.279533 0.114308 +v 0.146187 -0.362564 0.300099 +v 0.390694 -0.314888 0.201248 +v 0.217959 -0.735870 0.170757 +v 0.154713 -0.685814 0.088694 +v 0.322379 -0.859443 0.358710 +v 0.261395 -0.650783 0.274753 +v 0.196626 -0.564669 0.213930 +v 0.397877 -0.821175 0.344509 +v 0.247173 -0.424395 0.227753 +v 0.209314 -0.503712 0.203917 +v 0.267288 0.318178 0.234579 +v 0.304094 -0.027205 0.312160 +v 0.303272 -0.229573 0.298125 +v 0.217053 0.619927 0.095195 +v 0.292385 0.177670 0.281210 +v 0.284530 -0.340079 0.263740 +v 0.540254 0.138453 0.041667 +v 0.141675 0.481710 0.218180 +v 0.399981 0.341326 0.114954 +v 0.487629 0.248649 0.086988 +v 0.324094 0.414198 0.144993 +v 0.244923 0.447954 0.198982 +v 0.323285 -0.645710 0.072713 +v 0.459726 -0.672791 0.082858 +v 0.494470 -0.622863 0.074666 +v 0.613801 -0.735057 0.041385 +v 0.623846 -0.711319 0.039635 +v -0.000000 -0.668841 0.128750 +v -0.000000 0.711039 0.097357 +v -0.000000 -0.598862 0.221815 +v -0.000000 -0.465157 0.271386 +v -0.000000 -0.543316 0.238939 +v -0.000000 0.374270 0.259671 +v -0.000000 -0.039945 0.355292 +v -0.000000 -0.256691 0.349083 +v -0.000000 0.197303 0.317093 +v -0.000000 -0.374165 0.315024 +v -0.000000 0.508964 0.212719 +v 0.490724 -0.130016 0.000000 +v 0.523394 0.119072 0.000000 +v 0.477580 -0.040527 0.000000 +v 0.559464 0.164297 0.000000 +v 0.420224 0.176511 0.000000 +v 0.511808 0.347278 0.000000 +v 0.413141 0.500016 0.000000 +v 0.135771 0.717541 0.000000 +v 0.468569 -0.344054 0.000000 +v 0.466104 0.155368 0.000000 +v 0.301750 0.601310 0.000000 +v 0.437352 0.109415 0.000000 +v 0.485942 -0.248253 0.000000 +v 0.215674 0.663051 0.000000 +v 0.552538 0.128724 0.000000 +v 0.418273 -0.437503 0.000000 +v 0.478798 -0.515592 0.000000 +v 0.297263 -0.654020 0.000000 +v 0.402165 -0.706866 0.000000 +v 0.522051 -0.565707 0.000000 +v 0.634745 -0.749150 0.000000 +v 0.656862 -0.690032 0.000000 +v 0.123954 -0.602300 0.000000 +v 0.000000 0.770099 0.000000 +v 0.000000 -0.590038 0.000000 +vt 0.765667 0.847851 +vt 0.781406 0.881190 +vt 0.757326 0.897740 +vt 0.820730 0.960391 +vt 0.802617 0.952261 +vt 0.541679 0.522282 +vt 0.503869 0.505868 +vt 0.534446 0.481536 +vt 0.813702 0.879176 +vt 0.828604 0.944627 +vt 0.348861 0.273078 +vt 0.327204 0.236304 +vt 0.348470 0.229238 +vt 0.523775 0.470642 +vt 0.379614 0.360342 +vt 0.368479 0.327104 +vt 0.402840 0.321660 +vt 0.196117 0.168219 +vt 0.207618 0.212142 +vt 0.153801 0.203441 +vt 0.592581 0.524769 +vt 0.573477 0.533686 +vt 0.576737 0.501503 +vt 0.147971 0.164759 +vt 0.117999 0.200664 +vt 0.253544 0.157057 +vt 0.246687 0.159448 +vt 0.243896 0.147003 +vt 0.556820 0.495176 +vt 0.561521 0.456032 +vt 0.287378 0.190075 +vt 0.310344 0.186756 +vt 0.008155 0.307394 +vt 0.034796 0.301414 +vt 0.030874 0.334151 +vt 0.568960 0.457867 +vt 0.575756 0.461730 +vt 0.081702 0.200796 +vt 0.052650 0.204107 +vt 0.054548 0.172529 +vt 0.558976 0.447837 +vt 0.574977 0.446772 +vt 0.488321 0.506845 +vt 0.488454 0.478851 +vt 0.246940 0.180887 +vt 0.246421 0.215578 +vt 0.217765 0.169501 +vt 0.261128 0.160439 +vt 0.266041 0.149090 +vt 0.510862 0.526170 +vt 0.562570 0.551870 +vt 0.592250 0.559761 +vt 0.048126 0.233678 +vt 0.018481 0.240712 +vt 0.022196 0.213642 +vt 0.016085 0.271814 +vt 0.488146 0.522567 +vt 0.272640 0.352308 +vt 0.266285 0.309796 +vt 0.306509 0.317265 +vt 0.219390 0.348309 +vt 0.218504 0.304402 +vt 0.097073 0.300587 +vt 0.154005 0.305479 +vt 0.152365 0.343275 +vt 0.259571 0.241715 +vt 0.284232 0.228202 +vt 0.228105 0.159529 +vt 0.267650 0.189263 +vt 0.156116 0.266050 +vt 0.063491 0.298386 +vt 0.093667 0.338867 +vt 0.101905 0.262714 +vt 0.156504 0.233886 +vt 0.105516 0.229954 +vt 0.212060 0.239792 +vt 0.260313 0.276531 +vt 0.299464 0.259009 +vt 0.359509 0.299307 +vt 0.374862 0.266999 +vt 0.075719 0.230415 +vt 0.070080 0.261898 +vt 0.059995 0.336338 +vt 0.084177 0.167430 +vt 0.042328 0.265609 +vt 0.214589 0.269155 +vt 0.390637 0.295167 +vt 0.300579 0.287682 +vt 0.541593 0.537835 +vt 0.580964 0.460070 +vt 0.800982 0.844542 +vt 0.313721 0.355393 +vt 0.023567 0.182058 +vt 0.595587 0.583529 +vt 0.579256 0.583190 +vt 0.575877 0.565793 +vt 0.598951 0.536440 +vt 0.616408 0.555802 +vt 0.811548 0.811816 +vt 0.821678 0.836571 +vt 0.850639 0.811816 +vt 0.612502 0.566147 +vt 0.640763 0.574032 +vt 0.607645 0.583771 +vt 0.636557 0.577063 +vt 0.923996 0.811816 +vt 0.916944 0.825389 +vt 0.645790 0.584535 +vt 0.634813 0.584315 +vt 0.716415 0.855602 +vt 0.716415 0.811816 +vt 0.752707 0.811816 +vt 0.667162 0.847851 +vt 0.701030 0.862184 +vt 0.675503 0.897740 +vt 0.630213 0.952261 +vt 0.612100 0.960391 +vt 0.651423 0.881190 +vt 0.435661 0.521616 +vt 0.420646 0.494770 +vt 0.442807 0.481307 +vt 0.604225 0.944627 +vt 0.345060 0.486512 +vt 0.324023 0.476269 +vt 0.346611 0.442818 +vt 0.472887 0.505628 +vt 0.453425 0.470551 +vt 0.401769 0.402432 +vt 0.367621 0.391842 +vt 0.191393 0.524548 +vt 0.143252 0.520777 +vt 0.150095 0.483047 +vt 0.400890 0.501018 +vt 0.404023 0.532867 +vt 0.385154 0.524054 +vt 0.115791 0.516551 +vt 0.114290 0.480446 +vt 0.238516 0.552891 +vt 0.241631 0.540890 +vt 0.248411 0.544306 +vt 0.408681 0.457781 +vt 0.416057 0.455978 +vt 0.305884 0.523188 +vt 0.283052 0.516430 +vt 0.033922 0.367412 +vt 0.007492 0.357446 +vt 0.401939 0.461597 +vt 0.050220 0.499004 +vt 0.049163 0.467204 +vt 0.078069 0.474868 +vt 0.402740 0.446772 +vt 0.418597 0.447861 +vt 0.213033 0.526517 +vt 0.242852 0.484832 +vt 0.242451 0.519531 +vt 0.260672 0.554132 +vt 0.256070 0.542068 +vt 0.465725 0.525575 +vt 0.414679 0.550862 +vt 0.401598 0.564665 +vt 0.385436 0.558614 +vt 0.045431 0.437013 +vt 0.019022 0.453118 +vt 0.014463 0.394145 +vt 0.305513 0.392363 +vt 0.265172 0.393781 +vt 0.153001 0.381243 +vt 0.096052 0.377581 +vt 0.280922 0.477906 +vt 0.256668 0.460719 +vt 0.223088 0.538020 +vt 0.154063 0.420909 +vt 0.217343 0.391995 +vt 0.062479 0.374739 +vt 0.099871 0.416105 +vt 0.102608 0.449341 +vt 0.153598 0.453068 +vt 0.204035 0.482438 +vt 0.296940 0.449447 +vt 0.258330 0.426084 +vt 0.372400 0.452786 +vt 0.357933 0.418238 +vt 0.072882 0.444410 +vt 0.209200 0.455510 +vt 0.212503 0.426585 +vt 0.068088 0.412143 +vt 0.079656 0.508539 +vt 0.040490 0.404276 +vt 0.388889 0.427042 +vt 0.298812 0.420997 +vt 0.016031 0.425545 +vt 0.435834 0.536932 +vt 0.396779 0.459941 +vt 0.631847 0.844542 +vt 0.263342 0.514280 +vt 0.248478 0.556199 +vt 0.019553 0.484844 +vt 0.381930 0.582105 +vt 0.378876 0.535598 +vt 0.365480 0.564740 +vt 0.361742 0.554580 +vt 0.611151 0.836571 +vt 0.621281 0.811816 +vt 0.567553 0.841240 +vt 0.582190 0.811816 +vt 0.370025 0.582122 +vt 0.341824 0.575112 +vt 0.337758 0.572098 +vt 0.343422 0.582222 +vt 0.515886 0.825389 +vt 0.508833 0.811816 +vt 0.332714 0.582275 +vt 0.680122 0.811816 +vt 0.765667 0.775781 +vt 0.731799 0.761448 +vt 0.757326 0.725892 +vt 0.802617 0.671371 +vt 0.820730 0.663242 +vt 0.781406 0.742443 +vt 0.539594 0.643435 +vt 0.554193 0.670622 +vt 0.531837 0.683699 +vt 0.828604 0.679006 +vt 0.479666 0.083641 +vt 0.499691 0.092947 +vt 0.474072 0.127737 +vt 0.502214 0.659084 +vt 0.521087 0.694243 +vt 0.415338 0.171083 +vt 0.448404 0.180106 +vt 0.433529 0.212420 +vt 0.636397 0.037914 +vt 0.684045 0.039393 +vt 0.673728 0.077735 +vt 0.574070 0.664748 +vt 0.571561 0.632605 +vt 0.590374 0.642096 +vt 0.711032 0.042327 +vt 0.709184 0.078629 +vt 0.592040 0.011631 +vt 0.587823 0.023872 +vt 0.581379 0.020757 +vt 0.565451 0.707786 +vt 0.558059 0.709446 +vt 0.522121 0.044803 +vt 0.544260 0.050511 +vt 0.778801 0.221997 +vt 0.778844 0.188635 +vt 0.804271 0.197401 +vt 0.572250 0.704105 +vt 0.774782 0.056845 +vt 0.772891 0.088832 +vt 0.744781 0.082503 +vt 0.571169 0.718879 +vt 0.555377 0.717492 +vt 0.486415 0.685497 +vt 0.486873 0.657751 +vt 0.615004 0.036973 +vt 0.581414 0.080407 +vt 0.585026 0.045429 +vt 0.570065 0.011449 +vt 0.573536 0.023381 +vt 0.509527 0.639229 +vt 0.561148 0.614017 +vt 0.575139 0.600508 +vt 0.591299 0.607170 +vt 0.773815 0.119068 +vt 0.801637 0.101570 +vt 0.800720 0.160764 +vt 0.487143 0.642136 +vt 0.510375 0.176588 +vt 0.550726 0.173214 +vt 0.539440 0.215358 +vt 0.592160 0.216820 +vt 0.658518 0.218661 +vt 0.661401 0.180440 +vt 0.717840 0.181384 +vt 0.542815 0.089220 +vt 0.565405 0.105366 +vt 0.606044 0.025869 +vt 0.664016 0.140528 +vt 0.598247 0.172708 +vt 0.716633 0.220273 +vt 0.751050 0.182629 +vt 0.717601 0.142757 +vt 0.717951 0.109404 +vt 0.667458 0.108107 +vt 0.619892 0.080948 +vt 0.524209 0.118664 +vt 0.560540 0.140340 +vt 0.449284 0.118937 +vt 0.460508 0.153045 +vt 0.747131 0.112939 +vt 0.612248 0.108327 +vt 0.606277 0.137627 +vt 0.748922 0.145216 +vt 0.749970 0.221197 +vt 0.746318 0.048657 +vt 0.775710 0.151812 +vt 0.430460 0.145669 +vt 0.519708 0.147416 +vt 0.802065 0.129205 +vt 0.539592 0.628021 +vt 0.577368 0.705857 +vt 0.800982 0.779090 +vt 0.563712 0.051727 +vt 0.498767 0.214229 +vt 0.582414 0.008778 +vt 0.804046 0.069632 +vt 0.597108 0.630696 +vt 0.611792 0.601578 +vt 0.615284 0.612064 +vt 0.821678 0.787061 +vt 0.865276 0.782392 +vt 0.636265 0.591632 +vt 0.640346 0.594828 +vt 0.916944 0.798243 +vt 0.716415 0.768030 +vt 0.667162 0.775781 +vt 0.651423 0.742443 +vt 0.675503 0.725892 +vt 0.612100 0.663242 +vt 0.630213 0.671371 +vt 0.434314 0.642430 +vt 0.471474 0.658610 +vt 0.441087 0.682242 +vt 0.619127 0.744456 +vt 0.604225 0.679006 +vt 0.456108 0.298854 +vt 0.474294 0.334858 +vt 0.452437 0.343002 +vt 0.451406 0.693085 +vt 0.441552 0.245369 +vt 0.406790 0.252510 +vt 0.598684 0.397134 +vt 0.591285 0.353437 +vt 0.644135 0.359609 +vt 0.385062 0.639373 +vt 0.403731 0.630839 +vt 0.400085 0.662191 +vt 0.646365 0.398300 +vt 0.679573 0.360682 +vt 0.540393 0.411148 +vt 0.547452 0.408408 +vt 0.549081 0.420811 +vt 0.419371 0.668626 +vt 0.414221 0.706770 +vt 0.509720 0.379513 +vt 0.486514 0.383964 +vt 0.798974 0.247859 +vt 0.771859 0.255168 +vt 0.406981 0.704864 +vt 0.400405 0.700987 +vt 0.715774 0.358799 +vt 0.745046 0.354062 +vt 0.740229 0.385968 +vt 0.416583 0.714824 +vt 0.400931 0.715608 +vt 0.549185 0.386821 +vt 0.552916 0.351846 +vt 0.577219 0.396886 +vt 0.533146 0.408106 +vt 0.527196 0.419776 +vt 0.464588 0.638573 +vt 0.414699 0.613138 +vt 0.385481 0.605425 +vt 0.752295 0.324053 +vt 0.782503 0.315537 +vt 0.776291 0.342988 +vt 0.787773 0.284087 +vt 0.541838 0.257881 +vt 0.502426 0.252295 +vt 0.588976 0.261012 +vt 0.709692 0.259003 +vt 0.653382 0.256819 +vt 0.542226 0.326147 +vt 0.516387 0.340950 +vt 0.565986 0.407430 +vt 0.529313 0.379380 +vt 0.647626 0.296644 +vt 0.742969 0.259602 +vt 0.701367 0.297392 +vt 0.644260 0.329067 +vt 0.694732 0.330570 +vt 0.589417 0.325794 +vt 0.544711 0.291106 +vt 0.504054 0.310647 +vt 0.447921 0.272942 +vt 0.429621 0.306232 +vt 0.724482 0.328670 +vt 0.733021 0.296680 +vt 0.710215 0.392534 +vt 0.761034 0.291604 +vt 0.589615 0.296334 +vt 0.416502 0.278614 +vt 0.505598 0.281813 +vt 0.434384 0.627385 +vt 0.395297 0.702524 +vt 0.631847 0.779090 +vt 0.772000 0.374874 +vt 0.398255 0.582155 +vt 0.401609 0.599424 +vt 0.379009 0.628098 +vt 0.361983 0.609576 +vt 0.611151 0.787061 +vt 0.365609 0.599452 +vt 0.337869 0.592387 +vt 0.341895 0.589336 +vt 0.515886 0.798243 +vt 0.731799 0.862184 +vt 0.498552 0.476686 +vt 0.412977 0.362847 +vt 0.586244 0.501621 +vt 0.120453 0.164856 +vt 0.253926 0.145197 +vt 0.005191 0.332222 +vt 0.865276 0.841240 +vt 0.619127 0.879176 +vt 0.478394 0.476642 +vt 0.391466 0.501119 +vt 0.813702 0.744456 +vt 0.496368 0.687823 +vt 0.400498 0.211503 +vt 0.583493 0.664861 +vt 0.804229 0.222703 +vt 0.701030 0.761448 +vt 0.476382 0.687504 +vt 0.390838 0.661924 +vt 0.673810 0.396875 +vt 0.538914 0.423115 +vt 0.567553 0.782393 +vt 0.945666 0.143947 +vt 0.945489 0.098242 +vt 0.951021 0.098065 +vt 0.952286 0.143864 +vt 0.956543 0.097871 +vt 0.939254 0.143829 +vt 0.940254 0.099324 +vt 0.958711 0.143591 +vt 0.961748 0.098620 +vt 0.973390 0.398424 +vt 0.972632 0.358389 +vt 0.988248 0.357454 +vt 0.969929 0.315651 +vt 0.966895 0.272634 +vt 0.978299 0.271606 +vt 0.973823 0.228802 +vt 0.964123 0.229615 +vt 0.961401 0.186635 +vt 0.942008 0.398315 +vt 0.924803 0.400421 +vt 0.926568 0.358437 +vt 0.942944 0.316265 +vt 0.929471 0.315650 +vt 0.932532 0.272721 +vt 0.944664 0.230083 +vt 0.934934 0.229740 +vt 0.937267 0.186773 +vt 0.957768 0.397050 +vt 0.957114 0.358821 +vt 0.956428 0.316261 +vt 0.955436 0.273164 +vt 0.954398 0.230042 +vt 0.953357 0.186980 +vt 0.941852 0.358896 +vt 0.943968 0.273194 +vt 0.945304 0.187029 +vt 0.950833 0.092354 +vt 0.941012 0.092015 +vt 0.935215 0.092715 +vt 0.960586 0.091424 +vt 0.935811 0.048146 +vt 0.926562 0.047366 +vt 0.938955 0.023641 +vt 0.949535 0.047881 +vt 0.948865 0.024328 +vt 0.955013 0.023871 +vt 0.963251 0.047365 +vt 0.958720 0.023080 +vt 0.942701 0.024221 +vt 0.950131 0.068696 +vt 0.935498 0.069102 +vt 0.964757 0.068265 +vt 0.972437 0.046061 +vt 0.926131 0.069827 +vt 0.966386 0.091789 +vt 0.944144 0.015494 +vt 0.941306 0.014974 +vt 0.948616 0.015564 +vt 0.953077 0.015241 +vt 0.955881 0.014560 +vt 0.944193 0.009260 +vt 0.948432 0.009066 +vt 0.951431 0.009015 +vt 0.952674 0.009019 +vt 0.945435 0.009186 +vt 0.957639 0.441808 +vt 0.937632 0.441435 +vt 0.929668 0.443051 +vt 0.977636 0.441438 +vt 0.990439 0.400511 +vt 0.965339 0.143105 +vt 0.950445 0.098240 +vt 0.944914 0.098430 +vt 0.945193 0.144134 +vt 0.955967 0.098033 +vt 0.951813 0.144035 +vt 0.939681 0.099524 +vt 0.938780 0.144031 +vt 0.961175 0.098769 +vt 0.958237 0.143748 +vt 0.990531 0.400594 +vt 0.972632 0.358513 +vt 0.978109 0.271718 +vt 0.966706 0.272772 +vt 0.969835 0.315781 +vt 0.973538 0.228924 +vt 0.969047 0.186122 +vt 0.961023 0.186786 +vt 0.941853 0.359091 +vt 0.926568 0.358667 +vt 0.924895 0.400654 +vt 0.942851 0.316458 +vt 0.943781 0.273385 +vt 0.932344 0.272938 +vt 0.944927 0.187217 +vt 0.936889 0.186979 +vt 0.934651 0.229951 +vt 0.957114 0.358981 +vt 0.957853 0.397208 +vt 0.955249 0.273328 +vt 0.956335 0.316423 +vt 0.963840 0.229759 +vt 0.952979 0.187150 +vt 0.942095 0.398509 +vt 0.954116 0.230209 +vt 0.959996 0.091576 +vt 0.950245 0.092529 +vt 0.940423 0.092212 +vt 0.934628 0.092926 +vt 0.965797 0.091927 +vt 0.935124 0.048356 +vt 0.941961 0.024414 +vt 0.938214 0.023843 +vt 0.954272 0.024035 +vt 0.948125 0.024507 +vt 0.948848 0.048058 +vt 0.957977 0.023235 +vt 0.962563 0.047511 +vt 0.949490 0.068872 +vt 0.971746 0.046185 +vt 0.964116 0.068407 +vt 0.934858 0.069313 +vt 0.925874 0.047597 +vt 0.925493 0.070059 +vt 0.973502 0.068574 +vt 0.947857 0.015744 +vt 0.943384 0.015684 +vt 0.940546 0.015170 +vt 0.952317 0.015410 +vt 0.955119 0.014722 +vt 0.944661 0.009372 +vt 0.943420 0.009450 +vt 0.950656 0.009188 +vt 0.947658 0.009246 +vt 0.951901 0.009189 +vt 0.957822 0.441966 +vt 0.973477 0.398546 +vt 0.937813 0.441639 +vt 0.977817 0.441551 +vt 0.929377 0.315873 +vt 0.983326 0.314513 +vt 0.944382 0.230273 +vt 0.964865 0.143247 +vt 0.860080 0.103791 +vt 0.854567 0.103877 +vt 0.853871 0.149397 +vt 0.865583 0.103687 +vt 0.860466 0.149422 +vt 0.849333 0.104869 +vt 0.847488 0.149175 +vt 0.870753 0.104517 +vt 0.866870 0.149255 +vt 0.894670 0.405584 +vt 0.892345 0.362658 +vt 0.876818 0.363511 +vt 0.883940 0.277072 +vt 0.872561 0.277912 +vt 0.874783 0.320817 +vt 0.880297 0.234367 +vt 0.876734 0.191655 +vt 0.868728 0.192167 +vt 0.845961 0.363577 +vt 0.830654 0.362763 +vt 0.827503 0.404782 +vt 0.847870 0.321000 +vt 0.849714 0.278099 +vt 0.838331 0.277440 +vt 0.852689 0.192298 +vt 0.844689 0.191912 +vt 0.841544 0.234669 +vt 0.861218 0.363771 +vt 0.861256 0.402659 +vt 0.861138 0.278255 +vt 0.861313 0.321217 +vt 0.870620 0.235018 +vt 0.860710 0.192380 +vt 0.844975 0.403784 +vt 0.860925 0.235286 +vt 0.869733 0.097332 +vt 0.860002 0.098100 +vt 0.850228 0.097602 +vt 0.844442 0.098206 +vt 0.875502 0.097790 +vt 0.845886 0.053831 +vt 0.853205 0.030117 +vt 0.849486 0.029479 +vt 0.865472 0.029969 +vt 0.859341 0.030324 +vt 0.859559 0.053790 +vt 0.869179 0.029241 +vt 0.873227 0.053500 +vt 0.859755 0.074528 +vt 0.882400 0.052350 +vt 0.874328 0.074337 +vt 0.845175 0.074695 +vt 0.836691 0.052904 +vt 0.835832 0.075264 +vt 0.883671 0.074677 +vt 0.859261 0.021593 +vt 0.854808 0.021451 +vt 0.851992 0.020886 +vt 0.863710 0.021343 +vt 0.866514 0.020711 +vt 0.856214 0.015189 +vt 0.854977 0.015243 +vt 0.862188 0.015117 +vt 0.859201 0.015119 +vt 0.863427 0.015141 +vt 0.860523 0.448005 +vt 0.877327 0.404235 +vt 0.840734 0.447625 +vt 0.880299 0.448055 +vt 0.834451 0.320155 +vt 0.888240 0.319781 +vt 0.851229 0.235170 +vt 0.873481 0.148879 +vt 0.852940 0.149178 +vt 0.853392 0.103656 +vt 0.858904 0.103556 +vt 0.859534 0.149186 +vt 0.864407 0.103439 +vt 0.846555 0.148972 +vt 0.848164 0.104662 +vt 0.865937 0.149004 +vt 0.869581 0.104256 +vt 0.877759 0.403963 +vt 0.877032 0.363239 +vt 0.892554 0.362347 +vt 0.874768 0.320549 +vt 0.872317 0.277649 +vt 0.883691 0.276780 +vt 0.879819 0.234083 +vt 0.870146 0.234759 +vt 0.868025 0.191912 +vt 0.845405 0.403592 +vt 0.827939 0.404635 +vt 0.830865 0.362606 +vt 0.847857 0.320799 +vt 0.834434 0.319987 +vt 0.838085 0.277262 +vt 0.850757 0.234958 +vt 0.841069 0.234482 +vt 0.843986 0.191717 +vt 0.861680 0.402427 +vt 0.861434 0.363538 +vt 0.861301 0.320983 +vt 0.860896 0.278021 +vt 0.860453 0.235051 +vt 0.860008 0.192145 +vt 0.846176 0.363382 +vt 0.849471 0.277892 +vt 0.851987 0.192083 +vt 0.858796 0.097865 +vt 0.849020 0.097392 +vt 0.843237 0.098010 +vt 0.868522 0.097073 +vt 0.844444 0.053632 +vt 0.835244 0.052727 +vt 0.847913 0.029271 +vt 0.858116 0.053557 +vt 0.857773 0.030092 +vt 0.863902 0.029721 +vt 0.871782 0.053232 +vt 0.867604 0.028984 +vt 0.851636 0.029899 +vt 0.858423 0.074294 +vt 0.843844 0.074498 +vt 0.872994 0.074066 +vt 0.880949 0.052059 +vt 0.834505 0.075090 +vt 0.874293 0.097516 +vt 0.853193 0.021229 +vt 0.850374 0.020672 +vt 0.857645 0.021360 +vt 0.862093 0.021099 +vt 0.864894 0.020460 +vt 0.853328 0.015021 +vt 0.857551 0.014886 +vt 0.860538 0.014877 +vt 0.861777 0.014898 +vt 0.854565 0.014964 +vt 0.861190 0.447776 +vt 0.841399 0.447445 +vt 0.833364 0.447147 +vt 0.880966 0.447776 +vt 0.895109 0.405268 +vt 0.872546 0.148611 +vt 0.983423 0.314413 +vt 0.969427 0.185990 +vt 0.974143 0.068454 +vt 0.985583 0.443051 +vt 0.929853 0.443272 +vt 0.985768 0.443145 +vt 0.832700 0.447307 +vt 0.888323 0.447927 +vt 0.888219 0.319480 +vt 0.876028 0.191380 +vt 0.882339 0.074384 +vt 0.888989 0.447628 +vt 0.197547 0.846046 +vt 0.171566 0.833295 +vt 0.188233 0.809071 +vt 0.220904 0.771567 +vt 0.238829 0.765317 +vt 0.209453 0.823639 +vt 0.257384 0.841416 +vt 0.280868 0.854949 +vt 0.267232 0.884706 +vt 0.247978 0.780082 +vt 0.288302 0.924148 +vt 0.268096 0.914751 +vt 0.283816 0.888329 +vt 0.230321 0.881363 +vt 0.265981 0.906142 +vt 0.326853 0.855017 +vt 0.296199 0.847160 +vt 0.303303 0.821266 +vt 0.170767 0.964265 +vt 0.135547 0.963014 +vt 0.138799 0.932592 +vt 0.301905 0.837333 +vt 0.285036 0.813229 +vt 0.314584 0.811028 +vt 0.114049 0.960949 +vt 0.110845 0.931955 +vt 0.194306 0.980885 +vt 0.197767 0.967718 +vt 0.208222 0.971190 +vt 0.310489 0.882803 +vt 0.303160 0.890450 +vt 0.259440 0.954403 +vt 0.238483 0.947021 +vt 0.038742 0.819414 +vt 0.042909 0.845500 +vt 0.024565 0.838964 +vt 0.315911 0.873535 +vt 0.062629 0.950547 +vt 0.060051 0.924255 +vt 0.082637 0.929108 +vt 0.326500 0.893341 +vt 0.307417 0.903751 +vt 0.245242 0.916923 +vt 0.237095 0.920499 +vt 0.218942 0.888083 +vt 0.179293 0.969537 +vt 0.173947 0.965916 +vt 0.206710 0.924713 +vt 0.223563 0.981051 +vt 0.217817 0.968490 +vt 0.229931 0.857282 +vt 0.265521 0.805135 +vt 0.267955 0.781799 +vt 0.286340 0.780963 +vt 0.055238 0.899701 +vt 0.039160 0.913825 +vt 0.031562 0.867642 +vt 0.210260 0.872421 +vt 0.248526 0.849853 +vt 0.218462 0.852715 +vt 0.221368 0.820693 +vt 0.181901 0.820416 +vt 0.131495 0.820063 +vt 0.134254 0.849197 +vt 0.090683 0.849584 +vt 0.234412 0.916565 +vt 0.216798 0.905726 +vt 0.198235 0.951069 +vt 0.137576 0.880501 +vt 0.183138 0.853825 +vt 0.086625 0.819749 +vt 0.064479 0.849436 +vt 0.095792 0.879705 +vt 0.099912 0.906629 +vt 0.139429 0.906984 +vt 0.180079 0.930008 +vt 0.245527 0.895342 +vt 0.215880 0.879072 +vt 0.307551 0.896194 +vt 0.290922 0.868606 +vt 0.076404 0.904264 +vt 0.182239 0.905752 +vt 0.182224 0.881781 +vt 0.070747 0.878445 +vt 0.060412 0.819566 +vt 0.085980 0.956486 +vt 0.049610 0.873925 +vt 0.318525 0.875214 +vt 0.245434 0.873184 +vt 0.034409 0.891963 +vt 0.253097 0.830667 +vt 0.326550 0.873283 +vt 0.226479 0.844619 +vt 0.221202 0.944492 +vt 0.252274 0.820909 +vt 0.208907 0.984473 +vt 0.040953 0.942235 +vt 0.271969 0.750066 +vt 0.313102 0.800840 +vt 0.300480 0.762946 +vt 0.315967 0.772707 +vt 0.237458 0.845449 +vt 0.229674 0.867391 +vt 0.265440 0.841019 +vt 0.254553 0.867391 +vt 0.281756 0.743864 +vt 0.315675 0.736101 +vt 0.326549 0.736414 +vt 0.307464 0.727263 +vt 0.302572 0.852525 +vt 0.309877 0.867391 +vt 0.324088 0.716419 +vt 0.163724 0.837161 +vt 0.187274 0.867391 +vt 0.129901 0.846046 +vt 0.117994 0.823639 +vt 0.139215 0.809071 +vt 0.088618 0.765317 +vt 0.106543 0.771567 +vt 0.158029 0.896522 +vt 0.207200 0.894196 +vt 0.190784 0.927687 +vt 0.090686 0.826125 +vt 0.079469 0.780082 +vt 0.274939 0.753868 +vt 0.255715 0.727202 +vt 0.274699 0.718080 +vt 0.209848 0.937673 +vt 0.292773 0.795249 +vt 0.322416 0.787814 +vt 0.151755 0.676278 +vt 0.165601 0.710698 +vt 0.123942 0.707533 +vt 0.102732 0.931898 +vt 0.119097 0.906616 +vt 0.131930 0.933683 +vt 0.096046 0.707779 +vt 0.095423 0.678803 +vt 0.188330 0.669872 +vt 0.178324 0.673200 +vt 0.173121 0.659974 +vt 0.157906 0.924189 +vt 0.177400 0.961641 +vt 0.221812 0.694488 +vt 0.241813 0.687392 +vt 0.021970 0.799648 +vt 0.039467 0.793362 +vt 0.167074 0.964099 +vt 0.156313 0.964100 +vt 0.068188 0.710233 +vt 0.046222 0.714774 +vt 0.045330 0.688495 +vt 0.186697 0.972057 +vt 0.168072 0.983232 +vt 0.229789 0.925582 +vt 0.159593 0.671121 +vt 0.180992 0.689872 +vt 0.192956 0.716371 +vt 0.198291 0.672709 +vt 0.202383 0.660217 +vt 0.186745 0.880974 +vt 0.121727 0.884755 +vt 0.089260 0.892859 +vt 0.044648 0.739284 +vt 0.024822 0.746737 +vt 0.026690 0.724921 +vt 0.025185 0.771041 +vt 0.214229 0.788600 +vt 0.244699 0.791886 +vt 0.178726 0.786994 +vt 0.086746 0.789944 +vt 0.130409 0.790941 +vt 0.205561 0.735516 +vt 0.221760 0.724915 +vt 0.204849 0.696776 +vt 0.129598 0.759655 +vt 0.060537 0.789725 +vt 0.087881 0.759866 +vt 0.127955 0.733174 +vt 0.088448 0.732976 +vt 0.170967 0.735006 +vt 0.208163 0.762182 +vt 0.235689 0.746313 +vt 0.284657 0.773709 +vt 0.297658 0.746329 +vt 0.065231 0.735013 +vt 0.154720 0.674671 +vt 0.062979 0.760777 +vt 0.067918 0.682877 +vt 0.042420 0.765005 +vt 0.174118 0.758999 +vt 0.311413 0.767482 +vt 0.238522 0.768490 +vt 0.150709 0.887065 +vt 0.150738 0.973167 +vt 0.100969 0.844619 +vt 0.024732 0.696510 +vt 0.069135 0.867563 +vt 0.080942 0.861581 +vt 0.097735 0.876730 +vt 0.094461 0.925729 +vt 0.068275 0.915163 +vt 0.097773 0.867391 +vt 0.089989 0.845449 +vt 0.072895 0.867391 +vt 0.066996 0.897070 +vt 0.031541 0.906901 +vt 0.059522 0.872469 +vt 0.036590 0.897310 +vt 0.017570 0.867391 +vt 0.024876 0.852525 +vt 0.015378 0.894892 +vt 0.033062 0.885929 +vt 0.163724 0.867391 +vt 0.140174 0.867391 +vt 0.197547 0.888735 +vt 0.209453 0.911142 +vt 0.188233 0.925710 +vt 0.238829 0.969465 +vt 0.220904 0.963214 +vt 0.186652 0.725195 +vt 0.141369 0.728704 +vt 0.155494 0.697401 +vt 0.236761 0.908656 +vt 0.247978 0.954699 +vt 0.278956 0.730041 +vt 0.261664 0.704553 +vt 0.281370 0.694182 +vt 0.137903 0.688925 +vt 0.302387 0.795768 +vt 0.293761 0.770368 +vt 0.324028 0.761001 +vt 0.161234 0.660224 +vt 0.172559 0.693832 +vt 0.131035 0.693351 +vt 0.236093 0.689058 +vt 0.222748 0.713718 +vt 0.209183 0.689316 +vt 0.103054 0.695400 +vt 0.104580 0.666395 +vt 0.198372 0.651439 +vt 0.188095 0.655422 +vt 0.183861 0.642500 +vt 0.185720 0.699412 +vt 0.166264 0.665958 +vt 0.230107 0.673951 +vt 0.250683 0.665546 +vt 0.021984 0.792275 +vt 0.039989 0.784844 +vt 0.037329 0.811005 +vt 0.175536 0.663254 +vt 0.185333 0.662751 +vt 0.074947 0.699660 +vt 0.052592 0.705631 +vt 0.053647 0.679346 +vt 0.157392 0.656933 +vt 0.173746 0.645952 +vt 0.120368 0.700009 +vt 0.130599 0.734495 +vt 0.169473 0.654548 +vt 0.189531 0.671961 +vt 0.199559 0.697751 +vt 0.208146 0.653639 +vt 0.213174 0.640853 +vt 0.160631 0.740493 +vt 0.221978 0.734217 +vt 0.251157 0.724477 +vt 0.049195 0.730301 +vt 0.028769 0.739053 +vt 0.032260 0.717064 +vt 0.027329 0.763392 +vt 0.138864 0.748922 +vt 0.220298 0.800487 +vt 0.215523 0.768778 +vt 0.245822 0.770103 +vt 0.180757 0.802760 +vt 0.180055 0.769463 +vt 0.087635 0.778362 +vt 0.131328 0.776541 +vt 0.130256 0.805663 +vt 0.210774 0.716128 +vt 0.227797 0.704454 +vt 0.212934 0.677341 +vt 0.132837 0.745232 +vt 0.061380 0.779836 +vt 0.085302 0.808247 +vt 0.091004 0.748140 +vt 0.133155 0.718794 +vt 0.093568 0.721148 +vt 0.176135 0.717851 +vt 0.211403 0.742689 +vt 0.240172 0.725004 +vt 0.287225 0.749301 +vt 0.302288 0.721016 +vt 0.070144 0.724691 +vt 0.164325 0.658421 +vt 0.065975 0.750661 +vt 0.059041 0.809757 +vt 0.076706 0.672256 +vt 0.045053 0.756227 +vt 0.177513 0.741698 +vt 0.314507 0.741330 +vt 0.241367 0.747050 +vt 0.193818 0.733777 +vt 0.189956 0.654232 +vt 0.226479 0.890162 +vt 0.251262 0.798707 +vt 0.032405 0.688712 +vt 0.259230 0.757676 +vt 0.243362 0.739710 +vt 0.244172 0.694100 +vt 0.269818 0.701783 +vt 0.237458 0.889332 +vt 0.272464 0.719291 +vt 0.306763 0.706262 +vt 0.302729 0.716252 +vt 0.302572 0.882256 +vt 0.163724 0.897621 +vt 0.129901 0.888735 +vt 0.155882 0.901486 +vt 0.139215 0.925710 +vt 0.106543 0.963214 +vt 0.088618 0.969464 +vt 0.117994 0.911142 +vt 0.094105 0.778402 +vt 0.071929 0.764480 +vt 0.085793 0.736939 +vt 0.079469 0.954699 +vt 0.279717 0.899865 +vt 0.260159 0.891750 +vt 0.277877 0.864250 +vt 0.120112 0.740836 +vt 0.087605 0.717238 +vt 0.323489 0.828077 +vt 0.293345 0.822182 +vt 0.158923 0.947672 +vt 0.123712 0.948694 +vt 0.129229 0.917988 +vt 0.050817 0.780010 +vt 0.065425 0.804726 +vt 0.036477 0.803882 +vt 0.102316 0.948012 +vt 0.101255 0.919156 +vt 0.181286 0.962810 +vt 0.185731 0.949389 +vt 0.195954 0.952193 +vt 0.045444 0.736669 +vt 0.052662 0.729933 +vt 0.248540 0.932057 +vt 0.228080 0.926011 +vt 0.039571 0.836884 +vt 0.021668 0.831517 +vt 0.039880 0.745034 +vt 0.051544 0.940908 +vt 0.050911 0.914720 +vt 0.073191 0.918125 +vt 0.031153 0.726038 +vt 0.049383 0.717432 +vt 0.106295 0.707964 +vt 0.113729 0.704678 +vt 0.167078 0.952406 +vt 0.161988 0.949121 +vt 0.197887 0.905703 +vt 0.210600 0.961087 +vt 0.205772 0.948867 +vt 0.120620 0.763618 +vt 0.084389 0.814120 +vt 0.078883 0.838360 +vt 0.060476 0.836406 +vt 0.047908 0.890418 +vt 0.030744 0.905615 +vt 0.026554 0.859812 +vt 0.245357 0.827962 +vt 0.215009 0.832774 +vt 0.130861 0.834688 +vt 0.087156 0.837891 +vt 0.226260 0.895746 +vt 0.209408 0.886019 +vt 0.187436 0.932669 +vt 0.131868 0.865852 +vt 0.179518 0.836168 +vt 0.060901 0.839435 +vt 0.090043 0.867754 +vt 0.092175 0.894476 +vt 0.131760 0.892278 +vt 0.170799 0.912731 +vt 0.238977 0.873753 +vt 0.210465 0.859360 +vt 0.301085 0.870600 +vt 0.286463 0.844021 +vt 0.068786 0.893624 +vt 0.174764 0.888278 +vt 0.176527 0.864251 +vt 0.065031 0.868109 +vt 0.074510 0.945353 +vt 0.044179 0.864944 +vt 0.313642 0.848861 +vt 0.240527 0.851549 +vt 0.027604 0.884008 +vt 0.097873 0.788843 +vt 0.029941 0.744644 +vt 0.100969 0.890162 +vt 0.210946 0.924593 +vt 0.195656 0.965464 +vt 0.030433 0.933977 +vt 0.036814 0.813780 +vt 0.044078 0.852024 +vt 0.030330 0.840518 +vt 0.089989 0.889332 +vt 0.062008 0.893763 +vt 0.025981 0.876374 +vt 0.015296 0.874779 +vt 0.024876 0.882256 +vt 0.236761 0.826125 +vt 0.332951 0.821474 +vt 0.317536 0.831563 +vt 0.020935 0.819289 +vt 0.155882 0.833295 +vt 0.116668 0.677037 +vt 0.119163 0.944480 +vt 0.187262 0.656586 +vt 0.062008 0.841019 +vt 0.171566 0.901486 +vt 0.332090 0.794060 +vt 0.126006 0.663252 +vt 0.220230 0.678637 +vt 0.198287 0.638191 +vt 0.019489 0.812030 +vt 0.265440 0.893763 +vt 0.090686 0.908656 +vt 0.035529 0.784217 +vt 0.201678 0.776313 +vt 0.201997 0.748197 +vt 0.210664 0.749216 +vt 0.193309 0.749019 +vt 0.211043 0.776395 +vt 0.220151 0.751735 +vt 0.183767 0.751323 +vt 0.192314 0.776183 +vt 0.170465 0.935233 +vt 0.171099 0.908138 +vt 0.185746 0.908551 +vt 0.173330 0.881717 +vt 0.175988 0.855272 +vt 0.188356 0.856185 +vt 0.178408 0.828810 +vt 0.180732 0.802312 +vt 0.191042 0.802969 +vt 0.214560 0.908887 +vt 0.229212 0.908818 +vt 0.229212 0.935919 +vt 0.213178 0.856477 +vt 0.225561 0.855854 +vt 0.227599 0.882352 +vt 0.211708 0.803204 +vt 0.222032 0.802781 +vt 0.223757 0.829333 +vt 0.186876 0.933547 +vt 0.200153 0.908672 +vt 0.186910 0.882647 +vt 0.200764 0.856574 +vt 0.189720 0.829602 +vt 0.201373 0.803259 +vt 0.212845 0.933850 +vt 0.214002 0.882964 +vt 0.212418 0.829865 +vt 0.191163 0.745575 +vt 0.202028 0.745390 +vt 0.212887 0.745820 +vt 0.222780 0.747749 +vt 0.181229 0.747279 +vt 0.214438 0.713771 +vt 0.209608 0.698673 +vt 0.218269 0.695029 +vt 0.195508 0.698514 +vt 0.202547 0.699511 +vt 0.202382 0.714108 +vt 0.186931 0.694674 +vt 0.190337 0.713499 +vt 0.202214 0.729014 +vt 0.177918 0.711287 +vt 0.189178 0.728769 +vt 0.215252 0.729064 +vt 0.226904 0.711842 +vt 0.227975 0.729651 +vt 0.176445 0.729068 +vt 0.202614 0.693627 +vt 0.207891 0.693445 +vt 0.215953 0.689800 +vt 0.197342 0.693326 +vt 0.189365 0.689499 +vt 0.209242 0.682898 +vt 0.212629 0.684673 +vt 0.196231 0.682751 +vt 0.202750 0.681560 +vt 0.192804 0.684449 +vt 0.199456 0.968320 +vt 0.199869 0.933012 +vt 0.224723 0.963363 +vt 0.174312 0.962774 +vt 0.200454 0.883025 +vt 0.201066 0.829954 +vt 0.182761 0.775829 +vt 0.220603 0.776258 +vt 0.067832 0.776312 +vt 0.058468 0.776175 +vt 0.059483 0.749012 +vt 0.068171 0.748196 +vt 0.076838 0.749221 +vt 0.048914 0.775814 +vt 0.049939 0.751309 +vt 0.077197 0.776401 +vt 0.086323 0.751748 +vt 0.095322 0.935918 +vt 0.078955 0.933849 +vt 0.080669 0.908886 +vt 0.093709 0.882350 +vt 0.080111 0.882962 +vt 0.079284 0.856474 +vt 0.089869 0.829339 +vt 0.078542 0.829866 +vt 0.077843 0.803209 +vt 0.036575 0.935231 +vt 0.037209 0.908137 +vt 0.051856 0.908549 +vt 0.039440 0.881716 +vt 0.042097 0.855273 +vt 0.054462 0.856185 +vt 0.044521 0.828802 +vt 0.046865 0.802297 +vt 0.057177 0.802961 +vt 0.065978 0.933011 +vt 0.066263 0.908670 +vt 0.066562 0.883024 +vt 0.066871 0.856573 +vt 0.067191 0.829953 +vt 0.067508 0.803258 +vt 0.052986 0.933545 +vt 0.053019 0.882646 +vt 0.055843 0.829598 +vt 0.068205 0.745389 +vt 0.057340 0.745566 +vt 0.047404 0.747263 +vt 0.079063 0.745828 +vt 0.056538 0.713489 +vt 0.044121 0.711269 +vt 0.053147 0.694662 +vt 0.068583 0.714108 +vt 0.068759 0.699511 +vt 0.075820 0.698678 +vt 0.080639 0.713780 +vt 0.084484 0.695040 +vt 0.061720 0.698508 +vt 0.068403 0.729013 +vt 0.055367 0.728759 +vt 0.081441 0.729074 +vt 0.093106 0.711860 +vt 0.042634 0.729048 +vt 0.088955 0.747764 +vt 0.063558 0.693322 +vt 0.055584 0.689489 +vt 0.068830 0.693627 +vt 0.074108 0.693449 +vt 0.082172 0.689810 +vt 0.059027 0.684441 +vt 0.068976 0.681560 +vt 0.075466 0.682903 +vt 0.078852 0.684680 +vt 0.062455 0.682746 +vt 0.065566 0.968319 +vt 0.046484 0.963810 +vt 0.040422 0.962772 +vt 0.090832 0.963362 +vt 0.084748 0.964257 +vt 0.095322 0.908816 +vt 0.086756 0.776271 +vt 0.082706 0.776064 +vt 0.073373 0.775847 +vt 0.074617 0.748779 +vt 0.083285 0.748040 +vt 0.091915 0.749136 +vt 0.063852 0.775406 +vt 0.065084 0.750986 +vt 0.092041 0.776232 +vt 0.101349 0.751736 +vt 0.109353 0.935439 +vt 0.092822 0.933861 +vt 0.094454 0.908472 +vt 0.107630 0.881987 +vt 0.094057 0.882517 +vt 0.093441 0.856078 +vt 0.104221 0.829112 +vt 0.092924 0.829542 +vt 0.092455 0.802962 +vt 0.049582 0.934229 +vt 0.050901 0.907203 +vt 0.065560 0.907887 +vt 0.053467 0.880891 +vt 0.056369 0.854556 +vt 0.068690 0.855579 +vt 0.059017 0.828188 +vt 0.061583 0.801787 +vt 0.071856 0.802538 +vt 0.079507 0.932881 +vt 0.080007 0.908184 +vt 0.080527 0.882479 +vt 0.081061 0.856074 +vt 0.081607 0.829532 +vt 0.082152 0.802923 +vt 0.066164 0.933321 +vt 0.067007 0.881970 +vt 0.070298 0.829081 +vt 0.083343 0.745242 +vt 0.072511 0.745325 +vt 0.062592 0.746931 +vt 0.094163 0.745772 +vt 0.071986 0.713344 +vt 0.059629 0.711024 +vt 0.068769 0.694551 +vt 0.083987 0.714064 +vt 0.084288 0.699514 +vt 0.091338 0.698747 +vt 0.096008 0.713841 +vt 0.099999 0.695197 +vt 0.077276 0.698457 +vt 0.083680 0.728920 +vt 0.070688 0.728555 +vt 0.096677 0.729092 +vt 0.108451 0.712033 +vt 0.057993 0.728733 +vt 0.104007 0.747787 +vt 0.079144 0.693299 +vt 0.071243 0.689421 +vt 0.084409 0.693648 +vt 0.089685 0.693517 +vt 0.097739 0.689969 +vt 0.074955 0.684644 +vt 0.084659 0.681560 +vt 0.091150 0.682962 +vt 0.094227 0.685043 +vt 0.078116 0.682692 +vt 0.078784 0.968608 +vt 0.059808 0.964108 +vt 0.054343 0.961605 +vt 0.103488 0.962600 +vt 0.097926 0.964880 +vt 0.109129 0.908382 +vt 0.101571 0.776185 +vt 0.068117 0.788798 +vt 0.068685 0.760774 +vt 0.077315 0.761867 +vt 0.060017 0.761516 +vt 0.077452 0.788963 +vt 0.086751 0.764462 +vt 0.050485 0.763728 +vt 0.058784 0.788585 +vt 0.034975 0.946950 +vt 0.036305 0.919924 +vt 0.050964 0.920615 +vt 0.038882 0.893613 +vt 0.041796 0.867277 +vt 0.054119 0.868306 +vt 0.044451 0.840922 +vt 0.047005 0.814529 +vt 0.057277 0.815275 +vt 0.079858 0.921212 +vt 0.094533 0.921128 +vt 0.094746 0.948186 +vt 0.078871 0.868819 +vt 0.091223 0.868302 +vt 0.093045 0.894733 +vt 0.077876 0.815693 +vt 0.088172 0.815363 +vt 0.089655 0.841848 +vt 0.051557 0.946049 +vt 0.065411 0.920918 +vt 0.052423 0.894698 +vt 0.066490 0.868809 +vt 0.055721 0.841814 +vt 0.067573 0.815657 +vt 0.078215 0.946600 +vt 0.079472 0.895258 +vt 0.078347 0.842278 +vt 0.057909 0.758063 +vt 0.068742 0.757976 +vt 0.079562 0.758502 +vt 0.089406 0.760512 +vt 0.047991 0.759674 +vt 0.081394 0.726569 +vt 0.076716 0.711478 +vt 0.085376 0.707924 +vt 0.062655 0.711193 +vt 0.069667 0.712248 +vt 0.069373 0.726797 +vt 0.054146 0.707291 +vt 0.057371 0.726083 +vt 0.069072 0.741654 +vt 0.045013 0.723768 +vt 0.056080 0.741294 +vt 0.082068 0.741820 +vt 0.093835 0.724756 +vt 0.094745 0.742518 +vt 0.043385 0.741478 +vt 0.069786 0.706381 +vt 0.075062 0.706248 +vt 0.083114 0.702696 +vt 0.064520 0.706035 +vt 0.056618 0.702160 +vt 0.076523 0.695692 +vt 0.079600 0.697772 +vt 0.063488 0.695428 +vt 0.070031 0.694293 +vt 0.060328 0.697382 +vt 0.064162 0.981341 +vt 0.064901 0.945614 +vt 0.088869 0.975344 +vt 0.039724 0.974328 +vt 0.065943 0.895214 +vt 0.067029 0.842266 +vt 0.049264 0.788147 +vt 0.086982 0.788911 +vt 0.218638 0.964258 +vt 0.180374 0.963811 +vt 0.091670 0.855850 +vt 0.088166 0.802794 +vt 0.094164 0.729670 +vt 0.105797 0.855554 +vt 0.102749 0.802636 +vt 0.109353 0.729795 +vt 0.083306 0.977621 +vt 0.045189 0.976834 +vn 0.049000 -0.848100 0.527500 +vn -0.058500 -0.810400 0.583000 +vn 0.566800 -0.823600 -0.020500 +vn -0.528500 -0.848800 -0.014900 +vn 0.354100 -0.931200 0.086200 +vn -0.329400 0.354000 -0.875300 +vn 0.253100 -0.286000 -0.924200 +vn 0.541900 -0.002200 -0.840400 +vn -0.706200 -0.279500 0.650400 +vn -0.900600 -0.211700 0.379500 +vn -0.577300 0.604900 -0.548400 +vn -0.656300 0.458500 -0.599200 +vn -0.773000 0.634400 0.000000 +vn 0.000000 0.742000 -0.670300 +vn -0.298100 0.694200 -0.655100 +vn -0.441800 0.897100 0.000000 +vn -0.966800 0.255500 0.000000 +vn -0.929800 0.235800 -0.282400 +vn -0.952700 0.119100 -0.279500 +vn -0.520700 -0.853400 -0.023300 +vn -0.640600 -0.170200 -0.748800 +vn -0.875400 0.483200 0.011400 +vn -0.986300 0.164800 0.000000 +vn -0.949100 -0.049400 -0.311100 +vn -0.561000 -0.561200 -0.608500 +vn 0.198400 -0.856000 -0.477300 +vn 0.074900 -0.997200 0.000000 +vn -0.288900 0.692700 -0.660800 +vn 0.540300 -0.408900 -0.735400 +vn -0.759800 0.298700 -0.577500 +vn -0.902900 0.429800 0.000000 +vn -0.159700 -0.232700 -0.959300 +vn -0.219700 -0.420300 -0.880400 +vn 0.000000 -0.398000 -0.917400 +vn -0.314200 -0.044200 -0.948300 +vn -0.886500 0.369400 -0.278500 +vn -0.902000 -0.255100 -0.348200 +vn -0.824400 -0.416600 -0.382900 +vn -0.938200 -0.346000 0.000000 +vn 0.000000 -0.568400 -0.822700 +vn 0.000000 -0.999600 0.026300 +vn 0.021100 -0.641300 -0.767000 +vn -0.681400 0.155600 -0.715200 +vn -0.731200 -0.682100 0.000000 +vn -0.829000 0.009900 -0.559200 +vn -0.999700 0.025800 0.000000 +vn -0.494000 -0.353000 -0.794500 +vn -0.432500 0.057600 -0.899800 +vn -0.596100 -0.468900 -0.651700 +vn -0.759700 -0.090900 -0.643800 +vn -0.432600 -0.246200 -0.867300 +vn 0.000000 -0.287900 -0.957600 +vn 0.000000 0.315500 -0.948900 +vn -0.172100 0.305000 -0.936600 +vn -0.178000 0.427300 -0.886400 +vn 0.000000 0.241100 -0.970500 +vn -0.158000 0.245200 -0.956500 +vn -0.175200 -0.192300 -0.965500 +vn -0.137100 0.052300 -0.989200 +vn 0.000000 0.050200 -0.998700 +vn -0.616700 0.298400 -0.728400 +vn -0.548200 0.262500 -0.794000 +vn 0.511100 -0.859500 0.000000 +vn -0.598200 0.092700 -0.796000 +vn -0.411500 0.059100 -0.909500 +vn -0.207800 -0.397400 -0.893800 +vn 0.000000 -0.168900 -0.985600 +vn -0.420600 -0.197400 -0.885500 +vn -0.711800 0.088400 -0.696800 +vn -0.722600 -0.170000 -0.670000 +vn -0.689400 0.284700 -0.666100 +vn -0.494700 0.308500 -0.812500 +vn -0.602800 0.318900 -0.731300 +vn -0.465500 0.671800 -0.576200 +vn -0.626200 0.779600 0.000000 +vn -0.667700 -0.383600 -0.638000 +vn -0.412900 -0.411500 -0.812500 +vn 0.000000 -0.366200 -0.930500 +vn -0.991900 -0.126700 0.000000 +vn -0.391100 -0.471900 -0.790100 +vn -0.440300 0.269900 -0.856300 +vn -0.553700 0.832700 0.000000 +vn -0.449600 0.394100 -0.801600 +vn 0.000000 0.432600 -0.901600 +vn -0.999700 -0.023600 0.000000 +vn -0.807600 0.589700 0.000000 +vn 0.104600 -0.758500 -0.643100 +vn 0.020400 -0.474900 -0.879800 +vn 0.182800 -0.983100 0.000000 +vn 0.283700 -0.958900 0.000000 +vn -0.420900 0.280300 -0.862700 +vn -0.292400 -0.637600 -0.712700 +vn -0.732800 0.680400 0.000000 +vn -0.611000 0.064800 -0.788900 +vn -0.556800 -0.830600 0.000000 +vn -0.956500 0.291600 0.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.235300 -0.971900 0.000000 +vn -0.049000 -0.848100 0.527500 +vn -0.479000 -0.876200 0.053100 +vn -0.566800 -0.823600 -0.020500 +vn -0.354100 -0.931200 0.086300 +vn 0.528500 -0.848800 -0.014900 +vn 0.058500 -0.810400 0.583000 +vn 0.329400 0.354000 -0.875300 +vn 0.288900 0.692700 -0.660800 +vn -0.541900 -0.002200 -0.840400 +vn 0.900600 -0.211700 0.379500 +vn 0.773000 0.634400 0.000000 +vn 0.656300 0.458500 -0.599200 +vn 0.577300 0.604900 -0.548400 +vn -0.253100 -0.286000 -0.924200 +vn 0.441800 0.897100 0.000000 +vn 0.298100 0.694200 -0.655100 +vn 0.966800 0.255500 0.000000 +vn 0.986300 0.164800 0.000000 +vn 0.952700 0.119100 -0.279500 +vn 0.875400 0.483200 0.011400 +vn 0.640600 -0.170200 -0.748800 +vn 0.520700 -0.853400 -0.023300 +vn 0.998000 0.062600 0.000000 +vn 0.949100 -0.049400 -0.311100 +vn -0.074900 -0.997200 0.000000 +vn -0.198400 -0.856000 -0.477300 +vn 0.561000 -0.561200 -0.608500 +vn 0.314200 -0.044200 -0.948300 +vn -0.540300 -0.408900 -0.735400 +vn 0.902900 0.429800 0.000000 +vn 0.759800 0.298700 -0.577500 +vn 0.219700 -0.420300 -0.880400 +vn 0.159700 -0.232700 -0.959300 +vn 0.886500 0.369400 -0.278500 +vn 0.938200 -0.346000 0.000000 +vn 0.824400 -0.416600 -0.382900 +vn 0.902000 -0.255100 -0.348200 +vn 0.731200 -0.682100 0.000000 +vn 0.681400 0.155600 -0.715200 +vn -0.021100 -0.641300 -0.767000 +vn 0.999700 0.025800 0.000000 +vn 0.829000 0.009900 -0.559200 +vn 0.494000 -0.353000 -0.794500 +vn 0.759700 -0.090900 -0.643800 +vn 0.432500 0.057600 -0.899800 +vn 0.596100 -0.468900 -0.651700 +vn 0.432600 -0.246200 -0.867300 +vn 0.178000 0.427300 -0.886400 +vn 0.172100 0.305000 -0.936600 +vn 0.137100 0.052300 -0.989200 +vn 0.175200 -0.192300 -0.965500 +vn 0.548200 0.262500 -0.794000 +vn 0.616700 0.298400 -0.728400 +vn -0.511100 -0.859500 0.000000 +vn 0.411500 0.059100 -0.909500 +vn 0.158000 0.245200 -0.956500 +vn 0.207800 -0.397400 -0.893800 +vn 0.420600 -0.197400 -0.885500 +vn 0.722600 -0.170000 -0.670000 +vn 0.711800 0.088400 -0.696800 +vn 0.929800 0.235800 -0.282400 +vn 0.602800 0.318900 -0.731300 +vn 0.494700 0.308500 -0.812500 +vn 0.626200 0.779600 0.000000 +vn 0.465500 0.671800 -0.576200 +vn 0.667700 -0.383600 -0.638000 +vn 0.689400 0.284700 -0.666100 +vn 0.440300 0.269900 -0.856300 +vn 0.412900 -0.411500 -0.812500 +vn 0.991900 -0.126700 0.000000 +vn 0.391100 -0.471900 -0.790100 +vn 0.553700 0.832700 0.000000 +vn 0.449600 0.394100 -0.801600 +vn 0.598200 0.092700 -0.796000 +vn 0.754000 -0.656800 0.000000 +vn 0.999700 -0.023600 0.000000 +vn 0.807600 0.589700 0.000000 +vn -0.104600 -0.758500 -0.643100 +vn 0.420900 0.280300 -0.862700 +vn -0.020400 -0.474900 -0.879800 +vn -0.182800 -0.983100 0.000000 +vn -0.283700 -0.958900 0.000000 +vn 0.732800 0.680400 0.000000 +vn 0.611000 0.064800 -0.788900 +vn 0.292400 -0.637600 -0.712700 +vn 0.956500 0.291600 0.000000 +vn 0.556800 -0.830600 0.000000 +vn -0.235300 -0.971900 0.000000 +vn 0.049000 -0.848100 -0.527500 +vn 0.479000 -0.876200 -0.053100 +vn 0.566800 -0.823600 0.020500 +vn 0.354100 -0.931200 -0.086300 +vn -0.528500 -0.848800 0.014900 +vn -0.058500 -0.810400 -0.583000 +vn -0.329400 0.354000 0.875300 +vn -0.288900 0.692700 0.660800 +vn 0.541900 -0.002200 0.840400 +vn -0.900600 -0.211700 -0.379500 +vn -0.656300 0.458500 0.599200 +vn -0.577300 0.604900 0.548400 +vn 0.253100 -0.286000 0.924200 +vn -0.298100 0.694200 0.655100 +vn 0.000000 0.742000 0.670300 +vn -0.952700 0.119100 0.279500 +vn -0.875400 0.483200 -0.011400 +vn -0.640600 -0.170200 0.748800 +vn -0.520700 -0.853400 0.023300 +vn -0.998000 0.062600 0.000000 +vn -0.949100 -0.049400 0.311100 +vn 0.198400 -0.856000 0.477300 +vn -0.561000 -0.561200 0.608500 +vn -0.314200 -0.044200 0.948300 +vn 0.540300 -0.408900 0.735400 +vn -0.759800 0.298700 0.577500 +vn 0.000000 -0.398000 0.917400 +vn -0.219700 -0.420300 0.880400 +vn -0.159700 -0.232700 0.959300 +vn -0.886500 0.369400 0.278500 +vn -0.824400 -0.416600 0.382900 +vn -0.902000 -0.255100 0.348200 +vn 0.000000 -0.999600 -0.026300 +vn 0.000000 -0.568400 0.822700 +vn -0.681400 0.155600 0.715200 +vn 0.021100 -0.641300 0.767000 +vn -0.829000 0.009900 0.559200 +vn -0.494000 -0.353000 0.794500 +vn -0.759700 -0.090900 0.643800 +vn -0.432500 0.057600 0.899800 +vn -0.596100 -0.468900 0.651700 +vn -0.432600 -0.246200 0.867300 +vn 0.000000 -0.287900 0.957600 +vn -0.178000 0.427300 0.886400 +vn -0.172100 0.305000 0.936600 +vn 0.000000 0.315500 0.948900 +vn 0.000000 0.241100 0.970500 +vn 0.000000 0.050200 0.998700 +vn -0.137100 0.052300 0.989200 +vn -0.175200 -0.192300 0.965500 +vn -0.548200 0.262500 0.794000 +vn -0.616700 0.298400 0.728400 +vn -0.411500 0.059100 0.909500 +vn -0.158000 0.245200 0.956500 +vn 0.000000 -0.168900 0.985600 +vn -0.207800 -0.397400 0.893800 +vn -0.420600 -0.197400 0.885500 +vn -0.722600 -0.170000 0.670000 +vn -0.711800 0.088400 0.696800 +vn -0.929800 0.235800 0.282400 +vn -0.602800 0.318900 0.731300 +vn -0.494700 0.308500 0.812500 +vn -0.465500 0.671800 0.576200 +vn -0.667700 -0.383600 0.638000 +vn -0.689400 0.284700 0.666100 +vn -0.440300 0.269900 0.856300 +vn -0.412900 -0.411500 0.812500 +vn 0.000000 -0.366200 0.930500 +vn -0.391100 -0.471900 0.790100 +vn -0.449600 0.394100 0.801600 +vn -0.598200 0.092700 0.796000 +vn 0.000000 0.432600 0.901600 +vn -0.754000 -0.656800 0.000000 +vn 0.104600 -0.758500 0.643100 +vn -0.420900 0.280300 0.862700 +vn 0.020400 -0.474900 0.879800 +vn -0.611000 0.064800 0.788900 +vn -0.292400 -0.637600 0.712700 +vn -0.049000 -0.848100 -0.527500 +vn 0.058500 -0.810400 -0.583000 +vn -0.566800 -0.823600 0.020500 +vn 0.528500 -0.848800 0.014900 +vn -0.354100 -0.931200 -0.086200 +vn 0.329400 0.354000 0.875300 +vn -0.253100 -0.286000 0.924200 +vn -0.541900 -0.002200 0.840400 +vn 0.706200 -0.279500 -0.650400 +vn 0.900600 -0.211700 -0.379500 +vn 0.577300 0.604900 0.548400 +vn 0.656300 0.458500 0.599200 +vn 0.298100 0.694200 0.655100 +vn 0.929800 0.235800 0.282400 +vn 0.952700 0.119100 0.279500 +vn 0.520700 -0.853400 0.023300 +vn 0.640600 -0.170200 0.748800 +vn 0.875400 0.483200 -0.011400 +vn 0.949100 -0.049400 0.311100 +vn 0.561000 -0.561200 0.608500 +vn -0.198400 -0.856000 0.477300 +vn 0.288900 0.692700 0.660800 +vn -0.540300 -0.408900 0.735400 +vn 0.759800 0.298700 0.577500 +vn 0.159700 -0.232700 0.959300 +vn 0.219700 -0.420300 0.880400 +vn 0.314200 -0.044200 0.948300 +vn 0.886500 0.369400 0.278500 +vn 0.902000 -0.255100 0.348200 +vn 0.824400 -0.416600 0.382900 +vn -0.021100 -0.641300 0.767000 +vn 0.681400 0.155600 0.715200 +vn 0.829000 0.009900 0.559200 +vn 0.494000 -0.353000 0.794500 +vn 0.432500 0.057600 0.899800 +vn 0.596100 -0.468900 0.651700 +vn 0.759700 -0.090900 0.643800 +vn 0.432600 -0.246200 0.867300 +vn 0.172100 0.305000 0.936600 +vn 0.178000 0.427300 0.886400 +vn 0.158000 0.245200 0.956500 +vn 0.175200 -0.192300 0.965500 +vn 0.137100 0.052300 0.989200 +vn 0.616700 0.298400 0.728400 +vn 0.548200 0.262500 0.794000 +vn 0.598200 0.092700 0.796000 +vn 0.411500 0.059100 0.909500 +vn 0.207800 -0.397400 0.893800 +vn 0.420600 -0.197400 0.885500 +vn 0.711800 0.088400 0.696800 +vn 0.722600 -0.170000 0.670000 +vn 0.689400 0.284700 0.666100 +vn 0.494700 0.308500 0.812500 +vn 0.602800 0.318900 0.731300 +vn 0.465500 0.671800 0.576200 +vn 0.667700 -0.383600 0.638000 +vn 0.412900 -0.411500 0.812500 +vn 0.391100 -0.471900 0.790100 +vn 0.440300 0.269900 0.856300 +vn 0.449600 0.394100 0.801600 +vn -0.104600 -0.758500 0.643100 +vn -0.020400 -0.474900 0.879800 +vn 0.420900 0.280300 0.862700 +vn 0.292400 -0.637600 0.712700 +vn 0.611000 0.064800 0.788900 +vn 0.479000 -0.876200 0.053100 +vn 0.000000 1.000000 0.000000 +vn 0.706200 -0.279500 0.650400 +vn -0.706200 -0.279500 -0.650400 +vn -0.479000 -0.876200 -0.053100 +vn 0.706300 -0.046300 -0.706300 +vn 0.605200 0.161400 -0.779500 +vn 0.000000 -0.025900 -0.999600 +vn 0.000000 -0.046300 -0.998900 +vn -0.605200 0.161400 -0.779500 +vn 0.998900 -0.046300 0.000000 +vn 0.912700 0.408600 0.000000 +vn -0.706300 -0.046300 -0.706300 +vn -0.912700 0.408600 0.000000 +vn -0.663800 0.122000 -0.737900 +vn -0.705100 -0.075400 -0.705100 +vn -0.997100 -0.075400 0.000000 +vn -0.705600 -0.063900 -0.705600 +vn -0.705900 -0.057800 -0.705900 +vn -0.998300 -0.057800 0.000000 +vn -0.998700 -0.051400 0.000000 +vn -0.706200 -0.051400 -0.706200 +vn -0.706300 -0.048900 -0.706300 +vn 0.663800 0.122000 -0.737900 +vn 0.999900 0.008100 0.000000 +vn 0.997100 -0.075400 0.000000 +vn 0.705600 -0.063900 -0.705600 +vn 0.997900 -0.063900 0.000000 +vn 0.998300 -0.057800 0.000000 +vn 0.706200 -0.051400 -0.706200 +vn 0.998700 -0.051400 0.000000 +vn 0.998800 -0.048900 0.000000 +vn 0.000000 0.197800 -0.980200 +vn 0.000000 -0.075400 -0.997100 +vn 0.000000 -0.063900 -0.997900 +vn 0.000000 -0.057800 -0.998300 +vn 0.000000 -0.051400 -0.998700 +vn 0.000000 -0.048900 -0.998800 +vn 0.705100 -0.075400 -0.705100 +vn 0.705900 -0.057800 -0.705900 +vn 0.706300 -0.048900 -0.706300 +vn 0.000000 0.138200 -0.990400 +vn 0.498800 0.404300 -0.766600 +vn 0.836800 0.547400 0.000000 +vn -0.498800 0.404300 -0.766600 +vn 0.510600 -0.179000 -0.840900 +vn 0.970100 -0.242700 0.000000 +vn 0.932700 -0.360700 0.000000 +vn 0.000000 -0.134100 -0.990900 +vn 0.000000 -0.175600 -0.984400 +vn -0.475500 -0.231100 -0.848800 +vn -0.510600 -0.179000 -0.840900 +vn -0.932700 -0.360700 0.000000 +vn 0.475500 -0.231100 -0.848800 +vn 0.000000 0.080300 -0.996800 +vn 0.515400 0.108100 -0.850100 +vn -0.515400 0.108100 -0.850100 +vn -0.970100 -0.242700 0.000000 +vn 0.988600 0.150200 0.000000 +vn -0.836800 0.547400 0.000000 +vn 0.468100 -0.239900 -0.850500 +vn 0.961600 -0.274300 0.000000 +vn 0.000000 -0.255600 -0.966800 +vn -0.468100 -0.239900 -0.850500 +vn -0.961600 -0.274300 0.000000 +vn 0.428800 -0.903400 0.000000 +vn -0.096400 -0.995300 0.000000 +vn -0.428800 -0.903400 0.000000 +vn 0.096400 -0.995300 0.000000 +vn 0.533500 0.845800 0.000000 +vn -0.151900 -0.988400 0.000000 +vn -0.533500 0.845800 0.000000 +vn -0.999900 0.008100 0.000000 +vn -0.998900 -0.046300 0.000000 +vn -0.998800 -0.048900 0.000000 +vn -0.988600 0.150200 0.000000 +vn -0.997900 -0.063900 0.000000 +vn 0.000000 -0.025900 0.999600 +vn 0.605200 0.161400 0.779500 +vn 0.706300 -0.046300 0.706300 +vn -0.605200 0.161400 0.779500 +vn 0.000000 -0.046300 0.998900 +vn -0.706300 -0.046300 0.706300 +vn -0.705100 -0.075400 0.705100 +vn -0.705900 -0.057800 0.705900 +vn -0.705600 -0.063900 0.705600 +vn -0.706300 -0.048900 0.706300 +vn 0.705100 -0.075400 0.705100 +vn 0.705600 -0.063900 0.705600 +vn 0.705900 -0.057800 0.705900 +vn 0.706300 -0.048900 0.706300 +vn 0.000000 -0.075400 0.997100 +vn 0.000000 0.197800 0.980200 +vn 0.000000 -0.057800 0.998300 +vn 0.000000 -0.063900 0.997900 +vn -0.706200 -0.051400 0.706200 +vn 0.000000 -0.048900 0.998800 +vn 0.663800 0.122000 0.737900 +vn 0.000000 -0.051400 0.998700 +vn -0.498800 0.404300 0.766600 +vn 0.000000 0.138200 0.990400 +vn 0.498800 0.404300 0.766600 +vn 0.510600 -0.179000 0.840900 +vn 0.475500 -0.231100 0.848800 +vn -0.475500 -0.231100 0.848800 +vn 0.000000 -0.175600 0.984400 +vn 0.000000 -0.134100 0.990900 +vn -0.510600 -0.179000 0.840900 +vn 0.000000 0.080300 0.996800 +vn -0.515400 0.108100 0.850100 +vn 0.515400 0.108100 0.850100 +vn 0.000000 -0.255600 0.966800 +vn 0.468100 -0.239900 0.850500 +vn -0.468100 -0.239900 0.850500 +vn -0.663800 0.122000 0.737900 +vn 0.706200 -0.051400 0.706200 +vn 0.151900 -0.988400 0.000000 +vn -0.395000 -0.918600 0.000000 +vn 0.395000 -0.918600 0.000000 +vn -0.079200 0.836800 -0.541800 +vn -0.477500 0.874200 -0.087800 +vn -0.577700 0.814900 0.045300 +vn -0.337900 0.941100 -0.013200 +vn 0.503600 0.863200 0.034800 +vn 0.076300 0.801000 -0.593700 +vn 0.291000 -0.366600 0.883700 +vn 0.261600 -0.673500 0.691400 +vn -0.555700 0.003200 0.831300 +vn 0.893700 0.285200 -0.346200 +vn 0.772500 -0.635000 0.000000 +vn 0.663000 -0.465900 0.586000 +vn 0.579800 -0.607800 0.542500 +vn -0.237300 0.279200 0.930400 +vn 0.438600 -0.898700 0.000000 +vn 0.297400 -0.700100 0.649100 +vn 0.000000 -0.752200 0.659000 +vn -0.025300 -0.999700 0.000000 +vn 0.980700 -0.195400 0.000000 +vn 0.947800 -0.129200 0.291500 +vn 0.874900 -0.478900 -0.072300 +vn 0.666300 0.097600 0.739200 +vn 0.398900 0.913200 -0.083100 +vn 0.999700 -0.025100 0.000000 +vn 0.943900 0.063500 0.323900 +vn -0.037800 0.999300 0.000000 +vn -0.120600 0.864700 0.487500 +vn 0.594500 0.538300 0.597300 +vn 0.348000 0.032400 0.936900 +vn -0.473800 0.378700 0.795000 +vn 0.905200 -0.425000 0.000000 +vn 0.767400 -0.304700 0.564000 +vn 0.000000 0.399800 0.916600 +vn 0.219700 0.422600 0.879200 +vn 0.165300 0.259800 0.951400 +vn 0.893600 -0.332500 0.301500 +vn 0.935500 0.353100 0.000000 +vn 0.823900 0.426100 0.373600 +vn 0.902200 0.254600 0.348100 +vn 0.000000 0.991400 -0.130600 +vn 0.000000 0.548400 0.836200 +vn 0.846200 0.532900 0.000000 +vn -0.202500 -0.979200 0.000000 +vn 0.654500 -0.191800 0.731300 +vn 1.000000 0.003400 0.000000 +vn 0.844600 -0.007000 0.535300 +vn 0.490100 0.365900 0.791100 +vn 0.761100 0.100400 0.640800 +vn 0.438600 -0.072900 0.895700 +vn 0.596700 0.472800 0.648300 +vn 0.437000 0.245700 0.865300 +vn 0.000000 0.294200 0.955700 +vn 0.179800 -0.429400 0.885000 +vn 0.174000 -0.305600 0.936100 +vn 0.000000 -0.316300 0.948600 +vn 0.000000 -0.240700 0.970600 +vn 0.000000 -0.049900 0.998700 +vn 0.138400 -0.051900 0.989000 +vn 0.176100 0.191700 0.965500 +vn 0.550200 -0.261900 0.792900 +vn 0.614500 -0.294900 0.731700 +vn -0.208300 0.582300 0.785800 +vn 0.413200 -0.058200 0.908700 +vn 0.160600 -0.244700 0.956200 +vn 0.000000 0.169100 0.985600 +vn 0.208200 0.396100 0.894300 +vn 0.422000 0.196500 0.885000 +vn 0.722600 0.169100 0.670200 +vn 0.712900 -0.087300 0.695800 +vn 0.927600 -0.262300 0.266000 +vn 0.601500 -0.321800 0.731200 +vn 0.492700 -0.308800 0.813500 +vn 0.626800 -0.779200 0.000000 +vn 0.466000 -0.676100 0.570700 +vn 0.669000 0.381900 0.637700 +vn 0.687600 -0.286500 0.667100 +vn 0.441100 -0.269100 0.856200 +vn 0.414100 0.409800 0.812700 +vn 0.000000 0.365400 0.930800 +vn 0.991600 0.128900 0.000000 +vn 0.392100 0.473400 0.788700 +vn 0.552800 -0.833300 0.000000 +vn 0.448400 -0.396600 0.801000 +vn 0.593200 -0.080000 0.801000 +vn 0.000000 -0.435800 0.900000 +vn 0.727800 0.685800 0.000000 +vn 0.999500 -0.031300 0.000000 +vn -0.166000 0.713400 0.680800 +vn 0.417300 -0.271800 0.867100 +vn -0.040700 0.486300 0.872800 +vn -0.175700 0.984400 0.000000 +vn -0.287100 0.957900 0.000000 +vn 0.731400 -0.681900 0.000000 +vn 0.640100 -0.055100 0.766300 +vn 0.294200 0.649700 0.700900 +vn 0.959500 -0.281700 0.000000 +vn 0.556500 0.830800 0.000000 +vn -0.257200 0.966300 0.000000 +vn 0.079200 0.836800 -0.541800 +vn -0.076300 0.801000 -0.593700 +vn 0.577700 0.814900 0.045300 +vn -0.503600 0.863200 0.034800 +vn 0.337900 0.941100 -0.013200 +vn -0.291000 -0.366600 0.883700 +vn 0.237300 0.279200 0.930400 +vn 0.555700 0.003200 0.831300 +vn -0.682100 0.222200 -0.696600 +vn -0.893700 0.285200 -0.346200 +vn -0.579800 -0.607800 0.542500 +vn -0.663000 -0.465900 0.586000 +vn -0.772500 -0.635000 0.000000 +vn -0.297400 -0.700100 0.649100 +vn -0.438600 -0.898700 0.000000 +vn 0.025300 -0.999700 0.000000 +vn -0.927600 -0.262300 0.266000 +vn -0.947800 -0.129200 0.291500 +vn -0.398900 0.913200 -0.083100 +vn -0.666300 0.097600 0.739200 +vn -0.874900 -0.478900 -0.072300 +vn -0.943900 0.063500 0.323900 +vn -0.999700 -0.025100 0.000000 +vn -0.594500 0.538300 0.597300 +vn 0.120600 0.864700 0.487500 +vn 0.037800 0.999300 0.000000 +vn -0.261600 -0.673500 0.691400 +vn 0.473800 0.378700 0.795000 +vn -0.767400 -0.304700 0.564000 +vn -0.905200 -0.425000 0.000000 +vn -0.165300 0.259800 0.951400 +vn -0.219700 0.422600 0.879200 +vn -0.348000 0.032400 0.936900 +vn -0.893600 -0.332500 0.301500 +vn -0.902200 0.254600 0.348100 +vn -0.823900 0.426100 0.373600 +vn -0.935500 0.353100 0.000000 +vn 0.477500 0.874200 -0.087800 +vn -0.846200 0.532900 0.000000 +vn 0.208300 0.582300 0.785800 +vn -0.654500 -0.191800 0.731300 +vn -0.844600 -0.007000 0.535300 +vn -1.000000 0.003400 0.000000 +vn -0.490100 0.365900 0.791100 +vn -0.438600 -0.072900 0.895700 +vn -0.596700 0.472800 0.648300 +vn -0.761100 0.100400 0.640800 +vn -0.437000 0.245700 0.865300 +vn -0.174000 -0.305600 0.936100 +vn -0.179800 -0.429400 0.885000 +vn -0.160600 -0.244700 0.956200 +vn -0.176100 0.191700 0.965500 +vn -0.138400 -0.051900 0.989000 +vn -0.614500 -0.294900 0.731700 +vn -0.550200 -0.261900 0.792900 +vn -0.593200 -0.080000 0.801000 +vn -0.413200 -0.058200 0.908700 +vn -0.208200 0.396100 0.894300 +vn -0.422000 0.196500 0.885000 +vn -0.712900 -0.087300 0.695800 +vn -0.722600 0.169100 0.670200 +vn -0.687600 -0.286500 0.667100 +vn -0.492700 -0.308800 0.813500 +vn -0.601500 -0.321800 0.731200 +vn -0.466000 -0.676100 0.570700 +vn -0.626800 -0.779200 0.000000 +vn -0.669000 0.381900 0.637700 +vn 0.202500 -0.979200 0.000000 +vn -0.414100 0.409800 0.812700 +vn -0.991600 0.128900 0.000000 +vn -0.392100 0.473400 0.788700 +vn -0.441100 -0.269100 0.856200 +vn -0.552800 -0.833300 0.000000 +vn -0.448400 -0.396600 0.801000 +vn -0.999500 -0.031300 0.000000 +vn 0.166000 0.713400 0.680800 +vn 0.040700 0.486300 0.872800 +vn 0.175700 0.984400 0.000000 +vn 0.287100 0.957900 0.000000 +vn -0.417300 -0.271800 0.867100 +vn -0.294200 0.649700 0.700900 +vn -0.731400 -0.681900 0.000000 +vn -0.640100 -0.055100 0.766300 +vn -0.556500 0.830800 0.000000 +vn -0.959500 -0.281700 0.000000 +vn 0.257200 0.966300 0.000000 +vn -0.079200 0.836800 0.541800 +vn 0.076300 0.801000 0.593700 +vn -0.577700 0.814900 -0.045300 +vn 0.503600 0.863200 -0.034800 +vn -0.337900 0.941100 0.013200 +vn 0.291000 -0.366600 -0.883700 +vn -0.237300 0.279200 -0.930400 +vn -0.555700 0.003200 -0.831300 +vn 0.682100 0.222200 0.696600 +vn 0.893700 0.285200 0.346200 +vn 0.579800 -0.607800 -0.542500 +vn 0.663000 -0.465900 -0.586000 +vn 0.000000 -0.752200 -0.659000 +vn 0.297400 -0.700100 -0.649100 +vn 0.927600 -0.262300 -0.266000 +vn 0.947800 -0.129200 -0.291500 +vn 0.398900 0.913200 0.083100 +vn 0.666300 0.097600 -0.739200 +vn 0.874900 -0.478900 0.072300 +vn 0.943900 0.063500 -0.323900 +vn 0.594500 0.538300 -0.597300 +vn -0.120600 0.864700 -0.487500 +vn 0.261600 -0.673500 -0.691400 +vn -0.473800 0.378700 -0.795000 +vn 0.767400 -0.304700 -0.564000 +vn 0.165300 0.259800 -0.951400 +vn 0.219700 0.422600 -0.879200 +vn 0.000000 0.399800 -0.916600 +vn 0.348000 0.032400 -0.936900 +vn 0.893600 -0.332500 -0.301500 +vn 0.902200 0.254600 -0.348100 +vn 0.823900 0.426100 -0.373600 +vn -0.477500 0.874200 0.087800 +vn 0.000000 0.548400 -0.836200 +vn -0.208300 0.582300 -0.785800 +vn 0.654500 -0.191800 -0.731300 +vn 0.844600 -0.007000 -0.535300 +vn 0.490100 0.365900 -0.791100 +vn 0.438600 -0.072900 -0.895700 +vn 0.596700 0.472800 -0.648300 +vn 0.761100 0.100400 -0.640800 +vn 0.437000 0.245700 -0.865300 +vn 0.000000 0.294200 -0.955700 +vn 0.000000 -0.316300 -0.948600 +vn 0.174000 -0.305600 -0.936100 +vn 0.179800 -0.429400 -0.885000 +vn 0.000000 -0.240700 -0.970600 +vn 0.160600 -0.244700 -0.956200 +vn 0.176100 0.191700 -0.965500 +vn 0.138400 -0.051900 -0.989000 +vn 0.000000 -0.049900 -0.998700 +vn 0.614500 -0.294900 -0.731700 +vn 0.550200 -0.261900 -0.792900 +vn 0.593200 -0.080000 -0.801000 +vn 0.413200 -0.058200 -0.908700 +vn 0.208200 0.396100 -0.894300 +vn 0.000000 0.169100 -0.985600 +vn 0.422000 0.196500 -0.885000 +vn 0.712900 -0.087300 -0.695800 +vn 0.722600 0.169100 -0.670200 +vn 0.687600 -0.286500 -0.667100 +vn 0.492700 -0.308800 -0.813500 +vn 0.601500 -0.321800 -0.731200 +vn 0.466000 -0.676100 -0.570700 +vn 0.669000 0.381900 -0.637700 +vn 0.414100 0.409800 -0.812700 +vn 0.000000 0.365400 -0.930800 +vn 0.392100 0.473400 -0.788700 +vn 0.441100 -0.269100 -0.856200 +vn 0.448400 -0.396600 -0.801000 +vn 0.000000 -0.435800 -0.900000 +vn -0.166000 0.713400 -0.680800 +vn -0.040700 0.486300 -0.872800 +vn 0.417300 -0.271800 -0.867100 +vn 0.294200 0.649700 -0.700900 +vn 0.640100 -0.055100 -0.766300 +vn 0.000000 0.991400 0.130600 +vn 0.079200 0.836800 0.541800 +vn 0.477500 0.874200 0.087800 +vn 0.577700 0.814900 -0.045300 +vn 0.337900 0.941100 0.013200 +vn -0.503600 0.863200 -0.034800 +vn -0.076300 0.801000 0.593700 +vn -0.291000 -0.366600 -0.883700 +vn -0.261600 -0.673500 -0.691400 +vn 0.555700 0.003200 -0.831300 +vn -0.893700 0.285200 0.346200 +vn -0.663000 -0.465900 -0.586000 +vn -0.579800 -0.607800 -0.542500 +vn 0.237300 0.279200 -0.930400 +vn -0.297400 -0.700100 -0.649100 +vn -0.980700 -0.195400 0.000000 +vn -0.947800 -0.129200 -0.291500 +vn -0.874900 -0.478900 0.072300 +vn -0.666300 0.097600 -0.739200 +vn -0.398900 0.913200 0.083100 +vn -0.943900 0.063500 -0.323900 +vn 0.120600 0.864700 -0.487500 +vn -0.594500 0.538300 -0.597300 +vn -0.348000 0.032400 -0.936900 +vn 0.473800 0.378700 -0.795000 +vn -0.767400 -0.304700 -0.564000 +vn -0.219700 0.422600 -0.879200 +vn -0.165300 0.259800 -0.951400 +vn -0.893600 -0.332500 -0.301500 +vn -0.823900 0.426100 -0.373600 +vn -0.902200 0.254600 -0.348100 +vn -0.654500 -0.191800 -0.731300 +vn -0.844600 -0.007000 -0.535300 +vn -0.490100 0.365900 -0.791100 +vn -0.761100 0.100400 -0.640800 +vn -0.438600 -0.072900 -0.895700 +vn -0.596700 0.472800 -0.648300 +vn -0.437000 0.245700 -0.865300 +vn -0.179800 -0.429400 -0.885000 +vn -0.174000 -0.305600 -0.936100 +vn -0.138400 -0.051900 -0.989000 +vn -0.176100 0.191700 -0.965500 +vn -0.550200 -0.261900 -0.792900 +vn -0.614500 -0.294900 -0.731700 +vn 0.208300 0.582300 -0.785800 +vn -0.413200 -0.058200 -0.908700 +vn -0.160600 -0.244700 -0.956200 +vn -0.208200 0.396100 -0.894300 +vn -0.422000 0.196500 -0.885000 +vn -0.722600 0.169100 -0.670200 +vn -0.712900 -0.087300 -0.695800 +vn -0.927600 -0.262300 -0.266000 +vn -0.601500 -0.321800 -0.731200 +vn -0.492700 -0.308800 -0.813500 +vn -0.466000 -0.676100 -0.570700 +vn -0.669000 0.381900 -0.637700 +vn -0.687600 -0.286500 -0.667100 +vn -0.441100 -0.269100 -0.856200 +vn -0.414100 0.409800 -0.812700 +vn -0.392100 0.473400 -0.788700 +vn -0.448400 -0.396600 -0.801000 +vn -0.593200 -0.080000 -0.801000 +vn -0.727800 0.685800 0.000000 +vn 0.166000 0.713400 -0.680800 +vn -0.417300 -0.271800 -0.867100 +vn 0.040700 0.486300 -0.872800 +vn -0.640100 -0.055100 -0.766300 +vn -0.294200 0.649700 -0.700900 +vn 0.682100 0.222200 -0.696600 +vn -0.682100 0.222200 0.696600 +vn 0.000000 0.045100 0.999000 +vn 0.000000 0.046900 0.998900 +vn -0.575700 -0.203400 0.791900 +vn 0.575700 -0.203400 0.791900 +vn -0.707700 0.050700 0.704700 +vn -0.886300 -0.463000 0.000000 +vn 0.886300 -0.463000 0.000000 +vn 0.707700 0.050700 0.704700 +vn 0.996900 0.078100 0.000000 +vn 0.997200 0.075000 0.000000 +vn 0.706400 0.075600 0.703700 +vn 0.997900 0.063900 0.000000 +vn 0.998300 0.057800 0.000000 +vn 0.705900 0.057800 0.705900 +vn 0.998700 0.051400 0.000000 +vn 0.998800 0.048800 0.000000 +vn 0.706300 0.048800 0.706200 +vn -0.706400 0.075600 0.703700 +vn -0.997200 0.075000 0.000000 +vn -0.996900 0.078100 0.000000 +vn -0.705900 0.057800 0.705900 +vn -0.998300 0.057800 0.000000 +vn -0.997900 0.063900 0.000000 +vn -0.706300 0.048800 0.706200 +vn -0.998800 0.048800 0.000000 +vn -0.998700 0.051400 0.000000 +vn 0.620900 -0.138000 0.771600 +vn 0.000000 0.077500 0.997000 +vn 0.705600 0.063900 0.705600 +vn 0.000000 0.057800 0.998300 +vn 0.706200 0.051400 0.706200 +vn 0.000000 0.048700 0.998800 +vn -0.620900 -0.138000 0.771600 +vn -0.705600 0.063900 0.705600 +vn -0.706200 0.051400 0.706200 +vn 0.553900 -0.408400 0.725500 +vn 0.000000 -0.112700 0.993600 +vn -0.553900 -0.408400 0.725500 +vn -0.807600 -0.589700 0.000000 +vn 0.807600 -0.589700 0.000000 +vn -0.560700 0.184100 0.807200 +vn -0.536900 0.243600 0.807700 +vn -0.943000 0.332700 0.000000 +vn 0.536900 0.243600 0.807700 +vn 0.000000 0.174800 0.984600 +vn 0.000000 0.132600 0.991100 +vn 0.943000 0.332700 0.000000 +vn 0.560700 0.184100 0.807200 +vn 0.000000 -0.080900 0.996700 +vn 0.969300 0.245700 0.000000 +vn 0.564300 -0.109600 0.818200 +vn -0.564300 -0.109600 0.818200 +vn -0.969300 0.245700 0.000000 +vn -0.988800 -0.149000 0.000000 +vn 0.988800 -0.149000 0.000000 +vn 0.000000 0.405300 0.914200 +vn -0.471400 0.372700 0.799300 +vn -0.959300 0.282400 0.000000 +vn 0.471400 0.372700 0.799300 +vn 0.959300 0.282400 0.000000 +vn -0.397000 0.917800 0.000000 +vn -0.774200 0.633000 0.000000 +vn 0.397000 0.917800 0.000000 +vn 0.774200 0.633000 0.000000 +vn 0.000000 -0.240900 0.970500 +vn -0.765600 -0.643300 0.000000 +vn 0.765600 -0.643300 0.000000 +vn 0.000000 0.063900 0.997900 +vn 0.000000 0.051400 0.998700 +vn 0.998400 0.055800 0.000000 +vn -0.998400 0.055800 0.000000 +vn 0.290500 -0.956800 0.000000 +vn -0.290500 -0.956800 0.000000 +vn 0.000000 0.045100 -0.999000 +vn -0.707700 0.050700 -0.704700 +vn -0.575700 -0.203400 -0.791900 +vn 0.000000 0.046900 -0.998900 +vn 0.575700 -0.203400 -0.791900 +vn 0.707700 0.050700 -0.704700 +vn 0.620900 -0.138000 -0.771600 +vn 0.706400 0.075600 -0.703700 +vn 0.705600 0.063900 -0.705600 +vn 0.705900 0.057800 -0.705900 +vn 0.706200 0.051400 -0.706200 +vn 0.706300 0.048800 -0.706200 +vn -0.706400 0.075600 -0.703700 +vn -0.705900 0.057800 -0.705900 +vn -0.706300 0.048800 -0.706200 +vn 0.000000 -0.240900 -0.970500 +vn 0.000000 0.077500 -0.997000 +vn 0.000000 0.063900 -0.997900 +vn 0.000000 0.057800 -0.998300 +vn 0.000000 0.051400 -0.998700 +vn 0.000000 0.048700 -0.998800 +vn -0.620900 -0.138000 -0.771600 +vn -0.705600 0.063900 -0.705600 +vn -0.706200 0.051400 -0.706200 +vn 0.000000 -0.112700 -0.993600 +vn -0.553900 -0.408400 -0.725500 +vn 0.553900 -0.408400 -0.725500 +vn -0.560700 0.184100 -0.807200 +vn 0.000000 0.132600 -0.991100 +vn 0.000000 0.174800 -0.984600 +vn 0.536900 0.243600 -0.807700 +vn 0.560700 0.184100 -0.807200 +vn -0.536900 0.243600 -0.807700 +vn 0.000000 -0.080900 -0.996700 +vn -0.564300 -0.109600 -0.818200 +vn 0.564300 -0.109600 -0.818200 +vn -0.471400 0.372700 -0.799300 +vn 0.000000 0.405300 -0.914200 +vn 0.471400 0.372700 -0.799300 +usemtl None +s 1 +f 644/1/1 643/2/2 605/3/3 +f 643/2/2 607/4/4 645/5/5 +f 647/6/6 620/7/7 621/8/8 +f 643/2/2 602/9/9 648/10/10 +f 633/11/11 614/12/12 931/13/13 +f 605/14/3 621/8/8 620/7/7 +f 774/15/14 615/16/15 932/17/16 +f 936/18/17 637/19/18 610/20/19 +f 603/21/20 618/22/21 617/23/22 +f 927/24/23 610/20/19 608/25/24 +f 657/26/25 609/27/26 926/28/27 +f 646/29/28 621/8/8 622/30/29 +f 614/12/12 613/31/30 930/32/31 +f 627/33/32 625/34/33 776/35/34 +f 646/29/28 606/36/35 623/37/36 +f 640/38/37 616/39/38 933/40/39 +f 622/30/29 645/41/5 607/42/4 +f 620/7/7 775/43/40 773/44/41 +f 631/45/42 612/46/43 929/47/44 +f 613/31/30 611/48/45 928/49/46 +f 627/50/32 620/7/7 647/6/6 +f 628/51/47 618/22/21 619/52/48 +f 624/53/49 628/54/47 626/55/50 +f 625/34/33 627/33/32 650/56/51 +f 620/7/7 627/50/32 777/57/52 +f 778/58/53 629/59/54 658/60/55 +f 781/61/56 638/62/57 629/59/54 +f 632/63/58 630/64/59 779/65/60 +f 634/66/61 612/46/43 659/67/62 +f 609/27/26 631/45/42 934/68/63 +f 613/31/30 614/12/12 659/67/62 +f 657/26/25 660/69/64 631/45/42 +f 638/62/57 630/64/59 652/70/65 +f 641/71/66 632/63/58 780/72/67 +f 630/64/59 632/63/58 653/73/68 +f 635/74/69 636/75/70 608/25/24 +f 637/19/18 639/76/71 635/74/69 +f 651/77/72 634/66/61 661/78/73 +f 654/79/74 633/11/11 935/80/75 +f 642/81/76 624/53/49 616/39/38 +f 642/81/76 636/75/70 653/73/68 +f 612/46/43 634/66/61 639/76/71 +f 651/77/72 629/59/54 638/62/57 +f 630/64/59 638/62/57 781/61/56 +f 929/47/44 612/46/43 637/19/18 +f 624/53/49 642/81/76 656/82/77 +f 636/75/70 642/81/76 640/38/37 +f 625/34/33 641/71/66 782/83/78 +f 608/25/24 640/38/37 937/84/79 +f 649/85/80 656/82/77 641/71/66 +f 634/66/61 651/77/72 655/86/81 +f 656/82/77 653/73/68 632/63/58 +f 615/16/15 654/79/74 938/87/82 +f 629/59/54 651/77/72 662/88/83 +f 652/70/65 653/73/68 636/75/70 +f 639/76/71 655/86/81 652/70/65 +f 649/85/80 650/56/51 628/54/47 +f 650/89/51 647/6/6 618/22/21 +f 621/8/8 605/14/3 645/41/5 +f 617/23/22 623/37/36 648/90/10 +f 647/6/6 646/29/28 617/23/22 +f 607/42/4 648/90/10 623/37/36 +f 603/91/20 602/9/9 643/2/2 +f 658/60/55 662/88/83 654/79/74 +f 662/88/83 661/78/73 633/11/11 +f 611/48/45 613/31/30 660/69/64 +f 660/69/64 659/67/62 612/46/43 +f 661/78/73 659/67/62 614/12/12 +f 783/92/84 658/60/55 615/16/15 +f 928/49/46 611/48/45 657/26/25 +f 616/39/38 626/55/50 940/93/85 +f 941/94/86 940/95/85 626/96/50 +f 618/22/21 603/21/20 663/97/87 +f 619/52/48 663/97/87 664/98/88 +f 942/99/89 663/100/87 603/91/20 +f 663/100/87 942/99/89 943/101/90 +f 941/94/86 619/52/48 665/102/91 +f 665/102/91 664/98/88 666/103/92 +f 944/104/93 665/102/91 667/105/94 +f 943/101/90 945/106/95 666/107/92 +f 945/108/95 946/109/96 667/105/94 +f 773/110/41 1124/111/97 947/112/98 +f 947/112/98 942/99/89 644/1/1 +f 749/113/99 709/114/100 710/115/101 +f 750/116/102 712/117/103 748/118/104 +f 752/119/105 751/120/106 726/121/107 +f 748/118/104 712/117/103 753/122/108 +f 1106/123/109 719/124/110 738/125/111 +f 725/126/112 726/121/107 710/127/101 +f 1107/128/113 720/129/114 774/15/14 +f 1111/130/115 1102/131/116 715/132/117 +f 722/133/118 723/134/119 708/135/120 +f 1102/131/116 1100/136/121 713/137/122 +f 1101/138/123 714/139/124 762/140/125 +f 751/120/106 711/141/126 727/142/127 +f 1105/143/128 718/144/129 719/124/110 +f 776/35/34 730/145/130 732/146/131 +f 728/147/132 711/141/126 751/120/106 +f 1108/148/133 721/149/134 745/150/135 +f 712/151/103 750/152/102 727/142/127 +f 773/44/41 775/43/40 725/126/112 +f 1104/153/136 717/154/137 736/155/138 +f 1103/156/139 716/157/140 718/144/129 +f 752/119/105 725/126/112 732/158/131 +f 733/159/141 731/160/142 724/161/143 +f 729/162/144 721/149/134 731/163/142 +f 755/164/145 732/146/131 730/145/130 +f 777/57/52 732/158/131 725/126/112 +f 763/165/146 734/166/147 778/58/53 +f 781/61/56 778/58/53 734/166/147 +f 779/65/60 735/167/148 737/168/149 +f 764/169/150 717/154/137 739/170/151 +f 1109/171/152 736/155/138 714/139/124 +f 764/169/150 719/124/110 718/144/129 +f 762/140/125 714/139/124 736/155/138 +f 757/172/153 735/167/148 743/173/154 +f 780/72/67 737/168/149 746/174/155 +f 758/175/156 737/168/149 735/167/148 +f 713/137/122 741/176/157 740/177/158 +f 742/178/159 715/132/117 740/177/158 +f 766/179/160 739/170/151 756/180/161 +f 1110/181/162 738/125/111 759/182/163 +f 721/149/134 729/162/144 747/183/164 +f 758/175/156 741/176/157 747/183/164 +f 717/154/137 742/178/159 744/184/165 +f 756/180/161 760/185/166 743/173/154 +f 781/61/56 743/173/154 735/167/148 +f 1104/153/136 1111/130/115 742/178/159 +f 761/186/167 747/183/164 729/162/144 +f 745/150/135 747/183/164 741/176/157 +f 782/83/78 746/174/155 730/145/130 +f 1112/187/168 745/150/135 713/137/122 +f 746/174/155 761/186/167 754/188/169 +f 739/170/151 744/184/165 760/185/166 +f 737/168/149 758/175/156 761/186/167 +f 1113/189/170 759/182/163 720/129/114 +f 767/190/171 756/180/161 734/166/147 +f 741/176/157 758/175/156 757/172/153 +f 744/184/165 740/177/158 757/172/153 +f 733/191/141 755/164/145 754/188/169 +f 723/134/119 752/119/105 755/192/145 +f 726/121/107 727/142/127 750/152/102 +f 753/193/108 728/147/132 722/133/118 +f 722/133/118 751/120/106 752/119/105 +f 712/151/103 711/141/126 728/147/132 +f 708/194/120 749/113/99 748/118/104 +f 759/182/163 767/190/171 763/165/146 +f 738/125/111 766/179/160 767/190/171 +f 716/157/140 762/140/125 765/195/172 +f 717/154/137 764/169/150 765/195/172 +f 719/124/110 764/169/150 766/179/160 +f 720/129/114 763/165/146 783/92/84 +f 1103/156/139 1114/196/173 762/140/125 +f 1115/197/174 731/163/142 721/149/134 +f 1116/198/175 724/161/143 731/160/142 +f 768/199/176 708/135/120 723/134/119 +f 724/161/143 770/200/177 769/201/178 +f 708/194/120 768/202/176 1117/203/179 +f 768/202/176 769/204/178 1118/205/180 +f 1116/198/175 1119/206/181 770/200/177 +f 770/200/177 772/207/182 771/208/183 +f 1119/206/181 1121/209/184 772/207/182 +f 771/210/183 1120/211/185 1118/205/180 +f 1120/212/185 771/208/183 772/207/182 +f 773/110/41 709/114/100 1122/213/186 +f 749/113/99 1117/203/179 1122/213/186 +f 901/214/187 861/215/188 862/216/189 +f 902/217/190 864/218/191 900/219/192 +f 904/220/193 903/221/194 878/222/195 +f 900/219/192 864/218/191 905/223/196 +f 931/224/13 871/225/197 890/226/198 +f 877/227/199 878/222/195 862/228/189 +f 932/229/16 872/230/200 1090/231/201 +f 936/232/17 927/233/23 867/234/202 +f 874/235/203 875/236/204 860/237/205 +f 927/233/23 925/238/206 865/239/207 +f 926/240/27 866/241/208 914/242/209 +f 903/221/194 863/243/210 879/244/211 +f 930/245/31 870/246/212 871/225/197 +f 1092/247/213 882/248/214 884/249/215 +f 880/250/216 863/243/210 903/221/194 +f 933/251/39 873/252/217 897/253/218 +f 864/254/191 902/255/190 879/244/211 +f 1089/256/219 1091/257/220 877/227/199 +f 929/258/44 869/259/221 888/260/222 +f 928/261/46 868/262/223 870/246/212 +f 904/220/193 877/227/199 884/263/215 +f 885/264/224 883/265/225 876/266/226 +f 881/267/227 873/252/217 883/268/225 +f 907/269/228 884/249/215 882/248/214 +f 1093/270/229 884/263/215 877/227/199 +f 915/271/230 886/272/231 1094/273/232 +f 1097/274/233 1094/273/232 886/272/231 +f 1095/275/234 887/276/235 889/277/236 +f 916/278/237 869/259/221 891/279/238 +f 934/280/63 888/260/222 866/241/208 +f 916/278/237 871/225/197 870/246/212 +f 914/242/209 866/241/208 888/260/222 +f 909/281/239 887/276/235 895/282/240 +f 1096/283/241 889/277/236 898/284/242 +f 910/285/243 889/277/236 887/276/235 +f 865/239/207 893/286/244 892/287/245 +f 894/288/246 867/234/202 892/287/245 +f 918/289/247 891/279/238 908/290/248 +f 935/291/75 890/226/198 911/292/249 +f 873/252/217 881/267/227 899/293/250 +f 910/285/243 893/286/244 899/293/250 +f 869/259/221 894/288/246 896/294/251 +f 908/290/248 912/295/252 895/282/240 +f 1097/274/233 895/282/240 887/276/235 +f 929/258/44 936/232/17 894/288/246 +f 913/296/253 899/293/250 881/267/227 +f 897/253/218 899/293/250 893/286/244 +f 1098/297/254 898/284/242 882/248/214 +f 937/298/79 897/253/218 865/239/207 +f 898/284/242 913/296/253 906/299/255 +f 891/279/238 896/294/251 912/295/252 +f 889/277/236 910/285/243 913/296/253 +f 938/300/82 911/292/249 872/230/200 +f 919/301/256 908/290/248 886/272/231 +f 893/286/244 910/285/243 909/281/239 +f 896/294/251 892/287/245 909/281/239 +f 885/302/224 907/269/228 906/299/255 +f 875/236/204 904/220/193 907/303/228 +f 878/222/195 879/244/211 902/255/190 +f 905/304/196 880/250/216 874/235/203 +f 874/235/203 903/221/194 904/220/193 +f 864/254/191 863/243/210 880/250/216 +f 860/305/205 901/214/187 900/219/192 +f 911/292/249 919/301/256 915/271/230 +f 890/226/198 918/289/247 919/301/256 +f 868/262/223 914/242/209 917/306/257 +f 869/259/221 916/278/237 917/306/257 +f 871/225/197 916/278/237 918/289/247 +f 872/230/200 915/271/230 1099/307/258 +f 928/261/46 939/308/259 914/242/209 +f 940/309/85 883/268/225 873/252/217 +f 941/94/86 876/266/226 883/265/225 +f 920/310/260 860/237/205 875/236/204 +f 876/266/226 922/311/261 921/312/262 +f 860/305/205 920/313/260 942/99/89 +f 920/313/260 921/314/262 943/101/90 +f 941/94/86 944/104/93 922/311/261 +f 922/311/261 924/315/263 923/316/264 +f 944/104/93 946/109/96 924/315/263 +f 923/317/264 945/106/95 943/101/90 +f 945/108/95 923/316/264 924/315/263 +f 1089/318/219 861/215/188 947/112/98 +f 901/214/187 942/99/89 947/112/98 +f 1065/319/265 1064/320/266 1026/321/267 +f 1064/320/266 1028/322/268 1066/323/269 +f 1068/324/270 1041/325/271 1042/326/272 +f 1064/320/266 1023/327/273 1069/328/274 +f 1054/329/275 1035/330/276 1106/331/109 +f 1026/332/267 1042/326/272 1041/325/271 +f 1090/231/201 1036/333/277 1107/334/113 +f 1111/335/115 1058/336/278 1031/337/279 +f 1024/338/280 1039/339/281 1038/340/282 +f 1102/341/116 1031/337/279 1029/342/283 +f 1078/343/284 1030/344/285 1101/345/123 +f 1067/346/286 1042/326/272 1043/347/287 +f 1035/330/276 1034/348/288 1105/349/128 +f 1048/350/289 1046/351/290 1092/247/213 +f 1067/346/286 1027/352/291 1044/353/292 +f 1061/354/293 1037/355/294 1108/356/133 +f 1043/347/287 1066/357/269 1028/358/268 +f 1041/325/271 1091/257/220 1089/256/219 +f 1052/359/295 1033/360/296 1104/361/136 +f 1034/348/288 1032/362/297 1103/363/139 +f 1048/364/289 1041/325/271 1068/324/270 +f 1049/365/298 1039/339/281 1040/366/299 +f 1045/367/300 1049/368/298 1047/369/301 +f 1046/351/290 1048/350/289 1071/370/302 +f 1041/325/271 1048/364/289 1093/270/229 +f 1094/273/232 1050/371/303 1079/372/304 +f 1097/274/233 1059/373/305 1050/371/303 +f 1053/374/306 1051/375/307 1095/275/234 +f 1055/376/308 1033/360/296 1080/377/309 +f 1030/344/285 1052/359/295 1109/378/152 +f 1034/348/288 1035/330/276 1080/377/309 +f 1078/343/284 1081/379/310 1052/359/295 +f 1059/373/305 1051/375/307 1073/380/311 +f 1062/381/312 1053/374/306 1096/283/241 +f 1051/375/307 1053/374/306 1074/382/313 +f 1056/383/314 1057/384/315 1029/342/283 +f 1058/336/278 1060/385/316 1056/383/314 +f 1072/386/317 1055/376/308 1082/387/318 +f 1075/388/319 1054/329/275 1110/389/162 +f 1063/390/320 1045/367/300 1037/355/294 +f 1063/390/320 1057/384/315 1074/382/313 +f 1033/360/296 1055/376/308 1060/385/316 +f 1072/386/317 1050/371/303 1059/373/305 +f 1051/375/307 1059/373/305 1097/274/233 +f 1104/361/136 1033/360/296 1058/336/278 +f 1045/367/300 1063/390/320 1077/391/321 +f 1057/384/315 1063/390/320 1061/354/293 +f 1046/351/290 1062/381/312 1098/297/254 +f 1029/342/283 1061/354/293 1112/392/168 +f 1070/393/322 1077/391/321 1062/381/312 +f 1055/376/308 1072/386/317 1076/394/323 +f 1077/391/321 1074/382/313 1053/374/306 +f 1036/333/277 1075/388/319 1113/395/170 +f 1050/371/303 1072/386/317 1083/396/324 +f 1073/380/311 1074/382/313 1057/384/315 +f 1060/385/316 1076/394/323 1073/380/311 +f 1070/393/322 1071/370/302 1049/368/298 +f 1071/397/302 1068/324/270 1039/339/281 +f 1042/326/272 1026/332/267 1066/357/269 +f 1038/340/282 1044/353/292 1069/398/274 +f 1068/324/270 1067/346/286 1038/340/282 +f 1028/358/268 1069/398/274 1044/353/292 +f 1024/399/280 1023/327/273 1064/320/266 +f 1079/372/304 1083/396/324 1075/388/319 +f 1083/396/324 1082/387/318 1054/329/275 +f 1032/362/297 1034/348/288 1081/379/310 +f 1081/379/310 1080/377/309 1033/360/296 +f 1082/387/318 1080/377/309 1035/330/276 +f 1099/307/258 1079/372/304 1036/333/277 +f 1103/363/139 1032/362/297 1078/343/284 +f 1037/355/294 1047/369/301 1115/400/174 +f 1116/198/175 1115/401/174 1047/402/301 +f 1039/339/281 1024/338/280 1084/403/325 +f 1040/366/299 1084/403/325 1085/404/326 +f 1117/203/179 1084/405/325 1024/399/280 +f 1084/405/325 1117/203/179 1118/205/180 +f 1116/198/175 1040/366/299 1086/406/327 +f 1086/406/327 1085/404/326 1087/407/328 +f 1119/206/181 1086/406/327 1088/408/329 +f 1118/205/180 1120/211/185 1087/409/328 +f 1120/212/185 1121/209/184 1088/408/329 +f 1089/318/219 1124/111/97 1122/213/186 +f 1122/213/186 1117/203/179 1065/319/265 +f 604/410/330 644/1/1 605/3/3 +f 605/3/3 643/2/2 645/5/5 +f 646/29/28 647/6/6 621/8/8 +f 607/4/4 643/2/2 648/10/10 +f 935/80/75 633/11/11 931/13/13 +f 604/411/330 605/14/3 620/7/7 +f 1123/412/331 774/15/14 932/17/16 +f 927/24/23 936/18/17 610/20/19 +f 602/413/9 603/21/20 617/23/22 +f 925/414/206 927/24/23 608/25/24 +f 939/415/259 657/26/25 926/28/27 +f 606/36/35 646/29/28 622/30/29 +f 931/13/13 614/12/12 930/32/31 +f 777/416/52 627/33/32 776/35/34 +f 617/23/22 646/29/28 623/37/36 +f 937/84/79 640/38/37 933/40/39 +f 606/36/35 622/30/29 607/42/4 +f 604/411/330 620/7/7 773/44/41 +f 934/68/63 631/45/42 929/47/44 +f 930/32/31 613/31/30 928/49/46 +f 650/89/51 627/50/32 647/6/6 +f 626/96/50 628/51/47 619/52/48 +f 616/39/38 624/53/49 626/55/50 +f 649/85/80 625/34/33 650/56/51 +f 775/43/40 620/7/7 777/57/52 +f 783/92/84 778/58/53 658/60/55 +f 778/58/53 781/61/56 629/59/54 +f 780/72/67 632/63/58 779/65/60 +f 661/78/73 634/66/61 659/67/62 +f 926/28/27 609/27/26 934/68/63 +f 660/69/64 613/31/30 659/67/62 +f 609/27/26 657/26/25 631/45/42 +f 655/86/81 638/62/57 652/70/65 +f 782/83/78 641/71/66 780/72/67 +f 652/70/65 630/64/59 653/73/68 +f 610/20/19 635/74/69 608/25/24 +f 610/20/19 637/19/18 635/74/69 +f 662/88/83 651/77/72 661/78/73 +f 938/87/82 654/79/74 935/80/75 +f 640/38/37 642/81/76 616/39/38 +f 656/82/77 642/81/76 653/73/68 +f 637/19/18 612/46/43 639/76/71 +f 655/86/81 651/77/72 638/62/57 +f 779/65/60 630/64/59 781/61/56 +f 936/18/17 929/47/44 637/19/18 +f 649/85/80 624/53/49 656/82/77 +f 608/25/24 636/75/70 640/38/37 +f 776/35/34 625/34/33 782/83/78 +f 925/414/206 608/25/24 937/84/79 +f 625/34/33 649/85/80 641/71/66 +f 639/76/71 634/66/61 655/86/81 +f 641/71/66 656/82/77 632/63/58 +f 932/17/16 615/16/15 938/87/82 +f 658/60/55 629/59/54 662/88/83 +f 635/74/69 652/70/65 636/75/70 +f 635/74/69 639/76/71 652/70/65 +f 624/53/49 649/85/80 628/54/47 +f 628/51/47 650/89/51 618/22/21 +f 622/30/29 621/8/8 645/41/5 +f 602/413/9 617/23/22 648/90/10 +f 618/22/21 647/6/6 617/23/22 +f 606/36/35 607/42/4 623/37/36 +f 644/1/1 603/91/20 643/2/2 +f 615/16/15 658/60/55 654/79/74 +f 654/79/74 662/88/83 633/11/11 +f 657/26/25 611/48/45 660/69/64 +f 631/45/42 660/69/64 612/46/43 +f 633/11/11 661/78/73 614/12/12 +f 774/15/14 783/92/84 615/16/15 +f 939/415/259 928/49/46 657/26/25 +f 933/40/39 616/39/38 940/93/85 +f 619/52/48 941/94/86 626/96/50 +f 619/52/48 618/22/21 663/97/87 +f 665/102/91 619/52/48 664/98/88 +f 644/1/1 942/99/89 603/91/20 +f 664/417/88 663/100/87 943/101/90 +f 944/104/93 941/94/86 665/102/91 +f 667/105/94 665/102/91 666/103/92 +f 946/109/96 944/104/93 667/105/94 +f 664/417/88 943/101/90 666/107/92 +f 666/103/92 945/108/95 667/105/94 +f 604/410/330 773/110/41 947/112/98 +f 604/410/330 947/112/98 644/1/1 +f 748/118/104 749/113/99 710/115/101 +f 710/115/101 750/116/102 748/118/104 +f 725/126/112 752/119/105 726/121/107 +f 707/418/332 748/118/104 753/122/108 +f 1110/181/162 1106/123/109 738/125/111 +f 709/419/100 725/126/112 710/127/101 +f 1123/412/331 1107/128/113 774/15/14 +f 742/178/159 1111/130/115 715/132/117 +f 707/420/332 722/133/118 708/135/120 +f 715/132/117 1102/131/116 713/137/122 +f 1114/196/173 1101/138/123 762/140/125 +f 726/121/107 751/120/106 727/142/127 +f 1106/123/109 1105/143/128 719/124/110 +f 777/416/52 776/35/34 732/146/131 +f 722/133/118 728/147/132 751/120/106 +f 1112/187/168 1108/148/133 745/150/135 +f 711/141/126 712/151/103 727/142/127 +f 709/419/100 773/44/41 725/126/112 +f 1109/171/152 1104/153/136 736/155/138 +f 1105/143/128 1103/156/139 718/144/129 +f 755/192/145 752/119/105 732/158/131 +f 723/134/119 733/159/141 724/161/143 +f 733/191/141 729/162/144 731/163/142 +f 754/188/169 755/164/145 730/145/130 +f 775/43/40 777/57/52 725/126/112 +f 783/92/84 763/165/146 778/58/53 +f 743/173/154 781/61/56 734/166/147 +f 780/72/67 779/65/60 737/168/149 +f 766/179/160 764/169/150 739/170/151 +f 1101/138/123 1109/171/152 714/139/124 +f 765/195/172 764/169/150 718/144/129 +f 765/195/172 762/140/125 736/155/138 +f 760/185/166 757/172/153 743/173/154 +f 782/83/78 780/72/67 746/174/155 +f 757/172/153 758/175/156 735/167/148 +f 715/132/117 713/137/122 740/177/158 +f 744/184/165 742/178/159 740/177/158 +f 767/190/171 766/179/160 756/180/161 +f 1113/189/170 1110/181/162 759/182/163 +f 745/150/135 721/149/134 747/183/164 +f 761/186/167 758/175/156 747/183/164 +f 739/170/151 717/154/137 744/184/165 +f 734/166/147 756/180/161 743/173/154 +f 779/65/60 781/61/56 735/167/148 +f 717/154/137 1104/153/136 742/178/159 +f 754/188/169 761/186/167 729/162/144 +f 713/137/122 745/150/135 741/176/157 +f 776/35/34 782/83/78 730/145/130 +f 1100/136/121 1112/187/168 713/137/122 +f 730/145/130 746/174/155 754/188/169 +f 756/180/161 739/170/151 760/185/166 +f 746/174/155 737/168/149 761/186/167 +f 1107/128/113 1113/189/170 720/129/114 +f 763/165/146 767/190/171 734/166/147 +f 740/177/158 741/176/157 757/172/153 +f 760/185/166 744/184/165 757/172/153 +f 729/162/144 733/191/141 754/188/169 +f 733/159/141 723/134/119 755/192/145 +f 710/127/101 726/121/107 750/152/102 +f 707/420/332 753/193/108 722/133/118 +f 723/134/119 722/133/118 752/119/105 +f 753/193/108 712/151/103 728/147/132 +f 707/418/332 708/194/120 748/118/104 +f 720/129/114 759/182/163 763/165/146 +f 759/182/163 738/125/111 767/190/171 +f 718/144/129 716/157/140 765/195/172 +f 736/155/138 717/154/137 765/195/172 +f 738/125/111 719/124/110 766/179/160 +f 774/15/14 720/129/114 783/92/84 +f 716/157/140 1103/156/139 762/140/125 +f 1108/148/133 1115/197/174 721/149/134 +f 1115/401/174 1116/198/175 731/160/142 +f 724/161/143 768/199/176 723/134/119 +f 768/199/176 724/161/143 769/201/178 +f 749/113/99 708/194/120 1117/203/179 +f 1117/203/179 768/202/176 1118/205/180 +f 724/161/143 1116/198/175 770/200/177 +f 769/201/178 770/200/177 771/208/183 +f 770/200/177 1119/206/181 772/207/182 +f 769/204/178 771/210/183 1118/205/180 +f 1121/209/184 1120/212/185 772/207/182 +f 1124/111/97 773/110/41 1122/213/186 +f 709/114/100 749/113/99 1122/213/186 +f 900/219/192 901/214/187 862/216/189 +f 862/216/189 902/217/190 900/219/192 +f 877/227/199 904/220/193 878/222/195 +f 859/421/333 900/219/192 905/223/196 +f 935/291/75 931/224/13 890/226/198 +f 861/422/188 877/227/199 862/228/189 +f 1123/423/331 932/229/16 1090/231/201 +f 894/288/246 936/232/17 867/234/202 +f 859/424/333 874/235/203 860/237/205 +f 867/234/202 927/233/23 865/239/207 +f 939/308/259 926/240/27 914/242/209 +f 878/222/195 903/221/194 879/244/211 +f 931/224/13 930/245/31 871/225/197 +f 1093/425/229 1092/247/213 884/249/215 +f 874/235/203 880/250/216 903/221/194 +f 937/298/79 933/251/39 897/253/218 +f 863/243/210 864/254/191 879/244/211 +f 861/422/188 1089/256/219 877/227/199 +f 934/280/63 929/258/44 888/260/222 +f 930/245/31 928/261/46 870/246/212 +f 907/303/228 904/220/193 884/263/215 +f 875/236/204 885/264/224 876/266/226 +f 885/302/224 881/267/227 883/268/225 +f 906/299/255 907/269/228 882/248/214 +f 1091/257/220 1093/270/229 877/227/199 +f 1099/307/258 915/271/230 1094/273/232 +f 895/282/240 1097/274/233 886/272/231 +f 1096/283/241 1095/275/234 889/277/236 +f 918/289/247 916/278/237 891/279/238 +f 926/240/27 934/280/63 866/241/208 +f 917/306/257 916/278/237 870/246/212 +f 917/306/257 914/242/209 888/260/222 +f 912/295/252 909/281/239 895/282/240 +f 1098/297/254 1096/283/241 898/284/242 +f 909/281/239 910/285/243 887/276/235 +f 867/234/202 865/239/207 892/287/245 +f 896/294/251 894/288/246 892/287/245 +f 919/301/256 918/289/247 908/290/248 +f 938/300/82 935/291/75 911/292/249 +f 897/253/218 873/252/217 899/293/250 +f 913/296/253 910/285/243 899/293/250 +f 891/279/238 869/259/221 896/294/251 +f 886/272/231 908/290/248 895/282/240 +f 1095/275/234 1097/274/233 887/276/235 +f 869/259/221 929/258/44 894/288/246 +f 906/299/255 913/296/253 881/267/227 +f 865/239/207 897/253/218 893/286/244 +f 1092/247/213 1098/297/254 882/248/214 +f 925/238/206 937/298/79 865/239/207 +f 882/248/214 898/284/242 906/299/255 +f 908/290/248 891/279/238 912/295/252 +f 898/284/242 889/277/236 913/296/253 +f 932/229/16 938/300/82 872/230/200 +f 915/271/230 919/301/256 886/272/231 +f 892/287/245 893/286/244 909/281/239 +f 912/295/252 896/294/251 909/281/239 +f 881/267/227 885/302/224 906/299/255 +f 885/264/224 875/236/204 907/303/228 +f 862/228/189 878/222/195 902/255/190 +f 859/424/333 905/304/196 874/235/203 +f 875/236/204 874/235/203 904/220/193 +f 905/304/196 864/254/191 880/250/216 +f 859/421/333 860/305/205 900/219/192 +f 872/230/200 911/292/249 915/271/230 +f 911/292/249 890/226/198 919/301/256 +f 870/246/212 868/262/223 917/306/257 +f 888/260/222 869/259/221 917/306/257 +f 890/226/198 871/225/197 918/289/247 +f 1090/231/201 872/230/200 1099/307/258 +f 868/262/223 928/261/46 914/242/209 +f 933/251/39 940/309/85 873/252/217 +f 940/95/85 941/94/86 883/265/225 +f 876/266/226 920/310/260 875/236/204 +f 920/310/260 876/266/226 921/312/262 +f 901/214/187 860/305/205 942/99/89 +f 942/99/89 920/313/260 943/101/90 +f 876/266/226 941/94/86 922/311/261 +f 921/312/262 922/311/261 923/316/264 +f 922/311/261 944/104/93 924/315/263 +f 921/314/262 923/317/264 943/101/90 +f 946/109/96 945/108/95 924/315/263 +f 1124/111/97 1089/318/219 947/112/98 +f 861/215/188 901/214/187 947/112/98 +f 1025/426/334 1065/319/265 1026/321/267 +f 1026/321/267 1064/320/266 1066/323/269 +f 1067/346/286 1068/324/270 1042/326/272 +f 1028/322/268 1064/320/266 1069/328/274 +f 1110/389/162 1054/329/275 1106/331/109 +f 1025/427/334 1026/332/267 1041/325/271 +f 1123/423/331 1090/231/201 1107/334/113 +f 1102/341/116 1111/335/115 1031/337/279 +f 1023/428/273 1024/338/280 1038/340/282 +f 1100/429/121 1102/341/116 1029/342/283 +f 1114/430/173 1078/343/284 1101/345/123 +f 1027/352/291 1067/346/286 1043/347/287 +f 1106/331/109 1035/330/276 1105/349/128 +f 1093/425/229 1048/350/289 1092/247/213 +f 1038/340/282 1067/346/286 1044/353/292 +f 1112/392/168 1061/354/293 1108/356/133 +f 1027/352/291 1043/347/287 1028/358/268 +f 1025/427/334 1041/325/271 1089/256/219 +f 1109/378/152 1052/359/295 1104/361/136 +f 1105/349/128 1034/348/288 1103/363/139 +f 1071/397/302 1048/364/289 1068/324/270 +f 1047/402/301 1049/365/298 1040/366/299 +f 1037/355/294 1045/367/300 1047/369/301 +f 1070/393/322 1046/351/290 1071/370/302 +f 1091/257/220 1041/325/271 1093/270/229 +f 1099/307/258 1094/273/232 1079/372/304 +f 1094/273/232 1097/274/233 1050/371/303 +f 1096/283/241 1053/374/306 1095/275/234 +f 1082/387/318 1055/376/308 1080/377/309 +f 1101/345/123 1030/344/285 1109/378/152 +f 1081/379/310 1034/348/288 1080/377/309 +f 1030/344/285 1078/343/284 1052/359/295 +f 1076/394/323 1059/373/305 1073/380/311 +f 1098/297/254 1062/381/312 1096/283/241 +f 1073/380/311 1051/375/307 1074/382/313 +f 1031/337/279 1056/383/314 1029/342/283 +f 1031/337/279 1058/336/278 1056/383/314 +f 1083/396/324 1072/386/317 1082/387/318 +f 1113/395/170 1075/388/319 1110/389/162 +f 1061/354/293 1063/390/320 1037/355/294 +f 1077/391/321 1063/390/320 1074/382/313 +f 1058/336/278 1033/360/296 1060/385/316 +f 1076/394/323 1072/386/317 1059/373/305 +f 1095/275/234 1051/375/307 1097/274/233 +f 1111/335/115 1104/361/136 1058/336/278 +f 1070/393/322 1045/367/300 1077/391/321 +f 1029/342/283 1057/384/315 1061/354/293 +f 1092/247/213 1046/351/290 1098/297/254 +f 1100/429/121 1029/342/283 1112/392/168 +f 1046/351/290 1070/393/322 1062/381/312 +f 1060/385/316 1055/376/308 1076/394/323 +f 1062/381/312 1077/391/321 1053/374/306 +f 1107/334/113 1036/333/277 1113/395/170 +f 1079/372/304 1050/371/303 1083/396/324 +f 1056/383/314 1073/380/311 1057/384/315 +f 1056/383/314 1060/385/316 1073/380/311 +f 1045/367/300 1070/393/322 1049/368/298 +f 1049/365/298 1071/397/302 1039/339/281 +f 1043/347/287 1042/326/272 1066/357/269 +f 1023/428/273 1038/340/282 1069/398/274 +f 1039/339/281 1068/324/270 1038/340/282 +f 1027/352/291 1028/358/268 1044/353/292 +f 1065/319/265 1024/399/280 1064/320/266 +f 1036/333/277 1079/372/304 1075/388/319 +f 1075/388/319 1083/396/324 1054/329/275 +f 1078/343/284 1032/362/297 1081/379/310 +f 1052/359/295 1081/379/310 1033/360/296 +f 1054/329/275 1082/387/318 1035/330/276 +f 1090/231/201 1099/307/258 1036/333/277 +f 1114/430/173 1103/363/139 1078/343/284 +f 1108/356/133 1037/355/294 1115/400/174 +f 1040/366/299 1116/198/175 1047/402/301 +f 1040/366/299 1039/339/281 1084/403/325 +f 1086/406/327 1040/366/299 1085/404/326 +f 1065/319/265 1117/203/179 1024/399/280 +f 1085/431/326 1084/405/325 1118/205/180 +f 1119/206/181 1116/198/175 1086/406/327 +f 1088/408/329 1086/406/327 1087/407/328 +f 1121/209/184 1119/206/181 1088/408/329 +f 1085/431/326 1118/205/180 1087/409/328 +f 1087/407/328 1120/212/185 1088/408/329 +f 1025/426/334 1089/318/219 1122/213/186 +f 1025/426/334 1122/213/186 1065/319/265 +usemtl Derp +f 599/432/335 565/433/336 564/434/337 +f 600/435/338 564/434/337 563/436/339 +f 858/437/340 793/438/341 565/433/336 +f 601/439/342 563/436/339 789/440/343 +f 591/441/344 571/442/345 794/443/346 +f 594/444/347 570/445/348 795/446/349 +f 849/447/350 597/448/351 569/449/352 +f 592/450/353 841/451/354 805/452/355 +f 595/453/356 847/454/357 804/455/358 +f 598/456/359 852/457/360 803/458/361 +f 590/459/362 568/460/363 571/442/345 +f 594/444/347 593/461/364 567/462/365 +f 597/448/351 596/463/366 566/464/367 +f 592/450/353 572/465/368 568/460/363 +f 593/461/364 595/453/356 573/466/369 +f 598/456/359 574/467/370 566/464/367 +f 563/436/339 564/434/337 576/468/371 +f 565/433/336 577/469/372 576/468/371 +f 793/438/341 813/470/373 577/469/372 +f 789/440/343 563/436/339 575/471/374 +f 581/472/375 819/473/376 818/474/377 +f 582/475/378 579/476/379 578/477/380 +f 583/478/381 578/477/380 814/479/382 +f 582/475/378 581/472/375 580/480/383 +f 586/481/384 584/482/385 581/472/375 +f 585/483/386 583/478/381 823/484/387 +f 586/481/384 582/475/378 583/478/381 +f 584/482/385 827/485/388 819/473/376 +f 813/470/373 827/485/388 584/482/385 +f 575/471/374 576/468/371 586/481/384 +f 809/486/389 575/471/374 585/483/386 +f 577/469/372 584/482/385 586/481/384 +f 579/476/379 580/480/383 589/487/390 +f 580/480/383 818/474/377 833/488/391 +f 579/476/379 588/489/392 587/490/393 +f 578/477/380 587/490/393 829/491/394 +f 589/487/390 833/488/391 838/492/395 +f 588/489/392 836/493/97 835/494/396 +f 587/490/393 835/494/396 834/495/397 +f 588/489/392 589/487/390 837/496/398 +f 786/497/331 785/498/399 592/450/353 +f 786/497/331 590/459/362 591/441/344 +f 785/498/399 784/499/400 841/451/354 +f 787/500/401 591/441/344 842/501/402 +f 572/465/368 595/453/356 593/461/364 +f 568/460/363 593/461/364 594/444/347 +f 572/465/368 805/452/355 847/454/357 +f 794/443/346 571/442/345 594/444/347 +f 573/466/369 598/456/359 596/463/366 +f 570/445/348 567/462/365 596/463/366 +f 804/455/358 852/457/360 598/456/359 +f 795/446/349 570/445/348 597/448/351 +f 569/449/352 601/439/342 854/502/403 +f 803/458/361 858/437/340 599/432/335 +f 566/464/367 600/435/338 601/439/342 +f 574/467/370 599/432/335 600/435/338 +f 669/503/337 670/504/339 704/505/342 +f 668/506/336 669/503/337 705/507/338 +f 670/504/339 957/508/343 1022/509/403 +f 953/510/341 668/506/336 706/511/335 +f 1006/512/354 958/443/355 676/513/368 +f 959/514/358 675/515/369 699/516/356 +f 1013/517/360 960/518/361 674/519/370 +f 677/520/345 969/521/346 1005/522/402 +f 700/523/347 678/524/348 968/525/349 +f 679/526/352 967/527/404 1016/528/350 +f 676/513/368 673/529/363 695/530/362 +f 675/515/369 672/531/365 698/532/364 +f 702/533/359 674/519/370 671/534/367 +f 673/529/363 677/520/345 697/535/344 +f 672/531/365 678/524/348 700/523/347 +f 701/536/366 671/534/367 679/526/352 +f 668/506/336 680/537/372 681/538/371 +f 681/538/371 682/539/374 670/504/339 +f 682/539/374 977/540/389 957/508/343 +f 953/510/341 973/541/373 680/537/372 +f 686/542/381 685/543/380 982/544/382 +f 683/545/383 684/546/379 687/547/378 +f 978/548/377 683/545/383 688/549/375 +f 687/547/378 684/546/379 685/543/380 +f 691/550/384 687/547/378 686/542/381 +f 987/551/376 688/549/375 690/552/385 +f 688/549/375 687/547/378 691/550/384 +f 689/553/386 686/542/381 983/554/387 +f 689/553/386 991/555/405 977/540/389 +f 680/537/372 690/552/385 691/550/384 +f 973/541/373 990/556/388 690/552/385 +f 691/550/384 689/553/386 682/539/374 +f 684/546/379 693/557/392 694/558/393 +f 685/543/380 694/558/393 997/559/394 +f 692/560/390 693/557/392 684/546/379 +f 993/561/391 692/560/390 683/545/383 +f 694/558/393 1001/562/396 1002/563/397 +f 999/564/398 1000/565/97 693/557/392 +f 998/566/395 999/564/398 692/560/390 +f 693/557/392 1000/565/97 1001/562/396 +f 950/567/331 695/530/362 697/535/344 +f 696/568/353 695/530/362 950/567/331 +f 949/569/401 697/535/344 1005/522/402 +f 1006/512/354 696/568/353 951/570/399 +f 673/529/363 698/532/364 700/523/347 +f 699/516/356 698/532/364 673/529/363 +f 677/520/345 700/523/347 1011/571/406 +f 958/443/355 1008/572/357 699/516/356 +f 672/531/365 701/536/366 703/573/351 +f 675/515/369 702/533/359 701/536/366 +f 703/573/351 1016/528/350 968/525/349 +f 1013/517/360 702/533/359 675/515/369 +f 1018/574/340 706/511/335 674/519/370 +f 704/505/342 1022/509/403 967/527/404 +f 706/511/335 705/507/338 671/534/367 +f 705/507/338 704/505/342 679/526/352 +f 791/575/407 792/576/408 855/577/409 +f 790/578/410 791/575/407 856/579/411 +f 792/576/408 793/580/341 858/581/340 +f 789/582/343 790/578/410 857/583/412 +f 842/584/402 794/585/346 802/586/413 +f 795/587/349 801/588/414 846/589/415 +f 849/590/350 796/591/404 800/592/416 +f 806/593/417 805/594/355 841/595/354 +f 848/596/418 807/597/419 804/598/358 +f 808/599/420 803/600/361 852/601/360 +f 802/586/413 799/602/421 839/603/422 +f 801/588/414 798/604/423 845/605/424 +f 851/606/425 800/592/416 797/607/426 +f 799/602/421 806/593/417 843/608/427 +f 798/604/423 807/597/419 848/596/418 +f 850/609/428 797/607/426 808/599/420 +f 790/578/410 810/610/429 811/611/430 +f 811/611/430 812/612/431 792/576/408 +f 812/612/431 813/613/373 793/580/341 +f 789/582/343 809/614/389 810/610/429 +f 820/615/432 817/616/433 818/617/377 +f 815/618/434 816/619/435 821/620/436 +f 814/621/382 815/618/434 822/622/437 +f 821/620/436 816/619/435 817/616/433 +f 828/623/438 821/620/436 820/615/432 +f 823/624/387 822/622/437 825/625/439 +f 822/622/437 821/620/436 828/623/438 +f 824/626/440 820/615/432 819/627/376 +f 824/626/440 827/628/388 813/613/373 +f 810/610/429 825/625/439 828/623/438 +f 809/614/389 826/629/405 825/625/439 +f 828/623/438 824/626/440 812/612/431 +f 816/619/435 831/630/441 832/631/442 +f 817/616/433 832/631/442 833/632/391 +f 830/633/443 831/630/441 816/619/435 +f 829/634/394 830/633/443 815/618/434 +f 832/631/442 837/635/398 838/636/395 +f 835/637/396 836/638/97 831/630/441 +f 834/639/397 835/637/396 830/633/443 +f 831/630/441 836/638/97 837/635/398 +f 786/640/331 839/603/422 843/608/427 +f 840/641/444 839/603/422 786/640/331 +f 785/642/399 843/608/427 841/595/354 +f 842/584/402 840/641/444 787/643/401 +f 799/602/421 845/605/424 848/596/418 +f 846/589/415 845/605/424 799/602/421 +f 806/593/417 848/596/418 847/644/357 +f 794/585/346 844/645/406 846/589/415 +f 798/604/423 850/609/428 853/646/445 +f 801/588/414 851/606/425 850/609/428 +f 853/646/445 852/601/360 804/598/358 +f 849/590/350 851/606/425 801/588/414 +f 854/647/403 857/583/412 800/592/416 +f 855/577/409 858/581/340 803/600/361 +f 857/583/412 856/579/411 797/607/426 +f 856/579/411 855/577/409 808/599/420 +f 1019/648/412 956/649/410 955/650/407 +f 1020/651/411 955/650/407 954/652/408 +f 1022/653/403 957/654/343 956/649/410 +f 1021/655/409 954/652/408 953/656/341 +f 1004/657/427 966/658/417 958/659/355 +f 1010/660/418 965/661/419 959/662/358 +f 1013/663/360 1015/664/445 964/665/420 +f 1007/666/444 1005/667/402 969/668/346 +f 1012/669/415 1011/670/406 968/671/349 +f 1017/672/425 1016/673/350 967/674/404 +f 1003/675/422 963/676/421 966/658/417 +f 1010/660/418 1009/677/424 962/678/423 +f 1015/664/445 1014/679/428 961/680/426 +f 1007/666/444 970/681/413 963/676/421 +f 1009/677/424 1012/669/415 971/682/414 +f 1017/672/425 972/683/416 961/680/426 +f 954/652/408 955/650/407 975/684/430 +f 956/649/410 976/685/429 975/684/430 +f 957/654/343 977/686/389 976/685/429 +f 953/656/341 954/652/408 974/687/431 +f 984/688/437 983/689/387 982/690/382 +f 985/691/436 980/692/435 979/693/433 +f 986/694/432 979/693/433 978/695/377 +f 985/691/436 984/688/437 981/696/434 +f 992/697/438 988/698/439 984/688/437 +f 989/699/440 986/694/432 987/700/376 +f 992/697/438 985/691/436 986/694/432 +f 988/698/439 991/701/405 983/689/387 +f 977/686/389 991/701/405 988/698/439 +f 974/687/431 975/684/430 992/697/438 +f 973/702/373 974/687/431 989/699/440 +f 976/685/429 988/698/439 992/697/438 +f 980/692/435 981/696/434 996/703/443 +f 981/696/434 982/690/382 997/704/394 +f 980/692/435 995/705/441 994/706/442 +f 979/693/433 994/706/442 993/707/391 +f 996/703/443 997/704/394 1002/708/397 +f 995/705/441 1000/709/97 999/710/398 +f 994/706/442 999/710/398 998/711/395 +f 995/705/441 996/703/443 1001/712/396 +f 950/713/331 949/714/401 1007/666/444 +f 950/713/331 1003/675/422 1004/657/427 +f 949/714/401 948/715/446 1005/667/402 +f 951/716/399 1004/657/427 1006/717/354 +f 970/681/413 1012/669/415 1009/677/424 +f 963/676/421 1009/677/424 1010/660/418 +f 970/681/413 969/668/346 1011/670/406 +f 958/659/355 966/658/417 1010/660/418 +f 971/682/414 1017/672/425 1014/679/428 +f 965/661/419 962/678/423 1014/679/428 +f 968/671/349 1016/673/350 1017/672/425 +f 959/662/358 965/661/419 1015/664/445 +f 964/665/420 1021/655/409 1018/718/340 +f 967/674/404 1022/653/403 1019/648/412 +f 961/680/426 1020/651/411 1021/655/409 +f 972/683/416 1019/648/412 1020/651/411 +f 600/435/338 599/432/335 564/434/337 +f 601/439/342 600/435/338 563/436/339 +f 599/432/335 858/437/340 565/433/336 +f 854/502/403 601/439/342 789/440/343 +f 842/501/402 591/441/344 794/443/346 +f 844/719/406 594/444/347 795/446/349 +f 796/720/404 849/447/350 569/449/352 +f 572/465/368 592/450/353 805/452/355 +f 573/466/369 595/453/356 804/455/358 +f 574/467/370 598/456/359 803/458/361 +f 591/441/344 590/459/362 571/442/345 +f 570/445/348 594/444/347 567/462/365 +f 569/449/352 597/448/351 566/464/367 +f 590/459/362 592/450/353 568/460/363 +f 567/462/365 593/461/364 573/466/369 +f 596/463/366 598/456/359 566/464/367 +f 575/471/374 563/436/339 576/468/371 +f 564/434/337 565/433/336 576/468/371 +f 565/433/336 793/438/341 577/469/372 +f 809/486/389 789/440/343 575/471/374 +f 580/480/383 581/472/375 818/474/377 +f 583/478/381 582/475/378 578/477/380 +f 823/484/387 583/478/381 814/479/382 +f 579/476/379 582/475/378 580/480/383 +f 582/475/378 586/481/384 581/472/375 +f 826/721/405 585/483/386 823/484/387 +f 585/483/386 586/481/384 583/478/381 +f 581/472/375 584/482/385 819/473/376 +f 577/469/372 813/470/373 584/482/385 +f 585/483/386 575/471/374 586/481/384 +f 826/721/405 809/486/389 585/483/386 +f 576/468/371 577/469/372 586/481/384 +f 588/489/392 579/476/379 589/487/390 +f 589/487/390 580/480/383 833/488/391 +f 578/477/380 579/476/379 587/490/393 +f 814/479/382 578/477/380 829/491/394 +f 837/496/398 589/487/390 838/492/395 +f 587/490/393 588/489/392 835/494/396 +f 829/491/394 587/490/393 834/495/397 +f 836/493/97 588/489/392 837/496/398 +f 590/459/362 786/497/331 592/450/353 +f 787/500/401 786/497/331 591/441/344 +f 592/450/353 785/498/399 841/451/354 +f 788/722/447 787/500/401 842/501/402 +f 568/460/363 572/465/368 593/461/364 +f 571/442/345 568/460/363 594/444/347 +f 595/453/356 572/465/368 847/454/357 +f 844/719/406 794/443/346 594/444/347 +f 567/462/365 573/466/369 596/463/366 +f 597/448/351 570/445/348 596/463/366 +f 573/466/369 804/455/358 598/456/359 +f 849/447/350 795/446/349 597/448/351 +f 796/720/404 569/449/352 854/502/403 +f 574/467/370 803/458/361 599/432/335 +f 569/449/352 566/464/367 601/439/342 +f 566/464/367 574/467/370 600/435/338 +f 705/507/338 669/503/337 704/505/342 +f 706/511/335 668/506/336 705/507/338 +f 704/505/342 670/504/339 1022/509/403 +f 1018/574/340 953/510/341 706/511/335 +f 696/568/353 1006/512/354 676/513/368 +f 1008/572/357 959/514/358 699/516/356 +f 702/533/359 1013/517/360 674/519/370 +f 697/535/344 677/520/345 1005/522/402 +f 1011/571/406 700/523/347 968/525/349 +f 703/573/351 679/526/352 1016/528/350 +f 696/568/353 676/513/368 695/530/362 +f 699/516/356 675/515/369 698/532/364 +f 701/536/366 702/533/359 671/534/367 +f 695/530/362 673/529/363 697/535/344 +f 698/532/364 672/531/365 700/523/347 +f 703/573/351 701/536/366 679/526/352 +f 669/503/337 668/506/336 681/538/371 +f 669/503/337 681/538/371 670/504/339 +f 670/504/339 682/539/374 957/508/343 +f 668/506/336 953/510/341 680/537/372 +f 983/554/387 686/542/381 982/544/382 +f 688/549/375 683/545/383 687/547/378 +f 987/551/376 978/548/377 688/549/375 +f 686/542/381 687/547/378 685/543/380 +f 689/553/386 691/550/384 686/542/381 +f 990/556/388 987/551/376 690/552/385 +f 690/552/385 688/549/375 691/550/384 +f 991/555/405 689/553/386 983/554/387 +f 682/539/374 689/553/386 977/540/389 +f 681/538/371 680/537/372 691/550/384 +f 680/537/372 973/541/373 690/552/385 +f 681/538/371 691/550/384 682/539/374 +f 685/543/380 684/546/379 694/558/393 +f 982/544/382 685/543/380 997/559/394 +f 683/545/383 692/560/390 684/546/379 +f 978/548/377 993/561/391 683/545/383 +f 997/559/394 694/558/393 1002/563/397 +f 692/560/390 999/564/398 693/557/392 +f 993/561/391 998/566/395 692/560/390 +f 694/558/393 693/557/392 1001/562/396 +f 949/569/401 950/567/331 697/535/344 +f 951/570/399 696/568/353 950/567/331 +f 948/723/446 949/569/401 1005/522/402 +f 952/724/448 1006/512/354 951/570/399 +f 677/520/345 673/529/363 700/523/347 +f 676/513/368 699/516/356 673/529/363 +f 969/521/346 677/520/345 1011/571/406 +f 676/513/368 958/443/355 699/516/356 +f 678/524/348 672/531/365 703/573/351 +f 672/531/365 675/515/369 701/536/366 +f 678/524/348 703/573/351 968/525/349 +f 959/514/358 1013/517/360 675/515/369 +f 960/518/361 1018/574/340 674/519/370 +f 679/526/352 704/505/342 967/527/404 +f 674/519/370 706/511/335 671/534/367 +f 671/534/367 705/507/338 679/526/352 +f 856/579/411 791/575/407 855/577/409 +f 857/583/412 790/578/410 856/579/411 +f 855/577/409 792/576/408 858/581/340 +f 854/647/403 789/582/343 857/583/412 +f 840/641/444 842/584/402 802/586/413 +f 844/645/406 795/587/349 846/589/415 +f 851/606/425 849/590/350 800/592/416 +f 843/608/427 806/593/417 841/595/354 +f 847/644/357 848/596/418 804/598/358 +f 853/646/445 808/599/420 852/601/360 +f 840/641/444 802/586/413 839/603/422 +f 846/589/415 801/588/414 845/605/424 +f 850/609/428 851/606/425 797/607/426 +f 839/603/422 799/602/421 843/608/427 +f 845/605/424 798/604/423 848/596/418 +f 853/646/445 850/609/428 808/599/420 +f 791/575/407 790/578/410 811/611/430 +f 791/575/407 811/611/430 792/576/408 +f 792/576/408 812/612/431 793/580/341 +f 790/578/410 789/582/343 810/610/429 +f 819/627/376 820/615/432 818/617/377 +f 822/622/437 815/618/434 821/620/436 +f 823/624/387 814/621/382 822/622/437 +f 820/615/432 821/620/436 817/616/433 +f 824/626/440 828/623/438 820/615/432 +f 826/629/405 823/624/387 825/625/439 +f 825/625/439 822/622/437 828/623/438 +f 827/628/388 824/626/440 819/627/376 +f 812/612/431 824/626/440 813/613/373 +f 811/611/430 810/610/429 828/623/438 +f 810/610/429 809/614/389 825/625/439 +f 811/611/430 828/623/438 812/612/431 +f 817/616/433 816/619/435 832/631/442 +f 818/617/377 817/616/433 833/632/391 +f 815/618/434 830/633/443 816/619/435 +f 814/621/382 829/634/394 815/618/434 +f 833/632/391 832/631/442 838/636/395 +f 830/633/443 835/637/396 831/630/441 +f 829/634/394 834/639/397 830/633/443 +f 832/631/442 831/630/441 837/635/398 +f 785/642/399 786/640/331 843/608/427 +f 787/643/401 840/641/444 786/640/331 +f 784/725/400 785/642/399 841/595/354 +f 788/726/447 842/584/402 787/643/401 +f 806/593/417 799/602/421 848/596/418 +f 802/586/413 846/589/415 799/602/421 +f 805/594/355 806/593/417 847/644/357 +f 802/586/413 794/585/346 846/589/415 +f 807/597/419 798/604/423 853/646/445 +f 798/604/423 801/588/414 850/609/428 +f 807/597/419 853/646/445 804/598/358 +f 795/587/349 849/590/350 801/588/414 +f 796/591/404 854/647/403 800/592/416 +f 808/599/420 855/577/409 803/600/361 +f 800/592/416 857/583/412 797/607/426 +f 797/607/426 856/579/411 808/599/420 +f 1020/651/411 1019/648/412 955/650/407 +f 1021/655/409 1020/651/411 954/652/408 +f 1019/648/412 1022/653/403 956/649/410 +f 1018/718/340 1021/655/409 953/656/341 +f 1006/717/354 1004/657/427 958/659/355 +f 1008/727/357 1010/660/418 959/662/358 +f 960/728/361 1013/663/360 964/665/420 +f 970/681/413 1007/666/444 969/668/346 +f 971/682/414 1012/669/415 968/671/349 +f 972/683/416 1017/672/425 967/674/404 +f 1004/657/427 1003/675/422 966/658/417 +f 965/661/419 1010/660/418 962/678/423 +f 964/665/420 1015/664/445 961/680/426 +f 1003/675/422 1007/666/444 963/676/421 +f 962/678/423 1009/677/424 971/682/414 +f 1014/679/428 1017/672/425 961/680/426 +f 974/687/431 954/652/408 975/684/430 +f 955/650/407 956/649/410 975/684/430 +f 956/649/410 957/654/343 976/685/429 +f 973/702/373 953/656/341 974/687/431 +f 981/696/434 984/688/437 982/690/382 +f 986/694/432 985/691/436 979/693/433 +f 987/700/376 986/694/432 978/695/377 +f 980/692/435 985/691/436 981/696/434 +f 985/691/436 992/697/438 984/688/437 +f 990/729/388 989/699/440 987/700/376 +f 989/699/440 992/697/438 986/694/432 +f 984/688/437 988/698/439 983/689/387 +f 976/685/429 977/686/389 988/698/439 +f 989/699/440 974/687/431 992/697/438 +f 990/729/388 973/702/373 989/699/440 +f 975/684/430 976/685/429 992/697/438 +f 995/705/441 980/692/435 996/703/443 +f 996/703/443 981/696/434 997/704/394 +f 979/693/433 980/692/435 994/706/442 +f 978/695/377 979/693/433 993/707/391 +f 1001/712/396 996/703/443 1002/708/397 +f 994/706/442 995/705/441 999/710/398 +f 993/707/391 994/706/442 998/711/395 +f 1000/709/97 995/705/441 1001/712/396 +f 1003/675/422 950/713/331 1007/666/444 +f 951/716/399 950/713/331 1004/657/427 +f 1007/666/444 949/714/401 1005/667/402 +f 952/730/448 951/716/399 1006/717/354 +f 963/676/421 970/681/413 1009/677/424 +f 966/658/417 963/676/421 1010/660/418 +f 1012/669/415 970/681/413 1011/670/406 +f 1008/727/357 958/659/355 1010/660/418 +f 962/678/423 971/682/414 1014/679/428 +f 1015/664/445 965/661/419 1014/679/428 +f 971/682/414 968/671/349 1017/672/425 +f 1013/663/360 959/662/358 1015/664/445 +f 960/728/361 964/665/420 1018/718/340 +f 972/683/416 967/674/404 1019/648/412 +f 964/665/420 961/680/426 1021/655/409 +f 961/680/426 972/683/416 1020/651/411 +usemtl None +f 82/731/449 42/732/450 43/733/451 +f 83/734/452 45/735/453 81/736/454 +f 85/737/455 84/738/456 59/739/457 +f 81/736/454 45/735/453 86/740/458 +f 369/741/459 52/742/460 71/743/461 +f 58/744/462 59/739/457 43/745/451 +f 370/746/463 53/747/464 212/748/465 +f 374/749/466 365/750/467 48/751/468 +f 55/752/469 56/753/470 41/754/471 +f 363/755/472 46/756/473 48/751/468 +f 364/757/474 47/758/475 95/759/476 +f 84/738/456 44/760/477 60/761/478 +f 368/762/479 51/763/480 52/742/460 +f 214/764/481 63/765/482 65/766/483 +f 61/767/484 44/760/477 84/738/456 +f 371/768/485 54/769/486 78/770/487 +f 45/771/453 83/772/452 60/761/478 +f 42/773/450 211/774/488 213/775/489 +f 372/776/490 367/777/491 50/778/492 +f 366/779/493 49/780/494 51/763/480 +f 85/737/455 58/744/462 65/781/483 +f 66/782/495 64/783/496 57/784/497 +f 62/785/498 54/769/486 64/786/496 +f 88/787/499 65/766/483 63/765/482 +f 215/788/500 65/781/483 58/744/462 +f 96/789/501 67/790/502 216/791/503 +f 219/792/504 216/791/503 67/790/502 +f 217/793/505 68/794/506 70/795/507 +f 97/796/508 50/778/492 72/797/509 +f 372/776/490 69/798/510 47/758/475 +f 97/796/508 52/742/460 51/763/480 +f 95/759/476 47/758/475 69/798/510 +f 90/799/511 68/794/506 76/800/512 +f 218/801/513 70/795/507 79/802/514 +f 91/803/515 70/795/507 68/794/506 +f 46/756/473 74/804/516 73/805/517 +f 75/806/518 48/751/468 73/805/517 +f 99/807/519 72/797/509 89/808/520 +f 373/809/521 71/743/461 92/810/522 +f 54/769/486 62/785/498 80/811/523 +f 91/803/515 74/804/516 80/811/523 +f 50/778/492 75/806/518 77/812/524 +f 89/808/520 93/813/525 76/800/512 +f 219/792/504 76/800/512 68/794/506 +f 367/777/491 374/749/466 75/806/518 +f 94/814/526 80/811/523 62/785/498 +f 78/770/487 80/811/523 74/804/516 +f 220/815/527 79/802/514 63/765/482 +f 375/816/528 78/770/487 46/756/473 +f 79/802/514 94/814/526 87/817/529 +f 72/797/509 77/812/524 93/813/525 +f 70/795/507 91/803/515 94/814/526 +f 376/818/530 92/810/522 53/747/464 +f 100/819/531 89/808/520 67/790/502 +f 74/804/516 91/803/515 90/799/511 +f 77/812/524 73/805/517 90/799/511 +f 66/820/495 88/787/499 87/817/529 +f 56/753/470 85/737/455 88/821/499 +f 59/739/457 60/761/478 83/772/452 +f 86/822/458 61/767/484 55/752/469 +f 56/753/470 55/752/469 84/738/456 +f 45/771/453 44/760/477 61/767/484 +f 41/823/471 82/731/449 81/736/454 +f 92/810/522 100/819/531 96/789/501 +f 71/743/461 99/807/519 100/819/531 +f 49/780/494 95/759/476 98/824/532 +f 50/778/492 97/796/508 98/824/532 +f 52/742/460 97/796/508 99/807/519 +f 53/747/464 96/789/501 221/825/533 +f 366/779/493 377/826/534 95/759/476 +f 378/827/535 64/786/496 54/769/486 +f 379/828/459 57/784/497 64/783/496 +f 101/829/536 41/754/471 56/753/470 +f 57/784/497 103/830/537 102/831/538 +f 41/823/471 101/832/536 380/833/539 +f 101/832/536 102/834/538 381/835/540 +f 379/828/459 382/836/541 103/830/537 +f 103/830/537 105/837/542 104/838/543 +f 382/836/541 384/839/544 105/837/542 +f 104/840/543 383/841/545 381/835/540 +f 383/842/545 104/838/543 105/837/542 +f 211/843/488 42/732/450 385/844/546 +f 82/731/449 380/833/539 385/844/546 +f 187/845/547 186/846/548 148/847/549 +f 186/846/548 150/848/550 188/849/551 +f 190/850/552 163/851/553 164/852/554 +f 186/846/548 145/853/555 191/854/556 +f 176/855/557 157/856/558 544/857/559 +f 148/858/549 164/852/554 163/851/553 +f 212/748/465 158/859/560 545/860/561 +f 549/861/562 180/862/563 153/863/564 +f 146/864/565 161/865/566 160/866/567 +f 153/863/564 151/867/568 538/868/569 +f 200/869/570 152/870/571 539/871/572 +f 189/872/573 164/852/554 165/873/574 +f 157/856/558 156/874/575 543/875/576 +f 170/876/577 168/877/578 214/764/481 +f 189/872/573 149/878/579 166/879/580 +f 183/880/581 159/881/582 546/882/583 +f 165/873/574 188/883/551 150/884/550 +f 147/885/584 163/851/553 213/775/489 +f 547/886/585 174/887/586 155/888/587 +f 156/874/575 154/889/588 541/890/589 +f 170/891/577 163/851/553 190/850/552 +f 171/892/590 161/865/566 162/893/591 +f 167/894/592 171/895/590 169/896/593 +f 168/877/578 170/876/577 193/897/594 +f 163/851/553 170/891/577 215/788/500 +f 216/791/503 172/898/595 201/899/596 +f 219/792/504 181/900/597 172/898/595 +f 175/901/598 173/902/599 217/793/505 +f 177/903/600 155/888/587 202/904/601 +f 152/870/571 174/887/586 547/886/585 +f 156/874/575 157/856/558 202/904/601 +f 200/869/570 203/905/602 174/887/586 +f 181/900/597 173/902/599 195/906/603 +f 184/907/604 175/901/598 218/801/513 +f 173/902/599 175/901/598 196/908/605 +f 178/909/606 179/910/607 151/867/568 +f 180/862/563 182/911/608 178/909/606 +f 194/912/609 177/903/600 204/913/610 +f 197/914/611 176/855/557 548/915/612 +f 185/916/613 167/894/592 159/881/582 +f 185/916/613 179/910/607 196/908/605 +f 155/888/587 177/903/600 182/911/608 +f 194/912/609 172/898/595 181/900/597 +f 173/902/599 181/900/597 219/792/504 +f 542/917/614 155/888/587 180/862/563 +f 167/894/592 185/916/613 199/918/615 +f 179/910/607 185/916/613 183/880/581 +f 168/877/578 184/907/604 220/815/527 +f 151/867/568 183/880/581 550/919/616 +f 192/920/617 199/918/615 184/907/604 +f 177/903/600 194/912/609 198/921/618 +f 199/918/615 196/908/605 175/901/598 +f 158/859/560 197/914/611 551/922/619 +f 172/898/595 194/912/609 205/923/620 +f 195/906/603 196/908/605 179/910/607 +f 182/911/608 198/921/618 195/906/603 +f 192/920/617 193/897/594 171/895/590 +f 193/924/594 190/850/552 161/865/566 +f 164/852/554 148/858/549 188/883/551 +f 160/866/567 166/879/580 191/925/556 +f 161/865/566 190/850/552 189/872/573 +f 150/884/550 191/925/556 166/879/580 +f 146/926/565 145/853/555 186/846/548 +f 201/899/596 205/923/620 197/914/611 +f 205/923/620 204/913/610 176/855/557 +f 154/889/588 156/874/575 203/905/602 +f 203/905/602 202/904/601 155/888/587 +f 204/913/610 202/904/601 157/856/558 +f 221/825/533 201/899/596 158/859/560 +f 541/890/589 154/889/588 200/869/570 +f 159/881/582 169/896/593 553/927/621 +f 554/928/559 553/929/621 169/930/593 +f 161/865/566 146/864/565 206/931/622 +f 162/893/591 206/931/622 207/932/623 +f 555/933/624 206/934/622 146/926/565 +f 206/934/622 555/933/624 556/935/625 +f 554/928/559 162/893/591 208/936/626 +f 208/936/626 207/932/623 209/937/627 +f 557/938/628 208/936/626 210/939/629 +f 556/935/625 558/940/630 209/941/627 +f 558/942/630 559/943/631 210/939/629 +f 211/843/488 562/944/331 560/945/632 +f 560/945/632 555/933/624 187/845/547 +f 339/946/633 338/947/634 300/948/635 +f 338/947/634 302/949/636 340/950/637 +f 342/951/638 315/952/639 316/953/640 +f 338/947/634 297/954/641 343/955/642 +f 328/956/643 309/957/644 369/958/459 +f 300/959/635 316/953/640 315/952/639 +f 528/960/645 310/961/646 370/962/463 +f 374/963/466 332/964/647 305/965/648 +f 298/966/649 313/967/650 312/968/651 +f 305/965/648 303/969/652 363/970/472 +f 352/971/653 304/972/654 364/973/474 +f 341/974/655 316/953/640 317/975/656 +f 309/957/644 308/976/657 368/977/479 +f 322/978/658 320/979/659 530/980/660 +f 341/974/655 301/981/661 318/982/662 +f 335/983/663 311/984/664 371/985/485 +f 317/975/656 340/986/637 302/987/636 +f 299/988/665 315/952/639 529/989/666 +f 372/990/490 326/991/667 307/992/668 +f 308/976/657 306/993/669 366/994/493 +f 322/995/658 315/952/639 342/951/638 +f 323/996/670 313/967/650 314/997/671 +f 319/998/672 323/999/670 321/1000/673 +f 320/979/659 322/978/658 345/1001/674 +f 315/952/639 322/995/658 531/1002/675 +f 532/1003/676 324/1004/677 353/1005/678 +f 535/1006/679 333/1007/680 324/1004/677 +f 327/1008/681 325/1009/682 533/1010/683 +f 329/1011/684 307/992/668 354/1012/685 +f 304/972/654 326/991/667 372/990/490 +f 308/976/657 309/957/644 354/1012/685 +f 352/971/653 355/1013/686 326/991/667 +f 333/1007/680 325/1009/682 347/1014/687 +f 336/1015/688 327/1008/681 534/1016/689 +f 325/1009/682 327/1008/681 348/1017/690 +f 330/1018/691 331/1019/692 303/969/652 +f 332/964/647 334/1020/693 330/1018/691 +f 346/1021/694 329/1011/684 356/1022/695 +f 349/1023/696 328/956/643 373/1024/521 +f 337/1025/697 319/998/672 311/984/664 +f 337/1025/697 331/1019/692 348/1017/690 +f 307/992/668 329/1011/684 334/1020/693 +f 346/1021/694 324/1004/677 333/1007/680 +f 325/1009/682 333/1007/680 535/1006/679 +f 367/1026/491 307/992/668 332/964/647 +f 319/998/672 337/1025/697 351/1027/698 +f 331/1019/692 337/1025/697 335/983/663 +f 320/979/659 336/1015/688 536/1028/699 +f 303/969/652 335/983/663 375/1029/528 +f 344/1030/700 351/1027/698 336/1015/688 +f 329/1011/684 346/1021/694 350/1031/701 +f 351/1027/698 348/1017/690 327/1008/681 +f 310/961/646 349/1023/696 376/1032/530 +f 324/1004/677 346/1021/694 357/1033/702 +f 347/1014/687 348/1017/690 331/1019/692 +f 334/1020/693 350/1031/701 347/1014/687 +f 344/1030/700 345/1001/674 323/999/670 +f 345/1034/674 342/951/638 313/967/650 +f 316/953/640 300/959/635 340/986/637 +f 312/968/651 318/982/662 343/1035/642 +f 313/967/650 342/951/638 341/974/655 +f 302/987/636 343/1035/642 318/982/662 +f 298/1036/649 297/954/641 338/947/634 +f 353/1005/678 357/1033/702 349/1023/696 +f 357/1033/702 356/1022/695 328/956/643 +f 306/993/669 308/976/657 355/1013/686 +f 355/1013/686 354/1012/685 307/992/668 +f 356/1022/695 354/1012/685 309/957/644 +f 537/1037/703 353/1005/678 310/961/646 +f 366/994/493 306/993/669 352/971/653 +f 311/984/664 321/1000/673 378/1038/535 +f 379/828/459 378/1039/535 321/1040/673 +f 313/967/650 298/966/649 358/1041/704 +f 314/997/671 358/1041/704 359/1042/705 +f 380/833/539 358/1043/704 298/1036/649 +f 358/1043/704 380/833/539 381/835/540 +f 379/828/459 314/997/671 360/1044/706 +f 360/1044/706 359/1042/705 361/1045/707 +f 382/836/541 360/1044/706 362/1046/708 +f 381/835/540 383/841/545 361/1047/707 +f 383/842/545 384/839/544 362/1046/708 +f 527/1048/709 562/944/331 385/844/546 +f 385/844/546 380/833/539 339/946/633 +f 503/1049/710 463/1050/711 464/1051/712 +f 504/1052/713 466/1053/714 502/1054/715 +f 506/1055/716 505/1056/717 480/1057/718 +f 502/1054/715 466/1053/714 507/1058/719 +f 544/1059/559 473/1060/720 492/1061/721 +f 479/1062/722 480/1057/718 464/1063/712 +f 545/1064/561 474/1065/723 528/960/645 +f 549/1066/562 540/1067/724 469/1068/725 +f 476/1069/726 477/1070/727 462/1071/728 +f 538/1072/569 467/1073/729 469/1068/725 +f 539/1074/572 468/1075/730 516/1076/731 +f 505/1056/717 465/1077/732 481/1078/733 +f 543/1079/576 472/1080/734 473/1060/720 +f 530/980/660 484/1081/735 486/1082/736 +f 482/1083/737 465/1077/732 505/1056/717 +f 546/1084/583 475/1085/738 499/1086/739 +f 466/1087/714 504/1088/713 481/1078/733 +f 463/1089/711 527/1090/709 529/989/666 +f 547/1091/585 542/1092/614 471/1093/740 +f 541/1094/589 470/1095/741 472/1080/734 +f 506/1055/716 479/1062/722 486/1096/736 +f 487/1097/742 485/1098/743 478/1099/744 +f 483/1100/745 475/1085/738 485/1101/743 +f 509/1102/746 486/1082/736 484/1081/735 +f 531/1002/675 486/1096/736 479/1062/722 +f 517/1103/747 488/1104/748 532/1003/676 +f 535/1006/679 532/1003/676 488/1104/748 +f 533/1010/683 489/1105/749 491/1106/750 +f 518/1107/751 471/1093/740 493/1108/752 +f 547/1091/585 490/1109/753 468/1075/730 +f 518/1107/751 473/1060/720 472/1080/734 +f 516/1076/731 468/1075/730 490/1109/753 +f 511/1110/754 489/1105/749 497/1111/755 +f 534/1016/689 491/1106/750 500/1112/756 +f 512/1113/757 491/1106/750 489/1105/749 +f 467/1073/729 495/1114/758 494/1115/759 +f 496/1116/760 469/1068/725 494/1115/759 +f 520/1117/761 493/1108/752 510/1118/762 +f 548/1119/612 492/1061/721 513/1120/763 +f 475/1085/738 483/1100/745 501/1121/764 +f 512/1113/757 495/1114/758 501/1121/764 +f 471/1093/740 496/1116/760 498/1122/765 +f 510/1118/762 514/1123/766 497/1111/755 +f 535/1006/679 497/1111/755 489/1105/749 +f 542/1092/614 549/1066/562 496/1116/760 +f 515/1124/767 501/1121/764 483/1100/745 +f 499/1086/739 501/1121/764 495/1114/758 +f 536/1028/699 500/1112/756 484/1081/735 +f 550/1125/616 499/1086/739 467/1073/729 +f 500/1112/756 515/1124/767 508/1126/768 +f 493/1108/752 498/1122/765 514/1123/766 +f 491/1106/750 512/1113/757 515/1124/767 +f 551/1127/619 513/1120/763 474/1065/723 +f 521/1128/769 510/1118/762 488/1104/748 +f 495/1114/758 512/1113/757 511/1110/754 +f 498/1122/765 494/1115/759 511/1110/754 +f 487/1129/742 509/1102/746 508/1126/768 +f 477/1070/727 506/1055/716 509/1130/746 +f 480/1057/718 481/1078/733 504/1088/713 +f 507/1131/719 482/1083/737 476/1069/726 +f 477/1070/727 476/1069/726 505/1056/717 +f 466/1087/714 465/1077/732 482/1083/737 +f 462/1132/728 503/1049/710 502/1054/715 +f 513/1120/763 521/1128/769 517/1103/747 +f 492/1061/721 520/1117/761 521/1128/769 +f 470/1095/741 516/1076/731 519/1133/770 +f 471/1093/740 518/1107/751 519/1133/770 +f 473/1060/720 518/1107/751 520/1117/761 +f 474/1065/723 517/1103/747 537/1037/703 +f 541/1094/589 552/1134/771 516/1076/731 +f 553/1135/621 485/1101/743 475/1085/738 +f 554/928/559 478/1099/744 485/1098/743 +f 522/1136/772 462/1071/728 477/1070/727 +f 478/1099/744 524/1137/773 523/1138/774 +f 462/1132/728 522/1139/772 555/933/624 +f 522/1139/772 523/1140/774 556/935/625 +f 554/928/559 557/938/628 524/1137/773 +f 524/1137/773 526/1141/775 525/1142/776 +f 557/938/628 559/943/631 526/1141/775 +f 525/1143/776 558/940/630 556/935/625 +f 558/942/630 525/1142/776 526/1141/775 +f 527/1048/709 463/1050/711 560/945/632 +f 503/1049/710 555/933/624 560/945/632 +f 81/736/454 82/731/449 43/733/451 +f 43/733/451 83/734/452 81/736/454 +f 58/744/462 85/737/455 59/739/457 +f 40/1144/777 81/736/454 86/740/458 +f 373/809/521 369/741/459 71/743/461 +f 42/773/450 58/744/462 43/745/451 +f 561/1145/97 370/746/463 212/748/465 +f 75/806/518 374/749/466 48/751/468 +f 40/1146/777 55/752/469 41/754/471 +f 365/750/467 363/755/472 48/751/468 +f 377/826/534 364/757/474 95/759/476 +f 59/739/457 84/738/456 60/761/478 +f 369/741/459 368/762/479 52/742/460 +f 215/1147/500 214/764/481 65/766/483 +f 55/752/469 61/767/484 84/738/456 +f 375/816/528 371/768/485 78/770/487 +f 44/760/477 45/771/453 60/761/478 +f 58/744/462 42/773/450 213/775/489 +f 69/798/510 372/776/490 50/778/492 +f 368/762/479 366/779/493 51/763/480 +f 88/821/499 85/737/455 65/781/483 +f 56/753/470 66/782/495 57/784/497 +f 66/820/495 62/785/498 64/786/496 +f 87/817/529 88/787/499 63/765/482 +f 213/775/489 215/788/500 58/744/462 +f 221/825/533 96/789/501 216/791/503 +f 76/800/512 219/792/504 67/790/502 +f 218/801/513 217/793/505 70/795/507 +f 99/807/519 97/796/508 72/797/509 +f 364/757/474 372/776/490 47/758/475 +f 98/824/532 97/796/508 51/763/480 +f 98/824/532 95/759/476 69/798/510 +f 93/813/525 90/799/511 76/800/512 +f 220/815/527 218/801/513 79/802/514 +f 90/799/511 91/803/515 68/794/506 +f 48/751/468 46/756/473 73/805/517 +f 77/812/524 75/806/518 73/805/517 +f 100/819/531 99/807/519 89/808/520 +f 376/818/530 373/809/521 92/810/522 +f 78/770/487 54/769/486 80/811/523 +f 94/814/526 91/803/515 80/811/523 +f 72/797/509 50/778/492 77/812/524 +f 67/790/502 89/808/520 76/800/512 +f 217/793/505 219/792/504 68/794/506 +f 50/778/492 367/777/491 75/806/518 +f 87/817/529 94/814/526 62/785/498 +f 46/756/473 78/770/487 74/804/516 +f 214/764/481 220/815/527 63/765/482 +f 363/755/472 375/816/528 46/756/473 +f 63/765/482 79/802/514 87/817/529 +f 89/808/520 72/797/509 93/813/525 +f 79/802/514 70/795/507 94/814/526 +f 370/746/463 376/818/530 53/747/464 +f 96/789/501 100/819/531 67/790/502 +f 73/805/517 74/804/516 90/799/511 +f 93/813/525 77/812/524 90/799/511 +f 62/785/498 66/820/495 87/817/529 +f 66/782/495 56/753/470 88/821/499 +f 43/745/451 59/739/457 83/772/452 +f 40/1146/777 86/822/458 55/752/469 +f 85/737/455 56/753/470 84/738/456 +f 86/822/458 45/771/453 61/767/484 +f 40/1144/777 41/823/471 81/736/454 +f 53/747/464 92/810/522 96/789/501 +f 92/810/522 71/743/461 100/819/531 +f 51/763/480 49/780/494 98/824/532 +f 69/798/510 50/778/492 98/824/532 +f 71/743/461 52/742/460 99/807/519 +f 212/748/465 53/747/464 221/825/533 +f 49/780/494 366/779/493 95/759/476 +f 371/768/485 378/827/535 54/769/486 +f 378/1039/535 379/828/459 64/783/496 +f 57/784/497 101/829/536 56/753/470 +f 101/829/536 57/784/497 102/831/538 +f 82/731/449 41/823/471 380/833/539 +f 380/833/539 101/832/536 381/835/540 +f 57/784/497 379/828/459 103/830/537 +f 102/831/538 103/830/537 104/838/543 +f 103/830/537 382/836/541 105/837/542 +f 102/834/538 104/840/543 381/835/540 +f 384/839/544 383/842/545 105/837/542 +f 562/944/331 211/843/488 385/844/546 +f 42/732/450 82/731/449 385/844/546 +f 147/1148/584 187/845/547 148/847/549 +f 148/847/549 186/846/548 188/849/551 +f 189/872/573 190/850/552 164/852/554 +f 150/848/550 186/846/548 191/854/556 +f 548/915/612 176/855/557 544/857/559 +f 147/885/584 148/858/549 163/851/553 +f 561/1145/97 212/748/465 545/860/561 +f 540/1149/724 549/861/562 153/863/564 +f 145/1150/555 146/864/565 160/866/567 +f 540/1149/724 153/863/564 538/868/569 +f 552/1151/771 200/869/570 539/871/572 +f 149/878/579 189/872/573 165/873/574 +f 544/857/559 157/856/558 543/875/576 +f 215/1147/500 170/876/577 214/764/481 +f 160/866/567 189/872/573 166/879/580 +f 550/919/616 183/880/581 546/882/583 +f 149/878/579 165/873/574 150/884/550 +f 211/774/488 147/885/584 213/775/489 +f 542/917/614 547/886/585 155/888/587 +f 543/875/576 156/874/575 541/890/589 +f 193/924/594 170/891/577 190/850/552 +f 169/930/593 171/892/590 162/893/591 +f 159/881/582 167/894/592 169/896/593 +f 192/920/617 168/877/578 193/897/594 +f 213/775/489 163/851/553 215/788/500 +f 221/825/533 216/791/503 201/899/596 +f 216/791/503 219/792/504 172/898/595 +f 218/801/513 175/901/598 217/793/505 +f 204/913/610 177/903/600 202/904/601 +f 539/871/572 152/870/571 547/886/585 +f 203/905/602 156/874/575 202/904/601 +f 152/870/571 200/869/570 174/887/586 +f 198/921/618 181/900/597 195/906/603 +f 220/815/527 184/907/604 218/801/513 +f 195/906/603 173/902/599 196/908/605 +f 153/863/564 178/909/606 151/867/568 +f 153/863/564 180/862/563 178/909/606 +f 205/923/620 194/912/609 204/913/610 +f 551/922/619 197/914/611 548/915/612 +f 183/880/581 185/916/613 159/881/582 +f 199/918/615 185/916/613 196/908/605 +f 180/862/563 155/888/587 182/911/608 +f 198/921/618 194/912/609 181/900/597 +f 217/793/505 173/902/599 219/792/504 +f 549/861/562 542/917/614 180/862/563 +f 192/920/617 167/894/592 199/918/615 +f 151/867/568 179/910/607 183/880/581 +f 214/764/481 168/877/578 220/815/527 +f 538/868/569 151/867/568 550/919/616 +f 168/877/578 192/920/617 184/907/604 +f 182/911/608 177/903/600 198/921/618 +f 184/907/604 199/918/615 175/901/598 +f 545/860/561 158/859/560 551/922/619 +f 201/899/596 172/898/595 205/923/620 +f 178/909/606 195/906/603 179/910/607 +f 178/909/606 182/911/608 195/906/603 +f 167/894/592 192/920/617 171/895/590 +f 171/892/590 193/924/594 161/865/566 +f 165/873/574 164/852/554 188/883/551 +f 145/1150/555 160/866/567 191/925/556 +f 160/866/567 161/865/566 189/872/573 +f 149/878/579 150/884/550 166/879/580 +f 187/845/547 146/926/565 186/846/548 +f 158/859/560 201/899/596 197/914/611 +f 197/914/611 205/923/620 176/855/557 +f 200/869/570 154/889/588 203/905/602 +f 174/887/586 203/905/602 155/888/587 +f 176/855/557 204/913/610 157/856/558 +f 212/748/465 221/825/533 158/859/560 +f 552/1151/771 541/890/589 200/869/570 +f 546/882/583 159/881/582 553/927/621 +f 162/893/591 554/928/559 169/930/593 +f 162/893/591 161/865/566 206/931/622 +f 208/936/626 162/893/591 207/932/623 +f 187/845/547 555/933/624 146/926/565 +f 207/1152/623 206/934/622 556/935/625 +f 557/938/628 554/928/559 208/936/626 +f 210/939/629 208/936/626 209/937/627 +f 559/943/631 557/938/628 210/939/629 +f 207/1152/623 556/935/625 209/941/627 +f 209/937/627 558/942/630 210/939/629 +f 147/1148/584 211/843/488 560/945/632 +f 147/1148/584 560/945/632 187/845/547 +f 299/1153/665 339/946/633 300/948/635 +f 300/948/635 338/947/634 340/950/637 +f 341/974/655 342/951/638 316/953/640 +f 302/949/636 338/947/634 343/955/642 +f 373/1024/521 328/956/643 369/958/459 +f 299/988/665 300/959/635 315/952/639 +f 561/1154/97 528/960/645 370/962/463 +f 365/1155/467 374/963/466 305/965/648 +f 297/1156/641 298/966/649 312/968/651 +f 365/1155/467 305/965/648 363/970/472 +f 377/1157/534 352/971/653 364/973/474 +f 301/981/661 341/974/655 317/975/656 +f 369/958/459 309/957/644 368/977/479 +f 531/1158/675 322/978/658 530/980/660 +f 312/968/651 341/974/655 318/982/662 +f 375/1029/528 335/983/663 371/985/485 +f 301/981/661 317/975/656 302/987/636 +f 527/1090/709 299/988/665 529/989/666 +f 367/1026/491 372/990/490 307/992/668 +f 368/977/479 308/976/657 366/994/493 +f 345/1034/674 322/995/658 342/951/638 +f 321/1040/673 323/996/670 314/997/671 +f 311/984/664 319/998/672 321/1000/673 +f 344/1030/700 320/979/659 345/1001/674 +f 529/989/666 315/952/639 531/1002/675 +f 537/1037/703 532/1003/676 353/1005/678 +f 532/1003/676 535/1006/679 324/1004/677 +f 534/1016/689 327/1008/681 533/1010/683 +f 356/1022/695 329/1011/684 354/1012/685 +f 364/973/474 304/972/654 372/990/490 +f 355/1013/686 308/976/657 354/1012/685 +f 304/972/654 352/971/653 326/991/667 +f 350/1031/701 333/1007/680 347/1014/687 +f 536/1028/699 336/1015/688 534/1016/689 +f 347/1014/687 325/1009/682 348/1017/690 +f 305/965/648 330/1018/691 303/969/652 +f 305/965/648 332/964/647 330/1018/691 +f 357/1033/702 346/1021/694 356/1022/695 +f 376/1032/530 349/1023/696 373/1024/521 +f 335/983/663 337/1025/697 311/984/664 +f 351/1027/698 337/1025/697 348/1017/690 +f 332/964/647 307/992/668 334/1020/693 +f 350/1031/701 346/1021/694 333/1007/680 +f 533/1010/683 325/1009/682 535/1006/679 +f 374/963/466 367/1026/491 332/964/647 +f 344/1030/700 319/998/672 351/1027/698 +f 303/969/652 331/1019/692 335/983/663 +f 530/980/660 320/979/659 536/1028/699 +f 363/970/472 303/969/652 375/1029/528 +f 320/979/659 344/1030/700 336/1015/688 +f 334/1020/693 329/1011/684 350/1031/701 +f 336/1015/688 351/1027/698 327/1008/681 +f 370/962/463 310/961/646 376/1032/530 +f 353/1005/678 324/1004/677 357/1033/702 +f 330/1018/691 347/1014/687 331/1019/692 +f 330/1018/691 334/1020/693 347/1014/687 +f 319/998/672 344/1030/700 323/999/670 +f 323/996/670 345/1034/674 313/967/650 +f 317/975/656 316/953/640 340/986/637 +f 297/1156/641 312/968/651 343/1035/642 +f 312/968/651 313/967/650 341/974/655 +f 301/981/661 302/987/636 318/982/662 +f 339/946/633 298/1036/649 338/947/634 +f 310/961/646 353/1005/678 349/1023/696 +f 349/1023/696 357/1033/702 328/956/643 +f 352/971/653 306/993/669 355/1013/686 +f 326/991/667 355/1013/686 307/992/668 +f 328/956/643 356/1022/695 309/957/644 +f 528/960/645 537/1037/703 310/961/646 +f 377/1157/534 366/994/493 352/971/653 +f 371/985/485 311/984/664 378/1038/535 +f 314/997/671 379/828/459 321/1040/673 +f 314/997/671 313/967/650 358/1041/704 +f 360/1044/706 314/997/671 359/1042/705 +f 339/946/633 380/833/539 298/1036/649 +f 359/1159/705 358/1043/704 381/835/540 +f 382/836/541 379/828/459 360/1044/706 +f 362/1046/708 360/1044/706 361/1045/707 +f 384/839/544 382/836/541 362/1046/708 +f 359/1159/705 381/835/540 361/1047/707 +f 361/1045/707 383/842/545 362/1046/708 +f 299/1153/665 527/1048/709 385/844/546 +f 299/1153/665 385/844/546 339/946/633 +f 502/1054/715 503/1049/710 464/1051/712 +f 464/1051/712 504/1052/713 502/1054/715 +f 479/1062/722 506/1055/716 480/1057/718 +f 461/1160/778 502/1054/715 507/1058/719 +f 548/1119/612 544/1059/559 492/1061/721 +f 463/1089/711 479/1062/722 464/1063/712 +f 561/1154/97 545/1064/561 528/960/645 +f 496/1116/760 549/1066/562 469/1068/725 +f 461/1161/778 476/1069/726 462/1071/728 +f 540/1067/724 538/1072/569 469/1068/725 +f 552/1134/771 539/1074/572 516/1076/731 +f 480/1057/718 505/1056/717 481/1078/733 +f 544/1059/559 543/1079/576 473/1060/720 +f 531/1158/675 530/980/660 486/1082/736 +f 476/1069/726 482/1083/737 505/1056/717 +f 550/1125/616 546/1084/583 499/1086/739 +f 465/1077/732 466/1087/714 481/1078/733 +f 479/1062/722 463/1089/711 529/989/666 +f 490/1109/753 547/1091/585 471/1093/740 +f 543/1079/576 541/1094/589 472/1080/734 +f 509/1130/746 506/1055/716 486/1096/736 +f 477/1070/727 487/1097/742 478/1099/744 +f 487/1129/742 483/1100/745 485/1101/743 +f 508/1126/768 509/1102/746 484/1081/735 +f 529/989/666 531/1002/675 479/1062/722 +f 537/1037/703 517/1103/747 532/1003/676 +f 497/1111/755 535/1006/679 488/1104/748 +f 534/1016/689 533/1010/683 491/1106/750 +f 520/1117/761 518/1107/751 493/1108/752 +f 539/1074/572 547/1091/585 468/1075/730 +f 519/1133/770 518/1107/751 472/1080/734 +f 519/1133/770 516/1076/731 490/1109/753 +f 514/1123/766 511/1110/754 497/1111/755 +f 536/1028/699 534/1016/689 500/1112/756 +f 511/1110/754 512/1113/757 489/1105/749 +f 469/1068/725 467/1073/729 494/1115/759 +f 498/1122/765 496/1116/760 494/1115/759 +f 521/1128/769 520/1117/761 510/1118/762 +f 551/1127/619 548/1119/612 513/1120/763 +f 499/1086/739 475/1085/738 501/1121/764 +f 515/1124/767 512/1113/757 501/1121/764 +f 493/1108/752 471/1093/740 498/1122/765 +f 488/1104/748 510/1118/762 497/1111/755 +f 533/1010/683 535/1006/679 489/1105/749 +f 471/1093/740 542/1092/614 496/1116/760 +f 508/1126/768 515/1124/767 483/1100/745 +f 467/1073/729 499/1086/739 495/1114/758 +f 530/980/660 536/1028/699 484/1081/735 +f 538/1072/569 550/1125/616 467/1073/729 +f 484/1081/735 500/1112/756 508/1126/768 +f 510/1118/762 493/1108/752 514/1123/766 +f 500/1112/756 491/1106/750 515/1124/767 +f 545/1064/561 551/1127/619 474/1065/723 +f 517/1103/747 521/1128/769 488/1104/748 +f 494/1115/759 495/1114/758 511/1110/754 +f 514/1123/766 498/1122/765 511/1110/754 +f 483/1100/745 487/1129/742 508/1126/768 +f 487/1097/742 477/1070/727 509/1130/746 +f 464/1063/712 480/1057/718 504/1088/713 +f 461/1161/778 507/1131/719 476/1069/726 +f 506/1055/716 477/1070/727 505/1056/717 +f 507/1131/719 466/1087/714 482/1083/737 +f 461/1160/778 462/1132/728 502/1054/715 +f 474/1065/723 513/1120/763 517/1103/747 +f 513/1120/763 492/1061/721 521/1128/769 +f 472/1080/734 470/1095/741 519/1133/770 +f 490/1109/753 471/1093/740 519/1133/770 +f 492/1061/721 473/1060/720 520/1117/761 +f 528/960/645 474/1065/723 537/1037/703 +f 470/1095/741 541/1094/589 516/1076/731 +f 546/1084/583 553/1135/621 475/1085/738 +f 553/929/621 554/928/559 485/1098/743 +f 478/1099/744 522/1136/772 477/1070/727 +f 522/1136/772 478/1099/744 523/1138/774 +f 503/1049/710 462/1132/728 555/933/624 +f 555/933/624 522/1139/772 556/935/625 +f 478/1099/744 554/928/559 524/1137/773 +f 523/1138/774 524/1137/773 525/1142/776 +f 524/1137/773 557/938/628 526/1141/775 +f 523/1140/774 525/1143/776 556/935/625 +f 559/943/631 558/942/630 526/1141/775 +f 562/944/331 527/1048/709 560/945/632 +f 463/1050/711 503/1049/710 560/945/632 +f 38/1162/779 2/1163/780 3/1164/781 +f 1/1165/782 2/1163/780 38/1162/779 +f 37/1166/783 3/1164/781 231/1167/784 +f 227/1168/785 1/1165/782 39/1169/786 +f 280/1170/787 232/1171/788 9/1172/789 +f 282/1173/790 233/1174/791 8/1175/792 +f 287/1176/793 234/1177/794 7/1178/795 +f 10/1179/796 243/1180/797 279/1181/798 +f 11/1182/799 242/1183/800 285/1184/801 +f 12/1185/802 241/1186/803 290/1187/804 +f 29/1188/805 9/1172/789 6/1189/806 +f 32/1190/807 8/1175/792 5/1191/808 +f 35/1192/809 7/1178/795 4/1193/810 +f 6/1189/806 10/1179/796 30/1194/811 +f 5/1191/808 11/1182/799 33/1195/812 +f 4/1193/810 12/1185/802 36/1196/813 +f 1/1165/782 13/1197/814 14/1198/815 +f 14/1198/815 15/1199/816 3/1164/781 +f 15/1199/816 251/1200/817 231/1167/784 +f 227/1168/785 247/1201/818 13/1197/814 +f 19/1202/819 18/1203/820 256/1204/821 +f 16/1205/822 17/1206/823 20/1207/824 +f 252/1208/825 16/1205/822 21/1209/826 +f 20/1207/824 17/1206/823 18/1203/820 +f 24/1210/827 20/1207/824 19/1202/819 +f 261/1211/828 21/1209/826 23/1212/829 +f 21/1209/826 20/1207/824 24/1210/827 +f 22/1213/830 19/1202/819 257/1214/831 +f 22/1213/830 265/1215/832 251/1200/817 +f 13/1197/814 23/1212/829 24/1210/827 +f 247/1201/818 264/1216/833 23/1212/829 +f 24/1210/827 22/1213/830 15/1199/816 +f 17/1206/823 26/1217/834 27/1218/835 +f 18/1203/820 27/1218/835 271/1219/836 +f 25/1220/837 26/1217/834 17/1206/823 +f 267/1221/838 25/1220/837 16/1205/822 +f 27/1218/835 275/1222/839 276/1223/840 +f 273/1224/841 274/1225/331 26/1217/834 +f 272/1226/842 273/1224/841 25/1220/837 +f 26/1217/834 274/1225/331 275/1222/839 +f 224/1227/97 28/1228/843 30/1194/811 +f 29/1188/805 28/1228/843 224/1227/97 +f 30/1194/811 279/1181/798 222/1229/844 +f 226/1230/845 280/1170/787 29/1188/805 +f 31/1231/846 33/1195/812 10/1179/796 +f 9/1172/789 32/1190/807 31/1231/846 +f 33/1195/812 285/1184/801 243/1180/797 +f 232/1171/788 282/1173/790 32/1190/807 +f 34/1232/847 36/1196/813 11/1182/799 +f 8/1175/792 35/1192/809 34/1232/847 +f 11/1182/799 36/1196/813 290/1187/804 +f 287/1176/793 35/1192/809 8/1175/792 +f 292/1233/848 39/1169/786 7/1178/795 +f 12/1185/802 37/1166/783 296/1234/849 +f 39/1169/786 38/1162/779 4/1193/810 +f 4/1193/810 38/1162/779 37/1166/783 +f 143/1235/779 142/1236/786 108/1237/782 +f 143/1235/779 107/1238/780 106/1239/781 +f 142/1236/786 460/1240/848 395/1241/785 +f 144/1242/783 106/1239/781 391/1243/784 +f 444/1244/798 134/1245/811 114/1246/796 +f 446/1247/801 137/1248/812 113/1249/799 +f 451/1250/804 140/1251/813 112/1252/802 +f 443/1253/787 407/1254/788 115/1255/789 +f 449/1256/790 406/1257/791 116/1258/792 +f 454/1259/793 405/1260/794 117/1261/795 +f 134/1245/811 133/1262/843 111/1263/806 +f 137/1248/812 136/1264/846 110/1265/808 +f 140/1251/813 139/1266/847 109/1267/810 +f 135/1268/805 115/1255/789 111/1263/806 +f 138/1269/807 116/1258/792 110/1265/808 +f 141/1270/809 117/1261/795 109/1267/810 +f 106/1239/781 107/1238/780 119/1271/815 +f 108/1237/782 120/1272/814 119/1271/815 +f 395/1241/785 415/1273/818 120/1272/814 +f 391/1243/784 106/1239/781 118/1274/816 +f 124/1275/826 421/1276/828 420/1277/825 +f 125/1278/824 122/1279/823 121/1280/820 +f 126/1281/819 121/1280/820 416/1282/821 +f 125/1278/824 124/1275/826 123/1283/822 +f 129/1284/827 127/1285/829 124/1275/826 +f 128/1286/830 126/1281/819 425/1287/831 +f 129/1284/827 125/1278/824 126/1281/819 +f 127/1285/829 429/1288/833 421/1276/828 +f 415/1273/818 429/1288/833 127/1285/829 +f 118/1274/816 119/1271/815 129/1284/827 +f 411/1289/817 118/1274/816 128/1286/830 +f 120/1272/814 127/1285/829 129/1284/827 +f 122/1279/823 123/1283/822 132/1290/837 +f 123/1283/822 420/1277/825 435/1291/838 +f 122/1279/823 131/1292/834 130/1293/835 +f 121/1280/820 130/1293/835 431/1294/836 +f 132/1290/837 435/1291/838 440/1295/842 +f 131/1292/834 438/1296/331 437/1297/839 +f 130/1293/835 437/1297/839 436/1298/840 +f 131/1292/834 132/1290/837 439/1299/841 +f 388/1300/97 387/1301/850 135/1268/805 +f 388/1300/97 133/1262/843 134/1245/811 +f 386/1302/845 443/1253/787 135/1268/805 +f 390/1303/844 389/1304/851 134/1245/811 +f 115/1255/789 138/1269/807 136/1264/846 +f 114/1246/796 111/1263/806 136/1264/846 +f 407/1254/788 449/1256/790 138/1269/807 +f 396/1305/797 114/1246/796 137/1248/812 +f 116/1258/792 141/1270/809 139/1266/847 +f 110/1265/808 139/1266/847 140/1251/813 +f 116/1258/792 406/1257/791 454/1259/793 +f 113/1249/799 140/1251/813 451/1250/804 +f 112/1252/802 144/1242/783 456/1306/849 +f 117/1261/795 405/1260/794 460/1240/848 +f 109/1267/810 143/1235/779 144/1242/783 +f 109/1267/810 117/1261/795 142/1236/786 +f 294/1307/852 293/1308/853 230/1309/854 +f 294/1307/852 229/1310/855 228/1311/856 +f 293/1308/853 296/1312/849 231/1313/784 +f 295/1314/857 228/1311/856 227/1315/785 +f 280/1316/787 278/1317/858 240/1318/859 +f 282/1319/790 284/1320/860 239/1321/861 +f 287/1322/793 289/1323/862 238/1324/863 +f 279/1325/798 243/1326/797 244/1327/864 +f 285/1328/801 242/1329/800 245/1330/865 +f 290/1331/804 241/1332/803 246/1333/866 +f 278/1317/858 277/1334/867 237/1335/868 +f 284/1320/860 283/1336/869 236/1337/870 +f 289/1323/862 288/1338/871 235/1339/872 +f 281/1340/873 244/1327/864 237/1335/868 +f 286/1341/874 245/1330/865 236/1337/870 +f 291/1342/875 246/1333/866 235/1339/872 +f 228/1311/856 229/1310/855 249/1343/876 +f 230/1309/854 250/1344/877 249/1343/876 +f 231/1313/784 251/1345/817 250/1344/877 +f 227/1315/785 228/1311/856 248/1346/878 +f 258/1347/879 257/1348/831 256/1349/821 +f 259/1350/880 254/1351/881 253/1352/882 +f 260/1353/883 253/1352/882 252/1354/825 +f 259/1350/880 258/1347/879 255/1355/884 +f 266/1356/885 262/1357/886 258/1347/879 +f 263/1358/887 260/1353/883 261/1359/828 +f 266/1356/885 259/1350/880 260/1353/883 +f 262/1357/886 265/1360/832 257/1348/831 +f 251/1345/817 265/1360/832 262/1357/886 +f 248/1346/878 249/1343/876 266/1356/885 +f 247/1361/818 248/1346/878 263/1358/887 +f 250/1344/877 262/1357/886 266/1356/885 +f 254/1351/881 255/1355/884 270/1362/888 +f 255/1355/884 256/1349/821 271/1363/836 +f 254/1351/881 269/1364/889 268/1365/890 +f 253/1352/882 268/1365/890 267/1366/838 +f 270/1362/888 271/1363/836 276/1367/840 +f 269/1364/889 274/1368/331 273/1369/841 +f 268/1365/890 273/1369/841 272/1370/842 +f 269/1364/889 270/1362/888 275/1371/839 +f 224/1372/97 223/1373/851 281/1340/873 +f 224/1372/97 277/1334/867 278/1317/858 +f 222/1374/844 279/1325/798 281/1340/873 +f 226/1375/845 225/1376/850 278/1317/858 +f 244/1327/864 286/1341/874 283/1336/869 +f 240/1318/859 237/1335/868 283/1336/869 +f 243/1326/797 285/1328/801 286/1341/874 +f 232/1377/788 240/1318/859 284/1320/860 +f 245/1330/865 291/1342/875 288/1338/871 +f 236/1337/870 288/1338/871 289/1323/862 +f 245/1330/865 242/1329/800 290/1331/804 +f 239/1321/861 289/1323/862 287/1322/793 +f 238/1324/863 295/1314/857 292/1378/848 +f 246/1333/866 241/1332/803 296/1312/849 +f 235/1339/872 294/1307/852 295/1314/857 +f 235/1339/872 246/1333/866 293/1308/853 +f 458/1379/852 393/1380/855 394/1381/856 +f 392/1382/854 393/1380/855 458/1379/852 +f 457/1383/857 394/1381/856 395/1384/785 +f 391/1385/784 392/1382/854 459/1386/853 +f 444/1387/798 396/1388/797 404/1389/864 +f 446/1390/801 397/1391/800 403/1392/865 +f 451/1393/804 398/1394/803 402/1395/866 +f 408/1396/859 407/1397/788 443/1398/787 +f 409/1399/861 406/1400/791 449/1401/790 +f 410/1402/863 405/1403/794 454/1404/793 +f 442/1405/873 404/1389/864 401/1406/868 +f 448/1407/874 403/1392/865 400/1408/870 +f 453/1409/875 402/1395/866 399/1410/872 +f 401/1406/868 408/1396/859 445/1411/858 +f 400/1408/870 409/1399/861 450/1412/860 +f 399/1410/872 410/1402/863 455/1413/862 +f 392/1382/854 412/1414/877 413/1415/876 +f 413/1415/876 414/1416/878 394/1381/856 +f 414/1416/878 415/1417/818 395/1384/785 +f 391/1385/784 411/1418/817 412/1414/877 +f 422/1419/883 419/1420/882 420/1421/825 +f 417/1422/884 418/1423/881 423/1424/880 +f 416/1425/821 417/1422/884 424/1426/879 +f 423/1424/880 418/1423/881 419/1420/882 +f 430/1427/885 423/1424/880 422/1419/883 +f 425/1428/831 424/1426/879 427/1429/886 +f 424/1426/879 423/1424/880 430/1427/885 +f 426/1430/887 422/1419/883 421/1431/828 +f 426/1430/887 429/1432/833 415/1417/818 +f 412/1414/877 427/1429/886 430/1427/885 +f 411/1418/817 428/1433/832 427/1429/886 +f 430/1427/885 426/1430/887 414/1416/878 +f 418/1423/881 433/1434/889 434/1435/890 +f 419/1420/882 434/1435/890 435/1436/838 +f 432/1437/888 433/1434/889 418/1423/881 +f 431/1438/836 432/1437/888 417/1422/884 +f 434/1435/890 439/1439/841 440/1440/842 +f 437/1441/839 438/1442/331 433/1434/889 +f 436/1443/840 437/1441/839 432/1437/888 +f 433/1434/889 438/1442/331 439/1439/841 +f 388/1444/97 441/1445/867 445/1411/858 +f 442/1405/873 441/1445/867 388/1444/97 +f 445/1411/858 443/1398/787 386/1446/845 +f 390/1447/844 444/1387/798 442/1405/873 +f 447/1448/869 450/1412/860 408/1396/859 +f 404/1389/864 448/1407/874 447/1448/869 +f 450/1412/860 449/1401/790 407/1397/788 +f 396/1388/797 446/1390/801 448/1407/874 +f 452/1449/871 455/1413/862 409/1399/861 +f 403/1392/865 453/1409/875 452/1449/871 +f 409/1399/861 455/1413/862 454/1404/793 +f 451/1393/804 453/1409/875 403/1392/865 +f 456/1450/849 459/1386/853 402/1395/866 +f 410/1402/863 457/1383/857 460/1451/848 +f 459/1386/853 458/1379/852 399/1410/872 +f 399/1410/872 458/1379/852 457/1383/857 +f 37/1166/783 38/1162/779 3/1164/781 +f 39/1169/786 1/1165/782 38/1162/779 +f 296/1234/849 37/1166/783 231/1167/784 +f 292/1233/848 227/1168/785 39/1169/786 +f 29/1188/805 280/1170/787 9/1172/789 +f 32/1190/807 282/1173/790 8/1175/792 +f 35/1192/809 287/1176/793 7/1178/795 +f 30/1194/811 10/1179/796 279/1181/798 +f 33/1195/812 11/1182/799 285/1184/801 +f 36/1196/813 12/1185/802 290/1187/804 +f 28/1228/843 29/1188/805 6/1189/806 +f 31/1231/846 32/1190/807 5/1191/808 +f 34/1232/847 35/1192/809 4/1193/810 +f 28/1228/843 6/1189/806 30/1194/811 +f 31/1231/846 5/1191/808 33/1195/812 +f 34/1232/847 4/1193/810 36/1196/813 +f 2/1163/780 1/1165/782 14/1198/815 +f 2/1163/780 14/1198/815 3/1164/781 +f 3/1164/781 15/1199/816 231/1167/784 +f 1/1165/782 227/1168/785 13/1197/814 +f 257/1214/831 19/1202/819 256/1204/821 +f 21/1209/826 16/1205/822 20/1207/824 +f 261/1211/828 252/1208/825 21/1209/826 +f 19/1202/819 20/1207/824 18/1203/820 +f 22/1213/830 24/1210/827 19/1202/819 +f 264/1216/833 261/1211/828 23/1212/829 +f 23/1212/829 21/1209/826 24/1210/827 +f 265/1215/832 22/1213/830 257/1214/831 +f 15/1199/816 22/1213/830 251/1200/817 +f 14/1198/815 13/1197/814 24/1210/827 +f 13/1197/814 247/1201/818 23/1212/829 +f 14/1198/815 24/1210/827 15/1199/816 +f 18/1203/820 17/1206/823 27/1218/835 +f 256/1204/821 18/1203/820 271/1219/836 +f 16/1205/822 25/1220/837 17/1206/823 +f 252/1208/825 267/1221/838 16/1205/822 +f 271/1219/836 27/1218/835 276/1223/840 +f 25/1220/837 273/1224/841 26/1217/834 +f 267/1221/838 272/1226/842 25/1220/837 +f 27/1218/835 26/1217/834 275/1222/839 +f 223/1452/851 224/1227/97 30/1194/811 +f 225/1453/850 29/1188/805 224/1227/97 +f 223/1452/851 30/1194/811 222/1229/844 +f 225/1453/850 226/1230/845 29/1188/805 +f 6/1189/806 31/1231/846 10/1179/796 +f 6/1189/806 9/1172/789 31/1231/846 +f 10/1179/796 33/1195/812 243/1180/797 +f 9/1172/789 232/1171/788 32/1190/807 +f 5/1191/808 34/1232/847 11/1182/799 +f 5/1191/808 8/1175/792 34/1232/847 +f 242/1183/800 11/1182/799 290/1187/804 +f 233/1174/791 287/1176/793 8/1175/792 +f 234/1177/794 292/1233/848 7/1178/795 +f 241/1186/803 12/1185/802 296/1234/849 +f 7/1178/795 39/1169/786 4/1193/810 +f 12/1185/802 4/1193/810 37/1166/783 +f 107/1238/780 143/1235/779 108/1237/782 +f 144/1242/783 143/1235/779 106/1239/781 +f 108/1237/782 142/1236/786 395/1241/785 +f 456/1306/849 144/1242/783 391/1243/784 +f 396/1305/797 444/1244/798 114/1246/796 +f 397/1454/800 446/1247/801 113/1249/799 +f 398/1455/803 451/1250/804 112/1252/802 +f 135/1268/805 443/1253/787 115/1255/789 +f 138/1269/807 449/1256/790 116/1258/792 +f 141/1270/809 454/1259/793 117/1261/795 +f 114/1246/796 134/1245/811 111/1263/806 +f 113/1249/799 137/1248/812 110/1265/808 +f 112/1252/802 140/1251/813 109/1267/810 +f 133/1262/843 135/1268/805 111/1263/806 +f 136/1264/846 138/1269/807 110/1265/808 +f 139/1266/847 141/1270/809 109/1267/810 +f 118/1274/816 106/1239/781 119/1271/815 +f 107/1238/780 108/1237/782 119/1271/815 +f 108/1237/782 395/1241/785 120/1272/814 +f 411/1289/817 391/1243/784 118/1274/816 +f 123/1283/822 124/1275/826 420/1277/825 +f 126/1281/819 125/1278/824 121/1280/820 +f 425/1287/831 126/1281/819 416/1282/821 +f 122/1279/823 125/1278/824 123/1283/822 +f 125/1278/824 129/1284/827 124/1275/826 +f 428/1456/832 128/1286/830 425/1287/831 +f 128/1286/830 129/1284/827 126/1281/819 +f 124/1275/826 127/1285/829 421/1276/828 +f 120/1272/814 415/1273/818 127/1285/829 +f 128/1286/830 118/1274/816 129/1284/827 +f 428/1456/832 411/1289/817 128/1286/830 +f 119/1271/815 120/1272/814 129/1284/827 +f 131/1292/834 122/1279/823 132/1290/837 +f 132/1290/837 123/1283/822 435/1291/838 +f 121/1280/820 122/1279/823 130/1293/835 +f 416/1282/821 121/1280/820 431/1294/836 +f 439/1299/841 132/1290/837 440/1295/842 +f 130/1293/835 131/1292/834 437/1297/839 +f 431/1294/836 130/1293/835 436/1298/840 +f 438/1296/331 131/1292/834 439/1299/841 +f 133/1262/843 388/1300/97 135/1268/805 +f 389/1304/851 388/1300/97 134/1245/811 +f 387/1301/850 386/1302/845 135/1268/805 +f 444/1244/798 390/1303/844 134/1245/811 +f 111/1263/806 115/1255/789 136/1264/846 +f 137/1248/812 114/1246/796 136/1264/846 +f 115/1255/789 407/1254/788 138/1269/807 +f 446/1247/801 396/1305/797 137/1248/812 +f 110/1265/808 116/1258/792 139/1266/847 +f 113/1249/799 110/1265/808 140/1251/813 +f 141/1270/809 116/1258/792 454/1259/793 +f 397/1454/800 113/1249/799 451/1250/804 +f 398/1455/803 112/1252/802 456/1306/849 +f 142/1236/786 117/1261/795 460/1240/848 +f 112/1252/802 109/1267/810 144/1242/783 +f 143/1235/779 109/1267/810 142/1236/786 +f 229/1310/855 294/1307/852 230/1309/854 +f 295/1314/857 294/1307/852 228/1311/856 +f 230/1309/854 293/1308/853 231/1313/784 +f 292/1378/848 295/1314/857 227/1315/785 +f 232/1377/788 280/1316/787 240/1318/859 +f 233/1457/791 282/1319/790 239/1321/861 +f 234/1458/794 287/1322/793 238/1324/863 +f 281/1340/873 279/1325/798 244/1327/864 +f 286/1341/874 285/1328/801 245/1330/865 +f 291/1342/875 290/1331/804 246/1333/866 +f 240/1318/859 278/1317/858 237/1335/868 +f 239/1321/861 284/1320/860 236/1337/870 +f 238/1324/863 289/1323/862 235/1339/872 +f 277/1334/867 281/1340/873 237/1335/868 +f 283/1336/869 286/1341/874 236/1337/870 +f 288/1338/871 291/1342/875 235/1339/872 +f 248/1346/878 228/1311/856 249/1343/876 +f 229/1310/855 230/1309/854 249/1343/876 +f 230/1309/854 231/1313/784 250/1344/877 +f 247/1361/818 227/1315/785 248/1346/878 +f 255/1355/884 258/1347/879 256/1349/821 +f 260/1353/883 259/1350/880 253/1352/882 +f 261/1359/828 260/1353/883 252/1354/825 +f 254/1351/881 259/1350/880 255/1355/884 +f 259/1350/880 266/1356/885 258/1347/879 +f 264/1459/833 263/1358/887 261/1359/828 +f 263/1358/887 266/1356/885 260/1353/883 +f 258/1347/879 262/1357/886 257/1348/831 +f 250/1344/877 251/1345/817 262/1357/886 +f 263/1358/887 248/1346/878 266/1356/885 +f 264/1459/833 247/1361/818 263/1358/887 +f 249/1343/876 250/1344/877 266/1356/885 +f 269/1364/889 254/1351/881 270/1362/888 +f 270/1362/888 255/1355/884 271/1363/836 +f 253/1352/882 254/1351/881 268/1365/890 +f 252/1354/825 253/1352/882 267/1366/838 +f 275/1371/839 270/1362/888 276/1367/840 +f 268/1365/890 269/1364/889 273/1369/841 +f 267/1366/838 268/1365/890 272/1370/842 +f 274/1368/331 269/1364/889 275/1371/839 +f 277/1334/867 224/1372/97 281/1340/873 +f 225/1376/850 224/1372/97 278/1317/858 +f 223/1373/851 222/1374/844 281/1340/873 +f 280/1316/787 226/1375/845 278/1317/858 +f 237/1335/868 244/1327/864 283/1336/869 +f 284/1320/860 240/1318/859 283/1336/869 +f 244/1327/864 243/1326/797 286/1341/874 +f 282/1319/790 232/1377/788 284/1320/860 +f 236/1337/870 245/1330/865 288/1338/871 +f 239/1321/861 236/1337/870 289/1323/862 +f 291/1342/875 245/1330/865 290/1331/804 +f 233/1457/791 239/1321/861 287/1322/793 +f 234/1458/794 238/1324/863 292/1378/848 +f 293/1308/853 246/1333/866 296/1312/849 +f 238/1324/863 235/1339/872 295/1314/857 +f 294/1307/852 235/1339/872 293/1308/853 +f 457/1383/857 458/1379/852 394/1381/856 +f 459/1386/853 392/1382/854 458/1379/852 +f 460/1451/848 457/1383/857 395/1384/785 +f 456/1450/849 391/1385/784 459/1386/853 +f 442/1405/873 444/1387/798 404/1389/864 +f 448/1407/874 446/1390/801 403/1392/865 +f 453/1409/875 451/1393/804 402/1395/866 +f 445/1411/858 408/1396/859 443/1398/787 +f 450/1412/860 409/1399/861 449/1401/790 +f 455/1413/862 410/1402/863 454/1404/793 +f 441/1445/867 442/1405/873 401/1406/868 +f 447/1448/869 448/1407/874 400/1408/870 +f 452/1449/871 453/1409/875 399/1410/872 +f 441/1445/867 401/1406/868 445/1411/858 +f 447/1448/869 400/1408/870 450/1412/860 +f 452/1449/871 399/1410/872 455/1413/862 +f 393/1380/855 392/1382/854 413/1415/876 +f 393/1380/855 413/1415/876 394/1381/856 +f 394/1381/856 414/1416/878 395/1384/785 +f 392/1382/854 391/1385/784 412/1414/877 +f 421/1431/828 422/1419/883 420/1421/825 +f 424/1426/879 417/1422/884 423/1424/880 +f 425/1428/831 416/1425/821 424/1426/879 +f 422/1419/883 423/1424/880 419/1420/882 +f 426/1430/887 430/1427/885 422/1419/883 +f 428/1433/832 425/1428/831 427/1429/886 +f 427/1429/886 424/1426/879 430/1427/885 +f 429/1432/833 426/1430/887 421/1431/828 +f 414/1416/878 426/1430/887 415/1417/818 +f 413/1415/876 412/1414/877 430/1427/885 +f 412/1414/877 411/1418/817 427/1429/886 +f 413/1415/876 430/1427/885 414/1416/878 +f 419/1420/882 418/1423/881 434/1435/890 +f 420/1421/825 419/1420/882 435/1436/838 +f 417/1422/884 432/1437/888 418/1423/881 +f 416/1425/821 431/1438/836 417/1422/884 +f 435/1436/838 434/1435/890 440/1440/842 +f 432/1437/888 437/1441/839 433/1434/889 +f 431/1438/836 436/1443/840 432/1437/888 +f 434/1435/890 433/1434/889 439/1439/841 +f 387/1460/850 388/1444/97 445/1411/858 +f 389/1461/851 442/1405/873 388/1444/97 +f 387/1460/850 445/1411/858 386/1446/845 +f 389/1461/851 390/1447/844 442/1405/873 +f 401/1406/868 447/1448/869 408/1396/859 +f 401/1406/868 404/1389/864 447/1448/869 +f 408/1396/859 450/1412/860 407/1397/788 +f 404/1389/864 396/1388/797 448/1407/874 +f 400/1408/870 452/1449/871 409/1399/861 +f 400/1408/870 403/1392/865 452/1449/871 +f 406/1400/791 409/1399/861 454/1404/793 +f 397/1391/800 451/1393/804 403/1392/865 +f 398/1394/803 456/1450/849 402/1395/866 +f 405/1403/794 410/1402/863 460/1451/848 +f 402/1395/866 459/1386/853 399/1410/872 +f 410/1402/863 399/1410/872 457/1383/857 diff --git a/assets/Models/Test/Ball/SquidTexture.png b/assets/Models/Test/Ball/SquidTexture.png new file mode 100644 index 0000000000000000000000000000000000000000..e52c834b586c0cba1379583f93ba81c484513dda GIT binary patch literal 15828 zcmeHu2UL?=yJiptj-cpK>4J(%Ckg_Gjv~@Qiu9(GC@plP!$Cw*z)+=&G${cADFH$e zmENUyDWQV|2sN4g#qJU02__VQ&nW8MP=Bb>1fGY74b8yRgTSu!1hVFa?;w4cK`b z)i2_(ApzJ8WqlhZ*vAT3edih45*Q5~?1t8h5FXfZADBfmC+Abxvjo`rdz<=FKluvJ z;CO+g5=x{nSH%^AjA;a%srB^**||HF8TrnOK0Nj?QBLr)R|2z8&@K8Yd^-&G4s`)= zi$8kWdAhK(Q#7Ldw7I}i9Tn-yqenBuxvqRCIT&o(&A*4p4=-g2l%xuDAilr0cKop! z?K^kEE1ME}xiZ+h#SwkH6C@jj^f#E{;knt_A(bz8j32h@`w+ zwLh)~37G~d9^ak%+`grj#nu(|+p|Yw^O1^&6||(oi+xwVC_lm&@SdO1`rSF=ZsKda zP}Y@~ccOT{Uh5@U{g~uGpp=;ufqk@<%-OCM1$A5oy^-{}=^IBI_Q6fq=wZn8T zJy5#1DeZDhJk;b~6-u%hCiLgw^BTpQF+n9-(%^4*l(22v_5lPiT3Y@K zy)R6Ugl>i!DDiU+{2qA@e#Ym8{1>sSzrU0h;=;T+rd*t<+xvU(ygIl}RR)u-)%-pRxD(kmG zw;yCAYL9>wDIf;py3Bl~iRP;2*T6y%vfZit=k7rw zU#=H-4EuWUR=+*ESp7;mFE?FWURXs~zf>C^VMn+l7L8c3G_H)ptGX9COy*rq-GTrm7)xCcLn?eKtS%k?xVhe$KWcodH!T z-Bqelx=tpkuOiM!sf+NY(VtrKrj2s)Sr20$#!o*(VS1!8`tOC`qksM6o5{@88HaBU z-!iUKUB7%?Reec)Em2z?lg*PYsV1q`)Y0DYzGEOkBuV<_pb#zzmo%6(Sz%%H)QG?Q zLwTjOa>=Yww&7ZNjbn(BxM7yT10&PYd*~GOwSj7Mb_L}F+1 znylZ~t++)v!l3I+*O2f``MEZpFHcf*lKK=8j0lWtF#g4>m#TlZ3C7C^Cb51SZ^q85 zxNSR|PJ8!mrzDjoeO~=ATC^s*_GB$|EUo=k8c(XBuxoc?v;36ST#qbmTI>zG$pU{( zdCee18IBWf2}kLp2R~M1dFBxwt~1K)$hf4<$jnHIO$bdGnzxJ9S2S0&X*MEL%|j;T z12{=mByUm=EGO_91%mQr(Cr}OV+Xt5zL)DFWF8i+J{o$-7S8 z-M<@mcOnUKQ&YT1Kt+UCCQr~-YDBE+R+a2GK^w#NeuESPWqVaNaY5cfQAhjQ$-`BA z=#P{iv@<@8Z{f|RPG0GqpSMDC7;*)F=a-0+Q+uKDN6g0UGrS)dUSHch=XovSq}S(* zpAlE!J)%7?hU86n*)=wmc-6h5R!}t}URS>gXYtQro^j>AsZl$nHl8Gr%8=-B$w5e3 z0(&z!3iZbMPTpnp=yJpoV&2B1t-v~@g!t9*RRx?qmb%5R^i9DDLxGd!cd{3BjkpJS zsY?*n`ZjePFI&aq@>BUbR@+NkN8gAgucwh#fB*dZbX0lPb5(tTiw5)90$cGCDQBhH{j;Hr!fu)N!O6K0zvZ#PRZ~p^ zxZz~k!~N$etTGo~h83P4WsJWNFvLCfbdEI?*;U~<>-ccBZ$9Hg#RtJ~MV>0TbDr>BBS~@!)TInA(t|1)BwA7A1pm?C(Z_{smpnOnDkS%N!Cbqnrv3OZI+DA zozt(>Pb`u!cUW>;k|IX;X*N|SS0@%?Ozbdg-qc$3y#NjfrDJ>tg}7^`7tWJ!6Ul zs*vC=B5FI5Uj9U6LS)?Oz`3 z?0MUh9={nMUFYDNb+lB!%v?13?ejPG+LounH_f*64ptjH$2>2tXH3#-&iY;o;3hrZ zE8f=W&N+x?j*ccBr+kY)v=kN?1@-17OC@b}7|i<`3>Fv+gYA*P>mm&1egg(uvVg%P z-ojvv$SCu#_h2v~lJec#x=%+|#`mJf2q}|!sUgu2TF-;6Yuv zrt*HRzp!k_(H`M|jB*kGNlz3AxZ|&$6{UjVReqp7;a=m+hM>m`7!`TwqqtShD+K;H zar(B!jknd+cuFP1n6KlpahW&5o8+^OJ<$161=;Q^`wTpW?`cG)wKm%X(j4 zX5CplMq?T%Q&QxKdaRc^DP>y6^X4;unx4UXmBb8>>bt(*Yhw+_efv4!^ zW>V4o=db!DJ;j=gatp_{UYZrf+wrOHO|-$S+{Z;Mp$8-R(fo5svb%bPXntlY=u{3s z=H6Neqfnhwi;O8Oowi%H3hO9n>L&>|_xoI}r|+<8r^~Fg5O= zH}kvMmf!XlQ>`Q0O%&!BkN&?1UALc&-5V4Nm_xhym{L-lse&C%j~}?1`z^cEN5G)B z)=%8U83l>l%cnCb0Jr`n<+X8mWKD9}wn!uSfeTf#Pq(jWDp5jDXZ5Ylm#HFWTceT~ zArj0(9Jy#!UtvCNl>ho5z|hbb^=dw^_$)AptW1vsrn^c#frgg8Vl&~v;naJ zdsDJ>vIdu}{Ve6l>=FAGJ)Q|d8kM~QZ4Cqe9HNurJ_a$Hbwz>K`s*b~XaS2^@hXPO zTIYZ5tBTeWJ`Qbb9(F!g-%jrzglJj4lX+9JQ9=#Tua==#@r#p{uZ7&g1{{Dsz;@kv z1=PHpa2A=~qfBkRUY5r!#~~6*yV1HUJrEm5IYzlQ_3UJ!AbG75?x7veKx@0qRwjNM zzw+xmj@+17-PW+%kbH>RXx&p35YcHySxc8#$Q<>nh+xg&*eyCr=!-}dLz|4!hrjl@ zQ=zR6S1v**kmZSb&s|bmEcg#D!rZDZ21BCqW2jQ-UG%WLO@7L7fnm|3nu_d-szrmU z6Nvt&c{Ddua935l129zo>As(>H+ zezMvas`|g@iI5LHVyKG!o-a}X|HW7SckTRN)`3_m^Ij^e`o*u-c?Iy+wmE0^AU3*;6_)-Ff5k@Tt!pZnk|G9f_Z)&<3y-m>@Q_)btZBYrJ<{RvJkf#v z71_2j^w2h+M3Q&p+AjWz0iUQx6WCMKN^d?U+kAi;U8MEs?7*!hb`sghn}@m|XDf2) z0QLRS(#!N>&pU&SSD?ew09UW+BdzTp-?E;bI}M%xa>s(t_*;(fn0>V~S>KV1JuU6( zT{hj}w2+0QsYR$+9e@LD9Zkq8e9s-G7Or8nyz9oxendV}0c+G2SG=h9`nBW>Dso)? zvhmcTqur)beD;^+aFq6qmLi){>Aq9{vYk+1AlAMTrO~5*xkluU9ABx7` zHs-Q%dF&DJ+;|5^4kJK8<(iHisc2W`0-yV2`#wimc5mLsrqs{Hj`srG86sB`Vvn>l zp1|huYoBupT2@Wp%U33g#X5qrgUB{;KVP@h&PKGlqCLwjpZQnRx0KHi|Dzgi{4Lww z7zPA$Wa;7U6R{%oHhuohL)ay^AmaU^0T+vd3AQl|d^^v97VPv+(>`S=N{8C9qx_`+ z`|lLMN%rNl3TB(fg2t){j}uSPzl65(doMlI+Aw@HERN-jEqQbaS}EJ!vC{l!xrkschhHRR80F6I7B-5z&br+j<)k_W zo!1ET9kDJRg-I~X$B=gh;Q(vwIXB?fB-G0ydIspdn*%(KIhsO?moGc9lvM>m{B#s? zhp{D&ryU?MqtV?!wQ{7#qExPKgALH9-eoorofde$uqzN%Hdf;NqgqB&S+1Ws6J|>dkW-k z3-rLX*=tv8rF@r&ugewL|^g2RRmS<1ZGrMKnQ z#QpUXPkGLR(k4je{&|InRheYC)UMjU*??1NistyyPqsAGmES+ z4)FE-_aI{-5s7Jvv*ZJHTUAnPmV3tBcXvKf8~^1+YXXw4^UbRX%t<9;P{!E`H7ZM# zq)%&|#so9l5B;*dFF~t5_%A7uR)n||5Z(XMC`b!F5os;Oiipl`gXz92ouT8u zRy8Tv{XswGEf{J;!2H@fvX5GG9;HJ-*w~N!W$BQq2@|9eGF++qKJ=f0Y5{xy*pjGH z#r5XgqYA4^5vzZT8^XBM<~4NTIkNG+H$%@Q_@uU*h9WiX-aR2dMQ^4SCPbKY@sx2M zv`k=0aRb&{=k|aTCPUL_8SS;%ZYloJ5((+jNq$MtG1Jxh+IYW4>%D8SsGu0M?T<%i zK(dxq1);1R)rZ0Dnx1~=EWd>Ia9!Q2aG8@VLil+JEbc^=D3uv@Ei@#2I<20`^f8C+ znP9!IH=nX>77&*?RDdh@I;ABw0l7FrQCK|$<) za|Sp6MG#aRqz@oU_IU>IBO;SK<**MgjakGdnH;S7GMFW6y5b&R@9M}BmD=cx_cly2 zZ#`VEiwVKU_c9@~{9L|?QY~=CnFZFNq7Nc)=RBq3dUjqsbZT5Q8*ProO(;27U5dte zWJ!!Ed19m2yt%O3jx0K8wd5pK>yL45lhtq6epICgb)Qgro+R%z`~3*`a)qQT=CXr{ zVaxuekx}(M9o8qA6%&3)nj-h!x3<vK{$nnRb&Jw) zW`FWl0lW~qJ~3)0w#Z+2%^FoQy>ODobShg9ty@h$;qADWYTRk{QO4rZSmk6sCuOea zvZ42)%K*G6^8=RPP*k8_;_ZC1tw=Ca!a&o#JxJwDRlRyHci3Ol&OT-Cd7&{2$K|XeTKu$&9%8P4)l^iwfi6K zj@O$jqK!I0Vh7R4=7>WE&x(~VJxE+@pZi8~i~Dq1(`Fl;#h)C&w_Jz!rSg28+3SmA zAJ;F;EUigRPnmhbk>pawv^A+(f8fwXUFrDvV+v)d4}LZ!a(?(g79%BAnxW0Z=N|pA zbOG(=vWnR=@h3hKjT`7)-qwy$$P3X-CzhX4>m&Gczj<=bf|xQVcKPZ>19%#o)Ug_I}8x zwfJ#$+PGLr^@j-@bsMkFkKmDWt)6CGz)*Tuf!=IOQ+tAipIl5-x@kds9BA-4sKuZX zB~{|!X)2bm$o6)8`Qe$3b10w1WyX??AHKGY;kOWqI!~~!A67rdy2T9&eR7o|yTusy zy4^k4)xiqh`n{wDAN>`g#x3a%ev!(KYX^_{I`4HvlHhKLf`Fkw2e@Idb%@; zZI0AE6~x-2(3)&2?v<$%-UL}9TR)$nm*veOQrmhKf1AC}kM3=G$9j0|982ZP2dyd| z8ptlroV6~HW#almHEbS#bhu%^&wcccKI|{oxfjuuDcY;#iN;TmI?6PF*U>q$c9wCN zwSJrH{~iMTekvX+aY;MUdq0BHTDaDUPs=shGl!XOF^Qt-@$U?fWzkzvw)w=`0D7bI z%2^LotFUhRqK84i2xM$QZTD`V8D&b1?^l#f%juL#&Fy*lw3RtY+9hD~-O$GLB7yCE z5~+{YFva{Zgg)#-_%bPF`)e7&lzGiPy7PyTHUkgqgxT$dV;qDgkr9Syw0q zFgrwk>94e3YdzYa4|||UrR^|Ky45>Zz>%Wtp7}Fvt;cWGHqP8s$^B#Ml0jn{?HG)I zx?bHXQzSVQSq&#mB}_KYcuK_-r)#0wvInu{D84Q%YNT22delnGg*quv|Y%!Pk#C-v;P z>4^%JfIe=NXi|CBpeH0rPU}4A3fj3krQ(XD4(&mOU@t4^H^V8;t#=jO7;Wfh$3u&o zY~5d%N^7{tnR{z;nEhufWNN~|)K)EZ3K=NVX?@Rws^MJYjMu^}cCQy$x`0n)mR3G1 zo!?A`1h*cYu8_YYg5_KX1*&1J&8QOgN%{4JEEv}gj?n(tL}uiaAd z8vHx1l%6!C7034N;wwC%wredR9UEqkk9Vh`B*leLO`5VXaM`V4w&ZcR%i`p^C-v7r z0?B0QY<;&TU<5>iy`ja>O~^9N`9#>fTg&6zH%4Yfs|Gy141}TL@Zo1EeON~X;zz2u z&tqT%Ng^&4pu+${OoU5sC9q9+-Jf;Q`MOqyn|IyYdo^re&|{ z0a7|XU?aCKMe=ltOZBlswto?E0{!8wk~{MiGTWX|w8ofH_-nB0>y^~j#0?boeD_~cwpH#m zUCzAO-#S%3ZO>n1J+qmY-f-ROHyY8=oWA$%wIDc_MFxm#PHcZ@p3B}A!|f)tZM&!lq-G=& zp-LIyEWq4?u}TTvkX>6$oHv) zrRPd>cTme#6}FwU7-F*Dh+jmz5ql?dB!u38RFM@gh&b9*2^;a5Jl*DfEuWFG^l<48 z$alI;QV-9FW~f93*w8u6*nMBx+XcCjBY;>@;_B@a_W7)nV>zUkgN~Y`)xq8|@x+8s zg7reZ6;;LQ9E{zq;L*@h(YhGBA~R*Qk*c5SfuFwJE29J#PRxF9R)M*hvSn3@ZGPN) z?d#U4{#S!Sq);3v2NHjB8Vi54`+^3IeGomL%X;11+To!2VJOraTTjC+EBD-r9IS}T z@GScQA^b+IZfFt5m1TDy<%;+bC(iAcHgRTE$^ELTPu5vTKN&(upWLEHhAgURmkoXQ zR{7KFlFKUeOZMl>`29U)kOBC9D9Am=J-w%iJkZqh4eDsf<{UbX@|ka5JQOqEUuBzg zy*umD=S|3dhME!14ZqcE>a)J{EUkuTdW0Sh6uxA>&pq|%UDQuk$-cLb=Qr_;uG`hf z?7`(M?pM0h%goi*iX)2IQvAoB32vkx2I}QOjF5Kmb+MpSd}ZQj%kfS9x36;7R*ez8 zV`8b{ZTX9Zj+q7eIu{)>+46=9K_9kzBSs-1qx$q*h3ruhW~SRASMRXW#r2@uQH49o z<-<;VA@Nw!7WO;M)VEKrHj4fSeRT<%$$nD7+Z4baaM{P@7CzgM()nA}A~oj3Qg>se zT$YFcTXHlAylS1F*c04mXl~GQ$Wars-NwgbXWeRaO`)v4mGxBuDFeS)U~gqLsoPq9 z!KiXk_7W?_n8EWzw3H92Z*Rp<6Y)vF39~TuYhTrdwsxJQ#{ODw7MVS&#Fd${1jIOs-aC_kPH>PoS&s3Les7V>Jq;#nRfk z%-g^9j`%pLFb&JPA7wwgEp`n^!I23B1^P)3bK+vWzhuRV^mUhMIGP;ivX4)}t(T9D z(a64twRMzzDnwcUBCxEce`T_pU&%wUYv;st$`K}Psk66&)tuW+7H5~p9(s=fy#Z55854J(pLn@F%?USW-g#- zI(c~Pe+;*HnkicSUPH6C?#`dD(~{0r2VOAUk9lV<18H<*}sXwOt5@iJeleahPw zMvi?@-4(;33hMms3E-@=t**#SQK2_2uGQKX9W$#ZltB|T;Vl-Pt9QM#BTLAjZEoFE z&C_`tYGpXGe@++s{wQqPB%~3y?bF6=FKy6{RF*_-&y{`h2+sz!91?plamMU_2)pW? z11EOh0PG3MTb0`;{zo(BEdVh}ub-6rXAPI58g?c3lPw4qYpu`I8`L|)1bvmLmMJka zQ!R%nT>jS-=T9@y9IDGoi57AQ8k?K=Okyjrj=hE^s;yV78;wqbdXZA>K5`a-Tli&7 z-)p#t@h6uyC_Y5cL3&xtYBQ{>iF&^?QSq_FtYzuzSN^)HH=sc2FMba7cQQ%68gXKL3}1WGq?eJtbPzpJ&L3HrXdH`0i~Z{$in-JGENepJTeJB60K z-?EEId7^d;DmO6u<6?dP?0&{eI9EA!*cm8l4)%tkd!~YKjIp(X)Y>AuzlEHSkgs5- z@qO#9?CC7c8n54HI<90`lr1r$B(7T;MSJ)bSlK22H@y99KT zJ|APNBPURBsSUO3&zpe1JrlI|2Mw8PpXBE5VyMf`!bK_w(-f@(FfZtQWJvYGP`F~H z0RYSbePf4*28UDvwdO=LYTym|ppGIlwDn*d287012*r{Eu-NB${qqXnp5Mc7fYv&} zRWn=9{elRz0cG%Z(3tZ^x$hcL6QcqlSzDnhhAlzEe$XMH@BlbtAZv1+XGq;jw1pPv zplv?he2YmK_T3+ghKgGVnJ06iss&A3p3s*IOG_k}8r!%&#sxt@QzyH4%FpSW^2Z={ zxg7bduTgH_E05@!t&hNp3whoEHe}s3fLTeNKrQz0gm#gsz0bq<LI4Y@rly(ZtG*ZNuE zDnP-eseT(NsbnuLvlRe80IxKn>;Ua6v*T%K?2wCkX`eI{g&p;<#%)DFsMGF-0YE36 zA+XY&G*@1=$LeiqK0+xNlLNd|CJ4(+JR{``1!g7m&&(%hB zI^B0FHf|`Mi)jpr+J=8hLaWh*Tie(}xStK+-9yb0;06ZYLcam9JMQIl@#{~|0mgOl z5_yf@Sgp^w&-Y7HTBd(Olt~+VTCeYn4@=0Tu~JTIkChJM zs!yq1TPKKXiL2*~0Sjl#ftk;JiyZZ=xCYYmJfvSK&l^B%)`U1rJLqq>7OWD(Zv*kr zm^%7`lGM8_4&b`w>h>+grlGF;Q!Q)>l5d6=R})wg+@8{bd}M!meF8bkZf^sICTv5+ z@Fq`=P823se7E!D8i2L#g9EMc#~sny9rs!N1{xGB@ z;Gv}DnCBxaDMb(VcF>8<#Yro=*b`7Ioz10tJ&bKuN&7Lk{BDmFJZZ@F6g*ah-fw>a{V887m=$WW*5rcAE`RZI@zsN&)Gu|za+u~g1pE(;K6hf*fHdO9Fj-(p&Ya0FbPGFX&CHI ze8-b_6U{pjd{-huOB^1(`fF2dy%P6F*CW&X zZ*(R52tgcu*{J;MI}k&GzsWey|MZ;>LbzD1$>m)Ln1%K{$NE9c#iD7#cXKTg2fciBEb1~`?(!TE;9BKsyQB?-cbG*A>3iFPleBq{glLq9Hg~KH?9AU0aS?m*};L~ zL{BG6dn@{{7Q^Qu1PTlbm|#=c`Ya9e5o4f7)|_jj_q&dWOl82pVCx?k6i{Hi|9jF6 z7e%8+%<@LA@7y%Pby5J~pbvxX{x%o)b1^0)WL$kaR4)cZ#x`iSLeB1PqgduAr&#G= z^_rr6lRis!;;viJ)Qp|`<8Po!Nw?vHaOOdoow>1qWpNZOY(rR=*c7lic~qLxCkZBS zRt}cZ`tb~K4+5js%C3H1l$K%nZyQtqDlmVEw|d8-FVlopVdM#Qa0RxxeOyPbM80VK~6?r z)ENcCPIKa{Pe5wGHWx{g_~R=Q2d-^^Y5DPW_^=!n1?p)Wo?a@N8d=@cAPftv<8_-n z0&`Sgp7X#YhpQbtBUUA1kiP3(o8h>+grb0hNnBaQgi^)eg_^qK1P|-N8D^J+*G*sAlV1o1u{@Lk-9K z67Et57u8g8f>rHKF?2qqraKA*tE+{IZj9uKgY#g)n0CP0FJYU+Nzo?CzsxbFk*@<7*RCIjZa z9!{hkj!Jn>?;TF{$8WYC+8K@-Fk(3ZZ7gp4>#I(F@x+tH& zb!D_xvJMCnkD-={bvS2CcLFvQf3`~YB6c|?9J(HKP*n34C+G{G6enS8Hd0GE6Q4u~HqVNBfqoXcSf8N|xY+bVTeS7<^?v8y*8-(E^*8LS&(>ONWrLn=tUUs1 zLbeukBRVg(w)i!<`gTpfrVr2JJ~^2JgNb=B5Ho?rY=?&z6rg8&``f%`R$qyezC~`1 z$JeC+y4nt7D>lE4B5jDRStd1yHhP1DqVBsO2pDB0=Jt@wf%z2k3XOI!V{d3zUvG~4 znE-A;WJwRXY|z0hN}sQ3E^T`+x=8|!ceO65OqkU~?eQV!`YX)3A}4%B;8^F&jPSbH ziXyYlto(TV&X2ho_c`sjK|ROjoKnz8QZ0pp{lImNTQl+*P(Yb&CSPR$B^^|q02*GG zDfY5G&Nf45Y3mhC9fNJ@EYzCsI=V?1nwoc%#b%k9nKT>I#&6Eg?bQ%>lE_N0+V^0H zE3}y&>E{Hc{v}X~7FabV0K0`Cpmi{?A!^-kEe1nDan?GV}uurei4l=mxjoc|jo3sJf(Hqb! z1^2YJ!^;Yg_Es6CKWE;oWyL!Zyy@y#O9m~=qg1@4ALqxaES24}?Y9Lj8}kP-AO@QP z>8R;>r+cG~P~8iHY5?HY+j6 zo3pVa{pz58K#`&ooOOKpY;|!lsw{lFpwOIttZaK3Rb5rPqp?w#)3<8nXUT~*F_+dT zia)OqWmS|UIq+X`24n%0kz%#KYZGRgEYKs6) zP)BR)YV$;oXdX@Owyd69FC5zOCONY|}}3IyHD7TvNmTj5(N8(1B!ily!GQ zv&n9Y2mH5|uP;HEcqRxH1kiTi`lK5LD6NkD^A+IUpd6zGX`k`ega3H_4=won!oM&0 z`$_-qg#XNff4A`OJpBD6h?jpn_>b3r^74-d|MB_{=Aj4wzVP2I`1?u!+YA1_@c)bV z?>6=Sx_IkD(`}E#oLoULmnGufbJHCMHov7c%b;*o5XfPHRnG~-Jd{EEPpkc38ee^v zt_W~g#1=m9>pU784fo^v1OG4A;z~|AuX**nLO?k3+St{rX_GX785$olqxq2oyp9Aj~ zO@P2YaFqd|*?XRod(kE!(SfcJx@rdDEa2wJ)&`9z`q7?ez;|IPSf!VPo2ZNXlbc8r ze_>U=Hs%lXR<>4B8LK_t^9H^Q)%X&Q)pxK{#@d3$Qn;60qheIuFpfvNQj!tUekf@C z_3U-tMb_qogDdR+DhU3o5CuK>e?d&!xcq^I0=7{KhNkvz65#ePxC!eiDG=b;^Y7j6PnOoX?M2w## z$%5WONL(tFv-)(F8Jd|%>=vs7ERbW_O%haOZF^#qhruSshAKsaKAOi#(-p)&CNUdW zP**ZBK(t7CW33)Oxv5_$P{ZXiSyt(LWH;{E^bzE&`gyJMEnqNax!MzB{Zq%B58N_9 zd=iPW?O#)bjPoVHvD!P@=Yx#9vP8O7w9d;CJq=^PEhB(1NWKXg34G{06Cle9gcbb@ z7EjZt80=Ul{v^c?!cElx_~;Wc8Eft}>pEQOpl_?^Hhes6Zt_U0iwPE(_NlfQB{os} zmeE`?t%5-i3+|va><8w5CDS#q=mB`vVNhu8jqVvTImA-JHfllT5B&X%y^2g6#lKGI z|H{&!)byXq&;KQ+`9HPg|B`(0KTYUB-~YFlKmTXMD?>*j!M;C>qUjr;v;{E-rmUcG KxA2a|pZ^W!^}5*r literal 0 HcmV?d00001 diff --git a/include/Core/Engine.h b/include/Core/Engine.h index 6820d0b..e3d74f5 100644 --- a/include/Core/Engine.h +++ b/include/Core/Engine.h @@ -137,10 +137,10 @@ public: auto ent = m_World->CreateEntity(); std::shared_ptr transform = m_World->AddComponent(ent); transform->Position = glm::vec3(-0.f, 0.26f, -9.f); - transform->Scale = glm::vec3(0.5f, 0.5f, 0.5f); + transform->Scale = glm::vec3(0.35f, 0.35f, 0.2f); transform->Velocity = glm::vec3(0.0f, -10.f, 0.f); auto model = m_World->AddComponent(ent); - model->ModelFile = "Models/Test/Ball/Ballopus.obj"; + model->ModelFile = "Models/Test/Ball/Sid.obj"; std::shared_ptr circleShape = m_World->AddComponent(ent); std::shared_ptr ball = m_World->AddComponent(ent); ball->Speed = 5.f; @@ -150,8 +150,8 @@ public: physics->Mask = CollisionLayer::Type::Pad | CollisionLayer::Type::Brick | CollisionLayer::Type::Wall; physics->Calculate = true; - auto plight = m_World->AddComponent(ent); - plight->Radius = 2.f; + //auto plight = m_World->AddComponent(ent); + //plight->Radius = 2.f; m_World->CommitEntity(ent); } diff --git a/src/game/Core/Renderer.cpp b/src/game/Core/Renderer.cpp index 2226ba2..06436f9 100755 --- a/src/game/Core/Renderer.cpp +++ b/src/game/Core/Renderer.cpp @@ -312,7 +312,7 @@ void dd::Renderer::Draw(RenderQueueCollection& rq) void dd::Renderer::DrawDeferred(RenderQueue &objects, RenderQueue &lights) { // Pass #1: Fill G-buffers - glDisable(GL_CULL_FACE); + glEnable(GL_CULL_FACE); glCullFace(GL_BACK); glDepthMask(GL_TRUE); glEnable(GL_DEPTH_TEST);