 
          
        
        W=innerWidth-25;H=innerHeight-25;N=0|W/7;c.width=W;c.height=H;A=0|W/N;B=0|H/N;D=c.toDataURL();a.fillRect(0,0,W,H);I=255;setInterval(function(){for(j=0;j<B;++j)for(i=0;i<A;++i){F=2*(i+j*A);J='charCodeAt';T=I&D[J](F+1);T/=I;E=I&D[J](F);function P(i,j,k){z=-j/B+1.01;K=1+z*1.05;x=i/A+(z-1)/2;x/=K;y=-k/I+0.5-0.9*z;y/=K;a.lineTo(W/2+W*x,H/2+H*y)}a.shadowColor='rgba(0,0,12,0.5)';Q=(function(M,S,H,d,e,f){R=0|E*M+0.1;a.fillStyle="rgb("+(R+i*j)+","+R+","+R+")";a.strokeStyle='#200';a.shadowBlur=N/4;a.beginPath();P(i,j+d,E);P(i-S,j+e,E);P(i-S,j+T,H);P(i,j+f,H);a.closePath();a.fill();a.shadowBlur=0;a.stroke()});Q(0.5,0,0,0,T,0);Q(0.9,0.8,0,T,T,T);Q(2,0.8,E,0,0,T)}a.drawImage(c,0,0,W,H,-3/4,-1,W+1.5,H+6)},50);Vz1pbm5lcldpZHRoLTI1O0g9aW5uZXJIZWlnaHQtMjU7Tj0wfFcvNztjLndpZHRoPVc7Yy5oZWlnaHQ9SDtBPTB8Vy9OO0I9MHxIL047RD1jLnRvRGF0YVVSTCgpO2EuZmlsbFJlY3QoMCwwLFcsSCk7ST0yNTU7c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtmb3Ioaj0wO2o8QjsrK2opZm9yKGk9MDtpPEE7KytpKXtGPTIqKGkraipBKTtKPSdjaGFyQ29kZUF0JztUPUkmRFtKXShGKzEpO1QvPUk7RT1JJkRbSl0oRik7ZnVuY3Rpb24gUChpLGosayl7ej0tai9CKzEuMDE7Sz0xK3oqMS4wNTt4PWkvQSsoei0xKS8yO3gvPUs7eT0tay9JKzAuNS0wLjkqejt5Lz1LO2EubGluZVRvKFcvMitXKngsSC8yK0gqeSl9YS5zaGFkb3dDb2xvcj0ncmdiYSgwLDAsMTIsMC41KSc7UT0oZnVuY3Rpb24oTSxTLEgsZCxlLGYpe1I9MHxFKk0rMC4xO2EuZmlsbFN0eWxlPSJyZ2IoIisoUitpKmopKyIsIitSKyIsIitSKyIpIjthLnN0cm9rZVN0eWxlPScjMjAwJzthLnNoYWRvd0JsdXI9Ti80O2EuYmVnaW5QYXRoKCk7UChpLGorZCxFKTtQKGktUyxqK2UsRSk7UChpLVMsaitULEgpO1AoaSxqK2YsSCk7YS5jbG9zZVBhdGgoKTthLmZpbGwoKTthLnNoYWRvd0JsdXI9MDthLnN0cm9rZSgpfSk7USgwLjUsMCwwLDAsVCwwKTtRKDAuOSwwLjgsMCxULFQsVCk7USgyLDAuOCxFLDAsMCxUKX1hLmRyYXdJbWFnZShjLDAsMCxXLEgsLTMvNCwtMSxXKzEuNSxIKzYpfSw1MCk7W=innerWidth-32;
            H=innerHeight-32;
                var N = 0|(W/7);
                c.width = W;
                c.height = H;
            var data = c.toDataURL();
            a.fillRect(0,0,W,H);
                
            setInterval(function(){
                
                var countX = Math.round(W/N);
                var countY = Math.round(H/N);
                var C = countX * countY;
                for (var j = 0; j < countY; ++j)
                    for (var i = 0; i < countX; ++i)
                    {
                        var index = (i + j * countX);                        
                        var epaisseur =  (255 & (data.charCodeAt(index*2 + 1) | 0)) / 255;
                        var height = 255 & (data.charCodeAt(index*2) | 0);
                        var couleur = (function (strength)
                        {
                            var col = Math.round(strength + 0.1);
                            var r = col + (i * j);
                            a.fillStyle = "rgb(" + r + "," + col + "," +col + ")";
                            a.strokeStyle = '#200';
                        });
                        function point(i, j, k)
                        {
                            var x =  (i / countX - 0.5);
                            var y =  (-k / 255 + 0.5);
                            var z =  (-j / countY + 1.01);
                            x = (x + 0.5 * z) / (1 + z * 1.05);
                            y = (y - 0.9 * z) / (1 + z * 1.05);
                            a.lineTo(W/2 + W * x, H/2 + H * y);
                        }
                        
                        var shadowValue = (N / 4);
                        a.shadowBlur = shadowValue;
                        a.shadowColor = 'rgba(0,0,12,0.5)';
                        
                        var S = 0.8;
                         var T = epaisseur;
                         var base = 0;
                         var heie = height;
                        couleur(height/2);
                        a.beginPath();
                        point(i, j, base+heie);
                        point(i, j+T, base+heie);
                        point(i, j+T, base);
                        point(i, j, base);
                         a.closePath();
                        a.fill();
                        a.shadowBlur = 0;
                        a.stroke();
                        a.shadowBlur = shadowValue;
           
                        couleur(height * 0.9);
                          a.beginPath();
                        point(i  , j+T, base+heie);
                        point(i-S, j+T, base+heie);
                        point(i-S, j+T, base);
                        point(i  , j+T, base);
                         a.closePath();
                          a.fill();
                          a.shadowBlur = 0;
                        a.stroke();
                        a.shadowBlur = shadowValue;
                                         
                        couleur(height*2);
                        a.beginPath();
                        point(i, j, base+heie);
                        point(i-S, j, base+heie);
                        point(i-S, j+T, base+heie);
                        point(i, j+T, base+heie);
                         a.closePath();
                        a.fill();
                        a.shadowBlur = 0;
                        a.stroke();
                       
                    }                
                a.drawImage(c, 0, 0, W, H, -0.75, -1, W+1.5,H+6);
            },50);