#include <stdio.h>
int m=0x8CEFF731; // 32 bit bitmap, each nibble is a line of the top 8x8 corner
// high 4 bytes have to be OR'd with 0xF0 to produce the right number
// decompressed bitmap looks like this:
// 01 03 07 0F
// FF EF CF 8F
//
// Each entry is a half line, so to print the top half we print and mirror
// 01 10
// 03 30
// 07 70
// 0F F0
// ...etc
char s[]=" *"; // this is the string we print from
// f is a quick function to decompress a nibble,
// then print forward and backwards
// it takes in a value b so that I can cleanly print the center value
void f(int i, int b){
int j=-1;
int v=b>>i; // get just the nibble
v=i>15?0xF0|v:v<<4; // if it's a high byte, OR it with 0xF0
v=(v&0xFF)|(i>15)<<8; // set middle value
// print
for(;j++<16;)
putchar(s[v>>(j>8?16-j:j)&1]);
putchar('\n');
}
int main(){
int i=-1;
// print both halves
for(;i++<15;)
f((i<7 ? i : 15-i)*4, i!=7 ? m : 0);
}