forked from: forked from: WORLD 1-2 / KINOKO_CLICK

by smallflowergame forked from forked from: WORLD 1-2 / KINOKO_CLICK (diff: 347)
おなじみ 

スーパー○リオ WORLD:1-2 のブルブルきのこ

ただ、それだけですw

http://blog.quq.jp/
http://twitter.com/quqjp

あとで 上のコイン、?ボック をキラキラアニメするようにする
音が付いたら最高なんだけどなぁ。。。

dizgid: ひとまず。もとのをあんまりいじらないで3D化
音あるとほんとに最高
キノコクリックで..
♥0 | Line 379 | Modified 2010-08-11 18:32:40 | MIT License
play

ActionScript3 source code

/**
 * Copyright smallflowergame ( http://wonderfl.net/user/smallflowergame )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/2Gtb
 */

// forked from dizgid's forked from: WORLD 1-2 / KINOKO_CLICK
// forked from quqjp's WORLD 1-2
package 
{
       /*
       * おなじみ 
       *
       * スーパー○リオ WORLD:1-2 のブルブルきのこ
       *
       * ただ、それだけですw
       *
       * http://blog.quq.jp/
       * http://twitter.com/quqjp
       *
       * あとで 上のコイン、?ボック をキラキラアニメするようにする
       * 音が付いたら最高なんだけどなぁ。。。
       */
       /*
       dizgid: ひとまず。もとのをあんまりいじらないで3D化
       音あるとほんとに最高
       キノコクリックで..
       */
       

    import flash.display.Sprite;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.StageQuality;
    import flash.events.Event;
    import flash.geom.Matrix;
    import caurina.transitions.Tweener;
    import flash.display.StageScaleMode;
    
    [SWF(width = "512", height = "448", backgroundColor = "0x000000", frameRate = "30")]
    public class  FlashTest extends Sprite
    {
        private var canvasBitmapData:BitmapData;
        private var canvasBitmap:Bitmap;
        private var layerlist:Array = [];

        private var view3D:View3D;
        
        public function FlashTest() {
            this.stage.scaleMode = StageScaleMode.NO_SCALE;
            this.stage.quality = StageQuality.LOW;
            build();
        }
        
        public function build():void {
            
            canvasBitmapData = new BitmapData(256, 224, false, 0x000000);
            
                canvasBitmap = new Bitmap(canvasBitmapData); 
            canvasBitmap.scaleX = canvasBitmap.scaleY = 2;
            this.addChild(canvasBitmap);
                
            
        var YUKA:MyTilingBitmap    = new MyTilingBitmap(XX.yuka.w, XX.yuka.h, XX.yuka.cl, XX.yuka.map, new Matrix(1, 0, 0, 1, 0, 200), 16, 2);
        var ASSET0:MyBitmap = new MyBitmap(XX.asset0.w, XX.asset0.h, XX.asset0.cl, XX.asset0.map, new Matrix(1, 0, 0, 1, 24, 8));
        ASSET0.type = "board";
        var COIN:MyBitmap = new MyBitmap(XX.coin_f0.w, XX.coin_f0.h, XX.coin_f0.cl, XX.coin_f0.map, new Matrix(1, 0, 0, 1, 90, 16));
        COIN.type = "board";
        var QRYBO:MyBitmap = new MyBitmap(XX.tn_f0.w, XX.tn_f0.h, XX.tn_f0.cl, XX.tn_f0.map, new Matrix(1, 0, 0, 1, 90, 185));
        var BLOCKA:MyBitmap = new MyBitmap(XX.block.w, XX.block.h, XX.block.cl, XX.block.map, new Matrix(1, 0, 0, 1, 181, 184));
        BLOCKA.type = "cube";
        var BLOCKB:MyTilingBitmap = new MyTilingBitmap(XX.block.w, XX.block.h, XX.block.cl, XX.block.map, new Matrix(1, 0, 0, 1, 213, 168), 1, 2);
        var BLOCKC:MyTilingBitmap = new MyTilingBitmap(XX.block.w, XX.block.h, XX.block.cl, XX.block.map, new Matrix(1, 0, 0, 1, 245, 152), 1, 3);
        var BLOCK2:MyTilingBitmap = new MyTilingBitmap(XX.block2.w, XX.block2.h, XX.block2.cl, XX.block2.map, new Matrix(1, 0, 0, 1, 16, 24), 15, 1);
        var BLOCK3:MyTilingBitmap = new MyTilingBitmap(XX.hb_f0.w, XX.hb_f0.h, XX.hb_f0.cl, XX.hb_f0.map, new Matrix(1, 0, 0, 1, 69, 144), 3, 1);
        var BLOCK4:MyBitmap = new MyBitmap(XX.empblock.w, XX.empblock.h, XX.empblock.cl, XX.empblock.map, new Matrix(1, 0, 0, 1, 53, 144));
        BLOCK4.type = "cube";
        var BLOCK5:MyBitmap = new MyBitmap(XX.empblock.w, XX.empblock.h, XX.empblock.cl, XX.empblock.map, new Matrix(1, 0, 0, 1, 117, 144));
        BLOCK5.type = "cube";
        var BLOCK6:MyBitmap = new MyBitmap(XX.hb_f0.w, XX.hb_f0.h, XX.hb_f0.cl, XX.hb_f0.map, new Matrix(1, 0, 0, 1, 133, 144));
        BLOCK6.type = "cube";
        var KINOKO:MyBuru2Bitmap = new MyBuru2Bitmap(XX.kinoko.w, XX.kinoko.h, XX.kinoko.cl, XX.kinoko.map, new Matrix(1, 0, 0, 1, 196, 185));
        var MERIO:MyBitmap = new MyBitmap(XX.merio.w, XX.merio.h, XX.merio.cl, XX.merio.map, new Matrix(1, 0, 0, 1, 101, 128));
        KINOKO.name = "kinoko";
        MERIO.name = "merio";
            
            layerlist = [];
            layerlist.push(YUKA);
            layerlist.push(ASSET0);
            layerlist.push(COIN);
            layerlist.push(QRYBO);
            layerlist.push(BLOCKA);
            layerlist.push(BLOCKB);//
            layerlist.push(BLOCKC);
            layerlist.push(BLOCK2);
            layerlist.push(BLOCK3);
            layerlist.push(BLOCK4);
            layerlist.push(BLOCK5);
            layerlist.push(BLOCK6);
            layerlist.push(KINOKO);
            layerlist.push(MERIO);
            
            startRender()

             view3D = new View3D(canvasBitmapData);
             view3D.setupPv3d(layerlist);
             this.addChild(view3D); 
        }
        
        public function startRender():void {
            this.addEventListener(Event.ENTER_FRAME, render);
        }
        
        public function stopRender():void {
            
        }
        
        public function render(e:Event):void {
            /*
            canvasBitmapData.fillRect(canvasBitmapData.rect, 0x000000);
            
            var li:Array = layerlist;
            var l:uint = li.length;
            for (var i:uint = 0; i < l; i++) {
                li[i].render();
                canvasBitmapData.draw(li[i],li[i].matrix)
            }
            */
            view3D.render();

        }

    
    }
    
}

//________________________________________________________
// pv3d
import flash.display.Stage;
import flash.events.Event;
import flash.events.MouseEvent;
import org.papervision3d.core.proto.CameraObject3D;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.special.ParticleField;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.view.BasicView;
//import org.papervision3d.core.effects.view.ReflectionView;
import org.papervision3d.core.math.Matrix3D;
import org.papervision3d.events.InteractiveScene3DEvent;

class View3D extends BasicView{

    private var field:DisplayObject3D;
    private var _canvasBitmapData:BitmapData;
    public function View3D(canvasBitmapData:BitmapData){
        _canvasBitmapData = canvasBitmapData;
    }
    public function setupPv3d(layerlist:Array):void
    {
        camera.ortho = true;
        field = new DisplayObject3D();
        //field.scale = 5.5;
        field.scale = 2.0;
        for(var i:int = 0; i < layerlist.length; i++){
            var li:MyBitmap = layerlist[i];
            var obj:DisplayObject3D = buildByType(li);
            obj.transform = toMatrix3D(li);
            field.addChild(obj);
        }
        scene.addChild(field);


        viewport.interactive = true;
        var keyObj:DisplayObject3D = field.getChildByName("kinoko");
        keyObj.material.interactive = true;
        keyObj.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onChange);

        this.addEventListener(Event.ADDED_TO_STAGE, onAddAct);
    }
    private function onAddAct(e:Event):void
    {
            var cameraOrbit:CameraOrbit = new CameraOrbit(stage, camera, field);
        cameraOrbit.start();
    }
    public function buildByType(li:MyBitmap):DisplayObject3D
    {
        var srcBmp:BitmapData = li.bitmapData;
        var type:String = li.type;
        var mat:BitmapMaterial= new BitmapMaterial(srcBmp);
        var obj3D:DisplayObject3D;
        if(type == "cube"){
            obj3D = new Cube(new MaterialsList({all : mat}), srcBmp.width, srcBmp.height, srcBmp.width);
        }else if(type == "tilingCube"){
            var tempObj:Cube = new Cube(new MaterialsList({all : mat}), srcBmp.width, srcBmp.height, srcBmp.width);
            obj3D = buildTilingCube(MyTilingBitmap(li), tempObj);
            }else{
                 mat.doubleSided = true;
                obj3D = new Plane(mat, srcBmp.width, srcBmp.height);
            }
            obj3D.name = li.name;
        return obj3D;
    }
    private function buildTilingCube(li:MyTilingBitmap, tempObj:Cube):DisplayObject3D
    {
            var obj:DisplayObject3D = new DisplayObject3D();

        for(var i:int = 0; i < li.tileW; i++){
            for(var j:int = 0; j < li.tileH; j++){
                var block:DisplayObject3D = tempObj.clone();
                block.x = i * li.bitmapData.width;
                block.y = -j * li.bitmapData.height;
                obj.addChild(block);
            }
        }
            return obj;
    }

    private function toMatrix3D(li:MyBitmap):Matrix3D
    {
        var matrix:Matrix = li.matrix;
        var matrix3D:Matrix3D = new Matrix3D();
        matrix3D.n14 = matrix.tx + li.bitmapData.width/2 - _canvasBitmapData.width/2;
        matrix3D.n24 = -(matrix.ty + li.bitmapData.height/2 - _canvasBitmapData.height/2);
        return matrix3D;
    }
    public function render():void
    {
        //field.yaw(0.5);
        singleRender();
    }
    private function onChange(e:Event):void
    {
        camera.ortho = !camera.ortho;
                field.scale = camera.ortho ? 2.0 : 5.5;
    }
}

class CameraOrbit
{
    private var _camera:CameraObject3D;
    private var _target:DisplayObject3D;
    private var _stage:Stage;
    
    private var isOribiting:Boolean;
    private var cameraPitch:Number = 90;
    private var cameraYaw:Number = 270;
    private var previousMouseX:Number;
    private var previousMouseY:Number;
    
    private var mouseDown:Boolean;
    
    public function CameraOrbit(stage:Stage, camera:CameraObject3D, target:DisplayObject3D)
    {
        _camera = camera;
        _target = target;
        _stage = stage;
    }

    public function start():void
    {
        _stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
        _stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
        _stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
    }
    
    private function onMouseDown(event:MouseEvent):void
    {
        isOribiting = true;
        previousMouseX = event.stageX;
        previousMouseY = event.stageY;
    }

    private function onMouseUp(event:MouseEvent):void
    {
        isOribiting = false;
    }

    private function onMouseMove(event:MouseEvent):void
    {
        var differenceX:Number = event.stageX - previousMouseX;
        var differenceY:Number = event.stageY - previousMouseY;

        if(isOribiting)
        {
            //cameraPitch += differenceY;
            cameraPitch = 90;
            cameraYaw += differenceX;

            cameraPitch %= 360;
            cameraYaw %= 360;

            cameraPitch = cameraPitch > 0 ? cameraPitch : 0.0001;
            cameraPitch = cameraPitch < 90 ? cameraPitch : 89.9999;

            previousMouseX = event.stageX;
            previousMouseY = event.stageY;

            _camera.orbit(cameraPitch, cameraYaw, true, _target);
        }
    }

}
//________________________________________________________
// 


import flash.display.Bitmap;
import flash.display.BitmapData;
import adobe.utils.CustomActions;
import flash.display.Graphics;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Matrix;

//基本Bitmap
class MyBitmap extends Bitmap
{
            
    public var sizew:uint;
    public var sizeh:uint;
    public var colorlist:Array;
    public var map:Array;
    public var matrix:Matrix;

    public var type:String = "Plane";
            
    public function MyBitmap(sizew:uint, sizeh:uint, colorlist:Array, map:Array, matrix:Matrix) {
        this.sizew = sizew;
        this.sizeh = sizeh;
        this.colorlist = colorlist;
        this.map = map;
        this.matrix = matrix;
        makeBitmapData();
        this.build();
    }
            
    public function makeBitmapData():void {
        this.bitmapData = new BitmapData(this.sizew, this.sizeh, true, 0x00000000);        
    }        
            
    public function build():void {
        this.bitmapData.unlock();
        var cli:Array = this.colorlist;
        var li:Array = this.map;
        var l:uint = li.length;
        for (var i:uint = 0; i < l; i++) {
            var x:uint = i - (Math.floor(i / sizew) * sizew);
            var y:uint = Math.floor(i / sizew);
            if (li[i] != 0) this.bitmapData.setPixel32(x, y, cli[li[i]]);
        }
        this.bitmapData.lock();
    }
        
    public function render():void {
            
    }
        
}

//ぶるるBitmap
class MyBuru2Bitmap extends MyBitmap
{
    public function MyBuru2Bitmap(sizew:uint, sizeh:uint, colorlist:Array, map:Array , matrix:Matrix) {
        super(sizew, sizeh, colorlist, map, matrix);
    }
    
    private var flg:Boolean = false;
    
    public override function render():void {
        flg ? this.matrix.tx -= 2 : this.matrix.tx += 2;
        flg = !flg;
    }
    
}

//タイリングBitmap
class MyTilingBitmap extends MyBitmap
{
    private var tilewc:uint;
    private var tilehc:uint;
    
    public function MyTilingBitmap(sizew:uint, sizeh:uint, colorlist:Array, map:Array , matrix:Matrix, tilewc:uint = 1, tilehc:uint = 1) {

        this.tilewc = tilewc;
        this.tilehc = tilehc;
        super(sizew, sizeh, colorlist, map, matrix);

        super.type = "tilingCube";
    }
    public function get tileW():uint{ return tilewc };
    public function get tileH():uint{ return tilehc };
/*    
    public override function makeBitmapData():void {
        this.bitmapData = new BitmapData(this.sizew * tilewc, this.sizeh * tilehc, true, 0x00000000);
    }

    public override function build():void{
        super.build();
        
        if(tilewc>1){
            var ma:Matrix = new Matrix();
            ma.translate(this.sizew,0)
            this.bitmapData.draw(this, ma)    //?
        }
        
        if(tilehc>1){
            ma = new Matrix();
            ma.translate(0,this.sizeh)
            this.bitmapData.draw(this, ma)    //?
        }
    }
*/    
}

//アニメBitmap
//未完成
/*class MyAnimBitmap extends Bitmap
{
    public var sizew:uint;
    public var sizeh:uint;
    public var matrix:Matrix;
    
    private var framlist:Array;
    private var frmcnt:uint = 0;
    private var frmcntmax:uint = 0;

    public var name:String;
        
    public function MyAnimBitmap(sizew:uint, sizeh:uint, matrix:Matrix) {
        this.sizew = sizew;
        this.sizeh = sizeh;
        this.matrix = matrix;
        framlist = [];
        makeBitmapData();
        this.build();
    }
        
    public function makeBitmapData() {
        this.bitmapData = new BitmapData(this.sizew, this.sizeh, true, 0x00000000);        
    }
    
    public function addFrame(param:MyBitmap) {
        framlist.push(param);
        frmcntmax = framlist.length;
    }
        
    public function build() {
        this.bitmapData.unlock();
        this.bitmapData.lock();
    }
        
    public function render() {
    }
}*/


//data
class XX 
{

static public var kinoko:Object = {
w:16,
h:16,
map:[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,0,0,0,0,0,1,1,1,1,1,1,1,2,2,2,1,1,0,0,0,1,1,2,2,2,1,1,1,1,1,1,1,1,1,0,0,1,2,2,2,2,2,1,1,1,1,1,1,1,1,0,1,1,2,2,2,2,2,1,1,1,1,1,2,2,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,2,1,1,1,1,2,2,2,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,2,2,2,3,3,3,3,3,3,2,2,2,1,0,0,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,3,3,3,3,3,3,1,3,0,0,0,0,0,0,0,0,3,3,3,3,3,3,1,3,0,0,0,0,0,0,0,0,0,3,3,3,3,1,3,0,0,0,0,0],
cl:[0xFFff0000, 0xFFffa000, 0xFFe05000, 0xFFffffff]
};

static public var merio:Object = {
w:16,
h:16,
map:[0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,2,2,2,3,3,2,3,0,0,0,0,0,0,0,0,2,3,2,3,3,3,2,3,3,3,0,0,0,0,0,0,2,3,2,2,3,3,3,2,3,3,3,0,0,0,0,0,2,2,3,3,3,3,2,2,2,2,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,2,2,1,2,2,2,0,0,0,0,0,0,0,0,0,2,2,2,1,2,2,1,2,2,2,0,0,0,0,0,2,2,2,2,1,1,1,1,2,2,2,2,0,0,0,0,3,3,2,1,3,1,1,3,1,2,3,3,0,0,0,0,3,3,3,1,1,1,1,1,1,3,3,3,0,0,0,0,3,3,1,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,2,2,2,0,0,0,0,2,2,2,0,0,0,0,0,2,2,2,2,0,0,0,0,2,2,2,2,0,0,0],
cl:[0xFFff0000, 0xFFe05000, 0xFF888800, 0xFFffa000]
};

static public var coin_f0:Object = {
w:5,
h:8,
map:[0,1,1,2,0,1,1,1,1,2,1,1,1,1,2,1,1,1,1,2,1,1,1,1,2,1,1,1,1,2,2,1,1,2,3,0,2,2,3,0],
cl:[0xFFff0000, 0xFFffa000, 0xFF0, 0xFFc07000]
};

static public var coin_f1:Object = {
w:5,
h:8,
map:[0,1,1,2,0,1,1,1,1,2,1,1,1,1,2,1,1,1,1,2,1,1,1,1,2,1,1,1,1,2,2,1,1,2,1,0,2,2,1,0],
cl:[0xFFff0000, 0xFFc07000, 0xFF0]
};

static public var coin_f2:Object = {
w:5,
h:8,
map:[0,1,1,2,0,1,1,1,1,2,1,1,1,1,2,1,1,1,1,2,1,1,1,1,2,1,1,1,1,2,2,1,1,2,3,0,2,2,3,0],
cl:[0xFFff0000,0xFF784000,0xFF0,0xFFc07000]
};

static public var block:Object = {
w:16,
h:16,
map:[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,2,1,2,2,2,2,2,2,2,2,2,2,2,2,3,3,2,2,1,2,2,2,2,2,2,2,2,2,2,3,3,3,2,2,2,1,2,2,2,2,2,2,2,2,3,3,3,3,2,2,2,2,1,1,1,1,1,1,1,1,3,3,3,3,2,2,2,2,1,1,1,1,1,1,1,1,3,3,3,3,2,2,2,2,1,1,1,1,1,1,1,1,3,3,3,3,2,2,2,2,1,1,1,1,1,1,1,1,3,3,3,3,2,2,2,2,1,1,1,1,1,1,1,1,3,3,3,3,2,2,2,2,1,1,1,1,1,1,1,1,3,3,3,3,2,2,2,2,1,1,1,1,1,1,1,1,3,3,3,3,2,2,2,2,1,1,1,1,1,1,1,1,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,3,1,3,3,3,2,2,3,3,3,3,3,3,3,3,3,3,3,1,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1],
cl:[0xFFff0000, 0xFF4090c0, 0xFFa0fff0, 0xFF000000]
};

static public var block2:Object = {
w:16,
h:15,
map:[1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1],
cl:[0xFFff0000,0xFF4090c0,0xFF000000]
};

static public var empblock:Object = {
w:16,
h:16,
map:[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,1,2,2,2,2,2,2,2,2,2,2,1,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,2,1,2,2,2,2,2,2,2,2,2,2,1,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],
cl:[0xFFff0000, 0xFF4090c0, 0xFFc07000]
};

static public var yuka:Object = {
w:16,
h:16,
map:[1,2,2,2,2,1,1,2,2,2,2,2,2,2,2,3,2,1,1,1,1,3,2,1,1,1,1,1,1,1,1,3,2,1,1,1,1,3,2,1,1,1,1,1,1,1,1,3,2,1,1,1,1,3,2,1,1,1,1,1,1,1,1,3,2,3,1,1,1,3,2,1,1,1,1,1,1,1,1,3,1,3,3,3,3,1,2,1,1,1,1,1,1,1,1,3,2,2,2,2,2,3,2,1,1,1,1,1,1,1,1,3,2,1,1,1,1,3,2,1,1,1,1,1,1,1,1,3,2,1,1,1,1,3,2,1,1,1,1,1,1,1,1,3,2,1,1,1,1,3,2,1,1,1,1,1,1,1,1,3,1,1,1,1,1,3,3,3,1,1,1,1,1,1,3,2,1,1,1,1,1,3,2,2,3,3,1,1,1,1,3,2,1,1,1,1,1,3,2,1,2,2,3,3,3,3,2,1,1,1,1,1,1,3,2,1,1,1,2,2,2,3,2,1,1,1,1,1,3,3,2,1,1,1,1,1,1,3,2,1,3,3,3,3,3,1,1,3,3,3,3,3,3,1,2,3],
cl:[0xFFff0000, 0xFF4090c0, 0xFFa0fff0, 0xFF000000]
};

static public var asset0:Object = {
w:207,
h:15,
map:[1,1,0,0,0,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,0,1,1,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,0,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,1,1,1,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,1,1,0,1,0,1,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,1,1,0,0,0,1,1,0,1,1,0,1,1,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,0,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,1,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,1,1,0,0,0,1,1,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0],
cl:[0xFFff0000, 0xFFffffff]
};

static public var tn_f0:Object = {
w:33,
h:16,
map:[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,2,2,1,1,1,1,1,1,2,2,1,0,0,0,0,0,1,2,2,1,1,1,1,1,1,2,2,1,0,0,0,1,1,1,3,2,1,1,1,1,2,3,1,1,1,0,0,0,1,1,1,3,2,1,1,1,1,2,3,1,1,1,0,0,1,1,1,3,2,2,2,2,2,2,3,1,1,1,0,0,0,1,1,1,3,2,2,2,2,2,2,3,1,1,1,0,1,1,1,1,3,2,3,1,1,3,2,3,1,1,1,1,0,1,1,1,1,3,2,3,1,1,3,2,3,1,1,1,1,1,1,1,1,3,3,3,1,1,3,3,3,1,1,1,1,0,1,1,1,1,3,3,3,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,3,3,3,3,3,3,1,1,1,1,0,0,0,1,1,1,1,3,3,3,3,3,3,1,1,1,1,0,0,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,2,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,2,2,3,3,3,3,3,3,3,3,0,0,0,0,0,2,2,2,2,2,3,3,3,3,3,2,2,0,0,0,0,0,2,2,2,2,2,3,3,3,3,3,2,2,0,0,0,0,2,2,2,2,2,2,3,3,3,2,2,2,0,0,0,0,0,2,2,2,2,2,2,3,3,3,2,2,2,0,0,0,0,0,2,2,2,2,2,1,3,2,2,2,0,0,0,0,0,0,0,2,2,2,2,2,3,3,2,2,2,0,0,0,0],
cl:[0xFFff0000, 0xFF4090c0, 0xFF305080, 0xFFa0fff0]
};

static public var tn_f1:Object = {
w:33,
h:16,
map:[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,2,2,1,1,1,1,1,1,2,2,1,0,0,0,0,1,2,2,1,1,1,1,1,1,2,2,1,0,0,0,0,1,1,1,3,2,1,1,1,1,2,3,1,1,1,0,0,1,1,1,3,2,1,1,1,1,2,3,1,1,1,0,0,0,1,1,1,3,2,2,2,2,2,2,3,1,1,1,0,0,1,1,1,3,2,2,2,2,2,2,3,1,1,1,0,0,1,1,1,1,3,2,3,1,1,3,2,3,1,1,1,1,1,1,1,1,3,2,3,1,1,3,2,3,1,1,1,1,0,1,1,1,1,3,3,3,1,1,3,3,3,1,1,1,1,1,1,1,1,3,3,3,1,1,3,3,3,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,3,3,3,3,3,3,1,1,1,1,0,0,1,1,1,1,3,3,3,3,3,3,1,1,1,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,2,2,0,0,0,0,0,0,3,3,3,3,3,3,3,3,2,2,0,0,0,0,0,0,2,2,3,3,3,3,3,2,2,2,2,2,0,0,0,0,2,2,3,3,3,3,3,2,2,2,2,2,0,0,0,0,0,2,2,2,3,3,3,2,2,2,2,2,2,0,0,0,0,2,2,2,3,3,3,2,2,2,2,2,2,0,0,0,0,0,0,2,2,2,3,3,2,2,2,2,2,0,0,0,0,0,0,2,2,2,3,3,2,2,2,2,2,0,0,0],
cl:[0xFFff0000,0xFF4090c0,0xFF305080,0xFFa0fff0]
};

static public var hb_f0:Object = {
w:16,
h:16,
map:[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,1,2,3,2,2,2,2,2,2,2,2,2,2,3,2,3,1,2,2,2,2,1,1,1,1,1,2,2,2,2,2,3,1,2,2,2,1,1,3,3,3,1,1,2,2,2,2,3,1,2,2,2,1,1,3,2,2,1,1,3,2,2,2,3,1,2,2,2,1,1,3,2,2,1,1,3,2,2,2,3,1,2,2,2,2,3,3,2,1,1,1,3,2,2,2,3,1,2,2,2,2,2,2,1,1,3,3,3,2,2,2,3,1,2,2,2,2,2,2,1,1,3,2,2,2,2,2,3,1,2,2,2,2,2,2,2,3,3,2,2,2,2,2,3,1,2,2,2,2,2,2,1,1,2,2,2,2,2,2,3,1,2,2,2,2,2,2,1,1,3,2,2,2,2,2,3,1,2,3,2,2,2,2,2,3,3,2,2,2,3,2,3,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3],
cl:[0xFFff0000, 0xFFc07000, 0xFFffa000, 0xFF4090c0]
};

static public var hb:Object = {
w:16,
h:16,
map:[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,2,1,1,1,1,1,2,2,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,1,2,1,1,1,1,1,2,2,1,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],
cl:[0xFFff0000,0xFFc07000,0xFF4090c0]
};

static public var hb_f2:Object = {
w:16,
h:16,
map:[0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,1,2,3,2,2,2,2,2,2,2,2,2,2,3,2,3,1,2,2,2,2,1,1,1,1,1,2,2,2,2,2,3,1,2,2,2,1,1,3,3,3,1,1,2,2,2,2,3,1,2,2,2,1,1,3,2,2,1,1,3,2,2,2,3,1,2,2,2,1,1,3,2,2,1,1,3,2,2,2,3,1,2,2,2,2,3,3,2,1,1,1,3,2,2,2,3,1,2,2,2,2,2,2,1,1,3,3,3,2,2,2,3,1,2,2,2,2,2,2,1,1,3,2,2,2,2,2,3,1,2,2,2,2,2,2,2,3,3,2,2,2,2,2,3,1,2,2,2,2,2,2,1,1,2,2,2,2,2,2,3,1,2,2,2,2,2,2,1,1,3,2,2,2,2,2,3,1,2,3,2,2,2,2,2,3,3,2,2,2,3,2,3,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3],
cl:[0xFFff0000, 0xFFc07000, 0xFF784000, 0xFF4090c0]
};

}