changeset 360:716b87bce32a

add vacuum "-sg 16"
author aaa
date Fri, 17 Jul 2009 22:50:06 +0900
parents 6f3dcd2444ad
children 7010a6ae9d00
files TaskManager/Test/test_render/game_over.cpp TaskManager/Test/test_render/task/DrawSpan.cpp TaskManager/Test/test_render/task/DrawSpan.h TaskManager/Test/test_render/task/DrawSpanRenew.cpp TaskManager/Test/test_render/title.cpp TaskManager/Test/test_render/vacuum.cpp TaskManager/Test/test_render/vacuum.h TaskManager/Test/test_render/viewer.cpp TaskManager/Test/test_render/xml_file/gamecube.h TaskManager/Test/test_render/xml_file/gamecube.xml TaskManager/Test/test_render/xml_file/gameover.h TaskManager/Test/test_render/xml_file/gameover.xml TaskManager/Test/test_render/xml_file/title.xml
diffstat 13 files changed, 1745 insertions(+), 367 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/test_render/game_over.cpp	Fri Jul 17 22:50:06 2009 +0900
@@ -0,0 +1,42 @@
+#include "SceneGraphRoot.h"
+#include "vacuum.h"
+#include "SGList.h"
+
+
+void
+gameover_scene(int w,int h,SceneGraphPtr node)
+{
+
+  SceneGraphPtr over;
+
+  over = sgroot->createSceneGraph(GAMEOVER);
+  over->xyz[0] = w/2;
+  over->xyz[1] = h/2;
+  over->set_move_collision(gameover_idle,gameover_collision);
+  node->addBrother(over);
+}
+
+void
+gameover_idle(SceneGraphPtr node,int screen_w,int screen_h)
+{
+}
+
+void
+gameover_collision(SceneGraphPtr node,int screen_w,int screen_h,SceneGraphPtr tree)
+{
+
+  Pad *pad = sgroot->getController();
+
+  if(pad->start.isPush()) {
+
+    SceneGraphPtr title;
+
+    title = sgroot->createSceneGraph(TITLE);
+    title->xyz[0] = screen_w/2;
+    title->xyz[1] = screen_h/2;
+    title->set_move_collision(no_move_idle, title_collision);
+    sgroot->setSceneData(title);
+
+  }
+
+}
--- a/TaskManager/Test/test_render/task/DrawSpan.cpp	Fri Jul 17 17:16:42 2009 +0900
+++ b/TaskManager/Test/test_render/task/DrawSpan.cpp	Fri Jul 17 22:50:06 2009 +0900
@@ -132,67 +132,32 @@
     return hash->get(addr);
 }
 
-void
+TilePtr
 DrawSpan::set_rgb(uint32 *addr, int tag)
 {
     TilePtr tile;
 
-#if 0
-    if (isAvailableTile(addr)) {
-        return;
-    }
-#endif
 
     tile = tileList->nextTile();
+    uint32 *old_addr = tile->texture_addr;
+    smanager->dma_load(tile->pixel, (uint32)addr,
+		       sizeof(uint32)*TEXTURE_BLOCK_SIZE, tag);
     /**
      * FIFO なので、もし前のが残っていれば削除
      */
-    hash->remove(tile->texture_addr);
+
+    hash->remove(old_addr);
 
     tile->texture_addr = addr;
 
     hash->put(tile->texture_addr, tile);
-    smanager->dma_load(tile->pixel, (uint32)addr,
-                       sizeof(uint32)*TEXTURE_BLOCK_SIZE, tag);
+
+    return tile;
 }
 
-#if 0
-/**
- *
- */
-void
-DrawSpan::set_rgbs(uint32 *cur_addr, uint32 *max_addr, int wait_tag)
+uint32
+DrawSpan::get_rgb(int tx, int ty, TilePtr tile)
 {
-    uint32 curp   = (uint32)cur_addr;
-    uint32 maxp   = (uint32)max_addr;
-    uint32 startp = curp;
-    uint32 diff   = sizeof(int)*TEXTURE_BLOCK_SIZE;
-    int length = (int)maxp-(int)curp;
-
-    int cmp = (length < 0);
-
-#if 1
-    length += cmp*(-1)*length*2;
-    startp = cmp*maxp + !cmp*curp;
-#else
-    if (length < 0) {
-        length = -length;
-        startp = maxp;
-    }
-#endif
-
-    for (int i = 0; i <= length; i += diff) {
-        set_rgb((uint32*)(startp + i), wait_tag);
-    }
-}
-#endif
-
-uint32
-DrawSpan::get_rgb(int tx, int ty, uint32 *addr)
-{
-    TilePtr tile;
-
-    tile = hash->get(addr);
     return tile->pixel[(TEXTURE_SPLIT_PIXEL)*ty+tx];
 }
 
@@ -269,10 +234,10 @@
  */
 void
 DrawSpan::updateBuffer(float zpos, int rangex, int x, int y, int tex_x, int tex_y,
-                       float normal_x, float normal_y, float normal_z, uint32 *tex_addr)
+                       float normal_x, float normal_y, float normal_z, TilePtr tile)
 {
 
-    int color = get_rgb(tex_x, tex_y, tex_addr);
+    int color = get_rgb(tex_x, tex_y, tile);
     /*下位4bitを抽出*/
     int alpha = color & 0x000F;
     /*完全に透けているか判断*/
@@ -337,15 +302,16 @@
         tex_localx = tex_xpos % TEXTURE_SPLIT_PIXEL;
         tex_localy = tex_ypos % TEXTURE_SPLIT_PIXEL;
 
-        if (!isAvailableTile(tex_addr)) {
-            set_rgb(tex_addr, wait_tag);
+	TilePtr tile;
+        if (!(tile = isAvailableTile(tex_addr))) {
+            tile = set_rgb(tex_addr, wait_tag);
             smanager->dma_wait(wait_tag);
             //return startx;
         }
 
         updateBuffer(zpos, rangex, localx, localy,
                      tex_localx, tex_localy,
-                     normal_x,normal_y,normal_z,tex_addr);
+                     normal_x,normal_y,normal_z,tile);
     }
 
     return -1;
@@ -438,118 +404,21 @@
             tex_localx = tex_xpos % TEXTURE_SPLIT_PIXEL;
             tex_localy = tex_ypos % TEXTURE_SPLIT_PIXEL;
 
-            if (!isAvailableTile(tex_addr)) {
-#if 0
-                // span が必要とするであろう tile を予想紙
-                // set_rgbs で複数同時に load しようとしている図
-                // まあ上手くいかなかったんだけど。。
-                tex_x = tex1*(x_len-1-js)/(x_len-1) + tex2*js/(x_len-1);
-                if (tex_x > 1) tex_x = 1;
-                if (tex_x < 0) tex_x = 0;
-                tex_xpos = (int)((span->tex_width-1) * tex_x);
-
-                uint32 *max_addr = getTile(tex_xpos, tex_ypos,
-                                           span->tex_width, span->tex_addr);
-
-                set_rgbs(tex_addr, max_addr, wait_tag);
-                return js;
-#else
-                set_rgb(tex_addr, wait_tag);
+	    TilePtr tile;
+            if (!(tile = isAvailableTile(tex_addr))) {
+                tile = set_rgb(tex_addr, wait_tag);
                 smanager->dma_wait(wait_tag);
-#endif
             }
 
             updateBuffer(tex_z, rangex, localx, localy,
                          tex_localx, tex_localy,
-                         normal_x, normal_y, normal_z,tex_addr);
+                         normal_x, normal_y, normal_z, tile);
         }
     }
 
     return ret;
 }
 
-/**
- * 長さが 1 より大きい Span の描画 (2段階目)
- *
- * 上にあるように、drawLine2 は今は動いてないです
- * 正確には、js が startx ~ endx 範囲外にあり開始されないってところ
- *
- * @param span Span
- * @param startx 描画開始範囲
- * @param endx 描画終了範囲
- * @param js 前回(drawLine1) で span のどこまで終わっているか
- */
-void
-DrawSpan::drawLine2(SpanPtr span, int startx, int endx, int js, int wait_tag)
-{
-    int x = span->x;
-    int rangex = endx - startx + 1;
-    int x_len = span->length_x;
-
-    float normal_x = span->normal_x;
-    float normal_y = span->normal_y;
-    float normal_z = span->normal_z;
-
-
-    //int js = startx;
-    int je = (x + x_len > endx) ? endx - x : x_len;
-
-    /* span->x に対応する Texture の座標 (tex_xpos, tex_ypos) */
-    int tex_xpos, tex_ypos;
-
-    // span の始点に対応する座標 (tex1, tey1)
-    float tex1 = span->tex_x1;
-    float tey1 = span->tex_y1;
-
-    // span の終点に対応する座標 (tex2, tey2)
-    float tex2 = span->tex_x2;
-    float tey2 = span->tex_y2;
-
-    // span の始点、終点に対応する z 座標
-    float zpos1 = span->start_z;
-    float zpos2 = span->end_z;
-
-    // Tile 内での座標
-    int localx, localy = getLocalY(span->y-1);
-
-    // (tex_xpos, tex_ypos) の、Tile 内(上の図参照)での座標と
-    // そのブロックのアドレス(MainMemory)
-    int tex_localx;
-    int tex_localy;
-    uint32 *tex_addr;
-
-    float tex_x, tex_y, tex_z;
-
-    smanager->dma_wait(wait_tag);
-
-    for (int j = js; j <= je; j++) {
-        localx = getLocalX(x-1+j);
-
-        tex_z = zpos1*(x_len-1-j)/(x_len-1) + zpos2*j/(x_len-1);
-
-        tex_x = tex1*(x_len-1-j)/(x_len-1) + tex2*j/(x_len-1);
-        tex_y = tey1*(x_len-1-j)/(x_len-1) + tey2*j/(x_len-1);
-        if (tex_x > 1) tex_x = 1;
-        if (tex_x < 0) tex_x = 0;
-        if (tex_y > 1) tex_y = 1;
-        if (tex_y < 0) tex_y = 0;
-        tex_xpos = (int)((span->tex_width-1) * tex_x);
-        tex_ypos = (int)((span->tex_height-1) * tex_y);
-
-        if (tex_z < zRow[localx + (rangex*localy)]) {
-            tex_addr = getTile(tex_xpos, tex_ypos,
-                               span->tex_width, span->tex_addr);
-            tex_localx = tex_xpos % TEXTURE_SPLIT_PIXEL;
-            tex_localy = tex_ypos % TEXTURE_SPLIT_PIXEL;
-
-            updateBuffer(tex_z, rangex, localx, localy,
-                         tex_localx, tex_localy,
-                         normal_x, normal_y, normal_z,tex_addr);
-        }
-    }
-}
-
-
 int
 DrawSpan::infinity_light_calc(int color,float normal_x, float normal_y, float normal_z)
 {
@@ -599,10 +468,6 @@
         &DrawSpan::drawDot1, &DrawSpan::drawLine1
     };
 
-    void (DrawSpan::*drawFunc2[2])(SpanPtr, int, int, int, int) = {
-        &DrawSpan::drawDot2, &DrawSpan::drawLine2
-    };
-
     uint32 display   = smanager->get_param(0);
     int screen_width = smanager->get_param(1);
     int rangex_start = smanager->get_param(2);
@@ -657,10 +522,6 @@
                     span, rangex_start, rangex_end, tl_tag[tl_tag_flg1]);
             next_span = span;
 
-            (this->*drawFunc2[(resume_span->length_x != 1)])(
-                resume_span, rangex_start, rangex_end, resume_span_x,
-                tl_tag[tl_tag_flg2]);
-
             resume_span = next_span;
             resume_span_x = next_span_x;
 
--- a/TaskManager/Test/test_render/task/DrawSpan.h	Fri Jul 17 17:16:42 2009 +0900
+++ b/TaskManager/Test/test_render/task/DrawSpan.h	Fri Jul 17 22:50:06 2009 +0900
@@ -33,16 +33,16 @@
 
     int* linebuf_init(int width, int height, int rgb);
     float* zRow_init(int width, int height);
-    void set_rgb(uint32 *addr, int wait_tag);
+    TilePtr set_rgb(uint32 *addr, int wait_tag);
     void set_rgbs(uint32 *addr, uint32 *max_addr, int wait_tag);
-    uint32 get_rgb(int tx, int ty, uint32 *addr);
+    uint32 get_rgb(int tx, int ty, TilePtr tile);
     TilePtr isAvailableTile(uint32 *addr);
     uint32* getTile(int tx, int ty, int tw, uint32 *tex_addr_top);
     int getTexBlock(int tx, int ty, int twidth);
     void writebuffer(unsigned int display, int width, int height,
 		     int screen_width);
     void updateBuffer(float zpos, int rangex, int x, int y,
-		      int tex_x, int tex_y, float normal_x, float nomral_x, float normal_z, uint32 *tex_addr);
+		      int tex_x, int tex_y, float normal_x, float nomral_x, float normal_z, TilePtr tile);
 
 
     void reboot(SpanPackPtr spack, int cur_span_x);
--- a/TaskManager/Test/test_render/task/DrawSpanRenew.cpp	Fri Jul 17 17:16:42 2009 +0900
+++ b/TaskManager/Test/test_render/task/DrawSpanRenew.cpp	Fri Jul 17 22:50:06 2009 +0900
@@ -138,12 +138,13 @@
                     tex_localx = tex_xpos % TEXTURE_SPLIT_PIXEL;
                     tex_localy = tex_ypos % TEXTURE_SPLIT_PIXEL;
 
-                    if (!isAvailableTile(tex_addr)) {
-                        set_rgb(tex_addr, 0);
+		    TilePtr tile;
+                    if (!(tile = isAvailableTile(tex_addr))) {
+                        tile = set_rgb(tex_addr, 0);
                         smanager->dma_wait(0);
                     }
 
-                    rgb = get_rgb(tex_localx, tex_localy, tex_addr);
+                    rgb = get_rgb(tex_localx, tex_localy, tile);
 
                     zRow[localx + (rangex*localy)] = zpos;
                     linebuf[localx + (rangex*localy)] = rgb;
@@ -181,21 +182,14 @@
                         tex_localx = tex_xpos % TEXTURE_SPLIT_PIXEL;
                         tex_localy = tex_ypos % TEXTURE_SPLIT_PIXEL;
 
-                        if (!isAvailableTile(tex_addr)) {
+			TilePtr tile;
+                        if (!(tile = isAvailableTile(tex_addr))) {
                             spack->info.start = t;
-#if 0
-                            set_rgbs(tex_addr,
-                                     getTile(span->tex_width-1, tex_ypos,
-                                             span->tex_width, span->tex_addr));
-                            reboot(spack, j);
-                            goto FINISH;
-#else
-                            set_rgb(tex_addr, TEX_LOAD);
+                            tile = set_rgb(tex_addr, TEX_LOAD);
                             smanager->dma_wait(TEX_LOAD);
-#endif
                         }
 
-                        rgb = get_rgb(tex_localx, tex_localy, tex_addr);
+                        rgb = get_rgb(tex_localx, tex_localy, tile);
 
                         zRow[localx + (rangex*localy)] = tex_z;
                         linebuf[localx + (rangex*localy)] = rgb;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/test_render/title.cpp	Fri Jul 17 22:50:06 2009 +0900
@@ -0,0 +1,28 @@
+#include "SceneGraphRoot.h"
+#include "vacuum.h"
+#include "SGList.h"
+
+void
+title_collision(SceneGraphPtr node, int w, int h,SceneGraphPtr tree)
+{
+  
+  Pad *pad = sgroot->getController();
+  
+  if(pad->start.isPush()) {
+    
+    SceneGraphPtr vacuum;
+    SceneGraphPtr back = sgroot->createSceneGraph(); 
+
+    vacuum = sgroot->createSceneGraph(BIGCUBE);
+    vacuum->xyz[0] = w/2;
+    vacuum->xyz[1] = h*0.8;
+    vacuum->set_move_collision(vacuum_move, vacuum_coll);
+    
+    back->addChild(vacuum);
+    
+    add_cubecollision_object(REDCUBE,vacuum,w,h);
+    
+    sgroot->setSceneData(back);
+      
+  }
+}
--- a/TaskManager/Test/test_render/vacuum.cpp	Fri Jul 17 17:16:42 2009 +0900
+++ b/TaskManager/Test/test_render/vacuum.cpp	Fri Jul 17 22:50:06 2009 +0900
@@ -1,220 +1,174 @@
 #include <math.h>
+#include "vacuum.h"
 #include "SceneGraphRoot.h"
 #include "SGList.h"
+#define ENCOUNT 55
+using namespace std;
 
-static void cube_move_left(SceneGraphPtr node, int screen_w, int screen_h);
-static void cube_move_right(SceneGraphPtr node, int screen_w, int screen_h);
-static void cube_move_idle(SceneGraphPtr node, int screen_w, int screen_h);
-static void cube_collision(SceneGraphPtr node, int screen_w, int screen_h,
-			   SceneGraphPtr tree);
-static void cube_split(SceneGraphPtr root);
+static float vacuum_speed = 10.0f;
+
 
-static void vacuum_move(SceneGraphPtr node, int w, int h);
-//static void vacuum_coll(SceneGraphPtr node, int w, int h);
+/*オブジェクト毎にファイルを分けてみた
+ *
+ *
+ */
 
-static float vacuum_speed = 3.0f;
+
 
-static void
-cube_move_left(SceneGraphPtr node, int screen_w, int screen_h)
+void
+no_move_idle(SceneGraphPtr node, int screen_w, int screen_h)
 {
-    node->xyz[0] -= node->stack_xyz[0];
-#if 0
-    node->xyz[1] -= node->stack_xyz[0] * node->stack_xyz[1];
-    node->xyz[2] -= node->stack_xyz[0] * node->stack_xyz[2];
-#else
-    node->xyz[1] += node->stack_xyz[1];
-    //node->xyz[2] -= node->stack_xyz[2];
-#endif
 
-    if (node->xyz[0] < 0) {
-	node->set_move_collision(cube_move_right, cube_collision);
-    }
-
-    if (node->xyz[1] < 0 || node->xyz[1] > screen_h) {
-	node->stack_xyz[1] = -node->stack_xyz[1];
-    }
-
-    //node->angle[0] += 2.0f;
-    //node->angle[1] += 2.0f * node->stack_xyz[1];
-    //node->angle[2] += 2.0f * node->stack_xyz[2];
-
-    if (++node->frame > 60) {
-	cube_split(node);
-    }
 }
 
-static void
-cube_move_right(SceneGraphPtr node, int screen_w, int screen_h)
+void
+no_collision_idle(SceneGraphPtr node, int screen_w, int screen_h,SceneGraphPtr tree)
 {
-    node->xyz[0] += node->stack_xyz[0];
-#if 0
-    node->xyz[1] -= node->stack_xyz[0] * node->stack_xyz[1];
-    node->xyz[2] -= node->stack_xyz[0] * node->stack_xyz[2];
-#else
-    node->xyz[1] += node->stack_xyz[1];
-#endif
-    
-    if (node->xyz[0] > screen_w) {
-	node->set_move_collision(cube_move_left, cube_collision);
-    }
 
-    if (node->xyz[1] < 0 || node->xyz[1] > screen_h) {
-	node->stack_xyz[1] = -node->stack_xyz[1];
-    }
-
-    //node->angle[0] += 2.0f;
-    //node->angle[1] += 2.0f * node->stack_xyz[1];
-    //node->angle[2] += 2.0f * node->stack_xyz[2];
-    
-    if (++node->frame > 60) {
-	cube_split(node);
-    }
 }
 
-static void
-cube_split(SceneGraphPtr root)
-{
-    SceneGraphPtr p = root->clone();
-    root->addBrother(p);
-
-    root->set_move_collision(cube_move_left, cube_collision);
-    p->set_move_collision(cube_move_right, cube_collision);
-
-    root->frame = 0;
-    p->frame = 0;
-
-    p->xyz[0] = root->xyz[0] + 2;
-    p->xyz[1] = root->xyz[1];
-    p->xyz[2] = root->xyz[2];
-
-    p->stack_xyz[0] = 2.0f;
-    p->stack_xyz[1] = random()%3-1;
-    p->stack_xyz[2] = random()%3-1;
-
-    root->xyz[0] -= 2;
-    root->stack_xyz[0] = 2.0f;
-    root->stack_xyz[1] = random()%3-1;
-    root->stack_xyz[2] = 0.0f;
-    //root->stack_xyz[2] = random()%3-1;
-}
-
-
-static void
-cube_move_idle(SceneGraphPtr node, int screen_w, int screen_h)
+void
+vacuum_coll(SceneGraphPtr node, int screen_w, int screen_h,
+	    SceneGraphPtr tree)
 {
     Pad *pad = sgroot->getController();
 
-    if (pad->circle.isPush()) {
-	cube_split(node);
+    if(node->frame%ENCOUNT == ENCOUNT-1) {
+      if(random()%2) {
+      add_cubecollision_object(REDCUBE,node,screen_w,screen_h);
+      }
+      else {
+      add_cubecollision_object(ENEMY,node,screen_w,screen_h);
+      }
+    }
+
+    if (pad->cross.isHold()) {
+      SceneGraphIteratorPtr it = sgroot->getIterator(tree);
+      collision_red(it,node);
+      it = sgroot->getIterator(tree);
+      collision_purple(it,node,screen_w,screen_h);
+    }
+
+    else if(pad->circle.isHold()) {
+      SceneGraphIteratorPtr it = sgroot->getIterator(tree);
+      lock_attack(node,it);
+    }
+
+}
+
+void
+lock_attack(SceneGraphPtr node,SceneGraphIteratorPtr it)
+{
+
+  SceneGraphPtr enemy;
+  SceneGraphPtr near_enemy = NULL;
+  float dx,dy,r,range = 100;
+  // Pad *pad = sgroot->getController();
+  
+  for(;it->hasNext(ENEMY);) {
+
+      it->next(ENEMY);
+      enemy = it->get();
+      dx = enemy->xyz[0] - node->xyz[0];
+      dy = enemy->xyz[1] - node->xyz[1];
+      r = sqrt(dx*dx+dy*dy);
+      
+      if(range > r && enemy->stack_xyz[2] == 0) {
+	range = r;
+	near_enemy = enemy;
+      }
+  }
+
+
+  if(near_enemy != NULL) {
+    /*stack_xyz[2]をlockonフラグとして使うかな?*/
+    SceneGraphPtr lockon;
+    SceneGraphPtr near_enemy_common_move = near_enemy->parent; 
+    near_enemy->stack_xyz[2] = 1;
+    lockon = sgroot->createSceneGraph(LOCK);
+    lockon->set_move_collision(no_move_idle,lockon_collision);
+    //near_enemy_common_move->addChild(lockon);
+    near_enemy->addChild(lockon);
+    }
+
+}
+
+void
+lockon_collision(SceneGraphPtr node,int w,int h,SceneGraphPtr tree) {
+  
+  Pad *pad = sgroot->getController();
+  SceneGraphPtr lockon_enemy = node->parent;
+
+  /* node->angle[0] = -lockon_enemy->angle[0];
+  node->angle[1] = -lockon_enemy->angle[1];
+  node->angle[2] = -lockon_enemy->angle[2];*/
+  
+  if(pad->circle.isRelease()) {
+    lockon_enemy->remove();
+  }
+  
+}
+
+
+void
+vacuum_move(SceneGraphPtr node , int w, int h)
+{
+    Pad *pad = sgroot->getController();
+    
+    if (pad->right.isHold() && w > node->xyz[0]) {
+      node->xyz[0] += vacuum_speed;
+      node->angle[0] += 2;
+    } else if (pad->left.isHold() && 0 < node->xyz[0]) {
+      node->xyz[0] -= vacuum_speed;
+      node->angle[0] -= 2;
+    }
+    
+    if (pad->up.isHold() && 0 < node->xyz[1]) {
+      node->xyz[1] -= vacuum_speed;
+      node->angle[1] -= 2;
+    } else if (pad->down.isHold() && h > node->xyz[1]) {
+      node->xyz[1] += vacuum_speed;
+      node->angle[1] += 2;
+    }
+    
+    if (pad->start.isPush()) {
+      node->xyz[0] = w/2;
+      node->xyz[1] = h*0.8;
     }
 }
 
-static void
-cube_collision(SceneGraphPtr node, int screen_w, int screen_h,
-	       SceneGraphPtr tree)
+
+
+/*cubeをランダムな場所に生成*/
+void
+add_cubecollision_object(int id,SceneGraphPtr root,int w,int h)
 {
+    SceneGraphPtr object;
+    SceneGraphPtr common_move;
+    
+    common_move = sgroot->createSceneGraph();
+    object = sgroot->createSceneGraph(id);
+    object->xyz[0] = random()%w;
+    object->xyz[1] = random()%h;
+    object->set_move_collision(no_move_idle,cube_collision);
+    //common_move->addChild(object);
+    root->addBrother(object);    
 }
 
-static void
-vacuum_coll(SceneGraphPtr node, int screen_w, int screen_h,
-	    SceneGraphPtr tree)
-{
-    SceneGraphIteratorPtr it = sgroot->getIterator();
-    //xSceneGraphPtr bigm;
-    Pad *pad = sgroot->getController();
-    float dx, dy, r;
-    float q = 0;
-
-    if (pad->cross.isRelease()) {
-	return;
-    }
-
-    return;
-
-    for (; it->hasNext(MCUBE);) {
-	it->next(MCUBE);
-	SceneGraphPtr mcube = it->get();
-	
-	dx = node->xyz[0] - mcube->xyz[0];
-	dy = node->xyz[1] - mcube->xyz[1];
-	
-	r = sqrt(dx*dx + dy*dy);
-
-	if (r >= 1) q = 300/r;
-
-	if (r < 50.0f) {
-	    mcube->remove();
-	    continue;
-	}
-
-	if (dx == 0) {
-	    if(mcube->xyz[1] > node->xyz[1]) {
-		mcube->xyz[1] -= q;
-	    } else if(mcube->xyz[1] < node->xyz[1]) {
-		mcube->xyz[1] += q;
-	    }
-	} else {
-	    if(mcube->xyz[0] > node->xyz[0]) {
-		mcube->xyz[0] -= q*cos(atan(dy/dx));
-		mcube->xyz[1] -= q*sin(atan(dy/dx));
-		mcube->stack_xyz[0] = -q*cos(atan(dy/dx));
-		mcube->stack_xyz[1] = -q*sin(atan(dy/dx));
-	    } else if(mcube->xyz[0] < mcube->xyz[0]) {
-		mcube->xyz[0] += q*cos(atan(dy/dx));
-		mcube->xyz[1] += q*sin(atan(dy/dx));
-		mcube->stack_xyz[0] = -q*cos(atan(dy/dx));
-		mcube->stack_xyz[1] = -q*sin(atan(dy/dx));
-	    }
-	}
-    }
-}
-
-static void
-vacuum_move(SceneGraphPtr node , int w, int h)
-{
-    Pad *pad = sgroot->getController();
-
-    if (pad->right.isHold()) {
-	node->xyz[0] += vacuum_speed;
-    } else if (pad->left.isHold()) {
-	node->xyz[0] -= vacuum_speed;
-    }
-
-    if (pad->up.isHold()) {
-	node->xyz[1] -= vacuum_speed;
-    } else if (pad->down.isHold()) {
-	node->xyz[1] += vacuum_speed;
-    }
-
-    if (pad->start.isPush()) {
-	node->xyz[0] = w/2;
-	node->xyz[1] = h*0.8;
-    }
-}
 
 void
-vacuum_init(int w, int h)
+vacuum_init2(int w, int h)
 {
-    SceneGraphPtr cube;
-    SceneGraphPtr vacuum;
-    SceneGraphPtr back;
+    SceneGraphPtr title;
 
-    sgroot->createFromXMLfile("xml_file/mcube.xml");
+    sgroot->createFromXMLfile("xml_file/gamecube.xml");
+    sgroot->createFromXMLfile("xml_file/title.xml");
+    sgroot->createFromXMLfile("xml_file/gameover.xml");
 
-    cube = sgroot->createSceneGraph(MCUBE);
-    cube->xyz[0] = w/2;
-    cube->xyz[1] = h/2;
-    cube->xyz[2] = 0.0f;
-    cube->set_move_collision(cube_move_idle, cube_collision);
+    title = sgroot->createSceneGraph(TITLE);
+    title->xyz[0] = w/2;
+    title->xyz[1] = h/2;
+    title->set_move_collision(no_move_idle, title_collision);
 
-    vacuum = sgroot->createSceneGraph(BIGMCUBE);
-    vacuum->xyz[0] = w/2;
-    vacuum->xyz[1] = h*0.8;
-    vacuum->set_move_collision(vacuum_move, vacuum_coll);
-
-    back = sgroot->createSceneGraph();
-    back->addChild(vacuum);
-    back->addChild(cube);
-
-    sgroot->setSceneData(back);
+    sgroot->setSceneData(title);
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/test_render/vacuum.h	Fri Jul 17 22:50:06 2009 +0900
@@ -0,0 +1,24 @@
+#include "SGList.h"
+#include "SceneGraphRoot.h"
+
+void cube_move_left(SceneGraphPtr node, int screen_w, int screen_h);
+void cube_move_right(SceneGraphPtr node, int screen_w, int screen_h);
+void no_move_idle(SceneGraphPtr node, int screen_w, int screen_h);
+void cube_collision_idle(SceneGraphPtr node, int screen_w, int screen_h,SceneGraphPtr tree);
+void cube_collision(SceneGraphPtr node, int screen_w, int screen_h,SceneGraphPtr tree);
+void cube_split(SceneGraphPtr root,SceneGraphPtr tree);
+void vacuum_move(SceneGraphPtr node, int w, int h);
+void vacuum_coll(SceneGraphPtr node, int w, int h,SceneGraphPtr tree);
+void title_idle(SceneGraphPtr node, int screen_w, int screen_h);
+void title_collision(SceneGraphPtr node, int screen_w, int screen_h,SceneGraphPtr tree);
+void scene_change(int w,int h,SceneGraphPtr node);
+void gameover_idle(SceneGraphPtr node, int screen_w, int screen_h);
+void gameover_collision(SceneGraphPtr node, int screen_w, int screen_h,SceneGraphPtr tree);
+void collision_red(SceneGraphIteratorPtr it,SceneGraphPtr node);
+void collision_purple(SceneGraphIteratorPtr it,SceneGraphPtr node,int w,int h);
+void gameover_scene(int w,int h, SceneGraphPtr node);
+void add_cubecollision_object(int id,SceneGraphPtr root,int w,int h);
+void lock_attack(SceneGraphPtr node,SceneGraphIteratorPtr it);
+void lockon_collision(SceneGraphPtr node,int w,int h,SceneGraphPtr tree);
+void cube_rotate(SceneGraphPtr node,int w,int h);
+
--- a/TaskManager/Test/test_render/viewer.cpp	Fri Jul 17 17:16:42 2009 +0900
+++ b/TaskManager/Test/test_render/viewer.cpp	Fri Jul 17 22:50:06 2009 +0900
@@ -92,10 +92,12 @@
 extern void lcube_init(int, int);
 extern void direction_init(void);
 extern void init_position(int, int);
-extern void vacuum_init(int w, int h);
+//extern void vacuum_init(int w, int h);
 extern void untitled_init(void);
 extern void boss1_init(int w, int h);
 extern void init_gaplant(int w, int h);
+extern void vacuum_init2(int w, int h);
+extern void init_miku(int w, int h);
 
 void
 Viewer::run_init(const char *xml, int sg_number)
@@ -139,7 +141,7 @@
 	init_position(this->width, this->height);
 	break;
     case 11:
-	vacuum_init(this->width, this->height);
+	//vacuum_init(this->width, this->height);
 	break;
     case 12:
         untitled_init();
@@ -150,6 +152,12 @@
     case 14:
 	init_gaplant(this->width, this->height);
 	break;
+    case 15:
+	vacuum_init2(this->width, this->height);
+	break;
+    case 16:
+	init_miku(this->width, this->height);
+	break;
     default:
 	node_init();
 	break;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/test_render/xml_file/gamecube.h	Fri Jul 17 22:50:06 2009 +0900
@@ -0,0 +1,4 @@
+#define LOCK scene_graph
+#define ENEMY scene_graph->next
+#define REDCUBE scene_graph->next->next
+#define BIGCUBE scene_graph->next->next->next
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/test_render/xml_file/gamecube.xml	Fri Jul 17 22:50:06 2009 +0900
@@ -0,0 +1,1003 @@
+<?xml version="1.0"?>
+<OBJECT-3D>
+	<surface name="LOCK" size="192" prim="Triangle" parent="NULL">
+		<coordinate>
+			4.642349 4.642349 0.000000
+			3.955683 3.955668 -0.000000
+			4.651387 3.107948 -0.000000
+			4.651387 3.107948 -0.000000
+			5.458826 3.647470 0.000000
+			4.642349 4.642349 0.000000
+			5.458826 3.647470 0.000000
+			4.651387 3.107948 -0.000000
+			5.168340 2.140790 -0.000000
+			5.168340 2.140790 -0.000000
+			6.065522 2.512421 0.000000
+			5.458826 3.647470 0.000000
+			6.065522 2.512421 0.000000
+			5.168340 2.140790 -0.000000
+			5.486679 1.091363 -0.000000
+			5.486679 1.091363 -0.000000
+			6.439124 1.280820 0.000000
+			6.065522 2.512421 0.000000
+			6.439124 1.280820 0.000000
+			5.486679 1.091363 -0.000000
+			5.594167 -0.000004 -0.000000
+			5.594167 -0.000004 -0.000000
+			6.565274 -0.000001 0.000000
+			6.439124 1.280820 0.000000
+			6.565274 -0.000001 0.000000
+			5.594167 -0.000004 -0.000000
+			5.486673 -1.091368 -0.000000
+			5.486673 -1.091368 -0.000000
+			6.439125 -1.280823 0.000000
+			6.565274 -0.000001 0.000000
+			6.439125 -1.280823 0.000000
+			5.486673 -1.091368 -0.000000
+			5.168334 -2.140791 -0.000000
+			5.168334 -2.140791 -0.000000
+			6.065522 -2.512423 0.000000
+			6.439125 -1.280823 0.000000
+			6.065522 -2.512423 0.000000
+			5.168334 -2.140791 -0.000000
+			4.651378 -3.107945 -0.000000
+			4.651378 -3.107945 -0.000000
+			5.458826 -3.647474 0.000000
+			6.065522 -2.512423 0.000000
+			5.458826 -3.647474 0.000000
+			4.651378 -3.107945 -0.000000
+			3.955672 -3.955662 -0.000000
+			3.955672 -3.955662 -0.000000
+			4.642349 -4.642354 0.000000
+			5.458826 -3.647474 0.000000
+			4.642349 -4.642354 0.000000
+			3.955672 -3.955662 -0.000000
+			3.107955 -4.651366 -0.000000
+			3.107955 -4.651366 -0.000000
+			3.647470 -5.458830 0.000000
+			4.642349 -4.642354 0.000000
+			3.647470 -5.458830 0.000000
+			3.107955 -4.651366 -0.000000
+			2.140800 -5.168321 -0.000000
+			2.140800 -5.168321 -0.000000
+			2.512419 -6.065526 0.000000
+			3.647470 -5.458830 0.000000
+			2.512419 -6.065526 0.000000
+			2.140800 -5.168321 -0.000000
+			1.091377 -5.486660 -0.000000
+			1.091377 -5.486660 -0.000000
+			1.280818 -6.439128 0.000000
+			2.512419 -6.065526 0.000000
+			1.280818 -6.439128 0.000000
+			1.091377 -5.486660 -0.000000
+			0.000013 -5.594151 -0.000000
+			0.000013 -5.594151 -0.000000
+			-0.000004 -6.565279 0.000000
+			1.280818 -6.439128 0.000000
+			-0.000004 -6.565279 0.000000
+			0.000013 -5.594151 -0.000000
+			-1.091351 -5.486662 -0.000000
+			-1.091351 -5.486662 -0.000000
+			-1.280826 -6.439127 0.000000
+			-0.000004 -6.565279 0.000000
+			-1.280826 -6.439127 0.000000
+			-1.091351 -5.486662 -0.000000
+			-2.140775 -5.168325 -0.000000
+			-2.140775 -5.168325 -0.000000
+			-2.512427 -6.065525 0.000000
+			-1.280826 -6.439127 0.000000
+			-2.512427 -6.065525 0.000000
+			-2.140775 -5.168325 -0.000000
+			-3.107931 -4.651372 -0.000000
+			-3.107931 -4.651372 -0.000000
+			-3.647477 -5.458827 0.000000
+			-2.512427 -6.065525 0.000000
+			-3.647477 -5.458827 0.000000
+			-3.107931 -4.651372 -0.000000
+			-3.955651 -3.955670 -0.000000
+			-3.955651 -3.955670 -0.000000
+			-4.642356 -4.642350 0.000000
+			-3.647477 -5.458827 0.000000
+			-4.642356 -4.642350 0.000000
+			-3.955651 -3.955670 -0.000000
+			-4.651357 -3.107953 -0.000000
+			-4.651357 -3.107953 -0.000000
+			-5.458833 -3.647470 0.000000
+			-4.642356 -4.642350 0.000000
+			-5.458833 -3.647470 0.000000
+			-4.651357 -3.107953 -0.000000
+			-5.168314 -2.140800 -0.000000
+			-5.168314 -2.140800 -0.000000
+			-6.065528 -2.512419 0.000000
+			-5.458833 -3.647470 0.000000
+			-6.065528 -2.512419 0.000000
+			-5.168314 -2.140800 -0.000000
+			-5.486657 -1.091378 -0.000000
+			-5.486657 -1.091378 -0.000000
+			-6.439129 -1.280818 0.000000
+			-6.065528 -2.512419 0.000000
+			-6.439129 -1.280818 0.000000
+			-5.486657 -1.091378 -0.000000
+			-5.594152 -0.000015 -0.000000
+			-5.594152 -0.000015 -0.000000
+			-6.565278 0.000004 0.000000
+			-6.439129 -1.280818 0.000000
+			-6.565278 0.000004 0.000000
+			-5.594152 -0.000015 -0.000000
+			-5.486666 1.091350 -0.000000
+			-5.486666 1.091350 -0.000000
+			-6.439126 1.280827 0.000000
+			-6.565278 0.000004 0.000000
+			-6.439126 1.280827 0.000000
+			-5.486666 1.091350 -0.000000
+			-5.168332 2.140775 -0.000000
+			-5.168332 2.140775 -0.000000
+			-6.065523 2.512427 0.000000
+			-6.439126 1.280827 0.000000
+			-6.065523 2.512427 0.000000
+			-5.168332 2.140775 -0.000000
+			-4.651383 3.107932 -0.000000
+			-4.651383 3.107932 -0.000000
+			-5.458825 3.647477 0.000000
+			-6.065523 2.512427 0.000000
+			-5.458825 3.647477 0.000000
+			-4.651383 3.107932 -0.000000
+			-3.955683 3.955653 -0.000000
+			-3.955683 3.955653 -0.000000
+			-4.642347 4.642355 0.000000
+			-5.458825 3.647477 0.000000
+			-4.642347 4.642355 0.000000
+			-3.955683 3.955653 -0.000000
+			-3.107969 4.651362 -0.000000
+			-3.107969 4.651362 -0.000000
+			-3.647466 5.458830 0.000000
+			-4.642347 4.642355 0.000000
+			-3.647466 5.458830 0.000000
+			-3.107969 4.651362 -0.000000
+			-2.140818 5.168323 -0.000000
+			-2.140818 5.168323 -0.000000
+			-2.512415 6.065526 0.000000
+			-3.647466 5.458830 0.000000
+			-2.512415 6.065526 0.000000
+			-2.140818 5.168323 -0.000000
+			-1.091396 5.486670 -0.000000
+			-1.091396 5.486670 -0.000000
+			-1.280814 6.439126 0.000000
+			-2.512415 6.065526 0.000000
+			-1.280814 6.439126 0.000000
+			-1.091396 5.486670 -0.000000
+			-0.000033 5.594167 -0.000000
+			-0.000033 5.594167 -0.000000
+			0.000009 6.565275 0.000000
+			-1.280814 6.439126 0.000000
+			0.000009 6.565275 0.000000
+			-0.000033 5.594167 -0.000000
+			1.091332 5.486685 -0.000000
+			1.091332 5.486685 -0.000000
+			1.280831 6.439122 0.000000
+			0.000009 6.565275 0.000000
+			1.280831 6.439122 0.000000
+			1.091332 5.486685 -0.000000
+			2.140758 5.168354 -0.000000
+			2.140758 5.168354 -0.000000
+			2.512431 6.065518 0.000000
+			1.280831 6.439122 0.000000
+			2.512431 6.065518 0.000000
+			2.140758 5.168354 -0.000000
+			3.107916 4.651407 -0.000000
+			3.107916 4.651407 -0.000000
+			3.647480 5.458819 0.000000
+			2.512431 6.065518 0.000000
+			3.955683 3.955668 -0.000000
+			4.642349 4.642349 0.000000
+			3.647480 5.458819 0.000000
+			3.647480 5.458819 0.000000
+			3.107916 4.651407 -0.000000
+			3.955683 3.955668 -0.000000
+		</coordinate>
+		<normal>
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			-0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+			-0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			0.000000 0.000000 0.000000
+		</model>
+		<texture>
+			0.766492 0.122795
+			0.749968 0.137163
+			0.704672 0.096116
+			0.704672 0.096116
+			0.718163 0.077790
+			0.766492 0.122795
+			0.718163 0.077790
+			0.704672 0.096116
+			0.645394 0.060597
+			0.645394 0.060597
+			0.655999 0.038120
+			0.718163 0.077790
+			0.655999 0.038120
+			0.645394 0.060597
+			0.574637 0.037054
+			0.574637 0.037054
+			0.580570 0.010792
+			0.655999 0.038120
+			0.580570 0.010792
+			0.574637 0.037054
+			0.495012 0.028871
+			0.495012 0.028871
+			0.495185 0.000000
+			0.580570 0.010792
+			0.495185 0.000000
+			0.495012 0.028871
+			0.409520 0.038351
+			0.409520 0.038351
+			0.403600 0.007900
+			0.495185 0.000000
+			0.403600 0.007900
+			0.409520 0.038351
+			0.320057 0.063817
+			0.320057 0.063817
+			0.308050 0.033304
+			0.403600 0.007900
+			0.308050 0.033304
+			0.320057 0.063817
+			0.234908 0.108360
+			0.234908 0.108360
+			0.216127 0.080143
+			0.308050 0.033304
+			0.216127 0.080143
+			0.234908 0.108360
+			0.159643 0.171481
+			0.159643 0.171481
+			0.134686 0.147549
+			0.216127 0.080143
+			0.134686 0.147549
+			0.159643 0.171481
+			0.099045 0.250626
+			0.099045 0.250626
+			0.069077 0.232507
+			0.134686 0.147549
+			0.069077 0.232507
+			0.099045 0.250626
+			0.056783 0.342006
+			0.056783 0.342006
+			0.023312 0.330781
+			0.069077 0.232507
+			0.023312 0.330781
+			0.056783 0.342006
+			0.035269 0.441057
+			0.035269 0.441057
+			0.000000 0.437298
+			0.023312 0.330781
+			0.000000 0.437298
+			0.035269 0.441057
+			0.035611 0.543253
+			0.035611 0.543253
+			0.000000 0.546952
+			0.000000 0.437298
+			0.000000 0.546952
+			0.035611 0.543253
+			0.056495 0.644088
+			0.056495 0.644088
+			0.022466 0.655099
+			0.000000 0.546952
+			0.022466 0.655099
+			0.056495 0.644088
+			0.098007 0.737408
+			0.098007 0.737408
+			0.067479 0.755226
+			0.022466 0.655099
+			0.067479 0.755226
+			0.098007 0.737408
+			0.157860 0.818793
+			0.157860 0.818793
+			0.132079 0.842106
+			0.067479 0.755226
+			0.132079 0.842106
+			0.157860 0.818793
+			0.231017 0.885415
+			0.231017 0.885415
+			0.211031 0.912547
+			0.132079 0.842106
+			0.211031 0.912547
+			0.231017 0.885415
+			0.312158 0.933726
+			0.312158 0.933726
+			0.298941 0.963195
+			0.211031 0.912547
+			0.298941 0.963195
+			0.312158 0.933726
+			0.398187 0.962145
+			0.398187 0.962145
+			0.391984 0.992440
+			0.298941 0.963195
+			0.391984 0.992440
+			0.398187 0.962145
+			0.484350 0.970720
+			0.484350 0.970720
+			0.484891 1.000000
+			0.391984 0.992440
+			0.484891 1.000000
+			0.484350 0.970720
+			0.565768 0.960990
+			0.565768 0.960990
+			0.571952 0.987511
+			0.484891 1.000000
+			0.571952 0.987511
+			0.565768 0.960990
+			0.636642 0.937348
+			0.636642 0.937348
+			0.647250 0.959634
+			0.571952 0.987511
+			0.647250 0.959634
+			0.636642 0.937348
+			0.695101 0.902238
+			0.695101 0.902238
+			0.708387 0.920126
+			0.647250 0.959634
+			0.708387 0.920126
+			0.695101 0.902238
+			0.739082 0.862159
+			0.739082 0.862159
+			0.755134 0.875905
+			0.708387 0.920126
+			0.755134 0.875905
+			0.739082 0.862159
+			0.772225 0.810802
+			0.772225 0.810802
+			0.792763 0.822154
+			0.755134 0.875905
+			0.792763 0.822154
+			0.772225 0.810802
+			0.803727 0.738503
+			0.803727 0.738503
+			0.830558 0.748989
+			0.792763 0.822154
+			0.830558 0.748989
+			0.803727 0.738503
+			0.829648 0.650315
+			0.829648 0.650315
+			0.861227 0.657547
+			0.830558 0.748989
+			0.861227 0.657547
+			0.829648 0.650315
+			0.842978 0.552000
+			0.842978 0.552000
+			0.876982 0.555021
+			0.861227 0.657547
+			0.876982 0.555021
+			0.842978 0.552000
+			0.845096 0.448683
+			0.845096 0.448683
+			0.879575 0.448238
+			0.876982 0.555021
+			0.879575 0.448238
+			0.845096 0.448683
+			0.839755 0.351352
+			0.839755 0.351352
+			0.871398 0.346250
+			0.879575 0.448238
+			0.871398 0.346250
+			0.839755 0.351352
+			0.818768 0.264597
+			0.818768 0.264597
+			0.845880 0.254663
+			0.871398 0.346250
+			0.845880 0.254663
+			0.818768 0.264597
+			0.784719 0.190496
+			0.784719 0.190496
+			0.806418 0.178562
+			0.845880 0.254663
+			0.749968 0.137163
+			0.766492 0.122795
+			0.806418 0.178562
+			0.806418 0.178562
+			0.784719 0.190496
+			0.749968 0.137163
+		</texture>
+		<image name="  lock.png">
+			iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAL
+			EwAACxMBAJqcGAAAAAd0SU1FB9kFBQ4eFbXZbjsAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRo
+			IEdJTVBXgQ4XAAAB/ElEQVR42u3TMQ0AAAjAMMAw/i+40UArYclyOuCtkgADgAHAAGAAMAAYAAwA
+			BgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAY
+			AAwABgADgAHAAGAAMAAYAAwABgADgAHAABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgA
+			DAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAw
+			ABgADAAGAANgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAA
+			GAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAAMAAYAA4ABwABgADAAGAADgAHAAGAAMAAY
+			AAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAA
+			MAAYAAwABgADgAHAAGAAMAAYAAwABgADgAHAAGAADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAw
+			ABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAAYAAwABgADAAGAAOAAcAA
+			YAAwABgArgXaxANuZkr2IQAAAABJRU5ErkJggg==
+		</image>
+	</surface>
+	<surface name="ENEMY" size="36" prim="Triangle" parent="NULL">
+		<coordinate>
+			3.002246 3.002246 -3.002246
+			3.002246 -3.002246 -3.002246
+			-3.002246 -3.002246 -3.002246
+			-3.002246 -3.002246 -3.002246
+			-3.002245 3.002247 -3.002246
+			3.002246 3.002246 -3.002246
+			3.002248 3.002244 3.002246
+			-3.002246 3.002246 3.002246
+			-3.002247 -3.002245 3.002246
+			-3.002247 -3.002245 3.002246
+			3.002244 -3.002248 3.002246
+			3.002248 3.002244 3.002246
+			3.002246 3.002246 -3.002246
+			3.002248 3.002244 3.002246
+			3.002244 -3.002248 3.002246
+			3.002244 -3.002248 3.002246
+			3.002246 -3.002246 -3.002246
+			3.002246 3.002246 -3.002246
+			3.002246 -3.002246 -3.002246
+			3.002244 -3.002248 3.002246
+			-3.002247 -3.002245 3.002246
+			-3.002247 -3.002245 3.002246
+			-3.002246 -3.002246 -3.002246
+			3.002246 -3.002246 -3.002246
+			-3.002246 -3.002246 -3.002246
+			-3.002247 -3.002245 3.002246
+			-3.002246 3.002246 3.002246
+			-3.002246 3.002246 3.002246
+			-3.002245 3.002247 -3.002246
+			-3.002246 -3.002246 -3.002246
+			3.002248 3.002244 3.002246
+			3.002246 3.002246 -3.002246
+			-3.002245 3.002247 -3.002246
+			-3.002245 3.002247 -3.002246
+			-3.002246 3.002246 3.002246
+			3.002248 3.002244 3.002246
+		</coordinate>
+		<normal>
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+		</normal>
+		<model>
+			0.000000 0.000000 0.000000
+		</model>
+		<texture>
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+		</texture>
+		<image name="enemy.png">
+			iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAL
+			EwAACxMBAJqcGAAAAAd0SU1FB9kFBAUsHeKbOvwAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRo
+			IEdJTVBXgQ4XAAACDUlEQVR42u3csQkAMAgAwRjcf2WzQBqbIOSuthIeO6NWLfjVtgIEAAIAAYAA
+			QAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAYKrsjfsgwVjhAoAAQAAgABAACAAEAAIAAYAA
+			QAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABA
+			ACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABIAAQAAgABAACAAGAAEAA
+			IAAQAAgABAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgABAACAAGA
+			AEAAIAAQAAgABAACAAGAAEAAIAAQAAgAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAA
+			QAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIA
+			AYAAQAAgAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgAB
+			gABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEABcZG88bAwXAAQAAgABgABAACAA
+			EAAIAAQAAgABgABAACAAEAAIAAQAAoC3DpXTBQMWxYNLAAAAAElFTkSuQmCC
+		</image>
+	</surface>
+	<surface name="REDCUBE" size="36" prim="Triangle" parent="NULL">
+		<coordinate>
+			3.022205 3.022204 -3.022205
+			3.022205 -3.022205 -3.022205
+			-3.022205 -3.022204 -3.022205
+			-3.022205 -3.022204 -3.022205
+			-3.022203 3.022205 -3.022205
+			3.022205 3.022204 -3.022205
+			3.022206 3.022203 3.022205
+			-3.022204 3.022204 3.022205
+			-3.022206 -3.022203 3.022205
+			-3.022206 -3.022203 3.022205
+			3.022203 -3.022206 3.022205
+			3.022206 3.022203 3.022205
+			3.022205 3.022204 -3.022205
+			3.022206 3.022203 3.022205
+			3.022203 -3.022206 3.022205
+			3.022203 -3.022206 3.022205
+			3.022205 -3.022205 -3.022205
+			3.022205 3.022204 -3.022205
+			3.022205 -3.022205 -3.022205
+			3.022203 -3.022206 3.022205
+			-3.022206 -3.022203 3.022205
+			-3.022206 -3.022203 3.022205
+			-3.022205 -3.022204 -3.022205
+			3.022205 -3.022205 -3.022205
+			-3.022205 -3.022204 -3.022205
+			-3.022206 -3.022203 3.022205
+			-3.022204 3.022204 3.022205
+			-3.022204 3.022204 3.022205
+			-3.022203 3.022205 -3.022205
+			-3.022205 -3.022204 -3.022205
+			3.022206 3.022203 3.022205
+			3.022205 3.022204 -3.022205
+			-3.022203 3.022205 -3.022205
+			-3.022203 3.022205 -3.022205
+			-3.022204 3.022204 3.022205
+			3.022206 3.022203 3.022205
+		</coordinate>
+		<normal>
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+		</normal>
+		<model>
+			0.000000 0.000000 0.000000
+		</model>
+		<texture>
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+		</texture>
+		<image name="rcube.png">
+			iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAL
+			EwAACxMBAJqcGAAAAAd0SU1FB9kFAwUzI3N3EXAAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRo
+			IEdJTVBXgQ4XAAACC0lEQVR42u3cMQoAIAwEQU/8/5fjF0wXcKa3OVjSmVrwr20CBAACAAGAAEAA
+			IAAQAAgABAACAAGAAEAAIAAQAAgABAACAAGAAGCq035R/pFgqsQFAAGAAEAAIAAQAAgABAACAAEg
+			ABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAA
+			QAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEgABAACAAEAAIAAQAAgABgABA
+			ACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgAB
+			gABAACAAEAAIAAQAAgABgABAACAABGACBAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgABAAC
+			AAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgA
+			BAACAAEgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAE
+			AAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACABepWyACwACAAGAAEAAIAAQAAgABAACAAGAAEAA
+			IAAQAAgABAACAAGAAEAAIAAQAAgABrgZmgX/O7XQMAAAAABJRU5ErkJggg==
+		</image>
+	</surface>
+	<surface name="BIGCUBE" size="36" prim="Triangle" parent="NULL">
+		<coordinate>
+			7.737503 7.737504 -7.737503
+			7.737503 -7.737503 -7.737503
+			-7.737503 -7.737503 -7.737503
+			-7.737503 -7.737503 -7.737503
+			-7.737503 7.737504 -7.737503
+			7.737503 7.737504 -7.737503
+			7.737503 7.737504 7.737503
+			-7.737503 7.737504 7.737503
+			-7.737503 -7.737502 7.737503
+			-7.737503 -7.737502 7.737503
+			7.737503 -7.737503 7.737503
+			7.737503 7.737504 7.737503
+			7.737503 7.737504 -7.737503
+			7.737503 7.737504 7.737503
+			7.737503 -7.737503 7.737503
+			7.737503 -7.737503 7.737503
+			7.737503 -7.737503 -7.737503
+			7.737503 7.737504 -7.737503
+			7.737503 -7.737503 -7.737503
+			7.737503 -7.737503 7.737503
+			-7.737503 -7.737502 7.737503
+			-7.737503 -7.737502 7.737503
+			-7.737503 -7.737503 -7.737503
+			7.737503 -7.737503 -7.737503
+			-7.737503 -7.737503 -7.737503
+			-7.737503 -7.737502 7.737503
+			-7.737503 7.737504 7.737503
+			-7.737503 7.737504 7.737503
+			-7.737503 7.737504 -7.737503
+			-7.737503 -7.737503 -7.737503
+			7.737503 7.737504 7.737503
+			7.737503 7.737504 -7.737503
+			-7.737503 7.737504 -7.737503
+			-7.737503 7.737504 -7.737503
+			-7.737503 7.737504 7.737503
+			7.737503 7.737504 7.737503
+		</coordinate>
+		<normal>
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			-0.000000 -1.000000 0.000000
+			-0.000000 -1.000000 0.000000
+			-0.000000 -1.000000 0.000000
+			-0.000000 -1.000000 0.000000
+			-0.000000 -1.000000 0.000000
+			-0.000000 -1.000000 0.000000
+			-1.000000 -0.000000 0.000000
+			-1.000000 -0.000000 0.000000
+			-1.000000 -0.000000 0.000000
+			-1.000000 -0.000000 0.000000
+			-1.000000 -0.000000 0.000000
+			-1.000000 -0.000000 0.000000
+			-0.000000 1.000000 0.000000
+			-0.000000 1.000000 0.000000
+			-0.000000 1.000000 0.000000
+			-0.000000 1.000000 0.000000
+			-0.000000 1.000000 0.000000
+			-0.000000 1.000000 0.000000
+		</normal>
+		<model>
+			0.000000 0.000000 0.000000
+		</model>
+		<texture>
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+		</texture>
+		<image name="cube.png">
+			iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAL
+			EwAACxMBAJqcGAAAAAd0SU1FB9kFAwUnJMO9U4YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRo
+			IEdJTVBXgQ4XAAACDElEQVR42u3asQ0AIAwDQQex/8phA2oU7lo6S680VDrwrWUCBAACAAGAAEAA
+			IAAQAAgABAACAAHACPv+3P7KMUWlXAAQAAgABIAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIA
+			AYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAE
+			AAIAAYAAQAAgABAAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQA
+			AgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgAAQgAkQAAgA
+			BAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQ
+			AAgABAACAAGAAEAAIAAQAAgABAACAAGAAEAAIAAQAAgABIAAQAAgABAACAAEAAIAAYAAQAAgABAA
+			CAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAgABAACAAEAAIAAYAAQAAg
+			ABAACAAEAAIAAYAAQAAgABAAAgABgABAACAAEAAIAAQAAgABgABAACAAEAAIAAQAAgABgABAACAA
+			EAAIAN5RaSPgAoAAQAAgABAACAAEAEMd2Z0F/1NveSwAAAAASUVORK5CYII=
+		</image>
+	</surface>
+</OBJECT-3D>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/test_render/xml_file/gameover.h	Fri Jul 17 22:50:06 2009 +0900
@@ -0,0 +1,1 @@
+#define GAMEOVER scene_graph
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/test_render/xml_file/gameover.xml	Fri Jul 17 22:50:06 2009 +0900
@@ -0,0 +1,216 @@
+<?xml version="1.0"?>
+<OBJECT-3D>
+	<surface name="GAMEOVER" size="6" prim="Triangle" parent="NULL">
+		<coordinate>
+			258.234375 258.234192 0.000000
+			-258.234192 258.234436 0.000000
+			-258.234436 -258.234375 0.000000
+			-258.234436 -258.234375 0.000000
+			258.234375 -258.234375 0.000000
+			258.234375 258.234192 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			0.000000 0.000000 0.000000
+		</model>
+		<texture>
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+		</texture>
+		<image name=" gameover.png">
+			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
+			psSECRNSTz9w4MAixz300EOp9vkf9rVstk1+frpvsGn9v2Mffvhhqukq+99jAaCSqlGjRkYtSMeN
+			GxcLFiyo9Ot10kknRf369UucbuHChfHmm2/GsmXL4uWXXy5x+vz8/Bg8eHC5rMPChQtj8uTJRY6v
+			U6dOnHbaaUWOb9myZbEt0zdv3hx33323gyBLTZo0yejNkNtvvz0ny73jjjtST3vYYYdF48aNdzju
+			66+/jhdeeCFVOaecckpUqZLZn9C0oeH999+PWbNm2aF2YO3atamm+/bbb20sASBzhx9+eOpOcrZu
+			3Ro33HDDTrFeaW/Vb3vrvzI+BrjtttuKHV/cLeGzzz672CuwCRMmxDfffOMgyNKRRx6Z+qS4ePHi
+			Ul/9/2Dq1KmpH91UqVIljjjiiFJfebds2TKjfiTat2+fOhy5+i9agwYNcnqnQABguyuEtN544434
+			7LPPKv06NW/ePI477riMA8DEiRNTPYfs2rVrdO3atVzW5fnnny/2G/D7779/9OrVa7t/r1atWowY
+			MaJU4YLiZdLpz/PPPx//t1fZ0issLIznnnsuJ/V86qmnYtWqVanKyaQ3zLRX/1u2bImHHnrIzlTK
+			fWz69Ok2lgCQuZ/97Gepp502bdpOsU6DBw9O1ZnRggUL4t133/3xv5cvXx5Tp06tVHcBkiQpsUHk
+			jp7z9+/fP5o3b17kPO+//36l+D3HjRsXSZKUeqgIxTWu/Klc3+KePXt26mm7dOlS5LgNGzakvvN1
+			8sknp27wmPYx2QsvvBBLliyxX+1Aq1atom/fvqkC4fjx453MBIDM7b333rtcACjuuXhRV//F/duO
+			nHrqqakbOOXij9n69euLHN+vX7/tulotqfFfrp5H78722muvMjlh57q8Nm3aFDs+7S34unXrpurt
+			8NBDD4327dunKtPt/x1r2bJlPPnkk1GjRo0Sp33ooYeioKDARitBvk2Q+R+HbS1cuDCjsvfZZ5+M
+			Gw79VHG3v3fkoIMOSn1X49FHH93u35588sm44447Sjy5N2vWLI477rjUH1YpjRUrVsTDDz8cZ555
+			5o537Pz8GDFiRFx++eUREXHggQfGz3/+8yLLW7VqVTz44IN2/hz8kU7rq6++yumyMymvVatWxY6f
+			Pn16fPrpp6lO2kOGDImHH364xGnSWLlyZerX3HYlTZs23W5bV6tWLerWrRsdOnSIo48+OgYOHBh1
+			69YtsawlS5bExRdf7GDMgE4RthnSdtOZJEnGvf6tXbu23D/xeuONN6b+jGZRZTz//PNl2v1mNh2G
+			lNRz25dffvljRyp33nlnsdPefPPNZd65yu7wKeBMPjGdTVfZxQ1NmzZNvexVq1aVWN6f//znVGVt
+			3rw5adq0aZHl5OfnJ0uXLk1V1p133llhnWiVxX5V3latWpUccsghzmM6AspeJp2YZNuBSbnd4snP
+			j1NPPTXr2/+ZPgbo27dv6la6pfXee+/FG2+8UezVaL9+/aJevXrFXoElSeL2fwUcO6tXr87psjMp
+			L009H3jggVTPvPPz84v9tO9xxx2X+st0bv9nb+7cuXHYYYfF22+/bWOkJACU9tZJBTeKKcmvf/3r
+			1J307Oj2/7aPATZv3lxiGZl0NpQLJZ24f//738ewYcOK/R783//+95g3b56deSdXXAdRP5Xm094L
+			Fy6MV155JVV5xQXMtLf/58+fn9WXDnd3S5YsiYsuuii6du0ac+bMsUEEgNIprnHZT5XX1W620rbM
+			//jjj+Ojjz4q9k7HlClTcrrMXHjssceK/Yxrr169YvTo0cWW4dW/ijl2SuqxMVP16tVLPe26dety
+			ekV+yCGHRMeOHbf79zp16qRqtR4Rcf/999uBMjRz5sw45phj4vrrr49NmzbZIAJA6a1Zs2aXCAAN
+			GzaME088sdRX/9uebNM47LDDdvjHsCxs3Lgx7rnnnmKnKe7Vv8WLF++Wja7KStpe2soiAGRS3vff
+			f59quieeeCL1tDu60u/fv3/UqlWrxHmTJIkHHnjADpShbt26xezZs+Oee+5J1UAQAaBEX3zxRepp
+			27ZtW2nXY9CgQbHHHnukvpIuSdrHAOV9F+DOO+/M6Pbvtu66667Ufb+XlzPOOCPy8vJKPVSETFri
+			//Q1zdLK5A2EtL0Grl27NiZOnJh1AEh7+3/q1Kll/trazrxfFXsSq1Ilhg8fHq+++mqRXTwjAKT2
+			+eefp562Z8+elXY90p6E33///Zg7d26J061cuTJefPHFVGUOHTq01K87prVo0aJ45plnMp5v06ZN
+			+v3PscWLF6eeNpuv6eWqvEzqmfYxwN577/0PXQy3aNEidVfBGv/l5vd/6qmnUl/0IAAUeUIsqwBQ
+			p06dHabqM844I6fr0Llz5/inf/qnVNO+8sor0b59+1RD2u4127RpE0cffXS5/WbZtOKfMGFCLF26
+			1A6fQ8W1IynrAJBJV9Qff/xx6mmnTp2aOjBse8V/yimnpOp9c+3atRl9zXBXtO3diapVq0aDBg2i
+			Z8+e8V//9V8Zvd3Rs2fPuOKKKxyIGfJO5DZD7969U793umnTpqRFixalXuawYcNy+h7u1VdfnVS0
+			+++/v0z7Adh2yMvLSz755JOM6nfEEUeUWX3Kq8zKNvTv3z/1ehYUFCR5eXm5eZ+5SpXkiy++SL3s
+			fv36ZVT+VVddlarc5cuXJ9WqVUsiInn33XdTzXPvvfeWat0r836Vi7q1bNky9bZMkiTZsmVL0rVr
+			V+cy/QBkZ8aMGakb/lSrVq3ELmbL/bZOlSpZfas81/r375/6q4qlTrAZvss/e/ZsHwspA9OmTUv9
+			amybNm3iqKOOyslyjz766BJ79/tBYWFhxr992lv0jRo1iuOPPz7222+/6N69u9v/OfDVV1/Fcccd
+			l/rRbNWqVeOmm26y4TwCyM769esz+rLYyJEjo1mzZpWm/r17947WrVtXeD1q164dAwYMKLfljRs3
+			LvXrXV79KxtLly6Nt956K/X05557bk6Wm0k5b775Zixbtiyj8ufPn19sp1PbGjp0aOoAvmjRonj5
+			5ZftOCVYvnx5nH766anDZa9evaJ37942nACQnUxSecOGDeO+++6rNC1ky7MFfmWqy8qVK1N9AWzl
+			ypU+t1qG0rxS+oOBAweW+i5A7969o3///qmnT/s6a7Z/E0444YTUH99K29sgEa+99lpG3+u47LLL
+			bLSUPA/JwTPl6667LutnmrlqA1C3bt3k+++/TyqLwsLCpG3btuX2HPOggw4qsYwbb7yxQp6r7g5t
+			ACIiadiwYbJ+/frU6ztnzpykQYMGWS2rcePGyfz581Mva926dVkvq0GDBsmGDRtyenx06NChUjxn
+			j0rcBmDboW3btsnGjRtTl3vUUUc5n2kDkEUiSpKME+Qf//jHGD9+fKrPVZaVf/mXf0nV8Uh5ycvL
+			S301lAuzZs0qtjvVJEnijjvusIOXoRUrVpTYOdO2OnfuHM8++2zGHbnsueee8dxzz0WHDh1Sz3P3
+			3XfHd999l9V6fffddzntNGrGjBnxySef2GEysGjRoozuzl5yySU2mjsA2d8FmDFjRsapfuHChcmZ
+			Z57545foyvMOwCuvvJJUNp988km5XikMGjQoWbly5Q6Hp59+usKuqirCZZddViHHTpMmTTL6qmaS
+			JMmCBQuSY445JlX5ffr0ST7//POMvxRX2i8QnnDCCTn7bc4+++xyvcquiP2qLI6jdu3aJZs3b05d
+			do8ePZzPih4EgOKGjh07ZvSJ059+jnbcuHHJ4MGDk65duyatW7dOatSokeTn5yd77rln0rFjx+SE
+			E05IrrrqqoweNxR3YBQWFqYq44orrij1tjn99NNT17lnz5471W1MAaD0wznnnJNVnadNm5b827/9
+			W9KtW7ekWbNmSbVq1ZLmzZsn3bt3T84///ysQnmSJMmIESNKvU75+fnJkiVLSv27bNiwIalfv74A
+			kOVx/de//jV12RMnTnQuEwCyHwYNGpT6xFqR3+P+y1/+krqMzp07l3q77Lnnnqmf9d51110CwG4W
+			ACIiefrppyvFMfPUU0/lbJ1uuOGGUtfn0UcfLfd9dVcKAPvuu2+yZcuW1O2QDjjgAOcybQCy88gj
+			j8SFF15Y6euZ9ln7zJkzU3X9W5LVq1fH5MmTU007cODACm0bQcU49dRTY9asWRVah5kzZ8bgwYNz
+			Vl4u3tv37n/pLFiwINUbPz+0QxozZoyNtgMCQEo33nhjnHfeeVl/dKasHXnkkbHvvvummjbtgZPG
+			ww8/nGq6+vXrx0knnWRH2s2sXbs2+vTpE7Nnz66Q5c+aNSt+/etfZ/SVwpLMnj27VOvzzTffxPPP
+			P2/nKKWrrroq9d/jQYMGxT777GOjCQDZu+WWW+Lkk0/OuhVxWUr7vn1hYWE88sgjOVvupEmTUn8+
+			uTL1T0D5WbJkSfziF7+IF154oVyX+8ILL0SvXr1iyZIlOS+7NFfwDz30UKX7AuXOaN68ean7nKha
+			tWqMGjXKRhMASufpp5+OLl26xKRJk8p1uYWFhfHkk0/GYYcdtt24mjVrxsCBA1OV89prr2X0ueOS
+			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
+			fewgAMB2li1bFrfccktWdwEiIlauXBmDBw+O/fbbL2699dbUX61bvnx5TJgwIc4999xo3bp1HHvs
+			sTFz5swS57v11lujQ4cOcemll8aUKVPi66+/Lva1vqJs3bo1Bg4cGBdccEGRHbRs3bo1Jk6cGAcd
+			dFCMGzfOzpIDufr9doV6lPexw67hh4eQ+vSkUmrVqlX06NEjGjduHA0aNIiaNWvG2rVrY9WqVVFQ
+			UBBz5syJr776qtLUt1q1atGzZ8/o0qVLNGjQIDZu3BifffZZvPrqqznvphd2pWMHAQAAKAceAQCA
+			AAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAA
+			AAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAA
+			AAIAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACA
+			AAAACAAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAA
+			AAACAAAgAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAA
+			gAAAAAgAAIAAAAAIAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAg
+			AAAAAgAAIAAAAAIAACAAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgA
+			AIAAAAAIAACAAAAACAAAgAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAA
+			IAAAAAIAACAAAAACAAAgAAAAAgAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAI
+			AACAAAAACAAAgAAAAAgAAIAAAAAIAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIA
+			ACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAACAAAIAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAA
+			CAAAgAAAAAgAAIAAAAAIAACAAAAACAAAgAAAAAgAACAAAAACAAAgAAAAAgAAIAAAAAIAACAAAAAC
+			AABQsf4PGIoDzv6Zh0wAAAAASUVORK5CYII=
+		</image>
+	</surface>
+</OBJECT-3D>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TaskManager/Test/test_render/xml_file/title.xml	Fri Jul 17 22:50:06 2009 +0900
@@ -0,0 +1,243 @@
+<?xml version="1.0"?>
+<OBJECT-3D>
+	<surface name="TITLE" size="6" prim="Triangle" parent="NULL">
+		<coordinate>
+			258.234375 258.234192 0.000000
+			-258.234192 258.234436 0.000000
+			-258.234436 -258.234375 0.000000
+			-258.234436 -258.234375 0.000000
+			258.234375 -258.234375 0.000000
+			258.234375 258.234192 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			0.000000 0.000000 0.000000
+		</model>
+		<texture>
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+		</texture>
+		<image name="title.png">
+			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
+			AAAAAgAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABA
+			AAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAA
+			gAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAEAAAAAABAAAAEAAA
+			AAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAAB
+			AAAAEAAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAA
+			AgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAA
+			AAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAAAIAAAAgAAA
+			AAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAI
+			AAAAgAAAAAAIAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAA
+			EAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAA
+			ACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAABAAAAAAAQA
+			AABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABA
+			AAAAAAQAAABAAAAAAAQAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAA
+			gAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAEAAAAAABAAAAEAAAAAABAAAAEAAA
+			AAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAACAA
+			AAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAA
+			AgAAACAAAAAAAgAAACAAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAGjU5s2bRSnV4BAb
+			G/uP8bp162ZyvOTkZP6SACxmal+ilJJly5ZRQWgRx7UmDwB5eXkmf8vNzdU8HmBu5653WLFiBRUL
+			wKmOa+5NXVGmVlIpJbdv3/7Hv+/fvy8lJSUSEBCgqbLtwdzB4dChQ/LVV1+1mIZPXVDPcM52Qptz
+			vuOawwaAgoICqampeWRcRwwAf/rTn0z+VllZ2aI2DOqCeoZzthPanPMd1xz2EkBDFahlXAAAOK45
+			cAAwtZIN/b+pcZu6BwAAgOZ2XGvyAHD79m2pr6+3aOUJAAAAR9dcjmtNHgDq6urkzp07FlVKQxVS
+			W1vb4PRAQ5YvXy4uLi6aB54CAOBsxzV3R6is3NxcCQkJabSiGvq//Pz8BpOWOS4uLtKtWzfp06eP
+			hIeHS0BAgHh4eEh1dbUUFRXJrVu35PLly3Lt2rUmrRdfX1/p2rWrdOnSRTp27Ci+vr7i6+srIj/c
+			dFNcXCy5ubmSlZUlWVlZmusB9uXm5iaDBg2SgQMHSlBQkCilJCcnR06dOiWZmZkOV14PDw/p16+f
+			9OrVS0JDQ8XX11fq6+ultLRUcnJyJD093SHLbfhO0t1dfvrTn0q3bt0kODhYysvLJScnR7744gsp
+			LCykYRuobdu2EhMTI6GhodK2bVvx8vKSu3fvyt27d+XKlSuSnp5u0/2ckduovY9reqmmHvbt26ce
+			9otf/OKR8YYNG/bIeKmpqRYvJyYmRiUmJqr8/HxliYKCApWUlKR+/etfq4CAgB/NywgNlfHVV19V
+			e/bsUdevX1f19fUWz6u4uFjt3r1bxcfHKxcXF4vqw5xly5b9YzwXFxc1ZswYtWXLFnX16lVVU1Oj
+			lFJqxYoVNq0LvYOl62WvZfn6+qpXX31V5ebmmhz31KlTKi4uTveyjKpnFxcXNWnSJJWSkqLKysoa
+			nV9ubq5as2aNioiIsGubs8ffrWPHjmr9+vWqqKiowfFqampUSkqK6tKli03bpNZpjWwn9mhzrVu3
+			VkuWLFFpaWmN7vOKiorUrl271NChQx1yG22K45qVQ9MHgM2bNz9SATExMY+M161bt0fG27NnT6Pz
+			79Chg0pJSbGqEd+9e9cuO2MjnDx50rCd0pAhQ9SZM2caHIcA0Piy4uPj1a1btyyqg9raWvXss882
+			WQAYNGiQyb91YyoqKtTChQvt1uZs+Xf7wx/+oJYuXaoqKiosWvfy8nI1atQoAoCONjdnzhxVUlKi
+			a76fffaZCgkJcaht1J7HNacJAH/+858fqYDw8PBHxvP29n5kvI0bN5qd94ABA1ReXp7VjbiysrLZ
+			BACllLp586YKDQ21asNYtmzZP868CADal3X9+nXN9VBdXa2ioqLsHgB+/etfq+rqaqvnv2bNGru0
+			OVv+3e7fv695vcvKytTAgQMJABa2OVdXV/XBBx9YPe/c3Fw1aNAgh9lG7XVcc6oAYKuhbdu2Kicn
+			x5BG3NwCgFJK7dixQ/eGcefOnUbn3xwDgB7mDjq2sHfvXrsGgF/96leaLjc1ZtasWTZvc47WRh50
+			EZu6/EYA+PGwdu1aw+o9Ly+vwQNrU2yjzW1wiJsAbeX3v/+9dOzY0eTvlZWV8sUXX8jly5eltLRU
+			vL29JSwsTKKioqRPnz7i4uLS5Otw+fJlOXv2rNy6dUtqamrE19dXwsLCZMiQIdK1a1ez006bNk2C
+			g4Pl+++/17zcoKAg7khqIuPGjZM2bdpIUVGRzZcVGRkpf/vb30y29dLSUjly5IhkZmZKTU2NhISE
+			yMiRI6V79+4m57lmzRrZvXu3VFVVNes2d+HCBTl58qQUFhZK+/btZfTo0dKlSxeT48fGxsrkyZMl
+			JSWFRmxGfHy8LFy40Ow4x48flxnY9ngAAA3FSURBVNOnT0tVVZX85Cc/kXHjxom/v3+D44aGhsr2
+			7dtl+PDhTrmNOv1NgLYasrKyTCa41NRU1b59e5PThoaGqkWLFqkLFy402ANgqy7n+vp6dfToUfXi
+			iy+qsLAws+OOGDFCZWdnm13+1KlTbZaMGzobs2f3e3PoAbh48aJasGCBGjBggAoLC1PR0dHq7bff
+			bvSMe8yYMXa5zHHw4EGT89m0aZNq3bp1gzcKLlmyRFcvgC3/Fka1ka+++qrBLl53d3e1bt06s9Mm
+			Jyc3eQ+ArbZHI+bl4uLyj32qqXtJ4uPjH5muXbt26siRI2bLMG7cOIfaRukBaGKdO3c2+dvnn39u
+			9jnL27dvy9q1a2XdunUyY8YMmTt3rl3K7OPjI5WVlRaNe+zYMXnhhRfk0KFDJsfp1KmTVeWpqKiQ
+			zMxMycvLk4qKCnF3d5c2bdpIjx49OJVpRGJiosybN+9Hj/Pk5OTIuXPnxN/f32ybMnemaZSoqCgZ
+			NWpUg7+dOXNG5s2bJz/04D50xqCUrF69WiZOnCgjRoxocPoJEybItm3bmmWb27dvn5w/f/6R/6+t
+			rZVFixbJE088IVFRUQ1OO3bsWHFzc5O6ujo2gAY89dRT0r9/f5O/v/rqq/LJJ5888v+FhYWSkJAg
+			V65ckeDg4AanXbRokXz66adOtY3amlMHgLKyMgkMDGzwt7lz50paWprs27dPysvLTXePKCU7d+6U
+			nTt32qXMlhz8XVxcxNfXV7y8vCQ7O9vsuJ6enrrKsX//fvm3f/s3+frrr6W2tpY9lw5Xr141+Szv
+			7t27ze5cWrdubfPyTZ8+3WxAbujg/3AANRUAoqOjnbLNKaUkMTFR1q9f3+DvXl5e0rt3b7l48SIb
+			QAN+/vOfm/ytpKRENm7caPL3oqIiSUxMlFdffbXB34cPHy5eXl4Wn0A1h22UAGCFM2fOyFNPPdXg
+			b+3bt5cdO3ZITU2NnD9/Xs6fPy/p6emSnp4u33zzjRQUFDR5+f38/OSJJ56Q2NhY6dOnj3Tp0kVC
+			Q0MlJCRE3N0t+9PpvY/hyy+/lFOnTrHHsmE4MMfNzc3mZRg2bJjZMzFTO1pLhIeHO22ba+yrd336
+			9CEAmGAqMIqInDhxQioqKsxOf/DgQZPt0svLS2JiYuTYsWNOs40SAKywefNmkwHggVatWsngwYNl
+			8ODBP/r/zMxM+eSTT2TTpk3y7bff2rXcgwYNkt///vcyefJk8fDwYK9hoOXLl8uqVauavByO8Prq
+			nj172mzeD95Y6Yy+++47s7+b6nWEmL0p+8qVK41Of/nyZd3zb47bqK25OvPK7dy5Uz766CPdO8dX
+			XnlFrly5Iu+8847urnQt3NzcZM2aNZKamirTp0/n4O/E7t+/3+RlsOVd966uzrtrKSsrM/u7M3QN
+			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
+			Wb58uVy6dKnR8FVcXCwfffSRxMXFyZgxYyQ/P58dgRVc5IdrAS2Cv7+/REZGSteuXSU4OFj8/PzE
+			zc1Nqqurpbi4WG7duiWXLl2Sa9euWb2c6Oho6d27twQEBIi3t7fU1NTIvXv3JC8vTy5fviwZGRlm
+			N25fX18ZPny49OrVS/z9/aWiokJu3rwpp0+f1rRjdoQ6t7Yu0HT1HBoaKn379pWIiAgJCgoSb29v
+			UUpJeXm5lJaWSnZ2tnz77bdy48YNTWfOzUVkZKRER0dLSEiIeHp6yvfffy9Xr16Vr776yuxjcY1p
+			3bq1jBgxQnr06CF+fn5SUVEhV69elS+//NKmb7Mzsp3Yos0FBQVJTEyMhISESNu2bcXT01OKi4ul
+			sLBQrly5ImlpaewrCAAAAMAa3AQIAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAA
+			AAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAAgAAACAAAAAAAgAAACAA
+			AAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAA
+			AgAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAAAAQAAABAAAAA
+			AAQAAABAAAAAAAQAAABAAAAAAAQAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAA
+			AAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAgAAAAAAIAAAAEAAAAAABAAAAEAAAAAAB
+			AAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAAEAAAAAABAAAA
+			EAAAAAABAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAAACAAAAAAAgAA
+			ACAAAAAAAgAAACAAAACARv1/3hBrgswl0UwAAAAASUVORK5CYII=
+		</image>
+	</surface>
+</OBJECT-3D>
\ No newline at end of file