/* maka0.c - Don Yang (uguu.org) 04/27/08 */ #include static char *data[] = { "~~~&&|||uz.)t}y{{}}5&?***L*vK+L&u*({{{}r^*&H-wvy{pqK+L&^+.{{s^F&", "P'wv{x~~K.~tr^X2^E&&&x^*&|}K.~sL*_%.U+^H&_S,N,wu{`C6~tsr|O/~}x|}", "_E&M3w}{}aM&{}^D0t}vyb'78'sq_,(R-w||^D7aZ*vqw|bW(T*bG'`*)cT&&&^'", "&a*+{c8&^N&v{{rU'}}&&}r^S+{scU*c@+pb0(ty_-&{{|v^?'_M'''|}{Z+^<&`", ")'Z-2*`H)_;(|}^Z'r|X)|v}{{w}`=+_T)`*+g*&-)yxpaL&w}xzw}g;&_@'b8,f", "Y'aU'^4(aY*f3(_,'p}^O'eW'}}_;+pyf0)e%4w^>'U)L)U,g8-fK0_I&J(hQ6i@", "'c-(_D+a:)_%(`@'g@-^<,d%&_@1b8+`C'iS.dV,hU)e4,^U.v{gI.c#&jJ4g+0d", "&&h?/h=7`<1h@/R(wvkF5`:)d(&_U&^K/vyw|}{fZ&9&o=-`:*d;,tcS-}}n9(rh", "$(dO*`<(cD-e4+c%.g('mF(+&nM-d%*^Q&c('aY&<(c6-_V,_&&^P)s}_W&z~w|F", "&gO'jU'`P&iN,c4-{sruza0'^#+a&&m=6O(bH0o7&c:<}un'-d0?^`A&i''P/O:c", "K'h4(lR'P+lN+_Z6m#'`?(sqQ+^&'h(,v}^R(sjJ(hS-prQ*m='^e+(l>(_F7l+&", "lB,c&(_'(kB(M2v9(Q-^`G7^c$)mS)_$(Q-_$._8)K(o1&kK'e.*n(,l3.hD(aF&", "g8'v_$(t_**n$,^c:(^Q,c0(ts^a+)`6-^E+^h=.s}a$4dQ*c:+^gQ+m$;eU&eN,", "O@^e,&k%.o73mH/l'.c[+c-2f7(^i.0^bT)s}^f0*eK'D3^hV4^b6-^i;8^]Q&^k", "M1^_&-f@._(&^oK'K0m<(v}|w^h%(6+e,'m8(jI/^`I+txcU+b-&prnC(m:-n%9s", "rf<&t{^^E'ruk%+n(*p}i:(P'iP&_%-^dT*b0&^hI0Q(jL(^Y'o7(bK/u{_J*^G)Q(^c4)^f-+^I*^Z'", "^gH-F(_;&k$&^#'_dI$$$$$`S3u~_^;-^F(pqw}P(c=)`./^m:(^^X0}x^D'G+oP", "*_dX*^W.m?(_^W&`Z&jW.^9'c<4^^G(w}lC'l=BM*_^3(c+1L7_/&jE)^m63iE._", "W,^m-+e1._`?2pypymW._i2)^mZ.bX,_^0)iX&kE4__74d<&_aB(h6&mEB^`U,_b", "C&^oI0O;d.(^]72^S'uwulQ-`S(}q_hU&<&l<-`Z*b#'l4&a&+^3/_:&oA*R&_cY", "(dN*mN'^nG-_`&(_jE*_]&&oK'_4&_hS)lH'||^d'+^m&2nN+_hF'zw^m2&J,p}^", "i*.a<d0'y}|aD'nQ&^b(0^h*", ")_gC,h8:^_B'cD)^mC-_kQ,_f#/`.6_b?-_k8(hI&utj/:_Z(S,j<'j@(^iP-^mT", ")S1_B,n[(^_='^b2.t{^dJ(T9iV&i52_h[(`d23_k#-T'^_(4[(^a#/a2-^1+l9&", "`g&-eX&_jY/_mC0^nK.^g@*bX@cG3g:*_T/_n60d>@Q4^bX)f9>o62n-&R:^jQ'o", "53^_B8^n[6`k%+^_D-`b#(z", NULL }; static char input[9999]; static char output[9999] = "/)(b9`.d,'P\n\"o8 "; /* Image offsets */ static int image[] = { 16, /* Black Star */ 1174, /* Soul */ 2084, /* Tsubaki */ 3117, /* Maka */ 4197 /* end */ }; /* Decode a variable length number */ static int Decode(char **cursor) { int number = 0; for(; (int)**cursor >= 93; ++*cursor) number = number * 19 + (int)**cursor - 93; number = number * 57 + (int)**cursor - 35; ++*cursor; return number; } /* Flatten array of strings into a single array, skipping over nonprintable characters. */ static void FlattenBuffers(char **r, char *w) { char *p; for(; *r != NULL; r++) { for(p = *r; *p != '\0'; p++) { if( (int)*p > 32 && (int)*p < 127 ) *w++ = *p; } } *w = '\0'; } int main(int argc, char **argv) { char *r, *w; int offset, size, hash; /* Uncompress data */ FlattenBuffers(data, input); w = output + 16; for(r = input; *r != '\0';) { if( (int)*r >= 112 ) { *w++ = output[(int)*(r++) - 111]; } else { offset = Decode(&r); for(size = Decode(&r); size > 0; size--) { *w = *(w - offset); w++; } } } /* Hash command line arguments */ FlattenBuffers(argv + 1, input); hash = -81; for(r = input; *r != '\0'; r++) hash = (hash << 4) ^ (hash << 1) ^ (int)*r; /* Output selected image */ hash = (hash >> 9) & 3; for(offset = image[hash]; offset < image[hash + 1]; offset++) putchar(output[offset]); return 0; }