Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Comments: How to integrate your SDL2 window icon (or any image) into your executable #10

Open
DanielGibson opened this issue Jul 21, 2017 · 3 comments
Labels

Comments

@DanielGibson
Copy link
Owner

DanielGibson commented Jul 21, 2017

Comments for https://blog.gibson.sh/2015/04/13/how-to-integrate-your-sdl2-window-icon-or-any-image-into-your-executable/

@Kagetsuki
Copy link

Kagetsuki commented Mar 29, 2023

First let me thank you for writing such a detailed and easy to understand post.

I know this is an old post but I was hoping you could provide some insight. I'm basically using the code from your post as-is but I noticed the colors and alpha were off. The endian is big, and the red channel is accurate, but somehow the other channels are getting mixed up. Here's a screenshot with the result on the left and the original image in GIMP on the right:
image.

I tried to rearrange the masks but no matter how I change them it will cause the image to fail to load with SDL giving the error "Unknown pixel format". The thing is I don't think it's SDL, I think maybe there's something screwy with how GIMP is emitting the array - specifically the color channels, but I can't quite figure it out. There are few code samples I can find, and all of them seem to handle things basically the same way, so I have a suspicion the GIMP exporter is actually broken.

My GIMP version is 2.10.32, and I'm using SDL2 version 2.24.0

Here's the exported image data if you or anyone wants to try it themselves:

Click to show source
static const struct {
  unsigned int 	 width;
  unsigned int 	 height;
  unsigned int 	 bytes_per_pixel; /* 2:RGB16, 3:RGB, 4:RGBA */ 
  unsigned char	 pixel_data[64 * 64 * 4 + 1];
} failure_image = {
  64, 64, 4,
  "\377\001\000\376\377\001\000\376\377\000\001\376\377\001\001\376\377\001\001\376\377\001\001\376"
  "\377\001\001\376\377\001\001\376\377\001\001\376\377\001\001\376\377\002\002\376\377\002\002\376"
  "\377\002\002\376\377\002\002\376\377\002\002\376\377\003\002\376\377\002\003\376\377\003\003\376"
  "\377\003\003\376\377\003\003\376\377\003\003\376\377\003\003\376\377\003\003\376\377\003\003\376"
  "\377\003\003\376\377\004\004\376\377\004\004\376\377\004\004\376\377\004\004\376\377\004\005\376"
  "\377\004\004\376\377\005\004\376\377\005\005\376\377\004\005\376\377\005\005\376\377\005\005\376"
  "\377\005\005\376\377\005\005\376\377\006\006\376\377\006\006\376\377\006\006\376\377\006\006\376"
  "\377\006\006\376\377\006\006\376\377\006\007\376\377\006\006\376\377\006\006\376\377\007\007\376"
  "\377\007\007\376\377\007\007\376\377\007\007\376\377\007\007\376\377\007\007\376\377\007\007\376"
  "\377\010\010\376\377\010\007\376\377\010\010\376\377\010\010\376\377\010\010\376\377"
  "\010\010\376\377\010\010\376\377\010\010\376\377\011\011\376\377\011\011\376\377\001"
  "\001\374\377\001\001\374\377\001\001\374\377\002\002\374\377\002\002\374\377\003\002\374\377\003"
  "\003\374\377\003\003\374\377\003\003\374\377\004\004\374\377\004\004\374\377\004\004\374\377\005"
  "\005\374\377\005\005\374\377\006\005\374\377\006\006\374\377\006\006\374\377\006\006\374\377\007"
  "\007\374\377\007\007\374\377\007\007\374\377\010\007\374\377\010\010\374\377\010\010\374\377"
  "\010\010\374\377\011\011\374\377\012\012\374\377\012\012\375\377\012\012\375\377\013"
  "\013\375\377\013\013\375\377\013\013\375\377\013\013\375\377\014\013\375\377\014\014"
  "\375\377\015\015\375\377\014\014\375\377\015\015\375\377\015\015\375\377\015\015\375"
  "\377\015\015\375\377\015\016\375\377\016\016\375\377\016\016\375\377\017\017\375\377"
  "\017\017\375\377\017\017\375\377\020\020\375\377\017\017\375\377\020\020\375\377\020"
  "\020\375\377\020\020\375\377\021\021\375\377\021\021\375\377\021\021\375\377\021\021"
  "\375\377\021\021\375\377\022\022\375\377\022\022\375\377\022\022\375\377\022\022\375"
  "\377\023\023\375\377\022\023\375\377\023\023\375\377\002\002\370\377\003\003\370\377\004"
  "\004\370\377\004\004\370\377\005\005\371\377\006\006\370\377\007\007\371\377\007\007\371\377\010"
  "\010\371\377\011\011\371\377\012\011\371\377\013\013\371\377\013\013\371\377\014\014"
  "\371\377\014\014\371\377\014\014\371\377\016\016\371\377\017\016\371\377\016\016\371"
  "\377\020\020\371\377\020\020\371\377\020\020\371\377\021\020\372\377\022\022\372\377"
  "\022\022\372\377\022\023\372\377\023\023\372\377\023\023\372\377\023\023\372\377\023"
  "\024\372\377\025\025\372\377\025\025\372\377\025\025\372\377\025\025\372\377\026\026"
  "\372\377\027\027\372\377\027\027\373\377\027\027\372\377\027\027\373\377\030\030\373"
  "\377\031\031\372\377\031\031\372\377\031\031\373\377\032\032\373\377\032\032\373\377"
  "\033\033\373\377\033\033\373\377\033\033\373\377\033\033\373\377\033\033\373\377\034"
  "\034\373\377\034\034\373\377\035\035\373\377\035\035\373\377\035\035\374\377\036\036"
  "\374\377\036\036\374\377\037\037\374\377\037\037\374\377\037\037\374\377\037\037\374"
  "\377\037\037\374\377\037\037\374\377\037\037\374\377\005\005\363\377\007\007\364\377\010"
  "\010\364\377\011\011\364\377\012\012\364\377\014\014\364\377\014\014\364\377\016\016"
  "\364\377\016\017\365\377\020\020\364\377\021\021\365\377\022\022\365\377\023\023\365"
  "\377\024\024\365\377\024\024\365\377\025\025\365\377\026\026\365\377\027\027\365\377"
  "\027\027\365\377\027\027\365\377\031\031\365\377\032\031\365\377\032\032\365\377\033"
  "\033\366\377\033\033\366\377\033\033\366\377\034\034\366\377\035\035\366\377\036\036"
  "\366\377\036\036\366\377\036\036\366\377\037\037\367\377\040\040\367\377\040\040\367"
  "\377!!\367\377!!\367\377\"\"\367\377\"\"\367\377##\367\377##\367\377$$\367"
  "\377$$\367\377%%\367\377%%\367\377%%\370\377&&\370\377''\370\377''\370\377"
  "''\370\377((\370\377((\370\377((\371\377))\371\377))\371\377**\371\377**"
  "\371\377**\371\377++\371\377++\371\377,,\371\377,,\371\377++\371\377++\371"
  "\377**\371\377\013\013\354\377\015\015\355\377\016\016\355\377\020\020\355\377\022"
  "\022\355\377\023\023\355\377\024\024\356\377\026\026\356\377\027\027\356\377\030\030"
  "\356\377\032\031\356\377\032\032\357\377\033\033\357\377\034\035\356\377\034\034\357"
  "\377\036\036\357\377\037\037\357\377\040\040\357\377\040\040\357\377!!\360\377\""
  "\"\360\377##\360\377$$\360\377%%\360\377%%\360\377&&\360\377&&\361\377(("
  "\361\377((\361\377((\361\377))\361\377++\361\377++\362\377++\362\377,-\362"
  "\377--\362\377--\362\377..\363\377..\363\377//\363\377//\363\377\060\060\363"
  "\377\061\061\363\377\061\061\364\377\062\062\364\377\062\062\364\377\063\063\364\377"
  "\064\064\364\377\064\064\364\377\065\065\365\377\064\065\364\377\065\065\365\377\066"
  "\066\365\377\067\067\365\377\067\067\365\377\067\067\365\377\067\067\365\377\070\070"
  "\366\377\070\070\366\377\070\070\366\377\070\070\366\377\070\070\365\377\067\067\365"
  "\377\067\067\365\377\023\023\343\377\024\024\344\377\026\026\344\377\030\030\344\377"
  "\032\032\345\377\034\034\344\377\035\035\345\377\036\036\345\377\037\037\345\377!!"
  "\346\377##\346\377##\346\377%%\346\377&&\347\377''\347\377((\347\377))\347"
  "\377**\347\377++\350\377,,\350\377--\350\377..\350\377//\351\377\060\060\351"
  "\377\061\061\351\377\061\061\352\377\062\062\352\377\063\063\352\377\064\064\352\377"
  "\065\065\352\377\065\065\353\377\066\066\353\377\070\070\353\377\070\070\353\377\071"
  "\071\354\377\071\071\354\377::\354\377::\354\377<<\354\377<<\354\377<<\355\377"
  "<<\355\377==\356\377>>\356\377??\356\377@@\356\377@@\356\377AA\357\377AA"
  "\357\377AA\357\377BB\357\377CC\360\377DD\360\377EE\360\377EE\360\377DE\360"
  "\377EE\361\377FF\361\377GG\361\377FF\361\377EE\360\377EE\360\377EE\360\377"
  "DD\360\377\033\033\327\377\035\035\327\377\040\040\327\377\"\"\330\377$$\331\377"
  "&%\330\377''\331\377))\331\377**\331\377,,\332\377..\332\377..\333\377\061"
  "\061\333\377\062\062\333\377\063\063\334\377\065\065\335\377\065\065\335\377\067\067"
  "\335\377\067\067\335\377\070\070\335\377\071\071\336\377<<\337\377<;\337\377<<"
  "\337\377>>\337\377??\337\377@@\340\377AA\340\377AA\341\377CC\341\377DD\341"
  "\377EE\342\377EE\342\377FF\342\377FF\343\377HH\343\377HH\344\377II\344\377"
  "JJ\344\377JJ\344\377KK\345\377KK\346\377MM\345\377NN\346\377NN\346\377OO"
  "\347\377PP\347\377PP\350\377QQ\350\377QQ\350\377RR\350\377SS\351\377SS\351"
  "\377TT\351\377UU\351\377VV\352\377VV\353\377WW\353\377UU\352\377UU\351\377"
  "UU\351\377TT\351\377SS\351\377RR\351\377&&\307\377((\307\377++\310\377--"
  "\310\377//\311\377\061\061\312\377\063\063\312\377\066\066\312\377\067\067\313\377"
  "\070\070\313\377;;\313\377<<\314\377==\315\377??\315\377@@\316\377BB\316\377"
  "CC\317\377DD\320\377FF\317\377GG\321\377II\321\377JJ\322\377JJ\322\377LL"
  "\322\377MM\323\377NN\324\377OO\324\377PP\324\377QQ\324\377SS\325\377TT\326"
  "\377UU\326\377UU\327\377VV\327\377WW\327\377XX\330\377XX\331\377YY\331\377"
  "ZZ\331\377[[\332\377]]\333\377^^\334\377^^\333\377__\334\377__\334\377``"
  "\335\377bb\336\377bb\336\377bb\336\377cc\337\377cc\340\377dd\340\377ee\341"
  "\377ee\341\377fg\341\377gg\342\377hh\342\377gg\341\377ff\341\377ee\341\377"
  "ee\340\377dd\340\377cc\337\377bb\336\377\062\062\265\377\065\065\266\377\070\070"
  "\267\377::\266\377<<\270\377??\271\377@@\271\377CC\272\377EE\271\377GG\272"
  "\377HH\274\377II\274\377LL\275\377NN\276\377OO\277\377QQ\277\377QQ\300\377"
  "TT\300\377UU\301\377WW\301\377XX\302\377YY\303\377ZZ\303\377\\\\\304\377"
  "\\\\\305\377^^\306\377``\306\377aa\307\377bb\307\377bb\310\377cc\310\377"
  "dd\311\377ee\312\377ff\312\377hh\313\377hh\314\377ii\315\377jj\315\377kk"
  "\316\377mm\317\377mm\317\377nn\320\377oo\321\377qq\321\377qq\322\377qq\323"
  "\377ss\323\377rr\323\377tu\324\377uu\326\377vv\326\377vv\326\377ww\327\377"
  "xx\330\377xx\330\377xx\331\377xx\327\377ww\327\377ww\326\377vv\325\377vv"
  "\325\377tt\325\377tt\324\377rr\323\377AA\240\377EE\241\377FF\242\377II\243"
  "\377LL\243\377OO\244\377QQ\245\377RR\246\377UU\246\377WW\247\377ZZ\251\377"
  "\\\\\251\377]]\251\377^^\252\377``\254\377bb\255\377dd\255\377ff\257\377"
  "gg\257\377hh\260\377jj\260\377ll\262\377ll\262\377nn\263\377nn\264\377oo"
  "\265\377qq\266\377rr\267\377tt\267\377uu\270\377vv\272\377ww\272\377xx\273"
  "\377zz\274\377{{\274\377{{\275\377}}\276\377~~\300\377\177\177\300\377\200"
  "\200\301\377\200\200\301\377\201\201\302\377\202\202\303\377\203\203\304"
  "\377\204\204\305\377\205\205\307\377\206\206\307\377\206\206\307\377\207"
  "\207\310\377\210\210\312\377\212\212\312\377\212\212\313\377\213\213\314"
  "\377\213\213\315\377\214\214\315\377\213\213\315\377\212\212\313\377\211"
  "\211\313\377\211\211\311\377\210\210\311\377\207\207\310\377\206\206\307"
  "\377\205\205\306\377\205\205\306\377TT\206\377VV\211\377ZZ\212\377\\\\\212"
  "\377^^\214\377bb\215\377cc\217\377ff\216\377hh\220\377kk\221\377nn\222\377"
  "oo\223\377qq\224\377tt\224\377vv\226\377ww\227\377zz\231\377zz\232\377{{"
  "\232\377}}\234\377\177\177\236\377\200\200\237\377\202\202\237\377\203\203"
  "\240\377\204\204\240\377\206\206\242\377\210\210\242\377\210\210\245\377"
  "\212\212\245\377\212\212\246\377\214\214\250\377\215\215\250\377\217\217"
  "\252\377\220\220\253\377\220\220\254\377\221\221\255\377\223\223\255\377"
  "\224\224\257\377\224\224\261\377\225\225\261\377\226\226\262\377\227\227"
  "\262\377\227\227\265\377\232\232\266\377\232\232\267\377\232\232\270\377"
  "\234\234\270\377\235\235\271\377\235\235\273\377\240\240\274\377\237\237"
  "\274\377\237\237\276\377\240\240\300\377\240\240\300\377\240\240\276\377"
  "\237\237\274\377\237\237\274\377\235\235\274\377\233\233\272\377\234\234"
  "\270\377\233\233\267\377\232\232\267\377\231\231\267\377\230\230\265\377"
  "kkk\377nnl\377rrm\377vwn\377xxp\377zzr\377}}s\377\200\200u\377\203\203u\377"
  "\205\205w\377\207\207x\377\211\211y\377\213\213{\377\215\215}\377\220\220"
  "}\377\221\221\177\377\222\222\200\377\224\224\201\377\226\226\203\377\230"
  "\230\204\377\231\231\206\377\232\232\207\377\235\235\210\377\235\235\212"
  "\377\236\236\213\377\237\237\215\377\242\242\216\377\242\242\217\377\244"
  "\244\221\377\245\245\222\377\246\246\224\377\247\247\224\377\250\250\226"
  "\377\251\251\227\377\252\252\231\377\253\253\232\377\254\254\233\377\255"
  "\255\235\377\256\256\235\377\256\256\240\377\260\260\240\377\261\261\242"
  "\377\262\262\243\377\263\263\244\377\263\263\246\377\264\264\250\377\265"
  "\265\251\377\266\266\251\377\266\266\253\377\267\267\254\377\267\267\256"
  "\377\270\270\257\377\270\270\260\377\270\270\257\377\270\270\254\377\267"
  "\267\254\377\266\266\252\377\266\266\250\377\265\265\247\377\264\264\247"
  "\377\263\263\246\377\261\261\244\377\261\261\243\377\260\260\241\377\203"
  "\203W\377\207\207X\377\210\210Z\377\215\215[\377\221\221]\377\223\223^\377"
  "\226\226`\377\230\230a\377\231\231d\377\235\235e\377\236\236f\377\240\240"
  "h\377\243\243i\377\243\243l\377\246\246m\377\247\247n\377\252\252n\377\253"
  "\253p\377\255\255r\377\256\256t\377\257\257u\377\261\261w\377\262\262x\377"
  "\264\264z\377\265\265|\377\265\265~\377\267\267~\377\270\270\200\377\271"
  "\271\202\377\272\272\203\377\272\272\206\377\274\274\207\377\275\275\210"
  "\377\276\276\212\377\277\277\213\377\277\277\214\377\300\300\216\377\301"
  "\301\217\377\302\302\220\377\302\302\224\377\303\303\224\377\304\304\225"
  "\377\306\306\227\377\305\305\230\377\306\306\233\377\310\310\234\377\310"
  "\310\235\377\311\311\237\377\310\310\241\377\312\312\242\377\312\312\244"
  "\377\312\312\245\377\312\312\243\377\310\310\241\377\310\310\240\377\307"
  "\307\236\377\310\310\235\377\305\305\234\377\305\305\231\377\306\306\230"
  "\377\304\304\226\377\304\304\225\377\304\304\223\377\302\302\221\377\234"
  "\234F\377\237\237I\377\242\242K\377\243\243L\377\247\247N\377\251\251P\377"
  "\255\255Q\377\257\257S\377\261\261V\377\263\263V\377\265\265X\377\267\267"
  "Y\377\270\270\\\377\272\272]\377\272\272_\377\275\275`\377\276\276c\377\277"
  "\277d\377\301\301f\377\303\303g\377\303\303i\377\304\304k\377\306\306l\377"
  "\306\306n\377\310\310o\377\310\310r\377\311\311t\377\312\312u\377\313\313"
  "w\377\314\314y\377\316\316z\377\315\315|\377\317\317}\377\320\320\177\377"
  "\320\320\201\377\321\321\202\377\322\322\203\377\321\321\206\377\322\322"
  "\210\377\323\323\211\377\325\325\213\377\324\324\215\000\377\000\377\000\377\000"
  "\377\000\377\000\377\000\377\000\377\000\377\000\377\377\327\327\227\377\330\330\231"
  "\377\331\331\232\377\330\330\233\377\331\331\231\377\327\327\227\377\330"
  "\330\226\377\327\327\224\377\326\326\222\377\325\325\221\377\326\326\216"
  "\377\325\325\216\377\325\325\213\377\324\324\211\377\323\323\210\377\322"
  "\322\207\377\321\321\205\377\262\262=\377\264\264?\377\266\266@\377\272\272"
  "B\377\273\273D\377\276\276F\377\300\300H\377\302\302J\377\303\303K\377\305"
  "\305M\377\307\307O\377\310\310Q\377\312\312S\377\313\313T\377\314\314V\377"
  "\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\323\323a\377"
  "\323\323b\377\325\325e\377\326\326g\377\326\326h\377\327\327j\377\330\330"
  "l\377\331\331n\377\331\331p\377\332\332r\374\327\327u\334\275\275\212\315"
  "\261\261\226\316\262\262\227\336\300\300\216\375\334\334}\377\336\336~\377"
  "\336\336\200\377\337\337\202\377\337\337\203\377\340\340\206\000\377\000\377"
  "\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377"
  "\377\343\343\224\377\343\343\224\377\343\343\223\377\343\343\220\377\342"
  "\342\220\377\342\342\215\377\341\341\213\377\341\341\211\377\340\340\207"
  "\377\340\340\206\377\340\340\204\377\337\337\202\377\337\337\200\377\336"
  "\336~\377\336\336}\377\335\335{\377\314\314\063\377\316\316\064\377\320\320"
  "\066\377\322\322\070\377\322\322;\377\324\324=\377\325\325?\377\330\330@\377"
  "\330\330B\377\333\333D\377\334\334F\377\333\333I\377\334\334J\377\335\335"
  "L\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377"
  "\377\000\000\377\377\345\345[\377\345\345]\377\344\344_\377\346\346a\377\346"
  "\346c\377\347\347e\377\350\350g\300\257\257\221ndd\321%!!\371\000\000\000\377\000"
  "\000\000\377\000\000\000\377\000\000\000\377/**\367~ss\317\331\310\310\221\377\354\354|\377"
  "\354\354~\377\354\354\177\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377"
  "\000\377\000\377\000\377\000\377\000\377\000\377\377\356\356\216\377\356\356\213\377"
  "\356\356\211\377\356\356\210\377\355\355\206\377\354\354\204\377\354\354"
  "\202\377\355\355\200\377\353\353\177\377\354\354|\377\354\354z\377\353\353"
  "x\377\353\353v\377\352\352u\377\351\351s\377\352\352p\377\353\353)\377\354"
  "\354+\377\355\355-\377\360\360/\377\357\357\062\377\361\361\062\377\360\360"
  "\066\377\360\360\067\377\361\361\071\377\361\361<\377\364\364=\377\362\362?"
  "\377\363\363B\377\363\363C\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377"
  "\377\000\000\377\377\000\000\377\377\000\000\377\377\365\365T\377\366\366U\377\366\366"
  "W\377\366\366Z\377\366\366\\\363\353\353dpll\310\000\000\000\377\000\000\000\377ZWW\335"
  "{ww\306~zz\306ZWW\340\000\000\000\377\000\000\000\377\000\000\000\377\025\024\024\375\241\235"
  "\235\265\377\371\371x\377\370\370z\000\377\000\377\000\377\000\377\000\377\000\377\000"
  "\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\377\371\371\205\377\372\372"
  "\202\377\371\371\202\377\371\371\177\377\371\371}\377\371\371{\377\371\371"
  "x\377\370\370w\377\370\370u\377\370\370s\377\370\370q\377\370\370o\377\370"
  "\370l\377\370\370k\377\367\367i\377\367\367g\377\377\377%\377\377\377'\377"
  "\377\377)\377\377\377,\377\377\377-\377\377\377/\377\377\377\061\377\377\377"
  "\064\377\377\377\066\377\377\377\071\377\377\377:\377\377\377<\377\377\377>"
  "\377\377\377@\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377"
  "\377\000\000\377\377\000\000\377\377\377\377Q\377\377\377S\377\377\377U\377\377\377"
  "W\373\373\373[\\\\\\\326\000\000\000\377QQQ\340\325\325\325{\377\377\377d\377\377"
  "\377f\377\377\377g\377\377\377j\310\310\310\217\071\071\071\362\000\000\000\377\000"
  "\000\000\377\000\000\000\377\243\243\243\263\377\377\377y\000\377\000\377\000\377\000\377\000"
  "\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\377\377\377\177"
  "\377\377\377~\377\377\377|\377\377\377z\377\377\377x\377\377\377u\377\377"
  "\377s\377\377\377q\377\377\377o\377\377\377m\377\377\377k\377\377\377i\377"
  "\377\377g\377\377\377e\377\377\377c\377\377\377`\377\377\377(\377\377\377"
  ")\377\377\377,\377\377\377-\377\377\377/\377\377\377\061\377\377\377\064\377"
  "\377\377\066\377\377\377\070\377\377\377:\377\377\377<\377\377\377>\377\377"
  "\377@\377\377\377C\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000"
  "\000\377\377\000\000\377\377\000\000\377\377\377\377S\377\377\377U\377\377\377W\377"
  "\377\377Y\234\234\234\237\000\000\000\377\000\000\000\377\276\276\276\214\377\377\377"
  "d\377\377\377f\377\377\377g\377\377\377j\377\377\377l\377\377\377n\313\313"
  "\313\221\000\000\000\377\000\000\000\377\000\000\000\377\036\036\036\373\343\343\343\214\000\377"
  "\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377"
  "\000\377\377\377\377~\377\377\377|\377\377\377z\377\377\377w\377\377\377u\377"
  "\377\377s\377\377\377q\377\377\377o\377\377\377m\377\377\377k\377\377\377"
  "i\377\377\377g\377\377\377e\377\377\377c\377\377\377`\377\377\377^\377\377"
  "\377*\377\377\377,\377\377\377-\377\377\377\060\377\377\377\061\377\377\377"
  "\063\377\377\377\065\377\377\377\067\377\377\377\070\377\377\377:\377\377\377"
  "<\377\377\377?\377\377\377B\377\377\377D\377\000\000\377\377\000\000\377\377\000\000"
  "\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\377\377U\377\377"
  "\377W\377\377\377Y\377\377\377[TTT\335\000\000\000\377\000\000\000\377^^^\331\360\360"
  "\360o\377\377\377h\377\377\377j\377\377\377l\377\377\377n\377\377\377p\377"
  "\377\377rggg\334\000\000\000\377\000\000\000\377\000\000\000\377\226\226\226\302\377\377\377"
  "~\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\377\377\377"
  "~\377\377\377|\377\377\377y\377\377\377w\377\377\377u\377\377\377s\377\377"
  "\377q\377\377\377o\377\377\377n\377\377\377l\377\377\377k\377\377\377j\377"
  "\377\377g\377\377\377d\377\377\377a\377\377\377_\377\377\377]\377\377\377"
  ",\377\377\377-\377\377\377/\377\377\377\060\377\377\377\061\377\377\377\060"
  "\377\377\377.\377\377\377-\377\377\377,\377\377\377.\377\377\377\062\377\377"
  "\377\070\377\377\377=\377\377\377B\377\377\377F\377\000\000\377\377\000\000\377\377"
  "\000\000\377\377\000\000\377\377\000\000\377\377\377\377U\377\377\377W\377\377\377Z\377"
  "\377\377[\377\377\377^---\364\000\000\000\377\000\000\000\377\000\000\000\377qqq\316\377\377"
  "\377j\377\377\377l\377\377\377n\377\377\377q\377\377\377r\377\377\377t\230"
  "\230\230\274\000\000\000\377\000\000\000\377\000\000\000\377aaa\343\377\377\377\200\377\377"
  "\377\203\377\377\377\204\377\377\377\201\377\377\377\200\377\377\377~\377"
  "\377\377|\377\377\377z\377\377\377w\377\377\377u\377\377\377t\377\377\377"
  "r\377\377\377r\377\377\377s\377\377\377v\377\377\377z\377\377\377{\377\377"
  "\377z\377\377\377w\377\377\377p\377\377\377j\377\377\377d\377\377\377]\377"
  "\377\377,\377\377\377.\377\377\377.\377\377\377*\377\377\377&\377\377\377"
  "\036\377\377\377\030\377\377\377\024\377\377\377\023\377\377\377\024\377\377\377"
  "\031\377\377\377\040\377\377\377+\377\377\377\070\377\377\377B\377\377\377J"
  "\377\377\377O\377\377\377Q\377\377\377S\377\377\377U\377\377\377W\377\377"
  "\377Y\377\377\377\\\377\377\377]\377\377\377`CCC\352\000\000\000\377\000\000\000\377"
  "\000\000\000\377\013\013\013\376\374\374\374n\377\377\377n\377\377\377q\377\377\377"
  "r\377\377\377t\377\377\377w\247\247\247\262\000\000\000\377\000\000\000\377\000\000\000\377"
  "FFF\361\377\377\377\203\377\377\377\204\377\377\377\201\377\377\377\200\377"
  "\377\377~\377\377\377|\377\377\377z\377\377\377w\377\377\377u\377\377\377"
  "s\377\377\377s\377\377\377v\377\377\377\200\377\377\377\216\377\377\377\235"
  "\377\377\377\246\377\377\377\256\377\377\377\254\377\377\377\245\377\377"
  "\377\227\377\377\377\211\377\377\377x\377\377\377i\377\377\377*\377\377\377"
  "(\377\377\377\"\377\377\377\031\377\377\377\017\377\377\377\010\377\377\377"
  "\004\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\004\377\377\377\007"
  "\377\377\377\017\377\377\377\036\377\377\377\062\377\377\377C\377\377\377M\377"
  "\377\377R\377\377\377U\377\377\377W\377\377\377Y\377\377\377[\377\377\377"
  "]\377\377\377`\377\377\377b\213\213\213\266\000\000\000\377\000\000\000\377\000\000\000\377"
  "HHH\352\377\377\377o\377\377\377q\377\377\377r\377\377\377t\377\377\377w"
  "\377\377\377y\241\241\241\271\000\000\000\377\000\000\000\377\000\000\000\377RRR\354\377\377"
  "\377\204\377\377\377\201\377\377\377\200\377\377\377~\377\377\377|\377\377"
  "\377z\377\377\377w\377\377\377u\377\377\377s\377\377\377s\377\377\377y\377"
  "\377\377\213\377\377\377\245\377\377\377\301\377\377\377\326\377\377\377"
  "\342\377\377\377\347\377\377\377\346\377\377\377\340\377\377\377\323\377"
  "\377\377\276\377\377\377\242\377\377\377\207\377\377\377!\377\377\377\030"
  "\377\377\377\015\377\377\377\005\377\377\377\002\377\377\377\000\377\377\377\000\377"
  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
  "\377\002\377\377\377\007\377\377\377\030\377\377\377\060\377\377\377E\377\377\377"
  "Q\377\377\377V\377\377\377Y\377\377\377[\377\377\377]\377\377\377_\377\377"
  "\377b\377\377\377d\366\366\366k\201\201\201\301\070\070\070\362WWW\342\320\320"
  "\320\214\377\377\377q\377\377\377r\377\377\377t\377\377\377w\377\377\377"
  "y\377\377\377{\203\203\203\317\000\000\000\377\000\000\000\377\000\000\000\377ppp\335\377\377"
  "\377\201\377\377\377\200\377\377\377~\377\377\377|\377\377\377z\377\377\377"
  "w\377\377\377u\377\377\377s\377\377\377r\377\377\377y\377\377\377\215\377"
  "\377\377\262\377\377\377\327\377\377\377\356\377\377\377\370\377\377\377"
  "\374\377\377\377\375\377\377\377\375\377\377\377\373\377\377\377\370\377"
  "\377\377\356\377\377\377\332\377\377\377\273\377\377\377\017\377\377\377\007"
  "\377\377\377\002\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
  "\377\000\377\377\377\000\377\377\377\005\377\377\377\027\377\377\377\064\377\377"
  "\377L\377\377\377W\377\377\377[\377\377\377]\377\377\377`\377\377\377b\377"
  "\377\377d\377\377\377f\377\377\377g\377\377\377j\377\377\377l\377\377\377"
  "n\377\377\377p\377\377\377r\377\377\377t\377\377\377w\377\377\377y\377\377"
  "\377{\373\373\373\177???\363\000\000\000\377\000\000\000\377\000\000\000\377\255\255\255\265"
  "\377\377\377\200\377\377\377~\377\377\377|\377\377\377y\377\377\377w\377"
  "\377\377u\377\377\377s\377\377\377q\377\377\377u\377\377\377\211\377\377"
  "\377\261\377\377\377\334\377\377\377\366\377\377\377\375\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\376\377\377\377\371\377\377\377\352\377\377\377\003\377"
  "\377\377\001\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\005\377\377\377\036"
  "\377\377\377@\377\377\377U\377\377\377\\\377\377\377`\377\377\377b\377\377"
  "\377d\377\377\377e\377\377\377g\377\377\377j\377\377\377l\377\377\377n\377"
  "\377\377p\377\377\377r\377\377\377t\377\377\377w\377\377\377y\377\377\377"
  "{\377\377\377}\261\261\261\260\000\000\000\377\000\000\000\377\000\000\000\377???\363\366\366"
  "\366\205\377\377\377~\377\377\377|\377\377\377y\377\377\377w\377\377\377"
  "u\377\377\377s\377\377\377q\377\377\377q\377\377\377|\377\377\377\241\377"
  "\377\377\322\377\377\377\365\377\377\377\376\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\374\377\377\377"
  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\001\377\377"
  "\377\013\377\377\377-\377\377\377O\377\377\377]\377\377\377b\377\377\377d"
  "\377\377\377e\377\377\377g\377\377\377j\377\377\377l\377\377\377n\377\377"
  "\377q\377\377\377r\377\377\377t\377\377\377w\377\377\377y\377\377\377{\377"
  "\377\377|\350\350\350\214\070\070\070\366\000\000\000\377\000\000\000\377\035\035\035\374\314"
  "\314\314\240\377\377\377~\377\377\377|\377\377\377z\377\377\377w\377\377"
  "\377v\377\377\377t\377\377\377q\377\377\377o\377\377\377q\377\377\377\210"
  "\377\377\377\271\377\377\377\352\377\377\377\375\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
  "\377\377\377\000\377\377\377\004\377\377\377\034\377\377\377E\377\377\377^\377"
  "\377\377d\377\377\377f\377\377\377g\377\377\377j\377\377\377l\377\377\377"
  "n\377\377\377p\377\377\377r\377\377\377t\377\377\377w\377\377\377y\377\377"
  "\377{\377\377\377|\375\375\375\177jjj\337\000\000\000\377\000\000\000\377\022\022\022\376"
  "\273\273\273\253\377\377\377~\377\377\377|\377\377\377y\377\377\377x\377"
  "\377\377v\377\377\377t\377\377\377q\377\377\377o\377\377\377m\377\377\377"
  "r\377\377\377\223\377\377\377\314\377\377\377\365\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
  "\377\377\377\000\377\377\377\000\377\377\377\001\377\377\377\020\377\377\377\071"
  "\377\377\377[\377\377\377e\377\377\377h\377\377\377j\377\377\377l\377\377"
  "\377n\377\377\377q\377\377\377r\377\377\377t\377\377\377w\377\377\377y\377"
  "\377\377{\377\377\377}\377\377\377\177\237\237\237\276\000\000\000\377\000\000\000\377"
  "\032\032\032\375\273\273\273\253\377\377\377~\377\377\377|\377\377\377y\377"
  "\377\377w\377\377\377v\377\377\377t\377\377\377q\377\377\377o\377\377\377"
  "m\377\377\377k\377\377\377s\377\377\377\232\377\377\377\326\377\377\377\371"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\000\377\377\377"
  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
  "\377\013\377\377\377\061\377\377\377X\377\377\377g\377\377\377j\377\377\377"
  "l\377\377\377n\377\377\377q\377\377\377r\377\377\377t\377\377\377w\377\377"
  "\377y\377\377\377{\377\377\377|\377\377\377~\324\324\324\233\026\026\026\375"
  "\000\000\000\377'''\372\305\305\305\244\377\377\377~\377\377\377|\377\377\377z"
  "\377\377\377x\377\377\377v\377\377\377t\377\377\377q\377\377\377o\377\377"
  "\377m\377\377\377k\377\377\377j\377\377\377r\377\377\377\233\377\377\377"
  "\330\377\377\377\372\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
  "\377\377\377\000\377\377\377\010\377\377\377,\377\377\377V\377\377\377h\377"
  "\377\377l\377\377\377n\377\377\377p\377\377\377r\377\377\377t\377\377\377"
  "w\377\377\377y\377\377\377{\377\377\377|\377\377\377\177\377\377\377\200"
  "```\346\000\000\000\377+++\371\320\320\320\235\377\377\377~\377\377\377|\377\377"
  "\377y\377\377\377w\377\377\377v\377\377\377s\377\377\377q\377\377\377o\377"
  "\377\377m\377\377\377k\377\377\377j\377\377\377h\377\377\377o\377\377\377"
  "\224\377\377\377\322\377\377\377\370\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
  "\000\377\377\377\000\377\377\377\000\377\377\377\011\377\377\377.\377\377\377Y\377"
  "\377\377j\377\377\377n\377\377\377q\377\377\377r\377\377\377t\377\377\377"
  "w\377\377\377y\377\377\377{\377\377\377|\377\377\377\177\377\377\377\201"
  "\317\317\317\240\000\000\000\377\015\015\015\376\306\306\306\243\377\377\377~\377"
  "\377\377|\377\377\377z\377\377\377x\377\377\377v\377\377\377s\377\377\377"
  "q\377\377\377o\377\377\377m\377\377\377k\377\377\377i\377\377\377g\377\377"
  "\377e\377\377\377j\377\377\377\210\377\377\377\303\377\377\377\362\377\377"
  "\377\376\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\000\377\377\377\000\377"
  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\001\377\377\377\015"
  "\377\377\377\065\377\377\377]\377\377\377m\377\377\377p\377\377\377r\377\377"
  "\377t\377\377\377w\377\377\377y\377\377\377{\377\377\377|\377\377\377\177"
  "\377\377\377\201\377\377\377\203\234\234\234\303\000\000\000\377\211\211\211\314"
  "\377\377\377~\377\377\377|\377\377\377y\377\377\377x\377\377\377v\377\377"
  "\377t\377\377\377q\377\377\377o\377\377\377m\377\377\377k\377\377\377i\377"
  "\377\377g\377\377\377e\377\377\377c\377\377\377e\377\377\377z\377\377\377"
  "\253\377\377\377\342\377\377\377\373\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
  "\377\377\377\002\377\377\377\027\377\377\377C\377\377\377d\377\377\377o\377"
  "\377\377r\377\377\377t\377\377\377w\377\377\377y\377\377\377{\377\377\377"
  "}\377\377\377\177\377\377\377\201\377\377\377\203\377\377\377\204qqq\334"
  "\000\000\000\377\320\320\320\233\377\377\377{\377\377\377y\377\377\377x\377\377"
  "\377v\377\377\377s\377\377\377q\377\377\377o\377\377\377m\377\377\377k\377"
  "\377\377j\377\377\377g\377\377\377e\377\377\377b\377\377\377`\377\377\377"
  "a\377\377\377k\377\377\377\215\377\377\377\302\377\377\377\356\377\377\377"
  "\375\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
  "\377\377\000\377\377\377\000\377\377\377\011\377\377\377)\377\377\377S\377\377"
  "\377k\377\377\377r\377\377\377t\377\377\377w\377\377\377y\377\377\377{\377"
  "\377\377|\377\377\377\177\377\377\377\201\377\377\377\203\377\377\377\204"
  "\377\377\377\203[[[\347\000\000\000\377\367\367\367\200\377\377\377z\377\377\377"
  "w\377\377\377v\377\377\377s\377\377\377q\377\377\377o\377\377\377m\377\377"
  "\377k\377\377\377i\377\377\377g\377\377\377e\377\377\377c\377\377\377a\377"
  "\377\377_\377\377\377^\377\377\377_\377\377\377r\377\377\377\231\377\377"
  "\377\313\377\377\377\356\377\377\377\373\377\377\377\376\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
  "\377\377\377\377\377\377\377\377\377\377\377\377\377\003\377\377\377\001\377"
  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
  "\000\377\377\377\000\377\377\377\000\377\377\377\005\377\377\377\033\377\377\377B"
  "\377\377\377c\377\377\377p\377\377\377t\377\377\377w\377\377\377y\377\377"
  "\377{\377\377\377|\377\377\377~\377\377\377\201\377\377\377\203\377\377\377"
  "\204\377\377\377\202\377\377\377\200JJJ\356...\370\377\377\377z\377\377\377"
  "w\377\377\377v\377\377\377s\377\377\377q\377\377\377o\377\377\377m\377\377"
  "\377k\377\377\377i\377\377\377g\377\377\377e\377\377\377c\377\377\377a\377"
  "\377\377_\377\377\377]\377\377\377Z\377\377\377Y\377\377\377_\377\377\377"
  "q\377\377\377\227\377\377\377\300\377\377\377\341\377\377\377\362\377\377"
  "\377\372\377\377\377\374\377\377\377\375\377\377\377\376\377\377\377\376"
  "\377\377\377\375\377\377\377\374\377\377\377\370\377\377\377\023\377\377\377"
  "\011\377\377\377\003\377\377\377\001\377\377\377\000\377\377\377\000\377\377\377\000"
  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
  "\377\377\000\377\377\377\001\377\377\377\005\377\377\377\027\377\377\377;\377\377"
  "\377\\\377\377\377n\377\377\377t\377\377\377w\377\377\377y\377\377\377{\377"
  "\377\377|\377\377\377~\377\377\377\200\377\377\377\204\377\377\377\204\377"
  "\377\377\203\377\377\377\200\377\377\377~BBB\361;;;\363\377\377\377w\377"
  "\377\377v\377\377\377s\377\377\377q\377\377\377o\377\377\377m\377\377\377"
  "l\377\377\377j\377\377\377g\377\377\377e\377\377\377c\377\377\377`\377\377"
  "\377_\377\377\377]\377\377\377Z\377\377\377X\377\377\377V\377\377\377V\377"
  "\377\377[\377\377\377k\377\377\377\207\377\377\377\245\377\377\377\300\377"
  "\377\377\324\377\377\377\341\377\377\377\350\377\377\377\354\377\377\377"
  "\354\377\377\377\352\377\377\377\342\377\377\377\323\377\377\377\060\377\377"
  "\377%\377\377\377\027\377\377\377\014\377\377\377\005\377\377\377\002\377\377\377"
  "\001\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\001"
  "\377\377\377\003\377\377\377\013\377\377\377\037\377\377\377=\377\377\377[\377"
  "\377\377l\377\377\377s\377\377\377w\377\377\377y\377\377\377{\377\377\377"
  "}\377\377\377\177\377\377\377\201\377\377\377\203\377\377\377\204\377\377"
  "\377\203\377\377\377\200\377\377\377~\377\377\377|\343\343\343\212\343\343"
  "\343\211\377\377\377v\377\377\377s\377\377\377q\377\377\377o\377\377\377"
  "m\377\377\377k\377\377\377i\377\377\377g\377\377\377e\377\377\377b\377\377"
  "\377`\377\377\377_\377\377\377]\377\377\377Z\377\377\377X\377\377\377V\377"
  "\377\377T\377\377\377R\377\377\377Q\377\377\377S\377\377\377[\377\377\377"
  "j\377\377\377{\377\377\377\213\377\377\377\230\377\377\377\242\377\377\377"
  "\253\377\377\377\254\377\377\377\252\377\377\377\236\377\377\377\214\377"
  "\377\377I\377\377\377D\377\377\377;\377\377\377\060\377\377\377\"\377\377"
  "\377\026\377\377\377\016\377\377\377\012\377\377\377\010\377\377\377\010\377\377"
  "\377\013\377\377\377\021\377\377\377\036\377\377\377\061\377\377\377H\377\377"
  "\377_\377\377\377m\377\377\377s\377\377\377w\377\377\377y\377\377\377{\377"
  "\377\377|\377\377\377~\377\377\377\201\377\377\377\203\377\377\377\204\377"
  "\377\377\203\377\377\377\200\377\377\377~\377\377\377|\377\377\377y\377\377"
  "\377w\377\377\377v\377\377\377s\377\377\377q\377\377\377o\377\377\377m\377"
  "\377\377k\377\377\377i\377\377\377g\377\377\377e\377\377\377b\377\377\377"
  "`\377\377\377_\377\377\377]\377\377\377Z\377\377\377X\377\377\377V\377\377"
  "\377T\377\377\377S\377\377\377P\377\377\377N\377\377\377K\377\377\377K\377"
  "\377\377M\377\377\377O\377\377\377R\377\377\377W\377\377\377[\377\377\377"
  "_\377\377\377`\377\377\377_\377\377\377X\377\377\377M\377\377\377R\377\377"
  "\377S\377\377\377R\377\377\377O\377\377\377I\377\377\377A\377\377\377\071"
  "\377\377\377\063\377\377\377\060\377\377\377\060\377\377\377\066\377\377\377"
  "@\377\377\377M\377\377\377[\377\377\377g\377\377\377o\377\377\377t\377\377"
  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\377"
  "\201\377\377\377\203\377\377\377\204\377\377\377\203\377\377\377\200\377"
  "\377\377~\377\377\377{\377\377\377y\377\377\377x\377\377\377v\377\377\377"
  "s\377\377\377q\377\377\377o\377\377\377m\377\377\377l\377\377\377i\377\377"
  "\377g\377\377\377e\377\377\377b\377\377\377`\377\377\377_\377\377\377]\377"
  "\377\377Z\377\377\377X\377\377\377V\377\377\377U\377\377\377R\377\377\377"
  "P\377\377\377N\377\377\377K\377\377\377I\377\377\377H\377\377\377F\377\377"
  "\377D\377\377\377B\377\377\377@\377\377\377?\377\377\377?\377\377\377>\377"
  "\377\377<\377\377\377\071\377\377\377\064\377\377\377U\377\377\377W\377\377"
  "\377Y\377\377\377Z\377\377\377\\\377\377\377\\\377\377\377\\\377\377\377"
  "[\377\377\377[\377\377\377]\377\377\377`\377\377\377d\377\377\377j\377\377"
  "\377n\377\377\377q\377\377\377t\377\377\000\377\377\377\000\377\377\377\000\377"
  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\377\204"
  "\377\377\377\202\377\377\377\200\377\377\377~\377\377\377|\377\377\377z\377"
  "\377\377w\345\345\345\206\241\241\241\262\246\246\246\255\361\361\361w\377"
  "\377\377m\377\377\377l\377\377\377j\377\377\377g\377\377\377e\377\377\377"
  "b\377\377\377`\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377"
  "\377\377\377U\377\377\377R\377\377\377P\377\377\377N\377\377\377K\377\377"
  "\377I\377\377\377H\377\377\377F\377\377\377D\377\377\377B\377\377\377?\377"
  "\377\377=\377\377\377;\377\377\377\071\377\377\377\067\377\377\377\065\377\377"
  "\377\062\377\377\377\061\374\377\377Y\374\377\377Z\375\377\377\\\375\377\377"
  "^\375\377\377a\375\377\377c\375\377\377e\375\377\377g\375\377\377i\375\377"
  "\377k\376\377\377m\375\377\377o\375\377\377q\375\377\377s\375\377\377v\375"
  "\377\377x\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
  "\000\377\377\377\000\377\377\377\000\377\375\377\377\203\375\377\377\201\375\377"
  "\377\177\375\377\377}\375\377\377z\375\377\377y\337\340\340\211...\367\000"
  "\000\000\377\000\000\000\377JJJ\352\362\363\363s\375\377\377j\375\377\377h\375\377"
  "\377f\375\377\377d\375\377\377a\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377"
  "\377\000\000\377\377\000\000\377\377\000\000\377\377\374\377\377Q\374\377\377O\374\377"
  "\377M\374\377\377K\374\377\377I\374\377\377G\374\377\377E\375\377\377B\374"
  "\377\377A\375\377\377>\373\377\377=\373\377\377:\375\377\377\067\373\377\377"
  "\066\373\377\377\064\373\377\377\062\372\377\377\060\365\377\377^\365\377\377"
  "`\367\377\377b\367\377\377d\367\377\377g\366\377\377h\366\377\377j\367\377"
  "\377l\370\377\377n\367\377\377q\370\377\377r\367\377\377t\367\377\377v\367"
  "\377\377y\370\377\377{\370\377\377}\377\377\000\377\377\377\000\377\377\377\000"
  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\370\377\377"
  "\204\370\377\377\202\371\377\377\177\370\377\377}\371\377\377{\367\377\377"
  "z\212\216\216\303\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\246\254\254\245"
  "\366\377\377l\366\377\377j\366\377\377h\367\377\377e\366\377\377d\000\000\377"
  "\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377"
  "\377\365\377\377S\365\377\377P\363\377\377O\363\377\377N\363\377\377K\362"
  "\377\377I\362\377\377G\363\377\377D\363\377\377C\361\377\377A\362\377\377"
  "?\362\377\377=\357\377\377;\357\377\377\071\360\377\377\067\355\377\377\065"
  "\357\377\377\062\357\377\377d\357\377\377f\357\377\377h\360\377\377j\360\377"
  "\377l\360\377\377n\360\377\377p\361\377\377r\361\377\377t\361\377\377v\361"
  "\377\377x\362\377\377z\362\377\377|\362\377\377~\362\377\377\201\362\377"
  "\377\201\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
  "\000\377\377\377\000\377\377\377\000\377\363\377\377\205\363\377\377\203\362\377"
  "\377\201\362\377\377\200\362\377\377~\362\377\377{\205\214\214\305\000\000\000"
  "\377\000\000\000\377\000\000\000\377\000\000\000\377\240\251\251\250\360\377\377m\360\377\377"
  "k\360\377\377j\357\377\377h\357\377\377e\000\000\377\377\000\000\377\377\000\000\377"
  "\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\354\377\377V\353\377"
  "\377S\353\376\377R\352\376\377P\352\376\377N\351\377\377K\350\376\377I\350"
  "\377\377H\347\376\377F\346\377\377D\346\376\377B\345\377\377@\344\376\377"
  ">\343\376\377<\342\377\377:\341\376\377\070\340\376\377\066\351\376\377j\351"
  "\376\377l\351\376\377n\352\376\377p\352\376\377q\352\376\377s\353\377\377"
  "v\353\377\377x\354\377\377z\354\377\377{\354\377\377}\355\377\377\177\355"
  "\377\377\201\355\377\377\204\355\377\377\205\356\377\377\207\377\377\000\377"
  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
  "\377\000\377\355\377\377\206\355\377\377\204\355\377\377\203\355\377\377\201"
  "\354\377\377~\354\377\377|\310\330\330\222\032\035\035\374\000\000\000\377\000\000\000\377"
  "\065::\362\331\354\354|\352\377\377o\351\376\377n\351\377\377l\350\377\377"
  "i\350\376\377g\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377"
  "\000\000\377\377\000\000\377\377\344\376\377X\343\377\377V\342\376\377T\342\376\377"
  "R\341\376\377P\340\376\377N\337\376\377M\336\376\377K\335\376\377I\334\376"
  "\377G\333\376\377D\332\376\377B\331\376\377A\330\376\377?\326\376\377=\325"
  "\376\377;\323\376\377\071\344\376\377o\343\376\377r\344\376\377s\344\376\377"
  "u\345\376\377w\345\376\377y\346\376\377{\346\376\377}\346\377\377~\347\376"
  "\377\201\347\376\377\203\350\376\377\204\350\376\377\206\351\376\377\207"
  "\351\376\377\211\352\376\377\213\351\376\377\215\377\377\000\377\377\377\000"
  "\377\377\377\000\377\377\377\000\377\377\377\000\377\350\376\377\211\351\377\377"
  "\206\350\376\377\206\350\377\377\204\347\376\377\202\347\376\377\200\347"
  "\376\377}\347\376\377{\302\327\330\222\177\216\216\304\203\223\223\277\315"
  "\345\345\203\344\376\377r\343\376\377q\344\376\377n\343\376\377l\342\376"
  "\377k\341\376\377i\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377"
  "\377\000\000\377\377\000\000\377\377\334\376\377Z\333\376\377Y\332\376\377W\331\376"
  "\377T\330\376\377S\327\376\377Q\326\376\377O\326\376\377M\324\376\377K\322"
  "\376\377I\322\376\377G\320\376\377F\316\376\377D\314\376\377B\314\376\377"
  "?\310\376\377>\307\376\377=\325\374\377{\325\375\377}\326\374\377\177\326"
  "\375\377\200\327\375\377\203\330\375\377\203\330\375\377\206\330\375\377"
  "\210\331\375\377\212\332\376\377\213\332\375\377\214\333\375\377\217\333"
  "\376\377\220\334\375\377\222\334\375\377\224\334\375\377\226\335\375\377"
  "\230\336\375\377\230\335\375\377\227\334\375\377\225\334\376\377\223\333"
  "\375\377\221\333\376\377\217\333\375\377\216\332\375\377\214\331\376\377"
  "\213\331\375\377\210\331\375\377\206\330\375\377\205\330\375\377\204\326"
  "\375\377\202\326\374\377\200\325\375\377~\325\374\377|\324\374\377{\323\374"
  "\377y\323\374\377w\323\374\377u\321\374\377t\320\374\377q\317\374\377q\000"
  "\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\312\374\377f\311"
  "\374\377d\307\374\377b\306\374\377a\304\374\377_\304\374\377]\303\374\377"
  "[\301\374\377Z\277\374\377X\276\374\377V\274\374\377U\272\374\377S\270\374"
  "\377P\267\374\377O\264\374\377M\262\373\377K\260\373\377K\256\373\377H\307"
  "\373\377\207\310\373\377\211\311\373\377\211\312\373\377\213\313\373\377"
  "\215\314\373\377\217\314\373\377\220\314\373\377\221\315\373\377\224\315"
  "\373\377\225\316\373\377\227\317\373\377\230\320\373\377\232\320\374\377"
  "\234\321\374\377\234\321\374\377\237\322\374\377\237\322\374\377\236\320"
  "\374\377\234\320\374\377\233\320\373\377\231\317\373\377\230\317\373\377"
  "\226\315\373\377\224\315\373\377\223\314\373\377\221\314\373\377\217\313"
  "\373\377\216\313\373\377\214\312\373\377\212\311\373\377\211\310\373\377"
  "\207\307\373\377\205\307\373\377\205\306\373\377\203\304\373\377\201\304"
  "\373\377\177\303\373\377~\302\373\377|\302\373\377{\300\373\377y\277\373"
  "\377w\276\373\377u\275\373\377s\274\373\377r\273\373\377q\272\373\377o\270"
  "\373\377n\266\372\377k\265\372\377j\264\372\377h\262\372\377g\261\372\377"
  "f\257\372\377d\254\372\377b\253\372\377a\251\372\377_\247\372\377]\246\372"
  "\377\\\243\371\377Z\240\371\377X\236\371\377X\234\371\377U\230\371\377T\274"
  "\372\377\221\275\372\377\222\276\372\377\224\277\372\377\225\277\372\377"
  "\227\300\372\377\231\300\372\377\232\302\372\377\233\303\372\377\235\303"
  "\372\377\237\303\372\377\237\305\372\377\241\305\373\377\243\306\372\377"
  "\245\306\373\377\246\307\373\377\246\306\373\377\246\306\372\377\244\305"
  "\372\377\242\304\373\377\240\303\372\377\240\303\372\377\236\302\372\377"
  "\234\301\372\377\233\300\372\377\232\300\372\377\230\277\372\377\226\277"
  "\372\377\225\276\372\377\223\274\372\377\222\274\372\377\220\273\372\377"
  "\217\272\372\377\215\271\372\377\213\271\372\377\212\270\372\377\211\266"
  "\372\377\207\265\372\377\206\264\372\377\205\263\372\377\203\262\372\377"
  "\201\261\371\377\200\260\371\377~\257\371\377~\256\371\377|\254\371\377z"
  "\252\371\377x\251\371\377w\246\371\377u\246\371\377t\244\371\377s\243\371"
  "\377q\241\371\377p\236\370\377m\235\370\377l\233\370\377j\231\370\377j\227"
  "\370\377h\224\370\377f\221\370\377e\220\370\377c\216\370\377b\212\367\377"
  "`\206\370\377^\255\370\377\236\256\370\377\240\257\370\377\241\257\370\377"
  "\242\261\370\377\243\260\370\377\245\263\370\377\246\263\370\377\247\263"
  "\370\377\251\264\370\377\252\264\370\377\254\267\371\377\255\267\371\377"
  "\257\270\371\377\260\270\371\377\260\267\371\377\257\267\371\377\256\267"
  "\370\377\254\265\370\377\253\263\370\377\252\263\370\377\251\264\370\377"
  "\247\262\370\377\246\260\370\377\245\261\370\377\243\257\370\377\243\256"
  "\370\377\242\256\370\377\237\254\370\377\236\253\370\377\235\252\370\377"
  "\233\252\370\377\232\251\370\377\232\250\370\377\227\246\370\377\226\245"
  "\370\377\224\244\370\377\223\243\370\377\222\242\367\377\221\240\367\377"
  "\217\240\367\377\216\236\367\377\214\236\367\377\214\234\367\377\212\233"
  "\367\377\210\231\367\377\207\227\367\377\206\226\367\377\205\224\366\377"
  "\203\222\366\377\203\221\366\377\201\217\367\377\177\215\366\377~\214\366"
  "\377}\211\366\377{\207\366\377y\206\367\377x\202\366\377w\200\366\377u~\365"
  "\377u{\365\377sx\365\377qv\365\377rs\365\377o\237\367\377\254\240\367\377"
  "\255\240\367\377\256\242\367\377\257\242\367\377\257\243\367\377\261\244"
  "\367\377\262\245\367\377\264\246\367\377\265\246\367\377\267\247\367\377"
  "\267\247\370\377\271\251\370\377\271\250\370\377\272\251\370\377\270\247"
  "\370\377\270\250\370\377\267\246\370\377\266\245\370\377\264\245\367\377"
  "\263\244\367\377\262\243\367\377\261\242\367\377\260\241\367\377\256\241"
  "\367\377\256\237\367\377\254\236\367\377\253\236\367\377\252\235\367\377"
  "\250\233\367\377\247\233\367\377\246\232\366\377\245\231\367\377\244\230"
  "\367\377\242\226\367\377\242\225\366\377\240\224\366\377\237\223\366\377"
  "\236\222\366\377\235\220\366\377\234\217\365\377\232\216\366\377\231\215"
  "\366\377\231\213\365\377\227\212\366\377\226\210\365\377\225\207\365\377"
  "\223\205\365\377\222\203\365\377\221\202\365\377\220\200\365\377\217~\365"
  "\377\215}\364\377\215{\365\377\213y\364\377\213v\365\377\211t\365\377\207"
  "q\364\377\206p\364\377\205n\364\377\205k\364\377\203g\364\377\202d\364\377"
  "\201c\364\377\200\222\365\377\267\222\365\377\270\224\365\377\272\224\365"
  "\377\272\225\365\377\274\226\365\377\274\227\366\377\276\230\366\377\277"
  "\231\366\377\300\231\366\377\301\232\366\377\301\232\366\377\303\234\366"
  "\377\303\232\366\377\302\232\366\377\301\231\366\377\300\230\365\377\277"
  "\230\366\377\277\227\366\377\275\226\366\377\275\225\365\377\273\224\366"
  "\377\272\223\365\377\271\222\365\377\270\221\365\377\267\220\365\377\266"
  "\220\365\377\264\217\365\377\264\215\365\377\263\215\365\377\262\214\365"
  "\377\261\212\365\377\260\211\365\377\256\210\365\377\256\207\365\377\255"
  "\207\365\377\254\205\365\377\253\203\365\377\252\202\364\377\251\201\364"
  "\377\250\200\364\377\247\177\364\377\245|\364\377\245{\364\377\244y\364\377"
  "\242x\364\377\241w\364\377\241u\363\377\237t\364\377\240r\363\377\236p\364"
  "\377\234p\364\377\234m\363\377\233k\364\377\232i\363\377\231g\363\377\230"
  "e\363\377\226c\363\377\225b\363\377\225^\362\377\223[\363\377\223Y\363\377"
  "\222V\363\377\221T\362\377\220\206\364\377\302\206\364\377\302\207\364\377"
  "\304\207\364\377\305\211\365\377\306\212\365\377\306\212\364\377\307\213"
  "\365\377\311\214\365\377\311\215\365\377\312\215\365\377\313\216\365\377"
  "\314\215\365\377\313\214\365\377\313\214\364\377\311\213\365\377\310\212"
  "\365\377\307\212\365\377\307\211\365\377\306\207\364\377\305\206\365\377"
  "\303\206\364\377\303\206\364\377\302\205\364\377\301\204\364\377\301\203"
  "\364\377\277\201\364\377\276\200\364\377\276\200\364\377\274~\364\377\274"
  "}\364\377\273|\364\377\272{\364\377\272z\363\377\271z\364\377\270x\363\377"
  "\267w\363\377\266v\363\377\265t\363\377\264t\363\377\263r\363\377\263p\363"
  "\377\261n\363\377\260m\363\377\260k\364\377\257k\363\377\256j\363\377\255"
  "i\363\377\254g\363\377\253e\363\377\253d\363\377\252b\362\377\251`\362\377"
  "\250^\362\377\247\\\362\377\246Z\362\377\245X\362\377\244V\362\377\244S\362"
  "\377\243Q\362\377\241N\362\377\241L\362\377\240J\362\377\237H\362\377\236"
  "w\363\377\317w\363\377\320x\363\377\321y\363\377\321y\363\377\322z\363\377"
  "\323{\363\377\324|\363\377\324}\363\377\325~\363\377\326~\363\377\326}\363"
  "\377\325}\363\377\325{\362\377\324z\363\377\323z\362\377\322y\363\377\322"
  "y\363\377\321x\363\377\321w\363\377\317u\363\377\316t\362\377\316u\363\377"
  "\316t\363\377\314r\363\377\313r\363\377\313q\362\377\312p\363\377\312o\362"
  "\377\311n\362\377\310m\362\377\310l\362\377\307k\362\377\307i\362\377\306"
  "h\362\377\305g\362\377\304f\362\377\304d\362\377\303d\362\377\302c\361\377"
  "\302b\362\377\301`\362\377\300^\362\377\277]\362\377\276\\\362\377\276Z\362"
  "\377\275Z\362\377\275X\362\377\273V\362\377\273V\362\377\272S\361\377\272"
  "R\362\377\270Q\362\377\270O\361\377\267N\362\377\270L\362\377\266I\361\377"
  "\266H\361\377\265E\361\377\265C\361\377\264A\361\377\263=\361\377\262<\361"
  "\377\262\071\361\377\261g\361\377\332h\361\377\333i\361\377\334j\361\377\334"
  "j\361\377\335k\362\377\335k\361\377\336l\361\377\336m\361\377\336m\361\377"
  "\337m\362\377\336l\361\377\336k\361\377\335j\361\377\335j\361\377\334i\361"
  "\377\334i\361\377\334g\361\377\334g\361\377\332f\361\377\332f\361\377\331"
  "d\360\377\331c\361\377\330b\360\377\327b\361\377\327a\360\377\326`\360\377"
  "\326`\360\377\326_\361\377\325^\360\377\324]\360\377\324\\\360\377\323[\360"
  "\377\323Y\360\377\322Y\360\377\321W\360\377\321W\360\377\320V\360\377\320"
  "T\360\377\320S\360\377\317R\360\377\316P\360\377\316O\360\377\315O\360\377"
  "\315N\360\377\314L\360\377\314K\360\377\313I\360\377\312H\360\377\312G\360"
  "\377\311F\360\377\311D\357\377\310B\360\377\310A\357\377\307?\357\377\307"
  ">\357\377\306<\360\377\305\071\360\377\305\070\357\377\304\067\357\377\303\063"
  "\360\377\304\062\357\377\303/\357\377\303-\357\377\301Z\360\377\344Z\361\377"
  "\344[\360\377\344[\361\377\344\\\360\377\345]\361\377\346]\361\377\346^\361"
  "\377\346^\361\377\347]\360\377\347]\361\377\346\\\360\377\346\\\360\377\345"
  "Z\360\377\344Z\360\377\344Y\360\377\344Y\360\377\344X\360\377\343X\360\377"
  "\343W\361\377\342V\360\377\342U\360\377\341U\357\377\340T\357\377\340T\360"
  "\377\340S\360\377\340R\360\377\340Q\360\377\337P\360\377\337N\357\377\336"
  "N\357\377\336M\360\377\336M\357\377\335L\357\377\335L\360\377\334J\357\377"
  "\334I\360\377\334H\357\377\333G\357\377\332F\360\377\332E\357\377\332D\357"
  "\377\331C\357\377\331B\357\377\331A\357\377\330@\357\377\330>\357\377\327"
  "=\357\377\327<\357\377\326;\357\377\325\071\357\377\325\070\357\377\326\067"
  "\357\377\326\065\357\377\324\063\357\377\324\062\357\377\323\060\357\377\322"
  "/\356\377\322-\356\377\322*\356\377\321)\357\377\322'\357\377\321$\356\377"
  "\321#\357\377\321L\357\377\353N\357\377\354N\357\377\353N\360\377\353O\360"
  "\377\355P\357\377\355Q\360\377\355Q\360\377\355P\357\377\355P\360\377\355"
  "O\357\377\354N\360\377\354M\357\377\353M\357\377\353L\357\377\353K\357\377"
  "\353K\357\377\352K\357\377\352J\360\377\352J\357\377\351I\357\377\351H\357"
  "\377\351G\357\377\350G\357\377\350F\357\377\350E\357\377\350D\357\377\347"
  "D\357\377\347C\357\377\347C\357\377\347B\357\377\346A\357\377\346?\357\377"
  "\346?\357\377\346>\357\377\345>\357\377\345=\357\377\344<\357\377\344;\357"
  "\377\343:\357\377\343\071\357\377\343\070\357\377\343\066\356\377\343\067\357"
  "\377\342\065\356\377\341\064\356\377\341\063\356\377\341\062\356\377\341\061\356"
  "\377\341/\357\377\340/\356\377\340-\357\377\337,\356\377\340+\357\377\337"
  ")\356\377\337(\356\377\336&\357\377\336%\356\377\336$\356\377\335\"\356\377"
  "\335\037\356\377\335\036\356\377\334\034\356\377\335\032\356\377\334B\356\377"
  "\361B\357\377\361C\357\377\361D\356\377\361D\356\377\361D\357\377\362E\356"
  "\377\362E\357\377\362D\357\377\361B\357\377\361C\357\377\361B\357\377\361"
  "B\357\377\360A\357\377\360A\356\377\360@\356\377\360@\356\377\357?\356\377"
  "\357>\356\377\357>\357\377\357<\357\377\357<\356\377\356<\356\377\356;\356"
  "\377\356;\357\377\355:\356\377\355:\356\377\355\070\357\377\355\070\356\377"
  "\355\067\356\377\354\067\356\377\354\067\356\377\354\065\356\377\354\064\356\377"
  "\354\064\356\377\354\062\356\377\354\062\356\377\353\061\356\377\353\060\356\377"
  "\352\060\357\377\352/\356\377\352.\356\377\352.\356\377\352-\356\377\351+"
  "\356\377\351*\356\377\351)\356\377\350)\356\377\350'\356\377\350&\356\377"
  "\350%\356\377\350%\356\377\350$\356\377\347!\356\377\347!\356\377\347\037"
  "\356\377\347\037\355\377\346\035\356\377\347\034\355\377\346\031\355\377\346"
  "\030\356\377\345\027\355\377\345\024\356\377\345\023\356\377\345\066\356\377\365"
  "\067\356\377\365\070\356\377\366\071\356\377\366\071\356\377\366:\356\377\366"
  "\071\356\377\365\070\356\377\366\070\356\377\365\067\356\377\365\066\356\377\365"
  "\066\356\377\365\065\356\377\365\066\356\377\364\065\356\377\364\064\356\377\364"
  "\064\356\377\364\063\356\377\363\063\356\377\363\062\356\377\364\062\356\377\363"
  "\061\356\377\363\061\356\377\363\060\355\377\363/\356\377\362/\356\377\362."
  "\356\377\362.\356\377\362-\356\377\362-\356\377\362,\356\377\362+\356\377"
  "\362+\356\377\361+\356\377\361*\356\377\361)\356\377\361(\356\377\361'\356"
  "\377\361'\356\377\361&\356\377\360%\355\377\360$\356\377\360#\355\377\360"
  "#\356\377\360#\356\377\360!\356\377\357\040\356\377\357\040\355\377\357\036"
  "\356\377\357\036\355\377\357\035\356\377\357\034\355\377\357\033\355\377\356"
  "\032\355\377\356\031\355\377\356\030\355\377\355\027\356\377\355\025\355\377\355"
  "\023\355\377\355\023\355\377\355\021\355\377\355\020\355\377\355\016\355\377\355"
  "\013\356\377\354,\356\377\370,\355\377\370-\356\377\370.\355\377\370.\356"
  "\377\371.\356\377\371-\356\377\370,\355\377\370-\355\377\370,\356\377\370"
  ",\355\377\370+\355\377\370*\355\377\370*\355\377\370)\356\377\370)\356\377"
  "\367)\356\377\367)\355\377\367(\356\377\367'\355\377\367'\356\377\367'\356"
  "\377\367'\356\377\367&\355\377\367%\355\377\366%\355\377\367%\355\377\367"
  "$\355\377\367$\355\377\366#\355\377\366\"\355\377\366!\355\377\366!\355\377"
  "\366!\355\377\366!\355\377\366\037\355\377\366\037\355\377\365\036\355\377\365"
  "\036\355\377\365\035\355\377\365\034\355\377\365\034\355\377\365\033\355\377\365"
  "\032\355\377\365\032\355\377\365\031\355\377\365\031\355\377\364\027\355\377\364"
  "\027\355\377\364\026\355\377\364\025\355\377\364\024\355\377\364\023\355\377\364"
  "\022\355\377\364\021\355\377\363\021\355\377\363\017\355\377\363\017\355\377\363"
  "\015\355\377\363\014\355\377\363\013\355\377\363\012\355\377\363\010\355\377\362"
  "\006\355\377\362\"\355\377\373#\355\377\373#\355\377\373$\355\377\373$\355"
  "\377\373#\355\377\373\"\355\377\373\"\355\377\373\"\355\377\373\"\355\377"
  "\373\"\355\377\373!\355\377\372\040\355\377\372\040\355\377\372\040\355\377"
  "\372\040\355\377\372\037\355\377\372\037\355\377\372\037\355\377\372\036\355\377"
  "\372\036\355\377\371\036\355\377\372\035\355\377\372\034\355\377\372\034\355\377"
  "\371\034\355\377\372\033\355\377\372\033\355\377\372\033\355\377\371\031\355\377"
  "\371\031\355\377\371\031\355\377\371\031\355\377\371\030\355\377\371\030\355\377"
  "\371\027\355\377\371\027\355\377\371\026\355\377\371\026\355\377\371\025\354\377"
  "\371\025\355\377\371\024\355\377\370\023\355\377\370\023\355\377\370\022\355\377"
  "\370\021\355\377\370\021\355\377\370\021\355\377\370\020\355\377\370\017\355\377"
  "\370\017\355\377\370\016\355\377\370\015\355\377\370\014\355\377\370\013\355\377"
  "\370\012\355\377\370\012\355\377\370\011\355\377\367\010\355\377\367\007\355\377"
  "\367\006\355\377\367\005\355\377\367\004\354\377\367\003\355\377\367\032\355\377\374"
  "\032\355\377\374\032\354\377\375\031\355\377\374\032\355\377\375\031\355\377\374"
  "\030\355\377\374\030\355\377\375\030\355\377\374\030\355\377\374\030\355\377\374"
  "\027\355\377\374\027\355\377\374\027\355\377\374\027\355\377\374\026\355\377\374"
  "\026\355\377\374\025\355\377\374\025\355\377\374\025\355\377\374\025\355\377\374"
  "\024\355\377\374\024\355\377\374\024\355\377\374\024\355\377\374\023\355\377\374"
  "\022\355\377\374\022\355\377\374\022\355\377\374\022\354\377\374\021\355\377\374"
  "\021\355\377\374\020\355\377\373\020\355\377\373\020\354\377\373\017\354\377\373"
  "\017\355\377\373\017\355\377\373\016\354\377\373\015\355\377\373\015\355\377\373"
  "\015\355\377\373\014\355\377\373\014\355\377\373\013\354\377\373\013\354\377\373"
  "\012\354\377\373\012\354\377\373\011\355\377\373\011\354\377\373\010\354\377\373"
  "\010\354\377\373\007\354\377\373\007\355\377\373\006\355\377\373\006\354\377\373\005"
  "\354\377\372\004\354\377\372\004\354\377\372\004\355\377\372\003\354\377\372\002\354"
  "\377\372\002\354\377\372\001\355\377\372\021\355\377\376\021\354\377\376\020\354"
  "\377\376\020\355\377\376\020\354\377\376\020\354\377\376\020\355\377\376\017\355"
  "\377\376\017\355\377\376\017\354\377\376\017\354\377\376\016\354\377\376\016\354"
  "\377\376\016\354\377\376\016\354\377\376\016\354\377\375\015\355\377\375\015\354"
  "\377\375\015\355\377\375\015\355\377\375\015\354\377\375\014\355\377\375\014\354"
  "\377\375\014\354\377\375\014\354\377\375\013\354\377\375\013\354\377\375\013\354"
  "\377\375\012\354\377\375\013\354\377\375\012\355\377\375\011\355\377\375\011\354"
  "\377\375\011\354\377\375\011\355\377\375\010\354\377\375\010\354\377\375\010\354"
  "\377\375\010\355\377\375\007\354\377\375\007\354\377\375\007\355\377\375\006\355\377"
  "\375\006\355\377\375\006\355\377\375\006\355\377\375\005\355\377\375\005\354\377\375"
  "\005\354\377\375\004\354\377\375\004\355\377\375\004\354\377\375\004\354\377\375\003"
  "\355\377\375\003\355\377\375\003\354\377\374\003\354\377\375\003\355\377\375\002\355"
  "\377\374\002\354\377\374\001\354\377\374\001\354\377\374\001\355\377\374\000\355\377"
  "\374\010\354\377\376\010\354\377\376\010\354\377\376\010\354\377\376\010\354\377"
  "\376\010\354\377\376\007\355\377\376\007\354\377\376\007\354\377\376\007\354\377\376"
  "\007\355\377\376\007\354\377\376\007\354\377\376\007\355\377\376\006\354\377\376\006"
  "\354\377\376\006\355\377\376\006\354\377\376\006\355\377\376\006\354\377\376\006\354"
  "\377\376\006\354\377\376\005\355\377\376\006\354\377\376\005\355\377\376\005\355\377"
  "\376\005\354\377\376\005\355\377\376\005\354\377\376\005\354\377\376\005\354\377\376"
  "\004\354\377\376\004\354\377\376\004\354\377\376\004\354\377\376\004\354\377\376\004"
  "\354\377\376\004\354\377\376\003\355\377\376\003\354\377\376\003\354\377\376\003\355"
  "\377\376\003\354\377\376\003\355\377\376\003\354\377\376\002\354\377\376\002\354\377"
  "\376\002\355\377\376\002\354\377\376\002\354\377\376\002\354\377\376\002\354\377\376"
  "\002\354\377\376\001\354\377\376\001\354\377\376\001\354\377\376\001\355\377\376\001"
  "\354\377\376\001\354\377\376\001\354\377\376\000\354\377\376\001\354\377\376\000\354"
  "\377\376\000\355\377\376",
};

@DanielGibson
Copy link
Owner Author

the endian is big

You're using a big endian CPU?
Seems possible that Gimp has a bug in it's C exporter on big endian.

Also possible that my code is somehow incorrect, I don't have any big endian machines, but you said that you tried different masks and it still didn't work..

You could try converting the image with my ImgToC tool instead of gimp, maybe that works better? https://github.com/DanielGibson/Snippets/blob/master/ImgToC.c

@Kagetsuki
Copy link

Kagetsuki commented May 13, 2023

Ah, sorry for not updating - I got it to work but I used image magick (I'll grab/extract what I did if you want to know). I can tell you off hand the command I used to convert was like convert test.png -define h:format=RGBA test.h - the important part in that command being the -define h:format=RGBA - you can just define the bit orders/formats somewhat arbitrarily that way (otherwise you get a non-alpha PBM image if I remember correctly).

I think the endian-ism may actually be the GPU or some abstraction with GL - the CPU in this particular case is an Intel x86-64 which is little endian but I actually out of curiosity tied it on my Raspberry Pi 4 and the result was somehow the same, so I think it's some sort of GL abstraction or maybe even some misconfiguration in how Ubuntu/Debian is compiling their SDL2 packages.

  • Note: When I tried it on the Pi I can't remember if I actually re-converted the image data with GIMP on the Pi...

The thing with the masks is I think SDL just only supports a few different mask patterns. I found some would run even if they were incorrect but others would give the "Unknown pixel format error." and the pattern that I would in fact need to support that GIMP export just happens to be unsupported.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants