changeset 13:74dc1d5f2e47 draft

can select music
author e105711 <yomitan.ie.u-ryukyu.ac.jp>
date Thu, 07 Jun 2012 02:47:08 +0900
parents c358bb5a031b
children 1eebc1f7874d
files webGL/DrumSimulator.html webGL/music/test.json webGL/music/test2.json webGL/sound/india.wav webGL/src/Cursor.js webGL/src/Note.js webGL/src/f4notes.js webGL/src/f4xml.js webGL/src/keybord.js webGL/src/mainfunc.js webGL/src/sound.js webGL/xml/select_music.xml
diffstat 12 files changed, 653 insertions(+), 89 deletions(-) [+]
line wrap: on
line diff
--- a/webGL/DrumSimulator.html	Sun May 27 20:06:35 2012 +0900
+++ b/webGL/DrumSimulator.html	Thu Jun 07 02:47:08 2012 +0900
@@ -17,6 +17,7 @@
     <script src="src/stats.js"></script>
     <script src="src/Obj.js"></script>
     <script src="src/jquery-1.7.2.min.js"></script>
+    <script src="src/Cursor.js"></script>    
   </head> 
   <script id="vshader" type="x-shader/x-vertex">
     uniform mat4 u_modelViewProjMatrix;
@@ -67,6 +68,9 @@
 var AUTO = true;
 var notesArray = [[],[],[],[],[],[],[],[]];
 var objsArray = [];
+var musicsArray = [];
+var cursor = new Cursor();
+
 
 /* these variables are defined at const.js */
 //    var WIDTH = 1024;
@@ -81,8 +85,8 @@
     c = document.getElementById("example");
     c.width = WIDTH;
     c.height = HEIGHT;
-    var ctx = init();
-    
+    cursor.reset();
+    ctx = init();
     loop = (function(){
         nextGameTick = (new Date).getTime();
         return function(){
@@ -95,9 +99,11 @@
 	    gameRender(ctx);
         };
     })();
+
     toTitle();
     loadSounds();
-    loadNotes("music/test.json");
+    loadMusicFiles();
+//    loadNotes("music/test2.json");
 }
 
 function gameStart(){
--- a/webGL/music/test.json	Sun May 27 20:06:35 2012 +0900
+++ b/webGL/music/test.json	Thu Jun 07 02:47:08 2012 +0900
@@ -1,33 +1,35 @@
 {
+  "title":"1st thrash",
+  "filepath":"sound/BGM_cnt",
   "notes":[
-    { "time":0.0 , "lane":3 , "BPM":120 },
-    { "time":1.75 , "lane":3 , "BPM":120 },
-    { "time":2.0  , "lane":3 , "BPM":120 },
+    { "time":2.0 , "lane":3 , "BPM":120 },
     { "time":3.75 , "lane":3 , "BPM":120 },
     { "time":4.0  , "lane":3 , "BPM":120 },
-    { "time":4.25 , "lane":3 , "BPM":120 },
-    { "time":5.625 , "lane":3 , "BPM":120 },
-    { "time":5.875 , "lane":3 , "BPM":120 },
+    { "time":5.75 , "lane":3 , "BPM":120 },
     { "time":6.0  , "lane":3 , "BPM":120 },
-    { "time":7.0  , "lane":3 , "BPM":120 },
-    { "time":7.375 , "lane":3 , "BPM":120 },
-    { "time":7.75 , "lane":3 , "BPM":120 },
-    { "time":8.0 , "lane":3 , "BPM":120 },
+    { "time":6.25 , "lane":3 , "BPM":120 },
+    { "time":7.625 , "lane":3 , "BPM":120 },
+    { "time":7.875 , "lane":3 , "BPM":120 },
+    { "time":8.0  , "lane":3 , "BPM":120 },
+    { "time":9.0  , "lane":3 , "BPM":120 },
+    { "time":9.375 , "lane":3 , "BPM":120 },
     { "time":9.75 , "lane":3 , "BPM":120 },
     { "time":10.0 , "lane":3 , "BPM":120 },
     { "time":11.75 , "lane":3 , "BPM":120 },
     { "time":12.0 , "lane":3 , "BPM":120 },
-    { "time":12.25 , "lane":3 , "BPM":120 },
-    { "time":13.625 , "lane":3 , "BPM":120 },
-    { "time":13.875 , "lane":3 , "BPM":120 },
+    { "time":13.75 , "lane":3 , "BPM":120 },
     { "time":14.0 , "lane":3 , "BPM":120 },
-    { "time":15.0 , "lane":3 , "BPM":120 },
-    { "time":15.375 , "lane":3 , "BPM":120 },
-    { "time":15.75 , "lane":3 , "BPM":120 },
-    { "time":15.0 , "lane":1 , "BPM":120 },
-    { "time":15.375 , "lane":1 , "BPM":120 },
-    { "time":15.75 , "lane":1 , "BPM":120 },
+    { "time":14.25 , "lane":3 , "BPM":120 },
+    { "time":15.625 , "lane":3 , "BPM":120 },
+    { "time":15.875 , "lane":3 , "BPM":120 },
     { "time":16.0 , "lane":3 , "BPM":120 },
-    { "time":16.0 , "lane":8 , "BPM":120 }
+    { "time":17.0 , "lane":3 , "BPM":120 },
+    { "time":17.375 , "lane":3 , "BPM":120 },
+    { "time":17.75 , "lane":3 , "BPM":120 },
+    { "time":17.0 , "lane":1 , "BPM":120 },
+    { "time":17.375 , "lane":1 , "BPM":120 },
+    { "time":17.75 , "lane":1 , "BPM":120 },
+    { "time":18.0 , "lane":3 , "BPM":120 },
+    { "time":18.0 , "lane":8 , "BPM":120 }
   ]
 }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webGL/music/test2.json	Thu Jun 07 02:47:08 2012 +0900
@@ -0,0 +1,62 @@
+{
+  "title":"india",
+  "filepath":"sound/india",
+  "notes":[
+    { "time":0.0 , "lane":3 , "BPM":135 },
+    { "time":0.44444 , "lane":3 , "BPM":135 },
+    { "time":0.88889 , "lane":3 , "BPM":135 },
+    { "time":1.33333 , "lane":3 , "BPM":135 },
+    { "time":1.77778 , "lane":3 , "BPM":135 },
+    { "time":2.22222 , "lane":3 , "BPM":135 },
+    { "time":2.66667 , "lane":3 , "BPM":135 },
+    { "time":3.11111 , "lane":3 , "BPM":135 },
+    { "time":3.55556 , "lane":3 , "BPM":135 },
+    { "time":4.0 , "lane":3 , "BPM":135 },
+    { "time":4.44444 , "lane":3 , "BPM":135 },
+    { "time":4.88889 , "lane":3 , "BPM":135 },
+    { "time":5.33333 , "lane":3 , "BPM":135 },
+    { "time":5.77778 , "lane":3 , "BPM":135 },
+    { "time":6.22222 , "lane":3 , "BPM":135 },
+    { "time":6.66667 , "lane":3 , "BPM":135 },
+
+    { "time":0.0 , "lane":6 , "BPM":135 },
+    { "time":0.44444 , "lane":6 , "BPM":135 },
+    { "time":0.88889 , "lane":6 , "BPM":135 },
+    { "time":1.44444 , "lane":6 , "BPM":135 },
+    { "time":1.77778 , "lane":6 , "BPM":135 },
+    { "time":2.22222 , "lane":6 , "BPM":135 },
+    { "time":2.66667 , "lane":6 , "BPM":135 },
+    { "time":3.22222 , "lane":6 , "BPM":135 },
+    { "time":3.55556 , "lane":6 , "BPM":135 },
+    { "time":4.0 , "lane":6 , "BPM":135 },
+    { "time":4.44444 , "lane":6 , "BPM":135 },
+    { "time":5.0 , "lane":6 , "BPM":135 },
+    { "time":5.33333 , "lane":6 , "BPM":135 },
+    { "time":5.77778 , "lane":6 , "BPM":135 },
+    { "time":6.22222 , "lane":6 , "BPM":135 },
+    { "time":6.77778 , "lane":6 , "BPM":135 },
+    { "time":7.0 , "lane":5 , "BPM":135 },
+
+    { "time":0.22222 , "lane":1 , "BPM":135 },
+    { "time":0.66667 , "lane":1 , "BPM":135 },
+    { "time":1.11111 , "lane":1 , "BPM":135 },
+    { "time":1.55556 , "lane":1 , "BPM":135 },
+    { "time":2.0 , "lane":1 , "BPM":135 },
+    { "time":2.44444 , "lane":1 , "BPM":135 },
+    { "time":2.88889 , "lane":1 , "BPM":135 },
+    { "time":3.33333 , "lane":1 , "BPM":135 },
+    { "time":3.77778 , "lane":1 , "BPM":135 },
+    { "time":4.22222 , "lane":1 , "BPM":135 },
+    { "time":4.66667 , "lane":1 , "BPM":135 },
+    { "time":5.11111 , "lane":1 , "BPM":135 },
+    { "time":5.55556 , "lane":1 , "BPM":135 },
+    { "time":6.0 , "lane":1 , "BPM":135 },
+    { "time":6.44444 , "lane":1 , "BPM":135 },
+    { "time":6.88889 , "lane":1 , "BPM":135 },
+
+    { "time":7.11111 , "lane":3 , "BPM":135 },
+    { "time":7.11111 , "lane":8 , "BPM":135 }
+
+
+  ]
+}
\ No newline at end of file
Binary file webGL/sound/india.wav has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webGL/src/Cursor.js	Thu Jun 07 02:47:08 2012 +0900
@@ -0,0 +1,28 @@
+var Cursor = function(){
+    this.index = 0;
+    this.MAX = 2;
+};
+
+Cursor.prototype.getIndex = function(){
+    return this.index;
+};
+
+Cursor.prototype.next = function(){
+    if(this.index < this.MAX - 1)
+	this.index++;
+    else
+	this.index = 0;
+    console.log("now index is "+this.index);
+};
+
+Cursor.prototype.previous = function(){
+    if(this.index == 0)
+	this.index = this.MAX - 1;
+    else
+	this.index--;
+    console.log("now index is "+this.index);
+};
+
+Cursor.prototype.reset = function(){
+    this.index = 0;
+};
\ No newline at end of file
--- a/webGL/src/Note.js	Sun May 27 20:06:35 2012 +0900
+++ b/webGL/src/Note.js	Thu Jun 07 02:47:08 2012 +0900
@@ -1,8 +1,8 @@
 var Note = function(time,lane,BPM){
 
-    this.time = time + (60/BPM*4); //60/BPM*4 = Time of a bar
+    this.time = time;// + (60/BPM*4); //60/BPM*4 = Time of a bar
     this.lane = lane;
-
+    this.BPM = BPM;
 //    this.locate = - (this.time*BPM/(Interval*0.1));
     this.locate = 105.0 - ((this.time-audioBGM.currentTime)*BPM*ALPHA/Interval);
 
@@ -21,6 +21,10 @@
     return this.locate;
 };
 
+Note.prototype.getBPM = function(){
+    return this.BPM;
+};
+
 Note.prototype.updateLocate = function(BPM,sp){
     //sp:HI-SPEED,BPM:Music's BPM
     if(this.locate<105.0)
--- a/webGL/src/f4notes.js	Sun May 27 20:06:35 2012 +0900
+++ b/webGL/src/f4notes.js	Thu Jun 07 02:47:08 2012 +0900
@@ -1,5 +1,3 @@
-testBPM = 120;
-
 function drawNote(ctx){
     for(i=0;i<notesArray.length;i++){
 	for(j=0;j<notesArray[i].length;j++){
@@ -24,7 +22,8 @@
 		notesArray[i].splice(j,1);
 		continue;
 	    }
-	    note.updateLocate(testBPM,1.0);
+
+	    note.updateLocate(note.getBPM(),1.0);
 
 	    if(note.getLocate() >= 105 && note.isAlive() && AUTO){ // 105:line's locate
 		note.autoSound();
@@ -33,7 +32,6 @@
 		continue;
 	    }
 	    // judge:POOR
-
 	    if(note.isAlive() && note.getTime() + BAD < audioBGM.currentTime){
 		note.kill();
 		notesArray[i].splice(j,1);
@@ -97,11 +95,11 @@
     
 }
 
-function loadNotes(filePath){
-    console.log("loadNotes "+filePath);
+function loadNotes(filepath){
 
-    var httpObj = jQuery.get(filePath,null,function(){
+    var httpObj = jQuery.get(filepath,null,function(){
 	var JSONObj = JSON.parse(httpObj.responseText);
+	console.log("loadNotes : load '" + JSONObj.title + "'");
 
 	for(i=0;i<JSONObj.notes.length;i++){
 	    var note = JSONObj.notes[i];
@@ -110,49 +108,30 @@
     }
     );
 
-/*
-    noteAdd(0.0,3,testBPM);
-    noteAdd(1.75,3,testBPM);
-
-    noteAdd(2.0,3,testBPM);
-    noteAdd(3.75,3,testBPM);
-
-    noteAdd(4.0,3,testBPM);
-    noteAdd(4.25,3,testBPM);
-    noteAdd(5.625,3,testBPM);
-    noteAdd(5.875,3,testBPM);
-
-    noteAdd(6.0,3,testBPM);
-    noteAdd(7.0,3,testBPM);
-    noteAdd(7.375,3,testBPM);
-    noteAdd(7.75,3,testBPM);
-
-    noteAdd(8.0,3,testBPM);
-    noteAdd(9.75,3,testBPM);
-
-    noteAdd(10.0,3,testBPM);
-    noteAdd(11.75,3,testBPM);
-
-    noteAdd(12.0,3,testBPM);
-    noteAdd(12.25,3,testBPM);
-    noteAdd(13.625,3,testBPM);
-    noteAdd(13.875,3,testBPM);
-
-    noteAdd(14.0,3,testBPM);
-    noteAdd(15.0,3,testBPM);
-    noteAdd(15.375,3,testBPM);
-    noteAdd(15.75,3,testBPM);
-    noteAdd(15.0,1,testBPM);
-    noteAdd(15.375,1,testBPM);
-    noteAdd(15.75,1,testBPM);
-
-    noteAdd(16.0,3,testBPM);
-    noteAdd(16.0,8,testBPM);
-*/
-
 }
 
 
 function noteAdd(time,lane,BPM){
-    notesArray[lane-1].push(new Note(time,lane,testBPM));
+    notesArray[lane-1].push(new Note(time,lane,BPM));
+}
+
+function loadMusicFiles(){
+    musicsArray.push("music/test.json");
+    musicsArray.push("music/test2.json");
+}
+
+function loadMusics(filepath){
+
+    var httpObj = jQuery.get(filepath,null,function(){
+	var JSONObj = JSON.parse(httpObj.responseText);
+	console.log("loadNotes : load '" + JSONObj.title + "'");
+	loadBGM(JSONObj.filepath+".wav");
+	for(i=0;i<JSONObj.notes.length;i++){
+	    var note = JSONObj.notes[i];
+	    noteAdd(note.time,note.lane,note.BPM);
+	}
+	audioBGM.play();
+    }
+    );
+
 }
\ No newline at end of file
--- a/webGL/src/f4xml.js	Sun May 27 20:06:35 2012 +0900
+++ b/webGL/src/f4xml.js	Thu Jun 07 02:47:08 2012 +0900
@@ -7,6 +7,7 @@
     loadObjXml(gl,"./xml/blue_notes.xml");
     loadObjXml(gl,"./xml/pink_notes.xml"); //5
     loadObjXml(gl,"./xml/back.xml");
+    loadObjXml(gl,"./xml/select_music.xml");
     imgs.push(gl.obj["title"]);
     imgs.push(gl.obj["press"]);
     imgs.push(gl.obj["test"]);
@@ -14,6 +15,7 @@
     imgs.push(gl.obj["blue_notes"]);
     imgs.push(gl.obj["pink_notes"]);
     imgs.push(gl.obj["back"]);
+    imgs.push(gl.obj["select_music"]);
 }
 
 function loadObjXml(gl,url)
--- a/webGL/src/keybord.js	Sun May 27 20:06:35 2012 +0900
+++ b/webGL/src/keybord.js	Thu Jun 07 02:47:08 2012 +0900
@@ -14,6 +14,7 @@
 PlayingBGM = false;
 
 
+
 function keyMain(key){
     switch(key){
     case keyA:
@@ -69,9 +70,7 @@
 	if(!SpacePressed){
     	    SpacePressed = true;
 	    PlayingBGM = true;
-//	    var setTime = Interval*105.0*100.0/testBPM;
 	    AUTO = false;
-	    audioBGM.play();
 	    toPlay();
 	}
 	break;
@@ -79,14 +78,55 @@
 	if(!XPressed){
 	    XPressed = true;
 	    PlayingBGM = true;
-//	    var setTime = Interval*105.0*100.0/testBPM;
 	    AUTO = true;
-	    audioBGM.play();
 	    toPlay();	    
 	}
     }
 }
 
+function keyMenu(key){
+    switch(key){
+    case keyA: // AUTO PLAY
+	if(!APressed){
+	    APressed = true;
+	    AUTO = true;
+	    toPlay();
+	}
+
+	break;
+    case keyF: // <-
+	if(!FPressed){
+    	    FPressed = true;
+	    cursor.previous();
+	}
+	break;
+    case keyJ: // ->
+	if(!JPressed){
+    	    JPressed = true;
+	    cursor.next();
+	}
+	break;
+
+    case keySpace: // select
+	if(!SpacePressed){
+    	    SpacePressed = true;
+	    PlayingBGM = true;
+	    AUTO = false;
+	    toPlay();
+	}
+	break;
+/*
+    case keyX:
+	if(!XPressed){
+	    XPressed = true;
+	    PlayingBGM = true;
+	    AUTO = true;
+	    toPlay();	    
+	}
+*/
+    }
+}
+
 function keyPlay(key){
     switch(key){
     case keyA:
@@ -161,7 +201,8 @@
     case keySpace:
 	if(!SpacePressed){
 	    SpacePressed = true;
-	    toMain();
+	    toMenu();
+//	    toMain();
 	}
 	break;
     }
@@ -177,6 +218,9 @@
     case TITLE:
 	keyTitle(keyCode);
 	break;
+    case MENU:
+	keyMenu(keyCode);
+	break;
     case MAIN:
 	keyMain(keyCode);
 	break;
--- a/webGL/src/mainfunc.js	Sun May 27 20:06:35 2012 +0900
+++ b/webGL/src/mainfunc.js	Thu Jun 07 02:47:08 2012 +0900
@@ -22,17 +22,25 @@
     objsArray.push(new Obj(100,90,1,1));
 }
 
+function toMenu(){
+    MODE = MENU;
+    objsArray.length = 0;
+    objsArray.push(new Obj(100,7.8125,1,7)); // select music    
+}
+
 function toMain(){
     MODE = MAIN;
     objsArray.length = 0;
-    objsArray.push(new Obj(100,7.8125,1,2));
-    objsArray.push(new Obj(100,105,1,3));
+    objsArray.push(new Obj(100,7.8125,1,2)); // main mode
+    objsArray.push(new Obj(100,105,1,3)); // judge line
 }
 
 function toPlay(){
     MODE = PLAY;
     objsArray.length = 0;
-    objsArray.push(new Obj(100,7.8125,1,2));
+    objsArray.push(new Obj(100,7.8125,1,2)); // main mode
+    loadMusics(musicsArray[cursor.getIndex()]);
+//    audioBGM.play();
 }
 
 
@@ -46,7 +54,7 @@
     }
     if(MODE==PLAY){
 	drawNote(ctx);
-	PutSpriteF(ctx,100,105,1,imgs[3]); //line
+	PutSpriteF(ctx,100,105,1,imgs[3]); // line
     }
     PutSpriteF(ctx,100,70,1,imgs[6]); // background
     
@@ -55,4 +63,5 @@
 
 function playUpdate(){
     updateNote();
-}
\ No newline at end of file
+}
+
--- a/webGL/src/sound.js	Sun May 27 20:06:35 2012 +0900
+++ b/webGL/src/sound.js	Thu Jun 07 02:47:08 2012 +0900
@@ -9,7 +9,7 @@
 	ext = ".wav";
     else
 	alert("your browser does not support wav and ogg File.");
-
+    ext = ".wav";
     audioHClose = loadAudio("sound/hclose"+ext);
 //    audioHOpen = loadAudio("sound/hopen"+ext);
     audioSnare = loadAudio("sound/snare"+ext);
@@ -20,19 +20,21 @@
     audioRide = loadAudio("sound/ride"+ext);
     audioCymbal = loadAudio("sound/cymbal"+ext);
 
-    audioBGM = loadAudio("sound/BGM_cnt"+ext);
-
-
     
     isAppLoaded(); // ensure gameStart.
+}
+
+function loadBGM(filepath){
+    audioBGM = new Audio();
+    audioBGM.src = filepath;
     audioBGM.volume = 0.65;
+    
 }
 
 function loadAudio(filepath){
     audioVar = new Audio();
     filesLoaded++;
     audioVar.addEventListener('canplaythrough', isAppLoaded, false);
-//    console.log("loading...");
     audioVar.src = filepath;
     return audioVar;
 }
@@ -45,7 +47,6 @@
     }
 }
 
-
 function audioStop(audioFile){
     if(!audioFile.ended){
 	audioFile.pause();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webGL/xml/select_music.xml	Thu Jun 07 02:47:08 2012 +0900
@@ -0,0 +1,427 @@
+<?xml version="1.0"?>
+<OBJECT-3D>
+	<surface name="select_music" size="6" prim="Triangle" parent="NULL">
+		<coordinate>
+			-46.875000 -7.812500 0.000000
+			46.875 -7.812500 0.000000
+			46.87500 7.812500 0.000000
+			46.87500 7.812500 0.000000
+			-46.87500 7.812500 0.000000
+			-46.875 -7.812500 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>
+			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="select_music.png">
+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
+qXNS/dIYaQ3pUOkK6SEZGhl9mViZWplRWTZZS9nDsi2ys3LCcm5yZ+R65DbkVeSD
+5S/Iv1VgUjBXOKzQpvBVUVKRpFis+FKJVslEKVmpVWlBWUrZR7lU+ZUKs4qVygmV
+LpWfqmqqkapXVafUhNU81UrUhtRZ1G3V09UfaGA0DDSSNW5qrGiqakZrXtec05LR
+CtK6rDW5S2yXz64Lu8a0BbWJ2uXaZB28jqfOeR2yroAuUbdC94OekJ63XpXehL6E
+fqB+nf6sgbxBpEGTwQ9DTcMkww4j2MjUKNWoz5jJeLdxkfE7E0ETP5Nak3lTFdNE
+0w4zjJmF2RmzIQIvgUSoIcybq5knmd+zoLFwsCiy+GApaRlp2WaFsjK3yrEathax
+DrVusQE2BJscmxFbMdsI23Y7rJ2tXbHdJ3sF+wP2PQ7MDvscLjt8dzRwzHR8u1t8
+d8zuLid6pz1ONU4/nI2cs53JLnIuSS6PXblcA1xb3XBuTm5Vbkvuxu5n3cf3qOw5
+vmdwr9je+L0PPbg8gj1u7aPfR9zX6InxdPa87LlOtCFWEJe8CF4lXvMkQ1I+adpb
+zzvXe8pH2yfbZ8JX2zfbd9JP2y/Hb8pf1z/PfybAMKAoYCHQLLAs8EeQTdCloM1g
+5+D6EIoQz5AboUyhQaH3wvjC4sP6w6XCj4eTIzQjzkbMR1pEVkVBUXujWqNZkEtu
+b4x4zLGY0Vid2OLY5TinuMZ4xvjQ+N79kvtP7Z9IMEm4mIhOJCV2HRA4kHJgNEk/
+qfwgdNDrYFeyUPLR5PFDpoeqU6hSglKeHJY/nH342xHnI21HeY8eOjp2zPRY7XG6
+45HHh05onSg7iT4ZcLLvlNKpwlMbqd6pj9Lk0/LS1tNJ6Y8yFDIKMjZP+57uy1TN
+LM3CZoVmDZ7RPVOdzZidkD2WY5XTnIvPTc39dnbf2Yd5ynll+VT5MfnkAsuC1kLh
+wqzC9SL/ooFig+L6Ep6SUyU/znmfe16qV3q1jLcsrWz1fMD5V+Wm5c0VohV5ldjK
+2MpPF5wu9FxUv1hTxVWVVvXzUuglcrV99b0atZqayzyXM2tRtTG1U3V76p5dMbrS
+elXmank9W31aA2iIafh8zfPa4HWL612N6o1X/xL5q6SJuSm1GWre3zzf4t9CbnVt
+7b9hfqOrTautqV22/dJNgZvFt1hvZd6mun309uadhDtLHeEdM51+nWNd+7re3nW5
++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
+		</image>
+	</surface>
+	</OBJECT-3D>
\ No newline at end of file